[
  {
    "path": ".git-blame-ignore-revs",
    "content": "# change max line length from 80 to 100\na3b64605a548a7a707d7b05bded506d7bef384e6"
  },
  {
    "path": ".github/PULL_REQUEST_TEMPLATE.md",
    "content": "⚠️ NOTICE: All code from this repository has been migrated to https://github.com/ethereum/execution-specs.\n\nAs such, this repository is no longer accepting pull requests as of 2025-11-01. Please direct any changes to https://github.com/ethereum/execution-specs instead.\n\nMore information is available in the [README.md] or our blogs posts:\n\n- https://steel.ethereum.foundation/blog/2025-11-04_weld_final/\n- https://steel.ethereum.foundation/blog/2025-09-11_weld-announcement/\n"
  },
  {
    "path": ".github/actions/build-evm-base/action.yaml",
    "content": "name: 'Build EVM'\ndescription: 'Resolves and builds the requested EVM binary by name'\ninputs:\n  type:\n    description: 'Type of EVM binary to build'\n    required: true\n    default: 'main'\noutputs:\n  impl:\n    description: \"Implementation of EVM binary to build\"\n    value: ${{ steps.config-evm-reader.outputs.impl }}\n  repo:\n    description: \"Repository to use to build the EVM binary\"\n    value: ${{ steps.config-evm-reader.outputs.repo }}\n  ref:\n    description: \"Reference to branch, commit, or tag to use to build the EVM binary\"\n    value: ${{ steps.config-evm-reader.outputs.ref }}\n  evm-bin:\n    description: \"Binary name of the evm tool to use\"\n    value: ${{ steps.config-evm-impl-config-reader.outputs.evm-bin }}\n  x-dist:\n    description: \"Binary name of the evm tool to use\"\n    value: ${{ steps.config-evm-impl-config-reader.outputs.x-dist }}\nruns:\n  using: \"composite\"\n  steps:\n    - name: Get the selected EVM version from the .github/configs/evm.yaml\n      id: config-evm-reader\n      shell: bash\n      run: |\n        awk \"/^${{ inputs.type }}:/{flag=1; next} /^[[:alnum:]]/{flag=0} flag\" ./.github/configs/evm.yaml \\\n        | sed 's/ //g' | sed 's/:/=/g' >> \"$GITHUB_OUTPUT\"\n    - name: Get the EVM implementation configuration from .github/configs/evm-impl-config.yaml\n      id: config-evm-impl-config-reader\n      shell: bash\n      run: |\n        awk \"/^${{ steps.config-evm-reader.outputs.impl }}:/{flag=1; next} /^[[:alnum:]]/{flag=0} flag\" ./.github/configs/evm-impl.yaml \\\n        | sed 's/ //g' | sed 's/:/=/g' >> \"$GITHUB_OUTPUT\"\n    - name: Print Variables for the selected EVM type\n      shell: bash\n      run: |\n        echo \"Implementation: ${{ steps.config-evm-reader.outputs.impl }}\"\n        echo \"Repository: ${{ steps.config-evm-reader.outputs.repo }}\"\n        echo \"Reference: ${{ steps.config-evm-reader.outputs.ref }}\"\n        echo \"EVM Binary: ${{ steps.config-evm-impl-config-reader.outputs.evm-bin }}\"\n        echo \"X-Dist parameter: ${{ steps.config-evm-impl-config-reader.outputs.x-dist }}\"\n    - name: Skip building for EELS\n      if: steps.config-evm-reader.outputs.impl == 'eels'\n      shell: bash\n      run: echo \"Skipping build for EELS\"\n    - name: Build the EVM using Geth action\n      if: steps.config-evm-reader.outputs.impl == 'geth'\n      uses: ./.github/actions/build-evm-client/geth\n      with:\n        repo: ${{ steps.config-evm-reader.outputs.repo }}\n        ref: ${{ steps.config-evm-reader.outputs.ref }}\n    - name: Build the EVM using EVMONE action\n      if: steps.config-evm-reader.outputs.impl == 'evmone'\n      uses: ./.github/actions/build-evm-client/evmone\n      with:\n        repo: ${{ steps.config-evm-reader.outputs.repo }}\n        ref: ${{ steps.config-evm-reader.outputs.ref }}\n        # `targets` in the evm.yaml must be an inline array to not interfere with `config-evm-reader`'s parsing\n        targets: ${{ join(fromJSON(steps.config-evm-reader.outputs.targets), ' ') }}\n    - name: Build the EVM using Besu action\n      if: steps.config-evm-reader.outputs.impl == 'besu'\n      uses: ./.github/actions/build-evm-client/besu\n      with:\n        repo: ${{ steps.config-evm-reader.outputs.repo }}\n        ref: ${{ steps.config-evm-reader.outputs.ref }}\n    - name: Build the EVM using EthJS action\n      if: steps.config-evm-reader.outputs.impl == 'ethjs'\n      uses: ./.github/actions/build-evm-client/ethjs\n      with:\n        repo: ${{ steps.config-evm-reader.outputs.repo }}\n        ref: ${{ steps.config-evm-reader.outputs.ref }}"
  },
  {
    "path": ".github/actions/build-evm-client/besu/action.yaml",
    "content": "name: 'Build Besu EVM'\ndescription: 'Builds the Besu EVM binary'\ninputs:\n  repo:\n    description: 'Source repository to use to build the EVM binary'\n    required: true\n    default: 'hyperledger/besu'\n  ref:\n    description: 'Reference to branch, commit, or tag to use to build the EVM binary'\n    required: true\n    default: 'main'\n  java:\n    description: 'Java version to use to build Besu'\n    required: false\n    default: '21'\n  java-distro:\n    description: 'Java distribution to use to build Besu'\n    required: false\n    default: 'temurin'\nruns:\n  using: \"composite\"\n  steps:\n    - name: Checkout Besu\n      uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683\n      with:\n        repository: ${{ inputs.repo }}\n        ref: ${{ inputs.ref }}\n        path: besu\n    - name: Setup Java\n      uses: actions/setup-java@3a4f6e1af504cf6a31855fa899c6aa5355ba6c12\n      with:\n        java-version: ${{ inputs.java }}\n        distribution: ${{ inputs.java-distro }}\n        cache: 'gradle'\n    - name: Build evm cmd\n      shell: bash\n      run: |\n        cd $GITHUB_WORKSPACE/besu\n        ./gradlew installDist\n        echo $GITHUB_WORKSPACE/besu/build/install/besu/bin/ >> $GITHUB_PATH"
  },
  {
    "path": ".github/actions/build-evm-client/ethjs/action.yml",
    "content": "name: 'Build EthereumJS monorepo'\ndescription: 'Builds the EthereumJS monorepo'\ninputs:\n  repo:\n    description: 'Source repository to use to build EthereumJS'\n    required: true\n    default: 'ethereumjs/ethereumjs-monorepo'\n  ref:\n    description: 'Reference to branch, commit, or tag to use to build EthereumJS'\n    required: true\n    default: 'master'\nruns:\n  using: \"composite\"\n  steps:\n    - name: Checkout EthereumJS monorepo\n      uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683\n      with:\n        repository: ${{ inputs.repo }}\n        ref: ${{ inputs.ref }}\n        path: ethereumjs\n\n    - name: Setup node\n      uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e\n      with:\n        node-version: 18\n\n    - name: Build monorepo\n      shell: bash\n      run: |\n        cd $GITHUB_WORKSPACE/ethereumjs\n        npm ci\n\n    - name: Add t8ntool to $PATH\n      shell: bash\n      run: |\n        echo $GITHUB_WORKSPACE/ethereumjs/packages/vm/test/t8n/ >> $GITHUB_PATH\n        echo $GITHUB_WORKSPACE/ethereumjs/node_modules/.bin >> $GITHUB_PATH"
  },
  {
    "path": ".github/actions/build-evm-client/evmone/action.yaml",
    "content": "name: 'Build evmone EVM'\ndescription: 'Builds the evmone EVM binary'\ninputs:\n  repo:\n    description: 'Source repository to use to build the EVM binary'\n    required: true\n    default: 'ethereum/evmone'\n  ref:\n    description: 'Reference to branch, commit, or tag to use to build the EVM binary'\n    required: true\n    default: 'master'\n  targets:\n    description: 'Which targets to build from evmone repo'\n    required: false\n    default: 'all'\nruns:\n  using: \"composite\"\n  steps:\n    - name: Checkout evmone\n      uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683\n      with:\n        repository: ${{ inputs.repo }}\n        ref: ${{ inputs.ref }}\n        path: evmone\n        submodules: true\n    - name: Setup cmake\n      uses: jwlawson/actions-setup-cmake@802fa1a2c4e212495c05bf94dba2704a92a472be\n      with:\n        cmake-version: '3.x'\n    - name: \"Install GMP Linux\"\n      if: runner.os == 'Linux'\n      shell: bash\n      run: sudo apt-get -q update && sudo apt-get -qy install libgmp-dev\n    - name: Install GMP macOS\n      if: runner.os == 'macOS'\n      shell: bash\n      run: |\n        brew update && brew install gmp\n    - name: Build evmone binary\n      shell: bash\n      run: |\n        mkdir -p $GITHUB_WORKSPACE/bin\n        cd $GITHUB_WORKSPACE/evmone\n        cmake -S . -B build -DEVMONE_TESTING=ON -DEVMONE_PRECOMPILES_SILKPRE=1\n        cmake --build build --parallel --target ${{ inputs.targets }}\n        echo $GITHUB_WORKSPACE/evmone/build/bin/ >> $GITHUB_PATH\n"
  },
  {
    "path": ".github/actions/build-evm-client/geth/action.yaml",
    "content": "name: 'Build Go-Ethereum EVM'\ndescription: 'Builds the Go-Ethereum EVM binary'\ninputs:\n  repo:\n    description: 'Source repository to use to build the EVM binary'\n    required: true\n    default: 'ethereum/go-ethereum'\n  ref:\n    description: 'Reference to branch, commit, or tag to use to build the EVM binary'\n    required: true\n    default: 'master'\n  golang:\n    description: 'Golang version to use to build Geth'\n    required: false\n    default: '1.21.x'\nruns:\n  using: \"composite\"\n  steps:\n    - name: Checkout go-ethereum\n      uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683\n      with:\n        repository: ${{ inputs.repo }}\n        ref: ${{ inputs.ref }}\n        path: go-ethereum\n    - name: Setup golang\n      uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b\n      with:\n        go-version: ${{ inputs.golang }}\n        cache-dependency-path: go-ethereum/go.sum\n    - name: Build evm cmd\n      shell: bash\n      run: |\n        mkdir -p $GITHUB_WORKSPACE/bin\n        cd $GITHUB_WORKSPACE/go-ethereum/cmd/evm\n        go build .\n        echo $GITHUB_WORKSPACE/go-ethereum/cmd/evm >> $GITHUB_PATH"
  },
  {
    "path": ".github/actions/build-fixtures/action.yaml",
    "content": "name: Build and Package Fixture Release\ninputs:\n  release_name:\n    description: \"Name of the fixture release\"\n    required: true\n  uv_version:\n    description: \"Version of UV to install\"\n    required: true\n  python_version:\n    description: \"Version of Python to install\"\n    required: true\nruns:\n  using: \"composite\"\n  steps:\n    - name: Install uv ${{ inputs.uv_version }} and python ${{ inputs.python_version }}\n      uses: astral-sh/setup-uv@0c5e2b8115b80b4c7c5ddf6ffdd634974642d182\n      with:\n        enable-cache: false\n        version: ${{ inputs.uv_version }}\n        python-version: ${{ inputs.python_version }}\n    - name: Install EEST\n      shell: bash\n      run: uv sync --no-progress\n    - name: Extract fixture release properties from config\n      id: properties\n      shell: bash\n      run: |\n        echo \"release_name=${{ inputs.release_name }}\"\n        uv run -q .github/scripts/get_release_props.py ${{ inputs.release_name }} >> \"$GITHUB_OUTPUT\"\n    - uses: ./.github/actions/build-evm-base\n      id: evm-builder\n      with:\n        type: ${{ steps.properties.outputs.evm-type }}\n    - name: Generate fixtures using fill\n      shell: bash\n      run: |\n        uv run fill -n ${{ steps.evm-builder.outputs.x-dist }} --evm-bin=${{ steps.evm-builder.outputs.evm-bin }} ${{ steps.properties.outputs.fill-params }} --output=fixtures_${{ inputs.release_name }}.tar.gz --build-name ${{ inputs.release_name }}\n    - name: Wrap ethereum/tests fixtures with eofwrap tool\n      shell: bash\n      if: ${{ steps.properties.outputs.eofwrap }}\n      run: |\n        curl -L ${tests_url}${tests_version}.tar.gz | tar -xz\n        ls -l\n        uv run eofwrap tests-${tests_version}/BlockchainTests/GeneralStateTests/ fixtures/${output_path}\n        rm -rf fixtures_${{ inputs.release_name }}\n        mkdir -p ./fixtures/.meta\n        mv fixtures/${output_path}/metrics.json ./fixtures/.meta/eofwrap_metrics.json\n        gunzip fixtures_${{ inputs.release_name }}.tar.gz\n        tar rf fixtures_${{ inputs.release_name }}.tar fixtures\n        gzip fixtures_${{ inputs.release_name }}.tar\n        rm -rf fixtures\n      env:\n        tests_url: https://github.com/ethereum/tests/archive/refs/tags/v\n        tests_version: 14.1\n        output_path: blockchain_tests/unscheduled/eofwrap\n    - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02\n      with:\n        name: fixtures_${{ inputs.release_name }}\n        path: fixtures_${{ inputs.release_name }}.tar.gz\n"
  },
  {
    "path": ".github/actions/fetch-binary/action.yaml",
    "content": "name: \"Fetch and Install Binary\"\ndescription: \"Downloads a binary from a GitHub release, verifies its checksum, and installs it to PATH. Only works for Linux.\"\ninputs:\n  version:\n    description: \"Release version (e.g., v0.8.24)\"\n    required: true\n  repo_owner:\n    description: \"GitHub repository owner\"\n    required: true\n  repo_name:\n    description: \"GitHub repository name\"\n    required: true\n  remote_name:\n    description: \"Binary filename in the release\"\n    required: true\n  binary_name:\n    description: \"Name to install the binary as\"\n    required: true\n  expected_sha256:\n    description: \"Expected SHA256 checksum\"\n    required: true\nruns:\n  using: \"composite\"\n  steps:\n    - name: Download binary\n      shell: bash\n      run: |\n        curl -sSL \"https://github.com/${{ inputs.repo_owner }}/${{ inputs.repo_name }}/releases/download/${{ inputs.version }}/${{ inputs.remote_name }}\" -o ./${{ inputs.binary_name }}\n        echo \"${{ inputs.expected_sha256 }}  ${{ inputs.binary_name }}\" | sha256sum -c -\n        sudo mv ./${{ inputs.binary_name }} /usr/local/bin/${{ inputs.binary_name }}\n        sudo chmod +x /usr/local/bin/${{ inputs.binary_name }}"
  },
  {
    "path": ".github/configs/eels_resolutions.json",
    "content": "{\n    \"Frontier\": {\n        \"path\": \"$GITHUB_WORKSPACE/execution-specs/\"\n    },\n    \"Homestead\": {\n        \"path\": \"$GITHUB_WORKSPACE/execution-specs/\"\n    },\n    \"Byzantium\": {\n        \"path\": \"$GITHUB_WORKSPACE/execution-specs/\"\n    },\n    \"ConstantinopleFix\": {\n        \"path\": \"$GITHUB_WORKSPACE/execution-specs/\"\n    },\n    \"Istanbul\": {\n        \"path\": \"$GITHUB_WORKSPACE/execution-specs/\"\n    },\n    \"Berlin\": {\n        \"path\": \"$GITHUB_WORKSPACE/execution-specs/\"\n    },\n    \"London\": {\n        \"path\": \"$GITHUB_WORKSPACE/execution-specs/\"\n    },\n    \"Merge\": {\n        \"path\": \"$GITHUB_WORKSPACE/execution-specs/\"\n    },\n    \"Shanghai\": {\n        \"path\": \"$GITHUB_WORKSPACE/execution-specs/\"\n    },\n    \"Cancun\": {\n        \"path\": \"$GITHUB_WORKSPACE/execution-specs/\"\n    },\n    \"Prague\": {\n        \"path\": \"$GITHUB_WORKSPACE/execution-specs/\"\n    },\n    \"Osaka\": {\n        \"git_url\": \"https://github.com/ethereum/execution-specs.git\",\n        \"branch\": \"forks/bpos\",\n        \"commit\": \"7aacb2c54111391af5e98c505d5010b5698a770f\"\n    },\n    \"BPO1\": {\n        \"same_as\": \"Osaka\"\n    },\n    \"BPO2\": {\n        \"same_as\": \"Osaka\"\n    },\n    \"BPO3\": {\n        \"same_as\": \"Osaka\"\n    },\n    \"BPO4\": {\n        \"same_as\": \"Osaka\"\n    },\n    \"Amsterdam\": {\n        \"git_url\": \"https://github.com/fselmo/execution-specs.git\",\n        \"branch\": \"feat/amsterdam-fork-and-block-access-lists\",\n        \"commit\": \"3496e719b515bc82f35c42f83e78d426d31283ba\"\n    }\n}\n"
  },
  {
    "path": ".github/configs/evm-impl.yaml",
    "content": "eels:\n  evm-bin: ethereum-spec-evm-resolver\n  x-dist: auto\ngeth:\n  evm-bin: evm\n  x-dist: auto\nevmone:\n  evm-bin: evmone-t8n\n  x-dist: auto\nbesu:\n  evm-bin: evmtool\n  x-dist: 0\nethjs:\n  evm-bin: ethereumjs-t8ntool.sh\n  x-dist: auto\n"
  },
  {
    "path": ".github/configs/evm.yaml",
    "content": "stable:\n  impl: eels\n  repo: null\n  ref: null\ndevelop:\n  impl: eels\n  repo: null\n  ref: null\nstatic:\n  impl: evmone\n  repo: ethereum/evmone\n  ref: master\n  targets: [\"evmone-t8n\"]\nbenchmark:\n  impl: evmone\n  repo: ethereum/evmone\n  ref: master\n  targets: [\"evmone-t8n\"]"
  },
  {
    "path": ".github/configs/feature.yaml",
    "content": "# Unless filling for special features, all features should fill for previous forks (starting from Frontier) too\nstable:\n  evm-type: stable\n  fill-params: --until=Prague --fill-static-tests --ignore=tests/static/state_tests/stQuadraticComplexityTest\n\ndevelop:\n  evm-type: develop \n  fill-params: --until=BPO4 --fill-static-tests --ignore=tests/static/state_tests/stQuadraticComplexityTest\n\nbenchmark:\n  evm-type: benchmark # Evmone only fully supports up to Prague\n  fill-params: --fork=Prague --gas-benchmark-values 1,10,30,45,60,100,150 -m \"benchmark and not state_test\" ./tests/benchmark\n\nbenchmark_develop:\n  evm-type: develop\n  fill-params: --fork=Osaka --gas-benchmark-values 1,10,30,45,60,100,150 -m \"benchmark and not state_test\" ./tests/benchmark\n  feature_only: true\n\nbal:\n  evm-type: develop\n  fill-params: --fork=Amsterdam ./tests/amsterdam/eip7928_block_level_access_lists\n  feature_only: true\n"
  },
  {
    "path": ".github/scripts/fill_introduced_tests.sh",
    "content": "#!/bin/bash\n# Fill introduced test sources\n# Usage: fill_introduced_tests.sh <changed_test_files> <patch_test_path>\n# Exit codes:\n#   0 - Success\n#   1 - Failure to generate tests or no tests found\n\nset -e\n\nCHANGED_TEST_FILES=\"$1\"\nPATCH_TEST_PATH=\"$2\"\nBLOCK_GAS_LIMIT=\"${3:-45000000}\"\nFILL_UNTIL=\"${4:-Cancun}\"\n\n# Include basic evm operations into coverage by default\n# As when we translate from yul/solidity some dup/push opcodes could become untouched\nfiles=\"$CHANGED_TEST_FILES tests/homestead/coverage/test_coverage.py\"\n\nuv run fill $files --clean --until=$FILL_UNTIL --evm-bin evmone-t8n --block-gas-limit $BLOCK_GAS_LIMIT -m \"state_test or blockchain_test\" --output $PATCH_TEST_PATH > >(tee -a filloutput.log) 2> >(tee -a filloutput.log >&2)\n\nif grep -q \"FAILURES\" filloutput.log; then\n    echo \"Error: failed to generate .py tests.\"\n    exit 1\nfi\n\nexit 0"
  },
  {
    "path": ".github/scripts/fill_prepatched_tests.sh",
    "content": "#!/bin/bash\n# Fill pre-patched test sources from before the PR\n# Usage: fill_prepatched_tests.sh <modified_deleted_test_files> <base_test_path> <patch_test_path> <block_gas_limit> <fill_until>\n# Exit codes:\n#   0 - Success\n#   1 - Failure to generate tests\n\nset -e\n\nMODIFIED_DELETED_FILES=\"$1\"\nBASE_TEST_PATH=\"$2\"\nPATCH_TEST_PATH=\"$3\"\nBLOCK_GAS_LIMIT=\"${4:-45000000}\"\nFILL_UNTIL=\"${5:-Cancun}\"\n\necho \"--------------------\"\necho \"converted-ethereum-tests.txt seem untouched, try to fill pre-patched version of .py files:\"\n\nPATCH_COMMIT=$(git rev-parse HEAD)\ngit checkout main\nBASE_COMMIT=$(git rev-parse HEAD)\necho \"Checkout head $BASE_COMMIT\"\n\necho \"Select files that were changed and exist on the main branch:\"\necho \"$MODIFIED_DELETED_FILES\"\n\nrm -rf fixtures\n\nset +e\nuv run fill $MODIFIED_DELETED_FILES --clean --until=$FILL_UNTIL --evm-bin evmone-t8n --block-gas-limit $BLOCK_GAS_LIMIT -m \"state_test or blockchain_test\" --output $BASE_TEST_PATH\nFILL_RETURN_CODE=$?\nset -e\nif [ $FILL_RETURN_CODE -eq 5 ]; then\n    echo \"any_modified_fixtures=false\" >> \"$GITHUB_OUTPUT\"\n    exit 0\nelif [ $FILL_RETURN_CODE -ne 0 ]; then\n    echo \"Error: failed to generate .py tests from before the PR.\"\n    exit 1\nfi\n\ngit checkout $PATCH_COMMIT\necho \"Checkout back to patch $PATCH_COMMIT\"\n# abort-on-empty-patch is used to ensure that the patch folder is not empty after fixture removal.\n# If the patch folder would be empty, it means that fixtures were removed in the PR, in which case we still want to run the coverage check.\nuv run compare_fixtures --abort-on-empty-patch $BASE_TEST_PATH $PATCH_TEST_PATH\n\nif [ -d $BASE_TEST_PATH ]; then\n    # If the base folder is not empty, it means there's at least one fixture that was modified in the PR, continue with the coverage check.\n    echo \"Base folder is not empty after fixture comparison, continuing with coverage check.\"\n    echo \"any_modified_fixtures=true\" >> \"$GITHUB_OUTPUT\"\nelse\n    # If the base folder is empty, it means there were no fixtures that were modified in the PR, or fixtures were only added, so we can skip the coverage check.\n    echo \"Base folder is empty after fixture comparison, skipping coverage check.\"\n    echo \"any_modified_fixtures=false\" >> \"$GITHUB_OUTPUT\"\nfi\nexit 0"
  },
  {
    "path": ".github/scripts/generate_eip_report.py",
    "content": "\"\"\"\nGenerate a markdown report of outdated EIP references from the EIP version\nchecker output.\n\"\"\"\n\nimport os\nimport re\nimport sys\nimport textwrap\nfrom string import Template\nfrom typing import List, Tuple\n\n# Report template using textwrap.dedent for clean multiline strings\nREPORT_TEMPLATE = Template(\n    textwrap.dedent(\"\"\"\\\n    # EIP Version Check Report\n\n    This automated check has detected that some EIP references in test files are outdated. This means that the EIPs have been updated in the [ethereum/EIPs](https://github.com/ethereum/EIPs) repository since our tests were last updated.\n\n    ## Outdated EIP References\n\n    ### Summary Table\n\n    | File | EIP Link | Referenced Version | Latest Version |\n    | ---- | -------- | ------------------ | -------------- |\n    $summary_table\n\n    ### Verbatim Failures\n\n    ```\n    $fail_messages\n    ```\n\n    ### Verbatim Errors\n\n    ```\n    $error_messages\n    ```\n\n    ## Action Required\n\n    1. Please verify whether the affected tests need updating based on changes in the EIP spec.\n    2. Update the `REFERENCE_SPEC_VERSION` in each file with the latest version shown above.\n    3. For detailed instructions, see the [reference specification documentation](https://eest.ethereum.org/main/writing_tests/reference_specification/).\n\n    ## Workflow Information\n\n    For more details, see the [workflow run](https://github.com/ethereum/execution-spec-tests/actions/runs/$run_id).\n\"\"\")  # noqa: E501\n)\n\n\ndef extract_failures(output: str) -> List[Tuple[str, str, str, str, str, str]]:\n    \"\"\"Extract failure information from the output using regex.\"\"\"\n    failures = []\n\n    for line in output.split(\"\\n\"):\n        if not line.startswith(\"FAILED\"):\n            continue\n\n        # Extract test file path\n        file_match = re.search(r\"FAILED (tests/[^:]+\\.py)\", line)\n        if not file_match:\n            continue\n        file_path = file_match.group(1)\n\n        # Extract EIP number\n        eip_match = re.search(r\"eip(\\d+)\", file_path, re.IGNORECASE)\n        eip_num = f\"EIP-{eip_match.group(1)}\" if eip_match else \"Unknown\"\n\n        # Extract full path\n        full_path_match = re.search(r\"from '([^']+)'\", line)\n        full_path = full_path_match.group(1) if full_path_match else \"Unknown\"\n\n        # Extract EIP link\n        eip_link_match = re.search(r\"Spec: (https://[^ ]+)\\.\", line)\n        eip_link = eip_link_match.group(1) if eip_link_match else \"\"\n        eip_link = eip_link.replace(\"blob/\", \"commits/\") if eip_link else \"\"\n\n        # Extract versions\n        ref_version_match = re.search(r\"Referenced version: ([a-f0-9]+)\", line)\n        ref_version = ref_version_match.group(1) if ref_version_match else \"Unknown\"\n\n        latest_version_match = re.search(r\"Latest version: ([a-f0-9]+)\", line)\n        latest_version = latest_version_match.group(1) if latest_version_match else \"Unknown\"\n\n        failures.append((file_path, eip_num, full_path, eip_link, ref_version, latest_version))\n\n    return failures\n\n\ndef generate_summary_table(failures: List[Tuple[str, str, str, str, str, str]]) -> str:\n    \"\"\"Generate a markdown summary table from the failures.\"\"\"\n    rows = []\n    for file_path, eip_num, _, eip_link, ref_version, latest_version in failures:\n        rows.append(\n            f\"| `{file_path}` | [{eip_num}]({eip_link}) | `{ref_version}` | `{latest_version}` |\"\n        )\n    return \"\\n\".join(rows)\n\n\ndef main() -> None:\n    \"\"\"Generate the report.\"\"\"\n    if len(sys.argv) < 2:\n        print(\"Usage: uv run python generate_eip_report.py <input_file> [output_file]\")\n        sys.exit(1)\n\n    input_file = sys.argv[1]\n    output_file = sys.argv[2] if len(sys.argv) > 2 else \"./reports/outdated_eips.md\"\n\n    try:\n        with open(input_file, \"r\") as f:\n            output = f.read()\n    except Exception as e:\n        print(f\"Error reading input file: {e}\")\n        sys.exit(1)\n\n    failures = extract_failures(output)\n\n    fail_messages = \"\\n\".join(line for line in output.split(\"\\n\") if line.startswith(\"FAILED\"))\n    if not fail_messages:\n        fail_messages = (\n            \"No test failures were found in the pytest output: No lines start with 'FAILED'.\"\n        )\n\n    error_messages = \"\\n\".join(line for line in output.split(\"\\n\") if line.startswith(\"ERROR\"))\n    if not error_messages:\n        error_messages = (\n            \"No test errors were found in the pytest output: No lines start with 'ERROR'.\"\n        )\n\n    report_content = REPORT_TEMPLATE.substitute(\n        summary_table=generate_summary_table(failures),\n        fail_messages=fail_messages,\n        error_messages=error_messages,\n        run_id=os.environ.get(\"GITHUB_RUN_ID\", \"\"),\n    )\n\n    try:\n        with open(output_file, \"w\") as report:\n            report.write(report_content)\n    except Exception as e:\n        print(f\"Error writing output file: {e}\")\n        sys.exit(1)\n\n    print(f\"Report generated successfully: {output_file}\")\n    print(f\"Found {len(failures)} outdated EIP references\")\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": ".github/scripts/get_release_props.py",
    "content": "# /// script\n# requires-python = \">=3.12\"\n# dependencies = [\n#     \"pyyaml\",\n#     \"click\",\n# ]\n# ///\n\"\"\"Extract the properties of a configured EEST release from a YAML file.\"\"\"\n\nimport sys\n\nimport click\nimport yaml\n\nRELEASE_PROPS_FILE = \"./.github/configs/feature.yaml\"\n\n\n@click.command()\n@click.argument(\"release\", required=True)\ndef get_release_props(release: str) -> None:\n    \"\"\"Extract the properties from the YAML file for a given release.\"\"\"\n    with open(RELEASE_PROPS_FILE) as f:\n        data = yaml.safe_load(f)\n    if release not in data:\n        print(f\"Error: Release {release} not found in {RELEASE_PROPS_FILE}.\")\n        sys.exit(1)\n    print(\"\\n\".join(f\"{key}={value}\" for key, value in data[release].items()))\n\n\nif __name__ == \"__main__\":\n    get_release_props()\n"
  },
  {
    "path": ".github/scripts/parse_ported_tests.sh",
    "content": "#!/bin/bash\n# Parse ported_from markers from introduced .py tests\n# Usage: parse_ported_tests.sh <changed_test_files> <workspace_path>\n# Exit codes:\n#   0 - Found converted tests, continue processing\n#   1 - No converted tests found, but updates detected\n\nset -e\n\nCHANGED_TEST_FILES=\"$1\"\nWORKSPACE_PATH=\"${2:-$GITHUB_WORKSPACE}\"\n\necho \"Changed or new test files: $CHANGED_TEST_FILES\"\n\nFILTERED_FILES=\"\"\nfor file in $CHANGED_TEST_FILES; do\n    if git diff origin/main -- \"$file\" | grep -q \"^+.*@pytest.mark.ported_from\"; then\n        FILTERED_FILES=\"$FILTERED_FILES $file\"\n    fi\ndone\n\nif [[ -z \"$FILTERED_FILES\" ]]; then\n    echo \"No new ported_from markers found.\"\n    echo \"any_ported=false\" >> \"$GITHUB_OUTPUT\"\n    exit 0\nfi\n\nuv run fill $FILTERED_FILES --show-ported-from --clean --quiet --links-as-filled --skip-coverage-missed-reason --ported-from-output-file ported_from_files.txt\nfiles=$(cat ported_from_files.txt)\necho \"Extracted converted tests:\"\necho \"$files\"\n\nif [[ -z \"$files\" ]]; then\n    echo \"No ported fillers found, check updates instead.\"\n    echo \"any_ported=false\" >> \"$GITHUB_OUTPUT\"\n    exit 0\nfi\n\necho \"any_ported=true\" >> \"$GITHUB_OUTPUT\"\n\necho \"----------------\"\necho \"Discovered existing json tests that will be BASE files:\"\n\nBASE_TESTS_PATH=\"${WORKSPACE_PATH}/evmtest_coverage/coverage/BASE_TESTS\"\nmkdir -p \"$BASE_TESTS_PATH\"\n\nfor file in $files; do\n    # Make sure each file exist at least in develop or legacy tests\n    file_found=0\n\n    if [[ \"$file\" == *\"BlockchainTests\"* ]]; then\n        destination_path=\"$BASE_TESTS_PATH/blockchain_tests\"\n    elif [[ \"$file\" == *\"GeneralStateTests\"* ]]; then\n        destination_path=\"$BASE_TESTS_PATH/state_tests\"\n    else\n        echo \"Error: $file is not a valid test file\"\n        exit 1\n    fi\n\n\n    # Try ethereum/tests\n    source_path=\"${WORKSPACE_PATH}/testpath/$file\"\n    if [ -e \"$source_path\" ]; then\n        file_found=1\n        mkdir -p \"$destination_path\"\n        cp \"$source_path\" \"$destination_path\"\n        echo \"$source_path -> $destination_path\"\n    fi\n\n    # Try ethereum/legacytests\n    source_path=\"${WORKSPACE_PATH}/legacytestpath/Cancun/$file\"\n    base_name=$(basename \"$file\")\n    legacy_file_name=\"legacy_$base_name\"\n    if [ -e \"$source_path\" ]; then\n        file_found=1\n        mkdir -p \"$destination_path\"\n        cp \"$source_path\" \"$destination_path/$legacy_file_name\"\n        echo \"$source_path -> $destination_path\"\n    fi\n\n    if [ $file_found -eq 0 ]; then\n        echo \"Error: Failed to find the test file $file in test repo\"\n        exit 1\n    fi\ndone\n\nexit 0"
  },
  {
    "path": ".github/workflows/check_eip_versions.yaml",
    "content": "name: Check EIP Versions\n\non:\n  repository_dispatch:\n  workflow_dispatch:\n\njobs:\n  check_eip_versions:\n    runs-on: ubuntu-latest\n    permissions:\n      issues: write # required for peter-evans/create-issue-from-file\n      contents: read # needed for API access to GitHub\n    steps:\n      - name: Checkout ethereum/execution-spec-tests\n        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683\n\n      - name: Install uv ${{ vars.UV_VERSION }} and python ${{ matrix.python }}\n        uses: astral-sh/setup-uv@0c5e2b8115b80b4c7c5ddf6ffdd634974642d182\n        with:\n          enable-cache: true\n          cache-dependency-glob: \"uv.lock\"\n          version: ${{ vars.UV_VERSION }}\n          python-version: ${{ matrix.python }}\n\n      - name: Run EIP Version Checker\n        id: check-eip\n        continue-on-error: true\n        env:\n          # GitHub token provides API access for EIP version checking\n          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n        run: |\n          mkdir -p ./reports\n          uv run check_eip_versions 2>&1 | tee ./reports/eip_check_output.txt\n          # Save the exit code but don't fail the workflow\n          exit_code=${PIPESTATUS[0]}\n          echo \"exit_code=$exit_code\" >> $GITHUB_OUTPUT\n          # Always return success to GitHub Actions\n          exit 0\n\n      - name: Generate report file\n        if: steps.check-eip.outputs.exit_code != 0\n        run: |\n          uv run python .github/scripts/generate_eip_report.py ./reports/eip_check_output.txt ./reports/outdated_eips.md\n\n      - name: Create Issue From File\n        if: steps.check-eip.outputs.exit_code != 0\n        uses: peter-evans/create-issue-from-file@e8ef132d6df98ed982188e460ebb3b5d4ef3a9cd\n        with:\n          title: \"chore(tests): eip spec references outdated\"\n          content-filepath: ./reports/outdated_eips.md\n          labels: report, automated issue, scope:tests, type:chore\n\n      - name: Upload test report as artifact\n        if: always()\n        uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02\n        with:\n          name: eip-check-report\n          path: ./reports/\n          retention-days: 30\n"
  },
  {
    "path": ".github/workflows/check_links.yml",
    "content": "name: Check Links\n\non:\n  repository_dispatch:\n  workflow_dispatch:\n\njobs:\n  linkChecker:\n    runs-on: ubuntu-latest\n    permissions:\n      issues: write # required for peter-evans/create-issue-from-file\n    steps:\n      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683\n\n      - name: Link Checker\n        id: lychee\n        uses: lycheeverse/lychee-action@1d97d84f0bc547f7b25f4c2170d87d810dc2fb2c\n        # We use --exclude '\\.md(#.*)?$' to skip internal links in markdown like [See test](../tests/.../test_case.md)\n        # otherwise we get false positives due to links pointing to content that gets generated during our mkdocs flow.\n        # These links are checked during `mkdocs build --strict`\n        with:\n          args: >\n            README.md\n            src/**/*.py\n            src/**/*.md\n            tests/**/*.py\n            tests/**/*.md\n            docs/**/*.md\n            --exclude '\\.md(#.*)?$'\n          fail: false\n\n      - name: Create Issue From File\n        if: steps.lychee.outputs.exit_code != 0\n        uses: peter-evans/create-issue-from-file@e8ef132d6df98ed982188e460ebb3b5d4ef3a9cd\n        with:\n          title: Link Checker Report\n          content-filepath: ./lychee/out.md\n          labels: report, automated issue\n"
  },
  {
    "path": ".github/workflows/coverage.yaml",
    "content": "name: Evmone Coverage Report\n\non:\n  pull_request:\n    paths:\n      - \"tests/**\" # This triggers the workflow for any changes in the tests folder\n      - \"!tests/osaka/**\" # exclude changes in 'tests/osaka'\n      - \"!tests/unscheduled/**\" # exclude changes in 'tests/unscheduled'\n\njobs:\n  evmone-coverage-diff:\n    runs-on: ubuntu-latest\n    \n    env:\n      BLOCK_GAS_LIMIT: \"45000000\"\n      FILL_UNTIL: \"Cancun\"\n\n    steps:\n      - name: Checkout code\n        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683\n\n      - name: Debug GitHub context\n        run: |\n          echo \"Git reference: ${{ github.ref }}\"\n          echo \"Git head ref: ${{ github.head_ref }}\"\n          echo \"Git base ref: ${{ github.base_ref }}\"\n          echo \"Node Version: $(node -v)\"\n          echo \"NPM Version: $(npm -v)\"\n\n      - name: Get all changed python files in tests/ and changes to coverted-ethereum-tests.txt\n        id: changed-tests\n        uses: tj-actions/changed-files@48d8f15b2aaa3d255ca5af3eba4870f807ce6b3c\n        with:\n          # TODO: non-test modules such as __init__.py or spec.py could effect coverage - in this case we should\n          # fill all applicable tests (i.e., all the test_*.py files in or under the changed module's directory)\n          include_all_old_new_renamed_files: true\n          output_renamed_files_as_deleted_and_added: true\n          files_yaml: |\n            tests:\n              - tests/**/test_*.py\n              - '!tests/prague/**'\n              - '!tests/unscheduled/**'\n\n      - name: Exit workflow if there are no changed python files\n        if: steps.changed-tests.outputs.tests_any_changed != 'true'\n        run: |\n          echo \"No python files were changed in ./tests/ - no action necessary\"\n          exit 0\n\n      - name: Report changed python test modules\n        if: steps.changed-tests.outputs.tests_any_changed == 'true'\n        run: |\n          echo \"${{ toJson(steps.changed-tests.outputs) }}\"\n          echo \"Changed python test modules: ${{ steps.changed-tests.outputs.tests_all_modified_files }}\"\n\n      - name: Debug GitHub context\n        run: |\n          echo \"Git reference: ${{ github.ref }}\"\n          echo \"Git head ref: ${{ github.head_ref }}\"\n          echo \"Git base ref: ${{ github.base_ref }}\"\n\n      - name: Log in to Docker Hub\n        if: ${{  steps.changed-tests.outputs.tests_any_changed == 'true' && github.event.pull_request.head.repo.full_name == github.repository }}\n        uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772\n        with:\n          username: marioeth\n          password: ${{ secrets.DOCKERHUB_TOKEN }}\n\n      - name: Install deps\n        if: steps.changed-tests.outputs.tests_any_changed == 'true'\n        run: |\n          echo $(pwd)\n          echo ${{ github.workspace }}\n\n      - name: Install uv ${{ vars.UV_VERSION }} and python ${{ vars.DEFAULT_PYTHON_VERSION }}\n        if: steps.changed-tests.outputs.tests_any_changed == 'true'\n        uses: astral-sh/setup-uv@0c5e2b8115b80b4c7c5ddf6ffdd634974642d182\n        with:\n          enable-cache: false\n          version: ${{ vars.UV_VERSION }}\n          python-version: ${{ vars.DEFAULT_PYTHON_VERSION }}\n\n      - name: Install EEST\n        if: steps.changed-tests.outputs.tests_any_changed == 'true'\n        run: |\n          uv sync --no-progress\n          uv run python --version\n\n      # Required to fill .py tests\n      - name: Build EVMONE EVM\n        uses: ./.github/actions/build-evm-client/evmone\n        if: steps.changed-tests.outputs.tests_any_changed == 'true'\n        id: evm-builder2\n        with:\n          targets: \"evmone-t8n\"\n\n      - name: Checkout ethereum/tests\n        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683\n        if: steps.changed-tests.outputs.tests_any_changed == 'true'\n        with:\n          repository: ethereum/tests\n          path: testpath\n          sparse-checkout: |\n            BlockchainTests\n            EOFTests\n\n      - name: Checkout ethereum/legacytests\n        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683\n        if: steps.changed-tests.outputs.tests_any_changed == 'true'\n        with:\n          repository: ethereum/legacytests\n          path: legacytestpath\n          sparse-checkout: |\n            Cancun/GeneralStateTests\n            Cancun/BlockchainTests\n\n      # This command diffs the file and filters in new lines\n      - name: Parse ported_from markers from introduced .py tests\n        id: ported-from\n        if: steps.changed-tests.outputs.tests_any_changed == 'true'\n        env:\n          CHANGED_TEST_FILES: ${{ steps.changed-tests.outputs.tests_all_changed_files }}\n        run: |\n          ./.github/scripts/parse_ported_tests.sh \"$CHANGED_TEST_FILES\" \"${{ github.workspace }}\" || true\n\n      # This command checks and fills python test sources introduced by a PR\n      - name: Parse and fill introduced test sources\n        if: steps.changed-tests.outputs.tests_any_changed == 'true'\n        env:\n          CHANGED_TEST_FILES: ${{ steps.changed-tests.outputs.tests_all_changed_files }}\n        run: |\n          ./.github/scripts/fill_introduced_tests.sh \"$CHANGED_TEST_FILES\" \"${{ github.workspace }}/evmtest_coverage/coverage/PATCH_TESTS\" \"${{ env.BLOCK_GAS_LIMIT }}\" \"${{ env.FILL_UNTIL }}\"\n\n      - name: Parse and fill introduced test sources from before the PR\n        if: ${{ (steps.changed-tests.outputs.tests_modified_files_count != '0' || steps.changed-tests.outputs.tests_deleted_files_count != '0') && steps.ported-from.outputs.any_ported == 'false' }}\n        id: pre-patch-fill\n        env:\n          MODIFIED_TEST_FILES: ${{ steps.changed-tests.outputs.tests_modified_files }}\n          DELETED_TEST_FILES: ${{ steps.changed-tests.outputs.tests_deleted_files }}\n        run: |\n          ./.github/scripts/fill_prepatched_tests.sh \"$MODIFIED_TEST_FILES $DELETED_TEST_FILES\" \"${{ github.workspace }}/evmtest_coverage/coverage/BASE_TESTS\" \"${{ github.workspace }}/evmtest_coverage/coverage/PATCH_TESTS\" \"${{ env.BLOCK_GAS_LIMIT }}\" \"${{ env.FILL_UNTIL }}\"\n\n      - name: Print Unique Test IDs that will be covered\n        if: ${{ steps.pre-patch-fill.outputs.any_modified_fixtures == 'true' || steps.ported-from.outputs.any_ported == 'true' }}\n        run: |\n          echo \"=== Original BASE (main) test IDs ===\"\n          if [ -f \"${{ github.workspace }}/evmtest_coverage/coverage/BASE_TESTS/.meta/index.json\" ]; then\n            uv run python -c \"import json; data=json.load(open('${{ github.workspace }}/evmtest_coverage/coverage/BASE_TESTS/.meta/index.json')); [print(tc['id']) for tc in data['test_cases']]\"\n          else\n            echo \"No BASE_TESTS/.meta/index.json found\"\n          fi\n          echo \"=== Ported PATCH test IDs ===\"\n          if [ -f \"${{ github.workspace }}/evmtest_coverage/coverage/PATCH_TESTS/.meta/index.json\" ]; then\n            uv run python -c \"import json; data=json.load(open('${{ github.workspace }}/evmtest_coverage/coverage/PATCH_TESTS/.meta/index.json')); [print(tc['id']) for tc in data['test_cases']]\"\n          else\n            echo \"No PATCH_TESTS/.meta/index.json found\"\n          fi\n          echo \"=== SUMMARY ===\"\n          if [ -f \"${{ github.workspace }}/evmtest_coverage/coverage/BASE_TESTS/.meta/index.json\" ] && [ -f \"${{ github.workspace }}/evmtest_coverage/coverage/PATCH_TESTS/.meta/index.json\" ]; then\n            uv run python -c \"import json; base=json.load(open('${{ github.workspace }}/evmtest_coverage/coverage/BASE_TESTS/.meta/index.json')); patch=json.load(open('${{ github.workspace }}/evmtest_coverage/coverage/PATCH_TESTS/.meta/index.json')); print(f'BASE: {len(base[\\\"test_cases\\\"])} tests, PATCH: {len(patch[\\\"test_cases\\\"])} tests, Difference: {len(patch[\\\"test_cases\\\"]) - len(base[\\\"test_cases\\\"])}')\"\n          else\n            echo \"No BASE_TESTS/.meta/index.json or PATCH_TESTS/.meta/index.json found\"\n          fi\n\n      - name: Run coverage of the BASE tests\n        uses: addnab/docker-run-action@4f65fabd2431ebc8d299f8e5a018d79a769ae185\n        if: ${{ steps.pre-patch-fill.outputs.any_modified_fixtures == 'true' || steps.ported-from.outputs.any_ported == 'true' }}\n        with:\n          image: marioeth/evmone-coverage-script:v0.0.1\n          options: -v ${{ github.workspace }}/evmtest_coverage/coverage:/tests\n          run: /entrypoint.sh --mode=cover --testpath=/tests/BASE_TESTS --outputname=BASE\n\n      - name: Run coverage of the PATCH tests\n        uses: addnab/docker-run-action@4f65fabd2431ebc8d299f8e5a018d79a769ae185\n        if: ${{ steps.pre-patch-fill.outputs.any_modified_fixtures == 'true' || steps.ported-from.outputs.any_ported == 'true' }}\n        with:\n          image: marioeth/evmone-coverage-script:v0.0.1\n          options: -v ${{ github.workspace }}/evmtest_coverage/coverage:/tests\n          run: /entrypoint.sh --mode=cover --testpath=/tests/PATCH_TESTS --outputname=PATCH\n\n      - name: Run coverage DIFF of the PATCH tests compared to BASE tests\n        uses: addnab/docker-run-action@4f65fabd2431ebc8d299f8e5a018d79a769ae185\n        if: ${{ steps.pre-patch-fill.outputs.any_modified_fixtures == 'true' || steps.ported-from.outputs.any_ported == 'true' }}\n        with:\n          image: marioeth/evmone-coverage-script:v0.0.1\n          options: -v ${{ github.workspace }}/evmtest_coverage/coverage:/tests\n          run: /entrypoint.sh --mode=diff --basefile=coverage_BASE.lcov --patchfile=coverage_PATCH.lcov\n\n      - name: Chmod coverage results\n        if: ${{ steps.pre-patch-fill.outputs.any_modified_fixtures == 'true' || steps.ported-from.outputs.any_ported == 'true' }}\n        run: |\n          user=$(whoami)\n          sudo chown -R $user:$user ${{ github.workspace }}/evmtest_coverage/coverage\n\n      - name: Upload coverage results\n        uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02\n        if: ${{ steps.pre-patch-fill.outputs.any_modified_fixtures == 'true' || steps.ported-from.outputs.any_ported == 'true' }}\n        with:\n          name: coverage-diff-native-${{ github.run_id }}-${{ github.run_attempt }}\n          path: ${{ github.workspace }}/evmtest_coverage/coverage\n          compression-level: 6 # Default compression level for optimal balance\n\n      - name: Verify coverage results\n        uses: addnab/docker-run-action@4f65fabd2431ebc8d299f8e5a018d79a769ae185\n        if: ${{ steps.pre-patch-fill.outputs.any_modified_fixtures == 'true' || steps.ported-from.outputs.any_ported == 'true' }}\n        with:\n          image: marioeth/evmone-coverage-script:v0.0.1\n          options: -v ${{ github.workspace }}/evmtest_coverage/coverage:/tests\n          run: /check.sh\n"
  },
  {
    "path": ".github/workflows/docs_deploy.yaml",
    "content": "name: Deploy Docs\n\npermissions:\n  pages: write # Required for deploying to GitHub Pages with `secrets.GITHUB_TOKEN`\n\non:\n  push:\n    tags:\n      - \"v[0-9]+.[0-9]+.[0-9]+*\" # Push events to matching v*, i.e. v1.0, v20.15.10, v0.1.1a1\n    branches:\n      - main\n\njobs:\n  deploy:\n    if: github.repository_owner == 'ethereum' # don't run on forks\n    runs-on: ubuntu-latest\n\n    steps:\n      - name: Checkout\n        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683\n        with:\n          fetch-depth: 0\n          ssh-key: ${{secrets.GH_ACTIONS_DEPLOY_KEY}}\n      - name: Build transition tool\n        uses: ./.github/actions/build-evm-base\n        with:\n          id: evm-builder\n          type: stable\n      - name: Install uv ${{ vars.UV_VERSION }} and python ${{ vars.DEFAULT_PYTHON_VERSION }}\n        uses: astral-sh/setup-uv@0c5e2b8115b80b4c7c5ddf6ffdd634974642d182\n        with:\n          enable-cache: true\n          cache-dependency-glob: \"uv.lock\"\n          version: ${{ vars.UV_VERSION }}\n          python-version: ${{ vars.DEFAULT_PYTHON_VERSION }}\n      - name: Install EEST and dependencies\n        run: uv sync --extra=docs --no-progress\n      - name: Setup doc deploy\n        run: |\n          git config --global user.name \"github-actions[bot]\"\n          git config --global user.email github-actions[bot]@users.noreply.github.com\n      - name: Build and deploy docs to gh-pages\n        if: ${{ github.ref_type == 'branch' }}\n        run: |\n          uv run mike deploy --update-aliases --push --remote origin main development\n      - name: Build and deploy docs to gh-pages\n        if: ${{ github.ref_type == 'tag' }}\n        run: |\n          uv run mike deploy --push --remote origin ${{ github.ref_name }}\n"
  },
  {
    "path": ".github/workflows/fixtures.yaml",
    "content": "name: Build and Package Fixtures\n\non:\n  push:\n    tags:\n      - \"v[0-9]+.[0-9]+.[0-9]+*\"\n  workflow_dispatch:\n\njobs:\n  features:\n    runs-on: ubuntu-latest\n    outputs:\n      features: ${{ steps.parse.outputs.features }}\n    steps:\n      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683\n      - name: Get names from .github/configs/feature.yaml\n        id: parse\n        shell: bash\n        run: |\n          # Get all features without `feature_only: true`\n          grep -Po \"^[0-9a-zA-Z_\\-]+\" ./.github/configs/feature.yaml | \\\n          while read feature; do\n            if ! awk \"/^$feature:/{flag=1; next} /^[[:alnum:]]/{flag=0} flag && /feature_only:.*true/{exit 1}\" \\\n                  ./.github/configs/feature.yaml; then\n              continue\n            fi\n            echo \"$feature\"\n          done | jq -R . | jq -cs . > features.json\n          echo \"features=$(cat features.json)\" >> \"$GITHUB_OUTPUT\"\n  build:\n    needs: features\n    runs-on: [self-hosted-ghr, size-gigachungus-x64]\n    timeout-minutes: 1440\n    strategy:\n      matrix:\n        name: ${{ fromJson(needs.features.outputs.features) }}\n    steps:\n      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683\n        with:\n          submodules: true\n      - name: Fetch lllc\n        uses: ./.github/actions/fetch-binary\n        with:\n          version: v1.0.0\n          repo_owner: felix314159\n          repo_name: lllc-custom\n          remote_name: lllc\n          binary_name: lllc\n          expected_sha256: 865a0d5379acb3b5471337b5dcf686a2dd71587c6b65b9da6c963de627e0b300\n      - name: Fetch Solidity\n        uses: ./.github/actions/fetch-binary\n        with:\n          version: v0.8.24\n          repo_owner: ethereum\n          repo_name: solidity\n          remote_name: solc-static-linux\n          binary_name: solc\n          expected_sha256: fb03a29a517452b9f12bcf459ef37d0a543765bb3bbc911e70a87d6a37c30d5f\n      - uses: ./.github/actions/build-fixtures\n        with:\n          release_name: ${{ matrix.name }}\n          uv_version: ${{ vars.UV_VERSION }}\n          python_version: ${{ vars.DEFAULT_PYTHON_VERSION }}\n  release:\n    runs-on: ubuntu-latest\n    needs: build\n    if: startsWith(github.ref, 'refs/tags/')\n    steps:\n      - name: Download artifacts\n        uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e\n        with:\n          path: .\n      - name: Draft Release\n        uses: softprops/action-gh-release@c95fe1489396fe8a9eb87c0abf8aa5b2ef267fda\n        with:\n          files: \"./**\"\n          draft: true\n          generate_release_notes: true\n          fail_on_unmatched_files: true\n"
  },
  {
    "path": ".github/workflows/fixtures_feature.yaml",
    "content": "name: Build and Package Fixtures for a feature\n\non:\n  push:\n    tags:\n      - \"*@v*\"\n  workflow_dispatch:\n\njobs:\n  feature-names:\n    runs-on: ubuntu-latest\n    outputs:\n      names: ${{ steps.feature-name.outputs.names }}\n    steps:\n      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683\n        with:\n          submodules: false\n      - name: Get feature names\n        id: feature-name\n        shell: bash\n        run: |\n          names=$(grep -Po \"^${GITHUB_REF_NAME//@*/}[^:]*\" .github/configs/feature.yaml | jq  --raw-input .  | jq -c --slurp .)\n          echo names=${names}\n          echo names=${names} >> \"$GITHUB_OUTPUT\"\n  build:\n    needs: feature-names\n    runs-on: [self-hosted-ghr, size-gigachungus-x64]\n    timeout-minutes: 1440\n    strategy:\n      matrix:\n        feature: ${{ fromJSON(needs.feature-names.outputs.names) }}\n    steps:\n      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683\n        with:\n          submodules: true\n      - name: Fetch lllc\n        uses: ./.github/actions/fetch-binary\n        with:\n          version: v1.0.0\n          repo_owner: felix314159\n          repo_name: lllc-custom\n          remote_name: lllc\n          binary_name: lllc\n          expected_sha256: 865a0d5379acb3b5471337b5dcf686a2dd71587c6b65b9da6c963de627e0b300\n      - name: Fetch Solidity\n        uses: ./.github/actions/fetch-binary\n        with:\n          version: v0.8.24\n          repo_owner: ethereum\n          repo_name: solidity\n          remote_name: solc-static-linux\n          binary_name: solc\n          expected_sha256: fb03a29a517452b9f12bcf459ef37d0a543765bb3bbc911e70a87d6a37c30d5f\n      - uses: ./.github/actions/build-fixtures\n        with:\n          release_name: ${{ matrix.feature }}\n          uv_version: ${{ vars.UV_VERSION }}\n          python_version: ${{ vars.DEFAULT_PYTHON_VERSION }}\n  release:\n    runs-on: ubuntu-latest\n    needs: build\n    if: startsWith(github.ref, 'refs/tags/')\n    steps:\n      - name: Download artifacts\n        uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e\n        with:\n          path: .\n      - name: Draft Pre-release\n        uses: softprops/action-gh-release@c95fe1489396fe8a9eb87c0abf8aa5b2ef267fda\n        with:\n          files: \"./**\"\n          draft: true\n          prerelease: true\n          generate_release_notes: true\n          fail_on_unmatched_files: true\n"
  },
  {
    "path": ".github/workflows/tox_verify.yaml",
    "content": "name: Tox\n\non:\n  push:\n    branches: [main]\n  pull_request:\n  workflow_dispatch:\n\nconcurrency:\n  group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}\n  cancel-in-progress: true\n\njobs:\n  lint:\n    name: Lint python sources with ruff\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout ethereum/execution-spec-tests\n        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683\n      - name: Install uv ${{ vars.UV_VERSION }} and python ${{ vars.DEFAULT_PYTHON_VERSION }}\n        uses: astral-sh/setup-uv@0c5e2b8115b80b4c7c5ddf6ffdd634974642d182\n        with:\n          enable-cache: true\n          cache-dependency-glob: \"uv.lock\"\n          version: ${{ vars.UV_VERSION }}\n          python-version: ${{ vars.DEFAULT_PYTHON_VERSION }}\n      - name: Run ruff linter via tox\n        run: uvx --with=tox-uv tox -e lint\n\n  typecheck:\n    name: Typecheck python sources with mypy\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout ethereum/execution-spec-tests\n        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683\n      - name: Install uv ${{ vars.UV_VERSION }} and python ${{ vars.DEFAULT_PYTHON_VERSION }}\n        uses: astral-sh/setup-uv@0c5e2b8115b80b4c7c5ddf6ffdd634974642d182\n        with:\n          enable-cache: true\n          cache-dependency-glob: \"uv.lock\"\n          version: ${{ vars.UV_VERSION }}\n          python-version: ${{ vars.DEFAULT_PYTHON_VERSION }}\n      - name: Run mypy typechecker via tox\n        run: uvx --with=tox-uv tox -e typecheck\n\n  spellcheck:\n    name: Spellcheck sources with codespell\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout ethereum/execution-spec-tests\n        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683\n      - name: Install uv ${{ vars.UV_VERSION }} and python ${{ vars.DEFAULT_PYTHON_VERSION }}\n        uses: astral-sh/setup-uv@0c5e2b8115b80b4c7c5ddf6ffdd634974642d182\n        with:\n          enable-cache: true\n          cache-dependency-glob: \"uv.lock\"\n          version: ${{ vars.UV_VERSION }}\n          python-version: ${{ vars.DEFAULT_PYTHON_VERSION }}\n      - name: Run spellcheck with codespell via tox\n        run: uvx --with=tox-uv tox -e spellcheck\n        env:\n          GITHUB_STEP_SUMMARY: ${{ env.GITHUB_STEP_SUMMARY }}\n\n  changelog:\n    name: Validate changelog entries\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout ethereum/execution-spec-tests\n        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683\n      - name: Install uv ${{ vars.UV_VERSION }} and python ${{ vars.DEFAULT_PYTHON_VERSION }}\n        uses: astral-sh/setup-uv@0c5e2b8115b80b4c7c5ddf6ffdd634974642d182\n        with:\n          enable-cache: true\n          cache-dependency-glob: \"uv.lock\"\n          version: ${{ vars.UV_VERSION }}\n          python-version: ${{ vars.DEFAULT_PYTHON_VERSION }}\n      - name: Run changelog validation via tox\n        run: uvx --with=tox-uv tox -e changelog\n\n  markdownlint:\n    name: Lint markdown files with markdownlint\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout ethereum/execution-spec-tests\n        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683\n      - uses: DavidAnson/markdownlint-cli2-action@05f32210e84442804257b2a6f20b273450ec8265\n        with:\n          globs: |\n            README.md\n            docs/**/*.md\n\n  mkdocs:\n    name: Build html documentation with mkdocs\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout ethereum/execution-spec-tests\n        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683\n      - name: Install uv ${{ vars.UV_VERSION }} and python ${{ vars.DEFAULT_PYTHON_VERSION }}\n        uses: astral-sh/setup-uv@0c5e2b8115b80b4c7c5ddf6ffdd634974642d182\n        with:\n          enable-cache: true\n          cache-dependency-glob: \"uv.lock\"\n          version: ${{ vars.UV_VERSION }}\n          python-version: ${{ vars.DEFAULT_PYTHON_VERSION }}\n      - name: Build html documentation with mkdocs via tox\n        run: uvx --with=tox-uv tox -e mkdocs\n\n  pytest_framework:\n    name: Run unit tests, ${{ matrix.os }}, ${{ matrix.python }}\n    runs-on: ${{ matrix.os }}\n    strategy:\n      matrix:\n        include:\n          - os: macos-15\n            python: \"3.11\"\n          - os: macos-15\n            python: \"pypy3.11\"\n          - os: ubuntu-latest\n            python: \"3.12\"\n    steps:\n      - name: Checkout ethereum/execution-spec-tests\n        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683\n      - name: Checkout ethereum/execution-specs for local EELS implementation\n        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683\n        with:\n          repository: marioevz/execution-specs\n          ref: 3387e5f4aedfe99becfdc39b444d6371e25e0924\n          path: execution-specs\n          fetch-depth: 1\n      - name: Install uv ${{ vars.UV_VERSION }} and python ${{ matrix.python }}\n        uses: astral-sh/setup-uv@0c5e2b8115b80b4c7c5ddf6ffdd634974642d182\n        with:\n          enable-cache: true\n          cache-dependency-glob: \"uv.lock\"\n          version: ${{ vars.UV_VERSION }}\n          python-version: ${{ matrix.python }}\n      - name: Build EVMONE EVM\n        uses: ./.github/actions/build-evm-client/evmone\n        with:\n          targets: \"evmone-t8n\"\n      - name: Build GETH EVM\n        uses: ./.github/actions/build-evm-client/geth\n      - name: Update eels_resolutions.json\n        run: |\n          sed -i -e \"s|\\$GITHUB_WORKSPACE|${GITHUB_WORKSPACE}|g\" .github/configs/eels_resolutions.json\n      - name: Run tox - run framework unit tests with pytest\n        env:\n          EELS_RESOLUTIONS_FILE: ${{ github.workspace }}/.github/configs/eels_resolutions.json\n        run: uvx --with=tox-uv tox -e pytest\n\n  tests_deployed:\n    name: Fill tests, deployed, ${{ matrix.name }}, ${{ matrix.python }}\n    runs-on: ${{ matrix.os }}\n    strategy:\n      matrix:\n        include:\n          - os: [self-hosted-ghr, size-chungus-x64]\n            name: self-hosted-ghr-chungus-x64\n            python: \"3.11\"\n          - os: macos-15\n            name: macos-15\n            python: \"3.12\"\n    steps:\n      - name: Checkout ethereum/execution-spec-tests\n        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683\n      - name: Checkout ethereum/execution-specs for local EELS implementation\n        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683\n        with:\n          repository: marioevz/execution-specs\n          ref: 3387e5f4aedfe99becfdc39b444d6371e25e0924\n          path: execution-specs\n          fetch-depth: 1\n      - name: Install uv ${{ vars.UV_VERSION }} and python ${{ matrix.python }}\n        uses: astral-sh/setup-uv@0c5e2b8115b80b4c7c5ddf6ffdd634974642d182\n        with:\n          enable-cache: true\n          cache-dependency-glob: \"uv.lock\"\n          version: ${{ vars.UV_VERSION }}\n          python-version: ${{ matrix.python }}\n      - name: Update eels_resolutions.json\n        run: |\n          sed -i -e \"s|\\$GITHUB_WORKSPACE|${GITHUB_WORKSPACE}|g\" .github/configs/eels_resolutions.json\n      - name: Run tox - fill tests for deployed forks\n        env:\n          EELS_RESOLUTIONS_FILE: ${{ github.workspace }}/.github/configs/eels_resolutions.json\n        run: uvx --with=tox-uv tox -e tests-deployed\n  tests_deployed_benchmark:\n    name: Fill benchmark test cases, deployed, ${{ matrix.os }}, ${{ matrix.python }}\n    runs-on: ${{ matrix.os }}\n    strategy:\n      matrix:\n        include:\n          - os: ubuntu-latest\n            python: \"3.11\"\n          - os: macos-15\n            python: \"3.12\"\n          - os: ubuntu-latest\n            python: \"pypy3.11\"\n    steps:\n      - name: Checkout ethereum/execution-spec-tests\n        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683\n      - name: Install uv ${{ vars.UV_VERSION }} and python ${{ matrix.python }}\n        uses: astral-sh/setup-uv@0c5e2b8115b80b4c7c5ddf6ffdd634974642d182\n        with:\n          enable-cache: true\n          cache-dependency-glob: \"uv.lock\"\n          version: ${{ vars.UV_VERSION }}\n          python-version: ${{ matrix.python }}\n      - name: Build EVMONE EVM\n        uses: ./.github/actions/build-evm-client/evmone\n        with:\n          targets: \"evmone-t8n\"\n      - name: Run tox - fill tests for deployed forks\n        env:\n          EELS_RESOLUTIONS_FILE: ${{ github.workspace }}/.github/configs/eels_resolutions.json\n        run: uvx --with=tox-uv tox -e tests-deployed-benchmark\n"
  },
  {
    "path": ".gitignore",
    "content": ".DS_Store\n.AppleDouble\n.LSOverride\n\n.python-version\n*.py[cod]\n*$py.class\n.venv/\nvenv/\n\n# Artifacts created by `fill`\nfixtures/\nfixtures-*/\nlogs/\n/out/\n\n# C extensions\n*.so\n\n# Distribution / packaging\n.Python\nbuild/\ndevelop-eggs/\ndist/\ndownloads/\neggs/\n.eggs/\nparts/\nsdist/\nvar/\nwheels/\npip-wheel-metadata/\nshare/python-wheels/\n*.egg-info/\n.installed.cfg\n*.egg\nMANIFEST\n\n# pycharm\n.idea/\n\n*.manifest\n*.spec\n\npip-log.txt\npip-delete-this-directory.txt\n\n.tox/\n\n/doc/_autosummary\n\n.coverage\n\n# misc\n*.code-workspace\nverify_kzg_proof\n.vscode/launch.json\n\n# docs\n_readthedocs\nsite\nvenv-docs/\n.pyspelling_en.dict\n\n# cache-related\ncached_downloads/\n.cache\n__pycache__/\n.mypy_cache/\n.pytest_cache/\n.ruff_cache/\n\n\n# pytest report\nassets\n*.html\n\n# Environment\nenv.yaml\n.env\n.env.*\n\n# Framework logs\nlogs/\n*.log\n\n# node\nnode_modules/\npackage-lock.json\n\n# Running github actions locally with act\n.act_github_vars\n\n# temporary files\n*.tmp\n*.temp\n\n# ai\n.claude/"
  },
  {
    "path": ".lycheeignore",
    "content": "http://localhost/\nhttp://127.0.0.1:3000/\nhttps://github/\nttps://github.com/%7Bself.RepositoryOwner%7D/\nhttps://api.github.com/repos/%7Bself.RepositoryOwner%7D/\nhttps://api.github.com/repos/%7Brepo%7D/releases\nhttps://github.com/ethereum/execution-spec-tests/releases/download/\n"
  },
  {
    "path": ".markdownlint.yaml",
    "content": "# All rules: https://github.com/DavidAnson/markdownlint#rules--aliases\ndefault: true # Default state for all rules\nMD013: false # line-length: We don't fill paragaraphs/limit line length\nMD034: false # no-bare-urls - We use pymdownx.magiclink which allows bare urls\nMD046: false # code-block-style - This doesn't play well with material's admonitions)\nMD024: false # no-duplicate-heading - We use duplicate headings in the changelog.\nMD033: false # no-inline-html - Too strict.\nul-indent:\n  indent: 4\n  start_indent: 4\n"
  },
  {
    "path": ".pre-commit-config.yaml",
    "content": "repos:\n  - repo: local\n    hooks:\n      - id: tox\n        name: tox\n        entry: uvx --with=tox-uv tox --parallel -e lint,typecheck,spellcheck\n        language: system\n        types: [python]\n        pass_filenames: false\n      - id: tox-docs\n        name: tox-docs\n        entry: uvx --with=tox-uv tox --parallel -e spellcheck,markdownlint\n        language: system\n        files: \\.md$\n        pass_filenames: false\n      - id: tox-changelog\n        name: tox-changelog\n        entry: uvx --with=tox-uv tox -e changelog\n        language: system\n        files: ^docs/CHANGELOG\\.md$\n        pass_filenames: false\n"
  },
  {
    "path": ".pyspelling.yml",
    "content": "matrix:\n- name: markdown\n  pipeline:\n  - pyspelling.filters.markdown:\n  - pyspelling.filters.html:\n      comments: false\n      attributes:\n      - title\n      - alt\n      ignores:\n      - code\n      - pre\n      - a\n  aspell:\n    lang: en\n    d: en_US\n  dictionary:\n    wordlists:\n      - whitelist.txt\n    output: .pyspelling_en.dict\n  sources:\n  - 'docs/**/*.md'\n"
  },
  {
    "path": ".readthedocs.yaml",
    "content": "# .readthedocs.yaml\n# Read the Docs configuration file\n# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details\n\nversion: 2\n\n# Set the version of Python and other tools you might need\nbuild:\n  os: ubuntu-22.04\n  tools:\n    python: \"3.11\"\n\nmkdocs:\n  configuration: mkdocs.yml\n\npython:\n   install:\n   - requirements: docs/rtdio_requirements.txt\n\nformats:\n  - epub\n  - pdf"
  },
  {
    "path": ".vscode/extensions.json",
    "content": "{\n    // List of extensions that MUST be used for users of the repo.\n    \"recommendations\": [\n        \"ms-python.python\",\n        \"ms-python.mypy-type-checker\",\n        \"ms-python.vscode-pylance\",\n        \"charliermarsh.ruff\",\n        \"esbenp.prettier-vscode\",\n        \"njpwerner.autodocstring\",\n        \"streetsidesoftware.code-spell-checker\",\n        \"tamasfe.even-better-toml\",\n        \"bierner.markdown-mermaid\",\n        \"bpruitt-goddard.mermaid-markdown-syntax-highlighting\",\n        \"DavidAnson.vscode-markdownlint\",\n        \"soulcode.vscode-unwanted-extensions\"\n    ],\n    // List of extensions that MUST NOT be used for users of the repo.\n    \"unwantedRecommendations\": [\n        \"ms-python.black-formatter\",\n        \"ms-python.flake8\",\n        \"ms-python.isort\"\n    ]\n}\n"
  },
  {
    "path": ".vscode/launch.recommended.json",
    "content": "{\n    \"_comment\": [\n        \"Main configuration for VS Code debugging\",\n        \"Use IntelliSense to learn about possible attributes.\",\n        \"If the VS Code 'Run and Debug' button or launch selector\",\n        \"is not visible, see: https://stackoverflow.com/a/74245823\"\n    ],\n    \"version\": \"0.2.0\",\n    \"configurations\": [\n        {\n            \"name\": \"Launch consume direct\",\n            \"type\": \"debugpy\",\n            \"request\": \"launch\",\n            \"module\": \"pytest\",\n            \"args\": [\n                \"-c\",\n                \"${workspaceFolder}/src/cli/pytest_commands/pytest_ini_files/pytest-consume.ini\",\n                \"src/pytest_plugins/consume/direct/test_via_direct.py\",\n                \"--bin\",\n                \"${input:evmBinary}\",\n                \"--input\",\n                \"${input:fixturePath}\"\n            ],\n            \"cwd\": \"${workspaceFolder}\"\n        },\n        {\n            \"name\": \"Launch fill --until choose fork\",\n            \"type\": \"debugpy\",\n            \"request\": \"launch\",\n            \"module\": \"pytest\",\n            \"args\": [\n                \"-c\",\n                \"${workspaceFolder}/src/cli/pytest_commands/pytest_ini_files/pytest-fill.ini\",\n                \"--until\",\n                \"${input:fork}\",\n                \"--evm-bin\",\n                \"${input:evmBinary}\",\n                \"-v\"\n            ],\n            \"cwd\": \"${workspaceFolder}\"\n        },\n        {\n            \"name\": \"Launch fill -k choose test path\",\n            \"type\": \"debugpy\",\n            \"request\": \"launch\",\n            \"module\": \"pytest\",\n            \"args\": [\n                \"-c\",\n                \"${workspaceFolder}/src/cli/pytest_commands/pytest_ini_files/pytest-fill.ini\",\n                \"--until\",\n                \"Cancun\",\n                \"--evm-bin\",\n                \"${input:evmBinary}\",\n                \"-v\",\n                \"-k\",\n                \"${input:testPathOrId}\"\n            ],\n            \"cwd\": \"${workspaceFolder}\"\n        },\n        {\n            \"name\": \"Launch fill --until Cancun\",\n            \"type\": \"debugpy\",\n            \"request\": \"launch\",\n            \"module\": \"pytest\",\n            \"args\": [\n                \"-c\",\n                \"${workspaceFolder}/src/cli/pytest_commands/pytest_ini_files/pytest-fill.ini\",\n                \"--until\",\n                \"Cancun\",\n                \"--evm-bin\",\n                \"${input:evmBinary}\",\n                \"-v\"\n            ],\n            \"cwd\": \"${workspaceFolder}\"\n        },\n        {\n            \"name\": \"Launch fill --until Prague\",\n            \"type\": \"debugpy\",\n            \"request\": \"launch\",\n            \"module\": \"pytest\",\n            \"args\": [\n                \"-c\",\n                \"${workspaceFolder}/src/cli/pytest_commands/pytest_ini_files/pytest-fill.ini\",\n                \"--until\",\n                \"Prague\",\n                \"--evm-bin\",\n                \"${input:evmBinary}\",\n                \"-v\"\n            ],\n            \"cwd\": \"${workspaceFolder}\"\n        }\n    ],\n    \"inputs\": [\n        {\n            \"type\": \"pickString\",\n            \"id\": \"evmBinary\",\n            \"description\": \"Which evm binary to you want to run?\",\n            \"options\": [\n                {\n                    \"label\": \"First evm binary in PATH\",\n                    \"value\": \"evm\"\n                },\n                {\n                    \"label\": \"Geth, mario's repo\",\n                    \"value\": \"~/code/github/marioevz/go-ethereum/build/bin/evm\"\n                },\n                {\n                    \"label\": \"Geth, danceratopz's repo\",\n                    \"value\": \"~/code/github/danceratopz/go-ethereum/build/bin/evm\"\n                },\n                {\n                    \"label\": \"evmone\",\n                    \"value\": \"~/code/github/ethereum/evmone/build/bin/evmone-t8n\"\n                },\n                {\n                    \"label\": \"besu\",\n                    \"value\": \"~/code/github/danceratopz/besu/ethereum/evmtool/build/install/evmtool/bin/evm\"\n                }\n            ],\n            \"default\": \"evm\"\n        },\n        {\n            \"type\": \"pickString\",\n            \"id\": \"fork\",\n            \"description\": \"Which fork do you want to use?\",\n            \"options\": [\n                \"Frontier\",\n                \"Homestead\",\n                \"Byzantium\",\n                \"Constantinople\",\n                \"ConstantinopleFix\",\n                \"Istanbul\",\n                \"Berlin\",\n                \"London\",\n                \"Paris\",\n                \"Shanghai\",\n                \"Cancun\",\n                \"Prague\"\n            ],\n            \"default\": \"Cancun\"\n        },\n        {\n            \"type\": \"promptString\",\n            \"id\": \"testPathOrId\",\n            \"description\": \"Enter a test path string or id to provide to pytest -k\",\n            \"default\": \"test_\"\n        },\n        {\n            \"type\": \"promptString\",\n            \"id\": \"fixturePath\",\n            \"description\": \"Enter a fixture path\",\n            \"default\": \"${workspaceFolder}/fixtures\"\n        }\n    ]\n}\n"
  },
  {
    "path": ".vscode/settings.json",
    "content": "{\n    // Settings that users SHOULD adhere to when developing with the EEST repo.\n    \"cSpell.customDictionaries\": {\n        \"project-words\": {\n            \"name\": \"project-words\",\n            \"path\": \"${workspaceRoot}/whitelist.txt\",\n            \"description\": \"Words used in this project\",\n            \"addWords\": true\n        },\n        \"custom\": true,\n        \"internal-terms\": false\n    },\n    \"[json]\": {\n        \"editor.defaultFormatter\": \"esbenp.prettier-vscode\"\n    },\n    \"[python]\": {\n        \"editor.rulers\": [79, 100],\n        \"editor.formatOnSave\": true,\n        \"editor.defaultFormatter\": \"charliermarsh.ruff\",\n        \"editor.codeActionsOnSave\": {\n            \"source.organizeImports\": \"explicit\",\n            \"source.fixAll.ruff\": \"explicit\",\n        },\n    },\n    \"python.analysis.autoFormatStrings\": true,\n    \"python.testing.unittestEnabled\": false,\n    \"python.testing.pytestEnabled\": true,\n    \"python.testing.pytestArgs\": [\n        // The main cli tools (`fill`, `consume`, `execute`) in execution-spec-tests are based\n        // on pytest (a very popular Python unit testing framework). As such, EEST test cases for\n        // these tools can be explored, executed (and debugged!) via VS Code's \"Testing\" view \n        // https://code.visualstudio.com/docs/editor/testing (just as for unit tests).\n        // \n        // vscode-python only supports single framework environments, here is the issue to track\n        // multiple environments support:\n        // https://github.com/microsoft/vscode-python/issues/12075\n        //\n        // For now, to switch between running the EEST \"framework\" tests (the actual unit tests \n        // for EEST libraries and tools) and running the EEST's EL test cases via `fill`,\n        // `consume` and `execute`, specify the appropriate pytest*.ini file below and add\n        // command-line options as needed.\n        //\n        // * Framework tests:\n        // \"-c\", \"pytest-framework.ini\",\n        // \n        // * Fill, see the output of:\n        //   `fill --help` for eest specific options, or,\n        //   `fill --pytest-help` for all pytest available options, or,\n        //   https://eest.ethereum.org/main/filling_tests/filling_tests_command_line/\n        \"-c\", \"pytest.ini\", \"--fork=Prague\",\n        //\n        // * Consume (works, but the output of VS Code's Testing View is broken due to nested\n        // `[]` in the generated test IDs):\n        // \"-c\", \"pytest-consume.ini\", \"--input=fixtures/\", \"src/pytest_plugins/consume/direct/test_via_direct.py\", \"--evm-bin=~/bin/evm\"\n    ],\n    \"ruff.enable\": true,\n    \"ruff.lineLength\": 99,\n    \"ruff.logLevel\": \"error\",\n    \"extensions.ignoreRecommendations\": false,\n    \"search.exclude\": {\n      \"tests/static\": true\n    },\n    \"files.watcherExclude\": {\n      \"tests/static\": true\n    }\n}\n"
  },
  {
    "path": "CLAUDE.md",
    "content": "# CLAUDE.md - Ethereum Execution Spec Tests\n\n> **CRITICAL**: This repository aims to provide excellent tooling for generating JSON test vectors that test Ethereum execution layer clients. Correctness is absolute priority. The repo prioritizes a contributor-first mindset.\n\n## 🎯 Core Purpose\n\n- `./tests/`: Python tests that **generate JSON test vectors (fixtures)** via `fill` command\n- `./src/pytest_plugins/filler/`: Implements `fill` command (test vector generation from Python source)\n- `./src/pytest_plugins/consume/`: Implements `consume` command (test vector execution)\n- `./src/pytest_plugins/execute/`: Implements `execute` command (live JSON-RPC testing from Python source)\n- `./src/ethereum_test_*`: Core framework libraries and data structures\n\n### Key Terminology (CRITICAL)\n\n**\"Fixtures\" has TWO meanings:**\n\n1. **Test Fixtures** (JSON files) - The test vectors this framework generates\n2. **Pytest Fixtures** - Standard pytest setup/teardown (`pre`, `state_test`, etc.)\n\n### Workflows\n\n```text\nFill/Consume: Python Tests → fill → JSON Fixtures → consume → Client Testing\nExecute: Python Tests → execute → Live JSON-RPC Testing\n```\n\n## 🚀 Essential Commands\n\nAll commands use `uv run` prefix. The `uv sync --all-extras` command (below) automatically creates and manages a virtual environment.\n\n### Setup\n\n```bash\nuv sync --all-extras\nuvx pre-commit install\n```\n\n### Core Workflow\n\n```bash\n# Create test\nuv run eest make test\n\n# Generate fixtures (PRIMARY WORKFLOW)\nuv run fill --fork=Prague path/to/test.py --clean -v -m \"not slow\"\n\n# Execute against client\nuv run consume direct --bin=evm fixtures/\n\n# Framework testing\nuv run pytest path/to/test.py::test_function\n```\n\n### Quality Checks\n\n```bash\n# Check code style and errors\nuv run ruff check src tests .github/scripts\n\n# Format code\nuv run ruff format src tests .github/scripts\n\n# Fix auto-fixable issues\nuv run ruff check --fix src tests .github/scripts\n\n# Type checking\nuv run mypy src tests .github/scripts\n\n# Framework unit tests\nuv run pytest -n auto\n\n# Run specific checks (fast checks)\nuvx --with=tox-uv tox -e lint,typecheck,spellcheck\n\n# Local docs check (fast mode: these warnings can be ignored \"WARNING -  Doc file 'writing_tests/...\"):\nexport FAST_DOCS=true && export GEN_TEST_DOC_VERSION=\"tox\" && uv run mkdocs build\n```\n\n## 🎯 Core Framework Rules\n\n### NEVER Use Hardcoded Addresses\n\n```python\ndef test_example(pre: Alloc, state_test: StateTestFiller):\n    # ✅ Dynamic allocation\n    sender = pre.fund_eoa()\n    contract = pre.deploy_contract(code=Op.SSTORE(1, 1))\n    \n    tx = Transaction(sender=sender, to=contract, gas_limit=5_000_000)\n    state_test(pre=pre, tx=tx, post={contract: Account(storage={1: 1})})\n```\n\n### Key Methods\n\n- `pre.deploy_contract(code, **kwargs) -> Address`\n- `pre.fund_eoa(amount=None, **kwargs) -> EOA`\n- `pre.fund_address(address, amount)`\n\n### Gas Calculation Pattern\n\n```python\nintrinsic_gas_calculator = fork.transaction_intrinsic_cost_calculator()\ntx_gas_limit = intrinsic_gas_calculator(\n    calldata=tx_data,\n    contract_creation=False,\n    access_list=access_lists,\n) + 100_000\n```\n\n## 📁 Key Directories\n\n```text\nsrc/\n├── ethereum_test_tools/     # Core framework\n├── ethereum_test_types/     # Type definitions\n├── ethereum_test_fixtures/  # Pydantic models for test fixtures\n├── pytest_plugins/         # Plugin system\ntests/                       # Test cases by fork\nfixtures/                    # Generated test vectors (default output directory)\n```\n\n## ⚠️ Critical Anti-Patterns\n\n- ❌ Hardcoded addresses (use `pre` fixture)\n- ❌ `TestAddress` in new tests (use `pre.fund_eoa()`)\n- ❌ Missing `sender` parameter in transactions\n- ❌ Missing `@pytest.mark.valid_from(\"Fork\")` markers\n- ❌ Manual nonce management\n\n## 🔧 Common Patterns\n\n### Fork Compatibility\n\n```python\n@pytest.mark.valid_from(\"Cancun\")\ndef test_example(pre: Alloc, state_test: StateTestFiller):\n    if fork >= Fork.Cancun:\n        # Cancun-specific logic\n    else:\n        # Pre-Cancun logic\n```\n\n### Parameterized Tests\n\n```python\n@pytest.mark.parametrize(\"value\", [0, 1, 2**256-1])\ndef test_with_params(value: int, pre: Alloc, state_test: StateTestFiller):\n```\n\n## 🐛 Debugging Test Filling\n\n### Generate EVM Traces\n\n```bash\nuv run fill --fork=Prague --evm-dump-dir=debug_output/ --traces path/to/test.py\njq -r '.opName' debug_output/**/*.jsonl\n```\n\n### Common Issues\n\n- **Fill failures**: Check gas limits (increase if needed, use `transaction_intrinsic_cost_calculator`)\n- **Address conflicts**: Always use `pre` fixture for dynamic allocation\n- **Test collection**: Functions must start with `test_`\n- **Import errors**: Check dependencies in `pyproject.toml`, run `uv sync --all-extras`\n\n## 📝 Code Standards\n\n- **Line length**: 100 characters\n- **Type annotations**: Required\n- **Import style**: Explicit imports only, no `import *`, no local imports.\n- **Path handling**: Use `pathlib`\n- **Code**: Use idiomatic python, prioritize readability.\n- **Docstrings**: Always include for methods and classes. For one-liners \"\"\"Use one single-line docstring with quotes on same line.\"\"\"\n\n## Commit Format\n\n```text\n<type>(<scope>): <description>\n\n# Types: feat, fix, docs, style, refactor, test, chore, new\n# Scopes: evm, forks, tools, pytest, tests, docs, ci, consume, fill, eest\n```\n\n## 🔍 Tool Preferences\n\n- **Search**: `rg \"pattern\" --type python` (not grep)\n- **JSON**: `jq -r '.field' file.json`\n- **GitHub**: `gh` CLI for all operations\n\n## 🎯 Development Workflow\n\n1. `uv run eest make test` - Create test\n2. Implement tests using `pre` fixture patterns\n3. `uv run fill --fork=Fork test.py --clean -v tests/path/to/module` - Generate fixtures\n4. `uv run ruff check --fix` - Fix linting\n5. Commit with semantic format\n\n**Critical**: Always run linting and type checking. Use `--clean` when filling. Never use hardcoded addresses.\n"
  },
  {
    "path": "CONTRIBUTING.md",
    "content": "# Contributing\n\nContributions are welcome from anyone, regardless of whether you are just starting your Python journey, a web developer or a seasoned Execution Layer developer!\n\nWe appreciate your help and appreciate your contributions!\n\n## Code of Conduct\n\nAll contributors are expected to be excellent to each other; other behavior is not tolerated.\n\n## Communication\n\nWe encourage questions and discussions about the project. If you need help with the codebase or have questions about implementation details, please don't hesitate to reach out in the `#el-testing` channel in the [Ethereum R&D Discord Server](https://discord.com/invite/qGpsxSA).\n\nFor detailed information on how to get help, please see the [Getting Help](https://eest.ethereum.org/main/getting_started/getting_help) page in our documentation, which includes communication channels and contact information for project maintainers.\n\n## Contributions We Welcome\n\nAs mentioned in the README's [Contributing section](https://github.com/ethereum/execution-spec-tests#contributing), we welcome earnest contributions that have reasonable substance or resolve existing repository issues.\n\n## Contributions We Don't Accept\n\nWe do not accept:\n\n- Contributions that only fix spelling or grammatical errors in documentation, code, or elsewhere.\n- Drive-by or vibe code contributions without proper engagement or context.\n- Pull requests from airdrop farmers.\n\nI.e., pull requests should have reasonable substance and context.\n\n## Reporting Bugs\n\nWe use GitHub Issues to track bugs. To report a bug, please follow these guidelines:\n\n### Before Reporting\n\n1. **Check existing issues**: Search [open issues](https://github.com/ethereum/execution-spec-tests/issues) to see if your problem has already been reported.\n2. **Try to reproduce**: Confirm you can reproduce the issue consistently.\n3. **Consider security implications**: For security vulnerabilities, please do NOT create a public issue (or PR). Instead, refer to our [Security Policy](SECURITY.md) for responsible disclosure guidelines.\n\n### Creating a Bug Report\n\nWhen creating a new issue:\n\n1. **Use a clear, descriptive title** that identifies the problem, (see [Commit Messages, Issues and PR Titles](#commit-messages-issue-and-pr-titles)).\n2. **Provide detailed reproduction steps**:\n    - Include the exact commands you ran.\n    - Share relevant console output.\n    - Specify your environment (OS, Python version, if relevant, `uv` version from `uv --version`).\n3. **Include relevant information and versions**:\n    - Run `eest info` to get repo and tool versions and copy the information to the issue:\n\n        ```console\n        uv run eest info\n        ```\n\n    - Branch of execution-spec-tests you're using, if applicable.\n    - For test failures, include the test case and failure details.\n    - Screenshots if applicable.\n\n## Pull Requests\n\nWe welcome contributions via pull requests! This section will guide you through the process.\n\n### For First-Time Contributors\n\n1. **Fork the repository** by clicking the \"Fork\" button on the top right of the [GitHub repository page](https://github.com/ethereum/execution-spec-tests).\n\n2. **Clone your fork** to your local machine:\n\n    ```bash\n    git clone https://github.com/YOUR-USERNAME/execution-spec-tests.git\n    cd execution-spec-tests\n    ```\n\n3. **Install `uv`**:\n\n    ```bash\n    curl -LsSf https://astral.sh/uv/install.sh | sh\n    ```\n\n4. **Set up your environment**:\n\n    ```bash\n    uv python install 3.12\n    uv python pin 3.12\n    uv sync --all-extras\n    ```\n\n    See [installation troubleshooting](https://eest.ethereum.org/main/getting_started/installation_troubleshooting) if you encounter issues.\n\n5. **Create a branch** for your changes:\n\n    ```bash\n    git checkout -b your-branch-name\n    ```\n\n6. **Make your changes** according to our [code standards](https://eest.ethereum.org/main/getting_started/code_standards).\n\n7. **For EVM Tests**: Review the cases in the [EIP checklist template](./docs/writing_tests/checklist_templates/eip_testing_checklist_template.md).\n\n8. **For Porting Tests**: If you're porting tests from ethereum/tests, see the [porting guide](https://eest.ethereum.org/main/writing_tests/porting_legacy_tests) for coverage analysis and using `--skip-coverage-missed-reason` when needed.\n\n9. **Verify your changes** by running the appropriate checks:\n\n    ```bash\n    uvx --with=tox-uv tox -e lint,typecheck\n    ```\n\n10. **Commit your changes** with meaningful commit messages (see [Commit Messages, Issues and PR Titles](#commit-messages-issue-and-pr-titles)).\n\n11. **Push your branch** to your GitHub fork:\n\n    ```bash\n    git push -u origin your-branch-name\n    ```\n\n12. **Create a pull request** by navigating to your fork on GitHub and clicking the \"New Pull Request\" button.\n\n### Branch Naming Conventions\n\nBranch names should follow this format:\n\n```text\n<type>/<short-description>\n```\n\nWhere `<type>` matches the [conventional commit](https://www.conventionalcommits.org/en/v1.0.0/) types:\n\n- `feat/` - For new features.\n- `fix/` - For bug fixes.\n- `docs/` - For documentation changes.\n- `test/` - For adding or modifying tests.\n- `refactor/` - For code refactoring.\n- `chore/` - For maintenance tasks.\n\nExamples:\n\n```text\nfeat/add-cancun-blob-tests\nfix/prague-consume-genesis\ndocs/improve-installation-guide\n```\n\n### PR Review Process\n\n1. **Initial checks**: When you submit a PR, automated CI checks will run. Make sure all checks pass before requesting a review.\n\n2. **Requesting review**: Feel free to tag a maintainer or ask for review in a PR comment.\n\n3. **Review feedback**: Maintainers will review your code and may suggest changes. Please address all comments and engage in discussion if needed.\n\n4. **Iteration**: Make requested changes, push to your branch, and the PR will update automatically. No need to create a new PR.\n\n5. **Approval**: Once your changes are approved, a maintainer will merge your PR.\n\n### PR Expectations\n\nTo increase the chances of your PR being merged quickly:\n\n- **Scope**: Keep PRs focused on a _single issue or feature_.\n- **CI checks**: Ensure all CI checks pass before requesting review; but do ask for help if you don't understand the fail!\n- **Clean history**: Use meaningful, atomic commits that can be easily understood.\n- **Tests**: Include tests for new functionality.\n- **Documentation**: Update documentation for new features or changes.\n- **Responsiveness**: Try to respond to review feedback within a reasonable time.\n\n### Code Standards and Enforced CI Checks\n\nWe enforce lint, code formatting and unit test checks in our CI - for detailed code standards and enforcement checks, see our [Code Standards documentation](https://eest.ethereum.org/main/getting_started/code_standards).\n\n### Commits\n\nIt's recommended to keep changes logically grouped into smaller, individual commits to make changes easier to review.\n\n### Commit Messages, Issue and PR Titles\n\nWe use [conventional commit](https://www.conventionalcommits.org/en/v1.0.0/) messages and PR titles following the format:\n\n```console\n<type>(<scope>): <description>\n```\n\n#### Rules\n\n- The format should be lowercase except for object names, which should be back-ticked (e.g., `FixtureCollector`).\n- The description should be clear and concise.\n- No period at the end of the title/message.\n- Use the imperative (\"add\" not \"added\" or \"adds\").\n- A breaking change should be indicated by appending `!` directly after the type/scope.\n\n#### Types\n\nThe following commit types are used in this repository:\n\n| `<type>`       | Repo Label      | Description                                                  |\n| -------------- | --------------- | ------------------------------------------------------------ |\n| `feat`         | `type:feat`     | A new feature                                                |\n| `bug` or `fix` | `type:bug`      | A bug/bug fix (`bug` in issue; `fix` in commit/PR)           |\n| `docs`         | `type:docs`     | Documentation changes                                        |\n| `style`        | -               | Formatting changes that don't affect code functionality      |\n| `refactor`     | `type:refactor` | Code changes that neither fix bugs nor add features          |\n| `test`         | `type:test`     | Add, refactor, modify an EEST library or framework unit test |\n| `chore`        | `type:chore`    | Routine tasks, dependency updates, etc.                      |\n\n#### Scopes\n\nThe following scopes are used in this repository:\n\n| `<scope>` | Repo Label         | Description                                    |\n| --------- | ------------------ | ---------------------------------------------- |\n| `fill`    | `scope:fill`       | Changes to `fill` command                      |\n| `execute` | `scope:execute`    | Changes to the `execute` command               |\n| `consume` | `scope:consume`    | Changes to `consume` command suite             |\n| `pytest`  | `scope:pytest`     | Changes that effect all EEST pytest plugins    |\n| `evm`     | `scope:evm`        | Changes to the `evm_transition_tool` package   |\n| `forks`   | `scope:forks`      | Changes to `ethereum_test_forks` package       |\n| `tools`   | `scope:tools`      | Changes to `ethereum_test_tools` package       |\n| `fw`      | `scope:fw`         | Framework changes (evm\\|tools\\|forks\\|pytest)  |\n| `tests`   | `scope:tests`      | Changes to EL client test cases in `./tests`   |\n| `docs`    | `scope:docs`       | Documentation flow changes                     |\n| `ci`      | `scope:ci`         | Continuous Integration changes                 |\n| `gentest` | `scope:gentest`    | Changes to `gentest` CLI command               |\n| `eest`    | `scope:eest`       | Changes to `eest` CLI command                  |\n| `make`    | `scope:make`       | Changes to `eest make` command                 |\n| `tooling` | `scope:tooling`    | Python tools changes (`uv`, `ruff`, `tox`,...) |\n| `deps`    | `scope:deps`       | Updates package dependencies                   |\n\n#### Examples\n\nThis repository's main focus are the EL client tests in `./tests/` (`scope:tests`), but it contains many unit/module tests (`type:tests`) for the test generation frameworks and libraries in this repository. This can be a bit confusing, these examples demonstrate how we apply these labels and terms:\n\n```console\n# adds new EVM tests to tests/prague/eip7702_set_code_tx/\nfeat(tests): add test cases for EIP-7702\n\n# a pure EVM test code refactor; no changes to test fixture JSON (at least not to fixture hashes, IDs might change if it's too difficult to preserve them).\nrefactor(tests): split test setup across several fixtures\n\n# improve EVM test docstrings (these are included in HTML documentation):\ndocs(tests): improve EIP-7623 docstrings\n\n# fix an EVM test\nfix(tests): EIP-7702 test authorization list nonce/gas\n\n# add unit tests for the `execute` command\ntest(execute): add tests for output dir arguments\n\n# fix a broken unit test\ntest(fill): fix broken unit test\n```\n\nExamples of messages and titles for other types and scopes:\n\n```console\nfeat(eest): add new test generator command\nfix(forks): resolve `Cancun` initialization issue\ndocs(fill): describe new command-line args\nrefactor(tools): improve code organization in bytecode helpers\ntest(pytest): add tests for logging plugin\nchore(deps): update dependency versions\n```\n\n## Merging PRs\n\nWe maintain high standards for our repository history to ensure it's clean, understandable, and properly documented. Maintainers should follow these guidelines when merging PRs:\n\n### Pre-Merge Checklist\n\n1. **Review the PR template checklist**\n\n    - Ensure all applicable items are checked.\n    - Items that aren't relevant can be deleted or marked as N/A.\n\n2. **Verify changelog entry**\n\n    - Every PR that impacts functionality should have a changelog entry.\n    - The entry should clearly but concisely describe the change.\n    - It must include a link to the PR in brackets (e.g., `([#1234](https://github.com/ethereum/execution-spec-tests/pull/1234))`).\n    - Add any breaking changes at the top of the upcoming release section.\n    - Changelog entries are automatically validated in CI to ensure proper formatting.\n\n3. **Check PR title format**\n\n    - The PR title must follow the [conventional commit](https://www.conventionalcommits.org/en/v1.0.0/) format: `<type>(<scope>): <description>`.\n    - This title will be used (suggested automatically by Github) as the squash commit message, so it's essential it's correct.\n    - Follow the same rules as commit messages (imperative tense, no period at end, etc.).\n    - Example: `feat(tests): add tests for EIP-7702 blob gas calculation`\n\n4. **Review PR description**:\n\n    - Ensure the PR description is accurate and up-to-date.\n\n5. **Add appropriate labels**:\n\n    - Ensure the PR has the appropriate labels matching its type and scope.\n\n6. **Consider other contributors/stakeholders**:\n\n    - Verify the PR has been reviewed and approved by any interested contributors and/or stakeholders.\n\n### Merge Strategy\n\nWe **strongly prefer squash merging** over other strategies.\n\nExceptions to the squash merge policy may include:\n\n- Large PRs with logically separate commits that should be preserved.\n- Work that spans multiple distinct features or fixes.\n\n### Squash Commit Details\n\nWhen performing a squash merge:\n\n1. **Include PR number in the commit title**\n\n    - Leave, respectively add, the PR number in parentheses at the end of the title.\n    - Example: `feat(tests): add tests for EIP-7702 gas calculation (#1234)`\n\n2. **Clean up the extended commit message**\n\n    - Delete all content in the extended message section EXCEPT:\n\n        - Any `Co-authored-by:` lines, which must be preserved to properly attribute work.\n        - The format should be `Co-authored-by: Full Name <email@example.com>`\n"
  },
  {
    "path": "HUMANS.md",
    "content": "# HUMANS.md - Working with Claude and LLMs in Ethereum Execution Spec Tests\n\nThis guide helps human developers understand the dependencies and get the most out of Claude and other LLMs when working with this codebase.\n\n## 🤖 Why This Repository Has LLM Support\n\nHumans are faster when they use LLMs correctly.\n\n## 📋 Required Dependencies for LLM-Assisted Development\n\n### Requirements\n\n#### LLM Context File\n\n- **CLAUDE.md** - Primary LLM guidance (keep up-to-date). Use `#memorize` in Claude to update with new info.\n\n### Recommended Available Tooling (for use with Claude)\n\n1. **GitHub CLI**: `gh` for PR and issue management.\n2. **ripgrep**: `rg` for fast code searching.\n3. **jq**: For JSON analysis and EVM trace debugging.\n4. **markdownlint-cli**: To verify markdown files (CI enforced).\n5. **VS Code**: With recommended extensions (see [setup guide](docs/getting_started/setup_vs_code.md)). Run `claude` in VS Code for the best results.\n\n## 🎯 Getting the Best Results from Claude\n\n### 1. Provide Relevant Context\n\n**Always mention:**\n\n- What you're trying to accomplish.\n- Which part of the codebase you're working on (`tests/`, `src/`, `docs/`).\n- Any error messages or specific issues you're encountering.\n\n**Example - Good Context**:\n> \"I'm writing a new test for EIP-7702 in `tests/prague/eip7702_set_code_tx/`. The test should verify that delegation target validation works correctly. The test fails to fill when running `uv run fill --fork=Prague path/to/test.py`\"\n\n**Example - Poor Context**:\n> \"My test isn't working\"\n\n### 2. Reference Key Documentation\n\nWhen asking Claude for help, mention which documentation you've already checked:\n\n- \"I've read the test patterns in CLAUDE.md but...\".\n- \"According to the debugging section in CLAUDE.md...\".\n- \"The CONTRIBUTING.md mentions X, but I need help with Y...\".\n\n### 3. Share Specific Commands and Output\n\nClaude works best with concrete information:\n\n```bash\n# Share the exact command you ran\nuv run fill --fork=Prague tests/cancun/eip4844_blobs/test_blob_txs.py --clean -v\n\n# Include relevant error output\nERROR: Failed to compile Yul source: ...\n```\n\n### 4. Ask for Complete Solutions\n\nRequest end-to-end guidance rather than partial answers:\n\n- \"Show me the complete test function with proper imports.\".\n- \"What's the full workflow from creating the test to verifying it works?\".\n- \"Include the commands I need to run to validate this change.\".\n\n## 🚀 Optimizing LLM Workflows\n\n### Quick Start Template\n\nWhen starting a new (and complicated) task, provide Claude with something similar to template.\n\n```console\nI'm working on [describe task] in the Ethereum execution-spec-tests repository.\n\n**Context**:\n- Working directory: [tests/shanghai/, src/ethereum_test_tools/, etc.]\n- Trying to: [specific goal]\n- Current status: [what you've tried, any errors]\n\n**References**:\n- Checked CLAUDE.md section: [which sections you've read]\n- Related documentation: [any other docs you've reviewed]\n\n**Specific question**: [exactly what you need help with]\n```\n\n### Debugging Template\n\nFor troubleshooting issues:\n\n```console\nI'm encountering [specific error] when [doing what].\n\n**Command run**:\n```bash\n[exact command that failed]\n```console\n\n**Error output**:\n\n```\n[full error message]\n```console\n\n**What I've tried**:\n\n- [list previous attempts].\n\n**Environment details**:\n\n```bash\nuv run eest info\n```console\n\n**Request**: Please help me understand what's wrong and provide the fix.\n\n```\n\n### Code Review Template\n\nWhen asking Claude to review code:\n\n```console\n\nPlease review this [test/function/module] for:\n\n- Compliance with project standards (CLAUDE.md, code_standards.md).\n- Correct usage of the `pre` fixture.\n- Proper error handling and type annotations.\n- Performance considerations.\n\n**Code**:\n\n```python\n[your code here]\n```console\n\n**Specific concerns**: [any particular areas you're unsure about]\n\n## 🧠 Understanding LLM Limitations\n\n### What Claude Excels At\n\n- ✅ **Code patterns and structure**.\n- ✅ **Following established conventions**.\n- ✅ **Debugging common issues**.\n- ✅ **Explaining complex concepts**.\n- ✅ **Generating boilerplate code**.\n- ✅ **Reviewing code for standards compliance**.\n\n### What to Verify Independently\n\n- ⚠️ **Latest dependency versions** (always check official docs).\n- ⚠️ **New EIP specifications** (verify against ethereum/EIPs).\n- ⚠️ **Breaking changes** in recent updates.\n- ⚠️ **Environment-specific issues** (OS, architecture).\n- ⚠️ **Security implications** of suggestions.\n\n### For Effective LLM Collaboration\n\n- Provide clear, specific prompts.\n- Break complex tasks into smaller pieces.\n- Always validate LLM output against standards.\n- Use the codebase's existing patterns as examples.\n\nRemember: **LLMs are powerful tools that work best when given good context and clear objectives.** The better you understand this codebase, the better you can guide Claude to help you effectively.\n"
  },
  {
    "path": "LICENSE",
    "content": "Copyright 2025 Ethereum Community\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "README.md",
    "content": "# ⚠️ NOTICE: All code from this repository has been migrated to ethereum/execution-specs\n\nAs such, this repository is no longer accepting pull requests as of 2025-11-01. Please direct any changes to https://github.com/ethereum/execution-specs instead.\n\n## What This Means for You\n\n- **Client Teams:** No changes. Test fixture releases will continue to be published in this repository, [ethereum/execution-spec-tests](https://github.com/ethereum/execution-spec-tests).\n- **Test Contributors:**\n    - Please direct PRs to [ethereum/execution-specs](https://github.com/ethereum/execution-specs).\n    - Read more about the changes effecting test development in our [blog announcement](https://steel.ethereum.foundation/blog/2025-11-04_weld_final/).\n\n### Questions or Feedback About the Migration?\n\nPlease reach out to the STEEL team by writing to the `#el-testing` channel in the [Ethereum R&D Discord Server](https://discord.com/invite/qGpsxSA) or contacting any STEEL team member directly.\n\n---\n\n## Execution Spec Tests\n\n[![latest version](https://img.shields.io/github/v/release/ethereum/execution-spec-tests)](https://github.com/ethereum/execution-spec-tests/releases/latest)\n![Python Versions](https://img.shields.io/badge/python-3.11%20%7C%203.12%20%7C%203.13-blue)\n[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)\n[![uv](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/uv/main/assets/badge/v0.json)](https://github.com/astral-sh/uv)\n[![License](https://img.shields.io/github/license/ethereum/execution-spec-tests)](https://github.com/ethereum/execution-spec-tests/blob/main/LICENSE)\n\n## About\n\nThe full execution-spec-tests documentation can be found [here](https://eest.ethereum.org/main/).\n\n**Note:** All of [ethereum/execution-spec-tests](https://github.com/ethereum/execution-spec-tests) functionality (i.e., the spec tests, test frameworks and tooling) will move to [ethereum/execution-specs](https://github.com/ethereum/execution-specs) in Q4 2025 to streamline spec and test development. For more information please see our [blog post](https://steel.ethereum.foundation/blog/2025-09-11_weld-announcement/). For now, please continue contributing to both [ethereum/execution-spec-tests](https://github.com/ethereum/execution-spec-tests) and [ethereum/execution-specs](https://github.com/ethereum/execution-specs) as you previously have - we will reach out to you if and when need be!\n\n[ethereum/execution-spec-tests](https://github.com/ethereum/execution-spec-tests) is both a collection of test cases and a framework implemented in Python to generate tests for Ethereum execution clients.\n\nThe framework collects and executes the test cases in order to generate _test fixtures_ (JSON) which can be consumed by any execution client to verify their implementation of [ethereum/execution-specs](https://github.com/ethereum/execution-specs). The fixtures, which define state transition and block tests, are generated by the framework using one of the `t8n` command-line tools that are provided by most execution clients, see below for an overview of the supported `t8n` tools.\n\n```mermaid\n---\ntitle: Test Fixture Generation with execution-spec-tests\n---\nflowchart LR\n  style C stroke:#333,stroke-width:2px\n  style D stroke:#333,stroke-width:2px\n  style G stroke:#F9A825,stroke-width:2px\n  style H stroke:#F9A825,stroke-width:2px\n\n  subgraph \"ethereum/go-ethereum, ...\"\n    C[<code>evm t8n</code><br/>external executable]\n  end\n\n  subgraph ethereum/solidity\n    D[<code>solc</code><br/>external executable]\n  end\n\n  subgraph ethereum/EIPs\n    E(<code>EIPS/EIP-*.md</code><br/>SHA digest via Github API)\n  end\n\n  subgraph \"ethereum/execution-spec-tests\"\n    A(<code>./tests/**/*.py</code><br/>Python Test Cases)\n    B([<code>$ fill ./tests/</code><br/>Python Framework])\n  end\n\n  subgraph Test Fixture Consumers\n    subgraph ethereum/hive\n      G([<code>$ hive ...</code><br/>Go Test Framework])\n    end\n    H([Client executables])\n  end\n\n  C <-.-> B\n  D <-.-> B\n  A --> B\n  E <-.-> |retrieve latest spec version\\ncheck tested spec version| B\n  B -->|output| F(<code>./fixtures/**/*.json</code>\\nJSON Test Fixtures)\n  F -->|input| G\n  F -->|input| H\n```\n\nThe generated test fixtures can be used:\n\n1. Directly by client teams' test frameworks, and,\n2. In the integration tests executed in the [ethereum/hive](https://github.com/ethereum/hive) framework.\n\n## Transition Tool Support\n\nThe following transition tools are supported by the framework:\n\n| Client | \"t8n\" Tool | Tracing Support |\n| -------| ---------- | --------------- |\n| [ethereum/evmone](https://github.com/ethereum/evmone) | `evmone-t8n` | Yes |\n| [ethereum/execution-specs](https://github.com/ethereum/execution-specs) | `ethereum-spec-evm` | Yes |\n| [ethereum/go-ethereum](https://github.com/ethereum/go-ethereum) | [`evm t8n`](https://github.com/ethereum/go-ethereum/tree/master/cmd/evm) | Yes |\n| [ethereumjs](https://github.com/ethereumjs/ethereumjs-monorepo) | [`ethereumjs-t8ntool.sh`](https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/vm/test/t8n) | No |\n| [hyperledger/besu](https://github.com/hyperledger/besu/tree/main/ethereum/evmtool) | [`evm t8n-server`](https://github.com/hyperledger/besu/tree/main/ethereum/evmtool) | Yes |\n| [status-im/nimbus-eth1](https://github.com/status-im/nimbus-eth1) | [`t8n`](https://github.com/status-im/nimbus-eth1/blob/master/tools/t8n/readme.md) | Yes |\n\n### Upcoming EIP Development\n\nGenerally, specific `t8n` implementations and branches must be used when developing tests for upcoming EIPs.\n\nWe use named reference tags to point to the specific version of the `t8n` implementation that needs to be used fill the tests.\n\nAll current tags, their t8n implementation and branch they point to, are listed in [.github/configs/evm.yaml](.github/configs/evm.yaml).\n\n## Getting Started\n\n### Prerequisites\n\nThe tools provided by ethereum/execution-spec-tests use `uv` ([docs.astral.sh/uv](https://docs.astral.sh/uv/)) to manage their dependencies and virtual environment. `uv` downloads Python for your target platform if one of the required versions (Python 3.11 or 3.12) is not available natively.\n\n`uv` can be installed via curl (recommended; can self-update):\n\n```console\ncurl -LsSf https://astral.sh/uv/install.sh | sh\n```\n\nor pip (requires Python, can't self-update):\n\n```console\npip install uv\n```\n\n### Installation\n\nClone [execution-spec-tests](https://github.com/ethereum/execution-spec-tests) and install its dependencies:\n\n```console\ngit clone --depth 1 https://github.com/ethereum/execution-spec-tests\ncd execution-spec-tests\nuv python install 3.12\nuv python pin 3.12\nuv sync --all-extras\n```\n\nSee [Installation Troubleshooting](https://eest.ethereum.org/main/getting_started/installation_troubleshooting/) in the online docs if you encounter issues.\n\n### Exploring and Filling Test Cases\n\nBy default, JSON test fixtures are generated from this repository's Python test cases using the [Ethereum Execution Layer Specification](https://github.com/ethereum/execution-specs) (EELS) reference implementation. The resulting JSON fixtures can be executed against execution clients to verify consensus. The process of generating fixtures is often referred to as \"filling\".\n\n1. Explore test cases via `--collect-only` and search for test cases that combine `PUSH0` and `DELEGATECALL` in the EVM functionality introduced in the Shanghai hard fork:\n\n    ```console\n    uv run fill --collect-only -k \"push0 and delegatecall\" tests/shanghai/\n    ```\n\n    The `fill` command is based on [`pytest`](https://docs.pytest.org/en/stable/). The above command uses the [optional pytest arguments](https://docs.pytest.org/en/stable/how-to/usage.html):\n\n    - `--collect-only` only collect test cases; don't execute them.\n    - `-k <expression>` filter test cases by their test case ID based on the given expression.\n    - `tests/shanghai` the directory containing the test cases (tells `fill` to only discover test cases in this directory; default: `tests/`).\n\n    Expected console output:\n    ![Screenshot of pytest test collection console output](./docs/filling_tests/img/pytest_collect_only.png)\n\n2. Fill `state_test` fixtures for these test cases:\n\n    ```console\n    uv run fill -k \"push0 and delegatecall\" tests/shanghai/ -m state_test -v\n    ```\n\n    where:\n\n    - `-m state_test` only fills test cases marked as a `state_test` (see all available markers via `uv run fill --markers`).\n    - `-v` enables verbose output.\n\n    Expected console output:\n    ![Screenshot of fill test collection console output](./docs/filling_tests/img/pytest_run_example.png)\n\n3. Verify the generated fixtures:\n\n    a. Check the corresponding fixture file has been generated:\n\n    ```console\n    head fixtures/state_tests/shanghai/eip3855_push0/push0/push0_contract_during_call_contexts.json\n    ```\n\n    b. Open the generated HTML test using the link provided at the bottom of the console output. This is written to the output directory at:\n\n    ```console\n    ./fixtures/.meta/report_fill.html\n    ```\n\n## Usage\n\nMore information on how to obtain and consume the [released test fixtures](https://github.com/ethereum/execution-spec-tests/releases) can be found in the [documentation](https://eest.ethereum.org/main/running_tests/).\n\nFor further help with working with this codebase, see the [online documentation](https://eest.ethereum.org/main/):\n\n1. Learn [useful command-line flags](https://eest.ethereum.org/main/filling_tests/filling_tests_command_line/).\n2. [Execute tests for features under development](https://eest.ethereum.org/main/filling_tests/filling_tests_dev_fork/) via the `--from=FORK1` and `--until=FORK2` flags.\n3. _Optional:_ [Configure VS Code](https://eest.ethereum.org/main/getting_started/setup_vs_code/) to auto-format Python code and [execute tests within VS Code](https://eest.ethereum.org/main/filling_tests/filling_tests_vs_code/).\n4. Implement a new test case, see [Writing Tests](https://eest.ethereum.org/main/writing_tests/).\n\n## Coverage\n\nThe available test cases can be browsed in the [Test Case Reference doc](https://eest.ethereum.org/main/tests/).\n\n## Installation Troubleshooting\n\nIf you encounter issues during the installation process, please refer to the [Installation Troubleshooting](https://eest.ethereum.org/main/getting_started/installation_troubleshooting/) page.\n\n## Contributing\n\nContributions and feedback are welcome. Please see our [Contributing Guidelines](CONTRIBUTING.md) for detailed information on how to contribute, and the [online documentation](https://eest.ethereum.org/main/writing_tests/) for this repository's coding standards and help on implementing new tests.\n\nWe welcome earnest newcomers, no matter how small the contribution! However, we do not accept:\n\n- Contributions that only fix spelling or grammatical errors in documentation, code or elsewhere\n- Pull requests from obvious airdrop farmers\n- Drive-by or vibe code contributions without proper engagement or context\n\nPull requests should have reasonable substance or resolve an existing repository open issue.\n\nCare is required when adding PRs or issues for functionality that is live on Ethereum mainnet, please refer to the [Security Policy](SECURITY.md) for more information about reporting vulnerabilities and eligibility for the [bug bounty program](https://bounty.ethereum.org).\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n"
  },
  {
    "path": "SECURITY.md",
    "content": "# Security Policy\n\n## Reporting a Vulnerability\n\n- **Please do not create a PR with a vulnerability visible.**\n\n- **Please do not file a public ticket mentioning the vulnerability.**\n\nTo find out how to disclose a vulnerability in Ethereum visit [https://bounty.ethereum.org](https://bounty.ethereum.org) or email bounty@ethereum.org.\n"
  },
  {
    "path": "docs/CHANGELOG.md",
    "content": "# Changelog\n\nTest fixtures for use by clients are available for each release on the [Github releases page](https://github.com/ethereum/execution-spec-tests/releases).\n\n**Key:** ✨ = New, 🐞 = Fixed, 🔀 = Changed. 💥 = Breaking\n\n## 🔜 [Unreleased]\n\n### 💥 Breaking Change\n\n### 🛠️ Framework\n\n#### `fill`\n\n#### `consume`\n\n### 📋 Misc\n\n### 🧪 Test Cases\n\n- 🐞Fix BALs opcode OOG test vectors by updating the Amsterdam commit hash in specs and validating appropriately on the testing side ([#2293](https://github.com/ethereum/execution-spec-tests/pull/2293)).\n- ✨Fix test vector for BALs SSTORE with OOG by pointing to updated specs; add new boundary conditions cases for SSTORE w/ OOG ([#2297](https://github.com/ethereum/execution-spec-tests/pull/2297)).\n\n## [v5.3.0](https://github.com/ethereum/execution-spec-tests/releases/tag/v5.3.0) - 2025-10-09\n\n## 🇯🇵 Summary\n\nEEST v5.3.0 is a follow-up from our main v5.0.0 [release](https://github.com/ethereum/execution-spec-tests/releases/tag/v5.0.0), with updated BPO1 and BPO2 values aligning with the testnet parameters.\n\nThis release additionally includes fixes for tests in hive, as well as new test cases for EIP-7883, EIP-7934 and critical cases for EIP-7951 (added to EEST by @chfast following a coverage review of the test suite).\n\n## 🔑  Key Changes\n\n### 🛠️ Framework\n\n- ✨ Add benchmark-specific test wrapper (`benchmark_test`) that supports **EIP-7825** and create a benchmark code generator for common test pattern ([#1945](https://github.com/ethereum/execution-spec-tests/pull/1945)).\n\n#### `fill`\n\n- ✨ Added `--optimize-gas`, `--optimize-gas-output` and `--optimize-gas-post-processing` flags that allow to binary search the minimum gas limit value for a transaction in a test that still yields the same test result ([#1979](https://github.com/ethereum/execution-spec-tests/pull/1979)).\n- ✨ Added `--watch` flag that monitors test files for changes and automatically re-runs the fill command when developing tests ([#2173](https://github.com/ethereum/execution-spec-tests/pull/2173)).\n- 🔀 Upgraded ckzg version to 2.1.3 or newer for correct handling of points at infinity ([#2171](https://github.com/ethereum/execution-spec-tests/pull/2171)).\n- 🔀 Move pytest marker registration for `fill` and `execute-*` from their respective ini files to the shared `pytest_plugins.shared.execute_fill` pytest plugin ([#2110](https://github.com/ethereum/execution-spec-tests/pull/2110)).\n- ✨ Added an `--input.blobParams` CLI argument to the transition tool (`t8n`) invocation ([#2264](https://github.com/ethereum/execution-spec-tests/pull/2264)).\n\n#### `consume`\n\n- ✨ Add retry logic to RPC requests to fix flaky connection issues in Hive ([#2205](https://github.com/ethereum/execution-spec-tests/pull/2205)).\n- 🛠️ Mark `consume sync` tests as `flaky` with 3 retires due to client sync inconsistencies ([#2252](https://github.com/ethereum/execution-spec-tests/pull/2252)).\n- ✨ Add `consume direct` using `evmone-statetest` and `evmone-blockchaintest` ([#2243](https://github.com/ethereum/execution-spec-tests/pull/2243)).\n\n### 📋 Misc\n\n- ✨ Add tighter validation for EIP-7928 model coming from t8n when filling ([#2138](https://github.com/ethereum/execution-spec-tests/pull/2138)).\n- ✨ Add flexible API for absence checks for EIP-7928 (BAL) tests ([#2124](https://github.com/ethereum/execution-spec-tests/pull/2124)).\n- 🐞 Use `engine_newPayloadV5` for `>=Amsterdam` forks in `consume engine` ([#2170](https://github.com/ethereum/execution-spec-tests/pull/2170)).\n- 🔀 Refactor EIP-7928 (BAL) absence checks into a friendlier class-based DevEx ([#2175](https://github.com/ethereum/execution-spec-tests/pull/2175)).\n- 🐞 Tighten up validation for empty lists on Block-Level Access List tests ([#2118](https://github.com/ethereum/execution-spec-tests/pull/2118)).\n- ✨ Added the `MemoryVariable` EVM abstraction to generate more readable bytecode when there's heavy use of variables that are stored in memory ([#1609](https://github.com/ethereum/execution-spec-tests/pull/1609)).\n- 🐞 Fix an issue with `test_bal_block_rewards` where the block base fee was wrongfully overridden ([#2262](https://github.com/ethereum/execution-spec-tests/pull/2262)).\n- ✨ Complete EIP checklist for EIP-7934 and update the checklist template to include block-level constraint checks ([#2282](https://github.com/ethereum/execution-spec-tests/pull/2282)).\n\n### 🧪 Test Cases\n\n- ✨ Add safe EIP-6110 workaround to allow Geth/Reth to pass invalid deposit request tests even thought they are out of spec ([#2177](https://github.com/ethereum/execution-spec-tests/pull/2177), [#2233](https://github.com/ethereum/execution-spec-tests/pull/2233)).\n- ✨ Add an EIP-7928 test case targeting the `SELFDESTRUCT` opcode. ([#2159](https://github.com/ethereum/execution-spec-tests/pull/2159)).\n- ✨ Add essential tests for coverage gaps in EIP-7951 (`p256verify` precompile) ([#2179](https://github.com/ethereum/execution-spec-tests/pull/2159), [#2203](https://github.com/ethereum/execution-spec-tests/pull/2203), [#2215](https://github.com/ethereum/execution-spec-tests/pull/2215), [#2216](https://github.com/ethereum/execution-spec-tests/pull/2216), [#2217](https://github.com/ethereum/execution-spec-tests/pull/2217), [#2218](https://github.com/ethereum/execution-spec-tests/pull/2218), [#2221](https://github.com/ethereum/execution-spec-tests/pull/2221), [#2229](https://github.com/ethereum/execution-spec-tests/pull/2229), [#2230](https://github.com/ethereum/execution-spec-tests/pull/2230), [#2237](https://github.com/ethereum/execution-spec-tests/pull/2237), [#2238](https://github.com/ethereum/execution-spec-tests/pull/2238)).\n- ✨ Add EIP-7928 successful and OOG single-opcode tests ([#2118](https://github.com/ethereum/execution-spec-tests/pull/2118)).\n- ✨ Add EIP-7928 tests for EIP-2930 interactions ([#2167](https://github.com/ethereum/execution-spec-tests/pull/2167)).\n- ✨ Add EIP-7928 tests for NOOP operations ([#2178](https://github.com/ethereum/execution-spec-tests/pull/2178)).\n- ✨ Add EIP-7928 tests for net-zero balance transfers ([#2280](https://github.com/ethereum/execution-spec-tests/pull/2280)).\n- ✨ Add fork transition test cases for EIP-7934 ([#2282](https://github.com/ethereum/execution-spec-tests/pull/2282)).\n\n## [v5.0.0](https://github.com/ethereum/execution-spec-tests/releases/tag/v5.0.0) - 2025-09-05\n\n## 🇯🇵 Summary\n\nEEST Fujisan is our first full release for Osaka, the first full release since Pectra!\n\nIn addition to the latest Osaka specific test cases, it includes re-filled `GeneralStateTests` from `ethereum/tests` (now fully maintained within EEST under `tests/static`) for Osaka adhering to the transaction gas limit cap from [EIP-7825](https://eips.ethereum.org/EIPS/eip-7825). Further framework changes include new simulators, test formats and test types.\n\n## ⚔️ Future Weld with EELS\n\nEEST will merge with [EELS](https://github.com/ethereum/execution-specs) during **Q4 2025**, after which EEST becomes read-only for external contributors.\n\n**What this means?**\n\n- All EEST code moves to the EELS repository.\n- New EEST framework location: `execution-specs/src/ethereum_spec_tests/`.\n- New EEST tests location: `execution-specs/tests/eest/`.\n- Future PRs go to EELS instead of EEST.\n\n**Important Notes:**\n\n- All PRs for tests and framework changes should still be directed at EEST until further notice.\n- There will be a brief freeze on EEST contributions during Q4 \"The Switch\", after which contributors can continue as before, but in EELS.\n- Test releases will continue from EEST as normal before, during, and after this transition.\n\nMore information will be communicated accordingly through the normal communication channels.\n\n## ❗Current Status Quo\n\n### Test Fixtures Overview\n\n- `fixtures_static.tar.gz` has been deprecated.\n- `fixtures_stable.tar.gz` & `fixtures_develop.tar.gz` now both contain re-filled static tests, `GeneralStateTests` from `ethereum/tests`, filled **from Cancun**.\n- `fixtures_stable.tar.gz` contains tests filled for forks until Prague.\n- `fixtures_develop.tar.gz` contains tests filled for forks until Osaka.\n- `fixtures_benchmark.tar.gz` contains benchmark tests filled for only Prague.\n\n### EL Client Test Requirements\n\n**Prague Coverage (Mainnet):**\n\n- Run all `state_test`'s & `blockchain_test`'s from `fixtures_stable.tar.gz`.\n- Run only `BlockchainTests` from the latest `ethereum/tests` [release](https://github.com/ethereum/tests/releases/tag/v17.2), filled **until Prague**.\n\n**Fusaka Coverage (Including Mainnet):**\n\n- Run all  `state_test`'s & `blockchain_test`'s from `fixtures_develop.tar.gz`.\n- Run only `BlockchainTests` from the latest `ethereum/tests` [release](https://github.com/ethereum/tests/releases/tag/v17.2), filled **until Prague**.\n\n**Note**: If you require `GeneralStateTests` from `ethereum/tests` **filled for forks before Cancun** then you must get these from the latest `ethereum/tests` [release](https://github.com/ethereum/tests/releases/tag/v17.2).\n\n### Benchmark Tests\n\nFor the most up-to-date benchmark tests, use `fixtures_benchmark.tar.gz`.\n\n> **Note**: Benchmark tests for Osaka (compliant with EIP-7825 transaction gas limit cap) will be added in a future feature release.\n\n### Test Fixture Formats\n\nThis release includes 2 new test formats designed primarily for [Hive](https://github.com/ethereum/hive) simulators:\n\n- [**`blockchain_tests_engine_x`**](https://eest.ethereum.org/v5.0.0/running_tests/test_formats/blockchain_test_engine_x/?h=#blockchain-engine-x-tests): An optimized version of `blockchain_tests_engine` where multiple tests share the same genesis state, allowing multiple tests to run on a single client instantiation within Hive's `consume-engine`. The standard format requires a fresh client startup for each test. Due its combined genesis state, this is additionally the primary format used by the Nethermind team for benchmarking.\n\n- [**`blockchain_tests_sync`**](https://eest.ethereum.org/main/running_tests/test_formats/blockchain_test_sync/?h=sync#blockchain-engine-sync-tests): A new format adjacent to the existing `blockchain_tests_engine` format. Used specifically for the upcoming `consume-sync` simulator, which delivers engine payloads from test fixtures to the client under test, then sync's a separate client to it. This test fixture is only marked to be filled for the [EIP-7934](https://eips.ethereum.org/EIPS/eip-7934) block RLP limit tests in Osaka.\n\n### Tooling & Simulators\n\nImproved tooling and new Hive simulators are additionally included in this release:\n\n- [**`execute remote`**](https://eest.ethereum.org/main/running_tests/execute/remote/#running-test-on-a-live-remote-network): this command now supports optional [Engine RPC endpoints](https://eest.ethereum.org/main/running_tests/execute/remote/#engine-rpc-endpoint-optional) (`--engine-endpoint`) with JWT authentication #2070.\n    - This allows manual control over block creation and transaction inclusion for more deterministic test execution on live networks. Previously, `execute remote` could only submit transactions and rely on the network's automatic block production, but now it can actively drive chain progression by creating blocks on-demand via the Engine API.\n- [**`consume sync`**](https://eest.ethereum.org/main/running_tests/running/#sync): Adjacent to `consume-engine`, designed to work with the `blockchain_tests_sync` format for testing client sync scenarios.\n- [**`execute blobs`**](https://eest.ethereum.org/main/running_tests/execute/hive/#the-eestexecute-blobs-simulator):  A new Hive specific simulator that uses the EEST execute pytest plugin. Sends blob transactions to the client under test and verifies its `engine_getBlobsVX` endpoint. Requires tests to be written with a new python test format `blob_transaction_test`. Primarily used to test PeerDAS from the EL perspective.\n- [**`execute eth config`**](https://eest.ethereum.org/main/running_tests/execute/eth_config/): A command used to test the `eth_config` endpoint from [EIP-7910](https://eips.ethereum.org/EIPS/eip-7910). Can be ran [remotely](https://github.com/ethereum/execution-spec-tests/issues/2049) or within Hive.\n\n### Filling For Stateless Clients\n\nA `witness-filler` extension is included in this release, allowing for tests to be filled that include an `executionWitness` for each fixture #2066. This essentially calls an external executable written in rust, and hence must be installed for usage within `fill` using the `--witness` flag. The current approach is below:\n\n```sh\ncargo install --git https://github.com/kevaundray/reth.git --branch jsign-witness-filler witness-filler\nuv run fill ... --output=fixtures-witness --witness --clean\n```\n\n> **Note**: The `witness-filler` executable is not maintained by EEST so we cannot help with any issues.\n\n## 💥 Breaking Changes\n\n### Important changes for EEST superusers\n\n- EEST now requires `uv>=0.7.0` ([#1904](https://github.com/ethereum/execution-spec-tests/pull/1904)). If your version of `uv` is too old.\n- When filling fixtures transition forks are included within there respective \"to\" fork, where `--fork Osaka` will now include `PragueToOsakaAtTime15k`. Previously transitions fork would only be included when filling with `--from Prague --until Osaka` flags.\n- Python 3.10 support was removed in this release ([#1808](https://github.com/ethereum/execution-spec-tests/pull/1808)).\n- EEST no longer allows usage of Yul code in Python tests. From now on, please make use of our opcode wrapper. Yul code is now only allowed in the \"static tests\" located in `./tests/static/` (these are test cases defined by JSON and YAML files instead of Python test functions that were originally maintained in [ethereum/tests](https://github.com/ethereum/tests)).\n- In order to fill the static tests (which is not the case by default), please ensure that `solc` is located in your `PATH`.\n- The output behavior of `fill` has changed ([#1608](https://github.com/ethereum/execution-spec-tests/pull/1608)):\n    - Before: `fill` wrote fixtures into the directory specified by the `--output` flag (default: `fixtures`). This could have many unintended consequences, including unexpected errors if old or invalid fixtures existed in the directory (for details see [#1030](https://github.com/ethereum/execution-spec-tests/issues/1030)).\n    - Now: `fill` will exit without filling any tests if the specified directory exists and is not-empty. This may be overridden by adding the `--clean` flag, which will first remove the specified directory.\n- Writing debugging information to the EVM \"dump directory\" by default has been disabled. To obtain debug output, the `--evm-dump-dir` flag must now be explicitly set. As a consequence, the now redundant `--skip-evm-dump` option was removed ([#1874](https://github.com/ethereum/execution-spec-tests/pull/1874)). This undoes functionality originally introduced in [#999](https://github.com/ethereum/execution-spec-tests/pull/999) and [#1150](https://github.com/ethereum/execution-spec-tests/pull/1150).\n\n### Feature `zkevm` updated to `benchmark`\n\nDue to the crossover between `zkevm` and `benchmark` tests, all instances of the former have been replaced with the latter nomenclature. Repository PR labels and titles are additionally updated to reflect this change.\n\nThis update renames the `zkevm` feature release to `benchmark` and further expands the latter for 1M, 10M, 30M, 45M, 60M, 90M, and 120M block gas limits in `fixtures_benchmark.tar.gz`.\n\nTo select a test for a given gas limit, the IDs of the tests have been expanded to contain `benchmark-gas-value_XM`, where `X` can be any of the aforementioned values.\n\nThe benchmark release also now includes BlockchainEngineX format that combines most of the tests into a minimal amount of genesis files. For more info see [Blockchain Engine X Tests](https://eest.ethereum.org/main/running_tests/test_formats/blockchain_test_engine_x/) in the EEST documentation.\n\nUsers can select any of the artifacts depending on their benchmarking or testing needs for their provers.\n\n## 🔑  Other Key Changes\n\n### 🛠️ Framework\n\n#### 🔀 Refactoring\n\n- 🔀 Move `TransactionType` enum from test file to proper module location in `ethereum_test_types.transaction_types` for better code organization and reusability.\n- ✨ Opcode classes now validate keyword arguments and raise `ValueError` with clear error messages.\n- 🔀 This PR removes the `solc` requirement to fill Python test cases. Regular test contributors no longer need to concern themselves with `solc` and, as such, the `solc-select` dependency has been removed. The remaining tests that used Yul have been ported to the EEST opcode wrapper mini-lang and the use of Yul in Python tests is no longer supported. Maintainers only: To fill the \"static\" JSON and YAML tests (`./tests/static/`) locally, `solc` (ideally v0.8.24) must be available in your PATH.\n- 🔀 Updated default block gas limit from 36M to 45M to match mainnet environment.\n- 🔀 Refactor fork logic to include transition forks within there \"to\" fork ([#2051](https://github.com/ethereum/execution-spec-tests/pull/2051)).\n\n#### `fill`\n\n- ✨ Add the `ported_from` test marker to track Python test cases that were converted from static fillers in [ethereum/tests](https://github.com/ethereum/tests) repository ([#1590](https://github.com/ethereum/execution-spec-tests/pull/1590)).\n- ✨ Add a new pytest plugin, `ported_tests`, that lists the static fillers and PRs from `ported_from` markers for use in the coverage Github Workflow ([#1634](https://github.com/ethereum/execution-spec-tests/pull/1634)).\n- ✨ Enable two-phase filling of fixtures with pre-allocation groups and add a `BlockchainEngineXFixture` format ([#1706](https://github.com/ethereum/execution-spec-tests/pull/1706), [#1760](https://github.com/ethereum/execution-spec-tests/pull/1760)).\n- ✨ Add `--generate-all-formats` flag to enable generation of all fixture formats including `BlockchainEngineXFixture` in a single command; enable `--generate-all-formats` automatically for tarball output, `--output=fixtures.tar.gz`, [#1855](https://github.com/ethereum/execution-spec-tests/pull/1855).\n- 🔀 Refactor: Encapsulate `fill`'s fixture output options (`--output`, `--flat-output`, `--single-fixture-per-file`) into a `FixtureOutput` class ([#1471](https://github.com/ethereum/execution-spec-tests/pull/1471),[#1612](https://github.com/ethereum/execution-spec-tests/pull/1612)).\n- ✨ Don't warn about a \"high Transaction gas_limit\" for `zkevm` tests ([#1598](https://github.com/ethereum/execution-spec-tests/pull/1598)).\n- 🐞 `fill` no longer writes generated fixtures into an existing, non-empty output directory; it must now be empty or `--clean` must be used to delete it first ([#1608](https://github.com/ethereum/execution-spec-tests/pull/1608)).\n- 🐞 `zkevm` marked tests have been removed from `tests-deployed` tox environment into its own separate workflow `tests-deployed-zkevm` and are filled by `evmone-t8n` ([#1617](https://github.com/ethereum/execution-spec-tests/pull/1617)).\n- ✨ Field `postStateHash` is now added to all `blockchain_test` and `blockchain_test_engine` tests that use `exclude_full_post_state_in_output` in place of `postState`. Fixes `evmone-blockchaintest` test consumption and indirectly fixes coverage runs for these tests ([#1667](https://github.com/ethereum/execution-spec-tests/pull/1667)).\n- 🔀 Changed INVALID_DEPOSIT_EVENT_LAYOUT to a BlockException instead of a TransactionException ([#1773](https://github.com/ethereum/execution-spec-tests/pull/1773)).\n- 🔀 Disabled writing debugging information to the EVM \"dump directory\" to improve performance. To obtain debug output, the `--evm-dump-dir` flag must now be explicitly set. As a consequence, the now redundant `--skip-evm-dump` option was removed ([#1874](https://github.com/ethereum/execution-spec-tests/pull/1874)).\n- ✨ Generate unique addresses with Python for compatible static tests, instead of using hard-coded addresses from legacy static test fillers ([#1781](https://github.com/ethereum/execution-spec-tests/pull/1781)).\n- ✨ Added support for the `--benchmark-gas-values` flag in the `fill` command, allowing a single genesis file to be used across different gas limit settings when generating fixtures. ([#1895](https://github.com/ethereum/execution-spec-tests/pull/1895)).\n- ✨ Static tests can now specify a maximum fork where they should be filled for ([#1977](https://github.com/ethereum/execution-spec-tests/pull/1977)).\n- ✨ Static tests can now be filled in every format using `--generate-all-formats` ([#2006](https://github.com/ethereum/execution-spec-tests/pull/2006)).\n- 💥 Flag `--flat-output` has been removed due to having been unneeded for an extended period of time ([#2018](https://github.com/ethereum/execution-spec-tests/pull/2018)).\n- ✨ Add support for `BlockchainEngineSyncFixture` format for tests marked with `pytest.mark.verify_sync` to enable client synchronization testing via `consume sync` command ([#2007](https://github.com/ethereum/execution-spec-tests/pull/2007)).\n- ✨ Framework is updated to include BPO ([EIP-7892](https://eips.ethereum.org/EIPS/eip-7892)) fork markers to enable the filling of BPO tests ([#2050](https://github.com/ethereum/execution-spec-tests/pull/2050)).\n- ✨ Generate and include execution witness data in blockchain fixtures if `--witness` is specified ([#2066](https://github.com/ethereum/execution-spec-tests/pull/2066)).\n\n#### `consume`\n\n- ✨ Add `--extract-to` parameter to `consume cache` command for direct fixture extraction to specified directory, replacing the need for separate download scripts. ([#1861](https://github.com/ethereum/execution-spec-tests/pull/1861)).\n- 🐞 Fix `consume cache --cache-folder` parameter being ignored, now properly caches fixtures in the specified directory instead of always using the default system cache location.\n- 🐞 Fix the `consume_direct.sh` script generated by `consume` in the `--evm-dump` dir by quoting test IDs [#1987](https://github.com/ethereum/execution-spec-tests/pull/1987).\n- 🔀 `consume` now automatically avoids GitHub API calls when using direct release URLs (better for CI environments), while release specifiers like `stable@latest` continue to use the API for version resolution ([#1788](https://github.com/ethereum/execution-spec-tests/pull/1788)).\n- 🔀 Refactor consume simulator architecture to use explicit pytest plugin structure with forward-looking architecture ([#1801](https://github.com/ethereum/execution-spec-tests/pull/1801)).\n- 🔀 Add exponential retry logic to initial fcu within consume engine ([#1815](https://github.com/ethereum/execution-spec-tests/pull/1815)).\n- ✨ Add `consume sync` command to test client synchronization capabilities by having one client sync from another via Engine API and P2P networking ([#2007](https://github.com/ethereum/execution-spec-tests/pull/2007)).\n- 💥 Removed the `consume hive` command, this was a convenience command that ran `consume rlp` and `consume engine` in one pytest session; the individual commands should now be used instead ([#2008](https://github.com/ethereum/execution-spec-tests/pull/2008)).\n- ✨ Update the hive ruleset to include BPO ([EIP-7892](https://eips.ethereum.org/EIPS/eip-7892)) forks ([#2050](https://github.com/ethereum/execution-spec-tests/pull/2050)).\n\n#### `execute`\n\n- ✨ Added new `Blob` class which can use the ckzg library to generate valid blobs at runtime ([#1614](https://github.com/ethereum/execution-spec-tests/pull/1614)).\n- ✨ Added `blob_transaction_test` execute test spec, which allows tests that send blob transactions to a running client and verifying its `engine_getBlobsVX` endpoint behavior ([#1644](https://github.com/ethereum/execution-spec-tests/pull/1644)).\n- ✨ Added `execute eth-config` command to test the `eth_config` RPC endpoint of a client, and includes configurations by default for Mainnet, Sepolia, Holesky, and Hoodi ([#1863](https://github.com/ethereum/execution-spec-tests/pull/1863)).\n- ✨ Command `execute remote` now allows specification of an Engine API endpoint to drive the chain via `--engine-endpoint` and either `--engine-jwt-secret` or `--engine-jwt-secret-file`. This mode is useful when there's no consensus client connected to the execution client so `execute` will automatically request blocks via the Engine API when it sends transactions ([#2070](https://github.com/ethereum/execution-spec-tests/pull/2070)).\n- ✨ Added `--address-stubs` flag to the `execute` command which allows to specify a JSON-formatted string, JSON file or YAML file which contains label-to-address of specific pre-deployed contracts already existing in the network where the tests are executed ([#2073](https://github.com/ethereum/execution-spec-tests/pull/2073)).\n\n### 📋 Misc\n\n- ✨ Add pypy3.11 support ([#1854](https://github.com/ethereum/execution-spec-tests/pull/1854)).\n- 🔀 Use only relative imports in `tests/` directory ([#1848](https://github.com/ethereum/execution-spec-tests/pull/1848)).\n- 🔀 Convert absolute imports to relative imports in `src/` directory for better code maintainability ([#1907](https://github.com/ethereum/execution-spec-tests/pull/1907)).\n- 🔀 Misc. doc updates, including a navigation footer ([#1846](https://github.com/ethereum/execution-spec-tests/pull/1846)).\n- 🔀 Remove Python 3.10 support ([#1808](https://github.com/ethereum/execution-spec-tests/pull/1808)).\n- 🔀 Modernize codebase with Python 3.11 language features ([#1812](https://github.com/ethereum/execution-spec-tests/pull/1812)).\n- ✨ Add changelog formatting validation to CI to ensure consistent punctuation in bullet points [#1691](https://github.com/ethereum/execution-spec-tests/pull/1691).\n- ✨ Added the [EIP checklist template](https://eest.ethereum.org/main/writing_tests/checklist_templates/eip_testing_checklist_template/) that serves as a reference to achieve better coverage when implementing tests for new EIPs ([#1327](https://github.com/ethereum/execution-spec-tests/pull/1327)).\n- ✨ Added [Post-Mortems of Missed Test Scenarios](https://eest.ethereum.org/main/writing_tests/post_mortems/) to the documentation that serves as a reference list of all cases that were missed during the test implementation phase of a new EIP, and includes the steps taken in order to prevent similar test cases to be missed in the future ([#1327](https://github.com/ethereum/execution-spec-tests/pull/1327)).\n- ✨ Add documentation \"Running Tests\" that explains the different methods available to run EEST tests and reference guides for running `consume` and `hive`: ([#1172](https://github.com/ethereum/execution-spec-tests/pull/1172)).\n- ✨ Added a new `eest` sub-command, `eest info`, to easily print a cloned EEST repository's version and the versions of relevant tools, e.g., `python`, `uv` ([#1621](https://github.com/ethereum/execution-spec-tests/pull/1621)).\n- ✨ Add `CONTRIBUTING.md` for execution-spec-tests and improve coding standards documentation ([#1604](https://github.com/ethereum/execution-spec-tests/pull/1604)).\n- ✨ Add `CLAUDE.md` to help working in @ethereum/execution-spec-tests with [Claude Code](https://docs.anthropic.com/en/docs/claude-code/overview) ([#1749](https://github.com/ethereum/execution-spec-tests/pull/1749)).\n- ✨ Use `codespell` instead of `pyspelling` to spell-check python and markdown sources ([#1715](https://github.com/ethereum/execution-spec-tests/pull/1715)).\n- 🔀 Updated from pytest 7 to [pytest 8](https://docs.pytest.org/en/stable/changelog.html#features-and-improvements), benefits include improved type hinting and hook typing, stricter mark handling, and clearer error messages for plugin and metadata development ([#1433](https://github.com/ethereum/execution-spec-tests/pull/1433)).\n- 🐞 Fix bug in ported-from plugin and coverage script that made PRs fail with modified tests that contained no ported tests ([#1661](https://github.com/ethereum/execution-spec-tests/pull/1661)).\n- 🔀 Refactor the `click`-based CLI interface used for pytest-based commands (`fill`, `execute`, `consume`) to make them more extensible ([#1654](https://github.com/ethereum/execution-spec-tests/pull/1654)).\n- 🔀 Split `src/ethereum_test_types/types.py` into several files to improve code organization ([#1665](https://github.com/ethereum/execution-spec-tests/pull/1665)).\n- ✨ Added `extract_config` command to extract genesis files used to launch clients in hive ([#1740](https://github.com/ethereum/execution-spec-tests/pull/1740)).\n- ✨ Added automatic checklist generation for every EIP inside of the `tests` folder. The checklist is appended to each EIP in the documentation in the \"Test Case Reference\" section ([#1679](https://github.com/ethereum/execution-spec-tests/pull/1679), [#1718](https://github.com/ethereum/execution-spec-tests/pull/1718)).\n- 🔀 Add macOS hive development mode workaround to the docs [#1786](https://github.com/ethereum/execution-spec-tests/pull/1786).\n- 🔀 Refactor and clean up of exceptions including EOF exceptions within client specific mappers [#1803](https://github.com/ethereum/execution-spec-tests/pull/1803).\n- 🔀 Rename `tests/zkevm/` to `tests/benchmark/` and replace the `zkevm` pytest mark with `benchmark` [#1804](https://github.com/ethereum/execution-spec-tests/pull/1804).\n- 🔀 Add fixture comparison check to optimize coverage workflow in CI ([#1833](https://github.com/ethereum/execution-spec-tests/pull/1833)).\n- 🔀 Move `TransactionType` enum from test file to proper module location in `ethereum_test_types.transaction_types` for better code organization and reusability ([#1763](https://github.com/ethereum/execution-spec-tests/pull/1673)).\n- ✨ Opcode classes now validate keyword arguments and raise `ValueError` with clear error messages ([#1739](https://github.com/ethereum/execution-spec-tests/pull/1739), [#1856](https://github.com/ethereum/execution-spec-tests/pull/1856)).\n- ✨ All commands (`fill`, `consume`, `execute`) now work without having to clone the repository, e.g. `uv run --with git+https://github.com/ethereum/execution-spec-tests.git consume` now works from any folder ([#1863](https://github.com/ethereum/execution-spec-tests/pull/1863)).\n- 🔀 Move Prague to stable and Osaka to develop ([#1573](https://github.com/ethereum/execution-spec-tests/pull/1573)).\n- ✨ Add a `pytest.mark.with_all_typed_transactions` marker that creates default typed transactions for each `tx_type` supported by the current `fork` ([#1890](https://github.com/ethereum/execution-spec-tests/pull/1890)).\n- ✨ Add basic support for ``Amsterdam`` fork in order to begin testing Glamsterdam ([#2069](https://github.com/ethereum/execution-spec-tests/pull/2069)).\n- ✨ [EIP-7928](https://eips.ethereum.org/EIPS/eip-7928): Add initial framework support for `Block Level Access Lists (BAL)` testing for Amsterdam ([#2067](https://github.com/ethereum/execution-spec-tests/pull/2067)).\n\n### 🧪 Test Cases\n\n- ✨ [BloatNet](https://bloatnet.info)/Multidimensional Metering: Add benchmarks to be used as part of the BloatNet project and also for Multidimensional Metering.\n- ✨ [EIP-7951](https://eips.ethereum.org/EIPS/eip-7951): Add additional test cases for modular comparison.\n- 🔀 Refactored `BLOBHASH` opcode context tests to use the `pre_alloc` plugin in order to avoid contract and EOA address collisions ([#1637](https://github.com/ethereum/execution-spec-tests/pull/1637)).\n- 🔀 Refactored `SELFDESTRUCT` opcode collision tests to use the `pre_alloc` plugin in order to avoid contract and EOA address collisions ([#1643](https://github.com/ethereum/execution-spec-tests/pull/1643)).\n- ✨ EIP-7594: Sanity test cases to send blob transactions and verify `engine_getBlobsVX` using the `execute` command ([#1644](https://github.com/ethereum/execution-spec-tests/pull/1644),[#1884](https://github.com/ethereum/execution-spec-tests/pull/1884)).\n- 🔀 Refactored EIP-145 static tests into python ([#1683](https://github.com/ethereum/execution-spec-tests/pull/1683)).\n- ✨ EIP-7823, EIP-7883: Add test cases for ModExp precompile gas-cost updates and input limits on Osaka ([#1579](https://github.com/ethereum/execution-spec-tests/pull/1579), [#1729](https://github.com/ethereum/execution-spec-tests/pull/1729), [#1881](https://github.com/ethereum/execution-spec-tests/pull/1881)).\n- ✨ [EIP-7825](https://eips.ethereum.org/EIPS/eip-7825): Add test cases for the transaction gas limit of 2^24 gas ([#1711](https://github.com/ethereum/execution-spec-tests/pull/1711), [#1882](https://github.com/ethereum/execution-spec-tests/pull/1882)).\n- ✨ [EIP-7951](https://eips.ethereum.org/EIPS/eip-7951): add test cases for `P256VERIFY` precompile to support secp256r1 curve [#1670](https://github.com/ethereum/execution-spec-tests/pull/1670).\n- ✨ Introduce blockchain tests for benchmark to cover the scenario of pure ether transfers [#1742](https://github.com/ethereum/execution-spec-tests/pull/1742).\n- ✨ [EIP-7934](https://eips.ethereum.org/EIPS/eip-7934): Add test cases for the block RLP max limit of 10MiB ([#1730](https://github.com/ethereum/execution-spec-tests/pull/1730)).\n- ✨ [EIP-7939](https://eips.ethereum.org/EIPS/eip-7939): Add count leading zeros (CLZ) opcode tests for Osaka ([#1733](https://github.com/ethereum/execution-spec-tests/pull/1733)).\n- ✨ [EIP-7934](https://eips.ethereum.org/EIPS/eip-7934): Add additional test cases for block RLP max limit with all typed transactions and for a log-creating transactions ([#1890](https://github.com/ethereum/execution-spec-tests/pull/1890)).\n- ✨ [EIP-7825](https://eips.ethereum.org/EIPS/eip-7825): Pre-Osaka tests have been updated to either (1) dynamically adapt to the transaction gas limit cap, or (2) reduce overall gas consumption to fit the new limit ([#1924](https://github.com/ethereum/EIPs/pull/1924), [#1928](https://github.com/ethereum/EIPs/pull/1928), [#1980](https://github.com/ethereum/EIPs/pull/1980)).\n- ✨ [EIP-7918](https://eips.ethereum.org/EIPS/eip-7918): Blob base fee bounded by execution cost test cases (initial), includes some adjustments to [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844) tests ([#1685](https://github.com/ethereum/execution-spec-tests/pull/1685)).\n- 🔀 Adds the max blob transaction limit to the tests including updates to [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844) for Osaka ([#1884](https://github.com/ethereum/execution-spec-tests/pull/1884)).\n- 🐞 Fix issues when filling block rlp size limit tests with ``--generate-pre-alloc-groups`` ([#1989](https://github.com/ethereum/execution-spec-tests/pull/1989)).\n- ✨ [EIP-7928](https://eips.ethereum.org/EIPS/eip-7928): Add test cases for `Block Level Access Lists (BAL)` to Amsterdam ([#2067](https://github.com/ethereum/execution-spec-tests/pull/2067)).\n- 🐞 Fix issues with `Block Level Access Lists (BAL)` tests for Amsterdam ([#2121](https://github.com/ethereum/execution-spec-tests/pull/2121)).\n\n## [v4.5.0](https://github.com/ethereum/execution-spec-tests/releases/tag/v4.5.0) - 2025-05-14\n\n### 💥 Breaking Change\n\n#### EOF removed from Osaka\n\nFollowing [\"Interop Testing Call 34\"](https://github.com/ethereum/pm/issues/1499) and the procedural EIPs [PR](https://github.com/ethereum/EIPs/pull/9703) the decision to remove EOF from Osaka was made.\n\nTo accommodate EOF testing for the interim within EEST, its tests have migrated to a new `tests/unscheduled` folder. This folder will now contain tests for features that are not yet CFI'd in any fork. When EOF is CFI'd for a fork in the future, all tests will be moved from unscheduled to the respective future fork folder.\n\nA new fork `EOFv1` has additionally been created to fill and consume EOF related fixtures. Client tests fillers such as `evmone` (and client consumers) will now need to use this fork name.\n\n### 🛠️ Framework\n\n- ✨ Add an empty account function for usage within fill and execute ([#1482](https://github.com/ethereum/execution-spec-tests/pull/1482)).\n- ✨ Added `TransactionException.INTRINSIC_GAS_BELOW_FLOOR_GAS_COST` exception to specifically catch the case where the intrinsic gas cost is insufficient due to the data floor gas cost ([#1582](https://github.com/ethereum/execution-spec-tests/pull/1582)).\n\n### 📋 Misc\n\n- ✨ Engine API updates for Osaka, add `get_blobs` rpc method ([#1510](https://github.com/ethereum/execution-spec-tests/pull/1510)).\n- ✨ The EIP Version checker has been moved from `fill` and `execute` to it's own command-line tool `check_eip_versions` that gets ran daily as a Github Action ([#1537](https://github.com/ethereum/execution-spec-tests/pull/1537)).\n- 🔀 Add new `tests/unscheduled` folder, move EOF from Osaka to unscheduled, add `EOFv1` fork name for EOF tests ([#1507](https://github.com/ethereum/execution-spec-tests/pull/1507)).\n- ✨ CI features now contain an optional field to skip them from EEST full releases, `benchmark` and EOF features are now feature only ([#1596](https://github.com/ethereum/execution-spec-tests/pull/1596)).\n- 🐞 Don't attempt to install `solc` via `solc-select` on ARM (official Linux ARM builds of `solc` are not available at the time of writing, cf [ethereum/solidity#11351](https://github.com/ethereum/solidity/issues/11351)) and add a version sanity check ([#1556](https://github.com/ethereum/execution-spec-tests/pull/1556)).\n\n### 🧪 Test Cases\n\n- 🔀 Automatically apply the `benchmark` marker to all tests under `./tests/benchmark/` and `./tests/prague/eip2537_bls_12_381_precompiles/` via conftest configuration ([#1534](https://github.com/ethereum/execution-spec-tests/pull/1534)).\n- ✨ Port [calldataload](https://github.com/ethereum/tests/blob/ae4791077e8fcf716136e70fe8392f1a1f1495fb/src/GeneralStateTestsFiller/VMTests/vmTests/calldatacopyFiller.yml) and [calldatasize](https://github.com/ethereum/tests/blob/81862e4848585a438d64f911a19b3825f0f4cd95/src/GeneralStateTestsFiller/VMTests/vmTests/calldatasizeFiller.yml) tests ([#1236](https://github.com/ethereum/execution-spec-tests/pull/1236)).\n\n## [v4.4.0](https://github.com/ethereum/execution-spec-tests/releases/tag/v4.4.0) - 2025-04-29\n\n### 💥 Breaking Change\n\n#### `fixtures_static`\n\nA new fixture tarball has been included in this release: `fixtures_static.tar.gz`.\n\nThis tarball contains all tests inside of [`./tests/static`](https://github.com/ethereum/execution-spec-tests/tree/main/tests/static), which at this point only contains all tests copied from [`GeneralStateTests` in `ethereum/tests@7dc757ec132e372b6178a016b91f4c639f366c02`](https://github.com/ethereum/tests/tree/7dc757ec132e372b6178a016b91f4c639f366c02/src/GeneralStateTestsFiller).\n\nThe tests have been filled using the new static test filler introduced in [#1336](https://github.com/ethereum/execution-spec-tests/pull/1336), and enhanced in [#1362](https://github.com/ethereum/execution-spec-tests/pull/1362) and [#1439](https://github.com/ethereum/execution-spec-tests/pull/1439).\n\nUsers can expect that all tests currently living in [ethereum/tests](https://github.com/ethereum/tests/tree/develop/src) should eventually make its way into [`./tests/static`](https://github.com/ethereum/execution-spec-tests/tree/main/tests/static) and can rely that these tests, filled for new forks even, will be included in `fixtures_static.tar.gz`.\n\n#### `fixtures_benchmark`\n\nAnother new fixture tarball has been included in this release: `fixtures_benchmark.tar.gz`.\n\nIncludes tests that are tailored specifically to test the execution layer proof generators.\n\n### 🛠️ Framework\n\n#### `fill`\n\n- 🐞 Fix the reported fixture source URLs for the case of auto-generated tests ([#1488](https://github.com/ethereum/execution-spec-tests/pull/1488)).\n\n#### `consume`\n\n- 🐞 Fix the Hive commands used to reproduce test executions that are displayed in test descriptions in the Hive UI ([#1494](https://github.com/ethereum/execution-spec-tests/pull/1494)).\n- 🐞 Fix consume direct fails for geth blockchain tests ([#1502](https://github.com/ethereum/execution-spec-tests/pull/1502)).\n\n### 📋 Misc\n\n### 🧪 Test Cases\n\n- ✨ [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702): Test that DELEGATECALL to a 7702 target works as intended ([#1485](https://github.com/ethereum/execution-spec-tests/pull/1485)).\n- ✨ [EIP-2573](https://eips.ethereum.org/EIPS/eip-2537): Includes a BLS12 point generator, alongside additional coverage many of the precompiles ([#1350](https://github.com/ethereum/execution-spec-tests/pull/1350)), ([#1505](https://github.com/ethereum/execution-spec-tests/pull/1505)).\n- ✨ Add all [`GeneralStateTests` from `ethereum/tests`](https://github.com/ethereum/tests/tree/7dc757ec132e372b6178a016b91f4c639f366c02/src/GeneralStateTestsFiller) to `execution-spec-tests` located now at [tests/static/state_tests](https://github.com/ethereum/execution-spec-tests/tree/main/tests/static/state_tests) ([#1442](https://github.com/ethereum/execution-spec-tests/pull/1442)).\n- ✨ [EIP-2929](https://eips.ethereum.org/EIPS/eip-2929): Test that precompile addresses are cold/warm depending on the fork they are activated ([#1495](https://github.com/ethereum/execution-spec-tests/pull/1495)).\n\n## [v4.3.0](https://github.com/ethereum/execution-spec-tests/releases/tag/v4.3.0) - 2025-04-18\n\n### 💥 Breaking Change\n\n#### Consume engine strict exception checking\n\n`consume engine` now checks exceptions returned by the execution clients in their Engine API responses, specifically in the `validationError`field of the `engine_newPayloadVX` method.\n\nWhile not strictly a breaking change since tests will continue to run normally, failures are expected if a client modifies their exception messages.\n\nThis feature can be disabled by using `--disable-strict-exception-matching` for specific clients or forks.\n\n### 🛠️ Framework\n\n#### `fill`\n\n- ✨ The `static_filler` plug-in now has support for static state tests (from [GeneralStateTests](https://github.com/ethereum/tests/tree/develop/src/GeneralStateTestsFiller)) ([#1362](https://github.com/ethereum/execution-spec-tests/pull/1362)).\n- ✨ Introduce `pytest.mark.exception_test` to mark tests that contain an invalid transaction or block ([#1436](https://github.com/ethereum/execution-spec-tests/pull/1436)).\n- 🐞 Fix `DeprecationWarning: Pickle, copy, and deepcopy support will be removed from itertools in Python 3.14.` by avoiding use `itertools` object in the spec `BaseTest` pydantic model ([#1414](https://github.com/ethereum/execution-spec-tests/pull/1414)).\n- ✨ An optional configuration flag to override the maximum gas limit in the environment for filling or executing tests is now available. The `--block-gas-limit` flag overrides the default block gas limit during filling. The `--transaction-gas-limit` flag overrides the maximum for transactions during execution. ([#1470](https://github.com/ethereum/execution-spec-tests/pull/1470)).\n\n#### `consume`\n\n- 🐞 Fix fixture tarball downloading with regular, non-Github release URLS and with numerical versions in regular release specs, e.g., `stable@v4.2.0` ([#1437](https://github.com/ethereum/execution-spec-tests/pull/1437)).\n- ✨ `consume engine` now has strict exception mapping enabled by default ([#1416](https://github.com/ethereum/execution-spec-tests/pull/1416)).\n\n#### Tools\n\n- 🔀 `generate_system_contract_deploy_test` test generator has been updated to handle system contracts that are not allowed to be absent when the fork happens ([#1394](https://github.com/ethereum/execution-spec-tests/pull/1394)).\n- ✨ Add `generate_system_contract_error_test` to generate tests on system contracts that invalidate a block in case of error ([#1394](https://github.com/ethereum/execution-spec-tests/pull/1394)).\n\n#### Exceptions\n\n- ✨ `BlockException.SYSTEM_CONTRACT_EMPTY`: Raised when a required system contract was not found in the state by the time it was due to execution with a system transaction call ([#1394](https://github.com/ethereum/execution-spec-tests/pull/1394)).\n- ✨ `BlockException.SYSTEM_CONTRACT_CALL_FAILED`: Raised when a system contract call made by a system transaction fails ([#1394](https://github.com/ethereum/execution-spec-tests/pull/1394)).\n- ✨ `BlockException.INVALID_BLOCK_HASH`: Raised when the calculated block hash does not match the expectation (Currently only during Engine API calls) ([#1416](https://github.com/ethereum/execution-spec-tests/pull/1416)).\n- ✨ `BlockException.INVALID_VERSIONED_HASHES`: Raised when a discrepancy is found between versioned hashes in the payload and the ones found in the transactions ([#1416](https://github.com/ethereum/execution-spec-tests/pull/1416)).\n\n### 🧪 Test Cases\n\n- ✨ [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702): Test precompile case in same transaction as delegation without extra gas in case of precompile code execution; parametrize all call opcodes in existing precompile test ([#1431](https://github.com/ethereum/execution-spec-tests/pull/1431)).\n- ✨ [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702): Add invalid nonce authorizations tests for the case of multiple signers when the sender's nonce gets increased ([#1441](https://github.com/ethereum/execution-spec-tests/pull/1441)).\n- ✨ [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702): Add a test that verifies that set code transactions are correctly rejected before Prague activation ([#1463](https://github.com/ethereum/execution-spec-tests/pull/1463)).\n- ✨ [EIP-7623](https://eips.ethereum.org/EIPS/eip-7623): Additionally parametrize transaction validity tests with the `to` set to an EOA account (previously only contracts) ([#1422](https://github.com/ethereum/execution-spec-tests/pull/1422)).\n- ✨ [EIP-7251](https://eips.ethereum.org/EIPS/eip-7251): Add EIP-7251 test cases for modified consolidations contract that allows more consolidations ([#1465](https://github.com/ethereum/execution-spec-tests/pull/1465)).\n- ✨ [EIP-6110](https://eips.ethereum.org/EIPS/eip-6110): Add extra deposit request edge cases, sending eth to the deposit contract while sending a deposit request ([#1467](https://github.com/ethereum/execution-spec-tests/pull/1467)).\n- ✨ [EIP-6110](https://eips.ethereum.org/EIPS/eip-6110): Add cases for deposit log layout and other topics (ERC-20) transfer ([#1371](https://github.com/ethereum/execution-spec-tests/pull/1371)).\n- ✨ [EIP-7251](https://eips.ethereum.org/EIPS/eip-7251): Remove pytest skips for consolidation request cases ([#1449](https://github.com/ethereum/execution-spec-tests/pull/1449)).\n- ✨ [EIP-7002](https://eips.ethereum.org/EIPS/eip-7002), [EIP-7251](https://eips.ethereum.org/EIPS/eip-7251): Add cases to verify behavior of contracts missing at fork ([#1394](https://github.com/ethereum/execution-spec-tests/pull/1394)).\n- ✨ [EIP-7002](https://eips.ethereum.org/EIPS/eip-7002), [EIP-7251](https://eips.ethereum.org/EIPS/eip-7251): Add cases to verify behavior of system contract errors invalidating a block ([#1394](https://github.com/ethereum/execution-spec-tests/pull/1394)).\n- 🔀 Remove [EIP-7698](https://eips.ethereum.org/EIPS/eip-7698): EIP has been removed and the tests related to it have also been removed, while preserving a subset of the tests to verify that functionality is removed in clients ([#1451](https://github.com/ethereum/execution-spec-tests/pull/1451)).\n\n### 📋 Misc\n\n- 🐞 Configure `markdownlint` to expect an indent of 4 with unordered lists (otherwise HTML documentation is rendered incorrectly, [#1460](https://github.com/ethereum/execution-spec-tests/pull/1460)).\n- 🔀 Update `eels_resolutions.json` to point to temporary commit `bb0eb750d643ced0ebf5dec732cdd23558d0b7f2`, which is based on `forks/prague` branch, commit `d9a7ee24db359aacecd636349b4f3ac95a4a6e71`, with PRs <https://github.com/ethereum/execution-specs/pull/1182>, <https://github.com/ethereum/execution-specs/pull/1183> and <https://github.com/ethereum/execution-specs/pull/1191> merged ([#1394](https://github.com/ethereum/execution-spec-tests/pull/1394)).\n\n## [v4.2.0](https://github.com/ethereum/execution-spec-tests/releases/tag/v4.2.0) - 2025-04-08\n\n**Note**: Although not a breaking change, `consume` users should delete the cache directory (typically located at `~/.cache/ethereum-execution-spec-tests`) used to store downloaded fixture release tarballs. This release adds support for [ethereum/tests](https://github.com/ethereum/tests) and [ethereum/legacytests](https://github.com/ethereum/legacytests) fixture release downloads and the structure of the cache directory has been updated to accommodate this change.\n\nTo try this feature:\n\n```shell\nconsume direct --input=https://github.com/ethereum/tests/releases/download/v17.0/fixtures_blockchain_tests.tgz\n```\n\nTo determine the cache directory location, see the `--cache-folder` entry from the command:\n\n```shell\nconsume cache --help\n```\n\n### 💥 Breaking Change\n\n### 🛠️ Framework\n\n#### `consume`\n\n- ✨ Add support for [ethereum/tests](https://github.com/ethereum/tests) and [ethereum/legacytests](https://github.com/ethereum/legacytests) release tarball download via URL to the `--input` flag of `consume` commands ([#1306](https://github.com/ethereum/execution-spec-tests/pull/1306)).\n- ✨ Add support for Nethermind's `nethtest` command to `consume direct` ([#1250](https://github.com/ethereum/execution-spec-tests/pull/1250)).\n- ✨ Allow filtering of test cases by fork via pytest marks (e.g., `-m \"Cancun or Prague\"`) ([#1304](https://github.com/ethereum/execution-spec-tests/pull/1304), [#1318](https://github.com/ethereum/execution-spec-tests/pull/1318)).\n- ✨ Allow filtering of test cases by fixture format via pytest marks (e.g., `-m blockchain_test`) ([#1314](https://github.com/ethereum/execution-spec-tests/pull/1314)).\n- ✨ Add top-level entries `forks` and `fixture_formats` to the index file that list all the forks and fixture formats used in the indexed fixtures ([#1318](https://github.com/ethereum/execution-spec-tests/pull/1318)).\n- ✨ Enable logging from `consume` commands ([#1361](https://github.com/ethereum/execution-spec-tests/pull/1361)).\n- ✨ Propagate stdout and stderr (including logs) captured during test execution to the Hive test result ([#1361](https://github.com/ethereum/execution-spec-tests/pull/1361)).\n- 🐞 Don't parametrize tests for unsupported fixture formats; improve `consume` test collection ([#1315](https://github.com/ethereum/execution-spec-tests/pull/1315)).\n- 🐞 Fix the the hive command printed in test reports to reproduce tests in isolation by prefixing the `--sim.limit` flag value with `id:` ([#1333](https://github.com/ethereum/execution-spec-tests/pull/1333)).\n- 🐞 Improve index generation of [ethereum/tests](https://github.com/ethereum/tests) fixtures: Allow generation at any directory level and include `generatedTestHash` in the index file for the `fixture_hash` ([#1303](https://github.com/ethereum/execution-spec-tests/pull/1303)).\n- 🐞 Fix loading of [ethereum/tests](https://github.com/ethereum/tests) and [ethereum/legacytests](https://github.com/ethereum/legacytests) fixtures for the case of mixed `0x0` and `0x1` transaction types in multi-index (`data`, `gas`, `value`) state test fixtures ([#1330](https://github.com/ethereum/execution-spec-tests/pull/1330)).\n- ✨ Add Osaka to the hive ruleset, includes a small ruleset refactor ([#1355](https://github.com/ethereum/execution-spec-tests/pull/1355)).\n\n#### `fill`\n\n- 🐞 Fix `--fork/from/until` for transition forks when using `fill` [#1311](https://github.com/ethereum/execution-spec-tests/pull/1311).\n- 🐞 Fix the node id for state tests marked by transition forks ([#1313](https://github.com/ethereum/execution-spec-tests/pull/1313)).\n- ✨ Add `static_filler` plug-in which allows to fill static YAML and JSON tests (from [ethereum/tests](https://github.com/ethereum/tests)) by adding flag `--fill-static-tests` to `uv run fill` ([#1336](https://github.com/ethereum/execution-spec-tests/pull/1336)).\n\n#### `execute`\n\n- 🔀 Test IDs have changed to include the name of the test spec where the test came from (e.g. `state_test`, `blockchain_test`, etc) ([#1367](https://github.com/ethereum/execution-spec-tests/pull/1367)).\n- ✨ Markers can now be used to execute only tests from a specific test spec type (e.g. `-m state_test`, `-m blockchain_test`, etc) ([#1367](https://github.com/ethereum/execution-spec-tests/pull/1367)).\n\n### 📋 Misc\n\n- 🔀 Bump the version of `execution-specs` used by the framework to the package [`ethereum-execution==1.17.0rc6.dev1`](https://pypi.org/project/ethereum-execution/1.17.0rc6.dev1/); bump the version used for test fixture generation for forks < Prague to current `execution-specs` master, [fa847a0](https://github.com/ethereum/execution-specs/commit/fa847a0e48309debee8edc510ceddb2fd5db2f2e) ([#1310](https://github.com/ethereum/execution-spec-tests/pull/1310)).\n- 🐞 Init `TransitionTool` in `GethTransitionTool` ([#1276](https://github.com/ethereum/execution-spec-tests/pull/1276)).\n- 🔀 Refactored RLP encoding of test objects to allow automatic generation of tests ([#1359](https://github.com/ethereum/execution-spec-tests/pull/1359)).\n- ✨ Document how to manage `execution-spec-tests` package dependencies ([#1388](https://github.com/ethereum/execution-spec-tests/pull/1388)).\n\n#### Packaging\n\n- 🐞 Fix `eest make test` when `ethereum-execution-spec-tests` is installed as a package ([#1342](https://github.com/ethereum/execution-spec-tests/pull/1342)).\n- 🔀 Pin `setuptools` and `wheel` in `[build-system]`, bump `trie>=3.1` and remove `setuptools` from package dependencies ([#1345](https://github.com/ethereum/execution-spec-tests/pull/1345), [#1351](https://github.com/ethereum/execution-spec-tests/pull/1351)).\n\n### 🧪 Test Cases\n\n- ✨ Add additional test coverage for EIP-152 Blake2 precompiles ([#1244](https://github.com/ethereum/execution-spec-tests/pull/1244)). Refactor to add variables for spec constants and common fixture code. ([#1395](https://github.com/ethereum/execution-spec-tests/pull/1395)), ([#1405](https://github.com/ethereum/execution-spec-tests/pull/1405)).\n- ✨ Add EIP-7702 incorrect-rlp-encoding tests ([#1347](https://github.com/ethereum/execution-spec-tests/pull/1347)).\n- ✨ Add EIP-2935 tests for all call opcodes ([#1379](https://github.com/ethereum/execution-spec-tests/pull/1379)).\n- ✨ Add more tests for EIP-7702: max-fee-per-gas verification, delegation-designation as initcode tests ([#1372](https://github.com/ethereum/execution-spec-tests/pull/1372)).\n- ✨ Add converted Identity precompile tests ([#1344](https://github.com/ethereum/execution-spec-tests/pull/1344)).\n\n## [v4.1.0](https://github.com/ethereum/execution-spec-tests/releases/tag/v4.1.0) - 2025-03-11\n\n### 💥 Breaking Changes\n\nThe following changes may be potentially breaking (all clients were tested with these changes with the state test format, but not the blockchain test format):\n\n- 💥 Add a `yParity` field (that duplicates `v`) to transaction authorization tuples in fixture formats to have fields that conform to EIP-7702 spec, resolves [erigontech/erigon#14073](https://github.com/erigontech/erigon/issues/14073) ([#1286](https://github.com/ethereum/execution-spec-tests/pull/1286)).\n- 💥 Rename the recently introduced `_info` field `fixture_format` to `fixture-format` for consistency [#1295](https://github.com/ethereum/execution-spec-tests/pull/1295).\n\n### 🛠️ Framework\n\n- 🔀 Make `BaseFixture` able to parse any fixture format such as `BlockchainFixture` ([#1210](https://github.com/ethereum/execution-spec-tests/pull/1210)).\n- ✨ Blockchain and Blockchain-Engine tests now have a marker to specify that they were generated from a state test, which can be used with `-m blockchain_test_from_state_test` and `-m blockchain_test_engine_from_state_test` respectively ([#1220](https://github.com/ethereum/execution-spec-tests/pull/1220)).\n- ✨ Blockchain and Blockchain-Engine tests that were generated from a state test now have `blockchain_test_from_state_test` or `blockchain_test_engine_from_state_test` as part of their test IDs ([#1220](https://github.com/ethereum/execution-spec-tests/pull/1220)).\n- 🔀 Refactor `ethereum_test_fixtures` and `ethereum_clis` to create `FixtureConsumer` and `FixtureConsumerTool` classes which abstract away the consumption process used by `consume direct` ([#935](https://github.com/ethereum/execution-spec-tests/pull/935)).\n- ✨ Allow `consume direct --collect-only` without specifying a fixture consumer binary on the command-line ([#1237](https://github.com/ethereum/execution-spec-tests/pull/1237)).\n- ✨ Allow `fill --collect-only` without the need for existence of the folder `./fixtures`.\n- ✨ Report the (resolved) fixture tarball URL and local fixture cache directory when `consume`'s `--input` flag is a release spec or URL ([#1239](https://github.com/ethereum/execution-spec-tests/pull/1239)).\n- ✨ EOF Container validation tests (`eof_test`) now generate container deployment state tests, by wrapping the EOF container in an init-container and sending a deploy transaction ([#783](https://github.com/ethereum/execution-spec-tests/pull/783), [#1233](https://github.com/ethereum/execution-spec-tests/pull/1233)).\n- ✨ Use regexes for Hive's `--sim.limit` argument and don't use xdist if `--sim.parallelism==1` in the `eest/consume-rlp` and `eest/consume-rlp` simulators ([#1220](https://github.com/ethereum/execution-spec-tests/pull/1220)).\n- 🐞 Register generated test markers, e.g., `blockchain_test_from_state_test`, to prevent test session warnings ([#1238](https://github.com/ethereum/execution-spec-tests/pull/1238), [#1245](https://github.com/ethereum/execution-spec-tests/pull/1245)).\n- 🐞 Zero-pad `Environment` fields passed to `t8n` tools as required by `evmone-t8n` ([#1268](https://github.com/ethereum/execution-spec-tests/pull/1268)).\n\n### 📋 Misc\n\n- ✨ Add a guide to the docs for porting tests from `ethereum/tests` to EEST ([#1165](https://github.com/ethereum/execution-spec-tests/pull/1165)).\n- ✨ Improve the `uv run eest make test` interactive CLI to enable creation of new test modules within existing test sub-folders ([#1241](https://github.com/ethereum/execution-spec-tests/pull/1241)).\n- ✨ Update `mypy` to latest release `>=1.15.0,<1.16` ([#1209](https://github.com/ethereum/execution-spec-tests/pull/1209)).\n- 🐞 Bug fix for filling with EELS for certain Python versions due to an issue with CPython ([#1231](https://github.com/ethereum/execution-spec-tests/pull/1231)).\n- 🐞 Fix HTML site deployment due to the site's index file exceeding Github's max file size limit ([#1292](https://github.com/ethereum/execution-spec-tests/pull/1292)).\n- ✨ Update the build fixtures workflow to use multiple self-hosted runners, remove `pectra-devnet-6` feature build ([#1296](https://github.com/ethereum/execution-spec-tests/pull/1296)).\n\n### 🧪 Test Cases\n\n- ✨ Add gas cost of delegation access in CALL opcode ([#1208](https://github.com/ethereum/execution-spec-tests/pull/1208)).\n- ✨ Add EIP-7698 failed nonce and short data tests ([#1211](https://github.com/ethereum/execution-spec-tests/pull/1211)).\n- ✨ Add EIP-2537 additional pairing precompile tests cases, and then update all BLS12 test vectors ([#1275](https://github.com/ethereum/execution-spec-tests/pull/1275), [#1289](https://github.com/ethereum/execution-spec-tests/pull/1289)).\n- ✨ Add EIP-7685 and EIP-7002 test cases for additional request type combinations and modified withdrawal contract that allows more withdrawals ([#1340](https://github.com/ethereum/execution-spec-tests/pull/1340)).\n- ✨ Add test cases for EIP-152 Blake2 and Identity precompiles ([#1244](https://github.com/ethereum/execution-spec-tests/pull/1244)).\n\n## [v4.0.0](https://github.com/ethereum/execution-spec-tests/releases/tag/v4.0.0) - 2025-02-14 - 💕\n\n### 📁 Fixture Releases\n\n- 🔀 Initially we moved old fork configured tests within stable and develop fixture releases to a separate legacy release ([#788](https://github.com/ethereum/execution-spec-tests/pull/788)).\n- 🔀 This was later reverted after some client teams preferred to keep them in all in the same releases ([#1053](https://github.com/ethereum/execution-spec-tests/pull/1053)).\n\n### 💥 Breaking Change\n\n- ✨ Use uv for package management replacing pip ([#777](https://github.com/ethereum/execution-spec-tests/pull/777)).\n- ✨ Ruff now replaces Flake8, Isort and Black resulting in significant changes to the entire code base including its usage ([#922](https://github.com/ethereum/execution-spec-tests/pull/922)).\n- 🔀 Fill test fixtures using EELS by default. EEST now uses the [`ethereum-specs-evm-resolver`](https://github.com/petertdavies/ethereum-spec-evm-resolver) with the EELS daemon ([#792](https://github.com/ethereum/execution-spec-tests/pull/792)).\n- 🔀 The EOF fixture format contained in `eof_tests` may now contain multiple exceptions in the `\"exception\"` field in the form of a pipe (`|`) separated string ([#759](https://github.com/ethereum/execution-spec-tests/pull/759)).\n- 🔀 `state_test`, `blockchain_test` and `blockchain_test_engine` fixtures now contain a `config` field, which contains an object that contains a `blobSchedule` field. On the `blockchain_test` and `blockchain_test_engine` fixtures, the object also contains a duplicate of the `network` root field. The root's `network` field will be eventually deprecated ([#1040](https://github.com/ethereum/execution-spec-tests/pull/1040)).\n- 🔀 `latest-stable-release` and `latest-develop-release` keywords for the `--input` flag in consume commands have been replaced with `stable@latest` and `develop@latest` respectively ([#1044](https://github.com/ethereum/execution-spec-tests/pull/1044)).\n\n### 🛠️ Framework\n\n- ✨ Execute command added to run existing tests in live networks ([#](https://github.com/ethereum/execution-spec-tests/pull/1157)).\n- 🐞 Fixed consume hive commands from spawning different hive test suites during the same test execution when using xdist ([#712](https://github.com/ethereum/execution-spec-tests/pull/712)).\n- ✨ `consume hive` command is now available to run all types of hive tests ([#712](https://github.com/ethereum/execution-spec-tests/pull/712)).\n- ✨ Generated fixtures now contain the test index `index.json` by default ([#716](https://github.com/ethereum/execution-spec-tests/pull/716)).\n- ✨ A metadata folder `.meta/` now stores all fixture metadata files by default ([#721](https://github.com/ethereum/execution-spec-tests/pull/721)).\n- 🐞 Fixed `fill` command index generation issue due to concurrency ([#725](https://github.com/ethereum/execution-spec-tests/pull/725)).\n- ✨ Added `with_all_evm_code_types`, `with_all_call_opcodes` and `with_all_create_opcodes` markers, which allow automatic parametrization of tests to EOF ([#610](https://github.com/ethereum/execution-spec-tests/pull/610), [#739](https://github.com/ethereum/execution-spec-tests/pull/739)).\n- ✨ Added `with_all_system_contracts` marker, which helps parametrize tests with all contracts that affect the chain on a system level ([#739](https://github.com/ethereum/execution-spec-tests/pull/739)).\n- ✨ Code generators `Conditional` and `Switch` now support EOF by adding parameter `evm_code_type` ([#610](https://github.com/ethereum/execution-spec-tests/pull/610)).\n- ✨ `fill` command now supports parameter `--evm-code-type` that can be (currently) set to `legacy` or `eof_v1` to force all test smart contracts to deployed in normal or in EOF containers ([#610](https://github.com/ethereum/execution-spec-tests/pull/610)).\n- 🐞 Fixed fixture index generation on EOF tests ([#728](https://github.com/ethereum/execution-spec-tests/pull/728)).\n- 🐞 Fixes consume genesis mismatch exception for hive based simulators ([#734](https://github.com/ethereum/execution-spec-tests/pull/734)).\n- ✨ Adds reproducible consume commands to hiveview ([#717](https://github.com/ethereum/execution-spec-tests/pull/717)).\n- 💥 Added multiple exceptions to the EOF fixture format ([#759](https://github.com/ethereum/execution-spec-tests/pull/759)).\n- ✨ Added optional parameter to all `with_all_*` markers to specify a lambda function that filters the parametrized values ([#739](https://github.com/ethereum/execution-spec-tests/pull/739)).\n- ✨ Added [`extend_with_defaults` utility function](https://eest.ethereum.org/main/writing_tests/writing_a_new_test/#ethereum_test_tools.utility.pytest.extend_with_defaults), which helps extend test case parameter sets with default values. `@pytest.mark.parametrize` ([#739](https://github.com/ethereum/execution-spec-tests/pull/739)).\n- ✨ Added `Container.Init` to `ethereum_test_types.EOF.V1` package, which allows generation of an EOF init container more easily ([#739](https://github.com/ethereum/execution-spec-tests/pull/739)).\n- ✨ Introduce method valid_opcodes() to the fork class ([#748](https://github.com/ethereum/execution-spec-tests/pull/748)).\n- 🐞 Fixed `consume` exit code return values, ensuring that pytest's return value is correctly propagated to the shell. This allows the shell to accurately reflect the test results (e.g., failures) based on the pytest exit code ([#765](https://github.com/ethereum/execution-spec-tests/pull/765)).\n- ✨ Added a new flag `--solc-version` to the `fill` command, which allows the user to specify the version of the Solidity compiler to use when compiling Yul source code; this version will now be automatically downloaded by `fill` via [`solc-select`](https://github.com/crytic/solc-select) ([#772](https://github.com/ethereum/execution-spec-tests/pull/772)).\n- 🐞 Fix usage of multiple `@pytest.mark.with_all*` markers which shared parameters, such as `with_all_call_opcodes` and `with_all_create_opcodes` which shared `evm_code_type`, and now only parametrize compatible values ([#762](https://github.com/ethereum/execution-spec-tests/pull/762)).\n- ✨ Added `selector` and `marks` fields to all `@pytest.mark.with_all*` markers, which allows passing lambda functions to select or mark specific parametrized values (see [documentation](https://eest.ethereum.org/main/writing_tests/test_markers/#covariant-marker-keyword-arguments) for more information) ([#762](https://github.com/ethereum/execution-spec-tests/pull/762)).\n- ✨ Improves consume input flags for develop and stable fixture releases, fixes `--help` flag for consume ([#745](https://github.com/ethereum/execution-spec-tests/pull/745)).\n- 🔀 Return exit-code from `consume` commands ([#766](https://github.com/ethereum/execution-spec-tests/pull/766)).\n- 🔀 Remove duplicate EOF container tests, automatically check for duplicates ([#800](https://github.com/ethereum/execution-spec-tests/pull/800)).\n- 🔀 Fix DATALOAD `pushed_stack_items` calculation ([#784](https://github.com/ethereum/execution-spec-tests/pull/784)).\n- ✨ Add `evm_bytes` rename and print asm ([#844](https://github.com/ethereum/execution-spec-tests/pull/844)).\n- 🔀 Use the `session_temp_folder` introduced in #824 ([#845](https://github.com/ethereum/execution-spec-tests/pull/845)).\n- 🐞 Don't treat eels resolutions as a fixture ([#878](https://github.com/ethereum/execution-spec-tests/pull/878)).\n- ✨ Emphasize that no tests were executed during a fill pytest session ([#887](https://github.com/ethereum/execution-spec-tests/pull/887)).\n- 🔀 Move generic code from TransitionTool to a new generic base class EthereumCLI ([#894](https://github.com/ethereum/execution-spec-tests/pull/894)).\n- 🐞 Fix erroneous fork mes- 🔀 Fix max stack height calculation ([#810](https://github.com/ethereum/execution-spec-tests/pull/810)).\n- ✨ Add storage key hint in Storage class ([#917](https://github.com/ethereum/execution-spec-tests/pull/917)).\n- ✨ Add system to verify exception strings ([#795](https://github.com/ethereum/execution-spec-tests/pull/795)).\n- 🔀 Fix `FixedBytes` assignment rules ([#1010](https://github.com/ethereum/execution-spec-tests/pull/1010)).\n- 🔀 Fix `Address` padding options ([#1113](https://github.com/ethereum/execution-spec-tests/pull/1113)).\n- 🔀 Add `Container.expected_bytecode` optional parameter ([#737](https://github.com/ethereum/execution-spec-tests/pull/737)).\n- ✨ Add support for `initcode_prefix` on EOF `Container.Init` ([#819](https://github.com/ethereum/execution-spec-tests/pull/819)).sage in pytest session header with development forks ([#806](https://github.com/ethereum/execution-spec-tests/pull/806)).\n- 🐞 Fix `Conditional` code generator in EOF mode ([#821](https://github.com/ethereum/execution-spec-tests/pull/821)).\n- 🔀 Ensure that `Block` objects keep track of their `fork`, for example, when the block's `rlp_modifier` is not `None` ([#854](https://github.com/ethereum/execution-spec-tests/pull/854)).\n- 🔀 `ethereum_test_rpc` library has been created with what was previously `ethereum_test_tools.rpc` ([#822](https://github.com/ethereum/execution-spec-tests/pull/822)).\n- ✨ Add `Wei` type to `ethereum_test_base_types` which allows parsing wei amounts from strings like \"1 ether\", \"1000 wei\", \"10**2 gwei\", etc ([#825](https://github.com/ethereum/execution-spec-tests/pull/825)).\n- ✨ Pin EELS versions in `eels_resolutions.json` and include this file in fixture releases ([#872](https://github.com/ethereum/execution-spec-tests/pull/872)).\n- 🔀 Replace `ethereum.base_types` with `ethereum-types` ([#850](https://github.com/ethereum/execution-spec-tests/pull/850)).\n- 💥 Rename the `PragueEIP7692` fork to `Osaka` ([#869](https://github.com/ethereum/execution-spec-tests/pull/869)).\n- ✨ Improve `fill` terminal output to emphasize that filling tests is not actually testing a client ([#807](https://github.com/ethereum/execution-spec-tests/pull/887)).\n- ✨ Add the `BlockchainTestEngine` test spec type that only generates a fixture in the `EngineFixture` (`blockchain_test_engine`) format ([#888](https://github.com/ethereum/execution-spec-tests/pull/888)).\n- 🔀 Move the `evm_transition_tool` package to `ethereum_clis` and derive the transition tool CL interfaces from a shared `EthereumCLI` class that can be reused for other sub-commands ([#894](https://github.com/ethereum/execution-spec-tests/pull/894)).\n- ✨ Pass `state_test` property to T8N tools that support it (Only EELS at the time of merge) ([#943](https://github.com/ethereum/execution-spec-tests/pull/943)).\n- ✨ Add the `eofwrap` cli used to wrap tests from `ethereum/tests` in an EOF container ([#896](https://github.com/ethereum/execution-spec-tests/pull/896)).\n- 🔀 Improve gentest architecture with `EthereumTestBaseModel` and `EthereumTestRootModel` ([#901](https://github.com/ethereum/execution-spec-tests/pull/901)).\n- 🔀 Migrate transaction test to `state_test` for `gentest` ([#903](https://github.com/ethereum/execution-spec-tests/pull/903)).\n- 🔀 `ethereum_test_forks` forks now contain gas-calculating functions, which return the appropriate function to calculate the gas used by a transaction or memory function for the given fork ([#779](https://github.com/ethereum/execution-spec-tests/pull/779)).\n- 🐞 Fix `Bytecode` class `__eq__` method ([#939](https://github.com/ethereum/execution-spec-tests/pull/939)).\n- 🔀 Update `pydantic` from 2.8.2 to 2.9.2 ([#960](https://github.com/ethereum/execution-spec-tests/pull/960)).\n- ✨ Add the `eest make test` command, an interactive CLI that helps users create a new test module and function ([#950](https://github.com/ethereum/execution-spec-tests/pull/950)).\n- ✨ Add the `eest clean` command that helps delete generated files and directories from the repository ([#980](https://github.com/ethereum/execution-spec-tests/pull/980)).\n- ✨ Add framework changes for EIP-7742, required for Prague devnet-5 ([#931](https://github.com/ethereum/execution-spec-tests/pull/931)).\n- ✨ Add the `eest make env` command that generates a default env file (`env.yaml`)([#996](https://github.com/ethereum/execution-spec-tests/pull/996)).\n- ✨ Generate Transaction Test type ([#933](https://github.com/ethereum/execution-spec-tests/pull/933)).\n- ✨ Add a default location for evm logs (`--evm-dump-dir`) when filling tests ([#999](https://github.com/ethereum/execution-spec-tests/pull/999)).\n- ✨ Slow tests now have greater timeout when making a request to the T8N server ([#1037](https://github.com/ethereum/execution-spec-tests/pull/1037)).\n- ✨ Introduce [`pytest.mark.parametrize_by_fork`](https://eest.ethereum.org/main/writing_tests/test_markers/#pytestmarkfork_parametrize) helper marker ([#1019](https://github.com/ethereum/execution-spec-tests/pull/1019), [#1057](https://github.com/ethereum/execution-spec-tests/pull/1057)).\n- 🐞 fix(consume): allow absolute paths with `--evm-bin` ([#1052](https://github.com/ethereum/execution-spec-tests/pull/1052)).\n- ✨ Disable EIP-7742 framework changes for Prague ([#1023](https://github.com/ethereum/execution-spec-tests/pull/1023)).\n- ✨ Allow verification of the transaction receipt on executed test transactions ([#1068](https://github.com/ethereum/execution-spec-tests/pull/1068)).\n- ✨ Modify `valid_at_transition_to` marker to add keyword arguments `subsequent_transitions` and `until` to fill a test using multiple transition forks ([#1081](https://github.com/ethereum/execution-spec-tests/pull/1081)).\n- 🐞 fix(consume): use `\"HIVE_CHECK_LIVE_PORT\"` to signal hive to wait for port 8551 (Engine API port) instead of the 8545 port when running `consume engine` ([#1095](https://github.com/ethereum/execution-spec-tests/pull/1095)).\n- ✨ `state_test`, `blockchain_test` and `blockchain_test_engine` fixtures now contain the `blobSchedule` from [EIP-7840](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-7840.md), only for tests filled for Cancun and Prague forks ([#1040](https://github.com/ethereum/execution-spec-tests/pull/1040)).\n- 🔀 Change `--dist` flag to the default value, `load`, for better parallelism handling during test filling ([#1118](https://github.com/ethereum/execution-spec-tests/pull/1118)).\n- 🔀 Refactor framework code to use the [`ethereum-rlp`](https://pypi.org/project/ethereum-rlp/) package instead of `ethereum.rlp`, previously available in ethereum/execution-specs ([#1180](https://github.com/ethereum/execution-spec-tests/pull/1180)).\n- 🔀 Update EELS / execution-specs EEST dependency to [99238233](https://github.com/ethereum/execution-specs/commit/9923823367b5586228e590537d47aa9cc4c6a206) for EEST framework libraries and test case generation ([#1181](https://github.com/ethereum/execution-spec-tests/pull/1181)).\n- ✨ Add the `consume cache` command to cache fixtures before running consume commands ([#1044](https://github.com/ethereum/execution-spec-tests/pull/1044)).\n- ✨ The `--input` flag of the consume commands now supports parsing of tagged release names in the format `<RELEASE_NAME>@<RELEASE_VERSION>` ([#1044](https://github.com/ethereum/execution-spec-tests/pull/1044)).\n- 🐞 Fix stdout output when using the `fill` command ([#1188](https://github.com/ethereum/execution-spec-tests/pull/1188)).\n- ✨ Add tests for blockchain intermediate state verification ([#1075](https://github.com/ethereum/execution-spec-tests/pull/1075)).\n- ✨ Add Interactive CLI input functionality ([#947](https://github.com/ethereum/execution-spec-tests/pull/947)).\n- 🔀 Rename `EOFTest.data` to `EOFTest.container` with rebase of `EOFStateTest` ([#1145](https://github.com/ethereum/execution-spec-tests/pull/1145)).\n- ✨ Turn on `--traces` for EELS + `ethereum-specs-evm-resolver` ([#1174](https://github.com/ethereum/execution-spec-tests/pull/1174)).\n\n### 📋 Misc\n\n- ✨ Feature releases can now include multiple types of fixture tarball files from different releases that start with the same prefix ([#736](https://github.com/ethereum/execution-spec-tests/pull/736)).\n- ✨ Releases for feature eip7692 now include both Cancun and Prague based tests in the same release, in files `fixtures_eip7692.tar.gz` and `fixtures_eip7692-prague.tar.gz` respectively ([#743](https://github.com/ethereum/execution-spec-tests/pull/743)).\n✨ Re-write the test case reference doc flow as a pytest plugin and add pages for test functions with a table providing an overview of their parametrized test cases ([#801](https://github.com/ethereum/execution-spec-tests/pull/801), [#842](https://github.com/ethereum/execution-spec-tests/pull/842)).\n- 🔀 Simplify Python project configuration and consolidate it into `pyproject.toml` ([#764](https://github.com/ethereum/execution-spec-tests/pull/764)).\n- ✨ Add dev docs to help using nectos/act ([#776](https://github.com/ethereum/execution-spec-tests/pull/776)).\n- 🔀 Update `uv.lock` for updated solc deps ([#782](https://github.com/ethereum/execution-spec-tests/pull/782)).\n- ✨ Enable coverage on any test change ([#790](https://github.com/ethereum/execution-spec-tests/pull/790)).\n- 🔀 Created `pytest_plugins.concurrency` plugin to sync multiple `xdist` processes without using a command flag to specify the temporary working folder ([#824](https://github.com/ethereum/execution-spec-tests/pull/824)).\n- 🔀 Move pytest plugin `pytest_plugins.filler.solc` to `pytest_plugins.solc.solc` ([#823](https://github.com/ethereum/execution-spec-tests/pull/823)).\n- 🔀 Remove `formats.py`, embed properties as class vars ([#826](https://github.com/ethereum/execution-spec-tests/pull/826)).\n- ✨ Add `build-evm-base` to docs deploy workflows ([#829](https://github.com/ethereum/execution-spec-tests/pull/829)).\n- 🔀 Add links to the online test case docs in the EOF tracker ([#838](https://github.com/ethereum/execution-spec-tests/pull/838)).\n- 🔀 Fix miscellaneous improvements to troubleshooting, navigation, styling ([#840](https://github.com/ethereum/execution-spec-tests/pull/840)).\n- ✨ Include all parameters in test parameter datatables ([#842](https://github.com/ethereum/execution-spec-tests/pull/842)).\n- ✨ Add info about ripemd160 & update running actions locally ([#847](https://github.com/ethereum/execution-spec-tests/pull/847)).\n- ✨ Add `SECURITY.md` describing how to report vulnerabilities ([#848](https://github.com/ethereum/execution-spec-tests/pull/848)).\n- 🔀 Change image from ubuntu-24.04 to ubuntu-latest in CI ([#855](https://github.com/ethereum/execution-spec-tests/pull/855)).\n- 🐞 Asserts that the deploy docs tags workflow is only triggered for full releases ([#857](https://github.com/ethereum/execution-spec-tests/pull/857)).\n- 🐞 Fix deploy docs tags workflow trigger ([#858](https://github.com/ethereum/execution-spec-tests/pull/858)).\n- ✨ A new application-wide configuration manager provides access to environment and application configurations. ([#892](https://github.com/ethereum/execution-spec-tests/pull/892)).\n- 🔀 Update the developer docs navigation ([#898](https://github.com/ethereum/execution-spec-tests/pull/898)).\n- 🔀 Use jinja2 templating in `gentest` ([#900](https://github.com/ethereum/execution-spec-tests/pull/900)).\n- ✨ Fix/add test github actions locally page ([#909](https://github.com/ethereum/execution-spec-tests/pull/909)).\n- 🐞 Fix print fill output in coverage workflow on errors ([#919](https://github.com/ethereum/execution-spec-tests/pull/919)).\n- 🐞 Use a local version of ethereum/execution-specs (EELS) when running the framework tests in CI ([#997](https://github.com/ethereum/execution-spec-tests/pull/997)).\n- ✨ Use self-hosted runners for fixture building in CI ([#1051](https://github.com/ethereum/execution-spec-tests/pull/1051)).\n- ✨ Release tarballs now contain fixtures filled for all forks, not only the fork under active development and the fork currently deployed on mainnet ([#1053](https://github.com/ethereum/execution-spec-tests/pull/1053)).\n- ✨ `StateTest` fixture format now contains `state` field in each network post result, containing the decoded post allocation that results from the transaction execution ([#1064](https://github.com/ethereum/execution-spec-tests/pull/1064)).\n- ✨ Include EELS fork resolution information in filled json test fixtures ([#1123](https://github.com/ethereum/execution-spec-tests/pull/1123)).\n- 🔀 Updates ruff from version 0.8.2 to 0.9.4 ([#1168](https://github.com/ethereum/execution-spec-tests/pull/1168)).\n- 🔀 Update `uv.lock` to be compatible with `uv>=0.5.22` ([#1178](https://github.com/ethereum/execution-spec-tests/pull/1178)).\n- 🔀 Update `mypy` from version `0.991` to `1.15` ([#1209](https://github.com/ethereum/execution-spec-tests/pull/1209)).\n\n### 🧪 Test Cases\n\n- ✨ Migrate validation tests `EIP3540/validInvalidFiller.yml` ([#598](https://github.com/ethereum/execution-spec-tests/pull/598)).\n- ✨ EIP-4844 test `tests/cancun/eip4844_blobs/test_point_evaluation_precompile.py` includes an EOF test case ([#610](https://github.com/ethereum/execution-spec-tests/pull/610)).\n- ✨ Example test `tests/frontier/opcodes/test_dup.py` now includes EOF parametrization ([#610](https://github.com/ethereum/execution-spec-tests/pull/610)).\n- ✨ Add EOFv1 function test - Call simple contract test ([#695](https://github.com/ethereum/execution-spec-tests/pull/695)).\n- ✨ Add section size validation tests ([#705](https://github.com/ethereum/execution-spec-tests/pull/705)).\n- ✨ Add deep and wide EOF subcontainers tests ([#718](https://github.com/ethereum/execution-spec-tests/pull/718)).\n- ✨ Update [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702) tests for Devnet-3 ([#733](https://github.com/ethereum/execution-spec-tests/pull/733)).\n- ✨ Migrate \"valid\" EOFCREATE validation ([#738](https://github.com/ethereum/execution-spec-tests/pull/738)).\n- ✨ Migrate tests for truncated sections ([#740](https://github.com/ethereum/execution-spec-tests/pull/740)).\n- ✨ Add out of order container section test ([#741](https://github.com/ethereum/execution-spec-tests/pull/741)).\n- ✨ Convert all opcodes validation test `tests/frontier/opcodes/test_all_opcodes.py` ([#748](https://github.com/ethereum/execution-spec-tests/pull/748)).\n- 🔀 Add Test types with 128 inputs ([#749](https://github.com/ethereum/execution-spec-tests/pull/749)).\n- 🔀 Use new marker to EOF-ize MCOPY test ([#754](https://github.com/ethereum/execution-spec-tests/pull/754)).\n- ✨ Add EOF Tests from Fuzzing ([#756](https://github.com/ethereum/execution-spec-tests/pull/756)).\n- ✨ Add embedded container tests ([#763](https://github.com/ethereum/execution-spec-tests/pull/763)).\n- ✨ Validate EOF only opcodes are invalid in legacy ([#768](https://github.com/ethereum/execution-spec-tests/pull/768)).\n- ✨ Update EOF tracker, add unimplemented tests ([#773](https://github.com/ethereum/execution-spec-tests/pull/773)).\n- ✨ Add EIP-7620 EOFCREATE gas tests ([#785](https://github.com/ethereum/execution-spec-tests/pull/785)).\n- ✨ Add more fuzzing discovered EOF tests ([#789](https://github.com/ethereum/execution-spec-tests/pull/789)).\n- ✨ Add EOF tests for invalid non-returning sections ([#794](https://github.com/ethereum/execution-spec-tests/pull/794)).\n- ✨ Test to ensure transient storage is cleared after transactions ([#798](https://github.com/ethereum/execution-spec-tests/pull/798)).\n- ✨ Test that transient storage stays at correct address ([#799](https://github.com/ethereum/execution-spec-tests/pull/799)).\n- ✨ Add EOFCREATE referencing the same subcontainer twice test ([#809](https://github.com/ethereum/execution-spec-tests/pull/809)).\n- ✨ Add dangling data in subcontainer test ([#812](https://github.com/ethereum/execution-spec-tests/pull/812)).\n- 🐞 Fix [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702)+EOF tests due to incorrect test expectations and faulty `Conditional` test generator in EOF mode ([#821](https://github.com/ethereum/execution-spec-tests/pull/821)).\n- 🐞 Fix TSTORE EOF variant test ([#831](https://github.com/ethereum/execution-spec-tests/pull/831)).\n- 🔀 Unify EOF return code constants ([#834](https://github.com/ethereum/execution-spec-tests/pull/834)).\n- ✨ Add RJUMP* vs CALLF tests ([#833](https://github.com/ethereum/execution-spec-tests/pull/833)).\n- ✨ Add tests to clarify \"non-returning instruction\" ([#837](https://github.com/ethereum/execution-spec-tests/pull/837)).\n- ✨ Add double RJUMPI stack validation tests ([#851](https://github.com/ethereum/execution-spec-tests/pull/851)).\n- ✨ Add unreachable code sections tests ([#856](https://github.com/ethereum/execution-spec-tests/pull/856)).\n- 💥 `PragueEIP7692` fork in tests has been updated to `Osaka` ([#869](https://github.com/ethereum/execution-spec-tests/pull/869)).\n- ✨ Update [EIP-6110](https://eips.ethereum.org/EIPS/eip-6110), [EIP-7002](https://eips.ethereum.org/EIPS/eip-7002), [EIP-7251](https://eips.ethereum.org/EIPS/eip-7251), [EIP-7685](https://eips.ethereum.org/EIPS/eip-7685), and [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702) tests for Devnet-4 ([#832](https://github.com/ethereum/execution-spec-tests/pull/832)).\n- ✨ Add EIP-7069 and EIP-7620 failures and context vars tests ([#836](https://github.com/ethereum/execution-spec-tests/pull/836)).\n- ✨ Add EOF EIP-4750 Stack validation in CALLF test ([#889](https://github.com/ethereum/execution-spec-tests/pull/889)).\n- ✨ Add stack overflow by rule check to JUMPF tests ([#902](https://github.com/ethereum/execution-spec-tests/pull/902)).\n- 🐞 Fix erroneous test with`CALLF` rule bug ([#907](https://github.com/ethereum/execution-spec-tests/pull/907)).\n- ✨ Add test for EXTDELEGATECALL value cost ([#911](https://github.com/ethereum/execution-spec-tests/pull/911)).\n- ✨ Add basic EOF execution tests ([#912](https://github.com/ethereum/execution-spec-tests/pull/912)).\n- ✨ Add parametrized CALLF execution tests ([#913](https://github.com/ethereum/execution-spec-tests/pull/913)).\n- ✨ Add CALLF execution tests ([#914](https://github.com/ethereum/execution-spec-tests/pull/914)).\n- ✨ Add fibonacci and factorial CALLF tests ([#915](https://github.com/ethereum/execution-spec-tests/pull/915)).\n- ✨ Add RJUMP* execution tests ([#916](https://github.com/ethereum/execution-spec-tests/pull/916)).\n- ✨ [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702) many delegations test ([#923](https://github.com/ethereum/execution-spec-tests/pull/923)).\n- ✨ Add opcode validation tests ([#932](https://github.com/ethereum/execution-spec-tests/pull/932)).\n- ✨ Add RJUMPI with JUMPF tests ([#928](https://github.com/ethereum/execution-spec-tests/pull/928)).\n- ✨ [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702) set code of non-empty-storage account test ([#948](https://github.com/ethereum/execution-spec-tests/pull/948)).\n- ✨ Add PUSH* opcode tests ([#975](https://github.com/ethereum/execution-spec-tests/pull/975)).\n- ✨ [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702) implement 7702 test ideas ([#981](https://github.com/ethereum/execution-spec-tests/pull/981)).\n- ✨ [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702) Remove delegation behavior of EXTCODE* ([#984](https://github.com/ethereum/execution-spec-tests/pull/984)).\n- ✨ Add EIP-7620 RETURNCONTRACT behavior verification test ([#1109](https://github.com/ethereum/execution-spec-tests/pull/1109)).\n- ✨ Add EIP-7069 p256verify EOF calls tests ([#1021](https://github.com/ethereum/execution-spec-tests/pull/1021)).\n- ✨ Add EIP-7480 DATACOPY edge cases tests ([#1020](https://github.com/ethereum/execution-spec-tests/pull/1020)).\n- ✨ Add EIP-7069 EXTCALL creation gas charge tests ([#1025](https://github.com/ethereum/execution-spec-tests/pull/1025)).\n- ✨ Add generic precompile-absence test ([#1036](https://github.com/ethereum/execution-spec-tests/pull/1036)).\n- ✨ Add test for [EIP-2537](https://eips.ethereum.org/EIPS/eip-2537) which uses the full discount table of G2 MSM ([#1038](https://github.com/ethereum/execution-spec-tests/pull/1038)).\n- ✨ [EIP-7691](https://eips.ethereum.org/EIPS/eip-7691) Blob throughput increase tests by parametrization of existing EIP-4844 tests ([#1023](https://github.com/ethereum/execution-spec-tests/pull/1023), [#1082](https://github.com/ethereum/execution-spec-tests/pull/1082)).\n- ✨ Port [calldatacopy test](https://github.com/ethereum/tests/blob/ae4791077e8fcf716136e70fe8392f1a1f1495fb/src/GeneralStateTestsFiller/VMTests/vmTests/calldatacopyFiller.yml) ([#1056](https://github.com/ethereum/execution-spec-tests/pull/1056)).\n- ✨ [EIP-7623](https://eips.ethereum.org/EIPS/eip-7623) Increase calldata cost ([#1004](https://github.com/ethereum/execution-spec-tests/pull/1004), [#1071](https://github.com/ethereum/execution-spec-tests/pull/1071)).\n- ✨ Add CALLF invalid section index tests ([#1111](https://github.com/ethereum/execution-spec-tests/pull/1111)).\n- ✨ Add JUMPF invalid section index tests ([#1112](https://github.com/ethereum/execution-spec-tests/pull/1112)).\n- ✨ Add CALLF truncated immediate bytes tests ([#1114](https://github.com/ethereum/execution-spec-tests/pull/1114)).\n- ✨ [EIP-152](https://eips.ethereum.org/EIPS/eip-152) Add tests for Blake2 compression function `F` precompile ([#1067](https://github.com/ethereum/execution-spec-tests/pull/1067)).\n- ✨ Add CALLF non-returning section tests ([#1126](https://github.com/ethereum/execution-spec-tests/pull/1126)).\n- ✨ Add DATALOADN truncated immediate bytes tests ([#1127](https://github.com/ethereum/execution-spec-tests/pull/1127)).\n- 🔀 Update EIP-7702 test expectations according to [spec updates](https://github.com/ethereum/EIPs/pull/9248) ([#1129](https://github.com/ethereum/execution-spec-tests/pull/1129)).\n- ✨ Add tests for CALLF and non-returning ([#1140](https://github.com/ethereum/execution-spec-tests/pull/1140)).\n- 🔀 Update EIP-7251 according to spec updates [#9127](https://github.com/ethereum/EIPs/pull/9127), [#9289](https://github.com/ethereum/EIPs/pull/9289) ([#1024](https://github.com/ethereum/execution-spec-tests/pull/1024), [#1155](https://github.com/ethereum/execution-spec-tests/pull/1155)).\n- 🔀 Update EIP-7002 according to spec updates [#9119](https://github.com/ethereum/EIPs/pull/9119), [#9288](https://github.com/ethereum/EIPs/pull/9288) ([#1024](https://github.com/ethereum/execution-spec-tests/pull/1024), [#1155](https://github.com/ethereum/execution-spec-tests/pull/1155)).\n- 🔀 Update EIP-2935 according to spec updates [#9144](https://github.com/ethereum/EIPs/pull/9144), [#9287](https://github.com/ethereum/EIPs/pull/9287) ([#1046](https://github.com/ethereum/execution-spec-tests/pull/1046), [#1155](https://github.com/ethereum/execution-spec-tests/pull/1155)).\n- ✨ Add DATALOADN validation and execution tests ([#1162](https://github.com/ethereum/execution-spec-tests/pull/1162)).\n- ✨ Add EOF prefix tests ([#1187](https://github.com/ethereum/execution-spec-tests/pull/1187)).\n- ✨ Add tests for EOF code header missing ([#1193](https://github.com/ethereum/execution-spec-tests/pull/1193)).\n- ✨ Add tests for empty EOF type section ([#1194](https://github.com/ethereum/execution-spec-tests/pull/1194)).\n- ✨ Add tests for multiple EOF type sections ([#1195](https://github.com/ethereum/execution-spec-tests/pull/1195)).\n- ✨ Add EIP-7698 legacy EOF creation prevention tests ([#1206](https://github.com/ethereum/execution-spec-tests/pull/1206)).\n\n## [v3.0.0](https://github.com/ethereum/execution-spec-tests/releases/tag/v3.0.0) - 2024-07-22\n\n### 🧪 Test Cases\n\n- ✨ Port create2 return data test ([#497](https://github.com/ethereum/execution-spec-tests/pull/497)).\n- ✨ Add tests for eof container's section bytes position smart fuzzing ([#592](https://github.com/ethereum/execution-spec-tests/pull/592)).\n- ✨ Add `test_create_selfdestruct_same_tx_increased_nonce` which tests self-destructing a contract with a nonce > 1 ([#478](https://github.com/ethereum/execution-spec-tests/pull/478)).\n- ✨ Add `test_double_kill` and `test_recreate` which test resurrection of accounts killed with `SELFDESTRUCT` ([#488](https://github.com/ethereum/execution-spec-tests/pull/488)).\n- ✨ Add eof example valid invalid tests from ori, fetch EOF Container implementation ([#535](https://github.com/ethereum/execution-spec-tests/pull/535)).\n- ✨ Add tests for [EIP-2537: Precompile for BLS12-381 curve operations](https://eips.ethereum.org/EIPS/eip-2537) ([#499](https://github.com/ethereum/execution-spec-tests/pull/499)).\n- ✨ [EIP-663](https://eips.ethereum.org/EIPS/eip-663): Add `test_dupn.py` and `test_swapn.py` ([#502](https://github.com/ethereum/execution-spec-tests/pull/502)).\n- ✨ Add tests for [EIP-6110: Supply validator deposits on chain](https://eips.ethereum.org/EIPS/eip-6110) ([#530](https://github.com/ethereum/execution-spec-tests/pull/530)).\n- ✨ Add tests for [EIP-7002: Execution layer triggerable withdrawals](https://eips.ethereum.org/EIPS/eip-7002) ([#530](https://github.com/ethereum/execution-spec-tests/pull/530)).\n- ✨ Add tests for [EIP-7685: General purpose execution layer requests](https://eips.ethereum.org/EIPS/eip-7685) ([#530](https://github.com/ethereum/execution-spec-tests/pull/530)).\n- ✨ Add tests for [EIP-2935: Serve historical block hashes from state](https://eips.ethereum.org/EIPS/eip-2935) ([#564](https://github.com/ethereum/execution-spec-tests/pull/564), [#585](https://github.com/ethereum/execution-spec-tests/pull/585)).\n- ✨ Add tests for [EIP-4200: EOF - Static relative jumps](https://eips.ethereum.org/EIPS/eip-4200) ([#581](https://github.com/ethereum/execution-spec-tests/pull/581), [#666](https://github.com/ethereum/execution-spec-tests/pull/666)).\n- ✨ Add tests for [EIP-7069: EOF - Revamped CALL instructions](https://eips.ethereum.org/EIPS/eip-7069) ([#595](https://github.com/ethereum/execution-spec-tests/pull/595)).\n- 🐞 Fix typos in self-destruct collision test from erroneous pytest parametrization ([#608](https://github.com/ethereum/execution-spec-tests/pull/608)).\n- ✨ Add tests for [EIP-3540: EOF - EVM Object Format v1](https://eips.ethereum.org/EIPS/eip-3540) ([#634](https://github.com/ethereum/execution-spec-tests/pull/634), [#668](https://github.com/ethereum/execution-spec-tests/pull/668)).\n- 🔀 Update EIP-7002 tests to match spec changes in [ethereum/execution-apis#549](https://github.com/ethereum/execution-apis/pull/549) ([#600](https://github.com/ethereum/execution-spec-tests/pull/600)).\n- ✨ Convert a few eip1153 tests from ethereum/tests repo into .py ([#440](https://github.com/ethereum/execution-spec-tests/pull/440)).\n- ✨ Add tests for [EIP-7480: EOF - Data section access instructions](https://eips.ethereum.org/EIPS/eip-7480) ([#518](https://github.com/ethereum/execution-spec-tests/pull/518), [#664](https://github.com/ethereum/execution-spec-tests/pull/664)).\n- ✨ Add tests for subcontainer kind validation from [EIP-7620: EOF Contract Creation](https://eips.ethereum.org/EIPS/eip-7620) for the cases with deeply nested containers and non-first code sections ([#676](https://github.com/ethereum/execution-spec-tests/pull/676)).\n- ✨ Add tests for runtime stack overflow at CALLF instruction from [EIP-4750: EOF - Functions](https://eips.ethereum.org/EIPS/eip-4750) ([#678](https://github.com/ethereum/execution-spec-tests/pull/678)).\n- ✨ Add tests for runtime stack overflow at JUMPF instruction from [EIP-6206: EOF - JUMPF and non-returning functions](https://eips.ethereum.org/EIPS/eip-6206) ([#690](https://github.com/ethereum/execution-spec-tests/pull/690)).\n- ✨ Add tests for Devnet-1 version of [EIP-7702: Set EOA account code](https://eips.ethereum.org/EIPS/eip-7702) ([#621](https://github.com/ethereum/execution-spec-tests/pull/621)).\n\n### 🛠️ Framework\n\n- 🐞 Fix incorrect `!=` operator for `FixedSizeBytes` ([#477](https://github.com/ethereum/execution-spec-tests/pull/477)).\n- ✨ Add Macro enum that represents byte sequence of Op instructions ([#457](https://github.com/ethereum/execution-spec-tests/pull/457)).\n- ✨ Number of parameters used to call opcodes (to generate bytecode) is now checked ([#492](https://github.com/ethereum/execution-spec-tests/pull/492)).\n- ✨ Libraries have been refactored to use `pydantic` for type checking in most test types ([#486](https://github.com/ethereum/execution-spec-tests/pull/486), [#501](https://github.com/ethereum/execution-spec-tests/pull/501), [#508](https://github.com/ethereum/execution-spec-tests/pull/508)).\n- ✨ Opcodes are now subscriptable and it's used to define the data portion of the opcode: `Op.PUSH1(1) == Op.PUSH1[1]  == b\"\\x60\\x01\"` ([#513](https://github.com/ethereum/execution-spec-tests/pull/513)).\n- ✨ Added EOF fixture format ([#512](https://github.com/ethereum/execution-spec-tests/pull/512)).\n- ✨ Verify filled EOF fixtures using `evmone-eofparse` during `fill` execution ([#519](https://github.com/ethereum/execution-spec-tests/pull/519)).\n- ✨ Added `--traces` support when running with Hyperledger Besu ([#511](https://github.com/ethereum/execution-spec-tests/pull/511)).\n- ✨ Use pytest's \"short\" traceback style (`--tb=short`) for failure summaries in the test report for more compact terminal output ([#542](https://github.com/ethereum/execution-spec-tests/pull/542)).\n- ✨ The `fill` command now generates HTML test reports with links to the JSON fixtures and debug information ([#537](https://github.com/ethereum/execution-spec-tests/pull/537)).\n- ✨ Add an Ethereum RPC client class for use with consume commands ([#556](https://github.com/ethereum/execution-spec-tests/pull/556)).\n- ✨ Add a \"slow\" pytest marker, in order to be able to limit the filled tests until release ([#562](https://github.com/ethereum/execution-spec-tests/pull/562)).\n- ✨ Add a CLI tool that generates blockchain tests as Python from a transaction hash ([#470](https://github.com/ethereum/execution-spec-tests/pull/470), [#576](https://github.com/ethereum/execution-spec-tests/pull/576)).\n- ✨ Add more Transaction and Block exceptions from existing ethereum/tests repo ([#572](https://github.com/ethereum/execution-spec-tests/pull/572)).\n- ✨ Add \"description\" and \"url\" fields containing test case documentation and a source code permalink to fixtures during `fill` and use them in `consume`-generated Hive test reports ([#579](https://github.com/ethereum/execution-spec-tests/pull/579)).\n- ✨ Add git workflow evmone coverage script for any new lines mentioned in converted_ethereum_tests.txt ([#503](https://github.com/ethereum/execution-spec-tests/pull/503)).\n- ✨ Add a new covariant marker `with_all_contract_creating_tx_types` that allows automatic parametrization of a test with all contract-creating transaction types at the current executing fork ([#602](https://github.com/ethereum/execution-spec-tests/pull/602)).\n- ✨ Tests are now encouraged to declare a `pre: Alloc` parameter to get the pre-allocation object for the test, and use `pre.deploy_contract` and `pre.fund_eoa` to deploy contracts and fund accounts respectively, instead of declaring the `pre` as a dictionary or modifying its contents directly (see the [state test tutorial](https://eest.ethereum.org/v4.1.0/writing_tests/tutorials/state_transition/) for an updated example) ([#584](https://github.com/ethereum/execution-spec-tests/pull/584)).\n- ✨ Enable loading of [ethereum/tests/BlockchainTests](https://github.com/ethereum/tests/tree/develop/BlockchainTests) ([#596](https://github.com/ethereum/execution-spec-tests/pull/596)).\n- 🔀 Refactor `gentest` to use `ethereum_test_tools.rpc.rpc` by adding to `get_transaction_by_hash`, `debug_trace_call` to `EthRPC` ([#568](https://github.com/ethereum/execution-spec-tests/pull/568)).\n- ✨ Write a properties file to the output directory and enable direct generation of a fixture tarball from `fill` via `--output=fixtures.tgz`([#627](https://github.com/ethereum/execution-spec-tests/pull/627)).\n- 🔀 `ethereum_test_tools` library has been split into multiple libraries ([#645](https://github.com/ethereum/execution-spec-tests/pull/645)).\n- ✨ Add the consume engine simulator and refactor the consume simulator suite ([#691](https://github.com/ethereum/execution-spec-tests/pull/691)).\n- 🐞 Prevents forcing consume to use stdin as an input when running from hive ([#701](https://github.com/ethereum/execution-spec-tests/pull/701)).\n\n### 📋 Misc\n\n- 🐞 Fix CI by using Golang 1.21 in Github Actions to build geth ([#484](https://github.com/ethereum/execution-spec-tests/pull/484)).\n- 💥 \"Merge\" has been renamed to \"Paris\" in the \"network\" field of the Blockchain tests, and in the \"post\" field of the State tests ([#480](https://github.com/ethereum/execution-spec-tests/pull/480)).\n- ✨ Port entry point scripts to use [click](https://click.palletsprojects.com) and add tests ([#483](https://github.com/ethereum/execution-spec-tests/pull/483)).\n- 💥 As part of the pydantic conversion, the fixtures have the following (possibly breaking) changes ([#486](https://github.com/ethereum/execution-spec-tests/pull/486)):\n    - State test field `transaction` now uses the proper zero-padded hex number format for fields `maxPriorityFeePerGas`, `maxFeePerGas`, and `maxFeePerBlobGas`.\n    - Fixtures' hashes (in the `_info` field) are now calculated by removing the \"_info\" field entirely instead of it being set to an empty dict.\n- 🐞 Relax minor and patch dependency requirements to avoid conflicting package dependencies ([#510](https://github.com/ethereum/execution-spec-tests/pull/510)).\n- 🔀 Update all CI actions to use their respective Node.js 20 versions, ahead of their Node.js 16 version deprecations ([#527](https://github.com/ethereum/execution-spec-tests/pull/527)).\n- ✨ Releases now contain a `fixtures_eip7692.tar.gz` which contains all EOF fixtures ([#573](https://github.com/ethereum/execution-spec-tests/pull/573)).\n- ✨ Use `solc-select` for tox when running locally and within CI ([#604](https://github.com/ethereum/execution-spec-tests/pull/604)).\n\n### 💥 Breaking Change\n\n- Cancun is now the latest deployed fork, and the development fork is now Prague ([#489](https://github.com/ethereum/execution-spec-tests/pull/489)).\n- Stable fixtures artifact `fixtures.tar.gz` has been renamed to `fixtures_stable.tar.gz` ([#573](https://github.com/ethereum/execution-spec-tests/pull/573)).\n- The \"Blockchain Test Hive\" fixture format has been renamed to \"Blockchain Test Engine\" and updated to more closely resemble the `engine_newPayload` format in the `execution-apis` specification (<https://github.com/ethereum/execution-apis/blob/main/src/engine/prague.md#request>) and now contains a single `\"params\"` field instead of multiple fields for each parameter ([#687](https://github.com/ethereum/execution-spec-tests/pull/687)).\n- Output folder for fixtures has been renamed from \"blockchain_tests_hive\" to \"blockchain_tests_engine\" ([#687](https://github.com/ethereum/execution-spec-tests/pull/687)).\n\n## [v2.1.1](https://github.com/ethereum/execution-spec-tests/releases/tag/v2.1.1) - 2024-03-09\n\n### 🧪 Test Cases\n\n- 🐞 Dynamic create2 collision from different transactions same block ([#430](https://github.com/ethereum/execution-spec-tests/pull/430)).\n- 🐞 Fix beacon root contract deployment tests so the account in the pre-alloc is not empty ([#425](https://github.com/ethereum/execution-spec-tests/pull/425)).\n- 🔀 All beacon root contract tests are now contained in tests/cancun/eip4788_beacon_root/test_beacon_root_contract.py, and all state tests have been converted back to blockchain tests format ([#449](https://github.com/ethereum/execution-spec-tests/pull/449)).\n\n### 🛠️ Framework\n\n- ✨ Adds two `consume` commands [#339](https://github.com/ethereum/execution-spec-tests/pull/339):\n\n   1. `consume direct` - Execute a test fixture directly against a client using a `blocktest`-like command (currently only geth supported).\n   2. `consume rlp` - Execute a test fixture in a hive simulator against a client that imports the test's genesis config and blocks as RLP upon startup. This is a re-write of the [ethereum/consensus](https://github.com/ethereum/hive/tree/master/simulators/ethereum/consensus) Golang simulator.\n\n- ✨ Add Prague to forks ([#419](https://github.com/ethereum/execution-spec-tests/pull/419)).\n- ✨ Improve handling of the argument passed to `solc --evm-version` when compiling Yul code ([#418](https://github.com/ethereum/execution-spec-tests/pull/418)).\n- 🐞 Fix `fill -m yul_test` which failed to filter tests that are (dynamically) marked as a yul test ([#418](https://github.com/ethereum/execution-spec-tests/pull/418)).\n- 🔀 Helper methods `to_address`, `to_hash` and `to_hash_bytes` have been deprecated in favor of `Address` and `Hash`, which are automatically detected as opcode parameters and pushed to the stack in the resulting bytecode ([#422](https://github.com/ethereum/execution-spec-tests/pull/422)).\n- ✨ `Opcodes` enum now contains docstrings with each opcode description, including parameters and return values, which show up in many development environments ([#424](https://github.com/ethereum/execution-spec-tests/pull/424)) @ThreeHrSleep.\n- 🔀 Locally calculate state root for the genesis blocks in the blockchain tests instead of calling t8n ([#450](https://github.com/ethereum/execution-spec-tests/pull/450)).\n- 🐞 Fix bug that causes an exception during test collection because the fork parameter contains `None` ([#452](https://github.com/ethereum/execution-spec-tests/pull/452)).\n- ✨ The `_info` field in the test fixtures now contains a `hash` field, which is the hash of the test fixture, and a `hasher` script has been added which prints and performs calculations on top of the hashes of all fixtures (see `hasher -h`) ([#454](https://github.com/ethereum/execution-spec-tests/pull/454)).\n- ✨ Adds an optional `verify_sync` field to hive blockchain tests (EngineAPI). When set to true a second client attempts to sync to the first client that executed the tests ([#431](https://github.com/ethereum/execution-spec-tests/pull/431)).\n- 🐞 Fix manually setting the gas limit in the genesis test env for post genesis blocks in blockchain tests ([#472](https://github.com/ethereum/execution-spec-tests/pull/472)).\n\n### 📋 Misc\n\n- 🐞 Fix deprecation warnings due to outdated config in recommended VS Code project settings ([#420](https://github.com/ethereum/execution-spec-tests/pull/420)).\n- 🐞 Fix typo in the selfdestruct revert tests module ([#421](https://github.com/ethereum/execution-spec-tests/pull/421)).\n\n## [v2.1.0](https://github.com/ethereum/execution-spec-tests/releases/tag/v2.1.0) - 2024-01-29: 🐍🏖️ Cancun\n\nRelease [v2.1.0](https://github.com/ethereum/execution-spec-tests/releases/tag/v2.1.0) primarily fixes a small bug introduced within the previous release where transition forks are used within the new `StateTest` format. This was highlighted by @chfast within #405 (<https://github.com/ethereum/execution-spec-tests/issues/405>), where the fork name `ShanghaiToCancunAtTime15k` was found within state tests.\n\n### 🧪 Test Cases\n\n- ✨ [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844): Adds `test_blob_gas_subtraction_tx()` verifying the blob gas fee is subtracted from the sender before executing the blob tx ([#407](https://github.com/ethereum/execution-spec-tests/pull/407)).\n\n### 🛠️ Framework\n\n- 🐞 State tests generated with transition forks no longer use the transition fork name in the fixture output, instead they use the actual enabled fork according to the state test's block number and timestamp ([#406](https://github.com/ethereum/execution-spec-tests/pull/406)).\n\n### 📋 Misc\n\n- ✨ Use `run-parallel` and shared wheel packages for `tox` ([#408](https://github.com/ethereum/execution-spec-tests/pull/408)).\n\n## [v2.0.0](https://github.com/ethereum/execution-spec-tests/releases/tag/v2.0.0) - 2024-01-25: 🐍🏖️ Cancun\n\nRelease [v2.0.0](https://github.com/ethereum/execution-spec-tests/releases/tag/v2.0.0) contains many important framework changes, including introduction of the `StateTest` format, and some additional Cancun and other test coverage.\n\nDue to changes in the framework, there is a breaking change in the directory structure in the release tarball, please see the dedicated \"💥 Breaking Changes\" section below for more information.\n\n### 🧪 Test Cases\n\n- ✨ [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844): Add `test_sufficient_balance_blob_tx()` and `test_sufficient_balance_blob_tx_pre_fund_tx()` ([#379](https://github.com/ethereum/execution-spec-tests/pull/379)).\n- ✨ [EIP-6780](https://eips.ethereum.org/EIPS/eip-6780): Add a reentrancy suicide revert test ([#372](https://github.com/ethereum/execution-spec-tests/pull/372)).\n- ✨ [EIP-1153](https://eips.ethereum.org/EIPS/eip-1153): Add `test_run_until_out_of_gas()` for transient storage opcodes ([#401](https://github.com/ethereum/execution-spec-tests/pull/401)).\n- ✨ [EIP-198](https://eips.ethereum.org/EIPS/eip-198): Add tests for the MODEXP precompile ([#364](https://github.com/ethereum/execution-spec-tests/pull/364)).\n- ✨ Tests for nested `CALL` and `CALLCODE` gas consumption with a positive value transfer (previously lacking coverage) ([#371](https://github.com/ethereum/execution-spec-tests/pull/371)).\n- 🐞 [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844): Fixed `test_invalid_tx_max_fee_per_blob_gas()` to account for extra gas required in the case where the account is incorrectly deduced the balance as if it had the correct block blob gas fee ([#370](https://github.com/ethereum/execution-spec-tests/pull/370)).\n- 🐞 [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844): Fixed `test_insufficient_balance_blob_tx()` to correctly calculate the minimum balance required for the accounts ([#379](https://github.com/ethereum/execution-spec-tests/pull/379)).\n- 🐞 [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844): Fix and enable `test_invalid_blob_tx_contract_creation` ([#379](https://github.com/ethereum/execution-spec-tests/pull/379)).\n- 🔀 Convert all eligible `BlockchainTest`s to `StateTest`s (and additionally generate corresponding `BlockchainTest`s) ([#368](https://github.com/ethereum/execution-spec-tests/pull/368), [#370](https://github.com/ethereum/execution-spec-tests/pull/370)).\n\n### 🛠️ Framework\n\n- ✨ Add `StateTest` fixture format generation; `StateTests` now generate a `StateTest` and a corresponding `BlockchainTest` test fixture, previously only `BlockchainTest` fixtures were generated ([#368](https://github.com/ethereum/execution-spec-tests/pull/368)).\n- ✨ Add `StateTestOnly` fixture format is now available and its only difference with `StateTest` is that it does not produce a `BlockchainTest` ([#368](https://github.com/ethereum/execution-spec-tests/pull/368)).\n- ✨ Add `evm_bytes_to_python` command-line utility which converts EVM bytecode to Python Opcodes ([#357](https://github.com/ethereum/execution-spec-tests/pull/357)).\n- ✨ Fork objects used to write tests can now be compared using the `>`, `>=`, `<`, `<=` operators, to check for a fork being newer than, newer than or equal, older than, older than or equal, respectively when compared against other fork ([#367](https://github.com/ethereum/execution-spec-tests/pull/367)).\n- ✨ Add [solc 0.8.23](https://github.com/ethereum/solidity/releases/tag/v0.8.23) support ([#373](https://github.com/ethereum/execution-spec-tests/pull/373)).\n- ✨ Add framework unit tests for post state exception verification ([#350](https://github.com/ethereum/execution-spec-tests/pull/350)).\n- ✨ Add a helper class `ethereum_test_tools.TestParameterGroup` to define test parameters as dataclasses and auto-generate test IDs ([#364](https://github.com/ethereum/execution-spec-tests/pull/364)).\n- ✨ Add a `--single-fixture-per-file` flag to generate one fixture JSON file per test case ([#331](https://github.com/ethereum/execution-spec-tests/pull/331)).\n- 🐞 Storage type iterator is now fixed ([#369](https://github.com/ethereum/execution-spec-tests/pull/369)).\n- 🐞 Fix type coercion in `FixtureHeader.join()` ([#398](https://github.com/ethereum/execution-spec-tests/pull/398)).\n- 🔀 Locally calculate the transactions list's root instead of using the one returned by t8n when producing BlockchainTests ([#353](https://github.com/ethereum/execution-spec-tests/pull/353)).\n- 🔀 Change custom exception classes to dataclasses to improve testability ([#386](https://github.com/ethereum/execution-spec-tests/pull/386)).\n- 🔀 Update fork name from \"Merge\" to \"Paris\" used within the framework and tests ([#363](https://github.com/ethereum/execution-spec-tests/pull/363)).\n- 💥 Replace `=` with `_` in pytest node ids and test fixture names ([#342](https://github.com/ethereum/execution-spec-tests/pull/342)).\n- 💥 The `StateTest`, spec format used to write tests, is now limited to a single transaction per test ([#361](https://github.com/ethereum/execution-spec-tests/pull/361)).\n- 💥 Tests must now use `BlockException` and `TransactionException` to define the expected exception of a given test, which can be used to test whether the client is hitting the proper exception when processing the block or transaction ([#384](https://github.com/ethereum/execution-spec-tests/pull/384)).\n- 💥 `fill`: Remove the `--enable-hive` flag; now all test types are generated by default ([#358](https://github.com/ethereum/execution-spec-tests/pull/358)).\n- 💥 Rename test fixtures names to match the corresponding pytest node ID as generated using `fill` ([#342](https://github.com/ethereum/execution-spec-tests/pull/342)).\n\n### 📋 Misc\n\n- ✨ Docs: Add a [\"Consuming Tests\"](https://eest.ethereum.org/main/consuming_tests/) section to the docs, where each test fixture format is described, along with the steps to consume them, and the description of the structures used in each format ([#375](https://github.com/ethereum/execution-spec-tests/pull/375)).\n- 🔀 Docs: Update `t8n` tool branch to fill tests for development features in the [readme](https://github.com/ethereum/execution-spec-tests) ([#338](https://github.com/ethereum/execution-spec-tests/pull/338)).\n- 🔀 Filling tool: Updated the default filling tool (`t8n`) to go-ethereum@master ([#368](https://github.com/ethereum/execution-spec-tests/pull/368)).\n- 🐞 Docs: Fix error banner in online docs due to mermaid syntax error ([#398](https://github.com/ethereum/execution-spec-tests/pull/398)).\n- 🐞 Docs: Fix incorrectly formatted nested lists in online doc ([#403](https://github.com/ethereum/execution-spec-tests/pull/403)).\n- 🔀 CLI: `evm_bytes_to_python` is renamed to `evm_bytes` and now accepts flag `--assembly` to output the code in assembly format ([#844](https://github.com/ethereum/execution-spec-tests/pull/844)).\n\n### 💥 Breaking Changes\n\nA concrete example of the test name renaming and change in directory structure is provided below.\n\n1. Fixture output, including release tarballs, now contain subdirectories for different test types:\n\n   1. `blockchain_tests`: Contains `BlockchainTest` formatted tests\n   2. `blockchain_tests_hive`: Contains `BlockchainTest` with Engine API call directives for use in hive\n   3. `state_tests`: Contains `StateTest` formatted tests\n\n2. `StateTest`, spec format used to write tests, is now limited to a single transaction per test.\n3. In this release the pytest node ID is now used for fixture names (previously only the test parameters were used), this should not be breaking. However, `=` in both node IDs (and therefore fixture names) have been replaced with `_`, which may break tooling that depends on the `=` character.\n4. Produced `blockchain_tests` fixtures and their corresponding `blockchain_tests_hive` fixtures now contain the named exceptions `BlockException` and `TransactionException` as strings in the `expectException` and `validationError` fields, respectively. These exceptions can be used to test whether the client is hitting the proper exception when processing an invalid block.\n\n   Blockchain test:\n\n   ```json\n   \"blocks\": [\n         {\n            ...\n            \"expectException\": \"TransactionException.INSUFFICIENT_ACCOUNT_FUNDS\",\n            ...\n         }\n         ...\n   ]\n   ```\n\n   Blockchain hive test:\n\n   ```json\n   \"engineNewPayloads\": [\n         {\n            ...\n            \"validationError\": \"TransactionException.INSUFFICIENT_ACCOUNT_FUNDS\",\n            ...\n         }\n         ...\n   ]\n   ```\n\n#### Renaming and Release Tarball Directory Structure Change Example\n\nThe fixture renaming provides a more consistent naming scheme between the pytest node ID and fixture name and allows the fixture name to be provided directly to pytest 5on the command line to execute individual tests in isolation, e.g. `pytest tests/frontier/opcodes/test_dup.py::test_dup[fork_Frontier]`.\n\n1. Pytest node ID example:\n\n   1. Previous node ID: `tests/frontier/opcodes/test_dup.py::test_dup[fork=Frontier]`.\n   2. New node ID: `tests/frontier/opcodes/test_dup.py::test_dup[fork_Frontier]`.\n\n2. Fixture name example:\n\n   1. Previous fixture name: `000-fork=Frontier`\n   2. New fixture name: `tests/frontier/opcodes/test_dup.py::test_dup[fork_Frontier]` (now the same as the pytest node ID).\n\n3. Fixture JSON file name example (within the release tarball):\n\n   1. Previous fixture file name: `fixtures/frontier/opcodes/dup/dup.json` (`BlockChainTest` format).\n   2. New fixture file names (all present within the release tarball):\n\n     - `fixtures/state_tests/frontier/opcodes/dup/dup.json` (`StateTest` format).\n     - `fixtures/blockchain_tests/frontier/opcodes/dup/dup.json` (`BlockChainTest` format).\n     - `fixtures/blockchain_tests_hive/frontier/opcodes/dup/dup.json` (a blockchain test in `HiveFixture` format).\n\n## [v1.0.6](https://github.com/ethereum/execution-spec-tests/releases/tag/v1.0.6) - 2023-10-19: 🐍🏖️ Cancun Devnet 10\n\n### 🧪 Test Cases\n\n- 🔀 [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844): Update KZG point evaluation test vectors to use data from the official KZG setup and Mainnet Trusted Setup ([#336](https://github.com/ethereum/execution-spec-tests/pull/336)).\n\n### 🛠️ Framework\n\n- 🔀 Fixtures: Add a non-RLP format field (`rlp_decoded`) to invalid blocks ([#322](https://github.com/ethereum/execution-spec-tests/pull/322)).\n- 🔀 Spec: Refactor state and blockchain spec ([#307](https://github.com/ethereum/execution-spec-tests/pull/307)).\n\n### 🔧 EVM Tools\n\n- ✨ Run geth's `evm blocktest` command to verify JSON fixtures after test case execution (`--verify-fixtures`) ([#325](https://github.com/ethereum/execution-spec-tests/pull/325)).\n- ✨ Enable tracing support for `ethereum-spec-evm` ([#289](https://github.com/ethereum/execution-spec-tests/pull/289)).\n\n### 📋 Misc\n\n- ✨ Tooling: Add Python 3.12 support ([#309](https://github.com/ethereum/execution-spec-tests/pull/309)).\n- ✨ Process: Added a Github pull request template ([#308](https://github.com/ethereum/execution-spec-tests/pull/308)).\n- ✨ Docs: Changelog updated post release ([#321](https://github.com/ethereum/execution-spec-tests/pull/321)).\n- ✨ Docs: Add [a section explaining execution-spec-tests release artifacts](https://eest.ethereum.org/v4.1.0/consuming_tests/) ([#334](https://github.com/ethereum/execution-spec-tests/pull/334)).\n- 🔀 T8N Tool: Branch used to generate the tests for Cancun is now [lightclient/go-ethereum@devnet-10](https://github.com/lightclient/go-ethereum/tree/devnet-10) ([#336](https://github.com/ethereum/execution-spec-tests/pull/336)).\n\n### 💥 Breaking Change\n\n- Fixtures now use the Mainnet Trusted Setup merged on [consensus-specs#3521](https://github.com/ethereum/consensus-specs/pull/3521) ([#336](https://github.com/ethereum/execution-spec-tests/pull/336)).\n\n## [v1.0.5](https://github.com/ethereum/execution-spec-tests/releases/tag/v1.0.5) - 2023-09-26: 🐍🏖️ Cancun Devnet 9 Release 3\n\nThis release mainly serves to update the EIP-4788 beacon roots address to `0x000F3df6D732807Ef1319fB7B8bB8522d0Beac02`, as updated in [ethereum/EIPs/pull/7672](https://github.com/ethereum/EIPs/pull/7672).\n\n### 🧪 Test Cases\n\n- 🐞 [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844): Fix invalid blob txs pre-Cancun engine response ([#306](https://github.com/ethereum/execution-spec-tests/pull/306)).\n- ✨ [EIP-4788](https://eips.ethereum.org/EIPS/eip-4788): Final update to the beacon root address ([#312](https://github.com/ethereum/execution-spec-tests/pull/312)).\n\n### 📋 Misc\n\n- ✨ Docs: Changelog added ([#305](https://github.com/ethereum/execution-spec-tests/pull/305)).\n- ✨ CI/CD: Run development fork tests in Github Actions ([#302](https://github.com/ethereum/execution-spec-tests/pull/302)).\n- ✨ CI/CD: Generate test JSON fixtures on push ([#303](https://github.com/ethereum/execution-spec-tests/pull/303)).\n\n### 💥 Breaking Change\n\nPlease use development fixtures from now on when testing Cancun. These refer to changes that are currently under development within clients:\n\n- fixtures: All tests until the last stable fork (Shanghai).\n- fixtures_develop: All tests until the last development fork (Cancun).\n- fixtures_hive: All tests until the last stable fork (Shanghai) in hive format (Engine API directives instead of the usual BlockchainTest format).\n- fixtures_develop_hive: All tests until the last development fork (Cancun) in hive format.\n\n## [v1.0.4](https://github.com/ethereum/execution-spec-tests/releases/tag/v1.0.4) - 2023-09-21: 🐍 Cancun Devnet 9 Release 2\n\nThis release adds additional coverage to the current set of Cancun tests, up to the [Devnet-9 Cancun specification](https://notes.ethereum.org/@ethpandaops/dencun-devnet-9).\n\n**Note:** Additional EIP-4788 updates from [ethereum/EIPs/pull/7672](https://github.com/ethereum/EIPs/pull/7672) will be included in the next release.\n\n### 🧪 Test Cases\n\n- ✨ [EIP-7516: BLOBBASEFEE opcode](https://eips.ethereum.org/EIPS/eip-7516): Add first and comprehensive tests (@marioevz in [#294](https://github.com/ethereum/execution-spec-tests/pull/294)).\n- ✨ [EIP-4788: Beacon block root in the EVM](https://eips.ethereum.org/EIPS/eip-4788): Increase coverage (@spencer-tb in [#297](https://github.com/ethereum/execution-spec-tests/pull/297)).\n- 🐞 [EIP-1153: Transient storage opcodes](https://eips.ethereum.org/EIPS/eip-1153): Remove conftest '+1153' in network field (@spencer-tb in [#299](https://github.com/ethereum/execution-spec-tests/pull/299)).\n\n### 🛠️ Framework\n\n- 🔀 [EIP-4788](https://eips.ethereum.org/EIPS/eip-4788): Beacon root contract is pre-deployed at `0xbEAC020008aFF7331c0A389CB2AAb67597567d7a` (@spencer-tb in [#297](https://github.com/ethereum/execution-spec-tests/pull/297)).\n- ✨ Deprecate empty accounts within framework (@spencer-tb in [#300](https://github.com/ethereum/execution-spec-tests/pull/300)).\n- ✨ Fixture generation split based on hive specificity (@spencer-tb in [#301](https://github.com/ethereum/execution-spec-tests/pull/301)).\n- 💥 `fill`: `--disable-hive` flag removed; replaced by `--enable-hive` (@spencer-tb in [#301](https://github.com/ethereum/execution-spec-tests/pull/301)).\n- ✨ Add engine API forkchoice updated information in fixtures (@spencer-tb in [#256](https://github.com/ethereum/execution-spec-tests/pull/256)).\n\n## [v1.0.3](https://github.com/ethereum/execution-spec-tests/releases/tag/v1.0.3) - 2023-09-14: 🐍 Cancun Devnet 9 Release\n\nSee [v1.0.3](https://github.com/ethereum/execution-spec-tests/releases/tag/v1.0.3).\n\n## [v1.0.2](https://github.com/ethereum/execution-spec-tests/releases/tag/v1.0.2) - 2023-08-11: 🐍 Cancun Devnet 8 + 4788 v2 Pre-Release\n\nSee [v1.0.2](https://github.com/ethereum/execution-spec-tests/releases/tag/v1.0.2).\n\n## [v1.0.1](https://github.com/ethereum/execution-spec-tests/releases/tag/v1.0.1) - 2023-08-03: 🐍 Cancun Devnet-8 Pre-Release\n\nSee [v1.0.1](https://github.com/ethereum/execution-spec-tests/releases/tag/v1.0.1).\n\n## [v1.0.0](https://github.com/ethereum/execution-spec-tests/releases/tag/v1.0.0) - 2023-06-27: 🧪 Welcome to the Pytest Era\n\nSee [v1.0.0](https://github.com/ethereum/execution-spec-tests/releases/tag/v1.0.0).\n\nOlder releases can be found on [the releases page](https://github.com/ethereum/execution-spec-tests/releases).\n"
  },
  {
    "path": "docs/changelog_section_template.md",
    "content": "# Changelog Section Template\n\nThe following can be copy-pasted into the `CHANGELOG.md` file for a new release.\n\n## 🔜 [Unreleased]\n\n### 💥 Breaking Change\n\n### 🛠️ Framework\n\n#### `fill`\n\n#### `consume`\n\n### 📋 Misc\n\n### 🧪 Test Cases\n"
  },
  {
    "path": "docs/dev/coding_style.md",
    "content": "# Coding Style\n\n!!! warning \"Documentation Moved\"\n    This documentation has been relocated to [Getting Started -> Code Standards](../getting_started/code_standards.md). Please use the new location for the most up-to-date information.\n"
  },
  {
    "path": "docs/dev/configurations.md",
    "content": "# Managing Configurations\n\nConfigurations are managed by the `config` package. It provides both environment and application configurations.\n\n```console\n.\n├── src\n│   └── 📁 config  [Application wide environment and configurations]\n│       ├── 📄 __init__.py\n│       ├── 📄 app.py [Configurations for application framework]\n│       ├── 📄 docs.py [Configurations for documentation]\n│       └── 📄 env.py  [Exposes `env.yaml` to the application]\n└── 📄 env.yaml [Environment file (git ignored)]\n```\n\n## Environment Configurations\n\nApplication-wide [environment configuration](https://www.12factor.net/config), which varies across staging, production, and development environments are read from `env.yaml` in the project root.\n\nThis file will not be tracked by git, making it safe for storing local secrets.\n\nTo get started, run the command [eest make env](../library/cli/eest.md) cli to initialize your environment configuration.\n\n### Usage\n\n#### 1. Generate env file\n\nRun the [`eest make env`](../library/cli/eest.md) cli tool.\n\n```console\nuv run eest make env\n🎉 Success! Config file created at: <path>/env.yaml\n```\n\nwhich should generate an `env.yaml` in the project root.\n\n```yaml\nremote_nodes:\n  - name: mainnet_archive\n    # Replace with your Ethereum RPC node URL\n    node_url: http://example.com\n    # Optional: Headers for RPC requests\n    rpc_headers:\n      client-secret: <secret>\n```\n\n#### 2. Import `EnvConfig`\n\n```console\nfrom config import EnvConfig\nEnvConfig().remote_nodes[0].name\n'mainnet_archive'\n```\n\n## Application configuration\n\nApplication configuration are pydantic classes.\n\n```console\nfrom config import DocsConfig\nDocsConfig().TARGET_FORK\n'Prague'\n```\n"
  },
  {
    "path": "docs/dev/deps_and_packaging.md",
    "content": "# EEST Dependency Management and Packaging\n\nEEST uses [`uv`](https://docs.astral.sh/uv/) to manage and pin its dependencies.\n\nA minimum version of `uv>=0.7.0` is required to ensure `uv` writes `uv.lock` files with consistent fields and formatting (see [ethereum/execution-spec-tests#1597](https://github.com/ethereum/execution-spec-tests/pull/1597)).\n\n## Managing Dependencies\n\nWe aim to provide specific [version specifiers](https://peps.python.org/pep-0440/#version-specifiers) for each of our direct and extra dependencies.\n\n!!! note \"Packages should be managed via `uv`\"\n\n    Dependencies should be managed using `uv` on the command-line to ensure that version compatibility is ensured across all dependencies and that `uv.lock` is updated as required.\n\n    The docs below cover common operations, see the `uv` [documentation on managing dependencies](https://docs.astral.sh/uv/concepts/projects/dependencies/#multiple-sources) for more information.\n\n!!! info \"Separate PRs are preferred when managing dependencies\"\n\n    An upgrade of all pinned dependencies in `uv.lock` must be performed in a dedicated PR!\n    \n    For other dependency changes, they can be included in the PR that removed use of the library, for example. But if a version bump is made, without related source code changes, it should be done in a dedicated PR. This makes the change:\n\n    - Easier to track.\n    - Trivial to revert.\n\n### Adding/modifying direct dependencies\n\nThese are packages listed in the project's direct dependencies, i.e., in `pyproject.toml` `[project]` section:\n\n```toml\n[project]\n...\ndependencies = [\n    \"click>=8.1.0,<9\",\n    ...\n    \"pytest-regex>=0.2.0,<0.3\",\n]\n```\n\nor, for source package dependencies (directly installed via a `git+` specifier from Github), in the `[tool.uv.sources]` section:\n\n```toml\n[tool.uv.sources]\nethereum-spec-evm-resolver = { git = \"https://github.com/petertdavies/ethereum-spec-evm-resolver\", rev = \\\n...\n```\n\n!!! example \"Example: Updating direct dependencies\"\n\n    Example of a package dependency update:\n    ```console\n    uv add \"requests>=2.31,<2.33\"\n    ```\n\n    Example of a source dependency update:\n    ```console\n    uv add \"ethereum-spec-evm-resolver @ git+https://github.com/petertdavies/ethereum-spec-evm-resolver@623ac4565025e72b65f45b926da2a3552041b469\"\n    ```\n\n### Adding/modifying optional dependencies\n\nThe package versions in the optional \"extra\" groups should also be managed via uv on the command-line These are the: `lint`, `docs`, `test` optional groups defined in the `pyproject.toml`:\n\n```toml\n[project.optional-dependencies]\ntest = [\"pytest-cov>=4.1.0,<5\"]\nlint = [\n    \"ruff==0.9.4\",\n    \"mypy>=1.15.0,<1.16\",\n    \"types-requests>=2.31,<2.33\",\n]\ndocs = [\n    ...\n]\n```\n\n!!! example \"Example: Updating an optional dependency\"\n\n    ```\n    uv add --optional lint \"types-requests>=2.31,<2.33\"\n    ```\n\n## Upgrading Pinned Dependencies in `uv.lock`\n\nTo upgrade all pinned dependencies in `uv.lock` to the latest version permitted by EEST's `project.toml` version specifiers run:\n\n```console\nuv lock --upgrade\n```\n\nProject-wide dependency upgrades must be made via a dedicated PR!\n\nTo upgrade a single package run:\n\n```console\nuv lock --upgrade-package <package>\n```\n\nSee [Locking and Syncing](https://docs.astral.sh/uv/concepts/projects/sync/#upgrading-locked-package-versions) in the `uv` docs for more information.\n"
  },
  {
    "path": "docs/dev/docs.md",
    "content": "# Documentation\n\nThe `execution-spec-tests` documentation is generated via [`mkdocs`](https://www.mkdocs.org/) and hosted remotely on Github Pages at [eest.ethereum.org](https://eest.ethereum.org/).\n\n## Prerequisites\n\n```console\nuv sync --all-extras\n```\n\n## Build and Verify the Documentation\n\nOne time build in strict mode:\n\n```console\nuv run mkdocs build --strict\n```\n\nPerform all docs related checks via `tox` in parallel:\n\n```console\nuvx --with=tox-uv tox -e spellcheck,markdownlint,mkdocs --parallel\n```\n\n### Local Deployment and Test\n\nThis runs continually: Deploys the site locally and re-generates the site upon modifications to `docs/**/*.md` or `tests/**/*.py`:\n\n```console\nuv run mkdocs serve\n```\n\nFor more help (including ensuring a clean build), see the `gen_test_doc` pytest plugin's documentation:\n\n::: src.pytest_plugins.filler.gen_test_doc.gen_test_doc\n    options:\n        members: no\n\n## Remote Deployment and Versioning\n\nThe execution-specs-test docs are hosted using Github pages at [eest.ethereum.org](https://eest.ethereum.org/). Versions are updated/deployed automatically as part of Github Actions, but this can also be performed on the command-line.\n\nOur mkdocs configuration uses [mike](https://github.com/jimporter/mike) as a version provider. All deployments should be made via `mike` (whether as part of CI/CD or executed locally).\n\nThe deployed versions of the docs managed via `mike` are kept in the [gh-pages](https://github.com/ethereum/execution-spec-tests/tree/gh-pages) branch. When you run `mike` it commits to this branch and optionally pushes the changes directly to remote.\n\n### Aliases\n\nWe currently have two aliases (which both point to `main` as of [#998](https://github.com/ethereum/execution-spec-tests/pull/998)):\n\n- [`latest`](https://eest.ethereum.org/latest): the current state of the main branch.\n- [`development`](https://eest.ethereum.org/development): the current state of the main branch.\n\nThese aliases point to specific versions, as configured below. It's possible to share links containing either of these aliases or to specific versions, i.e, the following are all valid links:\n\n- https://eest.ethereum.org/ (redirects to latest/main)\n- https://eest.ethereum.org/latest (redirects to main)\n- https://eest.ethereum.org/development (redirects main)\n- https://eest.ethereum.org/main\n- https://eest.ethereum.org/v1.0.0\n\n### CI/CD: Doc Deployment via Github Actions\n\nThere are two workflows that automatically deploy updated/new versions of the docs:\n\n| Workflow `yaml` File | What | When |\n|----------------------|------|------|\n| `docs_main.yaml`     | Update \"main\" version of docs | Push to 'main' branch, (e.g., on PR merge) |\n| `docs_tags.yaml`     | Deploy new version of docs; tag is used as version name | Upon creating a tag matching `v*` |\n\n### Build and Deployment (without alias update)\n\nBuild a new version and deploy it to remote (this version will then show up in the version selector list):\n\n```console\nuv run mike deploy -rebase --push v1.2.3\n```\n\n!!! note \"Local deployment\"\n    If you deploy locally, the documentation will be built with any changes made in your local repository. Check out the tag to deploy tagged versions.\n\n### Build, Deploy and Update the Alias\n\nBuild, deploy and update the version an alias points to with:\n\n```console\nuv run mike deploy --rebase --push --update-aliases v1.2.3 latest\n```\n\nwhere `v1.2.3` indicates the version's name and `development` is the alias. This will overwrite the version if it already exists.  \n\n!!! note \"Updating the 'main' version locally\"\n    \"main\" is just a version name (intended to reflect that it is build from the main branch). However, `mike` will build the docs site from the current local repository state (including local modifications). Therefore, make sure you're on the HEAD of the main branch before executing (unless you know what you're doing :wink:)!\n\n    ```console\n    uv run mike deploy --rebase --push main\n    ```\n\n    If the alias accidentally go change:\n\n    ```console\n    uv run mike deploy --rebase --push --update-aliases main development\n    ```\n\n### Viewing and Deleting Versions\n\nList versions:\n\n```console\nuv run mike list\n```\n\nDelete a version:\n\n```console\nuv run mike delete v1.2.3a1-eof\n```\n\n### Set Default Version\n\nSet the default version of the docs to open upon loading the page:\n\n```console\nuv run mike set-default --push latest\n```\n\nTypically, this must only be executed once for a repo.\n\n## Implementation\n\n### Plugins\n\nThe documentation flow uses `mkdocs` and the following additional plugins:\n\n- [mkdocs](https://www.mkdocs.org/): The main doc generation tool.\n- [mkdocs-material](https://squidfunk.github.io/mkdocs-material): Provides many additional features and styling for mkdocs.\n- [mkdocstrings](https://mkdocstrings.github.io/) and [mkdocstrings-python](https://mkdocstrings.github.io/python/): To generate documentation from Python docstrings.\n- [mkdocs-gen-files](https://oprypin.github.io/mkdocs-gen-files): To generate markdown files automatically for each test case Python module. See [this page](https://mkdocstrings.github.io/crystal/quickstart/migrate.html) for example usage. This plugin is used to [programmatically generate the nav section](https://oprypin.github.io/mkdocs-gen-files/extras.html) for the generated test case reference documentation.\n- [mkdocs-literate-nav](https://oprypin.github.io/mkdocs-literate-nav/index.html): Is used to define the navigation layout for non-generated content and was created to work well with `mkdocs-gen-files` to add nav content for generated content.\n- @blueswen/mkdocs-glightbox - for improved image and inline content display.\n\n### The \"Test Case Reference\" Section\n\nThis section is auto-generated via a combination of:\n\n1. [mkdocstrings](https://mkdocstrings.github.io/) and [mkdocstrings-python](https://mkdocstrings.github.io/python/),\n2. [mkdocs-gen-files](https://oprypin.github.io/mkdocs-gen-files),\n3. [mkdocs-literate-nav](https://oprypin.github.io/mkdocs-literate-nav/index.html).\n\nIt auto-generates a sequence of nested pages (with nav entries) of all python modules detected under `./tests`. Each page contains a stub to the doc generated by mkdocstrings from the module's docstrings and source code. The mkdocs-gen-files and mkdocs-literate-nav plugins were created exactly for [this purpose](https://mkdocstrings.github.io/crystal/quickstart/migrate.html).\n\nNo action is necessary if a new test directory or module is added to `./tests`, it will be picked up automatically.\n\n!!! info \"Working with generated content\"\n    The files in the `./tests` directory are watched by `mkdocs serve`. Run `mkdocs serve` and edit the source docstrings: The browser will reload with the new content automatically.\n\n### Navigation\n\nAll pages that are to be included in the documentation and the navigation bar must be included in `navigation.md`, except \"Test Case Reference\" entries. This is enabled by [mkdocs-literate-nav](https://oprypin.github.io/mkdocs-literate-nav/index.html). The nav entries for the automatically generated \"Test Case Reference\" section are generated in [mkdocs-gen-files](https://oprypin.github.io/mkdocs-gen-files) and appended to `navigation.md`.\n\n!!! info \"Current nav ordering limitations\"\n    The \"Test Case Reference\" section must currently be the last section in the nav. This is because our mkdocs flow:\n\n    1. Reads `navigation.md`.\n    2. Generates the Test Case Reference documentation and appends the Test Case Reference entries to `navigation.md`\n    3. Generates the nav.\n\n    If necessary, we could probably split `navigation.md` into two files\n    \n    - `navigation-pre-test-case-reference.md`,\n    - `navigation-post-test-case-reference.md`,\n\n    and create an arbitrary ordering in the Test Case Reference doc gen script. But this is untested.\n\n## Read the Docs\n\nOriginally, before June 2023, documentation was hosted at readthedocs.io. Currently, this page no longer exists (execution-spec-tests.readthedocs.io).\n"
  },
  {
    "path": "docs/dev/documenting_clis.md",
    "content": "# Documenting CLIs\n\nEEST command line interfaces (CLIs) are documented using the [`click`](https://click.palletsprojects.com) library's built-in help system and the [`mkdocs-click`](https://github.com/mkdocs/mkdocs-click) extension for mkdocs. This allows generation of CLI documentation directly from the (click) source code, ensuring that the documentation is always up-to-date with the code.\n\nCurrent limitations:\n\n1. `mkdocs serve` does not automatically update the CLI documentation when the source code changes. You must restart the server to see the changes.\n2. `mkdocs-click` does not automatically generate a short help string from sub-command docstrings. You must provide a short help string for each sub-command in the source code with `@click.command(short_help=\"...\")`.\n\nSee the [markdown](https://github.com/ethereum/execution-spec-tests/blob/main/docs/library/cli/evm_bytes.md) and corresponding [Python docstrings](https://github.com/ethereum/execution-spec-tests/blob/main/src/cli/evm_bytes.py) for the [`evm_bytes` CLI documentation](../library/cli/evm_bytes.md) as an example of how to document a CLI using `mkdocs-click`.\n"
  },
  {
    "path": "docs/dev/index.md",
    "content": "# Developer Documentation\n\nThis documentation is aimed at `execution-spec-tests` developers:\n\n- [Managing configurations](./configurations.md): Instructions for setting up and modifying test configurations.\n- [Interactive usage](./interactive_usage.md): Guide on interactive use of EEST packages using `ipython`.\n- [Documenting CLI commands](./documenting_clis.md): Instructions for documenting command line interfaces (CLIs).\n- [Coding style](./coding_style.md): Standards and best practices for code formatting and to maintain consistency across the repository.\n- [Logging](./logging.md): Documentation on using the custom logging system with enhanced features.\n- [Enabling pre-commit checks](./precommit.md): A guide for setting up pre-commit hooks to enforce code quality before commits.\n- [Running github actions locally](./test_actions_locally.md): Instructions for testing GitHub Actions workflows on your local machine to streamline development and debugging.\n\nThese sections are primarily aimed at `execution-spec-tests` maintainers:\n\n- [Generating documentation](./docs.md): Steps to create and build documentation and manage documentation versions.\n- [Managing dependencies and packaging](./deps_and_packaging.md): How to update EEST dependencies.\n"
  },
  {
    "path": "docs/dev/interactive_usage.md",
    "content": "# Working with EEST Libraries Interactively\n\nYou can work with EEST Python packages interactively with `ipython` using:\n\n```console\nuvx  --with-editable . ipython\n```\n\nThis command will create a virtual environment, install EEST's packages in \"[editable mode](https://setuptools.pypa.io/en/latest/userguide/development_mode.html)\" (source changes get reflected in the interactive shell), and start an `ipython` shell. You can then import any of the packages and experiment with them interactively.\n\n!!! example \"Example: Working with `ethereum_test_forks`\"\n\n    See which defined forks are \"ignored\" by default:\n\n    ```python\n    from ethereum_test_forks import forks, get_forks\n    forks = set([fork for fork in get_forks() if fork.ignore()])\n    print(forks)\n    # -> {MuirGlacier, ArrowGlacier, GrayGlacier}\n    ```\n\n## Required `ipython` Configuration\n\nTo enable [autoreload](https://ipython.readthedocs.io/en/stable/config/extensions/autoreload.html) of changed modules in the current `ipython` session, type:\n\n```python\n%load_ext autoreload\n%autoreload 2\n```\n\nTo make this configuration persistent, add/uncomment the following lines to `~/.ipython/profile_default/ipython_config.py`:\n\n```python\nc.InteractiveShellApp.exec_lines = [\"%autoreload 2\"]\nc.InteractiveShellApp.extensions = [\"autoreload\"]\n```\n"
  },
  {
    "path": "docs/dev/logging.md",
    "content": "# Logging\n\nThis document describes the logging system used in the Ethereum Execution Spec Tests project. Currently, logging is only supported for `consume` commands.\n\n## Overview\n\nThe project uses Python's standard logging module with custom extensions to provide enhanced logging capabilities. Our logging system is implemented in the `src/pytest_plugins/logging.py` module and provides the following features:\n\n- Custom log levels between the standard Python log levels\n- Timestamps with millisecond precision in UTC\n- Color-coded log output (when not running in Docker)\n- File logging with a consistent naming pattern\n- Integration with pytest's output capture\n- Support for distributed test execution with pytest-xdist\n\n## Custom Log Levels\n\nIn addition to the standard Python log levels (DEBUG, INFO, WARNING, ERROR, CRITICAL), we've added the following custom levels:\n\n| Level | Numeric Value | Purpose |\n|-------|--------------|---------|\n| VERBOSE | 15 | For messages more detailed than INFO but less verbose than DEBUG |\n| FAIL | 35 | For test failures and related issues (between WARNING and ERROR) |\n\n## Using the Logger\n\n### Getting a Logger\n\nTo use the custom logger in your code, import the `get_logger` function from the logging module:\n\n```python\nfrom pytest_plugins.logging import get_logger\n\n# Create a logger with your module's name\nlogger = get_logger(__name__)\n```\n\n### Logging at Different Levels\n\nYou can use all standard Python log methods plus our custom methods:\n\n```python\n# Standard log levels\nlogger.debug(\"Detailed debug information\")\nlogger.info(\"General information\")\nlogger.warning(\"Warning message\")\nlogger.error(\"Error message\")\nlogger.critical(\"Critical failure\")\n\n# Custom log levels\nlogger.verbose(\"More detailed than INFO, less than DEBUG\")\nlogger.fail(\"Test failure or similar issue\")\n```\n\n### When to Use Each Level\n\n- **DEBUG (10)**: For very detailed diagnostic information useful for debugging\n- **VERBOSE (15)**: For information that's useful during development but more detailed than INFO\n- **INFO (20)**: For general information about program operation\n- **WARNING (30)**: For potential issues that don't prevent program execution\n- **FAIL (35)**: For test failures and related issues\n- **ERROR (40)**: For errors that prevent an operation from completing\n- **CRITICAL (50)**: For critical errors that may prevent the program from continuing\n\n## Configuration\n\n### Setting Log Level on the Command Line\n\nYou can adjust the log level when running pytest with the `--eest-log-level` option:\n\n```bash\nconsume engine --input=latest@stable --eest-log-level=VERBOSE -s --sim.limit=\".*chainid.*\"\n```\n\nThe argument accepts both log level names (e.g., \"DEBUG\", \"VERBOSE\", \"INFO\") and numeric values.\n\nAdding pytest's `-s` flag writes the logging messages to the terminal; otherwise output will be written to the log file that is reported in the test session header at the end of the test session.\n\n### Log File Output\n\nLog files are automatically created in the `logs/` directory with a naming pattern that includes:\n\n- The command name, e.g. `consume`,\n- An optional subcommand (e.g., `engine`),\n- A timestamp in UTC,\n- The worker ID (when using pytest-xdist).\n\nExample: `consume-engine-20240101-123456-main.log`\n\nThe log file path is displayed in the pytest header and summary.\n\n### Using the Standalone Configuration in Non-Pytest Projects\n\nThe logging module can also be used in non-pytest projects by using the `configure_logging` function:\n\n```python\nfrom pytest_plugins.logging import configure_logging, get_logger\n\n# Configure logging with custom settings\nconfigure_logging(\n    log_level=\"VERBOSE\",\n    log_file=\"my_application.log\",\n    log_to_stdout=True,\n    log_format=\"%(asctime)s [%(levelname)s] %(name)s: %(message)s\",\n    use_color=True\n)\n\n# Get a logger and use it\nlogger = get_logger(__name__)\nlogger.verbose(\"Logging configured in standalone application!\")\n```\n\nThe `configure_logging` function accepts the following parameters:\n\n- `log_level`: A string or numeric log level (default: \"INFO\")\n- `log_file`: Path to a log file, or None to disable file logging (default: None)\n- `log_to_stdout`: Whether to log to stdout (default: True)\n- `log_format`: The format string for log messages (default: \"%(asctime)s [%(levelname)s] %(name)s: %(message)s\")\n- `use_color`: Whether to use colors in stdout output, or None to auto-detect (default: None)\n\n## Implementation Details\n\n### The EESTLogger Class\n\nThe `EESTLogger` class extends Python's `Logger` class to add the custom log methods. The main module logger is automatically configured to use this class.\n\n### Formatters\n\nTwo formatter classes are available:\n\n- `UTCFormatter`: Formats timestamps with millisecond precision in UTC\n- `ColorFormatter`: Extends `UTCFormatter` to add ANSI colors to log level names in terminal output\n\n### Pytest and Hive Integration\n\nThe logging module includes several pytest hooks to:\n\n- Configure logging at the start of a test session\n- Record logs during test execution\n- Display the log file path in the test report\n- Ensure logs are captured properly during fixture teardown\n\nThe `hive_pytest` plugin has been extended to propagate the logs to the `hiveview` UI via the test case's `details` (\"description\" in `hiveview`).\n\n## Example Usage\n\nA complete example of using the logging system in a `consume` test (or plugin):\n\n```python\nfrom pytest_plugins.logging import get_logger\n\n# Get a properly typed logger for your module\nlogger = get_logger(__name__)\n\ndef test_something():\n    # Use standard log levels\n    logger.debug(\"Setting up test variables\")\n    logger.info(\"Starting test\")\n    \n    # Use custom log levels\n    logger.verbose(\"Additional details about test execution\")\n    \n    # Log warnings or errors as needed\n    if something_concerning:\n        logger.warning(\"Something looks suspicious\")\n    \n    if something_failed:\n        logger.fail(\"Test condition not met\")\n        assert False, \"Test failed\"\n    \n    # Log successful completion\n    logger.info(\"Test completed successfully\")\n```\n\nAll log messages will be displayed according to the configured log level and captured in the log file.\n"
  },
  {
    "path": "docs/dev/precommit.md",
    "content": "# Enabling Pre-Commit Checks\n\nThere's a [pre-commit](https://pre-commit.com/) config file available in the repository root (`.pre-commit-config.yaml`) that can be used to enable automatic checks upon commit - the commit will not go through if the checks don't pass.\n\nTo enable pre-commit, the following must be run once:\n\n```console\nuvx pre-commit install\n```\n\n!!! note \"Bypassing pre-commit checks\"\n    Enabling of pre-commit checks is not mandatory (it cannot be enforced) and even if it is enabled, it can always be bypassed with:\n\n    ```console\n    git commit --no-verify\n    ```\n"
  },
  {
    "path": "docs/dev/test_actions_locally.md",
    "content": "# Running Github Actions Locally\n\nThe Github Actions workflows can be tested locally using [nektos/act](https://github.com/nektos/act) without pushing changes to the remote. The local repository state will be used in the executed workflow.\n\n## Prerequisites\n\n1. A docker installation without `sudo` prefix requirement ([see also dockerdocs](https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user)):\n\n    ```bash\n    sudo usermod -aG docker $USER\n    ```\n\n2. Install the Github CLI (`gh`): [linux](https://github.com/cli/cli/blob/trunk/docs/install_linux.md), [macos](https://github.com/cli/cli/tree/trunk?tab=readme-ov-file#macos).\n3. Authenticate your Github account with the Github CLI:\n\n    ```bash\n    gh auth login\n    ```\n\n    This is required to set `GITHUB_TOKEN` to the output of `gh auth token` when running the workflows.\n\n4. Install the `act` tool as a Github extension ([nektos/act docs](https://nektosact.com/installation/gh.html)):\n\n    ```bash\n    gh extension install https://github.com/nektos/gh-act\n    ```\n\n    or use one of the [other available methods](https://nektosact.com/installation/index.html).\n\n!!! note \"Updating nektos/act to the latest version via the Github CLI\"\n    The `act` tool can be updated via the Github CLI:\n\n    ```bash\n    gh extension upgrade nektos/act\n    ```\n\n## Listing the Available Workflows\n\n```bash\ngh act --list\n```\n\nwill output something similar to:\n\n```bash\nINFO[0000] Using docker host 'unix:///var/run/docker.sock', and daemon socket 'unix:///var/run/docker.sock'\nStage  Job ID                Job name                                                      Workflow name                             Workflow file          Events                             \n0      evmone-coverage-diff  evmone-coverage-diff                                          Evmone Coverage Report                    coverage.yaml          pull_request                       \n0      deploy                deploy                                                        Deploy Docs Main                          docs_main.yaml         push                               \n0      deploy                deploy                                                        Deploy Docs Tags                          docs_tags.yaml         push                               \n0      features              features                                                      Build and Package Fixtures                fixtures.yaml          push,workflow_dispatch             \n0      feature-names         feature-names                                                 Build and Package Fixtures for a feature  fixtures_feature.yaml  push,workflow_dispatch             \n0      lint                  Lint python sources with ruff                                 Tox                                       tox_verify.yaml        push,pull_request,workflow_dispatch\n0      typecheck             Typecheck python sources with mypy                            Tox                                       tox_verify.yaml        push,pull_request,workflow_dispatch\n0      spellcheck            Spellcheck sources with pyspelling                            Tox                                       tox_verify.yaml        push,pull_request,workflow_dispatch\n0      markdownlint          Lint markdown files with markdownlint                         Tox                                       tox_verify.yaml        push,pull_request,workflow_dispatch\n0      mkdocs                Build html documentation with mkdocs                          Tox                                       tox_verify.yaml        push,pull_request,workflow_dispatch\n0      pytest_framework      Run unit tests, ${{ matrix.os }}, ${{ matrix.python }}        Tox                                       tox_verify.yaml        push,pull_request,workflow_dispatch\n0      tests_deployed        Fill tests, deployed, ${{ matrix.os }}, ${{ matrix.python }}  Tox                                       tox_verify.yaml        push,pull_request,workflow_dispatch\n1      build                 build                                                         Build and Package Fixtures                fixtures.yaml          push,workflow_dispatch             \n1      build                 build                                                         Build and Package Fixtures for a feature  fixtures_feature.yaml  push,workflow_dispatch             \n2      release               release                                                       Build and Package Fixtures                fixtures.yaml          push,workflow_dispatch             \n2      release               release                                                       Build and Package Fixtures for a feature  fixtures_feature.yaml  push,workflow_dispatch\n```\n\nThe `Job ID` is required to run a specific workflow and is provided to the `-j` option of `gh act`.\n\n### Running Workflows that require Github Vars\n\nCreate a text file containing the required variables and variables, e.g., `.act_github_vars` (this is in `.gitignore`):\n\n```text\nUV_VERSION=0.5.15\nDEFAULT_PYTHON_VERSION=3.12\n```\n\nand use the `--var-file` option to specify the file:\n\n```bash\ngh act --workflows .github/workflows/tox_verify.yaml -s GITHUB_TOKEN=$(gh auth token) --var-file=gh_vars.txt -j lint \n```\n\n### Running Workflows that use a Matrix Strategy\n\nThis is optional, recent versions will automatically detect the matrix strategy and run supported values. To run a specific matrix value, use the `--matrix` option:\n\n```bash\ngh act --workflows .github/workflows/tox_verify.yaml -s GITHUB_TOKEN=$(gh auth token) --matrix python:3.12 -j pytest_framework\n```\n\n### Running Release Workflows\n\nRelease builds require the `ref` input to be specified. To test a release build locally:\n\n1. Create a JSON file specifying the input data required for a release build (the release tag), e.g, `event.json`:\n\n    ```json\n    {\n        \"ref\": \"refs/tags/stable@v4.2.0\"\n    }\n    ```\n\n2. Run `act` and specify the workflow file, the Github token, and the event file:\n\n    ```bash\n    gh act -j build --workflows .github/workflows/fixtures_feature.yaml -s GITHUB_TOKEN=$(gh auth token) -e event.json\n    ```\n\n### Manually Specifying the Docker Image\n\nIt's possible to specify the Docker image used by the `act` tool for a specific platform defined in a workflow using the `-P` (`--platform`) option. For example, use map `ubuntu-latest` in the workflow to use `ubuntu-24.04`:\n\n```bash\n-P ubuntu-latest=ubuntu:24.04\n```\n\nThis can be added to any `gh act` command.\n"
  },
  {
    "path": "docs/filling_tests/debugging_t8n_tools.md",
    "content": "# Debugging Transition Tools\n\nThere are two flags that can help debugging `t8n` tools or the execution-spec-tests framework:\n\n1. `--evm-dump-dir`: Write debug information from `t8n` tool calls to the specified directory.\n2. `--traces`: Collect traces of the execution from the transition tool.\n3. `--verify-fixtures`: Run go-ethereum's `evm blocktest` command to verify the generated test fixtures.\n\n## EVM Dump Directory\n\nThe `--evm-dump-dir` flag tells the framework to write the inputs and outputs of every call made to the `t8n` command to the specified output directory. The aim is to help debugging or simply understand how a test is interacting with the EVM. Debug output is only generated when this flag is explicitly specified.\n\nEach test case receives its own sub-directory under the `--evm-dump-dir` that contains these files which can be easily accessed from the HTML test report generated by `fill` (located by default in the root of the `--output` directory).\n\n<figure markdown>\n ![HTML Report Summary](./img/evm_dump_dir_in_html_report.png){width=auto align=center}\n</figure>\n\nIn particular, a script `t8n.sh` is generated for each call to the `t8n` command which can be used to reproduce the call to trigger errors or attach a debugger without the need to execute Python.\n\nFor example, running:\n\n```console\nfill tests/berlin/eip2930_access_list/ --fork Berlin -m blockchain_test \\\n    --evm-dump-dir=/tmp/evm-dump --traces\n```\n\nwill produce the directory structure:\n\n```text\n📂 /tmp/evm-dump\n└── 📂 berlin__eip2930_access_list__test_acl__test_access_list\n    └── 📂 fork_Berlin_blockchain_test\n        └── 📂 0\n            ├── 📄 args.py\n            ├── 📂 input\n            │   ├── 📄 alloc.json\n            │   ├── 📄 env.json\n            │   └── 📄 txs.json\n            ├── 📂 output\n            │   ├── 📄 alloc.json\n            │   ├── 📄 result.json\n            │   └── 📄 txs.rlp\n            ├── 📄 returncode.txt\n            ├── 📄 stderr.txt\n            ├── 📄 stdin.txt\n            ├── 📄 stdout.txt\n            ├── 📄 t8n.sh\n            └── 📄 trace-0-0x5c4f07ce52f0a276a06aabdfff16cc693b5e007c018f9a42431e68200e2da515.jsonl\n```\n\nwhere the directory `0` is the starting index of the different calls made to the `t8n` tool executed during the test, and since the test only contains one block, there is only one directory present.\n\nNote, there may be more directories present `1`, `2`, `3`,... if the test executes more blocks.\n\nEach directory contains files containing information corresponding to the call, for example, the `args.py` file contains the arguments passed to the `t8n` command and the `output/alloc.json` file contains the output of the `t8n` command's `--output-alloc` flag.\n\n### The `t8n.sh` Script\n\nThe `t8n.sh` script written to the debug directory can be used to reproduce a specific call made to the `t8n` command during the test session. For example, if a Besu `t8n-server` has been started on port `3001`, the request made by the test for first block can be reproduced as:\n\n```console\n/tmp/besu/test_access_list_fork_Berlin/0/t8n.sh 3001\n```\n\nwhich writes the response the from the `t8n-server` to the console output:\n\n```json\n{\n  \"alloc\" : {\n    \"0x000000000000000000000000000000000000aaaa\" : {\n      \"code\" : \"0x5854505854\",\n      \"balance\" : \"0x4\",\n      \"nonce\" : \"0x1\"\n    },\n    \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\" : {\n      \"balance\" : \"0x1bc16d674ecb26ce\"\n    },\n    \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n      \"balance\" : \"0x2cd931\",\n      \"nonce\" : \"0x1\"\n    }\n  },\n  \"body\" : \"0xf8a0b89e01f89b0180078304ef0094000000000000000000000000000000000000aaaa0180f838f7940000000000000000000000000000000000000000e1a0000000000000000000000000000000000000000000000000000000000000000001a02e16eb72206c93c471b5894800495ee9c64ae2d9823bcc4d6adeb5d9d9af0dd4a03be6691e933a0816c59d059a556c27c6753e6ce76d1e357b9201865c80b28df3\",\n  \"result\" : {\n    \"stateRoot\" : \"0x51799508f764047aee6606bc6a00863856f83ee5b91555f00c8a3cbdfbec5acb\",\n    ...\n    ...\n  }\n}\n```\n\nThe `t8n.sh` is written to the debug directory for all [supported t8n tools](./transition_tool_support.md).\n\n## Verifying Test Fixtures via `evm blocktest`\n\nThe `--verify-fixtures` flag can be used to run go-ethereum's `evm blocktest` command in order to verify the generated JSON test fixtures.\n\nFor example, running:\n\n```console\nfill tests/berlin/eip2930_access_list/ --fork Berlin -m blockchain_test \\\n    --evm-dump-dir==/tmp/evm-dump \\\n    --evm-bin=../evmone/build/bin/evmone-t8n \\\n    --verify-fixtures-bin=../go-ethereum/build/bin/evm \\\n    --verify-fixtures\n```\n\nwill additionally run the `evm blocktest` command on every JSON fixture file and write its output to the EVM dump directory:\n\n```text\n📂 /tmp/evm-dump\n└── 📂 berlin__eip2930_access_list__test_acl__test_access_list\n    ├── 📄 fixtures.json\n    ├── 📂 fork_Berlin_blockchain_test\n    │   ├── 📂 0\n    │   │   ├── 📄 args.py\n    │   │   ├── 📂 input\n    │   │   │   ├── 📄 alloc.json\n    │   │   │   ├── 📄 env.json\n    │   │   │   └── 📄 txs.json\n    │   │   ├── 📂 output\n    │   │   │   ├── 📄 alloc.json\n    │   ... ... ...\n    │\n    ├── 📄 verify_fixtures_args.py\n    ├── 📄 verify_fixtures_returncode.txt\n    ├── 📄 verify_fixtures.sh\n    ├── 📄 verify_fixtures_stderr.txt\n    └── 📄 verify_fixtures_stdout.txt\n```\n\nwhere the `verify_fixtures.sh` script can be used to reproduce the `evm blocktest` command.\n\n### Further `--verify-fixtures` Examples\n\n1. No fixture verification performed:\n\n    ```console\n    fill\n    ```\n\n2. Verify fixtures: Use the first `evm` binary in the `PATH` to execute both the `t8n` and `blocktest` commands (i.e., same binary used; this must be a geth binary):\n\n    ```console\n    fill --verify-fixtures\n    ```\n\n3. Explicitly specify the evm binary to execute the `blocktest` command (the first evm binary in the `PATH` is used for `t8n` commands; `--verify-fixtures` is not necessary):\n\n    ```console\n    fill --verify-fixtures-bin=../go-ethereum/build/bin/evm\n    ```\n\n4. Explicitly set two different `evm` binaries to execute the `t8n` and `blocktest` commands; write debug data to the specified `--evm-dump-dir`:\n\n    ```console\n    fill --evm-bin=../evmone/build/bin/evmone-t8n \\\n      --verify-fixtures-bin=../go-ethereum/build/bin/evm \\\n      --evm-dump-dir=/tmp/evm-dump\n    ```\n\n5. Additionally use `--single-fixture-per-file` to improve the granularity of the reporting of the `evm blocktest` command by writing the fixture generated by each parametrized test case to its own file.\n\n    ```console\n    fill --evm-bin=../evmone/build/bin/evmone-t8n \\\n      --verify-fixtures-bin=../go-ethereum/build/bin/evm \\\n      --evm-dump-dir=/tmp/evm-dump \\\n      --single-fixture-per-file\n    ```\n\n!!! note \"Execution scope of `evm blocktest`\"\n\n    Note, by default, that `evm blocktest` is not executed per parametrized test case, but rather per test function. This is because each fixture JSON file contains fixtures for all the parametrized test cases for one test function. This means only one error will be reported, even if multiple fixtures fail within one fixture file.\n    \n    Additionally, it is only executed after all the test cases in the module have been executed[^1] and will only report the first failing test fixture in all files, even if there are multiple failing fixture files.\n    \n    This means, by default, that the feedback is not as granular as for test case execution. To improve granularity, and get feedback per parametrized test case use `--single-fixture-per-file`.\n\n[^1]: <!-- markdownlint-disable MD053 (53=link-image-reference-definitions) -->\n    This limitation is required to enable support of the [`pytest-xdist` plugin](https://github.com/pytest-dev/pytest-xdist) for concurrent test execution across multiple CPUs. To achieve this we use the we apply the `--dist loadscope` xdist flag in our `pytest-fill.ini`.\n"
  },
  {
    "path": "docs/filling_tests/filling_tests_command_line.md",
    "content": "# Filling Tests at a Prompt\n\nThe execution-spec-tests test framework uses the [pytest framework](https://docs.pytest.org/en/latest/) for test case collection and execution. The `fill` command is essentially an alias for `pytest`, which uses several [custom pytest plugins](../library/pytest_plugins/index.md) to run transition tools against test cases and generate JSON fixtures.\n\n!!! note \"Options specific to execution-spec-tests\"\n    The command-line options specific to filling tests can be listed via:\n\n    ```console\n    uv run fill --help\n    ```\n\n    See [Custom `fill` Command-Line Options](#custom-fill-command-line-options) for all options.\n\n## Collection - Test Exploration\n\nThe test cases implemented in the `./tests` sub-directory can be listed in the console using:\n\n```console\nuv run fill --collect-only\n```\n\nand can be filtered (by test path, function and parameter substring):\n\n```console\nuv run fill --collect-only -k warm_coinbase\n```\n\nDocstrings are additionally displayed when ran verbosely:\n\n```console\nuv run fill --collect-only -k warm_coinbase -vv\n```\n\n## Execution\n\nBy default, test cases are filled for all forks already deployed to mainnet, but not for forks still under active development, i.e., as of time of writing, Q2 2023:\n\n```console\nuv run fill\n```\n\nwill generate fixtures for test cases from Frontier to Shanghai.\n\nTo generate all the test fixtures defined in the `./tests/shanghai` sub-directory and write them to the `./fixtures-shanghai` directory, run `fill` in the top-level directory as:\n\n```console\nuv run fill ./tests/shanghai --output=\"fixtures-shanghai\"\n```\n\n!!! note \"Test case verification\"\n    Note, that the (limited set of) test `post` conditions are tested against the output of the `evm t8n` command during test generation.\n\nTo generate all the test fixtures in the `tests/shanghai/eip3651_warm_coinbase/test_warm_coinbase.py` module, for example, run:\n\n```console\nuv run fill tests/shanghai/eip3651_warm_coinbase/test_warm_coinbase.py\n```\n\nTo generate specific test fixtures from a specific test function or even test function and parameter set, obtain the corresponding test ID using:\n\n```console\nuv run fill --collect-only -q -k test_warm_coinbase\n```\n\nThis filters the tests by `test_warm_coinbase`. Then find the relevant test ID in the console output and provide it to fill, for example, for a test function:\n\n```console\nuv run fill tests/shanghai/eip3651_warm_coinbase/test_warm_coinbase.py::test_warm_coinbase_gas_usage\n```\n\nor, for a test function and specific parameter combination:\n\n```console\nuv run fill tests/shanghai/eip3651_warm_coinbase/test_warm_coinbase.py::test_warm_coinbase_gas_usage[fork_Paris-DELEGATECALL]\n```\n\n## Execution for Development Forks\n\n!!! note \"\"\n    By default, test cases are not filled for upcoming Ethereum forks so that they can be readily filled using the `evm` tool from the latest `geth` release.\n\n    In order to fill test cases for an upcoming fork, ensure that the `evm` tool used supports that fork and features under test and use the `--until` or `--fork` flag.\n\n    For example, as of Q2 2023, the current fork under active development is `Cancun`:\n    ```console\n    uv run fill --until Cancun\n    ```\n\n    See: [Filling Tests for Features under Development](./filling_tests_dev_fork.md).\n\n## Generating All Fixture Formats\n\nThe `--generate-all-formats` flag enables generation of all fixture formats including the optimized `BlockchainEngineXFixture` in a single command:\n\n```console\nuv run fill --generate-all-formats tests/shanghai/\n```\n\nThis flag automatically performs a two-phase execution:\n\n1. **Phase 1**: Generates pre-allocation groups for optimization.\n2. **Phase 2**: Generates all supported fixture formats (`StateFixture`, `BlockchainFixture`, `BlockchainEngineFixture`, `BlockchainEngineXFixture`, etc.).\n\n!!! tip \"Automatic enabling with tarball output\"\n    When using tarball output (`.tar.gz` files), the `--generate-all-formats` flag is automatically enabled:\n    ```console\n    # Automatically enables --generate-all-formats due to .tar.gz output\n    uv run fill --output=fixtures.tar.gz tests/shanghai/\n\n    # Equivalent to:\n    uv run fill --generate-all-formats --output=fixtures.tar.gz tests/shanghai/\n    ```\n\n!!! note \"Alternative approach\"\n    You can still use the legacy approach, but this will only generate the `BlockchainEngineXFixture` format:\n    ```console\n    # Single command that automatically does 2-phase execution\n    # but only generates BlockchainEngineXFixture\n    uv run fill --generate-pre-alloc-groups tests/shanghai/\n    ```\n\n## Debugging the `t8n` Command\n\nThe `--evm-dump-dir` flag can be used to dump the inputs and outputs of every call made to the `t8n` command for debugging purposes, see [Debugging Transition Tools](./debugging_t8n_tools.md).\n\n## Watch Mode for Development\n\n!!! tip \"Development workflow\"\n    Use `--watch` or `--watcherfall` during test development to get immediate feedback on your changes without manually re-running the fill command.\n\n### Standard Watch Mode (`--watch`)\n\nThis will:\n\n1. Run the initial fill command.\n2. Monitor all Python files in the `tests/` and `src/` directories for changes.\n3. Automatically re-run the fill command when changes are detected.\n4. Clear the screen and show which files changed.\n\n```console\nuv run fill tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists.py --clean --until Amsterdam --watch\n✓ Fill completed\n\nWatching for changes...\n\n```\n\n### Watcherfall Watch Mode (`--watcherfall`)\n\n!!! info \"Watcherfall mode\"\n    A verbose mode; like watch but the logs keep flowing - perfect when you want to see the full history of runs without clearing the terminal.\n\nSame as `--watch` but without clearing the terminal between runs, so you can see the full output history:\n\n```console\nuv run fill tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists.py --clean --until Amsterdam --watcherfall\nStarting watcherfall mode (verbose)...\n✓ Fill completed\n\nWatching for changes...\n\nFile changes detected, re-running...\n\n✓ Fill completed\n\nWatching for changes...\n\n```\n\nExit either watch mode with Ctrl+C\n\n## Other Useful Pytest Command-Line Options\n\n```console\nuv run fill -vv            # More verbose output\nuv run fill -x             # Exit instantly on first error or failed test case\nuv run fill --pdb -nauto   # Drop into the debugger upon error in a test case\nuv run fill -s             # Print stdout from tests to the console during execution\n```\n\n## Custom `fill` Command-Line Options\n\nTo see all the options available to fill, including pytest and pytest plugin options, use `--pytest-help`.\n\nTo list the options that only specific to fill, use:\n\n```console\nuv run fill --help\n```\n\nFor a complete, up-to-date list of all command-line options, see the [Fill Command-Line Options](filling_tests_command_line_options.md) page, which is automatically generated from the current `uv run fill --help` output.\n"
  },
  {
    "path": "docs/filling_tests/filling_tests_dev_fork.md",
    "content": "# Filling Tests for Features under Development\n\n## Requirements\n\nBy default, execution-spec-tests only generates fixtures for forks that have been deployed to mainnet. In order to generate fixtures for evm features that are actively under development:\n\n1. A version of the `evm` and `solc` tools that implement the feature must be available (although, typically only a developer version of the `evm` tool is required, usually the latest stable release of `solc` is adequate), and,\n2. The development fork to test must be explicitly specified on the command-line:\n\n    === \"via the `--fork` flag\"\n\n          ```console\n          uv run fill -k 4844 --fork=Cancun -v\n          ```\n\n    === \"via the `--from` flag\"\n\n          ```console\n          uv run fill -k 4844 --from=Cancun -v\n          ```\n\n    === \"via the `--until` flag\"\n\n          ```console\n          uv run fill -k 4844 --until=Cancun -v\n          ```\n\n!!! note \"Specifying the `evm` binary via `evm-bin`\"\n     It is possible to explicitly specify the `evm` binary used to generate fixtures via the `--evm-bin` flag, for example,\n\n     ```console\n     uv run fill --fork=Cancun --evm-bin=/opt/bin/evm -v\n     ```\n\n## Further Help\n\n1. [`geth`/`evm` build documentation](https://geth.ethereum.org/docs/getting-started/installing-geth#build-from-source).\n2. [`solc` build documentation](https://docs.soliditylang.org/en/v0.8.20/installing-solidity.html#building-from-source).\n\n!!! note \"Verifying `evm` and `solc` versions used\"\n     The versions used to generate fixtures are displayed in the console output:\n     <figure markdown>  <!-- markdownlint-disable MD033 (MD033=no-inline-html) -->\n          ![Screenshot of pytest test collection console output](./img/pytest_run_example.png){align=center}\n     </figure>\n\n## VS Code Setup\n\nBy default, VS Code's Testing View will only show tests for stable forks. To show tests for development forks, uncomment the relevant line in the `python.testing.pytestArgs` configuration section of included settings file (`.vscode/settings.json`) to enable the `--until=FORK` flag. See [VS Code Setup](../getting_started/setup_vs_code.md) for help finding the settings files.\n"
  },
  {
    "path": "docs/filling_tests/filling_tests_vs_code.md",
    "content": "# Filling Tests in VS Code\n\nPrerequisite: [VS Code Setup](../getting_started/setup_vs_code.md).\n\n## Exploring Test Cases\n\nImplemented test cases can be explored in VS Code's \"Testing\" View; click on the conical flask highlighted in the screenshot below.\n\n<figure markdown>  <!-- markdownlint-disable MD033 (MD033=no-inline-html) -->\n ![VS Code Testing Tab](./img/vs_code_exploring_tests.png){ width=auto align=center}\n</figure>\n\n!!! note \"Testing EVM Features Under Active Development\"\n     See [the VS Code section](./filling_tests_dev_fork.md#vs-code-setup) in [Filling Tests for Features under Development](./filling_tests_dev_fork.md) to explore tests targeting EVM features under development.\n\n## Filling and Debugging Test Cases\n\n<figure markdown>\n ![VS Code Testing Tab](./img/vs_code_executing_tests.png){ width=auto align=center}\n</figure>\n"
  },
  {
    "path": "docs/filling_tests/getting_started.md",
    "content": "# Getting Started: Filling Tests\n\nThis guide describes how to get started with `fill` and commonly-used command-line options.\n\n1. Explore test cases via `--collect-only` and search for test cases that combine `PUSH0` and `DELEGATECALL` in the EVM functionality introduced in the Shanghai hard fork:\n\n    ```console\n    uv run fill --collect-only -k \"push0 and delegatecall\" tests/shanghai/\n    ```\n\n    The `fill` command is based on [`pytest`](https://docs.pytest.org/en/stable/). The above command uses the [optional pytest arguments](https://docs.pytest.org/en/stable/how-to/usage.html):\n\n    - `--collect-only` only collect test cases; don't execute them.\n    - `-k <expression>` filter test cases by their test case ID based on the given expression.\n    - `tests/shanghai` the directory containing the test cases (tells `fill` to only discover test cases in this directory; default: `tests/`).\n\n    Expected console output:\n    <figure markdown>  <!-- markdownlint-disable MD033 (MD033=no-inline-html) -->\n        ![Screenshot of pytest test collection console output](./img/pytest_collect_only.png){align=center}\n    </figure>\n\n2. Fill `state_test` fixtures for these test cases:\n\n    ```console\n    uv run fill -k \"push0 and delegatecall\" tests/shanghai/ -m state_test -v\n    ```\n\n    where:\n\n    - `-m state_test` only fills test cases marked as a `state_test` (see all available markers via `uv run fill --markers`).\n    - `-v` enables verbose output.\n\n    Expected console output:\n    <figure markdown>  <!-- markdownlint-disable MD033 (MD033=no-inline-html) -->\n        ![Screenshot of fill test collection console output](./img/pytest_run_example.png){align=center}\n    </figure>\n\n3. Verify the generated fixtures:\n\n    a. Check the corresponding fixture file has been generated:\n\n    ```console\n    head fixtures/state_tests/shanghai/eip3855_push0/push0/push0_contract_during_call_contexts.json\n    ```\n\n    b. Open the generated HTML test using the link provided at the bottom of the console output. This is written to the output directory at:\n\n    ```console\n    ./fixtures/.meta/report_fill.html\n    ```\n\n## Next Steps\n\n1. Learn [useful command-line flags](./filling_tests_command_line.md).\n2. [Execute tests for features under development](./filling_tests_dev_fork.md) via the `--fork` flag.\n3. _Optional:_ [Configure VS Code](../getting_started/setup_vs_code.md) to auto-format Python code and [execute tests within VS Code](./filling_tests_vs_code.md#filling-and-debugging-test-cases).\n4. Implement a new test case, see [Writing Tests](../writing_tests/index.md).\n"
  },
  {
    "path": "docs/filling_tests/index.md",
    "content": "# Filling Tests\n\nExecution of test cases against clients is a two-step process:\n\n1. JSON test fixtures are generated from the Python test cases found in `./tests` using `fill` and an EVM transition tool (`t8n`) implementation.\n2. Clients \"consume\" the JSON fixtures via either a dedicated, client-specific interface or a testing environment such as Hive.\n\nThe process of generating fixtures is often referred to as \"filling\" the tests.\n\n!!! note \"The `execute` command\"\n\n    The `execute` command directly executes Python test cases against a client via its RPC without using generated JSON fixtures. For all other methods of testing clients, the JSON fixtures are required. For more information, see [Executing Tests](../running_tests/execute/index.md).\n\n## Transition Tools (`t8n`)\n\nThe `fill` command requires an EVM `t8n` tool provided by most clients in order to generate the JSON fixtures. The `t8n` tool is mainly responsible for calculating the post-state of the EVM after executing a transaction, most relevantly, it calculates the updated state root.\n\n## Ethereum Execution Layer Specification (EELS)\n\nBy default, the [Ethereum Execution Layer Specification](https://github.com/ethereum/execution-specs) (EELS) reference implementation of the `t8n` tool is used to generate test fixtures for all forks that have been deployed to Ethereum mainnet. We strong encourage EIP authors to provide a reference implementation of their EIP in EELS, so that it can be used to generate test fixtures for features under active development.\n\n## Limitations of Filling\n\nThe \"fill-consume\" method follows a differential testing approach: A reference implementation is used to generate JSON test fixtures, which can then be executed against other EVM clients. However:\n\n!!! warning \"Successfully filling does not guarantee correctness\"\n\n    Some tests cases, particularly those without straightforward post-checks, such as certain gas calculations, may allow subtle inconsistencies to slip through during filling.\n    \n    **Consequently, filling the tests does not ensure the client’s correctness. Clients must consume the tests to be considered correctly tested, even if that client was used to fill the tests.**\n\n## Filling Static Tests from [ethereum/tests](https://github.com/ethereum/tests)\n\nFilling static test fillers in YAML or JSON formats from [ethereum/tests](https://github.com/ethereum/tests/tree/develop/src) is possible by adding the `--fill-static-tests` to the `fill` command.\n\nThis functionality is only available for backwards compatibility and copying legacy tests from the [ethereum/tests](https://github.com/ethereum/tests) repository into this one.\n\nAdding new static test fillers is otherwise not allowed.\n"
  },
  {
    "path": "docs/filling_tests/test_ids.md",
    "content": "# An explanation of test IDs generated by `fill`\n\n## Test Case Organization\n\nTest cases are implemented in Python \"modules\", which are organized by folder, named after the fork where the feature-under-test was introduced, for example:\n\n- `tests/cancun/` contains tests for features added in the Cancun hardfork.\n- `tests/prague/` contains tests for features added in the Prague hardfork.\n\n## Test ID generation\n\nA test ID is a string, generated by the test framework, that uniquely identifies a test case. It's format is:\n\n```text\n<python_test_module_path>::<python_test_function_name>[<parameter_1_id>-...-<parameter_N_id]\n```\n\nLet's use the following simple test case example to understand this format:\n\n```text\ntests/istanbul/eip1344_chainid/test_chainid.py::test_chainid[fork_Cancun-blockchain_test]\n```\n\nThe components map as following:\n\n- `<python_test_module_path>` - the Python \"module\" (file) where the test is implemented `tests/istanbul/eip1344_chainid/test_chainid.py`,\n- `<python_test_function_name>` - the Python test function: `test_chainid`,\n- `[<parameter_1_id>-...-<parameter_N_id]` - the test parameters, this test case has the following parameters:\n    - `fork_Cancun`, to read \"fork = Cancun\", the fork the test case is filled for,\n    - `blockchain_test`, the test type.\n\nAlthough `test_chainid` is not directly parametrized on the test function level, the framework always parametrizes tests by fork and, if possible, by test type. If we inspect its function signature, we see that it's native test format is of type `StateTestFiller`:\n\n```python\n@pytest.mark.valid_from(\"Istanbul\")\ndef test_chainid(state_test: StateTestFiller, pre: Alloc):\n    \"\"\"Test CHAINID opcode.\"\"\"\n    ...\n```\n\n### Parametrization by Fork\n\nEvery test case is parametrized by the `fork` where the feature-under-test remains valid, for example:\n\n- Test cases in `tests/cancun/` get filled for Cancun and Prague.\n- Test cases in `tests/prague/`, only get filled for Prague, at the time of writing, as Prague is the current fork in development.\n\nAll test IDs contain the `fork_<name>` parameter used to generate the test case in the test ID, e.g., `test_Cancun`.\n\n#### Transition Forks\n\nThe test framework can also generate blockchain tests containing blocks that span a fork boundary, these test cases receive a special fork parameter name which contain both fork names and the timestamp at which the transition was made, e.g., `fork_CancunToPragueAtTime15k`.\n\n### Parametrization by Test Type\n\nEach Python test case is also typically parametrized by test type, respectively fixture format. For example, if the test is implemented as a `state_test`, the test framework will additionally generate the following blockchain test fixtures (consisting of a single block with a single transaction):\n\n- a `blockchain_test` which can be tested via the Hive `eest/consume-rlp` simulator (or directly via a dedicated client interface).\n- a `blockchain_engine_test` (for post-merge forks) which can be tested via the Hive `eest/consume-engine` simulator.\n\n### Example: The Test IDs generated for `test_chainid`\n\nTo see all the test cases and their IDs that get generated from London until Shanghai for `test_chainid`, we can execute `fill` with the `--collect-only -q` flags:\n\n```bash\nfill tests/istanbul/eip1344_chainid/test_chainid.py --from London --until Shanghai --collect-only -q \n```\n\nwhich lists the following test IDs:\n\n```text\ntests/istanbul/eip1344_chainid/test_chainid.py::test_chainid[fork_London-blockchain_test]\ntests/istanbul/eip1344_chainid/test_chainid.py::test_chainid[fork_London-state_test]\ntests/istanbul/eip1344_chainid/test_chainid.py::test_chainid[fork_Paris-blockchain_test]\ntests/istanbul/eip1344_chainid/test_chainid.py::test_chainid[fork_Paris-blockchain_test_engine]\ntests/istanbul/eip1344_chainid/test_chainid.py::test_chainid[fork_Paris-state_test]\ntests/istanbul/eip1344_chainid/test_chainid.py::test_chainid[fork_Shanghai-blockchain_test]\ntests/istanbul/eip1344_chainid/test_chainid.py::test_chainid[fork_Shanghai-blockchain_test_engine]\ntests/istanbul/eip1344_chainid/test_chainid.py::test_chainid[fork_Shanghai-state_test]\n```\n\n### Additional Parametrization\n\nThe test function `tests/cancun/eip4844_blobs/test_blob_txs.py::test_blob_type_tx_pre_fork` is additionally parametrized:\n\n```text\ntests/cancun/eip4844_blobs/test_blob_txs.py::test_blob_type_tx_pre_fork[fork_ShanghaiToCancunAtTime15k-blockchain_test-no_blob_tx]\ntests/cancun/eip4844_blobs/test_blob_txs.py::test_blob_type_tx_pre_fork[fork_ShanghaiToCancunAtTime15k-blockchain_test-one_blob_tx]\n```\n\nThe strings `no_blob_tx` and `one_blob_tx` are additional descriptive parameter IDs that indicate the focus of the test.\n"
  },
  {
    "path": "docs/filling_tests/transition_tool_support.md",
    "content": "# Transition Tool Support\n\nThe following transition tools are supported by the framework:\n\n| Client | `t8n` Tool | Tracing Support |\n| -------| ---------- | --------------- |\n| [ethereum/evmone](https://github.com/ethereum/evmone) | `evmone-t8n` | Yes |\n| [ethereum/execution-specs](https://github.com/ethereum/execution-specs) | [`ethereum-spec-evm-resolver`](https://github.com/petertdavies/ethereum-spec-evm-resolver) | Yes |\n| [ethereumjs](https://github.com/ethereumjs/ethereumjs-monorepo) | [`ethereumjs-t8ntool.sh`](https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/vm/test/t8n) | No |\n| [ethereum/go-ethereum](https://github.com/ethereum/go-ethereum) | [`evm t8n`](https://github.com/ethereum/go-ethereum/tree/master/cmd/evm) | Yes |\n| [hyperledger/besu](https://github.com/hyperledger/besu/tree/main/ethereum/evmtool) | [`evmtool t8n-server`](https://github.com/hyperledger/besu/tree/main/ethereum/evmtool) | Yes             |\n| [status-im/nimbus-eth1](https://github.com/status-im/nimbus-eth1) | [`t8n`](https://github.com/status-im/nimbus-eth1/blob/master/tools/t8n/readme.md) | Yes |\n"
  },
  {
    "path": "docs/getting_started/code_standards.md",
    "content": "# Code Standards\n\nThis document outlines the coding standards and practices used in the @ethereum/execution-spec-tests repository.\n\n## Code and CI Requirements\n\nCode pushed to @ethereum/execution-spec-tests must fulfill the following checks in [CI](https://github.com/ethereum/execution-spec-tests/actions/workflows/tox_verify.yaml):\n\n| Type                   | Tox Command                                     | Explanation                                                                                                 |\n| ---------------------- | ----------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |\n| Lint & code formatting | `uvx --with=tox-uv tox -e lint`                 | Python lint, format and module import check via `ruff`                                                      |\n| Typecheck              | `uvx --with=tox-uv tox -e typecheck`            | Objects that provide typehints pass type-checking via `mypy`.                                               |\n| Framework unit tests   | `uvx --with=tox-uv tox -e pytest`               | All framework unit tests must execute correctly.                                                            |\n| EL Client test cases   | `uvx --with=tox-uv tox -e tests-deployed`       | All client test cases for deployed forks can be generated.                                                  |\n| Benchmark EL Test cases    | `uvx --with=tox-uv tox -e tests-deployed-benchmark` | All client test cases specific to benchmarks for deployed forks can be generated.                               |\n| HTML doc build         | `uvx --with=tox-uv tox -e mkdocs`               | Documentation generated without warnings.                                                                   |\n| Spellcheck             | `uvx --with=tox-uv tox -e spellcheck`           | Code and documentation spell-check using codespell. |\n| Markdown lint          | `uvx --with=tox-uv tox -e markdownlint`         | Markdown lint (requires [additional dependency](code_standards_details.md#additional-dependencies)).        |\n| Changelog validation   | `uvx --with=tox-uv tox -e changelog`            | Validates changelog entries format and structure in `docs/CHANGELOG.md`.                                    |\n\n!!! important \"Avoid CI surprises - Use pre-commit hooks!\"\n    **We strongly encourage all contributors to install and use pre-commit hooks!** This will run fast checks (lint, typecheck, spellcheck) automatically before each commit, helping you catch issues early and avoid frustrating CI failures after pushing your changes.\n\n    Install with one simple command:\n    ```console\n    uvx pre-commit install\n    ```\n    \n    This saves you time by catching formatting issues, type errors, and spelling mistakes before they reach CI.\n\n!!! tip \"Running checks easily\"\n\n    Add an alias:\n\n    ```console\n    alias tox=\"uvx --with=tox-uv tox\"\n    ```\n\n    Run all checks in parallel:\n\n    ```console\n    uvx --with=tox-uv tox run-parallel\n    ```\n\n    Run sequentially:\n\n    ```console\n    uvx --with=tox-uv tox\n    ```\n\n    Run specific, faster checks:\n\n    ```console\n    uvx --with=tox-uv tox -e lint,typecheck\n    ```\n\n!!! tip \"Lint & code formatting: Using `ruff` and VS Code to help autoformat and fix module imports\"\n\n    On the command-line, solve fixable issues with:\n\n    ```console\n    uv run ruff check --fix\n    ```\n\n    Use VS Code, see [VS Code Setup](../getting_started/setup_vs_code.md), to autoformat code, automatically organize Python module imports and highlight typechecking and spelling issues.\n\n!!! hint \"Typechecking\"\n\n    Adding the correct typehints can sometimes be tricky and there are exceptions that require manually disabling typechecking on a per-line basis. Please reach out to the maintainers if you need help, either [directly](../getting_started/getting_help.md) or in a PR.\n\n## Python Coding Preferences\n\n- **Line Length**: 100 characters maximum.\n- **Formatting**: Enforced by `ruff` (similar to `black`).\n- **Documentation**: All public functions and classes should have docstrings\n    - Docstrings should have a good one-line summary which uses the imperative (\"Return\" not \"Returns\").\n    - Add a blank line after the summary for multi-line docstrings.\n    - Single-line docstrings should have triple quotes on the same line.\n- **Imports**: Use explicit imports (no `from module import *`).\n- **Relative Imports**: Use relative imports within the same package\n- **Error Handling**: Use explicit exception types and meaningful error messages.\n- **Type Hints**: All functions should include type annotations.\n- **Unused Function Arguments**: When  unavoidable, use `del`, e.g., `del unused_var`, at function start to avoid flagging linter errors.\n- **Variable Naming**:\n    - Use `snake_case` for variables, functions, and modules.\n    - Use `PascalCase` for classes.\n    - Use `UPPER_CASE` for constants.\n- **File Paths**: Strongly prefer `pathlib` over `os.path` for file system operations.\n- **Retry Logic**: Use [`tenacity`](https://github.com/jd/tenacity) library for handling flaky network connections and transient failures.\n\n## Editor Setup\n\nA correctly configured editor will automatically handle most formatting requirements. See [VS Code Setup](./setup_vs_code.md) for recommended settings.\n\n## Detailed Information\n\nSee the [Detailed Code Standards](code_standards_details.md) page for more information on:\n\n- [Running tox environments](code_standards_details.md#running-tox-environments).\n    - Additional required [dependencies for markdownlint and spellchecking](code_standards_details.md#additional-dependencies).\n- [Pre-commit hooks setup](code_standards_details.md#pre-commit-hooks).\n- [Verifying test fixture changes](code_standards_details.md#verifying-fixture-changes).\n- [Ignoring bulk change commits](code_standards_details.md#ignoring-bulk-change-commits) in `git blame`.\n"
  },
  {
    "path": "docs/getting_started/code_standards_details.md",
    "content": "# Detailed Code Standards\n\nThis page provides in-depth information about the code standards and verification processes in @ethereum/execution-spec-tests.\n\n## Running Tox Environments\n\n### Execution Options\n\nRun all `tox` environments in parallel:\n\n```console\nuvx --with=tox-uv tox run-parallel\n```\n\nRun environments sequentially with verbose output:\n\n```console\nuvx --with=tox-uv tox -v\n```\n\nList all available environments:\n\n```console\nuvx --with=tox-uv tox -av\n```\n\n### Specific Environment Commands\n\nRun specific environments using the `-e` flag:\n\n```console\nuvx --with=tox-uv tox -e lint,typecheck,spellcheck\n```\n\n#### For Test Case Changes (`./tests/`)\n\n```console\nuvx --with=tox-uv tox -e lint,typecheck,spellcheck,tests-deployed\n```\n\n#### For Framework and Library Changes (`./src/`)\n\n```console\nuvx --with=tox-uv tox -e lint,typecheck,spellcheck,pytest\n```\n\n#### For Documentation Changes (`./docs/`)\n\n```console\nuvx --with=tox-uv tox -e spellcheck,markdownlint,mkdocs,changelog\n```\n\n!!! note \"Tox Virtual Environment\"\nChecks performed by `tox` are sandboxed in their own virtual environments (created automatically in the `.tox/` subdirectory). These can be used to debug errors encountered during `tox` execution.\n\n### Additional Dependencies\n\nSome checks require external (non-Python) packages:\n\n#### For `spellcheck`\n\nThe spellcheck environment uses **codespell**, which is automatically installed via Python dependencies and checks for common spelling mistakes in code and documentation.\n\nTo fix spelling errors found by codespell:\n\n```console\nuv run codespell *.md *.ini .github/ src/ tests/ docs/ --write-changes\n```\n\n!!! note \"VS Code Integration\"\n    The `whitelist.txt` file is still maintained for the VS Code cSpell extension, which provides real-time spell checking in the editor.\n\n#### For `markdownlint`\n\n```console\nsudo apt install nodejs\nsudo npm install -g markdownlint-cli2@0.17.2  # the version used in ci\n```\n\nOr use a specific node version using `nvm`.\n\n## Pre-commit Hooks\n\nCertain `tox` environments can be run automatically as git pre-commit hooks to ensure that your changes meet the project's standards before committing.\n\n### Installation\n\n```console\nuvx pre-commit install\n```\n\nFor more information, see [Pre-commit Hooks Documentation](../dev/precommit.md).\n\n## Formatting and Line Length\n\nThe Python code in @ethereum/execution-spec-tests is formatted with `ruff` with a line length of 100 characters.\n\n### Ignoring Bulk Change Commits\n\nThe maximum line length was changed from 80 to 100 in Q2 2023. To ignore this bulk change commit in git blame output, use the `.git-blame-ignore-revs` file:\n\n```console\ngit blame --ignore-revs-file .git-blame-ignore-revs docs/gen_test_case_reference.py\n```\n\nTo use the revs file persistently with `git blame`:\n\n```console\ngit config blame.ignoreRevsFile .git-blame-ignore-revs\n```\n\n## Building and Verifying Docs Locally\n\nTo quickly build and browse the HTML documentation locally run:\n\n=== \"bash\"\n\n    ```console\n    export FAST_DOCS=True\n    uv run mkdocs serve\n    ```\n\n=== \"fish\"\n\n    ```console\n    set -x FAST_DOCS True\n    uv run mkdocs serve\n    ```\n\nSetting `FAST_DOCS` to `False` additionally builds the \"[Test Case Reference](https://eest.ethereum.org/main/tests/)\" Section.\n\n## Verifying Fixture Changes\n\nWhen writing a PR that modifies either the framework or test cases, verify that changes don't cause issues with existing test cases.\n\nAll filled fixtures contain a `hash` field in the `_info` object, which is used to verify that the fixture hasn't changed.\n\n### Using the Hasher Tool\n\nThe `hasher` command can be used to bulk-verify the hashes of fixtures in a directory.\n\n| Flag             | Description                                                       |\n| ---------------- | ----------------------------------------------------------------- |\n| `--files` / `-f` | Prints a combined hash per JSON fixture file.                     |\n| `--tests` / `-t` | Prints the hash of every test vector in JSON fixture files.       |\n| `--root` / `-r`  | Prints a combined hash for all JSON fixture files in a directory. |\n\nFor a quick comparison between two fixture directories:\n\n```console\nhasher --root fixtures/\nhasher --root fixtures_new/\n```\n\nTo identify which files are different:\n\n```console\ndiff <(hasher --files fixtures/) <(hasher --files fixtures_new/)\n```\n\nFor a granular comparison:\n\n```console\ndiff <(hasher --tests fixtures/) <(hasher --tests fixtures_new/)\n```\n"
  },
  {
    "path": "docs/getting_started/getting_help.md",
    "content": "# Getting Help\n\nThe tests in this repository are a community effort to help improve the development cycle of all Ethereum execution clients.\n\nWe encourage contributions and recognize that Python is not everyone's  primary language - if you stumble over issues or need help, please reach out to one of the execution-spec-tests maintainers either directly or in the `#el-testing` channel in the [Ethereum R&D Discord Server](https://discord.com/invite/qGpsxSA).\n\n## Contact the Maintainers\n\nWrite to:\n\n- Dan on [Discord](https://discordapp.com/users/danceratopz) or [Telegram](https://t.me/danceratopz) (`danceratopz`).\n- Spencer on [Discord](https://discordapp.com/users/spencertaylorbrown) or [Telegram](https://t.me/spencertb) (`spencertaylorbrown`/`@techbro_ccoli`).\n- Mario on [Discord](https://discordapp.com/users/marioevz) or [Telegram](https://t.me/marioevz) (`marioevz`/`@marioevz`).\n\n<figure markdown>  <!-- markdownlint-disable MD033 (MD033=no-inline-html) -->\n  ![ukiyo-e style design of 3 furry happy pandas playfully doing experiments on ethereum in a laboratory](img/testing_pandas.png){width=\"400\"}\n</figure>\n"
  },
  {
    "path": "docs/getting_started/installation.md",
    "content": "# Installation\n\n## Prerequisites\n\nThe tools provided by [execution-spec-tests](https://github.com/ethereum/execution-spec-tests) use `uv` ([docs.astral.sh/uv](https://docs.astral.sh/uv/)) to manage their dependencies and virtual environment.\n\nIt's typically recommended to use the latest version of `uv`, currently `uv>=0.7.0` is required.\n\nThe latest version of `uv` can be installed via `curl` (recommended; can self-update via `uv self update`) or pip (requires Python, can't self-update):\n\n=== \"curl\"\n\n    ```console\n    curl -LsSf https://astral.sh/uv/install.sh | sh\n    ```\n\n=== \"pip\"\n\n    ```console\n    pip install uv\n    ```\n\nIf installed via `curl`, `uv` will download Python for your target platform if one of the required versions (Python 3.11 or 3.12) is not available natively.\n\n## Installation Commands\n\nClone [execution-spec-tests](https://github.com/ethereum/execution-spec-tests) and install its dependencies. We recommend using Python 3.12, the following uses `uv` to download and configures 3.12 to be the Python version used in execution-spec-tests:\n\n=== \"All platforms\"\n\n    ```console\n    git clone --depth 1 https://github.com/ethereum/execution-spec-tests\n    cd execution-spec-tests\n    uv python install 3.12\n    uv python pin 3.12\n    uv sync --all-extras\n    ```\n\nStatic tests/maintainers only: To learn how to build the `solc` binary from source (optional) follow [this guide](./installation_troubleshooting.md#problem-exception-failed-to-compile-yul-source).\n\n## Installation Troubleshooting\n\nIf you encounter issues during installation, see the [Installation Troubleshooting](./installation_troubleshooting.md) guide.\n"
  },
  {
    "path": "docs/getting_started/installation_troubleshooting.md",
    "content": "# Installation Troubleshooting\n\nThis page provides guidance on how to troubleshoot common issues that may arise when installing [ethereum/execution-spec-tests](https://github.com/ethereum/execution-spec-tests).\n\n## Problem: `Failed building wheel for coincurve`\n\n!!! danger \"Problem: `Failed building wheel for coincurve`\"\n    Installing EEST and its dependencies via `uv sync --all-extras` fails with:\n\n    ```bash\n    Stored in directory: /tmp/...\n      Building wheel for coincurve (pyproject.toml) ... error\n      error: subprocess-exited-with-error\n      \n      × Building wheel for coincurve (pyproject.toml) did not run successfully.\n      │ exit code: 1\n      ╰─> [27 lines of output]\n          ...\n            571 | #include <secp256k1_extrakeys.h>\n                |          ^~~~~~~~~~~~~~~~~~~~~~~\n          compilation terminated.\n          error: command '/usr/bin/gcc' failed with exit code 1\n          [end of output]\n      \n      note: This error originates from a subprocess, and is likely not a problem with pip.\n      ERROR: Failed building wheel for coincurve\n    ```\n\n!!! success \"Solution: Install the `libsecp256k1` library\"\n    On Ubuntu, you can install this library with:\n\n    ```bash\n    sudo apt update\n    sudo apt-get install libsecp256k1-dev\n    ```\n\n## Problem: `solc` Installation issues\n\n### Problem: `CERTIFICATE_VERIFY_FAILED`\n\n!!! danger \"Problem: `Failed to ... CERTIFICATE_VERIFY_FAILED`\"\n    When running `fill` you might encounter the following error:\n\n    ```bash\n    Exit: Failed to ...: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:992)>\n    ```\n\n=== \"Ubuntu\"\n\n    !!! success \"Solution: Update your system’s CA certificates\"\n        On Ubuntu, run the following commands:\n\n        ```bash\n        sudo apt-get update\n        sudo apt-get install ca-certificates\n        ```\n\n=== \"macOS\"\n\n    !!! success \"Solution: Update your system’s CA certificates\"\n        On macOS, Python provides a built-in script to install the required certificates:\n\n        ```bash\n        /Applications/Python\\ 3.11/Install\\ Certificates.command\n        ```\n\n### Problem: `Exception: failed to compile yul source`\n\n!!! danger \"Problem: `Running fill on static_tests fails with tests that contain yul source code` on ARM platforms\"\n    To resolve the issue you must acquire the `solc` binary e.g. by building solidity from source. The guide below installs v0.8.28 but you might prefer to choose a different version.\n\n!!! success \"Solution: Build solc from source\"\n    The following steps have been tested on Ubuntu 24.04.2 LTS ARM64:\n    ```bash\n    git clone --branch v0.8.28 --depth 1 https://github.com/ethereum/solidity.git\n    cd solidity && mkdir build && cd build\n    sudo apt install build-essential libboost-all-dev z3\n    cmake ..\n    make\n    mv $HOME/Documents/execution-spec-tests/.venv/bin/solc $HOME/Documents/execution-spec-tests/.venv/bin/solc-x86-64\n    cp ./solc/solc $HOME/Documents/execution-spec-tests/.venv/bin/\n    chmod +x $HOME/Documents/execution-spec-tests/.venv/bin/solc\n    ```\n    Running `uv run solc --version` should now return the expected version.\n\n## Problem: `ValueError: unsupported hash type ripemd160`\n\n!!! danger \"Problem: `Running fill fails with tests that use the RIPEMD160 precompile (0x03)`\"\n    When running `fill`, you encounter the following error:\n\n    ```python\n    ValueError: unsupported hash type ripemd160\n    # or\n    ValueError: [digital envelope routines] unsupported\n    ```\n\n    This is due to the removal of certain cryptographic primitives in OpenSSL 3. These were re-introduced in [OpenSSL v3.0.7](https://github.com/openssl/openssl/blob/master/CHANGES.md#changes-between-306-and-307-1-nov-2022).\n\n!!! success \"Solution: Modify OpenSSL configuration\"\n    On platforms where OpenSSL v3.0.7 is unavailable (e.g., Ubuntu 22.04), modify your OpenSSL configuration to enable RIPEMD160. Make the following changes in the OpenSSL config file:\n\n    ```ini\n    [openssl_init]\n    providers = provider_sect\n    \n    # List of providers to load\n    [provider_sect]\n    default = default_sect\n    legacy = legacy_sect\n\n    [default_sect]\n    activate = 1\n\n    [legacy_sect]\n    activate = 1\n    ```\n\n    This will enable the legacy cryptographic algorithms, including RIPEMD160. See [ethereum/execution-specs#506](https://github.com/ethereum/execution-specs/issues/506) for more information.\n\n## Problem: VS Code \"Autoformat on Save\" with Ruff Not Working\n\n!!! danger \"Problem: 'Autoformat on Save' with Ruff not working as expected in VS Code\"\n    If you are using VS Code and \"autoformat on save\" is not working as expected, or if it produces different formatting than the official `tox -e lint` command, you may have a version mismatch with the `ruff` formatter. This problem can be confirmed if `git diff` shows changes to an otherwise unmodified file after you have saved it.\n\n    This issue often occurs when VS Code is not configured to use the project's virtual environment (`.venv`) or if the linting dependencies have not been installed. In this case, VS Code's Ruff extension falls back to a bundled version of `ruff`, which may not match the version pinned in the project's `pyproject.toml` file.\n\n!!! success \"Solution: Install all required dependencies and select the correct interpreter\"\n\n    1.  Ensure all dependencies are installed, including the `lint` extras.\n\n        ```bash\n        uv sync --all-extras\n        ```\n\n    2.  In VS Code, open the Command Palette (`Ctrl+Shift+P` or `Cmd+Shift+P`) and select `Python: Select Interpreter`.\n    \n    3.  Choose the interpreter located in the project's `.venv` directory. This ensures VS Code uses the correct `ruff` version from your project's environment.\n    \n## Other Issues Not Listed?\n\nIf you're facing an issue that's not listed here, you can easily report it on GitHub for resolution.\n\n[Click here to report a documentation issue related to installation](https://github.com/ethereum/execution-spec-tests/issues/new?title=docs(bug):%20unable%20to%20install%20eest%20with%20error%20...&labels=scope:docs,type:bug&body=%3Ccopy-paste%20command%20that%20triggered%20the%20issue%20here%3E%0A%3Ccopy-paste%20output%20or%20attach%20screenshot%20here%3E)\n\nPlease include the following details in your report:\n\n1. The command that triggered the issue.\n2. Any relevant error messages or screenshots.\n3. Relevant version information from the output of `uv run eest info` (if running consume from within `eest`).\n"
  },
  {
    "path": "docs/getting_started/repository_overview.md",
    "content": "<!-- markdownlint-disable MD001 (MD001=heading-increment due to #### usage below) -->\n# Repository Overview\n\nThe most relevant folders and files in the repo are:\n\n```text\n📁 execution-test-specs/\n├─╴📁 tests/                     # test cases\n│   ├── 📁 eips/\n│   ├── 📁 vm/\n│   └── 📁 ...\n├─╴📁 fixtures/                  # default fixture output dir\n│   ├── 📁 blockchain_tests/\n│   ├── 📁 blockchain_tests_engine/\n│   ├── 📁 state_tests/\n│   └── 📁 ...\n├─╴📁 src/                       # library & framework packages\n│   ├── 📁 ethereum_test_fork/\n│   ├── 📁 ethereum_test_tools/\n│   └── 📁 ...\n├─╴📁 docs/                      # markdown documentation\n│   ├── 📁 getting_started\n│   ├── 📁 dev\n│   └── 📁 ...\n├─╴📁 .vscode/                   # visual studio code config\n│   ├── 📄 settings.recommended.json # copy to settings.json\n│   ├── 📄 launch.recommended.json\n│   └── 📄 extensions.json\n└── 📄 whitelist.txt             # spellcheck dictionary\n```\n\n#### `tests/`\n\nContains the implementation of the Ethereum consensus tests available in this repository.\n\n#### `src/`\n\nContains various packages that help to define test cases and to interface with the `evm t8n` command. Additionally, it contains some packages that enable test case execution by customizing pytest which acts as the test framework.\n\n#### `docs/`\n\nContains documentation configuration and source files.\n\n#### `.vscode/`\n\nSee [VS Code Setup](./setup_vs_code.md).\n"
  },
  {
    "path": "docs/getting_started/setup_vs_code.md",
    "content": "# VS Code Setup\n\nVS Code setup is optional, but does offer the following advantages:\n\n- Auto-format your Python code to conform to the repository's [code standards](../writing_tests/code_standards.md) ([ruff](https://docs.astral.sh/ruff/)).\n- Inline linting and auto-completion (thanks to Python type hints).\n- Spell-check your code and docs.\n- Graphical exploration of test cases and easy test execution/debug.\n\n## Installation\n\nPlease refer to the [Visual Studio Code docs](https://code.visualstudio.com/docs/setup/setup-overview) for help with installation.\n\n## VS Code Settings file\n\nThe [ethereum/execution-spec-tests](https://github.com/ethereum/execution-spec-tests) repo includes configuration files for VS Code in the `.vscode/` sub-directory:\n\n```text\n📁 execution-test-specs/\n└──📁 .vscode/\n    ├── 📄 settings.json\n    ├── 📄 extensions.json\n    └── 📄 launch.recommended.json\n```\n\nBy default, the repository settings are applied via `.vscode/settings.json`.\n\nTo enable the recommended launch configurations (that include some useful debugging configurations), copy the recommended launch configuration file to `.vscode/launch.json`:\n\n```console\ncp .vscode/launch.recommended.json .vscode/launch.json\n```\n\n## VS Code Extension Configuration\n\nThe extensions listed in `.vscode/extensions.json` are required for a smooth developer experience.\n\n1. Open the root folder of your local `execution-spec-tests` clone in VS Code, it will prompt you to install the repository's required extensions (from `.vscode/extensions.json` - you will be required to trust the `executions-spec-tests` repository first). These extensions are used to format, lint, type check and run tests on the codebase. After all the required extensions are installed a VS Code reload will be required.\n\n2. If previously installed, ensure that the following `ms-python` extensions are disabled for the `execution-spec-tests` workspace to ensure there are no conflicts with the `ruff` formatter. In the VS Code Extensions tab, search for the each of the extensions below, and if installed and enabled, open the \"Disabled\" menu and select \"Disable (Workspace)\". This ensures that the extensions will be available with other workspaces that may need them.\n\n    - [`ms-python.isort`](https://marketplace.visualstudio.com/items?itemName=ms-python.isort)\n    - [`ms-python.flake8`](https://marketplace.visualstudio.com/items?itemName=ms-python.flake8)\n    - [`ms-python.black-formatter`](https://marketplace.visualstudio.com/items?itemName=ms-python.black-formatter)\n\n    <figure markdown>\n        ![Disabling extensions for the current workspace](./img/vscode_extension_disable_for_workspace.png){width=auto align=center}\n    </figure>\n\n## Configuration for Testing EVM Features Under Active Development\n\nAn additional step is required to enable fixture generations for features from forks that are under active development and have not been deployed to mainnet, see [Filling Tests for Features under Development](../filling_tests/filling_tests_dev_fork.md#vs-code-setup).\n"
  },
  {
    "path": "docs/index.md",
    "content": "# Execution Spec Tests\n\n<figure markdown>  <!-- markdownlint-disable MD033 (MD033=no-inline-html) -->\n  ![Execution Spec Tests Logo](img/execution_spec_tests.jpg)\n</figure>\n\n@ethereum/execution-spec-tests is both a collection of test cases and a framework in Python to generate tests for Ethereum execution clients.\n\nThe framework collects and executes the test cases in order to generate _test fixtures_ (JSON) which can be consumed by any execution client to verify their implementation of [ethereum/execution-specs](https://github.com/ethereum/execution-specs). The fixtures, which define state transition and block tests, are generated by the framework using one of the `t8n` command-line tools that are provided by most execution clients, see below for an overview of the supported `t8n` tools.\n\n```mermaid\n---\ntitle: Test Fixture Generation with execution-spec-tests\n---\nflowchart LR\n  style C stroke:#333,stroke-width:2px\n  style D stroke:#333,stroke-width:2px\n  style G stroke:#F9A825,stroke-width:2px\n  style H stroke:#F9A825,stroke-width:2px\n  \n  subgraph ethereum/go-ethereum\n    C[<code>evm t8n</code><br/>external executable]\n  end\n\n  subgraph ethereum/solidity\n    D[<code>solc</code><br/>external executable]\n  end\n\n  subgraph ethereum/EIPs\n    E(<code>EIPS/EIP-*.md</code><br/>SHA digest via Github API)\n  end\n\n  subgraph \"ethereum/execution-spec-tests\"\n    A(<code>./tests/**/*.py</code><br/>Python Test Cases)\n    B([<code>$ fill ./tests/</code><br/>Python Framework])\n  end\n\n  subgraph Test Fixture Consumers\n    subgraph ethereum/hive\n      G([<code>$ hive ...</code><br/>Go Test Framework])\n    end\n    H([Client executables])\n  end\n\n  C <-.-> B  \n  D <-.-> B\n  A --> B\n  E <-.-> |retrieve latest spec version\\ncheck tested spec version| B\n  B -->|output| F(<code>./fixtures/**/*.json</code>\\nJSON Test Fixtures)\n  F -->|input| G\n  F -->|input| H\n```\n\nThe generated test fixtures can be used:\n\n1. Directly by client teams' test frameworks, and,\n2. In the integration tests executed in the @ethereum/hive framework.\n\nMore information on how to use and download the [released test fixtures](https://github.com/ethereum/execution-spec-tests/releases) can be found [here](running_tests/index.md).\n\n## Relationship to ethereum/tests\n\nThis collection of tests is relatively new (test case development started Q4, 2022) and mainly targets recent and upcoming Ethereum specification changes. It does not replace, but rather complements the existing tests in [ethereum/tests](https://github.com/ethereum/tests).\n\n## Motivation\n\nThe motivation to implement test cases in [ethereum/execution-spec-tests](https://github.com/ethereum/execution-spec-tests) is:\n\n1. To implement test cases as code and ensure that changes, due to spec changes, for example, can be easily made. Moreover, changes are easily understandable and available in version control.\n2. To avoid the 2-step approach often used in [ethereum/tests](https://github.com/ethereum/tests):\n    1. Code (often unavailable) -> Test case (YAML).\n    2. Test case (YAML) -> Fixtures (JSON).\n\n!!! success \"Contributing\"\n    Contributions via [PR](https://github.com/ethereum/execution-spec-tests/pulls) are welcome!\n\n!!! bug \"Reporting a Vulnerability\"\n\n    Care is required when adding PRs or issues for functionality that is live on Ethereum mainnet. Please report vulnerabilities and verify bounty eligibility via the [bug bounty program](https://bounty.ethereum.org).\n\n    - **Please do not create a PR with a vulnerability visible.**\n    - **Please do not file a public ticket mentioning the vulnerability.**\n"
  },
  {
    "path": "docs/javascripts/site.js",
    "content": "// Config\nconst FILTER_INPUT_SELECTOR = \".custom_dt_filter\";\nconst FILTER_SEARCH_SELECTOR = \"#custom_dt_search\";\nlet table;\nconst ICON_COLUMN_FILTER =\n  '<span class=\"twemoji\"><svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M17 16.88c.56 0 1 .44 1 1s-.44 1-1 1-1-.45-1-1 .44-1 1-1m0-3c2.73 0 5.06 1.66 6 4-.94 2.34-3.27 4-6 4s-5.06-1.66-6-4c.94-2.34 3.27-4 6-4m0 1.5a2.5 2.5 0 0 0 0 5 2.5 2.5 0 0 0 0-5M18 3H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h5.42c-.16-.32-.3-.66-.42-1 .12-.34.26-.68.42-1H4v-4h6v2.97c.55-.86 1.23-1.6 2-2.21V13h1.15c1.16-.64 2.47-1 3.85-1 1.06 0 2.07.21 3 .59V5c0-1.1-.9-2-2-2m-8 8H4V7h6v4m8 0h-6V7h6v4Z\"></path></svg></span>';\n\n// This script is used both within mkdocs and in standalone html files.\n// As such, a uniform listener to page load event is required.\n// The snippet below uses mkdocs subscription if present otherwise jquery is used\n// as a fallback.\n// see: https://github.com/squidfunk/mkdocs-material/issues/5816#issuecomment-1667654560\n\nif (typeof document$ == \"undefined\") {\n  document$ = {};\n  document$.subscribe = $(document).ready;\n}\n\ndocument$.subscribe(() => {\n  initDataTable();\n\n  if (table) {\n    // Listen for changes to filters\n    $(FILTER_INPUT_SELECTOR).on(\"change\", filterRows);\n\n    $(FILTER_SEARCH_SELECTOR).on(\"input\", filterRows);\n\n    // Apply preselected filters (if present) on page load\n    filterRows();\n\n    // Listen for copy event\n    listenForClipboardCopy();\n\n    // Style native dataTable buttons\n    $(\".dt-buttons\").detach().appendTo(\".panel_row.filters\");\n    $(\".buttons-collection\").prepend(ICON_COLUMN_FILTER);\n  }\n\n  // Setup up select 2\n  $(`select${FILTER_INPUT_SELECTOR}`).select2();\n});\n\nconst initDataTable = () => {\n  // Only pages where a table is present.\n  if (!$(\"#test_table\").length) return false;\n\n  // Setup DataTable plugin\n  // https://datatables.net/reference/api/\n  table = new DataTable(\"#test_table\", {\n    pageLength: -1,\n    scrollX: true,\n    autoWidth: false,\n    layout: {\n      topStart: {\n        buttons: [\"colvis\"],\n      },\n    },\n  });\n};\n\n// A custom DataTable filter is implemented using a <select> tag with the following requirements:\n// - It must have the `FILTER_INPUT_SELECTOR` class.\n// - It must include a `data-criteria` attribute that specifies the criteria this filter looks for.\n//\n// Example:\n// <select class=\"<FILTER_INPUT_SELECTOR>\" data-criteria=\"fork\"></select>\n//\n// The value of the `data-criteria' attribute must match the corresponding data attribute in the <tr> elements.\n// For instance, rows containing <tr data-fork=\"...\"> will be filtered based on this selection.\nconst filterRows = () => {\n  table\n    .rows()\n    .search(function (rowContent, b, index) {\n      const row = $(table.row(index).node());\n      let match = true;\n\n      const searchKeyword = $(FILTER_SEARCH_SELECTOR).val();\n      const searchHit = rowContent.includes(searchKeyword);\n\n      for (let filter of $(FILTER_INPUT_SELECTOR)) {\n        // Filter is ignored if set to all\n        if ($(filter).val() == \"all\") continue;\n\n        // Otherwise, the result of this filter applied to the previous match.\n        match =\n          match && row.data($(filter).data(\"criteria\")) === $(filter).val();\n      }\n\n      return searchKeyword.length ? match && searchHit : match;\n    })\n    .draw();\n};\n\nconst listenForClipboardCopy = () => {\n  // Event delegation for copy-to-clipboard functionality\n  document.addEventListener(\"click\", function (event) {\n    if (event.target && event.target.classList.contains(\"copy-id\")) {\n      const fullId = event.target.getAttribute(\"data-full-id\");\n\n      // Copy to clipboard\n      navigator.clipboard\n        .writeText(fullId)\n        .then(() => {\n          const originalContent = event.target.innerHTML;\n\n          // Set the sliding message with animation\n          event.target.innerHTML =\n            '<span class=\"slide show\">...full test id copied!</span>';\n\n          // Delay the hiding of the slide-out message\n          setTimeout(() => {\n            const slideElement = event.target.querySelector(\".slide\");\n            if (slideElement) {\n              slideElement.classList.add(\"hide\");\n            }\n          }, 1000);\n\n          // Restore the original content after the animation\n          setTimeout(() => {\n            event.target.innerHTML = originalContent;\n          }, 1500); // Total duration before restoring original content\n        })\n        .catch((err) => {\n          console.error(\"Failed to copy text: \", err);\n        });\n    }\n  });\n};\n"
  },
  {
    "path": "docs/library/cli/eest.md",
    "content": "# The `eest` CLI\n\n::: mkdocs-click\n    :module: cli.eest.cli\n    :command: eest\n    :depth: 1\n    :list_subcommands: true\n"
  },
  {
    "path": "docs/library/cli/evm_bytes.md",
    "content": "# The `evm_bytes` CLI\n\n::: mkdocs-click\n    :module: cli.evm_bytes\n    :command: evm_bytes\n    :depth: 1\n    :list_subcommands: true\n"
  },
  {
    "path": "docs/library/cli/extract_config.md",
    "content": "# `extract_config` - Extract Client Configuration Files\n\nThe `extract_config` command extracts configuration files from Ethereum clients by spawning them via Hive and retrieving the generated files from the Docker container.\n\n## Purpose\n\nWhen Ethereum clients start up with a genesis configuration, they generate various configuration files such as:\n\n- `/chainspec/test.json` - Chain specification file\n- `/configs/test.cfg` - Configuration file\n- `/genesis.json` - Genesis block configuration\n\nThis tool automates the process of extracting these files from the client containers for analysis or debugging purposes.\n\n## Usage\n\n```bash\nuv run extract_config --fixture <FIXTURE_PATH> [OPTIONS]\n```\n\n### Options\n\n- `--fixture, -f` (required): Path to a fixture JSON file or directory containing fixture files\n- `--client, -c`: Specific client name to extract from (e.g., go-ethereum, besu, nethermind). If not specified, extracts from all available clients\n- `--output, -o`: Output directory for extracted files (default: ./extracted_configs)\n- `--hive-url`: Hive server URL (default: http://127.0.0.1:3000)\n- `--list-files, -l`: List files in the container root before extraction\n- `--help`: Show help message\n\n### Examples\n\nExtract configuration from all clients using a specific fixture:\n\n```bash\nuv run extract_config --fixture fixtures/blockchain_tests/paris/security/test_selfdestruct_balance_bug.json\n```\n\nExtract configuration from a specific client:\n\n```bash\nuv run extract_config --fixture fixtures/blockchain_tests/paris/security/test_selfdestruct_balance_bug.json --client besu\n```\n\nExtract configurations from all fixtures in a directory:\n\n```bash\nuv run extract_config --fixture fixtures/blockchain_tests/paris/security/\n```\n\nExtract to a specific directory and list container files:\n\n```bash\nuv run extract_config --fixture my_fixture.json --output ./my_configs --list-files\n```\n\n## Prerequisites\n\n1. Hive must be running in the background:\n\n   ```bash\n   ./hive --dev\n   ```\n\n2. Docker must be installed and accessible\n\n## Output\n\nThe tool creates a hierarchical directory structure:\n\n```console\n<output_dir>/\n  <fixture_name>/\n    <client_name>/\n      chainspec.json\n      config.cfg\n      genesis.json\n```\n\nFor example:\n\n```console\nextracted_configs/\n  test_selfdestruct_balance_bug/\n    go-ethereum/\n      genesis.json\n    besu/\n      genesis.json\n      chainspec.json\n    nethermind/\n      chainspec.json\n      config.cfg\n```\n\nOnly files that exist in the client container will be extracted.\n\n## How It Works\n\n1. Loads the fixture file(s) to extract genesis configuration\n2. Starts a Hive simulation\n3. For each fixture and each client:\n   - Captures the list of Docker containers before starting the client\n   - Spawns the client with the genesis configuration\n   - Compares Docker containers to identify the newly created container\n   - Uses Docker exec commands to check for and extract configuration files\n   - Saves the extracted files to the organized output directory\n   - Stops the client container\n4. Ends the Hive simulation\n\n## Container ID Detection\n\nSince Hive doesn't directly expose container IDs, the tool uses a detection mechanism:\n\n1. Lists all Docker container IDs before starting the client\n2. Starts the client through Hive\n3. Lists all Docker container IDs after starting the client\n4. The difference should be exactly one container - the client's container\n\n## Supported Fixture Formats\n\nThe tool supports:\n\n- Individual fixture JSON files (BlockchainFixture format)\n- PreAllocGroup JSON files\n- Directories containing multiple fixture files\n\n## Troubleshooting\n\n- If no files are extracted, use the `--list-files` flag to see what files are available in the container root\n- Ensure Hive is running before executing the command\n- Check that Docker is installed and the current user has permissions to run Docker commands\n- If the tool fails to detect the container ID, ensure no other containers are being created simultaneously\n- Some clients may not generate all configuration file types - this is normal\n"
  },
  {
    "path": "docs/library/cli/index.md",
    "content": "# EEST CLI Tools\n\n- [`check_eip_versions`](../../writing_tests/reference_specification.md) - A CLI tool to check the SHA values specified in EIP tests match the latest version from ethereum/EIPs.\n- [`eest`](eest.md) - A CLI tool that helps with routine tasks in ethereum/execution-spec-tests.\n- [`evm_bytes`](evm_bytes.md) - Convert the given EVM bytes from a binary file or a hex string to EEST's python opcodes.\n- [`extract_config`](extract_config.md) - Extract client configuration files (chainspec/genesis.json) from Ethereum clients via Hive.\n"
  },
  {
    "path": "docs/library/ethereum_clis.md",
    "content": "# Ethereum CLIs Package\n\n::: ethereum_clis\n"
  },
  {
    "path": "docs/library/ethereum_test_base_types.md",
    "content": "# Ethereum Test Base Types package\n\n::: ethereum_test_base_types\n"
  },
  {
    "path": "docs/library/ethereum_test_exceptions.md",
    "content": "# Ethereum Test Exceptions package\n\n::: ethereum_test_exceptions\n"
  },
  {
    "path": "docs/library/ethereum_test_fixtures.md",
    "content": "# Ethereum Test Fixtures package\n\n::: ethereum_test_fixtures\n"
  },
  {
    "path": "docs/library/ethereum_test_forks.md",
    "content": "# Ethereum Test Forks package\n\n::: ethereum_test_forks\n"
  },
  {
    "path": "docs/library/ethereum_test_specs.md",
    "content": "# Ethereum Test Specs package\n\n::: ethereum_test_specs\n"
  },
  {
    "path": "docs/library/ethereum_test_tools.md",
    "content": "# Ethereum Test Tools Package\n\n::: ethereum_test_tools\n"
  },
  {
    "path": "docs/library/ethereum_test_types.md",
    "content": "# Ethereum Test Types package\n\n::: ethereum_test_types\n"
  },
  {
    "path": "docs/library/ethereum_test_vm.md",
    "content": "# Ethereum Test VM package\n\n::: ethereum_test_vm\n"
  },
  {
    "path": "docs/library/index.md",
    "content": "# Library (Tools) Reference Documentation\n\nExecution spec tests consists of several packages that implement helper classes and tools that enable and simplify test case implementation. This section contains their reference documentation:\n\n- [`ethereum_test_base_types`](./ethereum_test_base_types.md) - provides the basic types on top of which other testing libraries are built.\n- [`ethereum_test_exceptions`](./ethereum_test_exceptions.md) - provides definitions for exceptions used in all tests.\n- [`ethereum_test_fixtures`](./ethereum_test_fixtures.md) - provides definitions of all test fixture types that are produced in this repository and can be consumed by clients.\n- [`ethereum_test_forks`](./ethereum_test_forks.md) - provides definitions for supported forks used in tests.\n- [`ethereum_test_specs`](./ethereum_test_specs.md) - provides definitions for all spec types used to define test cases, and generate different kinds of test fixtures.\n- [`ethereum_test_tools`](./ethereum_test_tools.md) - provides primitives and helpers to test Ethereum execution clients.\n- [`ethereum_test_types`](./ethereum_test_types.md) - provides Ethereum types built on top of the base types which are used to define test cases and interact with other libraries.\n- [`ethereum_test_vm`](./ethereum_test_vm.md) - provides definitions for the Ethereum Virtual Machine (EVM) as used to define bytecode in test cases.\n- [`ethereum_clis`](./ethereum_clis.md) - a wrapper for the transition (`t8n`) tool.\n- [`pytest_plugins`](./pytest_plugins/index.md) - contains pytest customizations that provide additional functionality for generating test fixtures.\n"
  },
  {
    "path": "docs/library/pytest_plugins/filler.md",
    "content": "# Filler Plugin\n\n::: pytest_plugins.filler\n\n::: pytest_plugins.filler.filler\n\n::: pytest_plugins.filler.pre_alloc\n"
  },
  {
    "path": "docs/library/pytest_plugins/forks.md",
    "content": "# Forks Plugin\n\n::: pytest_plugins.forks\n\n::: pytest_plugins.forks.forks\n"
  },
  {
    "path": "docs/library/pytest_plugins/index.md",
    "content": "# Pytest Framework and Customizations\n\n::: pytest_plugins\n\n- [Filler Plugin](./filler.md).\n- [Forks Plugin](./forks.md).\n- [Spec Version Checker Plugin](./spec_version_checker.md).\n"
  },
  {
    "path": "docs/library/pytest_plugins/spec_version_checker.md",
    "content": "# Spec Version Checker Plugin\n\n::: pytest_plugins.spec_version_checker\n\n::: pytest_plugins.spec_version_checker.spec_version_checker\n"
  },
  {
    "path": "docs/navigation.md",
    "content": "<!-- markdownlint-disable MD007 MD041 (MD007=ul-indent MD041=first-line-heading) -->\n<!-- Contributing and Security: included via mkdocs-gen-files and docs/include_contributing.py -->\n  * [Home](index.md)\n  * Getting Started\n      * [Installation](getting_started/installation.md)\n      * [Installation Troubleshooting](getting_started/installation_troubleshooting.md)\n      * [Contributing](getting_started/contributing.md)\n      * [Security Policy](getting_started/security.md)\n      * [Code Standards](getting_started/code_standards.md)\n      * [Detailed Code Standards](getting_started/code_standards_details.md)\n      * [VS Code Setup](getting_started/setup_vs_code.md)\n      * [Repository Overview](getting_started/repository_overview.md)\n      * [Getting Help](getting_started/getting_help.md)\n  * [Writing Tests](writing_tests/index.md)\n      * [Adding a New Test](writing_tests/adding_a_new_test.md)\n      * [Types of Test](writing_tests/types_of_tests.md)\n      * [Writing a New Test](writing_tests/writing_a_new_test.md)\n      * [Benchmarks](writing_tests/benchmarks.md)\n      * [Test Markers](writing_tests/test_markers.md)\n      * [Verifying Changes Locally](writing_tests/verifying_changes.md)\n      * [Code Standards](writing_tests/code_standards.md)\n      * [Exception Tests](writing_tests/exception_tests.md)\n      * [Using and Extending Fork Methods](writing_tests/fork_methods.md)\n      * [Gas Optimization](writing_tests/gas_optimization.md)\n      * [Referencing an EIP Spec Version](writing_tests/reference_specification.md)\n      * [EIP Checklist Generation](writing_tests/eip_checklist.md)\n      * [Testing Checklist Templates](writing_tests/checklist_templates/index.md)\n          * [EIP Execution Layer Testing Checklist Template](writing_tests/checklist_templates/eip_testing_checklist_template.md)\n      * [Post-mortems](writing_tests/post_mortems.md)\n      * [Tutorial: Adding a State Test](writing_tests/tutorials/state_transition.md)\n      * [Porting Legacy Tests](writing_tests/porting_legacy_tests.md)\n  * [Filling Tests](filling_tests/index.md)\n      * [Getting Started](filling_tests/getting_started.md)\n      * [Filling Tests at a Prompt](filling_tests/filling_tests_command_line.md)\n      * [Fill Command-Line Options](filling_tests/filling_tests_command_line_options.md)\n      * [Filling Tests in VS Code](filling_tests/filling_tests_vs_code.md)\n      * [Filling Tests for Features Under Development](filling_tests/filling_tests_dev_fork.md)\n      * [An Explanation of Test IDs](filling_tests/test_ids.md)\n      * [Transition Tool Support](filling_tests/transition_tool_support.md)\n      * [Debugging Transition Tools](filling_tests/debugging_t8n_tools.md)\n  * [Running Tests](running_tests/index.md)\n      * [Methods of Running Tests](running_tests/running.md)\n      * [EEST Fixture Releases](running_tests/releases.md)\n      * [Fuzzer Bridge](writing_tests/fuzzer_bridge.md)\n      * [Test Fixture Specifications](running_tests/test_formats/index.md)\n          * [State Tests](running_tests/test_formats/state_test.md)\n          * [Blockchain Tests](running_tests/test_formats/blockchain_test.md)\n          * [Blockchain Engine Tests](running_tests/test_formats/blockchain_test_engine.md)\n          * [Blockchain Engine X Tests](running_tests/test_formats/blockchain_test_engine_x.md)\n          * [Transaction Tests](running_tests/test_formats/transaction_test.md)\n          * [Common Types](running_tests/test_formats/common_types.md)\n          * [Exceptions](running_tests/test_formats/exceptions.md)\n      * [Hive](running_tests/hive/index.md)\n          * [Client Configuration](running_tests/hive/client_config.md)\n          * [Common Options](running_tests/hive/common_options.md)\n          * [Development Mode](running_tests/hive/dev_mode.md)\n          * [Viewing Results](running_tests/hive/hiveview.md)\n          * [CI Integration](running_tests/hive/ci_integration.md)\n      * [Consume Commands](running_tests/consume/index.md)\n          * [Consume Cache & Fixture Inputs](running_tests/consume/cache.md)\n          * [Consume Direct](running_tests/consume/direct.md)\n          * [Consume Simulators](running_tests/consume/simulators.md)\n          * [Exception Tests](running_tests/consume/exceptions.md)\n      * [Execute Commands](./running_tests/execute/index.md)\n          * [Execute Hive](./running_tests/execute/hive.md)\n          * [Execute Remote](./running_tests/execute/remote.md)\n          * [Execute Eth Config](./running_tests/execute/eth_config.md)\n      * [Useful Pytest Options](running_tests/useful_pytest_options.md)\n  * [Developer Doc](dev/index.md)\n      * [Managing Configurations](dev/configurations.md)\n      * [Interactive Library Usage](dev/interactive_usage.md)\n      * [Generating Documentation](dev/docs.md)\n      * [Documenting CLI Commands](dev/documenting_clis.md)\n      * [Coding Style](dev/coding_style.md)\n      * [Logging](dev/logging.md)\n      * [Enabling Precommit Checks](dev/precommit.md)\n      * [Running Github Actions Locally](dev/test_actions_locally.md)\n  * [Changelog](CHANGELOG.md)\n  * [Library Reference](library/index.md)\n      * [EEST CLI Tools](library/cli/index.md)\n      * [Ethereum Test Base Types Package](library/ethereum_test_base_types.md)\n      * [Ethereum Test Exceptions Package](library/ethereum_test_exceptions.md)\n      * [Ethereum Test Fixtures Package](library/ethereum_test_fixtures.md)\n      * [Ethereum Test Forks Package](library/ethereum_test_forks.md)\n      * [Ethereum Test Specs Package](library/ethereum_test_specs.md)\n      * [Ethereum Test Tools Package](library/ethereum_test_tools.md)\n      * [Ethereum Test Types Package](library/ethereum_test_types.md)\n      * [Ethereum Test VM Package](library/ethereum_test_vm.md)\n      * [Ethereum CLIs Package](library/ethereum_clis.md)\n      * [Pytest Plugins](library/pytest_plugins/index.md)\n"
  },
  {
    "path": "docs/running_tests/consume/cache.md",
    "content": "# Consume Cache and Fixture Inputs\n\nThe `consume cache` command can be used to resolve, download and cache fixture releases:\n\n```console\nconsume cache --input=stable@v4.5.0\n```\n\nAll `consume` subcommands have an `--input` argument, which implements the same functionality as `consume cache` to download and cache fixtures, respectively obtain downloaded fixtures from the cache.\n\n## Example: Two-liner to Download the Latest Fixture Release\n\nReleases can be downloaded using EEST tooling without (manually) cloning and installing the @ethereum/execution-spec-tests tools as following:\n\n1. Install `uv` (a fast, rust-based Python package manager):\n\n    ```console\n    curl -LsSf https://astral.sh/uv/install.sh | sh\n    ```\n\n2. Run EEST's `consume cache` command via `uv` and request the latest [\"stable\" fixture release](../releases.md):\n\n    ```console\n    uvx --from git+https://github.com/ethereum/execution-spec-tests \\\n        consume cache --input=stable@latest\n    ```\n\n    Expected output, as of `v4.5.0`:\n\n    ```console\n    Updated https://github.com/ethereum/execution-spec-tests (8c3cbd7a4eef3967abd78db32ee45ef8f7cf8271)\n    Updated https://github.com/petertdavies/ethereum-spec-evm-resolver (623ac4565025e72b65f45b926da2a3552041b469)\n    Built ethereum-execution-spec-tests @ git+https://github.com/ethereum/execution-spec-tests@8c3cbd7a4eef3967abd78db32ee45ef8f7cf8271\n\n    Installed 69 packages in 10ms\n    Exit: Fixtures downloaded and cached.\n    Path: /home/dtopz/.cache/ethereum-execution-spec-tests/cached_downloads/ethereum/execution-spec-tests/v4.5.0/fixtures_stable/fixtures\n    Input: https://github.com/ethereum/execution-spec-tests/releases/download/v4.5.0/fixtures_stable.tar.gz\n    Release page: https://github.com/ethereum/execution-spec-tests/releases/tag/v4.5.0\n    ```\n\n    **Note:** Use direct URLs to avoid GitHub API calls (better for CI environments). Version specifiers like `stable@latest` will always use the GitHub API to resolve versions. More details on the arguments to `--input` are provided below.\n\n    **Explanation:** `uv` creates a local Python virtual environment in `~/.cache/uv/`, installs EEST and executes the `consume cache` command to resolve and download the release, which gets cached at `~/.cache/ethereum-execution-spec-tests`. Subsequent commands will use the cached version of the fixtures.\n\n## The `--input` Flag to Specify Fixtures\n\nAll `consume` sub-commands take an `--input=<fixture_path>|<release_spec>|<url>` flag to specify which fixtures should be used for the command, `<fixtures>` may be:\n\n1. **A local directory**: Fixtures from your local file system.\n2. **A release specification**: An EEST release tag or \"release specification\" `stable@latest`, `fusaka-devnet-1@v1.0.0`, etc.\n3. **A URLs**: A full URL to a custom hosted release or a Github release.\n\n### Release Specifications\n\nA release specification has the format `<release_name>@<version>`.\n\n**Supported release names:**\n\n- `stable`: Latest stable fork release.\n- `develop`: Latest development fork release.\n- Custom release names: e.g., `pectra-devnet-4`, `eip7692`.\n\n**Supported version formats:**\n\n- `latest`: Most recent release for the specified name.\n- `v1.2.3`: Specific semantic version.\n\n### Examples\n\nExamples using a release specification:\n\n```bash\n# Latest standard, full stable release (all forks up to and including the latest deployed mainnet fork)\nuv run consume engine --input stable@latest\n\n# Latest standard, full development release (all forks up to and including the latest development fork)\nuv run consume rlp --input develop@latest\n\n# Standard, full releases by tag\nuv run consume engine --input stable@v4.1.0\nuv run consume rlp --input develop@v4.2.1\n\n# Pre-release tags\nuv run consume cache --input pectra-devnet-6@v1.0.0\nuv run consume direct --input eip7692@latest --bin ../go-ethereum/build/bin/evm\n```\n\nExamples using a URL, the target must be a `.tar.gz`:\n\n```bash\n# GitHub release URL\nuv run consume engine --input https://github.com/ethereum/execution-spec-tests/releases/download/v4.1.0/fixtures_develop.tar.gz\n\n# Direct archive URL\nuv run consume rlp --input https://example.com/custom-fixtures.tar.gz\n```\n\n## Caching System\n\n### Automatic Caching\n\nAll remote fixture sources are automatically cached to avoid repeated downloads:\n\n**Default cache location:**\n\n```text\n~/.cache/ethereum-execution-spec-tests/cached_downloads/\n```\n\nYou can override this location with the `--cache-folder` flag:\n\n```bash\nuv run consume cache --input stable@latest --cache-folder /path/to/custom/cache\n```\n\nOr extract directly to a specific directory (bypasses cache structure):\n\n```bash\nuv run consume cache --input fusaka-devnet-2@v1.1.0 --extract-to ./benchmark-fixtures\n```\n\n**Cache structure:**\n\n```text\n❯ tree ~/.cache/ethereum-execution-spec-tests/ -L 5\n/home/dtopz/.cache/ethereum-execution-spec-tests/\n├── cached_downloads\n│   ├── ethereum\n│   │   └── execution-spec-tests\n│   │       ├── pectra-devnet-5%40v1.0.0\n│   │       │   └── fixtures_pectra-devnet-5\n│   │       ├── pectra-devnet-6%40v1.0.0\n│   │       │   └── fixtures_pectra-devnet-6\n│   │       ├── v4.0.0\n│   │       │   └── fixtures_develop\n│   │       ├── v4.1.0\n│   │       │   └── fixtures_develop\n│   │       ├── v4.2.0\n│   │       │   ├── fixtures_develop\n│   │       │   ├── fixtures_eip7692\n│   │       │   └── fixtures_stable\n│   │       ├── v4.3.0\n│   │       │   └── fixtures_develop\n│   │       └── v4.5.0\n│   │           └── fixtures_stable\n│   └── other\n└── release_information.json\n```\n\n## The Fixture Index File\n\nThe [`fill` command](../../filling_tests/index.md) generates a JSON file `<fixture_path>/.meta/index.json` that indexes the fixtures its generated. This index file is used by `consume` commands to allow fast collection of test subsets specified on the command-line, for example, via the `--sim.limit` flag. For help with `--sim.limit` when running `./hive`, see [Hive Common Options](../hive/common_options.md), for an overview of other available test selection flags when running `consume` directly, see [Useful Pytest Options](../useful_pytest_options.md).\n\n## CI-Friendly Behavior for Direct URLs\n\nWhen using direct GitHub release URLs (instead of version specifiers), the consume command automatically avoids unnecessary GitHub API calls to prevent rate limiting in CI environments:\n\n```console\nconsume cache --input=https://github.com/ethereum/execution-spec-tests/releases/download/v4.5.0/fixtures_stable.tar.gz\n```\n\n**API Call Behavior:**\n\n- ✅ **Direct URLs**: No API calls made, cleaner output (no \"Release page:\" line).\n- ℹ️ **Version specifiers**: API calls required to resolve versions, includes release page info.\n\nExamples:\n\n```console\n# No API calls - direct download\nconsume cache --input=https://github.com/ethereum/execution-spec-tests/releases/download/v4.5.0/fixtures_stable.tar.gz\n\n# API calls required - version resolution  \nconsume cache --input=stable@latest\n```\n"
  },
  {
    "path": "docs/running_tests/consume/direct.md",
    "content": "# The `consume direct` Command\n\nThe `direct` method provides the fastest way to test EVM functionality by executing tests directly through a client's dedicated test interface (e.g. [`statetest`](https://github.com/ethereum/go-ethereum/blob/4bb097b7ffc32256791e55ff16ca50ef83c4609b/cmd/evm/staterunner.go) or [`blocktest`](https://github.com/ethereum/go-ethereum/blob/35dd84ce2999ecf5ca8ace50a4d1a6abc231c370/cmd/evm/blockrunner.go)).\n\n```bash\nuv run consume direct --bin=<evm-binary> [OPTIONS]\n```\n\n- `--bin EVM_BIN`: Path to an evm executable that can process `StateTestFixture` and/or `BlockTestFixture` formats.\n- `--traces`: Collect execution traces from the evm executable.\n\n!!! warning \"Limited Client Support\"\n\n    Currently, only the following clients can be used with `consume direct`:\n\n    - go-ethereum `statetest` and `blocktest`\n    - Nethermind `nethtest`\n    - evmone `evmone-statetest` and `evmone-blockchaintest`\n\n## Advantages\n\n- **Speed**: Fastest test execution method.\n- **Simplicity**: No container or network overhead.\n- **Debugging**: Easy access to traces and logs.\n\n## Limitations\n\n- **Limited client support**: Only go-ethereum, Nethermind and evmone\n- **Module scope**: Tests EVM, respectively block import, in isolation, not full client behavior.\n- **Interface dependency**: Requires client-specific test interfaces.\n\n## Example Usage\n\nOnly run state tests (by using a mark filter, `-m`) from a local `fixtures` folder with go-ethereum:\n\n```bash\nuv run consume direct --input ./fixtures -m state_test --bin=evm\n```\n\nor Nethermind:\n\n```bash\nuv run consume direct --input ./fixtures -m state_test --bin=nethtest\n```\n\nor evmone:\n\n```bash\nuv run consume direct --input ./fixtures --bin=evmone-statetest --bin=evmone-blockchaintest\n```\n\nRun fixtures in the blockchain test format for the Prague fork:\n\n```bash\nuv run consume direct --input ./fixtures -m \"blockchain_test and Prague\" --bin=evm\n```\n\nTest selection via a regular expression match on collected fixture IDs:\n\n```bash\nuv run consume direct --input ./fixtures --sim.limit \".*push0.*\"\n```\n\nTest selection via [pytest keyword expression match](https://docs.pytest.org/en/8.3.x/how-to/usage.html):\n\n```bash\nuv run consume direct --input ./fixtures -k \"eip3855 or Prague\"\n```\n\nUse `--collect-only -q` to get a list of available test fixture IDs:\n\n```bash\nuv run consume direct --input ./fixtures -k \"eip3855 or Prague\" --collect-only -q\n```\n"
  },
  {
    "path": "docs/running_tests/consume/exceptions.md",
    "content": "# Exception Tests\n\n## Overview\n\nException tests validate that clients correctly reject invalid blocks and transactions with appropriate error messages. The Engine simulator provides advanced exception verification using client-specific mappers to handle varying error message formats across different clients.\n\n## How Exception Testing Works\n\n1. **Test fixtures specify expected exceptions** - Each test defines what error should occur\n2. **Clients reject invalid payloads** - Via Engine API or block import\n3. **Exception mappers translate errors** - Client-specific error messages are normalized\n4. **Test framework validates** - Ensures the correct exception type was raised\n\n## Client Exception Mappers\n\nEach client has unique error message formats. EEST maintains exception mappers that translate client-specific errors to standardized exception types.\n\n### Mapper Location\n\nException mappers are defined in the EEST codebase:\n\n- `src/ethereum_clis/clis/<client>.py` (e.g., `geth.py`, `besu.py`, `nethermind.py`)\n\n### Example Mapper Structure\n\n```python\n# Simplified example\nGETH_EXCEPTIONS = {\n    \"invalid block: gas limit reached\": ExceptionType.GAS_LIMIT_EXCEEDED,\n    \"block gas cost exceeds gas limit\": ExceptionType.GAS_LIMIT_EXCEEDED,\n    \"insufficient balance for transfer\": ExceptionType.INSUFFICIENT_BALANCE,\n}\n```\n\n## Updating Client Exception Messages\n\nWhen clients change their error messages or you encounter unmapped exceptions:\n\n### 1. Identify the Unmapped Exception\n\nRun the test and observe the actual error message:\n\n```bash\nuv run consume engine -k \"test_invalid_gas_limit\" -v\n```\n\nLook for output like:\n\n```text\nUnmapped exception from client 'go-ethereum': \"block gas cost exceeds limit: have 30000001, limit 30000000\"\n```\n\n### 2. Update the Exception Mapper\n\nEdit the client's exception mapper in `src/ethereum_clis/clis/<client>.py`:\n\n```python\n# In src/ethereum_clis/clis/geth.py\nclass GethCLI(TransitionTool):\n    exception_map = {\n        # Existing mappings...\n        \"block gas cost exceeds limit\": ExceptionType.GAS_LIMIT_EXCEEDED,  # New mapping\n    }\n```\n\n### 3. Test the Update\n\nRe-run the test to verify the exception is now properly mapped:\n\n```bash\nuv run consume engine -k \"test_invalid_gas_limit\" --disable-strict-exception-matching=false\n```\n\n### 4. Submit Changes\n\nCreate a pull request with:\n\n- Updated exception mappings\n- Test results showing the fix\n- Any relevant client version information\n\n## Disabling Strict Exception Matching\n\nFor development or when exception mappings are incomplete:\n\n```bash\n# Disable for specific clients\nuv run consume engine --disable-strict-exception-matching=nimbus-el\n```\n\n!!! warning \"Production Testing\"\n    Always enable strict exception matching for production test runs to ensure clients properly validate consensus rules.\n\n## Debugging Exception Test Failures\n\n### Check Client Logs\n\nEnable verbose client output:\n\n```bash\n./hive --sim ethereum/eest/consume-engine \\\n  --docker.output \\\n  --sim.loglevel 5\n```\n\n### Verify Exception Type\n\nEnsure the test expects the correct exception:\n\n```python\n# In test file\npost = {\n    address: Account(\n        balance=0,\n        storage={},\n        exception=TransactionException.INSUFFICIENT_BALANCE  # Expected exception\n    )\n}\n```\n\n### Test Without Exceptions\n\nTemporarily modify the test to see what happens without the invalid condition:\n\n```bash\n# Run specific test in isolation\nuv run consume engine -k \"test_name_without_invalid\"\n```\n\n## Contributing Exception Mappings\n\nWhen contributing new exception mappings:\n\n1. **Document the client version** - Exception messages may change between versions\n2. **Use regex patterns** - For flexible matching: `r\"gas limit.*exceeded\"`\n3. **Test multiple scenarios** - Ensure the pattern doesn't over-match\n4. **Add comments** - Explain non-obvious mappings\n\nExample contribution:\n\n```python\n# Besu v24.1.0+ changed gas limit error format\nBESU_EXCEPTIONS = {\n    # Old format (pre-24.1.0)\n    \"Transaction gas limit exceeds block gas limit\": ExceptionType.GAS_LIMIT_EXCEEDED,\n    # New format (24.1.0+)\n    r\"block gas limit \\(\\d+\\) exceeded by transaction\": ExceptionType.GAS_LIMIT_EXCEEDED,\n}\n```\n"
  },
  {
    "path": "docs/running_tests/consume/index.md",
    "content": "# The `consume` Command\n\nThe EEST `consume` command implements different methods to run EEST-generated test fixtures against clients:\n\n```bash\nuv run consume [OPTIONS] SUBCOMMAND [ARGS]...\n```\n\nFor help with installation, see [Installation](../../getting_started/installation.md).\n\nThis section provides help for running the EEST commands directly (as opposed to running as a `./hive` [standalone command](../hive/index.md), where applicable) see:\n\n1. [Consume Cache & Fixture Inputs](./cache.md) for how to specify `consume` fixture input.\n\n2. [Consume Direct](./direct.md) to run test fixtures against direct client interfaces.\n\n3. [Consume Simulators](./simulators.md) for help with Hive Simulators.\n"
  },
  {
    "path": "docs/running_tests/consume/simulators.md",
    "content": "# Consume Simulators\n\nThe `engine` and `rlp` simulators test clients by importing blocks through different interfaces. These simulators run within the Hive testing framework to provide containerized, isolated testing environments.\n\n## Command Syntax\n\n```bash\nuv run consume <engine|rlp> [OPTIONS]\n```\n\n## Relevant Information\n\n- To install the `consume` command, see [Installation](../../getting_started/installation.md).\n- Help [setting up](../hive/index.md) and [starting Hive in dev mode](../hive/dev_mode.md).\n- For an explanation of how the `consume` simulators work, see the [Engine](../running.md#engine) and [RLP](../running.md#rlp) sections in [Running Tests](../running.md).\n- Help for relevant options can be found in [Consume Cache and Fixture Inputs](./cache.md) and [Useful Pytest Options](../useful_pytest_options.md).\n"
  },
  {
    "path": "docs/running_tests/execute/eth_config.md",
    "content": "# Execute eth-config Command\n\nThe `execute eth-config` command is a specialized testing tool that validates an Ethereum client's configuration against expected network parameters using the `eth_config` RPC endpoint as specified by [EIP-7910](https://eips.ethereum.org/EIPS/eip-7910).\n\nThe goal is to test baked-in configurations primarily but it can be used to test that genesis and config files were successfully parsed, in devnets for example.\n\n## Overview\n\nThis command verifies that a client is correctly configured for a specific network by checking:\n\n- Current fork configuration.\n- Fork activation times.\n- Chain ID.\n- Precompile addresses.\n- System contract addresses.\n\n## Usage\n\n### Standalone, Direct Usage\n\nThe `eth-config` sub-command can be ran directly, without cloning @ethereum/execution-spec-tests, by [installing uv](https://docs.astral.sh/uv/getting-started/installation/) and running:\n\n```bash\nuv run --with git+https://github.com/ethereum/execution-spec-tests.git execute eth-config --network Mainnet --rpc-endpoint http://<ETH_RPC_ENDPOINT>\n```\n\n### From within the EEST Repository\n\n```bash\nuv run execute eth-config --network <NETWORK_NAME> --rpc-endpoint <RPC_URL> [OPTIONS]\n```\n\n### Required Arguments\n\n- `--rpc-endpoint`: RPC endpoint URL of the execution client to test\n\n### Optional Arguments\n\n- `--network`: Name of the network to verify (e.g., `Mainnet`, `Sepolia`, `Holesky`, `Hoodi`) - required when not using genesis config flags\n- `--network-config-file`: Path to a custom YAML file containing network configurations (defaults to `src/pytest_plugins/execute/eth_config/networks.yml`)\n- `--genesis-config-file`: Path to a genesis JSON file from which a custom network configuration must be derived\n- `--genesis-config-url`: URL to a genesis JSON file from which a custom network configuration must be derived\n\n**Note**: You cannot specify both `--network` and genesis config flags (`--genesis-config-file` or `--genesis-config-url`) at the same time. You also cannot specify both `--genesis-config-file` and `--genesis-config-url` simultaneously.\n\n## Examples\n\n### Testing a Mainnet Client\n\n```bash\nuv run execute eth-config --network Mainnet --rpc-endpoint http://localhost:8545\n```\n\n### Testing a Sepolia Client\n\n```bash\nuv run execute eth-config --network Sepolia --rpc-endpoint http://localhost:8545\n```\n\n### Using a Custom Network Configuration\n\n```bash\nuv run execute eth-config --network MyCustomNet --rpc-endpoint http://localhost:8545 --network-config-file ./my-networks.yml\n```\n\n### Using a Genesis JSON File\n\n```bash\nuv run execute eth-config --genesis-config-file ./genesis.json --rpc-endpoint http://localhost:8545\n```\n\n### Using a Genesis JSON URL\n\n```bash\nuv run execute eth-config --genesis-config-url https://example.com/genesis.json --rpc-endpoint http://localhost:8545\n```\n\n## Network Configuration File Format\n\nThe network configuration file is a YAML file that defines the parameters for each network. Here's the structure:\n\n```yaml\nMyCustomNet:\n  chainId: 0xabcd                 # Chain ID in hex\n  genesisHash: 0xd4e5674...       # Genesis block hash\n  forkActivationTimes:            # Fork activation block numbers/times\n    0: Cancun                     # Genesis fork, it must be the latest fork activated in the genesis\n    1742999832: Prague\n    1742999833: Osaka\n  bpoForkActivationTimes:         # Optional: Blob parameter only fork definitions\n    1742999834:\n        target: 9\n        max: 12\n        base_fee_update_fraction: 5007716\n    1742999835:\n        target: 12\n        max: 15\n        base_fee_update_fraction: 5007716\n  addressOverrides:               # Optional: Override addresses for precompiles/contracts\n    0x00000000219ab540...: 0x7f02c3e3c98b133...\n```\n\n### Supported Networks\n\nThe default configuration file includes:\n\n- **Mainnet**: Ethereum mainnet.\n- **Sepolia**: Public testnet.\n- **Hoodi**: Public testnet.\n- **Holesky**: Public testnet.\n\n## How It Works\n\n1. **Configuration Loading**: The command loads the network configuration from the YAML file.\n2. **RPC Connection**: Connects to the specified client RPC endpoint.\n3. **eth_config Call**: Calls the `eth_config` RPC method to get the client's current configuration.\n4. **Validation**: Compares the client's response against the expected configuration based on:\n   - Current system timestamp.\n   - Fork activation schedule.\n   - Address overrides (if any).\n\n## `eth_config` Expected Response Details\n\nSee [EIP-7910](https://eips.ethereum.org/EIPS/eip-7910) for the expected response description.\n"
  },
  {
    "path": "docs/running_tests/execute/hive.md",
    "content": "# Executing Tests on a Hive Local Network\n\nTests can be executed on a local hive-controlled single-client network by running the `execute hive` command.\n\n## The `eest/execute-blobs` Simulator\n\nThe `blob_transaction_test` execute test spec sends blob transactions to a running client in order to verify its `engine_getBlobsVX` endpoint behavior. These tests can be run using:\n\n```bash\n./hive --client besu --client-file ./configs/osaka.yaml --sim ethereum/eest/execute-blobs\n```\n\nSee [Hive](../hive/index.md) for help installing and configuring Hive.\n\n## Running `execute` tests with Hive in Dev Mode\n\nThis command requires hive to be running in `--dev` mode:\n\n```bash\n./hive --dev --client go-ethereum\n```\n\nThis will start hive in dev mode with the single go-ethereum client available for launching tests.\n\nThen the tests can be executed by setting the `HIVE_SIMULATOR` environment variable\n\n```bash\nexport HIVE_SIMULATOR=http://127.0.0.1:3000\n```\n\nand running:\n\n```bash\nuv run execute hive --fork=Cancun\n```\n\nIf the command above leads to errors such as `ImportError: Error importing plugin \"pytest_plugins.execute.rpc.hive\": No module named 'hive.client'` run the following to fix it: `uv run eest clean --all`.\n\nThis will execute all available tests in the `tests` directory on the `Cancun` fork by connecting to the hive server running on `http://127.0.0.1:3000` and launching a single client with the appropriate genesis file.\n\nThe genesis file is passed to the client with the appropriate configuration for the fork schedule, system contracts and pre-allocated seed account.\n\nAll tests will be executed in the same network, in the same client, and serially, but when the `-n auto` parameter is passed to the command, the tests can also be executed in parallel.\n\nOne important feature of the `execute hive` command is that, since there is no consensus client running in the network, the command drives the chain by the use of the Engine API to prompt the execution client to generate new blocks and include the transactions in them.\n"
  },
  {
    "path": "docs/running_tests/execute/index.md",
    "content": "# Executing Tests on Local Networks or Hive\n\n@ethereum/execution-spec-tests is capable of running tests on local networks or on Hive with a few considerations. The `execute` command runs test cases directly from the Python source (without the use of JSON fixtures).\n\nSee:\n\n- [Execute Hive](./hive.md) for help with the `execute` simulator in order to run tests on a single-client local network.\n- [Execute Remote](./remote.md) for help with executing tests on a remote network such as a devnet, or even mainnet.\n- [Execute Eth Config](./eth_config.md) for help verifying client configurations on a remote network such as a devnet, or even mainnet.\n- [Transaction Metadata](./transaction_metadata.md) for detailed information about transaction metadata tracking in execute mode.\n\nThe rest of this page describes how `execute` works and explains its architecture.\n\n## The `execute` command and `pytest` plugin\n\nThe `execute` command is capable of parsing and executing all tests in the `./tests` directory, collect the transactions it requires, send them to a client connected to a network, wait for the network to include them in a block and, finally, check the resulting state of the involved smart-contracts against the expected state to validate the behavior of the clients.\n\nIt will not check for the state of the network itself, only the state of the smart-contracts, accounts and transactions involved in the tests, so it is possible that the network becomes unstable or forks during the execution of the tests, but this will not be detected by the command.\n\nThe way this is achieved is by using a pytest plugin that will collect all the tests the same way as the fill plugin does, but instead of compiling the transactions and sending them as a batch to the transition tool, they are prepared and sent to the client one by one.\n\nBefore sending the actual test transactions to the client, the plugin uses a special pre-allocation object that collects the contracts and EOAs that are used by the tests and, instead of pre-allocating them in a dictionary as the fill plugin does, it sends transactions to deploy contracts or fund the accounts for them to be available in the network.\n\nThe pre-allocation object requires a seed account with funds available in the network to be able to deploy contracts and fund accounts. In the case of a live remote network, the seed account needs to be provided via a command-line parameter, but in the case of a local hive network, the seed account is automatically created and funded by the plugin via the genesis file.\n\nAt the end of each test, the plugin will also check the remaining balance of all accounts and will attempt to automatically recover the funds back to the seed account in order to execute the following tests.\n\n## Differences between the `fill` and `execute` plugins\n\nThe test execution with the `execute` plugin is different from the `fill` plugin in a few ways:\n\n### EOA and Contract Addresses\n\nThe `fill` plugin will pre-allocate all the accounts and contracts that are used in the tests, so the addresses of the accounts and contracts will be known before the tests are executed, Further more, the test contracts will start from the same address on different tests, so there are collisions on the account addresses used across different tests. This is not the case with the `execute` plugin, as the accounts and contracts are deployed on the fly, from sender keys that are randomly generated and therefore are different in each execution.\n\nReasoning behind the random generation of the sender keys is that one can execute the same test multiple times in the same network and the plugin will not fail because the accounts and contracts are already deployed.\n\n### Transactions Gas Price\n\nThe `fill` plugin will use a fixed and minimum gas price for all the transactions it uses for testing, but this is not possible with the `execute` plugin, as the gas price is determined by the current state of the network.\n\nAt the moment, the `execute` plugin does not query the client for the current gas price, but instead uses a fixed increment to the gas price in order to avoid the transactions to be stuck in the mempool.\n"
  },
  {
    "path": "docs/running_tests/execute/remote.md",
    "content": "# Running Test on a Live Remote Network\n\nTests can be executed on a live remote network by running the `execute remote` command.\n\nThe command requires the `--fork` flag which must match the fork that is currently active in the network (fork transition tests are not supported yet).\n\nThe `execute remote` command requires to be pointed to an RPC endpoint of a client that is connected to the network, which can be specified by using the `--rpc-endpoint` flag:\n\n```bash\nuv run execute remote --fork=Prague --rpc-endpoint=https://rpc.endpoint.io\n```\n\nAnother requirement is that the command is provided with a seed account that has funds available in the network to deploy contracts and fund accounts. This can be done by setting the `--rpc-seed-key` flag:\n\n```bash\nuv run execute remote --fork=Prague --rpc-endpoint=https://rpc.endpoint.io --rpc-seed-key 0x000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\n```\n\nThe value needs to be a private key that is used to sign the transactions that deploy the contracts and fund the accounts.\n\nOne last requirement is that the `--rpc-chain-id` flag is set to the chain id of the network that is being tested:\n\n```bash\nuv run execute remote --fork=Prague --rpc-endpoint=https://rpc.endpoint.io --rpc-seed-key 0x000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f --rpc-chain-id 12345\n```\n\n## Engine RPC Endpoint (Optional)\n\nBy default, the `execute remote` command assumes that the execution client is connected to a beacon node and the chain progresses automatically. However, you can optionally specify an Engine RPC endpoint to drive the chain manually when new transactions are submitted.\n\nTo use this feature, you need to provide both the `--engine-endpoint` and JWT authentication:\n\n```bash\nuv run execute remote --fork=Prague --rpc-endpoint=https://rpc.endpoint.io --rpc-seed-key 0x000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f --rpc-chain-id 12345 --engine-endpoint=https://engine.endpoint.io --engine-jwt-secret \"your-jwt-secret-here\"\n```\n\nAlternatively, you can provide the JWT secret from a file:\n\n```bash\nuv run execute remote --fork=Prague --rpc-endpoint=https://rpc.endpoint.io --rpc-seed-key 0x000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f --rpc-chain-id 12345 --engine-endpoint=https://engine.endpoint.io --engine-jwt-secret-file /path/to/jwt-secret.txt\n```\n\nThe JWT secret file must contain only the JWT secret as a hex string.\n\nWhen an engine endpoint is provided, the test execution will use the Engine API to create new blocks and include transactions, giving you full control over the chain progression.\n\nThe `execute remote` command will connect to the client via the RPC endpoint and will start executing every test in the `./tests` folder in the same way as the `execute hive` command, but instead of using the Engine API to generate blocks, it will send the transactions to the client via the RPC endpoint.\n\nIt is recommended to only run a subset of the tests when executing on a live network. To do so, a path to a specific test can be provided to the command:\n\n```bash\nuv run execute remote --fork=Prague --rpc-endpoint=https://rpc.endpoint.io --rpc-seed-key 0x000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f --rpc-chain-id 12345 ./tests/prague/eip7702_set_code_tx/test_set_code_txs.py::test_set_code_to_sstore\n```\n\n## Address Stubs for Pre-deployed Contracts\n\nWhen running tests on networks that already have specific contracts deployed (such as mainnet or testnets with pre-deployed contracts), you can use the `--address-stubs` flag to specify these contracts instead of deploying new ones.\n\nAddress stubs allow you to map contract labels used in tests to actual addresses where those contracts are already deployed on the network. This is particularly useful for:\n\n- Testing against mainnet with existing contracts (e.g., Uniswap, Compound)\n- Using pre-deployed contracts on testnets\n- Testing on bloat-net, a network containing pre-existing contracts with extensive storage history\n- Avoiding redeployment of large contracts to save gas and time\n\n### Using Address Stubs\n\nYou can provide address stubs in several formats:\n\n**JSON string:**\n\n```bash\nuv run execute remote --fork=Prague --rpc-endpoint=https://rpc.endpoint.io --rpc-seed-key 0x000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f --rpc-chain-id 12345 --address-stubs '{\"DEPOSIT_CONTRACT\": \"0x00000000219ab540356cbb839cbe05303d7705fa\", \"UNISWAP_V3_FACTORY\": \"0x1F98431c8aD98523631AE4a59f267346ea31F984\"}'\n```\n\n**JSON file:**\n\n```bash\nuv run execute remote --fork=Prague --rpc-endpoint=https://rpc.endpoint.io --rpc-seed-key 0x000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f --rpc-chain-id 12345 --address-stubs ./contracts.json\n```\n\n**YAML file:**\n\n```bash\nuv run execute remote --fork=Prague --rpc-endpoint=https://rpc.endpoint.io --rpc-seed-key 0x000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f --rpc-chain-id 12345 --address-stubs ./contracts.yaml\n```\n\n### Address Stubs File Format\n\n**JSON format (contracts.json):**\n\n```json\n{\n  \"DEPOSIT_CONTRACT\": \"0x00000000219ab540356cbb839cbe05303d7705fa\",\n  \"UNISWAP_V3_FACTORY\": \"0x1F98431c8aD98523631AE4a59f267346ea31F984\",\n  \"COMPOUND_COMPTROLLER\": \"0x3d9819210A31b4961b30EF54bE2aeD79B9c9Cd3B\"\n}\n```\n\n**YAML format (contracts.yaml):**\n\n```yaml\nDEPOSIT_CONTRACT: 0x00000000219ab540356cbb839cbe05303d7705fa\nUNISWAP_V3_FACTORY: 0x1F98431c8aD98523631AE4a59f267346ea31F984\nCOMPOUND_COMPTROLLER: 0x3d9819210A31b4961b30EF54bE2aeD79B9c9Cd3B\n```\n\n### How Address Stubs Work\n\nWhen a test deploys a contract using `pre.deploy_contract(..., stub=\"NAME\")` and the stub name matches a key in the address stubs, the test framework will:\n\n1. Use the pre-deployed contract at the specified address instead of deploying a new contract\n2. Skip the contract deployment transaction, saving gas and time\n3. Use the existing contract's code and state for the test\n\nThis is particularly useful when testing interactions with well-known contracts that are expensive to deploy or when you want to test against the actual deployed versions of contracts.\n\nIf the address is _not_ present in the stubbed addresses list, the test will fail to execute.\n\nIf the address contained in the stubbed addresses list does not contain code on the remote chain, the test will fail.\n\nThe pre-alloc will be populated with live information from the chain, so the following lines will result in up-to-date information:\n\n```python\nmy_stubbed_contract = pre.deploy_contract(code, stub=\"uniswap\")\npre[my_stubbed_contract].nonce  # Actual nonce of the contract on chain\npre[my_stubbed_contract].balance  # Actual balance of the contract on chain\n```\n\n### Bloat-net Testing\n\nAddress stubs are especially valuable when testing on **bloat-net**, a specialized network that contains pre-existing contracts with extensive storage history. On bloat-net:\n\n- Contracts have been deployed and used extensively, accumulating large amounts of storage data\n- The storage state represents real-world usage patterns with complex data structures\n- Redeploying these contracts would lose the valuable historical state and storage bloat\n\nUsing address stubs on bloat-net allows you to:\n\n- Test against contracts with realistic storage bloat patterns\n- Preserve the complex state that has been built up over time\n- Avoid the computational and storage costs of recreating this state\n- Test edge cases that only emerge with large, real-world storage datasets\n\n## Transaction Metadata on Remote Networks\n\nWhen executing tests on remote networks, all transactions include metadata that helps with debugging and monitoring. This metadata is embedded in the RPC request ID and includes:\n\n- **Test identification**: Each transaction is tagged with the specific test being executed\n- **Execution phase**: Transactions are categorized as setup, testing, or cleanup\n- **Action tracking**: Specific actions like contract deployment, funding, or refunding are tracked\n- **Target identification**: The account or contract being targeted is labeled\n\nThis metadata is particularly useful when debugging test failures on live networks, as it allows you to correlate blockchain transactions with specific test operations and phases.\n\nSee [Transaction Metadata](./transaction_metadata.md) for details.\n\n## `execute` Command Test Execution\n\nThe `execute remote` and `execute hive` commands first creates a random sender account from which all required test accounts will be deployed and funded, and this account is funded by sweeping (by default) this \"seed\" account.\n\nThe sweep amount can be configured by setting the `--seed-account-sweep-amount` flag:\n\n```bash\n--seed-account-sweep-amount \"1000 ether\"\n```\n\nOnce the sender account is funded, the command will start executing tests one by one by sending the transactions from this account to the network.\n\nTest transactions are not sent from the main sender account though, they are sent from a different unique account that is created for each test (accounts returned by `pre.fund_eoa`).\n\n### Use with Parallel Execution\n\nIf the `execute` is run using the `-n=N` flag (respectively `--sim-parallelism=N`), n>1, the tests will be executed in parallel, and each process will have its own separate sender account, so the amount that is swept from the seed account is divided by the number of processes, and this has to be taken into account when setting the sweep amount and also when funding the seed account.\n\nAfter finishing each test the command will check the remaining balance of all accounts and will attempt to recover the funds back to the sender account, and at the end of all tests, the remaining balance of the sender account will be swept back to the seed account.\n\nThere are instances where it will be impossible to recover the funds back from a test, for example, funds that are sent to a contract that has no built-in way to send them back, the funds will be stuck in the contract and they will not be recoverable.\n"
  },
  {
    "path": "docs/running_tests/execute/transaction_metadata.md",
    "content": "# Transaction Metadata in Execute Mode\n\nThe `execute` plugin automatically adds metadata to all transactions it sends to the network. This feature was introduced to improve debugging, monitoring, and transaction tracking capabilities.\n\n## Overview\n\nTransaction metadata provides context about each transaction sent during test execution, making it easier to:\n\n- Debug test failures by correlating blockchain transactions with test operations\n- Monitor test execution patterns and performance\n- Track transaction flow across different phases of test execution\n- Identify which transactions belong to which tests and phases\n\n## Metadata Structure\n\nEach transaction includes a `TransactionTestMetadata` object with the following fields:\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `testId` | `str` | The unique identifier of the test being executed (pytest node ID) |\n| `phase` | `str` | The execution phase: `setup`, `testing`, or `cleanup` |\n| `action` | `str` | The specific action being performed (e.g., `deploy_contract`, `fund_eoa`) |\n| `target` | `str` | The label of the account or contract being targeted |\n| `txIndex` | `int` | The index of the transaction within its phase |\n\n## Transaction Phases\n\n### Setup Phase (`setup`)\n\nTransactions that prepare the test environment:\n\n- **`deploy_contract`**: Contract deployment transactions\n- **`fund_eoa`**: Funding EOAs with initial balances\n- **`eoa_storage_set`**: Setting storage values for EOAs\n- **`fund_address`**: Funding specific addresses\n\n### Testing Phase (`testing`)\n\nThe actual test transactions defined by the test:\n\n- User-defined test transactions\n- Blob testing transactions\n\n### Cleanup Phase (`cleanup`)\n\nTransactions that clean up after the test:\n\n- **`refund_from_eoa`**: Refunding EOAs back to the sender account\n\n## Example Metadata\n\n```json\n{\n  \"testId\": \"tests/example_test.py::test_example\",\n  \"phase\": \"setup\",\n  \"action\": \"deploy_contract\",\n  \"target\": \"contract_label\",\n  \"txIndex\": 0\n}\n```\n\n## Debugging Test Failures\n\nWhen a test fails on a remote network, you can use the transaction metadata to:\n\n1. Identify which transactions belong to the failing test\n2. Determine which phase of execution failed\n3. Correlate blockchain transactions with specific test operations\n\nThe ID will normally be printed in the client logs when execute is running tests against the client, but the logging level might need to be increased for some of the clients (`--sim.loglevel` when running with hive).\n\n## Technical Notes\n\n- Metadata is automatically handled by the execute plugin\n- No additional configuration is required\n- Metadata is embedded in RPC requests without affecting transaction execution\n- The feature is backward compatible and doesn't change test behavior\n"
  },
  {
    "path": "docs/running_tests/hive/ci_integration.md",
    "content": "# Continuous Integration and Automated Testing\n\nThe Ethereum Foundation maintains continuous testing infrastructure:\n\n- **Production results**: [hive.ethpandaops.io](https://hive.ethpandaops.io)\n- **GitHub Actions**: [ethpandaops/hive-github-action](https://github.com/ethpandaops/hive-github-action)\n"
  },
  {
    "path": "docs/running_tests/hive/client_config.md",
    "content": "# Client Configuration Guide\n\nClients ran in Hive are configured via the following `./hive` options:\n\n1. `--client-file=client_config.yaml`: Specifies a YAML file defining which and how clients are built.\n2. `--client=client1,client2`: Selects a subset of clients to run from the YAML via `nametag`.\n\n## Client YAML File Format\n\nMultiple client configurations can be defined as a list in a client YAML file with the following structure:\n\n```yaml\n- client: <client-name-1>\n  nametag: <unique-identifier>\n  dockerfile: <dockerfile-variant>\n  build_args:\n    <key>: <value>\n    ...\n- client: <client-name-2>\n  ...\n```\n\n## Client Build Variants\n\nHive runs client images in Docker containers. There are three different ways to specify how a client image should be built:\n\n| Dockerfile | Purpose | Example Usage |\n|------------|---------|---------------|\n| `Dockerfile` | Default production build | `dockerfile: \"\"` (default) |\n| `Dockerfile.git` | Clone from Github and build from source | `dockerfile: git` |\n| `Dockerfile.local` | Build from local source | `dockerfile: local` |\n\nThese Dockerfiles are maintained for each supported client in @ethereum/hive in the [`./clients/`](https://github.com/ethereum/hive/tree/master/clients) subfolder.\n\n### Production Image\n\nA pre-built image can be specified, for example, for Besu with:\n\n```yaml\n- client: besu\n  nametag: pectra\n  build_args:\n    baseimage: hyperledger/besu\n    tag: 25.4.1\n```\n\n### Git Dockerfile\n\n\"Git Dockerfiles\" clone a branch of the client from Github and build it from source, for example:\n\n```yaml\n- client: go-ethereum\n  nametag: experimental\n  dockerfile: git\n  build_args:\n    github: your-username/go-ethereum\n    tag: experimental-branch\n```\n\n### Using A \"Local Dockerfile\"\n\n\"Local Dockerfiles\" can be used to build a client from local source for testing local modifications:\n\n```yaml\n- client: go-ethereum\n  nametag: local-dev\n  dockerfile: local\n  build_args:\n    local_path: ./clients/go-ethereum/go-ethereum-local\n```\n\nThis requires copying the local client source code to the Hive directory:\n\n```bash\ncp -r /path/to/your/go-ethereum ./clients/go-ethereum/go-ethereum-local\n```\n\n### Required Fields\n\n- **`client`**: Must match a directory name in `clients/` within the Hive repository\n- **`nametag`**: Unique identifier for this client configuration\n\n### Optional Fields\n\n- **`dockerfile`**: Alternative Dockerfile to use (default: `Dockerfile`)\n- **`build_args`**: Docker build arguments passed to the Dockerfile\n\n## Build Arguments\n\n### Common Build Arguments\n\n| Argument | Description | Example |\n|----------|-------------|---------|\n| `tag` | Git commit/tag/branch or Docker tag | `master`, `v1.13.8`, `latest` |\n| `github` | GitHub repository for source builds | `ethereum/go-ethereum` |\n| `baseimage` | Docker Hub image for binary builds | `ethereum/client-go` |\n\n## Troubleshooting\n\n### Build Issues\n\nForce rebuild base images:\n\n```bash\n./hive --docker.pull --sim ethereum/eest/consume-engine\n```\n\nForce rebuild specific client:\n\n```bash\n./hive --docker.nocache \"clients/go-ethereum\" --sim ethereum/eest/consume-engine\n```\n\nShow the docker container build output:\n\n```bash\n./hive --docker.buildoutput --sim ethereum/eest/consume-engine\n```\n"
  },
  {
    "path": "docs/running_tests/hive/common_options.md",
    "content": "# Common Simulator Options\n\nAll EEST Hive simulators share common command-line options and patterns.\n\n## Basic Usage\n\nWhile they may be omitted, it's recommended to specify the `fixtures` and `branch` simulator build arguments when running EEST simulators.\n\nFor example, this runs \"stable\" fixtures from the v4.3.0 [latest stable release](../releases.md#standard-releases) and builds the simulator at the v4.3.0 tag:\n\n```bash\n./hive --sim ethereum/eest/consume-engine \\\n  --sim.buildarg fixtures=stable@v4.3.0 \\\n  --sim.buildarg branch=v4.3.0 \\\n  --client go-ethereum\n```\n\n## Test Selection\n\nRun a subset of tests by filtering tests using `--sim.limit=<regex>` to perform a regular expression match against test IDs:\n\n```bash\n./hive --sim ethereum/eest/consume-engine --sim.limit \".*eip4844.*\"\n```\n\n### Collect Only/Dry-Run\n\nThe `collectonly:` prefix can be used to inspect which tests would match an expression (dry-run), `--docker.output` must be specified to see the simulator's collection result:\n\n```bash\n./hive --sim ethereum/eest/consume-engine \\\n     --sim.buildarg fixtures=stable@v4.3.0 \\\n     --sim.buildarg branch=v4.3.0 \\\n     --docker.output \\\n     --sim.limit=\"collectonly:.*eip4844.*\"\n```\n\n### Exact test ID Match\n\nThe `id:` prefix can be used to select a single test via its ID (this will automatically escape any special characters in the test case ID):\n\n```console\n./hive --sim ethereum/eest/consume-engine \\\n     --sim.buildarg fixtures=stable@v4.3.0 \\\n     --sim.buildarg branch=v4.3.0 \\\n     --docker.output \\\n     --sim.limit \"id:tests/cancun/eip4844_blobs/test_blob_txs.py::test_sufficient_balance_blob_tx\"\n```\n\n### Parallelism\n\nTo run multiple tests in parallel, use `--sim.parallelism`:\n\n```bash\n./hive --sim ethereum/eest/consume-rlp --sim.parallelism 4\n```\n\n### Output Options\n\nSee hive log output in the console:\n\n```bash\n./hive --sim ethereum/eest/consume-engine --sim.loglevel 5\n```\n\n### Container Issues\n\nIncrease client timeout:\n\n```bash\n./hive --client.checktimelimit=180s --sim ethereum/eest/consume-engine\n```\n"
  },
  {
    "path": "docs/running_tests/hive/dev_mode.md",
    "content": "# Hive Development Mode\n\nThis section explains how to run EEST simulators using their EEST commands, e.g., `uv run consume engine`, against a Hive \"development\" server as apposed to using the standalone `./hive` command.\n\nThis avoids running the simulator in a dockerized environment and has several advantages:\n\n1. A local directory containing fixtures can be specified (`--input=./fixtures/`).\n2. Allows dropping into a Python debugger (via `--pdb`) upon test failure to inspect the response or ssh to the client container.\n3. Provides access to a larger set of the simulator's command-line options,\n4. Runs are faster; there are no docker image rebuilds in between runs. In particular, modifications to the simulator do not require a an image rebuild.\n\n## Platform Support\n\n- Linux: Direct development mode supported.\n- macOS: Must be ran from a Linux environment or use a Docker-based workaround (see macOS Setup).\n\n## Quick Start\n\n### Prerequisites\n\n- EEST is installed, see [Installation](../../getting_started/installation.md)\n- Hive is built, see [Hive](../hive/index.md#quick-start).\n\n## Hive Dev Setup on Linux\n\n1. Start Hive in development mode, e.g.:\n\n    ```bash\n    ./hive --dev --client go-ethereum --client-file clients.yaml --docker.output\n    ```\n\n2. In a separate shell, configure environment for EEST:\n\n    === \"bash/zsh\"\n\n        ```bash\n        export HIVE_SIMULATOR=http://127.0.0.1:3000\n        ```\n\n    === \"fish\"\n\n        ```console\n        set -x HIVE_SIMULATOR http://127.0.0.1:3000\n        ```\n\n3. Run EEST consume commands\n\n    ```bash\n    uv run consume engine --input ./fixtures -k \"test_chainid\"\n    uv run consume rlp --input stable@latest\n    ```\n\n## Hive Dev Setup on macOS\n\nDue to Docker running within a VM on macOS, the host machine and Docker containers don't share the same network namespace, preventing direct communication with Hive's development server. To run development mode on macOS, you have the following options:\n\n1. Linux VM: Run a Linux virtual machine on your macOS and execute the standard development workflow above from within the VM.\n2. Remote Linux: SSH into a remote Linux environment (server or cloud instance) and run development mode there.\n3. **Docker Development Image**: Create a containerized EEST environment that runs within Docker's network namespace (recommended).\n\nThe following section details the setup and usage of option 3.\n\n### EEST Docker Development Image\n\nWithin the [`eest/`](https://github.com/ethereum/hive/tree/master/simulators/ethereum/eest) directory of hive, a new dockerfile must be created: `Dockerfile.dev`, with the following contents:\n\n```docker\nFROM ghcr.io/astral-sh/uv:python3.12-bookworm-slim\nARG branch=main\nENV GIT_REF=${branch} \n\nRUN apt-get update && apt-get install -y git\nRUN git init execution-spec-tests && \\\n    cd execution-spec-tests && \\\n    git remote add origin https://github.com/ethereum/execution-spec-tests.git && \\\n    git fetch --depth 1 origin $GIT_REF && \\\n    git checkout FETCH_HEAD;\n\nWORKDIR /execution-spec-tests\nRUN uv sync\nENTRYPOINT [\"/bin/bash\"]\n```\n\nThis dockerfile will be our entry point for running EEST commands.\n\n### `eest/` Hive Directory Structure\n\n```tree\n├── eest\n│   ├── Dockerfile.dev\n│   ├── consume-block-rlp\n│   │   └── Dockerfile\n│   └── consume-engine\n│       └── Dockerfile\n```\n\n### Running Consume\n\n1. Get your local IP address:\n\n    ```bash\n    ipconfig getifaddr en0\n    ```\n\n2. Start Hive in development mode with your local IP:\n\n    ```bash\n    ./hive --dev --dev.addr <LOCAL_IP>:3000 --client go-ethereum --client-file clients.yaml \n    ```\n\n3. In a separate terminal session, build the EEST development image:\n\n    ```bash\n    cd simulators/ethereum/eest/\n    docker build -t macos-consume-dev -f Dockerfile.dev .\n    ```\n\n4. Run the container with the Hive simulator environment:\n\n    ```bash\n    docker run -it -e HIVE_SIMULATOR=http://<LOCAL_IP>:3000 macos-consume-dev\n    ```\n\n5. Inside the Docker container, run consume commands:\n\n    ```bash\n    uv run consume engine -v\n    ```\n\n## How Development Mode Works\n\nWhen Hive runs in dev mode:\n\n1. Starts the Hive API server (default: `http://127.0.0.1:3000`).\n2. Builds and maintains client containers.\n3. Keeps the Hive Proxy container running between test executions.\n4. Waits for external simulator connections via the API.\n\nThis allows EEST's consume commands to connect to the running Hive instance and execute tests interactively.\n\n## More Options Available\n\nThere are many useful native pytest options available in dev mode, see [Useful Options](../useful_pytest_options.md).\n\n### Custom API Endpoint\n\nSpecify a custom address and port via `--dev.addr`:\n\n```bash\n./hive --dev \\\n  --dev.addr 127.0.0.1:5000 \\\n  --client reth \\\n  --client-file clients.yaml\n```\n\nThen connect with:\n\n```bash\nexport HIVE_SIMULATOR=http://127.0.0.1:5000\n```\n"
  },
  {
    "path": "docs/running_tests/hive/hiveview.md",
    "content": "# Viewing Results\n\nBuild the result viewer `hiveview`:\n\n```bash\ngo build ./cmd/hiveview\n```\n\nStart the server:\n\n```bash\n./hiveview --serve\n```\n"
  },
  {
    "path": "docs/running_tests/hive/index.md",
    "content": "# Hive\n\n@ethereum/hive is a containerized testing framework that helps orchestrate test execution against Ethereum clients. Hive is incredibly extensible; new test suites can be implemented in a module manner as \"simulators\" that interact with clients to test certain aspects of their behavior. EEST implements several simulators, see [Running Tests](../running.md) for an overview.\n\n## Quick Start\n\n### Prerequisites\n\n1. Docker: <https://docs.docker.com/get-docker/>.\n2. Golang 1.22+: <https://go.dev/doc/install>.\n\n### Installation\n\nClone @ethereum/hive and build the `./hive` command:\n\n```bash\ngit clone https://github.com/ethereum/hive\ncd hive\ngo build .\n```\n"
  },
  {
    "path": "docs/running_tests/index.md",
    "content": "# Running Tests\n\nThis section documents how EL clients can run EEST tests to verify their implementations. The information is organized as follows:\n\n1. **[Methods of Running Tests](./running.md):** A detailed overview and comparison.\n\n2. **[EEST Fixture Releases](./releases.md):** The available release types; release versioning.\n\n3. **[Test Fixture Specifications](./test_formats/index.md)** and guides to implement direct consumer interfaces.\n\n4. **[Hive](./hive/index.md):** Help running EEST Hive simulators.\n\n5. **[Consume](./consume/index.md):** Commands that help clients run tests by consuming test fixtures.\n\n6. **[Execute](./execute/index.md):** Commands that help clients run tests by executing test source.\n"
  },
  {
    "path": "docs/running_tests/releases.md",
    "content": "# EEST Fixture Releases\n\n## Formats and Release Layout\n\n@ethereum/execution-spec-tests releases contain JSON test fixtures in various formats. Note that transaction type tests are executed directly from Python source using the [`execute`](./execute/index.md) command.\n\n| Format                                                               | Consumed by the client                                                                                                                                                                                                                                                                    | Location in `.tar.gz` release                                       |\n| -------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------- |\n| [State Tests](./test_formats/state_test.md)                         | - directly via a `statetest`-like command<br/> (e.g., [go-ethereum/cmd/evm/staterunner.go](https://github.com/ethereum/go-ethereum/blob/4bb097b7ffc32256791e55ff16ca50ef83c4609b/cmd/evm/staterunner.go))                                                                                 | `./fixtures/state_tests/`                                           |\n| [Blockchain Tests](./test_formats/blockchain_test.md)               | - directly via a `blocktest`-like command<br/> (e.g., [go-ethereum/cmd/evm/blockrunner.go](https://github.com/ethereum/go-ethereum/blob/4bb097b7ffc32256791e55ff16ca50ef83c4609b/cmd/evm/blockrunner.go))</br>- using the [RLPeest/consume-rlp Simulator](./running.md#rlp) via block import | `./fixtures/blockchain_tests/`                                      |\n| [Blockchain Engine Tests](./test_formats/blockchain_test_engine.md) | - using the [eest/consume-engine Simulator](./running.md#engine) and the Engine API                                                                                                                                                                                                          | `./fixtures/blockchain_tests_engine/`                               |\n| [Transaction Tests](./test_formats/transaction_test.md)             | - using a new simulator coming soon                                                                                                                                                                                                                                                       | None; executed directly from Python source,</br>using a release tag |\n| Blob Transaction Tests                                               | - using the [eest/execute-blobs Simulator](./execute/hive.md#the-eestexecute-blobs-simulator) and                                                                                                                                                                                                                         | None; executed directly from Python source,</br>using a release tag |\n\n## Release URLs and Tarballs\n\n### Versioning Scheme\n\nEEST framework and test sources and fixture releases are tagged use a semantic versioning scheme, `<optional:<pre_release_name@>>v<MAJOR>.<MINOR>.<PATCH>` as following:\n\n- `<MAJOR>`: An existing fixture format has changed (potentially breaking change). Action must be taken by client teams to ensure smooth upgrade to the new format.\n- `<MINOR>`: Additional coverage (new tests, or a new format) have been added to the release.\n- `<PATCH>`: A bug-fix release; an error in the tests or framework has been patched.\n\nPlease see below for an explanation of the optional `<pre_release_name>` that is used in pre-releases.\n\n### Standard Releases\n\nReleases are published on the @ethereum/execution-spec-tests [releases](https://github.com/ethereum/execution-spec-tests/releases) page. Standard releases are tagged using the format `vX.Y.Z` (they don't have a `<pre_release_name>`).\n\nFor standard releases, two tarballs are available:\n\n| Release Artifact          | Fork/feature scope                                                      |\n| ------------------------- | ----------------------------------------------------------------------- |\n| `fixtures_stable.tar.gz`  | Tests for all forks up to and including the last deployed (\"stable\") mainnet fork (\"must pass\") |\n| `fixtures_develop.tar.gz` | Tests for all forks up to and including the last development fork                               |\n\nI.e., `fixtures_develop` are a superset of `fixtures_stable`.\n\n!!! tip \"Generating tarballs directly via `--output` includes all fixture formats\"\n    When generating fixtures for release, specifying tarball output automatically enables all fixture formats:\n    ```console\n    # Automatically enables --generate-all-formats due to .tar.gz output\n    uv run fill --output=fixtures_stable.tar.gz tests/\n    ```\n    This ensures that all fixture formats are included in the tarball release.\n\n### Pre-Release and Devnet Releases\n\nIntermediate releases that target specific subsets of features or tests under active development are published at @ethereum/execution-spec-tests [releases](https://github.com/ethereum/execution-spec-tests/releases).\n\nThese releases are tagged using the format `<pre_release_name>@vX.Y.Z`.\n\nExamples:\n\n- [`fusaka-devnet-1@v1.0.0`](https://github.com/ethereum/execution-spec-tests/releases/tag/fusaka-devnet-1%40v1.0.0) - this fixture release contains tests adhering to the [Fusaka Devnet 1 spec](https://notes.ethereum.org/@ethpandaops/fusaka-devnet-1).\n- [`benchmark@v0.0.3`](https://github.com/ethereum/execution-spec-tests/releases/tag/benchmark%40v0.0.3) - this fixture release contains tests specifically aimed at benchmarking EVMs.\n\nDevnet releases should be treated as WIP and may not yet contain full test coverage (or even coverage for all EIPs). The coverage provided by these releases is detailed in the corresponding release notes.\n\n### Help Downloading Releases\n\nThe [`consume cache`](./consume/cache.md) command can be used to resolve EEST release and pre-release tags to release URLs and download them.\n"
  },
  {
    "path": "docs/running_tests/running.md",
    "content": "# Methods of Running Tests\n\nEEST has two commands, `consume` and `execute`, that run test cases against EL clients:\n\n1. `consume` runs JSON test fixtures against a client - the client is said to \"consume\" the test case fixture.\n2. `execute` runs test cases from Python source against a client - the test case is \"executed\" against the client.\n\n## Top-Level Comparison\n\nBoth `consume` and `execute` provide sub-commands which correspond to different methods of testing EL clients using EEST test cases:\n\n| Command                                 | Description                                                                             | Components tested                                            | Environment   | Scope                             |\n| --------------------------------------- | --------------------------------------------------------------------------------------- | ------------------------------------------------------------ | ------------- | --------------------------------- |\n| [`consume direct`](#direct)             | Client consume tests via a `statetest` interface                                        | EVM                                                          | None          | Module test                       |\n| [`consume direct`](#direct)             | Client consume tests via a `blocktest` interface                                        | EVM, block processing                                        | None          | Module test,</br>Integration test |\n| [`consume engine`](#engine)             | Client imports blocks via Engine API `EngineNewPayload` in Hive                         | EVM, block processing, Engine API                            | Staging, Hive | System test                       |\n| [`consume sync`](#sync)                 | Client syncs from another client using Engine API in Hive                               | EVM, block processing, Engine API, P2P sync                  | Staging, Hive | System test                       |\n| [`consume rlp`](#rlp)                   | Client imports RLP-encoded blocks upon start-up in Hive                                 | EVM, block processing, RLP import (sync\\*)                   | Staging, Hive | System test                       |\n| [`execute hive`](./execute/hive.md)     | Tests executed against a client via JSON RPC `eth_sendRawTransaction` in Hive           | EVM, JSON RPC, mempool                                       | Staging, Hive | System test                       |\n| [`execute remote`](./execute/remote.md) | Tests executed against a client via JSON RPC `eth_sendRawTransaction` on a live network | EVM, JSON RPC, mempool, EL-EL/EL-CL interaction (indirectly) | Production    | System Test                       |\n\n\\*sync: Depending on code paths used in the client implementation, see the [RLP vs Engine Simulator section below](#engine-vs-rlp-simulator).\n\nThe following sections describe the different methods in more detail.\n\n!!! note \"`./hive --sim=eest/consume-engine` vs `consume engine`\"\n\n     EEST simulators can be ran either standalone using the `./hive` command or via an EEST command against a `./hive --dev` backend, more details are [provided below](#two-methods-to-run-eest-simulators).\n\n## Direct\n\n| Nomenclature    |                                     |\n| --------------- | ----------------------------------- |\n| Command         | `consume direct`                    |\n| Simulator       | `None`                              |\n| Fixture Formats | `state_test`,</br>`blockchain_test` |\n\nThe direct method provides the fastest way to test EVM functionality by executing tests directly through a client's dedicated test interface (e.g. [`statetest`](https://github.com/ethereum/go-ethereum/blob/4bb097b7ffc32256791e55ff16ca50ef83c4609b/cmd/evm/staterunner.go) or [`blocktest`](https://github.com/ethereum/go-ethereum/blob/35dd84ce2999ecf5ca8ace50a4d1a6abc231c370/cmd/evm/blockrunner.go)). This method requires clients to implement a custom interface to read tests and pass their inputs through appropriate code paths; implementation guides available for [state tests](./test_formats/state_test.md#consumption) and [blockchain tests](./test_formats/blockchain_test.md#consumption).\n\nThe EEST `consume direct` command is a small wrapper around client direct interfaces that allows fast and easy selection of test subsets to execute via [test ID](../filling_tests/test_ids.md) regex match (thanks to [an index file](./consume/cache.md#the-fixture-index-file)). See [Consume Direct](./consume/direct.md) and the [Cache and Fixture Inputs](./consume/cache.md) and [Useful Pytest Options](./useful_pytest_options.md) pages for help with options.\n\n!!! tip \"Rapid EVM development\"\n\n    The [`direct` method](./consume/direct.md) with the [`StateTest` format](./test_formats/state_test.md) should be used for the fastest EVM development feedback loop. Additionally, EVM traces can be readily generated and compared to other implementations.\n\n## Engine\n\n| Nomenclature   |                          |\n| -------------- | ------------------------ |\n| Command        | `consume engine`         |\n| Simulator      | `eest/consume-engine`    |\n| Fixture format | `blockchain_test_engine` |\n\nThe consume engine method tests execution clients via the Engine API by sending block payloads and verifying the response (post-merge forks only). This method provides the most realistic testing environment for production Ethereum client behavior, covering consensus integration, payload validation, and state synchronization.\n\nThe `consume engine` command:\n\n1. **Initializes the execution client** with genesis state.\n2. **Connects via Engine API** (port 8551), primitively mocking a consensus client.\n3. **Sends a forkchoice update** to establish the chain head.\n4. **Submits payloads** using `engine_newPayload` calls.\n5. **Validates responses** against expected results.\n6. **Tests error conditions** and exception handling.\n\n## RLP\n\n| Nomenclature   |                    |\n| -------------- | ------------------ |\n| Command        | `consume rlp`      |\n| Simulator      | `eest/consume-rlp` |\n| Fixture format | `blockchain_test`  |\n\nThe RLP consumption method tests execution clients by providing them with RLP-encoded blocks to load upon startup, similar to the block import process during historical synchronization. This method tests the client's core block processing logic without the overhead of network protocols.\n\nThe `consume rlp` command:\n\n1. **Reads blockchain test fixtures** from the specified input source.\n2. **Extracts RLP-encoded blocks** from the fixture files.\n3. **Copies blocks to the client's container** via files in the `/blocks/` directory.\n4. **Starts the client** with the genesis state and block files.\n5. **Validates the client's final `blockHash`** via JSON RPC against the test's expectations.\n\nThis method simulates how clients import blocks during historical sync, testing the complete block validation and state transition pipeline, see below for more details and a comparison to consumption via the Engine API.\n\n## Sync\n\n| Nomenclature   |                        |\n| -------------- |------------------------|\n| Command        | `consume sync`         |\n| Simulator      | None                   |\n| Fixture format | `blockchain_test_sync` |\n\nThe consume sync method tests execution client synchronization capabilities by having one client sync from another via the Engine API and P2P networking. This method validates that clients can correctly synchronize state and blocks from peers, testing both the Engine API, sync triggering, and P2P block propagation mechanisms.\n\nThe `consume sync` command:\n\n1. **Initializes the client under test** with genesis state and executes all test payloads.\n2. **Spins up a sync client** with the same genesis state.\n3. **Establishes P2P connection** between the two clients, utilizing ``admin_addPeer`` with enode url.\n4. **Triggers synchronization** by sending the target block to the sync client via `engine_newPayload` followed by `engine_forkchoiceUpdated` requests.\n5. **Monitors sync progress** and validates that the sync client reaches the same state.\n6. **Verifies final state** matches between both clients.\n\n## Engine vs RLP Simulator\n\nThe RLP Simulator (`eest/consume-rlp`) and the Engine Simulator (`eest/consume-engine`) should be seen as complimentary to one another. Although they execute the same underlying EVM test cases, the block validation logic is executed via different client code paths (using different [fixture formats](./test_formats/index.md)). Therefore, ideally, **both simulators should be executed for full coverage**.\n\n### Code Path Choices\n\nClients consume fixtures in the `eest/consume-engine` simulator via the Engine API's `EngineNewPayloadv*` endpoint; a natural way to validate, respectively invalidate, block payloads. In this case, there is no flexibility in the choice of code path - it directly harnesses mainnet client functionality. The `eest/consume-rlp` Simulator, however, allows clients more freedom, as the rlp-encoded blocks are imported upon client startup. Clients are recommended to try and hook the block import into the code path used for historical syncing.\n\n### Differences\n\n|                         | `eest/consume-rlp`                                    | `eest/consume-engine`                                              |\n| ----------------------- | ----------------------------------------------------- | ------------------------------------------------------------------ |\n| **Fixture Format Used** | [`BlockchainTest`](./test_formats/blockchain_test.md) | [`BlockchainTestEngine`](./test_formats/blockchain_test_engine.md) |\n| **Fork support**        | All forks (including pre-merge)                       | Post-merge forks only (Paris+)                                     |\n| **Client code path**    | Historical sync / block import pipeline               | Engine API / consensus integration                                 |\n| **Real-world analogy**  | Blocks received during sync                           | Blocks received from consensus client                              |\n| **Interface**           | Block import upon start-up via RLP files              | Engine API calls (`newPayload`, `forkchoiceUpdated`)               |\n| **Exception testing**   | Basic exception handling                              | Advanced exception verification with client-specific mappers       |\n\n!!! hint \"Running both simulators adds some redundancy that can assist test debugging\"\n\n    If Engine tests fail but RLP tests pass, the issue is likely in your Engine API implementation rather than core EVM logic.\n\n## Execute\n\nSee [Execute Command](./execute/index.md).\n\n## Two Methods to Run EEST Simulators\n\nMany of the methods use the Hive Testing Environment to interact with clients and run tests against them. These methods are also called Hive simulators. While Hive is always necessary to run simulators, they can be called in two different ways. Both of these commands execute the same simulator code, but in different environments, we take the example of the `eest/consume-engine` simulator:\n\n1. `./hive --sim=eest/consume-engine` is a standalone command that installs EEST and the `consume` command in a dockerized container managed by Hive. This is the standard method to execute EEST [fixture releases](./releases.md) against clients in CI environments and is the method to generate the results at [hive.ethpandaops.io](https://hive.ethpandaops.io). See [Hive](./hive/index.md) and its [Common Options](./hive/common_options.md) for help with this method.\n2. `uv run consume engine` requires the user to clone and [install EEST](../getting_started/installation.md) and start a Hive server in [development mode](./hive/dev_mode.md). In this case, the simulator runs on the native system and communicate to the client via the Hive API. This is particularly useful during test development as fixtures on the local disk can be specified via `--input=fixtures/`. As the simulator runs natively, it is easy to drop into a debugger and inspect the simulator or client container state. See [Hive Developer Mode](./hive/dev_mode.md) for help with this method.\n"
  },
  {
    "path": "docs/running_tests/test_formats/blockchain_test.md",
    "content": "# Blockchain Tests  <!-- markdownlint-disable MD051 (MD051=link-fragments \"Link fragments should be valid\") -->\n\nThe Blockchain Test fixture format tests are included in the fixtures subdirectory `blockchain_tests`.\n\nThese are produced by the `StateTest` and `BlockchainTest` test specs.\n\n## Description\n\nThe blockchain test fixture format is used to test block validation and the consensus rules of the Ethereum blockchain.\n\nIt does so by defining a pre-execution state, a series of blocks, and a post-execution state, verifying that, after all the blocks have been processed, appended if valid or rejected if invalid, the result is the expected post-execution state.\n\nA single JSON fixture file is composed of a JSON object where each key-value pair is a different [`Fixture`](#fixture) test object, with the key string representing the test name.\n\nThe JSON file path plus the test name are used as the unique test identifier.\n\n## Consumption\n\nFor each [`Fixture`](#fixture) test object in the JSON fixture file, perform the following steps:\n\n1. Use [`network`](#-network-fork) to configure the execution fork schedule according to the [`Fork`](./common_types.md#fork) type definition.\n2. Use [`pre`](#-pre-alloc) as the starting state allocation of the execution environment for the test and calculate the genesis state root.\n3. Decode [`genesisRLP`](#-genesisrlp-bytes) to obtain the genesis block header, if the block cannot be decoded, fail the test.\n4. Compare the genesis block header with [`genesisBlockHeader`](#-genesisblockheader-fixtureheader), if any field does not match, fail the test.\n5. Compare the state root calculated on step 2 with the state root in the genesis block header, if they do not match, fail the test.\n6. Set the genesis block as the current head of the chain.\n7. If [`blocks`](#-blocks-listfixtureblockinvalidfixtureblock) contains at least one block, perform the following steps for each [`FixtureBlock`](#fixtureblock) or [`InvalidFixtureBlock`](#invalidfixtureblock):\n\n    1. Determine whether the current block is valid or invalid:\n\n        1. If the [`expectException`](#-expectexception-transactionexceptionblockexception) field is not present, it is valid, and object must be decoded as a [`FixtureBlock`](#fixtureblock).\n        2. If the [`expectException`](#-expectexception-transactionexceptionblockexception) field is present, it is invalid, and object must be decoded as a [`InvalidFixtureBlock`](#invalidfixtureblock).\n\n    2. Attempt to decode field [`rlp`](#-rlp-bytes) as the current block\n        1. If the block cannot be decoded:\n            - If an rlp decoding exception is not expected for the current block, fail the test.\n            - If an rlp decoding error is expected, pass the test (Note: A block with an expected exception will be the last block in the fixture).\n        2. If the block can be decoded, proceed to the next step.\n\n    3. Attempt to apply the current decoded block on top of the current head of the chain\n        1. If the block cannot be applied:\n            - If an exception is expected on the current block and it matches the exception obtained upon execution, pass the test. (Note: A block with an expected exception will be the last block in the fixture)\n            - If an exception is not expected on the current block, fail the test\n        2. If the block can be applied:\n            - If an exception is expected on the current block, fail the test\n            - If an exception is not expected on the current block, set the decoded block as the current head of the chain and proceed to the next block until you reach the last block in the fixture.\n\n8. Compare the hash of the current head of the chain against [`lastblockhash`](#-lastblockhash-hash), if they do not match, fail the test.\n9. Compare all accounts and the fields described in [`post`](#-post-alloc) against the current state, if any do not match, fail the test.\n\n## Structures\n\n### `Fixture`\n\n#### - `network`: [`Fork`](./common_types.md#fork)\n\n##### TO BE DEPRECATED\n\nFork configuration for the test.\n\nThis field is going to be replaced by the value contained in `config.network`.\n\n#### - `pre`: [`Alloc`](./common_types.md#alloc-mappingaddressaccount)\n\nStarting account allocation for the test. State root calculated from this allocation must match the one in the genesis block.\n\n#### - `genesisRLP`: [`Bytes`](./common_types.md#bytes)\n\nRLP serialized version of the genesis block.\n\n#### - `genesisBlockHeader`: [`FixtureHeader`](#fixtureheader)\n\nGenesis block header.\n\n#### - `blocks`: [`List`](./common_types.md#list)`[`[`FixtureBlock`](#fixtureblock)` | `[`InvalidFixtureBlock`](#invalidfixtureblock)`]`\n\nList of blocks to be processed after the genesis block.\n\n#### - `lastblockhash`: [`Hash`](./common_types.md#hash)\n\nHash of the last valid block, or the genesis block hash if the list of blocks is empty, or contains a single invalid block.\n\n#### - `post`: [`Alloc`](./common_types.md#alloc-mappingaddressaccount)\n\nAccount allocation for verification after all the blocks have been processed.\n\n#### - `sealEngine`: `str`\n\nDeprecated: Seal engine used to mine the blocks.\n\n#### - `config`: [`FixtureConfig`](#fixtureconfig)\n\nChain configuration object to be applied to the client running the blockchain test.\n\n### `FixtureConfig`\n\n#### - `network`: [`Fork`](./common_types.md#fork)\n\nFork configuration for the test. It is guaranteed that this field contains the same value as the root field `network`.\n\n#### - `blobSchedule`: [`BlobSchedule`](./common_types.md#blobschedule-mappingforkforkblobschedule)\n\nOptional; present from Cancun on. Maps forks to their blob schedule configurations as defined by [EIP-7840](https://eips.ethereum.org/EIPS/eip-7840).\n\n### `FixtureHeader`\n\n#### - `parentHash`: [`Hash`](./common_types.md#hash)\n\nHash of the parent block.\n\n#### - `uncleHash`: [`Hash`](./common_types.md#hash)\n\nHash of the uncle block list.\n\n#### - `coinbase`: [`Address`](./common_types.md#address)\n\nAddress of the account that will receive the rewards for building the block.\n\n#### - `stateRoot`: [`Hash`](./common_types.md#hash)\n\nRoot hash of the state trie.\n\n#### - `transactionsTrie`: [`Hash`](./common_types.md#hash)\n\nRoot hash of the transactions trie.\n\n#### - `receiptTrie`: [`Hash`](./common_types.md#hash)\n\nRoot hash of the receipts trie.\n\n#### - `bloom`: [`Bloom`](./common_types.md#bloom)\n\nBloom filter composed of the logs of all the transactions in the block.\n\n#### - `difficulty`: [`ZeroPaddedHexNumber`](./common_types.md#zeropaddedhexnumber)\n\nDifficulty of the block.\n\n#### - `number`: [`ZeroPaddedHexNumber`](./common_types.md#zeropaddedhexnumber)\n\nNumber of the block.\n\n#### - `gasLimit`: [`ZeroPaddedHexNumber`](./common_types.md#zeropaddedhexnumber)\n\nTotal gas limit of the block.\n\n#### - `gasUsed`: [`ZeroPaddedHexNumber`](./common_types.md#zeropaddedhexnumber)\n\nTotal gas used by all the transactions in the block.\n\n#### - `timestamp`: [`ZeroPaddedHexNumber`](./common_types.md#zeropaddedhexnumber)\n\nTimestamp of the block.\n\n#### - `extraData`: [`Bytes`](./common_types.md#bytes)\n\nExtra data of the block.\n\n#### - `mixHash`: [`Hash`](./common_types.md#hash)\n\nMix hash or PrevRandao of the block.\n\n#### - `nonce`: [`HeaderNonce`](./common_types.md#headernonce)\n\nNonce of the block.\n\n#### - `hash`: [`Hash`](./common_types.md#hash)\n\nHash of the block.\n\n#### - `baseFeePerGas`: [`ZeroPaddedHexNumber`](./common_types.md#zeropaddedhexnumber) `(fork: London)`\n\nBase fee per gas of the block.\n\n#### - `withdrawalsRoot`: [`Hash`](./common_types.md#hash) `(fork: Shanghai)`\n\nRoot hash of the withdrawals trie.\n\n#### - `blobGasUsed`: [`ZeroPaddedHexNumber`](./common_types.md#zeropaddedhexnumber) `(fork: Cancun)`\n\nTotal blob gas used by all the transactions in the block.\n\n#### - `excessBlobGas`: [`ZeroPaddedHexNumber`](./common_types.md#zeropaddedhexnumber) `(fork: Cancun)`\n\nExcess blob gas of the block used to calculate the blob fee per gas for this block.\n\n#### - `parentBeaconBlockRoot`: [`Hash`](./common_types.md#hash) `(fork: Cancun)`\n\nRoot hash of the parent beacon block.\n\n### `FixtureBlock`\n\n#### - `rlp`: [`Bytes`](./common_types.md#bytes)\n\nRLP serialized version of the block. Field is only optional when embedded in a [`InvalidFixtureBlock`](#invalidfixtureblock) as the [`rlp_decoded`](#-rlp_decoded-optionalfixtureblock) field.\n\n#### - `blockHeader`: [`FixtureHeader`](#fixtureheader)\n\nDecoded block header fields included in the block RLP.\n\n#### - `blocknumber`: [`Number`](./common_types.md#number)\n\nBlock number.\n\n#### - `transactions`: [`List`](./common_types.md#list)`[`[`FixtureTransaction`](#fixturetransaction)`]`\n\nList of decoded transactions included in the block RLP.\n\n#### - `uncleHeaders`: [`List`](./common_types.md#list)`[`[`FixtureHeader`](#fixturetransaction)`]`\n\nList of uncle headers included in the block RLP. An empty list post merge.\n\n#### - `withdrawals`: [`Optional`](./common_types.md#optional)`[`[`List`](./common_types.md#list)`[`[`FixtureWithdrawal`](#fixturewithdrawal)`]]` `(fork: Shanghai)`\n\nOptional list of withdrawals included in the block RLP.\n\n### `InvalidFixtureBlock`\n\n#### - `expectException`: [`TransactionException`](../../library/ethereum_test_exceptions.md#ethereum_test_exceptions.TransactionException)` | `[`BlockException`](../../library/ethereum_test_exceptions.md#ethereum_test_exceptions.BlockException)\n\nExpected exception that invalidates the block.\n\n#### - `rlp`: [`Bytes`](./common_types.md#bytes)\n\nRLP serialized version of the block.\n\n#### - `rlp_decoded`: [`Optional`](./common_types.md#optional)`[`[`FixtureBlock`](#fixtureblock)`]`\n\nDecoded block attributes included in the block RLP.\n\n### `FixtureTransaction`\n\n#### - `type`: [`ZeroPaddedHexNumber`](./common_types.md#zeropaddedhexnumber)\n\nTransaction type.\n\n#### - `chainId`: [`ZeroPaddedHexNumber`](./common_types.md#zeropaddedhexnumber)\n\nChain ID of the transaction.\n\n#### - `nonce`: [`ZeroPaddedHexNumber`](./common_types.md#zeropaddedhexnumber)\n\nNonce of the account that sends the transaction\n\n#### - `gasPrice`: [`ZeroPaddedHexNumber`](./common_types.md#zeropaddedhexnumber)\n\nGas price for the transaction (Transaction types 0 & 1)\n\n#### - `maxPriorityFeePerGas`: [`HexNumber`](./common_types.md#hexnumber) `(fork: London)`\n\nMax priority fee per gas to pay (Transaction types 2 & 3)\n\n#### - `maxFeePerGas`: [`HexNumber`](./common_types.md#hexnumber) `(fork: London)`\n\nMax base fee per gas to pay (Transaction types 2 & 3)\n\n#### - `gasLimit`: [`ZeroPaddedHexNumber`](./common_types.md#zeropaddedhexnumber)\n\nGas limit of the transaction\n\n#### - `to`: [`Address`](./common_types.md#address)`| null`\n\nDestination address of the transaction, or `null` to create a contract\n\n#### - `value`: [`ZeroPaddedHexNumber`](./common_types.md#zeropaddedhexnumber)\n\nValue of the transaction\n\n#### - `data`: [`Bytes`](./common_types.md#bytes)\n\nData bytes of the transaction\n\n#### - `accessList`: [`List`](./common_types.md#list)`[`[`Mapping`](./common_types.md#mapping)`[`[`Address`](./common_types.md#address)`,`[`List`](./common_types.md#list)`[`[`Hash`](./common_types.md#hash)`]]]` `(fork: Berlin)`\n\nAccount access lists (Transaction types 1, 2 & 3)\n\n#### - `maxFeePerBlobGas`: [`ZeroPaddedHexNumber`](./common_types.md#zeropaddedhexnumber) `(fork: Cancun)`\n\nMax fee per blob gas to pay (Transaction type 3)\n\n#### - `blobVersionedHashes`: [`List`](./common_types.md#list)`[`[`Hash`](./common_types.md#hash)`]` `(fork: Cancun)`\n\nMax fee per blob gas to pay (Transaction type 3)\n\n#### - `v`: [`ZeroPaddedHexNumber`](./common_types.md#zeropaddedhexnumber)\n\nV value of the transaction signature\n\n#### - `r`: [`ZeroPaddedHexNumber`](./common_types.md#zeropaddedhexnumber)\n\nR value of the transaction signature\n\n#### - `s`: [`ZeroPaddedHexNumber`](./common_types.md#zeropaddedhexnumber)\n\nS value of the transaction signature\n\n#### - `sender`: [`Address`](./common_types.md#address)\n\nSender address of the transaction\n\n#### - `secretKey`: [`Hash`](./common_types.md#hash)\n\nPrivate key that must be used to sign the transaction\n\n### `FixtureWithdrawal`\n\n#### - `index`: [`ZeroPaddedHexNumber`](./common_types.md#zeropaddedhexnumber)\n\nIndex of the withdrawal\n\n#### - `validatorIndex`: [`ZeroPaddedHexNumber`](./common_types.md#zeropaddedhexnumber)\n\nWithdrawing validator index\n\n#### - `address`: [`Address`](./common_types.md#address)\n\nAddress to withdraw to\n\n#### - `amount`: [`ZeroPaddedHexNumber`](./common_types.md#zeropaddedhexnumber)\n\nAmount of the withdrawal\n"
  },
  {
    "path": "docs/running_tests/test_formats/blockchain_test_engine.md",
    "content": "# Blockchain Engine Tests  <!-- markdownlint-disable MD051 (MD051=link-fragments \"Link fragments should be valid\") -->\n\nThe Blockchain Engine Test fixture format tests are included in the fixtures subdirectory `blockchain_tests_engine`, and use Engine API directives instead of the usual BlockchainTest format.\n\nThese are produced by the `StateTest` and `BlockchainTest` test specs.\n\n## Description\n\nThe Blockchain Engine Test fixture format is used to test block validation and the consensus rules of the Ethereum blockchain, when a block is delivered through the Engine API as a `engine_newPayloadVX` directive.\n\nIt does so by defining a pre-execution state, a series of blocks as `engine_newPayloadVX` directives, and a post-execution state, verifying that, after all the blocks have been processed, appended if valid or rejected if invalid, the result is the expected post-execution state.\n\nA single JSON fixture file is composed of a JSON object where each key-value pair is a different [`HiveFixture`](#hivefixture) test object, with the key string representing the test name.\n\nThe JSON file path plus the test name are used as the unique test identifier.\n\n## Consumption\n\nFor each [`HiveFixture`](#hivefixture) test object in the JSON fixture file, perform the following steps:\n\n1. Start a full node using:\n\n    - [`network`](#-network-fork) to configure the execution fork schedule according to the [`Fork`](./common_types.md#fork) type definition.\n    - [`pre`](#-pre-alloc) as the starting state allocation of the execution environment for the test and calculate the genesis state root.\n    - [`genesisBlockHeader`](#-genesisblockheader-fixtureheader) as the genesis block header.\n\n2. Verify the head of the chain is the genesis block, and the state root matches the one calculated on step 1, otherwise fail the test.\n\n3. For each [`FixtureEngineNewPayload`](#fixtureenginenewpayload) in [`engineNewPayloads`](#-enginenewpayloads-listfixtureenginenewpayload):\n\n    1. Deliver the payload using the `engine_newPayloadVX` directive, using:\n        - [`version`](#-version-number) as the version of the directive.\n        - [`executionPayload`](#-executionpayload-fixtureexecutionpayload) as the payload.\n        - [`blob_versioned_hashes`](#-blob_versioned_hashes-optionallisthash-fork-cancun), if present, as the list of hashes of the versioned blobs that are part of the execution payload.\n        - [`parentBeaconBlockRoot`](#-parentbeaconblockroot-optionalhash-fork-cancun), if present, as the hash of the parent beacon block root.\n    2. If [`errorCode`](#-errorcode-optionalnumber) is present:\n        - Verify the directive returns an error, and the error code matches the one in [`errorCode`](#-errorcode-optionalnumber), otherwise fail the test.\n        - Proceed to the next payload.\n    3. If `valid` is `false`, verify that the directive returns `status` field of [PayloadStatusV1](https://github.com/ethereum/execution-apis/blob/main/src/engine/paris.md#payloadstatusv1) as `INVALID`, otherwise fail the test.\n    4. If `valid` is `true`, verify that the directive returns `status` field of [PayloadStatusV1](https://github.com/ethereum/execution-apis/blob/main/src/engine/paris.md#payloadstatusv1) as `VALID`, otherwise fail the test.\n\n## Structures\n\n### `HiveFixture`\n\n#### - `network`: [`Fork`](./common_types.md#fork)\n\n##### TO BE DEPRECATED\n\nFork configuration for the test.\n\nThis field is going to be replaced by the value contained in `config.network`.\n\n#### - `genesisBlockHeader`: [`FixtureHeader`](./blockchain_test.md#fixtureheader)\n\nGenesis block header.\n\n#### - `engineNewPayloads`: [`List`](./common_types.md#list)`[`[`FixtureEngineNewPayload`](#fixtureenginenewpayload)`]`\n\nList of `engine_newPayloadVX` directives to be processed after the genesis block.\n\n#### - `engineFcuVersion`: [`Number`](./common_types.md#number)\n\nVersion of the `engine_forkchoiceUpdatedVX` directive to use to set the head of the chain.\n\n#### - `pre`: [`Alloc`](./common_types.md#alloc-mappingaddressaccount)\n\nStarting account allocation for the test. State root calculated from this allocation must match the one in the genesis block.\n\n#### - `lastblockhash`: [`Hash`](./common_types.md#hash)\n\nHash of the last valid block, or the genesis block hash if the list of blocks is empty, or contains a single invalid block.\n\n#### - `post`: [`Alloc`](./common_types.md#alloc-mappingaddressaccount)\n\nAccount allocation for verification after all the blocks have been processed.\n\n#### - `config`: [`FixtureConfig`](#fixtureconfig)\n\nChain configuration object to be applied to the client running the blockchain engine test.\n\n### `FixtureConfig`\n\n#### - `network`: [`Fork`](./common_types.md#fork)\n\nFork configuration for the test. It is guaranteed that this field contains the same value as the root field `network`.\n\n#### - `blobSchedule`: [`BlobSchedule`](./common_types.md#blobschedule-mappingforkforkblobschedule)\n\nOptional; present from Cancun on. Maps forks to their blob schedule configurations as defined by [EIP-7840](https://eips.ethereum.org/EIPS/eip-7840).\n\n### `FixtureEngineNewPayload`\n\n#### - `executionPayload`: [`FixtureExecutionPayload`](#fixtureexecutionpayload)\n\nExecution payload.\n\n#### - `blob_versioned_hashes`: [`Optional`](./common_types.md#optional)`[`[`List`](./common_types.md#list)`[`[`Hash`](./common_types.md#hash)`]]` `(fork: Cancun)`\n\nList of hashes of the versioned blobs that are part of the execution payload.\nThey can mismatch the hashes of the versioned blobs in the execution payload, for negative-testing reasons.\n\n#### - `parentBeaconBlockRoot`: [`Optional`](./common_types.md#optional)`[`[`Hash`](./common_types.md#hash)`]` `(fork: Cancun)`\n\nHash of the parent beacon block root.\n\n#### - `validationError`: [`TransactionException`](../../library/ethereum_test_exceptions.md#ethereum_test_exceptions.TransactionException)` | `[`BlockException`](../../library/ethereum_test_exceptions.md#ethereum_test_exceptions.BlockException)\n\nValidation error expected when executing the payload.\n\nWhen the payload is valid, this field is not present, and a `VALID` status is\nexpected in the `status` field of\n[PayloadStatusV1](https://github.com/ethereum/execution-apis/blob/main/src/engine/paris.md#payloadstatusv1).\n\nIf this field is present, the `status` field of\n[PayloadStatusV1](https://github.com/ethereum/execution-apis/blob/main/src/engine/paris.md#payloadstatusv1)\nis expected to be `INVALID`.\n\n#### - `version`: [`Number`](./common_types.md#number)\n\nVersion of the `engine_newPayloadVX` directive to use to deliver the payload.\n\n#### - `errorCode`: [`Optional`](./common_types.md#optional)`[`[`Number`](./common_types.md#number)`]`\n\nError code to be returned by the `engine_newPayloadVX` directive.\n\n### `FixtureExecutionPayload`\n\n#### - `parentHash`: [`Hash`](./common_types.md#hash)\n\nHash of the parent block.\n\n#### - `feeRecipient`: [`Address`](./common_types.md#address)\n\nAddress of the account that will receive the rewards for building the block.\n\n#### - `stateRoot`: [`Hash`](./common_types.md#hash)\n\nRoot hash of the state trie.\n\n#### - `receiptsRoot`: [`Hash`](./common_types.md#hash)\n\nRoot hash of the receipts trie.\n\n#### - `logsBloom`: [`Bloom`](./common_types.md#bloom)\n\nBloom filter composed of the logs of all the transactions in the block.\n\n#### - `blockNumber`: [`HexNumber`](./common_types.md#hexnumber)\n\nNumber of the block.\n\n#### - `gasLimit`: [`HexNumber`](./common_types.md#hexnumber)\n\nTotal gas limit of the block.\n\n#### - `gasUsed`: [`HexNumber`](./common_types.md#hexnumber)\n\nTotal gas used by all the transactions in the block.\n\n#### - `timestamp`: [`HexNumber`](./common_types.md#hexnumber)\n\nTimestamp of the block.\n\n#### - `extraData`: [`Bytes`](./common_types.md#bytes)\n\nExtra data of the block.\n\n#### - `prevRandao`: [`Hash`](./common_types.md#hash)\n\nPrevRandao of the block.\n\n#### - `blockHash`: [`Hash`](./common_types.md#hash)\n\nHash of the block.\n\n#### - `transactions`: [`List`](./common_types.md#list)`[`[`Bytes`](./common_types.md#bytes)`]`\n\nList of transactions in the block, in serialized format.\n\n#### - `withdrawals`: [`List`](./common_types.md#list)`[`[`FixtureWithdrawal`](#fixturewithdrawal)`]`\n\nList of withdrawals in the block.\n\n#### - `baseFeePerGas`: [`HexNumber`](./common_types.md#hexnumber) `(fork: London)`\n\nBase fee per gas of the block.\n\n#### - `blobGasUsed`: [`HexNumber`](./common_types.md#hexnumber) `(fork: Cancun)`\n\nTotal blob gas used by all the transactions in the block.\n\n#### - `excessBlobGas`: [`HexNumber`](./common_types.md#hexnumber) `(fork: Cancun)`\n\nExcess blob gas of the block used to calculate the blob fee per gas for this block.\n\n### `FixtureWithdrawal`\n\n#### - `index`: [`HexNumber`](./common_types.md#hexnumber)\n\nIndex of the withdrawal\n\n#### - `validatorIndex`: [`HexNumber`](./common_types.md#hexnumber)\n\nWithdrawing validator index\n\n#### - `address`: [`Address`](./common_types.md#address)\n\nAddress to withdraw to\n\n#### - `amount`: [`HexNumber`](./common_types.md#hexnumber)\n\nAmount of the withdrawal\n"
  },
  {
    "path": "docs/running_tests/test_formats/blockchain_test_engine_x.md",
    "content": "# Blockchain Engine X Tests  <!-- markdownlint-disable MD051 (MD051=link-fragments \"Link fragments should be valid\") -->\n\nThe Blockchain Engine X Test fixture format tests are included in the fixtures subdirectory `blockchain_tests_engine_x`, and use Engine API directives with optimized pre-allocation groups for improved execution performance.\n\nThese are produced by the `StateTest` and `BlockchainTest` test specs when using the `--generate-pre-alloc-groups` and `--use-pre-alloc-groups` flags, or by using the `--generate-all-formats` flag which generates all fixture formats including `BlockchainEngineXFixture` in a single command.\n\n## Description\n\nThe Blockchain Engine X Test fixture format is an optimized variant of the [Blockchain Engine Test](./blockchain_test_engine.md) format designed for large-scale test execution with performance optimizations.\n\nIt uses the Engine API to test block validation and consensus rules while leveraging **pre-allocation groups** to significantly reduce test execution time and resource usage. Tests are grouped by their initial state (fork + environment + pre-allocation). Each group is executed against the same client instance using a common genesis state.\n\nThe key optimization is that **clients need only be started once per group** instead of once per test (as in the original engine fixture format), dramatically improving execution performance for large test suites.\n\nInstead of including large pre-allocation state in each test fixture, this format references a pre-allocation groups folder (`pre_alloc`) which contains all different pre-allocation combinations organized by group.\n\nA single JSON fixture file is composed of a JSON object where each key-value pair is a different [`BlockchainTestEngineXFixture`](#blockchaintestenginexfixture) test object, with the key string representing the test name.\n\nThe JSON file path plus the test name are used as the unique test identifier.\n\n## Pre-Allocation Groups Folder\n\nThe `blockchain_tests_engine_x` directory contains a special directory `pre_alloc` that stores pre-allocation group files used by all tests in this format, one per pre-allocation group with the name of the pre-alloc hash. This folder is essential for test execution and must be present alongside the test fixtures.\n\n### Pre-Allocation Group File Structure\n\nEach file in the `pre_alloc` folder corresponds to a pre-allocation group identified by a hash:\n\n```json\n{\n   \"test_count\": 88,\n   \"pre_account_count\": 174,\n   \"testIds\": [\"test1\", \"test2\", ...],\n   \"network\": \"Prague\",\n   \"environment\": { ... },\n   \"pre\": { ... }\n}\n```\n\n#### Pre-Allocation Group Fields\n\n- **`test_count`**: Number of tests in this pre-allocation group\n- **`pre_account_count`**: Number of accounts in the pre-allocation group\n- **`testIds`**: Array of test identifiers that belong to this group\n- **`network`**: Fork name (e.g., \"Prague\", \"Cancun\")\n- **`environment`**: Complete [`Environment`](./common_types.md#environment) object with execution context\n- **`pre`**: Pre-allocation group [`Alloc`](./common_types.md#alloc-mappingaddressaccount) object containing initial account states\n\n## Consumption\n\nFor each [`BlockchainTestEngineXFixture`](#blockchaintestenginexfixture) test object in the JSON fixture file, perform the following steps:\n\n1. **Load Pre-Allocation Group**:\n   - Read the appropriate file from the `pre_alloc` folder in the same directory\n   - Locate the pre-allocation group using [`preHash`](#-prehash-string)\n   - Extract the `pre` allocation and `environment` from the group\n\n2. **Initialize Client**:\n   - Use [`network`](#-network-fork) to configure the execution fork schedule\n   - Use the pre-allocation group's `pre` allocation as the starting state\n   - Use the pre-allocation group's `environment` as the execution context\n   - Use [`genesisBlockHeader`](#-genesisblockheader-fixtureheader) as the genesis block header\n\n3. **Execute Engine API Sequence**:\n   - For each [`FixtureEngineNewPayload`](#fixtureenginenewpayload) in [`engineNewPayloads`](#-enginenewpayloads-listfixtureenginenewpayload):\n     1. Deliver the payload using `engine_newPayloadVX`\n     2. Validate the response according to the payload's expected status\n   - If [`syncPayload`](#-syncpayload-optionalfixtureenginenewpayload) is present, execute it for chain synchronization\n\n4. **Verify Final State**:\n   - Compare the final chain head against [`lastblockhash`](#-lastblockhash-hash)\n   - If [`postStateDiff`](#-poststatediff-optionalalloc) is present:\n     - Apply the state differences to the pre-allocation group\n     - Verify the resulting state matches the client's final state\n   - If `post` field were present (not typical), verify it directly\n\n## Structures\n\n### `BlockchainTestEngineXFixture`\n\n#### - `network`: [`Fork`](./common_types.md#fork)\n\n##### TO BE DEPRECATED\n\nFork configuration for the test.\n\nThis field is going to be replaced by the value contained in `config.network`.\n\n#### - `preHash`: `string`\n\nHash identifier referencing a pre-allocation group in the `pre_alloc` folder. This hash uniquely identifies the combination of fork, environment, and pre-allocation state that defines the group.\n\n#### - `genesisBlockHeader`: [`FixtureHeader`](./blockchain_test.md#fixtureheader)\n\nGenesis block header. The state root in this header must match the state root calculated from the pre-allocation group referenced by [`preHash`](#-prehash-string).\n\n#### - `engineNewPayloads`: [`List`](./common_types.md#list)`[`[`FixtureEngineNewPayload`](#fixtureenginenewpayload)`]`\n\nList of `engine_newPayloadVX` directives to be processed after the genesis block. These define the sequence of blocks to be executed via the Engine API.\n\n#### - `syncPayload`: [`Optional`](./common_types.md#optional)`[`[`FixtureEngineNewPayload`](#fixtureenginenewpayload)`]`\n\nOptional synchronization payload. When present, this payload is typically used to sync the chain to a specific state before or after the main payload sequence.\n\n#### - `lastblockhash`: [`Hash`](./common_types.md#hash)\n\nHash of the last valid block after all payloads have been processed, or the genesis block hash if all payloads are invalid.\n\n#### - `postStateDiff`: [`Optional`](./common_types.md#optional)`[`[`Alloc`](./common_types.md#alloc-mappingaddressaccount)`]`\n\nState differences from the pre-allocation group after test execution. This optimization stores only the accounts that changed, were created, or were deleted during test execution, rather than the complete final state.\n\nTo reconstruct the final state:\n\n1. Start with the pre-allocation group from the `pre_alloc` folder\n2. Apply the changes in `postStateDiff`:\n   - **Modified accounts**: Replace existing accounts with new values\n   - **New accounts**: Add accounts not present in pre-allocation  \n   - **Deleted accounts**: Remove accounts (represented as `null` values)\n\n#### - `config`: [`FixtureConfig`](#fixtureconfig)\n\nChain configuration object to be applied to the client running the blockchain engine x test.\n\n### `FixtureConfig`\n\n#### - `network`: [`Fork`](./common_types.md#fork)\n\nFork configuration for the test. It is guaranteed that this field contains the same value as the root field `network`.\n\n#### - `blobSchedule`: [`BlobSchedule`](./common_types.md#blobschedule-mappingforkforkblobschedule)\n\nOptional; present from Cancun on. Maps forks to their blob schedule configurations as defined by [EIP-7840](https://eips.ethereum.org/EIPS/eip-7840).\n\n### `FixtureEngineNewPayload`\n\nEngine API payload structure identical to the one defined in [Blockchain Engine Tests](./blockchain_test_engine.md#fixtureenginenewpayload). Includes execution payload, versioned hashes, parent beacon block root, validation errors, version, and error codes.\n\n## Usage Notes\n\n- This format is generated when using:\n    - `--generate-pre-alloc-groups` flag (automatically triggers 2-phase execution, generates only `BlockchainEngineXFixture`)\n    - `--generate-all-formats` flag (automatically triggers 2-phase execution, generates all fixture formats)\n- The `pre_alloc` folder is essential and must be distributed with the test fixtures\n- Tests are grouped by identical (fork + environment + pre-allocation) combinations\n- The format is optimized for Engine API testing (post-Paris forks)\n"
  },
  {
    "path": "docs/running_tests/test_formats/blockchain_test_sync.md",
    "content": "# Blockchain Engine Sync Tests  <!-- markdownlint-disable MD051 (MD051=link-fragments \"Link fragments should be valid\") -->\n\nThe Blockchain Engine Sync Test fixture format tests are included in the fixtures subdirectory `blockchain_tests_sync`, and use Engine API directives to test client synchronization capabilities after fixtures are executed with valid payloads.\n\nThese are produced by the `BlockchainTest` test spec when `pytest.mark.verify_sync` is used as a test marker.\n\n## Description\n\nThe Blockchain Engine Sync Test fixture format is used to test execution client synchronization between peers. It validates that clients can correctly sync state and blocks from another client using the Engine API and P2P networking.\n\nThe test works by:\n\n1. Setting up a client under test, defining a pre-execution state, a series of `engine_newPayloadVX` directives, and a post-execution state, as in Blockchain Engine Test fixture formats.\n2. Starting a sync client with the same genesis and pre-execution state.\n3. Having the sync client synchronize from the client under test.\n4. Verifying that both clients reach the same final state.\n\nA single JSON fixture file is composed of a JSON object where each key-value pair is a different [`HiveFixture`](#hivefixture) test object, with the key string representing the test name.\n\nThe JSON file path plus the test name are used as the unique test identifier, as well as a `{client under test}::sync_{sync client}` identifier.\n\n## Consumption\n\nFor each [`HiveFixture`](#hivefixture) test object in the JSON fixture file, perform the following steps:\n\n### Client Under Test Setup\n\n1. Start the client under test using:\n    - [`network`](#-network-fork) to configure the execution fork schedule according to the [`Fork`](./common_types.md#fork) type definition.\n    - [`pre`](#-pre-alloc) as the starting state allocation of the execution environment for the test and calculate the genesis state root.\n    - [`genesisBlockHeader`](#-genesisblockheader-fixtureheader) as the genesis block header.\n\n2. Verify the head of the chain is the genesis block, and the state root matches the one calculated on step 1, otherwise fail the test.\n\n3. Process all [`FixtureEngineNewPayload`](#fixtureenginenewpayload) objects in [`engineNewPayloads`](#-enginenewpayloads-listfixtureenginenewpayload) to build the complete chain on the client under test.\n\n### Sync Client Setup and Synchronization\n\n1. Start a sync client using the same genesis configuration:\n    - Use the same [`network`](#-network-fork), [`pre`](#-pre-alloc), and [`genesisBlockHeader`](#-genesisblockheader-fixtureheader).\n\n2. Establish P2P connection between the clients:\n    - Get the enode URL from the client under test\n    - Use `admin_addPeer` to connect the sync client to the client under test\n\n3. Trigger synchronization on the sync client:\n    - Send the [`syncPayload`](#-syncpayload-fixtureenginenewpayload) using `engine_newPayloadVX`\n    - Send `engine_forkchoiceUpdatedVX` pointing to the last block hash\n\n4. Monitor and verify synchronization:\n    - Wait for the sync client to reach the [`lastblockhash`](#-lastblockhash-hash)\n    - Verify the final state root matches between both clients\n    - If [`post`](#-post-alloc) is provided, verify the final state matches\n\n## Structures\n\n### `HiveFixture`\n\n#### - `network`: [`Fork`](./common_types.md#fork)\n\n##### TO BE DEPRECATED\n\nFork configuration for the test.\n\nThis field is going to be replaced by the value contained in `config.network`.\n\n#### - `genesisBlockHeader`: [`FixtureHeader`](./blockchain_test.md#fixtureheader)\n\nGenesis block header.\n\n#### - `engineNewPayloads`: [`List`](./common_types.md#list)`[`[`FixtureEngineNewPayload`](#fixtureenginenewpayload)`]`\n\nList of `engine_newPayloadVX` directives to be processed by the client under test to build the complete chain.\n\n#### - `syncPayload`: [`FixtureEngineNewPayload`](#fixtureenginenewpayload)\n\nThe final payload to be sent to the sync client to trigger synchronization. This is typically an empty block built on top of the last test block.\n\n#### - `engineFcuVersion`: [`Number`](./common_types.md#number)\n\nVersion of the `engine_forkchoiceUpdatedVX` directive to use to set the head of the chain.\n\n#### - `pre`: [`Alloc`](./common_types.md#alloc-mappingaddressaccount)\n\nStarting account allocation for the test. State root calculated from this allocation must match the one in the genesis block.\n\n#### - `lastblockhash`: [`Hash`](./common_types.md#hash)\n\nHash of the last valid block that the sync client should reach after successful synchronization.\n\n#### - `post`: [`Alloc`](./common_types.md#alloc-mappingaddressaccount)\n\nAccount allocation for verification after synchronization is complete.\n\n#### - `postStateHash`: [`Optional`](./common_types.md#optional)`[`[`Hash`](./common_types.md#hash)`]`\n\nOptional state root hash for verification after synchronization is complete. Used when full post-state is not included.\n\n#### - `config`: [`FixtureConfig`](#fixtureconfig)\n\nChain configuration object to be applied to both clients running the blockchain sync test.\n\n### `FixtureConfig`\n\n#### - `network`: [`Fork`](./common_types.md#fork)\n\nFork configuration for the test. It is guaranteed that this field contains the same value as the root field `network`.\n\n#### - `chainId`: [`Number`](./common_types.md#number)\n\nChain ID configuration for the test network.\n\n#### - `blobSchedule`: [`BlobSchedule`](./common_types.md#blobschedule-mappingforkforkblobschedule)\n\nOptional; present from Cancun on. Maps forks to their blob schedule configurations as defined by [EIP-7840](https://eips.ethereum.org/EIPS/eip-7840).\n\n### `FixtureEngineNewPayload`\n\n#### - `executionPayload`: [`FixtureExecutionPayload`](#fixtureexecutionpayload)\n\nExecution payload.\n\n#### - `blob_versioned_hashes`: [`Optional`](./common_types.md#optional)`[`[`List`](./common_types.md#list)`[`[`Hash`](./common_types.md#hash)`]]` `(fork: Cancun)`\n\nList of hashes of the versioned blobs that are part of the execution payload.\n\n#### - `parentBeaconBlockRoot`: [`Optional`](./common_types.md#optional)`[`[`Hash`](./common_types.md#hash)`]` `(fork: Cancun)`\n\nHash of the parent beacon block root.\n\n#### - `validationError`: [`Optional`](./common_types.md#optional)`[`[`TransactionException`](../../library/ethereum_test_exceptions.md#ethereum_test_exceptions.TransactionException)` | `[`BlockException`](../../library/ethereum_test_exceptions.md#ethereum_test_exceptions.BlockException)`]`\n\nFor sync tests, this field should not be present as sync tests only work with valid chains. Invalid blocks cannot be synced.\n\n#### - `version`: [`Number`](./common_types.md#number)\n\nVersion of the `engine_newPayloadVX` directive to use to deliver the payload.\n\n### `FixtureExecutionPayload`\n\n#### - `parentHash`: [`Hash`](./common_types.md#hash)\n\nHash of the parent block.\n\n#### - `feeRecipient`: [`Address`](./common_types.md#address)\n\nAddress of the account that will receive the rewards for building the block.\n\n#### - `stateRoot`: [`Hash`](./common_types.md#hash)\n\nRoot hash of the state trie.\n\n#### - `receiptsRoot`: [`Hash`](./common_types.md#hash)\n\nRoot hash of the receipts trie.\n\n#### - `logsBloom`: [`Bloom`](./common_types.md#bloom)\n\nBloom filter composed of the logs of all the transactions in the block.\n\n#### - `blockNumber`: [`HexNumber`](./common_types.md#hexnumber)\n\nNumber of the block.\n\n#### - `gasLimit`: [`HexNumber`](./common_types.md#hexnumber)\n\nTotal gas limit of the block.\n\n#### - `gasUsed`: [`HexNumber`](./common_types.md#hexnumber)\n\nTotal gas used by all the transactions in the block.\n\n#### - `timestamp`: [`HexNumber`](./common_types.md#hexnumber)\n\nTimestamp of the block.\n\n#### - `extraData`: [`Bytes`](./common_types.md#bytes)\n\nExtra data of the block.\n\n#### - `prevRandao`: [`Hash`](./common_types.md#hash)\n\nPrevRandao of the block.\n\n#### - `blockHash`: [`Hash`](./common_types.md#hash)\n\nHash of the block.\n\n#### - `transactions`: [`List`](./common_types.md#list)`[`[`Bytes`](./common_types.md#bytes)`]`\n\nList of transactions in the block, in serialized format.\n\n#### - `withdrawals`: [`List`](./common_types.md#list)`[`[`FixtureWithdrawal`](#fixturewithdrawal)`]`\n\nList of withdrawals in the block.\n\n#### - `baseFeePerGas`: [`HexNumber`](./common_types.md#hexnumber) `(fork: London)`\n\nBase fee per gas of the block.\n\n#### - `blobGasUsed`: [`HexNumber`](./common_types.md#hexnumber) `(fork: Cancun)`\n\nTotal blob gas used by all the transactions in the block.\n\n#### - `excessBlobGas`: [`HexNumber`](./common_types.md#hexnumber) `(fork: Cancun)`\n\nExcess blob gas of the block used to calculate the blob fee per gas for this block.\n\n### `FixtureWithdrawal`\n\n#### - `index`: [`HexNumber`](./common_types.md#hexnumber)\n\nIndex of the withdrawal\n\n#### - `validatorIndex`: [`HexNumber`](./common_types.md#hexnumber)\n\nWithdrawing validator index\n\n#### - `address`: [`Address`](./common_types.md#address)\n\nAddress to withdraw to\n\n#### - `amount`: [`HexNumber`](./common_types.md#hexnumber)\n\nAmount of the withdrawal\n\n## Differences from Blockchain Engine Tests\n\nWhile the Blockchain Sync Test format is similar to the Blockchain Engine Test format, there are key differences:\n\n1. **`syncPayload` field**: Contains the final block used to trigger synchronization on the sync client.\n2. **Multi-client testing**: Tests involve two clients (client under test and sync client) rather than a single client.\n3. **P2P networking**: Tests require P2P connection establishment between clients.\n4. **No invalid blocks**: Sync tests only work with valid chains as invalid blocks cannot be synced.\n5. **`postStateHash` field**: Optional field for state verification when full post-state is not included.\n\n## Fork Support\n\nBlockchain Sync Tests are only supported for post-merge forks (Paris and later) as they rely on the Engine API for synchronization triggering.\n"
  },
  {
    "path": "docs/running_tests/test_formats/common_types.md",
    "content": "# Common Types\n\n## Basic Types\n\n### `Address`\n\n[Bytes](#bytes) of a 20-byte fixed length.\n\n### `Bloom`\n\n[Bytes](#bytes) of a 256-byte fixed length.\n\n### `Bytes`\n\nHexadecimal representation of binary data of any length encoded as a JSON string, with a \"0x\" prefix.\n\n### `EmptyAddress`\n\nAn empty JSON string `\"\"`, used to represent an empty address. E.g. in the `to` field of a transaction when it is a contract creation.\n\n### `Hash`\n\n[Bytes](#bytes) of a 32-byte fixed length.\n\n### `HeaderNonce`\n\n[Bytes](#bytes) of a 8-byte fixed length.\n\n### `HexNumber`\n\nHexadecimal number with \"0x\" prefix encoded as a JSON string.\n\n### `List`\n\nA JSON array where each element is a specific type, also defined in this document.\nE.g. `List[Address]` is a JSON array where each element is an Ethereum address.\n\n### `Mapping`\n\nA JSON object where the keys and values are specific types, also defined in this document.\nE.g. `Mapping[Address, Account]` is a JSON object where the keys are Ethereum addresses, and the values are Ethereum accounts.\n\n### `Number`\n\nDecimal number encoded as a JSON string.\n\n### `Optional`\n\nMarks a field as optional, meaning that the field can be missing from the JSON object.\n\n### `ZeroPaddedHexNumber`\n\nHexadecimal number with \"0x\" prefix encoded as a JSON string, with a single zero used to pad odd number of digits, and zero represented as \"0x00\".\n\n## Composite Types\n\n### `Storage`: [`Mapping`](#mapping)`[`[`Hash`](#hash)`,`[`Hash`](#hash)`]`\n\nStorage represented as a JSON object, where the keys and values are represented with the [`Hash`](#hash) type.\n\n### `Account`\n\nAn Ethereum account represented as a JSON object with the following fields:\n\n#### - `balance`: [`ZeroPaddedHexNumber`](#zeropaddedhexnumber)\n\nBalance of the account.\n\n#### - `nonce`: [`ZeroPaddedHexNumber`](#zeropaddedhexnumber)\n\nNonce of the account.\n\n#### - `code`: [`Bytes`](#bytes)\n\nCode of the account.\n\n#### - `storage`: [`Storage`](#storage-mappinghashhash)\n\nStorage of the account.\n\n### `Alloc`: [`Mapping`](#mapping)`[`[`Address`](#address)`,`[`Account`](#account)`]`\n\nState allocation represented as a JSON object, where the keys are the addresses of the accounts, and the values are the accounts.\n\n### `BlobSchedule`: [`Mapping`](#mapping)`[`[`Fork`](#fork)`,`[`ForkBlobSchedule`](#forkblobschedule)`]`\n\nMaps forks to blob schedule configurations as defined by [EIP-7840](https://eips.ethereum.org/EIPS/eip-7840).\n\n### `Environment`\n\nContains blockchain-related configuration that provides the context in which a test is run.\n\n### `ForkBlobSchedule`\n\nA fork blob schedule as defined by [EIP-7840](https://eips.ethereum.org/EIPS/eip-7840) as a JSON dictionary with the following entries:\n\n#### - `target`: [`ZeroPaddedHexNumber`](#zeropaddedhexnumber)\n\nThe target blob count for a block.\n\n#### - `max`: [`ZeroPaddedHexNumber`](#zeropaddedhexnumber)\n\nThe maximum possible blob count for a block.\n\n#### - `base_fee_update_fraction`: [`ZeroPaddedHexNumber`](#zeropaddedhexnumber)\n\nThe blob base fee update fraction (adjusts the responsiveness of blob gas pricing per fork).\n\n## Fork\n\nFork type is represented as a JSON string that can be set to one of the following values:\n\n### `\"Frontier\"`\n\n- Chain ID: `0x00`\n\n### `\"Homestead\"`\n\n- Chain ID: `0x01`\n- Homestead Block: `0x00`\n\n### `\"Byzantium\"`\n\n- Chain ID: `0x01`\n- Homestead Block: `0x00`\n- EIP150 Block: `0x00`\n- EIP155 Block: `0x00`\n- EIP158 Block: `0x00`\n- DAO Fork Block: `0x00`\n- Byzantium Block: `0x00`\n\n### `\"Constantinople\"`\n\n- Chain ID: `0x01`\n- Homestead Block: `0x00`\n- EIP150 Block: `0x00`\n- EIP155 Block: `0x00`\n- EIP158 Block: `0x00`\n- DAO Fork Block: `0x00`\n- Byzantium Block: `0x00`\n- Constantinople Block: `0x00`\n\n### `\"ConstantinopleFix\"`\n\n- Chain ID: `0x01`\n- Homestead Block: `0x00`\n- EIP150 Block: `0x00`\n- EIP155 Block: `0x00`\n- EIP158 Block: `0x00`\n- DAO Fork Block: `0x00`\n- Byzantium Block: `0x00`\n- Constantinople Block: `0x00`\n- Constantinople Fix Block: `0x00`\n\n### `\"Istanbul\"`\n\n- Chain ID: `0x01`\n- Homestead Block: `0x00`\n- EIP150 Block: `0x00`\n- EIP155 Block: `0x00`\n- EIP158 Block: `0x00`\n- DAO Fork Block: `0x00`\n- Byzantium Block: `0x00`\n- Constantinople Block: `0x00`\n- Constantinople Fix Block: `0x00`\n- Istanbul Block: `0x00`\n\n### `\"MuirGlacier\"`\n\n- Chain ID: `0x01`\n- Homestead Block: `0x00`\n- EIP150 Block: `0x00`\n- EIP155 Block: `0x00`\n- EIP158 Block: `0x00`\n- DAO Fork Block: `0x00`\n- Byzantium Block: `0x00`\n- Constantinople Block: `0x00`\n- Constantinople Fix Block: `0x00`\n- Istanbul Block: `0x00`\n- Muir Glacier Block: `0x00`\n\n### `\"Berlin\"`\n\n- Chain ID: `0x01`\n- Homestead Block: `0x00`\n- EIP150 Block: `0x00`\n- EIP155 Block: `0x00`\n- EIP158 Block: `0x00`\n- DAO Fork Block: `0x00`\n- Byzantium Block: `0x00`\n- Constantinople Block: `0x00`\n- Constantinople Fix Block: `0x00`\n- Istanbul Block: `0x00`\n- Muir Glacier Block: `0x00`\n- Berlin Block: `0x00`\n\n### `\"BerlinToLondonAt5\"`\n\n- Chain ID: `0x01`\n- Homestead Block: `0x00`\n- EIP150 Block: `0x00`\n- EIP155 Block: `0x00`\n- EIP158 Block: `0x00`\n- DAO Fork Block: `0x00`\n- Byzantium Block: `0x00`\n- Constantinople Block: `0x00`\n- Constantinople Fix Block: `0x00`\n- Istanbul Block: `0x00`\n- Muir Glacier Block: `0x00`\n- Berlin Block: `0x00`\n- London Block: `0x05`\n\n### `\"London\"`\n\n- Chain ID: `0x01`\n- Homestead Block: `0x00`\n- EIP150 Block: `0x00`\n- EIP155 Block: `0x00`\n- EIP158 Block: `0x00`\n- DAO Fork Block: `0x00`\n- Byzantium Block: `0x00`\n- Constantinople Block: `0x00`\n- Constantinople Fix Block: `0x00`\n- Istanbul Block: `0x00`\n- Muir Glacier Block: `0x00`\n- Berlin Block: `0x00`\n- London Block: `0x00`\n\n### `\"ArrowGlacier\"`\n\n- Chain ID: `0x01`\n- Homestead Block: `0x00`\n- EIP150 Block: `0x00`\n- EIP155 Block: `0x00`\n- EIP158 Block: `0x00`\n- DAO Fork Block: `0x00`\n- Byzantium Block: `0x00`\n- Constantinople Block: `0x00`\n- Constantinople Fix Block: `0x00`\n- Istanbul Block: `0x00`\n- Muir Glacier Block: `0x00`\n- Berlin Block: `0x00`\n- London Block: `0x00`\n- Arrow Glacier Block: `0x00`\n\n### `\"GrayGlacier\"`\n\n- Chain ID: `0x01`\n- Homestead Block: `0x00`\n- EIP150 Block: `0x00`\n- EIP155 Block: `0x00`\n- EIP158 Block: `0x00`\n- DAO Fork Block: `0x00`\n- Byzantium Block: `0x00`\n- Constantinople Block: `0x00`\n- Constantinople Fix Block: `0x00`\n- Istanbul Block: `0x00`\n- Muir Glacier Block: `0x00`\n- Berlin Block: `0x00`\n- London Block: `0x00`\n- Arrow Glacier Block: `0x00`\n- Gray Glacier Block: `0x00`\n\n### `\"Merge\"`\n\n- Chain ID: `0x01`\n- Homestead Block: `0x00`\n- EIP150 Block: `0x00`\n- EIP155 Block: `0x00`\n- EIP158 Block: `0x00`\n- DAO Fork Block: `0x00`\n- Byzantium Block: `0x00`\n- Constantinople Block: `0x00`\n- Constantinople Fix Block: `0x00`\n- Istanbul Block: `0x00`\n- Muir Glacier Block: `0x00`\n- Berlin Block: `0x00`\n- London Block: `0x00`\n- Arrow Glacier Block: `0x00`\n- Gray Glacier Block: `0x00`\n- Terminal Total Difficulty: `0x00`\n\n### `\"MergeToShanghaiAtTime15k\"`\n\n- Chain ID: `0x01`\n- Homestead Block: `0x00`\n- EIP150 Block: `0x00`\n- EIP155 Block: `0x00`\n- EIP158 Block: `0x00`\n- DAO Fork Block: `0x00`\n- Byzantium Block: `0x00`\n- Constantinople Block: `0x00`\n- Constantinople Fix Block: `0x00`\n- Istanbul Block: `0x00`\n- Muir Glacier Block: `0x00`\n- Berlin Block: `0x00`\n- London Block: `0x00`\n- Arrow Glacier Block: `0x00`\n- Gray Glacier Block: `0x00`\n- Terminal Total Difficulty: `0x00`\n- Shanghai Time: `0x3a98`\n\n### `\"Shanghai\"`\n\n- Chain ID: `0x01`\n- Homestead Block: `0x00`\n- EIP150 Block: `0x00`\n- EIP155 Block: `0x00`\n- EIP158 Block: `0x00`\n- DAO Fork Block: `0x00`\n- Byzantium Block: `0x00`\n- Constantinople Block: `0x00`\n- Constantinople Fix Block: `0x00`\n- Istanbul Block: `0x00`\n- Muir Glacier Block: `0x00`\n- Berlin Block: `0x00`\n- London Block: `0x00`\n- Arrow Glacier Block: `0x00`\n- Gray Glacier Block: `0x00`\n- Terminal Total Difficulty: `0x00`\n- Shanghai Time: `0x00`\n\n### `\"ShanghaiToCancunAtTime15k\"`\n\n- Chain ID: `0x01`\n- Homestead Block: `0x00`\n- EIP150 Block: `0x00`\n- EIP155 Block: `0x00`\n- EIP158 Block: `0x00`\n- DAO Fork Block: `0x00`\n- Byzantium Block: `0x00`\n- Constantinople Block: `0x00`\n- Constantinople Fix Block: `0x00`\n- Istanbul Block: `0x00`\n- Muir Glacier Block: `0x00`\n- Berlin Block: `0x00`\n- London Block: `0x00`\n- Arrow Glacier Block: `0x00`\n- Gray Glacier Block: `0x00`\n- Terminal Total Difficulty: `0x00`\n- Shanghai Time: `0x0`\n- Cancun Time: `0x3a98`\n\n### `\"Cancun\"`\n\n- Chain ID: `0x01`\n- Homestead Block: `0x00`\n- EIP150 Block: `0x00`\n- EIP155 Block: `0x00`\n- EIP158 Block: `0x00`\n- DAO Fork Block: `0x00`\n- Byzantium Block: `0x00`\n- Constantinople Block: `0x00`\n- Constantinople Fix Block: `0x00`\n- Istanbul Block: `0x00`\n- Muir Glacier Block: `0x00`\n- Berlin Block: `0x00`\n- London Block: `0x00`\n- Arrow Glacier Block: `0x00`\n- Gray Glacier Block: `0x00`\n- Terminal Total Difficulty: `0x00`\n- Shanghai Time: `0x00`\n- Cancun Time: `0x00`\n"
  },
  {
    "path": "docs/running_tests/test_formats/exceptions.md",
    "content": "# Exceptions\n\nException types are represented as a JSON string in the test fixtures.\n\nThe exception converted into a string is composed of the exception type name,\nfollowed by a period, followed by the specific exception name.\n\nFor example, the exception `INSUFFICIENT_ACCOUNT_FUNDS` of type\n`TransactionException` is represented as\n`\"TransactionException.INSUFFICIENT_ACCOUNT_FUNDS\"`.\n\nThe JSON string can contain multiple exception types, separated by the `|`\ncharacter, denoting that the transaction or block can throw either one of\nthe exceptions.\n\nFor a list of all defined exceptions look at [Ethereum Test Exceptions Package](../../library/ethereum_test_exceptions.md).\n"
  },
  {
    "path": "docs/running_tests/test_formats/index.md",
    "content": "# Test Fixture Specifications\n\nThe following sub-sections provide:\n\n- Specifications for each test fixture format with an explanation of each field and its type.\n- Guides on how to consume each format.\n"
  },
  {
    "path": "docs/running_tests/test_formats/state_test.md",
    "content": "# State Tests <!-- markdownlint-disable MD051 (MD051=link-fragments \"Link fragments should be valid\") -->\n\nThe State Test fixture format tests are included in the fixtures subdirectory `state_tests`.\n\nThese are produced by the `StateTest` and `StateTestOnly` test specs.\n\n## Description\n\nThe state test fixture format is used to test the state transition function of the Ethereum Virtual Machine (EVM).\n\nIt does so by defining a transaction, a pre-execution state, and a post-execution state, and verifying that the transaction execution results in the expected post-execution state.\n\nA single JSON fixture file is composed of a JSON object where each key-value pair is a different [`Fixture`](#fixture) test object, with the key string representing the test name.\n\nThe JSON file path plus the test name are used as the unique test identifier.\n\nAs opposed to other fixture formats, the state test fixture format could contain multiple test vectors per test object, each represented by an element in the mapping of lists of the `post` field.\n\nHowever tests generated by the `execution-spec-tests` repository do **not** use this feature, as every single test object contains only a single test vector.\n\n## Consumption\n\nFor each [`Fixture`](#fixture) test object in the JSON fixture file, perform the following steps:\n\n1. Use [`pre`](#-pre-alloc) as the starting state allocation of the execution environment for the test.\n2. Use [`env`](#-env-fixtureenvironment) to configure the current execution environment.\n3. For each [`Fork`](./common_types.md#fork) key of [`post`](#-post-mappingforklist-fixtureforkpost) in the test, and for each of the elements of the list of [`FixtureForkPost`](#fixtureforkpost) values:\n\n    1. Configure the execution fork schedule according to the current [`Fork`](./common_types.md#fork) key.\n    2. Using the [`indexes`](#-indexes-fixtureforkpostindexes) values, and the [`transaction`](#-transaction-fixturetransaction) object, decode the transaction to be executed.\n    3. If the serialized version of the decoded transaction does not match [`txbytes`](#-txbytes-bytes), fail the test.\n    4. Attempt to apply the transaction using the current execution environment:\n\n        1. If the transaction could not be applied to the current execution context:\n            - If [`expectException`](#-expectexception-transactionexception) is empty, fail the test.\n            - If [`expectException`](#-expectexception-transactionexception) is not empty, revert the state to the pre-state.\n        2. If the transaction could be applied to the current execution context:\n            - If [`expectException`](#-expectexception-transactionexception) is not empty, fail the test.\n\n    5. Compare the resulting post-state root with the expected post-state root contained in the [`hash`](#-hash-hash) field of the current [`FixtureForkPost`](#fixtureforkpost), and fail the test if they do not match.\n    6. Compare the resulting logs hash with the expected logs contained in the [`logs`](#-logs-hash) field of the current [`FixtureForkPost`](#fixtureforkpost), and fail the test if they do not match.\n\n## Structures\n\n### `Fixture`\n\n#### - `env`: [`FixtureEnvironment`](#fixtureenvironment)\n\nExecution environment description for the test.\n\n#### - `pre`: [`Alloc`](./common_types.md#alloc-mappingaddressaccount)\n\nStarting account allocation for the test.\n\n#### - `transaction`: [`FixtureTransaction`](#fixturetransaction)\n\nTransaction to be executed.\n\n#### - `post`: [`Mapping`](./common_types.md#mapping)`(`[`Fork`](./common_types.md#fork)`,`[`List`](./common_types.md#list)`[` [`FixtureForkPost`](#fixtureforkpost) `])`\n\nMapping of lists of post for verification per fork, where each element represents a single possible outcome of the transaction execution after being applied to the `pre`.\n\n#### - `config`: [`FixtureConfig`](#fixtureconfig)\n\nChain configuration object.\n\n### `FixtureConfig`\n\nAt the moment this object can contain only the `blobSchedule` that is necessary to apply the correct cap to the maximum amount of blobs that a transaction can have. Otherwise, in forks prior to Cancun for example, it will be an empty JSON object.\n\n#### - `blobSchedule`: [`BlobSchedule`](./common_types.md#blobschedule-mappingforkforkblobschedule)\n\nOptional; present from Cancun on. Maps forks to their blob schedule configurations as defined by [EIP-7840](https://eips.ethereum.org/EIPS/eip-7840).\n\n### `FixtureEnvironment`\n\n#### - `currentCoinbase`: [`Address`](./common_types.md#address)\n\nThe address of the account that will receive the rewards for building the block.\n\n#### - `currentGasLimit`: [`ZeroPaddedHexNumber`](./common_types.md#zeropaddedhexnumber)\n\nTotal gas limit of the block where the transaction is executed.\n\n#### - `currentNumber`: [`ZeroPaddedHexNumber`](./common_types.md#zeropaddedhexnumber)\n\nNumber of the block where the transaction is executed.\n\n#### - `currentDifficulty`: [`ZeroPaddedHexNumber`](./common_types.md#zeropaddedhexnumber)\n\nDifficulty of the block where the transaction is executed.\n\n#### - `currentTimestamp`: [`ZeroPaddedHexNumber`](./common_types.md#zeropaddedhexnumber)\n\nTimestamp of the block where the transaction is executed.\n\n#### - `currentBaseFee`: [`ZeroPaddedHexNumber`](./common_types.md#zeropaddedhexnumber) `(fork: London)`\n\nBase fee of the block where the transaction is executed.\n\n#### - `currentRandom`: [`Hash`](./common_types.md#hash) `(fork: Paris)`\n\nRandao value of the block where the transaction is executed.\n\n#### - `currentExcessBlobGas`: [`ZeroPaddedHexNumber`](./common_types.md#zeropaddedhexnumber) `(fork: Cancun)`\n\nExcess blob gas of the block where the transaction is executed.\n\n### `FixtureTransaction`\n\n#### - `nonce`: [`ZeroPaddedHexNumber`](./common_types.md#zeropaddedhexnumber)\n\nNonce of the account that sends the transaction\n\n#### - `gasPrice`: [`ZeroPaddedHexNumber`](./common_types.md#zeropaddedhexnumber)\n\nGas price for the transaction (Transaction types 0 & 1)\n\n#### - `maxPriorityFeePerGas`: [`HexNumber`](./common_types.md#hexnumber)\n\nMax priority fee per gas to pay (Transaction types 2 & 3)\n\n#### - `maxFeePerGas`: [`HexNumber`](./common_types.md#hexnumber)\n\nMax base fee per gas to pay (Transaction types 2 & 3)\n\n#### - `gasLimit`: [`List`](./common_types.md#list)`[`[`ZeroPaddedHexNumber`](./common_types.md#zeropaddedhexnumber)`]`\n\nList of gas limits used on each indexed test combination\n\n#### - `to`: [`Address`](./common_types.md#address)` | `[`EmptyAddress`](./common_types.md#emptyaddress)\n\nDestination address of the transaction, or an empty string to create a contract\n\n#### - `value`: [`List`](./common_types.md#list)`[`[`ZeroPaddedHexNumber`](./common_types.md#zeropaddedhexnumber)`]`\n\nList of values used on each indexed test combination\n\n#### - `data`: [`List`](./common_types.md#list)`[`[`Bytes`](./common_types.md#bytes)`]`\n\nList of data bytes used on each indexed test combination\n\n#### - `accessLists`: [`List`](./common_types.md#list)`[`[`List`](./common_types.md#list)`[`[`Mapping`](./common_types.md#mapping)`[`[`Address`](./common_types.md#address)`,`[`List`](./common_types.md#list)`[`[`Hash`](./common_types.md#hash)`]]]]` `(fork: Berlin)`\n\nList of account access lists used on each indexed test combination (Transaction types 1, 2 & 3)\n\n#### - `maxFeePerBlobGas`: [`HexNumber`](./common_types.md#hexnumber) `(fork: Cancun)`\n\nMax fee per blob gas to pay (Transaction type 3)\n\n#### - `blobVersionedHashes`: [`List`](./common_types.md#list)`[`[`Hash`](./common_types.md#hash)`]` `(fork: Cancun)`\n\nList of blob versioned hashes the transaction includes (Transaction type 3)\n\n#### - `sender`: [`Address`](./common_types.md#address)\n\nSender address of the transaction\n\n#### - `secretKey`: [`Hash`](./common_types.md#hash)\n\nPrivate key that must be used to sign the transaction\n\n### `FixtureForkPost`\n\n#### - `indexes`: [`FixtureForkPostIndexes`](#fixtureforkpostindexes)\n\nTransaction field indexes that must be used to obtain the transaction to be executed\n\n#### - `txbytes`: [`Bytes`](./common_types.md#bytes)\n\nSerialized bytes version of the [`FixtureTransaction`](#fixturetransaction) that was executed to produce this post-state\n\n#### - `hash`: [`Hash`](./common_types.md#hash)\n\nExpected state root value that results of applying the transaction to the pre-state\n\n#### - `logs`: [`Hash`](./common_types.md#hash)\n\nHash of the RLP representation of the state logs result of applying the transaction to the pre-state\n(TODO: double-check this.)\n\n#### - `expectException`: [`TransactionException`](../../library/ethereum_test_exceptions.md#ethereum_test_exceptions.TransactionException)\n\nException that is expected to be thrown by the transaction execution (Field is missing if the transaction is expected to succeed)\n\n#### - `state`: [`Alloc`](./common_types.md#alloc-mappingaddressaccount)\n\nDictionary that represents the allocation after execution of the transaction.\n\n### `FixtureForkPostIndexes`\n\n#### - `data`: `int`\n\nIndex of the data field in the transaction\n\n#### - `gas`: `int`\n\nIndex of the gas limit field in the transaction\n\n#### - `value`: `int`\n\nIndex of the value field in the transaction\n"
  },
  {
    "path": "docs/running_tests/test_formats/transaction_test.md",
    "content": "# Transaction Tests <!-- markdownlint-disable MD051 (MD051=link-fragments \"Link fragments should be valid\") -->\n\nThe Transaction Test fixture format tests are included in the fixtures subdirectory `transaction_tests`.\n\nThese are produced by the `TransactionTest` test spec.\n\n## Description\n\nThe transaction test fixture format is used to test client's transaction RLP parsing without executing the transaction on the EVM.\n\nIt does so by defining a transaction binary RLP representation, and whether the transaction should be accepted or rejected by the client in each fork.\n\nA single JSON fixture file is composed of a JSON object where each key-value pair is a different [`Fixture`](#fixture) test object, with the key string representing the test name.\n\nThe JSON file path plus the test name are used as the unique test identifier.\n\nThe transaction test fixture format could contain multiple test vectors per test object, each represented by an element in the mapping of lists of the `result` field.\n\nHowever tests generated by the `execution-spec-tests` repository do **not** use this feature, as every single test object contains only a single test vector.\n\n## Consumption\n\nFor each [`Fixture`](#fixture) test object in the JSON fixture file, perform the following steps:\n\n1. Obtain the [`txbytes`](#-txbytes-bytes) serialized bytes of the transaction to be parsed.\n2. For each [`Fork`](./common_types.md#fork) key of [`result`](#-result-mappingforkfixtureresult) in the test:\n\n    1. Assume the fork schedule according to the current [`Fork`](./common_types.md#fork) key.\n    2. Using the [`txbytes`](#-txbytes-bytes), attempt to decode the transaction.\n    3. If the transaction could not be decoded:\n        - If the [`hash`](#-hash-hash-none) field is present, fail the test.\n        - Compare the exception thrown with the expected exception contained in the [`exception`](#-exception-transactionexception) field, and fail the test if they do not match.\n        - Proceed to the next fork.\n    4. If the transaction could be decoded:\n        - Compare the calculated hash with the expected hash contained in the [`hash`](#-hash-hash-none) field, and fail the test if they do not match.\n        - Compare the calculated intrinsic gas with the expected intrinsic gas contained in the [`intrinsicGas`](#-intrinsicgas-zeropaddedhexnumber) field, and fail the test if they do not match.\n        - Compare the calculated sender with the expected sender contained in the [`sender`](#-sender-address) field, and fail the test if they do not match.\n\n## Structures\n\n### `Fixture`\n\n#### - `txbytes`: [`Bytes`](./common_types.md#bytes)\n\nSerialized bytes of the transaction under test.\n\n#### - `result`: [`Mapping`](./common_types.md#mapping)`[`[`Fork`](./common_types.md#fork)`,`[`FixtureResult`](#fixtureresult) `]`\n\nMapping of results for verification per fork, where each key-value represents a single possible outcome of the transaction parsed in the given fork.\n\n### `FixtureResult`\n\n#### - `hash`: [`Hash`](./common_types.md#hash) `| None`\n\nCalculated hash of the transaction (Field is missing if the transaction is expected to fail).\n\n#### - `intrinsicGas`: [`ZeroPaddedHexNumber`](./common_types.md#zeropaddedhexnumber)\n\nTotal intrinsic gas cost of the transaction (Field is missing if the transaction is expected to fail).\n\n#### - `sender`: [`Address`](./common_types.md#address)\n\nSender address of the transaction (Field is missing if the transaction is expected to fail).\n\n#### - `exception`: [`TransactionException`](../../library/ethereum_test_exceptions.md#ethereum_test_exceptions.TransactionException)\n\nException that is expected to be thrown by the transaction parsing (Field is missing if the transaction is expected to succeed).\n"
  },
  {
    "path": "docs/running_tests/useful_pytest_options.md",
    "content": "# Useful Pytest Options\n\nThe EEST commands to run tests are customizations to the pytest framework, which provides many helpful options for test selection, parallel execution, report output and debugging. This section provides the most relevant options, a full overview is available in the [pytest docs](https://docs.pytest.org/en/8.3.x/).\n\n## Fixture Inputs (Consume Commands)\n\nSee [Consume Cache and Fixture Inputs](./consume/cache.md).\n\n## Dry-Run\n\nList collected tests, `-q` restricts output to [test IDs](../filling_tests/test_ids.md) only:\n\n```bash\nuv run consume engine --input=<fixture_input> --collect-only -q\n```\n\nIn `./hive` [standalone mode](./hive/index.md), this can be achieved via EEST's [`--sim.limit` \"collectonly\" prefix](./hive/common_options.md#collect-onlydry-run).\n\n## Output Control\n\n- `-v` - verbose output.\n- `-vv` - more verbose output.\n- `-s` - print stdout to the terminal during execution (don't capture it).\n- `--eest-log-level=<LOG_LEVEL>` - write logs during test (helpful in combination with `-s`).\n\n## Report Generation\n\nJSON, HTML and XML reports can be generated with:\n\n```bash\n    --json-report \\\n    --json-report-file=report.json \\\n    --html=report.html \\\n    --junitxml=report.xml\n```\n\n## Test Case Selection Using Test IDs\n\nIn addition to Hive's regex-based `--sim.limit` option, running in dev mode supports pytest's `-k` syntax:\n\n```bash\nuv run consume rlp -k \"test_chainid and fork_London\"\nuv run consume engine -k \"eip1559 or eip4844\" -m cancun\n```\n\nUse `--collect-only -q` to see which tests would run without executing them:\n\n```bash\nuv run consume engine --collect-only -q -k \"fork_Prague\"\n```\n\n## Test Case Selection using Marks\n\nSelect tests based on pytest [marks](../writing_tests/test_markers.md).\n\nRun only state tests:\n\n```bash\nuv run consume direct --input=<fixture_input> -m state_test\n```\n\nRun blockchain tests for specific fork:\n\n```bash\nuv run consume engine --input=<fixture_input> -m \"blockchain_test and cancun\"\n```\n\nCombine marks with keyword filtering:\n\n```bash\nuv run consume engine --input=<fixture_input> -m \"blockchain_test\" -k \"eip4844 or blob\"\n```\n\n!!! note \"Mark Availability\"\n    Not all test marks are available with consume commands. Fork and test type marks work reliably.\n\n## Parallel Execution\n\nSpeed up test execution by running tests in parallel using pytest-xdist.\n\nAuto-detect CPU count:\n\n```bash\nuv run consume engine --input=<fixture_input> -n auto\n```\n\nSpecify worker count:\n\n```bash\nuv run consume direct --input=<fixture_input> -n 4\n```\n\n## Dropping in the Python Debugger\n\nDropping into the Python debugger can be helpful to inspect EEST simulator state or ssh to a client container. Adding the `--pdb` option will drop into Python debugger upon test failure, `-x` tells pytest to exit after the first fail:\n\n```bash\nuv run consume engine --pdb -x ...\n```\n\n### PDB Cheatsheet\n\n- u  →  up the stack\n- d → down the stack\n- l  → list lines around current position\n- ll → list entire function body\n- p  → print expression\n- pp → pretty-print expression\n\nSometimes `pp` is not enough and it's worth importing rich (`import rich`) in pdb and doing a `rich.print(obj)`.\n\n## Early Exit Options\n\nStop after first failure:\n\n```bash\nuv run consume engine --input=<fixture_input> -x\n```\n\nStop after N failures:\n\n```bash\nuv run consume rlp --input=<fixture_input> --maxfail=3\n```\n\n## Performance and Timing\n\nShow slowest tests:\n\n```bash\nuv run consume engine --input=<fixture_input> --durations=10\n```\n\nShow all test durations:\n\n```bash\nuv run consume rlp --input=<fixture_input> --durations=0\n```\n\nTimeout control (per test):\n\n```bash\nuv run consume direct --input=<fixture_input> --timeout=30\n```\n\nPrint relevant test stage timings such as client start-up, payload response time (`consume` only):\n\n```bash\nuv run consume engine --input=<fixture_input> --timing-data\n```\n"
  },
  {
    "path": "docs/scripts/copy_repo_docs_to_mkdocs.py",
    "content": "\"\"\"Include EEST's CONTRIBUTING.md and SECURITY.md in the HTML documentation.\"\"\"\n\nimport logging\nimport re\nfrom pathlib import Path\n\nimport mkdocs_gen_files\n\nlogger = logging.getLogger(\"mkdocs\")\n\n\ndef copy_markdown_file(source_path, destination_path, fix_links=True):\n    \"\"\"Copy a markdown file to the destination, fixing links if requested.\"\"\"\n    source_file = Path(source_path)\n    destination_file = Path(destination_path)\n\n    if not source_file.is_file():\n        raise FileNotFoundError(\n            f\"Error: Source file '{source_file}' not found in current directory.\"\n        )\n\n    try:\n        with mkdocs_gen_files.open(destination_file, \"w\") as destination:\n            with open(source_file, \"r\") as f:\n                for line in f.readlines():\n                    if fix_links:\n                        # Fix absolute website links to relative docs links\n                        line = re.sub(\n                            r\"https://eest\\.ethereum\\.org/main/([^)\\s]+)\", r\"../\\1.md\", line\n                        )\n\n                        # Fix SECURITY.md link\n                        line = re.sub(\n                            r\"\\[Security Policy\\]\\(SECURITY\\.md\\)\",\n                            r\"[Security Policy](security.md)\",\n                            line,\n                        )\n\n                        # Fix EIP checklist template link\n                        line = re.sub(\n                            r\"\\[EIP checklist template\\]\\(./docs/writing_tests/checklist_templates/eip_testing_checklist_template.md\\)\",  # noqa: E501\n                            r\"[EIP checklist template](../writing_tests/checklist_templates/eip_testing_checklist_template.md)\",  # noqa: E501\n                            line,\n                        )\n\n                    destination.write(line)\n    except Exception as e:\n        raise Exception(f\"Error copying file {source_file} to {destination_file}\") from e\n\n    logger.info(f\"Copied {source_file} to {destination_file}.\")\n\n\ndef include_contributing_in_docs():\n    \"\"\"Copy CONTRIBUTING.md to ./docs/ to include in HTML docs.\"\"\"\n    copy_markdown_file(\"CONTRIBUTING.md\", \"getting_started/contributing.md\")\n\n\ndef include_security_in_docs():\n    \"\"\"Copy SECURITY.md to ./docs/getting_started/ to include in HTML docs.\"\"\"\n    copy_markdown_file(\"SECURITY.md\", \"getting_started/security.md\")\n\n\ninclude_contributing_in_docs()\ninclude_security_in_docs()\n"
  },
  {
    "path": "docs/scripts/gen_test_case_reference.py",
    "content": "\"\"\"\nScript called during mkdocs build|serve to create the \"Test Case Reference\".\n\nCalled via the mkdocs-gen-files plugin; it's specified in mkdocs.yaml and\ncan't take command-line arguments. The main logic is implemented in\nsrc/pytest_plugins/filler/gen_test_doc.py.\n\"\"\"\n\nimport importlib\nimport logging\nimport sys\nfrom os import getenv\n\nimport pytest\nfrom click.testing import CliRunner\n\nimport pytest_plugins.filler.gen_test_doc.gen_test_doc as gen_test_doc\nfrom cli.pytest_commands.fill import fill\nfrom config import DocsConfig\n\nimportlib.reload(gen_test_doc)  # get changes in plugin to trigger an update for `mkdocs serve`\n\nTARGET_FORK = DocsConfig().TARGET_FORK\nGENERATE_UNTIL_FORK = DocsConfig().GENERATE_UNTIL_FORK\n\nlogger = logging.getLogger(\"mkdocs\")\n\n\n# if docs are generated while FAST_DOCS is true, then use \"tests/frontier\" otherwise use \"tests\"\n# USAGE 1 (use fast mode):\n#       export FAST_DOCS=true && uv run mkdocs serve\n# USAGE 2 (use fast mode + hide side-effect warnings):\n#       export FAST_DOCS=true && uv run mkdocs serve 2>&1 | sed '/is not found among documentation files/d' # noqa: E501\ntest_arg = \"tests\"\nfast_mode = getenv(\"FAST_DOCS\")\nif fast_mode is not None:\n    if fast_mode.lower() == \"true\":\n        print(\"-\" * 40, \"\\nWill generate docs using FAST_DOCS mode.\\n\" + \"-\" * 40)\n        test_arg = \"tests/frontier\"\n\nargs = [\n    \"--override-ini\",\n    \"filterwarnings=ignore::pytest.PytestAssertRewriteWarning\",  # suppress warnings due to reload\n    \"-p\",\n    \"pytest_plugins.filler.gen_test_doc.gen_test_doc\",\n    \"-p\",\n    \"pytest_plugins.filler.eip_checklist\",\n    \"--gen-docs\",\n    f\"--gen-docs-target-fork={TARGET_FORK}\",\n    f\"--until={GENERATE_UNTIL_FORK}\",\n    \"--checklist-doc-gen\",\n    \"--skip-index\",\n    \"-m\",\n    \"not blockchain_test_engine\",\n    \"-s\",\n    test_arg,\n]\n\nrunner = CliRunner()\nlogger.info(\n    f\"Generating documentation for test cases until {GENERATE_UNTIL_FORK} as fill {' '.join(args)}\"\n)\nresult = runner.invoke(fill, args)\nfor line in result.output.split(\"\\n\"):\n    if \"===\" in line:\n        logger.info(line.replace(\"===\", \"==\"))\n        continue\n    logger.info(line)\nif result.exit_code in [pytest.ExitCode.OK, pytest.ExitCode.NO_TESTS_COLLECTED]:\n    logger.info(\"Documentation generation successful.\")\n    sys.exit(0)\nlogger.error(\n    f\"Documentation generation failed (exit: {pytest.ExitCode(result.exit_code)}, \"\n    f\"{pytest.ExitCode(result.exit_code).name}).\"\n)\nsys.exit(result.exit_code)\n"
  },
  {
    "path": "docs/scripts/generate_fill_help.py",
    "content": "#!/usr/bin/env python3\n\"\"\"\nGenerate the fill command help output for documentation.\n\nThis script captures the output of 'fill --help' and generates a complete\ndocumentation page that includes both static content and the auto-generated\nhelp output. The generated page replaces the manual help output with\ncurrent command-line options.\n\"\"\"\n\nimport logging\nimport subprocess\nimport sys\nimport textwrap\n\nimport mkdocs_gen_files\n\nlogger = logging.getLogger(\"mkdocs\")\n\n\ndef get_fill_help_output() -> str:\n    \"\"\"Run 'fill --help' and capture its output.\"\"\"\n    try:\n        result = subprocess.run(\n            [\"uv\", \"run\", \"fill\", \"--help\"],\n            capture_output=True,\n            text=True,\n            check=True,\n        )\n        return result.stdout\n    except subprocess.CalledProcessError as e:\n        logger.error(f\"Error running 'fill --help': {e}\")\n        logger.error(f\"stderr: {e.stderr}\")\n        sys.exit(1)\n\n\ndef format_help_output(help_text: str, max_width: int = 88) -> str:\n    \"\"\"\n    Format the help output with proper line wrapping.\n\n    Args:\n        help_text: The raw help output\n        max_width: Maximum line width (default 88 to match existing docs)\n\n    Returns:\n        Formatted help text suitable for documentation\n\n    \"\"\"\n    lines = help_text.splitlines()\n    formatted_lines = []\n\n    for line in lines:\n        # Don't wrap lines that are part of the usage section or are empty\n        if not line.strip() or line.startswith(\"usage:\") or line.startswith(\"  \") and \"--\" in line:\n            formatted_lines.append(line)\n        else:\n            # Wrap long lines while preserving indentation\n            indent = len(line) - len(line.lstrip())\n            if len(line) > max_width and indent == 0:\n                wrapped = textwrap.fill(\n                    line,\n                    width=max_width,\n                    subsequent_indent=\"  \",\n                    break_long_words=False,\n                    break_on_hyphens=False,\n                )\n                formatted_lines.append(wrapped)\n            else:\n                formatted_lines.append(line)\n\n    return \"\\n\".join(formatted_lines)\n\n\ndef generate_command_line_options_docs():\n    \"\"\"Generate a standalone page with just the fill command-line options.\"\"\"\n    # Get and format the help output\n    help_output = get_fill_help_output()\n    formatted_output = format_help_output(help_output)\n\n    # Create the complete page content\n    page_content = f\"\"\"# Fill Command-Line Options\n\nFill is a [pytest](https://docs.pytest.org/en/stable/)-based command. This page lists custom\noptions that the `fill` command provides. To see the full list of options that is available\nto fill (including the standard pytest and plugin command-line options) use `fill --pytest-help`.\n\n*This page is automatically generated from the current `fill --help` output.*\n\n## Command Help Output\n\n```text\n{formatted_output}\n```\n\n---\n\n*This page was automatically generated from `fill --help` output.*\n\"\"\"\n\n    # Write the generated content to a virtual file\n    with mkdocs_gen_files.open(\"filling_tests/filling_tests_command_line_options.md\", \"w\") as f:\n        f.write(page_content)\n\n    logger.info(\"Generated filling_tests_command_line_options.md with current fill --help output\")\n\n\n# Run the generation\ngenerate_command_line_options_docs()\n"
  },
  {
    "path": "docs/stylesheets/custom.css",
    "content": ".slide {\n  display: inline-block;\n  position: relative;\n  opacity: 0;\n  left: 20px;\n  transition: all 0.5s ease;\n}\n\n.slide.show {\n  opacity: 1;\n  left: 0;\n}\n\n.slide.hide {\n  opacity: 0;\n  left: 20px;\n}\n\n/* Data table control panel */\n.control_panel .search_wrapper input {\n  border: 1px solid #9e9e9e;\n  border-radius: 4px;\n  padding: 8px 15px;\n\n  font-size: 18px;\n  display: block;\n  width: 100%;\n}\n.control_panel .filters {\n  display: flex;\n}\n\n.control_panel .filters .filter_wrapper {\n  margin-right: 15px;\n  padding: 8px 14px;\n  border-radius: 4px;\n  vertical-align: middle;\n  border: 1px solid #9e9e9e;\n  margin-bottom: 10px;\n}\n\n.control_panel .filters .filter_wrapper label {\n  color: #8f8f8f;\n  font-weight: bold;\n  font-size: 14px;\n}\n\n.control_panel .select2-container--default .select2-selection--single {\n  border: none;\n}\n\n#test_table_wrapper .dt-search {\n  display: none;\n}\n\n.twemoji {\n  --md-icon-size: 1.125em;\n  display: inline-flex;\n  height: var(--md-icon-size);\n  vertical-align: text-top;\n}\n\n.twemoji svg {\n  fill: currentcolor;\n  max-height: 100%;\n  width: var(--md-icon-size);\n}\n\n.stand_alone_container {\n  margin: 10px 15px;\n}\n\n.control_panel .filters .buttons-collection,\n.control_panel .filters .buttons-collection:hover {\n  background: transparent;\n  padding: 10px 15px;\n  vertical-align: middle;\n  border: 1px solid #9e9e9e;\n  margin-bottom: 10px;\n}\n\n.control_panel div.dt-buttons > .dt-button:hover:not(.disabled),\ndiv.dt-buttons > div.dt-button-split .dt-button:hover:not(.disabled) {\n  background: transparent;\n  border: 1px solid #9e9e9e;\n}\n\n.buttons-collection .twemoji {\n  color: #8f8f8f;\n  margin-right: 4px;\n}\n"
  },
  {
    "path": "docs/templates/base.md.j2",
    "content": "{% block title %}\n# {{ title }}\n{# templates inheriting from this base template can re-define the title block #}\n{% endblock %}\n\nDocumentation for [`{{ pytest_node_id }}@{{ short_git_ref }}`]({{ source_code_url }}).\n\n{% if title != \"Spec\" %}\n!!! example \"Generate fixtures for these test cases for {{ target_or_valid_fork }} with:\"\n\n    ```console\n{% if is_benchmark %}\n    fill -v {{ pytest_node_id }} -m benchmark\n{% elif is_stateful %}\n    fill -v {{ pytest_node_id }} -m stateful\n{% else %}\n    fill -v {{ pytest_node_id }} --fork {{ target_or_valid_fork }}\n{% endif %}\n    ```\n{% endif %}\n\n{% block additional_content %}\n{# templates that inherit from base can add an additional_content block here #}\n{% endblock %}"
  },
  {
    "path": "docs/templates/directory.md.j2",
    "content": "{% extends \"base.md.j2\" %}\n{% block title %}\n# {{ title }}\n{% endblock %}\n{% block additional_content %}\n::: {{ package_name }}\n    options:\n        members: no\n{% endblock %}"
  },
  {
    "path": "docs/templates/function.html.j2",
    "content": "<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>{{ title }}()</title>\n    <link rel=\"icon\" href=\"{{ base_url }}img/ETH-logo-icon.svg\" type=\"image/x-icon\">\n    <link href=\"https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css\" rel=\"stylesheet\">\n    <link href=\"https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css\" rel=\"stylesheet\" />\n    <link rel=\"stylesheet\" href=\"https://cdn.datatables.net/2.1.7/css/dataTables.dataTables.min.css\">\n    <link rel=\"stylesheet\" href=\"https://cdn.datatables.net/buttons/3.1.2/css/buttons.dataTables.css\">\n    <link rel=\"stylesheet\" href=\"{{ base_url }}stylesheets/custom.css\">\n</head>\n<div class=\"stand_alone_container\">\n    {% block title %}\n    <h1>Test Function: <code>{{ title }}()</code></h1>\n    {% endblock %}\n    <p>{{ docstring_one_liner }}</p>\n    <p><a href=\"{{ mkdocs_function_page_target }}\">Back to <code>{{ title }}()</code></a>.</p>\n    {% if cases %}\n    <h2>Parametrized Test Cases</h2>\n    {% include 'function_parameter_datatable.html.j2' %}\n    {% endif %}\n</div>\n<script type=\"text/javascript\" charset=\"utf8\" src=\"https://code.jquery.com/jquery-3.7.1.min.js\"></script>\n<script src=\"https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js\"></script>\n<script type=\"text/javascript\" charset=\"utf8\" src=\"https://cdn.datatables.net/2.1.7/js/dataTables.min.js\"></script>\n<script type=\"text/javascript\" charset=\"utf8\" src=\"https://cdn.datatables.net/buttons/3.1.2/js/dataTables.buttons.js\"></script>\n<script type=\"text/javascript\" charset=\"utf8\" src=\"https://cdn.datatables.net/buttons/3.1.2/js/buttons.dataTables.js\"></script>\n<script type=\"text/javascript\" charset=\"utf8\" src=\"https://cdn.datatables.net/buttons/3.1.2/js/buttons.colVis.min.js\"></script>\n\n<script src=\"{{ base_url }}javascripts/site.js\"></script>\n"
  },
  {
    "path": "docs/templates/function.md.j2",
    "content": "{% extends \"base.md.j2\" %}\n{% block title %}\n---\nsearch:\n  exclude: true\n---\n{#\n    don't include function pages in the mkdocs-material site search index\n    see https://github.com/ethereum/execution-spec-tests/issues/1291\n#}\n\n# `{{ title }}()`\n{% endblock %}\n{% block additional_content %}\n\n::: {{ package_name }}\n    options:\n        filters: [\"^[tT]est*|^Spec*\"]\n\n## Parametrized Test Cases\n\n{% if test_case_count > 1 %}\nThe interactive table below is also available as a [standalone page]({{ html_static_page_target }}).\n{% elif fixture_formats | length > 1 %}\nThis test case is only parametrized by fork and fixture format.\n{% else %}\nThis test case is only parametrized by fork.\n{% endif %}\n\n{% include 'function_parameter_datatable.html.j2' %}\n{% endblock %}\n"
  },
  {
    "path": "docs/templates/function_parameter_datatable.html.j2",
    "content": "<div class=\"control_panel\">\n    <div class=\"panel_row filters\">\n        <div class=\"filter_wrapper\">\n            <label for=\"fork_selector\">\n            <span class=\"twemoji\">\n                <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n                    <path d=\"M6 2a3 3 0 0 1 3 3c0 1.28-.81 2.38-1.94 2.81.09.46.33 1.02.94 1.82 1 1.29 3 3.2 4 4.54 1-1.34 3-3.25 4-4.54.61-.8.85-1.36.94-1.82A3.015 3.015 0 0 1 15 5a3 3 0 0 1 3-3 3 3 0 0 1 3 3c0 1.32-.86 2.45-2.05 2.85-.08.52-.31 1.15-.95 1.98-1 1.34-3 3.25-4 4.55-.61.79-.85 1.35-.94 1.81C14.19 16.62 15 17.72 15 19a3 3 0 0 1-3 3 3 3 0 0 1-3-3c0-1.28.81-2.38 1.94-2.81-.09-.46-.33-1.02-.94-1.81-1-1.3-3-3.21-4-4.55-.64-.83-.87-1.46-.95-1.98A3.015 3.015 0 0 1 3 5a3 3 0 0 1 3-3m0 2a1 1 0 0 0-1 1 1 1 0 0 0 1 1 1 1 0 0 0 1-1 1 1 0 0 0-1-1m12 0a1 1 0 0 0-1 1 1 1 0 0 0 1 1 1 1 0 0 0 1-1 1 1 0 0 0-1-1m-6 14a1 1 0 0 0-1 1 1 1 0 0 0 1 1 1 1 0 0 0 1-1 1 1 0 0 0-1-1Z\"></path>\n                </svg>\n            </span>\n            Fork\n            </label>\n            <select id=\"fork_selector\" class=\"custom_dt_filter\" data-criteria=\"fork\" >\n                <option value=\"all\">All Forks</option>\n                {% set default_fork = target_fork if target_fork in cases | map(attribute='fork') | list else cases | map(attribute='fork') | list | last %}\n                {% for fork in cases | map(attribute='fork') | unique %}\n                <option value=\"{{ fork }}\" {% if fork == default_fork %}selected{% endif %}>{{ fork }}</option>\n                {% endfor %}\n            </select>\n        </div>\n        <div class=\"filter_wrapper\">\n            <label for=\"fixture_selector\">\n            <span class=\"twemoji\">\n                <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n                <path d=\"M21.818 3.646H2.182C.982 3.646 0 4.483 0 5.505v3.707h2.182V5.486h19.636v13.036H2.182v-3.735H0v3.726c0 1.022.982 1.84 2.182 1.84h19.636c1.2 0 2.182-.818 2.182-1.84V5.505c0-1.032-.982-1.859-2.182-1.859Zm-10.909 12.07L15.273 12l-4.364-3.717v2.787H0v1.859h10.909v2.787Z\"></path>\n                </svg>\n            </span>\n            Fixture Type\n            </label>\n            <select id=\"fixture_selector\" class=\"custom_dt_filter\" data-criteria=\"fixture\">\n                <option value=\"all\">All Fixture Types</option>\n                {% set default_fixture_type = \"STATE_TEST\" if \"STATE_TEST\" in cases | map(attribute='fixture_type') | list else cases[0].fixture_type %}\n                {% for fixture_type in cases | map(attribute='fixture_type') | unique %}\n                <option value=\"{{ fixture_type }}\" {% if fixture_type == default_fixture_type %}selected{% endif %}>{{ fixture_type }}</option>\n                {% endfor %}\n            </select>\n        </div>\n    </div>\n    <div class=\"panel_row search\">\n        <div class=\"search_wrapper\">\n            <input type=\"text\" class=\"form-control\" id=\"custom_dt_search\" placeholder=\"🔍 Search test cases...\">\n        </div>\n    </div>\n</div>\n<table id=\"test_table\" class=\"display compact nowrap\">\n    <thead>\n        <tr>\n            <th>Test ID (Abbreviated)</th>\n            {% for header in cases[0].params.keys() %}\n            <th>{{ header }}</th>\n            {% endfor %}\n        </tr>\n    </thead>\n    <tbody>\n        {% for case in cases %}\n        <tr data-fork=\"{{ case.fork }}\" data-fixture=\"{{ case.fixture_type }}\">\n            <td> \n                <!-- Display abbreviated pytest nodeid, but show a tooltip for the full nodeid -->\n                <abbr class=\"copy-id\" data-full-id=\"{{ case.full_id }}\" title=\"{{ case.full_id }}\">\n                    ...{{ case.abbreviated_id }}\n                </abbr>\n            </td>\n            {% for value in case.params.values() %}\n            <td>{{ value }}</td>\n            {% endfor %}\n        </tr>\n        {% endfor %}\n    </tbody>\n</table>\n"
  },
  {
    "path": "docs/templates/markdown_header.md.j2",
    "content": "!!! note \"Markdown Content\"\n    Below is the verbatim markdown content from [`{{ pytest_node_id }}@{{ short_git_ref }}`]({{ source_code_url }}).\n\n{# intentional additional newlines to force md file header/content to a newline #}\n"
  },
  {
    "path": "docs/templates/module.md.j2",
    "content": "{% extends \"base.md.j2\" %}\n\n{% block title %}\n# {{ title }}\n{% endblock %}\n\n{% block additional_content %}\n\n::: {{ package_name }}\n{% if \"Spec\" in title %}\n    options:\n        filters: [\"^Spec*\"]\n{% else %}\n    options:\n        members: no\n{% endif %}\n\n{% if test_functions %}\n## Test Functions Overview\n\n| Name | Type | Cases ({{ target_or_valid_fork }}) | Description |\n|------|------|-------------------------------|-------------|\n{% for test_function in test_functions %}\n| [`{{ test_function.name }}`](./{{ test_function.name }}.md) | {{ test_function.test_type }} | {{ test_function.test_case_count }} | {{ test_function.docstring_one_liner }} |\n{% endfor %}\n{% endif %}\n\n{% endblock %}"
  },
  {
    "path": "docs/writing_tests/adding_a_new_test.md",
    "content": "# Adding a New Test\n\nAll test cases are located underneath the `tests` directory, which are then organized by fork. Each fork contains sub-directories containing test sub-categories.\n\n```text\n📁 execution-test-specs/\n├─╴📁 tests/\n|   ├── 📄 __init__.py\n│   ├── 📁 cancun/\n|   |    ├── 📄 __init__.py\n│   |    └── 📁 eip4844_blobs/\n|   |        ├── 📄 __init__.py\n|   |        ├── 📄 test_blobhash_opcode.py\n|   |        ├── 📄 test_excess_blob_gas.py\n|   |        └── 📄 ...\n|   ├── 📁 shanghai\n|   |    ├── 📁 eip3651_warm_coinbase\n|   |    |   ├── 📄 __init__.py\n|   |    |   └── 📄 test_warm_coinbase.py\n|   |    ├── 📁 eip3855_push0\n|   |    |   ├── 📄 __init__.py\n|   |    |   └── 📄 test_push0.py\n|   |    ├── 📁...\n|   |    ...\n│   └── 📁 ...\n```\n\nEach category/sub-directory may have multiple Python test modules (`*.py`) which in turn may contain many test functions. The test functions themselves are always parametrized by fork (by the framework).\n\nA new test can be added by either:\n\n- Adding a new `test_` python function to an existing file in any of the existing category subdirectories within `tests`.\n- Creating a new source file in an existing category, and populating it with the new test function(s).\n- Creating an entirely new category by adding a subdirectory in `tests` with the appropriate source files and test functions.\n"
  },
  {
    "path": "docs/writing_tests/benchmarks.md",
    "content": "# Benchmark Test Cases\n\nBenchmark tests aim to maximize the usage of a specific opcode, precompile, or operation within a transaction or block. They are located in the `./tests/benchmarks` folder and the available test cases are documented in [test case reference](../tests/benchmark/index.md).\n\nTo fill a benchmark test, in addition to the usual test flags, you must include the `-m benchmark` flag. This is necessary because benchmark tests are ignored by default; they must be manually selected via the `benchmark` pytest marker (=\"tag\"). This marker is applied to all tests under `./tests/benchmark/` automatically by the framework.\n\n**Note:** Benchmark tests are now only available starting from the `Prague` fork. Tests targeting earlier forks (`Cancun` or prior) are not supported in benchmark mode.\n\n## Setting the Gas Limit for Benchmarking\n\nTo consume the full benchmark gas limit, use the `gas_benchmark_value` fixture as the gas limit:\n\n```py\ndef test_benchmark(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    gas_benchmark_value: int\n):\n    ...\n```\n\nYou can specify the block gas limit used in benchmark tests by setting the `--gas-benchmark-values` flag. This flag accepts a comma-separated list of values (in millions of gas), e.g. `--gas-benchmark-values 1,10,45,60`. This example would run the test 4 times, using a `gas_benchmark_value` of 1M, 10M, 45M, and 60M respectively.\n\nDo not configure the transaction/block gas limit to `env.gas_limit`. When running in benchmark mode, the test framework sets this value to a very large number (e.g., `1_000_000_000_000`), this setup allows the framework to reuse a single genesis file for all specified gas limits. I.e., the example below is invalid:\n\n```py\ndef test_benchmark(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    env: Environment\n):\n    ...\n    tx = Transaction(\n        to=opcode_address,\n        gas_limit=env.gas_limit, # Do not set the gas_limit manually.\n        sender=pre.fund_eoa(),\n    )\n    ...\n```\n\n## Expected Gas Usage\n\nIn benchmark mode, the developer should set the expected gas consumption using the `expected_benchmark_gas_used` field. Benchmark tests do not need to consume the full gas limit, instead, you could calculate and specify the expected usage. If `expected_benchmark_gas_used` is not set, the test will fall back to using `gas_benchmark_value` as the expected value.\n\n```py\n@pytest.mark.valid_from(\"Prague\")\ndef test_empty_block(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n):\n    \"\"\"Test running an empty block as a baseline for fixed proving costs.\"\"\"\n    blockchain_test(\n        pre=pre,\n        post={},\n        blocks=[Block(txs=[])],\n        expected_benchmark_gas_used=0,\n    )\n```\n\nThis is a safety check to make sure the benchmark works as expected. For example, if a test uses the `JUMP` instruction but the jump destination is invalid, each transaction will stop early. That means it won't use as much gas as we expected.\n\nThis check helps catch such issues. As a result, the post-storage comparison method via `SSTORE` is no longer needed, thereby reducing the additional storage cost.\n\nHowever, in cases where it is difficult to determine the total gas usage, or if an alternative verification method is used, developers may set `skip_gas_used_validation` to `True` to disable the gas usage check.\n"
  },
  {
    "path": "docs/writing_tests/checklist_templates/eip_testing_checklist_template.md",
    "content": "<!-- markdownlint-disable MD001 (MD001=heading-increment) -->\n# EIP Execution Layer Testing Checklist Template\n\nDepending on the changes introduced by an EIP, the following template is the minimum baseline to guarantee test coverage of the Execution Layer features.\n\n## Checklist Progress Tracker\n\n| Total Checklist Items | Covered Checklist Items | Percentage |\n| --------------------- | ----------------------- | ---------- |\n| TOTAL_CHECKLIST_ITEMS | COVERED_CHECKLIST_ITEMS | PERCENTAGE |\n\n<!-- WARNINGS LINE -->\n\n## General\n\n#### Code coverage\n\n| ID                                    | Description                                                                                                                                                                                                  | Status | Tests |\n| ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------ | ----- |\n| `general/code_coverage/eels`          | Run produced tests against [EELS](https://github.com/ethereum/execution-specs) and verify that line code coverage of new added lines for the EIP is 100%, with only exceptions being unreachable code lines. |        |       |\n| `general/code_coverage/test_coverage` | Run coverage on the test code itself (as a basic logic sanity check), i.e., `uv run fill --cov tests`.                                                                                                       |        |       |\n| `general/code_coverage/second_client` | Optional - Run against a second client and verify sufficient code coverage over new code added for the EIP.                                                                                                  |        |       |\n\n#### Fuzzing\n\nFuzzing is recommended to be performed on EIPs that introduce new cryptography primitives.\n\nSee [holiman/goevmlab](https://github.com/holiman/goevmlab) for an example of a fuzzing framework for the EVM.\n\n## New Opcode\n\nThe EIP introduces one or more new opcodes to the EVM.\n\n### Test Vectors\n\n#### Memory expansion\n\nIf the opcode execution can expand the memory size, either by writing to memory or reading from an offset that exceeds current memory, or interaction of both parameters (size of zero should never result in memory expansion, regardless of offset value).\n\n| ID                                               | Description                                                      | Status | Tests |\n| ------------------------------------------------ | ---------------------------------------------------------------- | ------ | ----- |\n| `opcode/test/mem_exp/zero_bytes_zero_offset` | Zero bytes expansion with zero-offset.                           |        |       |\n| `opcode/test/mem_exp/zero_bytes_max_offset`  | Zero bytes expansion with 2\\*\\*256-1 offset.                     |        |       |\n| `opcode/test/mem_exp/single_byte`            | Single byte expansion.                                           |        |       |\n| `opcode/test/mem_exp/31_bytes`               | 31 bytes expansion.                                              |        |       |\n| `opcode/test/mem_exp/32_bytes`               | 32 bytes expansion.                                              |        |       |\n| `opcode/test/mem_exp/33_bytes`               | 33 bytes expansion.                                              |        |       |\n| `opcode/test/mem_exp/64_bytes`               | 64 bytes expansion.                                              |        |       |\n| `opcode/test/mem_exp/2_32_minus_one_bytes`   | `2**32-1` bytes expansion.                                       |        |       |\n| `opcode/test/mem_exp/2_32_bytes`             | 2\\*\\*32 bytes expansion.                                         |        |       |\n| `opcode/test/mem_exp/2_64_minus_one_bytes`   | 2\\*\\*64-1 bytes expansion.                                       |        |       |\n| `opcode/test/mem_exp/2_64_bytes`             | 2\\*\\*64 bytes expansion.                                         |        |       |\n| `opcode/test/mem_exp/2_256_minus_one_bytes`  | 2\\*\\*256-1 bytes expansion (Should always result in Out-of-gas). |        |       |\n\n#### Stack\n\n##### Stack Overflow\n\nIf the opcode pushes one or more items to the stack, and the opcode pushes more elements than it pops, verify that the opcode execution results in exceptional abort when pushing elements to the stack would result in the stack having more than 1024 elements.\n\n| ID                               | Description     | Status | Tests |\n| -------------------------------- | --------------- | ------ | ----- |\n| `opcode/test/stack_overflow` | Stack Overflow. |        |       |\n\n##### Stack Underflow\n\nIf the opcode pops one or more items to the stack, or it has a minimum stack height of one or more (e.g. `DUPN` requires a minimum amount of elements in the stack even when it does not pop any element from it), verify that the opcode execution results in exceptional abort then stack has 1 less item than the minimum stack height expected.\n\n| ID                                | Description      | Status | Tests |\n| --------------------------------- | ---------------- | ------ | ----- |\n| `opcode/test/stack_underflow` | Stack Underflow. |        |       |\n\n##### Stack Complex Operations\n\nIf opcode performs stack operations more complex than simple pop/push (e.g. the opcode has a data portion that specifies a variable to access a specific stack element), perform the following test combinations.\n\n| ID                                                            | Description                                              | Status | Tests |\n| ------------------------------------------------------------- | -------------------------------------------------------- | ------ | ----- |\n| `opcode/test/stack_complex_operations/stack_heights/zero` | Operation on an empty stack (Potential stack-underflow). |        |       |\n| `opcode/test/stack_complex_operations/stack_heights/odd`  | Operation on a stack with an odd height.                 |        |       |\n| `opcode/test/stack_complex_operations/stack_heights/even` | Operation on a stack with an even height.                |        |       |\n\n##### Stack Manipulation With Data Portion Variables\n\nIf the opcode contains variables in its data portion, for each variable `n` of the opcode that accesses the nth stack item, test `n` being.\n\n| ID                                                           | Description        | Status | Tests |\n| ------------------------------------------------------------ | ------------------ | ------ | ----- |\n| `opcode/test/stack_complex_operations/data_portion_variables/top`    | Top stack item.    |        |       |\n| `opcode/test/stack_complex_operations/data_portion_variables/bottom` | Bottom stack item. |        |       |\n| `opcode/test/stack_complex_operations/data_portion_variables/middle` | Middle stack item. |        |       |\n\n#### Execution context\n\nEvaluate opcode's behavior in different execution contexts.\n\n##### `CALL`\n\nVerify opcode operation in a subcall frame originated from a `CALL` opcode.\n\n| ID                                       | Description | Status | Tests |\n| ---------------------------------------- | ----------- | ------ | ----- |\n| `opcode/test/execution_context/call` | `CALL`.     |        |       |\n\n##### `STATICCALL`\n\nVerify opcode operation in a subcall frame originated from a `STATICCALL` opcode.\n\n| ID                                                                 | Description                                                                                                                                                                                                                                                                                | Status | Tests |\n| ------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------ | ----- |\n| `opcode/test/execution_context/staticcall` | `STATICCALL`.     |        |       |\n| `opcode/test/execution_context/staticcall/ban_check`           | Verify exceptional abort if the opcode attempts to modify the code, storage or balance of an account.                                                                                                                                                                                      |        |       |\n| `opcode/test/execution_context/staticcall/ban_no_modification` | If the opcode is completely banned from static contexts, verify that even when its inputs would not cause any account modification, the opcode still results in exceptional abort of the execution (e.g. `PAY` with zero value, or `SSTORE` to the value it already has in the storage). |        |       |\n| `opcode/test/execution_context/staticcall/sub_calls`           | Verify sub-calls using other opcodes (e.g. `CALL`, `DELEGATECALL`, etc) also results in the same exceptional abort behavior.                                                                                                                                                               |        |       |\n\n##### `DELEGATECALL`\n\nVerify opcode operation in a subcall frame originated from a `DELEGATECALL` opcode.\n\n| ID                                                       | Description                                                                                                                                                                   | Status | Tests |\n| -------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------ | ----- |\n| `opcode/test/execution_context/delegatecall`         | `DELEGATECALL`.                                                                                                                                                               |        |       |\n| `opcode/test/execution_context/delegatecall/storage` | If the opcode modifies the storage of the account currently executing it, verify that only the account that is delegating execution is the one that has its storage modified. |        |       |\n| `opcode/test/execution_context/delegatecall/balance` | If the opcode modifies the balance of the account currently executing it, verify that only the account that is delegating execution is the one that has its balance modified. |        |       |\n| `opcode/test/execution_context/delegatecall/code`    | If the opcode modifies the code of the account currently executing it, verify that only the account that is delegating execution is the one that has its code modified.       |        |       |\n\n##### `CALLCODE`\n\nVerify opcode operation in a subcall frame originated from a `CALLCODE` opcode.\n\n| ID                                           | Description | Status | Tests |\n| -------------------------------------------- | ----------- | ------ | ----- |\n| `opcode/test/execution_context/callcode` | `CALLCODE`. |        |       |\n\n##### Initcode\n\nVerify opcode behaves as expected when running during the initcode phase of contract creation.\n\n| ID                                                           | Description                                                                                  | Status | Tests |\n| ------------------------------------------------------------ | -------------------------------------------------------------------------------------------- | ------ | ----- |\n| `opcode/test/execution_context/initcode/behavior`        | Initcode operation.                                                                          |        |       |\n| `opcode/test/execution_context/initcode/behavior/tx`     | Initcode of a contract creating transaction.                                                 |        |       |\n| `opcode/test/execution_context/initcode/behavior/opcode` | Initcode of a contract creating opcode (including itself if opcode creates a contract).      |        |       |\n| `opcode/test/execution_context/initcode/reentry`         | Initcode re-entry: using the same initcode and same address (e.g. CREATE2->REVERT->CREATE2). |        |       |\n\n##### Set-code Delegated Account\n\nVerify opcode operations are applied to the set-code account and do not affect the address that is the target of the delegation.\n\n| ID                                           | Description                 | Status | Tests |\n| -------------------------------------------- | --------------------------- | ------ | ----- |\n| `opcode/test/execution_context/set_code` | Set-code delegated account. |        |       |\n\n##### Transaction Context\n\nIf opcode changes behavior depending on particular transaction properties, test using multiple values for each property.\n\n| ID                                             | Description                           | Status | Tests |\n| ---------------------------------------------- | ------------------------------------- | ------ | ----- |\n| `opcode/test/execution_context/tx_context` | Transaction-context dependent opcode. |        |       |\n\n##### Block Context\n\nIf opcode changes behavior depending on particular block properties, test using multiple values for each property.\n\n| ID                                                | Description                     | Status | Tests |\n| ------------------------------------------------- | ------------------------------- | ------ | ----- |\n| `opcode/test/execution_context/block_context` | Block-context dependent opcode. |        |       |\n\n#### Return data\n\nVerify proper return data buffer overwriting if the opcode is meant to interact with it, otherwise verify that the return data buffer is unaffected.\n\n| ID                                           | Description                            | Status | Tests |\n| -------------------------------------------- | -------------------------------------- | ------ | ----- |\n| `opcode/test/return_data/buffer/current` | Return buffer at current call context. |        |       |\n| `opcode/test/return_data/buffer/parent`  | Return buffer at parent call context.  |        |       |\n\n#### Gas Usage\n\n##### Normal Operation\n\nVerify gas usage affectation of each stack argument or memory input consumed by the opcode.\n\n| ID                                 | Description                 | Status | Tests |\n| ---------------------------------- | --------------------------- | ------ | ----- |\n| `opcode/test/gas_usage/normal` | Normal operation gas usage. |        |       |\n\n##### Memory Expansion\n\nVerify that the memory expansion correctly follows the gas calculation.\n\n| ID                                           | Description       | Status | Tests |\n| -------------------------------------------- | ----------------- | ------ | ----- |\n| `opcode/test/gas_usage/memory_expansion` | Memory expansion. |        |       |\n\n##### Extra Gas\n\nVerify that attempting to execute the opcode when gas available is 1 more than the required gas results in exceptional abort.\n\n| ID                                               | Description                         | Status | Tests |\n| ------------------------------------------------ | ----------------------------------- | ------ | ----- |\n| `opcode/test/gas_usage/extra_gas` | extra gas should not fail the execution  |        |       |\n\n##### Out-Of-Gas\n\nVerify that attempting to execute the opcode when gas available is 1 less than the required gas results in exceptional abort.\n\n| ID                                               | Description                         | Status | Tests |\n| ------------------------------------------------ | ----------------------------------- | ------ | ----- |\n| `opcode/test/gas_usage/out_of_gas_execution` | Out-of-gas due to opcode inputs.    |        |       |\n| `opcode/test/gas_usage/out_of_gas_memory`    | Out-of-gas due to memory expansion. |        |       |\n\n##### Order-of-operations\n\nIf the opcode requires different gas stipends for other operations (e.g. contract creation, cold/warm account access), create one case for each operation (ideally independent of each other) and the listed cases for each.\n\n| ID                                                    | Description                                                        | Status | Tests |\n| ----------------------------------------------------- | ------------------------------------------------------------------ | ------ | ----- |\n| `opcode/test/gas_usage/order_of_operations/exact` | Success using the exact amount of gas required for the stipend.    |        |       |\n| `opcode/test/gas_usage/order_of_operations/oog`   | OOG with a 1-gas-difference from the gas required for the stipend. |        |       |\n\n#### Terminating opcode\n\nIf an opcode is terminating, meaning it results in the current call context to end execution.\n\n| ID                                                | Description                 | Status | Tests |\n| ------------------------------------------------- | --------------------------- | ------ | ----- |\n| `opcode/test/terminating/scenarios/top_level` | Top-level call termination. |        |       |\n| `opcode/test/terminating/scenarios/sub_level` | Sub-level call termination. |        |       |\n| `opcode/test/terminating/scenarios/initcode`  | Initcode termination.       |        |       |\n\n#### Aborting/Reverting opcode\n\nIf the terminating opcode is meant to rollback the executing call frame, verify the listed events are properly rolled back.\n\n| ID                                               | Description         | Status | Tests |\n| ------------------------------------------------ | ------------------- | ------ | ----- |\n| `opcode/test/terminating/rollback/balance`   | Balance changes.    |        |       |\n| `opcode/test/terminating/rollback/storage`   | Storage changes.    |        |       |\n| `opcode/test/terminating/rollback/contracts` | Contract creations. |        |       |\n| `opcode/test/terminating/rollback/nonce`     | Nonce increments.   |        |       |\n| `opcode/test/terminating/rollback/logs`      | Log events.         |        |       |\n\n#### Out-of-bounds checks\n\nIf the opcode has out-of-bounds conditions in its parameters/inputs.\n\n| ID                                                  | Description                       | Status | Tests |\n| --------------------------------------------------- | --------------------------------- | ------ | ----- |\n| `opcode/test/out_of_bounds/verify/max`          | Max value for each parameter.     |        |       |\n| `opcode/test/out_of_bounds/verify/max_plus_one` | Max value + 1 for each parameter. |        |       |\n\n#### Exceptional Abort\n\nIf the opcode has conditions, either inputs or execution context states, that should cause exceptional abort and are different than out-of-gas or stack overflow or underflow.\n\n| ID                                  | Description                   | Status | Tests |\n| ----------------------------------- | ----------------------------- | ------ | ----- |\n| `opcode/test/exceptional_abort` | Exceptional abort conditions. |        |       |\n\n#### Data portion\n\nIf an opcode has a data portion, meaning the `N` bytes following the opcode in the contract bytecode are skipped from execution.\n\n| ID                                       | Description                                                                      | Status | Tests |\n| ---------------------------------------- | -------------------------------------------------------------------------------- | ------ | ----- |\n| `opcode/test/data_portion/all_zeros` | All zeros data portion.                                                          |        |       |\n| `opcode/test/data_portion/max_value` | Max value data portion (`2**N-1` where `N` is the bit size of the data portion). |        |       |\n| `opcode/test/data_portion/jump`      | Jump into the data portion.                                                      |        |       |\n\n#### Contract creation\n\nIf the opcode execution results in the creation of a new contract in the state.\n\n##### Correct Creation\n\nVerify contract is created at the expected address given multiple inputs.\n\n| ID                                          | Description          | Status | Tests |\n| ------------------------------------------- | -------------------- | ------ | ----- |\n| `opcode/test/contract_creation/address` | Address calculation. |        |       |\n\n##### Creation Failure\n\nThe contract creation fails given the listed conditions.\n\n| ID                                                             | Description                                                                                       | Status | Tests |\n| -------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------ | ----- |\n| `opcode/test/contract_creation/failure/oog`                | Out-of-gas when available gas is less than minimum contract creation stipend.                     |        |       |\n| `opcode/test/contract_creation/failure/insufficient_value` | Opcode has a value parameter and the caller does not have enough funds.                           |        |       |\n| `opcode/test/contract_creation/failure/collision`          | Creation would result in an address collision with an existing contract or EOA-delegated address. |        |       |\n\n##### Recursive Contract Creation\n\nOpcode is used to attempt to recreate a contract that is currently mid-creation by a previous call of the same opcode.\n\n| ID                                            | Description                                   | Status | Tests |\n| --------------------------------------------- | --------------------------------------------- | ------ | ----- |\n| `opcode/test/contract_creation/recursive` | Recursive contract creation using the opcode. |        |       |\n\n#### Fork transition\n\n| ID                                        | Description                                                                                                                               | Status | Tests |\n| ----------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ------ | ----- |\n| `opcode/test/fork_transition/invalid` | Exceptional abort if executed before its activation fork/after its deactivation fork.                                                     |        |       |\n| `opcode/test/fork_transition/at`      | Verify correct opcode behavior at transition block, in the case of opcodes which behavior depends on current or parent block information. |        |       |\n\n### Framework Changes\n\n- Add opcode to `src/ethereum_test_vm/opcode.py`\n- Add opcode to relevant methods in the fork where the EIP is introduced in `src/ethereum_test_forks/forks/forks.py`\n\n## New Precompile\n\nThe EIP introduces one or more new precompiles.\n\n### Test Vectors\n\n#### Call contexts\n\nEvaluate precompile behavior when called using different call opcodes or called from different execution contexts.\n\n##### `CALL`\n\nVerify precompile operation when called using the `CALL` opcode.\n\n| ID                                         | Description | Status | Tests |\n| ------------------------------------------ | ----------- | ------ | ----- |\n| `precompile/test/call_contexts/normal` | `CALL`.     |        |       |\n\n##### `DELEGATECALL`\n\nVerify precompile operation when called using the `DELEGATECALL` opcode.\n\n| ID                                           | Description     | Status | Tests |\n| -------------------------------------------- | --------------- | ------ | ----- |\n| `precompile/test/call_contexts/delegate` | `DELEGATECALL`. |        |       |\n\n##### `STATICCALL`\n\nVerify precompile operation when called using the `STATICCALL` opcode.\n\nIf the precompile is stateful, meaning calling it affects its storage, this call must result in exceptional abort.\n\n| ID                                         | Description   | Status | Tests |\n| ------------------------------------------ | ------------- | ------ | ----- |\n| `precompile/test/call_contexts/static` | `STATICCALL`. |        |       |\n\n##### `CALLCODE`\n\nVerify precompile operation when called using the `CALLCODE` opcode.\n\n| ID                                           | Description | Status | Tests |\n| -------------------------------------------- | ----------- | ------ | ----- |\n| `precompile/test/call_contexts/callcode` | `CALLCODE`. |        |       |\n\n##### Transaction Entry-point\n\nVerify precompile behavior when it's used as `tx.to`.\n\n| ID                                           | Description                            | Status | Tests |\n| -------------------------------------------- | -------------------------------------- | ------ | ----- |\n| `precompile/test/call_contexts/tx_entry` | Precompile as transaction entry-point. |        |       |\n\n##### Initcode call\n\nVerify calling the opcode during initcode execution of a new contract.\n\n| ID                                                  | Description                                                                        | Status | Tests |\n| --------------------------------------------------- | ---------------------------------------------------------------------------------- | ------ | ----- |\n| `precompile/test/call_contexts/initcode/CREATE` | Call from Initcode initiated from a CREATE/CREATE2 opcode.                         |        |       |\n| `precompile/test/call_contexts/initcode/tx`     | Call from Initcode initiated from a contract-creating transaction (`tx.to==None`). |        |       |\n\n##### Precompile as Set-code Delegated Address\n\nTest setting the precompile as a set-code delegated address, and verify no precompile logic is executed.\n\n| ID                                           | Description                 | Status | Tests |\n| -------------------------------------------- | --------------------------- | ------ | ----- |\n| `precompile/test/call_contexts/set_code` | Set code delegated address. |        |       |\n\n#### Inputs\n\n| ID                                             | Description                                                                                                                                                                                                          | Status | Tests |\n| ---------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------ | ----- |\n| `precompile/test/inputs/valid`             | Verify combinations of valid inputs to the precompile.                                                                                                                                                               |        |       |\n| `precompile/test/inputs/valid/boundary`    | Verify all boundary values given the precompile functionality.                                                                                                                                                       |        |       |\n| `precompile/test/inputs/valid/crypto`      | If precompile performs cryptographic operations, verify behavior on all inputs that have special cryptographic properties (e.g. infinity points as inputs, or input values that result in infinity points returned). |        |       |\n| `precompile/test/inputs/all_zeros`         | Verify all zeros input.                                                                                                                                                                                              |        |       |\n| `precompile/test/inputs/max_values`        | Verify 2^N-1 where N is a single or multiple valid bit-lengths.                                                                                                                                                      |        |       |\n| `precompile/test/inputs/invalid`           | Verify combinations of invalid inputs to the precompile.                                                                                                                                                             |        |       |\n| `precompile/test/inputs/invalid/crypto`    | Inputs that fail specific mathematical or cryptographic validity checks.                                                                                                                                             |        |       |\n| `precompile/test/inputs/invalid/corrupted` | Inputs that are malformed/corrupted.                                                                                                                                                                                 |        |       |\n\n#### Value Transfer\n\n##### Minimum Fee Precompile\n\nIf the precompile requires a minimum value (fee) to execute, either constant or depending on a formula.\n\n| ID                                             | Description                                                      | Status | Tests |\n| ---------------------------------------------- | ---------------------------------------------------------------- | ------ | ----- |\n| `precompile/test/value_transfer/fee/under` | Calls with the required value amount minus one, expect failure.  |        |       |\n| `precompile/test/value_transfer/fee/exact` | Calls with the exact required amount, expect success.            |        |       |\n| `precompile/test/value_transfer/fee/over`  | Calls with extra value than the required amount, expect success. |        |       |\n\n##### No-Fee Precompile\n\nIf the precompile does not require any minimum value (fee) to execute.\n\n| ID                                             | Description                                                      | Status | Tests |\n| ---------------------------------------------- | ---------------------------------------------------------------- | ------ | ----- |\n| `precompile/test/value_transfer/no_fee` | Sending non-zero value does not cause an exception (unless otherwise specified by the EIP). | | |\n\n#### Out-of-bounds checks\n\nIf the precompile has out-of-bounds conditions in its inputs.\n\n| ID                                               | Description                   | Status | Tests |\n| ------------------------------------------------ | ----------------------------- | ------ | ----- |\n| `precompile/test/out_of_bounds/max`          | Max value for each input.     |        |       |\n| `precompile/test/out_of_bounds/max_plus_one` | Max value + 1 for each input. |        |       |\n\n#### Input Lengths\n\nVerify different combinations of input lengths to the precompile, ensuring the correct minimum fee (if any) is provided.\n\n##### Zero-length Input\n\nRegardless of the input requirements for the precompile.\n\n| ID                                       | Description           | Status | Tests |\n| ---------------------------------------- | --------------------- | ------ | ----- |\n| `precompile/test/input_lengths/zero` | Zero-length calldata. |        |       |\n\n##### Static Required Input Length\n\nIf the precompile has a static required input length.\n\n| ID                                                   | Description                                                                                        | Status | Tests |\n| ---------------------------------------------------- | -------------------------------------------------------------------------------------------------- | ------ | ----- |\n| `precompile/test/input_lengths/static/correct`   | Correct static-length calldata.                                                                    |        |       |\n| `precompile/test/input_lengths/static/too_short` | Calldata too short, where the value represents a correct but truncated input to the precompile.    |        |       |\n| `precompile/test/input_lengths/static/too_long`  | Calldata too long, where the value represents a correct input to the precompile with padded zeros. |        |       |\n\n##### Dynamic Required Input Length\n\nIf the precompile has a variable required input-length based on a formula, test all listed scenarios given different input lengths.\n\n| ID                                                    | Description                                                                                        | Status | Tests |\n| ----------------------------------------------------- | -------------------------------------------------------------------------------------------------- | ------ | ----- |\n| `precompile/test/input_lengths/dynamic/valid`     | Verify correct precompile execution for valid lengths.                                             |        |       |\n| `precompile/test/input_lengths/dynamic/too_short` | Calldata too short, where the value represents a correct but truncated input to the precompile.    |        |       |\n| `precompile/test/input_lengths/dynamic/too_long`  | Calldata too long, where the value represents a correct input to the precompile with padded zeros. |        |       |\n\n#### Gas usage\n\n##### Constant Gas Cost\n\nIf the precompile always charges the same gas cost regardless of input conditions.\n\n| ID                                             | Description                                                         | Status | Tests |\n| ---------------------------------------------- | ------------------------------------------------------------------- | ------ | ----- |\n| `precompile/test/gas_usage/constant/exact` | Verify exact gas consumption.                                       |        |       |\n| `precompile/test/gas_usage/constant/oog`   | Verify exact gas consumption minus one results in out-of-gas error. |        |       |\n\n##### Variable Gas Cost\n\nIf the precompile charges variable gas cost given input conditions, test all listed scenarios using multiple different valid inputs.\n\n| ID                                            | Description                                                         | Status | Tests |\n| --------------------------------------------- | ------------------------------------------------------------------- | ------ | ----- |\n| `precompile/test/gas_usage/dynamic/exact` | Verify exact gas consumption.                                       |        |       |\n| `precompile/test/gas_usage/dynamic/oog`   | Verify exact gas consumption minus one results in out-of-gas error. |        |       |\n\n##### Excessive Gas\n\nVerify spending all block gas in calls to the precompile (Use `Environment().gas_limit` as reference max amount).\n\n| ID                                        | Description          | Status | Tests |\n| ----------------------------------------- | -------------------- | ------ | ----- |\n| `precompile/test/excessive_gas_usage` | Excessive gas usage. |        |       |\n\n#### Fork transition\n\n##### Pre-fork Block Call\n\nVerify that calling the precompile before its activation fork results in a valid call, even for inputs that are expected to be invalid for the precompile, or a zero-gas call.\n\n| ID                                                         | Description         | Status | Tests |\n| ---------------------------------------------------------- | ------------------- | ------ | ----- |\n| `precompile/test/fork_transition/before/invalid_input` | Invalid input call. |        |       |\n| `precompile/test/fork_transition/before/zero_gas`      | Zero-gas call.      |        |       |\n\n##### Cold/Warm Precompile Address State\n\nVerify the cold/warm state of the precompile address depending on the fork activation.\n\n| ID                                                | Description                                                       | Status | Tests |\n| ------------------------------------------------- | ----------------------------------------------------------------- | ------ | ----- |\n| `precompile/test/fork_transition/before/cold` | Precompile address is cold by default before the fork activation. |        |       |\n| `precompile/test/fork_transition/after/warm`  | Precompile address is warm by default after the fork activation.  |        |       |\n\n### Framework Changes\n\n- Add precompile address to relevant methods in the fork where the EIP is introduced in `src/ethereum_test_forks/forks/forks.py`\n\n## Removed Precompile\n\nThe EIP removes one or more precompiles from the existing list of precompiles.\n\n### Test Vectors\n\n#### Fork transition\n\n##### Precompile Operation\n\nVerify that the precompile remains operational up until the last block before the fork is active, and behaves as an account with empty code afterwards.\n\n| ID                                                    | Description                              | Status | Tests |\n| ----------------------------------------------------- | ---------------------------------------- | ------ | ----- |\n| `removed_precompile/test/fork_transition/operational` | Precompile operation on fork activation. |        |       |\n\n##### Cold/Warm Precompile Address State\n\nVerify the cold/warm state of the precompile address depending on the fork activation.\n\n| ID                                                    | Description                                                       | Status | Tests |\n| ----------------------------------------------------- | ----------------------------------------------------------------- | ------ | ----- |\n| `removed_precompile/test/fork_transition/before/warm` | Precompile address is warm by default before the fork activation. |        |       |\n| `removed_precompile/test/fork_transition/after/cold`  | Precompile address is cold by default after the fork activation.  |        |       |\n\n### Framework Changes\n\n- Remove the precompile address from relevant methods in the fork where the EIP is removed in `src/ethereum_test_forks/forks/forks.py`\n\n## New System Contract\n\n### Test Vectors\n\n#### Call contexts\n\nEvaluate precompile behavior when called using different call opcodes or called from different execution contexts.\n\n##### `CALL`\n\nVerify system contract operation when called using the `CALL` opcode.\n\n| ID                                              | Description | Status | Tests |\n| ----------------------------------------------- | ----------- | ------ | ----- |\n| `system_contract/test/call_contexts/normal` | `CALL`.     |        |       |\n\n##### `DELEGATECALL`\n\nVerify system contract operation when called using the `DELEGATECALL` opcode.\n\n| ID                                                | Description     | Status | Tests |\n| ------------------------------------------------- | --------------- | ------ | ----- |\n| `system_contract/test/call_contexts/delegate` | `DELEGATECALL`. |        |       |\n\n##### `STATICCALL`\n\nVerify system contract operation when called using the `STATICCALL` opcode.\n\nIf the system contract is stateful, meaning calling it affects its storage, this call must result in exceptional abort.\n\n| ID                                              | Description   | Status | Tests |\n| ----------------------------------------------- | ------------- | ------ | ----- |\n| `system_contract/test/call_contexts/static` | `STATICCALL`. |        |       |\n\n##### `CALLCODE`\n\nVerify system contract operation when called using the `CALLCODE` opcode.\n\n| ID                                                | Description | Status | Tests |\n| ------------------------------------------------- | ----------- | ------ | ----- |\n| `system_contract/test/call_contexts/callcode` | `CALLCODE`. |        |       |\n\n##### Transaction Entry-point\n\nVerify system contract behavior when it's used as `tx.to`.\n\n| ID                                                | Description                                 | Status | Tests |\n| ------------------------------------------------- | ------------------------------------------- | ------ | ----- |\n| `system_contract/test/call_contexts/tx_entry` | System Contract as transaction entry-point. |        |       |\n\n##### Initcode call\n\nVerify calling the opcode during initcode execution of a new contract.\n\n| ID                                                       | Description                                                                        | Status | Tests |\n| -------------------------------------------------------- | ---------------------------------------------------------------------------------- | ------ | ----- |\n| `system_contract/test/call_contexts/initcode/CREATE` | Call from Initcode initiated from a CREATE/CREATE2 opcode.                         |        |       |\n| `system_contract/test/call_contexts/initcode/tx`     | Call from Initcode initiated from a contract-creating transaction (`tx.to==None`). |        |       |\n\n##### System Contract as Set-code Delegated Address\n\nTest setting the system contract as a set-code delegated address, and verify no system contract side-effects are triggered, even if the actual system contract logic is executed.\n\nIf the system contract requires specific storage pre-conditions to be set for proper execution (e.g. if the contract contains a safety mechanism that prevents it from executing prior to the fork activation), ensure the delegated account has the proper values in the storage to guarantee the correct logic is executed.\n\n| ID                                                | Description                 | Status | Tests |\n| ------------------------------------------------- | --------------------------- | ------ | ----- |\n| `system_contract/test/call_contexts/set_code` | Set code delegated address. |        |       |\n\n#### Inputs\n\n| ID                                                  | Description                                                              | Status | Tests |\n| --------------------------------------------------- | ------------------------------------------------------------------------ | ------ | ----- |\n| `system_contract/test/inputs/valid`             | Verify combinations of valid inputs to the system contract.              |        |       |\n| `system_contract/test/inputs/boundary`          | Verify all boundary values given the system contract functionality.      |        |       |\n| `system_contract/test/inputs/all_zeros`         | Verify all zeros input.                                                  |        |       |\n| `system_contract/test/inputs/max_values`        | Verify 2^N-1 where N is a single or multiple valid bit-lengths.          |        |       |\n| `system_contract/test/inputs/invalid`           | Verify combinations of invalid inputs to the precompile.                 |        |       |\n| `system_contract/test/inputs/invalid/checks`    | Inputs that fail validity checks.                                        |        |       |\n| `system_contract/test/inputs/invalid/crypto`    | Inputs that fail specific mathematical or cryptographic validity checks. |        |       |\n| `system_contract/test/inputs/invalid/corrupted` | Inputs that are malformed/corrupted.                                     |        |       |\n\n#### Value Transfer\n\n##### Minimum Fee System Contract\n\nIf the system contract requires a minimum value (fee) to execute, either constant or depending on a formula.\n\n| ID                                                  | Description                                                      | Status | Tests |\n| --------------------------------------------------- | ---------------------------------------------------------------- | ------ | ----- |\n| `system_contract/test/value_transfer/fee/under` | Calls with the required value amount minus one, expect failure.  |        |       |\n| `system_contract/test/value_transfer/fee/exact` | Calls with the exact required amount, expect success.            |        |       |\n| `system_contract/test/value_transfer/fee/over`  | Calls with extra value than the required amount, expect success. |        |       |\n\n##### No-Fee System Contract\n\nIf the system contract does not require any minimum value (fee) to execute.\n\n| ID                                               | Description                                                                                 | Status | Tests |\n| ------------------------------------------------ | ------------------------------------------------------------------------------------------- | ------ | ----- |\n| `system_contract/test/value_transfer/no_fee` | Sending non-zero value does not cause an exception (unless otherwise specified by the EIP). |        |       |\n\n#### Out-of-bounds checks\n\nIf the system contract has out-of-bounds conditions in its inputs.\n\n| ID                                                    | Description                   | Status | Tests |\n| ----------------------------------------------------- | ----------------------------- | ------ | ----- |\n| `system_contract/test/out_of_bounds/max`          | Max value for each input.     |        |       |\n| `system_contract/test/out_of_bounds/max_plus_one` | Max value + 1 for each input. |        |       |\n\n#### Input Lengths\n\nVerify different combinations of input lengths to the system contract, ensuring the correct minimum fee (if any) is provided.\n\n##### Zero-length Input\n\nRegardless of the input requirements for the system contract.\n\n| ID                                            | Description           | Status | Tests |\n| --------------------------------------------- | --------------------- | ------ | ----- |\n| `system_contract/test/input_lengths/zero` | Zero-length calldata. |        |       |\n\n##### Static Required Input Length\n\nIf the system contract has a static required input length.\n\n| ID                                                        | Description                                                                                      | Status | Tests |\n| --------------------------------------------------------- | ------------------------------------------------------------------------------------------------ | ------ | ----- |\n| `system_contract/test/input_lengths/static/correct`   | Correct static-length calldata.                                                                  |        |       |\n| `system_contract/test/input_lengths/static/too_short` | Calldata too short, where the value represents a correct but truncated input to the contract.    |        |       |\n| `system_contract/test/input_lengths/static/too_long`  | Calldata too long, where the value represents a correct input to the contract with padded zeros. |        |       |\n\n##### Dynamic Required Input Length\n\nIf the system contract has a variable required input-length based on a formula, test all listed scenarios given different input lengths.\n\n| ID                                                         | Description                                                                                      | Status | Tests |\n| ---------------------------------------------------------- | ------------------------------------------------------------------------------------------------ | ------ | ----- |\n| `system_contract/test/input_lengths/dynamic/valid`     | Verify correct system contract execution for valid lengths.                                      |        |       |\n| `system_contract/test/input_lengths/dynamic/too_short` | Calldata too short, where the value represents a correct but truncated input to the contract.    |        |       |\n| `system_contract/test/input_lengths/dynamic/too_long`  | Calldata too long, where the value represents a correct input to the contract with padded zeros. |        |       |\n\n#### Gas usage\n\n##### Constant Gas Cost\n\nIf the system contract always charges the same gas cost regardless of input conditions.\n\n| ID                                                  | Description                                                         | Status | Tests |\n| --------------------------------------------------- | ------------------------------------------------------------------- | ------ | ----- |\n| `system_contract/test/gas_usage/constant/exact` | Verify exact gas consumption.                                       |        |       |\n| `system_contract/test/gas_usage/constant/oog`   | Verify exact gas consumption minus one results in out-of-gas error. |        |       |\n\n##### Variable Gas Cost\n\nIf the system contract charges variable gas cost given input conditions, test all listed scenarios using multiple different valid inputs.\n\n| ID                                                 | Description                                                         | Status | Tests |\n| -------------------------------------------------- | ------------------------------------------------------------------- | ------ | ----- |\n| `system_contract/test/gas_usage/dynamic/exact` | Verify exact gas consumption.                                       |        |       |\n| `system_contract/test/gas_usage/dynamic/oog`   | Verify exact gas consumption minus one results in out-of-gas error. |        |       |\n\n#### Excessive Gas Cases\n\n##### Excessive Gas Usage During Block Execution\n\nVerify spending all block gas in calls to system contract (Use `Environment().gas_limit` as reference max amount).\n\n| ID                                                 | Description              | Status | Tests |\n| -------------------------------------------------- | ------------------------ | ------ | ----- |\n| `system_contract/test/excessive_gas/block_gas` | Exhaust block gas limit. |        |       |\n\n##### Excessive Gas Usage During System Call\n\nIf possible, produce a scenario where, given all transactions executed within the block result in the execution of the contract by the system address would result in excessive gas usage.\n\n| ID                                                   | Description                   | Status | Tests |\n| ---------------------------------------------------- | ----------------------------- | ------ | ----- |\n| `system_contract/test/excessive_gas/system_call` | Excessive gas on system call. |        |       |\n\n#### System Contract Deployment\n\n| ID                                            | Description                                                                                                                                        | Status | Tests |\n| --------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | ------ | ----- |\n| `system_contract/test/deployment/missing` | Verify block execution behavior after fork activation if the system contract has not been deployed (Depending on the EIP, block could be invalid). |        |       |\n| `system_contract/test/deployment/address` | Verify deployment transaction results in the system contract being deployed to the expected address.                                               |        |       |\n\n#### Contract Variations\n\nVerify execution of the different variations of the contract for different networks (if any) results in the expected behavior.\n\n| ID                                                      | Description                            | Status | Tests |\n| ------------------------------------------------------- | -------------------------------------- | ------ | ----- |\n| `system_contract/test/contract_variations/networks` | Different network contract variations. |        |       |\n\n#### Contract Substitution\n\nSubstitute the default system contract with a mock contract to modify its behavior when called by the system address (at the end of the block execution).\n\n| ID                                                                 | Description                                                                         | Status | Tests |\n| ------------------------------------------------------------------ | ----------------------------------------------------------------------------------- | ------ | ----- |\n| `system_contract/test/contract_substitution/return_lengths`    | Modified return value lengths.                                                      |        |       |\n| `system_contract/test/contract_substitution/logs`              | Modified to emit logs or modified logs.                                             |        |       |\n| `system_contract/test/contract_substitution/exception`         | Modified to cause an exception (e.g. invalid opcode).                               |        |       |\n| `system_contract/test/contract_substitution/gas_limit_success` | Modified to consume 30,000,000 million gas exactly, execution should be successful. |        |       |\n| `system_contract/test/contract_substitution/gas_limit_failure` | Modified to consume 30,000,001 million gas exactly, execution should fail.          |        |       |\n\n#### Fork transition\n\nVerify calling the system contract before its activation fork results in correct behavior (depends on the system contract implementation).\n\n| ID                                                          | Description                       | Status | Tests |\n| ----------------------------------------------------------- | --------------------------------- | ------ | ----- |\n| `system_contract/test/fork_transition/call_before_fork` | Call system contract before fork. |        |       |\n\n### Framework Changes\n\n- Add system contract address to relevant methods in the fork where the EIP is introduced in `src/ethereum_test_forks/forks/forks.py`\n- Add system contract bytecode to the returned value of `pre_allocation_blockchain` in the fork where the EIP is introduced in `src/ethereum_test_forks/forks/forks.py`\n\n## New Transaction Type\n\n### Test Vectors\n\n#### Intrinsic Validity\n\nVerify the transaction (and the block it is included in) is valid or invalid given the intrinsic validity of the new transaction type, depending on each test scenario.\n\nFor each new field that affects the intrinsic gas cost of the transaction verify all listed scenarios.\n\n##### Gas Limit\n\nNote: Data floor gas cost affects the intrinsic validity of all transaction types, so it must be taken into account when designing all test scenarios.\n\n| ID                                                                    | Description                                                                        | Status | Tests |\n| --------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ------ | ----- |\n| `transaction_type/test/intrinsic_validity/gas_limit/exact`        | Provide the exact intrinsic gas as `gas_limit` value to the transaction.           |        |       |\n| `transaction_type/test/intrinsic_validity/gas_limit/insufficient` | Provide the exact intrinsic gas minus one as `gas_limit` value to the transaction. |        |       |\n\n##### Gas Fee\n\n| ID                                                                                     | Description                                                    | Status | Tests |\n| -------------------------------------------------------------------------------------- | -------------------------------------------------------------- | ------ | ----- |\n| `transaction_type/test/intrinsic_validity/max_fee/max_priority_lower_than_max_fee` | Invalid if `tx.max_priority_fee_per_gas < tx.max_fee_per_gas`. |        |       |\n| `transaction_type/test/intrinsic_validity/max_fee/max_priority_equal_to_max_fee`   | Valid if `tx.max_priority_fee_per_gas == tx.max_fee_per_gas`.  |        |       |\n| `transaction_type/test/intrinsic_validity/max_fee/base_lower`                      | Invalid if `tx.max_fee_per_gas < block.base_fee_per_gas`.      |        |       |\n| `transaction_type/test/intrinsic_validity/max_fee/base_equal`                      | Valid if `tx.max_fee_per_gas < block.base_fee_per_gas`.        |        |       |\n\n##### Chain ID\n\n| ID                                                      | Description                                   | Status | Tests |\n| ------------------------------------------------------- | --------------------------------------------- | ------ | ----- |\n| `transaction_type/test/intrinsic_validity/chain_id` | Invalid if `tx.chain_id != network.chain_id`. |        |       |\n\n##### Nonce\n\n| ID                                                             | Description                                | Status | Tests |\n| -------------------------------------------------------------- | ------------------------------------------ | ------ | ----- |\n| `transaction_type/test/intrinsic_validity/nonce_minus_one` | Invalid if `tx.nonce == sender.nonce - 1`. |        |       |\n| `transaction_type/test/intrinsic_validity/nonce_plus_one`  | Invalid if `tx.nonce == sender.nonce + 1`. |        |       |\n| `transaction_type/test/intrinsic_validity/nonce_exact`     | Valid if `tx.nonce == sender.nonce`.       |        |       |\n\n##### To\n\n| ID                                                | Description                                             | Status | Tests |\n| ------------------------------------------------- | ------------------------------------------------------- | ------ | ----- |\n| `transaction_type/test/intrinsic_validity/to` | Valid/Invalid if `tx.to == None`, depending on the EIP. |        |       |\n\n##### Value\n\n| ID                                                                                 | Description                                                                                  | Status | Tests |\n| ---------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | ------ | ----- |\n| `transaction_type/test/intrinsic_validity/value_non_zero_insufficient_balance` | Invalid if `tx.value == 1` and `account.balance == (tx.max_fee_per_gas * tx.gas_price)`.     |        |       |\n| `transaction_type/test/intrinsic_validity/value_non_zero_sufficient_balance`   | Valid if `tx.value == 1` and `account.balance == (tx.max_fee_per_gas * tx.gas_price) + 1`.   |        |       |\n| `transaction_type/test/intrinsic_validity/value_zero_insufficient_balance`     | Invalid if `tx.value == 0` and `account.balance == (tx.max_fee_per_gas * tx.gas_price) - 1`. |        |       |\n| `transaction_type/test/intrinsic_validity/value_zero_sufficient_balance`       | Valid if `tx.value == 0` and `account.balance == (tx.max_fee_per_gas * tx.gas_price)`.       |        |       |\n\n##### Data\n\n| ID                                                                                 | Description                                                                                                           | Status | Tests |\n| ---------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | ------ | ----- |\n| `transaction_type/test/intrinsic_validity/data_floor_above_intrinsic_gas_cost` | Invalid if `data_floor_cost(len(tx.data)) > tx.intrinsic_gas_cost` and `tx.gas_limit == tx.intrinsic_gas_cost`.       |        |       |\n| `transaction_type/test/intrinsic_validity/data_floor_above_intrinsic_gas_cost` | Valid if `data_floor_cost(len(tx.data)) > tx.intrinsic_gas_cost` and `tx.gas_limit == data_floor_cost(len(tx.data))`. |        |       |\n\n#### Signature\n\nVerify the transaction is correctly rejected if it contains an invalid signature.\n\n| ID                                                                | Description                                                                     | Status | Tests |\n| ----------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------ | ----- |\n| `transaction_type/test/signature/invalid/field_outside_curve` | V, R, S represent a value that is inside of the field but outside of the curve. |        |       |\n\n##### V\n\n| ID                                                  | Description                                                            | Status | Tests |\n| --------------------------------------------------- | ---------------------------------------------------------------------- | ------ | ----- |\n| `transaction_type/test/signature/invalid/v/2`   | `2`.                                                                   |        |       |\n| `transaction_type/test/signature/invalid/v/27`  | `27` (Type-0 transaction valid value).                                 |        |       |\n| `transaction_type/test/signature/invalid/v/28`  | `28` (Type-0 transaction valid value).                                 |        |       |\n| `transaction_type/test/signature/invalid/v/35`  | `35` (Type-0 replay-protected transaction valid value for chain id 1). |        |       |\n| `transaction_type/test/signature/invalid/v/36`  | `36` (Type-0 replay-protected transaction valid value for chain id 1). |        |       |\n| `transaction_type/test/signature/invalid/v/max` | `2**8-1`.                                                              |        |       |\n\n##### R\n\n| ID                                                                   | Description     | Status | Tests |\n| -------------------------------------------------------------------- | --------------- | ------ | ----- |\n| `transaction_type/test/signature/invalid/r/0`                    | `0`.            |        |       |\n| `transaction_type/test/signature/invalid/r/secp256k1n_minus_one` | `SECP256K1N-1`. |        |       |\n| `transaction_type/test/signature/invalid/r/secp256k1n`           | `SECP256K1N`.   |        |       |\n| `transaction_type/test/signature/invalid/r/secp256k1n_plus_one`  | `SECP256K1N+1`. |        |       |\n| `transaction_type/test/signature/invalid/r/max_minus_one`        | `2**256-1`.     |        |       |\n| `transaction_type/test/signature/invalid/r/max`                  | `2**256`.       |        |       |\n\n##### S\n\n| ID                                                                        | Description                            | Status | Tests |\n| ------------------------------------------------------------------------- | -------------------------------------- | ------ | ----- |\n| `transaction_type/test/signature/invalid/s/0`                         | `0`.                                   |        |       |\n| `transaction_type/test/signature/invalid/s/secp256k1n_half_minus_one` | `SECP256K1N//2-1`.                     |        |       |\n| `transaction_type/test/signature/invalid/s/secp256k1n_half`           | `SECP256K1N//2`.                       |        |       |\n| `transaction_type/test/signature/invalid/s/secp256k1n_half_plus_one`  | `SECP256K1N//2+1`.                     |        |       |\n| `transaction_type/test/signature/invalid/s/secp256k1n_minus_one`      | `SECP256K1N-1`.                        |        |       |\n| `transaction_type/test/signature/invalid/s/secp256k1n`                | `SECP256K1N`.                          |        |       |\n| `transaction_type/test/signature/invalid/s/secp256k1n_plus_one`       | `SECP256K1N+1`.                        |        |       |\n| `transaction_type/test/signature/invalid/s/max_minus_one`             | `2**256-1`.                            |        |       |\n| `transaction_type/test/signature/invalid/s/max`                       | `2**256`.                              |        |       |\n| `transaction_type/test/signature/invalid/s/complement`                | `SECP256K1N - S` of a valid signature. |        |       |\n\n#### Transaction Attributes Readable From EVM\n\n| ID                                                              | Description                                                                                                                     | Status | Tests |\n| --------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------ | ----- |\n| `transaction_type/test/tx_scoped_attributes/read`           | Verify attributes that can be read in the EVM from transaction fields.                                                          |        |       |\n| `transaction_type/test/tx_scoped_attributes/older_tx_types` | Verify attributes specific to the new transaction type that can be read in the EVM behave correctly on older transaction types. |        |       |\n\n#### Transaction-Scoped Persistent Values\n\nVerify values or variables that are persistent through the execution of the transaction (e.g. transient storage, warm/cold accounts).\n\n| ID                                                                    | Description                                   | Status | Tests |\n| --------------------------------------------------------------------- | ----------------------------------------------| ------ | ----- |\n| `transaction_type/test/tx_scoped_attributes/persistent/throughout` | Persist throughout the entire transaction. | | |\n| `transaction_type/test/tx_scoped_attributes/persistent/reset` | Reset on subsequent transactions in the same block. | | |\n\n#### Encoding (RLP, SSZ)\n\nVerify correct transaction rejection in all listed scenarios.\n\n##### Field Sizes\n\nVerify all listed scenarios for each transaction field.\n\n| ID                                                            | Description                                       | Status | Tests |\n| ------------------------------------------------------------- | ------------------------------------------------- | ------ | ----- |\n| `transaction_type/test/encoding/field_sizes/leading_zero` | Add leading zero byte.                            |        |       |\n| `transaction_type/test/encoding/field_sizes/remove_byte`  | Remove single byte from fixed-byte-length fields. |        |       |\n\n##### Fields of List Type\n\nVerify for each transaction field that is of type list.\n\n| ID                                                           | Description                                   | Status | Tests |\n| ------------------------------------------------------------ | --------------------------------------------- | ------ | ----- |\n| `transaction_type/test/encoding/list_field/zero`         | Zero-element list (Failure depending on EIP). |        |       |\n| `transaction_type/test/encoding/list_field/max`          | Max count list.                               |        |       |\n| `transaction_type/test/encoding/list_field/max_plus_one` | Max count plus one list.                      |        |       |\n\n##### Extra/Missing Fields\n\n| ID                                                  | Description                                                     | Status | Tests |\n| --------------------------------------------------- | --------------------------------------------------------------- | ------ | ----- |\n| `transaction_type/test/encoding/missing_fields` | Any fields particular to the new transaction types are missing. |        |       |\n| `transaction_type/test/encoding/extra_fields`   | Transaction contains extra fields.                              |        |       |\n\n##### Serialization Corruption\n\n| ID                                               | Description                                       | Status | Tests |\n| ------------------------------------------------ | ------------------------------------------------- | ------ | ----- |\n| `transaction_type/test/encoding/truncated`   | Serialized bytes object is truncated by one byte. |        |       |\n| `transaction_type/test/encoding/extra_bytes` | Serialized bytes object has one extra byte.       |        |       |\n\n##### Serializable Fields\n\nVerify for each serializable field, all previous tests plus following listed scenario.\n\n| ID                                                                | Description                                                                                                  | Status | Tests |\n| ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | ------ | ----- |\n| `transaction_type/test/encoding/new_types/incorrect_encoding` | Serializable field is encoded as bytes instead of using the correct encoding (e.g. list in the case of RLP). |        |       |\n\n#### Out-of-bounds checks\n\nVerify if the transaction has out-of-bounds conditions in its fields and verify.\n\n| ID                                                     | Description                   | Status | Tests |\n| ------------------------------------------------------ | ----------------------------- | ------ | ----- |\n| `transaction_type/test/out_of_bounds/max`          | Max value for each field.     |        |       |\n| `transaction_type/test/out_of_bounds/max_plus_one` | Max value + 1 for each field. |        |       |\n\n#### Contract creation\n\nVerify that the transaction can create new contracts if the transaction type supports it.\n\n| ID                                            | Description                                  | Status | Tests |\n| --------------------------------------------- | -------------------------------------------- | ------ | ----- |\n| `transaction_type/test/contract_creation` | Create contracts using new transaction type. |        |       |\n\n#### Sender account modifications\n\n| ID                                                 | Description                                                                                                                                                                                               | Status | Tests |\n| -------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------ | ----- |\n| `transaction_type/test/sender_account/nonce`   | Sender account has its nonce incremented at least by one after the transaction is included in a block (or more if the transaction type introduces a new mechanism that bumps the nonce by more than one). |        |       |\n| `transaction_type/test/sender_account/balance` | Sender account has its balance reduced by the correct amount (gas consumed and value) at the start of execution (e.g. using `BALANCE`).                                                                  |        |       |\n\n#### Block Level Interactions\n\n##### Single Transaction In Block\n\nVerify a block where the new transaction type is the sole transaction contained in the block.\n\n| ID                                                               | Description                                       | Status | Tests |\n| ---------------------------------------------------------------- | ------------------------------------------------- | ------ | ----- |\n| `transaction_type/test/block_interactions/single_tx/invalid` | Invalid if `tx.gas_limit == block.gas_limit + 1`. |        |       |\n| `transaction_type/test/block_interactions/single_tx/valid`   | Valid if `tx.gas_limit == block.gas_limit`.       |        |       |\n\n##### Two Transactions In Block\n\nVerify a block where the new transaction type is the last transaction contained in a block with two transactions.\n\n| ID                                                             | Description                                                                                                                         | Status | Tests |\n| -------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ------ | ----- |\n| `transaction_type/test/block_interactions/last_tx/valid`   | Valid if `block.txs[0].gas_used + block.txs[1].gas_limit == block.gas_limit`.                                                       |        |       |\n| `transaction_type/test/block_interactions/last_tx/invalid` | Invalid if `(block.txs[0].gas_used + block.txs[1].gas_limit == block.gas_limit + 1) and (block.txs[0].gas_used < block.gas_limit)`. |        |       |\n\n##### EIP-7825\n\nVerify a transaction of the new type is rejected if its gas limit exceeds the [EIP-7825](https://eips.ethereum.org/EIPS/eip-7825) gas limit for the current fork.\n\n| ID                                                             | Description                                  | Status | Tests |\n| -------------------------------------------------------------- | -------------------------------------------- | ------ | ----- |\n| `transaction_type/test/block_interactions/eip7825/invalid` | Exceeds EIP-7825 gas limit by one.           |        |       |\n| `transaction_type/test/block_interactions/eip7825/valid`   | Gas limit is exactly the EIP-7825 gas limit. |        |       |\n\n##### Mixed transactions\n\nVerify a block with all transactions types including the new type is executed correctly.\n\n| ID                                                       | Description         | Status | Tests |\n| -------------------------------------------------------- | ------------------- | ------ | ----- |\n| `transaction_type/test/block_interactions/mixed_txs` | Mixed transactions. |        |       |\n\n#### Fork transition\n\nVerify that a block prior to fork activation where the new transaction type is introduced and containing the new transaction type is invalid.\n\n| ID                                                 | Description                                                 | Status | Tests |\n| -------------------------------------------------- | ----------------------------------------------------------- | ------ | ----- |\n| `transaction_type/test/fork_transition/before` | New transaction type included before fork activation block. |        |       |\n\n#### RPC Tests\n\n- \\*Verify `eth_estimateGas` behavior for different valid combinations of the new transaction type.\n- `transaction_type/test/rpc/send_raw` | Verify `eth_sendRawTransaction` using `execute`.\n\n\\*Tests must be added to [`execution-apis`](https://github.com/ethereum/execution-apis) repository.\n\n### Framework Changes\n\n- Modify `transaction_intrinsic_cost_calculator` in the fork where the EIP is introduced in `src/ethereum_test_forks/forks/forks.py`, adding the appropriate new fields that the transaction introduced and the logic to the intrinsic gas cost calculation, if any.\n- Add the transaction type number to `tx_types` response in the fork where the EIP is introduced in `src/ethereum_test_forks/forks/forks.py` (If applicable add also to `contract_creating_tx_types`).\n\n## New Block Header Field\n\n### Test Vectors\n\n#### Genesis value\n\nVerify, if possible, that the value can be set at genesis if the network starting fork is the activation fork, and that clients can consume such genesis.\n\n| ID                                    | Description                        | Status | Tests |\n| ------------------------------------- | ---------------------------------- | ------ | ----- |\n| `block_header_field/test/genesis` | New block header field at genesis. |        |       |\n\n#### Value behavior\n\nVerify, given multiple initial values, that a block is accepted or rejected depending on the correct expected value for the current block.\n\n| ID                                                  | Description                                                                                                                                                                                      | Status | Tests |\n| --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------ | ----- |\n| `block_header_field/test/value_behavior/accept` | Block is accepted if the value is the correct expected for the current block, depending on the circumstances that affect the value as defined in the EIP.                                        |        |       |\n| `block_header_field/test/value_behavior/reject` | Block is rejected if the value is modified (using `block.rlp_modifier`) to an incorrect value for the current block, depending on the circumstances that affect the value as defined in the EIP. |        |       |\n\n#### Fork transition\n\n| ID                                                    | Description                                                                                       | Status | Tests |\n| ----------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------ | ----- |\n| `block_header_field/test/fork_transition/initial` | Verify initial value of the field at the first block of the activation fork.                      |        |       |\n| `block_header_field/test/fork_transition/before`  | Verify that a block containing the new header field before the activation of the fork is invalid. |        |       |\n| `block_header_field/test/fork_transition/after`   | Verify that a block lacking the new header field at the activation of the fork is invalid.        |        |       |\n\n### Framework Changes\n\n- Add the new header field to the relevant objects:\n    - `ethereum_test_fixtures.FixtureHeader`.\n    - `ethereum_test_fixtures.FixtureExecutionPayload`.\n    - `ethereum_test_specs.Header`.\n- Add the appropriate `header_*_required` fork method to `BaseFork` in `ethereum_test_forks`.\n\n## New Block Body Field\n\n### Test Vectors\n\n#### Value behavior\n\nVerify, given multiple initial values, that a block is accepted or rejected depending on the correct expected value for the current block.\n\n| ID                                                | Description                                                                                                                                                                                     | Status | Tests |\n| ------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------ | ----- |\n| `block_body_field/test/value_behavior/accept` | Block is accepted if the value is the correct expected for the current block, depending on the circumstances that affect the value as defined in the EIP.                                       |        |       |\n| `block_body_field/test/value_behavior/reject` | Block is rejected if the value is modified (using appropriate `block`) to an incorrect value for the current block, depending on the circumstances that affect the value as defined in the EIP. |        |       |\n\n#### Fork transition\n\n| ID                                                 | Description                                                                                           | Status | Tests |\n| -------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ------ | ----- |\n| `block_body_field/test/fork_transition/before` | Verify that a block containing the new block body field before the activation of the fork is invalid. |        |       |\n| `block_body_field/test/fork_transition/after`  | Verify that a block lacking the new block field at the activation of the fork is invalid.             |        |       |\n\n### Framework Changes\n\n- Add the new body field to the relevant objects.\n    - `ethereum_test_fixtures.FixtureBlockBase`.\n    - `ethereum_test_fixtures.FixtureEngineNewPayload`.\n    - `ethereum_test_specs.Block`.\n- Modify `ethereum_test_specs.BlockchainTest` filling behavior to account for the new block field.\n\n## Gas Cost Changes\n\n### Test Vectors\n\n#### Gas Usage\n\nMeasure and store the gas usage during the operations affected by the gas cost changes and verify the updated behavior.\n\n| ID                                              | Description                | Status | Tests |\n| ----------------------------------------------- | -------------------------- | ------ | ----- |\n| `gas_cost_changes/test/gas_updates_measurement` | Measure updated gas costs. |        |       |\n\n#### Out-of-gas\n\nVerify the operations affected by the gas cost changes can run out-of-gas with the updated limits.\n\n| ID                                 | Description                     | Status | Tests |\n| ---------------------------------- | ------------------------------- | ------ | ----- |\n| `gas_cost_changes/test/out_of_gas` | Out-Of-Gas with new gas prices. |        |       |\n\n#### Fork transition\n\nVerify gas costs are updated at the fork transition boundary.\n\n| ID                                             | Description                                           | Status | Tests |\n| ---------------------------------------------- | ----------------------------------------------------- | ------ | ----- |\n| `gas_cost_changes/test/fork_transition/before` | Costs unaffected before the fork activation block.    |        |       |\n| `gas_cost_changes/test/fork_transition/after`  | Costs are updated on and after fork activation block. |        |       |\n\n### Framework Changes\n\n- Modify `transaction_intrinsic_cost_calculator` in the fork where the EIP is introduced in `src/ethereum_test_forks/forks/forks.py` if the EIP affects intrinsic gas cost calculation.\n- Modify `transaction_data_floor_cost_calculator` in the fork where the EIP is introduced in `src/ethereum_test_forks/forks/forks.py` if the EIP affects calldata floor cost.\n- Modify `memory_expansion_gas_calculator` in the fork where the EIP is introduced in `src/ethereum_test_forks/forks/forks.py` if the EIP affects memory expansion gas cost calculation.\n- Modify `gas_costs` in the fork where the EIP is introduced in `src/ethereum_test_forks/forks/forks.py` if the EIP affects specific opcode gas costs.\n\n## Gas Refunds Changes\n\n### Test Vectors\n\n#### Refund calculation\n\nVerify that the refund does not exceed `gas_used // MAX_REFUND_QUOTIENT` (`MAX_REFUND_QUOTIENT==5` in [EIP-3529](https://eips.ethereum.org/EIPS/eip-3529)) in the following scenarios.\n\n| ID                                                  | Description                                      | Status | Tests |\n| --------------------------------------------------- | ------------------------------------------------ | ------ | ----- |\n| `gas_refunds_changes/test/refund_calculation/over`  | `refund == gas_used // MAX_REFUND_QUOTIENT + 1`. |        |       |\n| `gas_refunds_changes/test/refund_calculation/exact` | `refund == gas_used // MAX_REFUND_QUOTIENT`.     |        |       |\n| `gas_refunds_changes/test/refund_calculation/under` | `refund == gas_used // MAX_REFUND_QUOTIENT - 1`. |        |       |\n\n#### Exceptional Abort\n\n| ID                                                                         | Description                                                                                                                                                                                                             | Status | Tests |\n| -------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------ | ----- |\n| `gas_refunds_changes/test/exceptional_abort/revertable`                    | If the operation causing the refund can be reverted, verify the refund is not applied if the following cases:.                                                                                                          |        |       |\n| `gas_refunds_changes/test/exceptional_abort/revertable/revert`             | `REVERT`.                                                                                                                                                                                                               |        |       |\n| `gas_refunds_changes/test/exceptional_abort/revertable/out_of_gas`         | Out-of-gas.                                                                                                                                                                                                             |        |       |\n| `gas_refunds_changes/test/exceptional_abort/revertable/invalid_opcode`     | Invalid opcode.                                                                                                                                                                                                         |        |       |\n| `gas_refunds_changes/test/exceptional_abort/revertable/upper_revert`       | `REVERT` of an upper call frame.                                                                                                                                                                                        |        |       |\n| `gas_refunds_changes/test/exceptional_abort/non_revertable`                | If the operation causing the refund cannot be reverted (e.g. in the case of a transaction-scoped operation such as authorization refunds in EIP-7702), verify the refund is still applied even in the following cases:. |        |       |\n| `gas_refunds_changes/test/exceptional_abort/non_revertable/revert`         | `REVERT` at the top call frame.                                                                                                                                                                                         |        |       |\n| `gas_refunds_changes/test/exceptional_abort/non_revertable/out_of_gas`     | Out-of-gas at the top call frame.                                                                                                                                                                                       |        |       |\n| `gas_refunds_changes/test/exceptional_abort/non_revertable/invalid_opcode` | Invalid opcode at the top call frame.                                                                                                                                                                                   |        |       |\n\n#### Cross-Functional Test\n\nVerify the following tests are updated to support the new type of refunds.\n\n| ID                                                        | Description                                                    | Status | Tests |\n| --------------------------------------------------------- | -------------------------------------------------------------- | ------ | ----- |\n| `gas_refunds_changes/test/cross_functional/calldata_cost` | `tests/prague/eip7623_increase_calldata_cost/test_refunds.py`. |        |       |\n\n### Framework Changes\n\nN/A\n\n## Blob Count Changes\n\n### Test Vectors\n\n#### Existing Test Updates\n\nVerify tests in `tests/cancun/eip4844_blobs` were correctly and automatically updated to take into account the new blob count values at the new fork activation block.\n\n| ID                                              | Description                                                     | Status | Tests |\n| ----------------------------------------------- | --------------------------------------------------------------- | ------ | ----- |\n| `blob_count_changes/test/eip4844_blobs_changes` | Updates to `tests/cancun/eip4844_blobs` were applied correctly. |        |       |\n\n### Framework Changes\n\n- Modify `blob_base_fee_update_fraction`, `target_blobs_per_block`, `max_blobs_per_block` in the fork where the EIP is introduced in `src/ethereum_test_forks/forks/forks.py` if the EIP affects any of the values returned by each function.\n\n## New Execution Layer Request\n\n### Test Vectors\n\n#### Cross-Request-Type Interaction\n\n| ID                                                           | Description                                                                                                                | Status | Tests |\n| ------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------- | ------ | ----- |\n| `execution_layer_request/test/cross_request_type/update` | Update `tests/prague/eip7685_general_purpose_el_requests` tests to include the new request type in the tests combinations. |        |       |\n\n### Framework Changes\n\n- Increment `max_request_type` in the fork where the EIP is introduced in `src/ethereum_test_forks/forks/forks.py` to the new maximum request type number after the EIP is activated.\n\n## New Transaction-Validity Constraint\n\n### Test Vectors\n\n#### Fork transition\n\n| ID                                        | Description                                                                                                                               | Status | Tests |\n| ----------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ------ | ----- |\n| `new_transaction_validity_constraint/test/fork_transition/accepted_before_fork` | Verify that a block before the activation fork is accepted even when the new constraint is not met. |        |       |\n| `new_transaction_validity_constraint/test/fork_transition/accepted_after_fork` | Verify that a block after the activation fork is accepted when the new validity constraint is met. |        |       |\n| `new_transaction_validity_constraint/test/fork_transition/rejected_after_fork` | Verify that a block after the activation fork is rejected when the new validity constraint is not met. |        |       |\n\nNote: All test cases must use off-by-one values to ensure proper boundary condition verification.\n\n### Framework Changes\n\n- Introduce the validity constraint as a fork method that returns:\n    - `None` for forks before its activation.\n    - A non-`None` value starting from the fork where the constraint becomes active.\n\n## Modified Transaction-Validity Constraint\n\n### Test Vectors\n\n#### Fork transition\n\n| ID                                        | Description                                                                                                                               | Status | Tests |\n| ----------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ------ | ----- |\n| `modified_transaction_validity_constraint/test/fork_transition/accepted_before_fork` | Verify that a block before the activation fork is accepted when the existing constraint is met and, ideally, the new constraint is not met. |        |       |\n| `modified_transaction_validity_constraint/test/fork_transition/rejected_before_fork` | Verify that a block before the activation fork is rejected when the existing constraint is not met and, ideally, the new constraint is met. |        |       |\n| `modified_transaction_validity_constraint/test/fork_transition/accepted_after_fork` | Verify that a block after the activation fork is accepted when the new validity constraint is met. |        |       |\n| `modified_transaction_validity_constraint/test/fork_transition/rejected_after_fork` | Verify that a block after the activation fork is rejected when the new validity constraint is not met. |        |       |\n\nNote: All test cases must use off-by-one values to ensure proper boundary condition verification.\n\n### Framework Changes\n\n- Update the validity constraint as a fork method that returns the updated value starting from the fork where the constraint changes.\n\n## Block-Level Validation Constraint\n\nThe EIP introduces a new constraint that applies at the block level (e.g., block RLP size limits, block validation rules).\n\n### Test Vectors\n\n#### Boundary Conditions\n\nVerify block acceptance/rejection at constraint boundaries using off-by-one values.\n\n| ID                                        | Description                                                                                 | Status | Tests |\n| ----------------------------------------- |---------------------------------------------------------------------------------------------| ------ | ----- |\n| `block_level_constraint/test/boundary/under` | Verify that a block with constraint value at limit minus one is accepted (expect success).  |        |       |\n| `block_level_constraint/test/boundary/exact` | Verify that a block with constraint value exactly at limit is accepted (expect success).    |        |       |\n| `block_level_constraint/test/boundary/over` | Verify that a block with constraint value at limit plus one is rejected (expect exception). |        |       |\n\n#### Content Variations\n\nVerify the constraint behaves correctly with different block contents that may affect the constraint calculation.\n\n| ID                                        | Description                                                                                                                               | Status | Tests |\n| ----------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ------ | ----- |\n| `block_level_constraint/test/content/transaction_types` | Verify constraint behavior with all supported transaction types in the block. |        |       |\n| `block_level_constraint/test/content/logs` | Verify constraint behavior when transactions emit logs. |        |       |\n| `block_level_constraint/test/content/receipts` | Verify constraint behavior with varying receipt sizes. |        |       |\n| `block_level_constraint/test/content/withdrawals` | Verify constraint behavior with non-empty withdrawals list. |        |       |\n\n#### Fork Transition\n\n| ID                                        | Description                                                                                                                               | Status | Tests |\n| ----------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ------ | ----- |\n| `block_level_constraint/test/fork_transition/accepted_before_fork` | Verify that a block before the activation fork is accepted even when the new constraint is not met. |        |       |\n| `block_level_constraint/test/fork_transition/accepted_after_fork` | Verify that a block after the activation fork is accepted when the new constraint is met. |        |       |\n| `block_level_constraint/test/fork_transition/rejected_after_fork` | Verify that a block after the activation fork is rejected when the new constraint is not met. |        |       |\n\nNote: All test cases must use off-by-one values to ensure proper boundary condition verification.\n\n### Framework Changes\n\n- Introduce the constraint as a fork method that returns:\n    - `None` for forks before its activation.\n    - A non-`None` value starting from the fork where the constraint becomes active.\n"
  },
  {
    "path": "docs/writing_tests/checklist_templates/index.md",
    "content": "# Testing Checklist Templates\n\nThis page includes checklist templates that must be followed to guarantee a minimum base testing coverage of new EIP feature.\n"
  },
  {
    "path": "docs/writing_tests/code_standards.md",
    "content": "# Code Standards\n\n!!! warning \"Documentation Moved\"\n    This documentation has been relocated to [Code Standards](../getting_started/code_standards.md). Please use the new location for the most up-to-date information.\n"
  },
  {
    "path": "docs/writing_tests/eip_checklist.md",
    "content": "# EIP Checklist Generation\n\nThe EIP checklist feature helps track test coverage for EIP implementations by automatically generating filled checklists based on test markers.\n\n## Overview\n\nWhen implementing tests for an EIP, you can mark specific tests as covering checklist items from the [EIP testing checklist template](../writing_tests/checklist_templates/eip_testing_checklist_template.md). The framework will then generate a filled checklist showing which items have been implemented.\n\n## Marking Tests as implementing EIP Checklist Items\n\nTo mark a test as implementing a specific checklist item, use the structured `EIPChecklist` class:\n\n### The `EIPChecklist` Class\n\n```python\nimport pytest\nfrom ethereum_test_tools import StateTestFiller\nfrom ethereum_test_checklists import EIPChecklist\n\n@EIPChecklist.TransactionType.Test.IntrinsicValidity.GasLimit.Exact()\ndef test_exact_intrinsic_gas(state_test: StateTestFiller):\n    \"\"\"Test transaction with exact intrinsic gas limit.\"\"\"\n    # Test implementation\n    pass\n\n# You can also use the marker without parentheses\n@EIPChecklist.TransactionType.Test.IntrinsicValidity.GasLimit.Insufficient\ndef test_insufficient_intrinsic_gas(state_test: StateTestFiller):\n    \"\"\"Test transaction with insufficient intrinsic gas limit.\"\"\"\n    # Test implementation\n    pass\n```\n\nThe `EIPChecklist` class provides type safety and IDE autocompletion, making it easier to find and reference checklist items correctly.\n\n### Marker Parameters\n\n- **First positional parameter** (required): The checklist item ID (`EIPChecklist` reference)\n- **`eip` keyword parameter** (optional): List of additional EIPs covered by the test\n\nExample with multiple EIPs covered by the same test:\n\n```python\n@EIPChecklist.TransactionType.Test.Signature.Invalid.V.Two(\n    eip=[7702, 2930]\n)\ndef test_invalid_signature(state_test: StateTestFiller):\n    \"\"\"Test invalid signature that affects multiple EIPs.\"\"\"\n    pass\n```\n\n### Partial ID Matching\n\nYou can use partial IDs that will match all checklist items starting with that prefix:\n\n```python\n@EIPChecklist.TransactionType.Test.Signature.Invalid()\ndef test_all_invalid_signatures(state_test: StateTestFiller):\n    \"\"\"Test covering all invalid signature scenarios.\"\"\"\n    pass\n```\n\n## Generating Checklists\n\n### Using the Dedicated `checklist` Command\n\nTo generate only checklists without filling fixtures:\n\n```bash\n# Generate checklists for all EIPs\nuv run checklist\n\n# Generate checklist for specific EIP\nuv run checklist --eip 7702\n\n# Specify output directory\nuv run checklist --output ./my-checklists\n\n# Multiple EIPs\nuv run checklist --eip 7702 --eip 2930\n```\n\n### Automatic Generation in Documentation\n\nWhen building the documentation with `mkdocs`, checklists are automatically generated for all EIPs that have tests with checklist markers. The checklists appear in the test documentation alongside the test modules.\n\n## External Coverage and Not Applicable Items\n\n### External Coverage\n\nFor checklist items that are covered by external tests, procedures, or tools (e.g., EELS coverage), create a file named `eip_checklist_external_coverage.txt` in the EIP test directory:\n\n```text\n# tests/prague/eip7702_set_code_tx/eip_checklist_external_coverage.txt\ngeneral/code_coverage/eels = Covered by EELS test suite\ngeneral/code_coverage/second_client = Covered by Nethermind tests\n```\n\nFormat: `checklist_item_id = reason`\n\n### Not Applicable Items\n\nFor checklist items that are not applicable to a specific EIP, create a file named `eip_checklist_not_applicable.txt` in the EIP test directory:\n\n```text\n# tests/prague/eip7702_set_code_tx/eip_checklist_not_applicable.txt\nsystem_contract = EIP-7702 does not introduce a system contract\nprecompile = EIP-7702 does not introduce a precompile\n```\n\nFormat: `checklist_item_id = reason`\n\nBoth files support partial ID matching, so you can mark entire sections as not applicable:\n\n## MyPy Type Checking Support\n\nThe `EIPChecklist` classes are made callable through a companion `.pyi` stub file that provides proper type hints for mypy. This allows you to use both decorator patterns without type checking errors:\n\n```python\n# Both of these work with proper mypy support\n@EIPChecklist.Opcode.Test.StackComplexOperations()  # With parentheses\n@EIPChecklist.Opcode.Test.StackComplexOperations   # Without parentheses\n```\n\n### Regenerating Type Stubs\n\nIf you modify the `EIPChecklist` class structure in `src/ethereum_test_checklists/eip_checklist.py`, you need to regenerate the type stub file:\n\n```bash\n# Generate the stub file (for maintainers):\nuv run generate_checklist_stubs\n\n# Preview what would be generated without writing the file\nuv run generate_checklist_stubs --dry-run\n\n# Generate to a custom location\nuv run generate_checklist_stubs --output path/to/custom/stubs.pyi\n```\n\nThe generated stub file (`eip_checklist.pyi`) should be committed to the repository to ensure proper type checking for all developers.\n\n```text\n# Mark all system contract items as not applicable\nsystem_contract/ = EIP does not introduce system contracts\n```\n\n## Output Format\n\nThe generated checklist will show:\n\n- ✅ for completed items (either by tests or external coverage)\n- N/A for not applicable items\n- Test names that implement each item\n- External coverage reasons where applicable\n- A percentage of covered checklist items (excluding N/A items)\n- Color-coded completion status: 🟢 (100%), 🟡 (>50%), 🔴 (≤50%)\n\nExample output snippet:\n\n```markdown\n# EIP-7702 Test Checklist\n\n## Checklist Progress Tracker\n\n| Total Checklist Items | Covered Checklist Items | Percentage |\n| --------------------- | ----------------------- | ---------- |\n| 45 | 32 | 🟡 71.11% |\n\n## General\n\n#### Code coverage\n\n| ID | Description | Status | Tests |\n| -- | ----------- | ------ | ----- |\n| `general/code_coverage/eels` | Run produced tests against EELS... | ✅ | Covered by EELS test suite |\n| `general/code_coverage/test_coverage` | Run coverage on the test code itself... | ✅ | `tests/prague/eip7702_set_code_tx/test_set_code_txs.py::test_set_code_txs` |\n\n## Transaction Type\n\n| ID | Description | Status | Tests |\n| -- | ----------- | ------ | ----- |\n| `transaction_type/test/intrinsic_validity/gas_limit/exact` | Provide the exact intrinsic gas... | ✅ | `tests/prague/eip7702_set_code_tx/test_checklist_example.py::test_exact_intrinsic_gas` |\n| `transaction_type/test/intrinsic_validity/gas_limit/insufficient` | Provide the exact intrinsic gas minus one... |  |  |\n\n## System Contract\n\n| ID | Description | Status | Tests |\n| -- | ----------- | ------ | ----- |\n| `system_contract/test/deployment/missing` | Verify block execution behavior... | N/A | EIP-7702 does not introduce a system contract |\n```\n\n## Best Practices\n\n1. **Start with the checklist**: Review the checklist template before writing tests to ensure comprehensive coverage\n2. **Use the `EIPChecklist` class**: Use `EIPChecklist.Opcode.Test.GasUsage.Normal` for type safety and IDE autocompletion\n3. **Use descriptive test names**: The test name will appear in the checklist, so make it clear what the test covers\n4. **Mark items as you go**: Add `eip_checklist` markers while writing tests, not as an afterthought\n5. **Document external coverage**: If items are covered by external tools/tests, document this in `eip_checklist_external_coverage.txt`\n6. **Be explicit about N/A items**: Document why items are not applicable in `eip_checklist_not_applicable.txt`\n7. **Use partial IDs wisely**: When a test covers multiple related items, use partial IDs to mark them all\n8. **Verify IDs before using**: Use `str(EIPChecklist.Section.Subsection)` to verify the exact string ID when needed\n\n## Workflow Example\n\n1. **Create test directory structure**:\n\n      ```bash\n      tests/prague/eip9999_new_feature/\n      ├── __init__.py\n      ├── spec.py\n      ├── test_basic.py\n      ├── eip_checklist_external_coverage.txt\n      └── eip_checklist_not_applicable.txt\n      ```\n\n2. **Mark tests as you implement them**:\n\n      ```python\n      from ethereum_test_checklists import EIPChecklist\n      \n      @EIPChecklist.Opcode.Test.GasUsage.Normal()\n      def test_opcode_gas_consumption(state_test: StateTestFiller):\n         \"\"\"Test normal gas consumption of the new opcode.\"\"\"\n         pass\n      ```\n\n3. **Document external coverage**:\n\n      ```text\n      # eip_checklist_external_coverage.txt\n      general/code_coverage/eels = Covered by ethereum/execution-specs PR #1234\n      ```\n\n      You can verify the correct ID using:\n\n      ```python\n      # str(EIPChecklist.General.CodeCoverage.Eels) = \"general/code_coverage/eels\"\n      ```\n\n4. **Mark non-applicable items**:\n\n      ```text\n      # eip_checklist_not_applicable.txt\n      precompile/ = EIP-9999 introduces an opcode, not a precompile\n      ```\n\n      You can verify the correct ID using:\n\n      ```python\n      # str(EIPChecklist.Precompile) = \"precompile\"\n      ```\n\n5. **Generate and review checklist**:\n\n      ```bash\n      checklist --eip 9999\n      # Review the generated checklist for completeness\n      ```\n\n## See Also\n\n- [EIP Testing Checklist Template](./checklist_templates/eip_testing_checklist_template.md) - The full checklist template\n"
  },
  {
    "path": "docs/writing_tests/exception_tests.md",
    "content": "# Exception Tests\n\nException tests are a special type of test which verify that an invalid transaction or an invalid block are correctly rejected with the expected error.\n\n## Creating an Exception Test\n\nTo test for an exception, the test can use either of the following types from `ethereum_test_exceptions` library:\n\n1. [`TransactionException`](../library/ethereum_test_exceptions.md#ethereum_test_exceptions.TransactionException): To be added to the `error` field of the `Transaction` object, and to the `exception` field of the `Block` object that includes the transaction; this exception type is used when a transaction is invalid, and therefore when included in a block, the block is expected to be invalid too. This is different from valid transactions where an exception during EVM execution is expected (e.g. a revert, or out-of-gas), which can be included in valid blocks.\n\n    For an example, see [`eip3860_initcode.test_initcode.test_contract_creating_tx`](../tests/shanghai/eip3860_initcode/test_initcode/test_contract_creating_tx.md) which raises `TransactionException.INITCODE_SIZE_EXCEEDED` in the case that the initcode size exceeds the maximum allowed size.\n\n2. [`BlockException`](../library/ethereum_test_exceptions.md#ethereum_test_exceptions.BlockException): To be added to the `exception` field of the `Block` object; this exception type is used when a block is expected to be invalid, but the exception is related to a block property, e.g. an invalid value of the block header.\n\n    For an example, see [`eip4844_blobs.test_excess_blob_gas.test_invalid_static_excess_blob_gas`](../tests/cancun/eip4844_blobs/test_excess_blob_gas/test_invalid_static_excess_blob_gas.md) which raises `BlockException.INCORRECT_EXCESS_BLOB_GAS` in the case that the `excessBlobGas` remains unchanged\n    but the parent blobs included are not `TARGET_BLOBS_PER_BLOCK`.\n\nAlthough exceptions can be combined with the `|` operator to indicate that a test vector can throw either one of multiple exceptions, ideally the tester should aim to use only one exception per test vector, and only use multiple exceptions on the rare instance when it is not possible to know which exception will be thrown because it depends on client implementation.\n\n## Adding a new exception\n\nIf a test requires a new exception, because none of the existing ones is suitable for the test, a new exception can be added to either [`TransactionException`](../library/ethereum_test_exceptions.md#ethereum_test_exceptions.TransactionException) or [`BlockException`](../library/ethereum_test_exceptions.md#ethereum_test_exceptions.BlockException) classes.\n\nThe new exception should be added as a new enum value, and the docstring of the attribute should be a string that describes the exception.\n\nThe name of the exception should be unique, and should not be used by any other exception.\n\n## Test runner behavior on exception tests\n\nWhen an exception is added to a test vector, the test runner must check that the transaction or block is rejected with the expected exception.\n\nThe test runner must map the exception key to the corresponding error string that is expected to be returned by the client.\n\nException mapping are particularly important in blockchain tests because the block can be invalid for multiple reasons, and the client returning a different error can mean that a verification in the client is faulty.\n"
  },
  {
    "path": "docs/writing_tests/fork_methods.md",
    "content": "# Using and Extending Fork Methods\n\nThis document describes the Fork class in the Ethereum execution spec tests framework, which provides a standardized way to define properties of Ethereum forks. Understanding how to use and extend these fork methods is essential for writing flexible tests that can automatically adapt to different forks.\n\n## Overview\n\nThe `BaseFork` class is an abstract base class that defines the interface for all Ethereum forks. Each implemented fork (like Frontier, Homestead, etc.) extends this class and implements its abstract methods to provide fork-specific behavior.\n\nThe fork system allows:\n\n1. Defining fork-specific behaviors and parameters\n2. Comparing forks chronologically (`Paris < Shanghai`)\n3. Supporting automatic fork transitions\n4. Writing tests that automatically adapt to different forks\n\n## Using Fork Methods in Tests\n\nFork methods are powerful tools that allow your tests to adapt to different Ethereum forks automatically. Here are common patterns for using them:\n\n### 1. Check Fork Support for Features\n\n```python\ndef test_some_feature(fork):\n    if fork.supports_blobs(block_number=0, timestamp=0):\n        # Test blob-related functionality\n        ...\n    else:\n        # Test alternative or skip\n        pytest.skip(\"Fork does not support blobs\")\n```\n\n### 2. Get Fork-Specific Parameters\n\n```python\ndef test_transaction_gas(fork, state_test):\n    gas_cost = fork.gas_costs(block_number=0, timestamp=0).G_TRANSACTION\n    \n    # Create a transaction with the correct gas parameters for this fork\n    tx = Transaction(\n        gas_limit=gas_cost + 10000,\n        # ...\n    )\n    \n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        # ...\n    )\n```\n\n### 3. Determine Valid Transaction Types\n\n```python\ndef test_transaction_types(fork, state_test):\n    for tx_type in fork.tx_types(block_number=0, timestamp=0):\n        # Test each transaction type supported by this fork\n        # ...\n```\n\n### 4. Determine Valid Opcodes\n\n```python\ndef test_opcodes(fork, state_test):\n    # Create bytecode using only opcodes valid for this fork\n    valid_opcodes = fork.valid_opcodes()\n    \n    # Use these opcodes to create test bytecode\n    # ...\n```\n\n### 5. Test Fork Transitions\n\n```python\ndef test_fork_transition(transition_fork, blockchain_test):\n    # The transition_fork is a special fork type that changes behavior\n    # based on block number or timestamp\n    fork_before = transition_fork.fork_at(block_number=4, timestamp=0)\n    fork_after = transition_fork.fork_at(block_number=5, timestamp=0)\n    \n    # Test behavior before and after transition\n    # ...\n```\n\n## Important Fork Methods\n\n### Header Information\n\nThese methods determine what fields are required in block headers for a given fork:\n\n```python\nfork.header_base_fee_required(block_number=0, timestamp=0)  # Added in London\nfork.header_prev_randao_required(block_number=0, timestamp=0)  # Added in Paris\nfork.header_withdrawals_required(block_number=0, timestamp=0)  # Added in Shanghai\nfork.header_excess_blob_gas_required(block_number=0, timestamp=0)  # Added in Cancun\nfork.header_blob_gas_used_required(block_number=0, timestamp=0)  # Added in Cancun\nfork.header_beacon_root_required(block_number=0, timestamp=0)  # Added in Cancun\nfork.header_requests_required(block_number=0, timestamp=0)  # Added in Prague\n```\n\n### Gas Parameters\n\nMethods for determining gas costs and calculations:\n\n```python\nfork.gas_costs(block_number=0, timestamp=0)  # Returns a GasCosts dataclass\nfork.memory_expansion_gas_calculator(block_number=0, timestamp=0)  # Returns a callable\nfork.transaction_intrinsic_cost_calculator(block_number=0, timestamp=0)  # Returns a callable\n```\n\n### Transaction Types\n\nMethods for determining valid transaction types:\n\n```python\nfork.tx_types(block_number=0, timestamp=0)  # Returns list of supported transaction types\nfork.contract_creating_tx_types(block_number=0, timestamp=0)  # Returns list of tx types that can create contracts \nfork.precompiles(block_number=0, timestamp=0)  # Returns list of precompile addresses\nfork.system_contracts(block_number=0, timestamp=0)  # Returns list of system contract addresses\n```\n\n### EVM Features\n\nMethods for determining EVM features and valid opcodes:\n\n```python\nfork.evm_code_types(block_number=0, timestamp=0)  # Returns list of supported code types (e.g., Legacy, EOF)\nfork.valid_opcodes()  # Returns list of valid opcodes for this fork\nfork.call_opcodes(block_number=0, timestamp=0)  # Returns list of call opcodes with their code types\nfork.create_opcodes(block_number=0, timestamp=0)  # Returns list of create opcodes with their code types\n```\n\n### Blob-related Methods (Cancun+)\n\nMethods for blob transaction support:\n\n```python\nfork.supports_blobs(block_number=0, timestamp=0)  # Returns whether blobs are supported\nfork.blob_gas_price_calculator(block_number=0, timestamp=0)  # Returns a callable\nfork.excess_blob_gas_calculator(block_number=0, timestamp=0)  # Returns a callable\nfork.min_base_fee_per_blob_gas(block_number=0, timestamp=0)  # Returns minimum base fee per blob gas\nfork.blob_gas_per_blob(block_number=0, timestamp=0)  # Returns blob gas per blob\nfork.target_blobs_per_block(block_number=0, timestamp=0)  # Returns target blobs per block\nfork.max_blobs_per_block(block_number=0, timestamp=0)  # Returns max blobs per block\n```\n\n### Meta Information\n\nMethods for fork identification and comparison:\n\n```python\nfork.name()  # Returns the name of the fork\nfork.transition_tool_name(block_number=0, timestamp=0)  # Returns name for transition tools\nfork.is_deployed()  # Returns whether the fork is deployed to mainnet\n```\n\n## Fork Transitions\n\nThe framework supports creating transition forks that change behavior at specific block numbers or timestamps:\n\n```python\n@transition_fork(to_fork=Shanghai, at_timestamp=15_000)\nclass ParisToShanghaiAtTime15k(Paris):\n    \"\"\"Paris to Shanghai transition at Timestamp 15k.\"\"\"\n    pass\n```\n\nWith transition forks, you can test how behavior changes across fork boundaries:\n\n```python\n# Behavior changes at block 5\nfork = BerlinToLondonAt5\nassert not fork.header_base_fee_required(block_number=4)  # Berlin doesn't require base fee\nassert fork.header_base_fee_required(block_number=5)      # London requires base fee\n```\n\n## Adding New Fork Methods\n\nWhen adding new fork methods, follow these guidelines:\n\n1. **Abstract Method Definition**: Add the new abstract method to `BaseFork` in `base_fork.py`\n2. **Consistent Parameter Pattern**: Use `block_number` and `timestamp` parameters with default values\n3. **Method Documentation**: Add docstrings explaining the purpose and behavior\n4. **Implementation in Subsequent Forks**: Implement the method in every subsequent fork class **only** if the fork updates the value from previous forks.\n\nExample of adding a new method:\n\n```python\n@classmethod\n@abstractmethod\ndef supports_new_feature(cls, *, block_number: int = 0, timestamp: int = 0) -> bool:\n    \"\"\"Return whether the given fork supports the new feature.\"\"\"\n    pass\n```\n\nImplementation in a fork class:\n\n```python\n@classmethod\ndef supports_new_feature(cls, *, block_number: int = 0, timestamp: int = 0) -> bool:\n    \"\"\"Return whether the given fork supports the new feature.\"\"\"\n    return False  # Frontier doesn't support this feature\n```\n\nImplementation in a newer fork class:\n\n```python\n@classmethod\ndef supports_new_feature(cls, *, block_number: int = 0, timestamp: int = 0) -> bool:\n    \"\"\"Return whether the given fork supports the new feature.\"\"\"\n    return True  # This fork does support the feature\n```\n\n## When to Add a New Fork Method\n\nAdd a new fork method when:\n\n1. **A New EIP Introduces a Feature**: Add methods describing the new feature's behavior\n2. **Tests Need to Behave Differently**: When tests need to adapt to different fork behaviors\n3. **Common Fork Information is Needed**: When multiple tests need the same fork-specific information\n4. **Intrinsic Fork Properties Change**: When gas costs, opcodes, or other intrinsic properties change\n\nDo not add a new fork method when:\n\n1. The information is only needed for one specific test\n2. The information is not directly related to fork behavior\n3. The information can be calculated using existing methods\n\n## Best Practices\n\n1. **Use Existing Methods**: Check if there's already a method that provides the information you need\n2. **Name Methods Clearly**: Method names should clearly describe what they return\n3. **Document Behavior**: Include clear docstrings explaining the method's purpose and return value\n4. **Avoid Hard-coding**: Use fork methods in tests instead of hard-coding fork-specific behavior\n5. **Test Transitions**: Ensure your method works correctly with transition forks\n\n## Example: Complete Test Using Fork Methods\n\nHere's an example of a test that fully utilizes fork methods to adapt its behavior:\n\n```python\ndef test_transaction_with_fork_adaptability(fork, state_test):\n    # Prepare pre-state\n    pre = Alloc()\n    sender = pre.fund_eoa()\n    \n    # Define transaction based on fork capabilities\n    tx_params = {\n        \"gas_limit\": 1_000_000,\n        \"sender\": sender,\n    }\n    \n    # Add appropriate transaction type based on fork\n    tx_types = fork.tx_types(block_number=0, timestamp=0)\n    if 3 in tx_types and fork.supports_blobs(block_number=0, timestamp=0):\n        # EIP-4844 blob transaction (type 3)\n        tx_params[\"blob_versioned_hashes\"] = [Hash.generate_zero_hashes(1)[0]]\n    elif 2 in tx_types:\n        # EIP-1559 transaction (type 2)\n        tx_params[\"max_fee_per_gas\"] = 10\n        tx_params[\"max_priority_fee_per_gas\"] = 1\n    elif 1 in tx_types:\n        # EIP-2930 transaction (type 1)\n        tx_params[\"access_list\"] = []\n        \n    # Create and run the test\n    tx = Transaction(**tx_params)\n    \n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            sender: Account(nonce=1),\n        },\n    )\n```\n\n## Conclusion\n\nThe Fork class is a powerful abstraction that allows tests to adapt to different Ethereum forks. By using fork methods consistently, you can write tests that automatically handle fork-specific behavior, making your tests more maintainable and future-proof.\n\nWhen adding new fork methods, keep them focused, well-documented, and implement them across all forks. This will ensure that all tests can benefit from the information and that transitions between forks are handled correctly.\n"
  },
  {
    "path": "docs/writing_tests/fuzzer_bridge.md",
    "content": "# Fuzzer Bridge\n\nThe fuzzer bridge provides a seamless integration between blocktest fuzzers and the Ethereum execution-spec-tests framework, enabling automatic generation of valid blockchain test fixtures from fuzzer output.\n\n## Overview\n\nFuzzers are excellent at generating test inputs to discover edge cases and bugs in Ethereum client implementations. However, creating valid blockchain tests from fuzzer-generated data requires complex calculations including:\n\n- State root computations\n- RLP encoding of blocks and transactions\n- Proper block header generation\n- System contract interactions\n- Genesis block derivation\n\nThe fuzzer bridge handles all these complexities automatically by leveraging the execution-spec-tests framework.\n\n## Architecture\n\n```mermaid\ngraph LR\n    A[Blocktest<br/>Fuzzer] -->|JSON<br/>v2 format| B[Fuzzer<br/>Bridge]\n    B -->|Blockchain Test<br/>Fixtures| C[Ethereum<br/>Clients]\n```\n\n## Installation\n\nThe fuzzer bridge is included with the execution-spec-tests framework. Follow the [installation guide](../getting_started/installation.md) to set up EEST.\n\nOnce installed, the `fuzzer_bridge` command will be available through `uv run`.\n\n## Fuzzer Output Format (v2)\n\nThe fuzzer must output JSON in the v2 format. Here's the structure:\n\n```json\n{\n  \"version\": \"2.0\",\n  \"fork\": \"Prague\",\n  \"chainId\": 1,\n  \"accounts\": {\n    \"0x7e5f4552091a69125d5dfcb7b8c2659029395bdf\": {\n      \"balance\": \"0x1000000000000000000\",\n      \"nonce\": \"0x0\",\n      \"code\": \"\",\n      \"storage\": {},\n      \"privateKey\": \"0x0000000000000000000000000000000000000000000000000000000000000001\"\n    }\n  },\n  \"transactions\": [\n    {\n      \"from\": \"0x7e5f4552091a69125d5dfcb7b8c2659029395bdf\",\n      \"to\": \"0x2b5ad5c4795c026514f8317c7a215e218dccd6cf\",\n      \"value\": \"0x100\",\n      \"gas\": \"0x5208\",\n      \"gasPrice\": \"0x7\",\n      \"nonce\": \"0x0\",\n      \"data\": \"0x\"\n    }\n  ],\n  \"env\": {\n    \"currentCoinbase\": \"0xc014ba5e00000000000000000000000000000000\",\n    \"currentDifficulty\": \"0x0\",\n    \"currentGasLimit\": \"0x1000000\",\n    \"currentNumber\": \"0x1\",\n    \"currentTimestamp\": \"0x1000\",\n    \"currentBaseFee\": \"0x7\",\n    \"currentRandom\": \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n  }\n}\n```\n\n### Key Requirements\n\n1. **Private Keys**: Any account that sends transactions MUST include a `privateKey` field.\n2. **Address-Key Match**: Private keys must generate the corresponding addresses.\n3. **Environment**: Describes the environment for block 1 (genesis is automatically derived).\n4. **Version**: Must be \"2.0\" for this format.\n5. **Fork Name**: Use the standard fork name (e.g., \"Prague\", \"Shanghai\", \"Cancun\").\n\n## Usage\n\n### Command Line Interface\n\nConvert fuzzer output to blockchain test fixtures:\n\n```bash\n# Basic conversion\nuv run fuzzer_bridge --input fuzzer_output.json --output blocktest.json\n\n# Specify a different fork\nuv run fuzzer_bridge --input fuzzer_output.json --output blocktest.json --fork Shanghai\n\n# Pretty print output\nuv run fuzzer_bridge --input fuzzer_output.json --output blocktest.json --pretty\n\n# Process multiple files in parallel\nuv run fuzzer_bridge --input fuzzer_outputs/ --output fixtures/ --parallel\n\n# Merge multiple outputs into a single fixture file\nuv run fuzzer_bridge --input fuzzer_outputs/ --output fixtures/ --merge\n```\n\n### Python API\n\nYou can also use the fuzzer bridge programmatically in your Python code:\n\n```python\nfrom cli.fuzzer_bridge import FuzzerBridge\nimport json\n\n# Load fuzzer output\nwith open(\"fuzzer_output.json\") as f:\n    fuzzer_data = json.load(f)\n\n# Create bridge and convert\nbridge = FuzzerBridge()\nblocktest = bridge.convert(fuzzer_data)\n\n# Save to file\nbridge.save(blocktest, \"output.json\")\n\n# Verify with a client\nresult = bridge.verify_with_geth(blocktest, geth_path=\"../go-ethereum/build/bin/evm\")\nprint(f\"Test passed: {result['pass']}\")\n```\n\n### Integration with pytest\n\nGenerate tests dynamically from fuzzer output:\n\n```python\nimport pytest\nfrom cli.fuzzer_bridge import create_test_from_fuzzer\n\ndef test_fuzzer_generated(blockchain_test):\n    \"\"\"Test generated from fuzzer output.\"\"\"\n    test = create_test_from_fuzzer(\"fuzzer_output.json\")\n    blockchain_test(**test)\n```\n\n## How It Works\n\n### Genesis Block Derivation\n\nThe fuzzer describes the environment for block 1 (the block containing the transactions). The genesis block (block 0) environment is automatically derived:\n\n- `number` = 0\n- `timestamp` = block1_timestamp - 12 (assuming 12-second block time)\n- `baseFee` = calculated based on block 1's base fee\n- Other values are inherited or set to defaults\n\n### System Contracts\n\nThe framework automatically includes system contracts required by the fork:\n\n- Deposit contract (for proof-of-stake)\n- Withdrawal contract\n- Beacon roots contract\n- Other fork-specific contracts\n\nThese are included in the state root calculation without requiring fuzzer specification.\n\n### Transaction Signing\n\nAll transactions are automatically signed using the provided private keys. The fuzzer bridge:\n\n1. Validates that each sender has a corresponding private key\n2. Signs transactions with the appropriate signature type for the fork\n3. Handles EIP-1559 transactions when base fee is present\n4. Properly encodes legacy and typed transactions\n\n## Troubleshooting\n\n### Common Issues\n\n#### \"Genesis block hash doesn't match\"\n\n- **Cause**: Environment parameters are incorrect\n- **Solution**: Ensure the fuzzer output follows the v2 format exactly\n\n#### \"No private key for sender\"\n\n- **Cause**: Account sends transaction but no privateKey field provided\n- **Solution**: Add privateKey to the account in the accounts section\n\n#### \"Private key doesn't match address\"\n\n- **Cause**: The provided private key doesn't generate the specified address\n- **Solution**: Use correct private key or generate address from private key\n\n#### \"Transaction type not supported in fork\"\n\n- **Cause**: Using EIP-1559 transactions in pre-London forks\n- **Solution**: Ensure transaction types match the specified fork\n\n## Testing with Clients\n\nOnce you've generated blockchain test fixtures, verify them with Ethereum clients:\n\n### Go-Ethereum (geth)\n\n```bash\n../go-ethereum/build/bin/evm blocktest generated_test.json\n```\n\n### Besu\n\n```bash\n../besu/ethereum/evmtool/build/install/evmtool/bin/evmtool block-test generated_test.json\n```\n\n### Nethermind\n\n```bash\n../nethermind/src/artifacts/bin/nethermind.test.runner test -b generated_test.json\n```\n\n## Advanced Features\n\n### Batch Processing\n\nProcess multiple fuzzer outputs efficiently:\n\n```python\nfrom cli.fuzzer_bridge.cli import process_directory_parallel\n\n# Process all JSON files in a directory\nprocess_directory_parallel(\n    input_dir=\"fuzzer_outputs/\",\n    output_dir=\"fixtures/\",\n    fork=\"Prague\",\n    workers=8\n)\n```\n\n### Custom Fork Configuration\n\nOverride default fork parameters:\n\n```python\nfrom cli.fuzzer_bridge import BlocktestBuilder\n\nbuilder = BlocktestBuilder(fork=\"Prague\")\n# Custom configuration\nbuilder.env_overrides = {\n    \"currentRandom\": \"0x1234...\",\n    \"currentExcessBlobGas\": \"0x0\"\n}\n```\n\n## Best Practices\n\n1. **Validate Fuzzer Output**: Always validate that your fuzzer generates valid v2 format JSON\n2. **Test with Multiple Clients**: Verify generated fixtures with multiple client implementations\n3. **Use Parallel Processing**: For large batches, use `--parallel` flag for better performance\n4. **Version Control**: Track generated fixtures in version control for regression testing\n5. **Continuous Integration**: Integrate fuzzer bridge into CI pipelines for automated testing\n\n## Further Resources\n\n- [Blocktest Fuzzer Documentation](https://github.com/ethereum/blocktest-fuzzer)\n- [EEST Framework Documentation](../index.md)\n- [Ethereum Test Format Specifications](./reference_specification.md)\n"
  },
  {
    "path": "docs/writing_tests/gas_optimization.md",
    "content": "# Gas Optimization\n\nThe `--optimize-gas` feature helps find the minimum gas limit required for transactions to execute correctly while maintaining the same execution trace and post-state. This is useful for creating more efficient test cases and understanding the exact gas requirements of specific operations.\n\n## Basic Usage\n\nEnable gas optimization for all tests:\n\n```bash\nuv run fill --optimize-gas\n```\n\n## Output Configuration\n\nSpecify a custom output file for gas optimization results:\n\n```bash\nuv run fill --optimize-gas --optimize-gas-output=my_gas_results.json path/to/some/test/to/optimize\n```\n\n## Post-Processing Mode\n\nEnable post-processing to handle opcodes that put the current gas in the stack (like `GAS` opcode):\n\n```bash\nuv run fill --optimize-gas --optimize-gas-post-processing\n```\n\n### What Post-Processing Does\n\nPost-processing mode is essential when your test transactions use the `GAS` opcode or other operations that push the current gas value onto the execution stack. Without post-processing, gas optimization would fail because:\n\n1. **Gas Value in Stack**: The `GAS` opcode pushes the current gas value onto the stack\n2. **Different Gas Limits**: When optimizing gas, different gas limits result in different values being pushed by `GAS`\n3. **Trace Comparison Failure**: The execution traces would differ due to these different gas values in the stack, causing optimization to fail\n\n### How Post-Processing Works\n\nWhen `enable_post_processing=True` is passed to the `verify_modified_gas_limit` function:\n\n1. **Gas Removal**: The system identifies traces where the previous operation was `GAS` and removes the gas value from the stack (`trace.stack[-1] = None`)\n2. **Trace Normalization**: This allows trace comparison to succeed even when different gas limits produce different gas values in the stack\n3. **Equivalent Execution**: The optimization can proceed because the traces are considered equivalent after removing gas-dependent stack values\n\n### When to Use Post-Processing\n\nUse `--optimize-gas-post-processing` when your tests:\n\n- Use the `GAS` opcode to read current gas\n- Have contracts that push gas values onto the stack\n- Would otherwise fail gas optimization due to gas-dependent stack operations\n\nWithout post-processing, such tests would be considered \"impossible to compare\" and gas optimization would fail with an error.\n\n### Safety Considerations\n\n**⚠️ Important**: Post-processing mode is **not the default** for good reasons:\n\n- **Guaranteed Equivalence**: Without post-processing, the test execution is guaranteed to be exactly the same as the original, ensuring complete behavioral equivalence\n- **Extra Care Required**: When using `--optimize-gas-post-processing`, extra care must be taken to verify that the optimized test still behaves correctly, as the post-processing modifies trace comparison logic\n- **Potential Risks**: The gas value removal from traces could potentially mask subtle differences in execution that might be important for test correctness\n- **Verification Needed**: Always thoroughly test the optimized results to ensure they maintain the intended behavior, especially for contracts that rely on gas values for logic\n\n**Recommendation**: Only use post-processing mode when absolutely necessary (i.e., when tests fail without it due to `GAS` opcode usage), and always verify the optimized test results carefully.\n\n## How It Works\n\nThe gas optimization algorithm uses a binary search approach:\n\n1. **Initial Validation**: First tries reducing the gas limit by 1 to verify when even minimal changes affect the execution trace\n2. **Binary Search**: Uses binary search between 0 and the original gas limit to find the minimum viable gas limit\n3. **Verification**: For each candidate gas limit, it verifies:\n   - Execution traces are equivalent (with optional post-processing)\n   - Post-state allocation matches the expected result\n   - Transaction validation passes\n   - Account states remain consistent\n4. **Result**: Outputs the minimum gas limit that still produces correct execution\n\n## Output Format\n\nThe optimization results are saved to a JSON file (default: `optimize-gas-output.json`) containing:\n\n- Test identifiers as keys of the JSON object\n- Optimized gas limits in each value or `null` if the optimization failed.\n\n## Use Cases\n\n- **Test Efficiency**: Create tests with minimal gas requirements\n- **Gas Analysis**: Understand exact gas costs for specific operations\n- **Regression Testing**: Ensure gas optimizations don't break test correctness\n- **Performance Testing**: Benchmark gas usage across different scenarios\n\n## Limitations\n\n- Only works with state tests (not blockchain tests)\n- Requires trace collection to be enabled\n- May significantly increase test execution time due to multiple trial runs\n- Some tests may not be optimizable if they require the exact original gas limit\n\n## Integration with Test Writing\n\nWhen writing tests, you can use gas optimization to:\n\n1. **Optimize Existing Tests**: Run `--optimize-gas` on your test suite to find more efficient gas limits\n2. **Validate Gas Requirements**: Ensure your tests use the minimum necessary gas\n3. **Create Efficient Test Cases**: Use the optimized gas limits in your test specifications\n4. **Benchmark Changes**: Compare gas usage before and after modifications\n\n## Example Workflow\n\n```bash\n# 1. Write your test\n# 2. Run with gas optimization\nuv run fill --optimize-gas --optimize-gas-output=optimization_results.json\n\n# 3. Review the results\ncat optimization_results.json\n\n# 4. Update your test with optimized gas limits if desired\n# 5. Re-run to verify correctness\nuv run fill\n```\n\n## Best Practices\n\n### Leave a Buffer for Future Forks\n\nWhen using the optimized gas limits in your tests, it's recommended to add a small buffer (typically 5-10%) above the exact value outputted by the gas optimization. This accounts for potential gas cost changes in future Ethereum forks that might increase the gas requirements for the same operations.\n\nFor example, if the optimization outputs a gas limit of 100,000, consider using 105,000 or 110,000 in your test specification to ensure compatibility with future protocol changes.\n"
  },
  {
    "path": "docs/writing_tests/index.md",
    "content": "# Writing Tests\n\nThe easiest way to get started is to use the interactive CLI:\n\n```console\nuv run eest make test\n```\n\nand modify the generated test module to suit your needs.\n\n<figure class=\"video_container\">\n  <video controls=\"true\" allowfullscreen=\"true\">\n    <source src=\"./img/eest_make_test.mp4\" type=\"video/mp4\">\n  </video>\n</figure>\n\nFor help deciding which test format to select, see [Types of Tests](./types_of_tests.md), in particular [Deciding on a Test Type](./types_of_tests.md#deciding-on-a-test-type). Otherwise, some simple test case examples to get started with are:\n\n- [tests.berlin.eip2930_access_list.test_acl.test_account_storage_warm_cold_state](../tests/berlin/eip2930_access_list/test_acl/test_account_storage_warm_cold_state.md).\n- [tests.istanbul.eip1344_chainid.test_chainid.test_chainid](../tests/istanbul/eip1344_chainid/test_chainid/test_chainid.md).\n\n## Key Resources\n\n- [Coding Standards](./code_standards.md) - Code style and standards for this repository\n- [Adding a New Test](./adding_a_new_test.md) - Step-by-step guide to adding new tests\n- [Writing a New Test](./writing_a_new_test.md) - Detailed guide on writing different test types\n- [Using and Extending Fork Methods](./fork_methods.md) - How to use fork methods to write fork-adaptive tests\n- [Gas Optimization](./gas_optimization.md) - Optimize gas limits in your tests for efficiency and compatibility with future forks.\n- [Porting tests](./porting_legacy_tests.md): A guide to porting @ethereum/tests to EEST.\n\nPlease check that your code adheres to the repo's coding standards and read the other pages in this section for more background and an explanation of how to implement state transition and blockchain tests.\n"
  },
  {
    "path": "docs/writing_tests/porting_legacy_tests.md",
    "content": "# A Guide to Porting Original Ethereum Tests to EEST\n\n## Background\n\nEEST is the successor to [ethereum/tests](https://github.com/ethereum/tests) (aka \"original tests\"), a repository that defined EVM test cases from the [Frontier](https://ethereum.org/en/history/#frontier) phase up to and including [The Merge](https://ethereum.org/en/history/#paris). These test cases are specified as YAML (and occasionally JSON) files in the [`./src/`](https://github.com/ethereum/tests/tree/develop/src) sub-directory. JSON test fixtures, which are fully-populated tests that can be executed against clients, are generated using [ethereum/retesteth](https://github.com/ethereum/retesteth). These JSON artifacts are regenerated when needed and added to the repository, typically in the [`tests/static/state_tests`](https://github.com/ethereum/execution-spec-tests/tree/main/tests/static/state_tests) sub-directory.\n\nFrom [Shanghai](https://ethereum.org/en/history/#shapella) onward, new test cases — especially for new features introduced in hard forks—are defined in Python within EEST. While the existing test cases remain important for client testing, porting ethereum/tests to EEST will help maintain and generate tests for newer forks. This also ensures feature parity, as client teams will only need to obtain test fixture releases from one source.\n\nWhile automating the conversion of the remaining YAML (or JSON) test cases to Python is possible, manually porting individual test cases offers several benefits:\n\n- Reducing the number of test cases by combining multiple YAML (or JSON) cases into a single Python test function using parametrization.\n- Potentially improving coverage by parametrizing the Python version.\n- Producing higher quality code and documentation, which are typically clearer than an automated conversion.\n- Ensuring better organization of tests within the `./tests` folder of execution-spec-tests by fork and EIP.\n\n## Porting an original test\n\n1. Select one or more test cases from `./tests/static/state_tests/` to port and create an issue in this repository AND comment on [this tracker issue.](https://github.com/ethereum/execution-spec-tests/issues/972)\n\n2. [Add a new test](../writing_tests/index.md) in the appropriate fork folder, following the guidelines for [choosing a test type.](../writing_tests/types_of_tests.md#deciding-on-a-test-type)\n\n3. Submit a PR with the ported tests:\n\n     1. Add the list of ported files using python marker to the head of your python test.\n\n        Example:\n\n        ```python\n         @pytest.mark.ported_from(\n        [\n            \"https://github.com/ethereum/tests/blob/v13.3/src/GeneralStateTestsFiller/stCreateTest/CREATE_ContractSuicideDuringInit_ThenStoreThenReturnFiller.json\",\n            \"https://github.com/ethereum/tests/blob/v13.3/src/GeneralStateTestsFiller/stCreateTest/CREATE_ContractSuicideDuringInit_WithValueFiller.json\",\n        ],\n        pr=[\"https://github.com/ethereum/execution-spec-tests/pull/1871\"],\n        # coverage_missed_reason=\"Converting solidity code result in following opcode not being used:\",\n        ```\n\n        Replace test names with your chosen tests and PR number.\n\n        Uncomment coverage_missed_reason when all the missed coverage lines are approved, usually some opcodes end up not used after translating test logic from lllc, yul.\n\n        But sometimes missed coverage line could hint that you forgot to account important test logic.\n\n        If no coverage is missed, you are good!\n\n     2. Remove the ported files from .tests/static/state_tests in your PR\n\n> See also: 📄 [Getting started with EEST.](../getting_started/repository_overview.md)\n\n## Filling tests\n\nEEST uses pytest to run tests against [EELS (an EVM implementation for testing)](https://github.com/ethereum/execution-specs). This process is known as \"filling\" and verifies the assertions in your tests. You can use the fill CLI for this. For example, see how to fill the `PUSH` opcode.\n\n```shell\nuv run fill tests/frontier/opcodes/test_push.py\n```\n\nSee also: 📄 [Documentation for the `fill` command.](../filling_tests/filling_tests_command_line.md)\n\n> If the tests can't currently be filled, please explain the issue (feel free to also [open a Discussion](https://github.com/ethereum/execution-spec-tests/discussions/new?category=general)).\n\n## Debugging tests\n\nBy default, EVM logs are stored in the `logs` folder at the repository root. You can check the `output` folder to review transaction results. If needed, review a previous PR that ported tests (e.g., [the PR porting the `PUSH` opcode](https://github.com/ethereum/execution-spec-tests/pull/975), and [other port PRs](https://github.com/ethereum/execution-spec-tests/pulls?q=is%3Apr+label%3Aport)).\n\n## Test coverage\n\nIt's crucial that ported tests maintain coverage parity with _original tests_. This ensures that no critical functions are left untested and prevents the introduction of bugs. A CI workflow automatically checks for coverage.\n\nIf coverage action fails (See: 📄 [An example of a failing test coverage](https://github.com/ethereum/execution-spec-tests/actions/runs/13037332959/job/36370897481)), it's recommended to run the coverage action locally (see: 📄 [How to run GitHub actions locally](../dev/test_actions_locally.md)), which should generate a `evmtest_coverage` directory:\n\n```console\n❯ tree evmtest_coverage  -L 2\nevmtest_coverage\n└── coverage\n    ├── BASE\n    ├── BASE_TESTS\n    ├── coverage_BASE.lcov\n    ├── coverage_PATCH.lcov\n    ├── DIFF\n    ├── difflog.txt\n    ├── PATCH\n    └── PATCH_TESTS\n```\n\nHere `BASE`is _original tests_, `PATCH` is the ported test, and `DIFF` is the coverage difference on EVMONE. Open `evmtest_coverage/coverage/DIFF/index.html` in browser:\n\n![Annotated coverage](../img/annotated-coverage.jpg)\n\n| Label |                                   Description                                   |\n| ----- | :-----------------------------------------------------------------------------: |\n| `LBC` |    **Lost base coverage:** Code that was tested before, but is untested now.    |\n| `UBC` |  **Uncovered baseline code:** Code that was untested before and untested now.   |\n| `GBC` | **Gained baseline coverage:** Code that was untested before, but is tested now. |\n| `CBC` |    **Covered baseline code:** Code that was tested before and is tested now.    |\n\nFollow the hyperlinks for lost base coverage (`LBC`) to address coverage gaps. Here is an example coverage loss:\n\n![Missing original coverage](../img/original-coverage-loss.png)\n\n> Lost line coverage from a coverage report. In this case, caused by a missing invocation of `CALLDATALOAD`.\n\n!!! note \"Expected coverage loss\"\n\n    EEST uses [pytest](https://docs.pytest.org/en/stable/), a popular Python testing framework, to help orchestrate testing Ethereum specifications, while _original tests_ relied on large, static contracts and the EVM to handle much of the execution. This difference can lead to coverage gaps. EEST favors dynamic contract creation for each test vector, while _original tests_ preferred a single static contract with multiple test vectors determined by transaction input data.\n\n    It's important to note that coverage helps identify missing test paths. If you believe the coverage loss is due to differences in \"setup\" code between frameworks and doesn't impact the feature you're testing, explain this in your PR. A team member can help with the review.\n\n    For example, review the [discussion in this PR] to see an example of why and how coverage loss can occur.(https://github.com/ethereum/execution-spec-tests/pull/975#issuecomment-2528792289)\n\n## Resolving Coverage Gaps from Yul Compilation\n\nWhen porting tests from ethereum/tests, you may encounter coverage gaps that are false positives. This commonly occurs because:\n\n- **Original tests** often used Yul to define smart contracts, and solc compilation introduces additional opcodes that aren't specifically under test\n- **EEST ports** use the explicit EEST Opcode mini-language, which is more precise in opcode definition\n\nIf coverage analysis shows missing opcodes that were only present due to Yul compilation artifacts (not the actual feature being tested), this can be resolved during PR review by adding the `coverage_missed_reason` parameter:\n\n```python\n@pytest.mark.ported_from(\n    [\"path/to/original_test.json\"],\n    coverage_missed_reason=\"Missing opcodes are Yul compilation artifacts, not part of tested feature\"\n)\n```\n\n!!! note \"Add coverage_missed_reason only after PR review\"\n    Only add `coverage_missed_reason` after PR review determines the coverage gap is acceptable, never preemptively. This helps maintain test coverage integrity while accounting for legitimate differences between Yul-based and EEST opcode-based implementations.\n"
  },
  {
    "path": "docs/writing_tests/post_mortems.md",
    "content": "# Post-Mortems of Missed Test Scenarios\n\nThis page contains a collection of post-mortem analyses for test cases that were not initially identified by the testing process.\n\nThe objective is to document and learn from missed scenarios — including those that were caught on the client side due to consensus issue, client developer raised issues, external reviewers, or external bug bounties — in order to improve test coverage and reduce the likelihood of similar omissions in the future.\n\nEach entry must include an explanation of why the test case was missed plus the changes that were implemented in documentation or framework to improve the testing process.\n\n## List\n\n## TEMPLATE\n\n## Date - Title - Fork\n\n### Description\n\nProvide a concise summary of the issue, how it was discovered, emphasizing the how it relates to the specifications and testing.\n\n*Example:*\n\n> A consensus-breaking issue was found during the bug-bounty phase of the Pectra fork specifically in the EIP-2537, which involved calling the BLS pairing precompile using two special points: the infinity point and a point that is outside of the BLS12-381 curve.\n> The specification correctly specified the behavior of the precompile when one of these inputs was used, but it did not specify the behavior of the combined input.\n\n### Root Cause Analysis\n\nExplain why this scenario was not covered by the test suite. Consider whether it was due to ambiguous specification wording, gaps in test generation logic, overlooked edge cases, or incorrect assumptions about expected behavior.\n\n*Consider prompting questions:*\n\n- Was the behavior implied but not explicitly stated in the specification?\n- Was the area considered low-risk or assumed covered elsewhere?\n- Were there limitations in the current test generation tools or processes?\n- Was there any different type of testing that could have caught the issue at an earlier stage? (Fuzzing, property based testing)\n\n### Steps Taken To Avoid Recurrence\n\nList the actions taken to reduce the chance of this type of miss happening again. E.g. procedure changes, checklist updates, review practices, framework improvements.\n\n### Implemented Test Case\n\nIDs of the tests added that now cover the missed scenario and link to the documentation page where they are included.\n\n*Example:*\n\n- [`tests/prague/eip2537_bls_12_381_precompiles/test_bls12_g1msm.py::test_invalid\\[fork_Prague-state_test---bls_g1_truncated_input-\\]`](https://eest.ethereum.org/main/tests/prague/eip2537_bls_12_381_precompiles/test_bls12_g1msm/test_invalid/)\n\n### Framework/Documentation Changes\n\nNote any modifications that were introduced in the framework and/or documentation to prevent similar misses.\n\n*Example:*\n\n- Updated EIP checklist to include testing combinations of interesting points related to the elliptic-curve under test, and all combinations between them.\n"
  },
  {
    "path": "docs/writing_tests/reference_specification.md",
    "content": "# Referencing an EIP Spec Version\n\nTests that implement features from an Ethereum Improvement Proposal ([ethereum/EIPs](https://github.com/ethereum/EIPs/tree/master/EIPS)) must define the EIP's markdown SHA digest within the test's Python module. This ensures our tests stay up-to-date with any changes to the EIP specifications.\n\nThe `check_eip_versions` command-line utility automatically verifies that all EIP references in the codebase are current. It works by comparing the SHA specified in the test against the latest version in the ethereum/EIPs repository. This utility uses pytest to generate test cases for every module that includes \"eip\" in its path.\n\n<figure markdown>  <!-- markdownlint-disable MD033 (MD033=no-inline-html) -->\n  ![Test framework summary for a failing EIP spec version test](./img/eip_reference_spec_console_output.png){ width=auto align=center}\n</figure>\n\n!!! note \"The SHA digest value is provided in the failure message of the corresponding test\"\n\n    <figure markdown>  <!-- markdownlint-disable MD033 (MD033=no-inline-html) -->\n      ![EIP spec version test fail](./img/eip_reference_spec_console_output_fail.png){ width=auto align=center}\n    </figure>\n\n!!! info \"Understanding and Retrieving the EIP Markdown's SHA Digest\"\n\n    The SHA value is the output from git's `hash-object` command, for example:\n\n    ```console\n    git clone git@github.com:ethereum/EIPs\n    git hash-object EIPS/EIPS/eip-3651.md\n    # output: d94c694c6f12291bb6626669c3e8587eef3adff1\n    ```\n\n    and can be retrieved from the remote repo via the Github API on the command-line as following:\n\n    ```console\n    sudo apt install jq\n    curl -s -H \"Accept: application/vnd.github.v3+json\" \\\n    https://api.github.com/repos/ethereum/EIPs/contents/EIPS/eip-3651.md |\\\n    jq -r '.sha'\n    # output: d94c694c6f12291bb6626669c3e8587eef3adff1\n    ```\n\n## How to Add a Spec Version Check\n\nThis check accomplished by adding the following two global variables anywhere in the Python source file:\n\n| Variable Name             | Explanation                                                                                                                                                     |\n| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `REFERENCE_SPEC_GIT_PATH` | The relative path of the EIP markdown file in the [ethereum/EIPs](https://github.com/ethereum/EIPs/) repository, e.g. \"`EIPS/eip-1234.md`\"                      |\n| `REFERENCE_SPEC_VERSION`  | The SHA hash of the latest version of the file retrieved from the Github API:<br/>`https://api.github.com/repos/ethereum/EIPs/contents/EIPS/eip-<EIP Number>.md` |\n\n## Running the `check_eip_versions` Command Locally\n\nA Github Personal Access Token (PAT) is required to avoid rate-limiting issues when using the Github API. The token can be specified via an environment variable or via the command-line. For example, the Github CLI can be used to obtain a token:\n\n```bash\nuv run check_eip_versions --github-token=$(gh auth token)\n```\n\nor a PAT can be created at: https://github.com/settings/personal-access-tokens/new.\n\nBy default, only tests up to and including the current fork under development will be checked. This is controlled by the `UNTIL_FORK` setting in the `src/config/check_eip_versions.py` configuration file. You can also pass a specific test path to limit the scope:\n\n```shell\nuv run check_eip_versions --github-token=$(gh auth token) tests/shanghai/eip3651_warm_coinbase/\n```\n\nThis would only check EIP versions for the EIP-3651 tests in the `shanghai/eip3651_warm_coinbase` sub-directory.\n\n## Automated Checks via GitHub Actions\n\nThe repository includes a [GitHub Actions workflow](https://github.com/ethereum/execution-spec-tests/actions/workflows/check_eip_versions.yaml) that automatically runs `check_eip_versions` on a daily schedule. If any outdated EIP references are detected, the workflow creates an issue in the repository with details about which references need to be updated.\n\nThis workflow uses GitHub's built-in token for authentication, so there's no need to configure personal access tokens for the automated checks. The issue will include links to the relevant workflow run and details about which tests need updating.\n\n## Example\n\nHere is an example from [./tests/shanghai/eip3651_warm_coinbase/test_warm_coinbase.py](../tests/shanghai/eip3651_warm_coinbase/test_warm_coinbase/index.md):\n\n```python\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-3651.md\"\nREFERENCE_SPEC_VERSION = \"d94c694c6f12291bb6626669c3e8587eef3adff1\"\n```\n\nThe SHA digest was retrieved [from here](https://api.github.com/repos/ethereum/EIPs/contents/EIPS/eip-3651.md).\n"
  },
  {
    "path": "docs/writing_tests/test_markers.md",
    "content": "# Test Markers\n\nTest markers are used to categorize tests and to run specific subsets of tests. They are defined in the test files using the `pytest.mark` decorator.\n\nThe examples below use `StateTestFiller` tests, but the same markers can also be applied to `BlockchainTestFiller` tests.\n\n## Fork Markers\n\nThese markers are used to specify the forks for which a test is valid.\n\n### `@pytest.mark.valid_from(\"FORK_NAME\")`\n\n:::pytest_plugins.forks.forks.ValidFrom\n\n### `@pytest.mark.valid_until(\"FORK_NAME\")`\n\n:::pytest_plugins.forks.forks.ValidUntil\n\n### `@pytest.mark.valid_at(\"FORK_NAME_1\", \"FORK_NAME_2\", ...)`\n\n:::pytest_plugins.forks.forks.ValidAt\n\n### `@pytest.mark.valid_at_transition_to(\"FORK_NAME\")`\n\n:::pytest_plugins.forks.forks.ValidAtTransitionTo\n\n## Fork Covariant Markers\n\nThese markers are used in conjunction with the fork validity markers to automatically parameterize tests with values that are valid for the fork being tested.\n\n### `@pytest.mark.with_all_tx_types`\n\nThis marker is used to automatically parameterize a test with all transaction types that are valid for the fork being tested.\n\n```python\nimport pytest\n\nfrom ethereum_test_tools import Alloc, StateTestFiller\n\n@pytest.mark.with_all_tx_types\n@pytest.mark.valid_from(\"Berlin\")\ndef test_something_with_all_tx_types(\n    state_test: StateTestFiller, \n    pre: Alloc,\n    tx_type: int\n):\n    pass\n```\n\nIn this example, the test will be parameterized for parameter `tx_type` with values `[0, 1]` for fork Berlin, but with values `[0, 1, 2]` for fork London (because of EIP-1559).\n\n### `@pytest.mark.with_all_contract_creating_tx_types`\n\nThis marker is used to automatically parameterize a test with all contract creating transaction types that are valid for the fork being tested.\n\nThis marker only differs from `pytest.mark.with_all_tx_types` in that it does not include transaction type 3 (Blob Transaction type) on fork Cancun and after.\n\n### `@pytest.mark.with_all_typed_transactions`\n\nThis marker is used to automatically parameterize a test with all typed transactions, including `type=0` (legacy transaction), that are valid for the fork being tested.\nThis marker is an indirect marker that utilizes the `tx_type` values from the `pytest.mark.with_all_tx_types` marker to build default typed transactions for each `tx_type`.\n\nOptional: Default typed transactions used as values for `typed_transaction` exist in `src/pytest_plugins/shared/transaction_fixtures.py` and can be overridden for the scope of\nthe test by re-defining the appropriate `pytest.fixture` for that transaction type.\n\n```python\nimport pytest\n\nfrom ethereum_test_tools import Account, Alloc, StateTestFiller\nfrom ethereum_test_types import Transaction\n\n# Optional override for type 2 transaction\n@pytest.fixture\ndef type_2_default_transaction(sender: Account):\n  return Transaction(\n    ty=2,\n    sender=sender,\n    max_fee_per_gas=0x1337,\n    max_priority_fee_per_gas=0x1337,\n    ...\n  )\n\n# Optional override for type 4 transaction\n@pytest.fixture\ndef type_4_default_transaction(sender: Account, pre: Alloc):\n  return Transaction(\n    ty=4,\n    sender=sender,\n    ...,\n    authorization_list=[\n      AuthorizationTuple(\n        address=Address(1234),\n        nonce=0,\n        chain_id=1,\n        signer=pre.fund_eoa(),\n      )\n    ]\n  )\n\n\n@pytest.mark.with_all_typed_transactions\n@pytest.mark.valid_from(\"Prague\")\ndef test_something_with_all_tx_types(\n    state_test: StateTestFiller, \n    pre: Alloc,\n    typed_transaction: Transaction\n):\n    pass\n```\n\n### `@pytest.mark.with_all_precompiles`\n\nThis marker is used to automatically parameterize a test with all precompiles that are valid for the fork being tested.\n\n```python\nimport pytest\n\nfrom ethereum_test_tools import Alloc, StateTestFiller\n\n@pytest.mark.with_all_precompiles\n@pytest.mark.valid_from(\"Shanghai\")\ndef test_something_with_all_precompiles(\n    state_test: StateTestFiller, \n    pre: Alloc,\n    precompile: int,\n):\n    pass\n```\n\nIn this example, the test will be parameterized for parameter `precompile` with values `[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]` for fork Shanghai, but with values `[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]` for fork Cancun which introduced the [point evaluation precompile](https://eips.ethereum.org/EIPS/eip-4844#point-evaluation-precompile) defined in EIP-4844.\n\n### `@pytest.mark.with_all_evm_code_types`\n\nThis marker is used to automatically parameterize a test with all EVM code types that are valid for the fork being tested.\n\n```python\nimport pytest\n\nfrom ethereum_test_tools import Alloc, StateTestFiller\n\n@pytest.mark.with_all_evm_code_types\n@pytest.mark.valid_from(\"Frontier\")\ndef test_something_with_all_evm_code_types(\n    state_test: StateTestFiller,     \n    pre: Alloc,\n):\n    pass\n```\n\nIn this example, the test will be parameterized for parameter `evm_code_type` only with value `[EVMCodeType.LEGACY]` starting on fork Frontier, and eventually it will be parametrized with with values `[EVMCodeType.LEGACY, EVMCodeType.EOF_V1]` on the EOF activation fork.\n\nIn all calls to `pre.deploy_contract`, if the code parameter is `Bytecode` type, and `evm_code_type==EVMCodeType.EOF_V1`, the bytecode will be automatically wrapped in an EOF V1 container.\n\nCode wrapping might fail in the following circumstances:\n\n- The code contains invalid EOF V1 opcodes.\n- The code does not end with a valid EOF V1 terminating opcode (such as `Op.STOP` or `Op.REVERT` or `Op.RETURN`).\n\nIn the case where the code wrapping fails, `evm_code_type` can be added as a parameter to the test and the bytecode can be dynamically modified to be compatible with the EOF V1 container.\n\nOne thing to note is that `evm_code_type` is not necessary to be added as a parameter to the test because the `pre: Alloc` fixture automatically consumes this fixture, and therefore it only needs to be added to the test signature if the test's logic needs it.\n\n```python\nimport pytest\n\nfrom ethereum_test_tools import Alloc, StateTestFiller\nfrom ethereum_test_vm import EVMCodeType\nfrom ethereum_test_vm import Opcodes as Op\n\n@pytest.mark.with_all_evm_code_types\n@pytest.mark.valid_from(\"Frontier\")\ndef test_something_with_all_evm_code_types(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    evm_code_type: EVMCodeType\n):\n    code = Op.SSTORE(1, 1)\n    if evm_code_type == EVMCodeType.EOF_V1:\n        # Modify the bytecode to be compatible with EOF V1 container\n        code += Op.STOP\n    pre.deploy_contract(code)\n    ...\n```\n\n### `@pytest.mark.with_all_call_opcodes`\n\nThis marker is used to automatically parameterize a test with all EVM call opcodes that are valid for the fork being tested.\n\n```python\nimport pytest\n\nfrom ethereum_test_tools import Alloc, StateTestFiller\nfrom ethereum_test_vm import Opcodes as Op\n\n@pytest.mark.with_all_call_opcodes\n@pytest.mark.valid_from(\"Frontier\")\ndef test_something_with_all_call_opcodes(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    call_opcode: Op\n):\n    pass\n```\n\nIn this example, the test will be parametrized for parameter `call_opcode` with values `[Op.CALL, Op.CALLCODE]` starting on fork Frontier, `[Op.CALL, Op.CALLCODE, Op.DELEGATECALL]` on fork Homestead, `[Op.CALL, Op.CALLCODE, Op.DELEGATECALL, Op.STATICCALL]` on fork Byzantium, and eventually it will be parametrized with with values `[Op.CALL, Op.CALLCODE, Op.DELEGATECALL, Op.STATICCALL, Op.EXTCALL, Op.EXTSTATICCALL, Op.EXTDELEGATECALL]` on the EOF activation fork.\n\nParameter `evm_code_type` will also be parametrized with the correct EVM code type for the opcode under test.\n\n### `@pytest.mark.with_all_create_opcodes`\n\nThis marker is used to automatically parameterize a test with all EVM create opcodes that are valid for the fork being tested.\n\n```python\nimport pytest\n\nfrom ethereum_test_tools import Alloc, StateTestFiller\nfrom ethereum_test_vm import Opcodes as Op\n\n@pytest.mark.with_all_create_opcodes\n@pytest.mark.valid_from(\"Frontier\")\ndef test_something_with_all_create_opcodes(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    create_opcode: Op\n):\n    pass\n```\n\nIn this example, the test will be parametrized for parameter `create_opcode` with values `[Op.CREATE]` starting on fork Frontier, `[Op.CREATE, Op.CREATE2]` starting on fork Constantinople, and eventually it will be parametrized with with values `[Op.CREATE, Op.CREATE2, Op.EOFCREATE]` on the EOF activation fork.\n\nParameter `evm_code_type` will also be parametrized with the correct EVM code type for the opcode under test.\n\n### `@pytest.mark.with_all_system_contracts`\n\nThis marker is used to automatically parameterize a test with all system contracts that are valid for the fork being tested.\n\n```python\nimport pytest\n\nfrom ethereum_test_tools import Alloc, StateTestFiller\nfrom ethereum_test_base_types import Address\n\n@pytest.mark.with_all_system_contracts\n@pytest.mark.valid_from(\"Cancun\")\ndef test_something_with_all_system_contracts(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    system_contract: Address,\n):\n    pass\n\n```\n\nIn this example, the test will be parameterized for parameter `system_contract` with value `[0x000F3DF6D732807EF1319FB7B8BB8522D0BEAC02]` for fork Cancun.\n\n### Covariant Marker Keyword Arguments\n\nAll fork covariant markers accept the following keyword arguments:\n\n#### `selector`\n\nA lambda function that can be used to filter the fork covariant values that are valid for this specific test.\n\n```python\nimport pytest\n\nfrom ethereum_test_tools import Alloc, StateTestFiller\n\n@pytest.mark.with_all_tx_types(selector=lambda tx_type: tx_type != 2)\n@pytest.mark.valid_from(\"London\")\ndef test_something_with_all_tx_types(\n    state_test: StateTestFiller, \n    pre: Alloc,\n    tx_type: int\n):\n    pass\n```\n\nIdeally, the lambda function should be used to explicitly filter out values that are not compatible with the test (exclusive filter), rather than explicitly selecting values (inclusive filter), as the parametrized values might change with future forks.\n\n#### `marks`\n\nA marker, list of markers, or a lambda function that can be used to add additional markers to the test.\n\n```python\nimport pytest\n\n@pytest.mark.with_all_tx_types(\n    marks=lambda tx_type: pytest.mark.skip(\"incompatible\") if tx_type == 1 else None,\n)\n@pytest.mark.valid_from(\"London\")\ndef test_something_with_all_tx_types_but_skip_type_1(state_test_only, tx_type):\n    assert tx_type != 1\n    ...\n```\n\nIn this example, the test will be skipped if `tx_type` is equal to 1 by returning a `pytest.mark.skip` marker, and return `None` otherwise.\n\n## `@pytest.mark.parametrize_by_fork`\n\nA test can be dynamically parametrized based on the fork using the `parametrize_by_fork` marker.\n\nThis marker takes two positional arguments:\n\n- `argnames`: A list of parameter names that will be parametrized using the custom function.\n- `fn`: A function that takes the fork as parameter and returns a list of values that will be used to parametrize the test at that specific fork.\n\nAnd one keyword argument:\n\n- `marks` (optional): A marker, list of markers, or a lambda function that can be used to add additional markers to the generated tests.\n\nThe marked test function will be parametrized by the values returned by the `fn` function for each fork.\n\nIf the parameters that are being parametrized is only a single parameter, the return value of `fn` should be a list of values for that parameter.\n\nIf the parameters that are being parametrized are multiple, the return value of `fn` should be a list of tuples/lists, where each tuple contains the values for each parameter.\n\n```python\nimport pytest\n\ndef covariant_function(fork):\n    return [[1, 2], [3, 4]] if fork.name() == \"Paris\" else [[4, 5], [5, 6], [6, 7]]\n\n@pytest.mark.parametrize_by_fork(\"test_parameter,test_parameter_2\", covariant_function)\n@pytest.mark.valid_from(\"Paris\")\n@pytest.mark.valid_until(\"Shanghai\")\ndef test_case(state_test_only, test_parameter, test_parameter_2):\n    pass\n```\n\nIn this example, the test will be parametrized with the values `[1, 2]` and `[3, 4]` for the Paris fork, with values `1` and `3` being assigned to `test_parameter` and `2` and `4` being assigned to `test_parameter_2`. For the Shanghai fork, the test will be parametrized with the values `[4, 5]`, `[5, 6]`, and `[6, 7]`. Therefore, more test cases will be generated for the Shanghai fork.\n\nIf the parameters that are being parametrized is only a single parameter, the return value of `fn` should be a list of values for that parameter.\n\nIf the parameters that are being parametrized are multiple, the return value of `fn` should be a list of tuples/lists, where each tuple contains the values for each parameter.\n\nThe function can also return a list of `pytest.param` objects, which allows for additional markers and test IDs to be added to the test.\n\n## Fill/Execute Markers\n\nThese markers are used to apply different markers to a test depending on whether it is being filled or executed.\n\n### `@pytest.mark.fill`\n\nThis marker is used to apply markers to a test when it is being filled.\n\n```python\nimport pytest\n\nfrom ethereum_test_tools import Alloc, StateTestFiller\n\n@pytest.mark.fill(pytest.mark.skip(reason=\"Only for execution\"))\ndef test_something(\n    state_test: StateTestFiller, \n    pre: Alloc\n):\n    pass\n```\n\nIn this example, the test will be skipped when it is being filled.\n\n### `@pytest.mark.execute`\n\nThis marker is used to apply markers to a test when it is being executed.\n\n```python\nimport pytest\n\nfrom ethereum_test_tools import Alloc, StateTestFiller\n\n@pytest.mark.execute(pytest.mark.xfail(reason=\"Depends on block context\"))\ndef test_something(\n    state_test: StateTestFiller, \n    pre: Alloc\n):\n    pass\n```\n\nIn this example, the test will be marked as expected to fail when it is being executed, which is particularly useful so that the test is still executed but does not fail the test run.\n\n## Other Markers\n\n### `@pytest.mark.slow`\n\nThis marker is used to mark tests that are slow to run. These tests are not run during [`tox` checks](./verifying_changes.md), and are only run when a release is being prepared.\n\n### `@pytest.mark.pre_alloc_modify`\n\nThis marker is used to mark tests that modify the pre-alloc in a way that would be impractical to reproduce in a real-world scenario.\n\nExamples of this include:\n\n- Modifying the pre-alloc to have a balance of 2^256 - 1.\n- Address collisions that would require hash collisions.\n\n### `@pytest.mark.skip()`\n\nThis marker can be used to skip a test.\n\n```python\nimport pytest\n\nfrom ethereum_test_tools import Alloc, StateTestFiller\n\n@pytest.mark.skip(reason=\"Not implemented\")\ndef test_something(state_test: StateTestFiller, pre: Alloc):\n    pass\n```\n\n### `@pytest.mark.xfail()`\n\nThis marker can be used to mark a test as expected to fail.\n\n```python\nimport pytest\n\nfrom ethereum_test_tools import Alloc, StateTestFiller\n\n@pytest.mark.xfail(reason=\"EVM binary doesn't support this opcode\")\ndef test_something(state_test: StateTestFiller, pre: Alloc):\n    pass\n```\n"
  },
  {
    "path": "docs/writing_tests/tutorials/blockchain.md",
    "content": "# Blockchain Tests\n\nThis tutorial teaches you to create a blockchain execution specification test. These tests verify that a blockchain, starting from a defined pre-state, will process given blocks and arrive at a defined post-state.\n\n## Pre-requisites\n\nBefore proceeding with this tutorial, it is assumed that you have prior knowledge and experience with the following:\n\n- Repository set-up, see [installation](../../getting_started/installation.md).and run an execution specification test as outlined in the .\n- Able to run `fill`, see [Getting Started: Filling Tests](../../filling_tests/getting_started.md).\n- Understand how to read a [blockchain test](https://ethereum-tests.readthedocs.io/en/latest/test_filler/blockchain_filler.html).\n- Familiarity with [Python](https://docs.python.org/3/tutorial/).\n- Understand how to write an execution spec [state transition test](./state_transition.md).\n\n## Example Tests\n\nIn this tutorial we will go over [test_block_number] in `test_block_example.py`.\n\nIt is assumed you have already gone through the state transition test tutorial. Only new concepts will be discussed.\n\n### Smart Contract\n\nA smart contract is defined that is called by each transaction in the test. It stores a pointer to storage at `storage[0]`. When it is called storage cell `0` gets the current block [number](https://www.evm.codes/#43?fork=merge), and the pointer is incremented to the next value.\n\n```python\ncontract_addr: Account(\n    balance=1000000000000000000000,\n    code=code,\n    storage={\n        0x00: 0x01,\n    },\n),\n```\n\n### Transaction Generator\n\nThe transactions used in this test are nearly identical. Their only difference is the `nonce` value which needs to be incremented.\n\n```python\ndef tx_generator():\n    nonce = 0  # Initial value\n    while True:\n        tx = Transaction(\n            ty=0x0,\n            chain_id=0x0,\n            nonce=nonce,\n            to=contractAddr,\n            gas_limit=500000,\n            gas_price=10,\n        )\n        nonce = nonce + 1\n        yield tx\n\ntx_generator = tx_generator()\n```\n\nThis looks like an infinite loop but it isn't because this is a [generator function](https://wiki.python.org/moin/Generators). When generator encounters the `yield` keyword it returns the value and stops execution, keeping a copy of all the local variables, until it is called again. Hence infinite loops inside a generator are not a problem as long as they include `yield`. This code section is responsible for creating the `Transaction` object and incrementing the `nonce`.\n\nEvery time the function `tx_generator()` is called, it returns a new generator with a `nonce` of zero. To increment the `nonce` we need to use the *same* generator. We assign this generator to `tx_generator`.\n\n### Blocks\n\nEach integer in the `tx_per_block` array is the number of transactions in a block. The genesis block is block 0 (no transactions). It follows that we have 2 transactions in block 1, 0 in block two, 4 in block 3, ..., and 50 in block 9.\n\n```python\ntx_per_block = [2, 0, 4, 8, 0, 0, 20, 1, 50]\n```\n\nThe code section that creates the blocks is a bit complex in this test. For some simpler definitions of Block creation you can browse tests within [`test_withdrawals.py`](https://github.com/ethereum/execution-spec-tests/blob/main/tests/shanghai/eip4895_withdrawals/test_withdrawals.py).\n\n```python\nblocks = map(\n    lambda len: Block(\n        txs=list(map(lambda x: next(tx_generator), range(len)))\n    ),\n    tx_per_block,\n)\n```\n\nWe use [`lambda` notation](https://www.w3schools.com/python/python_lambda.asp) to specify short functions. In this case, the function doesn't actually care about its input, it just returns the next transaction from the generator.\n\n```python\nlambda x: next(tx_generator)\n```\n\nPython uses [`range(n)`](https://www.w3schools.com/python/ref_func_range.asp) to create a list of numbers from `0` to `n-1`. Among other things, it's a simple way to create a list of `n` values.\n\n```python\nrange(len)\n```\n\nThe [`map` function](https://www.w3schools.com/python/ref_func_map.asp) runs the function (the first parameter) on every element of the list (the second parameter). Putting together what we know, it means that it runs `next(tx_generator)` `len` times, giving us `len` transactions. We then use [`list`](https://www.w3schools.com/python/python_lists.asp) to turn the transactions into a list that we can provide as the `txs` parameter to the `Block` constructor.\n\n```python\nlist(map(lambda x: next(tx_generator), range(len)))\n```\n\nThe outer `lambda` function takes an integer, `len`, and creates a `Block` object with `len` transactions. This function is then run on every value of `tx_per_block` to generate the blocks.\n\n```python\nblocks = map(\n    lambda len: Block(\n        txs=list of len transactions\n    ),\n    tx_per_block,\n)\n```\n\nFor example, if we had `tx_per_block = [0,2,4]`, we'd get this result:\n\n```python\nblocks = [\n    Blocks(txs=[]),\n    Blocks(txs=[next(tx_generator), next(tx_generator)]),\n    Blocks(txs=[next(tx_generator), next(tx_generator), next(tx_generator), next(tx_generator)])        \n]\n```\n\n### Post State\n\nRecall that storage slot 0 retains the value of the next slot that the block number is written into. It starts at one and is incremented after each transaction. Hence it's the total number of transactions plus 1.\n\n```python\nstorage = {0: sum(tx_per_block) + 1}\n```\n\nFor every block and transaction within the block, we write the block number and increment the next slot number in storage slot 0. As Python lists are 0 indexed, we must increment the block number by 1.\n\n```python\nnext_slot = 1\nfor blocknum in range(len(tx_per_block)):\n    for _ in range(tx_per_block[blocknum]):\n        storage[next_slot] = blocknum + 1\n        next_slot = next_slot + 1\n```\n\nNow that the expected storage values are calculated, the post state can be defined and yielded within the `BlockchainTest`, synonymous to the state test example.\n\n```python\npost = {contract_addr: Account(storage=storage)}\n\nyield BlockchainTest(\n    genesis_environment=env,\n    pre=pre,\n    blocks=blocks,\n    post=post,\n)\n```\n\nNote that because of the `yield` we could have multiple tests under the same name.\n\n## Conclusion\n\nAt this point you should be able to write blockchain tests.\n"
  },
  {
    "path": "docs/writing_tests/tutorials/state_transition.md",
    "content": "# State Transition Tests\n\nThis tutorial teaches you to create a state transition execution specification test using the Python Opcodes minilang for writing EVM bytecode. These tests verify that a starting pre-state will reach a specified post-state after executing a single transaction. In this example, we'll create a simple contract using bytecode and then interact with it through a transaction to verify the expected state changes.\n\nFor an overview of different test types available, see [Types of Tests](../../writing_tests/types_of_tests.md).\n\n## Pre-requisites\n\nThis tutorial will require some prior knowledge and experience with the following:\n\n- Repository set-up, see [installation](../../getting_started/installation.md).\n- Ability to run `fill`, see [Getting Started: Filling Tests](../../filling_tests/getting_started.md).\n- Basic familiarity with [Python](https://docs.python.org/3/tutorial/).\n\n## Building a State Test\n\nThe most effective method of learning how to write tests is to study a straightforward example. In this tutorial we will build a simple state test that deploys a contract with bytecode and verifies its execution.\n\n### Complete Test Example\n\nWe'll examine a simple test that uses the Python Opcodes minilang to write EVM bytecode. This example is based on the CHAINID opcode test from `tests/istanbul/eip1344_chainid/test_chainid.py`.\n\nLet's examine each section.\n\n```python\n\"\"\"State test tutorial demonstrating contract deployment and interaction.\"\"\"\n```\n\nIn Python, multi-line strings are denoted using `\"\"\"`. As a convention, a file's purpose is often described in the opening string of the file.\n\n```python\nimport pytest\n\nfrom ethereum_test_tools import Account, Alloc, Environment, StateTestFiller, Transaction\nfrom ethereum_test_vm import Opcodes as Op\n```\n\nIn this snippet the required constants, types and helper functions are imported from `ethereum_test_tools`. The `Opcodes` class (aliased as `Op`) provides the Python minilang for writing EVM bytecode. We will go over these as we come across them.\n\n```python\n@pytest.mark.valid_from(\"Istanbul\")\n```\n\nIn Python this kind of definition is called a [*decorator*](https://docs.python.org/3/search.html?q=decorator).\nIt modifies the action of the function after it.\nIn this case, the decorator is a custom [pytest mark](https://docs.pytest.org/en/latest/how-to/mark.html) defined by the execution-specs-test framework that specifies that the test is valid for the [Istanbul fork](https://ethereum.org/en/history/#istanbul) and all forks after it. The framework will then fill this test case for all forks in the fork range specified by the command-line arguments.\n\nFor more information about test markers and fork validity, see [Test Markers](../../writing_tests/test_markers.md).\n\n!!! info \"Filling the test\"\n    To fill this test for all the specified forks, we can specify pytest's `-k` flag that [filters test cases by keyword expression](https://docs.pytest.org/en/latest/how-to/usage.html#specifying-tests-selecting-tests):\n\n    ```console\n    fill -k test_state_test_example\n    ```\n\n    and to fill it for a specific fork range, we can provide the `--from` and `--until` command-line arguments:\n\n    ```console\n    fill -k test_state_test_example --from London --until Paris\n    ```\n\n```python\ndef test_state_test_example(state_test: StateTestFiller, pre: Alloc):\n    \"\"\"Test state transition using Opcodes minilang bytecode.\"\"\"\n```\n\nThis is the format of a [Python function](https://docs.python.org/3/tutorial/controlflow.html#defining-functions).\nIt starts with `def <function name>(<parameters>):`, and then has indented code for the function.\nThe function definition ends when there is a line that is no longer indented. As with files, by convention functions start with a string that explains what the function does.\n\nThe function parameters (`state_test` and `pre`) are [pytest fixtures](https://docs.pytest.org/en/latest/explanation/fixtures.html) provided by the execution-spec-tests framework. Pytest fixtures are a powerful dependency injection mechanism that automatically provide objects to your test functions.\n\n**The `state_test` fixture** is a callable that you *must* include in *state test* function arguments. When called at the end of your test function with the environment, pre-state, transaction, and expected post-state, it generates the actual test fixtures. This callable is a wrapper around the `StateTest` class.\n\n**The `pre` fixture** provides an `Alloc` object that manages the pre-state allocation for your test. It offers methods like `fund_eoa()` and `deploy_contract()` that automatically generate unique addresses and add accounts to the blockchain state that will exist before your transaction executes. The fixture handles address generation and ensures no conflicts occur.\n\n```python\n    env = Environment(number=1)\n```\n\nThis line specifies that `env` is an [`Environment`][ethereum_test_types.Environment] object. In this example, we only override the block `number` to 1, leaving all other values at their defaults. It's recommended to use default values whenever possible and only specify custom values when required for your specific test scenario. (For all available fields, see the pydantic model fields in the source code of [`Environment`][ethereum_test_types.Environment] and [`EnvironmentGeneric`](https://github.com/ethereum/execution-spec-tests/blob/b4d7826bec631574a6fb95d0c58d2c8c4d6e02ca/src/ethereum_test_types/block_types.py#L76) from which `Environment` inherits.)\n\n#### Pre State\n\nFor every test we need to define the pre-state requirements, so we are certain of what is on the \"blockchain\" before the transaction is executed. The `pre` fixture provides an `Alloc` object with methods to create accounts that are automatically added to the pre-state.\n\nIn this example we are using the `deploy_contract` method to deploy a contract to some address available in the pre-state.\n\n```python\n    contract_address = pre.deploy_contract(\n        code=Op.PUSH1(0x03) + Op.PUSH1(0x00) + Op.SSTORE + Op.STOP\n    )\n```\n\nSpecifically we deploy a contract written with Opcodes minilang code that stores the value `0x03` at storage slot `0x00`. The code consists of:\n\n- `PUSH1(0x03)`: Push the value 3 onto the stack.\n- `PUSH1(0x00)`: Push the storage key 0 onto the stack.\n- `SSTORE`: Store the value at the specified key.\n- `STOP`: End execution.\n\nAs the return value of the `deploy_contract` method, we get the address where the contract was deployed. This address is stored in the `contract_address` variable, which will later be used as the target of our transaction.\n\nYou can also specify additional parameters for the contract if needed:\n\n- `balance` parameter to set the contract's initial balance (though often not necessary for state test contracts)\n- `storage` parameter to set initial storage values (though in this example we don't need initial storage since our contract will set it through the `SSTORE` opcode)\n\nYou can combine opcodes using the `+` operator to create more complex bytecode sequences.\n\nGenerally for execution spec tests the `SSTORE` instruction acts as a high-level assertion method to check pre to post-state changes. The test filler achieves this by verifying that the correct value is held within post-state storage, hence we can validate that the bytecode has run successfully.\n\nNext, we need to create an account that will send the transaction to our contract:\n\n```python\n    sender = pre.fund_eoa()\n```\n\nThis line creates a single externally owned account (EOA) with a default balance. You can specify a custom amount with `amount=0x0BA1A9CE0BA1A9CE` if needed.\n\nThe returned object, which includes a private key, an address, and a nonce, is stored in the `sender` variable and will later be used as the sender of the transaction.\n\n#### Transactions\n\n```python\n    tx = Transaction(\n        ty=0x2,\n        sender=sender,\n        to=contract_address,\n        gas_limit=100_000,\n    )\n```\n\nWith the pre-state built, we can now create the transaction that will call our contract. Let's examine the key components of this [`Transaction`][ethereum_test_types.Transaction] (for all available fields, see the source code of [`Transaction`][ethereum_test_types.Transaction] and [`TransactionGeneric`](https://github.com/ethereum/execution-spec-tests/blob/b4d7826bec631574a6fb95d0c58d2c8c4d6e02ca/src/ethereum_test_types/transaction_types.py#L163) from which `Transaction` inherits).\n\n- **`sender=sender`**: We use the EOA we created earlier, which already has the necessary information to sign the transaction and contains the correct `nonce`. The `nonce` is a protection mechanism to prevent replay attacks - it must equal the number of transactions sent from the sender's address, starting from zero. The framework automatically manages nonce incrementing for us.\n\n- **`to=contract_address`**: This specifies the address of the contract we want to call, which is the contract we deployed earlier.\n\n- **`gas_limit=100_000`**: This sets a high enough gas limit to ensure our simple contract execution doesn't run out of gas.\n\n- **`ty=0x2`**: This specifies the transaction type (EIP-1559).\n\n#### Post State\n\nNow we need to define what we expect the blockchain state to look like after our transaction executes:\n\n```python\n    post = {\n        contract_address: Account(\n            storage={\n                0x00: 0x03,\n            },\n        ),\n    }\n```\n\nThis is the post-state which is equivalent to [`expect`](https://ethereum-tests.readthedocs.io/en/latest/test_filler/state_filler.html#expect) in static tests, but without the indexes. It is similar to the pre-state, except that we do not need to specify everything, only those accounts and fields we wish to test.\n\nIn this case, we look at the storage of the contract we called and add to it what we expect to see. In this example storage cell `0x00` should be `0x03` as we stored this value using the `SSTORE` opcode in our contract bytecode.\n\n#### Running the State Test\n\nFinally, we execute the test by calling the state test wrapper with all our defined components:\n\n```python\n    state_test(env=env, pre=pre, post=post, tx=tx)\n```\n\nThis line calls the wrapper to the `StateTest` object that provides all the objects required in order to fill the test, generate the test fixtures and write them to file (by default, `./fixtures/<blockchain,state>_tests/example/state_test_example/test_state_test_example.json`).\n\nNote that even though we defined a `StateTest`, the `fill` command will also generate other derivative test fixtures: `BlockchainTest`, `BlockchainTestEngine`, and `BlockchainTestEngineX`. For more information about test types and when to use each, see [Test Types: Prefer StateTest for Single Transactions](../types_of_tests.md#prefer-state_test-for-single-transactions).\n\n## Conclusion\n\nAt this point you should be able to write state transition tests within a single block.\n\n## Next Steps\n\n- Learn about [Adding a New Test](../../writing_tests/adding_a_new_test.md) to understand test organization and structure.\n- Explore [Fork Methods](../../writing_tests/fork_methods.md) for writing tests that adapt to different Ethereum forks.\n"
  },
  {
    "path": "docs/writing_tests/types_of_tests.md",
    "content": "# Types of tests\n\nThere are currently three types of tests that can be produced by a test spec:\n\n1. State Tests\n2. Blockchain Tests\n3. Transaction Tests\n\n## State Tests\n\n### Purpose\n\nTests the effects of individual transactions (ideally a single one) that span a single block in a controlled environment.\n\n### Use cases\n\n- Test a single opcode behavior.\n- Verify opcode gas costs.\n- Test interactions between multiple smart contracts.\n- Test creation of smart contracts.\n\n!!! info\n\n    The fill function will automatically generate a `blockchain_test` fixture from `state_tests`, consisting of one block and one transaction.\n\n## Blockchain Tests\n\n### Purpose\n\nBlockchain tests span multiple blocks which may or may not contain transactions and mainly focus on the block to block effects to the Ethereum state.\n\n### Use cases\n\n- Verify system-level operations such as coinbase balance updates or withdrawals.\n- Verify fork transitions.\n- Verify blocks with invalid transactions/properties are rejected.\n\n### Fork Transition Tests\n\nThere is a special type of blockchain test that is used to test a fork transition. It's not executed for all possible forks, rather it targets exactly the blocks at the point of transition from one evm implementation to the next. This type of test must be marked with the `valid_at_transition_to` marker, for example:\n\n```python\n@pytest.mark.valid_at_transition_to(\"Cancun\")\ndef test_blob_type_tx_pre_fork(\n    blockchain_test: BlockchainTestFiller,\n    pre: Dict,\n    env: Environment,\n    blocks: List[Block],\n):\n    \"\"\"\n    Reject blocks with blobs before blobs fork\n    \"\"\"\n```\n\n## Transaction Tests\n\n### Purpose\n\nTest correct transaction rejection/acceptance of a serialized transaction (currently RLP only).\n\n### Use cases\n\n- Verify that a badly formatted transaction is correctly rejected by the client.\n- Verify that a transaction with an invalid value in one of its fields is correctly rejected by the client.\n\n!!! info\n\n    Using the `execute` command, transaction tests can be sent to clients in a live network using the `eth_sendRawTransaction` endpoint.\n\n## Deciding on a test type\n\n### Prefer `state_test` for single transactions\n\nWhenever possible, use `state_test` to examine individual transactions. This method is more straightforward and less prone to external influences that can occur during block building.\n\nThis provides more targeted testing since it does not invoke the client's block-building machinery. This reduces the risk of encountering false positives, particularly in exception scenarios (e.g., see issue [#343: \"Zero max_fee_per_blob_gas test is ineffective\"](https://github.com/ethereum/execution-spec-tests/issues/343)).\n\nMoreover, the `fill` command automatically additionally generates a `blockchain_test` for every `state_test` by wrapping the `state_test`'s transaction in a block.\n"
  },
  {
    "path": "docs/writing_tests/verifying_changes.md",
    "content": "# Verifying Changes\n\n!!! warning \"Documentation Moved\"\n    This documentation has been relocated to [Detailed Code Standards](../getting_started/code_standards_details.md). Please use the new location for the most up-to-date information.\n"
  },
  {
    "path": "docs/writing_tests/writing_a_new_test.md",
    "content": "# Writing a New Test\n\n## Test Functions\n\nEvery test case is defined as a Python function that implements a single `StateTest` or `BlockchainTest` using the `state_test` or `blockchain_test` objects made available by the framework ([learn how to decide on a test type](./types_of_tests.md#deciding-on-a-test-type)). Test cases, and the respective test modules, must fulfill the following requirements:\n\n| Requirement                                                            | When                                        |\n| -----------------------------------------------------------------------|---------------------------------------------|\n| Be [decorated with validity markers](#specifying-which-forks-tests-are-valid-for) | If the test case is not valid for all forks |\n| Use one of `state_test` or `blockchain_test` [in its function arguments](#the-state_test-and-blockchain_test-test-function-arguments) | Always |\n| Call the `state_test` or `blockchain_test` in its test body                                                                           | Always |\n| Add a [reference version of the EIP spec](./reference_specification.md) under test | Test path contains `eip`  |\n\n### Specifying which Forks Tests are Valid For\n\nTest cases can (and it most cases should) be decorated with one or more \"validity markers\" that define which the forks the test is valid for. This is achieved by applying:\n\n- `pytest.mark.valid_from(FORK)` and/or `pytest.mark.valid_until(FORK)`\n\nor\n\n- `pytest.mark.valid_at_transition_to(FORK)`\n\nmarkers on either the test function, test class or test module level:\n\n=== \"Function\"\n\n    ```python\n    import pytest\n\n    @pytest.mark.valid_from(\"Berlin\")\n    @pytest.mark.valid_until(\"London\")\n    def test_access_list(state_test: StateTestFiller, fork: Fork):\n    ```\n\n=== \"Class\"\n\n    ```python\n    import pytest\n\n\n    @pytest.mark.valid_from(\"Shanghai\")\n    class TestMultipleWithdrawalsSameAddress:\n    ```\n\n=== \"Module\"\n\n    ```python\n    import pytest\n\n    pytestmark = pytest.mark.valid_from(\"Shanghai\")\n    ```\n\nThe [`ethereum_test_forks`](../library/ethereum_test_forks.md) package defines the available forks and provides the following helpers that return all forks within the specified range:\n\n- [forks_from](../library/ethereum_test_forks.md#ethereum_test_forks.forks_from)\n- [forks_from_until](../library/ethereum_test_forks.md#ethereum_test_forks.forks_from_until)\n\n### The `state_test` and `blockchain_test` Test Function Arguments\n\nThe test function's signature _must_ contain exactly one of either a `state_test` or `blockchain_test` argument.\n\nFor example, for state tests:\n\n```python\ndef test_access_list(state_test: StateTestFiller):\n```\n\nand for blockchain tests:\n\n```python\ndef test_contract_creating_tx(\n    blockchain_test: BlockchainTestFiller, fork: Fork, initcode: Initcode\n):\n```\n\nThe `state_test` and `blockchain_test` objects are actually wrapper classes to the `StateTest`, respectively `BlockchainTest` objects, that once called actually instantiate a new instance of these objects and fill the test case using the `evm` tool according to the pre and post states and the transactions defined within the test.\n\nIf a blockchain-type test should only generate a test fixture in the Engine format (`EngineFixture`), the `blockchain_test_engine` object can be specified. This object is a wrapper for the `BlockchainTestEngine` class.\n\n## `StateTest` Object\n\nThe `StateTest` object represents a single test vector, and contains the\nfollowing attributes:\n\n- `env`: Environment object which describes the global state of the blockchain\n    before the test starts.\n- `pre`: Pre-State containing the information of all Ethereum accounts that exist\n    before any transaction is executed.\n- `post`: Post-State containing the information of all Ethereum accounts that are\n    created or modified after all transactions are executed.\n- `txs`: All transactions to be executed during test execution.\n\n## `BlockchainTest` Object\n\nThe `BlockchainTest` object represents a single test vector that evaluates the\nEthereum VM by attempting to append multiple blocks to the chain:\n\n- `pre`: Pre-State containing the information of all Ethereum accounts that exist\n    before any block is executed.\n- `post`: Post-State containing the information of all Ethereum accounts that are\n    created or modified after all blocks are executed.\n- `blocks`: All blocks to be appended to the blockchain during the test.\n\n## `BlockchainTestEngine` Object\n\nThe `BlockchainTestEngine` object has the same properties as the `BlockchainTest` but it's used to only generate a blockchain test in the Engine format.\n\n## Pre/Post State of the Test\n\nThe `pre` and `post` states are elemental to setup and then verify the outcome\nof the state test.\n\nBoth `pre` and `post` are mappings of account addresses to `account` structures (see [more info](#the-account-object)).\n\nA single test vector can contain as many accounts in the `pre` and `post` states\nas required, and they can be also filled dynamically.\n\n`storage` of an account is a key/value dictionary, and its values are\nintegers within range of `[0, 2**256 - 1]`.\n\n`txs` are the steps which transform the pre-state into the post-state and\nmust perform specific actions within the accounts (smart contracts) that result\nin verifiable changes to the balance, nonce, and/or storage in each of them.\n\n`post` is compared against the outcome of the client after the execution\nof each transaction, and any differences are considered a failure\n\nWhen designing a test, all the changes must be ideally saved into the contract's\nstorage to be able to verify them in the post-state.\n\n## Test Transactions\n\nTransactions can be crafted by sending them with specific `data` or to a\nspecific account, which contains the code to be executed.\n\nTransactions can also create more accounts, by setting the `to` field to an\nempty string.\n\nTransactions can be designed to fail, and a verification must be made that the\ntransaction fails with the specific error that matches what is expected by the\ntest.\n\nThey can also contain a `TransactionReceipt` object in field `expected_receipt`\nwhich allows checking for an exact `gas_used` value.\n\n## Writing code for the accounts in the test\n\nAccount bytecode can be \"deployed\" in a test's pre-state using the `pre` pytest fixture. The @ethereum/execution-spec-tests Python [`Opcodes`][ethereum_test_vm.Opcodes] minilang can be used to help write the bytecode in a readable form.\n\n### Using the Python Opcode Minilang\n\nEVM bytecode for tests should be written using the Python-based minilang provided by the [`Opcodes`][ethereum_test_vm.Opcodes] class. This allows you to construct bytecode using symbolic opcodes as Python objects.\n\n#### Example: Simple Addition Contract\n\n```python\nfrom ethereum_test_vm.opcode import Opcodes\n\ncode = (\n    Opcodes.PUSH1(0x02)\n    + Opcodes.PUSH1(0x03)\n    + Opcodes.ADD()\n    + Opcodes.PUSH1(0x00)\n    + Opcodes.SSTORE()\n    + Opcodes.STOP()\n)\n\n# within a test function, using the \"pre\" fixture\ncontract_address = pre.deploy_contract(code=code)\n```\n\nYou add this contract to the test's pre-state using the `pre` fixture or assign this `code` to the `code` field of an account in your test's `post` state. See the [state test tutorial](./tutorials/state_transition.md) for more help.\n\nFor a full list of available opcodes and their usage, see [`Opcodes`][ethereum_test_vm.Opcodes].\n\n#### Higher-Level Constructs\n\nFor more complex control flow, you can use constructs like [`Switch`][ethereum_test_tools.tools_code.generators.Switch] and [`Case`][ethereum_test_tools.tools_code.generators.Case] from the `ethereum_test_tools.tools_code.generators` module:\n\n```python\nfrom ethereum_test_tools.tools_code.generators import Switch, Case\nfrom ethereum_test_vm.opcode import Opcodes as Op\n\ncode = Switch(\n    cases=[\n        Case(condition=Op.EQ(Op.CALLDATALOAD(0), 1), action=Op.PUSH1(0x01) + Op.STOP()),\n        Case(condition=Op.EQ(Op.CALLDATALOAD(0), 2), action=Op.PUSH1(0x02) + Op.STOP()),\n    ],\n    default_action=Op.PUSH1(0x00) + Op.STOP(),\n)\n```\n\nThe `ethereum_test_tools.tools_code.generators` module also defines other high-level constructs like [`While`][ethereum_test_tools.tools_code.generators.While] and [`Conditional`][ethereum_test_tools.tools_code.generators.Conditional].\n\n#### Converting Bytecode to Minilang\n\nIf you have EVM bytecode (as hex or binary), you can use the [`evm_bytes` CLI tool](../library/cli/evm_bytes.md) to convert it to the EEST Python opcode minilang automatically, for example:\n\n```console\nuv run evm_bytes hex-string 0x604260005260206000F3\n# ->\n# Op.PUSH1[0x42] + Op.PUSH1[0x0] + Op.MSTORE + Op.PUSH1[0x20] + Op.PUSH1[0x0] + Op.RETURN\n```\n\n#### Restrictions: No Yul in Python Test Cases\n\nAs of [PR #1779](https://github.com/ethereum/execution-spec-tests/pull/1779), the use of Yul source in Python test cases is forbidden. All new tests must use the Python opcode minilang as shown above.\n\n## Verifying the Accounts' Post States\n\nThe state of the accounts after all blocks/transactions have been executed is\nthe way of verifying that the execution client actually behaves like the test\nexpects.\n\nDuring their filling process, all tests automatically verify that the accounts\nspecified in their `post` property actually match what was returned by the\ntransition tool.\n\nWithin the `post` dictionary object, an account address can be:\n\n- `None`: The account will not be checked for absence or existence in the\n  result returned by the transition tool.\n- `Account` object: The test expects that this account exists and also has\n  properties equal to the properties specified by the `Account` object.\n- `Account.NONEXISTENT`: The test expects that this account does not exist in\n  the result returned by the transition tool, and if the account exists,\n  it results in error.\n  E.g. when the transaction creating a contract is expected to fail and the\n  test wants to verify that the address where the contract was supposed to be\n  created is indeed empty.\n\n## The `Account` object\n\nThe `Account` object is used to specify the properties of an account to be\nverified in the post state.\n\nThe python representation can be found in [src/ethereum_test_types/account_types.py](https://github.com/ethereum/execution-spec-tests/blob/main/src/ethereum_test_types/account_types.py).\n\nIt can verify the following properties of an account:\n\n- `nonce`: the scalar value equal to a) the number of transactions sent by\n  an Externally Owned Account, b) the amount of contracts created by a contract.\n  \n- `balance`: the amount of Wei (10<sup>-18</sup> Eth) the account has.  <!-- markdownlint-disable MD033 (MD033=no-inline-html) -->\n\n- `code`: Bytecode contained by the account. To verify that an account contains\n  no code, this property needs to be set to \"0x\" or \"\".\n\n- `storage`: Storage within the account represented as a `dict` object.\n  All storage keys that are expected to be set must be specified, and if a\n  key is skipped, it is implied that its expected value is zero.\n  Setting this property to `{}` (empty `dict`), means that all the keys in the\n  account must be unset (equal to zero).\n\nAll account's properties are optional, and they can be skipped or set to `None`,\nwhich means that no check will be performed on that specific account property.\n\n## Verifying correctness of the new test\n\nA well written test performs a single verification output at a time.\n\nA verification output can be a single storage slot, the balance of an account,\nor a newly created contract.\n\nIt is not recommended to use balance changes to verify test correctness, as it\ncan be easily affected by gas cost changes in future EIPs.\n\nThe best way to verify a transaction/block execution outcome is to check its\nstorage.\n\nA test can be written as a negative verification. E.g. a contract is not\ncreated, or a transaction fails to execute or runs out of gas.\n\nThis kind of verification must be carefully crafted because it is possible to end up\nhaving a false positive result, which means that the test passed but the\nintended verification was never made.\n\nTo avoid these scenarios, it is important to have a separate verification to\ncheck that test is effective. E.g. when a transaction is supposed to fail, it\nis necessary to check that the failure error is actually the one expected by\nthe test.\n\n## Failing or invalid transactions\n\nTransactions included in a StateTest are expected to be intrinsically valid,\ni.e. the account sending the transaction must have enough funds to cover the\ngas costs, the max fee of the transaction must be equal or higher than the\nbase fee of the block, etc.\n\nAn intrinsically valid transaction can still revert during its execution.\n\nBlocks in a BlockchainTest can contain intrinsically invalid transactions but\nin this case the block is expected to be completely rejected, along with all\ntransactions in it, including other valid transactions.\n\n## Parametrizing tests\n\nTests can be parametrized by using the `@pytest.mark.parametrize` decorator.\n\nExample:\n\n```python\nimport pytest\n\n@pytest.mark.parametrize(\n    \"tx_value,expected_balance\",\n    [\n        pytest.param(0, 0, id=\"zero-value\"),\n        pytest.param(100, 100, id=\"non-zero-value\"),\n    ],\n)\ndef test_contract_creating_tx(\n    blockchain_test: BlockchainTestFiller, fork: Fork, tx_value: int, expected_balance: int\n):\n```\n\nThis will run the test twice, once with `tx_value` set to `0` and `expected_balance`\nset to `0`, and once with `tx_value` set to `100` and `expected_balance` set to `100`.\n\nThe `fork` fixture is automatically provided by the framework and contains the\ncurrent fork under test, and does not need to be parametrized.\n\nTests can also be automatically parametrized with appropriate fork covariant\nvalues using the `with_all_*` markers listed in the\n[Test Markers](./test_markers.md#fork-covariant-markers) page.\n\n### The `extend_with_defaults` Utility\n\n::: ethereum_test_tools.utility.pytest.extend_with_defaults\n"
  },
  {
    "path": "mkdocs.yml",
    "content": "site_name: Ethereum Execution Spec Tests\nsite_description: A collection of test cases implemented in Python for Ethereum execution clients\nsite_url: https://eest.ethereum.org/\nrepo_url: https://github.com/ethereum/execution-spec-tests\nrepo_name: execution-spec-tests\nedit_uri: edit/main/docs/\ncopyright: \"Copyright: 2024, Ethereum Community\"\n\nplugins:\n  - git-authors:\n      exclude:\n        - tests/*\n        - navigation.md\n        - getting_started/contributing.md\n        - getting_started/security.md\n        - filling_tests/filling_tests_command_line_options.md\n  - glightbox\n  - mkdocstrings:\n      handlers:\n        python:\n          options:\n            docstring_style: google\n            members_order: source\n            group_by_category: false\n  - search\n  - social\n  - gen-files:\n      scripts:\n        - docs/scripts/copy_repo_docs_to_mkdocs.py\n        - docs/scripts/gen_test_case_reference.py\n        - docs/scripts/generate_fill_help.py\n  - literate-nav:\n      nav_file: navigation.md\n\nwatch:\n  - CONTRIBUTING.md\n  - SECURITY.md\n  - src/\n  - tests/\n\ntheme:\n  name: material\n  logo: img/Ethereum-logo-600px.png\n  favicon: img/ETH-logo-icon.svg\n  language: en\n  features:\n    - content.code.copy\n    - search.suggest\n    - search.highlight\n    - content.tabs.link\n    - navigation.indexes\n    - navigation.instant\n    - navigation.tabs\n    - navigation.footer\n  # disabled due to https://github.com/ethereum/execution-spec-tests/issues/816\n  # palette:\n  #   # Palette toggle for automatic mode\n  #   - media: \"(prefers-color-scheme)\"\n  #     toggle:\n  #       icon: material/brightness-auto\n  #       name: Switch to light mode\n  #   Palette toggle for light mode\n  #   - media: \"(prefers-color-scheme: light)\"\n  #    scheme: default\n  #    toggle:\n  #      icon: material/brightness-7\n  #      name: Switch to dark mode\n  #   # Palette toggle for dark mode\n  #   - media: \"(prefers-color-scheme: dark)\"\n  #     scheme: slate\n  #     toggle:\n  #       icon: material/brightness-4\n  #       name: Switch to system preference\n\nmarkdown_extensions:\n  - abbr\n  - admonition\n  - attr_list\n  - def_list\n  - footnotes\n  - md_in_html\n  - mkdocs-click\n  - toc:\n      permalink: true\n      toc_depth: 4\n  # Python Markdown Extensions\n  - pymdownx.arithmatex:\n      generic: true\n  - pymdownx.betterem:\n      smart_enable: all\n  - pymdownx.caret\n  - pymdownx.details\n  - pymdownx.emoji:\n      emoji_index: !!python/name:material.extensions.emoji.twemoji\n      emoji_generator: !!python/name:material.extensions.emoji.to_svg\n  - pymdownx.highlight\n  - pymdownx.inlinehilite\n  - pymdownx.keys\n  - pymdownx.magiclink:\n      repo_url_shortener: true\n      repo_url_shorthand: true\n      social_url_shorthand: true\n      social_url_shortener: true\n      user: ethereum\n      repo: execution-spec-tests\n      normalize_issue_symbols: true\n  - pymdownx.mark:\n  - pymdownx.smartsymbols\n  - pymdownx.superfences:\n      custom_fences:\n        - name: mermaid\n          class: mermaid\n          format: !!python/name:pymdownx.superfences.fence_code_format\n  - pymdownx.tabbed:\n      alternate_style: true\n  - pymdownx.tasklist:\n      custom_checkbox: true\n  - pymdownx.tilde\n\nextra:\n  version:\n    provider: mike\n\nextra_javascript:\n  - https://code.jquery.com/jquery-3.7.1.min.js\n  - https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js\n  - https://cdn.datatables.net/2.1.7/js/dataTables.min.js\n  - https://cdn.datatables.net/buttons/3.1.2/js/dataTables.buttons.js\n  - https://cdn.datatables.net/buttons/3.1.2/js/buttons.dataTables.js\n  - https://cdn.datatables.net/buttons/3.1.2/js/buttons.colVis.min.js\n  - javascripts/site.js\n\nextra_css:\n  - https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css\n  - https://cdn.datatables.net/2.1.7/css/dataTables.dataTables.min.css\n  - https://cdn.datatables.net/buttons/3.1.2/css/buttons.dataTables.css\n  - stylesheets/custom.css\n"
  },
  {
    "path": "pyproject.toml",
    "content": "[build-system]\nrequires = [\n    \"setuptools==78.0.2\",\n    \"wheel==0.45.1\",\n] # the setuptools version here should match that of setuptools below in docs in optional-dependencies\nbuild-backend = \"setuptools.build_meta\"\n\n[project]\nname = \"ethereum-execution-spec-tests\"\nversion = \"1.0.0\"\ndescription = \"Ethereum execution client test authoring framework\"\nreadme = \"README.md\"\nrequires-python = \">=3.11\"\nlicense = { file = \"LICENSE\" }\nkeywords = [\"ethereum\", \"testing\", \"blockchain\"]\nclassifiers = [\n    \"License :: OSI Approved :: MIT License\",\n    \"Programming Language :: Python :: 3.11\",\n    \"Programming Language :: Python :: 3.12\",\n]\ndependencies = [\n    \"click>=8.1.0,<9\",\n    \"ethereum-hive>=0.1.0a1,<1.0.0\",\n    \"ethereum-spec-evm-resolver\",\n    \"gitpython>=3.1.31,<4\",\n    \"PyJWT>=2.3.0,<3\",\n    \"requests>=2.31.0,<3\",\n    \"requests_unixsocket2>=0.4.0\",\n    \"colorlog>=6.7.0,<7\",\n    \"pytest>=8,<9\",\n    \"pytest-custom-report>=1.0.1,<2\",\n    \"pytest-html>=4.1.0,<5\",\n    \"pytest-metadata>=3,<4\",\n    \"pytest-xdist>=3.3.1,<4\",\n    \"coincurve>=20.0.0,<21\",\n    \"trie>=3.1.0,<4\",\n    \"semver>=3.0.1,<4\",\n    \"pydantic>=2.11.0,<3\",\n    \"rich>=13.7.0,<14\",\n    \"filelock>=3.15.1,<4\",\n    \"ethereum-types>=0.2.1,<0.3\",\n    \"pyyaml>=6.0.2,<7\",\n    \"types-pyyaml>=6.0.12.20240917,<7\",\n    \"pytest-json-report>=1.5.0,<2\",\n    \"typing-extensions>=4.12.2,<5\",\n    \"questionary>=2.1.0,<3\",\n    \"ethereum-rlp>=0.1.3,<0.2\",\n    \"pytest-regex>=0.2.0,<0.3\",\n    \"pytest-rerunfailures>=16.0,<17\",\n    \"eth-abi>=5.2.0\",\n    \"joblib>=1.4.2\",\n    \"ckzg>=2.1.3,<3\",\n    \"tenacity>=9.0.0,<10\",\n]\n\n[project.urls]\nHomepage = \"https://github.com/ethereum/execution-spec-tests\"\nDocumentation = \"https://eest.ethereum.org\"\nRepository = \"https://github.com/ethereum/execution-spec-tests\"\nIssues = \"https://github.com/ethereum/execution-spec-tests/issues\"\nChangelog = \"https://eest.ethereum.org/main/CHANGELOG/\"\n\n[project.optional-dependencies]\ntest = [\"pytest-cov>=4.1.0,<5\"]\nlint = [\n    \"ruff==0.13.2\",\n \"mypy>=1.15.0,<1.16\",\n \"types-requests>=2.31,<2.33\",\n]\ndocs = [\n    \"cairosvg>=2.7.0,<3\",\n    \"codespell>=2.4.1,<3\",\n    \"markdown==3.8\",\n    \"mike>=1.1.2,<2\",\n    \"mkdocs>=1.4.3,<2\",\n    \"mkdocs-click>=0.8,<1\",\n    \"mkdocs-gen-files>=0.5.0,<1\",\n    \"mkdocs-git-authors-plugin>=0.7.1,<1\",\n    \"mkdocs-glightbox>=0.3.4,<1\",\n    \"mkdocs-literate-nav>=0.6.0,<1\",\n    \"mkdocs-material>=9.1.14,<10\",\n    \"mkdocs-material-extensions>=1.1.1,<2\",\n    \"mkdocstrings>=0.21.2,<1\",\n    \"mkdocstrings-python>=1.0.0,<2\",\n    \"pillow>=10.0.1,<11\",\n    \"pyspelling>=2.8.2,<3\",\n    \"lxml>=6.0.0,<7\",  # needs to be >= 6.0 for pypy\n    \"setuptools==78.0.2\",\n]\n\n[project.scripts]\nfill = \"cli.pytest_commands.fill:fill\"\nphil = \"cli.pytest_commands.fill:phil\"\nexecute = \"cli.pytest_commands.execute:execute\"\nattac = \"cli.pytest_commands.execute:execute\"\ncheckfixtures = \"cli.check_fixtures:check_fixtures\"\ncheck_eip_versions = \"cli.pytest_commands.check_eip_versions:check_eip_versions\"\nconsume = \"cli.pytest_commands.consume:consume\"\nprotec = \"cli.pytest_commands.consume:consume\"\nchecklist = \"cli.pytest_commands.checklist:checklist\"\ngenerate_checklist_stubs = \"cli.generate_checklist_stubs:generate_checklist_stubs\"\ngenindex = \"cli.gen_index:generate_fixtures_index_cli\"\ngentest = \"cli.gentest:generate\"\neofwrap = \"cli.eofwrap:eof_wrap\"\npyspelling_soft_fail = \"cli.tox_helpers:pyspelling\"\nmarkdownlintcli2_soft_fail = \"cli.tox_helpers:markdownlint\"\norder_fixtures = \"cli.order_fixtures:order_fixtures\"\nevm_bytes = \"cli.evm_bytes:evm_bytes\"\nhasher = \"cli.hasher:main\"\neest = \"cli.eest.cli:eest\"\nfillerconvert = \"cli.fillerconvert.fillerconvert:main\"\nfuzzer_bridge = \"cli.fuzzer_bridge.cli:main\"\ngroupstats = \"cli.show_pre_alloc_group_stats:main\"\nextract_config = \"cli.extract_config:extract_config\"\ncompare_fixtures = \"cli.compare_fixtures:main\"\nmodify_static_test_gas_limits = \"cli.modify_static_test_gas_limits:main\"\ndiff_opcode_counts = \"cli.diff_opcode_counts:main\"\n\n[tool.setuptools.packages.find]\nwhere = [\"src\"]\nexclude = [\"*tests*\"]\n\n[tool.pyright]\nexclude = [\"tests/static/**\"]\n\n[tool.setuptools.package-data]\nethereum_test_forks = [\"forks/contracts/*.bin\"]\n\"pytest_plugins.execute\" = [\"eth_config/networks.yml\"]\n\"pytest_plugins\" = [\"eels_resolutions.json\"]\n\"cli.eest.make\" = [\"templates/*.j2\"]\n\"cli.pytest_commands\" = [\"pytest_ini_files/*.ini\"]\n\"ethereum_test_types\" = [\"kzg_trusted_setup.txt\"]\n\n[tool.ruff]\nline-length = 99\n\n[tool.ruff.lint]\nselect = [\n    \"E\",   # pycodestyle errors\n    \"F\",   # Pyflakes\n    \"B\",   # flake8-bugbear\n    \"W\",   # pycodestyle warnings\n    \"I\",   # isort\n    \"A\",   # flake8-builtins\n    \"N\",   # pep8-naming\n    \"D\",   # pydocstyle\n    \"C4\",  # flake8-comprehensions\n    \"ARG\", # flake8-unused-arguments\n]\nfixable = [\n    \"E\", # pycodestyle errors\n    \"F\", # Pyflakes\n    \"B\", # flake8-bugbear\n    \"W\", # pycodestyle warnings\n    \"I\", # isort\n    \"D\", # pydocstyle\n]\nignore = [\n    \"C401\", # Unnecessary generator set\n    \"C408\", # Unnecessary collection call\n    \"D107\", # Missing docstring in __init__\n    \"D200\", # One-line docstring should fit on one line with quotes\n    \"D203\", # 1 blank line required before class docstring\n    \"D205\", # Missing blank line after summary\n    \"D212\", # Multi-line docstring summary should start at the first line\n    \"D401\", # First line should be in imperative mood (\"Do\", not \"Does\")\n]\n\n[tool.ruff.lint.per-file-ignores]\n\"tests/*\" = [\"ARG001\"] # TODO: ethereum/execution-spec-tests#2188\n\n[tool.mypy]\nmypy_path = [\"src\", \"$MYPY_CONFIG_FILE_DIR/stubs\"]\nfiles = [\"src\", \"tests\"]\nexclude = [\n    '^\\.cache/',\n    '^\\.git/',\n    '^\\.pytest_cache/',\n    '^\\.ruff_cache/',\n    '^\\.tox/',\n    '^\\.venv/',\n    '^\\.vscode/',\n    '^fixtures/',\n    '^logs/',\n    '^site/',\n]\nplugins = [\"pydantic.mypy\"]\nnamespace_packages = true\nstrict_optional = true\ndisallow_incomplete_defs = true\ndisallow_untyped_defs = true\nstrict_bytes = true\nwarn_unused_ignores = true\nwarn_unused_configs = true\nwarn_redundant_casts = true\nignore_missing_imports = false\n\n[tool.codespell]\nskip = \".venv,__pycache__,.git,build,dist,*.pyc,*.lock\"\ncheck-filenames = true\nignore-words-list = \"ingenuous\"\n\n[tool.pytest.ini_options]\nconsole_output_style = \"count\"\nminversion = \"7.0\"\npython_files = [\n    \"test_*.py\"\n]\ntestpaths = [\n    \"src\"\n]\naddopts = [\n    \"-p\", \"pytester\",\n    \"-p\", \"pytest_plugins.eels_resolver\",\n    \"--ignore=src/pytest_plugins/consume/test_cache.py\",\n    \"--ignore=src/pytest_plugins/consume/direct/\",\n    \"--ignore=src/pytest_plugins/consume/simulators/\",\n]\n\n[tool.uv]\nrequired-version = \">=0.7.0\"\n\n[tool.uv.sources]\nethereum-spec-evm-resolver = { git = \"https://github.com/spencer-tb/ethereum-spec-evm-resolver\", rev = \"aec6a628b8d0f1c791a8378c5417a089566135ac\" }\n"
  },
  {
    "path": "pyrightconfig.json",
    "content": "{\n  \"include\":[\n    \"src\",\n    \"tests\",\n    \"docs\",\n  ],\n  \"exclude\": [\n    \"logs\",\n    \"fixtures\",\n  ],\n  \"typeCheckingMode\": \"off\",\n}\n"
  },
  {
    "path": "scripts/convert_addresses.py",
    "content": "#!/usr/bin/env python3\n\"\"\"\nSimple address converter for static test fillers.\nTwo-pass approach:\n1. Collect all addresses and create mappings\n2. Replace all occurrences with tags.\n\"\"\"\n\nimport argparse\nimport re\nfrom enum import Enum, auto\nfrom pathlib import Path\nfrom typing import Dict, List, Optional, Set\n\nfrom ethereum_test_forks import Prague\n\n\nclass Section(Enum):\n    \"\"\"Represents the current section being parsed.\"\"\"\n\n    NONE = auto()\n    PRE = auto()\n    ENV = auto()\n    TRANSACTION = auto()\n    RESULT = auto()\n    EXPECT = auto()\n\n\nclass Context(Enum):\n    \"\"\"Represents the current context within a section.\"\"\"\n\n    NORMAL = auto()\n    CODE = auto()\n    STORAGE = auto()\n\n\n# Known secret key that maps to sender address\nKNOWN_SECRET_KEY = \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\nKNOWN_SENDER_ADDRESS = \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\"\n\n# don't convert default coinbase since this is the same used in python tests\n# TODO: check if coinbase is affected in `result` section. If so, we need to tag it\n#  to generate a dynamic address for it in both the `result` and `currentCoinbase` sections\nCONVERT_COINBASE = False\n\nPRECOMPILE_ADDRESSES = {pre.hex() for pre in Prague.precompiles()}\n\n# TODO: check these manually for false positives\n# callToSuicideThenExtcodehashFiller.json  -- hard-coded 000...00025\n\nFALSE_POSITIVE_TESTS = {\n    # possible false positives to check\n    \"staticcall_createfailsFiller.json\",\n    \"createInitFail_OOGduringInit2Filler.json\",\n    \"createInitFail_OOGduringInitFiller.json\",\n    \"createNameRegistratorPreStore1NotEnoughGasFiller.json\",\n    # definite false positives\n    \"codesizeOOGInvalidSizeFiller.json\",\n    # \"contractCreationOOGdontLeaveEmptyContractFiller.json\",  # Temporarily enabling for testing\n    \"contractCreationOOGdontLeaveEmptyContractViaTransactionFiller.json\",\n    \"createContractViaContractFiller.json\",\n    \"createContractViaContractOOGInitCodeFiller.json\",\n    \"createContractViaTransactionCost53000Filler.json\",\n}\n\n# Path patterns for incompatible tests - can include full filenames or directory patterns\nINCOMPATIBLE_PATH_PATTERNS = {\n    # Exact filenames (existing)\n    \"push0Filler.yml\",\n    \"push0Gas2Filler.yml\",\n    \"ContractCreationSpamFiller.json\",\n    \"create2InitCodeSizeLimitFiller.yml\",\n    \"createInitCodeSizeLimitFiller.yml\",\n    \"creationTxInitCodeSizeLimitFiller.yml\",\n    \"suicideNonConstFiller.yml\",\n    \"createNonConstFiller.yml\",\n    \"CrashingTransactionFiller.json\",\n    \"measureGasFiller.yml\",\n    \"operationDiffGasFiller.yml\",\n    \"callcodeDynamicCodeFiller.json\",\n    \"callcodeDynamicCode2SelfCallFiller.json\",\n    \"callcodeInInitcodeToEmptyContractFiller.json\",\n    \"callcodeInInitcodeToExistingContractFiller.json\",\n    \"callcodeInInitcodeToExisContractWithVTransferNEMoneyFiller.json\",\n    \"callcodeInInitcodeToExistingContractWithValueTransferFiller.json\",\n    \"contractCreationMakeCallThatAskMoreGasThenTransactionProvidedFiller.json\",\n    \"codesizeInitFiller.json\",\n    \"codesizeValidFiller.json\",\n    \"create2CodeSizeLimitFiller.yml\",\n    \"createCodeSizeLimitFiller.yml\",\n    \"createFailBalanceTooLowFiller.json\",\n    \"createInitOOGforCREATEFiller.json\",\n    \"createJS_NoCollisionFiller.json\",\n    \"createNameRegistratorPerTxsFiller.json\",\n    \"createNameRegistratorPerTxsNotEnoughGasFiller.json\",\n    \"undefinedOpcodeFirstByteFiller.yml\",\n    \"block504980Filler.json\",\n    \"static_CallEcrecover0Filler.json\",\n    \"static_CallEcrecover0_completeReturnValueFiller.json\",\n    \"static_CallEcrecover0_gas3000Filler.json\",\n    \"static_CallEcrecover0_overlappingInputOutputFiller.json\",\n    \"static_CallEcrecoverCheckLengthFiller.json\",\n    \"static_CallEcrecover0_prefixed0Filler.json\",\n    \"static_contractCreationMakeCallThatAskMoreGasThenTransactionProvidedFiller.json\",\n    \"static_contractCreationOOGdontLeaveEmptyContractViaTransactionFiller.json\",\n    \"callcodecallcallcode_101_SuicideMiddleFiller.json\",\n    \"static_callcodecallcallcode_101_OOGMAfter2Filler.json\",\n    \"delegatecallInInitcodeToEmptyContractFiller.json\",\n    \"delegatecallInInitcodeToExistingContractFiller.json\",\n    \"delegatecallInInitcodeToExistingContractOOGFiller.json\",\n    \"delegatecodeDynamicCode2SelfCallFiller.json\",\n    \"delegatecodeDynamicCodeFiller.json\",\n    \"RawCreateFailGasValueTransferFiller.json\",\n    \"RawCreateFailGasValueTransfer2Filler.json\",\n    \"ExtCodeCopyTestsParisFiller.json\",\n    \"EXTCODESIZE_toNonExistentFiller.json\",\n    \"CreateAndGasInsideCreateFiller.json\",\n    \"RawCreateGasFiller.json\",\n    \"RawCreateGasMemoryFiller.json\",\n    \"RawCreateGasValueTransferFiller.json\",\n    \"RawCreateGasValueTransferMemoryFiller.json\",\n    \"Transaction64Rule_integerBoundariesFiller.yml\",\n    \"addressOpcodesFiller.yml\",\n    \"baseFeeDiffPlacesFiller.yml\",\n    \"eip2929-ffFiller.yml\",\n    \"eip2929Filler.yml\",\n    \"eip2929OOGFiller.yml\",\n    \"gasCostJumpFiller.yml\",\n    \"gasCostMemoryFiller.yml\",\n    \"gasPriceDiffPlacesFiller.yml\",\n    \"initCollidingWithNonEmptyAccountFiller.yml\",\n    \"manualCreateFiller.yml\",\n    \"storageCostsFiller.yml\",\n    \"variedContextFiller.yml\",\n    \"vitalikTransactionTestParisFiller.json\",\n    # stExample\n    \"add11_ymlFiller.yml\",\n    \"add11Filler.json\",\n    # stExtCodeHash\n    \"extcodehashEmpty_ParisFiller.yml\",\n    \"extCodeHashSelfInInitFiller.json\",\n    \"extCodeHashSubcallSuicideCancunFiller.yml\",\n    \"extCodeHashNewAccountFiller.json\",\n    \"extCodeHashDeletedAccount1CancunFiller.yml\",\n    \"extCodeHashDeletedAccount2CancunFiller.yml\",\n    \"extCodeHashDeletedAccount3Filler.yml\",\n    \"extCodeHashDeletedAccount4Filler.yml\",\n    \"extCodeHashCreatedAndDeletedAccountStaticCallFiller.json\",\n    \"extCodeHashCreatedAndDeletedAccountRecheckInOuterCallFiller.json\",\n    \"dynamicAccountOverwriteEmpty_ParisFiller.yml\",\n    \"extCodeHashDeletedAccountCancunFiller.yml\",\n    \"extCodeHashDeletedAccountFiller.yml\",\n    \"extCodeHashSubcallSuicideFiller.yml\",\n    \"CreateAndGasInsideCreateWithMemExpandingCallsFiller.json\",\n    \"codeCopyZero_ParisFiller.yml\",\n    \"extCodeHashInInitCodeFiller.json\",\n    \"extCodeHashSelfFiller.json\",\n    \"extCodeHashNonExistingAccountFiller.yml\",\n    \"extCodeHashSubcallOOGFiller.yml\",\n    \"extCodeHashPrecompilesFiller.yml\",\n    \"contractCreationOOGdontLeaveEmptyContractFiller.json\",\n    \"extCodeHashCreatedAndDeletedAccountCallFiller.json\",\n    \"createEmptyThenExtcodehashFiller.json\",\n    \"contractCreationOOGdontLeaveEmptyContractViaTransactionFiller.json\",\n    # Really only `ReturnTestFiller` and `ReturnTest2Filler` are compatible inside `stInitCodeTest`\n    \"CallContractToCreateContractAndCallItOOGFiller.json\",\n    \"CallContractToCreateContractOOGBonusGasFiller.json\",\n    \"CallContractToCreateContractWhichWouldCreateContractIfCalledFiller.json\",\n    \"CallContractToCreateContractWhichWouldCreateContractInInitCodeFiller.json\",\n    \"CallRecursiveContractFiller.json\",\n    \"StackUnderFlowContractCreationFiller.json\",\n    \"TransactionCreateRandomInitCodeFiller.json\",\n    \"TransactionCreateAutoSuicideContractFiller.json\",\n    \"TransactionCreateSuicideInInitcodeFiller.json\",\n    \"CallTheContractToCreateEmptyContractFiller.json\",\n    \"OutOfGasContractCreationFiller.json\",\n    \"OutOfGasPrefundedContractCreationFiller.json\",\n    \"TransactionCreateStopInInitcodeFiller.json\",\n    # stInitCodeTest\n    \"ReturnTestFiller.json\",\n    \"ReturnTest2Filler.json\",\n    \"CREATE_Bounds2Filler.json\",\n    \"CREATE_Bounds3Filler.json\",\n    \"CREATE_BoundsFiller.json\",\n    \"NonZeroValue_CALLCODEFiller.json\",\n    \"NonZeroValue_DELEGATECALLFiller.json\",\n    \"bufferFiller.yml\",\n    \"bufferSrcOffsetFiller.yml\",\n    \"callDataCopyOffsetFiller.json\",\n    \"oogFiller.yml\",\n    \"CALLCODEEcrecover0Filler.json\",\n    \"CALLCODEEcrecoverV_prefixed0Filler.json\",\n    \"CALLCODEEcrecover0_completeReturnValueFiller.json\",\n    \"CALLCODEEcrecover0_overlappingInputOutputFiller.json\",\n    \"CALLCODEEcrecover0_gas3000Filler.json\",\n    \"CallEcrecover0_completeReturnValueFiller.json\",\n    \"CallEcrecoverCheckLengthFiller.json\",\n    \"CallEcrecover0_gas3000Filler.json\",\n    \"CallEcrecover0Filler.json\",\n    \"CallEcrecover0_overlappingInputOutputFiller.json\",\n    \"CallEcrecoverV_prefixed0Filler.json\",\n    \"ecrecoverShortBuffFiller.yml\",\n    \"modexp_0_0_0_20500Filler.json\",\n    \"modexp_0_0_0_22000Filler.json\",\n    \"modexp_0_0_0_25000Filler.json\",\n    \"modexp_0_0_0_35000Filler.json\",\n    \"Create1000ShnghaiFiller.json\",\n    \"QuadraticComplexitySolidity_CallDataCopyFiller.json\",\n    \"testRandomTestFiller.json\",\n    # uses coinbase address (0x41) as integer memory offsets. TODO: is this necessary for the test?\n    # we could end up changing this for compatibility instead.\n    \"randomStatetest1Filler.json\",\n    \"randomStatetest173Filler.json\",\n    \"randomStatetest107Filler.json\",\n    \"randomStatetest137Filler.json\",\n    \"randomStatetest246Filler.json\",\n    \"randomStatetest263Filler.json\",\n    \"randomStatetest267Filler.json\",\n    \"randomStatetest308Filler.json\",\n    \"randomStatetest367Filler.json\",\n    \"randomStatetest41Filler.json\",\n    \"randomStatetest372Filler.json\",\n    \"randomStatetest64Filler.json\",\n    \"randomStatetest368Filler.json\",\n    \"randomStatetest362Filler.json\",\n    \"randomStatetest80Filler.json\",\n    \"randomStatetest73Filler.json\",\n    \"randomStatetest66Filler.json\",\n    \"randomStatetest406Filler.json\",\n    \"randomStatetest388Filler.json\",\n    \"randomStatetest437Filler.json\",\n    \"randomStatetest473Filler.json\",\n    \"randomStatetest502Filler.json\",\n    \"randomStatetest526Filler.json\",\n    \"randomStatetest545Filler.json\",\n    \"randomStatetest537Filler.json\",\n    \"randomStatetest564Filler.json\",\n    \"randomStatetest307Filler.json\",\n    \"randomStatetest646Filler.json\",\n    \"Call50000_sha256Filler.json\",\n    \"Create1000ByzantiumFiller.json\",\n    \"Create1000Filler.json\",\n    # stRecursiveCreate\n    \"RecursiveCreateContractsCreate4ContractsFiller.json\",\n    \"RecursiveCreateContractsFiller.json\",\n    # stStackTests\n    \"shallowStackFiller.json\",\n    \"stackOverflowFiller.json\",\n    \"stackOverflowDUPFiller.json\",\n    \"stackOverflowPUSHFiller.json\",\n    \"revertRetDataSizeFiller.yml\",\n    \"returndatacopy_0_0_following_successful_createFiller.json\",\n    \"RevertPrefoundFiller.json\",\n    \"RevertPrefoundEmpty_ParisFiller.json\",\n    \"RevertDepthCreateOOGFiller.json\",\n    \"costRevertFiller.yml\",\n    \"LoopCallsDepthThenRevert2Filler.json\",\n    \"LoopCallsDepthThenRevert3Filler.json\",\n    \"CreateContractFromMethodFiller.json\",\n    \"RevertOpcodeCreateFiller.json\",\n    \"RevertOpcodeInInitFiller.json\",\n    \"RevertOpcodeWithBigOutputInInitFiller.json\",\n    \"ByZeroFiller.json\",\n    \"TestCryptographicFunctionsFiller.json\",\n    \"StackDepthLimitSECFiller.json\",\n    \"eoaEmptyParisFiller.yml\",\n    \"deploymentErrorFiller.json\",\n    \"sstore_0to\",  # Note: many tests match this pattern\n    \"sstore_Xto\",  # Note: many tests match this pattern\n    \"sstore_changeFromExternalCallInInitCodeFiller.json\",\n    \"stackOverflowM1DUPFiller.json\",\n    \"stackOverflowM1Filler.json\",\n    \"stackOverflowM1PUSHFiller.json\",\n    \"stackOverflowSWAPFiller.json\",\n    \"stacksanitySWAPFiller.json\",\n    # TODO: See if any of these can be turned on with fine tuning\n    \"static_ABAcallsSuicide1Filler.json\",\n    \"static_CREATE_ContractSuicideDuringInitFiller.json\",\n    \"static_CREATE_ContractSuicideDuringInit_ThenStoreThenReturnFiller.json\",\n    \"static_CREATE_ContractSuicideDuringInit_WithValueFiller.json\",\n    \"static_ZeroValue_CALL_OOGRevertFiller.json\",\n    \"static_CREATE_EmptyContractAndCallIt_0weiFiller.json\",\n    \"static_CREATE_EmptyContractWithStorageAndCallIt_0weiFiller.json\",\n    \"static_RawCallGasAskFiller.json\",\n    \"static_InternalCallStoreClearsOOGFiller.json\",\n    \"StaticcallToPrecompileFromCalledContractFiller.yml\",\n    \"static_callCreate2Filler.json\",\n    \"static_callCreate3Filler.json\",\n    \"static_CallContractToCreateContractOOGFiller.json\",\n    \"StaticcallToPrecompileFromContractInitializationFiller.yml\",\n    \"StaticcallToPrecompileFromTransactionFiller.yml\",\n    \"CallWithNOTZeroValueToPrecompileFromContractInitializationFiller.yml\",\n    \"CallWithZeroValueToPrecompileFromContractInitializationFiller.yml\",\n    \"CallWithZeroValueToPrecompileFromTransactionFiller.yml\",\n    \"CallWithZeroValueToPrecompileFromCalledContractFiller.yml\",\n    \"DelegatecallToPrecompileFromCalledContractFiller.yml\",\n    \"CallcodeToPrecompileFromContractInitializationFiller.yml\",\n    \"CallcodeToPrecompileFromCalledContractFiller.yml\",\n    \"CallcodeToPrecompileFromTransactionFiller.yml\",\n    \"DelegatecallToPrecompileFromContractInitializationFiller.yml\",\n    \"DelegatecallToPrecompileFromTransactionFiller.yml\",\n    \"CreateHashCollisionFiller.json\",\n    \"createNameRegistratorZeroMem2Filler.json\",\n    \"createNameRegistratorZeroMemFiller.json\",\n    \"doubleSelfdestructTestFiller.yml\",\n    \"createNameRegistratorZeroMemExpansionFiller.json\",\n    \"createNameRegistratorFiller.json\",\n    \"multiSelfdestructFiller.yml\",\n    \"suicideCallerAddresTooBigRightFiller.json\",\n    \"createNameRegistratorPerTxs\",  # Note: many tests match this pattern\n    \"addmodFiller.yml\",\n    \"addFiller.yml\",\n    \"divFiller.yml\",\n    \"expFiller.yml\",\n    \"modFiller.yml\",\n    \"mulmodFiller.yml\",\n    \"sdivFiller.yml\",\n    \"signextendFiller.yml\",\n    \"mulFiller.yml\",\n    \"notFiller.yml\",\n    \"subFiller.yml\",\n    \"smodFiller.yml\",\n    \"byteFiller.yml\",\n    \"iszeroFiller.yml\",\n    \"eqFiller.yml\",\n    \"ltFiller.yml\",\n    \"sgtFiller.yml\",\n    \"sltFiller.yml\",\n    \"gtFiller.yml\",\n    \"xorFiller.yml\",\n    \"orFiller.yml\",\n    \"andFiller.yml\",\n    \"codecopyFiller.yml\",\n    \"jumpFiller.yml\",\n    \"gasFiller.yml\",\n    \"jumpToPushFiller.yml\",\n    \"jumpiFiller.yml\",\n    \"loopsConditionalsFiller.yml\",\n    \"msizeFiller.yml\",\n    \"mstoreFiller.yml\",\n    \"mstore8Filler.yml\",\n    \"mloadFiller.yml\",\n    \"sstore_sloadFiller.yml\",\n    \"returnFiller.yml\",\n    \"pcFiller.yml\",\n    \"popFiller.yml\",\n    \"log0Filler.yml\",\n    \"log1Filler.yml\",\n    \"log2Filler.yml\",\n    \"log3Filler.yml\",\n    \"log4Filler.yml\",\n    \"blockInfoFiller.yml\",\n    \"envInfoFiller.yml\",\n    \"sha3Filler.yml\",\n    \"suicideFiller.yml\",\n    \"swapFiller.yml\",\n    \"Opcodes_TransactionInitFiller.json\",\n    \"CreateMessageSuccessFiller.json\",\n    \"CreateTransactionSuccessFiller.json\",\n    \"EmptyTransaction3Filler.json\",\n    \"SuicidesAndInternalCallSuicidesBonusGasAtCallFiller.json\",\n    \"SuicidesStopAfterSuicideFiller.json\",\n    \"SuicidesAndInternalCallSuicidesBonusGasAtCallFailedFiller.json\",\n    \"SuicidesAndInternalCallSuicidesSuccessFiller.json\",\n    \"StoreGasOnCreateFiller.json\",\n    \"TransactionSendingToEmptyFiller.json\",\n    \"ZeroValue_DELEGATECALLFiller.json\",\n    \"ZeroValue_SUICIDEFiller.json\",\n    \"ZeroValue_TransactionCALLFiller.json\",\n    \"ZeroValue_CALLCODE_OOGRevertFiller.json\",\n    \"ZeroValue_TransactionCALLwithDataFiller.json\",\n    \"ZeroValue_CALL_OOGRevertFiller.json\",\n    \"ZeroValue_DELEGATECALL_OOGRevertFiller.json\",\n    \"ZeroValue_CALLCODEFiller.json\",\n    \"ZeroValue_CALLFiller.json\",\n    \"createNameRegistratorValueTooHighFiller.json\",\n    \"suicideCallerAddresTooBigLeftFiller.json\",\n    \"ABAcallsSuicide1Filler.json\",\n    \"/stCreate2/\",\n    \"/stCreateTest/\",\n    \"/stRecursiveCreate/\",\n    \"/stWalletTest/\",\n    \"/stZeroKnowledge/\",\n    \"/stZeroKnowledge2/\",\n    # TODO: See if these can be turned on with fine tuning\n    \"/stTimeConsuming/\",\n}\n\n\ndef is_incompatible_file(file_path: Path) -> bool:\n    \"\"\"Check if a file should be skipped based on filename or path patterns.\"\"\"\n    file_path_str = str(file_path)\n    filename = file_path.name\n\n    # Check if filename is in FALSE_POSITIVE_TESTS\n    if filename in FALSE_POSITIVE_TESTS:\n        return True\n\n    # Check against all incompatible path patterns\n    for pattern in INCOMPATIBLE_PATH_PATTERNS:\n        # If pattern ends with '/', it's a directory pattern\n        if pattern.endswith(\"/\"):\n            if pattern in file_path_str:\n                return True\n        # Otherwise, check if pattern matches filename or is in path\n        elif pattern == filename or pattern in file_path_str:\n            return True\n\n    return False\n\n\nDO_NOT_TAG_ADDRESSES = {\n    \"transStorageResetFiller.yml\": {\"000000000000000000000000000000003f8390d5\"},\n    \"transStorageOKFiller.yml\": {\n        \"000000000000000000000000000000005d7935df\",\n        \"00000000000000000000000000000000000057a7\",\n        \"00000000000000000000000000000000c54b5829\",\n        \"000000000000000000000000000000007f9317bd\",\n        \"000000000000000000000000000000000000add1\",\n        \"000000000000000000000000000000007074a486\",\n        \"00000000000000000000000000000000264bb86a\",\n        \"000000000000000000000000000000005114e2c8\",\n        \"00000000000000000000000000000000ca11bacc\",\n        \"00000000000000000000000000000000c1c922f1\",\n        \"000000000000000000000000000000006e3a7204\",\n        \"00000000000000000000000000000000ebd141d5\",\n    },\n    \"invalidAddrFiller.yml\": {\n        \"0000000000000000000000000000000000dead01\",\n        \"0000000000000000000000000000000000dead02\",\n    },\n    \"OOGinReturnFiller.yml\": {\n        \"ccccccccccccccccccccccccccccccccccccccc1\",\n        \"ccccccccccccccccccccccccccccccccccccccc2\",\n    },\n    \"callToSuicideThenExtcodehashFiller.json\": {\"0000000000000000000000000000000000000025\"},\n    \"doubleSelfdestructTouch_ParisFiller.yml\": {\n        \"0000000000000000000000000000000000e49701\",\n        \"0000000000000000000000000000000000e49702\",\n    },\n}\n\nSHORT_NAME_FILLERS = {\n    \"transStorageResetFiller.yml\",\n    \"invalidAddrFiller.yml\",\n    \"precompsEIP2929CancunFiller.yml\",\n    \"addressOpcodesFiller.yml\",\n    \"coinbaseT01Filler.yml\",\n    \"coinbaseT2Filler.yml\",\n    \"doubleSelfdestructTouch_ParisFiller.yml\",\n    \"tooLongReturnDataCopyFiller.yml\",\n    \"coinbaseWarmAccountCallGasFailFiller.yml\",\n}\n\n# Fillers that should have precompile check disabled\n# These tests intentionally use addresses that map to precompiles\nDISABLE_PRECOMPILE_CHECK_FILLERS = {  # type: ignore[var-annotated]\n    # \"block504980Filler.json\",\n}\n\n# Fillers where addresses are tagged in pre/result sections only\n# No address replacement in code or storage values\nNO_TAGS_IN_CODE = {\n    # Add fillers here that should not have addresses replaced in code/storage\n    \"modexpFiller.json\",\n    \"returndatacopyPythonBug_Tue_03_48_41-1432Filler.json\",\n    \"/stZeroKnowledge\",\n    \"modexp_modsize0_returndatasizeFiller.json\",\n    \"RevertPrecompiledTouchExactOOG_ParisFiller.json\",\n    \"randomStatetest51Filler.json\",  # address is used as integer value\n    \"randomStatetest565Filler.json\",  # address is used as integer value\n    \"randomStatetest601Filler.json\",  # address is used as integer value\n}\n\n# Fillers that should skip entropy validation entirely\n# These tests are deemed safe to convert addresses even if they don't pass entropy check\nVALIDATE_ADDR_ENTROPY_IN_CODE = {  # type: ignore[var-annotated]\n    # Add more fillers here that should skip entropy validation\n    # \"static_log_CallerFiller.json\",\n    # \"OOGMAfterFiller.json\",\n    # \"OOGMAfter2Filler.json\",\n    # \"OOGMAfter_2Filler.json\",\n    # \"OOGMAfter_3Filler.json\",\n    # \"OOGMAfterFiller.json\",\n    # \"OOGMAfter2Filler.json\",\n    # \"OOGMBeforeFiller.json\",\n    # \"SuicideEndFiller.json\",\n    # \"SuicideEnd2Filler.json\",\n    # \"SuicideMiddleFiller.json\",\n    # \"OOGEFiller.json\",\n    # \"static_CheckOpcodesFiller.json\",\n    # \"static_CheckOpcodes2Filler.json\",\n    # \"static_CheckOpcodes3Filler.json\",\n    # \"static_CheckOpcodes4Filler.json\",\n    # \"static_CheckOpcodes5Filler.json\",\n}\n\n# Fillers that should convert addresses with shouldnotexist in result section\n# These tests use CREATE/CREATE2 and need shouldnotexist addresses to be converted\nSHOULDNOTEXIST_NO_CONVERSION_FILLERS = {\n    # Add more fillers here as needed\n    \"callToSuicideThenExtcodehashFiller.json\",\n}\n\n# Fillers where addresses in storage keys should be replaced with tags\n# By default, storage keys are not replaced to avoid issues\nDONT_REPLACE_TAGS_IN_STORAGE_KEYS = {  # type: ignore[var-annotated]\n    # Add fillers here that should have addresses replaced in storage keys\n    # Example: tests that use addresses as storage keys intentionally\n    # \"randomStatetest383Filler.json\",\n}\n\n\ndef normalize_address(addr: str) -> str:\n    \"\"\"Normalize address to lowercase without 0x prefix.\"\"\"\n    if not addr:\n        return addr\n    addr = addr.strip().strip(\"\\\"'\")\n    if addr.startswith(\"0x\") or addr.startswith(\"0X\"):\n        addr = addr[2:]\n    return addr.lower()\n\n\ndef calculate_entropy(addr: str) -> float:\n    \"\"\"Calculate address entropy (0-1) to determine if it's too simple/mathematical.\"\"\"\n    if not addr or len(addr) != 40:\n        return 0.0\n\n    # Count unique characters\n    unique_chars = len(set(addr))\n    zero_count = addr.count(\"0\")\n\n    # Very simple addresses like 0x1000... or 0x2000...\n    if unique_chars <= 3 and zero_count >= 35:\n        return 0.1  # Too simple\n\n    # Numerical patterns like 0x0000..., 0x1111..., 0x2222... (single digit repeated)\n    if len(set(addr)) == 1 and addr[0] in \"0123456789\":\n        return 0.1  # Too simple - numerical value\n\n    # Test pattern addresses like 0xcccc... or 0xaaaa... (letters repeated)\n    if len(set(addr)) == 1:\n        return 0.8  # Clearly a test address\n\n    return 0.5  # Default: replace it\n\n\nclass SimpleAddressConverter:\n    \"\"\"Simple two-pass converter.\"\"\"\n\n    def __init__(self, filename: str = \"\"):  # noqa: D107\n        self.filename = filename\n        self.address_mappings: Dict[str, str] = {}  # addr -> tag\n        self.pre_addresses: Set[str] = set()  # addresses from pre section\n        self.addresses_with_code: Set[str] = set()\n        self.creation_addresses: Set[str] = (\n            set()\n        )  # addresses from result section with shouldnotexist\n        self.coinbase_addr: Optional[str] = None\n        self.target_addr: Optional[str] = None\n        self.is_json = filename.lower().endswith(\".json\")\n        self.skip_precompile_check = any(kw in filename for kw in DISABLE_PRECOMPILE_CHECK_FILLERS)\n        self.no_tags_in_code = any(kw in filename for kw in NO_TAGS_IN_CODE)\n        self.validate_addr_entropy_in_code = any(\n            kw in filename for kw in VALIDATE_ADDR_ENTROPY_IN_CODE\n        )\n        self.dont_convert_shouldnotexist = any(\n            kw in filename for kw in SHOULDNOTEXIST_NO_CONVERSION_FILLERS\n        )\n        self.dont_replace_tags_in_storage_keys = any(\n            kw in filename for kw in DONT_REPLACE_TAGS_IN_STORAGE_KEYS\n        )\n\n        # Get addresses that should not be tagged for this specific test file\n        self.do_not_tag_addresses: Set[str] = set()\n        if filename in DO_NOT_TAG_ADDRESSES:\n            self.do_not_tag_addresses = DO_NOT_TAG_ADDRESSES[filename]\n\n        # Check if this is a short name filler\n        self.is_short_name_filler = any(kw in filename for kw in SHORT_NAME_FILLERS)\n        self.short_name_mappings: Dict[str, str] = {}  # short_name -> tag\n\n    def detect_section(self, line: str) -> Optional[Section]:\n        \"\"\"Detect which section a line indicates.\"\"\"\n        stripped = line.strip().replace('\"', \"\").replace(\"'\", \"\").replace(\" \", \"\")\n\n        if \"pre:\" in stripped:\n            return Section.PRE\n        elif \"env:\" in stripped:\n            return Section.ENV\n        elif \"transaction:\" in stripped:\n            return Section.TRANSACTION\n        elif \"result:\" in stripped:\n            return Section.RESULT\n        elif \"expect:\" in stripped or \"_info:\" in stripped:\n            return Section.EXPECT\n        return None\n\n    def detect_context_change(self, line: str) -> Optional[Context]:\n        \"\"\"Detect if line changes the context.\"\"\"\n        stripped = line.strip().replace('\"', \"\").replace(\"'\", \"\").replace(\" \", \"\")\n\n        # Check for context-changing keywords\n        if any(kw in stripped for kw in {\"code:\", \"data:\", \"raw:\"}):\n            return Context.CODE\n        elif \"storage:\" in stripped:\n            # If storage is followed by {}, it's an empty storage and context should stay NORMAL\n            if \"storage:{}\" in stripped or re.search(r\"storage:\\s*\\{\\s*\\}\", line):\n                return None  # Don't change context for empty storage\n            return Context.STORAGE\n        # Known fields that indicate we're back in NORMAL context\n        elif any(\n            kw in stripped\n            for kw in {\n                \"balance:\",\n                \"nonce:\",\n                \"secretKey:\",\n                \"gasLimit:\",\n                \"gasPrice:\",\n                \"value:\",\n                \"to:\",\n                \"from:\",\n                \"address:\",\n                \"shouldnotexist:\",\n                \"indexes:\",\n                \"network:\",\n                \"result:\",\n            }\n        ):\n            return Context.NORMAL\n        return None\n\n    def create_short_name(self, addr: str) -> Optional[str]:\n        \"\"\"\n        Create a short name from an address by stripping leading/trailing zeros.\n\n        Args:\n            addr: Normalized address (40 chars, lowercase, no 0x prefix)\n\n        Returns:\n            Short name with 0x prefix, or None if the address is all zeros or too short\n\n        \"\"\"\n        if not addr or len(addr) != 40:\n            return None\n\n        # Strip leading zeros\n        lstripped = addr.lstrip(\"0\")\n\n        # If nothing left after stripping leading zeros, it's all zeros\n        if not lstripped:\n            return None\n\n        # Strip trailing zeros\n        stripped = lstripped.rstrip(\"0\")\n\n        # If nothing left after stripping trailing zeros, or too short, return None\n        if not stripped or len(stripped) < 2:\n            if len(lstripped) >= 2:\n                return f\"0x{lstripped}\"\n            return None\n\n        return f\"0x{stripped}\"\n\n    def collect_addresses(self, lines: List[str]) -> None:\n        \"\"\"First pass: collect all addresses from the file (unified for JSON and YAML).\"\"\"\n        current_section = Section.NONE\n        current_context = Context.NORMAL\n        current_address = None\n        current_result_address = None\n        looking_for_shouldnotexist = False\n\n        for _, line in enumerate(lines, 1):\n            stripped = line.strip()\n            stripped_no_spaces_or_quotes = (\n                stripped.replace('\"', \"\").replace(\"'\", \"\").replace(\" \", \"\").replace(\",\", \"\")\n            )\n\n            # Check for section changes\n            new_section = self.detect_section(line)\n            if new_section:\n                current_section = new_section\n                current_context = Context.NORMAL\n                current_address = None\n                current_result_address = None\n                looking_for_shouldnotexist = False\n\n            # Reset context when we see a new address key in pre/result sections\n            # This handles YAML structure where addresses are top-level keys\n            # Do this FIRST before any other context checks\n            if current_section in [Section.PRE, Section.RESULT]:\n                # Check if this line is an address key (40 hex chars followed by colon)\n                # Also check for quoted addresses in JSON format\n                if re.match(r\"^\\s*(?:0x)?[a-fA-F0-9]{40}\\s*:\", line, re.IGNORECASE) or re.match(\n                    r'^\\s*\"(?:0x)?[a-fA-F0-9]{40}\"\\s*:', line, re.IGNORECASE\n                ):\n                    current_context = Context.NORMAL\n\n            # Don't reset context on closing braces - let field names determine context\n\n            # Only collect addresses from pre section\n            if current_section == Section.PRE:\n                # Look for address patterns (with or without quotes, with or without 0x prefix)\n                # Matches: \"address\":, \"0xaddress\":, address:, 0xaddress:, <tag>:\n                addr_match = None\n\n                # Plain address pattern (40 hex chars followed by colon)\n                # Handle both JSON format (\"address\":) and YAML format (address:)\n                # Use word boundaries to ensure we match exactly 40 hex chars,\n                # not part of a longer string\n                match = re.search(\n                    r'[\"\\']?(?:0x)?(?<![a-fA-F0-9])([a-fA-F0-9]{40})(?![a-fA-F0-9])[\"\\']?\\s*:',\n                    line,\n                )\n                if match:\n                    addr_match = match\n                else:\n                    # Tagged address pattern\n                    match = re.search(\n                        r\"<(?:contract|eoa)(?::[^:]+)?:(?:0x)?([a-fA-F0-9]{40})>\\s*:\",\n                        line,\n                    )\n                    if match:\n                        addr_match = match\n\n                if addr_match:\n                    addr = normalize_address(addr_match.group(1))\n                    if addr not in self.do_not_tag_addresses:\n                        self.address_mappings[addr] = None  # type: ignore[assignment]\n                        self.pre_addresses.add(addr)\n                        current_address = addr\n                    continue\n\n            # Check for addresses in result section only for shouldnotexist logic\n            if current_section == Section.RESULT and current_context != Context.CODE:\n                # Look for address keys in result section\n                match = re.search(\n                    r'[\"\\']?(?:0x)?(?<![a-fA-F0-9])([a-fA-F0-9]{40})(?![a-fA-F0-9])[\"\\']?\\s*:',\n                    line,\n                )\n                if match:\n                    current_result_address = normalize_address(match.group(1))\n                    looking_for_shouldnotexist = True\n\n            # Check for shouldnotexist after setting current_result_address\n            if looking_for_shouldnotexist and current_result_address:\n                if \"shouldnotexist:1\" in stripped_no_spaces_or_quotes:\n                    # Don't convert shouldnotexist addresses if enabled for this filler\n                    if not self.dont_convert_shouldnotexist:\n                        # Only now add to address_mappings and mark as creation address\n                        self.address_mappings[current_result_address] = None  # type: ignore[assignment]\n                        self.creation_addresses.add(current_result_address)\n                    looking_for_shouldnotexist = False\n                    current_result_address = None\n                elif stripped and stripped[-1] in {\"}\", \"]\"}:\n                    # End of address block without finding shouldnotexist -leave address hard-coded\n                    looking_for_shouldnotexist = False\n                    current_result_address = None\n\n            # Check if current address (from pre) has code\n            if current_address and current_section == Section.PRE:\n                # For YAML files, check both when we see the code: line and during CODE context\n                if not self.is_json:\n                    # First, check if this is the code: line itself\n                    if \"code:\" in stripped_no_spaces_or_quotes:\n                        # Extract content after the colon\n                        if \":\" in line:\n                            code_content = line.split(\":\", 1)[1].strip()\n                            # Remove quotes and check if there's actual content\n                            code_content = code_content.strip(\"'\\\"\")\n                            # Only consider it has code if it's not empty or \"0x\"\n                            if (\n                                code_content\n                                and code_content not in [\"\", \"0x\", \"0X\", \"{}\", \"[]\"]\n                                and (code_content in [\"|\", \">\"] or len(code_content) > 2)\n                            ):\n                                self.addresses_with_code.add(current_address)\n                    # Also check during CODE context for multi-line code\n                    elif current_context == Context.CODE:\n                        # Don't add if this line should change context back to NORMAL\n                        if not any(\n                            kw in stripped_no_spaces_or_quotes\n                            for kw in {\"balance:\", \"nonce:\", \"storage:\"}\n                        ):\n                            if stripped and not stripped.startswith(\"#\") and \"{\" not in stripped:\n                                # Any non-empty, non-comment, non-brace line in code section\n                                # indicates there's code\n                                self.addresses_with_code.add(current_address)\n\n                # For JSON files, check code lines directly\n                elif self.is_json and ('\"code\":' in line or '\"code\" :' in line):\n                    # Extract content after the colon\n                    if \":\" in line:\n                        code_content = line.split(\":\", 1)[1].strip()\n                        # Remove quotes and check if there's actual content\n                        code_content = code_content.strip(\"'\\\"\").strip(\",\")\n                        if (\n                            code_content\n                            and code_content not in [\"\", \"0x\", \"{}\", \"[]\"]\n                            and (not code_content.startswith(\"0x\") or len(code_content) > 3)\n                        ):  # More than just \"0x\"\n                            self.addresses_with_code.add(current_address)\n\n            if current_section == Section.ENV:\n                coinbase_match = re.search(\n                    r'currentCoinbase:\\s*[\"\\']?[^\"\\']*?([a-fA-F0-9]{40})',\n                    stripped_no_spaces_or_quotes,\n                )\n                if coinbase_match:\n                    addr = normalize_address(coinbase_match.group(1))\n                    if addr not in self.do_not_tag_addresses:\n                        self.coinbase_addr = addr\n                        if CONVERT_COINBASE and not self.address_mappings.get(addr):\n                            self.address_mappings[addr] = None  # type: ignore[assignment]\n\n            if current_section == Section.TRANSACTION:\n                if \"to:\" in stripped_no_spaces_or_quotes:\n                    to_match = re.search(\n                        r'to:\\s*[\"\\']?[^\"\\']*?([a-fA-F0-9]{40})',\n                        stripped_no_spaces_or_quotes,\n                    )\n                    if to_match:\n                        addr = normalize_address(to_match.group(1))\n                        if addr not in self.do_not_tag_addresses:\n                            self.target_addr = addr\n\n            # Check for context changes AFTER processing for the next iteration\n            new_context = self.detect_context_change(line)\n            if new_context:\n                current_context = new_context\n\n    def build_tags(self) -> None:\n        \"\"\"Build appropriate tags for each address.\"\"\"\n        for addr in self.address_mappings:\n            # Skip coinbase if we're not converting it\n            if (\n                addr == self.coinbase_addr\n                and not CONVERT_COINBASE\n                and addr not in self.pre_addresses\n            ):\n                continue\n\n            if addr == KNOWN_SENDER_ADDRESS:\n                # Always use eoa tag for sender - the pre-state will add code if needed\n                self.address_mappings[addr] = f\"<eoa:sender:0x{addr}>\"\n            elif addr in self.creation_addresses:\n                self.address_mappings[addr] = f\"<contract:creation:0x{addr}>\"\n            elif addr == self.coinbase_addr and addr not in self.pre_addresses:\n                self.address_mappings[addr] = f\"<eoa:coinbase:0x{addr}>\"\n            elif addr == self.target_addr and addr in self.addresses_with_code:\n                self.address_mappings[addr] = f\"<contract:target:0x{addr}>\"\n            elif addr in self.addresses_with_code:\n                self.address_mappings[addr] = f\"<contract:0x{addr}>\"\n            else:\n                self.address_mappings[addr] = f\"<eoa:0x{addr}>\"\n\n        # Build short name mappings for SHORT_NAME_FILLERS\n        if self.is_short_name_filler:\n            for addr, tag in self.address_mappings.items():\n                if tag:  # Only if tag was assigned\n                    short_name = self.create_short_name(addr)\n                    if short_name:\n                        self.short_name_mappings[short_name] = tag\n\n    def convert_line(self, line: str, section: Section, context: Context) -> str:\n        \"\"\"\n        Second pass: convert addresses to tags.\n\n        IMPORTANT: This method should ONLY replace raw addresses with their tags.\n        It should NEVER re-tag already tagged addresses to prevent double-tagging\n        like <tag:<tag:0xaddr>>. The first pass identifies addresses and assigns\n        tags. This second pass finds those raw addresses in the content and\n        replaces them with their assigned tags.\n        \"\"\"\n        # Special handling for CALL to address 0 when we have 0x0000...0000 in pre-state\n        if context == Context.CODE:\n            zero_addr = \"0\" * 40\n            if zero_addr in self.address_mappings and self.address_mappings[zero_addr]:\n                # Simple pattern: CALL[spaces/comma]FIRST_VALUE[spaces/comma]0\n                # This captures CALL followed by any amount of space/comma, then a numeric value,\n                # then space/comma, then 0\n                # We ensure FIRST_VALUE and the address (0) are numeric to avoid double-tagging\n                call_pattern = re.compile(\n                    r\"(call)([,\\s]+)(\\d+)([,\\s]+)0(?=[,\\s\\)])\", re.IGNORECASE\n                )\n\n                # Find all matches\n                matches = list(call_pattern.finditer(line))\n\n                # Replace from end to start to preserve indices\n                for match in reversed(matches):\n                    # Replace keeping the original separators\n                    line = (\n                        line[: match.start()]\n                        + match.group(1)  # CALL\n                        + match.group(2)  # separator after CALL\n                        + match.group(3)  # first value (gas)\n                        + match.group(4)  # separator after first value\n                        + self.address_mappings[zero_addr]  # replace 0 with tag\n                        + line[match.end() :]\n                    )\n\n        # Check if this line contains an address as a key in pre/result sections\n        # JSON Pattern: \"address\" : { or \"0xaddress\" : {\n        # YAML Pattern: address: or 0xaddress:\n        is_address_key = False\n        for addr in self.address_mappings:\n            # JSON format\n            if f'\"{addr}\" : {{' in line or f'\"0x{addr}\" : {{' in line:\n                is_address_key = True\n                break\n            # YAML format - check if line contains address followed by colon (handles indentation)\n            if f\"{addr}:\" in line or f\"0x{addr}:\" in line:\n                # Make sure it's actually a key (followed by colon and not part of a longer string)\n                # Check that there's whitespace or start of line before the address\n                if re.search(rf\"(?:^|\\s){re.escape(addr)}:\", line) or re.search(\n                    rf\"(?:^|\\s)0x{re.escape(addr)}:\", line\n                ):\n                    is_address_key = True\n                    break\n\n        # Check if this is a transaction \"to\" field\n        is_transaction_to = '\"to\"' in line and \":\" in line\n\n        # Handle secretKey specially (works for both YAML and JSON)\n        if \"secretKey\" in line and KNOWN_SECRET_KEY.lower() in line.lower():\n            # Only replace if not already tagged\n            if f\"<eoa:sender:0x{KNOWN_SECRET_KEY}>\" not in line:\n                # Replace with tag, preserving quotes\n                if f'\"0x{KNOWN_SECRET_KEY}\"' in line:\n                    line = line.replace(\n                        f'\"0x{KNOWN_SECRET_KEY}\"',\n                        f'\"<eoa:sender:0x{KNOWN_SECRET_KEY}>\"',\n                    )\n                elif f'\"{KNOWN_SECRET_KEY}\"' in line:\n                    line = line.replace(\n                        f'\"{KNOWN_SECRET_KEY}\"', f'\"<eoa:sender:0x{KNOWN_SECRET_KEY}>\"'\n                    )\n                elif f\"'0x{KNOWN_SECRET_KEY}'\" in line:\n                    line = line.replace(\n                        f\"'0x{KNOWN_SECRET_KEY}'\",\n                        f\"'<eoa:sender:0x{KNOWN_SECRET_KEY}>'\",\n                    )\n                elif f\"'{KNOWN_SECRET_KEY}'\" in line:\n                    line = line.replace(\n                        f\"'{KNOWN_SECRET_KEY}'\", f\"'<eoa:sender:0x{KNOWN_SECRET_KEY}>'\"\n                    )\n                elif KNOWN_SECRET_KEY in line:\n                    line = line.replace(KNOWN_SECRET_KEY, f'\"<eoa:sender:0x{KNOWN_SECRET_KEY}>\"')\n                return line\n\n        # Sort addresses by length (longest first) to avoid partial replacements\n        sorted_addresses = sorted(\n            self.address_mappings.items(), key=lambda x: len(x[0]), reverse=True\n        )\n\n        # Replace addresses with tags - simplified pattern matching\n        for addr, tag in sorted_addresses:\n            if not tag:  # Safety check\n                continue\n\n            if (\n                not is_address_key\n                and not is_transaction_to\n                and section not in [Section.PRE, Section.RESULT]\n                and self.validate_addr_entropy_in_code\n                and calculate_entropy(addr) < 0.5\n            ):\n                continue\n\n            # Skip replacements in code/storage if no_tags_in_code is set\n            # EXCEPT for address keys which should always be replaced\n            if (\n                self.no_tags_in_code\n                and context in [Context.CODE, Context.STORAGE]\n                and not is_address_key\n            ):\n                continue\n\n            # Use regex to find and replace addresses (case-insensitive)\n            # Pattern 1: Address followed by colon (as a key) - with or without 0x prefix\n            pattern_key = re.compile(rf'(^|\\s|\"|\\')(?:0x)?{re.escape(addr)}(?=:)', re.IGNORECASE)\n            if pattern_key.search(line):\n                # Skip replacement if we're in storage context, depending on\n                # dont_replace_tags_in_storage_keys\n                if context != Context.STORAGE and not self.dont_replace_tags_in_storage_keys:\n                    # Replace while preserving the prefix (whitespace, quote, etc)\n                    line = pattern_key.sub(r\"\\1\" + tag, line)\n\n            # Pattern 2: Address in other contexts (not already in a tag)\n            # Replace all occurrences that aren't already part of a tag\n            # Use a simple approach: temporarily replace already-tagged addresses to avoid\n            # double-tagging\n\n            # First, find and temporarily replace all existing tags to protect them\n            tag_pattern = re.compile(r\"<[^>]+>\")\n            protected_tags = []  # type: ignore[var-annotated]\n\n            def protect_tag(match):\n                placeholder = f\"__TAG_PLACEHOLDER_{len(protected_tags)}__\"  # noqa: B023\n                protected_tags.append(match.group(0))  # noqa: B023\n                return placeholder\n\n            # Protect existing tags\n            line_with_placeholders = tag_pattern.sub(protect_tag, line)\n\n            # Now replace all occurrences of the address\n            if context == Context.STORAGE:\n                # In storage context, handle keys and values separately\n                if not self.dont_replace_tags_in_storage_keys:\n                    # Replace addresses everywhere in storage, including keys\n                    pattern_general = re.compile(rf\"(?:0x)?{re.escape(addr)}\", re.IGNORECASE)\n                    line_with_placeholders = pattern_general.sub(tag, line_with_placeholders)\n                else:\n                    # Default behavior: only replace in values, not keys\n                    # Split by colon and only replace in values\n                    parts = line_with_placeholders.split(\":\")\n                    for i in range(1, len(parts)):  # Skip first part (the key)\n                        # Replace address in this part\n                        pattern_general = re.compile(rf\"(?:0x)?{re.escape(addr)}\", re.IGNORECASE)\n                        parts[i] = pattern_general.sub(tag, parts[i])\n                    line_with_placeholders = \":\".join(parts)\n            else:\n                # Not in storage context - replace all occurrences\n                pattern_general = re.compile(rf\"(?:0x)?{re.escape(addr)}\", re.IGNORECASE)\n                line_with_placeholders = pattern_general.sub(tag, line_with_placeholders)\n\n            # Restore protected tags\n            for i, protected_tag in enumerate(protected_tags):\n                placeholder = f\"__TAG_PLACEHOLDER_{i}__\"\n                line_with_placeholders = line_with_placeholders.replace(placeholder, protected_tag)\n\n            line = line_with_placeholders\n\n        # Replace short names with tags for SHORT_NAME_FILLERS\n        if self.is_short_name_filler and self.short_name_mappings and context == Context.CODE:\n            # Sort short names by length (longest first) to avoid partial replacements\n            sorted_short_names = sorted(\n                self.short_name_mappings.items(), key=lambda x: len(x[0]), reverse=True\n            )\n\n            for short_name, tag in sorted_short_names:\n                # Skip if line already contains this exact tag to prevent double-tagging\n                if tag in line:\n                    continue\n\n                # Only replace short names in code/storage values, not in address keys\n                if not is_address_key:\n                    # Extract the hex part without 0x prefix from short_name\n                    hex_part = short_name[2:] if short_name.startswith(\"0x\") else short_name\n\n                    # Create a pattern that matches the hex part with any number of\n                    # leading/trailing zeros\n                    # Pattern: optional 0x prefix, any number of zeros, the hex part,\n                    # any number of zeros\n                    # Must be bounded by non-hex characters to avoid partial matches\n                    pattern = re.compile(\n                        rf\"(?:0x)?0*{re.escape(hex_part)}0*(?![a-fA-F0-9])\",\n                        re.IGNORECASE,\n                    )\n\n                    # Find all matches and replace them\n                    matches = list(pattern.finditer(line))\n                    if matches:\n                        # Replace from end to start to preserve indices\n                        for match in reversed(matches):\n                            # Only replace if it's a valid hex number\n                            # (starts with 0x or is all hex)\n                            match_text = match.group(0)\n                            if match_text.startswith(\"0x\") or match_text.startswith(\"0X\"):\n                                line = line[: match.start()] + tag + line[match.end() :]\n                            elif all(c in \"0123456789abcdefABCDEF\" for c in match_text):\n                                # Pure hex without 0x prefix - check context to ensure it's\n                                # meant as an address\n                                # Look for indicators like quotes, colons, or being a\n                                # standalone value\n                                before = line[: match.start()].rstrip()\n                                after = line[match.end() :].lstrip()\n                                if (\n                                    before.endswith(('\"', \"'\", \":\", \" \", \"(\", \"[\", \",\"))\n                                    or after.startswith(('\"', \"'\", \" \", \")\", \"]\", \",\", \"\\n\"))\n                                    or not before\n                                ):  # Start of line\n                                    line = line[: match.start()] + tag + line[match.end() :]\n\n        return line\n\n\ndef convert_file(file_path: str) -> bool:\n    \"\"\"Convert a single JSON or YAML file using line-by-line processing.\"\"\"\n    try:\n        with open(file_path, \"r\") as f:\n            lines = f.readlines()\n\n        filename = Path(file_path).name\n        converter = SimpleAddressConverter(filename=filename)\n        converter.collect_addresses(lines)\n        converter.build_tags()\n\n        if not converter.address_mappings:\n            return False\n\n        new_lines = []\n        current_section = Section.NONE\n        current_context = Context.NORMAL\n\n        for line in lines:\n            stripped = line.strip()\n            stripped_no_spaces_or_quotes = (\n                stripped.replace('\"', \"\").replace(\"'\", \"\").replace(\" \", \"\")\n            )\n\n            # Check for section changes\n            new_section = converter.detect_section(line)\n            if new_section:\n                current_section = new_section\n                current_context = Context.NORMAL\n\n            # Reset context on various keywords BEFORE converting the line\n            if any(\n                kw in stripped_no_spaces_or_quotes\n                for kw in {\n                    \"env:\",\n                    \"transaction:\",\n                    \"expect:\",\n                    \"indexes:\",\n                    \"network:\",\n                    \"result:\",\n                    \"secretKey:\",\n                    \"to:\",\n                    \"value:\",\n                    \"address:\",\n                    \"from:\",\n                }\n            ):\n                current_context = Context.NORMAL\n\n            # Reset context when we see a new address key in pre/result sections\n            # This handles YAML structure where addresses are top-level keys\n            if current_section in [Section.PRE, Section.RESULT]:\n                # Check if this line is an address key (40 hex chars followed by colon)\n                if re.match(r\"^\\s*(?:0x)?[a-fA-F0-9]{40}\\s*:\", line, re.IGNORECASE):\n                    current_context = Context.NORMAL\n\n            # Check for context changes BEFORE processing the line\n            new_context = converter.detect_context_change(line)\n            if new_context:\n                current_context = new_context\n\n            # Convert the line with the current context\n            new_line = converter.convert_line(line, current_section, current_context)\n\n            new_lines.append(new_line)\n\n        # Write back\n        with open(file_path, \"w\") as f:\n            f.writelines(new_lines)\n\n        return True\n\n    except Exception as e:\n        print(f\"Error converting {file_path}: {e}\")\n        return False\n\n\ndef main():\n    \"\"\"Main conversion function.\"\"\"  # noqa: D401\n    parser = argparse.ArgumentParser(\n        description=\"Convert addresses to tags in static test fillers\"\n    )\n    parser.add_argument(\n        \"path\",\n        nargs=\"?\",\n        default=\"tests/static\",\n        help=\"Path to search for filler files\",\n    )\n    args = parser.parse_args()\n\n    # Check if path is a single file or directory\n    path = Path(args.path)\n    yaml_files = []\n    json_files = []\n\n    if path.is_file():\n        if path.name.endswith(\"Filler.yml\") and not is_incompatible_file(path):\n            yaml_files = [path]\n        elif path.name.endswith(\"Filler.json\") and not is_incompatible_file(path):\n            json_files = [path]\n    else:\n        yaml_files = list(path.rglob(\"*Filler.yml\"))\n        json_files = list(path.rglob(\"*Filler.json\"))\n        yaml_files = [file for file in yaml_files if not is_incompatible_file(file)]\n        json_files = [file for file in json_files if not is_incompatible_file(file)]\n\n    print(f\"Found {len(yaml_files)} YAML filler files\")\n    print(f\"Found {len(json_files)} JSON filler files\")\n\n    # Convert files\n    converted_yaml = 0\n    converted_json = 0\n\n    # Convert YAML files\n    for file_path in yaml_files:\n        if convert_file(str(file_path)):\n            converted_yaml += 1\n            print(f\"Converted YAML: {file_path}\")\n\n    # Convert JSON files\n    for file_path in json_files:\n        if convert_file(str(file_path)):\n            converted_json += 1\n            print(f\"Converted JSON: {file_path}\")\n\n    print(f\"\\nSummary: Converted {converted_yaml} YAML files and {converted_json} JSON files\")\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "src/cli/__init__.py",
    "content": "\"\"\"Ethereum execution spec tests command-line tools.\"\"\"\n"
  },
  {
    "path": "src/cli/check_fixtures.py",
    "content": "\"\"\"\nPerform sanity checks on the framework's pydantic serialization and\ndeserialization using generated json fixtures files.\n\"\"\"\n\nfrom pathlib import Path\nfrom typing import Generator\n\nimport click\nfrom rich.progress import BarColumn, Progress, TaskProgressColumn, TextColumn, TimeElapsedColumn\n\nfrom ethereum_test_base_types import to_json\nfrom ethereum_test_fixtures.file import Fixtures\nfrom ethereum_test_specs.base import HashMismatchExceptionError\n\n\ndef count_json_files_exclude_index(start_path: Path) -> int:\n    \"\"\"\n    Return the number of json files in the specified directory, excluding\n    index.json files.\n    \"\"\"\n    json_file_count = sum(1 for file in start_path.rglob(\"*.json\") if file.name != \"index.json\")\n    return json_file_count\n\n\ndef check_json(json_file_path: Path) -> None:\n    \"\"\"\n    Check all fixtures in the specified json file:\n    1. Load the json file into a pydantic model. This checks there are no\n       Validation errors when loading fixtures into EEST models.\n    2. Serialize the loaded pydantic model to \"json\" (actually python data\n       structures, ready to written as json).\n    3. Load the serialized data back into a pydantic model (to get an updated\n       hash) from step 2.\n    4. Compare hashes:\n        a. Compare the newly calculated hashes from step 2. and 3. and\n        b. If present, compare info[\"hash\"] with the calculated hash from\n           step 2.\n    \"\"\"\n    fixtures: Fixtures = Fixtures.model_validate_json(json_file_path.read_text())\n    fixtures_json = to_json(fixtures)\n    fixtures_deserialized: Fixtures = Fixtures.model_validate(fixtures_json)\n    for fixture_name, fixture in fixtures.items():\n        new_hash = fixtures_deserialized[fixture_name].hash\n        if (original_hash := fixture.hash) != new_hash:\n            raise HashMismatchExceptionError(\n                original_hash,\n                new_hash,\n                message=f\"Fixture hash attributes do not match for {fixture_name}\",\n            )\n        if \"hash\" in fixture.info and fixture.info[\"hash\"] != original_hash:\n            info_hash = fixture.info[\"hash\"]\n            info_hash_str = str(info_hash) if not isinstance(info_hash, str) else info_hash\n            raise HashMismatchExceptionError(\n                original_hash,\n                info_hash_str,\n                message=(\n                    f\"Fixture info['hash'] does not match calculated \"\n                    f\"hash for {fixture_name}: '{info_hash}' != \"\n                    f\"'{original_hash}'\"\n                ),\n            )\n\n\n@click.command()\n@click.option(\n    \"--input\",\n    \"-i\",\n    \"input_str\",\n    type=click.Path(exists=True, file_okay=True, dir_okay=True, readable=True),\n    required=True,\n    help=\"The input json file or directory containing json fixture files\",\n)\n@click.option(\n    \"--quiet\",\n    \"-q\",\n    \"quiet_mode\",\n    is_flag=True,\n    default=False,\n    expose_value=True,\n    help=\"Don't show the progress bar while processing fixture files.\",\n)\n@click.option(\n    \"--stop-on-error\",\n    \"--raise-on-error\",\n    \"-s\",\n    \"stop_on_error\",\n    is_flag=True,\n    default=False,\n    expose_value=True,\n    help=\"Stop and raise any exceptions encountered while checking fixtures.\",\n)\ndef check_fixtures(input_str: str, quiet_mode: bool, stop_on_error: bool) -> bool:\n    \"\"\"\n    Perform checks on fixtures in the specified directory.\n    \"\"\"\n    input_path = Path(input_str)\n    success = True\n    file_count = 0\n    filename_display_width = 25\n    if input_path.is_file():\n        file_count = 1\n    elif not quiet_mode:\n        file_count = count_json_files_exclude_index(input_path)\n\n    def get_input_files() -> Generator[Path, None, None]:\n        if input_path.is_file():\n            yield input_path\n        else:\n            yield from input_path.rglob(\"*.json\")\n\n    with Progress(\n        TextColumn(\n            f\"[bold cyan]{{task.fields[filename]:<{filename_display_width}}}[/]\", justify=\"left\"\n        ),\n        BarColumn(bar_width=None, complete_style=\"green3\", finished_style=\"bold green3\"),\n        TaskProgressColumn(),\n        TimeElapsedColumn(),\n        expand=True,\n        disable=quiet_mode,\n    ) as progress:  # type: Progress\n        task_id = progress.add_task(\"Checking fixtures\", total=file_count, filename=\"...\")\n        for json_file_path in get_input_files():\n            if json_file_path.name == \"index.json\":\n                continue\n\n            display_filename = json_file_path.name\n            if len(display_filename) > filename_display_width:\n                display_filename = display_filename[: filename_display_width - 3] + \"...\"\n            else:\n                display_filename = display_filename.ljust(filename_display_width)\n\n            try:\n                progress.update(task_id, advance=1, filename=f\"Checking {display_filename}\")\n                check_json(json_file_path)\n            except Exception as e:\n                success = False\n                if stop_on_error:\n                    raise e\n                else:\n                    progress.console.print(f\"\\nError checking {json_file_path}:\")\n                    progress.console.print(f\"  {e}\")\n\n        reward_string = \"🦄\" if success else \"🐢\"\n        progress.update(\n            task_id, completed=file_count, filename=f\"Completed checking all files {reward_string}\"\n        )\n\n    return success\n\n\nif __name__ == \"__main__\":\n    check_fixtures()\n"
  },
  {
    "path": "src/cli/compare_fixtures.py",
    "content": "\"\"\"\nCompare two fixture folders and remove duplicates based on fixture hashes.\n\nThis tool reads the .meta/index.json files from two fixture directories and\nidentifies fixtures with identical hashes on a test case basis, then removes\nthe duplicates from both of the folders. Used within the coverage workflow.\n\"\"\"\n\nimport json\nimport shutil\nimport sys\nfrom collections import defaultdict\nfrom pathlib import Path\nfrom typing import List, Set\n\nimport click\n\nfrom ethereum_test_base_types import HexNumber\nfrom ethereum_test_fixtures.consume import IndexFile, TestCaseIndexFile\n\n\ndef get_index_path(folder: Path) -> Path:\n    \"\"\"Get the path to an index in a given folder.\"\"\"\n    return folder / \".meta\" / \"index.json\"\n\n\ndef load_index(folder: Path) -> IndexFile:\n    \"\"\"Load the index.json file from a fixture folder.\"\"\"\n    index_path = get_index_path(folder)\n    if not index_path.exists():\n        raise FileNotFoundError(f\"Index file not found: {index_path}\")\n\n    return IndexFile.model_validate_json(index_path.read_text())\n\n\ndef get_fixture_hashes(index: IndexFile) -> Set[HexNumber]:\n    \"\"\"Extract fixture hashes and their corresponding file paths from index.\"\"\"\n    hash_set = set()\n\n    for test_case in index.test_cases:\n        if test_case.fixture_hash is None:\n            continue\n        hash_set.add(test_case.fixture_hash)\n\n    return hash_set\n\n\ndef find_duplicates(base_hashes: Set[HexNumber], patch_hashes: Set[HexNumber]) -> Set[HexNumber]:\n    \"\"\"Find fixture hashes that exist in both base and patch.\"\"\"\n    return base_hashes & patch_hashes\n\n\ndef pop_all_by_hash(index: IndexFile, fixture_hash: HexNumber) -> List[TestCaseIndexFile]:\n    \"\"\"Pops all test cases from an index file by their hash.\"\"\"\n    test_cases = []\n    remaining_cases = []\n    for test_case in index.test_cases:\n        if test_case.fixture_hash == fixture_hash:\n            test_cases.append(test_case)\n        else:\n            remaining_cases.append(test_case)\n    if not test_cases:\n        raise Exception(f\"Hash {fixture_hash} not found in index.\")\n    index.test_cases = remaining_cases\n    return test_cases\n\n\ndef remove_fixture_from_file(file: Path, test_case_id: str) -> None:\n    \"\"\"Remove a single fixture by its ID from a generic fixture file.\"\"\"\n    try:\n        # Load from json to a dict\n        full_file = json.loads(file.read_text())\n        full_file.pop(test_case_id)\n        file.write_text(json.dumps(full_file, indent=2))\n    except FileNotFoundError:\n        raise FileNotFoundError(f\"Fixture file not found: {file}\") from None\n    except KeyError:\n        raise KeyError(f\"Test case {test_case_id} not found in {file}\") from None\n\n\ndef batch_remove_fixtures_from_files(removals_by_file: dict[Path, list[str]]) -> None:\n    \"\"\"Batch process file removals to minimize I/O.\"\"\"\n    for file_path, test_case_ids in removals_by_file.items():\n        try:\n            full_file = json.loads(file_path.read_text())\n            for test_case_id in test_case_ids:\n                full_file.pop(test_case_id, None)\n            if len(full_file) > 0:\n                file_path.write_text(json.dumps(full_file, indent=2))\n            else:\n                file_path.unlink()\n        except Exception as e:\n            print(f\"Error processing {file_path}: {e}\")\n\n\ndef rewrite_index(folder: Path, index: IndexFile, dry_run: bool) -> None:\n    \"\"\"\n    Rewrite index to file, or if test count is zero, delete directory.\n    \"\"\"\n    if len(index.test_cases) > 0:\n        # Just rewrite the index\n        if not dry_run:\n            with open(get_index_path(folder), \"w\") as f:\n                f.write(index.model_dump_json(exclude_none=False, indent=2))\n        else:\n            print(f\"Would rewrite index for {folder}\")\n    else:\n        # Delete the folder\n        if not dry_run:\n            shutil.rmtree(folder)\n        else:\n            print(f\"Would delete {folder}\")\n\n\n@click.command()\n@click.argument(\"base\", type=click.Path(exists=True, file_okay=False, path_type=Path))\n@click.argument(\"patch\", type=click.Path(exists=True, file_okay=False, path_type=Path))\n@click.option(\n    \"--dry-run\", is_flag=True, help=\"Show what would be removed without actually removing\"\n)\n@click.option(\n    \"--abort-on-empty-patch\",\n    is_flag=True,\n    help=\"Abort if the patch folder would be empty after fixture removal.\",\n)\ndef main(\n    base: Path,\n    patch: Path,\n    dry_run: bool,\n    abort_on_empty_patch: bool,\n) -> None:\n    \"\"\"\n    Compare two folders and remove duplicates based on fixture hashes.\n    \"\"\"\n    try:\n        # Load indices\n        base_index = load_index(base)\n        base_hashes = get_fixture_hashes(base_index)\n\n        patch_index = load_index(patch)\n        patch_hashes = get_fixture_hashes(patch_index)\n\n        # Find duplicates\n        duplicate_hashes = find_duplicates(base_hashes, patch_hashes)\n\n        if not duplicate_hashes:\n            click.echo(\"No duplicates found.\")\n            sys.exit(0)\n        else:\n            click.echo(f\"Found {len(duplicate_hashes)} duplicates.\")\n\n        if abort_on_empty_patch and duplicate_hashes == patch_hashes:\n            click.echo(\"Patch folder would be empty after fixture removal.\")\n            sys.exit(0)\n\n        # Collect removals by file for batching\n        base_removals_by_file = defaultdict(list)\n        patch_removals_by_file = defaultdict(list)\n\n        for duplicate_hash in duplicate_hashes:\n            base_test_cases = pop_all_by_hash(base_index, duplicate_hash)\n            patch_test_cases = pop_all_by_hash(patch_index, duplicate_hash)\n\n            for base_test_case in base_test_cases:\n                base_file = base / base_test_case.json_path\n                if dry_run:\n                    print(f\"Remove {base_test_case.id} from {base_file}\")\n                else:\n                    base_removals_by_file[base_file].append(base_test_case.id)\n\n            for patch_test_case in patch_test_cases:\n                patch_file = patch / patch_test_case.json_path\n                if dry_run:\n                    print(f\"Remove {patch_test_case.id} from {patch_file}\")\n                else:\n                    patch_removals_by_file[patch_file].append(patch_test_case.id)\n\n        # Batch process file operations\n        if not dry_run:\n            batch_remove_fixtures_from_files(base_removals_by_file)\n            batch_remove_fixtures_from_files(patch_removals_by_file)\n\n        # Rewrite indices if necessary\n        rewrite_index(base, base_index, dry_run)\n        rewrite_index(patch, patch_index, dry_run)\n    except Exception as e:\n        click.echo(f\"Error: {e}\", err=True)\n        sys.exit(1)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "src/cli/diff_opcode_counts.py",
    "content": "#!/usr/bin/env python\n\"\"\"\nCompare opcode counts between two folders of JSON fixtures.\n\nThis script crawls two folders for JSON files, parses them using the Fixtures\nmodel, and compares the opcode_count field from the info section between\nfixtures with the same name.\n\"\"\"\n\nimport sys\nfrom pathlib import Path\nfrom typing import Dict, List, Optional\n\nimport click\n\nfrom ethereum_clis.cli_types import OpcodeCount\nfrom ethereum_test_fixtures.file import Fixtures\n\n\ndef find_json_files(directory: Path) -> List[Path]:\n    \"\"\"Find all JSON files in a directory, excluding index.json files.\"\"\"\n    json_files = []\n    if directory.is_dir():\n        for file_path in directory.rglob(\"*.json\"):\n            if file_path.name != \"index.json\":\n                json_files.append(file_path)\n    return json_files\n\n\ndef load_fixtures_from_file(\n    file_path: Path, remove_from_fixture_names: List[str]\n) -> Optional[Fixtures]:\n    \"\"\"Load fixtures from a JSON file using the Fixtures model.\"\"\"\n    try:\n        fixtures = Fixtures.model_validate_json(file_path.read_text())\n        renames = []\n        for k in fixtures.root:\n            new_name = None\n            for s in remove_from_fixture_names:\n                if s in k:\n                    if new_name is None:\n                        new_name = k.replace(s, \"\")\n                    else:\n                        new_name = new_name.replace(s, \"\")\n            if new_name is not None:\n                renames.append((k, new_name))\n        for old_name, new_name in renames:\n            fixtures.root[new_name] = fixtures.root.pop(old_name)\n        return fixtures\n    except Exception as e:\n        print(f\"Error loading {file_path}: {e}\", file=sys.stderr)\n        return None\n\n\ndef extract_opcode_counts_from_fixtures(fixtures: Fixtures) -> Dict[str, OpcodeCount]:\n    \"\"\"Extract opcode_count from info field for each fixture.\"\"\"\n    opcode_counts = {}\n    for fixture_name, fixture in fixtures.items():\n        if hasattr(fixture, \"info\") and fixture.info and \"opcode_count\" in fixture.info:\n            try:\n                opcode_count = OpcodeCount.model_validate(fixture.info[\"opcode_count\"])\n                opcode_counts[fixture_name] = opcode_count\n            except Exception as e:\n                print(f\"Error parsing opcode_count for {fixture_name}: {e}\", file=sys.stderr)\n    return opcode_counts\n\n\ndef load_all_opcode_counts(\n    directory: Path, remove_from_fixture_names: List[str]\n) -> Dict[str, OpcodeCount]:\n    \"\"\"Load all opcode counts from all JSON files in a directory.\"\"\"\n    all_opcode_counts = {}\n    json_files = find_json_files(directory)\n\n    for json_file in json_files:\n        fixtures = load_fixtures_from_file(\n            json_file, remove_from_fixture_names=remove_from_fixture_names\n        )\n        if fixtures:\n            file_opcode_counts = extract_opcode_counts_from_fixtures(fixtures)\n            # Use fixture name as key, if there are conflicts, choose the last\n            all_opcode_counts.update(file_opcode_counts)\n\n    return all_opcode_counts\n\n\ndef compare_opcode_counts(count1: OpcodeCount, count2: OpcodeCount) -> Dict[str, int]:\n    \"\"\"Compare two opcode counts and return the differences.\"\"\"\n    differences = {}\n\n    # Get all unique opcodes from both counts\n    all_opcodes = set(count1.root.keys()) | set(count2.root.keys())\n\n    for opcode in all_opcodes:\n        val1 = count1.root.get(opcode, 0)\n        val2 = count2.root.get(opcode, 0)\n        diff = val2 - val1\n        if diff != 0:\n            differences[str(opcode)] = diff\n\n    return differences\n\n\n@click.command()\n@click.argument(\"base\", type=click.Path(exists=True, file_okay=False, path_type=Path))\n@click.argument(\"patch\", type=click.Path(exists=True, file_okay=False, path_type=Path))\n@click.option(\n    \"--show-common\",\n    is_flag=True,\n    help=\"Print fixtures that contain identical opcode counts.\",\n)\n@click.option(\n    \"--show-missing\",\n    is_flag=True,\n    help=\"Print fixtures only found in one of the folders.\",\n)\n@click.option(\n    \"--remove-from-fixture-names\",\n    \"-r\",\n    multiple=True,\n    help=\"String to be removed from the fixture name, in case the fixture names have changed, \"\n    \"in order to make the comparison easier. \"\n    \"Can be specified multiple times.\",\n)\ndef main(\n    base: Path,\n    patch: Path,\n    show_common: bool,\n    show_missing: bool,\n    remove_from_fixture_names: List[str],\n) -> None:\n    \"\"\"Crawl two folders, compare and print opcode count diffs.\"\"\"\n    print(f\"Loading opcode counts from {base}...\")\n    opcode_counts1 = load_all_opcode_counts(base, remove_from_fixture_names)\n    print(f\"Found {len(opcode_counts1)} fixtures with opcode counts\")\n\n    print(f\"Loading opcode counts from {patch}...\")\n    opcode_counts2 = load_all_opcode_counts(patch, remove_from_fixture_names)\n    print(f\"Found {len(opcode_counts2)} fixtures with opcode counts\")\n\n    # Find common fixture names\n    common_names = set(opcode_counts1.keys()) & set(opcode_counts2.keys())\n    only_in_1 = set(opcode_counts1.keys()) - set(opcode_counts2.keys())\n    only_in_2 = set(opcode_counts2.keys()) - set(opcode_counts1.keys())\n\n    print(\"\\nSummary:\")\n    print(f\"  Common fixtures: {len(common_names)}\")\n    print(f\"  Only in {base.name}: {len(only_in_1)}\")\n    print(f\"  Only in {patch.name}: {len(only_in_2)}\")\n\n    # Show missing fixtures if requested\n    if show_missing:\n        if only_in_1:\n            print(f\"\\nFixtures only in {base.name}:\")\n            for name in sorted(only_in_1):\n                print(f\"  {name}\")\n\n        if only_in_2:\n            print(f\"\\nFixtures only in {patch.name}:\")\n            for name in sorted(only_in_2):\n                print(f\"  {name}\")\n\n    # Compare common fixtures\n    differences_found = False\n    common_with_same_counts = 0\n\n    for fixture_name in sorted(common_names):\n        count1 = opcode_counts1[fixture_name]\n        count2 = opcode_counts2[fixture_name]\n\n        differences = compare_opcode_counts(count1, count2)\n\n        if differences:\n            differences_found = True\n            print(f\"\\n{fixture_name}:\")\n            for opcode, diff in sorted(differences.items()):\n                if diff > 0:\n                    print(f\"  +{diff} {opcode}\")\n                else:\n                    print(f\"  {diff} {opcode}\")\n        elif show_common:\n            print(f\"\\n{fixture_name}: No differences\")\n            common_with_same_counts += 1\n\n    if not differences_found:\n        print(\"\\nNo differences found in opcode counts between common fixtures!\")\n    elif show_common:\n        print(f\"\\n{common_with_same_counts} fixtures have identical opcode counts\")\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "src/cli/eest/__init__.py",
    "content": "\"\"\"Entry point for the `eest` command line interface.\"\"\"\n"
  },
  {
    "path": "src/cli/eest/cli.py",
    "content": "\"\"\"\n`eest` is a CLI tool that helps with routine tasks.\nInvoke using `uv run eest`.\n\"\"\"\n\nimport click\n\nfrom .commands import clean, info\nfrom .make.cli import make\n\n\n@click.group(\n    context_settings={\n        \"help_option_names\": [\"-h\", \"--help\"],\n        \"max_content_width\": 120,\n    }\n)\ndef eest() -> None:\n    \"\"\"`eest` is a CLI tool that helps with routine tasks.\"\"\"\n    pass\n\n\n\"\"\"\n################################\n||                            ||\n||    Command Registration    ||\n||                            ||\n################################\n\nRegister nested commands here. For more information, see Click documentation:\nhttps://click.palletsprojects.com/en/8.0.x/commands/#nested-handling-and-contexts\n\"\"\"\neest.add_command(make)\neest.add_command(clean)\neest.add_command(info)\n"
  },
  {
    "path": "src/cli/eest/commands/__init__.py",
    "content": "\"\"\"\nA collection of commands supported by `eest` CLI.\n\nRun `uv run eest` for complete list.\n\"\"\"\n\nfrom .clean import clean\nfrom .info import info\n\n__all__ = [\"clean\", \"info\"]\n"
  },
  {
    "path": "src/cli/eest/commands/clean.py",
    "content": "\"\"\"Clean CLI command removes generated files and directories.\"\"\"\n\nimport glob\nimport os\nimport shutil\n\nimport click\n\n\n@click.command(short_help=\"Remove all generated files and directories.\")\n@click.option(\n    \"--all\",\n    \"all_files\",\n    is_flag=True,\n    help=\"Remove the virtual environment and .tox directory as well.\",\n)\n@click.option(\"--dry-run\", is_flag=True, help=\"Simulate the cleanup without removing files.\")\n@click.option(\"-v\", \"--verbose\", is_flag=True, help=\"Show verbose output.\")\ndef clean(all_files: bool, dry_run: bool, verbose: bool) -> None:\n    \"\"\"\n    Remove all generated files and directories from the repository.\n\n    If `--all` is specified, the virtual environment and .tox directory will\n    also be removed.\n\n    Args:\n        all_files (bool): Remove the virtual environment and .tox directory\n                          as well.\n\n        dry_run (bool): Simulate the cleanup without removing files.\n\n        verbose (bool): Show verbose output.\n\n    Note: The virtual environment and .tox directory are not removed by\n    default.\n\n    Example: Cleaning all generated files and directories and show the deleted\n    items.\n\n        uv run eest clean --all -v\n\n    Output:\n\n        \\b\n        🗑️  Deleted: .tox\n        🗑️  Deleted: .venv\n        🗑️  Deleted: src/cli/et/__pycache__\n        🗑️  Deleted: src/cli/et/commands/__pycache__\n        🗑️  Deleted: src/cli/et/make/__pycache__\n        🗑️  Deleted: src/cli/et/make/commands/__pycache__\n        ...\n        🧹 Cleanup complete!\n\n    \"\"\"  # noqa: D417, D301\n    # List of items to remove can contain files and directories.\n    items_to_remove = [\n        \".pytest_cache\",\n        \".mypy_cache\",\n        \"fixtures\",\n        \"build\",\n        \"site\",\n        \"cached_downloads\",\n        \".pyspelling_en.dict\",\n    ]\n\n    # glob patterns to remove.\n    patterns_to_remove = [\"src/**/__pycache__\", \"tests/**/__pycache__\"]\n\n    for pattern in patterns_to_remove:\n        matching_files = glob.glob(pattern, recursive=True)\n        items_to_remove.extend(matching_files)\n\n    if all_files:\n        items_to_remove.extend([\".tox\", \".venv\"])\n\n    # Perform dry run or actual deletion\n    for item in items_to_remove:\n        if os.path.exists(item):\n            if dry_run:\n                click.echo(f\"[🧐 Dry run] File would be deleted: {item}\")\n            else:\n                try:\n                    if os.path.isdir(item):\n                        shutil.rmtree(item, ignore_errors=False)\n                    else:\n                        os.remove(item)\n\n                    # Verbose flag: Output the name of the deleted item\n                    if verbose:\n                        click.echo(f\"🗑️  Deleted: {item}\")\n\n                except PermissionError:\n                    click.echo(f\"❌ Permission denied to remove {item}.\")\n                except Exception as e:\n                    click.echo(f\"❌ Failed to remove {item}: {e}\")\n\n    if not dry_run:\n        click.echo(\"🧹 Cleanup complete!\")\n"
  },
  {
    "path": "src/cli/eest/commands/info.py",
    "content": "\"\"\"Command to display EEST and system information.\"\"\"\n\nimport platform\nimport subprocess\nimport sys\n\nimport click\n\nfrom config.app import AppConfig\nfrom ethereum_test_tools.utility.versioning import get_current_commit_hash_or_tag\n\n\ndef run_command(command: list[str]) -> str:\n    \"\"\"Run a CLI command and return its output.\"\"\"\n    try:\n        result = subprocess.run(\n            command,\n            capture_output=True,\n            text=True,\n            check=True,\n        )\n        return result.stdout.strip()\n    except (subprocess.SubprocessError, FileNotFoundError):\n        return \"unknown\"\n\n\ndef get_uv_version() -> str:\n    \"\"\"Get the installed uv package manager version.\"\"\"\n    return run_command([\"uv\", \"--version\"])\n\n\n@click.command(name=\"info\")\ndef info() -> None:\n    \"\"\"Display EEST and system information.\"\"\"\n    # Format headers\n    title = click.style(\"EEST\", fg=\"green\", bold=True)\n\n    version = AppConfig().version\n\n    info_text = f\"\"\"\n    {title} {click.style(f\"v{version}\", fg=\"blue\", bold=True)}\n{\"─\" * 50}\n\n    Git commit: {click.style(get_current_commit_hash_or_tag(shorten_hash=True), fg=\"yellow\")}\n    Python: {click.style(platform.python_version(), fg=\"blue\")}\n    uv: {click.style(get_uv_version(), fg=\"magenta\")}\n    OS: {click.style(f\"{platform.system()} {platform.release()}\", fg=\"cyan\")}\n    Platform: {click.style(platform.machine(), fg=\"cyan\")}\n    Python Path: {click.style(sys.executable, dim=True)}\n    \"\"\"\n\n    click.echo(info_text)\n"
  },
  {
    "path": "src/cli/eest/make/__init__.py",
    "content": "\"\"\"\nMake CLI.\n\nThis module provides the `make` CLI command that helps you quickly scaffold\nfiles.\n\"\"\"\n\nfrom .cli import test\n\n__all__ = [\"test\"]\n"
  },
  {
    "path": "src/cli/eest/make/cli.py",
    "content": "\"\"\"\nThe `make` CLI streamlines the process of scaffolding tasks, such as generating\nnew test files, enabling developers to concentrate on the core aspects of\nspecification testing.\n\n\n\nThe module calls the appropriate function for the subcommand. If an invalid\nsubcommand is chosen, it throws an error and shows a list of valid subcommands.\nIf no subcommand is present, it shows a list of valid subcommands to choose\nfrom.\n\"\"\"\n\nimport click\n\nfrom .commands import create_default_env, test\n\n\n@click.group(short_help=\"Generate project files.\")\ndef make() -> None:\n    \"\"\"Generate project files.\"\"\"\n    pass\n\n\n\"\"\"\n################################\n||                            ||\n||    Command Registration    ||\n||                            ||\n################################\n\nRegister nested commands here. For more information, see Click documentation:\nhttps://click.palletsprojects.com/en/8.0.x/commands/#nested-handling-and-contexts\n\"\"\"\nmake.add_command(test)\nmake.add_command(create_default_env)\n"
  },
  {
    "path": "src/cli/eest/make/commands/__init__.py",
    "content": "\"\"\"\nHolds subcommands for the make command.\n\nNew subcommands must be created as modules and exported from this package,\nthen registered under the make command in `cli.py`.\n\"\"\"\n\nfrom .env import create_default_env\nfrom .test import test\n\n__all__ = [\"test\", \"create_default_env\"]\n"
  },
  {
    "path": "src/cli/eest/make/commands/env.py",
    "content": "\"\"\"CLI commands for managing the environment file.\"\"\"\n\nimport click\nfrom jinja2 import Environment, PackageLoader\n\nfrom config.env import ENV_PATH, Config\n\nfrom ...quotes import get_quote\n\n\n@click.command(\n    short_help=\"Generate the default environment file (env.yaml).\",\n    name=\"env\",\n)\ndef create_default_env() -> None:\n    \"\"\"\n    CLI command to generate the default environment file (env.yaml).\n\n    If an `env.yaml` already exists, this command will NOT override it.\n    In that case, it is recommended to manually make changes.\n\n    _Easter egg: Shows a random quote after creating the environment file._\n\n    Example:\n        uv run eest make env\n\n    Output:\n\n        🎉 Success! Environment file created at: <path>/env.yaml\n\n        🚀 Well begun is half done. - Aristotle\n\n    \"\"\"\n    # Check if the env file already exists\n    if ENV_PATH.exists():\n        click.echo(\n            click.style(\n                f\"🚧 The env file '{ENV_PATH}' already exists. \"\n                \"Please update it manually if needed.\",\n                fg=\"red\",\n            )\n        )\n        exit(1)\n\n    template_environment = Environment(\n        loader=PackageLoader(\"config\"), trim_blocks=True, lstrip_blocks=True\n    )\n    template = template_environment.get_template(\"env.yaml.j2\")\n\n    env_yaml = template.render(config=Config())\n\n    with ENV_PATH.open(\"w\") as file:\n        file.write(env_yaml)\n        click.echo(click.style(f\"🎉 Success! Environment file created at: {ENV_PATH}\", fg=\"green\"))\n        click.echo(get_quote())\n"
  },
  {
    "path": "src/cli/eest/make/commands/test.py",
    "content": "\"\"\"\nProvides a CLI command to scaffold a test file.\n\nThe `test` command guides the user through a series of prompts to generate a\ntest file based on the selected test type, fork, EIP number, and EIP name. The\ngenerated test file is saved in the appropriate directory with a rendered\ntemplate using Jinja2.\n\"\"\"\n\nimport os\nimport sys\nfrom pathlib import Path\n\nimport click\nimport jinja2\n\nfrom config.docs import DocsConfig\nfrom ethereum_test_forks import get_development_forks, get_forks\n\nfrom ....input import input_select, input_text\n\ntemplate_loader = jinja2.PackageLoader(\"cli.eest.make\")\ntemplate_env = jinja2.Environment(\n    loader=template_loader, keep_trailing_newline=True, trim_blocks=True, lstrip_blocks=True\n)\n\n\ndef exit_now() -> None:\n    \"\"\"Interrupt execution instantly via ctrl+C.\"\"\"\n    print(\"Ctrl+C detected, exiting..\")\n    exit(0)\n\n\n@click.command(\n    short_help=\"Generate a new test file for an EIP.\",\n    epilog=f\"Further help: {DocsConfig().DOCS_URL__WRITING_TESTS}\",\n)\ndef test() -> None:\n    \"\"\"\n    Generate a new test file for an EIP.\n\n    This function guides the user through a series of prompts to generate a\n    test file for Ethereum execution specifications. The user is prompted to\n    select the type of test, the fork to use, and to provide the EIP number and\n    name. Based on the inputs, a test file is created in the appropriate\n    directory with a rendered template.\n\n    Example:\n        uv run eest make test\n\n    \\f\n    <figure class=\"video_container\">\n        <video controls=\"true\" allowfullscreen=\"true\">\n            <source\n                src=\"/execution-spec-tests/writing_tests/img/eest_make_test.mp4\"\n                type=\"video/mp4\"\n            />\n        </video>\n    </figure>\n\n    \"\"\"  # noqa: D301\n    test_type = input_select(\n        \"Choose the type of test to generate\", choices=[\"State\", \"Blockchain\"]\n    )\n    if test_type is None:\n        exit_now()\n\n    fork_choices = [str(fork) for fork in get_forks()]\n    fork = input_select(\"Select the fork\", choices=fork_choices)\n    if fork is None:\n        exit_now()\n\n    base_path = Path(\"tests\") / fork.lower()\n    base_path.mkdir(parents=True, exist_ok=True)\n\n    existing_dirs = [d.name for d in base_path.iterdir() if d.is_dir() and d.name != \"__pycache__\"]\n\n    location_choice = input_select(\n        \"Select test directory\",\n        choices=[\n            {\"name\": \"Use current location\", \"value\": \"current\"},\n            *existing_dirs,\n            {\"name\": \"** Create new sub-directory **\", \"value\": \"new\"},\n        ],\n    )\n    if location_choice is None:\n        exit_now()\n\n    if location_choice == \"new\":\n        eip_number = input_text(\"Enter the EIP number (int)\").strip()\n        eip_name = input_text(\"Enter the EIP name (spaces ok, only used in docstrings)\").strip()\n        directory_name = input_text(\n            \"Enter directory name (snake_case, part after eipXXXX_)\"\n        ).strip()\n        dir_name = f\"eip{eip_number}_{directory_name}\"\n        directory_path = base_path / dir_name\n        raw_module = input_text(\"Enter module name (snake_case)\").strip()\n        module_name = raw_module if raw_module.startswith(\"test_\") else f\"test_{raw_module}\"\n    elif location_choice == \"current\":\n        eip_number = input_text(\"Enter the EIP number (int)\").strip()\n        eip_name = input_text(\"Enter the EIP name (spaces ok, only used in docstrings)\").strip()\n        raw_module = input_text(\"Enter module name (snake_case)\").strip()\n        module_name = raw_module if raw_module.startswith(\"test_\") else f\"test_{raw_module}\"\n        directory_path = base_path\n    else:\n        dir_parts = location_choice.split(\"_\")\n        eip_number = dir_parts[0][3:]\n        eip_name = \" \".join(dir_parts[1:]).title()\n        raw_module = input_text(\"Enter module name (snake_case)\").strip()\n        module_name = raw_module if raw_module.startswith(\"test_\") else f\"test_{raw_module}\"\n        directory_path = base_path / location_choice\n\n    file_name = f\"{module_name}.py\"\n    module_path = directory_path / file_name\n\n    if module_path.exists():\n        click.echo(\n            click.style(\n                f\"\\n 🛑 The target test module {module_path} already exists!\",\n                fg=\"red\",\n            ),\n            err=True,\n        )\n        sys.exit(1)\n\n    os.makedirs(directory_path, exist_ok=True)\n\n    template = template_env.get_template(f\"{test_type.lower()}_test.py.j2\")\n    rendered_template = template.render(\n        fork=fork,\n        eip_number=eip_number,\n        eip_name=eip_name,\n        module_name=module_name,\n    )\n\n    with open(module_path, \"w\") as file:\n        file.write(rendered_template)\n\n    click.echo(\n        click.style(\n            f\"\\n 🎉 Success! Test file created at: {module_path}\",\n            fg=\"green\",\n        )\n    )\n\n    fork_option = \"\"\n    if fork in [dev_fork.name() for dev_fork in get_development_forks()]:\n        fork_option = f\" --until={fork}\"\n\n    click.echo(\n        click.style(\n            f\"\\n 📝 Get started with tests:  {DocsConfig().DOCS_URL__WRITING_TESTS}\"\n            f\"\\n ⛽ To fill this test, run: `uv run fill {module_path}{fork_option}`\",\n            fg=\"cyan\",\n        )\n    )\n"
  },
  {
    "path": "src/cli/eest/make/templates/blockchain_test.py.j2",
    "content": "\"\"\"\nabstract: Tests [EIP-{{eip_number}} {{eip_name}}](https://eips.ethereum.org/EIPS/eip-{{eip_number}})\n    Test cases for [EIP-{{eip_number}} {{eip_name}}](https://eips.ethereum.org/EIPS/eip-{{eip_number}})].\n\"\"\"\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    Account,\n    Alloc,\n    Block,\n    BlockchainTestFiller,\n    Environment,\n    Transaction,\n)\nfrom ethereum_test_vm import Opcodes as Op\n\nREFERENCE_SPEC_GIT_PATH = \"DUMMY/eip-DUMMY.md\"\nREFERENCE_SPEC_VERSION = \"DUMMY_VERSION\"\n\n\n@pytest.mark.valid_from(\"{{fork}}\")\ndef {{module_name}}(\n    blockchain_test: BlockchainTestFiller, pre: Alloc, fork: Fork, env: Environment\n):\n    \"\"\"\n    TODO: Enter a one-line test summary here.\n\n    TODO: (Optional) Enter a more detailed test function description here.\n    \"\"\"\n    # TODO: Delete this explanation.\n    # In this demo test, the pre-state contains one EOA and one very simple\n    # smart contract. The EOA, `sender`, executes the smart contract, which\n    # simply sets the value of the contract's storage slot.\n    # The (non-exhaustive) post-state verifies that the storage slot was set\n    # correctly - this is checked when filling the test.\n    #\n    # One gotcha is ensuring that the transaction `gas_limit` is set high\n    # enough to cover the gas cost of the contract execution.\n\n    storage_slot: int = 1\n\n    # TODO: Modify pre-state allocations here.\n    sender = pre.fund_eoa()\n    contract_address = pre.deploy_contract(\n        code=Op.SSTORE(storage_slot, 0x2) + Op.STOP,\n        storage={storage_slot: 0x1},\n    )\n\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=fork.transaction_gas_limit_cap() or env.gas_limit,\n        data=b\"\",\n        value=0,\n        sender=sender,\n        {% if fork in [\"Frontier\", \"Homestead\"] %}\n        protected=False,\n        {% endif %}\n    )\n\n    # TODO: Modify post-state allocations here.\n    post = {contract_address: Account(storage={storage_slot: 0x2})}\n\n    blockchain_test(pre=pre, blocks=[Block(txs=[tx])], post=post)\n"
  },
  {
    "path": "src/cli/eest/make/templates/state_test.py.j2",
    "content": "\"\"\"\nabstract: Tests [EIP-{{eip_number}} {{eip_name}}](https://eips.ethereum.org/EIPS/eip-{{eip_number}})\n    Test cases for [EIP-{{eip_number}} {{eip_name}}](https://eips.ethereum.org/EIPS/eip-{{eip_number}})].\n\"\"\"\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import Account, Alloc, Environment, StateTestFiller, Transaction\nfrom ethereum_test_vm import Opcodes as Op\n\nREFERENCE_SPEC_GIT_PATH = \"DUMMY/eip-DUMMY.md\"\nREFERENCE_SPEC_VERSION = \"DUMMY_VERSION\"\n\n\n@pytest.mark.valid_from(\"{{fork}}\")\ndef {{module_name}}(state_test: StateTestFiller, pre: Alloc, fork: Fork, env: Environment):\n    \"\"\"\n    TODO: Enter a one-line test summary here.\n\n    TODO: (Optional) Enter a more detailed test function description here.\n    \"\"\"\n    env = Environment()\n\n    # TODO: Delete this explanation.\n    # In this demo test, the pre-state contains one EOA and one very simple\n    # smart contract. The EOA, `sender`, executes the smart contract, which\n    # simply sets the value of the contract's storage slot.\n    # The (non-exhaustive) post-state verifies that the storage slot was set\n    # correctly - this is checked when filling the test.\n    #\n    # One gotcha is ensuring that the transaction `gas_limit` is set high\n    # enough to cover the gas cost of the contract execution.\n\n    storage_slot: int = 1\n\n    # TODO: Modify pre-state allocations here.\n    sender = pre.fund_eoa()\n    contract_address = pre.deploy_contract(\n        code=Op.SSTORE(storage_slot, 0x2) + Op.STOP,\n        storage={storage_slot: 0x1},\n    )\n\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=fork.transaction_gas_limit_cap() or env.gas_limit,\n        data=b\"\",\n        value=0,\n        sender=sender,\n        {% if fork in [\"Frontier\", \"Homestead\"] %}\n        protected=False,\n        {% endif %}\n    )\n\n    # TODO: Modify post-state allocations here.\n    post = {contract_address: Account(storage={storage_slot: 0x2})}\n\n    state_test(env=env, pre=pre, post=post, tx=tx)\n"
  },
  {
    "path": "src/cli/eest/quotes.py",
    "content": "\"\"\"List of quotes related to system design.\"\"\"\n\nimport random\nimport textwrap\n\nmake_something_great = [\n    \"🎨 Simplicity is the ultimate sophistication. - Leonardo D.\",\n    \"🖌️ Simplicity is an acquired taste. - Katharine G.\",\n    \"💡 To create a memorable design you need to start with a thought that’s worth remembering.\"\n    \" - Thomas M.\",\n    \"🚀 Well begun is half done. - Aristotle\",\n    \"🖌️ Designers are crazy and yet sane enough to know where to draw the line. - Benjamin W.\",\n    \"🌟 Creativity is piercing the mundane to find the marvelous. - Bill M.\",\n    \"🔍 Mistakes are the portals of discovery. - James J.\",\n    \"🧠 It’s extremely difficult to be simultaneously concerned with the end-user experience of\"\n    \" whatever it is that you’re building and the architecture of the program that delivers that\"\n    \"experience. - James H.\",\n    \"🧠 Good design is a lot like clear thinking made visual. - Edward T.\",\n    \"🚀 Innovation leads one to see the new in the old and distinguishes the ingenious from the\"\n    \" ingenuous. - Paul R.\",\n    \"🔮 The best way to predict the future is to invent it. - Alan K.\",\n    \"🌟 Perfection is achieved, not when there is nothing more to add, but when there is nothing\"\n    \" left to take away. - Antoine d.\",\n    \"📏 You can’t improve what you don’t measure. - Tom D.\",\n]\n\n\ndef wrap_quote(quote: str, width: int = 80) -> str:\n    \"\"\"Wrap quote text to the given width.\"\"\"\n    return textwrap.fill(quote, width=width)\n\n\ndef box_quote(quote: str) -> str:\n    \"\"\"Return quote wrapped in a box with borders.\"\"\"\n    # Wrap the quote first\n    wrapped_quote = wrap_quote(quote)\n\n    # Calculate the width of the box\n    box_width = max(len(line) for line in wrapped_quote.split(\"\\n\")) + 2  # +2 for side borders\n\n    # Create top and bottom border\n    top_bottom_border = \"+\" + \"-\" * (box_width) + \"+\"\n\n    # Create the sides of the box\n    lines = wrapped_quote.split(\"\\n\")\n    boxed_lines = [f\"{line.ljust(box_width - 2)}\" for line in lines]\n\n    # Return the full boxed quote\n    quote = \"\\n\".join([top_bottom_border] + boxed_lines + [top_bottom_border])\n    return f\"\\n {quote} \\n\"\n\n\ndef get_quote() -> str:\n    \"\"\"\n    Return random inspirational quote formatted in a box.\n    \"\"\"\n    return box_quote(random.choice(make_something_great))\n"
  },
  {
    "path": "src/cli/eofwrap.py",
    "content": "\"\"\"\nGenerate a JSON blockchain test from an existing JSON blockchain test by\nwrapping its pre-state code in EOF wherever possible.\n\nExample Usage:\n\n1. Wrap tests\n\n    ```console\n    eofwrap <input_dir/file_path> <output_dir_path>\n    ```\n\"\"\"\n\nimport json\nimport os\nimport sys\nfrom pathlib import Path\nfrom typing import Any, Dict, cast, no_type_check\n\nimport click\n\nfrom ethereum_clis import CLINotFoundInPathError\nfrom ethereum_clis.clis.evmone import EvmOneTransitionTool\nfrom ethereum_test_base_types import Bytes, EthereumTestRootModel\nfrom ethereum_test_base_types.conversions import to_hex\nfrom ethereum_test_fixtures.blockchain import FixtureBlock, InvalidFixtureBlock\nfrom ethereum_test_fixtures.file import Fixtures\nfrom ethereum_test_forks.forks.forks import EOFv1\nfrom ethereum_test_specs.blockchain import Block, BlockchainFixture, BlockchainTest\nfrom ethereum_test_specs.debugging import print_traces\nfrom ethereum_test_specs.eof import EOFParse\nfrom ethereum_test_tools import Opcodes as Op\nfrom ethereum_test_types import Transaction\nfrom ethereum_test_types.block_types import Environment\nfrom ethereum_test_types.eof.v1 import Container\nfrom ethereum_test_vm import Bytecode\n\nfrom .evm_bytes import OpcodeWithOperands, process_evm_bytes\n\n\n@click.command()\n@click.argument(\"input_path\", type=click.Path(exists=True, dir_okay=True, file_okay=True))\n@click.argument(\"output_dir\", type=click.Path(dir_okay=True, file_okay=False))\n@click.option(\"--traces\", is_flag=True, type=bool)\ndef eof_wrap(input_path: str, output_dir: str, traces: bool) -> None:\n    \"\"\"\n    Wrap JSON blockchain test file(s) found at `input_path`, output to\n    `output_dir`.\n    \"\"\"\n    eof_wrapper = EofWrapper()\n\n    try:\n        EvmOneTransitionTool()\n    except CLINotFoundInPathError:\n        print(f\"Error: {EvmOneTransitionTool.default_binary} must be in the PATH.\")\n        sys.exit(1)\n    except Exception as e:\n        raise Exception(f\"Unexpected exception: {e}\") from e\n\n    if os.path.isfile(input_path):\n        file = os.path.basename(input_path)\n        out_file = \"eof_wrapped_\" + file\n        out_path = os.path.join(output_dir, out_file)\n\n        eof_wrapper.wrap_file(input_path, out_path, traces)\n    else:\n        for subdir, _, files in os.walk(input_path):\n            for file in files:\n                rel_dir = Path(subdir).relative_to(input_path)\n                out_file = \"eof_wrapped_\" + file\n                out_path = os.path.join(output_dir, rel_dir, out_file)\n                in_path = os.path.join(subdir, file)\n\n                eof_wrapper.wrap_file(in_path, out_path, traces)\n\n    os.makedirs(output_dir, exist_ok=True)\n    with open(os.path.join(output_dir, \"metrics.json\"), \"w\") as f:\n        json.dump(eof_wrapper.metrics, f, indent=4)\n\n\nclass BlockchainFixtures(EthereumTestRootModel):\n    \"\"\"\n    Class needed due to some of the `ethereum/tests` fixtures not having the\n    `_info.fixture_format` field in the JSON files.\n    \"\"\"\n\n    root: Dict[str, BlockchainFixture]\n\n\nclass EofWrapper:\n    \"\"\"EOF wrapping of blockchain tests with some simple metrics tracking.\"\"\"\n\n    # JSON files had at least one fixture generated successfully with EOF\n    FILES_GENERATED = \"files_generated\"\n    # JSON files skipped explicitly or didn't have a fixture with EOF\n    FILES_SKIPPED = \"files_skipped\"\n    # Test fixtures with at least one EOF code and generated successfully\n    FIXTURES_GENERATED = \"fixtures_generated\"\n    # Test fixtures with no code able to be EOF-wrapped\n    FIXTURES_CANT_WRAP = \"fixtures_cant_wrap\"\n    # Test fixtures with EOF code but test doesn't pass and generation fails\n    FIXTURES_CANT_GENERATE = \"fixtures_cant_generate\"\n    # Invalid blocks in fixtures skipped\n    INVALID_BLOCKS_SKIPPED = \"invalid_blocks_skipped\"\n    # State accounts with code wrapped into valid EOF\n    ACCOUNTS_WRAPPED = \"accounts_wrapped\"\n    # State accounts with code wrapped into valid unique EOF\n    UNIQUE_ACCOUNTS_WRAPPED = \"unique_accounts_wrapped\"\n    # State accounts wrapped but the code is not valid EOF\n    ACCOUNTS_INVALID_EOF = \"accounts_invalid_eof\"\n    # State accounts wrapped into valid EOF but in a fixture of a failing test\n    ACCOUNTS_CANT_GENERATE = \"accounts_cant_generate\"\n    # Breakdown of EOF validation errors summing up to `accounts_invalid_eof`\n    VALIDATION_ERRORS = \"validation_errors\"\n    # Breakdown of runtime test failures summing up to `fixtures_cant_generate`\n    GENERATION_ERRORS = \"generation_errors\"\n\n    def __init__(self) -> None:\n        \"\"\"\n        Initialize EofWrapper with metrics tracking and unique EOF set.\n        \"\"\"\n        self.metrics = {\n            self.FILES_GENERATED: 0,\n            self.FILES_SKIPPED: 0,\n            self.FIXTURES_GENERATED: 0,\n            self.FIXTURES_CANT_WRAP: 0,\n            self.FIXTURES_CANT_GENERATE: 0,\n            self.INVALID_BLOCKS_SKIPPED: 0,\n            self.ACCOUNTS_WRAPPED: 0,\n            self.UNIQUE_ACCOUNTS_WRAPPED: 0,\n            self.ACCOUNTS_INVALID_EOF: 0,\n            self.ACCOUNTS_CANT_GENERATE: 0,\n            self.VALIDATION_ERRORS: {},\n            self.GENERATION_ERRORS: {},\n        }\n        self.unique_eof: set[str] = set()\n\n    file_skip_list = [\n        \"Pyspecs\",\n        # EXTCODE* opcodes return different results for EOF targets and that is\n        # tested elsewhere\n        \"stExtCodeHash\",\n        # bigint syntax\n        \"ValueOverflowParis\",\n        \"bc4895-withdrawals\",\n        # EOF opcodes at diff places - tests obsolete\n        \"opcD0DiffPlaces\",\n        \"opcD1DiffPlaces\",\n        \"opcD2DiffPlaces\",\n        \"opcD3DiffPlaces\",\n        \"opcE0DiffPlaces\",\n        \"opcE1DiffPlaces\",\n        \"opcE2DiffPlaces\",\n        \"opcE3DiffPlaces\",\n        \"opcE4DiffPlaces\",\n        \"opcE5DiffPlaces\",\n        \"opcE6DiffPlaces\",\n        \"opcE7DiffPlaces\",\n        \"opcE8DiffPlaces\",\n        \"opcECDiffPlaces\",\n        \"opcEEDiffPlaces\",\n        \"opcF7DiffPlaces\",\n        \"opcF8DiffPlaces\",\n        \"opcF9DiffPlaces\",\n        \"opcFBDiffPlaces\",\n        # stack overflow always (limit of `max_stack_height` is 1023!)\n        \"push0_fill_stack\",\n        \"push0_stack_overflow\",\n        \"blobbasefee_stack_overflow\",\n    ]\n\n    def wrap_file(self, in_path: str, out_path: str, traces: bool) -> None:\n        \"\"\"\n        Wrap code from blockchain test JSON file from `in_path` into\n        EOF containers. Tracks in metrics.\n        \"\"\"\n        for skip in self.file_skip_list:\n            if skip in in_path:\n                self.metrics[self.FILES_SKIPPED] = cast(int, self.metrics[self.FILES_SKIPPED]) + 1\n                return\n\n        fixtures: BlockchainFixtures = BlockchainFixtures.model_validate_json(\n            Path(in_path).read_text()\n        )\n\n        out_fixtures = Fixtures({})\n        fixture: BlockchainFixture\n        for fixture_id, fixture in fixtures.root.items():\n            fixture_eof_codes = []\n            wrapped_at_least_one_account = False\n\n            if fixture.pre:\n                for address, account in fixture.pre.root.items():\n                    if account is None or account.code is None or len(account.code) == 0:\n                        continue\n\n                    try:\n                        wrapped = wrap_code(account.code)\n                    except ValueError as e:\n                        self.metrics[self.ACCOUNTS_INVALID_EOF] = (\n                            cast(int, self.metrics[self.ACCOUNTS_INVALID_EOF]) + 1\n                        )\n                        _inc_counter(\n                            cast(\n                                dict[Any, Any],\n                                self.metrics[self.VALIDATION_ERRORS],\n                            ),\n                            self._short_exception_msg(e),\n                        )\n                        continue\n\n                    if self._validate_eof(wrapped):\n                        account.code = Bytes(wrapped)\n                        wrapped_at_least_one_account = True\n                        self.metrics[self.ACCOUNTS_WRAPPED] = (\n                            cast(int, self.metrics[self.ACCOUNTS_WRAPPED]) + 1\n                        )\n                        fixture_eof_codes.append(to_hex(account.code))\n\n                        # wrap the same account in post state the same way\n                        if fixture.post_state and fixture.post_state.root[address]:\n                            fixture.post_state.root[address].code = Bytes(wrapped)  # type: ignore\n                    else:\n                        self.metrics[self.ACCOUNTS_INVALID_EOF] = (\n                            cast(int, self.metrics[self.ACCOUNTS_INVALID_EOF]) + 1\n                        )\n            if not wrapped_at_least_one_account:\n                self.metrics[self.FIXTURES_CANT_WRAP] = (\n                    cast(int, self.metrics[self.FIXTURES_CANT_WRAP]) + 1\n                )\n                continue\n\n            try:\n                out_fixture = self._wrap_fixture(fixture, traces)\n                out_fixtures[fixture_id] = out_fixture\n                self.metrics[self.FIXTURES_GENERATED] = (\n                    cast(int, self.metrics[self.FIXTURES_GENERATED]) + 1\n                )\n                self.unique_eof.update(fixture_eof_codes)\n                self.metrics[self.UNIQUE_ACCOUNTS_WRAPPED] = len(self.unique_eof)\n            except Exception as e:\n                _inc_counter(\n                    cast(\n                        dict[Any, Any],\n                        self.metrics[self.GENERATION_ERRORS],\n                    ),\n                    self._short_exception_msg(e),\n                )\n\n                self.metrics[self.FIXTURES_CANT_GENERATE] = (\n                    cast(int, self.metrics[self.FIXTURES_CANT_GENERATE]) + 1\n                )\n                self.metrics[self.ACCOUNTS_CANT_GENERATE] = cast(\n                    int, self.metrics[self.ACCOUNTS_CANT_GENERATE]\n                ) + len(fixture_eof_codes)\n\n                print(f\"Exception {e} occurred during generation of {in_path}: {fixture_id}\")\n\n        if len(out_fixtures) == 0:\n            self.metrics[self.FILES_SKIPPED] = cast(int, self.metrics[self.FILES_SKIPPED]) + 1\n            return\n\n        os.makedirs(os.path.dirname(out_path), exist_ok=True)\n        out_fixtures.collect_into_file(Path(out_path))\n        self.metrics[self.FILES_GENERATED] = cast(int, self.metrics[self.FILES_GENERATED]) + 1\n\n    def _short_exception_msg(self, e: Exception) -> str:\n        \"\"\"Shorten exception message for display.\"\"\"\n        threshold = 30\n        short = str(e)\n        if len(short) > threshold:\n            short = short[:threshold] + \"...\"\n        return short\n\n    def _wrap_fixture(self, fixture: BlockchainFixture, traces: bool) -> BlockchainFixture:\n        env = Environment(\n            difficulty=fixture.genesis.difficulty,\n            gas_limit=fixture.genesis.gas_limit,\n            base_fee_per_gas=fixture.genesis.base_fee_per_gas,\n            blob_gas_used=fixture.genesis.blob_gas_used,\n            excess_blob_gas=fixture.genesis.excess_blob_gas,\n            parent_beacon_block_root=fixture.genesis.parent_beacon_block_root,\n        )\n\n        pre = fixture.pre\n\n        t8n = EvmOneTransitionTool(trace=traces)\n\n        test = BlockchainTest(\n            genesis_environment=env,\n            pre=pre.root,\n            post=fixture.post_state.root if fixture.post_state else {},\n            blocks=[],\n            tag=\"wrapped test\",\n        )\n\n        for fixture_block in fixture.blocks:\n            if isinstance(fixture_block, FixtureBlock):\n                header = fixture_block.header\n                block = Block(\n                    ommers_hash=header.ommers_hash,\n                    fee_recipient=header.fee_recipient,\n                    difficulty=header.difficulty,\n                    number=header.number,\n                    gas_limit=header.gas_limit,\n                    timestamp=header.timestamp,\n                    extra_data=header.extra_data,\n                    prev_randao=header.prev_randao,\n                    nonce=header.nonce,\n                    base_fee_per_gas=header.base_fee_per_gas,\n                    withdrawals_root=header.withdrawals_root,\n                    parent_beacon_block_root=header.parent_beacon_block_root,\n                )\n                assert not fixture_block.ommers\n                assert not fixture_block.withdrawals\n\n                for fixture_tx in fixture_block.txs:\n                    fixture_tx_dump = fixture_tx.model_dump()\n                    fixture_tx_dump.pop(\"ty\")\n                    fixture_tx_dump.pop(\"data\")\n                    tx = Transaction(\n                        type=fixture_tx.ty,\n                        input=fixture_tx.data,\n                        **fixture_tx_dump,\n                    )\n                    block.txs.append(tx)\n\n                test.blocks.append(block)\n            elif isinstance(fixture_block, InvalidFixtureBlock):\n                # Skip - invalid blocks are not supported. Reason:\n                # FixtureTransaction doesn't support expected exception. But we\n                # can continue and test the remaining blocks.\n                self.metrics[self.INVALID_BLOCKS_SKIPPED] = (\n                    cast(int, self.metrics[self.INVALID_BLOCKS_SKIPPED]) + 1\n                )\n            else:\n                raise TypeError(\"not a FixtureBlock\")\n\n        result = test.generate(\n            t8n=t8n,\n            fork=EOFv1,\n            fixture_format=BlockchainFixture,\n        )\n        assert isinstance(result, BlockchainFixture)\n        result.info[\"fixture-format\"] = \"blockchain_test\"\n        if traces:\n            print_traces(t8n.get_traces())\n        return result\n\n    def _validate_eof(self, container: Container, metrics: bool = True) -> bool:\n        eof_parse = EOFParse()\n\n        result = eof_parse.run(input_value=to_hex(container))\n        actual_message = result.stdout.strip()\n        if \"OK\" not in actual_message:\n            if metrics:\n                _inc_counter(\n                    cast(\n                        dict[Any, Any],\n                        self.metrics[self.VALIDATION_ERRORS],\n                    ),\n                    actual_message,\n                )\n            return False\n\n        return True\n\n\n# `no_type_check` required because OpcodeWithOperand.opcode can be `None` when\n# formatting as a string, but here it can never be `None`.\n@no_type_check\ndef wrap_code(account_code: Bytes) -> Container:\n    \"\"\"\n    Wrap `account_code` into a simplest EOF container, applying some simple\n    heuristics in order to obtain a valid code section termination.\n    \"\"\"\n    assert len(account_code) > 0\n\n    opcodes = process_evm_bytes(account_code)\n\n    if not opcodes[-1].terminating:\n        opcodes.append(OpcodeWithOperands(opcode=Op.STOP))\n\n    while len(opcodes) > 1 and opcodes[-2].terminating and opcodes[-1].terminating:\n        opcodes.pop()\n\n    bytecode = Bytecode()\n\n    for opcode in opcodes:\n        bytecode += opcode.bytecode\n\n    return Container.Code(bytecode)\n\n\ndef _inc_counter(d: dict, key: Any) -> None:\n    if key in d:\n        d[key] += 1\n    else:\n        d[key] = 1\n"
  },
  {
    "path": "src/cli/evm_bytes.py",
    "content": "\"\"\"Define an entry point wrapper for pytest.\"\"\"\n\nfrom dataclasses import dataclass, field\nfrom typing import Any, List\n\nimport click\n\nfrom ethereum_test_base_types import ZeroPaddedHexNumber\nfrom ethereum_test_vm import Bytecode, Macro\nfrom ethereum_test_vm import Opcodes as Op\n\nOPCODES_WITH_EMPTY_LINES_AFTER = {\n    Op.STOP,\n    Op.REVERT,\n    Op.INVALID,\n    Op.JUMP,\n    Op.JUMPI,\n}\n\nOPCODES_WITH_EMPTY_LINES_BEFORE = {\n    Op.JUMPDEST,\n}\n\n\n@dataclass(kw_only=True)\nclass OpcodeWithOperands:\n    \"\"\"Simple opcode with its operands.\"\"\"\n\n    opcode: Op | None\n    operands: List[int] = field(default_factory=list)\n\n    def format(self, assembly: bool) -> str:\n        \"\"\"Format the opcode with its operands.\"\"\"\n        if self.opcode is None:\n            return \"\"\n        if assembly:\n            return self.format_assembly()\n        if self.operands:\n            operands = \", \".join(hex(operand) for operand in self.operands)\n            return f\"Op.{self.opcode._name_}[{operands}]\"\n        return f\"Op.{self.opcode._name_}\"\n\n    def format_assembly(self) -> str:\n        \"\"\"Format the opcode with its operands as assembly.\"\"\"\n        if self.opcode is None:\n            return \"\"\n        opcode_name = self.opcode._name_.lower()\n        if self.opcode.data_portion_length == 0:\n            return f\"{opcode_name}\"\n        elif self.opcode == Op.RJUMPV:\n            operands = \", \".join(str(ZeroPaddedHexNumber(operand)) for operand in self.operands)\n            return f\"{opcode_name} {operands}\"\n        else:\n            operands = \", \".join(str(ZeroPaddedHexNumber(operand)) for operand in self.operands)\n            return f\"{opcode_name} {operands}\"\n\n    @property\n    def terminating(self) -> bool:\n        \"\"\"Terminating opcode boolean.\"\"\"\n        return self.opcode.terminating if self.opcode else False\n\n    @property\n    def bytecode(self) -> Bytecode:\n        \"\"\"Opcode as bytecode with its operands if any.\"\"\"\n        # opcode.opcode[*opcode.operands] crashes `black` formatter and doesn't\n        # work.\n        if self.opcode:\n            return self.opcode.__getitem__(*self.operands) if self.operands else self.opcode\n        else:\n            return Bytecode()\n\n\ndef process_evm_bytes(evm_bytes: bytes) -> List[OpcodeWithOperands]:  # noqa: D103\n    evm_bytes_array = bytearray(evm_bytes)\n\n    opcodes: List[OpcodeWithOperands] = []\n\n    while evm_bytes_array:\n        opcode_byte = evm_bytes_array.pop(0)\n\n        opcode: Op\n        for op in Op:\n            if not isinstance(op, Macro) and op.int() == opcode_byte:\n                opcode = op\n                break\n        else:\n            raise ValueError(f\"Unknown opcode: {opcode_byte}\")\n\n        if opcode.data_portion_length > 0:\n            signed = opcode in [Op.RJUMP, Op.RJUMPI]\n            opcodes.append(\n                OpcodeWithOperands(\n                    opcode=opcode,\n                    operands=[\n                        int.from_bytes(\n                            evm_bytes_array[: opcode.data_portion_length], \"big\", signed=signed\n                        )\n                    ],\n                )\n            )\n            evm_bytes_array = evm_bytes_array[opcode.data_portion_length :]\n        elif opcode == Op.RJUMPV:\n            if len(evm_bytes_array) == 0:\n                opcodes.append(OpcodeWithOperands(opcode=opcode))\n            else:\n                max_index = evm_bytes_array.pop(0)\n                operands: List[int] = []\n                for _ in range(max_index + 1):\n                    operands.append(int.from_bytes(evm_bytes_array[:2], \"big\", signed=True))\n                    evm_bytes_array = evm_bytes_array[2:]\n                opcodes.append(OpcodeWithOperands(opcode=opcode, operands=operands))\n        else:\n            opcodes.append(OpcodeWithOperands(opcode=opcode))\n\n    return opcodes\n\n\ndef format_opcodes(opcodes: List[OpcodeWithOperands], assembly: bool = False) -> str:  # noqa: D103\n    if assembly:\n        opcodes_with_empty_lines: List[OpcodeWithOperands] = []\n        for i, op_with_operands in enumerate(opcodes):\n            if (\n                op_with_operands.opcode in OPCODES_WITH_EMPTY_LINES_BEFORE\n                and len(opcodes_with_empty_lines) > 0\n                and opcodes_with_empty_lines[-1].opcode is not None\n            ):\n                opcodes_with_empty_lines.append(OpcodeWithOperands(opcode=None))\n            opcodes_with_empty_lines.append(op_with_operands)\n            if op_with_operands.opcode in OPCODES_WITH_EMPTY_LINES_AFTER and i < len(opcodes) - 1:\n                opcodes_with_empty_lines.append(OpcodeWithOperands(opcode=None))\n        return \"\\n\".join(op.format(assembly) for op in opcodes_with_empty_lines)\n    return \" + \".join(op.format(assembly) for op in opcodes)\n\n\ndef process_evm_bytes_string(evm_bytes_hex_string: str, assembly: bool = False) -> str:\n    \"\"\"Process the given EVM bytes hex string.\"\"\"\n    if evm_bytes_hex_string.startswith(\"0x\"):\n        evm_bytes_hex_string = evm_bytes_hex_string[2:]\n\n    evm_bytes = bytes.fromhex(evm_bytes_hex_string)\n    return format_opcodes(process_evm_bytes(evm_bytes), assembly=assembly)\n\n\nassembly_option = click.option(\n    \"-a\",\n    \"--assembly\",\n    default=False,\n    is_flag=True,\n    help=\"Output the code as assembly instead of Python Opcodes.\",\n)\n\n\n@click.group(\n    \"evm_bytes\",\n    context_settings={\n        \"help_option_names\": [\"-h\", \"--help\"],\n    },\n)\ndef evm_bytes() -> None:\n    \"\"\"\n    Convert EVM bytecode to EEST's Python Opcodes or an assembly string.\n\n    The input can be either a hex string or a binary file.\n    \"\"\"\n    pass\n\n\n@evm_bytes.command(short_help=\"Convert a hex string to Python Opcodes or assembly.\")\n@assembly_option\n@click.argument(\"hex_string\")\ndef hex_string(hex_string: str, assembly: bool) -> None:\n    \"\"\"\n    Convert the HEX_STRING representing EVM bytes to EEST Python Opcodes.\n\n    HEX_STRING is a string containing EVM bytecode.\n\n    Returns:\n        (str): The processed EVM opcodes in Python or assembly format.\n\n    Example 1: Convert a hex string to EEST Python `Opcodes`\n        uv run evm_bytes hex-string 604260005260206000F3\n\n    Output 1:\n        \\b\n        Op.PUSH1[0x42] + Op.PUSH1[0x0] + Op.MSTORE + Op.PUSH1[0x20] +\n        Op.PUSH1[0x0] + Op.RETURN\n\n    Example 2: Convert a hex string to assembly\n        uv run evm_bytes hex-string --assembly 604260005260206000F3\n\n    Output 2:\n        \\b\n        push1 0x42\n        push1 0x00\n        mstore\n        push1 0x20\n        push1 0x00\n        return\n\n    \"\"\"  # noqa: D301\n    processed_output = process_evm_bytes_string(hex_string, assembly=assembly)\n    click.echo(processed_output)\n\n\n@evm_bytes.command(short_help=\"Convert a binary file to Python Opcodes or assembly.\")\n@assembly_option\n@click.argument(\"binary_file\", type=click.File(\"rb\"))\ndef binary_file(binary_file: Any, assembly: bool) -> None:\n    \"\"\"\n    Convert the BINARY_FILE containing EVM bytes to Python Opcodes or assembly.\n\n    BINARY_FILE is a binary file containing EVM bytes, use `-` to read from\n    stdin.\n\n    Returns:\n        (str): The processed EVM opcodes in Python or assembly format.\n\n    Example: Convert the Withdrawal Request contract to assembly\n        \\b\n        uv run evm_bytes binary-file ./src/ethereum_test_forks/forks/\n            contracts/withdrawal_request.bin --assembly\n\n    Output:\n        \\b\n        caller\n        push20 0xfffffffffffffffffffffffffffffffffffffffe\n        eq\n        push1 0x90\n        jumpi\n        ...\n\n    \"\"\"  # noqa: D301\n    processed_output = format_opcodes(process_evm_bytes(binary_file.read()), assembly=assembly)\n    click.echo(processed_output)\n"
  },
  {
    "path": "src/cli/extract_config.py",
    "content": "#!/usr/bin/env python\n\"\"\"\nCLI tool to extract client configuration files (chainspec/genesis.json) from\nEthereum clients.\n\nThis tool spawns an Ethereum client using Hive and extracts the generated\nconfiguration files such as /chainspec/test.json, /configs/test.cfg, or\n/genesis.json from the Docker container.\n\"\"\"\n\nimport io\nimport json\nimport subprocess\nimport sys\nfrom pathlib import Path\nfrom typing import Dict, Optional, Tuple, cast\n\nimport click\nfrom hive.simulation import Simulation\nfrom hive.testing import HiveTestResult\n\nfrom ethereum_test_base_types import Alloc, to_json\nfrom ethereum_test_fixtures import BlockchainFixtureCommon\nfrom ethereum_test_fixtures.blockchain import FixtureHeader\nfrom ethereum_test_fixtures.file import Fixtures\nfrom ethereum_test_fixtures.pre_alloc_groups import PreAllocGroup\nfrom ethereum_test_forks import Fork\nfrom pytest_plugins.consume.simulators.helpers.ruleset import ruleset\n\n\ndef get_docker_containers() -> set[str]:\n    \"\"\"Get the current list of Docker container IDs.\"\"\"\n    result = subprocess.run([\"docker\", \"ps\", \"-q\"], capture_output=True, text=True, check=True)\n    return set(result.stdout.strip().split(\"\\n\")) if result.stdout.strip() else set()\n\n\ndef extract_client_files(\n    container_id: str,\n    output_dir: Path,\n    fixture_name: str,\n    client_name: str,\n) -> Dict[str, Path]:\n    \"\"\"\n    Extract configuration files from a running client container.\n\n    Returns a dictionary mapping file type to extracted file path.\n    \"\"\"\n    extracted_files = {}\n\n    # List of files to try to extract\n    files_to_extract = [\n        (\"/chainspec/test.json\", \"chainspec.json\"),\n        (\"/configs/test.cfg\", \"config.cfg\"),\n        (\"/genesis.json\", \"genesis.json\"),\n    ]\n\n    for container_path, output_filename in files_to_extract:\n        try:\n            # Use docker exec to read the file from the container\n            # First check if file exists\n            check_cmd = [\"docker\", \"exec\", container_id, \"test\", \"-f\", container_path]\n            check_result = subprocess.run(check_cmd, capture_output=True)\n\n            if check_result.returncode == 0:\n                # File exists, now read it\n                read_cmd = [\"docker\", \"exec\", container_id, \"cat\", container_path]\n                result = subprocess.run(read_cmd, capture_output=True, text=True)\n\n                if result.returncode == 0 and result.stdout:\n                    output_folder = output_dir / fixture_name / client_name\n                    if not output_folder.exists():\n                        output_folder.mkdir(parents=True)\n                    output_path = output_folder / output_filename\n                    output = result.stdout\n                    if output_filename == \"genesis.json\":\n                        # Indent the json\n                        output = json.dumps(json.loads(output), indent=4)\n                    output_path.write_text(output)\n                    extracted_files[container_path] = output_path\n                    click.echo(f\"✓ Extracted {container_path} to {output_path}\")\n                else:\n                    click.echo(f\"✗ Failed to read {container_path}: {result.stderr}\", err=True)\n            else:\n                click.echo(f\"- File {container_path} does not exist in container\")\n\n        except Exception as e:\n            click.echo(f\"✗ Error extracting {container_path}: {e}\", err=True)\n\n    return extracted_files\n\n\ndef create_genesis_from_fixture(fixture_path: Path) -> Tuple[FixtureHeader, Alloc, int]:\n    \"\"\"Create a client genesis state from a fixture file.\"\"\"\n    genesis: FixtureHeader\n    alloc: Alloc\n    chain_id: int = 1\n    with open(fixture_path, \"r\") as f:\n        fixture_json = json.load(f)\n\n    if \"_info\" in fixture_json:\n        # Load the fixture\n        fixtures = Fixtures.model_validate_json(fixture_path.read_text())\n\n        # Get the first fixture (assuming single fixture file)\n        fixture_id = list(fixtures.keys())[0]\n        base_fixture = fixtures[fixture_id]\n\n        if not isinstance(base_fixture, BlockchainFixtureCommon):\n            raise ValueError(f\"Fixture {fixture_id} is not a blockchain fixture\")\n\n        genesis = base_fixture.genesis\n        alloc = base_fixture.pre\n        chain_id = int(base_fixture.config.chain_id)\n    else:\n        pre_alloc_group = PreAllocGroup.model_validate(fixture_json)\n        genesis = pre_alloc_group.genesis\n        alloc = pre_alloc_group.pre\n\n    return genesis, alloc, chain_id\n\n\ndef get_client_environment_for_fixture(fork: Fork, chain_id: int) -> dict:\n    \"\"\"\n    Get the environment variables for starting a client with the given fixture.\n    \"\"\"\n    if fork not in ruleset:\n        raise ValueError(f\"Fork '{fork}' not found in hive ruleset\")\n\n    return {\n        \"HIVE_CHAIN_ID\": str(chain_id),\n        \"HIVE_FORK_DAO_VOTE\": \"1\",\n        \"HIVE_NODETYPE\": \"full\",\n        \"HIVE_CHECK_LIVE_PORT\": \"8545\",  # Using RPC port for liveness check\n        **{k: f\"{v:d}\" for k, v in ruleset[fork].items()},\n    }\n\n\n@click.command()\n@click.option(\n    \"--client\",\n    \"-c\",\n    required=False,\n    default=None,\n    help=\"Client name (e.g., go-ethereum, besu, nethermind)\",\n)\n@click.option(\n    \"--fixture\",\n    \"-f\",\n    type=click.Path(exists=True, path_type=Path),\n    help=\"Path to a fixture JSON file to use for genesis\",\n    default=None,\n)\n@click.option(\n    \"--output\",\n    \"-o\",\n    type=click.Path(path_type=Path),\n    default=\"./extracted_configs\",\n    help=\"Output directory for extracted files\",\n)\n@click.option(\n    \"--hive-url\",\n    default=\"http://127.0.0.1:3000\",\n    help=\"Hive server URL\",\n)\n@click.option(\n    \"--list-files\",\n    \"-l\",\n    is_flag=True,\n    help=\"List files in the container root before extraction\",\n)\ndef extract_config(\n    client: str,\n    fixture: Optional[Path],\n    output: Path,\n    hive_url: str,\n    list_files: bool,\n) -> None:\n    \"\"\"\n    Extract client configuration files from Ethereum clients.\n\n    This tool spawns an Ethereum client using Hive and extracts the generated\n    configuration files such as /chainspec/test.json, /configs/test.cfg, or\n    /genesis.json from the Docker container.\n    \"\"\"\n    if not fixture:\n        raise click.UsageError(\"No fixture provided, use --fixture to specify a fixture\")\n\n    if fixture.is_dir():\n        fixture_files = list(fixture.glob(\"*.json\"))\n    elif fixture.is_file():\n        fixture_files = [fixture]\n    else:\n        raise click.UsageError(f\"Invalid fixture path: {fixture}\")\n\n    # Create output directory\n    output.mkdir(parents=True, exist_ok=True)\n\n    # Initialize Hive test\n    simulation = Simulation(url=hive_url)\n    suite = simulation.start_suite(\n        name=\"extract-config\",\n        description=\"Extract client configuration files\",\n    )\n    hive_test = suite.start_test(\n        name=\"extract-config\",\n        description=\"Extract client configuration files\",\n    )\n\n    client_types = []\n    for client_type in simulation.client_types():\n        if client and client not in client_type.name:\n            continue\n        client_types.append(client_type)\n\n    if not client_types:\n        raise click.UsageError(f\"No client types found for {client}\")\n\n    for fixture_path in fixture_files:\n        # Prepare client files and environment\n\n        click.echo(f\"Using fixture: {fixture_path}\")\n\n        # Load fixture and create genesis\n        genesis, alloc, chain_id = create_genesis_from_fixture(fixture_path)\n        fork = genesis.fork\n        assert fork is not None\n        client_environment = get_client_environment_for_fixture(fork, chain_id)\n\n        genesis_json = to_json(genesis)\n        alloc_json = to_json(alloc)\n        genesis_json[\"alloc\"] = {k.replace(\"0x\", \"\"): v for k, v in alloc_json.items()}\n\n        genesis_json_str = json.dumps(genesis_json)\n        genesis_bytes = genesis_json_str.encode(\"utf-8\")\n\n        for client_type in client_types:\n            client_files = {}\n            client_files[\"/genesis.json\"] = io.BufferedReader(\n                cast(io.RawIOBase, io.BytesIO(genesis_bytes))\n            )\n            # Get containers before starting client\n            containers_before = get_docker_containers()\n\n            # Start the client\n            click.echo(f\"Starting client: {client_type.name}\")\n            client_instance = hive_test.start_client(\n                client_type=client_type,\n                environment=client_environment,\n                files=client_files,\n            )\n\n            if not client_instance:\n                click.echo(\"Failed to start client\", err=True)\n                sys.exit(1)\n\n            try:\n                # Get containers after starting client\n                containers_after = get_docker_containers()\n                new_containers = containers_after - containers_before\n\n                if len(new_containers) != 1:\n                    click.echo(\n                        f\"Expected exactly 1 new container, found {len(new_containers)}\", err=True\n                    )\n                    sys.exit(1)\n\n                container_id = new_containers.pop()\n                click.echo(f\"Client started successfully (Container ID: {container_id})\")\n\n                # Optionally list files in container\n                if list_files:\n                    click.echo(\"\\nListing files in container root:\")\n                    list_cmd = [\"docker\", \"exec\", container_id, \"ls\", \"-la\", \"/\"]\n                    result = subprocess.run(list_cmd, capture_output=True, text=True)\n                    if result.returncode == 0:\n                        click.echo(result.stdout)\n                    else:\n                        click.echo(f\"Failed to list files: {result.stderr}\", err=True)\n\n                # Extract files\n                click.echo(\"\\nExtracting configuration files...\")\n                extract_client_files(container_id, output, fixture_path.stem, client_type.name)\n\n            except Exception as e:\n                click.echo(f\"Error: {e}\", err=True)\n                import traceback\n\n                traceback.print_exc()\n                sys.exit(1)\n            finally:\n                # Clean up\n                click.echo(\"\\nStopping client...\")\n                client_instance.stop()\n\n            click.echo()\n\n    hive_test.end(result=HiveTestResult(test_pass=True, details=\"\"))\n    suite.end()\n\n\nif __name__ == \"__main__\":\n    extract_config()\n"
  },
  {
    "path": "src/cli/fillerconvert/fillerconvert.py",
    "content": "\"\"\"Simple CLI tool that reads filler files in the `ethereum/tests` format.\"\"\"\n\nimport argparse\nfrom glob import glob\nfrom pathlib import Path\n\nfrom .verify_filled import verify_refilled\n\n\ndef main() -> None:\n    \"\"\"Run the main function.\"\"\"\n    parser = argparse.ArgumentParser(description=\"Filler parser.\")\n\n    parser.add_argument(\n        \"mode\", type=str, help=\"The type of filler we are trying to parse: blockchain/state.\"\n    )\n    parser.add_argument(\"folder_path\", type=Path, help=\"The path to the JSON/YML filler directory\")\n    parser.add_argument(\"legacy_path\", type=Path, help=\"The path to the legacy tests directory\")\n\n    args = parser.parse_args()\n    args.folder_path = Path(str(args.folder_path).split(\"=\")[-1])\n    args.mode = str(args.mode).split(\"=\")[-1]\n\n    print(\"Scanning: \" + str(args.folder_path))\n    files = glob(str(args.folder_path / \"**\" / \"*.json\"), recursive=True) + glob(\n        str(args.folder_path / \"**\" / \"*.yml\"), recursive=True\n    )\n\n    if args.mode == \"blockchain\":\n        raise NotImplementedError(\"Blockchain filler not implemented yet.\")\n\n    if args.mode == \"verify\":\n        verified_vectors = 0\n        for file in files:\n            print(\"Verify: \" + file)\n            refilled_file = file\n            relative_file = file.removeprefix(str(args.folder_path))[1:]\n            original_file = args.legacy_path / \"GeneralStateTests\" / relative_file\n            verified_vectors += verify_refilled(Path(refilled_file), original_file)\n        print(f\"Total vectors verified: {verified_vectors}\")\n\n        # Solidity skipped tests\n        # or file.endswith(\"stExample/solidityExampleFiller.yml\")\n        # or file.endswith(\"vmPerformance/performanceTesterFiller.yml\")\n        # or file.endswith(\"vmPerformance/loopExpFiller.yml\")\n        # or file.endswith(\"vmPerformance/loopMulFiller.yml\")\n        # or\n        # file.endswith(\"stRevertTest/RevertRemoteSubCallStorageOOGFiller.yml\")\n        # or file.endswith(\"stSolidityTest/SelfDestructFiller.yml\")\n"
  },
  {
    "path": "src/cli/fillerconvert/verify_filled.py",
    "content": "\"\"\"Verify refilled test vs original generated test.\"\"\"\n\nimport re\nfrom pathlib import Path\n\nfrom pydantic import BaseModel, RootModel\n\n\n# Define only relevant data we need to read from the files\nclass Indexes(BaseModel):\n    \"\"\"Post Section Indexes.\"\"\"\n\n    data: int\n    gas: int\n    value: int\n\n\nclass PostRecord(BaseModel):\n    \"\"\"Post results record.\"\"\"\n\n    hash: str\n    indexes: Indexes\n\n\nclass StateTest(BaseModel):\n    \"\"\"StateTest in filled file.\"\"\"\n\n    post: dict[str, list[PostRecord]]\n\n\nclass FilledStateTest(RootModel[dict[str, StateTest]]):\n    \"\"\"State Test Wrapper.\"\"\"\n\n\ndef verify_refilled(refilled: Path, original: Path) -> int:\n    \"\"\"\n    Verify post hash of the refilled test against original: Regex the original\n    d,g,v from the refilled test name. Find the post record for this d,g,v and\n    the fork of refilled test. Compare the post hash.\n    \"\"\"\n    verified_vectors = 0\n    json_str = refilled.read_text(encoding=\"utf-8\")\n    refilled_test_wrapper = FilledStateTest.model_validate_json(json_str)\n\n    json_str = original.read_text(encoding=\"utf-8\")\n    original_test_wrapper = FilledStateTest.model_validate_json(json_str)\n\n    # Each original test has only 1 test with many posts for each fork and many\n    # txs\n    original_test_name, test_original = list(original_test_wrapper.root.items())[0]\n\n    for refilled_test_name, refilled_test in refilled_test_wrapper.root.items():\n        # Each refilled test has only 1 post for 1 fork and 1 transaction\n        refilled_fork, refilled_result = list(refilled_test.post.items())[0]\n        pattern = r\"v=(\\d+)-g=(\\d+)-d=(\\d+)\"\n        match = re.search(pattern, refilled_test_name)\n        if match:\n            v, g, d = match.groups()\n            v, g, d = int(v), int(g), int(d)\n\n            found = False\n            original_result = test_original.post[refilled_fork]\n            for res in original_result:\n                if res.indexes.data == d and res.indexes.gas == g and res.indexes.value == v:\n                    print(f\"check: {refilled_fork}, d:{d}, g:{g}, v:{v}\")\n                    if res.hash != refilled_result[0].hash:\n                        raise Exception(\n                            \"\\nRefilled test post hash mismatch: \\n\"\n                            f\"test_name: {refilled_test_name}\\n\"\n                            f\"original_name: {original}\\n\"\n                            f\"refilled_hash: {refilled_result[0].hash}\\n\"\n                            f\"original_hash: {res.hash} f: {refilled_fork}, d: {d}, g: {g}, v: {v}\"\n                        )\n                    found = True\n                    verified_vectors += 1\n                    break\n\n            if not found:\n                raise Exception(\n                    \"\\nRefilled test not found in original: \\n\"\n                    f\"test_name: {refilled_test_name}\\n\"\n                    f\"original_name: {original}\\n\"\n                )\n        else:\n            raise Exception(\"Could not regex match d.g.v indexes from refilled test name!\")\n\n    return verified_vectors\n"
  },
  {
    "path": "src/cli/fuzzer_bridge/README.md",
    "content": "# Fuzzer Bridge for Execution Spec Tests\n\nThis module provides a bridge between blocktest fuzzers (like `blocktest-fuzzer`) and the Ethereum execution-spec-tests framework, enabling automatic generation of valid blockchain test fixtures from fuzzer output.\n\n## Overview\n\nThe fuzzer bridge solves a critical problem: fuzzers can generate transactions and pre-state, but creating valid blockchain tests requires complex calculations (state roots, RLP encoding, block headers, etc.). This bridge leverages the execution-spec-tests framework to handle all these complexities.\n\n## Architecture\n\n```mermaid\ngraph LR\n    A[Blocktest<br/>Fuzzer] -->|JSON<br/>v2 format| B[Fuzzer<br/>Bridge]\n    B -->|Blockchain Test<br/>Fixtures| C[Ethereum<br/>Clients]\n```\n\n## Fuzzer Output Format (v2)\n\nThe fuzzer must output JSON in the following format:\n\n```json\n{\n  \"version\": \"2.0\",\n  \"fork\": \"Prague\",\n  \"chainId\": 1,\n  \"accounts\": {\n    \"0x7e5f4552091a69125d5dfcb7b8c2659029395bdf\": {\n      \"balance\": \"0x1000000000000000000\",\n      \"nonce\": \"0x0\",\n      \"code\": \"\",\n      \"storage\": {},\n      \"privateKey\": \"0x0000000000000000000000000000000000000000000000000000000000000001\"\n    },\n    \"0x2b5ad5c4795c026514f8317c7a215e218dccd6cf\": {\n      \"balance\": \"0x100000000000000000\",\n      \"nonce\": \"0x0\",\n      \"code\": \"0x600160005260206000f3\",\n      \"storage\": {}\n    }\n  },\n  \"transactions\": [\n    {\n      \"from\": \"0x7e5f4552091a69125d5dfcb7b8c2659029395bdf\",\n      \"to\": \"0x2b5ad5c4795c026514f8317c7a215e218dccd6cf\",\n      \"value\": \"0x100\",\n      \"gas\": \"0x5208\",\n      \"gasPrice\": \"0x7\",\n      \"nonce\": \"0x0\",\n      \"data\": \"0x\"\n    }\n  ],\n  \"env\": {\n    \"currentCoinbase\": \"0xc014ba5e00000000000000000000000000000000\",\n    \"currentDifficulty\": \"0x0\",\n    \"currentGasLimit\": \"0x1000000\",\n    \"currentNumber\": \"0x1\",\n    \"currentTimestamp\": \"0x1000\",\n    \"currentBaseFee\": \"0x7\",\n    \"currentRandom\": \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n  }\n}\n```\n\n### Key Requirements\n\n1. **Private Keys**: Any account that sends transactions MUST include a `privateKey` field.\n2. **Address-Key Match**: Private keys must generate the corresponding addresses.\n3. **Environment**: Describes the environment for block 1 (genesis is automatically derived).\n4. **Version**: Use \"2.0\" for this format.\n\n## Architecture: DTO Pattern\n\nThe fuzzer bridge uses a **Data Transfer Object (DTO) pattern** for clean separation between external data format and internal domain logic.\n\n### Design Flow\n\n```mermaid\ngraph TD\n    A[\"Fuzzer JSON Output<br/>(JSON-RPC Format v2.0)\"]\n\n    B[\"DTOs (Pydantic Models)<br/>models.py\"]\n    B1[\"FuzzerAccountInput<br/>Raw account JSON\"]\n    B2[\"FuzzerTransactionInput<br/>Raw transaction JSON (uses 'gas')\"]\n    B3[\"FuzzerAuthorizationInput<br/>Raw auth tuple (EIP-7702)\"]\n    B4[\"FuzzerOutput<br/>Complete fuzzer output\"]\n\n    C[\"EEST Domain Models<br/>converter.py\"]\n    C1[\"Account<br/>With validation & defaults\"]\n    C2[\"Transaction<br/>With gas_limit, EOA sender\"]\n    C3[\"AuthorizationTuple<br/>EIP-7702 support\"]\n    C4[\"EOA<br/>Created from private keys\"]\n\n    D[\"BlockchainTest\"]\n    E[\"Blockchain Fixture\"]\n\n    A -->|parse| B\n    B -.-> B1\n    B -.-> B2\n    B -.-> B3\n    B -.-> B4\n\n    B -->|convert| C\n    C -.-> C1\n    C -.-> C2\n    C -.-> C3\n    C -.-> C4\n\n    C -->|generate| D\n    D --> E\n\n    style A fill:#e1f5ff\n    style B fill:#fff4e1\n    style C fill:#e8f5e9\n    style D fill:#f3e5f5\n    style E fill:#fce4ec\n```\n\n### Why DTOs?\n\n1. **Separation of Concerns**\n   - External JSON-RPC format ≠ EEST internal representation\n   - Fuzzer format can change without affecting EEST domain models\n\n2. **No Side Effects During Parsing**\n   - DTOs don't trigger `model_post_init` validation logic\n   - Parsing is purely data extraction, no business logic\n\n3. **Explicit Field Mapping**\n   - Clear visibility: `gas` → `gas_limit`, `from` → `sender` (EOA)\n   - Type-safe conversions at boundary\n\n4. **Prevents TestAddress Pollution**\n   - EOA created in converter BEFORE Transaction instantiation\n   - Transaction.model_post_init never injects TestAddress\n\n### Key Field Mappings\n\n| Fuzzer Field (JSON-RPC) | DTO Field            | EEST Domain Field    | Notes                          |\n|-------------------------|----------------------|----------------------|--------------------------------|\n| `from`                  | `from_`              | `sender` (EOA)       | Creates EOA from private key   |\n| `gas`                   | `gas`                | `gas_limit`          | JSON-RPC vs internal naming    |\n| `data`                  | `data`               | `data`               | Same field, explicit mapping   |\n| `gasPrice`              | `gas_price`          | `gas_price`          | CamelCase → snake_case         |\n| `authorizationList`     | `authorization_list` | `authorization_list` | EIP-7702 support               |\n| `privateKey`            | `private_key`        | (used to create EOA) | Not stored in Account model    |\n\n### Module Responsibilities\n\n#### `models.py` - Data Transfer Objects\n- Pure Pydantic models for fuzzer JSON format\n- No business logic, only data validation\n- Accepts JSON-RPC naming conventions (camelCase)\n- ~119 lines\n\n#### `converter.py` - Transformation Logic\n- Pure functions: DTO → EEST domain models\n- All field mapping logic centralized here\n- Creates EOA objects from private keys\n- Builds BlockchainTest from validated data\n- ~305 lines\n\n#### `blocktest_builder.py` - CLI Integration\n- Orchestrates conversion workflow\n- Handles file I/O and CLI options\n- Calls converter functions\n- ~90 lines\n\n### Benefits\n\n✅ **Maintainability**: Changes to Account/Transaction propagate automatically\n✅ **Testability**: Each layer tested independently\n✅ **Type Safety**: Full type checking at DTO and domain layers\n✅ **Clarity**: Field mappings are explicit and documented\n✅ **No Circular Dependencies**: Clean module boundaries\n\n### Alternative Design: Why Not Inheritance?\n\n**Could have done**:\n```python\nclass FuzzerAccount(Account):\n    private_key: Hash | None = None\n```\n\n**Why DTOs are better**:\n- Inheritance couples external format to domain model\n- model_post_init triggers during parsing (side effects)\n- Field name mismatches require complex aliasing\n- Harder to test layers independently\n\nThe DTO pattern provides cleaner separation and explicit control.\n\n## Installation\n\nSee the [EEST installation guide](https://eest.ethereum.org/main/getting_started/installation/) for setting up the execution-spec-tests framework.\n\nOnce EEST is installed, the fuzzer bridge will be available as a command-line tool.\n\n## Usage\n\n### 1. Command Line Interface\n\n```bash\n# Convert fuzzer output to blockchain test\nuv run fuzzer_bridge --input fuzzer_output.json --output blocktest.json\n\n# With custom fork\nuv run fuzzer_bridge --input fuzzer_output.json --output blocktest.json --fork Shanghai\n\n# Pretty print output\nuv run fuzzer_bridge --input fuzzer_output.json --output blocktest.json --pretty\n```\n\n### 2. Python API\n\n```python\nfrom fuzzer_bridge import FuzzerBridge\n\n# Load fuzzer output\nwith open(\"fuzzer_output.json\") as f:\n    fuzzer_data = json.load(f)\n\n# Create bridge and convert\nbridge = FuzzerBridge()\nblocktest = bridge.convert(fuzzer_data)\n\n# Save to file\nbridge.save(blocktest, \"output.json\")\n\n# Or verify with geth directly\nresult = bridge.verify_with_geth(blocktest, geth_path=\"../go-ethereum/build/bin/evm\")\nprint(f\"Test passed: {result['pass']}\")\n```\n\n### 3. Integration with pytest\n\n```python\nimport pytest\nfrom fuzzer_bridge import create_test_from_fuzzer\n\ndef test_fuzzer_generated(blockchain_test):\n    \"\"\"Test generated from fuzzer output.\"\"\"\n    test = create_test_from_fuzzer(\"fuzzer_output.json\")\n    blockchain_test(**test)\n```\n\n## Key Insights\n\n### Genesis Block Handling\n- The fuzzer describes the environment for block 1 (the block being tested)\n- Genesis (block 0) environment is automatically derived:\n  - `number` = 0\n  - `timestamp` = block1_timestamp - 12\n  - Other values inherited or set to defaults\n\n### System Contracts\n- The framework automatically adds system contracts (deposit, withdrawal, etc.)\n- These are included in the state root calculation\n- The fuzzer doesn't need to specify them\n\n### Private Key Requirements\n- Every account that sends transactions needs a private key\n- The private key must generate the exact address specified\n- Without matching private keys, transactions cannot be signed\n\n## Troubleshooting\n\n### \"Genesis block hash doesn't match\"\n**Cause**: Usually means the environment is set incorrectly (e.g., block number = 1 instead of 0 for genesis)\n**Solution**: Ensure the fuzzer output follows the v2 format exactly\n\n### \"No private key for sender\"\n**Cause**: Account sends transaction but no privateKey field provided\n**Solution**: Add privateKey to the account in the accounts section\n\n### \"Private key doesn't match address\"\n**Cause**: The provided private key doesn't generate the specified address\n**Solution**: Use correct private key or generate address from private key\n\n## Testing with Ethereum Clients\n\n### Go-Ethereum (geth)\n```bash\n../go-ethereum/build/bin/evm blocktest generated_test.json\n```\n\n### Besu\n```bash\n../besu/ethereum/evmtool/build/install/evmtool/bin/evmtool block-test generated_test.json\n```\n\n### Nethermind\n```bash\n../nethermind/src/Nethermind/artifacts/bin/Nethermind.Test.Runner/release_linux-x64/nethtest -b -i generated_test.json\n```\n\n## Contributing\n\nWhen modifying the fuzzer bridge:\n1. Add tests for new features.\n2. Update this README.\n3. Ensure compatibility with latest execution-spec-tests."
  },
  {
    "path": "src/cli/fuzzer_bridge/__init__.py",
    "content": "\"\"\"Fuzzer bridge for converting blocktest-fuzzer output to blocktests.\"\"\"\n\nfrom .blocktest_builder import BlocktestBuilder, build_blocktest_from_fuzzer\n\n__all__ = [\"BlocktestBuilder\", \"build_blocktest_from_fuzzer\"]\n"
  },
  {
    "path": "src/cli/fuzzer_bridge/blocktest_builder.py",
    "content": "\"\"\"Build valid blocktests from fuzzer-generated transactions and pre-state.\"\"\"\n\nimport json\nimport random\nfrom pathlib import Path\nfrom typing import Any, Dict, Optional\n\nfrom ethereum_clis import GethTransitionTool, TransitionTool\nfrom ethereum_test_fixtures import BlockchainFixture\n\nfrom .converter import blockchain_test_from_fuzzer\nfrom .models import FuzzerOutput\n\n\ndef choose_random_num_blocks(num_txs: int, max_blocks: int = 10) -> int:\n    \"\"\"\n    Choose random number of blocks for given transaction count.\n\n    Selects a random number between 1 and min(num_txs, max_blocks) to enable\n    testing of various block configurations.\n\n    Args:\n        num_txs: Number of transactions to distribute\n        max_blocks: Maximum number of blocks (default: 10)\n\n    Returns:\n        Random integer between 1 and min(num_txs, max_blocks)\n\n    \"\"\"\n    if num_txs == 0:\n        return 1  # Allow empty block testing\n    return random.randint(1, min(num_txs, max_blocks))\n\n\nclass BlocktestBuilder:\n    \"\"\"Build valid blocktests from fuzzer-generated transactions.\"\"\"\n\n    def __init__(self, transition_tool: Optional[TransitionTool] = None):\n        \"\"\"Initialize the builder with optional transition tool.\"\"\"\n        self.t8n = transition_tool or GethTransitionTool()\n\n    def build_blocktest(\n        self,\n        fuzzer_output: Dict[str, Any],\n        num_blocks: int = 1,\n        block_strategy: str = \"distribute\",\n        block_time: int = 12,\n    ) -> Dict[str, Any]:\n        \"\"\"Build a valid blocktest from fuzzer output.\"\"\"\n        # Parse and validate using Pydantic model\n        fuzzer_data = FuzzerOutput(**fuzzer_output)\n\n        # Get fork\n        fork = fuzzer_data.fork\n\n        # Create BlockchainTest using converter\n        test = blockchain_test_from_fuzzer(\n            fuzzer_data,\n            fork,\n            num_blocks=num_blocks,\n            block_strategy=block_strategy,\n            block_time=block_time,\n        )\n\n        # Generate fixture\n        fixture = test.generate(\n            t8n=self.t8n,\n            fork=fork,\n            fixture_format=BlockchainFixture,\n        )\n\n        return fixture.model_dump(exclude_none=True, by_alias=True, mode=\"json\")\n\n    def build_and_save(self, fuzzer_output: Dict[str, Any], output_path: Path) -> Path:\n        \"\"\"Build blocktest and save to file.\"\"\"\n        blocktest = self.build_blocktest(fuzzer_output)\n        fixtures = {\"fuzzer_generated_test\": blocktest}\n\n        with open(output_path, \"w\") as f:\n            json.dump(fixtures, f, indent=2)\n\n        return output_path\n\n\ndef build_blocktest_from_fuzzer(\n    fuzzer_data: Dict[str, Any], t8n: Optional[TransitionTool] = None\n) -> Dict[str, Any]:\n    \"\"\"Build blocktest from fuzzer output.\"\"\"\n    builder = BlocktestBuilder(t8n)\n    return builder.build_blocktest(fuzzer_data)\n"
  },
  {
    "path": "src/cli/fuzzer_bridge/cli.py",
    "content": "\"\"\"Command-line interface for the fuzzer bridge.\"\"\"\n\nimport json\nimport multiprocessing as mp\nfrom concurrent.futures import ProcessPoolExecutor, as_completed\nfrom functools import partial\nfrom pathlib import Path\nfrom typing import Any, Dict, Generator, Optional, Tuple\n\nimport click\nfrom rich.progress import BarColumn, Progress, TaskProgressColumn, TextColumn, TimeElapsedColumn\n\nfrom ethereum_clis import GethTransitionTool, TransitionTool\n\nfrom .blocktest_builder import BlocktestBuilder\n\n\ndef count_json_files(start_path: Path) -> int:\n    \"\"\"Count JSON files in directory.\"\"\"\n    return sum(1 for _ in start_path.rglob(\"*.json\"))\n\n\ndef get_input_files(input_path: Path) -> Generator[Path, None, None]:\n    \"\"\"Generate input file paths.\"\"\"\n    if input_path.is_file():\n        yield input_path\n    else:\n        yield from input_path.rglob(\"*.json\")\n\n\ndef generate_test_name(file_path: Path, index: int = 0) -> str:\n    \"\"\"Generate unique test name from file path.\"\"\"\n    stem = file_path.stem\n    if index > 0:\n        return f\"fuzzer_{stem}_{index}\"\n    return f\"fuzzer_{stem}\"\n\n\ndef process_single_file(\n    input_file: Path,\n    output_path: Path,\n    builder: BlocktestBuilder,\n    fork: Optional[str],\n    pretty: bool,\n    quiet: bool,\n    num_blocks: int = 1,\n    block_strategy: str = \"distribute\",\n    block_time: int = 12,\n    random_blocks: bool = False,\n) -> Dict[str, Any]:\n    \"\"\"Process a single fuzzer output file.\"\"\"\n    with open(input_file) as f:\n        fuzzer_data = json.load(f)\n\n    # Override fork if specified\n    if fork:\n        fuzzer_data[\"fork\"] = fork\n\n    # Determine number of blocks\n    if random_blocks:\n        from .blocktest_builder import choose_random_num_blocks\n\n        actual_num_blocks = choose_random_num_blocks(len(fuzzer_data.get(\"transactions\", [])))\n    else:\n        actual_num_blocks = num_blocks\n\n    # Build blocktest\n    blocktest = builder.build_blocktest(\n        fuzzer_data,\n        num_blocks=actual_num_blocks,\n        block_strategy=block_strategy,\n        block_time=block_time,\n    )\n    test_name = generate_test_name(input_file)\n    fixtures = {test_name: blocktest}\n\n    # Write output\n    output_file = output_path / f\"{input_file.stem}.json\"\n    with open(output_file, \"w\") as f:\n        if pretty:\n            json.dump(fixtures, f, indent=2)\n        else:\n            json.dump(fixtures, f)\n\n    if not quiet:\n        click.echo(f\"Generated: {output_file}\", err=True)\n\n    return fixtures\n\n\ndef process_single_file_worker(\n    file_info: Tuple[Path, Path],\n    fork: Optional[str],\n    pretty: bool,\n    merge: bool,\n    evm_bin: Optional[Path],\n    num_blocks: int = 1,\n    block_strategy: str = \"distribute\",\n    block_time: int = 12,\n    random_blocks: bool = False,\n) -> Tuple[Optional[Tuple[Path, Dict[str, Any]]], Optional[Tuple[Path, Exception]]]:\n    \"\"\"Process a single file in a worker process.\"\"\"\n    json_file_path, output_file = file_info\n\n    # Create transition tool and builder for this worker\n    t8n = GethTransitionTool(binary=evm_bin) if evm_bin else GethTransitionTool()\n    builder = BlocktestBuilder(t8n)\n\n    try:\n        with open(json_file_path) as f:\n            fuzzer_data = json.load(f)\n\n        # Override fork if specified\n        if fork:\n            fuzzer_data[\"fork\"] = fork\n\n        # Determine number of blocks\n        if random_blocks:\n            from .blocktest_builder import choose_random_num_blocks\n\n            actual_num_blocks = choose_random_num_blocks(len(fuzzer_data.get(\"transactions\", [])))\n        else:\n            actual_num_blocks = num_blocks\n\n        # Build blocktest\n        blocktest = builder.build_blocktest(\n            fuzzer_data,\n            num_blocks=actual_num_blocks,\n            block_strategy=block_strategy,\n            block_time=block_time,\n        )\n        test_name = generate_test_name(json_file_path)\n        fixtures = {test_name: blocktest}\n\n        if not merge:\n            # Write individual file preserving structure\n            output_file.parent.mkdir(parents=True, exist_ok=True)\n            with open(output_file, \"w\") as f:\n                if pretty:\n                    json.dump(fixtures, f, indent=2)\n                else:\n                    json.dump(fixtures, f)\n\n        return (json_file_path, fixtures), None\n    except Exception as e:\n        return None, (json_file_path, e)\n\n\ndef process_file_batch(\n    file_batch: list[Tuple[Path, Path]],\n    fork: Optional[str],\n    pretty: bool,\n    merge: bool,\n    evm_bin: Optional[Path],\n    num_blocks: int = 1,\n    block_strategy: str = \"distribute\",\n    block_time: int = 12,\n    random_blocks: bool = False,\n) -> Tuple[list[Tuple[Path, Dict[str, Any]]], list[Tuple[Path, Exception]]]:\n    \"\"\"Process a batch of files in a worker process.\"\"\"\n    # Create transition tool per worker\n    t8n = GethTransitionTool(binary=evm_bin) if evm_bin else GethTransitionTool()\n    builder = BlocktestBuilder(t8n)\n\n    results = []\n    errors = []\n\n    for json_file_path, rel_path in file_batch:\n        try:\n            with open(json_file_path) as f:\n                fuzzer_data = json.load(f)\n\n            # Override fork if specified\n            if fork:\n                fuzzer_data[\"fork\"] = fork\n\n            # Determine number of blocks\n            if random_blocks:\n                from .blocktest_builder import choose_random_num_blocks\n\n                actual_num_blocks = choose_random_num_blocks(\n                    len(fuzzer_data.get(\"transactions\", []))\n                )\n            else:\n                actual_num_blocks = num_blocks\n\n            # Build blocktest\n            blocktest = builder.build_blocktest(\n                fuzzer_data,\n                num_blocks=actual_num_blocks,\n                block_strategy=block_strategy,\n                block_time=block_time,\n            )\n            test_name = generate_test_name(json_file_path)\n            fixtures = {test_name: blocktest}\n\n            if not merge:\n                # Write individual file preserving structure\n                output_file = rel_path.with_suffix(\".json\")\n                output_file.parent.mkdir(parents=True, exist_ok=True)\n                with open(output_file, \"w\") as f:\n                    if pretty:\n                        json.dump(fixtures, f, indent=2)\n                    else:\n                        json.dump(fixtures, f)\n\n            results.append((json_file_path, fixtures))\n        except Exception as e:\n            errors.append((json_file_path, e))\n\n    return results, errors\n\n\ndef process_directory_parallel(\n    input_dir: Path,\n    output_dir: Path,\n    fork: Optional[str],\n    pretty: bool,\n    merge: bool,\n    quiet: bool,\n    evm_bin: Optional[Path],\n    num_workers: Optional[int] = None,\n    num_blocks: int = 1,\n    block_strategy: str = \"distribute\",\n    block_time: int = 12,\n    random_blocks: bool = False,\n) -> None:\n    \"\"\"Process directory of fuzzer output files with parallel processing.\"\"\"\n    all_fixtures = {}\n\n    # Collect all files to process\n    files_to_process = []\n    for json_file_path in get_input_files(input_dir):\n        rel_path = json_file_path.relative_to(input_dir)\n        output_file = output_dir / rel_path\n        files_to_process.append((json_file_path, output_file))\n\n    file_count = len(files_to_process)\n    if file_count == 0:\n        if not quiet:\n            click.echo(\"No JSON files found to process.\", err=True)\n        return\n\n    # Determine optimal number of workers\n    if num_workers is None:\n        num_workers = min(mp.cpu_count(), max(1, file_count // 10))\n\n    success_count = 0\n    error_count = 0\n\n    with Progress(\n        TextColumn(\"[bold cyan]{task.fields[filename]}\", justify=\"left\"),\n        BarColumn(bar_width=None, complete_style=\"green3\", finished_style=\"bold green3\"),\n        TaskProgressColumn(),\n        TextColumn(\"[dim]({task.fields[workers]} workers)[/dim]\"),\n        TimeElapsedColumn(),\n        expand=True,\n        disable=quiet,\n    ) as progress:\n        task_id = progress.add_task(\n            \"Processing\", total=file_count, filename=\"Starting...\", workers=num_workers\n        )\n\n        # Process files individually in parallel (better progress tracking)\n        process_func = partial(\n            process_single_file_worker,\n            fork=fork,\n            pretty=pretty,\n            merge=merge,\n            evm_bin=evm_bin,\n            num_blocks=num_blocks,\n            block_strategy=block_strategy,\n            block_time=block_time,\n            random_blocks=random_blocks,\n        )\n\n        with ProcessPoolExecutor(max_workers=num_workers) as executor:\n            # Submit all files to the pool\n            futures_to_files = {\n                executor.submit(process_func, file_info): file_info[0]\n                for file_info in files_to_process\n            }\n\n            # Process completions as they happen for real-time progress\n            for future in as_completed(futures_to_files):\n                file_path = futures_to_files[future]\n\n                # Update progress with current file\n                rel_path = file_path.relative_to(input_dir)\n                display_name = str(rel_path)\n                if len(display_name) > 40:\n                    display_name = \"...\" + display_name[-37:]\n\n                try:\n                    result, error = future.result()\n\n                    if result:\n                        success_count += 1\n                        _, fixtures = result\n                        if merge:\n                            all_fixtures.update(fixtures)\n                    elif error:\n                        error_count += 1\n                        error_file, exception = error\n                        if not quiet:\n                            progress.console.print(\n                                f\"[red]Error processing {error_file}: {exception}[/red]\"\n                            )\n\n                    # Update progress bar\n                    progress.update(task_id, advance=1, filename=display_name, workers=num_workers)\n\n                except Exception as e:\n                    error_count += 1\n                    if not quiet:\n                        progress.console.print(f\"[red]Worker error for {file_path}: {e}[/red]\")\n                    progress.update(task_id, advance=1, filename=display_name)\n\n        # Write merged file if requested\n        if merge and all_fixtures:\n            merged_file = output_dir / \"merged_fixtures.json\"\n            with open(merged_file, \"w\") as f:\n                if pretty:\n                    json.dump(all_fixtures, f, indent=2)\n                else:\n                    json.dump(all_fixtures, f)\n            if not quiet:\n                progress.console.print(f\"[green]Merged fixtures written to: {merged_file}[/green]\")\n\n        # Final status\n        if not quiet:\n            emoji = \"✅\" if error_count == 0 else \"⚠️\"\n            progress.update(\n                task_id,\n                completed=file_count,\n                filename=f\"Done! {success_count} succeeded, {error_count} failed {emoji}\",\n                workers=num_workers,\n            )\n\n\ndef process_directory(\n    input_dir: Path,\n    output_dir: Path,\n    builder: BlocktestBuilder,\n    fork: Optional[str],\n    pretty: bool,\n    merge: bool,\n    quiet: bool,\n    num_blocks: int = 1,\n    block_strategy: str = \"distribute\",\n    block_time: int = 12,\n    random_blocks: bool = False,\n) -> None:\n    \"\"\"Process directory of fuzzer output files.\"\"\"\n    all_fixtures = {}\n    file_count = count_json_files(input_dir) if not quiet else 0\n    success_count = 0\n    error_count = 0\n\n    with Progress(\n        TextColumn(\"[bold cyan]{task.fields[filename]}\", justify=\"left\"),\n        BarColumn(bar_width=None, complete_style=\"green3\", finished_style=\"bold green3\"),\n        TaskProgressColumn(),\n        TimeElapsedColumn(),\n        expand=True,\n        disable=quiet,\n    ) as progress:\n        task_id = progress.add_task(\"Processing\", total=file_count, filename=\"...\")\n\n        for json_file_path in get_input_files(input_dir):\n            # Preserve directory structure\n            rel_path = json_file_path.relative_to(input_dir)\n            display_name = str(rel_path)\n            if len(display_name) > 40:\n                display_name = \"...\" + display_name[-37:]\n\n            progress.update(task_id, advance=1, filename=display_name)\n\n            try:\n                with open(json_file_path) as f:\n                    fuzzer_data = json.load(f)\n\n                # Override fork if specified\n                if fork:\n                    fuzzer_data[\"fork\"] = fork\n\n                # Determine number of blocks\n                if random_blocks:\n                    from .blocktest_builder import choose_random_num_blocks\n\n                    actual_num_blocks = choose_random_num_blocks(\n                        len(fuzzer_data.get(\"transactions\", []))\n                    )\n                else:\n                    actual_num_blocks = num_blocks\n\n                # Build blocktest\n                blocktest = builder.build_blocktest(\n                    fuzzer_data,\n                    num_blocks=actual_num_blocks,\n                    block_strategy=block_strategy,\n                    block_time=block_time,\n                )\n                test_name = generate_test_name(json_file_path)\n\n                if merge:\n                    # Add to merged fixtures\n                    all_fixtures[test_name] = blocktest\n                else:\n                    # Write individual file preserving structure\n                    output_file = output_dir / rel_path.with_suffix(\".json\")\n                    output_file.parent.mkdir(parents=True, exist_ok=True)\n                    fixtures = {test_name: blocktest}\n                    with open(output_file, \"w\") as f:\n                        if pretty:\n                            json.dump(fixtures, f, indent=2)\n                        else:\n                            json.dump(fixtures, f)\n\n                success_count += 1\n\n            except Exception as e:\n                error_count += 1\n                if not quiet:\n                    progress.console.print(f\"[red]Error processing {json_file_path}: {e}[/red]\")\n\n        # Write merged file if requested\n        if merge and all_fixtures:\n            merged_file = output_dir / \"merged_fixtures.json\"\n            with open(merged_file, \"w\") as f:\n                if pretty:\n                    json.dump(all_fixtures, f, indent=2)\n                else:\n                    json.dump(all_fixtures, f)\n            if not quiet:\n                progress.console.print(f\"[green]Merged fixtures written to: {merged_file}[/green]\")\n\n        # Final status\n        if not quiet:\n            emoji = \"✅\" if error_count == 0 else \"⚠️\"\n            progress.update(\n                task_id,\n                completed=file_count,\n                filename=f\"Done! {success_count} succeeded, {error_count} failed {emoji}\",\n            )\n\n\ndef batch_mode(\n    fork: Optional[str],\n    evm_bin: Optional[Path],\n    pretty: bool,\n    num_blocks: int,\n    block_strategy: str,\n    block_time: int,\n    random_blocks: bool,\n) -> None:\n    \"\"\"\n    Persistent batch processing mode.\n\n    Reads input/output pairs from stdin, processes each, and outputs status\n    to stdout. Protocol:\n    - INPUT (stdin): <input_json_path> <output_directory>\n    - OUTPUT (stdout): DONE <generated_blocktest_path> or ERROR <error_message>\n    \"\"\"\n    import sys\n    import traceback\n\n    # Pre-initialize transition tool and builder once for performance\n    t8n: TransitionTool\n    if evm_bin:\n        t8n = GethTransitionTool(binary=evm_bin)\n    else:\n        t8n = GethTransitionTool()\n\n    builder = BlocktestBuilder(t8n)\n\n    # Write ready signal to stderr for debugging\n    print(\"Batch mode initialized. Ready to process files.\", file=sys.stderr, flush=True)\n\n    while True:\n        try:\n            # Read line from stdin\n            line = sys.stdin.readline()\n            if not line:  # EOF\n                break\n\n            line = line.strip()\n            if not line:\n                continue\n\n            # Parse input/output paths\n            parts = line.split()\n            if len(parts) != 2:\n                print(f\"ERROR: invalid input format: {line}\", flush=True)\n                continue\n\n            input_path_str, output_dir_str = parts\n            input_path = Path(input_path_str)\n            output_dir = Path(output_dir_str)\n\n            # Process the file\n            try:\n                # Read fuzzer input\n                if not input_path.exists():\n                    print(f\"ERROR: file not found: {input_path}\", flush=True)\n                    continue\n\n                with open(input_path) as f:\n                    fuzzer_data = json.load(f)\n\n                # Override fork if specified\n                if fork:\n                    fuzzer_data[\"fork\"] = fork\n\n                # Determine number of blocks\n                if random_blocks:\n                    from .blocktest_builder import choose_random_num_blocks\n\n                    actual_num_blocks = choose_random_num_blocks(\n                        len(fuzzer_data.get(\"transactions\", []))\n                    )\n                else:\n                    actual_num_blocks = num_blocks\n\n                # Build blocktest (existing logic)\n                blocktest = builder.build_blocktest(\n                    fuzzer_data,\n                    num_blocks=actual_num_blocks,\n                    block_strategy=block_strategy,\n                    block_time=block_time,\n                )\n\n                # Generate test name\n                test_name = generate_test_name(input_path)\n                fixtures = {test_name: blocktest}\n\n                # Write output\n                output_dir.mkdir(parents=True, exist_ok=True)\n                input_stem = input_path.stem\n                output_file = output_dir / f\"{input_stem}.json\"\n\n                with open(output_file, \"w\") as f:\n                    if pretty:\n                        json.dump(fixtures, f, indent=2)\n                    else:\n                        json.dump(fixtures, f)\n\n                # Report success (CRITICAL: must flush)\n                print(f\"DONE {output_file}\", flush=True)\n\n            except FileNotFoundError:\n                print(f\"ERROR: file not found: {input_path}\", flush=True)\n            except json.JSONDecodeError as e:\n                print(f\"ERROR: invalid JSON in {input_path}: {e}\", flush=True)\n                # Log full traceback to stderr for debugging\n                traceback.print_exc(file=sys.stderr)\n            except Exception as e:\n                print(f\"ERROR: conversion failed for {input_path}: {e}\", flush=True)\n                # Log full traceback to stderr for debugging\n                traceback.print_exc(file=sys.stderr)\n\n        except KeyboardInterrupt:\n            break\n        except Exception as e:\n            # Catch-all for unexpected errors in the main loop\n            print(f\"ERROR: unexpected error in batch loop: {e}\", flush=True)\n            traceback.print_exc(file=sys.stderr)\n\n\n@click.command()\n@click.argument(\n    \"input_path\",\n    type=click.Path(exists=True, dir_okay=True, file_okay=True, path_type=Path),\n    required=False,\n)\n@click.argument(\n    \"output_path\",\n    type=click.Path(dir_okay=True, file_okay=False, path_type=Path),\n    required=False,\n)\n@click.option(\n    \"--fork\",\n    default=None,\n    help=\"Override fork specified in fuzzer output\",\n)\n@click.option(\n    \"--evm-bin\",\n    type=click.Path(exists=True, path_type=Path),\n    help=\"Path to evm binary for transition tool\",\n)\n@click.option(\n    \"--pretty\",\n    is_flag=True,\n    help=\"Pretty-print JSON output\",\n)\n@click.option(\n    \"--merge\",\n    is_flag=True,\n    help=\"Merge all tests into a single output file\",\n)\n@click.option(\n    \"--quiet\",\n    is_flag=True,\n    help=\"Suppress progress output\",\n)\n@click.option(\n    \"--parallel/--no-parallel\",\n    default=True,\n    help=\"Enable/disable parallel processing (default: enabled)\",\n)\n@click.option(\n    \"-n\",\n    \"--workers\",\n    type=int,\n    default=None,\n    help=\"Number of parallel workers (default: auto-detect based on CPU count)\",\n)\n@click.option(\n    \"-b\",\n    \"--num-blocks\",\n    type=int,\n    default=1,\n    help=\"Number of blocks to generate from fuzzer input (default: 1)\",\n)\n@click.option(\n    \"--block-strategy\",\n    type=click.Choice([\"distribute\", \"first-block\"]),\n    default=\"distribute\",\n    help=\"Transaction distribution strategy: 'distribute' splits txs evenly, \"\n    \"'first-block' puts all txs in first block (default: distribute)\",\n)\n@click.option(\n    \"--block-time\",\n    type=int,\n    default=12,\n    help=\"Seconds between blocks (default: 12)\",\n)\n@click.option(\n    \"--random-blocks\",\n    is_flag=True,\n    help=\"Randomly choose number of blocks (1 to min(num_txs, 10))\",\n)\n@click.option(\n    \"--batch\",\n    is_flag=True,\n    help=\"Persistent batch mode: read file paths from stdin, output to stdout\",\n)\ndef main(\n    input_path: Optional[Path],\n    output_path: Optional[Path],\n    fork: Optional[str],\n    evm_bin: Optional[Path],\n    pretty: bool,\n    merge: bool,\n    quiet: bool,\n    parallel: bool,\n    workers: Optional[int],\n    num_blocks: int,\n    block_strategy: str,\n    block_time: int,\n    random_blocks: bool,\n    batch: bool,\n) -> None:\n    \"\"\"\n    Convert fuzzer output to valid blocktest fixtures.\n\n    INPUT_PATH: Input JSON file or directory (not required in --batch mode)\n    OUTPUT_PATH: Output directory for fixtures (not required in --batch mode)\n\n    In batch mode (--batch), reads input/output pairs from stdin.\n    \"\"\"\n    # Batch mode: persistent stdin/stdout processing\n    if batch:\n        batch_mode(\n            fork=fork,\n            evm_bin=evm_bin,\n            pretty=pretty,\n            num_blocks=num_blocks,\n            block_strategy=block_strategy,\n            block_time=block_time,\n            random_blocks=random_blocks,\n        )\n        return\n\n    # Standard mode: require input_path and output_path\n    if input_path is None or output_path is None:\n        raise click.UsageError(\n            \"INPUT_PATH and OUTPUT_PATH are required when not using --batch mode\"\n        )\n    # Create transition tool\n    t8n: TransitionTool\n    if evm_bin:\n        t8n = GethTransitionTool(binary=evm_bin)\n    else:\n        t8n = GethTransitionTool()\n\n    # Create builder\n    builder = BlocktestBuilder(t8n)\n\n    # Ensure output directory exists\n    output_path.mkdir(parents=True, exist_ok=True)\n\n    # Process input\n    if input_path.is_file():\n        # Single file processing\n        process_single_file(\n            input_path,\n            output_path,\n            builder,\n            fork,\n            pretty,\n            quiet,\n            num_blocks,\n            block_strategy,\n            block_time,\n            random_blocks,\n        )\n    else:\n        # Directory processing with optional parallel mode\n        if parallel:\n            process_directory_parallel(\n                input_path,\n                output_path,\n                fork,\n                pretty,\n                merge,\n                quiet,\n                evm_bin,\n                workers,\n                num_blocks,\n                block_strategy,\n                block_time,\n                random_blocks,\n            )\n        else:\n            process_directory(\n                input_path,\n                output_path,\n                builder,\n                fork,\n                pretty,\n                merge,\n                quiet,\n                num_blocks,\n                block_strategy,\n                block_time,\n                random_blocks,\n            )\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "src/cli/fuzzer_bridge/converter.py",
    "content": "\"\"\"\nConverter module for transforming fuzzer DTOs to EEST domain models.\n\nThis module performs explicit transformation from fuzzer's\nJSON-RPC format (captured in DTOs) to EEST's internal domain\nmodels (Transaction, Account, etc.).\n\nKey Responsibilities:\n1. Field mapping (gas → gas_limit, from → sender, etc.)\n2. Creating EOA objects from private keys\n3. Building proper EEST domain models with all required context\n4. Preventing TestAddress pollution by setting sender\n   BEFORE model_post_init\n\"\"\"\n\nfrom typing import Dict\n\nfrom ethereum_test_base_types import Address, Hash, HexNumber\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_specs import BlockchainTest\nfrom ethereum_test_tools import Account, AuthorizationTuple, Block, Transaction\nfrom ethereum_test_types import Alloc, Environment\nfrom ethereum_test_types.account_types import EOA\n\nfrom .models import (\n    FuzzerAccountInput,\n    FuzzerAuthorizationInput,\n    FuzzerOutput,\n    FuzzerTransactionInput,\n)\n\n\ndef fuzzer_account_to_eest_account(fuzzer_account: FuzzerAccountInput) -> Account:\n    \"\"\"\n    Convert fuzzer account DTO to EEST Account domain model.\n\n    Args:\n        fuzzer_account: Raw account data from fuzzer\n\n    Returns:\n        EEST Account ready for pre-state\n\n    \"\"\"\n    return Account(\n        balance=fuzzer_account.balance,\n        nonce=fuzzer_account.nonce,\n        code=fuzzer_account.code,\n        storage=fuzzer_account.storage,\n    )\n\n\ndef fuzzer_authorization_to_eest(\n    fuzzer_auth: FuzzerAuthorizationInput,\n) -> AuthorizationTuple:\n    \"\"\"\n    Convert fuzzer authorization DTO to EEST AuthorizationTuple.\n\n    Args:\n        fuzzer_auth: Raw authorization data from fuzzer\n\n    Returns:\n        EEST AuthorizationTuple for EIP-7702 transactions\n\n    \"\"\"\n    return AuthorizationTuple(\n        chain_id=fuzzer_auth.chain_id,\n        address=fuzzer_auth.address,\n        nonce=fuzzer_auth.nonce,\n        v=fuzzer_auth.v,\n        r=fuzzer_auth.r,\n        s=fuzzer_auth.s,\n    )\n\n\ndef fuzzer_transaction_to_eest_transaction(\n    fuzzer_tx: FuzzerTransactionInput,\n    sender_eoa: EOA,\n) -> Transaction:\n    \"\"\"\n    Convert fuzzer transaction DTO to EEST Transaction domain model.\n\n    This function performs explicit field mapping and MUST set sender BEFORE\n    calling Transaction constructor to prevent TestAddress injection.\n\n    Key Mappings:\n    - fuzzer_tx.gas → transaction.gas_limit (JSON-RPC → EEST naming)\n    - fuzzer_tx.from_ → sender_eoa (Address → EOA with private key)\n    - fuzzer_tx.data → transaction.data (same field, explicit for clarity)\n\n    Args:\n        fuzzer_tx: Raw transaction data from fuzzer\n        sender_eoa: EOA object created from private key (prevents TestAddress)\n\n    Returns:\n        EEST Transaction ready for block generation\n\n    \"\"\"\n    # Build authorization list if present\n    auth_list = None\n    if fuzzer_tx.authorization_list:\n        auth_list = [fuzzer_authorization_to_eest(auth) for auth in fuzzer_tx.authorization_list]\n\n    # Create Transaction with sender set BEFORE model_post_init runs\n    # This prevents Transaction.model_post_init from injecting TestAddress\n    return Transaction(\n        sender=sender_eoa,  # ✓ Set explicitly to prevent TestAddress\n        to=fuzzer_tx.to,\n        gas_limit=fuzzer_tx.gas,  # ✓ Explicit mapping: gas → gas_limit\n        gas_price=fuzzer_tx.gas_price,\n        max_fee_per_gas=fuzzer_tx.max_fee_per_gas,\n        max_priority_fee_per_gas=fuzzer_tx.max_priority_fee_per_gas,\n        nonce=fuzzer_tx.nonce,\n        data=fuzzer_tx.data,\n        value=fuzzer_tx.value,\n        access_list=fuzzer_tx.access_list,\n        blob_versioned_hashes=fuzzer_tx.blob_versioned_hashes,\n        max_fee_per_blob_gas=fuzzer_tx.max_fee_per_blob_gas,\n        authorization_list=auth_list,\n    )\n\n\ndef create_sender_eoa_map(accounts: Dict[Address, FuzzerAccountInput]) -> Dict[Address, EOA]:\n    \"\"\"\n    Create map of addresses to EOA objects from accounts with private keys.\n\n    Args:\n        accounts: Dictionary of address to fuzzer account data\n\n    Returns:\n        Dictionary mapping addresses to EOA objects for transaction signing\n\n    Raises:\n        AssertionError: If private key doesn't match the account address\n\n    \"\"\"\n    senders: Dict[Address, EOA] = {}\n\n    for addr, account in accounts.items():\n        if account.private_key is None:\n            continue\n\n        # Create EOA from private key\n        sender = EOA(key=account.private_key)\n\n        # Verify private key matches address (safety check)\n        assert Address(sender) == addr, (\n            f\"Private key for account {addr} does not match derived address {sender}\"\n        )\n\n        senders[addr] = sender\n\n    return senders\n\n\ndef blockchain_test_from_fuzzer(\n    fuzzer_output: FuzzerOutput,\n    fork: Fork,\n    num_blocks: int = 1,\n    block_strategy: str = \"distribute\",\n    block_time: int = 12,\n) -> BlockchainTest:\n    \"\"\"\n    Convert fuzzer output to BlockchainTest instance.\n\n    This is the main entry point for fuzzer-to-EEST conversion.\n    It orchestrates:\n    1. Parsing and validation (already done by FuzzerOutput DTO)\n    2. Creating EOA objects from private keys\n    3. Converting DTOs to domain models\n    4. Building blocks and test structure\n\n    Args:\n        fuzzer_output: Parsed and validated fuzzer output (DTO)\n        fork: Fork to use for the test\n        num_blocks: Number of blocks to generate\n        block_strategy: How to distribute transactions across blocks\n                       - \"distribute\": Split evenly maintaining\n                         nonce order\n                       - \"first-block\": All transactions in first\n                         block\n        block_time: Seconds between block timestamps\n\n    Returns:\n        BlockchainTest instance ready for fixture generation\n\n    Raises:\n        AssertionError: If invariants are violated\n                       (sender validation, etc.)\n\n    \"\"\"\n    # Step 1: Convert accounts to EEST Account domain models\n    pre_dict: Dict[Address, Account | None] = {}\n    for addr, fuzzer_account in fuzzer_output.accounts.items():\n        pre_dict[addr] = fuzzer_account_to_eest_account(fuzzer_account)\n    pre = Alloc(pre_dict)\n\n    # Step 2: Create EOA map for transaction signing\n    sender_eoa_map = create_sender_eoa_map(fuzzer_output.accounts)\n\n    # Step 3: Convert transactions to EEST Transaction domain models\n    eest_transactions: list[Transaction] = []\n    for fuzzer_tx in fuzzer_output.transactions:\n        # Verify sender has private key\n        assert fuzzer_tx.from_ in sender_eoa_map, (\n            f\"Sender {fuzzer_tx.from_} not found in accounts with private keys\"\n        )\n\n        # Convert with explicit sender (prevents TestAddress injection)\n        eest_tx = fuzzer_transaction_to_eest_transaction(\n            fuzzer_tx,\n            sender_eoa=sender_eoa_map[fuzzer_tx.from_],\n        )\n        eest_transactions.append(eest_tx)\n\n    # Step 4: Build genesis environment\n    env = fuzzer_output.env\n    genesis_env = Environment(\n        fee_recipient=env.fee_recipient,\n        difficulty=0,  # Post-merge\n        gas_limit=int(env.gas_limit),\n        number=0,\n        timestamp=HexNumber(int(env.timestamp) - 12),\n        prev_randao=env.prev_randao or Hash(0),\n        base_fee_per_gas=env.base_fee_per_gas if env.base_fee_per_gas else None,\n        excess_blob_gas=env.excess_blob_gas if env.excess_blob_gas else None,\n        blob_gas_used=env.blob_gas_used if env.blob_gas_used else None,\n    ).set_fork_requirements(fork)\n\n    # Step 5: Distribute transactions across blocks\n    blocks = _distribute_transactions_to_blocks(\n        eest_transactions,\n        num_blocks,\n        block_strategy,\n        block_time,\n        env,\n        fuzzer_output.parent_beacon_block_root,\n    )\n\n    return BlockchainTest(\n        pre=pre,\n        blocks=blocks,\n        post={},  # Post-state verification can be added later\n        genesis_environment=genesis_env,\n        chain_id=fuzzer_output.chain_id,\n    )\n\n\ndef _distribute_transactions_to_blocks(\n    transactions: list[Transaction],\n    num_blocks: int,\n    strategy: str,\n    block_time: int,\n    base_env: Environment,\n    parent_beacon_block_root: Hash | None,\n) -> list[Block]:\n    \"\"\"\n    Distribute transactions across multiple blocks.\n\n    Args:\n        transactions: List of EEST Transaction objects (ready for execution)\n        num_blocks: Number of blocks to create\n        strategy: Distribution strategy (\"distribute\" or \"first-block\")\n        block_time: Seconds between blocks\n        base_env: Base environment for first block\n        parent_beacon_block_root: Beacon root (only for first block)\n\n    Returns:\n        List of Block objects\n\n    \"\"\"\n    if strategy == \"first-block\":\n        # All transactions in first block, rest empty\n        tx_distribution = [transactions] + [[] for _ in range(num_blocks - 1)]\n    elif strategy == \"distribute\":\n        # Split transactions evenly maintaining nonce order\n        if not transactions:\n            tx_distribution = [[] for _ in range(num_blocks)]\n        else:\n            result = []\n            chunk_size = len(transactions) // num_blocks\n            remainder = len(transactions) % num_blocks\n\n            start = 0\n            for i in range(num_blocks):\n                # Distribute remainder across first blocks\n                current_chunk_size = chunk_size + (1 if i < remainder else 0)\n                end = start + current_chunk_size\n                result.append(transactions[start:end])\n                start = end\n\n            tx_distribution = result\n    else:\n        raise ValueError(f\"Unknown block strategy: {strategy}\")\n\n    # Create blocks with incrementing timestamps\n    base_timestamp = int(base_env.timestamp)\n    blocks = []\n    for i, block_txs in enumerate(tx_distribution):\n        blocks.append(\n            Block(\n                txs=block_txs,\n                timestamp=base_timestamp + (i * block_time),\n                fee_recipient=base_env.fee_recipient,\n                parent_beacon_block_root=parent_beacon_block_root if i == 0 else None,\n            )\n        )\n\n    return blocks\n"
  },
  {
    "path": "src/cli/fuzzer_bridge/examples/README.md",
    "content": "# Fuzzer Bridge Examples\n\nThis directory contains example fuzzer outputs in the v2.0 JSON format. These examples demonstrate the comprehensive transaction coverage generated by the fuzzer and serve as test cases for the fuzzer bridge implementation.\n\n## Format Overview\n\nAll examples use fuzzer output format v2.0 with the following structure:\n\n```json\n{\n  \"version\": \"2.0\",\n  \"fork\": \"Osaka\",\n  \"chainId\": \"0x01\",\n  \"accounts\": { ... },\n  \"transactions\": [ ... ],\n  \"env\": { ... },\n  \"parentBeaconBlockRoot\": \"0x...\"\n}\n```\n\n## Example Files\n\n### comprehensive_smallest.json (56K)\n- **Size**: Smallest example (56K)\n- **Transactions**: 17 transactions\n- **Accounts**: 25-26 accounts with private keys\n- **Transaction Types**: Legacy, EIP-1559, EIP-4844 (blobs), EIP-7702 (authorization lists)\n- **Features**: Parent beacon block root (EIP-4788)\n- **Use Case**: Minimal comprehensive example for quick testing\n\n### comprehensive_medium_1.json (62K)\n- **Size**: Medium-sized example (62K)\n- **Transactions**: 17 transactions\n- **Accounts**: 25-26 accounts\n- **Transaction Types**: Full spectrum including blob transactions (6 blob hashes per tx)\n- **Authorization Lists**: 5 authorization tuples per EIP-7702 transaction\n- **Use Case**: Balanced example with typical transaction data sizes\n\n### comprehensive_medium_2.json (66K)\n- **Size**: Medium-sized example (66K)\n- **Transactions**: 17 transactions\n- **Accounts**: 25-26 accounts\n- **Transaction Types**: All major transaction types\n- **Features**: Variety of calldata sizes (2-400 bytes)\n- **Use Case**: Testing different data payload sizes\n\n### comprehensive_large.json (70K)\n- **Size**: Large example (70K)\n- **Transactions**: 17 transactions\n- **Accounts**: 25-26 accounts\n- **Transaction Types**: Complete coverage\n- **Features**: Larger calldata payloads (up to 600 bytes)\n- **Use Case**: Testing with substantial transaction data\n\n### comprehensive_largest.json (74K)\n- **Size**: Largest example (74K)\n- **Transactions**: 17 transactions\n- **Accounts**: 25-26 accounts\n- **Transaction Types**: All types including largest blob transactions\n- **Features**: Maximum calldata sizes (up to 690 bytes)\n- **Use Case**: Stress testing with largest transaction payloads\n\n## Common Features Across All Examples\n\nAll examples include:\n\n1. **EIP-1559 Transactions**: Dynamic fee transactions with `maxFeePerGas` and `maxPriorityFeePerGas`\n2. **EIP-4844 Blob Transactions**: Transactions with `blobVersionedHashes` and `maxFeePerBlobGas`\n3. **EIP-7702 Set-Code Transactions**: Transactions with `authorizationList` containing signed authorization tuples\n4. **Legacy Transactions**: Traditional transactions with `gasPrice`\n5. **EIP-4788 Support**: `parentBeaconBlockRoot` set in environment\n6. **Private Keys**: All sender accounts include `privateKey` field for transaction signing\n7. **Storage**: Accounts with non-empty storage mappings\n8. **Code**: Accounts with deployed bytecode\n\n## Field Mappings (Fuzzer JSON-RPC → EEST)\n\nThe fuzzer uses standard Ethereum JSON-RPC transaction format:\n\n| Fuzzer Field | EEST Field | Description |\n|-------------|-----------|-------------|\n| `gas` | `gas_limit` | Gas limit for transaction |\n| `data` | `data` | Transaction calldata |\n| `from` | `sender` | Transaction sender (mapped to EOA) |\n| `gasPrice` | `gas_price` | Gas price (legacy transactions) |\n| `maxFeePerGas` | `max_fee_per_gas` | Max fee per gas (EIP-1559) |\n| `maxPriorityFeePerGas` | `max_priority_fee_per_gas` | Max priority fee (EIP-1559) |\n| `blobVersionedHashes` | `blob_versioned_hashes` | Blob hashes (EIP-4844) |\n| `maxFeePerBlobGas` | `max_fee_per_blob_gas` | Max blob fee (EIP-4844) |\n| `authorizationList` | `authorization_list` | Authorization tuples (EIP-7702) |\n\n## Usage\n\nThese examples can be used with the fuzzer bridge CLI:\n\n```bash\n# Convert a single example to blockchain test\nuv run python -m cli.fuzzer_bridge.cli \\\n    --input src/cli/fuzzer_bridge/examples/comprehensive_medium_1.json \\\n    --output /tmp/blocktest_output\n\n# Batch convert all examples\nfor example in src/cli/fuzzer_bridge/examples/*.json; do\n    uv run python -m cli.fuzzer_bridge.cli \\\n        --input \"$example\" \\\n        --output \"/tmp/$(basename \"$example\" .json)\"\ndone\n```\n\n## Old Examples\n\nPrevious examples (before format evolution and bug fixes) are preserved in the `old_examples/` subdirectory for reference.\n\n## Generation\n\nThese examples were generated using the fuzzer with comprehensive transaction coverage enabled. The fuzzer automatically generates:\n\n- Multiple transaction types per test\n- Accounts with various states (empty, funded, with code, with storage)\n- Realistic transaction ordering and nonce sequences\n- Private keys for all sender accounts\n- Post-merge environment (PoS consensus)\n\n## Testing Coverage\n\nEach example provides test coverage for:\n\n- ✅ Transaction parsing (all field types)\n- ✅ Account state initialization\n- ✅ EOA creation from private keys\n- ✅ Gas limit calculations\n- ✅ Blob transaction handling\n- ✅ Authorization list processing\n- ✅ Environment setup (including beacon root)\n- ✅ Multi-transaction block generation\n\n## Notes\n\n- All examples use Osaka fork\n- All examples use chain ID 1 (mainnet)\n- All transactions have sufficient gas (16,000,000 gas limit)\n- All sender accounts have private keys for signing\n- Environment includes realistic post-merge values (difficulty=0, prevRandao set)\n"
  },
  {
    "path": "src/cli/fuzzer_bridge/examples/comprehensive_large.json",
    "content": "{\n  \"accounts\": {\n    \"0x000000000000000000000000000000000000000d\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x03D28A8a81F218F63CCCc11AD16b94f7f787b6d9\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x6517fa85aafd83a02f88fe864d93249c357cce975bd1f35d0b0430a901613f76\",\n      \"storage\": {}\n    },\n    \"0x18665208d71eAF07c959cB6d2b263aCE3eF24042\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0xaf09231cd0ab58828b41ee0ba14866d944b955fbc80243a5bf0bc8c86c664552\",\n      \"storage\": {}\n    },\n    \"0x1d891f21BB2a55cD9EC7a32478f7c74d757c4876\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x6f19fa3b5cbcf160be11cbc1ccfa69a3a86000527f9f374ddd4b02789440d795b6a2fcfda039b83d18945750af9cee8ebacc1c27716020526f014a651f7ac467a9f4f1041275a058386040527f03088f4d23e2585886dd9918f916bd25f3a9f62b6bff62fc04a5770726fdfea16060526f19f7092f2954ea173b6f38c95f4ab8f96080527f871c73b32e1e1c5da7ba9025c14e5ba83e0c6762b66e433f8f9046629488f2b860a0526f0c1303e46eb6b78c665ea65f470ac64660c0527fa6f6149c0b9505c50046c6de2883a22579de92b151f5ab7938e9c5c269a09e3960e0526080600061010060006046600b7ffe95b06b0f681723791f4161b4947e090dbfd8783baf00b3a24bc8853dcf0196f26000556000516001556020516002556040516003556060516004556f0fb6f07b2eab53e6d95b3eea7c5f15256000527f9ff4e6b8f9784adec046dea1be26fd44754d6a27c6a2b1a1d9e44930cbd311306020526f03c0d62e127d7ca9f051646a2c401ede6040527ff683bbc13510e88c04488ced8f6b688a79584ba6dbe3debed06ec8de8a23f54c6060527f85594d4af90ecf8adb547e8c0e1f2022770dbab52d41e5d7209033a36c7b9f8d6080526f158333a1f76f866236773aa642362ad060a0527e5c4adc636c7f0ef15a9de64bbde05b7dc19d3d71c1828c7c56480a761d207c60c0526f102eaee88ca53422c1d961278654cd0360e0527f0798cc38d9234d1ab9645b653fa58fef75b9bbb4fad130010abcdf8a99900f7a610100527f713197f47d0b27493f5b80e43abe59e6052e876076598c449fd315801a093b59610120526f0bb2d551f91290b5b9fce1e398dbc4cb610140527ff6cca7cc4e69b5da29f4fa52c6581aed6fc44bb1f3c0536eb504b7d221a06447610160526f061d80c19532c14099c7c684e2ccb174610180527f57228c4901d5528ebbf0c4f47dae28c3d280068e31c107be7b4e6eda8f4ddc586101a0527f1affd06170d301f6ebafc685f05a67ba51aa136ef86f6146ea179898a8dabd546101c052608060006101e06000600c7ffd0e4ef71bd81883826cfc6172ac1a2331705d36e13ad54044fbbd2f7509d1f7f46005556000516006556020516007556040516008556060516009556f08ba8a0468fb1e41a77dc4760a4973ee6000527fe6f8dd14f7ffe63b258b76ba3945fc3212dd597342360542875ef842e0b0b2196020526f0fd65a1aed9d10788788f8c8116f56af6040527f3e4297c9aeb8329e8f90cb0afef8148320439f16ebdf6680516f5d27928a1a086060526f145d501508e98e9fdc70d4076213d6146080527f14d82b1819adbaed7aa9a6ed3877d698e515829d121b61a40d224480af7a667b60a0526f1460669ebf2d0c5804bfc4ea1e662a3a60c0527fa675412270d299cdcc4fb1af786e51bde0f9c7f2fa5a48dcd7770aa3086ca85660e0526f0bd37d392b9da52284890146de3e897d610100527f9b414b75b7fbb851dfbba872378f09666e83e15c4039cb9dd41a65ecf610234c610120526f07f750deef22c9b32314fcfd4d541929610140527f2a89d9e69169ce89d55caae0d5bfb34bae1bfdd51fdead179761953c3d68488d610160526f1d1becb9ed60428375c9cba1b1e5deda610180527f6694879571ee1b0ac9e12d815b34f005639cd4214d10865159dd2a14459ea1c56101a0526f0fff5920c6dca137b60970bb9c2cbbca6101c0527fab9d343b23a24d09491af51286c567ea4e0d802d0d17da14605dd0629ef3d11c6101e05261010060006102006000600d7f8ec3983a330a1d6443ba3a96ad13eb742da259f98b422751e4d83c507eb9a495fa600a55600051600b55602051600c55604051600d55606051600e55608051600f5560a05160105560c05160115560e0516012556f19da63d9ed7d5028bc4ec2241e0f64d66000527f9c2a418eca251abceb9c6ceea156ab119fa41c5d817c64b5d27e378b3666fe616020526f02b6cfb26b2a957b6cea0ced22f7da976040527fbd85f4f1cf860c6b0a4cd896da77568cb92265cb47653c0d42fa17de27204b9b6060526f134e239014bc00715daa075776787a4c6080527fc3f6e58a7ccc8761817397ee792a6a5c06ac2b8c0532465909312c3f73a0411460a0526f08015e9f29388301d30ec2275593144160c0527fe781b11a8189a11b6ca94a5a75320893f20a6d24a9a5d89f403aa9e7b2b1082460e0527f3c6c108f25654670f797333386644dc2266da7009d2379ae6b1a713b1d4f1f5e610100526f0f1f81e63fb80a8c424825c4c63fecd7610120527fa9e2c7a00edb5595ac51369c4e06cb0d327c4a2bcb9540bbc071f89d5afd930e610140526f15f887c809744b267d34ea14996f9c19610160527f4a6e3e76a9560eac9ab9302f09ae45ba8390f505f9b76aa7e095d4c06731c6da610180526e781d148227c64e9e6171737a9f90676101a0527f4da46bda7b6fc8735861079c8c5190fe2452068274e77d646be4efd9824c084f6101c0526f08709c66878c65bf4b6fe916c2994c1d6101e0527fc7ada675b682bb217386e5f3e271a9afddb98dc41ac2e620c4bfcf7cd386a80c610200527f08ee20e405693fd12009d735195f7a9f0151f0073f16c63cde49582d2ee6da7961022052610100600061024060006036600e7f89e0e03253b5683c3350f95eeea40ab73353141f0d329060d6b4bb2b67b6d5f5f260135560005160145560205160155560405160165560605160175560805160185560a05160195560c051601a5560e051601b556f0f1ff58cafe856bb0c96b8cc8e84a15f6000527f4aa828579e886669fe73006f7e0eeffb46e8774f0fc9476fe9ef7eb45ee87bb96020526f0ca2fcfc114a285353488f60b0cb27be6040527f096dc37d10d6178f1acb136e37937d67acdfcfcc479ac055f69a9d3127abffb46060526f0d334f79d96f58a39b36cb539250a5516080527f6f3fb98e2e86cfe69a80955b99fbd5159bd75b68a1170ed2a2f4d39d9f54897060a0526f19b11403a23f5806db3da4e23c11898d60c0527f7e89c85d9c5951eacc54b878539d49603b85611512db65364053e9105282505860e0526f140342b31fd4daf8752074a17957a58c610100527f03a5d0d261b7693c3c3b9465bb7580ac64ab687520c5a0a792ac014ddc760458610120526f0e1834c2250017d2a88333e20b0a51dc610140527f5ea2cd2d856b17c7a1d4f5f148d4ec0a2089219d520b672e32b439c14ea1b85f610160526f1316f2bff6c70b109dad2d28a6404881610180527f3151789d6ca1019ea82ccfe4c806673dff2d9332637b20c4e6a9cb44faa2c28e6101a0526f128e3988a581fb6fe92de2e1c48f14986101c0527f4155e4151df5492a44ae4ec360c675705b8f2aea0a2831d7e9f664aa009b4dd06101e0526f024aa2b2f08f0a91260805272dc51051610200527fc6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb8610220526f13e02b6052719f607dacd3a088274f65610240527f596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e610260526f0ce5d527727d6e118cc9cdc6da2e351a610280527fadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b828016102a0526f0606c4a02ea734cc32acd2b02bc28b996102c0527fcb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be6102e05260206000610300600060b5600f7f26e0179e1ab64336316965140721c1c91b4c6311479bfb37b4049e57d689e429f1601c55600051601d557e40000000000000000000000000000005368347f453af419c09e3c17d5a07b16000527fcec1b822de11b01fe0b30cc1f6e431c7d6aa6297592bb9a08255062903a43a19602052608060006040600060107f75031a4a93d2ee1164a2f48228e140897995ea0e845683c90a60af8d03ac65defa601e55600051601f556020516020556040516021556060516022556f0fd5ef3e0dc0490f4dbff5e349456cc76000527fc0a883554216d95059f28016c8d8c4880eafaac915ae37e0daa01ded35c024c16020526f0392768dd75f8e50ad0c7a67d9c819fa6040527fe551075a654737e08d0f021eb117eb6b68267334b9110a1fe2e2edb67572cc9b606052610100600060806000601160f2f460235560005160245560205160255560405160265560605160275560805160285560a05160295560c051602a5560e051602b55\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x22986B2F9A2f5E7119F940898c35e7128A4Ce7E3\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x607660db600b602360e6604260bd1d8164a1f4329a161d8c31f11568550b5546591c4348526c53313f04452087315456197882415f647a72956540556f94460507891a053a600036306b1858421005179170995100928d5c153f92071977a137095258425e5a0a7114005e554a086e75135b0120203c15798f157837f5807e3145197d186e09161a77705c17526f37130286621945183e3e783030080616703b1e9978348a0388121879327d546079785b7c561d5e69947c927e611016347a1b6ea0358065186c7f8476507239180619137643491d72107b59186c8b8d79009909736bfe087b5f596534169d3ea4160a555f5134676890346a5c583f5bfd66598075983267519b10468e794664653f7c9f155b77047f0a721b921914067d7218868f7079781b1104173a437275f37948383f6f8e387fa2611c74455a99fa448b65460b5f1153f335143e07717e348f3173639819686c51789204386b82721a1394975a08597876618310176d30575e0168564962842097793f796d7e00953b465c410a3c775e1e79673f167448307088777057960257519752757a5e6a313e585dfe081dfd0361055cf58d8230725d5a5831891a36701842f5015b6511125b32373015f470871c465118093a59634302396447395252398603694af4185360180033141620845647391a11347a463df410779d7b030b0170163b1a15529e563f48590a420a14067f793e8f699d8f8c5780119c587a4291127a0167783d6f576012a354f21c7874315714384578346c9b7e5569961d55566f6bfd0b1851307e013899166f1683208c615c206b48076e7503fa3344a04955f5577209046d92a48474069b516b6135209146701e886e7c7b5f7796325a40848d6b519d609e1b03110b695a8b14399c6494a4361b163b3284667c8e743a023f1a7494021b9efd01fa09075912829f729f6402021a6f311740113b3c7a811808170519763d7405570953a00406ff1020536d09a0396095a17b5a456742353d10565969761439165d63101bf1598865958d375239046630516f6a1863903a497a3e6b07129a4758571d7d56051a80675914793295793f5d131a37149b5a6e3ba20b1e5341578b6571a494022065556798115648745f550398719f696d79f03e20ff429b34f3780a5e5c5077a35a6c433f77951a4059905f96371468a4025455713251591a3014fe1a557e6549395d165467915d9b63481b03531449521979068461533758f05839733205538d5e304109079c4a036d9d42f03565376418323697066b755c02a3fff1545711798d71490462101a3344591512187298565c058e1a0377f1853ff2fa095f5655466399483e69477f6e10465c3840f3413b7275906174a17c0348341d321153355563543f9d5b12fd806a20093d6100a109107e78656fa243025b067ef515\",\n      \"nonce\": \"0x0\",\n      \"storage\": {\n        \"0x0000000000000000000000000000000000000000000000000000000000000000\": \"0x000000000000000000000000000000000000000000000000000000000000000d\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000001\": \"0x000000000000000000000000000000000000000000000000000000000000000f\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000002\": \"0x0000000000000000000000000000000000000000000000000000000000000006\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000003\": \"0x0000000000000000000000000000000000000000000000000000000000000004\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000004\": \"0x0000000000000000000000000000000000000000000000000000000000000011\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000005\": \"0x0000000000000000000000000000000000000000000000000000000000000004\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000006\": \"0x0000000000000000000000000000000000000000000000000000000000000004\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000007\": \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000008\": \"0x0000000000000000000000000000000000000000000000000000000000000005\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000009\": \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000a\": \"0x0000000000000000000000000000000000000000000000000000000000000008\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000b\": \"0x000000000000000000000000000000000000000000000000000000000000000e\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000c\": \"0x0000000000000000000000000000000000000000000000000000000000000003\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000d\": \"0x0000000000000000000000000000000000000000000000000000000000000006\"\n      }\n    },\n    \"0x2837fE6BCdADEa40e14E73df3101847267659772\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x2bc9eb16f330b5d3764d1e508af3bcbb84786071e249bad6f91ac38553464bf4\",\n      \"storage\": {}\n    },\n    \"0x35F694E45962Ab9eD665971FdF51A45A3b109c62\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x2ac7d0629b3a39ccca4afd80b787edeccd0f9ceb5a83595c0f6a0e1cff0ebc7e\",\n      \"storage\": {}\n    },\n    \"0x3AcB272cf9665ba7113b07E79F0DB094DF7E3009\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0xd5b187a1488a0211288f3d420de324151455a6fa819850303f62bd25582b7cf6\",\n      \"storage\": {}\n    },\n    \"0x3Bd84e661C47a73eEe4137D185E4c31c194C343f\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x863419417b6000600055fa6de18a449c010a7f8e9660d84a21b87dbc056763006df3b8e66035a6f5fa4f42111ec56669067f796000527f9c2a7f3804dce503d7dff8e8801825fcdbd42a90e3f308ba21073ded827269296020527ff1b14bba86f2a6dd52b5d305e67bce80b579773ed881c8b9d8ce642f5638e1176040527f5e84ef7b9dc7e340641494d24498f08e7e37c9a6b3c8c03d09233a8e4af955dc6060527fce75d7e5d40ae69e572cbc0acdf3ef1eda7986dae8c69c09ab0c6f147b39268b6080527f7102b83fa59b8625e1cf6135605774b5f0a4d1bf373ac442b586a734ea8d21a560a0527fd4734a6bf23aa02d6286e928ed2edb7de8f5cedf05ecd2414ae0b4b9b11f6ab660c0527f7aee11b5432ab2a83f63841375a8f0ae8793233f2ede14d8f438f0dbb071534360e0527fb6a898321c875fee9103f3e25ab43d83cdf69aa1272812df955436426dda111e610100527f9ef2f7a07ef9168eef5eb78e995ea5792ec9b54d26c84c2b3b293f2c75e7989b610120527fb927e00951b4d24c112987f39916cee2300c7b8daca535a96ec9ae5cfaad7945610140527f78bb0fbfc44d5382300475f28e1f1f2e18708879ea8782b491d347901fe53e23610160527f7c6d85c86a9519a7852b269fa8f73f567731325f725a7286e6c01dbfd830397b610180527fcb9090f9a3bf1b0f3eb6dc9b03d0f339b6485d5b238ed7f9d0f1d4495d7b979a6101a052604060006101c0600060017f7735e2b1ad3cdfeae4afb25583920b30da69c9092974cdea990241f743cb3a5bfa600155600051600255602051600355\",\n      \"nonce\": \"0x0\",\n      \"storage\": {\n        \"0x0000000000000000000000000000000000000000000000000000000000000004\": \"0x000000000000000000000000000000000000000000000000000000000000000a\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000005\": \"0x0000000000000000000000000000000000000000000000000000000000000003\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000006\": \"0x000000000000000000000000000000000000000000000000000000000000000b\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000007\": \"0x000000000000000000000000000000000000000000000000000000000000000b\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000008\": \"0x0000000000000000000000000000000000000000000000000000000000000007\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000009\": \"0x0000000000000000000000000000000000000000000000000000000000000005\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000a\": \"0x0000000000000000000000000000000000000000000000000000000000000005\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000b\": \"0x000000000000000000000000000000000000000000000000000000000000000d\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000c\": \"0x000000000000000000000000000000000000000000000000000000000000000c\"\n      }\n    },\n    \"0x538A8474EeaB43d5a960164c554A20400151D479\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7fa4fc4c261945511eb0a7f9289ce44ddf8c9a5f4f7945a874976ea999c00f203c6000527f848fd24256f25171129d300596cdb3b87acac92dd320fd135b469ffb3649b0e86020527f47c102713e24fc4063948a1ada6d8df826b84b4737456cb9299ee0ddd772b8436040527fa839afcab7c931f82fc7153e8c264aba55b8a32448b9ad7568d4ca274cf0f6066060527f1addfa3a484743f66c64ca09ff38394128a899b80ecaff420a4d4a24bf44ff0e6080527f152e8f081e35367b5111bf26d890c6411c2fad393021ec60f6245c542193ffd960a0527f2f6f851250f72062da28ca7528fd1ecdac47295206aee44bb04ae8c1569d159560c0527f63616e5e3b3f1a7a4de50bae2b9628d600dc21fe02e8b000d48b229dc81959a360e0527faa2d809b67023928be7c23a9e3a6436258d51a8ee50e34c95a144cf9cf2d9e31610100527f4dbb9f316420b4b6f0a903f88704b734ee1c9b08a84949ca3c8f8c1701da909761012052608060006101406000601a600b7f0bce7192ca8c2cee8f6a4969de315bf7818617316247de5551ee9bca9f98a5b1f1600055600051600155602051600255604051600355606051600455\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x641602bAD4A323C49629d45338d79A2bb984A3fb\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x60d4600053600560006102403960ff610245526008600061026582819290913920600c5560196019610100376080600060a082819290913e20600d5560ed610320536102455161ffff60808091905251600e556005610240fd\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x66bBEf07B980c8b5de6F3DB0d5CA7A0389C7f386\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x6888bf43c6b0a7bd72d3d4f360efc2fcf781b746e6de54a559882e71c4ac43a2\",\n      \"storage\": {}\n    },\n    \"0x7458F9b8B5ee360A32b0b0Fe648C996C68AE8190\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x60f5ff91600aff60066000557f6133b9711c679b508736ed2f2a68fca7d4b1b912835742fb9dd74077c69c99ee6000527f2a08abae5a77926728c6ab0cbc4f81597dbf381b9162c36917ef9f42c63b99fc6020527f9abc7b34abd5117c02c1608a0397c757b19dd8644719be525176d7c9611db13f6040527f4e274ca06f8679a44b6c7d66f165c0c86aa94c5ea5653d359509dc6e8a4805bd6060527f4070778074d300ac50e862e4fc06c4149396762f44c15b6fd90917391f88e2996080527f881b5e6a55ab149fbe5a0ddfdd2cb487b9de8a1d29a61575afdcd2eb5a92345f60a0527f5c2e6bf54da29f38a89da143ea0c4e91d6c801eef8d9c0e267838ac85f71f0be60c0526040600060e06000600f7f67fcb88c6827df95a5c4a5f2547e65254ecb1b4d9a7ac77cf40b820e999e1f7ffa600155600051600255602051600355\",\n      \"nonce\": \"0x0\",\n      \"storage\": {\n        \"0x0000000000000000000000000000000000000000000000000000000000000004\": \"0x0000000000000000000000000000000000000000000000000000000000000005\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000005\": \"0x0000000000000000000000000000000000000000000000000000000000000011\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000006\": \"0x0000000000000000000000000000000000000000000000000000000000000008\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000007\": \"0x0000000000000000000000000000000000000000000000000000000000000011\"\n      }\n    },\n    \"0x7564105E977516C53bE337314c7E53838967bDaC\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x766C0844EBC3c4ef4ddb86260a4D3516cCa03A10\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7d059b496042f5250099eca0bd057a7162d05a02ce37330a5b536cd2e4c0186000527fee48cb9ff2f9b10445a8becfeb58e5119a8a83e7dd43b101bf6e1f5dd6b3a9af6020527f476d2cfa61f20f534739aa9c1f89023a4f1fae316859138a038cdebb87a7fe066040527f6b7a7ac05061f5e8cc20a76eaafddbdb811bca541786813629824f602b88562b6060527f36dd661024742f2d3fac855c9a98a06846a1b08f9f7d281167f79f77cdc773f06080527f0566af2715eb131035e0565b67e03096d6356e168932be528a6d62a6d65c12c360a052609d60c053607160c153603160c253608460c353605860c45360b760c55360ea60c653603860c753606c60c853603360c95360ad60ca53607560cb5360b860cc5360b060cd53600960ce53602e60cf53607c60d053606160d15360a660d253604060d353600060d4536040600060d56000607f60097f2c1ed359cc60aec22438443f3489dfc9b14ff971652c6f37440f4994122fb85ff2600055600051600155602051600255\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x87f2957b7228EC6a0dd4F2fCc669BD2ED2B14E11\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0xbc501cdb0096cc68817e5b2aa2eb7e97fcf45a56dbd22b6e2de2b234b51f12d5\",\n      \"storage\": {}\n    },\n    \"0x9529cc6891Fbd5aBFABE0AE6c79D30F0CCAe848F\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7bc9700000000000000000023f00c00014ff002c0000000000002231081967d0212626262626266d01000000000000000000000000009010067e40000000fd000000db0000000000000000000040000000fd000000db0000017176767676767676767600000076767676767690061a7feeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff06900b19717676767676767676760000007676767676767a010900000000000000000000000000000000000000000000000000901d6000551569100000000000000000007a010900000000000000000000000000000000000000000000000000900690159014671fffffffffffffff6f8000000000000000000000000000000090077f7effffff800000000000000000000000000200004400000000000000000000017e4b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b090b2b0bc60a0a10006847839214543589705209600155021960025560006b10000000000000000000000076fffff716b61616160b0b0b2b0b230b000008010d0a2b00900919600355671fffffffffffffff15680100000000000000006780000000000000000719147702ffffffffffffffffffffffffffffffffff0000000300007ee8e8e8e2000100000009ea02000000000000ff3ffffff8000000100022000005901a7ffffff716b61616160b0b0b2b0b0b0becf4bef50a0df4f48b090b2b0bc60a0a006fdac7fff9ffd9e13226262626262626000515900b7feeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee7702ffffffffffffffffffffffffffffffffff200000000000651ce97e1ab91a900860045567800000000000000067b368d219438b7f3f68210000000000000022900990076005557cc9700000000000000000023f00c00014ff00000000000000002230080568010000000000000000901c637fffffff717676767676767676760000007676767676769002127f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe760fffc000000000000767676240000000000002b0576047900390136006557ffffff716b61616160b0b0b2b0b0b0becf4bef50a0df4f48b090b2b0bc60a0a006a0100000000000000000000036007556101111960085560006b0100000000000000000000007d76767676767600000000007600000000000000560000000000000000000090087e050beb1c60141a0000dc2b0b0b0b0b0b410a0a0df4f40b090b2b0bc60a0a0063800000011690166f121212121212121212121212121212126780000000000000019013057f82000000000000000000000000000000000000000000000000000000000000007ee8e8e8e2000100000009ea02000000000000ff3ffffff800000010002200000363800000017f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7e4b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b090b2b0bc60a0a10009008900b6009557e40000000fd000000db0000000000000000000040000000fd000000db0000016a0100000000000000000000900413600a557f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f121212121212121212121212121212120a600b557f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f7effffff80000000000000000000000000020000440000000000000000000001901460006000f3\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x97511db90b0e141ea4cb42e3b73fe3C24c3D5676\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0xe0f8e02e171a2ef7eae37783ecfa6acb82cbacaaff229a4a403134ff420cb4c4\",\n      \"storage\": {}\n    },\n    \"0x9E607bB0Bae19b8bC75638fd1aB98594b36ba46d\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7f9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a086000527fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325506020527fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325506040527fda62acddc27903598f1ddb505079f75a053a7fef4ccc0226f329a17de2b9b07f6060527fc2dec62772a59ab41d9b18a2c73337eaa9aa3fe8fc601987b1255f567d9d38d66080526020600060a06000610100611b04f46000556000516001557fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6000527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6020527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6040527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6060527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6080526020600060a060006001610100611b2ef26002556000516003557f55f877a03e3e31007d8ccb0037592750fe627036579cd37987d3ef76a651dd1a6000527f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f6020527f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f6040527f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f6060527f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f6080526020600060a060006001610100611956f16004556000516005557f57f8a6f7c3f645443cfb67321cd9c90976533d2cf4694275284018e7d00502fe6000527fc542900c2dc5f9792d3b72ff6102bd1e91f6085de62264ae37160378bcfe1b126020527f602b4b4f830c525256827f91011797701b9a95cd91a6b479634c0d8b7da6193d6040527f646afb1b2d301d0d563a1a041858c646ca0f5ad9c88933d039ca8054ae8e9fe76060527f1c805336320e07d97255daa4f56aa8f70067f661fd58e36f86bf37dceb52f4bc6080526020600060a060006000610100611c63f16006556000516007557f535cb327ee8076e255306a99e24004dc0fe803cdda5fc1b1c80cff2b2be4b4566000527f928b94b18ace4fe3705e3be1552c001258a8453a5c390ae9edc7667e6cee6e746020527fbd807c3b3183046f09199d87d5164eee161b6b65e77cd48d9e252f14fc278eb86040527f8c9b92eaa05719ff02813758277a97b44bee954d63c0baee1ed0d93a3e9aa03e6060527f342b583e2ce51c261daca46acaa8c051224903898e638c9d1ca2719c1d8d6def6080526020600060a06000610100611c1ffa6008556000516009557f0d5d8c3c63c36344c65b288698895195d95bcdc486db6b84bdb44000077b0c7760005265200000000000602052652000000000006040527f1e7b39a3889ab016e0104c5ab9a8ce088bb14bf824070d6927aa876a820f6f376060527fd40f3c998bbe847441d310bcf4853d094ba76414809556342a231e2fe65c63b86080526020600060a060006000610100611a8af1600a55600051600b557fef02d493f62b3af6a7bfacaf888c58ae1b41d3e62bd483459f1682842ade1c726000527f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6020527f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040527f06567b1f15418bf2a6c5acd78e62159b8b682f2ef0b6f58a7fbe158943fc74d16060527fff848424bfdccf985cc7e451014000366747e559808a302682b81e678988fab86080526020600060a06000610100611a9cfa600c55600051600d557f7e47794e17a1bf02718dfec57b82b103e96d7e6f953e52385b498a5712cb7df56000527f64239ad45dc382b3eefeea8f23911594d78ca076317e9f9b7960b4f8151be81c6020527fb218b903bd81401bbf734d5a2315922f0c406ec792fab423aff997bffc0bcf526040527fe41441ed659010822b187ecb4eef5d733776c9c9526d20ad3560c87afb3d07756060527fe11cdcb149b52e6547ecacf066c0a92fbc349c3cc21d7e47eda1467ca3c1dafe6080526020600060a060006001610100611a33f1600e55600051600f557fdc7a6a7dbd8a42cf97100cbfb5343286879ea772d7f0e486bff85bac63a41cb56000527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6020527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6060527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6080526020600060a06000610100611bd0fa6010556000516011557f4230ac0ce5216e094ef085206a48af255d3bfb7f11f1154fe86e93cc01c0540e6000527f7d6fb2a29ba4243be0d466cf073f0c91f381af4aabea1c1ab16255c03a79fb9b6020527f06e6dca6036bed2bbdd06d85cd1c256e5262d952a96d0aa5696e8cbc6fb86d486040527fe4f47823ae5cd8f8e881941248e114c9d191868f51c6ff8d4a520c2b1e619b486060527fd0be45345ec0957cc0a7ca0402c3bbadb04a8973ed59064a43342929d75167ac6080526020600060a06000610100611955f46012556000516013557fe6d744e8c84673f3796ca2ab4cac4e32ece670c0e4707639e18549b4e9dc57426000527ffccafa6cdef92ae5f09ee8dd0b500474a4363e074b1b7c1e6aa9eecc96f5c00d6020527fd4bfa61ec6a1f984eef74fcdf6e9f4baba748ac2a645492b4b9ad71045bdba466040527f58042d82f7404f2ce84e49ad7188d2ee525fe17a2d0c225521963800573d75406060527f32fbbbdd801c61ad130150f74e7b98a4ddc2f40bce85aa7e0e50de48de7eb39d6080526020600060a060006101006119d1f46014556000516015557fef02d493f62b3af6a7bfacaf888c58ae1b41d3e62bd483459f1682842ade1c726000527f02fffffffd00000002ffffffffffffffff36b4f008f546db8edb2d6048f529706020527f02fffffffd00000002ffffffffffffffff36b4f008f546db8edb2d6048f529706040527fcfe9cd9e3865d36eb93ec8c8aefe537dcefa079e55a50799d03da8403f839ae56060527f84e5ab7dc40b1bfcdb5cf45020e9f98a6557442d5792722e71d6580b5324b7256080526020600060a06000610100611c12f46016556000516017557f4ce6a314bf39f6a13a2d79f56120c5ddc884ea3dd630b091501f462b1fb1ec956000527ff74b8bf1750c490c32e2b06d4aaa7a9cf52ca9a6174b528968ec5934239d00ae6020527f8b8f147f6325c4e4bf531d0d7452f1d64102fcb5fd74338cdffee1f27dc64a9b6040527f01060c697a1b1145fe7f273366539189a56770f32f68259080022da2d03fdcf06060527f1eb393010971afde7c33346378f4ed9876480c0493093869c10e6998d5e4ade06080526020600060a06000610100611bd9f46018556000516019557fdc7a6a7dbd8a42cf97100cbfb5343286879ea772d7f0e486bff85bac63a41cb56000527f55555555555555555555555555555555555555555555555555555555555555556020527f55555555555555555555555555555555555555555555555555555555555555556040527fcadaeb5d0685aab38931aa408da708e1fc2240cfd3e692405ea590fae72a42a96060527f2fde0a17840d08b2ddd90567fb3eb219a4498af7312edabca8381bbc053f544c6080526020600060a0600061010061195cfa601a55600051601b557fdc7a6a7dbd8a42cf97100cbfb5343286879ea772d7f0e486bff85bac63a41cb56000527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6020527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6060527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6080526020600060a060006001610100611bb6f1601c55600051601d557fdc7a6a7dbd8a42cf97100cbfb5343286879ea772d7f0e486bff85bac63a41cb56000527f55aaaa55aaaa555555aa5555aaaaaa55aaaa5555555555aaaa5555aa5555aa556020527f55aaaa55aaaa555555aa5555aaaaaa55aaaa5555555555aaaa5555aa5555aa556040527fc9d7038f7046df28b1c52ab47bbd9e743b96259dc6c1a5aa37bd0f61859ea3996060527f7789d6c41415f62a7c6d42c4c03efbdd920a5687f062ddeb8903830b9ba59fc96080526020600060a06000610100611b81fa601e55600051601f557fdc7a6a7dbd8a42cf97100cbfb5343286879ea772d7f0e486bff85bac63a41cb56000527010008000000000000000400000000400006020527010008000000000000000400000000400006040526f120040000000000000001000000000006060526f120040000000000000001000000000006080526020600060a06000610100611b87f46020556000516021557f88ef4ac1bd71522fb119c27ada9a3565c4c59b719ef1c5ff605d3ceb939b00c16000527f8e3123731ccaa2d15712f5427352e4f292fb6de2e48205c36b521d47903130006020527f360d418db19e848c902f3e9b0687f936a878b8aec3fc44898fcc8bed476f90886040527f8bd66669232a7307e3af41ba9e98e1c9bcc6c2cb1bcd19290d2c6d530b3806b36060527faff058330b9cd98a00323167cb85d0db1f61479c03acf5ccf081186c8913d9796080526020600060a060006000610100611916f2602255600051602355600060005260006020526000604052600060605260006080526020600060a060006000610100611bc9f16024556000516025557fca849b4c9a4205b12124c817ddcbf4847c033e130b3a0d20ed69f6b23c950bb76000527f3dca9dac712d28e081bfc4baa2adf4f8682ae2f4f4b9da7c003ac5ae8a358e646020527f55da3ebc3e6253f26fff786271effe89802c3880bbffc899f96014ca5ab0cb686040527f2f8101fcbb1bb9df8d89b1cf4d9b16cf539d2be4af0b3b593f3c3b64f15200476060527fd21c42acb6c9d34469fe759113a847175edfa8a629b9f818566f46dbbb4c38246080526020600060a060006000610100611c47f16026556000516027557f99ac9dde4f6675ca1d36afbfacf04bc463c2cfbaec70ea51c9da4de693cc2b926000527fc4796c56cf05874d9dca8ad22e242367c4eb946ef1403e0f0b31aa8a82d3462a6020527fe29fdbe9aad9dcd0bdd43f8631bafb406bfeee1928c5c95b840831d19e5672db6040527f35643c199d007509e9adb05724cac3f6375bff7be0cb8809f18432a666850cf86060527f8d623be41859ad127e15e5c841d8be44e9f745d8110b2aada89e60ceae897b876080526020600060a060006001610100611c5cf16028556000516029557fefbbd6857db26ab2faa74a46e8075a2ea1950720cb94fb676e7ca9a5ec90def76000527f9b64ec29fc397751d4baa368bf4833e82a85a6b315280fa27d1b948022547ee26020527fc4a2746dce7b72a9094289836387233b097720ad3a65622b259e71a6f28b2aa66040527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6060527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6080526020600060a06000610100611b82fa602a55600051602b557feae17c0e1411fa0aed7bdfd3afc1e59f85b60e19a8f8e2fcf912481ce42c6ec86000527fb7f329f0fa26b456c94dd7728a9c795655d39144dd37fa5ab2d16badb39a9a0e6020527fc6b3b1f287e23277cb1d27608a95a428207a8ae1721a4a004653815f43e252896040527f61d358f21da2aa3a593bc15aafe7a88217556401d687cc10bdf5ee5deac2a2456060527f44bdc7b569afbecc115de3aa4f2b2b692b38c3095c830ea4b9f8a21b1cc1dc7e6080526020600060a0600060016101006119b2f1602c55600051602d557f9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a086000527fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325506020527fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325506040527fe6631f1c321035ee89178482078ce3428d97ef91de4f2c9fba2dfdf296eaaff86060527ff374e4cfbda2da61927aefdf99f3d38d4aedf1ea9e99b3d37505a29858a26d906080526020600060a06000610100611952fa602e55600051602f557f9fc62f83fb8c9dd1b9bd9346fa459174294f44b2aa3f6bcafe23d61ae5e1b9126000527f6133ac5a4a5a4732b24e25d0947ba4c399039d326cd81fca87102d6114a2f3f16020527f1838fa42b4ce50f86fe545cd9998b4fa08926d3fb98b1a75eab0a0c850488e1f6040527f97fb30d0bd03dfbbe22bde034b631e6c4b44981d7efff205ec83ed80c8a244886060527fd5a8987fcd6bb092b26871d3b3d7214682783e412e2d247a6ab735a59bd692046080526020600060a06000610100611b52fa6030556000516031557f2b0d74c8ad94bf9168305e77b930d7e66b1467439fcfcae9ae160cb4681abd396000527f08180ce104c5ffd56ab782f4b7a2df4255eefc0b4239f5f84335127f744fea0e6020527fa0c8527c9cc5c2221dc644e7479db9444533d56d6da5d9dc33bd8d86e2ffb99d60405260026060527f46fe64157cc965de86c8479aed407caf925052267ed6cabd25e110bdf45ecdc96080526020600060a060006101006119d1f46032556000516033557fb5bf3fda78cf36ef7037905d5210611ca0de5a749cffaceef0f98a37752c03886000527f41ba296bc996785e233b10dd0566adaeffdb62aff99637bf86b15b4dec6ebbb46020527fcbba6c16b4894b5e67d4e9a73d33a5820c94347b14db0f6c0db20b20d654a87b6040527f2a95275f9d50e9c9758b1768b718224106a7bf810d5085f7ce468ed680088e436060527f0a1a0509b915ed3d0d216cabc9617eab026dcb8c0bfc879deca2d66107020dd66080526020600060a06000610100611964fa6034556000516035557feeaceed8e997346864eb79cecb3de252aa8af678da0add3727718b7cabd681e96000527fed12432d2e8e8e5ddd5e754e444a6703503c77cb78b07ff9fcebdc8d607fd3fe6020527faff8368c4d1b501184a9f72d061237b2e80a616b88868fb16af22dfa1681dfb56040527fd01988930efebb541269070bfb6fd062aae89208ffdd7b3dc72401094bdfe39a6060527f32eb46ca28cfc45005fbd8dc3cb6ad45fa747510279a672045c4055bab2cf83c6080526020600060a060006000610100611bd3f2603655600051603755600060005260006020526000604052600060605260006080526020600060a060006000610100611c98f16038556000516039557f484f37e54c5295cf36fe10f6aff8c229bd9aa65603a5219b46c6129f33d83a906000527f789a4669c419bd471741f57ecea4239aa11fdd902e04af9e29f13ed3ec9c796c6020527f918a4029a6b2b0b14ced5c0c3038378041dc9ed86b2b62c2db603c3a381ca1136040527f966eade76bca84cb2ce407de7a840f6d19190cf918c12d9e3a99ffcf4566a2f86060527f75fa0692a5caafb1bf87d436f99e88f5c6c28a176807517f6e64e0a34b23e63c6080526020600060a06000610100611a90f4603a55600051603b557fdc7a6a7dbd8a42cf97100cbfb5343286879ea772d7f0e486bff85bac63a41cb56000527a0200000000000000000000000000200200000000000000000000006020527a020000000000000000000000000020020000000000000000000000604052788000002000000000000000020000000000000000000000000060605278800000200000000000000002000000000000000000000000006080526020600060a06000610100611ae9f4603c55600051603d557f6b56c62902da512a9f2f6a1258155ed595a09172d2f5f45b04be21552e910f986000527fbc305a51d5165a978c2d6464030685c2d381e622c87d2ae925788ea762cda08d6020527fe2d02b525f2d094366031877ebeedd2c6016bedab9b0616283f4b86756c02c916040527f10d424688c564c78fffbf8100adea4e5df2b26b81e2d34f36b12a6debedb4a656060527f4321dc8003645b904eaaf90a5a8065693f063d8590901c68b501e6ba3bf358e96080526020600060a06000610100611b44fa603e55600051603f557f55f877a03e3e31007d8ccb0037592750fe627036579cd37987d3ef76a651dd1a6000527f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f6020527f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f6040527f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f6060527f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f6080526020600060a060006000610100611a76f16040556000516041557fdc7a6a7dbd8a42cf97100cbfb5343286879ea772d7f0e486bff85bac63a41cb56000527f55555555555555555555555555555555555555555555555555555555555555556020527f55555555555555555555555555555555555555555555555555555555555555556040527f625bb93891671304e13ac8dfccd4810b590321cc0d59f12879c0dec48bdda6566060527f57a412e8fb34f5ce3705734c4bd3ef4bde25e0afa47b9da61bdf1f6cd39a00766080526020600060a060006101006119e9fa6042556000516043557f2bc778e01d771a8a4d88e33c2aebfbefe484eaf86af48a14ead2133545084a2c6000527f095960ba6bdea4f7c1f23832b6b18d34d47c06b4a6b2b71a5cf78c0cc016fe3f6020527f7cbf2333cd08c279b26b7ef66d46f671f0d80fbe95dfe456b9a81eb12bc754396040527f8a292b9ce0dd42d054f219d841a85ead3b314c92f4bc5fc2a14c2894a82723596060527f09b415cbdda55d538a4f1d4a7424727e00a03c1acc229a67a6942180503fa2106080526020600060a06000610100611c4afa6044556000516045557fdc7a6a7dbd8a42cf97100cbfb5343286879ea772d7f0e486bff85bac63a41cb56000527620000000000000000000000000000000000000000000006020527620000000000000000000000000000000000000000000006040527fde78cb7d6ca1833eca52dd642e9e385a572d0a13a82cfb801eb93accac19f5c06060527f2b8c37f2bf887ca80a8ba691631b072b925c5cee29092de8f0ab088c334b5e8a6080526020600060a06000610100611c3ef46046556000516047557fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6000527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6020527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6040527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6060527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6080526020600060a060006000610100611bf8f1604855600051604955600060005260006020526000604052600060605260006080526020600060a0600061010061191efa604a55600051604b557f927dfee61e50c7421808524a7a90f8501e0ae985faf4ad0feda06cc7ab3ba0376000527fc911cb77f5fbcc18d1fa9a2473e882ce34eaaeb259e2e3576aa121f3ceec5a716020527f78760ebce4be5905ea0b78337e1eddd627d8a997e121c691395697b909af4b676040527f3fa97b02bdb27aa7403c6dfc2692e25923d4c079e9226030c846ed22dd4f986d6060527ff565e832ba9e1d1285b75c6eecfadbe08a5164384d40a6d42c44e9b921116f746080526020600060a060006000610100611c40f2604c55600051604d557f17d331b36f45839e05e4672575bbfdd5ce3de9ad758c5956d3c91c9f723658006000527f9e0eaefb650f77c7c2f1612e42149b83d25d130026c2990fadfd7f5f2ec321616020527f3186b54dae60571d2ee512b7083864c201a9f729a1c93e530cef6cd6dfe5743a6040527f921f646ea25327d75882e7d17671b87bfb904fb78d1c5819e4a1c582ec0e309c6060527f2d3b43bcfdeda5ed8ea601d767c7831136856a80af463726d9185b3a026e0c6c6080526020600060a06000610100611a5afa604e55600051604f55\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xBa0E31A0E75AC9a4cac4c57d6c7EF2a10e87D4e6\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7f0dd9ccf5a133f80f284d8119e5766fdc78abed0168e6bc910b5e0176c951e4436000527f0628c4db9f1f4f2178752223a627a0cb465ed2518827a95123c2ece65f44b4316020527f0499075786280ef4bc72e7855ff33456d8c6f125b7d1d9baaad011ea2ab9e6986040527e97cdd77deef597a2bc16d88539d254cdaa55b105a027c6ab4b83b1868370fc6060527f082be0895fb2a2e368b460cd15b64c844c38b5dc16a4b1c92e5e2798975c56926080527f1ebcfe5a688616de67316604ecdea93879b25612a3432ab4e14a26ffb53d128760a0527f1bd248bdf180ee660835d6b590c4fe6c50ccd0a060555ed2c8f37629165753a360c0527f038ba6f6510fae553b2b3ad7ed616f923858382c71b8054054746de16bf76c6060e0527f0afe62b544bd5e08f5a4d990f3989a0352495686a22f480a183823c5c0b6c3c1610100527f166f65225783504282adece0b7a23103c45a60be1b8035718589cfa007dd5bd4610120527f0636a7022c573e3bb500450a6a6781193917487a4ced2aff1a54f329a257953e610140527f1e1b2efa9cab213ae4dbff879a0610251c40ac9a41dfea3113eb5c8318c44fe3610160527f0919d4b775568b4448a2598e2aa74143d4cd29f5f94c6993cc4858c9d490b9cf610180527f2ce72450da563b7b4d652c83f0442b76d557e4eabc5519fd14d1fae51dbd10f76101a0527f0c5ddd9a6ddf253c840f29e6f1f5589039a3d31d8969dd70bc7786f7c14992fd6101c0527f0464740f9667555139ab1d405612f072c81773fa2df80237f0f30d4dd8c92c846101e0527f2c984c8a12450a4f78d13b602226bbbd93dde861fcc37f6a60ec69721d880195610200527f1356ee4dfb103fde3ed6d9a430fa55187814fb6f1688f5e5f73be48bac31d74561022052602060006102406000608660087f823050ef163d7d484e8a5a18e75335c1b282c3e3296a1e348ef6be914ec253c6f2600055600051600155\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xD74CFe323387aE2fd070CD046173026716D8D649\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7f014578955e56f6b52f72afe95be88f8080692a1af480fc571addbbca08d5e1b26000527f6b65fe58c31529e42775db26d33a3b91d21952719de31b77b4c57f84c71e69276020527f4a78953ce832910d03e29be38626662621d587622aa95bc1aa396eb65c0fc9de6040527f9278fe0e25e1b7c612b89b3219bbe81f9a558637ee40ad3e6b4c23f00be36cd86060527f28a2e51b0fa05f2973fcedb329994bc6975e405a52336c9c1d6d7f65a3f041726080527fc4cb93a0c12afab3cf3fc961123f659e89386c086b8f8c03d651ba549d34411260a0526040600060c06000600a7f61824de34891d5dd5d68d637e3889f76a90b610e42c8d6340cad9ed9ac966da8f4600055600051600155602051600255\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xDa78807c1C4567c23EB713E9fbB3b1508C1284ce\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x6000600052600060205260006040526000606052602060006080600060016119fff46000556000516001557f5635d69609767cc55df05457febb80b0042d87e81eb1d22f226de79a76c708d56000527f7738ef82f2a4e2832f532706eec1556d2f325c8d5cd7930f9b3b4a409c85a71d6020527fe23a41f46cdbc28e002d9f6cc7b11c4e259671f69e9d03f4f4e45b86c9d6c5cd6040527f2531f0ec7f10dbbfff9f4b7a5d94a4f4d49ad9ef6a3de8f38ab1e6372d1e5e32606052602060006080600060006001616727f16002556000516003557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601b6020527fb3bf27de565ff9a8d996e8c6f4229b90d3d785882396fc871a67df2777390a456040527f4e6497845945c0d9d7b5686784825970f0e17404398ccd269eecbd3cde93adef6060526020600060806000600161d628fa6004556000516005557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601c6020527f90cfb0a7e935f0e0e195c789fbb8fd85981430909cf043ddd784e13765fea44e6040527f4788f359d9f79d7e1c54ca4d982556c9b1760282a44c6344edf82108ea60b27b6060526020600060806000600161dfdef46006556000516007557fc5c3f0ed9812b3fb0cefc109617fffd894091214ef719cb57933b24c3ff7ea166000527f34f0eb248c0ad3ce9f7420c2fc2ad0ed06cf7fb6a63a679e89e7f63806706b086020527fca6f9a3c432db550d8a783c7a39e13aa23a7ed46695c52666c858c6a85c0743d6040527f568ca38fda9afebc390205b01ffe0b32479e93802e56121bc36986b476c5bb2a606052602060006080600060016201318df46008556000516009557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601b6020527f5182ddea0d6c800d464f74dd82bbae46b370e73745a2ef5be0d1cd78e8b63bcd6040527f4d8aa48e8e4aa324d6b5b0568413627f3088650584f26f7d9d230dd18bef7220606052602060006080600060016001615f50f2600a55600051600b556000600052601b602052600160405260016060526020600060806000600161323dfa600c55600051600d5560006000526000602052600060405260006060526020600060806000600161e876f4600e55600051600f557f9cd1c9e669f25ff0d75358a68b742c499dd507b1929e69211f9dcebed088d2396000527f3197fe1803571e9dcc547d0914727e57a04f413c7fe0e80df6178ba721e7391d6020527ff6f60e0b8b56deb4215aa5a8791e67cccbf67bcbf28a00ddc01aa9e2834bcba56040527f5d82dc04d961c9baa8607de329bbfc5c0fda7606fa685b8f637c96cff204986e6060526020600060806000600162015414fa6010556000516011557f48e61e67c212051774e251f4694009e70b0c8cd3e53f546bd571a89cbd5d77866000527f482558bb150d8505183572baaf7a364052737fe23c1ef7883320a2cb0353921b60205260006040527f2048679e6e96fbd4128e4da15a24443d8118cde5a019a700164135e810bd0a4a60605260206000608060006000600161e2bbf26012556000516013557f36acd9425393d15e3eb4812d51043df238ef8864cf7e0d11b59e4fabdb18cf8b6000527fb65dd238c5703c5cf7eec9884f723f689330e90cf77801118035141dd442c01c6020527f8d4eceda1b4fa1f96eafc840d34ff01e2a1dec56c33838a8141d1f9b1d4811f56040527fffff8ec6cc8d5304fff1733341f73d0448e8de858f72fe1afaa8cdcdd894416c606052602060006080600060006001615e79f26014556000516015557f16cf9ac0524c5cdee7ba74b3dd710d75cccfc885ce042fe1e95668866a1bc05d6000527f7d3dbde81de980b22866b25af9b31ad7a8f45bce7feb7bb3327b91edc5536c336020527fd28c824dcb997cdfe976e7f9e4f62c09ebf1d53e969e66f045e2cd686f3996e76040527f11e5c0bfbd64e28a8078a0d9ee926aecad8bc52d65cbcb89892a169afab5142e60605260206000608060006001600161e126f26016556000516017557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601b6020527f2f63ff12ae5e48349a3cd273ecf7a16bfd325fb80c1b3601bb1c3b6958fa76416040527f4641561778dd3463d0124b1fd9432a9cf49d4e22c761e6ca5f2a88bda1bfc05b60605260206000608060006001600162018551f26018556000516019556000600052601b6020526001604052600160605260206000608060006000600162014e9bf1601a55600051601b55600060005260006020526000604052600060605260206000608060006000600161446cf1601c55600051601d557f8bf2abb1d2d1ded3bc18adf47c552ddb500f5e4936d62c2a4bbd8604e1b89b086000527f69c2dcb690ba7704bef53049a822ac4911a7eda430bf3f1919e1ccc46e05171d6020527f5ad9fc0129eccf96c24be1edbb6d90b2baff6286288c52b86544c944d778aef56040527fee6b147e5aa16966cc768773eeba18d4ca5ad8e7b1fed292547c35ada4548eb760605260206000608060006001615edef4601e55600051601f557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601b6020527fb3882d7cddbfb1aeb96ea275eeba65cafd3c057d53a4650c8a623dc5d90552176040527eff0997551623a79a5bc1c2e0285120219d911b571006d7178d7b70be8506ae60605260206000608060006000600161c05ef26020556000516021557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601c6020527f0535a453701693dde78ff230e8ec5482f5a1087b3519b6e27f47fc871ea52c236040527f46e1c6e229537c9c25a2197a51d331418065a8a749b8c2caecfeb4138ddc661b606052602060006080600060006001620149d4f16022556000516023557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601c6020527f6fc20df9f44aef7af01c979f835f67e0d1426f0802d6c4697844fdb5928d46716040527f4a8986d60152dbe79028c9854f61f3bb229d465ed2296e191a59caf1e8f8196860605260206000608060006000600162011d1ef26024556000516025557f4d11001caf9bbe5571fc607b41905d585f8f1156c87c3b2a1402fc525802790c6000527fe90b1362fcba1f8347e103984f99ccfec324a2f9f4635c4776259f29f60b4a1b6020527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040527f1454f2b26fbdfb65f37eded4dec22e9cab0feadbd60b34913691b1d08c7b008f60605260206000608060006001600161bfbef26026556000516027556000600052601b6020526001604052600160605260206000608060006001615a0cf4602855600051602955600060005260006020526000604052600060605260206000608060006000600161f2fef1602a55600051602b557f091972bef5bee21dba19e42b89499d24001da47956025c9acdaa32f2caf1aceb6000527fce3ffe160fbd50f0c627da01036b788e8423201346a6e7ec67b8e81f69d6b41d6020527eeef5f26b4d5201c901905fca0a0a3c1f53156962becd64ce499aeac07b85086040527f024974992117a12a2c64e1b3a8e547e45418b905b5b644bca78eafefc2582ce06060526020600060806000600162018411f4602c55600051602d557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601c6020527f19ccd9280715e451937d27a22990dd8c7f2528581c8d0f55dd3e0c04a68adf2b6040527f3ab9a559dbac4213538275eb6df877b42992eb9f36cc3786c62684ceddb0cdbc60605260206000608060006001612800f4602e55600051602f557ff40546baf9aea56fe68bc14aaaa1e9d21509e81f21af4987b84fa5baa893cf046000527fdfd0c846d634ef20cc13379a6382995d388806421855e2c64310a6c719bea91c6020527fa5ba6c38881bf21b5a7dcfdf690975abd5e5cc39bef2af15d7f5d0d9e5e400dd6040527fffff424734ae111844e2ba4fb368be44abb4ae3505608497f5d12526ec74f8cd60605260206000608060006001600162014526f1603055600051603155\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xE2f4CF89C9B94178B5725B8b1fd9a7F40c4a674C\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x774b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b0a0a774b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b0a0a900a637fffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0407682100000000000000227ff6376770abd3a36b20394c5664afef1194c801c3f05e42566f085ed24d002bb0901a191a7ffffff716b61616160b0b0b2b0b0b0becf4bef50a0df4f48b090b2b0bc60a0a0067800000000000000114901d60bf55778200000000000000fe000004000000ffff000000fffff7006f800000000000000000000000000000000560c055760fffc000000000000767676240000000000002b05760477e40000000fd000000db0000000000000000000040000000fd000000db0000d37e4b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b090b2b0bc60a0a1000096a1000000000000000000000684783921454358970521b901a60c1557f62d8fffffffffffffffffffffffffffffc18000000000000000000ca000000017f77676767676760000000000000001002e000000000000040000000e000000000901c682323232323232323237f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd901d90037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6005900760c25567b368d219438b7f3f600190140660c3556c0100000000000000000000000060051b637fffffff67b368d219438b7f3f90131c6f121212121212121212121212121212127f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd9011900a60c4556000637fffffff167bc9700000000000000000023f00c00014ff002c0000000000002231086f121212121212121212121212121212129014191d7e40000000fd000000db0000000000000000000040000000fd000000db0000d37f8000000000000000000000000000000000000000000000000000000000000002900b900b7e40000000fd000000db0000000000000000000040000000fd000000db0000d36f121212121212121212121212121212129002077fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f7effffff8000000000000000000000000000000000000000d9000000000000010760c5557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6a1000000000000000000000901d136b1000000000000000000000006c01000000000000000000000000900a900360c65576013590cab83b779e708b533b0eef3561483ddeefc841f56005177e050beb1c60141a0000dc2b0b0b0b0b0b410a0a0df4f40b090b2b0bc60a0a006a10000000000000000000000a901c60c7557e4b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b090b2b0bc60a0a10007a010900000000000000000000000000000000000000000000000000106c10000000000000000000000000677fffffffffffffff1a901a60c8557f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd197e40000000fd000000db0000000000000000000040000000fd000000db000001677fffffffffffffff1b0b7ee8e8e8e2000100000009ea02000000000000ff3ffffff800000010002200007d0c76f4afb041407a8ea478d65024f5c3dfe1db1a1bb10c5ea8bec314ccf9901660c9551969010000000000000000007feeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee900190066a100000000000000000000076013590cab83b779e708b533b0eef3561483ddeefc841f59011067cc9700000000000000000023f00c00014ff0000000000000000223008057e4b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b090b2b0bc60a0a10001090126801fffffffffffffffe6f800000000000000000000000000000001b900360ca557780000000000000008000000000000000800000000000000076fffff716b61616160b0b0b2b0b230b000008010d0a2b0090047ff6376770abd3a36b20394c5664afef1194c801c3f05e42566f085ed24d002bb07f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90107d0c76f4afb041407a8ea478d65024f5c3dfe1db1a1bb10c5ea8bec314ccf97a010900000000000000000000000000000000000000000000000000678000000000000001900890191619901501717676767676767676760000007676767676766c01000000000000000000000000901d900a7f7effffff800000000000000000000000000200004400000000000000000000017f82000000000000000000000000000000000000000000000000000000000000000790141560cb55717676767676767676760000007676767676767d0c76f4afb041407a8ea478d65024f5c3dfe1db1a1bb10c5ea8bec314ccf9077702ffffffffffffffffffffffffffffffffff000000030000651ce97e1ab91a06107e4b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b090b2b0bc60a0a10007f800000000000000000000000000000000000000000000000000000000000000190131760cc5567ffffffffffffffff760100000000ffffffffffffffff0000000000002e0000006d010000000000000000000000000090081567fffffffffffffffe777effffff80000000000000000000000000000000000080019001900560cd55717676767676760000000000760000007600007a010900000000000000000000000000000000000000000000000000901d600767800000000000000106901b6101117bc9700000000000000000023f00c00014ff002c0000000000002231089005067fffffffffffffffff7effffff800000007effffff800000008000ff0000010000678000000000000001901d901c681000000000000000007bc9700000000000000000023f00c00014ff002c000000000000223108900290187806400aff20ff00200004e7fd1eff08ffca0afd1eff08ffca0a762900760076761e000200767600000000767676760000001401760fffc000000000000767676240000000000002b0576047677000000000000000117f12cbafcee8f60f9f3fa308c90fde8d298772ffea667aa6bc109d5c661e7929a57a01090000000000000000000000000000000000000000000000000068066aa0a5319bcf5cb408901960ce550a7ff6376770abd3a36b20394c5664afef1194c801c3f05e42566f085ed24d002bb0610111900b60cf557cc9700000000000000000023f00c00014ff0000000000000000223008057e4b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b090b2b0bc60a0a1000111c7bc9700000000000000000023f00c00014ff002c00000000000022310863800000000a90016847839214543589705263800000000560d0556101117f77676767676760000000000000001002e000000000000040000000e00000000090051c777effffff80000000000000000000000000000000000080016c10000000000000000000000000900760d15567d021262626262626677fffffffffffffff137f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f12121212121212121212121212121212651ce97e1ab91a900990071463800000017d0c76f4afb041407a8ea478d65024f5c3dfe1db1a1bb10c5ea8bec314ccf99017027ee8e8e8e2000100000009ea02000000000000ff3ffffff800000010002280ff6380000000901860d2557f77676767676760000000000000001002e000000000000040000000e0000000007f40000000fd000000db0000000000000000000000000000000000000000000001901790067702ffffffffffffffffffffffffffffffffff0000000300007feeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee0790016801fffffffffffffffe7e050beb1c60141a0000dc2b0b0b0b0b0b410a0a0df4f40b090b2b0bc60a0a00181502778000000000000000800000000000000080000000000000007ff6376770abd3a36b20394c5664afef1194c801c3f05e42566f085ed24d002bb01419166823232323232323232368478392145435897052180a651ce97e1ab91a7ee8e8e8e2000100000009ea02000000000000ff3ffffff800000010002200000a60d3557f7effffff8000000000000000000000000000000000000000d900000000000001774b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b0a0a06016a01000000000000000000007e050beb1c60141a0000dc2b0b0b0b0b0b410a0a0df4f40b090b2b0bc60a0a001290031567b368d219438b7f3f6b010000000000000000000000079014651ce97e1ab91a7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe9007760fffc000000000000767676240000000000002b05760477702ffffffffffffffffffffffffffffffffff000000030000638000000008181b7f12cbafcee8f60f9f3fa308c90fde8d298772ffea667aa6bc109d5c661e7929a56801fffffffffffffffe9001191a7e4b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b090b2b0bc60a0a10007176767676767676767600000076767676767690139002686d5adef08547abf7eb6910000000000000000000020a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f40000000fd000000db00000000000000000000000000000000000000000000011160d455151960d5556780000000000000017ff6376770abd3a36b20394c5664afef1194c801c3f05e42566f085ed24d002bb090187ee8e8e8e2000100000009ea02000000000000ff3ffffff800000010002280ff6f80000000000000010000000000000000901460d6557f7effffff800000000000000000000000000200004400000000000000000000017f12cbafcee8f60f9f3fa308c90fde8d298772ffea667aa6bc109d5c661e7929a5901a90077e050beb1c60141a0000dc2b0b0b0b0b0b410a0a0df4f40b090b2b0bc60a0a00680100000000000000001715901d7d0c76f4afb041407a8ea478d65024f5c3dfe1db1a1bb10c5ea8bec314ccf9760100000000ffffffffffffffff0000000000002e0000001714712000110000000d0a300e750a000000090a0a6770000000000000007f8000000000000000000000000000000000000000000000000000000000000000900990057e4b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b090b2b0bc60a0a100076fffff716b61616160b0b0b2b0b230b000008010d0a2b00900490126f800000000000000000000000000000006801fffffffffffffffe9001686d5adef08547abf7eb76fffff716b61616160b0b0b2b0b230b000008010d0a2b00600190089010146a10000000000000000000006b100000000000000000000000901360d7557ee8e8e8e2000100000009ea02000000000000ff3ffffff80000001000220000610111149010712000110000000d0a300e750a000000090a0a63800000019007177f40000000fd000000db00000000000000000000000000000000000000000000017f7effffff8000000000000000000000000000000000000000d900000000000001141b7ff6376770abd3a36b20394c5664afef1194c801c3f05e42566f085ed24d002bb06823232323232323232306147f77676767676760000000000000001002e000000000000040000000e00000000060000b197f7effffff8000000000000000000000000000000000000000d9000000000000017f5fd8fffffffffffffffffffffffffffffc090000ce700004d0c9ffffff0000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe9009901a04760fffc000000000000767676240000000000002b05760477ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb9018901160d85568210000000000000022671fffffffffffffff017f8000000000000000000000000000000000000000000000000000000000000002778200000000000000fe000004000000ffff000000fffff700900b90167f8000000000000000000000000000000000000000000000000000000000000001774b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b0a0a900590056a01000000000000000000007ffffff716b61616160b0b0b2b0b0b0becf4bef50a0df4f48b090b2b0bc60a0a00031667fffffffffffffffe7f800000000000000000000000000000000000000000000000000000000000000017900a197ee8e8e8e2000100000009ea02000000000000ff3ffffff8000000100022000068478392145435897052901060d955682100000000000000227702ffffffffffffffffffffffffffffffffff2000000000000390150a684783921454358970527e40000000fd000000db0000000000000000000040000000fd000000db000001901a900760da557806400aff20ff00200004e7fd1eff08ffca0afd1eff08ffca0a7f7effffff8000000000000000000000000000000000000000d90000000000000190187e40000000fd000000db0000000000000000000040000000fd000000db0000d37f820000000000000000000000000000000000000000000000000000000000000090117f7effffff80000000000000000000000000020000440000000000000000000001760fffc000000000000767676240000000000002b05760476f800000000000000100000000000000000960db55901760dc5560006000f3\",\n      \"nonce\": \"0x0\",\n      \"storage\": {\n        \"0x00000000000000000000000000000000000000000000000000000000000000dd\": \"0x0000000000000000000000000000000000000000000000000000000000000004\",\n        \"0x00000000000000000000000000000000000000000000000000000000000000de\": \"0x000000000000000000000000000000000000000000000000000000000000000e\"\n      }\n    },\n    \"0xa94f5374Fce5edBC8E2a8697C15331677e6EbF0B\": {\n      \"balance\": \"0xffffffffff\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n      \"storage\": {}\n    },\n    \"0xf3eAc1d1B1EC8cA737bD148b1E96168024fB3F89\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x6000496000556001496001556002496002556003496003556004496004556005496005556007496006554a6007556006600855\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xfD6241df8Ce82b2Fb4126dD0e9FA931806Fa573c\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x6101296000526101296020526101296040527f69e81e3e7395914bd7a174171c2abb5872a3f74bad925e171848173397d0f4ce6060527f305d0a55de9a15923e02507df70929ce7a6e0475b4153dfda8d31734ca31a7296080527f6f40e534fd50742c50dc37c0434cd6336a9a5eb9a2e45ed8d975dbddbce661eb60a0527f1221005f45cd8a15ead74d3531129fd35a822daf4255b9cfea9dc0a2e5bef40160c0527f326aeabec0290bd67bc8c0835c9b899e66dc95ed43ce31d3580fa75ceefdc43160e0527f897c7d3a7fc2e9db1eae97afdb1cbfdae405d6093612313eb18b23781d21ec6b610100527f398f99408e87f8f74c7b2df6c46c35547884c8a3d4e9578775b11d452ed8f615610120527f7c6d97d68312ab514050a3ce3beb54356639efac32d6945047635cbe25448f74610140527f1ec847857382073929b34276a0e24b618cacc3f231dc32bc7f0e6599459c1ff6610160527fcb3707198b19ed5a4bd071c3a57a194e48a9a63c4b7de8e6954512bb6ab2cb55610180527f9cd5eb4f6f1430634f33e3d0cc775581dffc61ba1d1e3d188c9574d3e01576936101a0527f467247bd7ad3a43bd64bba6815bb51953d11ffcc1d26572d43c48e478e8c5e996101c0527f397c09d19c92b79ff9e7eff33d517220dc0ae525cc76b8bbf0407189aadbec236101e0527ffcf0525acc205a9b2f0cb0a353e5b82c0da2b68c042b8a4212682f22a1aec7c2610200527fc3d4186bf05e8a8785e0c129a5a0d951f82d409eccd3d89237fb46b530f1de4e610220527f25f22b01d268d08f7793386bcdd8a84426761cc3c231cd1eabe8eb6af296e082610240527f2efeda8ce18279934df1c2f78981298c2b1982e1460fd2d12a2cab72134f6ef1610260527ffcbeb4de92c1037e3aff1bd001b5c9d763fec0ba3c782adf56d278f055d6c67c610280527f49aef127fb8b37b2bcc87b5201325b5c5b6bccbb5a9da51b00942fa86dc143f56102a0527fdd86c4c44ef5fbca928a90b54ae77be694ea2ea2b601356817c81882979e281f6102c0527ff8e07e025ebd4a65c76f68bc9a6e50c83ead6ab102aa166d0d7a687d3590c44b6102e0527f78b0a61e9d2fcd1813363be2cf16957ce8cb1285f90b91aa32ec305a1233ce2b610300527fc69de814bd478ba07ae5167dc1686cc2dda01fbcdce97d09c16cfc6a6cab4ee5610320527f2c34769a8e26508f6d287cd1a95d355928cc5dbe0580707db6d3ac4dc31d150f610340527f49b59eb4f467447d0cc6113ab1b63ab67d27f7ae398d1d432582c2e8f6a4dff7610360527f550e23fdfa28e38ecc6b28ae82e8a26e0d8cca9e625bcf0897816de7fb8bb827610380527f6a3614910a6314bb3b7f081a174054536b82bf225bb41570f6bd385558a5c8156103a05260546103c053603d6103c153605b6103c253609b6103c35360ad6103c45360df6103c55360226103c653604f6103c75360996103c85360226103c95360156103ca5360396103cb5360326103cc53609e6103cd5360466103ce53605d6103cf5360cf6103d05360ce6103d15360fa6103d253603a6103d35360be6103d45360436103d55360ef6103d653602a6103d75360df6103d85360de6103d95360086103da5361012960006103db6000600060056301174bfff25a0160005560005160015560205160025560405160035560605160045560805160055560a05160065560c05160075560e0516008556101005160095561012051600a55604260005260036020526101006040527fdf5f74a61ecca030138e6021dae95a5b368cae98b66c171812d2338bb86483e66060527fa5d7c8cfa18cda53cf98f7826fd3867d8fe9dd095e50d065de4d34d1cf88d48f6080527f0f9bdecc79c974a38d471073780296aad41362c1fda9885d9e789cab4b1ae54e60a0527f5aae2d5ef85a4d57afe48ec9d966da9ba744d517f8fad9f5502824033f94699360c0527fd55b0e001ee8a9e537e3761885d8cc05eaea065308f785bcce96f071b0853c5f60e0527f6c86b21c7df065ab5e94f5b1f69ce88c2e87fd50a9207bc9e29b2242194604ee610100527feee7d72b553031c54b89a8db874fb6946d115fae9037b30e77b8c0e39b50f4df610120527f4baa678533b3b484496b3321f1a53313d85cebada6ce98cfa7545e9b378cf193610140527f2032fd1ac0270d38f02e8432ec8d494921d7b7c706d5d5b0d7e0925ac818aeb3610160527f2835e066a94d1150ca5dd1af7b36b3105c9999b8229295830d1eee70dd73ad396101805260666101a05360fe6101a15360976101a25360c96101a353602a6101a45361010060006101a56000600561f68ffa5a01600b55600051600c55602051600d55604051600e55606051600f5560805160105560a05160115560c05160125560e051601355603a6000526103e4602052603a6040527f59cb660c0826be7706b5e062b238ad17fbf96d2eae2d89bc93e9881aea0495486060527f0339ed057e9aa557c676b245344845451ecac965862814cb13ad6a1d45e82ae26080527f4d1fd92e4000935a20b6909034d34b01b4e7ff6814f649ac3bc3dbe71eac3cad60a0527f69f3390bd3ce4afee1890e88d0e541c58019a9df73a2cd66964c2d034cfc5e5360c0527fc82d4950773b57d44e7161528597236e3614cfa5e54cafd8352a5abe115f44a460e0527f31760e86321b4347bb7823deea70704ea503067ecf4683f0ba5093d200ca45ce610100527f522e9393efbb864ffce417d0120084c0eba76f2fd2769e8cd5e71e0c927d5390610120527f030ab22e0ebc72b408291052cacc5ca32c1786a5888a527d74a72a6368a71a98610140527fe1fae46ccda64d1b1d588bc1ce80ee638626562b201e1fc23370f2b986af0f70610160527f9835a67ea548cbdd5cbc61a66a6feedf57f514d8216cfbdabc34e5fe985851c1610180527f0fd4604ceb36c7c98a58e1e3dbe176da1f0b92a858cbf7b66545cf28162057286101a0527fb8078e2a9b7fe21cc4bd3a6581c33056ed4b3031442d3c6ed9ef165634b3a15b6101c0527f29d8b959e94d587e725e5f73a69157ab9a9a60470488bbea5cb6d005066c9d726101e0527fcbf1d991de7de7a45b29f5408a8779319a21ab4f7ed873578ea84fb2f5c3a9f4610200527fcf72073db33f80ac63e9a12c825ccf52658f098e6f30a7a2398cc20519979cd3610220527f7f55da0405738fc69a98caf7a59ea205d4fa84efe99748effd6e763cc34f85fc610240527fb2aa10c82c9b0bb4bb6d916a57e70fd97d8c099af760268d684bcdec58b71417610260527f85008a08c9978857a3e7e055e7e9c86b7db8871d440806ad37bebab67b78d60d610280527f3958000361b187c50526765c4900a44261023f4c418b3e592da5e6b77f240c026102a0527f5340288abc1ad5421fc94f5e9be342f2bec6333017b1becd1912b45c4f19087c6102c0527f941d62ffbfbb047fd7b2a050757e246b197bc86e67a1ccdd85598f86e6ae6afb6102e0527f646fec060cfbc4f77e5be17fe7dd4a4082aea0a46b122a7058ea9492d96e8698610300527f4d7a189ca41c61843c598a8f197a2910a26c595be275ba67c28cf3c1c9e62fd2610320527ff287a0f088b71a6aab79a535d31111aa98a7fafa10d1ad802f6c1437a042cc36610340527fc39e979b0fdec7b5ccab8636ae3a1bf8e30b9ab564b51acc5fd767cd2cea4bde610360527f69a8f89674885b22757dd55d89dd2b5d7d72121bd318bfed01ffe7fb9fd5c351610380527fae7515a9426791b78ba37c231e6630ecdcbdfa73c9b0c293738d205bf883869f6103a0527fccc57c6c698c8a0de47c487da0244e367183967c4b3b65226ff11b6b8eeb777e6103c0527fbea49780f5480fb6ae0df0693c39b7a102df9268e4e011ca61b6dc7b51baecd56103e0527f8e9c5217aa66333950b594a2dec37f423a67bf65b9cb80a2f4d1b45c5c7dd7db610400527fbdb29ede3683d3904d533ee4df89d7db61ecfdb9b313377f1fabb76cc4955a38610420527fb10396556870f949e6c1ed83a081e425a4e5915beefd6d0d85f0643516089567610440527f1f348949c6143fceab9423d11f05656442bd666d73308e900d43ebef7bd7be0b610460527f489a7d036dabcb10f159d06a3aa2e326ca7976c5f5bc87e6f4b6d88bc9c310806104805260e26104a05360b26104a15360c66104a25360fd6104a35360aa6104a45360e26104a553603b6104a653602d6104a75360ca6104a85360056104a953602c6104aa5360156104ab5360386104ac53600d6104ad5360416104ae5360286104af5360f46104b05360af6104b15360b06104b253600a6104b353609a6104b453606c6104b55360f06104b65360886104b753603a60006104b86000600060056229a50af25a01601455600051601555602051601655\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    }\n  },\n  \"chainId\": 1,\n  \"env\": {\n    \"currentBaseFee\": \"0xa\",\n    \"currentBlobGasUsed\": \"0x20000\",\n    \"currentCoinbase\": \"0xc014Ba5e00000000000000000000000000000000\",\n    \"currentDifficulty\": \"0x20000\",\n    \"currentExcessBlobGas\": \"0x0\",\n    \"currentGasLimit\": \"0x11e1a300\",\n    \"currentNumber\": \"0x1\",\n    \"currentTimestamp\": \"0x3e8\"\n  },\n  \"fork\": \"Osaka\",\n  \"parentBeaconBlockRoot\": \"0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f\",\n  \"transactions\": [\n    {\n      \"data\": \"0x\",\n      \"from\": \"0x18665208d71eAF07c959cB6d2b263aCE3eF24042\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x20\",\n      \"nonce\": 0,\n      \"to\": \"0x538A8474EeaB43d5a960164c554A20400151D479\",\n      \"value\": \"0x52\"\n    },\n    {\n      \"blobVersionedHashes\": [\n        \"0x0132d6deb603df6639cddb11a72c84d811c0893563607dbfbdbccd7a1473f846\",\n        \"0x018e95a083430036a83e06d44d20e48c449c73887210b4fdb1754c8203e0638b\",\n        \"0x0117b08385e646dbfce1bf4e12453f47418f94c9210bd326a75c1e5f6ba466c7\",\n        \"0x010cd0225eb0ac60dcc3ea4ef75ab6bd7bffcc1a76bb55a714e12d56844e8d4e\",\n        \"0x01124668b9854fe4ecb676c9eb81b1bf469fd6e8e3bf726d1e996961958a2943\",\n        \"0x0132e4d95f2db408e3fe5a1e034a2f4782430712edbcfc1438ab49a7fc10003c\"\n      ],\n      \"data\": \"0x80e805\",\n      \"from\": \"0x35F694E45962Ab9eD665971FdF51A45A3b109c62\",\n      \"gas\": \"0xf42400\",\n      \"maxFeePerBlobGas\": \"0x100\",\n      \"maxFeePerGas\": \"0x20\",\n      \"maxPriorityFeePerGas\": \"0x1\",\n      \"nonce\": 0,\n      \"sidecar\": {\n        \"blobs\": 6,\n        \"commitments\": 6,\n        \"proofs\": 6\n      },\n      \"to\": \"0xf3eAc1d1B1EC8cA737bD148b1E96168024fB3F89\",\n      \"type\": \"0x3\",\n      \"value\": \"0x0\"\n    },\n    {\n      \"data\": \"0x25e79e54e8c02652f2565713d311d5cb168192a4d71d9a9aee1f946cdbd6e3eaa7\",\n      \"from\": \"0x03D28A8a81F218F63CCCc11AD16b94f7f787b6d9\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0xDa78807c1C4567c23EB713E9fbB3b1508C1284ce\",\n      \"value\": \"0x806742\"\n    },\n    {\n      \"data\": \"0xc1a00893a8130b2ca38989576113d35462b45eecc786193b898d3eb239b6e712bb6968ed9aa996786e\",\n      \"from\": \"0x3AcB272cf9665ba7113b07E79F0DB094DF7E3009\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0x766C0844EBC3c4ef4ddb86260a4D3516cCa03A10\",\n      \"value\": \"0x56b\"\n    },\n    {\n      \"data\": \"0xcda935393d196ed654f80a8b358db56e6f03ef47b2c7cbd02f981b1942af\",\n      \"from\": \"0x2837fE6BCdADEa40e14E73df3101847267659772\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0x22986B2F9A2f5E7119F940898c35e7128A4Ce7E3\",\n      \"value\": \"0x0\"\n    },\n    {\n      \"data\": \"0x2ccc98abf7db01f4304e4590fd15868ccac4894b3e147950631ff47f5365e672b74b86bc4c34d454e28ab37da11eb194acc4957216d4f77ea6279804fea86abf0be0e98ff69c0b03df2bb4f889624ebc00d2b90dec25f6b27aa4625d29cbb5fa954dfd422dcf505eee5edc3d315ddfd4fbf1f1605fac0f2e4debf9f0c45d49b44bc6902663d567f91bd01e7a8bf300368d037c90a56a155a477262a01d2bd558dbdc\",\n      \"from\": \"0x18665208d71eAF07c959cB6d2b263aCE3eF24042\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 1,\n      \"to\": \"0x641602bAD4A323C49629d45338d79A2bb984A3fb\",\n      \"value\": \"0x0\"\n    },\n    {\n      \"data\": \"0x19a13a072bb4\",\n      \"from\": \"0x35F694E45962Ab9eD665971FdF51A45A3b109c62\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 1,\n      \"to\": \"0x3Bd84e661C47a73eEe4137D185E4c31c194C343f\",\n      \"value\": \"0x402522\"\n    },\n    {\n      \"data\": \"0xe2\",\n      \"from\": \"0x03D28A8a81F218F63CCCc11AD16b94f7f787b6d9\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 1,\n      \"to\": \"0xD74CFe323387aE2fd070CD046173026716D8D649\",\n      \"value\": \"0x5\"\n    },\n    {\n      \"data\": \"0x\",\n      \"from\": \"0x3AcB272cf9665ba7113b07E79F0DB094DF7E3009\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 1,\n      \"to\": \"0xBa0E31A0E75AC9a4cac4c57d6c7EF2a10e87D4e6\",\n      \"value\": \"0x0\"\n    },\n    {\n      \"data\": \"0x34a9132814758b59273daa94386285ca6ec120a9d4481a23039b58152a8da551ea7308a94e7419cf89b239da0e569207cac855b71fab651a7b1738fc07791f901401b802befdd5aa04587a35\",\n      \"from\": \"0x2837fE6BCdADEa40e14E73df3101847267659772\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 1,\n      \"to\": \"0x9529cc6891Fbd5aBFABE0AE6c79D30F0CCAe848F\",\n      \"value\": \"0x2adf47\"\n    },\n    {\n      \"data\": \"0xc16453d9244731365126c88036a7d21dc4e74b5e\",\n      \"from\": \"0x18665208d71eAF07c959cB6d2b263aCE3eF24042\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 2,\n      \"to\": \"0x7458F9b8B5ee360A32b0b0Fe648C996C68AE8190\",\n      \"value\": \"0x21\"\n    },\n    {\n      \"data\": \"0x8d80c554a0fbda8217a176413301cc3c60b0cf745f87ec393c2bff96faabf209afe5ff379b58c1a2150efd2f8ddea5668e528eb86081400aa5105ac67aed06755a5a4b5d45b83079a2fdaf7e9d90aa29756605b68d94\",\n      \"from\": \"0x35F694E45962Ab9eD665971FdF51A45A3b109c62\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 2,\n      \"to\": \"0x9E607bB0Bae19b8bC75638fd1aB98594b36ba46d\",\n      \"value\": \"0x3213ff\"\n    },\n    {\n      \"data\": \"0x50af4d2b0584036576383afba79c69f64fc2b71db10682ff80d5653cfdd52981f124f31baae8d20fff7e6aec48bf547e8c08651cad37205e8320a156f61f53f38acab75a\",\n      \"from\": \"0x03D28A8a81F218F63CCCc11AD16b94f7f787b6d9\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 2,\n      \"to\": \"0xfD6241df8Ce82b2Fb4126dD0e9FA931806Fa573c\",\n      \"value\": \"0x7b\"\n    },\n    {\n      \"data\": \"0xfef68089f91a694f575e07f3f58904aafac957\",\n      \"from\": \"0x3AcB272cf9665ba7113b07E79F0DB094DF7E3009\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 2,\n      \"to\": \"0x1d891f21BB2a55cD9EC7a32478f7c74d757c4876\",\n      \"value\": \"0x4d\"\n    },\n    {\n      \"authorizationList\": [\n        {\n          \"address\": \"0x7564105e977516c53be337314c7e53838967bdac\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x0\",\n          \"r\": \"0x36b7ac42eec8f5237477a6169e8c357399393f59bb26761056bbff43903482a6\",\n          \"s\": \"0x460efc6055f2d148029adb295d71d6df3e226d673bb716b5bf4b2521a77ccc4c\",\n          \"v\": \"0x1\"\n        },\n        {\n          \"address\": \"0x0000000000000000000000000000000000000001\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x0\",\n          \"r\": \"0xe6a79d6fca48ba50006d0503ccdc43c19f9f07ecaec4c496110ce6701d9789ee\",\n          \"s\": \"0x482ba8d2c8c39595672302abc39a714ff67de25ce1c4ce76d25e09ab86f8394d\",\n          \"v\": \"0x1\"\n        }\n      ],\n      \"data\": \"0xbfdc6d5fdd81ba0f593ea74a4a2e16aade24b578c028b7d34d5528ab79\",\n      \"from\": \"0x87f2957b7228EC6a0dd4F2fCc669BD2ED2B14E11\",\n      \"gas\": \"0xf42400\",\n      \"maxFeePerGas\": \"0x10\",\n      \"maxPriorityFeePerGas\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0x000000000000000000000000000000000000000d\",\n      \"type\": \"0x4\",\n      \"value\": \"0x3919\"\n    },\n    {\n      \"data\": \"0x00\",\n      \"from\": \"0x66bBEf07B980c8b5de6F3DB0d5CA7A0389C7f386\",\n      \"gas\": \"0x30d40\",\n      \"maxFeePerGas\": \"0x1e\",\n      \"maxPriorityFeePerGas\": \"0x1\",\n      \"nonce\": 0,\n      \"to\": \"0x7564105E977516C53bE337314c7E53838967bDaC\",\n      \"type\": \"0x2\",\n      \"value\": \"0x3e8\"\n    },\n    {\n      \"authorizationList\": [\n        {\n          \"address\": \"0x0000000000000000000000000000000000000000\",\n          \"chainId\": \"0x1\",\n          \"nonce\": \"0x2\",\n          \"r\": \"0xb69e5f919d0b7c265606ddcc668583ef819323ff6b65b9f0485cbadb495e5bae\",\n          \"s\": \"0x7296df3d02e403899fbe72a1676027a5216c5bf1f0891d945a992eaaf8b9b614\",\n          \"v\": \"0x0\"\n        }\n      ],\n      \"data\": \"0xbfdc6d5fdd81ba0f593ea74a4a2e16aade24b578c028b7d34d5528ab79\",\n      \"from\": \"0x97511db90b0e141ea4cb42e3b73fe3C24c3D5676\",\n      \"gas\": \"0xf42400\",\n      \"maxFeePerGas\": \"0x10\",\n      \"maxPriorityFeePerGas\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0x000000000000000000000000000000000000000d\",\n      \"type\": \"0x4\",\n      \"value\": \"0x3919\"\n    }\n  ],\n  \"version\": \"2.0\"\n}"
  },
  {
    "path": "src/cli/fuzzer_bridge/examples/comprehensive_largest.json",
    "content": "{\n  \"accounts\": {\n    \"0x000000000000000000000000000000000000000d\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x1d891f21BB2a55cD9EC7a32478f7c74d757c4876\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x6f0a87ed7222327c89e32c494655ab7ab56000527f9edd68e08f46df176f43ab43e5cef82a0ec1e3b507236e9e1d29ee4865c3172c6020526f0407e673e011e005623138422425e3f76040527f33e8019de96821fd513cd74317d3759644eac2366ec002ff30599f23893d01a96060526f0c8ed51666fa89cc3b565d4debb1613f6080527f1b05e40e0f001cf0fd1708ed5ec0cf0848395141fad4e63c1906ef6826eb59cd60a0526f09ded88a18337c0914c78872d01d415560c0527f0968b8eb01921ab81aadf28a9d3184bca0490cbd0c34ba4bd4967f21af512ada60e052608060006101006000600b7fa4252a9216f3d0e78298c2b7c114a064716eddd0911583de04b66582d8ea311df46000556000516001556020516002556040516003556060516004556f1a419a917fc94f5634495deedf4a24016000527f048cc6b4caf2a633a5e8f2da8c0143c06d8c1936c890bdb2598545541f70d11d6020526f18e47fc371d0406e1d4db090510a8adc6040527fde2c75ec145e1c8c0c463746e7094ba17943d2c86a2bf2c6ef95c2fb431910486060527f2e2b2003141ba627ad513d8a983c48396ffad9321a55c93c2604bbfa2308a97c608052762000000000000003ea3ae275df42189c22df81e214368360a0527f8780adce6237aa9f065ec90a90954ea710e653548c7299c4530795fa29ee9d5560c0526f010cee41653204615b11ff580614bde160e0527f2b421b606c9ece327f85b1eb9cf1c824a346f190ca67c2f51a2457820cbc7b15610100527ff2c9a103bda905ed7b8b699659b9323f48a5c7bcc39089b56bdc479432ba3368610120526080600061014060007fb07bfea156dd2c6da61259f98c6acd1940635b34f57488f007f182e1c924e6e4600c7fcf18af1150328aff200c2fd8f999bcc0d5ee9391b1cba27c9881fe5df5887bc4f26005556000516006556020516007556040516008556060516009556f09b04f3d8e653b62c7982bd62d551ef46000527fa637f50de8135135d5d4fa0789fc81ff1aca0f5580ffa0aae9d3320b46eb43616020526f10f5d64a37c8c7af6fa86c43e7b04e246040527f50df08be2d64e37307e120865ddb737d40df135bf781af0cf34e643bda22fe206060526f141d734530e56cdb3b167ae3ac8df0a46080527fa4400211fd2cf3454a25257d075e59d3ba197c8840955c9a1354c2182eb04a3f60a0526f0e9be6e0e15cdb0b5bf6fbb5212abe3960c0527f87491a0cde1687660f12853fc9be9c16f6f82114c4874c4748328beec87f289860e0526f07d9ba7a0a45506cc5ce37f24472fe0b610100527ff428a69ea59c554de9cfc53f27a38281f1c264c784a645fa2d35289ce405de2c610120526f0762254fb0459e7df8563bee37c4d2f3610140527f491f360f159d69cb14c672d79d4feb00f024c4bfb3f40ae716b113faf88a9a13610160527a01000000010000000000000717a86a35e59903c132908dc7f52f62610180527f8a5cf0cf8a71f5664b402fb7810716888ecebc361881eba0ee7b505d7f16b1886101a0526e5a50ba7862cc7cda96c5dc5adf8f4c6101c0527f4331955a3d1e519f7274d3fb7d0462f1002580dee6f242c634c0089195186d3e6101e05261010060006102006000600d7fcef0c189c7d9456aaccdde7e801f01a3432106d9dcfe0446321931372442b159f4600a55600051600b55602051600c55604051600d55606051600e55608051600f5560a05160105560c05160115560e0516012556f024aa2b2f08f0a91260805272dc510516000527fc6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb86020526f13e02b6052719f607dacd3a088274f656040527f596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e6060526f0ce5d527727d6e118cc9cdc6da2e351a6080527fadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b8280160a0526f0606c4a02ea734cc32acd2b02bc28b9960c0527fcb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be60e0527ffee06aacd23d0a6c86c34dc19c60536cf9a6ea877a9e9eb2f6a4df3e9a353dd2610100526f1fc25c7508e84dbd1daf7961d33bfb2f610120527fe53a40dbaf0ecd8c7eb3bd54bf2168a6d7a055ec92130ba37052b423447b0a9a610140526f05e99862765b9bcd6f7cb63826fcd392610160527f848915d53314781e8877d55caf9c4f8d34c7a8b89cb8bacc90de4a29921a44a8610180526f11af9ffe6238b2de3f7dfbe19e4e0a586101a0527f4e47686ba041f9dedf748c8d126b85c8c8edb4b2797e15dbf67683b1a73a8c446101c0526f17b6657a667d398b8f13565befc2a7e56101e0527fbb993fd6c1c8a6d8b87870d5c321b47156188f585546bfbf9033a4c86be66c4f610200527f18997f86a0ce7dabec3e81f963d5481ec93f972adc070ee52a4b1e9828a1cdb1610220526f10a4258f7530a05c9baf43860413914a610240527f525ff884a38adba5cbcdb1fa8b7ed37ff38a369a0bda3f8ce5eba0a9fd23e3a4610260526f02e67a246248652e404608af51e9ebc3610280527fe9cef9e3bd785b9348c6ac8d58796c4606539f4fbf49004c85bbe2be3801b42c6102a0526f05c8bf03e4cc59c61fe7127ec8467cae6102c0527f01153b2e813177d106fce95671a92f34680a68d71a819a47a2bd88a8c1d065306102e0526f19dfecff4a83dd53c417d38d59bd3f1a610300527fecb84b85caa8935a60b706781e85e4748de3a187062175cd88589c4e1cc33d55610320527fb985b5b035764a8b63042b39ef405bc5b863eb556ac92ee9b81220fb9ec662a16103405261010060006103606000600e7f9f28453243c7169466e0d7b52d3d089cb3a5027dfe9b6346ccd3744baddef837f460135560005160145560205160155560405160165560605160175560805160185560a05160195560c051601a5560e051601b556f165c50dbe8c0a0208acb5b4f32f320906000527f17ce7e71e958a64abf31e2fc571ddddc5f47046db222374332e6e6ed6c60725d6020526f05c327bb284a00dc257c47fdee750c9c6040527fae824af6cede547411e87562748ed6dba06e401a2092e49108a1513ac54604326060526f01e753ef84d2a5461a45b2d30b0721dd6080527f911ed29cf977b2d50d92d7085099386efb72f28aaadaa7509d47ba49e2d5576660a0526f01c9507484cfc3afac23df3f40edd4e760c0527f5153fee58f641ff7ef30da0e856bb7207d5e49b0a7d803778ba2187277878b2860e0526f034eb4d81eeb63c3e0c0df223b4e7fdb610100527f676f8c98a87583947e51d405c7102382e163fb63ebe7ad836dbe58b7af5123c3610120526f09cf32bd5a983e5edf7439888f49a36c610140527f4d51e8b926c13dc5edc5bb582946bc58a3269bb45f61b3f3c8d7d1b78bf68f5b610160526f12786c6a204b05a66b3b0ec1628fa1b0610180527f1298d31fefc9c859bff378565c1f83a3ee8bf0f7ea2ef66612ba98cc908217cf6101a0526f12f75b00d7ac4480219fc66b5e4cee686101c0527f8b6820eb8cc47694ce0d910281222a281db5431258217f13b19ee22df398813d6101e0526f053a3ec469166e07e50fe90261be6c03610200527f8bfdeebc739636d4d569083c14a1dca3d1a32a736c900150dc8e231494738086610220526f0540a51dd44fb6a1bf12d3cfec1debc1610240527f50ccd16b2499c78cd00a1ef4b1cc0df6a76f7448791912fe67ec17bc38fbd0d9610260526f1792de16e20a71f569cb872f24967936610280527fd0e86308f745cca7665e2d9da1925e7b40b1c75d377d049fd0130dbb91f8d2a76102a0526f10584eb9a95dfcf214640f20dc1720626102c0527fb1ce1e2122df67c1f67cb471c1975ef95c7f3bb7ff9a0beac9a353e8a1956f036102e0526f021eff5f0e36e91a2bb867207f6be50f610300527f69c76b34f3d7519ddaf5229586a6dcb8b7916aa8c8252027408ccf6c0293b4cc610320526f06ba87408441d868c3955895247b0cc4610340527f40ae49a43bf2e94e34f7bf730588c6387d197cd1dcf8612fa896498146a54a85610360526f024aa2b2f08f0a91260805272dc51051610380527fc6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb86103a0526f13e02b6052719f607dacd3a088274f656103c0527f596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e6103e0526f0ce5d527727d6e118cc9cdc6da2e351a610400527fadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801610420526f0606c4a02ea734cc32acd2b02bc28b99610440527fcb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be61046052602060006104806000600f7f9a3408e92b715e6b9045c4dd6fdde08ee1a07f82f2016d98ea8017dc731ae804fa601c55600051601d556f0e66dd45ed28b50efa47ef1d4e12e1646000527f17af6eb4654a2af672d9e65ef93e7937047309dd5391b617d8c629a282008c1f6020526080600060406000607160107f08836f296e06695e07ca75a2fccb39630286f5f12e73c080324df9665ae10d32f1601e55600051601f556020516020556040516021556060516022556f12bcd39d65a32144dca96ef057a1cb2f6000527f8d9f73ba8de3281fe17b080c9ec0f08dccdfb2075f0d73d05055ccbb200296a56020526f0f8af18272344255ba2fb976696e056a6040527f4175c7145eed931d03737deb73d25c3bcb8d880ed85e03ac9a9c2c74e0bab59460605261010060006080600060117ff4f2cfddbcff68a12ebf445f82c77d68d99f8b6d8eb46723ed3ef6ed2507a37bfa60235560005160245560205160255560405160265560605160275560805160285560a05160295560c051602a5560e051602b55\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x22986B2F9A2f5E7119F940898c35e7128A4Ce7E3\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x608b6085604660fa600260e660c95b1870335733826958400667a041477d7f56425744fd3741659f7e12a48f835a650667f1066d7777106337fd676f7d3603521a7b418e8f62055f3f025d1d41928b75643933a4153e32a1446470013d92343c1a5c368879f5f1067b0b1b5ef4755911333e570b0a52403d647c069d97104309395a31704841655e68338f96131a473a18a01432170b1d90076e31077d78f34339653e3534481c9d771881550889a4675f376c6c135c35063863336f9e0283505059721c526d03337d467362ff8650713f123e5f89079f361d143f80587d061e5d0a52786708055a4379f188505045ff1d4138100b0b6369996a425639881c469d7a9f8838075847067865833e791537656f3f77006ba11148598e1e7f3a426a8e358d4a667808079837528009761d6c079c83754642f0333e3a0b1e7557f31ef56da45d926f1b38fa77056601699a45816b118c74a092077268451a0b9e427b9852f2639f49145501fe103a79201351598bf2406783475e80636a795165816e1c7687986e3e10753c718052997c3e16530a3d7846111e871e358a457d70537d17556215351608516a7b09328174825c79095b6cfa31183f507861621bf16e1b0bf07d368769501c8f691e1a998410191e04747f049e886a6686189757735d6f8e3769040477f5591276167c77575e9f3a57418b1e666c1a60f18187417f004750093c43583f3e56129314201b769c7f1b0a6e09075e006e63711a81547c686d6a88508e873461fe20317882fa69495f893a4637447c617a9837fa65fe1c6f061786595b925d028d085439144979187a60603e896a0a60758752796a855b73808f7b5a68803d06120a3d6875665c39105e4501a15d02940673443947824654fa4019679b05f3668b4164803c1e028e10791e5a43169744019954680688691c72855e337480339c407cf05b8a5d51641d7b056a540031419233893a7e5730053b9c098a31076efe3e41113f123d54766045677a778a7533535f757ff21814647c9b056c55163f673130a18173349252079e7742378a329f1d0b62471a51207d6a988c446c48139738770302076f3e196b11006e30839e405a167d797e1497f2141136116f886741977b5a4571597b3181207776a1976b3f3e50431ba43684151401555b421505186f588a206d1b305079f3757b5c17615b1d8a7459513d3960506c8b5619a0f533083a7859703f7a39a08f3ea3611d1c1e36621287823a204245046a1a736f7a9f3b5c727e64007c50179f3552a0201e390a7c19637e731d527978004812373379433e4702567448fd77f5139c485b483504548e4030761678395f9b1ef1761c17424aa005001b30093d8d81519f116c336e6e9765696957806c696f955c6e9d094859111a45117b48433f143c408400796894175e3a180b6218\",\n      \"nonce\": \"0x0\",\n      \"storage\": {\n        \"0x0000000000000000000000000000000000000000000000000000000000000000\": \"0x0000000000000000000000000000000000000000000000000000000000000009\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000001\": \"0x000000000000000000000000000000000000000000000000000000000000000d\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000002\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000003\": \"0x0000000000000000000000000000000000000000000000000000000000000004\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000004\": \"0x000000000000000000000000000000000000000000000000000000000000000c\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000005\": \"0x0000000000000000000000000000000000000000000000000000000000000009\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000006\": \"0x000000000000000000000000000000000000000000000000000000000000000a\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000007\": \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000008\": \"0x0000000000000000000000000000000000000000000000000000000000000008\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000009\": \"0x0000000000000000000000000000000000000000000000000000000000000006\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000a\": \"0x0000000000000000000000000000000000000000000000000000000000000009\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000b\": \"0x000000000000000000000000000000000000000000000000000000000000000f\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000c\": \"0x0000000000000000000000000000000000000000000000000000000000000001\"\n      }\n    },\n    \"0x3Bd84e661C47a73eEe4137D185E4c31c194C343f\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0xea60206000fd\",\n      \"nonce\": \"0x0\",\n      \"storage\": {\n        \"0x0000000000000000000000000000000000000000000000000000000000000000\": \"0x0000000000000000000000000000000000000000000000000000000000000003\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000001\": \"0x0000000000000000000000000000000000000000000000000000000000000007\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000002\": \"0x000000000000000000000000000000000000000000000000000000000000000e\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000003\": \"0x0000000000000000000000000000000000000000000000000000000000000004\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000004\": \"0x000000000000000000000000000000000000000000000000000000000000000f\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000005\": \"0x000000000000000000000000000000000000000000000000000000000000000b\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000006\": \"0x0000000000000000000000000000000000000000000000000000000000000004\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000007\": \"0x0000000000000000000000000000000000000000000000000000000000000009\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000008\": \"0x000000000000000000000000000000000000000000000000000000000000000f\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000009\": \"0x0000000000000000000000000000000000000000000000000000000000000006\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000a\": \"0x000000000000000000000000000000000000000000000000000000000000000b\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000b\": \"0x000000000000000000000000000000000000000000000000000000000000000b\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000c\": \"0x0000000000000000000000000000000000000000000000000000000000000007\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000d\": \"0x0000000000000000000000000000000000000000000000000000000000000010\"\n      }\n    },\n    \"0x3F7d91B63d840CC7e9601d30DAd1870aE5749C1d\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x3befd359c3582c3946a564263ee77fd86f740a7c55622506c5591d61737dbda6\",\n      \"storage\": {}\n    },\n    \"0x3f8A30c4E084500855A3A35b7B9Ef39cB7B90F36\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x3a650354fd40b9460e6e99f8a73f92de7aa435859e7866bdbf33c15c28575a36\",\n      \"storage\": {}\n    },\n    \"0x472C5AD2732c1CFB6B4bC190Aa174656Fe3c34C5\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x2944b92eeb6bcc8a67ae9ec10064b6148bb3f7a48a383559902b5c9576e70bd4\",\n      \"storage\": {}\n    },\n    \"0x538A8474EeaB43d5a960164c554A20400151D479\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7f5d403d91784bc5a01d145ca2b3bc1126aa736b49d5b64f563dfe7aff0f5f6fa86000527f8326efe73bdcac81a56385db8739ae0dbc5e0a85a79350f9062e79f863e06cfc602052608060006040600060b460107f3533a47707127be60396663b421c89eb8b30e456501fd24af1f191416c02e125f2600055600051600155602051600255604051600355606051600455\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x641602bAD4A323C49629d45338d79A2bb984A3fb\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x600060002060cf3560206101f26103c0630ec7c0de3c60406102d061030082819290913720600455607d60fd6103e082819290915e20600555600061045d5261010061040061018082819290915e2060065560fd61034053606b6051610100630ec7c0de8382919092909193913c2060075560016066608039600160556102203961045d51607c60e05361032d3560085560326101e06103a05e60016080f3\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x7458F9b8B5ee360A32b0b0Fe648C996C68AE8190\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x600860005560f5ff600160015d60206000fd\",\n      \"nonce\": \"0x0\",\n      \"storage\": {\n        \"0x0000000000000000000000000000000000000000000000000000000000000001\": \"0x0000000000000000000000000000000000000000000000000000000000000007\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000002\": \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000003\": \"0x0000000000000000000000000000000000000000000000000000000000000011\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000004\": \"0x0000000000000000000000000000000000000000000000000000000000000011\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000005\": \"0x000000000000000000000000000000000000000000000000000000000000000a\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000006\": \"0x000000000000000000000000000000000000000000000000000000000000000f\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000007\": \"0x000000000000000000000000000000000000000000000000000000000000000d\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000008\": \"0x0000000000000000000000000000000000000000000000000000000000000003\"\n      }\n    },\n    \"0x7564105E977516C53bE337314c7E53838967bDaC\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x766C0844EBC3c4ef4ddb86260a4D3516cCa03A10\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7d0f1aca5f5617ba53a2964ce753903184ef3ddede5412b9d553a12b5e57076000527ffbb3be712806b233cb60c29db989d7ae5349630986cf360c21342ef0b4afd1586020527fa9c802a9e71442f14ee3df13a9c3835763425701b2e669defa0f9c30e902c4816040527f0ac85b8a752a7ca64e1e784236db571b228436cf99406f9420ff8b85e1cb180d6060527f782965ec2fde9394550b911b4dc2fde13170e3af8881782cc1f400d31112dd946080527ffdbca9e214ccfaad7f648f2a211cbdd3d557f26261a34da40a9b167bff12d11a60a052602060c053601060c15360ce60c253603260c353607360c453605760c55360af60c653606660c75360e960c853602c60c95360d160ca53602e60cb53601f60cc53604760cd53603960ce53603f60cf5360b460d05360fe60d153604160d253602560d353600060d4536040600060d5600060c660097f66b9f2049709614c2523935d617f2576cecdf6d4cd80e850e0a6fa189bd9c3d6f2600055600051600155602051600255\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x837C90dc7009df3399617a7BE4f8a0cC0ED7C350\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x71a42ea3bbd6b96a66b6411dd45c75ba29bc7183fc3c007b544405b333857d17\",\n      \"storage\": {}\n    },\n    \"0x872509c90c2E045B795423F9bEc01a53d6D8Cd7B\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0xbb3f3eb75c641dcbe1001b459c59b97fdff8938be21771df376053aada5547e7\",\n      \"storage\": {}\n    },\n    \"0x8c91B5232f6C15d412e35F7A1e10827145bdD6d4\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0xba3b3739da5efe370bef502ac45ea51e77c216910dfaa0de0562c6c92a95c71c\",\n      \"storage\": {}\n    },\n    \"0x918c2E9fa4fBEdf538659e6DBbcaa9cE90AAe2B9\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x876a3a4177c591bcd7c7838ab58503507cc953a049d095958fe26dc308b25059\",\n      \"storage\": {}\n    },\n    \"0x9529cc6891Fbd5aBFABE0AE6c79D30F0CCAe848F\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7f80000000000000000000000000000000000000000000000000000000000000007f8000000000000001800000000000000080000000000000008000000000000000901b7d7676767676760000000000760000000000000056000000000000000000007f80000000000000000000000000000000000000000000000000000000000000011a9006157f7effffff8000000000000000000000000002000044000000000000000000000167fffffffffffffffe1d90056a10000000000000000000007f7effffff800000000000000000000000000200004400000000000000000000010490037a0109000000000000000000000000000000000000000000000000007806400aff20ff00200004e7fd1eff08ffca0afd1eff08ffca0a02901b7bc9700000000000000000023f00c00014ff002c00000000000022310868010000000000000000900b90027f77676767676760000000000000001002e000000000000040000000e0000000007e40000000fd000000db0000000000000000000040000000fd000000db0000d390186000557fffffffffffffffff7effffff800000007effffff800000008000ff00000100006fdac7fff9ffd9e1322626262626262600901d90167ff6376770abd3a36b20394c5664afef1194c801c3f05e42566f085ed24d002bb07ff6376770abd3a36b20394c5664afef1194c801c3f05e42566f085ed24d002bb09004901476fffff716b61616160b0b0b2b0b230b000008010d0a2b006b010000000000000000000000901b6001556c100000000000000000000000007fffffffffffffffff7effffff800000007effffff800000008000ff0000010000026002556101117f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd10901b600355777effffff800000007effffff800000008000ff0000010000777effffff800000007effffff800000008000ff0000010000056821000000000000002271767676767676767676000000767676767676900660045567fffffffffffffffe600103176005557feeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee762900760076761e000200767600000000767676760000007e40000000fd000000db0000000000000000000040000000fd000000db00000190096006557fffffffffffffffff7effffff800000007effffff800000008000ff000001000067b368d219438b7f3f90037f77676767676760000000000000001002e000000000000040000000e0000000007f7effffff8000000000000000000000000000000000000000d90000000000000111901b6007557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff156008557ffffff716b61616160b0b0b2b0b0b0becf4bef50a0df4f48b090b2b0bc60a0a006f8000000000000000000000000000000190046009557f12cbafcee8f60f9f3fa308c90fde8d298772ffea667aa6bc109d5c661e7929a57cc9700000000000000000023f00c00014ff00000000000000002230080560009009600a557f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd6b1000000000000000000000001b7702ffffffffffffffffffffffffffffffffff0000000300007e4b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b090b2b0bc60a0a100090167f82000000000000000000000000000000000000000000000000000000000000006f800000000000000100000000000000006f121212121212121212121212121212129008901d600b55677fffffffffffffff637fffffff9003600c551971767676767676767676000000767676767676671fffffffffffffff9007900360017f7effffff8000000000000000000000000000000000000000d900000000000001900617682323232323232323237e40000000fd000000db0000000000000000000040000000fd000000db0000d3712000110000000d0a300e750a000000090a0a9008901c7e050beb1c60141a0000dc2b0b0b0b0b0b410a0a0df4f40b090b2b0bc60a0a0076fffff716b61616160b0b0b2b0b230b000008010d0a2b00900b900b7a01090000000000000000000000000000000000000000000000000071767676767676000000000076000000760000900b600d556101117e1f0000000000000000000000000000002000000001000000000000000000001b1b67fffffffffffffffe6c100000000000000000000000001190147bc9700000000000000000023f00c00014ff002c0000000000002231087f7effffff800000000000000000000000000200004400000000000000000000010b600e557e050beb1c60141a0000dc2b0b0b0b0b0b410a0a0df4f40b090b2b0bc60a0a007f5fd8fffffffffffffffffffffffffffffc090000ce700004d0c9ffffff00000112600f55156101116b0100000000000000000000001d60105563800000017f80000000000000000000000000000000000000000000000000000000000000021b9019136011557e1f0000000000000000000000000000002000000001000000000000000000007e4b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b090b2b0bc60a0a100090177f62d8fffffffffffffffffffffffffffffc18000000000000000000ca000000017a010900000000000000000000000000000000000000000000000000116012557feeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee7f80000000000000000000000000000000000000000000000000000000000000019018077ee8e8e8e2000100000009ea02000000000000ff3ffffff800000010002280ff7e1f0000000000000000000000000000002000000001000000000000000000006f8000000000000001000000000000000009900b7f7effffff80000000000000000000000000020000440000000000000000000001760fffc000000000000767676240000000000002b057604702076770000000000000006823232323232323232390071a6013557f77676767676760000000000000001002e000000000000040000000e000000000671fffffffffffffff900260145569010000000000000000006005774b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b0a0a900963800000007f77676767676760000000000000001002e000000000000040000000e0000000001d90147e4b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b090b2b0bc60a0a100068066aa0a5319bcf5cb490029004717676767676760000000000760000007600007f7effffff800000000000000000000000000200004400000000000000000000010b027702ffffffffffffffffffffffffffffffffff000000030000760fffc000000000000767676240000000000002b0576047900390026fdac7fff9ffd9e132262626262626260067ffffffffffffffff900a9001717676767676767676760000007676767676766f800000000000000000000000000000017f5fd8fffffffffffffffffffffffffffffc090000ce700004d0c9ffffff00000190099010681000000000000000006005901c1b7f7effffff8000000000000000000000000000000000000000d900000000000001677fffffffffffffff9017037f80000000000000000000000000000000000000000000000000000000000000007e050beb1c60141a0000dc2b0b0b0b0b0b410a0a0df4f40b090b2b0bc60a0a0006901a6015557ee8e8e8e2000100000009ea02000000000000ff3ffffff800000010002200007f12cbafcee8f60f9f3fa308c90fde8d298772ffea667aa6bc109d5c661e7929a5901d6016557ee8e8e8e2000100000009ea02000000000000ff3ffffff80000001000220000156f1212121212121212121212121212121268210000000000000022161668210000000000000022760100000000ffffffffffffffff0000000000002e00000010901c7f7effffff8000000000000000000000000000000000000000d90000000000000176013590cab83b779e708b533b0eef3561483ddeefc841f5900390126017557feeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee7e4b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b090b2b0bc60a0a1000901867fffffffffffffffe6847839214543589705290149019017f40000000fd000000db00000000000000000000000000000000000000000000016007900110600067ffffffffffffffff1160185569010000000000000000007fffffffffffffffff7effffff800000007effffff800000008000ff000001000090039017157f77676767676760000000000000001002e000000000000040000000e000000000678000000000000001056901000000000000000000774b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b0a0a7f5fd8fffffffffffffffffffffffffffffc090000ce700004d0c9ffffff00000109901860195519717676767676767676760000007676767676767ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb9010106780000000000000007feeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee90179013601a556f8000000000000000000000000000000069100000000000000000009017600768010000000000000000901a90150471767676767676767676000000767676767676717676767676760000000000760000007600000590197f7effffff800000000000000000000000000200004400000000000000000000017f8200000000000000000000000000000000000000000000000000000000000000600790089014601b55157ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb7a01090000000000000000000000000000000000000000000000000018900b778200000000000000fe000004000000ffff000000fffff700684783921454358970527f80000000000000000000000000000000000000000000000000000000000000029008900567700000000000000068010000000000000000901a10610111651ce97e1ab91a900a07601c557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7e40000000fd000000db0000000000000000000040000000fd000000db0000d3901a601d557702ffffffffffffffffffffffffffffffffff0000000300006d010000000000000000000000000011601e55682100000000000000227e4b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b090b2b0bc60a0a10009016760100000000ffffffffffffffff0000000000002e00000067700000000000000010901d7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f62d8fffffffffffffffffffffffffffffc18000000000000000000ca00000001901c9019601f55712000110000000d0a300e750a000000090a0a7702ffffffffffffffffffffffffffffffffff00000003000090166c010000000000000000000000007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6770000000000000000890097fffffffffffffffff7effffff800000007effffff800000008000ff00000100007ffffff716b61616160b0b0b2b0b0b0becf4bef50a0df4f48b090b2b0bc60a0a0090059014682323232323232323237f8000000000000000000000000000000000000000000000000000000000000001901a90127fffffffffffffffff7effffff800000007effffff800000008000ff0000010000777effffff800000007effffff800000008000ff0000010000901d901468066aa0a5319bcf5cb47f77676767676760000000000000001002e000000000000040000000e000000000900690027f8000000000000000000000000000000000000000000000000000000000000002774b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b0a0a901d900767d021262626262626677fffffffffffffff900590181960056b01000000000000000000000090167f62d8fffffffffffffffffffffffffffffc18000000000000000000ca00000001777effffff80000000000000000000000000000000000080016f12121212121212121212121212121212900990056005671fffffffffffffff7f80000000000000000000000000000000000000000000000000000000000000009009901790126020557f80000000000000000000000000000000000000000000000000000000000000017702ffffffffffffffffffffffffffffffffff2000000000000b7fffffffffffffffff7effffff800000007effffff800000008000ff00000100006780000000000000011a1b6770000000000000007feeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee109003777effffff800000007effffff800000008000ff0000010000637fffffff10027f80000000000000000000000000000000000000000000000000000000000000026c1000000000000000000000000006901c6a10000000000000000000006c10000000000000000000000000161169010000000000000000006b01000000000000000000000090141b682100000000000000227bc9700000000000000000023f00c00014ff002c00000000000022310890050576013590cab83b779e708b533b0eef3561483ddeefc841f563800000011d6021557e4b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b090b2b0bc60a0a10006f80000000000000000000000000000001901390117f7effffff8000000000000000000000000000000000000000d9000000000000016801000000000000000090179004760100000000ffffffffffffffff0000000000002e000000760100000000ffffffffffffffff0000000000002e0000001290057f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7e050beb1c60141a0000dc2b0b0b0b0b0b410a0a0df4f40b090b2b0bc60a0a0090187f12cbafcee8f60f9f3fa308c90fde8d298772ffea667aa6bc109d5c661e7929a56770000000000000006c010000000000000000000000000990076022557f80000000000000000000000000000000000000000000000000000000000000016f80000000000000000000000000000000900460235563800000016801000000000000000010900b7806400aff20ff00200004e7fd1eff08ffca0afd1eff08ffca0a7f40000000fd000000db000000000000000000000000000000000000000000000107602455762900760076761e000200767600000000767676760000006801fffffffffffffffe1c60006000f3\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x9E607bB0Bae19b8bC75638fd1aB98594b36ba46d\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7f2fe97199e8ba5d65d5949760aba55780db6d3e27337c12a9e2584c1aea6389366000527fc9c7815cd20d7a1591df55b3df8377d64505c5ca90911be70570f7cde3de19f56020527feb1c52cc5d5b95babc9859d69614a696a7754df4ec4513bc9af9fbd9d0944b0d6040527fb658d58f26c2302e35030999f40650e0466ee0af3b918849c2eda1d6c4fefcaf6060527fe4bd2ef5d6c1341b8e475c74757076268d6f1c5916d5bb01e70d7886019c23bd6080526020600060a060006000610100611acff26000556000516001557fdc7a6a7dbd8a42cf97100cbfb5343286879ea772d7f0e486bff85bac63a41cb56000527ffefffffffffffffffefffffffffffffffefffffffffffffffeffffffffffffff6020527ffefffffffffffffffefffffffffffffffefffffffffffffffeffffffffffffff6040527f6e28fbcffd7c03caccdd22d240b8b9ff026419e2adcdf236a36b46f43e555d0e6060527f2849144bcceeceecf83553762c7ceb27864c9f34852287bd738ec484b6f00cad6080526020600060a060006101006119b3fa6002556000516003557f0f0ea7c172f5a60807b88890ceef3613666c7bc8b46ab8c6ba7f9d44c7c8d9c56000527fffffffff00000001000000000000000000000000fffffffffffffffffffffffe6020527fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325506040527fc53d059ebba0080bbcbd061e6524771ea0dc308b40f3c4ede4c8716a1eb1ec5a6060527f49237f19d71e7aaeff794817dc9f70d8a7c729a6fa39a391b5b3701d22566d586080526020600060a06000610100611935f46004556000516005557fb0c8b094b0f86fac6669fc617a9ae78274d176f28afd4133b0ff77d0f997ce966000527ffe317cbb4baf276d4432ced23f42d8c5f7d55b784db1e93057ee0fc2ea1e17786020527f4b440553855a357802be0278f1931e2e08f09691d5bea6d151656218e393092a6040527f5a91dfa926c3153f152dc0b41f6d123e4399e570bda33656750b0ffc6a7d99256060527f0b2978263b93e015de980fe4a2e55e118cf2d6c5d591977af6cf89d15631d3c86080526020600060a060006000610100611a32f26006556000516007557f55f877a03e3e31007d8ccb0037592750fe627036579cd37987d3ef76a651dd1a6000527f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f6020527f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f6040527f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f6060527f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f6080526020600060a060006101006119abf46008556000516009557f7f895cb6c94965dae08dceddc4aefdeb4f7cc31e951d89545b74675c9fc8e6036000527fd34fbc0141a54ba0519984c5194ca9df72fd36885e115b38d896115fcad844116020527f55a221cabf682a678d6d7bd6cc1c9d49900274d396e26ce619d02b49a7b83e666040527fed0684f310b426c5b27d7218a0083cf6ff1beacd1156c21d6c2cd04ee12f13b96060527f3ff4da44d7964d7de1e66c4f90e7ff39f78f4cdf4f3a5270c1d722126abd91e06080526020600060a06000610100611a5bf4600a55600051600b55600060005260006020526000604052600060605260006080526020600060a060006001610100611b08f2600c55600051600d557f1e681d3a95c766757b88486b0afd7a08a6fa770a33d3701a22e430baf948b8ad6000527f99244a30ea26d6976d18c2b999724f354cf0437c6914f905b229d6456abace266020527f02de2f85c227c376b51fbeb7f912c93de8b3b8d1b719f96e3394c780fe92819d6040527f8362b3f221591571872637755ba29fccf0be8f3663fcd159c5b11acca7b83dae6060527f88e7544e2c3ce0d17afe0f1c5003d61d4a15ce6d121c9753999e920d526b61a96080526020600060a060006000610100611956f1600e55600051600f557fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6000527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6020527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6040527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6060527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6080526020600060a060006001610100611b04f16010556000516011557f9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a086000527fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325506020527fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325506040527f4556070d69d9150dde4c0c405471e1e9d6f7b187c8a48db23e436e1bf0c5a2836060527fb27460818d4e6617c7c52296366cd6160ca2141e845656c7af89e748f55051e76080526020600060a06000600061010061191bf26012556000516013557fdc7a6a7dbd8a42cf97100cbfb5343286879ea772d7f0e486bff85bac63a41cb56000527f555555aa55aaaa55aa55aa555555aa55aaaa55aaaaaaaaaa5555aaaaaaaa55aa6020527f555555aa55aaaa55aa55aa555555aa55aaaa55aaaaaaaaaa5555aaaaaaaa55aa6040527f0691a74c0334d2c5d5f65473a379ea6f3927dfe754c742a08d391ae9e4c3a1276060527fa4c383fcbe83cce6eb2b850160756c9b9567b080d70e343074b8398346c799356080526020600060a060006000610100611c84f16014556000516015557f7514614ff040dd84409ddfc302b297d29ca8714619a4dc560aa3d4608ce954db6000527fb0c02afef69e2f48ed8f894c883394d4122f4317d1e964db799bf5da52329e7b6020527f6f65d0cbf027c882dc76923072c5d7295b43905e974ddcca2b9f18af37ccfb8c6040527f6beef3c7b6f4b8c44fd071921967d0f9be21ee44928355184ec42b1a8229edc26060527f249d6d365176c805e3d4e3c72bac6c02100a90d811311ef70ccdc495e09e6bd76080526020600060a0600060006101006119d0f16016556000516017557f5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2605d6000526003602052600660405260036060527f5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2605e6080526020600060a060006000610100611c2ff2601855600051601955600060005260006020526000604052600060605260006080526020600060a06000610100611aa5f4601a55600051601b557fd2d4f8d1fa6b35538f27aae222a56776a7eff0effbfd431936715b436ff451a66000527f61f79af730ffdfc7e4e96f985821c0a9dd7b5651b7b2ad75296cadf5ef8e59cf6020527fc45866c4591a45de590699e2457094b9b000856f7149ec94f8abf4670afdd7d86040527f88c77f3feeffd14bd137ff4bb3ec5b876e05180b532f10b77c0657e563c8db0c6060527fc6e572badfb5159adf1acd6d9ad3ed81da9eec85ef888e94bc6542fa2dbd08d76080526020600060a06000610100611ae5f4601c55600051601d557f0d5d8c3c63c36344c65b288698895195d95bcdc486db6b84bdb44000077b0c776000527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6020527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6040527f393b58bcd98fe79fc2233c31884afb05d2b359bac1d264d41268621e013390036060527e70250670d4de9ed0b37629f80990116dd8270afc189249655a041d526494536080526020600060a0600060016101006119d9f2601e55600051601f557f60c6915f999a8a80a3a861f015cd24eecb142408854d05cde1b2ad1ecea053f26000527fac7f8594b93f7916770e6e5126f31801ae95ff40ae5bd478b4a1b797a17b71a06020527febc1fead5d1bedcb5bf6a7e631d9d1ff361385d8885430a71c33115ac3278b456040527f0ff45f5f73f9e822bec06a5ae4c5141d6eadfd0d5690bea74bd0b8fe1f7285976060527f41919529738f4f6232c5840ab04e3a2bd2ceb0e1e92ebafa6c28af53c57cd5106080526020600060a06000610100611cacfa6020556000516021557fcff94bfd0dc6ee2296752d48a0e6c896215b383550c60fd0f737252e86a3012a6000527f93581041febfd49fba501e7b67693d9dc64c73df8a4af587231037e4264f2bfb6020527f93581041febfd49fba501e7b67693d9dc64c73df8a4af587231037e4264f6bfb6040527f6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2966060527f4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f56080526020600060a060006000610100611b3df26022556000516023557f893506f03e0a80f79c48203ec81f871afda5fba19e1b5c85d8e9899f7f30ed156000527f59afbf58daa9d21e3a594d20165037571f0dbd2efee0cc099417cecdd4983f726020527f8322d130c68921c15265c8505cf39f26f51cfc6c814b95980cbced5b35aaa6126040527fe8fc8871cdcd283f1422e9f99c0075eb8061fa82c8a1df63af6c0a584c4f8e826060527f18bb7ed6399701c762f5cd56095bc0e0fb6207e8f6c82a6ad257a420b2cfad4d6080526020600060a06000610100611ac2f46024556000516025557f9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a086000527fbf93dfebd62c76ad15f114f950b3881bed08dc9fd561953cbc16b6bbbe5e567360205260006040527fa5c3b4cf9cbd67295dbcb27c699c6574e3d2ea63c15e9f8c8a2516c29d38b7cd6060527feba90b54b8208ef83b22016a18ba2a1a2594e6e5d238be0aa979a546909e95e66080526020600060a0600061010061192af46026556000516027557f9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a086000527fe2c5856908d15331d57ce42f6985fa476d70deea26c9eb600cd9941ba45846ec60205260006040527fe5b8f6469372d68b77c90e8d7dcac4c91de8b8240c24931e88ead9d567a6b6236060527f87d09aad6d64667247299bd593b3b188d5fbca5b23f07ad81dce3d152263e2b96080526020600060a06000610100611a59f46028556000516029557fef02d493f62b3af6a7bfacaf888c58ae1b41d3e62bd483459f1682842ade1c726000527f03fffffffc00000003fffffffffffffffef39beab69c5e7a13cee72b0bf18c956020527f03fffffffc00000003fffffffffffffffef39beab69c5e7a13cee72b0bf18c956040527fe99e6153b13f1459ce318e9294faa5e39366ad606aa919d8124168755b0fc98a6060527faff78ababea86849c7171ee1ac52c4630b75ab736bbf602387a7453e16eccc136080526020600060a06000610100611a71fa602a55600051602b557f9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a086000527f417241b507b3a838299ce7825419fd5e77e3184e5630ed3e96b7fda7d6ae34ea60205260006040527f89f7c09aa4986bd3818ccbaf22fbf3c0a9ca814e50a5c68c86a9c2d68067a4eb6060527f0a1ac1cd8c5e4aba96b63b5b13f1cb0672c73ebd014d6a96821133fe200817136080526020600060a060006000610100611c56f1602c55600051602d557fdc7a6a7dbd8a42cf97100cbfb5343286879ea772d7f0e486bff85bac63a41cb56000527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6020527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6060527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6080526020600060a060006101006119b2fa602e55600051602f557f1f5056964e229e6d298fb8c47ac9527e6f4b8c9f3a8533227854b892233e6d976000527f481bf80e44001b0ece48327892479534e208843b2ad69314f3ceb0dc305858716020527f7384080df121c720d275226b1a11e2314c860faa7d84bffcd6a040b39d5203106040527fc41a4b5b018d1deecb157b623dbedffe1843922d0dfa9c7e62e0c69f6af3c2206060527f303d1191101730a74720bd3bd36ca47ad40d49321263bc1a4319fd289e5d97516080526020600060a060006101006119a1fa6030556000516031557f0d5d8c3c63c36344c65b288698895195d95bcdc486db6b84bdb44000077b0c776000527f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6020527f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040527f0c3569d6f79a64e80516f0c1baa003c0dbd85f2d942104588bc05febecda34b86060527f78373f0ff62818343d05fbf9db4552cc0e3d3bc3b3080a811748c05088c4721f6080526020600060a060006000610100611940f16032556000516033557fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6000527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6020527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6040527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6060527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6080526020600060a060006000610100611971f16034556000516035557f52c7f111411b6c31c4ea5148ed1404ee72dad2c4a63b5d9c07be2d57811dd9bc6000527f6045297350c3b2df194a8f520641552563b5aa981e044bcda6a33249f524f1a86020527fbff75552493d6b56fc7a65d64b61c429fc75420946bbf7f342728f45931da0456040527f335756c6c2442feb7baab1b4c00709f5f211e95276a51cdc179a1523815642856060527fad39878e95395f34586fa5c13cb8892da3d8e793c2986720c5c6d629dd895ed96080526020600060a06000610100611c67f46036556000516037557f0d5d8c3c63c36344c65b288698895195d95bcdc486db6b84bdb44000077b0c776000527fffffffffffdffffdffffffffffffffffffffffdffffffffffffffffbfffdffff6020527fffffffffffdffffdffffffffffffffffffffffdffffffffffffffffbfffdffff6040527f13045e933830966b2db4c6a0cf39f06aadca0c74937af29ff7b3c6f0450bcf2e6060527f70725c9c6c35517926279c911828164c6ddc7e97081db8fe0dd4a729b803bd5b6080526020600060a060006001610100611c77f26038556000516039557f7c2a6630a079ee1363d056bda39ae134b585af806cd9727f90fe91abd5013bc96000527f539a2d2e57a51bd8f3f70003d2236d12a9d9c728934914f19adc0b325ee3bb5e6020527fafca78e072b71496c06d81e71bd6b60b754584416e5355676f03dcb617379d776040527ff1d328d7c09978884c803174445eb275c0d6fb998b98e95df4b08d840f89aec46060527ff3bbe41941839aee29d8237388953d7e3a3dd621fb3b594c2cbf0987eeff62266080526020600060a06000610100611b66fa603a55600051603b557f975f4af54c367ce00dd0dcb9c093bc6ca66db8c689e7a75c00b2a74c923e3cd26000527f7cb05b03626922246b24bc2f58eb57afd4a0318b2d326dfc15b6ba63e827e3356020527f4a0854303660569da11ea1cf19e24b5f6a8c61a2682b315c0ddb3d4f34af483a6040527fa37a086a86b4c63de4f608623a3b109bf839637e0c4adb7688d01784ab93052a6060527f99c32c7cd905550ae9f5025b8e9c96f8f1b79739ef5a7da917c3af8d57254fd36080526020600060a06000610100611a7efa603c55600051603d557f0d5d8c3c63c36344c65b288698895195d95bcdc486db6b84bdb44000077b0c776000527f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6020527f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040527f469c3645957f81734edc5e79b5ee76faf692f010c502999fc3cfac6faebee0836060527f61c66083fc6c790d224dd7b2dcf78ae5ae6d9de7ea518daa10cce651e7fded706080526020600060a060006000610100611b23f2603e55600051603f557f183086ef5ab74e16dd3b9a9a662e247e1355399b33ad8b3e382fd7f90118128f6000527f1699eee7ae150a1333b791f118070e10b320096d9537337a6e6ab699df96250d6020527f4aa30c18c471b32295ba528c5f1913a779014f6be1366c3e096a64fc535e79516040527fa45e8ffa296f8b29cba6d3571041d76938d6e7048866a2c439aef5fe697c924f6060527f0ecddb7ec3a49789115126ebc8cebefa0f7cd0578541580c7e003aaf9df4c9db6080526020600060a06000610100611bf7f4604055600051604155600060005260006020526000604052600060605260006080526020600060a06000610100611aabfa6042556000516043557fadc5098eacdf58d42c946547737a616e805f2733b11e8217133530de1060ce086000527f3fdd1d9e9ee2a8a319768ff76ed2566a7d618b623031ee2b640b5b49e9fca4826020527f8cd2bb580fd635c34c694bcbb59895ec15efc61eb4154921973d31d47528a6df6040527f6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2966060527f4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f56080526020600060a06000610100611bd4f46044556000516045557fef02d493f62b3af6a7bfacaf888c58ae1b41d3e62bd483459f1682842ade1c726000527fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325506020527fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325506040527fa44b3f5d409dd6e3d25c670a74257af25a31645e5d34cf4e3a5d0da07e3efb746060527fe293774a13af9c848b513a08c0fc6f6e7cf52207895ca1463f3ebb1bc57c91c26080526020600060a060006001610100611957f26046556000516047557fef02d493f62b3af6a7bfacaf888c58ae1b41d3e62bd483459f1682842ade1c726000527fc98a56c8e90bb85ab2c47b157a062b43ec365388a7d754ca2bbb60385f8f9d286020527fc98a56c8e90bb85ab2c47b157a062b43ec365388a7d754ca2bbb60385f8f9d286040527f02fffffffd0000000300000000000000000000000300000000000000000000006060527f02fffffffd0000000300000000000000000000000300000000000000000000006080526020600060a060006001610100611a4bf16048556000516049557f0967b7041d5609bb5e799ab23aba07f6b2b91ff4555434b4268d3e9d5d222c876000527f7c14247677c6f4001db4cd3ee38341d2ca131a61eb822dcce09287c4837674a46020527f1a7e956dcb2c7f6efee5292e863ecc2203c0b874b8b35860dbc52c8b70132dc66040527f86f2d864f73f34c4db6172f7a5a6701bec0feb97250b6e5da8140cb3c6f4da9a6060527f7c77d48ea9dcf0ab8f305ed9e04481c71327dbfad9b8f8cb6753d3881c24e1676080526020600060a060006001610100611917f1604a55600051604b557f9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a0860005260006020527f0efe03759e8d9dc917ffe841070ed6c4fe8de83ca95db79cc73a13bb317db20c6040527ff4ba61410a012a8b7255777cab86b2896c38c36afbf2379df99524a891c928c86060527fd98510a92c7f01cc181034406ef8fc5ccdf7a03761c2c5c7d169304063f0a9e36080526020600060a06000610100611b34fa604c55600051604d557fdc7a6a7dbd8a42cf97100cbfb5343286879ea772d7f0e486bff85bac63a41cb56000526fffffffff80000000600000002fffffff6020526fffffffff80000000600000002fffffff6040526fffffffff8000000060000000300000006060526fffffffff8000000060000000300000006080526020600060a06000610100611a84f4604e55600051604f557f0fdf6115fdff593042a35352f203f84032e8ad490fb30d88ec80c27eeb59b2706000527fad3ba7a4ff393909bc4defb600d0c8941acca5ed88cf0fad0f0ddbaca4b5a0df6020527f2ccf7b3616e76306b829d32655858a5ba425c5a186c46d36d508764f9925bcbb6040527fb3acfe28d877e38a1e317ed39d64f0cc25503d7aeac467413a5e85ce947ad0206060527f76e5e1f3adf56e0ba28ef3b39d373bad671a66adf6d8636a168ad35ff8d1ac6c6080526020600060a060006101006119e3f46050556000516051557fdc7a6a7dbd8a42cf97100cbfb5343286879ea772d7f0e486bff85bac63a41cb56000527010000000000000000000000000000000006020527010000000000000000000000000000000006040527fe8c3ff17a1805a8186e1a9badc25b6d8a3f210f3c69f5fea1459f0abd81a48f36060527fb6751428f32b4bc303330c6b4f799a8250ee508d35084592698c1c2da48fc1546080526020600060a06000610100611c0bfa6052556000516053557fdc7a6a7dbd8a42cf97100cbfb5343286879ea772d7f0e486bff85bac63a41cb56000526fffffffff80000000600000002fffffff6020526fffffffff80000000600000002fffffff6040526fffffffff8000000060000000300000006060526fffffffff8000000060000000300000006080526020600060a060006001610100611995f2605455600051605555\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xBa0E31A0E75AC9a4cac4c57d6c7EF2a10e87D4e6\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7f17a0e4d33fd0936c0c618d7e4b2b3c438d916a4b17d8beb84e6ac1c30c6526d96000527f0c04a87cfd4e8a1cd8a0cabb4654ecab7ac166d50758dc912bb7b0dd930251546020527f244e8bf5bd7bad6b3667d5c9e9e249b7828031e28ac02c709889a98fcc7458ae6040527f2296710c03a3206898c112df72d48e56e53313999c3a5d92586f825ec14541206060526040600060806000607760067f0ca10b062ab2a64f6d1d99bb1517e3ddf0c6fdbcff0db2921dd54f73fccb193bf2600055600051600155602051600255\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xD74CFe323387aE2fd070CD046173026716D8D649\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7f01d82c69e8410b07c01ca9a882e46bf6daf024e4823d135695134901bbbd39496000527f49a70da2a6c8ac6c15b1698c13769f0bfc32955f226afb8e3adbd8fbb68119756020527f329ebbf77d0d3a915ad4d379945d05c9dce64bb851465d4ef63857614dfa9bd46040527fb5e0b4106beae532d5f5b6bf1d01a3ca43eaa4867d08c13fd77ffee2055d48ad6060527f7bf13d131f09815beb049cea332adcafb8e5ffebffa0d96ce28e37868811aebc6080527f6bb554b6ef4e9071617515950d9d0a988220280a2e6fc619c6171978769cb7a860a0526040600060c060006048600a7f8b755582dbe465616c420fb4ee69487e1469b805eacb028605cff157401affa3f1600055600051600155602051600255\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xDa78807c1C4567c23EB713E9fbB3b1508C1284ce\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x600060005260006020526000604052600060605260206000608060006001600162013d63f16000556000516001557ff7a7fe9e23dae84e7cf812dc695686b887ee16429b445ab6f639d00ba0f0e7216000527f637def65659e99a5b407f48fdc2539b585ba2d8f6e146f0dcd04b123e174b31d6020527fa8dd002f88937f4a4f794328b660cbb69efb2ee973b7ee99ceead3246562a6616040527feed05028ad90c4cc59e5b972063b803ff0d4b37b86914edc4f781382f46811b060605260206000608060006001616a4bf46002556000516003557fa8815f75827baf28b5644e9596bceec1afa6bd4f8b32b2719949895e4abd356f6000527f881529671c00a8c400e61d1adaac433cf1571e3067ee7db7f2cbe94089e1a21b60205260006040527fe463ab2d0df8d12bd29ec5dacc16bd6e5d7ab6a157f8ccd62d907720d31ffbe46060526020600060806000600162011adafa6004556000516005557faca9c4cba9b9c955f0c7093e000eef2860e1a26cb732db37dc0b4fe883296a486000527f140e3f090a86b98839b500e4db02f9018d7f52864a511aaeffd7a1a63903bc1c6020527f397c19feea180e19aabb56a00a3ae6e9320d882b18a9d347a9eeca5de4b6f1866040527fffff93df204a54ee623369e52cfb52683e1c054ecaf04944a112512084e62c946060526020600060806000600161777efa6006556000516007557f6e39c9b393bd2ebe4956c47cff4461d0e635da55baa39496348e1afeb933b5666000527f57afb64fe0b204ae8c5e4a815b9b4c01010954da2215d6f0d8a40309911357956020527f5d17dd5498fe5460245482e0a3f402a76c9e46088f8dc789ca9af50a513dcc396040527f637d21d68bb042f7dc33061a1c4ce6ebfd237cfb1814b76ab6dfb8d25d5ea0c360605260206000608060006000600162015b7af16008556000516009557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601b6020527f5f8eb30faaeab04c609babdccbaf477edd8db97db8e55ceeceb1bb493e4426f96040527f11f2cdc4b9300b15b4d525b65182b14c4403637c6bd09bc0a2bab3761a42994e606052602060006080600060016167d1fa600a55600051600b557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601c6020527f71298fd701c45b7c99c45bd59f5116ba047f3a4395625d5585ff1ee798a9c4966040527f1402bbae0fb1f0a7efd300077f319fdaee635704bbd83feea8e49b8b8f8f53b26060526020600060806000600060016201711af1600c55600051600d557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601b6020527fef4c53c19751307dfdd763c9eba37267498210df36acb7f5a1cd12c53ebb85356040527f1c1927f218f94017780fb1aa67ea63feede4fe536e045ab71780bccb672c91aa60605260206000608060006001612330f4600e55600051600f557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601b6020527fe7caa87d70f4898c2911be0d6be2779c4dc9c434b67253933c86bc67ce9377e16040527f47930e2e24a75680d3856231e44ff8769b3cb6d1337b1254a0db4b87a904c73c6060526020600060806000600161dae3fa6010556000516011557f76f66c98fb4388763e1a351d25cb29ba0c680057382b3b11f77b17adb3cc8e1b6000527f2cb34eb253be8115f8d7b8d7fb54fde77d53321c0bd2e8332f07b0c0ee45f31b60205260006040527f0ffe730bb67588130d639bd1116df90328063f88254f6ba2ba9b1ba800aecc8a60605260206000608060006001600161191af26012556000516013557f8f2e7197264574f3342f322f67212913ad475ad738c17dea8375dbfcf3a6b96e6000527f36ebd50703c77fb901f8889db2e34e8756673f19874eba2520ed9a5c8218211c6020527f6f6513104b24e8956fa1f70d1aac9b5a7fe120e5a1c6126f89645bbda8435f416040527fffff27ab007ff6fc61d422ff2e5bbca31b384d5151682bc86dcd2d0f1f986e4c6060526020600060806000600161ee23f46014556000516015557f84defe2b984135c45e723c479dac5e6b89dd55d2acd6b7c60e47af4b58356ea86000527fa5e43cafd9b28c27e2892fa9fba78c493f773d541780d6f7f4208e237a992bea6020527f270819b760296108387de76395ad21bf976accaeea1587e28ee61a5cc458552b6040527f844b530b95507450de77b39b53625832ef337d0c16a5a4098a8ce9d7a0919bf860605260206000608060006001600162017481f26016556000516017557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601c6020527f202f2b49fb9fa11ed602c1b85523c3d4a032730f598d258c9a8d9680690f02ce6040527f69a7c03b1b3720d0942861c62a0a3ba66646c5ff81d4812d33eb31b012aaa8e3606052602060006080600060016001620165c1f26018556000516019556000600052601b6020526001604052600160605260206000608060006001600162015bdff1601a55600051601b557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601b6020527fa18a04b28cf2058bdea13c327a857e9ea55184e20513c211f8634983862d6d426040527f09d86ca930e8f4af7258d4f018bb98a0064b7a04f8c9ce34014691164c650aaa6060526020600060806000600160016201443df1601c55600051601d557f977ebf64ddef39826bf3d737ce78d9b294f1f66bc0ae5de74941b5831d5570ad6000527f63d9d89fad7549937d74776969c34f744f7e879671791c47fc65fb549915c91d6020527f5e4123666a8d8c0bfa1721dc336ddd74892fef4e23113f17772b9560a19132cc6040527fdbcc5dc4802b0a60678b70b372de8488b82989c0ae119bf4ee54dcab710b359d6060526020600060806000600060016201629ef2601e55600051601f557f62e5e98b83df356490e80276d4f393f8d11c69b0f083adf5e4eab0a1c7c921616000527f0a74d423eaaa5027e4b37cff43c906c556403ae1c53a4dc71e02192026681d1b60205260006040527f312288e39895e53d633a2fd4b0b29f721c61c4486021fa897fc95593f96a120a606052602060006080600060016001614e1df26020556000516021557fc5719f87fdec204204aa70ad285629dbc2143db1dd617cd7943fe3ec7d3216326000527facab3633bdf64a7a9c546cb5d210502386ec46069c281ab81b441d74f915c11c6020527f17a20abd30262472cfacb8968a4d5760ffc0ae44d627eeaa018c97769d197af86040527fffffa3306ea6bba29fca6ba4028aa9431910e521898e1679fd49c01e3430c6ef60605260206000608060006000600162016d9af26022556000516023557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601b6020527f381bcc91ef1376de335677460515c3629f70d6576ff02e1fb35fd85e007301116040527f28eb299972b3a82dd3f7c947ee00db9d790800d48283f1aca4a6b0f9a81b0966606052602060006080600060016135ccf46024556000516025557fd57bf1e77bbed8ac7b2263924719b52528499babf7091eb7d0e0079df3f37bb06000527f25f64135eb85769efc877a35d80df7917f45138abc81bf61861c1519924c161b6020527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040527fb8c3d79a0302038b1f61125145d15e4518c1e7079f997a76450720ae5077be70606052602060006080600060016001615feaf26026556000516027556000600052601b60205260016040526001606052602060006080600060016001613290f160285560005160295560006000526000602052600060405260006060526020600060806000600162018590f4602a55600051602b557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601b6020527fcd24a8bf0c46d83f99232640d3e8a1482888c9e65fbefacdb7bb70614087e8236040527f79cce5ee40684d76f67ba83918858707f28b4369441431e7851c6f131044ed4e6060526020600060806000600161cedefa602c55600051602d557fddbc53839af0650083dc792a3fa55ad4c85ee036b0bf5b6345a2a1eaf05a81e66000527fbd94388160d91b09b1d77c7b4963d6bd8c27768d040be765948ffbd68623881b60205260006040527fdf1f93c3f6e3568a40f29dfa769721bb0d56ecae7db187e2a2ed59bbeeee18c76060526020600060806000600161e295fa602e55600051602f557fcbda3bd6f960de2e77dc399318b20c310387489d7ad65d4b4a5c08a849ab1a2e6000527f2f5397a52ea58822ae9ace7a80e87d6064d0b72fa202fb5c9963479d137a9f1c6020527f29f7f8a130e56c85bff30453c7f6bb6ff0c3a2329aa96f881568aff7d5db57d76040527fffff356a0b0cb79c6057fdd64104f634042cebafbae748b06b976969f8240b1160605260206000608060006001620146c6f4603055600051603155\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xE2f4CF89C9B94178B5725B8b1fd9a7F40c4a674C\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x6770000000000000006b10000000000000000000000090107e40000000fd000000db0000000000000000000040000000fd000000db0000d37176767676767676767600000076767676767614677000000000000000778000000000000000800000000000000080000000000000007e40000000fd000000db0000000000000000000040000000fd000000db0000d308603a5590076b1000000000000000000000007f800000000000000000000000000000000000000000000000000000000000000290049011777effffff80000000000000000000000000000000000080016801fffffffffffffffe06901a6c010000000000000000000000007f7effffff800000000000000000000000000200004400000000000000000000010690177e050beb1c60141a0000dc2b0b0b0b0b0b410a0a0df4f40b090b2b0bc60a0a00677fffffffffffffff189007603b55774b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b0a0a7f80000000000000000000000000000000000000000000000000000000000000029001760100000000ffffffffffffffff0000000000002e00000071767676767676767676000000767676767676901d13603c55686d5adef08547abf7eb197fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff76fffff716b61616160b0b0b2b0b230b000008010d0a2b00901a901d67ffffffffffffffff67b368d219438b7f3f901a901460016810000000000000000005717676767676760000000000760000007600007806400aff20ff00200004e7fd1eff08ffca0afd1eff08ffca0a69010000000000000000009009087f80000000000000018000000000000000800000000000000080000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb9003603d55760100000000ffffffffffffffff0000000000002e000000690100000000000000000003151c603e556a01000000000000000000007806400aff20ff00200004e7fd1eff08ffca0afd1eff08ffca0a9005603f556b100000000000000000000000717676767676760000000000760000007600009013637fffffff7f8000000000000000000000000000000000000000000000000000000000000000116040556f80000000000000000000000000000001774b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b0a0a04136d010000000000000000000000000063800000001b6041557ff6376770abd3a36b20394c5664afef1194c801c3f05e42566f085ed24d002bb07f40000000fd000000db0000000000000000000000000000000000000000000001029019604255682323232323232323236f12121212121212121212121212121212900690147ff6376770abd3a36b20394c5664afef1194c801c3f05e42566f085ed24d002bb07702ffffffffffffffffffffffffffffffffff200000000000020115760100000000ffffffffffffffff0000000000002e00000063800000001c60435567ffffffffffffffff6780000000000000011c901b7feeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee69010000000000000000007cc9700000000000000000023f00c00014ff0000000000000000223008050802760100000000ffffffffffffffff0000000000002e0000006b1000000000000000000000009011901c6044557a0109000000000000000000000000000000000000000000000000007f7effffff8000000000000000000000000000000000000000d9000000000000011a7f8000000000000000000000000000000000000000000000000000000000000000760fffc000000000000767676240000000000002b057604790146045551960006000f3\",\n      \"nonce\": \"0x0\",\n      \"storage\": {\n        \"0x0000000000000000000000000000000000000000000000000000000000000046\": \"0x0000000000000000000000000000000000000000000000000000000000000008\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000047\": \"0x000000000000000000000000000000000000000000000000000000000000000f\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000048\": \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000049\": \"0x0000000000000000000000000000000000000000000000000000000000000007\",\n        \"0x000000000000000000000000000000000000000000000000000000000000004a\": \"0x0000000000000000000000000000000000000000000000000000000000000013\",\n        \"0x000000000000000000000000000000000000000000000000000000000000004b\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n        \"0x000000000000000000000000000000000000000000000000000000000000004c\": \"0x0000000000000000000000000000000000000000000000000000000000000006\",\n        \"0x000000000000000000000000000000000000000000000000000000000000004d\": \"0x0000000000000000000000000000000000000000000000000000000000000004\"\n      }\n    },\n    \"0xa94f5374Fce5edBC8E2a8697C15331677e6EbF0B\": {\n      \"balance\": \"0xffffffffff\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n      \"storage\": {}\n    },\n    \"0xaf36d8c7408Ce8FAa1AF90AD03aF91F2Dd5cE2C8\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x824a1eeb2eb1cd2fed5f418cf700665ed57ec1f7852554a64e53ab714c96d76d\",\n      \"storage\": {}\n    },\n    \"0xf3eAc1d1B1EC8cA737bD148b1E96168024fB3F89\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x6000496000556001496001556003496002554a6003556002600455\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xfD6241df8Ce82b2Fb4126dD0e9FA931806Fa573c\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x61012c60005261012c60205261012c6040527f28988182b9f8a7c79a0b95aed2466f87f9f425a457cc11ee4bf55852380a8a466060527fa5bfcb9e4a1d70b38662b6d44f23c7c4bddbdd1f28d2844f936fe9ed4bb118606080527fb03fcf95770df98315ef2b51af23285549d05625d6cfd5cffe0736904113e70e60a0527f1616db5b415312adbd59e505af5e855ca1d210196879519ae8b207e69088514260c0527f71b3c39a48356625db6957b969775a17925d33cf8280de4f7a561f27a5bfddf460e0527fe5e6216adc6e477b29568a1969d8507ae5cb6e381067759dcc20ddfe14aeb7fa610100527f71a707817752b9c6e171b6f3ada234115aeb6af498c33b5db0dc4fdd490ec997610120527f32d738512b4c2f00c4f6b9b485813c2cf29677cd20c6935cd86747935eae847f610140527ffb999b3053067e11a0741eeb60e87c0371dbb48b7d40b623e85bedfd98fa70e5610160527f268991f22889e661e3fabd207129abbf56759f2832345854e43ad1a71a339136610180527f430b14ab247e0bdb47276cedf11b5e44248e9727f7045fa7df2d545ce6f58cce6101a0527f4fd19c751096cdfa4be443726c53ee5b3d319dcafce4f195675294d476858aa26101c0527f530b2ab949778410a7c78814f61e9f6bb8321676533927a838b47ac5e28349ab6101e0527f31107fd6f10782792ddd849fa35c8fe7c90f02353ddde73098aa5247bb90689a610200527f5ffa1a6195456df5baa48f52ddffbfa7eda47f06593503c6f0ff0fd2e1e9c3ea610220527ffac10670adaae2b42169cfbb800bc8d0668b269be87b3ec21ec103a9a516fccf610240527fcc6d0629b07aa417a6c12ef714cd46fb61934d8b85342c17a39576d5f496c841610260527f2f92b102511e7127d6a76609f7ccefe157b66b938ec02b68f7e9607ca0f27a11610280527f66b91c44fdd498be0d4363e110425122affcf7593cb924a2b9df5de945c5671a6102a0527f61a97414718ff52dbcf0d9b09935a2af4fd3f7dca4990d4b607c96fb3bd8fb036102c0527f328b13a0d4892902e98820ee7471f1b7e9e97783de8ac12e9f41b0620b12b1046102e0527f7f785e3d855e1cefd16d05cd9e55a230e2f89bab26f074373defa8a9357f95eb610300527f25b8a44212fadb021ee1bd6087f2ab0696ded7219ac526c5f8c152d415cfdc39610320527f829314c23dfe811e13a3a0e993f8b4c21b3694992ada7a7e90c327da7e5a54c7610340527feccf6eea7aa9e48a96e428cc03418bc08655cb1afff348bcba819a905b88391c610360527f4ca4cb61f0e479eb14ee59a774d44edcc35ee195bf13eefeb0986f60842a7e99610380527fcc0882223f5772c358abe73bac7813da1e453b4691e26a7670c016afaca3e4686103a0527f8d5bc1107a4cd44ea32617ce6f7920fe1feaa11f278fee50c41083c271816ea56103c05260a56103e05360f76103e15360bc6103e253606c6103e35361012c60006103e46000600562e22c90f45a0160005560005160015560205160025560405160035560605160045560805160055560a05160065560c05160075560e0516008556101005160095561012051600a556020600052600660205260306040527f398d623257e5b0f89ca25e2b0abdc45be46019a8aaa3038a92a8a4a7b493535060605279e55480c0374b2d5f8a9067f6474d5f004633d8a76ab315800e8a608052609f60a053601960a153606460a253603460a353600060a453607e60a553607b60a65360d360a75360c860a853600760a95360a560aa53608460ab53609060ac5360f360ad53604860ae53602560af53603c60b053601260b153600e60b253603e60b353607d60b453601960b5536030600060b66000600060056102adf25a01600b55600051600c55602051600d55609a600052610419602052609a6040527fa83059b5378e329797c8727a21bbaa4a5ce17616f92d360efd0b8e0e6e87da806060527face2068e180b2f589c8ec8af18afa9106ecb77dfe8804391f5ee3ba4020ed90f6080527f48498669d1d8ea97639424edc481d8c779fe88b743b65192d555d1a56ee2eb3460a0527f57e7b79db0d94440ef273372c7400f22ee2f7e5c56ac7c1b3683103753d339ed60c0527f25d0d57ff2c195bea93ad7561a1a0b28cf532746a1ea906bcde94065471b3a1960e0527facd81708c93aaec13cf93bd961a6655812acf22bc174610fd3013c119f746857610100527fc2d637609f89fe5238e89ad03e91eacdffd4c4ba4e8fbbec05d43a8aa31cff5a610120527f5dd8c032bb02bda9842e1bf592a37715a80c94f49089b7e476ba0c3c9cf555e1610140527ff794461fd019e9c9bd830afb7945a2e31d3e43c46648ba01571bb07c355b7c42610160527ff76e0318c95a675bc8455a5aa36412381ea06763e59fd7af71602a00829fa277610180527f627eecc12d38720d86e42e31af2361907e5390197b9a17392f3185579db856d86101a0527ffde9a84b91bdc18e8af1d06f3a1b37f88103369ec05b537c3be1e74b2b69ead76101c0527fb5a148b63a962d9afb9efb48937b9d60548bfa8985671a96d6829c275c976e766101e0527f70aca763727564c42fa1b898230dad822f1bfe4ac0fc0aa22e45fbded1e90b15610200527f3628fe917cf9b6b1c72d5beacf57357ed37d6887ce82d6ad51154df4951f9a0b610220527f9566f4496b2c485b22ab07c45d87d88107f97962d46b7b8fab58cc6eebb3e7ba610240527f8660583056107961d535ec1fccc43187e7208aeb9d778e52738ab27bfaf90c29610260527f13e3acd00673b6da72efd4190c969c7d34d37c2dc895139ba54eba590b7e61de610280527f40c8c5631d46295d36fc4ddb137c5a229c8d730ea78cc08547eb942183db3c726102a0527f48227b3cb22012ab7aec285f48125ea2ee143f0a39920b30cc124f8d9bbddb576102c0527fb8accb85a3c731ca0dd92f31b72f48ac7b2a21234f87a36f478736c23c8dd8776102e0527f7df9cecf0a726cd6493942ccb6c869e5236cd60c582e5370bfafb4c59783c444610300527f9534a9669973fad1b977d22e506cf8f07efb01005d3e548f547e49adfe6fef4c610320527f9aeb73e0a20b87a4c110da952b7f6daabff42479d0fb7729a5fce5949929183a610340527fb9dd655b4599faa4e8fefa7883c8200d745e59974181f3fb9710f397252c9796610360527fff8bde752a500bcd4d15351d2fa44a2058f90404372b9ffbaee1b48176e42f0c610380527f890ac58c630a8ba9338a7cd7c322f878490274a9f3c442f7e87710c489265e136103a0527f5379258d55b4f87ab59b4a3ef618c1c21d774075858c79fcf6eacc9d12b1fb716103c0527fc26d9972d19a97de02a6c6eae49f2fda2203aed2ea8f01de1423dad42db458036103e0527f773e0597bc7c984bfec573c1a4b0e5a1b4ba6d267d65c06e2a10788f1eb06dce610400527fed85e0645d6bb0809737e9f14f46a46a383632bfc938b3d12862e9617fef2d79610420527f978069fb6b915db110abf0dd59b0406f0c091dc0144af5b9fd7a231e786cf206610440527e3c49ea6db3b5abe1ca9559078cfdbc7220be3b418e7e5157c23a3cd862c311610460527f9069ea202ab2bc6277c9d2ee25effb54df9f88779051622ad91308ae29338cbe610480527f6fff93a59978e4211222679994b72b4cd102f6c5d77643daa26b9921fc0f61ed6104a0527fee3d02cc840f56adeafd7d90f916174f9db5dd0112b56d33157d9bf127007db26104c0527f8ef41eaf79c426da513126ea7431d843dbd71f318f910a2866cd706a7a013bbe6104e0527f08a9baea223276746eaffefda11d474184de3fcc2df0503febe747a6d013f919610500527fae5a022c5755ded3cbb7367e9e2ee18518d7388f538b6810afbd1cab813ea4d8610520527fe024627e8afb95775cce17a3d68fe738ba6c62b1dcfbae57a8e41c007bad09af610540527ff0827934b93c8f6043c7cbeb9feccd06a1e7949dfe85f431e41fc7bd69292f60610560527fb1cfaa94696a3cf0b151680ff0f298c4c568af8b0b4df97d835f0fc06cbc41bb61058052601f6105a05360226105a15360466105a253603b6105a353607f6105a453601d6105a55360ac6105a65360e56105a75360ad6105a85360946105a953602d6105aa5360fb6105ab5360476105ac53609a60006105ad6000600060056301288c50f25a01600e55600051600f55602051601055604051601155606051601255608051601355\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    }\n  },\n  \"chainId\": 1,\n  \"env\": {\n    \"currentBaseFee\": \"0xa\",\n    \"currentBlobGasUsed\": \"0x40000\",\n    \"currentCoinbase\": \"0xc014Ba5e00000000000000000000000000000000\",\n    \"currentDifficulty\": \"0x20000\",\n    \"currentExcessBlobGas\": \"0x40000\",\n    \"currentGasLimit\": \"0x11e1a300\",\n    \"currentNumber\": \"0x1\",\n    \"currentTimestamp\": \"0x3e8\"\n  },\n  \"fork\": \"Osaka\",\n  \"parentBeaconBlockRoot\": \"0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f\",\n  \"transactions\": [\n    {\n      \"data\": \"0x\",\n      \"from\": \"0x3F7d91B63d840CC7e9601d30DAd1870aE5749C1d\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x20\",\n      \"nonce\": 0,\n      \"to\": \"0x538A8474EeaB43d5a960164c554A20400151D479\",\n      \"value\": \"0x95\"\n    },\n    {\n      \"blobVersionedHashes\": [\n        \"0x010bcc1bacc0b4efe2fd6c8ebcb059554b7dbfec2743cb76df3b8a7ee740a14e\",\n        \"0x01c55f079e191202edc506f42463ec1ea104100252f606cce0626b18b381665b\",\n        \"0x014931ab9bd64716f12bcc820c5dd5162932205c534f4894bd6a3b622fb34375\",\n        \"0x01cbeb6ed0b278d5f17532cbcd6ef9549122ddc71647fe02b76102e661c2a866\",\n        \"0x0154f2b83c83440d2a051a27367e291a206afc88a25d7b5370e4c30c198b3893\",\n        \"0x0110029229592fd387075d3095d47f54b3be6ca3250185fd3c6b1819a77d7436\"\n      ],\n      \"data\": \"0x5c24\",\n      \"from\": \"0x872509c90c2E045B795423F9bEc01a53d6D8Cd7B\",\n      \"gas\": \"0xf42400\",\n      \"maxFeePerBlobGas\": \"0x100\",\n      \"maxFeePerGas\": \"0x20\",\n      \"maxPriorityFeePerGas\": \"0x1\",\n      \"nonce\": 0,\n      \"sidecar\": {\n        \"blobs\": 6,\n        \"commitments\": 6,\n        \"proofs\": 6\n      },\n      \"to\": \"0xf3eAc1d1B1EC8cA737bD148b1E96168024fB3F89\",\n      \"type\": \"0x3\",\n      \"value\": \"0x0\"\n    },\n    {\n      \"data\": \"0x2356de7a2eb61efa51548f\",\n      \"from\": \"0xaf36d8c7408Ce8FAa1AF90AD03aF91F2Dd5cE2C8\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0xDa78807c1C4567c23EB713E9fbB3b1508C1284ce\",\n      \"value\": \"0xa9\"\n    },\n    {\n      \"data\": \"0x196ac241c0af75099e4daac205ef967b8661f7d0ee55e80169888446cab389dd646c65e29814547a1f2bfb158ce0ae9e8ae5d568801098283650a8845d9c\",\n      \"from\": \"0x918c2E9fa4fBEdf538659e6DBbcaa9cE90AAe2B9\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0x766C0844EBC3c4ef4ddb86260a4D3516cCa03A10\",\n      \"value\": \"0x24\"\n    },\n    {\n      \"data\": \"0x\",\n      \"from\": \"0x837C90dc7009df3399617a7BE4f8a0cC0ED7C350\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0x22986B2F9A2f5E7119F940898c35e7128A4Ce7E3\",\n      \"value\": \"0x7bf9\"\n    },\n    {\n      \"data\": \"0xd6fc5421add1021ba7b3d0f87504500eb4567461d1602ef1ae47a2d245dd2cdee34746967a5147422e229a5c5c8778c4afefd07ef4180c00b3f0222bd94a12e8ae979dbd710ddc260addc6fbd1bce04c17c29aedea75e54333969278f780bc76498305159f3a8a078e56b5406c184d01ea\",\n      \"from\": \"0x3F7d91B63d840CC7e9601d30DAd1870aE5749C1d\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 1,\n      \"to\": \"0x641602bAD4A323C49629d45338d79A2bb984A3fb\",\n      \"value\": \"0x1f\"\n    },\n    {\n      \"data\": \"0x2ad0cd932856858872f48a3bfbca9954e1fbfdb23c2772e59f87706e1a3456030d23d542de2ebaca6fda3fcc9993b7d72a2f921318de9a21cab1ec8ce7e45465eac10df67fe16990a1550ec62a69fd5775d49d88\",\n      \"from\": \"0x872509c90c2E045B795423F9bEc01a53d6D8Cd7B\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 1,\n      \"to\": \"0x3Bd84e661C47a73eEe4137D185E4c31c194C343f\",\n      \"value\": \"0x0\"\n    },\n    {\n      \"data\": \"0x\",\n      \"from\": \"0xaf36d8c7408Ce8FAa1AF90AD03aF91F2Dd5cE2C8\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 1,\n      \"to\": \"0xD74CFe323387aE2fd070CD046173026716D8D649\",\n      \"value\": \"0x0\"\n    },\n    {\n      \"data\": \"0xaa\",\n      \"from\": \"0x918c2E9fa4fBEdf538659e6DBbcaa9cE90AAe2B9\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 1,\n      \"to\": \"0xBa0E31A0E75AC9a4cac4c57d6c7EF2a10e87D4e6\",\n      \"value\": \"0x9a\"\n    },\n    {\n      \"data\": \"0xeee0c1280086fdb7ac532c720e1515670341d2636959bd199c4b1100ee2e922c000ade375037f79ef80f2ae56d7abf944e\",\n      \"from\": \"0x837C90dc7009df3399617a7BE4f8a0cC0ED7C350\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 1,\n      \"to\": \"0x9529cc6891Fbd5aBFABE0AE6c79D30F0CCAe848F\",\n      \"value\": \"0x0\"\n    },\n    {\n      \"data\": \"0x4de106835d8cfd34aaa51c34b8\",\n      \"from\": \"0x3F7d91B63d840CC7e9601d30DAd1870aE5749C1d\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 2,\n      \"to\": \"0x7458F9b8B5ee360A32b0b0Fe648C996C68AE8190\",\n      \"value\": \"0xd2f0c0\"\n    },\n    {\n      \"data\": \"0x568a42c9ada39ea4fc63eca5d076638b268135716755154cce04fa66d1c83d3b8b79a782b93c2c580acfc5f492b0a5249ef931b043ed75a2577ed64d09c01e73e7a2f27f9773f18025cbcb3a61944e558cc07e2f0cf01f38acd08b33\",\n      \"from\": \"0x872509c90c2E045B795423F9bEc01a53d6D8Cd7B\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 2,\n      \"to\": \"0x9E607bB0Bae19b8bC75638fd1aB98594b36ba46d\",\n      \"value\": \"0xa1e8c8\"\n    },\n    {\n      \"data\": \"0xba2c8f11c8a564895afd28829a476c8d367bfbb098d49098520b29a75f8f12e5bf408cce8b63124f011d4aa443dcbf2d970664c0553dc1dadf390b54da\",\n      \"from\": \"0xaf36d8c7408Ce8FAa1AF90AD03aF91F2Dd5cE2C8\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 2,\n      \"to\": \"0xfD6241df8Ce82b2Fb4126dD0e9FA931806Fa573c\",\n      \"value\": \"0xa0\"\n    },\n    {\n      \"data\": \"0x45b9bac971d9e365607e39211bc22ae777703c2d\",\n      \"from\": \"0x918c2E9fa4fBEdf538659e6DBbcaa9cE90AAe2B9\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 2,\n      \"to\": \"0x1d891f21BB2a55cD9EC7a32478f7c74d757c4876\",\n      \"value\": \"0x0\"\n    },\n    {\n      \"authorizationList\": [\n        {\n          \"address\": \"0x7564105e977516c53be337314c7e53838967bdac\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x0\",\n          \"r\": \"0xb145569777677df0dd96c73eb6b4418c570eef418e7a4ba712917dd45a56411e\",\n          \"s\": \"0x29b42229e878d8946805d9067ed114210ae44977c12662476ff31ce3eda375b5\",\n          \"v\": \"0x1\"\n        },\n        {\n          \"address\": \"0x0000000000000000000000000000000000000010\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x0\",\n          \"r\": \"0x9531cc185abbefee3e6814a5cf10ce99a1e688f1d21b0740d1489dad208fb93f\",\n          \"s\": \"0x1f022a01dab73cddf08cee545dc2d66a1666887cc68547019f6afef79df9ba00\",\n          \"v\": \"0x1\"\n        },\n        {\n          \"address\": \"0x000000000000000000000000000000000000000e\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x0\",\n          \"r\": \"0x724e5fd54b886e8a3fbcbd6fa5064a01713b695653c4d95a5814a0caffaeb5f7\",\n          \"s\": \"0xe18af166931b4e7dd222c91430328dda46067572ea741a9d91271852ed19e4e\",\n          \"v\": \"0x0\"\n        },\n        {\n          \"address\": \"0x00000000000000000000000000000000000000f9\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x0\",\n          \"r\": \"0x18e2ec7135e23b538e1c0c5136cbe0c768feb1079fb10e6042a56253dff3d092\",\n          \"s\": \"0x29b40d8e0ff87562883833c3c9f219344eb40ad2ca43572c915c69ec77f1446d\",\n          \"v\": \"0x0\"\n        },\n        {\n          \"address\": \"0x000000000000000000000000000000000000000c\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x1\",\n          \"r\": \"0xd0d81ee59ae8e357dc890bbabbb05fd44eedb7be353fcc1037727be613747c5\",\n          \"s\": \"0x4806ecb33111550cb6cccd9e1d33a06001e0a9f5a79eb23763b1a45ff5f60e5c\",\n          \"v\": \"0x1\"\n        },\n        {\n          \"address\": \"0x00000000000000000000000000000000000000f5\",\n          \"chainId\": \"0xd3efce7597e30565b0dbf75a5d11130000000000000000000000000000000000\",\n          \"nonce\": \"0x0\",\n          \"r\": \"0xe51906a3e0b553c35a8ca3b27cc79430e643ca8a21b696bc475c18a37a23c32a\",\n          \"s\": \"0x73fcdc525e9f628eb502b6036a651ab1915a60fac9310a35ae6a517f0d433e81\",\n          \"v\": \"0x1\"\n        },\n        {\n          \"address\": \"0x0000000000000000000000000000000000000007\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x0\",\n          \"r\": \"0xd3ad68f14f52131b81dd73d61dc10ac1ab6ea5d66282204c1308cfee4292cc14\",\n          \"s\": \"0x7b02caed5b8df68d1f9864528dbdafb21532fd927d5f52caaf06c29e2358014c\",\n          \"v\": \"0x1\"\n        },\n        {\n          \"address\": \"0x000000000000000000000000000000000000000a\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x1\",\n          \"r\": \"0x7c5495691ec38d78992b52233530e09c309e030d3364e603055192500512897f\",\n          \"s\": \"0xf6f846316d3b89c1c5b4594a72b6473e6879e507eb263c90b658636a2f5b7db\",\n          \"v\": \"0x1\"\n        },\n        {\n          \"address\": \"0x0000000000000000000000000000000000000010\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x1\",\n          \"r\": \"0x7952eccadf9af9becda1646f83c0a72e6bff17969a41f9683dc9278eeae91008\",\n          \"s\": \"0x6731468363caa79b27a77b8fbb84f92e4518c6ab5bc2a8ecd97c2c73820c1d0d\",\n          \"v\": \"0x0\"\n        }\n      ],\n      \"data\": \"0x78d6d46b41cef61362953d9890efb78f2d2956fff5e2977bd0a513dd50b99575278878e77f89d447ab43ca0e061caff5f8193095e119d15b73da\",\n      \"from\": \"0x3f8A30c4E084500855A3A35b7B9Ef39cB7B90F36\",\n      \"gas\": \"0xf42400\",\n      \"maxFeePerGas\": \"0x10\",\n      \"maxPriorityFeePerGas\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0x000000000000000000000000000000000000000d\",\n      \"type\": \"0x4\",\n      \"value\": \"0xb4ca89\"\n    },\n    {\n      \"data\": \"0x00\",\n      \"from\": \"0x8c91B5232f6C15d412e35F7A1e10827145bdD6d4\",\n      \"gas\": \"0x30d40\",\n      \"maxFeePerGas\": \"0x1e\",\n      \"maxPriorityFeePerGas\": \"0x1\",\n      \"nonce\": 0,\n      \"to\": \"0x7564105E977516C53bE337314c7E53838967bDaC\",\n      \"type\": \"0x2\",\n      \"value\": \"0x3e8\"\n    },\n    {\n      \"authorizationList\": [\n        {\n          \"address\": \"0x0000000000000000000000000000000000000000\",\n          \"chainId\": \"0x1\",\n          \"nonce\": \"0x2\",\n          \"r\": \"0xb89760b96f0766e01403def425f9625a3e0c56f23562e28d17a395c05a152eee\",\n          \"s\": \"0x1dae2e82b53f07c9f38c7dbb123c7d1c2e01b10ca10abcc079bda42d65e0823c\",\n          \"v\": \"0x0\"\n        }\n      ],\n      \"data\": \"0x78d6d46b41cef61362953d9890efb78f2d2956fff5e2977bd0a513dd50b99575278878e77f89d447ab43ca0e061caff5f8193095e119d15b73da\",\n      \"from\": \"0x472C5AD2732c1CFB6B4bC190Aa174656Fe3c34C5\",\n      \"gas\": \"0xf42400\",\n      \"maxFeePerGas\": \"0x10\",\n      \"maxPriorityFeePerGas\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0x000000000000000000000000000000000000000d\",\n      \"type\": \"0x4\",\n      \"value\": \"0xb4ca89\"\n    }\n  ],\n  \"version\": \"2.0\"\n}"
  },
  {
    "path": "src/cli/fuzzer_bridge/examples/comprehensive_medium_1.json",
    "content": "{\n  \"accounts\": {\n    \"0x0000000000000000000000000000000000000006\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x0233362c058b2fCc8093841B1073A90D673E7F12\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x7f2c75141e16bea0fceec67f673a0a3578e66fe55a9b6405d1ce109be7593206\",\n      \"storage\": {}\n    },\n    \"0x1DEF26E2A310e3984210Bd9d4D67E19d721043A1\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x2825c17712cd3e7e5240fb76fe09ec612d0337b643e5c605c3cfea77e44d0b73\",\n      \"storage\": {}\n    },\n    \"0x1d891f21BB2a55cD9EC7a32478f7c74d757c4876\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x6f18d7e183350155e55a2059b6789e979c6000527f162a8843ab70a8eba655a2bb8d0607fa3746aad9927277b28d670f772ba0e42a6020526f0e0bbb27942303ba4643e6cc17b4e6e56040527f6d5ae618f9d71a50f10169b293f4377c461a1d03b52ec7af7b1ce02652e5cb1c6060526f0a6bdca5027d9caded893298277e37f76080527f56dee841072651c9146559bd2ae432e412014e577ac59e545c1b4ea3c3a7d20f60a0526f1edef94468137f636c21ec9b2c7d7cfa60c0527fc372437bac86e5773f2345daf41fd6677d2641dbeb85498c04a207e386d0dad760e0526080600061010060006000600b7fba950d3f783ad5c861b063c1611aab1788e41cf024c88bb16fbc34ddfb498ae1f16000556000516001556020516002556040516003556060516004556f1c12fa0ddd78a26322918fa47ee576e16000527fc52e67586447920d913c04cc3aa9d9b0cf74557abbceb64301f95290b5d98f5f6020526f1ace28b99aa546b60b40fc32cf4813ea6040527f8e261fb3e6584b44626b98af977134d78c268065600faeea62ceea235a1a4d4c6060527f7647a4aa67aa19fb376ac9862fa6bc2035a85ca785a46d13d99b2c8f68c04c986080526f07fb32d7910ec39a1559394484b8781d60a0527f217642f110a5e1af97908450f518e2b4c003babdada7c62b54933972248a836b60c0526f0b07856ee7b4a57aada15dee619726a260e0527fc03d008bc1a8657dba9292c41e0bc41dddab3c9d414d78c0b301ec95fa5aec7a610100527f185175042845c315ec8ddb2cc50b71a3e9597bce1d1528ba953af14071a6122861012052608060006101406000600c7f39438fb3e5ac23fa07111ed42f89ef3ef4a321915113e48407290248efa9839ef46005556000516006556020516007556040516008556060516009556f1819f4adb9c9197bc1b246c466357e3a6000527fa6cb0c9b4a375e66ae200da6e1635b6c498d9519be4d7e3434a75a714cab81c76020526f0215c8a410e3730f02d2607dfa1777bc6040527f435377896f04799a1096429c072af1bb7d067a82ba8ca5beefe153edfdb7e0dc6060526f0977d8785df7bdfedd6c96eb5d1b0ce66080527f902a5e36b6ba48e9b37ec7f392a20c6b6d30fe5598efa1458c16db0c1d8905de60a0526f03ad642aba1c3eb74fa9405b1c29574660c0527ff680cffdfa8abc14d05b8536bcaa9383b5a6a5395e7b3bec29149ccc3ac9afb260e0526f125e9092cebeebd9044a547721c723b3610100527faf64a6d1001edec3b9d0cbfc26a855568fcd0c7dd02eaa54654fc5cf8a41a17e610120526f1105acf307fd6b74c24fd0c91895d5d2610140527fd8870ad51fff134093ae274fbf80ed5092376bc3ee833ea1b3888f67551a28e4610160526f179592fdeba49a7c7c87d09d397c232e610180527f37ddeb4a4b52207dc0353cac7aef37e565e40aaf6315a7bb7047122a369ce97e6101a0526f0f9ba6e9332a408733d57c979b89dac56101c0527ffd7757808b6b5376955b1fab01964fffb149b470b18218402a7b5e9e06c040636101e052610100600061020060006000600d7fb79b32d94d9f9728fb0abaa92d188782899a631d43adff1e43fbf36017e0f5e6f1600a55600051600b55602051600c55604051600d55606051600e55608051600f5560a05160105560c05160115560e0516012556f12d4d9ac9d612b2e89094982ebb0dd056000527f6cb5f28780f25fcf5a7e00e969e5d39b059e7324dacfe868af3c2c6d97264efe6020526f0659b6b1f675dcff737d026a6275c6be6040527f1de5fac6d9157fcbd9f19472a9e9ab8c065856416f67960f6e41feb126c28d9c6060526f12a7858f7ff99c7ab499c2f4d52a63476080527fcd6fb54a854ece55f28a30d56cdd82e8eeb5d6068b163220cc23a48c2a6f27df60a0526f104ec55ef915b40a3b1fa5ef40871a1f60c0527fcf8911004ad329aeb9afaa479edb2484a7fb3f827175c20e7765adba071d2b5760e0527f2d6fd0a73fb22e08b7ee9928b2e629fdb39bae99d1ad9642a0dd33bec8c83a51610100526f1311944a5123ff0763dd92602c7ef4ee610120527f0f34546993528db770a0a08416a527c31f6ccf4ae2ed0fc3d42cdbf0da43f438610140526f08ac51bdd67f319fdcebf06fd3ad221d610160527f09c3f3379b1ef6438f3e93ec5d9a710c7f9a824888e6c7dd2235d161116fd8e6610180526f0ed139544b80307edf4541fd24bc72df6101a0527fefa9064b09bc16f538449338cc4f1a8cd82f7fd07c2a832ff533c191415c88f96101c0526f0f3ebc407dbad0cd2286d86b561b9a626101e0527fcdf55653f05e8ee2c2f5ccc6ad8f3eb2b8f33ff1bfb2ec9008c94003c3066a8c610200527faa0cd89a761006c7929e760d77864b7b9b38802e99b8f3ada864c205136afdfa61022052610100600061024060006048600e7fedc10d2f09c80b115e84dbb1b3e73ee442644855390baac1085016b748c56b13f260135560005160145560205160155560405160165560605160175560805160185560a05160195560c051601a5560e051601b556f0f36c4ee91f493823c45fcb1835c3c806000527fea7b2b2ea22b4de446fb739a72febc2a7a99156d212d97d1a13136f06689d5266020526f0210b2e54d4c413ea259b9b7f29a51336040527f28af4fc715a4c05bef9c30d07b263b98b3a6fd072b4f6dd16f4abc3f26df2d936060526f0eb656a6cbd02959e34fe5e93fc698b76080527f1ca37a22a5fffac75aae9fc0704858edd83a46264428769dd541255d9ed8dcde60a0526f0e55065268cdbdfc6f89c1f3a452c7f260c0527f68b9709ca49c9af06c27934493e952cb7d854cc37ea6df8558c06c77fad0bf4f60e0526f08b02b9db5015bf4965e874d7d21ee7e610100527fe2c3d5dcd2bcecc4de0cbf46726cd46408768e174930670ae1d91e4e2a9b9512610120526f12623863c9afac9aed09eb3dc12d1360610140527fe19cab5ea99227983aa3d4269a460b422fb68588cd95426896c86bf055279549610160526f1764827fb27b8401fd698170d88ffcd7610180527feb8f62fa7f06757a4066319ab99686efdd6a8dad8623c0dbc5bc1237bd593aa96101a0526f0187efd101687306a301cf3e33d8baa86101c0527f97a874fe3b03f271a832b0c9a5fde81b9d6418ea17af8fb91d424c57bbdb91286101e0526f024aa2b2f08f0a91260805272dc51051610200527fc6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb8610220526f13e02b6052719f607dacd3a088274f65610240527f596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e610260526f0ce5d527727d6e118cc9cdc6da2e351a610280527fadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b828016102a0526f0606c4a02ea734cc32acd2b02bc28b996102c0527fcb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be6102e0526020600061030060006034600f609cf1601c55600051601d556f02f499ae499faedcd82c997714c7d5a46000527f2a5fd4153be6e4c28059f4321a1049ae8a457737265470fe86c63b4726dcc3c6602052608060006040600060107f8a49f51ce511219504f9cc6a36aa91dc00fa02a2c0a3bd8131f89c6177d8fda6f4601e55600051601f556020516020556040516021556060516022556f14464c85b84b5df1762b9874fbaaf88e6000527f5f36783755beb33a13b2d48bd63aac0e0f5e9341e6850bea6aed77127dfd6df96020526eb6cca1087d6fb29d9cb9b48be39b616040527f6626c90fd491649070034b958a8fa2b0e21fc8bc073fc83871727d09f6e19ef260605261010060006080600060117f204423d923e464bf4026ba530dc24a2c11827699ce253883d0048d330f49e236fa60235560005160245560205160255560405160265560605160275560805160285560a05160295560c051602a5560e051602b55\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x22986B2F9A2f5E7119F940898c35e7128A4Ce7E3\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x6009602960256095604a609260bd54155833303b8415735142a344987d3b99958c454796335e7d3c41951c19805d1337509a12496a589a7739a2689b833e3407513d3b00031b4971a39ca24143915657f51d645b494407589af2a05076137f567d3f780a07676c4a786f7a48460930308f6b6c6c843830fa975d65a431346ff51a7c5954345e74301b3e9b3a33fe053619195d9e17661e151d515f41f306858a7a6e183e74006b68033478f2156244719262160443025f316e1e3b78008606a14647ff7c201a6f6c3070864a3008185a0a03185d04a33af508337b353ca23b3515563d7e8646803ba0751c9d480613765216187371097af43a436a53633bf5460052599c123f3c06086b0b75785c72700a0b1b8a33158a9d3b6f60476255656c370402336b03068d05037f79536d619c966d4a171b17991a6e56091c55146d5b53643d51741d399f7f62485887745a908f57766a50111cff0b6d687c80ff770a60fe6f423437407d543c325a89125a3a57315b0a6a7034fd5a58201c5341653f919c72fe633c6f147a30375f8e30486c141210773a6609130a601a799c503847171d37175e17011646765d0bf51c95188b74314316150076707049610a1080fa8d680a53204275905091175f6e516a5a67063698fd8a5f3b610237696f41466d7f331aa39d09f101897a4132916d9b1b015674885a4a55065a5770335bf58808f1a47f9288133e445671453481048e7956345a364072866b024613100ba45c321e983258058974106e69998d1b611a0b38306c156e7c683e593a7d3a3a5f91635a02453a7f6264966d40985e883d720359823a57063e6c340b5f5e10351890ff003a66755215373073097d4a97610a124566687853015d165c8f50690017197e917a523f77390b6712611df5f157657368369646160702746579033a1e6b6f5d104979609a72035d975436779b067705775880048d6f1d3e7c387052f43a9a580a006c6b63f3ffa1171892ff8a79553f406c4a046614a0638c465b58407574309e05597b5d573b05031135423c9d195262010008113d6e5e92353a4643029b9a736b8a76877a0a050a457a3541a111617b1a3e8643205e4aa4086c8a9c3a5d1a5217489b10a37d77040608651e3a343e1890406b7e8e7443349e377e57196e7478076151313e08879d19583697928989900b447a31653a040b51356962760268057b8d3136035b37585001f20776195d71a085556ef4736c338f6cfe995a7d5d12f03a5d9b681a6457053c7795761283109a81771cf24a3e71174833f253866d0b6c0138f17e7b461a441bff7f9c43376b480a45367a62193c1b581e5816327f473670f402473f1348663b9e517b0100820b56fe7e7e9b386e04f5935a8a4738090307649419173a3188ff601076511d6f473d519152323b703af0f31c016157\",\n      \"nonce\": \"0x0\",\n      \"storage\": {\n        \"0x0000000000000000000000000000000000000000000000000000000000000000\": \"0x0000000000000000000000000000000000000000000000000000000000000005\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000001\": \"0x0000000000000000000000000000000000000000000000000000000000000011\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000002\": \"0x000000000000000000000000000000000000000000000000000000000000000f\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000003\": \"0x000000000000000000000000000000000000000000000000000000000000000c\"\n      }\n    },\n    \"0x3Bd84e661C47a73eEe4137D185E4c31c194C343f\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x6000ff7f1f4eaf54315c8fae4e6d3a941db177e3868769ee85c9e234085f7093ff2440626000527f9d7af2156eaac085792d574cbf73ac0b224620fba31f374ec0d4531cd6f4f7386020527f1950b494d7aeb286ce51c460d4c512946c26af7b169c969e7da114ce7adc8d766040527f909210f7f694e2ca6c1d60f6dced44d9c18e9093e026d102f8d5339046e0c1d16060527fe368c0e9c5cb0492305455ab0a1c0f37501c901b404a1c027eff554fe35a07296080527f6ad5803c0a0838d2da46ec60842496d768b7075d698cc666480038ff29e05ad760a0527ff7f742ea0d73c844228ee63b620810759f3bc275f790c8e0bfda754479b5f0e460c0527f9ee360a58a352ebb2853bc95a9181e6da00f0bd105993384d12533e7abfd46b060e0527ffa992bb9e68c423a8a3c834bb541d8986e66b1bf2eac3281420bfc1d08434219610100527f6c5b212321f86af0ac903c35f370673f0d3ca1994da43a6bad6439b610260319610120527faa3378aced9bbf492423e078b82103d33f3ae4caebe93e76a342e745fcdc9726610140527f05014092cefffeac2583a70145acf06b8d379f9a6c4eb1e2663da51a3ed400fc6101605260406000610180600060af60067f6e26585d5fd0a6ddee33d39117e99f8ae9f67d8185c13f8fed674ae80c121c74f2600055600051600155602051600255\",\n      \"nonce\": \"0x0\",\n      \"storage\": {\n        \"0x0000000000000000000000000000000000000000000000000000000000000003\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000004\": \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000005\": \"0x0000000000000000000000000000000000000000000000000000000000000006\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000006\": \"0x000000000000000000000000000000000000000000000000000000000000000a\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000007\": \"0x0000000000000000000000000000000000000000000000000000000000000007\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000008\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000009\": \"0x0000000000000000000000000000000000000000000000000000000000000006\"\n      }\n    },\n    \"0x52439296aa999dbCF01bA02E03F5d59F0AE8Ca46\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0xaa07ea6d7ebb90738862bff26aa53633e9a6a4c2732f31c270f5a02687a06eb2\",\n      \"storage\": {}\n    },\n    \"0x535863dA03bc1834eeA10eeab8FF498565F33f2d\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0xb214f8d7a564be547e6de1404f829b88b9c5f1bfc42a708554e97423e49a9def\",\n      \"storage\": {}\n    },\n    \"0x538A8474EeaB43d5a960164c554A20400151D479\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7f96e27046ed622a1ac747d68654f22e78d72ebd5dde5cfe5244e8a04d8c59307f6000527f0cdf327d2d3b444f88d3e2dd89f5def6e143135120384cd4cda73cdfe8cfb6556020527f73c2af4f9cff559dc5e76c1c8c1074891ff284df755d54c990bcfd89410efa8d6040527f7d870f436757bec47394f2c6fd4ebca744cb39659dc9759dd20a0934b93449a66060527f254171faae8c94052703883b5cc818dc8d4f0a182583388abcda9d7d3b98885a6080527f0298db5babc9b6915fd16c9d77e9a9b0d5698dcd7c6798d4406082516ff92f6460a0527fdd3fd1b61ab3f616b967192b48d6846d5eb669b8191ab24030bc5c322016ee5a60c0527f6f9f9a9dd0f96c49b9a1dd4ec33c20556baee81ee0a6dbac1027bbcbd2d78ecc60e0527f35c2c76473ef7fab214d4094ccc9fb10be83173276dddf1769cfbf1fa4fa0869610100527f084b1303321eb6708e861622f0e697a6f7bb6b28924cbff65561dc68c4d70789610120527fb38665a80c68ec7c4c5926675b598c8e2c559664f2de200ee44fe4c79c691a8b610140527fe35f61a689d051e2ef0e84c0d36c1a7deb4fec99447762591c6f6096530bbc66610160527f24589df6f317949386b8986b6a659899bb0c0b0ef1fd412a0b885921ad867201610180527f419906d725ad3628677528d9735308ef7b51c8aff282640658ee31f1e0ea04836101a052608060006101c0600060ae60107fdec1d9215e7dca700a09dcb57f9076e9d92bf98b71253c9f8aa0c2f7bf0e8c58f1600055600051600155602051600255604051600355606051600455\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x5CbDd86a2FA8Dc4bDdd8a8f69dBa48572EeC07FB\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x641602bAD4A323C49629d45338d79A2bb984A3fb\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x6102e051608060006103c082819290913e20606d5560606103206102f05e600c3560606102f0fd\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x7458F9b8B5ee360A32b0b0Fe648C996C68AE8190\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x600bff286001600055600660045d7f6001600155600060005d7f600054507fe4014fdbc93a0c052fd4d7fe3b1827156000527f906b6af91af7e5189c91966000527f5d9f7c1dd36000526040600060206000606020527ffa7f115422365081605f82110ba02d6020527f8f3f386c56309ddfcc0d9555be6040527f0ff1eb52b5a7f46002556000516003556020516040526060606053600460615360605260606080536055608153606060825360626083536053608453606060855360636086536060608753600060885360f36089537f1a2488a7583830e08a2d3d95491bc5cc8a8bd4324a308e2ae656ab355a6a7cee60a0527f202459f3ea19d89fdf452056ecb75bbedbf440c26cab6fc613700b334ce193d560c0527feb871f1876b0658470874f9ff9209b1d958f9002365e0aba7e9acbea7e98632960e0527f5d88dde4a225dadc9eb6444cfc690c047831a9d0d65d4f73a4432b8749ced7fb610100527f45b0ebf658bcae7bc00f675b825aa5749016393917c06e56554f646f20e0528c610120527f87e743b4b23c3a75cf536ed88c258677a578cc76b164b77955e5cab4bb0e3e8d610140527f37d9a1d4409d48965ceaf0bdf64f54f49194aeef28c06bbe1f1e7c0054248147610160527f039deaacdf4659d9d892b472b67a4642a5a605326275bdf953aaa76d4950706961018052608a60006000f06040600061010060a06000855af1600555600051600655602051600755600855\",\n      \"nonce\": \"0x0\",\n      \"storage\": {\n        \"0x0000000000000000000000000000000000000000000000000000000000000009\": \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000a\": \"0x0000000000000000000000000000000000000000000000000000000000000012\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000b\": \"0x0000000000000000000000000000000000000000000000000000000000000006\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000c\": \"0x000000000000000000000000000000000000000000000000000000000000000d\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000d\": \"0x0000000000000000000000000000000000000000000000000000000000000011\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000e\": \"0x0000000000000000000000000000000000000000000000000000000000000010\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000f\": \"0x0000000000000000000000000000000000000000000000000000000000000010\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000010\": \"0x000000000000000000000000000000000000000000000000000000000000000d\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000011\": \"0x0000000000000000000000000000000000000000000000000000000000000009\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000012\": \"0x0000000000000000000000000000000000000000000000000000000000000011\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000013\": \"0x0000000000000000000000000000000000000000000000000000000000000004\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000014\": \"0x0000000000000000000000000000000000000000000000000000000000000010\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000015\": \"0x0000000000000000000000000000000000000000000000000000000000000012\"\n      }\n    },\n    \"0x766C0844EBC3c4ef4ddb86260a4D3516cCa03A10\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7c1810006947494e06de82ec6c913c636d201144aabea6c44cdd285c84106000527f833f564ca3bf6dc32bd8ac866434694f71293812e07d12849bc05213c23691646020527f6d33a0b53d3df1a6de97147b5157cae198686cf1533f6bb9833007bc7fb3e61e6040527f6c91e941fdb2af7b0b19db801767c3e87460dac3906a9075367654892b622a426060527f52769125e5c0d9dc254d06af85a9a45919df1ac386697f81f5c4ca9b3d0eaab96080527fa6d3cf4af84dec80aa879b35bcdbf309d777663fc6b92942e34191503b3ad03260a05260cc60c053606b60c15360f260c253609f60c353603a60c453603e60c55360cc60c65360cb60c753606860c85360e560c953601a60ca53607a60cb53602460cc53608a60cd53609060ce5360e460cf5360ff60d053609060d15360c760d253608660d353600160d4536040600060d56000603260096008f2600055600051600155602051600255\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x79cca006f0792Bf40a6d4E011c2884eD862A52DF\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0xada9e915b45b3f9f3f335fe00a484308905ec68a78d49750e1a47ec4f9c17d23\",\n      \"storage\": {}\n    },\n    \"0x862B38c425EF5544d0127449A12c89C46dd3E050\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x35c0e7a818e7367e6218647e77752b4b0d92f50362a7eff324915762586509ba\",\n      \"storage\": {}\n    },\n    \"0x9529cc6891Fbd5aBFABE0AE6c79D30F0CCAe848F\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7f80000000000000000000000000000000000000000000000000000000000000007806400aff20ff00200004e7fd1eff08ffca0afd1eff08ffca0a056c100000000000000000000000007ff6376770abd3a36b20394c5664afef1194c801c3f05e42566f085ed24d002bb005900b6f800000000000000000000000000000007e40000000fd000000db0000000000000000000040000000fd000000db0000d305901363800000007f5fd8fffffffffffffffffffffffffffffc090000ce700004d0c9ffffff000001712000110000000d0a300e750a000000090a0a9009901a6b0100000000000000000000006d01000000000000000000000000001d177f80000000000000018000000000000000800000000000000080000000000000007d76767676767600000000007600000000000000560000000000000000000090036000556f800000000000000100000000000000006c10000000000000000000000000126001557d0c76f4afb041407a8ea478d65024f5c3dfe1db1a1bb10c5ea8bec314ccf97f7effffff80000000000000000000000000020000440000000000000000000001016002557f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd637fffffff1d7f5fd8fffffffffffffffffffffffffffffc090000ce700004d0c9ffffff00000167800000000000000168210000000000000022099011151c6a01000000000000000000006380000001901d186b1000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb1d6003557e40000000fd000000db0000000000000000000040000000fd000000db0000d36fdac7fff9ffd9e132262626262626260006600455762900760076761e000200767600000000767676760000006901000000000000000000900717197ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb7f8000000000000000000000000000000000000000000000000000000000000002901d6005556780000000000000016f8000000000000000000000000000000016056006557f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd6a0100000000000000000000900760075567b368d219438b7f3f7e050beb1c60141a0000dc2b0b0b0b0b0b410a0a0df4f40b090b2b0bc60a0a00901768066aa0a5319bcf5cb47f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6c100000000000000000000000000805684783921454358970526f8000000000000000000000000000000190071b6008557d0c76f4afb041407a8ea478d65024f5c3dfe1db1a1bb10c5ea8bec314ccf967fffffffffffffffe1b60095567b368d219438b7f3f778200000000000000fe000004000000ffff000000fffff7007702ffffffffffffffffffffffffffffffffff20000000000009686d5adef08547abf7eb686d5adef08547abf7eb1d600a557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff677fffffffffffffff05901015600b556f121212121212121212121212121212127702ffffffffffffffffffffffffffffffffff20000000000090136fdac7fff9ffd9e1322626262626262600777effffff800000007effffff800000008000ff000001000012600c55680100000000000000007e050beb1c60141a0000dc2b0b0b0b0b0b410a0a0df4f40b090b2b0bc60a0a009006600d557feeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee681000000000000000009001137e4b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b090b2b0bc60a0a1000651ce97e1ab91a02600e557e1f0000000000000000000000000000002000000001000000000000000000006a01000000000000000000007f77676767676760000000000000001002e000000000000040000000e0000000009009712000110000000d0a300e750a000000090a0a63800000006c10000000000000000000000000090760006000f3\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x9E607bB0Bae19b8bC75638fd1aB98594b36ba46d\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7fdc7a6a7dbd8a42cf97100cbfb5343286879ea772d7f0e486bff85bac63a41cb56000527ffffffffefffffffffedffffffffffffffffffffffffffffffffffbfeffffffff6020527ffffffffefffffffffedffffffffffffffffffffffffffffffffffbfeffffffff6040527ffc3a2f02de65712b945c08d0980ad749b92bd7d38f1b3e470deed91662736a1a6060527f3da9b83f28fb59f39d695d836c4595213f2e68b3b8a5bb83a114df3734f673d96080526020600060a060006000610100611bb0f16000556000516001557f9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a086000527faaeec1df015b2c79efd02a48950975617f8513d1f23dd02cb37cef70a1a76e9660205260006040527f6b25db539f5946185cbe132e22ad09e1c01fab7afcc9c52d5b940d7c87a9ebab6060527fd5a90ce8b987b05942d0d6cefa2a5c864bb377c4e876dd42453992055b4a50c56080526020600060a060006001610100611ca3f16002556000516003557fbe490cd43a8c01bf6a07ed9ffc82d88dc8661980f11412e953a32768132ef2366000527f7b952eeb664746755c081599cf42620b39a630439719b17a0dfd8beed77ccb2e6020527f01c1e19eec67f278e72a7c65b8a304172eb1290a81324a8921ae362f3a20068b6040527fff9c58a91b2e2d65525c7cc313c4d9e806efebe2b25f94e970f253fa14b78d016060527f5361d075c7705e054d8aaaf2e2bae692828827eecb21697a0e50f594dc6ec8bc6080526020600060a0600060006101006119fcf16004556000516005557f4ad81e14a688ea777d58214ecb6214763735abbd317e3ae7f789254666a873766000527fb5979f0161380baf7720bf616da397578eb9f5c54750a8bdd7b06de7d549e0f26020527f765171a147b702a79decb6174bbc322f9a5faa5737d08efa04d8ef8b2c7e355d6040527f41b63405d22ee996112005b48fe252bd767d60147a83a579003db8c80e88f4726060527fd8eadb1ad524deafd2791cba205e43ae1416040133e84075639184b180e7ae4f6080526020600060a060006001610100611ce4f26006556000516007557f95454173cfdc225fb21debd06f84ed70994e98e634852bc59122192795a562706000527f7097bc46cc19a70bea1e2122383ef1dd87ede22020e8c90232b086923d624b1b6020527f5248d32f23121577145b806de74c030e2e26052f8024092d6b7ffdf08529f6836040527f3a471768c788e80a9e0c79c6514e91e244544d18d91c5e6d647d8dbf469b13926060527fab397df44745e87f5cb6fd5c279c4456bdae8d5ab21cd0b476c802047be6aebf6080526020600060a060006000610100611b1ff26008556000516009557f55f877a03e3e31007d8ccb0037592750fe627036579cd37987d3ef76a651dd1a6000527f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f6020527f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f6040527f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f6060527f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f6080526020600060a06000610100611cd4fa600a55600051600b557f0f0ea7c172f5a60807b88890ceef3613666c7bc8b46ab8c6ba7f9d44c7c8d9c56000527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6020527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040527f0985caae0f3ee3530d6ac3e401171f1dcdd87cd77137192312c65c16a0e230e56060527fbc539f7392385647f381799037936d0f8460d9aa16928f192f085d32ca60fac26080526020600060a060006000610100611b2af1600c55600051600d557fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6000527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6020527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6040527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6060527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6080526020600060a06000610100611caaf4600e55600051600f557fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6000527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6020527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6040527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6060527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6080526020600060a060006000610100611bb2f26010556000516011557fd95a8a726d8b94500f2b1da117e9b1720c4f0f4ffacab4ef82ce69e5bf0f837e6000527f18ca11386098e3bbb69f2295e67a3d92c225402224f32926597894fb0a1c338d6020527ffeafe36c9b3c6426c2f5cccb21b765f489f7a549f1b94d0fba5c5f2150a53f5f6040527f97dbd752f38179710604ba60b84b2b43c8360dcfb58a7f99bc2e4d73aaf2c0d26060527f1a6d57f85b6654b3d246f7399fc0491529acf9baf253229e1cfea1f652d56aa26080526020600060a06000610100611a58f46012556000516013557fc9423f1212150d2f42d3d65735ec98a59f0fa7cfee9851efa0da6477383f84106000527fb3f71f3eb2437c230de62fce1f175b724c23adfc6fdff1863b73e71b17a0a3416020527f47341a2c30078fc15c2d9ff0fe33dc54a2f79ec53367d6e1bab8d48fbf265bbb6040527ff9459daf8d64f0765c546c4ee8099fab2bbfa31fd8cb21df9780c31a7ed7a2f26060527faa0a9a0f8a06c5385411f2efb5791de6750fc711805044550e2883846b817d9b6080526020600060a060006001610100611afbf16014556000516015557f8ac0f7691fb4629af96eb4b962e7e557b3928b47a38f452a1cf24df0c0ce2b1a6000527f97c6bddb1a11e1e223c3008c4b5bdc48c998b30c151734a5e48acb62f7041e096020527f9ac61545dcf4cb6a47cd983e9538919611d8228a028962787ea750505cc323b76040527fcee4c729d8bf46d0e1aa5c2924b70a2e1458ac9b082a21c7fa5c8c91000a1d326060527f669d02080b01b70b086bd2a25d204c7cfdecc5a68e8aae5eeecc24df23f7d4316080526020600060a060006001610100611c4df16016556000516017557fdc7a6a7dbd8a42cf97100cbfb5343286879ea772d7f0e486bff85bac63a41cb56000527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6020527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6060527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6080526020600060a06000610100611b30fa6018556000516019557fef02d493f62b3af6a7bfacaf888c58ae1b41d3e62bd483459f1682842ade1c726000527bffffffff00000000000000004319055258e8617b0c46353d039cdaaf6020527bffffffff00000000000000004319055258e8617b0c46353d039cdaaf6040527f37cec76d1f3bbfec96d5feb30a095d8bccaf8e3b3fd246563d44876c7e023a816060527f2a5a699c56efb1b8cce8066db3ea053eca2f92fdf27d978e9d043b296dad7a376080526020600060a06000610100611c1df4601a55600051601b557fc598d1bc7b8deaad833597c6065bf2c5e39c14fbf6857d24017a9a52a783be5c6000527f1e52f24e498515f78270588cb3cdc1dad2256baf7b4350223143a9696a36574c6020527f3bbfae4facdffbb18c8f3d5df6fecda9339decc06c8d43652c73b2ba43f5773a6040527fb6a9068ce72b7e6724d70493a8e28c656aa8058a47ea010a95d73905b25bdd716060527fb674f6b897dfed1e24cd7825b4d7c25396a4b84840fe9d99201c5c5e833d96946080526020600060a060006001610100611b2cf1601c55600051601d557f0d5d8c3c63c36344c65b288698895195d95bcdc486db6b84bdb44000077b0c776000527f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6020527f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040527f7421a12359bf7f411da04037c4168a24aebdf951546d203d7f52c1d9a083086a6060527f844fa38b8e9588a8a8a6a8ecc77de074e4b104edd2ce74d0cdadd2674ba28cca6080526020600060a06000610100611a39fa601e55600051601f557fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6000527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6020527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6040527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6060527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6080526020600060a060006101006119fcfa6020556000516021557f9d121cc301f8aa0b6c410c09755c16006410ef563790acd435ef44521f31444b6000527f6018d9327b3eb5c170a4b5ce7177734f914c0d42d6b8706ff4cf775ed56bfe5c6020527f1216f7a990c04237f0e44a6705030d84cae4ec8d797b9373cb8afe7771824f2f6040527f83b03bf29b9090a15ce7a7cbddc2b937b10bbb71c988cefda85a0fbbe31bdf376060527f220cb57b3bae8643a825a585ffd2982ec3e5227784ff9dbd113e3c71faf998d06080526020600060a06000610100611924f46022556000516023557fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6000527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6020527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6040527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6060527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6080526020600060a060006001610100611955f26024556000516025557f911aa27b36f7d952dfa15589fa0acdd4353d802f9e646a27cf515b3b0c6ad9f26000527f9870e87a88d959d124a98b897a79732bd613d9363888769490327ccfbc8c85606020527f85bf05a8f523b212d5a38da5f7494760ea94f79717fb401cc31c0b52012d89c56040527f151cdc310d1c0fb068193dd9995cf6d33e21f4c543b1420b28b60e264cf438366060527fc02016e4f0a388500dda3f644c0a0a8369243df9efb5db3d08ac8d1911eb149a6080526020600060a0600060006101006119f3f16026556000516027557fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6000527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6020527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6040527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6060527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6080526020600060a060006101006119bcf46028556000516029557f9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a086000527f99ee9c85744518a641fb86485494690139f717ae93817a0f56ae938040e2064f60205260006040527fffc0f614ee1e3eb711183f058772b9b99f3d17ff31a7de44ea279b86e659ce506060527ffa558b6d6b4b9fb6fb28c55bce8acb4d4f437d3615dcbbc0a5cbfd8807833bce6080526020600060a060006001610100611a12f2602a55600051602b557fef02d493f62b3af6a7bfacaf888c58ae1b41d3e62bd483459f1682842ade1c726000527f37b7a14518d8e8c2c425b7a5fcb2e377296874a15dd38945013a81877a07c8946020527f37b7a14518d8e8c2c425b7a5fcb2e377296874a15dd38945013a81877a07c8946040527f04fffffffb0000000500000000000000000000000500000000000000000000006060527f04fffffffb0000000500000000000000000000000500000000000000000000006080526020600060a060006001610100611909f2602c55600051602d557f9add50aecb2590beabb40a73e52cb7d25eee639a881c53aec8229c3c89b147c56000527f22773d54fd753a32afb62abe1bc9edfa1bd447242925928b498311022a4088046020527fb4be5a59e02f6c6fdb331753e275322d60b3b6ae41886cecb24b6a0fa38b482b6040527ff9195e00fff88c599a6b5616733f28fabb45c11a93092c035562396e523a7fbc6060527ff338d766aa5b91918b6e29c80eeb8d6b912a0961e2974ec5e3d86a75e06218556080526020600060a06000610100611c62fa602e55600051602f557fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6000527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6020527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6040527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6060527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6080526020600060a06000610100611c83fa6030556000516031557fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6000527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6020527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6040527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6060527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6080526020600060a06000610100611b9afa6032556000516033557fef02d493f62b3af6a7bfacaf888c58ae1b41d3e62bd483459f1682842ade1c726000527fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325506020527fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325506040527fc37c841d078259954317bfdcfa432ecfb86253f87270028f023bafa2dd25924f6060527f0bb4264610afcd1aaa8c08467a307f396f8de2b77a0ebdab2b2870563909da5a6080526020600060a060006000610100611aeef16034556000516035557fef02d493f62b3af6a7bfacaf888c58ae1b41d3e62bd483459f1682842ade1c726000527f02fffffffd00000002ffffffffffffffff36b4f008f546db8edb2d6048f529706020527f02fffffffd00000002ffffffffffffffff36b4f008f546db8edb2d6048f529706040527f7c6f7895747231ac77d562339b36a17666dac663ed5e15f8ae40cadf411cee2b6060527f5dde658d2a1b8ec9ae16d52ba9d04e5c0387810a562775dced140eeb21b29e926080526020600060a06000610100611b38f46036556000516037557fef02d493f62b3af6a7bfacaf888c58ae1b41d3e62bd483459f1682842ade1c726000527f20385e628215070814ecf86812295e71fcd8a943aa03877f57f7868979eb6c6c6020527f20385e628215070814ecf86812295e71fcd8a943aa03877f57f7868979eb6c6c6040527f03fffffffc0000000400000000000000000000000400000000000000000000006060527f03fffffffc0000000400000000000000000000000400000000000000000000006080526020600060a060006000610100611a13f16038556000516039557f0d387666d4a50b0794b35a1e676f95921ab4a9a0418d6d90dd7dc279bfaf05c16000527f85053f55f125a5458f9ec4dbd99392a5e913eddfa113b37a8c6fb531e07d36726020527f93a478228437246e849746a0cf48fcd25bd8ba790ea446217d227ed1fde8b8276040527feaea26fbd043f12db289b0745b8c77395a68a6c96cbe4ad6137bbe1a7e5edc546060527f7c5406ac087ca551dad122d9088dd93360a7ad33c3c7b92d7e56887e0f61f3946080526020600060a06000600161010061199cf2603a55600051603b557fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6000527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6020527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6040527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6060527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6080526020600060a06000610100611b0bf4603c55600051603d557f75a4be67ccbf899fbde0dd16b3c3f6ac6278bfe397ccff21857d15da866bcc4b6000527f1256f1fb4828792144fbf30fd0f9bd3315e64786bee2fd21f264bc2dcde845516020527f2c5723112c82d6c1f80000ce4a6ffa343377307ae58c5f2f704133bdaa9ae3c76040527fa574345be4ff67553c7bc71701665077ee4b6e3e11a15eac13770fde5b233ca46060527f3572978e4e046c9fd18ca0b5582f2a7ad14d7838aa452a18680ae3a429bc510f6080526020600060a0600060016101006119e2f1603e55600051603f557f2dd2fc34631156074982459867a4a96ed1b1e8f752e7b7a49a11780986d2d02b6000527fff057f2ddea4367d67200ac15efabad425bd7e5ee028854c6ec3b19bc8895ea36020527ff060d2a1739e51e785ef0ee757cd97560d7fc13501cb4e1c39d762a309fb841e6040527f0379e4cd9a4824cbde4686ebd16df416fba39fae4b714c5d0d24625d084469666060527fbc3e9f5e3e90c98795007800d6c0ca9cc3d7560c89c36068332792cbe4e0357f6080526020600060a060006000610100611b73f26040556000516041557f10021ad946641eef1055d665d7030c60dcf39a4b5b4eb19a18037c0097afdb246000527faee82d13e528762e433dfd89373588f00f5a3ab03acbbfaad357fb33a5fcd5b06020527f571d96ac94c21a38f85de4546e48ab2e4a579cc366def7eaf03fa803b0d0d9b66040527f2f02d0377759d89eb38a99b761a7b796495493acfe161d4634608210c551575e6060527f769332a3b848b8bd69b4129911d2d5a8d3b9548cbdf6bbb6d4b285e4fd8357d56080526020600060a06000610100611bdcf46042556000516043557f55f877a03e3e31007d8ccb0037592750fe627036579cd37987d3ef76a651dd1a6000527f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f6020527f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f6040527f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f6060527f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f6080526020600060a06000610100611a76f46044556000516045557fc3df4030e15dc0d030692656dfa055d2b3ab7d1f1f157db691597fa809dcb3376000527f66234c39bc3363275b52c3fd44c90f98897803ec12458bd84c26d005391f3fbf6020527f9c942bc9c73cf249f3764587e3aa0f5d3f292bb38ccd0c9b4cc8f08ee0cb7c956040527fd97dce720557d57791a7aab11f659d3c3cc27f3212add2c8434faeb04e8340bb6060527f46ed59c543d1f37e8612a2e11f99882f5b5ded8ed733465b63059e7c394f47f86080526020600060a0600060016101006119aef2604655600051604755\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xBa0E31A0E75AC9a4cac4c57d6c7EF2a10e87D4e6\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x6030600053600e600153603f600253609160035360056004536071600553609e60065360cf600753602060085360e0600953607a600a5360c5600b536053600c5360fe600d536044600e53608b600f5360c56010536061601153608e601253609e601353603760145360c3601553606960165360876017536083601853605460195360e6601a5360f4601b5360e8601c53608c601d5360ea601e5360406000601f600060077f9f914c6b08e682a081d2d8fd682c8093f8ed74ebb3ec8711598863921e79de7afa600055600051600155602051600255\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xC192f888ADA47142Ef2c856FC2C35197eea9E718\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0xc14a8497cfed2168f05952f5437042184f962496ae2ad8f389cf588ae6ae5426\",\n      \"storage\": {}\n    },\n    \"0xD74CFe323387aE2fd070CD046173026716D8D649\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7f01de0d4bedf35144d5022ea8f807f68bc79f19abe604e3c4f9774f21517e0e886000527f2e91565c9e29fd6b1406b4dd148bfe805723651567cd013e1a5ff05553f1fc266020527f28d05f9ee49d9caf10a86175605981e86d9c9ae128158dcac272a1df69f7dc516040527fafad4e9799b8ab2e1f7d598ba9ab82cdef410a3f560a2f4fb300081766e9969a6060527ff4e68ee6102e13059303259b7d880ec183869e0aa85c187c3264cb3f297920d26080527fb5623bd151376ae749a02af6b642819f64a5a8d7abe46052adcfb3b44c8431af60a0526040600060c0600060e7600a7fb915f367d70f2d7ed301673fc7f9d93dc9e7df385991376505ecfd946d36de30f2600055600051600155602051600255\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xDa78807c1C4567c23EB713E9fbB3b1508C1284ce\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x600060005260006020526000604052600060605260206000608060006001600161a321f16000556000516001557fa5621ec461df934885df87c577f28066b8c6bf7ae936471ac0ac7d1e37d176786000527fe08ef3afe4073e521f5a89f4a9188ba00a226983ccf1e46a2ebbb8109f88ea1d6020527f85f5fa439c5a885b49aa392774f346e618393818225f34cad265fac1e54563036040527fff3c4d8ff92c311289a7e7ebdb4f3be590344eba725d97f59cd048aa33828b93606052602060006080600060016201081ef46002556000516003557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601b6020527fda1398e40e42e008964af3aa5f0a343e6cfcbe5305d3660334b2bbc383f262ca6040527f1d7be1825822fd58a48cb43a9760ad86a468321d843ded67848e3980fa2a79366060526020600060806000600161480df46004556000516005557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601c6020527ffdae382eaa2470305db5d4fda8d1179a5183f034a042b46f19f63c933b33619a6040527f3add5cd52644881226f6d3e255d611f39ac802730d9da8b7fd8e2ef695463bb0606052602060006080600060016133f3f46006556000516007557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601c6020527fa68af8eefb8844f05b0fa80aca01755e35fe788d83a7630aa0982af5e171ce1d6040527f2e7232c272df81f99c4cfb13daec393a6f68152fb69515b92b3658f2be928454606052602060006080600060016001610c89f26008556000516009557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601b6020527f335075861c51f15a8180e465e33a79393b322bfd54649f1d09feb50eb18153476040527f78f516fb6cd1b8b03c91b15103321b4678a8a06e5c4767cb4fa8236116fe8a5d6060526020600060806000600161c761f4600a55600051600b557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601c6020527f304cf9115472b9acbe808ea11428ae5c6048a5573aa3e719b6c196922128a99b6040527f4bbae5da7b7fdcecb397082b83653a63763935c3bf619d9bf3ea978c8e0a47b860605260206000608060006001600161d3c5f1600c55600051600d556000600052600060205260006040526000606052602060006080600060016140a4f4600e55600051600f557ff32eec09a93567be48ce35b712a1b16539a8f3e797ab55cdea5bb1ef90dff3956000527fa827922f078f505525baacb818b6a15ad6b9c506a09018c68999e28a4d426a1d6020527f87a26e26ca9dd9735d1022cde00bf777924bb4f9128df846b469cab30db65c866040527f4e2c1908e8a6519aa6e9a482a1d7b45f587462bd15c06321e23dafe8c05289236060526020600060806000600161a12af46010556000516011557faab0530c99524dcafa571c784f17a37638e4c40b02df4f097a599b1ce3daf2f06000527f367819afeffb4d5e691be1a305d95e090811c8de47e3e2179b5a0880f874e81b60205260006040527fc629d9b24dc66c52fd1adfd9de1e7e5e867cc153d34e622cea630d02d24ac93b6060526020600060806000600161d41ff46012556000516013557f1275e3f62fe4f663581b8f1920a2056ef61ef6d24d3cf93b6b9300d5d1da3b0c6000527fc38af617f098d9bbf3179194a8d6536261f71ce5247d4b179de050139e25ad1c6020527fb045db9878135c9e2253636b40c2bfdd218563082adb35d1c6aa68a2666ebdc96040527fffffeb93395e132a2546d82a9bc9ec8ed63e7cc62da9f537b386ceadbbba02896060526020600060806000600162013ed8f46014556000516015557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601c6020527f1bfc3594d3ea16195343c7959726c0e90a5aafc0e307e8199324a24b6d85796b6040527f7372342c5e04794a0d434073d73e0d86acba73476cfd417e32212619344983a76060526020600060806000600161589ef46016556000516017557fdfa21b05ce02e03b7f42f3385eecf8614701e057154f04b75c4edec10b0ce7cc6000527f7b01e6b04bf4f7e9f5e19592b60217fe14ab8978c0795fabec8cae297fe6591b6020527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040527fc11e69a1e07329747f6042217206556668a8fbe73cd46a1552ad20cb31d7e3a0606052602060006080600060016177b7f46018556000516019557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601b6020527fe99324cdaaa32e6994bc8accfc797329b8a3031fb424da18bdbe7ae1ce5432cd6040527f5578556da337789cf53638e58da42301606dfe2db467cc482f282f70ee25494060605260206000608060006001600161a881f1601a55600051601b557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601b6020527f71d3f0efa306fe4a489287be4bf731ba59008b5578a0575e86df979c01fa2d136040527f010fa20e9b9b26ab399bd34a5caafd8210d2c3d5b20a084287932272622fd3ac60605260206000608060006001600162014694f1601c55600051601d557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601c6020527f47ef410eef537ae6685e76a65fafbd768707f22cd7a3208e92e75553b64afc246040527f4633d74dc13137a982ad969e99f3e34ddf4043b7f71d17768d1e5d44917afdd060605260206000608060006001600161fb0df2601e55600051601f557fdd7795cb9181c1840841e9f7c35aca534a161267ca048cf99b9bde4141adda576000527f23a510455929c3747acfdbc10ef5b5a1ad79266004ee1c2e0e9726c4e172dd1b60205260006040527f714e3836b80a7055dace8298885f24695d369e7a39f528f4a3910be50d174f436060526020600060806000600161d02ffa6020556000516021557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601c6020527f0efe8fa94ff50316b3ec97b5f23e9a03a24f422a379860076c44d31b3a2fc2336040527f421dddebe35bb7bee2ffa96ab41122596fd92c8775123eaa7fdad753825c696b60605260206000608060006001615faffa6022556000516023557f2d013c5e51d0be3dcb6f506d18a69bc4747be02d00b4184194926067291c796f6000527f361f0ed0ac73e41bc6bfdaf5abb874da420e3eed9e2e74b35de46d271a9717596020527f651cd1bd399e2b59860ec16f3a9280a7d35f97e3490d7829e1085dd809f77e636040527faf4abbbc5ea9968b423dbb69dde46adb9388f463e97063aedefba0b60e7082a16060526020600060806000600162010951f46024556000516025557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601b6020527fe9b95a12c340897c063ac3cfd1b7acbe4a0da0bfc81ec062f09675b048ef2ccd6040527f52807eb804a4fc3e794e24d1808a4f809a55a5c6c8a23b89c34f833726e2d92a606052602060006080600060016001620157baf16026556000516027556000600052601b6020526001604052600160605260206000608060006000600161f380f160285560005160295560006000526000602052600060405260006060526020600060806000600161e86cfa602a55600051602b557f73eccdeff1a8150ef8d9cf7157b51d12c07b0494ef7ae4568cac21c33bfa92c46000527f892abad06cd4a2e33e363309fc1ece4d12c3a4553617680ceeeae747a9cea81d6020527f5b7b5dc85b34de6ca00bfc58341126c699bf992b7a1ca7a6faed21ccd9ebd04d6040527fe63beea996e785a07b35f7cac66899fdb4746fe3803751fe66ee99a6bb2cae49606052602060006080600060016201793dfa602c55600051602d557f2a50c17a6e67a09ffed7c20e9d938cae76db03fc54a6547862700f1f3c146ceb6000527f4635b8a742eb226c4310ba261bfc3dd4971517130e37c539c5b948fbb7e55f1b60205260006040527fb898935f3b968fbec7fcd5efe9e2f63b1b876b0b3fb76cabaf1ed606051b288e6060526020600060806000600162013ac9f4602e55600051602f557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601c6020527ff509be065ef1b1b177524ae119671796044d4b45cc30c9f36f71e737ae96c6f26040527f6b198d17a16c8f7bc38af6549c4b0f597d39c558045393137989fd22a653d8ed60605260206000608060006001600161b3d4f1603055600051603155\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xE2f4CF89C9B94178B5725B8b1fd9a7F40c4a674C\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x6b0100000000000000000000007806400aff20ff00200004e7fd1eff08ffca0afd1eff08ffca0a0267d0212626262626266f121212121212121212121212121212126380000001900960005519778200000000000000fe000004000000ffff000000fffff700600501600155778000000000000000800000000000000080000000000000006a01000000000000000000001c6002557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6a1000000000000000000000901a1590147ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6c10000000000000000000000000900569010000000000000000007feeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee7e40000000fd000000db0000000000000000000040000000fd000000db000001900960035590027a0109000000000000000000000000000000000000000000000000007f80000000000000018000000000000000800000000000000080000000000000009007600455677fffffffffffffff7ffffff716b61616160b0b0b2b0b0b0becf4bef50a0df4f48b090b2b0bc60a0a001c0519760fffc000000000000767676240000000000002b057604768210000000000000022109018777effffff80000000000000000000000000000000000080017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1b1b6005778000000000000000800000000000000080000000000000009011901d6005557f7effffff800000000000000000000000000200004400000000000000000000017cc9700000000000000000023f00c00014ff000000000000000022300805026006557e4b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b090b2b0bc60a0a10007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff901b6007557176767676767676767600000076767676767667800000000000000090187f12cbafcee8f60f9f3fa308c90fde8d298772ffea667aa6bc109d5c661e7929a576fffff716b61616160b0b0b2b0b230b000008010d0a2b00901c60085515157e4b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b090b2b0bc60a0a10007f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0b6009557e40000000fd000000db0000000000000000000040000000fd000000db0000017f8000000000000000000000000000000000000000000000000000000000000001651ce97e1ab91a0890047e40000000fd000000db0000000000000000000040000000fd000000db0000017f800000000000000000000000000000000000000000000000000000000000000012137702ffffffffffffffffffffffffffffffffff00000003000060011a9003600a557f12cbafcee8f60f9f3fa308c90fde8d298772ffea667aa6bc109d5c661e7929a56f1212121212121212121212121212121201600b55637fffffff600190177f82000000000000000000000000000000000000000000000000000000000000007f7effffff800000000000000000000000000200004400000000000000000000011d15900260017f7effffff8000000000000000000000000000000000000000d90000000000000190110219600c55638000000163800000010a197176767676767676767600000076767676767667fffffffffffffffe90039019127ee8e8e8e2000100000009ea02000000000000ff3ffffff800000010002200007f12cbafcee8f60f9f3fa308c90fde8d298772ffea667aa6bc109d5c661e7929a59014147f5fd8fffffffffffffffffffffffffffffc090000ce700004d0c9ffffff0000017f8000000000000000000000000000000000000000000000000000000000000001901d600d5560006000f3\",\n      \"nonce\": \"0x0\",\n      \"storage\": {\n        \"0x000000000000000000000000000000000000000000000000000000000000000e\": \"0x0000000000000000000000000000000000000000000000000000000000000007\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000f\": \"0x0000000000000000000000000000000000000000000000000000000000000007\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000010\": \"0x0000000000000000000000000000000000000000000000000000000000000009\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000011\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000012\": \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000013\": \"0x0000000000000000000000000000000000000000000000000000000000000006\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000014\": \"0x000000000000000000000000000000000000000000000000000000000000000a\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000015\": \"0x000000000000000000000000000000000000000000000000000000000000000e\"\n      }\n    },\n    \"0xa94f5374Fce5edBC8E2a8697C15331677e6EbF0B\": {\n      \"balance\": \"0xffffffffff\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n      \"storage\": {}\n    },\n    \"0xd5A8353a487e0749707fee138b741aeb2061C14C\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x4b5f705c5993deaa35a6d4e991c09c52f1d54151048b241126aa7c780cd2723d\",\n      \"storage\": {}\n    },\n    \"0xf3eAc1d1B1EC8cA737bD148b1E96168024fB3F89\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x6000496000556002496001554a6002556001600355\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xfD6241df8Ce82b2Fb4126dD0e9FA931806Fa573c\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x60e360005261020060205260e36040527f17064e08aafc17bc922849c8372926c6a434f083594f6a07a8a45c764d5f32746060527f1f6959a22ac38f4842df68feb8894add1446f1f2b5eee105a531d9bab03dfdd96080527f95ec80853752d76fd53b9f3b5ee9028646da199627e7229bb1fdf4cce004c90760a0527f3b646cde24009c8a34bbd09080385a9aa6faa3c56360cdd8f1f6981dab2876b960c0527fbbc5ad8a8ef7dc0af7260ba09ecaa44972667a2995b572460c55e5a6bc5a54fe60e0527fd0b9e187dc2a1423bd2c32ffc276266366f4b8c23f6d9db52a800f7075e8ad7e610100527f9d0d8bc9c71ef1815e1f247afe1ddfde106adffd054ff9d0e1aa05a421d70db4610120527f4b6d6fb048e531dcfaa8d04551c0e9477487e1f42dfe6b078683edce88d707a4610140527f636d013bde3777c7d61819db32eb615638a717cd059f2b8ad9954706c98770cb610160527fa219a4f1ef80c84ba5f49f32398f3f92d2d325856dd70dba5a85b32f96cdbd96610180527f467edabf6a79713c6f62fdb7680ff03452a41bc91c2abcecc72e736e62c59d3f6101a0527fd8c7a5b6d35332bb32716638e5afc3dc11e15fdf251f301fc0b30c64e2accdd86101c0527fb65b83a80c856b89e597084abcc78eabb3a1c77561ca466f62ee699e334571c36101e0527f8e90fcd0ff032e05e75b51d9dec47825830251dc35616413af21313736dda353610200527f6fe1d91e54ab0713be14458c91ba5d750d4496890c25452adbff6d154efe2253610220527f6a50e684a75187e31a5866370cfb737ff50cd49b2303a43f466b6eb621193c21610240527f6c4b5f56d956912d88f44fb605dab278667f51189d4e3375d89b02ee40ff0efa610260527fc3503a6dbec74bdcdb811e1c648183980f4efb71f6ab7f632b416a5c8d2e7c9c610280527f02b2f7383198636bcab2bd027039c66ccec0d1bc0a9b066e4bdc871c22e527c26102a0527fae9a79a076c724db7dbf49a2d6610673568da9af9d551bba1a0c36944d1554626102c0527fe0d0ff83459d9d4a1401b8684f532643ce5d5c85e6c7194ec4726be2f3e9aa9f6102e0527f654e210bbc2793c4ceada7c42c8cdc784ff08014c941dd5123f5edd5ccedaab6610300527f0eb0abfb04c0bfefc6903c8eff6834a397b347248a5b8f09d6b053b4929cb7d2610320527fe77c26e53f9d388aeddedd75a91aec3694862f4a2bc2c704afbf0824c5997359610340527f5a6382f831c09b9ea1713902fcd17e9238e374c2a9fa49b55e344a21ab2ad0e6610360527fffc47ec16d2055eced751b3cd2ba7f4370247dbcf13a1ca513ffc09dcded5539610380527f6424b6fabee6424573a0f47c8b29c0a32bc810e559f8eab0cbb48453bb2322806103a0527f4dacfafe68f1a203c122ac379232368b3c44e6c3ea571c9690eea2288726d1d86103c0527f81dcb18b456fb670e67b800f82718896d03244459dab3fa9d6e963f4e6b0d2906103e0527f98c2300ecce35fdf2d465fb2bd595934fd16de5d0b4250dde3807d3d39d62b8061040052602d6104205360e06104215360be61042253607061042353606e61042453606c6104255360e3600061042660006005630121304ffa5a0160005560005160015560205160025560405160035560605160045560805160055560a05160065560c05160075560e051600855602960005261039360205260296040527f5b18ef532970f673409e96991eedb6c6c5ebd58355c4bf48036cd4965402df856060527fb22b05c1af879b519c134bcd9cd1717c8174c23fd50323cb498d984d87e644c16080527fecfb996069bbe4b810cb2003cb46d20298de618dded8b126a207c12b8fce9a2c60a0527f431df67d39976f0e0ec3e4d34dc258b9b8ca8a0ac73bb1ae76999f3508336c5b60c0527ff83d846bb720d6a7309b5a8c66bda94fd71dfcee1071ce91829dfc7371cf45ca60e0527fecf245a33c7b2542a013ba70d04038f3a6b38444b4891098f1db09f22811244d610100527fd7240d71eefbfad870c0178707c0e73ec010aab35cefc6167b170a1fc9a03c83610120527f3b5b9e03ab8ec164160cb7e4088a16282e543d717bdfe9460d4b8e4df73ce26d610140527f802318619d643531c4b6600f4f8bd35736b0efc13b38ee9462388bdc678aa142610160527f0ae40df6f91a2a88ccf46be9638cc3703db018bfa34e93ba8fee0503c0faf437610180527f9e7ffc5727f562e636d6929bbdc801b60747e7d40a29b02d184e334983a1c2926101a0527f9e76a473cd4152669e3870d79f78c171609be04a54d52caffb6e2ff3d2c637c16101c0527fce59ed6693397cf2665136b7c2f62db543dcff91cb5871e2bbfbc0e7ff8768e96101e0527f63c2c85e54a93f234a35662c4eeb6e3cc00f3cb656bf221fcc2433fb89424dc4610200527f961f4318b87886e6a097045ff77802be19c5e730a91f6c1f5f668f71d91fde6f610220527fd74dc4216664b0a8e343a7cbc4f2f1318d1adce27cad161029d9d24ab2dc0fb3610240527f0bf743c02e0288c9c5a5a46fd92f2d3b149872c242a14ccc061269791944252f610260527f2826cb8d035823fb79638057ab32227859186d9775d1586f629de389e4be131b610280527fb766eea382e8630072c0d97b83afff7ac79f9bb44e83e00dd033659e261aca6a6102a0527fb9258ec4494918bc425e0ce55939d831a06fdd54306a316aab3555d0e14e43276102c0527fb74725c4e0a5b5f57bc966f0b8bcd19aa40b0e49fb9bf71a1469dbe07a81022c6102e0527f129dafdeb706c0f01aabda2eab3571596b70760ad4f3c96c1fa67605505b2bf0610300527f87cf9a097aa5e2d615ae37cbc44d21b5ef4a912e0872e47fd2dbc8082b3e0c24610320527fb1d99403f8e1ac532376dcdf630f8ed09ee0409771253f8a92bdd758b2f38889610340527fcfa1012d22ed9230e688fbb1ac059b3aba749813862407b76334d94ab0931c6d610360527fe5f8768375e384107bcce47c4191446b201783e221cca47c115ed6371067d8a0610380527f2197cdd8f09a558bed2656b42d4187681c870aa404f2b82422a0eca0c70f89a96103a0527fd5d0f60e764c43053ad591aad788e11d8f3d19fff798c40c9ec20830b3c37e856103c0527f1eea42a3a5b9fa7a3a67d41779badeabe3fdc1ed55a08109311d9331cf1386e86103e0527f2d10ff66d8a0dccc13b738acaa5857f9edca207c55857e0d80ac7494a125ffec610400527f629ceecf5e664b489500bfee7effd6ee1be437f9e92966e206399c92446b04906104205260c46104405360bd61044153606661044253609161044353600761044453602960006104456000600562150304fa5a01600955600051600a55602051600b55\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    }\n  },\n  \"chainId\": 1,\n  \"env\": {\n    \"currentBaseFee\": \"0xa\",\n    \"currentBlobGasUsed\": \"0x40000\",\n    \"currentCoinbase\": \"0xc014Ba5e00000000000000000000000000000000\",\n    \"currentDifficulty\": \"0x20000\",\n    \"currentExcessBlobGas\": \"0x20000\",\n    \"currentGasLimit\": \"0x11e1a300\",\n    \"currentNumber\": \"0x1\",\n    \"currentTimestamp\": \"0x3e8\"\n  },\n  \"fork\": \"Osaka\",\n  \"parentBeaconBlockRoot\": \"0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f\",\n  \"transactions\": [\n    {\n      \"data\": \"0x\",\n      \"from\": \"0xd5A8353a487e0749707fee138b741aeb2061C14C\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x20\",\n      \"nonce\": 0,\n      \"to\": \"0x538A8474EeaB43d5a960164c554A20400151D479\",\n      \"value\": \"0x0\"\n    },\n    {\n      \"blobVersionedHashes\": [\n        \"0x0163265b8324a04c9ed8d0edb85a0d7a2007818cade0ac8688c74a99044cbc33\",\n        \"0x01bfc2990aab016818a9020657c03a92ad639bfe0fb95e25e62399bcbdcb2053\",\n        \"0x010c5d0a87a926c9f5a527b6d21ac1f3b93f47b3e0b391c5bdb0bf305d786a54\",\n        \"0x0147ff69e28cdd0e51fd8ae75bf49cb1c6ec900462fa181d7f3ebf63040b5013\",\n        \"0x018526f9e485f72923a91721812baa0527c6b93be7d5ee22a0ea78fb5b401ef0\",\n        \"0x0158a07bc9b0d275edb3bcdf3fb9e36830662edecd32ee1fe9839f2ea7e87527\"\n      ],\n      \"data\": \"0x8c\",\n      \"from\": \"0x52439296aa999dbCF01bA02E03F5d59F0AE8Ca46\",\n      \"gas\": \"0xf42400\",\n      \"maxFeePerBlobGas\": \"0x100\",\n      \"maxFeePerGas\": \"0x20\",\n      \"maxPriorityFeePerGas\": \"0x1\",\n      \"nonce\": 0,\n      \"sidecar\": {\n        \"blobs\": 6,\n        \"commitments\": 6,\n        \"proofs\": 6\n      },\n      \"to\": \"0xf3eAc1d1B1EC8cA737bD148b1E96168024fB3F89\",\n      \"type\": \"0x3\",\n      \"value\": \"0x0\"\n    },\n    {\n      \"data\": \"0x82\",\n      \"from\": \"0x535863dA03bc1834eeA10eeab8FF498565F33f2d\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0xDa78807c1C4567c23EB713E9fbB3b1508C1284ce\",\n      \"value\": \"0x83\"\n    },\n    {\n      \"data\": \"0x946ce4e9e90aab59992f710210704de54caacbb3f144f6341c47f79f9be9dd9cb3d57b7d2fa3e26835c614f015952f0e8e079170f6ee3fad\",\n      \"from\": \"0x1DEF26E2A310e3984210Bd9d4D67E19d721043A1\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0x766C0844EBC3c4ef4ddb86260a4D3516cCa03A10\",\n      \"value\": \"0x2a\"\n    },\n    {\n      \"data\": \"0xd16fec5d8628da397d96ce91dcf8f35ed0971782f4a9f0cdaa464464eaea86\",\n      \"from\": \"0xC192f888ADA47142Ef2c856FC2C35197eea9E718\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0x22986B2F9A2f5E7119F940898c35e7128A4Ce7E3\",\n      \"value\": \"0x903b4b\"\n    },\n    {\n      \"data\": \"0x49cf894cc9899f782fa6ced5aa78a40f5d1f25115ac517de3a6dc1e439fc28d40f87b47b98e8da27413d69c86ab9243cd5bb0a5667e8c024effa2e012ea2290e48722b8003f1d55f2fe170de82328b58e0715d8d1ffefc5a3708200066a2cbc13145cda01e89853d78a5385f4f71aef7ce3690a81fa9e5200302a94c517022654f4d3fae178b211256dd479d34facd5352491ef61c72dda752f2b78c9330b63dd90326c1cf41cad9955d7f575d56d275f4f2aa3a365e23aaa8f3caefed894b6a\",\n      \"from\": \"0xd5A8353a487e0749707fee138b741aeb2061C14C\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 1,\n      \"to\": \"0x641602bAD4A323C49629d45338d79A2bb984A3fb\",\n      \"value\": \"0xdc\"\n    },\n    {\n      \"data\": \"0x473883564bf6baab586b369a707020adb4dd9002da0da251a44de3c83d9478379bde8cc6cf20fc05e703883d561055cff8f1eb68e74a918e58af54e82b3c96fbcc9fd100e69dc06dc035ee8d1731\",\n      \"from\": \"0x52439296aa999dbCF01bA02E03F5d59F0AE8Ca46\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 1,\n      \"to\": \"0x3Bd84e661C47a73eEe4137D185E4c31c194C343f\",\n      \"value\": \"0xd8\"\n    },\n    {\n      \"data\": \"0x57\",\n      \"from\": \"0x535863dA03bc1834eeA10eeab8FF498565F33f2d\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 1,\n      \"to\": \"0xD74CFe323387aE2fd070CD046173026716D8D649\",\n      \"value\": \"0x0\"\n    },\n    {\n      \"data\": \"0xdf\",\n      \"from\": \"0x1DEF26E2A310e3984210Bd9d4D67E19d721043A1\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 1,\n      \"to\": \"0xBa0E31A0E75AC9a4cac4c57d6c7EF2a10e87D4e6\",\n      \"value\": \"0x59\"\n    },\n    {\n      \"data\": \"0x6663067150ece19358b8213b58\",\n      \"from\": \"0xC192f888ADA47142Ef2c856FC2C35197eea9E718\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 1,\n      \"to\": \"0x9529cc6891Fbd5aBFABE0AE6c79D30F0CCAe848F\",\n      \"value\": \"0x0\"\n    },\n    {\n      \"data\": \"0xca644bc4782a166a7f1414746cdf88f780576ffb77c1a1a81d80\",\n      \"from\": \"0xd5A8353a487e0749707fee138b741aeb2061C14C\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 2,\n      \"to\": \"0x7458F9b8B5ee360A32b0b0Fe648C996C68AE8190\",\n      \"value\": \"0x0\"\n    },\n    {\n      \"data\": \"0xe1a8835b8666127d66b8b00bc97db84e33a19c6e7b7e57b4b00aebd3d883384b6ff6aab51feedf2fa847e8f67a26e5935fc857a1\",\n      \"from\": \"0x52439296aa999dbCF01bA02E03F5d59F0AE8Ca46\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 2,\n      \"to\": \"0x9E607bB0Bae19b8bC75638fd1aB98594b36ba46d\",\n      \"value\": \"0xf706f7\"\n    },\n    {\n      \"data\": \"0x3bf30a40cdcc2baef21d17c6a32a4cef206f6f3c508696fc6980689f018f3ddf38c4b2\",\n      \"from\": \"0x535863dA03bc1834eeA10eeab8FF498565F33f2d\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 2,\n      \"to\": \"0xfD6241df8Ce82b2Fb4126dD0e9FA931806Fa573c\",\n      \"value\": \"0xce36f1\"\n    },\n    {\n      \"data\": \"0xccf3fe51190f8fb88f69ac18da750c2e5e43f2205ba3288b7593f9dca020331e1602184dff78216b6752124c2b7ae740d0a98a98d0c85876a9419f75ad86361d48371fc59154a3836b3ed9899bbc\",\n      \"from\": \"0x1DEF26E2A310e3984210Bd9d4D67E19d721043A1\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 2,\n      \"to\": \"0x1d891f21BB2a55cD9EC7a32478f7c74d757c4876\",\n      \"value\": \"0xc9\"\n    },\n    {\n      \"authorizationList\": [\n        {\n          \"address\": \"0x5cbdd86a2fa8dc4bddd8a8f69dba48572eec07fb\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x0\",\n          \"r\": \"0x3ed20ae1548d1fd9d90a1eca4f987f64219a8b416ad20454a5cf43825750cae8\",\n          \"s\": \"0x2cf38759a4ca00d224a711398e8dbd8844596dc29e14601fef012659d6207fc0\",\n          \"v\": \"0x0\"\n        },\n        {\n          \"address\": \"0x00000000000000000000000000000000000000f3\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x0\",\n          \"r\": \"0x6d2226c5a987fd92af6e5041ab9aedc1c14cfa4b8729945d3e2658ef82618a54\",\n          \"s\": \"0x568ea8ee65ce67292e114515be368d64f76e6f32502031aab4852c127928d57e\",\n          \"v\": \"0x0\"\n        },\n        {\n          \"address\": \"0x00000000000000000000000000000000000000f8\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x0\",\n          \"r\": \"0x93b6d4c7f0b540e53a042a79ec312616116c2597cb52feb27b77668793b8e5a0\",\n          \"s\": \"0x209057b5fa3c5387592c33993e4ada764dce62b97e6a9303f819019772ec6df6\",\n          \"v\": \"0x0\"\n        },\n        {\n          \"address\": \"0x0000000000000000000000000000000000000004\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x0\",\n          \"r\": \"0x431784db736d7a7b32afa2a06f9b2dd9b7947510fcfe270ea15c2ae08af9c7fc\",\n          \"s\": \"0x780ae64313ba535e023075c4b6ba0b292377005a380b83e0483cb71d70cdf9d1\",\n          \"v\": \"0x1\"\n        },\n        {\n          \"address\": \"0xdb2430b4e9ac14be6554d3942822be74811a1af9\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x0\",\n          \"r\": \"0xd7b62ccc7a7a187ab2a16675f305830774b4d337043a2a0419e1e87fc30a5157\",\n          \"s\": \"0xa46b6d701549aef8b29ba9a6ef7c3c6366b748ea1294b88df5a8cd91edecb40\",\n          \"v\": \"0x0\"\n        }\n      ],\n      \"data\": \"0x08d056a6464dfaa052593f5547603f5143d1fc601858fc8e45aecea245c1a56cbcf28f73\",\n      \"from\": \"0x862B38c425EF5544d0127449A12c89C46dd3E050\",\n      \"gas\": \"0xf42400\",\n      \"maxFeePerGas\": \"0x10\",\n      \"maxPriorityFeePerGas\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0x0000000000000000000000000000000000000006\",\n      \"type\": \"0x4\",\n      \"value\": \"0x3e\"\n    },\n    {\n      \"data\": \"0x00\",\n      \"from\": \"0x0233362c058b2fCc8093841B1073A90D673E7F12\",\n      \"gas\": \"0x30d40\",\n      \"maxFeePerGas\": \"0x1e\",\n      \"maxPriorityFeePerGas\": \"0x1\",\n      \"nonce\": 0,\n      \"to\": \"0x5CbDd86a2FA8Dc4bDdd8a8f69dBa48572EeC07FB\",\n      \"type\": \"0x2\",\n      \"value\": \"0x3e8\"\n    },\n    {\n      \"authorizationList\": [\n        {\n          \"address\": \"0x0000000000000000000000000000000000000000\",\n          \"chainId\": \"0x1\",\n          \"nonce\": \"0x2\",\n          \"r\": \"0xdd95902a4746dbf0cb38778983b6a5061c9784572e18492bab91b69a04315a29\",\n          \"s\": \"0x115d234e528f56cac392831ef418acb2db384b9b92749f4174e4e2ca2b2878a3\",\n          \"v\": \"0x0\"\n        }\n      ],\n      \"data\": \"0x08d056a6464dfaa052593f5547603f5143d1fc601858fc8e45aecea245c1a56cbcf28f73\",\n      \"from\": \"0x79cca006f0792Bf40a6d4E011c2884eD862A52DF\",\n      \"gas\": \"0xf42400\",\n      \"maxFeePerGas\": \"0x10\",\n      \"maxPriorityFeePerGas\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0x0000000000000000000000000000000000000006\",\n      \"type\": \"0x4\",\n      \"value\": \"0x3e\"\n    }\n  ],\n  \"version\": \"2.0\"\n}"
  },
  {
    "path": "src/cli/fuzzer_bridge/examples/comprehensive_medium_2.json",
    "content": "{\n  \"accounts\": {\n    \"0x000000000000000000000000000000000000000d\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x1028f1F4b946800E1b6D7528C4699Cc3df844fBf\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0xffe5a49189ac8e319cbc7e1e0e1a40f1fd261f8706e9f8d4529fa55a2dc2d4f3\",\n      \"storage\": {}\n    },\n    \"0x1d891f21BB2a55cD9EC7a32478f7c74d757c4876\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x600060005260006020526f12da46b729d5fe99597845a4964902366040527f7bdb3a71550f71fa7f7942107297241e78338eb3604c21c1b885c35c48acd88c6060526f16de46d5414dffad552eb6f59ecfbb586080527f34fc0621617564ee4c92ac95929675eb9835e334e4976df845359c5f73e8dd5360a0526f12c09fa734e3f0289e4ed0ebfed3f86d60c0527f8baf34656290909d3369d5ee4b87ca47eafa338e78286cbc013e8cef8bda961e60e05260806000610100600060aa600b7feac041227fcee37f9758d873e36bc136c2c92a797ef826edfba231397c53359cf16000556000516001556020516002556040516003556060516004556f04556c12c0112472d3ad7764fcc242526000527f700a4b4c7c60a9e0d4a17ed4f5d0910687cd3bdcddc93caf65cd75aca3467c236020526f17838af83584d739cd9d3bfb9e7c96e06040527facf7eeaf93a5b5b862cd741e66deaab818c5bbc0e133c12a7023ec5984181fdd6060527f624abd858aabcca57ec88d91cfdadb3653c8ef629561e03091cee41549f9c35c6080526f05a13e7604c27d4f5a6f9ddc508f3ec760a0527f17b3f77520bc5dd88f7c56fadede2f6dd5fb773f97a39e4d7d86ac2b899ce16860c0526f0528b78253febdead3d353d2cf4b691560e0527fcf4ce6b18f44bd19ceaccde8ca10ac15bf5d89cc89740d4a5e96ddc380638e2d610100527f3d1708e4b25fddd12bf6c5e2b5c07dfbd20983bac930289e6996c910bc0130f7610120526f1c9a01fa112f6d22a27d3fe125ade109610140527f0242653dda65fdca5b1e80f28e2360fb3195ad1cb6d914e1c9a5342485c21dec610160526f1fabe90a7d6da23a062c0d63bc0e6c80610180527fa5afbb640e2530dc5c7db4f21e2c1d1ef3fcbf8ce5fbdc8c8fc019ffbc2bcdd46101a0527f35aa1c2ad23c66d610a5374c259610eaa6669cde15e79354b9bedca1bddedca86101c052608060006101e060006041600c7fc7264066f1cabf74058d2ced3ace5e80281c49a3c498eb80d085ad1c9703c7edf26005556000516006556020516007556040516008556060516009556f15043153691079ff8b800801a519a8996000527f49e6674f1209d211ceda5f887a519cfb173344e8638e7cb1695e83bbfb4020076020526f1592374a4fdaaab67b883dbfad398ddb6040527fe8cb651ef24f0055e31a0aaed60027f66cc7e39291c2e99c58b8f370b667496e6060526f16723a2fd291491fa598d675d7732f8f6080527fae239956720f09bc7812c2cb24341f74e93f278d7b9cf1669a0c09d444b527d260a0526f0a6bd72d6e614e15c74478c1c738feab60c0527f2aded243d43c944e4fc1a76346d4f8ca7690109b066acf4925879a8b0a1333a960e0526f018bce8a78cd8f3b7030358875f5ae27610100527f99a85cae15e756f5f4d05ffb400670ae7176229dd7ac5303c9a1c534d1ca5557610120526f11e8395922b79ac4e7e1c8a861bcc225610140527fa62c2d8665daebbbf41d4efa4ac8c5b50f1f1328f7486bead3691d18090d06b5610160526f199c667464a2b2ce3bf8804917adce69610180527f866f6a894a6b280753a2f8160b9f96835f7d531c7d7f18eb3db6e72df005bed16101a0526f120c518d3494cded818bd7059d008b146101c0527f9529f3df954cb1b0707022156b934a5bcfea7ea17a49c493162fa22b1f9688396101e05261010060006102006000600d7fefb999ff2151cd3b487bdc950acff68275a427314d465b97c59157af861690a1f4600a55600051600b55602051600c55604051600d55606051600e55608051600f5560a05160105560c05160115560e0516012556f14cec51b5b967401b0a49786056323826000527fd1605a4f4dbb0327cf158208972c7297c7a480af8f57418db26fb9d8a57ec42a6020526f0a308a73497553ea2558f44c64a4da396040527fffcfac4fd59b6d58bc20165648d211fea03cf367a9335f567406b64dd29a6d756060526f04b58fc3f267e4e6b60dd110ba61a05e6080527f7e23fa9b3538858c2563347ca5ae3dc8345fb24b57d27bd7a1d9f101dbcecf8260a0526f19811cf90edb6826a4402bf55576069860c0527f1a8266b64e9927d372eb06284402e65f05fd750dbf62fdf9c575737ba8b695a460e0527f420e4630658c2419983969c302e1cba7496a1565cad4194ea35eb92ea6671d65610100526f10c51b3ecb9cdd339c30853998639902610120527f7640d27ccbf15be36a1b1edf9a7badab3d0b843d897d86e4f11d15b2d859a226610140526f058f95d8cd109abd3cebb68a4b5028f3610160527f581903e67af5ffb33bd524e96b5ea825d7015eb997d6d5ca7bbd29d489cfe741610180526f04da4aaa0bce3c2cf00ae6041613c62f6101a0527f261103d196247d4933d641a4fccebf58454037c1555012471ea6b0f2cddfedc66101c0526f1d901f3512c8641e3bd1e6c7cf23a0a66101e0527f3c5b40381b8cf73c39ddf391caed85641eb08ae5dcdf326d3554d72103fe0741610200527fc98ba1c875128d3c1407895a214423daa888cc29623d7df67e50f9acc52bb0446102205261010060006102406000600e7f730b6b0a81e1c498a48c1b55a7f30f4e2acc5ec19392edcb81b9037ee5d4a1e1fa60135560005160145560205160155560405160165560605160175560805160185560a05160195560c051601a5560e051601b556f087e790c45fa839f3fd183f65550ae906000527fd2d71dc1cf38b5ae688434dd6992ef5f2dd0d49660b7f365272e095439c6e3126020526f11b1426059eceed225f12fede8a7437c6040527f7bce7fa6d834ce84a657d64a968640121cc492bec9c8399a2073dbbfadffcd2f6060526f130a9b9736cadec87b5f67b649ab56786080527f7ffac8dc16b072f277a3a2248b955fa63d8a8bc68cb08bce0c0097e0f44880fe60a0526f14696e3c6e19d213e52ce80486f4361b60c0527f6a68cf37a154f56b8512cd1148d78eaf1d81d4079548c73d1b41bea2202ae13560e0526e5f79ecbbafb9cebcd604ae004523f5610100527fed2e2ada166d6bd877079b525144dec82e05b65d9424e5ff7d8cbc553360f23d610120526f0f901a221e5deb6d9b439fe259c0f290610140527f9f25ef61f83f8ce4f8766da70ab62ed53e46ddafb36acf280fd692e67f55440c610160526f099260ba4a9a5a3fac51565b1fcbd380610180527fe76af01600cbc075cac5d4fe75c305d2a70414f5b7b9539d91b05bef357b00f26101a0526f0647d541df6837c0047e390106df15926101c0527f525a15bf78542328efc960cfc5d5aa6e13d7a94d0e02a18d5dd3072b3fece0326101e0526ed9a2d531ecb0273ab936749bf2389c610200527f555945ce7ed1820f168148bf98e19e80b4624c37ea3ad3430b9fa7f7289d1888610220526f07c4ba9468409af2a87e772f8c2a7e2c610240527f738e75af54c95a4af93aaa720d5ca5e63b0dc683a45f2e6049793c906dbe58b4610260526f0da82f6193a31129fd1db9a1a86954fd610280527f64c98561cc043565c7dd8ccae5afc2901bc161c42b198763427fb568f9a77be66102a0526f0ced91c8bf442cdc34bf8713070b2e1f6102c0527ff5cf7367396ad1d06abb1bf3f05169024c882cedef70ae1d24628999dbfa85f16102e0526f0a4185c9e4d0baaa2a0e1498605414e9610300527fb2db2d033e084ee25b27dc5686c2b4fed9915481f4a8c6aba3e56199611bf19d610320526f022c32176f46809429aa7a6e94b0a541610340527f8b89c2eca6ad64a1d08f9e56aaf1879f1287a781bd38e944ce7de7fb2aa224b5610360526f0e29ef6ebe99e7f4f12b94b147294b10610380527f33eb7d7314e330b5c75d0e40b1faaffe5dffef1818414c15f47c372ff6fd53306103a0526f0992e8892988a7e207d03807b96495f76103c0527fe0c118af357b36cc6de661f4c3cffb8123fed50bf39926482279de5446075c586103e0526f15a1a4fe36d43d536fd227be3de90662610400527f882c8d76f346af89f2897e47fb03e1cff01f154376ba731fd67a0c5e004ea5f5610420526f0544ff26b18dbdba97e63b5e83b0639d610440527f32091000f391c2dfbf525518d4b2e4313702d936c9a365b2176629b3573d18fa610460526f03787c467ee560d77adc1e5c51a2008c610480527f01407eb311f4eddf4b89d697b5a9085c746931ffb4415e2bb11588db88edfc966104a0526f05b37347124fe87949be342f69fe0d3d6104c0527fb6c98ea7386b0666e55dd7c69ff494462a22b380edc524c220d7a19edf48bf776104e0526f024aa2b2f08f0a91260805272dc51051610500527fc6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb8610520526f13e02b6052719f607dacd3a088274f65610540527f596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e610560526f0ce5d527727d6e118cc9cdc6da2e351a610580527fadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b828016105a0526f0606c4a02ea734cc32acd2b02bc28b996105c0527fcb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be6105e05260206000610600600060de600f7f42fe45fa84e8928ada6733b78e40be4e28a744ea3bf60c69eb808fd2b6b00f65f1601c55600051601d556f19f0ff5cf765f8191a92dd7333f115636000527fd41f77c7b6ad482a8a42dceab06c0cc2d518223fb5ca70d288410bbc931a3147602052608060006040600060fd60107fa10d7d88e8e6ceb23cb75c8268d2abee7e2f4f843ea76f5cbb4cdc17cae5133df1601e55600051601f556020516020556040516021556060516022556f0bb44118f452e8d6256a535940c2f83f6000527febf8909f76ab23b0fe6972a6f41d32316d3483c2ba33e550d5c325f0fb1c1d776020526f01acf293ca3d4b46d36596ebc63a46246040527f6bc9d5064757af806470c48d23afa99bde4a2a31715e1b2117783f7ffa06044360605261010060006080600060e160117fe6589a52f39e3deaaed3749e845bfc9549711b79a7903754446e251342879f54f160235560005160245560205160255560405160265560605160275560805160285560a05160295560c051602a5560e051602b55\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x22986B2F9A2f5E7119F940898c35e7128A4Ce7E3\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x60a160eb60ad60ff60cb606160aa1a0778385a5c5e3298ff9cf0004477401c360b411c8d8dff123196f05f97556d153f18f09b6e125b4973559c097b1518381b738b5707575f53f34430139f4a1078396a6e10f11e13f4014165173c017a657a188118693e303efd1972111a5a3bf1636d026e0003514a699a315c1b60417e110805f23913626f12744a7a3e671973415f1b3820f4674754083e531ca4f05c6687915077097e90a10a36137f5c3f47466904470a7e5f0b1076067c1b0b55583c13094a7685171d59177602487f1a209f7e445c903e95476f349f8f5a124a3511723c15415b704660440803151c75761c495841626b496c3e9f898a021155205bfe9753f4068356845e44503a3b409c4a62370078586254159453673551055f5889655613fd437504866e5f163065339e1c3112347a190630323e500147543e121a6140434363440a8579747b475b576b15465c19784a90031e390805106c365519699f6b8576801b1c03436c8ba260335b535c0071000507336d49a390423d7dfe773c7a14601d5554208164016a81f2f5615a42fe35337739081e983c361d65516a136f189e958e1a6f181d97ff0a566e8208f197691e776d8964a274323c80ff001c657b474475705cf47954945b73855a1633699d3c62a41e321c9a487652406a596e876b59085e7e0b511449646d70468f3307067e567e1c4a367831619c51726f8898697e621972045e3035798e13f41c493d514941185a7a109b909a3001905072313613935c6857314545517a855a8e0a15523d95a2424a557418539a6e45646e676a6442f3fef31b307d77514912fe70331141317c495f58406e3c624866a46b11735b078e44ff77f24691863e707f5268743e675233551e04f55454486719446191687c876e48051357fe55681231073f34671e586358736d5f8c57834756087e748f415213663e5a6d2034195d786063685a495a9d6c6f09336b5173396b345d6c7561653948470509908d1d9b8255678b4389081a357749778d3943569f9299145e1733376c33041c7f02091d8148fd170612127a06771979fd7c617c7d00458d1e7f6144f19a534a8136160865616c77703e326303fd656c8042163219fe4534333a4055f1366b0506541e7549699d5f1a3a9f70081c347d0b7b7b3e5f3b5a679b3e405a7b9043475751a188167677938a5e53673f6a867b8933fd7e6c5938509a02446ba455616744424a711477356618035e8b313a7dff4a47a47311496e5a48609d137b1e691488915b54397f43343580455220a15394766c823f02727b7f356d611b69373e96741950a380150609181d5c8314011e3820323b388699039e84375c68521b725b3787448c743b1e3c5a76817f736856721bff1006f59d597a5c0918836b0382104072146d9b016061f1463c857d368981583c\",\n      \"nonce\": \"0x0\",\n      \"storage\": {\n        \"0x0000000000000000000000000000000000000000000000000000000000000000\": \"0x0000000000000000000000000000000000000000000000000000000000000007\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000001\": \"0x0000000000000000000000000000000000000000000000000000000000000009\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000002\": \"0x0000000000000000000000000000000000000000000000000000000000000007\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000003\": \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000004\": \"0x0000000000000000000000000000000000000000000000000000000000000006\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000005\": \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000006\": \"0x0000000000000000000000000000000000000000000000000000000000000005\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000007\": \"0x0000000000000000000000000000000000000000000000000000000000000002\"\n      }\n    },\n    \"0x3Bd84e661C47a73eEe4137D185E4c31c194C343f\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x7fac24561d9f5035ce04d964a68037cd14dbff7091ef59d77299bedb0b38c6ad556000527f2a0169a823df60688109dfb0d02ceb695fd6299c0c7df33756f060e3499a097e6020527f84adb74ea377c7cf23bb8d05ec376b6955da1dffdb831726512dc92c71ad5f436040527f6dcd32102f6a81d419ccd009b5d3a4b266dc1049edbc5e307525a2b2bda040bd6060527fc6995d1048cec095a29569af28b61a5f38dc61586062eeb401efeecf1151d7316080527f70e2858125805f578d2deb5a6d9c20170e352c20417a194c6e5035403963772660a0527f801b6949c072d646a2caf58f33ff5f8e69728a830da82da55a43a6e43c39013c60c0527f1cf0dfa518395721c04b8c6b368370acec11e662342c7c356a59255de4dee03860e0527fba75a6bb2de967e948458ce598f13431acb43b082926b3a2a330e0960b9bd2b0610100527ffa67efe960985744944789e237312835d725acf28b21557d4e6673428e36b86a610120527fe0d4c9b0112dab6624a912a175b89297731e9dd9a59112519ca0087f5bea30c5610140527f85384aa36ec17a29241fa8a2870634d2cbabf3cb0e959a607073bf591e5d733e61016052604060006101806000608760f960e7f1600055600051600155602051600255\",\n      \"nonce\": \"0x0\",\n      \"storage\": {\n        \"0x0000000000000000000000000000000000000000000000000000000000000003\": \"0x0000000000000000000000000000000000000000000000000000000000000007\"\n      }\n    },\n    \"0x3fD261193d23d8a73a4fdfe7735892c6Ebb4f2Ac\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0xe32520991692770350e0a6c3acde9b20b7ccf11ddd1d1e86cbf91ed98e2d8451\",\n      \"storage\": {}\n    },\n    \"0x48Ed5D2f29e6CF27031A62C9e4826d56B4536a36\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0xcf9e2e355349971fa5c9c1774fb5ea58f30310b283b6b14d6dc779faa5499770\",\n      \"storage\": {}\n    },\n    \"0x538A8474EeaB43d5a960164c554A20400151D479\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7faabb9137e7492c9f26c298cd433b7e0318c3876d2f5ec0a905a1ca164efd28a16000527f70b020e11c1bc897b7c2b210d69a0adc3684f818c739cbf9680a11f4c7f75b186020527fff98638a49a81dd7fbb111626efcc4428a2567adcef3aa2f321381c030625f1760405260c560605360436061536068606253605f60635360266064536099606553606460665360dc606753605c606853604f606953603d606a536089606b5360ea606c5360206000606d600060087f7a615e760c7a1993a13a60cbd25477ce8f96290789500f791bbd997d0086e6f5f4600055600051600155\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x5CbDd86a2FA8Dc4bDdd8a8f69dBa48572EeC07FB\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x641602bAD4A323C49629d45338d79A2bb984A3fb\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x60406103602061010061034960a05e608b60a0f3\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x677B3ccc29f7c2293364fEec7F51907756f0124E\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x83011199ca2c83c9f2275cc32037543a5c54321011ec6e342bf9e00710e5c20f\",\n      \"storage\": {}\n    },\n    \"0x7458F9b8B5ee360A32b0b0Fe648C996C68AE8190\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x7fd861f3a6d05dc0b79ac2bc4d2f6ba1d52f11ad2817ab5db8af0c48ceab5773b06000527f1e0a1dd7b3b806ac4bc3fea18a4a4bc66071ae29ea60cfe9bffd7f39bec4e9506020527f3155c44ae2cb923a1f9664fa462c7c71975c57706987231a8b3ee5d04b5fe5306040527fad7d2f50e5a57baf9916e251cdcb680035a9d37f08ae7ee52b9026af284639416060527f17d5aa5a02e8859b7d7fba8338a1d07d8beabbb32c02effc5e475be4e7c3daa66080527f505c30ab6738d740e6a0fb2dc2ac162a219d72ec70fdedd81ff86150d7a067f360a0527f85712bd79e2937184e738b74b26a7f486b37903d9aae6c99a203896117d757c960c0527fbe6ee428ff22d6bfcb5832852cba8c9ab765df85938186f67b3d3400da3a3f9c60e0527f3939dc2b739558813adf772aa4b15c7eb7a7bf1409dfa479cba20297fc43ca5c610100527f6b35a7cfb1a6534523db9eb3242394caae95bf9bc31dc008342b761ad30de09f610120527f854144dc711fe375a7c065a2cd136956440e1adf2705de37bf972223c4f003ad610140527f91bc4ee89625507337e9aab34ea2cde3f18b96f18b0a27cc5e8ad661f0123021610160527f664faf22c3e905bae00c2d54a010aefafc10d74c1a000decd3467859105f114661018052604060006101a06000602460087f9b83a54ae8b5af5197c75d7a815c8bb11e81161cb04d4f7aa59b9aa578f4ef1ef2600055600051600155602051600255\",\n      \"nonce\": \"0x0\",\n      \"storage\": {\n        \"0x0000000000000000000000000000000000000000000000000000000000000003\": \"0x000000000000000000000000000000000000000000000000000000000000000f\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000004\": \"0x0000000000000000000000000000000000000000000000000000000000000013\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000005\": \"0x0000000000000000000000000000000000000000000000000000000000000009\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000006\": \"0x0000000000000000000000000000000000000000000000000000000000000003\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000007\": \"0x0000000000000000000000000000000000000000000000000000000000000011\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000008\": \"0x0000000000000000000000000000000000000000000000000000000000000004\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000009\": \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000a\": \"0x000000000000000000000000000000000000000000000000000000000000000a\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000b\": \"0x000000000000000000000000000000000000000000000000000000000000000e\"\n      }\n    },\n    \"0x766C0844EBC3c4ef4ddb86260a4D3516cCa03A10\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7c9a60c23b9313f62b01b29e4eb8d423b58410678d89810ba3fcbf9b86766000527f33484703223612690945d74b3b595973ede4fdfbd022c31967190f52f9710d9d6020527f4e50abf59452e7caec6f35757bd59dddf76032ef813ebe914034c6a6515f8b1c6040527fc61f52d194f07d882f72a998cd4bd51b8857cd0a2e8663e0a665917ad2b53b686060527f5ebf56e91c6fd2c8db25b04dba00ca3457181a104af1b15f5fa560c2f388477e6080527f788179f76e7f546578d5b889305cb7fbe18e406b9979a6129fca8c7487cb3e5a60a052604f60c05360f760c15360cc60c253605460c353609760c453609a60c553608f60c65360e860c75360d160c853607e60c95360a960ca53602160cb53600160cc5360ed60cd5360c660ce53604e60cf5360bb60d05360de60d153608760d253606160d353600160d4536040600060d5600060097fe61ef44776e880511e5e8b7872c121ad30beb910665e6be4ef98603a772cc0a7fa600055600051600155602051600255\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x91C6Dd1A685cAE33B044370252727B57f688e5c7\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x89032b3329df88503c25a42c79eb3d5628c802530d8ee347881aeeebaf5ffdfd\",\n      \"storage\": {}\n    },\n    \"0x9529cc6891Fbd5aBFABE0AE6c79D30F0CCAe848F\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x6380000000197ff6376770abd3a36b20394c5664afef1194c801c3f05e42566f085ed24d002bb067d02126262626262604077ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f7effffff8000000000000000000000000000000000000000d900000000000001146000556a01000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb9018901a7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb6801fffffffffffffffe901a600155156002556c010000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1a7bc9700000000000000000023f00c00014ff002c0000000000002231087bc9700000000000000000023f00c00014ff002c0000000000002231080590166b1000000000000000000000007ffffff716b61616160b0b0b2b0b0b0becf4bef50a0df4f48b090b2b0bc60a0a001c90147f80000000000000000000000000000000000000000000000000000000000000007f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe901818157cc9700000000000000000023f00c00014ff0000000000000000223008056823232323232323232390180a600768066aa0a5319bcf5cb4181c60035568232323232323232323712000110000000d0a300e750a000000090a0a90056a0100000000000000000000686d5adef08547abf7eb139007678000000000000001600790067f77676767676760000000000000001002e000000000000040000000e0000000006b1000000000000000000000006a0100000000000000000000080867b368d219438b7f3f7f7effffff8000000000000000000000000000000000000000d900000000000001140460045571767676767676000000000076000000760000197702ffffffffffffffffffffffffffffffffff000000030000638000000090111d6005557f40000000fd000000db00000000000000000000000000000000000000000000017ee8e8e8e2000100000009ea02000000000000ff3ffffff800000010002200001d7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd6b01000000000000000000000090046006557f80000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb9001686d5adef08547abf7eb7ffffff716b61616160b0b0b2b0b0b0becf4bef50a0df4f48b090b2b0bc60a0a00677fffffffffffffff089011600755638000000076fffff716b61616160b0b0b2b0b230b000008010d0a2b00901d136008557d7676767676760000000000760000000000000056000000000000000000007d767676767676000000000076000000000000005600000000000000000000017f82000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe90136009556f8000000000000000000000000000000168478392145435897052762900760076761e0002007676000000007676767600000009600a55777effffff800000000000000000000000000000000000800168066aa0a5319bcf5cb41314600b5567d02126262626262668478392145435897052067fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff760fffc000000000000767676240000000000002b05760471c9012777effffff800000000000000000000000000000000000800167ffffffffffffffff90039010600c557f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff760100000000ffffffffffffffff0000000000002e0000001c678000000000000001778200000000000000fe000004000000ffff000000fffff70017901b60017e4b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b090b2b0bc60a0a10006a01000000000000000000009008600d557f12cbafcee8f60f9f3fa308c90fde8d298772ffea667aa6bc109d5c661e7929a567ffffffffffffffff9004600e557f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd67b368d219438b7f3f1b037e1f0000000000000000000000000000002000000001000000000000000000006a0100000000000000000000901d7feeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee7ffffff716b61616160b0b0b2b0b0b0becf4bef50a0df4f48b090b2b0bc60a0a00600090089008600f557d0c76f4afb041407a8ea478d65024f5c3dfe1db1a1bb10c5ea8bec314ccf97f8200000000000000000000000000000000000000000000000000000000000000901c7f7effffff8000000000000000000000000002000044000000000000000000000168010000000000000000901790137ffffff716b61616160b0b0b2b0b0b0becf4bef50a0df4f48b090b2b0bc60a0a0071767676767676767676000000767676767676900511777effffff8000000000000000000000000000000000008001760fffc000000000000767676240000000000002b0576047610111900817774b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b0a0a7176767676767676767600000076767676767603900a6f800000000000000100000000000000007f80000000000000018000000000000000800000000000000080000000000000006f800000000000000000000000000000000890159010601055600515196011556f8000000000000000000000000000000167fffffffffffffffe901871767676767676767676000000767676767676762900760076761e000200767600000000767676760000000b1869100000000000000000007cc9700000000000000000023f00c00014ff000000000000000022300805026012557f800000000000000180000000000000008000000000000000800000000000000063800000011a601355157f12cbafcee8f60f9f3fa308c90fde8d298772ffea667aa6bc109d5c661e7929a567d02126262626262676013590cab83b779e708b533b0eef3561483ddeefc841f59008151415601455760100000000ffffffffffffffff0000000000002e0000007a01090000000000000000000000000000000000000000000000000014637fffffff67ffffffffffffffff03067f77676767676760000000000000001002e000000000000040000000e0000000006fdac7fff9ffd9e13226262626262626009007900519637fffffff7f7effffff8000000000000000000000000000000000000000d9000000000000017d0c76f4afb041407a8ea478d65024f5c3dfe1db1a1bb10c5ea8bec314ccf9086015556780000000000000016801000000000000000090116f800000000000000000000000000000007ee8e8e8e2000100000009ea02000000000000ff3ffffff800000010002200006a010000000000000000000008601655901060057176767676767676767600000076767676767601901590076017557cc9700000000000000000023f00c00014ff00000000000000002230080567ffffffffffffffff1b7f8000000000000000000000000000000000000000000000000000000000000001760100000000ffffffffffffffff0000000000002e000000901260185563800000016007900260195577800000000000000080000000000000008000000000000000680100000000000000007e40000000fd000000db0000000000000000000040000000fd000000db0000019009900a7e40000000fd000000db0000000000000000000040000000fd000000db0000017ffffff716b61616160b0b0b2b0b0b0becf4bef50a0df4f48b090b2b0bc60a0a00900b601a557ee8e8e8e2000100000009ea02000000000000ff3ffffff800000010002280ff6780000000000000010b90047ee8e8e8e2000100000009ea02000000000000ff3ffffff800000010002200007f5fd8fffffffffffffffffffffffffffffc090000ce700004d0c9ffffff0000019018026f80000000000000000000000000000000637fffffff189004712000110000000d0a300e750a000000090a0a7f80000000000000000000000000000000000000000000000000000000000000029011901a7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101119011601b557e050beb1c60141a0000dc2b0b0b0b0b0b410a0a0df4f40b090b2b0bc60a0a006f8000000000000000000000000000000005900b651ce97e1ab91a71767676767676000000000076000000760000900b9010157e40000000fd000000db0000000000000000000040000000fd000000db0000d3638000000002037f77676767676760000000000000001002e000000000000040000000e00000000068010000000000000000129011156770000000000000007e40000000fd000000db0000000000000000000040000000fd000000db00000190131019678000000000000001712000110000000d0a300e750a000000090a0a9018036c010000000000000000000000007e40000000fd000000db0000000000000000000040000000fd000000db000001141590127f40000000fd000000db00000000000000000000000000000000000000000000017bc9700000000000000000023f00c00014ff002c00000000000022310890121667b368d219438b7f3f6fdac7fff9ffd9e13226262626262626007806400aff20ff00200004e7fd1eff08ffca0afd1eff08ffca0a091b762900760076761e00020076760000000076767676000000774b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b0a0a0603601c55777effffff800000007effffff800000008000ff00000100006780000000000000011167d0212626262626267806400aff20ff00200004e7fd1eff08ffca0afd1eff08ffca0a1067800000000000000167fffffffffffffffe7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd900890086f800000000000000000000000000000017f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1b601d55677000000000000000778200000000000000fe000004000000ffff000000fffff70010017f7effffff800000000000000000000000000200004400000000000000000000016910000000000000000000901112601e557ff6376770abd3a36b20394c5664afef1194c801c3f05e42566f085ed24d002bb07f77676767676760000000000000001002e000000000000040000000e000000000901c6801fffffffffffffffe774b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b0a0a1d90047e4b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b090b2b0bc60a0a100069010000000000000000000505601f557ff6376770abd3a36b20394c5664afef1194c801c3f05e42566f085ed24d002bb067b368d219438b7f3f9010197f62d8fffffffffffffffffffffffffffffc18000000000000000000ca000000016801fffffffffffffffe06901c68478392145435897052717676767676760000000000760000007600007702ffffffffffffffffffffffffffffffffff20000000000090086020557702ffffffffffffffffffffffffffffffffff200000000000600116177d0c76f4afb041407a8ea478d65024f5c3dfe1db1a1bb10c5ea8bec314ccf97ee8e8e8e2000100000009ea02000000000000ff3ffffff800000010002280ff90116021557feeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee7e1f000000000000000000000000000000200000000100000000000000000000901390126022556d0100000000000000000000000000686d5adef08547abf7eb03686d5adef08547abf7eb6910000000000000000000900690076023556f8000000000000000000000000000000067700000000000000090167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7e050beb1c60141a0000dc2b0b0b0b0b0b410a0a0df4f40b090b2b0bc60a0a0090116024556b1000000000000000000000007f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0218602555690100000000000000000015760fffc000000000000767676240000000000002b05760477a01090000000000000000000000000000000000000000000000000001116026557f7effffff8000000000000000000000000000000000000000d9000000000000016f800000000000000100000000000000001d67d0212626262626267f80000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb900890046027557f5fd8fffffffffffffffffffffffffffffc090000ce700004d0c9ffffff000001157f7effffff800000000000000000000000000200004400000000000000000000016f800000000000000000000000000000010a19191763800000007cc9700000000000000000023f00c00014ff0000000000000000223008059001017f8000000000000000000000000000000000000000000000000000000000000000760fffc000000000000767676240000000000002b05760476d010000000000000000000000000090081768210000000000000022684783921454358970520a167f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd717676767676760000000000760000007600001b90187e1f0000000000000000000000000000002000000001000000000000000000007f7effffff8000000000000000000000000002000044000000000000000000000112900b196028557ff6376770abd3a36b20394c5664afef1194c801c3f05e42566f085ed24d002bb07e40000000fd000000db0000000000000000000040000000fd000000db00000111671fffffffffffffff7e1f000000000000000000000000000000200000000100000000000000000000901c7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd6770000000000000007f82000000000000000000000000000000000000000000000000000000000000000990086780000000000000007e050beb1c60141a0000dc2b0b0b0b0b0b410a0a0df4f40b090b2b0bc60a0a00901c1b60007f820000000000000000000000000000000000000000000000000000000000000002900b7ffffff716b61616160b0b0b2b0b0b0becf4bef50a0df4f48b090b2b0bc60a0a007f62d8fffffffffffffffffffffffffffffc18000000000000000000ca000000017ffffff716b61616160b0b0b2b0b0b0becf4bef50a0df4f48b090b2b0bc60a0a0008901660295560006000f3\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x9E607bB0Bae19b8bC75638fd1aB98594b36ba46d\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7f2d48fef6d6dbc72cbd48b0915fa033ffa7d4a361118c537ed2d7edd66d78e7c96000527ffcdd0f1f8c09b3d29c80926527694e969a9ba25d383e3ba54aef34d24bd497cb6020527fe1d7cf96007291dd8c1eb2d1081963c991a1d6dea4658779516c6a7274017c806040527f66bdafcf782baea58cc2eb1141b2632df0d2f55926d787efa5412396958e25fb6060527fdf352be9237b127f7d05d548b7407b9c30207ade11fbd720718c9c5ee9d0fd376080526020600060a06000610100611916f4600055600051600155600060005260006020526000604052600060605260006080526020600060a060006001610100611c58f26002556000516003557f460591a824574b95cc69076bb607cef8d40a0c0b4c847c7dd99f0dbcb69615056000527f742e579fe0f7e725f6fdaed587cf572f5cb07e738dcb5c980e0e96bad4dda3536020527f5e824e64a8a098aead190a98c096eee9468efd48a851080108b8393dd5fe3c726040527f278fb56ae5fe76e5eb5a8a478d378e8eb6fc0a149ce9300f322cd7b91a6d4f1a6060527ff141171951bf218ff95ff9d70c99355db248dfc52db1d551a0a93b2b78c4df276080526020600060a060006001610100611989f26004556000516005557f48ec01c0e1871403bb3ca3a08fbcddadcc99a469e4a7305b81f23bc7b53193896000527f9925d5cf12ca591180ab2e8461dc882ef7e83de5b155e09a986576c23b2900de6020527f94b0e6be6afe4521f65b0d946074f1f23d5393ef2dd7da2978b0f2086a76ff2f6040527f78b4f1c71ad536b3d04db6fe5b6000e437359573fff6f11a3be9baeacba2cdfe6060527fd0859ce0e95ca9c4d981a67d181b08ada3884ae5cf6ec584d93d21c27ea2d8496080526020600060a060006001610100611c24f16006556000516007557f7e7405fe9def216c90e9e92b81e64defe43995d088898179e64c81573501ffc96000527f5feb47f2139e0858713da463e2d6e8e50248633757004714cd7720b3d7fe45bd6020527f604a2ffa598e68971c856cefd048c75305de2ad9549e9802830b4c0786e836906040527f7f57c80bc07f2580f08c7d1d69cfaed1c294761d9338c6f2ddb41fd86428ae266060527f129c44035429199b8f6e1d71295ab48df4b41f9bf0e566080908d293ce3d28736080526020600060a06000610100611cc0f46008556000516009557fef02d493f62b3af6a7bfacaf888c58ae1b41d3e62bd483459f1682842ade1c726000527f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6020527f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040527fa8f7dbc25e8c7cca554fcf1f8d2ab12eb45bbc4fa90d51971281f4b413bcb9776060527f8dc09b13292575a077fb4629b0c3a3ba5fe7557de3c70246662d7be1fa768f3c6080526020600060a06000610100611c66f4600a55600051600b557f9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a0860005260006020527fd72bb6e19026029599b5f099d83684d02890bc6fc0cf8ac7ed234498516a43f86040527faace2731c2f9766302293f90947e01c4739475ed7f6e72f5ba57627c805423de6060527fb676d1036dab813d9fa8172cdd0b522309cac452e775f65bd7c10e3565bc1f9b6080526020600060a06000610100611a49fa600c55600051600d557f9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a0860005260006020527f5809acbfb7d1d265d77fad581f331327df9e2e1b8e09be2c60ffe6e1bd9ae7526040527f795acf93e6d163e6d1ffadd6cacd3744af8758c8142b2ef2b06a491cb517b3486060527f31c0407c043a0d3579017bdacf960b1be3d95235253045518f02b6afa9a4b0d56080526020600060a06000610100611b08f4600e55600051600f557f1f578153149420497e676cd6d5eced6ad7043396f1b476698d8982d5f82d51156000527f47a758179ab51312779d4529b0c4d24c59cd3c082ed5fa0024a52a2ee26ee8a46020527f068c672385b1a7d8730ccad44ea08f9bae8b8c48b15636ee8d218b2ef9a202db6040527f9823ae0e11e65fabb51477fc42c46bd9a8026bca26fe815a67a3c2f2133da64b6060527f16e38ad5ce001771fe1ee92e2ea2c17e158e8d26faf1967ba6b9726d93190f7b6080526020600060a060006000610100611b9df16010556000516011557fadd5246b8fe95262b5c92e34b66460e9fe6846fc80c0d0143ad0a7b36e6b71826000527f1f01817d03674644755b5302064fb4d951ead6492a12d1194ddda94d859fee836020527fd796ec850f4397801b66dbe752a4ec9d3cdc06c63f384b8db9cb393400dfa79c6040527f53bb06fb0a450f211e84d0d65a1bdaf5404dc24923bbab3874a17f833cdc31c66060527fd1db726c8e0dfa245af9fa7d9516999e05bfe7405e12b9c4d4b80f6278ba65006080526020600060a060006001610100611cb4f26012556000516013557f7e5f992155422239ce99f246ef28398cd19efd4945bdbcfd0906cf295f0acf9a6000527f23486150ca3798a368f956840331487ee7aae2b4c41bb3c5d06dde0bd5a8319d6020527f7262fc33081844bc6fe1324f77d816fab0596e0aa4a80911d5de1ec1065c3a966040527ff60b76f958d30c87f1f4cea06a0511e14cdcfff27f9ef7300380843e70f69a156060527fb5a22958693bdd0453d5c4c7dc392ba265a81b1a6ec356c7a0d71a2f1733933e6080526020600060a060006000610100611910f16014556000516015557fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6000527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6020527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6040527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6060527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6080526020600060a06000610100611c99fa6016556000516017557f3dd166a0d3b1651ed856c109b45cc195a240a2fab23183accf87757b64d3b30f6000527f7c96ef833b5e75bd4d69819a6a13377ed249b800798e1f58fb48a3a47f0d04376020527f0285012e51e1ccd423b89be32135bc22bd266a3c66aa8e2a6d375a0a3edd93d56040527fddb9a2c3c25ff7fc7438521df5159d379cf4242e9d72c126a24deeace97d01406060527f0bd8aa57cadb8ec6ad4c294ac9fd5f2033f876b305b70da837a2e47759a83daa6080526020600060a06000610100611c70fa6018556000516019557fe723ca68f12a5176750652de172ea07516f031fc69df3e4d3f4db7991ec7f4956000527f1ea11655451f9fa1a6ebee3cf000d22d6feb8c82718cbb8ddb12dab77d1fe2256020527f5545cbac5769033d164c67144735e7fb4e5f5b778b89659318cbb40cce98fb366040527f9a8d1e5e35392b97f14359da3e744bcd711f673ffd7a101711876fcc329b4bfb6060527f8eb0802a3a39bd992fc1919de73ca1a41e627bd9d448ddd43df1a1ed9e13a3dd6080526020600060a06000610100611b0ef4601a55600051601b557f781f41bce25afe583069c7570abf9f17a52c59c73276dec66742b55a91a22c316000527f5276b48e3889087f1d05c469fcebb4b6acb88da49c7718fa3fe678a8e420627e6020527fa026f5b97a918119b4ef452550ec36faa0f2757c922c13e3aec9a82373219bcb6040527fca070f9cb46904d7e3cbf6dd138653fe8f1a1756d472d82ec6d5f7bb813a71226060527f8dac32f60ea0d00b8c67638175086178d77232c404736267b3021b5db6e72ba76080526020600060a0600060016101006119dcf2601c55600051601d557f28ecc5cfc546424311627c988e9cbe9c434fc5e2ceb5182ff18bb8485da8457d6000527f394f722770e2b9a2631399cc5916c8d1b6c87bf5a6f3138da5ec52137167a53f6020527f4fe27e8baffc4c94f1a803b14262c24588a41035455ef46ca2f68cbda15a32b96040527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6060527fa9a1d51ba3df24dbc7c9afb53437ca15d46d6dece751957fe2b24f87204a23bd6080526020600060a06000610100611bbcf4601e55600051601f557fdc7a6a7dbd8a42cf97100cbfb5343286879ea772d7f0e486bff85bac63a41cb5600052600960205260096040527f2f1a6ce97909c9947e8b05e181f97c0a0a4b142b7eec35215ba499d057ea23b96060527f157a3a06678067b0697843853539281f9caf2c41ec378bbaca088500748194db6080526020600060a0600060016101006119c3f16020556000516021557fdc7a6a7dbd8a42cf97100cbfb5343286879ea772d7f0e486bff85bac63a41cb56000526fffffffff80000000600000002fffffff6020526fffffffff80000000600000002fffffff6040526fffffffff8000000060000000300000006060526fffffffff8000000060000000300000006080526020600060a060006001610100611a37f16022556000516023557fdc7a6a7dbd8a42cf97100cbfb5343286879ea772d7f0e486bff85bac63a41cb56000527ff7ffffffffbfffffffffffffffffefffffffffffffffffffffffffffffffffff6020527ff7ffffffffbfffffffffffffffffefffffffffffffffffffffffffffffffffff6040527f559d4c984a71993ba2299eedf7dbf226f692c1c329b899b4a29490e31f55cf326060527febf7a5aff69e762b1e871db04864e65e35e75995c68adca0154d1d925e93703e6080526020600060a060006000610100611931f16024556000516025557f0d5d8c3c63c36344c65b288698895195d95bcdc486db6b84bdb44000077b0c776000527faaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa6020527faaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa6040527f8f7bbf81d570991c1dc5a300654032769d4a6dba81ee23e470bd7b6749b048d26060527f6fba636686ecf2906bb10decf2ea18ede20a5313a6bd2755b68e1c8eaba91c826080526020600060a06000610100611a5bf46026556000516027557fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6000527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6020527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6040527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6060527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6080526020600060a06000610100611c13fa6028556000516029557f92dcf6a29fe268ccbfad7d1241b0d570b0490e793a871cbe3993d65f8c7631956000527fa69ce0f86c885b497070631c6763d1cc9b5a288b2c2a436f79e2816fb4b9526a6020527f7f125a6da806dd90960fec9d3a916e6b5b1e16fe518e5ce7fcae454b649dcf6a6040527f3f3c52730247cfb14ff4045b32ec699ca52cc02586a3b3db47f012772e7b53516060527fac7a5635ad3c1eb29393792efcb90c1908ce7ab9d80459a42dda216e912d65306080526020600060a060006001610100611a16f2602a55600051602b557fd0a6aae6c767f393aa8969e191293a4c502f4a7d9865373463dc8eaea20ae8866000527ff20b041a964c5e6a8a54e64e3a83e6c194317a88e88d5f0c99d03d4ed586e0b16020527f4e8f68a34e68a36828a90e7f7021495a5fd5555cc38e3cc394c1dca6b59017a66040527f2a6fa2088e0d26db96dc6ab441c3a60048ab953bd53a52c4fdf17e5239f2fe3b6060527faa09203b7edd9840fe7bfc098dfca22fb18aeffcce0179a252dc3528172e1fe26080526020600060a060006101006119f9fa602c55600051602d55600060005260006020526000604052600060605260006080526020600060a060006000610100611cc6f1602e55600051602f557fdc7a6a7dbd8a42cf97100cbfb5343286879ea772d7f0e486bff85bac63a41cb56000527f01000000000000000100000000000000010000000000000001000000000000006020527f01000000000000000100000000000000010000000000000001000000000000006040527f65c1110c0be74cb76965d2672cfaab66768f6273153b48499ab92620291661c96060527f28244fdb476e78a0ecb14370154db3a3cf0eab01383dd5996c52775760d448e46080526020600060a06000610100611c1afa603055600051603155600060005260006020526000604052600060605260006080526020600060a060006101006119a5fa603255600051603355\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xA9A42c08023d1a23a61dA0cAEd0106A7C48b7120\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0xfade6018c180bd1cd998447d92b262af3473cfdbbd4c3b901b6f1b189c53e7fe\",\n      \"storage\": {}\n    },\n    \"0xBa0E31A0E75AC9a4cac4c57d6c7EF2a10e87D4e6\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x602f6000536038600153606f60025360e5600353607e600453608560055360cb6006536072600753608b600853604060006009600060bb60067f3e1f7155c0651aec04b04c5c8bc70f2c07a70c9372276c8b438cff34ea5b6e60f2600055600051600155602051600255\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xC4AA0D75736f14fb4971bBDe8CE49Fa1E25217bd\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x9327cce81f1cac3ff6a060f8ccd3b81f543fb0332849fa43c6c26683cadd52fd\",\n      \"storage\": {}\n    },\n    \"0xD74CFe323387aE2fd070CD046173026716D8D649\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7f0193f3b4d1bd34cc620b76788c1b0b7efa494a6a3b9b30afe63dcc0add0bf1286000527f7030eb85fc3a20e4208718167e80e0d80be0b29311eace6c92f4fb8466ddeefb6020527f52830b627d58510f8f2672ea2b9ac2b2deaadfc7a476774581844b2e6aa5c4a06040527fadc18db5ec80ce6f7ac02e7e823aca5ce50c0b6d80edf88cc50eb6ada1273b046060527fb5b6bbd639bc86335d476a042fe0760ab6a944f65e1c716602aeefb17f6329fd6080527f317ddc040b0dbe36d428cd49f9be1cb0e35527fef9bafb63f0604ac6fcdc5f6e60a0526040600060c06000600a7f9c2fc66c6fb11903613fd8b83c51568eb684932cae21637977215ab21c31f001f4600055600051600155602051600255\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xDa78807c1C4567c23EB713E9fbB3b1508C1284ce\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x6000600052600060205260006040526000606052602060006080600060016194e3f46000556000516001557fcc931ae91d1ae57ee1ae991be2dc667e43cd1dc8ff19fc5ccec78bd4ebab19df6000527f9783a52c81da9f990d466b3a1e3f67197145f4c8a3696bb62611a66384fdf51d6020527f43c4bfa434bd3b91f5e79a1815c15fe2ac602508e4998fa6b283c280a415db926040527fd96c2b30519212ae3b0d24d7e96f2b1dccc96e5e928d6c62622534da108219b960605260206000608060006001600162014147f26002556000516003557fe0617947124e86583d06ccd8e934e8195ef7c763f8e784e16dbc8ee0bcb086666000527fa6d80bb7f4815e2722b9ca09e6f4512fa46ee459f5a28781f330dd12cff3961b60205260006040527fa4d8b749791a8539cb4af58f9b5243fed693d8e31d82da71abf56f6165c6b7f560605260206000608060006000600162017d5bf16004556000516005557f526a7959323beb89149c76522f91558f16cbcee030ddc8fa0b22f43a237eb2596000527f959e49aed0281ac6522e27bbc28d41281dcd3716d823e7c8cfbdf748730d271c6020527f4470f60814b8689866b44fe346006f0884e1f7c7f3a32a7d94ebd08d78d32ad16040527fffffa08a0b7881fd72c1693c3dae3852a0011d8af63aff4ddd92437a3b7a4b50606052602060006080600060016201488dfa6006556000516007557fcf96f626e87a60a687ea394b316955428eb10d42e1e4f4239698fd6c00d08cb36000527f5c1757376584c0674f7709621fa64a2078ea08000a18403b11664b70ca52d6026020527f21cce01d37a32278d253ca812f41c4c5c44e99eab20167aefade6a82ff28aa346040527f3499e9f20a655e68ff6aac3baf378aef196dfcf602498704643ebf1e17da55c6606052602060006080600060016110fdfa6008556000516009557fc2180a992da54ed7bcc3b66cc7ab15181a1986294c9675692459164f15cae08a6000527f65b49bc2356d42810531fa25681d2e5cddf2a23830f2721935ee942a794d601b6020527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040527f90fa6156adc938830646bf56550d29a7ab6c07808d4c917fb907e327098e12e8606052602060006080600060016151f6f4600a55600051600b556000600052601b6020526001604052600160605260206000608060006001618beffa600c55600051600d5560006000526000602052600060405260006060526020600060806000600162015743fa600e55600051600f557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601c6020527f2286250ac79bbf13291e28d79da99adb427d9dcc5d9d210305cb8db7bc9e61fc6040527f7e22a7f0e2a324800b0cd4025aa51e3c32a13a6c60b468a214e9845a9b0527256060526020600060806000600161ec65f46010556000516011557f707c2c24eebf2dec569acbb9360b6059f29fdb785678db078d525d68197b41e96000527f872ba55696a0dfdd467dd9bb428da400c8a35ef846e497cb2b3427df6a304d1b60205260006040527f8936a997dcaae3ca6613577406824f2d9afc2b78599fc062df4198c02f14a103606052602060006080600060016121f5fa6012556000516013557f1741794b464ca914bfe3d72ab2166a284bab4512f1cf1ac5fa7585dbefa0d6d46000527f064a505fc85000dd0e064c7d38e3b3fcd61bdf4f5d44802afd3ff17ca78b101c6020527f6768b2f44970599cdc4d42de36d5ff39a10f1cd4fa0894f54bd06611aa24bf8a6040527fffff19f3d2af03a26a93a71940e0e74db00f903040c25e5b15519eac6fcd0f986060526020600060806000600162015b40fa6014556000516015557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601c6020527fffd93fd2822906f26edbeba1bff10ed9aaaaa2d78eaa224433446639d341d13d6040527f422c26054c09af7cc00fcacd0bc46071b3c21726043dca5334fa9647288c7fba6060526020600060806000600162011c24fa6016556000516017557fa90ffaa963c65a3c654bf00cf6ac34f86c3a17f8029c05c5244b23d96b2916976000527fdfa7100ab09a5db4abcccbf45e6aa4a0be1d2dbc129cdc930280b985609c111b6020527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040527f5a153b43cf49358856de90daf0d33fad42a42c6e5ab8a6c8cced6438af664a7f60605260206000608060006000600162013aa6f16018556000516019557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601b6020527f2ab58abb36d14f8bc721eac991a26b8eb73efa3baddc31647d7da807ea3f6b146040527f5c66b60ffe1f3aae3f62a9c12a205d6b7d6c5ffe631d53a766b4bfea67f5573560605260206000608060006001600161e558f2601a55600051601b556000600052600060205260006040526000606052602060006080600060006001620184adf1601c55600051601d557fb908e0e234371730aeeb6793a86770a3e13390f5c8354db1d08c5a14c381aab06000527f724b9d656c076ecf5ccce4090b19986980e01c61fb74cd5f0a00f183f9772b1d6020527f61c243042f4c03a0292b98fda438efb44f6316d818b31e8821f09c5909474dee6040527fee36d3a720ff6f90c2ef947b206516a085da82674bd935afd7c6160c7d51c70960605260206000608060006001600161be54f1601e55600051601f557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601c6020527ff2e8bf9a85882292bde75beda7bac92bc8a1325b9e28697699a7af4f415e913d6040527f560737dad06caf1302db510e5182e3986a6ab0798c04b7c55a1e88ad8b41f36e6060526020600060806000600160016133b7f26020556000516021557fc6212c3f5648d0e9a77343ccc80ce36daa100704ed7282871c2ccc629342a3826000527f549e53ba450f964ed2cb30b7eb094d3da8b53b9cef467661f81a0ffc4e5a3a1c6020527ff05e25052bab68bdb535c86e03a2fab5c8f8549c4b954551cfec37a7978f366d6040527fffff4f207c79659b7c1fda0afc2b8b775837677495a1c09bdf82620a5b35aeeb60605260206000608060006000600162013816f16022556000516023557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601b6020527fc311f0f33ab412d1f6c16c80b672109e2f6f67add81efae206c3c7113a6144826040527f7d21de99c9ff97207312a5fdc060506fd6a1b5b01a3a404d77e4ac0314a5db576060526020600060806000600160016118c2f26024556000516025557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601c6020527fceb2f025bf374596293fc0b0b5f4b8454cdf8ed8c69f00a5f1205c0b9c21a1f26040527f23dbf65535a35a8a20e5596fa4eb0672389c7f9679da632cbb6afa0ee049aa7860605260206000608060006001617c71fa6026556000516027556000600052601b6020526001604052600160605260206000608060006001617692fa60285560005160295560006000526000602052600060405260006060526020600060806000600161e2f6f4602a55600051602b557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601b6020527f52b1f8b72565696f923a2a3c1c02884cf7715739d62da47be768787c5f6e4ea26040527f5ac903ceb935cdfb43b0456e4caea9ee634a7bdb7553a85d3f2d0673cc32fbf860605260206000608060006001613f13fa602c55600051602d557fcd3ab31c082129f8094b149405055f73cf34becb36f8dbb1a483ef9350a546d36000527fdc35f0f8f80bd27f84ce0f46ce2eda49694fe87e60398584a313db6ecbef5c1b60205260006040527f5decf45ca977b833255baa1326af0258c91ed3eb8e9d47b5fae45a9c19fdbba060605260206000608060006001600162015542f1602e55600051602f557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601c6020527fe0f55acbcebbfaffeea778fbd1f0651b2329d467759a5a20b528c940a7744f256040527f320b92b20a863ca1648ae7ed73f3b5a9350c78a5acba2bc82f9de2e6a6caa4716060526020600060806000600161c172fa603055600051603155\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xE2f4CF89C9B94178B5725B8b1fd9a7F40c4a674C\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x7f800000000000000000000000000000000000000000000000000000000000000069010000000000000000009007197ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe67ffffffffffffffff021660077f12cbafcee8f60f9f3fa308c90fde8d298772ffea667aa6bc109d5c661e7929a59003166036557d7676767676760000000000760000000000000056000000000000000000007feeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee90116770000000000000006001677000000000000000087feeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe68100000000000000000081d6037557ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb90057e4b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b090b2b0bc60a0a10006fdac7fff9ffd9e13226262626262626006f121212121212121212121212121212129009603855901c7d7676767676760000000000760000000000000056000000000000000000007f8000000000000000000000000000000000000000000000000000000000000002900360395563800000016000901b901d6f800000000000000000000000000000016f8000000000000000000000000000000090059014712000110000000d0a300e750a000000090a0a677000000000000000120163800000017fffffffffffffffff7effffff800000007effffff800000008000ff00000100000590176f121212121212121212121212121212127f8200000000000000000000000000000000000000000000000000000000000000110b677000000000000000684783921454358970527f80000000000000000000000000000000000000000000000000000000000000009009774b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b0a0a7f80000000000000000000000000000000000000000000000000000000000000026901000000000000000000900990087fffffffffffffffff7effffff800000007effffff800000008000ff0000010000686d5adef08547abf7eb1c603a557ee8e8e8e2000100000009ea02000000000000ff3ffffff8000000100022000067b368d219438b7f3f059012603b556a01000000000000000000007f40000000fd000000db00000000000000000000000000000000000000000000011760057f80000000000000000000000000000000000000000000000000000000000000029011126823232323232323232367ffffffffffffffff0a9017778000000000000000800000000000000080000000000000007702ffffffffffffffffffffffffffffffffff0000000300000505603c5567d02126262626262669010000000000000000009012603d556a10000000000000000000007d0c76f4afb041407a8ea478d65024f5c3dfe1db1a1bb10c5ea8bec314ccf990167f5fd8fffffffffffffffffffffffffffffc090000ce700004d0c9ffffff000001777effffff800000007effffff800000008000ff0000010000901c603e557f80000000000000000000000000000000000000000000000000000000000000026801fffffffffffffffe1c7f80000000000000000000000000000000000000000000000000000000000000017f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe900816077ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb7a01090000000000000000000000000000000000000000000000000007603f55671fffffffffffffff6a10000000000000000000009013901d7f82000000000000000000000000000000000000000000000000000000000000006b0100000000000000000000001760006000f3\",\n      \"nonce\": \"0x0\",\n      \"storage\": {\n        \"0x0000000000000000000000000000000000000000000000000000000000000040\": \"0x0000000000000000000000000000000000000000000000000000000000000009\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000041\": \"0x0000000000000000000000000000000000000000000000000000000000000009\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000042\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000043\": \"0x0000000000000000000000000000000000000000000000000000000000000009\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000044\": \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000045\": \"0x0000000000000000000000000000000000000000000000000000000000000004\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000046\": \"0x000000000000000000000000000000000000000000000000000000000000000b\"\n      }\n    },\n    \"0xa94f5374Fce5edBC8E2a8697C15331677e6EbF0B\": {\n      \"balance\": \"0xffffffffff\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n      \"storage\": {}\n    },\n    \"0xeBcdc7CF9233a11AFCD5B8283E89D951d41283cc\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x2cc060ba5fe78470210f46455ffac3d00df319717eaa79d4593afa9062a57837\",\n      \"storage\": {}\n    },\n    \"0xf3eAc1d1B1EC8cA737bD148b1E96168024fB3F89\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x6000496000556001496001556003496002554a6003556002600455\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xfD6241df8Ce82b2Fb4126dD0e9FA931806Fa573c\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x61018060005260206020526101806040527fc88bc00e3537574b69732b2a238d0126e3184313f737d07192139a447f56d7846060527fff6785753ee39984ecb7c9b84dc11b47fb781b88da28b6000d1b90235325fa606080527f616ff98d7ec4ff8502c4a86f709ed1a33b93c96da73d7a86be20636c3c75bee960a0527f7c7ca862cf1136b0f0171218255509196e9b8ddcc25109cb94602a88ddd46ea960c0527f8dcba5aefb18ed2c3e7cf3be3f39d83570fd524e00ab3d6cde1814ae51a4619260e0527f6bb3d76c05f73ba8cec9fd7ab35f6b5ddac7543ec6499dd66e5ce46ebf400811610100527f72699a293323eedcb8aed63f7c2d0c3c52ff40d9e806fa8570a5c9b988e35a5e610120527f3b3a032e24a3a4698ac5e059494b7e743a0e2bef3be48dd09d9bf9d77333235d610140527f54875e49a40d0ae2b81ffce06b2d68ade92272e9a21c94a5e8216c7203e1ee4c610160527fff3ecb58315b139cb07c5d93f439b2dfe4507c726a2c73c8c2234884f6b43262610180527f282ae62f4fefaf921b85b6f53bb4dada949167b3204e1673f6571046d7a6ab2a6101a0527f5d91178ce041f76cffeba58ba5a066ce9241e5d057819c097bedbf0fe2ff65606101c0527f8682ace22d5cafe24a2f58aa0eb97d825d40c0ac7c1887db376d161f582e95716101e0527fa90692dea0fcbd11600c0ded9ae428e70002b856db4baa70c981e521fa1cc536610200527ffdac109928200fa9e36aef37a751ee48870ca924f31263ae10005a79602c409a610220527f3e376542b55a21ab18a68af8a667360675b2151f12f5e3c99e8a752cfe8789aa610240527fd9900f9479d8d4e3f89dff1b4dba1ac05832d950dcd766873c9161220fbf8f21610260527fbbcaf4cf7f9c67a0705c5ea2c90c6a5dfb87fcab41cca51811966ceb30e3f76d610280527f7c71ae2db271bffe3fade5bc7111976f871bc5746a0b2f303b91ab2f9c1f651a6102a0527f582d401c25f461c28c30c79527b0091fecc7827c0614be2c554764138604e75b6102c0527fce97c8bac4249c6a637508446ba207b88aebc045620d3c9dbae6f0915bd865c26102e0527fe52c3e61df670e390fccf242c0cdd51e72c5c0410b8a1f5e73d69bca2c23627f610300527f7748ceee680bc41377a5692e7de9cc4867407fa4573faa8238fba994a3f42f12610320527fe0e1f522a003a43de6797d3f94ffef6919865113a9419e409290f38c6281e7c6610340527f97ee141220dcbb5fb338f60dba3eec7dc475c6e119333adc7a4afd1a386952e0610360526101806000610380600060056216c54cfa5a0160005560005160015560205160025560405160035560605160045560805160055560a05160065560c05160075560e0516008556101005160095561012051600a5561014051600b5561016051600c5560916000526103e160205260916040527f4b41fcf56e9c946f221b309933258452445555591de517a9d26f0d2a1b7c64016060527f808ea269768820a6dadabe52e6133f5bd510e1f70b00a53b9031774cc05af46b6080527f2ed65039bf4d7065e580fcb6a194637e2a8d07d938348bf4578df9844e1d146660a0527f5a67614ca53c1c119320c25af763316f78d9e6688946ee0784b00b8a803bb65460c0527fc6a8d6003b582da6bd7b1c84a15e8c43a4a75d1c151d36ebe3cb78139859c31260e0527fc1989579155f746b12ab9e4b483b4bc29866d83e683d65045e97e858957751a8610100527f23cf01a1b3b3bcf7ead3ec22e3b11c57e0936834f52474e889877ce3472506aa610120527fdf326bb9973addd5d70d7e40b3eb3e5118dba8ca848e08f9f55a84d6e7191a95610140527f64f0c5f152f6091ae72a50ca260323f5bf2b749e62ddcc6509663f0da5e6ea90610160527fcc7357dbde438cfb92eb3743bbb037da16aa7f44e14c6323b182c5de3f4ff188610180527f723a5d4e993d6f86a7c571e66adac53fa4bbc2dcd39947a29529dd2abfd9c75c6101a0527ff77cb4a60d4f5077f47d5cc2a99ed7cb8aeeee6d833de8cb9315ebcdd8bb32a86101c0527f759f01af36d502525fadb44f95066c7d115300a821d5c0db18f240f39f8c6eb26101e0527f6159732f3661df236710bfe60dd52e537b2703be72e05968781c7ec03ccabeb7610200527f5c9b851808d0b3849215278846a0a842bf2371cd003fe4d234713560dc2dcbc5610220527fd0210caaee72c4cafeac5ac7a9755c7cf0e62949c7bb69f2dd0def8dba3fec6e610240527ff5eb49654493600bc393b6b6f385b9513e4a0cd31412b08fa823d4401b9c55c6610260527f47c14f97fc0441f35445a943311fea3df2078b948229ff9a5d148e4558020e3f610280527fbe9d6d2a17318753f8adb7a6f7cac1ca07a456c835387cbf9cc3323bd0f83de26102a0527ff0575265a924887002e2e529ac61047909bcf3c576b83ee31bff3bf51d7adc956102c0527f9b080bcdb51091fa112a4b91064192330d9f7147acf8714da54cfeefbf82773b6102e0527fcc314277713bd0973ccef3db913dd38d1c0e6161d153c18a4afc9bf4d030502e610300527f154f005cf084d1aaedf71ea3e4df05d8b05b79a9e151071ceb50c39d84da78b8610320527f732b512522d4ca4f24f28e10872426408958a1c377356e3252364ec0488d36e7610340527f3c3090846254680cc9b483192b2c4870b3ab1776f50edfa98ce6ac9b04db7d3f610360527f83543676a190cad63ace2543b3063db4d7d865d81c155b77abba99cc9fa7215c610380527f7f3fe9056fc7c7d0f15f3f3c104535f6c4fc8933924160657f61646a5b7951c76103a0527fba17efe8c8ac88c63c9d12deac81dba0e3bf6663423ac7efa9f8da4c026d1bc06103c0527ff076d0cc7876097233b55072853059c5ff9776e862c9aa122346d2eaa182c3266103e0527f1fab28f57939024c7fc5e577fa2df7c34c60160fe9682bf64ad00f6e09a8daf0610400527fe6b9006b8be0626c3dceb0b5b319c14fc2d82be90cae680512995edcec093d30610420527f1da09d7671dd174e33437697541d05cb1cc29820ad59fa9b77ebe3d43f277fd3610440527f5e2c68b3ebca51422679c03e0bc3931a94ce4ca83bfe472d3661179b1a14b5d5610460527f1b011af773258ed38942bfc665962c227ea111ebbee3f7fb3d2cecdb82f3bd41610480527f303546afd8d878903066fff3419493884ff13cef00810dd261738ed9830f809a6104a0527ff298a2147d740c127c77726f4c7c32c073c7f1adc5ae6a25440a5fd0f740aeff6104c0527fee789daa860dca3e563238995adbf06c55064d6aa91ef3d721334cc272554f0e6104e0527fdbf41f32e8cdedc0930deb033f3d792bf0c0e4856c48f322c1a905e1022a1735610500527f5ca4f685f726f478922a225ffb97c3c52ccd2765b82552e56eeb73b5b081dc32610520527f87ab723d86e1167b5944ec34e727413f9cdab9783fdc856dc8ca2ecdcf1b5efc6105405260ec61056053608461056153600261056253609160006105636000600562c97aa2f45a01600d55600051600e55602051600f55604051601055606051601155608051601255605560005260ef60205260556040527fc794b2d8e2eaf072f7fef7d41ccd9915d7489b568d0aec5b331c5033092b5f5d6060527f6cf56ab9dfefcb156c3d2d3b2d98e82e5bcdfb49ed92e4489fa3717f709feb4b6080527f2b1cef471d90b89a969ba196bf62a9b0eaa02fb93b000000000000000000000060a0526b02000000000000000000000060c052600060e0526000610100526000610120526000610140526000610160526000610180527be1744d1fa7b3eb20d74c603d45de1a77e200b9368bbc81dcfba262a56101a0527f71ab2b1d08ea3e6be5a5c4ff7f294621e1f38fe76c2642fc6ae03ca909b5db406101c05260b66101e05360f96101e15360796101e25360326101e35360c16101e453604e6101e55360da6101e653606a6101e75360916101e85360c96101e95360ec6101ea5360de6101eb5360246101ec5360a36101ed5360f76101ee53607d6101ef5360896101f05360a06101f153604e6101f25360596101f35360b86101f45360db6101f55360d16101f653605d6101f75360e36101f853605560006101f96000600060056210c298f25a01601355600051601455602051601555604051601655\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    }\n  },\n  \"chainId\": 1,\n  \"env\": {\n    \"currentBaseFee\": \"0xa\",\n    \"currentBlobGasUsed\": \"0x60000\",\n    \"currentCoinbase\": \"0xc014Ba5e00000000000000000000000000000000\",\n    \"currentDifficulty\": \"0x20000\",\n    \"currentExcessBlobGas\": \"0xe0000\",\n    \"currentGasLimit\": \"0x11e1a300\",\n    \"currentNumber\": \"0x1\",\n    \"currentTimestamp\": \"0x3e8\"\n  },\n  \"fork\": \"Osaka\",\n  \"parentBeaconBlockRoot\": \"0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f\",\n  \"transactions\": [\n    {\n      \"data\": \"0x\",\n      \"from\": \"0x677B3ccc29f7c2293364fEec7F51907756f0124E\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x20\",\n      \"nonce\": 0,\n      \"to\": \"0x538A8474EeaB43d5a960164c554A20400151D479\",\n      \"value\": \"0x0\"\n    },\n    {\n      \"blobVersionedHashes\": [\n        \"0x01d389829e7c0e709e1989ec5305e8e731df7d9881b56e8a74b0a3ff6257c139\",\n        \"0x01ad0d7a10bd7f499e177998ee602ed0f57bffa973614c8412f178db3af2cab8\",\n        \"0x01400983c44bac7d4d6f52d98ce77eb2ea6935ad5938dc3cffbf3ebe5d7ad2c9\",\n        \"0x01fbccc493401424e414b91cec5d6c4bebdf8be74a8f818597a0ea97f9a69347\",\n        \"0x01bb6fff1f1c2f113286a6ca12c99baed80fc252499beacf63cab5e4d0dc0dfe\",\n        \"0x015369aaeb26bfdfb0eeecbdd298cc41ed5202adf8b0c997aba93a6d6d5f971c\"\n      ],\n      \"data\": \"0xb28f\",\n      \"from\": \"0xeBcdc7CF9233a11AFCD5B8283E89D951d41283cc\",\n      \"gas\": \"0xf42400\",\n      \"maxFeePerBlobGas\": \"0x100\",\n      \"maxFeePerGas\": \"0x20\",\n      \"maxPriorityFeePerGas\": \"0x1\",\n      \"nonce\": 0,\n      \"sidecar\": {\n        \"blobs\": 6,\n        \"commitments\": 6,\n        \"proofs\": 6\n      },\n      \"to\": \"0xf3eAc1d1B1EC8cA737bD148b1E96168024fB3F89\",\n      \"type\": \"0x3\",\n      \"value\": \"0x0\"\n    },\n    {\n      \"data\": \"0x3df575b295e707c07dc1df\",\n      \"from\": \"0x91C6Dd1A685cAE33B044370252727B57f688e5c7\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0xDa78807c1C4567c23EB713E9fbB3b1508C1284ce\",\n      \"value\": \"0x8b\"\n    },\n    {\n      \"data\": \"0xd4ce11f99d2bc3795165375c1c08364f5bfdc5f051857969990d67468d55ec7df0f8937ce6f8024a0e9c4a44a957eeefe0f5382fa9f30b0f567236f67a9db10e671c2758c3731c91a72261\",\n      \"from\": \"0xA9A42c08023d1a23a61dA0cAEd0106A7C48b7120\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0x766C0844EBC3c4ef4ddb86260a4D3516cCa03A10\",\n      \"value\": \"0x50\"\n    },\n    {\n      \"data\": \"0xa30735fdab09bb096ff451ad3d528f3307732d98c9874070c1a606c846fbcd8d8334532b56d8ba63234af9dd6c1f8f514395241fa19ecda6e195a24b3ad55e689e5ad800b0ac7406ae428d\",\n      \"from\": \"0x3fD261193d23d8a73a4fdfe7735892c6Ebb4f2Ac\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0x22986B2F9A2f5E7119F940898c35e7128A4Ce7E3\",\n      \"value\": \"0xa4e5\"\n    },\n    {\n      \"data\": \"0x58b0f9739971e35ce10fee000eda2c1ed6ee9c0d253988fc965825e5935919840cf3fdbaa3f2274310d0006a3cd03514e790bc849f6f02467a08026835d916c636deb68b7ff2cf49295cfafa02a2b2bf743dceacd8a070070f0444d9ebc35151b4566a5239f2ef577d9fdaf29e951d5b3eac10282df33d7e6d1198ed63e5e1070480d045313411021984807664507f9eb29710e354a96f167ed5234de54d0250be5bedfe38182d3348c48d9c57d6681ce5c68875bbd9de06baeb369b0efec41164cfc2ab8bc2220fdba8f29c5ece41648a537466166e411352d5cf02428852026e8e64ea60605467fd463ff4346872cfee0300083f5cfcdb50a93a33396fb4895bd6bac23656dbab2ad22fcd3754730913dbfb7e8f828c72d21bcd05245117c69519275804de80667cde09f0b2cb4ef6e7cfe7076efc78734c08336016fd36d04e79ca6f0a8e7f0dc486557b883092203358e76999a92e83\",\n      \"from\": \"0x677B3ccc29f7c2293364fEec7F51907756f0124E\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 1,\n      \"to\": \"0x641602bAD4A323C49629d45338d79A2bb984A3fb\",\n      \"value\": \"0x263651\"\n    },\n    {\n      \"data\": \"0x4a99b4\",\n      \"from\": \"0xeBcdc7CF9233a11AFCD5B8283E89D951d41283cc\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 1,\n      \"to\": \"0x3Bd84e661C47a73eEe4137D185E4c31c194C343f\",\n      \"value\": \"0xc\"\n    },\n    {\n      \"data\": \"0x\",\n      \"from\": \"0x91C6Dd1A685cAE33B044370252727B57f688e5c7\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 1,\n      \"to\": \"0xD74CFe323387aE2fd070CD046173026716D8D649\",\n      \"value\": \"0x0\"\n    },\n    {\n      \"data\": \"0x3e\",\n      \"from\": \"0xA9A42c08023d1a23a61dA0cAEd0106A7C48b7120\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 1,\n      \"to\": \"0xBa0E31A0E75AC9a4cac4c57d6c7EF2a10e87D4e6\",\n      \"value\": \"0x0\"\n    },\n    {\n      \"data\": \"0xcaf367a2c043521580bf2ded9a8e1b0b8ff4c77e9109ad4a78b35e6df5ec8a93af16705a1ff1740b05bf2b2d08eefcbf53b54ec3b6bfe1cb842f0f0e249d6cb6bcfd6fafd83b55ec40b1bdf17f62917ea408fcc4a3800a2e\",\n      \"from\": \"0x3fD261193d23d8a73a4fdfe7735892c6Ebb4f2Ac\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 1,\n      \"to\": \"0x9529cc6891Fbd5aBFABE0AE6c79D30F0CCAe848F\",\n      \"value\": \"0xfb285d\"\n    },\n    {\n      \"data\": \"0xbe89f155f782357bf7038a34b224dd184c0045a929d8edd5fea33ffb3131a832686096521b6bce6d74d53fd9e907c442975a094a7cca03f2c9f4fc6af7724a80e7\",\n      \"from\": \"0x677B3ccc29f7c2293364fEec7F51907756f0124E\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 2,\n      \"to\": \"0x7458F9b8B5ee360A32b0b0Fe648C996C68AE8190\",\n      \"value\": \"0xb6918e\"\n    },\n    {\n      \"data\": \"0x2c9c0082bbe5e68dfc726e41fab672674cb60b19ec0aaacd2efe958cb1c08b8ede492c702a99ef5acd704e55ace7aca4f209c59f9151e04405d4a396fc05e50c97d125878775dee202f269a9e038ceee92aa5ed607a8b0462afe\",\n      \"from\": \"0xeBcdc7CF9233a11AFCD5B8283E89D951d41283cc\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 2,\n      \"to\": \"0x9E607bB0Bae19b8bC75638fd1aB98594b36ba46d\",\n      \"value\": \"0x9ca7e9\"\n    },\n    {\n      \"data\": \"0x5d3a30b3be577899e7e228d7ae0561981cd3e887\",\n      \"from\": \"0x91C6Dd1A685cAE33B044370252727B57f688e5c7\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 2,\n      \"to\": \"0xfD6241df8Ce82b2Fb4126dD0e9FA931806Fa573c\",\n      \"value\": \"0x0\"\n    },\n    {\n      \"data\": \"0x44cf53c635525fc3\",\n      \"from\": \"0xA9A42c08023d1a23a61dA0cAEd0106A7C48b7120\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 2,\n      \"to\": \"0x1d891f21BB2a55cD9EC7a32478f7c74d757c4876\",\n      \"value\": \"0x0\"\n    },\n    {\n      \"authorizationList\": [\n        {\n          \"address\": \"0x000000000000000000000000000000000000000d\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x0\",\n          \"r\": \"0xbfe7211c0c349339a3e3634ad737c2d33e232f89fb39d664d328afd5ea2603d4\",\n          \"s\": \"0x6b1d940a4be6b4b75d4b285ebfc1f63b599d780ea66348d3210522d155cc7716\",\n          \"v\": \"0x0\"\n        },\n        {\n          \"address\": \"0x00000000000000000000000000000000000000f2\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x0\",\n          \"r\": \"0x44aef284b3b8fb0360a3550efdf9e4876503da8a3f0b14f56d27ff1d2f1e6a72\",\n          \"s\": \"0x2ce2b6ff7121d90053f7f56595f335d6e5bcd1e55b075ec10e0bc04e97650ccb\",\n          \"v\": \"0x0\"\n        },\n        {\n          \"address\": \"0x0000000000000000000000000000000000000007\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x0\",\n          \"r\": \"0xeef59efbbb9cc6b8bcca0384ddaf3ae96bc7e761ed0ff13d48ed531251a32a56\",\n          \"s\": \"0x1d270521363ccd1bbb726f908d863acfde6dcff0347885d3e6df7dc786415d39\",\n          \"v\": \"0x0\"\n        },\n        {\n          \"address\": \"0x0000000000000000000000000000000000000007\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x0\",\n          \"r\": \"0xe8c243c5128186444a344b011d78b24cbe52e9bffb3bf4959b986834d93214d3\",\n          \"s\": \"0x3c629a82eebf4be563712ec562627be11e9d50b2cf1e6dab4aa4dde638e29ce8\",\n          \"v\": \"0x1\"\n        }\n      ],\n      \"data\": \"0x3115c7839ee8f609514b277b51b9f9f190d191513422a143d5186d5c4dea9bda8b4f13a9592dfc025773fc03ca013c\",\n      \"from\": \"0xC4AA0D75736f14fb4971bBDe8CE49Fa1E25217bd\",\n      \"gas\": \"0xf42400\",\n      \"maxFeePerGas\": \"0x10\",\n      \"maxPriorityFeePerGas\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0x5CbDd86a2FA8Dc4bDdd8a8f69dBa48572EeC07FB\",\n      \"type\": \"0x4\",\n      \"value\": \"0x0\"\n    },\n    {\n      \"data\": \"0x00\",\n      \"from\": \"0x48Ed5D2f29e6CF27031A62C9e4826d56B4536a36\",\n      \"gas\": \"0x30d40\",\n      \"maxFeePerGas\": \"0x1e\",\n      \"maxPriorityFeePerGas\": \"0x1\",\n      \"nonce\": 0,\n      \"to\": \"0x000000000000000000000000000000000000000d\",\n      \"type\": \"0x2\",\n      \"value\": \"0x3e8\"\n    },\n    {\n      \"authorizationList\": [\n        {\n          \"address\": \"0x0000000000000000000000000000000000000000\",\n          \"chainId\": \"0x1\",\n          \"nonce\": \"0x2\",\n          \"r\": \"0xdafdcae05424d2ae0fa456ad45e0707710e5e4e3c7b1af8f5997f8a464477a5e\",\n          \"s\": \"0x20eb4f7e18471a0060ebcc24066b256591e6f5a6d5b5b9adff14d3c9fe41ae96\",\n          \"v\": \"0x1\"\n        }\n      ],\n      \"data\": \"0x3115c7839ee8f609514b277b51b9f9f190d191513422a143d5186d5c4dea9bda8b4f13a9592dfc025773fc03ca013c\",\n      \"from\": \"0x1028f1F4b946800E1b6D7528C4699Cc3df844fBf\",\n      \"gas\": \"0xf42400\",\n      \"maxFeePerGas\": \"0x10\",\n      \"maxPriorityFeePerGas\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0x5CbDd86a2FA8Dc4bDdd8a8f69dBa48572EeC07FB\",\n      \"type\": \"0x4\",\n      \"value\": \"0x0\"\n    }\n  ],\n  \"version\": \"2.0\"\n}"
  },
  {
    "path": "src/cli/fuzzer_bridge/examples/comprehensive_smallest.json",
    "content": "{\n  \"accounts\": {\n    \"0x0000000000000000000000000000000000000010\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x00000000000000000000000000000000000000f6\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x1d891f21BB2a55cD9EC7a32478f7c74d757c4876\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x6f06fcff69196a393d4ca702feba344df26000527fe442438ab1b839640ec7742d77053df806abed423ae6a498dc093103382749206020526f022f0c5673eddb443409f509edcab2aa6040527f9abe26305ddce240cddb9d26556bd4b9555e14d029eb88a867702b43c75375e46060526f151a683af814b7b843ef0914d5b656966080527fc6f0e3c21eacda1ed058c181dea5c54edecefe3c22d09f1b70fc504ccee0270760a0526f10fe871f92678911745d6a5791dd721460c0527fb0cf887504450cbe272528c86a6fcc368b036f7627f2b503147e788dd92fb2d860e05260806000610100600060e5600b7fad00de6676d949b2879235fbfb19b0f975c79dde8b90f395b4b322156e4b0a76f26000556000516001556020516002556040516003556060516004556f1430217071dcf4a05f9b69af6dedba006000527f47092bf14ec9d7f19ff07c710fd652c2bf72945a93b820b4d80b594801db4cec6020526f169208513a417a1e8e61bec2838a72a36040527f950dc6303e7d9b6735f1883b2d10a7219bd467187bfcbb6da18eafb8f78d3ab76060527fb2d7154982a36a940a4a09c6533e417af13231e08b223f9f07c3e7a537fa0a7c6080526080600060a0600060ff600c7f6be1e0cef74f639ff740aa84eb986d22098505fac3c26e495d8bb5e4388908fff16005556000516006556020516007556040516008556060516009556f02780635f54e105d88e2940d22d4d2f36000527fd8e8a4208f388a09b5dcd814920701343f527374169559101e60fcd4f636b0416020526f0de0e61d06d1a9cd1a6033acecd196516040527fbbf9aa91fe99f07b86314ce0c4773f41664bf03ceff26a5b3bbc11046b7426336060526f0ce031599c822d4cda00bba3b0621fd76080527fe9c08c8aecc9facb8d88e18dab0335adca4950d09292316b3c375540100d49d360a0526f104fbff0ad9fc644bb6bd13b6ace02e460c0527f96d62ee342495614596f56fe5ddc10a5bb1f162797396b9d75f1d840c8a79ad960e0526f07007d1fe6363f7bad8fe120e3c68a44610100527f7c92ee323f405f938e2e02484c62f2facbfc43cb0d28ff3f16178bd0fcaec335610120526f13768ffdcdf366e9ee63cc23475e8595610140527f26a575e5544f22c3e064dac3d495eb6b2b594fe846073026db1695ffed066018610160526f147ce84581777751a3704f7d43b119ae610180527f6aa4376abd93d8112f31876e7b337350b6a17946adc9616877967cee76d974a76101a0526f1198913a5b19ba3457b36d25d593fbf56101c0527f752b3ed53a63bb73c4ddefe4082933e93a0103780b21db8980c117f10637e9c66101e05261010060006102006000600d7f4a1b51e507433a9bd45b51429637710682598c3a5087b26ea136ee017aa52e44fa600a55600051600b55602051600c55604051600d55606051600e55608051600f5560a05160105560c05160115560e0516012556e4f08014da76e7b1aa3302e2241f8736000527f8d10abc569925647915ebb5ab88486679288a9dbbf5f481f182da264ab34a4bd6020526f06d5881b1e939fc02875eae54bd32f2e6040527faaea60b13abe552a5d5350d84df14cbff41bc4bfac9e9e503df34f79993387fc6060526f0216413b0addfbb5ca4ae26c9bf45ebf6080527f86fb951e8d918cd399777392ae695a393f9411394a71295409713785105fdc9460a0526f126cdd8c9ebc88a54fa5539c5902074060c0527f6fc52da24a2337cf2fca7d6e2fee1a27a029a0ab80479d64152789fdc1465f4260e0527faa80d757ada2ee24f6fbe189479805f7061b1186cb063a550bb96d88fa418b11610100526f0c243dfde08ddddfa8949c2ecee26f14610120527f0cf1870266b91b5dad84ae43af0c6c02fa3f81f8245e5074af73afb381e48d2a610140526f124d3efb3d621c83c682e1759fbeff13610160527f87ac0dce1bd0ef742565c79c2d84f58a99ce3c1334dbdf1adbb87d9b317add3a610180526f1549d53c5544278fef820b936a0b9da56101a0527f1f765ca450e5cf7f5e1ea309d3db585d9f1fc47ec6fbceea63e9c31ae58bcfab6101c0526f0ac911e323fddc70e0dd973ec59da7526101e0527f66b33b62e4769dcc3f2173d8b4e6c207a1511c40b9e337f8b04dbf08c7e68df5610200527fa94a87066f4ae7ceca92defa2fb336767cf1ee575035d3a3a462b8adddd262056102205261010060006102406000600e7f93d23edbd187f33f27c1739cac18e93f6cd1bfc5c81828a1b3cb4814a00285bafa60135560005160145560205160155560405160165560605160175560805160185560a05160195560c051601a5560e051601b556f0745441fdbad4dc5a236412bf6ea07b26000527f207d89aea5a9a925d32b8007ea0c44c6e88a06fe3dc88ef32801cb9873b65b2e6020526f13402186bb791b3ee693abcbe0dee89c6040527f36e4ef4ad8c6abea65d3fd94f43fee9d40d65edf597dd2de64a8fd647f1e0ede6060526f043d2a388ccf087d3ca888a2d72d51466080527f0e1c0926a3e74772c807ed86d32169540c7de35b90db097f020ec825f81a5e9f60a0526f0d3bd03f6ec3dceed892b4cbed1a047160c0527fb8ea4b0f0e3c14bc6540f327571a1dc7245387434c6260ea8545c3a3f43f52ae60e0526f053e1e81dc8a4f0d68d0a0c23e2603c8610100527f65a9b0a2444d15e77339587e109f20caa38c7352304baadb57925cb4713e760e610120526f02abce8b992a833ecafddd3218eae49c610140527ff73bb4507c7fd63d1eaa6c29887203b04d95ea0b44c7d13c6b4ecb8533234bb0610160526e3aa8288491bd367dea58c58c500c9d610180527fc213d583c73602aa92808cb213aed86247865a978709cc5371970b15b9ad527c6101a0526f0fcd23237589ff2f23073c8417f31be16101c0527fa1634d060e1bcf6efe039ef5a11a41d90bbb05c22a595ce63103fe08960464d66101e0526f0711b1af2d891054dd6f374d2465e7e1610200527fa2c46d4e6b6235f105cd0ebfbd0293057ed0c38a4fe43d86d90eac8adcbd6b58610220526f16253bf3d1b7aba9a88abff5fd797e42610240527facd45ad966cae5da033fba84d2b954b265f9aabfcdde8ff90242beadccf09a2c610260526f19b6a239f990178d2a5f5ec618d1bb40610280527f53280e61e0bd7199af0108355ea94099ab1b61b3616d70d87c5e8c5c720ddc886102a0526f0c7f8411a266d2c99fd03f900fa0a8906102c0527f70f9b3c407c52fe2dd8965b56db2381a7d10ce2e93f52cc51d420fbd11ee13e76102e0526f10fc7f5161a560db1d3167f858f43bff610300527ff474f46440009367463cb9b447e03db4fa8e1c79a414e79e6270e6637f116d80610320526f07bc163101bc29f18e42064275adec4c610340527f5e7bfd20d8eb12d3e5d1cbfbfc15bce7a24f1eff82f8206979980ac56b0fbad0610360526f024aa2b2f08f0a91260805272dc51051610380527fc6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb86103a0526f13e02b6052719f607dacd3a088274f656103c0527f596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e6103e0526f0ce5d527727d6e118cc9cdc6da2e351a610400527fadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801610420526f0606c4a02ea734cc32acd2b02bc28b99610440527fcb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be61046052602060006104806000600f7f25e0a9449d9aa98ab896355983bd0dca54badbfe493862625ea8cabf7caf79d2f4601c55600051601d556f0dee3561b6f871f4550f22e15c3768796000527f2921b8637f9982d39db18d2d3999a8f6067fe7e48f56f3ea4e21def7679afd226020526080600060406000603060107f9d94c372e3e4486685ee8485a7486537efef6ef03d31f110b4d9756aa40fe142f2601e55600051601f556020516020556040516021556060516022556f0916c557668c9c2db6a6b6869d92d80a6000527f53efcc2a81d2672df3b335817985c423e104ef4e228c5402823930a8ffab490b6020526f12793c650781ed6cf7c127628edf18eb6040527f50ae0145e33bdddd7150b6834b309712248a3e91d2b629ed7955af38864c3a2560605261010060006080600060117f66602b2002036afe8d1f22e7a4028da230c39328019419cc67bef352f4e833adfa60235560005160245560205160255560405160265560605160275560805160285560a05160295560c051602a5560e051602b55\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x22986B2F9A2f5E7119F940898c35e7128A4Ce7E3\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x609d606660e560af60d3602560b3690b483c7050464a301c02315b3da461503a6e569c5f7d756717647d711c73303974760817747057567d035548030342816c7e35587f9c5e59f15a620a8d684805768f58909e6b107f716c167e454407688974805245698d12415e420b7c563d95876a161b74479355685451706c50165a748917324117306c156d7314048c6350731837f3fa44167f597873f46d527e7a403d01068407019f13019b191c34891004701604128c590b907309656319817e7d343d47860318677a5f68a47457151a543781faa170751d395779fef06e37193e5d11045b3e4a63618085845b547a1d1a365d615a613210f5835c5f7a915258630b345d806a9c821bf1339651755d201384f04136348604395a575f786141683d7755137b5b6612645d63883dfe6658fe14937f5d147a656f706554021e6ef38b855a44484a947a99417333053d67753b6e67a03494193f19483362503f4443783920075a5381010404a2611e349f39321335763f9a6e983670f0785c9776517558805f419914086d5c09545b80f43b439535803d515c95376d058b86f41a334530746135025f3942f187869e6a035250006f07117a8c1d399895165849fd569337a25263f05c51a06b0430771e8317881a8f5d9c0631603537588066774537017e98646b9781a07c5bfe695180f15c469e511a4451486e107d030a6a3d60593c633736f16d3867666577471d430b32063864648186165f16f533516c0407077f61711c389d9c681ea480574045367967841b41075a76636e1a484908311112176a8a3b841a66496168755c027b6888050af58933f015895e1375340143567f37743b5085904a6277474a19337b33816a3b7441411392435783497f423d10816f797253729c6a085a05803051f5324109855e108c5a3a736537618a7a7f7b755c3b3d1e517cf37105708b806b143e686e7c6755416a9f778044542055406605766b018e731e6f5d603116303b466c78753e40127a846a731783a16c3e177b545b096d0359450b9a171e31525bf0447502776c9e5566108803973a805b5c41436570840a587cf1867e3d7f1e3b31713f775c917858951b4a5b6c669e75737665736460867c6a421a16060341f05b6c5254075d793e090a05891e493068388b94677605016d5d9f5e0b3a080a891c6d187cfd1483988f953779f5569169f47a3c528156189d41138f605238037d6c796a65789f5133f36e1a828b615975929979626da0757030911581858d11143a3b6a4066095257a4453c0795fe6d6d5a6662125c601091553c4613390b0614656f9a6bf20b65435705041773fe446761876e5a5219431d333e5544f08f19453e9808455735a17252019377073e613f52587a5640387a9541127b0219368c539061630a684a77f4543035611e9c17863b54305a\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x23957dB27fD43F125fee8eB0a2Be85F1FC39Fa74\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x2d16ef33a23df66bb3a4c85e596df85ef7c524808ae7eeea57475353676882fb\",\n      \"storage\": {}\n    },\n    \"0x3Bd84e661C47a73eEe4137D185E4c31c194C343f\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x600054507f1bc37322bd8795aa5c0d765bb9d786a2c2ef34a695ec27232ea0ed8509cba6986000527fa18a0ad7e91a1cba90a04235dfbda77cf0549c58790669e09f88b509d33815096020527f63b6f74c4a5c6cb40ae6de0408689fcbc400291b3da160ed5a4e975415305f8e6040527f8108b2ecdb883a794c1152e92632e0a64f6a8a5d55bd29b90f7d51b3a4953f976060527f581e32c2704f32e72cd7e6ad7cb1071b92f237895e588adc7ab993aedfe2afd36080527f5aa1c972ecb9eb74528c16d451c9aa9ca317df0a4450636b4034468d39d36bb960a0527fde65e94ef04338d6ce09ac96d0ff2ec58982a6d1bf305ae6c855276fcceaf0b460c0527f8d43c21ac3785bb7cca350d44fdbe19966227e30c6b16bae02fc147c57ef402460e0527f8437286b7c84a04fdabf6afe1e0875d72be8d4fde1a3d4051478b1b20b3206ac610100527fb1a464581de2466781a0c72f1dcc93b941760f217e5a88aff6763dd525ea59f3610120527f8309b7732f9ccb14f135e34091a095196abc4dd8c3dc7bf32aa78b67afce944b610140527f52ed661a19b5c516db7c24a0782956e725fa01b61f9c8fdf9d92d0bb258d98b0610160527f92aa99ffdb4a178eb0f265d347b9358d0c2fb2fc72e0ffe189275942c409343b610180527f887bf88b7bf9d2f1da02e89e11790f03fc3a6f45cef57aedfba36a79273322906101a0527fada6af26406987cf79280e837f83cb9cdd89d26806ae700e62fd603e30283f366101c0527f2ddfb3f5e3bafa1910e8e57c7c3d45fef5024c8d298309640fdd6d771eedb7586101e052604060006102006000606a60077fd2a2dc91b7adfff42174a98e0770f27dbde9545997a551e20b2824a74bcf7708f1600055600051600155602051600255\",\n      \"nonce\": \"0x0\",\n      \"storage\": {\n        \"0x0000000000000000000000000000000000000000000000000000000000000003\": \"0x000000000000000000000000000000000000000000000000000000000000000b\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000004\": \"0x000000000000000000000000000000000000000000000000000000000000000a\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000005\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000006\": \"0x000000000000000000000000000000000000000000000000000000000000000a\"\n      }\n    },\n    \"0x538A8474EeaB43d5a960164c554A20400151D479\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7f063b9d3462f2d80599492ec1750090cfb49edd47f3bef1a1d5957a77033f9d3d6000527ff849a2ffa8a3461a482f3a22613ed0bf62a0ffb9bd07ae10c23eccb926f837cd6020527e684149fb4557de661e5a06f306db0ef1a74ea674d299798a296735cbeeaeb96040527f585531de2fe977bf410e4b688e209d146281c4e3462321851ed413b2a0686f306060527f5f1b5a92ce191927ef8a99675520ad450f127080f9b344ab13bb64eb1f92c83e6080527fb42fb286f11a883b5b335e5ef2d5477569aa8a4d8430496d2d5109c40d6436ce60a0527f075e55f44883857cac5e60f122e4d3c635b99507a3a06941c0cab3564984bd8660c0527f4d35d25f52d6ca0bc2f7ab9b9b39b14e646e9e45e333bab86231e6d3dd923c8260e0527f337fc2b6a185f66f133b7f02d43de1c294e96db2bd41b446d367c9cd93f888b0610100527f65aa838654bb90480d83fa2e3077ff6054cdc5f35e5758c74769f5cd642cd643610120527fe852da9bae2aba92623982d69a62052d0de78a796ee1f0079fdf3eef27645b87610140527f583309beb4dece1ca64314d7119a948bd0bd9250a16aa2a367a080aa5c96ec3d610160527f742878009f403251a96de70c5813de6710ee4036b04b589ea5354778cd843650610180527f1cb588dae2ed495d5025e814a1cfe05f629abf0a7e89ffd6f70158219a42c04f6101a0527f1aaea7750e284228ac6dd044545a90ab4f063bb266721afb0503d980a4762ee16101c052602060006101e0600060886101007f47d7e060bd3dd5829e781863df7b5ac9b170d37543f1740059c8e0d89eaa5a4ef2600055600051600155\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x641602bAD4A323C49629d45338d79A2bb984A3fb\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x60005160016060f3\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x7458F9b8B5ee360A32b0b0Fe648C996C68AE8190\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x7f0ba0370907b7d6bcf961e381f77377af06df0572990c889c82b7c74f1e90f8de6000527f9826a8d0a9e3d00cb36c029caffaac161013bada23a90db9e8c9094de47cfa3c6020527f3c377edc4581270e7bfe23963fde77a95dce4e1958f673e76ecd1002488df8cc6040527f92ab51e33a39f0d13d88d8289ab18894b3ac7c2ea89a5bff9def6250dea461106060527f93c199a032e468ec45dd11b7827ea994289c6ac47c45f3dfb3f54c987255c3bf6080527f4d562b0308a2434ff7868a0702561923970abad32ac03f5a58ca902b7ded758160a0527fc584e1ac59d9d6416adc32d759f72e78ce7cdfad0128b477f96924147f66cb4b60c0527ffbb8d840baf881780dad88f8243aa46ca65214725bb4da5dd82242513fca909560e0527fb7f9b70fc4f2a0809a524d3fe329bd25015b1b5bff94225815eff18acc2ab46e610100527f5a3ce6d41a8eaeebab2d0fb1c78741ec5749b1fb23fdbfd2ee37d9e3a115527c610120527f28171e9dfa097d3e025060a1a7dce9eeeccb0562450a5f0fbbc8637302ca40e9610140527fb35e30b4c8f5070eb1120979c1a82336118624c8138e2ca026a0dd0ecd531b32610160527feaf23bed9d70590d96e25b2f9c1dcccb04e0cb94221e6728bb8c1f250ec744af610180527f1c2e979f28cdc255c646859306139ea4111fce459c056b760439ce2cf68b18a26101a0527f463df923aadb23509b5a813bccee78cc68873d42ed8712225341f89f4972b3ae6101c052604060006101e06000600e7f51c346e9c8ee8b23f64efc42ce303b46b7a555d3ec49a8f2922c3bc20740a256f4600055600051600155602051600255\",\n      \"nonce\": \"0x0\",\n      \"storage\": {\n        \"0x0000000000000000000000000000000000000000000000000000000000000003\": \"0x0000000000000000000000000000000000000000000000000000000000000012\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000004\": \"0x000000000000000000000000000000000000000000000000000000000000000c\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000005\": \"0x0000000000000000000000000000000000000000000000000000000000000012\"\n      }\n    },\n    \"0x766C0844EBC3c4ef4ddb86260a4D3516cCa03A10\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7d02886c65c9baacdc167c99d8d4b203ca59c9c5eaac2647906bb8c5619ba96000527f7d653106964d182963c381adc6ef7caa35be72a76cf8837e854e28ebc20b67f06020527f5844d18a6ce56f0d2e63c6cdcc1f27f51e936bf6190ca2ad94718d29e5f0db1d6040527f44d2715a6b6e3a3df172f36ce09cdca3a48a1b5e5ff40de302f3895fd32a734a6060527fbbec99a8077daa3775d4e1e47a920a5a9035f1bde0378b33b70becb47af43c8a6080527f956302c42f2686070942a30c4a27d37d7fab7a1dc94194d2b8fe80ac7fc0b70d60a052606a60c05360c860c153600060c253601960c35360dd60c45360b060c553602760c653600060c753601b60c853604a60c953605360ca5360f660cb53602460cc5360cc60cd53609060ce5360f760cf53604860d053602960d15360f160d253604f60d353600060d4536040600060d5600060097f2c798e304e82a8acba8a9b9936ffa652a6ef6a118272cd1f71c32c61d15ce085fa600055600051600155602051600255\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x8b632B705a6Ab4ee30e08eD21A0AEE1C3b6583B8\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x45d548a69d16dbb51608188756e9b4e2125431bfc7c8900afd1cd15a45df5689\",\n      \"storage\": {}\n    },\n    \"0x91D1D8f382B0EE7F1c8E2a19934487D80A469695\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x3af15a0aa381091abf31af1f4363ccda85c9e17ea76d6743a55cb18ef1aca326\",\n      \"storage\": {}\n    },\n    \"0x9529cc6891Fbd5aBFABE0AE6c79D30F0CCAe848F\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x60017f77676767676760000000000000001002e000000000000040000000e0000000009007197e050beb1c60141a0000dc2b0b0b0b0b0b410a0a0df4f40b090b2b0bc60a0a007e1f00000000000000000000000000000020000000010000000000000000000004900763800000007e4b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b090b2b0bc60a0a10001b90186fdac7fff9ffd9e13226262626262626007176767676767676767600000076767676767602077f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f7effffff8000000000000000000000000000000000000000d900000000000001901b177ee8e8e8e2000100000009ea02000000000000ff3ffffff80000001000220000777effffff800000007effffff800000008000ff0000010000901d106b010000000000000000000000712000110000000d0a300e750a000000090a0a901c076f800000000000000100000000000000007e40000000fd000000db0000000000000000000040000000fd000000db0000d310116101117f62d8fffffffffffffffffffffffffffffc18000000000000000000ca0000000110901c760fffc000000000000767676240000000000002b05760477e1f0000000000000000000000000000002000000001000000000000000000000b901867800000000000000060051d90066a10000000000000000000007ffffff716b61616160b0b0b2b0b0b0becf4bef50a0df4f48b090b2b0bc60a0a0004901d7e4b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b090b2b0bc60a0a10007e40000000fd000000db0000000000000000000040000000fd000000db000001901a6000557f7effffff8000000000000000000000000000000000000000d9000000000000016b100000000000000000000000186001556005600103600255712000110000000d0a300e750a000000090a0a6000901214197f12cbafcee8f60f9f3fa308c90fde8d298772ffea667aa6bc109d5c661e7929a56b10000000000000000000000012600355637fffffff6801fffffffffffffffe9017187f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7f40000000fd000000db0000000000000000000000000000000000000000000001111476013590cab83b779e708b533b0eef3561483ddeefc841f5678000000000000000901390117f80000000000000000000000000000000000000000000000000000000000000027f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ff6376770abd3a36b20394c5664afef1194c801c3f05e42566f085ed24d002bb0081590126004557f40000000fd000000db0000000000000000000000000000000000000000000001157f7effffff8000000000000000000000000000000000000000d9000000000000017d0c76f4afb041407a8ea478d65024f5c3dfe1db1a1bb10c5ea8bec314ccf9901c900267800000000000000076013590cab83b779e708b533b0eef3561483ddeefc841f590057e4b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b090b2b0bc60a0a10007e1f00000000000000000000000000000020000000010000000000000000000067b368d219438b7f3f0902901367fffffffffffffffe6b010000000000000000000000046005557fffffffffffffffff7effffff800000007effffff800000008000ff0000010000682323232323232323239013901460006000f3\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x9E607bB0Bae19b8bC75638fd1aB98594b36ba46d\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7f1ad252f41f24a4e47e3b30cd077e62ec5e97a21593b08ecf63ad797c845aa7b86000527f6fbc7de1246b5c82e32038eef1c50b793f80ff9ffd5d94ba0201758921e895756020527fe96280d9bf66a984d8429554eeee5d66f13b77754eea60b5914cb1c70d88da1c6040527f8aaf6944e59f427beb0d6335a9403e372a2a8db59ee99e352b7db426f88ba8c46060527ffdd5139e421a516cc016174ae8fe299812e0afcd0dea30757f1f68d1d5b3b7396080526020600060a060006000610100611ce3f1600055600051600155600060005260006020526000604052600060605260006080526020600060a06000610100611b56f46002556000516003557f03c5e492839c5c2a6b19faa426486d273e5df7df0532a9f9d383c91cd9bbf7936000527f20e0282db9e31ae6b468087fcf52aa711f00a9dbf73b175409070c9ae273822c6020527fe447e297c6692bf0e8e2cb8d719eeb6f9f5ea25df880fc9905033106d25d318e6040527f09815f1b92071b6bb2fd09dbca9fa959781493ac972d9589fab850a11a088ae26060527f4ad5492f2514adec949add6efa491707a9e123aad36c8765c6ffa0e2cb17d27c6080526020600060a060006001610100611aabf26004556000516005557fef02d493f62b3af6a7bfacaf888c58ae1b41d3e62bd483459f1682842ade1c726000527f61ed34369e8bae5efec15bc2180448deb0300cf1b070a5a26a46011a920110216020527f61ed34369e8bae5efec15bc2180448deb0300cf1b070a5a26a46011a920110216040527fffffffff000000010000000000000000000000010000000000000000000000546060527fffffffff000000010000000000000000000000010000000000000000000000546080526020600060a060006001610100611ac0f2600655600051600755600060005260006020526000604052600060605260006080526020600060a060006001610100611ce5f26008556000516009557f0d5d8c3c63c36344c65b288698895195d95bcdc486db6b84bdb44000077b0c776000527f55555555555555555555555555555555555555555555555555555555555555556020527f55555555555555555555555555555555555555555555555555555555555555556040527f73a36436fa98c0fc51a987b95addff4fc9c75bb81bebe4de704dff46e505fb576060527f38e1d909e72e3aa17fbaae010c05f983cf22bc32e8185e753dfaea1ad1ab90ef6080526020600060a06000600161010061197af2600a55600051600b557f0f0ea7c172f5a60807b88890ceef3613666c7bc8b46ab8c6ba7f9d44c7c8d9c56000527f01fffffffe00000002000000000000000000000001ffffffffffffffffffffff6020527f01fffffffe00000002000000000000000000000001ffffffffffffffffffffff6040527f33564af2e42df9370e250b21edd1008473a5b1949296e746d3748b2bc41003c06060527f5b9c6cf0c4700189db47f7b04d8797e0e081455ddc17dc4a138bfe67932356186080526020600060a0600061010061197ffa600c55600051600d557f8d4159e7e3803d936acee7d4612c733ac930b2fb51f6174ac35de8f39ee534036000527f9f6469e303a270c1cf5086bdb94ffa1302bdcba38e064aa3ec68172b6cdd81a66020527fe5370d64927b00b5108dd7dca14a43ba347ef449ddb21817a3c11a8bed8088436040527f45522722aa893c41562916d31cc615d400da709ef10584642286833ce28ef7cb6060527ff2ffbe167212bf8d3259f185ace7398c2ac93afef5afb18d6b54adfcbc6f42116080526020600060a06000610100611c0efa600e55600051600f557fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6000527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6020527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6040527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6060527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6080526020600060a060006001610100611c52f26010556000516011557f1171c00fee29e1938e2a6b6f34e9197442dd80d7199a6c10d35237168f36c3506000527fc2402ac2e231e03da69f462f2e5e6be072787a8991672df9ff14679bdd0700ec6020527f63a862c6560c083a6d23336744366d42c66ca9a4b4190cc5d71eb3b666ebdbad6040527fd05f4d1319607b3d6b7a3312a68dd20f137cde4cae15d980c17633597984ef086060527fc325a6b95842461aa3b5c3498d64193ed54e02f57f0be0537242a66a68b5ab646080526020600060a060006000610100611a4bf16012556000516013557fbda6b6b71c43a35a2143ed305ef881ff6517885a2b2bdb3f552af2367f692a846000527f76db0519ff4b38d2dc0d66547b4108b9048cf323d4dd0eb0abcd6fb83e21b56f6020527f204ca45c158b1eccdb890e200e477755770d4b8f1e3b8a36cb8a7357befb64f36040527f457db2bda9a5ca9b5593e485b1f4bfd82dd3a951c4b63b517151fe491589afa16060527f7b14407d90693d5b3e7b7b7cb0b64d372190d7a66ae8b0b513355c330717923f6080526020600060a06000610100611a12f46014556000516015557fdc7a6a7dbd8a42cf97100cbfb5343286879ea772d7f0e486bff85bac63a41cb56000526fffffffff80000000600000002fffffff6020526fffffffff80000000600000002fffffff6040526fffffffff8000000060000000300000006060526fffffffff8000000060000000300000006080526020600060a060006000610100611cdef26016556000516017557f9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a086000527fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325506020527fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325506040527fcd3fc77ee4012b5c4a1b53c5505eb714ee8ed5cd87dd8b73eb6f0d49dcaf4e7c6060527fbc3dc47c6bd4ef0ef3884db62acd5869593b03b899a242f1c6d7cb9735da242d6080526020600060a060006101006119b2f46018556000516019557ffc4aa970a0e7b17c095b40b850ceded317761a1a16147e214ccaa96d9ee14f266000527fcb00f4ebd745a67a7c4a55a4bef1454967bd2de0d81c83c834c6731e8e317b126020527f972603641d77617c5b93acf08c51db4c7b4422d0819ff38df9cc3d0c21e949636040527f882de2caeb49647cab0bcc63f06360c7f8b0ebb146e7cf9d6eaf103f65c825c56060527ff286e0e711e69166f764ddc113afa12d7161be84a40f80c0e6089b96c606f3526080526020600060a06000610100611c87f4601a55600051601b557f6d6682250096f33214278016bb1b507795293e4e0dd283f3ab83b795c4a9bd396000527fe100ec27eb368f3463b3a786e77984d1acf9840e4e092fac95b0a34a588a55de6020527f770fe499ff9ece0cd34a38b1b0689749b64e3f5cac291131ac7da89609b182b76040527f4bb791d72d7eb44f291d53f70d52231fd15f5bb4870e21b0c4f6b67c314ea2716060527f0960e09df623eaf10d78118c9a145cf266d44c838c02fbf28b223593b9c7baba6080526020600060a060006101006119c1fa601c55600051601d55600060005260006020526000604052600060605260006080526020600060a0600061010061196ffa601e55600051601f557fdc7a6a7dbd8a42cf97100cbfb5343286879ea772d7f0e486bff85bac63a41cb56000527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6020527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6060527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6080526020600060a06000610100611bd2f46020556000516021557f0f0ea7c172f5a60807b88890ceef3613666c7bc8b46ab8c6ba7f9d44c7c8d9c56000527fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325506020527fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325506040527fd2afb235f5597e2aee0408594b854a67f0e4975710114a3f5496ef4d96f9b5006060527f75c614dd29c2c3803c76e5a6de4c63139668f8e380a4ffb98fe2e1a6654a9e786080526020600060a06000610100611ce0f46022556000516023557fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6000527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6020527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6040527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6060527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6080526020600060a06000610100611b91fa6024556000516025557f0f0ea7c172f5a60807b88890ceef3613666c7bc8b46ab8c6ba7f9d44c7c8d9c56000527fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325506020527fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325506040527f89c6d5fdbbaa7c407fa80fb9cdac80a029fcb4f8ee2304f1312ecccdbb1e41ea6060527fca4ecc2889086480a754452c08cec711cd805c63200655f021bc418da89eb71b6080526020600060a06000610100611b48fa6026556000516027557f8e9dc16c462acf426681e70f761fea49dfef131264f9b0669577fcfdd70f2ba76000527f751dfbc62bd426e8511df1a12bbac73d5de7dedea04fd75cac1a59e948b323ae6020527f5414ab14f228830c07a2c7ce94922fa4c78a43bd7a45d74f15fee7d8836211536040527f175d1de0e00e6f26f7b487d3ffaf8fff9fc6df7839dae9e6e70c708fb692bbf76060527f86c7248ef0667b8977a8bd67594ae4dcd371541d2091567f7d84a7d4bb99b9266080526020600060a06000600061010061197af16028556000516029557fef02d493f62b3af6a7bfacaf888c58ae1b41d3e62bd483459f1682842ade1c726000527f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6020527f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040527f0f4ba6ac4a0370f9c52d177f52e5fed8f8e0732b342b804596904879dc2220946060527f58ecd351bc27ca231233fb4412e1cf7023886e2b97e1e983459f3ff6da79479e6080526020600060a06000610100611b4bf4602a55600051602b557fbda369cd0602201df26b907dcb52b6a024645f509dd784cc175defdf009ee2936000527f9e5f40b672050788563557bb58931bdd7144f959a52ee1b58d36934825c50e5f6020527ffc4dbd3dee137e5e000cee5fa85efaa40a924b04465d0cdd0c289b472df6502d6040527feb63f70b39bb575552c38831324f4b8694b9b2d3340e39eb3136e12b94d251e16060527f4d3d300f9b1904f1482fcce852285fd861108b67d5eca18993a2c009e08e98fa6080526020600060a060006001610100611ba9f2602c55600051602d557f9094a45689e1f3cfd0bc968b521cd96d091f0d224e0a5fbae7bdab98c16c65276000527f932998a71fbe19159a57f33ab2d599721cb95deab14045707752698d700631156020527f6aabdd3f95e53a8066b3ece600ca962e57c12da74850196abc0ef9eeda6d11e26040527f1a6f7d6c7fb2ffb638b0d851de935c20cd472fef92327ff6205c903b426592186060527f0fb87b1c13bb67755816f4b4b02a7a39137878dc92b9ee676df9e13da2e853fd6080526020600060a06000610100611c84f4602e55600051602f557fef02d493f62b3af6a7bfacaf888c58ae1b41d3e62bd483459f1682842ade1c726000527f0537ccb278355352e685946c9163e32ac76c72dce7ea05da8e4078dc6589393d6020527f0537ccb278355352e685946c9163e32ac76c72dce7ea05da8e4078dc6589393d6040527f01fffffffe0000000200000000000000000000000200000000000000000000006060527f01fffffffe0000000200000000000000000000000200000000000000000000006080526020600060a060006000610100611a32f2603055600051603155\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xAC364Fe8a53B3B06E4ffc43a61e6b6aE111F8B60\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x1a99c1ffc59d50b72111e84f5d61d63204cd7d7e8b6ce298d4a90852322615e2\",\n      \"storage\": {}\n    },\n    \"0xB02727BF3c9593eb8eDF26697507d3d02ADf188d\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0xabe2b602ab377c7797019f012a0e5eac45892762493a745125435d1f1969fc8d\",\n      \"storage\": {}\n    },\n    \"0xB9f155f6BD269F51899d0fd3Fc7457195caAC6d4\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0xd8202e39fbc64c17d1fdd7dfde35c6ac6a6048407cca837f85cf3a92a054b6ee\",\n      \"storage\": {}\n    },\n    \"0xBa0E31A0E75AC9a4cac4c57d6c7EF2a10e87D4e6\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7f1e3ec63b030c7721b195943c9e930fd54a2243b19a6b8f02ccb4d36de4f51cfa6000527f0846ca5cee09fdaa635a885d1bfbdb0fbb95c8ea3b5cc13a480c18459f58ea466020527f07ed8d82547c81a477a07ce6e3c2ab2f2fe9e4722f5605a1dd11b1d9decc37586040527f0c171f4c23860fcf50b25e53dac759e220cf16285be0f41d823131f2d0cc59f9606052604060006080600060067f1deffa299c37fcd9de705bd75c6ae69fd020d9a1b71ffca3a342363f85644ef7f4600055600051600155602051600255\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xD57b4cd1835F4e135762235a065aA1F4EEE18fB2\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0xbe7e199e4f874aec32866370704d58651fd0b7254c5df2d0cd5e3482475a47c0\",\n      \"storage\": {}\n    },\n    \"0xD74CFe323387aE2fd070CD046173026716D8D649\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7f011d81e0f48f2e0a4ec52fbd74772f1d3ffd13e39941dc2be3734bc8120495646000527f09328d03a44d267cbd550663d7ef3ebd8e8eba55e9e08165066890393d6b7aa86020527f13a01bed25f2ebc06b2cbdc4ccbebaf1f8baf4eeb7dc09a92ff5a4bbe25b29a76040527f90cb218380878d54b59a327fba1dc57c9554fa98a51a67c00acd773b2a7aa3aa6060527fce7c256d67b551be7e15626d7c2b8af5b40a61ecafbdce9a1ac030e5ce7c4d0f6080527fef6e10a89e0b4a03ac19f1f3dfaed522841d37e427e7478d598bb60a7ac53f0a60a0526040600060c060006000600a7fb72daca576fbf03d76c0b31da23b0686ca502ef473f7257e68b9612642f56eb1f1600055600051600155602051600255\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xDa78807c1C4567c23EB713E9fbB3b1508C1284ce\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x60006000526000602052600060405260006060526020600060806000600161cd15f46000556000516001557f43d1c02f84f79ae1492e9d2b89ab0fc9c103b392014bc60e1f173dc2a0d1fcd16000527fd414fa0aa72304bb922aa543cad14c25d2e4628cc5dd8d4cf81654e930c1551d6020527f6a3e96376126e8d3213e473f976810ff99a400fb7dced848459d5819a2ee6c3d6040527f1b3d6f19413e4bdef71bf5e03f0f25f47e6a7cf4fed7c2e89c4e5c01b486530160605260206000608060006000600162013eabf16002556000516003557f9906fc552d3ec01e0b96f107dd7dbcc884d10916865d2b483dbc35bb38fe0e996000527fd0b61eabc3c8fdfb793f5637eda97b84fad76f65dfdb26fdecefef2b65c5241b60205260006040527f1bc98b07747845577aea1c943af100df8b2d6917ecb9a1900d366713e6dc21fb6060526020600060806000600161ce70f46004556000516005557f180bf3f60fbc13743779da4dbee67b9fb0a63a819247264d1e961c12072f883a6000527fbb7b0b8c1ba91b810339f399b0740d77465bedeb824ab54f3fc47c579960ba1c6020527f64bf56ba321a655d7303c3cd42f07d3690bb7f70fe3fe04da89e4a617314dbe16040527fffff5f62bbe5ce1a329e700125d900cc88904616ec42ed8c92402ac49a7e97ae6060526020600060806000600161b052f46006556000516007557f8e19a52298f25ab5e498d779c824d5e5f9a82349543ae1775f3f19cd9e7dddaa6000527fb1336383b66a81ccf29284e94cd334f2d2af7c15295f540d2b3179178c05bde86020527f13444f6f7c48837047f68dfde90b784979d5c6a48e811f99552df2cc59f5d29c6040527f704cec5b3329e7229764e23af1de861f1a21e9c7a7aa1f4d79061a05d36a0c4160605260206000608060006001619dd4f46008556000516009557f5ea7f56c36e9e4c0522b1f5a2431991a21e4bbb6b577e907304a3d2391fef00c6000527f6ca40332b424d7bb466b25be0125685eecccad4fc76a32f36177e52a94f7741b6020527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040527f12e8c58a0d25d7d3b8e54a1d2351692154176fb53aa675696145892159127671606052602060006080600060016132f8f4600a55600051600b556000600052601b6020526001604052600160605260206000608060006000600162013010f1600c55600051600d55600060005260006020526000604052600060605260206000608060006001600161c800f1600e55600051600f557f5eed20e4b3ced00fddb6ae28295dd9f327c822b92d48c8317ab258f7354890ea6000527fba5b5f2f20638cc0ed85c2bf7d5dbef69c7ad41fc63fa2dd95d055133d59631d6020527ff1aa8fe91f95559c861bb9f62234f1f730eee73ad5e5b9414eaec78e4b0911406040527fc33d84f13d192b77c8a6c072207b9a3e212100df63f56cdbbb28e3b8548c870660605260206000608060006000600161b0e2f26010556000516011557f0370ec4cd113a16faa25fb1be5ad2ebb4953a67250f780e0412495c039f004e46000527f5963b02c2c91e0247518a1941341b22e70a27e252ea45dccc4b8c0eb407b581b60205260006040527f33938ddbb7182f02f24dfd6745b0c329cd20da3212b2e3bdac7921a49bc55481606052602060006080600060016170edfa6012556000516013557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601b6020527f85c283986bc3d889d40819dc1d1b54cd73407be4818d72e52a104b738fdb91fc6040527f7fa53c21bc99e7af078dc6f035377ea7bbdc87559f5940189979693b16822676606052602060006080600060006001611736f16014556000516015557fc56302c5e8354a195485e3071c0fd415eae836ea0b31a43b7a92f20446d8f5b46000527fe4aaabc67a48efd62a65b3bfaa602d36ae5be5bfd89975b00f6e543c81a8a92d6020527fa0fdc4680e1a90dabd5dedde26d1abc0f0682ae7d009b7ff897d5e4022ff6f866040527fcdcc7fb3739c6c85bef9d8ccc82a4d121a3cee7ac43ae9e760f3fa9e8b9583fb606052602060006080600060006001613b6cf16016556000516017557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601b6020527f4ec33bf7c871488fdce24f7ecf0a8fc010b739ec785fcd3638dca6a377219c5d6040527f14da99b4e79b4645e98051cc3146991dc08a4ae3eaac621a1e40208cf6df710860605260206000608060006000600161c5e4f26018556000516019557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601b6020527fab21f62421bb4acf9d252d6da285819ce6bb336f395872f89ebf744435f0c7f56040527f4aa5fa48a4f383446987fbdc957f643e384894228b080d54c1a7cb5c045749856060526020600060806000600161a3dcf4601a55600051601b557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601c6020527f912066e90ec6d7677e6fd8649cbdec3d4055d45dc3dd902745d835200f2a5f826040527f321aeb012e43ef288403416873ce3ded971cdf34df79e96f736b8cf03cbe83b860605260206000608060006000600161ae9af1601c55600051601d557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601b6020527f0d25e1b503d26804d6f732c050c961dbdc7ecc983905a76d583f470f579286186040527f5b73f2b518477c7afe6c5a119b42ead82b47f6e9f3b1de85fde3ad0a1486f8fd6060526020600060806000600161702efa601e55600051601f557f191fee423fb7f9a733c422df7c994b5477d27864589dba7a7fc28e48b8c2b2366000527f997fef11a8a4d589d2bd5a16a377af25e5cbbe813d65809db1e7bff336dcc61b60205260006040527f0b9e657c2b3bc2373a59b95a2bf3cf2306a2cab40b1845a7b33ba8f243ce7c8760605260206000608060006001620146e8fa6020556000516021557f73fc5af59dcce95b2824cf40e1c7e9f977da9f39d54bd4a6de5e69f05eb1aa9d6000527f2c4bf0413d4ce2f0658575771d3285e9f6e3282d6555d8bc86cccdcf86fb681c6020527f07dfbd7899eee43c9c7b0845b36528cc21febe6545aed949b08de39679cae3126040527fffff1f7a9c047f143904f54fc68101d4e35b6c61d1d29b47df3b23c2c51e3eba60605260206000608060006001600161dad5f16022556000516023557f6dce7564da0f627bb73184c062700c46b5fa40e038a26c6a09eee7992e7e77046000527ffae46ed9f1946468fc654e3169a858414c39f3231022971b08a6b9dc9d6024116020527f84e739bef13197615698bdfabfc1b886287b2209d526e0b88b8f55ba85686fcd6040527f2492d934f166e91909ab699d514a7c8945a3c1b2fdfe76a00ed909de0dbc4ccc6060526020600060806000600162016754fa6024556000516025557f25dcd8208d704c68a2751182346d2332b924bfb5f43ff4bb095c84343eed888f6000527f6fe4fd7dbf2d88c709f0e59813a6f58c27e01a1897848daec12d81bc1eefae1b6020527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040527f8fa1ab083edbcf3b8a7de09fd4044ff3e9a11fe374d4b15c65a950e2973acc5460605260206000608060006001600161b1a3f16026556000516027557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601b6020527f6caa89f589fb21ffb2b20bc89cb3d36db7d98733cc9308d9d2366bf43090091d6040527f6eb4c20a32f3ddeafec7a5bf91ec6c400addc6532ab4af4473433035465cd2b36060526020600060806000600160016139f3f2602855600051602955600060005260006020526000604052600060605260206000608060006000600162014a19f2602a55600051602b557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601b6020527fc2572296cd1fcd3374840b60d4ff9eb33c3298e4e0086147e1e5e58a5cfe504a6040527f544c1008f7d5d111dd146db87a85232dbdc8c77bad357000653fdc2861a35b0360605260206000608060006000600161a5f1f2602c55600051602d557f08fc53f403c7cd48139e619636d480ff67993d8d59b986ca81622b913e224cdc6000527ff5e0393483b02dbe4abdd1121437ea1890c8ce44770700c775411594fece3c1b60205260006040527f0e06d11efa9fc8e458187396b1e1cbcc0b5a29af8755ad270262a9d68f0606d5606052602060006080600060016001611154f2602e55600051602f557f2f8c6555338a6deb90638b65fa8d38a23ac9b5a29c3c0de86607ea580f2dc8406000527fd13d5b86d6e628e20f07808e3d8d3ea9bc09b2b87135f84a5050eba6a71c9c1c6020527f67e38b6c13a0ee8fe9df12ca0e010dab052985ac852d1f107bddf86a78e7e47e6040527fffff4145f42083b2c92ccabe7f2b3b18c183a1d89758ac508242806f53d1807160605260206000608060006001620122dcfa603055600051603155\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xE2f4CF89C9B94178B5725B8b1fd9a7F40c4a674C\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x717676767676760000000000760000007600006f121212121212121212121212121212127806400aff20ff00200004e7fd1eff08ffca0afd1eff08ffca0a90097176767676767676767600000076767676767668210000000000000022901411717676767676767676760000007676767676767f7effffff8000000000000000000000000000000000000000d900000000000001901390186085557f82000000000000000000000000000000000000000000000000000000000000007f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe027f7effffff8000000000000000000000000000000000000000d900000000000001717676767676767676760000007676767676769011046086556fdac7fff9ffd9e13226262626262626006823232323232323232390147f82000000000000000000000000000000000000000000000000000000000000007ff6376770abd3a36b20394c5664afef1194c801c3f05e42566f085ed24d002bb0901090136fdac7fff9ffd9e1322626262626262600671fffffffffffffff900402682323232323232323237ee8e8e8e2000100000009ea02000000000000ff3ffffff800000010002200001c1c608755681000000000000000007806400aff20ff00200004e7fd1eff08ffca0afd1eff08ffca0a9016157f40000000fd000000db00000000000000000000000000000000000000000000017f8200000000000000000000000000000000000000000000000000000000000000901b6088557702ffffffffffffffffffffffffffffffffff0000000300007a010900000000000000000000000000000000000000000000000000111868010000000000000000651ce97e1ab91a9001901b7f80000000000000000000000000000000000000000000000000000000000000007806400aff20ff00200004e7fd1eff08ffca0afd1eff08ffca0a0260895567800000000000000169010000000000000000000b901c608a557176767676767600000000007600000076000060011767ffffffffffffffff67800000000000000090020360056c0100000000000000000000000007901d7f80000000000000000000000000000000000000000000000000000000000000007ffffff716b61616160b0b0b2b0b0b0becf4bef50a0df4f48b090b2b0bc60a0a00059006717676767676760000000000760000007600006000017e4b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b090b2b0bc60a0a10007f7effffff800000000000000000000000000200004400000000000000000000017e40000000fd000000db0000000000000000000040000000fd000000db0000d309901b7f80000000000000000000000000000000000000000000000000000000000000027cc9700000000000000000023f00c00014ff00000000000000002230080560070890181a6380000001777effffff80000000000000000000000000000000000080017f80000000000000000000000000000000000000000000000000000000000000000805608b557ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe76fffff716b61616160b0b0b2b0b230b000008010d0a2b000663800000016380000000901190066f8000000000000000000000000000000068232323232323232323901c608c557e40000000fd000000db0000000000000000000040000000fd000000db0000d37ee8e8e8e2000100000009ea02000000000000ff3ffffff8000000100022000090056380000000600068100000000000000000089019901c11608d5560006000f3\",\n      \"nonce\": \"0x0\",\n      \"storage\": {\n        \"0x000000000000000000000000000000000000000000000000000000000000008e\": \"0x000000000000000000000000000000000000000000000000000000000000000f\",\n        \"0x000000000000000000000000000000000000000000000000000000000000008f\": \"0x000000000000000000000000000000000000000000000000000000000000000e\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000090\": \"0x0000000000000000000000000000000000000000000000000000000000000004\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000091\": \"0x000000000000000000000000000000000000000000000000000000000000000f\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000092\": \"0x0000000000000000000000000000000000000000000000000000000000000003\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000093\": \"0x0000000000000000000000000000000000000000000000000000000000000013\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000094\": \"0x0000000000000000000000000000000000000000000000000000000000000010\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000095\": \"0x0000000000000000000000000000000000000000000000000000000000000012\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000096\": \"0x0000000000000000000000000000000000000000000000000000000000000012\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000097\": \"0x000000000000000000000000000000000000000000000000000000000000000e\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000098\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000099\": \"0x0000000000000000000000000000000000000000000000000000000000000006\",\n        \"0x000000000000000000000000000000000000000000000000000000000000009a\": \"0x000000000000000000000000000000000000000000000000000000000000000b\",\n        \"0x000000000000000000000000000000000000000000000000000000000000009b\": \"0x000000000000000000000000000000000000000000000000000000000000000e\"\n      }\n    },\n    \"0xa94f5374Fce5edBC8E2a8697C15331677e6EbF0B\": {\n      \"balance\": \"0xffffffffff\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n      \"storage\": {}\n    },\n    \"0xd8C19eFeDe5AC667bcaC98d9E23A7ecDf49174Ab\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0xa5d82b3ed5a4c81ecb208ed654c3afe5ff5a47f79737c75b2ca157448e545334\",\n      \"storage\": {}\n    },\n    \"0xf3eAc1d1B1EC8cA737bD148b1E96168024fB3F89\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x6000496000556001496001556002496002556003496003556004496004556005496005556007496006554a6007556006600855\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xfD6241df8Ce82b2Fb4126dD0e9FA931806Fa573c\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x60e360005261020060205260e36040527f68ba69fd3d79033c88699f723b3ce8fc174e29617c0fdf5ca331345cfc88b3956060527f685a1289529ff6e4b8b0484285ab55b3f76dac15363842ec9b2d336b992ea10f6080527f36353ceec362a372703a5cbd12668f037d544cd7c5264f4b268658d99c9db80960a0527f67f2d2ba771a9e1d252660d4152e6b8c1ce1a15ffdc8cd107f44c9c0a7d3f31f60c0527f71a1fc485056395faeb3e337098b3eb579ecd77697bd38b7556d8c634f682e0760e0527f344453774915ee11d19d67019c1ab1cbf96284ebefdce23024b39297c3c86809610100527f0f3fc9fef99f49e7bbcb69512cb677dd0086b428baf1e45e86549109856b1f4a610120527f322173301aa0eb293c7a1a3cf35632d3e42be43b6f8a36b91810ae73fbfea52b610140527fea8823493f7e5e580c92ddd9f0b79a23cf39bb08378429ba4ff8c1c750e59dd8610160527fd83b25754b08bb09b9dad3f96e50bbaa26c21a516c7940b5a8d078e6dab85a9b610180527fceabfd9310faf929caa07eb2c16a5cf3220ad4ba347ce0fe46085d20ba75071c6101a0527f24f6d0eebee5563dbe1e9dbe7e5689c9327c1789ded8138a4be72594f913513d6101c0527fd17fb4869234da5ad1b1cfb239de0786236d865ed2cc386c97cb7fe2a692cf136101e0527f43b98da2bf7162f8e98dd6ee834e94d31db5b2a76894cc91c6f58a5143bb0036610200527f2774108405df680dce4dba7259b45a6db14c441d7804509ea5ede9dddc75223d610220527f96e7ea97d826d2439804598fc7876496be861a6ca50fda1429ee97f3c50aeae0610240527f431d4329971916f7e101455383ead34fb5abe5248acae9647a371fa6bf738cf9610260527ffe3bd91f70c14502003b140401804b9d89802c6a9fed066381650106babb9c3a610280527facccc13cdad040f47b674e9069c1626fade6322831db3e26bee1f4440770ef6e6102a0527f12d04d5e92ab3ba2bf08df17cd2e5b13e4ebfca850d995fae5b365342c16e7796102c0527f0748435c74300793195d4019c4e460346070e707a450ef6eb46c0cdaabacecd96102e0527fafb4c5e73d81081a0ed8969d16ddf0d93b2894302081351f20f428748609b85c610300527fa1136e7dca75863f6344598ba67ea78be7eede3fd603cc272682d41c55b54981610320527f77790a8dadad8b64cf67b4d1c698b3d17abc404e51ffcf26949e3708d03349af610340527f7616852f1e0314560baa48f0f80956faa938efab1743869fa0c40ed1fc187703610360527f0411af79acdc67e00252f798319ceb984f7f938fa5c477e5000deb9c87cdf7a3610380527fdfd48a4eed3f2c68bbe464b128a5692bcbe8404e85cc77067428633fe3ce77fc6103a0527fa923a6709345117ef6665b922f87b32bbddaff432fd51f1aea04c789d495a7636103c0527fbcf7aea7ffc385cf2e2694a1e44181a7106c4bd667959c6e8d3d40eca5c3d7e76103e0527ff55e9dd571ba1201b63ca49bab9e270b451bb49fc5fb30dcfd7c8d55426701636104005260396104205360526104215360556104225360d16104235360e66104245360446104255360e360006104266000600060056301253018f15a0160005560005160015560205160025560405160035560605160045560805160055560a05160065560c05160075560e05160085561012c60005261012c60205261012c6040527f4c13aa7bd89ec1d2c97320c06de11439a3ef9f76f35cbef4a26bdaa531facb886060527fe936ad5a1ff2ae08e306e0675c45b5897bc54bd20ebb7401b8d0bbf7c8d740006080527f6e89c3b9088a0adc7f74bf8d5b78bebb6a608cd96c3d3ff56a2aca44cffb859760a0527f5ef8d2a654c19fd41f23d7154e6d4d39e1f7f83f350b3eeaee406db1cf882fdb60c0527f10582dc1df5ff7a13a5c4da82250077d56b4f3431de716f4140bd06a5f75e8d260e0527fad66636358287940d2e94232ea2849556b2ec8a990e15bcaf0be81232ec49ea1610100527ffdb224be211341222db5e820df4c160a3463e297f9c5dd460b4d0e0212bf25c2610120527f1de01c72fada90d9d23a7b8a3f34a01e3c5ea262f1be04457af21bebbc1b197a610140527f256e0ed7425a4a0ddcf8daabd1ee80e3a9a2b591233b7472521bb4e762e81e3c610160527fc02e02687247389cd723176ff321a468b17b0a9935ddff9fc995864eae74e129610180527f5d1c6e53c08315d8ca820b2da313676a3f607630be87d188154c529b5d98483d6101a0527f8f01e5b864f6406c46d2e6236303538d60a6326bbcd34b27736baf670e5e64906101c0527fbd11741f29b8112c2fd1bfacb8f381818b6b84c3fcc47e228dafe7622fdf5a266101e0527f0ec1be3cb9dbb1aa2ddafbd6839456c0b93ad959d9f032cc072cc4a7f67cf523610200527f7cde68df5a162da4f59c6d125fe25659a3d284949cde9f03e76142cccde98745610220527fcfb60777ffebf9e64be81d40180bea6dc4a5f6336b2b8a13c21df333baf7a2ce610240527f0226d7361c97d87324984f784e53b3494567d268d709630d595ca42f8753125d610260527f831f7f613cc4940a56d74a282a2f158f4ad6eec1b3a540cc4f2e70649eeb2ee6610280527f3f1db47e40ae8bdb42dac89e92e946d18c8dc4762e3d112d9a806f47e5749be16102a0527f30dbc5d2c3454b56123f0cefb0b8409e97d661959987129440081d476b6f6dbd6102c0527f9f959d6ed8f803e00cada84448dd3afa609dfff3b0536748ca0ec3b14be0ad936102e0527f04f126df3fe3b3f230519fce73d16706e0941891db3281f3859bc57f18c55f0e610300527fafdb95645eb77981cd68bd03e9fdb3bbb9edcb8e7995a1ab87c55c17dc7110e8610320527f38f6bc0d087f7348be687868f26e7c2ce8063f1e1785a1e8522959a21855b799610340527ff498e688264e826b3e2d34f0778b61afd62977d5e711976224a9ee3bb0cae3d9610360527f90e914d74e9d5366ef98fe6ad24437b59e9f026b8c098fbf61413149cd501b60610380527fd12b58e018d6c64acf92bcbd311784ff44446d651bd1ff78f5193da46abaa62d6103a0527fd7183b49e5f51ac4cb8d35b0bb50d90bbadbc0a91c98998fb1ad5a2b2b0a3bf96103c05260326103e05360f46103e15360826103e25360026103e35361012c60006103e460006000600563010a4374f15a01600955600051600a55602051600b55604051600c55606051600d55608051600e5560a051600f5560c05160105560e0516011556101005160125561012051601355\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    }\n  },\n  \"chainId\": 1,\n  \"env\": {\n    \"currentBaseFee\": \"0xa\",\n    \"currentBlobGasUsed\": \"0x20000\",\n    \"currentCoinbase\": \"0xc014Ba5e00000000000000000000000000000000\",\n    \"currentDifficulty\": \"0x20000\",\n    \"currentExcessBlobGas\": \"0x80000\",\n    \"currentGasLimit\": \"0x11e1a300\",\n    \"currentNumber\": \"0x1\",\n    \"currentTimestamp\": \"0x3e8\"\n  },\n  \"fork\": \"Osaka\",\n  \"parentBeaconBlockRoot\": \"0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f\",\n  \"transactions\": [\n    {\n      \"data\": \"0x\",\n      \"from\": \"0xD57b4cd1835F4e135762235a065aA1F4EEE18fB2\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x20\",\n      \"nonce\": 0,\n      \"to\": \"0x538A8474EeaB43d5a960164c554A20400151D479\",\n      \"value\": \"0xeb4e32\"\n    },\n    {\n      \"blobVersionedHashes\": [\n        \"0x0151232cf675c935ef391b8fd558a10e093eb25d5e78fe6170c1f8ce23b06e17\",\n        \"0x01bfc9c4e99a03f3708fd387e97733f3c5b2a65e459587674598eda695b354b0\",\n        \"0x015a37c0077673cf8aeaa690fefed9714b00490c5c45dc43ad4990256f744250\",\n        \"0x017effe0e39459c4c2c9e96b0e1ccc963179783ba07f37e28c9ea3588c24b80a\",\n        \"0x015051974a4f040fa74fde7e1f10a3caa0958210540822e965dca0cc089421de\",\n        \"0x0136aab88a6300af782af468b9dbd33a5e7f09dd88c940c7e8bc9696351a2396\"\n      ],\n      \"data\": \"0xb8a1\",\n      \"from\": \"0x91D1D8f382B0EE7F1c8E2a19934487D80A469695\",\n      \"gas\": \"0xf42400\",\n      \"maxFeePerBlobGas\": \"0x100\",\n      \"maxFeePerGas\": \"0x20\",\n      \"maxPriorityFeePerGas\": \"0x1\",\n      \"nonce\": 0,\n      \"sidecar\": {\n        \"blobs\": 6,\n        \"commitments\": 6,\n        \"proofs\": 6\n      },\n      \"to\": \"0xf3eAc1d1B1EC8cA737bD148b1E96168024fB3F89\",\n      \"type\": \"0x3\",\n      \"value\": \"0x0\"\n    },\n    {\n      \"data\": \"0x979ef803f86d8da0b051f1c1978a54f1f249e777afe349bde7784af3af3736a1cf6427992bf070b8b3237445a46c46c0\",\n      \"from\": \"0xB9f155f6BD269F51899d0fd3Fc7457195caAC6d4\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0xDa78807c1C4567c23EB713E9fbB3b1508C1284ce\",\n      \"value\": \"0xf6d8\"\n    },\n    {\n      \"data\": \"0x234f36b00b899acd82ee47db9ee3eacb23dfa61b9692c8fa886079a4cc27a4ec89c56555cdcbb295e6aaf676bb35a74e2660bca16010\",\n      \"from\": \"0xB02727BF3c9593eb8eDF26697507d3d02ADf188d\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0x766C0844EBC3c4ef4ddb86260a4D3516cCa03A10\",\n      \"value\": \"0x57\"\n    },\n    {\n      \"data\": \"0xa16b5f3897ee5da10daf1d2482cd3d61f3acd4e947b01f8e646aecd279\",\n      \"from\": \"0x8b632B705a6Ab4ee30e08eD21A0AEE1C3b6583B8\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0x22986B2F9A2f5E7119F940898c35e7128A4Ce7E3\",\n      \"value\": \"0x9993\"\n    },\n    {\n      \"data\": \"0x5c1f04f49b87fba351403d18f62492f20fa63c360685451c204c39496b48757ccd9e4b286bf9150936c0107298861c5f87343a0c638efcfd30d06b69906fa2a572d9fb3b019659ddc85daa806cd5f9a9bde5889720800a7d1ad910c9d5c08be332af0816a2f03512f0e4af7338eea9409a415c9a92a310cd70dbdebc32bc590642bc5437f9bed555c5afa58252ef0433\",\n      \"from\": \"0xD57b4cd1835F4e135762235a065aA1F4EEE18fB2\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 1,\n      \"to\": \"0x641602bAD4A323C49629d45338d79A2bb984A3fb\",\n      \"value\": \"0xe4\"\n    },\n    {\n      \"data\": \"0x02a401377e008d7264913d4b8f133df0bf2fe023635467aff9b5b2b7fb87ee092248f6e94051377206c0ac69fb01ea0662e1f8642d017a58d0\",\n      \"from\": \"0x91D1D8f382B0EE7F1c8E2a19934487D80A469695\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 1,\n      \"to\": \"0x3Bd84e661C47a73eEe4137D185E4c31c194C343f\",\n      \"value\": \"0x6e6593\"\n    },\n    {\n      \"data\": \"0x6c\",\n      \"from\": \"0xB9f155f6BD269F51899d0fd3Fc7457195caAC6d4\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 1,\n      \"to\": \"0xD74CFe323387aE2fd070CD046173026716D8D649\",\n      \"value\": \"0x0\"\n    },\n    {\n      \"data\": \"0x\",\n      \"from\": \"0xB02727BF3c9593eb8eDF26697507d3d02ADf188d\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 1,\n      \"to\": \"0xBa0E31A0E75AC9a4cac4c57d6c7EF2a10e87D4e6\",\n      \"value\": \"0x0\"\n    },\n    {\n      \"data\": \"0x8c8c7d9be0d21bb7e20e11cdf09d9bab1f7afb0acbe01c2c7208d5d61975c330918b75aa79b0bd7ada434555a16755e14cbcf4bae04220c84caf7a01cad4856a\",\n      \"from\": \"0x8b632B705a6Ab4ee30e08eD21A0AEE1C3b6583B8\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 1,\n      \"to\": \"0x9529cc6891Fbd5aBFABE0AE6c79D30F0CCAe848F\",\n      \"value\": \"0x34\"\n    },\n    {\n      \"data\": \"0xa1a576ba71d1586c137ffbf26a64a0f08839c904930a3ccdd5fb49a22bfdeae09fd83fe4205d3d81f6d5347a416e9dbe1a01845aaebf4bfd54f441d02d1245\",\n      \"from\": \"0xD57b4cd1835F4e135762235a065aA1F4EEE18fB2\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 2,\n      \"to\": \"0x7458F9b8B5ee360A32b0b0Fe648C996C68AE8190\",\n      \"value\": \"0xb6\"\n    },\n    {\n      \"data\": \"0xeb4d46c8676782f9a0e27952006dade15be39bfcd5e93b473bec8286c82129e97a95df024b8ac429c3a12675fa5d33f5bd0368ee51954e118f45bbe0d5c75e0f14511626e3cec36f8a0fea34debb42f4ad3b\",\n      \"from\": \"0x91D1D8f382B0EE7F1c8E2a19934487D80A469695\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 2,\n      \"to\": \"0x9E607bB0Bae19b8bC75638fd1aB98594b36ba46d\",\n      \"value\": \"0x2586\"\n    },\n    {\n      \"data\": \"0x37fbd9d422a2d3b07bdd02651e16a09771aed6a8afadded3fe3554b8e93812ee89bc1934160eb425798dfb23a67a07d6253bf4ef552a8047a43e6c0afcfc0d59611e445f59284029ea0185197b1b68c34695af3ae1596bb7260ab1f9ffcbda973774c9\",\n      \"from\": \"0xB9f155f6BD269F51899d0fd3Fc7457195caAC6d4\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 2,\n      \"to\": \"0xfD6241df8Ce82b2Fb4126dD0e9FA931806Fa573c\",\n      \"value\": \"0x0\"\n    },\n    {\n      \"data\": \"0xf079043fb1e333119c9f37c0da1e7c37afaa7bd4f0a48cc4c13dfa7b0f1fdad73b5b9e0693640d461ef391412d33458c44b23b59ebf9209b43fe85fdbedb04e99fa64b\",\n      \"from\": \"0xB02727BF3c9593eb8eDF26697507d3d02ADf188d\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 2,\n      \"to\": \"0x1d891f21BB2a55cD9EC7a32478f7c74d757c4876\",\n      \"value\": \"0x2a25\"\n    },\n    {\n      \"authorizationList\": [\n        {\n          \"address\": \"0x00000000000000000000000000000000000000f6\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x0\",\n          \"r\": \"0x7c48536e23d335550aeafe4c1a83a723d065f2e5b3a5ee92a511407047864475\",\n          \"s\": \"0x205759410d303ec597e2dc6393fd16b9fdc3822b291964ffc8ce0b38d37443ff\",\n          \"v\": \"0x1\"\n        },\n        {\n          \"address\": \"0x00000000000000000000000000000000000000f4\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x0\",\n          \"r\": \"0x54c674400688f718ee9e00c2c3a55d381086f0b5c02a1c4f858a7163fe894f00\",\n          \"s\": \"0x4cfd634ceaa675a52cb1d7ca3ad14ca67c6655e807fb31b4a4594ba92878a697\",\n          \"v\": \"0x1\"\n        },\n        {\n          \"address\": \"0x0000000000000000000000000000000000000008\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x1\",\n          \"r\": \"0xc6956404e7cf31ffbeeb302279839736467b40fb83017c2b2541dac5e31f691a\",\n          \"s\": \"0x4d92016e2691de9b91edb8b4164b729d285e88d1189b9fb7cac1a100464a4d94\",\n          \"v\": \"0x0\"\n        },\n        {\n          \"address\": \"0x1563915e194d8cfba1943570603f7606a3115508\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x0\",\n          \"r\": \"0x9f7853fc3910422af738e43f0cdfca99e563e26c8191674ff73e451bdb76f920\",\n          \"s\": \"0x74296c8652d2063bdc5babf2f29d407eecbd33cbbc64039487c464d48b0be33a\",\n          \"v\": \"0x0\"\n        },\n        {\n          \"address\": \"0x0000000000000000000000000000000000000002\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x2\",\n          \"r\": \"0x661803e8303b235dd6c107384ea9de0b00bc66c64ebce4eb656a4f5b2c9d18f1\",\n          \"s\": \"0x2b034a6129d8e3a6e719bd58cc085c355e8cb14ce9c77566bd430c4fa56b6877\",\n          \"v\": \"0x0\"\n        },\n        {\n          \"address\": \"0x8fd379246834eac74b8419ffda202cf8051f7a03\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x0\",\n          \"r\": \"0x66dccffe43cd270b38a7e7f384e73e48f305ff9eb08795b67b0a98760321116a\",\n          \"s\": \"0x6a55044bdaea2aa0b6231b536dff7844907538f69cebaa0fd94c50702f883c58\",\n          \"v\": \"0x0\"\n        }\n      ],\n      \"data\": \"0xc159\",\n      \"from\": \"0xd8C19eFeDe5AC667bcaC98d9E23A7ecDf49174Ab\",\n      \"gas\": \"0xf42400\",\n      \"maxFeePerGas\": \"0x10\",\n      \"maxPriorityFeePerGas\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0x0000000000000000000000000000000000000010\",\n      \"type\": \"0x4\",\n      \"value\": \"0x8e\"\n    },\n    {\n      \"data\": \"0x00\",\n      \"from\": \"0x23957dB27fD43F125fee8eB0a2Be85F1FC39Fa74\",\n      \"gas\": \"0x30d40\",\n      \"maxFeePerGas\": \"0x1e\",\n      \"maxPriorityFeePerGas\": \"0x1\",\n      \"nonce\": 0,\n      \"to\": \"0x00000000000000000000000000000000000000f6\",\n      \"type\": \"0x2\",\n      \"value\": \"0x3e8\"\n    },\n    {\n      \"authorizationList\": [\n        {\n          \"address\": \"0x0000000000000000000000000000000000000000\",\n          \"chainId\": \"0x1\",\n          \"nonce\": \"0x2\",\n          \"r\": \"0xb8ddf540ae2c650211ff9615477d69061db710b2b73a527a8f5d3e9cebfee5e7\",\n          \"s\": \"0x77a01c72961d20542f9ebfb2169fd30fb798f730e95636dd0d904cc62b93de80\",\n          \"v\": \"0x0\"\n        }\n      ],\n      \"data\": \"0xc159\",\n      \"from\": \"0xAC364Fe8a53B3B06E4ffc43a61e6b6aE111F8B60\",\n      \"gas\": \"0xf42400\",\n      \"maxFeePerGas\": \"0x10\",\n      \"maxPriorityFeePerGas\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0x0000000000000000000000000000000000000010\",\n      \"type\": \"0x4\",\n      \"value\": \"0x8e\"\n    }\n  ],\n  \"version\": \"2.0\"\n}"
  },
  {
    "path": "src/cli/fuzzer_bridge/models.py",
    "content": "\"\"\"\nPydantic models for fuzzer output format v2.\n\nThis module defines Data Transfer Objects (DTOs) for parsing\nfuzzer output. These DTOs are intentionally separate from EEST\ndomain models (Transaction, Account) to maintain clean separation\nbetween external data format and internal representation.\n\nDesign Principle:\n- DTOs (this file): Parse external JSON-RPC standard format\n- Domain Models (EEST): Internal test generation logic\n- Converter (converter.py): Explicit transformation between the two\n\"\"\"\n\nfrom typing import Dict, List\n\nfrom pydantic import BaseModel, Field\n\nfrom ethereum_test_base_types import AccessList, Address, Bytes, CamelModel, Hash, HexNumber\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_types import Environment\n\n\nclass FuzzerAccountInput(BaseModel):\n    \"\"\"\n    Raw account data from fuzzer output.\n\n    This is a DTO that accepts fuzzer's JSON format without triggering\n    EEST's Account validation logic or defaults.\n    \"\"\"\n\n    balance: HexNumber\n    nonce: HexNumber = HexNumber(0)\n    code: Bytes = Bytes(b\"\")\n    storage: Dict[HexNumber, HexNumber] = Field(default_factory=dict)\n    private_key: Hash | None = Field(None, alias=\"privateKey\")\n\n    class Config:\n        \"\"\"Pydantic configuration.\"\"\"\n\n        populate_by_name = True\n\n\nclass FuzzerAuthorizationInput(BaseModel):\n    \"\"\"\n    Raw authorization tuple from fuzzer output (EIP-7702).\n\n    Accepts fuzzer's camelCase JSON format.\n    \"\"\"\n\n    chain_id: HexNumber = Field(..., alias=\"chainId\")\n    address: Address\n    nonce: HexNumber\n    v: HexNumber  # yParity\n    r: HexNumber\n    s: HexNumber\n\n    class Config:\n        \"\"\"Pydantic configuration.\"\"\"\n\n        populate_by_name = True\n\n\nclass FuzzerTransactionInput(BaseModel):\n    \"\"\"\n    Raw transaction data from fuzzer output.\n\n    This is a DTO that accepts standard Ethereum JSON-RPC transaction format\n    without triggering EEST's Transaction.model_post_init logic.\n\n    Key differences from EEST Transaction:\n    - Uses \"gas\" not \"gas_limit\" (JSON-RPC standard)\n    - Uses \"data\" not \"input\" (JSON-RPC standard)\n    - Uses \"from\" not \"sender\" (JSON-RPC standard)\n    - No automatic TestAddress injection\n    - No automatic transaction type detection\n    - No automatic signature handling\n    \"\"\"\n\n    from_: Address = Field(..., alias=\"from\")\n    to: Address | None = None\n    gas: HexNumber  # Will be mapped to gas_limit in converter\n    gas_price: HexNumber | None = Field(None, alias=\"gasPrice\")\n    max_fee_per_gas: HexNumber | None = Field(None, alias=\"maxFeePerGas\")\n    max_priority_fee_per_gas: HexNumber | None = Field(None, alias=\"maxPriorityFeePerGas\")\n    nonce: HexNumber\n    data: Bytes = Bytes(b\"\")  # Will be mapped to data/input in converter\n    value: HexNumber = HexNumber(0)\n    access_list: List[AccessList] | None = Field(None, alias=\"accessList\")\n    blob_versioned_hashes: List[Hash] | None = Field(None, alias=\"blobVersionedHashes\")\n    max_fee_per_blob_gas: HexNumber | None = Field(None, alias=\"maxFeePerBlobGas\")\n    authorization_list: List[FuzzerAuthorizationInput] | None = Field(\n        None, alias=\"authorizationList\"\n    )\n\n    class Config:\n        \"\"\"Pydantic configuration.\"\"\"\n\n        populate_by_name = True\n\n\nclass FuzzerOutput(CamelModel):\n    \"\"\"\n    Main fuzzer output format v2.\n\n    This is the top-level DTO that parses the complete fuzzer\n    output JSON. It uses pure DTOs (FuzzerAccountInput,\n    FuzzerTransactionInput) to avoid triggering EEST domain\n    model logic during parsing.\n\n    After parsing, the converter will transform these DTOs into\n    EEST domain models.\n    \"\"\"\n\n    version: str = Field(..., pattern=\"^2\\\\.0$\")\n    fork: Fork\n    chain_id: HexNumber = Field(HexNumber(1))\n    accounts: Dict[Address, FuzzerAccountInput]\n    transactions: List[FuzzerTransactionInput]\n    env: Environment\n    parent_beacon_block_root: Hash | None = None\n"
  },
  {
    "path": "src/cli/fuzzer_bridge/performance_utils.py",
    "content": "\"\"\"Performance utilities for fuzzer bridge processing.\"\"\"\n\nimport json\nimport mmap\nimport os\nfrom functools import lru_cache\nfrom pathlib import Path\nfrom typing import Any, Dict, List, Optional\n\ntry:\n    import orjson  # type: ignore  # Fast JSON library (optional dependency)\n\n    HAS_ORJSON = True\nexcept ImportError:\n    HAS_ORJSON = False\n\n\nclass FastJSONHandler:\n    \"\"\"Fast JSON operations using memory-mapped files and optimized parsing.\"\"\"\n\n    @staticmethod\n    def load_json_mmap(file_path: Path) -> Dict[str, Any]:\n        \"\"\"Load JSON using memory-mapped file for better I/O performance.\"\"\"\n        with open(file_path, \"r+b\") as f:\n            # Memory-map the file\n            with mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ) as mmapped_file:\n                # Read the entire content at once\n                content = mmapped_file.read()\n                if HAS_ORJSON:\n                    return orjson.loads(content)\n                else:\n                    # Fallback to standard json\n                    return json.loads(content.decode(\"utf-8\"))\n\n    @staticmethod\n    def dump_json_fast(data: Dict[str, Any], file_path: Path, pretty: bool = False) -> None:\n        \"\"\"Dump JSON using optimized serialization.\"\"\"\n        if HAS_ORJSON:\n            # Use orjson for faster serialization\n            if pretty:\n                content = orjson.dumps(data, option=orjson.OPT_INDENT_2)\n            else:\n                content = orjson.dumps(data)\n            with open(file_path, \"wb\") as f:\n                f.write(content)\n        else:\n            # Fallback to standard json\n            with open(file_path, \"w\") as f:\n                if pretty:\n                    json.dump(data, f, indent=2)\n                else:\n                    json.dump(data, f)\n\n\nclass BatchProcessor:\n    \"\"\"Optimized batch processing utilities.\"\"\"\n\n    @staticmethod\n    def calculate_optimal_batch_size(file_count: int, num_workers: int) -> int:\n        \"\"\"Calculate optimal batch size based on file count and workers.\"\"\"\n        # Aim for at least 4 batches per worker for better load balancing\n        # But not too small to avoid overhead\n        min_batch_size = 5\n        ideal_batches_per_worker = 4\n\n        ideal_batch_size = max(\n            min_batch_size, file_count // (num_workers * ideal_batches_per_worker)\n        )\n\n        # Adjust for very large file counts\n        if file_count > 10000:\n            # Larger batches for many files to reduce overhead\n            ideal_batch_size = max(50, ideal_batch_size)\n        elif file_count < 100:\n            # Smaller batches for few files to maximize parallelism\n            ideal_batch_size = max(1, file_count // (num_workers * 2))\n\n        return ideal_batch_size\n\n    @staticmethod\n    def calculate_optimal_workers(file_count: int) -> int:\n        \"\"\"Calculate optimal number of workers for processing.\"\"\"\n        cpu_count = os.cpu_count() or 4\n\n        # Scale workers based on file count\n        if file_count < 10:\n            return 1  # Sequential for very small workloads\n        elif file_count < 50:\n            return min(2, cpu_count)\n        elif file_count < 200:\n            return min(4, cpu_count)\n        elif file_count < 1000:\n            return min(cpu_count, 8)\n        else:\n            # For large file counts, use all available CPUs but cap at 16\n            return min(cpu_count, 16)\n\n\n@lru_cache(maxsize=128)\ndef cached_fork_lookup(fork_name: str) -> Optional[Any]:\n    \"\"\"Cache fork lookups to avoid repeated module imports.\"\"\"\n    try:\n        import ethereum_test_forks\n\n        return getattr(ethereum_test_forks, fork_name, None)\n    except (ImportError, AttributeError):\n        return None\n\n\nclass ParallelProgressTracker:\n    \"\"\"Thread-safe progress tracking for parallel processing.\"\"\"\n\n    def __init__(self, total: int):\n        \"\"\"Initialize progress tracker.\"\"\"\n        from threading import Lock\n\n        self.total = total\n        self.completed = 0\n        self.errors = 0\n        self.lock = Lock()\n\n    def update(self, success: int = 0, error: int = 0) -> tuple[int, int]:\n        \"\"\"Update progress counters thread-safely.\"\"\"\n        with self.lock:\n            self.completed += success\n            self.errors += error\n            return self.completed, self.errors\n\n    def get_stats(self) -> tuple[int, int, int]:\n        \"\"\"Get current statistics.\"\"\"\n        with self.lock:\n            return self.completed, self.errors, self.total\n\n\n# Memory pool for reusing buffers\nclass BufferPool:\n    \"\"\"Reusable buffer pool to reduce memory allocations.\"\"\"\n\n    def __init__(self, buffer_size: int = 1024 * 1024):  # 1MB default\n        \"\"\"Initialize buffer pool.\"\"\"\n        self.buffer_size = buffer_size\n        self.buffers: List[bytearray] = []\n\n    def get_buffer(self) -> bytearray:\n        \"\"\"Get a buffer from pool or create new one.\"\"\"\n        if self.buffers:\n            return self.buffers.pop()\n        return bytearray(self.buffer_size)\n\n    def return_buffer(self, buffer: bytearray) -> None:\n        \"\"\"Return buffer to pool for reuse.\"\"\"\n        if len(buffer) == self.buffer_size:\n            self.buffers.append(buffer)\n"
  },
  {
    "path": "src/cli/fuzzer_bridge/production_test.py",
    "content": "#!/usr/bin/env python\n\"\"\"\nProduction-ready test suite for fuzzer bridge with geth verification.\n\nThis script:\n1. Loads fuzzer output\n2. Converts to blockchain test\n3. Generates fixtures\n4. Verifies with go-ethereum\n5. Reports comprehensive results\n\"\"\"\n\nimport argparse\nimport json\nimport subprocess\nimport sys\nimport tempfile\nimport time\nfrom pathlib import Path\nfrom typing import Any, Dict, List, Optional\n\n# Add parent directory to path for imports\nsys.path.insert(0, str(Path(__file__).parent.parent.parent))\n\nfrom ethereum_clis import GethTransitionTool\nfrom ethereum_test_fixtures.blockchain import BlockchainFixture\nfrom ethereum_test_specs.blockchain import BlockchainTest\nfrom ethereum_test_tools import (\n    Account,\n    Address,\n    Alloc,\n    Block,\n    Environment,\n    Transaction,\n)\n\n\nclass FuzzerBridge:\n    \"\"\"Production-ready fuzzer bridge with validation and verification.\"\"\"\n\n    def __init__(\n        self, t8n_path: Optional[str] = None, verbose: bool = False, keep_fixtures: bool = False\n    ):\n        \"\"\"Initialize bridge with optional transition tool path.\"\"\"\n        self.t8n = GethTransitionTool(binary=Path(t8n_path) if t8n_path else None)\n        self.verbose = verbose\n        self.keep_fixtures = keep_fixtures\n        self.stats: Dict[str, Any] = {\n            \"tests_generated\": 0,\n            \"tests_passed\": 0,\n            \"tests_failed\": 0,\n            \"validation_errors\": [],\n        }\n\n    def validate_fuzzer_output(self, data: Dict[str, Any]) -> List[str]:\n        \"\"\"Validate fuzzer output format and return list of errors.\"\"\"\n        errors = []\n\n        # Check version\n        version = data.get(\"version\", \"1.0\")\n        if version != \"2.0\":\n            errors.append(f\"Unsupported version {version}, expected 2.0\")\n\n        # Check required fields\n        required_fields = [\"accounts\", \"transactions\", \"env\", \"fork\", \"chainId\"]\n        for field in required_fields:\n            if field not in data:\n                errors.append(f\"Missing required field: {field}\")\n\n        # Validate accounts with transactions have private keys\n        if \"accounts\" in data and \"transactions\" in data:\n            senders = set()\n            for tx in data[\"transactions\"]:\n                sender = tx.get(\"from\") or tx.get(\"sender\")\n                if sender:\n                    senders.add(sender)\n\n            for sender in senders:\n                if sender not in data[\"accounts\"]:\n                    errors.append(f\"Sender {sender} not in accounts\")\n                elif \"privateKey\" not in data[\"accounts\"][sender]:\n                    errors.append(f\"No private key for sender {sender}\")\n                else:\n                    # Validate private key matches address\n                    if not self._validate_key_address(\n                        data[\"accounts\"][sender][\"privateKey\"], sender\n                    ):\n                        errors.append(f\"Private key doesn't match address {sender}\")\n\n        return errors\n\n    def _validate_key_address(self, private_key: str, expected_address: str) -> bool:\n        \"\"\"Validate that private key generates expected address.\"\"\"\n        try:\n            from ethereum_test_types import EOA\n\n            eoa = EOA(key=private_key)\n            # EOA class returns the address directly via str()\n            return str(eoa).lower() == expected_address.lower()\n        except Exception:\n            return False\n\n    def convert_to_test(self, fuzzer_data: Dict[str, Any]) -> Dict[str, Any]:\n        \"\"\"Convert fuzzer output to test parameters.\"\"\"\n        # Validate first\n        errors = self.validate_fuzzer_output(fuzzer_data)\n        if errors:\n            raise ValueError(\"Validation failed:\\n\" + \"\\n\".join(errors))\n\n        # Build pre-state\n        pre_state = Alloc()\n        private_keys = {}\n\n        for addr_str, account_data in fuzzer_data[\"accounts\"].items():\n            addr = Address(addr_str)\n\n            if \"privateKey\" in account_data:\n                private_keys[addr_str] = account_data[\"privateKey\"]\n\n            pre_state[addr] = Account(\n                balance=int(account_data.get(\"balance\", \"0x0\"), 16),\n                nonce=int(account_data.get(\"nonce\", \"0x0\"), 16),\n                code=account_data.get(\"code\", \"\"),\n                storage=account_data.get(\"storage\", {}),\n            )\n\n        # Create genesis environment (block 0)\n        env_data = fuzzer_data[\"env\"]\n        genesis_env = Environment(\n            fee_recipient=Address(env_data.get(\"currentCoinbase\")),\n            difficulty=0,  # Post-merge\n            gas_limit=int(env_data.get(\"currentGasLimit\", \"0x1000000\"), 16),\n            number=0,  # Genesis is block 0\n            timestamp=int(env_data.get(\"currentTimestamp\", \"0x1000\"), 16) - 12,\n            base_fee_per_gas=int(env_data.get(\"currentBaseFee\", \"0x7\"), 16),\n        )\n\n        # Block 1 environment overrides\n        block1_env = {\n            \"timestamp\": int(env_data.get(\"currentTimestamp\", \"0x1000\"), 16),\n            \"fee_recipient\": Address(env_data.get(\"currentCoinbase\")),\n        }\n\n        # Create transactions\n        txs = []\n        for tx_data in fuzzer_data[\"transactions\"]:\n            sender_addr = tx_data.get(\"from\") or tx_data.get(\"sender\")\n            secret_key = private_keys[sender_addr]\n\n            txs.append(\n                Transaction(\n                    to=Address(tx_data[\"to\"]) if tx_data.get(\"to\") else None,\n                    value=int(tx_data.get(\"value\", \"0x0\"), 16),\n                    gas_limit=int(tx_data.get(\"gas\", \"0x5208\"), 16),\n                    gas_price=int(tx_data.get(\"gasPrice\", \"0x1\"), 16),\n                    nonce=int(tx_data.get(\"nonce\", \"0x0\"), 16),\n                    data=bytes.fromhex(tx_data.get(\"data\", \"0x\")[2:])\n                    if tx_data.get(\"data\", \"0x\") != \"0x\"\n                    else b\"\",\n                    secret_key=secret_key,\n                )\n            )\n\n        # Create block\n        block = Block(txs=txs, **block1_env)\n\n        return {\n            \"genesis_environment\": genesis_env,\n            \"pre\": pre_state,\n            \"post\": {},\n            \"blocks\": [block],\n            \"chain_id\": fuzzer_data.get(\"chainId\", 1),\n            \"fork\": fuzzer_data.get(\"fork\", \"Prague\"),\n        }\n\n    def generate_fixture(self, test_params: Dict[str, Any]) -> Dict[str, Any]:\n        \"\"\"Generate blockchain test fixture.\"\"\"\n        # Get fork\n        from ethereum_test_forks import Cancun, Osaka, Prague, Shanghai\n\n        fork_map = {\"Osaka\": Osaka, \"Prague\": Prague, \"Shanghai\": Shanghai, \"Cancun\": Cancun}\n        fork = fork_map.get(test_params[\"fork\"], Prague)\n\n        # Create test\n        test = BlockchainTest(\n            genesis_environment=test_params[\"genesis_environment\"],\n            pre=test_params[\"pre\"],\n            post=test_params[\"post\"],\n            blocks=test_params[\"blocks\"],\n            chain_id=test_params[\"chain_id\"],\n        )\n\n        # Generate fixture\n        fixture = test.generate(\n            t8n=self.t8n,\n            fork=fork,\n            fixture_format=BlockchainFixture,\n        )\n\n        self.stats[\"tests_generated\"] += 1\n\n        return fixture.model_dump(exclude_none=True, by_alias=True)\n\n    def verify_with_geth(\n        self, fixture: Dict[str, Any], geth_path: str, test_name: str = \"test\"\n    ) -> Dict[str, Any]:\n        \"\"\"Verify fixture with go-ethereum evm tool.\"\"\"\n        # Write fixture to temp file\n        with tempfile.NamedTemporaryFile(mode=\"w\", suffix=\".json\", delete=False) as f:\n            json.dump({test_name: fixture}, f, indent=2)\n            fixture_path = f.name\n\n        try:\n            # Run geth blocktest\n            result = subprocess.run(\n                [geth_path, \"blocktest\", fixture_path], capture_output=True, text=True, timeout=30\n            )\n\n            # Parse output\n            output = result.stdout + result.stderr\n\n            # Check if test passed\n            if result.returncode == 0 and '\"pass\": true' in output:\n                self.stats[\"tests_passed\"] += 1\n                return {\"pass\": True, \"output\": output, \"fixture_path\": fixture_path}\n            else:\n                self.stats[\"tests_failed\"] += 1\n                # Extract error message\n                error = \"Unknown error\"\n                if '\"error\":' in output:\n                    import re\n\n                    match = re.search(r'\"error\":\\s*\"([^\"]+)\"', output)\n                    if match:\n                        error = match.group(1)\n\n                return {\n                    \"pass\": False,\n                    \"error\": error,\n                    \"output\": output,\n                    \"fixture_path\": fixture_path,\n                }\n\n        except subprocess.TimeoutExpired:\n            self.stats[\"tests_failed\"] += 1\n            return {\"pass\": False, \"error\": \"Timeout\", \"fixture_path\": fixture_path}\n        except Exception as e:\n            self.stats[\"tests_failed\"] += 1\n            return {\"pass\": False, \"error\": str(e), \"fixture_path\": fixture_path}\n        finally:\n            # Optionally clean up\n            # Note: args is not defined here - should be passed as parameter\n            pass\n\n    def run_full_test(self, fuzzer_file: str, geth_path: str) -> bool:\n        \"\"\"Run full test pipeline from fuzzer output to geth verification.\"\"\"\n        print(f\"🔧 Loading fuzzer output from {fuzzer_file}\")\n        with open(fuzzer_file) as f:\n            fuzzer_data = json.load(f)\n\n        print(\"📋 Fuzzer Output Summary:\")\n        print(f\"   Version: {fuzzer_data.get('version', 'unknown')}\")\n        print(f\"   Fork: {fuzzer_data.get('fork', 'unknown')}\")\n        print(f\"   Accounts: {len(fuzzer_data.get('accounts', {}))}\")\n        print(f\"   Transactions: {len(fuzzer_data.get('transactions', []))}\")\n\n        # Validate\n        print(\"\\n✓ Validating fuzzer output...\")\n        errors = self.validate_fuzzer_output(fuzzer_data)\n        if errors:\n            print(\"❌ Validation failed:\")\n            for error in errors:\n                print(f\"   - {error}\")\n            return False\n\n        # Convert\n        print(\"✓ Converting to test parameters...\")\n        try:\n            test_params = self.convert_to_test(fuzzer_data)\n        except Exception as e:\n            print(f\"❌ Conversion failed: {e}\")\n            return False\n\n        # Generate fixture\n        print(\"✓ Generating blockchain test fixture...\")\n        try:\n            fixture = self.generate_fixture(test_params)\n        except Exception as e:\n            print(f\"❌ Fixture generation failed: {e}\")\n            import traceback\n\n            traceback.print_exc()\n            return False\n\n        # Extract test info\n        genesis_hash = fixture.get(\"genesisBlockHeader\", {}).get(\"hash\", \"unknown\")\n        pre_count = len(fixture.get(\"pre\", {}))\n        print(f\"   Genesis hash: {genesis_hash[:16]}...\")\n        print(f\"   Pre-state accounts: {pre_count}\")\n\n        # Verify with geth\n        print(\"\\n🔍 Verifying with go-ethereum...\")\n        result = self.verify_with_geth(fixture, geth_path, \"fuzzer_test\")\n\n        if result[\"pass\"]:\n            print(\"✅ Test PASSED!\")\n            if self.verbose:\n                print(f\"   Fixture: {result.get('fixture_path', 'N/A')}\")\n        else:\n            print(\"❌ Test FAILED!\")\n            print(f\"   Error: {result.get('error', 'Unknown')}\")\n            if self.verbose:\n                print(f\"   Output:\\n{result.get('output', '')}\")\n            if self.keep_fixtures:\n                print(f\"   Fixture saved: {result.get('fixture_path', 'N/A')}\")\n\n        # Print statistics\n        print(\"\\n📊 Statistics:\")\n        print(f\"   Tests generated: {self.stats['tests_generated']}\")\n        print(f\"   Tests passed: {self.stats['tests_passed']}\")\n        print(f\"   Tests failed: {self.stats['tests_failed']}\")\n\n        return result[\"pass\"]\n\n\ndef main() -> int:\n    \"\"\"Main entry point for production test.\"\"\"\n    parser = argparse.ArgumentParser(\n        description=\"Production test for fuzzer bridge with geth verification\"\n    )\n    parser.add_argument(\n        \"--fuzzer-output\",\n        required=True,\n        help=\"Path to fuzzer output JSON file\",\n    )\n    parser.add_argument(\"--geth-path\", required=True, help=\"Path to go-ethereum evm binary\")\n    parser.add_argument(\"--t8n-path\", help=\"Path to transition tool binary (optional)\")\n    parser.add_argument(\n        \"--keep-fixtures\",\n        action=\"store_true\",\n        help=\"Keep generated fixture files for debugging\",\n    )\n    parser.add_argument(\"--verbose\", action=\"store_true\", help=\"Verbose output\")\n\n    args = parser.parse_args()\n\n    # Check paths exist\n    if not Path(args.fuzzer_output).exists():\n        print(f\"❌ Fuzzer output not found: {args.fuzzer_output}\")\n        return 1\n\n    if not Path(args.geth_path).exists():\n        print(f\"❌ Geth binary not found: {args.geth_path}\")\n        return 1\n\n    # Run test\n    bridge = FuzzerBridge(t8n_path=args.t8n_path)\n\n    start_time = time.time()\n    success = bridge.run_full_test(args.fuzzer_output, args.geth_path)\n    elapsed = time.time() - start_time\n\n    print(f\"\\n⏱️  Completed in {elapsed:.2f} seconds\")\n\n    return 0 if success else 1\n\n\nif __name__ == \"__main__\":\n    sys.exit(main())\n"
  },
  {
    "path": "src/cli/gen_index.py",
    "content": "\"\"\"\nGenerate an index file of all the json fixtures in the specified directory.\n\"\"\"\n\nimport datetime\nimport json\nimport os\nfrom pathlib import Path\nfrom typing import List\n\nimport click\nimport rich\nfrom rich.progress import (\n    BarColumn,\n    Column,\n    Progress,\n    TaskProgressColumn,\n    TextColumn,\n    TimeElapsedColumn,\n)\n\nfrom ethereum_test_base_types import HexNumber\nfrom ethereum_test_fixtures.consume import IndexFile, TestCaseIndexFile\nfrom ethereum_test_fixtures.file import Fixtures\n\nfrom .hasher import HashableItem\n\n# Files and directories to exclude from index generation\nINDEX_EXCLUDED_FILES = frozenset({\"index.json\"})\nINDEX_EXCLUDED_PATH_PARTS = frozenset({\".meta\", \"pre_alloc\"})\n\n\ndef count_json_files_exclude_index(start_path: Path) -> int:\n    \"\"\"Return the number of fixture json files in the specified directory.\"\"\"\n    json_file_count = sum(\n        1\n        for file in start_path.rglob(\"*.json\")\n        if file.name not in INDEX_EXCLUDED_FILES\n        and not any(part in INDEX_EXCLUDED_PATH_PARTS for part in file.parts)\n    )\n    return json_file_count\n\n\n@click.command(\n    help=(\n        \"Generate an index file of all the json fixtures in the specified directory.\"\n        \"The index file is saved as 'index.json' in the specified directory.\"\n    )\n)\n@click.option(\n    \"--input\",\n    \"-i\",\n    \"input_dir\",\n    type=click.Path(exists=True, file_okay=False, dir_okay=True, readable=True),\n    required=True,\n    help=\"The input directory\",\n)\n@click.option(\n    \"--quiet\",\n    \"-q\",\n    \"quiet_mode\",\n    is_flag=True,\n    default=False,\n    expose_value=True,\n    help=\"Don't show the progress bar while processing fixture files.\",\n)\n@click.option(\n    \"--force\",\n    \"-f\",\n    \"force_flag\",\n    is_flag=True,\n    default=False,\n    expose_value=True,\n    help=\"Force re-generation of the index file, even if it already exists.\",\n)\ndef generate_fixtures_index_cli(input_dir: str, quiet_mode: bool, force_flag: bool) -> None:\n    \"\"\"\n    CLI wrapper to an index of all the fixtures in the specified directory.\n    \"\"\"\n    generate_fixtures_index(\n        Path(input_dir),\n        quiet_mode=quiet_mode,\n        force_flag=force_flag,\n    )\n\n\ndef generate_fixtures_index(\n    input_path: Path,\n    quiet_mode: bool = False,\n    force_flag: bool = False,\n) -> None:\n    \"\"\"\n    Generate an index file (index.json) of all the fixtures in specified dir.\n    \"\"\"\n    total_files = 0\n    if not os.path.isdir(input_path):  # caught by click if using via cli\n        raise FileNotFoundError(f\"The directory {input_path} does not exist.\")\n    if not quiet_mode:\n        total_files = count_json_files_exclude_index(input_path)\n\n    output_file = Path(f\"{input_path}/.meta/index.json\")\n    output_file.parent.mkdir(parents=True, exist_ok=True)  # no meta dir in <=v3.0.0\n    try:\n        root_hash = HashableItem.from_folder(folder_path=input_path).hash()\n    except (KeyError, TypeError):\n        root_hash = b\"\"  # just regenerate a new index file\n\n    if not force_flag and output_file.exists():\n        index_data: IndexFile\n        try:\n            with open(output_file, \"r\") as f:\n                index_data = IndexFile(**json.load(f))\n            if index_data.root_hash and index_data.root_hash == HexNumber(root_hash):\n                if not quiet_mode:\n                    rich.print(f\"Index file [bold cyan]{output_file}[/] is up-to-date.\")\n                return\n        except Exception as e:\n            rich.print(f\"Ignoring exception {e}\")\n            rich.print(f\"...generating a new index file [bold cyan]{output_file}[/]\")\n\n    filename_display_width = 25\n    with Progress(\n        TextColumn(\n            f\"[bold cyan]{{task.fields[filename]:<{filename_display_width}}}[/]\",\n            justify=\"left\",\n            table_column=Column(ratio=1),\n        ),\n        BarColumn(\n            complete_style=\"green3\",\n            finished_style=\"bold green3\",\n            table_column=Column(ratio=2),\n        ),\n        TaskProgressColumn(),\n        TimeElapsedColumn(),\n        expand=False,\n        disable=quiet_mode,\n    ) as progress:  # type: Progress\n        task_id = progress.add_task(\"[cyan]Processing files...\", total=total_files, filename=\"...\")\n        forks = set()\n        fixture_formats = set()\n        test_cases: List[TestCaseIndexFile] = []\n        for file in input_path.rglob(\"*.json\"):\n            if file.name in INDEX_EXCLUDED_FILES or any(\n                part in INDEX_EXCLUDED_PATH_PARTS for part in file.parts\n            ):\n                continue\n\n            try:\n                fixtures: Fixtures = Fixtures.model_validate_json(file.read_text())\n            except Exception as e:\n                rich.print(f\"[red]Error loading fixtures from {file}[/red]\")\n                raise e\n\n            relative_file_path = Path(file).absolute().relative_to(Path(input_path).absolute())\n            for fixture_name, fixture in fixtures.items():\n                fixture_fork = fixture.get_fork()\n                test_cases.append(\n                    TestCaseIndexFile(\n                        id=fixture_name,\n                        json_path=relative_file_path,\n                        # eest uses hash; ethereum/tests uses generatedTestHash\n                        fixture_hash=fixture.info.get(\"hash\")\n                        or f\"0x{fixture.info.get('generatedTestHash')}\",\n                        fork=fixture_fork,\n                        format=fixture.__class__,\n                        pre_hash=getattr(fixture, \"pre_hash\", None),\n                    )\n                )\n                if fixture_fork:\n                    forks.add(fixture_fork)\n                fixture_formats.add(fixture.format_name)\n\n            display_filename = file.name\n            if len(display_filename) > filename_display_width:\n                display_filename = display_filename[: filename_display_width - 3] + \"...\"\n            else:\n                display_filename = display_filename.ljust(filename_display_width)\n\n            progress.update(task_id, advance=1, filename=display_filename)\n\n        progress.update(\n            task_id,\n            completed=total_files,\n            filename=\"Indexing complete 🦄\".ljust(filename_display_width),\n        )\n\n    index = IndexFile(\n        test_cases=test_cases,\n        root_hash=root_hash,\n        created_at=datetime.datetime.now(),\n        test_count=len(test_cases),\n        forks=list(forks),\n        fixture_formats=list(fixture_formats),\n    )\n\n    with open(output_file, \"w\") as f:\n        f.write(index.model_dump_json(exclude_none=False, indent=2))\n\n\nif __name__ == \"__main__\":\n    generate_fixtures_index_cli()\n"
  },
  {
    "path": "src/cli/generate_checklist_stubs.py",
    "content": "\"\"\"CLI tool to generate mypy stub files for EIPChecklist classes.\"\"\"\n\nimport sys\nfrom pathlib import Path\n\nimport click\n\n\ndef has_nested_classes(obj: type) -> bool:\n    \"\"\"Check if an object has nested classes with _path attribute.\"\"\"\n    for attr_name in dir(obj):\n        if attr_name.startswith(\"_\"):\n            continue\n        attr = getattr(obj, attr_name)\n        if isinstance(attr, type) and hasattr(attr, \"_path\"):\n            return True\n    return False\n\n\ndef generate_class_stub(obj: type, class_name: str, indent: int = 0) -> list[str]:\n    \"\"\"Generate stub for a class and its nested classes.\"\"\"\n    lines = []\n    spaces = \"    \" * indent\n\n    # Get all attributes that are classes with _path\n    nested_classes = []\n    leaf_classes = []\n\n    for attr_name in dir(obj):\n        if attr_name.startswith(\"_\"):\n            continue\n\n        attr = getattr(obj, attr_name)\n        if isinstance(attr, type) and hasattr(attr, \"_path\"):\n            if has_nested_classes(attr):\n                nested_classes.append((attr_name, attr))\n            else:\n                leaf_classes.append(attr_name)\n\n    # Determine if this class itself should be callable\n    is_callable = class_name != \"EIPChecklist\"  # All classes except the root are callable\n\n    # Generate class declaration\n    if is_callable:\n        lines.append(f\"{spaces}class {class_name}(_CallableChecklistItem):\")\n    else:\n        lines.append(f\"{spaces}class {class_name}:\")\n\n    # If no nested content, add pass\n    if not nested_classes and not leaf_classes:\n        lines.append(f\"{spaces}    pass\")\n        return lines\n\n    # Generate leaf classes (final callable items)\n    for attr_name in sorted(leaf_classes):\n        lines.append(f\"{spaces}    {attr_name}: _CallableChecklistItem\")\n\n    # Add blank line if we have both leaf classes and nested classes\n    if leaf_classes and nested_classes:\n        lines.append(\"\")\n\n    # Generate nested classes\n    for i, (attr_name, attr_obj) in enumerate(sorted(nested_classes)):\n        if i > 0:  # Add blank line between nested classes\n            lines.append(\"\")\n        nested_lines = generate_class_stub(attr_obj, attr_name, indent + 1)\n        lines.extend(nested_lines)\n\n    return lines\n\n\n@click.command()\n@click.option(\n    \"--output\",\n    \"-o\",\n    type=click.Path(),\n    help=\"Output path for the stub file (default: auto-detect)\",\n)\n@click.option(\n    \"--dry-run\",\n    is_flag=True,\n    help=\"Print the generated stub content instead of writing to file\",\n)\ndef generate_checklist_stubs(output: str | None, dry_run: bool) -> None:\n    \"\"\"\n    Generate mypy stub files for EIPChecklist classes.\n\n    This is a development tool that generates .pyi stub files to help mypy\n    understand that EIPChecklist classes are callable, fixing type checking\n    issues.\n\n    Examples:\n      Generate stub files (auto-detect location):\n        uv run generate_checklist_stubs\n\n      Generate to specific location:\n        uv run generate_checklist_stubs --output /path/to/stubs.pyi\n\n      Preview content without writing:\n        uv run generate_checklist_stubs --dry-run\n\n    \"\"\"\n    try:\n        # Add src to path so we can import the module\n        src_path = Path(__file__).parent.parent\n        sys.path.insert(0, str(src_path))\n\n        from ethereum_test_checklists.eip_checklist import EIPChecklist\n\n        stub_content = '''\"\"\"\nType stubs for EIP checklist - auto-generated.\n\nDO NOT EDIT MANUALLY - This file is generated by running\n`uv run generate_checklist_stubs`\n\"\"\"\n\nfrom typing import Any, Callable, TypeVar, overload\n\nimport pytest\n\nF = TypeVar(\"F\", bound=Callable[..., Any])\n\nclass _CallableChecklistItem:\n    \"\"\"Base type for all callable checklist items.\"\"\"\n\n    @overload\n    def __call__(self, func: F) -> F: ...\n    @overload\n    def __call__(self, *, eip: Any = ..., **kwargs: Any) -> pytest.MarkDecorator: ...\n    def __str__(self) -> str: ...\n\n'''\n\n        # Generate the main EIPChecklist structure\n        lines = generate_class_stub(EIPChecklist, \"EIPChecklist\", indent=0)\n        stub_content += \"\\n\".join(lines) + \"\\n\"\n\n        if dry_run:\n            click.echo(\"Generated stub content:\")\n            click.echo(\"=\" * 50)\n            click.echo(stub_content)\n            return\n\n        # Determine output path\n        if output:\n            stub_path = Path(output)\n        else:\n            stub_path = src_path / \"ethereum_test_checklists\" / \"eip_checklist.pyi\"\n\n        # Write to the stub file\n        stub_path.parent.mkdir(parents=True, exist_ok=True)\n        stub_path.write_text(stub_content)\n\n        click.echo(f\"✅ Generated stub file: {stub_path}\")\n        click.echo(f\"📊 Total lines: {len(stub_content.splitlines())}\")\n\n        # Count classes for verification\n        class_count = stub_content.count(\"class \")\n        callable_count = stub_content.count(\": _CallableChecklistItem\")\n        click.echo(f\"🏗️  Classes: {class_count}, Callable items: {callable_count}\")\n\n        click.echo(\n            \"\\n💡 This stub file helps mypy understand that EIPChecklist classes are callable.\"\n        )\n        click.echo(\n            \"   You can now use @EIPChecklist.Opcode.Test.StackComplexOperations() \"\n            \"without type errors!\"\n        )\n\n    except ImportError as e:\n        click.echo(f\"❌ Error importing EIPChecklist: {e}\", err=True)\n        click.echo(\"💡 Make sure you're running this from the project root\", err=True)\n        sys.exit(1)\n    except Exception as e:\n        click.echo(f\"❌ Error generating stubs: {e}\", err=True)\n        sys.exit(1)\n\n\nif __name__ == \"__main__\":\n    generate_checklist_stubs()\n"
  },
  {
    "path": "src/cli/gentest/__init__.py",
    "content": "\"\"\"\nGenerate a Python blockchain test from a transaction hash.\n\nThis script can be used to generate Python source for a blockchain test case\nthat replays a mainnet or testnet transaction from its transaction hash.\n\nRequirements:\n\n1. Access to an archive node for the network where the transaction\n    originates. A provider may be used.\n2. The transaction hash of a type 0 transaction (currently only legacy\n    transactions are supported).\n\nExample Usage:\n\n1. Generate a test for a transaction with hash\n\n    ```console\n    uv run gentest \\\n    0xa41f343be7a150b740e5c939fa4d89f3a2850dbe21715df96b612fc20d1906be \\\n    tests/paris/test_0xa41f.py\n    ```\n\n2. Fill the test:\n\n    ```console\n    fill --fork=Paris tests/paris/test_0xa41f.py\n    ```\n\nLimitations:\n\n1. Only legacy transaction types (type 0) are currently supported.\n\"\"\"\n\nfrom .cli import generate\n\n__all__ = [\"generate\"]\n"
  },
  {
    "path": "src/cli/gentest/cli.py",
    "content": "\"\"\"\nCLI interface for generating blockchain test scripts.\n\nIt extracts a specified transaction and its required state from a\nblockchain network using the transaction hash and generates a Python\ntest script based on that information.\n\"\"\"\n\nfrom sys import stderr\nfrom typing import TextIO\n\nimport click\n\nfrom ethereum_test_base_types import Hash\n\nfrom .source_code_generator import get_test_source\nfrom .test_context_providers import StateTestProvider\n\n\n@click.command()\n@click.argument(\"transaction_hash\")\n@click.argument(\"output_file\", type=click.File(\"w\", lazy=True))\ndef generate(transaction_hash: str, output_file: TextIO) -> None:\n    \"\"\"\n    Extract a transaction and state from network to make blockchain test.\n\n    TRANSACTION_HASH is the hash of the transaction to be used.\n\n    OUTPUT_FILE is the path to the output python script.\n    \"\"\"\n    provider = StateTestProvider(transaction_hash=Hash(transaction_hash))\n\n    source = get_test_source(provider=provider, template_path=\"blockchain_test/transaction.py.j2\")\n    output_file.write(source)\n\n    print(\"Finished\", file=stderr)\n"
  },
  {
    "path": "src/cli/gentest/request_manager.py",
    "content": "\"\"\"\nA request manager Ethereum RPC calls.\n\nThe RequestManager handles transactions and block data retrieval from a remote\nEthereum node, utilizing Pydantic models to define the structure of\ntransactions and blocks.\n\nClasses:\n    RequestManager:    The main class for managing RPC requests and\n                       responses.\n    RemoteTransaction: A Pydantic model representing a transaction\n                       retrieved from the node.\n    RemoteBlock:       A Pydantic model representing a block retrieved from\n                       the node.\n\"\"\"\n\nfrom typing import Any, Dict\n\nfrom config import EnvConfig\nfrom ethereum_test_base_types import Hash\nfrom ethereum_test_rpc import BlockNumberType, DebugRPC, EthRPC\nfrom ethereum_test_rpc.rpc_types import TransactionByHashResponse\nfrom ethereum_test_types import Environment\n\n\nclass RPCRequest:\n    \"\"\"Interface for the RPC interaction with remote node.\"\"\"\n\n    node_url: str\n    headers: dict[str, str]\n\n    def __init__(self) -> None:\n        \"\"\"Initialize RequestManager with specific client config.\"\"\"\n        node_config = EnvConfig().remote_nodes[0]\n        self.node_url = str(node_config.node_url)\n        headers = node_config.rpc_headers\n        self.rpc = EthRPC(node_config.node_url, extra_headers=headers)\n        self.debug_rpc = DebugRPC(node_config.node_url, extra_headers=headers)\n\n    def eth_get_transaction_by_hash(self, transaction_hash: Hash) -> TransactionByHashResponse:\n        \"\"\"Get transaction data.\"\"\"\n        res = self.rpc.get_transaction_by_hash(transaction_hash)\n        assert res is not None, \"Transaction not found\"\n        block_number = res.block_number\n        assert block_number is not None, \"Transaction does not seem to be included in any block\"\n\n        return res\n\n    def eth_get_block_by_number(self, block_number: BlockNumberType) -> Environment:\n        \"\"\"Get block by number.\"\"\"\n        res = self.rpc.get_block_by_number(block_number)\n        assert res is not None, \"Block not found\"\n\n        return Environment(\n            fee_recipient=res[\"miner\"],\n            number=res[\"number\"],\n            difficulty=res[\"difficulty\"],\n            gas_limit=res[\"gasLimit\"],\n            timestamp=res[\"timestamp\"],\n        )\n\n    def debug_trace_call(\n        self, transaction: TransactionByHashResponse\n    ) -> Dict[str, Dict[Any, Any]]:\n        \"\"\"Get pre-state required for transaction.\"\"\"\n        assert transaction.sender is not None\n        assert transaction.to is not None\n\n        result = self.debug_rpc.trace_call(\n            {\n                \"from\": transaction.sender.hex(),\n                \"to\": transaction.to.hex(),\n                \"data\": transaction.data.hex(),\n            },\n            f\"{transaction.block_number}\",\n        )\n        assert result is not None, \"trace_call returned None\"\n        return result\n"
  },
  {
    "path": "src/cli/gentest/source_code_generator.py",
    "content": "\"\"\"\nPytest source code generator.\n\nThis module maps a test provider instance to pytest source code.\n\"\"\"\n\nimport subprocess\nimport sys\nimport tempfile\nfrom pathlib import Path\n\nimport jinja2\n\nfrom config import AppConfig\n\nfrom .test_context_providers import Provider\n\ntemplate_loader = jinja2.PackageLoader(\"cli.gentest\")\ntemplate_env = jinja2.Environment(loader=template_loader, keep_trailing_newline=True)\n\n# This filter maps python objects to string\ntemplate_env.filters[\"stringify\"] = lambda value: repr(value)\n\n\n# generates a formatted pytest source code by writing provided data on a given\n# template.\ndef get_test_source(provider: Provider, template_path: str) -> str:\n    \"\"\"\n    Generate formatted pytest source code by rendering a template with provided\n    data.\n\n    This function uses the given template path to create a pytest-compatible\n    source code string. It retrieves context data from the specified provider\n    and applies it to the template.\n\n    Args:\n      provider: An object that provides the necessary context for rendering\n                the template.\n      template_path (str): The path to the Jinja2 template file\n                           used to generate tests.\n\n    Returns:\n        str: The formatted pytest source code.\n\n    \"\"\"\n    template = template_env.get_template(template_path)\n    rendered_template = template.render(provider.get_context())\n    # return rendered_template\n    return format_code(rendered_template)\n\n\ndef format_code(code: str) -> str:\n    \"\"\"\n    Format the provided Python code using the Black code formatter.\n\n    This function writes the given code to a temporary Python file, formats it\n    using the Black formatter, and returns the formatted code as a string.\n\n    Args:\n      code (str): The Python code to be formatted.\n\n    Returns:\n        str: The formatted Python code.\n\n    \"\"\"\n    # Create a temporary python file\n    with tempfile.NamedTemporaryFile(suffix=\".py\") as temp_file:\n        # Write the code to the temporary file\n        temp_file.write(code.encode(\"utf-8\"))\n        # Ensure the file is written\n        temp_file.flush()\n\n        # Create a Path object for the input file\n        input_file_path = Path(temp_file.name)\n\n        # Get the path to the formatter executable in the virtual environment\n        if sys.platform.startswith(\"win\"):\n            formatter_path = Path(sys.prefix) / \"Scripts\" / \"ruff.exe\"\n        else:\n            formatter_path = Path(sys.prefix) / \"bin\" / \"ruff\"\n\n        # Call ruff to format the file\n        config_path = AppConfig().ROOT_DIR / \"pyproject.toml\"\n\n        try:\n            subprocess.run(\n                [\n                    str(formatter_path),\n                    \"format\",\n                    str(input_file_path),\n                    \"--quiet\",\n                    \"--config\",\n                    str(config_path),\n                ],\n                check=True,\n            )\n        except subprocess.CalledProcessError as e:\n            raise Exception(f\"Error formatting code using formatter '{formatter_path}'\") from e\n\n        # Return the formatted source code\n        return input_file_path.read_text()\n"
  },
  {
    "path": "src/cli/gentest/templates/blockchain_test/transaction.py.j2",
    "content": "\"\"\"\nGentest autogenerated test from `tx.hash`:\n{{ tx_hash }}\nhttps://etherscan.io/tx/{{tx_hash}}.\n\"\"\"\n\nfrom typing import Dict\n\nimport pytest\n\nfrom ethereum_test_tools import Account, Environment, StateTestFiller, Storage, Transaction\n\nREFERENCE_SPEC_GIT_PATH = \"N/A\"\nREFERENCE_SPEC_VERSION = \"N/A\"\n\n\n@pytest.fixture\ndef env():  # noqa: D103\n    return {{ environment  | stringify }}\n\n@pytest.mark.valid_from(\"Paris\")\ndef test_transaction_{{ tx_hash }}(\n    env: Environment,\n    state_test: StateTestFiller,\n):\n    \"\"\"\n    Gentest autogenerated test for tx.hash:\n    {{ tx_hash }}.\n    \"\"\"\n    pre = {{ pre_state | stringify }}\n\n    post: Dict = {}\n\n    tx = {{ transaction | stringify }}\n\n    state_test(env=env, pre=pre, post=post, tx=tx)"
  },
  {
    "path": "src/cli/gentest/test_context_providers.py",
    "content": "\"\"\"\nVarious providers which generate contexts required to create test scripts.\n\nClasses:\n  Provider: An provider generates required context for creating a\n            test.\n  BlockchainTestProvider: The BlockchainTestProvider takes a transaction\n                          hash and creates required context to create a test.\n\nExample:\n  provider = BlockchainTestContextProvider(transaction=transaction)\n  context = provider.get_context()\n\n\"\"\"\n\nfrom abc import ABC, abstractmethod\nfrom sys import stderr\nfrom typing import Any, Dict, Optional\n\nfrom pydantic import BaseModel\n\nfrom ethereum_test_base_types import Account, Hash\nfrom ethereum_test_rpc.rpc_types import TransactionByHashResponse\nfrom ethereum_test_tools import Environment, Transaction\n\nfrom .request_manager import RPCRequest\n\n\nclass Provider(ABC, BaseModel):\n    \"\"\"An provider generates required context for creating a test.\"\"\"\n\n    @abstractmethod\n    def get_context(self) -> Dict:\n        \"\"\"Get the context for generating a test.\"\"\"\n\n    pass\n\n\nclass StateTestProvider(Provider):\n    \"\"\"Provides context required to generate a `state_test` using pytest.\"\"\"\n\n    transaction_hash: Hash\n    block: Optional[Environment] = None\n    transaction_response: Optional[TransactionByHashResponse] = None\n    state: Optional[Dict[str, Dict]] = None\n\n    def _make_rpc_calls(self) -> None:\n        \"\"\"Make RPC calls to fetch transaction and block data.\"\"\"\n        request = RPCRequest()\n        print(\n            f\"Perform tx request: eth_get_transaction_by_hash({self.transaction_hash})\",\n            file=stderr,\n        )\n        self.transaction_response = request.eth_get_transaction_by_hash(self.transaction_hash)\n\n        print(\"Perform debug_trace_call\", file=stderr)\n        self.state = request.debug_trace_call(self.transaction_response)\n\n        print(\"Perform eth_get_block_by_number\", file=stderr)\n        assert self.transaction_response.block_number is not None\n        self.block = request.eth_get_block_by_number(int(self.transaction_response.block_number))\n\n        print(\"Generate py test\", file=stderr)\n\n    def _get_environment(self) -> Environment:\n        assert self.block is not None\n        return self.block\n\n    def _get_pre_state(self) -> Dict[str, Account]:\n        assert self.state is not None\n        assert self.transaction_response is not None\n\n        pre_state: Dict[str, Account] = {}\n        for address, account_data in self.state.items():\n            # TODO: Check if this is required. Ideally,\n            # the pre-state tracer should have the correct\n            # values without requiring any additional modifications.\n            if address == self.transaction_response.sender:\n                account_data[\"nonce\"] = self.transaction_response.nonce\n\n            pre_state[address] = Account(**account_data)\n        return pre_state\n\n    def _get_transaction(self) -> Transaction:\n        assert self.transaction_response is not None\n        # Validate the RPC TransactionHashResponse and convert it to a\n        # Transaction instance.\n        return Transaction.model_validate(self.transaction_response.model_dump())\n\n    def get_context(self) -> Dict[str, Any]:\n        \"\"\"\n        Get the context for generating a blockchain test.\n\n        Returns:\n            Dict[str, Any]: A dictionary containing environment,\n                            pre-state, a transaction and its hash.\n\n        \"\"\"\n        self._make_rpc_calls()\n        return {\n            \"environment\": self._get_environment(),\n            \"pre_state\": self._get_pre_state(),\n            \"transaction\": self._get_transaction(),\n            \"tx_hash\": self.transaction_hash,\n        }\n"
  },
  {
    "path": "src/cli/gentest/test_providers.py",
    "content": "\"\"\"\nContains various providers which generates context required to create test\nscripts.\n\nClasses:\n  BlockchainTestProvider: The BlockchainTestProvider class takes\n                          information about a block, a transaction, and the\n                          associated state, and provides methods to generate\n                          various elements needed for testing, such as module\n                          docstrings, test names, and pre-state items.\n\nExample:\n  provider = BlockchainTestProvider(\n    block=block,\n    transaction=transaction,\n    state=state\n  )\n  context = provider.get_context()\n\n\"\"\"\n\nfrom typing import Any, Dict\n\nfrom pydantic import BaseModel\n\nfrom ethereum_test_base_types import Account, Address, ZeroPaddedHexNumber\nfrom ethereum_test_rpc.rpc_types import TransactionByHashResponse\nfrom ethereum_test_types import Environment\n\n\nclass BlockchainTestProvider(BaseModel):\n    \"\"\"\n    Provides context required to generate a `blockchain_test` using pytest.\n    \"\"\"\n\n    block: Environment\n    transaction: TransactionByHashResponse\n    state: Dict[Address, Account]\n\n    def _get_environment_kwargs(self) -> str:\n        env_str = \"\"\n        pad = \"        \"\n        for field, value in self.block.dict().items():\n            env_str += (\n                f'{pad}{field}=\"{value}\",\\n' if field == \"coinbase\" else f\"{pad}{field}={value},\\n\"\n            )\n\n        return env_str\n\n    # TODO: Output should be dict. Formatting should happen in the template.\n    def _get_pre_state_items(self) -> str:\n        # Print a nice .py storage pre\n        pad = \"            \"\n        state_str = \"\"\n        for address, account_obj in self.state.items():\n            state_str += f'        \"{address}\": Account(\\n'\n            state_str += f\"{pad}balance={str(account_obj.balance)},\\n\"\n            if address == self.transaction.sender:\n                state_str += f\"{pad}nonce={self.transaction.nonce},\\n\"\n            else:\n                state_str += f\"{pad}nonce={str(account_obj.nonce)},\\n\"\n\n            if account_obj.code is None:\n                state_str += f'{pad}code=\"0x\",\\n'\n            else:\n                state_str += f'{pad}code=\"{str(account_obj.code)}\",\\n'\n            state_str += pad + \"storage={\\n\"\n\n            if account_obj.storage is not None:\n                for record, value in account_obj.storage.root.items():\n                    pad_record = ZeroPaddedHexNumber(record)\n                    pad_value = ZeroPaddedHexNumber(value)\n                    state_str += f'{pad}    \"{pad_record}\" : \"{pad_value}\",\\n'\n\n            state_str += pad + \"}\\n\"\n            state_str += \"        ),\\n\"\n        return state_str\n\n    # TODO: Output should be dict. Formatting should happen in the template.\n    def _get_transaction_items(self) -> str:\n        \"\"\"Print legacy transaction in .py.\"\"\"\n        pad = \"            \"\n        tr_str = \"\"\n        quoted_fields_array = [\"data\", \"to\"]\n        hex_fields_array = [\"v\", \"r\", \"s\"]\n        legacy_fields_array = [\n            \"ty\",\n            \"chain_id\",\n            \"nonce\",\n            \"gas_price\",\n            \"protected\",\n            \"gas_limit\",\n            \"value\",\n        ]\n        for field, value in iter(self.transaction):\n            if value is None:\n                continue\n\n            if field in legacy_fields_array:\n                tr_str += f\"{pad}{field}={value},\\n\"\n\n            if field in quoted_fields_array:\n                tr_str += f'{pad}{field}=\"{value}\",\\n'\n\n            if field in hex_fields_array:\n                tr_str += f\"{pad}{field}={hex(value)},\\n\"\n\n        return tr_str\n\n    def get_context(self) -> Dict[str, Any]:\n        \"\"\"\n        Get the context for generating a blockchain test.\n\n        Returns:\n          Dict[str, Any]: A dictionary containing module docstring, test\n                          name, test docstring, environment kwargs,\n                          pre-state items, and transaction items.\n\n        \"\"\"\n        return {\n            \"environment_kwargs\": self._get_environment_kwargs(),\n            \"pre_state_items\": self._get_pre_state_items(),\n            \"transaction_items\": self._get_transaction_items(),\n            \"tx_hash\": self.transaction.hash,\n        }\n"
  },
  {
    "path": "src/cli/gentest/tests/__init__.py",
    "content": "\"\"\"Test cases for the `generate` CLI.\"\"\"\n"
  },
  {
    "path": "src/cli/gentest/tests/test_cli.py",
    "content": "\"\"\"Tests for the gentest CLI command.\"\"\"\n\nfrom pathlib import Path\nfrom typing import Any\n\nimport pytest\nfrom click.testing import CliRunner\n\nfrom ethereum_test_base_types import Account\nfrom ethereum_test_tools import Environment, Storage, Transaction\n\nfrom ..cli import generate\nfrom ..test_context_providers import StateTestProvider\n\ntransactions_by_type = {\n    0: {\n        \"environment\": Environment(\n            fee_recipient=\"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            gas_limit=9916577,\n            number=9974504,\n            timestamp=1588257377,\n            difficulty=2315196811272822,\n            parent_ommers_hash=\"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347\",\n            extra_data=b\"\\x00\",\n        ),\n        \"pre_state\": {\n            \"0x5a0b54d5dc17e0aadc383d2db43b0a0d3e029c4c\": Account(\n                nonce=6038603, balance=23760714652307793035, code=b\"\", storage=Storage(root={})\n            ),\n            \"0x8a4a4d396a06cba2a7a4a73245991de40cdec289\": Account(\n                nonce=2, balance=816540000000000000, code=b\"\", storage=Storage(root={})\n            ),\n            \"0xc6d96786477f82491bfead8f00b8294688f77abc\": Account(\n                nonce=25, balance=29020266497911578313, code=b\"\", storage=Storage(root={})\n            ),\n        },\n        \"transaction\": Transaction(\n            ty=0,\n            chain_id=1,\n            nonce=2,\n            gas_price=10000000000,\n            gas_limit=21000,\n            to=\"0xc6d96786477f82491bfead8f00b8294688f77abc\",\n            value=668250000000000000,\n            data=b\"\",\n            v=38,\n            r=57233334052658009540326312124836763247359579695589124499839562829147086216092,\n            s=49687643984819828983661675232336138386174947240467726918882054280625462464348,\n            sender=\"0x8a4a4d396a06cba2a7a4a73245991de40cdec289\",\n        ),\n    },\n    2: {\n        \"environment\": Environment(\n            fee_recipient=\"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            gas_limit=30172625,\n            number=21758000,\n            timestamp=1738489319,\n            parent_ommers_hash=\"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347\",\n            extra_data=b\"\\x00\",\n        ),\n        \"pre_state\": {\n            \"0x24d6c74d811cfde65995ed26fd08af445f8aab06\": Account(\n                nonce=1011, balance=139840767390685635650, code=b\"\", storage=Storage(root={})\n            ),\n            \"0xd5fbda4c79f38920159fe5f22df9655fde292d47\": Account(\n                nonce=553563, balance=162510989019530720334, code=b\"\", storage=Storage(root={})\n            ),\n            \"0xe2e29f9a85cfecb9cdaa83a81c7aa2792f24d93f\": Account(\n                nonce=104, balance=553317651330968100, code=b\"\", storage=Storage(root={})\n            ),\n        },\n        \"transaction\": Transaction(\n            ty=2,\n            chain_id=1,\n            nonce=553563,\n            max_priority_fee_per_gas=1900000,\n            max_fee_per_gas=3992652948,\n            gas_limit=63000,\n            to=\"0xe2e29f9a85cfecb9cdaa83a81c7aa2792f24d93f\",\n            value=221305417266040400,\n            v=1,\n            r=23565967349511399087318407428036702220029523660288023156323795583373026415631,\n            s=9175853102116430015855393834807954374677057556696757715994220939907579927771,\n            sender=\"0xd5fbda4c79f38920159fe5f22df9655fde292d47\",\n        ),\n    },\n}\n\n\n@pytest.fixture\ndef transaction_hash(tx_type: int) -> str:  # noqa: D103\n    return str(transactions_by_type[tx_type][\"transaction\"].hash)  # type: ignore\n\n\n@pytest.mark.parametrize(\"tx_type\", list(transactions_by_type.keys()))\ndef test_tx_type(\n    pytester: pytest.Pytester,\n    tmp_path: Path,\n    monkeypatch: Any,\n    tx_type: int,\n    transaction_hash: str,\n    default_t8n: Any,\n) -> None:\n    \"\"\"Generates a test case for any transaction type.\"\"\"\n    # This test is run in a CI environment, where connection to a\n    # node could be unreliable. Therefore, we mock the RPC request to avoid any\n    # network issues. This is done by patching the `get_context` method of the\n    # `StateTestProvider`.\n    runner = CliRunner()\n    tmp_path_tests = tmp_path / \"tests\"\n    tmp_path_tests.mkdir()\n    tmp_path_output = tmp_path / \"output\"\n    tmp_path_output.mkdir()\n    generated_py_file = str(tmp_path_tests / f\"gentest_type_{tx_type}.py\")\n\n    tx = transactions_by_type[tx_type]\n\n    def get_mock_context(self: StateTestProvider) -> dict:\n        del self\n        return tx\n\n    monkeypatch.setattr(StateTestProvider, \"get_context\", get_mock_context)\n\n    ## Generate ##\n    gentest_result = runner.invoke(generate, [transaction_hash, generated_py_file])\n    assert gentest_result.exit_code == 0\n\n    ## Fill ##\n    with open(generated_py_file, \"r\") as f:\n        pytester.makepyfile(f.read())\n    pytester.copy_example(name=\"src/cli/pytest_commands/pytest_ini_files/pytest-fill.ini\")\n\n    args = [\n        \"-c\",\n        \"pytest-fill.ini\",\n        \"-m\",\n        \"state_test\",\n        \"--fork\",\n        \"Cancun\",\n        \"--t8n-server-url\",\n        default_t8n.server_url,\n    ]\n    result = pytester.runpytest(\"-v\", *args)\n    assert result.ret == pytest.ExitCode.OK, f\"Fill command failed:\\n{result}\"\n"
  },
  {
    "path": "src/cli/hasher.py",
    "content": "\"\"\"Simple CLI tool to hash a directory of JSON fixtures.\"\"\"\n\nimport hashlib\nimport json\nfrom dataclasses import dataclass, field\nfrom enum import IntEnum, auto\nfrom pathlib import Path\nfrom typing import Dict, List, Optional\n\nimport click\n\n\nclass HashableItemType(IntEnum):\n    \"\"\"Represents the type of a hashable item.\"\"\"\n\n    FOLDER = 0\n    FILE = auto()\n    TEST = auto()\n\n\n@dataclass(kw_only=True)\nclass HashableItem:\n    \"\"\"\n    Represents an item that can be hashed containing other items that can be\n    hashed as well.\n    \"\"\"\n\n    type: HashableItemType\n    parents: List[str] = field(default_factory=list)\n    root: Optional[bytes] = None\n    items: Optional[Dict[str, \"HashableItem\"]] = None\n\n    def hash(self) -> bytes:\n        \"\"\"Return the hash of the item.\"\"\"\n        if self.root is not None:\n            return self.root\n        if self.items is None:\n            raise ValueError(\"No items to hash\")\n        all_hash_bytes = b\"\"\n        for _, item in sorted(self.items.items()):\n            item_hash_bytes = item.hash()\n            all_hash_bytes += item_hash_bytes\n        return hashlib.sha256(all_hash_bytes).digest()\n\n    def print(\n        self, *, name: str, level: int = 0, print_type: Optional[HashableItemType] = None\n    ) -> None:\n        \"\"\"Print the hash of the item and sub-items.\"\"\"\n        next_level = level\n        print_name = name\n        if level == 0 and self.parents:\n            separator = \"::\" if self.type == HashableItemType.TEST else \"/\"\n            print_name = f\"{'/'.join(self.parents)}{separator}{name}\"\n        if print_type is None or self.type >= print_type:\n            next_level += 1\n            print(f\"{' ' * level}{print_name}: 0x{self.hash().hex()}\")\n\n        if self.items is not None:\n            for key, item in sorted(self.items.items()):\n                item.print(name=key, level=next_level, print_type=print_type)\n\n    @classmethod\n    def from_json_file(cls, *, file_path: Path, parents: List[str]) -> \"HashableItem\":\n        \"\"\"Create a hashable item from a JSON file.\"\"\"\n        items = {}\n        with file_path.open(\"r\") as f:\n            data = json.load(f)\n        for key, item in sorted(data.items()):\n            if not isinstance(item, dict):\n                raise TypeError(f\"Expected dict, got {type(item)} for {key}\")\n            if \"_info\" not in item:\n                raise KeyError(f\"Expected '_info' in {key}, json file: {file_path.name}\")\n\n            # EEST uses 'hash'; ethereum/tests use 'generatedTestHash'\n            hash_value = item[\"_info\"].get(\"hash\") or item[\"_info\"].get(\"generatedTestHash\")\n            if hash_value is None:\n                raise KeyError(f\"Expected 'hash' or 'generatedTestHash' in {key}\")\n\n            if not isinstance(hash_value, str):\n                raise TypeError(f\"Expected hash to be a string in {key}, got {type(hash_value)}\")\n\n            item_hash_bytes = bytes.fromhex(hash_value[2:])\n            items[key] = cls(\n                type=HashableItemType.TEST,\n                root=item_hash_bytes,\n                parents=parents + [file_path.name],\n            )\n        return cls(type=HashableItemType.FILE, items=items, parents=parents)\n\n    @classmethod\n    def from_folder(\n        cls, *, folder_path: Path, parents: Optional[List[str]] = None\n    ) -> \"HashableItem\":\n        \"\"\"Create a hashable item from a folder.\"\"\"\n        if parents is None:\n            parents = []\n        items = {}\n        for file_path in sorted(folder_path.iterdir()):\n            if \".meta\" in file_path.parts:\n                continue\n            if file_path.is_file() and file_path.suffix == \".json\":\n                item = cls.from_json_file(\n                    file_path=file_path, parents=parents + [folder_path.name]\n                )\n                items[file_path.name] = item\n            elif file_path.is_dir():\n                item = cls.from_folder(folder_path=file_path, parents=parents + [folder_path.name])\n                items[file_path.name] = item\n        return cls(type=HashableItemType.FOLDER, items=items, parents=parents)\n\n\n@click.command()\n@click.argument(\n    \"folder_path_str\", type=click.Path(exists=True, file_okay=False, dir_okay=True, readable=True)\n)\n@click.option(\"--files\", \"-f\", is_flag=True, help=\"Print hash of files\")\n@click.option(\"--tests\", \"-t\", is_flag=True, help=\"Print hash of tests\")\n@click.option(\"--root\", \"-r\", is_flag=True, help=\"Only print hash of root folder\")\ndef main(folder_path_str: str, files: bool, tests: bool, root: bool) -> None:\n    \"\"\"Hash folders of JSON fixtures and print their hashes.\"\"\"\n    folder_path: Path = Path(folder_path_str)\n    item = HashableItem.from_folder(folder_path=folder_path)\n\n    if root:\n        print(f\"0x{item.hash().hex()}\")\n        return\n\n    print_type: Optional[HashableItemType] = None\n    if files:\n        print_type = HashableItemType.FILE\n    elif tests:\n        print_type = HashableItemType.TEST\n\n    item.print(name=folder_path.name, print_type=print_type)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "src/cli/input/__init__.py",
    "content": "\"\"\"A standard interface for interactive CLI inputs.\"\"\"\n\nfrom .questionary_input_repository import QuestionaryInputRepository\n\n# Instantiate the input repository\ninput_repository = QuestionaryInputRepository()\n\n\ndef input_text(question: str) -> str:\n    \"\"\"\n    Ask a simple text input question.\n\n    Args:\n        question (str): The question to ask.\n\n    Returns:\n        str: The user's response.\n\n    \"\"\"\n    return input_repository.input_text(question)\n\n\ndef input_password(question: str) -> str:\n    \"\"\"\n    Ask a password input question (hidden text).\n\n    Args:\n        question (str): The question to ask.\n\n    Returns:\n        str: The user's response (password).\n\n    \"\"\"\n    return input_repository.input_password(question)\n\n\ndef input_select(question: str, choices: list) -> str:\n    \"\"\"\n    Ask a single-choice question from a list of options.\n\n    Args:\n        question (str): The question to ask.\n        choices (list): A list of options for the user to choose from.\n\n    Returns:\n        str: The selected choice.\n\n    \"\"\"\n    return input_repository.input_select(question, choices)\n\n\ndef input_checkbox(question: str, choices: list) -> list:\n    \"\"\"\n    Ask a multi-choice question and return a list of selected choices.\n\n    Args:\n        question (str): The question to ask.\n        choices (list): A list of options for the user to choose from.\n\n    Returns:\n        list: The list of selected choices.\n\n    \"\"\"\n    return input_repository.input_checkbox(question, choices)\n\n\ndef input_confirm(question: str) -> bool:\n    \"\"\"\n    Ask a yes/no confirmation question.\n\n    Args:\n        question (str): The question to ask.\n\n    Returns:\n        bool: True for 'yes', False for 'no'.\n\n    \"\"\"\n    return input_repository.input_confirm(question)\n"
  },
  {
    "path": "src/cli/input/input_repository.py",
    "content": "\"\"\"An abstract base class for handling interactive CLI inputs.\"\"\"\n\nfrom abc import ABC, abstractmethod\nfrom typing import List\n\n\nclass InputRepository(ABC):\n    \"\"\"\n    Abstract base class for input handling. This class defines the interface\n    for different input types that can be swapped out.\n    \"\"\"\n\n    @abstractmethod\n    def input_text(self, question: str) -> str:\n        \"\"\"Ask a text input question.\"\"\"\n        pass\n\n    @abstractmethod\n    def input_password(self, question: str) -> str:\n        \"\"\"Ask a password input question (hidden).\"\"\"\n        pass\n\n    @abstractmethod\n    def input_select(self, question: str, choices: List[str]) -> str:\n        \"\"\"Ask a single-choice selection question.\"\"\"\n        pass\n\n    @abstractmethod\n    def input_checkbox(self, question: str, choices: List[str]) -> List[str]:\n        \"\"\"Ask a multi-choice question.\"\"\"\n        pass\n\n    @abstractmethod\n    def input_confirm(self, question: str) -> bool:\n        \"\"\"Ask a yes/no confirmation question.\"\"\"\n        pass\n"
  },
  {
    "path": "src/cli/input/questionary_input_repository.py",
    "content": "\"\"\"\nInteractive CLI inputs using questionary library.\nSee: https://questionary.readthedocs.io/.\n\"\"\"\n\nfrom questionary import checkbox, confirm, password, select, text\n\nfrom .input_repository import InputRepository\n\n\nclass QuestionaryInputRepository(InputRepository):\n    \"\"\"\n    Repository for handling various types of user inputs using the Questionary\n    library.\n    \"\"\"\n\n    def input_text(self, question: str) -> str:\n        \"\"\"Ask a text input question.\"\"\"\n        return text(message=question).ask()\n\n    def input_password(self, question: str) -> str:\n        \"\"\"Ask a password input question (hidden).\"\"\"\n        return password(message=question).ask()\n\n    def input_select(self, question: str, choices: list) -> str:\n        \"\"\"Ask a single-choice selection question.\"\"\"\n        return select(message=question, choices=choices).ask()\n\n    def input_checkbox(self, question: str, choices: list) -> list:\n        \"\"\"Ask a multi-choice question.\"\"\"\n        return checkbox(message=question, choices=choices).ask()\n\n    def input_confirm(self, question: str) -> bool:\n        \"\"\"Ask a yes/no confirmation question.\"\"\"\n        return confirm(message=question).ask()\n"
  },
  {
    "path": "src/cli/modify_static_test_gas_limits.py",
    "content": "\"\"\"\nCommand to scan and overwrite the static tests' gas limits to new optimized\nvalue given in the input file.\n\"\"\"\n\nimport json\nimport re\nfrom pathlib import Path\nfrom typing import Dict, List, Set\n\nimport click\nimport yaml\n\nfrom ethereum_test_base_types import EthereumTestRootModel, HexNumber, ZeroPaddedHexNumber\nfrom ethereum_test_specs import StateStaticTest\nfrom pytest_plugins.filler.static_filler import NoIntResolver\n\n\nclass GasLimitDict(EthereumTestRootModel):\n    \"\"\"Formatted JSON file with new gas limits in each test.\"\"\"\n\n    root: Dict[str, int | None]\n\n    def unique_files(self) -> Set[Path]:\n        \"\"\"Return a list of unique test files.\"\"\"\n        files = set()\n        for test in self.root:\n            filename, _ = test.split(\"::\")\n            files.add(Path(filename))\n        return files\n\n    def get_tests_by_file_path(self, file: Path | str) -> Set[str]:\n        \"\"\"Return a list of all tests that belong to a given file path.\"\"\"\n        tests = set()\n        for test in self.root:\n            current_file, _ = test.split(\"::\")\n            if current_file == str(file):\n                tests.add(test)\n        return tests\n\n\nclass StaticTestFile(EthereumTestRootModel):\n    \"\"\"A static test file.\"\"\"\n\n    root: Dict[str, StateStaticTest]\n\n\ndef _check_fixtures(\n    *,\n    input_path: Path,\n    max_gas_limit: int | None,\n    dry_run: bool,\n    verbose: bool,\n) -> None:\n    \"\"\"\n    Perform checks on fixtures in the specified directory.\n    \"\"\"\n    # Load the test dictionary from the input JSON file\n    test_dict = GasLimitDict.model_validate_json(input_path.read_text())\n\n    # Iterate through each unique test file that needs modification\n    for test_file in test_dict.unique_files():\n        tests = test_dict.get_tests_by_file_path(test_file)\n        test_file_contents = test_file.read_text()\n\n        # Parse the test file based on its format (YAML or JSON)\n        if test_file.suffix == \".yml\" or test_file.suffix == \".yaml\":\n            loaded_yaml = yaml.load(test_file.read_text(), Loader=NoIntResolver)\n            try:\n                parsed_test_file = StaticTestFile.model_validate(loaded_yaml)\n            except Exception as e:\n                raise Exception(\n                    f\"Unable to parse file {test_file}: {json.dumps(loaded_yaml, indent=2)}\"\n                ) from e\n        else:\n            parsed_test_file = StaticTestFile.model_validate_json(test_file_contents)\n\n        # Validate that the file contains exactly one test\n        assert len(parsed_test_file.root) == 1, f\"File {test_file} contains more than one test.\"\n        _, parsed_test = parsed_test_file.root.popitem()\n\n        # Skip files with multiple gas limit values\n        if len(parsed_test.transaction.gas_limit) != 1:\n            if dry_run or verbose:\n                print(\n                    f\"Test file {test_file} contains more than one test (after parsing), skipping.\"\n                )\n            continue\n\n        # Get the current gas limit and check if modification is needed\n        current_gas_limit = int(parsed_test.transaction.gas_limit[0])\n        if max_gas_limit is not None and current_gas_limit <= max_gas_limit:\n            # Nothing to do, finished\n            for test in tests:\n                test_dict.root.pop(test)\n            continue\n\n        # Collect valid gas values for this test file\n        gas_values: List[int] = []\n        for gas_value in [test_dict.root[test] for test in tests]:\n            if gas_value is None:\n                if dry_run or verbose:\n                    print(\n                        f\"Test file {test_file} contains at least one test that cannot \"\n                        \"be updated, skipping.\"\n                    )\n                continue\n            else:\n                gas_values.append(gas_value)\n\n        # Calculate the new gas limit (rounded up to nearest 100,000)\n        new_gas_limit = max(gas_values)\n        modified_new_gas_limit = ((new_gas_limit // 100000) + 1) * 100000\n        if verbose:\n            print(\n                f\"Changing exact new gas limit ({new_gas_limit}) to \"\n                f\"rounded ({modified_new_gas_limit})\"\n            )\n        new_gas_limit = modified_new_gas_limit\n\n        # Check if the new gas limit exceeds the maximum allowed\n        if max_gas_limit is not None and new_gas_limit > max_gas_limit:\n            if dry_run or verbose:\n                print(f\"New gas limit ({new_gas_limit}) exceeds max ({max_gas_limit})\")\n            continue\n\n        if dry_run or verbose:\n            print(f\"Test file {test_file} requires modification ({new_gas_limit})\")\n\n        # Find the appropriate pattern to replace the current gas limit\n        potential_types = [int, HexNumber, ZeroPaddedHexNumber]\n        substitute_pattern = None\n        substitute_string = None\n\n        attempted_patterns = []\n\n        for current_type in potential_types:\n            potential_substitute_pattern = rf\"\\b{current_type(current_gas_limit)}\\b\"\n            potential_substitute_string = f\"{current_type(new_gas_limit)}\"\n            if (\n                re.search(\n                    potential_substitute_pattern, test_file_contents, flags=re.RegexFlag.MULTILINE\n                )\n                is not None\n            ):\n                substitute_pattern = potential_substitute_pattern\n                substitute_string = potential_substitute_string\n                break\n\n            attempted_patterns.append(potential_substitute_pattern)\n\n        # Validate that a replacement pattern was found\n        assert substitute_pattern is not None, (\n            f\"Current gas limit ({attempted_patterns}) not found in {test_file}\"\n        )\n        assert substitute_string is not None\n\n        # Perform the replacement in the test file content\n        new_test_file_contents = re.sub(substitute_pattern, substitute_string, test_file_contents)\n\n        assert test_file_contents != new_test_file_contents, \"Could not modify test file\"\n\n        # Skip writing changes if this is a dry run\n        if dry_run:\n            continue\n\n        # Write the modified content back to the test file\n        test_file.write_text(new_test_file_contents)\n        for test in tests:\n            test_dict.root.pop(test)\n\n    if dry_run:\n        return\n\n    # Write changes to the input file\n    input_path.write_text(test_dict.model_dump_json(indent=2))\n\n\nMAX_GAS_LIMIT = 16_777_216\n\n\n@click.command()\n@click.option(\n    \"--input\",\n    \"-i\",\n    \"input_str\",\n    type=click.Path(exists=True, file_okay=True, dir_okay=False, readable=True),\n    required=True,\n    help=\"The input json file or directory containing json listing the new gas limits for the \"\n    \"static test files files.\",\n)\n@click.option(\n    \"--max-gas-limit\",\n    default=MAX_GAS_LIMIT,\n    expose_value=True,\n    help=\"Gas limit that triggers a test modification, and also the maximum value that a test \"\n    \"should have after modification.\",\n)\n@click.option(\n    \"--dry-run\",\n    \"-d\",\n    \"dry_run\",\n    is_flag=True,\n    default=False,\n    expose_value=True,\n    help=\"Don't modify any files, simply print operations to be performed.\",\n)\n@click.option(\n    \"--verbose\",\n    \"-v\",\n    \"verbose\",\n    is_flag=True,\n    default=False,\n    expose_value=True,\n    help=\"Print extra information.\",\n)\ndef main(input_str: str, max_gas_limit: int | None, dry_run: bool, verbose: bool) -> None:\n    \"\"\"\n    Perform checks on fixtures in the specified directory.\n    \"\"\"\n    input_path = Path(input_str)\n    if not dry_run:\n        # Always dry-run first before actually modifying\n        _check_fixtures(\n            input_path=input_path,\n            max_gas_limit=max_gas_limit,\n            dry_run=True,\n            verbose=False,\n        )\n    _check_fixtures(\n        input_path=input_path,\n        max_gas_limit=max_gas_limit,\n        dry_run=dry_run,\n        verbose=verbose,\n    )\n"
  },
  {
    "path": "src/cli/order_fixtures.py",
    "content": "\"\"\"\nFunctions and CLI interface for recursively ordering and sorting .json files.\n\nUsage Example:\n\n```console\n   order_fixtures -i input_dir -o output_dir\n```\n\nThe CLI interface takes the paths of an input directory and an output\ndirectory. It recursively processes each .json file in the input directory and\nits subdirectories, and sorts lists and dictionaries alphabetically and writes\nthe sorted output to .json files to the corresponding locations in the output\ndirectory.\n\"\"\"\n\nimport json\nfrom pathlib import Path\nfrom typing import Any, Dict, List, cast\n\nimport click\n\n\ndef recursive_sort(item: Dict[str, Any] | List[Any]) -> Dict[str, Any] | List[Any]:\n    \"\"\"\n    Recursively sorts an item.\n\n    If the item is a dictionary, it returns a new dictionary that is a sorted\n    version of the input dictionary. If the item is a list, it returns a new\n    list that is a sorted version of the input list. The elements of the list\n    are also sorted if they are lists or dictionaries.\n\n    Args:\n      item: The item to be sorted. This can be a list or a dictionary.\n\n    Returns:\n      The sorted item.\n\n    \"\"\"\n    if isinstance(item, dict):\n        return dict(sorted((k, recursive_sort(v)) for k, v in item.items()))\n    elif isinstance(item, list):\n        try:\n            return sorted(cast(List[Any], [recursive_sort(x) for x in item]))  # type: ignore[redundant-cast]\n        except TypeError:\n            # If a TypeError is raised, we might be dealing with a list of\n            # dictionaries Sort them based on their string representation\n            return sorted((recursive_sort(x) for x in item), key=str)\n    else:\n        return item\n\n\ndef order_fixture(input_path: Path, output_path: Path) -> None:\n    \"\"\"\n    Sorts a .json fixture.\n\n    Reads a .json file from the input path, sorts the .json data and writes it\n    to the output path.\n\n    Args:\n      input_path: The Path object of the input .json file.\n      output_path: The Path object of the output .json file.\n\n    Returns:\n        None.\n\n    \"\"\"\n    with input_path.open(\"r\") as f:\n        data = json.load(f)\n    data = recursive_sort(data)\n    with output_path.open(\"w\") as f:\n        json.dump(data, f, indent=4)\n\n\ndef process_directory(input_dir: Path, output_dir: Path) -> None:\n    \"\"\"\n    Process a directory.\n\n    Processes each .json file in the input directory and its subdirectories,\n    and writes the sorted .json files to the corresponding locations in the\n    output directory.\n\n    Args:\n        input_dir: The Path object of the input directory.\n        output_dir: The Path object of the output directory.\n\n    Returns:\n        None.\n\n    \"\"\"\n    if not output_dir.exists():\n        output_dir.mkdir(parents=True)\n    for child in input_dir.iterdir():\n        if child.is_dir():\n            process_directory(child, output_dir / child.name)\n        elif child.suffix == \".json\":\n            order_fixture(child, output_dir / child.name)\n\n\n@click.command()\n@click.option(\n    \"--input\",\n    \"-i\",\n    \"input_dir\",\n    type=click.Path(exists=True, file_okay=False, dir_okay=True, readable=True),\n    required=True,\n    help=\"input directory\",\n)\n@click.option(\n    \"--output\",\n    \"-o\",\n    \"output_dir\",\n    type=click.Path(writable=True, file_okay=False, dir_okay=True),\n    required=True,\n    help=\"The output directory\",\n)\ndef order_fixtures(input_dir: str, output_dir: str) -> None:\n    \"\"\"Order json fixture by key recursively from the input directory.\"\"\"\n    input_dir_path = Path(input_dir)\n    output_dir_path = Path(output_dir)\n    process_directory(input_dir_path, output_dir_path)\n\n\nif __name__ == \"__main__\":\n    order_fixtures()\n"
  },
  {
    "path": "src/cli/pytest_commands/__init__.py",
    "content": "\"\"\"\nCLI entry points for the main pytest-based commands provided by\nexecution-spec-tests.\n\nThese can be directly accessed in a prompt if the user has directly installed\nthe package via:\n\n```\npython -m venv venv\nsource venv/bin/activate\npip install -e .\n# or\npip install -e .[docs,lint,test]\n```\n\nThen, the entry points can be executed via:\n\n```\nfill --help\n# for example, or\nconsume engine\n# or\nchecklist --help\n```\n\nThey can also be executed (and debugged) directly in an interactive python\nshell:\n\n```\nfrom src.cli.pytest_commands.fill import fill\nfrom click.testing import CliRunner\n\nrunner = CliRunner()\nresult = runner.invoke(fill, [\"--help\"])\nprint(result.output)\n```\n\"\"\"\n"
  },
  {
    "path": "src/cli/pytest_commands/base.py",
    "content": "\"\"\"Base classes and utilities for pytest-based CLI commands.\"\"\"\n\nimport sys\nfrom abc import ABC, abstractmethod\nfrom dataclasses import dataclass, field\nfrom os.path import realpath\nfrom pathlib import Path\nfrom typing import Any, Callable, List, Optional\n\nimport click\nimport pytest\nfrom rich.console import Console\n\nCURRENT_FOLDER = Path(realpath(__file__)).parent\nPACKAGE_INSTALL_FOLDER = CURRENT_FOLDER.parent.parent\nPYTEST_INI_FOLDER = CURRENT_FOLDER / \"pytest_ini_files\"\n\n\n@dataclass\nclass PytestExecution:\n    \"\"\"Configuration for a single pytest execution.\"\"\"\n\n    config_file: Path\n    \"\"\"Path to the pytest configuration file (e.g., 'pytest-fill.ini').\"\"\"\n\n    command_logic_test_paths: List[str] = field(default_factory=list)\n    \"\"\"\n    List of tests that have to be appended to the start of pytest command\n    arguments.\n    \"\"\"\n\n    args: List[str] = field(default_factory=list)\n    \"\"\"Arguments to pass to pytest.\"\"\"\n\n    description: Optional[str] = None\n    \"\"\"Optional description for this execution phase.\"\"\"\n\n\nclass ArgumentProcessor(ABC):\n    \"\"\"Base class for processing command-line arguments.\"\"\"\n\n    @abstractmethod\n    def process_args(self, args: List[str]) -> List[str]:\n        \"\"\"Process the given arguments and return modified arguments.\"\"\"\n        pass\n\n\n@dataclass(kw_only=True)\nclass PytestRunner:\n    \"\"\"Handles execution of pytest commands.\"\"\"\n\n    console: Console = field(default_factory=lambda: Console(highlight=False))\n    \"\"\"Console to use for output.\"\"\"\n\n    def run_single(self, execution: PytestExecution) -> int:\n        \"\"\"Run pytest once with the given configuration and arguments.\"\"\"\n        root_dir_arg = [\"--rootdir\", \".\"]\n        pytest_args = (\n            [\"-c\", str(execution.config_file)]\n            + root_dir_arg\n            + [\n                str(PACKAGE_INSTALL_FOLDER / test_path)\n                for test_path in execution.command_logic_test_paths\n            ]\n            + execution.args\n        )\n        if execution.command_logic_test_paths:\n            pytest_args += [\n                \"-p\",\n                \"pytest_plugins.fix_package_test_path\",\n            ]\n        if self._is_verbose(execution.args):\n            pytest_cmd = f\"pytest {' '.join(pytest_args)}\"\n            self.console.print(f\"Executing: [bold]{pytest_cmd}[/bold]\")\n\n        return pytest.main(pytest_args)\n\n    def _is_verbose(self, args: List[str]) -> bool:\n        \"\"\"Check if verbose output is requested.\"\"\"\n        return any(arg in [\"-v\", \"--verbose\", \"-vv\", \"-vvv\"] for arg in args)\n\n    def run_multiple(self, executions: List[PytestExecution]) -> int:\n        \"\"\"\n        Run multiple pytest executions in sequence.\n\n        Returns the exit code of the final execution, or the first non-zero\n        exit code.\n        \"\"\"\n        for i, execution in enumerate(executions):\n            if execution.description and len(executions) > 1:\n                phase_text = (\n                    f\"[bold blue]phase {i + 1}/{len(executions)}: \"\n                    f\"{execution.description}[/bold blue]\"\n                )\n                self.console.rule(phase_text, style=\"bold blue\")\n\n            result = self.run_single(execution)\n            if result != 0:\n                return result\n\n        return 0\n\n\n@dataclass(kw_only=True)\nclass PytestCommand:\n    \"\"\"\n    Base class for pytest-based CLI commands.\n\n    Provides a standard structure for commands that execute pytest with\n    specific configurations and argument processing.\n    \"\"\"\n\n    config_file: str\n    \"\"\"File name of the pytest configuration file (e.g., 'pytest-fill.ini').\"\"\"\n\n    argument_processors: List[ArgumentProcessor] = field(default_factory=list)\n    \"\"\"Processors to apply to the pytest arguments.\"\"\"\n\n    runner: PytestRunner = field(default_factory=PytestRunner)\n    \"\"\"Runner to execute the pytest command.\"\"\"\n\n    plugins: List[str] = field(default_factory=list)\n    \"\"\"Plugins to load for the pytest command.\"\"\"\n\n    command_logic_test_paths: List[Path] | None = None\n    \"\"\"Path to test files that contain the command logic.\"\"\"\n\n    pytest_ini_folder: Path = PYTEST_INI_FOLDER\n    \"\"\"Folder where the pytest configuration files are located.\"\"\"\n\n    @property\n    def config_path(self) -> Path:\n        \"\"\"Path to the pytest configuration file.\"\"\"\n        return self.pytest_ini_folder / self.config_file\n\n    def execute(self, pytest_args: List[str]) -> None:\n        \"\"\"Execute the command with the given pytest arguments.\"\"\"\n        executions = self.create_executions(pytest_args)\n        result = self.runner.run_multiple(executions)\n        sys.exit(result)\n\n    @property\n    def test_args(self) -> List[str]:\n        \"\"\"\n        Return the test-path arguments that have to be appended to all\n        PytestExecution instances.\n        \"\"\"\n        if self.command_logic_test_paths:\n            return [str(path) for path in self.command_logic_test_paths]\n        return []\n\n    def create_executions(self, pytest_args: List[str]) -> List[PytestExecution]:\n        \"\"\"\n        Create the list of pytest executions for this command.\n\n        This method can be overridden by subclasses to implement multi-phase\n        execution (e.g., for future fill command).\n        \"\"\"\n        processed_args = self.process_arguments(pytest_args)\n        return [\n            PytestExecution(\n                config_file=self.config_path,\n                command_logic_test_paths=self.test_args,\n                args=processed_args,\n            )\n        ]\n\n    def process_arguments(self, args: List[str]) -> List[str]:\n        \"\"\"Apply all argument processors to the given arguments.\"\"\"\n        processed_args = args[:]\n\n        for processor in self.argument_processors:\n            processed_args = processor.process_args(processed_args)\n\n        for plugin in self.plugins:\n            processed_args.extend([\"-p\", plugin])\n\n        return processed_args\n\n\ndef common_pytest_options(func: Callable[..., Any]) -> Callable[..., Any]:\n    \"\"\"\n    Apply common Click options for pytest-based commands.\n\n    This decorator adds the standard help options that all pytest commands use.\n    \"\"\"\n    func = click.option(\n        \"-h\",\n        \"--help\",\n        \"help_flag\",\n        is_flag=True,\n        default=False,\n        expose_value=True,\n        help=\"Show help message.\",\n    )(func)\n\n    func = click.option(\n        \"--pytest-help\",\n        \"pytest_help_flag\",\n        is_flag=True,\n        default=False,\n        expose_value=True,\n        help=\"Show pytest's help message.\",\n    )(func)\n\n    return click.argument(\"pytest_args\", nargs=-1, type=click.UNPROCESSED)(func)\n"
  },
  {
    "path": "src/cli/pytest_commands/check_eip_versions.py",
    "content": "\"\"\"CLI entry point for the EIP version checker pytest-based command.\"\"\"\n\nfrom typing import Any, List\n\nimport click\n\nfrom config.check_eip_versions import CheckEipVersionsConfig\n\nfrom .base import PytestCommand, common_pytest_options\nfrom .processors import HelpFlagsProcessor\n\n\n@click.command(context_settings={\"ignore_unknown_options\": True})\n@common_pytest_options\ndef check_eip_versions(pytest_args: List[str], **kwargs: Any) -> None:\n    \"\"\"Run pytest with the `spec_version_checker` plugin.\"\"\"\n    del kwargs\n\n    command = PytestCommand(\n        config_file=\"pytest-check-eip-versions.ini\",\n        argument_processors=[HelpFlagsProcessor(\"check-eip-versions\")],\n    )\n\n    args_with_until = [\n        \"--until\",\n        CheckEipVersionsConfig().UNTIL_FORK,\n    ] + list(pytest_args)\n    command.execute(args_with_until)\n"
  },
  {
    "path": "src/cli/pytest_commands/checklist.py",
    "content": "\"\"\"CLI entry point for the `checklist` pytest-based command.\"\"\"\n\nfrom typing import Any\n\nimport click\n\nfrom .fill import FillCommand\n\n\n@click.command()\n@click.option(\n    \"--output\",\n    \"-o\",\n    type=click.Path(file_okay=False, dir_okay=True, writable=True),\n    default=\"./checklists\",\n    help=\"Directory to output the generated checklists (default: ./checklists)\",\n)\n@click.option(\n    \"--eip\",\n    \"-e\",\n    type=int,\n    multiple=True,\n    help=\"Generate checklist only for specific EIP(s)\",\n)\ndef checklist(output: str, eip: tuple[int, ...], **kwargs: Any) -> None:\n    \"\"\"\n    Generate EIP test checklists based on pytest.mark.eip_checklist markers.\n\n    This command scans test files for eip_checklist markers and generates\n    filled checklists showing which checklist items have been implemented.\n\n    Examples:\n        # Generate checklists for all EIPs\n        uv run checklist\n\n        # Generate checklist for specific EIP\n        uv run checklist --eip 7702\n\n        # Generate checklists for specific test path\n        uv run checklist tests/prague/eip7702*\n\n        # Specify output directory\n        uv run checklist --output ./my-checklists\n\n    \"\"\"\n    del kwargs\n\n    # Add output directory to pytest args\n    args = [\"--checklist-output\", output]\n\n    # Add EIP filter if specified\n    for eip_num in eip:\n        args.extend([\"--checklist-eip\", str(eip_num)])\n\n    command = FillCommand(\n        plugins=[\"pytest_plugins.filler.eip_checklist\"],\n    )\n    command.execute(args)\n\n\nif __name__ == \"__main__\":\n    checklist()\n"
  },
  {
    "path": "src/cli/pytest_commands/consume.py",
    "content": "\"\"\"CLI entry point for the `consume` pytest-based command.\"\"\"\n\nimport functools\nfrom pathlib import Path\nfrom typing import Any, Callable, List\n\nimport click\n\nfrom .base import ArgumentProcessor, PytestCommand, common_pytest_options\nfrom .processors import ConsumeCommandProcessor, HelpFlagsProcessor, HiveEnvironmentProcessor\n\n\ndef create_consume_command(\n    *,\n    command_logic_test_paths: List[Path],\n    is_hive: bool = False,\n    command_name: str = \"\",\n) -> PytestCommand:\n    \"\"\"Initialize consume command with paths and processors.\"\"\"\n    processors: List[ArgumentProcessor] = [HelpFlagsProcessor(\"consume\")]\n\n    if is_hive:\n        processors.extend(\n            [\n                HiveEnvironmentProcessor(command_name=command_name),\n                ConsumeCommandProcessor(is_hive=True),\n            ]\n        )\n    else:\n        processors.append(ConsumeCommandProcessor(is_hive=False))\n\n    return PytestCommand(\n        config_file=\"pytest-consume.ini\",\n        argument_processors=processors,\n        command_logic_test_paths=command_logic_test_paths,\n    )\n\n\ndef get_command_logic_test_paths(command_name: str) -> List[Path]:\n    \"\"\"Determine the command paths based on the command name and hive flag.\"\"\"\n    base_path = Path(\"pytest_plugins/consume\")\n    if command_name in [\"engine\", \"rlp\"]:\n        command_logic_test_paths = [\n            base_path / \"simulators\" / \"simulator_logic\" / f\"test_via_{command_name}.py\"\n        ]\n    elif command_name == \"sync\":\n        command_logic_test_paths = [\n            base_path / \"simulators\" / \"simulator_logic\" / \"test_via_sync.py\"\n        ]\n    elif command_name == \"direct\":\n        command_logic_test_paths = [base_path / \"direct\" / \"test_via_direct.py\"]\n    else:\n        raise ValueError(f\"Unexpected command: {command_name}.\")\n    return command_logic_test_paths\n\n\n@click.group(context_settings={\"help_option_names\": [\"-h\", \"--help\"]})\ndef consume() -> None:\n    \"\"\"Consume command to aid client consumption of test fixtures.\"\"\"\n    pass\n\n\ndef consume_command(\n    is_hive: bool = False,\n) -> Callable[[Callable[..., Any]], click.Command]:\n    \"\"\"Generate a consume sub-command.\"\"\"\n\n    def decorator(func: Callable[..., Any]) -> click.Command:\n        command_name = func.__name__\n        command_help = func.__doc__\n        command_logic_test_paths = get_command_logic_test_paths(command_name)\n\n        @consume.command(\n            name=command_name,\n            help=command_help,\n            context_settings={\"ignore_unknown_options\": True},\n        )\n        @common_pytest_options\n        @functools.wraps(func)\n        def command(pytest_args: List[str], **kwargs: Any) -> None:\n            del kwargs\n\n            consume_cmd = create_consume_command(\n                command_logic_test_paths=command_logic_test_paths,\n                is_hive=is_hive,\n                command_name=command_name,\n            )\n            consume_cmd.execute(list(pytest_args))\n\n        return command\n\n    return decorator\n\n\n@consume_command(is_hive=False)\ndef direct() -> None:\n    \"\"\"Clients consume directly via the `blocktest` interface.\"\"\"\n    pass\n\n\n@consume_command(is_hive=True)\ndef rlp() -> None:\n    \"\"\"Client consumes RLP-encoded blocks on startup.\"\"\"\n    pass\n\n\n@consume_command(is_hive=True)\ndef engine() -> None:\n    \"\"\"Client consumes via the Engine API.\"\"\"\n    pass\n\n\n@consume_command(is_hive=True)\ndef sync() -> None:\n    \"\"\"Client consumes via the Engine API with sync testing.\"\"\"\n    pass\n\n\n@consume.command(\n    context_settings={\"ignore_unknown_options\": True},\n)\n@common_pytest_options\ndef cache(pytest_args: List[str], **kwargs: Any) -> None:\n    \"\"\"Consume command to cache test fixtures.\"\"\"\n    del kwargs\n\n    cache_cmd = create_consume_command(command_logic_test_paths=[], is_hive=False)\n    cache_cmd.execute(list(pytest_args))\n"
  },
  {
    "path": "src/cli/pytest_commands/execute.py",
    "content": "\"\"\"CLI entry point for the `execute` pytest-based command.\"\"\"\n\nfrom pathlib import Path\nfrom typing import Any, List\n\nimport click\n\nfrom .base import PytestCommand, common_pytest_options\nfrom .processors import HelpFlagsProcessor\n\n\n@click.group(\n    context_settings={\n        \"help_option_names\": [\"-h\", \"--help\"],\n    }\n)\ndef execute() -> None:\n    \"\"\"Execute command to run tests in hive or live networks.\"\"\"\n    pass\n\n\ndef _create_execute_subcommand(\n    command_name: str,\n    config_file: str,\n    help_text: str,\n    required_args: List[str] | None = None,\n    command_logic_test_paths: List[Path] | None = None,\n) -> click.Command:\n    \"\"\"Create an execute subcommand with standardized structure.\"\"\"\n    pytest_command = PytestCommand(\n        config_file=config_file,\n        argument_processors=[HelpFlagsProcessor(f\"execute-{command_name}\", required_args)],\n        command_logic_test_paths=command_logic_test_paths,\n    )\n\n    @execute.command(\n        name=command_name,\n        help=help_text,\n        context_settings={\"ignore_unknown_options\": True},\n    )\n    @common_pytest_options\n    def command(pytest_args: List[str], **_kwargs: Any) -> None:\n        pytest_command.execute(list(pytest_args))\n\n    command.__doc__ = help_text\n    return command\n\n\n# Create the subcommands\nhive = _create_execute_subcommand(\n    \"hive\",\n    \"pytest-execute-hive.ini\",\n    \"Execute tests using hive as a backend (`./hive --dev`).\",\n)\n\nremote = _create_execute_subcommand(\n    \"remote\",\n    \"pytest-execute.ini\",\n    \"Execute tests using a remote RPC endpoint.\",\n    required_args=[\n        \"--rpc-endpoint=http://localhost:8545\",\n        \"--rpc-chain-id=1\",\n        \"--rpc-seed-key=1\",\n    ],\n)\n\neth_config = _create_execute_subcommand(\n    \"eth-config\",\n    \"pytest-execute-eth-config.ini\",\n    \"Test a client's configuration using the `eth_config` RPC endpoint.\",\n    required_args=[\"--network=Mainnet\", \"--rpc-endpoint=http://localhost:8545\"],\n    command_logic_test_paths=[Path(\"pytest_plugins/execute/eth_config/execute_eth_config.py\")],\n)\n\nrecover = _create_execute_subcommand(\n    \"recover\",\n    \"pytest-execute-recover.ini\",\n    \"Recover funds from test executions using a remote RPC endpoint.\",\n    required_args=[\n        \"--rpc-endpoint=http://localhost:8545\",\n        \"--rpc-chain-id=1\",\n        \"--start-eoa-index=1\",\n        \"--destination=0x0000000000000000000000000000000000000000\",\n    ],\n    command_logic_test_paths=[Path(\"pytest_plugins/execute/execute_recover.py\")],\n)\n"
  },
  {
    "path": "src/cli/pytest_commands/fill.py",
    "content": "\"\"\"CLI entry point for the `fill` pytest-based command.\"\"\"\n\nfrom typing import Any, List\n\nimport click\n\nfrom .base import PytestCommand, PytestExecution, common_pytest_options\nfrom .processors import HelpFlagsProcessor, StdoutFlagsProcessor, WatchFlagsProcessor\nfrom .watcher import FileWatcher\n\n\nclass FillCommand(PytestCommand):\n    \"\"\"Pytest command for the fill operation.\"\"\"\n\n    def __init__(self, **kwargs: Any) -> None:\n        \"\"\"Initialize fill command with processors.\"\"\"\n        super().__init__(\n            config_file=\"pytest-fill.ini\",\n            argument_processors=[\n                HelpFlagsProcessor(\"fill\"),\n                StdoutFlagsProcessor(),\n                WatchFlagsProcessor(),\n            ],\n            **kwargs,\n        )\n\n    def create_executions(self, pytest_args: List[str]) -> List[PytestExecution]:\n        \"\"\"\n        Create execution plan that supports two-phase pre-allocation group\n        generation.\n\n        Returns single execution for normal filling, or two-phase execution\n        when --generate-pre-alloc-groups or --generate-all-formats is\n        specified.\n        \"\"\"\n        processed_args = self.process_arguments(pytest_args)\n\n        # Check if we need two-phase execution\n        if self._should_use_two_phase_execution(processed_args):\n            processed_args = self._ensure_generate_all_formats_for_tarball(processed_args)\n            return self._create_two_phase_executions(processed_args)\n        elif \"--use-pre-alloc-groups\" in processed_args:\n            # Only phase 2: using existing pre-allocation groups\n            return self._create_single_phase_with_pre_alloc_groups(processed_args)\n        else:\n            # Normal single-phase execution\n            return [\n                PytestExecution(\n                    config_file=self.config_path,\n                    args=processed_args,\n                )\n            ]\n\n    def _create_two_phase_executions(self, args: List[str]) -> List[PytestExecution]:\n        \"\"\"\n        Create two-phase execution: pre-allocation group generation + fixture\n        filling.\n        \"\"\"\n        # Phase 1: Pre-allocation group generation (clean and minimal output)\n        phase1_args = self._create_phase1_args(args)\n\n        # Phase 2: Main fixture generation (full user options)\n        phase2_args = self._create_phase2_args(args)\n\n        return [\n            PytestExecution(\n                config_file=self.config_path,\n                args=phase1_args,\n                description=\"generating pre-allocation groups\",\n            ),\n            PytestExecution(\n                config_file=self.config_path,\n                args=phase2_args,\n                description=\"filling test fixtures\",\n            ),\n        ]\n\n    def _create_single_phase_with_pre_alloc_groups(self, args: List[str]) -> List[PytestExecution]:\n        \"\"\"Create single execution using existing pre-allocation groups.\"\"\"\n        return [\n            PytestExecution(\n                config_file=self.config_path,\n                args=args,\n            )\n        ]\n\n    def _create_phase1_args(self, args: List[str]) -> List[str]:\n        \"\"\"Create arguments for phase 1 (pre-allocation group generation).\"\"\"\n        # Start with all args, then remove what we don't want for phase 1\n        filtered_args = self._remove_unwanted_phase1_args(args)\n\n        # Add required phase 1 flags (with quiet output by default)\n        phase1_args = [\n            \"--generate-pre-alloc-groups\",\n            \"-qq\",  # Quiet pytest output by default (user -v/-vv/-vvv can\n            # override)\n        ] + filtered_args\n\n        return phase1_args\n\n    def _create_phase2_args(self, args: List[str]) -> List[str]:\n        \"\"\"Create arguments for phase 2 (fixture filling).\"\"\"\n        # Remove --generate-pre-alloc-groups and --clean, then add --use-pre-\n        # alloc-groups\n        phase2_args = self._remove_generate_pre_alloc_groups_flag(args)\n        phase2_args = self._remove_clean_flag(phase2_args)\n        phase2_args = self._add_use_pre_alloc_groups_flag(phase2_args)\n        return phase2_args\n\n    def _remove_unwanted_phase1_args(self, args: List[str]) -> List[str]:\n        \"\"\"Remove arguments we don't want in phase 1 (pre-state generation).\"\"\"\n        unwanted_flags = {\n            # Output format flags\n            \"--html\",\n            # Report flags (we'll add our own -qq)\n            \"-q\",\n            \"--quiet\",\n            \"-qq\",\n            \"--tb\",\n            # Pre-allocation group flags (we'll add our own)\n            \"--generate-pre-alloc-groups\",\n            \"--use-pre-alloc-groups\",\n            \"--generate-all-formats\",\n        }\n\n        filtered_args = []\n        i = 0\n        while i < len(args):\n            arg = args[i]\n\n            # Skip unwanted flags\n            if arg in unwanted_flags:\n                # Skip flag and its value if it takes one\n                if arg in [\"--html\", \"--tb\", \"-n\"] and i + 1 < len(args):\n                    i += 2  # Skip flag and value\n                else:\n                    i += 1  # Skip just the flag\n            # Skip unwanted flags with = format\n            elif any(arg.startswith(f\"{flag}=\") for flag in unwanted_flags):\n                i += 1\n            else:\n                filtered_args.append(arg)\n                i += 1\n\n        return filtered_args\n\n    def _remove_generate_pre_alloc_groups_flag(self, args: List[str]) -> List[str]:\n        \"\"\"\n        Remove --generate-pre-alloc-groups flag but keep --generate-all-formats\n        for phase 2.\n        \"\"\"\n        return [arg for arg in args if arg != \"--generate-pre-alloc-groups\"]\n\n    def _remove_clean_flag(self, args: List[str]) -> List[str]:\n        \"\"\"Remove --clean flag from argument list.\"\"\"\n        return [arg for arg in args if arg != \"--clean\"]\n\n    def _add_use_pre_alloc_groups_flag(self, args: List[str]) -> List[str]:\n        \"\"\"Add --use-pre-alloc-groups flag to argument list.\"\"\"\n        return args + [\"--use-pre-alloc-groups\"]\n\n    def _should_use_two_phase_execution(self, args: List[str]) -> bool:\n        \"\"\"Determine if two-phase execution is needed.\"\"\"\n        return (\n            \"--generate-pre-alloc-groups\" in args\n            or \"--generate-all-formats\" in args\n            or self._is_tarball_output(args)\n        )\n\n    def _ensure_generate_all_formats_for_tarball(self, args: List[str]) -> List[str]:\n        \"\"\"Auto-add --generate-all-formats for tarball output.\"\"\"\n        if self._is_tarball_output(args) and \"--generate-all-formats\" not in args:\n            return args + [\"--generate-all-formats\"]\n        return args\n\n    def _is_tarball_output(self, args: List[str]) -> bool:\n        \"\"\"Check if output argument specifies a tarball (.tar.gz) path.\"\"\"\n        from pathlib import Path\n\n        for i, arg in enumerate(args):\n            if arg.startswith(\"--output=\"):\n                output_path = Path(arg.split(\"=\", 1)[1])\n                return str(output_path).endswith(\".tar.gz\")\n            elif arg == \"--output\" and i + 1 < len(args):\n                output_path = Path(args[i + 1])\n                return str(output_path).endswith(\".tar.gz\")\n        return False\n\n    def _is_watch_mode(self, args: List[str]) -> bool:\n        \"\"\"Check if any watch flag is present in arguments.\"\"\"\n        return any(flag in args for flag in [\"--watch\", \"--watcherfall\"])\n\n    def _is_verbose_watch_mode(self, args: List[str]) -> bool:\n        \"\"\"\n        Check if verbose watch flag (--watcherfall)\n        is present in arguments.\n        \"\"\"\n        return \"--watcherfall\" in args\n\n    def execute(self, pytest_args: List[str]) -> None:\n        \"\"\"Execute the command with optional watch mode support.\"\"\"\n        if self._is_watch_mode(pytest_args):\n            self._execute_with_watch(pytest_args)\n        else:\n            super().execute(pytest_args)\n\n    def _execute_with_watch(self, pytest_args: List[str]) -> None:\n        \"\"\"Execute fill command in watch mode.\"\"\"\n        verbose = self._is_verbose_watch_mode(pytest_args)\n        watcher = FileWatcher(console=self.runner.console, verbose=verbose)\n        watcher.run_with_watch(pytest_args)\n\n\nclass PhilCommand(FillCommand):\n    \"\"\"Friendly fill command with emoji reporting.\"\"\"\n\n    def create_executions(self, pytest_args: List[str]) -> List[PytestExecution]:\n        \"\"\"Create execution with emoji report options.\"\"\"\n        processed_args = self.process_arguments(pytest_args)\n\n        emoji_args = processed_args + [\n            \"-o\",\n            \"report_passed=🦄\",\n            \"-o\",\n            \"report_xpassed=🌈\",\n            \"-o\",\n            \"report_failed=👾\",\n            \"-o\",\n            \"report_xfailed=🦺\",\n            \"-o\",\n            \"report_skipped=🦘\",\n            \"-o\",\n            \"report_error=🚨\",\n        ]\n\n        return [\n            PytestExecution(\n                config_file=self.config_path,\n                args=emoji_args,\n            )\n        ]\n\n\n@click.command(\n    context_settings={\n        \"ignore_unknown_options\": True,\n    }\n)\n@common_pytest_options\ndef fill(pytest_args: List[str], **kwargs: Any) -> None:\n    \"\"\"Entry point for the fill command.\"\"\"\n    del kwargs\n\n    command = FillCommand()\n    command.execute(list(pytest_args))\n\n\n@click.command(\n    context_settings={\n        \"ignore_unknown_options\": True,\n    }\n)\n@common_pytest_options\ndef phil(pytest_args: List[str], **kwargs: Any) -> None:\n    \"\"\"Friendly alias for the fill command.\"\"\"\n    del kwargs\n\n    command = PhilCommand()\n    command.execute(list(pytest_args))\n\n\nif __name__ == \"__main__\":\n    # to allow debugging in vscode: in launch config, set \"module\":\n    # \"cli.pytest_commands.fill\"\n    fill(prog_name=\"fill\")\n"
  },
  {
    "path": "src/cli/pytest_commands/processors.py",
    "content": "\"\"\"Argument processors for different pytest command types.\"\"\"\n\nimport os\nimport sys\nimport warnings\nfrom typing import List\n\nimport click\n\nfrom .base import ArgumentProcessor\n\n\nclass HelpFlagsProcessor(ArgumentProcessor):\n    \"\"\"Processes help-related flags to provide cleaner help output.\"\"\"\n\n    def __init__(self, command_type: str, required_args: List[str] | None = None):\n        \"\"\"\n        Initialize the help processor.\n\n        Args:\n          command_type: The type of command (e.g., \"fill\", \"consume\",\n                        \"execute\")\n          required_args: The arguments that are required for the command to run\n\n        \"\"\"\n        self.command_type = command_type\n        self.required_args = required_args or []\n\n    def process_args(self, args: List[str]) -> List[str]:\n        \"\"\"\n        Modify help arguments to provide cleaner help output.\n\n        This makes `--help` more useful because `pytest --help` is extremely\n        verbose and lists all flags from pytest and pytest plugins.\n        \"\"\"\n        ctx = click.get_current_context()\n\n        if ctx.params.get(\"help_flag\"):\n            # And also add the required arguments to the help output\n            return [f\"--{self.command_type}-help\"] + self.required_args\n        elif ctx.params.get(\"pytest_help_flag\"):\n            return [\"--help\"]\n\n        return args\n\n\nclass StdoutFlagsProcessor(ArgumentProcessor):\n    \"\"\"Processes stdout-related flags for the fill command.\"\"\"\n\n    def process_args(self, args: List[str]) -> List[str]:\n        \"\"\"\n        If the user has requested to write to stdout, add pytest arguments to\n        suppress pytest's test session header and summary output.\n        \"\"\"\n        if not self._is_writing_to_stdout(args):\n            return args\n\n        # Check for incompatible xdist plugin\n        if any(arg == \"-n\" or arg.startswith(\"-n=\") for arg in args):\n            sys.exit(\"error: xdist-plugin not supported with --output=stdout (remove -n args).\")\n\n        # Add flags to suppress pytest output when writing to stdout\n        return args + [\"-qq\", \"-s\", \"--no-html\"]\n\n    def _is_writing_to_stdout(self, args: List[str]) -> bool:\n        \"\"\"Check if the command is configured to write to stdout.\"\"\"\n        if any(arg == \"--output=stdout\" for arg in args):\n            return True\n\n        if \"--output\" in args:\n            output_index = args.index(\"--output\")\n            if output_index + 1 < len(args) and args[output_index + 1] == \"stdout\":\n                return True\n\n        return False\n\n\nclass HiveEnvironmentProcessor(ArgumentProcessor):\n    \"\"\"Processes Hive environment variables for consume commands.\"\"\"\n\n    def __init__(self, command_name: str):\n        \"\"\"Initialize the processor with command name to determine plugin.\"\"\"\n        self.command_name = command_name\n\n    def process_args(self, args: List[str]) -> List[str]:\n        \"\"\"Convert hive environment variables into pytest flags.\"\"\"\n        modified_args = args[:]\n\n        hive_test_pattern = os.getenv(\"HIVE_TEST_PATTERN\")\n        if hive_test_pattern and not self._has_regex_or_sim_limit(args):\n            modified_args.extend([\"--sim.limit\", hive_test_pattern])\n\n        hive_parallelism = os.getenv(\"HIVE_PARALLELISM\")\n        if hive_parallelism not in [None, \"\", \"1\"] and not self._has_parallelism_flag(args):\n            modified_args.extend([\"-n\", str(hive_parallelism)])\n\n        if os.getenv(\"HIVE_RANDOM_SEED\") is not None:\n            warnings.warn(\"HIVE_RANDOM_SEED is not yet supported.\", stacklevel=2)\n\n        if os.getenv(\"HIVE_LOGLEVEL\") is not None:\n            warnings.warn(\"HIVE_LOG_LEVEL is not yet supported.\", stacklevel=2)\n\n        if self.command_name == \"engine\":\n            modified_args.extend([\"-p\", \"pytest_plugins.consume.simulators.engine.conftest\"])\n        elif self.command_name == \"sync\":\n            modified_args.extend([\"-p\", \"pytest_plugins.consume.simulators.sync.conftest\"])\n        elif self.command_name == \"rlp\":\n            modified_args.extend([\"-p\", \"pytest_plugins.consume.simulators.rlp.conftest\"])\n        else:\n            raise ValueError(f\"Unknown command name: {self.command_name}\")\n        return modified_args\n\n    def _has_regex_or_sim_limit(self, args: List[str]) -> bool:\n        \"\"\"Check if args already contain --regex or --sim.limit.\"\"\"\n        return \"--regex\" in args or \"--sim.limit\" in args\n\n    def _has_parallelism_flag(self, args: List[str]) -> bool:\n        \"\"\"Check if args already contain parallelism flag.\"\"\"\n        return \"-n\" in args\n\n\nclass WatchFlagsProcessor(ArgumentProcessor):\n    \"\"\"\n    Processes --watch and --watcherfall flags\n    for file watching functionality.\n    \"\"\"\n\n    def process_args(self, args: List[str]) -> List[str]:\n        \"\"\"\n        Remove --watch and --watcherfall\n        flags from args passed to pytest.\n        \"\"\"\n        return [arg for arg in args if arg not in [\"--watch\", \"--watcherfall\"]]\n\n\nclass ConsumeCommandProcessor(ArgumentProcessor):\n    \"\"\"Processes consume-specific command arguments.\"\"\"\n\n    def __init__(self, is_hive: bool = False):\n        \"\"\"\n        Initialize the consume processor.\n\n        Args:\n          is_hive: Whether this is a hive-based consume command\n\n        \"\"\"\n        self.is_hive = is_hive\n\n    def process_args(self, args: List[str]) -> List[str]:\n        \"\"\"Process consume-specific arguments.\"\"\"\n        if self.is_hive:\n            return self._handle_timing_data_stdout(args)\n        return args\n\n    def _handle_timing_data_stdout(self, args: List[str]) -> List[str]:\n        \"\"\"Ensure stdout is captured when timing data is enabled.\"\"\"\n        if \"--timing-data\" in args and \"-s\" not in args:\n            return args + [\"-s\"]\n        return args\n"
  },
  {
    "path": "src/cli/pytest_commands/pytest_ini_files/pytest-check-eip-versions.ini",
    "content": "[pytest]\nconsole_output_style = count\nminversion = 7.0\npython_files = *.py\n# Note: register new markers via src/pytest_plugins/shared/execute_fill.py or\n# src/pytest_plugins/spec_version_checker/spec_version_checker.py\ntestpaths = tests/\naddopts =  \n    -p pytest_plugins.spec_version_checker.spec_version_checker\n    -p pytest_plugins.concurrency\n    -p pytest_plugins.filler.pre_alloc\n    -p pytest_plugins.filler.filler\n    -p pytest_plugins.shared.execute_fill\n    -p pytest_plugins.shared.transaction_fixtures\n    -p pytest_plugins.forks.forks\n    -p pytest_plugins.help.help\n    -m eip_version_check\n    --tb short"
  },
  {
    "path": "src/cli/pytest_commands/pytest_ini_files/pytest-consume.ini",
    "content": "[pytest]\nconsole_output_style = count\nminversion = 7.0\npython_files = test_*\naddopts = \n    -rxXs\n    --tb short\n    -p pytest_plugins.concurrency\n    # disable pytest built-in logging entirely `-p no:logging`\n    -p no:logging\n    -p pytest_plugins.custom_logging.plugin_logging\n    -p pytest_plugins.consume.consume\n    -p pytest_plugins.help.help"
  },
  {
    "path": "src/cli/pytest_commands/pytest_ini_files/pytest-execute-eth-config.ini",
    "content": "[pytest]\nconsole_output_style = count\nminversion = 7.0\npython_files = *.py\n# Note: register new markers via src/pytest_plugins/shared/execute_fill.py\naddopts = \n    -p pytest_plugins.execute.eth_config.eth_config\n    -p pytest_plugins.help.help\n    -p pytest_plugins.custom_logging.plugin_logging\n    -m \"not eip_version_check\"\n    --tb short\n    --dist loadscope\n"
  },
  {
    "path": "src/cli/pytest_commands/pytest_ini_files/pytest-execute-hive.ini",
    "content": "[pytest]\nconsole_output_style = count\nminversion = 7.0\npython_files = *.py\ntestpaths = tests/\n# Note: register new markers via src/pytest_plugins/shared/execute_fill.py\naddopts = \n    -p pytest_plugins.concurrency\n    -p pytest_plugins.execute.sender\n    -p pytest_plugins.execute.pre_alloc\n    -p pytest_plugins.execute.rpc.hive\n    -p pytest_plugins.execute.execute\n    -p pytest_plugins.shared.execute_fill\n    -p pytest_plugins.shared.benchmarking\n    -p pytest_plugins.shared.transaction_fixtures\n    -p pytest_plugins.forks.forks\n    -p pytest_plugins.pytest_hive.pytest_hive\n    -p pytest_plugins.help.help\n    --tb short\n    --dist loadscope\n    --ignore tests/cancun/eip4844_blobs/point_evaluation_vectors/\n"
  },
  {
    "path": "src/cli/pytest_commands/pytest_ini_files/pytest-execute-recover.ini",
    "content": "[pytest]\nconsole_output_style = count\nminversion = 7.0\npython_files = *.py\naddopts = \n    -p pytest_plugins.execute.rpc.remote\n    -p pytest_plugins.execute.recover\n    -p pytest_plugins.help.help\n    -m \"not eip_version_check\"\n    --tb short\n    --dist loadscope\n"
  },
  {
    "path": "src/cli/pytest_commands/pytest_ini_files/pytest-execute.ini",
    "content": "[pytest]\nconsole_output_style = count\nminversion = 7.0\npython_files = *.py\ntestpaths = tests/\n# Note: register new markers via src/pytest_plugins/shared/execute_fill.py\naddopts = \n    -p pytest_plugins.concurrency\n    -p pytest_plugins.execute.sender\n    -p pytest_plugins.execute.pre_alloc\n    -p pytest_plugins.execute.execute\n    -p pytest_plugins.shared.execute_fill\n    -p pytest_plugins.shared.benchmarking\n    -p pytest_plugins.shared.transaction_fixtures\n    -p pytest_plugins.execute.rpc.remote_seed_sender\n    -p pytest_plugins.execute.rpc.remote\n    -p pytest_plugins.forks.forks\n    -p pytest_plugins.help.help\n    -p pytest_plugins.custom_logging.plugin_logging\n    --tb short\n    --dist loadscope\n    --ignore tests/cancun/eip4844_blobs/point_evaluation_vectors/\n"
  },
  {
    "path": "src/cli/pytest_commands/pytest_ini_files/pytest-fill.ini",
    "content": "[pytest]\nconsole_output_style = count\nminversion = 7.0\npython_files = *.py\ntestpaths = tests/\n# Note: register new markers via src/pytest_plugins/shared/execute_fill.py\naddopts = \n    -p pytest_plugins.concurrency\n    -p pytest_plugins.filler.pre_alloc\n    -p pytest_plugins.filler.filler\n    -p pytest_plugins.filler.witness\n    -p pytest_plugins.shared.execute_fill\n    -p pytest_plugins.filler.ported_tests\n    -p pytest_plugins.filler.static_filler\n    -p pytest_plugins.shared.benchmarking\n    -p pytest_plugins.shared.transaction_fixtures\n    -p pytest_plugins.forks.forks\n    -p pytest_plugins.eels_resolver\n    -p pytest_plugins.help.help\n    -p pytest_plugins.custom_logging.plugin_logging\n    --tb short\n    --ignore tests/cancun/eip4844_blobs/point_evaluation_vectors/\n# these customizations require the pytest-custom-report plugin\nreport_passed_verbose = FILLED\nreport_xpassed_verbose = XFILLED\n"
  },
  {
    "path": "src/cli/pytest_commands/watcher.py",
    "content": "\"\"\"File watcher implementation for --watch flag functionality.\"\"\"\n\nimport os\nimport subprocess\nimport time\nfrom pathlib import Path\nfrom typing import Dict, List\n\nfrom rich.console import Console\n\n\nclass FileWatcher:\n    \"\"\"Simple file watcher that re-runs the fill command on changes.\"\"\"\n\n    def __init__(self, console: Console | None = None, verbose: bool = False) -> None:\n        \"\"\"Initialize the file watcher.\"\"\"\n        self.console = console or Console(highlight=False)\n        self.verbose = verbose\n\n    def run_with_watch(self, args: List[str]) -> None:\n        \"\"\"Watch for file changes and re-run fill command.\"\"\"\n        file_mtimes: Dict[Path, float] = {}\n\n        def get_file_mtimes() -> Dict[Path, float]:\n            \"\"\"Get current modification times of all test and source files.\"\"\"\n            mtimes = {}\n            # Watch tests directory\n            tests_dir = Path(\"tests\")\n            if tests_dir.exists():\n                for py_file in tests_dir.rglob(\"*.py\"):\n                    try:\n                        mtimes[py_file] = py_file.stat().st_mtime\n                    except (OSError, FileNotFoundError):\n                        pass\n            # Watch src directory\n            src_dir = Path(\"src\")\n            if src_dir.exists():\n                for py_file in src_dir.rglob(\"*.py\"):\n                    try:\n                        mtimes[py_file] = py_file.stat().st_mtime\n                    except (OSError, FileNotFoundError):\n                        pass\n            return mtimes\n\n        def run_fill() -> None:\n            \"\"\"Run fill command without --watch / --watcherfall flag.\"\"\"\n            clean_args = [arg for arg in args if arg not in [\"--watch\", \"--watcherfall\"]]\n            cmd = [\"uv\", \"run\", \"fill\"] + clean_args\n            result = subprocess.run(cmd)\n\n            if result.returncode == 0:\n                self.console.print(\"[green]✓ Fill completed[/green]\")\n            else:\n                self.console.print(f\"[red]✗ Fill failed (exit {result.returncode})[/red]\")\n\n        # Setup\n        mode_desc = \"watcherfall mode (verbose)\" if self.verbose else \"watch mode\"\n        self.console.print(f\"[blue]Starting {mode_desc}...[/blue]\")\n        file_mtimes = get_file_mtimes()\n\n        # Initial run\n        self.console.print(\"[green]Running initial fill...[/green]\")\n        run_fill()\n\n        file_count = len(file_mtimes)\n        self.console.print(\n            f\"[blue]Watching {file_count} files in tests/ and src/ directories.\"\n            \"\\n Press Ctrl+C to stop.[/blue]\"\n        )\n\n        # Watch loop\n        try:\n            while True:\n                time.sleep(0.5)\n                current_mtimes = get_file_mtimes()\n\n                if current_mtimes != file_mtimes:\n                    if not self.verbose:\n                        os.system(\"clear\" if os.name != \"nt\" else \"cls\")\n                    self.console.print(\"[yellow]File changes detected, re-running...[/yellow]\\n\")\n                    run_fill()\n                    file_mtimes = current_mtimes\n                    self.console.print(\"\\n[blue]Watching for changes...[/blue]\")\n\n        except KeyboardInterrupt:\n            self.console.print(\"\\n[yellow]Watch mode stopped.[/yellow]\")\n"
  },
  {
    "path": "src/cli/show_pre_alloc_group_stats.py",
    "content": "\"\"\"Script to display statistics about pre-allocation groups.\"\"\"\n\nfrom collections import defaultdict\nfrom pathlib import Path\nfrom typing import Dict, List, Set, Tuple\n\nimport click\nfrom pydantic import Field\nfrom rich.console import Console\nfrom rich.table import Table\n\nfrom ethereum_test_base_types import CamelModel\nfrom ethereum_test_fixtures import PreAllocGroups\n\n\ndef extract_test_module(test_id: str) -> str:\n    \"\"\"Extract test module path from test ID.\"\"\"\n    # Example:\n    # tests/cancun/eip4788_beacon_root/test_beacon_root_contract.py::\n    #     test_beacon_root_contract_calls[fork_Cancun]\n    if \"::\" in test_id:\n        return test_id.split(\"::\")[0]\n    return \"unknown\"\n\n\ndef extract_test_function(test_id: str) -> str:\n    \"\"\"Extract test function name from test ID (without parameters).\"\"\"\n    # Example:\n    # tests/cancun/eip4788_beacon_root/test_beacon_root_contract.py::\n    #     test_beacon_root_contract_calls[fork_Cancun]\n    #  Returns:\n    # tests/cancun/eip4788_beacon_root/test_beacon_root_contract.py::\n    #     test_beacon_root_contract_calls\n    if \"::\" in test_id:\n        parts = test_id.split(\"::\")\n        if len(parts) >= 2:\n            function_part = parts[1]\n            # Remove parameter brackets if present\n            if \"[\" in function_part:\n                function_part = function_part.split(\"[\")[0]\n            return f\"{parts[0]}::{function_part}\"\n    return test_id\n\n\ndef calculate_size_distribution(\n    test_counts: List[int],\n) -> Tuple[List[Tuple[str, int]], List[Tuple[str, int, int, int]]]:\n    \"\"\"\n    Calculate frequency distribution of group sizes with appropriate binning.\n\n    Returns:\n      Group count distribution: [(range_label, group_count), ...]\n      Test count distribution:  [(range_label, test_count,\n                                  cumulative_remaining,\n                                  group_count), ...]\n\n    \"\"\"\n    if not test_counts:\n        return [], []\n\n    # Define bins based on the data characteristics\n    # Using logarithmic-style bins for better distribution visibility\n    bins = [\n        (1, 1, \"1\"),\n        (2, 5, \"2-5\"),\n        (6, 10, \"6-10\"),\n        (11, 20, \"11-20\"),\n        (21, 50, \"21-50\"),\n        (51, 100, \"51-100\"),\n        (101, 200, \"101-200\"),\n        (201, 500, \"201-500\"),\n        (501, 1000, \"501-1000\"),\n        (1001, float(\"inf\"), \"1000+\"),\n    ]\n\n    # Calculate both distributions\n    group_distribution = []\n    test_distribution = []\n\n    for min_val, max_val, label in bins:\n        # Group count distribution\n        groups_in_bin = [tc for tc in test_counts if min_val <= tc <= max_val]\n        group_count = len(groups_in_bin)\n\n        if group_count > 0:\n            group_distribution.append((label, group_count))\n\n            # Test count distribution with group count\n            tests_in_bin = sum(groups_in_bin)\n            # Added group_count\n            test_distribution.append((label, tests_in_bin, 0, group_count))\n\n    # Calculate cumulative values For the table sorted from largest to\n    # smallest:\n    #   Row N shows: if we exclude groups of size N and smaller, what\n    #                percent of tests remain?\n    #   Row N shows: if we include groups of size N and\n    #                larger, how many groups is that?\n\n    cumulative_remaining_tests = 0\n    cumulative_groups = 0\n\n    # Process from bottom to top\n    for i in range(len(test_distribution) - 1, -1, -1):\n        label, tests_in_bin, _, group_count = test_distribution[i]\n        test_distribution[i] = (label, tests_in_bin, cumulative_remaining_tests, cumulative_groups)\n        cumulative_remaining_tests += tests_in_bin\n        cumulative_groups += group_count\n\n    return group_distribution, test_distribution\n\n\ndef analyze_pre_alloc_folder(folder: Path) -> Dict:\n    \"\"\"Analyze pre-allocation folder and return statistics.\"\"\"\n    pre_alloc_groups = PreAllocGroups.from_folder(folder, lazy_load=False)\n\n    # Basic stats\n    total_groups = len(pre_alloc_groups)\n    total_tests = sum(group.test_count for group in pre_alloc_groups.values())\n    total_accounts = sum(group.pre_account_count for group in pre_alloc_groups.values())\n\n    # Group by fork\n    fork_stats: Dict[str, Dict] = defaultdict(lambda: {\"groups\": 0, \"tests\": 0})\n    for group in pre_alloc_groups.values():\n        fork_stats[group.fork.name()][\"groups\"] += 1\n        fork_stats[group.fork.name()][\"tests\"] += group.test_count\n\n    # Group by test module\n    module_stats: Dict[str, Dict] = defaultdict(lambda: {\"groups\": set(), \"tests\": 0})\n    for hash_key, group in pre_alloc_groups.items():\n        # Count tests per module in this group\n        module_test_count: defaultdict = defaultdict(int)\n        for test_id in group.test_ids:\n            module = extract_test_module(test_id)\n            module_test_count[module] += 1\n\n        # Add to module stats\n        for module, test_count in module_test_count.items():\n            module_stats[module][\"groups\"].add(hash_key)\n            module_stats[module][\"tests\"] += test_count\n\n    # Convert sets to counts\n    for module in module_stats:\n        module_stats[module][\"groups\"] = len(module_stats[module][\"groups\"])\n\n    # Per-group details\n    group_details = []\n    for hash_key, group in pre_alloc_groups.items():\n        group_details.append(\n            {\n                \"hash\": hash_key[:8] + \"...\",  # Shortened hash for display\n                \"tests\": group.test_count,\n                \"accounts\": group.pre_account_count,\n                \"fork\": group.fork.name(),\n            }\n        )\n\n    # Calculate frequency distribution of group sizes\n    group_distribution, test_distribution = calculate_size_distribution(\n        [g[\"tests\"] for g in group_details]  # type: ignore\n    )\n\n    # Analyze test functions split across multiple size-1 groups\n    class SplitTestFunction(CamelModel):\n        groups: int = 0\n        forks: Set[str] = Field(default_factory=set)\n\n    split_test_functions: Dict[str, SplitTestFunction] = defaultdict(lambda: SplitTestFunction())\n\n    # Process all size-1 groups directly from pre_state\n    for _hash_key, group_data in pre_alloc_groups.items():\n        if group_data.test_count == 1:  # Size-1 group\n            test_id = group_data.test_ids[0]\n            test_function = extract_test_function(test_id)\n            fork = group_data.fork.name()\n\n            split_test_functions[test_function].groups += 1\n            split_test_functions[test_function].forks.add(fork)\n\n    # Filter to only test functions with multiple size-1 groups and calculate\n    # ratios\n    split_functions = {}\n    for func, split_test_function in split_test_functions.items():\n        if split_test_function.groups > 1:\n            fork_count = len(split_test_function.forks)\n            groups_per_fork = (\n                split_test_function.groups / fork_count\n                if fork_count > 0\n                else split_test_function.groups\n            )\n            split_functions[func] = {\n                \"total_groups\": split_test_function.groups,\n                \"fork_count\": fork_count,\n                \"groups_per_fork\": groups_per_fork,\n            }\n\n    return {\n        \"total_groups\": total_groups,\n        \"total_tests\": total_tests,\n        \"total_accounts\": total_accounts,\n        \"fork_stats\": dict(fork_stats),\n        \"module_stats\": dict(module_stats),\n        \"group_details\": group_details,\n        \"group_distribution\": group_distribution,\n        \"test_distribution\": test_distribution,\n        \"split_functions\": split_functions,\n    }\n\n\ndef display_stats(stats: Dict, console: Console, verbose: int = 0) -> None:\n    \"\"\"Display statistics in a formatted way.\"\"\"\n    # Overall summary\n    console.print(\"\\n[bold cyan]Pre-Allocation Statistics Summary[/bold cyan]\")\n    console.print(f\"Total groups: [green]{stats['total_groups']}[/green]\")\n    console.print(f\"Total tests: [green]{stats['total_tests']}[/green]\")\n    console.print(f\"Total accounts: [green]{stats['total_accounts']}[/green]\")\n    if stats.get(\"skipped_count\", 0) > 0:\n        console.print(\n            f\"Skipped groups: [yellow]{stats['skipped_count']}[/yellow] \"\n            \"(use --verbose to see details)\"\n        )\n\n    # Per-group details table (only with -v or -vv)\n    if verbose >= 1:\n        console.print(\"\\n[bold yellow]Tests and Accounts per Group[/bold yellow]\")\n        group_table = Table(show_header=True, header_style=\"bold magenta\")\n        group_table.add_column(\"Group Hash\", style=\"dim\")\n        group_table.add_column(\"Fork\", style=\"cyan\")\n        group_table.add_column(\"Tests\", justify=\"right\")\n        group_table.add_column(\"Accounts\", justify=\"right\")\n\n        # Sort by test count (descending)\n        sorted_groups = sorted(stats[\"group_details\"], key=lambda x: -x[\"tests\"])\n\n        # Show all groups if -vv, otherwise top 20\n        groups_to_show = sorted_groups if verbose >= 2 else sorted_groups[:20]\n\n        for group in groups_to_show:\n            group_table.add_row(\n                group[\"hash\"],\n                group[\"fork\"],\n                str(group[\"tests\"]),\n                str(group[\"accounts\"]),\n            )\n\n        if verbose < 2 and len(stats[\"group_details\"]) > 20:\n            group_table.add_row(\n                \"...\",\n                \"...\",\n                \"...\",\n                \"...\",\n            )\n\n        console.print(group_table)\n\n    # Fork statistics table\n    console.print(\"\\n[bold yellow]Groups and Tests per Fork[/bold yellow]\")\n    fork_table = Table(show_header=True, header_style=\"bold magenta\")\n    fork_table.add_column(\"Fork\", style=\"cyan\")\n    fork_table.add_column(\"Groups\", justify=\"right\")\n    fork_table.add_column(\"Tests\", justify=\"right\")\n    fork_table.add_column(\"Avg Tests/Group\", justify=\"right\")\n\n    # Sort forks by name\n    sorted_forks = sorted(stats[\"fork_stats\"].items())\n\n    for fork, fork_data in sorted_forks:\n        avg_tests = fork_data[\"tests\"] / fork_data[\"groups\"] if fork_data[\"groups\"] > 0 else 0\n        fork_table.add_row(\n            fork,\n            str(fork_data[\"groups\"]),\n            str(fork_data[\"tests\"]),\n            f\"{avg_tests:.1f}\",\n        )\n\n    console.print(fork_table)\n\n    # Group size frequency distribution table\n    console.print(\"\\n[bold yellow]Group Size Distribution[/bold yellow]\")\n    dist_table = Table(show_header=True, header_style=\"bold magenta\")\n    dist_table.add_column(\"Test Count Range\", style=\"cyan\")\n    dist_table.add_column(\"Number of Groups\", justify=\"right\")\n    dist_table.add_column(\"Percentage\", justify=\"right\")\n\n    total_groups_in_dist = sum(count for _, count in stats.get(\"group_distribution\", []))\n\n    for size_range, count in stats.get(\"group_distribution\", []):\n        percentage = (count / total_groups_in_dist * 100) if total_groups_in_dist > 0 else 0\n        dist_table.add_row(\n            size_range,\n            str(count),\n            f\"{percentage:.1f}%\",\n        )\n\n    console.print(dist_table)\n\n    # Test coverage distribution table\n    console.print(\"\\n[bold yellow]Test Coverage by Group Size[/bold yellow]\")\n    coverage_table = Table(show_header=True, header_style=\"bold magenta\")\n    coverage_table.add_column(\"Test Count Range\", style=\"cyan\")\n    coverage_table.add_column(\"Tests in Range\", justify=\"right\")\n    coverage_table.add_column(\"Coverage if Excluded (%)\", justify=\"right\")\n    coverage_table.add_column(\"Cumulative Groups\", justify=\"right\")\n\n    total_tests = stats.get(\"total_tests\", 0)\n    total_groups = stats.get(\"total_groups\", 0)\n\n    # Define bin order from largest to smallest for proper sorting\n    bin_order = [\n        \"1000+\",\n        \"501-1000\",\n        \"201-500\",\n        \"101-200\",\n        \"51-100\",\n        \"21-50\",\n        \"11-20\",\n        \"6-10\",\n        \"2-5\",\n        \"1\",\n    ]\n\n    # Create a mapping for easy lookup\n    test_dist_map = {item[0]: item for item in stats.get(\"test_distribution\", [])}\n\n    # Display in the defined order\n    test_dist_sorted = [\n        test_dist_map[bin_range] for bin_range in bin_order if bin_range in test_dist_map\n    ]\n\n    # Need to recalculate cumulative groups from top for display\n    cumulative_groups_display = 0\n    for _i, (size_range, tests_in_range, cumulative_remaining_tests, _) in enumerate(\n        test_dist_sorted\n    ):\n        coverage_percentage = (\n            (cumulative_remaining_tests / total_tests * 100) if total_tests > 0 else 0\n        )\n\n        # Find how many groups in this bin\n        groups_in_bin = next(\n            (count for label, count in stats.get(\"group_distribution\", []) if label == size_range),\n            0,\n        )\n        cumulative_groups_display += groups_in_bin\n\n        coverage_table.add_row(\n            size_range,\n            str(tests_in_range),\n            f\"{coverage_percentage:.1f}%\",\n            f\"{cumulative_groups_display} ({cumulative_groups_display / total_groups * 100:.1f}%)\"\n            if total_groups > 0\n            else \"0\",\n        )\n\n    console.print(coverage_table)\n\n    # Module statistics table (only with -v or -vv)\n    if verbose >= 1:\n        console.print(\"\\n[bold yellow]Groups and Tests per Test Module[/bold yellow]\")\n        module_table = Table(show_header=True, header_style=\"bold magenta\")\n        module_table.add_column(\"Test Module\", style=\"dim\")\n        module_table.add_column(\"Groups\", justify=\"right\")\n        module_table.add_column(\"Tests\", justify=\"right\")\n        module_table.add_column(\"Avg Tests/Group\", justify=\"right\")\n\n        # Sort modules by group count (descending) - shows execution complexity\n        sorted_modules = sorted(\n            stats[\"module_stats\"].items(),\n            # Secondary sort by tests\n            key=lambda x: (-x[1][\"groups\"], -x[1][\"tests\"]),\n        )\n\n        # Show all modules if -vv, otherwise top 15\n        modules_to_show = sorted_modules if verbose >= 2 else sorted_modules[:15]\n\n        for module, module_data in modules_to_show:\n            # Shorten module path for display\n            if module.startswith(\"tests/\"):\n                module_display = module[6:]  # Remove \"tests/\" prefix\n            else:\n                module_display = module\n\n            avg_tests = (\n                module_data[\"tests\"] / module_data[\"groups\"] if module_data[\"groups\"] > 0 else 0\n            )\n            module_table.add_row(\n                module_display,\n                str(module_data[\"groups\"]),\n                str(module_data[\"tests\"]),\n                f\"{avg_tests:.1f}\",\n            )\n\n        if verbose < 2 and len(stats[\"module_stats\"]) > 15:\n            module_table.add_row(\n                \"...\",\n                \"...\",\n                \"...\",\n                \"...\",\n            )\n\n        console.print(module_table)\n\n    # Split test functions analysis (only show if there are any)\n    if stats.get(\"split_functions\"):\n        console.print(\"\\n[bold yellow]Test Functions Split Across Multiple Groups[/bold yellow]\")\n        console.print(\n            \"[dim]These test functions create multiple size-1 groups (due to different \"\n            \"forks/parameters), preventing pre-allocation group optimization:[/dim]\",\n            highlight=False,\n        )\n\n        split_table = Table(show_header=True, header_style=\"bold magenta\")\n        split_table.add_column(\"Test Function\", style=\"dim\")\n        split_table.add_column(\"Total Groups\", justify=\"right\")\n        split_table.add_column(\"Fork Count\", justify=\"right\")\n        split_table.add_column(\"Groups/Fork\", justify=\"right\", style=\"yellow\")\n\n        # Sort by groups per fork (descending) to show worst offenders first\n        sorted_split = sorted(\n            stats[\"split_functions\"].items(), key=lambda x: x[1][\"groups_per_fork\"], reverse=True\n        )\n\n        for test_function, data in sorted_split:\n            # Shorten function path for display\n            display_function = test_function\n            if display_function.startswith(\"tests/\"):\n                display_function = display_function[6:]  # Remove \"tests/\"\n                # prefix\n\n            split_table.add_row(\n                display_function,\n                str(data[\"total_groups\"]),\n                str(data[\"fork_count\"]),\n                f\"{data['groups_per_fork']:.1f}\",\n            )\n\n        console.print(split_table)\n\n        # Summary of optimization potential\n        total_split_groups = sum(\n            data[\"total_groups\"] for data in stats[\"split_functions\"].values()\n        )\n        total_split_functions = len(stats[\"split_functions\"])\n\n        console.print(\n            f\"\\n[yellow]Optimization Potential:[/yellow] Excluding these {total_split_functions} \"\n            f\"split functions would save {total_split_groups} groups\"\n        )\n\n    # Verbosity hint\n    console.print()\n    if verbose == 0:\n        console.print(\n            \"[dim]Hint: Use -v to see detailed group and module statistics, or -vv to see all \"\n            \"groups and modules[/dim]\"\n        )\n    elif verbose == 1:\n        console.print(\n            \"[dim]Hint: Use -vv to see all groups and modules (currently showing top entries \"\n            \"only)[/dim]\"\n        )\n\n\n@click.command()\n@click.argument(\n    \"pre_alloc_folder\",\n    type=click.Path(exists=True, path_type=Path),\n    default=\"fixtures/blockchain_tests_engine_x/pre_alloc\",\n)\n@click.option(\n    \"--verbose\",\n    \"-v\",\n    count=True,\n    help=\"Show verbose output (-v for warnings, -vv for all groups)\",\n)\ndef main(pre_alloc_folder: Path, verbose: int) -> None:\n    \"\"\"\n    Display statistics about pre-allocation groups.\n\n    This script analyzes a pre_alloc folder generated by the test framework's\n    pre-allocation group optimization feature and displays:\n\n    - Total number of groups, tests, and accounts\n    - Number of tests and accounts per group (tabulated)\n    - Number of groups and tests per fork (tabulated)\n    - Number of groups and tests per test module (tabulated)\n\n    The pre_alloc file is generated when running tests with the\n    --generate-pre-alloc-groups and --use-pre-alloc-groups flags to optimize\n    test execution by grouping tests with identical pre-allocation state.\n    \"\"\"\n    console = Console()\n\n    try:\n        stats = analyze_pre_alloc_folder(pre_alloc_folder)\n        display_stats(stats, console, verbose=verbose)\n    except FileNotFoundError:\n        console.print(f\"[red]Error: Folder not found: {pre_alloc_folder}[/red]\")\n        raise click.Abort() from None\n    except Exception as e:\n        console.print(f\"[red]Error: {e}[/red]\")\n        raise click.Abort() from None\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "src/cli/tests/__init__.py",
    "content": "\"\"\"Tests for scripts and apps in `cli` .\"\"\"\n"
  },
  {
    "path": "src/cli/tests/test_eofwrap.py",
    "content": "\"\"\"Tests for the eofwrap module and click CLI.\"\"\"\n\nfrom typing import Any\n\nimport pytest\n\nfrom ethereum_test_base_types.conversions import to_hex\nfrom ethereum_test_tools import Opcodes as Op\nfrom ethereum_test_types.eof.v1 import Container\n\nfrom ..eofwrap import wrap_code\n\n\n@pytest.mark.parametrize(\n    \"code,result\",\n    [\n        [Op.STOP, Container.Code(Op.STOP)],\n        [Op.RETURN(0, 0), Container.Code(Op.RETURN(0, 0))],\n        [Op.REVERT(0, 0), Container.Code(Op.REVERT(0, 0))],\n        [Op.INVALID, Container.Code(Op.INVALID)],\n        [Op.PUSH1, Container.Code(Op.PUSH1[0] + Op.STOP)],\n        [Op.PUSH1[0], Container.Code(Op.PUSH1[0] + Op.STOP)],\n        [Op.PUSH1[0] + Op.STOP, Container.Code(Op.PUSH1[0] + Op.STOP)],\n        [Op.STOP + Op.STOP, Container.Code(Op.STOP)],\n        [Op.RETURN(0, 0) + Op.STOP, Container.Code(Op.RETURN(0, 0))],\n        [Op.REVERT(0, 0) + Op.STOP, Container.Code(Op.REVERT(0, 0))],\n        [Op.INVALID + Op.STOP, Container.Code(Op.INVALID)],\n        [Op.ADDRESS, Container.Code(Op.ADDRESS + Op.STOP)],\n        [Op.ADDRESS + Op.STOP, Container.Code(Op.ADDRESS + Op.STOP)],\n        [Op.ADDRESS + Op.RETURN(0, 0), Container.Code(Op.ADDRESS + Op.RETURN(0, 0))],\n        [Op.ADDRESS + Op.REVERT(0, 0), Container.Code(Op.ADDRESS + Op.REVERT(0, 0))],\n        [Op.ADDRESS + Op.INVALID, Container.Code(Op.ADDRESS + Op.INVALID)],\n        [Op.ADDRESS + Op.STOP + Op.STOP, Container.Code(Op.ADDRESS + Op.STOP)],\n        [Op.ADDRESS + Op.RETURN(0, 0) + Op.STOP, Container.Code(Op.ADDRESS + Op.RETURN(0, 0))],\n        [Op.ADDRESS + Op.REVERT(0, 0) + Op.STOP, Container.Code(Op.ADDRESS + Op.REVERT(0, 0))],\n        [Op.ADDRESS + Op.INVALID + Op.STOP, Container.Code(Op.ADDRESS + Op.INVALID)],\n        [Op.GAS + Op.STOP, Container.Code(Op.GAS + Op.STOP)],\n        [Op.GAS + Op.RETURN(0, 0), Container.Code(Op.GAS + Op.RETURN(0, 0))],\n        [Op.GAS + Op.REVERT(0, 0), Container.Code(Op.GAS + Op.REVERT(0, 0))],\n        [Op.GAS + Op.INVALID, Container.Code(Op.GAS + Op.INVALID)],\n        [Op.RJUMPV[1, 2, 3], Container.Code(Op.RJUMPV[1, 2, 3] + Op.STOP)],\n        [Op.RJUMPV, Container.Code(Op.RJUMPV + Op.STOP)],\n        [\n            Op.RJUMPV[-1, 0x7FFF, -0x7FFF],\n            Container.Code(Op.RJUMPV[-1, 0x7FFF, -0x7FFF] + Op.STOP),\n        ],\n    ],\n    ids=lambda param: to_hex(param),\n)\ndef test_wrap_code(code: Any, result: Any) -> None:\n    \"\"\"Tests for the EOF wrapping logic and heuristics.\"\"\"\n    assert wrap_code(bytes(code)) == result\n"
  },
  {
    "path": "src/cli/tests/test_evm_bytes.py",
    "content": "\"\"\"Test suite for `cli.evm_bytes` module.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom ..evm_bytes import process_evm_bytes_string\n\nbasic_vector = [\n    \"0x60008080808061AAAA612d5ff1600055\",\n    \"Op.PUSH1[0x0] + Op.DUP1 + Op.DUP1 + Op.DUP1 + Op.DUP1 + \"\n    \"Op.PUSH2[0xaaaa] + Op.PUSH2[0x2d5f] + Op.CALL + Op.PUSH1[0x0] + \"\n    \"Op.SSTORE\",\n]\ncomplex_vector = [\n    \"0x7fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebf5f527fc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedf6020527fe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff60405260786040356020355f35608a565b5f515f55602051600155604051600255005b5e56\",  # noqa: E501\n    \"Op.PUSH32[0xa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebf] + Op.PUSH0 + Op.MSTORE + Op.PUSH32[0xc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedf] + Op.PUSH1[0x20] + Op.MSTORE + Op.PUSH32[0xe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff] + Op.PUSH1[0x40] + Op.MSTORE + Op.PUSH1[0x78] + Op.PUSH1[0x40] + Op.CALLDATALOAD + Op.PUSH1[0x20] + Op.CALLDATALOAD + Op.PUSH0 + Op.CALLDATALOAD + Op.PUSH1[0x8a] + Op.JUMP + Op.JUMPDEST + Op.PUSH0 + Op.MLOAD + Op.PUSH0 + Op.SSTORE + Op.PUSH1[0x20] + Op.MLOAD + Op.PUSH1[0x1] + Op.SSTORE + Op.PUSH1[0x40] + Op.MLOAD + Op.PUSH1[0x2] + Op.SSTORE + Op.STOP + Op.JUMPDEST + Op.MCOPY + Op.JUMP\",  # noqa: E501\n]\nrjump_vector = [\n    \"0xe0fffe\",\n    \"Op.RJUMP[-0x2]\",\n]\nrjumpi_vector = [\n    \"0xe1fffe\",\n    \"Op.RJUMPI[-0x2]\",\n]\nrjumpv_vector = [\n    \"0xe213b1465aef60276095472e3250cf64736f6c63430008150033a26469706673582212206eab0a7969fe\",\n    \"Op.RJUMPV[-0x4eba, 0x5aef, 0x6027, 0x6095, 0x472e, 0x3250, -0x309c, \"\n    \"0x736f, 0x6c63, 0x4300,\" + \" 0x815, 0x33, -0x5d9c, 0x6970, 0x6673, 0x5822, 0x1220, 0x6eab, \"\n    \"0xa79, 0x69fe]\",\n]\n\n\n@pytest.mark.parametrize(\n    \"evm_bytes, python_opcodes\",\n    [\n        (basic_vector[0], basic_vector[1]),\n        (basic_vector[0][2:], basic_vector[1]),  # no \"0x\" prefix\n        (complex_vector[0], complex_vector[1]),\n        (complex_vector[0][2:], complex_vector[1]),  # no \"0x\" prefix\n        (rjump_vector[0], rjump_vector[1]),\n        (rjump_vector[0][2:], rjump_vector[1]),  # no \"0x\" prefix\n        (rjumpi_vector[0], rjumpi_vector[1]),\n        (rjumpi_vector[0][2:], rjumpi_vector[1]),  # no \"0x\" prefix\n        (rjumpv_vector[0], rjumpv_vector[1]),\n        (rjumpv_vector[0][2:], rjumpv_vector[1]),  # no \"0x\" prefix\n    ],\n)\ndef test_evm_bytes(evm_bytes: str, python_opcodes: str) -> None:\n    \"\"\"Test evm_bytes using the basic and complex vectors.\"\"\"\n    assert process_evm_bytes_string(evm_bytes) == python_opcodes\n\n\nDUPLICATES = [Op.NOOP]\n\n\n@pytest.mark.parametrize(\n    \"opcode\",\n    [op for op in Op if op not in DUPLICATES],\n    ids=lambda op: op._name_,\n)\ndef test_individual_opcodes(opcode: Op) -> None:\n    \"\"\"Test each opcode individually.\"\"\"\n    data_portion = b\"\"\n    if opcode.data_portion_length > 0:\n        expected_output = f\"Op.{opcode._name_}[0x0]\"\n        data_portion = b\"\\x00\" * opcode.data_portion_length\n    elif opcode == Op.RJUMPV:\n        expected_output = f\"Op.{opcode._name_}[0x0]\"\n        data_portion = b\"\\0\\0\\0\"\n    else:\n        expected_output = f\"Op.{opcode._name_}\"\n\n    bytecode = opcode.int().to_bytes(1, byteorder=\"big\") + data_portion\n    assert process_evm_bytes_string(\"0x\" + bytecode.hex()) == expected_output\n\n\ndef test_invalid_opcode() -> None:\n    \"\"\"Invalid hex string.\"\"\"\n    with pytest.raises(ValueError):\n        process_evm_bytes_string(\"0xZZ\")\n\n\ndef test_unknown_opcode() -> None:\n    \"\"\"Opcode not defined in Op.\"\"\"\n    with pytest.raises(ValueError):\n        process_evm_bytes_string(\"0x0F\")\n        process_evm_bytes_string(\"0x0F\")\n"
  },
  {
    "path": "src/cli/tests/test_fuzzer_bridge.py",
    "content": "\"\"\"Test suite for fuzzer bridge DTO parsing and conversion.\"\"\"\n\nimport json\nfrom pathlib import Path\nfrom typing import Any, Dict\n\nimport pytest\nfrom pydantic import ValidationError\n\nfrom ethereum_test_base_types import Address, HexNumber\nfrom ethereum_test_forks import Osaka\nfrom ethereum_test_tools import Account, AuthorizationTuple, Transaction\nfrom ethereum_test_types import Alloc, Environment\n\nfrom ..fuzzer_bridge.converter import (\n    blockchain_test_from_fuzzer,\n    create_sender_eoa_map,\n    fuzzer_account_to_eest_account,\n    fuzzer_authorization_to_eest,\n    fuzzer_transaction_to_eest_transaction,\n)\nfrom ..fuzzer_bridge.models import (\n    FuzzerAccountInput,\n    FuzzerAuthorizationInput,\n    FuzzerOutput,\n    FuzzerTransactionInput,\n)\n\n\ndef load_fuzzer_vector(filename: str) -> Dict[str, Any]:\n    \"\"\"\n    Load fuzzer test vector from vectors/ directory.\n\n    Follows the pattern from\n    tests/prague/eip2537_bls_12_381_precompiles/helpers.py\n    \"\"\"\n    vector_path = Path(__file__).parent / \"vectors\" / filename\n    with open(vector_path) as f:\n        return json.load(f)\n\n\nclass TestFuzzerOutputParsing:\n    \"\"\"Test parsing of fuzzer output JSON into DTOs.\"\"\"\n\n    @pytest.fixture\n    def fuzzer_data(self) -> Dict[str, Any]:\n        \"\"\"Load test vector.\"\"\"\n        return load_fuzzer_vector(\"fuzzer_test_0.json\")\n\n    def test_parse_fuzzer_output(self, fuzzer_data: Dict[str, Any]) -> None:\n        \"\"\"Test parsing complete fuzzer output.\"\"\"\n        fuzzer_output = FuzzerOutput(**fuzzer_data)\n\n        assert fuzzer_output.version == \"2.0\"\n        assert fuzzer_output.fork == Osaka\n        assert fuzzer_output.chain_id == HexNumber(1)\n        assert len(fuzzer_output.transactions) == 17\n        assert len(fuzzer_output.accounts) > 0\n        assert fuzzer_output.parent_beacon_block_root is not None  # EIP-4788\n\n    def test_parse_account_with_private_key(self, fuzzer_data: Dict[str, Any]) -> None:\n        \"\"\"Test parsing account with private key.\"\"\"\n        account_data = next(acc for acc in fuzzer_data[\"accounts\"].values() if \"privateKey\" in acc)\n\n        account = FuzzerAccountInput(**account_data)\n\n        assert account.private_key is not None\n        assert isinstance(account.balance, HexNumber)\n        assert isinstance(account.nonce, HexNumber)\n\n    def test_parse_account_without_private_key(self, fuzzer_data: Dict[str, Any]) -> None:\n        \"\"\"Test parsing contract account (no private key).\"\"\"\n        account_data = next(\n            (acc for acc in fuzzer_data[\"accounts\"].values() if \"privateKey\" not in acc),\n            None,\n        )\n\n        if account_data:\n            account = FuzzerAccountInput(**account_data)\n            assert account.private_key is None\n\n    def test_parse_transaction_with_authorization_list(self, fuzzer_data: Dict[str, Any]) -> None:\n        \"\"\"Test parsing EIP-7702 transaction with authorization list.\"\"\"\n        tx_data = next(\n            (\n                tx\n                for tx in fuzzer_data[\"transactions\"]\n                if \"authorizationList\" in tx and tx[\"authorizationList\"]\n            ),\n            None,\n        )\n\n        if tx_data:\n            tx = FuzzerTransactionInput(**tx_data)\n\n            assert tx.authorization_list is not None\n            assert len(tx.authorization_list) > 0\n            assert isinstance(tx.authorization_list[0], FuzzerAuthorizationInput)\n\n            # Verify authorization fields\n            auth = tx.authorization_list[0]\n            assert isinstance(auth.chain_id, HexNumber)\n            assert isinstance(auth.address, Address)\n            assert isinstance(auth.nonce, HexNumber)\n\n    def test_parse_authorization_tuple(self, fuzzer_data: Dict[str, Any]) -> None:\n        \"\"\"Test parsing individual authorization tuple.\"\"\"\n        tx_with_auth = next(\n            (\n                tx\n                for tx in fuzzer_data[\"transactions\"]\n                if \"authorizationList\" in tx and tx[\"authorizationList\"]\n            ),\n            None,\n        )\n\n        if tx_with_auth:\n            auth_data = tx_with_auth[\"authorizationList\"][0]\n            auth = FuzzerAuthorizationInput(**auth_data)\n\n            assert auth.chain_id is not None\n            assert auth.address is not None\n            assert auth.v is not None\n            assert auth.r is not None\n            assert auth.s is not None\n\n    def test_parse_environment(self, fuzzer_data: Dict[str, Any]) -> None:\n        \"\"\"Test Environment parsing (using EEST Environment directly).\"\"\"\n        env = Environment(**fuzzer_data[\"env\"])\n\n        assert env.fee_recipient is not None\n        assert env.gas_limit is not None\n        assert env.number is not None\n        assert env.timestamp is not None\n\n\nclass TestDTOConversion:\n    \"\"\"Test conversion from DTOs to EEST domain models.\"\"\"\n\n    @pytest.fixture\n    def fuzzer_output(self) -> FuzzerOutput:\n        \"\"\"Parsed fuzzer output.\"\"\"\n        data = load_fuzzer_vector(\"fuzzer_test_0.json\")\n        return FuzzerOutput(**data)\n\n    def test_fuzzer_account_to_eest_account(self, fuzzer_output: FuzzerOutput) -> None:\n        \"\"\"Test account DTO to EEST Account conversion.\"\"\"\n        fuzzer_account = next(iter(fuzzer_output.accounts.values()))\n\n        eest_account = fuzzer_account_to_eest_account(fuzzer_account)\n\n        assert isinstance(eest_account, Account)\n        assert eest_account.balance == fuzzer_account.balance\n        assert eest_account.nonce == fuzzer_account.nonce\n        assert eest_account.code == fuzzer_account.code\n\n    def test_fuzzer_authorization_to_eest(self, fuzzer_output: FuzzerOutput) -> None:\n        \"\"\"Test authorization DTO to EEST AuthorizationTuple conversion.\"\"\"\n        tx_with_auth = next(\n            (tx for tx in fuzzer_output.transactions if tx.authorization_list), None\n        )\n\n        if tx_with_auth and tx_with_auth.authorization_list:\n            fuzzer_auth = tx_with_auth.authorization_list[0]\n\n            eest_auth = fuzzer_authorization_to_eest(fuzzer_auth)\n\n            assert isinstance(eest_auth, AuthorizationTuple)\n            assert eest_auth.chain_id == fuzzer_auth.chain_id\n            assert eest_auth.address == fuzzer_auth.address\n            assert eest_auth.nonce == fuzzer_auth.nonce\n\n    def test_create_sender_eoa_map(self, fuzzer_output: FuzzerOutput) -> None:\n        \"\"\"Test EOA map creation from accounts.\"\"\"\n        sender_map = create_sender_eoa_map(fuzzer_output.accounts)\n\n        # Verify all senders are valid\n        assert len(sender_map) > 0\n\n        for addr, eoa in sender_map.items():\n            # Verify private key matches address\n            assert Address(eoa) == addr\n\n    def test_sender_eoa_map_validates_address(self, fuzzer_output: FuzzerOutput) -> None:\n        \"\"\"Test that EOA map validates private key matches address.\"\"\"\n        # This test verifies the assertion in create_sender_eoa_map\n        sender_map = create_sender_eoa_map(fuzzer_output.accounts)\n\n        # All created EOAs should pass validation\n        assert all(Address(eoa) == addr for addr, eoa in sender_map.items())\n\n    def test_fuzzer_transaction_to_eest_transaction(self, fuzzer_output: FuzzerOutput) -> None:\n        \"\"\"Test transaction DTO to EEST Transaction conversion.\"\"\"\n        fuzzer_tx = fuzzer_output.transactions[0]\n        sender_map = create_sender_eoa_map(fuzzer_output.accounts)\n        sender_eoa = sender_map[fuzzer_tx.from_]\n\n        eest_tx = fuzzer_transaction_to_eest_transaction(fuzzer_tx, sender_eoa)\n\n        assert isinstance(eest_tx, Transaction)\n        assert eest_tx.sender == sender_eoa\n        assert eest_tx.to == fuzzer_tx.to\n        assert eest_tx.gas_limit == fuzzer_tx.gas  # Key mapping!\n        assert eest_tx.data == fuzzer_tx.data\n\n    def test_transaction_gas_field_mapping(self, fuzzer_output: FuzzerOutput) -> None:\n        \"\"\"Test critical field mapping: gas → gas_limit.\"\"\"\n        fuzzer_tx = fuzzer_output.transactions[0]\n        sender_map = create_sender_eoa_map(fuzzer_output.accounts)\n        sender_eoa = sender_map[fuzzer_tx.from_]\n\n        eest_tx = fuzzer_transaction_to_eest_transaction(fuzzer_tx, sender_eoa)\n\n        # Fuzzer uses 'gas' (JSON-RPC), EEST uses 'gas_limit'\n        assert eest_tx.gas_limit == fuzzer_tx.gas\n\n    def test_transaction_authorization_list_conversion(self, fuzzer_output: FuzzerOutput) -> None:\n        \"\"\"Test authorization list conversion in transaction.\"\"\"\n        tx_with_auth = next(\n            (tx for tx in fuzzer_output.transactions if tx.authorization_list), None\n        )\n\n        if tx_with_auth and tx_with_auth.authorization_list:\n            sender_map = create_sender_eoa_map(fuzzer_output.accounts)\n            sender_eoa = sender_map[tx_with_auth.from_]\n\n            eest_tx = fuzzer_transaction_to_eest_transaction(tx_with_auth, sender_eoa)\n\n            assert eest_tx.authorization_list is not None\n            assert len(eest_tx.authorization_list) == len(tx_with_auth.authorization_list)\n            assert all(isinstance(auth, AuthorizationTuple) for auth in eest_tx.authorization_list)\n\n\nclass TestBlockchainTestGeneration:\n    \"\"\"Test end-to-end conversion to BlockchainTest.\"\"\"\n\n    @pytest.fixture\n    def fuzzer_output(self) -> FuzzerOutput:\n        \"\"\"Parsed fuzzer output.\"\"\"\n        data = load_fuzzer_vector(\"fuzzer_test_0.json\")\n        return FuzzerOutput(**data)\n\n    def test_blockchain_test_from_fuzzer_single_block(self, fuzzer_output: FuzzerOutput) -> None:\n        \"\"\"Test single-block blockchain test generation.\"\"\"\n        blockchain_test = blockchain_test_from_fuzzer(\n            fuzzer_output,\n            fork=Osaka,\n            num_blocks=1,\n        )\n\n        assert blockchain_test.pre is not None\n        assert len(blockchain_test.blocks) == 1\n        assert len(blockchain_test.blocks[0].txs) == 17\n        assert blockchain_test.genesis_environment is not None\n\n    def test_blockchain_test_multi_block_distribute(self, fuzzer_output: FuzzerOutput) -> None:\n        \"\"\"Test multi-block generation with distribute strategy.\"\"\"\n        blockchain_test = blockchain_test_from_fuzzer(\n            fuzzer_output,\n            fork=Osaka,\n            num_blocks=3,\n            block_strategy=\"distribute\",\n        )\n\n        assert len(blockchain_test.blocks) == 3\n\n        # Verify all transactions distributed\n        total_txs = sum(len(block.txs) for block in blockchain_test.blocks)\n        assert total_txs == 17\n\n        # Verify transactions maintain nonce order\n        assert len(blockchain_test.blocks[0].txs) > 0\n\n    def test_blockchain_test_multi_block_first_block(self, fuzzer_output: FuzzerOutput) -> None:\n        \"\"\"Test multi-block generation with first-block strategy.\"\"\"\n        blockchain_test = blockchain_test_from_fuzzer(\n            fuzzer_output,\n            fork=Osaka,\n            num_blocks=3,\n            block_strategy=\"first-block\",\n        )\n\n        assert len(blockchain_test.blocks) == 3\n        assert len(blockchain_test.blocks[0].txs) == 17\n        assert len(blockchain_test.blocks[1].txs) == 0\n        assert len(blockchain_test.blocks[2].txs) == 0\n\n    def test_blockchain_test_pre_state(self, fuzzer_output: FuzzerOutput) -> None:\n        \"\"\"Test pre-state (Alloc) generation.\"\"\"\n        blockchain_test = blockchain_test_from_fuzzer(\n            fuzzer_output,\n            fork=Osaka,\n        )\n\n        assert isinstance(blockchain_test.pre, Alloc)\n        # Verify all accounts are in pre-state\n        for addr in fuzzer_output.accounts:\n            assert addr in blockchain_test.pre\n\n    def test_blockchain_test_genesis_environment(self, fuzzer_output: FuzzerOutput) -> None:\n        \"\"\"Test genesis environment derivation.\"\"\"\n        blockchain_test = blockchain_test_from_fuzzer(\n            fuzzer_output,\n            fork=Osaka,\n        )\n\n        genesis_env = blockchain_test.genesis_environment\n\n        assert genesis_env.number == 0\n        # Genesis timestamp should be 12 seconds before block 1\n        assert int(genesis_env.timestamp) == int(fuzzer_output.env.timestamp) - 12\n\n    def test_blockchain_test_block_timestamps(self, fuzzer_output: FuzzerOutput) -> None:\n        \"\"\"Test block timestamp incrementing.\"\"\"\n        blockchain_test = blockchain_test_from_fuzzer(\n            fuzzer_output,\n            fork=Osaka,\n            num_blocks=3,\n            block_time=12,\n        )\n\n        # Check timestamps increment correctly\n        base_ts = int(fuzzer_output.env.timestamp)\n        assert blockchain_test.blocks[0].timestamp == base_ts\n        assert blockchain_test.blocks[1].timestamp == base_ts + 12\n        assert blockchain_test.blocks[2].timestamp == base_ts + 24\n\n    def test_blockchain_test_beacon_root_first_block_only(\n        self, fuzzer_output: FuzzerOutput\n    ) -> None:\n        \"\"\"Test parent beacon block root only in first block (EIP-4788).\"\"\"\n        blockchain_test = blockchain_test_from_fuzzer(\n            fuzzer_output,\n            fork=Osaka,\n            num_blocks=3,\n        )\n\n        # First block should have beacon root\n        assert blockchain_test.blocks[0].parent_beacon_block_root is not None\n\n        # Subsequent blocks should NOT have beacon root\n        assert blockchain_test.blocks[1].parent_beacon_block_root is None\n        assert blockchain_test.blocks[2].parent_beacon_block_root is None\n\n\nclass TestEIPFeatures:\n    \"\"\"Test EIP-specific feature handling.\"\"\"\n\n    @pytest.fixture\n    def fuzzer_output(self) -> FuzzerOutput:\n        \"\"\"Parsed fuzzer output.\"\"\"\n        data = load_fuzzer_vector(\"fuzzer_test_0.json\")\n        return FuzzerOutput(**data)\n\n    def test_eip7702_authorization_lists(self, fuzzer_output: FuzzerOutput) -> None:\n        \"\"\"Test EIP-7702 authorization list handling.\"\"\"\n        blockchain_test = blockchain_test_from_fuzzer(\n            fuzzer_output,\n            fork=Osaka,\n        )\n\n        # Find transactions with authorization lists\n        txs_with_auth = [\n            tx for block in blockchain_test.blocks for tx in block.txs if tx.authorization_list\n        ]\n\n        assert len(txs_with_auth) > 0\n\n        for tx in txs_with_auth:\n            if tx.authorization_list:\n                assert all(isinstance(auth, AuthorizationTuple) for auth in tx.authorization_list)\n\n    def test_eip4788_parent_beacon_block_root(self, fuzzer_output: FuzzerOutput) -> None:\n        \"\"\"Test EIP-4788 parent beacon block root handling.\"\"\"\n        blockchain_test = blockchain_test_from_fuzzer(\n            fuzzer_output,\n            fork=Osaka,\n        )\n\n        # Beacon root should match fuzzer output\n        assert (\n            blockchain_test.blocks[0].parent_beacon_block_root\n            == fuzzer_output.parent_beacon_block_root\n        )\n\n    def test_sender_is_eoa_not_test_address(self, fuzzer_output: FuzzerOutput) -> None:\n        \"\"\"Test that transaction senders are EOAs, not TestAddress.\"\"\"\n        blockchain_test = blockchain_test_from_fuzzer(\n            fuzzer_output,\n            fork=Osaka,\n        )\n\n        for block in blockchain_test.blocks:\n            for tx in block.txs:\n                # Verify sender is EOA with private key\n                assert hasattr(tx.sender, \"key\")\n                if tx.sender:\n                    assert tx.sender.key is not None\n\n\nclass TestErrorHandling:\n    \"\"\"Test error handling and validation.\"\"\"\n\n    def test_invalid_version_fails(self) -> None:\n        \"\"\"Test that invalid version is rejected.\"\"\"\n        data = load_fuzzer_vector(\"fuzzer_test_0.json\")\n        data[\"version\"] = \"1.0\"  # Invalid version\n\n        with pytest.raises(ValidationError):\n            FuzzerOutput(**data)\n\n    def test_missing_private_key_fails(self) -> None:\n        \"\"\"Test that transaction without sender private key fails.\"\"\"\n        data = load_fuzzer_vector(\"fuzzer_test_0.json\")\n\n        # Remove all private keys\n        for account in data[\"accounts\"].values():\n            if \"privateKey\" in account:\n                del account[\"privateKey\"]\n\n        fuzzer_output = FuzzerOutput(**data)\n\n        # Conversion should fail due to missing sender keys\n        with pytest.raises(AssertionError):\n            blockchain_test_from_fuzzer(fuzzer_output, fork=Osaka)\n"
  },
  {
    "path": "src/cli/tests/test_generate_all_formats.py",
    "content": "\"\"\"Test the --generate-all-formats CLI flag functionality.\"\"\"\n\nfrom unittest.mock import patch\n\nfrom cli.pytest_commands.fill import FillCommand\n\n\ndef test_generate_all_formats_creates_two_phase_execution() -> None:\n    \"\"\"Test that --generate-all-formats triggers two-phase execution.\"\"\"\n    command = FillCommand()\n\n    # Mock the argument processing to bypass click context requirements\n    with patch.object(command, \"process_arguments\", side_effect=lambda x: x):\n        # Test that --generate-all-formats triggers two-phase execution\n        pytest_args = [\"--generate-all-formats\", \"tests/somedir/\"]\n        executions = command.create_executions(pytest_args)\n\n    assert len(executions) == 2, \"Expected two-phase execution\"\n\n    # Phase 1: Should have --generate-pre-alloc-groups\n    phase1_args = executions[0].args\n    assert \"--generate-pre-alloc-groups\" in phase1_args\n    assert \"--generate-all-formats\" not in phase1_args\n\n    # Phase 2: Should have --use-pre-alloc-groups and --generate-all-formats\n    phase2_args = executions[1].args\n    assert \"--use-pre-alloc-groups\" in phase2_args\n    assert \"--generate-all-formats\" in phase2_args\n    assert \"--generate-pre-alloc-groups\" not in phase2_args\n\n\ndef test_generate_all_formats_preserves_other_args() -> None:\n    \"\"\"\n    Test that --generate-all-formats preserves other command line arguments.\n    \"\"\"\n    command = FillCommand()\n\n    with patch.object(command, \"process_arguments\", side_effect=lambda x: x):\n        pytest_args = [\n            \"--generate-all-formats\",\n            \"--output=custom-output\",\n            \"--fork=Paris\",\n            \"-v\",\n            \"tests/somedir/\",\n        ]\n        executions = command.create_executions(pytest_args)\n\n    assert len(executions) == 2\n\n    # Both phases should preserve most args\n    for execution in executions:\n        assert \"--output=custom-output\" in execution.args\n        assert \"--fork=Paris\" in execution.args\n        assert \"-v\" in execution.args\n        assert \"tests/somedir/\" in execution.args\n\n\ndef test_generate_all_formats_removes_clean_from_phase2() -> None:\n    \"\"\"Test that --clean is removed from phase 2.\"\"\"\n    command = FillCommand()\n\n    with patch.object(command, \"process_arguments\", side_effect=lambda x: x):\n        pytest_args = [\"--generate-all-formats\", \"--clean\", \"tests/somedir/\"]\n        executions = command.create_executions(pytest_args)\n\n    assert len(executions) == 2\n\n    # Phase 1: Actually keeps --clean (it's needed for cleaning before phase 1)\n    # Note: --clean actually remains in phase 1 args but gets filtered out\n    # in _remove_unwanted_phase1_args\n\n    # Phase 2: Should not have --clean (gets removed)\n    phase2_args = executions[1].args\n    assert \"--clean\" not in phase2_args\n\n\ndef test_legacy_generate_pre_alloc_groups_still_works() -> None:\n    \"\"\"Test that the legacy --generate-pre-alloc-groups flag still works.\"\"\"\n    command = FillCommand()\n\n    with patch.object(command, \"process_arguments\", side_effect=lambda x: x):\n        pytest_args = [\"--generate-pre-alloc-groups\", \"tests/somedir/\"]\n        executions = command.create_executions(pytest_args)\n\n    assert len(executions) == 2\n\n    # Phase 1: Should have --generate-pre-alloc-groups\n    phase1_args = executions[0].args\n    assert \"--generate-pre-alloc-groups\" in phase1_args\n\n    # Phase 2: Should have --use-pre-alloc-groups but NOT --generate-all-\n    # formats\n    phase2_args = executions[1].args\n    assert \"--use-pre-alloc-groups\" in phase2_args\n    assert \"--generate-all-formats\" not in phase2_args\n    assert \"--generate-pre-alloc-groups\" not in phase2_args\n\n\ndef test_single_phase_without_flags() -> None:\n    \"\"\"Test that normal execution without flags creates single phase.\"\"\"\n    command = FillCommand()\n\n    with patch.object(command, \"process_arguments\", side_effect=lambda x: x):\n        pytest_args = [\"tests/somedir/\"]\n        executions = command.create_executions(pytest_args)\n\n    assert len(executions) == 1\n    execution = executions[0]\n\n    assert \"--generate-pre-alloc-groups\" not in execution.args\n    assert \"--use-pre-alloc-groups\" not in execution.args\n    assert \"--generate-all-formats\" not in execution.args\n\n\ndef test_tarball_output_auto_enables_generate_all_formats() -> None:\n    \"\"\"\n    Test that tarball output automatically enables --generate-all-formats.\n    \"\"\"\n    command = FillCommand()\n\n    with patch.object(command, \"process_arguments\", side_effect=lambda x: x):\n        pytest_args = [\"--output=fixtures.tar.gz\", \"tests/somedir/\"]\n        executions = command.create_executions(pytest_args)\n\n    # Should trigger two-phase execution due to tarball output\n    assert len(executions) == 2\n\n    # Phase 1: Should have --generate-pre-alloc-groups\n    phase1_args = executions[0].args\n    assert \"--generate-pre-alloc-groups\" in phase1_args\n\n    # Phase 2: Should have --generate-all-formats (auto-added) and --use-pre-\n    # alloc-groups\n    phase2_args = executions[1].args\n    assert \"--generate-all-formats\" in phase2_args\n    assert \"--use-pre-alloc-groups\" in phase2_args\n    assert \"--output=fixtures.tar.gz\" in phase2_args\n\n\ndef test_tarball_output_with_explicit_generate_all_formats() -> None:\n    \"\"\"\n    Test that explicit --generate-all-formats with tarball output works\n    correctly.\n    \"\"\"\n    command = FillCommand()\n\n    with patch.object(command, \"process_arguments\", side_effect=lambda x: x):\n        pytest_args = [\"--output=fixtures.tar.gz\", \"--generate-all-formats\", \"tests/somedir/\"]\n        executions = command.create_executions(pytest_args)\n\n    # Should trigger two-phase execution\n    assert len(executions) == 2\n\n    # Phase 2: Should have --generate-all-formats (explicit, not duplicated)\n    phase2_args = executions[1].args\n    assert \"--generate-all-formats\" in phase2_args\n    # Ensure no duplicate flags\n    assert phase2_args.count(\"--generate-all-formats\") == 1\n\n\ndef test_regular_output_does_not_auto_trigger_two_phase() -> None:\n    \"\"\"\n    Test that regular directory output doesn't auto-trigger two-phase\n    execution.\n    \"\"\"\n    command = FillCommand()\n\n    with patch.object(command, \"process_arguments\", side_effect=lambda x: x):\n        pytest_args = [\"--output=fixtures/\", \"tests/somedir/\"]\n        executions = command.create_executions(pytest_args)\n\n    # Should remain single-phase execution\n    assert len(executions) == 1\n    execution = executions[0]\n\n    assert \"--generate-pre-alloc-groups\" not in execution.args\n    assert \"--use-pre-alloc-groups\" not in execution.args\n    assert \"--generate-all-formats\" not in execution.args\n\n\ndef test_tarball_output_detection_various_formats() -> None:\n    \"\"\"Test tarball output detection with various argument formats.\"\"\"\n    command = FillCommand()\n\n    # Test --output=file.tar.gz format\n    args1 = [\"--output=test.tar.gz\", \"tests/somedir/\"]\n    assert command._is_tarball_output(args1) is True\n\n    # Test --output file.tar.gz format\n    args2 = [\"--output\", \"test.tar.gz\", \"tests/somedir/\"]\n    assert command._is_tarball_output(args2) is True\n\n    # Test regular directory\n    args3 = [\"--output=test/\", \"tests/somedir/\"]\n    assert command._is_tarball_output(args3) is False\n\n    # Test no output argument\n    args4 = [\"tests/somedir/\"]\n    assert command._is_tarball_output(args4) is False\n"
  },
  {
    "path": "src/cli/tests/test_order_fixtures.py",
    "content": "\"\"\"Tests for the order_fixtures module and click CLI.\"\"\"\n\nimport json\nfrom pathlib import Path\nfrom tempfile import TemporaryDirectory\nfrom typing import Any, Generator\n\nimport pytest\nfrom click.testing import CliRunner\n\nfrom ..order_fixtures import order_fixtures, process_directory\n\n\ndef create_temp_json_file(directory: Path, name: str, content: dict[str, Any]) -> Path:\n    \"\"\"Create a temporary JSON file with specified content.\"\"\"\n    file_path = directory / name\n    with file_path.open(\"w\") as f:\n        json.dump(content, f)\n    return file_path\n\n\n@pytest.fixture\ndef input_output_dirs() -> Generator[tuple[Path, Path], None, None]:\n    \"\"\"Create temporary input and output directories.\"\"\"\n    with TemporaryDirectory() as input_dir, TemporaryDirectory() as output_dir:\n        yield Path(input_dir), Path(output_dir)\n\n\ndef test_order_fixture(input_output_dirs: tuple[Path, Path]) -> None:\n    \"\"\"Test sorting a single JSON fixture.\"\"\"\n    input_dir, output_dir = input_output_dirs\n    create_temp_json_file(input_dir, \"test.json\", {\"z\": 0, \"a\": [3, 2, 1]})\n    expected_output = {\"a\": [1, 2, 3], \"z\": 0}\n\n    process_directory(input_dir, output_dir)\n\n    output_file = output_dir / \"test.json\"\n    assert output_file.exists()\n\n    with output_file.open(\"r\") as f:\n        output_content = json.load(f)\n\n    assert output_content == expected_output\n\n\ndef test_cli_invocation(input_output_dirs: tuple[Path, Path]) -> None:\n    \"\"\"Test the CLI interface.\"\"\"\n    runner = CliRunner()\n    input_dir, output_dir = input_output_dirs\n    create_temp_json_file(input_dir, \"test.json\", {\"c\": 2, \"b\": [4, 3, 5]})\n\n    result = runner.invoke(\n        order_fixtures, [\"--input\", str(input_dir), \"--output\", str(output_dir)]\n    )\n\n    assert result.exit_code == 0\n    assert (output_dir / \"test.json\").exists()\n\n\ndef test_input_is_file_instead_of_directory() -> None:\n    \"\"\"\n    Test the CLI interface when the input path is a file, not a directory.\n    \"\"\"\n    runner = CliRunner()\n    with TemporaryDirectory() as temp_dir:\n        temp_file = Path(temp_dir) / \"temp_file.txt\"\n        temp_file.touch()\n\n        result = runner.invoke(order_fixtures, [\"--input\", str(temp_file), \"--output\", temp_dir])\n\n        assert result.exit_code != 0\n        assert \"Error: Invalid value for '--input'\" in result.output\n\n\ndef test_input_directory_does_not_exist() -> None:\n    \"\"\"Test the CLI interface when the input directory does not exist.\"\"\"\n    runner = CliRunner()\n    with TemporaryDirectory() as temp_dir:\n        non_existent_dir = Path(temp_dir) / \"nonexistent\"\n\n        result = runner.invoke(\n            order_fixtures, [\"--input\", str(non_existent_dir), \"--output\", temp_dir]\n        )\n\n        assert result.exit_code != 0\n        assert \"Error: Invalid value for '--input'\" in result.output\n"
  },
  {
    "path": "src/cli/tests/test_pytest_execute_command.py",
    "content": "\"\"\"Tests for execute command click CLI.\"\"\"\n\nimport pytest\nfrom click.testing import CliRunner\n\nfrom ..pytest_commands.execute import execute\n\n\n@pytest.fixture\ndef runner() -> CliRunner:\n    \"\"\"Provide a Click CliRunner for invoking command-line interfaces.\"\"\"\n    return CliRunner()\n\n\ndef test_execute_help_shows_subcommand_docstrings(runner: CliRunner) -> None:\n    \"\"\"Test that execute --help shows sub-command docstrings.\"\"\"\n    result = runner.invoke(execute, [\"--help\"])\n    assert result.exit_code == 0\n\n    # Check that all sub-commands are shown with their help text\n    assert \"hive\" in result.output\n    assert \"Execute tests using hive as a backend\" in result.output\n\n    assert \"remote\" in result.output\n    assert \"Execute tests using a remote RPC endpoint\" in result.output\n\n    assert \"recover\" in result.output\n    assert \"Recover funds from test executions\" in result.output\n\n\ndef test_execute_subcommands_have_help_text() -> None:\n    \"\"\"Test that execute sub-commands have proper help text defined.\"\"\"\n    from ..pytest_commands.execute import hive, recover, remote\n\n    # Test that each sub-command has a docstring\n    assert hive.__doc__ is not None\n    assert \"hive\" in hive.__doc__.lower()\n\n    assert remote.__doc__ is not None\n    assert \"remote\" in remote.__doc__.lower()\n\n    assert recover.__doc__ is not None\n    assert \"recover\" in recover.__doc__.lower()\n"
  },
  {
    "path": "src/cli/tests/test_pytest_fill_command.py",
    "content": "\"\"\"Tests for pytest commands (e.g., fill) click CLI.\"\"\"\n\nfrom pathlib import Path\nfrom tempfile import TemporaryDirectory\nfrom typing import Any, Generator\n\nimport pytest\nfrom click.testing import CliRunner\nfrom pytest import MonkeyPatch\n\nimport pytest_plugins.filler.filler\n\nfrom ..pytest_commands.fill import fill\n\n\n@pytest.fixture\ndef runner() -> CliRunner:\n    \"\"\"Provide a Click CliRunner for invoking command-line interfaces.\"\"\"\n    return CliRunner()\n\n\ndef test_fill_help(runner: CliRunner) -> None:\n    \"\"\"Test the `--help` option of the `fill` command.\"\"\"\n    result = runner.invoke(fill, [\"--help\"])\n    assert result.exit_code == pytest.ExitCode.OK\n    assert \"[--evm-bin EVM_BIN]\" in result.output\n    assert \"[--traces]\" in result.output\n    assert \"[--evm-code-type EVM_CODE_TYPE]\" in result.output\n    assert \"--help\" in result.output\n    assert \"Arguments defining evm executable behavior:\" in result.output\n\n\ndef test_fill_pytest_help(runner: CliRunner) -> None:\n    \"\"\"Test the `--pytest-help` option of the `fill` command.\"\"\"\n    result = runner.invoke(fill, [\"--pytest-help\"])\n    assert result.exit_code == pytest.ExitCode.OK\n    assert \"[options] [file_or_dir] [file_or_dir] [...]\" in result.output\n    assert \"-k EXPRESSION\" in result.output\n\n\ndef test_fill_with_invalid_option(runner: CliRunner) -> None:\n    \"\"\"Test invoking `fill` with an invalid option.\"\"\"\n    result = runner.invoke(fill, [\"--invalid-option\"])\n    assert result.exit_code != 0\n    assert \"unrecognized arguments\" in result.output\n\n\nclass TestHtmlReportFlags:\n    \"\"\"Test html report generation and output options.\"\"\"\n\n    @pytest.fixture\n    def fill_args(self, default_t8n: Any) -> list[str]:\n        \"\"\"\n        Provide default arguments for the `fill` command when testing html\n        report generation.\n\n        Specifies a single existing example test case for faster fill\n        execution, and to allow for tests to check for the fixture generation\n        location.\n        \"\"\"\n        return [\n            \"-k\",\n            \"test_dup and state_test-DUP16\",\n            \"--fork\",\n            \"Frontier\",\n            f\"--t8n-server-url={default_t8n.server_url}\",\n        ]\n\n    @pytest.fixture()\n    def default_html_report_file_path(self) -> str:\n        \"\"\"File path for fill's pytest html report.\"\"\"\n        return pytest_plugins.filler.filler.default_html_report_file_path()\n\n    @pytest.fixture(scope=\"function\")\n    def temp_dir(self) -> Generator[Path, None, None]:\n        \"\"\"Provide a temporary directory as a pytest fixture.\"\"\"\n        temp_dir = TemporaryDirectory()\n        yield Path(temp_dir.name)\n        temp_dir.cleanup()\n\n    @pytest.fixture(scope=\"function\", autouse=True)\n    def monkeypatch_default_output_directory(\n        self, monkeypatch: MonkeyPatch, temp_dir: Path\n    ) -> None:\n        \"\"\"\n        Monkeypatch default output directory for the pytest commands.\n\n        This avoids using the local directory in user space for the output of\n        pytest commands and uses the a temporary directory instead.\n        \"\"\"\n\n        def mock_default_output_directory() -> Path:\n            return temp_dir\n\n        monkeypatch.setattr(\n            pytest_plugins.filler.filler,\n            \"default_output_directory\",\n            mock_default_output_directory,\n        )\n\n    def test_fill_default_output_options(\n        self,\n        runner: CliRunner,\n        temp_dir: Path,\n        fill_args: list[str],\n        default_html_report_file_path: str,\n    ) -> None:\n        \"\"\"\n        Test default pytest html behavior: Neither `--html` or `--output` is\n        specified.\n        \"\"\"\n        default_html_path = temp_dir / default_html_report_file_path\n        result = runner.invoke(fill, fill_args)\n        assert result.exit_code == pytest.ExitCode.OK\n        assert default_html_path.exists()\n\n    def test_fill_no_html_option(\n        self,\n        runner: CliRunner,\n        temp_dir: Path,\n        fill_args: list[str],\n        default_html_report_file_path: str,\n    ) -> None:\n        \"\"\"Test pytest html report is disabled with the `--no-html` flag.\"\"\"\n        default_html_path = temp_dir / default_html_report_file_path\n        fill_args += [\"--no-html\"]\n        result = runner.invoke(fill, fill_args)\n        assert result.exit_code == pytest.ExitCode.OK\n        assert not default_html_path.exists()\n\n    def test_fill_html_option(\n        self,\n        runner: CliRunner,\n        temp_dir: Path,\n        fill_args: list[str],\n    ) -> None:\n        \"\"\"Tests pytest html report generation with only the `--html` flag.\"\"\"\n        non_default_html_path = temp_dir / \"non_default_output_dir\" / \"report.html\"\n        fill_args += [\"--html\", str(non_default_html_path)]\n        result = runner.invoke(fill, fill_args)\n        assert result.exit_code == pytest.ExitCode.OK\n        assert non_default_html_path.exists()\n\n    def test_fill_output_option(\n        self,\n        runner: CliRunner,\n        temp_dir: Path,\n        fill_args: list[str],\n        default_html_report_file_path: str,\n    ) -> None:\n        \"\"\"\n        Tests pytest html report generation with only the `--output` flag.\n        \"\"\"\n        output_dir = temp_dir / \"non_default_output_dir\"\n        non_default_html_path = output_dir / default_html_report_file_path\n        fill_args += [\"--output\", str(output_dir)]\n        result = runner.invoke(fill, fill_args)\n        assert result.exit_code == pytest.ExitCode.OK\n        assert non_default_html_path.exists()\n        assert (output_dir / \"state_tests\").exists(), \"No fixtures in output directory\"\n\n    def test_fill_html_and_output_options(\n        self,\n        runner: CliRunner,\n        temp_dir: Path,\n        fill_args: list[str],\n    ) -> None:\n        \"\"\"\n        Tests pytest html report generation with both `--output` and `--html`\n        flags.\n        \"\"\"\n        output_dir = temp_dir / \"non_default_output_dir_fixtures\"\n        html_path = temp_dir / \"non_default_output_dir_html\" / \"non_default.html\"\n        fill_args += [\"--output\", str(output_dir), \"--html\", str(html_path)]\n        result = runner.invoke(fill, fill_args)\n        assert result.exit_code == pytest.ExitCode.OK\n        assert html_path.exists()\n        assert (output_dir / \"state_tests\").exists(), \"No fixtures in output directory\"\n"
  },
  {
    "path": "src/cli/tests/vectors/fuzzer_test_0.json",
    "content": "{\n  \"accounts\": {\n    \"0x000000000000000000000000000000000000000F\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x0233362c058b2fCc8093841B1073A90D673E7F12\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x7f2c75141e16bea0fceec67f673a0a3578e66fe55a9b6405d1ce109be7593206\",\n      \"storage\": {}\n    },\n    \"0x1DEF26E2A310e3984210Bd9d4D67E19d721043A1\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x2825c17712cd3e7e5240fb76fe09ec612d0337b643e5c605c3cfea77e44d0b73\",\n      \"storage\": {}\n    },\n    \"0x1d891f21BB2a55cD9EC7a32478f7c74d757c4876\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x6f0304bb487cf38ca47fa3bdb2fcd17f446000527fbce853b19c5e1fa4e21a75f5c633b19093d16e4225a1e18f93e6b0280d553f456020526f12907f8e8e33612bb1cd28222515089f6040527ff9ccd6deac82230464c9a0b6b46ae6cdd7488cbcb2701e4ae34128fbc7278be66060526f0f648013c07e63d91b12e235737d86626080527f152b1247f61c53a7c05b6282599a5a565624a120e3884ee2cf02e267fe10be1e60a0526f0ca29f1d84c20b8318dfc76159fa754560c0527f8730ae6c1b52728688bb33a14d5e57c18fe660ff55431c5fcc749dfbfd027a2060e052608060006101006000608c600b7fb2a9d981edef956e7c15a8f00819612f341891f265ea91e2d1bf0c9ddf17706bf16000556000516001556020516002556040516003556060516004556f0a1d7979d389cc17fa6234b538473d336000527fabda0c5fb1790d0da3b62020c61a9e0d09bf34d7299d048a86be80fd34ecc4a86020526f0560d9b5c15fec8dff6be987c92016df6040527fa66b5477a91ae92db1582bd62fffc0a3b6bafc39ad9636987f953f1acd6011036060527f6eb221e467bd443a6fd33fcac3eec22e63e51613f05df0310c0ecab2124210386080526f089358667ca389db7562f52f881de51e60a0527fa3b281e831d4286f5cdaebb3161f352f9f5cbed6b20674ad02b7606c56d675a860c0526f17f1263e3a15d93c02a8f6557c73bc0160e0527faeda0be01631b7b34d0fed1325f69b428679a30b79321b4ee50a7a382da092b5610100527f8f53d4aa5331cb3dad00de83c80191ebccf46fb3f1527416ebb22311d8cdf5ca61012052608060006101406000600c7fd4fc806c73fce35b7910639bcd5e440f3240dbba1f1db35ffd40ac39bd9ed326fa6005556000516006556020516007556040516008556060516009556f0e98e9c5a0ce1800ea000f728c792ebd6000527fc62c5196c7362c18572f8150745dbd193236def47b700cfd019f6a63c232e7726020526f17305bfbf895a75a1b4e0374fe26d8f96040527fb6dfed3e090fc8b5952d6ed6d4722f9d0d12419a9dac52386160f712bbcaf1fb6060526f03cd0052fd56e53a9904f76c29b4f6e76080527f62c168176691eb3f0c43f3263ebbfae78287a9110f2e7210f8615b4c0deedc9560a0526f0d99d442b87f10626da56ae4efc4557660c0527f5b87b2d664e585438fc0e5c2529f960b8421293bc9e64cf73c3681315c67cceb60e05278100000000000000000142f2b61de3fd9f5fae7f30f9a200465610100527f69a2fa1a70f398346b86baf9a1caf04c81261ce8120d073e480c017d1072ea86610120526f16367e551460bdf8b55514e5fbc98336610140527f4e41aa34f39059f6b645f11adc22a135c4cac0f8073c4a48dc3e326dd64570da610160526f1559a897fe4d9101750cf0c50d759307610180527fc6f2b0bbf73d7f6e7397777e2839216f0636957d997b14fa1dc9183d10ef4d806101a0526f10d05bbe32b66859d000015085fc6fb36101c0527ffd839495def4a7a0217ae1194b79e4e4a929cec96eea279ca635aa528718c5e16101e052610100600061020060006087600d7f4997fb8662809f846cccb8072b5a665549bced5ba0babf36c900744358ed4715f2600a55600051600b55602051600c55604051600d55606051600e55608051600f5560a05160105560c05160115560e0516012556f0a80f16dec66305836d93b07b6a14b746000527fd694453efa14cf142cc5b48cd8e49e5fa6d52f6b904f3c51a1e99be6ebeebc626020526f17ec12f7a83252673a562e934ae83c7d6040527fd980e2a6787fe55b5d6250b8c8c909f4c5fa906b7ae1e359fa84225966b4585e6060526f0201c07465f5a818868d265f2b9d3a5a6080527f4382a23b79074ccec8e1ad21c580fc1fe95213d4798af4aaa22855bd021050c360a0526f170d94a3398fd8fe44b7ff548fe6d93160c0527f726ae0d035252f5ec681388307703619e6198ba67ce8e3380cb576edb1a871f160e0527f1f4158e9331a61d7f6666fa0bbfea04cf804c27cc8b8ac749176fd7ea110a2016101005261010060006101206000600e7f903dbfde19bbf5a150cce310c94c5fde73f13db285135e8fa471e112a500dbb2fa60135560005160145560205160155560405160165560605160175560805160185560a05160195560c051601a5560e051601b556f060500d8f2788f675515321a657ec91d6000527f2f68c11e9812c09c2d1ea3667837f81666de01b7136237cd59d0e4fdd23f03496020526f1029733bf268a8dfa83ebd6870b9c5b36040527f8f3731515fdfb60678ef7e109ad680738e1c20e6e7ac6c1daa02e3fbca9ff4526060526000608052600060a052600060c052721000000000000000000000000000000000000060e0526000610100526000610120526000610140526000610160526f0671a07ffe971a913c8e718e1f8aff72610180527fddad0b334b7407fc1fec9eb7273da17aaaff013426274ab1f61cd0f04ee188c36101a0526f123c38b43dec7cb6345624c5f8b403c06101c0527fff208bbb12cc604d5cdd3ed163805d0bae5d8c8ec7b5bacd6a0ec529327c719a6101e0526f181cce65e82fd9347b1b66b4bdcade50610200527f71ea0bbfc0be2f5d930fdb39907aac0765d1e38b4b10cc44d4e8b89bf0848a12610220526f19669ebdbfec5754e13c61595fb28b72610240527f47795a1822a6b61169b1fdf8c13a66993bc9a0a9b03b236d1ae9619f80274c7c610260526f0bee714d419295547b26ad30f3f6d265610280527f0c5cc9a7d2a9d234cfbae47ccc7b753fb83ba16ea7b8c9100fc4ab9664b34ae76102a0526f01c0c352f3bb92ccfc65ba09ce10e2bf6102c0527fff7b95a9a3502e998e571f6b14a95669015c4065160fe57862c56ba26dc223e86102e0526f0a5027e9bff89a14938cce229b6608ed610300527f0f15b6977401680f5eac13988d4d5223190b3ead586a370df633fed4e2c2fbdc610320526f05fd50e2ac95e4d5ee6f46f492485ef0610340527f11c90229dd700ca24d7560d6318ac814c8f2cf0fdcdb6734ba88088a82c78b48610360526f0a9cddc7b8e0a02a9d05efeb7135a08a610380527f1edf3ccff9518b554a7169b9664ecbbae8e1fb5712d6eb21e507e91b58e0f1726103a0526f071f0b7f899b0ecc684373f03693e3f26103c0527f0973056eab4f7cd509c36304f21d5685d7bf3adfbcae30b1543c2b360af306e66103e0526f08780fd2546a36beb1ca303e02af7b14610400527f8252ab31a0707573563e183b8cfcf36dd3b166e6303a79d9787cbeb04bad0b99610420526f055bc48aa14fb1c46c09ea909afd6bfe610440527f25acb1249e874468f4e3b73366b400bc6bfe4f542a412bc91c9c83615f3501ab610460526e6fce599f3edafd3ec2cf034379f3ed610480527fb7bc1878c6b16a4c036f54f228c5fd735c10975d62caaaf0e9624900efddd6b66104a0526f16287deaced22aeece826750d5f96d0d6104c0527f493b5d3ddb685f425f5b727a5b85a82ebeef92615ee32877afc243908bd50d2c6104e0526f024aa2b2f08f0a91260805272dc51051610500527fc6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb8610520526f13e02b6052719f607dacd3a088274f65610540527f596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e610560526f0ce5d527727d6e118cc9cdc6da2e351a610580527fadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b828016105a0526f0606c4a02ea734cc32acd2b02bc28b996105c0527fcb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be6105e052602060006106006000600f7fd4124f75d9f67bb9297799198175ef8987c66e6c7afad5fc75719adbe2e89dc9f4601c55600051601d556f048ecddc27cb7b231e2079d5c96adb456000527f549123f3e3c3d28ff640bc3a1adb125dad75897d889e48d44f0f77ac28f020ed602052608060006040600060107f01298de28edfc331e1c52caa4e4d9601b30e5980bd635744a17225c5168975d7fa601e55600051601f556020516020556040516021556060516022556f13eba7cc9982c91920252877d0c114016000527f7c2cd98b0a402e7d0d5d015f9412eb553a9c306edf04e6dfebb84be9fd306cff6020526f12eade4a55567c4180d389eab65e95626040527f0eaf9b6cee65d9ac1233d2143011bdde7a2a2ed1306214f985d48cd255e4166f60605261010060006080600060117f3f0844a363566ce2919046fe2ab2946fc4152e80ec32229cb032f73b21f4c162fa60235560005160245560205160255560405160265560605160275560805160285560a05160295560c051602a5560e051602b55\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x22986B2F9A2f5E7119F940898c35e7128A4Ce7E3\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x60d360fe60286079600f60ec60b12008326f52059b3f3d528a53656d668c36445c1899f01a4a466151845c61368ca35c8005048e95193f551d209510615502414a3c77104309044a6d45570968789058f53749193e817f5f807d9e025f793d755575028b5d3c8f9e3a91097d5f6cf39a4768798a66111c0a3979807ff37e0b31f3188f8a0856006464fa818b75140096629833556e1e59607b9c53ff5f056105f53a8a5416160b533c54317514638106616607936f3c00023716095a69437e52411d59437b751c8a46573e595f671c8af203341c6e7c741017705f126a56727ef08f515a461a5e506d18126f72506b0638434537024009074081a163f0f002135857107698446917376d506379643b07431a20ff681c3e091049410516418a0353458b5aff685c6f977114578fa47531771d5e00536e1959605e733b147e72356bfa194291556d1069007f1d811e563d12863a7b336d51093266788d74451a197916f4764801630bf11cf242f032f30217445a3d6a57900751876b4930606b483161047432743a3a333a88787548797a4206467e33955269959f1c5865556b1b51194a446f023808a27c3d475e133d686937f0656c46780a33004a503e188f5c16597d69a20517466a5e6615474769540081050606631b605b7c7a37496cf58d8207f56e085b986f6f7d467762861940f17b3f3a661d401d6d46681c050a3d3d501d49653903561a406b483b7e38679336a363505fff736120516a6934818a5b556a3a0a12ff6f9b71841184763b077c8d106809861b881c9e405e3e388672081b727a77817b7a83a26c16560770794a703a6904684800786d00198130fa32074a6b5f07881d3d5659843f3d56735d5b31a0050083381609190539a002360a424538430b3e748173433d726d83416d497f153e440231fd1384396e5a9361045795613a87991e54ff1c6a701b05540a6103718d56718a536c85a0313853569781873754413861336e72975a47503e55a25b02a336361a6542a4708736839846fd316766933d567a3e718e537d1576414694588a609b1531366d0b19080a6435703c73027a3d32591e6a723305156a1991603204380b486a619b6b83083e7390807d5d8a7f57f05a78024a511ca20b360292543f660436676f5a1b03f473667d07545300f36a96974a56358e8f653e3b38005393671a47121802583e191172461214ff87176f9f51fe99071d68065565810a03865c8857723e09618181900b3775515a51461c7249503d403403f5161b6b5e5740604a55758b6a7180fd63721c9b5801047e9e68a33176015e095b380737799a45015e6c3a8796a08f5916110978f2454a570335504a7e335c3a166d520a53627678325245745338727b7df309a1830a74374a6d325d58f3711e7f6ffe684271363b325c5d00979b8c15561e8a42\",\n      \"nonce\": \"0x0\",\n      \"storage\": {\n        \"0x0000000000000000000000000000000000000000000000000000000000000000\": \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000001\": \"0x000000000000000000000000000000000000000000000000000000000000000a\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000002\": \"0x0000000000000000000000000000000000000000000000000000000000000003\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000003\": \"0x0000000000000000000000000000000000000000000000000000000000000012\"\n      }\n    },\n    \"0x3Bd84e661C47a73eEe4137D185E4c31c194C343f\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x6000545004121e6f7f56198c1e35957e3f1771fc736167d061e5a3771e4ea7b6224c5795c0bfb9e27d6000527f073b1b146e22e2cbc33be43483ed67045cde7dfc18abfbc072e3007d1759a6436020527f25a5d983835b0a0a8ddda9e973ca774131d07a607a50fff393e8eb4cc1f26c6c6040527f9c248c3c71446e447ce71a16117be91eeb6887774ecc073bf3687f333852154c6060527fea9d67c047c8937ae33e470ae93ab841543e412d7fad66143778f8bc924fa5d46080527fd5b2f67b2063905d37d496c15a25d758c22b2b44cc1236b0ed5b7984e779d46360a0527f0a2e60472c4944e9fe2c9cb40ee4ef6d4664a0b3a11b5385c4b7e0bbff14540660c0527f2f523606c6d7ecf0fa8698a50b184183e745a9fc62ac210b2c697b0990eef9c960e0527f76eb16a60b21c1f33f72b6fba934a49df31cc33495c2a5448c52c4678fd235f4610100527f7eec64c80233121f38717239977ee9780a8bd90f8503cbafad56b1d154a42fc6610120527f7587ae46cbb70adcab17b5b0de3acb3145a7c274822643a1f60445b25869683b610140527f2b379af570b1ecd121b6a8fa57f5b95070dfc6f568bf5fcd6463325a70dfeabe610160527fcab611c6fce59eb2d48e25746327158cbe1e56043270425b912c395a481140d7610180527fb278bfc525b03b0bdc36704d4f33402e419bf94220a962778732dee8df0701af6101a0527ff31a16cecd89cbbe248c1180cbe3ab9d47f0608191ebae06c8ca65da94a6cf0e6101c0527fdab48b0443e2f74491047cb5043ec3ab52a64c3cd9207829e01c0c7db9767e4c6101e0527f48fe70c2e6614d7a443a9e349eab5d084c38b49a7915188567b9fed7bb303205610200527f4cd71e66c5664a1f0cb150d3c620b349dd38c1cc760aff91f76927665de296a6610220527f4fa12b0350149110fa8a0c12251cd216f5ef2a6933dd28cb7ab6de9f613097e2610240527f0f4c3ea9097e42038e26855e750999a40ab7f90ea69d1a2a2c1fd97fa79a0613610260527fe7faeb6bccf6487cf16aa52814ebdc29fb624527e80805b08a504d1598dd7831610280527fa445a986e95b0f4e0378e18b97819ff5f3c5c534d436d4b648c297b91568a10c6102a0527f8c4eda6372fd44629eba2c9d2dcd470136c712ab976abb3396c1da6f4ddcb6826102c0527fda48bafb7e3ff88251bb85a28ee3fbfea120a23150a8d2d725989f9c4502a5286102e0527f47a217e00683fa23ecf58f04b7663a46be40a80bdbc7910d7a7a6ea7528c24326103005260ce6103205360cd6103215360266103225360b66103235360db61032453604060006103256000609660f47f80dd5cba9287bdc9d8484da6db0c443bcf39f18dc9a3b877daa4b47b152f695af1600055600051600155602051600255\",\n      \"nonce\": \"0x0\",\n      \"storage\": {\n        \"0x0000000000000000000000000000000000000000000000000000000000000003\": \"0x0000000000000000000000000000000000000000000000000000000000000012\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000004\": \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000005\": \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000006\": \"0x0000000000000000000000000000000000000000000000000000000000000010\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000007\": \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000008\": \"0x0000000000000000000000000000000000000000000000000000000000000005\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000009\": \"0x0000000000000000000000000000000000000000000000000000000000000004\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000a\": \"0x000000000000000000000000000000000000000000000000000000000000000c\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000b\": \"0x0000000000000000000000000000000000000000000000000000000000000010\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000c\": \"0x0000000000000000000000000000000000000000000000000000000000000012\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000d\": \"0x000000000000000000000000000000000000000000000000000000000000000f\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000e\": \"0x0000000000000000000000000000000000000000000000000000000000000009\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000f\": \"0x000000000000000000000000000000000000000000000000000000000000000d\"\n      }\n    },\n    \"0x52439296aa999dbCF01bA02E03F5d59F0AE8Ca46\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0xaa07ea6d7ebb90738862bff26aa53633e9a6a4c2732f31c270f5a02687a06eb2\",\n      \"storage\": {}\n    },\n    \"0x535863dA03bc1834eeA10eeab8FF498565F33f2d\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0xb214f8d7a564be547e6de1404f829b88b9c5f1bfc42a708554e97423e49a9def\",\n      \"storage\": {}\n    },\n    \"0x538A8474EeaB43d5a960164c554A20400151D479\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7fb858c07c2fb9fb447c54bdf506edb58f631476bed129929800bdb8049510aa7e6000527f3a410073dc03e299ea3618ffb2e7292ecd57563edff75605855ca16c9cb158e66020527fc3ac92c70cc33b79c43ed311142981018abce5f5cbc322fb4d4cc081031ec1ce6040527f73d594fd80189ea82db6754b27de68050a84ba50ed82afefe5b900ff19a00aac6060527ff1a8e519f5aa98550f849cff101dee44b99100c44eac7a7f2cde3610cd54656e6080527ffd7b744a4d233ee11b0b11f746f2d48a6563968ccf0b8a2f3f99d60ab16b146460a0527f756af369bcf3131ecc8d276e72b38074f3f02a253f611208f70b72661c27458f60c0527f3078b132f36721702d0b4ee6c4c30fb87f4860d76c267f1a3fc1a3e56901fbe160e0527fb903e43f3659db206c8e26d8f3276f2696926e86f82ba6cb69639480bb9e85b5610100527fa0225a93a51f5cf08e2829018fc694fc8dbfe36ee19d9c33e8f6cd0918a823076101205260206000610140600060027f3d5fcc6dc637aa0a00e46f5c03d83b8b4476d9fbaab5d9688c67e13eceaa005bf4600055600051600155\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x641602bAD4A323C49629d45338d79A2bb984A3fb\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x6008610400fd\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x7458F9b8B5ee360A32b0b0Fe648C996C68AE8190\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x600054506003fff87f9dfbc28738b4aa81098db57872f5db652fb31e6563a7e0444aef68ed160a85c5600052604060006020600060b660077f6b0476a7d3e48eaca4fb3595c2ad7657f4da9552ffaebcd13068b1c91fad8d6bf1600055600051600155602051600255\",\n      \"nonce\": \"0x0\",\n      \"storage\": {\n        \"0x0000000000000000000000000000000000000000000000000000000000000003\": \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000004\": \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000005\": \"0x000000000000000000000000000000000000000000000000000000000000000f\"\n      }\n    },\n    \"0x766C0844EBC3c4ef4ddb86260a4D3516cCa03A10\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7d08361ee866d39c2fb444e88ff7ee2a8e023c8c049aae8a67f7f686951abb6000527f2884635f8539e311ae790c2a42ca96eb6a850235a6ab1e3de3ab9106f17f69806020527f9c3330a9d409a3128e5da585e8d90364692c33c7b156330f7a9d0466b958016c6040527fbe4b1c709bb0327f1bc07d29da9e49dbc164adef56992936f18fef5d9bea45086060527f861e3e31afb13f20925a2ef9718e14add535afc482c88a4429ddd65c050491926080527f054efe1978cffd5b49f3791f5c168bf912146245ba05b3425577697c24436d8d60a052601f60c053602a60c153601260c253602960c353609c60c453605f60c553604660c653609c60c753608d60c853601a60c95360b860ca53609260cb53601c60cc53602060cd53602660ce53602860cf53608560d053604660d153609760d253602160d353600060d4536040600060d56000604d60097f67a046b0dcdd07f5640269c0b1d159c2f87bc5cab9c9cbcbfa19613952b719d0f1600055600051600155602051600255\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x79cca006f0792Bf40a6d4E011c2884eD862A52DF\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0xada9e915b45b3f9f3f335fe00a484308905ec68a78d49750e1a47ec4f9c17d23\",\n      \"storage\": {}\n    },\n    \"0x862B38c425EF5544d0127449A12c89C46dd3E050\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x35c0e7a818e7367e6218647e77752b4b0d92f50362a7eff324915762586509ba\",\n      \"storage\": {}\n    },\n    \"0x88f9B82462f6C4bf4a0Fb15e5c3971559a316e7f\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x9529cc6891Fbd5aBFABE0AE6c79D30F0CCAe848F\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x777effffff80000000000000000000000000000000000080017a01090000000000000000000000000000000000000000000000000090176000557f800000000000000000000000000000000000000000000000000000000000000276013590cab83b779e708b533b0eef3561483ddeefc841f5136001556780000000000000017e4b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b090b2b0bc60a0a1000901d7ee8e8e8e2000100000009ea02000000000000ff3ffffff800000010002200007f12cbafcee8f60f9f3fa308c90fde8d298772ffea667aa6bc109d5c661e7929a5901d9007678000000000000000690100000000000000000006760fffc000000000000767676240000000000002b05760476007717676767676760000000000760000007600000909760fffc000000000000767676240000000000002b05760477f800000000000000180000000000000008000000000000000800000000000000090050b197702ffffffffffffffffffffffffffffffffff2000000000006801fffffffffffffffe90109017197ee8e8e8e2000100000009ea02000000000000ff3ffffff80000001000220000677fffffffffffffff7e40000000fd000000db0000000000000000000040000000fd000000db0000010913682100000000000000227f80000000000000018000000000000000800000000000000080000000000000009006107ee8e8e8e2000100000009ea02000000000000ff3ffffff80000001000220000686d5adef08547abf7eb90066002557d767676767676000000000076000000000000005600000000000000000000637fffffff901819901b7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f800000000000000000000000000000000000000000000000000000000000000018146d010000000000000000000000000069010000000000000000001a16610111774b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b0a0a1090167feeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee7bc9700000000000000000023f00c00014ff002c00000000000022310814177ff6376770abd3a36b20394c5664afef1194c801c3f05e42566f085ed24d002bb07f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe02901615682323232323232323237f7effffff80000000000000000000000000020000440000000000000000000001901d7a010900000000000000000000000000000000000000000000000000778200000000000000fe000004000000ffff000000fffff700637fffffff0990161b71767676767676767676000000767676767676638000000116901a682100000000000000227ee8e8e8e2000100000009ea02000000000000ff3ffffff8000000100022000090109005681000000000000000007f82000000000000000000000000000000000000000000000000000000000000006b100000000000000000000000080b6d0100000000000000000000000000777effffff8000000000000000000000000000000000008001051960035567d021262626262626680100000000000000001090137f80000000000000000000000000000000000000000000000000000000000000006c01000000000000000000000000774b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b0a0a90081b60006000f3\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x9E607bB0Bae19b8bC75638fd1aB98594b36ba46d\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7f55f877a03e3e31007d8ccb0037592750fe627036579cd37987d3ef76a651dd1a6000527f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f6020527f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f6040527f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f6060527f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f6080526020600060a06000610100611915fa6000556000516001557fdc7a6a7dbd8a42cf97100cbfb5343286879ea772d7f0e486bff85bac63a41cb56000527f55555555555555555555555555555555555555555555555555555555555555556020527f55555555555555555555555555555555555555555555555555555555555555556040527f8302763a7a03204c2f880bc82f3d38d8747211f1a910880e90004c102538f3ae6060527f7d8da52b6ebd1b2c2d84b07a8d2092e09d27777575aa939ed783a54cddd2b0c66080526020600060a0600060006101006119fff26002556000516003557fdc7a6a7dbd8a42cf97100cbfb5343286879ea772d7f0e486bff85bac63a41cb56000527ffffffffdfffffffffffffffffffffdffffffffff77ffffffffffffffffffffff6020527ffffffffdfffffffffffffffffffffdffffffffff77ffffffffffffffffffffff6040527f91dbff4fb710b1e81ce14be3bd88f06cff8428403452b064321bebeabec55f7d6060527f54c975daf7c93874c068af196208eda9c8f9ced3460ef5bffcc93b3dd8f2ff8a6080526020600060a060006001610100611a1cf16004556000516005557f86f977edffd2ddaf1c5779296743fb477fe65e68d47bb0716a1ab8157207455e6000527f43c36642eaba53487655950d16ee65b9f61ee0c605a4388cffeacc12f2b01e856020527f4aa560a8b3dec45915d077759ff76a3efaa44d25c93aa98b466e59fbf502684e6040527e9047ae74c90ca58dad54af6f18f053e27deb4632fcbf5998f269e614536b826060527fdadda5824c6bcf8a00a246be87fd739d8751107ef5ce89c85d3da736c3fc69326080526020600060a060006001610100611a77f16006556000516007557fef02d493f62b3af6a7bfacaf888c58ae1b41d3e62bd483459f1682842ade1c726000527f81f541a8a3462901f68ba711ca1e3aec670f9cc713e1972a1606fbceb2ebd2886020527f81f541a8a3462901f68ba711ca1e3aec670f9cc713e1972a1606fbceb2ebd2886040527f04fffffffb0000000500000000000000000000000500000000000000000000006060527f04fffffffb0000000500000000000000000000000500000000000000000000006080526020600060a06000610100611af4f46008556000516009557fdc7a6a7dbd8a42cf97100cbfb5343286879ea772d7f0e486bff85bac63a41cb56000527fffbffffffffffffffffffffff7fffffffffffffffffffbffffffffffffffffff6020527fffbffffffffffffffffffffff7fffffffffffffffffffbffffffffffffffffff6040527fc9e005dd1af6d82d77505fbdc1b18fd3d9741240907a510e5ddc9febe80c768f6060527fc75def9510f5aba00f7917e84ea6002991ba59604d84fe1cf2b6b4cd6ea7c6746080526020600060a06000610100611c3ffa600a55600051600b557f63b53bcdd52d82e3e5ae5108ed590a8631113f6abba1624acfd0cd5be0a0d56b6000527f890c4ce6a855ff49e201e0ed48e8274c14be1cbd115364818c32fe3cedfa7c106020527f236ad4b6d7f6ef8bb45b6d45172b950216c0738bdd2be455d33a3058d34a061260405260006060527f5a824510cc45547b0a39a6b8767f15f0ac481a630dbaac91803d3bfc6b9c6ebd6080526020600060a060006001610100611cbef2600c55600051600d557f0d5d8c3c63c36344c65b288698895195d95bcdc486db6b84bdb44000077b0c7760005260016020526001604052600160605260016080526020600060a060006001610100611c1ef1600e55600051600f557f6ed85366d9c82e9481594355f9b55ca5408697bca7ef1d349e6d8e37e2b4c85d6000527f7bc7b5eb03d4cd86c342c7dd8f06d8e2a952439d2e8a630919d74500a4a344496020527faacc19c91c17de70c9873189d63e0d28987290f3089e5ace18d13d5ea618439e6040527f8047db8b33c977bf4d8069f8c3715097251328b395f3cfe5c475ddf3f762e5606060527fa75ed49f31331b289b30793cefa79a7e0ccece8fdc7796f909112e53d509d3746080526020600060a0600060006101006119f1f26010556000516011557fe506e35f179221d3ed2944ac1ac29b7483a73e7adbd784c5ee7bd38b345dabf26000527fab4deaff0494294b86417f8c8d2238649f97e5c45f926a183e5cd1594c4cb07e6020527f4afb0bae902a54052d1bd6b411d165669850774bb42b8ecc73cb102c48786bd66040527fa7c4a4fb78abc4a6cd32f47ce4db416c91208a04f7ae267e8151968fc3a609646060527f89d7f7cc508073e2cc8644c5154846a74315dacbdadbadda1cafd82e386dde4b6080526020600060a0600060006101006119c6f16012556000516013557fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6000527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6020527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6040527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6060527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6080526020600060a06000610100611be3fa6014556000516015557f9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a086000527f8be9b57e112a8abb6ec40524a35e864b5293159b6a77f4860f8e00ceee6348d260205260006040527f48209be5e8f0e89ee1f0d4b74645ed38280f0bc6ddafec46f395720346b12e1a6060527f5512a03479460ecd88cf83565013839e24c5a84008f6edba23f0d0b9dfcceb4c6080526020600060a06000610100611bfbfa6016556000516017557f69955cf40e14f69443bf4f8ee5432aa2b843671673ccae71a51215fba3872a426000527f8ec01f4b15fe0c755482f5e90658c5a758699386c587b3657aed859e90eb69d76020527fb5eb6c9b3994887c43c6f40747ff3494f507592761d915254a01827d7f36d10a6040527fd26cfb0cd81d2a94cd7a10a5972d6d20d1f06ccdc6cbb0f578a4bcfca45f2df06060527faad80ba35b270796c9cae745b7a027b43027d54af56540fedd8c9b73114f47156080526020600060a06000610100611b01fa6018556000516019557f500b93dd1d2a593c5a87657f32a4a7c2688fc81d9696cdcbad878cf630537a9c6000527fd78d8eeffa7139961a28191e23ec8bd01da90e63007ce5f9425fc50ec264d6f96020527f0ee4e5c1a1819348b133f191aeebecfe2f27b9be698d6ffcb5fa441ddffbd9196040527ff1db2ab546530306590bae04535c1353a7f14b8e8b3a893bd88358612774b4a16060527fab214a7af0d280dfbe046277723d67cefbdb88c22aae39f752e872c257a372556080526020600060a06000610100611b16fa601a55600051601b557f5da1d3b0edc7e8bf95cb6f26d1c264d9bdf4ea04f05a9ed1e541bacb8672f675600052603d6020526059604052600060605260006080526020600060a06000610100611b8cfa601c55600051601d557f22fdb863e2df7a57588e5cc6b8b128c8ed3e88b5ad088f1b37a2f981bf41bdc56000527f69bc3329e8cb108c84c98ceea1bd99d39a2efe8517074b1a79ffb6c8fa5d163f6020527f5d80d369a9dd69d08bb0389ff4dc31d3a179aa82f61a2543e9dd3b58326f7b216040527ffdcdaac7043a1c5a4abe5883e66744659480933d3fc6d79f388d18a72a0f11076060527fa4edfe3c45411b6d8bb1aff118ca3d1a2c56beea9a2b9778a6c093d0ff22e25e6080526020600060a060006001610100611970f2601e55600051601f557ff5c112beb21695afb638f1032170f8b4af1040fe570bf6356c74082a31bd6bb36000527f399ca9ad9f8dc34b7964f8a853550a4901e3eec73fa5604131d2e7ab2d0e6f156020527fc048cf554cbffaa48220a65412e471ed20e28bdd82ffe99589e3867ee7e9069b6040527f1a8634914abb264491eb6c117d8a3c72a74965333bedfb0494bdf448da64838d6060527f57ed3625d9e134d129cfd6a7d3fe7f6c898fc9aff54c3ae2ef0890479e5e5e8e6080526020600060a06000600161010061192cf2602055600051602155600060005260006020526000604052600060605260006080526020600060a06000610100611987f46022556000516023557fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6000527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6020527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6040527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6060527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6080526020600060a0600060016101006119e2f16024556000516025557f0f0ea7c172f5a60807b88890ceef3613666c7bc8b46ab8c6ba7f9d44c7c8d9c56000527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6020527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040527f22276e0d2c74bdb35707e25acac41b33490f53b461dde80d2c6114f1698391d96060527f470aab8b0fde69b11fb96c7d20a0ca75f3654fe23a02f19e7d98eefc7ccb8c8b6080526020600060a060006000610100611b93f16026556000516027557f160e6420d863db6655fa27dd50cf8e353f9ef4a20092520f63ac63f4e0eb32556000527f343c3b8c8e2ceba457169b28ae411d0a278741b36f671feac0fea97a45cf40d26020527ff6f052ffdb97a606b3ac7009313248236b4ae112d3acfa537663d4c38452de6b6040527fa25d6665169122469ad9dceff29c3e6e871360326eb49e49e0261adf89361f016060527fef7b14d9fae44f66fc4ee9b481ca0a6ac49cf8eeb913b4efac7a064ed9ffe6946080526020600060a06000610100611b93f4602855600051602955600060005260006020526000604052600060605260006080526020600060a060006001610100611928f1602a55600051602b557ffa194dba78ee8b822744bdbcb38ec187ce7e6957ba51c87d846781edc354c2de6000527f7df9c36794bc5982da95b00d072d4de68c47c54b7764b1a445bd00c418d489c16020527f6c1d819223cb31c461c96697f336c1da899f543a61d5964258167c4b874db3dc6040527f4ce7bacbcebb07f25acb5ef88add479e12c3b0d61e4c0b8bae8d909ad260f0226060527f77c9584e2c81ff7a15790f44da433b1774037cdad4197b7f5919f3c7362439a26080526020600060a06000610100611aa7f4602c55600051602d557fef02d493f62b3af6a7bfacaf888c58ae1b41d3e62bd483459f1682842ade1c726000527f01fffffffe00000001ffffffffffffffff79cdf55b4e2f3d09e7739585f8c64a6020527f01fffffffe00000001ffffffffffffffff79cdf55b4e2f3d09e7739585f8c64a6040527f615dd4a0a844dbbc1ba9dbc9caa8a519a38e98fc4b354dbc92833c2762344bb66060527f633ba1bdcc154fe6e0c3d52306e212ae81f22910d9775e2c0b7ce8a7a88b1c896080526020600060a060006001610100611940f1602e55600051602f557fef02d493f62b3af6a7bfacaf888c58ae1b41d3e62bd483459f1682842ade1c726000527f8f9cd5d78b75c2accc5121383427522b84cb4c2a8b56c1f94eb4a0576183d3c46020527f8f9cd5d78b75c2accc5121383427522b84cb4c2a8b56c1f94eb4a0576183d3c46040527f02fffffffd0000000300000000000000000000000300000000000000000000006060527f02fffffffd0000000300000000000000000000000300000000000000000000006080526020600060a06000610100611c20fa6030556000516031557f0f0ea7c172f5a60807b88890ceef3613666c7bc8b46ab8c6ba7f9d44c7c8d9c56000527fffffffff00000001000000000000000000000000fffffffffffffffffffffffe6020527fffffffff00000001000000000000000000000000fffffffffffffffffffffffe6040527fffffffff00000001000000000000000000000000fffffffffffffffffffffffe6060527fffffffff00000001000000000000000000000000fffffffffffffffffffffffe6080526020600060a06000610100611978fa603255600051603355\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xBa0E31A0E75AC9a4cac4c57d6c7EF2a10e87D4e6\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7f20aef1c1f12d6a92cb52c4715a73e8c2614607f6ac041e6430cab9fe7fcdc1f66000527f1c939c4275bf050dfd34fa9b8f3f385d8aceeea459e4da4d6f5be4bf21c30c4e6020527f041d957b0f7cd04de520dbdfb6caf3b7e2c93f15dfb83ee4964259dc3a71010c6040527f1187ca1a59643ea4c84ebf358eb75f0197b94ccf1de9a611a8aacc67e98b81596060527f04c60f013196b55a72e324986492f7fb42bf9a29dc1eab9f3600576e609908386080527f01de910256aa0b0cf620ad54825cea02f2a010466e03f48525a844480ce7ca2b60a0527f12bd4e9e7da40cb226005e886d4157519c785583ee0b628a7e170afca0040a8360c0527f2af1146a5a0a77a33db10bb29c0e88c2f129f12da3e337e07207adc8fe35fd9360e0527f18d9d93d2709144afd90541edb4c76af2e1dc914e7b798802dbec728e8545e8e610100527f0f6c1fc929b35d345b04e7311bd92a7c4cb484f45a4a2de21d822b646ec56bb2610120527f197f6a2343a24edf4f5ca3b3bb758accb273d4d73665d6fa3162b3aa91641baf610140527f167a452ec75749fa735a9fbb78d97befc3f7728664c4addcb0685ab2f56ee7846101605260206000610180600060ec60087ffd27c6ba6a708c14c70af9ba56fa769590455ac5d595eb467381738bd373d77df2600055600051600155\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xC192f888ADA47142Ef2c856FC2C35197eea9E718\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0xc14a8497cfed2168f05952f5437042184f962496ae2ad8f389cf588ae6ae5426\",\n      \"storage\": {}\n    },\n    \"0xD74CFe323387aE2fd070CD046173026716D8D649\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7f010ecc09792089d18d4479db8993c8fcdb89a002902be5ece3271bd6659d7e0b6000527f044972c01a9d6ba28efc73430f44409753c29ddbae5bff87273015f602ab1ce46020527f05843ae5b1feef147e98cfc86520ffba73ac7d193619ecffbebcb43a646bb8ce6040527fa1b37d411bf6aef0bf6fc51999378760024b9887c33d3bb81a68d3c9b75081706060527f9560b0ce42d34e540905f397216d5c5db68e507e5f426d697153eca14de27d006080527fec577da7b3b854936beb95a33eed744afad1634bb7caf1367891d297cbc7c0ed60a0526040600060c06000600a7fb3e4b6e12f51d93384e52aedcde8fdb6b014c0a3d95f3ded6e7f0d2b57dbef4efa600055600051600155602051600255\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xDa78807c1C4567c23EB713E9fbB3b1508C1284ce\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x60006000526000602052600060405260006060526020600060806000600161d14ff46000556000516001557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601c6020527f7a716c6c3afadd1671084c199b249ab67cb13b24bda9e286436fa18f7864e4976040527f10fae069ce12132048de75c2026c733caaf588c455a968b3651f7c228fa44b246060526020600060806000600162010699fa6002556000516003557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601c6020527f99f4746ad5cf85f771993c0fd69d90ba6aff84fd3b54bbfaf5f37452d1b728976040527f1b8f04ef96c64881c8e59ba85d32c031b8596e1d8902abdb28efa35741bdd6a960605260206000608060006000600161c852f16004556000516005557ff27665304201615ebfd77f43b648a3dcfafff868a7cdb9aeffd48ec1e264856c6000527f64bdcb002895982b9ce61851c1432eb49a3950047c2d7ffec0cbef0c1e64391c6020527f183664ca17e24e37d11872d0c0598d15bd9ef3b7795ccfac411d31c772a67cea6040527fffffbb016c07414c332e7c980d032465d78ecda7783ba73789fcf5d2d4d9c0c56060526020600060806000600162011c5ef46006556000516007557f41ba54f83d2c0d9b4f38d9d9d3ca20379b17295a7086a01b2abe79a8836e7e186000527f51b34b41f839df524328d27001af78a2278758e6ac46b9e370472fd52ae78ce26020527f0916b5e6f73c3cda7ba0fd79206f5dcaf3f2ac62da7223f3da4d316e6c31426a6040527fa7360ef9b3f7448986a48fdc1eb2f8d1739b2dbf1e02dbc629f01ddb0a8f5d0d60605260206000608060006001620185fcf46008556000516009557f4537e59187daada0452406912ad285677796e5f3343eaf3f6a8cc62d8da6092f6000527f0b256a3b254f8a868901f48311a481702c817405e994b48ddfad842d4058071b6020527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040527f114edb3d78635682a891fa57035b3411904f8a3f346d440faf7534c7e6077ed2606052602060006080600060006001620162ccf1600a55600051600b556000600052601b60205260016040526001606052602060006080600060016001620160faf1600c55600051600d55600060005260006020526000604052600060605260206000608060006000600161f04af2600e55600051600f557fc6dc4bda4074f5f3b4e12522a9a0223053dab048a7d424e88ee966270a22eb4c6000527f94dc6447ffd64c131b25e7319daae0f199fa9166236b1548f969de00aa09641d6020527fa407f508e892c43f0dd3ac2cc0dddbd939d39bb6faba6e498fe6e97cef5be3196040527f5d615f63e658f52f872d2b7bbb4bcbdbae0b4c3df2a73bee519578b185d3e58e6060526020600060806000600160016153bff26010556000516011557f33d5feefc5519ec25cc0100957b7608d3665a475d3783bdb88ba5b53908dae916000527f36812bb46b76453c52d59b88b683c4c28ab62ee6a35e4433ad3a054d81d9971b60205260006040527fb1375053bcc1d5d98acd0f6ed39352aa4c0956210280d87cb01ff69e265234476060526020600060806000600060016201352df26012556000516013557fdce6a42b5553622247140cde69633c8b457fa610f13d087cd48fb82e2995b1a66000527ffdb503ac2d6d53bd6a5a40ed90c1c40c1e41a5486ec04ccd5f0ea21b3ef59c1c6020527fbef9c5fd0a2414d203c03893359266c7c0b935596670b0f03c9c2d71bc58a6376040527fffff827136bbf05cf1256f0c6dcc1d55f964e1e8dc8eac450b56370ed6b7c3e660605260206000608060006001600161bc37f26014556000516015557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601c6020527f6eb702a6332e56b41cc0cd5235b32b1ff7c6cb9d486e2b3216f08a77433033f96040527f572979406e827f3ef2b31fc2678f1f6c7b89605ddea9106fa302fda7af29095c6060526020600060806000600160016201596df16016556000516017557fd2d2ddc40c9eba073cf7dc252b24d4b859faf5f4d76c484030bd7442f773dc9b6000527f42ceb9bfd0c82e953f894afeb9fa4bac618ac96fbcb6ad0ceb923912acfe281b6020527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040527fcf55bdbc0e2471363b3ff29e3c95b4fb79c962bfddcdc25fd7687dc28ece8edc606052602060006080600060016201452cfa6018556000516019556000600052601b602052600160405260016060526020600060806000600060016201245ff1601a55600051601b557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601c6020527fd47dd3c1d041a555aca1b52f7198fb903eb030222fa613eef67ba627fa0640a76040527f7b5642d919eeed48663cc5f5af3c554069729e2cff8be177adf994f65f722fa560605260206000608060006000600162013c1ef1601c55600051601d557f563ac94508886a144c2c03279382fbd9ecbc8710b0527dedee83332fbaa1df176000527f08433182194af83c622691218fbe4760f097cb4d9bffe06d3db15b921eaf191d6020527f45dd3caa2bbdf31bc21b70e30dab5617e2062864ace8d7b2b0d783b08bd3274e6040527fb047a3a77f908c13d37b2763331b7a52fdbc0780d8e3b53cfa1b7df03c4f072060605260206000608060006001611793f4601e55600051601f557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601b6020527f743bc6098efdaf75f878572b65040cf9459e05d875e65eb140592f6a5e82e6ab6040527f765e9112299a4b18d31198eca89311fcbabc0d5b238be6f688a496e7751ef882606052602060006080600060006001615560f26020556000516021557f2e098924832cc1e3e61f37e39c0e5865e5060ed0268aeabf381558565149cf606000527f30ca5d41c93b865e912445e13e0113cbfbc76d48a59e7ca00ea304f6c1d63e1c6020527f9cb92db99c342a7a4d550f5e732dc30201822319a7aa4ee4f599c5c648bc66d76040527fffff0164291505107e496abdb5738a5cd089195b547afb043b09909da06cb13760605260206000608060006000600162014ad8f26022556000516023557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601b6020527fd61240180ee4ba2ac39064feba53f2f5655a3555f1ad982b68f24d46fb0abcd76040527f2833151b144a0411b05c2904e358f54bc7dcb1f23ccff4cfaa2913ec1c5fff376060526020600060806000600160016182ccf16024556000516025557fa8ad052dc706ed8513a5e200da416e7230339f1417edbc36810e6390887621af6000527f33184a5cf1dacc9891af332af34024f1aa98ba82751572cd1ea2a00ee2a84b1b6020527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040527f16a0fae6f494f63f176aab5f15d2b09c5da5fe43f6650c406d1432b5f5786ccb6060526020600060806000600162013a8af46026556000516027556000600052601b602052600160405260016060526020600060806000600160016201829ff2602855600051602955600060005260006020526000604052600060605260206000608060006000600162015b6df2602a55600051602b557e5013d7a5fe09b36373406442599663a125ad3f4a11bd9780c149f1f83827ff6000527fab11953158f950c085665e576ccba0a135e0ff7acf5b87417f0237b0a5d61c1d6020527f4480cc59fa0a1b3ade81cac1ea3e8a596b4966086e72948923348d7aacc52ce56040527f91a72e339775f3bc04cc1233063435de168690521311f42fe25ac55e9f4001ac60605260206000608060006001620156a9f4602c55600051602d557fac6eaac38cc30405f1571eefb890b4a4ec94ae45782d8107158c7b4f25ea8f726000527f2717660cf7c0a7a6d80ee4adc0158d9550deecf7744d959605c3754f9f9e191b60205260006040527f299f28af54efce351b5d16681e5bdd6e58427c9e0c031986d8828f9ec078ff8c60605260206000608060006001600161b3e5f2602e55600051602f557f7b931c95a91a9b1adfffe8d278110e6894ba93fd1e6300cffe0e37ba6952efc36000527f8ed55391f54fb886f4598d4d0ae7ed1fea86797718916b9c63c41fe0890aaa1c6020527fac275c5d8acc7f4bf159626eff9b88d082ef2cb85970ce49cc51bb25685c28f86040527fffff3e35ccf1ff364dd43fb8c80a5b24dc9233de11caf201c065570ad28934c060605260206000608060006001600162011234f2603055600051603155\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xE2f4CF89C9B94178B5725B8b1fd9a7F40c4a674C\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x6c10000000000000000000000000197f82000000000000000000000000000000000000000000000000000000000000007702ffffffffffffffffffffffffffffffffff00000003000007077702ffffffffffffffffffffffffffffffffff0000000300006780000000000000011b1a7e050beb1c60141a0000dc2b0b0b0b0b0b410a0a0df4f40b090b2b0bc60a0a006801000000000000000076013590cab83b779e708b533b0eef3561483ddeefc841f59009127cc9700000000000000000023f00c00014ff00000000000000002230080567d02126262626262616137d0c76f4afb041407a8ea478d65024f5c3dfe1db1a1bb10c5ea8bec314ccf97ffffff716b61616160b0b0b2b0b0b0becf4bef50a0df4f48b090b2b0bc60a0a007bc9700000000000000000023f00c00014ff002c0000000000002231089009677fffffffffffffff7702ffffffffffffffffffffffffffffffffff000000030000690100000000000000000090089010900b60b2557702ffffffffffffffffffffffffffffffffff2000000000006001901876013590cab83b779e708b533b0eef3561483ddeefc841f57f7effffff8000000000000000000000000000000000000000d900000000000001900b1c7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60057ee8e8e8e2000100000009ea02000000000000ff3ffffff8000000100022000090080460b35567d0212626262626266a100000000000000000000090167f12cbafcee8f60f9f3fa308c90fde8d298772ffea667aa6bc109d5c661e7929a5717676767676767676760000007676767676761c1160b4557f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7f7effffff8000000000000000000000000002000044000000000000000000000190066c100000000000000000000000007702ffffffffffffffffffffffffffffffffff200000000000900390077f80000000000000000000000000000000000000000000000000000000000000016f800000000000000000000000000000000660b555678000000000000000774b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b0a0a1d901c7f80000000000000000000000000000000000000000000000000000000000000027f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe901390177ee8e8e8e2000100000009ea02000000000000ff3ffffff800000010002280ff7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd90186101117f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd68066aa0a5319bcf5cb4090760b65569100000000000000000006000900460b75576013590cab83b779e708b533b0eef3561483ddeefc841f5680100000000000000009010900260b855760100000000ffffffffffffffff0000000000002e0000007f820000000000000000000000000000000000000000000000000000000000000090176901000000000000000000671fffffffffffffff900160b95519691000000000000000000076013590cab83b779e708b533b0eef3561483ddeefc841f507900468066aa0a5319bcf5cb46801fffffffffffffffe1290177702ffffffffffffffffffffffffffffffffff00000003000060001c6f121212121212121212121212121212127f12cbafcee8f60f9f3fa308c90fde8d298772ffea667aa6bc109d5c661e7929a5777effffff800000007effffff800000008000ff00000100009008901260ba5571767676767676767676000000767676767676712000110000000d0a300e750a000000090a0a90101b677fffffffffffffff7f8000000000000001800000000000000080000000000000008000000000000000678000000000000000900990037f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd6d010000000000000000000000000090109012671fffffffffffffff6a10000000000000000000001712651ce97e1ab91a7f7effffff8000000000000000000000000000000000000000d90000000000000190180676fffff716b61616160b0b0b2b0b230b000008010d0a2b0060070360bb557ffffff716b61616160b0b0b2b0b0b0becf4bef50a0df4f48b090b2b0bc60a0a007176767676767600000000007600000076000090051469100000000000000000006810000000000000000010901d7f8200000000000000000000000000000000000000000000000000000000000000777effffff800000007effffff800000008000ff000001000090109016760fffc000000000000767676240000000000002b05760477f77676767676760000000000000001002e000000000000040000000e0000000001c60bc557f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff76013590cab83b779e708b533b0eef3561483ddeefc841f59001901d6f1212121212121212121212121212121276fffff716b61616160b0b0b2b0b230b000008010d0a2b001060017a01090000000000000000000000000000000000000000000000000068100000000000000000091a9015900467ffffffffffffffff68478392145435897052900a7f80000000000000000000000000000000000000000000000000000000000000027f7effffff800000000000000000000000000200004400000000000000000000016b10000000000000000000000008901690176a01000000000000000000006b01000000000000000000000076fffff716b61616160b0b0b2b0b230b000008010d0a2b0009177e40000000fd000000db0000000000000000000040000000fd000000db0000d37702ffffffffffffffffffffffffffffffffff20000000000090079019027f77676767676760000000000000001002e000000000000040000000e00000000069100000000000000000000a901b60bd5576013590cab83b779e708b533b0eef3561483ddeefc841f5156d01000000000000000000000000006f80000000000000000000000000000001901d60be557176767676767676767600000076767676767667d021262626262626900307197176767676767676767600000076767676767667700000000000000090030415637fffffff7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd9001167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f800000000000000000000000000000011d04156f800000000000000000000000000000016101111060bf5567d021262626262626637fffffff0790147ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb7e40000000fd000000db0000000000000000000040000000fd000000db0000019012901060c05568232323232323232323197fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f8000000000000000000000000000000000000000000000000000000000000000900190047fffffffffffffffff7effffff800000007effffff800000008000ff0000010000690100000000000000000010900560c1556801fffffffffffffffe7f77676767676760000000000000001002e000000000000040000000e000000000901a7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb760fffc000000000000767676240000000000002b0576047901360c255156101117f40000000fd000000db000000000000000000000000000000000000000000000190036d01000000000000000000000000007d0c76f4afb041407a8ea478d65024f5c3dfe1db1a1bb10c5ea8bec314ccf96f8000000000000000000000000000000009060a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffff7effffff800000007effffff800000008000ff0000010000677fffffffffffffff08047ff6376770abd3a36b20394c5664afef1194c801c3f05e42566f085ed24d002bb06910000000000000000000901490187e4b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b090b2b0bc60a0a100063800000001613157176767676767600000000007600000076000067700000000000000090136f80000000000000000000000000000000717676767676767676760000007676767676767bc9700000000000000000023f00c00014ff002c00000000000022310890081b90137f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f8000000000000000000000000000000000000000000000000000000000000000901d900b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe9007901c717676767676767676760000007676767676767ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb901660c3557f80000000000000000000000000000000000000000000000000000000000000026b010000000000000000000000900a03157f62d8fffffffffffffffffffffffffffffc18000000000000000000ca000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1d1460c4557ee8e8e8e2000100000009ea02000000000000ff3ffffff800000010002200007f62d8fffffffffffffffffffffffffffffc18000000000000000000ca0000000110671fffffffffffffff777effffff8000000000000000000000000000000000008001900216684783921454358970526c010000000000000000000000009012027f62d8fffffffffffffffffffffffffffffc18000000000000000000ca000000017e050beb1c60141a0000dc2b0b0b0b0b0b410a0a0df4f40b090b2b0bc60a0a00030b7f800000000000000000000000000000000000000000000000000000000000000068100000000000000000900160c55515760100000000ffffffffffffffff0000000000002e00000076fffff716b61616160b0b0b2b0b230b000008010d0a2b00901d90037806400aff20ff00200004e7fd1eff08ffca0afd1eff08ffca0a7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe901090057e40000000fd000000db0000000000000000000040000000fd000000db0000016f80000000000000010000000000000000169015017e40000000fd000000db0000000000000000000040000000fd000000db0000d37f80000000000000018000000000000000800000000000000080000000000000009016176780000000000000006801fffffffffffffffe901867fffffffffffffffe774b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b0a0a6c1000000000000000000000000008900b0b7f7effffff800000000000000000000000000200004400000000000000000000017cc9700000000000000000023f00c00014ff0000000000000000223008051d9002777effffff800000000000000000000000000000000000800169100000000000000000001612156801fffffffffffffffe691000000000000000000002147f77676767676760000000000000001002e000000000000040000000e000000000691000000000000000000005017f800000000000000000000000000000000000000000000000000000000000000068478392145435897052021a67ffffffffffffffff680100000000000000000360c65560057ffffff716b61616160b0b0b2b0b0b0becf4bef50a0df4f48b090b2b0bc60a0a007ff6376770abd3a36b20394c5664afef1194c801c3f05e42566f085ed24d002bb09009027f5fd8fffffffffffffffffffffffffffffc090000ce700004d0c9ffffff0000016380000001900660c755677000000000000000690100000000000000000090171760c8557f8000000000000001800000000000000080000000000000008000000000000000682323232323232323231763800000007f800000000000000000000000000000000000000000000000000000000000000090140767d021262626262626760fffc000000000000767676240000000000002b05760476823232323232323232308036101116f80000000000000010000000000000000778200000000000000fe000004000000ffff000000fffff70008901067ffffffffffffffff600090031467b368d219438b7f3f7f800000000000000000000000000000000000000000000000000000000000000090121b777effffff8000000000000000000000000000000000008001778200000000000000fe000004000000ffff000000fffff7000690017e050beb1c60141a0000dc2b0b0b0b0b0b410a0a0df4f40b090b2b0bc60a0a0068478392145435897052901260c9557f40000000fd000000db00000000000000000000000000000000000000000000017e1f0000000000000000000000000000002000000001000000000000000000001719016801fffffffffffffffe67b368d219438b7f3f0b03157d0c76f4afb041407a8ea478d65024f5c3dfe1db1a1bb10c5ea8bec314ccf96770000000000000006f8000000000000000000000000000000009056f800000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe69100000000000000000000860006000f3\",\n      \"nonce\": \"0x0\",\n      \"storage\": {\n        \"0x00000000000000000000000000000000000000000000000000000000000000ca\": \"0x000000000000000000000000000000000000000000000000000000000000000f\",\n        \"0x00000000000000000000000000000000000000000000000000000000000000cb\": \"0x0000000000000000000000000000000000000000000000000000000000000008\",\n        \"0x00000000000000000000000000000000000000000000000000000000000000cc\": \"0x0000000000000000000000000000000000000000000000000000000000000003\",\n        \"0x00000000000000000000000000000000000000000000000000000000000000cd\": \"0x0000000000000000000000000000000000000000000000000000000000000003\"\n      }\n    },\n    \"0xa94f5374Fce5edBC8E2a8697C15331677e6EbF0B\": {\n      \"balance\": \"0xffffffffff\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n      \"storage\": {}\n    },\n    \"0xd5A8353a487e0749707fee138b741aeb2061C14C\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x4b5f705c5993deaa35a6d4e991c09c52f1d54151048b241126aa7c780cd2723d\",\n      \"storage\": {}\n    },\n    \"0xf3eAc1d1B1EC8cA737bD148b1E96168024fB3F89\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x6000496000556001496001556003496002554a6003556002600455\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xfD6241df8Ce82b2Fb4126dD0e9FA931806Fa573c\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x61026260005260246020526102626040527ff1fec7959374ce5d274bb0a066fd25d6a7a0eda5d66247e90611eea900d93dd66060527f3261bf7f4a1354ec9c06574626a9f622a4b463d8547013098dcafb926e4736a46080527f2a2f602320d89b1d7330c8afdb044737104b3c1df434e20cecdfe27fff1d1f2760a0527f1ecad556a17a8a7bd6e68d5a04868ada5e17684e3f260e2fc8142dee9b3812e660c0527ff1f6436c628b04937be67aaf3df114fba877dcf697e789ef8f3e0d65da018b6e60e0527f5134802f76d89e54193a1efd277cb40b2fef4819b6c71803b540d35a5736fa07610100527fb82884b8ee0bdd6d160bb37981688eaf2997550bd816f22d790b68f6a613f115610120527f4b0cfb396fcd8d20c873179465d91a926b35a127da6851106e93a1c95d306531610140527f2cf297554aea5d6a9c03a2397f17e3ed672af0c83dd0250acceb68e7297b7704610160527f64f27ad759e258d9021631c63ecdc8e4586ce55237f3a4107c35975cc158def1610180527f24b24b5973e1f540c0f4120009a97e64b8184beff858d50d4ad2ffad3951ddc06101a0527f819c0f43d13523fa4ff0d19e2125a05c420517eca779beaa2a7cd38184210c476101c0527fad10b5f2259319e47bd25046de0a0b2affb1610fa4b7e3750143e9aa35c44f726101e0527f9f0ec1800e9fdc12fac4dbfeb087c50e073b95c24b68419e31aade25653ba836610200527f2aa1362bdf0f50a44625a6f6cf94471ec9e37e1362f1ae6c54bd73bc48d175f1610220527f7432b4e648de16c9ff2ccd7d0c46bde6d99f0202b94ad09effb10a3e03e82c1a610240527ffc3c493d3e7658f8de59135f4183cac601e3f940b0f269625ff68a106420ff66610260527f0581e520bada0d8aea39b5df5cc1580f3743fcf4367944cc3a777f8687c3dc6b610280527ff2d859b0ae0467db1581a1825ea8f32b041b6fb47b084986f8aa7add00e69b496102a0527f8008a31bb9d8901fdc563425ed15567fa92f3f2caac4a95b4f69986861257b3e6102c0527fa6535c9d5c6eb1fd9d1af1ffa7d9a17daff3d9f390b94cdb30adf8856754b1406102e0527f7ce7a6bbb1642d6d4497b7f29914c5ce41da9915e5b1ffc8b418226d175c7478610300527f070aa85789733ac4df0330e4dc3359ce3cfd092c7ca52fb4e7329ba9478d0a49610320527fb31b0f71a8f651c80427c925f7866f5eb09570a1c0c916bd287824b01a30a76b610340527f4596e9e1d193313e1f1404d9ce3b9f0426230c24927405a48bf4adff74e76fde610360527faeb92923019d16f8790ccc7b71e92b68924f64798ef2a9208548c15e21b4086c610380527fb99ab67cd7c8af790ab5356fe5a0e28d5df8c51dc22b83ccb2711f30965f1e616103a0527f2479fc94a5451dabd9828512b8b40f67ee0b6d8e7eb1bd866992cb058930d5116103c0527f092a2183f2c6ef97cfde4785cc1c896c8bd768bc0a870ffa104345dd7a38aa216103e0527ffb91f752acdcf005d60392fce991749582688ef75179c1e5bc302e3474fa092f610400527ff01bf4a1ca9ec98b16516dd639870c7da21822e753f618566bd4116407bfa814610420527e7b1078ef968ef0d58cefb9442b9f72a949f123d74fe9cbfbeba9d1ebaa50e9610440527fadf61176f5482726f72e521273f004ff47ca791a2d36f46ad735d8c5daa7522f610460527f6a8c8353f541becd5b975007a0cedebcf07546cadb88f89c3611c4532159b0a2610480527f6fd6ca54878a97d886a2496d88a97f39a91ed2ea43b2e287949f111b94e2bf116104a0527fa52821a5b62778a1f910b7dd380e0d35f460a71b9ea7b63e4f2b751af2911e766104c0527fa8680a459d4dc3edeb3b23251632ae8a41949552e870913ce7de2ecfccde155d6104e0527ffe15c24c187667c8910e993fb1d04570b7e0d9ac330b1a0ea68beeb755e9d7ae610500527f3d2c6bb3e5ec048336342fa09dbcffd6e3bc9db43d8d273c618328d4e312dc3f6105205260eb6105405360686105415360766105425360366105435360306105445360df6105455360ab6105465360286105475361026260006105486000600060056245d72df25a0160005560005160015560205160025560405160035560605160045560805160055560a05160065560c05160075560e0516008556101005160095561012051600a5561014051600b5561016051600c5561018051600d556101a051600e556101c051600f556101e05160105561020051601155610220516012556102405160135561026051601455601c6000526003602052600b6040527fae8cb809085836c6461fd847d701b558c26c51eb89ded0e4ff921ede82f27af66060526060608053600760815360456082536058608353609460845360806085536072608653606560875360c3608853602f608953600b6000608a6000600060056102bcf25a01601555600051601655609560005261046560205260956040527f51e308cca5d5ac57dbe129b458780de43b42d08aa050668a10113010a49dc6f66060527fd82d6601a2baecac57f0e1c15c28b44dabcd90369f1a2f8cd1b1c791b5e41a776080527f7b30038e72372e57653bbd08827dc52e9d409e9c3f856cf957e3aa07935efd3f60a0527f607b55147384e53c54b16ad07bb4f2a4552a5ef66aac08876aa63adcd96fd73360c0527f98ea449950d7e2b1211249ba3a5497695f288c7cfd000000000000000000000060e05260006101005260006101205260006101405260006101605260006101805260006101a05260006101c05260006101e05260006102005260006102205260006102405260006102605260006102805260006102a05260006102c05260006102e05260006103005260006103205260006103405260006103605260006103805260006103a05260006103c05260006103e05260006104005260006104205260006104405260006104605260006104805260006104a05260006104c05260006104e0526000610500526000610520526601864f62290a6d610540527f6e280af90f6c1ab0488405bda8fc417b0f391199fd48342e4336d01c8de18952610560527f5b8ad7f1b5b421f9e73ee1e6fbd2dcac4422fe7a7912ab495c50857aa41d927a610580527fd21c9732633fdfc61ce2b92bb93b1a8138c99bf822c316fdf2a767ec2f111cdd6105a0527f6841a331d9ba76ecdac0bc037be9690a436647ea5f0a066ec929d3f0d103d1596105c05260696105e053604a6105e153607d6105e25360106105e35360596105e45360886105e553605e6105e65360986105e753606b6105e85360716105e953603f6105ea5360fa6105eb5360056105ec53609e6105ed53602f6105ee53609560006105ef600060056301060193f45a01601755600051601855602051601955604051601a55606051601b55608051601c55\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    }\n  },\n  \"chainId\": 1,\n  \"env\": {\n    \"currentBaseFee\": \"0xa\",\n    \"currentBlobGasUsed\": \"0x40000\",\n    \"currentCoinbase\": \"0xc014Ba5e00000000000000000000000000000000\",\n    \"currentDifficulty\": \"0x20000\",\n    \"currentExcessBlobGas\": \"0x20000\",\n    \"currentGasLimit\": \"0x11e1a300\",\n    \"currentNumber\": \"0x1\",\n    \"currentTimestamp\": \"0x3e8\"\n  },\n  \"fork\": \"Osaka\",\n  \"parentBeaconBlockRoot\": \"0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f\",\n  \"transactions\": [\n    {\n      \"data\": \"0x2d\",\n      \"from\": \"0xd5A8353a487e0749707fee138b741aeb2061C14C\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0xBa0E31A0E75AC9a4cac4c57d6c7EF2a10e87D4e6\",\n      \"value\": \"0x0\"\n    },\n    {\n      \"data\": \"0x\",\n      \"from\": \"0x52439296aa999dbCF01bA02E03F5d59F0AE8Ca46\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x20\",\n      \"nonce\": 0,\n      \"to\": \"0x538A8474EeaB43d5a960164c554A20400151D479\",\n      \"value\": \"0x0\"\n    },\n    {\n      \"data\": \"0xd62ca02e7d6738996d60a387da91a74c438dff99e2e30450d66a7985d5c657d0e2\",\n      \"from\": \"0x535863dA03bc1834eeA10eeab8FF498565F33f2d\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0x3Bd84e661C47a73eEe4137D185E4c31c194C343f\",\n      \"value\": \"0x62f3\"\n    },\n    {\n      \"data\": \"0xa2c35d7d43a94d59ac5163860c03d7c78e1d76a7ba7c31a46b\",\n      \"from\": \"0x1DEF26E2A310e3984210Bd9d4D67E19d721043A1\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0x9E607bB0Bae19b8bC75638fd1aB98594b36ba46d\",\n      \"value\": \"0xfec4\"\n    },\n    {\n      \"data\": \"0xf22e90978887563e1316e37d58f9c440c5ff3dad0958ad7a135ac3e2e9138b5341c1194761f2bd698fdc91b7058e657af5941ff7aa1b8890e51ed18677d541eca021c6efe2762bbf0ee6baf42c741a1134ea12\",\n      \"from\": \"0xC192f888ADA47142Ef2c856FC2C35197eea9E718\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0x22986B2F9A2f5E7119F940898c35e7128A4Ce7E3\",\n      \"value\": \"0x6c64\"\n    },\n    {\n      \"data\": \"0x8ad4c41cac6d56fbbf1d0d0bf5d6\",\n      \"from\": \"0xd5A8353a487e0749707fee138b741aeb2061C14C\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 1,\n      \"to\": \"0x9529cc6891Fbd5aBFABE0AE6c79D30F0CCAe848F\",\n      \"value\": \"0xe27363\"\n    },\n    {\n      \"data\": \"0x5214c25b6a7f0ecedc0b5a4aabac02ae1235d3503dfe2b50df5ec8e1dfe00b1785cf0f6c000eb9413b0e2929ee87f64c7044853eeed72caba5df53681e4e7b1344ad1f0d79801b94464afb3b080b99953ee906\",\n      \"from\": \"0x52439296aa999dbCF01bA02E03F5d59F0AE8Ca46\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 1,\n      \"to\": \"0xfD6241df8Ce82b2Fb4126dD0e9FA931806Fa573c\",\n      \"value\": \"0xcf8207\"\n    },\n    {\n      \"blobVersionedHashes\": [\n        \"0x01247b3190ad6b61d69c66ac67a278508b7cc80b63a7d3f183965818f46d71c2\",\n        \"0x012cad5172a80ba067a9836349573f8c09a6dc870eb9933ed445787556a4ea59\",\n        \"0x01b7b97c0fd264b8559089187f1e9c8b736854d626379b9db34473fd96d3bce3\",\n        \"0x011907322c3d5ec3b09fa61dcc48f7a0eb8750e9b3cb911a338f126f1a54d2b6\",\n        \"0x0159e0a1867bb093a1ed6beb9a7e1aa843a926a8c77ee604899bbea1222ba448\",\n        \"0x011eb4c2246fec736cda7b5e62a4f5eded1e6b4948632ed38b7da929c1ca83e5\"\n      ],\n      \"data\": \"0x87d848\",\n      \"from\": \"0x535863dA03bc1834eeA10eeab8FF498565F33f2d\",\n      \"gas\": \"0xf42400\",\n      \"maxFeePerBlobGas\": \"0x100\",\n      \"maxFeePerGas\": \"0x20\",\n      \"maxPriorityFeePerGas\": \"0x1\",\n      \"nonce\": 1,\n      \"sidecar\": {\n        \"blobs\": 6,\n        \"commitments\": 6,\n        \"proofs\": 6\n      },\n      \"to\": \"0xf3eAc1d1B1EC8cA737bD148b1E96168024fB3F89\",\n      \"type\": \"0x3\",\n      \"value\": \"0x0\"\n    },\n    {\n      \"data\": \"0xd317cdd0be355269b7c5b51cd37d519950d774cb5598ffc8e74bca40d0c243a3b83a00612a30fc5faa80722094f38c6002904e1307cddc4e8f191e47191b9584c28bd7561a80b0f4c91be21f4556640d3dd85033038ec2c7a52d951b93c283e4dec10482186d3a732a269deb66abb6d8f560df063baa4ccf74baf3dd0f579b387985541ee3f0427ee3c3c3c229ccd82da43ca03e3561da96eb66c7e983d6efdfc48583998abe381e796863f666bf1a6f99e019a96ca80b8b12415b811f0201f051e6ba702173beca86251fd19b5f172e27d977a730e6986543989a58e39fae4ed6a75a59b9ae505890b2a195001704fab5a0b4af848c04862be48bdd5c82babf9e56b9adff9fa642c762f64b5536cacb260a2615d7b852dc7fc807b1d67a0e54d82557f5d39dbf3c8ef14deee959d261321fc9c7ca64dd05ef869cdfbedc19ac49fa8a92725b1b180a57d1c777e34f583f14215a57c7d33f4b3fa04c81f7cfea48c64ce135aed55b3c23ec58c8bdac489b8f38c6631cfe594b63\",\n      \"from\": \"0x1DEF26E2A310e3984210Bd9d4D67E19d721043A1\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 1,\n      \"to\": \"0x641602bAD4A323C49629d45338d79A2bb984A3fb\",\n      \"value\": \"0xa4\"\n    },\n    {\n      \"data\": \"0x\",\n      \"from\": \"0xC192f888ADA47142Ef2c856FC2C35197eea9E718\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 1,\n      \"to\": \"0xD74CFe323387aE2fd070CD046173026716D8D649\",\n      \"value\": \"0x0\"\n    },\n    {\n      \"data\": \"0x23c2eec37c11cce00a8f704284073089267e7f0bb5b5258035f584b6cd8e3dc2f8c9196e4c4194faf6d4fd4db3\",\n      \"from\": \"0xd5A8353a487e0749707fee138b741aeb2061C14C\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 2,\n      \"to\": \"0x766C0844EBC3c4ef4ddb86260a4D3516cCa03A10\",\n      \"value\": \"0xd0\"\n    },\n    {\n      \"data\": \"0x061997d49b5528665dbc3d800ae7d897ac84137fa32000299fdb0c9777ebc080a9aed590d6\",\n      \"from\": \"0x52439296aa999dbCF01bA02E03F5d59F0AE8Ca46\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 2,\n      \"to\": \"0x1d891f21BB2a55cD9EC7a32478f7c74d757c4876\",\n      \"value\": \"0x85689d\"\n    },\n    {\n      \"data\": \"0xcde33a3fa310af41e8a2fc059de3fc0222e0982551d5d80fb8bc2e5f3e34b4f4fe3a8201a9d47b414357fd2db6817eca4d6b81504f6874f82ecd62e6720a0fc7b39d3a4201b024b7ba304e8e7c765fffed771999cc53fd9c93cad3\",\n      \"from\": \"0x535863dA03bc1834eeA10eeab8FF498565F33f2d\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 2,\n      \"to\": \"0x7458F9b8B5ee360A32b0b0Fe648C996C68AE8190\",\n      \"value\": \"0xf45bc\"\n    },\n    {\n      \"data\": \"0x88a6f05cf67bbdcc10c4826a7f3dc1a835777e9b99148f860aaa0f4e3403db9d05c9824e2afad1dfff78ca58c8eb57b3570d472049fecb75495effc83061f8561fcdb6a395e35a467359fecab218\",\n      \"from\": \"0x1DEF26E2A310e3984210Bd9d4D67E19d721043A1\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 2,\n      \"to\": \"0xDa78807c1C4567c23EB713E9fbB3b1508C1284ce\",\n      \"value\": \"0x6b2d3b\"\n    },\n    {\n      \"authorizationList\": [\n        {\n          \"address\": \"0x88f9b82462f6c4bf4a0fb15e5c3971559a316e7f\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x0\",\n          \"r\": \"0xbcad8bdc514baf5efab74757cec1366ad303cb086e4fc286650a499aa2c51979\",\n          \"s\": \"0x291e47131cefbca9f42434f163e1be4d6fec29160ce5f1ed716b3735e5b01e7f\",\n          \"v\": \"0x0\"\n        },\n        {\n          \"address\": \"0x00000000000000000000000000000000000000f9\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x0\",\n          \"r\": \"0x71a82efb37c3ecda82184a469fe3095e61f879e9cd6cd5cc57c8db85623be99d\",\n          \"s\": \"0x62b8658048dc674f566db07998c96909310096f5e90788af763e6b3034e78387\",\n          \"v\": \"0x1\"\n        },\n        {\n          \"address\": \"0x0000000000000000000000000000000000000010\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x0\",\n          \"r\": \"0xcabfcca10b4052db14893fc01934f4d9ce6a4a06984a8ade1fa538783c89bd7f\",\n          \"s\": \"0x1768f53ad91b153d1340e0e9b1b2cbac0045f3de0fdfc05a108aad36c033091b\",\n          \"v\": \"0x0\"\n        },\n        {\n          \"address\": \"0x0000000000000000000000000000000000000000\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x0\",\n          \"r\": \"0x36a9141d12a6a5ac448d602b8aef8cad98744204d15197dc9f78e501e792d07e\",\n          \"s\": \"0x32e21e07bd4dfbe1a4f009a32d9e1e69006f290993324c31787e5f110a42e115\",\n          \"v\": \"0x1\"\n        },\n        {\n          \"address\": \"0x0000000000000000000000000000000000000002\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x1\",\n          \"r\": \"0xd66534866f9f76bc71377f381e6a57df9e7ced92cb350241c0f48b5c776848a8\",\n          \"s\": \"0x4c40ed83b35061e1a7c94909aff2b00ac4b936150ad4de8a3ae3b3e498be0635\",\n          \"v\": \"0x0\"\n        },\n        {\n          \"address\": \"0x00000000000000000000000000000000000000f1\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x0\",\n          \"r\": \"0x64aa96c5157c207876e42787e9dcdb83fea43c95b3264a41a88f5e1d9d4c99ea\",\n          \"s\": \"0x49d207f4228fd08c0b2be3fe77d341fd466ddb4b2cee0426903f608f0ff881eb\",\n          \"v\": \"0x1\"\n        },\n        {\n          \"address\": \"0x0000000000000000000000000000000000000003\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x1\",\n          \"r\": \"0x7b740e7556488f71d67851fa3b750ed08dc672413d8bc85a31aa10d8b3d41e14\",\n          \"s\": \"0x508ba9c3d39cd3061ec7db5533f01342abd201dc964487baa4eba8ab4394d02c\",\n          \"v\": \"0x0\"\n        }\n      ],\n      \"data\": \"0x68f591a70cb6fefad1b2aa3c181edb3b87c7fecc8376afb6719b5c0801ed65920341fc1cab010d3695f9151974e40051a84371823d7b65f1\",\n      \"from\": \"0x862B38c425EF5544d0127449A12c89C46dd3E050\",\n      \"gas\": \"0xf42400\",\n      \"maxFeePerGas\": \"0x10\",\n      \"maxPriorityFeePerGas\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0x000000000000000000000000000000000000000F\",\n      \"type\": \"0x4\",\n      \"value\": \"0x5192a0\"\n    },\n    {\n      \"data\": \"0x00\",\n      \"from\": \"0x0233362c058b2fCc8093841B1073A90D673E7F12\",\n      \"gas\": \"0x30d40\",\n      \"maxFeePerGas\": \"0x1e\",\n      \"maxPriorityFeePerGas\": \"0x1\",\n      \"nonce\": 0,\n      \"to\": \"0x88f9B82462f6C4bf4a0Fb15e5c3971559a316e7f\",\n      \"type\": \"0x2\",\n      \"value\": \"0x3e8\"\n    },\n    {\n      \"authorizationList\": [\n        {\n          \"address\": \"0x0000000000000000000000000000000000000000\",\n          \"chainId\": \"0x1\",\n          \"nonce\": \"0x2\",\n          \"r\": \"0xdd95902a4746dbf0cb38778983b6a5061c9784572e18492bab91b69a04315a29\",\n          \"s\": \"0x115d234e528f56cac392831ef418acb2db384b9b92749f4174e4e2ca2b2878a3\",\n          \"v\": \"0x0\"\n        }\n      ],\n      \"data\": \"0x68f591a70cb6fefad1b2aa3c181edb3b87c7fecc8376afb6719b5c0801ed65920341fc1cab010d3695f9151974e40051a84371823d7b65f1\",\n      \"from\": \"0x79cca006f0792Bf40a6d4E011c2884eD862A52DF\",\n      \"gas\": \"0xf42400\",\n      \"maxFeePerGas\": \"0x10\",\n      \"maxPriorityFeePerGas\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0x000000000000000000000000000000000000000F\",\n      \"type\": \"0x4\",\n      \"value\": \"0x5192a0\"\n    }\n  ],\n  \"version\": \"2.0\"\n}"
  },
  {
    "path": "src/cli/tests/vectors/fuzzer_test_1.json",
    "content": "{\n  \"accounts\": {\n    \"0x0000000000000000000000000000000000000010\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x00000000000000000000000000000000000000f7\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x0b530C4203F212318CE214ae2F1089d2478cb56c\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x157cbf9b700eef449fabd47069fdbe505932ef1adad4838332992036780813d3\",\n      \"storage\": {}\n    },\n    \"0x1d891f21BB2a55cD9EC7a32478f7c74d757c4876\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x6f19caff34fc5d41317e29d5e9f4f6d82a6000527fe2e0acd91783ca4e41ad927047dd549ad45b2219aa5422dd2c26b3399e84c82e6020527101000d80549ce27f0e5d07c4d9e259b070936040527f11e50838d9b10616817a4190ff6df2638128184b156a81f8c518e6baf19227a16060527a01000000000000000000001246341896a0554751d9a2bf3af6980a6080527ff0a8a04a2ccbd323e6e2346cc2be29847a6706d90abd298ec45e7744d4ef260860a0526f03ade5bba92764a5b115252fb5cc366c60c0527f880d73ac87aa9125199460ab8cab072f8b31ac20d28109b5e243f61d880fd4f660e05260806000610100600060d9600b7f6696b9800943dc76700342da15183f39d04923e24aa510de8c23d73c99cae7dcf26000556000516001556020516002556040516003556060516004556f167215b1682993653beaeff0004b14ca6000527fb88e8f2ceae397ab24a56be8ca4b3d6e2274886602ccd162cf64e110fa4a52b760205275040000000000063cf200b79ed865de1688cdf2b3b5236040527f55f49c08a47c5915a84548a59fc200e5ba430068bb0d1935341a6e634aeb2ded6060527fa9306a65a0e604373a8cb4339d55eb0b53fdff55b9379d1133f18c62d14c6f2e6080526f07b653e774e775f620ddf0e6b50fc9dd60a0527f53953e3cfd57d6616abde936c03f1c94b8c31dae7796cb3553212f26960c012160c0526f07aeb25d937d3d5eccbba85393bac1ea60e0527f5b70af1ae11a228b368f5c67f3c038f40be90299f4118a3dbd31c82b8d909840610100527fc2b9d98f02a25efa9fa8860fa9f80a43c73460a0d20e2113bec1c1fd7bf1618d610120526f02701b17eac732f65624ea3cd8be10e4610140527f70a5c5c3a3d6c10d8e4b45dc00bdc0a5e47f1aca6dcdbfb0e121775d61aa5226610160526f042e9f71c007d9db64ebb918fab442c7610180527f1dbe92ebca595a268909659e8db809e1617398e16e62c5f27cbf81d1c5d19ce76101a0527fc55655c9c78415954c172a18aa445dec340dc63eb0e866afdb0a25bdf1244c286101c052608060006101e06000600c7fcfdafdcbe09640f2464567b36afea525ec5de9358dd848c0b53b421a24139393f460055560005160065560205160075560405160085560605160095560006000526000602052600060405260006060526000608052600060a052600060c052600060e0526f06dd8919fb14bfdfab0f526a1f5239b6610100527f0b450443de757b82dd27fd61c3cb9a71e0573f50c339192ae937a298d2fda166610120526f04eda0faed5992fbedf736c817215d2a610140527f061ab4611c80704a98232c964308c34a42eadf0376a9a6e7a3d70ed862ac5b58610160526f14abc9f2f81080bd0071687392261e83610180527f604dd562c7c618761e4853b134fab49f395d4cfdc10a7779e1ee640d1f87af366101a0526f0621325b4b3f4d5b280989cba49a40446101c0527f8cbc5e4e87ea344b0a59a59cbd6c3f485ffc4f24fc4c0358a89e08e1cffd70006101e05261010060006102006000600d7f7524c013a9951987355d80fe3ac319676bf5d5135301c343fd3d5b79d46da74df4600a55600051600b55602051600c55604051600d55606051600e55608051600f5560a05160105560c05160115560e0516012556f17921415f9ff8bb3fe699b6495fe9bb16000527f6a142ab1e5e402bf55aefa40069d0c51592ce1586eaac5ffc39c1b63b3d0ba7f6020526f0e0aa5850d480a3d8cd9d5fa6f1d24856040527f3d0e7f46925e64fdaf666a9e5141aafcaed131e79d8261666dc8b142122e38126060526f0da917cc0d444ff2df50086d85e9b9576080527f6535e60c11eeafa970e381f95da3ed077e0cd30753342840d2db4d489d475dbe60a0526f0f2d7f29490255daba12b39022dcb6c360c0527fc4393dcbf2c5473d49f853993a9a833a2749a590356dfa608666ccd55c0cd04160e0527f0f83fc7c6c0587c4b87d800c8ef57ce037f9a317cbc6cddd33f9c725dc0d268361010052610100600061012060006000600e7fc4895dcd70512f399cd4a6ab3b9a94e6bce2e677769bf3fc66c3287bebbd89eff260135560005160145560205160155560405160165560605160175560805160185560a05160195560c051601a5560e051601b556f16e9a53c8298651e6d39e7d5b323284c6000527f10244f68ae94dd48bc745fe049e67d70681df88b199a2a2ba8f4ed3ff9e6e1d56020526f08e10f8f043e399f7f98e3a77cf2ed3d6040527f8f4928ca60da534ea929dd155350b5ea46f3f9e561a2b4d210c71b56e3e3c8f06060526f07d50b4d03ba978330fc267892bb168d6080527f746e3109a61583a4a2af18673590c08d1209336e235c8b113f81645a1d0fb7d960a0526eda68b12ee5ae79581f8c5ecf4eee4560c0527f62e30c2043d9336045d9594171a87f85caf11cdce1d305def393e6913110095660e0526f174988222802e2e5c94a516878b8c6db610100527fa56b52a69d70336ae79118f527eb303d2bf1c73c98a839485f5c493b9e738149610120526f0ceb05b1a555e9fb31fdf86cccad49d6610140527f4ce60cd5739c269a1a32b33d0c2ced561bbd35d9f2249edb3b7eb4b788ac8f83610160526f02ac71c4092cb44485e40bb9aba9c9d3610180527f443a137d91357ac2f396c90f00c7108f07e48bea04abc4ce8d31af0f47a2fde26101a0526f0853b2e555c99f7b42203a596493b5536101c0527fbc638d3a9954816a8d1d3a248d75d45df83cdb4362d93ecc3b0ebad969f3ce076101e0526f0e47ed6095014c6bb26aebf873f578d9610200527fba610c5276428f46a65f1eea6a8e69fd917eccbb7df1a06467cf06d59a6e0024610220526f11844e132dce68e4345276947724a03b610240527fdda05c2c6a9c936a9a8775a4b2075b7a6103ce6c2f11a225d13ce265fe55394d610260526f01964a9416e284e459360fa860c89a01610280527f23d65d9a7679e4c9ce0fd8ad33fa07bd6060b60eec7fde88fd73dfca094f94e36102a0526f085b4a9ac88c960ddb422fa88b3568c46102c0527f48604784513f5221eb963855b06bce22bda53affdd70e4b98a0ff40b98beaf676102e0526f15447a27385181684a148242396311f8610300527fc2c01489c6e714f44f14c6bac555c3f09c21f3e1cb8f5a4c9cc667e76bb375a8610320526f187bdee96685d72b15768e87738ac090610340527fce1046af57eb88b9c87977253bfb3fdf10e1e8e8d5eed280766bf6fc3d7b9cd0610360526f024aa2b2f08f0a91260805272dc51051610380527fc6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb86103a0526f13e02b6052719f607dacd3a088274f656103c0527f596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e6103e0526f0ce5d527727d6e118cc9cdc6da2e351a610400527fadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801610420527d40000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99610440527fcb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be61046052602060006104806000600f7f7f80628a357d42b11e6fd04a25350afcb2a4ddc960c762759e0edc19d2f2d4fbf4601c55600051601d556f190b5d5db51c6a5368c6fb2aeeeed8fc6000527f55c128be3a72201564946bef2a9190c8a1956d850bf5e72ee546f4d883b6d219602052608060006040600060107f99646682ed7d62087f392cee9340a90c98295fe4038d6b5f2c3e6e457a3870baf4601e55600051601f556020516020556040516021556060516022557d080000000000000000000000000011c2b0d6fb41c389c5d3b1d07553e1896000527f63b36a67f2a0ea76ddc11609088fe22a47fca4dc88ce65fc0209c6918f8b9fd06020526f034cf4436a26bd7f98373de09ce810a36040527f6309d107ead83d7f3c1007b00d58be95a0462264196e81262fb57f47dd18c72060605261010060006080600060c160117f3516f04fd741b0b10a8c7a84cca64e82bed0c8fc4b1c16c0ba6f2fed80e74aeaf260235560005160245560205160255560405160265560605160275560805160285560a05160295560c051602a5560e051602b55\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x22986B2F9A2f5E7119F940898c35e7128A4Ce7E3\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x602260b960b760f2609060346021148a990397444a3a18991c5214863c4103788a8c3a3d5ef59a857b357d063e555e5d49771b4a1a476f545c9d6f53156238486c45395c465c7a32a37f72a186041785628280440668f55f7d9a315d166159657a13f35264786b7e427359017c7b5e01086f89547335046e99635b647d5c191b477e7e4830076372f2f1635f5479581a129e66a16a853afa733c58467c335f4777375e630bf0557647776d72480038a0417261f2313772561843a34011795e0588714a823e6da174119b928972a220001c444873033e9b9668a2747506997c435430575b7b889b7f7e49ff67703c8f0774441b0695325e95368971028630335b44fd1450f439808cfd73733b547d1071f51470183d6054180640425e72719177643c7981706f579c7a647a9e4a5d357431046e3d6857069105f35ca0741113415d381d064809010a11a33650644410170846557181107a5b9f815b06a450711c3217118b1268167f56757f1210967f3116f24308523a9c024370465851667f626f50746ffe386c351b3263307d133e7b413f5f1e5489790a6c438343a241017a75a0536780895c469b1379856c6a1793090a3997651e9451f147323b3539a1623d9d967d7f428c345108f157396e708972500339806088556cf33e76a0586836100730067006038354036b398059368d3063168a8c006f3c6a5744331a3539876e520a3801a0a160093d67fd093b82a474023d5a3b567a6c816f30415416475f12308e531449578fa0083b14386c5b4412953155f04a78033f6f1597379d3512607219311c6314804918666c8a138663106dfe5e76126479649c096176698330689a6334469d14611b463f73f17f3ff354f0fd301e58a2868f1c42194386760264446c586e376c6dfd75513003027f6a691a65445c8e5b33a07b93156d02707465956a647a9a61924073050a1d17040437f35b6644587d33036c3511764846a3125114531e564490101c345d4a1c8e48525e0b59756c101993413e35455b6e050b9d986d7618919d905c6f8e605f77553b8204517a3a9b80967c507f126a3e639d587a3f8ff0185b01f36e6a513f195646478d6617a3327d5991471e55983980381119856d3e7848810833348f51696c77851c06343863545c677b006681368f407a571a618d3771116f706f329676195d5940135a907000387a3597756e519109948b96799c7a98677c345e668139171a14579f3f6f43081203553a3901160a0a691643517d0889365ff03542026e795c49549288323119416020553d36805201038675197d0942633684696c7b3c3e634646897f044463093a41546777895c58138f8b427c80639406566f1d84956ff530fd6f60fd399ea23631197f31446c330271973a32a3155c41480351774263325a79178919761744335f143a6a7d50\",\n      \"nonce\": \"0x0\",\n      \"storage\": {\n        \"0x0000000000000000000000000000000000000000000000000000000000000000\": \"0x0000000000000000000000000000000000000000000000000000000000000007\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000001\": \"0x0000000000000000000000000000000000000000000000000000000000000012\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000002\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000003\": \"0x000000000000000000000000000000000000000000000000000000000000000e\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000004\": \"0x000000000000000000000000000000000000000000000000000000000000000b\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000005\": \"0x000000000000000000000000000000000000000000000000000000000000000d\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000006\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000007\": \"0x0000000000000000000000000000000000000000000000000000000000000012\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000008\": \"0x000000000000000000000000000000000000000000000000000000000000000e\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000009\": \"0x0000000000000000000000000000000000000000000000000000000000000011\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000a\": \"0x0000000000000000000000000000000000000000000000000000000000000013\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000b\": \"0x000000000000000000000000000000000000000000000000000000000000000c\"\n      }\n    },\n    \"0x3Bd84e661C47a73eEe4137D185E4c31c194C343f\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x60006000557f60016001556000600255600154506001600355600160045560025450600060056000527f557f604060006000600060047f36b4f1d52647aba45de94939600358e701ebb36020527fabb1600052608a60205360bf60215360d5602253600c602353608d60245360226040527f60255360af60265360d960275360c160285360c260295360c7602a5360f4602b6060527f536060602c536006602d536055602e536060602f5360006030536051603153606080527f606032536007603353605560345360606035536020603653605160375360606060a052603860c053605360c153606060c253600860c353606060c453603960c553605360c653606060c753605560c853606060c953603a60ca53605360cb53606060cc53603b60cd53606060ce53600060cf5360f360d0537f3726516ff6afb368da0d12e86e99748428aed23ee5bf03f75aeaee14cf1bdae460e0527f2b83cb68e5ba2c412b683dd5faa66a07e182f4f59dc70d6b320d6d4181ce0ed7610100527f746be7ca124aa2bca0fe3dc55c6cc8f44a5e1e2930f84f5a822b44303e0f790c610120527f92d2f1690821e731d4cb9203421ee925f00617320c317a8671939e61666fd133610140527fc08586e712d5efc118cba245e33dc78269240ffb3b2250da12cd5a9bd4dfcac3610160527fddae063a1cd1400af8af40c2b53904fb939a812c511af8821453f2e611b782c2610180527f0eb6da4b4c07e1e290339bbe5c64f16c5e2666bc7c96910d55531ba23ac61f256101a0527ffa397670c3a25dd3500af010e3310f878ab850ab7d66ec1ce0ba296ca5f10fac6101c0527f29c5aff225053603b31d5c5418eda6d9b8b8f02daac699980d5aa18a904f62d96101e0527fb18cb29151d86fce51629e9de4ec92ddf705dfdd9e8d1208052e43b32d83bed5610200527fbdc9469bf7f3a5f394770b6c66aed956de7be64f028b96da7538d61f8c502f5e610220527ffeddd512f914664dedf2381aed820bb578fd2d56b27d78a603db69035f6ada3d610240527f305910ad13ce1288194c6761cbfaf9ecc04bbd56752ee34bd47752e247b266e1610260527fdd79a40b36434911a9631444daaec918c08d2bc9d045f336796e760045622282610280527fb7ca6111bc82161339ab1a2959e78f60bdedbe67c284558c7ebe989d80a8d8e96102a0527f0b3c1a4cbebf19e61db29be4bbdb79f49c2b3ebf94d3ac00375a12c51a495a886102c0527fff11f7e91dd2f5a922e585bf4a3ccf4caf00088d8497fdd4d0eeb03e24a07dfb6102e0527fcccb5a1b972bb15393867efc308981ef6a625bc031d835cc0120177360590534610300527f13b8f82231514ae3ea8a19a6dd7537c0808bde918b15ff1fa1b2dda28f9d1792610320527fc1e328a14eb9a03ff7eb9d65af91d83301b67a3914960b7e7963bc10a010c767610340527fbc4d45ba427d312da4c934a47dc632e6dc7c14119e16b4cd1a81dab6a5e1fc4d610360527fbcaba568741eccb9f3310a67e3b0974970dc10a337f3be9a65642293c265367f6103805260d160006000f0604060006102c060e0845af4600955600051600a55602051600b55600c55\",\n      \"nonce\": \"0x0\",\n      \"storage\": {\n        \"0x000000000000000000000000000000000000000000000000000000000000000d\": \"0x0000000000000000000000000000000000000000000000000000000000000008\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000e\": \"0x0000000000000000000000000000000000000000000000000000000000000003\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000f\": \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000010\": \"0x0000000000000000000000000000000000000000000000000000000000000013\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000011\": \"0x0000000000000000000000000000000000000000000000000000000000000013\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000012\": \"0x0000000000000000000000000000000000000000000000000000000000000010\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000013\": \"0x0000000000000000000000000000000000000000000000000000000000000005\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000014\": \"0x0000000000000000000000000000000000000000000000000000000000000006\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000015\": \"0x0000000000000000000000000000000000000000000000000000000000000009\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000016\": \"0x0000000000000000000000000000000000000000000000000000000000000013\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000017\": \"0x0000000000000000000000000000000000000000000000000000000000000008\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000018\": \"0x000000000000000000000000000000000000000000000000000000000000000b\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000019\": \"0x000000000000000000000000000000000000000000000000000000000000000e\"\n      }\n    },\n    \"0x538A8474EeaB43d5a960164c554A20400151D479\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7fe1a31e9d6b65985c0db9b672bb6d55b454de1ca89f693b6305eab9d051e63dac6000527f9ceb3fd5b29ea165b971ea736fc32fbad18ff4464bed46f638085a1005fbf5df6020527f1ec47106d4e3c0c6bc569e045db7b6e890d1687ead46da9e515c6e3b9eef31356040527f8fd11b1d99f82e0f419eb7a9ed13736d83391798a157196fb445495b89a675926060527fc531ca15c827b1b596bd1107f362ad6afc0d426a2c951502734e346f2de8dde56080527f79ff9827b2c0534e01787a1b8dd7fe855adc62a47e55a138dab9c9e368a1ece660a0527f4b2bb32f436806c15bbdd5aa1685271167f90090b0867ed9b9f65467dd01278460c0527ffafa4918f584bd1e5540ffef9ae8737a1f99e0246b8275d48a30893cf987b0f960e0527fa4bbdc014d8d97cb917aaa73d6f9ee28abb331248b7ad35afbc2deda96f49d75610100527fd4994add7a509bf6a3ebc9653b49ef6e7f95399349aabe9d7bdb3b61bdf858d0610120527fa3da114679ef650c371fbf94125a8adce0b2826c9015a258304e0bda3c51118e610140527f27463379eeea92d94e8eba640c22d0de41bff611b1754695905841267161f30e610160527fbf90547c700258cb2d8dd93c097de8359a6599ed8d0780cb59539cc1c2638b44610180527fc3096ad3f1873283d828b50c41efc4ac41aee51cd7f2bd7d3d4f33afbcbe032e6101a0527f5aff79e915ce4ab6f25d50594f799404aceb01050e881e3db774e4d55d5978c26101c0527fba56951b64e7152bcb9194971dda9b0df5f930200b8273734682715c4e6056396101e05260406000610200600060107f2f97ddd75c0c05125fae073ccba46c5e539d71bed8ff23853bf1764460229fdaf4600055600051600155602051600255\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x641602bAD4A323C49629d45338d79A2bb984A3fb\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x600051600d5560ca610160818120600e55f3\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x7458F9b8B5ee360A32b0b0Fe648C996C68AE8190\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x401d746660008b994772f255600860005560005c5060076001557fbc8df58e6eed20da90e13f5ad2c08765cb6e81439a6da04b12de0540574684ad6000527f7159dcb73f8965ac626a129d4079b06b37f92f0421e62bba810cc8110558453f6020527f1df0080d280babd78d73e16c819f791cde947558cb175008b6491426ef95094e6040527f5c4784a311acf42f8cd893a5c489ea07c3d637d7b64e8ada04ec7c12b46fabf86060527f1d5cb4b437399e6bde518642eae21cc163175f8434d59979098c4d0dbeb50f736080527f852be8ca72f3700871dbbfa86f890081180b5551a802f20a1f5f12de55f3e2f960a0527f318dba96318f6da5462adf7e9589495080040023ef8d45f1a34672ecf71338e760c0527f23936a7f7fbec00a3880ea52fe3e86568ce44061752d5d0bc62d4c83883a57ed60e0527fc467bdb7b28d098a1f1451d9d5c4e8ea8b81e03db78fc63cabb1ca744f75e81a61010052604060006101206000603f60087fa266b49f47d3fe71da4e7a84d4e319f7affb522119f7de9f9a600a5627456b1df1600255600051600355602051600455\",\n      \"nonce\": \"0x0\",\n      \"storage\": {\n        \"0x0000000000000000000000000000000000000000000000000000000000000005\": \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000006\": \"0x000000000000000000000000000000000000000000000000000000000000000a\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000007\": \"0x000000000000000000000000000000000000000000000000000000000000000e\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000008\": \"0x000000000000000000000000000000000000000000000000000000000000000b\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000009\": \"0x000000000000000000000000000000000000000000000000000000000000000f\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000a\": \"0x000000000000000000000000000000000000000000000000000000000000000f\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000b\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000c\": \"0x0000000000000000000000000000000000000000000000000000000000000010\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000d\": \"0x0000000000000000000000000000000000000000000000000000000000000011\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000e\": \"0x0000000000000000000000000000000000000000000000000000000000000007\"\n      }\n    },\n    \"0x766C0844EBC3c4ef4ddb86260a4D3516cCa03A10\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7c204ca729dad386476072a674923939c221cb19c4b7b4abd0cc43fa5f776000527fd4abaed1ff03eb0617079641124fc2da5e11e3b4eed3f35a8e5a04ba046b72486020527fb2bafb6e4fcecd331fb65ddac17759c71080b15831692735583c69c439e5c7656040527f7443edd4af446493c3011fde316b91daca78c8f767dced885b3166d83feb88046060527f4f016aa7ded3858aff740a0df5c2472456f4278461ba7e89007aa3f1ef7e45236080527f81c3dd9d889bba4caad01c180160b3d402aefc9a33ef0a422dbfce85e5146bbc60a05260ab60c053607260c15360cb60c25360ce60c35360f760c453607860c553601760c653606a60c753603660c85360ef60c953605560ca5360be60cb5360b860cc53604660cd53600a60ce53602b60cf53606560d053607660d153603760d25360ce60d353600060d4536040600060d5600060f060097fe6b64d3649bed6e6bc3a97338bb4211990955bff747c3a0cb26696f5c97e8212f2600055600051600155602051600255\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x7982c0B61a97cBCf7fF7b3736023b23D159873f4\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x4d9d461b0689c4bd2e0a75f78f8fc9dde4920c554402cac511acdd600e023977\",\n      \"storage\": {}\n    },\n    \"0x79caC06f747229e9F79FA47049fb37884ec384b1\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x2d7dce3ec394fd470eca53cc6fae4c8d8b38f19433d56ba6e549a98ab2bec9e9\",\n      \"storage\": {}\n    },\n    \"0x7c2C923D79B9903f29A71bFAB11B24c30C9FF962\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0xb1330d826f506a345059475813d946401278a870614ea1128f04ed451d5c9aac\",\n      \"storage\": {}\n    },\n    \"0x9529cc6891Fbd5aBFABE0AE6c79D30F0CCAe848F\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x63800000017d7676767676760000000000760000000000000056000000000000000000009018156000557702ffffffffffffffffffffffffffffffffff2000000000007f800000000000000000000000000000000000000000000000000000000000000190117f7effffff800000000000000000000000000200004400000000000000000000017e050beb1c60141a0000dc2b0b0b0b0b0b410a0a0df4f40b090b2b0bc60a0a00069012760100000000ffffffffffffffff0000000000002e00000068010000000000000000901d684783921454358970527e40000000fd000000db0000000000000000000040000000fd000000db0000016801fffffffffffffffe0990161c600155760100000000ffffffffffffffff0000000000002e00000060057bc9700000000000000000023f00c00014ff002c0000000000002231089008778200000000000000fe000004000000ffff000000fffff7007806400aff20ff00200004e7fd1eff08ffca0afd1eff08ffca0a1b901b7d0c76f4afb041407a8ea478d65024f5c3dfe1db1a1bb10c5ea8bec314ccf97702ffffffffffffffffffffffffffffffffff00000003000013600255682100000000000000227ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb1a6003557f80000000000000000000000000000000000000000000000000000000000000016b100000000000000000000000901d901860045571767676767676767676000000767676767676651ce97e1ab91a901676013590cab83b779e708b533b0eef3561483ddeefc841f5778200000000000000fe000004000000ffff000000fffff70090036005557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ee8e8e8e2000100000009ea02000000000000ff3ffffff800000010002280ff1a6006556d01000000000000000000000000006005900790116007556f121212121212121212121212121212126f1212121212121212121212121212121290056fdac7fff9ffd9e13226262626262626007feeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee90181b15762900760076761e000200767600000000767676760000006801fffffffffffffffe1002677fffffffffffffff7f7effffff8000000000000000000000000002000044000000000000000000000190069019901160017e050beb1c60141a0000dc2b0b0b0b0b0b410a0a0df4f40b090b2b0bc60a0a00901a6008557e1f0000000000000000000000000000002000000001000000000000000000007e4b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b090b2b0bc60a0a10009017901c7f77676767676760000000000000001002e000000000000040000000e0000000007fffffffffffffffff7effffff800000007effffff800000008000ff0000010000901c901c6009557e1f0000000000000000000000000000002000000001000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff17600a557f82000000000000000000000000000000000000000000000000000000000000006823232323232323232316600b557e4b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b090b2b0bc60a0a10007f7effffff8000000000000000000000000000000000000000d90000000000000190017702ffffffffffffffffffffffffffffffffff2000000000007cc9700000000000000000023f00c00014ff0000000000000000223008059012600c557f7effffff800000000000000000000000000200004400000000000000000000016c100000000000000000000000001790146d0100000000000000000000000000677fffffffffffffff1603684783921454358970526b0100000000000000000000009012126380000001686d5adef08547abf7eb13600d557a0109000000000000000000000000000000000000000000000000006f8000000000000000000000000000000003600e55682100000000000000226770000000000000009006901560006000f3\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x9E607bB0Bae19b8bC75638fd1aB98594b36ba46d\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7fb511be36d35b74739a85351c052fa4de58db198a76d03d145a2d33203c2c32b66000527f26ee5abbb7ea9e33fbcc013139bb00934e98d3f25e6da159a52d2e0152bfc4f56020527f6d0dff51561b32482bf7e6dd4c7c2b630ec00581ae93c8e88b02ea3ba6e3f7586040527fe6e1d60bd9c1f8c2f5ac77b0a75b1ac10d5d436517f67132ee04da57ad66c61a6060527f4089ebd6d189c7085362bb204ede3e28c7de082ea6906a192d6fe1e86cfaf16f6080526020600060a060006001610100611b1ef1600055600051600155600060005260006020526000604052600060605260006080526020600060a060006000610100611ac6f16002556000516003557f9a92cfae6639594ef5a936af7206a825039830b70121bd288099792299610c776000527f357d5942107baca8191dc32f847229ea93a7ecd634f96cf82b77603fe057a6676020527f84b09f3632409869d2fa6f36de4eee7cd0071520e71905199c75e18bcfeeef3b6040527f941d0fd4fc5d0a735c27ae11507ab5ea2a786cf14a9254c9afc3df2bd2c08be36060527f3d4798b3215eb8fe2dd88edf7b0b569bf34b9026925eea60bc315c65931ac1cc6080526020600060a06000610100611b2df46004556000516005557f0f0ea7c172f5a60807b88890ceef3613666c7bc8b46ab8c6ba7f9d44c7c8d9c56000527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6020527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040527f2caca4cd87938c0530ef51cd1db94e01e69b7e4b7e03df64fcc0805927fabca06060527f7887b1df3e1b05a0ee2e48b7c1165c05befb4beea8606070e12e62c12c127a1e6080526020600060a06000610100611ac8f46006556000516007557f0bbb06c7aeef3093a1a0eff5c46deb9d7d7cc7cf8d821ed636871c880b1a6a556000527f3e28ff5c73e7130c61c678d789af2a87ae9f7c290d7deb610d6ad79f113d94186020527fe671e799198805f8189928646d971703d44cdf97409ddcaf27223f93f54fea606040527fb8122e7f2fea191d2802cb055c051aa598069afddec63d69cc994c7e900172d16060527f60c335144e54220c97209ea95244251059d0f3d442e5bb6dc51af9ae73a457e56080526020600060a06000610100611c1bf46008556000516009557fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6000527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6020527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6040527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6060527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6080526020600060a06000610100611be7fa600a55600051600b557f592c81d1677b5196e4d245929e6496a2899555bd2a946d57c23ab32ade99ca986000527f46b70fe7265f36468e64a4361f32e849dd282a0320c260735f21ac79dd1bf26a6020527f042e0e533318524d279d357a0d8e74efc9ba6d3accdf2371a11ceb55c76e59026040527f4b4525528aa2a41f53151a6f41f345989e19dc826bfb59fae30dd3b99411fc816060527f288e3f6c0d35bf78e6cfcfa5f9da83ef49e11dca41b560ce612fb573a94794546080526020600060a06000610100611947f4600c55600051600d557ffa70288e2ea04596712d5db7d2648d0fe15a93ef1361cb32193ea71208b4e1d16000527f01cc6513c119ca09301a270e2b688b54eb9cdfa4f82910ab5e9575c876fd28106020527fadfea09485c17d44738a41923ea61cccf37a76b86392f7df3e5bdeabdf91a3636040527f54bf277179e68b0be4828fb6f0abbc32c5dd04b6f94041dbbc318ca2b73c87e66060527fcce03cbdf75a6153c5f68b229d5eec99c9cd3a3b909759e052555fd3461c18f66080526020600060a06000610100611b48fa600e55600051600f55600060005260006020526000604052600060605260006080526020600060a06000610100611a18f4601055600051601155600060005260006020526000604052600060605260006080526020600060a0600060006101006119c5f16012556000516013557fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6000527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6020527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6040527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6060527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6080526020600060a060006001610100611bb4f16014556000516015557fd900eed45d1776f9c7fb5481006bb7c814974494d8d64cb48ea64fc45fbb0ba46000527f69c2d7f49d906367e5162dab8ee5a7bd7823c111f921dc9f8f0067da568c7c6f6020527ffdae48e7c41220e433a48c84156e2d83ede6dd68a80e3f272632b2743eb4c7e66040527f0992f0090cad0a5a66b1abbffd6f3edf2cb6479b56e43b587d580a13ef05fbcc6060527f5c80af8232db2e0eaacdd05ff44633998ea9718b003da0288868905ee1f551c96080526020600060a06000610100611a07fa6016556000516017557fef02d493f62b3af6a7bfacaf888c58ae1b41d3e62bd483459f1682842ade1c726000527fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325506020527fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325506040527f75415288bb9affb8bce0c2c7e9e621d6a039a9eab09a1a9a3a5d948db555530a6060527f1e425924b0e734bf3e320737c8c4d93466125ec8ab3f1c6e27d874d61d8459696080526020600060a0600060016101006119e0f16018556000516019557f0f0ea7c172f5a60807b88890ceef3613666c7bc8b46ab8c6ba7f9d44c7c8d9c56000527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6020527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040527f24af7a688a7415dee8c9f61925d9ce1b49c6c52fbd58ca95ed6c966a68abdb626060527f7850ec2e896e2e95eeb06daf3f97f70c7c749ee9dd193cb34e92a5606c0f56ed6080526020600060a060006001610100611bb2f1601a55600051601b557fdc7a6a7dbd8a42cf97100cbfb5343286879ea772d7f0e486bff85bac63a41cb56000527fffbffff7ffffffffffffffffffffffffff7ffffffffffffffdffffffffdfffff6020527fffbffff7ffffffffffffffffffffffffff7ffffffffffffffdffffffffdfffff6040527fea73e64300f1f62cc62a21316d8c321f0d94bd46ddd81a3ccc28637e9fcc059c6060527feb47b65c82e04c8d9e2b76e469127a34cc255d65fa7e972c4a2e59b43f362c456080526020600060a06000610100611b99fa601c55600051601d557f0d5d8c3c63c36344c65b288698895195d95bcdc486db6b84bdb44000077b0c7760005260016020526001604052600160605260016080526020600060a060006000610100611b35f1601e55600051601f557f0f0ea7c172f5a60807b88890ceef3613666c7bc8b46ab8c6ba7f9d44c7c8d9c56000527f01fffffffe00000002000000000000000000000001ffffffffffffffffffffff6020527f01fffffffe00000002000000000000000000000001ffffffffffffffffffffff6040527f9f9f373679c7afa4dcabfd13c9ad7caadb7a21a1cb644f3cab82894c2fc3945d6060527f1a38fb7e2ae12442797eaf42952fe8c6e1c1905413d679d3b214a795573c66896080526020600060a06000610100611be7fa6020556000516021557ff081432cc644bc72156bf6142c4c64d2e4fc97a00b031e7cbb351d295757248b6000527f3889aeeccb261d4f724fa0f8e59e98808c196af04c6254e04ab6eb4d092450a46020527f142719b3436d45c38cb709a57c9ed6fd29275349ec7cbd8c9bd41de0889642186040527f88f4a68540ab8a1b50cabd1cf090cceeb373d82664498c439a4a32779c0d22c96060527f3e6f058623651dce23bb510f143af1a5ac880c2d37fb418c5842372d1f8c34066080526020600060a060006000610100611a70f16022556000516023557fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6000527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6020527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6040527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6060527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6080526020600060a060006000610100611a65f16024556000516025557f07dde465c9a3eafef9f67182ac66f082bd13b079e6e1987a230a289731751aca6000527f818ae986aaf82a2557850c44fa8c66c08cbf773a40926c4207f4dedef7f268ff6020527f5d0f62fe7ecedb18fc0a6816290c84e1babcfc3ce7c45eaebd2b3e240590e0d66040527f6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2966060527f4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f56080526020600060a06000610100611c7af46026556000516027557fc80aeda6f4081e9c31cbb36b0197cc22a8efd63adcb4485f61236cfd06a71ca16000527f1ed7abd2c30eefb6d147a7d0d2f3a8131ec404d52ff52646139398d66a01f3f26020527f79c92381a2a06bfb3b1031bb1b4cdc77d639373002ab0ac314b1523a7de7f68f6040527fafbb22c18f1d6d660576338408c29a612c553e312ba6f8b29b93506aac7adce96060527f0f515ec269b4211979d43151e407cc25f6696ede802c24b68ea55f1342b96fda6080526020600060a060006001610100611b9df16028556000516029557f7c12b2191d8ef871047530a206958736d82d157a10f5f9988f3f751f7c7692426000527f2f5258e2c042a1da26a26c70833f7995b6b861a45ab2fb138f436b5b085b8fcc6020527f5737f2db6ec576ea11b9441ed36d37cfe21d49f779edd05b50fb7e9eb68a4e626040527f7d11792e312872bbb04b7aaefde5e2550098c3f3ccd932512ac1aea601fc47b16060527eba8209eac9863d2b1f4a437705c9ccf468310512b30b8bd9fe41cdfdf2ef9a6080526020600060a06000610100611c33f4602a55600051602b557fcd43b17ee6fcb602f1e29abfa2a9d5b48cdd5c092d98c32e26b1302d4960a5a86000527ff64f37e50c8f8a6ad3aa7ea6b3ccc0bfbd5c2f023a1dba33e7c26f90b72ee02b6020527f66a4bec343d4643c8dbf09232a8b5b00449cf8a99ab6f4038334dd54d6cd7f8f6040527f7db82f7ec4beba67b179c1c2a8983df79a36413992aa5a39503f1428cc4e25016060527fae00f9aece5008162b6f21c518e3ee6434941526acfe840344e9be157bd169636080526020600060a060006001610100611bf4f1602c55600051602d557f55f877a03e3e31007d8ccb0037592750fe627036579cd37987d3ef76a651dd1a6000527f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f6020527f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f6040527f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f6060527f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f6080526020600060a060006000610100611aa3f1602e55600051602f557f7373927df8ebb8a5ac091c307565643314c299619e3aa81e01a2ec6e115f916a6000527f1f248c01540fa05841fcccbb52901e202faec36341b941b94f7adf285b0123446020527ff49056605d85bf9bdf7895b87aeb87d34b5aa57b60d87e53e206c9b2f6074e336040527fec54228434f47ad27d147bc0b47ea82f5c31e0f2eeb2d7aeed573a4c36fcd1d16060527f6d1cec152f3e3e8c6e0d7a4fc389ca47b94c8e34478fb0f61567663746bda2b06080526020600060a060006001610100611ba2f16030556000516031557fdc7a6a7dbd8a42cf97100cbfb5343286879ea772d7f0e486bff85bac63a41cb56000526fffffffff80000000600000002fffffff6020526fffffffff80000000600000002fffffff6040526fffffffff8000000060000000300000006060526fffffffff8000000060000000300000006080526020600060a060006001610100611964f2603255600051603355600060005260006020526000604052600060605260006080526020600060a0600060006101006119aff16034556000516035557fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6000527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6020527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6040527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6060527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6080526020600060a060006000610100611b07f26036556000516037557f0d5d8c3c63c36344c65b288698895195d95bcdc486db6b84bdb44000077b0c776000527faaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa6020527faaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa6040527f19fca7d59f879cc12ec4bf084df587cd4d3ccbc733ec54a0147cc582b4adc0036060527f9e03dddb7ee6f0c81ba11c47ba04d3c039c85cf63f37150313a47cd4c7fd4fc76080526020600060a06000610100611c0dfa6038556000516039557fdfd58aca08532a61992566dc9b53fdb5dd609a84267fc29f28ef77fc4e3c36546000527f11576b29c809bcce8678b900952429f5d435c71987b644e1a07cb6be2fc5e87c6020527f5baf683fefa7a13120e806df4a57cfee97e9d69605b839ac94182a1cf6301e146040527fcdb9ea9af1bf1cde5b8bd83ef72b4fb5b65427b883ccf4e0ada5eec1f167b4176060527f9da601bccdebd3c0a6ad3a73dda7875df3bdba8df4367998adba9839c3aaf8486080526020600060a06000610100611ab8f4603a55600051603b557f8d91d8ef900d4b1496bd67fda046a82037bc18eec3722e72de615262aacfe02f6000527f988aea2d9c20396d364c85b705076a5505a697dc7d60c8ea91d380576745f4e06020527f3e83d58208c5353e179a2f374c2aa5a4f3101dfccd9ca8dd229fa6e801b045e76040527f32f9ae03f79f5f7dbbc96223efb8f7def32a2f7047d7de0d3980706eb8c1fec16060527f96b6a590c004c3a276de89397bdb137f5bb1724daf08e3211477535cb8ca969f6080526020600060a060006000610100611973f1603c55600051603d557f55f877a03e3e31007d8ccb0037592750fe627036579cd37987d3ef76a651dd1a6000527f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f6020527f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f6040527f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f6060527f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f6080526020600060a06000600161010061190af1603e55600051603f55600060005260006020526000604052600060605260006080526020600060a06000610100611c18f46040556000516041557f6cab6c2b703f7d67afcc860f56d8437f3b9ee4c209a5acd9986d3b05ab60d9bc6000527fe7f933b46936a5004907e55c4dc53092c174ba06943bbfbf90e0802164689e816020527fc488f7fb05d3a80397b19b03318deb37babc32c05504c26a6f7d837938506f186040527fdecb3acc028e66754176866c6109a03ac60eff659b87f633ff18ce41a4f9ea616060527f9d95f2926562086975131b2402043777005a5bfb393da343f66f829b77c1969b6080526020600060a060006001610100611b18f16042556000516043557f90d223bd3b8895ad2d6820592d063af8ea6170dd2a6c6800187c545eb592a8116000527f727b03b61f5dde152e04c2ab579d839782cbb29909e54b219e895551cee9798c6020527f71e1a22cae857823d054a504ebe486c1f5edf176ebc327289a90ff07800c453d6040527f37ee2531e5c4063994edecf64d483d05316a25907afa516d9055ac86155b44f96060527f7b7108261418d866350dc293f13dab89cc9782cf00b0936264fccd768e1ba0306080526020600060a06000610100611b11fa6044556000516045557f89a43b8ca5df83cf7b97fde1b28f74c693d1afbd6fd0cb1ae1642625c718b0156000527f0bf972cce64c6fbcb27b07fd0803ff3c4fbfe3f306cd3b1375da67ed0cb725f56020527f71dff7030f06d40941d92a188072478f7387cfb411df41abe6a75efd6d9441176040527f47de18a2173098799b70d71e171fb432f7cff8592d735dab7063c246c37838c56060527f7e3fb2e586aa10db8130958294c8ca92f86746dd39313f9f044ed92ab51ebec66080526020600060a06000610100611902fa604655600051604755600060005260006020526000604052600060605260006080526020600060a06000610100611cb0fa6048556000516049557fef02d493f62b3af6a7bfacaf888c58ae1b41d3e62bd483459f1682842ade1c726000527bffffffff00000000000000004319055258e8617b0c46353d039cdaaf6020527bffffffff00000000000000004319055258e8617b0c46353d039cdaaf6040527f95f802a4de6bd804746155b418f062143764ef2a147233201bf8495b228647466060527f9d0ef95979bbd0ab36881723e5201d79464fd2b1d4f2f4132c5bc720b4d444206080526020600060a060006001610100611bc8f2604a55600051604b557fdc7a6a7dbd8a42cf97100cbfb5343286879ea772d7f0e486bff85bac63a41cb56000527ffffffffffffffff7fffffffffffffffffdfffffffffffffffffffffffeffffff6020527ffffffffffffffff7fffffffffffffffffdfffffffffffffffffffffffeffffff6040527fe353b148a8865c34312ec4be2fd75654fd51c2a6ad9fe7c2415b99e1e88b8d626060527f6ecc2a0c493d21397f0afed91183fe3eafc4608aafbe16752fe678d72a9e2c326080526020600060a06000610100611b4afa604c55600051604d557fdc7a6a7dbd8a42cf97100cbfb5343286879ea772d7f0e486bff85bac63a41cb56000527ffefffffffffffffffefffffffffffffffefffffffffffffffeffffffffffffff6020527ffefffffffffffffffefffffffffffffffefffffffffffffffeffffffffffffff6040527f890be92aa6553fafc61f2d7bc894e0364cc05674cde976108be782fe256658346060527fd327c7ccdc52c8148e193aaa15b9198ce0ac3dfb38edb0fc3f97562ee0cff9c06080526020600060a060006001610100611c4ef2604e55600051604f557f70d493d413d0f97b38ecf03f9936de5569134743f8ebba326bcab2fce1b308bc6000527fad6b307f682762fe700f50be21df0eae15576e3310374b5286fa01f4f580dcb36020527f410597b9fa20da8d725be815a38adf9641d936b67d4e253de45aa0cd0e7531fc6040527f0c75e73b83f06dde3f187454439cec155a7f4085ddb5b0d7c0dc603521ec6a076060527fbcbe14af3e150e96451f8ac7fd46dd5e25e2d6e8877e557d47fd886d930eef996080526020600060a06000610100611900fa605055600051605155600060005260006020526000604052600060605260006080526020600060a06000610100611c38f46052556000516053557f0f0ea7c172f5a60807b88890ceef3613666c7bc8b46ab8c6ba7f9d44c7c8d9c56000527fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325506020527fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325506040527f50adc68d1ed4bc57595c7d24187a1ce9cb7af2a28fcaa41abcc98a4de3884ebc6060527fb88ec0b67329d7fd2dd4689999ff22382c9acf7c067992ba3760f30aeacc60af6080526020600060a06000610100611b3cfa6054556000516055557feff60afe0f78740345253b3cbb65e6dbe63a68fed452790bcbc9c55bc18a70566000527fb9818c88fa8b83ed5a07f59a313424cefca5fdc64dfb8ae2ea83f7d297033c586020527fb5497fdaee7d666f38c78cdefc0050ea7cbe3b27d366332216fc2194c3e6deb36040527f6f9356e40c32cf53e6fe489c0732ab8a6efd0a5ee50c801851cdc2b292f82c006060527fd981ea59cded394ac871b2d0932db19b36121cfaa9827ab6044622b62d5ad6dd6080526020600060a060006000610100611c6ff26056556000516057557fe8a6997bc3ef18a0bfd1f976c6b3a8bbacc623adec46faa8d943dca231d7574a6000527f80795269cfdd07798be6857e606cc0accaeeffe856e6b15f9071cff36579364f6020527f9111e1ee6e26e672d97219d759b5f01d8a511065921ffd3ddadbb52b79552ead6040527f8a4ecb4101550650bfcd765d7131923ae8e507f9bf6aa4fc066f5f793ed9c4b86060527f0e0d94805b96e84096463dc843cdd27b35a31f921115128fbfb97bef4fad13836080526020600060a06000610100611c90f4605855600051605955\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xAff0d1Fad46ff203C5b9FF00F10FE1134862571D\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0xb20e2e99f2b7b64c0028bfaff9bdbc56f583bc930a85b190582c9f0d4033ede4\",\n      \"storage\": {}\n    },\n    \"0xB6754926EBc05d33a936ffdE524617F45429CCFC\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x9effa2a88d9a8cccb99a856d5e63c52601b8b08c69d7acd0ee942483a4b89370\",\n      \"storage\": {}\n    },\n    \"0xBa0E31A0E75AC9a4cac4c57d6c7EF2a10e87D4e6\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7f02c2c265e04023dcffe20e4ccec637696d77c6e6fc4e369317999de4e2f22f056000527f23ce7327362b8cb7aa786d6b1df1634b880c790b63e59815801d6b8e2740ff8d6020527f0fc77f348be20708ea60d3b94d9817a096cdc59fb0cc5af2e58566764b522dd26040527f085883a36120154e32ad2690541ef9e1efb62f786b14483153b4972e5974ca216060526040600060806000606960067ffdb4e6ce5813b605ee9a363e27821972b4f64a511b4f4a1c6180eaa3f349e122f2600055600051600155602051600255\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xBbD9aa098bAF9E636FfDb6f530804Fdf44b55e47\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x80ee8021793940859903f6f4b4b5f8e54cd8d71e8343a4ff0be43248585a7ff7\",\n      \"storage\": {}\n    },\n    \"0xD74CFe323387aE2fd070CD046173026716D8D649\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7f0169f1039479a1cb9e010b1fb7af9e0040fc25c7c635eb7e0c226cbb0ce6bfbd6000527f21ccad796c904514ddd7eed89662d0c10d19c93f8f3bfd9c6654a21e6ff957806020527f5bc83896961a345b57d239af35bc308ac25f6da92e25e50b1463bc186b2346556040527fad5f2939a5f241fa3075babc85771cf9ac6e3106badf3c4531a4ed255601e8e06060527f6d2e313e0bcde117a25041cf347fd8eea303142178574eb114d747bb6e878fe26080527f9db97a5ba9d948ff02d8eabb1cea46d2c924386521f3a546124bdab654f2e36260a0526040600060c06000600a7f85e2bed24cca9c9205c7e917491240569e0469906022d7487d17577195938020fa600055600051600155602051600255\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xDa78807c1C4567c23EB713E9fbB3b1508C1284ce\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x6000600052600060205260006040526000606052602060006080600060016117d0f46000556000516001557f296f78b9a90bdd931ccfbe330ac522c4bc3674011373a5c6e2a07dced217e9786000527fc9ad117b3f4d2d304b12779a3c5c7378fee4cbb1ecc43547ea778aa62c67b21d6020527ffff0880374cd8b7b114142bcd47efcfceb46ea1c8b93de691208f6310ef4ab936040527f69d62d9240644396f4d1b2714cda0f47f619aa2c009ff577308390dbe7eef4926060526020600060806000600060016201846bf16002556000516003557f9495b0aedddd62eee6febe6e895d905ef8362d3664e5be36d7a12382a42865216000527f462a3f411ac3c1e25b397435a686a08c5a8c9b4c12daf4c076ec745105b35b1b60205260006040527fbbe793cd818974373af7368a4216889be43f792fee2525b13d65bcc11fb266eb60605260206000608060006001617c77fa6004556000516005557fcd46aad27501fd036bd5103506652b0b8971130ef7fb3ad11c627ff7c48e24ee6000527f34107e6abd2d2894bd30f1dcb5261dbba40132e4ac5adadf633a11970a79131c6020527f317ef659ee0a8e855ba05d47b4ec0dbcc59d155e6763c7f8dc77735787c608a16040527fffffeb1e76363ef29bac4bc4c703ca193c1df892e5322cbbe3e9206f286c8b7b606052602060006080600060006001620146e1f26006556000516007557f7a140174c51cf25c703fee4273fcafa7ac7a2fc87b78e7eb531cedace92187f56000527f60e22f951c13b1025f4eeeac8ec7abf355c91b116b34003e0f1a7de1908cfecb6020527f377bcdf2776552334cf3407b7e20ff850eb2b5e41c6c29a8b0ec7501af4021136040527f7c1301d938bd805aa46a5d4f618e8e6d4748c20f45eb2eb9b9bbfd86b04b0879606052602060006080600060016001611471f16008556000516009557fbdb142cb033f938315b0997d0fedba0f94678ad5ba6157b65d3fbe10fc2a6dbc6000527f66e2364050b7bb9ed95fb653732ce385d4ba8c46432378b1e177a25e5e31b21b6020527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040527fd1d3f61e7328a38915ae5d4fe64d90cae583c13e412367e083eeefb6241d3d8a6060526020600060806000600162013de4fa600a55600051600b556000600052601b602052600160405260016060526020600060806000600161c914f4600c55600051600d5560006000526000602052600060405260006060526020600060806000600162016e1bfa600e55600051600f557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601c6020527fe90dc134b5745cdf092acec96cea2bf73c870375726f8366c1fa92c9bb9ced266040527f370c68cbf48ab4a9cf9c40b8b97805bc574ef0e0dbac5171e326f8566d290d4e60605260206000608060006000600161d2d8f26010556000516011557ff264b4e7da06c72fb575c7f0a3b9c31986ba5545fa6c68eda775a4d040e264cf6000527f7fd8d2ced0fccd11e450792c18aa5502ec6e59926df193163641376539f4301b60205260006040527f6eea0915c614760dffb89669fd77b21a3c54fbec96445e381999801282c7fe6660605260206000608060006000600161980ff26012556000516013557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601b6020527f1d889ad783fb93cd8b1a00fafed86ceffb9372869b387e65d0cf149c98f983a06040527f2dee9d460d8207475a3461371307d5a1c982e9e9848afb97b518a4ed17c9fcf4606052602060006080600060006001620178c4f16014556000516015557fb9fd2a1e809c3b7e7d8dfe206432a81de90fa922f4bb7f3adc6a3716abffd3806000527fc6e489e4f2d91554e568b4f959d1f390465e5b1bd23c423774d2dc84c1a9dfb76020527fc8937b5ad7058e304a4e44bbe31cc4efce5ca2dc4500f7b9c697033031f61e6f6040527fc598b13938344c0d6d244599075bd4a602ff4057b041ac5a6b56193d7973861b606052602060006080600060006001612deaf26016556000516017557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601c6020527f90c2b4aafe3f6f4d25e37e5ebead359fa69060901a6938be171df655cbfe64af6040527f71f2654408880b6690fe5087cd3c7ca3c5d10131c79b7a5b1e652225060f8a806060526020600060806000600162010ac5fa6018556000516019557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601c6020527f40bbb8d71baab2003b987bc5f7ccb66df8b04a5201bc89e2f23bcdb144b810506040527f4f11207e7d336d7075a95f57b4a1b5caa5cb4accc50f9de98df1c555ae05934a6060526020600060806000600161ebebfa601a55600051601b556000600052600060205260006040526000606052602060006080600060006001620170aef1601c55600051601d557f70eb8cc6aa62dee5a1e13e0267b43694aed5d5b09835791a1523c9c11634e33a6000527f52b8ce8f1dbd041192fe3c06f7d0904bd1bbe1f15f2e0d78edd625ca9dd9291d6020527f3a4060d4b707437df0d0f1dca6b6290c0fdb1c79b0846e6b8d595be2ae27d9116040527fb919a3300bcd1dcfbbf72efa726ad1313219f0883bd443411a7ccaa10447eb1c60605260206000608060006000600162017822f1601e55600051601f557f5ced1050fb51c2a94cf987d493b396d4fa3a53e46beea80831a5d7e3d6bb86106000527ffa87751775d77462b6b34be506beb70ab28352c7f8e5e39175f728181074361b60205260006040527fe1d256c5100bcad5d9bbcae86dc22ea1b3e19647919f3effbfbce66d37418ed0606052602060006080600060016001618ccaf16020556000516021557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601b6020527f170d4909ec18966d3e28b7ea77e7823b32c23375110257748b80bc9e7a36dc466040527f40c2a1c302838d759b9a86ecdec3807c17f848e30adc4ad730cbf681cb2cde1860605260206000608060006001611e31fa6022556000516023557f2ba1713bcf21b729b7b5bd648fb582a944fa5c55dfeb08b91e8862e360f312ce6000527fc7a148d54f25335eb6da75e95d1604ca4dffcba41fcaeb4e8eb24681443049b36020527f02a55f450ee865c0caf6ddab1690853be92d0316977bc02de3f5dd17b18c2d136040527f25c2390881011d3dfa6c2dc5adf1e375862220f32e3b35766024ff4090122a146060526020600060806000600161904af46024556000516025557f0fb8ca4f71925cd08c671793082e4accd3050f3128ad1e9b4ab1c6d20fc4f0a76000527f1163c9bb92b221466021d2776b0b7613d47a77d9312db4e5e942930ec1ded31b6020527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040527fa61767fb6b9f736b4962affdfc29347b0730878f841a7c7f78a9b70245bbc7216060526020600060806000600161f490fa6026556000516027556000600052601b602052600160405260016060526020600060806000600161ef81f46028556000516029557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601b6020527fc8e6348e2c71786d2ccd1c7c967f420855cc839dc19c80f1b578b6d1c322f9096040527f3f5a8673444c55112df70fdfc64dbb5d07da30535a32c60a4d20055155cd1da76060526020600060806000600162018339f4602a55600051602b557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601c6020527f8abe932511c6b22f6b28bab5650dc28d63f1981103d26534e1956c84c332fc636040527f133e7abea04d45a26b9300224c462c7705feb578e48cea8b5b40c13006be7460606052602060006080600060006001620163bef2602c55600051602d557f16e1c685844a7fa1b621ef440822eb44512fc2b8bee61e62a5874f912e307e5b6000527f9e4d6d753bcb998f92c39ea58808b75ea82bb0e9089f4cfd95afb7e26087431b60205260006040527fb1ec0f8d39f445a49efab6cf246abc10d7d5477361727498d30f555c2ccc94ad60605260206000608060006001620131d5f4602e55600051602f557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601c6020527f7f8c30c8d71ec097a66757459c78919acca9839d99b4cdc3bb9168f5930ec3f66040527f1d33b7ca4b1d6d2f44c2b98eff781b1f0bee479bada720563ec351345feb046c6060526020600060806000600162013984f4603055600051603155\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xE2f4CF89C9B94178B5725B8b1fd9a7F40c4a674C\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x7f40000000fd000000db0000000000000000000000000000000000000000000001671fffffffffffffff901c7d7676767676760000000000760000000000000056000000000000000000007f82000000000000000000000000000000000000000000000000000000000000007cc9700000000000000000023f00c00014ff00000000000000002230080509604f557e40000000fd000000db0000000000000000000040000000fd000000db0000017d76767676767600000000007600000000000000560000000000000000000090116050556005712000110000000d0a300e750a000000090a0a901a126fdac7fff9ffd9e13226262626262626006d0100000000000000000000000000900360515569100000000000000000006f121212121212121212121212121212121d90047ee8e8e8e2000100000009ea02000000000000ff3ffffff80000001000220000600590057e050beb1c60141a0000dc2b0b0b0b0b0b410a0a0df4f40b090b2b0bc60a0a006101117f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0960525515901517671fffffffffffffff7a010900000000000000000000000000000000000000000000000000901d1860077fffffffffffffffff7effffff800000007effffff800000008000ff00000100001c1a7ffffff716b61616160b0b0b2b0b0b0becf4bef50a0df4f48b090b2b0bc60a0a006f800000000000000100000000000000009016176780000000000000016f80000000000000010000000000000000100b7f82000000000000000000000000000000000000000000000000000000000000006f12121212121212121212121212121212610111900990077f7effffff8000000000000000000000000000000000000000d900000000000001677fffffffffffffff901d901b7ee8e8e8e2000100000009ea02000000000000ff3ffffff800000010002280ff7702ffffffffffffffffffffffffffffffffff2000000000000217760100000000ffffffffffffffff0000000000002e000000600790057f77676767676760000000000000001002e000000000000040000000e0000000007ff6376770abd3a36b20394c5664afef1194c801c3f05e42566f085ed24d002bb0680100000000000000009008901490187a0109000000000000000000000000000000000000000000000000007f40000000fd000000db000000000000000000000000000000000000000000000167ffffffffffffffff90089001778200000000000000fe000004000000ffff000000fffff7007e4b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b090b2b0bc60a0a1000901d90057ff6376770abd3a36b20394c5664afef1194c801c3f05e42566f085ed24d002bb07f800000000000000000000000000000000000000000000000000000000000000017900b7d767676767676000000000076000000000000005600000000000000000000682323232323232323231c1015197a0109000000000000000000000000000000000000000000000000007702ffffffffffffffffffffffffffffffffff000000030000900b60535569100000000000000000007ee8e8e8e2000100000009ea02000000000000ff3ffffff800000010002280ff061c7f7effffff8000000000000000000000000000000000000000d9000000000000017176767676767676767600000076767676767611027f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe778200000000000000fe000004000000ffff000000fffff700777effffff8000000000000000000000000000000000008001099019901b60006000f3\",\n      \"nonce\": \"0x0\",\n      \"storage\": {\n        \"0x0000000000000000000000000000000000000000000000000000000000000054\": \"0x000000000000000000000000000000000000000000000000000000000000000c\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000055\": \"0x000000000000000000000000000000000000000000000000000000000000000f\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000056\": \"0x0000000000000000000000000000000000000000000000000000000000000011\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000057\": \"0x000000000000000000000000000000000000000000000000000000000000000a\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000058\": \"0x0000000000000000000000000000000000000000000000000000000000000003\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000059\": \"0x0000000000000000000000000000000000000000000000000000000000000004\"\n      }\n    },\n    \"0xa94f5374Fce5edBC8E2a8697C15331677e6EbF0B\": {\n      \"balance\": \"0xffffffffff\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n      \"storage\": {}\n    },\n    \"0xae7D4902083D51fB69147F97f93522A6ACde32e3\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x095113ac45e3fc3d29c686504b49b5bfa2bbb26afa0ff1b5a6e78199e3aef49a\",\n      \"storage\": {}\n    },\n    \"0xf3eAc1d1B1EC8cA737bD148b1E96168024fB3F89\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x6000496000556002496001554a6002556001600355\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xfD6241df8Ce82b2Fb4126dD0e9FA931806Fa573c\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x606d6000526078602052606d6040527f06969cd3d17047a3c033d477a356eb6ebd02814ae1f49088a1a242623dbf28e66060527fa676380fb7aafe0fa248866ce2f4791be20e44bc99d3f2b8e7187fd2e7b99b196080527f7151476f0af990c48816173b5d9051376c9a7f1047d8ba71e7e79d4a704cdacc60a0527f68c95ec18334d106b3d49cb6120000000000000000000020000000000000000060c052600060e0526000610100526000610120527abc6d485cd9b7850ba153b2251675cb64a9f6a9d2a16d1749eeec42610140527f69786eef9e41fc0119f402f45634776e67372649b652bb6d55163dd4a3d2d775610160527f2558f4470a237c93666a43a4090aabd3dbcc17a8871358e6b78de5d7557491936101805260ac6101a053600a6101a15360506101a253605f6101a35360576101a453609e6101a55360a06101a65360c16101a75360296101a85360ff6101a95360616101aa53601d6101ab53606c6101ac5360146101ad53605d6101ae5360126101af5360b06101b05360ad6101b153606d60006101b260006005620b40e0f45a01600055600051600155602051600255604051600355606051600455601060005261036960205260106040527f3bff515c72d1e83825f674d33c3be5a0c3c1b25b39f7fb3760251512fcac16866060527f892e53cad071d7af40e641c2fe62a738cbc10f710f8618b294ddbc910ec2d3ad6080527faef07d5365cf2749714704088599058eaa79452af493312077db847b9dcfdce160a0527fd1d20d50f580d96730f7ed7c22946530e4ce6ca8915d8186fb9dfa5642c916c160c0527f2a95a3141956373fb3ac67da6b0db573908e66113d2ebaebf5ec12f671b7991460e0527f120b1aa07aa1b8f7b8b3c4f486e9af80aadc99d6ae43e9838f280477db763ea0610100527f70d81ce84a0260bb8ffe0d9a61f086ef701c6a74640ca583270c6592c840983a610120527fc654061c1b0f2db6f1c098f605a7f027036200ad189af26ebd01b953ac70ee76610140527f5469ce22aa99d7595f9b76007d57a086fdb3d605e3c9489d26b3b5ee56133d80610160527f809f2cb0cd4f3a325bae5509fa63f6e6f1f7f95195508f341433016f0adf1471610180527f5a7691337c0f92863f4d8629ac6b072979ad8f94606e6b836360755b98852bf96101a0527f0b3334aed8257dc6287043f97db0786cf3aa5a3ba1790bdd8d7a5c46e2a0641c6101c0527fd06e211746f8d26e83202f1b08c0b47cfc354d30e27d47437f5e5fa33eba160e6101e0527f1b33cd83dc4e3f3d25742bce25c6039dccb1f8fd75c37f12bbec7130f668f36d610200527f7627ebcea7518334fd633674da463f583484712a8b08871ad915b3fc5e844229610220527f25efb7329b1117639f9d71a6b1861b406f4818bb8a60ffa98b68c23815ad9946610240527fc6049241e09a0b4c0fc8f6fd23b145ab1f4b2e865c481d2a29897737552fcc9a610260527f6dacd1f325fd6882cecc9f9eff330bd72b1796bf36be740166dc15c20109d157610280527f3b950f339162d4a9b43f4b152ce6118b5e8d3604655a77df348ed2a59a2ad5bd6102a0527f90029bfc8992471aa9c3210ebfc84122bbea32441303367b82a46d5dc871682a6102c0527f330e3d2feaf6388e1036175258eb6a776a76c02ddffa503058abc7c8cbd93f026102e0527f8917b602885d931ebe52636c9d9372b2a11c1933efa77bb538002d9c6082439e610300527f07d1ffcdf19617d783507043df209734d791fee5715dbcfa84cf9fb516be801f610320527f25edb69cf491500089a08307910e7dffc9fbfd9c4c054220235305b6196d6f73610340527fb8a4296a8f918535cc1266917de9d04e44c874b216f981ddefb18f76ca3557d7610360527f5bf7394e83d4ab174b51e4494779e927bb2cec1158c492cf2703d8d439363081610380527f8bb776cf19fab4db9da420097ae0c01c5877361e90c514ab5ad4ec4269d838b56103a0527fd2718ca190840807337574ca501af530e322da9dbc55f02a0296675d8cadee3a6103c052609d6103e05360836103e153603c6103e25360b56103e35360396103e45360ab6103e553605c6103e65360966103e75360e46103e853601060006103e9600060056204afb6f45a016005556000516006556055600052600260205260686040527fb4033714df43444fae7e7442a9bf1e21b29fe93c31eece3ebc21e3c8096a9efe6060527ff1002242cb3925eac55c4b2206a0fe6f232074d14c559a20515d5d963049936a6080527f4540cb4fbca19aeec551174d86f8ef243035d4c11c1c0ed39c4a14bf7254ece560a0527fe2d28870c3c3c4a0de8479bc9e58460ddeed4f85f6320d356c668d5a4395a64960c0527fbce240b2454432a5860fa357e305c52b6e806d84b43a837142187b38389c21a360e05260ca6101005360e161010153603561010253604061010353604f6101045360a361010553607c61010653600e61010753607061010853601061010953608061010a53601e61010b5360dc61010c5360b461010d53605e61010e53607f61010f53603c61011053609a61011153607161011253601b61011353601c6101145360e561011553609e6101165360d96101175360496101185360a66101195360cc61011a53602361011b53605461011c5360ba61011d5360d461011e536068600061011f60006005611196f45a01600755600051600855602051600955604051600a55606051600b55\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    }\n  },\n  \"chainId\": 1,\n  \"env\": {\n    \"currentBaseFee\": \"0xa\",\n    \"currentBlobGasUsed\": \"0x20000\",\n    \"currentCoinbase\": \"0xc014Ba5e00000000000000000000000000000000\",\n    \"currentDifficulty\": \"0x20000\",\n    \"currentExcessBlobGas\": \"0x60000\",\n    \"currentGasLimit\": \"0x11e1a300\",\n    \"currentNumber\": \"0x1\",\n    \"currentTimestamp\": \"0x3e8\"\n  },\n  \"fork\": \"Osaka\",\n  \"parentBeaconBlockRoot\": \"0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f\",\n  \"transactions\": [\n    {\n      \"data\": \"0x\",\n      \"from\": \"0xae7D4902083D51fB69147F97f93522A6ACde32e3\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0xBa0E31A0E75AC9a4cac4c57d6c7EF2a10e87D4e6\",\n      \"value\": \"0x0\"\n    },\n    {\n      \"data\": \"0x\",\n      \"from\": \"0x79caC06f747229e9F79FA47049fb37884ec384b1\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x20\",\n      \"nonce\": 0,\n      \"to\": \"0x538A8474EeaB43d5a960164c554A20400151D479\",\n      \"value\": \"0x96\"\n    },\n    {\n      \"data\": \"0x8a31d9bb704c555c24f732c6883998e445e86b09be29a2310d87a2a29c1998c1ee667cf95f5686cb613523a0b4fc4025782106b0e8fc299a6054fccb89416257\",\n      \"from\": \"0xBbD9aa098bAF9E636FfDb6f530804Fdf44b55e47\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0x3Bd84e661C47a73eEe4137D185E4c31c194C343f\",\n      \"value\": \"0x62\"\n    },\n    {\n      \"data\": \"0x496cc712e00f0f40037adc0b96bea9eadbb3582c856ef10b3211f59e881ef0b332e341b56fac149a8352a5cfd046d4023d4365176ca9d660ae95b5ecefe6e598d4308bc57ee84becc2e6cabf95753a3ce3d7137111f1e265c40a83282f\",\n      \"from\": \"0x7982c0B61a97cBCf7fF7b3736023b23D159873f4\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0x9E607bB0Bae19b8bC75638fd1aB98594b36ba46d\",\n      \"value\": \"0x0\"\n    },\n    {\n      \"data\": \"0x120b3eecdb80166a105dcc8c8ad8afbccf7e6397d125c0e6e9879f2a9edb9f85f646562555777c411d6002282a46f47f3edac617\",\n      \"from\": \"0x0b530C4203F212318CE214ae2F1089d2478cb56c\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0x22986B2F9A2f5E7119F940898c35e7128A4Ce7E3\",\n      \"value\": \"0xcc7947\"\n    },\n    {\n      \"data\": \"0x71268733c98129c80286704a3cae048b4844232d79acac54\",\n      \"from\": \"0xae7D4902083D51fB69147F97f93522A6ACde32e3\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 1,\n      \"to\": \"0x9529cc6891Fbd5aBFABE0AE6c79D30F0CCAe848F\",\n      \"value\": \"0xfc1838\"\n    },\n    {\n      \"data\": \"0x2ef88d3dc71b45691876a113f3b1c2faf56158ee3b9d7ea8d047d6a516\",\n      \"from\": \"0x79caC06f747229e9F79FA47049fb37884ec384b1\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 1,\n      \"to\": \"0xfD6241df8Ce82b2Fb4126dD0e9FA931806Fa573c\",\n      \"value\": \"0x8a7e\"\n    },\n    {\n      \"blobVersionedHashes\": [\n        \"0x015f55eac6e598ff65cc16149757ffff9074b952549cb8c2dc96901c0f8ff5fe\",\n        \"0x01ef0c49e7504ae667b0eea1985b80598d05917f150f1f01389e77ed1465287a\",\n        \"0x01fcaae78c0438d7fb1adda2dc67c3dfd5f6432c5815abeb1a44794182b0b5ef\",\n        \"0x01670282b0ac787d53c024019bcbefd4765d1477d8136d19f89d3e57ace37d8b\",\n        \"0x0168f561e7975219eeaab25239746c7763d4664556e226ec728f71d0ca835e5b\",\n        \"0x0112cfe4c7af4e1114aab612902e7618ce92d004012b326e08e71f430eb80e95\"\n      ],\n      \"data\": \"0xa38f\",\n      \"from\": \"0xBbD9aa098bAF9E636FfDb6f530804Fdf44b55e47\",\n      \"gas\": \"0xf42400\",\n      \"maxFeePerBlobGas\": \"0x100\",\n      \"maxFeePerGas\": \"0x20\",\n      \"maxPriorityFeePerGas\": \"0x1\",\n      \"nonce\": 1,\n      \"sidecar\": {\n        \"blobs\": 6,\n        \"commitments\": 6,\n        \"proofs\": 6\n      },\n      \"to\": \"0xf3eAc1d1B1EC8cA737bD148b1E96168024fB3F89\",\n      \"type\": \"0x3\",\n      \"value\": \"0x0\"\n    },\n    {\n      \"data\": \"0x82c54de5780525f1a6604ee6fb757ef6985d536827009ade100818174b0214906875c07778068d38f75d1aa9f2c4406228317465137727de5471a1c19cf0d028b76c3b32319f8c80afbce3ffd3\",\n      \"from\": \"0x7982c0B61a97cBCf7fF7b3736023b23D159873f4\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 1,\n      \"to\": \"0x641602bAD4A323C49629d45338d79A2bb984A3fb\",\n      \"value\": \"0xba88\"\n    },\n    {\n      \"data\": \"0x\",\n      \"from\": \"0x0b530C4203F212318CE214ae2F1089d2478cb56c\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 1,\n      \"to\": \"0xD74CFe323387aE2fd070CD046173026716D8D649\",\n      \"value\": \"0x0\"\n    },\n    {\n      \"data\": \"0x2e228bdfae2d5514c42bb144b04f34377ce64d701d349cafb636c2f73698c171e11d318e37c74c95ed9ba1ec8d327e2ace9b1c4ee285f95edea4cbff6b08ce7d88db009b731577f4da3eb9440315739ab72a77d9\",\n      \"from\": \"0xae7D4902083D51fB69147F97f93522A6ACde32e3\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 2,\n      \"to\": \"0x766C0844EBC3c4ef4ddb86260a4D3516cCa03A10\",\n      \"value\": \"0x663\"\n    },\n    {\n      \"data\": \"0xcb2b6ab7acaa2f0a6f60f06d4e445833b05fad7d4510a06afb5cd57d598df72d5107677f0cc8e3dde712123e6b3a558beb515edc22552315d2eaf7e0c6ad524ba23776fb1bc0c29206702b3b389f2c\",\n      \"from\": \"0x79caC06f747229e9F79FA47049fb37884ec384b1\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 2,\n      \"to\": \"0x1d891f21BB2a55cD9EC7a32478f7c74d757c4876\",\n      \"value\": \"0xb712a7\"\n    },\n    {\n      \"data\": \"0x536553f53b491d18ad280730198d44810c496e91e020daf71f0fc49f3d415244000b5af69206dd69db5edfb6602c20f4c75b644f16e50954833808c0f82665ded9a0df95509974b0ea4799cede017b0aca24eec4ac\",\n      \"from\": \"0xBbD9aa098bAF9E636FfDb6f530804Fdf44b55e47\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 2,\n      \"to\": \"0x7458F9b8B5ee360A32b0b0Fe648C996C68AE8190\",\n      \"value\": \"0x30\"\n    },\n    {\n      \"data\": \"0xae5c17fd105f53464bfbad2b3c8c44f988bbc93ab17bf1a48a4320f8eb71ac1cf570fb8fb611afbb6481a1399bc8258b7d0215301229a95f2ec440200581491d48e624a2\",\n      \"from\": \"0x7982c0B61a97cBCf7fF7b3736023b23D159873f4\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 2,\n      \"to\": \"0xDa78807c1C4567c23EB713E9fbB3b1508C1284ce\",\n      \"value\": \"0x0\"\n    },\n    {\n      \"authorizationList\": [\n        {\n          \"address\": \"0x00000000000000000000000000000000000000f7\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x0\",\n          \"r\": \"0x3b9d5e9a36279ed2c81761a8ed35c785cfabca68fe029b9e0462e973c352e857\",\n          \"s\": \"0x60dc03ea63ff6c10dd5cafb63cc2e4e531f4642e7f53a805acc94d8f4e952ca9\",\n          \"v\": \"0x1\"\n        },\n        {\n          \"address\": \"0x00000000000000000000000000000000000000f4\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x0\",\n          \"r\": \"0x87e3b063ecfe90dad2ba6331723b4772dd08a79e918d494633ff5e332ef3e055\",\n          \"s\": \"0x4954a1da6fc047e8ff073b4b1cd5864752a1a00745437319ab7cb91114ab9424\",\n          \"v\": \"0x1\"\n        },\n        {\n          \"address\": \"0x00000000000000000000000000000000000000f2\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x0\",\n          \"r\": \"0xeaaaafc5c341208dc8fa74dd76c680d4e70ff4470b5c7be410a95d4eb9063628\",\n          \"s\": \"0x682254770ea41bc56cff1d5b47f64ceede0da45e5233ebdc9c60d5c10c7a3e15\",\n          \"v\": \"0x0\"\n        },\n        {\n          \"address\": \"0x88f9b82462f6c4bf4a0fb15e5c3971559a316e7f\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x0\",\n          \"r\": \"0xbcad8bdc514baf5efab74757cec1366ad303cb086e4fc286650a499aa2c51979\",\n          \"s\": \"0x291e47131cefbca9f42434f163e1be4d6fec29160ce5f1ed716b3735e5b01e7f\",\n          \"v\": \"0x0\"\n        },\n        {\n          \"address\": \"0x0000000000000000000000000000000000000002\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x0\",\n          \"r\": \"0xf005537a1e36922e7a12f79716b304b6eea3c89fd0ccf0f1cb8584cfa67cfbc0\",\n          \"s\": \"0x2d5fdfe68d1e9c26f36cf82a0b2f24402991987f75946b99ebcfe13194cfb2f9\",\n          \"v\": \"0x1\"\n        },\n        {\n          \"address\": \"0x000000000000000000000000000000000000000a\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x1\",\n          \"r\": \"0xffc1c76933522ee09da5d32efb9514f2fb3fe070c8c9e76ca170222e08b327a\",\n          \"s\": \"0x817fd0bbedb965878d16800f47470195839125925937723193f530fed54f818\",\n          \"v\": \"0x1\"\n        },\n        {\n          \"address\": \"0x00000000000000000000000000000000000000f3\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x1\",\n          \"r\": \"0xf6995406f58d828d4dfc5930773f4ab58af7e00305a0753f61a9635684b16be0\",\n          \"s\": \"0x1a08f1d43abaeb2604e8d21b0509d4549f468ddb60d9dcf4d5020e7b05f1d718\",\n          \"v\": \"0x0\"\n        },\n        {\n          \"address\": \"0x00000000000000000000000000000000000000f2\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x1\",\n          \"r\": \"0xa444813984575f38fe02fb696aacae0fcd71866cb02676318f9ed9f0660d42f5\",\n          \"s\": \"0xe6b7da27d25b3e6e65c663dfbb9eecbef56a8abd03e8b0bdc1d7c691ced3d34\",\n          \"v\": \"0x1\"\n        },\n        {\n          \"address\": \"0x0000000000000000000000000000000000000010\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x1\",\n          \"r\": \"0x28acb6533b497b0c51e4f38162972c9ad4a60edc90e5ce448cf3f84fa070057f\",\n          \"s\": \"0x6bc95b9f8bfff6d47a61ec78d3cd9e5f60e6d588eb0016198aab9e09a3664f09\",\n          \"v\": \"0x0\"\n        },\n        {\n          \"address\": \"0x00000000000000000000000000000000000000f2\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x2\",\n          \"r\": \"0x75e27043bd9be44d39a3624a9eb427ef06f12fa9748e33cba70d6aeb7707e1d\",\n          \"s\": \"0x5c65fea04d26d8f90a00755fc2375f047922f7b5f2942d9ef13a32b360f7d2dc\",\n          \"v\": \"0x0\"\n        }\n      ],\n      \"data\": \"0x4b4ccbd62cf795a7b29973b786c3861c7ce8ea6d66b9c4031283c6c5ba16ef10a7e711aaed4d5ca5a531c786b2da665b687197288570ad7b\",\n      \"from\": \"0x7c2C923D79B9903f29A71bFAB11B24c30C9FF962\",\n      \"gas\": \"0xf42400\",\n      \"maxFeePerGas\": \"0x10\",\n      \"maxPriorityFeePerGas\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0x0000000000000000000000000000000000000010\",\n      \"type\": \"0x4\",\n      \"value\": \"0xee5bdb\"\n    },\n    {\n      \"data\": \"0x00\",\n      \"from\": \"0xAff0d1Fad46ff203C5b9FF00F10FE1134862571D\",\n      \"gas\": \"0x30d40\",\n      \"maxFeePerGas\": \"0x1e\",\n      \"maxPriorityFeePerGas\": \"0x1\",\n      \"nonce\": 0,\n      \"to\": \"0x00000000000000000000000000000000000000f7\",\n      \"type\": \"0x2\",\n      \"value\": \"0x3e8\"\n    },\n    {\n      \"authorizationList\": [\n        {\n          \"address\": \"0x0000000000000000000000000000000000000000\",\n          \"chainId\": \"0x1\",\n          \"nonce\": \"0x2\",\n          \"r\": \"0xf3ff30055a5994e37ff024d18062a0107b978e80c9bebdcb138a0bd916f3396b\",\n          \"s\": \"0x35caf50bdf31d7e5d7f1e1062ca6fe150e7c41dd3fea6bf8f8bc3b3e6b665eff\",\n          \"v\": \"0x1\"\n        }\n      ],\n      \"data\": \"0x4b4ccbd62cf795a7b29973b786c3861c7ce8ea6d66b9c4031283c6c5ba16ef10a7e711aaed4d5ca5a531c786b2da665b687197288570ad7b\",\n      \"from\": \"0xB6754926EBc05d33a936ffdE524617F45429CCFC\",\n      \"gas\": \"0xf42400\",\n      \"maxFeePerGas\": \"0x10\",\n      \"maxPriorityFeePerGas\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0x0000000000000000000000000000000000000010\",\n      \"type\": \"0x4\",\n      \"value\": \"0xee5bdb\"\n    }\n  ],\n  \"version\": \"2.0\"\n}"
  },
  {
    "path": "src/cli/tests/vectors/fuzzer_test_2.json",
    "content": "{\n  \"accounts\": {\n    \"0x000000000000000000000000000000000000000A\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x00000000000000000000000000000000000000F5\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x071b56102BcF6C36a20a3a16fE48781448B1C274\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x4957f6f5af2d9acc075b694de14765a3ee3ebadd720ffdb0c471fccdeb1999e0\",\n      \"storage\": {}\n    },\n    \"0x08d033C61e1E55bF868082cf788a3949f4ea949D\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x18c571b8d627c38e4cd2674ff9e1810ac122de605ad7e36051814279ada15f76\",\n      \"storage\": {}\n    },\n    \"0x0b90ABAC5C8F6ce035a107913ea5D7C6eA24f9f2\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0xaa7060c894d60af0152633bd7fb04eec13d565d152895681af06b5aa973faebb\",\n      \"storage\": {}\n    },\n    \"0x1d891f21BB2a55cD9EC7a32478f7c74d757c4876\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x6f13354ab4e7cc72ca20ffac17e9c1b49e6000527fa774be197d572deb808140f315c100d2d5b447c60b80a1b74547997ab198d16f6020526f176dfa0b1b23c9b0aa1559abc0e6b3ac6040527fd5fd9911c96b4c2fb77a3083e58ca209789f9dd34748f8cc98b91778eb66d6466060526f04dec2525331e3a900d26f9872d420af6080527ff94c487bc34b1d01d00cbda233627a06fccf69c89b049796cc085f168248341f60a0526f086324d465d550c6ee843b64c6e7759060c0527f8e48c1fa02fda324d5d1cb956e0aab45de89c5276b228c54d1cb2647317614e260e052608060006101006000600b7f4f98dd185cc2f36c1bd041dd1cc98b487ef9602b0578858b7284310edc62d5d6f46000556000516001556020516002556040516003556060516004556f1a702a96876d961f14157b5ef86e16e86000527fc6a1f44881f0ba5f2b765070a0156cf5c485bcb9786e041fbb5c335aeef73b436020526f04b318655f98855db2f8e004a2aa2e276040527fc4f6237e51f0ba883191ac4eee5bdf35d3dcf8bef33156eb619e577bbb38c8416060527fe3e2461badb2e11a04503bdf8c903cfe43cce07d322703d192c3aac1559f76cb6080526f023f3c470ae026e4b8e7d1c7e7c61a0c60a0527f5e1706597302e07b4e610fb7251c52b545642b421fece660fc17206d89144b6f60c0526f1532e6055e532a60024d0fb15ca6e47960e0527f74110b8a237d86f94cd0b459143c3e0c91ef78a41d05bd52c563b7d166cb7e21610100527fc1eec215a08bb347aeb9a1f5c07361975d64957f0673f20844e48a6a14a169c2610120526f1b4b2fd8fc7e8e13a2c559b2309c6dc3610140527f747996328ddd37eb4b6f36f5730b4503d399d4472b6ee2f6a28416f76b5398ad610160526f0859289d4cdb015254ed20cff2f133e8610180527f8e6cc4b53d2df6446c0ccfee4cd91dabc25bb7bbfa44ea0e39d3c592e30d19ce6101a0527f7376a76efdd3625a9f49bede1c096bcc48ea402836db68a38620c647db77c5b36101c052608060006101e060006040600c7f28825afba0dd595ba78aa61e8b06e00e2a57be0f466af3fb2f62468750701d7cf16005556000516006556020516007556040516008556060516009556f1502253d35ec4177f1766f3b652ce1b06000527fedae07c15f0dd155f2a52e7333f76db8295fea99e31c416139a6f42e594847f36020526f0c77dce05d8c9948df79b990832cb5b96040527f6407068a6d15d290574da434bbffdeeea6bf4492942381fb5880f3cb85262be56060526f10353e65e34115652cac77cf24cf6d7e6080527f883e49eed6eae00340d35609bc807b298675006a9b56d5db1bf6fbc0bdd5c38460a0526f07fdb9d1377264bc6977b8fbf21d3c4960c0527fa65fdc065246f3142a9548b8f44b1a8582a893c180aa0e00351c6669cae7d8a160e0526f024aa2b2f08f0a91260805272dc51051610100527fc6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb8610120526f13e02b6052719f607dacd3a088274f65610140527f596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e610160526f0ce5d527727d6e118cc9cdc6da2e351a610180527fadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b828016101a0526f0606c4a02ea734cc32acd2b02bc28b996101c0527fcb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be6101e052610100600061020060006000600d7f41b1dc95a91c0f63475dce8b84d6a2014ca4859b79b38361bc0180aeb9575b32f1600a55600051600b55602051600c55604051600d55606051600e55608051600f5560a05160105560c05160115560e0516012556f09591d15ccd26715c86df27189606a306000527f1074c0108948ec88e06a37ccc58d4a496b614be8a8c061e1889a53602256c3e76020526e729efe8920b0e6554e3fd8ef3ffdc26040527f6a55705d641bee07f894ff253fd3903b18d320640ef92caca5fe8faa5869a2406060526f0d0fa369916ba32740a28c7ffa522e6e6080527f8ba14f4cbcbf26d66863188eecd54b2acda7f1a5f86bf0fe51c6941342e1000f60a0526f054e66d6c3461adcfe918548ee5f024960c0527f0d4f8ca0cebcdc8a6440b8695ca853f216620435cbad0544528c422b517c6ce760e0527fdebe899263c418bd542bc0d0888519f4c8a933074dca8822676913b20becde7a610100526101006000610120600060b0600e7f16d3ec1f09882e6a724e1115fd966740bfc5a1f97b94514b23a68d1168fb25fff160135560005160145560205160155560405160165560605160175560805160185560a05160195560c051601a5560e051601b5560006000526000602052600060405260006060526f0eae09f2030077ef6fb53a86b29a6a836080527ff4a91e12d6b9c378fa5d1646b59b49e685ab915672a872f0ad3878a13e90a5e060a0526f0d202a25256ea37788ce16169dc7dcc660c0527fe043c34aa9fdd992b6fd112ad6c882081b547cb181bf21e63b3a2f9a5c1dacc960e0526e7f6de3ad9f0a3810f6c7b9f1f76709610100527f2a1d06f1ff4b8fee5863ff6b0d85866a6aa55c8c5c57d4c9bb6e7ee5f00bfdf1610120526f150e8e3062f97c80ca5c93876db9080e610140527f5e1985a7e619e2b11823018135870f57db88956447a0ef30ae4442abea98d0af6101605260006101805260006101a052688000000000000000006101c05260006101e0526f024aa2b2f08f0a91260805272dc51051610200527fc6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb8610220526f13e02b6052719f607dacd3a088274f65610240527f596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e610260526f0ce5d527327d6e118cc9cdc6da2e351a610280527fadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b828016102a0526f0606c4a02ea734cc32acd2b02bc28b996102c0527fcb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be6102e0526020600061030060006084600f7f4e7f3f831ac0330f4a7145646b2308154f13f0d8b4bd2f4bc1aae77fc58df06ff2601c55600051601d556f164a295a5f96a09041f69ff8b879aaef6000527f1fe370f8797936043fb243918b0bda2342fdc6f8909876cdf648ac35d085a171602052608060006040600060107f543872703925f6e15c6fbf2e92b7b23be4b78a893cb54ce637e9c72526019a8bf4601e55600051601f556020516020556040516021556060516022556f0129250bc1e499805c6dad0c4fb11f786000527f2f344cd82754b3b5a9f23d6d22ae7d8ca47d620ecc6f2cce2e4c5cb4de8441606020526f1385ee97b39f8fa20cfadf1a4ce4a4c86040527f98ef7fe9a5173caa1560c95365d28545e68b8989a184193ea29aaf7855138da460605261010060006080600060117f5c4a5e0205f85cf2e772f816575e415e19d7fc5a03e0772aa7e47f0a54fe8051fa60235560005160245560205160255560405160265560605160275560805160285560a05160295560c051602a5560e051602b55\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x22986B2F9A2f5E7119F940898c35e7128A4Ce7E3\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x603b6082603c608660b760a260fb1c1b50171b8a7a77a04378111b39537669943377621a046c4702433e163310157615680b7e9256347b650737367662391736f29b3a696f3c779a109910ff7a7a6605355c46599e0a78534a8375767776643e7a6e765c7f1446816797437b7e91541211505a5b96115491741243397a7011196d436e5e7b97166e026a85057445a1f032099f815b936b570359570905136d626f208c9f807477fd7ffe0201523f4a5f611c996e5a683e406978651e54747e571756937f027e3aa4757c705e705c5798534548807d92414953427c195d1477796f5042175d7c678c34a4606868750380440883416e6e596b786e7c016511056104068a3613351539900473f087f45c81463b3581417b3095939852634a3f36358d7a7f657f76024800133479446c6045844403ff60393c1110716604791b086963106ba362fd047286704a63460635648ca159316176040444536a3e0802931d4a306ea2393f50384118313e53407c3d541c67054949045155455c3ff456935f3b323c1733407469f16d7978203d1c707d865753483b056f445662623b801a35fe967c536b695749787e110833709f5719483a8c80013af4a4041c10525b1b6048531d9e66526c00193e4654093b63741d1d5545715d05181e13657a5860443c8b819313124784f4454338556b3b7f407659581d6d4250385c90441290771a58385736664595338175507d72747d505042f57017805630083a7f44455fa208949e5453579c953e4549659a07520a8836206c4a59115f40977c886815a2ff661817fd6695814342918d6c917670569f983e9e150a396b673c7c717a8b5c509c6e3d8b721c3e209f1e497d47739af233175e121a796f3e496f8f3f8f61195af55a803c3219a416a46af33e0b6f1637a234337ff197361d718e7ef1fd606e786982121b886c627a4917003163325d8c5d5e67a33e620a476c7531967f5e8b18ff4719118945577b485d54145e480b636330726b613e89427745811850464966663933fd44655f3798456d1e906079208780676686068d942015663941681087118d413da19e3a5274919e410a69778d5934a018889e058e054814427674f11d84753d9e5b7c30684577701001483c8e705770328247ff6c163556373984005043143f8a766e58313f8802419e4072193e189c727a123c1d6167757e524a3b9007556f5072578111a2006b3997a079738c783605718356363b5734423e737359190047434320990532483f1b31098a476801807b977e0232436f44956a053a5e207d601b08fe79a0665b077b69413e403d9d3a687173616b50995a7a14475a575e3a4976033c757d1b73109083647a7c96175582701b1d3a76381d981d52ff3f393f57004344613b3668a1374214123034715049474291040b8077539d025f064644\",\n      \"nonce\": \"0x0\",\n      \"storage\": {\n        \"0x0000000000000000000000000000000000000000000000000000000000000000\": \"0x000000000000000000000000000000000000000000000000000000000000000f\"\n      }\n    },\n    \"0x3Bd84e661C47a73eEe4137D185E4c31c194C343f\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x8d257f6000545060005450600054507f7fead49cfc66cdca062385ae79f051a4390c576000527fd0d9f7f94f1cc8d2fd223482c46000527f7b6000527f5f60d6e582f439f6716f6020527f60774d948fe1acdaceefe862a6e54c11916020527f58621fd1396020527fcca36040527f9191262e95001a15c1ac5065aad0fe33e29b8430636040527f9c0b8a9954d9176060527f3db16040527fdef46cde2c90ad6b23e39f070b2bc52f0998a86060527f833a636080527f75c9f692892ad391dbcf6060527f1d53b2784812f66e0e1531e8e1fc9660805260a0527f7f74c2597d5b8d9ba46d859159d12ad0e6d96080527f337fe7f3d3873486dcf460c0527f1560a0527f911710de8b38999cab6c3cfbd9b05044dc01de196d60a0527f082360e0527fc318899bbf60c0527febd2d6571e07174702ee55c0eebf40af20ce122b5b6a16610100527f1da060c0527fdf45d760e0527fd355a93d2c44e97ddcd60f845e1dcadc66d619610120527f59d8c48fff68ccba6cc660e052610100527f7f79cc531dd20f90521804c1993c610140527f9b331c646cbac8115fa7853cc99df36716c8610120527f656101005260406000610160527f610120600060007fce44c9eaccfe6bf206096f6aa158bb610140527f80e53ca3610180527fac327874562502b099b83df12efa6000556000516001556020516002610160526101a05260606101c05360556101c15360616101c25360016101c35360806101c45360536101c55360616101c65360016101c75360816101c85360606101c95360006101ca5360f36101cb537fc83d61127eefb10b62467c07424b431e4f8ffa2374b5b952590a757fee068d086101e0527f36c5a642e314a4206a0cce31007a78b3461a7631153367453e98bf676c2a3e83610200527f1c7678339b71b6afa89bf3853f130165a3310929c58f73c998cf12d16cf9cb4f610220527f0498e16f982b920f187b7075776fa525caaf69ba2d3b8539975374d24e95864c610240527f1bcd63bc8bc2529377f7892fd3a05a974d09b4763a0db31b795f05e1cd7873e8610260527fe924913b79c49c0f25233620ee249266b4dd373db8c7b3abd7a0af61352325c7610280527fea4f3b8eaaef65564a6f7eed3d44a3b2b8a1e1338a58ca32d0f1c37bafd788e46102a0527f19ad295516b5fda6e2b0525bb1792a8c3854f9ea8b005e02bc1d93c055decad86102c0527feccd32ce7ebb6ed22eb0d8aa38649067c4ba771b38416e9197ca1885a3a6bf906102e0527f1669bb286e4d3fd981a471ef98c077899365e07cb0ae637bf5a983bcbfaaf141610300527fcc64326653b1d5d095a16fea028ee0352ae85d218e177cdf19fbbfe99d12c4dd610320527f87a0bd590fe290637473b63898b5f26aae2d07420714e0eb7b6e0c4c561fe33d6103405260006101cc60006000f5604060006101806101e06000855af2600355600051600455602051600555600655\",\n      \"nonce\": \"0x0\",\n      \"storage\": {\n        \"0x0000000000000000000000000000000000000000000000000000000000000007\": \"0x0000000000000000000000000000000000000000000000000000000000000006\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000008\": \"0x000000000000000000000000000000000000000000000000000000000000000f\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000009\": \"0x000000000000000000000000000000000000000000000000000000000000000a\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000a\": \"0x000000000000000000000000000000000000000000000000000000000000000b\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000b\": \"0x000000000000000000000000000000000000000000000000000000000000000a\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000c\": \"0x000000000000000000000000000000000000000000000000000000000000000f\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000d\": \"0x0000000000000000000000000000000000000000000000000000000000000013\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000e\": \"0x0000000000000000000000000000000000000000000000000000000000000010\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000f\": \"0x0000000000000000000000000000000000000000000000000000000000000008\"\n      }\n    },\n    \"0x538A8474EeaB43d5a960164c554A20400151D479\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7f4b26560b2d940791740f8b3d018c1a3deaabe12c90b03eb180940437763140ed6000527f33b5de51493a0e79ac2eda2a932d7f6bbc34084b6634d25b81144e6980dd08e06020527f80cbaad461f9baa6cc07de7dec06dcbce0affccb02c772280fbab222907284fd6040527fea90ab16040b2db45d81d72fe566035ecdccb3746ba69b0fa0dded372834089f6060527ffbdb9232445406128d083228db41c0a5b67e230e9c014b30781ecb9de3cf5d646080527ff17aa266e879f8b4f50075f700c4b8ff08c0bea32f1c1905cb9a014b410efe4960a0527f8b86bf12b97a6ef8cd94a36eeec0f11605acc64103bc508300b3e50b042d6d1260c0527fa01cd36922eb2caecc22d580c276b849d7f72116e0d157d409d0d08735b60c9660e0527fb3ef17372c4cb5e0e2f4320df85b1423272cd53ddf0a5553cda29dd4e72712a8610100527fc674b6383e153fdb3c0cbc8458196402a7a077f550f21ae53fdbf2c1820a5f7c61012052608060006101406000600c7f48fcd75d2eb0a07a402d6f458c2dc521ec8a9d47ae55aae11ff8a2d5ba81b818fa600055600051600155602051600255604051600355606051600455\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x641602bAD4A323C49629d45338d79A2bb984A3fb\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x60d2610320fd\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x7458F9b8B5ee360A32b0b0Fe648C996C68AE8190\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x8b7f60ff6000536060600153600060025360546003536050600453606060055360f16000527f60065360ff60075360606008536001600953605c600a536050600b536060600c6020527f536008600d536060600e536000600f536055601053604e60115360606012536060405260206060536060606153601360625360536063536060606453606060655360606066536014606753605360685360606069536000606a536060606b536015606c536053606d536060606e5360fd606f53606060705360166071536053607253606060735360176074536060607553600060765360f36077537faf893e4163047c05289d407b9a702a25aa8e1fdbcbb6e6d94f2f9274e8c305886080527fe0b62d82842386d246eb69a810abdb2809726f7cbe2fa885968c3ce805a1bf0560a0527fc2d94f6ee30e0dfe8fcf22f0144f7bcb976c742351bbbeaf48e4b52bb3ed637f60c0527fd7544f4031d7cd44745ac4b19dd3227e94241ce359463d356f8fd78c9fcf47cf60e0527fbe8dd296d74032dbf63b373f0e10f29ce12bf743a77d052c335f51d21f82349c610100527fba69a74988c5676412c71650f0d069dd1122209f7ba2d0b857b925e14f237b44610120527f8a537da9e5559e3fd686eca7ffa7da09dda8d061e093b8bbd78aaab215a0bd17610140526000607860006000f56040600060e06080845af4600155600051600255602051600355600455\",\n      \"nonce\": \"0x0\",\n      \"storage\": {\n        \"0x0000000000000000000000000000000000000000000000000000000000000005\": \"0x000000000000000000000000000000000000000000000000000000000000000a\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000006\": \"0x000000000000000000000000000000000000000000000000000000000000000e\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000007\": \"0x0000000000000000000000000000000000000000000000000000000000000008\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000008\": \"0x0000000000000000000000000000000000000000000000000000000000000012\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000009\": \"0x0000000000000000000000000000000000000000000000000000000000000009\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000a\": \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000b\": \"0x000000000000000000000000000000000000000000000000000000000000000e\"\n      }\n    },\n    \"0x766C0844EBC3c4ef4ddb86260a4D3516cCa03A10\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7d03c760c325f8cdc4daaae014b8e32d6408fa8ee3ec3f283b6a30d7d42ba56000527f679d181529ad318d93556d9a0101109a11bbbf2d186cec7944fbaf2dbf14d8c96020527ff86ebbcca7ef069f796ba132dd561970ab8492cf0f43f8328d0c0aa98f9655116040527f676b7bb4ea0d4899b02941302abfa653b1f05e9c35e662d65f98c5bebab42c146060527f580da6c9840e9a73a9aba2cfc092f5c4851adb6961d0871abea94ea51c0c938a6080527f908136bad625f9d78e4a032b7f8b99b6a10021a1d0f79e78e176410c918191b960a052605e60c053608060c153605160c253605160c35360a660c453608c60c55360e160c65360d560c753604e60c853606960c953601960ca53601060cb5360cd60cc53607f60cd5360f360ce53604f60cf5360da60d05360f760d153608960d253604160d353600060d4536040600060d5600060f260097fcd3346af51c7b5bac45c869077565dea47dfc7724dcfc2de6f737ef73e779518f2600055600051600155602051600255\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x89408B1DeE3283a0AE426CeCf5C49cc3073Ed356\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0xd13202f0930bfa690a45b6c2831829395d15c95781714271a8054dfb2074dd1b\",\n      \"storage\": {}\n    },\n    \"0x9529cc6891Fbd5aBFABE0AE6c79D30F0CCAe848F\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7ee8e8e8e2000100000009ea02000000000000ff3ffffff8000000100022000067800000000000000190136000556fdac7fff9ffd9e13226262626262626007ee8e8e8e2000100000009ea02000000000000ff3ffffff800000010002280ff05600155637fffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff11677fffffffffffffff7ee8e8e8e2000100000009ea02000000000000ff3ffffff800000010002280ff7f820000000000000000000000000000000000000000000000000000000000000009901590127d0c76f4afb041407a8ea478d65024f5c3dfe1db1a1bb10c5ea8bec314ccf96f800000000000000100000000000000001d6c100000000000000000000000007f8200000000000000000000000000000000000000000000000000000000000000712000110000000d0a300e750a000000090a0a08901d90046002557ff6376770abd3a36b20394c5664afef1194c801c3f05e42566f085ed24d002bb019777effffff800000007effffff800000008000ff00000100007ff6376770abd3a36b20394c5664afef1194c801c3f05e42566f085ed24d002bb090071d6003557fffffffffffffffff7effffff800000007effffff800000008000ff00000100007ffffff716b61616160b0b0b2b0b0b0becf4bef50a0df4f48b090b2b0bc60a0a009016778200000000000000fe000004000000ffff000000fffff7007f40000000fd000000db00000000000000000000000000000000000000000000011d901a6005600704600455778200000000000000fe000004000000ffff000000fffff7007feeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee10777effffff80000000000000000000000000000000000080016910000000000000000000682100000000000000229009600555901c671fffffffffffffff7f800000000000000180000000000000008000000000000000800000000000000002107f12cbafcee8f60f9f3fa308c90fde8d298772ffea667aa6bc109d5c661e7929a56b10000000000000000000000090131676013590cab83b779e708b533b0eef3561483ddeefc841f56801fffffffffffffffe9010901660065563800000017cc9700000000000000000023f00c00014ff0000000000000000223008051b6007556b1000000000000000000000007f62d8fffffffffffffffffffffffffffffc18000000000000000000ca00000001901a6d01000000000000000000000000007176767676767676767600000076767676767690131990036008557f7effffff8000000000000000000000000002000044000000000000000000000168010000000000000000900b15717676767676767676760000007676767676766f800000000000000000000000000000011b1b19712000110000000d0a300e750a000000090a0a760fffc000000000000767676240000000000002b057604790131a762900760076761e0002007676000000007676767600000060059007901a6009557e40000000fd000000db0000000000000000000040000000fd000000db00000168066aa0a5319bcf5cb4678000000000000001087f8000000000000000000000000000000000000000000000000000000000000000762900760076761e000200767600000000767676760000000a901c63800000007e40000000fd000000db0000000000000000000040000000fd000000db000001901814712000110000000d0a300e750a000000090a0a7ff6376770abd3a36b20394c5664afef1194c801c3f05e42566f085ed24d002bb0901a901d600a556f80000000000000000000000000000000196c100000000000000000000000007ee8e8e8e2000100000009ea02000000000000ff3ffffff800000010002280ff1b651ce97e1ab91a7f7effffff800000000000000000000000000200004400000000000000000000017f62d8fffffffffffffffffffffffffffffc18000000000000000000ca000000010860006000f3\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x9E607bB0Bae19b8bC75638fd1aB98594b36ba46d\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7fdc7a6a7dbd8a42cf97100cbfb5343286879ea772d7f0e486bff85bac63a41cb56000527f55555555555555555555555555555555555555555555555555555555555555556020527f55555555555555555555555555555555555555555555555555555555555555556040527ff1f6f7815b1d9ab2d0116ea5cfd5513777f85a9e0ea98319ed1f93327545dd596060527fe993da5edb8e12b4b9ebbbcb94b5a7a01be8606d6e04a2d69fda74e39a6877da6080526020600060a060006001610100611b15f16000556000516001557fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6000527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6020527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6040527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6060527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6080526020600060a060006001610100611c5af26002556000516003557fe6a85b19d7a91a47c412085e4e7e26e410e36a13b93a9f901a4e60ba32ffbdae6000527fe8c2ec339609ac230d0366063a6ae492ac251168ba0396d62c885d068e80d3986020527f211f80b4b063ea7b9ccc5158fe4bdb99f4b7eeb5c02a953cea6bc82d1f72e4236040527f9ece146764964f6cc5179913a7ea94fc67941932299548b23330f407200a6fc96060527f4874f78b335ce37e6aaf920457ab92bec58d03030fe0dbb8e1c3dbe2fce49c376080526020600060a060006000610100611c7df26004556000516005557fdc7a6a7dbd8a42cf97100cbfb5343286879ea772d7f0e486bff85bac63a41cb56000527fffffffffffdfffffffffffffffffffeffffffefefffffffffffffffffffffffd6020527fffffffffffdfffffffffffffffffffeffffffefefffffffffffffffffffffffd6040527f929a627f76294e7041dc0d74d9c3c9ac2cc7ce336a28023405d93aa03834d0bd6060527ff3d7a84534ee20597f4dc1fc9c44744f75a880989f14d24199c6be5490fb24a86080526020600060a06000610100611ca3fa6006556000516007557f0d5d8c3c63c36344c65b288698895195d95bcdc486db6b84bdb44000077b0c776000527f55555555555555555555555555555555555555555555555555555555555555556020527f55555555555555555555555555555555555555555555555555555555555555556040527fc6ff4b3f7a863bead987f1963f6b0aaff9e4951bbc26d6176a825a3d669e30c96060527fa8e431bfa6a9a58e352038b93bd3f670a9f41d16d64391fbfcf0c53e8af119cc6080526020600060a06000600061010061197df26008556000516009557fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6000527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6020527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6040527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6060527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6080526020600060a060006001610100611b97f2600a55600051600b557fdc7a6a7dbd8a42cf97100cbfb5343286879ea772d7f0e486bff85bac63a41cb5600052634000000060205263400000006040527f06af349be1401d5693cd9897ff18f24b75c8961730a7fb42f7b8c05adb7ae4aa6060527ffd86c3aefeedf5bd733562eb1c287e20505f7257275d65a3203da7df67d2cfb06080526020600060a060006001610100611b72f1600c55600051600d557f26a77edafe02e595da4fd28a5b12e58f35631825b42942ac45f741a3cc48235d6000527fa813b95c8f745c9e8c74835e6d7294a1f18d8c0223dd9de2195f6fb80e87df1b6020527f729ac1c416279c26f6ef1880807d14fb9e5b59dd04284967b886b763ee3e531f6040527fd55891b3eae94b9d31603841e0a506f4f1ca9707f1e396a1357d03cb7d4874766060527fd5eb98bbd949f52c9202a47ec52b8fd5ffa9e407b3597ee9264794de43fe58726080526020600060a060006000610100611aecf1600e55600051600f557fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6000527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6020527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6040527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6060527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6080526020600060a060006001610100611b52f26010556000516011557f0f0ea7c172f5a60807b88890ceef3613666c7bc8b46ab8c6ba7f9d44c7c8d9c56000527fffffffff00000001000000000000000000000000fffffffffffffffffffffffe6020527fffffffff00000001000000000000000000000000fffffffffffffffffffffffe6040527fffffffff00000001000000000000000000000000fffffffffffffffffffffffe6060527fffffffff00000001000000000000000000000000fffffffffffffffffffffffe6080526020600060a060006000610100611c9ef2601255600051601355600060005260006020526000604052600060605260006080526020600060a06000610100611abcfa6014556000516015557f91e80dcf2d1c4a9016fb27e21dae230fcf796b906a147329d2299c61e9fd016d6000527f4ab4bf536ecf5c53a5292fdfb6f790ac1ab2fa939c88c011dc458ae9d1c314336020527fccd9f0d9daff86a998d359e6d8590640cda3fd0c02ed358dd62c67ac9a599cb06040527f4b9e55f8048a5156261d796f0735f5322225ad150751c79cd050e054baf0f9716060527fc44c1988e80d316cc9fd2f484030ff014b9009644ead59d37f7d13ac09aef2766080526020600060a060006001610100611a33f16016556000516017557fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6000527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6020527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6040527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6060527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6080526020600060a06000610100611c26f46018556000516019557fdc7a6a7dbd8a42cf97100cbfb5343286879ea772d7f0e486bff85bac63a41cb56000527ffffffffffffffffffffffffffffffffffffffffffbfffffbff7fffffffffffff6020527ffffffffffffffffffffffffffffffffffffffffffbfffffbff7fffffffffffff6040527f1ce4cc2c6c9b4ef10f826805726283048e38decfa349b69274668dd196cf20c66060527f280ae8f2a302694e423a2310d8ee05b84f6b34cbd87645bf90e8a7da9bea4f636080526020600060a06000610100611960f4601a55600051601b55600060005260006020526000604052600060605260006080526020600060a060006001610100611910f1601c55600051601d557fda7ec96c9e839e42b8502b8626c53235c48e9901e9914849d7dd107de28f7f806000527f0d654e9e3f27b46f31641cc06966bc91038240c335ee08f569b19900af4ceaf76020527fdfdb06c0fc565ca8fe717ce893796e2262cc4432fffdb3cb183cfd03b3197b696040527f8a38b7e8c499eed9961f8b9275549450ce253c0becb777723bc6cd3f37d2f8c26060527f10650f82e1b46cb015b7f392f549113a19c32649de943a7d5f36f3f71b92962e6080526020600060a06000610100611969f4601e55600051601f557f07e55549b656864ada291099acf04498baecec4ee9e5ffabe3be06ca7f2d70d36000527fc961b86e7fc4b49ed3ab2e9abb290c42b3d4937a8c61ef808daa683ec9ece2496020527f33b1bdb31c143cd58de8752b610d54f1ac4366a83d50554bd881b9fded16c1bb6040527f97a6f2dec960870eb0946d725d0952a0f856a3d049ffae0b49505a16b358f0fe6060527f0b04637614be1f3492cb13ba35138d31672126f91d4fcbc49fa9a7b897d3c9eb6080526020600060a060006001610100611ab4f26020556000516021557fda2564d83aad64c14d0d9ff48b1b1a1a4e6389abfc88b1a84699d5bb46e9a43a6000527f79a5c9ee5f65ad10c9802d3eb05326854a4c7f1daf119125e85193871c192a846020527fc9349f26cb6c3d621a4819dc7abd4552b0d40262ed60c5f4de04966d34d306966040527ff5580e84b736cac1404b9f4653d9d02d99040364e727902bdb7541d9ae3a1ee26060527fbe39d7d06a2a38e968acc2fa53fc55b5816ebed7ca643a55f01e98ac1305c5736080526020600060a060006001610100611b80f26022556000516023557f8fccb068b531ac17d393ea08148715ab1898c1221e597564e77c2c9e78a9cdef6000527f4dc2cfb84a8455b0236d18ce80926abd45467af811f56e6272415193751cdae86020527fc4dcf859a68077f23f823233bf677414fd9590e2a65a24bd19e631b2684c01456040527fa776aedfa3736ca6866a41294f89dc4782ac275121732a97aecb822ff59306586060527fcdc5b3065863cb5d3cf03470e91aafedcb274e4f5d0848f68d2567ee7a9ddfba6080526020600060a06000610100611aedf46024556000516025557fdc7a6a7dbd8a42cf97100cbfb5343286879ea772d7f0e486bff85bac63a41cb56000527ffffffdfffffffffff7fffffffffffffffffffffffffffffffffffffffffdffff6020527ffffffdfffffffffff7fffffffffffffffffffffffffffffffffffffffffdffff6040527fe6fe5af4014fae1b8838a671bfa6509acddb8d61778b223aff75fe49ae234a236060527f7d4bca4cd977976c41986214a10be7463b36bd73e7283a7b62d15d454a9ddc9e6080526020600060a060006001610100611b36f16026556000516027557fc5929fdb9b2ea2f7717901114528523cce282c9958e34dfe1dd97e8b9faefdfd6000527f90785ad69d68434f9be9d6fc656043bf9372b65357822817086c2f06ccdb10666020527fc8e51af9578a30cf291bb0cde19d503d4a75c24ad8becff0d5314c630c30906c6040527f6adac970a61bfac29951187862ce1f66f90ee923742656bd076677d87469b7f16060527f03bec49c0bf8bd2c77dcba46118716009eb49cd098c538b7a4e5db94357441cf6080526020600060a06000610100611a4af4602855600051602955\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xBa0E31A0E75AC9a4cac4c57d6c7EF2a10e87D4e6\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x600060005260006020527f0cffdcad2364bf800d4f8ecad5acedf0975a3bd851fd9571673aa9351f5e95306040527f21d1fdc3e210bbb02f211da9de4a47a662b545dce50e4aa7af30a23003201e7d6060526040600060806000604260067fc66e5fe04ae9124419d32a64cd9d5cf2b3f445692192c5fc79b7b49fc73286eaf2600055600051600155602051600255\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xD74CFe323387aE2fd070CD046173026716D8D649\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7f015822aed75630376d37386f3799b27ec63cb07f30e4659a3b7d9cece811d5a26000527f67c06c3a98df4007b07860fa901efbb50ff143e42809fe2041fa24c02026c1126020527f63ad3f11f2f2eb2478505506675eff6e83f3867ff066fc991f5fe25980c389816040527fb70e5bd3f9e9428c3cbbd6d663f8e3feeb70b54c9197a0de4c49f0b7438466b56060527e14d252daa3180c5e0d1de5f5669551984adcfd0e36d90e1bc29ffdf06696f66080527fe38950d11fd574dad1ad6bd2456121fba6fb6895ac76aebb386b7a98ad76570e60a0526040600060c06000600a7f5c693deea99ec3065d08bb3bbbf8992574d560bcabcbdc8781ecb8dc228efa9bf4600055600051600155602051600255\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xDa78807c1C4567c23EB713E9fbB3b1508C1284ce\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x600060005260006020526000604052600060605260206000608060006001617c22f46000556000516001557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601c6020527f3bee45b3eb35ba25ddf514daba65fef3f327a2ab836025e69585f1a903c7c86f6040527f4499a1a179f672d04a0b2fec1bd260ddda493c524f1b9e513592d2f476b963f560605260206000608060006001620160eef46002556000516003557fd9c84e1cff4c078bf9679ea5bf23592805f37ea1ec5fcd75c1a6e8a3fd66e44c6000527f3d0a9c3803840519f5701b12bc8ba1cf5f5bfd079dcef891120fcfbdc9c2911b60205260006040527fca06c9e53a2cbfab1d6050b4ea989e98b4fa84f2d19c7594b0073962de4e18ae60605260206000608060006001620110befa6004556000516005557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601b6020527f3154834094fb37ba975716f3970bad6297c47c172e7384670a4ce1f93cd344066040527f1cdaf53e7a35ca88126674601fa2b335be2920986a3cf316840aea84dc1b4a696060526020600060806000600162014802fa6006556000516007557f63efb6cfb44bb2963a13fd5e3fdaffc6fbc619559964acf4e8614e1d15f3ed086000527f024652b7aecaba2bb5d6fd3da04180ba0ae2e2c6ef618fabc25b49581db73b766020527f4421f056c8b311d1c0461d9e241c010377ee025a6aaaa218980a1e8a03b0f4666040527fe19e0855afb14158ae4bafec2480565d839a784cf5fb30ecb1d425b74a8d4503606052602060006080600060016146e9fa6008556000516009557fce846eb15af7598f7fefd78f0efce96830f71a5fa9f360b4c32c546e82fbe9c36000527f0bb1573c8bbd32e2cf127adcbfbc0cfa59330ddd44f22eb7a18aee283001ce1b6020527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040527fef7a75d0b606ceb4a6a8c83052578514aabc80200cf0e965247e40869b01cb7160605260206000608060006001600161fe07f2600a55600051600b556000600052601b602052600160405260016060526020600060806000600161e8e5fa600c55600051600d557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601c6020527f4c23edb3269c38a2b71f2dac376ef96277b30deb4b8b5f4b0a446894fb0434e26040527f4f5320eb658715ac23b12693f7b736660643a49f7bdfc12aa58368387856f7bd606052602060006080600060016201039efa600e55600051600f557f16ec952430685ceab67971d69ba453c0f7c7ace8ced2b2ad05fdbe8855b966856000527f16e01e4b4546a40674fc3e4afa205f32a99e0e0361e1a5bdca14dcba1f4be01d6020527f58e5f30ed3f01bdf0ce96e36e0e18f0ab1f5f4dc441853b7a0a05013eb0588866040527fffda7608c1228a1efb7030695d5d5c52e8b71938f0006be285d3fd45e9548e9660605260206000608060006001600161a448f26010556000516011557f52e92aaab476abc19ccfb6001e47185d032d199e483ade94021701640b96dbd46000527f67fb34f376fa286f69b858fda0aef9dfc878cd3d45a1b4731b602dc8a423181b60205260006040527fd264e88a16f0b0b8fb3baf7a9de435ebe24a3b00d37e02a4502743901910c8ff60605260206000608060006001600161fb2df26012556000516013557f689298d3c55f4a07506ffb08203a915568fb1992f0dbe5265e8311236232b9bc6000527f85d6554f4cca60914a02671b5008cd2328a23b7a20e71f72b30e1ba3bc59071c6020527f6d0ccc79ed8dcd74c3db310a39119e23b2ed6c3352076c9b46a56b00bd9f941b6040527fffffc98dd3b5e04804879b2857f1f05896ea2569f79e81684978dfeea6b19b4060605260206000608060006001600162011fb6f26014556000516015557f1ddd145d47aa6659d09a487fc08ef28ca0370d45a533849285ba2e335ec271ef6000527fab376704c96d23f843cb7095fcb0ef36f74800a5d2f6d015c8a11cb637030d196020527f9f16a0d1950efed2986a574875a2312ee9862b0472eb497682c5f77de39c427b6040527f0de7d8686e5461ec3acb8012d977ed0b685b39152060460c6986d7b60191d5576060526020600060806000600060016201629af26016556000516017557f52c42577ba6da35a6dc6926eea25f40ce638bd287d51880e62587aef56ed476e6000527fdf8f7cac41b8d9d41c8e98eb22e2d3ba333466a3499e6c4f0e3b55c29be7461b6020527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040527f2e2603f500a5f34360299f4688039a58e69f5ab3f2bf7e7c168b4fd950ab278d606052602060006080600060006001612aa1f26018556000516019556000600052601b60205260016040526001606052602060006080600060016001618b52f1601a55600051601b55600060005260006020526000604052600060605260206000608060006001619b41f4601c55600051601d557fb2b76192badb0847f3b2457590b2d44c9f96bc0abe182d87456e2767ffc40aeb6000527f2c96e9ba9df964f2b4008771c04941993e39156445d70d0f5dbe25cc9d4ffe1d6020527f305608b33c90faa5662c24c23d12e422f3cc849466213be9363d66eeea9991026040527f67c8fa634bf5d705e990f5cb32d9ef356bf4a7145cd2c740b4b1dc56d6cfb9e56060526020600060806000600161eb8efa601e55600051601f557f926d59808b2bc3e14e0fcbcc631dda2f8b3aa372cb37b1423679e598184dc3d06000527fc427b2c4b667b24ee990d36a0ac61c6e6d707f3e3e416d2005a83e3e536f961b60205260006040527f16b4650305fd17eae244c1d693639579d47c538233c2533e3e6f5b86f0089220606052602060006080600060016170f5f46020556000516021557f930e1fd7f9271151fd26823a99c889ecb4ab61546feec146368da7d21f44fb776000527f5fe6d43e7f98243463ac5569776be9e12fcbede7659966ca47a9234bc7bc8f1c6020527f4d27a9cf036879918194afbbb5f7646c0f03e28236cd38973db762b324e04ba86040527fffff287e5f9bd1b2ccf4e8b875aa7c72eb70c51b3b18e3a276736815060f85b360605260206000608060006001600161880af16022556000516023557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601b6020527f8bb7ad38f2ccc549cfa98226ed03f00b3542544ff46096e94c69af6ca1ec73be6040527f22ae7721a3f4730a9f09cf0e1f575bccd94ab337cdcef1c3123e4825ba1dd4266060526020600060806000600060016174bef26024556000516025557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601b6020527f45185c6e5ddd78b586155caf4751ef3969268f7d012d07be817c7cc632a983476040527f20be2543f6125e7806400f8db64d7c1c70894861c08da888f41ddb4b5dbf539f60605260206000608060006001611661fa6026556000516027557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601c6020527fd8b851bfdafa7d90d5eae79c1db25287222016d88bae4b7856987cd1ab81e81e6040527f6f84238d15c5c049dae779bbef02ba59571258bda10b458cf71b95d1640c26716060526020600060806000600161d66efa60285560005160295560006000526000602052600060405260006060526020600060806000600161aa00f4602a55600051602b557f846458ba17478612f4be17db5ca7c4ee8e2397557a844b612713350a519ec8296000527f21bd55e20abce4ae2cb70e577a3cf541f028abb57b1334e4cd7f7ce8f302941d6020527f044d78e3b2dedc78e77d3faf1685dbc361495122ebcfc719b1cfe48a34c11fcb6040527fbaa38fd4409479113a08882a5d3e16007be8e1d49f5a4697fbffa9ce4b3f599160605260206000608060006000600162014c64f2602c55600051602d557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601b6020527f2bbcad12919eecfc432da299104a72f9ee012e14503b95473f5536f52a89e0f16040527f5b44246c8e7a5314f17fe500b90f6a99c01e8991b0a07d85a1adfd7d10d6e3876060526020600060806000600161ea1efa602e55600051602f557fb3d5b41474c8858089f3b75559e94169729a884e468b01ca05af199455c760446000527fda0114f5d7b57def6f3bfe8a9c943e56cd80622a5b4c9243f448fe62990af71c6020527f6ac9cae3220f21ad35a896c09f219bde9068fd977b67d310fd5ed2521817a6336040527fffff16473d4bb2613dad0ec379c4ad2b99fd5dc294a4978087252621228daa0460605260206000608060006001620170a8fa603055600051603155\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xE2f4CF89C9B94178B5725B8b1fd9a7F40c4a674C\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x68066aa0a5319bcf5cb47f7effffff800000000000000000000000000200004400000000000000000000019011610107557fffffffffffffffff7effffff800000007effffff800000008000ff00000100007e4b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b090b2b0bc60a0a1000900b638000000067fffffffffffffffe90019002610108557f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7cc9700000000000000000023f00c00014ff000000000000000022300805901b712000110000000d0a300e750a000000090a0a6fdac7fff9ffd9e1322626262626262600901a900a777effffff80000000000000000000000000000000000080017ff6376770abd3a36b20394c5664afef1194c801c3f05e42566f085ed24d002bb090016101095567ffffffffffffffff67ffffffffffffffff9010901d6101117bc9700000000000000000023f00c00014ff002c0000000000002231081b684783921454358970526a010000000000000000000060000861010a551b677fffffffffffffff7feeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee7ee8e8e8e2000100000009ea02000000000000ff3ffffff800000010002280ff096001717676767676760000000000760000007600006c10000000000000000000000000089006901a15686d5adef08547abf7eb7ffffff716b61616160b0b0b2b0b0b0becf4bef50a0df4f48b090b2b0bc60a0a001c7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd67d0212626262626267f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe900861010b551b61010c557bc9700000000000000000023f00c00014ff002c000000000000223108762900760076761e000200767600000000767676760000009007777effffff80000000000000000000000000000000000080016c01000000000000000000000000900114157fffffffffffffffff7effffff800000007effffff800000008000ff00000100007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1790187f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd61011190046101116901000000000000000000760fffc000000000000767676240000000000002b0576047900990137e050beb1c60141a0000dc2b0b0b0b0b0b410a0a0df4f40b090b2b0bc60a0a007ff6376770abd3a36b20394c5664afef1194c801c3f05e42566f085ed24d002bb0712000110000000d0a300e750a000000090a0a089018901561010d557f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90050b7f40000000fd000000db00000000000000000000000000000000000000000000017ffffff716b61616160b0b0b2b0b0b0becf4bef50a0df4f48b090b2b0bc60a0a009011901a6f8000000000000000000000000000000167b368d219438b7f3f7f8200000000000000000000000000000000000000000000000000000000000000900861010e557a010900000000000000000000000000000000000000000000000000717676767676767676760000007676767676760b9001777effffff8000000000000000000000000000000000008001682100000000000000229006901276013590cab83b779e708b533b0eef3561483ddeefc841f57f62d8fffffffffffffffffffffffffffffc18000000000000000000ca000000011611778200000000000000fe000004000000ffff000000fffff70067800000000000000102900761010f55760fffc000000000000767676240000000000002b0576047638000000116610110556007600190066c1000000000000000000000000067ffffffffffffffff677fffffffffffffff90081860006000f3\",\n      \"nonce\": \"0x0\",\n      \"storage\": {\n        \"0x0000000000000000000000000000000000000000000000000000000000000011\": \"0x0000000000000000000000000000000000000000000000000000000000000004\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000012\": \"0x000000000000000000000000000000000000000000000000000000000000000f\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000013\": \"0x0000000000000000000000000000000000000000000000000000000000000013\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000014\": \"0x000000000000000000000000000000000000000000000000000000000000000c\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000015\": \"0x0000000000000000000000000000000000000000000000000000000000000007\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000016\": \"0x0000000000000000000000000000000000000000000000000000000000000011\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000017\": \"0x0000000000000000000000000000000000000000000000000000000000000004\"\n      }\n    },\n    \"0xF0AB5055e5Bdac80D061b1E7f2bA766d0498b697\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x2629e617faf4ae81683157df0e0b4f967666ca88b6f2e41be40c619288f76ac4\",\n      \"storage\": {}\n    },\n    \"0xFb4bfba6610Aa9869db78F7c6b8f28b166CC8674\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0xce939f993ef29fe9f18cd2fa2ce7ea2d51b23c6b808b850b33226f40d4cf9a86\",\n      \"storage\": {}\n    },\n    \"0xa94f5374Fce5edBC8E2a8697C15331677e6EbF0B\": {\n      \"balance\": \"0xffffffffff\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n      \"storage\": {}\n    },\n    \"0xabBD7eFF49254583a862901dEd2D2E9DF7542E5E\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0xab20700d44a6cb18e72347969198ce9e297e3f58b62c60f9a2450c93eab96240\",\n      \"storage\": {}\n    },\n    \"0xd51fA0De3ccd210D4cCA7f9D739f305CfCAe9117\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x579dd91bd24f9287c7fd47e0eb7b407c83dcbf3217e11f245153ebe0c1136d83\",\n      \"storage\": {}\n    },\n    \"0xf3eAc1d1B1EC8cA737bD148b1E96168024fB3F89\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x6000496000556001496001556003496002554a6003556002600455\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xfD6241df8Ce82b2Fb4126dD0e9FA931806Fa573c\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x60e360005261020060205260e36040527ffaae07a3a2b9fa3a20602d0e9afc484992acae594db6cdb5c5e970b01fe1d2fd6060527ff0b069f3fd126ae60edc9f8fd44e79165d533dd418f68f4df72271a1e4693cd76080527f1bf6cd9b8e4f6ea9eda97e449785f31c52a4b2d56e06a30160ed96a6feb4cd2260a0527fd593551965f337f92ad2ef16ea5fbd47af7fab77720e2b5d1f1431187bd1266960c0527f10f80389536469944c05ecb9e0e5815ecce9aaa8fba0b6df40e4e4ea824c466160e0527f7c62cd4b1aa3e55e1c53163efd4767bf340c7bcfe799823dd813c299eaa43452610100527f8f165b90caebe259b370266184e1f0cafd9d42b37a5d3e888f5ef09dfc54032c610120527f0bd6defa6b5381c9428fafda0fb74a9df34db1d8d695d8810a9622b83b75ec4b610140527fd67130e95cf510a562e00a1b65ef39fa2c8a71008af6243bc382d06bb393a2e2610160527f15184ebac4fa806cd9a59b5a5e7067552acf594b687582fb26d45cef67b04f17610180527f5ceebd64fe9bd9e8440bee276ac5342a3b8a4126fcd137f2b03911c4694e5c436101a0527fe6c897f9f07892811764a8afc441bc4ab2dd353220874dca6ba859a9cbf6bc036101c0527f28e95ae07a5eaedc49a861dd0d89e2d310589d3c1af7c21816c4090909fde9e26101e0527f1d05d29d378a36206ae4f3abae31e26899315180a1c586771cb16fe4ef257361610200527f552b6cd8377b3231d5f955e9ca0933bfe0c900d568852407088d3b3a154aa685610220527fad10605210435009fe1b0bbd13347c8d44107b90c8c8a6e71a9055b33c46e3ac610240527f4a0eb5c400a314152caafd8cb2399e459c06c26804f4a72275d8820f905dd7d5610260527f35257277817de1ec1dc26cd00ebb54e7bdcd2727a93f6ad18c1ff2a3fe058eaf610280527f26014895171a3fbc54327a922b6baa6008f188409b7a057a20f369d1a31082ba6102a0527f8b733a0ea3de93de3edfd4d6cd75704f0705fa00d25ae45d125edd24d74a983d6102c0527f1e8478e4dbc47704425a059f02d999f16d754e5830a451fbef62831e891154816102e0527fdd64f93827ed6c86190fbcdfb861b25832bc7ade533ce7b745e7f09724bc5a66610300527f2e9892e7834d12e6fdddc6f459a787bf624ff3c9491f78b87d15f687a6f1171d610320527f3f730fdc84ebaeddaca539e147900f45f6fe6e685df79cdb6ab2459d03ccbc70610340527fcca041875600703836086de20840d1183317a3fa577890ce6fe82039476a09cd610360527f75c64f3414ce2e4e9db92b2faed2c5e36cb0564e6085f6b418b6d5dabdd3304a610380527fccbd8a35b466aaa12f730b6c5fd79b506ad023e8796db42af39ab5ac6d67697b6103a0527fb01d6cecf3b1e6668744c46db1be303ed3d4efa65f5c8082406f1fda81ece65a6103c0527f978144fee5e0eb04f5a06ec8c5e05581c3d1d41b29036103f04645beec00e0316103e0527f6db832109438b66e4481c69f387825932055264bcac0880659388926223732e161040052607c6104205360846104215360866104225360716104235360236104245360526104255360e360006104266000600562ea33befa5a0160005560005160015560205160025560405160035560605160045560805160055560a05160065560c05160075560e0516008556103e2600052600f6020526103e26040527f248028ef9455230bd7f522958ecaaf82bed59d3e3eb33fa958cf0c9d2f60238b6060527f44943b2e4e40cd93d6d2ec3967500767d5ec8ee835418743f0fd6408287e85d86080527f2f8a7437b7d241a054f1be704da4945e6ee1ca560dc96ce512f583a06bf7530560a0527f36dc00a8c881ce08a5517e4993dc6cf55671ea731e281a652349c8de444a279860c0527f368250dcb2fa909e2f75221837413ff1594aca10c381d3212a0341095705c1c660e0527f45c68c9fdee5d1700940d43b61c26dbb413c7ce32a43135b5e608580f659df19610100527f6ec18e46edb7feaef4f2ef79d14eed52c1a33ce66e7d7100d3e599fa93d5a487610120527f6bf749dfc1147cfc81c360b7d9ddbf818620bc1cb69935fb1aa0968b0341d1e6610140527f7003abd30fd7aab20dc02a2cf219ee4e3370dc944614bf11fc9d7e7b5afe2b64610160527f5230dca1e5154963a38a471021d87e08c4b019a62e4a78077a49d9910aa210b9610180527f74455d43ebb593133cc60bf92750661d4466929d1e33223b808e7830144c0a8d6101a0527f4adeaf27275c0641d2bd7cd987d333c2babd0a1d6dadd4bde27bf7b9f5c756066101c0527f15f2e9a6302c609edaeb3c327366fc0ee173ac89d092cdce9938a64137b1a9096101e0527fb0c77bb621770478ba149ef8bdb5cac919eaac04ebb1b93988ea1fe2d08db09c610200527fd962c98a7b2b0fbf426a137b0c1da1ae9e26b04d9a1120cbdd75aae7d1e347b9610220527f98cc876b2e0c67b1cfc529ec6b905d8fb2c92cb667150f6cf55ad01be28e9db6610240527f0fe3ff0b7067a1584d2c13d2e0d88eaf0d92cf20ccf2069c9adeae3c1935c343610260527f0813c163bf3165486c863aba88cdda635910d0a67a6257fc797900c9d823fede610280527f996247e75b775207a98afd38a3922af9f856572d8611e3bb02881db07ec2b0386102a0527fc1c01ace26be91fb5f4f5a1f40d9d4e08e8467f04cfe3ebb27f896d5aaa295876102c0527f46f445787484e54524c9dee743ed2c7421ff13520859c9845bd48bcfeb277ef16102e0527f08e8f600d4a48ee8c71deea2f511053da84489af32e4b8909fc90f79052cc605610300527f7cd12f8c3ba6650410f01559b8bc869f70ff721ce334d8ee19e1e7bbd52258b2610320527f1a38ddc7183eac35aa6f1d444063379ec52a85c60bef447d6df20b22a35ec846610340527ffc2819284a26887c7dc9eead9ad44d4a685cb048c42bfa434286a776c898ea67610360527f01bafafac3bb3f73f6b2ec355422a65e8f453701d18e6602febc266c88a7c792610380527fa2dd5015e81fda79bb08c408f2ab994a7d30ac41eb14e2a264d9252f473c60776103a0527f31df7fa21fe0a305e3e308ed5dd4ab3707cf2c36f550eb36d06127a44e8079ab6103c0527fff9acf8767e66237a69bea82986cf67e395fedb7cc0f9b313c71e43f15b0cb996103e0527f71ee952eb352d50ca60c38c05359196881e5c92b9b255d3db87f5d049b8dd2dd610400527f9124e3c8a00153bc22ceff34179e0701f387f47ceea3bc39f395ef7bed9882c3610420527f6bd8000000000000000000000000000001f1fc721aaa4119207ef47ad8eb122f610440527ff9d42abb6e626b18641b3106800eb0533016cf48e6c16156c8709b9a715db426610460527f8acde410f5e3406e1903da96d312a40b664c7739273db7c6ed6648239e040a20610480527f2cabadd704d468f241dd904a6632fec62f396418f691553246991f86235783a36104a0527fafa27b738831fe4b18682241410d87fbe96a0e5fb9956bde3405e8f06a6ee1be6104c0527f9b811b69d55cd62936c12b36a8905681f95baa73e38c804f0dd9ce859418aec96104e0527fe6cd0e199631c5561acfdb0f4775dd26f5730c5625fe2799f96cb1d030284499610500527fa9afc4207868c6d5b86a8dcc23c4acd8ad6ab431f4780031f72f810cd7fa74d9610520527f34625a5e5161695cc029dce6569f4d787bc0fc318a8099d6dec7411e96d2ed59610540527f52174be74808d4f3bde58dc2b44ef99a1bba5b5ad5cdf5549f049fe0b184d7d8610560527fc8f06e1de0809d1ac202556892c6596f6da699d61bf9218cede09d49f402de94610580527f6ba89081a0a1e0c3b5e1d2510c1bef2c773952f1628539dc9cf83dc1b70bccbc6105a0527fe4dfa2deb3d771e6f98a8ae4138a8283092ed48bbdd7e25ae6deffe7be3bdecc6105c0527f7a7741900ef61b99f257f3f78b3c4bf782d1d386b38cb7ef1e39f0b5b094e0206105e0527fe7364d03a262655301265f05019b07c401c6a1216daa542f8b9af7063aee8012610600527f7caace2fae0bc642701a9e68679af1edaa352de7b266807cf9ed1f4183c7109f610620527f55d3fd38ba1e4615050ad6b85977898606251555166540ddebb6a2edbec026b5610640527fac02c66f1ab04dbcbfdecbe4b45b23e88b47cea22aa6f9fe54cf5566ee5c8233610660527f076dbad8993743658ec20a6b08011b7e963e84267da8c37973bd60e9575959bc610680527f425c6ab015129cc0ea6630fc7044e458aabd48b9c72f9ab49cd4bc431704395f6106a0527f9a7a1ef1ca5040473b5cbb69b5a5b1b335d56098cc4e21a66b28359a7d7a3d836106c0527f08bda3f52af64cfb832c3d5c1b6c8e6c1c30efde970c00767b0613df6bd551e46106e0527f335ab482163dbaf64f21514e2261607cf8faf45345760c9eb208c07d00605a5d610700527f20c1360ef4857065a011a48e0edf602a97ee036d03c04778c2294588259a62b8610720527f583bd4fe66b6af52f1d2ab8c694e7af74fd1756a98ef0388aa3e04004c3b888e610740527f38a6b73740b97b303554dd7ac963234b5d13c612920018e0f43540afcb50f748610760527f99b3a4b63e7c9548c08bf23821ef55a5a5a1f7a5d8b54294fba52551166c320b610780527f3476912286595061f76abfde7b82d6b37bdc511082ff700c7c0374946e87303a6107a0527fe367d1c0f8d4728b996355f936b87588f9b3119896e75dfed07fec08c7a883066107c0527fd3b5804babc1a6f9dc98f1994d8e3d0ea45c10e164df92a05dca65c1508680856107e0527fe1eecc21fd182df2d3dbf79a9e66a5f9a2117fb9b6455cca7ee8ff3dd35f958a6108005260e161082053606461082153600c6108225360af61082353600461082453600e6108255360c46108265360f361082753601e61082853605f6108295360b761082a5360b761082b53609b61082c53606161082d53604461082e5360cc61082f53603661083053608f6108315360b7610832536103e260006108336000600561927cf45a01600955600051600a55602051600b55604051600c55606051600d55608051600e5560a051600f5560c05160105560e05160115561010051601255610120516013556101405160145561016051601555610180516016556101a0516017556101c0516018556101e05160195561020051601a5561022051601b5561024051601c5561026051601d5561028051601e556102a051601f556102c0516020556102e05160215561030051602255610320516023556103405160245561036051602555610380516026556103a0516027556103c0516028556103e051602955\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    }\n  },\n  \"chainId\": 1,\n  \"env\": {\n    \"currentBaseFee\": \"0xa\",\n    \"currentBlobGasUsed\": \"0x20000\",\n    \"currentCoinbase\": \"0xc014Ba5e00000000000000000000000000000000\",\n    \"currentDifficulty\": \"0x20000\",\n    \"currentExcessBlobGas\": \"0xe0000\",\n    \"currentGasLimit\": \"0x11e1a300\",\n    \"currentNumber\": \"0x1\",\n    \"currentTimestamp\": \"0x3e8\"\n  },\n  \"fork\": \"Osaka\",\n  \"parentBeaconBlockRoot\": \"0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f\",\n  \"transactions\": [\n    {\n      \"data\": \"0x35\",\n      \"from\": \"0x0b90ABAC5C8F6ce035a107913ea5D7C6eA24f9f2\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0xBa0E31A0E75AC9a4cac4c57d6c7EF2a10e87D4e6\",\n      \"value\": \"0xfe\"\n    },\n    {\n      \"data\": \"0x\",\n      \"from\": \"0xabBD7eFF49254583a862901dEd2D2E9DF7542E5E\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x20\",\n      \"nonce\": 0,\n      \"to\": \"0x538A8474EeaB43d5a960164c554A20400151D479\",\n      \"value\": \"0xc4\"\n    },\n    {\n      \"data\": \"0xdf92ac04706765a4e274839cf32f84312e756a6a88f9571ad2cc4b6bde369fb6e1eec69f223fb3a373b720e2c04b3cf6975cac6b07a5db676b54bef65a0542e123d14e1b2a6609d159c733c586\",\n      \"from\": \"0x08d033C61e1E55bF868082cf788a3949f4ea949D\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0x3Bd84e661C47a73eEe4137D185E4c31c194C343f\",\n      \"value\": \"0x598d\"\n    },\n    {\n      \"data\": \"0x0fbede1cda5ea094f3d336e7086c33f03a60\",\n      \"from\": \"0x89408B1DeE3283a0AE426CeCf5C49cc3073Ed356\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0x9E607bB0Bae19b8bC75638fd1aB98594b36ba46d\",\n      \"value\": \"0x0\"\n    },\n    {\n      \"data\": \"0x185adb1cbf8c55587a099e646bd7b247a0567c03924be159636e\",\n      \"from\": \"0xd51fA0De3ccd210D4cCA7f9D739f305CfCAe9117\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0x22986B2F9A2f5E7119F940898c35e7128A4Ce7E3\",\n      \"value\": \"0xdd\"\n    },\n    {\n      \"data\": \"0x74186378b78937c2e7cf7cd7d6404c8a4dcfc5e5d727\",\n      \"from\": \"0x0b90ABAC5C8F6ce035a107913ea5D7C6eA24f9f2\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 1,\n      \"to\": \"0x9529cc6891Fbd5aBFABE0AE6c79D30F0CCAe848F\",\n      \"value\": \"0x33a7\"\n    },\n    {\n      \"data\": \"0xe02e8207ba2827e4a98f8a5fca6a6a2485896b4f1e120e0990f8f1abde4f14c7d175fec00dbe69d167e0ca48333b99214cd6fd665cebaa7f1e9e6e1f16abd9\",\n      \"from\": \"0xabBD7eFF49254583a862901dEd2D2E9DF7542E5E\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 1,\n      \"to\": \"0xfD6241df8Ce82b2Fb4126dD0e9FA931806Fa573c\",\n      \"value\": \"0x7ffb\"\n    },\n    {\n      \"blobVersionedHashes\": [\n        \"0x012c1fb205d2aba4cdc7b1da451737a4496f61db6a9404f086443a9ad6adc41d\",\n        \"0x019f3411a7a4978373a8718d07d80152b457d6167e6b2e00eaabb75d23005fb8\",\n        \"0x014d775ca00a525bdfd432f7bdcde8821b7434e7d6d041181b009c9ad14767fc\",\n        \"0x012063c494734e4905ac1a882e1da4b41dac3c6f4d88165279a5ea3a4e1e65b4\",\n        \"0x01d404619f4f9383cbf624a616734f4f13bd4c2e778c5c32f8b9d3205963629f\",\n        \"0x01fe71124eeaa9afbcd2c70a0092c0bc8c71738e958c75d896e546304f5f665d\"\n      ],\n      \"data\": \"0xcae6\",\n      \"from\": \"0x08d033C61e1E55bF868082cf788a3949f4ea949D\",\n      \"gas\": \"0xf42400\",\n      \"maxFeePerBlobGas\": \"0x100\",\n      \"maxFeePerGas\": \"0x20\",\n      \"maxPriorityFeePerGas\": \"0x1\",\n      \"nonce\": 1,\n      \"sidecar\": {\n        \"blobs\": 6,\n        \"commitments\": 6,\n        \"proofs\": 6\n      },\n      \"to\": \"0xf3eAc1d1B1EC8cA737bD148b1E96168024fB3F89\",\n      \"type\": \"0x3\",\n      \"value\": \"0x0\"\n    },\n    {\n      \"data\": \"0x7fabc0867b153544d0a7a6917649213ea389d9fbb8d2cf1d31a4921c2d19383080dc1752efb642d761d03a87ab3e5fba43e6b5bb9d55e6c3454977c539d55e32c00c02207b00c2ba56c3d800c2716df020f56948eed77d629bb629f6812e9908d3e1e5846faa3ddb00a4eec063222bcddecb516dfd85543169209e07727b860ef2d540c3a60529b836baa37caa3253bf76cee4b2da73884961397d8208303f7aca875b83ab8f0458ad54306d435dabe741380930e4f72130433408dc99c1fdb46503e08b2afaa43fdcaf9d69cc64d45a4763464acb0cd4a8ebdc421c7c4eb55b6870b824732294d4da57b9fd93d9af41676c9ea38eb4d94305582f2ded7fa8ef6de9770a7cdc5e36c879074bed19d32057ac3afb62b016bc42ab1a8631ae96f991cec8d9b55a4078ba3e115e7f1bbe3a1a59b1d25dbca7f12d4aa49f89ba7acf15e72a210fdb6bcc820e0e51ad73169c35c91c5ec53a9d80206d2c911cf72909c56ffdd464e9cad124ddcd09624a27e49454e4240996cf05795d9c80c6de9f5057f0e693b1790e7c1241dd43c4b2171b753eb0e1ce4d03dee9533e0138b6a7ccb3bd963918fae9b528ec34f4bcd0a24766da\",\n      \"from\": \"0x89408B1DeE3283a0AE426CeCf5C49cc3073Ed356\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 1,\n      \"to\": \"0x641602bAD4A323C49629d45338d79A2bb984A3fb\",\n      \"value\": \"0x432c\"\n    },\n    {\n      \"data\": \"0x73\",\n      \"from\": \"0xd51fA0De3ccd210D4cCA7f9D739f305CfCAe9117\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 1,\n      \"to\": \"0xD74CFe323387aE2fd070CD046173026716D8D649\",\n      \"value\": \"0xbf\"\n    },\n    {\n      \"data\": \"0x8cf9e1e7ecaf9c7fdba7e4e5ce437b3475a6722752a6eda1a5f6f3f8d073f7d854b4b8043d502b0f3d560708cb912bd4d954727b06c1998c31476653936c81544b5398a43189252c1cc1d14280684fab74271fbf4e43b4cf0199d1c322\",\n      \"from\": \"0x0b90ABAC5C8F6ce035a107913ea5D7C6eA24f9f2\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 2,\n      \"to\": \"0x766C0844EBC3c4ef4ddb86260a4D3516cCa03A10\",\n      \"value\": \"0xbc\"\n    },\n    {\n      \"data\": \"0xaed6c0af2a3b780d8f64283222061e3546f17c8f89432dd88300ad877a6f3cded23eeff09e65eda5e1d3dc07612d5a4d104957d44ddf8875f1c21cbde16f05683e0889ea62cc5614981f91006165b8298ddc6c16572aa9c4eab011880f81\",\n      \"from\": \"0xabBD7eFF49254583a862901dEd2D2E9DF7542E5E\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 2,\n      \"to\": \"0x1d891f21BB2a55cD9EC7a32478f7c74d757c4876\",\n      \"value\": \"0x81ce\"\n    },\n    {\n      \"data\": \"0x131f100b936e782a5a\",\n      \"from\": \"0x08d033C61e1E55bF868082cf788a3949f4ea949D\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 2,\n      \"to\": \"0x7458F9b8B5ee360A32b0b0Fe648C996C68AE8190\",\n      \"value\": \"0x7ee2\"\n    },\n    {\n      \"data\": \"0x77fd456d2b161715b9d91df9a7b38ba3a2697ec0db03ca7bbd44d4768850060e6b0f14724a7240c8f89ad2645f00eaae2846a4815c675c5af4feb83052eb5c05d0856eb1fe0631c3ca5d7295d26fa4e4ca5378c417\",\n      \"from\": \"0x89408B1DeE3283a0AE426CeCf5C49cc3073Ed356\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 2,\n      \"to\": \"0xDa78807c1C4567c23EB713E9fbB3b1508C1284ce\",\n      \"value\": \"0x0\"\n    },\n    {\n      \"authorizationList\": [\n        {\n          \"address\": \"0x000000000000000000000000000000000000000a\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x0\",\n          \"r\": \"0xfcc66a95eb000258ec04458ea3e7c3fbda47d4e513fb50bd91302c17eb758f9c\",\n          \"s\": \"0x16061ffffa1c3a815c757cb500b5989dddace00fdb3d6d90b93ae38f3b2591c7\",\n          \"v\": \"0x0\"\n        },\n        {\n          \"address\": \"0x8fd379246834eac74b8419ffda202cf8051f7a03\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x0\",\n          \"r\": \"0x62957cb32907e1636ea9fe81e4b5c4b343cb341b9031e0b1cfb757e581726714\",\n          \"s\": \"0x7631afc54a3a4824e975d7817b97a58c48c4b4ee6115c092dc1b8e3902d39baa\",\n          \"v\": \"0x0\"\n        },\n        {\n          \"address\": \"0x00000000000000000000000000000000000000f9\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x0\",\n          \"r\": \"0xbce2fa378f0a346de227333da920658ec00165a3d868a08e24820aa5d661c66f\",\n          \"s\": \"0x79434caa34fd81d2fd6a72e4c37328423b859ba9699db8070eb8cf6cb62ecb5f\",\n          \"v\": \"0x1\"\n        },\n        {\n          \"address\": \"0x88f9b82462f6c4bf4a0fb15e5c3971559a316e7f\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x0\",\n          \"r\": \"0x135760c8d007349409e2e9e91d1920717096e5c322a09fd57aec337e9d45a0f9\",\n          \"s\": \"0x51b01163736696657476c58c28dd1c64611ba807f95d9bf08e498f0a3ff136f0\",\n          \"v\": \"0x1\"\n        },\n        {\n          \"address\": \"0x8fd379246834eac74b8419ffda202cf8051f7a03\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x1\",\n          \"r\": \"0x9a99690542fb5529e0939ad8f6249b224f006b5abe02d6b1266092586d9473da\",\n          \"s\": \"0xeab54e0e8d555a5052579dc28758792ec2ab9811ad89bd74f8ead90f1d0f20a\",\n          \"v\": \"0x0\"\n        }\n      ],\n      \"data\": \"0x275bd835384724a426a222f96df619961766984861b90e\",\n      \"from\": \"0x071b56102BcF6C36a20a3a16fE48781448B1C274\",\n      \"gas\": \"0xf42400\",\n      \"maxFeePerGas\": \"0x10\",\n      \"maxPriorityFeePerGas\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0x00000000000000000000000000000000000000F5\",\n      \"type\": \"0x4\",\n      \"value\": \"0x1e\"\n    },\n    {\n      \"data\": \"0x00\",\n      \"from\": \"0xF0AB5055e5Bdac80D061b1E7f2bA766d0498b697\",\n      \"gas\": \"0x30d40\",\n      \"maxFeePerGas\": \"0x1e\",\n      \"maxPriorityFeePerGas\": \"0x1\",\n      \"nonce\": 0,\n      \"to\": \"0x000000000000000000000000000000000000000A\",\n      \"type\": \"0x2\",\n      \"value\": \"0x3e8\"\n    },\n    {\n      \"authorizationList\": [\n        {\n          \"address\": \"0x0000000000000000000000000000000000000000\",\n          \"chainId\": \"0x1\",\n          \"nonce\": \"0x2\",\n          \"r\": \"0xa57450a9f1a11d34fcd9161c926b59b6a49fa5c410ba426f4653d8d5b1efc7d9\",\n          \"s\": \"0x7f32774d49271f17179ff7fca61536e2bdba3e13c5f4935e4249b5d51a6908a3\",\n          \"v\": \"0x1\"\n        }\n      ],\n      \"data\": \"0x275bd835384724a426a222f96df619961766984861b90e\",\n      \"from\": \"0xFb4bfba6610Aa9869db78F7c6b8f28b166CC8674\",\n      \"gas\": \"0xf42400\",\n      \"maxFeePerGas\": \"0x10\",\n      \"maxPriorityFeePerGas\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0x00000000000000000000000000000000000000F5\",\n      \"type\": \"0x4\",\n      \"value\": \"0x1e\"\n    }\n  ],\n  \"version\": \"2.0\"\n}"
  },
  {
    "path": "src/cli/tests/vectors/fuzzer_test_3.json",
    "content": "{\n  \"accounts\": {\n    \"0x0000000000000000000000000000000000000003\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x00000000000000000000000000000000000000F5\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x03D28A8a81F218F63CCCc11AD16b94f7f787b6d9\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x6517fa85aafd83a02f88fe864d93249c357cce975bd1f35d0b0430a901613f76\",\n      \"storage\": {}\n    },\n    \"0x18665208d71eAF07c959cB6d2b263aCE3eF24042\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0xaf09231cd0ab58828b41ee0ba14866d944b955fbc80243a5bf0bc8c86c664552\",\n      \"storage\": {}\n    },\n    \"0x1d891f21BB2a55cD9EC7a32478f7c74d757c4876\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x6f16e24b8def199c4faf4b0de6ce2c63e66000527fe7791b7fabc464b9917b8670c24bd789323ae58b0f592f02ed3d06e79ecbcffa6020526f1206832c56ded76311a0db4a5bc0b47a6040527f377a7b0ecaf5f702f0a97545192bdf9048a284141d8ec65c40d673bb507d61e26060526f164f4218ce14fdcca1a3917b8352c0836080527ffd2305f25eb90f9195ac522e4f6cd88e81545fb7f10562a26e1aa6d1466bbdc760a0526f144a6f62df019666d40f23c29262f4ec60c0527ffb087c5672a2296e370e37d9978dd2fbe48b2a672b2c4cdca1044065048f4cac60e0526080600061010060006030600b7f21a070d9db735f0bf7584a27bb2989cf7e5394856980d1ba9e331f287f809f76f26000556000516001556020516002556040516003556060516004557bc700000000000000000000000186661c6cb8c557683f3956179418be6000527ffee89013185ca411ac3c1d013761ece59171c177ba2b3ea4a5ba57fd23132bb56020526f1972ee1d32f075d8afbb8bcfe83ae8886040527ff1af141241fe7a10d277654ccee3d1ae5a920045671bc866bbc2fde1d7fd5bda6060527ff6806c397759dafe04362b30bb4cecee2f2c7ad27c5ca85c9a9ee5c0631b82fe6080526e6359ecffaf804508e2133f4cec6fb460a0527fc0af6115166ef142b6955aa1210eeb62ad00eb163ec6f4a136a0433055fe382b60c0526f06218d0729b50ed2c4bb39e9bdd0ef6460e0527fe76fa18f7bd8bcae67625fccaf814b691414b9ae8faab635f5f26a69a5bc39c1610100527f54aefece91198aef0f6aeff12c5bbeee9ac4b7f53e5b0b3df5d18a0b4d883b27610120526f0ea17c12bbe9b722a199f015cd765e30610140527f839f0cc89472d1544db8f1e5a7cdc6cb55a244294ce0927a8cba0bab057482b5610160526f0783e9c6f15f9a5545069dc92d2804e5610180527f49a0323eef45d535d31de25f11bfae9a2232c8ea963eed91a947ac24057774816101a0527fd6487c7c52f985b8fee0c9fe74e2d52126f0cc94bcf6d03a821ca3081e1694e56101c052608060006101e060006099600c7f4322102205f887a7635767bbf3bb40eff62346a24993b2dbd48340d613bd7c1af16005556000516006556020516007556040516008556060516009556e375c316e62646db2c8786a8b0c99f96000527f73c5d11ce498ea04903d444de4db21f1859032a2222b3a1398e989ff66038e1d6020526f02bb1e1e9aa44652a3d2f90cbadff6e26040527fdc4c58d923744044fe05eb40315de822e830e55f24b67b74c7e3fcbe85bc13846060526f169e9504cbdd505e5e011a09319dd5976080527f4c5efd999ccb14045319553f51ac1be0b40789940f1f7b060288d5ddc22f7b3f60a0526f11917a01e6cb9dfb309d424e92ad637260c0527fd7386bca15ce9cc8365ffd362adbc5126f52d6c3d3802bd05684ce68d5e344af60e0526f13cc36e82da85504b9394234ba7bc0ae610100527fd19a92d065480cc7d89463d00a86f3207b514b7e0c10b2ffd4ef7011e2752666610120526f0355c0f12e9ce247869f07f4b25e8ce5610140527fa16eb6a8fb9d1fd3bf2fd16518d276396888965053f66bf8557ca90f269cca90610160526f08ec0da76cc6750ccc460296d791ea40610180527f2284637750bea945d7ec2425afb94b3efbe4813a31be1ae9ca7ae586cdd744d26101a0526f098827f98c92126deea2d037fa4c14bf6101c0527fd26774d199c337ea4c1d1f975598147fd0f7adb7fb3e7c7769c84c44c02d1a4a6101e05261010060006102006000602c600d7fb04339addce3f2e532cf21af244ab062b26ecd058004437c40a04087afb86cb6f1600a55600051600b55602051600c55604051600d55606051600e55608051600f5560a05160105560c05160115560e0516012556f175f42faa24a4f636d8a463f7941f13c6000527f38b53dbe8af42d72270c1b541da8c8dac472f7ec9e9028bb34ffb68635c3567a6020526f0b60ea582837a3b6397096913eaedf266040527f85d30f905969403d9c6012f333d90bf3e8eba0a38a2e20d4775f27f6d5a7aee56060526f0e0730b9d76b6ff1207a7168f9609dcd6080527f5ce106c8a7242d425fe3b4a07db65789e0dbadcc841d04711be513d73fdbeae760a0526f133c63b3f316edf9dd452d522258b39260c0527f280dcfba6160d56f8b6d0a9bf26e733efa882535efac1f7c2c9c7d1806a33b1560e0527fa7e33087160b56e50927d53a940543fcca6ff669cb04d671cad0ee2988ab0bc8610100526e1ff24610aeaef59ecf547fe2708be7610120527f4537ce6a7678ba6967a76907697eb0c0b768f91beac5c6221e030226138b32b9610140526f0e3eba81018c856b86d941a40f26b0e1610160527f561a85f883f1dfa49f1ac2aab5925080417f16b289cccd87aa640a57c207ce61610180526f0874daaffb648d8ef8d8b1d65424d4376101a0527f802f3f60cc6b221a8454783135350b75ccce251abf1ab4e228c0958077318da16101c0526f052493beffc1839977c746f2286a8ae96101e0527f67ea09233649b696976e68f8e89c7faf312eca402b85ab9bb3a8875651457a87610200527f86e1c5c45c73587ab24a91612d97087d0cb17ca75aba181bb3933849dea20d6a6102205261010060006102406000600e7f5966d656a872091de7969b3c78cdc26b8fa86c98472016fee4b05524d116ace2fa60135560005160145560205160155560405160165560605160175560805160185560a05160195560c051601a5560e051601b556f10c60cab79bbd0a1ca7fee24970273266000527fc50134494b67160faa9d01d31c35f964f553dfc570139af84ce9f94aada1a56c6020526f0e7c6cb18834163ab4ec76c3fac369606040527f4f07721b1bdb858d2eaeb30eba516910f4ff3f809a9d602cb037623bed28d4be6060526f070e5834f155e738b226330f1e1f234d6080527fd2606e390b318f44d0ad923604b18ccd4cebe13edc7516af7be5f4fba545aa3560a0526f1394b964d3fe51eb280a1187c1a03f7960c0527f303da872bdbb83bbf0f52691d6632d205894bd069779fb6096cfc341c208233e60e0526f0b8d5e4b35400bf719728979a7a2e7d4610100527f5c6df065931a258ebbce660eaeb09db3501f7b18756d2dda21351deeede9a097610120526f0947daa09c50d095cc7adc0ed7b362c3610140527fdada2c430295e6c4e859180f93d88a833fe623ae81da2229ea24ff2c18396b056101605270011166b9f441df607c05545f4969139c6b610180527f29a50b35c35ef7369642e91ad7fbbb322fefe41aaff8903e7b3a68a86a3c527b6101a0526f107152bc657840de46821e92d790caa06101c0527fb268c147a995053433215c2d41d31440cdce54c6ce630113d1c8fe0e4aa1a1c16101e0526f024aa2b2f08f0a91260805272dc51051610200527fc6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb8610220526f13e02b6052719f607dacd3a088274f65610240527f596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e610260526f0ce5d527727d6e118cc9cdc6da2e351a610280527fadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b828016102a0526f0606c4a02ea734cc32acd2b02bc28b996102c0527fcb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be6102e052602060006103006000600f7f9535deee52630252dd81819eebd7046936470694754f1b4d92dab7b1e1b1bb11f4601c55600051601d556f175bca4cccc7ffe99528de9434a6ebc36000527ffcfb65055ce6f814efdc8dd4e229be05322f80d17f96ce7d8bd95a093f4d8f3c602052608060006040600060107ff92f99086b528dbda48f43e7514a2ad225b845afd0fd0ccb91c137a3c89b847ff4601e55600051601f556020516020556040516021556060516022556f08237a9d0ac1a6af0eb791d36cb179d96000527f2cbf3a95e85134eac54bf8e4b91f809740e3880368c63d0a85bbd86007f246d06020526f16ca20640460923b84fd15033ddd83ce6040527fbb8d51f9079bad29ee8b31b1f8a8f9cce34475bb87a852916f1d9000b1122167606052610100600060806000600060117f9daaee1428029ce3842e234b0a1727116151bb0f9a60c83187ad9e3413b92621f160235560005160245560205160255560405160265560605160275560805160285560a05160295560c051602a5560e051602b55\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x22986B2F9A2f5E7119F940898c35e7128A4Ce7E3\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x606160d1606b6053609a609a60e44534857912774a1016438a38fd47785815431c5f10056985333736916b885974f56c7cfe063c369c5b5c363e120b826d1b83a349787b193f1a8d717075746a577d005264f06a461a3ca242087c6bf412183f5014013ca2021a0a1b5b647f449f7b10a1577a6367fe5d135140143e9e529c9686387e57766f7d533c05355a1155125a8d66068170a300704807f140687c3e793e308b0a767b0714776a16791477423159053b31433e850a5c487f1766175b1d40183a81676800981d33427f366d3d5334163a39546f550699200973367d42677e31a11d33686738020233f58805530804a415324977333e077a364217f29c321e6e6119336c90317f081e460a8058183c9404742068346315638c3291fe8d443b56310b7cf0746c3e4a6fa17f77ffff3968377345f25762755f9f6a8e8ffa57367b747264156168609c5a1d307d7b736c475b887a7f1a6143116a83407a765216093ef402450100438b385c485c3e3b7683117139a13b545b806819168a3c1b5f0184031774a20065093ef1430170123b1d4416815646413872033302783306561c5e43534016531488937e533b54495331f31d1a11378e1b86630270166e680b13030b097d7a42128657306af54219009d5e11516ea2a13967550936866a9401160a3e1432427e48994a756a1a05f21a3a511b341e3354207a04a243788b8d3ff26609904a905737854442386d8c92f456468a567304076273663e986d020a6902193b4587650615a4123e367a7915156f3438429b6d133593597c597d0b33779d5150163449206e7602555c9c6341117580f1399d3973010148958117331373151493988ca3536f663b31151714600b8344459b5d085d3e5b02470553916a496e7b7815a1755c1211621414127b08975e463d47603a38927e8f63908c47705e12193e14a3626d34376b7df2743a695f83a0541b663b345682ff343e176b6c63485d653178330a67618870161966353d8314119878418e791781015e0070635a6f424191301145547c884543964434fa6c1c357b7f57713f8017a31c001e6d4935073238546a5e9c6939a35a6b9df4083c5e7a17113e30034605330b9d89790012406175709ef062758f7c3a3a4a4200647508328042687f865f883f4543421956083f9a39841b5ea3995b0662427a15571c0367847b813115fd147b0603876a0b743c4468a120459f3f546595304a815e527a5a5a1995fe1cf105350b659e01015b4806085e0b443a40f47e377b5b5508a36d6880fd7379a48d4539108c333f3b17a05cf25b34920186a38804f1196b3b1282708a58034746771130076c496c605654319c0a3259a03206807613759d3a524634716ea170627e6d8d93fa7635183337395f1960173932545e3187301a7654a4494993949c7665563573f07b\",\n      \"nonce\": \"0x0\",\n      \"storage\": {\n        \"0x0000000000000000000000000000000000000000000000000000000000000000\": \"0x0000000000000000000000000000000000000000000000000000000000000006\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000001\": \"0x0000000000000000000000000000000000000000000000000000000000000004\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000002\": \"0x0000000000000000000000000000000000000000000000000000000000000007\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000003\": \"0x0000000000000000000000000000000000000000000000000000000000000002\"\n      }\n    },\n    \"0x2837fE6BCdADEa40e14E73df3101847267659772\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x2bc9eb16f330b5d3764d1e508af3bcbb84786071e249bad6f91ac38553464bf4\",\n      \"storage\": {}\n    },\n    \"0x35F694E45962Ab9eD665971FdF51A45A3b109c62\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x2ac7d0629b3a39ccca4afd80b787edeccd0f9ceb5a83595c0f6a0e1cff0ebc7e\",\n      \"storage\": {}\n    },\n    \"0x3AcB272cf9665ba7113b07E79F0DB094DF7E3009\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0xd5b187a1488a0211288f3d420de324151455a6fa819850303f62bd25582b7cf6\",\n      \"storage\": {}\n    },\n    \"0x3Bd84e661C47a73eEe4137D185E4c31c194C343f\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x3d20e47e079e7b696d7f7f600054506001600055600060015560015450319675d11a4a3d869a257f60016000527f606000527f0255600260035560026004556000600555600154506004545060016020527f60066000526020527f7f55600354507f60026007557f977910ced1e5f2611cf16040527f0fd10cca0c0c2201606040527ff26020527f5cf3c0a7bfa76000527fa09027936060527f1fe16000527ffc2e808841d1cb6060527f1011f4fc5c6040527f991d19f4c0a46080527f0aa9d8cc6020527fc56caf7348595e1e256080527f3b6020527fec9e2b08606060a0527f527f121d91ed66a56b3990e7f55479fd6040527fed60a0527f2693f7eeb9302260c0527f1a445683aff26080527f6040527f37f16d2e0764318bda8a2060c0527f172f8a60e0527f6060527f26b7d98bb236ce7cd1f260a0527f90920f631a99cc0f60605260e052610100527f7f6040600060806000600360608052609b60a05360f460c0527f60a153606060610120527fa2610100527f53600860a353605560a453606060a553600060a653605160a760610140527fe0527f536060610120527f60a853600960a953605560aa53606060ab53602060610160527fac53605160ad5360610100610140527f5260606101205360606101215360ae61610180527f01225360536101235360606101245360610160527f0a610125536060610126536101a0527f60af61012753605361012853606061012953605561610180527f012a536060616101c0527f012b5360b061012c53605361012d53606061012e5360b161012f6101a0527f536101e0527f60606101305360006101315360f3610132537f295db4d10d457703fac4a58461610200527f01c0527f5763d8ad4f7fe25d383340a63bd007f1d0fac745610140527f18503e610220527fd067c38b6101e0527f3f15a2db16b993db65b52be1c3751292ab7f726556cc6f610240527f3db861016052610133610200527f60006000f0604060006040610140845afa60610260527f0b55600051600c55602051600d5561022052606061024053600e6102415360556102805260616102a05360026102a15360426102a25360536102a35360616102a45360026102a55360436102a65360606102a75360006102a85360f36102a9537fe3ee942ad25b25369be2c1688b613d779c81839be45594d5fdf66ebe02c5884d6102c0527fc1b8cb2dec124ef66d8514616b19425f8306a7c25ec7319547379c3e2f2a3e716102e0527f676bf6ab4f90e5802f11842312f6c3105ceadcd6e9ec7ff7104e40318837c13b610300527fdd597bf102dd9bacfcb320224a9cf7d69219ebf4ca46e02ffa66876002035be1610320527f101d91264e2f2011201db863853ce65852eded02898b6c2ac970dd990634d17b610340527fe466b225771c74493685be8ca2589a6fc0874cf8930b5ff07c738b703aae0a37610360527fcb08dfbd742c633520a90d3202b758a4cb65f2980cba0d6c0cb75b9723a2cfea610380527fa490bff0e3a32a3bdb0e0858f6d25d043b8d79a6b329c8fd02df2804e4b692e06103a0527f968ce172991a8531da24600abb8747b66d8af0db1cdd002c528eb0354ffdfc166103c0527f37e4358b26718085b990b595281654dfc84ff24aaa257a641bc8be1422fe301c6103e0526102aa60006000f0604060006101406102c0845af4600f55600051601055602051601155601255\",\n      \"nonce\": \"0x0\",\n      \"storage\": {\n        \"0x0000000000000000000000000000000000000000000000000000000000000013\": \"0x0000000000000000000000000000000000000000000000000000000000000009\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000014\": \"0x0000000000000000000000000000000000000000000000000000000000000011\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000015\": \"0x0000000000000000000000000000000000000000000000000000000000000007\"\n      }\n    },\n    \"0x538A8474EeaB43d5a960164c554A20400151D479\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7fb8bc210a6b2898ba233c41ca9920618eea79fc8a5ace79aadeab519a3eb9189d6000527f7bd79287ffc0ffeacb8b778efd44ad58fc6a6488b608dba69d1eee3d4a9799226020527fd4d0115c7dd08822f919c6315ae2984950ef08a85b6a35418de93190b37753b26040527f656124ca0102959f7bd6da4d2d951456a260354d75b4e5c40557336af6dedd656060527f5e7c42f565141777662f033b988197a41247e27f98a46e5f89718064f2c028d76080527f2200c204b98c10e05e544c20f2ac26512806695a083f9c5363e9aaf60521fe5f60a0527fa59326cbfc0ef56563909e19e3ff88d59af8aa304da4daa68122ddfb4356549960c0527f838059777f4f4b14043f7d2938256813a4f66317e40697d62c1060f5476e513260e0527f4c4f97ec8ecbfa1c0c8d31fc2f3ece52614034e18c9c914872f0cc37c6b865fd6101005260406000610120600060fe60077f8828d27885159dda6056c70a602676114dc2ebbaa89240614ab73a567597ccd8f2600055600051600155602051600255\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x641602bAD4A323C49629d45338d79A2bb984A3fb\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x6102a051606060e0fd\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x66bBEf07B980c8b5de6F3DB0d5CA7A0389C7f386\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x6888bf43c6b0a7bd72d3d4f360efc2fcf781b746e6de54a559882e71c4ac43a2\",\n      \"storage\": {}\n    },\n    \"0x7458F9b8B5ee360A32b0b0Fe648C996C68AE8190\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x600560005536841b5f80ee6fee60206000fd\",\n      \"nonce\": \"0x0\",\n      \"storage\": {\n        \"0x0000000000000000000000000000000000000000000000000000000000000001\": \"0x0000000000000000000000000000000000000000000000000000000000000009\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000002\": \"0x0000000000000000000000000000000000000000000000000000000000000012\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000003\": \"0x0000000000000000000000000000000000000000000000000000000000000011\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000004\": \"0x0000000000000000000000000000000000000000000000000000000000000006\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000005\": \"0x0000000000000000000000000000000000000000000000000000000000000009\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000006\": \"0x0000000000000000000000000000000000000000000000000000000000000011\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000007\": \"0x0000000000000000000000000000000000000000000000000000000000000011\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000008\": \"0x0000000000000000000000000000000000000000000000000000000000000005\"\n      }\n    },\n    \"0x766C0844EBC3c4ef4ddb86260a4D3516cCa03A10\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7d0819c8cc03a05cd0bb060c4679208c3a385feac991407fe30f137f7abedc6000527ffa5f14bbc34be0fb36e1b8577b662d2b5528b6152cfff1e62805a23d072b964c6020527f4f4b6af3709c8fa80e946e07e0e869608fb689b23498972d172a770d2afa11b96040527ff723c9c9e48eddc4e1fcee8bb6b5df3e184634701681fe9a1fd71f1fbf15bdb26060527f2920d94fa1b64095d1ea56ef0447587309ca666fffb9cdb23ebe6f71235965046080527fa3a2f686f7eaa89c2611a8c33be8bbe053a8db8ffc762b7f3df68dd98a84d5c960a052609c60c053602260c15360ab60c25360e260c353601560c453605960c553608260c653602e60c753607260c853605560c953607460ca5360c560cb53603960cc5360dd60cd53603f60ce53607360cf53600260d05360bc60d15360c260d253600660d353600160d4536040600060d560007ff34c1f709738770ff7d63376077de9f459c1ac7cb882e82c5b41a39530ddb14960097f7742ed7e48cde6954062a5df6b187eb254afb4f65652c8529d1cbc9318db63b7f1600055600051600155602051600255\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x87f2957b7228EC6a0dd4F2fCc669BD2ED2B14E11\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0xbc501cdb0096cc68817e5b2aa2eb7e97fcf45a56dbd22b6e2de2b234b51f12d5\",\n      \"storage\": {}\n    },\n    \"0x9529cc6891Fbd5aBFABE0AE6c79D30F0CCAe848F\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7f80000000000000000000000000000000000000000000000000000000000000006380000000077d7676767676760000000000760000000000000056000000000000000000006801000000000000000090051c686d5adef08547abf7eb7f800000000000000000000000000000000000000000000000000000000000000218026d01000000000000000000000000006fdac7fff9ffd9e132262626262626260018901d6000557d7676767676760000000000760000000000000056000000000000000000007176767676767600000000007600000076000090171960076f8000000000000000000000000000000007046001557cc9700000000000000000023f00c00014ff000000000000000022300805712000110000000d0a300e750a000000090a0a901d762900760076761e000200767600000000767676760000007f7effffff80000000000000000000000000020000440000000000000000000001638000000190096f800000000000000100000000000000006b010000000000000000000000778200000000000000fe000004000000ffff000000fffff70009901590156002550267ffffffffffffffff7702ffffffffffffffffffffffffffffffffff20000000000090146003557bc9700000000000000000023f00c00014ff002c0000000000002231087f8200000000000000000000000000000000000000000000000000000000000000901d600455671fffffffffffffff7feeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee901390027cc9700000000000000000023f00c00014ff00000000000000002230080567b368d219438b7f3f901890167cc9700000000000000000023f00c00014ff0000000000000000223008056b010000000000000000000000901c177f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7d0c76f4afb041407a8ea478d65024f5c3dfe1db1a1bb10c5ea8bec314ccf9651ce97e1ab91a0960055576fffff716b61616160b0b0b2b0b230b000008010d0a2b007f7effffff8000000000000000000000000000000000000000d9000000000000011290187a01090000000000000000000000000000000000000000000000000076013590cab83b779e708b533b0eef3561483ddeefc841f5079015901b6006557f40000000fd000000db0000000000000000000000000000000000000000000001600790037feeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1c901c6007557f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd677fffffffffffffff1315717676767676760000000000760000007600007bc9700000000000000000023f00c00014ff002c0000000000002231081d9004196b0100000000000000000000007ee8e8e8e2000100000009ea02000000000000ff3ffffff800000010002200009007046c100000000000000000000000006c1000000000000000000000000090141a6008556b1000000000000000000000007806400aff20ff00200004e7fd1eff08ffca0afd1eff08ffca0a017f62d8fffffffffffffffffffffffffffffc18000000000000000000ca00000001712000110000000d0a300e750a000000090a0a0390067f7effffff8000000000000000000000000000000000000000d9000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff900b1460095577800000000000000080000000000000008000000000000000610111900260006000f3\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x97511db90b0e141ea4cb42e3b73fe3C24c3D5676\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0xe0f8e02e171a2ef7eae37783ecfa6acb82cbacaaff229a4a403134ff420cb4c4\",\n      \"storage\": {}\n    },\n    \"0x9E607bB0Bae19b8bC75638fd1aB98594b36ba46d\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7f24f22a99128cbb4069321393f9093db47175e6518c6edab11963f47871842cfa6000527fa61ad2bf4623a058055dace5152373ce44495781636acbe3ade530c5bfa9e5af6020527f7702525974eabd05751ab013a42162794531ce19b964f523964b3817d73176ff6040527f5e6fe05bbf97827bb85dcad5765d014fc49a1048dd49a38c5c129d14cceb5e5e6060527fbb34b9ba02153c30be036a074e2ee9de7c4095e3467085526207f898f43c1a3e6080526020600060a060006000610100611c35f26000556000516001557f0f0ea7c172f5a60807b88890ceef3613666c7bc8b46ab8c6ba7f9d44c7c8d9c56000527fffffffff000000010000000000000000000000010000000000000000000000006020527fffffffff000000010000000000000000000000010000000000000000000000006040527f895720069413cf1ab863112e6e45727bb5f1c2c16cf0cba09c5d3ab527bc9f5a6060527f8aaa289b7cf77196387ce801aea3bd400dbd39fe82bbcf55a0b1539de66c51336080526020600060a060006001610100611a42f26002556000516003557f73d209ac0034eeb9d245ee28c3be7b453ba868e124cf417fa4c2a5edbc1bad0c6000527f7d615e95d2679a60eb6a42bb6936ed3e4b9c3af745c179c9cdcb397a9e0eddcb6020527f79a0d10de0e554431ff1b7a031488a932a16e97adb6dff5b846029ff4bdaf9c86040527fcf3b86e95a2b957d5fafe6d42538c850e5b289c4c840927b96bbaaa7832574a46060527f9799e25d757bf3b4b91a2031d6eaf3071f5b6740c4b286e66d35284f2bcf25a36080526020600060a0600061010061192efa6004556000516005557fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6000527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6020527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6040527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6060527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6080526020600060a06000610100611bd4f46006556000516007557fe80484665b6066eb796e789f98f98024c94a8e878a5620a2a923de0de7dd8f8d6000527fc33f0ec09eead991e48c2643432e991bf54fc9d6afb1df86b056a50d440d99576020527f7bc425d87efee0e6a7c0c00568b9422672819241248357dcaa9f50b6905282976040527f98dffe076ad2841ba6059c56b4298f096d2b86fe82e14db2537577accc27e6146060527f5617e88f40eb2d34db4f13618b14b70caf308e786bb8366754c6faa2dabd52406080526020600060a060006001610100611c6af16008556000516009557fba785b717818648aee59b3103ec60111f90bac454a0ddb0fc5aaa0f707b28da26000527fd5fbf36a78b82aa814da906c18a3e1d53105b6c1ad663321f3f37076c67d0a366020527f4773528ced0406f3fe44dc0143bd6b8d6e5064d0883a90abe3d72910c69ec1d06040527f042543aa4843fce3150c493370a49b2d0da36d8f7cc87adf82a646dc04b6133c6060527f698f88f6a07cfcae3dca22cae162e62c3207bc1c03864eeaf0c90247292c24506080526020600060a060006001610100611bd1f2600a55600051600b55600060005260006020526000604052600060605260006080526020600060a06000610100611a31fa600c55600051600d557fdc7a6a7dbd8a42cf97100cbfb5343286879ea772d7f0e486bff85bac63a41cb56000527e020000000000000001002000000000000000000000000000000002000000006020527e020000000000000001002000000000000000000000000000000002000000006040526d80400000004000000002000000006060526d80400000004000000002000000006080526020600060a0600061010061190ef4600e55600051600f557fb3190ee410789186a46f6acca8928b7987838124aab0cf04395162654b379ed56000527f4a848ae1352d38ce207566762aefe8bbea9bf9667ade78e72f01eca11387fba06020527fb16d9714b0ddd01921237b52ad1e735062dce5fe414f89be9098276b147320696040527f3860ec3d8c9efd14d66eb591d97c61531183a3be527c7c606ff73bf0b19faaa76060527f4984d660600f9a521431e3a2ff3009dfabaa2358e5bee9d3fc55133b0eaf58ab6080526020600060a060006001610100611bb6f16010556000516011557ffea57daec4e67954a917ca0ca921a7d64b7a7580804f8eabdfbbbc9e5db1eaea6000527f6c10fba5e186af4aea14587dc5041422cbc7c9f58cfb2468e8af8814efd6a65c6020527ff819e8802e912c907cf2812dd18523a351685e22ea1b25dbb7156d673ecc5dba6040527f3e29a7314665829e5e743c8d6823e1d1311a03704729f2082b5f16d38a19f5916060527ff1996c6f05e983b4441ecb4e3c6615c0fd538e03b4911e9169bd3ee3ba1805356080526020600060a060006101006119a4fa6012556000516013557ffa0417bc6bb9511e1eaede67a3f0cd0c23526c4fa155ae1f161365cbe7a7c5546000527f5082ad3a8e669637f9c253d0fc6154de372e5724288c6c6ba0db8b1a6ae06a8a6020527f3d7d7e02a4883006d8fde8284540b369de3dc7a908360c9ac5379430f68d3d1e6040527fb30536063c756ed27e2a7fbabc35a07eb30a617e50d1d6e92242ecaafe5de8146060527f7df7b8c33652dc5761a6faa091b947de9c364989a3388badc71b647fcb68da306080526020600060a060006000610100611929f26014556000516015557fc8fbd3a0d4db90baf77610bc0a31e949fe9356e526a918b2f82bb1f6ce61089f6000527fe902d0b4dd1630eb6e7f693e2f562bb3838e042ca9a40a825d0fc7eb5d095c6c6020527fc40851aa6c579e19e95fc3701838e91160c980e1e2bf27c4e54da3459d99dc9b6040527f5f39da4826bdfee74335689bd009e01c2605433ed6d960a1e019ad1048a85cfa6060527f1520e3d42f5e6d3922fec41e56dc4bafd302ac4c21b4c81e8afaa5de4514ed5d6080526020600060a060006001610100611b67f16016556000516017557f57e1ed957a14c920e7fb86e3355392c5b1e7abb074f8794028b65667f3776bcc6000527f72484872ce77a8fc6e2f3b7ac4ffee8ae7445ef5ed95a78f9215843048b0e8516020527f14f85bb2ce9c577d1ec44cc1fbc698b509f8cb88cf21507be3b317ba7291e44f6040527f50d89afab90ece340df275c0ddbf7f44551c0e872e962fa67727c07b904da71d6060527f5df66416387efc11bbb44a582e139ebbb7a845355ebcca8a51ffdc7c09f1d5386080526020600060a060006101006119cffa6018556000516019557f1589a7c2fb3c896ceded91944be7fddd82c9d2ea37a4caca5661d7c2cbef7f876000527f033f2a9f387a627e26801569d57fc81547cc9434efe65707ae704ac40dacdb9c6020527fe1acaa5075ab21193805eb461a0d3aa9ecf269b5575562178705dd9dffe5d9366040527fdbfc6b49c65ed133eabc6deac7c816dd9d8700d2b013e63c3c61d0b2bfbde4c66060527f1ce4cd3a3b18f7c5dc690b84a9d838cbcd78392bfc23a61e360bb09435591bb26080526020600060a06000610100611b5bfa601a55600051601b557f476936d377e6238e1e6695e302f97be55b9d7a2a3f5795413e6b0cfe7e4b9b0d6000527f3490fd4cb7e398858c30422ec621f0f5f9b4a0a1e0f59cef74e89dacd93bc67a6020527fc7cd4f1f41ebb14d6a5edd9c48d1a4ac8e9faf07e0959bb668374656a8df03626040527f6a1b0f2a71e0c54661665393aee5413d3711df2ed7c11063a47e10750b0843106060527fe389a29310062d1b2a1cee6aaa3d52c534103f82c91996a3e5302dedc5dcbfb26080526020600060a060006101006119d9fa601c55600051601d557f81909aa98db980581d2313e9537b40d40fd5bc2283327173c50d9f585890cdb76000527f41df2169692501f171a7025053b6b3394e3b7750ef97776d085642ef689bf2fb6020527f7049ab6516a6c677ab10becb220399208c891f42f4c12637fe12c5f8448b77be6040527f68147c0912a54642d919f3c546463633d4683b604d2511ec9d142721555965176060527fae65a35ea73220c5e6642676c8491dcdd2d7306e1018c3a139d9efa9eedc55736080526020600060a060006001610100611c89f1601e55600051601f557f38a54a3b9d8f4b3778c2786c9d5b46881ef409236eac1eae02d0a7af3fb5f67c6000527fddf6765e882ab5bc19cba477f16eb56cf1c6f07bf716e3fa80ee4d7cbc3124ec6020527f2b43c572d2373b0f41fbd54d4257495b9a4c6ea0868757558224fd0119f7e1fd6040527f99f5e2f02cfe6af231a6b8174da83b100f76d3b806418fbcc1bc0c773dda61846060527f02ad258ba26f93ba475b3703faa3519fa8c925d25aecba4dcf98e775ff2042446080526020600060a06000610100611c03f46020556000516021557f1d9b9559392a4601e49eaf3d2c6f2708d59befbcd026250f87f62dcd0d99c97c6000527f7772672be8d32fdaf0489d79b2f14ca620605f1861f5ab05efaf9db867cc6ccc6020527fdc414270ffb5cf3cd7d0bf86558a2276f9144dd39178538d87f98c46fca8d67c6040527f2c1da6ca558e5e84fe8a5a6ab830b35d99697af70da38e1f71cadab5d8b82be56060527fc9a8ed8582c16b0ea8762a83768f0bb9c25967717f277505025abd6d719200b26080526020600060a06000600161010061193af16022556000516023557fa266ef6b4f35ffff1ef9dadfa0c17bf9f62fe328ab99aaf9205f58883ac6ad046000527f63bb80afe81c5bde0d2bc0311fb485ad8287c0a32376d71382537518ff801aad6020527f662dd6de566229f71084d4c22ef95abec502f28e55697b08cccccf61f67d25466040527fa70c99d9c9e70aa825b4b3a1856bcb069a84df0abd2aca3d3652e5583e9a29026060527ff5e7061cd7157b7cf70218942f152a98995bb89ae95948ad7fd26472badba80b6080526020600060a06000610100611bc3f46024556000516025557f0f0ea7c172f5a60807b88890ceef3613666c7bc8b46ab8c6ba7f9d44c7c8d9c56000527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6020527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040527f08cfb1ec9f681f021a9a321e1041afa50858597c6e86340ecd0fb90f27f61a4e6060527ffebba51fc691c0be204421998b1c53bf8d3165645147e40c5620574faeec2f8a6080526020600060a06000610100611cb8f4602655600051602755600060005260006020526000604052600060605260006080526020600060a060006000610100611a4bf26028556000516029557fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6000527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6020527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6040527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6060527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6080526020600060a060006000610100611c3cf2602a55600051602b557fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6000527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6020527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6040527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6060527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6080526020600060a060006000610100611a57f2602c55600051602d557fef02d493f62b3af6a7bfacaf888c58ae1b41d3e62bd483459f1682842ade1c726000527bffffffff00000000000000004319055258e8617b0c46353d039cdaaf6020527bffffffff00000000000000004319055258e8617b0c46353d039cdaaf6040527f705161ba0fb15c41c92b6c48b38f1fd5e12b90733dd1c11ec0a208ff086c7b506060527f1020c461213478ad81d5eecfa1094cabc38bdf59de6af3bef80fab3ac4b08db56080526020600060a060006000610100611ac3f1602e55600051602f557f371ce4e482f494f3938fd93de481a0d4820065968e4826d6404d74e3566cf1996000527f5ce4d043ee558c86a1de059c01cd16158fc549744b61e4182f6a36beece695506020527f52d031db960e606eae783e2b27ad53cb7b5d873074740c0842394604c8abdffd6040527f0dc01fd75abb6644da18665c8c698aac22b63f217dc5491fc3cb2f627b6012706060527fdbc4fa2816249ec4667cbaba1264fde39a1107ad4afe4591a9ebdd0db08257496080526020600060a06000610100611940fa6030556000516031557faabb230926d8306560b7c62f8832294e1c0c5d209a4659fd5e5ca6333f08f3446000527f7d0690e61f42b511937ecb62af7a531b52fcc1e07615ce2a46f4469fbd68cdeb6020527f2e790ce409877cbe56126873b63dd08122b74d2a650a0d5d8bb8788eb4c409596040527fd165b6bca6885a2cbcc2ee024f79f009353b6e194e5fb7e507ea0995ac2b6f316060527fc2c0f5098f1d1250c4faafd7634d99f84032fc1ca82cadc510e33bebe31e03b86080526020600060a060006000610100611a44f26032556000516033557fdc7a6a7dbd8a42cf97100cbfb5343286879ea772d7f0e486bff85bac63a41cb56000527fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325506020527fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325506040527fffffffff00000001000000000000000000000000fffffffffffffffffffffffe6060527fffffffff00000001000000000000000000000000fffffffffffffffffffffffe6080526020600060a060006000610100611a6bf26034556000516035557f809256c854c346a04981f0a94fcaa3ae1b8b71512532ea1cc13b0d21d51dad5c6000527f65667e28754d2e803604c0d975bfd9a6d472f87e70c9c0be5128a2c4da97b32e6020527f89c17692aa4e75158d30ad930bcfbac8cc9ec0a049b937370153dc532cc54e646040527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6060527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6080526020600060a060006000610100611a63f2603655600051603755600060005260006020526000604052600060605260006080526020600060a0600060006101006119d6f26038556000516039557fdc7a6a7dbd8a42cf97100cbfb5343286879ea772d7f0e486bff85bac63a41cb56000527ffbffffffffffffffffffffffffffbffffffffffffffff7ffffffffffffffffff6020527ffbffffffffffffffffffffffffffbffffffffffffffff7ffffffffffffffffff6040527fad576651d42159e575055dbf913fd5300fe5fe05ab7479d2c303c3941b8bb8e66060527f6c4ea7e65e464d36dce6615b4ea9ed764115aaf547ebd9a74f1b95b298de24e56080526020600060a06000610100611c7bf4603a55600051603b557fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6000527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6020527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6040527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6060527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6080526020600060a060006000610100611cc0f2603c55600051603d557fef02d493f62b3af6a7bfacaf888c58ae1b41d3e62bd483459f1682842ade1c726000527fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325506020527fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325506040527f918074fe4165eb12758053d8eba7ac089d81b90c36299d6ab39b3b707a5e0fcf6060527f6d540c78a7d397143840c1f9c22dfd833eb6f7770adbff9950c607f2d0f312746080526020600060a06000610100611ad4fa603e55600051603f557fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6000527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6020527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6040527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6060527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6080526020600060a060006001610100611afcf16040556000516041557f5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2605d6000526003602052600660405260036060527f5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2605e6080526020600060a06000610100611a57f46042556000516043557fc9bbf15b2b036c73bfc676544843010312bdb57034b38abc9867e5505717005e6000527f7e3ec609f4d61528ca15971fee344ba38c878bec7d8a75d820e65a931bde81676020527f47af354cd5d49248c895a78e1cef37058971d0b2793a0940054f2630347799c96040527f15bef465d01428155949805c60b1bf0d1e09f2fdfda7bc0d288f29d89bb179c86060527f5da47bf878cffb792df65ae4a2f58f165296f4ea9b955a795d951493db6c85906080526020600060a060006001610100611beaf16044556000516045557fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6000527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6020527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6040527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6060527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6080526020600060a06000610100611b00fa6046556000516047557f38bf718bdef500d5c9ae22839f7c55c17c14a0849333ac36f652c15136d91db16000527f74db2fe4a60c76266c1cfd63b78e408d94162304ca9cf24eb33d436d69e58ca26020527f844aa5b7c8ca635b15fc539d99a61639d2f75e1b100d0e0d45515b71dba25a9f6040527f7ee37e25805f4df98db6a971f1c4de08fc34a8352adefdab0a6424fa84aa60e86060527fb048966cdd28e69e7b2adb1ec3503b307ae6e69efcb14ae0d6ff186f1caf0aa16080526020600060a06000610100611c78f46048556000516049557f4f164b8627de3ff73865693b11f9d0fd85ea984f8edea3630faf222b31351c226000527f80d9020d250b0fbdf449a90bbfe680601d3a0cf7ba1e0817db7a5613813895886020527fba4c2114e9e626617daced22efa372833c2621fe45cb90829145083e6238e8686040527f9e09b68f458677a0b740474cd2f51f978f48aa23ecbd434325a0049fa48b267a6060527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6080526020600060a06000610100611ad5fa604a55600051604b557fe28e01f7ab4d68377a0c8dd04a71e554936cebfa0b1a221c7f65dda575a430f06000527f18598e385d456428d422835ad545c5639c3c26bda4eefcdcca37aed404c3a4d86020527fcae8afc37833bddbd450cba85f70457da0041ff1414a2452244eea56e6c423f06040527f3758338a77ce7169edeacc42f470480579d9ce05cfeaa2a589b40d8595bfa6dc6060527f9c4763bc6f8166ee9161c90e1ca11dcdbe9d9c3f5e7cdc67ffcb671e1464348c6080526020600060a060006000610100611a7bf1604c55600051604d557f5c5752487c7f609e4c694a8255725847fb6320c4886f2bd0986648b2594b8ad46000527f5e7a594934a521e064fe3695ece89bd6dacc48781b32137710802aa2047de5d96020527f94cf7f556a6634100e5d8871937fb9ce3a44975bd68a3ad9e04b4aa862fb07196040527ffb69bab7c49313344e670f4a2dd309cbdba320299e12ab41dfa359bcf1cdbb4f6060527f03fe4c023ad93ba440a72195a294a6fb506997e23e40c3caedcdff14ba0860386080526020600060a060006001610100611ac6f2604e55600051604f55\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xBa0E31A0E75AC9a4cac4c57d6c7EF2a10e87D4e6\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7f296d88c89256e71631f0d1524276ff9d231ab3be039daf0ea05a4356743dd4ce6000527f0b1e8bb4741355b5b69ef8b1da4df3a3c725a14e058d99ea50bcf0e10ebda84f6020527f039bbbba49263eb8698845477f0ccb82d126e1ae3f62d12ea6facbb93b91c5726040527ee36156f58424254b022769a1970fd4e554fc49545fa15b7470f6b45e70db1d6060526040600060806000605c60067fe9659779482f376fc6349ac9b9caf0bd66415accf29f680c0441b10e2180b935f2600055600051600155602051600255\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xD74CFe323387aE2fd070CD046173026716D8D649\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7f0131c9766fb600722dc74563bd8ba29a43be4c5a49060e5daaebf7699b4aac476000527f3dcee1a37ddc037617ff8ea6061586a9d600e3ae87fe6b6d42298e3edda1c74d6020527f67e97fc31e12647905e772d643a356899814c796bc17dbbbaff2346b0b9b334c6040527f885d73b14042129e020ba96e83afea37742e1189efa8222db0271a16b639b5996060527f80d83e6166169d6575d6887b1a9d8578930aa2e4b5198bf1aa7a2d8981e075a36080527fff922a7c650f764f9114f76aa4879bb40c846a782e3511b782942c6a13170efe60a0526040600060c06000604a600a7f39f3690c995440fa1457ede1998ed7b63fd2bc2ab9fcd69aeb9b82d940143d45f2600055600051600155602051600255\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xDa78807c1C4567c23EB713E9fbB3b1508C1284ce\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601c6020527f05481a72441b413311d9e023471501901968ff54670bac9177e34b92768d60236040527f506d26538692fcacdf676c86516565c93c421f674012822428e7b92e1d7608d56060526020600060806000600160016164b5f16000556000516001557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601c6020527f1948af26618c1372d65b161c9ce762997b9ebf6739db422b974f29d299b9a3c86040527f5247bfcc87a7ebeb877fc32269be5d0c049d7b91dcc7f89f8ef30bc8010c366260605260206000608060006000600161e8b3f16002556000516003557f79cdac2dc9e317f476c790aebb192b2958148dc5f37d7bc9f96e69a58378243e6000527fd16ad000a3ba445815dd1bb1cefbf56c0ccb0eb66645faddff179670549b621b60205260006040527f745814686ba9a68fe557eb7604922746db8d8ec7577b71208c5470e7146ef3396060526020600060806000600161f980fa6004556000516005557f47fc344cfa7c6a8aac5db665145c55f2a0d14b2fb0e4aa79b6f5557781f504116000527fb0524ed83e0c191094263d88dbb6179a006fa408eead78668a895f953e424d1c6020527fb24e73007edb60ee591c13a4287edc95ae58ad0d0f1622cea7e99e2771ccc4986040527fffff06bf638525444daf275c7c1681da80cae3176d6a9576752929f49a4b26ea606052602060006080600060006001620130d4f26006556000516007557fec5df8eb6e576fcbc7d4d8247f95f349431beb2fab76e18e79c23d6e267c8fe36000527f43ce1e70b5fb2b68d12e2619861f204fe4c6c294e64fe0a01823e6b8eafc06316020527feb97b042568e35acb0174dc8b90faf9e286ebd5d3a6ac97113dad1d21bc254a16040527f500b416077bc121d7373eabf41ed2d1dfec2dfebfa3cb6543b52765cf164994b606052602060006080600060006001616ea6f26008556000516009557fd2af5d12a95280894d384ec024ff17dced446e7a51d9b64ad34ac76f811e17086000527f53d14f9e1df39e0bcab0dc8485ea2fc899205859e9298af772f8a6667ce0a51b6020527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040527fb21c9e4123e6bfd748b695714b221218a961617cf03f2095e6b2f1a36c47a7b960605260206000608060006001600161cf23f2600a55600051600b556000600052601b602052600160405260016060526020600060806000600161ccf0fa600c55600051600d5560006000526000602052600060405260006060526020600060806000600161a413fa600e55600051600f557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601c6020527f4e6da5d59214b04b4a4fb5069920a5ddbb2635283449a2bc8f9eb069cb02df706040527f2500a4266329b135c80f8510e259e9ff3c1fd0404b97a0323ab1ed89b5b6ff846060526020600060806000600060016178a2f26010556000516011557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601b6020527f8340a4510c346990bc1f00b0200459dbd2f314235adfba65a5a464737edfc7296040527f328cb0a5547ad2273b55921846b72ca8b2523a34cce1cc0c9086db5fc4ee6b2b60605260206000608060006000600161f086f16012556000516013557fbf1cab3d0133c7ff1421bfae14ff400136b060a437544994e461436ce817b9ce6000527fc5c8b84ef06d2d65f6b076b7ad3f13e69a571b276542f6dd377d8713cdb5b81c6020527f70f8a8bafe48a680de156ac5df8241caaea7a27fb453ae041ec593922b84191b6040527fffff0340eb7e0dfee5b1eb7ff3b2aadd6ff3e76e0ba5fe94301736ad0dd5e2cf6060526020600060806000600161162af46014556000516015557eb4d602e526f3e38e75e652f4794a75ca60a643972d06a7d3ea46f8930edfc06000527f3250cbefada8ffebf4875231d6b24a45233e7b258ea836346578bb30aaf153366020527fcde890d5c10086ef523115dd117fdd54bdff7d83842fa8cc5abe5d1aea3f71786040527f77cce59f97949c3337b8d05ce5e994eac3bf9bb0d7d608a1f6567b83f9693a5960605260206000608060006001600162018676f16016556000516017557f1abfd23db143fbf30c2a330c89c999d3ac92ed3b0f951f2d1fedf136039f4f156000527f7fe1c1baced0905ef34741728c5b5df9193fc357db7b7bb9c13d27b5e4435d1b6020527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040527fc02d8d05f4336334605ea09251078997838f9e8004d71041a2e8dcf2d10e402060605260206000608060006000600161364df16018556000516019557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601b6020527f0893e72dba7736bd67ab257bbe123fc06c51beb7d5aecb3631350329826596796040527f39392105de20bb1b0cb2ae0782ec9d6c780f699b978d4a91da2b4f93fe8c75f160605260206000608060006000600161e389f1601a55600051601b557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601c6020527fb833dddbccefb4daff2ca2a4fcaf03352bca480798cb44e76725905d4cbf631a6040527f25b3809abaf1bb899b5acb5dbc84bdda737616ea1a923f487597f717bf370a6d6060526020600060806000600060016110fdf2601c55600051601d557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601c6020527f2efc8a47cd06df64fae4cb6b1d379210fc5a355e5f1eb1ba3d8797d44634995e6040527f20f1f25732c41f47db7af98fa4791d3fff9e49fb3da22f5c3c8f53601852db3960605260206000608060006000600161cf50f2601e55600051601f557fad8ad8904b42bee56ed2262bbe546f80c26c1c6c74b58637561934703107ba586000527f51ae5344d1b8b53533cb4cc722b20607ae0606e0cbcdba8146cc4bfe5800c91b60205260006040527ffc6356cb022ccb259b5a91c78478968c553a2d86e90867ef5cbaa6d57beb13f86060526020600060806000600161d7d1fa6020556000516021557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601b6020527fbb4a74ef35898ff872ed1bd09c5d2a25414f2678b0c841f923f012f07e6f56936040527f60c14815f38abdff046136207b551435e62faf2066ac61a7074c11669b2991dc6060526020600060806000600161dd9dfa6022556000516023557fb651d6d571f7000ec99082187b9206672cbbeeab1b7587d77c1a53be74b603de6000527f38dec10dce0dc826e580b03a7c53b12ae62131ad4ffb44d6375f4c5a6327dee16020527f97dc665ed5a9725aa3e90ca16b7979b1751ca070534574ed035713d6e1da48406040527fdf5ef8d5bff2b3738b1e617d8e9862ff6c57cb95379243f58c079db83557d648606052602060006080600060006001619a09f26024556000516025557ff15606ec5436a07d10e7992d466e0c33dab03fe98276dcf3c57489c227e184396000527fd100c67b168a79443d9777124f556c8664bb0e525c64a2cb8a01f958295f871b6020527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040527fa36dbfffbf8eb96234bc9a22c8ae309618f769f422769267f086cd7dbb5779cb6060526020600060806000600161895bf46026556000516027556000600052601b602052600160405260016060526020600060806000600161e276fa60285560005160295560006000526000602052600060405260006060526020600060806000600161268df4602a55600051602b557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601b6020527f5fd135840c6524ee72ed6252a676bb5e0a0f7b8ba4819a449f2763cf257c7fb96040527f2c0c965e6c195010dd71ea433ee350d39257b120b9e6753be7bf6acb8a95a32160605260206000608060006001600161da5df2602c55600051602d557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601c6020527f808254cd9c8636fa7c6ebb01e4c53dac6216238b5e6adfc44a764930acfc3c036040527f1c7c06b1317ca8ea1aab730112c0caa17eed03ddb3154044924b2af728696b416060526020600060806000600161c598f4602e55600051602f557efebc31529d174d3f62ddd8f7d3f28b512398b67e78161c745910eedc58fd136000527f9d8ccdfadce68c55781a69a6de9b9c7365b7af5bd23e9d7bf4221b3a95b6391c6020527fbba630c1b560bc6696a101e85f80c2dc00748170fefd572e4e5eb719b186eb5b6040527fffffbb1be56746c953840183bbb009d6a2dd218758eedb043b7e06922d10e9b660605260206000608060006001600162018420f1603055600051603155\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xE2f4CF89C9B94178B5725B8b1fd9a7F40c4a674C\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x7f80000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb6b01000000000000000000000009760100000000ffffffffffffffff0000000000002e0000007ee8e8e8e2000100000009ea02000000000000ff3ffffff800000010002280ff070763800000016fdac7fff9ffd9e13226262626262626001d760fffc000000000000767676240000000000002b05760477ffffff716b61616160b0b0b2b0b0b0becf4bef50a0df4f48b090b2b0bc60a0a007806400aff20ff00200004e7fd1eff08ffca0afd1eff08ffca0a9008900a90046051557f12cbafcee8f60f9f3fa308c90fde8d298772ffea667aa6bc109d5c661e7929a5677fffffffffffffff90026c01000000000000000000000000774b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b0a0a1a1b1968066aa0a5319bcf5cb46f8000000000000000000000000000000118017f7effffff8000000000000000000000000000000000000000d90000000000000177800000000000000080000000000000008000000000000000901c6052557e40000000fd000000db0000000000000000000040000000fd000000db000001760100000000ffffffffffffffff0000000000002e0000000b6c100000000000000000000000007ee8e8e8e2000100000009ea02000000000000ff3ffffff800000010002200007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0915171a76fffff716b61616160b0b0b2b0b230b000008010d0a2b0068478392145435897052901b6053557f77676767676760000000000000001002e000000000000040000000e000000000681000000000000000006780000000000000009008605455157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ff6376770abd3a36b20394c5664afef1194c801c3f05e42566f085ed24d002bb01611684783921454358970527ff6376770abd3a36b20394c5664afef1194c801c3f05e42566f085ed24d002bb0774b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b0a0a90086055556f800000000000000100000000000000006f121212121212121212121212121212121b774b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b0a0a6f80000000000000010000000000000000691000000000000000000090086056557ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f7effffff800000000000000000000000000200004400000000000000000000017f40000000fd000000db00000000000000000000000000000000000000000000019009190b6057556f80000000000000010000000000000000682323232323232323230190126b0100000000000000000000007e40000000fd000000db0000000000000000000040000000fd000000db0000017f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff900803762900760076761e000200767600000000767676760000006f800000000000000100000000000000001a60585568010000000000000000681000000000000000001c056059557e1f0000000000000000000000000000002000000001000000000000000000007a010900000000000000000000000000000000000000000000000000900b680100000000000000007cc9700000000000000000023f00c00014ff00000000000000002230080590021468100000000000000000777effffff800000007effffff800000008000ff0000010000901d027f8000000000000000000000000000000000000000000000000000000000000002778200000000000000fe000004000000ffff000000fffff7001a605a55197f12cbafcee8f60f9f3fa308c90fde8d298772ffea667aa6bc109d5c661e7929a56005121a7f80000000000000000000000000000000000000000000000000000000000000027ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe900103605b556101116f8000000000000000000000000000000117605c5560006000f3\",\n      \"nonce\": \"0x0\",\n      \"storage\": {\n        \"0x000000000000000000000000000000000000000000000000000000000000005d\": \"0x0000000000000000000000000000000000000000000000000000000000000008\",\n        \"0x000000000000000000000000000000000000000000000000000000000000005e\": \"0x0000000000000000000000000000000000000000000000000000000000000004\",\n        \"0x000000000000000000000000000000000000000000000000000000000000005f\": \"0x000000000000000000000000000000000000000000000000000000000000000b\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000060\": \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n      }\n    },\n    \"0xa94f5374Fce5edBC8E2a8697C15331677e6EbF0B\": {\n      \"balance\": \"0xffffffffff\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n      \"storage\": {}\n    },\n    \"0xf3eAc1d1B1EC8cA737bD148b1E96168024fB3F89\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x6000496000556002496001554a6002556001600355\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xfD6241df8Ce82b2Fb4126dD0e9FA931806Fa573c\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x60a860005261037a60205260a86040527ff0b88e202b842bc58b3e815c216d48d84ffe677a97b4b392d471b92b504d42626060527f2e3e9fc17fbb4395780ccb489363f6a76b01c5626f1a0ff7dae0bea0c88160716080527f472bbafef0b8b8a2654644dd363c21b889170b91d27182d2960184d1407317f560a0527f3f66bfa4fa0df97f228c32bc0a7d4ccd9e24dc3e58bb9500450c1d253df7dfe260c0527f5d85b4513acf5957ccaec4fa3b1ca5c79c56233d41178661f2565bb4f3dfecdb60e0527f628017dd1a398d5e6081d6509bc1535415988569f6b54701c5c2e52eded4dddc610100527fca083ca4ecc78090c36a5b030c061d6fd0720c1fe5aaf9e4f7203a09abfba64f610120527fc85664ff0e0ba2b7c7203012ca0b87d26162f8d12a068d16e6de9e7472c8e0c8610140527f818be57ac614b53ac018f3b1abec6beb23aaa243703b29945db6700960d3a57d610160527f6b97cc84054092f03e46b9ce8d59529fbc61433da0c57f02a9015dd145c11239610180527f7cd50d6659f3066fe9ce05dca12dec6f44c6268c0287ef999d2f64203a7e58e76101a0527fefbb4dc4e91263c47883ce938701d055d5142f5a374d7e5abbc4f89f802c36076101c0527f0ade979482d5dd71e56717c4bb687a4bbb441903958aa9497272683c45410cd16101e0527fb8e23e6eca344102dddb6feaecdf8fb7cc61e61a98752af02b7c780cbb126cde610200527f3cf9e0f86b3126b8bf99585ca41c87a6ceb413430620b1dd907eacf1e3c81625610220527f547b197bf80a32546989e6d27686ba6c0db3333878ba2536dd2e39e15491c928610240527fb199565628b92a4296d600c8f7cede07a185f0834751d314ee0fd99285c49532610260527f20e48ccaa106397744ffc78009aceec6b8afd8e580c85b63d349e9d50398fdf9610280527f1a4c8a878e928742b5f12e185a32b9ac3ce6206ab006c6d51357643efc94b7ec6102a0527fcd3d5c364345276b855df411904b5aee514da2d7dc46550d56c42513dc6e08d36102c0527f796f00b0f45871e0c998ac55fd6d3dd3b6ff7591ffe3fecc2b72e119295dfd046102e0527fbb5f3e820145401cc6430008a54825714a6adcbd0e6d46cb5c5de250948f20b5610300527ff6f72b52677448c5f4997844b7826a265165d210bfa1da95598dd6b91c568036610320527ffa84b89fdcc08cb305c15491a494202df904bfc37b6f446b922df1c34f7d1062610340527f7a5be6a14a294e2229a304140fd9529db21972857cf9622787992e187a802ae7610360527fc8e8fe14c21926fcb10c0c839a8f4fb0293df25e8426b822587d139529692706610380527ff53f9f99ed50a968c9a3ac636d913c4c93d581a4ef3ec06fe4e30cb67d5a8fdb6103a0527f082185cdd7a608dd7f877f858586dc9e9427a5cbd1b46f38a0be135473fc8af96103c0527f545b0921bddd426e0dd05d73f14cd230fc805b0d8e1e13ac941749ca5bb6287a6103e0527f953a898d2cc35277bf0dd2baa7c5a43be4b86cce8e0d54fb1637d549c96b4eff610400527f5a17bf9dc9e9b62866dcc92aa7b74be64048d40fc82757e8bd7229a4c2a8026f610420527fee16eef5c6844ea4345fcbd8cb0fb8330e53e9e9e568b04253a0578b70cbb22b610440527f9378fb903c6f3b0de425669e7b20275b73241c415f3607018efdb79db118c75a610460527f3057e1a48556655448f0080f9394012dfedf80ea22f5c20600a9b088abb957b2610480527f952e5c01afc58257bfd0fd991075edc9a78ebc574d362372714543506ccaced76104a0527f21efc898ca581be8cf766c8cc047a3a4f1d3066a3d351fec5d0506beee85ab1f6104c0527f56f0ee109cc0a31cf55c52037d4764010284a22440a75752b22ddaecf9d7443e6104e0527fe0eed74f524258c6853312232de13c93a80fd6f5296dd4392f3e8b11579389466105005260b76105205360ab6105215360fd61052253602c61052353606a6105245360e36105255360e461052653605b6105275360b861052853601a6105295360a8600061052a6000600562fe08aff45a0160005560005160015560205160025560405160035560605160045560805160055560a051600655606160005261046560205260616040527f6d0d399beee8791c6a12d890598a300f54ffb91c84b86ac27e21c4ffb10d23436060527f61a0479c2a20f3aa130387323166dec8acfcc5be6cbd59a01690dc61a79ca5fc6080527f129b38d0b055ac4d468496a6400b7e78df076275ca6a0f9f5215b40d1994090760a0527fa0b42c23f247024472be573d76fbbd3b40a7291aaf2cf6236a94e137c263204360c0527fe5f21f3a6e26ed1ecffc39e3b4e250e001694de663a52bfd06b687e38ec3211c60e0527fc8e4569a7baada911cd0ebfb9e34982ddf119bba8b6e53b0f17172f03ac9f686610100527f3a0750db630493cb3c82cf86db5f5321072a2e60868c7bc4df77e990aacd864f610120527fe0541732d6c098cdfca0976eed34dedacc8768b4043de91670b46c2998c9ea1a610140527fab0908635f7a0a521b03f9bdd8e439c26493e073284f31a8c94931596d289495610160527f0d9d4f8228b6fb8786fd0ddc8fb9779754f0afbac231d34e0418c1ff15abda2c610180527f6aeb3c4deff9c782536072981a5f5a5f903f0e8d0919bb88988dfd8297548e316101a0527f471af342e540a99e087b966a29f07248bf746b5257a16c3ea3a6ae729199e03f6101c0527fb1ad70289609ee0de9757af4b42816ff1bb84cbfda4ec6812f14fda504936d906101e0527f0579d01de02618a658f31969293c363c88ea85d1eaa8f0173937c9ef74065ffa610200527f0b6db5e353bf88c1868df5518eb79ecb617638968c4bc7dc7aebeadfaba1af98610220527f5a1e2dc0080f4c72c3dfa0980914c7f166bbccd9611bacebc509945373d9eeeb610240527f3508e014ded76cf0547184270633449ff62c26448b77d06f76d293bcbcf0c5a2610260527fc33faa90573d5dd05b297c0e7a361d233f1787c0fc4a7efa54a8c2e21a7dbf9c610280527fee8b7c788b2c846438503d8e84336c0f61afad8843fbc52677753b5f9ccfcd1b6102a0527f566ff8c1a89def377278f892bb270509902298f7ff66090013f6aa0862666a3e6102c0527fd503bd8cda6a85fcd498e2a1f16c25b858d0ef09fe3f2e2701ee197ecca5388a6102e0527ff0c272de44e15d8be23e624e18776bf2d69a2fafd5451ae5195dccba6816ffa6610300527fb6548978b6aaf7bf9ae5f550acccfef9fd56060d29f571b16eff18633929c31f610320527f7ac51a0456b86ad28e2dc1754b3026c299b7483e0363c366409d0692b63ad89c610340527faf22c08ac2a3a0b837ad7d46b7a8410dbe0be22b87a50048ae477e2e5cd6da96610360527fde1096331201adc7cae8259ab737babfa2678f30d9c8a8ebb36a5bae9d0ae362610380527f96c2db37b400fc68d4bf4824ad0976b2ce6054a4f9cd54b0003988f4c0e5a7346103a0527fd0d1c7c23cc73ca0855106aee34299f8005bd20686eea573f58085f8881b5bd36103c0527f9e973851996421f3ab73032a59a965d2815ed45cdd437e2b2e6a109661b9c4ca6103e0527f1b90e608fb4e09ccb7a4cfa1bc2233aa5474dc16f1237ded95afb56713277dd4610400527f61029aa3589b65c7c6625b3e6cc158e9bc68367ed43ea5ea9c1a1c1cd5ad25c5610420527fb207f5644f04965dbf58c2f9da104dcb0fe657cbac9d3675cdde01c628e131c3610440527f47f1b5e3d4aaf4e45cabfa8e7426e73f49ffbc783702d717ab128812f85b0e0f610460527f2e9e786806d106d7b3548fa3880074c55f6f7b12dd5901f62487882b93ab9c70610480527f493c591847872925f5f6f1467567b46ae1b20fcc504e819aa9892824a061226c6104a0527f7ad3ba3a65506f470f57477e9da43014a6d8154367618e1c55ea7887b087c2f66104c0527f3287255cfbc00bc6da86e07aabd37fe1d03ed9b54eb3ff2d8dd73048a913b0a36104e0527fd7c9ac374404002a4d5d41fba312a8ff0d8fb258b819b9ff9e4bfefce482e068610500527fd33944395dc8cb85e9fa82211d0087cf9996de1669f3121c2342c7058e554261610520527f9529bcd34e669b11a75a78fb3d5a1451ff26542208e72d7828ca7e21ad3637be610540527f2b9cef530ca7dcaa5a469eb3c7d6ede8e79588a03d498c11ae37b71d164ef3e56105605260b76105805360916105815360436105825360f761058353609a61058453603761058553603b61058653606160006105876000600060056278cab8f25a01600755600051600855602051600955604051600a55606051600b5560626000526020602052606c6040527f6ea6afa40b5f1b4cb48214b6e6e56a074998a201aa82cdc81c35ad2910e854bb6060527f86fa21730be4ecf2263dbadc0d79eb07e2f4e198ae4aa6201b0a09b17926cabe6080527fbce1ed98b86b6bc3e0a97b3b1fcb42588f27206ca558b452731218d72a0c86a760a0527f740100000000000000000000000000000000000000000000000000000000000060c0527fe3dc8cc642df7e9cf4934a539c46233788e41b60e1f2973cce7e9bde05035cb160e0527ffe1e90f891a5cf105592e9a10b833dc27f5919384201ec73b7ce2302e421d15e610100527f3b5d135d2bce73f8c15ba3166326ab20c33f2dbd2e473aa649e6c3ee9e62d22761012052603361014053606c6101415360556101425360346101435360366101445360726101455360d16101465360706101475360b76101485360d461014953608461014a5360a761014b53606e61014c53606a61014d53606c600061014e60006005611ec7fa5a01600c55600051600d55602051600e55604051600f55606051601055\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    }\n  },\n  \"chainId\": 1,\n  \"env\": {\n    \"currentBaseFee\": \"0xa\",\n    \"currentBlobGasUsed\": \"0x20000\",\n    \"currentCoinbase\": \"0xc014Ba5e00000000000000000000000000000000\",\n    \"currentDifficulty\": \"0x20000\",\n    \"currentExcessBlobGas\": \"0x0\",\n    \"currentGasLimit\": \"0x11e1a300\",\n    \"currentNumber\": \"0x1\",\n    \"currentTimestamp\": \"0x3e8\"\n  },\n  \"fork\": \"Osaka\",\n  \"parentBeaconBlockRoot\": \"0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f\",\n  \"transactions\": [\n    {\n      \"data\": \"0x\",\n      \"from\": \"0x18665208d71eAF07c959cB6d2b263aCE3eF24042\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0xBa0E31A0E75AC9a4cac4c57d6c7EF2a10e87D4e6\",\n      \"value\": \"0x0\"\n    },\n    {\n      \"data\": \"0x\",\n      \"from\": \"0x35F694E45962Ab9eD665971FdF51A45A3b109c62\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x20\",\n      \"nonce\": 0,\n      \"to\": \"0x538A8474EeaB43d5a960164c554A20400151D479\",\n      \"value\": \"0xcc12\"\n    },\n    {\n      \"data\": \"0xe4004233f44dbea05485b3167d58bbc59a9a573470d1a4c7450ce35894a0eb4ba4a064b4c6cb7d6146a1bc57c774763287c2237c897a1f0ceab9e2fab9\",\n      \"from\": \"0x03D28A8a81F218F63CCCc11AD16b94f7f787b6d9\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0x3Bd84e661C47a73eEe4137D185E4c31c194C343f\",\n      \"value\": \"0x0\"\n    },\n    {\n      \"data\": \"0xccd57cc53461a4b792f7818d9c44db35ca7fd3edb10166e251d4b47bec0dde2c\",\n      \"from\": \"0x3AcB272cf9665ba7113b07E79F0DB094DF7E3009\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0x9E607bB0Bae19b8bC75638fd1aB98594b36ba46d\",\n      \"value\": \"0x2966eb\"\n    },\n    {\n      \"data\": \"0xc299908efb3fdb12835d4bff2d03ca4bcbac3e714a83\",\n      \"from\": \"0x2837fE6BCdADEa40e14E73df3101847267659772\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0x22986B2F9A2f5E7119F940898c35e7128A4Ce7E3\",\n      \"value\": \"0x90\"\n    },\n    {\n      \"data\": \"0xbefba71d7b677d6ba980c878f996e35911521fa11e5f0d025547ba7ef825d03dff687fd67e8fe13d4f8b1d115679b79b7bbaab18c4868ddec15c5b7c73578ca4d29b\",\n      \"from\": \"0x18665208d71eAF07c959cB6d2b263aCE3eF24042\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 1,\n      \"to\": \"0x9529cc6891Fbd5aBFABE0AE6c79D30F0CCAe848F\",\n      \"value\": \"0xdafb\"\n    },\n    {\n      \"data\": \"0x9b547c7fc5eb3aa918193db18544aa183ec027ec89abc23a36dcbc401c10882abb1a226c81be965e293e938c4239998475\",\n      \"from\": \"0x35F694E45962Ab9eD665971FdF51A45A3b109c62\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 1,\n      \"to\": \"0xfD6241df8Ce82b2Fb4126dD0e9FA931806Fa573c\",\n      \"value\": \"0x1519\"\n    },\n    {\n      \"blobVersionedHashes\": [\n        \"0x01abafda8405600f28850c93d20702b19b16786a43e7df7be3ca5769524f5d6c\",\n        \"0x010d7a9df5c5c8a68be7cc36e1628e87af4bdb9e79bc12efe485461bc7b9baf0\",\n        \"0x0134705ed50ee98f42b7c4be013bd5c99a190d95f488f6c71e4056f1db2dc9ad\",\n        \"0x014f220702bf4565e1674e56b6176d45a43f946512c80c0f8a5674be0a884047\",\n        \"0x012c8fc983035a94a2908a0a67e0cfe1d9ad034da6393984ea89f73c85bb3a04\",\n        \"0x01be52509c6f3022057f374ceb77216c6484bad1aa601a35f3f31948cbcc1fbd\"\n      ],\n      \"data\": \"0x6f\",\n      \"from\": \"0x03D28A8a81F218F63CCCc11AD16b94f7f787b6d9\",\n      \"gas\": \"0xf42400\",\n      \"maxFeePerBlobGas\": \"0x100\",\n      \"maxFeePerGas\": \"0x20\",\n      \"maxPriorityFeePerGas\": \"0x1\",\n      \"nonce\": 1,\n      \"sidecar\": {\n        \"blobs\": 6,\n        \"commitments\": 6,\n        \"proofs\": 6\n      },\n      \"to\": \"0xf3eAc1d1B1EC8cA737bD148b1E96168024fB3F89\",\n      \"type\": \"0x3\",\n      \"value\": \"0x0\"\n    },\n    {\n      \"data\": \"0xbdf020dc94ecf8f9a12512749beacb34358916f7bafd7d82ff8e836bd3ae5c17fadcf0992e\",\n      \"from\": \"0x3AcB272cf9665ba7113b07E79F0DB094DF7E3009\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 1,\n      \"to\": \"0x641602bAD4A323C49629d45338d79A2bb984A3fb\",\n      \"value\": \"0x28\"\n    },\n    {\n      \"data\": \"0x\",\n      \"from\": \"0x2837fE6BCdADEa40e14E73df3101847267659772\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 1,\n      \"to\": \"0xD74CFe323387aE2fd070CD046173026716D8D649\",\n      \"value\": \"0xcf\"\n    },\n    {\n      \"data\": \"0x73c35e6653df1732e0ecd546054542f4299cdae4527f4f0c5399288d0e18644143fc6b378981c0ae2e62a9d9a57a8ca0fad3feb8e1cef68b0ffeb86504376cd0656c481753042411dfd2c4e5f2cd8526724ba4\",\n      \"from\": \"0x18665208d71eAF07c959cB6d2b263aCE3eF24042\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 2,\n      \"to\": \"0x766C0844EBC3c4ef4ddb86260a4D3516cCa03A10\",\n      \"value\": \"0x3a\"\n    },\n    {\n      \"data\": \"0xa86e7b43393bb964f0fca6abebff173b079ac1db5f651547b7a31e09267f0e5ea231dd424360a641d7315d1e31665e14895b475f5d43e10baa63e63a1dd67d66853f8777e7f41eccb134162096495d652eff05cbaab7ad7bb0\",\n      \"from\": \"0x35F694E45962Ab9eD665971FdF51A45A3b109c62\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 2,\n      \"to\": \"0x1d891f21BB2a55cD9EC7a32478f7c74d757c4876\",\n      \"value\": \"0xae53b5\"\n    },\n    {\n      \"data\": \"0xc102d4b975649d4af883da0f6dc25ffea3bb27906faef989181963d5a9aac717dfddfd84320087cc8b22c8f63d04e7034c856251101093eab6677a15b5b11abb439b\",\n      \"from\": \"0x03D28A8a81F218F63CCCc11AD16b94f7f787b6d9\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 2,\n      \"to\": \"0x7458F9b8B5ee360A32b0b0Fe648C996C68AE8190\",\n      \"value\": \"0xe3ac41\"\n    },\n    {\n      \"data\": \"0x3a70fdbd\",\n      \"from\": \"0x3AcB272cf9665ba7113b07E79F0DB094DF7E3009\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 2,\n      \"to\": \"0xDa78807c1C4567c23EB713E9fbB3b1508C1284ce\",\n      \"value\": \"0x2e\"\n    },\n    {\n      \"authorizationList\": [\n        {\n          \"address\": \"0x0000000000000000000000000000000000000003\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x0\",\n          \"r\": \"0xb5619cbffc861bbfdaa3e64f9b355f8fdabb9d799849d2dabb2f25876c145292\",\n          \"s\": \"0x66361779b642b5632ef692bc04337f9bca791762c47ae2baeef6773fb592c46\",\n          \"v\": \"0x1\"\n        },\n        {\n          \"address\": \"0x0000000000000000000000000000000000000005\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x0\",\n          \"r\": \"0x138340166a399b49c1f7edde6c633a453e0ba59e46c413194fb91008e79799bd\",\n          \"s\": \"0x39ce8b301d482b43275473f83a2fcbcbfc4c99cfdd53e96cd5b3323cfa0f6ce9\",\n          \"v\": \"0x1\"\n        },\n        {\n          \"address\": \"0x0000000000000000000000000000000000000005\",\n          \"chainId\": \"0xdee1f5da8e288cc6d27740ced28df1110000000000000000e2d5020464d553c5\",\n          \"nonce\": \"0x0\",\n          \"r\": \"0xcf969060aaa8dd8e52c23a2226e67dc4f5f97d38798bbbc038f173dea5a9c7f8\",\n          \"s\": \"0x6ee5755aa86f2f8117d761d592bd100610f120ca66c0bacae2bc973ec88adf0a\",\n          \"v\": \"0x0\"\n        },\n        {\n          \"address\": \"0x0000000000000000000000000000000000000010\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x0\",\n          \"r\": \"0x9a71a0c0c44a05d8a2471cb0262241ee69c28d156d6f34ba485db33f00a42f8c\",\n          \"s\": \"0x4945d99f7b2bc60ffd4e45936413244b2107ba059d6bb8ec9ce9f0962f8924a6\",\n          \"v\": \"0x1\"\n        },\n        {\n          \"address\": \"0x0000000000000000000000000000000000000004\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x0\",\n          \"r\": \"0x431784db736d7a7b32afa2a06f9b2dd9b7947510fcfe270ea15c2ae08af9c7fc\",\n          \"s\": \"0x780ae64313ba535e023075c4b6ba0b292377005a380b83e0483cb71d70cdf9d1\",\n          \"v\": \"0x1\"\n        },\n        {\n          \"address\": \"0x19e7e376e7c213b7e7e7e46cc70a5dd086daff2a\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x1\",\n          \"r\": \"0x58ad4fc6a48d58600a99e258dadf774ccf993a35dca2c92822d103e988d77aae\",\n          \"s\": \"0x69054ccea2f3364fe4ded44910d741d4ed75cde286fd5c7fab299322fc9869f0\",\n          \"v\": \"0x1\"\n        },\n        {\n          \"address\": \"0x00000000000000000000000000000000000000f7\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x1\",\n          \"r\": \"0xea81c59ad4c4ab86d403d72e88317f89cc3f886d5b730baec3ad01ae5f29b54f\",\n          \"s\": \"0x4bae176e31ff39b38a35bd67cab30312129402ce912094b173cb131933f6849e\",\n          \"v\": \"0x0\"\n        }\n      ],\n      \"data\": \"0xe964b68a16dfccb7300e2a3cfe8b30\",\n      \"from\": \"0x87f2957b7228EC6a0dd4F2fCc669BD2ED2B14E11\",\n      \"gas\": \"0xf42400\",\n      \"maxFeePerGas\": \"0x10\",\n      \"maxPriorityFeePerGas\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0x00000000000000000000000000000000000000F5\",\n      \"type\": \"0x4\",\n      \"value\": \"0x76\"\n    },\n    {\n      \"data\": \"0x00\",\n      \"from\": \"0x66bBEf07B980c8b5de6F3DB0d5CA7A0389C7f386\",\n      \"gas\": \"0x30d40\",\n      \"maxFeePerGas\": \"0x1e\",\n      \"maxPriorityFeePerGas\": \"0x1\",\n      \"nonce\": 0,\n      \"to\": \"0x0000000000000000000000000000000000000003\",\n      \"type\": \"0x2\",\n      \"value\": \"0x3e8\"\n    },\n    {\n      \"authorizationList\": [\n        {\n          \"address\": \"0x0000000000000000000000000000000000000000\",\n          \"chainId\": \"0x1\",\n          \"nonce\": \"0x2\",\n          \"r\": \"0xb69e5f919d0b7c265606ddcc668583ef819323ff6b65b9f0485cbadb495e5bae\",\n          \"s\": \"0x7296df3d02e403899fbe72a1676027a5216c5bf1f0891d945a992eaaf8b9b614\",\n          \"v\": \"0x0\"\n        }\n      ],\n      \"data\": \"0xe964b68a16dfccb7300e2a3cfe8b30\",\n      \"from\": \"0x97511db90b0e141ea4cb42e3b73fe3C24c3D5676\",\n      \"gas\": \"0xf42400\",\n      \"maxFeePerGas\": \"0x10\",\n      \"maxPriorityFeePerGas\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0x00000000000000000000000000000000000000F5\",\n      \"type\": \"0x4\",\n      \"value\": \"0x76\"\n    }\n  ],\n  \"version\": \"2.0\"\n}"
  },
  {
    "path": "src/cli/tests/vectors/fuzzer_test_4.json",
    "content": "{\n  \"accounts\": {\n    \"0x0000000000000000000000000000000000000011\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x1d891f21BB2a55cD9EC7a32478f7c74d757c4876\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x6f02ff392a51880045bd81679eaa49a4616000527f56254cd73afb65c9cabbf00635edb003b0949a8d90b534a408dd40a52b34b53a6020526f154e9920deee06460b9f0155c2178bd96040527eaf16581576839c74614c7c797feb90a61c78e9ac32794649c5ddb41e71b0376060526f165ce2d026e3030555255bc02de9e0456080527f5cbba50b5838eef82ad2c62559770709e2eec3e33fc262b93031d1e1310571e460a0526f0f1b05c33731af7afba9d1ecc2633dca60c0527fa4bd69106c11f78a81e0ed331499740a2c373f32c0d4a4267294c6eef012768560e0526080600061010060006012600b7fca8a3de5474d7684781187c350d780ba82382a44e9fb4fbf62ff85135be18d01f16000556000516001556020516002556040516003556060516004556f15b4a62d16dc800c53d56be3fe06e5316000527ffc90983d1670ea4e0a1c6734c84842961f48ba265b9d1f297db1f6e8f02dbaf06020526f08b2357993c3e46c6df5b4b2a46ac5a86040527f70ed033e5811dbc949080863278cd9ad5a82cd548c03631e9ec7399a196eb72f6060527f6770676283a7b8efb208baaa6360e7408e14ea5b7bc2f32cb27e1a7c6778b5a46080526f064e8898ba5c5a5bab9094b07da7f20960a0527f1d1afd7e9359a3f426001184ed645999406a94095f4393e1133e4ec2f6b5679660c0526f0bc360809709f9fd2972058c40fab13c60e0527f9bd8951b6b7471dccbe0badc90f293e13a0f86fa61eeb656aa287156aed92b14610100527fa7861e47dc4e8f93552ff56950ea7503df311f304aeb00d1a11ce0d96349cb32610120526f100d8556b514febe4262aae2072804ff610140527f1f56cfa643f61c69f8c51986e8526dbf4193b0ba16ebea15e9778c5f1b4bec67610160526f1091ec443cba26cff31f1414be3fc9e4610180527f974fe0473b7aa7f82dcd9c2b16fc28604ba37c5df7834fb62b89dd833fc8a16f6101a0527fe7b8359329021c4595683ceab94e844edc3620b0a5ad0d2e1910ecb9ad4131346101c052608060006101e06000600c7fd2b9d1379879bffa5e6922a3da5bab4c1a1db97b7871f9954a7c0bd550e0964cfa6005556000516006556020516007556040516008556060516009556f11b16d7904cc71ed898cc1c837e83b676000527f7df1a142b4deaa7b27e13ca689d3aa5629ef7aa71f8a535b5f05f61382fff4166020526f0d1425bf71bcdd58e3b2f9914d8203246040527fe26477573206e5cd968229b997c0eb7af9c71cf2a99ea24e76cf6c19b78f9c376060526f032e55ce5592c38376c764bc8f50fab96080527f61b56efce5109366bd037ddcc414886fae97bbf829386ff2b354139814411e0060a0526f06beaaa166ca6f8314d26c9e5220b1ff60c0527f8c0c6d18cb69ab15622a53440dc2548cdcb7161010462636ecaf0a5b7b25fc3560e0526f0c39133f125c1317b348aaa704bfddd0610100527fc158523af83cc3a8c71ce7a6477b60e1218e739286dee601ba70ae924e4bebbb610120526f172f256ab753ee1a075825541bf23515610140527fccf3abc52005fbf9f40147337ed5fd1e8183fad8fae8de4e326b8a3d34479685610160526f1342b383357d50e943731ac03588e0c7610180527f941b16c9474f96dc1f3c4aa50a19bf5aa9e537ad16feec31fddd7595bb0cc88c6101a0526f0f62618f6bccb765aac5e98264e350426101c0527f8c697823eb1f8a342b70e07ed1261be43bdb9a0954ea3195d04885ebd8205d686101e05261010060006102006000600d7f13b55944bab9533cf4f2f8d302aa5ec0ee3e3be0eca70f1520ef656175d872fef4600a55600051600b55602051600c55604051600d55606051600e55608051600f5560a05160105560c05160115560e0516012556f150f4d385f70db4c9e1b2977950b224f6000527f104d3d0064de56ce97739c57d661fe0663c04d4c8f8816a6016770b4c93b81816020526f015253a3b2d98f552647a63c85ded9686040527fc5144b738ad3405c03569364a92f376af88484d19f9fdf9ae6aaccf9180f126460605277080000000000000002bf1a30168165233e0e3bc3f108cdd36080527fe367f4d86aa54962114ebc46bc2eb9697cba0fc2a1aa62765904fea31e6ef4c660a0526f12eb730a67099dc608a80aa528055ab660c0527f7613de79580ff064e76deaa2db26900b01162044f9f17fd27916efbf36e5456c60e0527f7157e40f7328332c6e934963ef8716bb4bfb82203d7909c4d848619d33dc87d96101005261010060006101206000600e7f78dbccfa9a44f1f9e4d26170fbb1d4707811b1586c31bf00a64736db763bd820f460135560005160145560205160155560405160165560605160175560805160185560a05160195560c051601a5560e051601b556e25e6908c41d058bae0017a22c624e56000527fca389a0bd0d682c2d9523b96e2265831a615b249655b882f7327d32d6fdcb4676020526f0749a3da8fa5121b3bade706cd9e74986040527f518e511fa24c4de40f7fa3a8f369b509709d827a2b08bbfe1bdbd78d7ada85126060526f05e128d52c8948aa1e315fa887ea40126080527f89fc5c7803f60a919634a0666f433b6763c075e2a084e43ffcf9602f0c2d622160a0526f0156a0880d3a086e087f0f33c704ef5e60c0527f6154dbc43cb1b72c1d0cf6e695a89e7ef190110fb2b3d72ab3d081a70a9a9c7160e0526f19c0137ba6b2d34a3a4ddd3cfb730005610100527f893413c417397764cb18e8f851ac7e9efe0f32fc5e008af9358a1de973ae70ca610120526f0bf891fd97111ff31ec86b7ebdf60e3c610140527feec4c2cef82e2d5a06fb56d48ae79d725ce304bfe329062db6ff2822b6345c75610160526f02d7185ac827392f6f5127315c7b9b60610180527f4d5d8710dac6bf4d8654423061f924c13d4689da8a8cb6bef7aa5f8f45094ad76101a0526f0db900a3ffe0a9be8ad5edc61ceebfac6101c0527faa7a11a5a505cefe702ab37b37c43d6b1fe5ca8b9ca2012fab0a152a1160de506101e0526f0c0997f6859be162aca94558bb3ce1d4610200527fc58e587162b3f3629996decc96cc0d918a0e395f20be8e2bb1a16597fafe3fa8610220526f04dee2da3a3c4a817130ac1f22b5a05e610240527f7106c5dd497df5d7db92507eb51753e09ff6b50bc798f6a8033ac094b6fd3b57610260526f19a6e21f439afad2d66027984e4644b1610280527fb6532e8789ad68199ea946b511bd18d07a8ad353d87eb3c9f66a6864f33d2e5e6102a0526f18224c9c69a95343548571e650ca96876102c0527f0d274959a9a9b4e4f1c0720df7c3d81d5e51e9b5aa67e73acbb15d4f226aa8726102e0526f09e4e495fe4d9ccf8dbf0c1395c7c0a1610300527f6cc855f92121ea0e801b429f738bc248f336b85d2f59c1effaa5921c60adb623610320526f0f702fb07c66ec3b44e3dd9cbcb1df9d610340527fbaf5e0cf6c415ee9a88ab176719b7e4084e0959372263c7db8c6628a9f3eb81d610360526f10dbea22d2d12eb07ab7af782790af68610380527f94f388250be3c9f7de80db50891202df1daffdfdea2903b846de9d1d169e2d4d6103a0526f04f13c07b6e8530d51bf79111f7e2dcc6103c0527f85bbaf3bb101d1e24e01d687a0967188def03b25e5a01c2e14b7d0191df125456103e0526f195ff16e04a35c0e19cd8621a7d7714f610400527f2eeb11becd22c4397d009144245d468f1c68c8ea68c6570ca3b9ad65f8c7e616610420526f18601dd1f89f6e8ffaa613d4ce374221610440527fb2fc0db4e405c63a3db6f9a63b3ac72306f3231603455fe0cc93f92121439df8610460526f19e867999b3fc03c51d71fe28c5bdd00610480527f185c4e8caf0665f2cb756351e4ce123168280765cd122e935466919ae78e7c946104a0526f0b4b6e440e9a6fe52f0f6f44c72641126104c0527f5e2d9ee84a1f4fcde2a8a1fbb5e131774369605abf5aee5a8d1700297727d73c6104e0526f024aa2b2f08f0a91260805272dc51051610500527fc6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb8610520526f13e02b6052719f607dacd3a088274f65610540527f596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e610560526f0ce5d527727d6e118cc9cdc6da2e351a610580527fadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b828016105a0526f0606c4a02ea734cc32acd2b02bc28b996105c0527fcb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be6105e052602060006106006000600f7f247aa40947a72170799d532697899c366999c2aa400acb85f59c4d0f57266768f4601c55600051601d556f13570d9fd2db4959dfec409d4638602b6000527fa3f04941f45ec554899c4d0f7f53d70e03f9693ce01d037edf011b17ca8493f16020526080600060406000600060107faa336809d445eb5793ca323cca0116b6f90884cd2de24e968c4f3030b348a955f1601e55600051601f556020516020556040516021556060516022556f0e27e5e11d58e678c11a040fd27bf27f6000527f06effaa3b77f09e1fa12a5d8d26b8638a0f01afed29e75150e2b492eae4db9be6020526f0439d0327c8d1b43a20fd7bd2404a90b6040527f47a0cbda67c8dafb13c10143dd6c9c0e4dd5a91f91d57a4947d5b6076927f74f606052610100600060806000604d60117f9ebcee41df8ac99bc589009f8a7e47e4299477856793e1dc9392bcc167dacf74f260235560005160245560205160255560405160265560605160275560805160285560a05160295560c051602a5560e051602b55\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x22986B2F9A2f5E7119F940898c35e7128A4Ce7E3\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x60ef6049609660136040602a60d38a0a3e1a640b08a05400315960423c0b435609f4f0107e701d17667e534a9f037c6757f3123d399535661dfd6c159149611532178e727e57fd72491260941a1347056c885d1c5d006a1145307e82739310116e3e018b769515f373137b37461d0b193e397b7343063416301a34116657f598755a9e6413025a7356181a81623b683a55357f1967458d140a7831445c5f5f7f0a409b3e76071702fe3d55408879751c55ff6ef01e3d54193c6b75485c3a1d678e4005175d047a5d54007a8bf13e549751590b7d672091323e7d303299697a4464f03b9a89377c9d0b716e0467143720101179516509537c0a510a59f44962586873067960036a5d3f85f29c721039556c7206137b7108955a5d94fd0702867b6d65fa79456219863611705a404533430a40597b3055ff0596835d5337619a007e7a513d7866f1653115447341f44a1c6a3bf2676272333a666c7f666f445303738d3c3a8960925474586b5b5607025772568c6b1d095d368737066264663e334a7495068d097974879c6f30101699744217925d53924147625574a04049411804806e7c5c7d40505e3d7659141094736c523f7d3d02fd466134626830004a791e643b163e807a75798e817366945c5360663e5c01727b881d8e191cfd047f043e81936e5ff54a8e3f97657cfe3c49038c171e6f8b55094104202000699d497a527d1c127b7311587014f24687717d0966503f5d016f371d4000083900a36b50601c941e521a6c5fa37c54a23450063b42961e73844407327a6a06341c1d671b62111c061b694540643340a23b798961f10b627135653e123e373d3f576251675717186b71009d148e56581e1d0943097d005c408c0430951365011b8600649e7a7c673f8b718c49194047073530315a115019fa329bf0a16834fd62908536f535193579047b3a9f32184174a3ff9e03850670680810158e10470a333298674a716a769d204919065367207b53fa6843555906677f159e81797a9a9f1e417b721931a0629d1c7b3e50101690715e007f8a187716107a803d864983585b6931080246547b585b8efe599246610811573e487833507a57a28c5b676b6a353b619c7e65523514744095774060f01d06f258481eff6e940516550811633936144a377d6b11786f94817a360b093310856b98f29f18666c9e901d08a08aa07c5c5b1757425e9a12433e6548495c785d661a90710b3f619f7839047c6c1b3317806a94610862688d1007865648123241919f206e7a060773735234a4755a11149a03199d570a65a2883d6c71f27b1998957d5e75425b8f457906460b66395f395e7e0942ff436a180a20857f491537866e5b80395a6b4689803507590661651c50331a8a7e0550905d8161890637848f9c96726d061c7544ff8c593d486431980b5d19\",\n      \"nonce\": \"0x0\",\n      \"storage\": {\n        \"0x0000000000000000000000000000000000000000000000000000000000000000\": \"0x000000000000000000000000000000000000000000000000000000000000000c\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000001\": \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000002\": \"0x0000000000000000000000000000000000000000000000000000000000000009\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000003\": \"0x0000000000000000000000000000000000000000000000000000000000000006\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000004\": \"0x0000000000000000000000000000000000000000000000000000000000000007\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000005\": \"0x0000000000000000000000000000000000000000000000000000000000000005\"\n      }\n    },\n    \"0x3Bd84e661C47a73eEe4137D185E4c31c194C343f\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x60f9ff08e55301a405600aff7f838f432b398d67edd79d315dc36a90f8b6cec82cc931e9902c1977c41d815a1f6000527f13fe905749a9fa23e5e6d19d6bc2b116647971e33108b06569f3c5102c60c73f6020527ffbebb93b018b3214b7fb132b27e4a482ef0bc3108d1e7476fa9ae8145a0d52a36040527fff9e5a128ba578caf9dfbb892ca6ff783f8dd7c48389a16d315843dd7dfc0aec6060527f615846a2a8d4ff72d120c18d25778080fafb47fd942cb8db3deb30f9225c81f06080527f16b22134b6bbea2a3fd6fc5ea7ca4ee2626ce45e18265fa072a6b0afd3209a1f60a0527fe83451f442f5180389a5f9dfc9aa2255be1c74faf6f88d95c533cf1457d2362a60c0527f53337028167932cf8acca7e83f755d4d30e80aa033d0bb8511efe8b19cf49fba60e0527fe1535d12c7bb0a7718f875d946d90792b1aa54e135e91d644933763ca1148aec610100527ff79ad2a22352e9ca9a0c445ab02dd151fb08b251275b4171b0fe073dfdce154f610120527fecfd9d2f7e17b9b598ea4fdc1a1a136bc133371fceca1c2375b10c728b75b1a4610140527ff2c027a65ba4bce87721c1e22be423e68594d156ac2ed671ee49a1a6d1810d22610160527ffdf921a8aeba249b30de81ff9b7044ae3be7067e9c15100c3825745121a0373961018052604060006101a0600060037f39a0f0e5a3034ddab629963f71f3a2c805d5de5e485f50470c4788b609891297fa600055600051600155602051600255\",\n      \"nonce\": \"0x0\",\n      \"storage\": {\n        \"0x0000000000000000000000000000000000000000000000000000000000000003\": \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000004\": \"0x0000000000000000000000000000000000000000000000000000000000000010\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000005\": \"0x0000000000000000000000000000000000000000000000000000000000000011\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000006\": \"0x0000000000000000000000000000000000000000000000000000000000000003\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000007\": \"0x0000000000000000000000000000000000000000000000000000000000000007\"\n      }\n    },\n    \"0x4133B3E532cC750d0a4691c8Bb0B03fba51707FC\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0xdcaa7645870b9ff21dc74c437d77781b7366c4f352caa0c0f1e7acec0c780181\",\n      \"storage\": {}\n    },\n    \"0x538A8474EeaB43d5a960164c554A20400151D479\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7f5cff5e24ab538a91033a6503871ae05abcafe0d859c02f011b73a34fc3c9268d6000527f05c734d437bfc67f9c0201fc5ad0440d2160361d66a5b9e740fac13f2e8053966020527fe5261c43f657361f90396c96da8dfddf51d4e1006fcf030c38272acd6e9cd5226040527f9f354515f0fe58d09aad2b4e7533ed7ba3fedc12996bf860f5f4ba6bb743c2a96060527fd042e4df018e59bc0f575f146560fc50879d525e5bc1b7816fa66a650a6be0fe6080526020600060a0600060566101007f70ded0da3434e4d08343f854a5d5ff9af5b6f2a0a45d505487bd115d5a95dfd2f2600055600051600155\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x641602bAD4A323C49629d45338d79A2bb984A3fb\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x602060006103803e60056003607439602a60246103a0376080600661028039602760276103a03760006102802060c760006103203e6001610380fd\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x6EB54E66856fD47bd539A986B19F0Bc9B7B4dA9F\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x38b446fe4e737b60383040233f4e9d2a40598cc6da8bcd879c52501b7bd413c9\",\n      \"storage\": {}\n    },\n    \"0x7458F9b8B5ee360A32b0b0Fe648C996C68AE8190\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x7f60065c507f60045c507f3f4a6783e043cade83e3efd7c036b5517630586e70666000527ff745609afc6000527f26ac0c300b6000527f1ae979211aef9d5b178c50b254496020527fc94746f9c9f4bc902c6020527f748b1677bd0ef214ce6020527f0547200a26736040527f78956e009667fa7cdcbafee1fe6040527fff58301e64554c7d0f22aff66460406060527f527fc0e58badd643e78e6951c18212baac6060527f8b47d9ec7813b1b2c134086080527f698364dbe21e6060527fabd6c4319461b934544dc06080527fbe25ee574dee9260a0527f8da0cb487ef89497954aa30e26a86080526040600060a0600060a0527f60446060c0527ff67f02548193b632f42d7037186903e461b65d592b996f244819ec079f60c05260e0527f606560e053605160e153606260e25360fb60e353606760e45360f160e5536060610100527f60e653600060e753605560e853606060e953600060ea53605160eb53606060ec610120527f53600160ed53605560ee53606060ef53602060f053605160f153606060f253606101405260026101605360606101615360f36101625360536101635360606101645360556101655360606101665360f46101675360536101685360606101695360f561016a53606061016b53600061016c5360f361016d537f4176702b63bcdc4cb9c73abfc785e626a5d48ed79834c65870dc6b076df773ae610180527fe514ce5369e1515e7c76205f39dc50325f5524af55385127fb99708a160791a06101a0527f540f9745ee262948be29f7c4ff39b29f069012ca8d661cfe500180d47866523d6101c0527f3d871f52edc9e5ee936538aba6b1a574f8c6df1bfe2a4bcf7793bc0bb008b1336101e0527f848fb85541568fc4035f73bf00ab79eb687773ea0878b4b25e4f443b23673b22610200527ffb6a3205053e9cfe09d60513da475141b7102e6c775fc1afd88244e30f98216f610220527fa3a57f172d51608c8a4082a4eb4089f513d89a7916a000af45ecebd20b6b4590610240527f261600b57bee20a830b2b5dff7a02f640cb410fefe2aee2cdfd7cff007f6da3b610260527fe537919b87b961f6f0e06e0b95989a4c4c7976613994af296b67c727e9417099610280527f5cdc062258c2642c1153b1f4ec9d3ec1cf7966d3fb1874d8274863c4c0c4320a6102a0527fa1fc3931caa764bebd3c7d05743c9887f9a7371bb9ad17d5a3c117cf769b54806102c0527f282edeb064f32937da73d7ce692146aed14888fa10e4ff12a005651a41c4b07b6102e0527f91e02452a5a0f1672757344255aec5842f69a3635046e560bc1b54d606c42af8610300527f6bab911858f883ce4f4d0838210ebfd5ae7ffd75d46a9637908e78e4d1943ff4610320527f5a0ef79ffff9ff5f8bef33a8b8eda6a9189ac5eab77d636deeb93c8474a458e0610340527f5fc5680e125bfee5991675741d0e5604667a26970dd8f0ce4753a7209a0b67996103605261016e60006000f060406000610200610180845af4600355600051600455602051600555600655\",\n      \"nonce\": \"0x0\",\n      \"storage\": {\n        \"0x0000000000000000000000000000000000000000000000000000000000000007\": \"0x000000000000000000000000000000000000000000000000000000000000000e\",\n        \"0x0000000000000000000000000000000000000000000000000000000000000008\": \"0x0000000000000000000000000000000000000000000000000000000000000001\"\n      }\n    },\n    \"0x766C0844EBC3c4ef4ddb86260a4D3516cCa03A10\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7c30094d9e93c6538447c7f71879ebc33171319acae4d27701c7b3fed94c6000527f28c7989c23b52e07b22635abfda126cf1a14981ede6fef9a9ef409d36ad639bf6020527f1f4dab7bac2a1d1205e2d552299144f2724e1e071a3c937dd0651aee95d859d36040527ff57bf8b81daa6cbae4959a13988b1e8fcc9bdb8be682a8a6f7fe0707d1ddeda46060527f0fc1f5ad1138e3d799bbae17dd28fcca35a3ec19c8bcd49b4b3338610d9429656080527f693bb5ee5c4320832b5134056658e570f5341a8cf1b5d6051c15367ff473fdc360a052604360c053606060c153604f60c25360d260c35360f760c45360ba60c553606f60c65360ca60c753606460c853608060c95360c160ca5360df60cb5360d260cc53608160cd53603a60ce5360cd60cf53602860d05360a360d153604260d25360bd60d353600160d4536040600060d5600060d560097f63823a27ea3a21fe353b0124ab9c852fd4ba8cb0c2dff0e45e1a17c15378f7bcf1600055600051600155602051600255\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x78011f4E10a54C02296EfeB11034d561320e8949\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x8260476d5e5d66360702af75fbb09e6db415c6663c7ca092e358bfea4448f770\",\n      \"storage\": {}\n    },\n    \"0x82361b537D93C7A0079Dba1E4f367EaE7b5D5f2E\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0xd8681c573cfe16cd18cac8fb006983725de8f2b9bf2044cf8d122b7c6aa02822\",\n      \"storage\": {}\n    },\n    \"0x94b690A97d429F297d32b8fED10213e759861599\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0xad696fc9e254151c47bf314c3d113e3d6f61dbae1a524f30bc67772429681ff1\",\n      \"storage\": {}\n    },\n    \"0x9529cc6891Fbd5aBFABE0AE6c79D30F0CCAe848F\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x760100000000ffffffffffffffff0000000000002e0000007e40000000fd000000db0000000000000000000040000000fd000000db0000d3901a7ee8e8e8e2000100000009ea02000000000000ff3ffffff800000010002200006fdac7fff9ffd9e13226262626262626009005900b6c10000000000000000000000000762900760076761e00020076760000000076767676000000901a13778200000000000000fe000004000000ffff000000fffff70060071a05671fffffffffffffff7806400aff20ff00200004e7fd1eff08ffca0afd1eff08ffca0a117ee8e8e8e2000100000009ea02000000000000ff3ffffff800000010002280ff7e40000000fd000000db0000000000000000000040000000fd000000db0000d368066aa0a5319bcf5cb40906901d6a01000000000000000000007f8000000000000000000000000000000000000000000000000000000000000001056000557f80000000000000000000000000000000000000000000000000000000000000017f7effffff80000000000000000000000000020000440000000000000000000001901c900b7f80000000000000000000000000000000000000000000000000000000000000026c01000000000000000000000000900290037d0c76f4afb041407a8ea478d65024f5c3dfe1db1a1bb10c5ea8bec314ccf9682323232323232323230305197780000000000000008000000000000000800000000000000076fffff716b61616160b0b0b2b0b230b000008010d0a2b0017901a6001557f40000000fd000000db00000000000000000000000000000000000000000000017806400aff20ff00200004e7fd1eff08ffca0afd1eff08ffca0a9012777effffff8000000000000000000000000000000000008001717676767676760000000000760000007600007806400aff20ff00200004e7fd1eff08ffca0afd1eff08ffca0a0990066002557806400aff20ff00200004e7fd1eff08ffca0afd1eff08ffca0a7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1a678000000000000000762900760076761e00020076760000000076767676000000011b6a1000000000000000000000637fffffff1d90176003557cc9700000000000000000023f00c00014ff00000000000000002230080567ffffffffffffffff90147f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd6801000000000000000010126fdac7fff9ffd9e1322626262626262600778200000000000000fe000004000000ffff000000fffff7009018166004557f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd900b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe101a7ff6376770abd3a36b20394c5664afef1194c801c3f05e42566f085ed24d002bb07ee8e8e8e2000100000009ea02000000000000ff3ffffff800000010002280ff901b037f80000000000000018000000000000000800000000000000080000000000000007ee8e8e8e2000100000009ea02000000000000ff3ffffff800000010002280ff90116005557feeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6f80000000000000000000000000000000901290177f7effffff8000000000000000000000000000000000000000d90000000000000168210000000000000022774b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b0a0a08196006557f80000000000000000000000000000000000000000000000000000000000000006f800000000000000100000000000000009007900760075568066aa0a5319bcf5cb467800000000000000190177f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7f800000000000000000000000000000000000000000000000000000000000000190050b7fffffffffffffffff7effffff800000007effffff800000008000ff000001000067700000000000000017901c7702ffffffffffffffffffffffffffffffffff0000000300007f82000000000000000000000000000000000000000000000000000000000000000b600855686d5adef08547abf7eb6c100000000000000000000000007f7effffff8000000000000000000000000000000000000000d90000000000000190091d7702ffffffffffffffffffffffffffffffffff200000000000677fffffffffffffff070b686d5adef08547abf7eb7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd900b600955762900760076761e00020076760000000076767676000000777effffff800000000000000000000000000000000000800190139006777effffff8000000000000000000000000000000000008001760fffc000000000000767676240000000000002b0576047181b7cc9700000000000000000023f00c00014ff0000000000000000223008057bc9700000000000000000023f00c00014ff002c0000000000002231089013057f77676767676760000000000000001002e000000000000040000000e0000000007702ffffffffffffffffffffffffffffffffff200000000000901090016a01000000000000000000006a01000000000000000000009005900a67d02126262626262661011103137ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f82000000000000000000000000000000000000000000000000000000000000000b600a556780000000000000016780000000000000016801000000000000000008901d197e4b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b090b2b0bc60a0a10007e1f0000000000000000000000000000002000000001000000000000000000000204600b557e4b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b090b2b0bc60a0a10006fdac7fff9ffd9e132262626262626260090137ee8e8e8e2000100000009ea02000000000000ff3ffffff80000001000220000760100000000ffffffffffffffff0000000000002e0000009004176101117f80000000000000000000000000000000000000000000000000000000000000000a06677fffffffffffffff7f77676767676760000000000000001002e000000000000040000000e000000000900390137f80000000000000000000000000000000000000000000000000000000000000016b1000000000000000000000001c151c712000110000000d0a300e750a000000090a0a774b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b0a0a9004027ffffff716b61616160b0b0b2b0b0b0becf4bef50a0df4f48b090b2b0bc60a0a007f5fd8fffffffffffffffffffffffffffffc090000ce700004d0c9ffffff00000190101b7806400aff20ff00200004e7fd1eff08ffca0afd1eff08ffca0a6000900b0468478392145435897052637fffffff109016760fffc000000000000767676240000000000002b05760477feeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1890027ee8e8e8e2000100000009ea02000000000000ff3ffffff800000010002280ff637fffffff9010900b682323232323232323237f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd68478392145435897052900904600c557f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd197d0c76f4afb041407a8ea478d65024f5c3dfe1db1a1bb10c5ea8bec314ccf97f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd1d107f77676767676760000000000000001002e000000000000040000000e00000000063800000019016076823232323232323232376013590cab83b779e708b533b0eef3561483ddeefc841f5181b778000000000000000800000000000000080000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe9018027f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe67ffffffffffffffff7feeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee900890166fdac7fff9ffd9e13226262626262626007f7effffff8000000000000000000000000000000000000000d90000000000000104901c600d557e4b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b090b2b0bc60a0a10006b10000000000000000000000090107e40000000fd000000db0000000000000000000040000000fd000000db0000d361011190071a6b01000000000000000000000063800000011b600e556b0100000000000000000000007f7effffff800000000000000000000000000200004400000000000000000000010b1d7e050beb1c60141a0000dc2b0b0b0b0b0b410a0a0df4f40b090b2b0bc60a0a007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb901b901c7806400aff20ff00200004e7fd1eff08ffca0afd1eff08ffca0a7a0109000000000000000000000000000000000000000000000000007702ffffffffffffffffffffffffffffffffff200000000000081a7f7effffff8000000000000000000000000000000000000000d90000000000000160071b9012600f556101117f5fd8fffffffffffffffffffffffffffffc090000ce700004d0c9ffffff000001900b6010557806400aff20ff00200004e7fd1eff08ffca0afd1eff08ffca0a677fffffffffffffff1d601155778200000000000000fe000004000000ffff000000fffff7007d0c76f4afb041407a8ea478d65024f5c3dfe1db1a1bb10c5ea8bec314ccf90560125569100000000000000000007f7effffff8000000000000000000000000000000000000000d9000000000000019006600067700000000000000016900315601355678000000000000000677000000000000000187f12cbafcee8f60f9f3fa308c90fde8d298772ffea667aa6bc109d5c661e7929a567fffffffffffffffe90139005778000000000000000800000000000000080000000000000007176767676767676767600000076767676767690181d760100000000ffffffffffffffff0000000000002e0000007f12cbafcee8f60f9f3fa308c90fde8d298772ffea667aa6bc109d5c661e7929a57e050beb1c60141a0000dc2b0b0b0b0b0b410a0a0df4f40b090b2b0bc60a0a0009901819760100000000ffffffffffffffff0000000000002e000000638000000003057f80000000000000000000000000000000000000000000000000000000000000017f40000000fd000000db00000000000000000000000000000000000000000000011c1c76013590cab83b779e708b533b0eef3561483ddeefc841f5610111901113671fffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff137e1f000000000000000000000000000000200000000100000000000000000000777effffff80000000000000000000000000000000000080017e1f00000000000000000000000000000020000000010000000000000000000008050360016780000000000000007cc9700000000000000000023f00c00014ff00000000000000002230080509900563800000007702ffffffffffffffffffffffffffffffffff000000030000111c7e4b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b090b2b0bc60a0a10007d76767676767600000000007600000000000000560000000000000000000090176014556c100000000000000000000000006847839214543589705207900b67fffffffffffffffe77800000000000000080000000000000008000000000000000901c901a19712000110000000d0a300e750a000000090a0a7fffffffffffffffff7effffff800000007effffff800000008000ff0000010000171a778200000000000000fe000004000000ffff000000fffff7006a10000000000000000000009016901a7f40000000fd000000db00000000000000000000000000000000000000000000016a010000000000000000000090121a6770000000000000006910000000000000000000131469010000000000000000006380000001777effffff800000007effffff800000008000ff00000100009008900a67fffffffffffffffe760fffc000000000000767676240000000000002b0576047901890101960056f80000000000000010000000000000000901c90190667b368d219438b7f3f7a0109000000000000000000000000000000000000000000000000009010900a7d7676767676760000000000760000000000000056000000000000000000007ee8e8e8e2000100000009ea02000000000000ff3ffffff800000010002280ff90179007196015556a10000000000000000000006a010000000000000000000090067702ffffffffffffffffffffffffffffffffff20000000000068232323232323232323119016638000000067b368d219438b7f3f180268232323232323232323600790061c6801000000000000000067800000000000000090177f8000000000000001800000000000000080000000000000008000000000000000778000000000000000800000000000000080000000000000007a010900000000000000000000000000000000000000000000000000900990016016557f7effffff800000000000000000000000000200004400000000000000000000017a01090000000000000000000000000000000000000000000000000007116c1000000000000000000000000076fffff716b61616160b0b0b2b0b230b000008010d0a2b000a900160006000f3\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0x9E607bB0Bae19b8bC75638fd1aB98594b36ba46d\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7f0f0ea7c172f5a60807b88890ceef3613666c7bc8b46ab8c6ba7f9d44c7c8d9c56000527fffffffff000000010000000000000000000000010000000000000000000000006020527fffffffff000000010000000000000000000000010000000000000000000000006040527fe9d59270783f28e43ddf8f1b6a232fe86e59f3d054ae7056d7dc642d51f14a406060527f9d34ef22e83586115f72b401b9910edf0a3d4eb5ab5842d6526bab09d77e14c06080526020600060a06000610100611c68fa6000556000516001557f7b94c577a72510ad55418281ad7a8629f5b63bf1147d5268283b11beafd9ebe26000527f7810b9459c76111c880ea84e8499a26242792c36ba27d395c41b9c95359bfdea6020527f59b4f9fa4df5b677ff6e52720980987d5fba33171483e8c5cf862cabc2c24d646040527fc47f208c959f2304a9fa862623380053810c0d0ff750736436ac6d0b3fee66996060527f7905e517823b66df754c53a4f041cc1779a861eca59dad07955b10b697346eab6080526020600060a06000610100611a68fa6002556000516003557f9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a086000527fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325506020527fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325506040527f19f6370259c54b5fe9d70769e1d13b5cd7de9174704c0b751ae8c05c2a24ab2b6060527f4ccf54ccc3a23c5051da573be9703d9a2aa6a80862da9de38493d2ef63d024a46080526020600060a060006000610100611b8ef16004556000516005557fdc7a6a7dbd8a42cf97100cbfb5343286879ea772d7f0e486bff85bac63a41cb56000527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6020527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6060527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6080526020600060a06000610100611aeef46006556000516007557f27a75fd0382a000f4435415fb07c1ebc1443135f515ea0f1fa570cff63ebbd136000527fcb22c16ad640faaf88f97a84294e8e0bcdb706d94619e821ab82353b7c42fdca6020527f1f5d30fd6961f15a5a77fe525068e0fa278a2787045863e42a69dd24ac1550e46040527f0f306538f795f5bdad7d2beee3c7e75663965997393b690b437411d0d58ce9f26060527f065cbb1784b9a5c653bcc54a914fa50fe730b23528518fc9bd2aec4b27fa2f436080526020600060a060006000610100611cd3f16008556000516009557f36c057851467b4e8f1d9f625862e82538302e0fd975d1cb4e0d516b96ca8b6626000527f4889a3454be76415ccdcce4678704e94af7a3b11985f7a5ae34bd43fb8a4e12c6020527f657224d9b3bb1f69b7c751ec64b612f9f6d5e41737b172cb0e28557eda13a0996040527f3b1e2febeff11f1197266d1574cb00e7924937cddfe0e81a9a6ab5c06abb13536060527fd6e7449ca1278aabfb488a187b82f0a2cc8696575c88932f02ac052d7891a82a6080526020600060a060006001610100611badf1600a55600051600b557f61952ed2690b680aa593a089363d056da851c37e412c53b8d4a5c900876eae886000527f5364c572df38b3eb57d39a9adedddb179a6af9903ab70e6024a8413b13aeb2746020527fc1bc39d8e0c8c05f94a2bb6e9452586003a72b77e2958d07e005d29cb50cdbf96040527f7118c768a2994569c1f71c8e428ee1ed44f13fe0941b16b118765b562713c0196060527f2585a6698c187ea3ed93f12ee13ebd03987d8cba11438973a54406babe0d49326080526020600060a060006001610100611aa3f2600c55600051600d557f9a894ef20b37c1057182fbe7e5f59a3c42f177d9d152ed9dd344d15dec691d956000527f17b51769636e3661b9b0aed1d13c16a50a9f2dfbd79812686b89c6cbd4c8d0e36020527fe66b4011bdad92cf17219c9b80d87e927c7fcc9401922e85ad16260161ed20356040527ff29286409619dc0318eed274c26b87091ec9ccfb3fcbece8a9b326d534030e716060527f31b58bc996aa65a72a9deda0cb19b05a763c26bacd130fdb58c01574d2d6445d6080526020600060a060006001610100611babf1600e55600051600f557fa2f800b0138f1ceb4099b6db46869088b058b877995906229851f3a1ed4a6c566000527fb92bf3b0ddfe9442002c2906fcda67052525a68d54dfdcd18c5697079c4b621f6020527f7d8194ac1768fa99ce3ec308ee5b6b738fde4d07efc44f391e20b8e31233d43b6040527fa35bbb2e53209d4b742d108ce5c643e2520939e5c40f41eb4b5ca6987d1efd9f6060527f0aa9f8e9bbbeacd8362f094f3c4eac043400c457e9d342d8096098542f2c1dc26080526020600060a060006001610100611c89f16010556000516011557ffd5c529bd322eebcca73bba55ad93fcf1663423e06074af41f0ca99575cb32b16000527f458837808d6a6e287bd424bff26bb52a73246b8fb8a142ef523e607e3e84d9f56020527f362b527afb3224b47e0754b3b56dcc24c34874f1936a3db1852ce6c2a717e0786040527f75a34b8ae705ac9a5d79ebd92742c1b18c71e84e3541ba8dd078faff04ba50546060527fc1bdb57d01a87b6ddcdcadd5e40b36ed2d4bafb5a59867821ff95f42b3d7069f6080526020600060a06000610100611c91fa6012556000516013557f9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a086000527fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325506020527fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325506040527f68019add2e307b5807330d28d8577e078bcb965e9a852103a79d25185ee01a0a6060527fd9d79438bcd4e05d060c8b02c7ceba7abebe01846516257cb85e50c2c41d37746080526020600060a060006001610100611bcaf16014556000516015557f3e866a7b7a4024f8e07421be8291c5cc80bed4659564367fd2aa1e2d17a757156000527f5c1803812b8dceaf1d1aeb67107579a1586b07d8033d0772a644c89c9eecfc8960205260436040527f931c499350eb57b965618a1770ad601ee72b1d2f7534572e57bdc2a16e08d1266060527f22d032db5ab09081ca16ebddf3475c04c59a08252e57f318e87c122e64f439d36080526020600060a060006101006119bafa6016556000516017557fef02d493f62b3af6a7bfacaf888c58ae1b41d3e62bd483459f1682842ade1c726000527f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6020527f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040527f1a52172d34aa8c12e27afd17916b4a3dd4e4767bae7d5f499df89c7d0b6bd0936060527f8da714fb1068cd61fda3cf511ecde05e8345471ac198dd02cef0dbe4526c132d6080526020600060a06000610100611b06fa6018556000516019557fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6000527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6020527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6040527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6060527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6080526020600060a06000610100611b67fa601a55600051601b557f309481fc9139adcdc6f07820b3cf6426f6dcec887e1769ee0b31007ea4a28e616000527f82da988b9dae706975a53b1b941c835a17cbb087efcd65fef9888ef4002a6c3e6020527fbb0672091ddf44a9a90202fb492ecd36f7d2b00be1096d6b372de353f60825296040527fffffffff00000001000000000000000000000000ffffffffffffffffffffffff6060527f1d4df86c05e1b0aa40f4b2bb71876cb83d620ed52c608a990bcea20ccb20a61f6080526020600060a06000610100611b47f4601c55600051601d557f60fe3ec609d65041e5ac55b70de7281992889ad1786a60708710789a275d184c6000527f6789ee5622bbe61476741d925215c89c6ec90fb1c030fe2b7fc9115c5de4c1676020527f81ed559065083889f9b510aca63d4cc839c788991a3285d66434a2a930253cb96040527f6d6625dab4ff1516dc694b2a75ca0ae67105db20b29ffb26be51727f188e0ecb6060527f831fbde00ea788aa911818c1ffe8770c231214487e24ee209f533fccbc5f8f0a6080526020600060a060006000610100611c63f2601e55600051601f557f2b4d344ca37e370e6bce4d4d1b1f362d461709d8d7c676af6e6baaedb7947f136000527f2a9fcf851669dfb57aa0da70d5ad9e172dfdf89100ce9c6a034600b81211f8e56020527f6f0c3598071c216d471205667642f6b6d92a6c67b3deed518623c24e14f29ea76040527f5492389cd1891859b4afda3b89f99f8728c4491e2c7d05ab64317008276d843e6060527f31311a9f1858beecc762365d6b5980f9aaa889f9b34759fad1e0ab0a38f4597b6080526020600060a060006001610100611a13f16020556000516021557f86f5d8b49ceba7aeaf63e9c713c820dd8ed3f6852dc6bda135eb1849be189b4e6000527f3681867bcb7d33e72ffcb95310886698ef860db22b38607ed8adf05b13b828416020527f360a8074d67de629bfa3f8b3446f858878e201c1dfa90903a4aea5eca61146c06040527f392f90a658a4cdf01da2dd1ed687654b201f922d0d02e50618376cab335427db6060527f94c0e5df352182e7a2644cb07c5e8fbfd4f3873470f134a0bb0ba8ad48a32a596080526020600060a06000610100611960f46022556000516023557f2187e0b39b0602365f1a0d76868183a38cb1fd0f2a4d730ce4f6045c2d4926756000527f16fcabc35bf48a06b56b00493dffd9509f6c383a908754774922e9bcc4a8f7a46020527fd9420df2f0b941a7d9c8fe403ff0260b7c0af26ea3eda679cdbb4349eabf8b6f6040527fe10adfc7e992b0511b40fcc442e48e8898ec157cf51935d8dce8a05bf352c63f6060527fd22d191a8791b292932694ddf0a872e5ade42ed3419e15c2019a3684d222d9dc6080526020600060a060006001610100611bbaf26024556000516025557f5b0f9dbb43cdd626807517c7312f503bbdac76dfa29cc22cdd222b22a11adaad6000527fa119ba6510ea446dd9eaaa0bfc98392e23c4ec578498f33681ab6165e634aade6020527f26c16c5fd456933738accd67d30266854cabc2c87913f739b00596f6df3b47326040527f9203ea28df657ce09a406539e155680e09ced0b0bc312920ac2cb4d9820338036060527f27476b844dd0dcd6257f8e279f5f4bd9f79af95ec1054e9e38be7e4fe95f580b6080526020600060a060006000610100611be3f26026556000516027557fd833cd561af31de9949b67669b99be4e9d1c65b71a0dc822bac620e8627909c46000527ff273e568887d5c7c232c3b5b80cbb4304e12edec490de12f8ad1be8aa058ba7c6020527f845589edc62021e0437125910ed1cea3800c60f231c82dd049e462b0e58c3f52604052600060605260006080526020600060a06000610100611ba2f4602855600051602955600060005260006020526000604052600060605260006080526020600060a06000610100611c4cf4602a55600051602b557fdc7a6a7dbd8a42cf97100cbfb5343286879ea772d7f0e486bff85bac63a41cb56000527fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325506020527fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325506040527fffffffff00000001000000000000000000000000fffffffffffffffffffffffe6060527fffffffff00000001000000000000000000000000fffffffffffffffffffffffe6080526020600060a06000610100611a4bfa602c55600051602d557f18edc615251fb19db1799d1e0d9cc499707553d6f7e75fdef32e177a9c198ce76000527fc23b9c3d62f717841e0b1a251b772c1f286991f41bf6c2b6744c4d5db0c6c44f6020527f1642cc67c1202959cd38dca27c57aba75579fb113eb38759c4a5fcc46fb435ca6040527f445a1575344053415bed4619d4be1c958b6e61971073fc08d3830216443b02196060527ff5b127e67009d3373f5b7c9b4fcaf785eccb823da9d09f984b2d16a2fa3e05836080526020600060a06000610100611bd3f4602e55600051602f557fdc7a6a7dbd8a42cf97100cbfb5343286879ea772d7f0e486bff85bac63a41cb560005274800000000000000000000000000000000000000000602052748000000000000000000000000000000000000000006040527f9dcd2d2e205014181bcce7fa788a0ef7fa1dd6dcf1ae31bd0e6d4bee41a918cb6060527f126e9db6839b8c9f27aec5a6ac351952146ac9dc3f4b2b09f7849eb92bfe363c6080526020600060a06000600061010061199af1603055600051603155\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xB9A8D444BbCDFb9a6b19f59e0024184fbe10761c\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x8ffb0595345154a7a19e50c98c725ce7ae2231b522d58776a3f4472f3d622ca0\",\n      \"storage\": {}\n    },\n    \"0xBa0E31A0E75AC9a4cac4c57d6c7EF2a10e87D4e6\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7f26cc064393e356f34a892dd1815dc54437b2b669f31eb4c62b4903c08aabedc86000527f25ea1cdb71917d07e3f0d2620379e0a5ba2c4061bd663b291e619e795631b07a6020527f1ba0e01f911e12cbdd641b6b387876d2c45db434f342280af8cb43c45b5afd8d6040526040600060606000608860077fc71d868d71d0d82d13bf3293e7fc8a8e17e400ed0bf8ff4ab65cebe1ad753cfbf2600055600051600155602051600255\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xD74CFe323387aE2fd070CD046173026716D8D649\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x7f0120d0aeeaa75bcae6522020acde356d3b204cfda02419322a0b875bbe21490a6000527f1a200d4e4f07055a7de7507ea7be401aea666dae89de07142f8023e2b9ec5d966020527edc46c0113055cb6d18d48c6e1b46c188afb53373ed78cbd52ce8fa11f4e4a76040527fae9fb4d83a16077a020981dad4912dad522e8014117fa49408095016742564fd6060527ffd3879f9d9e46f2314c33e39b5cf41608395bc00161da71e3a3cbcf1c173165c6080527f437d18c6fbb60f851752e0bd2c44c8f59618faadcf06117915fbc0f0f620d60860a0526040600060c06000600a7f2c6d339c3f6418873266d0bdde127282b35741c9b47c522d30ce2ddb992b8dd6fa600055600051600155602051600255\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xDa78807c1C4567c23EB713E9fbB3b1508C1284ce\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x600060005260006020526000604052600060605260206000608060006000600161265ef16000556000516001557f8ffba10a0017ca5f8219909e128d511f31ba382b0d16f2df9c188d675ec691606000527f1d1f6dc7fd280f0613985080dd8712abfb86f6ab501331c2f76b1b75b41fd81d6020527f6ebbe1a2bf52d21e98477f1c849c68c5bc869cea5747e2b63272a8acdb0567866040527fd187e3992461b86080fe2d5de2844e395df602593ebb1821b20e0172daca8b7760605260206000608060006000600161d949f26002556000516003557f66b4f6e8a92f3f16280310feed70a2566d9af4d89434c564a3b6c581cfc62c7c6000527fafc59625004fd16e389059faef7927f7d6d1da75b445daa3d07c4baba821051b60205260006040527fbf941c82a54c09c167606a6efae9306aafbbe0ab3da162f92e97f389f62abc5060605260206000608060006001616c4cfa6004556000516005557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601b6020527f9d2ea85682769dce1d8d837360f17bed8c18f08157e7e3c75cd02d43e22d18156040527f641af4a62533813dc42df075c1d56e12c49a0b15e76d6673984a966904c8718160605260206000608060006001600161a349f26006556000516007557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601b6020527f2281e311cea2cfa2d47a95ecc920d2fd303025a731594cb63b341fab784f7f976040527f551dca8bd75d4b9a7a70c580fe2bd64c1645051a27764a1a0be26835a0a6c35760605260206000608060006000600162016959f26008556000516009557fd11c4a1918b16339575c493b5e703a275f0c72dfa9c48ecb2a5634f8c37929a16000527fe44db503c9eb138b141d8aa54cd48df9539d966001850963446a57b1f51bdb1b6020527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040527f13e1f66edabdc35841c531fb7387f640116df72c4e24f7d40050819e5ed7bedc60605260206000608060006000600162011544f1600a55600051600b556000600052601b60205260016040526001606052602060006080600060016001614b65f1600c55600051600d556000600052600060205260006040526000606052602060006080600060016201687ef4600e55600051600f557f9cae8ac6460c880a4245cc665db1bec3a711ede7de8cff6b374e70395b86dd256000527f27181ce37efb15fa507728635acef6bc88447cae85aade5709d5b66ed6705a1d6020527f8e2b295c578c6c3efa1980162d62733e54afd977da407669c1599acd1fe7d25a6040527f3a4e3ec1e15a60d4031f9067a24376f9e28c6857c9718c62a89886bde764466360605260206000608060006000600162010f56f16010556000516011557fefe4130c9e6b6fe6e37733bb46c25753aac68618489ce41ae0624e14d40363976000527ff874b185f1f225860aab85b3d4963966b9171cfaa46622db6e0782b59e8d1e1b60205260006040527fc9a2d0e35763f3dbd99acb56fb534c350ee000a65f9fdca5474f1aa0f1b31ec060605260206000608060006001620160f3f46012556000516013557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601c6020527fe436034a72ef7c34b9b1f2c3eac91192cb84b22d087e5884dacdd8696ff34b726040527f48803a6ed19bfc202f898a085136dd3ee4a918fdb3835663bdd96a50975e1745606052602060006080600060006001620142c7f26014556000516015557fd5042e3ec2ca8fde8b18909f94d7348e8b438a7263d2feeb2c422cb60f83bad86000527f55584a92ed548e75f6dcd3b25f48c5703fb8f0a85d772d8f587599b93f87fad46020527ffb1ced138fd8af5f88a6dcb089edafd1d2908513ef25ee480fdeadb2e83695146040527fa453d375eba08e416c4b97217f65e0b9307d4f5d3eaa7da79fdabe8e0f49bda6606052602060006080600060016001611401f26016556000516017557f82f33cf000118e725f5eed0187c8b6095a051ddbac8ded15de0d3c8928a808636000527fb8bc86053e103bb2549c3ff06a84d902e514c7e1ba1393502217d68a4aadb31b6020527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040527f08011bce289447868d688b9973ae2bbe9d8ad6c143ecfdc6b9b70fe282a496b860605260206000608060006001600161e1eff16018556000516019557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601b6020527fbe6d8c84796ce695fa00e4d0b0ac7132b50632ad157af5b1adc7c6702e9599d06040527f35381b299c20c4ba894596a0db9caddf538a0074684b690560e95be04a190d5e606052602060006080600060016001614ffdf1601a55600051601b556000600052600060205260006040526000606052602060006080600060016155c8f4601c55600051601d557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601b6020527fb0b5271225f035633edd33399f0913cbbef801313afb172c5fcd0590a94cf7b16040527f7e21e99a654ff21645693c71c11b776d4a9b61b7d9f15e5d97566f3eee5e60d3606052602060006080600060016001616deff2601e55600051601f557fb0e50afc95032ef3f21c5a95297c0d938886cb86da733009ef3d5e07193b7e1b6000527f4b48a05eb03d69aceb85b68608beebbd4bc578adf27f3b74091f5fc5df9df01b60205260006040527f2f9b55f0a732315697939e9d44523bf9b0c939ebc9a0e21edd2739a5923d0bcd60605260206000608060006001620182effa6020556000516021557fc39046a1193d18e62e84969d1a188a1c607d8ebfcef95072b96c7949676dd76f6000527f81726196fb4b59c1ba65eaefd21a431f9a3558de6d72087a82ed3563f0fc411c6020527f8f2ba33d42cb6bce63318886374c1fa956f1057cd6d529e2265874d75c5f35356040527fffffa2299df57260c1cbf85ea7379f90a3d546b6a4ad568d4935acd69a34db3c60605260206000608060006001600161af20f16022556000516023557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601b6020527ffe374920b47cf11a7b5da58393d25c34e5fe6e82b0d51d4a6e5c21b034e56ca86040527f17095694c8d8c9c8d28ac82b2f9df8f6618bacfc76c11d46b4d0c9e430f331ae606052602060006080600060006001620162acf26024556000516025557f15f24e505d16ac34cff2135dff87c71c10e11b65a33116164024b27cf27d1d006000527f536998cc03c326a9be90624f39787d5a14f9d5ebb2fd3b64823dd60f217fab1b6020527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040527f28dd42754fe747224d3095cd4d4a4107df952a05789098d2eca919073b149b9d60605260206000608060006001616d36fa6026556000516027557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601c6020527fd293fff8f5adb1cde1fc86abd0c24f5649eca393b7808fa635e4c0732457dd346040527f2fcb00f81dad8b140cc9cd948c7d3065911f8b07b23fdcfd558a7bfcb435cde860605260206000608060006001619593fa6028556000516029556000600052600060205260006040526000606052602060006080600060016123d8fa602a55600051602b557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601b6020527fbe7c2cdd179b62736e7d27dc41b00d66b0676aaf1416229f58f93c229be4d6d96040527f45419dc3d82bf0241483c47de0c38aea663dfb4e2fd3dd5db35155e4c582fd5f60605260206000608060006001600161897bf1602c55600051602d557fea83cdcdd06bf61e414054115a551e23133711d0507dcbc07a4bab7dc4581935600052601c6020527fbd5cd8a674673281e0ba3b891773dd48b80608999a9e6d2957f489e195854d4e6040527f1d3cb422a300a1292e963d0c85300794e42c3f57378ec436be9c331c88d600016060526020600060806000600161a560f4602e55600051602f557fdecd52e420acf17cc0d451565b7c67671329e510c8c62ad03a95cc7351c043cb6000527f8f9991901996d733ef224cedc1826d06918df3f6ed4588cb2736e2e0f50d891c6020527f3e03b0ff538af2ccc877e59141b53a07bf3942b8078713a07900276f3cd33f9f6040527fffff38e35ae5b3c57a64627f66b4e44d6f0e38a593eee27710ae85a61ab95310606052602060006080600060016192a2f4603055600051603155\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xE2f4CF89C9B94178B5725B8b1fd9a7F40c4a674C\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x671fffffffffffffff6b10000000000000000000000090187ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f7effffff800000000000000000000000000200004400000000000000000000019014901c6000557d76767676767600000000007600000000000000560000000000000000000060006380000001097ff6376770abd3a36b20394c5664afef1194c801c3f05e42566f085ed24d002bb0681000000000000000009006901767d02126262626262667b368d219438b7f3f187702ffffffffffffffffffffffffffffffffff000000030000638000000076fffff716b61616160b0b0b2b0b230b000008010d0a2b009008600155901c7702ffffffffffffffffffffffffffffffffff2000000000007f77676767676760000000000000001002e000000000000040000000e000000000900a901590191871767676767676767676000000767676767676690100000000000000000060070890187ffffff716b61616160b0b0b2b0b0b0becf4bef50a0df4f48b090b2b0bc60a0a007ff6376770abd3a36b20394c5664afef1194c801c3f05e42566f085ed24d002bb09011196002557e4b00000b41000b0b0b2b0b0b0b0b0b410a0aeff4f40b090b2b0bc60a0a100067ffffffffffffffff020b6780000000000000006fdac7fff9ffd9e1322626262626262600901a712000110000000d0a300e750a000000090a0a7f8000000000000000000000000000000000000000000000000000000000000002691000000000000000000009076003556b1000000000000000000000007bc9700000000000000000023f00c00014ff002c000000000000223108901190047cc9700000000000000000023f00c00014ff0000000000000000223008057feeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee9012901590046d01000000000000000000000000007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90179004681000000000000000006f80000000000000010000000000000000177d767676767676000000000076000000000000005600000000000000000000760fffc000000000000767676240000000000002b05760477ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb9009901960045504762900760076761e000200767600000000767676760000007702ffffffffffffffffffffffffffffffffff2000000000009010901c156005556c1000000000000000000000000076fffff716b61616160b0b0b2b0b230b000008010d0a2b0003778200000000000000fe000004000000ffff000000fffff7006fdac7fff9ffd9e132262626262626260013027f40000000fd000000db0000000000000000000000000000000000000000000001637fffffff90106006556fdac7fff9ffd9e13226262626262626006847839214543589705216900260075577800000000000000080000000000000008000000000000000681000000000000000000a7ee8e8e8e2000100000009ea02000000000000ff3ffffff800000010002280ff7feeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee016008557806400aff20ff00200004e7fd1eff08ffca0afd1eff08ffca0a677fffffffffffffff1390106f800000000000000100000000000000006001121c7ffffff716b61616160b0b0b2b0b0b0becf4bef50a0df4f48b090b2b0bc60a0a007bc9700000000000000000023f00c00014ff002c000000000000223108901860095560006000f3\",\n      \"nonce\": \"0x0\",\n      \"storage\": {\n        \"0x000000000000000000000000000000000000000000000000000000000000000a\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000b\": \"0x000000000000000000000000000000000000000000000000000000000000000a\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000c\": \"0x0000000000000000000000000000000000000000000000000000000000000009\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000d\": \"0x0000000000000000000000000000000000000000000000000000000000000012\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000e\": \"0x0000000000000000000000000000000000000000000000000000000000000011\",\n        \"0x000000000000000000000000000000000000000000000000000000000000000f\": \"0x0000000000000000000000000000000000000000000000000000000000000008\"\n      }\n    },\n    \"0xa94f5374Fce5edBC8E2a8697C15331677e6EbF0B\": {\n      \"balance\": \"0xffffffffff\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n      \"storage\": {}\n    },\n    \"0xe1fAE9b4fAB2F5726677ECfA912d96b0B683e6a9\": {\n      \"balance\": \"0x0\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xe583e10A46B183759EBdA6b6C9F4c5c8Bac3f93B\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0xd04de6bff05c8224a456b8903e1eccc90b0536886d56e39545afdebcfd03bed3\",\n      \"storage\": {}\n    },\n    \"0xf3eAc1d1B1EC8cA737bD148b1E96168024fB3F89\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x6000496000556001496001556003496002554a6003556002600455\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    },\n    \"0xf7c6909762e861F8c904c21cf3Da0D2f4307978D\": {\n      \"balance\": \"0x8ac7230489e80000\",\n      \"code\": \"0x\",\n      \"nonce\": \"0x0\",\n      \"privateKey\": \"0x7b323b16770a849a484590f9b4bba2c1f64d350b326633d6d120bfca55a11efd\",\n      \"storage\": {}\n    },\n    \"0xfD6241df8Ce82b2Fb4126dD0e9FA931806Fa573c\": {\n      \"balance\": \"0x989680\",\n      \"code\": \"0x60216000526103f260205260216040527f3623fd54cd06b75de7239ccf1b2449a0c9fd70c16f144a6bd2c9b0ac1fbfa8426060527f5d682940046b0afaf1eb7c6108fc0c970b258534d91d98209d333897b4b59b846080527f4c11a995c208cf5b0d4a29d98e5febda07077f48c48e29111a22442dee68cb9460a0527f950bef146802e0392142abe6ee810af996bea2fb476355f7593642d094ac676260c0527fd0b37c652e6f974b1a3c20664bb531a1e90a07d2d2c72b6115b9688f2002657660e0527ff631350425b8e604137eab399d6197e946a94e944bd07cb999e55efb5e744c94610100527f316b2d67bc1e378311ca594b35b3db4bf9b62cc5c83067a5147007124415f517610120527f1653e592c605857d24772e234ab2688aae83ac8deacdcaa5106fb4af091c8f81610140527f21ea6e72b65e0a16201deb8766050c2bc0612d7777f7b38b865ca773fb5b564c610160527fb69766036db609f36cf7a7c24a8b29254a6f2087ee0d7cccae89c0a3960f3294610180527f3d6a4d27eb848d841c593cac2bfd6f193e1aa156f89786510162d5f9662d49856101a0527f40c0d5118ea194423736359189066377b8195b4659fc3beada17066ba04132a76101c0527f8fc99a206ed6cdac47c088c9b71f4c8ffedb694103f96dddccc1457b7a71318e6101e0527f5649a7fa1ddb7d657a9102f7f5a1a0bd31d21a9388ab01bcf3ff7a0dafc7caeb610200527ffe8d1945e75ffc64e7e1a0e28e6ddab729070484ab13e7b4588eee69fd20980d610220527f06b489907a05480d4bd15c2e811243b0e69483a1759b21dfd02119359c61be16610240527f2476c6aa2b8e075e8c5e60c22223ab7610f7961b88f6f94a35f48ac59c0ccab6610260527fdba179d99abb3d9cb827d031e122f1b6ae6ff0761ce5e62ff2f6b439d7d5c721610280527f3f1ea572872467aac1cea6022193187d39de665fa8eba806cc43f0ab92e5b0816102a0527fb40663f10434fc54da8900ecc24c1ce52254d229603ff06a0a91a393f58c04416102c0527f38cbdf77b1cb1fff9022d5f3ffd04f1ce41442ec8c0086b94aaf2700525f60816102e0527f6beb95bbee2d635427cb55c90edf55323fda330b1709eaf414b391187e096830610300527fe07054ce1cc262cf540e7672266cc70e616c9fcb2b770daa52ee17329a1b3f19610320527fe6c7acff91edb2d66c98f2290c641b4c230f59db3f978964af0549ae58d3a1f4610340527f8537d71840b84339ef799929127470bbe566945ba3600b765fdcc2dd1c1f470e610360527f4dfa8d7e7650e02b28eb62be4eb0c79a718b70e84bf63a10bcb050a0b0db2469610380527f7858ec131355134d102649bfe55ca13bf7812924d28d5851f5c4b1d4ed3c28066103a0527f4668d069b63983dc376dd9940250c84fe5fad561f60c3cccac2ac3d5e79df7666103c0527f4d8520a4c52e2fa81849f4eba861282e70f6fc67ef38d5727bead9bb96432bb26103e0527fa4e584909b998e4926f86f26c61e7dbb2ff97e0ff20fb9cc15afeab67b8ce5ca610400527f616b8111dcb7a9e369eb0fc06366dac06ddc34eb75efe6e8a758d2a46d1deaa1610420527f0dc20600f514db6ef4b5da00e489e2bf64386e4d91b5cdcd3151f98b83ee6ced610440527f2ab02ae3d7f233d2a21d6188b372fad4957220a3c1357422d3902689fb536eef6104605260446104805360c86104815360c96104825360966104835360f36104845360c061048553605661048653604b6104875360836104885360256104895360c861048a5360bf61048b53602561048c53609461048d53602961048e53608d61048f536083610490536078610491536049610492536096610493536021600061049460006005620fe4adf45a01600055600051600155602051600255\",\n      \"nonce\": \"0x0\",\n      \"storage\": {}\n    }\n  },\n  \"chainId\": 1,\n  \"env\": {\n    \"currentBaseFee\": \"0xa\",\n    \"currentBlobGasUsed\": \"0x40000\",\n    \"currentCoinbase\": \"0xc014Ba5e00000000000000000000000000000000\",\n    \"currentDifficulty\": \"0x20000\",\n    \"currentExcessBlobGas\": \"0x40000\",\n    \"currentGasLimit\": \"0x11e1a300\",\n    \"currentNumber\": \"0x1\",\n    \"currentTimestamp\": \"0x3e8\"\n  },\n  \"fork\": \"Osaka\",\n  \"parentBeaconBlockRoot\": \"0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f\",\n  \"transactions\": [\n    {\n      \"data\": \"0x8e\",\n      \"from\": \"0x78011f4E10a54C02296EfeB11034d561320e8949\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0xBa0E31A0E75AC9a4cac4c57d6c7EF2a10e87D4e6\",\n      \"value\": \"0x4a\"\n    },\n    {\n      \"data\": \"0x\",\n      \"from\": \"0x94b690A97d429F297d32b8fED10213e759861599\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x20\",\n      \"nonce\": 0,\n      \"to\": \"0x538A8474EeaB43d5a960164c554A20400151D479\",\n      \"value\": \"0x74402e\"\n    },\n    {\n      \"data\": \"0x5fba026aad22ba6d36391ae06cc12b8887c2f8b66741f5c57853e6480826ad6b4fe3bb038561\",\n      \"from\": \"0xf7c6909762e861F8c904c21cf3Da0D2f4307978D\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0x3Bd84e661C47a73eEe4137D185E4c31c194C343f\",\n      \"value\": \"0xa6\"\n    },\n    {\n      \"data\": \"0xb9e0c6c06b57302452e876c996345d34e9ad5434bbeacf59e90fff975f1fe072e7f6f3f33266af1aa0ea535d2741ceafaafa745d5d9653008598379dcd69594e00544ffe6c1509c8ff28dd459e1410e61827cd01dc05bef761bdda\",\n      \"from\": \"0x82361b537D93C7A0079Dba1E4f367EaE7b5D5f2E\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0x9E607bB0Bae19b8bC75638fd1aB98594b36ba46d\",\n      \"value\": \"0x1fe4\"\n    },\n    {\n      \"data\": \"0xb88caa18d4de9c90178eecb316248c992f6fc85c57a7970cb37bb1dc781aa8848e011b5a741a61f67e505ee5532d849365395fb740ed631138e9edae986483563d29\",\n      \"from\": \"0xB9A8D444BbCDFb9a6b19f59e0024184fbe10761c\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0x22986B2F9A2f5E7119F940898c35e7128A4Ce7E3\",\n      \"value\": \"0xa8ac92\"\n    },\n    {\n      \"data\": \"0x3ef31a11b704ef279b601279a6296bf1039df853abdfc74f36a10522a7af9040a0e907e9fd14cd2e81a5d079e8a723e8aa39956f73387afaa9c1d2eee1ff14\",\n      \"from\": \"0x78011f4E10a54C02296EfeB11034d561320e8949\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 1,\n      \"to\": \"0x9529cc6891Fbd5aBFABE0AE6c79D30F0CCAe848F\",\n      \"value\": \"0x750d9e\"\n    },\n    {\n      \"data\": \"0xd4559e7fd8a8496695ae9233914fa1fba8ddb2e4eab01d79d9426299a5\",\n      \"from\": \"0x94b690A97d429F297d32b8fED10213e759861599\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 1,\n      \"to\": \"0xfD6241df8Ce82b2Fb4126dD0e9FA931806Fa573c\",\n      \"value\": \"0x0\"\n    },\n    {\n      \"blobVersionedHashes\": [\n        \"0x01b9a0a66963a7a2735327cbb69cec9c07c2644c444a4a75bb58ae87fe70ec6e\",\n        \"0x01c0937d94e0a52b9af97df93c6f0d33392f2b3ccdb55c84808a9a29988197d6\",\n        \"0x01b736808fd4fc140fa4af910c0265186faad28a8a087730a3e71e5bdacad36d\",\n        \"0x013a1bef93a852ea266538894c417e60875c907875d58766051d3677585a651a\",\n        \"0x01ea6e6b1e708d9dccabdfa016f94d7f5b18a2bc565b438724634bcc72643927\",\n        \"0x0145f4cc59d6d83e1a5ff9d4c4171ef8854be73adbca43f41f1dfe53a1f8afb8\"\n      ],\n      \"data\": \"0x8c54f5\",\n      \"from\": \"0xf7c6909762e861F8c904c21cf3Da0D2f4307978D\",\n      \"gas\": \"0xf42400\",\n      \"maxFeePerBlobGas\": \"0x100\",\n      \"maxFeePerGas\": \"0x20\",\n      \"maxPriorityFeePerGas\": \"0x1\",\n      \"nonce\": 1,\n      \"sidecar\": {\n        \"blobs\": 6,\n        \"commitments\": 6,\n        \"proofs\": 6\n      },\n      \"to\": \"0xf3eAc1d1B1EC8cA737bD148b1E96168024fB3F89\",\n      \"type\": \"0x3\",\n      \"value\": \"0x0\"\n    },\n    {\n      \"data\": \"0x3139811779e97d51edcca9f0f79b1b2fcd5bc74a1da9a7c90ac6fc1366ade717b52e58e1b0\",\n      \"from\": \"0x82361b537D93C7A0079Dba1E4f367EaE7b5D5f2E\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 1,\n      \"to\": \"0x641602bAD4A323C49629d45338d79A2bb984A3fb\",\n      \"value\": \"0x0\"\n    },\n    {\n      \"data\": \"0x\",\n      \"from\": \"0xB9A8D444BbCDFb9a6b19f59e0024184fbe10761c\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 1,\n      \"to\": \"0xD74CFe323387aE2fd070CD046173026716D8D649\",\n      \"value\": \"0x92\"\n    },\n    {\n      \"data\": \"0x25257c9ea9a05c62de65f6f1613928d3dd9f1694b0ce543c5cf7a4cdd41a21b33053082b2312eb71122e3c5901c4ad7797bc6a98b067e7268da2de8d02d544\",\n      \"from\": \"0x78011f4E10a54C02296EfeB11034d561320e8949\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 2,\n      \"to\": \"0x766C0844EBC3c4ef4ddb86260a4D3516cCa03A10\",\n      \"value\": \"0x47\"\n    },\n    {\n      \"data\": \"0x48a095c06665b1190c6653014033badc12021c60193e8eb6e8c8822ec3a5605086f4cee4b39c17abb9b02d1046e5c9e59915bf3968b9529020a499\",\n      \"from\": \"0x94b690A97d429F297d32b8fED10213e759861599\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 2,\n      \"to\": \"0x1d891f21BB2a55cD9EC7a32478f7c74d757c4876\",\n      \"value\": \"0xf69e\"\n    },\n    {\n      \"data\": \"0xfba48342d570d662f5cc18448171f710e934b7\",\n      \"from\": \"0xf7c6909762e861F8c904c21cf3Da0D2f4307978D\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 2,\n      \"to\": \"0x7458F9b8B5ee360A32b0b0Fe648C996C68AE8190\",\n      \"value\": \"0xc920\"\n    },\n    {\n      \"data\": \"0xec004e5112fb80f934d824af5b6ae62f5397ca8c95ab9efb09baa7a67524ba3d4c51f4d774715bd442806ef5dc3ec256c3d61f97ded829c8\",\n      \"from\": \"0x82361b537D93C7A0079Dba1E4f367EaE7b5D5f2E\",\n      \"gas\": \"0xf42400\",\n      \"gasPrice\": \"0x10\",\n      \"nonce\": 2,\n      \"to\": \"0xDa78807c1C4567c23EB713E9fbB3b1508C1284ce\",\n      \"value\": \"0x4cc67\"\n    },\n    {\n      \"authorizationList\": [\n        {\n          \"address\": \"0x0000000000000000000000000000000000000011\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x0\",\n          \"r\": \"0xc85231701b4522e30f0612a30f5232b35d33a866a963ade8ff2c5e8852871b63\",\n          \"s\": \"0x67cc51220312f0e513ca06ee1923c144e1717f4485ba44ecfd3f5b802cfbbc34\",\n          \"v\": \"0x1\"\n        },\n        {\n          \"address\": \"0x0000000000000000000000000000000000000011\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x0\",\n          \"r\": \"0xd7fd315f0a21617cbad586fe26272506edb4a08088290683c37dd206e53aaa0e\",\n          \"s\": \"0x240d9bc9570a3d1d6a5018dcec493b70620f59f01ec75873f6ecfdd31ae488\",\n          \"v\": \"0x1\"\n        },\n        {\n          \"address\": \"0x000000000000000000000000000000000000000a\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x0\",\n          \"r\": \"0x9f38d3bef386cc1c61793f5a3eb8642a0df6ec0c0099f6fd390b99a35ad63e5b\",\n          \"s\": \"0x7d728242231f8632e0e89861c8053024e3bed6de2e29f47b4e034712b45f3c3d\",\n          \"v\": \"0x0\"\n        },\n        {\n          \"address\": \"0x0000000000000000000000000000000000000005\",\n          \"chainId\": \"0x0\",\n          \"nonce\": \"0x0\",\n          \"r\": \"0x2b6bbd42a3b7c53e20e688b857c21ae5ea552e203fb85d173c15bccbb5c1a0b6\",\n          \"s\": \"0x11fbe9f4188ebc5c59c80cc65f0d555d41ec0148434d1b37fc348f41b87625bc\",\n          \"v\": \"0x0\"\n        }\n      ],\n      \"data\": \"0x190b8a4289\",\n      \"from\": \"0x6EB54E66856fD47bd539A986B19F0Bc9B7B4dA9F\",\n      \"gas\": \"0xf42400\",\n      \"maxFeePerGas\": \"0x10\",\n      \"maxPriorityFeePerGas\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0xe1fAE9b4fAB2F5726677ECfA912d96b0B683e6a9\",\n      \"type\": \"0x4\",\n      \"value\": \"0x0\"\n    },\n    {\n      \"data\": \"0x00\",\n      \"from\": \"0x4133B3E532cC750d0a4691c8Bb0B03fba51707FC\",\n      \"gas\": \"0x30d40\",\n      \"maxFeePerGas\": \"0x1e\",\n      \"maxPriorityFeePerGas\": \"0x1\",\n      \"nonce\": 0,\n      \"to\": \"0x0000000000000000000000000000000000000011\",\n      \"type\": \"0x2\",\n      \"value\": \"0x3e8\"\n    },\n    {\n      \"authorizationList\": [\n        {\n          \"address\": \"0x0000000000000000000000000000000000000000\",\n          \"chainId\": \"0x1\",\n          \"nonce\": \"0x2\",\n          \"r\": \"0x5dacfa13af5badbc0d7892ab80bdfb50697fdcf55eda65d933585fff39a52def\",\n          \"s\": \"0x1dbc77f20853c92d53095f9e2e5280b3e2565a14ea4a24fb2e9706892d04f236\",\n          \"v\": \"0x1\"\n        }\n      ],\n      \"data\": \"0x190b8a4289\",\n      \"from\": \"0xe583e10A46B183759EBdA6b6C9F4c5c8Bac3f93B\",\n      \"gas\": \"0xf42400\",\n      \"maxFeePerGas\": \"0x10\",\n      \"maxPriorityFeePerGas\": \"0x10\",\n      \"nonce\": 0,\n      \"to\": \"0xe1fAE9b4fAB2F5726677ECfA912d96b0B683e6a9\",\n      \"type\": \"0x4\",\n      \"value\": \"0x0\"\n    }\n  ],\n  \"version\": \"2.0\"\n}"
  },
  {
    "path": "src/cli/tox_helpers.py",
    "content": "\"\"\"\nCLI commands used by tox.ini.\n\nContains wrappers to the external commands markdownlint-cli2 and pyspelling\n(requires aspell) that fail silently if the command is not available. The aim\nis to avoid disruption to external contributors.\n\"\"\"\n\nimport os\nimport re\nimport shutil\nimport subprocess\nimport sys\nfrom pathlib import Path\n\nimport click\nfrom pyspelling import __main__ as pyspelling_main  # type: ignore\nfrom rich.console import Console\n\n\ndef write_github_summary(\n    title: str, tox_env: str, error_message: str, fix_commands: list[str]\n) -> None:\n    \"\"\"\n    Write a summary to GitHub Actions when a check fails.\n\n    Args:\n      title: The title of the check that failed tox_env: The tox\n             environment name (e.g., \"spellcheck\")\n      tox_env: The tox environment\n      error_message: Description of what went wrong\n      fix_commands: List of commands to fix the issue locally\n\n    \"\"\"\n    if not os.environ.get(\"GITHUB_ACTIONS\"):\n        return\n\n    summary_file = os.environ.get(\"GITHUB_STEP_SUMMARY\")\n    if not summary_file:\n        return\n\n    with open(summary_file, \"a\") as f:\n        f.write(f\"## ❌ {title}\\n\\n\")\n        f.write(f\"{error_message}\\n\\n\")\n        f.write(\"### To reproduce this check locally:\\n\")\n        f.write(\"```bash\\n\")\n        f.write(f\"uvx --with=tox-uv tox -e {tox_env}\\n\")\n        f.write(\"```\\n\\n\")\n\n        if fix_commands:\n            f.write(\"### To verify and fix the issues:\\n\")\n            f.write(\"```bash\\n\")\n            for cmd in fix_commands:\n                f.write(f\"{cmd}\\n\")\n            f.write(\"```\\n\")\n\n\n@click.command(\n    context_settings={\n        \"ignore_unknown_options\": True,\n        \"allow_extra_args\": True,\n    }\n)\n@click.argument(\"args\", nargs=-1, type=click.UNPROCESSED)\ndef markdownlint(args: tuple[str, ...]) -> None:\n    \"\"\"\n    Lint the markdown in ./README.md and ./docs/ using the external command\n    markdownlint-cli2.\n\n    Silently fail if markdownlint-cli2 is not installed.\n\n    Allows argument forwarding to markdownlint-cli2.\n    \"\"\"\n    markdownlint = shutil.which(\"markdownlint-cli2\")\n    if not markdownlint:\n        # Note: There's an additional step in test.yaml to run markdownlint-\n        # cli2 in GitHub Actions\n        click.echo(\"********* Install 'markdownlint-cli2' to enable markdown linting *********\")\n        sys.exit(0)\n\n    args_list: list[str] = list(args) if len(args) > 0 else [\"./docs/**/*.md\", \"./README.md\"]\n\n    command = [\"node\", markdownlint] + args_list\n    sys.exit(subprocess.run(command).returncode)\n\n\n@click.command()\ndef pyspelling() -> None:\n    \"\"\"\n    Spellcheck the markdown in ./README.md and ./docs/ using the pyspelling\n    package.\n\n    Silently fails if aspell is not installed (required by pyspelling).\n\n    Command-line arguments are not forwarded to pyspelling.\n    \"\"\"\n    if not shutil.which(\"aspell\"):\n        click.echo(\"aspell not installed, skipping spellcheck.\")\n        if os.environ.get(\"GITHUB_ACTIONS\"):\n            write_github_summary(\n                title=\"Pyspelling Check Failed\",\n                tox_env=\"spellcheck\",\n                error_message=(\n                    \"aspell is not installed. This tool is required for spell checking \"\n                    \" documentation.\"\n                ),\n                fix_commands=[\n                    \"# Install aspell on Ubuntu/Debian\",\n                    \"sudo apt-get install aspell aspell-en\",\n                    \"\",\n                    \"# Install aspell on macOS\",\n                    \"brew install aspell\",\n                ],\n            )\n            sys.exit(1)\n        else:\n            click.echo(\n                \"*********  Install 'aspell' and 'aspell-en' to enable spellcheck *********\"\n            )\n            sys.exit(0)\n\n    result = pyspelling_main.main()\n    if result != 0:\n        write_github_summary(\n            title=\"Pyspelling Check Failed\",\n            tox_env=\"spellcheck\",\n            error_message=\"Pyspelling found spelling errors in the documentation.\",\n            fix_commands=[\n                \"# Check the pyspelling configuration\",\n                \"cat .pyspelling.yml\",\n                \"\",\n                \"# Review and fix spelling errors manually\",\n                \"# Pyspelling doesn't have an auto-fix option\",\n            ],\n        )\n    sys.exit(result)\n\n\n@click.command()\ndef codespell() -> None:\n    \"\"\"\n    Run codespell on the codebase and provide helpful error messages.\n\n    Checks spelling in .github/, src/, tests/, and docs/ directories.\n    \"\"\"\n    console = Console()\n\n    # Define the paths to check\n    paths_to_check = [\"*.md\", \"*.ini\", \".github/\", \"src/\", \"tests/\", \"docs/\"]\n    paths_str = \" \".join(paths_to_check)\n\n    # Run codespell\n    result = subprocess.run(\n        [\"codespell\"] + paths_to_check,\n        capture_output=True,\n        text=True,\n    )\n\n    # Print the output\n    if result.stdout:\n        console.print(result.stdout)\n    if result.stderr:\n        console.print(result.stderr, style=\"red\")\n\n    # If there were spelling errors, show a helpful message\n    if result.returncode != 0:\n        console.print(\"\\n[bold red]❌ Spellcheck Failed[/bold red]\")\n        console.print(\n            \"[yellow]Please review the errors above. For single-suggestion fixes, you can \"\n            \"automatically apply them with:[/yellow]\"\n        )\n        console.print(f\"[cyan]uv run codespell {paths_str} --write-changes[/cyan]\\n\")\n\n        # Write to GitHub Actions summary\n        write_github_summary(\n            title=\"Spellcheck Failed\",\n            tox_env=\"spellcheck\",\n            error_message=\"Codespell found spelling errors in the code.\",\n            fix_commands=[\n                \"# Ensure codespell is installed (part of docs extras)\",\n                \"uv sync --all-extras\",\n                \"\",\n                \"# Check for spelling errors\",\n                f\"uv run codespell {paths_str}\",\n                \"\",\n                \"# Automatically fix single-suggestion errors\",\n                f\"uv run codespell {paths_str} --write-changes\",\n            ],\n        )\n\n        sys.exit(1)\n\n    sys.exit(0)\n    sys.exit(pyspelling_main.main())\n\n\n@click.command()\ndef validate_changelog() -> None:\n    \"\"\"\n    Validate changelog formatting to ensure bullet points end with proper\n    punctuation.\n\n    Checks that all bullet points (including nested ones) end with either:\n    - A period (.) for regular entries\n    - A colon (:) for section headers that introduce lists\n    \"\"\"\n    changelog_path = Path(\"docs/CHANGELOG.md\")\n\n    if not changelog_path.exists():\n        click.echo(f\"❌ Changelog file not found: {changelog_path}\")\n        sys.exit(1)\n\n    try:\n        with open(changelog_path, \"r\", encoding=\"utf-8\") as f:\n            content = f.read()\n    except Exception as e:\n        click.echo(f\"❌ Error reading changelog: {e}.\")\n        sys.exit(1)\n\n    # Find bullet points that don't end with period or colon\n    invalid_lines = []\n    for line_num, line in enumerate(content.splitlines(), 1):\n        if re.match(r\"^\\s*-\\s+\", line) and re.search(r\"[^\\.:]$\", line.rstrip()):\n            invalid_lines.append((line_num, line.strip()))\n\n    if invalid_lines:\n        click.echo(f\"❌ Found bullet points in {changelog_path} without proper punctuation:\")\n        click.echo()\n        for line_num, line in invalid_lines:\n            click.echo(f\"Line {line_num}: {line}\")\n        click.echo()\n        click.echo(\"💡 All bullet points should end with:\")\n        click.echo(\"  - A period (.) for regular entries.\")\n        click.echo(\"  - A colon (:) for paragraphs that introduce lists.\")\n        sys.exit(1)\n    else:\n        click.echo(\"✅ All bullet points have proper punctuation!\")\n        sys.exit(0)\n"
  },
  {
    "path": "src/config/__init__.py",
    "content": "\"\"\"\nInitializes the config package.\n\nThe config package is responsible for loading and managing application-wide\nenvironment configurations, making them accessible throughout the application.\n\"\"\"\n\n# This import is done to facilitate cleaner imports in the project\n# `from config import AppConfig` instead of `from config.app import AppConfig`\nfrom .app import AppConfig\nfrom .docs import DocsConfig\nfrom .env import EnvConfig\n\n__all__ = [\"AppConfig\", \"DocsConfig\", \"EnvConfig\"]\n"
  },
  {
    "path": "src/config/app.py",
    "content": "\"\"\"\nA module for managing application configurations.\n\nClasses:\n- AppConfig: Holds configurations for the application framework.\n\"\"\"\n\nfrom pathlib import Path\n\nfrom pydantic import BaseModel\n\nimport pytest_plugins.consume.releases as releases\n\n\nclass AppConfig(BaseModel):\n    \"\"\"A class for accessing documentation-related configurations.\"\"\"\n\n    @property\n    def version(self) -> str:\n        \"\"\"Get the current version from releases.\"\"\"\n        spec = \"stable@latest\"\n        release_url = releases.get_release_url(spec)\n        return release_url.split(\"/v\")[-1].split(\"/\")[0]\n\n    DEFAULT_LOGS_DIR: Path = Path(__file__).resolve().parent.parent.parent / \"logs\"\n    \"\"\"The default directory where log files are stored.\"\"\"\n\n    ROOT_DIR: Path = Path(__file__).resolve().parents[2]\n    \"\"\"The root directory of the project.\"\"\"\n"
  },
  {
    "path": "src/config/check_eip_versions.py",
    "content": "\"\"\"A module for managing configuration for the `check_eip_version` utility.\"\"\"\n\nfrom pydantic import BaseModel\n\n\nclass CheckEipVersionsConfig(BaseModel):\n    \"\"\"A class for accessing configurations for `check_eip_version`.\"\"\"\n\n    UNTIL_FORK: str = \"Prague\"\n    \"\"\"The target fork to check eip versions until.\"\"\"\n"
  },
  {
    "path": "src/config/docs.py",
    "content": "\"\"\"\nA module for managing documentation-related configurations.\n\nClasses:\n  DocsConfig: Holds configurations for documentation generation.\n\"\"\"\n\nfrom pydantic import BaseModel\n\n\nclass DocsConfig(BaseModel):\n    \"\"\"A class for accessing documentation-related configurations.\"\"\"\n\n    TARGET_FORK: str = \"Osaka\"\n    \"\"\"The target fork for the documentation.\"\"\"\n\n    GENERATE_UNTIL_FORK: str = \"Osaka\"\n    \"\"\"The fork until which documentation should be generated.\"\"\"\n\n    DOCS_BASE_URL: str = \"https://eest.ethereum.org\"\n\n    # Documentation URLs prefixed with `DOCS_URL__` to avoid conflicts with\n    # other URLs\n    DOCS_URL__WRITING_TESTS: str = f\"{DOCS_BASE_URL}/main/writing_tests/\"\n"
  },
  {
    "path": "src/config/env.py",
    "content": "\"\"\"\nA module for exposing application-wide environment variables.\n\nThis module is responsible for loading, parsing, and validating the\napplication's environment configuration from the `env.yaml` file. It uses\nPydantic to ensure that the configuration adheres to expected formats and\ntypes.\n\nFunctions:\n- create_default_config: Creates a default configuration file if it\n                         doesn't exist.\n\nClasses:\n- EnvConfig: Loads the configuration and exposes it as Python objects.\n- RemoteNode: Represents a remote node configuration with validation.\n- Config: Represents the overall configuration structure with validation.\n\nUsage:\n- Initialize an instance of EnvConfig to load the configuration.\n- Access configuration values via properties (e.g., EnvConfig().remote_nodes).\n\"\"\"\n\nfrom pathlib import Path\nfrom typing import Dict, List\n\nimport yaml\nfrom pydantic import BaseModel, HttpUrl, ValidationError\n\nENV_PATH = Path(__file__).resolve().parent.parent.parent / \"env.yaml\"\n\n\nclass RemoteNode(BaseModel):\n    \"\"\"\n    Represents a configuration for a remote node.\n\n    Attributes:\n      name (str): The name of the remote node.\n      node_url (HttpUrl): The URL for the remote node, validated as a\n                          proper URL.\n      rpc_headers (Dict[str, str]): A dictionary of optional RPC headers,\n                                    defaults to empty dict.\n\n    \"\"\"\n\n    name: str = \"mainnet_archive\"\n    node_url: HttpUrl = HttpUrl(\"http://example.com\")\n    rpc_headers: Dict[str, str] = {\"client-secret\": \"<secret>\"}\n\n\nclass Config(BaseModel):\n    \"\"\"\n    Represents the overall environment configuration.\n\n    Attributes:\n      remote_nodes (List[RemoteNode]): A list of remote node configurations.\n\n    \"\"\"\n\n    remote_nodes: List[RemoteNode] = [RemoteNode()]\n\n\nclass EnvConfig(Config):\n    \"\"\"\n    Loads and validates environment configuration from `env.yaml`.\n\n    This is a wrapper class for the Config model. It reads a config file from\n    disk into a Config model and then exposes it.\n    \"\"\"\n\n    def __init__(self) -> None:\n        \"\"\"Init for the EnvConfig class.\"\"\"\n        if not ENV_PATH.exists():\n            raise FileNotFoundError(\n                f\"The configuration file '{ENV_PATH}' does not exist. \"\n                \"Run `uv run eest make env` to create it.\"\n            )\n\n        with ENV_PATH.open(\"r\") as file:\n            config_data = yaml.safe_load(file)\n            try:\n                # Validate and parse with Pydantic\n                super().__init__(**config_data)\n            except ValidationError as e:\n                raise ValueError(f\"Invalid configuration: {e}\") from e\n"
  },
  {
    "path": "src/config/templates/env.yaml.j2",
    "content": "# This file contains environment-specific configurations for the application.\n# It is git-ignored to keep local secrets safe.\n\n# The configuration stores Ethereum RPC node details.\nremote_nodes:\n{% for node in config.remote_nodes %}\n  - name: {{ node.name }}\n    # Replace with your Ethereum RPC node URL\n    node_url: {{ node.node_url }}\n    # Optional: Headers for RPC requests\n    rpc_headers:\n      {% for key, value in node.rpc_headers.items() %}\n      {{ key }}: {{ value }}\n      {% endfor %}\n{% endfor %}"
  },
  {
    "path": "src/conftest.py",
    "content": "\"\"\"Local pytest configuration used on multiple framework tests.\"\"\"\n\nimport os\nfrom typing import Dict, Generator\n\nimport pytest\n\nfrom ethereum_clis import BesuTransitionTool, ExecutionSpecsTransitionTool, TransitionTool\n\nDEFAULT_TRANSITION_TOOL_FOR_UNIT_TESTS = ExecutionSpecsTransitionTool\n\nINSTALLED_TRANSITION_TOOLS = [\n    transition_tool\n    for transition_tool in TransitionTool.registered_tools\n    if (\n        transition_tool.is_installed()\n        # Currently, Besu has the same `default_binary` as Geth, so we can't\n        # use `is_installed`.\n        and transition_tool != BesuTransitionTool\n    )\n]\n\n\n@pytest.fixture(scope=\"session\")\ndef installed_transition_tool_instances() -> Generator[\n    Dict[str, TransitionTool | Exception], None, None\n]:\n    \"\"\"Return all instantiated transition tools.\"\"\"\n    instances: Dict[str, TransitionTool | Exception] = {}\n    for transition_tool_class in INSTALLED_TRANSITION_TOOLS:\n        try:\n            transition_tool_instance = transition_tool_class()\n            transition_tool_instance.start_server()\n            instances[transition_tool_class.__name__] = transition_tool_instance\n        except Exception as e:\n            # Record the exception in order to provide context when failing the\n            # appropriate test\n            instances[transition_tool_class.__name__] = e\n    yield instances\n    for instance in instances.values():\n        if isinstance(instance, TransitionTool):\n            instance.shutdown()\n\n\n@pytest.fixture(\n    params=INSTALLED_TRANSITION_TOOLS,\n    ids=[transition_tool_class.__name__ for transition_tool_class in INSTALLED_TRANSITION_TOOLS],\n)\ndef installed_t8n(\n    request: pytest.FixtureRequest,\n    installed_transition_tool_instances: Dict[str, TransitionTool | Exception],\n) -> TransitionTool:\n    \"\"\"\n    Return an instantiated transition tool.\n\n    Tests using this fixture will be automatically parameterized with all\n    installed transition tools.\n    \"\"\"\n    transition_tool_class = request.param\n    assert issubclass(transition_tool_class, TransitionTool)\n    assert transition_tool_class.__name__ in installed_transition_tool_instances, (\n        f\"{transition_tool_class.__name__} not instantiated\"\n    )\n    instance_or_error = installed_transition_tool_instances[transition_tool_class.__name__]\n    if isinstance(instance_or_error, Exception):\n        raise Exception(\n            f\"Failed to instantiate {transition_tool_class.__name__}\"\n        ) from instance_or_error\n    return instance_or_error\n\n\n@pytest.fixture\ndef default_t8n(\n    installed_transition_tool_instances: Dict[str, TransitionTool | Exception],\n) -> TransitionTool:\n    \"\"\"Fixture to provide a default t8n instance.\"\"\"\n    instance = installed_transition_tool_instances.get(\n        DEFAULT_TRANSITION_TOOL_FOR_UNIT_TESTS.__name__\n    )\n    if instance is None:\n        raise Exception(f\"Failed to instantiate {DEFAULT_TRANSITION_TOOL_FOR_UNIT_TESTS.__name__}\")\n    if isinstance(instance, Exception):\n        raise Exception(\n            f\"Failed to instantiate {DEFAULT_TRANSITION_TOOL_FOR_UNIT_TESTS.__name__}\"\n        ) from instance\n    return instance\n\n\n@pytest.fixture(scope=\"session\")\ndef running_in_ci() -> bool:\n    \"\"\"Return whether the test is running in a CI environment.\"\"\"\n    return \"CI\" in os.environ\n"
  },
  {
    "path": "src/ethereum_clis/__init__.py",
    "content": "\"\"\"\nLibrary of Python wrappers for the different implementations of transition\ntools.\n\"\"\"\n\nfrom .cli_types import (\n    BlockExceptionWithMessage,\n    Result,\n    Traces,\n    TransactionExceptionWithMessage,\n    TransitionToolOutput,\n)\nfrom .clis.besu import BesuTransitionTool\nfrom .clis.ethereumjs import EthereumJSTransitionTool\nfrom .clis.evmone import (\n    EvmOneBlockchainFixtureConsumer,\n    EvmoneExceptionMapper,\n    EvmOneStateFixtureConsumer,\n    EvmOneTransitionTool,\n)\nfrom .clis.execution_specs import ExecutionSpecsTransitionTool\nfrom .clis.geth import GethFixtureConsumer, GethTransitionTool\nfrom .clis.nethermind import Nethtest, NethtestFixtureConsumer\nfrom .clis.nimbus import NimbusTransitionTool\nfrom .ethereum_cli import CLINotFoundInPathError, UnknownCLIError\nfrom .fixture_consumer_tool import FixtureConsumerTool\nfrom .transition_tool import TransitionTool\n\nTransitionTool.set_default_tool(ExecutionSpecsTransitionTool)\nFixtureConsumerTool.set_default_tool(GethFixtureConsumer)\n\n__all__ = (\n    \"BesuTransitionTool\",\n    \"BlockExceptionWithMessage\",\n    \"CLINotFoundInPathError\",\n    \"EthereumJSTransitionTool\",\n    \"EvmoneExceptionMapper\",\n    \"EvmOneTransitionTool\",\n    \"EvmOneStateFixtureConsumer\",\n    \"EvmOneBlockchainFixtureConsumer\",\n    \"ExecutionSpecsTransitionTool\",\n    \"FixtureConsumerTool\",\n    \"GethFixtureConsumer\",\n    \"GethTransitionTool\",\n    \"Nethtest\",\n    \"NethtestFixtureConsumer\",\n    \"NimbusTransitionTool\",\n    \"Result\",\n    \"Traces\",\n    \"TransactionExceptionWithMessage\",\n    \"TransitionTool\",\n    \"TransitionToolOutput\",\n    \"UnknownCLIError\",\n)\n"
  },
  {
    "path": "src/ethereum_clis/cli_types.py",
    "content": "\"\"\"Types used in the transition tool interactions.\"\"\"\n\nimport json\nfrom pathlib import Path\nfrom typing import Annotated, Any, Dict, List, Self\n\nfrom pydantic import Field, PlainSerializer, PlainValidator\n\nfrom ethereum_test_base_types import (\n    Bloom,\n    Bytes,\n    CamelModel,\n    EthereumTestRootModel,\n    Hash,\n    HexNumber,\n)\nfrom ethereum_test_base_types.composite_types import ForkBlobSchedule\nfrom ethereum_test_exceptions import (\n    BlockException,\n    ExceptionMapperValidator,\n    ExceptionWithMessage,\n    TransactionException,\n    UndefinedException,\n)\nfrom ethereum_test_types import (\n    Alloc,\n    BlockAccessList,\n    Environment,\n    Transaction,\n    TransactionReceipt,\n)\nfrom ethereum_test_vm import Opcode, Opcodes\nfrom pytest_plugins.custom_logging import get_logger\n\nlogger = get_logger(__name__)\n\n\nclass TransactionExceptionWithMessage(ExceptionWithMessage[TransactionException]):\n    \"\"\"Transaction exception with message.\"\"\"\n\n    pass\n\n\nclass BlockExceptionWithMessage(ExceptionWithMessage[BlockException]):\n    \"\"\"Block exception with message.\"\"\"\n\n    pass\n\n\nclass RejectedTransaction(CamelModel):\n    \"\"\"Rejected transaction.\"\"\"\n\n    index: HexNumber\n    error: Annotated[\n        TransactionExceptionWithMessage | UndefinedException, ExceptionMapperValidator\n    ]\n\n\nclass TraceLine(CamelModel):\n    \"\"\"Single trace line contained in the traces output.\"\"\"\n\n    pc: int\n    op: int\n    gas: HexNumber\n    gas_cost: HexNumber | None = None\n    mem_size: int\n    stack: List[HexNumber | None]\n    depth: int\n    refund: int\n    op_name: str\n    error: str | None = None\n\n    def are_equivalent(self, other: Self) -> bool:\n        \"\"\"Return True if the only difference is the gas counter.\"\"\"\n        self_dict = self.model_dump(mode=\"python\", exclude={\"gas\", \"gas_cost\"})\n        other_dict = other.model_dump(mode=\"python\", exclude={\"gas\", \"gas_cost\"})\n        if self_dict != other_dict:\n            logger.debug(f\"Trace lines are not equivalent: {self_dict} != {other_dict}.\")\n            return False\n        return True\n\n\nclass TransactionTraces(CamelModel):\n    \"\"\"Traces of a single transaction.\"\"\"\n\n    traces: List[TraceLine]\n    output: str | None = None\n    gas_used: HexNumber | None = None\n\n    @classmethod\n    def from_file(cls, trace_file_path: Path) -> Self:\n        \"\"\"Read a single transaction's traces from a .jsonl file.\"\"\"\n        trace_lines = trace_file_path.read_text().splitlines()\n        trace_dict: Dict[str, Any] = {}\n        if \"gasUsed\" in trace_lines[-1] and \"output\" in trace_lines[-1]:\n            trace_dict |= json.loads(trace_lines.pop())\n        trace_dict[\"traces\"] = [TraceLine.model_validate_json(line) for line in trace_lines]\n        return cls.model_validate(trace_dict)\n\n    @staticmethod\n    def remove_gas(traces: List[TraceLine]) -> None:\n        \"\"\"\n        Remove the GAS operation opcode result from the stack to make\n        comparison possible even if the gas has been pushed to the stack.\n        \"\"\"\n        for i in range(1, len(traces)):\n            trace = traces[i]\n            previous_trace = traces[i - 1]\n            if previous_trace.op_name == \"GAS\" and trace.depth == previous_trace.depth:\n                # Remove the result of calling `Op.GAS` from the stack.\n                trace.stack[-1] = None\n\n    def are_equivalent(self, other: Self, enable_post_processing: bool) -> bool:\n        \"\"\"Return True if the only difference is the gas counter.\"\"\"\n        if len(self.traces) != len(other.traces):\n            logger.debug(\n                f\"Traces have different lengths: {len(self.traces)} != {len(other.traces)}.\"\n            )\n            return False\n        if self.output != other.output:\n            logger.debug(f\"Traces have different outputs: {self.output} != {other.output}.\")\n            return False\n        if self.gas_used != other.gas_used and not enable_post_processing:\n            logger.debug(f\"Traces have different gas used: {self.gas_used} != {other.gas_used}.\")\n            return False\n        own_traces = self.traces.copy()\n        other_traces = other.traces.copy()\n        if enable_post_processing:\n            logger.debug(\"Removing gas from traces (enable_post_processing=True).\")\n            TransactionTraces.remove_gas(own_traces)\n            TransactionTraces.remove_gas(other_traces)\n        for i in range(len(self.traces)):\n            if not own_traces[i].are_equivalent(other_traces[i]):\n                logger.debug(f\"Trace line {i} is not equivalent.\")\n                return False\n        return True\n\n    def print(self) -> None:\n        \"\"\"Print the traces in a readable format.\"\"\"\n        for exec_step, trace in enumerate(self.traces):\n            print(f\"Step {exec_step}:\")\n            print(trace.model_dump_json(indent=2))\n            print()\n\n\nclass Traces(EthereumTestRootModel):\n    \"\"\"\n    Traces returned from the transition tool for all transactions executed.\n    \"\"\"\n\n    root: List[TransactionTraces]\n\n    def append(self, item: TransactionTraces) -> None:\n        \"\"\"Append the transaction traces to the current list.\"\"\"\n        self.root.append(item)\n\n    def are_equivalent(self, other: Self | None, enable_post_processing: bool) -> bool:\n        \"\"\"Return True if the only difference is the gas counter.\"\"\"\n        if other is None:\n            return False\n        if len(self.root) != len(other.root):\n            return False\n        for i in range(len(self.root)):\n            if not self.root[i].are_equivalent(other.root[i], enable_post_processing):\n                logger.debug(f\"Trace file {i} is not equivalent.\")\n                return False\n            else:\n                logger.debug(f\"Trace file {i} is equivalent.\")\n        logger.debug(\"All traces are equivalent.\")\n        return True\n\n    def print(self) -> None:\n        \"\"\"Print the traces in a readable format.\"\"\"\n        for tx_number, tx in enumerate(self.root):\n            print(f\"Transaction {tx_number}:\")\n            tx.print()\n\n\n_opcode_synonyms = {\n    \"KECCAK256\": \"SHA3\",\n}\n\n\nclass UndefinedOpcode(HexNumber):\n    \"\"\"Undefined opcode.\"\"\"\n\n    pass\n\n\ndef validate_opcode(obj: Any) -> Opcodes | Opcode | UndefinedOpcode:\n    \"\"\"Validate an opcode from a string.\"\"\"\n    if isinstance(obj, (Opcode, Opcodes, UndefinedOpcode)):\n        return obj\n    if isinstance(obj, str):\n        if obj.startswith(\"0x\"):\n            return UndefinedOpcode(obj)\n        if obj in _opcode_synonyms:\n            obj = _opcode_synonyms[obj]\n        for op in Opcodes:\n            if str(op) == obj:\n                return op\n    raise Exception(f\"Unable to validate {obj} (type={type(obj)})\")\n\n\nclass OpcodeCount(EthereumTestRootModel):\n    \"\"\"Opcode count returned from the evm tool.\"\"\"\n\n    root: Dict[\n        Annotated[\n            Opcodes | UndefinedOpcode,\n            PlainValidator(validate_opcode),\n            PlainSerializer(lambda o: str(o)),\n        ],\n        int,\n    ]\n\n    def __add__(self, other: Self) -> Self:\n        \"\"\"Add two instances of opcode count dictionaries.\"\"\"\n        assert isinstance(other, OpcodeCount), f\"Incompatible type {type(other)}\"\n        new_dict = self.model_dump() | other.model_dump()\n        for match_key in self.root.keys() & other.root.keys():\n            new_dict[match_key] = self.root[match_key] + other.root[match_key]\n        return self.__class__(new_dict)\n\n\nclass Result(CamelModel):\n    \"\"\"Result of a transition tool output.\"\"\"\n\n    state_root: Hash\n    ommers_hash: Hash | None = Field(None, validation_alias=\"sha3Uncles\")\n    transactions_trie: Hash = Field(..., alias=\"txRoot\")\n    receipts_root: Hash\n    logs_hash: Hash\n    logs_bloom: Bloom\n    receipts: List[TransactionReceipt]\n    rejected_transactions: List[RejectedTransaction] = Field(\n        default_factory=list, alias=\"rejected\"\n    )\n    difficulty: HexNumber | None = Field(None, alias=\"currentDifficulty\")\n    gas_used: HexNumber\n    base_fee_per_gas: HexNumber | None = Field(None, alias=\"currentBaseFee\")\n    withdrawals_root: Hash | None = None\n    excess_blob_gas: HexNumber | None = Field(None, alias=\"currentExcessBlobGas\")\n    blob_gas_used: HexNumber | None = None\n    requests_hash: Hash | None = None\n    requests: List[Bytes] | None = None\n    block_access_list: BlockAccessList | None = None\n    block_access_list_hash: Hash | None = None\n    block_exception: Annotated[\n        BlockExceptionWithMessage | UndefinedException | None, ExceptionMapperValidator\n    ] = None\n    traces: Traces | None = None\n    opcode_count: OpcodeCount | None = None\n\n\nclass TransitionToolInput(CamelModel):\n    \"\"\"Transition tool input.\"\"\"\n\n    alloc: Alloc\n    txs: List[Transaction]\n    env: Environment\n    blob_params: ForkBlobSchedule | None = None\n\n\nclass TransitionToolOutput(CamelModel):\n    \"\"\"Transition tool output.\"\"\"\n\n    alloc: Alloc\n    result: Result\n    body: Bytes | None = None\n\n\nclass TransitionToolContext(CamelModel):\n    \"\"\"Transition tool context.\"\"\"\n\n    fork: str\n    chain_id: int = Field(..., alias=\"chainid\")\n    reward: int\n\n\nclass TransitionToolRequest(CamelModel):\n    \"\"\"Transition tool server request data.\"\"\"\n\n    state: TransitionToolContext\n    input: TransitionToolInput\n"
  },
  {
    "path": "src/ethereum_clis/clis/__init__.py",
    "content": "\"\"\"Package containing concrete implementations of Ethereum CL interfaces.\"\"\"\n"
  },
  {
    "path": "src/ethereum_clis/clis/besu.py",
    "content": "\"\"\"Hyperledger Besu Transition tool frontend.\"\"\"\n\nimport json\nimport os\nimport re\nimport subprocess\nimport tempfile\nimport textwrap\nfrom pathlib import Path\nfrom typing import ClassVar, Dict, Optional\n\nimport requests\n\nfrom ethereum_test_exceptions import (\n    BlockException,\n    ExceptionBase,\n    ExceptionMapper,\n    TransactionException,\n)\nfrom ethereum_test_forks import Fork\n\nfrom ..cli_types import TransitionToolOutput\nfrom ..transition_tool import TransitionTool, dump_files_to_directory, model_dump_config\n\n\nclass BesuTransitionTool(TransitionTool):\n    \"\"\"Besu EvmTool Transition tool frontend wrapper class.\"\"\"\n\n    default_binary = Path(\"evm\")\n    detect_binary_pattern = re.compile(r\"^Besu evm .*$\")\n    binary: Path\n    cached_version: Optional[str] = None\n    trace: bool\n    process: Optional[subprocess.Popen] = None\n    server_url: str\n    besu_trace_dir: Optional[tempfile.TemporaryDirectory]\n\n    supports_xdist: ClassVar[bool] = False\n\n    def __init__(\n        self,\n        *,\n        binary: Optional[Path] = None,\n        trace: bool = False,\n    ):\n        \"\"\"Initialize the BesuTransitionTool class.\"\"\"\n        super().__init__(exception_mapper=BesuExceptionMapper(), binary=binary, trace=trace)\n        args = [str(self.binary), \"t8n\", \"--help\"]\n        try:\n            result = subprocess.run(args, capture_output=True, text=True)\n        except subprocess.CalledProcessError as e:\n            raise Exception(\n                f\"evm process unexpectedly returned a non-zero status code: {e}.\"\n            ) from e\n        except Exception as e:\n            raise Exception(f\"Unexpected exception calling evm tool: {e}.\") from e\n        self.help_string = result.stdout\n        self.besu_trace_dir = tempfile.TemporaryDirectory() if self.trace else None\n\n    def start_server(self) -> None:\n        \"\"\"\n        Start the t8n-server process, extract the port, and leave it\n        running for future reuse.\n        \"\"\"\n        args = [\n            str(self.binary),\n            \"t8n-server\",\n            \"--port=0\",  # OS assigned server port\n        ]\n\n        if self.trace:\n            args.append(\"--trace\")\n            if self.besu_trace_dir:\n                args.append(f\"--output.basedir={self.besu_trace_dir.name}\")\n\n        self.process = subprocess.Popen(\n            args=args,\n            stdout=subprocess.PIPE,\n            stderr=subprocess.STDOUT,\n        )\n\n        while True:\n            if self.process.stdout is None:\n                raise Exception(\"Failed starting Besu subprocess\")\n            line = str(self.process.stdout.readline())\n\n            if not line or \"Failed to start transition server\" in line:\n                raise Exception(\"Failed starting Besu subprocess\\n\" + line)\n            if \"Transition server listening on\" in line:\n                match = re.search(\"Transition server listening on (\\\\d+)\", line)\n                if match:\n                    port = match.group(1)\n                    self.server_url = f\"http://localhost:{port}/\"\n                    break\n\n    def shutdown(self) -> None:\n        \"\"\"Stop the t8n-server process if it was started.\"\"\"\n        if self.process:\n            self.process.kill()\n        if self.besu_trace_dir:\n            self.besu_trace_dir.cleanup()\n\n    def evaluate(\n        self,\n        *,\n        transition_tool_data: TransitionTool.TransitionToolData,\n        debug_output_path: str = \"\",\n        slow_request: bool = False,\n    ) -> TransitionToolOutput:\n        \"\"\"Execute `evm t8n` with the specified arguments.\"\"\"\n        del slow_request\n\n        if not self.process:\n            self.start_server()\n\n        input_json = transition_tool_data.to_input().model_dump(mode=\"json\", **model_dump_config)\n\n        state_json = {\n            \"fork\": transition_tool_data.fork_name,\n            \"chainid\": transition_tool_data.chain_id,\n            \"reward\": transition_tool_data.reward,\n        }\n\n        post_data = {\"state\": state_json, \"input\": input_json}\n\n        if debug_output_path:\n            post_data_string = json.dumps(post_data, indent=4)\n            additional_indent = \" \" * 16  # for pretty indentation in t8n.sh\n            indented_post_data_string = \"{\\n\" + \"\\n\".join(\n                additional_indent + line for line in post_data_string[1:].splitlines()\n            )\n            t8n_script = textwrap.dedent(\n                f\"\"\"\\\n                #!/bin/bash\n                # Use $1 as t8n-server port if provided, else default to 3000\n                PORT=${{1:-3000}}\n                curl http://localhost:${{PORT}}/ -X POST -H \"Content-Type: application/json\" \\\\\n                --data '{indented_post_data_string}'\n                \"\"\"\n            )\n            dump_files_to_directory(\n                debug_output_path,\n                {\n                    \"state.json\": state_json,\n                    \"input/alloc.json\": input_json[\"alloc\"],\n                    \"input/env.json\": input_json[\"env\"],\n                    \"input/txs.json\": input_json[\"txs\"],\n                    \"t8n.sh+x\": t8n_script,\n                },\n            )\n\n        response = requests.post(self.server_url, json=post_data, timeout=5)\n        response.raise_for_status()  # exception visible in pytest failure output\n        output: TransitionToolOutput = TransitionToolOutput.model_validate(\n            response.json(), context={\"exception_mapper\": self.exception_mapper}\n        )\n\n        if debug_output_path:\n            dump_files_to_directory(\n                debug_output_path,\n                {\n                    \"response.txt\": response.text,\n                    \"status_code.txt\": response.status_code,\n                    \"time_elapsed_seconds.txt\": response.elapsed.total_seconds(),\n                },\n            )\n\n        if response.status_code != 200:\n            raise Exception(\n                f\"t8n-server returned status code {response.status_code}, \"\n                f\"response: {response.text}\"\n            )\n\n        if debug_output_path:\n            dump_files_to_directory(\n                debug_output_path,\n                {\n                    \"output/alloc.json\": output.alloc.model_dump(mode=\"json\", **model_dump_config),\n                    \"output/result.json\": output.result.model_dump(\n                        mode=\"json\", **model_dump_config\n                    ),\n                    \"output/txs.rlp\": str(output.body),\n                },\n            )\n\n        if self.trace and self.besu_trace_dir:\n            self.collect_traces(output.result.receipts, self.besu_trace_dir, debug_output_path)\n            for i, r in enumerate(output.result.receipts):\n                trace_file_name = f\"trace-{i}-{r.transaction_hash}.jsonl\"\n                os.remove(os.path.join(self.besu_trace_dir.name, trace_file_name))\n\n        return output\n\n    def is_fork_supported(self, fork: Fork) -> bool:\n        \"\"\"Return True if the fork is supported by the tool.\"\"\"\n        return fork.transition_tool_name() in self.help_string\n\n\nclass BesuExceptionMapper(ExceptionMapper):\n    \"\"\"Translate between EEST exceptions and error strings returned by Besu.\"\"\"\n\n    mapping_substring: ClassVar[Dict[ExceptionBase, str]] = {\n        TransactionException.NONCE_IS_MAX: \"invalid Nonce must be less than\",\n        TransactionException.INSUFFICIENT_MAX_FEE_PER_BLOB_GAS: (\n            \"transaction invalid tx max fee per blob gas less than block blob gas fee\"\n        ),\n        TransactionException.GASLIMIT_PRICE_PRODUCT_OVERFLOW: (\n            \"invalid Upfront gas cost cannot exceed 2^256 Wei\"\n        ),\n        TransactionException.INSUFFICIENT_MAX_FEE_PER_GAS: (\n            \"transaction invalid gasPrice is less than the current BaseFee\"\n        ),\n        TransactionException.GAS_ALLOWANCE_EXCEEDED: \"provided gas insufficient\",\n        TransactionException.PRIORITY_GREATER_THAN_MAX_FEE_PER_GAS: (\n            \"transaction invalid max priority fee per gas cannot be greater than max fee per gas\"\n        ),\n        TransactionException.TYPE_3_TX_INVALID_BLOB_VERSIONED_HASH: \"Invalid versionedHash\",\n        TransactionException.TYPE_3_TX_CONTRACT_CREATION: (\n            \"transaction invalid transaction blob transactions must have a to address\"\n        ),\n        TransactionException.TYPE_3_TX_WITH_FULL_BLOBS: (\n            \"Failed to decode transactions from block parameter\"\n        ),\n        TransactionException.TYPE_3_TX_ZERO_BLOBS: (\n            \"Failed to decode transactions from block parameter\"\n        ),\n        TransactionException.TYPE_3_TX_PRE_FORK: (\n            \"Transaction type BLOB is invalid, accepted transaction types are\"\n        ),\n        TransactionException.TYPE_4_EMPTY_AUTHORIZATION_LIST: (\n            \"transaction invalid transaction code delegation transactions must have a \"\n            \"non-empty code delegation list\"\n        ),\n        TransactionException.TYPE_4_TX_CONTRACT_CREATION: (\n            \"transaction invalid transaction code delegation transactions must have a to address\"\n        ),\n        TransactionException.TYPE_4_TX_PRE_FORK: (\n            \"transaction invalid Transaction type DELEGATE_CODE is invalid\"\n        ),\n        BlockException.RLP_STRUCTURES_ENCODING: (\n            \"Failed to decode transactions from block parameter\"\n        ),\n        BlockException.INCORRECT_EXCESS_BLOB_GAS: (\n            \"Payload excessBlobGas does not match calculated excessBlobGas\"\n        ),\n        BlockException.BLOB_GAS_USED_ABOVE_LIMIT: (\n            \"Payload BlobGasUsed does not match calculated BlobGasUsed\"\n        ),\n        BlockException.INCORRECT_BLOB_GAS_USED: (\n            \"Payload BlobGasUsed does not match calculated BlobGasUsed\"\n        ),\n        BlockException.INVALID_GAS_USED_ABOVE_LIMIT: \"Header validation failed (FULL)\",\n    }\n    mapping_regex = {\n        BlockException.INVALID_REQUESTS: (\n            r\"Invalid execution requests|Requests hash mismatch, calculated: 0x[0-9a-f]+ header: \"\n            r\"0x[0-9a-f]+\"\n        ),\n        BlockException.INVALID_BLOCK_HASH: (\n            r\"Computed block hash 0x[0-9a-f]+ does not match block hash parameter 0x[0-9a-f]+\"\n        ),\n        BlockException.SYSTEM_CONTRACT_CALL_FAILED: (\n            r\"System call halted|System call did not execute to completion\"\n        ),\n        BlockException.SYSTEM_CONTRACT_EMPTY: (\n            r\"(Invalid system call, no code at address)|\" r\"(Invalid system call address:)\"\n        ),\n        BlockException.INVALID_DEPOSIT_EVENT_LAYOUT: (\n            r\"Invalid (amount|index|pubKey|signature|withdrawalCred) (offset|size): \"\n            r\"expected (\\d+), but got (-?\\d+)|\"\n            r\"Invalid deposit log length\\. Must be \\d+ bytes, but is \\d+ bytes\"\n        ),\n        BlockException.RLP_BLOCK_LIMIT_EXCEEDED: (\n            r\"Block size of \\d+ bytes exceeds limit of \\d+ bytes\"\n        ),\n        TransactionException.INITCODE_SIZE_EXCEEDED: (\n            r\"transaction invalid Initcode size of \\d+ exceeds maximum size of \\d+\"\n        ),\n        TransactionException.INSUFFICIENT_ACCOUNT_FUNDS: (\n            r\"transaction invalid transaction up-front cost 0x[0-9a-f]+ exceeds transaction \"\n            r\"sender account balance 0x[0-9a-f]+\"\n        ),\n        TransactionException.INTRINSIC_GAS_TOO_LOW: (\n            r\"transaction invalid intrinsic gas cost \\d+ exceeds gas limit \\d+\"\n        ),\n        TransactionException.INTRINSIC_GAS_BELOW_FLOOR_GAS_COST: (\n            r\"transaction invalid intrinsic gas cost \\d+ exceeds gas limit \\d+\"\n        ),\n        TransactionException.SENDER_NOT_EOA: (\n            r\"transaction invalid Sender 0x[0-9a-f]+ has deployed code and so is not authorized \"\n            r\"to send transactions\"\n        ),\n        TransactionException.NONCE_MISMATCH_TOO_LOW: (\n            r\"transaction invalid transaction nonce \\d+ below sender account nonce \\d+\"\n        ),\n        TransactionException.GAS_LIMIT_EXCEEDS_MAXIMUM: (\n            r\"transaction invalid Transaction gas limit must be at most \\d+\"\n        ),\n        TransactionException.TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED: (\n            r\"Blob transaction 0x[0-9a-f]+ exceeds block blob gas limit: \\d+ > \\d+\"\n        ),\n        TransactionException.TYPE_3_TX_BLOB_COUNT_EXCEEDED: (\n            r\"Blob transaction has too many blobs: \\d+|Invalid Blob Count: \\d+\"\n        ),\n    }\n"
  },
  {
    "path": "src/ethereum_clis/clis/erigon.py",
    "content": "\"\"\"Erigon execution client transition tool.\"\"\"\n\nfrom ethereum_test_exceptions import BlockException, ExceptionMapper, TransactionException\n\n\nclass ErigonExceptionMapper(ExceptionMapper):\n    \"\"\"Erigon exception mapper.\"\"\"\n\n    mapping_substring = {\n        TransactionException.SENDER_NOT_EOA: \"sender not an eoa\",\n        TransactionException.INITCODE_SIZE_EXCEEDED: \"max initcode size exceeded\",\n        TransactionException.INSUFFICIENT_ACCOUNT_FUNDS: (\n            \"insufficient funds for gas * price + value\"\n        ),\n        TransactionException.NONCE_IS_MAX: \"nonce has max value\",\n        TransactionException.INTRINSIC_GAS_TOO_LOW: \"intrinsic gas too low\",\n        TransactionException.INTRINSIC_GAS_BELOW_FLOOR_GAS_COST: \"intrinsic gas too low\",\n        TransactionException.INSUFFICIENT_MAX_FEE_PER_GAS: \"fee cap less than block base fee\",\n        TransactionException.PRIORITY_GREATER_THAN_MAX_FEE_PER_GAS: \"tip higher than fee cap\",\n        TransactionException.INSUFFICIENT_MAX_FEE_PER_BLOB_GAS: \"max fee per blob gas too low\",\n        TransactionException.NONCE_MISMATCH_TOO_LOW: \"nonce too low\",\n        TransactionException.GAS_ALLOWANCE_EXCEEDED: \"gas limit reached\",\n        TransactionException.TYPE_3_TX_PRE_FORK: \"blob txn is not supported by signer\",\n        TransactionException.TYPE_3_TX_INVALID_BLOB_VERSIONED_HASH: (\n            \"invalid blob versioned hash, must start with VERSIONED_HASH_VERSION_KZG\"\n        ),\n        TransactionException.TYPE_3_TX_BLOB_COUNT_EXCEEDED: \"blob transaction has too many blobs\",\n        TransactionException.TYPE_3_TX_ZERO_BLOBS: \"a blob stx must contain at least one blob\",\n        TransactionException.TYPE_3_TX_WITH_FULL_BLOBS: \"rlp: expected String or Byte\",\n        TransactionException.TYPE_3_TX_CONTRACT_CREATION: \"wrong size for To: 0\",\n        TransactionException.TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED: (\n            \"blobs/blobgas exceeds max\"\n        ),\n        TransactionException.TYPE_4_EMPTY_AUTHORIZATION_LIST: (\n            \"SetCodeTransaction without authorizations is invalid\"\n        ),\n        TransactionException.TYPE_4_TX_CONTRACT_CREATION: \"wrong size for To: 0\",\n        TransactionException.TYPE_4_TX_PRE_FORK: \"setCode tx is not supported by signer\",\n        BlockException.INVALID_DEPOSIT_EVENT_LAYOUT: \"could not parse requests logs\",\n        BlockException.SYSTEM_CONTRACT_EMPTY: \"Syscall failure: Empty Code at\",\n        BlockException.SYSTEM_CONTRACT_CALL_FAILED: \"Unprecedented Syscall failure\",\n        BlockException.INVALID_REQUESTS: \"invalid requests root hash in header\",\n        BlockException.INVALID_BLOCK_HASH: \"invalid block hash\",\n        BlockException.RLP_BLOCK_LIMIT_EXCEEDED: \"block exceeds max rlp size\",\n    }\n    mapping_regex = {\n        TransactionException.GAS_LIMIT_EXCEEDS_MAXIMUM: (\n            r\"invalid block, txnIdx=\\d+,.*gas limit too high\"\n        ),\n        BlockException.INCORRECT_BLOB_GAS_USED: r\"blobGasUsed by execution: \\d+, in header: \\d+\",\n        BlockException.INCORRECT_EXCESS_BLOB_GAS: r\"invalid excessBlobGas: have \\d+, want \\d+\",\n        BlockException.INVALID_GAS_USED: r\"gas used by execution: \\w+, in header: \\w+\",\n        BlockException.INVALID_GAS_USED_ABOVE_LIMIT: r\"invalid gasUsed: have \\d+, gasLimit \\d+\",\n    }\n"
  },
  {
    "path": "src/ethereum_clis/clis/ethereumjs.py",
    "content": "\"\"\"EthereumJS Transition tool interface.\"\"\"\n\nimport re\nfrom pathlib import Path\nfrom typing import ClassVar, Dict, Optional\n\nfrom ethereum_test_exceptions import (\n    BlockException,\n    ExceptionBase,\n    ExceptionMapper,\n    TransactionException,\n)\nfrom ethereum_test_forks import Fork\n\nfrom ..transition_tool import TransitionTool\n\n\nclass EthereumJSTransitionTool(TransitionTool):\n    \"\"\"EthereumJS Transition tool interface wrapper class.\"\"\"\n\n    default_binary = Path(\"ethereumjs-t8ntool.sh\")\n    detect_binary_pattern = re.compile(r\"^ethereumjs t8n\\b\")\n    version_flag: str = \"--version\"\n    t8n_use_stream = False\n\n    binary: Path\n    cached_version: Optional[str] = None\n    trace: bool\n\n    def __init__(\n        self,\n        *,\n        binary: Optional[Path] = None,\n        trace: bool = False,\n    ):\n        \"\"\"Initialize the EthereumJS Transition tool interface.\"\"\"\n        super().__init__(exception_mapper=EthereumJSExceptionMapper(), binary=binary, trace=trace)\n\n    def is_fork_supported(self, fork: Fork) -> bool:\n        \"\"\"\n        Return True if the fork is supported by the tool.\n\n        Currently, EthereumJS-t8n provides no way to determine supported forks.\n        \"\"\"\n        del fork\n        return True\n\n\nclass EthereumJSExceptionMapper(ExceptionMapper):\n    \"\"\"\n    Translate between EEST exceptions and error strings returned by EthereumJS.\n    \"\"\"\n\n    mapping_substring: ClassVar[Dict[ExceptionBase, str]] = {\n        TransactionException.TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED: (\n            \"would exceed maximum allowance\"\n        ),\n        TransactionException.INSUFFICIENT_MAX_FEE_PER_BLOB_GAS: (\n            \"Invalid 4844 transactions: undefined\"\n        ),\n        TransactionException.GASLIMIT_PRICE_PRODUCT_OVERFLOW: (\n            \"gas limit * gasPrice cannot exceed MAX_INTEGER\"\n        ),\n        TransactionException.INSUFFICIENT_MAX_FEE_PER_GAS: \"tx unable to pay base fee\",\n        TransactionException.NONCE_IS_MAX: \"nonce cannot equal or exceed\",\n        TransactionException.PRIORITY_GREATER_THAN_MAX_FEE_PER_GAS: (\n            \"maxFeePerGas cannot be less than maxPriorityFeePerGas\"\n        ),\n        TransactionException.TYPE_3_TX_INVALID_BLOB_VERSIONED_HASH: (\n            \"versioned hash does not start with KZG commitment version\"\n        ),\n        # This message is the same as TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED\n        TransactionException.TYPE_3_TX_BLOB_COUNT_EXCEEDED: \"exceed maximum allowance\",\n        TransactionException.TYPE_3_TX_ZERO_BLOBS: \"tx should contain at least one blob\",\n        TransactionException.TYPE_3_TX_WITH_FULL_BLOBS: \"Invalid EIP-4844 transaction\",\n        TransactionException.TYPE_3_TX_CONTRACT_CREATION: (\n            'tx should have a \"to\" field and cannot be used to create contracts'\n        ),\n        TransactionException.TYPE_4_EMPTY_AUTHORIZATION_LIST: (\n            \"Invalid EIP-7702 transaction: authorization list is empty\"\n        ),\n        TransactionException.INTRINSIC_GAS_TOO_LOW: \"is lower than the minimum gas limit of\",\n        TransactionException.INTRINSIC_GAS_BELOW_FLOOR_GAS_COST: (\n            \"is lower than the minimum gas limit of\"\n        ),\n        TransactionException.INITCODE_SIZE_EXCEEDED: (\n            \"the initcode size of this transaction is too large\"\n        ),\n        TransactionException.TYPE_4_TX_CONTRACT_CREATION: (\n            'tx should have a \"to\" field and cannot be used to create contracts'\n        ),\n        TransactionException.INSUFFICIENT_ACCOUNT_FUNDS: (\n            \"sender doesn't have enough funds to send tx\"\n        ),\n        TransactionException.NONCE_MISMATCH_TOO_LOW: \"the tx doesn't have the correct nonce\",\n        TransactionException.GAS_ALLOWANCE_EXCEEDED: \"tx has a higher gas limit than the block\",\n        BlockException.INCORRECT_EXCESS_BLOB_GAS: \"Invalid 4844 transactions\",\n        BlockException.INVALID_RECEIPTS_ROOT: \"invalid receipttrie\",\n        BlockException.INVALID_DEPOSIT_EVENT_LAYOUT: (\n            \"Error verifying block while running: error: number exceeds 53 bits\"\n        ),\n    }\n    mapping_regex: ClassVar[Dict[ExceptionBase, str]] = {\n        TransactionException.TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED: (\n            r\"tx causes total blob gas of \\d+ to exceed maximum blob gas per block of \\d+|\"\n            r\"tx can contain at most \\d+ blobs\"\n        ),\n        TransactionException.TYPE_3_TX_BLOB_COUNT_EXCEEDED: (\n            r\"tx causes total blob gas of \\d+ to exceed maximum blob gas per block of \\d+|\"\n            r\"tx can contain at most \\d+ blobs\"\n        ),\n        TransactionException.TYPE_3_TX_PRE_FORK: (\n            r\"blob tx used but field env.ExcessBlobGas missing|EIP-4844 not enabled on Common\"\n        ),\n        BlockException.BLOB_GAS_USED_ABOVE_LIMIT: r\"invalid blobGasUsed expected=\\d+ actual=\\d+\",\n        BlockException.INCORRECT_BLOB_GAS_USED: r\"invalid blobGasUsed expected=\\d+ actual=\\d+\",\n        BlockException.INVALID_BLOCK_HASH: (\n            r\"Invalid blockHash, expected: 0x[0-9a-f]+, received: 0x[0-9a-f]+\"\n        ),\n        BlockException.INVALID_REQUESTS: r\"Unknown request identifier|invalid requestshash\",\n        BlockException.INVALID_GAS_USED_ABOVE_LIMIT: (\n            r\"Invalid block: too much gas used. Used: \\d+, gas limit: \\d+\"\n        ),\n    }\n"
  },
  {
    "path": "src/ethereum_clis/clis/ethrex.py",
    "content": "\"\"\"Ethrex execution client transition tool.\"\"\"\n\nfrom ethereum_test_exceptions import BlockException, ExceptionMapper, TransactionException\n\n\nclass EthrexExceptionMapper(ExceptionMapper):\n    \"\"\"Ethrex exception mapper.\"\"\"\n\n    mapping_substring = {\n        TransactionException.TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED: (\n            \"Exceeded MAX_BLOB_GAS_PER_BLOCK\"\n        ),\n        BlockException.INVALID_DEPOSIT_EVENT_LAYOUT: (\"Invalid deposit request layout\"),\n        BlockException.INVALID_REQUESTS: (\n            \"Requests hash does not match the one in the header after executing\"\n        ),\n        BlockException.INVALID_RECEIPTS_ROOT: (\n            \"Receipts Root does not match the one in the header after executing\"\n        ),\n        BlockException.INVALID_STATE_ROOT: (\n            \"World State Root does not match the one in the header after executing\"\n        ),\n        BlockException.INVALID_GAS_USED: \"Gas used doesn't match value in header\",\n        BlockException.INCORRECT_BLOB_GAS_USED: \"Blob gas used doesn't match value in header\",\n    }\n    mapping_regex = {\n        TransactionException.PRIORITY_GREATER_THAN_MAX_FEE_PER_GAS: (\n            r\"(?i)priority fee.* is greater than max fee.*\"\n        ),\n        TransactionException.TYPE_4_EMPTY_AUTHORIZATION_LIST: r\"(?i)empty authorization list\",\n        TransactionException.SENDER_NOT_EOA: (\n            r\"reject transactions from senders with deployed code|\"\n            r\"Sender account .* shouldn't be a contract\"\n        ),\n        TransactionException.NONCE_MISMATCH_TOO_LOW: r\"nonce \\d+ too low, expected \\d+|\"\n        r\"Nonce mismatch.*\",\n        TransactionException.TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED: (\n            r\"blob gas used \\d+ exceeds maximum allowance \\d+\"\n        ),\n        TransactionException.TYPE_3_TX_ZERO_BLOBS: (\n            r\"blob transactions present in pre-cancun payload|empty blobs|\"\n            r\"Type 3 transaction without blobs\"\n        ),\n        TransactionException.TYPE_3_TX_INVALID_BLOB_VERSIONED_HASH: (\n            r\"blob version not supported|Invalid blob versioned hash\"\n        ),\n        TransactionException.TYPE_3_TX_PRE_FORK: (\n            r\"blob versioned hashes not supported|\"\n            r\"Type 3 transactions are not supported before the Cancun fork\"\n        ),\n        # A type 4 Transaction without a recipient won't even reach the EVM, we\n        # can't decode it.\n        TransactionException.TYPE_4_TX_CONTRACT_CREATION: (\n            r\"unexpected length|Contract creation in type 4 transaction|\"\n            r\"Error decoding field 'to' of type primitive_types::H160: InvalidLength\"\n        ),\n        TransactionException.TYPE_3_TX_CONTRACT_CREATION: (\n            r\"unexpected length|Contract creation in type 3 transaction|\"\n            r\"Error decoding field 'to' of type primitive_types::H160: InvalidLength\"\n        ),\n        TransactionException.TYPE_4_TX_PRE_FORK: (\n            r\"eip 7702 transactions present in pre-prague payload|\"\n            r\"Type 4 transactions are not supported before the Prague fork\"\n        ),\n        TransactionException.INSUFFICIENT_ACCOUNT_FUNDS: (\n            r\"lack of funds \\(\\d+\\) for max fee \\(\\d+\\)|Insufficient account funds\"\n        ),\n        TransactionException.INTRINSIC_GAS_TOO_LOW: (\n            r\"gas floor exceeds the gas limit|call gas cost exceeds the gas limit|\"\n            r\"Transaction gas limit lower than the minimum gas cost to execute the transaction\"\n        ),\n        TransactionException.INTRINSIC_GAS_BELOW_FLOOR_GAS_COST: (\n            r\"Transaction gas limit lower than the gas cost floor for calldata tokens\"\n        ),\n        TransactionException.INSUFFICIENT_MAX_FEE_PER_GAS: (\n            r\"gas price is less than basefee|Insufficient max fee per gas\"\n        ),\n        TransactionException.INSUFFICIENT_MAX_FEE_PER_BLOB_GAS: (\n            r\"blob gas price is greater than max fee per blob gas|\"\n            r\"Insufficient max fee per blob gas.*\"\n        ),\n        TransactionException.INITCODE_SIZE_EXCEEDED: (\n            r\"create initcode size limit|Initcode size exceeded.*\"\n        ),\n        TransactionException.NONCE_IS_MAX: (r\"Nonce is max\"),\n        TransactionException.GAS_ALLOWANCE_EXCEEDED: (r\"Gas allowance exceeded.*\"),\n        TransactionException.TYPE_3_TX_BLOB_COUNT_EXCEEDED: (r\"Blob count exceeded.*\"),\n        BlockException.SYSTEM_CONTRACT_CALL_FAILED: (r\"System call failed.*\"),\n        BlockException.SYSTEM_CONTRACT_EMPTY: (r\"System contract:.* has no code after deployment\"),\n        BlockException.INCORRECT_BLOB_GAS_USED: (r\"Blob gas used doesn't match value in header\"),\n        BlockException.RLP_STRUCTURES_ENCODING: (r\"Error decoding field '\\D+' of type \\w+.*\"),\n        BlockException.INCORRECT_EXCESS_BLOB_GAS: (r\".* Excess blob gas is incorrect\"),\n        BlockException.INVALID_BLOCK_HASH: (r\"Invalid block hash. Expected \\w+, got \\w+\"),\n    }\n"
  },
  {
    "path": "src/ethereum_clis/clis/evmone.py",
    "content": "\"\"\"Evmone Transition tool interface.\"\"\"\n\nimport json\nimport re\nimport shlex\nimport shutil\nimport subprocess\nimport tempfile\nimport textwrap\nfrom functools import cache\nfrom pathlib import Path\nfrom typing import Any, ClassVar, Dict, List, Optional\n\nimport pytest\n\nfrom ethereum_clis.file_utils import dump_files_to_directory\nfrom ethereum_clis.fixture_consumer_tool import FixtureConsumerTool\nfrom ethereum_test_exceptions import (\n    EOFException,\n    ExceptionBase,\n    ExceptionMapper,\n    TransactionException,\n)\nfrom ethereum_test_fixtures.base import FixtureFormat\nfrom ethereum_test_fixtures.blockchain import BlockchainFixture\nfrom ethereum_test_fixtures.state import StateFixture\nfrom ethereum_test_forks import Fork\n\nfrom ..transition_tool import TransitionTool\n\n\nclass EvmOneTransitionTool(TransitionTool):\n    \"\"\"Evmone `evmone-t8n` Transition tool interface wrapper class.\"\"\"\n\n    default_binary = Path(\"evmone-t8n\")\n    detect_binary_pattern = re.compile(r\"^evmone-t8n\\b\")\n    t8n_use_stream = False\n\n    binary: Path\n    cached_version: Optional[str] = None\n    trace: bool\n    supports_opcode_count: ClassVar[bool] = True\n    supports_blob_params: ClassVar[bool] = True\n\n    def __init__(\n        self,\n        *,\n        binary: Optional[Path] = None,\n        trace: bool = False,\n    ):\n        \"\"\"Initialize the Evmone Transition tool interface.\"\"\"\n        super().__init__(exception_mapper=EvmoneExceptionMapper(), binary=binary, trace=trace)\n\n    def is_fork_supported(self, fork: Fork) -> bool:\n        \"\"\"\n        Return True if the fork is supported by the tool. Currently, evmone-t8n\n        provides no way to determine supported forks.\n        \"\"\"\n        del fork\n        return True\n\n\nclass EvmoneFixtureConsumerCommon:\n    \"\"\"Common functionality for Evmone fixture consumers.\"\"\"\n\n    binary: Path\n    version_flag: str = \"--version\"\n\n    cached_version: Optional[str] = None\n\n    def __init__(\n        self,\n        trace: bool = False,\n    ):\n        \"\"\"Initialize the EvmoneFixtureConsumerCommon class.\"\"\"\n        del trace\n        self._info_metadata: Optional[Dict[str, Any]] = {}\n\n    def _run_command(self, command: List[str]) -> subprocess.CompletedProcess:\n        try:\n            return subprocess.run(\n                command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True\n            )\n        except subprocess.CalledProcessError as e:\n            raise Exception(\"Command failed with non-zero status.\") from e\n        except Exception as e:\n            raise Exception(\"Unexpected exception calling evm tool.\") from e\n\n    # TODO: copied from geth.py, needs to be deduplicated, but nethermind.py\n    # also has its version\n    def _consume_debug_dump(\n        self,\n        command: List[str],\n        result: subprocess.CompletedProcess,\n        fixture_path: Path,\n        debug_output_path: Path,\n    ) -> None:\n        # our assumption is that each command element is a string\n        assert all(isinstance(x, str) for x in command), (\n            f\"Not all elements of 'command' list are strings: {command}\"\n        )\n        assert len(command) > 0\n\n        # replace last value with debug fixture path\n        debug_fixture_path = str(debug_output_path / \"fixtures.json\")\n        command[-1] = debug_fixture_path\n\n        # ensure that flags with spaces are wrapped in double-quotes\n        consume_direct_call = \" \".join(shlex.quote(arg) for arg in command)\n\n        consume_direct_script = textwrap.dedent(\n            f\"\"\"\\\n            #!/bin/bash\n            {consume_direct_call}\n            \"\"\"\n        )\n        dump_files_to_directory(\n            str(debug_output_path),\n            {\n                \"consume_direct_args.py\": command,\n                \"consume_direct_returncode.txt\": result.returncode,\n                \"consume_direct_stdout.txt\": result.stdout,\n                \"consume_direct_stderr.txt\": result.stderr,\n                \"consume_direct.sh+x\": consume_direct_script,\n            },\n        )\n        shutil.copyfile(fixture_path, debug_fixture_path)\n\n    def _skip_message(self, fixture_format: FixtureFormat) -> str:\n        return f\"Fixture format {fixture_format.format_name} not supported by {self.binary}\"\n\n    @cache  # noqa\n    def consume_test_file(\n        self,\n        fixture_path: Path,\n        debug_output_path: Optional[Path] = None,\n    ) -> Dict[str, Any]:\n        \"\"\"\n        Consume an entire state or blockchain test file.\n\n        The `evmone-...test` will always execute all the tests contained in a\n        file without the possibility of selecting a single test, so this\n        function is cached in order to only call the command once and\n        `consume_test` can simply select the result that was requested.\n        \"\"\"\n        global_options: List[str] = []\n        if debug_output_path:\n            global_options += [\"--trace\"]\n\n        with tempfile.NamedTemporaryFile() as tempfile_json:\n            # `evmone` uses `gtest` and generates JSON output to a file,\n            # c.f. https://google.github.io/googletest/advanced.html#generating-a-json-report\n            # see there for the JSON schema.\n            global_options += [\"--gtest_output=json:{}\".format(tempfile_json.name)]\n            command = [str(self.binary)] + global_options + [str(fixture_path)]\n            result = self._run_command(command)\n\n            if result.returncode not in [0, 1]:\n                raise Exception(\n                    f\"Unexpected exit code:\\n{' '.join(command)}\\n\\n Error:\\n{result.stderr}\"\n                )\n\n            try:\n                output_data = json.load(tempfile_json)\n            except json.JSONDecodeError as e:\n                raise Exception(\n                    f\"Failed to parse JSON output from evmone-state/blockchaintest: {e}\"\n                ) from e\n\n            if debug_output_path:\n                self._consume_debug_dump(command, result, fixture_path, debug_output_path)\n\n            return output_data\n\n    def _failure_msg(self, file_results: Dict[str, Any]) -> str:\n        # Assumes only one test has run and there has been a failure,\n        # as asserted before.\n        failures = file_results[\"testsuites\"][0][\"testsuite\"][0][\"failures\"]\n        return \", \".join([f[\"failure\"] for f in failures])\n\n    def consume_test(\n        self,\n        fixture_path: Path,\n        fixture_name: Optional[str] = None,\n        debug_output_path: Optional[Path] = None,\n    ) -> None:\n        \"\"\"\n        Consume a single state or blockchain test.\n\n        Uses the cached result from `consume_test_file` in order to not\n        call the command every time an select a single result from there.\n        \"\"\"\n        file_results = self.consume_test_file(\n            fixture_path=fixture_path,\n            debug_output_path=debug_output_path,\n        )\n        assert len(file_results[\"testsuites\"]) < 2, f\"Multiple testsuites for {fixture_name}\"\n        assert len(file_results[\"testsuites\"]) == 1, f\"testsuite for {fixture_name} missing\"\n        test_suite = file_results[\"testsuites\"][0][\"testsuite\"]\n\n        assert fixture_name is not None, \"fixture_name must be provided for evmone tests\"\n        test_results = [\n            test_result for test_result in test_suite if test_result[\"name\"] == fixture_name\n        ]\n        assert len(test_results) < 2, f\"Multiple test results for {fixture_name}\"\n        assert len(test_results) == 1, f\"Test result for {fixture_name} missing\"\n        assert \"failures\" not in test_results[0], (\n            f\"Test failed: {test_results[0]['failures'][0]['failure']}\"\n        )\n\n\nclass EvmOneStateFixtureConsumer(\n    EvmoneFixtureConsumerCommon,\n    FixtureConsumerTool,\n    fixture_formats=[StateFixture],\n):\n    \"\"\"Evmone's implementation of the fixture consumer for state tests.\"\"\"\n\n    default_binary = Path(\"evmone-statetest\")\n    detect_binary_pattern = re.compile(r\"^evmone-statetest\\b\")\n\n    def __init__(\n        self,\n        binary: Optional[Path] = None,\n        trace: bool = False,\n    ):\n        \"\"\"Initialize the EvmOneStateFixtureConsumer class.\"\"\"\n        self.binary = binary if binary else self.default_binary\n        super().__init__(trace=trace)\n\n    def consume_fixture(\n        self,\n        fixture_format: FixtureFormat,\n        fixture_path: Path,\n        fixture_name: Optional[str] = None,\n        debug_output_path: Optional[Path] = None,\n    ) -> None:\n        \"\"\"\n        Execute the appropriate fixture consumer for the fixture at\n        `fixture_path`.\n        \"\"\"\n        if fixture_format == StateFixture:\n            self.consume_test(\n                fixture_path=fixture_path,\n                fixture_name=fixture_name,\n                debug_output_path=debug_output_path,\n            )\n        else:\n            pytest.skip(self._skip_message(fixture_format))\n\n\nclass EvmOneBlockchainFixtureConsumer(\n    EvmoneFixtureConsumerCommon,\n    FixtureConsumerTool,\n    fixture_formats=[BlockchainFixture],\n):\n    \"\"\"Evmone's implementation of the fixture consumer for blockchain tests.\"\"\"\n\n    default_binary = Path(\"evmone-blockchaintest\")\n    detect_binary_pattern = re.compile(r\"^evmone-blockchaintest\\b\")\n\n    def __init__(\n        self,\n        binary: Optional[Path] = None,\n        trace: bool = False,\n    ):\n        \"\"\"Initialize the EvmOneBlockchainFixtureConsumer class.\"\"\"\n        self.binary = binary if binary else self.default_binary\n        super().__init__(trace=trace)\n\n    def consume_fixture(\n        self,\n        fixture_format: FixtureFormat,\n        fixture_path: Path,\n        fixture_name: Optional[str] = None,\n        debug_output_path: Optional[Path] = None,\n    ) -> None:\n        \"\"\"\n        Execute the appropriate fixture consumer for the fixture at\n        `fixture_path`.\n        \"\"\"\n        if fixture_format == BlockchainFixture:\n            self.consume_test(\n                fixture_path=fixture_path,\n                fixture_name=fixture_name,\n                debug_output_path=debug_output_path,\n            )\n        else:\n            pytest.skip(self._skip_message(fixture_format))\n\n\nclass EvmoneExceptionMapper(ExceptionMapper):\n    \"\"\"\n    Translate between EEST exceptions and error strings returned by Evmone.\n    \"\"\"\n\n    mapping_substring: ClassVar[Dict[ExceptionBase, str]] = {\n        TransactionException.SENDER_NOT_EOA: \"sender not an eoa:\",\n        TransactionException.GAS_ALLOWANCE_EXCEEDED: \"gas limit reached\",\n        TransactionException.PRIORITY_GREATER_THAN_MAX_FEE_PER_GAS: (\n            \"max priority fee per gas higher than max fee per gas\"\n        ),\n        TransactionException.NONCE_IS_MAX: \"nonce has max value:\",\n        TransactionException.TYPE_4_TX_CONTRACT_CREATION: \"set code transaction must \",\n        TransactionException.TYPE_4_INVALID_AUTHORITY_SIGNATURE: \"invalid authorization signature\",\n        TransactionException.TYPE_4_INVALID_AUTHORITY_SIGNATURE_S_TOO_HIGH: (\n            \"authorization signature s value too high\"\n        ),\n        TransactionException.TYPE_4_EMPTY_AUTHORIZATION_LIST: \"empty authorization list\",\n        TransactionException.INTRINSIC_GAS_TOO_LOW: \"intrinsic gas too low\",\n        TransactionException.INTRINSIC_GAS_BELOW_FLOOR_GAS_COST: \"intrinsic gas too low\",\n        TransactionException.TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED: \"blob gas limit exceeded\",\n        TransactionException.INITCODE_SIZE_EXCEEDED: \"max initcode size exceeded\",\n        TransactionException.INSUFFICIENT_ACCOUNT_FUNDS: (\n            \"insufficient funds for gas * price + value\"\n        ),\n        TransactionException.INSUFFICIENT_MAX_FEE_PER_GAS: (\n            \"max fee per gas less than block base fee\"\n        ),\n        TransactionException.INSUFFICIENT_MAX_FEE_PER_BLOB_GAS: (\n            \"max blob fee per gas less than block base fee\"\n        ),\n        TransactionException.TYPE_4_TX_PRE_FORK: \"transaction type not supported\",\n        TransactionException.TYPE_3_TX_PRE_FORK: \"transaction type not supported\",\n        TransactionException.TYPE_3_TX_INVALID_BLOB_VERSIONED_HASH: \"invalid blob hash version\",\n        TransactionException.TYPE_3_TX_BLOB_COUNT_EXCEEDED: \"blob gas limit exceeded\",\n        TransactionException.TYPE_3_TX_ZERO_BLOBS: \"empty blob hashes list\",\n        TransactionException.TYPE_3_TX_CONTRACT_CREATION: (\n            \"blob transaction must not be a create transaction\"\n        ),\n        TransactionException.NONCE_MISMATCH_TOO_LOW: \"nonce too low\",\n        TransactionException.NONCE_MISMATCH_TOO_HIGH: \"nonce too high\",\n        TransactionException.GAS_LIMIT_EXCEEDS_MAXIMUM: \"max gas limit exceeded\",\n        # TODO EVMONE needs to differentiate when the section is missing in the\n        # header or body\n        EOFException.MISSING_STOP_OPCODE: \"err: no_terminating_instruction\",\n        EOFException.MISSING_CODE_HEADER: \"err: code_section_missing\",\n        EOFException.MISSING_TYPE_HEADER: \"err: type_section_missing\",\n        # TODO EVMONE these exceptions are too similar, this leeds to ambiguity\n        EOFException.MISSING_TERMINATOR: \"err: header_terminator_missing\",\n        EOFException.MISSING_HEADERS_TERMINATOR: \"err: section_headers_not_terminated\",\n        EOFException.INVALID_VERSION: \"err: eof_version_unknown\",\n        EOFException.INVALID_NON_RETURNING_FLAG: \"err: invalid_non_returning_flag\",\n        EOFException.INVALID_MAGIC: \"err: invalid_prefix\",\n        EOFException.INVALID_FIRST_SECTION_TYPE: \"err: invalid_first_section_type\",\n        EOFException.INVALID_SECTION_BODIES_SIZE: \"err: invalid_section_bodies_size\",\n        EOFException.INVALID_TYPE_SECTION_SIZE: \"err: invalid_type_section_size\",\n        EOFException.INCOMPLETE_SECTION_SIZE: \"err: incomplete_section_size\",\n        EOFException.INCOMPLETE_SECTION_NUMBER: \"err: incomplete_section_number\",\n        EOFException.TOO_MANY_CODE_SECTIONS: \"err: too_many_code_sections\",\n        EOFException.ZERO_SECTION_SIZE: \"err: zero_section_size\",\n        EOFException.MISSING_DATA_SECTION: \"err: data_section_missing\",\n        EOFException.UNDEFINED_INSTRUCTION: \"err: undefined_instruction\",\n        EOFException.INPUTS_OUTPUTS_NUM_ABOVE_LIMIT: \"err: inputs_outputs_num_above_limit\",\n        EOFException.UNREACHABLE_INSTRUCTIONS: \"err: unreachable_instructions\",\n        EOFException.INVALID_RJUMP_DESTINATION: \"err: invalid_rjump_destination\",\n        EOFException.UNREACHABLE_CODE_SECTIONS: \"err: unreachable_code_sections\",\n        EOFException.STACK_UNDERFLOW: \"err: stack_underflow\",\n        EOFException.STACK_OVERFLOW: \"err: stack_overflow\",\n        EOFException.MAX_STACK_INCREASE_ABOVE_LIMIT: \"err: max_stack_increase_above_limit\",\n        EOFException.STACK_HIGHER_THAN_OUTPUTS: \"err: stack_higher_than_outputs_required\",\n        EOFException.JUMPF_DESTINATION_INCOMPATIBLE_OUTPUTS: (\n            \"err: jumpf_destination_incompatible_outputs\"\n        ),\n        EOFException.INVALID_MAX_STACK_INCREASE: \"err: invalid_max_stack_increase\",\n        EOFException.INVALID_DATALOADN_INDEX: \"err: invalid_dataloadn_index\",\n        EOFException.TRUNCATED_INSTRUCTION: \"err: truncated_instruction\",\n        EOFException.TOPLEVEL_CONTAINER_TRUNCATED: \"err: toplevel_container_truncated\",\n        EOFException.ORPHAN_SUBCONTAINER: \"err: unreferenced_subcontainer\",\n        EOFException.CONTAINER_SIZE_ABOVE_LIMIT: \"err: container_size_above_limit\",\n        EOFException.INVALID_CONTAINER_SECTION_INDEX: \"err: invalid_container_section_index\",\n        EOFException.INCOMPATIBLE_CONTAINER_KIND: \"err: incompatible_container_kind\",\n        EOFException.AMBIGUOUS_CONTAINER_KIND: \"err: ambiguous_container_kind\",\n        EOFException.STACK_HEIGHT_MISMATCH: \"err: stack_height_mismatch\",\n        EOFException.TOO_MANY_CONTAINERS: \"err: too_many_container_sections\",\n        EOFException.INVALID_CODE_SECTION_INDEX: \"err: invalid_code_section_index\",\n        EOFException.CALLF_TO_NON_RETURNING: \"err: callf_to_non_returning_function\",\n        EOFException.EOFCREATE_WITH_TRUNCATED_CONTAINER: \"err: eofcreate_with_truncated_container\",\n    }\n    mapping_regex: ClassVar[Dict[ExceptionBase, str]] = {}\n"
  },
  {
    "path": "src/ethereum_clis/clis/execution_specs.py",
    "content": "\"\"\"\nEthereum Specs EVM Resolver Transition Tool Interface.\n\nhttps://github.com/petertdavies/ethereum-spec-evm-resolver\n\"\"\"\n\nimport os\nimport re\nimport subprocess\nimport time\nfrom pathlib import Path\nfrom tempfile import TemporaryDirectory\nfrom typing import ClassVar, Dict, List, Optional\n\nfrom ethereum_test_exceptions import (\n    BlockException,\n    ExceptionBase,\n    ExceptionMapper,\n    TransactionException,\n)\nfrom ethereum_test_forks import Fork\nfrom pytest_plugins.custom_logging import get_logger\n\nfrom ..transition_tool import TransitionTool\n\nDAEMON_STARTUP_TIMEOUT_SECONDS = 5\nlogger = get_logger(__name__)\n\n\nclass ExecutionSpecsTransitionTool(TransitionTool):\n    \"\"\"\n    Ethereum Specs EVM Resolver `ethereum-spec-evm-resolver` Transition Tool\n    wrapper class.\n\n    `ethereum-spec-evm-resolver` is installed by default for\n    `execution-spec-tests`:\n    ```console\n        uv run fill --evm-bin=ethereum-spec-evm-resolver\n    ```\n\n    To use a specific version of the `ethereum-spec-evm-resolver` tool, update\n    it to the desired version in `pyproject.toml`.\n\n    The `ethereum-spec-evm-resolver` tool essentially wraps around the EELS evm\n    daemon. It can handle requests for different EVM forks, even when those\n    forks are implemented by different versions of EELS hosted in different\n    places.\n    \"\"\"\n\n    default_binary = Path(\"ethereum-spec-evm-resolver\")\n    detect_binary_pattern = re.compile(r\"^ethereum-spec-evm-resolver\\b\")\n    t8n_use_server: bool = True\n    server_dir: Optional[TemporaryDirectory] = None\n    server_url: str | None = None\n\n    def __init__(\n        self,\n        *,\n        binary: Optional[Path] = None,\n        trace: bool = False,\n        server_url: str | None = None,\n    ):\n        \"\"\"\n        Initialize the Ethereum Specs EVM Resolver Transition Tool interface.\n        \"\"\"\n        os.environ.setdefault(\"NO_PROXY\", \"*\")  # Disable proxy for local connections\n        super().__init__(\n            exception_mapper=ExecutionSpecsExceptionMapper(), binary=binary, trace=trace\n        )\n        args = [str(self.binary), \"--help\"]\n        try:\n            result = subprocess.run(args, capture_output=True, text=True)\n        except subprocess.CalledProcessError as e:\n            raise Exception(\n                \"ethereum-spec-evm-resolver process unexpectedly returned a non-zero status code: \"\n                f\"{e}.\"\n            ) from e\n        except Exception as e:\n            raise Exception(\n                f\"Unexpected exception calling ethereum-spec-evm-resolver: {e}.\"\n            ) from e\n        self.help_string = result.stdout\n        self.server_url = server_url\n\n    def start_server(self) -> None:\n        \"\"\"\n        Start the t8n-server process, extract the port, and leave it\n        running for future reuse.\n        \"\"\"\n        self.server_dir = TemporaryDirectory()\n        self.server_file_path = Path(self.server_dir.name) / \"t8n.sock\"\n        replaced_str = str(self.server_file_path).replace(\"/\", \"%2F\")\n        self.server_url = f\"http+unix://{replaced_str}/\"\n        self.process = subprocess.Popen(\n            args=[\n                str(self.binary),\n                \"daemon\",\n                \"--uds\",\n                self.server_file_path,\n            ],\n        )\n        start = time.time()\n        while True:\n            if self.server_file_path.exists():\n                break\n            if time.time() - start > DAEMON_STARTUP_TIMEOUT_SECONDS:\n                raise Exception(\"Failed starting ethereum-spec-evm subprocess\")\n            time.sleep(0)  # yield to other processes\n\n    def shutdown(self) -> None:\n        \"\"\"Stop the t8n-server process if it was started.\"\"\"\n        if self.process:\n            self.process.terminate()\n        if self.server_dir:\n            self.server_dir.cleanup()\n            self.server_dir = None\n\n    def is_fork_supported(self, fork: Fork) -> bool:\n        \"\"\"\n        Return True if the fork is supported by the tool.\n\n        If the fork is a transition fork, we want to check the fork it\n        transitions to.\n\n        `ethereum-spec-evm` appends newlines to forks in the help string.\n        \"\"\"\n        fork_is_supported = (fork.transition_tool_name() + \"\\n\") in self.help_string\n        logger.debug(f\"EELS supports fork {fork}: {fork_is_supported}\")\n\n        return fork_is_supported\n\n    def _generate_post_args(\n        self, t8n_data: TransitionTool.TransitionToolData\n    ) -> Dict[str, List[str] | str]:\n        \"\"\"\n        Generate the arguments for the POST request to the t8n-server.\n\n        EELS T8N expects `--state-test` when running a state test.\n        \"\"\"\n        return {\"arg\": \"--state-test\"} if t8n_data.state_test else {}\n\n\nclass ExecutionSpecsExceptionMapper(ExceptionMapper):\n    \"\"\"\n    Translate between EEST exceptions and error strings returned by\n    ExecutionSpecs.\n    \"\"\"\n\n    mapping_substring: ClassVar[Dict[ExceptionBase, str]] = {\n        TransactionException.TYPE_4_EMPTY_AUTHORIZATION_LIST: \"EmptyAuthorizationListError\",\n        TransactionException.SENDER_NOT_EOA: \"InvalidSenderError\",\n        TransactionException.TYPE_4_TX_CONTRACT_CREATION: (\n            \"TransactionTypeContractCreationError(\"\n            \"'transaction type `SetCodeTransaction` not allowed to create contracts')\"\n        ),\n        TransactionException.INSUFFICIENT_ACCOUNT_FUNDS: \"InsufficientBalanceError\",\n        TransactionException.TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED: (\n            \"BlobGasLimitExceededError\"\n        ),\n        TransactionException.INSUFFICIENT_MAX_FEE_PER_BLOB_GAS: (\n            \"InsufficientMaxFeePerBlobGasError\"\n        ),\n        TransactionException.TYPE_3_TX_INVALID_BLOB_VERSIONED_HASH: (\n            \"InvalidBlobVersionedHashError\"\n        ),\n        # This message is the same as TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED\n        TransactionException.TYPE_3_TX_BLOB_COUNT_EXCEEDED: \"BlobCountExceededError\",\n        TransactionException.TYPE_3_TX_ZERO_BLOBS: \"NoBlobDataError\",\n        TransactionException.INTRINSIC_GAS_TOO_LOW: \"InsufficientTransactionGasError\",\n        TransactionException.INTRINSIC_GAS_BELOW_FLOOR_GAS_COST: \"InsufficientTransactionGasError\",\n        TransactionException.INITCODE_SIZE_EXCEEDED: \"InitCodeTooLargeError\",\n        TransactionException.PRIORITY_GREATER_THAN_MAX_FEE_PER_GAS: (\n            \"PriorityFeeGreaterThanMaxFeeError\"\n        ),\n        TransactionException.NONCE_MISMATCH_TOO_HIGH: \"NonceMismatchError('nonce too high')\",\n        TransactionException.NONCE_MISMATCH_TOO_LOW: \"NonceMismatchError('nonce too low')\",\n        TransactionException.TYPE_3_TX_CONTRACT_CREATION: (\n            \"TransactionTypeContractCreationError(\"\n            \"'transaction type `BlobTransaction` not allowed to create contracts')\"\n        ),\n        TransactionException.NONCE_IS_MAX: \"NonceOverflowError\",\n        TransactionException.GAS_ALLOWANCE_EXCEEDED: \"GasUsedExceedsLimitError\",\n        TransactionException.GAS_LIMIT_EXCEEDS_MAXIMUM: \"TransactionGasLimitExceededError\",\n        BlockException.SYSTEM_CONTRACT_EMPTY: \"System contract address\",\n        BlockException.SYSTEM_CONTRACT_CALL_FAILED: \"call failed:\",\n        BlockException.INVALID_DEPOSIT_EVENT_LAYOUT: \"deposit\",\n    }\n    mapping_regex: ClassVar[Dict[ExceptionBase, str]] = {\n        TransactionException.INSUFFICIENT_MAX_FEE_PER_GAS: (\n            r\"InsufficientMaxFeePerGasError|InvalidBlock\"  # Temporary solution for issue #1981.\n        ),\n        TransactionException.TYPE_3_TX_PRE_FORK: (\n            r\"module '.*transactions' has no attribute 'BlobTransaction'\"\n        ),\n        TransactionException.TYPE_4_TX_PRE_FORK: (\n            r\"'.*transactions' has no attribute 'SetCodeTransaction'\"\n        ),\n    }\n"
  },
  {
    "path": "src/ethereum_clis/clis/geth.py",
    "content": "\"\"\"Go-ethereum Transition tool interface.\"\"\"\n\nimport json\nimport re\nimport shlex\nimport shutil\nimport subprocess\nimport textwrap\nfrom functools import cache\nfrom pathlib import Path\nfrom typing import Any, ClassVar, Dict, List, Optional\n\nfrom ethereum_test_exceptions import (\n    BlockException,\n    ExceptionBase,\n    ExceptionMapper,\n    TransactionException,\n)\nfrom ethereum_test_fixtures import BlockchainFixture, FixtureFormat, StateFixture\nfrom ethereum_test_forks import Fork\n\nfrom ..ethereum_cli import EthereumCLI\nfrom ..fixture_consumer_tool import FixtureConsumerTool\nfrom ..transition_tool import TransitionTool, dump_files_to_directory\n\n\nclass GethExceptionMapper(ExceptionMapper):\n    \"\"\"Translate between EEST exceptions and error strings returned by Geth.\"\"\"\n\n    mapping_substring: ClassVar[Dict[ExceptionBase, str]] = {\n        TransactionException.SENDER_NOT_EOA: \"sender not an eoa\",\n        TransactionException.GAS_ALLOWANCE_EXCEEDED: \"gas limit reached\",\n        TransactionException.INSUFFICIENT_ACCOUNT_FUNDS: (\n            \"insufficient funds for gas * price + value\"\n        ),\n        TransactionException.INTRINSIC_GAS_TOO_LOW: \"intrinsic gas too low\",\n        TransactionException.INTRINSIC_GAS_BELOW_FLOOR_GAS_COST: (\n            \"insufficient gas for floor data gas cost\"\n        ),\n        TransactionException.NONCE_IS_MAX: \"nonce has max value\",\n        TransactionException.TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED: (\n            \"would exceed maximum allowance\"\n        ),\n        TransactionException.INSUFFICIENT_MAX_FEE_PER_BLOB_GAS: (\n            \"max fee per blob gas less than block blob gas fee\"\n        ),\n        TransactionException.INSUFFICIENT_MAX_FEE_PER_GAS: (\n            \"max fee per gas less than block base fee\"\n        ),\n        TransactionException.PRIORITY_GREATER_THAN_MAX_FEE_PER_GAS: (\n            \"max priority fee per gas higher than max fee per gas\"\n        ),\n        TransactionException.TYPE_3_TX_PRE_FORK: (\"transaction type not supported\"),\n        TransactionException.TYPE_3_TX_INVALID_BLOB_VERSIONED_HASH: \"has invalid hash version\",\n        # This message is the same as TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED\n        TransactionException.TYPE_3_TX_BLOB_COUNT_EXCEEDED: \"blob transaction has too many blobs\",\n        TransactionException.TYPE_3_TX_ZERO_BLOBS: \"blob transaction missing blob hashes\",\n        TransactionException.TYPE_3_TX_WITH_FULL_BLOBS: (\n            \"unexpected blob sidecar in transaction at index\"\n        ),\n        TransactionException.TYPE_3_TX_CONTRACT_CREATION: (\n            \"input string too short for common.Address, decoding into (types.BlobTx).To\"\n        ),\n        TransactionException.TYPE_4_EMPTY_AUTHORIZATION_LIST: (\n            \"EIP-7702 transaction with empty auth list\"\n        ),\n        TransactionException.TYPE_4_TX_CONTRACT_CREATION: (\n            \"input string too short for common.Address, decoding into (types.SetCodeTx).To\"\n        ),\n        TransactionException.GAS_LIMIT_EXCEEDS_MAXIMUM: \"transaction gas limit too high\",\n        TransactionException.TYPE_4_TX_PRE_FORK: (\"transaction type not supported\"),\n        TransactionException.INITCODE_SIZE_EXCEEDED: \"max initcode size exceeded\",\n        TransactionException.NONCE_MISMATCH_TOO_LOW: \"nonce too low\",\n        TransactionException.NONCE_MISMATCH_TOO_HIGH: \"nonce too high\",\n        BlockException.INCORRECT_BLOB_GAS_USED: \"blob gas used mismatch\",\n        BlockException.INCORRECT_EXCESS_BLOB_GAS: \"invalid excessBlobGas\",\n        BlockException.INVALID_VERSIONED_HASHES: \"invalid number of versionedHashes\",\n        BlockException.INVALID_REQUESTS: \"invalid requests hash\",\n        BlockException.SYSTEM_CONTRACT_CALL_FAILED: \"system call failed to execute:\",\n        BlockException.INVALID_BLOCK_HASH: \"blockhash mismatch\",\n        BlockException.RLP_BLOCK_LIMIT_EXCEEDED: \"block RLP-encoded size exceeds maximum\",\n        BlockException.INVALID_BAL_EXTRA_ACCOUNT: \"BAL change not reported in computed\",\n        BlockException.INVALID_BAL_MISSING_ACCOUNT: \"additional mutations compared to BAL\",\n        BlockException.INVALID_BLOCK_ACCESS_LIST: \"unequal\",\n    }\n    mapping_regex: ClassVar[Dict[ExceptionBase, str]] = {\n        TransactionException.TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED: (\n            r\"blob gas used \\d+ exceeds maximum allowance \\d+\"\n        ),\n        BlockException.BLOB_GAS_USED_ABOVE_LIMIT: (\n            r\"blob gas used \\d+ exceeds maximum allowance \\d+\"\n        ),\n        BlockException.INVALID_GAS_USED_ABOVE_LIMIT: r\"invalid gasUsed: have \\d+, gasLimit \\d+\",\n        BlockException.INVALID_DEPOSIT_EVENT_LAYOUT: (\n            r\"invalid requests hash|failed to parse deposit logs\"\n        ),\n        # Geth does not validate the sizes or offsets of the deposit\n        # contract logs. As a workaround we have set\n        # INVALID_DEPOSIT_EVENT_LAYOUT equal to INVALID_REQUESTS.\n        #\n        # Although this is out of spec, it is understood that this\n        # will not cause an issue so long as the mainnet/testnet\n        # deposit contracts don't change.\n        #\n        # The offsets are checked second and the sizes are checked\n        # third within the `is_valid_deposit_event_data` function:\n        # https://eips.ethereum.org/EIPS/eip-6110#block-validity\n        #\n        # EELS definition for `is_valid_deposit_event_data`:\n        # https://github.com/ethereum/execution-specs/blob/5ddb904fa7ba27daeff423e78466744c51e8cb6a/src/ethereum/forks/prague/requests.py#L51\n    }\n\n\nclass GethEvm(EthereumCLI):\n    \"\"\"go-ethereum `evm` base class.\"\"\"\n\n    default_binary = Path(\"evm\")\n    detect_binary_pattern = re.compile(r\"^evm(.exe)? version\\b\")\n    cached_version: Optional[str] = None\n    trace: bool\n\n    def __init__(\n        self,\n        binary: Optional[Path] = None,\n        trace: bool = False,\n    ):\n        \"\"\"Initialize the GethEvm class.\"\"\"\n        self.binary = binary if binary else self.default_binary\n        self.trace = trace\n        self._info_metadata: Optional[Dict[str, Any]] = {}\n\n    def _run_command(self, command: List[str]) -> subprocess.CompletedProcess:\n        try:\n            return subprocess.run(\n                command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True\n            )\n        except subprocess.CalledProcessError as e:\n            raise Exception(\"Command failed with non-zero status.\") from e\n        except Exception as e:\n            raise Exception(\"Unexpected exception calling evm tool.\") from e\n\n    def _consume_debug_dump(\n        self,\n        command: List[str],\n        result: subprocess.CompletedProcess,\n        fixture_path: Path,\n        debug_output_path: Path,\n    ) -> None:\n        # our assumption is that each command element is a string\n        assert all(isinstance(x, str) for x in command), (\n            f\"Not all elements of 'command' list are strings: {command}\"\n        )\n        assert len(command) > 0\n\n        # replace last value with debug fixture path\n        debug_fixture_path = str(debug_output_path / \"fixtures.json\")\n        command[-1] = debug_fixture_path\n\n        # ensure that flags with spaces are wrapped in double-quotes\n        consume_direct_call = \" \".join(shlex.quote(arg) for arg in command)\n\n        consume_direct_script = textwrap.dedent(\n            f\"\"\"\\\n            #!/bin/bash\n            {consume_direct_call}\n            \"\"\"\n        )\n        dump_files_to_directory(\n            str(debug_output_path),\n            {\n                \"consume_direct_args.py\": command,\n                \"consume_direct_returncode.txt\": result.returncode,\n                \"consume_direct_stdout.txt\": result.stdout,\n                \"consume_direct_stderr.txt\": result.stderr,\n                \"consume_direct.sh+x\": consume_direct_script,\n            },\n        )\n        shutil.copyfile(fixture_path, debug_fixture_path)\n\n    @cache  # noqa\n    def help(self, subcommand: str | None = None) -> str:\n        \"\"\"Return the help string, optionally for a subcommand.\"\"\"\n        help_command = [str(self.binary)]\n        if subcommand:\n            help_command.append(subcommand)\n        help_command.append(\"--help\")\n        return self._run_command(help_command).stdout\n\n\nclass GethTransitionTool(GethEvm, TransitionTool):\n    \"\"\"go-ethereum `evm` Transition tool interface wrapper class.\"\"\"\n\n    subcommand: Optional[str] = \"t8n\"\n    trace: bool\n    t8n_use_stream = True\n\n    def __init__(\n        self,\n        *,\n        exception_mapper: Optional[ExceptionMapper] = None,\n        binary: Optional[Path] = None,\n        trace: bool = False,\n    ):\n        \"\"\"Initialize the GethTransitionTool class.\"\"\"\n        if not exception_mapper:\n            exception_mapper = GethExceptionMapper()\n        GethEvm.__init__(self, binary=binary, trace=trace)\n        TransitionTool.__init__(\n            self, binary=binary, exception_mapper=exception_mapper, trace=trace\n        )\n        help_command = [str(self.binary), str(self.subcommand), \"--help\"]\n        result = self._run_command(help_command)\n        self.help_string = result.stdout\n\n    def is_fork_supported(self, fork: Fork) -> bool:\n        \"\"\"\n        Return True if the fork is supported by the tool.\n\n        If the fork is a transition fork, we want to check the fork it\n        transitions to.\n        \"\"\"\n        return fork.transition_tool_name() in self.help_string\n\n\nclass GethFixtureConsumer(\n    GethEvm,\n    FixtureConsumerTool,\n    fixture_formats=[StateFixture, BlockchainFixture],\n):\n    \"\"\"Geth's implementation of the fixture consumer.\"\"\"\n\n    def consume_blockchain_test(\n        self,\n        fixture_path: Path,\n        fixture_name: Optional[str] = None,\n        debug_output_path: Optional[Path] = None,\n    ) -> None:\n        \"\"\"\n        Consume a single blockchain test.\n\n        The `evm blocktest` command takes the `--run` argument which can be\n        used to select a specific fixture from the fixture file when executing.\n        \"\"\"\n        subcommand = \"blocktest\"\n        global_options = []\n        subcommand_options = []\n        if debug_output_path:\n            global_options += [\"--verbosity\", \"100\"]\n            subcommand_options += [\"--trace\"]\n\n        if fixture_name:\n            subcommand_options += [\"--run\", re.escape(fixture_name)]\n\n        command = (\n            [str(self.binary)]\n            + global_options\n            + [subcommand]\n            + subcommand_options\n            + [str(fixture_path)]\n        )\n\n        result = self._run_command(command)\n\n        if debug_output_path:\n            self._consume_debug_dump(command, result, fixture_path, debug_output_path)\n\n        if result.returncode != 0:\n            raise Exception(\n                f\"Unexpected exit code:\\n{' '.join(command)}\\n\\n Error:\\n{result.stderr}\"\n            )\n\n        result_json = json.loads(result.stdout)\n        if not isinstance(result_json, list):\n            raise Exception(f\"Unexpected result from evm blocktest: {result_json}\")\n\n        if any(not test_result[\"pass\"] for test_result in result_json):\n            exception_text = \"Blockchain test failed: \\n\" + \"\\n\".join(\n                f\"{test_result['name']}: \" + test_result[\"error\"]\n                for test_result in result_json\n                if not test_result[\"pass\"]\n            )\n            raise Exception(exception_text)\n\n    @cache  # noqa\n    def consume_state_test_file(\n        self,\n        fixture_path: Path,\n        debug_output_path: Optional[Path] = None,\n    ) -> List[Dict[str, Any]]:\n        \"\"\"\n        Consume an entire state test file.\n\n        The `evm statetest` will always execute all the tests contained in a\n        file without the possibility of selecting a single test, so this\n        function is cached in order to only call the command once and\n        `consume_state_test` can simply select the result that was requested.\n        \"\"\"\n        subcommand = \"statetest\"\n        global_options: List[str] = []\n        subcommand_options: List[str] = []\n        if debug_output_path:\n            global_options += [\"--verbosity\", \"100\"]\n            subcommand_options += [\"--trace\"]\n\n        command = (\n            [str(self.binary)]\n            + global_options\n            + [subcommand]\n            + subcommand_options\n            + [str(fixture_path)]\n        )\n        result = self._run_command(command)\n\n        if debug_output_path:\n            self._consume_debug_dump(command, result, fixture_path, debug_output_path)\n\n        if result.returncode != 0:\n            raise Exception(\n                f\"Unexpected exit code:\\n{' '.join(command)}\\n\\n Error:\\n{result.stderr}\"\n            )\n\n        result_json = json.loads(result.stdout)\n        if not isinstance(result_json, list):\n            raise Exception(f\"Unexpected result from evm statetest: {result_json}\")\n        return result_json\n\n    def consume_state_test(\n        self,\n        fixture_path: Path,\n        fixture_name: Optional[str] = None,\n        debug_output_path: Optional[Path] = None,\n    ) -> None:\n        \"\"\"\n        Consume a single state test.\n\n        Uses the cached result from `consume_state_test_file` in order to not\n        call the command every time an select a single result from there.\n        \"\"\"\n        file_results = self.consume_state_test_file(\n            fixture_path=fixture_path,\n            debug_output_path=debug_output_path,\n        )\n        if fixture_name:\n            test_result = [\n                test_result for test_result in file_results if test_result[\"name\"] == fixture_name\n            ]\n            assert len(test_result) < 2, f\"Multiple test results for {fixture_name}\"\n            assert len(test_result) == 1, f\"Test result for {fixture_name} missing\"\n            assert test_result[0][\"pass\"], f\"State test failed: {test_result[0]['error']}\"\n        else:\n            if any(not test_result[\"pass\"] for test_result in file_results):\n                exception_text = \"State test failed: \\n\" + \"\\n\".join(\n                    f\"{test_result['name']}: \" + test_result[\"error\"]\n                    for test_result in file_results\n                    if not test_result[\"pass\"]\n                )\n                raise Exception(exception_text)\n\n    def consume_fixture(\n        self,\n        fixture_format: FixtureFormat,\n        fixture_path: Path,\n        fixture_name: Optional[str] = None,\n        debug_output_path: Optional[Path] = None,\n    ) -> None:\n        \"\"\"\n        Execute the appropriate geth fixture consumer for the fixture at\n        `fixture_path`.\n        \"\"\"\n        if fixture_format == BlockchainFixture:\n            self.consume_blockchain_test(\n                fixture_path=fixture_path,\n                fixture_name=fixture_name,\n                debug_output_path=debug_output_path,\n            )\n        elif fixture_format == StateFixture:\n            self.consume_state_test(\n                fixture_path=fixture_path,\n                fixture_name=fixture_name,\n                debug_output_path=debug_output_path,\n            )\n        else:\n            raise Exception(\n                f\"Fixture format {fixture_format.format_name} not supported by {self.binary}\"\n            )\n"
  },
  {
    "path": "src/ethereum_clis/clis/nethermind.py",
    "content": "\"\"\"Interfaces for Nethermind CLIs.\"\"\"\n\nimport json\nimport re\nimport shlex\nimport subprocess\nimport textwrap\nfrom functools import cache\nfrom pathlib import Path\nfrom typing import Any, Dict, List, Optional, Tuple\n\nimport pytest\n\nfrom ethereum_test_exceptions import BlockException, ExceptionMapper, TransactionException\nfrom ethereum_test_fixtures import BlockchainFixture, EOFFixture, FixtureFormat, StateFixture\n\nfrom ..ethereum_cli import EthereumCLI\nfrom ..file_utils import dump_files_to_directory\nfrom ..fixture_consumer_tool import FixtureConsumerTool\n\n\nclass Nethtest(EthereumCLI):\n    \"\"\"Nethermind `nethtest` binary base class.\"\"\"\n\n    default_binary = Path(\"nethtest\")\n    # new pattern allows e.g. '1.2.3', in the past that was denied\n    detect_binary_pattern = re.compile(r\"^\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9]+)?(\\+[a-f0-9]{40})?$\")\n    version_flag: str = \"--version\"\n    cached_version: Optional[str] = None\n\n    def __init__(\n        self,\n        binary: Path,\n        trace: bool = False,\n        exception_mapper: ExceptionMapper | None = None,\n    ):\n        \"\"\"Initialize the Nethtest class.\"\"\"\n        self.binary = binary\n        self.trace = trace\n        # TODO: Implement NethermindExceptionMapper\n        self.exception_mapper = exception_mapper if exception_mapper else None\n\n    def _run_command(self, command: List[str]) -> subprocess.CompletedProcess:\n        try:\n            return subprocess.run(\n                command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True\n            )\n        except subprocess.CalledProcessError as e:\n            raise Exception(\"Command failed with non-zero status.\") from e\n        except Exception as e:\n            raise Exception(\"Unexpected exception calling evm tool.\") from e\n\n    def _consume_debug_dump(\n        self,\n        command: Tuple[str, ...],\n        result: subprocess.CompletedProcess,\n        debug_output_path: Path,\n    ) -> None:\n        # our assumption is that each command element is a string\n        assert all(isinstance(x, str) for x in command), (\n            f\"Not all elements of 'command' list are strings: {command}\"\n        )\n\n        # ensure that flags with spaces are wrapped in double-quotes\n        consume_direct_call = \" \".join(shlex.quote(arg) for arg in command)\n\n        consume_direct_script = textwrap.dedent(\n            f\"\"\"\\\n            #!/bin/bash\n            {consume_direct_call}\n            \"\"\"\n        )\n\n        dump_files_to_directory(\n            str(debug_output_path),\n            {\n                \"consume_direct_args.py\": command,\n                \"consume_direct_returncode.txt\": result.returncode,\n                \"consume_direct_stdout.txt\": result.stdout,\n                \"consume_direct_stderr.txt\": result.stderr,\n                \"consume_direct.sh+x\": consume_direct_script,\n            },\n        )\n\n    @cache  # noqa\n    def help(self, subcommand: str | None = None) -> str:\n        \"\"\"Return the help string, optionally for a subcommand.\"\"\"\n        help_command = [str(self.binary)]\n        if subcommand:\n            help_command.append(subcommand)\n        help_command.append(\"--help\")\n        return self._run_command(help_command).stdout\n\n    @cache  # noqa\n    def has_eof_support(self) -> bool:\n        \"\"\"\n        Return True if the `nethtest` binary supports the `--eofTest` flag.\n\n        Currently, nethtest EOF support is only available in nethermind's\n        feature/evm/eof branch\n        https://github.com/NethermindEth/nethermind/tree/feature/evm/eof\n        \"\"\"\n        return \"--eofTest\" in self.help()\n\n\nclass NethtestFixtureConsumer(\n    Nethtest,\n    FixtureConsumerTool,\n    fixture_formats=[StateFixture, BlockchainFixture, EOFFixture],\n):\n    \"\"\"Nethermind implementation of the fixture consumer.\"\"\"\n\n    def _build_command_with_options(\n        self,\n        fixture_format: FixtureFormat,\n        fixture_path: Path,\n        fixture_name: Optional[str] = None,\n        debug_output_path: Optional[Path] = None,\n    ) -> Tuple[str, ...]:\n        assert fixture_name, \"Fixture name must be provided for nethtest.\"\n        command = [str(self.binary)]\n        if fixture_format is BlockchainFixture:\n            command += [\"--blockTest\", \"--filter\", f\"{re.escape(fixture_name)}\"]\n        elif fixture_format is StateFixture:\n            # TODO: consider using `--filter` here to readily access traces\n            # from the output\n            pass  # no additional options needed\n        elif fixture_format is EOFFixture:\n            command += [\"--eofTest\"]\n        else:\n            raise Exception(\n                f\"Fixture format {fixture_format.format_name} not supported by {self.binary}\"\n            )\n        command += [\"--input\", str(fixture_path)]\n        if debug_output_path:\n            command += [\"--trace\"]\n        return tuple(command)\n\n    @cache  # noqa\n    def consume_state_test_file(\n        self,\n        fixture_path: Path,\n        command: Tuple[str, ...],\n        debug_output_path: Optional[Path] = None,\n    ) -> Tuple[List[Dict[str, Any]], str]:\n        \"\"\"\n        Consume an entire state test file.\n\n        The `evm statetest` will always execute all the tests contained in a\n        file without the possibility of selecting a single test, so this\n        function is cached in order to only call the command once and\n        `consume_state_test` can simply select the result that was requested.\n        \"\"\"\n        del fixture_path\n        result = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)\n\n        if debug_output_path:\n            self._consume_debug_dump(command, result, debug_output_path)\n\n        if result.returncode != 0:\n            raise Exception(\n                f\"Unexpected exit code:\\n{' '.join(command)}\\n\\n Error:\\n{result.stderr}\"\n            )\n\n        try:\n            result_json = json.loads(result.stdout)\n        except json.JSONDecodeError as e:\n            raise Exception(\n                f\"Failed to parse JSON output on stdout from nethtest:\\n{result.stdout}\"\n            ) from e\n\n        if not isinstance(result_json, list):\n            raise Exception(f\"Unexpected result from evm statetest: {result_json}\")\n        return result_json, result.stderr\n\n    def consume_state_test(\n        self,\n        command: Tuple[str, ...],\n        fixture_path: Path,\n        fixture_name: Optional[str] = None,\n        debug_output_path: Optional[Path] = None,\n    ) -> None:\n        \"\"\"\n        Consume a single state test.\n\n        Uses the cached result from `consume_state_test_file` in order to not\n        call the command every time an select a single result from there.\n        \"\"\"\n        file_results, stderr = self.consume_state_test_file(\n            fixture_path=fixture_path,\n            command=command,\n            debug_output_path=debug_output_path,\n        )\n\n        if fixture_name:\n            # TODO: this check is too fragile; extend for ethereum/tests?\n            nethtest_suffix = \"_d0g0v0_\"\n            assert all(\n                test_result[\"name\"].endswith(nethtest_suffix) for test_result in file_results\n            ), (\n                \"consume direct with nethtest doesn't support the multi-data statetest format \"\n                \"used in ethereum/tests (yet)\"\n            )\n            test_result = [\n                test_result\n                for test_result in file_results\n                if test_result[\"name\"].removesuffix(nethtest_suffix)\n                == f\"{fixture_name.split('/')[-1]}\"\n            ]\n            assert len(test_result) < 2, f\"Multiple test results for {fixture_name}\"\n            assert len(test_result) == 1, f\"Test result for {fixture_name} missing\"\n            assert test_result[0][\"pass\"], (\n                f\"State test '{fixture_name}' failed, available stderr:\\n {stderr}\"\n            )\n        else:\n            if any(not test_result[\"pass\"] for test_result in file_results):\n                exception_text = \"State test failed: \\n\" + \"\\n\".join(\n                    f\"{test_result['name']}: \" + test_result[\"error\"]\n                    for test_result in file_results\n                    if not test_result[\"pass\"]\n                )\n                raise Exception(exception_text)\n\n    def consume_blockchain_test(\n        self,\n        command: Tuple[str, ...],\n        fixture_path: Path,\n        fixture_name: Optional[str] = None,\n        debug_output_path: Optional[Path] = None,\n    ) -> None:\n        \"\"\"Execute the the fixture at `fixture_path` via `nethtest`.\"\"\"\n        del fixture_path\n        del fixture_name\n        result = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)\n\n        if debug_output_path:\n            self._consume_debug_dump(command, result, debug_output_path)\n\n        if result.returncode != 0:\n            raise Exception(\n                f\"nethtest exited with non-zero exit code ({result.returncode}).\\n\"\n                f\"stdout:\\n{result.stdout}\\n\"\n                f\"stderr:\\n{result.stderr}\\n\"\n                f\"{' '.join(command)}\"\n            )\n\n    @cache  # noqa\n    def consume_eof_test_file(\n        self,\n        fixture_path: Path,\n        command: Tuple[str, ...],\n        debug_output_path: Optional[Path] = None,\n    ) -> Tuple[Dict[Any, Any], str, str]:\n        \"\"\"Consume an entire EOF fixture file.\"\"\"\n        del fixture_path\n        result = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)\n\n        pattern = re.compile(r\"^(test_.+?)\\s+(PASS|FAIL)$\", re.MULTILINE)\n        test_results = {\n            match.group(1): match.group(2) == \"PASS\"  # Convert \"PASS\" to True\n            # and \"FAIL\" to False\n            for match in pattern.finditer(result.stdout)\n        }\n\n        if debug_output_path:\n            self._consume_debug_dump(command, result, debug_output_path)\n\n        if result.returncode != 0:\n            raise Exception(\n                f\"Unexpected exit code:\\n{' '.join(command)}\\n\\n Error:\\n{result.stderr}\"\n            )\n\n        return test_results, result.stdout, result.stderr\n\n    def consume_eof_test(\n        self,\n        command: Tuple[str, ...],\n        fixture_path: Path,\n        fixture_name: Optional[str],\n        debug_output_path: Optional[Path],\n    ) -> None:\n        \"\"\"Execute the the EOF fixture at `fixture_path` via `nethtest`.\"\"\"\n        if not self.has_eof_support():\n            pytest.skip(\"This version of nethtest does not support the `--eofTest` flag.\")\n        file_results, stdout, stderr = self.consume_eof_test_file(\n            fixture_path=fixture_path,\n            command=command,\n            debug_output_path=debug_output_path,\n        )\n        assert fixture_name, \"fixture_name is required for EOF tests\"\n        modified_fixture_name = fixture_name.split(\"::\")[-1].replace(\"\\\\x\", \"/x\")\n        assert modified_fixture_name in file_results, (\n            f\"Test result for {fixture_name} missing, available stdout:\\n{stdout}.\\n\"\n            f\"Parsed test results: {file_results}\"\n        )\n        if stderr:\n            available_stderr = f\"Available stderr:\\n{stderr}\"\n        else:\n            available_stderr = \"(No output available.)\"\n        assert file_results[modified_fixture_name], (\n            f\"EOF test '{fixture_name}' failed. {available_stderr}\"\n        )\n\n    def consume_fixture(\n        self,\n        fixture_format: FixtureFormat,\n        fixture_path: Path,\n        fixture_name: Optional[str] = None,\n        debug_output_path: Optional[Path] = None,\n    ) -> None:\n        \"\"\"\n        Execute the appropriate geth fixture consumer for the fixture at\n        `fixture_path`.\n        \"\"\"\n        command = self._build_command_with_options(\n            fixture_format, fixture_path, fixture_name, debug_output_path\n        )\n        if fixture_format == BlockchainFixture:\n            self.consume_blockchain_test(\n                command=command,\n                fixture_path=fixture_path,\n                fixture_name=fixture_name,\n                debug_output_path=debug_output_path,\n            )\n        elif fixture_format == StateFixture:\n            self.consume_state_test(\n                command=command,\n                fixture_path=fixture_path,\n                fixture_name=fixture_name,\n                debug_output_path=debug_output_path,\n            )\n        elif fixture_format == EOFFixture:\n            self.consume_eof_test(\n                command=command,\n                fixture_path=fixture_path,\n                fixture_name=fixture_name,\n                debug_output_path=debug_output_path,\n            )\n        else:\n            raise Exception(\n                f\"Fixture format {fixture_format.format_name} not supported by {self.binary}\"\n            )\n\n\nclass NethermindExceptionMapper(ExceptionMapper):\n    \"\"\"Nethermind exception mapper.\"\"\"\n\n    mapping_substring = {\n        TransactionException.SENDER_NOT_EOA: \"sender has deployed code\",\n        TransactionException.INTRINSIC_GAS_TOO_LOW: \"intrinsic gas too low\",\n        TransactionException.INTRINSIC_GAS_BELOW_FLOOR_GAS_COST: \"intrinsic gas too low\",\n        TransactionException.INSUFFICIENT_MAX_FEE_PER_GAS: \"miner premium is negative\",\n        TransactionException.PRIORITY_GREATER_THAN_MAX_FEE_PER_GAS: (\n            \"InvalidMaxPriorityFeePerGas: Cannot be higher than maxFeePerGas\"\n        ),\n        TransactionException.GAS_ALLOWANCE_EXCEEDED: \"Block gas limit exceeded\",\n        TransactionException.NONCE_IS_MAX: \"NonceTooHigh\",\n        TransactionException.INITCODE_SIZE_EXCEEDED: \"max initcode size exceeded\",\n        TransactionException.NONCE_MISMATCH_TOO_LOW: \"wrong transaction nonce\",\n        TransactionException.INSUFFICIENT_MAX_FEE_PER_BLOB_GAS: (\n            \"InsufficientMaxFeePerBlobGas: Not enough to cover blob gas fee\"\n        ),\n        TransactionException.TYPE_3_TX_PRE_FORK: (\n            \"InvalidTxType: Transaction type in Custom is not supported\"\n        ),\n        TransactionException.TYPE_3_TX_ZERO_BLOBS: \"blob transaction missing blob hashes\",\n        TransactionException.TYPE_3_TX_INVALID_BLOB_VERSIONED_HASH: (\n            \"InvalidBlobVersionedHashVersion: Blob version not supported\"\n        ),\n        TransactionException.TYPE_3_TX_CONTRACT_CREATION: \"blob transaction of type create\",\n        TransactionException.TYPE_4_EMPTY_AUTHORIZATION_LIST: (\n            \"MissingAuthorizationList: Must be set\"\n        ),\n        TransactionException.TYPE_4_TX_CONTRACT_CREATION: (\n            \"NotAllowedCreateTransaction: To must be set\"\n        ),\n        TransactionException.TYPE_4_TX_PRE_FORK: (\n            \"InvalidTxType: Transaction type in Custom is not supported\"\n        ),\n        BlockException.INCORRECT_BLOB_GAS_USED: (\n            \"HeaderBlobGasMismatch: Blob gas in header does not match calculated\"\n        ),\n        BlockException.INVALID_REQUESTS: \"InvalidRequestsHash: Requests hash mismatch in block\",\n        BlockException.INVALID_GAS_USED_ABOVE_LIMIT: (\n            \"ExceededGasLimit: Gas used exceeds gas limit.\"\n        ),\n        BlockException.RLP_BLOCK_LIMIT_EXCEEDED: (\n            \"ExceededBlockSizeLimit: Exceeded block size limit\"\n        ),\n        BlockException.INVALID_DEPOSIT_EVENT_LAYOUT: (\n            \"DepositsInvalid: Invalid deposit event layout:\"\n        ),\n    }\n    mapping_regex = {\n        TransactionException.INSUFFICIENT_ACCOUNT_FUNDS: (\n            r\"insufficient sender balance|insufficient MaxFeePerGas for sender balance\"\n        ),\n        TransactionException.TYPE_3_TX_WITH_FULL_BLOBS: r\"Transaction \\d+ is not valid\",\n        TransactionException.TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED: (\n            r\"BlockBlobGasExceeded: A block cannot have more than \\d+ blob gas, blobs count \\d+, \"\n            r\"blobs gas used: \\d+\"\n        ),\n        TransactionException.TYPE_3_TX_BLOB_COUNT_EXCEEDED: (\n            r\"BlobTxGasLimitExceeded: Transaction's totalDataGas=\\d+ \"\n            r\"exceeded MaxBlobGas per transaction=\\d+\"\n        ),\n        TransactionException.GAS_LIMIT_EXCEEDS_MAXIMUM: (\n            r\"TxGasLimitCapExceeded: Gas limit \\d+ \\w+ cap of \\d+\\.?\"\n        ),\n        BlockException.INCORRECT_EXCESS_BLOB_GAS: (\n            r\"HeaderExcessBlobGasMismatch: Excess blob gas in header does not match calculated\"\n            r\"|Overflow in excess blob gas\"\n        ),\n        BlockException.INVALID_BLOCK_HASH: (\n            r\"Invalid block hash 0x[0-9a-f]+ does not match calculated hash 0x[0-9a-f]+\"\n        ),\n        BlockException.SYSTEM_CONTRACT_EMPTY: (\n            r\"(Withdrawals|Consolidations)Empty: Contract is not deployed\\.\"\n        ),\n        BlockException.SYSTEM_CONTRACT_CALL_FAILED: (\n            r\"(Withdrawals|Consolidations)Failed: Contract execution failed\\.\"\n        ),\n    }\n"
  },
  {
    "path": "src/ethereum_clis/clis/nimbus.py",
    "content": "\"\"\"Nimbus Transition tool interface.\"\"\"\n\nimport re\nimport subprocess\nfrom pathlib import Path\nfrom typing import ClassVar, Dict, Optional\n\nfrom ethereum_test_exceptions import (\n    BlockException,\n    ExceptionBase,\n    ExceptionMapper,\n    TransactionException,\n)\nfrom ethereum_test_forks import Fork\n\nfrom ..transition_tool import TransitionTool\n\n\nclass NimbusTransitionTool(TransitionTool):\n    \"\"\"Nimbus `evm` Transition tool interface wrapper class.\"\"\"\n\n    default_binary = Path(\"t8n\")\n    detect_binary_pattern = re.compile(r\"^Nimbus-t8n\\b\")\n    version_flag: str = \"--version\"\n\n    binary: Path\n    cached_version: Optional[str] = None\n    trace: bool\n\n    def __init__(\n        self,\n        *,\n        binary: Optional[Path] = None,\n        trace: bool = False,\n    ):\n        \"\"\"Initialize the Nimbus Transition tool interface.\"\"\"\n        super().__init__(exception_mapper=NimbusExceptionMapper(), binary=binary, trace=trace)\n        args = [str(self.binary), \"--help\"]\n        try:\n            result = subprocess.run(args, capture_output=True, text=True)\n        except subprocess.CalledProcessError as e:\n            raise Exception(\n                f\"evm process unexpectedly returned a non-zero status code: {e}.\"\n            ) from e\n        except Exception as e:\n            raise Exception(f\"Unexpected exception calling evm tool: {e}.\") from e\n        self.help_string = result.stdout\n\n    def version(self) -> str:\n        \"\"\"Get `evm` binary version.\"\"\"\n        if self.cached_version is None:\n            self.cached_version = re.sub(r\"\\x1b\\[0m\", \"\", super().version()).strip()\n\n        return self.cached_version\n\n    def is_fork_supported(self, fork: Fork) -> bool:\n        \"\"\"\n        Return True if the fork is supported by the tool.\n\n        If the fork is a transition fork, we want to check the fork it\n        transitions to.\n        \"\"\"\n        return fork.transition_tool_name() in self.help_string\n\n\nclass NimbusExceptionMapper(ExceptionMapper):\n    \"\"\"\n    Translate between EEST exceptions and error strings returned by Nimbus.\n    \"\"\"\n\n    mapping_substring: ClassVar[Dict[ExceptionBase, str]] = {\n        TransactionException.TYPE_4_TX_CONTRACT_CREATION: (\n            \"set code transaction must not be a create transaction\"\n        ),\n        TransactionException.INSUFFICIENT_ACCOUNT_FUNDS: \"invalid tx: not enough cash to send\",\n        TransactionException.TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED: (\n            \"would exceed maximum allowance\"\n        ),\n        TransactionException.INSUFFICIENT_MAX_FEE_PER_BLOB_GAS: (\n            \"max fee per blob gas less than block blob gas fee\"\n        ),\n        TransactionException.INSUFFICIENT_MAX_FEE_PER_GAS: (\n            \"max fee per gas less than block base fee\"\n        ),\n        TransactionException.TYPE_3_TX_PRE_FORK: (\n            \"blob tx used but field env.ExcessBlobGas missing\"\n        ),\n        TransactionException.TYPE_3_TX_INVALID_BLOB_VERSIONED_HASH: (\n            \"invalid tx: one of blobVersionedHash has invalid version\"\n        ),\n        # TODO: temp solution until mapper for nimbus is fixed\n        TransactionException.GAS_LIMIT_EXCEEDS_MAXIMUM: \"zero gasUsed but transactions present\",\n        # This message is the same as TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED\n        TransactionException.TYPE_3_TX_BLOB_COUNT_EXCEEDED: \"exceeds maximum allowance\",\n        TransactionException.TYPE_3_TX_ZERO_BLOBS: \"blob transaction missing blob hashes\",\n        TransactionException.INTRINSIC_GAS_TOO_LOW: \"zero gasUsed but transactions present\",\n        TransactionException.INTRINSIC_GAS_BELOW_FLOOR_GAS_COST: \"intrinsic gas too low\",\n        TransactionException.INITCODE_SIZE_EXCEEDED: \"max initcode size exceeded\",\n        BlockException.RLP_BLOCK_LIMIT_EXCEEDED: (\n            # TODO:\n            \"ExceededBlockSizeLimit: Exceeded block size limit\"\n        ),\n    }\n    mapping_regex: ClassVar[Dict[ExceptionBase, str]] = {}\n"
  },
  {
    "path": "src/ethereum_clis/clis/reth.py",
    "content": "\"\"\"Reth execution client transition tool.\"\"\"\n\nfrom ethereum_test_exceptions import BlockException, ExceptionMapper, TransactionException\n\n\nclass RethExceptionMapper(ExceptionMapper):\n    \"\"\"Reth exception mapper.\"\"\"\n\n    mapping_substring = {\n        TransactionException.SENDER_NOT_EOA: (\n            \"reject transactions from senders with deployed code\"\n        ),\n        TransactionException.INSUFFICIENT_ACCOUNT_FUNDS: \"lack of funds\",\n        TransactionException.INITCODE_SIZE_EXCEEDED: \"create initcode size limit\",\n        TransactionException.INSUFFICIENT_MAX_FEE_PER_GAS: \"gas price is less than basefee\",\n        TransactionException.PRIORITY_GREATER_THAN_MAX_FEE_PER_GAS: (\n            \"priority fee is greater than max fee\"\n        ),\n        TransactionException.GASLIMIT_PRICE_PRODUCT_OVERFLOW: \"overflow\",\n        TransactionException.TYPE_3_TX_CONTRACT_CREATION: \"unexpected length\",\n        TransactionException.TYPE_3_TX_WITH_FULL_BLOBS: \"unexpected list\",\n        TransactionException.TYPE_3_TX_INVALID_BLOB_VERSIONED_HASH: \"blob version not supported\",\n        TransactionException.TYPE_3_TX_ZERO_BLOBS: \"empty blobs\",\n        TransactionException.TYPE_4_EMPTY_AUTHORIZATION_LIST: \"empty authorization list\",\n        TransactionException.TYPE_4_TX_CONTRACT_CREATION: \"unexpected length\",\n        TransactionException.TYPE_4_TX_PRE_FORK: (\n            \"eip 7702 transactions present in pre-prague payload\"\n        ),\n        BlockException.INVALID_DEPOSIT_EVENT_LAYOUT: (\n            \"failed to decode deposit requests from receipts\"\n        ),\n        BlockException.INVALID_REQUESTS: \"mismatched block requests hash\",\n        BlockException.INVALID_RECEIPTS_ROOT: \"receipt root mismatch\",\n        BlockException.INVALID_STATE_ROOT: \"mismatched block state root\",\n        BlockException.INVALID_BLOCK_HASH: \"block hash mismatch\",\n        BlockException.INVALID_GAS_USED: \"block gas used mismatch\",\n        BlockException.RLP_BLOCK_LIMIT_EXCEEDED: \"block is too large: \",\n    }\n    mapping_regex = {\n        TransactionException.NONCE_MISMATCH_TOO_LOW: r\"nonce \\d+ too low, expected \\d+\",\n        TransactionException.INSUFFICIENT_MAX_FEE_PER_BLOB_GAS: (\n            r\"blob gas price \\(\\d+\\) is greater than max fee per blob gas \\(\\d+\\)\"\n        ),\n        TransactionException.INTRINSIC_GAS_TOO_LOW: (\n            r\"call gas cost \\(\\d+\\) exceeds the gas limit \\(\\d+\\)\"\n        ),\n        TransactionException.INTRINSIC_GAS_BELOW_FLOOR_GAS_COST: (\n            r\"gas floor \\(\\d+\\) exceeds the gas limit \\(\\d+\\)\"\n        ),\n        TransactionException.TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED: (\n            r\"blob gas used \\d+ exceeds maximum allowance \\d+\"\n        ),\n        TransactionException.TYPE_3_TX_BLOB_COUNT_EXCEEDED: r\"too many blobs, have \\d+, max \\d+\",\n        TransactionException.TYPE_3_TX_PRE_FORK: (\n            r\"blob transactions present in pre-cancun payload|empty blobs\"\n        ),\n        TransactionException.GAS_ALLOWANCE_EXCEEDED: (\n            r\"transaction gas limit \\w+ is more than blocks available gas \\w+\"\n        ),\n        TransactionException.GAS_LIMIT_EXCEEDS_MAXIMUM: (\n            r\"transaction gas limit.*is greater than the cap\"\n        ),\n        BlockException.SYSTEM_CONTRACT_CALL_FAILED: r\"failed to apply .* requests contract call\",\n        BlockException.INCORRECT_BLOB_GAS_USED: (\n            r\"blob gas used mismatch|blob gas used \\d+ is not a multiple of blob gas per blob\"\n        ),\n        BlockException.INCORRECT_EXCESS_BLOB_GAS: (\n            r\"excess blob gas \\d+ is not a multiple of blob gas per blob|invalid excess blob gas\"\n        ),\n        BlockException.INVALID_GAS_USED_ABOVE_LIMIT: (\n            r\"block used gas \\(\\d+\\) is greater than gas limit \\(\\d+\\)\"\n        ),\n    }\n"
  },
  {
    "path": "src/ethereum_clis/ethereum_cli.py",
    "content": "\"\"\"Abstract base class to help create Python interfaces to Ethereum CLIs.\"\"\"\n\nimport os\nimport shutil\nimport subprocess\nfrom itertools import groupby\nfrom pathlib import Path\nfrom re import Pattern\nfrom typing import Any, List, Optional, Type\n\nfrom pytest_plugins.custom_logging import get_logger\n\nlogger = get_logger(__name__)\n\n\nclass UnknownCLIError(Exception):\n    \"\"\"Exception raised if an unknown CLI is encountered.\"\"\"\n\n    pass\n\n\nclass CLINotFoundInPathError(Exception):\n    \"\"\"Exception raised if the specified CLI binary isn't found in the path.\"\"\"\n\n    def __init__(\n        self,\n        message: str = \"The CLI binary was not found in the path\",\n        binary: Path | None = None,\n    ) -> None:\n        \"\"\"Initialize the exception.\"\"\"\n        if binary:\n            message = f\"{message} ({binary})\"\n        super().__init__(message)\n\n\nclass EthereumCLI:\n    \"\"\"\n    Abstract base class to help create Python interfaces to Ethereum CLIs.\n\n    This base class helps handle the special case of EVM subcommands, such as\n    the EVM transition tool `t8n`, which have multiple implementations, one\n    from each client team. In the case of these tools, this class mainly serves\n    to help instantiate the correct subclass based on the output of the CLI's\n    version flag.\n    \"\"\"\n\n    registered_tools: List[Type[Any]] = []\n    default_tool: Optional[Type[Any]] = None\n    binary: Path\n    default_binary: Path\n    detect_binary_pattern: Pattern\n    version_flag: str = \"-v\"\n    cached_version: Optional[str] = None\n\n    def __init__(self, *, binary: Optional[Path] = None):\n        \"\"\"Abstract init method that all subclasses must implement.\"\"\"\n        if binary is None:\n            binary = self.default_binary\n        else:\n            # improve behavior of which by resolving the path:\n            # ~/relative paths don't work\n            resolved_path = Path(os.path.expanduser(binary)).resolve()\n            if resolved_path.exists():\n                binary = resolved_path\n        binary = shutil.which(binary)  # type: ignore\n        if not binary:\n            raise CLINotFoundInPathError(binary=binary)\n        self.binary = Path(binary)\n\n    @classmethod\n    def register_tool(cls, tool_subclass: Type[Any]) -> None:\n        \"\"\"Register a given subclass as tool option.\"\"\"\n        cls.registered_tools.append(tool_subclass)  # raise NotImplementedError\n\n    @classmethod\n    def set_default_tool(cls, tool_subclass: Type[Any]) -> None:\n        \"\"\"Register the default tool subclass.\"\"\"\n        cls.default_tool = tool_subclass\n\n    @classmethod\n    def from_binary_path(cls, *, binary_path: Optional[Path] = None, **kwargs: Any) -> Any:\n        \"\"\"\n        Instantiate the appropriate CLI subclass derived from the\n        CLI's `binary_path`.\n\n        This method will attempt to detect the CLI version and instantiate\n        the appropriate subclass based on the version output by running\n        the CLI with the version flag.\n        \"\"\"\n        assert cls.default_tool is not None, \"default CLI implementation was never set\"\n\n        # ensure provided t8n binary can be found and used\n        if binary_path is None:\n            logger.debug(\"Binary path of provided t8n is None!\")\n            return cls.default_tool(binary=binary_path, **kwargs)\n\n        expanded_path = Path(os.path.expanduser(binary_path))\n        logger.debug(f\"Expanded path of provided t8n: {expanded_path}\")\n\n        resolved_path = expanded_path.resolve()\n        logger.debug(f\"Resolved path of provided t8n: {resolved_path}\")\n\n        if resolved_path.exists():\n            logger.debug(\"Resolved path exists\")\n            binary = Path(resolved_path)\n        else:\n            logger.debug(\n                f\"Resolved path does not exist: {resolved_path}\\nTrying to find it via `which`\"\n            )\n\n            # it might be that the provided binary exists in path\n            filename = os.path.basename(resolved_path)\n            binary = shutil.which(filename)  # type: ignore\n            logger.debug(f\"Output of 'which {binary_path}': {binary}\")\n\n            if binary is None:\n                logger.error(f\"Resolved t8n binary path does not exist: {resolved_path}\")\n                raise CLINotFoundInPathError(binary=resolved_path)\n\n            assert binary is not None\n            logger.debug(f\"Successfully located the path of the t8n binary: {binary}\")\n            binary = Path(binary)\n\n        # Group the tools by version flag, so we only have to call the tool\n        # once for all the classes that share the same version flag\n        for version_flag, subclasses in groupby(\n            cls.registered_tools, key=lambda x: x.version_flag\n        ):\n            logger.debug(\n                f\"\\n{'-' * 120}\\nTrying this `version` flag to determine \"\n                f\"if t8n supported: {version_flag}\"\n            )\n            # adding more logging reveals we check for `-v` twice..\n\n            try:\n                result = subprocess.run(\n                    [binary, version_flag],\n                    stdout=subprocess.PIPE,\n                    stderr=subprocess.PIPE,\n                )\n                logger.debug(\n                    f\"Subprocess:\\n\\tstdout: {result.stdout!r}\\n\\n\\n\\t\"\n                    f\"stderr: {result.stderr!r}\\n\\n\\n\"\n                )\n\n                if result.returncode != 0:\n                    logger.debug(f\"Subprocess returncode is not 0!It is: {result.returncode}\")\n                    # don't raise exception, you are supposed to keep trying\n                    # different version flags\n                    continue\n\n                # if there is a breaking error try sth else\n                if result.stderr:\n                    stderr_str = str(result.stderr)\n                    if EthereumCLI.stderr_is_breaking(stderr=stderr_str):\n                        logger.debug(f\"Stderr detected: {stderr_str}\")\n                        continue\n\n                binary_output = \"\"\n                if result.stdout:\n                    binary_output = result.stdout.decode().strip()\n                    logger.debug(f\"Stripped subprocess stdout: {binary_output}\")\n\n                for subclass in subclasses:\n                    logger.debug(f\"Trying subclass {subclass}\")\n                    try:\n                        if subclass.detect_binary(binary_output):\n                            subclass_check_result = subclass(binary=binary, **kwargs)\n                            return subclass_check_result\n                    except Exception as e:\n                        print(e)\n                        continue\n\n                    logger.debug(\n                        f\"T8n with version {binary_output} does not belong to subclass {subclass}\"\n                    )\n\n            except Exception as e:\n                logger.debug(\n                    f\"Trying to determine t8n version with flag `{version_flag}` failed: {e}\"\n                )\n                continue\n\n        raise UnknownCLIError(f\"Unknown CLI: {binary}\")\n\n    @classmethod\n    def detect_binary(cls, binary_output: str) -> bool:\n        \"\"\"\n        Return True if a CLI's `binary_output` matches the\n        class's expected output.\n        \"\"\"\n        logger.debug(f\"Trying to detect binary for {binary_output}..\")\n        assert cls.detect_binary_pattern is not None\n\n        logger.debug(\n            f\"Trying to match {binary_output} against this pattern: {cls.detect_binary_pattern}\"\n        )\n        match_result = cls.detect_binary_pattern.match(binary_output)\n        match_successful: bool = match_result is not None\n\n        return match_successful\n\n    @classmethod\n    def is_installed(cls, binary_path: Optional[Path] = None) -> bool:\n        \"\"\"Return whether the tool is installed in the current system.\"\"\"\n        if binary_path is None:\n            binary_path = cls.default_binary\n        else:\n            resolved_path = Path(os.path.expanduser(binary_path)).resolve()\n            if resolved_path.exists():\n                binary_path = resolved_path\n        binary = shutil.which(binary_path)\n        return binary is not None\n\n    @classmethod\n    def stderr_is_breaking(cls, *, stderr: str) -> bool:\n        \"\"\"\n        Process the stderr output and decide if the error is a\n        breaking error for this specific tool.\n        \"\"\"\n        # harmless java warning on certain systems (besu)\n        if \"SVE vector length\" in stderr:\n            return False\n\n        return True\n\n    def version(self) -> str:\n        \"\"\"\n        Return the name and version of the CLI as reported by\n        the CLI's version flag.\n        \"\"\"\n        if self.cached_version is None:\n            result = subprocess.run(\n                [str(self.binary), self.version_flag],\n                stdout=subprocess.PIPE,\n            )\n\n            if result.returncode != 0:\n                raise Exception(\"failed to evaluate: \" + result.stderr.decode())\n\n            self.cached_version = result.stdout.decode().strip()\n\n        return self.cached_version\n"
  },
  {
    "path": "src/ethereum_clis/file_utils.py",
    "content": "\"\"\"Methods to work with the filesystem and json.\"\"\"\n\nimport os\nimport stat\nfrom json import dump\nfrom typing import Any, Dict\n\nfrom pydantic import BaseModel, RootModel\n\n\ndef write_json_file(data: Dict[str, Any], file_path: str) -> None:\n    \"\"\"Write a JSON file to the given path.\"\"\"\n    with open(file_path, \"w\") as f:\n        dump(data, f, ensure_ascii=False, indent=4)\n\n\ndef dump_files_to_directory(output_path: str, files: Dict[str, Any]) -> None:\n    \"\"\"Dump the files to the given directory.\"\"\"\n    os.makedirs(output_path, exist_ok=True)\n    for file_rel_path_flags, file_contents in files.items():\n        file_rel_path, flags = (\n            file_rel_path_flags.split(\"+\")\n            if \"+\" in file_rel_path_flags\n            else (file_rel_path_flags, \"\")\n        )\n        rel_path = os.path.dirname(file_rel_path)\n        if rel_path:\n            os.makedirs(os.path.join(output_path, rel_path), exist_ok=True)\n        file_path = os.path.join(output_path, file_rel_path)\n        with open(file_path, \"w\") as f:\n            if isinstance(file_contents, BaseModel) or isinstance(file_contents, RootModel):\n                f.write(\n                    file_contents.model_dump_json(\n                        indent=4,\n                        exclude_none=True,\n                        by_alias=True,\n                    )\n                )\n            elif isinstance(file_contents, str):\n                f.write(file_contents)\n            else:\n                dump(file_contents, f, ensure_ascii=True, indent=4)\n        if flags:\n            file_mode = os.stat(file_path).st_mode\n            if \"x\" in flags:\n                file_mode |= stat.S_IEXEC\n            os.chmod(file_path, file_mode)\n"
  },
  {
    "path": "src/ethereum_clis/fixture_consumer_tool.py",
    "content": "\"\"\"Fixture consumer tool abstract class.\"\"\"\n\nfrom typing import List, Type\n\nfrom ethereum_test_fixtures import FixtureConsumer, FixtureFormat\n\nfrom .ethereum_cli import EthereumCLI\n\n\nclass FixtureConsumerTool(FixtureConsumer, EthereumCLI):\n    \"\"\"\n    Fixture consumer tool abstract base class which should be inherited by all\n    fixture consumer tool implementations.\n    \"\"\"\n\n    registered_tools: List[Type[\"FixtureConsumerTool\"]] = []\n    default_tool: Type[\"FixtureConsumerTool\"] | None = None\n\n    def __init_subclass__(cls, *, fixture_formats: List[FixtureFormat]):\n        \"\"\"Register all subclasses of FixtureConsumerTool as possible tools.\"\"\"\n        FixtureConsumerTool.register_tool(cls)\n        cls.fixture_formats = fixture_formats\n"
  },
  {
    "path": "src/ethereum_clis/py.typed",
    "content": ""
  },
  {
    "path": "src/ethereum_clis/tests/test_execution_specs.py",
    "content": "\"\"\"Additional tests for the EELS t8n tool.\"\"\"\n\nimport json\nimport os\nimport sysconfig\nfrom pathlib import Path\nfrom shutil import which\nfrom typing import Dict, List, Type\n\nimport pytest\nfrom pydantic import TypeAdapter\n\nfrom ethereum_clis import ExecutionSpecsTransitionTool, TransitionTool\nfrom ethereum_test_base_types import to_json\nfrom ethereum_test_forks import Berlin\nfrom ethereum_test_types import Alloc, Environment, Transaction\n\nFIXTURES_ROOT = Path(os.path.join(\"src\", \"ethereum_clis\", \"tests\", \"fixtures\"))\nDEFAULT_EVM_T8N_BINARY_NAME = \"ethereum-spec-evm-resolver\"\n\n\n@pytest.fixture(autouse=True)\ndef monkeypatch_path_for_entry_points(\n    monkeypatch: pytest.MonkeyPatch,\n) -> None:\n    \"\"\"\n    Monkeypatch the PATH to add the \"bin\" directory where entrypoints are\n    installed.\n\n    This would typically be in the venv in which pytest is running these tests\n    and fill, which, with uv, is `./.venv/bin`.\n\n    This is required in order for fill to locate the ethereum-spec-evm-resolver\n    \"binary\" (entrypoint) when being executed using pytester.\n    \"\"\"\n    bin_dir = sysconfig.get_path(\"scripts\")\n    monkeypatch.setenv(\"PATH\", f\"{bin_dir}:{os.environ['PATH']}\")\n\n\n@pytest.mark.parametrize(\n    \"alloc,expected_hash\",\n    [\n        (\n            {\n                \"0x1000000000000000000000000000000000000000\": {\n                    \"balance\": \"0x0BA1A9CE0BA1A9CE\",\n                    \"code\": \"0x\",\n                    \"nonce\": \"0\",\n                    \"storage\": {},\n                },\n            },\n            bytes.fromhex(\"51e7c7508e76dca0\"),\n        ),\n        (\n            {\n                \"0x1000000000000000000000000000000000000000\": {\n                    \"balance\": \"0x0BA1A9CE0BA1A9CE\",\n                },\n            },\n            bytes.fromhex(\"51e7c7508e76dca0\"),\n        ),\n        (\n            {\n                \"0x1000000000000000000000000000000000000000\": {\n                    \"balance\": \"0x0BA1A9CE0BA1A9CE\",\n                    \"code\": \"0x\",\n                    \"nonce\": \"1\",\n                    \"storage\": {},\n                },\n            },\n            bytes.fromhex(\"37c2dedbdea6b3af\"),\n        ),\n        (\n            {\n                \"0x1000000000000000000000000000000000000000\": {\n                    \"balance\": \"0\",\n                    \"storage\": {\n                        \"0x01\": \"0x01\",\n                    },\n                },\n            },\n            bytes.fromhex(\"096122e88929baec\"),\n        ),\n    ],\n)\ndef test_calc_state_root(\n    alloc: Dict,\n    expected_hash: bytes,\n) -> None:\n    \"\"\"Test calculation of the state root against expected hash.\"\"\"\n    assert Alloc(alloc).state_root().startswith(expected_hash)\n\n\n@pytest.mark.parametrize(\"evm_tool\", [ExecutionSpecsTransitionTool])\n@pytest.mark.parametrize(\"binary_arg\", [\"no_binary_arg\", \"path_type\", \"str_type\"])\ndef test_evm_tool_binary_arg(\n    evm_tool: Type[ExecutionSpecsTransitionTool], binary_arg: str\n) -> None:\n    \"\"\"Test the `evm_tool` binary argument.\"\"\"\n    if binary_arg == \"no_binary_arg\":\n        evm_tool().version()\n        return\n    elif binary_arg == \"path_type\":\n        evm_bin = which(DEFAULT_EVM_T8N_BINARY_NAME)\n        if not evm_bin:\n            # typing: Path can not take None; but if None, we may\n            # as well fail explicitly.\n            raise Exception(\n                f\"Failed to find `{DEFAULT_EVM_T8N_BINARY_NAME}` in the PATH via which\"\n            )\n        evm_tool(binary=Path(evm_bin)).version()\n        return\n    elif binary_arg == \"str_type\":\n        evm_bin_str = which(DEFAULT_EVM_T8N_BINARY_NAME)\n        if evm_bin_str:\n            evm_tool(binary=Path(evm_bin_str)).version()\n        return\n    raise Exception(\"unknown test parameter\")\n\n\ntransaction_type_adapter = TypeAdapter(List[Transaction])\n\n\n@pytest.fixture\ndef alloc(test_dir: str) -> Alloc:\n    \"\"\"Fixture for the `alloc.json` file.\"\"\"\n    alloc_path = Path(FIXTURES_ROOT, test_dir, \"alloc.json\")\n    with open(alloc_path, \"r\") as f:\n        return Alloc.model_validate_json(f.read())\n\n\n@pytest.fixture\ndef txs(test_dir: str) -> List[Transaction]:\n    \"\"\"Fixture for the `txs.json` file.\"\"\"\n    txs_path = Path(FIXTURES_ROOT, test_dir, \"txs.json\")\n    with open(txs_path, \"r\") as f:\n        return transaction_type_adapter.validate_json(f.read())\n\n\n@pytest.fixture\ndef env(test_dir: str) -> Environment:\n    \"\"\"Fixture for the `env.json` file.\"\"\"\n    env_path = Path(FIXTURES_ROOT, test_dir, \"env.json\")\n    with open(env_path, \"r\") as f:\n        return Environment.model_validate_json(f.read())\n\n\n@pytest.mark.parametrize(\"test_dir\", os.listdir(path=FIXTURES_ROOT))\ndef test_evm_t8n(\n    default_t8n: TransitionTool,\n    alloc: Alloc,\n    txs: List[Transaction],\n    env: Environment,\n    test_dir: str,\n) -> None:\n    \"\"\"\n    Test the `evaluate` method of the `ExecutionSpecsTransitionTool` class.\n    \"\"\"\n    expected_path = Path(FIXTURES_ROOT, test_dir, \"exp.json\")\n\n    with open(expected_path, \"r\") as exp:\n        expected = json.load(exp)\n\n        t8n_output = default_t8n.evaluate(\n            transition_tool_data=TransitionTool.TransitionToolData(\n                alloc=alloc,\n                txs=txs,\n                env=env,\n                fork=Berlin,\n                chain_id=1,\n                reward=0,\n                blob_schedule=Berlin.blob_schedule(),\n            ),\n        )\n        assert to_json(t8n_output.alloc) == expected.get(\"alloc\")\n        if isinstance(default_t8n, ExecutionSpecsTransitionTool):\n            # The expected output was generated with geth, instead of deleting\n            # any info from this expected output, the fields not returned by\n            # eels are handled here.\n            missing_receipt_fields = [\n                \"root\",\n                \"status\",\n                \"cumulativeGasUsed\",\n                \"contractAddress\",\n                \"blockHash\",\n                \"transactionIndex\",\n            ]\n            for key in missing_receipt_fields:\n                for i, _ in enumerate(expected.get(\"result\")[\"receipts\"]):\n                    del expected.get(\"result\")[\"receipts\"][i][key]\n            for i, receipt in enumerate(expected.get(\"result\")[\"receipts\"]):\n                if int(receipt[\"logsBloom\"], 16) == 0:\n                    del expected.get(\"result\")[\"receipts\"][i][\"logsBloom\"]\n\n            t8n_result = to_json(t8n_output.result)\n            for i, _ in enumerate(expected.get(\"result\")[\"rejected\"]):\n                del expected.get(\"result\")[\"rejected\"][i][\"error\"]\n                del t8n_result[\"rejected\"][i][\"error\"]\n\n        assert t8n_result == expected.get(\"result\")\n"
  },
  {
    "path": "src/ethereum_clis/tests/test_transition_tool.py",
    "content": "\"\"\"Test the transition tool and subclasses.\"\"\"\n\nimport shutil\nimport subprocess\nfrom pathlib import Path\nfrom typing import Type\n\nimport pytest\n\nfrom ethereum_clis import (\n    CLINotFoundInPathError,\n    EvmOneTransitionTool,\n    ExecutionSpecsTransitionTool,\n    GethTransitionTool,\n    NimbusTransitionTool,\n    TransitionTool,\n)\n\n\ndef test_default_tool() -> None:\n    \"\"\"Tests that the default t8n tool is set.\"\"\"\n    assert TransitionTool.default_tool is ExecutionSpecsTransitionTool\n\n\n@pytest.mark.parametrize(\n    \"binary_path,which_result,read_result,expected_class\",\n    [\n        (\n            Path(\"evm\"),\n            \"evm\",\n            \"evm version 1.12.1-unstable-c7b099b2-20230627\",\n            GethTransitionTool,\n        ),\n        (\n            Path(\"evmone-t8n\"),\n            \"evmone-t8n\",\n            \"evmone-t8n 0.11.0-dev+commit.93997506\",\n            EvmOneTransitionTool,\n        ),\n        (\n            None,\n            \"evm\",\n            \"evm version 1.12.1-unstable-c7b099b2-20230627\",\n            ExecutionSpecsTransitionTool,\n        ),\n        (\n            Path(\"t8n\"),\n            \"t8n\",\n            \"Nimbus-t8n 0.1.2\\n\\x1b[0m\",\n            NimbusTransitionTool,\n        ),\n    ],\n)\ndef test_from_binary(\n    monkeypatch: pytest.MonkeyPatch,\n    binary_path: Path | None,\n    which_result: str,\n    read_result: str,\n    expected_class: Type[TransitionTool],\n) -> None:\n    \"\"\"Test that `from_binary` instantiates the correct subclass.\"\"\"\n\n    class MockCompletedProcess:\n        def __init__(self, stdout: bytes) -> None:\n            self.stdout = stdout\n            self.stderr = None\n            self.returncode = 0\n\n    def mock_which(self: str) -> str:\n        del self\n        return which_result\n\n    def mock_run(args: list, **kwargs: dict) -> MockCompletedProcess:\n        del args, kwargs\n        return MockCompletedProcess(read_result.encode())\n\n    monkeypatch.setattr(shutil, \"which\", mock_which)\n    monkeypatch.setattr(subprocess, \"run\", mock_run)\n\n    assert isinstance(TransitionTool.from_binary_path(binary_path=binary_path), expected_class)\n\n\ndef test_unknown_binary_path() -> None:\n    \"\"\"\n    Test that `from_binary_path` raises `UnknownCLIError` for unknown\n    binary paths.\n    \"\"\"\n    with pytest.raises(CLINotFoundInPathError):\n        TransitionTool.from_binary_path(binary_path=Path(\"unknown_binary_path\"))\n"
  },
  {
    "path": "src/ethereum_clis/tests/test_transition_tools_support.py",
    "content": "\"\"\"Check T8N filling support.\"\"\"\n\nfrom typing import Dict\n\nimport pytest\n\nfrom ethereum_clis import ExecutionSpecsTransitionTool, TransitionTool\nfrom ethereum_test_base_types import Account, Address, TestAddress, TestPrivateKey\nfrom ethereum_test_forks import (\n    ArrowGlacier,\n    Berlin,\n    Byzantium,\n    Cancun,\n    Constantinople,\n    Fork,\n    GrayGlacier,\n    London,\n    MuirGlacier,\n    Paris,\n    Prague,\n    get_deployed_forks,\n)\nfrom ethereum_test_specs.blockchain import BlockchainFixture, BlockchainTest\nfrom ethereum_test_tools import (\n    AccessList,\n    AuthorizationTuple,\n    Block,\n    Environment,\n    Storage,\n    Transaction,\n    Withdrawal,\n    add_kzg_version,\n)\nfrom ethereum_test_types import Alloc\nfrom ethereum_test_vm import Opcodes as Op\n\nBLOB_COMMITMENT_VERSION_KZG = 1\n\nfork_set = set(get_deployed_forks())\nfork_set.add(Prague)\n\n\ndef test_ci_multi_t8n_support(\n    installed_transition_tool_instances: Dict[str, TransitionTool | Exception],\n    running_in_ci: bool,\n) -> None:\n    \"\"\"\n    Check that the instances of t8n we expect in CI environment were found.\n    \"\"\"\n    names = set(installed_transition_tool_instances.keys())\n    expected_names = {\"ExecutionSpecsTransitionTool\"}\n    if running_in_ci:\n        expected_names.add(\"GethTransitionTool\")\n        expected_names.add(\"EvmOneTransitionTool\")\n    assert expected_names.issubset(names), (\n        f\"Missing expected transition tools: {expected_names - names}\"\n    )\n\n\n@pytest.mark.parametrize(\n    \"fork\",\n    sorted(fork_set, key=lambda f: f.__name__),  # type: ignore\n)\ndef test_t8n_support(fork: Fork, installed_t8n: TransitionTool) -> None:\n    \"\"\"Stress test that sends all possible t8n interactions.\"\"\"\n    if fork in [MuirGlacier, ArrowGlacier, GrayGlacier]:\n        return\n    if isinstance(installed_t8n, ExecutionSpecsTransitionTool) and fork in [Constantinople]:\n        return\n    env = Environment()\n    sender = TestAddress\n    storage_1 = Storage()\n    storage_2 = Storage()\n\n    code_account_1 = Address(0x1001)\n    code_account_2 = Address(0x1002)\n    pre = Alloc(\n        {\n            TestAddress: Account(balance=10_000_000),\n            code_account_1: Account(\n                code=Op.SSTORE(\n                    storage_1.store_next(1, \"blockhash_0_is_set\"), Op.GT(Op.BLOCKHASH(0), 0)\n                )\n                + Op.SSTORE(storage_1.store_next(0, \"blockhash_1\"), Op.BLOCKHASH(1))\n                + Op.SSTORE(\n                    storage_1.store_next(1 if fork < Paris else 0, \"difficulty_1_is_near_20000\"),\n                    Op.AND(Op.GT(Op.PREVRANDAO(), 0x19990), Op.LT(Op.PREVRANDAO(), 0x20100)),\n                )\n            ),\n            code_account_2: Account(\n                code=Op.SSTORE(\n                    storage_2.store_next(1, \"blockhash_1_is_set\"), Op.GT(Op.BLOCKHASH(1), 0)\n                )\n                + Op.SSTORE(\n                    storage_2.store_next(1 if fork < Paris else 0, \"difficulty_2_is_near_20000\"),\n                    Op.AND(Op.GT(Op.PREVRANDAO(), 0x19990), Op.LT(Op.PREVRANDAO(), 0x20100)),\n                )\n            ),\n        }\n    )\n\n    tx_1 = Transaction(\n        gas_limit=100_000,\n        to=code_account_1,\n        data=b\"\",\n        nonce=0,\n        secret_key=TestPrivateKey,\n        protected=fork >= Byzantium,\n    )\n    if fork < Berlin:\n        # Feed legacy transaction, type 0\n        tx_2 = Transaction(\n            gas_limit=100_000,\n            to=code_account_2,\n            data=b\"\",\n            nonce=1,\n            secret_key=TestPrivateKey,\n            protected=fork >= Byzantium,\n        )\n    elif fork < London:\n        # Feed access list transaction, type 1\n        tx_2 = Transaction(\n            gas_limit=100_000,\n            to=code_account_2,\n            data=b\"\",\n            nonce=1,\n            secret_key=TestPrivateKey,\n            protected=fork >= Byzantium,\n            access_list=[\n                AccessList(\n                    address=0x1234,\n                    storage_keys=[0, 1],\n                )\n            ],\n        )\n    elif fork < Cancun:\n        # Feed base fee transaction, type 2\n        tx_2 = Transaction(\n            to=code_account_2,\n            data=b\"\",\n            nonce=1,\n            secret_key=TestPrivateKey,\n            protected=fork >= Byzantium,\n            gas_limit=100_000,\n            max_priority_fee_per_gas=5,\n            max_fee_per_gas=10,\n            access_list=[\n                AccessList(\n                    address=0x1234,\n                    storage_keys=[0, 1],\n                )\n            ],\n        )\n    elif fork < Prague:\n        # Feed blob transaction, type 3\n        tx_2 = Transaction(\n            to=code_account_2,\n            data=b\"\",\n            nonce=1,\n            secret_key=TestPrivateKey,\n            protected=fork >= Byzantium,\n            gas_limit=100_000,\n            max_priority_fee_per_gas=5,\n            max_fee_per_gas=10,\n            max_fee_per_blob_gas=30,\n            blob_versioned_hashes=add_kzg_version([1], BLOB_COMMITMENT_VERSION_KZG),\n            access_list=[\n                AccessList(\n                    address=0x1234,\n                    storage_keys=[0, 1],\n                )\n            ],\n        )\n    else:\n        # Feed set code transaction, type 4\n        tx_2 = Transaction(\n            to=sender,\n            data=b\"\",\n            sender=sender,\n            secret_key=TestPrivateKey,\n            protected=fork >= Byzantium,\n            gas_limit=100_000,\n            max_priority_fee_per_gas=5,\n            max_fee_per_gas=10,\n            nonce=1,\n            access_list=[\n                AccessList(\n                    address=0x1234,\n                    storage_keys=[0, 1],\n                )\n            ],\n            authorization_list=[\n                AuthorizationTuple(\n                    address=code_account_2, nonce=2, signer=sender, secret_key=TestPrivateKey\n                ),\n            ],\n        )\n\n    block_1 = Block(\n        txs=[tx_1],\n        expected_post_state={\n            code_account_1: Account(\n                storage=storage_1,\n            ),\n        },\n    )\n\n    block_2 = Block(\n        txs=[tx_2],\n        expected_post_state={\n            code_account_2: Account(\n                balance=1_000_000_000 if fork >= Cancun else 0,\n                storage=storage_2,\n            ),\n        }\n        if fork < Prague\n        else {\n            code_account_2: Account(\n                balance=1_000_000_000 if fork >= Cancun else 0,\n            ),\n            sender: Account(\n                storage=storage_2,\n            ),\n        },\n    )\n\n    if fork >= Cancun:\n        block_2.withdrawals = [\n            Withdrawal(\n                address=code_account_2,\n                amount=1,\n                index=1,\n                validator_index=0,\n            ),\n        ]\n\n    test = BlockchainTest(\n        genesis_environment=env,\n        pre=pre,\n        post=block_1.expected_post_state,\n        blocks=[block_1, block_2],\n    )\n    test.generate(\n        t8n=installed_t8n,\n        fork=fork,\n        fixture_format=BlockchainFixture,\n    )\n"
  },
  {
    "path": "src/ethereum_clis/transition_tool.py",
    "content": "\"\"\"Transition tool abstract class.\"\"\"\n\nimport json\nimport os\nimport shutil\nimport subprocess\nimport tempfile\nimport textwrap\nimport time\nfrom abc import abstractmethod\nfrom dataclasses import dataclass\nfrom pathlib import Path\nfrom typing import Any, ClassVar, Dict, List, LiteralString, Mapping, Optional, Type\nfrom urllib.parse import urlencode\n\nfrom requests import Response\nfrom requests.exceptions import ConnectionError as RequestsConnectionError\nfrom requests.exceptions import ReadTimeout\nfrom requests_unixsocket import Session  # type: ignore\n\nfrom ethereum_test_base_types import BlobSchedule\nfrom ethereum_test_base_types.composite_types import ForkBlobSchedule\nfrom ethereum_test_exceptions import ExceptionMapper\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_forks.helpers import get_development_forks, get_forks\nfrom ethereum_test_types import Alloc, Environment, Transaction\n\nfrom .cli_types import (\n    OpcodeCount,\n    Traces,\n    TransactionReceipt,\n    TransactionTraces,\n    TransitionToolContext,\n    TransitionToolInput,\n    TransitionToolOutput,\n    TransitionToolRequest,\n)\nfrom .ethereum_cli import EthereumCLI\nfrom .file_utils import dump_files_to_directory, write_json_file\n\nmodel_dump_config: Mapping = {\"by_alias\": True, \"exclude_none\": True}\n\n# TODO: reduce NORMAL_SERVER_TIMEOUT back down to 20 once BLS timeout issue is\n# resolved: https://github.com/ethereum/execution-spec-tests/issues/1894\nNORMAL_SERVER_TIMEOUT = 600\nSLOW_REQUEST_TIMEOUT = 600\n\n\ndef get_valid_transition_tool_names() -> set[str]:\n    \"\"\"\n    Get all valid transition tool names from deployed and development forks.\n    \"\"\"\n    all_available_forks = get_forks() + get_development_forks()\n    return {fork.transition_tool_name() for fork in all_available_forks}\n\n\nclass TransitionTool(EthereumCLI):\n    \"\"\"\n    Transition tool abstract base class which should be inherited by all\n    transition tool implementations.\n    \"\"\"\n\n    traces: List[Traces] | None = None\n\n    registered_tools: List[Type[\"TransitionTool\"]] = []\n    default_tool: Optional[Type[\"TransitionTool\"]] = None\n\n    exception_mapper: ExceptionMapper\n\n    subcommand: Optional[str] = None\n    cached_version: Optional[str] = None\n    t8n_use_stream: bool = False\n    t8n_use_server: bool = False\n    server_url: str | None = None\n    process: Optional[subprocess.Popen] = None\n    supports_opcode_count: ClassVar[bool] = False\n\n    supports_xdist: ClassVar[bool] = True\n    supports_blob_params: ClassVar[bool] = False\n\n    @abstractmethod\n    def __init__(\n        self,\n        *,\n        exception_mapper: Optional[ExceptionMapper] = None,\n        binary: Optional[Path] = None,\n        trace: bool = False,\n    ):\n        \"\"\"\n        Abstract initialization method that all subclasses must implement.\n        \"\"\"\n        assert exception_mapper is not None\n        self.exception_mapper = exception_mapper\n        super().__init__(binary=binary)\n        self.trace = trace\n        self._info_metadata: Optional[Dict[str, Any]] = {}\n\n    def __init_subclass__(cls) -> None:\n        \"\"\"Register all subclasses of TransitionTool as possible tools.\"\"\"\n        TransitionTool.register_tool(cls)\n\n    @abstractmethod\n    def is_fork_supported(self, fork: Fork) -> bool:\n        \"\"\"Return True if the fork is supported by the tool.\"\"\"\n        pass\n\n    def start_server(self) -> None:\n        \"\"\"\n        Start the t8n-server process, extract the port, and leave it\n        running for future reuse.\n        \"\"\"\n        pass\n\n    def shutdown(self) -> None:\n        \"\"\"Perform any cleanup tasks related to the tested tool.\"\"\"\n        pass\n\n    def reset_traces(self) -> None:\n        \"\"\"Reset the internal trace storage for a new test to begin.\"\"\"\n        self.traces = None\n\n    def append_traces(self, new_traces: Traces) -> None:\n        \"\"\"\n        Append a list of traces of a state transition to the current\n        list.\n        \"\"\"\n        if self.traces is None:\n            self.traces = []\n        self.traces.append(new_traces)\n\n    def get_traces(self) -> List[Traces] | None:\n        \"\"\"Return the accumulated traces.\"\"\"\n        return self.traces\n\n    def collect_traces(\n        self,\n        receipts: List[TransactionReceipt],\n        temp_dir: tempfile.TemporaryDirectory,\n        debug_output_path: str = \"\",\n    ) -> Traces:\n        \"\"\"\n        Collect the traces from the t8n tool output and store them in the\n        traces list.\n        \"\"\"\n        traces: Traces = Traces(root=[])\n        temp_dir_path = Path(temp_dir.name)\n        for i, r in enumerate(receipts):\n            trace_file_name = f\"trace-{i}-{r.transaction_hash}.jsonl\"\n            trace_file_path = temp_dir_path / trace_file_name\n            if debug_output_path:\n                shutil.copy(\n                    trace_file_path,\n                    Path(debug_output_path) / trace_file_name,\n                )\n            traces.append(TransactionTraces.from_file(trace_file_path))\n        self.append_traces(traces)\n        return traces\n\n    @dataclass\n    class TransitionToolData:\n        \"\"\"Transition tool files and data to pass between methods.\"\"\"\n\n        alloc: Alloc\n        txs: List[Transaction]\n        env: Environment\n        fork: Fork\n        chain_id: int\n        reward: int\n        blob_schedule: BlobSchedule | None\n        state_test: bool = False\n\n        @property\n        def fork_name(self) -> str:\n            \"\"\"Return the fork name.\"\"\"\n            return self.fork.transition_tool_name(\n                block_number=self.env.number,\n                timestamp=self.env.timestamp,\n            )\n\n        @property\n        def fork_name_if_supports_blob_params(self) -> str:\n            \"\"\"Return the fork name.\"\"\"\n            fork = self.fork.fork_at(\n                block_number=self.env.number,\n                timestamp=self.env.timestamp,\n            )\n\n            # For tools that support blob_params, return base fork for BPO\n            # forks.\n            if fork.bpo_fork():\n                return fork.non_bpo_ancestor().transition_tool_name()\n            else:\n                return self.fork.transition_tool_name(\n                    block_number=self.env.number,\n                    timestamp=self.env.timestamp,\n                )\n\n        @property\n        def blob_params(self) -> ForkBlobSchedule | None:\n            \"\"\"Return the blob parameters for the current fork.\"\"\"\n            if self.blob_schedule:\n                fork_name = self.fork.fork_at(\n                    block_number=self.env.number, timestamp=self.env.timestamp\n                ).name()\n                # Only return blob params if this fork has them\n                if fork_name in self.blob_schedule.root:\n                    return self.blob_schedule[fork_name]\n            return None\n\n        def __post_init__(self) -> None:\n            \"\"\"Modify the reward if the environment number is 0.\"\"\"\n            if self.env.number == 0:\n                self.reward = -1\n\n        def to_input(self) -> TransitionToolInput:\n            \"\"\"Convert the data to a TransactionToolInput object.\"\"\"\n            return TransitionToolInput(\n                alloc=self.alloc,\n                txs=self.txs,\n                env=self.env,\n                blob_params=self.blob_params,\n            )\n\n        def get_request_data(self) -> TransitionToolRequest:\n            \"\"\"Convert the data to a TransitionToolRequest object.\"\"\"\n            return TransitionToolRequest(\n                state=TransitionToolContext(\n                    fork=self.fork_name,\n                    chain_id=self.chain_id,\n                    reward=self.reward,\n                ),\n                input=self.to_input(),\n            )\n\n    def _evaluate_filesystem(\n        self,\n        *,\n        t8n_data: TransitionToolData,\n        debug_output_path: str = \"\",\n    ) -> TransitionToolOutput:\n        \"\"\"\n        Execute a transition tool using the filesystem for its inputs and\n        outputs.\n        \"\"\"\n        temp_dir = tempfile.TemporaryDirectory()\n        os.mkdir(os.path.join(temp_dir.name, \"input\"))\n        os.mkdir(os.path.join(temp_dir.name, \"output\"))\n\n        input_contents = t8n_data.to_input().model_dump(mode=\"json\", **model_dump_config)\n\n        input_paths = {\n            k: os.path.join(temp_dir.name, \"input\", f\"{k}.json\") for k in input_contents.keys()\n        }\n        for key, file_path in input_paths.items():\n            write_json_file(input_contents[key], file_path)\n\n        output_paths = {\n            output: os.path.join(\"output\", f\"{output}.json\") for output in [\"alloc\", \"result\"]\n        }\n        output_paths[\"body\"] = os.path.join(\"output\", \"txs.rlp\")\n\n        # Construct args for evmone-t8n binary\n        args = [\n            str(self.binary),\n            \"--state.fork\",\n            t8n_data.fork_name_if_supports_blob_params\n            if self.supports_blob_params\n            else t8n_data.fork_name,\n            \"--input.alloc\",\n            input_paths[\"alloc\"],\n            \"--input.env\",\n            input_paths[\"env\"],\n            \"--input.txs\",\n            input_paths[\"txs\"],\n            \"--output.basedir\",\n            temp_dir.name,\n            \"--output.result\",\n            output_paths[\"result\"],\n            \"--output.alloc\",\n            output_paths[\"alloc\"],\n            \"--output.body\",\n            output_paths[\"body\"],\n            \"--state.reward\",\n            str(t8n_data.reward),\n            \"--state.chainid\",\n            str(t8n_data.chain_id),\n        ]\n        if self.supports_opcode_count:\n            args.extend(\n                [\n                    \"--opcode.count\",\n                    \"opcodes.json\",\n                ]\n            )\n        if self.supports_blob_params and input_paths.get(\"blobParams\"):\n            args.extend(\n                [\n                    \"--input.blobParams\",\n                    input_paths[\"blobParams\"],\n                ]\n            )\n\n        if self.trace:\n            args.append(\"--trace\")\n\n        result = subprocess.run(\n            args,\n            stdout=subprocess.PIPE,\n            stderr=subprocess.PIPE,\n        )\n\n        if debug_output_path:\n            if os.path.exists(debug_output_path):\n                shutil.rmtree(debug_output_path)\n            shutil.copytree(temp_dir.name, debug_output_path)\n            t8n_output_base_dir = os.path.join(debug_output_path, \"t8n.sh.out\")\n            t8n_call = \" \".join(args)\n            for file_path in input_paths.values():  # update input paths\n                t8n_call = t8n_call.replace(\n                    os.path.dirname(file_path), os.path.join(debug_output_path, \"input\")\n                )\n            # use a new output path for basedir and outputs\n            t8n_call = t8n_call.replace(\n                temp_dir.name,\n                t8n_output_base_dir,\n            )\n            t8n_script = textwrap.dedent(\n                f\"\"\"\\\n                #!/bin/bash\n                # hard-coded to avoid surprises\n                rm -rf {debug_output_path}/t8n.sh.out\n                mkdir -p {debug_output_path}/t8n.sh.out/output\n                {t8n_call}\n                \"\"\"\n            )\n            dump_files_to_directory(\n                debug_output_path,\n                {\n                    \"args.py\": args,\n                    \"returncode.txt\": result.returncode,\n                    \"stdout.txt\": result.stdout.decode(),\n                    \"stderr.txt\": result.stderr.decode(),\n                    \"t8n.sh+x\": t8n_script,\n                },\n            )\n\n        if result.returncode != 0:\n            raise Exception(\"failed to evaluate: \" + result.stderr.decode())\n\n        for key, file_path in output_paths.items():\n            output_paths[key] = os.path.join(temp_dir.name, file_path)\n\n        output_contents = {}\n        for key, file_path in output_paths.items():\n            if \"txs.rlp\" in file_path:\n                continue\n            with open(file_path, \"r+\") as file:\n                output_contents[key] = json.load(file)\n        output = TransitionToolOutput.model_validate(\n            output_contents, context={\"exception_mapper\": self.exception_mapper}\n        )\n        if self.supports_opcode_count:\n            opcode_count_file_path = Path(temp_dir.name) / \"opcodes.json\"\n            if opcode_count_file_path.exists():\n                opcode_count = OpcodeCount.model_validate_json(opcode_count_file_path.read_text())\n                output.result.opcode_count = opcode_count\n\n                if debug_output_path:\n                    dump_files_to_directory(\n                        debug_output_path,\n                        {\n                            \"opcodes.json\": opcode_count.model_dump(),\n                        },\n                    )\n\n        if self.trace:\n            output.result.traces = self.collect_traces(\n                output.result.receipts, temp_dir, debug_output_path\n            )\n\n        temp_dir.cleanup()\n\n        return output\n\n    def _restart_server(self) -> None:\n        \"\"\"Check if server is still responsive and restart if needed.\"\"\"\n        self.shutdown()\n        time.sleep(0.1)\n        self.start_server()\n\n    def _server_post(\n        self,\n        data: Dict[str, Any],\n        timeout: int,\n        url_args: Optional[Dict[str, List[str] | str]] = None,\n        retries: int = 5,\n    ) -> Response:\n        \"\"\"Send a POST request to the t8n-server and return the response.\"\"\"\n        if url_args is None:\n            url_args = {}\n        post_delay = 0.1\n\n        while True:\n            try:\n                response = Session().post(\n                    f\"{self.server_url}?{urlencode(url_args, doseq=True)}\",\n                    json=data,\n                    timeout=timeout,\n                )\n                break\n            except (RequestsConnectionError, ReadTimeout) as e:\n                self._restart_server()\n                retries -= 1\n                if retries == 0:\n                    raise e\n                time.sleep(post_delay)\n                post_delay *= 2\n        response.raise_for_status()\n        if response.status_code != 200:\n            raise Exception(\n                f\"t8n-server returned status code {response.status_code}, \"\n                f\"response: {response.text}\"\n            )\n        return response\n\n    def _generate_post_args(self, t8n_data: TransitionToolData) -> Dict[str, List[str] | str]:\n        \"\"\"Generate the arguments for the POST request to the t8n-server.\"\"\"\n        del t8n_data\n        return {}\n\n    def _evaluate_server(\n        self,\n        *,\n        t8n_data: TransitionToolData,\n        debug_output_path: str = \"\",\n        timeout: int,\n    ) -> TransitionToolOutput:\n        \"\"\"\n        Execute the transition tool sending inputs and outputs via a server.\n        \"\"\"\n        request_data = t8n_data.get_request_data()\n        request_data_json = request_data.model_dump(mode=\"json\", **model_dump_config)\n\n        temp_dir = tempfile.TemporaryDirectory()\n        request_data_json[\"trace\"] = self.trace\n        if self.trace:\n            request_data_json[\"output-basedir\"] = temp_dir.name\n\n        if debug_output_path:\n            request_info = (\n                f\"Server URL: {self.server_url}\\n\\n\"\n                f\"Request Data:\\n{json.dumps(request_data_json, indent=2)}\\n\"\n            )\n            dump_files_to_directory(\n                debug_output_path,\n                {\n                    \"input/alloc.json\": request_data.input.alloc,\n                    \"input/env.json\": request_data.input.env,\n                    \"input/txs.json\": [\n                        tx.model_dump(mode=\"json\", **model_dump_config)\n                        for tx in request_data.input.txs\n                    ],\n                    \"input/blob_params.json\": request_data.input.blob_params,\n                    \"request_info.txt\": request_info,\n                },\n            )\n\n        response = self._server_post(\n            data=request_data_json, url_args=self._generate_post_args(t8n_data), timeout=timeout\n        )\n        response_json = response.json()\n\n        # pop optional test ``_info`` metadata from response, if present\n        self._info_metadata = response_json.pop(\"_info_metadata\", {})\n\n        output: TransitionToolOutput = TransitionToolOutput.model_validate(\n            response_json, context={\"exception_mapper\": self.exception_mapper}\n        )\n\n        if self.trace:\n            output.result.traces = self.collect_traces(\n                output.result.receipts, temp_dir, debug_output_path\n            )\n        temp_dir.cleanup()\n\n        if debug_output_path:\n            response_info = (\n                f\"Status Code: {response.status_code}\\n\\n\"\n                f\"Headers:\\n{json.dumps(dict(response.headers), indent=2)}\\n\\n\"\n                f\"Content:\\n{response.text}\\n\"\n            )\n            dump_files_to_directory(\n                debug_output_path,\n                {\n                    \"output/alloc.json\": output.alloc,\n                    \"output/result.json\": output.result,\n                    \"output/txs.rlp\": str(output.body),\n                    \"response_info.txt\": response_info,\n                },\n            )\n\n        return output\n\n    def _evaluate_stream(\n        self,\n        *,\n        t8n_data: TransitionToolData,\n        debug_output_path: str = \"\",\n    ) -> TransitionToolOutput:\n        \"\"\"\n        Execute a transition tool using stdin and stdout for its inputs and\n        outputs.\n        \"\"\"\n        temp_dir = tempfile.TemporaryDirectory()\n        args = self.construct_args_stream(t8n_data, temp_dir)\n\n        stdin = t8n_data.to_input()\n\n        result = subprocess.run(\n            args,\n            input=stdin.model_dump_json(**model_dump_config).encode(),\n            stdout=subprocess.PIPE,\n            stderr=subprocess.PIPE,\n        )\n\n        self.dump_debug_stream(debug_output_path, temp_dir, stdin, args, result)\n\n        if result.returncode != 0:\n            raise Exception(\"failed to evaluate: \" + result.stderr.decode())\n\n        output: TransitionToolOutput = TransitionToolOutput.model_validate_json(\n            result.stdout, context={\"exception_mapper\": self.exception_mapper}\n        )\n\n        if debug_output_path:\n            dump_files_to_directory(\n                debug_output_path,\n                {\n                    \"output/alloc.json\": output.alloc,\n                    \"output/result.json\": output.result,\n                    \"output/txs.rlp\": str(output.body),\n                },\n            )\n\n        if self.trace:\n            output.result.traces = self.collect_traces(\n                output.result.receipts, temp_dir, debug_output_path\n            )\n\n        temp_dir.cleanup()\n        return output\n\n    def safe_t8n_args(\n        self,\n        fork_name: str,\n        chain_id: int,\n        reward: int,\n        temp_dir: tempfile.TemporaryDirectory | None = None,\n    ) -> List[str]:\n        \"\"\"Safely construct t8n arguments with validated inputs.\"\"\"\n        # Validate fork name against actual transition tool names from all\n        # available forks\n        valid_forks = get_valid_transition_tool_names()\n        if fork_name not in valid_forks:\n            raise ValueError(f\"Invalid fork name: {fork_name}\")\n\n        # Validate chain ID (should be positive integer)\n        if not isinstance(chain_id, int) or chain_id <= 0:\n            raise ValueError(f\"Invalid chain ID: {chain_id}\")\n\n        # Validate reward (should be non-negative integer)\n        if not isinstance(reward, int) or reward < 0:\n            raise ValueError(f\"Invalid reward: {reward}\")\n\n        # Use literal strings for command flags\n        input_alloc: LiteralString = \"--input.alloc=stdin\"\n        input_txs: LiteralString = \"--input.txs=stdin\"\n        input_env: LiteralString = \"--input.env=stdin\"\n        output_result: LiteralString = \"--output.result=stdout\"\n        output_alloc: LiteralString = \"--output.alloc=stdout\"\n        output_body: LiteralString = \"--output.body=stdout\"\n        trace_flag: LiteralString = \"--trace\"\n\n        args = [\n            input_alloc,\n            input_txs,\n            input_env,\n            output_result,\n            output_alloc,\n            output_body,\n            f\"--state.fork={fork_name}\",\n            f\"--state.chainid={chain_id}\",\n            f\"--state.reward={reward}\",\n        ]\n\n        if self.trace and temp_dir:\n            args.extend([trace_flag, f\"--output.basedir={temp_dir.name}\"])\n\n        return args\n\n    def construct_args_stream(\n        self, t8n_data: TransitionToolData, temp_dir: tempfile.TemporaryDirectory\n    ) -> List[str]:\n        \"\"\"Construct arguments for t8n interaction via streams.\"\"\"\n        command: list[str] = [str(self.binary)]\n        if self.subcommand:\n            command.append(self.subcommand)\n\n        safe_args = self.safe_t8n_args(\n            t8n_data.fork_name, t8n_data.chain_id, t8n_data.reward, temp_dir\n        )\n        return command + safe_args\n\n    def dump_debug_stream(\n        self,\n        debug_output_path: str,\n        temp_dir: tempfile.TemporaryDirectory,\n        stdin: TransitionToolInput,\n        args: List[str],\n        result: subprocess.CompletedProcess,\n    ) -> None:\n        \"\"\"\n        Export debug files if requested when interacting with t8n via streams.\n        \"\"\"\n        if not debug_output_path:\n            return\n\n        t8n_call = \" \".join(args)\n        t8n_output_base_dir = os.path.join(debug_output_path, \"t8n.sh.out\")\n        if self.trace:\n            t8n_call = t8n_call.replace(temp_dir.name, t8n_output_base_dir)\n        t8n_script = textwrap.dedent(\n            f\"\"\"\\\n            #!/bin/bash\n            # hard-coded to avoid surprises\n            rm -rf {debug_output_path}/t8n.sh.out\n\n            # unused if tracing is not enabled\n            mkdir {debug_output_path}/t8n.sh.out\n            {t8n_call} < {debug_output_path}/stdin.txt\n            \"\"\"\n        )\n        dump_files_to_directory(\n            debug_output_path,\n            {\n                \"args.py\": args,\n                \"input/alloc.json\": stdin.alloc,\n                \"input/env.json\": stdin.env,\n                \"input/txs.json\": [\n                    tx.model_dump(mode=\"json\", **model_dump_config) for tx in stdin.txs\n                ],\n                \"returncode.txt\": result.returncode,\n                \"stdin.txt\": stdin,\n                \"stdout.txt\": result.stdout.decode(),\n                \"stderr.txt\": result.stderr.decode(),\n                \"t8n.sh+x\": t8n_script,\n            },\n        )\n\n    def evaluate(\n        self,\n        *,\n        transition_tool_data: TransitionToolData,\n        debug_output_path: str = \"\",\n        slow_request: bool = False,\n    ) -> TransitionToolOutput:\n        \"\"\"\n        Execute the relevant evaluate method as required by the `t8n` tool.\n\n        If a client's `t8n` tool varies from the default behavior, this method\n        can be overridden.\n        \"\"\"\n        if self.t8n_use_server:\n            if not self.server_url:\n                self.start_server()\n            return self._evaluate_server(\n                t8n_data=transition_tool_data,\n                debug_output_path=debug_output_path,\n                timeout=SLOW_REQUEST_TIMEOUT if slow_request else NORMAL_SERVER_TIMEOUT,\n            )\n\n        if self.t8n_use_stream:\n            return self._evaluate_stream(\n                t8n_data=transition_tool_data, debug_output_path=debug_output_path\n            )\n\n        return self._evaluate_filesystem(\n            t8n_data=transition_tool_data,\n            debug_output_path=debug_output_path,\n        )\n"
  },
  {
    "path": "src/ethereum_test_base_types/__init__.py",
    "content": "\"\"\"Common definitions and types.\"\"\"\n\nfrom .base_types import (\n    Address,\n    Bloom,\n    BLSPublicKey,\n    BLSSignature,\n    Bytes,\n    FixedSizeBytes,\n    ForkHash,\n    Hash,\n    HashInt,\n    HeaderNonce,\n    HexNumber,\n    Number,\n    NumberBoundTypeVar,\n    StorageKey,\n    Wei,\n    ZeroPaddedHexNumber,\n)\nfrom .base_types_json import to_json\nfrom .composite_types import (\n    AccessList,\n    Account,\n    Alloc,\n    BlobSchedule,\n    ForkBlobSchedule,\n    Storage,\n    StorageRootType,\n)\nfrom .constants import (\n    AddrAA,\n    AddrBB,\n    EmptyOmmersRoot,\n    EmptyTrieRoot,\n    TestAddress,\n    TestAddress2,\n    TestPrivateKey,\n    TestPrivateKey2,\n)\nfrom .conversions import to_bytes, to_hex\nfrom .pydantic import CamelModel, EthereumTestBaseModel, EthereumTestRootModel\nfrom .reference_spec import ReferenceSpec\nfrom .serialization import RLPSerializable, SignableRLPSerializable\n\n__all__ = (\n    \"AccessList\",\n    \"Account\",\n    \"AddrAA\",\n    \"AddrBB\",\n    \"Address\",\n    \"Alloc\",\n    \"BlobSchedule\",\n    \"Bloom\",\n    \"BLSPublicKey\",\n    \"BLSSignature\",\n    \"Bytes\",\n    \"CamelModel\",\n    \"EmptyOmmersRoot\",\n    \"EmptyTrieRoot\",\n    \"EthereumTestBaseModel\",\n    \"EthereumTestRootModel\",\n    \"FixedSizeBytes\",\n    \"ForkBlobSchedule\",\n    \"ForkHash\",\n    \"Hash\",\n    \"HashInt\",\n    \"HeaderNonce\",\n    \"HexNumber\",\n    \"Number\",\n    \"NumberBoundTypeVar\",\n    \"ReferenceSpec\",\n    \"RLPSerializable\",\n    \"SignableRLPSerializable\",\n    \"Storage\",\n    \"StorageKey\",\n    \"StorageRootType\",\n    \"TestAddress\",\n    \"TestAddress2\",\n    \"TestPrivateKey\",\n    \"TestPrivateKey2\",\n    \"Wei\",\n    \"ZeroPaddedHexNumber\",\n    \"to_bytes\",\n    \"to_hex\",\n    \"to_json\",\n)\n"
  },
  {
    "path": "src/ethereum_test_base_types/base_types.py",
    "content": "\"\"\"Basic type primitives used to define other types.\"\"\"\n\nfrom hashlib import sha256\nfrom typing import Annotated, Any, ClassVar, SupportsBytes, Type, TypeVar\n\nfrom Crypto.Hash import keccak\nfrom pydantic import GetCoreSchemaHandler, StringConstraints\nfrom pydantic_core.core_schema import (\n    PlainValidatorFunctionSchema,\n    no_info_plain_validator_function,\n    to_string_ser_schema,\n)\nfrom typing_extensions import Self\n\nfrom .conversions import (\n    BytesConvertible,\n    FixedSizeBytesConvertible,\n    NumberConvertible,\n    to_bytes,\n    to_fixed_size_bytes,\n    to_number,\n)\n\n\nclass ToStringSchema:\n    \"\"\"\n    Type converter to add a simple pydantic schema that correctly parses and\n    serializes the type.\n    \"\"\"\n\n    @staticmethod\n    def __get_pydantic_core_schema__(\n        source_type: Any, handler: GetCoreSchemaHandler\n    ) -> PlainValidatorFunctionSchema:\n        \"\"\"\n        Call the class constructor without info and appends the serialization\n        schema.\n        \"\"\"\n        return no_info_plain_validator_function(\n            source_type,\n            serialization=to_string_ser_schema(),\n        )\n\n\nclass Number(int, ToStringSchema):\n    \"\"\"Class that helps represent numbers in tests.\"\"\"\n\n    def __new__(cls, input_number: NumberConvertible | Self) -> Self:\n        \"\"\"Create a new Number object.\"\"\"\n        return super(Number, cls).__new__(cls, to_number(input_number))\n\n    def __str__(self) -> str:\n        \"\"\"Return the string representation of the number.\"\"\"\n        return str(int(self))\n\n    def hex(self) -> str:\n        \"\"\"Return the hexadecimal representation of the number.\"\"\"\n        return hex(self)\n\n    @classmethod\n    def or_none(cls: Type[Self], input_number: Self | NumberConvertible | None) -> Self | None:\n        \"\"\"Convert the input to a Number while accepting None.\"\"\"\n        if input_number is None:\n            return input_number\n        return cls(input_number)\n\n\nclass Wei(Number):\n    \"\"\"Class that helps represent wei that can be parsed from strings.\"\"\"\n\n    def __new__(cls, input_number: NumberConvertible | Self) -> Self:\n        \"\"\"Create a new Number object.\"\"\"\n        if isinstance(input_number, str):\n            words = input_number.split()\n            multiplier = 1\n            assert len(words) <= 2\n            value_str = words[0]\n            if len(words) > 1:\n                unit = words[1].lower()\n                multiplier = cls._get_multiplier(unit)\n            value: float\n            if \"**\" in value_str:\n                base, exp = value_str.split(\"**\")\n                value = float(base) ** int(exp)\n            else:\n                value = int(value_str) if value_str.isdecimal() else float(value_str)\n            return super(Number, cls).__new__(cls, value * multiplier)\n        return super(Number, cls).__new__(cls, to_number(input_number))\n\n    @staticmethod\n    def _get_multiplier(unit: str) -> int:\n        \"\"\"\n        Return the multiplier for the given unit of wei, handling synonyms.\n        \"\"\"\n        match unit:\n            case \"wei\":\n                return 1\n            case \"kwei\" | \"babbage\" | \"femtoether\":\n                return 10**3\n            case \"mwei\" | \"lovelace\" | \"picoether\":\n                return 10**6\n            case \"gwei\" | \"shannon\" | \"nanoether\" | \"nano\":\n                return 10**9\n            case \"szabo\" | \"microether\" | \"micro\":\n                return 10**12\n            case \"finney\" | \"milliether\" | \"milli\":\n                return 10**15\n            case \"ether\" | \"eth\":\n                return 10**18\n            case _:\n                raise ValueError(f\"Invalid unit {unit}\")\n\n\nclass HexNumber(Number):\n    \"\"\"Class that helps represent an hexadecimal numbers in tests.\"\"\"\n\n    def __str__(self) -> str:\n        \"\"\"Return the string representation of the number.\"\"\"\n        return self.hex()\n\n    @staticmethod\n    def __get_pydantic_core_schema__(\n        source_type: Any, handler: GetCoreSchemaHandler\n    ) -> PlainValidatorFunctionSchema:\n        \"\"\"\n        Call the class constructor without info and appends the serialization\n        schema.\n        \"\"\"\n        return no_info_plain_validator_function(\n            source_type,\n            serialization=to_string_ser_schema(),\n            json_schema_input_schema=handler(\n                Annotated[str, StringConstraints(pattern=r\"^0x[0-9a-fA-F]*$\")]\n            ),\n        )\n\n\nclass ZeroPaddedHexNumber(HexNumber):\n    \"\"\"Class that helps represent zero padded hexadecimal numbers in tests.\"\"\"\n\n    def hex(self) -> str:\n        \"\"\"Return the hexadecimal representation of the number.\"\"\"\n        if self == 0:\n            return \"0x00\"\n        hex_str = hex(self)[2:]\n        if len(hex_str) % 2 == 1:\n            return \"0x0\" + hex_str\n        return \"0x\" + hex_str\n\n    @staticmethod\n    def __get_pydantic_core_schema__(\n        source_type: Any, handler: GetCoreSchemaHandler\n    ) -> PlainValidatorFunctionSchema:\n        \"\"\"\n        Call the class constructor without info and appends the serialization\n        schema.\n        \"\"\"\n        return no_info_plain_validator_function(\n            source_type,\n            serialization=to_string_ser_schema(),\n            json_schema_input_schema=handler(\n                Annotated[str, StringConstraints(pattern=r\"^0x([0-9a-fA-F]{2})*$\")]\n            ),\n        )\n\n\nNumberBoundTypeVar = TypeVar(\"NumberBoundTypeVar\", Number, HexNumber, ZeroPaddedHexNumber)\n\n\nclass Bytes(bytes, ToStringSchema):\n    \"\"\"Class that helps represent bytes of variable length in tests.\"\"\"\n\n    def __new__(cls, input_bytes: BytesConvertible = b\"\") -> Self:\n        \"\"\"Create a new Bytes object.\"\"\"\n        if type(input_bytes) is cls:\n            return input_bytes\n        return super(Bytes, cls).__new__(cls, to_bytes(input_bytes))\n\n    def __hash__(self) -> int:\n        \"\"\"Return the hash of the bytes.\"\"\"\n        return super(Bytes, self).__hash__()\n\n    def __str__(self) -> str:\n        \"\"\"Return the hexadecimal representation of the bytes.\"\"\"\n        return self.hex()\n\n    def hex(self, *args: Any, **kwargs: Any) -> str:\n        \"\"\"Return the hexadecimal representation of the bytes.\"\"\"\n        return \"0x\" + super().hex(*args, **kwargs)\n\n    @classmethod\n    def or_none(cls, input_bytes: \"Bytes | BytesConvertible | None\") -> \"Bytes | None\":\n        \"\"\"Convert the input to a Bytes while accepting None.\"\"\"\n        if input_bytes is None:\n            return input_bytes\n        return cls(input_bytes)\n\n    def keccak256(self) -> \"Hash\":\n        \"\"\"Return the keccak256 hash of the opcode byte representation.\"\"\"\n        k = keccak.new(digest_bits=256)\n        return Hash(k.update(bytes(self)).digest())\n\n    def sha256(self) -> \"Hash\":\n        \"\"\"Return the sha256 hash of the opcode byte representation.\"\"\"\n        return Hash(sha256(self).digest())\n\n    @staticmethod\n    def __get_pydantic_core_schema__(\n        source_type: Any, handler: GetCoreSchemaHandler\n    ) -> PlainValidatorFunctionSchema:\n        \"\"\"\n        Call the class constructor without info and appends the serialization\n        schema.\n        \"\"\"\n        return no_info_plain_validator_function(\n            source_type,\n            serialization=to_string_ser_schema(),\n            json_schema_input_schema=handler(\n                Annotated[str, StringConstraints(pattern=r\"^0x([0-9a-fA-F]{2})*$\")]\n            ),\n        )\n\n\nclass FixedSizeHexNumber(int, ToStringSchema):\n    \"\"\"\n    A base class that helps represent an integer as a fixed byte-length\n    hexadecimal number.\n\n    This class is used to dynamically generate subclasses of a specific byte\n    length.\n    \"\"\"\n\n    byte_length: ClassVar[int]\n    max_value: ClassVar[int]\n\n    def __class_getitem__(cls, length: int) -> Type[\"FixedSizeHexNumber\"]:\n        \"\"\"Create a new FixedSizeHexNumber class with the given length.\"\"\"\n\n        class Sized(cls):  # type: ignore\n            byte_length = length\n            max_value = 2 ** (8 * length) - 1\n\n        return Sized\n\n    def __new__(cls, input_number: NumberConvertible | Self) -> Self:\n        \"\"\"Create a new Number object.\"\"\"\n        i = to_number(input_number)\n        if i > cls.max_value:\n            raise ValueError(f\"Value {i} is too large for {cls.byte_length} bytes\")\n        if i < 0:\n            i += cls.max_value + 1\n            if i <= 0:\n                raise ValueError(f\"Value {i} is too small for {cls.byte_length} bytes\")\n        return super(FixedSizeHexNumber, cls).__new__(cls, i)\n\n    def __str__(self) -> str:\n        \"\"\"Return the string representation of the number.\"\"\"\n        return self.hex()\n\n    def hex(self) -> str:\n        \"\"\"Return the hexadecimal representation of the number.\"\"\"\n        if self == 0:\n            return \"0x00\"\n        hex_str = hex(self)[2:]\n        if len(hex_str) % 2 == 1:\n            return \"0x0\" + hex_str\n        return \"0x\" + hex_str\n\n    @classmethod\n    def __get_pydantic_core_schema__(\n        cls: Type[Self], source_type: Any, handler: GetCoreSchemaHandler\n    ) -> PlainValidatorFunctionSchema:\n        \"\"\"\n        Call the class constructor without info and appends the serialization\n        schema.\n        \"\"\"\n        pattern = f\"^0x([0-9a-fA-F]{{{cls.byte_length * 2}}})*$\"\n        return no_info_plain_validator_function(\n            source_type,\n            serialization=to_string_ser_schema(),\n            json_schema_input_schema=handler(Annotated[str, StringConstraints(pattern=pattern)]),\n        )\n\n\nclass HashInt(FixedSizeHexNumber[32]):  # type: ignore\n    \"\"\"Class that helps represent hashes in tests.\"\"\"\n\n    pass\n\n\nclass FixedSizeBytes(Bytes):\n    \"\"\"Class that helps represent bytes of fixed length in tests.\"\"\"\n\n    byte_length: ClassVar[int]\n    _sized_: ClassVar[Type[\"FixedSizeBytes\"]]\n\n    def __class_getitem__(cls, length: int) -> Type[\"FixedSizeBytes\"]:\n        \"\"\"Create a new FixedSizeBytes class with the given length.\"\"\"\n\n        class Sized(cls):  # type: ignore\n            byte_length = length\n\n        Sized._sized_ = Sized\n        return Sized\n\n    def __new__(\n        cls,\n        input_bytes: FixedSizeBytesConvertible | Self,\n        *,\n        left_padding: bool = False,\n        right_padding: bool = False,\n    ) -> Self:\n        \"\"\"Create a new FixedSizeBytes object.\"\"\"\n        if type(input_bytes) is cls:\n            return input_bytes\n        return super(FixedSizeBytes, cls).__new__(\n            cls,\n            to_fixed_size_bytes(\n                input_bytes,\n                cls.byte_length,\n                left_padding=left_padding,\n                right_padding=right_padding,\n            ),\n        )\n\n    def __hash__(self) -> int:\n        \"\"\"Return the hash of the bytes.\"\"\"\n        return super(FixedSizeBytes, self).__hash__()\n\n    @classmethod\n    def or_none(\n        cls: Type[Self], input_bytes: Self | FixedSizeBytesConvertible | None\n    ) -> Self | None:\n        \"\"\"Convert the input to a Fixed Size Bytes while accepting None.\"\"\"\n        if input_bytes is None:\n            return input_bytes\n        return cls(input_bytes)\n\n    def __eq__(self, other: object) -> bool:\n        \"\"\"Compare two FixedSizeBytes objects to be equal.\"\"\"\n        if other is None:\n            return False\n        if not isinstance(other, FixedSizeBytes):\n            assert (\n                isinstance(other, str)\n                or isinstance(other, int)\n                or isinstance(other, bytes)\n                or isinstance(other, SupportsBytes)\n            )\n            other = self._sized_(other)\n        return super().__eq__(other)\n\n    def __ne__(self, other: object) -> bool:\n        \"\"\"Compare two FixedSizeBytes objects to be not equal.\"\"\"\n        return not self.__eq__(other)\n\n    @classmethod\n    def __get_pydantic_core_schema__(\n        cls: Type[Self], source_type: Any, handler: GetCoreSchemaHandler\n    ) -> PlainValidatorFunctionSchema:\n        \"\"\"\n        Call the class constructor without info and appends the serialization\n        schema.\n        \"\"\"\n        pattern = f\"^0x([0-9a-fA-F]{{{cls.byte_length * 2}}})*$\"\n        return no_info_plain_validator_function(\n            source_type,\n            serialization=to_string_ser_schema(),\n            json_schema_input_schema=handler(Annotated[str, StringConstraints(pattern=pattern)]),\n        )\n\n\nclass ForkHash(FixedSizeBytes[4]):  # type: ignore\n    \"\"\"\n    Class that helps represent the CRC config hashes and identifiers of a fork.\n    \"\"\"\n\n    pass\n\n\nclass Address(FixedSizeBytes[20]):  # type: ignore\n    \"\"\"Class that helps represent Ethereum addresses in tests.\"\"\"\n\n    label: str | None = None\n\n    def __new__(\n        cls,\n        input_bytes: \"FixedSizeBytesConvertible | Address\",\n        *args: Any,\n        label: str | None = None,\n        **kwargs: Any,\n    ) -> Self:\n        \"\"\"Create a new Address object with an optional label.\"\"\"\n        instance = super(Address, cls).__new__(cls, input_bytes, *args, **kwargs)\n        if isinstance(input_bytes, Address) and label is None:\n            instance.label = input_bytes.label\n        else:\n            instance.label = label\n        return instance\n\n\nclass Hash(FixedSizeBytes[32]):  # type: ignore\n    \"\"\"Class that helps represent hashes in tests.\"\"\"\n\n    pass\n\n\nclass StorageKey(FixedSizeBytes[32]):  # type: ignore\n    \"\"\"\n    Storage key type that automatically applies left padding for values shorter\n    than 32 bytes.\n    \"\"\"\n\n    def __new__(\n        cls, input_bytes: FixedSizeBytesConvertible | FixedSizeBytes, **kwargs: Any\n    ) -> Self:\n        \"\"\"Create a new StorageKey with automatic left padding.\"\"\"\n        # Always apply left_padding for storage keys unless explicitly set to\n        # False\n        if \"left_padding\" not in kwargs:\n            kwargs[\"left_padding\"] = True\n        return super().__new__(cls, input_bytes, **kwargs)\n\n\nclass Bloom(FixedSizeBytes[256]):  # type: ignore\n    \"\"\"Class that helps represent blooms in tests.\"\"\"\n\n    pass\n\n\nclass HeaderNonce(FixedSizeBytes[8]):  # type: ignore\n    \"\"\"Class that helps represent the header nonce in tests.\"\"\"\n\n    pass\n\n\nclass BLSPublicKey(FixedSizeBytes[48]):  # type: ignore\n    \"\"\"Class that helps represent BLS public keys in tests.\"\"\"\n\n    pass\n\n\nclass BLSSignature(FixedSizeBytes[96]):  # type: ignore\n    \"\"\"Class that helps represent BLS signatures in tests.\"\"\"\n\n    pass\n"
  },
  {
    "path": "src/ethereum_test_base_types/base_types_json.py",
    "content": "\"\"\"JSON encoding and decoding for Ethereum types.\"\"\"\n\nfrom typing import Any, AnyStr, List\n\nfrom .pydantic import EthereumTestBaseModel, EthereumTestRootModel\n\n\ndef to_json(\n    input_model: (\n        EthereumTestBaseModel\n        | EthereumTestRootModel\n        | AnyStr\n        | List[EthereumTestBaseModel | EthereumTestRootModel | AnyStr]\n    ),\n) -> Any:\n    \"\"\"Convert a model to its json data representation.\"\"\"\n    if isinstance(input_model, list):\n        return [to_json(item) for item in input_model]\n    elif isinstance(input_model, (EthereumTestBaseModel, EthereumTestRootModel)):\n        return input_model.model_dump(mode=\"json\", by_alias=True, exclude_none=True)\n    else:\n        return str(input_model)\n"
  },
  {
    "path": "src/ethereum_test_base_types/composite_types.py",
    "content": "\"\"\"Base composite types for Ethereum test cases.\"\"\"\n\nfrom dataclasses import dataclass\nfrom typing import Any, ClassVar, Dict, ItemsView, Iterator, List, SupportsBytes, Type, TypeAlias\n\nfrom pydantic import Field, PrivateAttr, TypeAdapter\n\nfrom .base_types import Address, Bytes, Hash, HashInt, HexNumber, ZeroPaddedHexNumber\nfrom .conversions import BytesConvertible, NumberConvertible\nfrom .pydantic import CamelModel, EthereumTestRootModel\nfrom .serialization import RLPSerializable\n\nStorageKeyValueTypeConvertible = NumberConvertible\nStorageKeyValueType = HashInt\nStorageKeyValueTypeAdapter = TypeAdapter(StorageKeyValueType)\nStorageRootType = Dict[NumberConvertible, NumberConvertible]\n\n\nclass Storage(EthereumTestRootModel[Dict[StorageKeyValueType, StorageKeyValueType]]):\n    \"\"\"\n    Definition of contract storage in the `pre` or `post` state of a test.\n\n    This model accepts a dictionary with keys and values as any of: str, int,\n    bytes, or any type that supports conversion to bytes, and automatically\n    casts them to `HashInt`.\n    \"\"\"\n\n    # internal storage is maintained as a dict with HashInt keys and values.\n    root: Dict[StorageKeyValueType, StorageKeyValueType] = Field(default_factory=dict)\n\n    _current_slot: int = PrivateAttr(0)\n    _hint_map: Dict[StorageKeyValueType, str] = PrivateAttr(default_factory=dict)\n    _any_map: Dict[StorageKeyValueType, bool] = PrivateAttr(default_factory=dict)\n\n    StorageDictType: ClassVar[TypeAlias] = Dict[\n        str | int | bytes | SupportsBytes, str | int | bytes | SupportsBytes\n    ]\n    \"\"\"\n    Dictionary type to be used when defining an input to initialize a storage.\n    \"\"\"\n\n    @dataclass(kw_only=True)\n    class InvalidTypeError(Exception):\n        \"\"\"\n        Invalid type used when describing test's expected storage key or value.\n        \"\"\"\n\n        key_or_value: Any\n\n        def __init__(self, key_or_value: Any, *args: Any) -> None:\n            \"\"\"Initialize the exception with the invalid type.\"\"\"\n            super().__init__(args)\n            self.key_or_value = key_or_value\n\n        def __str__(self) -> str:\n            \"\"\"Print exception string.\"\"\"\n            return f\"invalid type for key/value: {self.key_or_value}\"\n\n    @dataclass(kw_only=True)\n    class InvalidValueError(Exception):\n        \"\"\"\n        Invalid value used when describing test's expected storage key or\n        value.\n        \"\"\"\n\n        key_or_value: Any\n\n        def __init__(self, key_or_value: Any, *args: Any) -> None:\n            \"\"\"Initialize the exception with the invalid value.\"\"\"\n            super().__init__(args)\n            self.key_or_value = key_or_value\n\n        def __str__(self) -> str:\n            \"\"\"Print exception string.\"\"\"\n            return f\"invalid value for key/value: {self.key_or_value}\"\n\n    @dataclass(kw_only=True)\n    class MissingKeyError(Exception):\n        \"\"\"Test expected to find a storage key set but key was missing.\"\"\"\n\n        key: int\n\n        def __init__(self, key: int, *args: Any) -> None:\n            \"\"\"Initialize the exception with the missing key.\"\"\"\n            super().__init__(args)\n            self.key = key\n\n        def __str__(self) -> str:\n            \"\"\"Print exception string.\"\"\"\n            return \"key {0} not found in storage\".format(Hash(self.key))\n\n    @dataclass(kw_only=True)\n    class KeyValueMismatchError(Exception):\n        \"\"\"\n        Test expected a certain value in a storage key but value found was\n        different.\n        \"\"\"\n\n        address: Address\n        key: int\n        want: int\n        got: int\n        hint: str\n\n        def __init__(\n            self, address: Address, key: int, want: int, got: int, hint: str = \"\", *args: Any\n        ) -> None:\n            \"\"\"\n            Initialize the exception with the address, key, wanted and got\n            values.\n            \"\"\"\n            super().__init__(args)\n            self.address = address\n            self.key = key\n            self.want = want\n            self.got = got\n            self.hint = hint\n\n        def __str__(self) -> str:\n            \"\"\"Print exception string.\"\"\"\n            label_str = \"\"\n            if self.address.label is not None:\n                label_str = f\" ({self.address.label})\"\n            return (\n                f\"incorrect value in address {self.address}{label_str} for \"\n                + f\"key {Hash(self.key)}{f' ({self.hint})' if self.hint else ''}:\"\n                + f\" want {HexNumber(self.want)} (dec:{int(self.want)}),\"\n                + f\" got {HexNumber(self.got)} (dec:{int(self.got)})\"\n            )\n\n    def __contains__(self, key: StorageKeyValueTypeConvertible | StorageKeyValueType) -> bool:\n        \"\"\"Check for an item in the storage.\"\"\"\n        return StorageKeyValueTypeAdapter.validate_python(key) in self.root\n\n    def __getitem__(\n        self, key: StorageKeyValueTypeConvertible | StorageKeyValueType\n    ) -> StorageKeyValueType:\n        \"\"\"Return an item from the storage.\"\"\"\n        return self.root[StorageKeyValueTypeAdapter.validate_python(key)]\n\n    def __setitem__(\n        self,\n        key: StorageKeyValueTypeConvertible | StorageKeyValueType,\n        value: StorageKeyValueTypeConvertible | StorageKeyValueType,\n    ) -> None:\n        \"\"\"Set an item in the storage.\"\"\"\n        self.root[StorageKeyValueTypeAdapter.validate_python(key)] = (\n            StorageKeyValueTypeAdapter.validate_python(value)\n        )\n\n    def __delitem__(self, key: StorageKeyValueTypeConvertible | StorageKeyValueType) -> None:\n        \"\"\"Delete an item from the storage.\"\"\"\n        del self.root[StorageKeyValueTypeAdapter.validate_python(key)]\n\n    def __iter__(self) -> Iterator[StorageKeyValueType]:  # type: ignore [override]\n        \"\"\"Return an iterator over the storage.\"\"\"\n        return iter(self.root)\n\n    def __eq__(self, other: object) -> bool:\n        \"\"\"Return True if both storages are equal.\"\"\"\n        if not isinstance(other, Storage):\n            return False\n        return self.root == other.root\n\n    def __ne__(self, other: object) -> bool:\n        \"\"\"Return True if both storages are not equal.\"\"\"\n        if not isinstance(other, Storage):\n            return False\n        return self.root != other.root\n\n    def __bool__(self) -> bool:\n        \"\"\"Return True if the storage is not empty.\"\"\"\n        return any(v for v in self.root.values())\n\n    def __add__(self, other: \"Storage\") -> \"Storage\":\n        \"\"\"Return a new storage that is the sum of two storages.\"\"\"\n        return Storage({**self.root, **other.root})\n\n    def keys(self) -> set[StorageKeyValueType]:\n        \"\"\"Return the keys of the storage.\"\"\"\n        return set(self.root.keys())\n\n    def set_next_slot(self, slot: int) -> \"Storage\":\n        \"\"\"Set the next slot to be used by `store_next`.\"\"\"\n        self._current_slot = slot\n        return self\n\n    def items(self) -> ItemsView[StorageKeyValueType, StorageKeyValueType]:\n        \"\"\"Return the items of the storage.\"\"\"\n        return self.root.items()\n\n    def set_expect_any(self, key: StorageKeyValueTypeConvertible | StorageKeyValueType) -> None:\n        \"\"\"\n        Mark key to be able to have any expected value when comparing storages.\n        \"\"\"\n        self._any_map[StorageKeyValueTypeAdapter.validate_python(key)] = True\n\n    def store_next(\n        self, value: StorageKeyValueTypeConvertible | StorageKeyValueType | bool, hint: str = \"\"\n    ) -> StorageKeyValueType:\n        \"\"\"\n        Store a value in the storage and returns the key where the value is\n        stored.\n\n        Increments the key counter so the next time this function is called,\n        the next key is used.\n        \"\"\"\n        slot = StorageKeyValueTypeAdapter.validate_python(self._current_slot)\n        self._current_slot += 1\n        if hint:\n            self._hint_map[slot] = hint\n        self[slot] = StorageKeyValueTypeAdapter.validate_python(value)\n        return slot\n\n    def peek_slot(self) -> int:\n        \"\"\"Peek the next slot that will be used by `store_next`.\"\"\"\n        return self._current_slot\n\n    def contains(self, other: \"Storage\") -> bool:\n        \"\"\"\n        Return True if self contains all keys with equal value as contained by\n        second storage. Used for comparison with test expected post state and\n        alloc returned by the transition tool.\n        \"\"\"\n        for key in other.keys():\n            if key not in self:\n                return False\n            if self[key] != other[key]:\n                return False\n        return True\n\n    def must_contain(self, address: Address, other: \"Storage\") -> None:\n        \"\"\"\n        Succeeds only if self contains all keys with equal value as contained\n        by second storage. Used for comparison with test expected post state\n        and alloc returned by the transition tool. Raises detailed exception\n        when a difference is found.\n        \"\"\"\n        for key in other.keys():\n            if key not in self:\n                # storage[key]==0 is equal to missing storage\n                if other[key] != 0:\n                    raise Storage.MissingKeyError(key=key)\n            elif self[key] != other[key]:\n                raise Storage.KeyValueMismatchError(\n                    address=address,\n                    key=key,\n                    want=self[key],\n                    got=other[key],\n                    hint=self._hint_map.get(key, \"\"),\n                )\n\n    def must_be_equal(self, address: Address, other: \"Storage | None\") -> None:\n        \"\"\"Succeed only if \"self\" is equal to \"other\" storage.\"\"\"\n        # Test keys contained in both storage objects\n        if other is None:\n            other = Storage({})\n        for key in self.keys() & other.keys():\n            if self[key] != other[key]:\n                raise Storage.KeyValueMismatchError(\n                    address=address,\n                    key=key,\n                    want=self[key],\n                    got=other[key],\n                    hint=self._hint_map.get(key, \"\"),\n                )\n\n        # Test keys contained in either one of the storage objects\n        for key in self.keys() ^ other.keys():\n            if key in self:\n                if self[key] != 0:\n                    raise Storage.KeyValueMismatchError(\n                        address=address,\n                        key=key,\n                        want=self[key],\n                        got=0,\n                        hint=self._hint_map.get(key, \"\"),\n                    )\n\n            elif other[key] != 0:\n                # Skip key verification if we allow this key to be ANY\n                if self._any_map.get(key) is True:\n                    continue\n                raise Storage.KeyValueMismatchError(\n                    address=address,\n                    key=key,\n                    want=0,\n                    got=other[key],\n                    hint=self._hint_map.get(key, \"\"),\n                )\n\n    def canary(self) -> \"Storage\":\n        \"\"\"\n        Return a canary storage filled with non-zero values where the current\n        storage expects zero values, to guarantee that the test overwrites the\n        storage.\n        \"\"\"\n        return Storage({key: HashInt(0xBA5E) for key in self.keys() if self[key] == 0})\n\n\nclass Account(CamelModel):\n    \"\"\"State associated with an address.\"\"\"\n\n    nonce: ZeroPaddedHexNumber = ZeroPaddedHexNumber(0)\n    \"\"\"\n    The scalar value equal to a) the number of transactions sent by an\n    Externally Owned Account, b) the amount of contracts created by a contract.\n    \"\"\"\n    balance: ZeroPaddedHexNumber = ZeroPaddedHexNumber(0)\n    \"\"\"The amount of Wei (10<sup>-18</sup> Eth) the account has.\"\"\"\n    code: Bytes = Bytes(b\"\")\n    \"\"\"Bytecode contained by the account.\"\"\"\n    storage: Storage = Field(default_factory=Storage)\n    \"\"\"Storage within a contract.\"\"\"\n\n    NONEXISTENT: ClassVar[None] = None\n    \"\"\"\n    Sentinel object used to specify when an account should not exist in the\n    state.\n    \"\"\"\n\n    @dataclass(kw_only=True)\n    class NonceMismatchError(Exception):\n        \"\"\"\n        Test expected a certain nonce value for an account but a different\n        value was found.\n        \"\"\"\n\n        address: Address\n        want: int | None\n        got: int | None\n\n        def __init__(\n            self, address: Address, want: int | None, got: int | None, *args: Any\n        ) -> None:\n            \"\"\"\n            Initialize the exception with the address, wanted and got values.\n            \"\"\"\n            super().__init__(args)\n            self.address = address\n            self.want = want\n            self.got = got\n\n        def __str__(self) -> str:\n            \"\"\"Print exception string.\"\"\"\n            label_str = \"\"\n            if self.address.label is not None:\n                label_str = f\" ({self.address.label})\"\n            return (\n                f\"unexpected nonce for account {self.address}{label_str}: \"\n                + f\"want {self.want}, got {self.got}\"\n            )\n\n    @dataclass(kw_only=True)\n    class BalanceMismatchError(Exception):\n        \"\"\"\n        Test expected a certain balance for an account but a different value\n        was found.\n        \"\"\"\n\n        address: Address\n        want: int | None\n        got: int | None\n\n        def __init__(\n            self, address: Address, want: int | None, got: int | None, *args: Any\n        ) -> None:\n            \"\"\"\n            Initialize the exception with the address, wanted and got values.\n            \"\"\"\n            super().__init__(args)\n            self.address = address\n            self.want = want\n            self.got = got\n\n        def __str__(self) -> str:\n            \"\"\"Print exception string.\"\"\"\n            label_str = \"\"\n            if self.address.label is not None:\n                label_str = f\" ({self.address.label})\"\n            return (\n                f\"unexpected balance for account {self.address}{label_str}: \"\n                + f\"want {self.want}, got {self.got}\"\n            )\n\n    @dataclass(kw_only=True)\n    class CodeMismatchError(Exception):\n        \"\"\"\n        Test expected a certain bytecode for an account but a different one was\n        found.\n        \"\"\"\n\n        address: Address\n        want: bytes | None\n        got: bytes | None\n\n        def __init__(\n            self, address: Address, want: bytes | None, got: bytes | None, *args: Any\n        ) -> None:\n            \"\"\"\n            Initialize the exception with the address, wanted and got values.\n            \"\"\"\n            super().__init__(args)\n            self.address = address\n            self.want = want\n            self.got = got\n\n        def __str__(self) -> str:\n            \"\"\"Print exception string.\"\"\"\n            label_str = \"\"\n            if self.address.label is not None:\n                label_str = f\" ({self.address.label})\"\n            return (\n                f\"unexpected code for account {self.address}{label_str}: \"\n                f\"want {self.want.hex() if self.want else self.want}, \"\n                f\"got {self.got.hex() if self.got else self.got}\"\n            )\n\n    def check_alloc(self: \"Account\", address: Address, account: \"Account\") -> None:\n        \"\"\"\n        Check the returned alloc against an expected account in post state.\n        Raises exception on failure.\n        \"\"\"\n        if \"nonce\" in self.model_fields_set:\n            if self.nonce != account.nonce:\n                raise Account.NonceMismatchError(\n                    address=address,\n                    want=self.nonce,\n                    got=account.nonce,\n                )\n\n        if \"balance\" in self.model_fields_set:\n            if self.balance != account.balance:\n                raise Account.BalanceMismatchError(\n                    address=address,\n                    want=self.balance,\n                    got=account.balance,\n                )\n\n        if \"code\" in self.model_fields_set:\n            if self.code != account.code:\n                raise Account.CodeMismatchError(\n                    address=address,\n                    want=self.code,\n                    got=account.code,\n                )\n\n        if \"storage\" in self.model_fields_set:\n            self.storage.must_be_equal(address=address, other=account.storage)\n\n    def __bool__(self: \"Account\") -> bool:\n        \"\"\"Return True on a non-empty account.\"\"\"\n        return any((self.nonce, self.balance, self.code, self.storage))\n\n    @classmethod\n    def with_code(cls: Type, code: BytesConvertible) -> \"Account\":\n        \"\"\"Create account with provided `code` and nonce of `1`.\"\"\"\n        return Account(nonce=HexNumber(1), code=Bytes(code))\n\n    @classmethod\n    def merge(\n        cls: Type, account_1: \"Dict | Account | None\", account_2: \"Dict | Account | None\"\n    ) -> \"Account\":\n        \"\"\"Create a merged account from two sources.\"\"\"\n\n        def to_kwargs_dict(account: \"Dict | Account | None\") -> Dict:\n            if account is None:\n                return {}\n            if isinstance(account, dict):\n                return account\n            elif isinstance(account, cls):\n                return account.model_dump(exclude_unset=True)\n            raise TypeError(f\"Unexpected type for account merge: {type(account)}\")\n\n        kwargs = to_kwargs_dict(account_1)\n        kwargs.update(to_kwargs_dict(account_2))\n\n        return cls(**kwargs)\n\n\nclass Alloc(EthereumTestRootModel[Dict[Address, Account | None]]):\n    \"\"\"Allocation of accounts in the state, pre and post test execution.\"\"\"\n\n    root: Dict[Address, Account | None] = Field(default_factory=dict, validate_default=True)\n\n\nclass AccessList(CamelModel, RLPSerializable):\n    \"\"\"Access List for transactions.\"\"\"\n\n    address: Address\n    storage_keys: List[Hash]\n\n    rlp_fields: ClassVar[List[str]] = [\"address\", \"storage_keys\"]\n\n\nclass ForkBlobSchedule(CamelModel):\n    \"\"\"Representation of the blob schedule of a given fork.\"\"\"\n\n    target_blobs_per_block: HexNumber = Field(..., alias=\"target\")\n    max_blobs_per_block: HexNumber = Field(..., alias=\"max\")\n    base_fee_update_fraction: HexNumber = Field(...)\n\n\nclass BlobSchedule(EthereumTestRootModel[Dict[str, ForkBlobSchedule]]):\n    \"\"\"Blob schedule configuration dictionary.\"\"\"\n\n    root: Dict[str, ForkBlobSchedule] = Field(default_factory=dict, validate_default=True)\n\n    def append(self, *, fork: str, schedule: Any) -> None:\n        \"\"\"Append a new fork schedule.\"\"\"\n        if not isinstance(schedule, ForkBlobSchedule):\n            schedule = ForkBlobSchedule(**schedule)\n        self.root[fork] = schedule\n\n    def last(self) -> ForkBlobSchedule | None:\n        \"\"\"Return the last schedule.\"\"\"\n        if len(self.root) == 0:\n            return None\n        return list(self.root.values())[-1]\n\n    def __getitem__(self, key: str) -> ForkBlobSchedule:\n        \"\"\"Return the schedule for a given fork.\"\"\"\n        return self.root[key]\n"
  },
  {
    "path": "src/ethereum_test_base_types/constants.py",
    "content": "\"\"\"Common values used in Ethereum tests.\"\"\"\n\nfrom .base_types import Address\n\nTestAddress = Address(\"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\")\nTestAddress2 = Address(\"0x8a0a19589531694250d570040a0c4b74576919b8\")\n\nTestPrivateKey = 0x45A915E4D060149EB4365960E6A7A45F334393093061116B197E3240065FF2D8\nTestPrivateKey2 = 0x9E7645D0CFD9C3A04EB7A9DB59A4EB7D359F2E75C9164A9D6B9A7D54E1B6A36F\n\nAddrAA = Address(0xAA)\nAddrBB = Address(0xBB)\n\nEmptyBloom = bytes([0] * 256)\nEmptyOmmersRoot = bytes.fromhex(\"1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347\")\nEmptyTrieRoot = bytes.fromhex(\"56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421\")\nEmptyHash = bytes([0] * 32)\nEmptyNonce = bytes([0] * 8)\nZeroAddress = Address(0x00)\n"
  },
  {
    "path": "src/ethereum_test_base_types/conversions.py",
    "content": "\"\"\"Common conversion methods.\"\"\"\n\nfrom re import sub\nfrom typing import Any, List, Optional, SupportsBytes, TypeAlias\n\nBytesConvertible: TypeAlias = str | bytes | SupportsBytes | List[int]\nFixedSizeBytesConvertible: TypeAlias = str | bytes | SupportsBytes | List[int] | int\nNumberConvertible: TypeAlias = str | bytes | SupportsBytes | int\n\n\ndef int_or_none(input_value: Any, default: Optional[int] = None) -> int | None:\n    \"\"\"Convert a value to int or returns a default (None).\"\"\"\n    if input_value is None:\n        return default\n    if isinstance(input_value, int):\n        return input_value\n    return int(input_value, 0)\n\n\ndef str_or_none(input_value: Any, default: Optional[str] = None) -> str | None:\n    \"\"\"Convert a value to string or returns a default (None).\"\"\"\n    if input_value is None:\n        return default\n    if isinstance(input_value, str):\n        return input_value\n    return str(input_value)\n\n\ndef to_bytes(input_bytes: BytesConvertible) -> bytes:\n    \"\"\"Convert multiple types into bytes.\"\"\"\n    if input_bytes is None:\n        raise Exception(\"Cannot convert `None` input to bytes\")\n\n    if (\n        isinstance(input_bytes, SupportsBytes)\n        or isinstance(input_bytes, bytes)\n        or isinstance(input_bytes, list)\n    ):\n        return bytes(input_bytes)\n\n    if isinstance(input_bytes, str):\n        # We can have a hex representation of bytes with spaces for readability\n        input_bytes = sub(r\"\\s+\", \"\", input_bytes)\n        if input_bytes.startswith(\"0x\"):\n            input_bytes = input_bytes[2:]\n        if len(input_bytes) % 2 == 1:\n            input_bytes = \"0\" + input_bytes\n        return bytes.fromhex(input_bytes)\n\n    raise Exception(\"invalid type for `bytes`\")\n\n\ndef to_fixed_size_bytes(\n    input_bytes: FixedSizeBytesConvertible,\n    size: int,\n    *,\n    left_padding: bool = False,\n    right_padding: bool = False,\n) -> bytes:\n    \"\"\"\n    Convert multiple types into fixed-size bytes.\n\n    Args:\n      input_bytes: The input data to convert.\n      size: The size of the output bytes.\n      left_padding: Whether to allow left-padding of the input data bytes\n                    using zeros. If the input data is an integer, padding is\n                    always performed.\n      right_padding: Whether to allow right-padding of the input data bytes\n                     using zeros. If the input data is an integer, padding\n                     is always performed.\n\n    \"\"\"\n    if isinstance(input_bytes, int):\n        return int.to_bytes(input_bytes, length=size, byteorder=\"big\", signed=input_bytes < 0)\n    input_bytes = to_bytes(input_bytes)\n    if len(input_bytes) > size:\n        raise Exception(\n            f\"input is too large for fixed size bytes: {input_bytes.hex()}, \"\n            f\" {len(input_bytes)} > {size}\"\n        )\n    if len(input_bytes) < size:\n        if left_padding:\n            return bytes(input_bytes).rjust(size, b\"\\x00\")\n        if right_padding:\n            return bytes(input_bytes).ljust(size, b\"\\x00\")\n        raise Exception(\n            f\"input is too small for fixed size bytes: {len(input_bytes)} < {size}\\n\"\n            \"Use `left_padding=True` or `right_padding=True` to allow padding.\"\n        )\n    return input_bytes\n\n\ndef to_hex(input_bytes: BytesConvertible) -> str:\n    \"\"\"Convert multiple types into a bytes hex string.\"\"\"\n    return \"0x\" + to_bytes(input_bytes).hex()\n\n\ndef to_number(input_number: NumberConvertible) -> int:\n    \"\"\"Convert multiple types into a number.\"\"\"\n    if isinstance(input_number, int):\n        return input_number\n    if isinstance(input_number, str):\n        return int(input_number, 0)\n    if isinstance(input_number, bytes) or isinstance(input_number, SupportsBytes):\n        return int.from_bytes(input_number, byteorder=\"big\")\n    raise Exception(\"invalid type for `number`\")\n"
  },
  {
    "path": "src/ethereum_test_base_types/mixins.py",
    "content": "\"\"\"Provides various mixins for Pydantic models.\"\"\"\n\nfrom typing import Any, List, Literal, Tuple\n\nfrom pydantic import BaseModel\n\n\nclass ModelCustomizationsMixin:\n    \"\"\"\n    A mixin that customizes the behavior of pydantic models. Any pydantic\n    configuration override that must apply to all models should be placed here.\n\n    This mixin is applied to both `EthereumTestBaseModel` and\n    `EthereumTestRootModel`.\n    \"\"\"\n\n    def serialize(\n        self,\n        mode: Literal[\"json\", \"python\"],\n        by_alias: bool,\n        exclude_none: bool = True,\n    ) -> dict[str, Any]:\n        \"\"\"\n        Serialize the model to the specified format with the given parameters.\n\n        Args:\n          mode: The mode of serialization. If mode is 'json', the output\n                will only contain JSON serializable types. If mode is\n                'python', the output may contain non-JSON-serializable\n                Python objects.\n          by_alias: Whether to use aliases for field names.\n          exclude_none: Whether to exclude fields with None values,\n                        default is True.\n\n        Returns:\n          dict[str, Any]: The serialized representation of the model.\n\n        \"\"\"\n        if not hasattr(self, \"model_dump\"):\n            raise NotImplementedError(\n                f\"{self.__class__.__name__} does not have 'model_dump' method.\"\n                \"Are you sure you are using a Pydantic model?\"\n            )\n        return self.model_dump(mode=mode, by_alias=by_alias, exclude_none=exclude_none)\n\n    def __repr_args__(self) -> Any:\n        \"\"\"\n        Generate a list of attribute-value pairs for the object representation.\n\n        This method serializes the model, retrieves the attribute names, and\n        constructs a list of tuples containing attribute names and their\n        corresponding values. Only attributes with non-None values are included\n        in the list.\n\n        This method is used by the __repr__ method to generate the object\n        representation, and is used by `gentest` module to generate the test\n        cases.\n\n        See:\n        https://pydantic-docs.helpmanual.io/usage/models/\n        #custom-repr\n\n        and\n\n        https://github.com/ethereum/execution-spec-tests/pull/\n        901#issuecomment-24432968 35\n\n        Returns:\n          List[Tuple[str, Any]]: A list of tuples where each tuple\n                                 contains an attribute name and its\n                                 corresponding non-None value.\n\n        \"\"\"\n        attrs_names = self.serialize(mode=\"python\", by_alias=False).keys()\n        attrs = ((s, getattr(self, s)) for s in attrs_names)\n\n        # Convert field values based on their type. This ensures consistency\n        # between JSON and Python object representations. Should a custom\n        # `__repr__` be needed for a specific type, it can added in the match\n        # statement below. Otherwise, the default string representation is\n        # used.\n        repr_attrs: List[Tuple[str, Any]] = []\n        for a, v in attrs:\n            match v:\n                # Note: The `None` case handles an edge case with transactions\n                # see: https://github.com/ethereum/execution-spec-tests/pull/\n                # 901#discussion_r1828491918\n                case list() | dict() | BaseModel() | None:\n                    repr_attrs.append((a, v))\n                case _:\n                    repr_attrs.append((a, str(v)))\n        return repr_attrs\n"
  },
  {
    "path": "src/ethereum_test_base_types/py.typed",
    "content": ""
  },
  {
    "path": "src/ethereum_test_base_types/pydantic.py",
    "content": "\"\"\"Base pydantic classes used to define the models for Ethereum tests.\"\"\"\n\nfrom typing import Any, TypeVar\n\nfrom pydantic import BaseModel, ConfigDict, RootModel\nfrom pydantic.alias_generators import to_camel\nfrom typing_extensions import Self\n\nfrom .mixins import ModelCustomizationsMixin\n\nRootModelRootType = TypeVar(\"RootModelRootType\")\n\n\nclass EthereumTestBaseModel(BaseModel, ModelCustomizationsMixin):\n    \"\"\"Base model for all models for Ethereum tests.\"\"\"\n\n    pass\n\n\nclass EthereumTestRootModel(RootModel[RootModelRootType], ModelCustomizationsMixin):\n    \"\"\"Base model for all models for Ethereum tests.\"\"\"\n\n    root: Any\n\n\nclass CopyValidateModel(EthereumTestBaseModel):\n    \"\"\"Model that supports copying with validation.\"\"\"\n\n    def copy(self: Self, **kwargs: Any) -> Self:\n        \"\"\"\n        Create a copy of the model with the updated fields that are validated.\n        \"\"\"\n        return self.__class__(**(self.model_dump(exclude_unset=True) | kwargs))\n\n\nclass CamelModel(CopyValidateModel):\n    \"\"\"\n    A base model that converts field names to camel case when serializing.\n\n    For example, the field name `current_timestamp` in a Python model will be\n    represented as `currentTimestamp` when it is serialized to json.\n    \"\"\"\n\n    model_config = ConfigDict(\n        alias_generator=to_camel,\n        populate_by_name=True,\n        validate_default=True,\n    )\n"
  },
  {
    "path": "src/ethereum_test_base_types/reference_spec/__init__.py",
    "content": "\"\"\"Reference Spec Classes.\"\"\"\n\nfrom typing import Sequence, Type\n\nfrom .git_reference_spec import GitReferenceSpec\nfrom .reference_spec import ReferenceSpec\n\nReferenceSpecTypes: Sequence[Type[ReferenceSpec]] = [\n    GitReferenceSpec,\n]\n\n__all__ = (\"ReferenceSpec\", \"ReferenceSpecTypes\")\n"
  },
  {
    "path": "src/ethereum_test_base_types/reference_spec/git_reference_spec.py",
    "content": "\"\"\"Reference Specification file located in a github repository.\"\"\"\n\nimport base64\nimport json\nimport os\nimport warnings\nfrom dataclasses import dataclass\nfrom typing import Any, Dict, Optional\n\nimport requests\n\nfrom .reference_spec import NoLatestKnownVersionError, ParseModuleError, ReferenceSpec\n\n\ndef _decode_base64_content(encoded_data: str) -> str:\n    return base64.b64decode(encoded_data).decode(\"utf-8\")\n\n\n@dataclass(kw_only=True)\nclass GitReferenceSpec(ReferenceSpec):\n    \"\"\"Git Reference Specification Description Class.\"\"\"\n\n    SpecPath: str\n    RepositoryOwner: str = \"ethereum\"\n    RepositoryName: str = \"EIPs\"\n    BranchName: str = \"master\"\n    SpecVersion: str = \"\"\n    _latest_spec: Dict | None = None\n    _github_token: Optional[str] = None\n\n    def name(self) -> str:\n        \"\"\"Return the name of the spec.\"\"\"\n        return (\n            f\"https://github.com/{self.RepositoryOwner}/\"\n            + f\"{self.RepositoryName}/blob/{self.BranchName}/{self.SpecPath}\"\n        )\n\n    def known_version(self) -> str:\n        \"\"\"Return the latest known version in the reference.\"\"\"\n        return self.SpecVersion\n\n    def api_url(self) -> str:\n        \"\"\"URL used to retrieve the version via the Github API.\"\"\"\n        return (\n            f\"https://api.github.com/repos/{self.RepositoryOwner}/\"\n            f\"{self.RepositoryName}/contents/{self.SpecPath}\"\n        )\n\n    def _get_request_headers(self) -> Dict[str, str]:\n        \"\"\"Get headers for GitHub API request, including token if available.\"\"\"\n        headers = {}\n        token = self._github_token or os.environ.get(\"GITHUB_TOKEN\")\n        if token:\n            headers[\"Authorization\"] = f\"token {token}\"\n        return headers\n\n    def _get_latest_known_spec(self) -> Dict | None:\n        headers = self._get_request_headers()\n        response = requests.get(self.api_url(), headers=headers)\n        if response.status_code != 200:\n            return None\n        content = json.loads(response.content)\n        content[\"content\"] = _decode_base64_content(content[\"content\"])\n        return content\n\n    def _get_latest_spec(self) -> Dict | None:\n        if self._latest_spec is not None:\n            return self._latest_spec\n\n        headers = self._get_request_headers()\n        response = requests.get(self.api_url(), headers=headers)\n\n        if response.status_code != 200:\n            warnings.warn(\n                f\"Unable to get latest version, status code: {response.status_code} - \"\n                f\"text: {response.text}\",\n                stacklevel=2,\n            )\n            return None\n        content = json.loads(response.content)\n        content[\"content\"] = _decode_base64_content(content[\"content\"])\n        self._latest_spec = content\n        return content\n\n    def is_outdated(self) -> bool:\n        \"\"\"\n        Check whether the reference specification has been updated since the\n        test was last updated, by comparing the latest known `sha` value of\n        the file in the repository.\n        \"\"\"\n        if self.SpecVersion == \"\":\n            raise NoLatestKnownVersionError\n        # Fetch the latest spec\n        latest = self._get_latest_spec()\n        if latest is None:\n            raise Exception(\"unable to get latest version\")\n        return latest[\"sha\"].strip() != self.SpecVersion.strip()\n\n    def latest_version(self) -> str:\n        \"\"\"Return the sha digest of the latest version of the spec.\"\"\"\n        latest = self._get_latest_spec()\n        if latest is None or \"sha\" not in latest:\n            return \"\"\n        return latest[\"sha\"]\n\n    def has_known_version(self) -> bool:\n        \"\"\"\n        Return true if the reference spec object is hard-coded with a latest\n        known version.\n        \"\"\"\n        return self.SpecVersion != \"\"\n\n    def write_info(self, info: Dict[str, Dict[str, Any] | str]) -> None:\n        \"\"\"\n        Write info about the reference specification used into the output\n        fixture.\n        \"\"\"\n        info[\"reference-spec\"] = self.name()\n        info[\"reference-spec-version\"] = self.SpecVersion\n\n    @staticmethod\n    def parseable_from_module(module_dict: Dict[str, Any]) -> bool:\n        \"\"\"Check whether the module contains a git reference spec.\"\"\"\n        return \"REFERENCE_SPEC_GIT_PATH\" in module_dict\n\n    @staticmethod\n    def parse_from_module(\n        module_dict: Dict[str, Any], github_token: Optional[str] = None\n    ) -> \"ReferenceSpec\":\n        \"\"\"\n        Parse the module's dict into a reference spec.\n\n        Args:\n            module_dict: Dictionary containing module information\n            github_token: Optional GitHub token for API authentication\n\n        \"\"\"\n        if \"REFERENCE_SPEC_GIT_PATH\" not in module_dict:\n            raise ParseModuleError\n\n        spec_path = module_dict[\"REFERENCE_SPEC_GIT_PATH\"]\n        spec = GitReferenceSpec(SpecPath=spec_path, _github_token=github_token)\n        if \"REFERENCE_SPEC_VERSION\" in module_dict:\n            spec.SpecVersion = module_dict[\"REFERENCE_SPEC_VERSION\"]\n        return spec\n\n\n_ = GitReferenceSpec(SpecPath=\"\")\n"
  },
  {
    "path": "src/ethereum_test_base_types/reference_spec/reference_spec.py",
    "content": "\"\"\"\nTypes used to describe a reference specification and versioning used to write\nEthereum tests.\n\"\"\"\n\nfrom abc import abstractmethod\nfrom typing import Any, Dict, Optional\n\n\n# Exceptions\nclass NoLatestKnownVersionError(Exception):\n    \"\"\"\n    Exception used to signal that the reference specification does not have a\n    latest known version.\n    \"\"\"\n\n    pass\n\n\nclass ParseModuleError(Exception):\n    \"\"\"\n    Exception used to signal that module's reference spec could not be parsed\n    using the given class.\n    \"\"\"\n\n    pass\n\n\nclass ReferenceSpec:\n    \"\"\"Reference Specification Description Abstract Class.\"\"\"\n\n    @abstractmethod\n    def name(self) -> str:\n        \"\"\"Return the name of the spec.\"\"\"\n        pass\n\n    @abstractmethod\n    def has_known_version(self) -> bool:\n        \"\"\"\n        Return true if the reference spec object is hard-coded with a latest\n        known version.\n        \"\"\"\n        pass\n\n    @abstractmethod\n    def known_version(self) -> str:\n        \"\"\"Return the latest known version in the reference.\"\"\"\n        pass\n\n    @abstractmethod\n    def api_url(self) -> str:\n        \"\"\"\n        Return the URL required to poll the version from an API, if needed.\n        \"\"\"\n        pass\n\n    @abstractmethod\n    def latest_version(self) -> str:\n        \"\"\"Return a digest that points to the latest version of the spec.\"\"\"\n        pass\n\n    @abstractmethod\n    def is_outdated(self) -> bool:\n        \"\"\"\n        Check whether the reference specification has been updated since the\n        test was last updated.\n        \"\"\"\n        pass\n\n    @abstractmethod\n    def write_info(self, info: Dict[str, Dict[str, Any] | str]) -> None:\n        \"\"\"\n        Write info about the reference specification used into the output\n        fixture.\n        \"\"\"\n        pass\n\n    @staticmethod\n    @abstractmethod\n    def parseable_from_module(module_dict: Dict[str, Any]) -> bool:\n        \"\"\"\n        Check whether the module's dict contains required reference spec\n        information.\n        \"\"\"\n        pass\n\n    @staticmethod\n    @abstractmethod\n    def parse_from_module(\n        module_dict: Dict[str, Any], github_token: Optional[str] = None\n    ) -> \"ReferenceSpec\":\n        \"\"\"\n        Parse the module's dict into a reference spec.\n\n        Args:\n            module_dict: Dictionary containing module information\n            github_token: Optional GitHub token for API authentication\n\n        \"\"\"\n        pass\n"
  },
  {
    "path": "src/ethereum_test_base_types/serialization.py",
    "content": "\"\"\"Ethereum test types for serialization and encoding.\"\"\"\n\nfrom typing import Any, ClassVar, List\n\nimport ethereum_rlp as eth_rlp\nfrom ethereum_types.numeric import Uint\n\nfrom ethereum_test_base_types import Bytes\n\n\ndef to_serializable_element(v: Any) -> Any:\n    \"\"\"Return a serializable element that can be passed to `eth_rlp.encode`.\"\"\"\n    if isinstance(v, int):\n        return Uint(v)\n    elif isinstance(v, bytes):\n        return v\n    elif isinstance(v, list):\n        return [to_serializable_element(v) for v in v]\n    elif isinstance(v, RLPSerializable):\n        if v.signable:\n            v.sign()\n        return v.to_list(signing=False)\n    elif v is None:\n        return b\"\"\n    raise Exception(f\"Unable to serialize element {v} of type {type(v)}.\")\n\n\nclass RLPSerializable:\n    \"\"\"Class that adds RLP serialization to another class.\"\"\"\n\n    rlp_override: Bytes | None = None\n\n    signable: ClassVar[bool] = False\n    rlp_fields: ClassVar[List[str]]\n    rlp_signing_fields: ClassVar[List[str]]\n\n    def get_rlp_fields(self) -> List[str]:\n        \"\"\"\n        Return an ordered list of field names to be included in RLP\n        serialization.\n\n        Function can be overridden to customize the logic to return the fields.\n\n        By default, rlp_fields class variable is used.\n\n        The list can be nested list up to one extra level to represent nested\n        fields.\n        \"\"\"\n        return self.rlp_fields\n\n    def get_rlp_signing_fields(self) -> List[str]:\n        \"\"\"\n        Return an ordered list of field names to be included in the RLP\n        serialization of the object signature.\n\n        Function can be overridden to customize the logic to return the fields.\n\n        By default, rlp_signing_fields class variable is used.\n\n        The list can be nested list up to one extra level to represent nested\n        fields.\n        \"\"\"\n        return self.rlp_signing_fields\n\n    def get_rlp_prefix(self) -> bytes:\n        \"\"\"\n        Return a prefix that has to be appended to the serialized object.\n\n        By default, an empty string is returned.\n        \"\"\"\n        return b\"\"\n\n    def get_rlp_signing_prefix(self) -> bytes:\n        \"\"\"\n        Return a prefix that has to be appended to the serialized signing\n        object.\n\n        By default, an empty string is returned.\n        \"\"\"\n        return b\"\"\n\n    def sign(self) -> None:\n        \"\"\"Sign the current object for further serialization.\"\"\"\n        raise NotImplementedError(f'Object \"{self.__class__.__name__}\" cannot be signed.')\n\n    def to_list_from_fields(self, fields: List[str]) -> List[Any]:\n        \"\"\"\n        Return an RLP serializable list that can be passed to `eth_rlp.encode`.\n\n        Can be for signing purposes or the entire object.\n        \"\"\"\n        values_list: List[Any] = []\n        for field in fields:\n            assert isinstance(field, str), (\n                f'Unable to rlp serialize field \"{field}\" '\n                f'in object type \"{self.__class__.__name__}\"'\n            )\n            assert hasattr(self, field), (\n                f'Unable to rlp serialize field \"{field}\" '\n                f'in object type \"{self.__class__.__name__}\"'\n            )\n            try:\n                values_list.append(to_serializable_element(getattr(self, field)))\n            except Exception as e:\n                raise Exception(\n                    f'Unable to rlp serialize field \"{field}\" '\n                    f'in object type \"{self.__class__.__name__}\"'\n                ) from e\n        return values_list\n\n    def to_list(self, signing: bool = False) -> List[Any]:\n        \"\"\"\n        Return an RLP serializable list that can be passed to `eth_rlp.encode`.\n\n        Can be for signing purposes or the entire object.\n        \"\"\"\n        field_list: List[str]\n        if signing:\n            if not self.signable:\n                raise Exception(f'Object \"{self.__class__.__name__}\" does not support signing')\n            field_list = self.get_rlp_signing_fields()\n        else:\n            if self.signable:\n                # Automatically sign signable objects during full\n                # serialization: Ensures nested objects have valid signatures\n                # in the final RLP.\n                self.sign()\n            field_list = self.get_rlp_fields()\n\n        return self.to_list_from_fields(field_list)\n\n    def rlp_signing_bytes(self) -> Bytes:\n        \"\"\"Return the signing serialized envelope used for signing.\"\"\"\n        return Bytes(self.get_rlp_signing_prefix() + eth_rlp.encode(self.to_list(signing=True)))\n\n    def rlp(self) -> Bytes:\n        \"\"\"Return the serialized object.\"\"\"\n        if self.rlp_override is not None:\n            return self.rlp_override\n        return Bytes(self.get_rlp_prefix() + eth_rlp.encode(self.to_list(signing=False)))\n\n\nclass SignableRLPSerializable(RLPSerializable):\n    \"\"\"\n    Class that adds RLP serialization to another class with signing support.\n    \"\"\"\n\n    signable: ClassVar[bool] = True\n\n    def sign(self) -> None:\n        \"\"\"Sign the current object for further serialization.\"\"\"\n        raise NotImplementedError(f'Object \"{self.__class__.__name__}\" needs to implement `sign`.')\n"
  },
  {
    "path": "src/ethereum_test_base_types/tests/__init__.py",
    "content": "\"\"\"Tests for the ethereum_test_base_types package.\"\"\"\n"
  },
  {
    "path": "src/ethereum_test_base_types/tests/test_base_types.py",
    "content": "\"\"\"Test suite for `ethereum_test` module base types.\"\"\"\n\nfrom typing import Any, Dict\n\nimport pytest\n\nfrom ..base_types import Address, Hash, Wei\nfrom ..base_types_json import to_json\nfrom ..composite_types import AccessList\n\n\n@pytest.mark.parametrize(\n    \"a, b, equal\",\n    [\n        (Address(0), Address(0), True),\n        (\n            Address(\"0x0000000000000000000000000000000000000000\"),\n            Address(\"0x0000000000000000000000000000000000000000\"),\n            True,\n        ),\n        (\n            Address(\"0x0000000000000000000000000000000000000000\"),\n            Address(\"0x0000000000000000000000000000000000000001\"),\n            False,\n        ),\n        (\n            Address(\"0x0000000000000000000000000000000000000001\"),\n            Address(\"0x0000000000000000000000000000000000000000\"),\n            False,\n        ),\n        (\n            Address(\"0x0000000000000000000000000000000000000001\"),\n            \"0x0000000000000000000000000000000000000001\",\n            True,\n        ),\n        (\n            Address(\"0x0000000000000000000000000000000000000001\"),\n            \"0x0000000000000000000000000000000000000002\",\n            False,\n        ),\n        (Address(\"0x0000000000000000000000000000000000000001\"), 1, True),\n        (Address(\"0x0000000000000000000000000000000000000001\"), 2, False),\n        (\n            Address(\"0x0000000000000000000000000000000000000001\"),\n            b\"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x01\",\n            True,\n        ),\n        (\n            Address(\"0x0000000000000000000000000000000000000001\"),\n            b\"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x02\",\n            False,\n        ),\n        (\n            \"0x0000000000000000000000000000000000000001\",\n            Address(\"0x0000000000000000000000000000000000000001\"),\n            True,\n        ),\n        (\n            \"0x0000000000000000000000000000000000000002\",\n            Address(\"0x0000000000000000000000000000000000000001\"),\n            False,\n        ),\n        (1, Address(\"0x0000000000000000000000000000000000000001\"), True),\n        (2, Address(\"0x0000000000000000000000000000000000000001\"), False),\n        (\n            b\"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x01\",\n            Address(\"0x0000000000000000000000000000000000000001\"),\n            True,\n        ),\n        (\n            b\"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x02\",\n            Address(\"0x0000000000000000000000000000000000000001\"),\n            False,\n        ),\n        (\n            Hash(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n            Hash(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n            True,\n        ),\n        (\n            Hash(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n            Hash(\"0x0000000000000000000000000000000000000000000000000000000000000001\"),\n            False,\n        ),\n        (\n            Hash(\"0x0000000000000000000000000000000000000000000000000000000000000001\"),\n            Hash(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n            False,\n        ),\n        (\n            Hash(\"0x0000000000000000000000000000000000000000000000000000000000000001\"),\n            \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n            True,\n        ),\n        (\n            Hash(\"0x0000000000000000000000000000000000000000000000000000000000000001\"),\n            \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n            False,\n        ),\n        (Hash(\"0x0000000000000000000000000000000000000000000000000000000000000001\"), 1, True),\n        (Hash(\"0x0000000000000000000000000000000000000000000000000000000000000001\"), 2, False),\n        (\n            Hash(\"0x0000000000000000000000000000000000000000000000000000000000000001\"),\n            b\"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\"\n            b\"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x01\",\n            True,\n        ),\n        (\n            Hash(\"0x0000000000000000000000000000000000000000000000000000000000000001\"),\n            b\"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\"\n            b\"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x02\",\n            False,\n        ),\n        (\n            \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n            Hash(\"0x0000000000000000000000000000000000000000000000000000000000000001\"),\n            True,\n        ),\n        (\n            \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n            Hash(\"0x0000000000000000000000000000000000000000000000000000000000000001\"),\n            False,\n        ),\n        (1, Hash(\"0x0000000000000000000000000000000000000000000000000000000000000001\"), True),\n        (2, Hash(\"0x0000000000000000000000000000000000000000000000000000000000000001\"), False),\n    ],\n)\ndef test_comparisons(a: Any, b: Any, equal: bool) -> None:\n    \"\"\"Test the comparison methods of the base types.\"\"\"\n    if equal:\n        assert a == b\n        assert not a != b\n    else:\n        assert a != b\n        assert not a == b\n\n\ndef test_hash_padding() -> None:\n    \"\"\"Test Hash objects are padded correctly.\"\"\"\n    assert Hash(b\"\\x01\", left_padding=True) == (\n        \"0x0000000000000000000000000000000000000000000000000000000000000001\"\n    )\n    assert Hash(b\"\\x02\", right_padding=True) == (\n        \"0x0200000000000000000000000000000000000000000000000000000000000000\"\n    )\n\n\ndef test_address_padding() -> None:\n    \"\"\"Test that addresses are padded correctly.\"\"\"\n    assert Address(b\"\\x01\", left_padding=True) == Address(\n        \"0x0000000000000000000000000000000000000001\"\n    )\n    assert Address(b\"\\x80\", right_padding=True) == Address(\n        \"0x8000000000000000000000000000000000000000\"\n    )\n\n\n@pytest.mark.parametrize(\n    \"s, expected\",\n    [\n        (\"0\", 0),\n        (\"10**18\", 10**18),\n        (\"1e18\", 10**18),\n        (\"1 ether\", 10**18),\n        (\"2 ether\", 2 * 10**18),\n        (\"70000 ether\", 70000 * 10**18),\n        (\"123456 ether\", 123456 * 10**18),\n        (\"123456.789 ether\", 123456.789 * 10**18),\n        (\"2.1 ether\", 2.1 * 10**18),\n        (\"2.1 Ether\", 2.1 * 10**18),\n        (\"2.1 ETHER\", 2.1 * 10**18),\n        (\"1 wei\", 1),\n        (\"10**9 wei\", 10**9),\n        (\"1 gwei\", 10**9),\n        (\"1 szabo\", 10**12),\n        (\"1 finney\", 10**15),\n        (\"1 kwei\", 10**3),\n        (\"1 mwei\", 10**6),\n        (\"1 babbage\", 10**3),\n        (\"1 femtoether\", 10**3),\n        (\"1 Lovelace\", 10**6),\n        (\"1 Picoether\", 10**6),\n        (\"1 gwei\", 10**9),\n        (\"1 shannon\", 10**9),\n        (\"1 nanoether\", 10**9),\n        (\"1 nano\", 10**9),\n        (\"1 microether\", 10**12),\n        (\"1 micro\", 10**12),\n        (\"1 milliether\", 10**15),\n        (\"1 milli\", 10**15),\n    ],\n)\ndef test_wei_parsing(s: str, expected: int) -> None:\n    \"\"\"Test the parsing of wei values.\"\"\"\n    assert Wei(s) == expected\n\n\n@pytest.mark.parametrize(\n    [\"can_be_deserialized\", \"model_instance\", \"json\"],\n    [\n        pytest.param(\n            True,\n            AccessList(\n                address=0x1234,\n                storage_keys=[0, 1],\n            ),\n            {\n                \"address\": \"0x0000000000000000000000000000000000001234\",\n                \"storageKeys\": [\n                    \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n                    \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n                ],\n            },\n            id=\"access_list\",\n        ),\n    ],\n)\nclass TestPydanticModelConversion:\n    \"\"\"Test that Pydantic models are converted to and from JSON correctly.\"\"\"\n\n    def test_json_serialization(\n        self, can_be_deserialized: bool, model_instance: Any, json: str | Dict[str, Any]\n    ) -> None:\n        \"\"\"Test that to_json returns the expected JSON for the given object.\"\"\"\n        del can_be_deserialized\n        assert to_json(model_instance) == json\n\n    def test_json_deserialization(\n        self, can_be_deserialized: bool, model_instance: Any, json: str | Dict[str, Any]\n    ) -> None:\n        \"\"\"Test that to_json returns the expected JSON for the given object.\"\"\"\n        if not can_be_deserialized:\n            pytest.skip(reason=\"The model instance in this case can not be deserialized\")\n        model_type = type(model_instance)\n        assert model_type(**json) == model_instance\n"
  },
  {
    "path": "src/ethereum_test_base_types/tests/test_reference_spec.py",
    "content": "\"\"\"Test suite for `ethereum_test_base_types.reference_spec` module.\"\"\"\n\nimport re\nfrom typing import Any\n\nimport pytest\nimport requests\n\nfrom ..reference_spec.git_reference_spec import GitReferenceSpec\nfrom ..reference_spec.reference_spec import NoLatestKnownVersionError\n\n# the content field from\n# https://api.github.com/repos/ethereum/EIPs/contents/EIPS/eip-100.md\n# as of 2023-08-29\nresponse_content = \"LS0tCmVpcDogMTAwCnRpdGxlOiBDaGFuZ2UgZGlmZmljdWx0eSBhZGp1c3Rt\\\nZW50IHRvIHRhcmdldCBtZWFuIGJsb2NrIHRpbWUgaW5jbHVkaW5nIHVuY2xl\\\ncwphdXRob3I6IFZpdGFsaWsgQnV0ZXJpbiAoQHZidXRlcmluKQp0eXBlOiBT\\\ndGFuZGFyZHMgVHJhY2sKY2F0ZWdvcnk6IENvcmUKc3RhdHVzOiBGaW5hbApj\\\ncmVhdGVkOiAyMDE2LTA0LTI4Ci0tLQoKIyMjIFNwZWNpZmljYXRpb24KCkN1\\\ncnJlbnRseSwgdGhlIGZvcm11bGEgdG8gY29tcHV0ZSB0aGUgZGlmZmljdWx0\\\neSBvZiBhIGJsb2NrIGluY2x1ZGVzIHRoZSBmb2xsb3dpbmcgbG9naWM6Cgpg\\\nYGAgcHl0aG9uCmFkal9mYWN0b3IgPSBtYXgoMSAtICgodGltZXN0YW1wIC0g\\\ncGFyZW50LnRpbWVzdGFtcCkgLy8gMTApLCAtOTkpCmNoaWxkX2RpZmYgPSBp\\\nbnQobWF4KHBhcmVudC5kaWZmaWN1bHR5ICsgKHBhcmVudC5kaWZmaWN1bHR5\\\nIC8vIEJMT0NLX0RJRkZfRkFDVE9SKSAqIGFkal9mYWN0b3IsIG1pbihwYXJl\\\nbnQuZGlmZmljdWx0eSwgTUlOX0RJRkYpKSkKLi4uCmBgYAoKSWYgYGJsb2Nr\\\nLm51bWJlciA+PSBCWVpBTlRJVU1fRk9SS19CTEtOVU1gLCB3ZSBjaGFuZ2Ug\\\ndGhlIGZpcnN0IGxpbmUgdG8gdGhlIGZvbGxvd2luZzoKCmBgYCBweXRob24K\\\nYWRqX2ZhY3RvciA9IG1heCgoMiBpZiBsZW4ocGFyZW50LnVuY2xlcykgZWxz\\\nZSAxKSAtICgodGltZXN0YW1wIC0gcGFyZW50LnRpbWVzdGFtcCkgLy8gOSks\\\nIC05OSkKYGBgCiMjIyBSYXRpb25hbGUKClRoaXMgbmV3IGZvcm11bGEgZW5z\\\ndXJlcyB0aGF0IHRoZSBkaWZmaWN1bHR5IGFkanVzdG1lbnQgYWxnb3JpdGht\\\nIHRhcmdldHMgYSBjb25zdGFudCBhdmVyYWdlIHJhdGUgb2YgYmxvY2tzIHBy\\\nb2R1Y2VkIGluY2x1ZGluZyB1bmNsZXMsIGFuZCBzbyBlbnN1cmVzIGEgaGln\\\naGx5IHByZWRpY3RhYmxlIGlzc3VhbmNlIHJhdGUgdGhhdCBjYW5ub3QgYmUg\\\nbWFuaXB1bGF0ZWQgdXB3YXJkIGJ5IG1hbmlwdWxhdGluZyB0aGUgdW5jbGUg\\\ncmF0ZS4gQSBmb3JtdWxhIHRoYXQgYWNjb3VudHMgZm9yIHRoZSBleGFjdCBu\\\ndW1iZXIgb2YgaW5jbHVkZWQgdW5jbGVzOgpgYGAgcHl0aG9uCmFkal9mYWN0\\\nb3IgPSBtYXgoMSArIGxlbihwYXJlbnQudW5jbGVzKSAtICgodGltZXN0YW1w\\\nIC0gcGFyZW50LnRpbWVzdGFtcCkgLy8gOSksIC05OSkKYGBgCmNhbiBiZSBm\\\nYWlybHkgZWFzaWx5IHNlZW4gdG8gYmUgKHRvIHdpdGhpbiBhIHRvbGVyYW5j\\\nZSBvZiB+My80MTk0MzA0KSBtYXRoZW1hdGljYWxseSBlcXVpdmFsZW50IHRv\\\nIGFzc3VtaW5nIHRoYXQgYSBibG9jayB3aXRoIGBrYCB1bmNsZXMgaXMgZXF1\\\naXZhbGVudCB0byBhIHNlcXVlbmNlIG9mIGBrKzFgIGJsb2NrcyB0aGF0IGFs\\\nbCBhcHBlYXIgd2l0aCB0aGUgZXhhY3Qgc2FtZSB0aW1lc3RhbXAsIGFuZCB0\\\naGlzIGlzIGxpa2VseSB0aGUgc2ltcGxlc3QgcG9zc2libGUgd2F5IHRvIGFj\\\nY29tcGxpc2ggdGhlIGRlc2lyZWQgZWZmZWN0LiBCdXQgc2luY2UgdGhlIGV4\\\nYWN0IGZvcm11bGEgZGVwZW5kcyBvbiB0aGUgZnVsbCBibG9jayBhbmQgbm90\\\nIGp1c3QgdGhlIGhlYWRlciwgd2UgYXJlIGluc3RlYWQgdXNpbmcgYW4gYXBw\\\ncm94aW1hdGUgZm9ybXVsYSB0aGF0IGFjY29tcGxpc2hlcyBhbG1vc3QgdGhl\\\nIHNhbWUgZWZmZWN0IGJ1dCBoYXMgdGhlIGJlbmVmaXQgdGhhdCBpdCBkZXBl\\\nbmRzIG9ubHkgb24gdGhlIGJsb2NrIGhlYWRlciAoYXMgeW91IGNhbiBjaGVj\\\nayB0aGUgdW5jbGUgaGFzaCBhZ2FpbnN0IHRoZSBibGFuayBoYXNoKS4KCkNo\\\nYW5naW5nIHRoZSBkZW5vbWluYXRvciBmcm9tIDEwIHRvIDkgZW5zdXJlcyB0\\\naGF0IHRoZSBibG9jayB0aW1lIHJlbWFpbnMgcm91Z2hseSB0aGUgc2FtZSAo\\\naW4gZmFjdCwgaXQgc2hvdWxkIGRlY3JlYXNlIGJ5IH4zJSBnaXZlbiB0aGUg\\\nY3VycmVudCB1bmNsZSByYXRlIG9mIDclKS4KCiMjIyBSZWZlcmVuY2VzCgox\\\nLiBFSVAgMTAwIGlzc3VlIGFuZCBkaXNjdXNzaW9uOiBodHRwczovL2dpdGh1\\\nYi5jb20vZXRoZXJldW0vRUlQcy9pc3N1ZXMvMTAwCjIuIGh0dHBzOi8vYml0\\\nc2xvZy53b3JkcHJlc3MuY29tLzIwMTYvMDQvMjgvdW5jbGUtbWluaW5nLWFu\\\nLWV0aGVyZXVtLWNvbnNlbnN1cy1wcm90b2NvbC1mbGF3Lwo=\"\n\n\ndef test_git_reference_spec(monkeypatch: pytest.MonkeyPatch) -> None:\n    \"\"\"Test Git reference spec.\"\"\"\n\n    def mock_get(self: Any, headers: Any | None = None) -> object:\n        del self, headers\n\n        class Response:\n            content = (\n                '{\"content\": \"'\n                + response_content\n                + '\", \"sha\":\"78b94002190eb71cb04b8757629397f9418e8cce\"}'\n            )\n            status_code = 200\n\n        return Response()\n\n    monkeypatch.setattr(requests, \"get\", mock_get)\n\n    ref_spec = GitReferenceSpec(\n        SpecPath=\"EIPS/eip-100.md\",\n    )\n\n    latest_spec = ref_spec._get_latest_spec()\n    assert latest_spec is not None\n    assert \"sha\" in latest_spec\n    assert re.match(r\"^[0-9a-f]{40}$\", latest_spec[\"sha\"])\n    with pytest.raises(NoLatestKnownVersionError):\n        # `is_outdated` method raises here because known version is unset\n        ref_spec.is_outdated()\n    ref_spec.SpecVersion = \"0000000000000000000000000000000000000000\"\n    assert ref_spec.is_outdated()\n"
  },
  {
    "path": "src/ethereum_test_benchmark/__init__.py",
    "content": "\"\"\"\nBenchmark code generator classes for\ncreating optimized bytecode patterns.\n\"\"\"\n\nfrom .benchmark_code_generator import (\n    BenchmarkCodeGenerator,\n    ExtCallGenerator,\n    JumpLoopGenerator,\n)\n\n__all__ = (\n    \"BenchmarkCodeGenerator\",\n    \"ExtCallGenerator\",\n    \"JumpLoopGenerator\",\n)\n"
  },
  {
    "path": "src/ethereum_test_benchmark/benchmark_code_generator.py",
    "content": "\"\"\"\nBenchmark code generator classes for creating\noptimized bytecode patterns.\n\"\"\"\n\nfrom dataclasses import dataclass\n\nfrom ethereum_test_base_types import Address\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_specs.benchmark import BenchmarkCodeGenerator\nfrom ethereum_test_types import Alloc\nfrom ethereum_test_vm.opcodes import Opcodes as Op\n\n\n@dataclass(kw_only=True)\nclass JumpLoopGenerator(BenchmarkCodeGenerator):\n    \"\"\"Generates bytecode that loops execution using JUMP operations.\"\"\"\n\n    def deploy_contracts(self, *, pre: Alloc, fork: Fork) -> Address:\n        \"\"\"Deploy the looping contract.\"\"\"\n        # Benchmark Test Structure:\n        # setup + JUMPDEST +\n        # attack + attack + ... + attack +\n        # cleanup + JUMP(setup_length)\n        code = self.generate_repeated_code(\n            repeated_code=self.attack_block, setup=self.setup, cleanup=self.cleanup, fork=fork\n        )\n        self._contract_address = pre.deploy_contract(code=code)\n        return self._contract_address\n\n\n@dataclass(kw_only=True)\nclass ExtCallGenerator(BenchmarkCodeGenerator):\n    \"\"\"\n    Generates bytecode that fills the contract to\n    maximum allowed code size.\n    \"\"\"\n\n    contract_balance: int = 0\n\n    def deploy_contracts(self, *, pre: Alloc, fork: Fork) -> Address:\n        \"\"\"Deploy both target and caller contracts.\"\"\"\n        # Benchmark Test Structure:\n        # There are two contracts:\n        # 1. The target contract that executes certain operation\n        #    but not loop (e.g. PUSH)\n        # 2. The loop contract that calls the target contract in a loop\n\n        pushed_stack_items = self.attack_block.pushed_stack_items\n        popped_stack_items = self.attack_block.popped_stack_items\n        stack_delta = pushed_stack_items - popped_stack_items\n\n        max_iterations = fork.max_code_size() // len(self.attack_block)\n\n        if stack_delta > 0:\n            max_iterations = min(fork.max_stack_height() // stack_delta, max_iterations)\n\n        # Deploy target contract that contains the actual attack block\n        self._target_contract_address = pre.deploy_contract(\n            code=self.setup + self.attack_block * max_iterations,\n            balance=self.contract_balance,\n        )\n\n        # Create caller contract that repeatedly calls the target contract\n        # attack = POP(\n        #             STATICCALL(GAS, target_contract_address, 0, 0, 0, 0)\n        #          )\n        #\n        # setup + JUMPDEST + attack + attack + ... + attack +\n        # JUMP(setup_length)\n        code_sequence = Op.POP(Op.STATICCALL(Op.GAS, self._target_contract_address, 0, 0, 0, 0))\n\n        caller_code = self.generate_repeated_code(\n            repeated_code=code_sequence, cleanup=self.cleanup, fork=fork\n        )\n        self._contract_address = pre.deploy_contract(code=caller_code)\n        return self._contract_address\n"
  },
  {
    "path": "src/ethereum_test_checklists/__init__.py",
    "content": "\"\"\"Ethereum test checklists module for EIP testing coverage tracking.\"\"\"\n\nfrom .eip_checklist import EIPChecklist\n\n__all__ = [\"EIPChecklist\"]\n"
  },
  {
    "path": "src/ethereum_test_checklists/eip_checklist.py",
    "content": "\"\"\"\nEIP Testing Checklist Enum definitions.\n\nNote: This module includes a companion .pyi stub file that provides mypy type\nhints for making EIPChecklist classes callable. The stub file is auto-generated\nusing: uv run generate_checklist_stubs\n\nIf you modify the EIPChecklist class structure, regenerate the stub file to\nmaintain proper type checking support.\n\"\"\"\n\nimport re\n\nimport pytest\n\n\ndef camel_to_snake(name: str) -> str:\n    \"\"\"Convert CamelCase to snake_case.\"\"\"\n    # Insert an underscore before any uppercase letter that follows a lowercase\n    # letter\n    s1 = re.sub(\"(.)([A-Z][a-z]+)\", r\"\\1_\\2\", name)\n    # Insert an underscore before any uppercase letter that follows a lowercase\n    # letter or number\n    return re.sub(\"([a-z0-9])([A-Z])\", r\"\\1_\\2\", s1).lower()\n\n\nclass ChecklistItemMeta(type):\n    \"\"\"Metaclass for checklist items that provides string representation.\"\"\"\n\n    _path: str = \"\"\n    _override_name: str = \"\"\n\n    def __new__(mcs, name: str, bases: tuple, namespace: dict, **kwargs):  # noqa: N804\n        \"\"\"Create a new class with the parent path set.\"\"\"\n        parent_path = kwargs.get(\"parent_path\", \"\")\n        override_name = kwargs.get(\"override_name\", None)\n\n        # Create the class\n        cls = super().__new__(mcs, name, bases, namespace)\n\n        cls._override_name = override_name\n\n        # Set the path for this class\n        item_name = override_name if override_name is not None else camel_to_snake(name)\n\n        if parent_path:\n            # Convert class name to snake_case and append to parent path\n            cls._path = f\"{parent_path}/{item_name}\"\n        else:\n            cls._path = item_name\n\n        # Process nested classes\n        for attr_name, attr_value in namespace.items():\n            if isinstance(attr_value, type) and not attr_name.startswith(\"_\"):\n                # Create a new class with the parent path set\n                assert isinstance(attr_value, ChecklistItemMeta)\n                nested_cls = ChecklistItemMeta(\n                    attr_value.__name__,\n                    attr_value.__bases__,\n                    dict(attr_value.__dict__),\n                    parent_path=cls._path,\n                    override_name=attr_value._override_name,\n                )\n                setattr(cls, attr_name, nested_cls)\n\n        return cls\n\n    def __str__(cls) -> str:\n        \"\"\"Return the path for this checklist item.\"\"\"\n        return cls._path\n\n    def __repr__(cls) -> str:\n        \"\"\"Return a representation of this checklist item.\"\"\"\n        return f\"<ChecklistItem: {cls._path}>\"\n\n    def __call__(cls, *args, **kwargs):\n        \"\"\"Return a pytest mark decorator for the checklist item.\"\"\"\n        # If called with a function as the first argument (direct decorator\n        # usage) and no other arguments, apply the decorator to the function\n        if len(args) == 1 and len(kwargs) == 0 and callable(args[0]):\n            func = args[0]\n            marker = pytest.mark.eip_checklist(cls._path)\n            return marker(func)\n        # Otherwise, return a pytest mark decorator\n        return pytest.mark.eip_checklist(cls._path, *args, **kwargs)\n\n\nclass ChecklistItem(metaclass=ChecklistItemMeta):\n    \"\"\"Base class for checklist items.\"\"\"\n\n    pass\n\n\nclass EIPChecklist:\n    \"\"\"\n    Main namespace for EIP testing checklist items.\n\n    This class provides a structured way to reference checklist items for EIP\n    testing. The class structure is automatically converted to callable pytest\n    markers.\n\n    Note: If you modify this class structure, regenerate the type stub file\n    using: uv run generate_checklist_stubs\n\n    Examples:\n      @EIPChecklist.Opcode.Test.GasUsage.Normal()\n      def test_normal_gas():\n          pass\n\n      @EIPChecklist.Opcode.Test.StackOverflow\n      def test_stack_overflow():\n          pass\n\n    \"\"\"\n\n    class General(ChecklistItem):\n        \"\"\"General checklist items.\"\"\"\n\n        class CodeCoverage(ChecklistItem):\n            \"\"\"Code coverage checklist items.\"\"\"\n\n            class Eels(ChecklistItem):\n                \"\"\"EELS code coverage.\"\"\"\n\n                pass\n\n            class TestCoverage(ChecklistItem):\n                \"\"\"Test code coverage.\"\"\"\n\n                pass\n\n            class SecondClient(ChecklistItem):\n                \"\"\"Second client code coverage.\"\"\"\n\n                pass\n\n    class Opcode(ChecklistItem):\n        \"\"\"New opcode checklist items.\"\"\"\n\n        class Test(ChecklistItem):\n            \"\"\"Test vectors for new opcode.\"\"\"\n\n            class MemExp(ChecklistItem):\n                \"\"\"Memory expansion tests.\"\"\"\n\n                class ZeroBytesZeroOffset(ChecklistItem):\n                    \"\"\"Zero bytes expansion with zero-offset.\"\"\"\n\n                    pass\n\n                class ZeroBytesMaxOffset(ChecklistItem):\n                    \"\"\"Zero bytes expansion with 2**256-1 offset.\"\"\"\n\n                    pass\n\n                class SingleByte(ChecklistItem):\n                    \"\"\"Single byte expansion.\"\"\"\n\n                    pass\n\n                class ThirtyOneBytes(ChecklistItem, override_name=\"31_bytes\"):\n                    \"\"\"31 bytes expansion.\"\"\"\n\n                    pass\n\n                class ThirtyTwoBytes(ChecklistItem, override_name=\"32_bytes\"):\n                    \"\"\"32 bytes expansion.\"\"\"\n\n                    pass\n\n                class ThirtyThreeBytes(ChecklistItem, override_name=\"33_bytes\"):\n                    \"\"\"33 bytes expansion.\"\"\"\n\n                    pass\n\n                class SixtyFourBytes(ChecklistItem, override_name=\"64_bytes\"):\n                    \"\"\"64 bytes expansion.\"\"\"\n\n                    pass\n\n                class TwoThirtyTwoMinusOneBytes(\n                    ChecklistItem, override_name=\"2_32_minus_one_bytes\"\n                ):\n                    \"\"\"2**32-1 bytes expansion.\"\"\"\n\n                    pass\n\n                class TwoThirtyTwoBytes(ChecklistItem, override_name=\"2_32_bytes\"):\n                    \"\"\"2**32 bytes expansion.\"\"\"\n\n                    pass\n\n                class TwoSixtyFourMinusOneBytes(\n                    ChecklistItem, override_name=\"2_64_minus_one_bytes\"\n                ):\n                    \"\"\"2**64-1 bytes expansion.\"\"\"\n\n                    pass\n\n                class TwoSixtyFourBytes(ChecklistItem, override_name=\"2_64_bytes\"):\n                    \"\"\"2**64 bytes expansion.\"\"\"\n\n                    pass\n\n                class TwoTwoFiftySixMinusOneBytes(\n                    ChecklistItem, override_name=\"2_256_minus_one_bytes\"\n                ):\n                    \"\"\"2**256-1 bytes expansion.\"\"\"\n\n                    pass\n\n            class StackOverflow(ChecklistItem):\n                \"\"\"Stack overflow test.\"\"\"\n\n                pass\n\n            class StackUnderflow(ChecklistItem):\n                \"\"\"Stack underflow test.\"\"\"\n\n                pass\n\n            class StackComplexOperations(ChecklistItem):\n                \"\"\"Stack complex operations tests.\"\"\"\n\n                class StackHeights(ChecklistItem):\n                    \"\"\"Stack height tests.\"\"\"\n\n                    class Zero(ChecklistItem):\n                        \"\"\"Operation on an empty stack.\"\"\"\n\n                        pass\n\n                    class Odd(ChecklistItem):\n                        \"\"\"Operation on a stack with odd height.\"\"\"\n\n                        pass\n\n                    class Even(ChecklistItem):\n                        \"\"\"Operation on a stack with even height.\"\"\"\n\n                        pass\n\n                class DataPortionVariables(ChecklistItem, override_name=\"data_portion_variables\"):\n                    \"\"\"\n                    If the opcode contains variables in its data portion, for\n                    each variable `n` of the opcode that accesses the nth stack\n                    item, test `n` being.\n                    \"\"\"\n\n                    class Top(ChecklistItem):\n                        \"\"\"`n` is the top stack item.\"\"\"\n\n                        pass\n\n                    class Bottom(ChecklistItem):\n                        \"\"\"`n` is the bottom stack item.\"\"\"\n\n                        pass\n\n                    class Middle(ChecklistItem):\n                        \"\"\"`n` is the middle stack item.\"\"\"\n\n                        pass\n\n            class ExecutionContext(ChecklistItem):\n                \"\"\"Execution context tests.\"\"\"\n\n                class Call(ChecklistItem):\n                    \"\"\"CALL context.\"\"\"\n\n                    pass\n\n                class Staticcall(ChecklistItem):\n                    \"\"\"STATICCALL context tests.\"\"\"\n\n                    class BanCheck(ChecklistItem):\n                        \"\"\"Ban check for state modifications.\"\"\"\n\n                        pass\n\n                    class BanNoModification(ChecklistItem):\n                        \"\"\"Ban even without modifications.\"\"\"\n\n                        pass\n\n                    class SubCalls(ChecklistItem):\n                        \"\"\"Sub-calls verification.\"\"\"\n\n                        pass\n\n                class Delegatecall(ChecklistItem):\n                    \"\"\"DELEGATECALL context.\"\"\"\n\n                    pass\n\n                    class Storage(ChecklistItem):\n                        \"\"\"DELEGATECALL storage modification.\"\"\"\n\n                        pass\n\n                    class Balance(ChecklistItem):\n                        \"\"\"DELEGATECALL balance modification.\"\"\"\n\n                        pass\n\n                    class Code(ChecklistItem):\n                        \"\"\"DELEGATECALL code modification.\"\"\"\n\n                        pass\n\n                class Callcode(ChecklistItem):\n                    \"\"\"CALLCODE context.\"\"\"\n\n                    pass\n\n                class Initcode(ChecklistItem):\n                    \"\"\"Initcode execution tests.\"\"\"\n\n                    class Behavior(ChecklistItem):\n                        \"\"\"Initcode behavior.\"\"\"\n\n                        pass\n\n                        class Tx(ChecklistItem):\n                            \"\"\"Initcode from transaction.\"\"\"\n\n                            pass\n\n                        class Opcode(ChecklistItem):\n                            \"\"\"Initcode from opcode.\"\"\"\n\n                            pass\n\n                    class Reentry(ChecklistItem):\n                        \"\"\"Initcode re-entry.\"\"\"\n\n                        pass\n\n                class SetCode(ChecklistItem):\n                    \"\"\"Set-code delegated account.\"\"\"\n\n                    pass\n\n                class TxContext(ChecklistItem):\n                    \"\"\"Transaction context dependent.\"\"\"\n\n                    pass\n\n                class BlockContext(ChecklistItem):\n                    \"\"\"Block context dependent.\"\"\"\n\n                    pass\n\n            class ReturnData(ChecklistItem):\n                \"\"\"Return data tests.\"\"\"\n\n                class Buffer(ChecklistItem):\n                    \"\"\"Return buffer tests.\"\"\"\n\n                    class Current(ChecklistItem):\n                        \"\"\"Return buffer at current call context.\"\"\"\n\n                        pass\n\n                    class Parent(ChecklistItem):\n                        \"\"\"Return buffer at parent call context.\"\"\"\n\n                        pass\n\n            class GasUsage(ChecklistItem):\n                \"\"\"Gas usage tests.\"\"\"\n\n                class Normal(ChecklistItem):\n                    \"\"\"Normal operation gas usage.\"\"\"\n\n                    pass\n\n                class MemoryExpansion(ChecklistItem):\n                    \"\"\"Memory expansion gas usage.\"\"\"\n\n                    pass\n\n                class OutOfGasExecution(ChecklistItem):\n                    \"\"\"Out-of-gas due to opcode inputs.\"\"\"\n\n                    pass\n\n                class OutOfGasMemory(ChecklistItem):\n                    \"\"\"Out-of-gas due to memory expansion.\"\"\"\n\n                    pass\n\n                class ExtraGas(ChecklistItem):\n                    \"\"\"Extra gas usage tests.\"\"\"\n\n                    pass\n\n                class OrderOfOperations(ChecklistItem):\n                    \"\"\"Order of operations tests.\"\"\"\n\n                    class Exact(ChecklistItem):\n                        \"\"\"Exact gas required.\"\"\"\n\n                        pass\n\n                    class Oog(ChecklistItem):\n                        \"\"\"Out-of-gas with 1 gas difference.\"\"\"\n\n                        pass\n\n            class Terminating(ChecklistItem):\n                \"\"\"Terminating opcode tests.\"\"\"\n\n                class Scenarios(ChecklistItem):\n                    \"\"\"Termination scenarios.\"\"\"\n\n                    class TopLevel(ChecklistItem):\n                        \"\"\"Top-level call termination.\"\"\"\n\n                        pass\n\n                    class SubLevel(ChecklistItem):\n                        \"\"\"Sub-level call termination.\"\"\"\n\n                        pass\n\n                    class Initcode(ChecklistItem):\n                        \"\"\"Initcode termination.\"\"\"\n\n                        pass\n\n                class Rollback(ChecklistItem):\n                    \"\"\"Rollback tests.\"\"\"\n\n                    class Balance(ChecklistItem):\n                        \"\"\"Balance changes rollback.\"\"\"\n\n                        pass\n\n                    class Storage(ChecklistItem):\n                        \"\"\"Storage changes rollback.\"\"\"\n\n                        pass\n\n                    class Contracts(ChecklistItem):\n                        \"\"\"Contract creations rollback.\"\"\"\n\n                        pass\n\n                    class Nonce(ChecklistItem):\n                        \"\"\"Nonce increments rollback.\"\"\"\n\n                        pass\n\n                    class Logs(ChecklistItem):\n                        \"\"\"Log events rollback.\"\"\"\n\n                        pass\n\n            class OutOfBounds(ChecklistItem):\n                \"\"\"Out-of-bounds checks.\"\"\"\n\n                class Verify(ChecklistItem):\n                    \"\"\"Verification tests.\"\"\"\n\n                    class Max(ChecklistItem):\n                        \"\"\"Max value for each parameter.\"\"\"\n\n                        pass\n\n                    class MaxPlusOne(ChecklistItem):\n                        \"\"\"Max value + 1 for each parameter.\"\"\"\n\n                        pass\n\n            class ExceptionalAbort(ChecklistItem):\n                \"\"\"Exceptional abort conditions.\"\"\"\n\n                pass\n\n            class DataPortion(ChecklistItem):\n                \"\"\"Data portion tests.\"\"\"\n\n                class AllZeros(ChecklistItem):\n                    \"\"\"All zeros data portion.\"\"\"\n\n                    pass\n\n                class MaxValue(ChecklistItem):\n                    \"\"\"Max value data portion.\"\"\"\n\n                    pass\n\n                class Jump(ChecklistItem):\n                    \"\"\"Jump into the data portion.\"\"\"\n\n                    pass\n\n            class ContractCreation(ChecklistItem):\n                \"\"\"Contract creation tests.\"\"\"\n\n                class Address(ChecklistItem):\n                    \"\"\"Address calculation.\"\"\"\n\n                    pass\n\n                class Failure(ChecklistItem):\n                    \"\"\"Creation failure tests.\"\"\"\n\n                    class Oog(ChecklistItem):\n                        \"\"\"Out-of-gas failure.\"\"\"\n\n                        pass\n\n                    class InsufficientValue(ChecklistItem):\n                        \"\"\"Insufficient value failure.\"\"\"\n\n                        pass\n\n                    class Collision(ChecklistItem):\n                        \"\"\"Address collision failure.\"\"\"\n\n                        pass\n\n                class Recursive(ChecklistItem):\n                    \"\"\"Recursive contract creation.\"\"\"\n\n                    pass\n\n            class ForkTransition(ChecklistItem):\n                \"\"\"Fork transition tests.\"\"\"\n\n                class Invalid(ChecklistItem):\n                    \"\"\"Invalid before/after fork.\"\"\"\n\n                    pass\n\n                class At(ChecklistItem):\n                    \"\"\"Behavior at transition block.\"\"\"\n\n                    pass\n\n    class Precompile(ChecklistItem):\n        \"\"\"New precompile checklist items.\"\"\"\n\n        class Test(ChecklistItem):\n            \"\"\"Test vectors for new precompile.\"\"\"\n\n            class CallContexts(ChecklistItem):\n                \"\"\"Call context tests.\"\"\"\n\n                class Normal(ChecklistItem):\n                    \"\"\"CALL context.\"\"\"\n\n                    pass\n\n                class Delegate(ChecklistItem):\n                    \"\"\"DELEGATECALL context.\"\"\"\n\n                    pass\n\n                class Static(ChecklistItem):\n                    \"\"\"STATICCALL context.\"\"\"\n\n                    pass\n\n                class Callcode(ChecklistItem):\n                    \"\"\"CALLCODE context.\"\"\"\n\n                    pass\n\n                class TxEntry(ChecklistItem):\n                    \"\"\"Transaction entry-point.\"\"\"\n\n                    pass\n\n                class Initcode(ChecklistItem):\n                    \"\"\"Initcode call tests.\"\"\"\n\n                    class CREATE(ChecklistItem, override_name=\"CREATE\"):\n                        \"\"\"Call from CREATE/CREATE2 initcode.\"\"\"\n\n                        pass\n\n                    class Tx(ChecklistItem):\n                        \"\"\"Call from transaction initcode.\"\"\"\n\n                        pass\n\n                class SetCode(ChecklistItem):\n                    \"\"\"Set-code delegated address.\"\"\"\n\n                    pass\n\n            class Inputs(ChecklistItem):\n                \"\"\"Input tests.\"\"\"\n\n                class Valid(ChecklistItem):\n                    \"\"\"Valid inputs.\"\"\"\n\n                    class Boundary(ChecklistItem):\n                        \"\"\"Valid boundary values.\"\"\"\n\n                        pass\n\n                    class Crypto(ChecklistItem):\n                        \"\"\"Valid cryptographic inputs.\"\"\"\n\n                        pass\n\n                class AllZeros(ChecklistItem):\n                    \"\"\"All zeros input.\"\"\"\n\n                    pass\n\n                class MaxValues(ChecklistItem):\n                    \"\"\"Max values input.\"\"\"\n\n                    pass\n\n                class Invalid(ChecklistItem):\n                    \"\"\"Invalid inputs.\"\"\"\n\n                    class Crypto(ChecklistItem):\n                        \"\"\"Invalid cryptographic inputs.\"\"\"\n\n                        pass\n\n                    class Corrupted(ChecklistItem):\n                        \"\"\"Corrupted inputs.\"\"\"\n\n                        pass\n\n            class ValueTransfer(ChecklistItem):\n                \"\"\"Value transfer tests.\"\"\"\n\n                class Fee(ChecklistItem):\n                    \"\"\"Fee-based precompile tests.\"\"\"\n\n                    class Under(ChecklistItem):\n                        \"\"\"Under required fee.\"\"\"\n\n                        pass\n\n                    class Exact(ChecklistItem):\n                        \"\"\"Exact required fee.\"\"\"\n\n                        pass\n\n                    class Over(ChecklistItem):\n                        \"\"\"Over required fee.\"\"\"\n\n                        pass\n\n                class NoFee(ChecklistItem):\n                    \"\"\"No-fee precompile.\"\"\"\n\n                    pass\n\n            class OutOfBounds(ChecklistItem):\n                \"\"\"Out-of-bounds checks.\"\"\"\n\n                class Max(ChecklistItem):\n                    \"\"\"Max value for each input.\"\"\"\n\n                    pass\n\n                class MaxPlusOne(ChecklistItem):\n                    \"\"\"Max value + 1 for each input.\"\"\"\n\n                    pass\n\n            class InputLengths(ChecklistItem):\n                \"\"\"Input length tests.\"\"\"\n\n                class Zero(ChecklistItem):\n                    \"\"\"Zero-length calldata.\"\"\"\n\n                    pass\n\n                class Static(ChecklistItem):\n                    \"\"\"Static input length tests.\"\"\"\n\n                    class Correct(ChecklistItem):\n                        \"\"\"Correct static-length calldata.\"\"\"\n\n                        pass\n\n                    class TooShort(ChecklistItem):\n                        \"\"\"Calldata too short.\"\"\"\n\n                        pass\n\n                    class TooLong(ChecklistItem):\n                        \"\"\"Calldata too long.\"\"\"\n\n                        pass\n\n                class Dynamic(ChecklistItem):\n                    \"\"\"Dynamic input length tests.\"\"\"\n\n                    class Valid(ChecklistItem):\n                        \"\"\"Valid dynamic lengths.\"\"\"\n\n                        pass\n\n                    class TooShort(ChecklistItem):\n                        \"\"\"Calldata too short.\"\"\"\n\n                        pass\n\n                    class TooLong(ChecklistItem):\n                        \"\"\"Calldata too long.\"\"\"\n\n                        pass\n\n            class GasUsage(ChecklistItem):\n                \"\"\"Gas usage tests.\"\"\"\n\n                class Constant(ChecklistItem):\n                    \"\"\"Constant gas cost tests.\"\"\"\n\n                    class Exact(ChecklistItem):\n                        \"\"\"Exact gas consumption.\"\"\"\n\n                        pass\n\n                    class Oog(ChecklistItem):\n                        \"\"\"Out-of-gas error.\"\"\"\n\n                        pass\n\n                class Dynamic(ChecklistItem):\n                    \"\"\"Dynamic gas cost tests.\"\"\"\n\n                    class Exact(ChecklistItem):\n                        \"\"\"Exact gas consumption.\"\"\"\n\n                        pass\n\n                    class Oog(ChecklistItem):\n                        \"\"\"Out-of-gas error.\"\"\"\n\n                        pass\n\n            class ExcessiveGasUsage(ChecklistItem):\n                \"\"\"Excessive gas usage.\"\"\"\n\n                pass\n\n            class ForkTransition(ChecklistItem):\n                \"\"\"Fork transition tests.\"\"\"\n\n                class Before(ChecklistItem):\n                    \"\"\"Before fork activation tests.\"\"\"\n\n                    class InvalidInput(ChecklistItem):\n                        \"\"\"Invalid input call.\"\"\"\n\n                        pass\n\n                    class ZeroGas(ChecklistItem):\n                        \"\"\"Zero-gas call.\"\"\"\n\n                        pass\n\n                    class Cold(ChecklistItem):\n                        \"\"\"Cold precompile address.\"\"\"\n\n                        pass\n\n                class After(ChecklistItem):\n                    \"\"\"After fork activation tests.\"\"\"\n\n                    class Warm(ChecklistItem):\n                        \"\"\"Warm precompile address.\"\"\"\n\n                        pass\n\n    class RemovedPrecompile(ChecklistItem):\n        \"\"\"Removed precompile checklist items.\"\"\"\n\n        class Test(ChecklistItem):\n            \"\"\"Test vectors for removed precompile.\"\"\"\n\n            class ForkTransition(ChecklistItem):\n                \"\"\"Fork transition tests.\"\"\"\n\n                class Operational(ChecklistItem):\n                    \"\"\"Precompile operation on fork activation.\"\"\"\n\n                    pass\n\n                class Before(ChecklistItem):\n                    \"\"\"Before fork tests.\"\"\"\n\n                    class Warm(ChecklistItem):\n                        \"\"\"Warm precompile address.\"\"\"\n\n                        pass\n\n                class After(ChecklistItem):\n                    \"\"\"After fork tests.\"\"\"\n\n                    class Cold(ChecklistItem):\n                        \"\"\"Cold precompile address.\"\"\"\n\n                        pass\n\n    class SystemContract(ChecklistItem):\n        \"\"\"New system contract checklist items.\"\"\"\n\n        class Test(ChecklistItem):\n            \"\"\"Test vectors for new system contract.\"\"\"\n\n            class CallContexts(ChecklistItem):\n                \"\"\"Call context tests.\"\"\"\n\n                class Normal(ChecklistItem):\n                    \"\"\"CALL context.\"\"\"\n\n                    pass\n\n                class Delegate(ChecklistItem):\n                    \"\"\"DELEGATECALL context.\"\"\"\n\n                    pass\n\n                class Static(ChecklistItem):\n                    \"\"\"STATICCALL context.\"\"\"\n\n                    pass\n\n                class Callcode(ChecklistItem):\n                    \"\"\"CALLCODE context.\"\"\"\n\n                    pass\n\n                class TxEntry(ChecklistItem):\n                    \"\"\"Transaction entry-point.\"\"\"\n\n                    pass\n\n                class Initcode(ChecklistItem):\n                    \"\"\"Initcode call tests.\"\"\"\n\n                    class CREATE(ChecklistItem, override_name=\"CREATE\"):\n                        \"\"\"Call from CREATE/CREATE2 initcode.\"\"\"\n\n                        pass\n\n                    class Tx(ChecklistItem):\n                        \"\"\"Call from transaction initcode.\"\"\"\n\n                        pass\n\n                class SetCode(ChecklistItem):\n                    \"\"\"Set-code delegated address.\"\"\"\n\n                    pass\n\n            class Inputs(ChecklistItem):\n                \"\"\"Input tests.\"\"\"\n\n                class Valid(ChecklistItem):\n                    \"\"\"Valid inputs.\"\"\"\n\n                    pass\n\n                class Boundary(ChecklistItem):\n                    \"\"\"Boundary values.\"\"\"\n\n                    pass\n\n                class AllZeros(ChecklistItem):\n                    \"\"\"All zeros input.\"\"\"\n\n                    pass\n\n                class MaxValues(ChecklistItem):\n                    \"\"\"Max values input.\"\"\"\n\n                    pass\n\n                class Invalid(ChecklistItem):\n                    \"\"\"Invalid inputs.\"\"\"\n\n                    class Checks(ChecklistItem):\n                        \"\"\"Invalid validity checks.\"\"\"\n\n                        pass\n\n                    class Crypto(ChecklistItem):\n                        \"\"\"Invalid cryptographic inputs.\"\"\"\n\n                        pass\n\n                    class Corrupted(ChecklistItem):\n                        \"\"\"Corrupted inputs.\"\"\"\n\n                        pass\n\n            class ValueTransfer(ChecklistItem):\n                \"\"\"Value transfer tests.\"\"\"\n\n                class Fee(ChecklistItem):\n                    \"\"\"Fee-based system contract tests.\"\"\"\n\n                    class Under(ChecklistItem):\n                        \"\"\"Under required fee.\"\"\"\n\n                        pass\n\n                    class Exact(ChecklistItem):\n                        \"\"\"Exact required fee.\"\"\"\n\n                        pass\n\n                    class Over(ChecklistItem):\n                        \"\"\"Over required fee.\"\"\"\n\n                        pass\n\n                class NoFee(ChecklistItem):\n                    \"\"\"No-fee system contract.\"\"\"\n\n                    pass\n\n            class OutOfBounds(ChecklistItem):\n                \"\"\"Out-of-bounds checks.\"\"\"\n\n                class Max(ChecklistItem):\n                    \"\"\"Max value for each input.\"\"\"\n\n                    pass\n\n                class MaxPlusOne(ChecklistItem):\n                    \"\"\"Max value + 1 for each input.\"\"\"\n\n                    pass\n\n            class InputLengths(ChecklistItem):\n                \"\"\"Input length tests.\"\"\"\n\n                class Zero(ChecklistItem):\n                    \"\"\"Zero-length calldata.\"\"\"\n\n                    pass\n\n                class Static(ChecklistItem):\n                    \"\"\"Static input length tests.\"\"\"\n\n                    class Correct(ChecklistItem):\n                        \"\"\"Correct static-length calldata.\"\"\"\n\n                        pass\n\n                    class TooShort(ChecklistItem):\n                        \"\"\"Calldata too short.\"\"\"\n\n                        pass\n\n                    class TooLong(ChecklistItem):\n                        \"\"\"Calldata too long.\"\"\"\n\n                        pass\n\n                class Dynamic(ChecklistItem):\n                    \"\"\"Dynamic input length tests.\"\"\"\n\n                    class Valid(ChecklistItem):\n                        \"\"\"Valid dynamic lengths.\"\"\"\n\n                        pass\n\n                    class TooShort(ChecklistItem):\n                        \"\"\"Calldata too short.\"\"\"\n\n                        pass\n\n                    class TooLong(ChecklistItem):\n                        \"\"\"Calldata too long.\"\"\"\n\n                        pass\n\n            class GasUsage(ChecklistItem):\n                \"\"\"Gas usage tests.\"\"\"\n\n                class Constant(ChecklistItem):\n                    \"\"\"Constant gas cost tests.\"\"\"\n\n                    class Exact(ChecklistItem):\n                        \"\"\"Exact gas consumption.\"\"\"\n\n                        pass\n\n                    class Oog(ChecklistItem):\n                        \"\"\"Out-of-gas error.\"\"\"\n\n                        pass\n\n                class Dynamic(ChecklistItem):\n                    \"\"\"Dynamic gas cost tests.\"\"\"\n\n                    class Exact(ChecklistItem):\n                        \"\"\"Exact gas consumption.\"\"\"\n\n                        pass\n\n                    class Oog(ChecklistItem):\n                        \"\"\"Out-of-gas error.\"\"\"\n\n                        pass\n\n            class ExcessiveGas(ChecklistItem):\n                \"\"\"Excessive gas tests.\"\"\"\n\n                class BlockGas(ChecklistItem):\n                    \"\"\"Exhaust block gas limit.\"\"\"\n\n                    pass\n\n                class SystemCall(ChecklistItem):\n                    \"\"\"Excessive gas on system call.\"\"\"\n\n                    pass\n\n            class Deployment(ChecklistItem):\n                \"\"\"Deployment tests.\"\"\"\n\n                class Missing(ChecklistItem):\n                    \"\"\"Missing system contract.\"\"\"\n\n                    pass\n\n                class Address(ChecklistItem):\n                    \"\"\"Deployment address verification.\"\"\"\n\n                    pass\n\n            class ContractVariations(ChecklistItem):\n                \"\"\"Contract variation tests.\"\"\"\n\n                class Networks(ChecklistItem):\n                    \"\"\"Different network variations.\"\"\"\n\n                    pass\n\n            class ContractSubstitution(ChecklistItem):\n                \"\"\"Contract substitution tests.\"\"\"\n\n                class ReturnLengths(ChecklistItem):\n                    \"\"\"Modified return value lengths.\"\"\"\n\n                    pass\n\n                class Logs(ChecklistItem):\n                    \"\"\"Modified logs.\"\"\"\n\n                    pass\n\n                class RaisesException(ChecklistItem, override_name=\"exception\"):\n                    \"\"\"Modified to cause exception.\"\"\"\n\n                    pass\n\n                class GasLimitSuccess(ChecklistItem):\n                    \"\"\"30M gas consumption success.\"\"\"\n\n                    pass\n\n                class GasLimitFailure(ChecklistItem):\n                    \"\"\"30M+1 gas consumption failure.\"\"\"\n\n                    pass\n\n            class ForkTransition(ChecklistItem):\n                \"\"\"Fork transition tests.\"\"\"\n\n                class CallBeforeFork(ChecklistItem):\n                    \"\"\"Call system contract before fork.\"\"\"\n\n                    pass\n\n    class TransactionType(ChecklistItem):\n        \"\"\"New transaction type checklist items.\"\"\"\n\n        class Test(ChecklistItem):\n            \"\"\"Test vectors for new transaction type.\"\"\"\n\n            class IntrinsicValidity(ChecklistItem):\n                \"\"\"Intrinsic validity tests.\"\"\"\n\n                class GasLimit(ChecklistItem):\n                    \"\"\"Gas limit tests.\"\"\"\n\n                    class Exact(ChecklistItem):\n                        \"\"\"Exact intrinsic gas.\"\"\"\n\n                        pass\n\n                    class Insufficient(ChecklistItem):\n                        \"\"\"Insufficient gas.\"\"\"\n\n                        pass\n\n                class MaxFee(ChecklistItem):\n                    \"\"\"Max fee tests.\"\"\"\n\n                    class MaxPriorityLowerThanMaxFee(ChecklistItem):\n                        \"\"\"Max priority < max fee.\"\"\"\n\n                        pass\n\n                    class MaxPriorityEqualToMaxFee(ChecklistItem):\n                        \"\"\"Max priority == max fee.\"\"\"\n\n                        pass\n\n                    class BaseLower(ChecklistItem):\n                        \"\"\"Max fee < base fee.\"\"\"\n\n                        pass\n\n                    class BaseEqual(ChecklistItem):\n                        \"\"\"Max fee == base fee.\"\"\"\n\n                        pass\n\n                class ChainId(ChecklistItem):\n                    \"\"\"Chain ID validation.\"\"\"\n\n                    pass\n\n                class NonceMinusOne(ChecklistItem):\n                    \"\"\"Nonce == sender.nonce - 1.\"\"\"\n\n                    pass\n\n                class NoncePlusOne(ChecklistItem):\n                    \"\"\"Nonce == sender.nonce + 1.\"\"\"\n\n                    pass\n\n                class NonceExact(ChecklistItem):\n                    \"\"\"Nonce == sender.nonce.\"\"\"\n\n                    pass\n\n                class To(ChecklistItem):\n                    \"\"\"To address validation.\"\"\"\n\n                    pass\n\n                class ValueNonZeroInsufficientBalance(ChecklistItem):\n                    \"\"\"Non-zero value with insufficient balance.\"\"\"\n\n                    pass\n\n                class ValueNonZeroSufficientBalance(ChecklistItem):\n                    \"\"\"Non-zero value with sufficient balance.\"\"\"\n\n                    pass\n\n                class ValueZeroInsufficientBalance(ChecklistItem):\n                    \"\"\"Zero value with insufficient balance.\"\"\"\n\n                    pass\n\n                class ValueZeroSufficientBalance(ChecklistItem):\n                    \"\"\"Zero value with sufficient balance.\"\"\"\n\n                    pass\n\n                class DataFloorAboveIntrinsicGasCost(ChecklistItem):\n                    \"\"\"Data floor cost above intrinsic gas.\"\"\"\n\n                    pass\n\n            class Signature(ChecklistItem):\n                \"\"\"Signature tests.\"\"\"\n\n                class Invalid(ChecklistItem):\n                    \"\"\"Invalid signature tests.\"\"\"\n\n                    class FieldOutsideCurve(ChecklistItem):\n                        \"\"\"Field outside curve.\"\"\"\n\n                        pass\n\n                    class V(ChecklistItem):\n                        \"\"\"Invalid V values.\"\"\"\n\n                        class Two(ChecklistItem, override_name=\"2\"):\n                            \"\"\"V = 2.\"\"\"\n\n                            pass\n\n                        class TwentySeven(ChecklistItem, override_name=\"27\"):\n                            \"\"\"V = 27.\"\"\"\n\n                            pass\n\n                        class TwentyEight(ChecklistItem, override_name=\"28\"):\n                            \"\"\"V = 28.\"\"\"\n\n                            pass\n\n                        class ThirtyFive(ChecklistItem, override_name=\"35\"):\n                            \"\"\"V = 35.\"\"\"\n\n                            pass\n\n                        class ThirtySix(ChecklistItem, override_name=\"36\"):\n                            \"\"\"V = 36.\"\"\"\n\n                            pass\n\n                        class Max(ChecklistItem):\n                            \"\"\"V = 2**8-1.\"\"\"\n\n                            pass\n\n                    class R(ChecklistItem):\n                        \"\"\"Invalid R values.\"\"\"\n\n                        class Zero(ChecklistItem, override_name=\"0\"):\n                            \"\"\"R = 0.\"\"\"\n\n                            pass\n\n                        class Secp256k1nMinusOne(ChecklistItem):\n                            \"\"\"R = SECP256K1N-1.\"\"\"\n\n                            pass\n\n                        class Secp256k1n(ChecklistItem):\n                            \"\"\"R = SECP256K1N.\"\"\"\n\n                            pass\n\n                        class Secp256k1nPlusOne(ChecklistItem):\n                            \"\"\"R = SECP256K1N+1.\"\"\"\n\n                            pass\n\n                        class MaxMinusOne(ChecklistItem):\n                            \"\"\"R = 2**256-1.\"\"\"\n\n                            pass\n\n                        class Max(ChecklistItem):\n                            \"\"\"R = 2**256.\"\"\"\n\n                            pass\n\n                    class S(ChecklistItem):\n                        \"\"\"Invalid S values.\"\"\"\n\n                        class Zero(ChecklistItem, override_name=\"0\"):\n                            \"\"\"S = 0.\"\"\"\n\n                            pass\n\n                        class Secp256k1nHalfMinusOne(ChecklistItem):\n                            \"\"\"S = SECP256K1N//2-1.\"\"\"\n\n                            pass\n\n                        class Secp256k1nHalf(ChecklistItem):\n                            \"\"\"S = SECP256K1N//2.\"\"\"\n\n                            pass\n\n                        class Secp256k1nHalfPlusOne(ChecklistItem):\n                            \"\"\"S = SECP256K1N//2+1.\"\"\"\n\n                            pass\n\n                        class Secp256k1nMinusOne(ChecklistItem):\n                            \"\"\"S = SECP256K1N-1.\"\"\"\n\n                            pass\n\n                        class Secp256k1n(ChecklistItem):\n                            \"\"\"S = SECP256K1N.\"\"\"\n\n                            pass\n\n                        class Secp256k1nPlusOne(ChecklistItem):\n                            \"\"\"S = SECP256K1N+1.\"\"\"\n\n                            pass\n\n                        class MaxMinusOne(ChecklistItem):\n                            \"\"\"S = 2**256-1.\"\"\"\n\n                            pass\n\n                        class Max(ChecklistItem):\n                            \"\"\"S = 2**256.\"\"\"\n\n                            pass\n\n                        class Complement(ChecklistItem):\n                            \"\"\"S = SECP256K1N - S.\"\"\"\n\n                            pass\n\n            class TxScopedAttributes(ChecklistItem):\n                \"\"\"Transaction-scoped attributes.\"\"\"\n\n                class Read(ChecklistItem):\n                    \"\"\"Read attributes from EVM.\"\"\"\n\n                    pass\n\n                class OlderTxTypes(ChecklistItem):\n                    \"\"\"Attributes on older tx types.\"\"\"\n\n                    pass\n\n                class Persistent(ChecklistItem):\n                    \"\"\"Persistent values.\"\"\"\n\n                    class Throughout(ChecklistItem):\n                        \"\"\"Persist throughout transaction.\"\"\"\n\n                        pass\n\n                    class Reset(ChecklistItem):\n                        \"\"\"Reset on subsequent transactions.\"\"\"\n\n                        pass\n\n            class Encoding(ChecklistItem):\n                \"\"\"Encoding tests.\"\"\"\n\n                class FieldSizes(ChecklistItem):\n                    \"\"\"Field size tests.\"\"\"\n\n                    class LeadingZero(ChecklistItem):\n                        \"\"\"Add leading zero byte.\"\"\"\n\n                        pass\n\n                    class RemoveByte(ChecklistItem):\n                        \"\"\"Remove single byte.\"\"\"\n\n                        pass\n\n                class ListField(ChecklistItem):\n                    \"\"\"List field tests.\"\"\"\n\n                    class Zero(ChecklistItem):\n                        \"\"\"Zero-element list.\"\"\"\n\n                        pass\n\n                    class Max(ChecklistItem):\n                        \"\"\"Max count list.\"\"\"\n\n                        pass\n\n                    class MaxPlusOne(ChecklistItem):\n                        \"\"\"Max count plus one.\"\"\"\n\n                        pass\n\n                class MissingFields(ChecklistItem):\n                    \"\"\"Missing fields.\"\"\"\n\n                    pass\n\n                class ExtraFields(ChecklistItem):\n                    \"\"\"Extra fields.\"\"\"\n\n                    pass\n\n                class Truncated(ChecklistItem):\n                    \"\"\"Truncated serialization.\"\"\"\n\n                    pass\n\n                class ExtraBytes(ChecklistItem):\n                    \"\"\"Extra bytes in serialization.\"\"\"\n\n                    pass\n\n                class NewTypes(ChecklistItem):\n                    \"\"\"New type encoding tests.\"\"\"\n\n                    class IncorrectEncoding(ChecklistItem):\n                        \"\"\"Incorrect encoding.\"\"\"\n\n                        pass\n\n            class OutOfBounds(ChecklistItem):\n                \"\"\"Out-of-bounds checks.\"\"\"\n\n                class Max(ChecklistItem):\n                    \"\"\"Max value for each field.\"\"\"\n\n                    pass\n\n                class MaxPlusOne(ChecklistItem):\n                    \"\"\"Max value + 1 for each field.\"\"\"\n\n                    pass\n\n            class ContractCreation(ChecklistItem):\n                \"\"\"Contract creation with new tx type.\"\"\"\n\n                pass\n\n            class SenderAccount(ChecklistItem):\n                \"\"\"Sender account modifications.\"\"\"\n\n                class Nonce(ChecklistItem):\n                    \"\"\"Nonce increment.\"\"\"\n\n                    pass\n\n                class Balance(ChecklistItem):\n                    \"\"\"Balance reduction.\"\"\"\n\n                    pass\n\n            class BlockInteractions(ChecklistItem):\n                \"\"\"Block level interactions.\"\"\"\n\n                class SingleTx(ChecklistItem):\n                    \"\"\"Single transaction in block.\"\"\"\n\n                    class Invalid(ChecklistItem):\n                        \"\"\"Invalid gas limit.\"\"\"\n\n                        pass\n\n                    class Valid(ChecklistItem):\n                        \"\"\"Valid gas limit.\"\"\"\n\n                        pass\n\n                class LastTx(ChecklistItem):\n                    \"\"\"Last transaction in block.\"\"\"\n\n                    class Valid(ChecklistItem):\n                        \"\"\"Valid cumulative gas.\"\"\"\n\n                        pass\n\n                    class Invalid(ChecklistItem):\n                        \"\"\"Invalid cumulative gas.\"\"\"\n\n                        pass\n\n                class Eip7825(ChecklistItem):\n                    \"\"\"EIP-7825 gas limit tests.\"\"\"\n\n                    class Invalid(ChecklistItem):\n                        \"\"\"Exceeds EIP-7825 limit.\"\"\"\n\n                        pass\n\n                    class Valid(ChecklistItem):\n                        \"\"\"Within EIP-7825 limit.\"\"\"\n\n                        pass\n\n                class MixedTxs(ChecklistItem):\n                    \"\"\"Mixed transaction types.\"\"\"\n\n                    pass\n\n            class ForkTransition(ChecklistItem):\n                \"\"\"Fork transition tests.\"\"\"\n\n                class Before(ChecklistItem):\n                    \"\"\"Before fork activation.\"\"\"\n\n                    pass\n\n    class BlockHeaderField(ChecklistItem):\n        \"\"\"New block header field checklist items.\"\"\"\n\n        class Test(ChecklistItem):\n            \"\"\"Test vectors for new block header field.\"\"\"\n\n            class Genesis(ChecklistItem):\n                \"\"\"Genesis value test.\"\"\"\n\n                pass\n\n            class ValueBehavior(ChecklistItem):\n                \"\"\"Value behavior tests.\"\"\"\n\n                class Accept(ChecklistItem):\n                    \"\"\"Block accepted with correct value.\"\"\"\n\n                    pass\n\n                class Reject(ChecklistItem):\n                    \"\"\"Block rejected with incorrect value.\"\"\"\n\n                    pass\n\n            class ForkTransition(ChecklistItem):\n                \"\"\"Fork transition tests.\"\"\"\n\n                class Initial(ChecklistItem):\n                    \"\"\"Initial value at fork.\"\"\"\n\n                    pass\n\n                class Before(ChecklistItem):\n                    \"\"\"Before fork activation.\"\"\"\n\n                    pass\n\n                class After(ChecklistItem):\n                    \"\"\"After fork activation.\"\"\"\n\n                    pass\n\n    class BlockBodyField(ChecklistItem):\n        \"\"\"New block body field checklist items.\"\"\"\n\n        class Test(ChecklistItem):\n            \"\"\"Test vectors for new block body field.\"\"\"\n\n            class ValueBehavior(ChecklistItem):\n                \"\"\"Value behavior tests.\"\"\"\n\n                class Accept(ChecklistItem):\n                    \"\"\"Block accepted with correct value.\"\"\"\n\n                    pass\n\n                class Reject(ChecklistItem):\n                    \"\"\"Block rejected with incorrect value.\"\"\"\n\n                    pass\n\n            class ForkTransition(ChecklistItem):\n                \"\"\"Fork transition tests.\"\"\"\n\n                class Before(ChecklistItem):\n                    \"\"\"Before fork activation.\"\"\"\n\n                    pass\n\n                class After(ChecklistItem):\n                    \"\"\"After fork activation.\"\"\"\n\n                    pass\n\n    class GasCostChanges(ChecklistItem):\n        \"\"\"Gas cost changes checklist items.\"\"\"\n\n        class Test(ChecklistItem):\n            \"\"\"Test vectors for gas cost changes.\"\"\"\n\n            class GasUpdatesMeasurement(ChecklistItem):\n                \"\"\"Measure updated gas costs.\"\"\"\n\n                pass\n\n            class OutOfGas(ChecklistItem):\n                \"\"\"Out-of-gas with new prices.\"\"\"\n\n                pass\n\n            class ForkTransition(ChecklistItem):\n                \"\"\"Fork transition tests.\"\"\"\n\n                class Before(ChecklistItem):\n                    \"\"\"Before fork activation.\"\"\"\n\n                    pass\n\n                class After(ChecklistItem):\n                    \"\"\"After fork activation.\"\"\"\n\n                    pass\n\n    class GasRefundsChanges(ChecklistItem):\n        \"\"\"Gas refunds changes checklist items.\"\"\"\n\n        class Test(ChecklistItem):\n            \"\"\"Test vectors for gas refunds changes.\"\"\"\n\n            class RefundCalculation(ChecklistItem):\n                \"\"\"Refund calculation tests.\"\"\"\n\n                class Over(ChecklistItem):\n                    \"\"\"Refund over limit.\"\"\"\n\n                    pass\n\n                class Exact(ChecklistItem):\n                    \"\"\"Refund at limit.\"\"\"\n\n                    pass\n\n                class Under(ChecklistItem):\n                    \"\"\"Refund under limit.\"\"\"\n\n                    pass\n\n            class ExceptionalAbort(ChecklistItem):\n                \"\"\"Exceptional abort tests.\"\"\"\n\n                class Revertable(ChecklistItem):\n                    \"\"\"Revertable operations.\"\"\"\n\n                    class Revert(ChecklistItem):\n                        \"\"\"REVERT.\"\"\"\n\n                        pass\n\n                    class OutOfGas(ChecklistItem):\n                        \"\"\"Out-of-gas.\"\"\"\n\n                        pass\n\n                    class InvalidOpcode(ChecklistItem):\n                        \"\"\"Invalid opcode.\"\"\"\n\n                        pass\n\n                    class UpperRevert(ChecklistItem):\n                        \"\"\"Upper frame REVERT.\"\"\"\n\n                        pass\n\n                class NonRevertable(ChecklistItem):\n                    \"\"\"Non-revertable operations.\"\"\"\n\n                    class Revert(ChecklistItem):\n                        \"\"\"REVERT at top frame.\"\"\"\n\n                        pass\n\n                    class OutOfGas(ChecklistItem):\n                        \"\"\"Out-of-gas at top frame.\"\"\"\n\n                        pass\n\n                    class InvalidOpcode(ChecklistItem):\n                        \"\"\"Invalid opcode at top frame.\"\"\"\n\n                        pass\n\n            class CrossFunctional(ChecklistItem):\n                \"\"\"Cross-functional tests.\"\"\"\n\n                class CalldataCost(ChecklistItem):\n                    \"\"\"Calldata cost refunds.\"\"\"\n\n                    pass\n\n    class BlobCountChanges(ChecklistItem):\n        \"\"\"Blob count changes checklist items.\"\"\"\n\n        class Test(ChecklistItem):\n            \"\"\"Test vectors for blob count changes.\"\"\"\n\n            class Eip4844BlobsChanges(ChecklistItem):\n                \"\"\"EIP-4844 blobs test updates.\"\"\"\n\n                pass\n\n    class ExecutionLayerRequest(ChecklistItem):\n        \"\"\"New execution layer request checklist items.\"\"\"\n\n        class Test(ChecklistItem):\n            \"\"\"Test vectors for new execution layer request.\"\"\"\n\n            class CrossRequestType(ChecklistItem):\n                \"\"\"Cross-request-type interaction.\"\"\"\n\n                class Update(ChecklistItem):\n                    \"\"\"Update cross-request tests.\"\"\"\n\n                    pass\n\n    class NewTransactionValidityConstraint(ChecklistItem):\n        \"\"\"New transaction validity constraint checklist items.\"\"\"\n\n        class Test(ChecklistItem):\n            \"\"\"Test vectors for the new validity constraint.\"\"\"\n\n            class ForkTransition(ChecklistItem):\n                \"\"\"\n                Tests for the new transaction validity constraint on fork\n                boundary.\n                \"\"\"\n\n                class AcceptedBeforeFork(ChecklistItem):\n                    \"\"\"\n                    Verify that a block before the activation fork is accepted\n                    even when the new constraint is not met.\n                    \"\"\"\n\n                    pass\n\n                class AcceptedAfterFork(ChecklistItem):\n                    \"\"\"\n                    Verify that a block after the activation fork is accepted\n                    when the new validity constraint is met.\n                    \"\"\"\n\n                    pass\n\n                class RejectedAfterFork(ChecklistItem):\n                    \"\"\"\n                    Verify that a block after the activation fork is rejected\n                    when the new validity constraint is not met.\n                    \"\"\"\n\n                    pass\n\n    class ModifiedTransactionValidityConstraint(ChecklistItem):\n        \"\"\"Modified transaction validity constraint checklist items.\"\"\"\n\n        class Test(ChecklistItem):\n            \"\"\"Test vectors for the modified validity constraint.\"\"\"\n\n            class ForkTransition(ChecklistItem):\n                \"\"\"\n                Tests for the modified transaction validity constraint on fork\n                boundary.\n                \"\"\"\n\n                class AcceptedBeforeFork(ChecklistItem):\n                    \"\"\"\n                    Verify that a block before the activation fork is accepted\n                    when the existing constraint is met and, ideally, the new\n                    constraint is not met.\n                    \"\"\"\n\n                    pass\n\n                class RejectedBeforeFork(ChecklistItem):\n                    \"\"\"\n                    Verify that a block before the activation fork is rejected\n                    when the existing constraint is not met and, ideally, the\n                    new constraint is met.\n                    \"\"\"\n\n                    pass\n\n                class AcceptedAfterFork(ChecklistItem):\n                    \"\"\"\n                    Verify that a block after the activation fork is accepted\n                    when the new validity constraint is met.\n                    \"\"\"\n\n                    pass\n\n                class RejectedAfterFork(ChecklistItem):\n                    \"\"\"\n                    Verify that a block after the activation fork is rejected\n                    when the new validity constraint is not met.\n                    \"\"\"\n\n                    pass\n\n    class BlockLevelConstraint(ChecklistItem):\n        \"\"\"Block-level validation constraint checklist items.\"\"\"\n\n        class Test(ChecklistItem):\n            \"\"\"Test vectors for block-level constraint.\"\"\"\n\n            class Boundary(ChecklistItem):\n                \"\"\"Boundary condition tests.\"\"\"\n\n                class Under(ChecklistItem):\n                    \"\"\"\n                    Verify that a block with constraint value at limit minus\n                    one is accepted.\n                    \"\"\"\n\n                    pass\n\n                class Exact(ChecklistItem):\n                    \"\"\"\n                    Verify that a block with constraint value exactly at\n                    limit is accepted.\n                    \"\"\"\n\n                    pass\n\n                class Over(ChecklistItem):\n                    \"\"\"\n                    Verify that a block with constraint value at limit plus\n                    one is rejected.\n                    \"\"\"\n\n                    pass\n\n            class Content(ChecklistItem):\n                \"\"\"Content variation tests.\"\"\"\n\n                class TransactionTypes(ChecklistItem):\n                    \"\"\"\n                    Verify constraint behavior with all supported\n                    transaction types.\n                    \"\"\"\n\n                    pass\n\n                class Logs(ChecklistItem):\n                    \"\"\"\n                    Verify constraint behavior when transactions emit\n                    logs.\n                    \"\"\"\n\n                    pass\n\n                class Receipts(ChecklistItem):\n                    \"\"\"\n                    Verify constraint behavior with varying receipt\n                    sizes.\n                    \"\"\"\n\n                    pass\n\n                class Withdrawals(ChecklistItem):\n                    \"\"\"\n                    Verify constraint behavior with non-empty withdrawals\n                    list.\n                    \"\"\"\n\n                    pass\n\n            class ForkTransition(ChecklistItem):\n                \"\"\"Fork transition tests.\"\"\"\n\n                class AcceptedBeforeFork(ChecklistItem):\n                    \"\"\"\n                    Verify that a block before the activation fork is\n                    accepted even when the new constraint is not met.\n                    \"\"\"\n\n                    pass\n\n                class AcceptedAfterFork(ChecklistItem):\n                    \"\"\"\n                    Verify that a block after the activation fork is\n                    accepted when the new constraint is met.\n                    \"\"\"\n\n                    pass\n\n                class RejectedAfterFork(ChecklistItem):\n                    \"\"\"\n                    Verify that a block after the activation fork is\n                    rejected when the new constraint is not met.\n                    \"\"\"\n\n                    pass\n"
  },
  {
    "path": "src/ethereum_test_checklists/eip_checklist.pyi",
    "content": "\"\"\"\nType stubs for EIP checklist - auto-generated.\n\nDO NOT EDIT MANUALLY - This file is generated by running\n`uv run generate_checklist_stubs`\n\"\"\"\n\nfrom typing import Any, Callable, TypeVar, overload\n\nimport pytest\n\nF = TypeVar(\"F\", bound=Callable[..., Any])\n\nclass _CallableChecklistItem:\n    \"\"\"Base type for all callable checklist items.\"\"\"\n\n    @overload\n    def __call__(self, func: F) -> F: ...\n    @overload\n    def __call__(self, *, eip: Any = ..., **kwargs: Any) -> pytest.MarkDecorator: ...\n    def __str__(self) -> str: ...\n\nclass EIPChecklist:\n    class BlobCountChanges(_CallableChecklistItem):\n        class Test(_CallableChecklistItem):\n            Eip4844BlobsChanges: _CallableChecklistItem\n\n    class BlockBodyField(_CallableChecklistItem):\n        class Test(_CallableChecklistItem):\n            class ForkTransition(_CallableChecklistItem):\n                After: _CallableChecklistItem\n                Before: _CallableChecklistItem\n\n            class ValueBehavior(_CallableChecklistItem):\n                Accept: _CallableChecklistItem\n                Reject: _CallableChecklistItem\n\n    class BlockHeaderField(_CallableChecklistItem):\n        class Test(_CallableChecklistItem):\n            Genesis: _CallableChecklistItem\n\n            class ForkTransition(_CallableChecklistItem):\n                After: _CallableChecklistItem\n                Before: _CallableChecklistItem\n                Initial: _CallableChecklistItem\n\n            class ValueBehavior(_CallableChecklistItem):\n                Accept: _CallableChecklistItem\n                Reject: _CallableChecklistItem\n\n    class BlockLevelConstraint(_CallableChecklistItem):\n        class Test(_CallableChecklistItem):\n            class Boundary(_CallableChecklistItem):\n                Exact: _CallableChecklistItem\n                Over: _CallableChecklistItem\n                Under: _CallableChecklistItem\n\n            class Content(_CallableChecklistItem):\n                Logs: _CallableChecklistItem\n                Receipts: _CallableChecklistItem\n                TransactionTypes: _CallableChecklistItem\n                Withdrawals: _CallableChecklistItem\n\n            class ForkTransition(_CallableChecklistItem):\n                AcceptedAfterFork: _CallableChecklistItem\n                AcceptedBeforeFork: _CallableChecklistItem\n                RejectedAfterFork: _CallableChecklistItem\n\n    class ExecutionLayerRequest(_CallableChecklistItem):\n        class Test(_CallableChecklistItem):\n            class CrossRequestType(_CallableChecklistItem):\n                Update: _CallableChecklistItem\n\n    class GasCostChanges(_CallableChecklistItem):\n        class Test(_CallableChecklistItem):\n            GasUpdatesMeasurement: _CallableChecklistItem\n            OutOfGas: _CallableChecklistItem\n\n            class ForkTransition(_CallableChecklistItem):\n                After: _CallableChecklistItem\n                Before: _CallableChecklistItem\n\n    class GasRefundsChanges(_CallableChecklistItem):\n        class Test(_CallableChecklistItem):\n            class CrossFunctional(_CallableChecklistItem):\n                CalldataCost: _CallableChecklistItem\n\n            class ExceptionalAbort(_CallableChecklistItem):\n                class NonRevertable(_CallableChecklistItem):\n                    InvalidOpcode: _CallableChecklistItem\n                    OutOfGas: _CallableChecklistItem\n                    Revert: _CallableChecklistItem\n\n                class Revertable(_CallableChecklistItem):\n                    InvalidOpcode: _CallableChecklistItem\n                    OutOfGas: _CallableChecklistItem\n                    Revert: _CallableChecklistItem\n                    UpperRevert: _CallableChecklistItem\n\n            class RefundCalculation(_CallableChecklistItem):\n                Exact: _CallableChecklistItem\n                Over: _CallableChecklistItem\n                Under: _CallableChecklistItem\n\n    class General(_CallableChecklistItem):\n        class CodeCoverage(_CallableChecklistItem):\n            Eels: _CallableChecklistItem\n            SecondClient: _CallableChecklistItem\n            TestCoverage: _CallableChecklistItem\n\n    class ModifiedTransactionValidityConstraint(_CallableChecklistItem):\n        class Test(_CallableChecklistItem):\n            class ForkTransition(_CallableChecklistItem):\n                AcceptedAfterFork: _CallableChecklistItem\n                AcceptedBeforeFork: _CallableChecklistItem\n                RejectedAfterFork: _CallableChecklistItem\n                RejectedBeforeFork: _CallableChecklistItem\n\n    class NewTransactionValidityConstraint(_CallableChecklistItem):\n        class Test(_CallableChecklistItem):\n            class ForkTransition(_CallableChecklistItem):\n                AcceptedAfterFork: _CallableChecklistItem\n                AcceptedBeforeFork: _CallableChecklistItem\n                RejectedAfterFork: _CallableChecklistItem\n\n    class Opcode(_CallableChecklistItem):\n        class Test(_CallableChecklistItem):\n            ExceptionalAbort: _CallableChecklistItem\n            StackOverflow: _CallableChecklistItem\n            StackUnderflow: _CallableChecklistItem\n\n            class ContractCreation(_CallableChecklistItem):\n                Address: _CallableChecklistItem\n                Recursive: _CallableChecklistItem\n\n                class Failure(_CallableChecklistItem):\n                    Collision: _CallableChecklistItem\n                    InsufficientValue: _CallableChecklistItem\n                    Oog: _CallableChecklistItem\n\n            class DataPortion(_CallableChecklistItem):\n                AllZeros: _CallableChecklistItem\n                Jump: _CallableChecklistItem\n                MaxValue: _CallableChecklistItem\n\n            class ExecutionContext(_CallableChecklistItem):\n                BlockContext: _CallableChecklistItem\n                Call: _CallableChecklistItem\n                Callcode: _CallableChecklistItem\n                SetCode: _CallableChecklistItem\n                TxContext: _CallableChecklistItem\n\n                class Delegatecall(_CallableChecklistItem):\n                    Balance: _CallableChecklistItem\n                    Code: _CallableChecklistItem\n                    Storage: _CallableChecklistItem\n\n                class Initcode(_CallableChecklistItem):\n                    Reentry: _CallableChecklistItem\n\n                    class Behavior(_CallableChecklistItem):\n                        Opcode: _CallableChecklistItem\n                        Tx: _CallableChecklistItem\n\n                class Staticcall(_CallableChecklistItem):\n                    BanCheck: _CallableChecklistItem\n                    BanNoModification: _CallableChecklistItem\n                    SubCalls: _CallableChecklistItem\n\n            class ForkTransition(_CallableChecklistItem):\n                At: _CallableChecklistItem\n                Invalid: _CallableChecklistItem\n\n            class GasUsage(_CallableChecklistItem):\n                ExtraGas: _CallableChecklistItem\n                MemoryExpansion: _CallableChecklistItem\n                Normal: _CallableChecklistItem\n                OutOfGasExecution: _CallableChecklistItem\n                OutOfGasMemory: _CallableChecklistItem\n\n                class OrderOfOperations(_CallableChecklistItem):\n                    Exact: _CallableChecklistItem\n                    Oog: _CallableChecklistItem\n\n            class MemExp(_CallableChecklistItem):\n                SingleByte: _CallableChecklistItem\n                SixtyFourBytes: _CallableChecklistItem\n                ThirtyOneBytes: _CallableChecklistItem\n                ThirtyThreeBytes: _CallableChecklistItem\n                ThirtyTwoBytes: _CallableChecklistItem\n                TwoSixtyFourBytes: _CallableChecklistItem\n                TwoSixtyFourMinusOneBytes: _CallableChecklistItem\n                TwoThirtyTwoBytes: _CallableChecklistItem\n                TwoThirtyTwoMinusOneBytes: _CallableChecklistItem\n                TwoTwoFiftySixMinusOneBytes: _CallableChecklistItem\n                ZeroBytesMaxOffset: _CallableChecklistItem\n                ZeroBytesZeroOffset: _CallableChecklistItem\n\n            class OutOfBounds(_CallableChecklistItem):\n                class Verify(_CallableChecklistItem):\n                    Max: _CallableChecklistItem\n                    MaxPlusOne: _CallableChecklistItem\n\n            class ReturnData(_CallableChecklistItem):\n                class Buffer(_CallableChecklistItem):\n                    Current: _CallableChecklistItem\n                    Parent: _CallableChecklistItem\n\n            class StackComplexOperations(_CallableChecklistItem):\n                class DataPortionVariables(_CallableChecklistItem):\n                    Bottom: _CallableChecklistItem\n                    Middle: _CallableChecklistItem\n                    Top: _CallableChecklistItem\n\n                class StackHeights(_CallableChecklistItem):\n                    Even: _CallableChecklistItem\n                    Odd: _CallableChecklistItem\n                    Zero: _CallableChecklistItem\n\n            class Terminating(_CallableChecklistItem):\n                class Rollback(_CallableChecklistItem):\n                    Balance: _CallableChecklistItem\n                    Contracts: _CallableChecklistItem\n                    Logs: _CallableChecklistItem\n                    Nonce: _CallableChecklistItem\n                    Storage: _CallableChecklistItem\n\n                class Scenarios(_CallableChecklistItem):\n                    Initcode: _CallableChecklistItem\n                    SubLevel: _CallableChecklistItem\n                    TopLevel: _CallableChecklistItem\n\n    class Precompile(_CallableChecklistItem):\n        class Test(_CallableChecklistItem):\n            ExcessiveGasUsage: _CallableChecklistItem\n\n            class CallContexts(_CallableChecklistItem):\n                Callcode: _CallableChecklistItem\n                Delegate: _CallableChecklistItem\n                Normal: _CallableChecklistItem\n                SetCode: _CallableChecklistItem\n                Static: _CallableChecklistItem\n                TxEntry: _CallableChecklistItem\n\n                class Initcode(_CallableChecklistItem):\n                    CREATE: _CallableChecklistItem\n                    Tx: _CallableChecklistItem\n\n            class ForkTransition(_CallableChecklistItem):\n                class After(_CallableChecklistItem):\n                    Warm: _CallableChecklistItem\n\n                class Before(_CallableChecklistItem):\n                    Cold: _CallableChecklistItem\n                    InvalidInput: _CallableChecklistItem\n                    ZeroGas: _CallableChecklistItem\n\n            class GasUsage(_CallableChecklistItem):\n                class Constant(_CallableChecklistItem):\n                    Exact: _CallableChecklistItem\n                    Oog: _CallableChecklistItem\n\n                class Dynamic(_CallableChecklistItem):\n                    Exact: _CallableChecklistItem\n                    Oog: _CallableChecklistItem\n\n            class InputLengths(_CallableChecklistItem):\n                Zero: _CallableChecklistItem\n\n                class Dynamic(_CallableChecklistItem):\n                    TooLong: _CallableChecklistItem\n                    TooShort: _CallableChecklistItem\n                    Valid: _CallableChecklistItem\n\n                class Static(_CallableChecklistItem):\n                    Correct: _CallableChecklistItem\n                    TooLong: _CallableChecklistItem\n                    TooShort: _CallableChecklistItem\n\n            class Inputs(_CallableChecklistItem):\n                AllZeros: _CallableChecklistItem\n                MaxValues: _CallableChecklistItem\n\n                class Invalid(_CallableChecklistItem):\n                    Corrupted: _CallableChecklistItem\n                    Crypto: _CallableChecklistItem\n\n                class Valid(_CallableChecklistItem):\n                    Boundary: _CallableChecklistItem\n                    Crypto: _CallableChecklistItem\n\n            class OutOfBounds(_CallableChecklistItem):\n                Max: _CallableChecklistItem\n                MaxPlusOne: _CallableChecklistItem\n\n            class ValueTransfer(_CallableChecklistItem):\n                NoFee: _CallableChecklistItem\n\n                class Fee(_CallableChecklistItem):\n                    Exact: _CallableChecklistItem\n                    Over: _CallableChecklistItem\n                    Under: _CallableChecklistItem\n\n    class RemovedPrecompile(_CallableChecklistItem):\n        class Test(_CallableChecklistItem):\n            class ForkTransition(_CallableChecklistItem):\n                Operational: _CallableChecklistItem\n\n                class After(_CallableChecklistItem):\n                    Cold: _CallableChecklistItem\n\n                class Before(_CallableChecklistItem):\n                    Warm: _CallableChecklistItem\n\n    class SystemContract(_CallableChecklistItem):\n        class Test(_CallableChecklistItem):\n            class CallContexts(_CallableChecklistItem):\n                Callcode: _CallableChecklistItem\n                Delegate: _CallableChecklistItem\n                Normal: _CallableChecklistItem\n                SetCode: _CallableChecklistItem\n                Static: _CallableChecklistItem\n                TxEntry: _CallableChecklistItem\n\n                class Initcode(_CallableChecklistItem):\n                    CREATE: _CallableChecklistItem\n                    Tx: _CallableChecklistItem\n\n            class ContractSubstitution(_CallableChecklistItem):\n                GasLimitFailure: _CallableChecklistItem\n                GasLimitSuccess: _CallableChecklistItem\n                Logs: _CallableChecklistItem\n                RaisesException: _CallableChecklistItem\n                ReturnLengths: _CallableChecklistItem\n\n            class ContractVariations(_CallableChecklistItem):\n                Networks: _CallableChecklistItem\n\n            class Deployment(_CallableChecklistItem):\n                Address: _CallableChecklistItem\n                Missing: _CallableChecklistItem\n\n            class ExcessiveGas(_CallableChecklistItem):\n                BlockGas: _CallableChecklistItem\n                SystemCall: _CallableChecklistItem\n\n            class ForkTransition(_CallableChecklistItem):\n                CallBeforeFork: _CallableChecklistItem\n\n            class GasUsage(_CallableChecklistItem):\n                class Constant(_CallableChecklistItem):\n                    Exact: _CallableChecklistItem\n                    Oog: _CallableChecklistItem\n\n                class Dynamic(_CallableChecklistItem):\n                    Exact: _CallableChecklistItem\n                    Oog: _CallableChecklistItem\n\n            class InputLengths(_CallableChecklistItem):\n                Zero: _CallableChecklistItem\n\n                class Dynamic(_CallableChecklistItem):\n                    TooLong: _CallableChecklistItem\n                    TooShort: _CallableChecklistItem\n                    Valid: _CallableChecklistItem\n\n                class Static(_CallableChecklistItem):\n                    Correct: _CallableChecklistItem\n                    TooLong: _CallableChecklistItem\n                    TooShort: _CallableChecklistItem\n\n            class Inputs(_CallableChecklistItem):\n                AllZeros: _CallableChecklistItem\n                Boundary: _CallableChecklistItem\n                MaxValues: _CallableChecklistItem\n                Valid: _CallableChecklistItem\n\n                class Invalid(_CallableChecklistItem):\n                    Checks: _CallableChecklistItem\n                    Corrupted: _CallableChecklistItem\n                    Crypto: _CallableChecklistItem\n\n            class OutOfBounds(_CallableChecklistItem):\n                Max: _CallableChecklistItem\n                MaxPlusOne: _CallableChecklistItem\n\n            class ValueTransfer(_CallableChecklistItem):\n                NoFee: _CallableChecklistItem\n\n                class Fee(_CallableChecklistItem):\n                    Exact: _CallableChecklistItem\n                    Over: _CallableChecklistItem\n                    Under: _CallableChecklistItem\n\n    class TransactionType(_CallableChecklistItem):\n        class Test(_CallableChecklistItem):\n            ContractCreation: _CallableChecklistItem\n\n            class BlockInteractions(_CallableChecklistItem):\n                MixedTxs: _CallableChecklistItem\n\n                class Eip7825(_CallableChecklistItem):\n                    Invalid: _CallableChecklistItem\n                    Valid: _CallableChecklistItem\n\n                class LastTx(_CallableChecklistItem):\n                    Invalid: _CallableChecklistItem\n                    Valid: _CallableChecklistItem\n\n                class SingleTx(_CallableChecklistItem):\n                    Invalid: _CallableChecklistItem\n                    Valid: _CallableChecklistItem\n\n            class Encoding(_CallableChecklistItem):\n                ExtraBytes: _CallableChecklistItem\n                ExtraFields: _CallableChecklistItem\n                MissingFields: _CallableChecklistItem\n                Truncated: _CallableChecklistItem\n\n                class FieldSizes(_CallableChecklistItem):\n                    LeadingZero: _CallableChecklistItem\n                    RemoveByte: _CallableChecklistItem\n\n                class ListField(_CallableChecklistItem):\n                    Max: _CallableChecklistItem\n                    MaxPlusOne: _CallableChecklistItem\n                    Zero: _CallableChecklistItem\n\n                class NewTypes(_CallableChecklistItem):\n                    IncorrectEncoding: _CallableChecklistItem\n\n            class ForkTransition(_CallableChecklistItem):\n                Before: _CallableChecklistItem\n\n            class IntrinsicValidity(_CallableChecklistItem):\n                ChainId: _CallableChecklistItem\n                DataFloorAboveIntrinsicGasCost: _CallableChecklistItem\n                NonceExact: _CallableChecklistItem\n                NonceMinusOne: _CallableChecklistItem\n                NoncePlusOne: _CallableChecklistItem\n                To: _CallableChecklistItem\n                ValueNonZeroInsufficientBalance: _CallableChecklistItem\n                ValueNonZeroSufficientBalance: _CallableChecklistItem\n                ValueZeroInsufficientBalance: _CallableChecklistItem\n                ValueZeroSufficientBalance: _CallableChecklistItem\n\n                class GasLimit(_CallableChecklistItem):\n                    Exact: _CallableChecklistItem\n                    Insufficient: _CallableChecklistItem\n\n                class MaxFee(_CallableChecklistItem):\n                    BaseEqual: _CallableChecklistItem\n                    BaseLower: _CallableChecklistItem\n                    MaxPriorityEqualToMaxFee: _CallableChecklistItem\n                    MaxPriorityLowerThanMaxFee: _CallableChecklistItem\n\n            class OutOfBounds(_CallableChecklistItem):\n                Max: _CallableChecklistItem\n                MaxPlusOne: _CallableChecklistItem\n\n            class SenderAccount(_CallableChecklistItem):\n                Balance: _CallableChecklistItem\n                Nonce: _CallableChecklistItem\n\n            class Signature(_CallableChecklistItem):\n                class Invalid(_CallableChecklistItem):\n                    FieldOutsideCurve: _CallableChecklistItem\n\n                    class R(_CallableChecklistItem):\n                        Max: _CallableChecklistItem\n                        MaxMinusOne: _CallableChecklistItem\n                        Secp256k1n: _CallableChecklistItem\n                        Secp256k1nMinusOne: _CallableChecklistItem\n                        Secp256k1nPlusOne: _CallableChecklistItem\n                        Zero: _CallableChecklistItem\n\n                    class S(_CallableChecklistItem):\n                        Complement: _CallableChecklistItem\n                        Max: _CallableChecklistItem\n                        MaxMinusOne: _CallableChecklistItem\n                        Secp256k1n: _CallableChecklistItem\n                        Secp256k1nHalf: _CallableChecklistItem\n                        Secp256k1nHalfMinusOne: _CallableChecklistItem\n                        Secp256k1nHalfPlusOne: _CallableChecklistItem\n                        Secp256k1nMinusOne: _CallableChecklistItem\n                        Secp256k1nPlusOne: _CallableChecklistItem\n                        Zero: _CallableChecklistItem\n\n                    class V(_CallableChecklistItem):\n                        Max: _CallableChecklistItem\n                        ThirtyFive: _CallableChecklistItem\n                        ThirtySix: _CallableChecklistItem\n                        TwentyEight: _CallableChecklistItem\n                        TwentySeven: _CallableChecklistItem\n                        Two: _CallableChecklistItem\n\n            class TxScopedAttributes(_CallableChecklistItem):\n                OlderTxTypes: _CallableChecklistItem\n                Read: _CallableChecklistItem\n\n                class Persistent(_CallableChecklistItem):\n                    Reset: _CallableChecklistItem\n                    Throughout: _CallableChecklistItem\n"
  },
  {
    "path": "src/ethereum_test_checklists/tests/__init__.py",
    "content": "\"\"\"Tests for ethereum_test_checklists.\"\"\"\n"
  },
  {
    "path": "src/ethereum_test_checklists/tests/test_checklist_template_consistency.py",
    "content": "\"\"\"Test consistency between checklist template and EIPChecklist class.\"\"\"\n\nimport re\nfrom pathlib import Path\nfrom typing import Any, Set\n\nimport pytest\n\nfrom ethereum_test_checklists.eip_checklist import EIPChecklist\n\nTEMPLATE_PATH = (\n    Path(__file__).parent.parent.parent.parent\n    / \"docs\"\n    / \"writing_tests\"\n    / \"checklist_templates\"\n    / \"eip_testing_checklist_template.md\"\n)\n\n\ndef extract_markdown_ids(markdown_content: str) -> Set[str]:\n    \"\"\"Extract all checklist IDs from markdown content.\"\"\"\n    # Pattern to match IDs in markdown tables (between backticks in ID column)\n    pattern = r\"\\|\\s*`([^`]+)`\\s*\\|\"\n\n    ids = set()\n    for match in re.finditer(pattern, markdown_content):\n        potential_id = match.group(1)\n        # Filter out non-ID content - IDs should contain forward slashes\n        if \"/\" in potential_id:\n            ids.add(potential_id)\n\n    return ids\n\n\ndef get_all_checklist_ids(obj: Any) -> Set[str]:\n    \"\"\"\n    Recursively extract all checklist IDs from EIPChecklist and its children.\n    \"\"\"\n    ids = set()\n\n    # Iterate through all attributes of the object\n    for attr_name in dir(obj):\n        # Skip private attributes and methods\n        if attr_name.startswith(\"_\"):\n            continue\n\n        attr = getattr(obj, attr_name)\n\n        # Check if this is a class with a _path attribute (our checklist items)\n        if isinstance(attr, type) and hasattr(attr, \"_path\"):\n            # Get the full path for this item\n            item_path = str(attr)\n            if item_path:  # Only add non-empty paths\n                ids.add(item_path)\n\n            # Recursively get IDs from nested classes\n            nested_ids = get_all_checklist_ids(attr)\n            ids.update(nested_ids)\n\n    return ids\n\n\ndef test_checklist_template_consistency() -> None:\n    \"\"\"\n    Test that all IDs in markdown template match EIPChecklist class exactly.\n    \"\"\"\n    # Read the markdown template\n    with open(TEMPLATE_PATH, \"r\", encoding=\"utf-8\") as f:\n        markdown_content = f.read()\n\n    # Extract IDs from both sources\n    markdown_ids = extract_markdown_ids(markdown_content)\n    checklist_ids = get_all_checklist_ids(EIPChecklist)\n\n    # Find differences\n    missing_in_checklist = markdown_ids - checklist_ids\n    missing_in_markdown = checklist_ids - markdown_ids\n\n    # Create detailed error messages\n    errors = []\n\n    if missing_in_checklist:\n        errors.append(\n            f\"IDs found in markdown template but missing in EIPChecklist class \"\n            f\"({len(missing_in_checklist)} items):\\n\"\n            + \"\\n\".join(f\"  - `{id_}`\" for id_ in sorted(missing_in_checklist))\n        )\n\n    if missing_in_markdown:\n        for id_ in missing_in_markdown:\n            if any(item.startswith(id_ + \"/\") for item in checklist_ids):\n                continue\n\n            errors.append(f\"ID `{id_}` not found in markdown template\")\n\n    if errors:\n        error_message = f\"\\nTotal markdown IDs: {len(markdown_ids)}\\n\"\n        error_message += f\"Total checklist IDs: {len(checklist_ids)}\\n\\n\"\n        error_message += \"\\n\\n\".join(errors)\n        pytest.fail(error_message)\n\n\ndef test_checklist_template_exists() -> None:\n    \"\"\"Test that the checklist template file exists.\"\"\"\n    assert TEMPLATE_PATH.exists(), f\"Checklist template not found at {TEMPLATE_PATH}\"\n\n\ndef test_eip_checklist_class_structure() -> None:\n    \"\"\"Test that the EIPChecklist class has expected structure.\"\"\"\n    assert hasattr(EIPChecklist, \"General\"), \"EIPChecklist should have General class\"\n    assert hasattr(EIPChecklist, \"Opcode\"), \"EIPChecklist should have Opcode class\"\n    assert hasattr(EIPChecklist, \"Precompile\"), \"EIPChecklist should have Precompile class\"\n\n    # Test that the metaclass is working correctly\n    assert str(EIPChecklist.General.CodeCoverage.Eels) == \"general/code_coverage/eels\"\n    assert (\n        str(EIPChecklist.Opcode.Test.MemExp.ZeroBytesZeroOffset)\n        == \"opcode/test/mem_exp/zero_bytes_zero_offset\"\n    )\n\n\ndef test_id_extraction_functions() -> None:\n    \"\"\"Test that our ID extraction functions work correctly.\"\"\"\n    # Test markdown extraction\n    sample_markdown = \"\"\"\n    | ID | Description | Status | Tests |\n    | `test/example/id` | Test description | | |\n    | `another/test/path` | Another test | | |\n    \"\"\"\n\n    ids = extract_markdown_ids(sample_markdown)\n    assert \"test/example/id\" in ids\n    assert \"another/test/path\" in ids\n\n    # Test checklist extraction\n    checklist_ids = get_all_checklist_ids(EIPChecklist)\n    assert len(checklist_ids) > 0\n    assert \"general/code_coverage/eels\" in checklist_ids\n\n\ndef test_eip_checklist_decorator_usage() -> None:\n    \"\"\"\n    Test EIPChecklist items work correctly as decorators both with and without\n    parentheses.\n    \"\"\"\n\n    # Test decorator with parentheses\n    @EIPChecklist.Opcode.Test.StackComplexOperations()\n    def test_function_with_parens() -> None:\n        pass\n\n    # Verify the marker was applied\n    markers = list(test_function_with_parens.pytestmark)  # type: ignore[attr-defined]\n    assert len(markers) >= 1\n    eip_markers = [m for m in markers if m.name == \"eip_checklist\"]\n    assert len(eip_markers) == 1\n    assert eip_markers[0].args == (\"opcode/test/stack_complex_operations\",)\n\n    # Test decorator without parentheses (direct usage - this is the key fix\n    # for issue #1)\n    @EIPChecklist.Opcode.Test.StackOverflow\n    def test_function_no_parens() -> None:\n        pass\n\n    # Verify the marker was applied\n    markers = list(test_function_no_parens.pytestmark)  # type: ignore[attr-defined]\n    eip_markers = [m for m in markers if m.name == \"eip_checklist\"]\n    assert len(eip_markers) == 1\n    assert eip_markers[0].args == (\"opcode/test/stack_overflow\",)\n\n\ndef test_eip_checklist_pytest_param_usage() -> None:\n    \"\"\"Test that EIPChecklist works correctly in pytest.param marks.\"\"\"\n    # Test that parentheses form works in pytest.param\n    param_with_parens = pytest.param(\n        \"test_value\", marks=EIPChecklist.Opcode.Test.GasUsage.Normal(), id=\"gas_test\"\n    )\n\n    # Verify the parameter was created successfully\n    assert param_with_parens.values == (\"test_value\",)\n    assert param_with_parens.id == \"gas_test\"\n    assert len(param_with_parens.marks) == 1\n    assert param_with_parens.marks[0].name == \"eip_checklist\"  # type: ignore[index]\n    assert param_with_parens.marks[0].args == (\"opcode/test/gas_usage/normal\",)  # type: ignore[index]\n\n    # Test that multiple marks work\n    param_multiple_marks = pytest.param(\n        \"test_value\",\n        marks=[EIPChecklist.Opcode.Test.StackComplexOperations(), pytest.mark.slow],  # type: ignore[list-item]\n        id=\"complex_test\",\n    )\n\n    # Verify multiple marks\n    assert len(param_multiple_marks.marks) == 2\n    eip_mark = next(m for m in param_multiple_marks.marks if m.name == \"eip_checklist\")\n    assert eip_mark.args == (\"opcode/test/stack_complex_operations\",)\n\n    # Test that non-parentheses form fails gracefully with pytest.param\n    # (This documents the expected behavior - parentheses are required)\n    with pytest.raises((TypeError, AssertionError)):\n        pytest.param(\n            \"test_value\",\n            # Without () should fail\n            marks=EIPChecklist.Opcode.Test.StackOverflow,  # type: ignore[arg-type]\n            id=\"should_fail\",\n        )\n"
  },
  {
    "path": "src/ethereum_test_exceptions/__init__.py",
    "content": "\"\"\"Exceptions for invalid execution.\"\"\"\n\nfrom .engine_api import EngineAPIError\nfrom .exception_mapper import (\n    ExceptionMapper,\n    ExceptionMapperValidator,\n    ExceptionWithMessage,\n)\nfrom .exceptions import (\n    BlockException,\n    BlockExceptionInstanceOrList,\n    EOFException,\n    EOFExceptionInstanceOrList,\n    ExceptionBase,\n    ExceptionInstanceOrList,\n    TransactionException,\n    TransactionExceptionInstanceOrList,\n    UndefinedException,\n)\n\n__all__ = [\n    \"BlockException\",\n    \"BlockExceptionInstanceOrList\",\n    \"EOFException\",\n    \"EOFExceptionInstanceOrList\",\n    \"ExceptionBase\",\n    \"EngineAPIError\",\n    \"ExceptionMapper\",\n    \"ExceptionInstanceOrList\",\n    \"ExceptionWithMessage\",\n    \"ExceptionMapperValidator\",\n    \"TransactionException\",\n    \"UndefinedException\",\n    \"TransactionExceptionInstanceOrList\",\n]\n"
  },
  {
    "path": "src/ethereum_test_exceptions/engine_api.py",
    "content": "\"\"\"Engine API error defniitions.\"\"\"\n\nfrom enum import IntEnum\n\n\nclass EngineAPIError(IntEnum):\n    \"\"\"List of Engine API errors.\"\"\"\n\n    ParseError = -32700\n    InvalidRequest = -32600\n    MethodNotFound = -32601\n    InvalidParams = -32602\n    InternalError = -32603\n    ServerError = -32000\n    UnknownPayload = -38001\n    InvalidForkchoiceState = -38002\n    InvalidPayloadAttributes = -38003\n    TooLargeRequest = -38004\n    UnsupportedFork = -38005\n"
  },
  {
    "path": "src/ethereum_test_exceptions/exception_mapper.py",
    "content": "\"\"\"EEST Exception mapper.\"\"\"\n\nimport re\nfrom abc import ABC\nfrom typing import Any, ClassVar, Dict, Generic, List\n\nfrom pydantic import BaseModel, BeforeValidator, ValidationInfo\n\nfrom .exceptions import ExceptionBase, ExceptionBoundTypeVar, UndefinedException\n\n\nclass ExceptionMapper(ABC):\n    \"\"\"\n    Translate between EEST exceptions and error strings returned by client's\n    t8n or other tools.\n    \"\"\"\n\n    mapper_name: str\n    _mapping_compiled_regex: Dict[ExceptionBase, re.Pattern]\n\n    mapping_substring: ClassVar[Dict[ExceptionBase, str]]\n    \"\"\"\n    Mapping of exception to substring that should be present in the error\n    message.\n\n    Items in this mapping are used for substring matching (`substring in\n    message`).\n    \"\"\"\n\n    mapping_regex: ClassVar[Dict[ExceptionBase, str]]\n    \"\"\"\n    Mapping of exception to regex that should be present in the error message.\n\n    Items in this mapping are compiled into regex patterns for faster matching,\n    and then used for regex matching (`pattern.search(message)`).\n    \"\"\"\n    reliable: ClassVar[bool] = True\n    \"\"\"\n    Whether the exceptions returned by the tool are reliable and can be\n    accurately mapped to the exceptions in this class.\n    \"\"\"\n\n    def __init__(self) -> None:\n        \"\"\"Initialize the exception mapper.\"\"\"\n        # Ensure that the subclass has properly defined mapping_substring\n        # before accessing it\n        assert self.mapping_substring is not None, \"mapping_substring must be defined in subclass\"\n        assert self.mapping_regex is not None, \"mapping_regex must be defined in subclass\"\n        self.mapper_name = self.__class__.__name__\n        self._mapping_compiled_regex = {\n            exception: re.compile(message) for exception, message in self.mapping_regex.items()\n        }\n\n    def message_to_exception(\n        self, exception_string: str\n    ) -> List[ExceptionBase] | UndefinedException:\n        \"\"\"Match a formatted string to an exception.\"\"\"\n        exceptions: List[ExceptionBase] = []\n        for exception, substring in self.mapping_substring.items():\n            if substring in exception_string:\n                exceptions.append(exception)\n        for exception, pattern in self._mapping_compiled_regex.items():\n            if pattern.search(exception_string):\n                exceptions.append(exception)\n        if exceptions:\n            return exceptions\n        return UndefinedException(exception_string, mapper_name=self.mapper_name)\n\n\nclass ExceptionWithMessage(BaseModel, Generic[ExceptionBoundTypeVar]):\n    \"\"\"\n    Class that contains the exception along with the verbatim message from the\n    external tool/client.\n    \"\"\"\n\n    exceptions: List[ExceptionBoundTypeVar]\n    message: str\n\n    def __contains__(self, item: Any) -> bool:\n        \"\"\"Check if the item is in the exceptions list.\"\"\"\n        if isinstance(item, list):\n            return any(exception in self.exceptions for exception in item)\n        return item in self.exceptions\n\n    def __str__(self) -> str:\n        \"\"\"Return the string representation of the exception message.\"\"\"\n        return f\"[{' | '.join(str(e) for e in self.exceptions)}] {self.message}\"\n\n\ndef mapper_validator(v: str, info: ValidationInfo) -> Dict[str, Any] | UndefinedException | None:\n    \"\"\"\n    Use the exception mapper that must be included in the context to map the\n    exception from the external tool.\n    \"\"\"\n    if v is None:\n        return v\n    if not isinstance(info.context, dict):\n        return UndefinedException(v, mapper_name=\"UndefinedExceptionMapper: No context\")\n    exception_mapper = info.context.get(\"exception_mapper\")\n    if exception_mapper is None:\n        return UndefinedException(v, mapper_name=\"UndefinedExceptionMapper: No mapper\")\n    assert isinstance(exception_mapper, ExceptionMapper), (\n        f\"Invalid mapper provided {exception_mapper}\"\n    )\n    exceptions = exception_mapper.message_to_exception(v)\n    if isinstance(exceptions, UndefinedException):\n        return exceptions\n    return {\n        \"exceptions\": exceptions,\n        \"message\": v,\n    }\n\n\nExceptionMapperValidator = BeforeValidator(mapper_validator)\n\"\"\"\nValidator that can be used to annotate a pydantic field in a model that is\nmeant to be parsed from an external tool or client.\n\nThe annotated type must be an union that can include `None`,\n`UndefinedException` and a custom model as:\n```\nclass BlockExceptionWithMessage(ExceptionWithMessage[BlockException]):\n    pass\n```\nwhere `BlockException` can be any derivation of `ExceptionBase`.\n\nThe `message` attribute is the verbatim message received from the external tool\nor client, and can be used to be printed for extra context information in case\nof failures.\n\"\"\"\n"
  },
  {
    "path": "src/ethereum_test_exceptions/exceptions/__init__.py",
    "content": "\"\"\"Exceptions for invalid execution.\"\"\"\n\nfrom .base import ExceptionBase, UndefinedException, from_pipe_str, to_pipe_str\nfrom .block import BlockException\nfrom .eof import EOFException\nfrom .exceptions_types import (\n    BlockExceptionInstanceOrList,\n    EOFExceptionInstanceOrList,\n    ExceptionBoundTypeVar,\n    ExceptionInstanceOrList,\n    TransactionExceptionInstanceOrList,\n)\nfrom .transaction import TransactionException\n\n__all__ = [\n    \"ExceptionBase\",\n    \"UndefinedException\",\n    \"from_pipe_str\",\n    \"to_pipe_str\",\n    \"TransactionException\",\n    \"BlockException\",\n    \"EOFException\",\n    \"ExceptionInstanceOrList\",\n    \"TransactionExceptionInstanceOrList\",\n    \"BlockExceptionInstanceOrList\",\n    \"EOFExceptionInstanceOrList\",\n    \"ExceptionBoundTypeVar\",\n]\n"
  },
  {
    "path": "src/ethereum_test_exceptions/exceptions/base.py",
    "content": "\"\"\"Base classes and infrastructure for exceptions.\"\"\"\n\nfrom enum import Enum\nfrom typing import Any, Dict\n\nfrom pydantic import GetCoreSchemaHandler\nfrom pydantic_core.core_schema import (\n    PlainValidatorFunctionSchema,\n    no_info_plain_validator_function,\n    to_string_ser_schema,\n)\n\n_exception_classes: Dict[str, type] = {}\n\n\nclass ExceptionBase(Enum):\n    \"\"\"Base class for exceptions.\"\"\"\n\n    def __init_subclass__(cls) -> None:\n        \"\"\"Register the exception class.\"\"\"\n        super().__init_subclass__()\n        _exception_classes[cls.__name__] = cls\n\n    @classmethod\n    def __get_pydantic_core_schema__(\n        cls, source_type: Any, handler: GetCoreSchemaHandler\n    ) -> PlainValidatorFunctionSchema:\n        \"\"\"\n        Call class constructor without info and appends the serialization\n        schema.\n        \"\"\"\n        return no_info_plain_validator_function(\n            cls.from_str,\n            serialization=to_string_ser_schema(),\n        )\n\n    @classmethod\n    def from_str(cls, value: \"str | ExceptionBase\") -> \"ExceptionBase\":\n        \"\"\"Return ContainerKind enum value from a string.\"\"\"\n        if isinstance(value, ExceptionBase):\n            return value\n\n        class_name, enum_name = value.split(\".\")\n\n        if cls == ExceptionBase:\n            # Exception base automatically resolves the class\n            assert class_name in _exception_classes, f\"No such exception class: {class_name}\"\n            exception_class = _exception_classes[class_name]\n        else:\n            # Otherwise, use the class that the method is called on\n            assert cls.__name__ == class_name, (\n                f\"Unexpected exception type: {class_name}, expected {cls.__name__}\"\n            )\n            exception_class = cls\n\n        exception = getattr(exception_class, enum_name, None)\n        if exception is not None:\n            return exception\n        raise ValueError(f\"No such exception in {class_name}: {value}\")\n\n    def __contains__(self, exception: \"ExceptionBase\") -> bool:\n        \"\"\"Check if provided exception is equal to this.\"\"\"\n        return self == exception\n\n    def __str__(self) -> str:\n        \"\"\"Return string representation of the exception.\"\"\"\n        return f\"{self.__class__.__name__}.{self.name}\"\n\n\nclass UndefinedException(str):\n    \"\"\"Undefined Exception.\"\"\"\n\n    mapper_name: str | None\n\n    def __new__(cls, value: str, *, mapper_name: str | None = None) -> \"UndefinedException\":\n        \"\"\"Create a new UndefinedException instance.\"\"\"\n        if isinstance(value, UndefinedException):\n            return value\n        assert isinstance(value, str)\n        instance = super().__new__(cls, value)\n        instance.mapper_name = mapper_name\n        return instance\n\n    @classmethod\n    def __get_pydantic_core_schema__(\n        cls, source_type: Any, handler: GetCoreSchemaHandler\n    ) -> PlainValidatorFunctionSchema:\n        \"\"\"\n        Call class constructor without info and appends the serialization\n        schema.\n        \"\"\"\n        return no_info_plain_validator_function(\n            cls,\n            serialization=to_string_ser_schema(),\n        )\n\n\ndef to_pipe_str(value: Any) -> str:\n    \"\"\"\n    Single pipe-separated string representation of an exception list.\n\n    Obtain a deterministic ordering by ordering using the exception string\n    representations.\n    \"\"\"\n    if isinstance(value, list):\n        return \"|\".join(str(exception) for exception in value)\n    return str(value)\n\n\ndef from_pipe_str(value: Any) -> str | list[str]:\n    \"\"\"Parse a single string as a pipe separated list into enum exceptions.\"\"\"\n    if isinstance(value, str):\n        exception_list = value.split(\"|\")\n        if len(exception_list) == 1:\n            return exception_list[0]\n        return exception_list\n    return value\n"
  },
  {
    "path": "src/ethereum_test_exceptions/exceptions/block.py",
    "content": "\"\"\"Block Exceptions.\"\"\"\n\nfrom enum import auto, unique\n\nfrom .base import ExceptionBase\n\n\n@unique\nclass BlockException(ExceptionBase):\n    \"\"\"\n    Exception raised when a block is invalid, but not due to a transaction.\n\n    E.g. all transactions in the block are valid, and can be applied to the\n    state, but the block header contains an invalid field.\n    \"\"\"\n\n    TOO_MANY_UNCLES = auto()\n    \"\"\"Block declares too many uncles over the allowed limit.\"\"\"\n    UNCLE_IN_CHAIN = auto()\n    \"\"\"Block declares uncle header that is already imported into chain.\"\"\"\n    UNCLE_IS_ANCESTOR = auto()\n    \"\"\"Block declares uncle header that is directly a parent of this block.\"\"\"\n    UNCLE_IS_BROTHER = auto()\n    \"\"\"Block declares two similar uncle headers.\"\"\"\n    UNCLE_PARENT_INCORRECT = auto()\n    \"\"\"Block declares uncle header that is an outdated block to be an uncle.\"\"\"\n    EXTRA_DATA_TOO_BIG = auto()\n    \"\"\"Block header's extra data >32 bytes.\"\"\"\n    EXTRA_DATA_INVALID_DAO = auto()\n    \"\"\"\n    Block header's extra data after dao fork must be a fixed pre defined hash.\n    \"\"\"\n    UNKNOWN_PARENT = auto()\n    \"\"\"\n    Block header's parent hash does not correspond to any of existing blocks on\n    chain.\n    \"\"\"\n    UNCLE_UNKNOWN_PARENT = auto()\n    \"\"\"\n    Uncle header's parent hash does not correspond to any of existing blocks on\n    chain.\n    \"\"\"\n    UNKNOWN_PARENT_ZERO = auto()\n    \"\"\"Block header's parent hash is zero hash.\"\"\"\n    GASLIMIT_TOO_BIG = auto()\n    \"\"\"Block header's gas limit > 0x7fffffffffffffff.\"\"\"\n    INVALID_BLOCK_NUMBER = auto()\n    \"\"\"Block header's number != parent header's number + 1.\"\"\"\n    INVALID_BLOCK_TIMESTAMP_OLDER_THAN_PARENT = auto()\n    \"\"\"Block header's timestamp <= parent header's timestamp.\"\"\"\n    INVALID_DIFFICULTY = auto()\n    \"\"\"\n    Block header's difficulty does not match the difficulty formula calculated\n    from previous block.\n    \"\"\"\n    INVALID_LOG_BLOOM = auto()\n    \"\"\"\n    Block header's logs bloom hash does not match the actually computed log\n    bloom.\n    \"\"\"\n    INVALID_STATE_ROOT = auto()\n    \"\"\"\n    Block header's state root hash does not match the actually computed hash of\n    the state.\n    \"\"\"\n    INVALID_RECEIPTS_ROOT = auto()\n    \"\"\"\n    Block header's receipts root hash does not match the actually computed hash\n    of receipts.\n    \"\"\"\n    INVALID_TRANSACTIONS_ROOT = auto()\n    \"\"\"\n    Block header's transactions root hash does not match the actually computed\n    hash of tx tree.\n    \"\"\"\n    INVALID_UNCLES_HASH = auto()\n    \"\"\"\n    Block header's uncle hash does not match the actually computed hash of\n    block's uncles.\n    \"\"\"\n    GAS_USED_OVERFLOW = auto()\n    \"\"\"Block transactions consume more gas than block header allow.\"\"\"\n    INVALID_GASLIMIT = auto()\n    \"\"\"\n    Block header's gas limit does not match the gas limit formula calculated\n    from previous block.\n    \"\"\"\n    INVALID_BASEFEE_PER_GAS = auto()\n    \"\"\"Block header's base_fee_per_gas field is calculated incorrect.\"\"\"\n    INVALID_GAS_USED = auto()\n    \"\"\"\n    Block header's actual gas used does not match the provided header's value\n    \"\"\"\n    INVALID_GAS_USED_ABOVE_LIMIT = auto()\n    \"\"\"Block header's gas used value is above the gas limit field's value.\"\"\"\n    INVALID_WITHDRAWALS_ROOT = auto()\n    \"\"\"\n    Block header's withdrawals root does not match calculated withdrawals root.\n    \"\"\"\n    INCORRECT_BLOCK_FORMAT = auto()\n    \"\"\"\n    Block's format is incorrect, contains invalid fields, is missing fields, or\n    contains fields of a fork that is not active yet.\n    \"\"\"\n    BLOB_GAS_USED_ABOVE_LIMIT = auto()\n    \"\"\"Block's blob gas used in header is above the limit.\"\"\"\n    INCORRECT_BLOB_GAS_USED = auto()\n    \"\"\"Block's blob gas used in header is incorrect.\"\"\"\n    INCORRECT_EXCESS_BLOB_GAS = auto()\n    \"\"\"Block's excess blob gas in header is incorrect.\"\"\"\n    INVALID_VERSIONED_HASHES = auto()\n    \"\"\"Incorrect number of versioned hashes in a payload.\"\"\"\n    RLP_STRUCTURES_ENCODING = auto()\n    \"\"\"\n    Block's rlp encoding is valid but ethereum structures in it are invalid.\n    \"\"\"\n    RLP_WITHDRAWALS_NOT_READ = auto()\n    \"\"\"Block's rlp encoding is missing withdrawals.\"\"\"\n    RLP_INVALID_FIELD_OVERFLOW_64 = auto()\n    \"\"\"One of block's fields rlp is overflow 2**64 value.\"\"\"\n    RLP_INVALID_ADDRESS = auto()\n    \"\"\"Block withdrawals address is rlp of invalid address != 20 bytes.\"\"\"\n    RLP_BLOCK_LIMIT_EXCEEDED = auto()\n    \"\"\"Block's rlp encoding is larger than the allowed limit.\"\"\"\n    INVALID_REQUESTS = auto()\n    \"\"\"Block's requests are invalid.\"\"\"\n    IMPORT_IMPOSSIBLE_LEGACY = auto()\n    \"\"\"Legacy block import is impossible in this chain configuration.\"\"\"\n    IMPORT_IMPOSSIBLE_LEGACY_WRONG_PARENT = auto()\n    \"\"\"\n    Legacy block import is impossible, trying to import on top of a block that\n    is not legacy.\n    \"\"\"\n    IMPORT_IMPOSSIBLE_LONDON_WRONG_PARENT = auto()\n    \"\"\"\n    Trying to import london (basefee) block on top of block that is not 1559.\n    \"\"\"\n    IMPORT_IMPOSSIBLE_PARIS_WRONG_POW = auto()\n    \"\"\"Trying to import paris(merge) block with PoW enabled.\"\"\"\n    IMPORT_IMPOSSIBLE_PARIS_WRONG_POS = auto()\n    \"\"\"\n    Trying to import paris(merge) block with PoS enabled before TTD is reached.\n    \"\"\"\n    IMPORT_IMPOSSIBLE_LONDON_OVER_PARIS = auto()\n    \"\"\"Trying to import london looking block over paris network (POS).\"\"\"\n    IMPORT_IMPOSSIBLE_PARIS_OVER_SHANGHAI = auto()\n    \"\"\"Trying to import paris block on top of shanghai block.\"\"\"\n    IMPORT_IMPOSSIBLE_SHANGHAI = auto()\n    \"\"\"Shanghai block import is impossible in this chain configuration.\"\"\"\n    IMPORT_IMPOSSIBLE_UNCLES_OVER_PARIS = auto()\n    \"\"\"\n    Trying to import a block after paris fork that has not empty uncles hash.\n    \"\"\"\n    IMPORT_IMPOSSIBLE_DIFFICULTY_OVER_PARIS = auto()\n    \"\"\"Trying to import a block after paris fork that has difficulty != 0.\"\"\"\n    SYSTEM_CONTRACT_EMPTY = auto()\n    \"\"\"\n    A system contract address contains no code at the end of fork activation\n    block.\n    \"\"\"\n    SYSTEM_CONTRACT_CALL_FAILED = auto()\n    \"\"\"\n    A system contract call at the end of block execution (from the system\n    address) fails.\n    \"\"\"\n    INVALID_BLOCK_HASH = auto()\n    \"\"\"\n    Block header's hash does not match the actually computed hash of the block.\n    \"\"\"\n    INVALID_DEPOSIT_EVENT_LAYOUT = auto()\n    \"\"\"\n    Transaction emits a `DepositEvent` in the deposit contract (EIP-6110), but\n    the layout of the event does not match the required layout.\n    \"\"\"\n    # --- Block-Level Access Lists (EIP-7928) --- #\n    INVALID_BLOCK_ACCESS_LIST = auto()\n    \"\"\"Block's access list is invalid.\"\"\"\n    INVALID_BAL_HASH = auto()\n    \"\"\"Block header's BAL hash does not match the computed BAL hash.\"\"\"\n    INVALID_BAL_EXTRA_ACCOUNT = auto()\n    \"\"\"\n    Block BAL contains an account change that is not present in the computed\n    BAL.\n    \"\"\"\n    INVALID_BAL_MISSING_ACCOUNT = auto()\n    \"\"\"\n    Block BAL is missing an account change that is present in the computed BAL.\n    \"\"\"\n"
  },
  {
    "path": "src/ethereum_test_exceptions/exceptions/eof.py",
    "content": "\"\"\"EOF Exceptions.\"\"\"\n\nfrom enum import auto, unique\n\nfrom .base import ExceptionBase\n\n\n@unique\nclass EOFException(ExceptionBase):\n    \"\"\"Exception raised when an EOF container is invalid.\"\"\"\n\n    DEFAULT_EXCEPTION = auto()\n    \"\"\"Expect some exception, not yet known.\"\"\"\n\n    UNDEFINED_EXCEPTION = auto()\n    \"\"\"Indicates that exception string is not mapped to an exception enum.\"\"\"\n\n    UNDEFINED_INSTRUCTION = auto()\n    \"\"\"EOF container has undefined instruction in it's body code.\"\"\"\n\n    UNKNOWN_VERSION = auto()\n    \"\"\"EOF container has an unknown version.\"\"\"\n    INCOMPLETE_MAGIC = auto()\n    \"\"\"EOF container has not enough bytes to read magic.\"\"\"\n    INVALID_MAGIC = auto()\n    \"\"\"EOF container has not allowed magic version byte.\"\"\"\n    INVALID_VERSION = auto()\n    \"\"\"EOF container version bytes mismatch.\"\"\"\n    INVALID_NON_RETURNING_FLAG = auto()\n    \"\"\"EOF container's section has non-returning flag set incorrectly.\"\"\"\n    INVALID_RJUMP_DESTINATION = auto()\n    \"\"\"Code has RJUMP instruction with invalid parameters.\"\"\"\n    MISSING_TYPE_HEADER = auto()\n    \"\"\"EOF container missing types section.\"\"\"\n    INVALID_TYPE_SECTION_SIZE = auto()\n    \"\"\"EOF container types section has wrong size.\"\"\"\n    INVALID_TYPE_BODY = auto()\n    \"\"\"EOF container types body section bytes are wrong.\"\"\"\n    MISSING_CODE_HEADER = auto()\n    \"\"\"EOF container missing code section.\"\"\"\n    INVALID_CODE_SECTION = auto()\n    \"\"\"EOF container code section bytes are incorrect.\"\"\"\n    INCOMPLETE_CODE_HEADER = auto()\n    \"\"\"EOF container code header missing bytes.\"\"\"\n    INCOMPLETE_DATA_HEADER = auto()\n    \"\"\"EOF container data header missing bytes.\"\"\"\n    ZERO_SECTION_SIZE = auto()\n    \"\"\"EOF container data header construction is wrong.\"\"\"\n    MISSING_DATA_SECTION = auto()\n    \"\"\"EOF container missing data section\"\"\"\n    INCOMPLETE_CONTAINER = auto()\n    \"\"\"EOF container bytes are incomplete.\"\"\"\n    INVALID_SECTION_BODIES_SIZE = auto()\n    \"\"\"Sections bodies does not match sections headers.\"\"\"\n    TRAILING_BYTES = auto()\n    \"\"\"EOF container has bytes beyond data section.\"\"\"\n    MISSING_TERMINATOR = auto()\n    \"\"\"EOF container missing terminator bytes between header and body.\"\"\"\n    MISSING_HEADERS_TERMINATOR = auto()\n    \"\"\"Some type of another exception about missing headers terminator.\"\"\"\n    INVALID_FIRST_SECTION_TYPE = auto()\n    \"\"\"EOF container header does not have types section first.\"\"\"\n    INCOMPLETE_SECTION_NUMBER = auto()\n    \"\"\"EOF container header has section that is missing declaration bytes.\"\"\"\n    INCOMPLETE_SECTION_SIZE = auto()\n    \"\"\"EOF container header has section that is defined incorrectly.\"\"\"\n    TOO_MANY_CODE_SECTIONS = auto()\n    \"\"\"EOF container header has too many code sections.\"\"\"\n    MISSING_STOP_OPCODE = auto()\n    \"\"\"EOF container's code missing STOP bytecode at it's end.\"\"\"\n    INPUTS_OUTPUTS_NUM_ABOVE_LIMIT = auto()\n    \"\"\"EOF container code section inputs/outputs number is above the limit\"\"\"\n    UNREACHABLE_INSTRUCTIONS = auto()\n    \"\"\"EOF container's code have instructions that are unreachable.\"\"\"\n    UNREACHABLE_CODE_SECTIONS = auto()\n    \"\"\"EOF container's body have code sections that are unreachable.\"\"\"\n    STACK_UNDERFLOW = auto()\n    \"\"\"EOF container's code produces an stack underflow.\"\"\"\n    STACK_OVERFLOW = auto()\n    \"\"\"EOF container's code produces an stack overflow.\"\"\"\n    STACK_HEIGHT_MISMATCH = auto()\n    \"\"\"EOF container section stack height mismatch.\"\"\"\n    MAX_STACK_INCREASE_ABOVE_LIMIT = auto()\n    \"\"\"EOF container's specified max stack increase is above the limit.\"\"\"\n    STACK_HIGHER_THAN_OUTPUTS = auto()\n    \"\"\"\n    EOF container section stack height is higher than the outputs. when\n    returning\n    \"\"\"\n    JUMPF_DESTINATION_INCOMPATIBLE_OUTPUTS = auto()\n    \"\"\"\n    EOF container section JUMPF's to a destination section with incompatible\n    outputs.\n    \"\"\"\n    INVALID_MAX_STACK_INCREASE = auto()\n    \"\"\"\n    EOF container section's specified max stack increase does not match the\n    actual stack height.\n    \"\"\"\n    INVALID_DATALOADN_INDEX = auto()\n    \"\"\"A DATALOADN instruction has out-of-bounds index for the data section.\"\"\"\n    TRUNCATED_INSTRUCTION = auto()\n    \"\"\"EOF container's code section has truncated instruction.\"\"\"\n    TOPLEVEL_CONTAINER_TRUNCATED = auto()\n    \"\"\"Top-level EOF container has data section truncated\"\"\"\n    ORPHAN_SUBCONTAINER = auto()\n    \"\"\"EOF container has an unreferenced subcontainer. '\"\"\"\n    CONTAINER_SIZE_ABOVE_LIMIT = auto()\n    \"\"\"EOF container is above size limit\"\"\"\n    INVALID_CONTAINER_SECTION_INDEX = auto()\n    \"\"\"Instruction references container section that does not exist.\"\"\"\n    INCOMPATIBLE_CONTAINER_KIND = auto()\n    \"\"\"Incompatible instruction found in a container of a specific kind.\"\"\"\n    AMBIGUOUS_CONTAINER_KIND = auto()\n    \"\"\"The kind of a sub-container cannot be uniquely deduced.\"\"\"\n    TOO_MANY_CONTAINERS = auto()\n    \"\"\"EOF container header has too many sub-containers.\"\"\"\n    INVALID_CODE_SECTION_INDEX = auto()\n    \"\"\"CALLF Operation refers to a non-existent code section\"\"\"\n    UNEXPECTED_HEADER_KIND = auto()\n    \"\"\"Header parsing encountered a section kind it wasn't expecting\"\"\"\n    CALLF_TO_NON_RETURNING = auto()\n    \"\"\"CALLF instruction targeting a non-returning code section\"\"\"\n    EOFCREATE_WITH_TRUNCATED_CONTAINER = auto()\n    \"\"\"EOFCREATE with truncated container\"\"\"\n"
  },
  {
    "path": "src/ethereum_test_exceptions/exceptions/exceptions_types.py",
    "content": "\"\"\"Pydantic annotated types for exceptions.\"\"\"\n\nfrom typing import Annotated, List, TypeVar\n\nfrom pydantic import BeforeValidator, PlainSerializer\n\nfrom .base import from_pipe_str, to_pipe_str\nfrom .block import BlockException\nfrom .eof import EOFException\nfrom .transaction import TransactionException\n\n\"\"\"\nPydantic Annotated Types\n\"\"\"\n\nExceptionInstanceOrList = Annotated[\n    List[TransactionException | BlockException] | TransactionException | BlockException,\n    BeforeValidator(from_pipe_str),\n    PlainSerializer(to_pipe_str),\n]\n\nTransactionExceptionInstanceOrList = Annotated[\n    List[TransactionException] | TransactionException,\n    BeforeValidator(from_pipe_str),\n    PlainSerializer(to_pipe_str),\n]\n\nBlockExceptionInstanceOrList = Annotated[\n    List[BlockException] | BlockException,\n    BeforeValidator(from_pipe_str),\n    PlainSerializer(to_pipe_str),\n]\n\nEOFExceptionInstanceOrList = Annotated[\n    List[EOFException] | EOFException,\n    BeforeValidator(from_pipe_str),\n    PlainSerializer(to_pipe_str),\n]\n\nExceptionBoundTypeVar = TypeVar(\n    \"ExceptionBoundTypeVar\", TransactionException, BlockException, EOFException\n)\n"
  },
  {
    "path": "src/ethereum_test_exceptions/exceptions/transaction.py",
    "content": "\"\"\"Transaction Exceptions.\"\"\"\n\nfrom enum import auto, unique\n\nfrom .base import ExceptionBase\n\n\n@unique\nclass TransactionException(ExceptionBase):\n    \"\"\"\n    Exception raised when a transaction is invalid, and thus cannot be\n    executed.\n\n    If a transaction with any of these exceptions is included in a block, the\n    block is invalid.\n    \"\"\"\n\n    TYPE_NOT_SUPPORTED = auto()\n    \"\"\"Transaction type is not supported on this chain configuration.\"\"\"\n    SENDER_NOT_EOA = auto()\n    \"\"\"Transaction is coming from address that is not exist anymore.\"\"\"\n    ADDRESS_TOO_SHORT = auto()\n    \"\"\"Transaction `to` is not allowed to be less than 20 bytes.\"\"\"\n    ADDRESS_TOO_LONG = auto()\n    \"\"\"Transaction `to` is not allowed to be more than 20 bytes.\"\"\"\n    NONCE_MISMATCH_TOO_HIGH = auto()\n    \"\"\"Transaction nonce > sender.nonce.\"\"\"\n    NONCE_MISMATCH_TOO_LOW = auto()\n    \"\"\"Transaction nonce < sender.nonce.\"\"\"\n    NONCE_TOO_BIG = auto()\n    \"\"\"\n    Transaction `nonce` is not allowed to be max_uint64 - 1 (this is probably\n    TransactionTest).\n    \"\"\"\n    NONCE_IS_MAX = auto()\n    \"\"\"\n    Transaction `nonce` is not allowed to be max_uint64 - 1 (this is\n    StateTests).\n    \"\"\"\n    NONCE_OVERFLOW = auto()\n    \"\"\"Transaction `nonce` is not allowed to be more than uint64.\"\"\"\n    GASLIMIT_OVERFLOW = auto()\n    \"\"\"Transaction gaslimit exceeds 2^64-1 maximum value.\"\"\"\n    VALUE_OVERFLOW = auto()\n    \"\"\"Transaction value exceeds 2^256-1 maximum value.\"\"\"\n    GASPRICE_OVERFLOW = auto()\n    \"\"\"Transaction gasPrice exceeds 2^256-1 maximum value.\"\"\"\n    GASLIMIT_PRICE_PRODUCT_OVERFLOW = auto()\n    \"\"\"Transaction gasPrice * gasLimit exceeds 2^256-1 maximum value.\"\"\"\n    INVALID_SIGNATURE_VRS = auto()\n    \"\"\"Invalid transaction v, r, s values.\"\"\"\n    RLP_INVALID_SIGNATURE_R = auto()\n    \"\"\"Error reading transaction signature R value.\"\"\"\n    RLP_INVALID_SIGNATURE_S = auto()\n    \"\"\"Error reading transaction signature S value.\"\"\"\n    RLP_LEADING_ZEROS_GASLIMIT = auto()\n    \"\"\"Error reading transaction gaslimit field RLP.\"\"\"\n    RLP_LEADING_ZEROS_GASPRICE = auto()\n    \"\"\"Error reading transaction gasprice field RLP.\"\"\"\n    RLP_LEADING_ZEROS_VALUE = auto()\n    \"\"\"Error reading transaction value field RLP.\"\"\"\n    RLP_LEADING_ZEROS_NONCE = auto()\n    \"\"\"Error reading transaction nonce field RLP.\"\"\"\n    RLP_LEADING_ZEROS_R = auto()\n    \"\"\"Error reading transaction signature R field RLP.\"\"\"\n    RLP_LEADING_ZEROS_S = auto()\n    \"\"\"Error reading transaction signature S field RLP.\"\"\"\n    RLP_LEADING_ZEROS_V = auto()\n    \"\"\"Error reading transaction signature V field RLP.\"\"\"\n    RLP_LEADING_ZEROS_BASEFEE = auto()\n    \"\"\"Error reading transaction basefee field RLP.\"\"\"\n    RLP_LEADING_ZEROS_PRIORITY_FEE = auto()\n    \"\"\"Error reading transaction priority fee field RLP.\"\"\"\n    RLP_LEADING_ZEROS_DATA_SIZE = auto()\n    \"\"\"\n    Error reading transaction data field RLP, (rlp field length has leading\n    zeros).\n    \"\"\"\n    RLP_LEADING_ZEROS_NONCE_SIZE = auto()\n    \"\"\"\n    Error reading transaction nonce field RLP, (rlp field length has leading\n    zeros).\n    \"\"\"\n    RLP_TOO_FEW_ELEMENTS = auto()\n    \"\"\"\n    Error reading transaction RLP, structure has too few elements than\n    expected.\n    \"\"\"\n    RLP_TOO_MANY_ELEMENTS = auto()\n    \"\"\"\n    Error reading transaction RLP, structure has too many elements than\n    expected.\n    \"\"\"\n    RLP_ERROR_EOF = auto()\n    \"\"\"Error reading transaction RLP, rlp stream unexpectedly finished.\"\"\"\n    RLP_ERROR_SIZE = auto()\n    \"\"\"Error reading transaction RLP, rlp size is invalid.\"\"\"\n    RLP_ERROR_SIZE_LEADING_ZEROS = auto()\n    \"\"\"Error reading transaction RLP, field size has leading zeros.\"\"\"\n    INVALID_CHAINID = auto()\n    \"\"\"Transaction chain id encoding is incorrect.\"\"\"\n    RLP_INVALID_DATA = auto()\n    \"\"\"Transaction data field is invalid rlp.\"\"\"\n    RLP_INVALID_GASLIMIT = auto()\n    \"\"\"Transaction gaslimit field is invalid rlp.\"\"\"\n    RLP_INVALID_NONCE = auto()\n    \"\"\"Transaction nonce field is invalid rlp.\"\"\"\n    RLP_INVALID_TO = auto()\n    \"\"\"Transaction to field is invalid rlp.\"\"\"\n    RLP_INVALID_ACCESS_LIST_ADDRESS_TOO_LONG = auto()\n    \"\"\"Transaction access list address is > 20 bytes.\"\"\"\n    RLP_INVALID_ACCESS_LIST_ADDRESS_TOO_SHORT = auto()\n    \"\"\"Transaction access list address is < 20 bytes.\"\"\"\n    RLP_INVALID_ACCESS_LIST_STORAGE_TOO_LONG = auto()\n    \"\"\"Transaction access list storage hash > 32 bytes.\"\"\"\n    RLP_INVALID_ACCESS_LIST_STORAGE_TOO_SHORT = auto()\n    \"\"\"Transaction access list storage hash < 32 bytes.\"\"\"\n    RLP_INVALID_HEADER = auto()\n    \"\"\"Transaction failed to read from RLP as rlp header is invalid.\"\"\"\n    RLP_INVALID_VALUE = auto()\n    \"\"\"Transaction value field is invalid rlp/structure.\"\"\"\n    EC_RECOVERY_FAIL = auto()\n    \"\"\"Transaction has correct signature, but ec recovery failed.\"\"\"\n    INSUFFICIENT_ACCOUNT_FUNDS = auto()\n    \"\"\"\n    Transaction's sender does not have enough funds to pay for the transaction.\n    \"\"\"\n    INSUFFICIENT_MAX_FEE_PER_GAS = auto()\n    \"\"\"Transaction's max-fee-per-gas is lower than the block base-fee.\"\"\"\n    PRIORITY_OVERFLOW = auto()\n    \"\"\"\n    Transaction's max-priority-fee-per-gas is exceeds 2^256-1 maximum value.\n    \"\"\"\n    PRIORITY_GREATER_THAN_MAX_FEE_PER_GAS = auto()\n    \"\"\"\n    Transaction's max-priority-fee-per-gas is greater than the max-fee-per-gas.\n    \"\"\"\n    PRIORITY_GREATER_THAN_MAX_FEE_PER_GAS_2 = auto()\n    \"\"\"\n    Transaction's max-priority-fee-per-gas is greater than the max-fee-per-gas\n    (TransactionTests).\n    \"\"\"\n    INSUFFICIENT_MAX_FEE_PER_BLOB_GAS = auto()\n    \"\"\"\n    Transaction's max-fee-per-blob-gas is lower than the block's blob-gas\n    price.\n    \"\"\"\n    INTRINSIC_GAS_TOO_LOW = auto()\n    \"\"\"Transaction's gas limit is too low.\"\"\"\n    INTRINSIC_GAS_BELOW_FLOOR_GAS_COST = auto()\n    \"\"\"Transaction's gas limit is below the floor gas cost.\"\"\"\n    INITCODE_SIZE_EXCEEDED = auto()\n    \"\"\"\n    Transaction's initcode for a contract-creating transaction is too large.\n    \"\"\"\n    TYPE_3_TX_PRE_FORK = auto()\n    \"\"\"Transaction type 3 included before activation fork.\"\"\"\n    TYPE_3_TX_ZERO_BLOBS_PRE_FORK = auto()\n    \"\"\"Transaction type 3, with zero blobs, included before activation fork.\"\"\"\n    TYPE_3_TX_INVALID_BLOB_VERSIONED_HASH = auto()\n    \"\"\"Transaction contains a blob versioned hash with an invalid version.\"\"\"\n    TYPE_3_TX_WITH_FULL_BLOBS = auto()\n    \"\"\"Transaction contains full blobs (network-version of the transaction).\"\"\"\n    TYPE_3_TX_BLOB_COUNT_EXCEEDED = auto()\n    \"\"\"Transaction contains too many blob versioned hashes.\"\"\"\n    TYPE_3_TX_CONTRACT_CREATION = auto()\n    \"\"\"Transaction is a type 3 transaction and has an empty `to`.\"\"\"\n    TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED = auto()\n    \"\"\"Transaction causes block to go over blob gas limit.\"\"\"\n    GAS_ALLOWANCE_EXCEEDED = auto()\n    \"\"\"Transaction causes block to go over blob gas limit.\"\"\"\n    GAS_LIMIT_EXCEEDS_MAXIMUM = auto()\n    \"\"\"\n    Transaction gas limit exceeds the maximum allowed limit of 30 million.\n    \"\"\"\n    TYPE_3_TX_ZERO_BLOBS = auto()\n    \"\"\"Transaction is type 3, but has no blobs.\"\"\"\n    TYPE_4_EMPTY_AUTHORIZATION_LIST = auto()\n    \"\"\"Transaction is type 4, but has an empty authorization list.\"\"\"\n    TYPE_4_INVALID_AUTHORITY_SIGNATURE = auto()\n    \"\"\"Transaction authority signature is invalid\"\"\"\n    TYPE_4_INVALID_AUTHORITY_SIGNATURE_S_TOO_HIGH = auto()\n    \"\"\"Transaction authority signature is invalid\"\"\"\n    TYPE_4_TX_CONTRACT_CREATION = auto()\n    \"\"\"Transaction is a type 4 transaction and has an empty `to`.\"\"\"\n    TYPE_4_INVALID_AUTHORIZATION_FORMAT = auto()\n    \"\"\"\n    Transaction is type 4, but contains an authorization that has an invalid\n    format.\n    \"\"\"\n    TYPE_4_TX_PRE_FORK = auto()\n    \"\"\"Transaction type 4 included before activation fork.\"\"\"\n"
  },
  {
    "path": "src/ethereum_test_exceptions/exceptions.py",
    "content": "\"\"\"Exceptions for invalid execution.\"\"\"\n\nfrom enum import Enum, auto, unique\nfrom typing import Annotated, Any, Dict, List, TypeVar\n\nfrom pydantic import BeforeValidator, GetCoreSchemaHandler, PlainSerializer\nfrom pydantic_core.core_schema import (\n    PlainValidatorFunctionSchema,\n    no_info_plain_validator_function,\n    to_string_ser_schema,\n)\n\n_exception_classes: Dict[str, type] = {}\n\n\nclass ExceptionBase(Enum):\n    \"\"\"Base class for exceptions.\"\"\"\n\n    def __init_subclass__(cls) -> None:\n        \"\"\"Register the exception class.\"\"\"\n        super().__init_subclass__()\n        _exception_classes[cls.__name__] = cls\n\n    @classmethod\n    def __get_pydantic_core_schema__(\n        cls, source_type: Any, handler: GetCoreSchemaHandler\n    ) -> PlainValidatorFunctionSchema:\n        \"\"\"\n        Call class constructor without info and appends the serialization\n        schema.\n        \"\"\"\n        return no_info_plain_validator_function(\n            cls.from_str,\n            serialization=to_string_ser_schema(),\n        )\n\n    @classmethod\n    def from_str(cls, value: \"str | ExceptionBase\") -> \"ExceptionBase\":\n        \"\"\"Return ContainerKind enum value from a string.\"\"\"\n        if isinstance(value, ExceptionBase):\n            return value\n\n        class_name, enum_name = value.split(\".\")\n\n        if cls == ExceptionBase:\n            # Exception base automatically resolves the class\n            assert class_name in _exception_classes, f\"No such exception class: {class_name}\"\n            exception_class = _exception_classes[class_name]\n        else:\n            # Otherwise, use the class that the method is called on\n            assert cls.__name__ == class_name, (\n                f\"Unexpected exception type: {class_name}, expected {cls.__name__}\"\n            )\n            exception_class = cls\n\n        exception = getattr(exception_class, enum_name, None)\n        if exception is not None:\n            return exception\n        raise ValueError(f\"No such exception in {class_name}: {value}\")\n\n    def __contains__(self, exception) -> bool:\n        \"\"\"Check if provided exception is equal to this.\"\"\"\n        return self == exception\n\n    def __str__(self) -> str:\n        \"\"\"Return string representation of the exception.\"\"\"\n        return f\"{self.__class__.__name__}.{self.name}\"\n\n\ndef to_pipe_str(value: Any) -> str:\n    \"\"\"\n    Single pipe-separated string representation of an exception list.\n\n    Obtain a deterministic ordering by ordering using the exception string\n    representations.\n    \"\"\"\n    if isinstance(value, list):\n        return \"|\".join(str(exception) for exception in value)\n    return str(value)\n\n\ndef from_pipe_str(value: Any) -> str | List[str]:\n    \"\"\"Parse a single string as a pipe separated list into enum exceptions.\"\"\"\n    if isinstance(value, str):\n        exception_list = value.split(\"|\")\n        if len(exception_list) == 1:\n            return exception_list[0]\n        return exception_list\n    return value\n\n\nclass UndefinedException(str):\n    \"\"\"Undefined Exception.\"\"\"\n\n    mapper_name: str | None\n\n    def __new__(cls, value: str, *, mapper_name: str | None = None) -> \"UndefinedException\":\n        \"\"\"Create a new UndefinedException instance.\"\"\"\n        if isinstance(value, UndefinedException):\n            return value\n        assert isinstance(value, str)\n        instance = super().__new__(cls, value)\n        instance.mapper_name = mapper_name\n        return instance\n\n    @classmethod\n    def __get_pydantic_core_schema__(\n        cls, source_type: Any, handler: GetCoreSchemaHandler\n    ) -> PlainValidatorFunctionSchema:\n        \"\"\"\n        Call class constructor without info and appends the serialization\n        schema.\n        \"\"\"\n        return no_info_plain_validator_function(\n            cls,\n            serialization=to_string_ser_schema(),\n        )\n\n\n@unique\nclass TransactionException(ExceptionBase):\n    \"\"\"\n    Exception raised when a transaction is invalid, and thus cannot be\n    executed.\n\n    If a transaction with any of these exceptions is included in a block, the\n    block is invalid.\n    \"\"\"\n\n    TYPE_NOT_SUPPORTED = auto()\n    \"\"\"Transaction type is not supported on this chain configuration.\"\"\"\n    SENDER_NOT_EOA = auto()\n    \"\"\"Transaction is coming from address that is not exist anymore.\"\"\"\n    ADDRESS_TOO_SHORT = auto()\n    \"\"\"Transaction `to` is not allowed to be less than 20 bytes.\"\"\"\n    ADDRESS_TOO_LONG = auto()\n    \"\"\"Transaction `to` is not allowed to be more than 20 bytes.\"\"\"\n    NONCE_MISMATCH_TOO_HIGH = auto()\n    \"\"\"Transaction nonce > sender.nonce.\"\"\"\n    NONCE_MISMATCH_TOO_LOW = auto()\n    \"\"\"Transaction nonce < sender.nonce.\"\"\"\n    NONCE_TOO_BIG = auto()\n    \"\"\"\n    Transaction `nonce` is not allowed to be max_uint64 - 1 (this is probably\n    TransactionTest).\n    \"\"\"\n    NONCE_IS_MAX = auto()\n    \"\"\"\n    Transaction `nonce` is not allowed to be max_uint64 - 1 (this is\n    StateTests).\n    \"\"\"\n    NONCE_OVERFLOW = auto()\n    \"\"\"Transaction `nonce` is not allowed to be more than uint64.\"\"\"\n    GASLIMIT_OVERFLOW = auto()\n    \"\"\"Transaction gaslimit exceeds 2^64-1 maximum value.\"\"\"\n    VALUE_OVERFLOW = auto()\n    \"\"\"Transaction value exceeds 2^256-1 maximum value.\"\"\"\n    GASPRICE_OVERFLOW = auto()\n    \"\"\"Transaction gasPrice exceeds 2^256-1 maximum value.\"\"\"\n    GASLIMIT_PRICE_PRODUCT_OVERFLOW = auto()\n    \"\"\"Transaction gasPrice * gasLimit exceeds 2^256-1 maximum value.\"\"\"\n    INVALID_SIGNATURE_VRS = auto()\n    \"\"\"Invalid transaction v, r, s values.\"\"\"\n    RLP_INVALID_SIGNATURE_R = auto()\n    \"\"\"Error reading transaction signature R value.\"\"\"\n    RLP_INVALID_SIGNATURE_S = auto()\n    \"\"\"Error reading transaction signature S value.\"\"\"\n    RLP_LEADING_ZEROS_GASLIMIT = auto()\n    \"\"\"Error reading transaction gaslimit field RLP.\"\"\"\n    RLP_LEADING_ZEROS_GASPRICE = auto()\n    \"\"\"Error reading transaction gasprice field RLP.\"\"\"\n    RLP_LEADING_ZEROS_VALUE = auto()\n    \"\"\"Error reading transaction value field RLP.\"\"\"\n    RLP_LEADING_ZEROS_NONCE = auto()\n    \"\"\"Error reading transaction nonce field RLP.\"\"\"\n    RLP_LEADING_ZEROS_R = auto()\n    \"\"\"Error reading transaction signature R field RLP.\"\"\"\n    RLP_LEADING_ZEROS_S = auto()\n    \"\"\"Error reading transaction signature S field RLP.\"\"\"\n    RLP_LEADING_ZEROS_V = auto()\n    \"\"\"Error reading transaction signature V field RLP.\"\"\"\n    RLP_LEADING_ZEROS_BASEFEE = auto()\n    \"\"\"Error reading transaction basefee field RLP.\"\"\"\n    RLP_LEADING_ZEROS_PRIORITY_FEE = auto()\n    \"\"\"Error reading transaction priority fee field RLP.\"\"\"\n    RLP_LEADING_ZEROS_DATA_SIZE = auto()\n    \"\"\"\n    Error reading transaction data field RLP, (rlp field length has leading\n    zeros).\n    \"\"\"\n    RLP_LEADING_ZEROS_NONCE_SIZE = auto()\n    \"\"\"\n    Error reading transaction nonce field RLP, (rlp field length has leading\n    zeros).\n    \"\"\"\n    RLP_TOO_FEW_ELEMENTS = auto()\n    \"\"\"\n    Error reading transaction RLP, structure has too few elements than\n    expected.\n    \"\"\"\n    RLP_TOO_MANY_ELEMENTS = auto()\n    \"\"\"\n    Error reading transaction RLP, structure has too many elements than\n    expected.\n    \"\"\"\n    RLP_ERROR_EOF = auto()\n    \"\"\"Error reading transaction RLP, rlp stream unexpectedly finished.\"\"\"\n    RLP_ERROR_SIZE = auto()\n    \"\"\"Error reading transaction RLP, rlp size is invalid.\"\"\"\n    RLP_ERROR_SIZE_LEADING_ZEROS = auto()\n    \"\"\"Error reading transaction RLP, field size has leading zeros.\"\"\"\n    INVALID_CHAINID = auto()\n    \"\"\"Transaction chain id encoding is incorrect.\"\"\"\n    RLP_INVALID_DATA = auto()\n    \"\"\"Transaction data field is invalid rlp.\"\"\"\n    RLP_INVALID_GASLIMIT = auto()\n    \"\"\"Transaction gaslimit field is invalid rlp.\"\"\"\n    RLP_INVALID_NONCE = auto()\n    \"\"\"Transaction nonce field is invalid rlp.\"\"\"\n    RLP_INVALID_TO = auto()\n    \"\"\"Transaction to field is invalid rlp.\"\"\"\n    RLP_INVALID_ACCESS_LIST_ADDRESS_TOO_LONG = auto()\n    \"\"\"Transaction access list address is > 20 bytes.\"\"\"\n    RLP_INVALID_ACCESS_LIST_ADDRESS_TOO_SHORT = auto()\n    \"\"\"Transaction access list address is < 20 bytes.\"\"\"\n    RLP_INVALID_ACCESS_LIST_STORAGE_TOO_LONG = auto()\n    \"\"\"Transaction access list storage hash > 32 bytes.\"\"\"\n    RLP_INVALID_ACCESS_LIST_STORAGE_TOO_SHORT = auto()\n    \"\"\"Transaction access list storage hash < 32 bytes.\"\"\"\n    RLP_INVALID_HEADER = auto()\n    \"\"\"Transaction failed to read from RLP as rlp header is invalid.\"\"\"\n    RLP_INVALID_VALUE = auto()\n    \"\"\"Transaction value field is invalid rlp/structure.\"\"\"\n    EC_RECOVERY_FAIL = auto()\n    \"\"\"Transaction has correct signature, but ec recovery failed.\"\"\"\n    INSUFFICIENT_ACCOUNT_FUNDS = auto()\n    \"\"\"\n    Transaction's sender does not have enough funds to pay for the transaction.\n    \"\"\"\n    INSUFFICIENT_MAX_FEE_PER_GAS = auto()\n    \"\"\"Transaction's max-fee-per-gas is lower than the block base-fee.\"\"\"\n    PRIORITY_OVERFLOW = auto()\n    \"\"\"\n    Transaction's max-priority-fee-per-gas is exceeds 2^256-1 maximum value.\n    \"\"\"\n    PRIORITY_GREATER_THAN_MAX_FEE_PER_GAS = auto()\n    \"\"\"\n    Transaction's max-priority-fee-per-gas is greater than the max-fee-per-gas.\n    \"\"\"\n    PRIORITY_GREATER_THAN_MAX_FEE_PER_GAS_2 = auto()\n    \"\"\"\n    Transaction's max-priority-fee-per-gas is greater than the max-fee-per-gas\n    (TransactionTests).\n    \"\"\"\n    INSUFFICIENT_MAX_FEE_PER_BLOB_GAS = auto()\n    \"\"\"\n    Transaction's max-fee-per-blob-gas is lower than the block's blob-gas\n    price.\n    \"\"\"\n    INTRINSIC_GAS_TOO_LOW = auto()\n    \"\"\"Transaction's gas limit is too low.\"\"\"\n    INTRINSIC_GAS_BELOW_FLOOR_GAS_COST = auto()\n    \"\"\"Transaction's gas limit is below the floor gas cost.\"\"\"\n    INITCODE_SIZE_EXCEEDED = auto()\n    \"\"\"\n    Transaction's initcode for a contract-creating transaction is too large.\n    \"\"\"\n    TYPE_3_TX_PRE_FORK = auto()\n    \"\"\"Transaction type 3 included before activation fork.\"\"\"\n    TYPE_3_TX_ZERO_BLOBS_PRE_FORK = auto()\n    \"\"\"Transaction type 3, with zero blobs, included before activation fork.\"\"\"\n    TYPE_3_TX_INVALID_BLOB_VERSIONED_HASH = auto()\n    \"\"\"Transaction contains a blob versioned hash with an invalid version.\"\"\"\n    TYPE_3_TX_WITH_FULL_BLOBS = auto()\n    \"\"\"Transaction contains full blobs (network-version of the transaction).\"\"\"\n    TYPE_3_TX_BLOB_COUNT_EXCEEDED = auto()\n    \"\"\"Transaction contains too many blob versioned hashes.\"\"\"\n    TYPE_3_TX_CONTRACT_CREATION = auto()\n    \"\"\"Transaction is a type 3 transaction and has an empty `to`.\"\"\"\n    TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED = auto()\n    \"\"\"Transaction causes block to go over blob gas limit.\"\"\"\n    GAS_ALLOWANCE_EXCEEDED = auto()\n    \"\"\"Transaction causes block to go over blob gas limit.\"\"\"\n    GAS_LIMIT_EXCEEDS_MAXIMUM = auto()\n    \"\"\"\n    Transaction gas limit exceeds the maximum allowed limit of 30 million.\n    \"\"\"\n    TYPE_3_TX_ZERO_BLOBS = auto()\n    \"\"\"Transaction is type 3, but has no blobs.\"\"\"\n    TYPE_4_EMPTY_AUTHORIZATION_LIST = auto()\n    \"\"\"Transaction is type 4, but has an empty authorization list.\"\"\"\n    TYPE_4_INVALID_AUTHORITY_SIGNATURE = auto()\n    \"\"\"Transaction authority signature is invalid\"\"\"\n    TYPE_4_INVALID_AUTHORITY_SIGNATURE_S_TOO_HIGH = auto()\n    \"\"\"Transaction authority signature is invalid\"\"\"\n    TYPE_4_TX_CONTRACT_CREATION = auto()\n    \"\"\"Transaction is a type 4 transaction and has an empty `to`.\"\"\"\n    TYPE_4_INVALID_AUTHORIZATION_FORMAT = auto()\n    \"\"\"\n    Transaction is type 4, but contains an authorization that has an invalid\n    format.\n    \"\"\"\n    TYPE_4_TX_PRE_FORK = auto()\n    \"\"\"Transaction type 4 included before activation fork.\"\"\"\n\n\n@unique\nclass BlockException(ExceptionBase):\n    \"\"\"\n    Exception raised when a block is invalid, but not due to a transaction.\n\n    E.g. all transactions in the block are valid, and can be applied to the\n    state, but the block header contains an invalid field.\n    \"\"\"\n\n    TOO_MANY_UNCLES = auto()\n    \"\"\"Block declares too many uncles over the allowed limit.\"\"\"\n    UNCLE_IN_CHAIN = auto()\n    \"\"\"Block declares uncle header that is already imported into chain.\"\"\"\n    UNCLE_IS_ANCESTOR = auto()\n    \"\"\"Block declares uncle header that is directly a parent of this block.\"\"\"\n    UNCLE_IS_BROTHER = auto()\n    \"\"\"Block declares two similar uncle headers.\"\"\"\n    UNCLE_PARENT_INCORRECT = auto()\n    \"\"\"Block declares uncle header that is an outdated block to be an uncle.\"\"\"\n    EXTRA_DATA_TOO_BIG = auto()\n    \"\"\"Block header's extra data >32 bytes.\"\"\"\n    EXTRA_DATA_INVALID_DAO = auto()\n    \"\"\"\n    Block header's extra data after dao fork must be a fixed pre defined hash.\n    \"\"\"\n    UNKNOWN_PARENT = auto()\n    \"\"\"\n    Block header's parent hash does not correspond to any of existing blocks on\n    chain.\n    \"\"\"\n    UNCLE_UNKNOWN_PARENT = auto()\n    \"\"\"\n    Uncle header's parent hash does not correspond to any of existing blocks on\n    chain.\n    \"\"\"\n    UNKNOWN_PARENT_ZERO = auto()\n    \"\"\"Block header's parent hash is zero hash.\"\"\"\n    GASLIMIT_TOO_BIG = auto()\n    \"\"\"Block header's gas limit > 0x7fffffffffffffff.\"\"\"\n    INVALID_BLOCK_NUMBER = auto()\n    \"\"\"Block header's number != parent header's number + 1.\"\"\"\n    INVALID_BLOCK_TIMESTAMP_OLDER_THAN_PARENT = auto()\n    \"\"\"Block header's timestamp <= parent header's timestamp.\"\"\"\n    INVALID_DIFFICULTY = auto()\n    \"\"\"\n    Block header's difficulty does not match the difficulty formula calculated\n    from previous block.\n    \"\"\"\n    INVALID_LOG_BLOOM = auto()\n    \"\"\"\n    Block header's logs bloom hash does not match the actually computed log\n    bloom.\n    \"\"\"\n    INVALID_STATE_ROOT = auto()\n    \"\"\"\n    Block header's state root hash does not match the actually computed hash of\n    the state.\n    \"\"\"\n    INVALID_RECEIPTS_ROOT = auto()\n    \"\"\"\n    Block header's receipts root hash does not match the actually computed hash\n    of receipts.\n    \"\"\"\n    INVALID_TRANSACTIONS_ROOT = auto()\n    \"\"\"\n    Block header's transactions root hash does not match the actually computed\n    hash of tx tree.\n    \"\"\"\n    INVALID_UNCLES_HASH = auto()\n    \"\"\"\n    Block header's uncle hash does not match the actually computed hash of\n    block's uncles.\n    \"\"\"\n    GAS_USED_OVERFLOW = auto()\n    \"\"\"Block transactions consume more gas than block header allow.\"\"\"\n    INVALID_GASLIMIT = auto()\n    \"\"\"\n    Block header's gas limit does not match the gas limit formula calculated\n    from previous block.\n    \"\"\"\n    INVALID_BASEFEE_PER_GAS = auto()\n    \"\"\"Block header's base_fee_per_gas field is calculated incorrect.\"\"\"\n    INVALID_GAS_USED = auto()\n    \"\"\"\n    Block header's actual gas used does not match the provided header's value\n    \"\"\"\n    INVALID_GAS_USED_ABOVE_LIMIT = auto()\n    \"\"\"Block header's gas used value is above the gas limit field's value.\"\"\"\n    INVALID_WITHDRAWALS_ROOT = auto()\n    \"\"\"\n    Block header's withdrawals root does not match calculated withdrawals root.\n    \"\"\"\n    INCORRECT_BLOCK_FORMAT = auto()\n    \"\"\"\n    Block's format is incorrect, contains invalid fields, is missing fields, or\n    contains fields of a fork that is not active yet.\n    \"\"\"\n    BLOB_GAS_USED_ABOVE_LIMIT = auto()\n    \"\"\"Block's blob gas used in header is above the limit.\"\"\"\n    INCORRECT_BLOB_GAS_USED = auto()\n    \"\"\"Block's blob gas used in header is incorrect.\"\"\"\n    INCORRECT_EXCESS_BLOB_GAS = auto()\n    \"\"\"Block's excess blob gas in header is incorrect.\"\"\"\n    INVALID_VERSIONED_HASHES = auto()\n    \"\"\"Incorrect number of versioned hashes in a payload.\"\"\"\n    RLP_STRUCTURES_ENCODING = auto()\n    \"\"\"\n    Block's rlp encoding is valid but ethereum structures in it are invalid.\n    \"\"\"\n    RLP_WITHDRAWALS_NOT_READ = auto()\n    \"\"\"Block's rlp encoding is missing withdrawals.\"\"\"\n    RLP_INVALID_FIELD_OVERFLOW_64 = auto()\n    \"\"\"One of block's fields rlp is overflow 2**64 value.\"\"\"\n    RLP_INVALID_ADDRESS = auto()\n    \"\"\"Block withdrawals address is rlp of invalid address != 20 bytes.\"\"\"\n    RLP_BLOCK_LIMIT_EXCEEDED = auto()\n    \"\"\"Block's rlp encoding is larger than the allowed limit.\"\"\"\n    INVALID_REQUESTS = auto()\n    \"\"\"Block's requests are invalid.\"\"\"\n    IMPORT_IMPOSSIBLE_LEGACY = auto()\n    \"\"\"Legacy block import is impossible in this chain configuration.\"\"\"\n    IMPORT_IMPOSSIBLE_LEGACY_WRONG_PARENT = auto()\n    \"\"\"\n    Legacy block import is impossible, trying to import on top of a block that\n    is not legacy.\n    \"\"\"\n    IMPORT_IMPOSSIBLE_LONDON_WRONG_PARENT = auto()\n    \"\"\"\n    Trying to import london (basefee) block on top of block that is not 1559.\n    \"\"\"\n    IMPORT_IMPOSSIBLE_PARIS_WRONG_POW = auto()\n    \"\"\"Trying to import paris(merge) block with PoW enabled.\"\"\"\n    IMPORT_IMPOSSIBLE_PARIS_WRONG_POS = auto()\n    \"\"\"\n    Trying to import paris(merge) block with PoS enabled before TTD is reached.\n    \"\"\"\n    IMPORT_IMPOSSIBLE_LONDON_OVER_PARIS = auto()\n    \"\"\"Trying to import london looking block over paris network (POS).\"\"\"\n    IMPORT_IMPOSSIBLE_PARIS_OVER_SHANGHAI = auto()\n    \"\"\"Trying to import paris block on top of shanghai block.\"\"\"\n    IMPORT_IMPOSSIBLE_SHANGHAI = auto()\n    \"\"\"Shanghai block import is impossible in this chain configuration.\"\"\"\n    IMPORT_IMPOSSIBLE_UNCLES_OVER_PARIS = auto()\n    \"\"\"\n    Trying to import a block after paris fork that has not empty uncles hash.\n    \"\"\"\n    IMPORT_IMPOSSIBLE_DIFFICULTY_OVER_PARIS = auto()\n    \"\"\"Trying to import a block after paris fork that has difficulty != 0.\"\"\"\n    SYSTEM_CONTRACT_EMPTY = auto()\n    \"\"\"\n    A system contract address contains no code at the end of fork activation\n    block.\n    \"\"\"\n    SYSTEM_CONTRACT_CALL_FAILED = auto()\n    \"\"\"\n    A system contract call at the end of block execution (from the system\n    address) fails.\n    \"\"\"\n    INVALID_BLOCK_HASH = auto()\n    \"\"\"\n    Block header's hash does not match the actually computed hash of the block.\n    \"\"\"\n    INVALID_DEPOSIT_EVENT_LAYOUT = auto()\n    \"\"\"\n    Transaction emits a `DepositEvent` in the deposit contract (EIP-6110), but\n    the layout of the event does not match the required layout.\n    \"\"\"\n\n\n@unique\nclass EOFException(ExceptionBase):\n    \"\"\"Exception raised when an EOF container is invalid.\"\"\"\n\n    DEFAULT_EXCEPTION = auto()\n    \"\"\"Expect some exception, not yet known.\"\"\"\n\n    UNDEFINED_EXCEPTION = auto()\n    \"\"\"Indicates that exception string is not mapped to an exception enum.\"\"\"\n\n    UNDEFINED_INSTRUCTION = auto()\n    \"\"\"EOF container has undefined instruction in it's body code.\"\"\"\n\n    UNKNOWN_VERSION = auto()\n    \"\"\"EOF container has an unknown version.\"\"\"\n    INCOMPLETE_MAGIC = auto()\n    \"\"\"EOF container has not enough bytes to read magic.\"\"\"\n    INVALID_MAGIC = auto()\n    \"\"\"EOF container has not allowed magic version byte.\"\"\"\n    INVALID_VERSION = auto()\n    \"\"\"EOF container version bytes mismatch.\"\"\"\n    INVALID_NON_RETURNING_FLAG = auto()\n    \"\"\"EOF container's section has non-returning flag set incorrectly.\"\"\"\n    INVALID_RJUMP_DESTINATION = auto()\n    \"\"\"Code has RJUMP instruction with invalid parameters.\"\"\"\n    MISSING_TYPE_HEADER = auto()\n    \"\"\"EOF container missing types section.\"\"\"\n    INVALID_TYPE_SECTION_SIZE = auto()\n    \"\"\"EOF container types section has wrong size.\"\"\"\n    INVALID_TYPE_BODY = auto()\n    \"\"\"EOF container types body section bytes are wrong.\"\"\"\n    MISSING_CODE_HEADER = auto()\n    \"\"\"EOF container missing code section.\"\"\"\n    INVALID_CODE_SECTION = auto()\n    \"\"\"EOF container code section bytes are incorrect.\"\"\"\n    INCOMPLETE_CODE_HEADER = auto()\n    \"\"\"EOF container code header missing bytes.\"\"\"\n    INCOMPLETE_DATA_HEADER = auto()\n    \"\"\"EOF container data header missing bytes.\"\"\"\n    ZERO_SECTION_SIZE = auto()\n    \"\"\"EOF container data header construction is wrong.\"\"\"\n    MISSING_DATA_SECTION = auto()\n    \"\"\"EOF container missing data section\"\"\"\n    INCOMPLETE_CONTAINER = auto()\n    \"\"\"EOF container bytes are incomplete.\"\"\"\n    INVALID_SECTION_BODIES_SIZE = auto()\n    \"\"\"Sections bodies does not match sections headers.\"\"\"\n    TRAILING_BYTES = auto()\n    \"\"\"EOF container has bytes beyond data section.\"\"\"\n    MISSING_TERMINATOR = auto()\n    \"\"\"EOF container missing terminator bytes between header and body.\"\"\"\n    MISSING_HEADERS_TERMINATOR = auto()\n    \"\"\"Some type of another exception about missing headers terminator.\"\"\"\n    INVALID_FIRST_SECTION_TYPE = auto()\n    \"\"\"EOF container header does not have types section first.\"\"\"\n    INCOMPLETE_SECTION_NUMBER = auto()\n    \"\"\"EOF container header has section that is missing declaration bytes.\"\"\"\n    INCOMPLETE_SECTION_SIZE = auto()\n    \"\"\"EOF container header has section that is defined incorrectly.\"\"\"\n    TOO_MANY_CODE_SECTIONS = auto()\n    \"\"\"EOF container header has too many code sections.\"\"\"\n    MISSING_STOP_OPCODE = auto()\n    \"\"\"EOF container's code missing STOP bytecode at it's end.\"\"\"\n    INPUTS_OUTPUTS_NUM_ABOVE_LIMIT = auto()\n    \"\"\"EOF container code section inputs/outputs number is above the limit\"\"\"\n    UNREACHABLE_INSTRUCTIONS = auto()\n    \"\"\"EOF container's code have instructions that are unreachable.\"\"\"\n    UNREACHABLE_CODE_SECTIONS = auto()\n    \"\"\"EOF container's body have code sections that are unreachable.\"\"\"\n    STACK_UNDERFLOW = auto()\n    \"\"\"EOF container's code produces an stack underflow.\"\"\"\n    STACK_OVERFLOW = auto()\n    \"\"\"EOF container's code produces an stack overflow.\"\"\"\n    STACK_HEIGHT_MISMATCH = auto()\n    \"\"\"EOF container section stack height mismatch.\"\"\"\n    MAX_STACK_INCREASE_ABOVE_LIMIT = auto()\n    \"\"\"EOF container's specified max stack increase is above the limit.\"\"\"\n    STACK_HIGHER_THAN_OUTPUTS = auto()\n    \"\"\"\n    EOF container section stack height is higher than the outputs. when\n    returning\n    \"\"\"\n    JUMPF_DESTINATION_INCOMPATIBLE_OUTPUTS = auto()\n    \"\"\"\n    EOF container section JUMPF's to a destination section with incompatible\n    outputs.\n    \"\"\"\n    INVALID_MAX_STACK_INCREASE = auto()\n    \"\"\"\n    EOF container section's specified max stack increase does not match the\n    actual stack height.\n    \"\"\"\n    INVALID_DATALOADN_INDEX = auto()\n    \"\"\"A DATALOADN instruction has out-of-bounds index for the data section.\"\"\"\n    TRUNCATED_INSTRUCTION = auto()\n    \"\"\"EOF container's code section has truncated instruction.\"\"\"\n    TOPLEVEL_CONTAINER_TRUNCATED = auto()\n    \"\"\"Top-level EOF container has data section truncated\"\"\"\n    ORPHAN_SUBCONTAINER = auto()\n    \"\"\"EOF container has an unreferenced subcontainer. '\"\"\"\n    CONTAINER_SIZE_ABOVE_LIMIT = auto()\n    \"\"\"EOF container is above size limit\"\"\"\n    INVALID_CONTAINER_SECTION_INDEX = auto()\n    \"\"\"Instruction references container section that does not exist.\"\"\"\n    INCOMPATIBLE_CONTAINER_KIND = auto()\n    \"\"\"Incompatible instruction found in a container of a specific kind.\"\"\"\n    AMBIGUOUS_CONTAINER_KIND = auto()\n    \"\"\"The kind of a sub-container cannot be uniquely deduced.\"\"\"\n    TOO_MANY_CONTAINERS = auto()\n    \"\"\"EOF container header has too many sub-containers.\"\"\"\n    INVALID_CODE_SECTION_INDEX = auto()\n    \"\"\"CALLF Operation refers to a non-existent code section\"\"\"\n    UNEXPECTED_HEADER_KIND = auto()\n    \"\"\"Header parsing encountered a section kind it wasn't expecting\"\"\"\n    CALLF_TO_NON_RETURNING = auto()\n    \"\"\"CALLF instruction targeting a non-returning code section\"\"\"\n    EOFCREATE_WITH_TRUNCATED_CONTAINER = auto()\n    \"\"\"EOFCREATE with truncated container\"\"\"\n\n\n\"\"\"Pydantic Annotated Types\"\"\"\n\nExceptionInstanceOrList = Annotated[\n    List[TransactionException | BlockException] | TransactionException | BlockException,\n    BeforeValidator(from_pipe_str),\n    PlainSerializer(to_pipe_str),\n]\n\nTransactionExceptionInstanceOrList = Annotated[\n    List[TransactionException] | TransactionException,\n    BeforeValidator(from_pipe_str),\n    PlainSerializer(to_pipe_str),\n]\n\nBlockExceptionInstanceOrList = Annotated[\n    List[BlockException] | BlockException,\n    BeforeValidator(from_pipe_str),\n    PlainSerializer(to_pipe_str),\n]\n\nEOFExceptionInstanceOrList = Annotated[\n    List[EOFException] | EOFException,\n    BeforeValidator(from_pipe_str),\n    PlainSerializer(to_pipe_str),\n]\n\nExceptionBoundTypeVar = TypeVar(\n    \"ExceptionBoundTypeVar\", TransactionException, BlockException, EOFException\n)\n"
  },
  {
    "path": "src/ethereum_test_exceptions/py.typed",
    "content": ""
  },
  {
    "path": "src/ethereum_test_exceptions/tests/__init__.py",
    "content": "\"\"\"Tests for the ethereum_test_exceptions package.\"\"\"\n"
  },
  {
    "path": "src/ethereum_test_exceptions/tests/test_exceptions.py",
    "content": "\"\"\"Test suite for ethereum_test_exceptions module.\"\"\"\n\nimport pytest\nfrom pydantic import TypeAdapter\n\nfrom ..exceptions import (\n    BlockException,\n    BlockExceptionInstanceOrList,\n    ExceptionInstanceOrList,\n    TransactionException,\n    TransactionExceptionInstanceOrList,\n)\n\nGenericExceptionListAdapter: TypeAdapter = TypeAdapter(ExceptionInstanceOrList)\nTransactionExceptionListAdapter: TypeAdapter = TypeAdapter(TransactionExceptionInstanceOrList)\nBlockExceptionListAdapter: TypeAdapter = TypeAdapter(BlockExceptionInstanceOrList)\n\n\n@pytest.mark.parametrize(\n    \"exception, expected\",\n    [\n        (\n            TransactionException.INSUFFICIENT_ACCOUNT_FUNDS,\n            \"TransactionException.INSUFFICIENT_ACCOUNT_FUNDS\",\n        ),\n        (\n            TransactionException.INITCODE_SIZE_EXCEEDED,\n            \"TransactionException.INITCODE_SIZE_EXCEEDED\",\n        ),\n        (BlockException.INCORRECT_BLOB_GAS_USED, \"BlockException.INCORRECT_BLOB_GAS_USED\"),\n        (BlockException.INCORRECT_BLOCK_FORMAT, \"BlockException.INCORRECT_BLOCK_FORMAT\"),\n    ],\n)\ndef test_exceptions_string_conversion(\n    exception: BlockException | TransactionException, expected: str\n) -> None:\n    \"\"\"\n    Test that the exceptions are unique and have the correct string\n    representation.\n    \"\"\"\n    assert str(exception) == expected\n\n\n@pytest.mark.parametrize(\n    \"type_adapter,exception,expected\",\n    [\n        (\n            GenericExceptionListAdapter,\n            [\n                BlockException.INCORRECT_BLOB_GAS_USED,\n                TransactionException.INSUFFICIENT_ACCOUNT_FUNDS,\n            ],\n            \"BlockException.INCORRECT_BLOB_GAS_USED|\"\n            \"TransactionException.INSUFFICIENT_ACCOUNT_FUNDS\",\n        ),\n        (\n            GenericExceptionListAdapter,\n            [\n                BlockException.INCORRECT_BLOB_GAS_USED,\n                TransactionException.INSUFFICIENT_ACCOUNT_FUNDS,\n                TransactionException.INITCODE_SIZE_EXCEEDED,\n            ],\n            \"BlockException.INCORRECT_BLOB_GAS_USED\"\n            \"|TransactionException.INSUFFICIENT_ACCOUNT_FUNDS\"\n            \"|TransactionException.INITCODE_SIZE_EXCEEDED\",\n        ),\n        (\n            GenericExceptionListAdapter,\n            [\n                TransactionException.INSUFFICIENT_ACCOUNT_FUNDS,\n                BlockException.INCORRECT_BLOB_GAS_USED,\n            ],\n            \"TransactionException.INSUFFICIENT_ACCOUNT_FUNDS\"\n            \"|BlockException.INCORRECT_BLOB_GAS_USED\",\n        ),\n        (\n            TransactionExceptionListAdapter,\n            [\n                TransactionException.INSUFFICIENT_ACCOUNT_FUNDS,\n                TransactionException.INITCODE_SIZE_EXCEEDED,\n            ],\n            \"TransactionException.INSUFFICIENT_ACCOUNT_FUNDS\"\n            \"|TransactionException.INITCODE_SIZE_EXCEEDED\",\n        ),\n        (\n            BlockExceptionListAdapter,\n            [\n                BlockException.INCORRECT_BLOB_GAS_USED,\n                BlockException.INCORRECT_BLOCK_FORMAT,\n            ],\n            \"BlockException.INCORRECT_BLOB_GAS_USED|BlockException.INCORRECT_BLOCK_FORMAT\",\n        ),\n    ],\n)\ndef test_exceptions_or(type_adapter: TypeAdapter, exception: list, expected: str) -> None:\n    \"\"\"Test that the exceptions can be combined using the | operator.\"\"\"\n    assert type_adapter.dump_python(type_adapter.validate_python(exception)) == expected\n"
  },
  {
    "path": "src/ethereum_test_execution/__init__.py",
    "content": "\"\"\"Ethereum test execution package.\"\"\"\n\nfrom .base import BaseExecute, ExecuteFormat, LabeledExecuteFormat\nfrom .blob_transaction import BlobTransaction\nfrom .transaction_post import TransactionPost\n\n__all__ = [\n    \"BaseExecute\",\n    \"ExecuteFormat\",\n    \"BlobTransaction\",\n    \"LabeledExecuteFormat\",\n    \"TransactionPost\",\n]\n"
  },
  {
    "path": "src/ethereum_test_execution/base.py",
    "content": "\"\"\"Ethereum test execution base types.\"\"\"\n\nfrom abc import abstractmethod\nfrom typing import Annotated, Any, ClassVar, Dict, Type\n\nfrom pydantic import PlainSerializer, PlainValidator\nfrom pytest import FixtureRequest\n\nfrom ethereum_test_base_types import CamelModel\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_rpc import EngineRPC, EthRPC\n\n\nclass BaseExecute(CamelModel):\n    \"\"\"Represents a base execution format.\"\"\"\n\n    # Base Execute class properties\n    formats: ClassVar[Dict[str, Type[\"BaseExecute\"]]] = {}\n\n    # Execute format properties\n    format_name: ClassVar[str] = \"\"\n    description: ClassVar[str] = \"Unknown execute format; it has not been set.\"\n    requires_engine_rpc: ClassVar[bool] = False\n\n    @classmethod\n    def __pydantic_init_subclass__(cls, **kwargs: Any) -> None:\n        \"\"\"\n        Register all subclasses of BaseExecute with a execute format\n        name set as possible execute formats.\n        \"\"\"\n        if cls.format_name:\n            # Register the new execute format\n            BaseExecute.formats[cls.format_name] = cls\n\n    @abstractmethod\n    def execute(\n        self,\n        fork: Fork,\n        eth_rpc: EthRPC,\n        engine_rpc: EngineRPC | None,\n        request: FixtureRequest,\n    ) -> None:\n        \"\"\"Execute the format.\"\"\"\n        pass\n\n\nclass LabeledExecuteFormat:\n    \"\"\"\n    Represents an execution format with a custom label.\n\n    This label will be used in the test id and also will be added as a marker\n    to the generated test case when executing the test.\n    \"\"\"\n\n    format: Type[BaseExecute]\n    label: str\n    description: str\n\n    registered_labels: ClassVar[Dict[str, \"LabeledExecuteFormat\"]] = {}\n\n    def __init__(\n        self,\n        execute_format: \"Type[BaseExecute] | LabeledExecuteFormat\",\n        label: str,\n        description: str,\n    ):\n        \"\"\"Initialize the execute format with a custom label.\"\"\"\n        self.format = (\n            execute_format.format\n            if isinstance(execute_format, LabeledExecuteFormat)\n            else execute_format\n        )\n        self.label = label\n        self.description = description\n        if label not in LabeledExecuteFormat.registered_labels:\n            LabeledExecuteFormat.registered_labels[label] = self\n\n    @property\n    def format_name(self) -> str:\n        \"\"\"Get the execute format name.\"\"\"\n        return self.format.format_name\n\n    @property\n    def requires_engine_rpc(self) -> bool:\n        \"\"\"Get the requires engine RPC flag.\"\"\"\n        return self.format.requires_engine_rpc\n\n    def __eq__(self, other: Any) -> bool:\n        \"\"\"\n        Check if two labeled execute formats are equal.\n\n        If the other object is a ExecuteFormat type, the format of the labeled\n        execute format will be compared with the format of the other object.\n        \"\"\"\n        if isinstance(other, LabeledExecuteFormat):\n            return self.format == other.format\n        if isinstance(other, type) and issubclass(other, BaseExecute):\n            return self.format == other\n        return False\n\n\n# Type alias for a base execute class\nExecuteFormat = Annotated[\n    Type[BaseExecute],\n    PlainSerializer(lambda f: f.format_name),\n    PlainValidator(lambda f: BaseExecute.formats[f] if f in BaseExecute.formats else f),\n]\n"
  },
  {
    "path": "src/ethereum_test_execution/blob_transaction.py",
    "content": "\"\"\"Test execution format to get blobs from the execution client.\"\"\"\n\nfrom hashlib import sha256\nfrom typing import ClassVar, Dict, List\n\nfrom pytest import FixtureRequest\n\nfrom ethereum_test_base_types import Address, Hash\nfrom ethereum_test_base_types.base_types import Bytes\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_rpc import BlobAndProofV1, BlobAndProofV2, EngineRPC, EthRPC\nfrom ethereum_test_rpc.rpc_types import GetBlobsResponse\nfrom ethereum_test_types import NetworkWrappedTransaction, Transaction\nfrom ethereum_test_types.transaction_types import TransactionTestMetadata\nfrom pytest_plugins.custom_logging import get_logger\n\nfrom .base import BaseExecute\n\nlogger = get_logger(__name__)\n\n\ndef versioned_hashes_with_blobs_and_proofs(\n    tx: NetworkWrappedTransaction,\n) -> Dict[Hash, BlobAndProofV1 | BlobAndProofV2]:\n    \"\"\"\n    Return a dictionary of versioned hashes with their corresponding blobs and\n    proofs.\n    \"\"\"\n    versioned_hashes: Dict[Hash, BlobAndProofV1 | BlobAndProofV2] = {}\n    for blob in tx.blob_objects:\n        if isinstance(blob.proof, Bytes):\n            versioned_hashes[blob.versioned_hash] = BlobAndProofV1(\n                blob=blob.data, proof=blob.proof\n            )\n        elif isinstance(blob.proof, list):\n            versioned_hashes[blob.versioned_hash] = BlobAndProofV2(\n                blob=blob.data, proofs=blob.proof\n            )\n        else:\n            raise ValueError(\n                f\"Blob with versioned hash {blob.versioned_hash.hex()} requires a proof \"\n                \"that is not None\"\n            )\n\n    return versioned_hashes\n\n\nclass BlobTransaction(BaseExecute):\n    \"\"\"\n    Represents a test execution format to send blob transactions to the client\n    and then use `engine_getBlobsV*` end points to validate the proofs\n    generated by the execution client.\n    \"\"\"\n\n    format_name: ClassVar[str] = \"blob_transaction_test\"\n    description: ClassVar[str] = (\n        \"Send blob transactions to the execution client and validate their availability via \"\n        \"`engine_getBlobsV*`\"\n    )\n    requires_engine_rpc: ClassVar[bool] = True\n\n    txs: List[NetworkWrappedTransaction | Transaction]\n    nonexisting_blob_hashes: List[Hash] | None = None\n\n    def execute(\n        self,\n        fork: Fork,\n        eth_rpc: EthRPC,\n        engine_rpc: EngineRPC | None,\n        request: FixtureRequest,\n    ) -> None:\n        \"\"\"Execute the format.\"\"\"\n        assert engine_rpc is not None, \"Engine RPC is required for this format.\"\n        versioned_hashes: Dict[Hash, BlobAndProofV1 | BlobAndProofV2] = {}\n        sent_txs: List[Transaction] = []\n        for tx_index, tx in enumerate(self.txs):\n            if isinstance(tx, NetworkWrappedTransaction):\n                tx.tx = tx.tx.with_signature_and_sender()\n                sent_txs.append(tx.tx)\n                expected_hash = tx.tx.hash\n                versioned_hashes.update(versioned_hashes_with_blobs_and_proofs(tx))\n                to_address = tx.tx.to\n            else:\n                tx = tx.with_signature_and_sender()\n                sent_txs.append(tx)\n                expected_hash = tx.hash\n                to_address = tx.to\n            label = to_address.label if isinstance(to_address, Address) else None\n            metadata = TransactionTestMetadata(\n                test_id=request.node.nodeid,\n                phase=\"testing\",\n                target=label,\n                tx_index=tx_index,\n            )\n            received_hash = eth_rpc.send_raw_transaction(tx.rlp(), request_id=metadata.to_json())\n            assert expected_hash == received_hash, (\n                f\"Expected hash {expected_hash} does not match received hash {received_hash}.\"\n            )\n        version = fork.engine_get_blobs_version()\n        assert version is not None, \"Engine get blobs version is not supported by the fork.\"\n\n        # ensure that clients respond 'null' when they have no access to at\n        # least one blob\n        list_versioned_hashes = list(versioned_hashes.keys())\n        if self.nonexisting_blob_hashes is not None:\n            list_versioned_hashes.extend(self.nonexisting_blob_hashes)\n\n        blob_response: GetBlobsResponse | None = engine_rpc.get_blobs(\n            list_versioned_hashes, version=version\n        )\n\n        # if non-existing blob hashes were request then the response must be\n        # 'null'\n        if self.nonexisting_blob_hashes is not None:\n            if blob_response is not None:\n                raise ValueError(\n                    f\"Non-existing blob hashes were requested and \"\n                    \"the client was expected to respond with 'null', but instead it replied: \"\n                    f\"{blob_response.root}\"\n                )\n            else:\n                logger.info(\n                    \"Test was passed (partial responses are not allowed and the client \"\n                    \"correctly returned 'null')\"\n                )\n                eth_rpc.wait_for_transactions(sent_txs)\n                return\n\n        assert blob_response is not None\n        local_blobs_and_proofs = list(versioned_hashes.values())\n        assert len(blob_response) == len(local_blobs_and_proofs), (\n            f\"Expected {len(local_blobs_and_proofs)} blobs and proofs, got {len(blob_response)}.\"\n        )\n\n        for expected_blob, received_blob in zip(\n            local_blobs_and_proofs, blob_response.root, strict=True\n        ):\n            if received_blob is None:\n                raise ValueError(\"Received blob is empty.\")\n            if isinstance(expected_blob, BlobAndProofV1):\n                if not isinstance(received_blob, BlobAndProofV1):\n                    raise ValueError(\"Received blob is not a BlobAndProofV1.\")\n                if expected_blob.blob != received_blob.blob:\n                    raise ValueError(\"Blob mismatch.\")\n                if expected_blob.proof != received_blob.proof:\n                    raise ValueError(\"Proof mismatch.\")\n            elif isinstance(expected_blob, BlobAndProofV2):\n                if not isinstance(received_blob, BlobAndProofV2):\n                    raise ValueError(\"Received blob is not a BlobAndProofV2.\")\n                if expected_blob.blob != received_blob.blob:\n                    raise ValueError(\"Blob mismatch.\")\n                if expected_blob.proofs != received_blob.proofs:\n                    error_message = \"Proofs mismatch.\"\n                    error_message += f\"len(expected_blob.proofs) = {len(expected_blob.proofs)}, \"\n                    error_message += f\"len(received_blob.proofs) = {len(received_blob.proofs)}\\n\"\n                    if len(expected_blob.proofs) == len(received_blob.proofs):\n                        index = 0\n\n                        for expected_proof, received_proof in zip(\n                            expected_blob.proofs, received_blob.proofs, strict=False\n                        ):\n                            if len(expected_proof) != len(received_proof):\n                                error_message += f\"Proof length mismatch. index = {index},\"\n                                error_message += f\"expected_proof length = {len(expected_proof)}, \"\n                                error_message += f\"received_proof length = {len(received_proof)}\\n\"\n                                index += 1\n                                continue\n                            if expected_proof != received_proof:\n                                error_message += f\"Proof mismatch. index = {index},\"\n                                error_message += (\n                                    f\"expected_proof hash = {sha256(expected_proof).hexdigest()}, \"\n                                )\n                                error_message += (\n                                    f\"received_proof hash = {sha256(received_proof).hexdigest()}\\n\"\n                                )\n                            index += 1\n                    raise ValueError(error_message)\n            else:\n                raise ValueError(f\"Unexpected blob type: {type(expected_blob)}\")\n\n        eth_rpc.wait_for_transactions(sent_txs)\n"
  },
  {
    "path": "src/ethereum_test_execution/transaction_post.py",
    "content": "\"\"\"Simple transaction-send then post-check execution format.\"\"\"\n\nfrom typing import ClassVar, List\n\nimport pytest\nfrom pytest import FixtureRequest\n\nfrom ethereum_test_base_types import Address, Alloc, Hash\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_rpc import EngineRPC, EthRPC, SendTransactionExceptionError\nfrom ethereum_test_types import Transaction, TransactionTestMetadata\n\nfrom .base import BaseExecute\n\n\nclass TransactionPost(BaseExecute):\n    \"\"\"\n    Represents a simple transaction-send then post-check execution format.\n    \"\"\"\n\n    blocks: List[List[Transaction]]\n    post: Alloc\n    # Gas validation fields for benchmark tests\n    expected_benchmark_gas_used: int | None = None  # Expected total gas to be consumed\n    skip_gas_used_validation: bool = False  # Skip gas validation even if expected is set\n\n    format_name: ClassVar[str] = \"transaction_post_test\"\n    description: ClassVar[str] = (\n        \"Simple transaction sending, then post-check after all transactions are included\"\n    )\n\n    def execute(\n        self,\n        fork: Fork,\n        eth_rpc: EthRPC,\n        engine_rpc: EngineRPC | None,\n        request: FixtureRequest,\n    ) -> None:\n        \"\"\"Execute the format.\"\"\"\n        del fork\n        del engine_rpc\n        assert not any(tx.ty == 3 for block in self.blocks for tx in block), (\n            \"Transaction type 3 is not supported in execute mode.\"\n        )\n\n        # Track transaction hashes for gas validation (benchmarking)\n        all_tx_hashes = []\n\n        for block in self.blocks:\n            signed_txs = []\n            for tx_index, tx in enumerate(block):\n                # Add metadata\n                tx = tx.with_signature_and_sender()\n                to_address = tx.to\n                label = to_address.label if isinstance(to_address, Address) else None\n                phase = (\n                    \"testing\"\n                    if (tx.test_phase == \"execution\" or tx.test_phase is None)\n                    else \"setup\"\n                )\n                tx.metadata = TransactionTestMetadata(\n                    test_id=request.node.nodeid,\n                    phase=phase,\n                    target=label,\n                    tx_index=tx_index,\n                )\n                signed_txs.append(tx)\n            if any(tx.error is not None for tx in signed_txs):\n                for transaction in signed_txs:\n                    if transaction.error is None:\n                        eth_rpc.send_wait_transaction(transaction)\n                        all_tx_hashes.append(transaction.hash)\n                    else:\n                        with pytest.raises(SendTransactionExceptionError):\n                            eth_rpc.send_transaction(transaction)\n            else:\n                eth_rpc.send_wait_transactions(signed_txs)\n                all_tx_hashes.extend([tx.hash for tx in signed_txs])\n\n        # Perform gas validation if required for benchmarking\n        # Ensures benchmark tests consume exactly the expected gas\n        if not self.skip_gas_used_validation and self.expected_benchmark_gas_used is not None:\n            total_gas_used = 0\n            # Fetch transaction receipts to get actual gas used\n            for tx_hash in all_tx_hashes:\n                receipt = eth_rpc.get_transaction_receipt(tx_hash)\n                assert receipt is not None, f\"Failed to get receipt for transaction {tx_hash}\"\n                gas_used = int(receipt[\"gasUsed\"], 16)\n                total_gas_used += gas_used\n\n            # Verify that the total gas consumed matches expectations\n            assert total_gas_used == self.expected_benchmark_gas_used, (\n                f\"Total gas used ({total_gas_used}) does not match \"\n                f\"expected benchmark gas ({self.expected_benchmark_gas_used}), \"\n                f\"difference: {total_gas_used - self.expected_benchmark_gas_used}\"\n            )\n\n        for address, account in self.post.root.items():\n            balance = eth_rpc.get_balance(address)\n            code = eth_rpc.get_code(address)\n            nonce = eth_rpc.get_transaction_count(address)\n            if account is None:\n                assert balance == 0, f\"Balance of {address} is {balance}, expected 0.\"\n                assert code == b\"\", f\"Code of {address} is {code}, expected 0x.\"\n                assert nonce == 0, f\"Nonce of {address} is {nonce}, expected 0.\"\n            else:\n                if \"balance\" in account.model_fields_set:\n                    assert balance == account.balance, (\n                        f\"Balance of {address} is {balance}, expected {account.balance}.\"\n                    )\n                if \"code\" in account.model_fields_set:\n                    assert code == account.code, (\n                        f\"Code of {address} is {code}, expected {account.code}.\"\n                    )\n                if \"nonce\" in account.model_fields_set:\n                    assert nonce == account.nonce, (\n                        f\"Nonce of {address} is {nonce}, expected {account.nonce}.\"\n                    )\n                if \"storage\" in account.model_fields_set:\n                    for key, value in account.storage.items():\n                        storage_value = eth_rpc.get_storage_at(address, Hash(key))\n                        assert storage_value == value, (\n                            f\"Storage value at {key} of {address} is {storage_value},\"\n                            f\"expected {value}.\"\n                        )\n"
  },
  {
    "path": "src/ethereum_test_fixtures/__init__.py",
    "content": "\"\"\"Ethereum test fixture format definitions.\"\"\"\n\nfrom .base import BaseFixture, FixtureFillingPhase, FixtureFormat, LabeledFixtureFormat\nfrom .blockchain import (\n    BlockchainEngineFixture,\n    BlockchainEngineFixtureCommon,\n    BlockchainEngineSyncFixture,\n    BlockchainEngineXFixture,\n    BlockchainFixture,\n    BlockchainFixtureCommon,\n)\nfrom .collector import FixtureCollector, TestInfo\nfrom .consume import FixtureConsumer\nfrom .eof import EOFFixture\nfrom .pre_alloc_groups import PreAllocGroup, PreAllocGroups\nfrom .state import StateFixture\nfrom .transaction import TransactionFixture\n\n__all__ = [\n    \"BaseFixture\",\n    \"BlockchainEngineFixture\",\n    \"BlockchainEngineFixtureCommon\",\n    \"BlockchainEngineSyncFixture\",\n    \"BlockchainEngineXFixture\",\n    \"BlockchainFixture\",\n    \"BlockchainFixtureCommon\",\n    \"EOFFixture\",\n    \"FixtureCollector\",\n    \"FixtureConsumer\",\n    \"FixtureFillingPhase\",\n    \"FixtureFormat\",\n    \"LabeledFixtureFormat\",\n    \"PreAllocGroups\",\n    \"PreAllocGroup\",\n    \"StateFixture\",\n    \"TestInfo\",\n    \"TransactionFixture\",\n]\n"
  },
  {
    "path": "src/ethereum_test_fixtures/base.py",
    "content": "\"\"\"Base fixture definitions used to define all fixture types.\"\"\"\n\nimport hashlib\nimport json\nfrom enum import Enum, auto\nfrom functools import cached_property\nfrom typing import Annotated, Any, ClassVar, Dict, List, Set, Type, Union\n\nimport pytest\nfrom pydantic import (\n    Discriminator,\n    Field,\n    PlainSerializer,\n    PlainValidator,\n    Tag,\n    TypeAdapter,\n    model_validator,\n)\nfrom pydantic_core.core_schema import ValidatorFunctionWrapHandler\n\nfrom ethereum_test_base_types import CamelModel, ReferenceSpec\nfrom ethereum_test_forks import Fork\n\n\ndef fixture_format_discriminator(v: Any) -> str | None:\n    \"\"\"Discriminator function that returns the model type as a string.\"\"\"\n    if v is None:\n        return None\n    if isinstance(v, dict):\n        info_dict = v.get(\"_info\")\n    elif hasattr(v, \"info\"):\n        info_dict = v.info\n    assert info_dict is not None, (\n        f\"Fixture does not have an info field, cannot determine fixture format: {v}\"\n    )\n    fixture_format = info_dict.get(\"fixture-format\")\n    if not fixture_format:\n        fixture_format = info_dict.get(\"fixture_format\")\n    assert fixture_format is not None, f\"Fixture format not found in info field: {info_dict}\"\n    return fixture_format\n\n\nclass FixtureFillingPhase(Enum):\n    \"\"\"Execution phase for fixture generation.\"\"\"\n\n    PRE_ALLOC_GENERATION = auto()\n    FILL = auto()\n\n\nclass BaseFixture(CamelModel):\n    \"\"\"Represents a base Ethereum test fixture of any type.\"\"\"\n\n    # Base Fixture class properties\n    formats: ClassVar[Dict[str, Type[\"BaseFixture\"]]] = {}\n    formats_type_adapter: ClassVar[TypeAdapter]\n\n    info: Dict[str, Dict[str, Any] | str] = Field(default_factory=dict, alias=\"_info\")\n\n    # Fixture format properties\n    format_name: ClassVar[str] = \"\"\n    output_file_extension: ClassVar[str] = \".json\"\n    description: ClassVar[str] = \"Unknown fixture format; it has not been set.\"\n    format_phases: ClassVar[Set[FixtureFillingPhase]] = {FixtureFillingPhase.FILL}\n\n    @classmethod\n    def output_base_dir_name(cls) -> str:\n        \"\"\"\n        Return name of the subdirectory where this type of fixture should be\n        dumped to.\n        \"\"\"\n        return cls.format_name.replace(\"test\", \"tests\")\n\n    @classmethod\n    def __pydantic_init_subclass__(cls, **kwargs: Any) -> None:\n        \"\"\"\n        Register all subclasses of BaseFixture with a fixture format name set\n        as possible fixture formats.\n        \"\"\"\n        if cls.format_name:\n            # Register the new fixture format\n            BaseFixture.formats[cls.format_name] = cls\n            if len(BaseFixture.formats) > 1:\n                BaseFixture.formats_type_adapter = TypeAdapter(\n                    Annotated[\n                        Union[\n                            tuple(\n                                Annotated[fixture_format, Tag(format_name)]\n                                for (\n                                    format_name,\n                                    fixture_format,\n                                ) in BaseFixture.formats.items()\n                            )\n                        ],\n                        Discriminator(fixture_format_discriminator),\n                    ]\n                )\n            else:\n                BaseFixture.formats_type_adapter = TypeAdapter(cls)\n\n    @model_validator(mode=\"wrap\")\n    @classmethod\n    def _parse_into_subclass(cls, v: Any, handler: ValidatorFunctionWrapHandler) -> \"BaseFixture\":\n        \"\"\"Parse the fixture into the correct subclass.\"\"\"\n        if cls is BaseFixture:\n            return BaseFixture.formats_type_adapter.validate_python(v)\n        return handler(v)\n\n    @cached_property\n    def json_dict(self) -> Dict[str, Any]:\n        \"\"\"Returns the JSON representation of the fixture.\"\"\"\n        return self.model_dump(mode=\"json\", by_alias=True, exclude_none=True, exclude={\"info\"})\n\n    @cached_property\n    def hash(self) -> str:\n        \"\"\"Returns the hash of the fixture.\"\"\"\n        json_str = json.dumps(self.json_dict, sort_keys=True, separators=(\",\", \":\"))\n        h = hashlib.sha256(json_str.encode(\"utf-8\")).hexdigest()\n        return f\"0x{h}\"\n\n    def json_dict_with_info(self, hash_only: bool = False) -> Dict[str, Any]:\n        \"\"\"Return JSON representation of the fixture with the info field.\"\"\"\n        dict_with_info = self.json_dict.copy()\n        dict_with_info[\"_info\"] = {\"hash\": self.hash}\n        if not hash_only:\n            dict_with_info[\"_info\"].update(self.info)\n        return dict_with_info\n\n    def fill_info(\n        self,\n        t8n_version: str,\n        test_case_description: str,\n        fixture_source_url: str,\n        ref_spec: ReferenceSpec | None,\n        _info_metadata: Dict[str, Any],\n    ) -> None:\n        \"\"\"Fill the info field for this fixture.\"\"\"\n        if \"comment\" not in self.info:\n            self.info[\"comment\"] = \"`execution-spec-tests` generated test\"\n        self.info[\"filling-transition-tool\"] = t8n_version\n        self.info[\"description\"] = test_case_description\n        self.info[\"url\"] = fixture_source_url\n        self.info[\"fixture-format\"] = self.format_name\n        if ref_spec is not None:\n            ref_spec.write_info(self.info)\n        if _info_metadata:\n            self.info.update(_info_metadata)\n\n    def get_fork(self) -> Fork | None:\n        \"\"\"Return fork of the fixture as a string.\"\"\"\n        raise NotImplementedError\n\n    @classmethod\n    def supports_fork(cls, fork: Fork) -> bool:\n        \"\"\"\n        Return whether the fixture can be generated for the given fork.\n\n        By default, all fixtures support all forks.\n        \"\"\"\n        del fork\n        return True\n\n    @classmethod\n    def discard_fixture_format_by_marks(\n        cls,\n        fork: Fork,\n        markers: List[pytest.Mark],\n    ) -> bool:\n        \"\"\"\n        Discard a fixture format from filling if the appropriate marker is\n        used.\n        \"\"\"\n        del fork, markers\n        return False\n\n\nclass LabeledFixtureFormat:\n    \"\"\"\n    Represents a fixture format with a custom label.\n\n    This label will be used in the test id and also will be added as a marker\n    to the generated test case when filling the test.\n    \"\"\"\n\n    format: Type[BaseFixture]\n    label: str\n    description: str\n\n    registered_labels: ClassVar[Dict[str, \"LabeledFixtureFormat\"]] = {}\n\n    def __init__(\n        self,\n        fixture_format: \"Type[BaseFixture] | LabeledFixtureFormat\",\n        label: str,\n        description: str,\n    ):\n        \"\"\"Initialize the fixture format with a custom label.\"\"\"\n        self.format = (\n            fixture_format.format\n            if isinstance(fixture_format, LabeledFixtureFormat)\n            else fixture_format\n        )\n        self.label = label\n        self.description = description\n        if label not in LabeledFixtureFormat.registered_labels:\n            LabeledFixtureFormat.registered_labels[label] = self\n\n    @property\n    def format_name(self) -> str:\n        \"\"\"Get the filling format name.\"\"\"\n        return self.format.format_name\n\n    @property\n    def format_phases(self) -> Set[FixtureFillingPhase]:\n        \"\"\"Get the filling format phases where it should be included.\"\"\"\n        return self.format.format_phases\n\n    def __eq__(self, other: Any) -> bool:\n        \"\"\"\n        Check if two labeled fixture formats are equal.\n\n        If the other object is a FixtureFormat type, the format of the labeled\n        fixture format will be compared with the format of the other object.\n        \"\"\"\n        if isinstance(other, LabeledFixtureFormat):\n            return self.format == other.format\n        if isinstance(other, type) and issubclass(other, BaseFixture):\n            return self.format == other\n        return False\n\n\n# Annotated type alias for a base fixture class\nFixtureFormat = Annotated[\n    Type[BaseFixture],\n    PlainSerializer(lambda f: f.format_name),\n    PlainValidator(lambda f: BaseFixture.formats[f] if f in BaseFixture.formats else f),\n]\n"
  },
  {
    "path": "src/ethereum_test_fixtures/blockchain.py",
    "content": "\"\"\"BlockchainTest types.\"\"\"\n\nimport json\nfrom functools import cached_property\nfrom typing import (\n    Annotated,\n    Any,\n    ClassVar,\n    List,\n    Literal,\n    Self,\n    Set,\n    Tuple,\n    Type,\n    Union,\n    cast,\n    get_args,\n    get_type_hints,\n)\n\nimport ethereum_rlp as eth_rlp\nimport pytest\nfrom ethereum_types.numeric import Uint\nfrom pydantic import AliasChoices, Field, PlainSerializer, computed_field, model_validator\n\nfrom ethereum_test_base_types import (\n    Address,\n    Alloc,\n    Bloom,\n    Bytes,\n    CamelModel,\n    EmptyOmmersRoot,\n    EmptyTrieRoot,\n    Hash,\n    HeaderNonce,\n    HexNumber,\n    Number,\n    ZeroPaddedHexNumber,\n)\nfrom ethereum_test_exceptions import EngineAPIError, ExceptionInstanceOrList\nfrom ethereum_test_forks import Fork, Paris\nfrom ethereum_test_types import (\n    BlockAccessList,\n    Environment,\n    Requests,\n    Transaction,\n    Withdrawal,\n)\nfrom ethereum_test_types.block_types import WithdrawalGeneric\nfrom ethereum_test_types.transaction_types import TransactionFixtureConverter, TransactionGeneric\n\nfrom .base import BaseFixture, FixtureFillingPhase\nfrom .common import FixtureAuthorizationTuple, FixtureBlobSchedule\n\n\ndef post_state_validator(alternate_field: str | None = None, mode: str = \"after\") -> Any:\n    \"\"\"\n    Create a validator to ensure exactly one post-state field is provided.\n\n    Args: alternate_field: Alternative field name to post_state_hash (e.g.,\n    'post_state_diff'). mode: Pydantic validation mode.\n    \"\"\"\n\n    def decorator(cls: Type[Any]) -> Type[Any]:\n        @model_validator(mode=mode)  # type: ignore\n        def validate_post_state_fields(self: Any) -> Any:\n            \"\"\"Ensure exactly one post-state field is provided.\"\"\"\n            if mode == \"after\":\n                # Determine which fields to check\n                if alternate_field:\n                    # For engine x fixtures: check post_state vs\n                    # post_state_diff\n                    field1_name, field2_name = \"post_state\", alternate_field\n                else:\n                    # For standard fixtures: check post_state vs\n                    # post_state_hash\n                    field1_name, field2_name = \"post_state\", \"post_state_hash\"\n\n                field1_value = getattr(self, field1_name, None)\n                field2_value = getattr(self, field2_name, None)\n\n                if field1_value is None and field2_value is None:\n                    raise ValueError(f\"Either {field1_name} or {field2_name} must be provided.\")\n                if field1_value is not None and field2_value is not None:\n                    raise ValueError(\n                        f\"Only one of {field1_name} or {field2_name} must be provided.\"\n                    )\n            return self\n\n        # Apply the validator to the class\n        return cls\n\n    return decorator\n\n\nclass HeaderForkRequirement(str):\n    \"\"\"\n    Fork requirement class that specifies the name of the method that should be\n    called to check if the field is required.\n    \"\"\"\n\n    def __new__(cls, value: str) -> \"HeaderForkRequirement\":\n        \"\"\"Create a new instance of the class.\"\"\"\n        return super().__new__(cls, value)\n\n    def required(self, fork: Fork, block_number: int, timestamp: int) -> bool:\n        \"\"\"Check if the field is required for the given fork.\"\"\"\n        return getattr(fork, f\"header_{self}_required\")(\n            block_number=block_number, timestamp=timestamp\n        )\n\n    @classmethod\n    def get_from_annotation(cls, field_hints: Any) -> Self | None:\n        \"\"\"Find the annotation in the field args.\"\"\"\n        if isinstance(field_hints, cls):\n            return field_hints\n        for hint in get_args(field_hints):\n            if res := cls.get_from_annotation(hint):\n                return res\n        return None\n\n\nclass FixtureHeader(CamelModel):\n    \"\"\"\n    Representation of an Ethereum header within a test Fixture.\n\n    We combine the `Environment` and `Result` contents to create this model.\n    \"\"\"\n\n    parent_hash: Hash = Hash(0)\n    ommers_hash: Hash = Field(Hash(EmptyOmmersRoot), alias=\"uncleHash\")\n    fee_recipient: Address = Field(\n        ..., alias=\"coinbase\", validation_alias=AliasChoices(\"coinbase\", \"miner\")\n    )\n    state_root: Hash\n    transactions_trie: Hash = Field(\n        Hash(EmptyTrieRoot), validation_alias=AliasChoices(\"transactionsTrie\", \"transactionsRoot\")\n    )\n    receipts_root: Hash = Field(\n        Hash(EmptyTrieRoot),\n        alias=\"receiptTrie\",\n        validation_alias=AliasChoices(\"receiptTrie\", \"receiptsRoot\"),\n    )\n    logs_bloom: Bloom = Field(\n        Bloom(0), alias=\"bloom\", validation_alias=AliasChoices(\"bloom\", \"logsBloom\")\n    )\n    difficulty: ZeroPaddedHexNumber = ZeroPaddedHexNumber(0)\n    number: ZeroPaddedHexNumber\n    gas_limit: ZeroPaddedHexNumber\n    gas_used: ZeroPaddedHexNumber = ZeroPaddedHexNumber(0)\n    timestamp: ZeroPaddedHexNumber\n    extra_data: Bytes\n    prev_randao: Hash = Field(Hash(0), alias=\"mixHash\")\n    nonce: HeaderNonce = Field(HeaderNonce(0), validate_default=True)\n    base_fee_per_gas: (\n        Annotated[\n            ZeroPaddedHexNumber,\n            HeaderForkRequirement(\"base_fee\"),\n        ]\n        | None\n    ) = Field(None)\n    withdrawals_root: Annotated[Hash, HeaderForkRequirement(\"withdrawals\")] | None = Field(None)\n    blob_gas_used: (\n        Annotated[ZeroPaddedHexNumber, HeaderForkRequirement(\"blob_gas_used\")] | None\n    ) = Field(None)\n    excess_blob_gas: (\n        Annotated[ZeroPaddedHexNumber, HeaderForkRequirement(\"excess_blob_gas\")] | None\n    ) = Field(None)\n    parent_beacon_block_root: Annotated[Hash, HeaderForkRequirement(\"beacon_root\")] | None = Field(\n        None\n    )\n    requests_hash: Annotated[Hash, HeaderForkRequirement(\"requests\")] | None = Field(None)\n    block_access_list_hash: Annotated[Hash, HeaderForkRequirement(\"bal_hash\")] | None = Field(\n        None, alias=\"blockAccessListHash\"\n    )\n\n    fork: Fork | None = Field(None, exclude=True)\n\n    def model_post_init(self, __context: Any) -> None:\n        \"\"\"\n        Model post init method used to check for required fields of a given\n        fork.\n        \"\"\"\n        super().model_post_init(__context)\n\n        if self.fork is None:\n            # No validation done when we are importing the fixture from file\n            return\n\n        # Get the timestamp and block number\n        block_number = self.number\n        timestamp = self.timestamp\n\n        # For each field, check if any of the annotations are of type\n        # HeaderForkRequirement and if so, check if the field is required for\n        # the given fork.\n        annotated_hints = get_type_hints(self, include_extras=True)\n\n        for field in self.__class__.model_fields:\n            if field == \"fork\":\n                continue\n\n            header_fork_requirement = HeaderForkRequirement.get_from_annotation(\n                annotated_hints[field]\n            )\n            if header_fork_requirement is not None:\n                if (\n                    header_fork_requirement.required(self.fork, block_number, timestamp)\n                    and getattr(self, field) is None\n                ):\n                    raise ValueError(f\"Field {field} is required for fork {self.fork}\")\n\n    @cached_property\n    def rlp_encode_list(self) -> List:\n        \"\"\"Compute the RLP of the header.\"\"\"\n        header_list = []\n        for field in self.__class__.model_fields:\n            if field == \"fork\":\n                continue\n            value = getattr(self, field)\n            if value is not None:\n                header_list.append(value if isinstance(value, bytes) else Uint(value))\n        return header_list\n\n    @cached_property\n    def rlp(self) -> Bytes:\n        \"\"\"Compute the RLP of the header.\"\"\"\n        return Bytes(eth_rlp.encode(self.rlp_encode_list))\n\n    @computed_field(alias=\"hash\")  # type: ignore[prop-decorator]\n    @cached_property\n    def block_hash(self) -> Hash:\n        \"\"\"Compute the RLP of the header.\"\"\"\n        return self.rlp.keccak256()\n\n    @classmethod\n    def genesis(cls, fork: Fork, env: Environment, state_root: Hash) -> Self:\n        \"\"\"Get the genesis header for the given fork.\"\"\"\n        environment_values = env.model_dump(exclude_none=True, exclude={\"withdrawals\"})\n        if env.withdrawals is not None:\n            environment_values[\"withdrawals_root\"] = Withdrawal.list_root(env.withdrawals)\n        environment_values[\"extra_data\"] = env.extra_data\n        extras = {\n            \"state_root\": state_root,\n            \"requests_hash\": Requests()\n            if fork.header_requests_required(block_number=0, timestamp=0)\n            else None,\n            \"block_access_list_hash\": (\n                BlockAccessList().rlp_hash\n                if fork.header_bal_hash_required(block_number=0, timestamp=0)\n                else None\n            ),\n            \"fork\": fork,\n        }\n        return cls(**environment_values, **extras)\n\n\nclass FixtureExecutionPayload(CamelModel):\n    \"\"\"\n    Representation of an Ethereum execution payload within a test Fixture.\n    \"\"\"\n\n    parent_hash: Hash\n    fee_recipient: Address\n    state_root: Hash\n\n    receipts_root: Hash\n    logs_bloom: Bloom\n\n    number: HexNumber = Field(..., alias=\"blockNumber\")\n    gas_limit: HexNumber\n    gas_used: HexNumber\n    timestamp: HexNumber\n    extra_data: Bytes\n    prev_randao: Hash\n\n    base_fee_per_gas: HexNumber\n    blob_gas_used: HexNumber | None = Field(None)\n    excess_blob_gas: HexNumber | None = Field(None)\n\n    block_hash: Hash\n\n    transactions: List[Bytes]\n    withdrawals: List[Withdrawal] | None = None\n\n    block_access_list: Bytes | None = Field(\n        None, description=\"RLP-serialized EIP-7928 Block Access List\"\n    )\n\n    @classmethod\n    def from_fixture_header(\n        cls,\n        header: FixtureHeader,\n        transactions: List[Transaction],\n        withdrawals: List[Withdrawal] | None,\n        block_access_list: Bytes | None = None,\n    ) -> Self:\n        \"\"\"\n        Return FixtureExecutionPayload from a FixtureHeader, a list of\n        transactions, a list of withdrawals, and an optional block access list.\n        \"\"\"\n        return cls(\n            **header.model_dump(exclude={\"rlp\"}, exclude_none=True),\n            transactions=[tx.rlp() for tx in transactions],\n            withdrawals=withdrawals,\n            block_access_list=block_access_list,\n        )\n\n\nEngineNewPayloadV1Parameters = Tuple[FixtureExecutionPayload]\nEngineNewPayloadV3Parameters = Tuple[FixtureExecutionPayload, List[Hash], Hash]\nEngineNewPayloadV4Parameters = Tuple[\n    FixtureExecutionPayload,\n    List[Hash],\n    Hash,\n    List[Bytes],\n]\nEngineNewPayloadV5Parameters = EngineNewPayloadV4Parameters\n\n# Important: We check EngineNewPayloadV3Parameters first as it has more fields,\n# and pydantic has a weird behavior when the smaller tuple is checked first.\nEngineNewPayloadParameters = Union[\n    EngineNewPayloadV5Parameters,\n    EngineNewPayloadV4Parameters,\n    EngineNewPayloadV3Parameters,\n    EngineNewPayloadV1Parameters,\n]\n\n\nclass FixtureEngineNewPayload(CamelModel):\n    \"\"\"\n    Representation of the `engine_newPayloadVX` information to be sent using\n    the block information.\n    \"\"\"\n\n    params: EngineNewPayloadParameters\n    new_payload_version: Number\n    forkchoice_updated_version: Number\n    validation_error: ExceptionInstanceOrList | None = None\n    error_code: (\n        Annotated[\n            EngineAPIError,\n            PlainSerializer(\n                lambda x: str(x.value),\n                return_type=str,\n            ),\n        ]\n        | None\n    ) = None\n\n    def valid(self) -> bool:\n        \"\"\"Return whether the payload is valid.\"\"\"\n        return self.validation_error is None\n\n    @classmethod\n    def from_fixture_header(\n        cls,\n        fork: Fork,\n        header: FixtureHeader,\n        transactions: List[Transaction],\n        withdrawals: List[Withdrawal] | None,\n        requests: List[Bytes] | None,\n        block_access_list: Bytes | None = None,\n        **kwargs: Any,\n    ) -> Self:\n        \"\"\"Create `FixtureEngineNewPayload` from a `FixtureHeader`.\"\"\"\n        new_payload_version = fork.engine_new_payload_version(\n            block_number=header.number, timestamp=header.timestamp\n        )\n        forkchoice_updated_version = fork.engine_forkchoice_updated_version(\n            block_number=header.number, timestamp=header.timestamp\n        )\n\n        assert new_payload_version is not None, \"Invalid header for engine_newPayload\"\n\n        if fork.engine_execution_payload_block_access_list(\n            block_number=header.number, timestamp=header.timestamp\n        ):\n            if block_access_list is None:\n                raise ValueError(\n                    f\"`block_access_list` is required in engine `ExecutionPayload` for >={fork}.\"\n                )\n\n        execution_payload = FixtureExecutionPayload.from_fixture_header(\n            header=header,\n            transactions=transactions,\n            withdrawals=withdrawals,\n            block_access_list=block_access_list,\n        )\n\n        params: List[Any] = [execution_payload]\n        if fork.engine_new_payload_blob_hashes(\n            block_number=header.number, timestamp=header.timestamp\n        ):\n            blob_hashes = Transaction.list_blob_versioned_hashes(transactions)\n            if blob_hashes is None:\n                raise ValueError(f\"Blob hashes are required for ${fork}.\")\n            params.append(blob_hashes)\n\n        if fork.engine_new_payload_beacon_root(\n            block_number=header.number, timestamp=header.timestamp\n        ):\n            parent_beacon_block_root = header.parent_beacon_block_root\n            if parent_beacon_block_root is None:\n                raise ValueError(f\"Parent beacon block root is required for ${fork}.\")\n            params.append(parent_beacon_block_root)\n\n        if fork.engine_new_payload_requests(\n            block_number=header.number, timestamp=header.timestamp\n        ):\n            if requests is None:\n                raise ValueError(f\"Requests are required for ${fork}.\")\n            params.append(requests)\n\n        payload_params: EngineNewPayloadParameters = cast(\n            EngineNewPayloadParameters,\n            tuple(params),\n        )\n        new_payload = cls(\n            params=payload_params,\n            new_payload_version=new_payload_version,\n            forkchoice_updated_version=forkchoice_updated_version,\n            **kwargs,\n        )\n\n        return new_payload\n\n\nclass FixtureTransaction(TransactionFixtureConverter, TransactionGeneric[ZeroPaddedHexNumber]):\n    \"\"\"Representation of an Ethereum transaction within a test Fixture.\"\"\"\n\n    authorization_list: List[FixtureAuthorizationTuple] | None = None\n    initcodes: List[Bytes] | None = None\n\n    @classmethod\n    def from_transaction(cls, tx: Transaction) -> Self:\n        \"\"\"Return FixtureTransaction from a Transaction.\"\"\"\n        return cls(**tx.model_dump())\n\n\nclass FixtureWithdrawal(WithdrawalGeneric[ZeroPaddedHexNumber]):\n    \"\"\"\n    Structure to represent a single withdrawal of a validator's balance from\n    the beacon chain in the output fixture.\n    \"\"\"\n\n    @classmethod\n    def from_withdrawal(cls, w: WithdrawalGeneric) -> Self:\n        \"\"\"Return FixtureWithdrawal from a Withdrawal.\"\"\"\n        return cls(**w.model_dump())\n\n\nclass WitnessChunk(CamelModel):\n    \"\"\"Represents execution witness data for a block.\"\"\"\n\n    state: List[str]\n    codes: List[str]\n    keys: List[str]\n    headers: List[str]\n\n    @classmethod\n    def parse_witness_chunks(cls, s: str) -> List[Self]:\n        \"\"\"\n        Parse multiple witness chunks from JSON string.\n\n        Returns a list of WitnessChunk instances parsed from the JSON array.\n        \"\"\"\n        return [cls(**obj) for obj in json.loads(s)]\n\n\nclass FixtureBlockBase(CamelModel):\n    \"\"\"\n    Representation of an Ethereum block within a test Fixture without RLP\n    bytes.\n    \"\"\"\n\n    header: FixtureHeader = Field(..., alias=\"blockHeader\")\n    txs: List[FixtureTransaction] = Field(default_factory=list, alias=\"transactions\")\n    ommers: List[FixtureHeader] = Field(default_factory=list, alias=\"uncleHeaders\")\n    withdrawals: List[FixtureWithdrawal] | None = None\n    execution_witness: WitnessChunk | None = None\n    block_access_list: BlockAccessList | None = Field(\n        None, description=\"EIP-7928 Block Access List\"\n    )\n\n    @computed_field(alias=\"blocknumber\")  # type: ignore[prop-decorator]\n    @cached_property\n    def block_number(self) -> Number:\n        \"\"\"Get the block number from the header.\"\"\"\n        return Number(self.header.number)\n\n    def with_rlp(self, txs: List[Transaction]) -> \"FixtureBlock\":\n        \"\"\"Return FixtureBlock with the RLP bytes set.\"\"\"\n        block = [\n            self.header.rlp_encode_list,\n            [tx.serializable_list for tx in txs],\n            # TODO: This is incorrect, and we probably\n            # need to serialize the ommers\n            self.ommers,\n        ]\n\n        if self.withdrawals is not None:\n            block.append([w.to_serializable_list() for w in self.withdrawals])\n\n        if self.block_access_list is not None:\n            block.append(self.block_access_list.to_list())\n\n        return FixtureBlock(\n            **self.model_dump(),\n            rlp=eth_rlp.encode(block),\n        )\n\n\nclass FixtureBlock(FixtureBlockBase):\n    \"\"\"Representation of an Ethereum block within a test Fixture.\"\"\"\n\n    rlp: Bytes\n\n    def without_rlp(self) -> FixtureBlockBase:\n        \"\"\"Return FixtureBlockBase without the RLP bytes set.\"\"\"\n        return FixtureBlockBase(\n            **self.model_dump(exclude={\"rlp\"}),\n        )\n\n\nclass FixtureConfig(CamelModel):\n    \"\"\"Chain configuration for a fixture.\"\"\"\n\n    fork: Fork = Field(..., alias=\"network\")\n    chain_id: ZeroPaddedHexNumber = Field(ZeroPaddedHexNumber(1), alias=\"chainid\")\n    blob_schedule: FixtureBlobSchedule | None = None\n\n\nclass InvalidFixtureBlock(CamelModel):\n    \"\"\"Representation of an invalid Ethereum block within a test Fixture.\"\"\"\n\n    rlp: Bytes\n    expect_exception: ExceptionInstanceOrList\n    rlp_decoded: FixtureBlockBase | None = Field(None, alias=\"rlp_decoded\")\n\n\n@post_state_validator()\nclass BlockchainFixtureCommon(BaseFixture):\n    \"\"\"Base blockchain test fixture model.\"\"\"\n\n    fork: Fork = Field(..., alias=\"network\")\n    genesis: FixtureHeader = Field(..., alias=\"genesisBlockHeader\")\n    pre: Alloc\n    post_state: Alloc | None = Field(None)\n    post_state_hash: Hash | None = Field(None)\n    # FIXME: lastBlockHash\n    last_block_hash: Hash = Field(..., alias=\"lastblockhash\")\n    config: FixtureConfig\n\n    @model_validator(mode=\"before\")\n    @classmethod\n    def config_defaults_for_backwards_compatibility(cls, data: Any) -> Any:\n        \"\"\"\n        Check if the config field is populated, otherwise use the root-level\n        field values for backwards compatibility.\n        \"\"\"\n        if isinstance(data, dict):\n            if \"config\" not in data:\n                data[\"config\"] = {}\n            if isinstance(data[\"config\"], dict):\n                if \"network\" not in data[\"config\"]:\n                    data[\"config\"][\"network\"] = data[\"network\"]\n                if \"chainid\" not in data[\"config\"]:\n                    data[\"config\"][\"chainid\"] = \"0x01\"\n        return data\n\n    def get_fork(self) -> Fork | None:\n        \"\"\"Return fork of the fixture as a string.\"\"\"\n        return self.fork\n\n\nclass BlockchainFixture(BlockchainFixtureCommon):\n    \"\"\"Cross-client specific blockchain test model use in JSON fixtures.\"\"\"\n\n    format_name: ClassVar[str] = \"blockchain_test\"\n    description: ClassVar[str] = \"Tests that generate a blockchain test fixture.\"\n\n    genesis_rlp: Bytes = Field(..., alias=\"genesisRLP\")\n    blocks: List[FixtureBlock | InvalidFixtureBlock]\n    seal_engine: Literal[\"NoProof\"] = Field(\"NoProof\")\n\n\n@post_state_validator()\nclass BlockchainEngineFixtureCommon(BaseFixture):\n    \"\"\"\n    Base blockchain test fixture model for Engine API based execution.\n\n    Similar to BlockchainFixtureCommon but excludes the 'pre' field to avoid\n    duplicating large pre-allocations.\n    \"\"\"\n\n    fork: Fork = Field(..., alias=\"network\")\n    post_state_hash: Hash | None = Field(None)\n    # FIXME: lastBlockHash\n    last_block_hash: Hash = Field(..., alias=\"lastblockhash\")\n    config: FixtureConfig\n\n    def get_fork(self) -> Fork | None:\n        \"\"\"Return fixture's `Fork`.\"\"\"\n        return self.fork\n\n    @classmethod\n    def supports_fork(cls, fork: Fork) -> bool:\n        \"\"\"\n        Return whether the fixture can be generated for the given fork.\n\n        The Engine API is available only on Paris and afterwards.\n        \"\"\"\n        return fork >= Paris\n\n\nclass BlockchainEngineFixture(BlockchainEngineFixtureCommon):\n    \"\"\"Engine specific test fixture information.\"\"\"\n\n    format_name: ClassVar[str] = \"blockchain_test_engine\"\n    description: ClassVar[str] = (\n        \"Tests that generate a blockchain test fixture in Engine API format.\"\n    )\n    pre: Alloc\n    genesis: FixtureHeader = Field(..., alias=\"genesisBlockHeader\")\n    post_state: Alloc | None = Field(None)\n    payloads: List[FixtureEngineNewPayload] = Field(..., alias=\"engineNewPayloads\")\n\n\n@post_state_validator(alternate_field=\"post_state_diff\")\nclass BlockchainEngineXFixture(BlockchainEngineFixtureCommon):\n    \"\"\"\n    Engine X specific test fixture information.\n\n    Uses pre-allocation groups (and a single client instance) for efficient\n    test execution without client restarts.\n    \"\"\"\n\n    format_name: ClassVar[str] = \"blockchain_test_engine_x\"\n    description: ClassVar[str] = \"Tests that generate a Blockchain Test Engine X fixture.\"\n    format_phases: ClassVar[Set[FixtureFillingPhase]] = {\n        FixtureFillingPhase.FILL,\n        FixtureFillingPhase.PRE_ALLOC_GENERATION,\n    }\n\n    pre_hash: str\n    \"\"\"Hash of the pre-allocation group this test belongs to.\"\"\"\n\n    post_state_diff: Alloc | None = None\n    \"\"\"\n    State difference from genesis after test execution (efficiency\n    optimization).\n    \"\"\"\n\n    payloads: List[FixtureEngineNewPayload] = Field(..., alias=\"engineNewPayloads\")\n    \"\"\"Engine API payloads for blockchain execution.\"\"\"\n\n\nclass BlockchainEngineSyncFixture(BlockchainEngineFixture):\n    \"\"\"\n    Engine Sync specific test fixture information.\n\n    This fixture format is specifically designed for sync testing where:\n    - The client under test receives all payloads\n    - A sync client attempts to sync from the client under test\n    - Both client types are parametrized from hive client config\n    \"\"\"\n\n    format_name: ClassVar[str] = \"blockchain_test_sync\"\n    description: ClassVar[str] = (\n        \"Tests that generate a blockchain test fixture for Engine API testing with client sync.\"\n    )\n    sync_payload: FixtureEngineNewPayload | None = None\n\n    @classmethod\n    def discard_fixture_format_by_marks(\n        cls,\n        fork: Fork,\n        markers: List[pytest.Mark],\n    ) -> bool:\n        \"\"\"Discard the fixture format based on the provided markers.\"\"\"\n        del fork\n        marker_names = [m.name for m in markers]\n        return \"verify_sync\" not in marker_names\n"
  },
  {
    "path": "src/ethereum_test_fixtures/collector.py",
    "content": "\"\"\"\nFixture collector class used to collect, sort and combine the different types\nof generated fixtures.\n\"\"\"\n\nimport json\nimport os\nimport re\nimport sys\nfrom dataclasses import dataclass, field\nfrom pathlib import Path\nfrom typing import ClassVar, Dict, Literal, Optional, Tuple\n\nfrom ethereum_test_base_types import to_json\n\nfrom .base import BaseFixture\nfrom .consume import FixtureConsumer\nfrom .file import Fixtures\n\n\n@dataclass(kw_only=True, slots=True)\nclass TestInfo:\n    \"\"\"Contains test information from the current node.\"\"\"\n\n    name: str  # pytest: Item.name, e.g. test_paris_one[fork_Paris-state_test]\n    id: str  # pytest: Item.nodeid, e.g.\n    # tests/paris/test_module_paris.py::test_paris_one[...]\n    original_name: str  # pytest: Item.originalname, e.g. test_paris_one\n    module_path: Path  # pytest: Item.path, e.g.\n    # .../tests/paris/test_module_paris.py\n\n    test_prefix: ClassVar[str] = \"test_\"  # Python test prefix\n    filler_suffix: ClassVar[str] = \"Filler\"  # Static test suffix\n\n    @classmethod\n    def strip_test_name(cls, name: str) -> str:\n        \"\"\"Remove test prefix from a python test case name.\"\"\"\n        if name.startswith(cls.test_prefix):\n            return name.removeprefix(cls.test_prefix)\n        if name.endswith(cls.filler_suffix):\n            return name.removesuffix(cls.filler_suffix)\n        return name\n\n    def get_name_and_parameters(self) -> Tuple[str, str]:\n        \"\"\"\n        Convert test name to a tuple containing the test name and test\n        parameters.\n\n        Example: test_push0_key_sstore[fork_Shanghai] -> test_push0_key_sstore,\n        fork_Shanghai\n        \"\"\"\n        test_name, parameters = self.name.split(\"[\")\n        return test_name, re.sub(r\"[\\[\\-]\", \"_\", parameters).replace(\"]\", \"\")\n\n    def get_single_test_name(self, mode: Literal[\"module\", \"test\"] = \"module\") -> str:\n        \"\"\"Convert test name to a single test name.\"\"\"\n        if mode == \"module\":\n            # Use the module name as the test name\n            return self.strip_test_name(self.original_name)\n        elif mode == \"test\":\n            # Mix the module name and the test name/arguments\n            test_name, test_parameters = self.get_name_and_parameters()\n            test_name = self.strip_test_name(test_name)\n            return f\"{test_name}__{test_parameters}\"\n\n    def get_dump_dir_path(\n        self,\n        base_dump_dir: Optional[Path],\n        filler_path: Path,\n        level: Literal[\"test_module\", \"test_function\", \"test_parameter\"] = \"test_parameter\",\n    ) -> Optional[Path]:\n        \"\"\"Path to dump the debug output as defined by the level to dump at.\"\"\"\n        if not base_dump_dir:\n            return None\n        test_module_relative_dir = self.get_module_relative_output_dir(filler_path)\n        if level == \"test_module\":\n            return Path(base_dump_dir) / Path(str(test_module_relative_dir).replace(os.sep, \"__\"))\n        test_name, test_parameter_string = self.get_name_and_parameters()\n        flat_path = f\"{str(test_module_relative_dir).replace(os.sep, '__')}__{test_name}\"\n        if level == \"test_function\":\n            return Path(base_dump_dir) / flat_path\n        elif level == \"test_parameter\":\n            return Path(base_dump_dir) / flat_path / test_parameter_string\n        raise Exception(\"Unexpected level.\")\n\n    def get_id(self) -> str:\n        \"\"\"Return the test id.\"\"\"\n        return self.id\n\n    def get_module_relative_output_dir(self, filler_path: Path) -> Path:\n        \"\"\"\n        Return a directory name for the provided test_module (relative to the\n        base ./tests directory) that can be used for output (within the\n        configured fixtures output path or the base_dump_dir directory).\n\n        Example: tests/shanghai/eip3855_push0/test_push0.py ->\n        shanghai/eip3855_push0/test_push0\n        \"\"\"\n        basename = self.module_path.with_suffix(\"\").absolute()\n        basename_relative = basename.relative_to(\n            os.path.commonpath([filler_path.absolute(), basename])\n        )\n        module_path = basename_relative.parent / self.strip_test_name(basename_relative.stem)\n        return module_path\n\n\n@dataclass(kw_only=True)\nclass FixtureCollector:\n    \"\"\"Collects all fixtures generated by the test cases.\"\"\"\n\n    output_dir: Path\n    fill_static_tests: bool\n    single_fixture_per_file: bool\n    filler_path: Path\n    base_dump_dir: Optional[Path] = None\n    flush_interval: int = 1000\n\n    # Internal state\n    all_fixtures: Dict[Path, Fixtures] = field(default_factory=dict)\n    json_path_to_test_item: Dict[Path, TestInfo] = field(default_factory=dict)\n\n    def get_fixture_basename(self, info: TestInfo) -> Path:\n        \"\"\"Return basename of the fixture file for a given test case.\"\"\"\n        module_relative_output_dir = info.get_module_relative_output_dir(self.filler_path)\n\n        # Each legacy test filler has only 1 test per file if it's a !state\n        # test! So no need to create directory Add11/add11.json it can be plain\n        # add11.json\n        if self.fill_static_tests:\n            return module_relative_output_dir.parent / info.original_name\n\n        if self.single_fixture_per_file:\n            return module_relative_output_dir / info.get_single_test_name(mode=\"test\")\n        return module_relative_output_dir / info.get_single_test_name(mode=\"module\")\n\n    def add_fixture(self, info: TestInfo, fixture: BaseFixture) -> Path:\n        \"\"\"Add fixture to the list of fixtures of a given test case.\"\"\"\n        fixture_basename = self.get_fixture_basename(info)\n\n        fixture_path = (\n            self.output_dir\n            / fixture.output_base_dir_name()\n            / fixture_basename.with_suffix(fixture.output_file_extension)\n        )\n        # relevant when we group by test function\n        if fixture_path not in self.all_fixtures.keys():\n            self.all_fixtures[fixture_path] = Fixtures(root={})\n            self.json_path_to_test_item[fixture_path] = info\n\n        self.all_fixtures[fixture_path][info.get_id()] = fixture\n\n        if self.flush_interval > 0 and len(self.all_fixtures) >= self.flush_interval:\n            self.dump_fixtures()\n\n        return fixture_path\n\n    def dump_fixtures(self) -> None:\n        \"\"\"Dump all collected fixtures to their respective files.\"\"\"\n        if self.output_dir.name == \"stdout\":\n            combined_fixtures = {\n                k: to_json(v) for fixture in self.all_fixtures.values() for k, v in fixture.items()\n            }\n            json.dump(combined_fixtures, sys.stdout, indent=4)\n            return\n        os.makedirs(self.output_dir, exist_ok=True)\n        for fixture_path, fixtures in self.all_fixtures.items():\n            os.makedirs(fixture_path.parent, exist_ok=True)\n            if len({fixture.__class__ for fixture in fixtures.values()}) != 1:\n                raise TypeError(\"All fixtures in a single file must have the same format.\")\n            fixtures.collect_into_file(fixture_path)\n\n        self.all_fixtures.clear()\n\n    def verify_fixture_files(self, evm_fixture_verification: FixtureConsumer) -> None:\n        \"\"\"Run `evm [state|block]test` on each fixture.\"\"\"\n        for fixture_path, name_fixture_dict in self.all_fixtures.items():\n            for _fixture_name, fixture in name_fixture_dict.items():\n                if evm_fixture_verification.can_consume(fixture.__class__):\n                    info = self.json_path_to_test_item[fixture_path]\n                    consume_direct_dump_dir = self._get_consume_direct_dump_dir(info)\n                    evm_fixture_verification.consume_fixture(\n                        fixture.__class__,\n                        fixture_path,\n                        fixture_name=None,\n                        debug_output_path=consume_direct_dump_dir,\n                    )\n\n    def _get_consume_direct_dump_dir(\n        self,\n        info: TestInfo,\n    ) -> Path | None:\n        \"\"\"\n        Directory to dump the current test function's fixture.json and fixture\n        verification debug output.\n        \"\"\"\n        if not self.base_dump_dir:\n            return None\n        if self.single_fixture_per_file:\n            return info.get_dump_dir_path(\n                self.base_dump_dir, self.filler_path, level=\"test_parameter\"\n            )\n        else:\n            return info.get_dump_dir_path(\n                self.base_dump_dir, self.filler_path, level=\"test_function\"\n            )\n"
  },
  {
    "path": "src/ethereum_test_fixtures/common.py",
    "content": "\"\"\"Common types used to define multiple fixture types.\"\"\"\n\nfrom typing import Dict\n\nfrom pydantic import AliasChoices, Field\n\nfrom ethereum_test_base_types import (\n    BlobSchedule,\n    CamelModel,\n    EthereumTestRootModel,\n    SignableRLPSerializable,\n    ZeroPaddedHexNumber,\n)\nfrom ethereum_test_types.account_types import Address\nfrom ethereum_test_types.transaction_types import AuthorizationTupleGeneric\n\n\nclass FixtureForkBlobSchedule(CamelModel):\n    \"\"\"Representation of the blob schedule of a given fork.\"\"\"\n\n    target_blobs_per_block: ZeroPaddedHexNumber = Field(..., alias=\"target\")\n    max_blobs_per_block: ZeroPaddedHexNumber = Field(..., alias=\"max\")\n    base_fee_update_fraction: ZeroPaddedHexNumber = Field(...)\n\n\nclass FixtureBlobSchedule(EthereumTestRootModel[Dict[str, FixtureForkBlobSchedule]]):\n    \"\"\"Blob schedule configuration dictionary.\"\"\"\n\n    root: Dict[str, FixtureForkBlobSchedule] = Field(default_factory=dict, validate_default=True)\n\n    @classmethod\n    def from_blob_schedule(\n        cls, blob_schedule: BlobSchedule | None\n    ) -> \"FixtureBlobSchedule | None\":\n        \"\"\"Return a FixtureBlobSchedule from a BlobSchedule.\"\"\"\n        if blob_schedule is None:\n            return None\n        return cls(\n            root=blob_schedule.model_dump(),\n        )\n\n\nclass FixtureAuthorizationTuple(\n    AuthorizationTupleGeneric[ZeroPaddedHexNumber], SignableRLPSerializable\n):\n    \"\"\"Authorization tuple for fixture transactions.\"\"\"\n\n    v: ZeroPaddedHexNumber = Field(validation_alias=AliasChoices(\"v\", \"yParity\"))\n    r: ZeroPaddedHexNumber\n    s: ZeroPaddedHexNumber\n\n    signer: Address | None = None\n\n    @classmethod\n    def from_authorization_tuple(\n        cls, auth_tuple: AuthorizationTupleGeneric\n    ) -> \"FixtureAuthorizationTuple\":\n        \"\"\"Return FixtureAuthorizationTuple from an AuthorizationTuple.\"\"\"\n        return cls(**auth_tuple.model_dump())\n\n    def sign(self) -> None:\n        \"\"\"Sign the current object for further serialization.\"\"\"\n        # No-op, as the object is always already signed\n        return\n"
  },
  {
    "path": "src/ethereum_test_fixtures/consume.py",
    "content": "\"\"\"Defines models for index files and consume test cases.\"\"\"\n\nimport datetime\nfrom abc import ABC, abstractmethod\nfrom pathlib import Path\nfrom typing import Iterator, List, Optional, TextIO\n\nfrom pydantic import BaseModel, RootModel\n\nfrom ethereum_test_base_types import HexNumber\nfrom ethereum_test_forks import Fork\n\nfrom .base import BaseFixture, FixtureFormat\nfrom .file import Fixtures\n\n\nclass FixtureConsumer(ABC):\n    \"\"\"Abstract class for verifying Ethereum test fixtures.\"\"\"\n\n    fixture_formats: List[FixtureFormat]\n\n    def can_consume(\n        self,\n        fixture_format: FixtureFormat,\n    ) -> bool:\n        \"\"\"Return whether the fixture format is consumable by this consumer.\"\"\"\n        return fixture_format in self.fixture_formats\n\n    @abstractmethod\n    def consume_fixture(\n        self,\n        fixture_format: FixtureFormat,\n        fixture_path: Path,\n        fixture_name: str | None = None,\n        debug_output_path: Path | None = None,\n    ) -> None:\n        \"\"\"\n        Test the client with the specified fixture using its direct consumer\n        interface.\n        \"\"\"\n        raise NotImplementedError(\n            \"The `consume_fixture()` function is not supported by this tool.\"\n        )\n\n\nclass TestCaseBase(BaseModel):\n    \"\"\"Base model for a test case used in EEST consume commands.\"\"\"\n\n    id: str\n    fixture_hash: HexNumber | None\n    fork: Fork | None\n    format: FixtureFormat\n    pre_hash: str | None = None\n    __test__ = False  # stop pytest from collecting this class as a test\n\n\nclass TestCaseStream(TestCaseBase):\n    \"\"\"The test case model used to load test cases from a stream (stdin).\"\"\"\n\n    fixture: BaseFixture\n    __test__ = False  # stop pytest from collecting this class as a test\n\n\nclass TestCaseIndexFile(TestCaseBase):\n    \"\"\"\n    The test case model used to save/load test cases to/from an index file.\n    \"\"\"\n\n    json_path: Path\n    __test__ = False  # stop pytest from collecting this class as a test\n\n    # TODO: add pytest marks\n    \"\"\"\n    ConsumerTypes = Literal[\"all\", \"direct\", \"rlp\", \"engine\"]\n    @classmethod\n    def _marks_default(cls):\n        return {consumer_type: [] for consumer_type in get_args(ConsumerTypes)}\n    marks: Mapping[ConsumerTypes, List[pytest.MarkDecorator]] = field(\n        default_factory=lambda: TestCase._marks_default()\n    )\n    \"\"\"\n\n\nclass IndexFile(BaseModel):\n    \"\"\"The model definition used for fixture index files.\"\"\"\n\n    root_hash: HexNumber | None\n    created_at: datetime.datetime\n    test_count: int\n    forks: Optional[List[Fork]] = []\n    fixture_formats: Optional[List[str]] = []\n    test_cases: List[TestCaseIndexFile]\n\n\nclass TestCases(RootModel):\n    \"\"\"Root model defining a list test cases used in consume commands.\"\"\"\n\n    root: List[TestCaseIndexFile] | List[TestCaseStream]\n    __test__ = False  # stop pytest from collecting this class as a test\n\n    def __len__(self) -> int:\n        \"\"\"Return the number of test cases in the root list.\"\"\"\n        return len(self.root)\n\n    def __getitem__(self, position: int) -> TestCaseIndexFile | TestCaseStream:\n        \"\"\"Retrieve a test case by its index.\"\"\"\n        return self.root[position]\n\n    def __setitem__(self, position: int, value: TestCaseIndexFile | TestCaseStream) -> None:\n        \"\"\"Set a test case at a particular index.\"\"\"\n        self.root[position] = value  # type: ignore\n\n    def __delitem__(self, position: int) -> None:\n        \"\"\"Remove a test case at a particular index.\"\"\"\n        del self.root[position]\n\n    def append(self, item: TestCaseIndexFile | TestCaseStream) -> None:\n        \"\"\"Append a test case to the root list.\"\"\"\n        self.root.append(item)  # type: ignore\n\n    def insert(self, position: int, value: TestCaseIndexFile | TestCaseStream) -> None:\n        \"\"\"Insert a test case at a given position.\"\"\"\n        self.root.insert(position, value)  # type: ignore\n\n    def remove(self, value: TestCaseIndexFile | TestCaseStream) -> None:\n        \"\"\"Remove a test case from the root list.\"\"\"\n        self.root.remove(value)  # type: ignore\n\n    def pop(self, position: int = -1) -> TestCaseIndexFile | TestCaseStream:\n        \"\"\"Remove and return a test case at the given position.\"\"\"\n        return self.root.pop(position)\n\n    def clear(self) -> None:\n        \"\"\"Remove all items from the root list.\"\"\"\n        self.root.clear()\n\n    def __iter__(self) -> Iterator[TestCaseIndexFile | TestCaseStream]:  # type: ignore [override]\n        \"\"\"Return an iterator for the root list.\"\"\"\n        return iter(self.root)\n\n    def __repr__(self) -> str:\n        \"\"\"Return a string representation of the TestCases object.\"\"\"\n        return f\"{self.__class__.__name__}(root={self.root})\"\n\n    @classmethod\n    def from_stream(cls, fd: TextIO) -> \"TestCases\":\n        \"\"\"Create a TestCases object from a stream.\"\"\"\n        fixtures: Fixtures = Fixtures.model_validate_json(fd.read())\n        test_cases = [\n            TestCaseStream(\n                id=fixture_name,\n                fixture_hash=fixture.hash,\n                fork=fixture.get_fork(),\n                format=fixture.__class__,\n                fixture=fixture,\n            )\n            for fixture_name, fixture in fixtures.items()\n        ]\n        return cls(root=test_cases)\n\n    @classmethod\n    def from_index_file(cls, index_file: Path) -> \"TestCases\":\n        \"\"\"Create a TestCases object from an index file.\"\"\"\n        index: IndexFile = IndexFile.model_validate_json(index_file.read_text())\n        return cls(root=index.test_cases)\n"
  },
  {
    "path": "src/ethereum_test_fixtures/eof.py",
    "content": "\"\"\"EOFTest Type Definitions.\"\"\"\n\nfrom typing import Any, ClassVar, Mapping\n\nfrom pydantic import Field\n\nfrom ethereum_test_base_types import Bytes, CamelModel, Number\nfrom ethereum_test_exceptions.exceptions import EOFExceptionInstanceOrList\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_types.eof.v1 import ContainerKind\n\nfrom .base import BaseFixture\n\n\nclass Result(CamelModel):\n    \"\"\"Result for a single fork in a fixture.\"\"\"\n\n    exception: EOFExceptionInstanceOrList | None = None\n    valid: bool = Field(..., alias=\"result\")\n\n    def model_post_init(self, __context: Any) -> None:\n        \"\"\"\n        Cross-field validation that a test cannot have an empty exception if\n        the valid is False.\n        \"\"\"\n        if not self.valid and self.exception is None:\n            raise ValueError(\"Invalid test: invalid but exception is not set\")\n        elif self.valid and self.exception is not None:\n            raise ValueError(\"Invalid test: valid but exception is set\")\n        super().model_post_init(__context)\n\n\nclass Vector(CamelModel):\n    \"\"\"Single test vector in a fixture.\"\"\"\n\n    code: Bytes\n    container_kind: ContainerKind = ContainerKind.RUNTIME\n    results: Mapping[Fork, Result]\n\n\nclass EOFFixture(BaseFixture):\n    \"\"\"Fixture for a single EOFTest.\"\"\"\n\n    format_name: ClassVar[str] = \"eof_test\"\n    description: ClassVar[str] = \"Tests that generate an EOF test fixture.\"\n\n    vectors: Mapping[Number, Vector]\n\n    def get_fork(self) -> Fork | None:\n        \"\"\"Return fork of the fixture as a string.\"\"\"\n        return None\n"
  },
  {
    "path": "src/ethereum_test_fixtures/file.py",
    "content": "\"\"\"Defines models for interacting with JSON fixture files.\"\"\"\n\nimport json\nfrom pathlib import Path\nfrom typing import Any, Dict, ItemsView, Iterator, KeysView, ValuesView\n\nfrom filelock import FileLock\nfrom pydantic import SerializeAsAny\n\nfrom ethereum_test_base_types import EthereumTestRootModel\n\nfrom .base import BaseFixture\n\n\nclass Fixtures(EthereumTestRootModel):\n    \"\"\"\n    A base class for defining top-level models that encapsulate multiple test\n    fixtures. Each fixture is stored in a dictionary, where each key is a\n    string (typically the fixture name) and its corresponding value is a\n    fixture object. This is the structure used for blockchain and state JSON\n    fixture files.\n\n    This class implements dunder methods and other common functionality to\n    allow interaction with the model's fixtures as if they were being accessed\n    directly from a dictionary.\n    \"\"\"\n\n    root: Dict[str, SerializeAsAny[BaseFixture]]\n\n    def __setitem__(self, key: str, value: BaseFixture) -> None:  # noqa: D105\n        self.root[key] = value\n\n    def __getitem__(self, item: str) -> SerializeAsAny[BaseFixture]:  # noqa: D105\n        return self.root[item]\n\n    def __iter__(self) -> Iterator[str]:  # type: ignore [override]  # noqa: D105\n        return iter(self.root)\n\n    def __contains__(self, item: str) -> bool:  # noqa: D105\n        return item in self.root\n\n    def __len__(self) -> int:  # noqa: D105\n        return len(self.root)\n\n    def keys(self) -> KeysView[str]:  # noqa: D102\n        return self.root.keys()\n\n    def values(self) -> ValuesView[SerializeAsAny[BaseFixture]]:  # noqa: D102\n        return self.root.values()\n\n    def items(self) -> ItemsView[str, SerializeAsAny[BaseFixture]]:  # noqa: D102\n        return self.root.items()\n\n    def collect_into_file(self, file_path: Path) -> None:\n        \"\"\"\n        For all formats, we join the fixtures as json into a single file.\n\n        Note: We don't use pydantic model_dump_json() on the Fixtures object as\n        we add the hash to the info field on per-fixture basis.\n        \"\"\"\n        json_fixtures: Dict[str, Dict[str, Any]] = {}\n        lock_file_path = file_path.with_suffix(\".lock\")\n        with FileLock(lock_file_path):\n            if file_path.exists():\n                with open(file_path, \"r\") as f:\n                    json_fixtures = json.load(f)\n            for name, fixture in self.items():\n                json_fixtures[name] = fixture.json_dict_with_info()\n\n            with open(file_path, \"w\") as f:\n                json.dump(dict(sorted(json_fixtures.items())), f, indent=4)\n"
  },
  {
    "path": "src/ethereum_test_fixtures/pre_alloc_groups.py",
    "content": "\"\"\"Pre-allocation group models for test fixture generation.\"\"\"\n\nimport json\nfrom pathlib import Path\nfrom typing import Any, Dict, Generator, Iterator, KeysView, List, Tuple\n\nfrom filelock import FileLock\nfrom pydantic import Field, PrivateAttr, computed_field\n\nfrom ethereum_test_base_types import CamelModel, EthereumTestRootModel\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_types import Alloc, Environment\n\nfrom .blockchain import FixtureHeader\n\n\nclass PreAllocGroup(CamelModel):\n    \"\"\"\n    Pre-allocation group for tests with identical Environment and fork values.\n\n    Groups tests by a hash of their fixture Environment and fork to enable\n    pre-allocation group optimization.\n    \"\"\"\n\n    # Allow both field names and aliases\n    model_config = {\"populate_by_name\": True}\n\n    test_ids: List[str] = Field(default_factory=list)\n    environment: Environment = Field(..., description=\"Grouping environment for this test group\")\n    fork: Fork = Field(..., alias=\"network\")\n    pre: Alloc\n\n    @computed_field(description=\"Number of accounts in the pre-allocation\")  # type: ignore[prop-decorator]\n    @property\n    def pre_account_count(self) -> int:\n        \"\"\"Return the amount of accounts the pre-allocation group holds.\"\"\"\n        return len(self.pre.root)\n\n    @computed_field(description=\"Number of tests in this group\")  # type: ignore[prop-decorator]\n    @property\n    def test_count(self) -> int:\n        \"\"\"Return the amount of tests that use this pre-allocation group.\"\"\"\n        return len(self.test_ids)\n\n    @computed_field  # type: ignore[prop-decorator]\n    @property\n    def genesis(self) -> FixtureHeader:\n        \"\"\"Get the genesis header for this group.\"\"\"\n        return FixtureHeader.genesis(\n            self.fork,\n            self.environment,\n            self.pre.state_root(),\n        )\n\n    def to_file(self, file: Path) -> None:\n        \"\"\"Save PreAllocGroup to a file.\"\"\"\n        lock_file_path = file.with_suffix(\".lock\")\n        with FileLock(lock_file_path):\n            if file.exists():\n                with open(file, \"r\") as f:\n                    previous_pre_alloc_group = PreAllocGroup.model_validate_json(f.read())\n                for account in previous_pre_alloc_group.pre:\n                    existing_account = previous_pre_alloc_group.pre[account]\n                    if account not in self.pre:\n                        self.pre[account] = existing_account\n                    else:\n                        new_account = self.pre[account]\n                        if new_account != existing_account:\n                            # This procedure fails during xdist worker's\n                            # pytest_sessionfinish and is not reported to the\n                            # master thread. We signal here that the groups\n                            # created contain a collision.\n                            collision_file_path = file.with_suffix(\".fail\")\n                            collision_exception = Alloc.CollisionError(\n                                address=account,\n                                account_1=existing_account,\n                                account_2=new_account,\n                            )\n                            with open(collision_file_path, \"w\") as f:\n                                f.write(json.dumps(collision_exception.to_json()))\n                            raise collision_exception\n                self.test_ids.extend(previous_pre_alloc_group.test_ids)\n\n            with open(file, \"w\") as f:\n                f.write(self.model_dump_json(by_alias=True, exclude_none=True, indent=2))\n\n\nclass PreAllocGroups(EthereumTestRootModel):\n    \"\"\"\n    Root model mapping pre-allocation group hashes to test groups.\n\n    If lazy_load is True, the groups are not loaded from the folder until they\n    are accessed.\n\n    Iterating will fail if lazy_load is True.\n    \"\"\"\n\n    root: Dict[str, PreAllocGroup | None]\n\n    _folder_source: Path | None = PrivateAttr(None)\n\n    def __setitem__(self, key: str, value: Any) -> None:\n        \"\"\"Set item in root dict.\"\"\"\n        assert self._folder_source is None, (\n            \"Cannot set item in root dict after folder source is set\"\n        )\n        self.root[key] = value\n\n    @classmethod\n    def from_folder(cls, folder: Path, *, lazy_load: bool = False) -> \"PreAllocGroups\":\n        \"\"\"Create PreAllocGroups from a folder of pre-allocation files.\"\"\"\n        # First check for collision failures\n        for fail_file in folder.glob(\"*.fail\"):\n            with open(fail_file) as f:\n                raise Alloc.CollisionError.from_json(json.loads(f.read()))\n\n        data: Dict[str, PreAllocGroup | None] = {}\n        for file in folder.glob(\"*.json\"):\n            if lazy_load:\n                data[file.stem] = None\n            else:\n                with open(file) as f:\n                    data[file.stem] = PreAllocGroup.model_validate_json(f.read())\n        instance = cls(root=data)\n        if lazy_load:\n            instance._folder_source = folder\n        return instance\n\n    def to_folder(self, folder: Path) -> None:\n        \"\"\"Save PreAllocGroups to a folder of pre-allocation files.\"\"\"\n        for key, value in self.root.items():\n            assert value is not None, f\"Value for key {key} is None\"\n            value.to_file(folder / f\"{key}.json\")\n\n    def __getitem__(self, item: str) -> PreAllocGroup:\n        \"\"\"Get item from root dict.\"\"\"\n        if self._folder_source is None:\n            value = self.root[item]\n            assert value is not None, f\"Item {item} is None\"\n            return value\n        else:\n            if self.root[item] is None:\n                with open(self._folder_source / f\"{item}.json\") as f:\n                    self.root[item] = PreAllocGroup.model_validate_json(f.read())\n            result = self.root[item]\n            assert result is not None\n            return result\n\n    def __iter__(self) -> Iterator[str]:  # type: ignore [override]\n        \"\"\"Iterate over root dict.\"\"\"\n        return iter(self.root)\n\n    def __contains__(self, item: str) -> bool:\n        \"\"\"Check if item in root dict.\"\"\"\n        return item in self.root\n\n    def __len__(self) -> int:\n        \"\"\"Get length of root dict.\"\"\"\n        return len(self.root)\n\n    def keys(self) -> KeysView[str]:\n        \"\"\"Get keys from root dict.\"\"\"\n        return self.root.keys()\n\n    def values(self) -> Generator[PreAllocGroup, None, None]:\n        \"\"\"Get values from root dict.\"\"\"\n        for value in self.root.values():\n            assert value is not None, \"Value is None\"\n            yield value\n\n    def items(self) -> Generator[Tuple[str, PreAllocGroup], None, None]:\n        \"\"\"Get items from root dict.\"\"\"\n        for key, value in self.root.items():\n            assert value is not None, f\"Value for key {key} is None\"\n            yield key, value\n"
  },
  {
    "path": "src/ethereum_test_fixtures/py.typed",
    "content": ""
  },
  {
    "path": "src/ethereum_test_fixtures/state.py",
    "content": "\"\"\"StateTest types.\"\"\"\n\nfrom typing import ClassVar, List, Mapping, Sequence\n\nfrom pydantic import BaseModel, Field\n\nfrom ethereum_test_base_types import (\n    AccessList,\n    Address,\n    Alloc,\n    Bytes,\n    CamelModel,\n    Hash,\n    ZeroPaddedHexNumber,\n)\nfrom ethereum_test_exceptions import TransactionExceptionInstanceOrList\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_types.block_types import EnvironmentGeneric\nfrom ethereum_test_types.transaction_types import (\n    Transaction,\n    TransactionFixtureConverter,\n)\n\nfrom .base import BaseFixture\nfrom .common import FixtureAuthorizationTuple, FixtureBlobSchedule\n\n\nclass FixtureEnvironment(EnvironmentGeneric[ZeroPaddedHexNumber]):\n    \"\"\"Type used to describe the environment of a state test.\"\"\"\n\n    prev_randao: Hash | None = Field(None, alias=\"currentRandom\")  # type: ignore\n\n\nclass FixtureTransaction(TransactionFixtureConverter):\n    \"\"\"Type used to describe a transaction in a state test.\"\"\"\n\n    nonce: ZeroPaddedHexNumber\n    gas_price: ZeroPaddedHexNumber | None = None\n    max_priority_fee_per_gas: ZeroPaddedHexNumber | None = None\n    max_fee_per_gas: ZeroPaddedHexNumber | None = None\n    gas_limit: List[ZeroPaddedHexNumber]\n    to: Address | None = None\n    value: List[ZeroPaddedHexNumber]\n    data: List[Bytes]\n    access_lists: List[List[AccessList] | None] | None = None\n    authorization_list: List[FixtureAuthorizationTuple] | None = None\n    initcodes: List[Bytes] | None = None\n    max_fee_per_blob_gas: ZeroPaddedHexNumber | None = None\n    blob_versioned_hashes: Sequence[Hash] | None = None\n    sender: Address | None = None\n    secret_key: Hash | None = None\n\n    @classmethod\n    def from_transaction(cls, tx: Transaction) -> \"FixtureTransaction\":\n        \"\"\"Return FixtureTransaction from a Transaction.\"\"\"\n        model_as_dict = tx.model_dump(\n            exclude={\"gas_limit\", \"value\", \"data\", \"access_list\"}, exclude_none=True\n        )\n        model_as_dict[\"gas_limit\"] = [tx.gas_limit]\n        model_as_dict[\"value\"] = [tx.value]\n        model_as_dict[\"data\"] = [tx.data]\n        model_as_dict[\"access_lists\"] = [tx.access_list] if tx.access_list is not None else None\n        return cls(**model_as_dict)\n\n\nclass FixtureForkPostIndexes(BaseModel):\n    \"\"\"\n    Type used to describe the indexes of a single post state of a single Fork.\n    \"\"\"\n\n    data: int = 0\n    gas: int = 0\n    value: int = 0\n\n\nclass FixtureForkPost(CamelModel):\n    \"\"\"Type used to describe the post state of a single Fork.\"\"\"\n\n    state_root: Hash = Field(..., alias=\"hash\")\n    logs_hash: Hash = Field(..., alias=\"logs\")\n    tx_bytes: Bytes = Field(..., alias=\"txbytes\")\n    indexes: FixtureForkPostIndexes = Field(default_factory=FixtureForkPostIndexes)\n    state: Alloc\n    expect_exception: TransactionExceptionInstanceOrList | None = None\n\n\nclass FixtureConfig(CamelModel):\n    \"\"\"Chain configuration for a fixture.\"\"\"\n\n    blob_schedule: FixtureBlobSchedule | None = None\n    chain_id: ZeroPaddedHexNumber = Field(ZeroPaddedHexNumber(1), alias=\"chainid\")\n\n\nclass StateFixture(BaseFixture):\n    \"\"\"Fixture for a single StateTest.\"\"\"\n\n    format_name: ClassVar[str] = \"state_test\"\n    description: ClassVar[str] = \"Tests that generate a state test fixture.\"\n\n    env: FixtureEnvironment\n    pre: Alloc\n    transaction: FixtureTransaction\n    post: Mapping[Fork, List[FixtureForkPost]]\n    config: FixtureConfig\n\n    def get_fork(self) -> Fork | None:\n        \"\"\"Return fork of the fixture as a string.\"\"\"\n        forks = list(self.post.keys())\n        assert len(forks) == 1, \"Expected state test fixture with single fork\"\n        return forks[0]\n"
  },
  {
    "path": "src/ethereum_test_fixtures/tests/__init__.py",
    "content": "\"\"\"Tests for the ethereum_test_fixtures package.\"\"\"\n"
  },
  {
    "path": "src/ethereum_test_fixtures/tests/test_base.py",
    "content": "\"\"\"Test cases for the ethereum_test_fixtures.base module.\"\"\"\n\nimport pytest\n\nfrom ..base import BaseFixture\nfrom ..file import Fixtures\nfrom ..state import FixtureEnvironment, FixtureTransaction, StateFixture\nfrom ..transaction import FixtureResult, TransactionFixture\n\n\ndef test_json_dict() -> None:\n    \"\"\"Test that the json_dict property does not include the info field.\"\"\"\n    fixture = TransactionFixture(\n        txbytes=\"0x1234\",\n        result={\"Paris\": FixtureResult(intrinsic_gas=0)},\n    )\n    assert \"_info\" not in fixture.json_dict, \"json_dict should exclude the 'info' field\"\n\n\n@pytest.mark.parametrize(\n    \"fixture\",\n    [\n        pytest.param(\n            StateFixture(\n                env=FixtureEnvironment(),\n                transaction=FixtureTransaction(\n                    nonce=0,\n                    gas_limit=[0],\n                    value=[0],\n                    data=[b\"\"],\n                ),\n                pre={},\n                post={},\n                config={},\n            ),\n            id=\"StateFixture\",\n        ),\n        pytest.param(\n            TransactionFixture(\n                transaction=\"0x1234\",\n                result={\"Paris\": FixtureResult(intrinsic_gas=0)},\n            ),\n            id=\"TransactionFixture\",\n        ),\n    ],\n)\ndef test_base_fixtures_parsing(fixture: BaseFixture) -> None:\n    \"\"\"Test that the Fixtures generic model can validate any fixture format.\"\"\"\n    fixture.fill_info(\n        \"t8n-version\",\n        \"test_case_description\",\n        fixture_source_url=\"fixture_source_url\",\n        ref_spec=None,\n        _info_metadata={},\n    )\n    json_dump = fixture.json_dict_with_info()\n    assert json_dump is not None\n    Fixtures.model_validate({\"fixture\": json_dump})\n"
  },
  {
    "path": "src/ethereum_test_fixtures/tests/test_blockchain.py",
    "content": "\"\"\"Test the blockchain test types.\"\"\"\n\nfrom typing import Any, Dict\n\nimport pytest\nfrom pydantic import TypeAdapter\n\nfrom ethereum_test_base_types import (\n    AccessList,\n    Address,\n    Bloom,\n    BLSPublicKey,\n    BLSSignature,\n    Bytes,\n    Hash,\n    HeaderNonce,\n    TestPrivateKey,\n    ZeroPaddedHexNumber,\n    to_json,\n)\nfrom ethereum_test_exceptions import BlockException, EngineAPIError, TransactionException\nfrom ethereum_test_forks import Prague\nfrom ethereum_test_types import (\n    EOA,\n    AuthorizationTuple,\n    ConsolidationRequest,\n    DepositRequest,\n    Requests,\n    Transaction,\n    Withdrawal,\n    WithdrawalRequest,\n)\n\nfrom ..blockchain import (\n    EngineNewPayloadParameters,\n    FixtureBlockBase,\n    FixtureEngineNewPayload,\n    FixtureExecutionPayload,\n    FixtureHeader,\n    FixtureTransaction,\n    InvalidFixtureBlock,\n)\n\nfixture_header_ones = FixtureHeader(\n    parent_hash=Hash(1),\n    ommers_hash=Hash(1),\n    fee_recipient=Address(1),\n    state_root=Hash(1),\n    transactions_trie=Hash(1),\n    receipts_root=Hash(1),\n    logs_bloom=Bloom(1),\n    difficulty=1,\n    number=1,\n    gas_limit=1,\n    gas_used=1,\n    timestamp=1,\n    extra_data=Bytes([1]),\n    prev_randao=Hash(1),\n    nonce=HeaderNonce(1),\n    base_fee_per_gas=1,\n    withdrawals_root=Hash(1),\n    blob_gas_used=1,\n    excess_blob_gas=1,\n    # hash=Hash(1),\n)\n\n\n@pytest.mark.parametrize(\n    [\"can_be_deserialized\", \"model_instance\", \"json_repr\"],\n    [\n        pytest.param(\n            True,\n            FixtureTransaction.from_transaction(Transaction().with_signature_and_sender()),\n            {\n                \"type\": \"0x00\",\n                \"chainId\": \"0x01\",\n                \"nonce\": \"0x00\",\n                \"to\": \"0x00000000000000000000000000000000000000aa\",\n                \"value\": \"0x00\",\n                \"data\": \"0x\",\n                \"gasLimit\": \"0x5208\",\n                \"gasPrice\": \"0x0a\",\n                \"v\": \"0x26\",\n                \"r\": \"0xcc61d852649c34cc0b71803115f38036ace257d2914f087bf885e6806a664fbd\",\n                \"s\": \"0x2020cb35f5d7731ab540d62614503a7f2344301a86342f67daf011c1341551ff\",\n                \"sender\": \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            },\n            id=\"fixture_transaction_type_0_default_values\",\n        ),\n        pytest.param(\n            True,\n            FixtureTransaction.from_transaction(Transaction(to=None).with_signature_and_sender()),\n            {\n                \"type\": \"0x00\",\n                \"chainId\": \"0x01\",\n                \"to\": \"\",\n                \"nonce\": \"0x00\",\n                \"value\": \"0x00\",\n                \"data\": \"0x\",\n                \"gasLimit\": \"0x5208\",\n                \"gasPrice\": \"0x0a\",\n                \"v\": \"0x25\",\n                \"r\": \"0x1cfe2cbb0c3577f74d9ae192a7f1ee2d670fe806a040f427af9cb768be3d07ce\",\n                \"s\": \"0x0cbe2d029f52dbf93ade486625bed0603945d2c7358b31de99fe8786c00f13da\",\n                \"sender\": \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            },\n            id=\"fixture_transaction_type_0_contract_creation\",\n        ),\n        pytest.param(\n            True,\n            FixtureTransaction.from_transaction(Transaction(ty=1).with_signature_and_sender()),\n            {\n                \"type\": \"0x01\",\n                \"chainId\": \"0x01\",\n                \"nonce\": \"0x00\",\n                \"to\": \"0x00000000000000000000000000000000000000aa\",\n                \"value\": \"0x00\",\n                \"data\": \"0x\",\n                \"gasLimit\": \"0x5208\",\n                \"gasPrice\": \"0x0a\",\n                \"accessList\": [],\n                \"v\": \"0x01\",\n                \"r\": \"0x58b4ddaa529492d32b6bc8327eb8ee0bc8b535c3bfc0f4f1db3d7c16b51d1851\",\n                \"s\": \"0x5ef19167661b14d06dfc785bf62693e6f9e5a44e7c11e0320efed27b27294970\",\n                \"sender\": \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            },\n            id=\"fixture_transaction_type_1_default_values\",\n        ),\n        pytest.param(\n            True,\n            FixtureTransaction.from_transaction(\n                Transaction(ty=2, max_fee_per_gas=7).with_signature_and_sender()\n            ),\n            {\n                \"type\": \"0x02\",\n                \"chainId\": \"0x01\",\n                \"nonce\": \"0x00\",\n                \"to\": \"0x00000000000000000000000000000000000000aa\",\n                \"value\": \"0x00\",\n                \"data\": \"0x\",\n                \"gasLimit\": \"0x5208\",\n                \"maxPriorityFeePerGas\": \"0x00\",\n                \"maxFeePerGas\": \"0x07\",\n                \"accessList\": [],\n                \"v\": \"0x00\",\n                \"r\": \"0x33fc39081d01f8e7f0ce5426d4a00a7b07c2edea064d24a8cac8e4b1f0c08298\",\n                \"s\": \"0x4635e1c45238697db38e37070d4fce27fb5684f9dec4046466ea42a9834bad0a\",\n                \"sender\": \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            },\n            id=\"fixture_transaction_type_2_default_values\",\n        ),\n        pytest.param(\n            True,\n            FixtureTransaction.from_transaction(\n                Transaction(\n                    ty=3,\n                    max_fee_per_gas=7,\n                    max_fee_per_blob_gas=1,\n                    blob_versioned_hashes=[],\n                ).with_signature_and_sender()\n            ),\n            {\n                \"type\": \"0x03\",\n                \"chainId\": \"0x01\",\n                \"nonce\": \"0x00\",\n                \"to\": \"0x00000000000000000000000000000000000000aa\",\n                \"value\": \"0x00\",\n                \"data\": \"0x\",\n                \"gasLimit\": \"0x5208\",\n                \"maxPriorityFeePerGas\": \"0x00\",\n                \"maxFeePerGas\": \"0x07\",\n                \"maxFeePerBlobGas\": \"0x01\",\n                \"accessList\": [],\n                \"blobVersionedHashes\": [],\n                \"v\": \"0x01\",\n                \"r\": \"0x8978475a00bf155bf5687dfda89c2df55ef6c341cdfd689aeaa6c519569a530a\",\n                \"s\": \"0x66fc34935cdd191441a12a2e7b1f224cb40b928afb9bc89c8ddb2b78c19342cc\",\n                \"sender\": \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            },\n            id=\"fixture_transaction_type_3_default_values\",\n        ),\n        pytest.param(\n            True,\n            FixtureTransaction.from_transaction(\n                Transaction(\n                    ty=4,\n                    max_fee_per_gas=7,\n                    authorization_list=[\n                        AuthorizationTuple(\n                            chain_id=1,\n                            address=2,\n                            nonce=3,\n                            signer=EOA(key=TestPrivateKey),\n                        )\n                    ],\n                ).with_signature_and_sender()\n            ),\n            {\n                \"type\": \"0x04\",\n                \"chainId\": \"0x01\",\n                \"nonce\": \"0x00\",\n                \"to\": \"0x00000000000000000000000000000000000000aa\",\n                \"value\": \"0x00\",\n                \"data\": \"0x\",\n                \"gasLimit\": \"0x5208\",\n                \"maxPriorityFeePerGas\": \"0x00\",\n                \"maxFeePerGas\": \"0x07\",\n                \"accessList\": [],\n                \"authorizationList\": [\n                    {\n                        \"chainId\": \"0x01\",\n                        \"address\": Address(2).hex(),\n                        \"nonce\": \"0x03\",\n                        \"v\": \"0x00\",\n                        \"r\": \"0xda29c3bd0304ae475b06d1a11344e0b6d75590f2c23138c9507f4b5bedde3c79\",\n                        \"s\": \"0x3e1fb143ae0460373d567cf901645757b321e42c423a53b2d46ed13c9ef0a9ab\",\n                        \"signer\": \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                        \"yParity\": \"0x00\",\n                    }\n                ],\n                \"v\": \"0x01\",\n                \"r\": \"0xe7da7f244c95cea73ac6316971139ac0eb8fad455d9a25e1c134d7a157c38ff9\",\n                \"s\": \"0x1939185d2e2a2b3375183e42b5755d695efbd72e186cf9a3e6958a3fb84cc709\",\n                \"sender\": \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            },\n            id=\"fixture_transaction_type_4\",\n        ),\n        pytest.param(\n            True,\n            FixtureTransaction.from_transaction(\n                Transaction(\n                    to=0x1234,\n                    data=b\"\\x01\\x00\",\n                    access_list=[\n                        AccessList(\n                            address=0x1234,\n                            storage_keys=[0, 1],\n                        )\n                    ],\n                    max_priority_fee_per_gas=10,\n                    max_fee_per_gas=20,\n                    max_fee_per_blob_gas=30,\n                    blob_versioned_hashes=[0, 1],\n                ).with_signature_and_sender()\n            ),\n            {\n                \"type\": \"0x03\",\n                \"chainId\": \"0x01\",\n                \"nonce\": \"0x00\",\n                \"to\": \"0x0000000000000000000000000000000000001234\",\n                \"accessList\": [\n                    {\n                        \"address\": \"0x0000000000000000000000000000000000001234\",\n                        \"storageKeys\": [\n                            \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n                            \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n                        ],\n                    }\n                ],\n                \"value\": \"0x00\",\n                \"data\": \"0x0100\",\n                \"gasLimit\": \"0x5208\",\n                \"maxPriorityFeePerGas\": \"0x0a\",\n                \"maxFeePerGas\": \"0x14\",\n                \"maxFeePerBlobGas\": \"0x1e\",\n                \"blobVersionedHashes\": [\n                    \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n                    \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n                ],\n                \"v\": \"0x00\",\n                \"r\": \"0x418bb557c43262375f80556cb09dac5e67396acf0eaaf2c2540523d1ce54b280\",\n                \"s\": \"0x4fa36090ea68a1138043d943ced123c0b0807d82ff3342a6977cbc09230e927c\",\n                \"sender\": \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            },\n            id=\"fixture_transaction_3\",\n        ),\n        pytest.param(\n            True,\n            FixtureHeader(\n                parent_hash=Hash(0),\n                ommers_hash=Hash(1),\n                fee_recipient=Address(2),\n                state_root=Hash(3),\n                transactions_trie=Hash(4),\n                receipts_root=Hash(5),\n                logs_bloom=Bloom(6),\n                difficulty=7,\n                number=8,\n                gas_limit=9,\n                gas_used=10,\n                timestamp=11,\n                extra_data=Bytes([12]),\n                prev_randao=Hash(13),\n                nonce=HeaderNonce(14),\n            ),\n            {\n                \"parentHash\": Hash(0).hex(),\n                \"uncleHash\": Hash(1).hex(),\n                \"coinbase\": Address(2).hex(),\n                \"stateRoot\": Hash(3).hex(),\n                \"transactionsTrie\": Hash(4).hex(),\n                \"receiptTrie\": Hash(5).hex(),\n                \"bloom\": Bloom(6).hex(),\n                \"difficulty\": ZeroPaddedHexNumber(7).hex(),\n                \"number\": ZeroPaddedHexNumber(8).hex(),\n                \"gasLimit\": ZeroPaddedHexNumber(9).hex(),\n                \"gasUsed\": ZeroPaddedHexNumber(10).hex(),\n                \"timestamp\": ZeroPaddedHexNumber(11).hex(),\n                \"extraData\": Bytes([12]).hex(),\n                \"mixHash\": Hash(13).hex(),\n                \"nonce\": HeaderNonce(14).hex(),\n                \"hash\": \"0x1dc087517148c2d6a1dd1ea5de107bc5f728414f9d210ed18286d305abe6ba5e\",\n            },\n            id=\"fixture_header_1\",\n        ),\n        pytest.param(\n            True,\n            FixtureHeader(\n                parent_hash=Hash(0),\n                ommers_hash=Hash(1),\n                fee_recipient=Address(2),\n                state_root=Hash(3),\n                transactions_trie=Hash(4),\n                receipts_root=Hash(5),\n                logs_bloom=Bloom(6),\n                difficulty=7,\n                number=8,\n                gas_limit=9,\n                gas_used=10,\n                timestamp=11,\n                extra_data=Bytes([12]),\n                prev_randao=Hash(13),\n                nonce=HeaderNonce(14),\n                base_fee_per_gas=15,\n                withdrawals_root=Hash(16),\n                blob_gas_used=17,\n                excess_blob_gas=18,\n            ),\n            {\n                \"parentHash\": Hash(0).hex(),\n                \"uncleHash\": Hash(1).hex(),\n                \"coinbase\": Address(2).hex(),\n                \"stateRoot\": Hash(3).hex(),\n                \"transactionsTrie\": Hash(4).hex(),\n                \"receiptTrie\": Hash(5).hex(),\n                \"bloom\": Bloom(6).hex(),\n                \"difficulty\": ZeroPaddedHexNumber(7).hex(),\n                \"number\": ZeroPaddedHexNumber(8).hex(),\n                \"gasLimit\": ZeroPaddedHexNumber(9).hex(),\n                \"gasUsed\": ZeroPaddedHexNumber(10).hex(),\n                \"timestamp\": ZeroPaddedHexNumber(11).hex(),\n                \"extraData\": Bytes([12]).hex(),\n                \"mixHash\": Hash(13).hex(),\n                \"nonce\": HeaderNonce(14).hex(),\n                \"baseFeePerGas\": ZeroPaddedHexNumber(15).hex(),\n                \"withdrawalsRoot\": Hash(16).hex(),\n                \"blobGasUsed\": ZeroPaddedHexNumber(17).hex(),\n                \"excessBlobGas\": ZeroPaddedHexNumber(18).hex(),\n                \"hash\": \"0xd90115b7fde329f64335763a446af150ab67e639281dccdb07a007d18bb80211\",\n            },\n            id=\"fixture_header_2\",\n        ),\n        pytest.param(\n            True,\n            FixtureBlockBase(\n                header=FixtureHeader(\n                    parent_hash=Hash(0),\n                    ommers_hash=Hash(1),\n                    fee_recipient=Address(2),\n                    state_root=Hash(3),\n                    transactions_trie=Hash(4),\n                    receipts_root=Hash(5),\n                    logs_bloom=Bloom(6),\n                    difficulty=7,\n                    number=8,\n                    gas_limit=9,\n                    gas_used=10,\n                    timestamp=11,\n                    extra_data=Bytes([12]),\n                    prev_randao=Hash(13),\n                    nonce=HeaderNonce(14),\n                    base_fee_per_gas=15,\n                    withdrawals_root=Hash(16),\n                    blob_gas_used=17,\n                    excess_blob_gas=18,\n                ),\n                transactions=[\n                    FixtureTransaction.from_transaction(Transaction().with_signature_and_sender())\n                ],\n            ),\n            {\n                \"blockHeader\": {\n                    \"parentHash\": Hash(0).hex(),\n                    \"uncleHash\": Hash(1).hex(),\n                    \"coinbase\": Address(2).hex(),\n                    \"stateRoot\": Hash(3).hex(),\n                    \"transactionsTrie\": Hash(4).hex(),\n                    \"receiptTrie\": Hash(5).hex(),\n                    \"bloom\": Bloom(6).hex(),\n                    \"difficulty\": ZeroPaddedHexNumber(7).hex(),\n                    \"number\": ZeroPaddedHexNumber(8).hex(),\n                    \"gasLimit\": ZeroPaddedHexNumber(9).hex(),\n                    \"gasUsed\": ZeroPaddedHexNumber(10).hex(),\n                    \"timestamp\": ZeroPaddedHexNumber(11).hex(),\n                    \"extraData\": Bytes([12]).hex(),\n                    \"mixHash\": Hash(13).hex(),\n                    \"nonce\": HeaderNonce(14).hex(),\n                    \"baseFeePerGas\": ZeroPaddedHexNumber(15).hex(),\n                    \"withdrawalsRoot\": Hash(16).hex(),\n                    \"blobGasUsed\": ZeroPaddedHexNumber(17).hex(),\n                    \"excessBlobGas\": ZeroPaddedHexNumber(18).hex(),\n                    \"hash\": \"0xd90115b7fde329f64335763a446af150ab67e639281dccdb07a007d18bb80211\",\n                },\n                \"blocknumber\": \"8\",\n                \"uncleHeaders\": [],\n                \"transactions\": [\n                    {\n                        \"type\": \"0x00\",\n                        \"chainId\": \"0x01\",\n                        \"nonce\": \"0x00\",\n                        \"to\": \"0x00000000000000000000000000000000000000aa\",\n                        \"value\": \"0x00\",\n                        \"data\": \"0x\",\n                        \"gasLimit\": \"0x5208\",\n                        \"gasPrice\": \"0x0a\",\n                        \"v\": \"0x26\",\n                        \"r\": \"0xcc61d852649c34cc0b71803115f38036ace257d2914f087bf885e6806a664fbd\",\n                        \"s\": \"0x2020cb35f5d7731ab540d62614503a7f2344301a86342f67daf011c1341551ff\",\n                        \"sender\": \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                    }\n                ],\n            },\n            id=\"fixture_block_1\",\n        ),\n        pytest.param(\n            True,\n            FixtureBlockBase(\n                header=FixtureHeader(\n                    parent_hash=Hash(0),\n                    ommers_hash=Hash(1),\n                    fee_recipient=Address(2),\n                    state_root=Hash(3),\n                    transactions_trie=Hash(4),\n                    receipts_root=Hash(5),\n                    logs_bloom=Bloom(6),\n                    difficulty=7,\n                    number=8,\n                    gas_limit=9,\n                    gas_used=10,\n                    timestamp=11,\n                    extra_data=Bytes([12]),\n                    prev_randao=Hash(13),\n                    nonce=HeaderNonce(14),\n                    base_fee_per_gas=15,\n                    withdrawals_root=Hash(16),\n                    blob_gas_used=17,\n                    excess_blob_gas=18,\n                ),\n                transactions=[\n                    FixtureTransaction.from_transaction(\n                        Transaction(to=None).with_signature_and_sender()\n                    )\n                ],\n            ),\n            {\n                \"blockHeader\": {\n                    \"parentHash\": Hash(0).hex(),\n                    \"uncleHash\": Hash(1).hex(),\n                    \"coinbase\": Address(2).hex(),\n                    \"stateRoot\": Hash(3).hex(),\n                    \"transactionsTrie\": Hash(4).hex(),\n                    \"receiptTrie\": Hash(5).hex(),\n                    \"bloom\": Bloom(6).hex(),\n                    \"difficulty\": ZeroPaddedHexNumber(7).hex(),\n                    \"number\": ZeroPaddedHexNumber(8).hex(),\n                    \"gasLimit\": ZeroPaddedHexNumber(9).hex(),\n                    \"gasUsed\": ZeroPaddedHexNumber(10).hex(),\n                    \"timestamp\": ZeroPaddedHexNumber(11).hex(),\n                    \"extraData\": Bytes([12]).hex(),\n                    \"mixHash\": Hash(13).hex(),\n                    \"nonce\": HeaderNonce(14).hex(),\n                    \"baseFeePerGas\": ZeroPaddedHexNumber(15).hex(),\n                    \"withdrawalsRoot\": Hash(16).hex(),\n                    \"blobGasUsed\": ZeroPaddedHexNumber(17).hex(),\n                    \"excessBlobGas\": ZeroPaddedHexNumber(18).hex(),\n                    \"hash\": \"0xd90115b7fde329f64335763a446af150ab67e639281dccdb07a007d18bb80211\",\n                },\n                \"blocknumber\": \"8\",\n                \"uncleHeaders\": [],\n                \"transactions\": [\n                    {\n                        \"type\": \"0x00\",\n                        \"chainId\": \"0x01\",\n                        \"to\": \"\",\n                        \"nonce\": \"0x00\",\n                        \"value\": \"0x00\",\n                        \"data\": \"0x\",\n                        \"gasLimit\": \"0x5208\",\n                        \"gasPrice\": \"0x0a\",\n                        \"v\": \"0x25\",\n                        \"r\": \"0x1cfe2cbb0c3577f74d9ae192a7f1ee2d670fe806a040f427af9cb768be3d07ce\",\n                        \"s\": \"0x0cbe2d029f52dbf93ade486625bed0603945d2c7358b31de99fe8786c00f13da\",\n                        \"sender\": \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                    }\n                ],\n            },\n            id=\"fixture_block_2\",\n        ),\n        pytest.param(\n            True,\n            InvalidFixtureBlock(\n                rlp=\"0x00\",\n                expect_exception=BlockException.RLP_STRUCTURES_ENCODING,\n            ),\n            {\n                \"rlp\": \"0x00\",\n                \"expectException\": \"BlockException.RLP_STRUCTURES_ENCODING\",\n            },\n            id=\"invalid_fixture_block_1\",\n        ),\n        pytest.param(\n            True,\n            InvalidFixtureBlock(\n                rlp=\"0x00\",\n                expect_exception=TransactionException.INTRINSIC_GAS_TOO_LOW,\n            ),\n            {\n                \"rlp\": \"0x00\",\n                \"expectException\": \"TransactionException.INTRINSIC_GAS_TOO_LOW\",\n            },\n            id=\"invalid_fixture_block_2\",\n        ),\n        pytest.param(\n            False,  # Can not be deserialized: A single expect_exception str\n            # will not be deserialized as a list and therefore will not\n            # match the model_instance definition.\n            InvalidFixtureBlock(\n                rlp=\"0x00\",\n                expect_exception=[TransactionException.INTRINSIC_GAS_TOO_LOW],\n            ),\n            {\n                \"rlp\": \"0x00\",\n                \"expectException\": \"TransactionException.INTRINSIC_GAS_TOO_LOW\",\n            },\n            id=\"invalid_fixture_block_3\",\n        ),\n        pytest.param(\n            True,\n            InvalidFixtureBlock(\n                rlp=\"0x00\",\n                expect_exception=[\n                    BlockException.RLP_STRUCTURES_ENCODING,\n                    TransactionException.INTRINSIC_GAS_TOO_LOW,\n                ],\n            ),\n            {\n                \"rlp\": \"0x00\",\n                \"expectException\": \"BlockException.RLP_STRUCTURES_ENCODING|\"\n                \"TransactionException.INTRINSIC_GAS_TOO_LOW\",\n            },\n            id=\"invalid_fixture_block_4\",\n        ),\n        pytest.param(\n            True,\n            FixtureExecutionPayload.from_fixture_header(\n                header=FixtureHeader(\n                    parent_hash=Hash(0),\n                    ommers_hash=Hash(1),\n                    fee_recipient=Address(2),\n                    state_root=Hash(3),\n                    transactions_trie=Hash(4),\n                    receipts_root=Hash(5),\n                    logs_bloom=Bloom(6),\n                    difficulty=7,\n                    number=8,\n                    gas_limit=9,\n                    gas_used=10,\n                    timestamp=11,\n                    extra_data=Bytes([12]),\n                    prev_randao=Hash(13),\n                    nonce=HeaderNonce(14),\n                    base_fee_per_gas=15,\n                    withdrawals_root=Hash(16),\n                    blob_gas_used=17,\n                    excess_blob_gas=18,\n                ),\n                transactions=[\n                    Transaction(\n                        to=0x1234,\n                        data=b\"\\x01\\x00\",\n                        access_list=[\n                            AccessList(\n                                address=0x1234,\n                                storage_keys=[0, 1],\n                            )\n                        ],\n                        max_priority_fee_per_gas=10,\n                        max_fee_per_gas=20,\n                        max_fee_per_blob_gas=30,\n                        blob_versioned_hashes=[0, 1],\n                    ).with_signature_and_sender(),\n                ],\n                withdrawals=[Withdrawal(index=0, validator_index=1, address=0x1234, amount=2)],\n            ),\n            {\n                \"parentHash\": Hash(0).hex(),\n                \"feeRecipient\": Address(2).hex(),\n                \"stateRoot\": Hash(3).hex(),\n                \"receiptsRoot\": Hash(5).hex(),\n                \"logsBloom\": Bloom(6).hex(),\n                \"blockNumber\": hex(8),\n                \"gasLimit\": hex(9),\n                \"gasUsed\": hex(10),\n                \"timestamp\": hex(11),\n                \"extraData\": Bytes([12]).hex(),\n                \"prevRandao\": Hash(13).hex(),\n                \"baseFeePerGas\": hex(15),\n                \"blobGasUsed\": hex(17),\n                \"excessBlobGas\": hex(18),\n                \"blockHash\": \"0xd90115b7fde329f64335763a446af150ab67e639281dccdb07a007d18bb80211\",\n                \"transactions\": [\n                    Transaction(\n                        to=0x1234,\n                        data=b\"\\x01\\x00\",\n                        access_list=[\n                            AccessList(\n                                address=0x1234,\n                                storage_keys=[0, 1],\n                            )\n                        ],\n                        max_priority_fee_per_gas=10,\n                        max_fee_per_gas=20,\n                        max_fee_per_blob_gas=30,\n                        blob_versioned_hashes=[0, 1],\n                    )\n                    .with_signature_and_sender()\n                    .rlp()\n                    .hex()\n                ],\n                \"withdrawals\": [\n                    to_json(Withdrawal(index=0, validator_index=1, address=0x1234, amount=2))\n                ],\n            },\n            id=\"fixture_execution_payload_1\",\n        ),\n        pytest.param(\n            True,\n            FixtureEngineNewPayload.from_fixture_header(\n                fork=Prague,\n                header=FixtureHeader(\n                    parent_hash=Hash(0),\n                    ommers_hash=Hash(1),\n                    fee_recipient=Address(2),\n                    state_root=Hash(3),\n                    transactions_trie=Hash(4),\n                    receipts_root=Hash(5),\n                    logs_bloom=Bloom(6),\n                    difficulty=7,\n                    number=8,\n                    gas_limit=9,\n                    gas_used=10,\n                    timestamp=11,\n                    extra_data=Bytes([12]),\n                    prev_randao=Hash(13),\n                    nonce=HeaderNonce(14),\n                    base_fee_per_gas=15,\n                    withdrawals_root=Hash(16),\n                    blob_gas_used=17,\n                    excess_blob_gas=18,\n                    parent_beacon_block_root=19,\n                    requests_hash=20,\n                ),\n                transactions=[\n                    Transaction(\n                        to=0x1234,\n                        data=b\"\\x01\\x00\",\n                        access_list=[\n                            AccessList(\n                                address=0x1234,\n                                storage_keys=[0, 1],\n                            )\n                        ],\n                        max_priority_fee_per_gas=10,\n                        max_fee_per_gas=20,\n                        max_fee_per_blob_gas=30,\n                        blob_versioned_hashes=[0, 1],\n                    ).with_signature_and_sender(),\n                ],\n                withdrawals=[Withdrawal(index=0, validator_index=1, address=0x1234, amount=2)],\n                requests=Requests(\n                    DepositRequest(\n                        pubkey=BLSPublicKey(0),\n                        withdrawal_credentials=Hash(1),\n                        amount=2,\n                        signature=BLSSignature(3),\n                        index=4,\n                    ),\n                    WithdrawalRequest(\n                        source_address=Address(0),\n                        validator_pubkey=BLSPublicKey(1),\n                        amount=2,\n                    ),\n                    ConsolidationRequest(\n                        source_address=Address(0),\n                        source_pubkey=BLSPublicKey(1),\n                        target_pubkey=BLSPublicKey(2),\n                    ),\n                ).requests_list,\n                validation_error=[\n                    BlockException.INCORRECT_BLOCK_FORMAT,\n                    TransactionException.INTRINSIC_GAS_TOO_LOW,\n                ],\n                error_code=EngineAPIError.InvalidRequest,\n            ),\n            {\n                \"params\": [\n                    {\n                        \"parentHash\": Hash(0).hex(),\n                        \"feeRecipient\": Address(2).hex(),\n                        \"stateRoot\": Hash(3).hex(),\n                        \"receiptsRoot\": Hash(5).hex(),\n                        \"logsBloom\": Bloom(6).hex(),\n                        \"blockNumber\": hex(8),\n                        \"gasLimit\": hex(9),\n                        \"gasUsed\": hex(10),\n                        \"timestamp\": hex(11),\n                        \"extraData\": Bytes([12]).hex(),\n                        \"prevRandao\": Hash(13).hex(),\n                        \"baseFeePerGas\": hex(15),\n                        \"blobGasUsed\": hex(17),\n                        \"excessBlobGas\": hex(18),\n                        \"blockHash\": (\n                            \"0x93bd662d8a80a1f54bffc6d140b83d6cda233209998809f9540be51178b4d0b6\"\n                        ),\n                        \"transactions\": [\n                            Transaction(\n                                to=0x1234,\n                                data=b\"\\x01\\x00\",\n                                access_list=[\n                                    AccessList(\n                                        address=0x1234,\n                                        storage_keys=[0, 1],\n                                    )\n                                ],\n                                max_priority_fee_per_gas=10,\n                                max_fee_per_gas=20,\n                                max_fee_per_blob_gas=30,\n                                blob_versioned_hashes=[0, 1],\n                            )\n                            .with_signature_and_sender()\n                            .rlp()\n                            .hex()\n                        ],\n                        \"withdrawals\": [\n                            to_json(\n                                Withdrawal(\n                                    index=0,\n                                    validator_index=1,\n                                    address=0x1234,\n                                    amount=2,\n                                )\n                            )\n                        ],\n                    },\n                    [\n                        str(Hash(0)),\n                        str(Hash(1)),\n                    ],\n                    str(Hash(19)),\n                    [\n                        Bytes(r).hex()\n                        for r in Requests(\n                            DepositRequest(\n                                pubkey=BLSPublicKey(0),\n                                withdrawal_credentials=Hash(1),\n                                amount=2,\n                                signature=BLSSignature(3),\n                                index=4,\n                            ),\n                            WithdrawalRequest(\n                                source_address=Address(0),\n                                validator_pubkey=BLSPublicKey(1),\n                                amount=2,\n                            ),\n                            ConsolidationRequest(\n                                source_address=Address(0),\n                                source_pubkey=BLSPublicKey(1),\n                                target_pubkey=BLSPublicKey(2),\n                            ),\n                        ).requests_list\n                    ],\n                ],\n                \"forkchoiceUpdatedVersion\": \"3\",\n                \"newPayloadVersion\": \"4\",\n                \"validationError\": \"BlockException.INCORRECT_BLOCK_FORMAT\"\n                \"|TransactionException.INTRINSIC_GAS_TOO_LOW\",\n                \"errorCode\": \"-32600\",\n            },\n            id=\"fixture_engine_new_payload_1\",\n        ),\n        pytest.param(\n            True,\n            FixtureEngineNewPayload.from_fixture_header(\n                fork=Prague,\n                header=FixtureHeader(\n                    fork=Prague,\n                    parent_hash=Hash(0),\n                    ommers_hash=Hash(1),\n                    fee_recipient=Address(2),\n                    state_root=Hash(3),\n                    transactions_trie=Hash(4),\n                    receipts_root=Hash(5),\n                    logs_bloom=Bloom(6),\n                    difficulty=7,\n                    number=8,\n                    gas_limit=9,\n                    gas_used=10,\n                    timestamp=11,\n                    extra_data=Bytes([12]),\n                    prev_randao=Hash(13),\n                    nonce=HeaderNonce(14),\n                    base_fee_per_gas=15,\n                    withdrawals_root=Hash(16),\n                    blob_gas_used=17,\n                    excess_blob_gas=18,\n                    parent_beacon_block_root=19,\n                    requests_hash=20,\n                ),\n                transactions=[\n                    Transaction(\n                        to=0x1234,\n                        data=b\"\\x01\\x00\",\n                        access_list=[\n                            AccessList(\n                                address=0x1234,\n                                storage_keys=[0, 1],\n                            )\n                        ],\n                        max_priority_fee_per_gas=10,\n                        max_fee_per_gas=20,\n                        max_fee_per_blob_gas=30,\n                        blob_versioned_hashes=[0, 1],\n                    ).with_signature_and_sender(),\n                ],\n                withdrawals=[Withdrawal(index=0, validator_index=1, address=0x1234, amount=2)],\n                requests=Requests(\n                    DepositRequest(\n                        pubkey=BLSPublicKey(0),\n                        withdrawal_credentials=Hash(1),\n                        amount=2,\n                        signature=BLSSignature(3),\n                        index=4,\n                    ),\n                    WithdrawalRequest(\n                        source_address=Address(0),\n                        validator_pubkey=BLSPublicKey(1),\n                        amount=2,\n                    ),\n                    ConsolidationRequest(\n                        source_address=Address(0),\n                        source_pubkey=BLSPublicKey(1),\n                        target_pubkey=BLSPublicKey(2),\n                    ),\n                ).requests_list,\n                validation_error=[\n                    BlockException.INCORRECT_BLOCK_FORMAT,\n                    TransactionException.INTRINSIC_GAS_TOO_LOW,\n                ],\n            ),\n            {\n                \"params\": [\n                    {\n                        \"parentHash\": Hash(0).hex(),\n                        \"feeRecipient\": Address(2).hex(),\n                        \"stateRoot\": Hash(3).hex(),\n                        \"receiptsRoot\": Hash(5).hex(),\n                        \"logsBloom\": Bloom(6).hex(),\n                        \"blockNumber\": hex(8),\n                        \"gasLimit\": hex(9),\n                        \"gasUsed\": hex(10),\n                        \"timestamp\": hex(11),\n                        \"extraData\": Bytes([12]).hex(),\n                        \"prevRandao\": Hash(13).hex(),\n                        \"baseFeePerGas\": hex(15),\n                        \"blobGasUsed\": hex(17),\n                        \"excessBlobGas\": hex(18),\n                        \"blockHash\": (\n                            \"0x93bd662d8a80a1f54bffc6d140b83d6cda233209998809f9540be51178b4d0b6\"\n                        ),\n                        \"transactions\": [\n                            Transaction(\n                                to=0x1234,\n                                data=b\"\\x01\\x00\",\n                                access_list=[\n                                    AccessList(\n                                        address=0x1234,\n                                        storage_keys=[0, 1],\n                                    )\n                                ],\n                                max_priority_fee_per_gas=10,\n                                max_fee_per_gas=20,\n                                max_fee_per_blob_gas=30,\n                                blob_versioned_hashes=[0, 1],\n                            )\n                            .with_signature_and_sender()\n                            .rlp()\n                            .hex()\n                        ],\n                        \"withdrawals\": [\n                            to_json(\n                                Withdrawal(\n                                    index=0,\n                                    validator_index=1,\n                                    address=0x1234,\n                                    amount=2,\n                                )\n                            )\n                        ],\n                    },\n                    [\n                        \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n                        \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n                    ],\n                    str(Hash(19)),\n                    [\n                        Bytes(r).hex()\n                        for r in Requests(\n                            DepositRequest(\n                                pubkey=BLSPublicKey(0),\n                                withdrawal_credentials=Hash(1),\n                                amount=2,\n                                signature=BLSSignature(3),\n                                index=4,\n                            ),\n                            WithdrawalRequest(\n                                source_address=Address(0),\n                                validator_pubkey=BLSPublicKey(1),\n                                amount=2,\n                            ),\n                            ConsolidationRequest(\n                                source_address=Address(0),\n                                source_pubkey=BLSPublicKey(1),\n                                target_pubkey=BLSPublicKey(2),\n                            ),\n                        ).requests_list\n                    ],\n                ],\n                \"newPayloadVersion\": \"4\",\n                \"forkchoiceUpdatedVersion\": \"3\",\n                \"validationError\": \"BlockException.INCORRECT_BLOCK_FORMAT\"\n                \"|TransactionException.INTRINSIC_GAS_TOO_LOW\",\n            },\n            id=\"fixture_engine_new_payload_2\",\n        ),\n    ],\n)\nclass TestPydanticModelConversion:\n    \"\"\"Test that Pydantic models are converted to and from JSON correctly.\"\"\"\n\n    def test_json_serialization(\n        self, can_be_deserialized: bool, model_instance: Any, json_repr: str | Dict[str, Any]\n    ) -> None:\n        \"\"\"Test that to_json returns the expected JSON for the given object.\"\"\"\n        del can_be_deserialized\n        assert to_json(model_instance) == json_repr\n\n    def test_json_deserialization(\n        self, can_be_deserialized: bool, model_instance: Any, json_repr: str | Dict[str, Any]\n    ) -> None:\n        \"\"\"Test that to_json returns the expected JSON for the given object.\"\"\"\n        if not can_be_deserialized:\n            pytest.skip(reason=\"The model instance in this case can not be deserialized\")\n        model_type = type(model_instance)\n        assert model_type(**json_repr) == model_instance\n\n\nEngineNewPayloadParametersAdapter = TypeAdapter(EngineNewPayloadParameters)  # type: ignore\n\n\n@pytest.mark.parametrize(\n    \"can_be_deserialized, adapter, type_instance, json_repr\",\n    [\n        pytest.param(\n            True,\n            EngineNewPayloadParametersAdapter,\n            (\n                FixtureExecutionPayload.from_fixture_header(\n                    header=FixtureHeader(\n                        parent_hash=Hash(0),\n                        ommers_hash=Hash(1),\n                        fee_recipient=Address(2),\n                        state_root=Hash(3),\n                        transactions_trie=Hash(4),\n                        receipts_root=Hash(5),\n                        logs_bloom=Bloom(6),\n                        difficulty=7,\n                        number=8,\n                        gas_limit=9,\n                        gas_used=10,\n                        timestamp=11,\n                        extra_data=Bytes([12]),\n                        prev_randao=Hash(13),\n                        nonce=HeaderNonce(14),\n                        base_fee_per_gas=15,\n                        withdrawals_root=Hash(16),\n                        blob_gas_used=17,\n                        excess_blob_gas=18,\n                    ),\n                    transactions=[\n                        Transaction(\n                            to=0x1234,\n                            data=b\"\\x01\\x00\",\n                            access_list=[\n                                AccessList(\n                                    address=0x1234,\n                                    storage_keys=[0, 1],\n                                )\n                            ],\n                            max_priority_fee_per_gas=10,\n                            max_fee_per_gas=20,\n                            max_fee_per_blob_gas=30,\n                            blob_versioned_hashes=[0, 1],\n                        ).with_signature_and_sender(),\n                    ],\n                    withdrawals=[Withdrawal(index=0, validator_index=1, address=0x1234, amount=2)],\n                ),\n            ),\n            [\n                {\n                    \"parentHash\": Hash(0).hex(),\n                    \"feeRecipient\": Address(2).hex(),\n                    \"stateRoot\": Hash(3).hex(),\n                    \"receiptsRoot\": Hash(5).hex(),\n                    \"logsBloom\": Bloom(6).hex(),\n                    \"blockNumber\": hex(8),\n                    \"gasLimit\": hex(9),\n                    \"gasUsed\": hex(10),\n                    \"timestamp\": hex(11),\n                    \"extraData\": Bytes([12]).hex(),\n                    \"prevRandao\": Hash(13).hex(),\n                    \"baseFeePerGas\": hex(15),\n                    \"blobGasUsed\": hex(17),\n                    \"excessBlobGas\": hex(18),\n                    \"blockHash\": \"0xd90115b7fde329f64335763a446af1\"\n                    \"50ab67e639281dccdb07a007d18bb80211\",\n                    \"transactions\": [\n                        Transaction(\n                            to=0x1234,\n                            data=b\"\\x01\\x00\",\n                            access_list=[\n                                AccessList(\n                                    address=0x1234,\n                                    storage_keys=[0, 1],\n                                )\n                            ],\n                            max_priority_fee_per_gas=10,\n                            max_fee_per_gas=20,\n                            max_fee_per_blob_gas=30,\n                            blob_versioned_hashes=[0, 1],\n                        )\n                        .with_signature_and_sender()\n                        .rlp()\n                        .hex()\n                    ],\n                    \"withdrawals\": [\n                        to_json(Withdrawal(index=0, validator_index=1, address=0x1234, amount=2))\n                    ],\n                }\n            ],\n            id=\"fixture_engine_new_payload_parameters_v1\",\n        ),\n        pytest.param(\n            True,\n            EngineNewPayloadParametersAdapter,\n            (\n                FixtureExecutionPayload.from_fixture_header(\n                    header=FixtureHeader(\n                        parent_hash=Hash(0),\n                        ommers_hash=Hash(1),\n                        fee_recipient=Address(2),\n                        state_root=Hash(3),\n                        transactions_trie=Hash(4),\n                        receipts_root=Hash(5),\n                        logs_bloom=Bloom(6),\n                        difficulty=7,\n                        number=8,\n                        gas_limit=9,\n                        gas_used=10,\n                        timestamp=11,\n                        extra_data=Bytes([12]),\n                        prev_randao=Hash(13),\n                        nonce=HeaderNonce(14),\n                        base_fee_per_gas=15,\n                        withdrawals_root=Hash(16),\n                        blob_gas_used=17,\n                        excess_blob_gas=18,\n                    ),\n                    transactions=[\n                        Transaction(\n                            to=0x1234,\n                            data=b\"\\x01\\x00\",\n                            access_list=[\n                                AccessList(\n                                    address=0x1234,\n                                    storage_keys=[0, 1],\n                                )\n                            ],\n                            max_priority_fee_per_gas=10,\n                            max_fee_per_gas=20,\n                            max_fee_per_blob_gas=30,\n                            blob_versioned_hashes=[0, 1],\n                        ).with_signature_and_sender(),\n                    ],\n                    withdrawals=[Withdrawal(index=0, validator_index=1, address=0x1234, amount=2)],\n                ),\n                [Hash(1), Hash(2)],\n                Hash(3),\n            ),\n            [\n                {\n                    \"parentHash\": Hash(0).hex(),\n                    \"feeRecipient\": Address(2).hex(),\n                    \"stateRoot\": Hash(3).hex(),\n                    \"receiptsRoot\": Hash(5).hex(),\n                    \"logsBloom\": Bloom(6).hex(),\n                    \"blockNumber\": hex(8),\n                    \"gasLimit\": hex(9),\n                    \"gasUsed\": hex(10),\n                    \"timestamp\": hex(11),\n                    \"extraData\": Bytes([12]).hex(),\n                    \"prevRandao\": Hash(13).hex(),\n                    \"baseFeePerGas\": hex(15),\n                    \"blobGasUsed\": hex(17),\n                    \"excessBlobGas\": hex(18),\n                    \"blockHash\": \"0xd90115b7fde329f64335763a446af1\"\n                    \"50ab67e639281dccdb07a007d18bb80211\",\n                    \"transactions\": [\n                        Transaction(\n                            to=0x1234,\n                            data=b\"\\x01\\x00\",\n                            access_list=[\n                                AccessList(\n                                    address=0x1234,\n                                    storage_keys=[0, 1],\n                                )\n                            ],\n                            max_priority_fee_per_gas=10,\n                            max_fee_per_gas=20,\n                            max_fee_per_blob_gas=30,\n                            blob_versioned_hashes=[0, 1],\n                        )\n                        .with_signature_and_sender()\n                        .rlp()\n                        .hex()\n                    ],\n                    \"withdrawals\": [\n                        to_json(Withdrawal(index=0, validator_index=1, address=0x1234, amount=2))\n                    ],\n                },\n                [Hash(1).hex(), Hash(2).hex()],\n                Hash(3).hex(),\n            ],\n            id=\"fixture_engine_new_payload_parameters_v3\",\n        ),\n        pytest.param(\n            True,\n            EngineNewPayloadParametersAdapter,\n            (\n                FixtureExecutionPayload.from_fixture_header(\n                    header=FixtureHeader(\n                        parent_hash=Hash(0),\n                        ommers_hash=Hash(1),\n                        fee_recipient=Address(2),\n                        state_root=Hash(3),\n                        transactions_trie=Hash(4),\n                        receipts_root=Hash(5),\n                        logs_bloom=Bloom(6),\n                        difficulty=7,\n                        number=8,\n                        gas_limit=9,\n                        gas_used=10,\n                        timestamp=11,\n                        extra_data=Bytes([12]),\n                        prev_randao=Hash(13),\n                        nonce=HeaderNonce(14),\n                        base_fee_per_gas=15,\n                        withdrawals_root=Hash(16),\n                        blob_gas_used=17,\n                        excess_blob_gas=18,\n                    ),\n                    transactions=[\n                        Transaction(\n                            to=0x1234,\n                            data=b\"\\x01\\x00\",\n                            access_list=[\n                                AccessList(\n                                    address=0x1234,\n                                    storage_keys=[0, 1],\n                                )\n                            ],\n                            max_priority_fee_per_gas=10,\n                            max_fee_per_gas=20,\n                            max_fee_per_blob_gas=30,\n                            blob_versioned_hashes=[0, 1],\n                        ).with_signature_and_sender(),\n                    ],\n                    withdrawals=[Withdrawal(index=0, validator_index=1, address=0x1234, amount=2)],\n                ),\n                [Hash(1), Hash(2)],\n                Hash(3),\n                Requests(\n                    DepositRequest(\n                        pubkey=BLSPublicKey(0),\n                        withdrawal_credentials=Hash(1),\n                        amount=2,\n                        signature=BLSSignature(3),\n                        index=4,\n                    ),\n                    WithdrawalRequest(\n                        source_address=Address(0),\n                        validator_pubkey=BLSPublicKey(1),\n                        amount=2,\n                    ),\n                    ConsolidationRequest(\n                        source_address=Address(0),\n                        source_pubkey=BLSPublicKey(1),\n                        target_pubkey=BLSPublicKey(2),\n                    ),\n                ).requests_list,\n            ),\n            [\n                {\n                    \"parentHash\": Hash(0).hex(),\n                    \"feeRecipient\": Address(2).hex(),\n                    \"stateRoot\": Hash(3).hex(),\n                    \"receiptsRoot\": Hash(5).hex(),\n                    \"logsBloom\": Bloom(6).hex(),\n                    \"blockNumber\": hex(8),\n                    \"gasLimit\": hex(9),\n                    \"gasUsed\": hex(10),\n                    \"timestamp\": hex(11),\n                    \"extraData\": Bytes([12]).hex(),\n                    \"prevRandao\": Hash(13).hex(),\n                    \"baseFeePerGas\": hex(15),\n                    \"blobGasUsed\": hex(17),\n                    \"excessBlobGas\": hex(18),\n                    \"blockHash\": \"0xd90115b7fde329f64335763a446af1\"\n                    \"50ab67e639281dccdb07a007d18bb80211\",\n                    \"transactions\": [\n                        Transaction(\n                            to=0x1234,\n                            data=b\"\\x01\\x00\",\n                            access_list=[\n                                AccessList(\n                                    address=0x1234,\n                                    storage_keys=[0, 1],\n                                )\n                            ],\n                            max_priority_fee_per_gas=10,\n                            max_fee_per_gas=20,\n                            max_fee_per_blob_gas=30,\n                            blob_versioned_hashes=[0, 1],\n                        )\n                        .with_signature_and_sender()\n                        .rlp()\n                        .hex()\n                    ],\n                    \"withdrawals\": [\n                        to_json(Withdrawal(index=0, validator_index=1, address=0x1234, amount=2))\n                    ],\n                },\n                [Hash(1).hex(), Hash(2).hex()],\n                Hash(3).hex(),\n                [\n                    Bytes(r).hex()\n                    for r in Requests(\n                        DepositRequest(\n                            pubkey=BLSPublicKey(0),\n                            withdrawal_credentials=Hash(1),\n                            amount=2,\n                            signature=BLSSignature(3),\n                            index=4,\n                        ),\n                        WithdrawalRequest(\n                            source_address=Address(0),\n                            validator_pubkey=BLSPublicKey(1),\n                            amount=2,\n                        ),\n                        ConsolidationRequest(\n                            source_address=Address(0),\n                            source_pubkey=BLSPublicKey(1),\n                            target_pubkey=BLSPublicKey(2),\n                        ),\n                    ).requests_list\n                ],\n            ],\n            id=\"fixture_engine_new_payload_parameters_v4\",\n        ),\n    ],\n)\nclass TestPydanticAdaptersConversion:\n    \"\"\"Test that Pydantic models are converted to and from JSON correctly.\"\"\"\n\n    def test_json_serialization(\n        self,\n        can_be_deserialized: bool,\n        adapter: TypeAdapter,\n        type_instance: Any,\n        json_repr: str | Dict[str, Any],\n    ) -> None:\n        \"\"\"Test that to_json returns the expected JSON for the given object.\"\"\"\n        del can_be_deserialized\n        assert (\n            adapter.dump_python(\n                type_instance,\n                mode=\"json\",\n                by_alias=True,\n                exclude_none=True,\n            )\n            == json_repr\n        )\n\n    def test_json_deserialization(\n        self,\n        can_be_deserialized: bool,\n        adapter: TypeAdapter,\n        type_instance: Any,\n        json_repr: str | Dict[str, Any],\n    ) -> None:\n        \"\"\"Test that to_json returns the expected JSON for the given object.\"\"\"\n        if not can_be_deserialized:\n            pytest.skip(reason=\"The model instance in this case can not be deserialized\")\n        assert adapter.validate_python(json_repr) == type_instance\n"
  },
  {
    "path": "src/ethereum_test_fixtures/tests/test_eof.py",
    "content": "\"\"\"Test the EOF fixture types.\"\"\"\n\nfrom typing import Any, Dict\n\nimport pytest\n\nfrom ethereum_test_base_types import Bytes, to_json\nfrom ethereum_test_exceptions import EOFException\n\nfrom ..eof import ContainerKind, EOFFixture, Result, Vector\n\n\n@pytest.mark.parametrize(\n    [\"can_be_deserialized\", \"model_instance\", \"json_repr\"],\n    [\n        pytest.param(\n            True,\n            EOFFixture(\n                vectors={\n                    1: Vector(\n                        code=Bytes(b\"\\x00\"),\n                        container_kind=ContainerKind.INITCODE,\n                        results={\n                            \"Paris\": Result(\n                                exception=None,\n                                valid=True,\n                            ),\n                        },\n                    ),\n                }\n            ),\n            {\n                \"vectors\": {\n                    \"1\": {\n                        \"code\": \"0x00\",\n                        \"containerKind\": \"INITCODE\",\n                        \"results\": {\n                            \"Paris\": {\n                                \"result\": True,\n                            },\n                        },\n                    },\n                },\n            },\n            id=\"eof_fixture\",\n        ),\n        pytest.param(\n            True,\n            EOFFixture(\n                vectors={\n                    1: Vector(\n                        code=Bytes(b\"\\x00\"),\n                        container_kind=ContainerKind.RUNTIME,\n                        results={\n                            \"Paris\": Result(\n                                exception=EOFException.INVALID_MAGIC,\n                                valid=False,\n                            ),\n                        },\n                    ),\n                }\n            ),\n            {\n                \"vectors\": {\n                    \"1\": {\n                        \"code\": \"0x00\",\n                        \"containerKind\": \"RUNTIME\",\n                        \"results\": {\n                            \"Paris\": {\n                                \"exception\": \"EOFException.INVALID_MAGIC\",\n                                \"result\": False,\n                            },\n                        },\n                    },\n                },\n            },\n            id=\"eof_fixture_with_exception\",\n        ),\n    ],\n)\nclass TestPydanticModelConversion:\n    \"\"\"Test that Pydantic models are converted to and from JSON correctly.\"\"\"\n\n    def test_json_serialization(\n        self, can_be_deserialized: bool, model_instance: Any, json_repr: str | Dict[str, Any]\n    ) -> None:\n        \"\"\"Test that to_json returns the expected JSON for the given object.\"\"\"\n        del can_be_deserialized\n        serialized = to_json(model_instance)\n        serialized.pop(\"_info\")\n        assert serialized == json_repr\n\n    def test_json_deserialization(\n        self, can_be_deserialized: bool, model_instance: Any, json_repr: str | Dict[str, Any]\n    ) -> None:\n        \"\"\"Test that to_json returns the expected JSON for the given object.\"\"\"\n        if not can_be_deserialized:\n            pytest.skip(reason=\"The model instance in this case can not be deserialized\")\n        model_type = type(model_instance)\n        assert model_type(**json_repr) == model_instance\n"
  },
  {
    "path": "src/ethereum_test_fixtures/tests/test_state.py",
    "content": "\"\"\"Test state spec types.\"\"\"\n\nfrom typing import Any, Dict\n\nimport pytest\n\nfrom ethereum_test_base_types import Bytes, Hash, to_json\nfrom ethereum_test_exceptions import TransactionException\n\nfrom ..state import FixtureForkPost\n\n\n@pytest.mark.parametrize(\n    [\"can_be_deserialized\", \"model_instance\", \"json\"],\n    [\n        pytest.param(\n            True,\n            FixtureForkPost(\n                state_root=0,\n                logs_hash=1,\n                tx_bytes=\"0x02\",\n                state={},\n            ),\n            {\n                \"hash\": Hash(0).hex(),\n                \"logs\": Hash(1).hex(),\n                \"txbytes\": Bytes(b\"\\x02\").hex(),\n                \"indexes\": {\"data\": 0, \"gas\": 0, \"value\": 0},\n                \"state\": {},\n            },\n            id=\"state_fixture_fork_post\",\n        ),\n        pytest.param(\n            True,\n            FixtureForkPost(\n                state_root=0,\n                logs_hash=1,\n                tx_bytes=\"0x02\",\n                expect_exception=TransactionException.INITCODE_SIZE_EXCEEDED,\n                state={},\n            ),\n            {\n                \"hash\": Hash(0).hex(),\n                \"logs\": Hash(1).hex(),\n                \"txbytes\": Bytes(b\"\\x02\").hex(),\n                \"expectException\": \"TransactionException.INITCODE_SIZE_EXCEEDED\",\n                \"indexes\": {\"data\": 0, \"gas\": 0, \"value\": 0},\n                \"state\": {},\n            },\n            id=\"state_fixture_fork_post_exception\",\n        ),\n        pytest.param(\n            False,  # Can not be deserialized: A single expect_exception str\n            # will not be deserialized as a list and therefore will not\n            # match the model_instance definition.\n            FixtureForkPost(\n                state_root=0,\n                logs_hash=1,\n                tx_bytes=\"0x02\",\n                expect_exception=[TransactionException.INITCODE_SIZE_EXCEEDED],\n                state={},\n            ),\n            {\n                \"hash\": Hash(0).hex(),\n                \"logs\": Hash(1).hex(),\n                \"txbytes\": Bytes(b\"\\x02\").hex(),\n                \"expectException\": \"TransactionException.INITCODE_SIZE_EXCEEDED\",\n                \"indexes\": {\"data\": 0, \"gas\": 0, \"value\": 0},\n                \"state\": {},\n            },\n            id=\"state_fixture_fork_post_exception_list_1\",\n        ),\n        pytest.param(\n            True,\n            FixtureForkPost(\n                state_root=0,\n                logs_hash=1,\n                tx_bytes=\"0x02\",\n                expect_exception=[\n                    TransactionException.INITCODE_SIZE_EXCEEDED,\n                    TransactionException.INSUFFICIENT_ACCOUNT_FUNDS,\n                ],\n                state={},\n            ),\n            {\n                \"hash\": Hash(0).hex(),\n                \"logs\": Hash(1).hex(),\n                \"txbytes\": Bytes(b\"\\x02\").hex(),\n                \"expectException\": \"TransactionException.INITCODE_SIZE_EXCEEDED|\"\n                \"TransactionException.INSUFFICIENT_ACCOUNT_FUNDS\",\n                \"indexes\": {\"data\": 0, \"gas\": 0, \"value\": 0},\n                \"state\": {},\n            },\n            id=\"state_fixture_fork_post_exception_list_2\",\n        ),\n    ],\n)\nclass TestPydanticModelConversion:\n    \"\"\"Test that Pydantic models are converted to and from JSON correctly.\"\"\"\n\n    def test_json_serialization(\n        self, can_be_deserialized: bool, model_instance: Any, json: str | Dict[str, Any]\n    ) -> None:\n        \"\"\"Test that to_json returns the expected JSON for the given object.\"\"\"\n        del can_be_deserialized\n        assert to_json(model_instance) == json\n\n    def test_json_deserialization(\n        self, can_be_deserialized: bool, model_instance: Any, json: str | Dict[str, Any]\n    ) -> None:\n        \"\"\"Test that to_json returns the expected JSON for the given object.\"\"\"\n        if not can_be_deserialized:\n            pytest.skip(reason=\"The model instance in this case can not be deserialized\")\n        model_type = type(model_instance)\n        assert model_type(**json) == model_instance\n"
  },
  {
    "path": "src/ethereum_test_fixtures/transaction.py",
    "content": "\"\"\"TransactionTest types.\"\"\"\n\nfrom typing import ClassVar, Mapping\n\nfrom pydantic import Field\n\nfrom ethereum_test_base_types import Address, Bytes, CamelModel, Hash, ZeroPaddedHexNumber\nfrom ethereum_test_exceptions import TransactionExceptionInstanceOrList\nfrom ethereum_test_forks import Fork\n\nfrom .base import BaseFixture\n\n\nclass FixtureResult(CamelModel):\n    \"\"\"The per-network (fork) result structure.\"\"\"\n\n    hash: Hash | None = None\n    intrinsic_gas: ZeroPaddedHexNumber\n    sender: Address | None = None\n    exception: TransactionExceptionInstanceOrList | None = None\n\n\nclass TransactionFixture(BaseFixture):\n    \"\"\"Fixture for a single TransactionTest.\"\"\"\n\n    format_name: ClassVar[str] = \"transaction_test\"\n    description: ClassVar[str] = \"Tests that generate a transaction test fixture.\"\n\n    result: Mapping[Fork, FixtureResult]\n    transaction: Bytes = Field(..., alias=\"txbytes\")\n\n    def get_fork(self) -> Fork | None:\n        \"\"\"Return the fork of the fixture as a string.\"\"\"\n        forks = list(self.result.keys())\n        assert len(forks) == 1, \"Expected transaction test fixture with single fork\"\n        return forks[0]\n"
  },
  {
    "path": "src/ethereum_test_forks/__init__.py",
    "content": "\"\"\"Ethereum test fork definitions.\"\"\"\n\nfrom .base_fork import ForkAttribute\nfrom .forks.forks import (\n    BPO1,\n    BPO2,\n    BPO3,\n    BPO4,\n    BPO5,\n    Amsterdam,\n    ArrowGlacier,\n    Berlin,\n    Byzantium,\n    Cancun,\n    Constantinople,\n    ConstantinopleFix,\n    EOFv1,\n    Frontier,\n    GrayGlacier,\n    Homestead,\n    Istanbul,\n    London,\n    MuirGlacier,\n    Osaka,\n    Paris,\n    Prague,\n    Shanghai,\n)\nfrom .forks.transition import (\n    BerlinToLondonAt5,\n    BPO1ToBPO2AtTime15k,\n    BPO2ToBPO3AtTime15k,\n    BPO3ToBPO4AtTime15k,\n    CancunToPragueAtTime15k,\n    OsakaToBPO1AtTime15k,\n    ParisToShanghaiAtTime15k,\n    PragueToOsakaAtTime15k,\n    ShanghaiToCancunAtTime15k,\n)\nfrom .gas_costs import GasCosts\nfrom .helpers import (\n    ALL_FORKS,\n    ALL_FORKS_WITH_TRANSITIONS,\n    ALL_TRANSITION_FORKS,\n    Fork,\n    ForkAdapter,\n    ForkOrNoneAdapter,\n    ForkRangeDescriptor,\n    ForkSet,\n    ForkSetAdapter,\n    InvalidForkError,\n    TransitionFork,\n    TransitionForkAdapter,\n    TransitionForkOrNoneAdapter,\n    forks_from,\n    forks_from_until,\n    get_closest_fork,\n    get_deployed_forks,\n    get_development_forks,\n    get_fork_by_name,\n    get_forks,\n    get_forks_with_no_descendants,\n    get_forks_with_no_parents,\n    get_from_until_fork_set,\n    get_last_descendants,\n    get_relative_fork_markers,\n    get_selected_fork_set,\n    get_transition_fork_predecessor,\n    get_transition_fork_successor,\n    get_transition_forks,\n    transition_fork_from_to,\n    transition_fork_to,\n)\n\n__all__ = [\n    \"ALL_FORKS_WITH_TRANSITIONS\",\n    \"ALL_FORKS\",\n    \"ALL_TRANSITION_FORKS\",\n    \"Fork\",\n    \"ForkAdapter\",\n    \"ForkOrNoneAdapter\",\n    \"ForkSet\",\n    \"ForkSetAdapter\",\n    \"TransitionFork\",\n    \"TransitionForkAdapter\",\n    \"TransitionForkOrNoneAdapter\",\n    \"ForkAttribute\",\n    \"Amsterdam\",\n    \"ArrowGlacier\",\n    \"Berlin\",\n    \"BerlinToLondonAt5\",\n    \"Byzantium\",\n    \"Constantinople\",\n    \"ConstantinopleFix\",\n    \"EOFv1\",\n    \"ForkRangeDescriptor\",\n    \"Frontier\",\n    \"GrayGlacier\",\n    \"Homestead\",\n    \"InvalidForkError\",\n    \"Istanbul\",\n    \"London\",\n    \"Paris\",\n    \"ParisToShanghaiAtTime15k\",\n    \"MuirGlacier\",\n    \"Shanghai\",\n    \"ShanghaiToCancunAtTime15k\",\n    \"Cancun\",\n    \"CancunToPragueAtTime15k\",\n    \"Prague\",\n    \"PragueToOsakaAtTime15k\",\n    \"Osaka\",\n    \"OsakaToBPO1AtTime15k\",\n    \"BPO1\",\n    \"BPO1ToBPO2AtTime15k\",\n    \"BPO2\",\n    \"BPO2ToBPO3AtTime15k\",\n    \"BPO3\",\n    \"BPO3ToBPO4AtTime15k\",\n    \"BPO4\",\n    \"BPO5\",\n    \"get_transition_forks\",\n    \"forks_from\",\n    \"forks_from_until\",\n    \"get_closest_fork\",\n    \"get_deployed_forks\",\n    \"get_development_forks\",\n    \"get_transition_fork_predecessor\",\n    \"get_transition_fork_successor\",\n    \"get_fork_by_name\",\n    \"get_forks_with_no_descendants\",\n    \"get_forks_with_no_parents\",\n    \"get_relative_fork_markers\",\n    \"get_forks\",\n    \"get_from_until_fork_set\",\n    \"get_last_descendants\",\n    \"get_selected_fork_set\",\n    \"transition_fork_from_to\",\n    \"transition_fork_to\",\n    \"GasCosts\",\n]\n"
  },
  {
    "path": "src/ethereum_test_forks/base_decorators.py",
    "content": "\"\"\"Decorators for the fork methods.\"\"\"\n\nfrom typing import Callable, TypeVar\n\nF = TypeVar(\"F\", bound=Callable)\n\n\ndef prefer_transition_to_method(method: F) -> F:\n    \"\"\"Call the `fork_to` implementation when transitioning.\"\"\"\n    method.__prefer_transition_to_method__ = True  # type: ignore\n    return method\n"
  },
  {
    "path": "src/ethereum_test_forks/base_fork.py",
    "content": "\"\"\"Abstract base class for Ethereum forks.\"\"\"\n\nfrom abc import ABC, ABCMeta, abstractmethod\nfrom typing import (\n    Any,\n    ClassVar,\n    Dict,\n    List,\n    Literal,\n    Mapping,\n    Optional,\n    Protocol,\n    Set,\n    Sized,\n    Tuple,\n    Type,\n    Union,\n)\n\nfrom ethereum_test_base_types import AccessList, Address, BlobSchedule\nfrom ethereum_test_base_types.conversions import BytesConvertible\nfrom ethereum_test_vm import EVMCodeType, Opcodes\n\nfrom .base_decorators import prefer_transition_to_method\nfrom .gas_costs import GasCosts\n\n\nclass ForkAttribute(Protocol):\n    \"\"\"\n    A protocol to get the attribute of a fork at a given block number and\n    timestamp.\n    \"\"\"\n\n    def __call__(self, block_number: int = 0, timestamp: int = 0) -> Any:\n        \"\"\"\n        Return value of the attribute at the given block number and timestamp.\n        \"\"\"\n        pass\n\n\nclass MemoryExpansionGasCalculator(Protocol):\n    \"\"\"\n    A protocol to calculate the gas cost of memory expansion at a given fork.\n    \"\"\"\n\n    def __call__(self, *, new_bytes: int, previous_bytes: int = 0) -> int:\n        \"\"\"Return gas cost of expanding the memory by the given length.\"\"\"\n        pass\n\n\nclass CalldataGasCalculator(Protocol):\n    \"\"\"\n    A protocol to calculate the transaction gas cost of calldata at a given\n    fork.\n    \"\"\"\n\n    def __call__(self, *, data: BytesConvertible, floor: bool = False) -> int:\n        \"\"\"Return the transaction gas cost of calldata given its contents.\"\"\"\n        pass\n\n\nclass TransactionDataFloorCostCalculator(Protocol):\n    \"\"\"\n    Calculate the transaction floor cost due to its calldata for a given fork.\n    \"\"\"\n\n    def __call__(self, *, data: BytesConvertible) -> int:\n        \"\"\"Return transaction gas cost of calldata given its contents.\"\"\"\n        pass\n\n\nclass BaseFeePerGasCalculator(Protocol):\n    \"\"\"A protocol to calculate the base fee per gas at a given fork.\"\"\"\n\n    def __call__(\n        self, *, parent_base_fee_per_gas: int, parent_gas_used: int, parent_gas_limit: int\n    ) -> int:\n        \"\"\"Return the base fee per gas at a given fork.\"\"\"\n        pass\n\n\nclass BaseFeeChangeCalculator(Protocol):\n    \"\"\"\n    A protocol to calculate the gas that needs to be used to change the base\n    fee.\n    \"\"\"\n\n    def __call__(\n        self,\n        *,\n        parent_base_fee_per_gas: int,\n        parent_gas_limit: int,\n        required_base_fee_per_gas: int,\n    ) -> int:\n        \"\"\"Return the gas that needs to be used to change the base fee.\"\"\"\n        pass\n\n\nclass TransactionIntrinsicCostCalculator(Protocol):\n    \"\"\"\n    A protocol to calculate the intrinsic gas cost of a transaction at a given\n    fork.\n    \"\"\"\n\n    def __call__(\n        self,\n        *,\n        calldata: BytesConvertible = b\"\",\n        contract_creation: bool = False,\n        access_list: List[AccessList] | None = None,\n        authorization_list_or_count: Sized | int | None = None,\n        return_cost_deducted_prior_execution: bool = False,\n    ) -> int:\n        \"\"\"\n        Return the intrinsic gas cost of a transaction given its properties.\n\n        Args:\n          calldata: The data of the transaction.\n          contract_creation: Whether the transaction creates a contract.\n          access_list: The list of access lists for the transaction.\n          authorization_list_or_count: The list of authorizations or the count\n                                       of authorizations for the transaction.\n          return_cost_deducted_prior_execution: If set to False, the returned\n                                                value is equal to the minimum\n                                                gas required for the\n                                                transaction to be valid. If\n                                                set to True, the returned\n                                                value is equal to the cost\n                                                that is deducted from the gas\n                                                limit before the transaction\n                                                starts execution.\n\n        Returns: Gas cost of a transaction\n\n        \"\"\"\n        pass\n\n\nclass BlobGasPriceCalculator(Protocol):\n    \"\"\"\n    A protocol to calculate the blob gas price given the excess blob gas at a\n    given fork.\n    \"\"\"\n\n    def __call__(self, *, excess_blob_gas: int) -> int:\n        \"\"\"Return the blob gas price given the excess blob gas.\"\"\"\n        pass\n\n\nclass ExcessBlobGasCalculator(Protocol):\n    \"\"\"\n    A protocol to calculate the excess blob gas for a block at a given fork.\n    \"\"\"\n\n    def __call__(\n        self,\n        *,\n        parent_excess_blob_gas: int | None = None,\n        parent_excess_blobs: int | None = None,\n        parent_blob_gas_used: int | None = None,\n        parent_blob_count: int | None = None,\n        parent_base_fee_per_gas: int,\n    ) -> int:\n        \"\"\"\n        Return the excess blob gas given the parent's excess blob gas and blob\n        gas used.\n        \"\"\"\n        pass\n\n\nclass BaseForkMeta(ABCMeta):\n    \"\"\"Metaclass for BaseFork.\"\"\"\n\n    @abstractmethod\n    def name(cls) -> str:\n        \"\"\"\n        Return the name of the fork (e.g., Berlin), must be implemented by\n        subclasses.\n        \"\"\"\n        pass\n\n    def __repr__(cls) -> str:\n        \"\"\"Print the name of the fork, instead of the class.\"\"\"\n        return cls.name()\n\n    @staticmethod\n    def _maybe_transitioned(fork_cls: \"BaseForkMeta\") -> \"BaseForkMeta\":\n        \"\"\"\n        Return the transitioned fork, if a transition fork, otherwise return\n        `fork_cls`.\n        \"\"\"\n        return fork_cls.transitions_to() if hasattr(fork_cls, \"transitions_to\") else fork_cls\n\n    @staticmethod\n    def _is_subclass_of(a: \"BaseForkMeta\", b: \"BaseForkMeta\") -> bool:\n        \"\"\"\n        Check if `a` is a subclass of `b`, taking fork transitions into\n        account.\n        \"\"\"\n        a = BaseForkMeta._maybe_transitioned(a)\n        b = BaseForkMeta._maybe_transitioned(b)\n        return issubclass(a, b)\n\n    def __gt__(cls, other: \"BaseForkMeta\") -> bool:\n        \"\"\"Compare if a fork is newer than some other fork (cls > other).\"\"\"\n        return cls is not other and BaseForkMeta._is_subclass_of(cls, other)\n\n    def __ge__(cls, other: \"BaseForkMeta\") -> bool:\n        \"\"\"\n        Compare if a fork is newer than or equal to some other fork (cls >=\n        other).\n        \"\"\"\n        return cls is other or BaseForkMeta._is_subclass_of(cls, other)\n\n    def __lt__(cls, other: \"BaseForkMeta\") -> bool:\n        \"\"\"Compare if a fork is older than some other fork (cls < other).\"\"\"\n        # \"Older\" means other is a subclass of cls, but not the same.\n        return cls is not other and BaseForkMeta._is_subclass_of(other, cls)\n\n    def __le__(cls, other: \"BaseForkMeta\") -> bool:\n        \"\"\"\n        Compare if a fork is older than or equal to some other fork (cls <=\n        other).\n        \"\"\"\n        return cls is other or BaseForkMeta._is_subclass_of(other, cls)\n\n\nclass BaseFork(ABC, metaclass=BaseForkMeta):\n    \"\"\"\n    An abstract class representing an Ethereum fork.\n\n    Must contain all the methods used by every fork.\n    \"\"\"\n\n    _transition_tool_name: ClassVar[Optional[str]] = None\n    _solc_name: ClassVar[Optional[str]] = None\n    _ignore: ClassVar[bool] = False\n    _bpo_fork: ClassVar[bool] = False\n    _children: ClassVar[Set[Type[\"BaseFork\"]]] = set()\n\n    # make mypy happy\n    BLOB_CONSTANTS: ClassVar[Dict[str, Union[int, Literal[\"big\"]]]] = {}\n\n    @classmethod\n    def get_blob_constant(cls, name: str) -> int | Literal[\"big\"]:\n        \"\"\"Return value of requested blob constant.\"\"\"\n        raise NotImplementedError\n\n    def __init_subclass__(\n        cls,\n        *,\n        transition_tool_name: Optional[str] = None,\n        solc_name: Optional[str] = None,\n        ignore: bool = False,\n        bpo_fork: bool = False,\n    ) -> None:\n        \"\"\"\n        Initialize new fork with values that don't carry over to subclass\n        forks.\n        \"\"\"\n        cls._transition_tool_name = transition_tool_name\n        cls._solc_name = solc_name\n        cls._ignore = ignore\n        cls._bpo_fork = bpo_fork\n        cls._children = set()\n        base_class = cls.__bases__[0]\n        assert issubclass(base_class, BaseFork)\n        if base_class != BaseFork:\n            base_class._children.add(cls)\n\n    # Header information abstract methods\n    @classmethod\n    @abstractmethod\n    def header_base_fee_required(cls, *, block_number: int = 0, timestamp: int = 0) -> bool:\n        \"\"\"Return true if the header must contain base fee.\"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def header_prev_randao_required(cls, *, block_number: int = 0, timestamp: int = 0) -> bool:\n        \"\"\"Return true if the header must contain Prev Randao value.\"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def header_zero_difficulty_required(cls, *, block_number: int = 0, timestamp: int = 0) -> bool:\n        \"\"\"Return true if the header must have difficulty zero.\"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def header_withdrawals_required(cls, *, block_number: int = 0, timestamp: int = 0) -> bool:\n        \"\"\"Return true if the header must contain withdrawals.\"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def header_excess_blob_gas_required(cls, *, block_number: int = 0, timestamp: int = 0) -> bool:\n        \"\"\"Return true if the header must contain excess blob gas.\"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def header_blob_gas_used_required(cls, *, block_number: int = 0, timestamp: int = 0) -> bool:\n        \"\"\"Return true if the header must contain blob gas used.\"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def header_beacon_root_required(cls, *, block_number: int = 0, timestamp: int = 0) -> bool:\n        \"\"\"Return true if the header must contain parent beacon block root.\"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def header_requests_required(cls, *, block_number: int = 0, timestamp: int = 0) -> bool:\n        \"\"\"Return true if the header must contain beacon chain requests.\"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def header_bal_hash_required(cls, *, block_number: int = 0, timestamp: int = 0) -> bool:\n        \"\"\"Return true if the header must contain block access list hash.\"\"\"\n        pass\n\n    # Gas related abstract methods\n\n    @classmethod\n    @abstractmethod\n    def gas_costs(cls, *, block_number: int = 0, timestamp: int = 0) -> GasCosts:\n        \"\"\"Return dataclass with the gas costs constants for the fork.\"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def memory_expansion_gas_calculator(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> MemoryExpansionGasCalculator:\n        \"\"\"\n        Return a callable that calculates the gas cost of memory expansion for\n        the fork.\n        \"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def calldata_gas_calculator(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> CalldataGasCalculator:\n        \"\"\"\n        Return callable that calculates the transaction gas cost for its\n        calldata depending on its contents.\n        \"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def base_fee_per_gas_calculator(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> BaseFeePerGasCalculator:\n        \"\"\"\n        Return a callable that calculates the base fee per gas at a given fork.\n        \"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def base_fee_change_calculator(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> BaseFeeChangeCalculator:\n        \"\"\"\n        Return a callable that calculates the gas that needs to be used to\n        change the base fee.\n        \"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def base_fee_max_change_denominator(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"Return the base fee max change denominator at a given fork.\"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def base_fee_elasticity_multiplier(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"Return the base fee elasticity multiplier at a given fork.\"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def max_refund_quotient(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"Return the max refund quotient at a given fork.\"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def transaction_data_floor_cost_calculator(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> TransactionDataFloorCostCalculator:\n        \"\"\"\n        Return a callable that calculates the transaction floor cost due to its\n        calldata.\n        \"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def transaction_intrinsic_cost_calculator(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> TransactionIntrinsicCostCalculator:\n        \"\"\"\n        Return callable that calculates the intrinsic gas cost of a transaction\n        for the fork.\n        \"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def blob_gas_price_calculator(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> BlobGasPriceCalculator:\n        \"\"\"\n        Return a callable that calculates the blob gas price at a given fork.\n        \"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def excess_blob_gas_calculator(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> ExcessBlobGasCalculator:\n        \"\"\"\n        Return a callable that calculates the excess blob gas for a block at a\n        given fork.\n        \"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def min_base_fee_per_blob_gas(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"Return the minimum base fee per blob gas at a given fork.\"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def blob_gas_per_blob(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"Return the amount of blob gas used per blob at a given fork.\"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def blob_base_fee_update_fraction(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"Return the blob base fee update fraction at a given fork.\"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def supports_blobs(cls, *, block_number: int = 0, timestamp: int = 0) -> bool:\n        \"\"\"Return whether the given fork supports blobs or not.\"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def target_blobs_per_block(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"Return the target blobs per block at a given fork.\"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def max_blobs_per_tx(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"Return the max blobs per transaction at a given fork.\"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def max_blobs_per_block(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"Return the max blobs per block at a given fork.\"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def blob_reserve_price_active(cls, *, block_number: int = 0, timestamp: int = 0) -> bool:\n        \"\"\"\n        Return whether the fork uses a reserve price mechanism for blobs or\n        not.\n        \"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def blob_base_cost(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"Return the base cost of a blob at a given fork.\"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def full_blob_tx_wrapper_version(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> int | None:\n        \"\"\"\n        Return the version of the full blob transaction wrapper at a given\n        fork.\n        \"\"\"\n        pass\n\n    @classmethod\n    @prefer_transition_to_method\n    @abstractmethod\n    def blob_schedule(cls, *, block_number: int = 0, timestamp: int = 0) -> BlobSchedule | None:\n        \"\"\"Return the blob schedule up until the given fork.\"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def get_reward(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"Return expected reward amount in wei of a given fork.\"\"\"\n        pass\n\n    # Transaction related abstract methods\n\n    @classmethod\n    @abstractmethod\n    def tx_types(cls, *, block_number: int = 0, timestamp: int = 0) -> List[int]:\n        \"\"\"Return list of the transaction types supported by the fork.\"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def contract_creating_tx_types(cls, *, block_number: int = 0, timestamp: int = 0) -> List[int]:\n        \"\"\"\n        Return list of the transaction types supported by the fork that can\n        create contracts.\n        \"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def transaction_gas_limit_cap(cls, *, block_number: int = 0, timestamp: int = 0) -> int | None:\n        \"\"\"\n        Return the transaction gas limit cap, or None if no limit is imposed.\n        \"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def block_rlp_size_limit(cls, *, block_number: int = 0, timestamp: int = 0) -> int | None:\n        \"\"\"\n        Return the maximum RLP size of a block in bytes, or None if no limit is\n        imposed.\n        \"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def precompiles(cls, *, block_number: int = 0, timestamp: int = 0) -> List[Address]:\n        \"\"\"Return list pre-compiles supported by the fork.\"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def system_contracts(cls, *, block_number: int = 0, timestamp: int = 0) -> List[Address]:\n        \"\"\"Return list system-contracts supported by the fork.\"\"\"\n        pass\n\n    @classmethod\n    @prefer_transition_to_method\n    @abstractmethod\n    def pre_allocation(cls, *, block_number: int = 0, timestamp: int = 0) -> Mapping:\n        \"\"\"\n        Return required pre-allocation of accounts for any kind of test.\n\n        This method must always call the `fork_to` method when transitioning,\n        because the allocation can only be set at genesis, and thus cannot be\n        changed at transition time.\n        \"\"\"\n        pass\n\n    @classmethod\n    @prefer_transition_to_method\n    @abstractmethod\n    def pre_allocation_blockchain(cls, *, block_number: int = 0, timestamp: int = 0) -> Mapping:\n        \"\"\"\n        Return required pre-allocation of accounts for any blockchain tests.\n\n        This method must always call the `fork_to` method when transitioning,\n        because the allocation can only be set at genesis, and thus cannot be\n        changed at transition time.\n        \"\"\"\n        pass\n\n    # Engine API information abstract methods\n    @classmethod\n    @abstractmethod\n    def engine_new_payload_version(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> Optional[int]:\n        \"\"\"\n        Return `None` if this fork's payloads cannot be sent over the engine\n        API, or the payload version if it can.\n        \"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def engine_new_payload_blob_hashes(cls, *, block_number: int = 0, timestamp: int = 0) -> bool:\n        \"\"\"\n        Return true if the engine api version requires new payload calls to\n        include blob hashes.\n        \"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def engine_new_payload_beacon_root(cls, *, block_number: int = 0, timestamp: int = 0) -> bool:\n        \"\"\"\n        Return true if the engine api version requires new payload calls to\n        include a parent beacon block root.\n        \"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def engine_new_payload_requests(cls, *, block_number: int = 0, timestamp: int = 0) -> bool:\n        \"\"\"\n        Return true if the engine api version requires new payload calls to\n        include requests.\n        \"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def engine_new_payload_target_blobs_per_block(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> bool:\n        \"\"\"\n        Return true if the engine api version requires new payload calls to\n        include target blobs per block.\n        \"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def engine_execution_payload_block_access_list(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> bool:\n        \"\"\"\n        Return `True` if the engine api version requires execution payload to\n        include a `block_access_list`.\n        \"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def engine_payload_attribute_target_blobs_per_block(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> bool:\n        \"\"\"\n        Return true if the payload attributes include the target blobs per\n        block.\n        \"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def engine_payload_attribute_max_blobs_per_block(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> bool:\n        \"\"\"\n        Return true if the payload attributes include the max blobs per block.\n        \"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def engine_forkchoice_updated_version(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> Optional[int]:\n        \"\"\"\n        Return `None` if the forks canonical chain cannot be set using the\n        forkchoice method.\n        \"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def engine_get_payload_version(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> Optional[int]:\n        \"\"\"\n        Return `None` if the forks canonical chain cannot build a payload using\n        the engine API.\n        \"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def engine_get_blobs_version(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> Optional[int]:\n        \"\"\"\n        Return `None` if the fork does not support the engine get blobs\n        version.\n        \"\"\"\n        pass\n\n    # EVM information abstract methods\n    @classmethod\n    @abstractmethod\n    def evm_code_types(cls, *, block_number: int = 0, timestamp: int = 0) -> List[EVMCodeType]:\n        \"\"\"Return list of EVM code types supported by the fork.\"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def max_code_size(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"\n        Return the maximum code size allowed to be deployed in a contract\n        creation.\n        \"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def max_stack_height(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"Return the maximum stack height allowed in the EVM stack.\"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def max_initcode_size(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"\n        Return the maximum initcode size allowed to be used in a contract\n        creation.\n        \"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def call_opcodes(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> List[Tuple[Opcodes, EVMCodeType]]:\n        \"\"\"\n        Return list of tuples with the call opcodes and its corresponding EVM\n        code type.\n        \"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def valid_opcodes(cls, *, block_number: int = 0, timestamp: int = 0) -> List[Opcodes]:\n        \"\"\"Return list of Opcodes that are valid to work on this fork.\"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def create_opcodes(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> List[Tuple[Opcodes, EVMCodeType]]:\n        \"\"\"\n        Return list of tuples with the create opcodes and its corresponding EVM\n        code type.\n        \"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def max_request_type(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"Return max request type supported by the fork.\"\"\"\n        pass\n\n    # Meta information about the fork\n    @classmethod\n    def name(cls) -> str:\n        \"\"\"Return name of the fork.\"\"\"\n        return cls.__name__\n\n    @classmethod\n    def fork_at(cls, *, block_number: int = 0, timestamp: int = 0) -> Type[\"BaseFork\"]:\n        \"\"\"\n        Return fork at the given block number and timestamp. Useful only for\n        transition forks, and it's a no-op for normal forks.\n        \"\"\"\n        del block_number, timestamp\n        return cls\n\n    @classmethod\n    @abstractmethod\n    def transition_tool_name(cls, *, block_number: int = 0, timestamp: int = 0) -> str:\n        \"\"\"\n        Return fork name as it's meant to be passed to the transition tool for\n        execution.\n        \"\"\"\n        pass\n\n    @classmethod\n    @abstractmethod\n    def solc_name(cls) -> str:\n        \"\"\"Return fork name as it's meant to be passed to the solc compiler.\"\"\"\n        pass\n\n    @classmethod\n    def is_deployed(cls) -> bool:\n        \"\"\"\n        Return whether the fork has been deployed to mainnet, or not.\n\n        Must be overridden and return False for forks that are still under\n        development.\n        \"\"\"\n        return True\n\n    @classmethod\n    def ignore(cls) -> bool:\n        \"\"\"Return whether the fork should be ignored during test generation.\"\"\"\n        return cls._ignore\n\n    @classmethod\n    @prefer_transition_to_method\n    def bpo_fork(cls) -> bool:\n        \"\"\"Return whether the fork is a BPO fork.\"\"\"\n        return cls._bpo_fork\n\n    @classmethod\n    def parent(cls) -> Type[\"BaseFork\"] | None:\n        \"\"\"Return the parent fork.\"\"\"\n        base_class = cls.__bases__[0]\n        assert issubclass(base_class, BaseFork)\n        if base_class == BaseFork:\n            return None\n        return base_class\n\n    @classmethod\n    def non_bpo_ancestor(cls) -> Type[\"BaseFork\"]:\n        \"\"\"Return the nearest non-BPO ancestor fork.\"\"\"\n        ancestor = cls\n        while ancestor.bpo_fork():\n            parent = ancestor.parent()\n            if parent is None:\n                break\n            ancestor = parent\n        return ancestor\n\n    @classmethod\n    def children(cls) -> Set[Type[\"BaseFork\"]]:\n        \"\"\"Return the children forks.\"\"\"\n        return set(cls._children)\n"
  },
  {
    "path": "src/ethereum_test_forks/forks/__init__.py",
    "content": "\"\"\"Listings of all forks, current and upcoming.\"\"\"\n"
  },
  {
    "path": "src/ethereum_test_forks/forks/forks.py",
    "content": "\"\"\"All Ethereum fork class definitions.\"\"\"\n\nfrom dataclasses import replace\nfrom hashlib import sha256\nfrom os.path import realpath\nfrom pathlib import Path\nfrom typing import List, Literal, Mapping, Optional, Sized, Tuple\n\nfrom ethereum_test_base_types import AccessList, Address, BlobSchedule, Bytes, ForkBlobSchedule\nfrom ethereum_test_base_types.conversions import BytesConvertible\nfrom ethereum_test_vm import EVMCodeType, Opcodes\n\nfrom ..base_fork import (\n    BaseFeeChangeCalculator,\n    BaseFeePerGasCalculator,\n    BaseFork,\n    BlobGasPriceCalculator,\n    CalldataGasCalculator,\n    ExcessBlobGasCalculator,\n    MemoryExpansionGasCalculator,\n    TransactionDataFloorCostCalculator,\n    TransactionIntrinsicCostCalculator,\n)\nfrom ..gas_costs import GasCosts\nfrom .helpers import ceiling_division, fake_exponential\n\nCURRENT_FILE = Path(realpath(__file__))\nCURRENT_FOLDER = CURRENT_FILE.parent\n\n\n# All forks must be listed here !!! in the order they were introduced !!!\nclass Frontier(BaseFork, solc_name=\"homestead\"):\n    \"\"\"Frontier fork.\"\"\"\n\n    @classmethod\n    def transition_tool_name(cls, *, block_number: int = 0, timestamp: int = 0) -> str:\n        \"\"\"\n        Return fork name as it's meant to be passed to the transition tool for\n        execution.\n        \"\"\"\n        del block_number, timestamp\n        if cls._transition_tool_name is not None:\n            return cls._transition_tool_name\n        return cls.name()\n\n    @classmethod\n    def solc_name(cls) -> str:\n        \"\"\"Return fork name as it's meant to be passed to the solc compiler.\"\"\"\n        if cls._solc_name is not None:\n            return cls._solc_name\n        return cls.name().lower()\n\n    @classmethod\n    def header_base_fee_required(cls, *, block_number: int = 0, timestamp: int = 0) -> bool:\n        \"\"\"At genesis, header must not contain base fee.\"\"\"\n        del block_number, timestamp\n        return False\n\n    @classmethod\n    def header_prev_randao_required(cls, *, block_number: int = 0, timestamp: int = 0) -> bool:\n        \"\"\"At genesis, header must not contain Prev Randao value.\"\"\"\n        del block_number, timestamp\n        return False\n\n    @classmethod\n    def header_zero_difficulty_required(cls, *, block_number: int = 0, timestamp: int = 0) -> bool:\n        \"\"\"At genesis, header must not have difficulty zero.\"\"\"\n        del block_number, timestamp\n        return False\n\n    @classmethod\n    def header_withdrawals_required(cls, *, block_number: int = 0, timestamp: int = 0) -> bool:\n        \"\"\"At genesis, header must not contain withdrawals.\"\"\"\n        del block_number, timestamp\n        return False\n\n    @classmethod\n    def header_excess_blob_gas_required(cls, *, block_number: int = 0, timestamp: int = 0) -> bool:\n        \"\"\"At genesis, header must not contain excess blob gas.\"\"\"\n        del block_number, timestamp\n        return False\n\n    @classmethod\n    def header_blob_gas_used_required(cls, *, block_number: int = 0, timestamp: int = 0) -> bool:\n        \"\"\"At genesis, header must not contain blob gas used.\"\"\"\n        del block_number, timestamp\n        return False\n\n    @classmethod\n    def gas_costs(cls, *, block_number: int = 0, timestamp: int = 0) -> GasCosts:\n        \"\"\"\n        Return dataclass with the defined gas costs constants for genesis.\n        \"\"\"\n        del block_number, timestamp\n        return GasCosts(\n            G_JUMPDEST=1,\n            G_BASE=2,\n            G_VERY_LOW=3,\n            G_LOW=5,\n            G_MID=8,\n            G_HIGH=10,\n            G_WARM_ACCOUNT_ACCESS=100,\n            G_COLD_ACCOUNT_ACCESS=2_600,\n            G_ACCESS_LIST_ADDRESS=2_400,\n            G_ACCESS_LIST_STORAGE=1_900,\n            G_WARM_SLOAD=100,\n            G_COLD_SLOAD=2_100,\n            G_STORAGE_SET=20_000,\n            G_STORAGE_RESET=2_900,\n            R_STORAGE_CLEAR=4_800,\n            G_SELF_DESTRUCT=5_000,\n            G_CREATE=32_000,\n            G_CODE_DEPOSIT_BYTE=200,\n            G_INITCODE_WORD=2,\n            G_CALL_VALUE=9_000,\n            G_CALL_STIPEND=2_300,\n            G_NEW_ACCOUNT=25_000,\n            G_EXP=10,\n            G_EXP_BYTE=50,\n            G_MEMORY=3,\n            G_TX_DATA_ZERO=4,\n            G_TX_DATA_NON_ZERO=68,\n            G_TX_DATA_STANDARD_TOKEN_COST=0,\n            G_TX_DATA_FLOOR_TOKEN_COST=0,\n            G_TRANSACTION=21_000,\n            G_TRANSACTION_CREATE=32_000,\n            G_LOG=375,\n            G_LOG_DATA=8,\n            G_LOG_TOPIC=375,\n            G_KECCAK_256=30,\n            G_KECCAK_256_WORD=6,\n            G_COPY=3,\n            G_BLOCKHASH=20,\n            G_AUTHORIZATION=0,\n            R_AUTHORIZATION_EXISTING_AUTHORITY=0,\n        )\n\n    @classmethod\n    def memory_expansion_gas_calculator(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> MemoryExpansionGasCalculator:\n        \"\"\"\n        Return callable that calculates the gas cost of memory expansion for\n        the fork.\n        \"\"\"\n        gas_costs = cls.gas_costs(block_number=block_number, timestamp=timestamp)\n\n        def fn(*, new_bytes: int, previous_bytes: int = 0) -> int:\n            if new_bytes <= previous_bytes:\n                return 0\n            new_words = ceiling_division(new_bytes, 32)\n            previous_words = ceiling_division(previous_bytes, 32)\n\n            def c(w: int) -> int:\n                return (gas_costs.G_MEMORY * w) + ((w * w) // 512)\n\n            return c(new_words) - c(previous_words)\n\n        return fn\n\n    @classmethod\n    def calldata_gas_calculator(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> CalldataGasCalculator:\n        \"\"\"\n        Return callable that calculates the transaction gas cost for its\n        calldata depending on its contents.\n        \"\"\"\n        gas_costs = cls.gas_costs(block_number=block_number, timestamp=timestamp)\n\n        def fn(*, data: BytesConvertible, floor: bool = False) -> int:\n            del floor\n\n            cost = 0\n            for b in Bytes(data):\n                if b == 0:\n                    cost += gas_costs.G_TX_DATA_ZERO\n                else:\n                    cost += gas_costs.G_TX_DATA_NON_ZERO\n            return cost\n\n        return fn\n\n    @classmethod\n    def base_fee_per_gas_calculator(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> BaseFeePerGasCalculator:\n        \"\"\"\n        Return a callable that calculates the base fee per gas at a given fork.\n        \"\"\"\n        raise NotImplementedError(f\"Base fee per gas calculator is not supported in {cls.name()}\")\n\n    @classmethod\n    def base_fee_change_calculator(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> BaseFeeChangeCalculator:\n        \"\"\"\n        Return a callable that calculates the gas that needs to be used to\n        change the base fee.\n        \"\"\"\n        raise NotImplementedError(f\"Base fee change calculator is not supported in {cls.name()}\")\n\n    @classmethod\n    def base_fee_max_change_denominator(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"Return the base fee max change denominator at a given fork.\"\"\"\n        del block_number, timestamp\n        raise NotImplementedError(\n            f\"Base fee max change denominator is not supported in {cls.name()}\"\n        )\n\n    @classmethod\n    def base_fee_elasticity_multiplier(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"Return the base fee elasticity multiplier at a given fork.\"\"\"\n        del block_number, timestamp\n        raise NotImplementedError(\n            f\"Base fee elasticity multiplier is not supported in {cls.name()}\"\n        )\n\n    @classmethod\n    def transaction_data_floor_cost_calculator(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> TransactionDataFloorCostCalculator:\n        \"\"\"At frontier, the transaction data floor cost is a constant zero.\"\"\"\n        del block_number, timestamp\n\n        def fn(*, data: BytesConvertible) -> int:\n            del data\n            return 0\n\n        return fn\n\n    @classmethod\n    def transaction_intrinsic_cost_calculator(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> TransactionIntrinsicCostCalculator:\n        \"\"\"\n        Return callable that calculates the intrinsic gas cost of a transaction\n        for the fork.\n        \"\"\"\n        gas_costs = cls.gas_costs(block_number=block_number, timestamp=timestamp)\n        calldata_gas_calculator = cls.calldata_gas_calculator(\n            block_number=block_number, timestamp=timestamp\n        )\n\n        def fn(\n            *,\n            calldata: BytesConvertible = b\"\",\n            contract_creation: bool = False,\n            access_list: List[AccessList] | None = None,\n            authorization_list_or_count: Sized | int | None = None,\n            return_cost_deducted_prior_execution: bool = False,\n        ) -> int:\n            del return_cost_deducted_prior_execution\n\n            assert access_list is None, f\"Access list is not supported in {cls.name()}\"\n            assert authorization_list_or_count is None, (\n                f\"Authorizations are not supported in {cls.name()}\"\n            )\n\n            intrinsic_cost: int = gas_costs.G_TRANSACTION\n\n            if contract_creation:\n                intrinsic_cost += gas_costs.G_INITCODE_WORD * ceiling_division(\n                    len(Bytes(calldata)), 32\n                )\n\n            return intrinsic_cost + calldata_gas_calculator(data=calldata)\n\n        return fn\n\n    @classmethod\n    def blob_gas_price_calculator(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> BlobGasPriceCalculator:\n        \"\"\"\n        Return a callable that calculates the blob gas price at a given fork.\n        \"\"\"\n        raise NotImplementedError(f\"Blob gas price calculator is not supported in {cls.name()}\")\n\n    @classmethod\n    def excess_blob_gas_calculator(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> ExcessBlobGasCalculator:\n        \"\"\"\n        Return a callable that calculates the excess blob gas for a block at a\n        given fork.\n        \"\"\"\n        raise NotImplementedError(f\"Excess blob gas calculator is not supported in {cls.name()}\")\n\n    @classmethod\n    def min_base_fee_per_blob_gas(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"Return the amount of blob gas used per blob at a given fork.\"\"\"\n        del block_number, timestamp\n        raise NotImplementedError(f\"Base fee per blob gas is not supported in {cls.name()}\")\n\n    @classmethod\n    def blob_base_fee_update_fraction(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"Return the blob base fee update fraction at a given fork.\"\"\"\n        del block_number, timestamp\n        raise NotImplementedError(\n            f\"Blob base fee update fraction is not supported in {cls.name()}\"\n        )\n\n    @classmethod\n    def blob_gas_per_blob(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"Return the amount of blob gas used per blob at a given fork.\"\"\"\n        del block_number, timestamp\n        return 0\n\n    @classmethod\n    def supports_blobs(cls, *, block_number: int = 0, timestamp: int = 0) -> bool:\n        \"\"\"Blobs are not supported at Frontier.\"\"\"\n        del block_number, timestamp\n        return False\n\n    @classmethod\n    def target_blobs_per_block(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"Return the target number of blobs per block at a given fork.\"\"\"\n        del block_number, timestamp\n        raise NotImplementedError(f\"Target blobs per block is not supported in {cls.name()}\")\n\n    @classmethod\n    def max_blobs_per_block(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"Return the max number of blobs per block at a given fork.\"\"\"\n        del block_number, timestamp\n        raise NotImplementedError(f\"Max blobs per block is not supported in {cls.name()}\")\n\n    @classmethod\n    def blob_reserve_price_active(cls, *, block_number: int = 0, timestamp: int = 0) -> bool:\n        \"\"\"\n        Return whether the fork uses a reserve price mechanism for blobs or\n        not.\n        \"\"\"\n        del block_number, timestamp\n        raise NotImplementedError(f\"Blob reserve price is not supported in {cls.name()}\")\n\n    @classmethod\n    def blob_base_cost(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"Return the base cost of a blob at a given fork.\"\"\"\n        del block_number, timestamp\n        raise NotImplementedError(f\"Blob base cost is not supported in {cls.name()}\")\n\n    @classmethod\n    def full_blob_tx_wrapper_version(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> int | None:\n        \"\"\"Return the version of the full blob transaction wrapper.\"\"\"\n        raise NotImplementedError(\n            f\"Full blob transaction wrapper version is not supported in {cls.name()}\"\n        )\n\n    @classmethod\n    def max_blobs_per_tx(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"Return the max number of blobs per tx at a given fork.\"\"\"\n        del block_number, timestamp\n        raise NotImplementedError(f\"Max blobs per tx is not supported in {cls.name()}\")\n\n    @classmethod\n    def blob_schedule(cls, *, block_number: int = 0, timestamp: int = 0) -> BlobSchedule | None:\n        \"\"\"At genesis, no blob schedule is used.\"\"\"\n        del block_number, timestamp\n        return None\n\n    @classmethod\n    def header_requests_required(cls, *, block_number: int = 0, timestamp: int = 0) -> bool:\n        \"\"\"At genesis, header must not contain beacon chain requests.\"\"\"\n        del block_number, timestamp\n        return False\n\n    @classmethod\n    def header_bal_hash_required(cls, *, block_number: int = 0, timestamp: int = 0) -> bool:\n        \"\"\"At genesis, header must not contain block access list hash.\"\"\"\n        del block_number, timestamp\n        return False\n\n    @classmethod\n    def engine_new_payload_version(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> Optional[int]:\n        \"\"\"At genesis, payloads cannot be sent through the engine API.\"\"\"\n        del block_number, timestamp\n        return None\n\n    @classmethod\n    def header_beacon_root_required(cls, *, block_number: int = 0, timestamp: int = 0) -> bool:\n        \"\"\"At genesis, header must not contain parent beacon block root.\"\"\"\n        del block_number, timestamp\n        return False\n\n    @classmethod\n    def engine_new_payload_blob_hashes(cls, *, block_number: int = 0, timestamp: int = 0) -> bool:\n        \"\"\"At genesis, payloads do not have blob hashes.\"\"\"\n        del block_number, timestamp\n        return False\n\n    @classmethod\n    def engine_new_payload_beacon_root(cls, *, block_number: int = 0, timestamp: int = 0) -> bool:\n        \"\"\"At genesis, payloads do not have a parent beacon block root.\"\"\"\n        del block_number, timestamp\n        return False\n\n    @classmethod\n    def engine_new_payload_requests(cls, *, block_number: int = 0, timestamp: int = 0) -> bool:\n        \"\"\"At genesis, payloads do not have requests.\"\"\"\n        del block_number, timestamp\n        return False\n\n    @classmethod\n    def engine_execution_payload_block_access_list(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> bool:\n        \"\"\"At genesis, payloads do not have block access list.\"\"\"\n        del block_number, timestamp\n        return False\n\n    @classmethod\n    def engine_new_payload_target_blobs_per_block(\n        cls,\n        *,\n        block_number: int = 0,\n        timestamp: int = 0,\n    ) -> bool:\n        \"\"\"At genesis, payloads do not have target blobs per block.\"\"\"\n        del block_number, timestamp\n        return False\n\n    @classmethod\n    def engine_payload_attribute_target_blobs_per_block(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> bool:\n        \"\"\"\n        At genesis, payload attributes do not include the target blobs per\n        block.\n        \"\"\"\n        del block_number, timestamp\n        return False\n\n    @classmethod\n    def engine_payload_attribute_max_blobs_per_block(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> bool:\n        \"\"\"\n        At genesis, payload attributes do not include the max blobs per block.\n        \"\"\"\n        del block_number, timestamp\n        return False\n\n    @classmethod\n    def engine_forkchoice_updated_version(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> Optional[int]:\n        \"\"\"\n        At genesis, forkchoice updates cannot be sent through the engine API.\n        \"\"\"\n        return cls.engine_new_payload_version(block_number=block_number, timestamp=timestamp)\n\n    @classmethod\n    def engine_get_payload_version(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> Optional[int]:\n        \"\"\"At genesis, payloads cannot be retrieved through the engine API.\"\"\"\n        return cls.engine_new_payload_version(block_number=block_number, timestamp=timestamp)\n\n    @classmethod\n    def engine_get_blobs_version(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> Optional[int]:\n        \"\"\"At genesis, blobs cannot be retrieved through the engine API.\"\"\"\n        del block_number, timestamp\n        return None\n\n    @classmethod\n    def get_reward(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"\n        At Genesis the expected reward amount in wei is\n        5_000_000_000_000_000_000.\n        \"\"\"\n        del block_number, timestamp\n        return 5_000_000_000_000_000_000\n\n    @classmethod\n    def tx_types(cls, *, block_number: int = 0, timestamp: int = 0) -> List[int]:\n        \"\"\"At Genesis, only legacy transactions are allowed.\"\"\"\n        del block_number, timestamp\n        return [0]\n\n    @classmethod\n    def contract_creating_tx_types(cls, *, block_number: int = 0, timestamp: int = 0) -> List[int]:\n        \"\"\"At Genesis, only legacy transactions are allowed.\"\"\"\n        del block_number, timestamp\n        return [0]\n\n    @classmethod\n    def transaction_gas_limit_cap(cls, *, block_number: int = 0, timestamp: int = 0) -> int | None:\n        \"\"\"At Genesis, no transaction gas limit cap is imposed.\"\"\"\n        del block_number, timestamp\n        return None\n\n    @classmethod\n    def block_rlp_size_limit(cls, *, block_number: int = 0, timestamp: int = 0) -> int | None:\n        \"\"\"At Genesis, no RLP block size limit is imposed.\"\"\"\n        del block_number, timestamp\n        return None\n\n    @classmethod\n    def precompiles(cls, *, block_number: int = 0, timestamp: int = 0) -> List[Address]:\n        \"\"\"At Genesis, no pre-compiles are present.\"\"\"\n        del block_number, timestamp\n        return []\n\n    @classmethod\n    def system_contracts(cls, *, block_number: int = 0, timestamp: int = 0) -> List[Address]:\n        \"\"\"At Genesis, no system-contracts are present.\"\"\"\n        del block_number, timestamp\n        return []\n\n    @classmethod\n    def evm_code_types(cls, *, block_number: int = 0, timestamp: int = 0) -> List[EVMCodeType]:\n        \"\"\"At Genesis, only legacy EVM code is supported.\"\"\"\n        del block_number, timestamp\n        return [EVMCodeType.LEGACY]\n\n    @classmethod\n    def max_code_size(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"\n        At genesis, there is no upper bound for code size (bounded by block gas\n        limit).\n\n        However, the default is set to the limit of EIP-170 (Spurious Dragon)\n        \"\"\"\n        del block_number, timestamp\n        return 0x6000\n\n    @classmethod\n    def max_stack_height(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"At genesis, the maximum stack height is 1024.\"\"\"\n        del block_number, timestamp\n        return 1024\n\n    @classmethod\n    def max_initcode_size(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"At genesis, there is no upper bound for initcode size.\"\"\"\n        del block_number, timestamp\n        \"\"\"However, the default is set to the limit of EIP-3860 (Shanghai)\"\"\"\n        return 0xC000\n\n    @classmethod\n    def call_opcodes(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> List[Tuple[Opcodes, EVMCodeType]]:\n        \"\"\"Return list of call opcodes supported by the fork.\"\"\"\n        del block_number, timestamp\n        return [\n            (Opcodes.CALL, EVMCodeType.LEGACY),\n            (Opcodes.CALLCODE, EVMCodeType.LEGACY),\n        ]\n\n    @classmethod\n    def valid_opcodes(cls, *, block_number: int = 0, timestamp: int = 0) -> List[Opcodes]:\n        \"\"\"Return list of Opcodes that are valid to work on this fork.\"\"\"\n        del block_number, timestamp\n        return [\n            Opcodes.STOP,\n            Opcodes.ADD,\n            Opcodes.MUL,\n            Opcodes.SUB,\n            Opcodes.DIV,\n            Opcodes.SDIV,\n            Opcodes.MOD,\n            Opcodes.SMOD,\n            Opcodes.ADDMOD,\n            Opcodes.MULMOD,\n            Opcodes.EXP,\n            Opcodes.SIGNEXTEND,\n            Opcodes.LT,\n            Opcodes.GT,\n            Opcodes.SLT,\n            Opcodes.SGT,\n            Opcodes.EQ,\n            Opcodes.ISZERO,\n            Opcodes.AND,\n            Opcodes.OR,\n            Opcodes.XOR,\n            Opcodes.NOT,\n            Opcodes.BYTE,\n            Opcodes.SHA3,\n            Opcodes.ADDRESS,\n            Opcodes.BALANCE,\n            Opcodes.ORIGIN,\n            Opcodes.CALLER,\n            Opcodes.CALLVALUE,\n            Opcodes.CALLDATALOAD,\n            Opcodes.CALLDATASIZE,\n            Opcodes.CALLDATACOPY,\n            Opcodes.CODESIZE,\n            Opcodes.CODECOPY,\n            Opcodes.GASPRICE,\n            Opcodes.EXTCODESIZE,\n            Opcodes.EXTCODECOPY,\n            Opcodes.BLOCKHASH,\n            Opcodes.COINBASE,\n            Opcodes.TIMESTAMP,\n            Opcodes.NUMBER,\n            Opcodes.PREVRANDAO,\n            Opcodes.GASLIMIT,\n            Opcodes.POP,\n            Opcodes.MLOAD,\n            Opcodes.MSTORE,\n            Opcodes.MSTORE8,\n            Opcodes.SLOAD,\n            Opcodes.SSTORE,\n            Opcodes.PC,\n            Opcodes.MSIZE,\n            Opcodes.GAS,\n            Opcodes.JUMP,\n            Opcodes.JUMPI,\n            Opcodes.JUMPDEST,\n            Opcodes.PUSH1,\n            Opcodes.PUSH2,\n            Opcodes.PUSH3,\n            Opcodes.PUSH4,\n            Opcodes.PUSH5,\n            Opcodes.PUSH6,\n            Opcodes.PUSH7,\n            Opcodes.PUSH8,\n            Opcodes.PUSH9,\n            Opcodes.PUSH10,\n            Opcodes.PUSH11,\n            Opcodes.PUSH12,\n            Opcodes.PUSH13,\n            Opcodes.PUSH14,\n            Opcodes.PUSH15,\n            Opcodes.PUSH16,\n            Opcodes.PUSH17,\n            Opcodes.PUSH18,\n            Opcodes.PUSH19,\n            Opcodes.PUSH20,\n            Opcodes.PUSH21,\n            Opcodes.PUSH22,\n            Opcodes.PUSH23,\n            Opcodes.PUSH24,\n            Opcodes.PUSH25,\n            Opcodes.PUSH26,\n            Opcodes.PUSH27,\n            Opcodes.PUSH28,\n            Opcodes.PUSH29,\n            Opcodes.PUSH30,\n            Opcodes.PUSH31,\n            Opcodes.PUSH32,\n            Opcodes.DUP1,\n            Opcodes.DUP2,\n            Opcodes.DUP3,\n            Opcodes.DUP4,\n            Opcodes.DUP5,\n            Opcodes.DUP6,\n            Opcodes.DUP7,\n            Opcodes.DUP8,\n            Opcodes.DUP9,\n            Opcodes.DUP10,\n            Opcodes.DUP11,\n            Opcodes.DUP12,\n            Opcodes.DUP13,\n            Opcodes.DUP14,\n            Opcodes.DUP15,\n            Opcodes.DUP16,\n            Opcodes.SWAP1,\n            Opcodes.SWAP2,\n            Opcodes.SWAP3,\n            Opcodes.SWAP4,\n            Opcodes.SWAP5,\n            Opcodes.SWAP6,\n            Opcodes.SWAP7,\n            Opcodes.SWAP8,\n            Opcodes.SWAP9,\n            Opcodes.SWAP10,\n            Opcodes.SWAP11,\n            Opcodes.SWAP12,\n            Opcodes.SWAP13,\n            Opcodes.SWAP14,\n            Opcodes.SWAP15,\n            Opcodes.SWAP16,\n            Opcodes.LOG0,\n            Opcodes.LOG1,\n            Opcodes.LOG2,\n            Opcodes.LOG3,\n            Opcodes.LOG4,\n            Opcodes.CREATE,\n            Opcodes.CALL,\n            Opcodes.CALLCODE,\n            Opcodes.RETURN,\n            Opcodes.SELFDESTRUCT,\n        ]\n\n    @classmethod\n    def create_opcodes(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> List[Tuple[Opcodes, EVMCodeType]]:\n        \"\"\"At Genesis, only `CREATE` opcode is supported.\"\"\"\n        del block_number, timestamp\n        return [\n            (Opcodes.CREATE, EVMCodeType.LEGACY),\n        ]\n\n    @classmethod\n    def max_refund_quotient(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"Return the max refund quotient at Genesis.\"\"\"\n        del block_number, timestamp\n        return 2\n\n    @classmethod\n    def max_request_type(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"At genesis, no request type is supported, signaled by -1.\"\"\"\n        del block_number, timestamp\n        return -1\n\n    @classmethod\n    def pre_allocation(cls, *, block_number: int = 0, timestamp: int = 0) -> Mapping:\n        \"\"\"\n        Return whether the fork expects pre-allocation of accounts.\n\n        Frontier does not require pre-allocated accounts\n        \"\"\"\n        del block_number, timestamp\n        return {}\n\n    @classmethod\n    def pre_allocation_blockchain(cls, *, block_number: int = 0, timestamp: int = 0) -> Mapping:\n        \"\"\"\n        Return whether the fork expects pre-allocation of accounts.\n\n        Frontier does not require pre-allocated accounts\n        \"\"\"\n        del block_number, timestamp\n        return {}\n\n\nclass Homestead(Frontier):\n    \"\"\"Homestead fork.\"\"\"\n\n    @classmethod\n    def precompiles(cls, *, block_number: int = 0, timestamp: int = 0) -> List[Address]:\n        \"\"\"\n        At Homestead, EC-recover, SHA256, RIPEMD160, and Identity pre-compiles\n        are introduced.\n        \"\"\"\n        return [\n            Address(1, label=\"ECREC\"),\n            Address(2, label=\"SHA256\"),\n            Address(3, label=\"RIPEMD160\"),\n            Address(4, label=\"ID\"),\n        ] + super(Homestead, cls).precompiles(block_number=block_number, timestamp=timestamp)\n\n    @classmethod\n    def call_opcodes(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> List[Tuple[Opcodes, EVMCodeType]]:\n        \"\"\"At Homestead, DELEGATECALL opcode was introduced.\"\"\"\n        return [(Opcodes.DELEGATECALL, EVMCodeType.LEGACY)] + super(Homestead, cls).call_opcodes(\n            block_number=block_number, timestamp=timestamp\n        )\n\n    @classmethod\n    def valid_opcodes(cls, *, block_number: int = 0, timestamp: int = 0) -> List[Opcodes]:\n        \"\"\"Return the list of Opcodes that are valid to work on this fork.\"\"\"\n        del block_number, timestamp\n        return [Opcodes.DELEGATECALL] + super(Homestead, cls).valid_opcodes()\n\n    @classmethod\n    def transaction_intrinsic_cost_calculator(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> TransactionIntrinsicCostCalculator:\n        \"\"\"\n        At Homestead, the transaction intrinsic cost needs to take contract\n        creation into account.\n        \"\"\"\n        super_fn = super(Homestead, cls).transaction_intrinsic_cost_calculator(\n            block_number=block_number, timestamp=timestamp\n        )\n        gas_costs = cls.gas_costs(block_number=block_number, timestamp=timestamp)\n\n        def fn(\n            *,\n            calldata: BytesConvertible = b\"\",\n            contract_creation: bool = False,\n            access_list: List[AccessList] | None = None,\n            authorization_list_or_count: Sized | int | None = None,\n            return_cost_deducted_prior_execution: bool = False,\n        ) -> int:\n            del return_cost_deducted_prior_execution\n\n            intrinsic_cost: int = super_fn(\n                calldata=calldata,\n                contract_creation=contract_creation,\n                access_list=access_list,\n                authorization_list_or_count=authorization_list_or_count,\n            )\n            if contract_creation:\n                intrinsic_cost += gas_costs.G_TRANSACTION_CREATE\n            return intrinsic_cost\n\n        return fn\n\n\nclass DAOFork(Homestead, ignore=True):\n    \"\"\"DAO fork.\"\"\"\n\n    pass\n\n\nclass Tangerine(DAOFork, ignore=True):\n    \"\"\"Tangerine fork (EIP-150).\"\"\"\n\n    pass\n\n\nclass SpuriousDragon(Tangerine, ignore=True):\n    \"\"\"SpuriousDragon fork (EIP-155, EIP-158).\"\"\"\n\n    pass\n\n\nclass Byzantium(Homestead):\n    \"\"\"Byzantium fork.\"\"\"\n\n    @classmethod\n    def get_reward(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"\n        At Byzantium, the block reward is reduced to 3_000_000_000_000_000_000\n        wei.\n        \"\"\"\n        del block_number, timestamp\n        return 3_000_000_000_000_000_000\n\n    @classmethod\n    def precompiles(cls, *, block_number: int = 0, timestamp: int = 0) -> List[Address]:\n        \"\"\"\n        At Byzantium, pre-compiles for bigint modular exponentiation, addition\n        and scalar multiplication on elliptic curve alt_bn128, and optimal ate\n        pairing check on elliptic curve alt_bn128 are introduced.\n        \"\"\"\n        return [\n            Address(5, label=\"MODEXP\"),\n            Address(6, label=\"BN254_ADD\"),\n            Address(7, label=\"BN254_MUL\"),\n            Address(8, label=\"BN254_PAIRING\"),\n        ] + super(Byzantium, cls).precompiles(block_number=block_number, timestamp=timestamp)\n\n    @classmethod\n    def max_code_size(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        # NOTE: Move this to Spurious Dragon once this fork is introduced. See\n        # EIP-170.\n        \"\"\"\n        At Spurious Dragon, an upper bound was introduced for max contract code\n        size.\n        \"\"\"\n        del block_number, timestamp\n        return 0x6000\n\n    @classmethod\n    def call_opcodes(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> List[Tuple[Opcodes, EVMCodeType]]:\n        \"\"\"At Byzantium, STATICCALL opcode was introduced.\"\"\"\n        return [(Opcodes.STATICCALL, EVMCodeType.LEGACY)] + super(Byzantium, cls).call_opcodes(\n            block_number=block_number, timestamp=timestamp\n        )\n\n    @classmethod\n    def valid_opcodes(cls, *, block_number: int = 0, timestamp: int = 0) -> List[Opcodes]:\n        \"\"\"Return list of Opcodes that are valid to work on this fork.\"\"\"\n        del block_number, timestamp\n        return [\n            Opcodes.REVERT,\n            Opcodes.RETURNDATASIZE,\n            Opcodes.RETURNDATACOPY,\n            Opcodes.STATICCALL,\n        ] + super(Byzantium, cls).valid_opcodes()\n\n\nclass Constantinople(Byzantium):\n    \"\"\"Constantinople fork.\"\"\"\n\n    @classmethod\n    def get_reward(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"\n        At Constantinople, the block reward is reduced to\n        2_000_000_000_000_000_000 wei.\n        \"\"\"\n        del block_number, timestamp\n        return 2_000_000_000_000_000_000\n\n    @classmethod\n    def create_opcodes(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> List[Tuple[Opcodes, EVMCodeType]]:\n        \"\"\"At Constantinople, `CREATE2` opcode is added.\"\"\"\n        return [(Opcodes.CREATE2, EVMCodeType.LEGACY)] + super(Constantinople, cls).create_opcodes(\n            block_number=block_number, timestamp=timestamp\n        )\n\n    @classmethod\n    def valid_opcodes(cls, *, block_number: int = 0, timestamp: int = 0) -> List[Opcodes]:\n        \"\"\"Return list of Opcodes that are valid to work on this fork.\"\"\"\n        del block_number, timestamp\n        return [\n            Opcodes.SHL,\n            Opcodes.SHR,\n            Opcodes.SAR,\n            Opcodes.EXTCODEHASH,\n            Opcodes.CREATE2,\n        ] + super(Constantinople, cls).valid_opcodes()\n\n\nclass ConstantinopleFix(Constantinople, solc_name=\"constantinople\"):\n    \"\"\"Constantinople Fix fork.\"\"\"\n\n    pass\n\n\nclass Istanbul(ConstantinopleFix):\n    \"\"\"Istanbul fork.\"\"\"\n\n    @classmethod\n    def precompiles(cls, *, block_number: int = 0, timestamp: int = 0) -> List[Address]:\n        \"\"\"At Istanbul, pre-compile for blake2 compression is introduced.\"\"\"\n        return [\n            Address(9, label=\"BLAKE2F\"),\n        ] + super(Istanbul, cls).precompiles(block_number=block_number, timestamp=timestamp)\n\n    @classmethod\n    def valid_opcodes(cls, *, block_number: int = 0, timestamp: int = 0) -> List[Opcodes]:\n        \"\"\"Return list of Opcodes that are valid to work on this fork.\"\"\"\n        del block_number, timestamp\n        return [Opcodes.CHAINID, Opcodes.SELFBALANCE] + super(Istanbul, cls).valid_opcodes()\n\n    @classmethod\n    def gas_costs(cls, *, block_number: int = 0, timestamp: int = 0) -> GasCosts:\n        \"\"\"\n        On Istanbul, the non-zero transaction data byte cost is reduced to 16\n        due to EIP-2028.\n        \"\"\"\n        return replace(\n            super(Istanbul, cls).gas_costs(block_number=block_number, timestamp=timestamp),\n            G_TX_DATA_NON_ZERO=16,  # https://eips.ethereum.org/EIPS/eip-2028\n        )\n\n\n# Glacier forks skipped, unless explicitly specified\nclass MuirGlacier(Istanbul, solc_name=\"istanbul\", ignore=True):\n    \"\"\"Muir Glacier fork.\"\"\"\n\n    pass\n\n\nclass Berlin(Istanbul):\n    \"\"\"Berlin fork.\"\"\"\n\n    @classmethod\n    def tx_types(cls, *, block_number: int = 0, timestamp: int = 0) -> List[int]:\n        \"\"\"At Berlin, access list transactions are introduced.\"\"\"\n        return [1] + super(Berlin, cls).tx_types(block_number=block_number, timestamp=timestamp)\n\n    @classmethod\n    def contract_creating_tx_types(cls, *, block_number: int = 0, timestamp: int = 0) -> List[int]:\n        \"\"\"At Berlin, access list transactions are introduced.\"\"\"\n        return [1] + super(Berlin, cls).contract_creating_tx_types(\n            block_number=block_number, timestamp=timestamp\n        )\n\n    @classmethod\n    def transaction_intrinsic_cost_calculator(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> TransactionIntrinsicCostCalculator:\n        \"\"\"\n        At Berlin, the transaction intrinsic cost needs to take the access list\n        into account.\n        \"\"\"\n        super_fn = super(Berlin, cls).transaction_intrinsic_cost_calculator(\n            block_number=block_number, timestamp=timestamp\n        )\n        gas_costs = cls.gas_costs(block_number=block_number, timestamp=timestamp)\n\n        def fn(\n            *,\n            calldata: BytesConvertible = b\"\",\n            contract_creation: bool = False,\n            access_list: List[AccessList] | None = None,\n            authorization_list_or_count: Sized | int | None = None,\n            return_cost_deducted_prior_execution: bool = False,\n        ) -> int:\n            del return_cost_deducted_prior_execution\n\n            intrinsic_cost: int = super_fn(\n                calldata=calldata,\n                contract_creation=contract_creation,\n                authorization_list_or_count=authorization_list_or_count,\n            )\n            if access_list is not None:\n                for access in access_list:\n                    intrinsic_cost += gas_costs.G_ACCESS_LIST_ADDRESS\n                    for _ in access.storage_keys:\n                        intrinsic_cost += gas_costs.G_ACCESS_LIST_STORAGE\n            return intrinsic_cost\n\n        return fn\n\n\nclass London(Berlin):\n    \"\"\"London fork.\"\"\"\n\n    @classmethod\n    def header_base_fee_required(cls, *, block_number: int = 0, timestamp: int = 0) -> bool:\n        \"\"\"Header must contain the Base Fee starting from London.\"\"\"\n        del block_number, timestamp\n        return True\n\n    @classmethod\n    def tx_types(cls, *, block_number: int = 0, timestamp: int = 0) -> List[int]:\n        \"\"\"At London, dynamic fee transactions are introduced.\"\"\"\n        return [2] + super(London, cls).tx_types(block_number=block_number, timestamp=timestamp)\n\n    @classmethod\n    def contract_creating_tx_types(cls, *, block_number: int = 0, timestamp: int = 0) -> List[int]:\n        \"\"\"At London, dynamic fee transactions are introduced.\"\"\"\n        return [2] + super(London, cls).contract_creating_tx_types(\n            block_number=block_number, timestamp=timestamp\n        )\n\n    @classmethod\n    def valid_opcodes(cls, *, block_number: int = 0, timestamp: int = 0) -> List[Opcodes]:\n        \"\"\"Return list of Opcodes that are valid to work on this fork.\"\"\"\n        del block_number, timestamp\n        return [Opcodes.BASEFEE] + super(London, cls).valid_opcodes()\n\n    @classmethod\n    def max_refund_quotient(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"Return the max refund quotient at London.\"\"\"\n        del block_number, timestamp\n        return 5\n\n    @classmethod\n    def base_fee_max_change_denominator(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"Return the base fee max change denominator at London.\"\"\"\n        del block_number, timestamp\n        return 8\n\n    @classmethod\n    def base_fee_elasticity_multiplier(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"Return the base fee elasticity multiplier at London.\"\"\"\n        del block_number, timestamp\n        return 2\n\n    @classmethod\n    def base_fee_per_gas_calculator(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> BaseFeePerGasCalculator:\n        \"\"\"\n        Return a callable that calculates the base fee per gas at London.\n\n        EIP-1559 block validation pseudo code:\n\n        if INITIAL_FORK_BLOCK_NUMBER == block.number:\n            expected_base_fee_per_gas = INITIAL_BASE_FEE\n        elif parent_gas_used == parent_gas_target:\n            expected_base_fee_per_gas = parent_base_fee_per_gas\n        elif parent_gas_used > parent_gas_target:\n            gas_used_delta = parent_gas_used - parent_gas_target\n            base_fee_per_gas_delta = max( parent_base_fee_per_gas\n                                  * gas_used_delta // parent_gas_target //\n                                  BASE_FEE_MAX_CHANGE_DENOMINATOR, 1, )\n            expected_base_fee_per_gas = parent_base_fee_per_gas +\n                                       base_fee_per_gas_delta\n        else:\n            gas_used_delta = parent_gas_target - parent_gas_used\n            base_fee_per_gas_delta = (\n                              parent_base_fee_per_gas * gas_used_delta //\n                              parent_gas_target //\n                              BASE_FEE_MAX_CHANGE_DENOMINATOR\n                              )\n            expected_base_fee_per_gas = parent_base_fee_per_gas -\n                                        base_fee_per_gas_delta\n        \"\"\"\n        base_fee_max_change_denominator = cls.base_fee_max_change_denominator(\n            block_number=block_number, timestamp=timestamp\n        )\n        elasticity_multiplier = cls.base_fee_elasticity_multiplier(\n            block_number=block_number, timestamp=timestamp\n        )\n\n        def fn(\n            *, parent_base_fee_per_gas: int, parent_gas_used: int, parent_gas_limit: int\n        ) -> int:\n            parent_gas_target = parent_gas_limit // elasticity_multiplier\n            if parent_gas_used == parent_gas_target:\n                return parent_base_fee_per_gas\n            elif parent_gas_used > parent_gas_target:\n                gas_used_delta = parent_gas_used - parent_gas_target\n                base_fee_per_gas_delta = max(\n                    parent_base_fee_per_gas\n                    * gas_used_delta\n                    // parent_gas_target\n                    // base_fee_max_change_denominator,\n                    1,\n                )\n                return parent_base_fee_per_gas + base_fee_per_gas_delta\n            else:\n                gas_used_delta = parent_gas_target - parent_gas_used\n                base_fee_per_gas_delta = (\n                    parent_base_fee_per_gas\n                    * gas_used_delta\n                    // parent_gas_target\n                    // base_fee_max_change_denominator\n                )\n                return parent_base_fee_per_gas - base_fee_per_gas_delta\n\n        return fn\n\n    @classmethod\n    def base_fee_change_calculator(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> BaseFeeChangeCalculator:\n        \"\"\"\n        Return a callable that calculates the gas that needs to be used to\n        change the base fee.\n        \"\"\"\n        base_fee_max_change_denominator = cls.base_fee_max_change_denominator(\n            block_number=block_number, timestamp=timestamp\n        )\n        elasticity_multiplier = cls.base_fee_elasticity_multiplier(\n            block_number=block_number, timestamp=timestamp\n        )\n        base_fee_per_gas_calculator = cls.base_fee_per_gas_calculator(\n            block_number=block_number, timestamp=timestamp\n        )\n\n        def fn(\n            *,\n            parent_base_fee_per_gas: int,\n            parent_gas_limit: int,\n            required_base_fee_per_gas: int,\n        ) -> int:\n            parent_gas_target = parent_gas_limit // elasticity_multiplier\n\n            if parent_base_fee_per_gas == required_base_fee_per_gas:\n                return parent_gas_target\n            elif required_base_fee_per_gas > parent_base_fee_per_gas:\n                # Base fee needs to go up, so we need to use more than target\n                base_fee_per_gas_delta = required_base_fee_per_gas - parent_base_fee_per_gas\n                parent_gas_used = (\n                    (base_fee_per_gas_delta * base_fee_max_change_denominator * parent_gas_target)\n                    // parent_base_fee_per_gas\n                ) + parent_gas_target\n            elif required_base_fee_per_gas < parent_base_fee_per_gas:\n                # Base fee needs to go down, so we need to use less than target\n                base_fee_per_gas_delta = parent_base_fee_per_gas - required_base_fee_per_gas\n\n                parent_gas_used = (\n                    parent_gas_target\n                    - (\n                        (\n                            base_fee_per_gas_delta\n                            * base_fee_max_change_denominator\n                            * parent_gas_target\n                        )\n                        // parent_base_fee_per_gas\n                    )\n                    - 1\n                )\n\n            assert (\n                base_fee_per_gas_calculator(\n                    parent_base_fee_per_gas=parent_base_fee_per_gas,\n                    parent_gas_used=parent_gas_used,\n                    parent_gas_limit=parent_gas_limit,\n                )\n                == required_base_fee_per_gas\n            )\n\n            return parent_gas_used\n\n        return fn\n\n\n# Glacier forks skipped, unless explicitly specified\nclass ArrowGlacier(London, solc_name=\"london\", ignore=True):\n    \"\"\"Arrow Glacier fork.\"\"\"\n\n    pass\n\n\nclass GrayGlacier(ArrowGlacier, solc_name=\"london\", ignore=True):\n    \"\"\"Gray Glacier fork.\"\"\"\n\n    pass\n\n\nclass Paris(\n    London,\n    transition_tool_name=\"Merge\",\n):\n    \"\"\"Paris (Merge) fork.\"\"\"\n\n    @classmethod\n    def header_prev_randao_required(cls, *, block_number: int = 0, timestamp: int = 0) -> bool:\n        \"\"\"Prev Randao is required starting from Paris.\"\"\"\n        del block_number, timestamp\n        return True\n\n    @classmethod\n    def header_zero_difficulty_required(cls, *, block_number: int = 0, timestamp: int = 0) -> bool:\n        \"\"\"Zero difficulty is required starting from Paris.\"\"\"\n        del block_number, timestamp\n        return True\n\n    @classmethod\n    def get_reward(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"Paris updates the reward to 0.\"\"\"\n        del block_number, timestamp\n        return 0\n\n    @classmethod\n    def engine_new_payload_version(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> Optional[int]:\n        \"\"\"From Paris, payloads can be sent through the engine API.\"\"\"\n        del block_number, timestamp\n        return 1\n\n\nclass Shanghai(Paris):\n    \"\"\"Shanghai fork.\"\"\"\n\n    @classmethod\n    def header_withdrawals_required(cls, *, block_number: int = 0, timestamp: int = 0) -> bool:\n        \"\"\"Withdrawals are required starting from Shanghai.\"\"\"\n        del block_number, timestamp\n        return True\n\n    @classmethod\n    def engine_new_payload_version(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> Optional[int]:\n        \"\"\"From Shanghai, new payload calls must use version 2.\"\"\"\n        del block_number, timestamp\n        return 2\n\n    @classmethod\n    def max_initcode_size(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"From Shanghai, the initcode size is now limited. See EIP-3860.\"\"\"\n        del block_number, timestamp\n        return 0xC000\n\n    @classmethod\n    def valid_opcodes(cls, *, block_number: int = 0, timestamp: int = 0) -> List[Opcodes]:\n        \"\"\"Return list of Opcodes that are valid to work on this fork.\"\"\"\n        del block_number, timestamp\n        return [Opcodes.PUSH0] + super(Shanghai, cls).valid_opcodes()\n\n\nclass Cancun(Shanghai):\n    \"\"\"Cancun fork.\"\"\"\n\n    BLOB_CONSTANTS = {  # every value is an int or a Literal\n        \"FIELD_ELEMENTS_PER_BLOB\": 4096,\n        \"BYTES_PER_FIELD_ELEMENT\": 32,\n        \"CELL_LENGTH\": 2048,\n        # EIP-2537: Main subgroup order = q, due to this BLS_MODULUS\n        # every blob byte (uint256) must be smaller than 116\n        \"BLS_MODULUS\": 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFF00000001,\n        # https://github.com/ethereum/consensus-specs/blob/\n        # cc6996c22692d70e41b7a453d925172ee4b719ad/specs/deneb/\n        # polynomial-commitments.md?plain=1#L78\n        \"BYTES_PER_PROOF\": 48,\n        \"BYTES_PER_COMMITMENT\": 48,\n        \"KZG_ENDIANNESS\": \"big\",\n        \"AMOUNT_CELL_PROOFS\": 0,\n    }\n\n    @classmethod\n    def get_blob_constant(cls, name: str) -> int | Literal[\"big\"]:\n        \"\"\"Return blob constant if it exists.\"\"\"\n        retrieved_constant = cls.BLOB_CONSTANTS.get(name)\n        assert retrieved_constant is not None, (\n            f\"You tried to retrieve the blob constant {name} but it does not exist!\"\n        )\n        return retrieved_constant\n\n    @classmethod\n    def header_excess_blob_gas_required(cls, *, block_number: int = 0, timestamp: int = 0) -> bool:\n        \"\"\"Excess blob gas is required starting from Cancun.\"\"\"\n        del block_number, timestamp\n        return True\n\n    @classmethod\n    def header_blob_gas_used_required(cls, *, block_number: int = 0, timestamp: int = 0) -> bool:\n        \"\"\"Blob gas used is required starting from Cancun.\"\"\"\n        del block_number, timestamp\n        return True\n\n    @classmethod\n    def header_beacon_root_required(cls, *, block_number: int = 0, timestamp: int = 0) -> bool:\n        \"\"\"Parent beacon block root is required starting from Cancun.\"\"\"\n        del block_number, timestamp\n        return True\n\n    @classmethod\n    def blob_gas_price_calculator(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> BlobGasPriceCalculator:\n        \"\"\"Return a callable that calculates the blob gas price at Cancun.\"\"\"\n        min_base_fee_per_blob_gas = cls.min_base_fee_per_blob_gas(\n            block_number=block_number, timestamp=timestamp\n        )\n        blob_base_fee_update_fraction = cls.blob_base_fee_update_fraction(\n            block_number=block_number, timestamp=timestamp\n        )\n\n        def fn(*, excess_blob_gas: int) -> int:\n            return fake_exponential(\n                min_base_fee_per_blob_gas,\n                excess_blob_gas,\n                blob_base_fee_update_fraction,\n            )\n\n        return fn\n\n    @classmethod\n    def excess_blob_gas_calculator(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> ExcessBlobGasCalculator:\n        \"\"\"\n        Return a callable that calculates the excess blob gas for a block at\n        Cancun.\n        \"\"\"\n        target_blobs_per_block = cls.target_blobs_per_block(\n            block_number=block_number, timestamp=timestamp\n        )\n        blob_gas_per_blob = cls.blob_gas_per_blob(block_number=block_number, timestamp=timestamp)\n        target_blob_gas_per_block = target_blobs_per_block * blob_gas_per_blob\n\n        def fn(\n            *,\n            parent_excess_blob_gas: int | None = None,\n            parent_excess_blobs: int | None = None,\n            parent_blob_gas_used: int | None = None,\n            parent_blob_count: int | None = None,\n            # Required for Osaka as using this as base\n            parent_base_fee_per_gas: int,\n        ) -> int:\n            del parent_base_fee_per_gas\n\n            if parent_excess_blob_gas is None:\n                assert parent_excess_blobs is not None, \"Parent excess blobs are required\"\n                parent_excess_blob_gas = parent_excess_blobs * blob_gas_per_blob\n            if parent_blob_gas_used is None:\n                assert parent_blob_count is not None, \"Parent blob count is required\"\n                parent_blob_gas_used = parent_blob_count * blob_gas_per_blob\n            if parent_excess_blob_gas + parent_blob_gas_used < target_blob_gas_per_block:\n                return 0\n            else:\n                return parent_excess_blob_gas + parent_blob_gas_used - target_blob_gas_per_block\n\n        return fn\n\n    @classmethod\n    def min_base_fee_per_blob_gas(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"Return the minimum base fee per blob gas for Cancun.\"\"\"\n        del block_number, timestamp\n        return 1\n\n    @classmethod\n    def blob_base_fee_update_fraction(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"Return the blob base fee update fraction for Cancun.\"\"\"\n        del block_number, timestamp\n        return 3338477\n\n    @classmethod\n    def blob_gas_per_blob(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"Blobs are enabled starting from Cancun.\"\"\"\n        del block_number, timestamp\n        return 2**17\n\n    @classmethod\n    def supports_blobs(cls, *, block_number: int = 0, timestamp: int = 0) -> bool:\n        \"\"\"At Cancun, blobs support is enabled.\"\"\"\n        del block_number, timestamp\n        return True\n\n    @classmethod\n    def target_blobs_per_block(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"\n        Blobs are enabled starting from Cancun, with a static target of 3 blobs\n        per block.\n        \"\"\"\n        del block_number, timestamp\n        return 3\n\n    @classmethod\n    def max_blobs_per_block(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"\n        Blobs are enabled starting from Cancun, with a static max of 6 blobs\n        per block.\n        \"\"\"\n        del block_number, timestamp\n        return 6\n\n    @classmethod\n    def blob_reserve_price_active(cls, *, block_number: int = 0, timestamp: int = 0) -> bool:\n        \"\"\"Blob reserve price is not supported in Cancun.\"\"\"\n        del block_number, timestamp\n        return False\n\n    @classmethod\n    def full_blob_tx_wrapper_version(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> int | None:\n        \"\"\"\n        Pre-Osaka forks don't use tx wrapper versions for full blob\n        transactions.\n        \"\"\"\n        del block_number, timestamp\n        return None\n\n    @classmethod\n    def max_blobs_per_tx(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"\n        Blobs are enabled starting from Cancun, with a static max equal to the\n        max per block.\n        \"\"\"\n        return cls.max_blobs_per_block(block_number=block_number, timestamp=timestamp)\n\n    @classmethod\n    def blob_schedule(cls, *, block_number: int = 0, timestamp: int = 0) -> BlobSchedule | None:\n        \"\"\"\n        At Cancun, the fork object runs this routine to get the updated blob\n        schedule.\n        \"\"\"\n        parent_fork = cls.parent()\n        assert parent_fork is not None, \"Parent fork must be defined\"\n        blob_schedule = (\n            parent_fork.blob_schedule(block_number=block_number, timestamp=timestamp)\n            or BlobSchedule()\n        )\n        current_blob_schedule = ForkBlobSchedule(\n            target_blobs_per_block=cls.target_blobs_per_block(\n                block_number=block_number, timestamp=timestamp\n            ),\n            max_blobs_per_block=cls.max_blobs_per_block(\n                block_number=block_number, timestamp=timestamp\n            ),\n            base_fee_update_fraction=cls.blob_base_fee_update_fraction(\n                block_number=block_number, timestamp=timestamp\n            ),\n        )\n        blob_schedule.append(fork=cls.name(), schedule=current_blob_schedule)\n        return blob_schedule\n\n    @classmethod\n    def tx_types(cls, *, block_number: int = 0, timestamp: int = 0) -> List[int]:\n        \"\"\"At Cancun, blob type transactions are introduced.\"\"\"\n        return [3] + super(Cancun, cls).tx_types(block_number=block_number, timestamp=timestamp)\n\n    @classmethod\n    def precompiles(cls, *, block_number: int = 0, timestamp: int = 0) -> List[Address]:\n        \"\"\"At Cancun, pre-compile for kzg point evaluation is introduced.\"\"\"\n        return [\n            Address(10, label=\"KZG_POINT_EVALUATION\"),\n        ] + super(Cancun, cls).precompiles(block_number=block_number, timestamp=timestamp)\n\n    @classmethod\n    def system_contracts(cls, *, block_number: int = 0, timestamp: int = 0) -> List[Address]:\n        \"\"\"Cancun introduces the system contract for EIP-4788.\"\"\"\n        del block_number, timestamp\n        return [Address(0x000F3DF6D732807EF1319FB7B8BB8522D0BEAC02, label=\"BEACON_ROOTS_ADDRESS\")]\n\n    @classmethod\n    def pre_allocation_blockchain(cls, *, block_number: int = 0, timestamp: int = 0) -> Mapping:\n        \"\"\"\n        Cancun requires pre-allocation of the beacon root contract for EIP-4788\n        on blockchain type tests.\n        \"\"\"\n        del block_number, timestamp\n        new_allocation = {\n            0x000F3DF6D732807EF1319FB7B8BB8522D0BEAC02: {\n                \"nonce\": 1,\n                \"code\": \"0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5f\"\n                \"fd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f\"\n                \"5ffd5b62001fff42064281555f359062001fff015500\",\n            }\n        }\n        return new_allocation | super(Cancun, cls).pre_allocation_blockchain()  # type: ignore\n\n    @classmethod\n    def engine_new_payload_version(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> Optional[int]:\n        \"\"\"From Cancun, new payload calls must use version 3.\"\"\"\n        del block_number, timestamp\n        return 3\n\n    @classmethod\n    def engine_get_blobs_version(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> Optional[int]:\n        \"\"\"At Cancun, the engine get blobs version is 1.\"\"\"\n        del block_number, timestamp\n        return 1\n\n    @classmethod\n    def engine_new_payload_blob_hashes(cls, *, block_number: int = 0, timestamp: int = 0) -> bool:\n        \"\"\"From Cancun, payloads must have blob hashes.\"\"\"\n        del block_number, timestamp\n        return True\n\n    @classmethod\n    def engine_new_payload_beacon_root(cls, *, block_number: int = 0, timestamp: int = 0) -> bool:\n        \"\"\"From Cancun, payloads must have a parent beacon block root.\"\"\"\n        del block_number, timestamp\n        return True\n\n    @classmethod\n    def valid_opcodes(cls, *, block_number: int = 0, timestamp: int = 0) -> List[Opcodes]:\n        \"\"\"Return list of Opcodes that are valid to work on this fork.\"\"\"\n        del block_number, timestamp\n        return [\n            Opcodes.BLOBHASH,\n            Opcodes.BLOBBASEFEE,\n            Opcodes.TLOAD,\n            Opcodes.TSTORE,\n            Opcodes.MCOPY,\n        ] + super(Cancun, cls).valid_opcodes()\n\n\nclass Prague(Cancun):\n    \"\"\"Prague fork.\"\"\"\n\n    # update some blob constants\n    BLOB_CONSTANTS = {\n        **Cancun.BLOB_CONSTANTS,  # same base constants as cancun\n        \"MAX_BLOBS_PER_BLOCK\": 9,  # but overwrite or add these\n        \"TARGET_BLOBS_PER_BLOCK\": 6,\n        \"MAX_BLOB_GAS_PER_BLOCK\": 1179648,\n        \"TARGET_BLOB_GAS_PER_BLOCK\": 786432,\n        \"BLOB_BASE_FEE_UPDATE_FRACTION\": 5007716,\n    }\n\n    @classmethod\n    def precompiles(cls, *, block_number: int = 0, timestamp: int = 0) -> List[Address]:\n        \"\"\"\n        At Prague, pre-compile for BLS operations are added.\n\n        BLS12_G1ADD = 0x0B\n        BLS12_G1MSM = 0x0C\n        BLS12_G2ADD = 0x0D\n        BLS12_G2MSM = 0x0E\n        BLS12_PAIRING_CHECK = 0x0F\n        BLS12_MAP_FP_TO_G1 = 0x10\n        BLS12_MAP_FP2_TO_G2 = 0x11\n        \"\"\"\n        return [\n            Address(11, label=\"BLS12_G1ADD\"),\n            Address(12, label=\"BLS12_G1MSM\"),\n            Address(13, label=\"BLS12_G2ADD\"),\n            Address(14, label=\"BLS12_G2MSM\"),\n            Address(15, label=\"BLS12_PAIRING_CHECK\"),\n            Address(16, label=\"BLS12_MAP_FP_TO_G1\"),\n            Address(17, label=\"BLS12_MAP_FP2_TO_G2\"),\n        ] + super(Prague, cls).precompiles(block_number=block_number, timestamp=timestamp)\n\n    @classmethod\n    def tx_types(cls, *, block_number: int = 0, timestamp: int = 0) -> List[int]:\n        \"\"\"At Prague, set-code type transactions are introduced.\"\"\"\n        return [4] + super(Prague, cls).tx_types(block_number=block_number, timestamp=timestamp)\n\n    @classmethod\n    def gas_costs(cls, *, block_number: int = 0, timestamp: int = 0) -> GasCosts:\n        \"\"\"\n        On Prague, the standard token cost and the floor token costs are\n        introduced due to EIP-7623.\n        \"\"\"\n        return replace(\n            super(Prague, cls).gas_costs(block_number=block_number, timestamp=timestamp),\n            G_TX_DATA_STANDARD_TOKEN_COST=4,  # https://eips.ethereum.org/EIPS/eip-7623\n            G_TX_DATA_FLOOR_TOKEN_COST=10,\n            G_AUTHORIZATION=25_000,\n            R_AUTHORIZATION_EXISTING_AUTHORITY=12_500,\n        )\n\n    @classmethod\n    def system_contracts(cls, *, block_number: int = 0, timestamp: int = 0) -> List[Address]:\n        \"\"\"\n        Prague introduces the system contracts for EIP-6110, EIP-7002, EIP-7251\n        and EIP-2935.\n        \"\"\"\n        return [\n            Address(\n                0x00000000219AB540356CBB839CBE05303D7705FA,\n                label=\"DEPOSIT_CONTRACT_ADDRESS\",\n            ),\n            Address(\n                0x00000961EF480EB55E80D19AD83579A64C007002,\n                label=\"WITHDRAWAL_REQUEST_PREDEPLOY_ADDRESS\",\n            ),\n            Address(\n                0x0000BBDDC7CE488642FB579F8B00F3A590007251,\n                label=\"CONSOLIDATION_REQUEST_PREDEPLOY_ADDRESS\",\n            ),\n            Address(\n                0x0000F90827F1C53A10CB7A02335B175320002935,\n                label=\"HISTORY_STORAGE_ADDRESS\",\n            ),\n        ] + super(Prague, cls).system_contracts(block_number=block_number, timestamp=timestamp)\n\n    @classmethod\n    def max_request_type(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"\n        At Prague, three request types are introduced, hence the max request\n        type is 2.\n        \"\"\"\n        del block_number, timestamp\n        return 2\n\n    @classmethod\n    def calldata_gas_calculator(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> CalldataGasCalculator:\n        \"\"\"\n        Return a callable that calculates the transaction gas cost for its\n        calldata depending on its contents.\n        \"\"\"\n        gas_costs = cls.gas_costs(block_number=block_number, timestamp=timestamp)\n\n        def fn(*, data: BytesConvertible, floor: bool = False) -> int:\n            tokens = 0\n            for b in Bytes(data):\n                if b == 0:\n                    tokens += 1\n                else:\n                    tokens += 4\n            if floor:\n                return tokens * gas_costs.G_TX_DATA_FLOOR_TOKEN_COST\n            return tokens * gas_costs.G_TX_DATA_STANDARD_TOKEN_COST\n\n        return fn\n\n    @classmethod\n    def transaction_data_floor_cost_calculator(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> TransactionDataFloorCostCalculator:\n        \"\"\"\n        On Prague, due to EIP-7623, the transaction data floor cost is\n        introduced.\n        \"\"\"\n        calldata_gas_calculator = cls.calldata_gas_calculator(\n            block_number=block_number, timestamp=timestamp\n        )\n        gas_costs = cls.gas_costs(block_number=block_number, timestamp=timestamp)\n\n        def fn(*, data: BytesConvertible) -> int:\n            return calldata_gas_calculator(data=data, floor=True) + gas_costs.G_TRANSACTION\n\n        return fn\n\n    @classmethod\n    def transaction_intrinsic_cost_calculator(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> TransactionIntrinsicCostCalculator:\n        \"\"\"\n        At Prague, the transaction intrinsic cost needs to take the\n        authorizations into account.\n        \"\"\"\n        super_fn = super(Prague, cls).transaction_intrinsic_cost_calculator(\n            block_number=block_number, timestamp=timestamp\n        )\n        gas_costs = cls.gas_costs(block_number=block_number, timestamp=timestamp)\n        transaction_data_floor_cost_calculator = cls.transaction_data_floor_cost_calculator(\n            block_number=block_number, timestamp=timestamp\n        )\n\n        def fn(\n            *,\n            calldata: BytesConvertible = b\"\",\n            contract_creation: bool = False,\n            access_list: List[AccessList] | None = None,\n            authorization_list_or_count: Sized | int | None = None,\n            return_cost_deducted_prior_execution: bool = False,\n        ) -> int:\n            intrinsic_cost: int = super_fn(\n                calldata=calldata,\n                contract_creation=contract_creation,\n                access_list=access_list,\n                return_cost_deducted_prior_execution=False,\n            )\n            if authorization_list_or_count is not None:\n                if isinstance(authorization_list_or_count, Sized):\n                    authorization_list_or_count = len(authorization_list_or_count)\n                intrinsic_cost += authorization_list_or_count * gas_costs.G_AUTHORIZATION\n\n            if return_cost_deducted_prior_execution:\n                return intrinsic_cost\n\n            transaction_floor_data_cost = transaction_data_floor_cost_calculator(data=calldata)\n            return max(intrinsic_cost, transaction_floor_data_cost)\n\n        return fn\n\n    @classmethod\n    def blob_base_fee_update_fraction(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"Return the blob base fee update fraction for Prague.\"\"\"\n        del block_number, timestamp\n        return 5007716\n\n    @classmethod\n    def target_blobs_per_block(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"Blobs in Prague, have a static target of 6 blobs per block.\"\"\"\n        del block_number, timestamp\n        return 6\n\n    @classmethod\n    def max_blobs_per_block(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"Blobs in Prague, have a static max of 9 blobs per block.\"\"\"\n        del block_number, timestamp\n        return 9\n\n    @classmethod\n    def pre_allocation_blockchain(cls, *, block_number: int = 0, timestamp: int = 0) -> Mapping:\n        \"\"\"\n        Prague requires pre-allocation of the beacon chain deposit contract for\n        EIP-6110, the exits contract for EIP-7002, and the history storage\n        contract for EIP-2935.\n        \"\"\"\n        del block_number, timestamp\n        new_allocation = {}\n\n        # Add the beacon chain deposit contract\n        deposit_contract_tree_depth = 32\n        storage = {}\n        next_hash = sha256(b\"\\x00\" * 64).digest()\n        for i in range(deposit_contract_tree_depth + 2, deposit_contract_tree_depth * 2 + 1):\n            storage[i] = next_hash\n            next_hash = sha256(next_hash + next_hash).digest()\n\n        with open(CURRENT_FOLDER / \"contracts\" / \"deposit_contract.bin\", mode=\"rb\") as f:\n            new_allocation.update(\n                {\n                    0x00000000219AB540356CBB839CBE05303D7705FA: {\n                        \"nonce\": 1,\n                        \"code\": f.read(),\n                        \"storage\": storage,\n                    }\n                }\n            )\n\n        # EIP-7002: Add the withdrawal request contract\n        with open(CURRENT_FOLDER / \"contracts\" / \"withdrawal_request.bin\", mode=\"rb\") as f:\n            new_allocation.update(\n                {\n                    0x00000961EF480EB55E80D19AD83579A64C007002: {\n                        \"nonce\": 1,\n                        \"code\": f.read(),\n                    },\n                }\n            )\n\n        # EIP-7251: Add the consolidation request contract\n        with open(CURRENT_FOLDER / \"contracts\" / \"consolidation_request.bin\", mode=\"rb\") as f:\n            new_allocation.update(\n                {\n                    0x0000BBDDC7CE488642FB579F8B00F3A590007251: {\n                        \"nonce\": 1,\n                        \"code\": f.read(),\n                    },\n                }\n            )\n\n        # EIP-2935: Add the history storage contract\n        with open(CURRENT_FOLDER / \"contracts\" / \"history_contract.bin\", mode=\"rb\") as f:\n            new_allocation.update(\n                {\n                    0x0000F90827F1C53A10CB7A02335B175320002935: {\n                        \"nonce\": 1,\n                        \"code\": f.read(),\n                    }\n                }\n            )\n\n        return new_allocation | super(Prague, cls).pre_allocation_blockchain()  # type: ignore\n\n    @classmethod\n    def header_requests_required(cls, *, block_number: int = 0, timestamp: int = 0) -> bool:\n        \"\"\"\n        Prague requires that the execution layer header contains the beacon\n        chain requests hash.\n        \"\"\"\n        del block_number, timestamp\n        return True\n\n    @classmethod\n    def engine_new_payload_requests(cls, *, block_number: int = 0, timestamp: int = 0) -> bool:\n        \"\"\"\n        From Prague, new payloads include the requests hash as a parameter.\n        \"\"\"\n        del block_number, timestamp\n        return True\n\n    @classmethod\n    def engine_new_payload_version(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> Optional[int]:\n        \"\"\"From Prague, new payload calls must use version 4.\"\"\"\n        del block_number, timestamp\n        return 4\n\n    @classmethod\n    def engine_forkchoice_updated_version(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> Optional[int]:\n        \"\"\"\n        At Prague, version number of NewPayload and ForkchoiceUpdated diverge.\n        \"\"\"\n        del block_number, timestamp\n        return 3\n\n\nclass Osaka(Prague, solc_name=\"cancun\"):\n    \"\"\"Osaka fork.\"\"\"\n\n    # update some blob constants\n    BLOB_CONSTANTS = {\n        **Prague.BLOB_CONSTANTS,  # same base constants as prague\n        \"AMOUNT_CELL_PROOFS\": 128,\n    }\n\n    @classmethod\n    def engine_get_payload_version(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> Optional[int]:\n        \"\"\"From Osaka, get payload calls must use version 5.\"\"\"\n        del block_number, timestamp\n        return 5\n\n    @classmethod\n    def engine_get_blobs_version(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> Optional[int]:\n        \"\"\"At Osaka, the engine get blobs version is 2.\"\"\"\n        del block_number, timestamp\n        return 2\n\n    @classmethod\n    def full_blob_tx_wrapper_version(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> int | None:\n        \"\"\"At Osaka, the full blob transaction wrapper version is defined.\"\"\"\n        del block_number, timestamp\n        return 1\n\n    @classmethod\n    def transaction_gas_limit_cap(cls, *, block_number: int = 0, timestamp: int = 0) -> int | None:\n        \"\"\"At Osaka, transaction gas limit is capped at 16 million (2**24).\"\"\"\n        del block_number, timestamp\n        return 16_777_216\n\n    @classmethod\n    def block_rlp_size_limit(cls, *, block_number: int = 0, timestamp: int = 0) -> int | None:\n        \"\"\"From Osaka, block RLP size is limited as specified in EIP-7934.\"\"\"\n        del block_number, timestamp\n\n        max_block_size = 10_485_760\n        safety_margin = 2_097_152\n        return max_block_size - safety_margin\n\n    @classmethod\n    def is_deployed(cls) -> bool:\n        \"\"\"\n        Flag that the fork has not been deployed to mainnet; it is under active\n        development.\n        \"\"\"\n        return False\n\n    @classmethod\n    def valid_opcodes(cls, *, block_number: int = 0, timestamp: int = 0) -> List[Opcodes]:\n        \"\"\"Return list of Opcodes that are valid to work on this fork.\"\"\"\n        del block_number, timestamp\n        return [\n            Opcodes.CLZ,\n        ] + super(Prague, cls).valid_opcodes()\n\n    @classmethod\n    def precompiles(cls, *, block_number: int = 0, timestamp: int = 0) -> List[Address]:\n        \"\"\"\n        At Osaka, pre-compile for p256verify operation is added.\n\n        P256VERIFY = 0x100\n        \"\"\"\n        return [\n            Address(0x100, label=\"P256VERIFY\"),\n        ] + super(Osaka, cls).precompiles(block_number=block_number, timestamp=timestamp)\n\n    @classmethod\n    def excess_blob_gas_calculator(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> ExcessBlobGasCalculator:\n        \"\"\"\n        Return a callable that calculates the excess blob gas for a block.\n        \"\"\"\n        target_blobs_per_block = cls.target_blobs_per_block(\n            block_number=block_number, timestamp=timestamp\n        )\n        blob_gas_per_blob = cls.blob_gas_per_blob(block_number=block_number, timestamp=timestamp)\n        target_blob_gas_per_block = target_blobs_per_block * blob_gas_per_blob\n        max_blobs_per_block = cls.max_blobs_per_block(\n            block_number=block_number, timestamp=timestamp\n        )\n        blob_base_cost = 2**13  # EIP-7918 new parameter\n\n        def fn(\n            *,\n            parent_excess_blob_gas: int | None = None,\n            parent_excess_blobs: int | None = None,\n            parent_blob_gas_used: int | None = None,\n            parent_blob_count: int | None = None,\n            parent_base_fee_per_gas: int,  # EIP-7918 additional parameter\n        ) -> int:\n            if parent_excess_blob_gas is None:\n                assert parent_excess_blobs is not None, \"Parent excess blobs are required\"\n                parent_excess_blob_gas = parent_excess_blobs * blob_gas_per_blob\n            if parent_blob_gas_used is None:\n                assert parent_blob_count is not None, \"Parent blob count is required\"\n                parent_blob_gas_used = parent_blob_count * blob_gas_per_blob\n            if parent_excess_blob_gas + parent_blob_gas_used < target_blob_gas_per_block:\n                return 0\n\n            # EIP-7918: Apply reserve price when execution costs dominate blob\n            # costs\n            current_blob_base_fee = cls.blob_gas_price_calculator()(\n                excess_blob_gas=parent_excess_blob_gas\n            )\n            reserve_price_active = (\n                blob_base_cost * parent_base_fee_per_gas\n                > blob_gas_per_blob * current_blob_base_fee\n            )\n            if reserve_price_active:\n                blob_excess_adjustment = (\n                    parent_blob_gas_used\n                    * (max_blobs_per_block - target_blobs_per_block)\n                    // max_blobs_per_block\n                )\n                return parent_excess_blob_gas + blob_excess_adjustment\n\n            # Original EIP-4844 calculation\n            return parent_excess_blob_gas + parent_blob_gas_used - target_blob_gas_per_block\n\n        return fn\n\n    @classmethod\n    def max_blobs_per_tx(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"\n        Blobs in Osaka, have a static max of 6 blobs per tx. Differs from the\n        max per block.\n        \"\"\"\n        del block_number, timestamp\n        return 6\n\n    @classmethod\n    def blob_reserve_price_active(cls, *, block_number: int = 0, timestamp: int = 0) -> bool:\n        \"\"\"Blob reserve price is supported in Osaka.\"\"\"\n        del block_number, timestamp\n        return True\n\n    @classmethod\n    def blob_base_cost(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"Return the base cost of a blob at a given fork.\"\"\"\n        del block_number, timestamp\n        return 2**13  # EIP-7918 new parameter\n\n\nclass BPO1(Osaka, bpo_fork=True):\n    \"\"\"Mainnet BPO1 fork - Blob Parameter Only fork 1.\"\"\"\n\n    @classmethod\n    def blob_base_fee_update_fraction(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"Return the blob base fee update fraction for BPO1.\"\"\"\n        del block_number, timestamp\n        return 8346193\n\n    @classmethod\n    def target_blobs_per_block(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"Blobs in BPO1 have a target of 10 blobs per block.\"\"\"\n        del block_number, timestamp\n        return 10\n\n    @classmethod\n    def max_blobs_per_block(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"Blobs in BPO1 have a max of 15 blobs per block.\"\"\"\n        del block_number, timestamp\n        return 15\n\n\nclass BPO2(BPO1, bpo_fork=True):\n    \"\"\"Mainnet BPO2 fork - Blob Parameter Only fork 2.\"\"\"\n\n    @classmethod\n    def blob_base_fee_update_fraction(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"Return the blob base fee update fraction for BPO2.\"\"\"\n        del block_number, timestamp\n        return 11684671\n\n    @classmethod\n    def target_blobs_per_block(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"Blobs in BPO2 have a target of 14 blobs per block.\"\"\"\n        del block_number, timestamp\n        return 14\n\n    @classmethod\n    def max_blobs_per_block(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"Blobs in BPO2 have a max of 21 blobs per block.\"\"\"\n        del block_number, timestamp\n        return 21\n\n\nclass BPO3(BPO2, bpo_fork=True):\n    \"\"\"\n    Pseudo BPO3 fork - Blob Parameter Only fork 3.\n    For testing purposes only.\n    \"\"\"\n\n    @classmethod\n    def blob_base_fee_update_fraction(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"Return the blob base fee update fraction for BPO3.\"\"\"\n        del block_number, timestamp\n        return 20609697\n\n    @classmethod\n    def target_blobs_per_block(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"Blobs in BPO3 have a target of 21 blobs per block.\"\"\"\n        del block_number, timestamp\n        return 21\n\n    @classmethod\n    def max_blobs_per_block(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"Blobs in BPO3 have a max of 32 blobs per block.\"\"\"\n        del block_number, timestamp\n        return 32\n\n\nclass BPO4(BPO3, bpo_fork=True):\n    \"\"\"\n    Pseudo BPO4 fork - Blob Parameter Only fork 4.\n    For testing purposes only. Testing a decrease in values from BPO3.\n    \"\"\"\n\n    @classmethod\n    def blob_base_fee_update_fraction(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"Return the blob base fee update fraction for BPO4.\"\"\"\n        del block_number, timestamp\n        return 13739630\n\n    @classmethod\n    def target_blobs_per_block(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"Blobs in BPO4 have a target of 14 blobs per block.\"\"\"\n        del block_number, timestamp\n        return 14\n\n    @classmethod\n    def max_blobs_per_block(cls, *, block_number: int = 0, timestamp: int = 0) -> int:\n        \"\"\"Blobs in BPO4 have a max of 21 blobs per block.\"\"\"\n        del block_number, timestamp\n        return 21\n\n\nclass BPO5(BPO4, bpo_fork=True):\n    \"\"\"\n    Pseudo BPO5 fork - Blob Parameter Only fork 5.\n    For testing purposes only. Required to parse Fusaka devnet genesis files.\n    \"\"\"\n\n    pass\n\n\nclass Amsterdam(Osaka):\n    \"\"\"Amsterdam fork.\"\"\"\n\n    @classmethod\n    def header_bal_hash_required(cls, *, block_number: int = 0, timestamp: int = 0) -> bool:\n        \"\"\"\n        From Amsterdam, header must contain block access list hash (EIP-7928).\n        \"\"\"\n        del block_number, timestamp\n        return True\n\n    @classmethod\n    def is_deployed(cls) -> bool:\n        \"\"\"Return True if this fork is deployed.\"\"\"\n        return False\n\n    @classmethod\n    def engine_new_payload_version(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> Optional[int]:\n        \"\"\"From Amsterdam, new payload calls must use version 5.\"\"\"\n        del block_number, timestamp\n        return 5\n\n    @classmethod\n    def engine_execution_payload_block_access_list(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> bool:\n        \"\"\"\n        From Amsterdam, engine execution payload includes `block_access_list`\n        as a parameter.\n        \"\"\"\n        del block_number, timestamp\n        return True\n\n\nclass EOFv1(Prague, solc_name=\"cancun\"):\n    \"\"\"EOF fork.\"\"\"\n\n    @classmethod\n    def evm_code_types(cls, *, block_number: int = 0, timestamp: int = 0) -> List[EVMCodeType]:\n        \"\"\"EOF V1 is supported starting from Osaka.\"\"\"\n        return super(EOFv1, cls).evm_code_types(\n            block_number=block_number,\n            timestamp=timestamp,\n        ) + [EVMCodeType.EOF_V1]\n\n    @classmethod\n    def call_opcodes(\n        cls, *, block_number: int = 0, timestamp: int = 0\n    ) -> List[Tuple[Opcodes, EVMCodeType]]:\n        \"\"\"EOF V1 introduces EXTCALL, EXTSTATICCALL, EXTDELEGATECALL.\"\"\"\n        return [\n            (Opcodes.EXTCALL, EVMCodeType.EOF_V1),\n            (Opcodes.EXTSTATICCALL, EVMCodeType.EOF_V1),\n            (Opcodes.EXTDELEGATECALL, EVMCodeType.EOF_V1),\n        ] + super(EOFv1, cls).call_opcodes(block_number=block_number, timestamp=timestamp)\n\n    @classmethod\n    def is_deployed(cls) -> bool:\n        \"\"\"\n        Flag that the fork has not been deployed to mainnet; it is under active\n        development.\n        \"\"\"\n        return False\n"
  },
  {
    "path": "src/ethereum_test_forks/forks/helpers.py",
    "content": "\"\"\"Helpers used to return fork-specific values.\"\"\"\n\n\ndef ceiling_division(a: int, b: int) -> int:\n    \"\"\"\n    Calculate the ceil without using floating point.\n    Used by many of the EVM's formulas.\n    \"\"\"\n    return -(a // -b)\n\n\ndef fake_exponential(factor: int, numerator: int, denominator: int) -> int:\n    \"\"\"Calculate the blob gas cost.\"\"\"\n    i = 1\n    output = 0\n    numerator_accumulator = factor * denominator\n    while numerator_accumulator > 0:\n        output += numerator_accumulator\n        numerator_accumulator = (numerator_accumulator * numerator) // (denominator * i)\n        i += 1\n    return output // denominator\n"
  },
  {
    "path": "src/ethereum_test_forks/forks/transition.py",
    "content": "\"\"\"List of all transition fork definitions.\"\"\"\n\nfrom ..transition_base_fork import transition_fork\nfrom .forks import BPO1, BPO2, BPO3, BPO4, Berlin, Cancun, London, Osaka, Paris, Prague, Shanghai\n\n\n# Transition Forks\n@transition_fork(to_fork=London, at_block=5)\nclass BerlinToLondonAt5(Berlin):\n    \"\"\"Berlin to London transition at Block 5.\"\"\"\n\n    pass\n\n\n@transition_fork(to_fork=Shanghai, at_timestamp=15_000)\nclass ParisToShanghaiAtTime15k(Paris):\n    \"\"\"Paris to Shanghai transition at Timestamp 15k.\"\"\"\n\n    pass\n\n\n@transition_fork(to_fork=Cancun, at_timestamp=15_000)\nclass ShanghaiToCancunAtTime15k(Shanghai):\n    \"\"\"Shanghai to Cancun transition at Timestamp 15k.\"\"\"\n\n    pass\n\n\n@transition_fork(to_fork=Prague, at_timestamp=15_000)\nclass CancunToPragueAtTime15k(Cancun):\n    \"\"\"Cancun to Prague transition at Timestamp 15k.\"\"\"\n\n    pass\n\n\n@transition_fork(to_fork=Osaka, at_timestamp=15_000)\nclass PragueToOsakaAtTime15k(Prague):\n    \"\"\"Prague to Osaka transition at Timestamp 15k.\"\"\"\n\n    pass\n\n\n@transition_fork(to_fork=BPO1, at_timestamp=15_000)\nclass OsakaToBPO1AtTime15k(Osaka):\n    \"\"\"Osaka to BPO1 transition at Timestamp 15k.\"\"\"\n\n    pass\n\n\n@transition_fork(to_fork=BPO2, at_timestamp=15_000)\nclass BPO1ToBPO2AtTime15k(BPO1):\n    \"\"\"BPO1 to BPO2 transition at Timestamp 15k.\"\"\"\n\n    pass\n\n\n@transition_fork(to_fork=BPO3, at_timestamp=15_000)\nclass BPO2ToBPO3AtTime15k(BPO2):\n    \"\"\"BPO2 to BPO3 transition at Timestamp 15k.\"\"\"\n\n    pass\n\n\n@transition_fork(to_fork=BPO4, at_timestamp=15_000)\nclass BPO3ToBPO4AtTime15k(BPO3):\n    \"\"\"BPO3 to BPO4 transition at Timestamp 15k.\"\"\"\n\n    pass\n"
  },
  {
    "path": "src/ethereum_test_forks/gas_costs.py",
    "content": "\"\"\"Defines the data class that will contain gas cost constants on each fork.\"\"\"\n\nfrom dataclasses import dataclass\n\n\n@dataclass(kw_only=True, frozen=True)\nclass GasCosts:\n    \"\"\"Class that contains the gas cost constants for any fork.\"\"\"\n\n    G_JUMPDEST: int\n    G_BASE: int\n    G_VERY_LOW: int\n    G_LOW: int\n    G_MID: int\n    G_HIGH: int\n    G_WARM_ACCOUNT_ACCESS: int\n    G_COLD_ACCOUNT_ACCESS: int\n    G_ACCESS_LIST_ADDRESS: int\n    G_ACCESS_LIST_STORAGE: int\n    G_WARM_SLOAD: int\n    G_COLD_SLOAD: int\n    G_STORAGE_SET: int\n    G_STORAGE_RESET: int\n\n    R_STORAGE_CLEAR: int\n\n    G_SELF_DESTRUCT: int\n    G_CREATE: int\n\n    G_CODE_DEPOSIT_BYTE: int\n    G_INITCODE_WORD: int\n\n    G_CALL_VALUE: int\n    G_CALL_STIPEND: int\n    G_NEW_ACCOUNT: int\n\n    G_EXP: int\n    G_EXP_BYTE: int\n\n    G_MEMORY: int\n\n    G_TX_DATA_ZERO: int\n    G_TX_DATA_NON_ZERO: int\n    G_TX_DATA_STANDARD_TOKEN_COST: int\n    G_TX_DATA_FLOOR_TOKEN_COST: int\n\n    G_TRANSACTION: int\n    G_TRANSACTION_CREATE: int\n\n    G_LOG: int\n    G_LOG_DATA: int\n    G_LOG_TOPIC: int\n\n    G_KECCAK_256: int\n    G_KECCAK_256_WORD: int\n\n    G_COPY: int\n    G_BLOCKHASH: int\n\n    G_AUTHORIZATION: int\n\n    R_AUTHORIZATION_EXISTING_AUTHORITY: int\n"
  },
  {
    "path": "src/ethereum_test_forks/helpers.py",
    "content": "\"\"\"Helper methods to resolve forks during test filling.\"\"\"\n\nimport re\nfrom typing import Annotated, Any, Callable, FrozenSet, List, Optional, Set, Type\n\nfrom pydantic import (\n    BaseModel,\n    BeforeValidator,\n    ConfigDict,\n    PlainSerializer,\n    PlainValidator,\n    TypeAdapter,\n    ValidatorFunctionWrapHandler,\n    model_validator,\n)\n\nfrom .base_fork import BaseFork\nfrom .forks import forks, transition\nfrom .transition_base_fork import TransitionBaseClass\n\n\nclass InvalidForkError(Exception):\n    \"\"\"\n    Invalid fork error raised when the fork specified is not found or\n    incompatible.\n    \"\"\"\n\n    def __init__(self, message: str) -> None:\n        \"\"\"Initialize the InvalidForkError exception.\"\"\"\n        super().__init__(message)\n\n\nall_forks: List[Type[BaseFork]] = []\nfor fork_name in forks.__dict__:\n    fork = forks.__dict__[fork_name]\n    if not isinstance(fork, type):\n        continue\n    if issubclass(fork, BaseFork) and fork is not BaseFork:\n        all_forks.append(fork)\n\ntransition_forks: List[Type[BaseFork]] = []\n\nfor fork_name in transition.__dict__:\n    fork = transition.__dict__[fork_name]\n    if not isinstance(fork, type):\n        continue\n    if issubclass(fork, TransitionBaseClass) and issubclass(fork, BaseFork):\n        transition_forks.append(fork)\n\nALL_FORKS = frozenset(fork for fork in all_forks if not fork.ignore())\n\nALL_TRANSITION_FORKS = frozenset(transition_forks)\nALL_FORKS_WITH_TRANSITIONS = frozenset(\n    fork for fork in ALL_FORKS | ALL_TRANSITION_FORKS if not fork.ignore()\n)\n\n\ndef get_forks() -> List[Type[BaseFork]]:\n    \"\"\"\n    Return list of all the fork classes implemented by `ethereum_test_forks`\n    ordered chronologically by deployment.\n    \"\"\"\n    return all_forks[:]\n\n\ndef get_deployed_forks() -> List[Type[BaseFork]]:\n    \"\"\"\n    Return list of all the fork classes implemented by `ethereum_test_forks`\n    that have been deployed to mainnet, chronologically ordered by deployment.\n    \"\"\"\n    return [fork for fork in get_forks() if fork.is_deployed() and not fork.ignore()]\n\n\ndef get_development_forks() -> List[Type[BaseFork]]:\n    \"\"\"\n    Return list of all the fork classes implemented by `ethereum_test_forks`\n    that have been not yet deployed to mainnet and are currently under\n    development. The list is ordered by their planned deployment date.\n    \"\"\"\n    return [fork for fork in get_forks() if not fork.is_deployed()]\n\n\ndef get_parent_fork(fork: Type[BaseFork]) -> Type[BaseFork]:\n    \"\"\"Return parent fork of the specified fork.\"\"\"\n    parent_fork = fork.__base__\n    if not parent_fork:\n        raise InvalidForkError(f\"Parent fork of {fork} not found.\")\n    return parent_fork\n\n\ndef get_closest_fork(fork: Type[BaseFork]) -> Optional[Type[BaseFork]]:\n    \"\"\"Return None if BaseFork is passed, otherwise return the fork itself.\"\"\"\n    if fork is BaseFork:\n        return None\n    return fork\n\n\ndef get_transition_forks() -> Set[Type[BaseFork]]:\n    \"\"\"Return all the transition forks.\"\"\"\n    return set(ALL_TRANSITION_FORKS)\n\n\ndef get_transition_fork_predecessor(transition_fork: Type[BaseFork]) -> Type[BaseFork]:\n    \"\"\"Return the fork from which the transition fork transitions.\"\"\"\n    if not issubclass(transition_fork, TransitionBaseClass):\n        raise InvalidForkError(f\"{transition_fork} is not a transition fork.\")\n    return transition_fork.transitions_from()\n\n\ndef get_transition_fork_successor(transition_fork: Type[BaseFork]) -> Type[BaseFork]:\n    \"\"\"Return the fork to which the transition fork transitions.\"\"\"\n    if not issubclass(transition_fork, TransitionBaseClass):\n        raise InvalidForkError(f\"{transition_fork} is not a transition fork.\")\n    return transition_fork.transitions_to()\n\n\ndef get_from_until_fork_set(\n    forks: Set[Type[BaseFork]] | FrozenSet[Type[BaseFork]],\n    forks_from: Set[Type[BaseFork]],\n    forks_until: Set[Type[BaseFork]],\n) -> Set[Type[BaseFork]]:\n    \"\"\"Get fork range from forks_from to forks_until.\"\"\"\n    resulting_set = set()\n    for fork_from in forks_from:\n        for fork_until in forks_until:\n            for fork in forks:\n                if fork <= fork_until and fork >= fork_from:\n                    resulting_set.add(fork)\n    return resulting_set\n\n\ndef get_forks_with_no_parents(\n    forks: Set[Type[BaseFork]] | FrozenSet[Type[BaseFork]],\n) -> Set[Type[BaseFork]]:\n    \"\"\"Get forks with no parents in the inheritance hierarchy.\"\"\"\n    resulting_forks: Set[Type[BaseFork]] = set()\n    for fork in forks:\n        parents = False\n        for next_fork in forks - {fork}:\n            if next_fork < fork:\n                parents = True\n                break\n        if not parents:\n            resulting_forks = resulting_forks | {fork}\n    return resulting_forks\n\n\ndef get_forks_with_no_descendants(forks: Set[Type[BaseFork]]) -> Set[Type[BaseFork]]:\n    \"\"\"Get forks with no descendants in the inheritance hierarchy.\"\"\"\n    resulting_forks: Set[Type[BaseFork]] = set()\n    for fork in forks:\n        descendants = False\n        for next_fork in forks - {fork}:\n            if next_fork > fork:\n                descendants = True\n                break\n        if not descendants:\n            resulting_forks = resulting_forks | {fork}\n    return resulting_forks\n\n\ndef get_last_descendants(\n    forks: Set[Type[BaseFork]], forks_from: Set[Type[BaseFork]]\n) -> Set[Type[BaseFork]]:\n    \"\"\"Get last descendant of a class in the inheritance hierarchy.\"\"\"\n    resulting_forks: Set[Type[BaseFork]] = set()\n    forks = get_forks_with_no_descendants(forks)\n    for fork_from in forks_from:\n        for fork in forks:\n            if fork >= fork_from:\n                resulting_forks = resulting_forks | {fork}\n    return resulting_forks\n\n\ndef get_selected_fork_set(\n    *,\n    single_fork: Set[Type[BaseFork]],\n    forks_from: Set[Type[BaseFork]],\n    forks_until: Set[Type[BaseFork]],\n    transition_forks: bool = True,\n) -> Set[Type[BaseFork]]:\n    \"\"\"\n    Process sets derived from `--fork`, `--until` and `--from` to return an\n    unified fork set.\n    \"\"\"\n    selected_fork_set = set()\n    if single_fork:\n        selected_fork_set |= single_fork\n    else:\n        if not forks_from:\n            forks_from = get_forks_with_no_parents(ALL_FORKS)\n        if not forks_until:\n            forks_until = get_last_descendants(set(get_deployed_forks()), forks_from)\n        selected_fork_set = get_from_until_fork_set(ALL_FORKS, forks_from, forks_until)\n    if transition_forks:\n        for fork in list(selected_fork_set):\n            transition_fork_set = transition_fork_to(fork)\n            selected_fork_set |= transition_fork_set\n    return selected_fork_set\n\n\ndef transition_fork_from_to(\n    fork_from: Type[BaseFork], fork_to: Type[BaseFork]\n) -> Type[BaseFork] | None:\n    \"\"\"\n    Return transition fork that transitions to and from the specified forks.\n    \"\"\"\n    for transition_fork in get_transition_forks():\n        if not issubclass(transition_fork, TransitionBaseClass):\n            continue\n        if (\n            transition_fork.transitions_to() == fork_to\n            and transition_fork.transitions_from() == fork_from\n        ):\n            return transition_fork\n\n    return None\n\n\ndef transition_fork_to(fork_to: Type[BaseFork]) -> Set[Type[BaseFork]]:\n    \"\"\"Return transition fork that transitions to the specified fork.\"\"\"\n    transition_forks: Set[Type[BaseFork]] = set()\n    for transition_fork in get_transition_forks():\n        if not issubclass(transition_fork, TransitionBaseClass):\n            continue\n        if transition_fork.transitions_to() == fork_to:\n            transition_forks.add(transition_fork)\n\n    return transition_forks\n\n\ndef forks_from_until(\n    fork_from: Type[BaseFork], fork_until: Type[BaseFork]\n) -> List[Type[BaseFork]]:\n    \"\"\"\n    Return specified fork and all forks after it until and including the second\n    specified fork.\n    \"\"\"\n    prev_fork = fork_until\n\n    forks: List[Type[BaseFork]] = []\n\n    while prev_fork != BaseFork and prev_fork != fork_from:\n        forks.insert(0, prev_fork)\n\n        prev_fork = get_parent_fork(prev_fork)\n\n    if prev_fork == BaseFork:\n        return []\n\n    forks.insert(0, fork_from)\n\n    return forks\n\n\ndef forks_from(fork: Type[BaseFork], deployed_only: bool = True) -> List[Type[BaseFork]]:\n    \"\"\"Return specified fork and all forks after it.\"\"\"\n    if deployed_only:\n        latest_fork = get_deployed_forks()[-1]\n    else:\n        latest_fork = get_forks()[-1]\n    return forks_from_until(fork, latest_fork)\n\n\ndef get_relative_fork_markers(\n    fork_identifier: Type[BaseFork] | str, strict_mode: bool = True\n) -> list[str]:\n    \"\"\"\n    Return a list of marker names for a given fork.\n\n    For a base fork (e.g. `Shanghai`), return [ `Shanghai` ]. For a transition\n    fork (e.g. `ShanghaiToCancunAtTime15k` which transitions to `Cancun`),\n    return [ `ShanghaiToCancunAtTime15k`, `Cancun` ].\n\n    If `strict_mode` is set to `True`, raise an `InvalidForkError` if the fork\n    is not found, otherwise, simply return the provided (str) `fork_identifier`\n    (this is required to run `consume` with forks that are unknown to EEST).\n    \"\"\"\n    all_forks = set(get_forks()) | set(get_transition_forks())\n    if isinstance(fork_identifier, str):\n        fork_class = None\n        for candidate in all_forks:\n            if candidate.name() == fork_identifier:\n                fork_class = candidate\n                break\n        if strict_mode and fork_class is None:\n            raise InvalidForkError(f\"Unknown fork: {fork_identifier}\")\n        return [fork_identifier]\n    else:\n        fork_class = fork_identifier\n\n    if issubclass(fork_class, TransitionBaseClass):\n        return [fork_class.name(), fork_class.transitions_to().name()]\n    else:\n        return [fork_class.name()]\n\n\ndef get_fork_by_name(fork_name: str) -> Type[BaseFork] | None:\n    \"\"\"Get a fork by name.\"\"\"\n    for fork in get_forks():\n        if fork.name() == fork_name:\n            return fork\n    return None\n\n\nclass ForkRangeDescriptor(BaseModel):\n    \"\"\"\n    Fork descriptor parsed from string normally contained in ethereum/tests\n    fillers.\n    \"\"\"\n\n    greater_equal: Type[BaseFork] | None = None\n    less_than: Type[BaseFork] | None = None\n    model_config = ConfigDict(frozen=True)\n\n    def fork_in_range(self, fork: Type[BaseFork]) -> bool:\n        \"\"\"Return whether the given fork is within range.\"\"\"\n        if self.greater_equal is not None and fork < self.greater_equal:\n            return False\n        if self.less_than is not None and fork >= self.less_than:\n            return False\n        return True\n\n    @model_validator(mode=\"wrap\")\n    @classmethod\n    def validate_fork_range_descriptor(\n        cls, v: Any, handler: ValidatorFunctionWrapHandler\n    ) -> \"ForkRangeDescriptor\":\n        \"\"\"\n        Validate the fork range descriptor from a string.\n\n        Examples:\n          - \">=Osaka\" validates to {greater_equal=Osaka, less_than=None}\n\n          - \">=Prague<Osaka\" validates to {greater_equal=Prague,\n                                           less_than=Osaka}\n\n        \"\"\"\n        if isinstance(v, str):\n            # Decompose the string into its parts\n            descriptor_string = re.sub(r\"\\s+\", \"\", v.strip())\n            v = {}\n            if m := re.search(r\">=(\\w+)\", descriptor_string):\n                fork: Type[BaseFork] | None = get_fork_by_name(m.group(1))\n                if fork is None:\n                    raise Exception(f\"Unable to parse fork name: {m.group(1)}\")\n                v[\"greater_equal\"] = fork\n                descriptor_string = re.sub(r\">=(\\w+)\", \"\", descriptor_string)\n            if m := re.search(r\"<(\\w+)\", descriptor_string):\n                fork = get_fork_by_name(m.group(1))\n                if fork is None:\n                    raise Exception(f\"Unable to parse fork name: {m.group(1)}\")\n                v[\"less_than\"] = fork\n                descriptor_string = re.sub(r\"<(\\w+)\", \"\", descriptor_string)\n            if descriptor_string:\n                raise Exception(\n                    \"Unable to completely parse fork range descriptor. \"\n                    + f'Remaining string: \"{descriptor_string}\"'\n                )\n        return handler(v)\n\n\ndef fork_validator_generator(\n    cls_name: str, forks: List[Type[BaseFork]]\n) -> Callable[[Any], Type[BaseFork]]:\n    \"\"\"Generate a fork validator function.\"\"\"\n    forks_dict = {fork.name().lower(): fork for fork in forks}\n\n    def fork_validator(obj: Any) -> Type[BaseFork]:\n        \"\"\"Get a fork by name or raise an error.\"\"\"\n        if obj is None:\n            raise InvalidForkError(\"Fork cannot be None\")\n        if isinstance(obj, type) and issubclass(obj, BaseFork):\n            return obj\n        if isinstance(obj, str):\n            if obj.lower() in forks_dict:\n                return forks_dict[obj.lower()]\n            else:\n                raise InvalidForkError(f\"Invalid fork '{obj}' specified\")\n        raise InvalidForkError(f\"Invalid {cls_name}: {obj} (type: {type(obj)})\")\n\n    return fork_validator\n\n\ndef set_before_validator(value: Any) -> Any:\n    \"\"\"Convert a comma-separated string to a validation input for a set.\"\"\"\n    if isinstance(value, str):\n        if value.strip() == \"\":\n            return set()\n        return {v.strip() for v in value.split(\",\")}\n    return value\n\n\n# Annotated Pydantic-Friendly Fork Types\nFork = Annotated[\n    Type[BaseFork],\n    PlainSerializer(str),\n    PlainValidator(fork_validator_generator(\"Fork\", all_forks + transition_forks)),\n]\nForkAdapter: TypeAdapter = TypeAdapter(Fork)\nForkOrNoneAdapter: TypeAdapter = TypeAdapter(Fork | None)\nForkSet = Annotated[\n    Set[Fork],\n    BeforeValidator(set_before_validator),\n]\nForkSetAdapter: TypeAdapter = TypeAdapter(ForkSet)\nTransitionFork = Annotated[\n    Type[BaseFork],\n    PlainSerializer(str),\n    PlainValidator(fork_validator_generator(\"TransitionFork\", transition_forks)),\n]\nTransitionForkAdapter: TypeAdapter = TypeAdapter(TransitionFork)\nTransitionForkOrNoneAdapter: TypeAdapter = TypeAdapter(TransitionFork | None)\n"
  },
  {
    "path": "src/ethereum_test_forks/py.typed",
    "content": ""
  },
  {
    "path": "src/ethereum_test_forks/tests/__init__.py",
    "content": "\"\"\"`ethereum_test_forks` verification tests.\"\"\"\n"
  },
  {
    "path": "src/ethereum_test_forks/tests/test_fork_range_descriptor.py",
    "content": "\"\"\"Test fork range descriptor parsing from string.\"\"\"\n\nimport pytest\n\nfrom ..forks.forks import Osaka, Prague\nfrom ..helpers import ForkRangeDescriptor\n\n\n@pytest.mark.parametrize(\n    \"fork_range_descriptor_string,expected_fork_range_descriptor\",\n    [\n        (\n            \">=Osaka\",\n            ForkRangeDescriptor(\n                greater_equal=Osaka,\n                less_than=None,\n            ),\n        ),\n        (\n            \">= Prague < Osaka\",\n            ForkRangeDescriptor(\n                greater_equal=Prague,\n                less_than=Osaka,\n            ),\n        ),\n    ],\n)\ndef test_parsing_fork_range_descriptor_from_string(\n    fork_range_descriptor_string: str,\n    expected_fork_range_descriptor: ForkRangeDescriptor,\n) -> None:\n    \"\"\"\n    Test multiple strings used as fork range descriptors in ethereum/tests.\n    \"\"\"\n    assert (\n        ForkRangeDescriptor.model_validate(fork_range_descriptor_string)\n        == expected_fork_range_descriptor\n    )\n"
  },
  {
    "path": "src/ethereum_test_forks/tests/test_forks.py",
    "content": "\"\"\"Test fork utilities.\"\"\"\n\nfrom typing import Dict, cast\n\nimport pytest\nfrom pydantic import BaseModel\n\nfrom ethereum_test_base_types import BlobSchedule\n\nfrom ..forks.forks import (\n    BPO1,\n    BPO2,\n    BPO3,\n    BPO4,\n    Berlin,\n    Cancun,\n    Frontier,\n    Homestead,\n    Istanbul,\n    London,\n    Osaka,\n    Paris,\n    Prague,\n    Shanghai,\n)\nfrom ..forks.transition import (\n    BerlinToLondonAt5,\n    BPO1ToBPO2AtTime15k,\n    BPO2ToBPO3AtTime15k,\n    BPO3ToBPO4AtTime15k,\n    CancunToPragueAtTime15k,\n    OsakaToBPO1AtTime15k,\n    ParisToShanghaiAtTime15k,\n    PragueToOsakaAtTime15k,\n    ShanghaiToCancunAtTime15k,\n)\nfrom ..helpers import (\n    Fork,\n    ForkAdapter,\n    ForkOrNoneAdapter,\n    ForkSetAdapter,\n    forks_from,\n    forks_from_until,\n    get_deployed_forks,\n    get_forks,\n    transition_fork_from_to,\n    transition_fork_to,\n)\nfrom ..transition_base_fork import transition_fork\n\nFIRST_DEPLOYED = Frontier\nLAST_DEPLOYED = Prague\nLAST_DEVELOPMENT = Osaka\nDEVELOPMENT_FORKS = [Osaka]\n\n\ndef test_transition_forks() -> None:\n    \"\"\"Test transition fork utilities.\"\"\"\n    assert transition_fork_from_to(Berlin, London) == BerlinToLondonAt5\n    assert transition_fork_from_to(Berlin, Paris) is None\n    assert transition_fork_to(Shanghai) == {ParisToShanghaiAtTime15k}\n\n    # Test forks transitioned to and from\n    assert BerlinToLondonAt5.transitions_to() == London  # type: ignore\n    assert BerlinToLondonAt5.transitions_from() == Berlin  # type: ignore\n\n    assert BerlinToLondonAt5.transition_tool_name(block_number=4, timestamp=0) == \"Berlin\"\n    assert BerlinToLondonAt5.transition_tool_name(block_number=5, timestamp=0) == \"London\"\n    # Default values of transition forks is the transition block\n    assert BerlinToLondonAt5.transition_tool_name() == \"London\"\n\n    assert (\n        ParisToShanghaiAtTime15k.transition_tool_name(block_number=0, timestamp=14_999) == \"Merge\"\n    )\n    assert (\n        ParisToShanghaiAtTime15k.transition_tool_name(block_number=0, timestamp=15_000)\n        == \"Shanghai\"\n    )\n    assert ParisToShanghaiAtTime15k.transition_tool_name() == \"Shanghai\"\n\n    assert BerlinToLondonAt5.header_base_fee_required(block_number=4, timestamp=0) is False\n    assert BerlinToLondonAt5.header_base_fee_required(block_number=5, timestamp=0) is True\n\n    assert (\n        ParisToShanghaiAtTime15k.header_withdrawals_required(block_number=0, timestamp=14_999)\n        is False\n    )\n    assert (\n        ParisToShanghaiAtTime15k.header_withdrawals_required(block_number=0, timestamp=15_000)\n        is True\n    )\n\n    assert (\n        ParisToShanghaiAtTime15k.engine_new_payload_version(block_number=0, timestamp=14_999) == 1\n    )\n    assert (\n        ParisToShanghaiAtTime15k.engine_new_payload_version(block_number=0, timestamp=15_000) == 2\n    )\n\n    assert BerlinToLondonAt5.fork_at(block_number=4, timestamp=0) == Berlin\n    assert BerlinToLondonAt5.fork_at(block_number=5, timestamp=0) == London\n    assert ParisToShanghaiAtTime15k.fork_at(block_number=0, timestamp=14_999) == Paris\n    assert ParisToShanghaiAtTime15k.fork_at(block_number=0, timestamp=15_000) == Shanghai\n    assert ParisToShanghaiAtTime15k.fork_at() == Paris\n    assert ParisToShanghaiAtTime15k.fork_at(block_number=10_000_000, timestamp=14_999) == Paris\n\n\ndef test_forks_from() -> None:  # noqa: D103\n    assert forks_from(Paris)[0] == Paris\n    assert forks_from(Paris)[-1] == LAST_DEPLOYED\n    assert forks_from(Paris, deployed_only=True)[0] == Paris\n    assert forks_from(Paris, deployed_only=True)[-1] == LAST_DEPLOYED\n    assert forks_from(Paris, deployed_only=False)[0] == Paris\n    # Too flaky\n    # assert forks_from(Paris, deployed_only=False)[-1] == LAST_DEVELOPMENT\n\n\ndef test_forks() -> None:\n    \"\"\"Test fork utilities.\"\"\"\n    assert forks_from_until(Berlin, Berlin) == [Berlin]\n    assert forks_from_until(Berlin, London) == [Berlin, London]\n    assert forks_from_until(Berlin, Paris) == [\n        Berlin,\n        London,\n        Paris,\n    ]\n\n    # Test fork names\n    assert London.name() == \"London\"\n    assert ParisToShanghaiAtTime15k.name() == \"ParisToShanghaiAtTime15k\"\n    assert f\"{London}\" == \"London\"\n    assert f\"{ParisToShanghaiAtTime15k}\" == \"ParisToShanghaiAtTime15k\"\n\n    # Merge name will be changed to paris, but we need to check the inheriting\n    # fork name is still the default\n    assert Paris.transition_tool_name() == \"Merge\"\n    assert Shanghai.transition_tool_name() == \"Shanghai\"\n    assert f\"{Paris}\" == \"Paris\"\n    assert f\"{Shanghai}\" == \"Shanghai\"\n    assert f\"{ParisToShanghaiAtTime15k}\" == \"ParisToShanghaiAtTime15k\"\n\n    # Test some fork properties\n    assert Berlin.header_base_fee_required(block_number=0, timestamp=0) is False\n    assert London.header_base_fee_required(block_number=0, timestamp=0) is True\n    assert Paris.header_base_fee_required(block_number=0, timestamp=0) is True\n    # Default values of normal forks if the genesis block\n    assert Paris.header_base_fee_required() is True\n\n    # Transition forks too\n    assert (\n        cast(Fork, BerlinToLondonAt5).header_base_fee_required(block_number=4, timestamp=0)\n        is False\n    )\n    assert (\n        cast(Fork, BerlinToLondonAt5).header_base_fee_required(block_number=5, timestamp=0) is True\n    )\n    assert (\n        cast(Fork, ParisToShanghaiAtTime15k).header_withdrawals_required(\n            block_number=0, timestamp=14_999\n        )\n        is False\n    )\n    assert (\n        cast(Fork, ParisToShanghaiAtTime15k).header_withdrawals_required(\n            block_number=0, timestamp=15_000\n        )\n        is True\n    )\n    assert cast(Fork, ParisToShanghaiAtTime15k).header_withdrawals_required() is True\n\n\nclass ForkInPydanticModel(BaseModel):\n    \"\"\"Fork in pydantic model.\"\"\"\n\n    fork_1: Fork\n    fork_2: Fork\n    fork_3: Fork | None\n\n\ndef test_fork_in_pydantic_model() -> None:\n    \"\"\"Test fork in pydantic model.\"\"\"\n    model = ForkInPydanticModel(fork_1=Paris, fork_2=ParisToShanghaiAtTime15k, fork_3=None)\n    assert model.model_dump() == {\n        \"fork_1\": \"Paris\",\n        \"fork_2\": \"ParisToShanghaiAtTime15k\",\n        \"fork_3\": None,\n    }\n    assert (\n        model.model_dump_json()\n        == '{\"fork_1\":\"Paris\",\"fork_2\":\"ParisToShanghaiAtTime15k\",\"fork_3\":null}'\n    )\n    model = ForkInPydanticModel.model_validate_json(\n        '{\"fork_1\": \"Paris\", \"fork_2\": \"ParisToShanghaiAtTime15k\", \"fork_3\": null}'\n    )\n    assert model.fork_1 == Paris\n    assert model.fork_2 == ParisToShanghaiAtTime15k\n    assert model.fork_3 is None\n\n\ndef test_fork_comparison() -> None:\n    \"\"\"Test fork comparison operators.\"\"\"\n    # Test fork comparison\n    assert Paris > Berlin\n    assert not Berlin > Paris\n    assert Berlin < Paris\n    assert not Paris < Berlin\n\n    assert Paris >= Berlin\n    assert not Berlin >= Paris\n    assert Berlin <= Paris\n    assert not Paris <= Berlin\n\n    assert London > Berlin\n    assert not Berlin > London\n    assert Berlin < London\n    assert not London < Berlin\n\n    assert London >= Berlin\n    assert not Berlin >= London\n    assert Berlin <= London\n    assert not London <= Berlin\n\n    assert Berlin >= Berlin\n    assert Berlin <= Berlin\n    assert not Berlin > Berlin\n    assert not Berlin < Berlin\n\n    fork = Berlin\n    assert fork >= Berlin\n    assert fork <= Berlin\n    assert not fork > Berlin\n    assert not fork < Berlin\n    assert fork == Berlin\n\n\ndef test_transition_fork_comparison() -> None:\n    \"\"\"\n    Test comparing to a transition fork.\n\n    The comparison logic is based on the logic we use to generate the tests.\n\n    E.g. given transition fork A->B, when filling, and given the from/until\n    markers, we expect the following logic:\n\n    Marker    Comparison   A->B Included\n    --------- ------------ ---------------\n    From A    fork >= A    True\n    Until A   fork <= A    False\n    From B    fork >= B    True\n    Until B   fork <= B    True\n    \"\"\"\n    assert BerlinToLondonAt5 >= Berlin\n    assert not BerlinToLondonAt5 <= Berlin\n    assert BerlinToLondonAt5 >= London\n    assert BerlinToLondonAt5 <= London\n\n    # Comparisons between transition forks is done against the `transitions_to`\n    # fork\n    assert BerlinToLondonAt5 < ParisToShanghaiAtTime15k\n    assert ParisToShanghaiAtTime15k > BerlinToLondonAt5\n    assert BerlinToLondonAt5 == BerlinToLondonAt5\n    assert BerlinToLondonAt5 != ParisToShanghaiAtTime15k\n    assert BerlinToLondonAt5 <= ParisToShanghaiAtTime15k\n    assert ParisToShanghaiAtTime15k >= BerlinToLondonAt5\n\n    assert sorted(\n        {\n            PragueToOsakaAtTime15k,\n            CancunToPragueAtTime15k,\n            ParisToShanghaiAtTime15k,\n            ShanghaiToCancunAtTime15k,\n            BerlinToLondonAt5,\n        }\n    ) == [\n        BerlinToLondonAt5,\n        ParisToShanghaiAtTime15k,\n        ShanghaiToCancunAtTime15k,\n        CancunToPragueAtTime15k,\n        PragueToOsakaAtTime15k,\n    ]\n\n\ndef test_get_forks() -> None:  # noqa: D103\n    all_forks = get_forks()\n    assert all_forks[0] == FIRST_DEPLOYED\n    # assert all_forks[-1] == LAST_DEVELOPMENT  # Too flaky\n\n\ndef test_deployed_forks() -> None:  # noqa: D103\n    deployed_forks = get_deployed_forks()\n    assert deployed_forks[0] == FIRST_DEPLOYED\n    assert deployed_forks[-1] == LAST_DEPLOYED\n\n\nclass PrePreAllocFork(Shanghai):\n    \"\"\"Dummy fork used for testing.\"\"\"\n\n    @classmethod\n    def pre_allocation(cls, *, block_number: int = 0, timestamp: int = 0) -> Dict:\n        \"\"\"Return some starting point for allocation.\"\"\"\n        del block_number, timestamp\n        return {\"test\": \"test\"}\n\n\nclass PreAllocFork(PrePreAllocFork):\n    \"\"\"Dummy fork used for testing.\"\"\"\n\n    @classmethod\n    def pre_allocation(cls, *, block_number: int = 0, timestamp: int = 0) -> Dict:\n        \"\"\"Add allocation to the pre-existing one from previous fork.\"\"\"\n        del block_number, timestamp\n        return {\"test2\": \"test2\"} | super(PreAllocFork, cls).pre_allocation()\n\n\n@transition_fork(to_fork=PreAllocFork, at_timestamp=15_000)\nclass PreAllocTransitionFork(PrePreAllocFork):\n    \"\"\"PrePreAllocFork to PreAllocFork transition at Timestamp 15k.\"\"\"\n\n    pass\n\n\ndef test_pre_alloc() -> None:  # noqa: D103\n    assert PrePreAllocFork.pre_allocation() == {\"test\": \"test\"}\n    assert PreAllocFork.pre_allocation() == {\"test\": \"test\", \"test2\": \"test2\"}\n    assert PreAllocTransitionFork.pre_allocation() == {\n        \"test\": \"test\",\n        \"test2\": \"test2\",\n    }\n    assert PreAllocTransitionFork.pre_allocation() == {\n        \"test\": \"test\",\n        \"test2\": \"test2\",\n    }\n\n\ndef test_precompiles() -> None:  # noqa: D103\n    Cancun.precompiles() == list(range(11))[1:]  # noqa: B015\n\n\ndef test_tx_types() -> None:  # noqa: D103\n    Cancun.tx_types() == list(range(4))  # noqa: B015\n\n\n@pytest.mark.parametrize(\n    \"fork\",\n    [\n        pytest.param(Berlin, id=\"Berlin\"),\n        pytest.param(Istanbul, id=\"Istanbul\"),\n        pytest.param(Homestead, id=\"Homestead\"),\n        pytest.param(Frontier, id=\"Frontier\"),\n    ],\n)\n@pytest.mark.parametrize(\n    \"calldata\",\n    [\n        pytest.param(b\"\\0\", id=\"zero-data\"),\n        pytest.param(b\"\\1\", id=\"non-zero-data\"),\n    ],\n)\n@pytest.mark.parametrize(\n    \"create_tx\",\n    [False, True],\n)\ndef test_tx_intrinsic_gas_functions(fork: Fork, calldata: bytes, create_tx: bool) -> None:  # noqa: D103\n    intrinsic_gas = 21_000\n    if calldata == b\"\\0\":\n        intrinsic_gas += 4\n    else:\n        if fork >= Istanbul:\n            intrinsic_gas += 16\n        else:\n            intrinsic_gas += 68\n\n    if create_tx:\n        if fork >= Homestead:\n            intrinsic_gas += 32000\n        intrinsic_gas += 2\n    assert (\n        fork.transaction_intrinsic_cost_calculator()(\n            calldata=calldata,\n            contract_creation=create_tx,\n        )\n        == intrinsic_gas\n    )\n\n\nclass FutureFork(Osaka):\n    \"\"\"\n    Dummy fork used for testing.\n\n    Contains no changes to the blob parameters from the parent fork in order to\n    confirm that it's added to the blob schedule even if it doesn't have any\n    changes.\n    \"\"\"\n\n    pass\n\n\n@pytest.mark.parametrize(\n    \"fork,expected_schedule\",\n    [\n        pytest.param(Frontier, None, id=\"Frontier\"),\n        pytest.param(\n            Cancun,\n            {\n                \"Cancun\": {\n                    \"target_blobs_per_block\": 3,\n                    \"max_blobs_per_block\": 6,\n                    \"baseFeeUpdateFraction\": 3338477,\n                },\n            },\n            id=\"Cancun\",\n        ),\n        pytest.param(\n            Prague,\n            {\n                \"Cancun\": {\n                    \"target_blobs_per_block\": 3,\n                    \"max_blobs_per_block\": 6,\n                    \"baseFeeUpdateFraction\": 3338477,\n                },\n                \"Prague\": {\n                    \"target_blobs_per_block\": 6,\n                    \"max_blobs_per_block\": 9,\n                    \"baseFeeUpdateFraction\": 5007716,\n                },\n            },\n            id=\"Prague\",\n        ),\n        pytest.param(\n            Osaka,\n            {\n                \"Cancun\": {\n                    \"target_blobs_per_block\": 3,\n                    \"max_blobs_per_block\": 6,\n                    \"baseFeeUpdateFraction\": 3338477,\n                },\n                \"Prague\": {\n                    \"target_blobs_per_block\": 6,\n                    \"max_blobs_per_block\": 9,\n                    \"baseFeeUpdateFraction\": 5007716,\n                },\n                \"Osaka\": {\n                    \"target_blobs_per_block\": 6,\n                    \"max_blobs_per_block\": 9,\n                    \"baseFeeUpdateFraction\": 5007716,\n                },\n            },\n            id=\"Osaka\",\n        ),\n        pytest.param(\n            CancunToPragueAtTime15k,\n            {\n                \"Cancun\": {\n                    \"target_blobs_per_block\": 3,\n                    \"max_blobs_per_block\": 6,\n                    \"baseFeeUpdateFraction\": 3338477,\n                },\n                \"Prague\": {\n                    \"target_blobs_per_block\": 6,\n                    \"max_blobs_per_block\": 9,\n                    \"baseFeeUpdateFraction\": 5007716,\n                },\n            },\n            id=\"CancunToPragueAtTime15k\",\n        ),\n        pytest.param(\n            PragueToOsakaAtTime15k,\n            {\n                \"Cancun\": {\n                    \"target_blobs_per_block\": 3,\n                    \"max_blobs_per_block\": 6,\n                    \"baseFeeUpdateFraction\": 3338477,\n                },\n                \"Prague\": {\n                    \"target_blobs_per_block\": 6,\n                    \"max_blobs_per_block\": 9,\n                    \"baseFeeUpdateFraction\": 5007716,\n                },\n                \"Osaka\": {\n                    \"target_blobs_per_block\": 6,\n                    \"max_blobs_per_block\": 9,\n                    \"baseFeeUpdateFraction\": 5007716,\n                },\n            },\n            id=\"PragueToOsakaAtTime15k\",\n        ),\n        pytest.param(\n            FutureFork,\n            {\n                \"Cancun\": {\n                    \"target_blobs_per_block\": 3,\n                    \"max_blobs_per_block\": 6,\n                    \"baseFeeUpdateFraction\": 3338477,\n                },\n                \"Prague\": {\n                    \"target_blobs_per_block\": 6,\n                    \"max_blobs_per_block\": 9,\n                    \"baseFeeUpdateFraction\": 5007716,\n                },\n                \"Osaka\": {\n                    \"target_blobs_per_block\": 6,\n                    \"max_blobs_per_block\": 9,\n                    \"baseFeeUpdateFraction\": 5007716,\n                },\n                \"FutureFork\": {\n                    \"target_blobs_per_block\": 6,\n                    \"max_blobs_per_block\": 9,\n                    \"baseFeeUpdateFraction\": 5007716,\n                },\n            },\n            id=\"FutureFork\",\n        ),\n    ],\n)\ndef test_blob_schedules(fork: Fork, expected_schedule: Dict | None) -> None:\n    \"\"\"Test blob schedules for different forks.\"\"\"\n    if expected_schedule is None:\n        assert fork.blob_schedule() is None\n    else:\n        assert fork.blob_schedule() == BlobSchedule(**expected_schedule)\n\n\ndef test_bpo_fork() -> None:  # noqa: D103\n    assert Osaka.bpo_fork() is False\n    assert BPO1.bpo_fork() is True\n    assert BPO2.bpo_fork() is True\n    assert BPO3.bpo_fork() is True\n    assert BPO4.bpo_fork() is True\n    assert OsakaToBPO1AtTime15k.bpo_fork() is True\n    assert BPO1ToBPO2AtTime15k.bpo_fork() is True\n    assert BPO2ToBPO3AtTime15k.bpo_fork() is True\n    assert BPO3ToBPO4AtTime15k.bpo_fork() is True\n\n\ndef test_fork_adapters() -> None:  # noqa: D103\n    assert Osaka == ForkAdapter.validate_python(\"Osaka\")\n    assert Osaka == ForkOrNoneAdapter.validate_python(\"Osaka\")\n    assert ForkOrNoneAdapter.validate_python(None) is None\n    assert {Osaka, Prague} == ForkSetAdapter.validate_python(\"Osaka, Prague\")\n    assert {Osaka, Prague} == ForkSetAdapter.validate_python(\"osaka, Prague\")\n    assert {Osaka, Prague} == ForkSetAdapter.validate_python({\"osaka\", \"Prague\"})\n    assert {Osaka} == ForkSetAdapter.validate_python(\"Osaka\")\n    assert {Osaka} == ForkSetAdapter.validate_python({Osaka})\n    assert set() == ForkSetAdapter.validate_python(\"\")\n"
  },
  {
    "path": "src/ethereum_test_forks/transition_base_fork.py",
    "content": "\"\"\"Base objects used to define transition forks.\"\"\"\n\nfrom inspect import signature\nfrom typing import Any, Callable, List, Type\n\nfrom .base_fork import BaseFork\n\nALWAYS_TRANSITIONED_BLOCK_NUMBER = 10_000\nALWAYS_TRANSITIONED_BLOCK_TIMESTAMP = 10_000_000\n\n\nclass TransitionBaseClass:\n    \"\"\"Base class for transition forks.\"\"\"\n\n    @classmethod\n    def transitions_to(cls) -> Type[BaseFork]:\n        \"\"\"Return fork where the transition ends.\"\"\"\n        raise Exception(\"Not implemented\")\n\n    @classmethod\n    def transitions_from(cls) -> Type[BaseFork]:\n        \"\"\"Return fork where the transition starts.\"\"\"\n        raise Exception(\"Not implemented\")\n\n\ndef base_fork_abstract_methods() -> List[str]:\n    \"\"\"\n    Return list of all abstract methods that must be implemented by a fork.\n    \"\"\"\n    return list(BaseFork.__abstractmethods__)\n\n\ndef transition_fork(\n    to_fork: Type[BaseFork], at_block: int = 0, at_timestamp: int = 0\n) -> Callable[[Type[BaseFork]], Type[TransitionBaseClass]]:\n    \"\"\"Mark a class as a transition fork.\"\"\"\n\n    def decorator(cls: Type[Any]) -> Type[TransitionBaseClass]:\n        transition_name = cls.__name__\n        from_fork = cls.__bases__[0]\n        assert issubclass(from_fork, BaseFork)\n\n        class NewTransitionClass(\n            cls,\n            TransitionBaseClass,\n            BaseFork,\n            transition_tool_name=cls._transition_tool_name,\n            solc_name=cls._solc_name,\n            ignore=cls._ignore,\n        ):\n            @classmethod\n            def transitions_to(cls) -> Type[BaseFork]:\n                return to_fork\n\n            @classmethod\n            def transitions_from(cls) -> Type[BaseFork]:\n                return from_fork\n\n        NewTransitionClass.name = lambda: transition_name  # type: ignore\n\n        def make_transition_method(\n            base_method: Callable[..., Any],\n            from_fork_method: Callable[..., Any],\n            to_fork_method: Callable[..., Any],\n        ) -> classmethod:\n            base_method_parameters = signature(base_method).parameters\n\n            def transition_method(\n                cls: Type[Any],\n                block_number: int = ALWAYS_TRANSITIONED_BLOCK_NUMBER,\n                timestamp: int = ALWAYS_TRANSITIONED_BLOCK_TIMESTAMP,\n            ) -> Any:\n                del cls\n\n                kwargs = {}\n                if \"block_number\" in base_method_parameters:\n                    kwargs[\"block_number\"] = block_number\n                if \"timestamp\" in base_method_parameters:\n                    kwargs[\"timestamp\"] = timestamp\n\n                if getattr(base_method, \"__prefer_transition_to_method__\", False):\n                    return to_fork_method(**kwargs)\n                return (\n                    to_fork_method(**kwargs)\n                    if block_number >= at_block and timestamp >= at_timestamp\n                    else from_fork_method(**kwargs)\n                )\n\n            return classmethod(transition_method)\n\n        for method_name in base_fork_abstract_methods() + [\"bpo_fork\"]:\n            setattr(\n                NewTransitionClass,\n                method_name,\n                make_transition_method(\n                    getattr(BaseFork, method_name),\n                    getattr(from_fork, method_name),\n                    getattr(to_fork, method_name),\n                ),\n            )\n\n        NewTransitionClass.transitions_to = lambda: to_fork  # type: ignore\n        NewTransitionClass.transitions_from = lambda: from_fork  # type: ignore\n        NewTransitionClass.fork_at = lambda block_number=0, timestamp=0: (  # type: ignore\n            to_fork if block_number >= at_block and timestamp >= at_timestamp else from_fork\n        )\n\n        return NewTransitionClass\n\n    return decorator\n"
  },
  {
    "path": "src/ethereum_test_rpc/__init__.py",
    "content": "\"\"\"\nJSON-RPC methods and helper functions for EEST consume based hive simulators.\n\"\"\"\n\nfrom .rpc import (\n    AdminRPC,\n    BlockNumberType,\n    DebugRPC,\n    EngineRPC,\n    EthRPC,\n    NetRPC,\n    SendTransactionExceptionError,\n)\nfrom .rpc_types import (\n    BlobAndProofV1,\n    BlobAndProofV2,\n    EthConfigResponse,\n    ForkConfig,\n    ForkConfigBlobSchedule,\n)\n\n__all__ = [\n    \"AdminRPC\",\n    \"BlobAndProofV1\",\n    \"BlobAndProofV2\",\n    \"BlockNumberType\",\n    \"DebugRPC\",\n    \"EngineRPC\",\n    \"EthConfigResponse\",\n    \"EthRPC\",\n    \"ForkConfig\",\n    \"ForkConfigBlobSchedule\",\n    \"NetRPC\",\n    \"SendTransactionExceptionError\",\n]\n"
  },
  {
    "path": "src/ethereum_test_rpc/rpc.py",
    "content": "\"\"\"\nJSON-RPC methods and helper functions for EEST consume based hive simulators.\n\"\"\"\n\nimport logging\nimport os\nimport time\nfrom itertools import count\nfrom pprint import pprint\nfrom typing import Any, ClassVar, Dict, List, Literal\n\nimport requests\nfrom jwt import encode\nfrom pydantic import ValidationError\nfrom tenacity import (\n    before_sleep_log,\n    retry,\n    retry_if_exception_type,\n    stop_after_attempt,\n    wait_exponential,\n)\n\nfrom ethereum_test_base_types import Address, Bytes, Hash, to_json\nfrom ethereum_test_types import Transaction\nfrom pytest_plugins.custom_logging import get_logger\n\nfrom .rpc_types import (\n    EthConfigResponse,\n    ForkchoiceState,\n    ForkchoiceUpdateResponse,\n    GetBlobsResponse,\n    GetPayloadResponse,\n    JSONRPCError,\n    PayloadAttributes,\n    PayloadStatus,\n    TransactionByHashResponse,\n)\n\nlogger = get_logger(__name__)\nBlockNumberType = int | Literal[\"latest\", \"earliest\", \"pending\"]\n\n\nclass SendTransactionExceptionError(Exception):\n    \"\"\"\n    Represent an exception that is raised when a transaction fails to be sent.\n    \"\"\"\n\n    tx: Transaction | None = None\n    tx_rlp: Bytes | None = None\n\n    def __init__(\n        self, *args: Any, tx: Transaction | None = None, tx_rlp: Bytes | None = None\n    ) -> None:\n        \"\"\"\n        Initialize SendTransactionExceptionError class with the given\n        transaction.\n        \"\"\"\n        super().__init__(*args)\n        self.tx = tx\n        self.tx_rlp = tx_rlp\n\n    def __str__(self) -> str:\n        \"\"\"Return string representation of the exception.\"\"\"\n        base = super().__str__()\n        if self.tx is not None:\n            return f\"{base} Transaction={self.tx.model_dump_json()}\"\n        elif self.tx_rlp is not None:\n            return f\"{base} Transaction RLP={self.tx_rlp.hex()}\"\n        return base\n\n\nclass BaseRPC:\n    \"\"\"\n    Represents a base RPC class for every RPC call used within EEST based hive\n    simulators.\n    \"\"\"\n\n    namespace: ClassVar[str]\n    response_validation_context: Any | None\n\n    def __init__(\n        self,\n        url: str,\n        *,\n        response_validation_context: Any | None = None,\n    ):\n        \"\"\"Initialize BaseRPC class with the given url.\"\"\"\n        self.url = url\n        self.request_id_counter = count(1)\n        self.response_validation_context = response_validation_context\n\n    def __init_subclass__(cls, namespace: str | None = None) -> None:\n        \"\"\"\n        Set namespace of the RPC class to the lowercase of the class name.\n        \"\"\"\n        if namespace is None:\n            namespace = cls.__name__\n            if namespace.endswith(\"RPC\"):\n                namespace = namespace.removesuffix(\"RPC\")\n            namespace = namespace.lower()\n        cls.namespace = namespace\n\n    @retry(\n        retry=retry_if_exception_type((requests.ConnectionError, ConnectionRefusedError)),\n        stop=stop_after_attempt(5),\n        wait=wait_exponential(multiplier=0.5, min=0.5, max=4.0),\n        before_sleep=before_sleep_log(logger, logging.WARNING),\n        reraise=True,\n    )\n    def _make_request(\n        self,\n        url: str,\n        json_payload: dict[str, Any],\n        headers: dict[str, str],\n        timeout: int | None,\n    ) -> requests.Response:\n        \"\"\"\n        Make HTTP POST request with retry logic for connection errors only.\n\n        This method only retries network-level connection failures\n        (ConnectionError, ConnectionRefusedError). HTTP status errors (4xx/5xx)\n        are handled by the caller using response.raise_for_status() WITHOUT\n        retries because:\n        - 4xx errors are client errors (permanent failures, no point retrying)\n        - 5xx errors are server errors that typically indicate\n          application-level issues rather than transient network problems\n        \"\"\"\n        logger.debug(f\"Making HTTP request to {url}, timeout={timeout}\")\n        return requests.post(url, json=json_payload, headers=headers, timeout=timeout)\n\n    def post_request(\n        self,\n        *,\n        method: str,\n        params: List[Any] | None = None,\n        extra_headers: Dict[str, str] | None = None,\n        request_id: int | str | None = None,\n        timeout: int | None = None,\n    ) -> Any:\n        \"\"\"\n        Send JSON-RPC POST request to the client RPC server at port defined in\n        the url.\n        \"\"\"\n        if extra_headers is None:\n            extra_headers = {}\n        if params is None:\n            params = []\n\n        assert self.namespace, \"RPC namespace not set\"\n\n        next_request_id_counter = next(self.request_id_counter)\n        if request_id is None:\n            request_id = next_request_id_counter\n\n        payload = {\n            \"jsonrpc\": \"2.0\",\n            \"method\": f\"{self.namespace}_{method}\",\n            \"params\": params,\n            \"id\": request_id,\n        }\n        base_header = {\n            \"Content-Type\": \"application/json\",\n        }\n        headers = base_header | extra_headers\n\n        logger.debug(\n            f\"Sending RPC request to {self.url}, method={self.namespace}_{method}, \"\n            f\"timeout={timeout}...\"\n        )\n\n        response = self._make_request(self.url, payload, headers, timeout)\n        response.raise_for_status()\n        response_json = response.json()\n\n        if \"error\" in response_json:\n            raise JSONRPCError(**response_json[\"error\"])\n\n        assert \"result\" in response_json, \"RPC response didn't contain a result field\"\n        result = response_json[\"result\"]\n        return result\n\n\nclass EthRPC(BaseRPC):\n    \"\"\"\n    Represents an `eth_X` RPC class for every default ethereum RPC method used\n    within EEST based hive simulators.\n    \"\"\"\n\n    transaction_wait_timeout: int = 60\n    poll_interval: float = 1.0  # how often to poll for tx inclusion\n\n    BlockNumberType = int | Literal[\"latest\", \"earliest\", \"pending\"]\n\n    def __init__(\n        self,\n        *args: Any,\n        transaction_wait_timeout: int = 60,\n        poll_interval: float | None = None,\n        **kwargs: Any,\n    ) -> None:\n        \"\"\"\n        Initialize EthRPC class with the given url and transaction wait\n        timeout.\n        \"\"\"\n        super().__init__(*args, **kwargs)\n        self.transaction_wait_timeout = transaction_wait_timeout\n\n        # Allow overriding via env \"flag\" EEST_POLL_INTERVAL or ctor arg\n        # Priority: ctor arg > env var > default (1.0)\n        env_val = os.getenv(\"EEST_POLL_INTERVAL\")\n        if poll_interval is not None:\n            self.poll_interval = float(poll_interval)\n        elif env_val:\n            try:\n                self.poll_interval = float(env_val)\n            except ValueError:\n                logger.warning(\"Invalid EEST_POLL_INTERVAL=%r; falling back to 1.0s\", env_val)\n                self.poll_interval = 1.0\n        else:\n            self.poll_interval = 1.0\n\n    def config(self, timeout: int | None = None) -> EthConfigResponse | None:\n        \"\"\"\n        `eth_config`: Returns information about a fork configuration of the\n        client.\n        \"\"\"\n        try:\n            response = self.post_request(method=\"config\", timeout=timeout)\n            if response is None:\n                logger.warning(\"eth_config request: failed to get response\")\n                return None\n            return EthConfigResponse.model_validate(\n                response, context=self.response_validation_context\n            )\n        except ValidationError as e:\n            pprint(e.errors())\n            raise e\n        except Exception as e:\n            logger.debug(f\"exception occurred when sending JSON-RPC request: {e}\")\n            raise e\n\n    def chain_id(self) -> int:\n        \"\"\"`eth_chainId`: Returns the current chain id.\"\"\"\n        response = self.post_request(method=\"chainId\", timeout=10)\n        return int(response, 16)\n\n    def get_block_by_number(\n        self, block_number: BlockNumberType = \"latest\", full_txs: bool = True\n    ) -> Any | None:\n        \"\"\"\n        `eth_getBlockByNumber`: Returns information about a block by block\n        number.\n        \"\"\"\n        block = hex(block_number) if isinstance(block_number, int) else block_number\n        params = [block, full_txs]\n        response = self.post_request(method=\"getBlockByNumber\", params=params)\n        return response\n\n    def get_block_by_hash(self, block_hash: Hash, full_txs: bool = True) -> Any | None:\n        \"\"\"`eth_getBlockByHash`: Returns information about a block by hash.\"\"\"\n        params = [f\"{block_hash}\", full_txs]\n        response = self.post_request(method=\"getBlockByHash\", params=params)\n        return response\n\n    def get_balance(self, address: Address, block_number: BlockNumberType = \"latest\") -> int:\n        \"\"\"\n        `eth_getBalance`: Returns the balance of the account of given address.\n        \"\"\"\n        block = hex(block_number) if isinstance(block_number, int) else block_number\n        params = [f\"{address}\", block]\n        response = self.post_request(method=\"getBalance\", params=params)\n        return int(response, 16)\n\n    def get_code(self, address: Address, block_number: BlockNumberType = \"latest\") -> Bytes:\n        \"\"\"`eth_getCode`: Returns code at a given address.\"\"\"\n        block = hex(block_number) if isinstance(block_number, int) else block_number\n        params = [f\"{address}\", block]\n        response = self.post_request(method=\"getCode\", params=params)\n        return Bytes(response)\n\n    def get_transaction_count(\n        self, address: Address, block_number: BlockNumberType = \"latest\"\n    ) -> int:\n        \"\"\"\n        `eth_getTransactionCount`: Returns the number of transactions sent from\n        an address.\n        \"\"\"\n        block = hex(block_number) if isinstance(block_number, int) else block_number\n        params = [f\"{address}\", block]\n        response = self.post_request(method=\"getTransactionCount\", params=params)\n        return int(response, 16)\n\n    def get_transaction_by_hash(self, transaction_hash: Hash) -> TransactionByHashResponse | None:\n        \"\"\"`eth_getTransactionByHash`: Returns transaction details.\"\"\"\n        try:\n            response = self.post_request(\n                method=\"getTransactionByHash\", params=[f\"{transaction_hash}\"]\n            )\n            if response is None:\n                return None\n            return TransactionByHashResponse.model_validate(\n                response, context=self.response_validation_context\n            )\n        except ValidationError as e:\n            pprint(e.errors())\n            raise e\n\n    def get_transaction_receipt(self, transaction_hash: Hash) -> dict[str, Any] | None:\n        \"\"\"\n        `eth_getTransactionReceipt`: Returns transaction receipt.\n\n        Used to get the actual gas used by a transaction for gas validation\n        in benchmark tests.\n        \"\"\"\n        response = self.post_request(\n            method=\"getTransactionReceipt\", params=[f\"{transaction_hash}\"]\n        )\n        return response\n\n    def get_storage_at(\n        self, address: Address, position: Hash, block_number: BlockNumberType = \"latest\"\n    ) -> Hash:\n        \"\"\"\n        `eth_getStorageAt`: Returns the value from a storage position at a\n        given address.\n        \"\"\"\n        block = hex(block_number) if isinstance(block_number, int) else block_number\n        params = [f\"{address}\", f\"{position}\", block]\n        response = self.post_request(method=\"getStorageAt\", params=params)\n        return Hash(response)\n\n    def gas_price(self) -> int:\n        \"\"\"\n        `eth_gasPrice`: Returns the number of transactions sent from an\n        address.\n        \"\"\"\n        response = self.post_request(method=\"gasPrice\")\n        return int(response, 16)\n\n    def send_raw_transaction(\n        self, transaction_rlp: Bytes, request_id: int | str | None = None\n    ) -> Hash:\n        \"\"\"`eth_sendRawTransaction`: Send a transaction to the client.\"\"\"\n        try:\n            response = self.post_request(\n                method=\"sendRawTransaction\",\n                params=[transaction_rlp.hex()],\n                request_id=request_id,\n            )\n            result_hash = Hash(response)\n            assert result_hash is not None\n            return result_hash\n        except Exception as e:\n            raise SendTransactionExceptionError(str(e), tx_rlp=transaction_rlp) from e\n\n    def send_transaction(self, transaction: Transaction) -> Hash:\n        \"\"\"`eth_sendRawTransaction`: Send a transaction to the client.\"\"\"\n        # TODO: is this a copypaste error from above?\n        try:\n            response = self.post_request(\n                method=\"sendRawTransaction\",\n                params=[transaction.rlp().hex()],\n                request_id=transaction.metadata_string(),\n            )\n            result_hash = Hash(response)\n            assert result_hash == transaction.hash\n            assert result_hash is not None\n            return transaction.hash\n        except Exception as e:\n            raise SendTransactionExceptionError(str(e), tx=transaction) from e\n\n    def send_transactions(self, transactions: List[Transaction]) -> List[Hash]:\n        \"\"\"\n        Use `eth_sendRawTransaction` to send a list of transactions to the\n        client.\n        \"\"\"\n        return [self.send_transaction(tx) for tx in transactions]\n\n    def storage_at_keys(\n        self, account: Address, keys: List[Hash], block_number: BlockNumberType = \"latest\"\n    ) -> Dict[Hash, Hash]:\n        \"\"\"\n        Retrieve the storage values for the specified keys at a given address\n        and block number.\n        \"\"\"\n        results: Dict[Hash, Hash] = {}\n        for key in keys:\n            storage_value = self.get_storage_at(account, key, block_number)\n            results[key] = storage_value\n        return results\n\n    def wait_for_transaction(self, transaction: Transaction) -> TransactionByHashResponse:\n        \"\"\"\n        Use `eth_getTransactionByHash` to wait until a transaction is included\n        in a block.\n        \"\"\"\n        tx_hash = transaction.hash\n        start_time = time.time()\n        while True:\n            tx = self.get_transaction_by_hash(tx_hash)\n            if tx is not None and tx.block_number is not None:\n                return tx\n            if (time.time() - start_time) > self.transaction_wait_timeout:\n                break\n            time.sleep(self.poll_interval)\n        raise Exception(\n            f\"Transaction {tx_hash} ({transaction.model_dump_json()}) not included in a \"\n            f\"block after {self.transaction_wait_timeout} seconds\"\n        )\n\n    def wait_for_transactions(\n        self, transactions: List[Transaction]\n    ) -> List[TransactionByHashResponse]:\n        \"\"\"\n        Use `eth_getTransactionByHash` to wait until all transactions in list\n        are included in a block.\n        \"\"\"\n        tx_hashes = [tx.hash for tx in transactions]\n        responses: List[TransactionByHashResponse] = []\n        start_time = time.time()\n        while True:\n            i = 0\n            while i < len(tx_hashes):\n                tx_hash = tx_hashes[i]\n                tx = self.get_transaction_by_hash(tx_hash)\n                if tx is not None and tx.block_number is not None:\n                    responses.append(tx)\n                    tx_hashes.pop(i)\n                else:\n                    i += 1\n            if not tx_hashes:\n                return responses\n            if (time.time() - start_time) > self.transaction_wait_timeout:\n                break\n            time.sleep(self.poll_interval)\n        missing_txs_strings = [\n            f\"{tx.hash} ({tx.model_dump_json()})\" for tx in transactions if tx.hash in tx_hashes\n        ]\n        raise Exception(\n            f\"Transactions {', '.join(missing_txs_strings)} not included in a block \"\n            f\"after {self.transaction_wait_timeout} seconds\"\n        )\n\n    def send_wait_transaction(self, transaction: Transaction) -> Any:\n        \"\"\"Send transaction and waits until it is included in a block.\"\"\"\n        self.send_transaction(transaction)\n        return self.wait_for_transaction(transaction)\n\n    def send_wait_transactions(self, transactions: List[Transaction]) -> List[Any]:\n        \"\"\"\n        Send list of transactions and waits until all of them are included in a\n        block.\n        \"\"\"\n        self.send_transactions(transactions)\n        return self.wait_for_transactions(transactions)\n\n\nclass DebugRPC(EthRPC):\n    \"\"\"\n    Represents an `debug_X` RPC class for every default ethereum RPC method\n    used within EEST based hive simulators.\n    \"\"\"\n\n    def trace_call(self, tr: dict[str, str], block_number: str) -> Any | None:\n        \"\"\"`debug_traceCall`: Returns pre state required for transaction.\"\"\"\n        params = [tr, block_number, {\"tracer\": \"prestateTracer\"}]\n        return self.post_request(method=\"traceCall\", params=params)\n\n\nclass EngineRPC(BaseRPC):\n    \"\"\"\n    Represents an Engine API RPC class for every Engine API method used within\n    EEST based hive simulators.\n    \"\"\"\n\n    jwt_secret: bytes\n\n    def __init__(\n        self,\n        *args: Any,\n        jwt_secret: bytes = b\"secretsecretsecretsecretsecretse\",  # Default secret used in hive\n        **kwargs: Any,\n    ) -> None:\n        \"\"\"Initialize Engine RPC class with the given JWT secret.\"\"\"\n        super().__init__(*args, **kwargs)\n        self.jwt_secret = jwt_secret\n\n    def post_request(\n        self,\n        *,\n        method: str,\n        params: Any | None = None,\n        extra_headers: Dict[str, str] | None = None,\n        request_id: int | str | None = None,\n        timeout: int | None = None,\n    ) -> Any:\n        \"\"\"\n        Send JSON-RPC POST request to the client RPC server at port defined in\n        the url.\n        \"\"\"\n        if extra_headers is None:\n            extra_headers = {}\n        jwt_token = encode(\n            {\"iat\": int(time.time())},\n            self.jwt_secret,\n            algorithm=\"HS256\",\n        )\n        extra_headers = {\n            \"Authorization\": f\"Bearer {jwt_token}\",\n        } | extra_headers\n\n        return super().post_request(\n            method=method,\n            params=params,\n            extra_headers=extra_headers,\n            timeout=timeout,\n            request_id=request_id,\n        )\n\n    def new_payload(self, *params: Any, version: int) -> PayloadStatus:\n        \"\"\"\n        `engine_newPayloadVX`: Attempts to execute the given payload on an\n        execution client.\n        \"\"\"\n        method = f\"newPayloadV{version}\"\n        params_list = [to_json(param) for param in params]\n\n        return PayloadStatus.model_validate(\n            self.post_request(method=method, params=params_list),\n            context=self.response_validation_context,\n        )\n\n    def forkchoice_updated(\n        self,\n        forkchoice_state: ForkchoiceState,\n        payload_attributes: PayloadAttributes | None = None,\n        *,\n        version: int,\n    ) -> ForkchoiceUpdateResponse:\n        \"\"\"\n        `engine_forkchoiceUpdatedVX`: Updates the forkchoice state of the\n        execution client.\n        \"\"\"\n        method = f\"forkchoiceUpdatedV{version}\"\n\n        if payload_attributes is None:\n            params = [to_json(forkchoice_state), None]\n        else:\n            params = [to_json(forkchoice_state), to_json(payload_attributes)]\n\n        return ForkchoiceUpdateResponse.model_validate(\n            self.post_request(\n                method=method,\n                params=params,\n            ),\n            context=self.response_validation_context,\n        )\n\n    def get_payload(\n        self,\n        payload_id: Bytes,\n        *,\n        version: int,\n    ) -> GetPayloadResponse:\n        \"\"\"\n        `engine_getPayloadVX`: Retrieves a payload that was requested through\n        `engine_forkchoiceUpdatedVX`.\n        \"\"\"\n        method = f\"getPayloadV{version}\"\n\n        return GetPayloadResponse.model_validate(\n            self.post_request(\n                method=method,\n                params=[f\"{payload_id}\"],\n            ),\n            context=self.response_validation_context,\n        )\n\n    def get_blobs(\n        self,\n        versioned_hashes: List[Hash],\n        *,\n        version: int,\n    ) -> GetBlobsResponse | None:\n        \"\"\"\n        `engine_getBlobsVX`: Retrieves blobs from an execution layers tx pool.\n        \"\"\"\n        method = f\"getBlobsV{version}\"\n        params = [f\"{h}\" for h in versioned_hashes]\n\n        response = self.post_request(\n            method=method,\n            params=[params],\n        )\n        if response is None:  # for tests that request non-existing blobs\n            logger.debug(\"get_blobs response received but it has value: None\")\n            return None\n\n        return GetBlobsResponse.model_validate(\n            response,\n            context=self.response_validation_context,\n        )\n\n\nclass NetRPC(BaseRPC):\n    \"\"\"Represents a net RPC class for network-related RPC calls.\"\"\"\n\n    def peer_count(self) -> int:\n        \"\"\"`net_peerCount`: Get the number of peers connected to the client.\"\"\"\n        response = self.post_request(method=\"peerCount\")\n        return int(response, 16)  # hex -> int\n\n\nclass AdminRPC(BaseRPC):\n    \"\"\"Represents an admin RPC class for administrative RPC calls.\"\"\"\n\n    def add_peer(self, enode: str) -> bool:\n        \"\"\"`admin_addPeer`: Add a peer by enode URL.\"\"\"\n        return self.post_request(method=\"addPeer\", params=[enode])\n"
  },
  {
    "path": "src/ethereum_test_rpc/rpc_types.py",
    "content": "\"\"\"Types used in the RPC module for `eth` and `engine` namespaces' requests.\"\"\"\n\nimport json\nfrom binascii import crc32\nfrom enum import Enum\nfrom hashlib import sha256\nfrom typing import Annotated, Any, Dict, List, Self\n\nfrom pydantic import AliasChoices, Field, model_validator\n\nfrom ethereum_test_base_types import (\n    Address,\n    Bytes,\n    CamelModel,\n    EthereumTestRootModel,\n    ForkBlobSchedule,\n    ForkHash,\n    Hash,\n    HexNumber,\n)\nfrom ethereum_test_exceptions import (\n    BlockException,\n    ExceptionMapperValidator,\n    ExceptionWithMessage,\n    TransactionException,\n    UndefinedException,\n)\nfrom ethereum_test_fixtures.blockchain import FixtureExecutionPayload\nfrom ethereum_test_types import EOA, Transaction, Withdrawal\n\n\nclass JSONRPCError(Exception):\n    \"\"\"Model to parse a JSON RPC error response.\"\"\"\n\n    code: int\n    message: str\n    data: str | None\n\n    def __init__(self, code: int | str, message: str, data: str | None = None) -> None:\n        \"\"\"Initialize the JSONRPCError.\"\"\"\n        self.code = int(code)\n        self.message = message\n        self.data = data\n\n    def __str__(self) -> str:\n        \"\"\"Return string representation of the JSONRPCError.\"\"\"\n        if self.data is not None:\n            return f\"JSONRPCError(code={self.code}, message={self.message}, data={self.data})\"\n\n        return f\"JSONRPCError(code={self.code}, message={self.message})\"\n\n\nclass TransactionByHashResponse(Transaction):\n    \"\"\"Represents the response of a transaction by hash request.\"\"\"\n\n    block_hash: Hash | None = None\n    block_number: HexNumber | None = None\n\n    gas_limit: HexNumber = Field(HexNumber(21_000), alias=\"gas\")\n    transaction_hash: Hash = Field(..., alias=\"hash\")\n    sender: EOA | None = Field(None, alias=\"from\")\n\n    # The to field can have different names in different clients, so we use\n    # AliasChoices.\n    to: Address | None = Field(..., validation_alias=AliasChoices(\"to_address\", \"to\", \"toAddress\"))\n\n    v: HexNumber = Field(0, validation_alias=AliasChoices(\"v\", \"yParity\"))  # type: ignore\n\n    @model_validator(mode=\"before\")\n    @classmethod\n    def adapt_clients_response(cls, data: Any) -> Any:\n        \"\"\"\n        Perform modifications necessary to adapt the response returned by\n        clients so it can be parsed by our model.\n        \"\"\"\n        if isinstance(data, dict):\n            if \"gasPrice\" in data and \"maxFeePerGas\" in data:\n                # Keep only one of the gas price fields.\n                del data[\"gasPrice\"]\n        return data\n\n    def model_post_init(self, __context: Any) -> None:\n        \"\"\"\n        Check that the transaction hash returned by the client matches the one\n        calculated by us.\n        \"\"\"\n        Transaction.model_post_init(self, __context)\n        assert self.transaction_hash == self.hash\n\n\nclass ForkchoiceState(CamelModel):\n    \"\"\"Represents the forkchoice state of the beacon chain.\"\"\"\n\n    head_block_hash: Hash = Field(Hash(0))\n    safe_block_hash: Hash = Field(Hash(0))\n    finalized_block_hash: Hash = Field(Hash(0))\n\n\nclass PayloadStatusEnum(str, Enum):\n    \"\"\"Represents the status of a payload after execution.\"\"\"\n\n    VALID = \"VALID\"\n    INVALID = \"INVALID\"\n    SYNCING = \"SYNCING\"\n    ACCEPTED = \"ACCEPTED\"\n    INVALID_BLOCK_HASH = \"INVALID_BLOCK_HASH\"\n\n\nclass BlockTransactionExceptionWithMessage(\n    ExceptionWithMessage[BlockException | TransactionException]  # type: ignore\n):\n    \"\"\"Exception returned from the execution client with a message.\"\"\"\n\n    pass\n\n\nclass PayloadStatus(CamelModel):\n    \"\"\"Represents the status of a payload after execution.\"\"\"\n\n    status: PayloadStatusEnum\n    latest_valid_hash: Hash | None\n    validation_error: (\n        Annotated[\n            BlockTransactionExceptionWithMessage | UndefinedException, ExceptionMapperValidator\n        ]\n        | None\n    )\n\n\nclass ForkchoiceUpdateResponse(CamelModel):\n    \"\"\"Represents the response of a forkchoice update.\"\"\"\n\n    payload_status: PayloadStatus\n    payload_id: Bytes | None\n\n\nclass PayloadAttributes(CamelModel):\n    \"\"\"Represents the attributes of a payload.\"\"\"\n\n    timestamp: HexNumber\n    prev_randao: Hash\n    suggested_fee_recipient: Address\n    withdrawals: List[Withdrawal] | None = None\n    parent_beacon_block_root: Hash | None = None\n\n\nclass BlobsBundle(CamelModel):\n    \"\"\"Represents the bundle of blobs.\"\"\"\n\n    commitments: List[Bytes]\n    proofs: List[Bytes]\n    blobs: List[Bytes]\n\n    def blob_versioned_hashes(self, versioned_hash_version: int = 1) -> List[Hash]:\n        \"\"\"Return versioned hashes of the blobs.\"\"\"\n        versioned_hashes: List[Hash] = []\n        for commitment in self.commitments:\n            commitment_hash = sha256(commitment).digest()\n            versioned_hash = Hash(bytes([versioned_hash_version]) + commitment_hash[1:])\n            versioned_hashes.append(versioned_hash)\n        return versioned_hashes\n\n\nclass BlobAndProofV1(CamelModel):\n    \"\"\"Represents a blob and single-proof structure (< Osaka).\"\"\"\n\n    blob: Bytes\n    proof: Bytes\n\n\nclass BlobAndProofV2(CamelModel):\n    \"\"\"Represents a blob and cell proof structure (>= Osaka).\"\"\"\n\n    blob: Bytes\n    proofs: List[Bytes]\n\n\nclass GetPayloadResponse(CamelModel):\n    \"\"\"Represents the response of a get payload request.\"\"\"\n\n    execution_payload: FixtureExecutionPayload\n    blobs_bundle: BlobsBundle | None = None\n    execution_requests: List[Bytes] | None = None\n\n\nclass GetBlobsResponse(EthereumTestRootModel[List[BlobAndProofV1 | BlobAndProofV2 | None]]):\n    \"\"\"Represents the response of a get blobs request.\"\"\"\n\n    root: List[BlobAndProofV1 | BlobAndProofV2 | None]\n\n    def __len__(self) -> int:\n        \"\"\"Return the number of blobs in the response.\"\"\"\n        return len(self.root)\n\n    def __getitem__(self, index: int) -> BlobAndProofV1 | BlobAndProofV2 | None:\n        \"\"\"Return the blob at the given index.\"\"\"\n        return self.root[index]\n\n\nclass ForkConfigBlobSchedule(CamelModel):\n    \"\"\"Representation of the blob schedule of a given fork.\"\"\"\n\n    target_blobs_per_block: int = Field(..., alias=\"target\")\n    max_blobs_per_block: int = Field(..., alias=\"max\")\n    base_fee_update_fraction: int\n\n    @classmethod\n    def from_fork_blob_schedule(cls, fork_blob_schedule: ForkBlobSchedule) -> Self:\n        \"\"\"Create a ForkConfigBlobSchedule from a ForkBlobSchedule.\"\"\"\n        return cls(\n            target_blobs_per_block=fork_blob_schedule.target_blobs_per_block,\n            max_blobs_per_block=fork_blob_schedule.max_blobs_per_block,\n            base_fee_update_fraction=fork_blob_schedule.base_fee_update_fraction,\n        )\n\n\nclass ForkConfig(CamelModel):\n    \"\"\"Current or next fork config information.\"\"\"\n\n    activation_time: int\n    blob_schedule: ForkConfigBlobSchedule | None = None\n    chain_id: HexNumber\n    fork_id: ForkHash\n    precompiles: Dict[str, Address]\n    system_contracts: Dict[str, Address]\n\n    def get_hash(self) -> ForkHash:\n        \"\"\"Return the hash of the fork config.\"\"\"\n        obj = self.model_dump(mode=\"json\", by_alias=True, exclude_none=True)\n        return ForkHash(crc32(json.dumps(obj, sort_keys=True, separators=(\",\", \":\")).encode()))\n\n\nclass EthConfigResponse(CamelModel):\n    \"\"\"Response of the `eth_config` RPC endpoint.\"\"\"\n\n    current: ForkConfig\n    next: ForkConfig | None = None\n    last: ForkConfig | None = None\n"
  },
  {
    "path": "src/ethereum_test_rpc/tests/__init__.py",
    "content": "\"\"\"Unit tests for the `ethereum_test_rpc` package.\"\"\"\n"
  },
  {
    "path": "src/ethereum_test_rpc/tests/test_types.py",
    "content": "\"\"\"Test the types in the `ethereum_test_rpc` package.\"\"\"\n\nfrom typing import Any, Dict\n\nimport pytest\n\nfrom ethereum_test_rpc import EthConfigResponse\n\neth_config_dict: Dict[str, Any] = {\n    \"current\": {\n        \"activationTime\": 0,\n        \"blobSchedule\": {\"baseFeeUpdateFraction\": 3338477, \"max\": 6, \"target\": 3},\n        \"chainId\": \"0x88bb0\",\n        \"forkId\": \"0xbef71d30\",\n        \"precompiles\": {\n            \"BLAKE2F\": \"0x0000000000000000000000000000000000000009\",\n            \"BN254_ADD\": \"0x0000000000000000000000000000000000000006\",\n            \"BN254_MUL\": \"0x0000000000000000000000000000000000000007\",\n            \"BN254_PAIRING\": \"0x0000000000000000000000000000000000000008\",\n            \"ECREC\": \"0x0000000000000000000000000000000000000001\",\n            \"ID\": \"0x0000000000000000000000000000000000000004\",\n            \"KZG_POINT_EVALUATION\": \"0x000000000000000000000000000000000000000a\",\n            \"MODEXP\": \"0x0000000000000000000000000000000000000005\",\n            \"RIPEMD160\": \"0x0000000000000000000000000000000000000003\",\n            \"SHA256\": \"0x0000000000000000000000000000000000000002\",\n        },\n        \"systemContracts\": {\"BEACON_ROOTS_ADDRESS\": \"0x000f3df6d732807ef1319fb7b8bb8522d0beac02\"},\n    },\n    \"next\": {\n        \"activationTime\": 1742999832,\n        \"blobSchedule\": {\"baseFeeUpdateFraction\": 5007716, \"max\": 9, \"target\": 6},\n        \"chainId\": \"0x88bb0\",\n        \"forkId\": \"0x0929e24e\",\n        \"precompiles\": {\n            \"BLAKE2F\": \"0x0000000000000000000000000000000000000009\",\n            \"BLS12_G1ADD\": \"0x000000000000000000000000000000000000000b\",\n            \"BLS12_G1MSM\": \"0x000000000000000000000000000000000000000c\",\n            \"BLS12_G2ADD\": \"0x000000000000000000000000000000000000000d\",\n            \"BLS12_G2MSM\": \"0x000000000000000000000000000000000000000e\",\n            \"BLS12_MAP_FP2_TO_G2\": \"0x0000000000000000000000000000000000000011\",\n            \"BLS12_MAP_FP_TO_G1\": \"0x0000000000000000000000000000000000000010\",\n            \"BLS12_PAIRING_CHECK\": \"0x000000000000000000000000000000000000000f\",\n            \"BN254_ADD\": \"0x0000000000000000000000000000000000000006\",\n            \"BN254_MUL\": \"0x0000000000000000000000000000000000000007\",\n            \"BN254_PAIRING\": \"0x0000000000000000000000000000000000000008\",\n            \"ECREC\": \"0x0000000000000000000000000000000000000001\",\n            \"ID\": \"0x0000000000000000000000000000000000000004\",\n            \"KZG_POINT_EVALUATION\": \"0x000000000000000000000000000000000000000a\",\n            \"MODEXP\": \"0x0000000000000000000000000000000000000005\",\n            \"RIPEMD160\": \"0x0000000000000000000000000000000000000003\",\n            \"SHA256\": \"0x0000000000000000000000000000000000000002\",\n        },\n        \"systemContracts\": {\n            \"BEACON_ROOTS_ADDRESS\": \"0x000f3df6d732807ef1319fb7b8bb8522d0beac02\",\n            \"CONSOLIDATION_REQUEST_PREDEPLOY_ADDRESS\": (\n                \"0x0000bbddc7ce488642fb579f8b00f3a590007251\"\n            ),\n            \"DEPOSIT_CONTRACT_ADDRESS\": (\"0x00000000219ab540356cbb839cbe05303d7705fa\"),\n            \"HISTORY_STORAGE_ADDRESS\": (\"0x0000f90827f1c53a10cb7a02335b175320002935\"),\n            \"WITHDRAWAL_REQUEST_PREDEPLOY_ADDRESS\": (\"0x00000961ef480eb55e80d19ad83579a64c007002\"),\n        },\n    },\n    \"last\": {\n        \"activationTime\": 1742999832,\n        \"blobSchedule\": {\"baseFeeUpdateFraction\": 5007716, \"max\": 9, \"target\": 6},\n        \"chainId\": \"0x88bb0\",\n        \"forkId\": \"0x0929e24e\",\n        \"precompiles\": {\n            \"BLAKE2F\": \"0x0000000000000000000000000000000000000009\",\n            \"BLS12_G1ADD\": \"0x000000000000000000000000000000000000000b\",\n            \"BLS12_G1MSM\": \"0x000000000000000000000000000000000000000c\",\n            \"BLS12_G2ADD\": \"0x000000000000000000000000000000000000000d\",\n            \"BLS12_G2MSM\": \"0x000000000000000000000000000000000000000e\",\n            \"BLS12_MAP_FP2_TO_G2\": \"0x0000000000000000000000000000000000000011\",\n            \"BLS12_MAP_FP_TO_G1\": \"0x0000000000000000000000000000000000000010\",\n            \"BLS12_PAIRING_CHECK\": \"0x000000000000000000000000000000000000000f\",\n            \"BN254_ADD\": \"0x0000000000000000000000000000000000000006\",\n            \"BN254_MUL\": \"0x0000000000000000000000000000000000000007\",\n            \"BN254_PAIRING\": \"0x0000000000000000000000000000000000000008\",\n            \"ECREC\": \"0x0000000000000000000000000000000000000001\",\n            \"ID\": \"0x0000000000000000000000000000000000000004\",\n            \"KZG_POINT_EVALUATION\": \"0x000000000000000000000000000000000000000a\",\n            \"MODEXP\": \"0x0000000000000000000000000000000000000005\",\n            \"RIPEMD160\": \"0x0000000000000000000000000000000000000003\",\n            \"SHA256\": \"0x0000000000000000000000000000000000000002\",\n        },\n        \"systemContracts\": {\n            \"BEACON_ROOTS_ADDRESS\": \"0x000f3df6d732807ef1319fb7b8bb8522d0beac02\",\n            \"CONSOLIDATION_REQUEST_PREDEPLOY_ADDRESS\": (\n                \"0x0000bbddc7ce488642fb579f8b00f3a590007251\"\n            ),\n            \"DEPOSIT_CONTRACT_ADDRESS\": (\"0x00000000219ab540356cbb839cbe05303d7705fa\"),\n            \"HISTORY_STORAGE_ADDRESS\": (\"0x0000f90827f1c53a10cb7a02335b175320002935\"),\n            \"WITHDRAWAL_REQUEST_PREDEPLOY_ADDRESS\": (\"0x00000961ef480eb55e80d19ad83579a64c007002\"),\n        },\n    },\n}\n\n\n@pytest.fixture\ndef eth_config_response() -> EthConfigResponse:\n    \"\"\"\n    Get the `eth_config` response from the client to be verified by all tests.\n    \"\"\"\n    return EthConfigResponse.model_validate(eth_config_dict)\n\n\ndef test_fork_config_get_hash(eth_config_response: EthConfigResponse) -> None:\n    \"\"\"Test the `get_hash` method of the `ForkConfig` class.\"\"\"\n    # Iterate through each fork config and validate\n    for config_name in (\"current\", \"next\", \"last\"):\n        config = getattr(eth_config_response, config_name)\n        expected = eth_config_dict[config_name]\n        if config is None:\n            assert expected is None\n            continue\n\n        # Top-level fields\n        assert config.activation_time == expected[\"activationTime\"]\n        assert str(config.chain_id) == expected[\"chainId\"]\n        assert str(config.fork_id) == expected[\"forkId\"]\n\n        # Precompiles\n        assert set(config.precompiles.keys()) == set(expected[\"precompiles\"].keys())\n        for k, v in expected[\"precompiles\"].items():\n            assert config.precompiles[k] == v\n\n        # System contracts\n        assert set(config.system_contracts.keys()) == set(expected[\"systemContracts\"].keys())\n        for k, v in expected[\"systemContracts\"].items():\n            assert config.system_contracts[k] == v\n\n        # Blob schedule\n        if expected.get(\"blobSchedule\") is not None:\n            assert config.blob_schedule is not None\n            assert (\n                config.blob_schedule.target_blobs_per_block == expected[\"blobSchedule\"][\"target\"]\n            )\n            assert config.blob_schedule.max_blobs_per_block == expected[\"blobSchedule\"][\"max\"]\n            assert (\n                config.blob_schedule.base_fee_update_fraction\n                == expected[\"blobSchedule\"][\"baseFeeUpdateFraction\"]\n            )\n        else:\n            assert config.blob_schedule is None\n"
  },
  {
    "path": "src/ethereum_test_specs/__init__.py",
    "content": "\"\"\"Test spec definitions and utilities.\"\"\"\n\nfrom .base import BaseTest, TestSpec\nfrom .base_static import BaseStaticTest\nfrom .benchmark import BenchmarkTest, BenchmarkTestFiller, BenchmarkTestSpec\nfrom .blobs import BlobsTest, BlobsTestFiller, BlobsTestSpec\nfrom .blockchain import (\n    BlockchainTest,\n    BlockchainTestFiller,\n    BlockchainTestSpec,\n)\nfrom .eof import (\n    EOFStateTest,\n    EOFStateTestFiller,\n    EOFStateTestSpec,\n    EOFTest,\n    EOFTestFiller,\n    EOFTestSpec,\n)\nfrom .state import StateTest, StateTestFiller, StateTestSpec\nfrom .static_state.state_static import StateStaticTest\nfrom .transaction import TransactionTest, TransactionTestFiller, TransactionTestSpec\n\n__all__ = (\n    \"BaseStaticTest\",\n    \"BaseTest\",\n    \"BenchmarkTest\",\n    \"BenchmarkTestFiller\",\n    \"BenchmarkTestSpec\",\n    \"BlobsTest\",\n    \"BlobsTestFiller\",\n    \"BlobsTestSpec\",\n    \"BlockchainTest\",\n    \"BlockchainTestEngineFiller\",\n    \"BlockchainTestEngineSpec\",\n    \"BlockchainTestFiller\",\n    \"BlockchainTestSpec\",\n    \"EOFStateTest\",\n    \"EOFStateTestFiller\",\n    \"EOFStateTestSpec\",\n    \"EOFTest\",\n    \"EOFTestFiller\",\n    \"EOFTestSpec\",\n    \"StateStaticTest\",\n    \"StateTest\",\n    \"StateTestFiller\",\n    \"StateTestSpec\",\n    \"TestSpec\",\n    \"TransactionTest\",\n    \"TransactionTestFiller\",\n    \"TransactionTestSpec\",\n)\n"
  },
  {
    "path": "src/ethereum_test_specs/base.py",
    "content": "\"\"\"\nBase test class and helper functions for Ethereum state and blockchain tests.\n\"\"\"\n\nimport hashlib\nfrom abc import abstractmethod\nfrom enum import StrEnum, unique\nfrom functools import reduce\nfrom os import path\nfrom pathlib import Path\nfrom typing import Any, Callable, ClassVar, Dict, Generator, List, Sequence, Type\n\nimport pytest\nfrom pydantic import BaseModel, ConfigDict, Field, PrivateAttr\nfrom typing_extensions import Self\n\nfrom ethereum_clis import Result, TransitionTool\nfrom ethereum_clis.cli_types import OpcodeCount\nfrom ethereum_test_base_types import to_hex\nfrom ethereum_test_execution import BaseExecute, ExecuteFormat, LabeledExecuteFormat\nfrom ethereum_test_fixtures import (\n    BaseFixture,\n    FixtureFormat,\n    LabeledFixtureFormat,\n    PreAllocGroup,\n    PreAllocGroups,\n)\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_types import Alloc, Environment, Withdrawal\n\n\nclass HashMismatchExceptionError(Exception):\n    \"\"\"Exception raised when the expected and actual hashes don't match.\"\"\"\n\n    def __init__(\n        self, expected_hash: str, actual_hash: str, message: str = \"Hashes do not match\"\n    ) -> None:\n        \"\"\"Initialize the exception with the expected and actual hashes.\"\"\"\n        self.expected_hash = expected_hash\n        self.actual_hash = actual_hash\n        self.message = message\n        super().__init__(self.message)\n\n    def __str__(self) -> str:\n        \"\"\"Return the error message.\"\"\"\n        return f\"{self.message}: Expected {self.expected_hash}, got {self.actual_hash}\"\n\n\ndef verify_result(result: Result, env: Environment) -> None:\n    \"\"\"\n    Verify that values in the t8n result match the expected values. Raises\n    exception on unexpected values.\n    \"\"\"\n    if env.withdrawals is not None:\n        assert result.withdrawals_root == to_hex(Withdrawal.list_root(env.withdrawals))\n\n\n@unique\nclass OpMode(StrEnum):\n    \"\"\"Operation mode for the fill and execute.\"\"\"\n\n    CONSENSUS = \"consensus\"\n    BENCHMARKING = \"benchmarking\"\n    OPTIMIZE_GAS = \"optimize-gas\"\n    OPTIMIZE_GAS_POST_PROCESSING = \"optimize-gas-post-processing\"\n\n\nclass BaseTest(BaseModel):\n    \"\"\"\n    Represents a base Ethereum test which must return a single test fixture.\n    \"\"\"\n\n    model_config = ConfigDict(extra=\"forbid\")\n\n    tag: str = \"\"\n\n    _request: pytest.FixtureRequest | None = PrivateAttr(None)\n    _operation_mode: OpMode | None = PrivateAttr(None)\n    _gas_optimization: int | None = PrivateAttr(None)\n    _gas_optimization_max_gas_limit: int | None = PrivateAttr(None)\n    _opcode_count: OpcodeCount | None = PrivateAttr(None)\n\n    expected_benchmark_gas_used: int | None = None\n    skip_gas_used_validation: bool = False\n\n    spec_types: ClassVar[Dict[str, Type[\"BaseTest\"]]] = {}\n\n    # Transition tool specific fields\n    t8n_dump_dir: Path | None = Field(None, exclude=True)\n    t8n_call_counter: int = Field(0, exclude=True)\n\n    supported_fixture_formats: ClassVar[Sequence[FixtureFormat | LabeledFixtureFormat]] = []\n    supported_execute_formats: ClassVar[Sequence[LabeledExecuteFormat]] = []\n\n    supported_markers: ClassVar[Dict[str, str]] = {}\n\n    @classmethod\n    def discard_fixture_format_by_marks(\n        cls,\n        fixture_format: FixtureFormat,\n        fork: Fork,\n        markers: List[pytest.Mark],\n    ) -> bool:\n        \"\"\"\n        Discard a fixture format from filling if the appropriate marker is\n        used.\n        \"\"\"\n        del fork, fixture_format, markers\n        return False\n\n    @classmethod\n    def __pydantic_init_subclass__(cls, **kwargs: Any) -> None:\n        \"\"\"\n        Register all subclasses of BaseFixture with a fixture format name set\n        as possible fixture formats.\n        \"\"\"\n        if cls.pytest_parameter_name():\n            # Register the new fixture format\n            BaseTest.spec_types[cls.pytest_parameter_name()] = cls\n\n    @classmethod\n    def from_test(\n        cls: Type[Self],\n        *,\n        base_test: \"BaseTest\",\n        **kwargs: Any,\n    ) -> Self:\n        \"\"\"Create a test in a different format from a base test.\"\"\"\n        new_instance = cls(\n            tag=base_test.tag,\n            t8n_dump_dir=base_test.t8n_dump_dir,\n            expected_benchmark_gas_used=base_test.expected_benchmark_gas_used,\n            skip_gas_used_validation=base_test.skip_gas_used_validation,\n            **kwargs,\n        )\n        new_instance._request = base_test._request\n        new_instance._operation_mode = base_test._operation_mode\n        new_instance._opcode_count = base_test._opcode_count\n        return new_instance\n\n    @classmethod\n    def discard_execute_format_by_marks(\n        cls,\n        execute_format: ExecuteFormat,\n        fork: Fork,\n        markers: List[pytest.Mark],\n    ) -> bool:\n        \"\"\"\n        Discard an execute format from executing if the appropriate marker is\n        used.\n        \"\"\"\n        del execute_format, fork, markers\n        return False\n\n    @abstractmethod\n    def generate(\n        self,\n        *,\n        t8n: TransitionTool,\n        fork: Fork,\n        fixture_format: FixtureFormat,\n    ) -> BaseFixture:\n        \"\"\"Generate the list of test fixtures.\"\"\"\n        pass\n\n    def execute(\n        self,\n        *,\n        fork: Fork,\n        execute_format: ExecuteFormat,\n    ) -> BaseExecute:\n        \"\"\"Generate the list of test fixtures.\"\"\"\n        del fork\n        raise Exception(f\"Unsupported execute format: {execute_format}\")\n\n    @classmethod\n    def pytest_parameter_name(cls) -> str:\n        \"\"\"\n        Must return the name of the parameter used in pytest to select this\n        spec type as filler for the test.\n\n        By default, it returns the underscore separated name of the class.\n        \"\"\"\n        if cls == BaseTest:\n            return \"\"\n        return reduce(lambda x, y: x + (\"_\" if y.isupper() else \"\") + y, cls.__name__).lower()\n\n    def get_next_transition_tool_output_path(self) -> str:\n        \"\"\"Return path to the next transition tool output file.\"\"\"\n        if not self.t8n_dump_dir:\n            return \"\"\n        current_value = self.t8n_call_counter\n        self.t8n_call_counter += 1\n        return path.join(\n            self.t8n_dump_dir,\n            str(current_value),\n        )\n\n    def is_tx_gas_heavy_test(self) -> bool:\n        \"\"\"Check if the test is gas-heavy for transaction execution.\"\"\"\n        if self._request is not None and hasattr(self._request, \"node\"):\n            node = self._request.node\n            has_slow_marker = node.get_closest_marker(\"slow\") is not None\n            has_benchmark_marker = node.get_closest_marker(\"benchmark\") is not None\n            return has_slow_marker or has_benchmark_marker\n        return False\n\n    def is_exception_test(self) -> bool | None:\n        \"\"\"\n        Check if the test is an exception test (invalid block, invalid\n        transaction).\n\n        `None` is returned if it's not possible to determine if the test is\n        negative or not. This is the case when the test is not run in pytest.\n        \"\"\"\n        if self._request is not None and hasattr(self._request, \"node\"):\n            return self._request.node.get_closest_marker(\"exception_test\") is not None\n        return None\n\n    def node_id(self) -> str:\n        \"\"\"Return the node ID of the test.\"\"\"\n        if self._request is not None and hasattr(self._request, \"node\"):\n            return self._request.node.nodeid\n        return \"\"\n\n    def check_exception_test(\n        self,\n        *,\n        exception: bool,\n    ) -> None:\n        \"\"\"Compare the test marker against the outcome of the test.\"\"\"\n        negative_test_marker = self.is_exception_test()\n        if negative_test_marker is None:\n            return\n        if negative_test_marker != exception:\n            if exception:\n                raise Exception(\n                    \"Test produced an invalid block or transaction but was not marked with the \"\n                    \"`exception_test` marker. Add the `@pytest.mark.exception_test` decorator \"\n                    \"to the test.\"\n                )\n            else:\n                raise Exception(\n                    \"Test didn't produce an invalid block or transaction but was marked with the \"\n                    \"`exception_test` marker. Remove the `@pytest.mark.exception_test` decorator \"\n                    \"from the test.\"\n                )\n\n    def get_genesis_environment(self, fork: Fork) -> Environment:\n        \"\"\"\n        Get the genesis environment for pre-allocation groups.\n\n        Must be implemented by subclasses to provide the appropriate\n        environment.\n        \"\"\"\n        raise NotImplementedError(\n            f\"{self.__class__.__name__} must implement genesis environment access for use with \"\n            \"pre-allocation groups.\"\n        )\n\n    def update_pre_alloc_groups(\n        self, pre_alloc_groups: PreAllocGroups, fork: Fork, test_id: str\n    ) -> PreAllocGroups:\n        \"\"\"\n        Create or update the pre-allocation group with the pre from the current\n        spec.\n        \"\"\"\n        if not hasattr(self, \"pre\"):\n            raise AttributeError(\n                f\"{self.__class__.__name__} does not have a 'pre' field. Pre-allocation groups \"\n                \"are only supported for test types that define pre-allocation.\"\n            )\n        pre_alloc_hash = self.compute_pre_alloc_group_hash(fork=fork)\n\n        if pre_alloc_hash in pre_alloc_groups:\n            # Update existing group - just merge pre-allocations\n            group = pre_alloc_groups[pre_alloc_hash]\n            group.pre = Alloc.merge(\n                group.pre,\n                self.pre,\n                key_collision_mode=Alloc.KeyCollisionMode.ALLOW_IDENTICAL_ACCOUNTS,\n            )\n            group.fork = fork\n            group.test_ids.append(str(test_id))\n            pre_alloc_groups[pre_alloc_hash] = group\n        else:\n            # Create new group - use Environment instead of expensive genesis\n            # generation\n            genesis_env = self.get_genesis_environment(fork)\n            pre_alloc = Alloc.merge(\n                Alloc.model_validate(fork.pre_allocation_blockchain()),\n                self.pre,\n            )\n            group = PreAllocGroup(\n                test_ids=[str(test_id)],\n                fork=fork,\n                environment=genesis_env,\n                pre=pre_alloc,\n            )\n            pre_alloc_groups[pre_alloc_hash] = group\n        return pre_alloc_groups\n\n    def compute_pre_alloc_group_hash(self, fork: Fork) -> str:\n        \"\"\"Hash (fork, env) in order to group tests by genesis config.\"\"\"\n        if not hasattr(self, \"pre\"):\n            raise AttributeError(\n                f\"{self.__class__.__name__} does not have a 'pre' field. Pre-allocation group \"\n                \"usage is only supported for test types that define pre-allocs.\"\n            )\n        fork_digest = hashlib.sha256(fork.name().encode(\"utf-8\")).digest()\n        fork_hash = int.from_bytes(fork_digest[:8], byteorder=\"big\")\n        genesis_env = self.get_genesis_environment(fork)\n        combined_hash = fork_hash ^ hash(genesis_env)\n\n        # Check if test has pre_alloc_group marker\n        if self._request is not None and hasattr(self._request, \"node\"):\n            pre_alloc_group_marker = self._request.node.get_closest_marker(\"pre_alloc_group\")\n            if pre_alloc_group_marker:\n                # Get the group name/salt from marker args\n                if pre_alloc_group_marker.args:\n                    group_salt = str(pre_alloc_group_marker.args[0])\n                    if group_salt == \"separate\":\n                        # Use nodeid for unique group per test\n                        group_salt = self._request.node.nodeid\n                    # Add custom salt to hash\n                    salt_hash = hashlib.sha256(group_salt.encode(\"utf-8\")).digest()\n                    salt_int = int.from_bytes(salt_hash[:8], byteorder=\"big\")\n                    combined_hash = combined_hash ^ salt_int\n\n        return f\"0x{combined_hash:016x}\"\n\n\nTestSpec = Callable[[Fork], Generator[BaseTest, None, None]]\n"
  },
  {
    "path": "src/ethereum_test_specs/base_static.py",
    "content": "\"\"\"\nBase class to parse test cases written in static formats.\n\"\"\"\n\nimport re\nfrom abc import abstractmethod\nfrom typing import Any, Callable, ClassVar, Dict, List, Tuple, Type, Union\n\nfrom pydantic import (\n    BaseModel,\n    TypeAdapter,\n    ValidatorFunctionWrapHandler,\n    model_validator,\n)\n\nfrom ethereum_test_base_types import Bytes\n\n\nclass BaseStaticTest(BaseModel):\n    \"\"\"Represents a base class that reads cases from static files.\"\"\"\n\n    formats: ClassVar[List[Type[\"BaseStaticTest\"]]] = []\n    formats_type_adapter: ClassVar[TypeAdapter]\n\n    format_name: ClassVar[str] = \"\"\n\n    @classmethod\n    def __pydantic_init_subclass__(cls, **kwargs: Any) -> None:\n        \"\"\"\n        Register all subclasses of BaseStaticTest with a static test format\n        name set as possible static test format.\n        \"\"\"\n        if cls.format_name:\n            # Register the new fixture format\n            BaseStaticTest.formats.append(cls)\n            if len(BaseStaticTest.formats) > 1:\n                BaseStaticTest.formats_type_adapter = TypeAdapter(\n                    Union[tuple(BaseStaticTest.formats)],\n                )\n            else:\n                BaseStaticTest.formats_type_adapter = TypeAdapter(cls)\n\n    @model_validator(mode=\"wrap\")\n    @classmethod\n    def _parse_into_subclass(\n        cls, v: Any, handler: ValidatorFunctionWrapHandler\n    ) -> \"BaseStaticTest\":\n        \"\"\"Parse the static test into the correct subclass.\"\"\"\n        if cls is BaseStaticTest:\n            return BaseStaticTest.formats_type_adapter.validate_python(v)\n        return handler(v)\n\n    @abstractmethod\n    def fill_function(self) -> Callable:\n        \"\"\"\n        Return the test function that can be used to fill the test.\n\n        This method should be implemented by the subclasses.\n\n        The function returned can be optionally decorated with the\n        `@pytest.mark.parametrize` decorator to parametrize the test with the\n        number of sub test cases.\n\n        Example:\n        ```\n        @pytest.mark.parametrize(\"n\", [1])\n        @pytest.mark.parametrize(\"m\", [1, 2])\n        @pytest.mark.valid_from(\"Homestead\")\n        def test_state_filler(\n            state_test: StateTestFiller,\n            fork: Fork,\n            pre: Alloc,\n            n: int,\n            m: int\n        ):\n            \\\"\\\"\\\"Generate a test from a static state filler.\\\"\\\"\\\"\n            assert n == 1\n            assert m in [1, 2]\n            env = Environment(**self.env.model_dump())\n            sender = pre.fund_eoa()\n            tx = Transaction(\n                ty=0x0,\n                nonce=0,\n                to=Address(0x1000),\n                gas_limit=500000,\n                protected=False if fork in [Frontier, Homestead] else True,\n                data=\"\",\n                sender=sender,\n            )\n            state_test(env=env, pre=pre, post={}, tx=tx)\n        ```\n\n        To aid the generation of the test, the function can be defined and then\n        the decorator be applied after defining the function:\n\n        ```\n        def test_state_filler(\n        state_test: StateTestFiller,\n            fork: Fork,\n            pre: Alloc,\n            n: int,\n            m: int,\n        ):\n\n        ...\n\n        test_state_filler = pytest.mark.parametrize(\"n\",\n            [1])(test_state_filler\n        )\n        test_state_filler = pytest.mark.parametrize(\"m\",\n            [1, 2])(test_state_filler\n        )\n\n        if self.valid_from:\n            test_state_filler = pytest.mark.valid_from(\n                self.valid_from\n            )(test_state_filler)\n\n        if self.valid_until:\n            test_state_filler = pytest.mark.valid_until(\n                self.valid_until\n            )(test_state_filler)\n\n        return test_state_filler\n        ```\n\n        The function can contain the following parameters on top of the spec\n        type parameter (`state_test` in the example above): - `fork`: The fork\n        for which the test is currently being filled. - `pre`: The pre-state of\n        the test.\n\n        \"\"\"\n        raise NotImplementedError\n\n    @staticmethod\n    def remove_comments(data: Dict) -> Dict:\n        \"\"\"Remove comments from a dictionary.\"\"\"\n        result = {}\n        for k, v in data.items():\n            if isinstance(k, str) and k.startswith(\"//\"):\n                continue\n            if isinstance(v, dict):\n                v = BaseStaticTest.remove_comments(v)\n            elif isinstance(v, list):\n                v = [BaseStaticTest.remove_comments(i) if isinstance(i, dict) else i for i in v]\n            result[k] = v\n        return result\n\n    @model_validator(mode=\"before\")\n    @classmethod\n    def remove_comments_from_model(cls, data: Any) -> Any:\n        \"\"\"Remove comments from the static file loaded, if any.\"\"\"\n        if isinstance(data, dict):\n            return BaseStaticTest.remove_comments(data)\n        return data\n\n\ndef remove_comments(v: str) -> str:\n    \"\"\"\n    Split by line and then remove the comments (starting with #) at the end of\n    each line if any.\n    \"\"\"\n    return \"\\n\".join([line.split(\"#\")[0].strip() for line in v.splitlines()])\n\n\nlabel_matcher = re.compile(r\"^:label\\s+(\\S+)\\s*\", re.MULTILINE)\nraw_matcher = re.compile(r\":raw\\s+(.*)\", re.MULTILINE)\n\n\ndef labeled_bytes_from_string(v: str) -> Tuple[str | None, Bytes]:\n    \"\"\"Parse `:label` and `:raw` from a string.\"\"\"\n    v = remove_comments(v)\n\n    label: str | None = None\n    if m := label_matcher.search(v):\n        label = m.group(1)\n        v = label_matcher.sub(\"\", v)\n\n    m = raw_matcher.match(v.replace(\"\\n\", \" \"))\n    if not m:\n        raise Exception(f\"Unable to parse container from string: {v}\")\n    strip_string = m.group(1).strip()\n    return label, Bytes(strip_string)\n"
  },
  {
    "path": "src/ethereum_test_specs/benchmark.py",
    "content": "\"\"\"Ethereum benchmark test spec definition and filler.\"\"\"\n\nimport math\nfrom abc import ABC, abstractmethod\nfrom dataclasses import dataclass, field\nfrom typing import Any, Callable, ClassVar, Dict, Generator, List, Sequence, Type\n\nimport pytest\nfrom pydantic import ConfigDict, Field\n\nfrom ethereum_clis import TransitionTool\nfrom ethereum_test_base_types import Address, HexNumber\nfrom ethereum_test_exceptions import BlockException, TransactionException\nfrom ethereum_test_execution import (\n    BaseExecute,\n    ExecuteFormat,\n    LabeledExecuteFormat,\n    TransactionPost,\n)\nfrom ethereum_test_fixtures import (\n    BaseFixture,\n    BlockchainEngineFixture,\n    BlockchainEngineXFixture,\n    BlockchainFixture,\n    FixtureFormat,\n    LabeledFixtureFormat,\n)\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_types import Alloc, Environment, Transaction\nfrom ethereum_test_vm import Bytecode\nfrom ethereum_test_vm.opcodes import Opcodes as Op\n\nfrom .base import BaseTest\nfrom .blockchain import Block, BlockchainTest\n\n\n@dataclass(kw_only=True)\nclass BenchmarkCodeGenerator(ABC):\n    \"\"\"Abstract base class for generating benchmark bytecode.\"\"\"\n\n    attack_block: Bytecode\n    setup: Bytecode = field(default_factory=Bytecode)\n    cleanup: Bytecode = field(default_factory=Bytecode)\n    tx_kwargs: Dict[str, Any] = field(default_factory=dict)\n    _contract_address: Address | None = None\n\n    @abstractmethod\n    def deploy_contracts(self, *, pre: Alloc, fork: Fork) -> Address:\n        \"\"\"Deploy any contracts needed for the benchmark.\"\"\"\n        ...\n\n    def generate_transaction(self, *, pre: Alloc, gas_benchmark_value: int) -> Transaction:\n        \"\"\"Generate transaction that executes the looping contract.\"\"\"\n        assert self._contract_address is not None\n        if \"gas_limit\" not in self.tx_kwargs:\n            self.tx_kwargs[\"gas_limit\"] = gas_benchmark_value\n\n        return Transaction(\n            to=self._contract_address,\n            sender=pre.fund_eoa(),\n            **self.tx_kwargs,\n        )\n\n    def generate_repeated_code(\n        self,\n        *,\n        repeated_code: Bytecode,\n        setup: Bytecode | None = None,\n        cleanup: Bytecode | None = None,\n        fork: Fork,\n    ) -> Bytecode:\n        \"\"\"\n        Calculate the maximum number of iterations that\n        can fit in the code size limit.\n        \"\"\"\n        assert len(repeated_code) > 0, \"repeated_code cannot be empty\"\n        max_code_size = fork.max_code_size()\n        if setup is None:\n            setup = Bytecode()\n        if cleanup is None:\n            cleanup = Bytecode()\n        overhead = len(setup) + len(Op.JUMPDEST) + len(cleanup) + len(Op.JUMP(len(setup)))\n        available_space = max_code_size - overhead\n        max_iterations = available_space // len(repeated_code)\n\n        # TODO: Unify the PUSH0 and PUSH1 usage.\n        code = setup + Op.JUMPDEST + repeated_code * max_iterations + cleanup\n        code += Op.JUMP(len(setup)) if len(setup) > 0 else Op.PUSH0 + Op.JUMP\n        self._validate_code_size(code, fork)\n\n        return code\n\n    def _validate_code_size(self, code: Bytecode, fork: Fork) -> None:\n        \"\"\"Validate that the generated code fits within size limits.\"\"\"\n        if len(code) > fork.max_code_size():\n            raise ValueError(\n                f\"Generated code size {len(code)} exceeds maximum allowed size \"\n                f\"{fork.max_code_size()}\"\n            )\n\n\nclass BenchmarkTest(BaseTest):\n    \"\"\"Test type designed specifically for benchmark test cases.\"\"\"\n\n    model_config = ConfigDict(extra=\"forbid\")\n\n    pre: Alloc = Field(default_factory=Alloc)\n    post: Alloc = Field(default_factory=Alloc)\n    tx: Transaction | None = None\n    setup_blocks: List[Block] = Field(default_factory=list)\n    blocks: List[Block] | None = None\n    block_exception: (\n        List[TransactionException | BlockException] | TransactionException | BlockException | None\n    ) = None\n    env: Environment = Field(default_factory=Environment)\n    expected_benchmark_gas_used: int | None = None\n    gas_benchmark_value: int = Field(default_factory=lambda: int(Environment().gas_limit))\n    code_generator: BenchmarkCodeGenerator | None = None\n\n    supported_fixture_formats: ClassVar[Sequence[FixtureFormat | LabeledFixtureFormat]] = [\n        BlockchainFixture,\n        BlockchainEngineFixture,\n        BlockchainEngineXFixture,\n    ]\n\n    supported_execute_formats: ClassVar[Sequence[LabeledExecuteFormat]] = [\n        LabeledExecuteFormat(\n            TransactionPost,\n            \"benchmark_test\",\n            \"An execute test derived from a benchmark test\",\n        ),\n    ]\n\n    supported_markers: ClassVar[Dict[str, str]] = {\n        \"blockchain_test_engine_only\": \"Only generate a blockchain test engine fixture\",\n        \"blockchain_test_only\": \"Only generate a blockchain test fixture\",\n    }\n\n    def model_post_init(self, __context: Any, /) -> None:\n        \"\"\"\n        Model post-init to assert that the custom pre-allocation was\n        provided and the default was not used.\n        \"\"\"\n        super().model_post_init(__context)\n        assert \"pre\" in self.model_fields_set, \"pre allocation was not provided\"\n\n    @classmethod\n    def pytest_parameter_name(cls) -> str:\n        \"\"\"\n        Return the parameter name used in pytest\n        to select this spec type.\n        \"\"\"\n        return \"benchmark_test\"\n\n    @classmethod\n    def discard_fixture_format_by_marks(\n        cls,\n        fixture_format: FixtureFormat,\n        fork: Fork,\n        markers: List[pytest.Mark],\n    ) -> bool:\n        \"\"\"\n        Discard a fixture format from filling if the\n        appropriate marker is used.\n        \"\"\"\n        del fork\n\n        if \"blockchain_test_only\" in [m.name for m in markers]:\n            return fixture_format != BlockchainFixture\n        if \"blockchain_test_engine_only\" in [m.name for m in markers]:\n            return fixture_format != BlockchainEngineFixture\n        return False\n\n    def get_genesis_environment(self, fork: Fork) -> Environment:\n        \"\"\"Get the genesis environment for this benchmark test.\"\"\"\n        del fork\n        return self.env\n\n    def split_transaction(self, tx: Transaction, gas_limit_cap: int | None) -> List[Transaction]:\n        \"\"\"\n        Split a transaction that exceeds the gas\n        limit cap into multiple transactions.\n        \"\"\"\n        if gas_limit_cap is None:\n            tx.gas_limit = HexNumber(self.gas_benchmark_value)\n            return [tx]\n\n        if gas_limit_cap >= self.gas_benchmark_value:\n            tx.gas_limit = HexNumber(self.gas_benchmark_value)\n            return [tx]\n\n        num_splits = math.ceil(self.gas_benchmark_value / gas_limit_cap)\n        remaining_gas = self.gas_benchmark_value\n\n        split_transactions = []\n        for i in range(num_splits):\n            split_tx = tx.model_copy()\n            split_tx.gas_limit = HexNumber(remaining_gas if i == num_splits - 1 else gas_limit_cap)\n            remaining_gas -= gas_limit_cap\n            split_tx.nonce = HexNumber(tx.nonce + i)\n            split_transactions.append(split_tx)\n\n        return split_transactions\n\n    def generate_blocks_from_code_generator(self, fork: Fork) -> List[Block]:\n        \"\"\"Generate blocks using the code generator.\"\"\"\n        if self.code_generator is None:\n            raise Exception(\"Code generator is not set\")\n\n        self.code_generator.deploy_contracts(pre=self.pre, fork=fork)\n        gas_limit = fork.transaction_gas_limit_cap() or self.gas_benchmark_value\n        benchmark_tx = self.code_generator.generate_transaction(\n            pre=self.pre, gas_benchmark_value=gas_limit\n        )\n\n        execution_txs = self.split_transaction(benchmark_tx, gas_limit)\n        execution_block = Block(txs=execution_txs)\n\n        return [execution_block]\n\n    def generate_blockchain_test(self, fork: Fork) -> BlockchainTest:\n        \"\"\"Create a BlockchainTest from this BenchmarkTest.\"\"\"\n        set_props = [\n            name\n            for name, val in [\n                (\"code_generator\", self.code_generator),\n                (\"blocks\", self.blocks),\n                (\"tx\", self.tx),\n            ]\n            if val is not None\n        ]\n\n        if len(set_props) != 1:\n            raise ValueError(\n                f\"Exactly one must be set, but got {len(set_props)}: {', '.join(set_props)}\"\n            )\n\n        blocks: List[Block] = self.setup_blocks\n\n        if self.code_generator is not None:\n            generated_blocks = self.generate_blocks_from_code_generator(fork)\n            blocks += generated_blocks\n\n        elif self.blocks is not None:\n            blocks += self.blocks\n\n        elif self.tx is not None:\n            gas_limit = fork.transaction_gas_limit_cap() or self.gas_benchmark_value\n\n            transactions = self.split_transaction(self.tx, gas_limit)\n\n            blocks.append(Block(txs=transactions))\n\n        else:\n            raise ValueError(\n                \"Cannot create BlockchainTest without a code generator, transactions, or blocks\"\n            )\n\n        return BlockchainTest.from_test(\n            base_test=self,\n            genesis_environment=self.env,\n            pre=self.pre,\n            post=self.post,\n            blocks=blocks,\n        )\n\n    def generate(\n        self,\n        t8n: TransitionTool,\n        fork: Fork,\n        fixture_format: FixtureFormat,\n    ) -> BaseFixture:\n        \"\"\"Generate the blockchain test fixture.\"\"\"\n        self.check_exception_test(exception=self.tx.error is not None if self.tx else False)\n        if fixture_format in BlockchainTest.supported_fixture_formats:\n            return self.generate_blockchain_test(fork=fork).generate(\n                t8n=t8n, fork=fork, fixture_format=fixture_format\n            )\n        else:\n            raise Exception(f\"Unsupported fixture format: {fixture_format}\")\n\n    def execute(\n        self,\n        *,\n        fork: Fork,\n        execute_format: ExecuteFormat,\n    ) -> BaseExecute:\n        \"\"\"Execute the benchmark test by sending it to the live network.\"\"\"\n        del fork\n\n        if execute_format == TransactionPost:\n            return TransactionPost(\n                blocks=[[self.tx]],\n                post=self.post,\n            )\n        raise Exception(f\"Unsupported execute format: {execute_format}\")\n\n\nBenchmarkTestSpec = Callable[[str], Generator[BenchmarkTest, None, None]]\nBenchmarkTestFiller = Type[BenchmarkTest]\n"
  },
  {
    "path": "src/ethereum_test_specs/blobs.py",
    "content": "\"\"\"Test specification for blob tests.\"\"\"\n\nfrom typing import Callable, ClassVar, Generator, List, Sequence, Type\n\nfrom ethereum_clis import TransitionTool\nfrom ethereum_test_base_types import Alloc\nfrom ethereum_test_base_types.base_types import Hash\nfrom ethereum_test_execution import BaseExecute, BlobTransaction\nfrom ethereum_test_fixtures import (\n    BaseFixture,\n    FixtureFormat,\n)\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_types import NetworkWrappedTransaction, Transaction\n\nfrom .base import BaseTest, ExecuteFormat, LabeledExecuteFormat\n\n\nclass BlobsTest(BaseTest):\n    \"\"\"Test specification for blob tests.\"\"\"\n\n    pre: Alloc\n    txs: List[NetworkWrappedTransaction | Transaction]\n    nonexisting_blob_hashes: List[Hash] | None = None\n\n    supported_execute_formats: ClassVar[Sequence[LabeledExecuteFormat]] = [\n        LabeledExecuteFormat(\n            BlobTransaction,\n            \"blob_transaction_test\",\n            \"A test that executes a blob transaction\",\n        ),\n    ]\n\n    def generate(\n        self,\n        *,\n        t8n: TransitionTool,\n        fork: Fork,\n        fixture_format: FixtureFormat,\n    ) -> BaseFixture:\n        \"\"\"Generate the list of test fixtures.\"\"\"\n        del t8n, fork\n        raise Exception(f\"Unknown fixture format: {fixture_format}\")\n\n    def execute(\n        self,\n        *,\n        fork: Fork,\n        execute_format: ExecuteFormat,\n    ) -> BaseExecute:\n        \"\"\"Generate the list of test fixtures.\"\"\"\n        del fork\n\n        if execute_format == BlobTransaction:\n            return BlobTransaction(\n                txs=self.txs, nonexisting_blob_hashes=self.nonexisting_blob_hashes\n            )\n        raise Exception(f\"Unsupported execute format: {execute_format}\")\n\n\nBlobsTestSpec = Callable[[str], Generator[BlobsTest, None, None]]\nBlobsTestFiller = Type[BlobsTest]\n"
  },
  {
    "path": "src/ethereum_test_specs/blockchain.py",
    "content": "\"\"\"Ethereum blockchain test spec definition and filler.\"\"\"\n\nfrom pprint import pprint\nfrom typing import Any, Callable, ClassVar, Dict, Generator, List, Sequence, Tuple, Type\n\nimport pytest\nfrom pydantic import ConfigDict, Field, field_validator, model_serializer\n\nfrom ethereum_clis import BlockExceptionWithMessage, Result, TransitionTool\nfrom ethereum_test_base_types import (\n    Address,\n    Bloom,\n    Bytes,\n    CamelModel,\n    Hash,\n    HeaderNonce,\n    HexNumber,\n    Number,\n)\nfrom ethereum_test_exceptions import (\n    BlockException,\n    EngineAPIError,\n    ExceptionWithMessage,\n    TransactionException,\n    UndefinedException,\n)\nfrom ethereum_test_execution import (\n    BaseExecute,\n    ExecuteFormat,\n    LabeledExecuteFormat,\n    TransactionPost,\n)\nfrom ethereum_test_fixtures import (\n    BaseFixture,\n    BlockchainEngineFixture,\n    BlockchainEngineSyncFixture,\n    BlockchainEngineXFixture,\n    BlockchainFixture,\n    FixtureFormat,\n    LabeledFixtureFormat,\n)\nfrom ethereum_test_fixtures.blockchain import (\n    FixtureBlock,\n    FixtureBlockBase,\n    FixtureConfig,\n    FixtureEngineNewPayload,\n    FixtureHeader,\n    FixtureTransaction,\n    FixtureWithdrawal,\n    InvalidFixtureBlock,\n)\nfrom ethereum_test_fixtures.common import FixtureBlobSchedule\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_types import Alloc, Environment, Removable, Requests, Transaction, Withdrawal\nfrom ethereum_test_types.block_access_list import BlockAccessList, BlockAccessListExpectation\n\nfrom .base import BaseTest, OpMode, verify_result\nfrom .debugging import print_traces\nfrom .helpers import verify_block, verify_transactions\n\n\ndef environment_from_parent_header(parent: \"FixtureHeader\") -> \"Environment\":\n    \"\"\"Instantiate new environment with the provided header as parent.\"\"\"\n    return Environment(\n        parent_difficulty=parent.difficulty,\n        parent_timestamp=parent.timestamp,\n        parent_base_fee_per_gas=parent.base_fee_per_gas,\n        parent_blob_gas_used=parent.blob_gas_used,\n        parent_excess_blob_gas=parent.excess_blob_gas,\n        parent_gas_used=parent.gas_used,\n        parent_gas_limit=parent.gas_limit,\n        parent_ommers_hash=parent.ommers_hash,\n        block_hashes={parent.number: parent.block_hash},\n    )\n\n\ndef apply_new_parent(env: Environment, new_parent: FixtureHeader) -> \"Environment\":\n    \"\"\"Apply header as parent to a copy of this environment.\"\"\"\n    updated: Dict[str, Any] = {}\n    updated[\"parent_difficulty\"] = new_parent.difficulty\n    updated[\"parent_timestamp\"] = new_parent.timestamp\n    updated[\"parent_base_fee_per_gas\"] = new_parent.base_fee_per_gas\n    updated[\"parent_blob_gas_used\"] = new_parent.blob_gas_used\n    updated[\"parent_excess_blob_gas\"] = new_parent.excess_blob_gas\n    updated[\"parent_gas_used\"] = new_parent.gas_used\n    updated[\"parent_gas_limit\"] = new_parent.gas_limit\n    updated[\"parent_ommers_hash\"] = new_parent.ommers_hash\n    block_hashes = env.block_hashes.copy()\n    block_hashes[new_parent.number] = new_parent.block_hash\n    updated[\"block_hashes\"] = block_hashes\n    return env.copy(**updated)\n\n\ndef count_blobs(txs: List[Transaction]) -> int:\n    \"\"\"Return number of blobs in a list of transactions.\"\"\"\n    return sum(\n        [len(tx.blob_versioned_hashes) for tx in txs if tx.blob_versioned_hashes is not None]\n    )\n\n\nclass Header(CamelModel):\n    \"\"\"Header type used to describe block header properties in test specs.\"\"\"\n\n    parent_hash: Hash | None = None\n    ommers_hash: Hash | None = None\n    fee_recipient: Address | None = None\n    state_root: Hash | None = None\n    transactions_trie: Hash | None = None\n    receipts_root: Hash | None = None\n    logs_bloom: Bloom | None = None\n    difficulty: HexNumber | None = None\n    number: HexNumber | None = None\n    gas_limit: HexNumber | None = None\n    gas_used: HexNumber | None = None\n    timestamp: HexNumber | None = None\n    extra_data: Bytes | None = None\n    prev_randao: Hash | None = None\n    nonce: HeaderNonce | None = None\n    base_fee_per_gas: Removable | HexNumber | None = None\n    withdrawals_root: Removable | Hash | None = None\n    blob_gas_used: Removable | HexNumber | None = None\n    excess_blob_gas: Removable | HexNumber | None = None\n    parent_beacon_block_root: Removable | Hash | None = None\n    requests_hash: Removable | Hash | None = None\n    bal_hash: Removable | Hash | None = None\n\n    REMOVE_FIELD: ClassVar[Removable] = Removable()\n    \"\"\"\n    Sentinel object used to specify that a header field should be removed.\n    \"\"\"\n    EMPTY_FIELD: ClassVar[Removable] = Removable()\n    \"\"\"\n    Sentinel object used to specify that a header field must be empty during\n    verification.\n\n    This can be used in a test to explicitly skip a field in a block's RLP\n    encoding. included in the (json) output when the model is serialized. For\n    example: ``` header_modifier = Header( excess_blob_gas=Header.REMOVE_FIELD,\n    ) block = Block( timestamp=TIMESTAMP, rlp_modifier=header_modifier,\n    exception=BlockException.INCORRECT_BLOCK_FORMAT,\n    engine_api_error_code=EngineAPIError.InvalidParams, ) ```\n    \"\"\"\n\n    model_config = ConfigDict(arbitrary_types_allowed=True)\n\n    @model_serializer(mode=\"wrap\", when_used=\"json\")\n    def _serialize_model(self, serializer: Any, info: Any) -> Dict[str, Any]:\n        \"\"\"Exclude Removable fields from serialization.\"\"\"\n        del info\n        data = serializer(self)\n        return {k: v for k, v in data.items() if not isinstance(v, Removable)}\n\n    @field_validator(\"withdrawals_root\", mode=\"before\")\n    @classmethod\n    def validate_withdrawals_root(cls, value: Any) -> Any:\n        \"\"\"Convert a list of withdrawals into the withdrawals root hash.\"\"\"\n        if isinstance(value, list):\n            return Withdrawal.list_root(value)\n        return value\n\n    def apply(self, target: FixtureHeader) -> FixtureHeader:\n        \"\"\"\n        Produce a fixture header copy with the set values from the modifier.\n        \"\"\"\n        return target.copy(\n            **{\n                k: (v if v is not Header.REMOVE_FIELD else None)\n                for k, v in self.model_dump(exclude_none=True).items()\n            }\n        )\n\n    def verify(self, target: FixtureHeader) -> None:\n        \"\"\"Verify that the header fields from self are as expected.\"\"\"\n        for field_name in self.__class__.model_fields:\n            baseline_value = getattr(self, field_name)\n            if baseline_value is not None:\n                assert baseline_value is not Header.REMOVE_FIELD, \"invalid header\"\n                value = getattr(target, field_name)\n                if baseline_value is Header.EMPTY_FIELD:\n                    assert value is None, (\n                        f\"invalid header field {field_name}, got {value}, want None\"\n                    )\n                    continue\n                assert value == baseline_value, (\n                    f\"invalid header field ({field_name}) value, \"\n                    + f\"got {value}, want {baseline_value}\"\n                )\n\n\nBLOCK_EXCEPTION_TYPE = (\n    List[TransactionException | BlockException] | TransactionException | BlockException | None\n)\n\n\nclass Block(Header):\n    \"\"\"Block type used to describe block properties in test specs.\"\"\"\n\n    header_verify: Header | None = None\n    # If set, the block header will be verified against the specified values.\n    rlp_modifier: Header | None = None\n    \"\"\"\n    An RLP modifying header which values would be used to override the ones\n    returned by the `ethereum_clis.TransitionTool`.\n    \"\"\"\n    expected_block_access_list: BlockAccessListExpectation | None = None\n    \"\"\"\n    If set, the block access list will be verified and potentially corrupted\n    for invalid tests.\n    \"\"\"\n    exception: BLOCK_EXCEPTION_TYPE = None\n    # If set, the block is expected to be rejected by the client.\n    skip_exception_verification: bool = False\n    \"\"\"\n    Skip verifying that the exception is returned by the transition tool. This\n    could be because the exception is inserted in the block after the\n    transition tool evaluates it.\n    \"\"\"\n    engine_api_error_code: EngineAPIError | None = None\n    \"\"\"\n    If set, the block is expected to produce an error response from the Engine\n    API.\n    \"\"\"\n    txs: List[Transaction] = Field(default_factory=list)\n    \"\"\"List of transactions included in the block.\"\"\"\n    ommers: List[Header] | None = None\n    \"\"\"List of ommer headers included in the block.\"\"\"\n    withdrawals: List[Withdrawal] | None = None\n    \"\"\"List of withdrawals to perform for this block.\"\"\"\n    requests: List[Bytes] | None = None\n    \"\"\"Custom list of requests to embed in this block.\"\"\"\n    expected_post_state: Alloc | None = None\n    \"\"\"Post state for verification after block execution in BlockchainTest\"\"\"\n    block_access_list: Bytes | None = Field(None)\n    \"\"\"EIP-7928: Block-level access lists (serialized).\"\"\"\n\n    def set_environment(self, env: Environment) -> Environment:\n        \"\"\"\n        Create copy of the environment with the characteristics of this\n        specific block.\n        \"\"\"\n        new_env_values: Dict[str, Any] = {}\n\n        \"\"\"\n        Values that need to be set in the environment and are `None` for this\n        block need to be set to their defaults.\n        \"\"\"\n        new_env_values[\"difficulty\"] = self.difficulty\n        new_env_values[\"prev_randao\"] = self.prev_randao\n        new_env_values[\"fee_recipient\"] = (\n            self.fee_recipient if self.fee_recipient is not None else Environment().fee_recipient\n        )\n        new_env_values[\"gas_limit\"] = (\n            self.gas_limit or env.parent_gas_limit or Environment().gas_limit\n        )\n        if not isinstance(self.base_fee_per_gas, Removable):\n            new_env_values[\"base_fee_per_gas\"] = self.base_fee_per_gas\n        new_env_values[\"withdrawals\"] = self.withdrawals\n        if not isinstance(self.excess_blob_gas, Removable):\n            new_env_values[\"excess_blob_gas\"] = self.excess_blob_gas\n        if not isinstance(self.blob_gas_used, Removable):\n            new_env_values[\"blob_gas_used\"] = self.blob_gas_used\n        if not isinstance(self.parent_beacon_block_root, Removable):\n            new_env_values[\"parent_beacon_block_root\"] = self.parent_beacon_block_root\n        if not isinstance(self.requests_hash, Removable) and self.block_access_list is not None:\n            new_env_values[\"bal_hash\"] = self.block_access_list.keccak256()\n            new_env_values[\"block_access_list\"] = self.block_access_list\n        if (\n            not isinstance(self.block_access_list, Removable)\n            and self.block_access_list is not None\n        ):\n            new_env_values[\"block_access_list\"] = self.block_access_list\n        \"\"\"\n        These values are required, but they depend on the previous environment,\n        so they can be calculated here.\n        \"\"\"\n        if self.number is not None:\n            new_env_values[\"number\"] = self.number\n        else:\n            # calculate the next block number for the environment\n            if len(env.block_hashes) == 0:\n                new_env_values[\"number\"] = 0\n            else:\n                new_env_values[\"number\"] = max([Number(n) for n in env.block_hashes.keys()]) + 1\n\n        if self.timestamp is not None:\n            new_env_values[\"timestamp\"] = self.timestamp\n        else:\n            assert env.parent_timestamp is not None\n            new_env_values[\"timestamp\"] = int(Number(env.parent_timestamp) + 12)\n\n        return env.copy(**new_env_values)\n\n\nclass BuiltBlock(CamelModel):\n    \"\"\"Model that contains all properties to build a full block or payload.\"\"\"\n\n    header: FixtureHeader\n    env: Environment\n    alloc: Alloc\n    txs: List[Transaction]\n    ommers: List[FixtureHeader]\n    withdrawals: List[Withdrawal] | None\n    requests: List[Bytes] | None\n    result: Result\n    expected_exception: BLOCK_EXCEPTION_TYPE = None\n    engine_api_error_code: EngineAPIError | None = None\n    fork: Fork\n    block_access_list: BlockAccessList | None\n\n    def get_fixture_block(self) -> FixtureBlock | InvalidFixtureBlock:\n        \"\"\"Get a FixtureBlockBase from the built block.\"\"\"\n        fixture_block = FixtureBlockBase(\n            header=self.header,\n            txs=[FixtureTransaction.from_transaction(tx) for tx in self.txs],\n            withdrawals=(\n                [FixtureWithdrawal.from_withdrawal(w) for w in self.withdrawals]\n                if self.withdrawals is not None\n                else None\n            ),\n            block_access_list=self.block_access_list if self.block_access_list else None,\n            fork=self.fork,\n        ).with_rlp(txs=self.txs)\n\n        if self.expected_exception is not None:\n            return InvalidFixtureBlock(\n                rlp=fixture_block.rlp,\n                expect_exception=self.expected_exception,\n                rlp_decoded=(\n                    None\n                    if BlockException.RLP_STRUCTURES_ENCODING in self.expected_exception\n                    else fixture_block.without_rlp()\n                ),\n            )\n\n        return fixture_block\n\n    def get_block_rlp(self) -> Bytes:\n        \"\"\"Get the RLP of the block.\"\"\"\n        return self.get_fixture_block().rlp\n\n    def get_fixture_engine_new_payload(self) -> FixtureEngineNewPayload:\n        \"\"\"Get a FixtureEngineNewPayload from the built block.\"\"\"\n        return FixtureEngineNewPayload.from_fixture_header(\n            fork=self.fork,\n            header=self.header,\n            transactions=self.txs,\n            withdrawals=self.withdrawals,\n            requests=self.requests,\n            block_access_list=self.block_access_list.rlp if self.block_access_list else None,\n            validation_error=self.expected_exception,\n            error_code=self.engine_api_error_code,\n        )\n\n    def verify_transactions(self, transition_tool_exceptions_reliable: bool) -> List[int]:\n        \"\"\"Verify the transactions.\"\"\"\n        return verify_transactions(\n            txs=self.txs,\n            result=self.result,\n            transition_tool_exceptions_reliable=transition_tool_exceptions_reliable,\n        )\n\n    def verify_block_exception(self, transition_tool_exceptions_reliable: bool) -> None:\n        \"\"\"Verify the block exception.\"\"\"\n        got_exception: ExceptionWithMessage | UndefinedException | None = (\n            self.result.block_exception\n        )\n        # Verify exceptions that are not caught by the transition tool.\n        fork_block_rlp_size_limit = self.fork.block_rlp_size_limit(\n            block_number=self.env.number,\n            timestamp=self.env.timestamp,\n        )\n        if fork_block_rlp_size_limit is not None:\n            rlp_size = len(self.get_block_rlp())\n            if rlp_size > fork_block_rlp_size_limit:\n                got_exception = BlockExceptionWithMessage(\n                    exceptions=[BlockException.RLP_BLOCK_LIMIT_EXCEEDED],\n                    message=f\"Block RLP size limit exceeded: {rlp_size} > \"\n                    f\"{fork_block_rlp_size_limit}\",\n                )\n        verify_block(\n            block_number=self.env.number,\n            want_exception=self.expected_exception,\n            got_exception=got_exception,\n            transition_tool_exceptions_reliable=transition_tool_exceptions_reliable,\n        )\n\n\nGENESIS_ENVIRONMENT_DEFAULTS: Dict[str, Any] = {\n    \"fee_recipient\": 0,\n    \"number\": 0,\n    \"timestamp\": 0,\n    \"extra_data\": b\"\\x00\",\n    \"prev_randao\": 0,\n}\n\"\"\"\nDefault values for the genesis environment that are used to create all genesis\nheaders.\n\"\"\"\n\n\nclass BlockchainTest(BaseTest):\n    \"\"\"Filler type that tests multiple blocks (valid or invalid) in a chain.\"\"\"\n\n    pre: Alloc\n    post: Alloc\n    blocks: List[Block]\n    genesis_environment: Environment = Field(default_factory=Environment)\n    chain_id: int = 1\n    exclude_full_post_state_in_output: bool = False\n    \"\"\"\n    Exclude the post state from the fixture output. In this case, the state\n    verification is only performed based on the state root.\n    \"\"\"\n\n    supported_fixture_formats: ClassVar[Sequence[FixtureFormat | LabeledFixtureFormat]] = [\n        BlockchainFixture,\n        BlockchainEngineFixture,\n        BlockchainEngineXFixture,\n        BlockchainEngineSyncFixture,\n    ]\n    supported_execute_formats: ClassVar[Sequence[LabeledExecuteFormat]] = [\n        LabeledExecuteFormat(\n            TransactionPost,\n            \"blockchain_test\",\n            \"An execute test derived from a blockchain test\",\n        ),\n    ]\n\n    supported_markers: ClassVar[Dict[str, str]] = {\n        \"blockchain_test_engine_only\": \"Only generate a blockchain test engine fixture\",\n        \"blockchain_test_only\": \"Only generate a blockchain test fixture\",\n    }\n\n    @classmethod\n    def discard_fixture_format_by_marks(\n        cls,\n        fixture_format: FixtureFormat,\n        fork: Fork,\n        markers: List[pytest.Mark],\n    ) -> bool:\n        \"\"\"\n        Discard a fixture format from filling if the appropriate marker is\n        used.\n        \"\"\"\n        del fork\n\n        marker_names = [m.name for m in markers]\n        if fixture_format != BlockchainFixture and \"blockchain_test_only\" in marker_names:\n            return True\n        if (\n            fixture_format not in [BlockchainEngineFixture, BlockchainEngineXFixture]\n            and \"blockchain_test_engine_only\" in marker_names\n        ):\n            return True\n        return False\n\n    def get_genesis_environment(self, fork: Fork) -> Environment:\n        \"\"\"Get the genesis environment for pre-allocation groups.\"\"\"\n        modified_values = self.genesis_environment.set_fork_requirements(fork).model_dump(\n            exclude_unset=True\n        )\n        return Environment(**(GENESIS_ENVIRONMENT_DEFAULTS | modified_values))\n\n    def make_genesis(\n        self, *, fork: Fork, apply_pre_allocation_blockchain: bool\n    ) -> Tuple[Alloc, FixtureBlock]:\n        \"\"\"Create a genesis block from the blockchain test definition.\"\"\"\n        env = self.get_genesis_environment(fork)\n        assert env.withdrawals is None or len(env.withdrawals) == 0, (\n            \"withdrawals must be empty at genesis\"\n        )\n        assert env.parent_beacon_block_root is None or env.parent_beacon_block_root == Hash(0), (\n            \"parent_beacon_block_root must be empty at genesis\"\n        )\n\n        pre_alloc = self.pre\n        if apply_pre_allocation_blockchain:\n            pre_alloc = Alloc.merge(\n                Alloc.model_validate(fork.pre_allocation_blockchain()),\n                pre_alloc,\n            )\n        if empty_accounts := pre_alloc.empty_accounts():\n            raise Exception(f\"Empty accounts in pre state: {empty_accounts}\")\n        state_root = pre_alloc.state_root()\n        genesis = FixtureHeader.genesis(fork, env, state_root)\n\n        return (\n            pre_alloc,\n            FixtureBlockBase(\n                header=genesis,\n                withdrawals=None if env.withdrawals is None else [],\n            ).with_rlp(txs=[]),\n        )\n\n    def generate_block_data(\n        self,\n        t8n: TransitionTool,\n        fork: Fork,\n        block: Block,\n        previous_env: Environment,\n        previous_alloc: Alloc,\n        last_block: bool,\n    ) -> BuiltBlock:\n        \"\"\"\n        Generate common block data for both make_fixture and make_hive_fixture.\n        \"\"\"\n        env = block.set_environment(previous_env)\n        env = env.set_fork_requirements(fork)\n        txs = [tx.with_signature_and_sender() for tx in block.txs]\n\n        if failing_tx_count := len([tx for tx in txs if tx.error]) > 0:\n            if failing_tx_count > 1:\n                raise Exception(\n                    \"test correctness: only one transaction can produce an exception in a block\"\n                )\n            if not txs[-1].error:\n                raise Exception(\n                    \"test correctness: the transaction that produces an exception \"\n                    + \"must be the last transaction in the block\"\n                )\n\n        transition_tool_output = t8n.evaluate(\n            transition_tool_data=TransitionTool.TransitionToolData(\n                alloc=previous_alloc,\n                txs=txs,\n                env=env,\n                fork=fork,\n                chain_id=self.chain_id,\n                reward=fork.get_reward(block_number=env.number, timestamp=env.timestamp),\n                blob_schedule=fork.blob_schedule(),\n            ),\n            debug_output_path=self.get_next_transition_tool_output_path(),\n            slow_request=self.is_tx_gas_heavy_test(),\n        )\n\n        if transition_tool_output.result.opcode_count is not None:\n            if self._opcode_count is None:\n                self._opcode_count = transition_tool_output.result.opcode_count\n            else:\n                self._opcode_count += transition_tool_output.result.opcode_count\n\n        # One special case of the invalid transactions is the blob gas used,\n        # since this value is not included in the transition tool result, but\n        # it is included in the block header, and some clients check it before\n        # executing the block by simply counting the type-3 txs, we need to set\n        # the correct value by default.\n        blob_gas_used: int | None = None\n        if (\n            blob_gas_per_blob := fork.blob_gas_per_blob(\n                block_number=env.number, timestamp=env.timestamp\n            )\n        ) > 0:\n            blob_gas_used = blob_gas_per_blob * count_blobs(txs)\n\n        header = FixtureHeader(\n            **(\n                transition_tool_output.result.model_dump(\n                    exclude_none=True, exclude={\"blob_gas_used\", \"transactions_trie\"}\n                )\n                | env.model_dump(exclude_none=True, exclude={\"blob_gas_used\"})\n            ),\n            blob_gas_used=blob_gas_used,\n            transactions_trie=Transaction.list_root(txs),\n            extra_data=block.extra_data if block.extra_data is not None else b\"\",\n            fork=fork,\n        )\n\n        if block.header_verify is not None:\n            # Verify the header after transition tool processing.\n            try:\n                block.header_verify.verify(header)\n            except Exception as e:\n                raise Exception(f\"Verification of block {int(env.number)} failed\") from e\n\n        if last_block and self._operation_mode == OpMode.BENCHMARKING:\n            expected_benchmark_gas_used = self.expected_benchmark_gas_used\n            assert expected_benchmark_gas_used is not None, (\n                \"expected_benchmark_gas_used is not set\"\n            )\n            gas_used = int(transition_tool_output.result.gas_used)\n\n            if not self.skip_gas_used_validation:\n                assert gas_used == expected_benchmark_gas_used, (\n                    f\"gas_used ({gas_used}) does not match expected_benchmark_gas_used \"\n                    f\"({expected_benchmark_gas_used})\"\n                    f\", difference: {gas_used - expected_benchmark_gas_used}\"\n                )\n\n        requests_list: List[Bytes] | None = None\n        if fork.header_requests_required(block_number=header.number, timestamp=header.timestamp):\n            assert transition_tool_output.result.requests is not None, (\n                \"Requests are required for this block\"\n            )\n            requests = Requests(requests_lists=list(transition_tool_output.result.requests))\n\n            if Hash(requests) != header.requests_hash:\n                raise Exception(\n                    \"Requests root in header does not match the requests root in the transition \"\n                    \"tool output: \"\n                    f\"{header.requests_hash} != {Hash(requests)}\"\n                )\n\n            requests_list = requests.requests_list\n\n        if block.requests is not None:\n            header.requests_hash = Hash(Requests(requests_lists=list(block.requests)))\n            requests_list = block.requests\n\n        if fork.header_bal_hash_required(block_number=header.number, timestamp=header.timestamp):\n            assert transition_tool_output.result.block_access_list is not None, (\n                \"Block access list is required for this block but was not provided \"\n                \"by the transition tool\"\n            )\n\n            rlp = transition_tool_output.result.block_access_list.rlp\n            computed_bal_hash = Hash(rlp.keccak256())\n            assert computed_bal_hash == header.block_access_list_hash, (\n                \"Block access list hash in header does not match the \"\n                f\"computed hash from BAL: {header.block_access_list_hash} \"\n                f\"!= {computed_bal_hash}\"\n            )\n\n        if block.rlp_modifier is not None:\n            # Modify any parameter specified in the `rlp_modifier` after\n            # transition tool processing.\n            header = block.rlp_modifier.apply(header)\n            header.fork = fork  # Deleted during `apply` because `exclude=True`\n\n        # Process block access list - apply transformer if present for invalid\n        # tests\n        t8n_bal = transition_tool_output.result.block_access_list\n        bal = t8n_bal\n        if block.expected_block_access_list is not None and t8n_bal is not None:\n            block.expected_block_access_list.verify_against(t8n_bal)\n\n            bal = block.expected_block_access_list.modify_if_invalid_test(t8n_bal)\n            if bal != t8n_bal:\n                # If the BAL was modified, update the header hash\n                header.block_access_list_hash = Hash(bal.rlp.keccak256())\n\n        built_block = BuiltBlock(\n            header=header,\n            alloc=transition_tool_output.alloc,\n            env=env,\n            txs=txs,\n            ommers=[],\n            withdrawals=env.withdrawals,\n            requests=requests_list,\n            result=transition_tool_output.result,\n            expected_exception=block.exception,\n            engine_api_error_code=block.engine_api_error_code,\n            fork=fork,\n            block_access_list=bal,\n        )\n\n        try:\n            rejected_txs = built_block.verify_transactions(\n                transition_tool_exceptions_reliable=t8n.exception_mapper.reliable,\n            )\n            if (\n                not rejected_txs\n                and block.rlp_modifier is None\n                and block.requests is None\n                and not block.skip_exception_verification\n                and not (\n                    block.expected_block_access_list is not None\n                    and block.expected_block_access_list._modifier is not None\n                )\n            ):\n                # Only verify block level exception if: - No transaction\n                # exception was raised, because these are not reported as block\n                # exceptions. - No RLP modifier was specified, because the\n                # modifier is what normally produces the block exception. - No\n                # requests were specified, because modified requests are also\n                # what normally produces the block exception. - No BAL modifier\n                # was specified, because modified BAL also produces block\n                # exceptions.\n                built_block.verify_block_exception(\n                    transition_tool_exceptions_reliable=t8n.exception_mapper.reliable,\n                )\n            verify_result(transition_tool_output.result, env)\n        except Exception as e:\n            print_traces(t8n.get_traces())\n            pprint(transition_tool_output.result)\n            pprint(previous_alloc)\n            pprint(transition_tool_output.alloc)\n            raise e\n\n        if len(rejected_txs) > 0 and block.exception is None:\n            print_traces(t8n.get_traces())\n            raise Exception(\n                \"one or more transactions in `BlockchainTest` are \"\n                + \"intrinsically invalid, but the block was not expected \"\n                + \"to be invalid. Please verify whether the transaction \"\n                + \"was indeed expected to fail and add the proper \"\n                + \"`block.exception`\"\n            )\n\n        return built_block\n\n    def verify_post_state(\n        self, t8n: TransitionTool, t8n_state: Alloc, expected_state: Alloc | None = None\n    ) -> None:\n        \"\"\"Verify post alloc after all block/s or payload/s are generated.\"\"\"\n        try:\n            if expected_state:\n                expected_state.verify_post_alloc(t8n_state)\n            else:\n                self.post.verify_post_alloc(t8n_state)\n        except Exception as e:\n            print_traces(t8n.get_traces())\n            raise e\n\n    def make_fixture(\n        self,\n        t8n: TransitionTool,\n        fork: Fork,\n    ) -> BlockchainFixture:\n        \"\"\"Create a fixture from the blockchain test definition.\"\"\"\n        fixture_blocks: List[FixtureBlock | InvalidFixtureBlock] = []\n\n        pre, genesis = self.make_genesis(fork=fork, apply_pre_allocation_blockchain=True)\n\n        alloc = pre\n        env = environment_from_parent_header(genesis.header)\n        head = genesis.header.block_hash\n        invalid_blocks = 0\n        for i, block in enumerate(self.blocks):\n            # This is the most common case, the RLP needs to be constructed\n            # based on the transactions to be included in the block.\n            # Set the environment according to the block to execute.\n            built_block = self.generate_block_data(\n                t8n=t8n,\n                fork=fork,\n                block=block,\n                previous_env=env,\n                previous_alloc=alloc,\n                last_block=i == len(self.blocks) - 1,\n            )\n            fixture_blocks.append(built_block.get_fixture_block())\n\n            # BAL verification already done in to_fixture_bal() if\n            # expected_block_access_list set\n\n            if block.exception is None:\n                # Update env, alloc and last block hash for the next block.\n                alloc = built_block.alloc\n                env = apply_new_parent(built_block.env, built_block.header)\n                head = built_block.header.block_hash\n            else:\n                invalid_blocks += 1\n\n            if block.expected_post_state:\n                self.verify_post_state(\n                    t8n, t8n_state=alloc, expected_state=block.expected_post_state\n                )\n        self.check_exception_test(exception=invalid_blocks > 0)\n        self.verify_post_state(t8n, t8n_state=alloc)\n        info = {}\n        if self._opcode_count is not None:\n            info[\"opcode_count\"] = self._opcode_count.model_dump()\n        return BlockchainFixture(\n            fork=fork,\n            genesis=genesis.header,\n            genesis_rlp=genesis.rlp,\n            blocks=fixture_blocks,\n            last_block_hash=head,\n            pre=pre,\n            post_state=alloc if not self.exclude_full_post_state_in_output else None,\n            post_state_hash=alloc.state_root() if self.exclude_full_post_state_in_output else None,\n            config=FixtureConfig(\n                fork=fork,\n                blob_schedule=FixtureBlobSchedule.from_blob_schedule(fork.blob_schedule()),\n                chain_id=self.chain_id,\n            ),\n            info=info,\n        )\n\n    def make_hive_fixture(\n        self,\n        t8n: TransitionTool,\n        fork: Fork,\n        fixture_format: FixtureFormat = BlockchainEngineFixture,\n    ) -> BlockchainEngineFixture | BlockchainEngineXFixture | BlockchainEngineSyncFixture:\n        \"\"\"Create a hive fixture from the blocktest definition.\"\"\"\n        fixture_payloads: List[FixtureEngineNewPayload] = []\n\n        pre, genesis = self.make_genesis(\n            fork=fork,\n            apply_pre_allocation_blockchain=fixture_format != BlockchainEngineXFixture,\n        )\n        alloc = pre\n        env = environment_from_parent_header(genesis.header)\n        head_hash = genesis.header.block_hash\n        invalid_blocks = 0\n        for i, block in enumerate(self.blocks):\n            built_block = self.generate_block_data(\n                t8n=t8n,\n                fork=fork,\n                block=block,\n                previous_env=env,\n                previous_alloc=alloc,\n                last_block=i == len(self.blocks) - 1,\n            )\n            fixture_payloads.append(built_block.get_fixture_engine_new_payload())\n            if block.exception is None:\n                alloc = built_block.alloc\n                env = apply_new_parent(built_block.env, built_block.header)\n                head_hash = built_block.header.block_hash\n            else:\n                invalid_blocks += 1\n\n            if block.expected_post_state:\n                self.verify_post_state(\n                    t8n, t8n_state=alloc, expected_state=block.expected_post_state\n                )\n        self.check_exception_test(exception=invalid_blocks > 0)\n        fcu_version = fork.engine_forkchoice_updated_version(\n            block_number=built_block.header.number, timestamp=built_block.header.timestamp\n        )\n        assert fcu_version is not None, (\n            \"A hive fixture was requested but no forkchoice update is defined.\"\n            \" The framework should never try to execute this test case.\"\n        )\n\n        self.verify_post_state(t8n, t8n_state=alloc)\n\n        # Create base fixture data, common to all fixture formats\n        info = {}\n        if self._opcode_count is not None:\n            info[\"opcode_count\"] = self._opcode_count.model_dump()\n        fixture_data = {\n            \"fork\": fork,\n            \"genesis\": genesis.header,\n            \"payloads\": fixture_payloads,\n            \"last_block_hash\": head_hash,\n            \"post_state_hash\": alloc.state_root()\n            if self.exclude_full_post_state_in_output\n            else None,\n            \"config\": FixtureConfig(\n                fork=fork,\n                chain_id=self.chain_id,\n                blob_schedule=FixtureBlobSchedule.from_blob_schedule(fork.blob_schedule()),\n            ),\n            \"info\": info,\n        }\n\n        # Add format-specific fields\n        if fixture_format == BlockchainEngineXFixture:\n            # For Engine X format, exclude pre (will be provided via shared\n            # state) and prepare for state diff optimization\n            fixture_data.update(\n                {\n                    \"post_state\": alloc if not self.exclude_full_post_state_in_output else None,\n                    \"pre_hash\": \"\",  # Will be set by BaseTestWrapper\n                }\n            )\n            return BlockchainEngineXFixture(**fixture_data)\n        elif fixture_format == BlockchainEngineSyncFixture:\n            # Sync fixture format\n            assert genesis.header.block_hash != head_hash, (\n                \"Invalid payload tests negative test via sync is not supported yet.\"\n            )\n            # Most clients require the header to start the sync process, so we\n            # create an empty block on top of the last block of the test to\n            # send it as new payload and trigger the sync process.\n            sync_built_block = self.generate_block_data(\n                t8n=t8n,\n                fork=fork,\n                block=Block(),\n                previous_env=env,\n                previous_alloc=alloc,\n                last_block=False,\n            )\n            fixture_data.update(\n                {\n                    \"sync_payload\": sync_built_block.get_fixture_engine_new_payload(),\n                    \"pre\": pre,\n                    \"post_state\": alloc if not self.exclude_full_post_state_in_output else None,\n                }\n            )\n            return BlockchainEngineSyncFixture(**fixture_data)\n        else:\n            # Standard engine fixture\n            fixture_data.update(\n                {\n                    \"pre\": pre,\n                    \"post_state\": alloc if not self.exclude_full_post_state_in_output else None,\n                }\n            )\n            return BlockchainEngineFixture(**fixture_data)\n\n    def generate(\n        self,\n        t8n: TransitionTool,\n        fork: Fork,\n        fixture_format: FixtureFormat,\n    ) -> BaseFixture:\n        \"\"\"Generate the BlockchainTest fixture.\"\"\"\n        t8n.reset_traces()\n        if fixture_format in [\n            BlockchainEngineFixture,\n            BlockchainEngineXFixture,\n            BlockchainEngineSyncFixture,\n        ]:\n            return self.make_hive_fixture(t8n, fork, fixture_format)\n        elif fixture_format == BlockchainFixture:\n            return self.make_fixture(t8n, fork)\n\n        raise Exception(f\"Unknown fixture format: {fixture_format}\")\n\n    def execute(\n        self,\n        *,\n        fork: Fork,\n        execute_format: ExecuteFormat,\n    ) -> BaseExecute:\n        \"\"\"Generate the list of test fixtures.\"\"\"\n        del fork\n\n        if execute_format == TransactionPost:\n            blocks: List[List[Transaction]] = []\n            for block in self.blocks:\n                blocks += [block.txs]\n            # Pass gas validation params for benchmark tests\n            # If not benchmark mode, skip gas used validation\n            if self._operation_mode != OpMode.BENCHMARKING:\n                self.skip_gas_used_validation = True\n\n            return TransactionPost(\n                blocks=blocks,\n                post=self.post,\n                expected_benchmark_gas_used=self.expected_benchmark_gas_used,\n                skip_gas_used_validation=self.skip_gas_used_validation,\n            )\n        raise Exception(f\"Unsupported execute format: {execute_format}\")\n\n\nBlockchainTestSpec = Callable[[str], Generator[BlockchainTest, None, None]]\nBlockchainTestFiller = Type[BlockchainTest]\n"
  },
  {
    "path": "src/ethereum_test_specs/debugging.py",
    "content": "\"\"\"Test spec debugging tools.\"\"\"\n\nfrom typing import List\n\nfrom ethereum_clis import Traces\n\n\ndef print_traces(traces: List[Traces] | None) -> None:\n    \"\"\"Print the traces from the transition tool for debugging.\"\"\"\n    if traces is None:\n        print(\"Traces not collected. Use `--traces` to see detailed execution information.\")\n        return\n    print(\"Printing traces for debugging purposes:\")\n    for block_number, block in enumerate(traces):\n        print(f\"Block {block_number}:\")\n        block.print()\n"
  },
  {
    "path": "src/ethereum_test_specs/eof.py",
    "content": "\"\"\"Ethereum EOF test spec definition and filler.\"\"\"\n\nimport subprocess\nimport warnings\nfrom pathlib import Path\nfrom shutil import which\nfrom subprocess import CompletedProcess\nfrom typing import (\n    Annotated,\n    Any,\n    Callable,\n    ClassVar,\n    Dict,\n    Generator,\n    List,\n    Optional,\n    Sequence,\n    Type,\n)\n\nimport pytest\nfrom pydantic import Field, TypeAdapter\n\nfrom ethereum_clis import EvmoneExceptionMapper, TransitionTool\nfrom ethereum_test_base_types import Account, Bytes, HexNumber\nfrom ethereum_test_exceptions import (\n    EOFException,\n    ExceptionMapperValidator,\n    ExceptionWithMessage,\n    UndefinedException,\n)\nfrom ethereum_test_exceptions.exceptions import EOFExceptionInstanceOrList, to_pipe_str\nfrom ethereum_test_execution import (\n    BaseExecute,\n    ExecuteFormat,\n    LabeledExecuteFormat,\n    TransactionPost,\n)\nfrom ethereum_test_fixtures import (\n    BaseFixture,\n    EOFFixture,\n    FixtureFormat,\n    LabeledFixtureFormat,\n)\nfrom ethereum_test_fixtures.eof import Result, Vector\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_types import EOA, Alloc, Environment, Transaction\nfrom ethereum_test_types.eof.v1 import Container, ContainerKind, Section, SectionKind\nfrom ethereum_test_types.helpers import compute_eofcreate_address\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .base import BaseTest\nfrom .state import StateTest\n\nexisting_tests: Dict[Bytes, str] = {}\n\n\nclass EOFBaseExceptionError(Exception):\n    \"\"\"Base exception class for exceptions raised when verifying EOF code.\"\"\"\n\n    def __init__(self, message: str) -> None:\n        \"\"\"Initialize the exception with the message.\"\"\"\n        super().__init__(message)\n\n    @staticmethod\n    def format_code(code: Bytes, max_length: int = 60) -> str:\n        \"\"\"\n        Avoid printing long bytecode strings in the terminal upon test failure.\n        \"\"\"\n        if len(code) > max_length:\n            half_length = max_length // 2 - 5  # Floor; adjust for ellipsis\n            return f\"{code[:half_length].hex()}...{code[-half_length:].hex()}\"\n        return code.hex()\n\n\nclass UnexpectedEOFExceptionError(EOFBaseExceptionError):\n    \"\"\"\n    Exception used when valid EOF code unexpectedly raises an exception in\n    eofparse.\n    \"\"\"\n\n    def __init__(self, *, code: Bytes, got: str):\n        \"\"\"Initialize the exception with the code and the exception message.\"\"\"\n        message = (\n            \"Expected EOF code to be valid, but an exception occurred:\\n\"\n            f\"    Code: {self.format_code(code)}\\n\"\n            f\"Expected: No Exception\\n\"\n            f\"     Got: {got}\"\n        )\n        super().__init__(message)\n\n\nclass ExpectedEOFExceptionError(EOFBaseExceptionError):\n    \"\"\"\n    Exception used when EOF code is expected to raise an exception, but\n    eofparse did not raise an exception.\n    \"\"\"\n\n    def __init__(self, *, code: Bytes, expected: str):\n        \"\"\"\n        Initialize the exception with the code and the expected exception\n        message.\n        \"\"\"\n        message = (\n            \"Expected EOF code to be invalid, but no exception was raised:\\n\"\n            f\"    Code: {self.format_code(code)}\\n\"\n            f\"Expected: {expected}\\n\"\n            f\"     Got: No Exception\"\n        )\n        super().__init__(message)\n\n\nclass EOFExceptionMismatchError(EOFBaseExceptionError):\n    \"\"\"\n    Exception used when the actual EOF exception differs from the expected one.\n    \"\"\"\n\n    def __init__(self, code: Bytes, expected: str, got: str):\n        \"\"\"\n        Initialize the exception with the code, the expected/actual exception\n        message.\n        \"\"\"\n        message = (\n            \"EOF code raised a different exception than expected:\\n\"\n            f\"    Code: {self.format_code(code)}\\n\"\n            f\"Expected: {expected}\\n\"\n            f\"     Got: {got}\"\n        )\n        super().__init__(message)\n\n\nclass EOFExceptionWithMessage(ExceptionWithMessage[EOFException]):\n    \"\"\"Exception returned from the eof validator with a message.\"\"\"\n\n    pass\n\n\neof_exception_type_adapter: TypeAdapter[EOFExceptionWithMessage | UndefinedException] = (\n    TypeAdapter(Annotated[EOFExceptionWithMessage | UndefinedException, ExceptionMapperValidator])\n)\n\n\nclass EOFParse:\n    \"\"\"evmone-eofparse binary.\"\"\"\n\n    binary: Path\n\n    def __new__(cls) -> \"EOFParse\":\n        \"\"\"Make EOF binary a singleton.\"\"\"\n        if not hasattr(cls, \"instance\"):\n            cls.instance = super(EOFParse, cls).__new__(cls)\n        return cls.instance\n\n    def __init__(\n        self,\n        binary: Optional[Path | str] = None,\n    ):\n        \"\"\"Initialize the EOF binary.\"\"\"\n        if binary is None:\n            which_path = which(\"evmone-eofparse\")\n            if which_path is not None:\n                binary = Path(which_path)\n        if binary is None or not Path(binary).exists():\n            raise FileNotFoundError(\n                \"`evmone-eofparse` binary executable not found/not executable.\"\n            )\n        self.binary = Path(binary)\n\n    def run(self, *args: str, input_value: str | None = None) -> CompletedProcess:\n        \"\"\"Run evmone with the given arguments.\"\"\"\n        result = subprocess.run(\n            [self.binary, *args],\n            capture_output=True,\n            text=True,\n            input=input_value,\n        )\n        if result.returncode not in [0, 1]:\n            raise Exception(\n                f\"`{self.binary.name}` call failed with return code {result.returncode}.\"\n            )\n        return result\n\n\nclass EOFTest(BaseTest):\n    \"\"\"\n    Filler type that generates a test for EOF container validation.\n\n    A state test is also automatically generated where the container is wrapped\n    in a contract-creating transaction to test deployment/validation on the\n    instantiated blockchain.\n    \"\"\"\n\n    container: Container\n    \"\"\"\n    EOF container that will be tested for validity.\n\n    The only supported type at the moment is\n    `ethereum_test_types.eof.v1.Container`.\n\n    If an invalid container needs to be tested, and it cannot be generated\n    using the Container class features, the `raw_bytes` field can be used to\n    provide the raw container bytes.\n    \"\"\"\n    expect_exception: EOFExceptionInstanceOrList | None = None\n    \"\"\"\n    Expected exception that the container should raise when parsed by an EOF\n    parser.\n\n    Can be a single exception or a list of exceptions that the container is\n    expected to raise, in which case the test will pass if any of the\n    exceptions are raised.\n\n    The list of supported exceptions can be found in the\n    `ethereum_test_exceptions.EOFException` class.\n    \"\"\"\n    container_kind: ContainerKind = ContainerKind.RUNTIME\n    \"\"\"\n    Container kind type that the container should be treated as.\n\n    The container kind can be one of the following: - `ContainerKind.INITCODE`:\n    The container is an initcode container. - `ContainerKind.RUNTIME`: The\n    container is a runtime container.\n\n    The default value is `ContainerKind.RUNTIME`.\n    \"\"\"\n    deployed_container: Container | None = None\n    \"\"\"\n    To be used when the container is an initcode container and the expected\n    deployed container is known.\n\n    The value is only used when a State Test is generated from this EOF test to\n    set the expected deployed container that should be found in the post state.\n\n    If this field is not set, and the container is valid: - If the container\n    kind is `ContainerKind.RUNTIME`, the deployed container is assumed to be\n    the container itself, and an initcode container that wraps the container is\n    generated automatically. - If the container kind is\n    `ContainerKind.INITCODE`, `model_post_init` will attempt to infer the\n    deployed container from the sections of the init-container, and the first\n    container-type section will be used. An error will be raised if the\n    deployed container cannot be inferred.\n\n    If the value is set to `None`, it is assumed that the container is invalid\n    and the test will expect that no contract is created.\n\n    It is considered an error if: - The `deployed_container` field is set and\n    the `container_kind` field is not set to `ContainerKind.INITCODE`. - The\n    `deployed_container` field is set and the `expect_exception` is not `None`.\n\n    The deployed container is **not** executed at any point during the EOF\n    validation test nor the generated State Test. For container runtime testing\n    use the `EOFStateTest` class.\n    \"\"\"\n    pre: Alloc | None = None\n    \"\"\"\n    Pre alloc object that is used during State Test generation.\n\n    This field is automatically set by the test filler when generating a State\n    Test from this EOF test and should otherwise be left unset.\n    \"\"\"\n    post: Alloc | None = None\n    \"\"\"\n    Post alloc object that is used during State Test generation.\n\n    This field is automatically set by the test filler when generating a State\n    Test from this EOF test and is normally not set by the user.\n    \"\"\"\n    sender: EOA | None = None\n    \"\"\"\n    Sender EOA object that is used during State Test generation.\n\n    This field is automatically set by the `model_post_init` method and should\n    otherwise be left unset.\n    \"\"\"\n\n    supported_fixture_formats: ClassVar[Sequence[FixtureFormat | LabeledFixtureFormat]] = [\n        EOFFixture\n    ] + [\n        LabeledFixtureFormat(\n            fixture_format,\n            f\"{fixture_format.format_name}_from_eof_test\",\n            f\"A {fixture_format.format_name} generated from an eof_test.\",\n        )\n        for fixture_format in StateTest.supported_fixture_formats\n    ]\n\n    supported_execute_formats: ClassVar[Sequence[LabeledExecuteFormat]] = [\n        LabeledExecuteFormat(\n            execute_format,\n            f\"{execute_format.label}_from_eof_test\",\n            f\"A {execute_format.label} generated from an eof_test.\",\n        )\n        for execute_format in StateTest.supported_execute_formats\n    ]\n\n    supported_markers: ClassVar[Dict[str, str]] = {\n        \"eof_test_only\": \"Only generate an EOF test fixture\",\n    }\n\n    @classmethod\n    def discard_fixture_format_by_marks(\n        cls,\n        fixture_format: FixtureFormat,\n        fork: Fork,\n        markers: List[pytest.Mark],\n    ) -> bool:\n        \"\"\"\n        Discard a fixture format from filling if the appropriate marker is\n        used.\n        \"\"\"\n        del fork\n\n        if \"eof_test_only\" in [m.name for m in markers]:\n            return fixture_format != EOFFixture\n        return False\n\n    @classmethod\n    def pytest_parameter_name(cls) -> str:\n        \"\"\"Workaround for pytest parameter name.\"\"\"\n        return \"eof_test\"\n\n    def model_post_init(self, __context: Any) -> None:\n        \"\"\"Prepare the test exception based on the container.\"\"\"\n        if self.container.validity_error is not None:\n            if self.expect_exception is not None:\n                assert self.expect_exception == self.container.validity_error, (\n                    f\"Container validity error {self.container.validity_error} \"\n                    f\"does not match expected exception {self.expect_exception}.\"\n                )\n            self.expect_exception = self.container.validity_error  # type: ignore[assignment]\n            assert self.deployed_container is None, (\n                \"deployed_container must be None for invalid containers.\"\n            )\n        if \"kind\" in self.container.model_fields_set or \"container_kind\" in self.model_fields_set:\n            if (\n                \"kind\" in self.container.model_fields_set\n                and \"container_kind\" in self.model_fields_set\n            ):\n                assert self.container.kind == self.container_kind, (\n                    f\"Container kind type {str(self.container.kind)} \"\n                    f\"does not match test {self.container_kind}.\"\n                )\n            elif \"kind\" in self.container.model_fields_set:\n                self.container_kind = self.container.kind\n            elif \"container_kind\" in self.model_fields_set:\n                self.container.kind = self.container_kind\n\n        assert self.pre is not None, \"pre must be set to generate a StateTest.\"\n        self.sender = self.pre.fund_eoa()\n        if self.post is None:\n            self.post = Alloc()\n\n    def make_eof_test_fixture(\n        self,\n        *,\n        fork: Fork,\n    ) -> EOFFixture:\n        \"\"\"Generate the EOF test fixture.\"\"\"\n        container_bytes = Bytes(self.container)\n        if container_bytes in existing_tests:\n            pytest.fail(\n                f\"Duplicate EOF test: {container_bytes}, \"\n                f\"existing test: {existing_tests[container_bytes]}\"\n            )\n        existing_tests[container_bytes] = self.node_id()\n        vectors = [\n            Vector(\n                code=container_bytes,\n                container_kind=self.container_kind,\n                results={\n                    fork: Result(\n                        exception=self.expect_exception,\n                        valid=self.expect_exception is None,\n                    ),\n                },\n            )\n        ]\n        fixture = EOFFixture(vectors=dict(enumerate(vectors)))\n        try:\n            eof_parse = EOFParse()\n        except FileNotFoundError as e:\n            warnings.warn(\n                f\"{e} Skipping EOF fixture verification. Fixtures may be invalid!\", stacklevel=2\n            )\n            return fixture\n\n        for _, vector in fixture.vectors.items():\n            expected_result = vector.results.get(fork)\n            if expected_result is None:\n                raise Exception(f\"EOF Fixture missing vector result for fork: {fork}\")\n            args = []\n            if vector.container_kind == ContainerKind.INITCODE:\n                args.append(\"--initcode\")\n            result = eof_parse.run(*args, input_value=str(vector.code))\n            self.verify_result(result, expected_result, vector.code)\n\n        return fixture\n\n    def verify_result(\n        self, result: CompletedProcess, expected_result: Result, code: Bytes\n    ) -> None:\n        \"\"\"\n        Check that the reported exception string matches the expected error.\n        \"\"\"\n        evmone_exception_mapper = EvmoneExceptionMapper()\n        actual_exception_str = result.stdout.strip()\n        actual_exception: EOFExceptionWithMessage | UndefinedException | None = None\n        if not actual_exception_str.startswith(\"OK\"):\n            actual_exception = eof_exception_type_adapter.validate_python(\n                actual_exception_str, context={\"exception_mapper\": evmone_exception_mapper}\n            )\n\n        if expected_result.exception is None:\n            if actual_exception is not None:\n                raise UnexpectedEOFExceptionError(code=code, got=f\"{actual_exception}\")\n        else:\n            expected_string = to_pipe_str(expected_result.exception)\n            if actual_exception is None:\n                raise ExpectedEOFExceptionError(\n                    code=code,\n                    expected=f\"{expected_string}\",\n                )\n            if (\n                not isinstance(actual_exception, EOFExceptionWithMessage)\n                or expected_result.exception not in actual_exception\n            ):\n                raise EOFExceptionMismatchError(\n                    code=code,\n                    expected=f\"{expected_string}\",\n                    got=f\"{actual_exception}\",\n                )\n\n    def generate_eof_contract_create_transaction(self) -> Transaction:\n        \"\"\"Generate a transaction that creates a contract.\"\"\"\n        assert self.sender is not None, \"sender must be set to generate a StateTest.\"\n        assert self.post is not None, \"post must be set to generate a StateTest.\"\n        assert self.pre is not None, \"pre must be set to generate a StateTest.\"\n\n        initcode: Container\n        deployed_container: Container | Bytes | None = None\n        if self.container_kind == ContainerKind.INITCODE:\n            initcode = self.container\n            if \"deployed_container\" in self.model_fields_set:\n                # In the case of an initcontainer where we know the deployed\n                # container, we can use the initcontainer as-is.\n                deployed_container = self.deployed_container\n            elif self.expect_exception is None:\n                # We have a valid init-container, but we don't know the\n                # deployed container. Try to infer the deployed container from\n                # the sections of the init-container.\n                assert self.container.raw_bytes is None, (\n                    \"deployed_container must be set for initcode containers with raw_bytes.\"\n                )\n                for section in self.container.sections:\n                    if section.kind == SectionKind.CONTAINER:\n                        deployed_container = section.data\n                        break\n\n                assert deployed_container is not None, (\n                    \"Unable to infer deployed container for init-container. \"\n                    \"Use field `deployed_container` to set the expected deployed container.\"\n                )\n        else:\n            assert self.deployed_container is None, (\n                \"deployed_container must be None for runtime containers.\"\n            )\n            initcode = Container(\n                sections=[\n                    Section.Code(Op.RETURNCODE[0](0, 0)),\n                    Section.Container(self.container),\n                ]\n            )\n            deployed_container = self.container\n\n        factory_address = self.pre.deploy_contract(\n            Op.TXCREATE(tx_initcode_hash=initcode.hash) + Op.STOP\n        )\n\n        tx = Transaction(\n            sender=self.sender,\n            to=factory_address,\n            gas_limit=10_000_000,\n            max_priority_fee_per_gas=10,\n            max_fee_per_gas=10,\n            initcodes=[initcode],\n        )\n\n        if self.expect_exception is not None or deployed_container is None:\n            self.post[compute_eofcreate_address(factory_address, 0)] = None\n        else:\n            self.post[compute_eofcreate_address(factory_address, 0)] = Account(\n                code=deployed_container,\n            )\n        return tx\n\n    def generate_state_test(self, fork: Fork) -> StateTest:\n        \"\"\"Generate the StateTest filler.\"\"\"\n        del fork\n        return StateTest.from_test(\n            base_test=self,\n            pre=self.pre,\n            tx=self.generate_eof_contract_create_transaction(),\n            env=Environment(),\n            post=self.post,\n        )\n\n    def generate(\n        self,\n        *,\n        t8n: TransitionTool,\n        fork: Fork,\n        fixture_format: FixtureFormat,\n        **_: Any,\n    ) -> BaseFixture:\n        \"\"\"Generate the BlockchainTest fixture.\"\"\"\n        if fixture_format == EOFFixture:\n            return self.make_eof_test_fixture(fork=fork)\n        elif fixture_format in StateTest.supported_fixture_formats:\n            return self.generate_state_test(fork).generate(\n                t8n=t8n, fork=fork, fixture_format=fixture_format\n            )\n        raise Exception(f\"Unknown fixture format: {fixture_format}\")\n\n    def execute(\n        self,\n        *,\n        fork: Fork,\n        execute_format: ExecuteFormat,\n    ) -> BaseExecute:\n        \"\"\"Generate the list of test fixtures.\"\"\"\n        if execute_format == TransactionPost:\n            return self.generate_state_test(fork).execute(fork=fork, execute_format=execute_format)\n        raise Exception(f\"Unsupported execute format: {execute_format}\")\n\n\nEOFTestSpec = Callable[[str], Generator[EOFTest, None, None]]\nEOFTestFiller = Type[EOFTest]\n\n\nclass EOFStateTest(EOFTest, Transaction):\n    \"\"\"\n    Filler type that generates an EOF test for container validation, and also\n    tests the container during runtime using a state test (and blockchain\n    test).\n\n    In the state or blockchain test, the container is first deployed to the\n    pre-allocation and then a transaction is sent to the deployed container.\n\n    Container deployment/validation is **not** tested like in the `EOFTest`\n    unless the container under test is an initcode container.\n\n    All fields from `ethereum_test_types.Transaction` are available for use in\n    the test.\n    \"\"\"\n\n    gas_limit: HexNumber = Field(HexNumber(10_000_000), serialization_alias=\"gas\")\n    \"\"\"Gas limit for the transaction that deploys the container.\"\"\"\n    tx_sender_funding_amount: int = 1_000_000_000_000_000_000_000\n    \"\"\"Amount of funds to send to the sender EOA before the transaction.\"\"\"\n    env: Environment = Field(default_factory=Environment)\n    \"\"\"Environment object that is used during State Test generation.\"\"\"\n    container_post: Account = Field(default_factory=Account)\n    \"\"\"Account object used to verify the container post state.\"\"\"\n\n    supported_fixture_formats: ClassVar[Sequence[FixtureFormat | LabeledFixtureFormat]] = [\n        EOFFixture\n    ] + [\n        LabeledFixtureFormat(\n            fixture_format,\n            f\"eof_{fixture_format.format_name}\",\n            f\"Tests that generate an EOF {fixture_format.format_name}.\",\n        )\n        for fixture_format in StateTest.supported_fixture_formats\n    ]\n\n    supported_execute_formats: ClassVar[Sequence[LabeledExecuteFormat]] = [\n        LabeledExecuteFormat(\n            execute_format,\n            f\"eof_{execute_format.label}\",\n            f\"Tests that generate an EOF {execute_format.label}.\",\n        )\n        for execute_format in StateTest.supported_execute_formats\n    ]\n\n    @classmethod\n    def pytest_parameter_name(cls) -> str:\n        \"\"\"Workaround for pytest parameter name.\"\"\"\n        return \"eof_state_test\"\n\n    def model_post_init(self, __context: Any) -> None:\n        \"\"\"Prepare the transaction parameters required to fill the test.\"\"\"\n        assert self.pre is not None, \"pre must be set to generate a StateTest.\"\n\n        EOFTest.model_post_init(self, __context)\n\n        self.sender = self.pre.fund_eoa(amount=self.tx_sender_funding_amount)\n        if self.post is None:\n            self.post = Alloc()\n\n        if self.expect_exception is not None and self.container_kind == ContainerKind.RUNTIME:\n            # Invalid EOF runtime code\n            initcode = Container.Init(deploy_container=self.container)\n            self.to = self.pre.deploy_contract(\n                Op.TXCREATE(tx_initcode_hash=initcode.hash) + Op.STOP\n            )\n            self.initcodes = [initcode]  # type: ignore[list-item]\n\n            # Run transaction model validation\n            Transaction.model_post_init(self, __context)\n\n            self.post[compute_eofcreate_address(self.to, 0)] = None  # Expect\n        # failure.\n        elif self.expect_exception is not None and self.container_kind == ContainerKind.INITCODE:\n            # Invalid EOF initcode\n            self.to = self.pre.deploy_contract(\n                Op.TXCREATE(tx_initcode_hash=self.container.hash) + Op.STOP\n            )\n            self.initcodes = [self.container]  # type: ignore[list-item]\n\n            # Run transaction model validation\n            Transaction.model_post_init(self, __context)\n\n            self.post[compute_eofcreate_address(self.to, 0)] = None  # Expect\n            # failure.\n        elif self.container_kind == ContainerKind.INITCODE:\n            self.to = self.pre.deploy_contract(\n                Op.TXCREATE(tx_initcode_hash=self.container.hash) + Op.STOP\n            )\n            self.initcodes = [self.container]  # type: ignore[list-item]\n\n            # Run transaction model validation\n            Transaction.model_post_init(self, __context)\n\n            self.post[compute_eofcreate_address(self.to, 0)] = self.container_post\n        else:\n            self.to = self.pre.deploy_contract(code=self.container)\n\n            # Run transaction model validation\n            Transaction.model_post_init(self, __context)\n\n            self.post[self.to] = self.container_post\n\n    def generate_state_test(self, fork: Fork) -> StateTest:\n        \"\"\"Generate the StateTest filler.\"\"\"\n        del fork\n\n        assert self.pre is not None, \"pre must be set to generate a StateTest.\"\n        assert self.post is not None, \"post must be set to generate a StateTest.\"\n\n        return StateTest.from_test(\n            base_test=self,\n            pre=self.pre,\n            tx=self,\n            env=self.env,\n            post=self.post,\n        )\n\n    def generate(\n        self,\n        *,\n        t8n: TransitionTool,\n        fork: Fork,\n        fixture_format: FixtureFormat,\n        **_: Any,\n    ) -> BaseFixture:\n        \"\"\"Generate the BlockchainTest fixture.\"\"\"\n        if fixture_format == EOFFixture:\n            if Bytes(self.container) in existing_tests:\n                # Gracefully skip duplicate tests because one EOFStateTest can\n                # generate multiple state fixtures with the same data.\n                pytest.skip(f\"Duplicate EOF container on EOFStateTest: {self.node_id()}\")\n            return self.make_eof_test_fixture(fork=fork)\n        elif fixture_format in StateTest.supported_fixture_formats:\n            return self.generate_state_test(fork).generate(\n                t8n=t8n, fork=fork, fixture_format=fixture_format\n            )\n\n        raise Exception(f\"Unknown fixture format: {fixture_format}\")\n\n\nEOFStateTestSpec = Callable[[str], Generator[EOFStateTest, None, None]]\nEOFStateTestFiller = Type[EOFStateTest]\n"
  },
  {
    "path": "src/ethereum_test_specs/helpers.py",
    "content": "\"\"\"Helper functions.\"\"\"\n\nfrom dataclasses import dataclass\nfrom enum import StrEnum\nfrom typing import Any, Dict, List\n\nfrom ethereum_clis import Result\nfrom ethereum_test_exceptions import (\n    BlockException,\n    ExceptionBase,\n    ExceptionWithMessage,\n    TransactionException,\n    UndefinedException,\n)\nfrom ethereum_test_types import Transaction, TransactionReceipt\n\n\nclass ExecutionContext(StrEnum):\n    \"\"\"The execution context in which a test case can fail.\"\"\"\n\n    BLOCK = \"Block\"\n    TRANSACTION = \"Transaction\"\n\n\nclass UnexpectedExecutionSuccessError(Exception):\n    \"\"\"\n    Exception used when the transaction expected to fail succeeded instead.\n    \"\"\"\n\n    def __init__(self, execution_context: ExecutionContext, **kwargs: Any) -> None:\n        \"\"\"Initialize the unexpected success exception.\"\"\"\n        message = (\n            f\"\\nUnexpected success for {execution_context.value} ({kwargs}):\"\n            f\"\\n  What: {execution_context.value} unexpectedly succeeded!\"\n        )\n        super().__init__(message)\n\n\nclass UnexpectedExecutionFailError(Exception):\n    \"\"\"\n    Exception used when a transaction/block expected to succeed failed instead.\n    \"\"\"\n\n    def __init__(\n        self,\n        execution_context: ExecutionContext,\n        message: str,\n        exception: ExceptionWithMessage | UndefinedException,\n        **kwargs: Any,\n    ) -> None:\n        \"\"\"Initialize the exception.\"\"\"\n        message = (\n            f\"Unexpected fail for {execution_context.value} ({kwargs}):\"\n            f\"\\n   What: {execution_context.value} unexpectedly failed!\"\n            f'\\n  Error: \"{message}\" ({exception})'\n        )\n        super().__init__(message)\n\n\nclass UndefinedExecutionExceptionError(Exception):\n    \"\"\"\n    Exception used when a client's exception message isn't present in its\n    `ExceptionMapper`.\n    \"\"\"\n\n    def __init__(\n        self,\n        execution_context: ExecutionContext,\n        want_exception: ExceptionBase | List[ExceptionBase],\n        got_exception: UndefinedException,\n        **kwargs: Any,\n    ) -> None:\n        \"\"\"Initialize the exception.\"\"\"\n        message = (\n            f\"Exception mismatch on {execution_context.value} ({kwargs}):\"\n            f\"\\n   What: {execution_context.value} exception mismatch!\"\n            f\"\\n   Want: {want_exception}\"\n            f'\\n    Got: \"{got_exception}\"'\n            \"\\n No exception defined for error message got, please add it to \"\n            f\"{got_exception.mapper_name}\"\n        )\n        super().__init__(message)\n\n\nclass ExecutionExceptionMismatchError(Exception):\n    \"\"\"\n    Exception used when the actual block/transaction error string differs from\n    the expected one.\n    \"\"\"\n\n    def __init__(\n        self,\n        execution_context: ExecutionContext,\n        want_exception: ExceptionBase | List[ExceptionBase],\n        got_exception: ExceptionWithMessage,\n        got_message: str,\n        **kwargs: Any,\n    ) -> None:\n        \"\"\"Initialize the exception.\"\"\"\n        message = (\n            f\"Exception mismatch on {execution_context.value} ({kwargs}):\"\n            f\"\\n   What: {execution_context.value} exception mismatch!\"\n            f\"\\n   Want: {want_exception}\"\n            f'\\n    Got: \"{got_exception}\" (\"{got_message}\")'\n        )\n        super().__init__(message)\n\n\nclass TransactionReceiptMismatchError(Exception):\n    \"\"\"\n    Exception used when the actual transaction receipt differs from the\n    expected one.\n    \"\"\"\n\n    def __init__(\n        self,\n        index: int,\n        field_name: str,\n        expected_value: Any,\n        actual_value: Any,\n    ):\n        \"\"\"Initialize the exception.\"\"\"\n        message = (\n            f\"\\nTransactionReceiptMismatch (pos={index}):\"\n            f\"\\n   What: {field_name} mismatch!\"\n            f\"\\n   Want: {expected_value}\"\n            f\"\\n    Got: {actual_value}\"\n        )\n        super().__init__(message)\n\n\n@dataclass\nclass ExceptionInfo:\n    \"\"\"Info to print transaction exception error messages.\"\"\"\n\n    execution_context: ExecutionContext\n    want_exception: List[ExceptionBase] | ExceptionBase | None\n    got_exception: ExceptionWithMessage | UndefinedException | None\n    got_message: str | None\n    context: Dict[str, Any]\n\n    def __init__(\n        self,\n        *,\n        execution_context: ExecutionContext,\n        want_exception: List[ExceptionBase] | ExceptionBase | None,\n        got_exception: ExceptionWithMessage | UndefinedException | None,\n        context: Dict[str, Any],\n    ):\n        \"\"\"Initialize the exception.\"\"\"\n        self.execution_context = execution_context\n        self.want_exception = want_exception\n        self.got_exception = got_exception\n        if self.got_exception is None:\n            self.got_message = None\n        else:\n            self.got_message = (\n                got_exception.message\n                if isinstance(got_exception, ExceptionWithMessage)\n                else str(got_exception)\n            )\n        self.context = context\n\n    def verify(self: \"ExceptionInfo\", *, strict_match: bool) -> None:\n        \"\"\"Verify the exception.\"\"\"\n        want_exception, got_exception = (\n            self.want_exception,\n            self.got_exception,\n        )\n        if want_exception and not got_exception:\n            raise UnexpectedExecutionSuccessError(\n                execution_context=self.execution_context, **self.context\n            )\n        elif not want_exception and got_exception:\n            assert self.got_message is not None\n            raise UnexpectedExecutionFailError(\n                execution_context=self.execution_context,\n                message=self.got_message,\n                exception=got_exception,\n                **self.context,\n            )\n        elif want_exception and got_exception:\n            if isinstance(got_exception, UndefinedException):\n                raise UndefinedExecutionExceptionError(\n                    execution_context=self.execution_context,\n                    want_exception=want_exception,\n                    got_exception=got_exception,\n                    **self.context,\n                )\n            if strict_match:\n                if want_exception not in got_exception:\n                    got_message = self.got_message\n                    assert got_message is not None\n                    raise ExecutionExceptionMismatchError(\n                        execution_context=self.execution_context,\n                        want_exception=want_exception,\n                        got_exception=got_exception,\n                        got_message=got_message,\n                        **self.context,\n                    )\n\n\nclass TransactionExceptionInfo(ExceptionInfo):\n    \"\"\"Info to print transaction exception error messages.\"\"\"\n\n    def __init__(\n        self,\n        tx: Transaction,\n        tx_index: int,\n        **kwargs: Any,\n    ) -> None:\n        \"\"\"Initialize the exception.\"\"\"\n        super().__init__(\n            execution_context=ExecutionContext.TRANSACTION,\n            want_exception=tx.error,  # type: ignore\n            context={\"index\": tx_index, \"nonce\": tx.nonce},\n            **kwargs,\n        )\n\n\nclass BlockExceptionInfo(ExceptionInfo):\n    \"\"\"Info to print block exception error messages.\"\"\"\n\n    def __init__(\n        self,\n        block_number: int,\n        **kwargs: Any,\n    ) -> None:\n        \"\"\"Initialize the exception.\"\"\"\n        super().__init__(\n            execution_context=ExecutionContext.BLOCK,\n            context={\"number\": block_number},\n            **kwargs,\n        )\n\n\ndef verify_transaction_receipt(\n    transaction_index: int,\n    expected_receipt: TransactionReceipt | None,\n    actual_receipt: TransactionReceipt | None,\n) -> None:\n    \"\"\"\n    Verify the actual receipt against the expected one.\n\n    If the expected receipt is None, validation is skipped.\n\n    Only verifies non-None values in the expected receipt if any.\n    \"\"\"\n    if expected_receipt is None:\n        return\n    assert actual_receipt is not None\n    if (\n        expected_receipt.gas_used is not None\n        and actual_receipt.gas_used != expected_receipt.gas_used\n    ):\n        raise TransactionReceiptMismatchError(\n            index=transaction_index,\n            field_name=\"gas_used\",\n            expected_value=expected_receipt.gas_used,\n            actual_value=actual_receipt.gas_used,\n        )\n    # TODO: Add more fields as needed\n\n\ndef verify_transactions(\n    *,\n    txs: List[Transaction],\n    result: Result,\n    transition_tool_exceptions_reliable: bool,\n) -> List[int]:\n    \"\"\"\n    Verify accepted and rejected (if any) transactions against the expected\n    outcome. Raises exception on unexpected rejections, unexpected successful\n    txs, or successful txs with unexpected receipt values.\n    \"\"\"\n    rejected_txs: Dict[int, ExceptionWithMessage | UndefinedException] = {\n        rejected_tx.index: rejected_tx.error for rejected_tx in result.rejected_transactions\n    }\n\n    receipt_index = 0\n    for i, tx in enumerate(txs):\n        error_message = rejected_txs[i] if i in rejected_txs else None\n        info = TransactionExceptionInfo(\n            tx=tx,\n            tx_index=i,\n            got_exception=error_message,\n        )\n        info.verify(strict_match=transition_tool_exceptions_reliable)\n        if error_message is None:\n            verify_transaction_receipt(i, tx.expected_receipt, result.receipts[receipt_index])\n            receipt_index += 1\n\n    return list(rejected_txs.keys())\n\n\ndef verify_block(\n    *,\n    block_number: int,\n    want_exception: List[TransactionException | BlockException]\n    | TransactionException\n    | BlockException\n    | None,\n    got_exception: ExceptionWithMessage | UndefinedException | None,\n    transition_tool_exceptions_reliable: bool,\n) -> None:\n    \"\"\"Verify the block exception against the expected one.\"\"\"\n    info = BlockExceptionInfo(\n        block_number=block_number,\n        want_exception=want_exception,\n        got_exception=got_exception,\n    )\n    info.verify(strict_match=transition_tool_exceptions_reliable)\n"
  },
  {
    "path": "src/ethereum_test_specs/py.typed",
    "content": ""
  },
  {
    "path": "src/ethereum_test_specs/state.py",
    "content": "\"\"\"Ethereum state test spec definition and filler.\"\"\"\n\nfrom pprint import pprint\nfrom typing import Any, Callable, ClassVar, Dict, Generator, List, Optional, Sequence, Type\n\nimport pytest\nfrom pydantic import Field\n\nfrom ethereum_clis import TransitionTool, TransitionToolOutput\nfrom ethereum_test_base_types import HexNumber\nfrom ethereum_test_exceptions import BlockException, EngineAPIError, TransactionException\nfrom ethereum_test_execution import (\n    BaseExecute,\n    ExecuteFormat,\n    LabeledExecuteFormat,\n    TransactionPost,\n)\nfrom ethereum_test_fixtures import (\n    BaseFixture,\n    FixtureFormat,\n    LabeledFixtureFormat,\n    StateFixture,\n)\nfrom ethereum_test_fixtures.common import FixtureBlobSchedule\nfrom ethereum_test_fixtures.state import (\n    FixtureConfig,\n    FixtureEnvironment,\n    FixtureForkPost,\n    FixtureTransaction,\n)\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_types import (\n    Alloc,\n    BlockAccessListExpectation,\n    Environment,\n    Transaction,\n)\nfrom pytest_plugins.custom_logging import get_logger\n\nfrom .base import BaseTest, OpMode\nfrom .blockchain import Block, BlockchainTest, Header\nfrom .debugging import print_traces\nfrom .helpers import verify_transactions\n\nlogger = get_logger(__name__)\n\n\nclass StateTest(BaseTest):\n    \"\"\"\n    Filler type that tests transactions over the period of a single block.\n    \"\"\"\n\n    env: Environment = Field(default_factory=Environment)\n    pre: Alloc\n    post: Alloc\n    tx: Transaction\n    block_exception: (\n        List[TransactionException | BlockException] | TransactionException | BlockException | None\n    ) = None\n    engine_api_error_code: Optional[EngineAPIError] = None\n    blockchain_test_header_verify: Optional[Header] = None\n    blockchain_test_rlp_modifier: Optional[Header] = None\n    expected_block_access_list: Optional[BlockAccessListExpectation] = None\n    chain_id: int = 1\n\n    supported_fixture_formats: ClassVar[Sequence[FixtureFormat | LabeledFixtureFormat]] = [\n        StateFixture,\n    ] + [\n        LabeledFixtureFormat(\n            fixture_format,\n            f\"{fixture_format.format_name}_from_state_test\",\n            f\"A {fixture_format.format_name} generated from a state_test\",\n        )\n        for fixture_format in BlockchainTest.supported_fixture_formats\n        # Exclude sync fixtures from state tests - they don't make sense for\n        # state tests\n        if not (\n            (hasattr(fixture_format, \"__name__\") and \"Sync\" in fixture_format.__name__)\n            or (hasattr(fixture_format, \"format\") and \"Sync\" in fixture_format.format.__name__)\n        )\n    ]\n    supported_execute_formats: ClassVar[Sequence[LabeledExecuteFormat]] = [\n        LabeledExecuteFormat(\n            TransactionPost,\n            \"state_test\",\n            \"An execute test derived from a state test\",\n        ),\n    ]\n\n    supported_markers: ClassVar[Dict[str, str]] = {\n        \"state_test_only\": \"Only generate a state test fixture\",\n    }\n\n    def verify_modified_gas_limit(\n        self,\n        *,\n        t8n: TransitionTool,\n        base_tool_output: TransitionToolOutput,\n        fork: Fork,\n        current_gas_limit: int,\n        pre_alloc: Alloc,\n        env: Environment,\n        enable_post_processing: bool,\n    ) -> bool:\n        \"\"\"Verify a new lower gas limit yields the same transaction outcome.\"\"\"\n        base_traces = base_tool_output.result.traces\n        assert base_traces is not None, \"Traces not collected for gas optimization\"\n        new_tx = self.tx.copy(gas_limit=current_gas_limit).with_signature_and_sender()\n        modified_tool_output = t8n.evaluate(\n            transition_tool_data=TransitionTool.TransitionToolData(\n                alloc=pre_alloc,\n                txs=[new_tx],\n                env=env,\n                fork=fork,\n                chain_id=self.chain_id,\n                reward=0,  # Reward on state tests is always zero\n                blob_schedule=fork.blob_schedule(),\n                state_test=True,\n            ),\n            debug_output_path=self.get_next_transition_tool_output_path(),\n            slow_request=self.is_tx_gas_heavy_test(),\n        )\n        modified_traces = modified_tool_output.result.traces\n        assert modified_traces is not None, \"Traces not collected for gas optimization\"\n        if not base_traces.are_equivalent(\n            modified_tool_output.result.traces,\n            enable_post_processing,\n        ):\n            logger.debug(f\"Traces are not equivalent (gas_limit={current_gas_limit})\")\n            return False\n        try:\n            self.post.verify_post_alloc(modified_tool_output.alloc)\n        except Exception as e:\n            logger.debug(f\"Post alloc is not equivalent (gas_limit={current_gas_limit})\")\n            logger.debug(e)\n            return False\n        try:\n            verify_transactions(\n                txs=[new_tx],\n                result=modified_tool_output.result,\n                transition_tool_exceptions_reliable=t8n.exception_mapper.reliable,\n            )\n        except Exception as e:\n            logger.debug(f\"Transactions are not equivalent (gas_limit={current_gas_limit})\")\n            logger.debug(e)\n            return False\n        if len(base_tool_output.alloc.root) != len(modified_tool_output.alloc.root):\n            logger.debug(f\"Post alloc is not equivalent (gas_limit={current_gas_limit})\")\n            return False\n        if modified_tool_output.alloc.root.keys() != modified_tool_output.alloc.root.keys():\n            logger.debug(f\"Post alloc is not equivalent (gas_limit={current_gas_limit})\")\n            return False\n        for k in base_tool_output.alloc.root.keys():\n            if k not in modified_tool_output.alloc:\n                logger.debug(f\"Post alloc is not equivalent (gas_limit={current_gas_limit})\")\n                return False\n            base_account = base_tool_output.alloc[k]\n            modified_account = modified_tool_output.alloc[k]\n            if (modified_account is None) != (base_account is None):\n                logger.debug(f\"Post alloc is not equivalent (gas_limit={current_gas_limit})\")\n                return False\n            if (\n                modified_account is not None\n                and base_account is not None\n                and base_account.nonce != modified_account.nonce\n            ):\n                logger.debug(f\"Post alloc is not equivalent (gas_limit={current_gas_limit})\")\n                return False\n        logger.debug(f\"Gas limit is equivalent (gas_limit={current_gas_limit})\")\n        return True\n\n    @classmethod\n    def discard_fixture_format_by_marks(\n        cls,\n        fixture_format: FixtureFormat,\n        fork: Fork,\n        markers: List[pytest.Mark],\n    ) -> bool:\n        \"\"\"\n        Discard a fixture format from filling if the appropriate marker is\n        used.\n        \"\"\"\n        del fork\n\n        if \"state_test_only\" in [m.name for m in markers]:\n            return fixture_format != StateFixture\n        return False\n\n    def _generate_blockchain_genesis_environment(self, *, fork: Fork) -> Environment:\n        \"\"\"\n        Generate the genesis environment for the BlockchainTest formatted test.\n        \"\"\"\n        assert self.env.number >= 1, (\n            \"genesis block number cannot be negative, set state test env.number to at least 1\"\n        )\n        assert self.env.timestamp >= 1, (\n            \"genesis timestamp cannot be negative, set state test env.timestamp to at least 1\"\n        )\n        # There's only a handful of values that we need to set in the genesis\n        # for the environment values at block 1 to make sense:\n        # - Number: Needs to be N minus 1\n        # - Timestamp: Needs to be zero, because the subsequent\n        #              block can come at any time.\n        # - Gas Limit: Changes from parent to child, needs to be set in genesis\n        # - Base Fee Per Gas: Block's base fee depends on the parent's value\n        # - Excess Blob Gas: Block's excess blob gas value depends on\n        #                    the parent's value\n        kwargs: Dict[str, Any] = {\n            \"number\": self.env.number - 1,\n            \"timestamp\": 0,\n        }\n\n        if \"gas_limit\" in self.env.model_fields_set:\n            kwargs[\"gas_limit\"] = self.env.gas_limit\n\n        if self.env.base_fee_per_gas:\n            # Calculate genesis base fee per gas from state test's block#1 env\n            kwargs[\"base_fee_per_gas\"] = HexNumber(\n                int(int(str(self.env.base_fee_per_gas), 0) * 8 / 7)\n            )\n\n        if self.env.excess_blob_gas:\n            # The excess blob gas environment value means the value of the\n            # context (block header) where the transaction is executed. In a\n            # blockchain test, we need to indirectly set the excess blob gas by\n            # setting the excess blob gas of the genesis block to the expected\n            # value plus the TARGET_BLOB_GAS_PER_BLOCK, which is the value that\n            # will be subtracted from the excess blob gas when the first block\n            # is mined.\n            kwargs[\"excess_blob_gas\"] = self.env.excess_blob_gas + (\n                fork.target_blobs_per_block() * fork.blob_gas_per_blob()\n            )\n\n        return Environment(**kwargs)\n\n    def _generate_blockchain_blocks(self, *, fork: Fork) -> List[Block]:\n        \"\"\"\n        Generate the single block that represents this state test in a\n        BlockchainTest format.\n        \"\"\"\n        kwargs = {\n            \"number\": self.env.number,\n            \"timestamp\": self.env.timestamp,\n            \"prev_randao\": self.env.prev_randao,\n            \"fee_recipient\": self.env.fee_recipient,\n            \"gas_limit\": self.env.gas_limit,\n            \"extra_data\": self.env.extra_data,\n            \"withdrawals\": self.env.withdrawals,\n            \"parent_beacon_block_root\": self.env.parent_beacon_block_root,\n            \"txs\": [self.tx],\n            \"ommers\": [],\n            \"header_verify\": self.blockchain_test_header_verify,\n            \"rlp_modifier\": self.blockchain_test_rlp_modifier,\n            \"expected_block_access_list\": self.expected_block_access_list,\n        }\n        if not fork.header_prev_randao_required():\n            kwargs[\"difficulty\"] = self.env.difficulty\n        if \"block_exception\" in self.model_fields_set:\n            kwargs[\"exception\"] = self.block_exception  # type: ignore\n        elif \"error\" in self.tx.model_fields_set:\n            kwargs[\"exception\"] = self.tx.error  # type: ignore\n        return [Block(**kwargs)]\n\n    def generate_blockchain_test(self, *, fork: Fork) -> BlockchainTest:\n        \"\"\"Generate a BlockchainTest fixture from this StateTest fixture.\"\"\"\n        return BlockchainTest.from_test(\n            base_test=self,\n            genesis_environment=self._generate_blockchain_genesis_environment(fork=fork),\n            pre=self.pre,\n            post=self.post,\n            blocks=self._generate_blockchain_blocks(fork=fork),\n        )\n\n    def make_state_test_fixture(\n        self,\n        t8n: TransitionTool,\n        fork: Fork,\n    ) -> StateFixture:\n        \"\"\"Create a fixture from the state test definition.\"\"\"\n        # We can't generate a state test fixture that names a transition fork,\n        # so we get the fork at the block number and timestamp of the state\n        # test\n        fork = fork.fork_at(block_number=self.env.number, timestamp=self.env.timestamp)\n\n        env = self.env.set_fork_requirements(fork)\n        tx = self.tx.with_signature_and_sender(keep_secret_key=True)\n        pre_alloc = Alloc.merge(\n            Alloc.model_validate(fork.pre_allocation()),\n            self.pre,\n        )\n        if empty_accounts := pre_alloc.empty_accounts():\n            raise Exception(f\"Empty accounts in pre state: {empty_accounts}\")\n\n        transition_tool_output = t8n.evaluate(\n            transition_tool_data=TransitionTool.TransitionToolData(\n                alloc=pre_alloc,\n                txs=[tx],\n                env=env,\n                fork=fork,\n                chain_id=self.chain_id,\n                reward=0,  # Reward on state tests is always zero\n                blob_schedule=fork.blob_schedule(),\n                state_test=True,\n            ),\n            debug_output_path=self.get_next_transition_tool_output_path(),\n            slow_request=self.is_tx_gas_heavy_test(),\n        )\n\n        try:\n            self.post.verify_post_alloc(transition_tool_output.alloc)\n        except Exception as e:\n            print_traces(t8n.get_traces())\n            raise e\n\n        try:\n            verify_transactions(\n                txs=[tx],\n                result=transition_tool_output.result,\n                transition_tool_exceptions_reliable=t8n.exception_mapper.reliable,\n            )\n        except Exception as e:\n            print_traces(t8n.get_traces())\n            pprint(transition_tool_output.result)\n            pprint(transition_tool_output.alloc)\n            raise e\n\n        if (\n            self._operation_mode == OpMode.OPTIMIZE_GAS\n            or self._operation_mode == OpMode.OPTIMIZE_GAS_POST_PROCESSING\n        ):\n            enable_post_processing = self._operation_mode == OpMode.OPTIMIZE_GAS_POST_PROCESSING\n            base_tool_output = transition_tool_output\n\n            assert base_tool_output.result.traces is not None, \"Traces not found.\"\n\n            # First try reducing the gas limit only by one, if the validation\n            # fails, it means that the traces change even with the slightest\n            # modification to the gas.\n            if self.verify_modified_gas_limit(\n                t8n=t8n,\n                base_tool_output=base_tool_output,\n                fork=fork,\n                current_gas_limit=self.tx.gas_limit - 1,\n                pre_alloc=pre_alloc,\n                env=env,\n                enable_post_processing=enable_post_processing,\n            ):\n                minimum_gas_limit = 0\n                maximum_gas_limit = int(self.tx.gas_limit)\n                while minimum_gas_limit < maximum_gas_limit:\n                    current_gas_limit = (maximum_gas_limit + minimum_gas_limit) // 2\n                    if self.verify_modified_gas_limit(\n                        t8n=t8n,\n                        base_tool_output=base_tool_output,\n                        fork=fork,\n                        current_gas_limit=current_gas_limit,\n                        pre_alloc=pre_alloc,\n                        env=env,\n                        enable_post_processing=enable_post_processing,\n                    ):\n                        maximum_gas_limit = current_gas_limit\n                    else:\n                        minimum_gas_limit = current_gas_limit + 1\n                        if (\n                            self._gas_optimization_max_gas_limit is not None\n                            and minimum_gas_limit > self._gas_optimization_max_gas_limit\n                        ):\n                            raise Exception(\n                                \"Requires more than the minimum \"\n                                f\"{self._gas_optimization_max_gas_limit} wanted.\"\n                            )\n\n                assert self.verify_modified_gas_limit(\n                    t8n=t8n,\n                    base_tool_output=base_tool_output,\n                    fork=fork,\n                    current_gas_limit=minimum_gas_limit,\n                    pre_alloc=pre_alloc,\n                    env=env,\n                    enable_post_processing=enable_post_processing,\n                )\n                self._gas_optimization = current_gas_limit\n            else:\n                raise Exception(\"Impossible to compare.\")\n\n        if self._operation_mode == OpMode.BENCHMARKING:\n            expected_benchmark_gas_used = self.expected_benchmark_gas_used\n            assert expected_benchmark_gas_used is not None, (\n                \"expected_benchmark_gas_used is not set\"\n            )\n            gas_used = int(transition_tool_output.result.gas_used)\n            if not self.skip_gas_used_validation:\n                assert gas_used == expected_benchmark_gas_used, (\n                    f\"gas_used ({gas_used}) does not match expected_benchmark_gas_used \"\n                    f\"({expected_benchmark_gas_used})\"\n                    f\", difference: {gas_used - expected_benchmark_gas_used}\"\n                )\n\n        return StateFixture(\n            env=FixtureEnvironment(**env.model_dump(exclude_none=True)),\n            pre=pre_alloc,\n            post={\n                fork: [\n                    FixtureForkPost(\n                        state_root=transition_tool_output.result.state_root,\n                        logs_hash=transition_tool_output.result.logs_hash,\n                        tx_bytes=tx.rlp(),\n                        expect_exception=tx.error,\n                        state=transition_tool_output.alloc,\n                    )\n                ]\n            },\n            transaction=FixtureTransaction.from_transaction(tx),\n            config=FixtureConfig(\n                blob_schedule=FixtureBlobSchedule.from_blob_schedule(fork.blob_schedule()),\n                chain_id=self.chain_id,\n            ),\n        )\n\n    def get_genesis_environment(self, fork: Fork) -> Environment:\n        \"\"\"Get the genesis environment for pre-allocation groups.\"\"\"\n        return self.generate_blockchain_test(fork=fork).get_genesis_environment(fork=fork)\n\n    def generate(\n        self,\n        t8n: TransitionTool,\n        fork: Fork,\n        fixture_format: FixtureFormat,\n    ) -> BaseFixture:\n        \"\"\"Generate the BlockchainTest fixture.\"\"\"\n        self.check_exception_test(exception=self.tx.error is not None)\n        if fixture_format in BlockchainTest.supported_fixture_formats:\n            return self.generate_blockchain_test(fork=fork).generate(\n                t8n=t8n, fork=fork, fixture_format=fixture_format\n            )\n        elif fixture_format == StateFixture:\n            return self.make_state_test_fixture(t8n, fork)\n\n        raise Exception(f\"Unknown fixture format: {fixture_format}\")\n\n    def execute(\n        self,\n        *,\n        fork: Fork,\n        execute_format: ExecuteFormat,\n    ) -> BaseExecute:\n        \"\"\"Generate the list of test fixtures.\"\"\"\n        del fork\n\n        if execute_format == TransactionPost:\n            # Pass gas validation params for benchmark tests\n            # If not benchmark mode, skip gas used validation\n            if self._operation_mode != OpMode.BENCHMARKING:\n                self.skip_gas_used_validation = True\n            return TransactionPost(\n                blocks=[[self.tx]],\n                post=self.post,\n                expected_benchmark_gas_used=self.expected_benchmark_gas_used,\n                skip_gas_used_validation=self.skip_gas_used_validation,\n            )\n        raise Exception(f\"Unsupported execute format: {execute_format}\")\n\n\nStateTestSpec = Callable[[str], Generator[StateTest, None, None]]\nStateTestFiller = Type[StateTest]\n"
  },
  {
    "path": "src/ethereum_test_specs/static_state/__init__.py",
    "content": "\"\"\"Ethereum/tests structures.\"\"\"\n"
  },
  {
    "path": "src/ethereum_test_specs/static_state/account.py",
    "content": "\"\"\"Account structure of ethereum/tests fillers.\"\"\"\n\nfrom typing import Any, Dict, List, Mapping, Set, Tuple\n\nfrom pydantic import BaseModel, ConfigDict\n\nfrom ethereum_test_base_types import Bytes, EthereumTestRootModel, HexNumber, Storage\nfrom ethereum_test_types import Alloc\n\nfrom .common import (\n    AddressOrTagInFiller,\n    CodeInFiller,\n    ContractTag,\n    SenderTag,\n    Tag,\n    TagDependentData,\n    TagDict,\n    ValueInFiller,\n    ValueOrTagInFiller,\n)\n\n\nclass StorageInPre(EthereumTestRootModel):\n    \"\"\"Class that represents a storage in pre-state.\"\"\"\n\n    root: Dict[ValueInFiller, ValueOrTagInFiller]\n\n    def tag_dependencies(self) -> Mapping[str, Tag]:\n        \"\"\"Get tag dependencies.\"\"\"\n        tag_dependencies: Dict[str, Tag] = {}\n        for k, v in self.root.items():\n            if isinstance(k, Tag):\n                tag_dependencies[k.name] = k\n            if isinstance(v, Tag):\n                tag_dependencies[v.name] = v\n        return tag_dependencies\n\n    def resolve(self, tags: TagDict) -> Dict[ValueInFiller, ValueInFiller]:\n        \"\"\"Resolve the storage.\"\"\"\n        resolved_storage: Dict[ValueInFiller, ValueInFiller] = {}\n        for key, value in self.root.items():\n            if isinstance(value, Tag):\n                resolved_storage[key] = HexNumber(int.from_bytes(value.resolve(tags), \"big\"))\n            else:\n                resolved_storage[key] = value\n        return resolved_storage\n\n\nclass AccountInFiller(BaseModel, TagDependentData):\n    \"\"\"Class that represents an account in filler.\"\"\"\n\n    balance: ValueInFiller | None = None\n    code: CodeInFiller | None = None\n    nonce: ValueInFiller | None = None\n    storage: StorageInPre | None = None\n\n    model_config = ConfigDict(arbitrary_types_allowed=True, extra=\"forbid\")\n\n    def tag_dependencies(self) -> Mapping[str, Tag]:\n        \"\"\"Get tag dependencies.\"\"\"\n        tag_dependencies: Dict[str, Tag] = {}\n        if self.storage is not None:\n            tag_dependencies.update(self.storage.tag_dependencies())\n        if self.code is not None and isinstance(self.code, CodeInFiller):\n            tag_dependencies.update(self.code.tag_dependencies())\n        return tag_dependencies\n\n    def resolve(self, tags: TagDict) -> Dict[str, Any]:\n        \"\"\"Resolve the account.\"\"\"\n        account_properties: Dict[str, Any] = {}\n        if self.balance is not None:\n            account_properties[\"balance\"] = self.balance\n        if self.code is not None:\n            if compiled_code := self.code.compiled(tags):\n                account_properties[\"code\"] = compiled_code\n        if self.nonce is not None:\n            account_properties[\"nonce\"] = self.nonce\n        if self.storage is not None:\n            if resolved_storage := self.storage.resolve(tags):\n                account_properties[\"storage\"] = resolved_storage\n        return account_properties\n\n\nclass PreInFiller(EthereumTestRootModel):\n    \"\"\"Class that represents a pre-state in filler.\"\"\"\n\n    root: Dict[AddressOrTagInFiller, AccountInFiller]\n\n    def _build_dependency_graph(\n        self,\n    ) -> Tuple[Dict[str, Set[str]], Dict[str, AddressOrTagInFiller]]:\n        \"\"\"Build a dependency graph for all tags.\"\"\"\n        dep_graph: Dict[str, Set[str]] = {}\n        tag_to_address: Dict[str, AddressOrTagInFiller] = {}\n\n        # First pass: identify all tags and their dependencies\n        for address_or_tag, account in self.root.items():\n            if isinstance(address_or_tag, Tag):\n                tag_name = address_or_tag.name\n                tag_to_address[tag_name] = address_or_tag\n                dep_graph[tag_name] = set()\n\n                # Get dependencies from account properties\n                dependencies = account.tag_dependencies()\n                for dep_name in dependencies:\n                    if dep_name != tag_name:  # Ignore self-references\n                        dep_graph[tag_name].add(dep_name)\n\n        return dep_graph, tag_to_address\n\n    def _topological_sort(self, dep_graph: Dict[str, Set[str]]) -> List[str]:\n        \"\"\"Perform topological sort on dependency graph.\"\"\"\n        # Create a copy to modify\n        graph = {node: deps.copy() for node, deps in dep_graph.items()}\n\n        # Find nodes with no dependencies\n        no_deps = [node for node, deps in graph.items() if not deps]\n        sorted_nodes = []\n\n        while no_deps:\n            # Process a node with no dependencies\n            node = no_deps.pop()\n            sorted_nodes.append(node)\n\n            # Remove this node from other nodes' dependencies\n            for other_node, deps in graph.items():\n                if node in deps:\n                    deps.remove(node)\n                    if not deps and other_node not in sorted_nodes:\n                        no_deps.append(other_node)\n\n        # Check for cycles\n        remaining = [node for node in graph if node not in sorted_nodes]\n        if remaining:\n            # Handle cycles by processing remaining nodes in any order\n            # This works because self-references are allowed\n            sorted_nodes.extend(remaining)\n\n        return sorted_nodes\n\n    def setup(self, pre: Alloc, all_dependencies: Dict[str, Tag]) -> TagDict:\n        \"\"\"Resolve the pre-state with improved tag resolution.\"\"\"\n        resolved_accounts: TagDict = {}\n\n        # Separate tagged and non-tagged accounts\n        tagged_accounts = {}\n        non_tagged_accounts = {}\n\n        for address_or_tag, account in self.root.items():\n            if isinstance(address_or_tag, Tag):\n                tagged_accounts[address_or_tag] = account\n            else:\n                non_tagged_accounts[address_or_tag] = account\n\n        # Step 1: Process non-tagged accounts but don't compile code yet\n        # We'll compile code later after all tags are resolved\n        non_tagged_to_process = []\n        for address, account in non_tagged_accounts.items():\n            non_tagged_to_process.append((address, account))\n            resolved_accounts[address.hex()] = address\n\n        # Step 2: Build dependency graph for tagged accounts\n        dep_graph, tag_to_address = self._build_dependency_graph()\n\n        # Step 3: Get topological order\n        resolution_order = self._topological_sort(dep_graph)\n\n        # Step 4: Pre-deploy all contract tags and pre-fund EOAs to get\n        # addresses\n        for tag_name in resolution_order:\n            if tag_name in tag_to_address:\n                tag = tag_to_address[tag_name]\n                if isinstance(tag, ContractTag):\n                    # Deploy with placeholder to get address\n                    deployed_address = pre.deploy_contract(\n                        code=b\"\",  # Temporary placeholder\n                        label=tag_name,\n                    )\n                    resolved_accounts[tag_name] = deployed_address\n                elif isinstance(tag, SenderTag):\n                    # Create EOA to get address - use amount=1 to ensure\n                    # account is created\n                    eoa = pre.fund_eoa(amount=1, label=tag_name)\n                    # Store the EOA object for SenderKeyTag resolution\n                    resolved_accounts[tag_name] = eoa\n\n        # Step 5: Now resolve all properties with all addresses available\n        for tag_name in resolution_order:\n            if tag_name in tag_to_address:\n                tag = tag_to_address[tag_name]\n                assert isinstance(tag, (ContractTag, SenderTag)), (\n                    f\"Tag {tag_name} is not a contract or sender\"\n                )\n                account = tagged_accounts[tag]\n\n                # All addresses are now available, so resolve properties\n                account_properties = account.resolve(resolved_accounts)\n\n                if isinstance(tag, ContractTag):\n                    # Update the already-deployed contract\n                    deployed_address = resolved_accounts[tag_name]\n                    deployed_account = pre[deployed_address]\n\n                    if deployed_account is not None:\n                        if \"code\" in account_properties:\n                            deployed_account.code = Bytes(account_properties[\"code\"])\n                        if \"balance\" in account_properties:\n                            deployed_account.balance = account_properties[\"balance\"]\n                        if \"nonce\" in account_properties:\n                            deployed_account.nonce = account_properties[\"nonce\"]\n                        if \"storage\" in account_properties:\n                            deployed_account.storage = Storage(root=account_properties[\"storage\"])\n\n                elif isinstance(tag, SenderTag):\n                    eoa_account = pre[resolved_accounts[tag_name]]\n\n                    if eoa_account is not None:\n                        if \"balance\" in account_properties:\n                            eoa_account.balance = account_properties[\"balance\"]\n                        if \"nonce\" in account_properties:\n                            eoa_account.nonce = account_properties[\"nonce\"]\n                        if \"code\" in account_properties:\n                            eoa_account.code = Bytes(account_properties[\"code\"])\n                        if \"storage\" in account_properties:\n                            eoa_account.storage = Storage(root=account_properties[\"storage\"])\n\n        # Step 6: Now process non-tagged accounts (including code compilation)\n        for address, account in non_tagged_to_process:\n            account_properties = account.resolve(resolved_accounts)\n            if \"balance\" in account_properties:\n                pre.fund_address(address, account_properties[\"balance\"])\n\n            existing_account = pre[address]\n            if existing_account is not None:\n                if \"code\" in account_properties:\n                    existing_account.code = Bytes(account_properties[\"code\"])\n                if \"nonce\" in account_properties:\n                    existing_account.nonce = account_properties[\"nonce\"]\n                if \"storage\" in account_properties:\n                    existing_account.storage = Storage(root=account_properties[\"storage\"])\n\n        # Step 7: Handle any extra dependencies not in pre\n        for extra_dependency in all_dependencies:\n            if extra_dependency not in resolved_accounts:\n                if all_dependencies[extra_dependency].type != \"eoa\":\n                    raise ValueError(f\"Contract dependency {extra_dependency} not found in pre\")\n\n                # Create new EOA - this will have a dynamically generated key\n                # and address\n                eoa = pre.fund_eoa(amount=0, label=extra_dependency)\n                resolved_accounts[extra_dependency] = eoa\n\n        return resolved_accounts\n"
  },
  {
    "path": "src/ethereum_test_specs/static_state/common/__init__.py",
    "content": "\"\"\"Ethereum/tests structures.\"\"\"\n\nfrom .common import (\n    AccessListInFiller,\n    AddressInFiller,\n    AddressOrCreateTagInFiller,\n    AddressOrTagInFiller,\n    AddressTag,\n    CodeInFiller,\n    ContractTag,\n    HashOrTagInFiller,\n    SenderTag,\n    Tag,\n    TagDependentData,\n    TagDict,\n    ValueInFiller,\n    ValueOrCreateTagInFiller,\n    ValueOrTagInFiller,\n    parse_address_or_tag,\n)\n\n__all__ = [\n    \"AccessListInFiller\",\n    \"AddressInFiller\",\n    \"AddressOrCreateTagInFiller\",\n    \"AddressOrTagInFiller\",\n    \"AddressTag\",\n    \"CodeInFiller\",\n    \"ContractTag\",\n    \"HashOrTagInFiller\",\n    \"Tag\",\n    \"TagDict\",\n    \"TagDependentData\",\n    \"SenderTag\",\n    \"ValueInFiller\",\n    \"ValueOrCreateTagInFiller\",\n    \"ValueOrTagInFiller\",\n    \"parse_address_or_tag\",\n]\n"
  },
  {
    "path": "src/ethereum_test_specs/static_state/common/common.py",
    "content": "\"\"\"Common field types from ethereum/tests.\"\"\"\n\nimport re\nimport subprocess\nimport tempfile\nfrom typing import Any, Dict, List, Mapping, Tuple, Union\n\nfrom eth_abi import encode\nfrom eth_utils import function_signature_to_4byte_selector\nfrom pydantic import BaseModel, BeforeValidator, Field, PrivateAttr, model_validator\nfrom pydantic_core import core_schema\nfrom typing_extensions import Annotated\n\nfrom ethereum_test_base_types import AccessList, Address, CamelModel, Hash, HexNumber\n\nfrom .compile_yul import compile_yul\nfrom .tags import (\n    ContractTag,\n    CreateTag,\n    SenderKeyTag,\n    SenderTag,\n    Tag,\n    TagDependentData,\n    TagDict,\n)\n\n\ndef parse_hex_number(i: str | int) -> int:\n    \"\"\"Check if the given string is a valid hex number.\"\"\"\n    if i == \"\" or i == \"0x\":\n        return 0\n    if isinstance(i, int):\n        return i\n    if i.startswith(\"0x:bigint \"):\n        i = i[10:]\n        return int(i, 16)\n    if i.startswith(\"0x\") or any(char in \"abcdef\" for char in i.lower()):\n        return int(i, 16)\n    return int(i, 10)\n\n\ndef parse_args_from_string_into_array(\n    stream: str, pos: int, delim: str = \" \"\n) -> Tuple[List[str], int]:\n    \"\"\"Parse YUL options into array.\"\"\"\n    args = []\n    arg = \"\"\n    # Loop until end of stream or until encountering newline or '{'\n    while pos < len(stream) and stream[pos] not in (\"\\n\", \"{\"):\n        if stream[pos] == delim:\n            args.append(arg)\n            arg = \"\"\n        else:\n            arg += stream[pos]\n        pos += 1\n    if arg:\n        args.append(arg)\n    return args, pos\n\n\nclass CodeInFiller(BaseModel, TagDependentData):\n    \"\"\"Not compiled code source in test filler.\"\"\"\n\n    label: str | None\n    source: str\n    _dependencies: Dict[str, Tag] = PrivateAttr(default_factory=dict)\n\n    @model_validator(mode=\"before\")\n    @classmethod\n    def validate_from_string(cls, code: Any) -> Any:\n        \"\"\"Validate from string, separating label from code source.\"\"\"\n        if isinstance(code, str):\n            label_marker = \":label\"\n            # Only look for label at the beginning of the string (possibly\n            # after whitespace)\n            stripped_code = code.lstrip()\n\n            # Parse :label into code options\n            label = None\n            source = code\n\n            # Check if the code starts with :label\n            if stripped_code.startswith(label_marker):\n                # Calculate the position in the original string\n                label_index = code.find(label_marker)\n                space_index = code.find(\" \", label_index + len(label_marker) + 1)\n                if space_index == -1:\n                    label = code[label_index + len(label_marker) + 1 :]\n                    source = \"\"  # No source after label\n                else:\n                    label = code[label_index + len(label_marker) + 1 : space_index]\n                    source = code[space_index + 1 :].strip()\n\n            return {\"label\": label, \"source\": source}\n        return code\n\n    def model_post_init(self, context: Any) -> None:\n        \"\"\"Initialize StateStaticTest.\"\"\"\n        super().model_post_init(context)\n        tag_dependencies: Dict[str, Tag] = {}\n        for tag_type in {ContractTag, SenderTag}:\n            for m in tag_type.regex_pattern.finditer(self.source):\n                new_tag = tag_type.model_validate(m.group(0))\n                tag_dependencies[new_tag.name] = new_tag\n        self._dependencies = tag_dependencies\n\n    def compiled(self, tags: TagDict) -> bytes:\n        \"\"\"Compile the code from source to bytes.\"\"\"\n        raw_code = self.source\n        if isinstance(raw_code, int):\n            # Users pass code as int (very bad)\n            hex_str = format(raw_code, \"02x\")\n            return bytes.fromhex(hex_str)\n\n        if not isinstance(raw_code, str):\n            raise ValueError(f\"code is of type {type(raw_code)} but expected a string: {raw_code}\")\n        if len(raw_code) == 0:\n            return b\"\"\n\n        compiled_code = \"\"\n\n        def replace_tags(raw_code: str, keep_prefix: bool) -> str:\n            for tag in self._dependencies.values():\n                if tag.name not in tags:\n                    raise ValueError(f\"Tag {tag} not found in tags\")\n                substitution_address = f\"{tag.resolve(tags)}\"\n                if not keep_prefix and substitution_address.startswith(\"0x\"):\n                    substitution_address = substitution_address[2:]\n                # Use the original string if available, otherwise construct a\n                # pattern\n                if hasattr(tag, \"original_string\") and tag.original_string:\n                    raw_code = raw_code.replace(tag.original_string, substitution_address)\n                else:\n                    raw_code = re.sub(f\"<\\\\w+:{tag.name}(:0x.+)?>\", substitution_address, raw_code)\n            return raw_code\n\n        raw_marker = \":raw 0x\"\n        raw_index = raw_code.find(raw_marker)\n        if raw_index == -1:\n            raw_index = replace_tags(raw_code, True).find(raw_marker)\n        abi_marker = \":abi\"\n        abi_index = raw_code.find(abi_marker)\n        yul_marker = \":yul\"\n        yul_index = raw_code.find(yul_marker)\n\n        # Parse :raw or 0x\n        if raw_index != -1 or raw_code.lstrip().startswith(\"0x\"):\n            raw_code = replace_tags(raw_code, False)\n            # Parse :raw\n            if raw_index != -1:\n                compiled_code = raw_code[raw_index + len(raw_marker) :]\n            # Parse plain code 0x\n            elif raw_code.lstrip().startswith(\"0x\"):\n                compiled_code = raw_code[2:].lower()\n        else:\n            raw_code = replace_tags(raw_code, True)\n            # Parse :yul\n            if yul_index != -1:\n                option_start = yul_index + len(yul_marker)\n                options: list[str] = []\n                native_yul_options: str = \"\"\n\n                if raw_code[option_start:].lstrip().startswith(\"{\"):\n                    # No yul options, proceed to code parsing\n                    source_start = option_start\n                else:\n                    opt, source_start = parse_args_from_string_into_array(\n                        raw_code, option_start + 1\n                    )\n                    for arg in opt:\n                        if arg == \"object\" or arg == '\"C\"':\n                            native_yul_options += arg + \" \"\n                        else:\n                            options.append(arg)\n\n                with tempfile.NamedTemporaryFile(mode=\"w+\", delete=False, suffix=\".yul\") as tmp:\n                    tmp.write(native_yul_options + raw_code[source_start:])\n                    tmp_path = tmp.name\n                compiled_code = compile_yul(\n                    source_file=tmp_path,\n                    evm_version=options[0] if len(options) >= 1 else None,\n                    optimize=options[1] if len(options) >= 2 else None,\n                )[2:]\n\n            # Parse :abi\n            elif abi_index != -1:\n                abi_encoding = raw_code[abi_index + len(abi_marker) + 1 :]\n                tokens = abi_encoding.strip().split()\n                abi = tokens[0]\n                function_signature = function_signature_to_4byte_selector(abi)\n                parameter_str = re.sub(r\"^\\w+\", \"\", abi).strip()\n\n                parameter_types = parameter_str.strip(\"()\").split(\",\")\n                if len(tokens) > 1:\n                    function_parameters = encode(\n                        [parameter_str],\n                        [\n                            [\n                                # treat big ints as 256bits\n                                int(t.lower(), 0) & ((1 << 256) - 1)\n                                if parameter_types[t_index] == \"uint\"\n                                # treat positive values as True\n                                else int(t.lower(), 0) > 0\n                                if parameter_types[t_index] == \"bool\"\n                                else False and ValueError(\"unhandled parameter_types\")\n                                for t_index, t in enumerate(tokens[1:])\n                            ]\n                        ],\n                    )\n                    return function_signature + function_parameters\n                return function_signature\n\n            # Parse lllc code\n            elif (\n                raw_code.lstrip().startswith(\"{\")\n                or raw_code.lstrip().startswith(\"(asm\")\n                or raw_code.lstrip().startswith(\":raw 0x\")\n            ):\n                with tempfile.NamedTemporaryFile(mode=\"w+\", delete=False) as tmp:\n                    tmp.write(raw_code)\n                    tmp_path = tmp.name\n\n                # - using lllc\n                result = subprocess.run([\"lllc\", tmp_path], capture_output=True, text=True)\n\n                # - using docker: If the running machine does not have lllc\n                # installed, we can use docker to run lllc, but we need to\n                # start a container first, and the process is generally slower.\n                #\n                # from .docker import get_lllc_container_id\n                # result = subprocess.run( [\"docker\",\n                #     \"exec\",\n                #     get_lllc_container_id(),\n                #     \"lllc\",\n                #     tmp_path[5:]],\n                #     capture_output=True,\n                #     text=True\n                # )\n                compiled_code = \"\".join(result.stdout.splitlines())\n\n            else:\n                raise Exception(f'Error parsing code: \"{raw_code}\"')\n\n        try:\n            return bytes.fromhex(compiled_code)\n        except ValueError as e:\n            raise Exception(f'Error parsing compile code: \"{raw_code}\"') from e\n\n    def tag_dependencies(self) -> Mapping[str, Tag]:\n        \"\"\"Get tag dependencies.\"\"\"\n        return self._dependencies\n\n\nclass AddressTag:\n    \"\"\"\n    Represents an address tag like:\n    - <eoa:sender:0x...>.\n    - <contract:target:0x...>.\n    - <coinbase:0x...>.\n    \"\"\"\n\n    def __init__(self, tag_type: str, tag_name: str, original_string: str):\n        \"\"\"Initialize address tag.\"\"\"\n        self.tag_type = tag_type  # \"eoa\", \"contract\", or \"coinbase\"\n        # e.g., \"sender\", \"target\", or address for 2-part tags\n        self.tag_name = tag_name\n        self.original_string = original_string\n\n    def __str__(self) -> str:\n        \"\"\"Return original tag string.\"\"\"\n        return self.original_string\n\n    def __repr__(self) -> str:\n        \"\"\"Return debug representation.\"\"\"\n        return f\"AddressTag(type={self.tag_type}, name={self.tag_name})\"\n\n    def __eq__(self, other: object) -> bool:\n        \"\"\"Check equality based on original string.\"\"\"\n        if isinstance(other, AddressTag):\n            return self.original_string == other.original_string\n        return False\n\n    def __hash__(self) -> int:\n        \"\"\"Hash based on original string for use as dict key.\"\"\"\n        return hash(self.original_string)\n\n    @classmethod\n    def __get_pydantic_core_schema__(\n        cls, source_type: Any, handler: Any\n    ) -> core_schema.CoreSchema:\n        \"\"\"Pydantic core schema for AddressTag.\"\"\"\n        return core_schema.str_schema()\n\n\ndef parse_address_or_tag(value: Any) -> Union[Address, AddressTag]:\n    \"\"\"Parse either a regular address or an address tag.\"\"\"\n    if not isinstance(value, str):\n        # Non-string values should be converted to Address normally\n        return Address(value, left_padding=True)\n\n    # Check if it matches tag pattern:\n    # - <eoa:0x...>, <contract:0x...>, <coinbase:0x...>\n    # - <eoa:name:0x...>, <contract:name:0x...>\n\n    # Try 3-part pattern first (type:name:address)\n    tag_pattern_3_part = r\"^<(eoa|contract|coinbase):([^:]+):(.+)>$\"\n    match = re.match(tag_pattern_3_part, value.strip())\n\n    if match:\n        tag_type = match.group(1)\n        tag_name = match.group(2)\n        address_part = match.group(3)\n        # For 3-part tags, the tag_name is the middle part\n        return AddressTag(tag_type, tag_name, value.strip())\n\n    # Try 2-part pattern (type:address)\n    tag_pattern_2_part = r\"^<(eoa|contract|coinbase):(.+)>$\"\n    match = re.match(tag_pattern_2_part, value.strip())\n\n    if match:\n        tag_type = match.group(1)\n        address_part = match.group(2)\n        # For 2-part tags, use the address as the tag_name\n        return AddressTag(tag_type, address_part, value.strip())\n\n    # Regular address string\n    return Address(value, left_padding=True)\n\n\ndef parse_address_or_tag_for_access_list(value: Any) -> Union[Address, str]:\n    \"\"\"\n    Parse either a regular address or an address tag, keeping tags as strings\n    for later resolution.\n    \"\"\"\n    if not isinstance(value, str):\n        # Non-string values should be converted to Address normally\n        return Address(value, left_padding=True)\n\n    # Check if it matches a tag pattern\n    tag_pattern = r\"^<(eoa|contract|coinbase):.+>$\"\n    if re.match(tag_pattern, value.strip()):\n        # Return the tag string as-is for later resolution\n        return value.strip()\n    else:\n        # Regular address string\n        return Address(value, left_padding=True)\n\n\nAddressInFiller = Annotated[Address, BeforeValidator(lambda a: Address(a, left_padding=True))]\nAddressOrTagInFiller = ContractTag | SenderTag | Address\nAddressOrCreateTagInFiller = ContractTag | SenderTag | CreateTag | Address\nValueInFiller = Annotated[HexNumber, BeforeValidator(parse_hex_number)]\nValueOrTagInFiller = ContractTag | SenderTag | ValueInFiller\nValueOrCreateTagInFiller = ContractTag | SenderTag | CreateTag | ValueInFiller\nHashOrTagInFiller = SenderKeyTag | Hash\n\n\nclass AccessListInFiller(CamelModel, TagDependentData):\n    \"\"\"\n    Access List for transactions in fillers that can contain address tags.\n    \"\"\"\n\n    address: AddressOrTagInFiller\n    storage_keys: List[Hash] = Field(default_factory=list)\n\n    def tag_dependencies(self) -> Mapping[str, Tag]:\n        \"\"\"Get tag dependencies.\"\"\"\n        if isinstance(self.address, Tag):\n            return {\n                self.address.name: self.address,\n            }\n        return {}\n\n    def resolve(self, tags: TagDict) -> AccessList:\n        \"\"\"Resolve the access list.\"\"\"\n        kwargs: Dict[str, Address | List[Hash]] = {}\n        if isinstance(self.address, Tag):\n            kwargs[\"address\"] = self.address.resolve(tags)\n        else:\n            kwargs[\"address\"] = self.address\n        kwargs[\"storageKeys\"] = [Hash(key, left_padding=True) for key in self.storage_keys]\n        return AccessList(**kwargs)\n"
  },
  {
    "path": "src/ethereum_test_specs/static_state/common/compile_yul.py",
    "content": "\"\"\"compile yul with arguments.\"\"\"\n\nimport subprocess\nfrom pathlib import Path\nfrom typing import LiteralString\n\n\ndef safe_solc_command(\n    source_file: Path | str, evm_version: str | None = None, optimize: str | None = None\n) -> list[str]:\n    \"\"\"Safely construct solc command with validated inputs.\"\"\"\n    # Validate source file path\n    source_path = Path(source_file)\n    if not source_path.exists():\n        raise FileNotFoundError(f\"Source file not found: {source_file}\")\n\n    cmd: list[str] = [\"solc\"]\n\n    # Add EVM version if provided (validate against known versions)\n    if evm_version:\n        valid_versions = {\n            \"homestead\",\n            \"tangerineWhistle\",\n            \"spuriousDragon\",\n            \"byzantium\",\n            \"constantinople\",\n            \"petersburg\",\n            \"istanbul\",\n            \"berlin\",\n            \"london\",\n            \"paris\",\n            \"shanghai\",\n            \"cancun\",\n        }\n        if evm_version not in valid_versions:\n            raise ValueError(f\"Invalid EVM version: {evm_version}\")\n        cmd.extend([\"--evm-version\", evm_version])\n\n    # Add compilation flags (using literal strings)\n    strict_assembly: LiteralString = \"--strict-assembly\"\n    cmd.append(strict_assembly)\n\n    if optimize is None:\n        optimize_flag: LiteralString = \"--optimize\"\n        yul_opts: LiteralString = \"--yul-optimizations=:\"\n        cmd.extend([optimize_flag, yul_opts])\n\n    cmd.append(str(source_path))\n    return cmd\n\n\ndef compile_yul(\n    source_file: str, evm_version: str | None = None, optimize: str | None = None\n) -> str:\n    \"\"\"\n    Compiles a Yul source file using solc and returns the binary\n    representation.\n\n    Arguments:\n      source_file (str): Path to the Yul source file.\n      evm_version(str, optional): The EVM version to use (e.g., 'istanbul').\n                                  Defaults to None.\n      optimize (any, optional): If provided (non-None), optimization flags\n                                are not added. If None, additional\n                                optimization flags will be included.\n\n    Returns: str: The binary representation prefixed with \"0x\".\n\n    Raises: Exception: If the solc output contains an error message.\n\n    \"\"\"\n    cmd = safe_solc_command(source_file, evm_version, optimize)\n\n    # Execute the solc command and capture both stdout and stderr\n    result = subprocess.run(\n        cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, text=True, check=False\n    )\n    out = result.stdout\n\n    # Check for errors in the output\n    if \"Error\" in out:\n        raise Exception(f\"Yul compilation error:\\n{out}\")\n\n    # Search for the \"Binary representation:\" line and get the following line\n    # as the binary\n    lines = out.splitlines()\n    binary_line = \"\"\n    for i, line in enumerate(lines):\n        if \"Binary representation:\" in line:\n            if i + 1 < len(lines):\n                binary_line = lines[i + 1].strip()\n            break\n\n    return f\"0x{binary_line}\"\n"
  },
  {
    "path": "src/ethereum_test_specs/static_state/common/tags.py",
    "content": "\"\"\"Classes to manage tags in static state tests.\"\"\"\n\nimport re\nfrom abc import ABC, abstractmethod\nfrom typing import Any, ClassVar, Dict, Generic, Mapping, TypeVar\n\nfrom pydantic import BaseModel, model_validator\n\nfrom ethereum_test_base_types import Address, Bytes, Hash, HexNumber\nfrom ethereum_test_types import EOA, compute_create2_address, compute_create_address\n\nTagDict = Dict[str, Address | EOA]\n\nT = TypeVar(\"T\", bound=Address | Hash)\n\n\nclass Tag(BaseModel, Generic[T]):\n    \"\"\"Tag.\"\"\"\n\n    name: str\n    type: ClassVar[str] = \"\"\n    regex_pattern: ClassVar[re.Pattern] = re.compile(r\"<\\w+:(\\w+)(:[^>]+)?\")\n    # Store the original tag string for replacement\n    original_string: str | None = None\n\n    def __hash__(self) -> int:\n        \"\"\"Hash based on original string for use as dict key.\"\"\"\n        return hash(f\"{self.__class__.__name__}:{self.name}\")\n\n    @model_validator(mode=\"before\")\n    @classmethod\n    def validate_from_string(cls, data: Any) -> Any:\n        \"\"\"Validate the generic tag from string: <tag_kind:name:0x...>.\"\"\"\n        if isinstance(data, str):\n            if m := cls.regex_pattern.match(data):\n                name = m.group(1)\n                return {\"name\": name, \"original_string\": data}\n        return data\n\n    def resolve(self, tags: TagDict) -> T:\n        \"\"\"Resolve the tag.\"\"\"\n        raise NotImplementedError(\"Subclasses must implement this method\")\n\n\nclass TagDependentData(ABC):\n    \"\"\"Data for resolving tags.\"\"\"\n\n    @abstractmethod\n    def tag_dependencies(self) -> Mapping[str, Tag]:\n        \"\"\"Get tag dependencies.\"\"\"\n        pass\n\n\nclass AddressTag(Tag[Address]):\n    \"\"\"Address tag.\"\"\"\n\n    def resolve(self, tags: TagDict) -> Address:\n        \"\"\"Resolve the tag.\"\"\"\n        assert self.name in tags, f\"Tag {self.name} not found in tags\"\n        return Address(tags[self.name])\n\n\nclass ContractTag(AddressTag):\n    \"\"\"Contract tag.\"\"\"\n\n    type: ClassVar[str] = \"contract\"\n    regex_pattern: ClassVar[re.Pattern] = re.compile(r\"<contract:([^:>]+)(?::(0x[a-fA-F0-9]+))?>\")\n    # Optional hard-coded address for debugging\n    debug_address: Address | None = None\n\n    @model_validator(mode=\"before\")\n    @classmethod\n    def validate_from_string(cls, data: Any) -> Any:\n        \"\"\"\n        Validate the contract tag from string:\n        <contract:name:0x...>\n        or\n        <contract:0x...>.\n        \"\"\"\n        if isinstance(data, str):\n            if m := cls.regex_pattern.match(data):\n                name_or_addr = m.group(1)\n                debug_addr = m.group(2) if m.lastindex and m.lastindex >= 2 else None\n\n                # Check if it's a 2-part format with an address\n                if name_or_addr.startswith(\"0x\") and len(name_or_addr) == 42:\n                    # For 2-part format, use the full address as the name This\n                    # ensures all references to the same address get the same\n                    # tag name\n                    return {\n                        \"name\": name_or_addr,\n                        \"debug_address\": Address(name_or_addr),\n                        \"original_string\": data,\n                    }\n                else:\n                    # Normal 3-part format - use the name as-is\n                    result = {\"name\": name_or_addr, \"original_string\": data}\n                    if debug_addr:\n                        result[\"debug_address\"] = Address(debug_addr)\n                    return result\n        return data\n\n\nclass CreateTag(AddressTag):\n    \"\"\"Contract derived from a another contract via CREATE.\"\"\"\n\n    create_type: str\n    nonce: HexNumber | None = None\n    salt: HexNumber | None = None\n    initcode: Bytes | None = None\n\n    type: ClassVar[str] = \"contract\"\n    regex_pattern: ClassVar[re.Pattern] = re.compile(r\"<(create|create2):(\\w+):(\\w+):?(\\w+)?>\")\n\n    @model_validator(mode=\"before\")\n    @classmethod\n    def validate_from_string(cls, data: Any) -> Any:\n        \"\"\"Validate the create tag from string: <create:name:nonce>.\"\"\"\n        if isinstance(data, str):\n            if m := cls.regex_pattern.match(data):\n                create_type = m.group(1)\n                name = m.group(2)\n                kwargs = {\n                    \"create_type\": create_type,\n                    \"name\": name,\n                    \"original_string\": data,\n                }\n                if create_type == \"create\":\n                    kwargs[\"nonce\"] = m.group(3)\n                elif create_type == \"create2\":\n                    kwargs[\"salt\"] = m.group(3)\n                    kwargs[\"initcode\"] = m.group(4)\n                return kwargs\n        return data\n\n    def resolve(self, tags: TagDict) -> Address:\n        \"\"\"Resolve the tag.\"\"\"\n        assert self.name in tags, f\"Tag {self.name} not found in tags\"\n        if self.create_type == \"create\":\n            assert self.nonce is not None, \"Nonce is required for create\"\n            return compute_create_address(address=tags[self.name], nonce=self.nonce)\n        elif self.create_type == \"create2\":\n            assert self.salt is not None, \"Salt is required for create2\"\n            assert self.initcode is not None, \"Init code is required for create2\"\n            return compute_create2_address(\n                address=tags[self.name], salt=self.salt, initcode=self.initcode\n            )\n        else:\n            raise ValueError(f\"Invalid create type: {self.create_type}\")\n\n\nclass SenderTag(AddressTag):\n    \"\"\"Sender tag.\"\"\"\n\n    type: ClassVar[str] = \"eoa\"\n    regex_pattern: ClassVar[re.Pattern] = re.compile(r\"<eoa:(\\w+)(?::(0x[a-fA-F0-9]+))?>\")\n    # Optional hard-coded address for debugging\n    debug_address: Address | None = None\n\n    @model_validator(mode=\"before\")\n    @classmethod\n    def validate_from_string(cls, data: Any) -> Any:\n        \"\"\"Validate the sender tag from string: <eoa:name:0x...>.\"\"\"\n        if isinstance(data, str):\n            if m := cls.regex_pattern.match(data):\n                name = m.group(1)\n                debug_addr = m.group(2) if m.lastindex and m.lastindex >= 2 else None\n\n                result = {\"name\": name, \"original_string\": data}\n                if debug_addr:\n                    result[\"debug_address\"] = Address(debug_addr)\n                return result\n        return data\n\n\nclass SenderKeyTag(Tag[EOA]):\n    \"\"\"Sender eoa tag.\"\"\"\n\n    type: ClassVar[str] = \"eoa\"\n    regex_pattern: ClassVar[re.Pattern] = re.compile(r\"<eoa:(\\w+)(?::(0x[a-fA-F0-9]+))?>\")\n    debug_key: str | None = None  # Optional hard-coded key for debugging\n\n    @model_validator(mode=\"before\")\n    @classmethod\n    def validate_from_string(cls, data: Any) -> Any:\n        \"\"\"Validate the sender key tag from string: <eoa:name:0xkey...>.\"\"\"\n        if isinstance(data, str):\n            if m := cls.regex_pattern.match(data):\n                name = m.group(1)\n                debug_key = m.group(2) if m.lastindex and m.lastindex >= 2 else None\n\n                result = {\"name\": name, \"original_string\": data}\n                if debug_key:\n                    result[\"debug_key\"] = debug_key\n                return result\n        return data\n\n    def resolve(self, tags: TagDict) -> EOA:\n        \"\"\"Resolve the tag.\"\"\"\n        assert self.name in tags, f\"Tag {self.name} not found in tags\"\n        result = tags[self.name]\n        assert isinstance(result, EOA), f\"Expected EOA but got {type(result)} for tag {self.name}\"\n        return result\n"
  },
  {
    "path": "src/ethereum_test_specs/static_state/environment.py",
    "content": "\"\"\"Environment structure of ethereum/tests fillers.\"\"\"\n\nfrom typing import Any, Dict\n\nfrom pydantic import BaseModel, ConfigDict, Field, model_validator\n\nfrom ethereum_test_base_types import Address\nfrom ethereum_test_types import Environment\n\nfrom .common import AddressOrTagInFiller, Tag, TagDict, ValueInFiller\n\n\nclass EnvironmentInStateTestFiller(BaseModel):\n    \"\"\"Class that represents an environment filler.\"\"\"\n\n    current_coinbase: AddressOrTagInFiller = Field(..., alias=\"currentCoinbase\")\n    current_gas_limit: ValueInFiller = Field(..., alias=\"currentGasLimit\")\n    current_number: ValueInFiller = Field(..., alias=\"currentNumber\")\n    current_timestamp: ValueInFiller = Field(..., alias=\"currentTimestamp\")\n\n    current_difficulty: ValueInFiller | None = Field(\n        ValueInFiller(\"0x020000\"), alias=\"currentDifficulty\"\n    )\n    current_random: ValueInFiller | None = Field(ValueInFiller(\"0x020000\"), alias=\"currentRandom\")\n    current_base_fee: ValueInFiller | None = Field(ValueInFiller(\"0x0a\"), alias=\"currentBaseFee\")\n\n    current_excess_blob_gas: ValueInFiller | None = Field(None, alias=\"currentExcessBlobGas\")\n\n    model_config = ConfigDict(extra=\"forbid\")\n\n    @model_validator(mode=\"after\")\n    def check_fields(self) -> \"EnvironmentInStateTestFiller\":\n        \"\"\"Validate all fields are set.\"\"\"\n        if self.current_difficulty is None:\n            if self.current_random is None:\n                raise ValueError(\"If `currentDifficulty` is not set, `currentRandom` must be set!\")\n        return self\n\n    def get_environment(self, tags: TagDict) -> Environment:\n        \"\"\"Get the environment.\"\"\"\n        kwargs: Dict[str, Any] = {}\n        if isinstance(self.current_coinbase, Tag):\n            assert self.current_coinbase.name in tags, (\n                f\"Tag {self.current_coinbase.name} to resolve coinbase not found in tags\"\n            )\n            kwargs[\"fee_recipient\"] = self.current_coinbase.resolve(tags)\n        else:\n            kwargs[\"fee_recipient\"] = Address(self.current_coinbase)\n        if self.current_difficulty is not None:\n            kwargs[\"difficulty\"] = self.current_difficulty\n        if self.current_random is not None:\n            kwargs[\"prev_randao\"] = self.current_random\n        if self.current_gas_limit is not None:\n            kwargs[\"gas_limit\"] = self.current_gas_limit\n        if self.current_number is not None:\n            kwargs[\"number\"] = self.current_number\n        if self.current_timestamp is not None:\n            kwargs[\"timestamp\"] = self.current_timestamp\n        if self.current_base_fee is not None:\n            kwargs[\"base_fee_per_gas\"] = self.current_base_fee\n        if self.current_excess_blob_gas is not None:\n            kwargs[\"excess_blob_gas\"] = self.current_excess_blob_gas\n        return Environment(**kwargs)\n"
  },
  {
    "path": "src/ethereum_test_specs/static_state/expect_section.py",
    "content": "\"\"\"Expect section structure of ethereum/tests fillers.\"\"\"\n\nimport re\nfrom enum import StrEnum\nfrom typing import Annotated, Any, Dict, Iterator, List, Mapping, Set, Union\n\nfrom pydantic import (\n    BaseModel,\n    BeforeValidator,\n    Field,\n    ValidatorFunctionWrapHandler,\n    field_validator,\n    model_validator,\n)\n\nfrom ethereum_test_base_types import (\n    Account,\n    Address,\n    CamelModel,\n    EthereumTestRootModel,\n    HexNumber,\n    Storage,\n)\nfrom ethereum_test_exceptions import TransactionExceptionInstanceOrList\nfrom ethereum_test_forks import Fork, get_forks\nfrom ethereum_test_types import Alloc\n\nfrom .common import (\n    AddressOrCreateTagInFiller,\n    CodeInFiller,\n    Tag,\n    TagDependentData,\n    TagDict,\n    ValueInFiller,\n    ValueOrCreateTagInFiller,\n)\n\n\nclass Indexes(BaseModel):\n    \"\"\"Class that represents an index filler.\"\"\"\n\n    data: int | List[Union[int, str]] | List[int] | str = Field(-1)\n    gas: int | List[Union[int, str]] | List[int] | str = Field(-1)\n    value: int | List[Union[int, str]] | List[int] | str = Field(-1)\n\n\ndef validate_any_string_as_none(v: Any) -> Any:\n    \"\"\"Validate \"ANY\" as None.\"\"\"\n    if type(v) is str and v == \"ANY\":\n        return None\n    return v\n\n\nclass StorageInExpectSection(EthereumTestRootModel, TagDependentData):\n    \"\"\"Class that represents a storage in expect section filler.\"\"\"\n\n    root: Dict[\n        ValueOrCreateTagInFiller,\n        Annotated[ValueOrCreateTagInFiller | None, BeforeValidator(validate_any_string_as_none)],\n    ]\n\n    def tag_dependencies(self) -> Mapping[str, Tag]:\n        \"\"\"Get storage dependencies.\"\"\"\n        tag_dependencies = {}\n        for key, value in self.root.items():\n            if isinstance(key, Tag):\n                tag_dependencies[key.name] = key\n            if isinstance(value, Tag):\n                tag_dependencies[value.name] = value\n        return tag_dependencies\n\n    def resolve(self, tags: TagDict) -> Storage:\n        \"\"\"Resolve the account with the given tags.\"\"\"\n        storage = Storage()\n        for key, value in self.root.items():\n            resolved_key: HexNumber | Address\n            if isinstance(key, Tag):\n                resolved_key = key.resolve(tags)\n            else:\n                resolved_key = key\n            if value is None:\n                storage.set_expect_any(resolved_key)\n            elif isinstance(value, Tag):\n                storage[resolved_key] = value.resolve(tags)\n            else:\n                storage[resolved_key] = value\n        return storage\n\n    def __contains__(self, key: Address) -> bool:\n        \"\"\"Check if the storage contains a key.\"\"\"\n        return key in self.root\n\n    def __iter__(self) -> Iterator[ValueOrCreateTagInFiller]:  # type: ignore[override]\n        \"\"\"Iterate over the storage.\"\"\"\n        return iter(self.root)\n\n\nclass AccountInExpectSection(BaseModel, TagDependentData):\n    \"\"\"Class that represents an account in expect section filler.\"\"\"\n\n    balance: ValueInFiller | None = None\n    code: CodeInFiller | None = None\n    nonce: ValueInFiller | None = None\n    storage: StorageInExpectSection | None = None\n\n    @model_validator(mode=\"wrap\")  # type: ignore[misc]\n    @classmethod\n    def validate_should_not_exist(\n        cls, v: Any, handler: ValidatorFunctionWrapHandler\n    ) -> \"AccountInExpectSection | None\":\n        \"\"\"\n        Validate the \"shouldnotexist\" field, which makes this validator return\n        `None`.\n        \"\"\"\n        if isinstance(v, dict):\n            if \"shouldnotexist\" in v:\n                return None\n        return handler(v)\n\n    def tag_dependencies(self) -> Mapping[str, Tag]:\n        \"\"\"Get tag dependencies.\"\"\"\n        tag_dependencies: Dict[str, Tag] = {}\n        if self.code is not None:\n            tag_dependencies.update(self.code.tag_dependencies())\n        if self.storage is not None:\n            tag_dependencies.update(self.storage.tag_dependencies())\n        return tag_dependencies\n\n    def resolve(self, tags: TagDict) -> Account:\n        \"\"\"Resolve the account with the given tags.\"\"\"\n        account_kwargs: Dict[str, Any] = {}\n        if self.storage is not None:\n            account_kwargs[\"storage\"] = self.storage.resolve(tags)\n        if self.code is not None:\n            account_kwargs[\"code\"] = self.code.compiled(tags)\n        if self.balance is not None:\n            account_kwargs[\"balance\"] = self.balance\n        if self.nonce is not None:\n            account_kwargs[\"nonce\"] = self.nonce\n        return Account(**account_kwargs)\n\n\nclass CMP(StrEnum):\n    \"\"\"Comparison action.\"\"\"\n\n    LE = \"<=\"\n    GE = \">=\"\n    LT = \"<\"\n    GT = \">\"\n    EQ = \"=\"\n\n\nclass ForkConstraint(BaseModel):\n    \"\"\"Single fork with an operand.\"\"\"\n\n    operand: CMP\n    fork: Fork\n\n    @field_validator(\"fork\", mode=\"before\")\n    @classmethod\n    def parse_fork_synonyms(cls, value: Any) -> Any:\n        \"\"\"Resolve fork synonyms.\"\"\"\n        if value == \"EIP158\":\n            value = \"Byzantium\"\n        return value\n\n    @model_validator(mode=\"before\")\n    @classmethod\n    def parse_from_string(cls, data: Any) -> Any:\n        \"\"\"Parse a fork with operand from a string.\"\"\"\n        if isinstance(data, str):\n            for cmp in CMP:\n                if data.startswith(cmp):\n                    fork = data.removeprefix(cmp)\n                    return {\n                        \"operand\": cmp,\n                        \"fork\": fork,\n                    }\n            return {\n                \"operand\": CMP.EQ,\n                \"fork\": data,\n            }\n        return data\n\n    def match(self, fork: Fork) -> bool:\n        \"\"\"Return whether the fork satisfies the operand evaluation.\"\"\"\n        match self.operand:\n            case CMP.LE:\n                return fork <= self.fork\n            case CMP.GE:\n                return fork >= self.fork\n            case CMP.LT:\n                return fork < self.fork\n            case CMP.GT:\n                return fork > self.fork\n            case CMP.EQ:\n                return fork == self.fork\n            case _:\n                raise ValueError(f\"Invalid operand: {self.operand}\")\n\n\nclass ForkSet(EthereumTestRootModel):\n    \"\"\"Set of forks.\"\"\"\n\n    root: Set[Fork]\n\n    @model_validator(mode=\"before\")\n    @classmethod\n    def parse_from_list_or_string(cls, value: Any) -> Set[Fork]:\n        \"\"\"Parse fork_with_operand `>=Cancun` into {Cancun, Prague, ...}.\"\"\"\n        fork_set: Set[Fork] = set()\n        if not isinstance(value, list):\n            value = [value]\n\n        for fork_with_operand in value:\n            matches = re.findall(r\"(<=|<|>=|>|=)([^<>=]+)\", fork_with_operand)\n            if matches:\n                all_fork_constraints = [\n                    ForkConstraint.model_validate(f\"{op}{fork.strip()}\") for op, fork in matches\n                ]\n            else:\n                all_fork_constraints = [ForkConstraint.model_validate(fork_with_operand.strip())]\n\n            for fork in get_forks():\n                for f in all_fork_constraints:\n                    if not f.match(fork):\n                        # If any constraint does not match, skip adding\n                        break\n                else:\n                    # All constraints match, add the fork to the set\n                    fork_set.add(fork)\n\n        return fork_set\n\n    def __hash__(self) -> int:\n        \"\"\"Return the hash of the fork set.\"\"\"\n        h = hash(None)\n        for fork in sorted([str(f) for f in self]):\n            h ^= hash(fork)\n        return h\n\n    def __contains__(self, fork: Fork) -> bool:\n        \"\"\"Check if the fork set contains a fork.\"\"\"\n        return fork in self.root\n\n    def __iter__(self) -> Iterator[Fork]:  # type: ignore[override]\n        \"\"\"Iterate over the fork set.\"\"\"\n        return iter(self.root)\n\n    def __len__(self) -> int:\n        \"\"\"Return the length of the fork set.\"\"\"\n        return len(self.root)\n\n\nclass ResultInFiller(EthereumTestRootModel, TagDependentData):\n    \"\"\"\n    Post section in state test filler.\n\n    A value of `None` for an address means that the account should not be in\n    the state trie at the end of the test.\n    \"\"\"\n\n    root: Dict[AddressOrCreateTagInFiller, AccountInExpectSection | None]\n\n    def tag_dependencies(self) -> Mapping[str, Tag]:\n        \"\"\"Return all tags used in the result.\"\"\"\n        tag_dependencies: Dict[str, Tag] = {}\n        for address, account in self.root.items():\n            if isinstance(address, Tag):\n                tag_dependencies[address.name] = address\n\n            if account is None:\n                continue\n\n            tag_dependencies.update(account.tag_dependencies())\n\n        return tag_dependencies\n\n    def resolve(self, tags: TagDict) -> Alloc:\n        \"\"\"Resolve the post section.\"\"\"\n        post = Alloc()\n        for address, account in self.root.items():\n            if isinstance(address, Tag):\n                resolved_address = address.resolve(tags)\n            else:\n                resolved_address = Address(address)\n\n            if account is None:\n                continue\n\n            post[resolved_address] = account.resolve(tags)\n        return post\n\n    def __contains__(self, address: Address) -> bool:\n        \"\"\"Check if the result contains an address.\"\"\"\n        return address in self.root\n\n    def __iter__(self) -> Iterator[AddressOrCreateTagInFiller]:  # type: ignore[override]\n        \"\"\"Iterate over the result.\"\"\"\n        return iter(self.root)\n\n    def __len__(self) -> int:\n        \"\"\"Return the length of the result.\"\"\"\n        return len(self.root)\n\n\nclass ExpectException(EthereumTestRootModel):\n    \"\"\"Expect exception model.\"\"\"\n\n    root: Dict[ForkSet, TransactionExceptionInstanceOrList]\n\n    def __getitem__(self, fork: Fork) -> TransactionExceptionInstanceOrList:\n        \"\"\"Get an expectation for a given fork.\"\"\"\n        for k in self.root:\n            if fork in k:\n                return self.root[k]\n        raise KeyError(f\"Fork {fork} not found in expectations.\")\n\n    def __contains__(self, fork: Fork) -> bool:\n        \"\"\"Check if the expect exception contains a fork.\"\"\"\n        return fork in self.root\n\n    def __iter__(self) -> Iterator[ForkSet]:  # type: ignore[override]\n        \"\"\"Iterate over the expect exception.\"\"\"\n        return iter(self.root)\n\n    def __len__(self) -> int:\n        \"\"\"Return the length of the expect exception.\"\"\"\n        return len(self.root)\n\n\nclass ExpectSectionInStateTestFiller(CamelModel):\n    \"\"\"Expect section in state test filler.\"\"\"\n\n    indexes: Indexes = Field(default_factory=Indexes)\n    network: ForkSet\n    result: ResultInFiller\n    expect_exception: ExpectException | None = None\n\n    def model_post_init(self, __context: Any) -> None:\n        \"\"\"Validate that the expectation is coherent.\"\"\"\n        if self.expect_exception is None:\n            return\n        all_forks: Set[Fork] = set()\n        for current_fork_set in self.expect_exception:\n            for fork in current_fork_set:\n                assert fork not in all_forks\n                all_forks.add(fork)\n\n    def has_index(self, d: int, g: int, v: int) -> bool:\n        \"\"\"Check if there is index set in indexes.\"\"\"\n        d_match: bool = False\n        g_match: bool = False\n        v_match: bool = False\n\n        # Check if data index match\n        if isinstance(self.indexes.data, int):\n            d_match = True if self.indexes.data == -1 or self.indexes.data == d else False\n        elif isinstance(self.indexes.data, list):\n            d_match = True if self.indexes.data.count(d) else False\n\n        # Check if gas index match\n        if isinstance(self.indexes.gas, int):\n            g_match = True if self.indexes.gas == -1 or self.indexes.gas == g else False\n        elif isinstance(self.indexes.gas, list):\n            g_match = True if self.indexes.gas.count(g) else False\n\n        # Check if value index match\n        if isinstance(self.indexes.value, int):\n            v_match = True if self.indexes.value == -1 or self.indexes.value == v else False\n        elif isinstance(self.indexes.value, list):\n            v_match = True if self.indexes.value.count(v) else False\n\n        return d_match and g_match and v_match\n"
  },
  {
    "path": "src/ethereum_test_specs/static_state/general_transaction.py",
    "content": "\"\"\"General transaction structure of ethereum/tests fillers.\"\"\"\n\nfrom typing import Any, Dict, Generator, List, Mapping\n\nfrom pydantic import BaseModel, ConfigDict, Field, field_validator, model_validator\n\nfrom ethereum_test_base_types import Address, CamelModel, EthereumTestRootModel, Hash\nfrom ethereum_test_exceptions import TransactionExceptionInstanceOrList\nfrom ethereum_test_types import Transaction\n\nfrom .common import (\n    AccessListInFiller,\n    AddressOrTagInFiller,\n    CodeInFiller,\n    HashOrTagInFiller,\n    Tag,\n    TagDependentData,\n    TagDict,\n    ValueInFiller,\n)\n\n\nclass DataWithAccessList(CamelModel, TagDependentData):\n    \"\"\"Class that represents data with access list.\"\"\"\n\n    data: CodeInFiller\n    access_list: List[AccessListInFiller] | None = None\n\n    @field_validator(\"access_list\", mode=\"before\")\n    @classmethod\n    def convert_keys_to_hash(\n        cls, access_list: List[Dict[str, Any]] | None\n    ) -> List[Dict[str, Any]] | None:  # noqa: N805\n        \"\"\"Fix keys.\"\"\"\n        if access_list is None:\n            return None\n        for entry in access_list:\n            if \"storageKeys\" in entry:\n                entry[\"storageKeys\"] = [\n                    Hash(key, left_padding=True) for key in entry[\"storageKeys\"]\n                ]\n        return access_list\n\n    def tag_dependencies(self) -> Mapping[str, Tag]:\n        \"\"\"Get tag dependencies.\"\"\"\n        tag_dependencies: Dict[str, Tag] = {}\n        if self.access_list is not None:\n            for entry in self.access_list:\n                tag_dependencies.update(entry.tag_dependencies())\n        if self.data is not None and isinstance(self.data, CodeInFiller):\n            tag_dependencies.update(self.data.tag_dependencies())\n        return tag_dependencies\n\n    @model_validator(mode=\"wrap\")\n    @classmethod\n    def wrap_data_only(cls, data: Any, handler: Any) -> \"DataWithAccessList\":\n        \"\"\"Wrap data only if it is not a dictionary.\"\"\"\n        if not isinstance(data, dict) and not isinstance(data, DataWithAccessList):\n            data = {\"data\": data}\n        return handler(data)\n\n\nclass LabeledDataIndex(BaseModel):\n    \"\"\"Represents an index with a label if any.\"\"\"\n\n    index: int\n    label: str | None = None\n\n    def __str__(self) -> str:\n        \"\"\"Transform into a string that can be part of a test name.\"\"\"\n        if self.label is not None:\n            return self.label\n        return f\"{self.index}\"\n\n\nclass LabeledDataList(EthereumTestRootModel):\n    \"\"\"Class that represents a list of labeled data.\"\"\"\n\n    root: List[DataWithAccessList]\n\n    def __getitem__(self, label_or_index: int | str) -> DataWithAccessList:\n        \"\"\"Get an item by label or index.\"\"\"\n        if isinstance(label_or_index, int):\n            return self.root[label_or_index]\n        if isinstance(label_or_index, str):\n            for item in self.root:\n                if item.data.label == label_or_index:\n                    return item\n        raise KeyError(f\"Label/index {label_or_index} not found in data indexes\")\n\n    def __contains__(self, label_or_index: int | str) -> bool:\n        \"\"\"\n        Return True if the LabeledDataList contains the given label/index.\n        \"\"\"\n        if isinstance(label_or_index, int):\n            return label_or_index < len(self.root)\n        if isinstance(label_or_index, str):\n            for item in self.root:\n                if item.data.label == label_or_index:\n                    return True\n        return False\n\n    def __len__(self) -> int:\n        \"\"\"Return the length of the list.\"\"\"\n        return len(self.root)\n\n    def __iter__(self) -> Generator[LabeledDataIndex, None, None]:  # type: ignore\n        \"\"\"Return the iterator of the root list.\"\"\"\n        for i, item in enumerate(self.root):\n            labeled_data_index = LabeledDataIndex(index=i)\n            if item.data.label is not None:\n                labeled_data_index.label = item.data.label\n            yield labeled_data_index\n\n\nclass GeneralTransactionInFiller(BaseModel, TagDependentData):\n    \"\"\"Class that represents general transaction in filler.\"\"\"\n\n    data: LabeledDataList\n    gas_limit: List[ValueInFiller] = Field(..., alias=\"gasLimit\")\n    gas_price: ValueInFiller | None = Field(None, alias=\"gasPrice\")\n    nonce: ValueInFiller | None\n    to: AddressOrTagInFiller | None\n    value: List[ValueInFiller]\n    secret_key: HashOrTagInFiller = Field(..., alias=\"secretKey\")\n\n    max_fee_per_gas: ValueInFiller | None = Field(None, alias=\"maxFeePerGas\")\n    max_priority_fee_per_gas: ValueInFiller | None = Field(None, alias=\"maxPriorityFeePerGas\")\n\n    max_fee_per_blob_gas: ValueInFiller | None = Field(None, alias=\"maxFeePerBlobGas\")\n    blob_versioned_hashes: List[Hash] | None = Field(None, alias=\"blobVersionedHashes\")\n\n    model_config = ConfigDict(extra=\"forbid\")\n\n    def tag_dependencies(self) -> Mapping[str, Tag]:\n        \"\"\"Get tag dependencies.\"\"\"\n        tag_dependencies: Dict[str, Tag] = {}\n        if self.data:\n            for idx in self.data:\n                data = self.data[idx.index]\n                tag_dependencies.update(data.tag_dependencies())\n        if self.to is not None and isinstance(self.to, Tag):\n            tag_dependencies[self.to.name] = self.to\n        if self.secret_key is not None and isinstance(self.secret_key, Tag):\n            tag_dependencies[self.secret_key.name] = self.secret_key\n        return tag_dependencies\n\n    @field_validator(\"to\", mode=\"before\")\n    def check_single_key(cls, to: Any) -> Any:  # noqa: N805\n        \"\"\"Creation transaction.\"\"\"\n        if to == \"\":\n            to = None\n        return to\n\n    @model_validator(mode=\"after\")\n    def check_fields(self) -> \"GeneralTransactionInFiller\":\n        \"\"\"Validate all fields are set.\"\"\"\n        if self.gas_price is None:\n            if self.max_fee_per_gas is None or self.max_priority_fee_per_gas is None:\n                raise ValueError(\n                    \"If `gasPrice` is not set,\"\n                    \" `maxFeePerGas` and `maxPriorityFeePerGas` must be set!\"\n                )\n        return self\n\n    def get_transaction(\n        self,\n        tags: TagDict,\n        d: int,\n        g: int,\n        v: int,\n        exception: TransactionExceptionInstanceOrList | None,\n    ) -> Transaction:\n        \"\"\"Get the transaction.\"\"\"\n        data_box = self.data[d]\n        kwargs: Dict[str, Any] = {}\n        if self.to is None:\n            kwargs[\"to\"] = None\n        elif isinstance(self.to, Tag):\n            kwargs[\"to\"] = self.to.resolve(tags)\n        else:\n            kwargs[\"to\"] = Address(self.to)\n\n        kwargs[\"data\"] = data_box.data.compiled(tags)\n        if data_box.access_list is not None:\n            kwargs[\"access_list\"] = [entry.resolve(tags) for entry in data_box.access_list]\n\n        kwargs[\"gas_limit\"] = self.gas_limit[g]\n\n        if isinstance(self.secret_key, Tag):\n            sender = self.secret_key.resolve(tags)\n            kwargs[\"secret_key\"] = sender.key\n        else:\n            kwargs[\"secret_key\"] = self.secret_key\n\n        if self.value[v] > 0:\n            kwargs[\"value\"] = self.value[v]\n        if self.gas_price is not None:\n            kwargs[\"gas_price\"] = self.gas_price\n        if self.nonce is not None:\n            kwargs[\"nonce\"] = self.nonce\n        if self.max_fee_per_gas is not None:\n            kwargs[\"max_fee_per_gas\"] = self.max_fee_per_gas\n        if self.max_priority_fee_per_gas is not None:\n            kwargs[\"max_priority_fee_per_gas\"] = self.max_priority_fee_per_gas\n        if self.max_fee_per_blob_gas is not None:\n            kwargs[\"max_fee_per_blob_gas\"] = self.max_fee_per_blob_gas\n        if self.blob_versioned_hashes is not None:\n            kwargs[\"blob_versioned_hashes\"] = self.blob_versioned_hashes\n\n        if exception is not None:\n            kwargs[\"error\"] = exception\n\n        return Transaction(**kwargs)\n"
  },
  {
    "path": "src/ethereum_test_specs/static_state/state_static.py",
    "content": "\"\"\"Ethereum General State Test filler static test spec parser.\"\"\"\n\nfrom typing import Any, Callable, ClassVar, List, Self, Set, Union\n\nimport pytest\nfrom _pytest.mark.structures import ParameterSet\nfrom pydantic import BaseModel, ConfigDict, Field, model_validator\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_types import Alloc\n\nfrom ..base_static import BaseStaticTest\nfrom ..state import StateTestFiller\nfrom .account import PreInFiller\nfrom .common import Tag\nfrom .environment import EnvironmentInStateTestFiller\nfrom .expect_section import ExpectSectionInStateTestFiller\nfrom .general_transaction import GeneralTransactionInFiller\n\n\nclass Info(BaseModel):\n    \"\"\"Class that represents an info filler.\"\"\"\n\n    comment: str | None = Field(None)\n    pytest_marks: List[str] = Field(default_factory=list)\n\n\nclass StateStaticTest(BaseStaticTest):\n    \"\"\"General State Test static filler from ethereum/tests.\"\"\"\n\n    test_name: str = \"\"\n    format_name: ClassVar[str] = \"state_test\"\n\n    info: Info | None = Field(None, alias=\"_info\")\n    env: EnvironmentInStateTestFiller\n    pre: PreInFiller\n    transaction: GeneralTransactionInFiller\n    expect: List[ExpectSectionInStateTestFiller]\n\n    model_config = ConfigDict(extra=\"forbid\")\n\n    def model_post_init(self, context: Any) -> None:\n        \"\"\"Initialize StateStaticTest.\"\"\"\n        super().model_post_init(context)\n\n    @model_validator(mode=\"after\")\n    def match_labels(self) -> Self:\n        \"\"\"Replace labels in expect section with corresponding tx.d indexes.\"\"\"\n\n        def parse_string_indexes(indexes: str) -> List[int]:\n            \"\"\"Parse index that are string in to list of int.\"\"\"\n            if \":label\" in indexes:\n                # Parse labels in data\n                indexes = indexes.replace(\":label \", \"\")\n                tx_matches: List[int] = []\n                for idx in self.transaction.data:\n                    if indexes == idx.label:\n                        tx_matches.append(idx.index)\n                return tx_matches\n            else:\n                # Parse ranges in data\n                start, end = map(int, indexes.lstrip().split(\"-\"))\n                return list(range(start, end + 1))\n\n        def parse_indexes(\n            indexes: Union[int, str, list[Union[int, str]], list[str], list[int]],\n            do_hint: bool = False,\n        ) -> List[int] | int:\n            \"\"\"\n            Parse indexes and replace all ranges and labels into tx indexes.\n            \"\"\"\n            result: List[int] | int = []\n\n            if do_hint:\n                print(\"Before: \" + str(indexes))\n\n            if isinstance(indexes, int):\n                result = indexes\n            if isinstance(indexes, str):\n                result = parse_string_indexes(indexes)\n            if isinstance(indexes, list):\n                result = []\n                for element in indexes:\n                    parsed = parse_indexes(element)\n                    if isinstance(parsed, int):\n                        result.append(parsed)\n                    else:\n                        result.extend(parsed)\n                result = list(set(result))\n\n            if do_hint:\n                print(\"After: \" + str(result))\n            return result\n\n        for expect_section in self.expect:\n            expect_section.indexes.data = parse_indexes(expect_section.indexes.data)\n            expect_section.indexes.gas = parse_indexes(expect_section.indexes.gas)\n            expect_section.indexes.value = parse_indexes(expect_section.indexes.value)\n\n        return self\n\n    def fill_function(self) -> Callable:\n        \"\"\"Return a StateTest spec from a static file.\"\"\"\n        # Check if this test uses tags\n        has_tags = False\n        tx_tag_dependencies = self.transaction.tag_dependencies()\n        if tx_tag_dependencies:\n            has_tags = True\n        else:\n            # Check expect sections for tags\n            for expect in self.expect:\n                result_tag_dependencies = expect.result.tag_dependencies()\n                if result_tag_dependencies:\n                    has_tags = True\n                    break\n\n        fully_tagged = True\n        for address in self.pre.root:\n            if not isinstance(address, Tag):\n                fully_tagged = False\n                break\n\n        d_g_v_parameters: List[ParameterSet] = []\n        for d in self.transaction.data:\n            for g in range(len(self.transaction.gas_limit)):\n                for v in range(len(self.transaction.value)):\n                    exception_test = False\n                    for expect in self.expect:\n                        if expect.has_index(d.index, g, v) and expect.expect_exception is not None:\n                            exception_test = True\n                    # TODO: This does not take into account exceptions that\n                    # only happen on specific forks, but this requires a\n                    # covariant parametrize\n                    marks = [pytest.mark.exception_test] if exception_test else []\n                    id_label = \"\"\n                    if len(self.transaction.data) > 1 or d.label is not None:\n                        if d.label is not None:\n                            id_label = f\"{d}\"\n                        else:\n                            id_label = f\"d{d}\"\n                    if len(self.transaction.gas_limit) > 1:\n                        id_label += f\"-g{g}\"\n                    if len(self.transaction.value) > 1:\n                        id_label += f\"-v{v}\"\n                    d_g_v_parameters.append(pytest.param(d.index, g, v, marks=marks, id=id_label))\n\n        @pytest.mark.valid_at(*self.get_valid_at_forks())\n        @pytest.mark.parametrize(\"d,g,v\", d_g_v_parameters)\n        def test_state_vectors(\n            state_test: StateTestFiller,\n            pre: Alloc,\n            fork: Fork,\n            d: int,\n            g: int,\n            v: int,\n        ) -> None:\n            for expect in self.expect:\n                if expect.has_index(d, g, v):\n                    if fork in expect.network:\n                        tx_tag_dependencies = self.transaction.tag_dependencies()\n                        result_tag_dependencies = expect.result.tag_dependencies()\n                        all_dependencies = {**tx_tag_dependencies, **result_tag_dependencies}\n                        tags = self.pre.setup(pre, all_dependencies)\n                        env = self.env.get_environment(tags)\n                        exception = (\n                            None\n                            if expect.expect_exception is None\n                            else expect.expect_exception[fork]\n                        )\n                        tx = self.transaction.get_transaction(tags, d, g, v, exception)\n                        post = expect.result.resolve(tags)\n                        state_test(\n                            env=env,\n                            pre=pre,\n                            post=post,\n                            tx=tx,\n                        )\n                        return\n            pytest.fail(f\"Expectation not found for d={d}, g={g}, v={v}, fork={fork}\")\n\n        if self.info and self.info.pytest_marks:\n            for mark in self.info.pytest_marks:\n                if mark == \"pre_alloc_group\":\n                    test_state_vectors = pytest.mark.pre_alloc_group(\n                        \"separate\", reason=\"Requires separate pre-alloc grouping\"\n                    )(test_state_vectors)\n                else:\n                    apply_mark = getattr(pytest.mark, mark)\n                    test_state_vectors = apply_mark(test_state_vectors)\n\n        if has_tags:\n            test_state_vectors = pytest.mark.tagged(test_state_vectors)\n            if fully_tagged:\n                test_state_vectors = pytest.mark.fully_tagged(test_state_vectors)\n        else:\n            test_state_vectors = pytest.mark.untagged(test_state_vectors)\n            test_state_vectors = pytest.mark.pre_alloc_group(\n                \"separate\", reason=\"Uses hard-coded addresses\"\n            )(test_state_vectors)\n        if not fully_tagged:\n            test_state_vectors = pytest.mark.pre_alloc_modify(test_state_vectors)\n\n        return test_state_vectors\n\n    def get_valid_at_forks(self) -> List[str]:\n        \"\"\"Return list of forks that are valid for this test.\"\"\"\n        fork_set: Set[Fork] = set()\n        for expect in self.expect:\n            fork_set.update(expect.network)\n        return sorted([str(f) for f in fork_set])\n"
  },
  {
    "path": "src/ethereum_test_specs/tests/__init__.py",
    "content": "\"\"\"Tests for the ethereum_test_specs package.\"\"\"\n"
  },
  {
    "path": "src/ethereum_test_specs/tests/helpers.py",
    "content": "\"\"\"Helper methods used in the spec tests.\"\"\"\n\nfrom typing import Any, Dict\n\n\ndef remove_info_metadata(fixture_json: Dict[str, Any]) -> None:  # noqa: D103\n    for t in fixture_json:\n        if \"_info\" in fixture_json[t]:\n            info_keys = list(fixture_json[t][\"_info\"].keys())\n            for key in info_keys:\n                if key != \"hash\":  # remove keys that are not 'hash'\n                    del fixture_json[t][\"_info\"][key]\n"
  },
  {
    "path": "src/ethereum_test_specs/tests/test_benchmark.py",
    "content": "\"\"\"\nTests for the BenchmarkTest class and its\ntransaction splitting functionality.\n\"\"\"\n\nimport pytest\n\nfrom ethereum_test_base_types import HexNumber\nfrom ethereum_test_specs.benchmark import BenchmarkTest\nfrom ethereum_test_types import Alloc, Environment, Transaction\n\n\n@pytest.mark.parametrize(\n    \"gas_benchmark_value_millions,expected_splits\",\n    [\n        (1, 1),  # 1M / 16M = 1 transaction\n        (10, 1),  # 10M / 16M = 1 transaction\n        (30, 2),  # 30M / 16M = 2 transactions (16M + 14M)\n        (45, 3),  # 45M / 16M = 3 transactions (16M + 16M + 13M)\n        (60, 4),  # 60M / 16M = 4 transactions (16M + 16M + 16M + 12M)\n        (100, 7),  # 100M / 16M = 7 transactions (6x16M + 4M)\n        (150, 10),  # 150M / 16M = 10 transactions (9x16M + 6M)\n    ],\n)\ndef test_split_transaction(gas_benchmark_value_millions: int, expected_splits: int) -> None:\n    \"\"\"\n    Test that transaction splitting works\n    correctly for Osaka fork gas cap.\n    \"\"\"\n    gas_benchmark_value = gas_benchmark_value_millions * 1_000_000\n    gas_limit_cap = 16_000_000  # Osaka's transaction gas limit cap\n\n    # Create a minimal BenchmarkTest instance\n    benchmark_test = BenchmarkTest(\n        pre=Alloc(),\n        post=Alloc(),\n        tx=Transaction(sender=HexNumber(0), to=HexNumber(0), nonce=0),\n        env=Environment(),\n        gas_benchmark_value=gas_benchmark_value,\n    )\n\n    # Test the split_transaction method\n    assert benchmark_test.tx is not None, \"Transaction should not be None\"\n    split_txs = benchmark_test.split_transaction(benchmark_test.tx, gas_limit_cap)\n\n    # Verify the number of transactions\n    assert len(split_txs) == expected_splits, (\n        f\"Expected {expected_splits} transactions for {gas_benchmark_value_millions}M gas, \"\n        f\"got {len(split_txs)}\"\n    )\n\n    # Verify total gas equals the benchmark value\n    total_gas = sum(tx.gas_limit for tx in split_txs)\n    assert total_gas == gas_benchmark_value, (\n        f\"Total gas {total_gas} doesn't match benchmark value {gas_benchmark_value}\"\n    )\n\n    # Verify no transaction exceeds the cap\n    for i, tx in enumerate(split_txs):\n        assert tx.gas_limit <= gas_limit_cap, (\n            f\"Transaction {i} gas limit {tx.gas_limit} exceeds cap {gas_limit_cap}\"\n        )\n\n    # Verify nonces increment correctly\n    for i, tx in enumerate(split_txs):\n        assert tx.nonce == i, f\"Transaction {i} has incorrect nonce {tx.nonce}\"\n\n    # Verify gas distribution\n    for i, tx in enumerate(split_txs[:-1]):  # All but last should be at cap\n        assert tx.gas_limit == gas_limit_cap, (\n            f\"Transaction {i} should have gas limit {gas_limit_cap}, got {tx.gas_limit}\"\n        )\n\n    # Last transaction should have the remainder\n    if expected_splits > 1:\n        expected_last_gas = gas_benchmark_value - (gas_limit_cap * (expected_splits - 1))\n        assert split_txs[-1].gas_limit == expected_last_gas, (\n            f\"Last transaction should have {expected_last_gas} gas, got {split_txs[-1].gas_limit}\"\n        )\n\n\n@pytest.mark.parametrize(\n    \"gas_benchmark_value,gas_limit_cap\",\n    [\n        (50_000_000, None),  # No cap - should return single transaction\n        (50_000_000, 100_000_000),  # Cap higher than benchmark value\n    ],\n)\ndef test_split_transaction_edge_cases(gas_benchmark_value: int, gas_limit_cap: int | None) -> None:\n    \"\"\"Test edge cases for transaction splitting.\"\"\"\n    benchmark_test = BenchmarkTest(\n        pre=Alloc(),\n        post=Alloc(),\n        tx=Transaction(sender=HexNumber(0), to=HexNumber(0), nonce=0, gas_limit=1_000_000_000),\n        env=Environment(),\n        gas_benchmark_value=gas_benchmark_value,\n    )\n\n    assert benchmark_test.tx is not None, \"Transaction should not be None\"\n    split_txs = benchmark_test.split_transaction(benchmark_test.tx, gas_limit_cap)\n\n    # Should return single transaction in both cases\n    assert len(split_txs) == 1, f\"Expected 1 transaction, got {len(split_txs)}\"\n\n    if gas_limit_cap is None:\n        # When no cap, gas_limit should be benchmark value\n        assert split_txs[0].gas_limit == gas_benchmark_value\n    else:\n        # When cap > benchmark, gas_limit should be\n        # min of tx.gas_limit and benchmark\n        assert benchmark_test.tx is not None, \"Transaction should not be None\"\n        assert split_txs[0].gas_limit == min(benchmark_test.tx.gas_limit, gas_benchmark_value)\n"
  },
  {
    "path": "src/ethereum_test_specs/tests/test_expect.py",
    "content": "\"\"\"Test fixture post state (expect section) during state fixture generation.\"\"\"\n\nfrom typing import Any, Mapping, Type\n\nimport pytest\n\nfrom ethereum_clis import TransitionTool\nfrom ethereum_test_base_types import Account, Address, Storage, TestAddress, TestPrivateKey\nfrom ethereum_test_exceptions import TransactionException\nfrom ethereum_test_fixtures import BlockchainFixture, FixtureFormat, StateFixture\nfrom ethereum_test_forks import Fork, get_deployed_forks\nfrom ethereum_test_tools import Block\nfrom ethereum_test_types import Alloc, Environment, Transaction, TransactionReceipt\n\nfrom ..blockchain import BlockchainEngineFixture, BlockchainTest\nfrom ..helpers import (\n    ExecutionExceptionMismatchError,\n    TransactionReceiptMismatchError,\n    UnexpectedExecutionFailError,\n    UnexpectedExecutionSuccessError,\n)\nfrom ..state import StateTest\n\nADDRESS_UNDER_TEST = Address(0x01)\n\n\n@pytest.fixture\ndef tx() -> Transaction:\n    \"\"\"Fixture set from the test's indirectly parametrized `tx` parameter.\"\"\"\n    return Transaction(secret_key=TestPrivateKey)\n\n\n@pytest.fixture\ndef pre(request: Any) -> Alloc:\n    \"\"\"Fixture set from the test's indirectly parametrized `pre` parameter.\"\"\"\n    extra_accounts = {}\n    if hasattr(request, \"param\"):\n        extra_accounts = request.param\n    return Alloc(extra_accounts | {TestAddress: Account(balance=(10**18))})\n\n\n@pytest.fixture\ndef post(request: Any) -> Alloc:  # noqa: D103\n    \"\"\"Fixture set from the test's indirectly parametrized `post` parameter.\"\"\"\n    extra_accounts = {}\n    if hasattr(request, \"param\"):\n        extra_accounts = request.param\n    return Alloc(extra_accounts)\n\n\n@pytest.fixture\ndef fork() -> Fork:  # noqa: D103\n    return get_deployed_forks()[-1]\n\n\n@pytest.fixture\ndef state_test(  # noqa: D103\n    pre: Mapping[Any, Any], post: Mapping[Any, Any], tx: Transaction\n) -> StateTest:\n    return StateTest(\n        env=Environment(),\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\n# Storage value mismatch tests\n@pytest.mark.parametrize(\n    \"pre,post,expected_exception\",\n    [\n        (  # mismatch_1: 1:1 vs 1:2\n            {ADDRESS_UNDER_TEST: Account(storage={\"0x01\": \"0x01\"}, nonce=1)},\n            {ADDRESS_UNDER_TEST: Account(storage={\"0x01\": \"0x02\"})},\n            Storage.KeyValueMismatchError(address=ADDRESS_UNDER_TEST, key=1, want=2, got=1),\n        ),\n        (  # mismatch_2: 1:1 vs 2:1\n            {ADDRESS_UNDER_TEST: Account(storage={\"0x01\": \"0x01\"}, nonce=1)},\n            {ADDRESS_UNDER_TEST: Account(storage={\"0x02\": \"0x01\"})},\n            Storage.KeyValueMismatchError(address=ADDRESS_UNDER_TEST, key=1, want=0, got=1),\n        ),\n        (  # mismatch_2_a: 1:1 vs 0:0\n            {ADDRESS_UNDER_TEST: Account(storage={\"0x01\": \"0x01\"}, nonce=1)},\n            {ADDRESS_UNDER_TEST: Account(storage={\"0x00\": \"0x00\"})},\n            Storage.KeyValueMismatchError(address=ADDRESS_UNDER_TEST, key=1, want=0, got=1),\n        ),\n        (  # mismatch_2_b: 1:1 vs empty\n            {ADDRESS_UNDER_TEST: Account(storage={\"0x01\": \"0x01\"}, nonce=1)},\n            {ADDRESS_UNDER_TEST: Account(storage={})},\n            Storage.KeyValueMismatchError(address=ADDRESS_UNDER_TEST, key=1, want=0, got=1),\n        ),\n        (  # mismatch_3: 0:0 vs 1:2\n            {ADDRESS_UNDER_TEST: Account(storage={\"0x00\": \"0x00\"}, nonce=1)},\n            {ADDRESS_UNDER_TEST: Account(storage={\"0x01\": \"0x02\"})},\n            Storage.KeyValueMismatchError(address=ADDRESS_UNDER_TEST, key=1, want=2, got=0),\n        ),\n        (  # mismatch_3_a: empty vs 1:2\n            {ADDRESS_UNDER_TEST: Account(storage={}, nonce=1)},\n            {ADDRESS_UNDER_TEST: Account(storage={\"0x01\": \"0x02\"})},\n            Storage.KeyValueMismatchError(address=ADDRESS_UNDER_TEST, key=1, want=2, got=0),\n        ),\n        (  # mismatch_4: 0:3, 1:2 vs 1:2\n            {ADDRESS_UNDER_TEST: Account(storage={\"0x00\": \"0x03\", \"0x01\": \"0x02\"}, nonce=1)},\n            {ADDRESS_UNDER_TEST: Account(storage={\"0x01\": \"0x02\"})},\n            Storage.KeyValueMismatchError(address=ADDRESS_UNDER_TEST, key=0, want=0, got=3),\n        ),\n        (  # mismatch_5: 1:2, 2:3 vs 1:2\n            {ADDRESS_UNDER_TEST: Account(storage={\"0x01\": \"0x02\", \"0x02\": \"0x03\"}, nonce=1)},\n            {ADDRESS_UNDER_TEST: Account(storage={\"0x01\": \"0x02\"})},\n            Storage.KeyValueMismatchError(address=ADDRESS_UNDER_TEST, key=2, want=0, got=3),\n        ),\n        (  # mismatch_6: 1:2 vs 1:2, 2:3\n            {ADDRESS_UNDER_TEST: Account(storage={\"0x01\": \"0x02\"}, nonce=1)},\n            {ADDRESS_UNDER_TEST: Account(storage={\"0x01\": \"0x02\", \"0x02\": \"0x03\"})},\n            Storage.KeyValueMismatchError(address=ADDRESS_UNDER_TEST, key=2, want=3, got=0),\n        ),\n    ],\n    indirect=[\"pre\", \"post\"],\n)\ndef test_post_storage_value_mismatch(\n    expected_exception: Storage.KeyValueMismatchError,\n    state_test: StateTest,\n    default_t8n: TransitionTool,\n    fork: Fork,\n) -> None:\n    \"\"\"\n    Test post state `Account.storage` exceptions during state test fixture\n    generation.\n    \"\"\"\n    with pytest.raises(Storage.KeyValueMismatchError) as e_info:\n        state_test.generate(t8n=default_t8n, fork=fork, fixture_format=StateFixture)\n    assert e_info.value == expected_exception\n\n\n# Nonce value mismatch tests\n@pytest.mark.parametrize(\n    \"pre,post\",\n    [\n        ({ADDRESS_UNDER_TEST: Account(nonce=1)}, {ADDRESS_UNDER_TEST: Account(nonce=2)}),\n        ({ADDRESS_UNDER_TEST: Account(nonce=1)}, {ADDRESS_UNDER_TEST: Account(nonce=0)}),\n        ({ADDRESS_UNDER_TEST: Account(nonce=1)}, {ADDRESS_UNDER_TEST: Account()}),\n    ],\n    indirect=[\"pre\", \"post\"],\n)\ndef test_post_nonce_value_mismatch(\n    pre: Alloc, post: Alloc, state_test: StateTest, default_t8n: TransitionTool, fork: Fork\n) -> None:\n    \"\"\"\n    Test post state `Account.nonce` verification and exceptions during state\n    test fixture generation.\n    \"\"\"\n    pre_account = pre[ADDRESS_UNDER_TEST]\n    post_account = post[ADDRESS_UNDER_TEST]\n    assert pre_account is not None\n    assert post_account is not None\n    pre_nonce = pre_account.nonce\n    post_nonce = post_account.nonce\n    if \"nonce\" not in post_account.model_fields_set:  # no exception\n        state_test.generate(t8n=default_t8n, fork=fork, fixture_format=StateFixture)\n        return\n    with pytest.raises(Account.NonceMismatchError) as e_info:\n        state_test.generate(t8n=default_t8n, fork=fork, fixture_format=StateFixture)\n    assert e_info.value == Account.NonceMismatchError(\n        address=ADDRESS_UNDER_TEST, want=post_nonce, got=pre_nonce\n    )\n\n\n# Code value mismatch tests\n@pytest.mark.parametrize(\n    \"pre,post\",\n    [\n        ({ADDRESS_UNDER_TEST: Account(code=\"0x02\")}, {ADDRESS_UNDER_TEST: Account(code=\"0x01\")}),\n        ({ADDRESS_UNDER_TEST: Account(code=\"0x02\")}, {ADDRESS_UNDER_TEST: Account(code=\"0x\")}),\n        ({ADDRESS_UNDER_TEST: Account(code=\"0x02\")}, {ADDRESS_UNDER_TEST: Account()}),\n    ],\n    indirect=[\"pre\", \"post\"],\n)\ndef test_post_code_value_mismatch(\n    pre: Alloc, post: Alloc, state_test: StateTest, default_t8n: TransitionTool, fork: Fork\n) -> None:\n    \"\"\"\n    Test post state `Account.code` verification and exceptions during state\n    test fixture generation.\n    \"\"\"\n    pre_account = pre[ADDRESS_UNDER_TEST]\n    post_account = post[ADDRESS_UNDER_TEST]\n    assert pre_account is not None\n    assert post_account is not None\n    pre_code = pre_account.code\n    post_code = post_account.code\n    if \"code\" not in post_account.model_fields_set:  # no exception\n        state_test.generate(t8n=default_t8n, fork=fork, fixture_format=StateFixture)\n        return\n    with pytest.raises(Account.CodeMismatchError) as e_info:\n        state_test.generate(t8n=default_t8n, fork=fork, fixture_format=StateFixture)\n    assert e_info.value == Account.CodeMismatchError(\n        address=ADDRESS_UNDER_TEST, want=post_code, got=pre_code\n    )\n\n\n# Balance value mismatch tests\n@pytest.mark.parametrize(\n    \"pre,post\",\n    [\n        ({ADDRESS_UNDER_TEST: Account(balance=1)}, {ADDRESS_UNDER_TEST: Account(balance=2)}),\n        ({ADDRESS_UNDER_TEST: Account(balance=1)}, {ADDRESS_UNDER_TEST: Account(balance=0)}),\n        ({ADDRESS_UNDER_TEST: Account(balance=1)}, {ADDRESS_UNDER_TEST: Account()}),\n    ],\n    indirect=[\"pre\", \"post\"],\n)\ndef test_post_balance_value_mismatch(\n    pre: Alloc, post: Alloc, state_test: StateTest, default_t8n: TransitionTool, fork: Fork\n) -> None:\n    \"\"\"\n    Test post state `Account.balance` verification and exceptions during state\n    test fixture generation.\n    \"\"\"\n    pre_account = pre[ADDRESS_UNDER_TEST]\n    post_account = post[ADDRESS_UNDER_TEST]\n    assert pre_account is not None\n    assert post_account is not None\n    pre_balance = pre_account.balance\n    post_balance = post_account.balance\n    if \"balance\" not in post_account.model_fields_set:  # no exception\n        state_test.generate(t8n=default_t8n, fork=fork, fixture_format=StateFixture)\n        return\n    with pytest.raises(Account.BalanceMismatchError) as e_info:\n        state_test.generate(t8n=default_t8n, fork=fork, fixture_format=StateFixture)\n    assert e_info.value == Account.BalanceMismatchError(\n        address=ADDRESS_UNDER_TEST, want=post_balance, got=pre_balance\n    )\n\n\n# Account mismatch tests\n@pytest.mark.parametrize(\n    \"pre,post,exception_type\",\n    [\n        (\n            {ADDRESS_UNDER_TEST: Account(balance=1)},\n            {ADDRESS_UNDER_TEST: Account()},\n            None,\n        ),\n        (\n            {ADDRESS_UNDER_TEST: Account(balance=1)},\n            {ADDRESS_UNDER_TEST: Account(balance=1), Address(0x02): Account(balance=1)},\n            Alloc.MissingAccountError,\n        ),\n        (\n            {ADDRESS_UNDER_TEST: Account(balance=1)},\n            {},\n            None,\n        ),\n        (\n            {ADDRESS_UNDER_TEST: Account(balance=1)},\n            {ADDRESS_UNDER_TEST: Account.NONEXISTENT},\n            Alloc.UnexpectedAccountError,\n        ),\n    ],\n    indirect=[\"pre\", \"post\"],\n)\ndef test_post_account_mismatch(\n    state_test: StateTest,\n    default_t8n: TransitionTool,\n    fork: Fork,\n    exception_type: Type[Exception] | None,\n) -> None:\n    \"\"\"\n    Test post state `Account` verification and exceptions during state test\n    fixture generation.\n    \"\"\"\n    if exception_type is None:\n        state_test.generate(t8n=default_t8n, fork=fork, fixture_format=StateFixture)\n        return\n    with pytest.raises(exception_type) as _:\n        state_test.generate(t8n=default_t8n, fork=fork, fixture_format=StateFixture)\n\n\n# Transaction result mismatch tests\n@pytest.mark.parametrize(\n    \"tx,exception_type\",\n    [\n        pytest.param(\n            Transaction(\n                secret_key=TestPrivateKey,\n                gas_limit=20_999,\n                error=TransactionException.SENDER_NOT_EOA,\n            ),\n            ExecutionExceptionMismatchError,\n            id=\"TransactionExecutionExceptionMismatchError\",\n        ),\n        pytest.param(\n            Transaction(\n                secret_key=TestPrivateKey,\n                error=TransactionException.INTRINSIC_GAS_TOO_LOW,\n                expected_receipt=TransactionReceipt(gas_used=21_000),\n            ),\n            UnexpectedExecutionSuccessError,\n            id=\"TransactionUnexpectedExecutionSuccessError\",\n        ),\n        pytest.param(\n            Transaction(\n                secret_key=TestPrivateKey,\n                gas_limit=20_999,\n                expected_receipt=TransactionReceipt(gas_used=21_000),\n            ),\n            UnexpectedExecutionFailError,\n            id=\"TransactionUnexpectedExecutionFailError\",\n        ),\n        pytest.param(\n            Transaction(\n                secret_key=TestPrivateKey,\n                expected_receipt=TransactionReceipt(gas_used=21_001),\n            ),\n            TransactionReceiptMismatchError,\n            id=\"TransactionReceiptMismatchError\",\n        ),\n        pytest.param(\n            Transaction(\n                secret_key=TestPrivateKey,\n                gas_limit=20_999,\n                expected_receipt=TransactionReceipt(gas_used=21_001),\n            ),\n            UnexpectedExecutionFailError,\n            id=\"TransactionUnexpectedExecutionFailError+TransactionReceiptMismatchError\",\n        ),\n        pytest.param(\n            Transaction(\n                secret_key=TestPrivateKey,\n                error=TransactionException.INTRINSIC_GAS_TOO_LOW,\n                expected_receipt=TransactionReceipt(gas_used=21_001),\n            ),\n            UnexpectedExecutionSuccessError,\n            id=\"TransactionUnexpectedExecutionSuccessError+TransactionReceiptMismatchError\",\n        ),\n    ],\n)\n@pytest.mark.parametrize(\n    \"fixture_format\",\n    [\n        StateFixture,\n        BlockchainFixture,\n    ],\n)\ndef test_transaction_expectation(\n    state_test: StateTest,\n    default_t8n: TransitionTool,\n    fork: Fork,\n    exception_type: Type[Exception] | None,\n    fixture_format: FixtureFormat,\n) -> None:\n    \"\"\"\n    Test a transaction that has an unexpected error, expected error, or\n    expected a specific value in its receipt.\n    \"\"\"\n    if (\n        exception_type == ExecutionExceptionMismatchError\n        and not default_t8n.exception_mapper.reliable\n    ):\n        pytest.xfail(\n            reason=\"Exceptions need to be better described in the t8n tool \"\n            f\"({default_t8n.__class__.__name__}).\"\n        )\n    if exception_type is None:\n        state_test.generate(t8n=default_t8n, fork=fork, fixture_format=fixture_format)\n    else:\n        with pytest.raises(exception_type) as _:\n            state_test.generate(t8n=default_t8n, fork=fork, fixture_format=fixture_format)\n\n\n@pytest.mark.parametrize(\n    \"intermediate_state,expected_exception\",\n    [\n        pytest.param(\n            {\n                TestAddress: Account(nonce=1),\n                Address(0x01): Account(balance=1),\n            },\n            None,\n            id=\"NoException\",\n        ),\n        pytest.param(\n            {\n                TestAddress: Account(nonce=2),\n                Address(0x01): Account(balance=1),\n            },\n            Account.NonceMismatchError,\n            id=\"NonceMismatchError\",\n        ),\n        pytest.param(\n            {\n                TestAddress: Account(nonce=1),\n                Address(0x01): Account(balance=2),\n            },\n            Account.BalanceMismatchError,\n            id=\"BalanceMismatchError\",\n        ),\n    ],\n)\n@pytest.mark.parametrize(\n    \"fixture_format\",\n    [\n        BlockchainFixture,\n        BlockchainEngineFixture,\n    ],\n)\ndef test_block_intermediate_state(\n    pre: Alloc,\n    default_t8n: TransitionTool,\n    fork: Fork,\n    fixture_format: FixtureFormat,\n    intermediate_state: Mapping[Any, Any],\n    expected_exception: Type[Exception] | None,\n) -> None:\n    \"\"\"Validate the state when building blockchain.\"\"\"\n    env = Environment()\n\n    to = Address(0x01)\n    tx = Transaction(gas_limit=100_000, to=to, value=1, nonce=0, secret_key=TestPrivateKey)\n    tx_2 = Transaction(gas_limit=100_000, to=to, value=1, nonce=1, secret_key=TestPrivateKey)\n\n    block_1 = Block(\n        txs=[tx],\n        expected_post_state={\n            TestAddress: Account(nonce=1),\n            to: Account(balance=1),\n        },\n    )\n\n    block_2 = Block(txs=[], expected_post_state=intermediate_state)\n\n    block_3 = Block(\n        txs=[tx_2],\n        expected_post_state={\n            TestAddress: Account(nonce=2),\n            to: Account(balance=2),\n        },\n    )\n\n    if expected_exception:\n        with pytest.raises(expected_exception) as _:\n            BlockchainTest(\n                genesis_environment=env,\n                pre=pre,\n                post=block_3.expected_post_state,\n                blocks=[block_1, block_2, block_3],\n            ).generate(t8n=default_t8n, fork=fork, fixture_format=fixture_format)\n        return\n    else:\n        BlockchainTest(\n            genesis_environment=env,\n            pre=pre,\n            post=block_3.expected_post_state,\n            blocks=[block_1, block_2, block_3],\n        ).generate(t8n=default_t8n, fork=fork, fixture_format=fixture_format)\n"
  },
  {
    "path": "src/ethereum_test_specs/tests/test_fixtures.py",
    "content": "\"\"\"Test suite for `ethereum_test_specs` fixture generation.\"\"\"\n\nimport json\nimport os\nfrom typing import Any, List, Mapping\n\nimport pytest\nfrom click.testing import CliRunner\n\nimport cli.check_fixtures\nfrom ethereum_clis import TransitionTool\nfrom ethereum_test_base_types import AccessList, Account, Address, Hash\nfrom ethereum_test_exceptions import TransactionException\nfrom ethereum_test_fixtures import (\n    BaseFixture,\n    BlockchainEngineFixture,\n    BlockchainFixture,\n    BlockchainFixtureCommon,\n    FixtureFormat,\n    StateFixture,\n)\nfrom ethereum_test_forks import Berlin, Cancun, Fork, Istanbul, London, Paris, Shanghai\nfrom ethereum_test_types import Alloc, Environment, Transaction, TransactionType\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom ..blockchain import Block, BlockchainTest, Header\nfrom ..state import StateTest\nfrom .helpers import remove_info_metadata\n\n\n@pytest.fixture()\ndef fixture_hash(fork: Fork) -> bytes:\n    \"\"\"Set the fixture hash based on the fork.\"\"\"\n    if fork == Berlin:\n        return bytes.fromhex(\"e57ad774ca\")\n    elif fork == London:\n        return bytes.fromhex(\"3714102a4c\")\n    elif fork == Cancun:\n        return bytes.fromhex(\"2885c707e3\")\n    raise ValueError(f\"Unexpected fork: {fork}\")\n\n\ndef test_check_helper_fixtures() -> None:\n    \"\"\"\n    Test that the framework's pydantic models serialization and deserialization\n    work correctly and that they are compatible with the helper fixtures\n    defined in ./fixtures/ by using the check_fixtures.py script.\n    \"\"\"\n    runner = CliRunner()\n    args = [\n        \"--input\",\n        \"src/ethereum_test_specs/tests/fixtures\",\n        \"--quiet\",\n        \"--stop-on-error\",\n    ]\n    result = runner.invoke(cli.check_fixtures.check_fixtures, args)\n    assert result.exit_code == 0, (\n        \"check_fixtures detected errors in the json fixtures:\" + f\"\\n{result}\"\n    )\n\n\n@pytest.mark.parametrize(\n    \"fork\",\n    [\n        Berlin,\n        London,\n        Cancun,\n    ],\n)\ndef test_make_genesis(fork: Fork, fixture_hash: bytes, default_t8n: TransitionTool) -> None:  # noqa: D103\n    env = Environment(gas_limit=100_000_000_000_000_000)\n\n    pre = Alloc(\n        {\n            Address(0x0BA1A9CE0BA1A9CE): Account(balance=0x0BA1A9CE0BA1A9CE),\n            Address(0xC0DE): Account(\n                code=Op.SSTORE(0, Op.ADD(1, 2)) + Op.RETURN(0, 32),\n                balance=0x0BA1A9CE0BA1A9CE,\n                nonce=1,\n            ),\n        }\n    )\n\n    fixture = BlockchainTest(\n        genesis_environment=env,\n        pre=pre,\n        post={},\n        blocks=[],\n        tag=\"some_state_test\",\n    ).generate(t8n=default_t8n, fork=fork, fixture_format=BlockchainFixture)\n    assert isinstance(fixture, BlockchainFixture)\n    assert fixture.genesis is not None\n\n    assert fixture.genesis.block_hash is not None\n    assert fixture.genesis.block_hash.startswith(fixture_hash)\n\n\n@pytest.mark.parametrize(\n    \"fork,fixture_format,tx_type\",\n    [\n        (Istanbul, BlockchainFixture, TransactionType.LEGACY),\n        (London, BlockchainFixture, TransactionType.LEGACY),\n        (Cancun, BlockchainFixture, TransactionType.LEGACY),\n        (Paris, BlockchainEngineFixture, TransactionType.LEGACY),\n        (Shanghai, BlockchainEngineFixture, TransactionType.LEGACY),\n        (Cancun, BlockchainEngineFixture, TransactionType.LEGACY),\n        (Paris, StateFixture, TransactionType.LEGACY),\n        (Shanghai, StateFixture, TransactionType.LEGACY),\n        (Cancun, StateFixture, TransactionType.LEGACY),\n        (Cancun, StateFixture, TransactionType.ACCESS_LIST),\n    ],\n)\ndef test_fill_state_test(\n    fork: Fork,\n    fixture_format: FixtureFormat,\n    tx_type: TransactionType,\n    default_t8n: TransitionTool,\n) -> None:\n    \"\"\"Test `ethereum_test.filler.fill_fixtures` with `StateTest`.\"\"\"\n    env = Environment(\n        fee_recipient=\"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n        difficulty=0x20000,\n        gas_limit=10000000000,\n        number=1,\n        timestamp=1000,\n    )\n\n    pre = {\n        0x1000000000000000000000000000000000000000: Account(code=\"0x4660015500\"),\n        \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\": Account(balance=1000000000000000000000),\n    }\n\n    if tx_type == TransactionType.LEGACY:\n        tx = Transaction(\n            chain_id=0x0,\n            nonce=0,\n            to=\"0x1000000000000000000000000000000000000000\",\n            gas_limit=100000000,\n            gas_price=10,\n            protected=False,\n        )\n    elif tx_type == TransactionType.ACCESS_LIST:\n        tx = Transaction(\n            ty=0x1,\n            chain_id=0x1,\n            nonce=0,\n            to=\"0x1000000000000000000000000000000000000000\",\n            gas_limit=100000000,\n            gas_price=10,\n            access_list=[\n                AccessList(\n                    address=0x1234,\n                    storage_keys=[0, 1],\n                )\n            ],\n        )\n\n    post = {\n        \"0x1000000000000000000000000000000000000000\": Account(\n            code=\"0x4660015500\", storage={\"0x01\": \"0x01\"}\n        ),\n    }\n\n    generated_fixture = StateTest(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n        tag=\"my_chain_id_test\",\n    ).generate(t8n=default_t8n, fork=fork, fixture_format=fixture_format)\n    assert generated_fixture.__class__ == fixture_format\n    fixture = {\n        f\"000/my_chain_id_test/{fork}/tx_type_{tx_type}\": generated_fixture.json_dict_with_info(\n            hash_only=True\n        ),\n    }\n\n    format_name = fixture_format.format_name\n    expected_json_file = f\"chainid_{fork.name().lower()}_{format_name}_tx_type_{tx_type}.json\"\n    with open(\n        os.path.join(\n            \"src\",\n            \"ethereum_test_specs\",\n            \"tests\",\n            \"fixtures\",\n            expected_json_file,\n        )\n    ) as f:\n        expected = json.load(f)\n        remove_info_metadata(expected)\n\n    remove_info_metadata(fixture)\n    assert fixture == expected\n\n\nclass TestFillBlockchainValidTxs:\n    \"\"\"Test `BlockchainTest.generate()` and blockchain fixtures.\"\"\"\n\n    @pytest.fixture\n    def fork(self, request: Any) -> Fork:  # noqa: D102\n        return request.param\n\n    @pytest.fixture\n    def check_hive(self, fork: Fork) -> bool:  # noqa: D102\n        return fork == Shanghai\n\n    @pytest.fixture\n    def expected_json_file(self, fork: Fork, check_hive: bool) -> str:  # noqa: D102\n        if fork == London and not check_hive:\n            return \"blockchain_london_valid_filled.json\"\n        elif fork == Shanghai and check_hive:\n            return \"blockchain_shanghai_valid_filled_engine.json\"\n        raise ValueError(f\"Unexpected fork/check_hive combination: {fork}/{check_hive}\")\n\n    @pytest.fixture\n    def pre(self, fork: Fork) -> Mapping[Any, Any]:  # noqa: D102\n        pre = {\n            \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\": Account(balance=0x1000000000000000000),\n            \"0xd02d72E067e77158444ef2020Ff2d325f929B363\": Account(\n                balance=0x1000000000000000000, nonce=1\n            ),\n            \"0xcccccccccccccccccccccccccccccccccccccccc\": Account(\n                balance=0x10000000000,\n                nonce=1,\n                code=(\n                    Op.SSTORE(Op.NUMBER(), Op.BASEFEE())\n                    + Op.SSTORE(Op.ADD(Op.NUMBER(), 0x1000), Op.SUB(Op.GASPRICE(), Op.BASEFEE()))\n                    + Op.SSTORE(Op.ADD(Op.NUMBER(), 0x2000), Op.SELFBALANCE())\n                    + Op.STOP()\n                ),\n            ),\n            \"0xcccccccccccccccccccccccccccccccccccccccd\": Account(\n                balance=0x20000000000,\n                nonce=1,\n                code=(\n                    (Op.PUSH1(0) if fork < Shanghai else Op.PUSH0)\n                    + Op.DUP1\n                    + (Op.PUSH1(0) if fork < Shanghai else Op.PUSH0)\n                    + Op.DUP1\n                    + Op.PUSH20(\"0xcccccccccccccccccccccccccccccccccccccccc\")\n                    + Op.GAS\n                    + Op.DELEGATECALL\n                    + Op.POP\n                ),\n            ),\n            0xC0DE: Account(\n                balance=0,\n                nonce=1,\n                code=(\n                    (Op.PUSH1(0) if fork < Shanghai else Op.PUSH0)\n                    + Op.DUP1\n                    + (Op.PUSH1(0) if fork < Shanghai else Op.PUSH0)\n                    + Op.DUP1\n                    + Op.PUSH20(\"0xcccccccccccccccccccccccccccccccccccccccc\")\n                    + Op.GAS\n                    + Op.DELEGATECALL\n                    + Op.POP\n                ),\n            ),\n            \"0xccccccccccccccccccccccccccccccccccccccce\": Account(\n                balance=0x20000000000,\n                nonce=1,\n                code=(\n                    (Op.PUSH1(0) if fork < Shanghai else Op.PUSH0)\n                    + Op.DUP1\n                    + (Op.PUSH1(0) if fork < Shanghai else Op.PUSH0)\n                    + Op.DUP1\n                    + Op.PUSH2(\"0x1000\")\n                    + Op.PUSH2(\"0xc0de\")\n                    + Op.GAS\n                    + Op.CALL\n                    + (Op.PUSH1(0) if fork < Shanghai else Op.PUSH0)\n                    + Op.DUP1\n                    + (Op.PUSH1(0) if fork < Shanghai else Op.PUSH0)\n                    + Op.DUP1\n                    + Op.PUSH20(\"0xcccccccccccccccccccccccccccccccccccccccc\")\n                    + Op.GAS\n                    + Op.DELEGATECALL\n                    + Op.SWAP1\n                    + Op.POP\n                    + Op.POP\n                ),\n            ),\n        }\n        return pre\n\n    @pytest.fixture\n    def blocks(self) -> List[Block]:  # noqa: D102\n        blocks: List[Block] = [\n            Block(\n                fee_recipient=\"0xba5e000000000000000000000000000000000000\",\n                txs=[\n                    Transaction(\n                        data=\"0x01\",\n                        nonce=0,\n                        gas_limit=1000000,\n                        max_priority_fee_per_gas=1,\n                        max_fee_per_gas=1000,\n                        to=\"0xCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC\",\n                    ),\n                ],\n            ),\n            Block(\n                fee_recipient=\"0xba5e000000000000000000000000000000000000\",\n                txs=[\n                    Transaction(\n                        data=\"0x0201\",\n                        nonce=1,\n                        gas_limit=1000000,\n                        max_priority_fee_per_gas=10,\n                        max_fee_per_gas=1000,\n                        to=\"0xCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC\",\n                    ),\n                    Transaction(\n                        data=\"0x0202\",\n                        nonce=2,\n                        gas_limit=1000000,\n                        max_priority_fee_per_gas=100,\n                        max_fee_per_gas=1000,\n                        to=\"0xCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCD\",\n                    ),\n                    Transaction(\n                        data=\"0x0203\",\n                        nonce=3,\n                        gas_limit=1000000,\n                        max_priority_fee_per_gas=100,\n                        max_fee_per_gas=1000,\n                        to=\"0xCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCE\",\n                    ),\n                ],\n            ),\n            Block(\n                fee_recipient=\"0xba5e000000000000000000000000000000000000\",\n                txs=[\n                    Transaction(\n                        data=\"0x0301\",\n                        nonce=4,\n                        gas_limit=1000000,\n                        max_priority_fee_per_gas=1000,\n                        max_fee_per_gas=1000,\n                        to=\"0xCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC\",\n                    ),\n                    Transaction(\n                        data=\"0x0303\",\n                        nonce=5,\n                        gas_limit=1000000,\n                        max_priority_fee_per_gas=100,\n                        max_fee_per_gas=1000,\n                        to=\"0xCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCE\",\n                    ),\n                    Transaction(\n                        data=\"0x0304\",\n                        nonce=6,\n                        gas_limit=1000000,\n                        max_priority_fee_per_gas=100000,\n                        max_fee_per_gas=100000,\n                        to=\"0xCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCD\",\n                    ),\n                ],\n            ),\n            Block(\n                fee_recipient=\"0xba5e000000000000000000000000000000000000\",\n                txs=[\n                    Transaction(\n                        data=\"0x0401\",\n                        nonce=7,\n                        gas_limit=1000000,\n                        max_priority_fee_per_gas=1000,\n                        max_fee_per_gas=1000,\n                        to=\"0xCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC\",\n                    ),\n                    Transaction(\n                        data=\"0x0403\",\n                        nonce=8,\n                        gas_limit=1000000,\n                        max_priority_fee_per_gas=100,\n                        max_fee_per_gas=1000,\n                        to=\"0xCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCE\",\n                    ),\n                    Transaction(\n                        data=\"0x0404\",\n                        nonce=9,\n                        gas_limit=1000000,\n                        max_priority_fee_per_gas=100000,\n                        max_fee_per_gas=100000,\n                        to=\"0xCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCD\",\n                    ),\n                ],\n            ),\n        ]\n        return blocks\n\n    @pytest.fixture\n    def post(self) -> Mapping[Any, Any]:  # noqa: D102\n        post = {\n            \"0xCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC\": Account(\n                storage={\n                    # BASEFEE and the tip in block 1\n                    0x0001: 875,  # BASEFEE\n                    0x1001: 1,  # tip\n                    # Block 2\n                    0x0002: 766,  # BASEFEE\n                    0x1002: 10,  # tip\n                    # Block 3\n                    0x0003: 671,\n                    0x1003: 329,\n                    # Block 4\n                    0x0004: 588,\n                    0x1004: 412,\n                    # SELFBALANCE, always the same\n                    0x2001: 0x010000000000,\n                    0x2002: 0x010000000000,\n                    0x2003: 0x010000000000,\n                    0x2004: 0x010000000000,\n                }\n            ),\n            \"0xCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCD\": Account(\n                storage={\n                    # Block 2\n                    0x0002: 766,  # BASEFEE\n                    0x1002: 100,  # tip\n                    # Block 3\n                    0x0003: 671,\n                    0x1003: 99329,\n                    # Block 4\n                    0x0004: 588,\n                    0x1004: 99412,\n                    # SELFBALANCE, always the same\n                    0x2002: 0x020000000000,\n                    0x2003: 0x020000000000,\n                    0x2004: 0x020000000000,\n                }\n            ),\n            \"0xCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCE\": Account(\n                storage={\n                    # Block 2\n                    0x0002: 766,  # BASEFEE\n                    0x1002: 100,  # tip\n                    0x0003: 671,\n                    0x1003: 100,\n                    0x0004: 588,\n                    0x1004: 100,\n                    # SELFBALANCE\n                    0x2002: 0x01FFFFFFF000,\n                    0x2003: 0x01FFFFFFE000,\n                    0x2004: 0x01FFFFFFD000,\n                }\n            ),\n            0xC0DE: Account(\n                storage={\n                    # Block 2\n                    0x0002: 766,\n                    0x1002: 100,\n                    # Block 3\n                    0x0003: 671,\n                    0x1003: 100,\n                    # Block 4\n                    0x0004: 588,\n                    0x1004: 100,\n                    # SELFBALANCE\n                    0x2002: 0x1000,\n                    0x2003: 0x2000,\n                    0x2004: 0x3000,\n                }\n            ),\n        }\n        return post\n\n    @pytest.fixture\n    def genesis_environment(self) -> Environment:  # noqa: D102\n        return Environment(\n            gas_limit=100_000_000_000_000_000,\n            base_fee_per_gas=1000,\n            fee_recipient=\"0x0000000000000000000000000000000000000000\",\n        )\n\n    @pytest.fixture\n    def fixture_format(self, check_hive: bool) -> FixtureFormat:  # noqa: D102\n        return BlockchainEngineFixture if check_hive else BlockchainFixture\n\n    @pytest.fixture\n    def blockchain_test_fixture(  # noqa: D102\n        self,\n        fork: Fork,\n        pre: Mapping[Any, Any],\n        post: Mapping[Any, Any],\n        blocks: List[Block],\n        genesis_environment: Environment,\n        fixture_format: FixtureFormat,\n        default_t8n: TransitionTool,\n    ) -> BaseFixture:\n        return BlockchainTest(\n            pre=pre,\n            post=post,\n            blocks=blocks,\n            genesis_environment=genesis_environment,\n            tag=\"my_blockchain_test_valid_txs\",\n        ).generate(t8n=default_t8n, fork=fork, fixture_format=fixture_format)\n\n    @pytest.mark.parametrize(\"fork\", [London, Shanghai], indirect=True)\n    def test_fill_blockchain_valid_txs(  # noqa: D102\n        self,\n        fork: Fork,\n        fixture_format: FixtureFormat,\n        expected_json_file: str,\n        blockchain_test_fixture: BlockchainFixture,\n    ) -> None:\n        assert blockchain_test_fixture.__class__ == fixture_format\n        # BlockchainEngineFixture inherits from BlockchainEngineFixtureCommon\n        # (not BlockchainFixtureCommon)\n        from ethereum_test_fixtures.blockchain import BlockchainEngineFixtureCommon\n\n        assert isinstance(\n            blockchain_test_fixture, (BlockchainFixtureCommon, BlockchainEngineFixtureCommon)\n        )\n\n        fixture_name = f\"000/my_blockchain_test/{fork.name()}\"\n\n        fixture = {\n            fixture_name: blockchain_test_fixture.json_dict_with_info(hash_only=True),\n        }\n\n        with open(\n            os.path.join(\n                \"src\",\n                \"ethereum_test_specs\",\n                \"tests\",\n                \"fixtures\",\n                expected_json_file,\n            )\n        ) as f:\n            expected = json.load(f)\n            remove_info_metadata(expected)\n\n        remove_info_metadata(fixture)\n        assert fixture_name in fixture\n        assert fixture_name in expected\n        assert fixture[fixture_name] == expected[fixture_name]\n\n    @pytest.mark.parametrize(\"fork\", [London], indirect=True)\n    def test_fixture_header_join(self, blockchain_test_fixture: BlockchainFixture) -> None:\n        \"\"\"Test `FixtureHeader.join()`.\"\"\"\n        block = blockchain_test_fixture.blocks[0]\n        new_difficulty = block.header.difficulty - 1  # type: ignore\n\n        new_state_root = Hash(12345)\n        # See description of https://github.com/ethereum/execution-spec-tests/pull/398\n        new_transactions_root = 0x100\n        header_new_fields = Header(\n            difficulty=new_difficulty,\n            state_root=new_state_root,\n            transactions_trie=new_transactions_root,\n        )\n\n        updated_block_header = header_new_fields.apply(block.header)  # type: ignore\n        assert updated_block_header.difficulty == new_difficulty\n        assert updated_block_header.state_root == new_state_root\n        assert updated_block_header.transactions_trie == Hash(new_transactions_root)\n        assert updated_block_header.block_hash != block.header.block_hash  # type: ignore\n        assert isinstance(updated_block_header.transactions_trie, Hash)\n\n\n@pytest.mark.parametrize(\n    \"fork,check_hive,expected_json_file\",\n    [\n        (London, False, \"blockchain_london_invalid_filled.json\"),\n        (Shanghai, True, \"blockchain_shanghai_invalid_filled_engine.json\"),\n    ],\n)\ndef test_fill_blockchain_invalid_txs(\n    fork: Fork, check_hive: bool, expected_json_file: str, default_t8n: TransitionTool\n) -> None:\n    \"\"\"Test `ethereum_test.filler.fill_fixtures` with `BlockchainTest`.\"\"\"\n    pre = {\n        \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\": Account(balance=0x1000000000000000000),\n        \"0xd02d72E067e77158444ef2020Ff2d325f929B363\": Account(\n            balance=0x1000000000000000000, nonce=1\n        ),\n        \"0xcccccccccccccccccccccccccccccccccccccccc\": Account(\n            balance=0x10000000000,\n            nonce=1,\n            code=(\n                Op.SSTORE(Op.NUMBER(), Op.BASEFEE())\n                + Op.SSTORE(Op.ADD(Op.NUMBER(), 0x1000), Op.SUB(Op.GASPRICE(), Op.BASEFEE()))\n                + Op.SSTORE(Op.ADD(Op.NUMBER(), 0x2000), Op.SELFBALANCE())\n                + Op.STOP()\n            ),\n        ),\n        \"0xcccccccccccccccccccccccccccccccccccccccd\": Account(\n            balance=0x20000000000,\n            nonce=1,\n            code=(\n                (Op.PUSH1(0) if fork < Shanghai else Op.PUSH0)\n                + Op.DUP1\n                + (Op.PUSH1(0) if fork < Shanghai else Op.PUSH0)\n                + Op.DUP1\n                + Op.PUSH20(\"0xcccccccccccccccccccccccccccccccccccccccc\")\n                + Op.GAS\n                + Op.DELEGATECALL\n                + Op.POP\n            ),\n        ),\n        0xC0DE: Account(\n            balance=0,\n            nonce=1,\n            code=(\n                (Op.PUSH1(0) if fork < Shanghai else Op.PUSH0)\n                + Op.DUP1\n                + (Op.PUSH1(0) if fork < Shanghai else Op.PUSH0)\n                + Op.DUP1\n                + Op.PUSH20(\"0xcccccccccccccccccccccccccccccccccccccccc\")\n                + Op.GAS\n                + Op.DELEGATECALL\n                + Op.POP\n            ),\n        ),\n        \"0xccccccccccccccccccccccccccccccccccccccce\": Account(\n            balance=0x20000000000,\n            nonce=1,\n            code=(\n                (Op.PUSH1(0) if fork < Shanghai else Op.PUSH0)\n                + Op.DUP1\n                + (Op.PUSH1(0) if fork < Shanghai else Op.PUSH0)\n                + Op.DUP1\n                + Op.PUSH2(\"0x1000\")\n                + Op.PUSH2(\"0xc0de\")\n                + Op.GAS\n                + Op.CALL\n                + (Op.PUSH1(0) if fork < Shanghai else Op.PUSH0)\n                + Op.DUP1\n                + (Op.PUSH1(0) if fork < Shanghai else Op.PUSH0)\n                + Op.DUP1\n                + Op.PUSH20(\"0xcccccccccccccccccccccccccccccccccccccccc\")\n                + Op.GAS\n                + Op.DELEGATECALL\n                + Op.SWAP1\n                + Op.POP\n                + Op.POP\n            ),\n        ),\n    }\n\n    blocks: List[Block] = [\n        Block(\n            fee_recipient=\"0xba5e000000000000000000000000000000000000\",\n            txs=[\n                Transaction(\n                    data=\"0x01\",\n                    nonce=0,\n                    gas_limit=1000000,\n                    max_priority_fee_per_gas=1,\n                    max_fee_per_gas=1000,\n                    to=\"0xCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC\",\n                ),\n            ],\n        ),\n        Block(\n            fee_recipient=\"0xba5e000000000000000000000000000000000000\",\n            txs=[\n                Transaction(\n                    data=\"0x0201\",\n                    nonce=1,\n                    gas_limit=1000000,\n                    max_priority_fee_per_gas=10,\n                    max_fee_per_gas=1000,\n                    to=\"0xCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC\",\n                ),\n                Transaction(\n                    data=\"0x0202\",\n                    nonce=2,\n                    gas_limit=1000000,\n                    max_priority_fee_per_gas=100,\n                    max_fee_per_gas=1000,\n                    to=\"0xCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCD\",\n                ),\n                Transaction(\n                    data=\"0x0203\",\n                    nonce=3,\n                    gas_limit=1000000,\n                    max_priority_fee_per_gas=100,\n                    max_fee_per_gas=1000,\n                    to=\"0xCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCE\",\n                ),\n            ],\n        ),\n        Block(\n            fee_recipient=\"0xba5e000000000000000000000000000000000000\",\n            txs=[\n                Transaction(\n                    data=\"0x0301\",\n                    nonce=4,\n                    gas_limit=1000000,\n                    max_priority_fee_per_gas=1000,\n                    max_fee_per_gas=1000,\n                    to=\"0xCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC\",\n                ),\n                Transaction(\n                    data=\"0x0302\",\n                    nonce=5,\n                    gas_limit=1000000,\n                    max_priority_fee_per_gas=100000,\n                    max_fee_per_gas=1000,\n                    to=\"0xCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCD\",\n                    error=TransactionException.PRIORITY_GREATER_THAN_MAX_FEE_PER_GAS,\n                ),\n            ],\n            exception=TransactionException.PRIORITY_GREATER_THAN_MAX_FEE_PER_GAS,\n        ),\n        Block(\n            fee_recipient=\"0xba5e000000000000000000000000000000000000\",\n            txs=[\n                Transaction(\n                    data=\"0x0301\",\n                    nonce=4,\n                    gas_limit=1000000,\n                    max_priority_fee_per_gas=1000,\n                    max_fee_per_gas=1000,\n                    to=\"0xCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC\",\n                ),\n                Transaction(\n                    data=\"0x0303\",\n                    nonce=5,\n                    gas_limit=1000000,\n                    max_priority_fee_per_gas=100,\n                    max_fee_per_gas=1000,\n                    to=\"0xCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCE\",\n                ),\n                Transaction(\n                    data=\"0x0304\",\n                    nonce=6,\n                    gas_limit=1000000,\n                    max_priority_fee_per_gas=100000,\n                    max_fee_per_gas=100000,\n                    to=\"0xCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCD\",\n                ),\n            ],\n        ),\n        Block(\n            fee_recipient=\"0xba5e000000000000000000000000000000000000\",\n            txs=[\n                Transaction(\n                    data=\"0x0401\",\n                    nonce=7,\n                    gas_limit=1000000,\n                    max_priority_fee_per_gas=1000,\n                    max_fee_per_gas=1000,\n                    to=\"0xCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC\",\n                ),\n                Transaction(\n                    data=\"0x0402\",\n                    nonce=8,\n                    gas_limit=1000000,\n                    max_priority_fee_per_gas=100000,\n                    max_fee_per_gas=1000,\n                    to=\"0xCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCD\",\n                    error=TransactionException.PRIORITY_GREATER_THAN_MAX_FEE_PER_GAS,\n                ),\n            ],\n            exception=TransactionException.PRIORITY_GREATER_THAN_MAX_FEE_PER_GAS,\n        ),\n        Block(\n            fee_recipient=\"0xba5e000000000000000000000000000000000000\",\n            txs=[\n                Transaction(\n                    data=\"0x0401\",\n                    nonce=7,\n                    gas_limit=1000000,\n                    max_priority_fee_per_gas=1000,\n                    max_fee_per_gas=1000,\n                    to=\"0xCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC\",\n                ),\n                Transaction(\n                    data=\"0x0403\",\n                    nonce=8,\n                    gas_limit=1000000,\n                    max_priority_fee_per_gas=100,\n                    max_fee_per_gas=1000,\n                    to=\"0xCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCE\",\n                ),\n                Transaction(\n                    data=\"0x0404\",\n                    nonce=9,\n                    gas_limit=1000000,\n                    max_priority_fee_per_gas=100000,\n                    max_fee_per_gas=100000,\n                    to=\"0xCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCD\",\n                ),\n            ],\n        ),\n    ]\n\n    post = {\n        \"0xCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC\": Account(\n            storage={\n                # BASEFEE and the tip in block 1\n                0x0001: 875,  # BASEFEE\n                0x1001: 1,  # tip\n                # Block 2\n                0x0002: 766,  # BASEFEE\n                0x1002: 10,  # tip\n                # Block 3\n                0x0003: 671,\n                0x1003: 329,\n                # Block 4\n                0x0004: 588,\n                0x1004: 412,\n                # SELFBALANCE, always the same\n                0x2001: 0x010000000000,\n                0x2002: 0x010000000000,\n                0x2003: 0x010000000000,\n                0x2004: 0x010000000000,\n            }\n        ),\n        \"0xCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCD\": Account(\n            storage={\n                # Block 2\n                0x0002: 766,  # BASEFEE\n                0x1002: 100,  # tip\n                # Block 3\n                0x0003: 671,\n                0x1003: 99329,\n                # Block 4\n                0x0004: 588,\n                0x1004: 99412,\n                # SELFBALANCE, always the same\n                0x2002: 0x020000000000,\n                0x2003: 0x020000000000,\n                0x2004: 0x020000000000,\n            }\n        ),\n        \"0xCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCE\": Account(\n            storage={\n                # Block 2\n                0x0002: 766,  # BASEFEE\n                0x1002: 100,  # tip\n                0x0003: 671,\n                0x1003: 100,\n                0x0004: 588,\n                0x1004: 100,\n                # SELFBALANCE\n                0x2002: 0x01FFFFFFF000,\n                0x2003: 0x01FFFFFFE000,\n                0x2004: 0x01FFFFFFD000,\n            }\n        ),\n        0xC0DE: Account(\n            storage={\n                # Block 2\n                0x0002: 766,\n                0x1002: 100,\n                # Block 3\n                0x0003: 671,\n                0x1003: 100,\n                # Block 4\n                0x0004: 588,\n                0x1004: 100,\n                # SELFBALANCE\n                0x2002: 0x1000,\n                0x2003: 0x2000,\n                0x2004: 0x3000,\n            }\n        ),\n    }\n\n    # We start genesis with a baseFee of 1000\n    genesis_environment = Environment(\n        gas_limit=100_000_000_000_000_000,\n        base_fee_per_gas=1000,\n        fee_recipient=\"0x0000000000000000000000000000000000000000\",\n    )\n\n    fixture_format: FixtureFormat = BlockchainEngineFixture if check_hive else BlockchainFixture\n    generated_fixture = BlockchainTest(\n        pre=pre,\n        post=post,\n        blocks=blocks,\n        genesis_environment=genesis_environment,\n    ).generate(t8n=default_t8n, fork=fork, fixture_format=fixture_format)\n    assert generated_fixture.__class__ == fixture_format\n    # BlockchainEngineFixture inherits from BlockchainEngineFixtureCommon\n    # (not BlockchainFixtureCommon)\n    from ethereum_test_fixtures.blockchain import BlockchainEngineFixtureCommon\n\n    assert isinstance(generated_fixture, (BlockchainFixtureCommon, BlockchainEngineFixtureCommon))\n\n    fixture_name = f\"000/my_blockchain_test/{fork.name()}\"\n\n    fixture = {\n        fixture_name: generated_fixture.json_dict_with_info(hash_only=True),\n    }\n\n    with open(\n        os.path.join(\n            \"src\",\n            \"ethereum_test_specs\",\n            \"tests\",\n            \"fixtures\",\n            expected_json_file,\n        )\n    ) as f:\n        expected = json.load(f)\n        remove_info_metadata(expected)\n\n    remove_info_metadata(fixture)\n    assert fixture_name in fixture\n    assert fixture_name in expected\n    assert fixture[fixture_name] == expected[fixture_name]\n"
  },
  {
    "path": "src/ethereum_test_specs/tests/test_transaction.py",
    "content": "\"\"\"Test suite for the transaction spec test generation.\"\"\"\n\nimport json\nimport os\n\nimport pytest\n\nfrom ethereum_test_fixtures import TransactionFixture\nfrom ethereum_test_forks import Fork, Shanghai\nfrom ethereum_test_types import Transaction\n\nfrom ..transaction import TransactionTest\nfrom .helpers import remove_info_metadata\n\n\n@pytest.mark.parametrize(\n    \"name, tx, fork\",\n    [\n        pytest.param(\"simple_type_0\", Transaction(), Shanghai),\n    ],\n)\ndef test_transaction_test_filling(name: str, tx: Transaction, fork: Fork) -> None:\n    \"\"\"Test the transaction test filling.\"\"\"\n    generated_fixture = TransactionTest(tx=tx.with_signature_and_sender()).generate(\n        t8n=None,  # type: ignore\n        fork=fork,\n        fixture_format=TransactionFixture,\n    )\n    assert generated_fixture.__class__ == TransactionFixture\n    fixture_json_dict = generated_fixture.json_dict_with_info()\n    fixture = {\n        \"fixture\": fixture_json_dict,\n    }\n\n    expected_json_file = f\"tx_{name}_{fork.name().lower()}.json\"\n    with open(\n        os.path.join(\n            \"src\",\n            \"ethereum_test_specs\",\n            \"tests\",\n            \"fixtures\",\n            expected_json_file,\n        )\n    ) as f:\n        expected = json.load(f)\n        remove_info_metadata(expected)\n\n    remove_info_metadata(fixture)\n    assert fixture == expected\n"
  },
  {
    "path": "src/ethereum_test_specs/tests/test_types.py",
    "content": "\"\"\"Test types from ethereum_test_specs.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_base_types import Address, Bloom, Bytes, Hash, HeaderNonce\nfrom ethereum_test_fixtures.blockchain import FixtureHeader\n\nfrom ..blockchain import Header\n\nfixture_header_ones = FixtureHeader(\n    parent_hash=Hash(1),\n    ommers_hash=Hash(1),\n    fee_recipient=Address(1),\n    state_root=Hash(1),\n    transactions_trie=Hash(1),\n    receipts_root=Hash(1),\n    logs_bloom=Bloom(1),\n    difficulty=1,\n    number=1,\n    gas_limit=1,\n    gas_used=1,\n    timestamp=1,\n    extra_data=Bytes([1]),\n    prev_randao=Hash(1),\n    nonce=HeaderNonce(1),\n    base_fee_per_gas=1,\n    withdrawals_root=Hash(1),\n    blob_gas_used=1,\n    excess_blob_gas=1,\n    # hash=Hash(1),\n)\n\n\n@pytest.mark.parametrize(\n    \"fixture_header,modifier,fixture_header_expected\",\n    [\n        pytest.param(\n            fixture_header_ones,\n            Header(),\n            fixture_header_ones,\n            id=\"default_header\",\n        ),\n        pytest.param(\n            fixture_header_ones,\n            Header(\n                state_root=\"0x0000000000000000000000000000000000000000000000000000000000000100\"\n            ),\n            fixture_header_ones.copy(\n                state_root=\"0x0000000000000000000000000000000000000000000000000000000000000100\"\n            ),\n            id=\"state_root_as_str\",\n        ),\n        pytest.param(\n            fixture_header_ones,\n            Header(state_root=100),\n            fixture_header_ones.copy(state_root=100),\n            id=\"state_root_as_int\",\n        ),\n        pytest.param(\n            fixture_header_ones,\n            Header(state_root=Hash(100)),\n            fixture_header_ones.copy(state_root=100),\n            id=\"state_root_as_hash\",\n        ),\n        pytest.param(\n            fixture_header_ones,\n            Header(withdrawals_root=Header.REMOVE_FIELD),  # state_root is not removable\n            fixture_header_ones.copy(withdrawals_root=None),\n            id=\"state_root_as_header_remove_field\",\n        ),\n        pytest.param(\n            fixture_header_ones,\n            Header(state_root=None),\n            fixture_header_ones,\n            id=\"state_root_as_none\",\n        ),\n        pytest.param(\n            fixture_header_ones,\n            Header(\n                logs_bloom=\"0x00000000000000000000000000000000000000000000000000000000000000000000\"\n                \"000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n                \"000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n                \"000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n                \"000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n                \"000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n                \"000000000000000000000000000000000000100\"\n            ),\n            fixture_header_ones.copy(\n                logs_bloom=\"0x00000000000000000000000000000000000000000000000000000000000000000000\"\n                \"000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n                \"000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n                \"000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n                \"000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n                \"000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n                \"000000000000000000000000000000000000100\"\n            ),\n            id=\"bloom_as_str\",\n        ),\n        pytest.param(\n            fixture_header_ones,\n            Header(logs_bloom=100),\n            fixture_header_ones.copy(logs_bloom=100),\n            id=\"bloom_as_int\",\n        ),\n        pytest.param(\n            fixture_header_ones,\n            Header(logs_bloom=Bloom(100)),\n            fixture_header_ones.copy(logs_bloom=100),\n            id=\"bloom_as_hash\",\n        ),\n        pytest.param(\n            fixture_header_ones,\n            Header(\n                state_root=\"0x0000000000000000000000000000000000000000000000000000000000000100\",\n                logs_bloom=Bloom(200),\n                difficulty=300,\n            ),\n            fixture_header_ones.copy(\n                state_root=0x100,\n                logs_bloom=200,\n                difficulty=300,\n            ),\n            id=\"multiple_fields\",\n        ),\n    ],\n)\ndef test_fixture_header_join(\n    fixture_header: FixtureHeader, modifier: Header, fixture_header_expected: FixtureHeader\n) -> None:\n    \"\"\"Test that the join method works as expected.\"\"\"\n    assert modifier.apply(fixture_header) == fixture_header_expected\n"
  },
  {
    "path": "src/ethereum_test_specs/transaction.py",
    "content": "\"\"\"Ethereum transaction test spec definition and filler.\"\"\"\n\nfrom typing import Callable, ClassVar, Generator, Sequence, Type\n\nfrom ethereum_clis import TransitionTool\nfrom ethereum_test_execution import (\n    BaseExecute,\n    ExecuteFormat,\n    LabeledExecuteFormat,\n    TransactionPost,\n)\nfrom ethereum_test_fixtures import (\n    BaseFixture,\n    FixtureFormat,\n    LabeledFixtureFormat,\n    TransactionFixture,\n)\nfrom ethereum_test_fixtures.transaction import FixtureResult\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_types import Alloc, Transaction\n\nfrom .base import BaseTest\n\n\nclass TransactionTest(BaseTest):\n    \"\"\"\n    Filler type that tests the transaction over the period of a single block.\n    \"\"\"\n\n    tx: Transaction\n    pre: Alloc | None = None\n\n    supported_fixture_formats: ClassVar[Sequence[FixtureFormat | LabeledFixtureFormat]] = [\n        TransactionFixture,\n    ]\n    supported_execute_formats: ClassVar[Sequence[LabeledExecuteFormat]] = [\n        LabeledExecuteFormat(\n            TransactionPost,\n            \"transaction_test\",\n            \"An execute test derived from a transaction test\",\n        ),\n    ]\n\n    def make_transaction_test_fixture(\n        self,\n        fork: Fork,\n    ) -> TransactionFixture:\n        \"\"\"Create a fixture from the transaction test definition.\"\"\"\n        if self.tx.error is not None:\n            result = FixtureResult(\n                exception=self.tx.error,\n                hash=None,\n                intrinsic_gas=0,\n                sender=None,\n            )\n        else:\n            intrinsic_gas_cost_calculator = fork.transaction_intrinsic_cost_calculator()\n            intrinsic_gas = intrinsic_gas_cost_calculator(\n                calldata=self.tx.data,\n                contract_creation=self.tx.to is None,\n                access_list=self.tx.access_list,\n                authorization_list_or_count=self.tx.authorization_list,\n            )\n            result = FixtureResult(\n                exception=None,\n                hash=self.tx.hash,\n                intrinsic_gas=intrinsic_gas,\n                sender=self.tx.sender,\n            )\n\n        return TransactionFixture(\n            result={\n                fork: result,\n            },\n            transaction=self.tx.with_signature_and_sender().rlp(),\n        )\n\n    def generate(\n        self,\n        t8n: TransitionTool,\n        fork: Fork,\n        fixture_format: FixtureFormat,\n    ) -> BaseFixture:\n        \"\"\"Generate the TransactionTest fixture.\"\"\"\n        del t8n\n\n        self.check_exception_test(exception=self.tx.error is not None)\n        if fixture_format == TransactionFixture:\n            return self.make_transaction_test_fixture(fork)\n\n        raise Exception(f\"Unknown fixture format: {fixture_format}\")\n\n    def execute(\n        self,\n        *,\n        fork: Fork,\n        execute_format: ExecuteFormat,\n    ) -> BaseExecute:\n        \"\"\"Execute the transaction test by sending it to the live network.\"\"\"\n        del fork\n\n        if execute_format == TransactionPost:\n            return TransactionPost(\n                blocks=[[self.tx]],\n                post={},\n            )\n        raise Exception(f\"Unsupported execute format: {execute_format}\")\n\n\nTransactionTestSpec = Callable[[str], Generator[TransactionTest, None, None]]\nTransactionTestFiller = Type[TransactionTest]\n"
  },
  {
    "path": "src/ethereum_test_tools/__init__.py",
    "content": "\"\"\"\nModule containing tools for generating cross-client Ethereum execution layer\ntests.\n\"\"\"\n\nfrom ethereum_test_base_types import (\n    AccessList,\n    Account,\n    Address,\n    Bytes,\n    Hash,\n    Storage,\n    TestAddress,\n    TestAddress2,\n    TestPrivateKey,\n    TestPrivateKey2,\n)\nfrom ethereum_test_base_types.reference_spec import ReferenceSpec, ReferenceSpecTypes\nfrom ethereum_test_benchmark import (\n    BenchmarkCodeGenerator,\n    ExtCallGenerator,\n    JumpLoopGenerator,\n)\nfrom ethereum_test_exceptions import (\n    BlockException,\n    EngineAPIError,\n    EOFException,\n    TransactionException,\n)\nfrom ethereum_test_fixtures import BaseFixture, FixtureCollector\nfrom ethereum_test_specs import (\n    BaseTest,\n    BenchmarkTest,\n    BenchmarkTestFiller,\n    BlobsTest,\n    BlobsTestFiller,\n    BlockchainTest,\n    BlockchainTestFiller,\n    EOFStateTest,\n    EOFStateTestFiller,\n    EOFTest,\n    EOFTestFiller,\n    StateTest,\n    StateTestFiller,\n    TransactionTest,\n    TransactionTestFiller,\n)\nfrom ethereum_test_specs.blockchain import Block, Header\nfrom ethereum_test_types import (\n    EOA,\n    Alloc,\n    AuthorizationTuple,\n    BalAccountChange,\n    BalBalanceChange,\n    BalCodeChange,\n    BalNonceChange,\n    BalStorageChange,\n    BalStorageSlot,\n    Blob,\n    BlockAccessList,\n    ChainConfig,\n    ConsolidationRequest,\n    DepositRequest,\n    Environment,\n    NetworkWrappedTransaction,\n    Removable,\n    Requests,\n    TestParameterGroup,\n    Transaction,\n    TransactionReceipt,\n    Withdrawal,\n    WithdrawalRequest,\n    add_kzg_version,\n    ceiling_division,\n    compute_create2_address,\n    compute_create_address,\n    compute_eofcreate_address,\n    keccak256,\n)\nfrom ethereum_test_vm import (\n    Bytecode,\n    EVMCodeType,\n    Macro,\n    Macros,\n    MemoryVariable,\n    Opcode,\n    OpcodeCallArg,\n    Opcodes,\n    UndefinedOpcodes,\n    call_return_code,\n)\n\nfrom .tools_code import (\n    CalldataCase,\n    Case,\n    CodeGasMeasure,\n    Conditional,\n    Initcode,\n    Switch,\n    While,\n)\nfrom .utility.generators import (\n    DeploymentTestType,\n    generate_system_contract_deploy_test,\n    generate_system_contract_error_test,\n)\nfrom .utility.pytest import extend_with_defaults\n\n__all__ = (\n    \"AccessList\",\n    \"Account\",\n    \"Address\",\n    \"Alloc\",\n    \"AuthorizationTuple\",\n    \"BalAccountChange\",\n    \"BalBalanceChange\",\n    \"BalCodeChange\",\n    \"BalNonceChange\",\n    \"BalStorageChange\",\n    \"BalStorageSlot\",\n    \"BaseFixture\",\n    \"BaseTest\",\n    \"BenchmarkCodeGenerator\",\n    \"BenchmarkTest\",\n    \"BenchmarkTestFiller\",\n    \"Blob\",\n    \"BlockAccessList\",\n    \"BlobsTest\",\n    \"BlobsTestFiller\",\n    \"Block\",\n    \"BlockchainTest\",\n    \"BlockchainTestFiller\",\n    \"BlockException\",\n    \"Bytecode\",\n    \"Bytes\",\n    \"CalldataCase\",\n    \"Case\",\n    \"ChainConfig\",\n    \"CodeGasMeasure\",\n    \"Conditional\",\n    \"ConsolidationRequest\",\n    \"ExtCallGenerator\",\n    \"DeploymentTestType\",\n    \"DepositRequest\",\n    \"EngineAPIError\",\n    \"Environment\",\n    \"EOA\",\n    \"EOFException\",\n    \"EOFStateTest\",\n    \"EOFStateTestFiller\",\n    \"EOFTest\",\n    \"EOFTestFiller\",\n    \"EVMCodeType\",\n    \"FixtureCollector\",\n    \"Hash\",\n    \"Header\",\n    \"Initcode\",\n    \"JumpLoopGenerator\",\n    \"Macro\",\n    \"Macros\",\n    \"MemoryVariable\",\n    \"NetworkWrappedTransaction\",\n    \"Opcode\",\n    \"OpcodeCallArg\",\n    \"Opcodes\",\n    \"ReferenceSpec\",\n    \"ReferenceSpecTypes\",\n    \"Removable\",\n    \"Requests\",\n    \"StateTest\",\n    \"StateTestFiller\",\n    \"Storage\",\n    \"Switch\",\n    \"TestAddress\",\n    \"TestAddress2\",\n    \"TestParameterGroup\",\n    \"TestPrivateKey\",\n    \"TestPrivateKey2\",\n    \"Transaction\",\n    \"TransactionException\",\n    \"TransactionReceipt\",\n    \"TransactionTest\",\n    \"TransactionTestFiller\",\n    \"UndefinedOpcodes\",\n    \"While\",\n    \"Withdrawal\",\n    \"WithdrawalRequest\",\n    \"add_kzg_version\",\n    \"call_return_code\",\n    \"ceiling_division\",\n    \"compute_create_address\",\n    \"compute_create2_address\",\n    \"compute_eofcreate_address\",\n    \"extend_with_defaults\",\n    \"generate_system_contract_deploy_test\",\n    \"generate_system_contract_error_test\",\n    \"keccak256\",\n    \"vm\",\n)\n"
  },
  {
    "path": "src/ethereum_test_tools/py.typed",
    "content": ""
  },
  {
    "path": "src/ethereum_test_tools/tests/__init__.py",
    "content": "\"\"\"`ethereum_test_tools` verification tests.\"\"\"\n"
  },
  {
    "path": "src/ethereum_test_tools/tests/test_code.py",
    "content": "\"\"\"Test suite for `ethereum_test.code` module.\"\"\"\n\nfrom string import Template\nfrom typing import Mapping\n\nimport pytest\nfrom semver import Version\n\nfrom ethereum_clis import TransitionTool\nfrom ethereum_test_base_types import Account, Address, Hash, TestAddress, TestPrivateKey\nfrom ethereum_test_fixtures import BlockchainFixture\nfrom ethereum_test_forks import (\n    Cancun,\n    Fork,\n    Homestead,\n    Shanghai,\n    get_deployed_forks,\n)\nfrom ethereum_test_specs import StateTest\nfrom ethereum_test_types import Alloc, Environment, Transaction\nfrom ethereum_test_vm import Opcodes as Op\nfrom ethereum_test_vm import UndefinedOpcodes\nfrom pytest_plugins.solc.solc import SOLC_EXPECTED_MIN_VERSION\n\nfrom ..tools_code import CalldataCase, Case, Conditional, Initcode, Switch\n\n\n@pytest.fixture(params=get_deployed_forks())\ndef fork(request: pytest.FixtureRequest) -> Fork:\n    \"\"\"Return the target evm-version (fork) for solc compilation.\"\"\"\n    return request.param\n\n\n@pytest.fixture()\ndef expected_bytes(request: pytest.FixtureRequest, solc_version: Version, fork: Fork) -> bytes:\n    \"\"\"Return the expected bytes for the test.\"\"\"\n    expected_bytes = request.param\n    if isinstance(expected_bytes, Template):\n        if solc_version < SOLC_EXPECTED_MIN_VERSION or fork <= Homestead:\n            solc_padding = \"\"\n        else:\n            solc_padding = \"00\"\n        return bytes.fromhex(expected_bytes.substitute(solc_padding=solc_padding))\n    if isinstance(expected_bytes, bytes):\n        if fork >= Shanghai:\n            expected_bytes = b\"\\x5f\" + expected_bytes[2:]\n        if solc_version < SOLC_EXPECTED_MIN_VERSION or fork <= Homestead:\n            return expected_bytes\n        else:\n            return expected_bytes + b\"\\x00\"\n\n    raise Exception(\"Unsupported expected_bytes type: {}\".format(type(expected_bytes)))\n\n\n@pytest.mark.parametrize(\n    \"initcode,bytecode\",\n    [\n        pytest.param(\n            Initcode(),\n            bytes(\n                [\n                    0x61,\n                    0x00,\n                    0x00,\n                    0x60,\n                    0x00,\n                    0x81,\n                    0x60,\n                    0x0B,\n                    0x82,\n                    0x39,\n                    0xF3,\n                ]\n            ),\n            id=\"empty-deployed-code\",\n        ),\n        pytest.param(\n            Initcode(initcode_prefix=Op.STOP),\n            bytes(\n                [\n                    0x00,\n                    0x61,\n                    0x00,\n                    0x00,\n                    0x60,\n                    0x00,\n                    0x81,\n                    0x60,\n                    0x0C,\n                    0x82,\n                    0x39,\n                    0xF3,\n                ]\n            ),\n            id=\"empty-deployed-code-with-prefix\",\n        ),\n        pytest.param(\n            Initcode(initcode_length=20),\n            bytes(\n                [\n                    0x61,\n                    0x00,\n                    0x00,\n                    0x60,\n                    0x00,\n                    0x81,\n                    0x60,\n                    0x0B,\n                    0x82,\n                    0x39,\n                    0xF3,\n                ]\n                + [0x00] * 9  # padding\n            ),\n            id=\"empty-deployed-code-with-padding\",\n        ),\n        pytest.param(\n            Initcode(deploy_code=Op.STOP, initcode_length=20),\n            bytes(\n                [\n                    0x61,\n                    0x00,\n                    0x01,\n                    0x60,\n                    0x00,\n                    0x81,\n                    0x60,\n                    0x0B,\n                    0x82,\n                    0x39,\n                    0xF3,\n                ]\n                + [0x00]  # deployed code\n                + [0x00] * 8  # padding\n            ),\n            id=\"single-byte-deployed-code-with-padding\",\n        ),\n        pytest.param(\n            Initcode(\n                deploy_code=Op.STOP,\n                initcode_prefix=Op.SSTORE(0, 1),\n                initcode_length=20,\n            ),\n            bytes(\n                [\n                    0x60,\n                    0x01,\n                    0x60,\n                    0x00,\n                    0x55,\n                    0x61,\n                    0x00,\n                    0x01,\n                    0x60,\n                    0x00,\n                    0x81,\n                    0x60,\n                    0x10,\n                    0x82,\n                    0x39,\n                    0xF3,\n                ]\n                + [0x00]  # deployed code\n                + [0x00] * 3  # padding\n            ),\n            id=\"single-byte-deployed-code-with-padding-and-prefix\",\n        ),\n    ],\n)\ndef test_initcode(initcode: Initcode, bytecode: bytes) -> None:  # noqa: D103\n    assert bytes(initcode) == bytecode\n\n\n@pytest.mark.parametrize(\n    \"conditional_bytecode,expected\",\n    [\n        (\n            Conditional(\n                condition=Op.CALLDATALOAD(0),\n                if_true=Op.MSTORE(0, Op.SLOAD(0)) + Op.RETURN(0, 32),\n                if_false=Op.SSTORE(0, 69),\n            ),\n            bytes.fromhex(\"600035600d5801576045600055600f5801565b60005460005260206000f35b\"),\n        ),\n    ],\n)\ndef test_opcodes_if(conditional_bytecode: bytes, expected: bytes) -> None:\n    \"\"\"\n    Test that the if opcode macro is transformed into bytecode as expected.\n    \"\"\"\n    assert bytes(conditional_bytecode) == expected\n\n\n@pytest.mark.parametrize(\n    \"tx_data,switch_bytecode,expected_storage\",\n    [\n        pytest.param(\n            Hash(1),\n            Switch(\n                cases=[\n                    Case(condition=Op.EQ(Op.CALLDATALOAD(0), 1), action=Op.SSTORE(0, 1)),\n                    Case(condition=Op.EQ(Op.CALLDATALOAD(0), 2), action=Op.SSTORE(0, 2)),\n                ],\n                default_action=None,\n            ),\n            {0: 1},\n            id=\"no-default-action-condition-met\",\n        ),\n        pytest.param(\n            Hash(1),\n            Switch(\n                cases=[\n                    CalldataCase(value=1, action=Op.SSTORE(0, 1)),\n                    CalldataCase(value=2, action=Op.SSTORE(0, 2)),\n                ],\n                default_action=None,\n            ),\n            {0: 1},\n            id=\"no-default-action-condition-met-calldata\",\n        ),\n        pytest.param(\n            Hash(0),\n            Switch(\n                cases=[\n                    Case(condition=Op.EQ(Op.CALLDATALOAD(0), 1), action=Op.SSTORE(0, 1)),\n                    Case(condition=Op.EQ(Op.CALLDATALOAD(0), 2), action=Op.SSTORE(0, 2)),\n                ],\n                default_action=None,\n            ),\n            {0: 0},\n            id=\"no-default-action-no-condition-met\",\n        ),\n        pytest.param(\n            Hash(1),\n            Switch(\n                cases=[],\n                default_action=Op.SSTORE(0, 3),\n            ),\n            {0: 3},\n            id=\"no-cases\",\n        ),\n        pytest.param(\n            Hash(1),\n            Switch(\n                cases=[Case(condition=Op.EQ(Op.CALLDATALOAD(0), 1), action=Op.SSTORE(0, 1))],\n                default_action=Op.SSTORE(0, 3),\n            ),\n            {0: 1},\n            id=\"one-case-condition-met\",\n        ),\n        pytest.param(\n            Hash(0),\n            Switch(\n                cases=[Case(condition=Op.EQ(Op.CALLDATALOAD(0), 1), action=Op.SSTORE(0, 1))],\n                default_action=Op.SSTORE(0, 3),\n            ),\n            {0: 3},\n            id=\"one-case-condition-not-met\",\n        ),\n        pytest.param(\n            Hash(0),\n            Switch(\n                cases=[\n                    Case(condition=Op.EQ(Op.CALLDATALOAD(0), 1), action=Op.SSTORE(0, 1)),\n                    Case(condition=Op.EQ(Op.CALLDATALOAD(0), 2), action=Op.SSTORE(0, 2)),\n                ],\n                default_action=Op.SSTORE(0, 3),\n            ),\n            {0: 3},\n            id=\"two-cases-no-condition-met\",\n        ),\n        pytest.param(\n            Hash(1),\n            Switch(\n                cases=[\n                    Case(condition=Op.EQ(Op.CALLDATALOAD(0), 1), action=Op.SSTORE(0, 1)),\n                    Case(condition=Op.EQ(Op.CALLDATALOAD(0), 2), action=Op.SSTORE(0, 2)),\n                ],\n                default_action=Op.SSTORE(0, 3),\n            ),\n            {0: 1},\n            id=\"two-cases-first-condition-met\",\n        ),\n        pytest.param(\n            Hash(2),\n            Switch(\n                cases=[\n                    Case(condition=Op.EQ(Op.CALLDATALOAD(0), 1), action=Op.SSTORE(0, 1)),\n                    Case(condition=Op.EQ(Op.CALLDATALOAD(0), 2), action=Op.SSTORE(0, 2)),\n                ],\n                default_action=Op.SSTORE(0, 3),\n            ),\n            {0: 2},\n            id=\"two-cases-second-condition-met\",\n        ),\n        pytest.param(\n            Hash(1),\n            Switch(\n                cases=[\n                    Case(condition=Op.EQ(Op.CALLDATALOAD(0), 1), action=Op.SSTORE(0, 1)),\n                    Case(condition=Op.EQ(Op.CALLDATALOAD(0), 2), action=Op.SSTORE(0, 2)),\n                    Case(condition=Op.EQ(Op.CALLDATALOAD(0), 3), action=Op.SSTORE(0, 3)),\n                    Case(condition=Op.EQ(Op.CALLDATALOAD(0), 4), action=Op.SSTORE(0, 4)),\n                    Case(condition=Op.EQ(Op.CALLDATALOAD(0), 5), action=Op.SSTORE(0, 5)),\n                ],\n                default_action=Op.SSTORE(0, 6),\n            ),\n            {0: 1},\n            id=\"five-cases-first-condition-met\",\n        ),\n        pytest.param(\n            Hash(1),\n            Switch(\n                cases=[\n                    CalldataCase(value=1, action=Op.SSTORE(0, 1)),\n                    CalldataCase(value=2, action=Op.SSTORE(0, 2)),\n                    CalldataCase(value=3, action=Op.SSTORE(0, 3)),\n                    CalldataCase(value=4, action=Op.SSTORE(0, 4)),\n                    CalldataCase(value=5, action=Op.SSTORE(0, 5)),\n                ],\n                default_action=Op.SSTORE(0, 6),\n            ),\n            {0: 1},\n            id=\"five-cases-first-condition-met-calldata\",\n        ),\n        pytest.param(\n            Hash(3),\n            Switch(\n                cases=[\n                    Case(condition=Op.EQ(Op.CALLDATALOAD(0), 1), action=Op.SSTORE(0, 1)),\n                    Case(condition=Op.EQ(Op.CALLDATALOAD(0), 2), action=Op.SSTORE(0, 2)),\n                    Case(condition=Op.EQ(Op.CALLDATALOAD(0), 3), action=Op.SSTORE(0, 3)),\n                    Case(condition=Op.EQ(Op.CALLDATALOAD(0), 4), action=Op.SSTORE(0, 4)),\n                    Case(condition=Op.EQ(Op.CALLDATALOAD(0), 5), action=Op.SSTORE(0, 5)),\n                ],\n                default_action=Op.SSTORE(0, 6),\n            ),\n            {0: 3},\n            id=\"five-cases-third-condition-met\",\n        ),\n        pytest.param(\n            Hash(3),\n            Switch(\n                cases=[\n                    CalldataCase(value=1, action=Op.SSTORE(0, 1)),\n                    CalldataCase(value=2, action=Op.SSTORE(0, 2)),\n                    CalldataCase(value=3, action=Op.SSTORE(0, 3)),\n                    CalldataCase(value=4, action=Op.SSTORE(0, 4)),\n                    CalldataCase(value=5, action=Op.SSTORE(0, 5)),\n                ],\n                default_action=Op.SSTORE(0, 6),\n            ),\n            {0: 3},\n            id=\"five-cases-third-condition-met-calldata\",\n        ),\n        pytest.param(\n            Hash(5),\n            Switch(\n                cases=[\n                    Case(condition=Op.EQ(Op.CALLDATALOAD(0), 1), action=Op.SSTORE(0, 1)),\n                    Case(condition=Op.EQ(Op.CALLDATALOAD(0), 2), action=Op.SSTORE(0, 2)),\n                    Case(condition=Op.EQ(Op.CALLDATALOAD(0), 3), action=Op.SSTORE(0, 3)),\n                    Case(condition=Op.EQ(Op.CALLDATALOAD(0), 4), action=Op.SSTORE(0, 4)),\n                    Case(condition=Op.EQ(Op.CALLDATALOAD(0), 5), action=Op.SSTORE(0, 5)),\n                ],\n                default_action=Op.SSTORE(0, 6),\n            ),\n            {0: 5},\n            id=\"five-cases-last-met\",\n        ),\n        pytest.param(\n            Hash(3),\n            Switch(\n                cases=[\n                    Case(condition=Op.EQ(Op.CALLDATALOAD(0), 1), action=Op.SSTORE(0, 1)),\n                    Case(condition=Op.EQ(Op.CALLDATALOAD(0), 2), action=Op.SSTORE(0, 2)),\n                    Case(condition=Op.EQ(Op.CALLDATALOAD(0), 3), action=Op.SSTORE(0, 3)),\n                    Case(condition=Op.EQ(Op.CALLDATALOAD(0), 3), action=Op.SSTORE(0, 4)),\n                    Case(condition=Op.EQ(Op.CALLDATALOAD(0), 3), action=Op.SSTORE(0, 5)),\n                ],\n                default_action=Op.SSTORE(0, 6),\n            ),\n            {0: 3},\n            id=\"five-cases-multiple-conditions-met\",  # first in list should be evaluated\n        ),\n        pytest.param(\n            Hash(9),\n            Switch(\n                cases=[\n                    Case(condition=Op.EQ(Op.CALLDATALOAD(0), 1), action=Op.SSTORE(0, 1)),\n                    Case(condition=Op.EQ(Op.CALLDATALOAD(0), 2), action=Op.SSTORE(0, 2)),\n                    Case(condition=Op.EQ(Op.CALLDATALOAD(0), 3), action=Op.SSTORE(0, 3)),\n                    Case(condition=Op.EQ(Op.CALLDATALOAD(0), 4), action=Op.SSTORE(0, 4)),\n                    Case(condition=Op.EQ(Op.CALLDATALOAD(0), 5), action=Op.SSTORE(0, 5)),\n                ],\n                default_action=Op.SSTORE(0, 6),\n            ),\n            {0: 6},\n            id=\"five-cases-no-condition-met\",\n        ),\n        pytest.param(\n            Hash(0),\n            Switch(\n                cases=[\n                    Case(condition=Op.EQ(1, 2), action=Op.SSTORE(0, 1)),\n                    Case(condition=Op.EQ(1, 2), action=Op.SSTORE(0, 1)),\n                    Case(condition=Op.EQ(1, 2), action=Op.SSTORE(0, 1)),\n                    Case(condition=Op.EQ(1, 1), action=Op.SSTORE(0, 2)),\n                    Case(condition=Op.EQ(1, 2), action=Op.SSTORE(0, 1)),\n                ],\n                default_action=None,\n            ),\n            {0: 2},\n            id=\"no-calldataload-condition-met\",\n        ),\n        pytest.param(\n            Hash(0),\n            Switch(\n                cases=[\n                    Case(condition=Op.EQ(1, 2), action=Op.SSTORE(0, 1)),\n                    Case(condition=Op.EQ(1, 2), action=Op.SSTORE(0, 1)),\n                    Case(\n                        condition=Op.EQ(1, 2),\n                        action=Op.SSTORE(0, 1) + Op.SSTORE(1, 1) + Op.SSTORE(2, 1),\n                    ),\n                    Case(condition=Op.EQ(1, 1), action=Op.SSTORE(0, 2) + Op.SSTORE(1, 2)),\n                    Case(condition=Op.EQ(1, 2), action=Op.SSTORE(0, 1)),\n                ],\n                default_action=None,\n            ),\n            {0: 2, 1: 2},\n            id=\"no-calldataload-condition-met-different-length-actions\",\n        ),\n        pytest.param(\n            Hash(0),\n            Switch(\n                cases=[\n                    Case(\n                        condition=Op.EQ(1, 2),\n                        action=Op.SSTORE(0, 1),\n                    ),\n                    Case(\n                        condition=Op.EQ(Op.CALLDATALOAD(0), 1),\n                        action=Op.SSTORE(0, 1),\n                    ),\n                    Case(\n                        condition=Op.EQ(1, 2),\n                        action=Op.SSTORE(0, 1) + Op.SSTORE(1, 1) + Op.SSTORE(2, 1),\n                    ),\n                    Case(\n                        condition=Op.EQ(1, 1),\n                        action=Op.SSTORE(0, 2) + Op.SSTORE(1, 2),\n                    ),\n                    Case(\n                        condition=Op.EQ(Op.CALLDATALOAD(0), 1),\n                        action=Op.SSTORE(0, 1),\n                    ),\n                ],\n                default_action=None,\n            ),\n            {0: 2, 1: 2},\n            id=\"different-length-conditions-condition-met-different-length-actions\",\n        ),\n        pytest.param(\n            Hash(0),\n            Op.SSTORE(0x10, 1)\n            + Switch(\n                cases=[\n                    Case(\n                        condition=Op.EQ(1, 2),\n                        action=Op.SSTORE(0, 1),\n                    ),\n                    Case(\n                        condition=Op.EQ(Op.CALLDATALOAD(0), 1),\n                        action=Op.SSTORE(0, 1),\n                    ),\n                    Case(\n                        condition=Op.EQ(1, 2),\n                        action=Op.SSTORE(0, 1) + Op.SSTORE(1, 1) + Op.SSTORE(2, 1),\n                    ),\n                    Case(\n                        condition=Op.EQ(1, 1),\n                        action=Op.SSTORE(0, 2) + Op.SSTORE(1, 2),\n                    ),\n                    Case(\n                        condition=Op.EQ(Op.CALLDATALOAD(0), 1),\n                        action=Op.SSTORE(0, 1),\n                    ),\n                ],\n                default_action=None,\n            )\n            + Op.SSTORE(0x11, 1),\n            {0: 2, 1: 2, 0x10: 1, 0x11: 1},\n            id=\"nested-within-bytecode\",\n        ),\n        pytest.param(\n            Hash(1),\n            Switch(\n                cases=[Case(condition=Op.EQ(Op.CALLDATALOAD(0), 1), action=Op.SSTORE(0, 1))],\n                default_action=Op.PUSH32(2**256 - 1) * 8,\n            ),\n            {0: 1},\n            id=\"jumpi-larger-than-1-byte\",\n        ),\n        pytest.param(\n            Hash(1),\n            Switch(\n                cases=[Case(condition=Op.EQ(Op.CALLDATALOAD(0), 1), action=Op.SSTORE(0, 1))],\n                default_action=Op.PUSH32(2**256 - 1) * 2048,\n            ),\n            {0: 1},\n            id=\"jumpi-larger-than-4-bytes\",\n        ),\n    ],\n)\ndef test_switch(\n    tx_data: bytes, switch_bytecode: bytes, expected_storage: Mapping, default_t8n: TransitionTool\n) -> None:\n    \"\"\"\n    Test that the switch opcode macro gets executed as using the t8n tool.\n    \"\"\"\n    code_address = Address(0x1000)\n    pre = Alloc(\n        {\n            code_address: Account(code=switch_bytecode),\n            TestAddress: Account(balance=10_000_000),\n        }\n    )\n    tx = Transaction(to=code_address, data=tx_data, gas_limit=1_000_000, secret_key=TestPrivateKey)\n    post = {TestAddress: Account(nonce=1), code_address: Account(storage=expected_storage)}\n    state_test = StateTest(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n    state_test.generate(\n        t8n=default_t8n,\n        fork=Cancun,\n        fixture_format=BlockchainFixture,\n    )\n\n\ndef test_full_opcode_range() -> None:\n    \"\"\"\n    Test that the full opcode range is covered by the opcode set defined by\n    Opcodes and UndefineOpcodes.\n    \"\"\"\n    assert len(set(Op) & set(UndefinedOpcodes)) == 0\n    full_possible_opcode_set = set(Op) | set(UndefinedOpcodes)\n    assert len(full_possible_opcode_set) == 257\n    assert {op.hex() for op in full_possible_opcode_set} == {f\"{i:02x}\" for i in range(256)}\n"
  },
  {
    "path": "src/ethereum_test_tools/tools_code/__init__.py",
    "content": "\"\"\"Code related utilities and classes.\"\"\"\n\nfrom .generators import CalldataCase, Case, CodeGasMeasure, Conditional, Initcode, Switch, While\nfrom .yul import Solc, Yul, YulCompiler\n\n__all__ = (\n    \"CalldataCase\",\n    \"Case\",\n    \"CodeGasMeasure\",\n    \"Conditional\",\n    \"Initcode\",\n    \"Solc\",\n    \"Switch\",\n    \"While\",\n    \"Yul\",\n    \"YulCompiler\",\n)\n"
  },
  {
    "path": "src/ethereum_test_tools/tools_code/generators.py",
    "content": "\"\"\"Code generating classes and functions.\"\"\"\n\nfrom dataclasses import dataclass\nfrom typing import Any, List, SupportsBytes\n\nfrom typing_extensions import Self\n\nfrom ethereum_test_base_types import Bytes\nfrom ethereum_test_types import ceiling_division\nfrom ethereum_test_vm import Bytecode, EVMCodeType\nfrom ethereum_test_vm import Opcodes as Op\n\nGAS_PER_DEPLOYED_CODE_BYTE = 0xC8\n\n\nclass Initcode(Bytecode):\n    \"\"\"\n    Helper class used to generate initcode for the specified deployment code.\n\n    The execution gas cost of the initcode is calculated, and also the\n    deployment gas costs for the deployed code.\n\n    The initcode can be padded to a certain length if necessary, which does not\n    affect the deployed code.\n\n    Other costs such as the CREATE2 hashing costs or the initcode_word_cost of\n    EIP-3860 are *not* taken into account by any of these calculated costs.\n    \"\"\"\n\n    deploy_code: SupportsBytes | Bytes\n    \"\"\"\n    Bytecode to be deployed by the initcode.\n    \"\"\"\n    execution_gas: int\n    \"\"\"\n    Gas cost of executing the initcode, without considering deployment gas\n    costs.\n    \"\"\"\n    deployment_gas: int\n    \"\"\"\n    Gas cost of deploying the cost, subtracted after initcode execution,\n    \"\"\"\n\n    def __new__(\n        cls,\n        *,\n        deploy_code: SupportsBytes | Bytes | None = None,\n        initcode_length: int | None = None,\n        initcode_prefix: Bytecode | None = None,\n        initcode_prefix_execution_gas: int = 0,\n        padding_byte: int = 0x00,\n        name: str = \"\",\n    ) -> Self:\n        \"\"\"\n        Generate legacy initcode that inits a contract with the specified code.\n        The initcode can be padded to a specified length for testing purposes.\n        \"\"\"\n        if deploy_code is None:\n            deploy_code = Bytecode()\n        if initcode_prefix is None:\n            initcode_prefix = Bytecode()\n\n        initcode = initcode_prefix\n        code_length = len(bytes(deploy_code))\n        execution_gas = initcode_prefix_execution_gas\n\n        # PUSH2: length=<bytecode length>\n        initcode += Op.PUSH2(code_length)\n        execution_gas = 3\n\n        # PUSH1: offset=0\n        initcode += Op.PUSH1(0)\n        execution_gas += 3\n\n        # DUP2\n        initcode += Op.DUP2\n        execution_gas += 3\n\n        # PUSH1: initcode_length=11 + len(initcode_prefix_bytes) (constant)\n        no_prefix_length = 0x0B\n        assert no_prefix_length + len(initcode_prefix) <= 0xFF, \"initcode prefix too long\"\n        initcode += Op.PUSH1(no_prefix_length + len(initcode_prefix))\n        execution_gas += 3\n\n        # DUP3\n        initcode += Op.DUP3\n        execution_gas += 3\n\n        # CODECOPY: destinationOffset=0, offset=0, length\n        initcode += Op.CODECOPY\n        execution_gas += (\n            3\n            + (3 * ceiling_division(code_length, 32))\n            + (3 * code_length)\n            + ((code_length * code_length) // 512)\n        )\n\n        # RETURN: offset=0, length\n        initcode += Op.RETURN\n        execution_gas += 0\n\n        initcode_plus_deploy_code = bytes(initcode) + bytes(deploy_code)\n        padding_bytes = bytes()\n\n        if initcode_length is not None:\n            assert initcode_length >= len(initcode_plus_deploy_code), (\n                \"specified invalid length for initcode\"\n            )\n\n            padding_bytes = bytes(\n                [padding_byte] * (initcode_length - len(initcode_plus_deploy_code))\n            )\n\n        initcode_bytes = initcode_plus_deploy_code + padding_bytes\n        instance = super().__new__(\n            cls,\n            initcode_bytes,\n            popped_stack_items=initcode.popped_stack_items,\n            pushed_stack_items=initcode.pushed_stack_items,\n            max_stack_height=initcode.max_stack_height,\n            min_stack_height=initcode.min_stack_height,\n        )\n        instance._name_ = name\n        instance.deploy_code = deploy_code\n        instance.execution_gas = execution_gas\n        instance.deployment_gas = GAS_PER_DEPLOYED_CODE_BYTE * len(bytes(instance.deploy_code))\n\n        return instance\n\n\nclass CodeGasMeasure(Bytecode):\n    \"\"\"\n    Helper class used to generate bytecode that measures gas usage of a\n    bytecode, taking into account and subtracting any extra overhead gas costs\n    required to execute. By default, the result gas calculation is saved to\n    storage key 0.\n    \"\"\"\n\n    code: Bytecode\n    \"\"\"\n    Bytecode to be executed to measure the gas usage.\n    \"\"\"\n    overhead_cost: int\n    \"\"\"\n    Extra gas cost to be subtracted from extra operations.\n    \"\"\"\n    extra_stack_items: int\n    \"\"\"\n    Extra stack items that remain at the end of the execution.\n    To be considered when subtracting the value of the previous GAS operation,\n    and to be popped at the end of the execution.\n    \"\"\"\n    sstore_key: int | Bytes\n    \"\"\"\n    Storage key to save the gas used.\n    \"\"\"\n\n    def __new__(\n        cls,\n        *,\n        code: Bytecode,\n        overhead_cost: int = 0,\n        extra_stack_items: int = 0,\n        sstore_key: int | Bytes = 0,\n        stop: bool = True,\n    ) -> Self:\n        \"\"\"Assemble the bytecode that measures gas usage.\"\"\"\n        res = Op.GAS + code + Op.GAS\n        # We need to swap and pop for each extra stack item that remained from\n        # the execution of the code\n        res += (Op.SWAP1 + Op.POP) * extra_stack_items\n        res += (\n            Op.SWAP1\n            + Op.SUB\n            + Op.PUSH1(overhead_cost + 2)\n            + Op.SWAP1\n            + Op.SSTORE(sstore_key, Op.SUB)\n        )\n        if stop:\n            res += Op.STOP\n\n        instance = super().__new__(cls, res)\n        instance.code = code\n        instance.overhead_cost = overhead_cost\n        instance.extra_stack_items = extra_stack_items\n        instance.sstore_key = sstore_key\n        return instance\n\n\nclass Conditional(Bytecode):\n    \"\"\"Helper class used to generate conditional bytecode.\"\"\"\n\n    def __new__(\n        cls,\n        *,\n        condition: Bytecode | Op,\n        if_true: Bytecode | Op | None = None,\n        if_false: Bytecode | Op | None = None,\n        evm_code_type: EVMCodeType = EVMCodeType.LEGACY,\n    ) -> Self:\n        \"\"\"\n        Assemble the conditional bytecode by generating the necessary jump and\n        jumpdest opcodes surrounding the condition and the two possible\n        execution paths.\n\n        In the future, PC usage should be replaced by using RJUMP and RJUMPI\n        \"\"\"\n        if if_true is None:\n            if_true = Bytecode()\n        if if_false is None:\n            if_false = Bytecode()\n\n        if evm_code_type == EVMCodeType.LEGACY:\n            # First we append a jumpdest to the start of the true branch\n            if_true = Op.JUMPDEST + if_true\n\n            # Then we append the unconditional jump to the end of the false\n            # branch, used to skip the true branch\n            if_false += Op.JUMP(Op.ADD(Op.PC, len(if_true) + 3))\n\n            # Then we need to do the conditional jump by skipping the false\n            # branch\n            condition = Op.JUMPI(Op.ADD(Op.PC, len(if_false) + 3), condition)\n\n            # Finally we append the condition, false and true branches, plus\n            # the jumpdest at the very end\n            bytecode = condition + if_false + if_true + Op.JUMPDEST\n\n        elif evm_code_type == EVMCodeType.EOF_V1:\n            if not if_false.terminating:\n                if_false += Op.RJUMP[len(if_true)]\n            condition = Op.RJUMPI[len(if_false)](condition)\n\n            # Finally we append the condition, false and true branches\n            bytecode = condition + if_false + if_true\n\n        return super().__new__(cls, bytecode)\n\n\nclass While(Bytecode):\n    \"\"\"Helper class used to generate while-loop bytecode.\"\"\"\n\n    def __new__(\n        cls,\n        *,\n        body: Bytecode | Op,\n        condition: Bytecode | Op | None = None,\n        evm_code_type: EVMCodeType = EVMCodeType.LEGACY,\n    ) -> Self:\n        \"\"\"\n        Assemble the loop bytecode.\n\n        The condition nor the body can leave a stack item on the stack.\n        \"\"\"\n        bytecode = Bytecode()\n        if evm_code_type == EVMCodeType.LEGACY:\n            bytecode += Op.JUMPDEST\n            bytecode += body\n            if condition is not None:\n                bytecode += Op.JUMPI(\n                    Op.SUB(Op.PC, Op.PUSH4[len(body) + len(condition) + 6]), condition\n                )\n            else:\n                bytecode += Op.JUMP(Op.SUB(Op.PC, Op.PUSH4[len(body) + 6]))\n        elif evm_code_type == EVMCodeType.EOF_V1:\n            raise NotImplementedError(\"EOF while loops are not implemented\")\n        return super().__new__(cls, bytecode)\n\n\n@dataclass(kw_only=True, slots=True)\nclass Case:\n    \"\"\"\n    Small helper class to represent a single, generic case in a `Switch` cases\n    list.\n    \"\"\"\n\n    condition: Bytecode | Op\n    action: Bytecode | Op\n    terminating: bool | None = None\n\n    @property\n    def is_terminating(self) -> bool:\n        \"\"\"Returns whether the case is terminating.\"\"\"\n        return self.terminating if self.terminating is not None else self.action.terminating\n\n\nclass CalldataCase(Case):\n    \"\"\"\n    Small helper class to represent a single case whose condition depends on\n    the value of the contract's calldata in a Switch case statement.\n\n    By default the calldata is read from position zero, but this can be\n    overridden using `position`.\n\n    The `condition` is generated automatically based on the `value` (and\n    optionally `position`) and may not be set directly.\n    \"\"\"\n\n    def __init__(self, value: int | str | Bytecode, position: int = 0, **kwargs: Any) -> None:\n        \"\"\"Generate the condition base on `value` and `position`.\"\"\"\n        condition = Op.EQ(Op.CALLDATALOAD(position), value)\n        super().__init__(condition=condition, **kwargs)\n\n\nclass Switch(Bytecode):\n    \"\"\"\n    Helper class used to generate switch-case expressions in EVM bytecode.\n\n    Switch-case behavior:\n      - If no condition is met in the list of BytecodeCases\n        conditions, the `default_action` bytecode is executed.\n\n      - If multiple conditions are met, the action from the first valid\n        condition is the only one executed.\n\n      - There is no fall through; it is not possible to execute\n        multiple actions.\n    \"\"\"\n\n    default_action: Bytecode | Op | None\n    \"\"\"\n    The default bytecode to execute; if no condition is met, this bytecode is\n    executed.\n    \"\"\"\n\n    cases: List[Case]\n    \"\"\"\n    A list of Cases: The first element with a condition that\n    evaluates to a non-zero value is the one that is executed.\n    \"\"\"\n\n    evm_code_type: EVMCodeType\n    \"\"\"\n    The EVM code type to use for the switch-case bytecode.\n    \"\"\"\n\n    def __new__(\n        cls,\n        *,\n        default_action: Bytecode | Op | None = None,\n        cases: List[Case],\n        evm_code_type: EVMCodeType = EVMCodeType.LEGACY,\n    ) -> Self:\n        \"\"\"\n        Assemble the bytecode by looping over the list of cases and adding the\n        necessary [R]JUMPI and JUMPDEST opcodes in order to replicate\n        switch-case behavior.\n        \"\"\"\n        # The length required to jump over subsequent actions to the final\n        # JUMPDEST at the end of the switch-case block:\n        #   - add 6 per case for the length of the JUMPDEST and\n        #     JUMP(ADD(PC, action_jump_length)) bytecode\n        #\n        #   - add 3 to the total to account for this action's JUMP;\n        #     the PC within the call requires a \"correction\" of 3.\n\n        bytecode = Bytecode()\n\n        # All conditions get prepended to this bytecode; if none are met, we\n        # reach the default\n        if evm_code_type == EVMCodeType.LEGACY:\n            action_jump_length = sum(len(case.action) + 6 for case in cases) + 3\n            bytecode = default_action + Op.JUMP(Op.ADD(Op.PC, action_jump_length))\n            # The length required to jump over the default action and its JUMP\n            # bytecode\n            condition_jump_length = len(bytecode) + 3\n        elif evm_code_type == EVMCodeType.EOF_V1:\n            action_jump_length = sum(\n                len(case.action) + (len(Op.RJUMP[0]) if not case.is_terminating else 0)\n                for case in cases\n                # On not terminating cases, we need to add 3 bytes for the\n                # RJUMP\n            )\n            bytecode = default_action + Op.RJUMP[action_jump_length]\n            # The length required to jump over the default action and its JUMP\n            # bytecode\n            condition_jump_length = len(bytecode)\n\n        # Reversed: first case in the list has priority; it will become the\n        # outer-most onion layer. We build up layers around the default_action,\n        # after 1 iteration of the loop, a simplified representation of the\n        # bytecode is:\n        #\n        # JUMPI(case[n-1].condition)\n        # + default_action + JUMP()\n        # + JUMPDEST + case[n-1].action + JUMP()\n        #\n        # and after n=len(cases) iterations:\n        #\n        # JUMPI(case[0].condition)\n        # + JUMPI(case[1].condition)\n        # ...\n        # + JUMPI(case[n-1].condition) + default_action + JUMP() + JUMPDEST +\n        # case[n-1].action + JUMP() + ... + JUMPDEST + case[1].action + JUMP()\n        # + JUMPDEST + case[0].action + JUMP()\n        for case in reversed(cases):\n            action = case.action\n            if evm_code_type == EVMCodeType.LEGACY:\n                action_jump_length -= len(action) + 6\n                action = Op.JUMPDEST + action + Op.JUMP(Op.ADD(Op.PC, action_jump_length))\n                condition = Op.JUMPI(Op.ADD(Op.PC, condition_jump_length), case.condition)\n            elif evm_code_type == EVMCodeType.EOF_V1:\n                action_jump_length -= len(action) + (\n                    len(Op.RJUMP[0]) if not case.is_terminating else 0\n                )\n                if not case.is_terminating:\n                    action += Op.RJUMP[action_jump_length]\n                condition = Op.RJUMPI[condition_jump_length](case.condition)\n            # wrap the current case around the onion as its next layer\n            bytecode = condition + bytecode + action\n            condition_jump_length += len(condition) + len(action)\n\n        bytecode += Op.JUMPDEST\n\n        instance = super().__new__(cls, bytecode)\n        instance.default_action = default_action\n        instance.cases = cases\n        return instance\n"
  },
  {
    "path": "src/ethereum_test_tools/tools_code/yul.py",
    "content": "\"\"\"Yul frontend.\"\"\"\n\nimport re\nimport warnings\nfrom functools import cached_property\nfrom pathlib import Path\nfrom shutil import which\nfrom subprocess import CompletedProcess, run\nfrom typing import Optional, Type\n\nfrom semver import Version\nfrom typing_extensions import Self\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_vm import Bytecode\n\nDEFAULT_SOLC_ARGS = (\"--assemble\", \"-\")\nVERSION_PATTERN = re.compile(r\"Version: (.*)\")\n\n\nclass Solc:\n    \"\"\"Solc compiler.\"\"\"\n\n    binary: Path\n\n    def __init__(\n        self,\n        binary: Optional[Path | str] = None,\n    ):\n        \"\"\"Initialize the solc compiler.\"\"\"\n        if not binary:\n            which_path = which(\"solc\")\n            if which_path is not None:\n                binary = Path(which_path)\n        if not binary or not Path(binary).exists():\n            raise Exception(\n                \"\"\"`solc` binary executable not found, please refer to\n                https://docs.soliditylang.org/en/latest/installing-solidity.html\n                for help downloading and installing `solc`\"\"\"\n            )\n        self.binary = Path(binary)\n\n    def run(self, *args: str, input_value: str | None = None) -> CompletedProcess:\n        \"\"\"Run solc with the given arguments.\"\"\"\n        return run(\n            [self.binary, *args],\n            capture_output=True,\n            text=True,\n            input=input_value,\n        )\n\n    @cached_property\n    def version(self) -> Version:\n        \"\"\"Return solc's version.\"\"\"\n        for line in self.run(\"--version\").stdout.splitlines():\n            if match := VERSION_PATTERN.search(line):\n                # Sanitize\n                solc_version_string = match.group(1).replace(\"g++\", \"gpp\")\n                return Version.parse(solc_version_string)\n        warnings.warn(\"Unable to determine solc version.\", stacklevel=2)\n        return Version(0)\n\n\nclass Yul(Bytecode):\n    \"\"\"\n    Yul compiler.\n    Compiles Yul source code into bytecode.\n    \"\"\"\n\n    source: str\n    evm_version: str | None\n\n    def __new__(\n        cls,\n        source: str,\n        fork: Optional[Fork] = None,\n        binary: Optional[Path | str] = None,\n    ) -> Self:\n        \"\"\"Compile Yul source code into bytecode.\"\"\"\n        solc = Solc(binary)\n        evm_version = fork.solc_name() if fork else None\n\n        solc_args = (\"--evm-version\", evm_version) if evm_version else ()\n\n        result = solc.run(*solc_args, *DEFAULT_SOLC_ARGS, input_value=source)\n\n        if result.returncode:\n            stderr_lines = result.stderr.splitlines()\n            stderr_message = \"\\n\".join(line.strip() for line in stderr_lines)\n            raise Exception(f\"failed to compile yul source:\\n{stderr_message[7:]}\")\n\n        lines = result.stdout.splitlines()\n\n        hex_str = lines[lines.index(\"Binary representation:\") + 1]\n\n        bytecode = bytes.fromhex(hex_str)\n        instance = super().__new__(\n            cls,\n            bytecode,\n            popped_stack_items=0,\n            pushed_stack_items=0,\n        )\n        instance.source = source\n        instance.evm_version = evm_version\n        return instance\n\n\nYulCompiler = Type[Yul]\n"
  },
  {
    "path": "src/ethereum_test_tools/utility/__init__.py",
    "content": "\"\"\"Sub-package for utility functions and classes.\"\"\"\n"
  },
  {
    "path": "src/ethereum_test_tools/utility/generators.py",
    "content": "\"\"\"Test generator decorators.\"\"\"\n\nimport json\nfrom enum import StrEnum\nfrom pathlib import Path\nfrom typing import Any, Callable, Dict, Generator, List, Protocol\n\nimport pytest\n\nfrom ethereum_test_base_types import Account, Address, Hash\nfrom ethereum_test_exceptions import BlockException\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_specs import BlockchainTestFiller\nfrom ethereum_test_specs.blockchain import Block\nfrom ethereum_test_types import Alloc, Transaction\nfrom ethereum_test_vm import Bytecode\nfrom ethereum_test_vm import Opcodes as Op\n\n\nclass DeploymentTestType(StrEnum):\n    \"\"\"Represents the type of deployment test.\"\"\"\n\n    DEPLOY_BEFORE_FORK = \"deploy_before_fork\"\n    DEPLOY_ON_FORK_BLOCK = \"deploy_on_fork_block\"\n    DEPLOY_AFTER_FORK = \"deploy_after_fork\"\n\n\nclass SystemContractTestType(StrEnum):\n    \"\"\"Represents the type of system contract test.\"\"\"\n\n    GAS_LIMIT = \"system_contract_reaches_gas_limit\"\n    OUT_OF_GAS_ERROR = \"system_contract_out_of_gas\"\n    REVERT_ERROR = \"system_contract_reverts\"\n    EXCEPTION_ERROR = \"system_contract_throws\"\n\n    def param(self) -> Any:\n        \"\"\"Return the parameter for the test.\"\"\"\n        return pytest.param(\n            self,\n            id=self.value,\n            marks=pytest.mark.exception_test if self != SystemContractTestType.GAS_LIMIT else [],\n        )\n\n\nclass ContractAddressHasBalance(StrEnum):\n    \"\"\"\n    Represents whether the target deployment test has a balance before\n    deployment.\n    \"\"\"\n\n    ZERO_BALANCE = \"zero_balance\"\n    NONZERO_BALANCE = \"nonzero_balance\"\n\n\nclass SystemContractDeployTestFunction(Protocol):\n    \"\"\"\n    Represents a function to be decorated with the\n    `generate_system_contract_deploy_test` decorator.\n    \"\"\"\n\n    def __call__(\n        self,\n        *,\n        fork: Fork,\n        pre: Alloc,\n        post: Alloc,\n        test_type: DeploymentTestType,\n    ) -> Generator[Block, None, None]:\n        \"\"\"\n        Arguments:\n          fork (Fork): The fork to test.\n          pre (Alloc): The pre state of the blockchain.\n          post (Alloc): The post state of the blockchain.\n          test_type(DeploymentTestType): The type of deployment test\n                                         currently being filled.\n\n        Yields:\n          Block: To add after the block where the contract was deployed\n                 (e.g. can contain extra transactions to execute after\n                 the system contract has been deployed, and/or a header\n                 object to verify that the headers are correct).\n\n        \"\"\"\n        pass\n\n\ndef generate_system_contract_deploy_test(\n    *,\n    fork: Fork,\n    tx_json_path: Path,\n    expected_deploy_address: Address,\n    fail_on_empty_code: bool,\n    expected_system_contract_storage: Dict | None = None,\n) -> Callable[[SystemContractDeployTestFunction], Callable]:\n    \"\"\"\n    Generate a test that verifies the correct deployment of a system contract.\n\n    Generates following test cases:\n\n                        | before/after fork | fail on      | invalid block  |\n                                              empty block  |                |\n    --------------------|-------------------|--------------|----------------|\n    `deploy_before_fork-| before            | False        | False          |\n    nonzero_balance`\n\n    `deploy_before_fork-| before            | True         | False          |\n    zero_balance`\n\n    `deploy_on_fork_    | on fork block     | False        | False          |\n    block-nonzero_\n    balance`\n\n    `deploy_on_fork_    | on fork block     | True         | False          |\n    block-zero_balance`\n\n    `deploy_after_fork  | after             | False        | False          |\n    -nonzero_balance`\n\n    `deploy_after_fork  | after             | True         | True           |\n    -zero_balance`\n\n\n    The `has balance` parametrization does not have an effect on the\n    expectation of the test.\n\n    Arguments:\n      fork (Fork): The fork to test.\n      tx_json_path (Path): Path to the JSON file with the transaction to\n                           deploy the system contract. Providing a JSON\n                           file is useful to copy-paste the transaction\n                           from the EIP.\n      expected_deploy_address (Address): The expected address of the deployed\n                                         contract.\n      fail_on_empty_code (bool): If True, the test is expected to fail\n                                 on empty code.\n      expected_system_contract_storage (Dict | None): The expected storage of\n                                                      the system contract.\n\n    \"\"\"\n    with open(tx_json_path, mode=\"r\") as f:\n        tx_json = json.loads(f.read())\n    if \"gasLimit\" not in tx_json and \"gas\" in tx_json:\n        tx_json[\"gasLimit\"] = tx_json[\"gas\"]\n        del tx_json[\"gas\"]\n    if \"protected\" not in tx_json:\n        tx_json[\"protected\"] = False\n    deploy_tx = Transaction.model_validate(tx_json).with_signature_and_sender()\n    gas_price = deploy_tx.gas_price\n    assert gas_price is not None\n    deployer_required_balance = deploy_tx.gas_limit * gas_price\n    deployer_address = deploy_tx.sender\n    if \"hash\" in tx_json:\n        assert deploy_tx.hash == Hash(tx_json[\"hash\"])\n    if \"sender\" in tx_json:\n        assert deploy_tx.sender == Address(tx_json[\"sender\"])\n\n    def decorator(func: SystemContractDeployTestFunction) -> Callable:\n        @pytest.mark.parametrize(\n            \"has_balance\",\n            [\n                pytest.param(ContractAddressHasBalance.NONZERO_BALANCE),\n                pytest.param(ContractAddressHasBalance.ZERO_BALANCE),\n            ],\n            ids=lambda x: x.name.lower(),\n        )\n        @pytest.mark.parametrize(\n            \"test_type\",\n            [\n                pytest.param(DeploymentTestType.DEPLOY_BEFORE_FORK),\n                pytest.param(DeploymentTestType.DEPLOY_ON_FORK_BLOCK),\n                pytest.param(\n                    DeploymentTestType.DEPLOY_AFTER_FORK,\n                    marks=[pytest.mark.exception_test] if fail_on_empty_code else [],\n                ),\n            ],\n            ids=lambda x: x.name.lower(),\n        )\n        @pytest.mark.execute(pytest.mark.skip(reason=\"modifies pre-alloc\"))\n        @pytest.mark.valid_at_transition_to(fork.name())\n        def wrapper(\n            blockchain_test: BlockchainTestFiller,\n            has_balance: ContractAddressHasBalance,\n            pre: Alloc,\n            test_type: DeploymentTestType,\n            fork: Fork,\n        ) -> None:\n            assert deployer_address is not None\n            assert deploy_tx.created_contract == expected_deploy_address\n            blocks: List[Block] = []\n\n            if test_type == DeploymentTestType.DEPLOY_BEFORE_FORK:\n                blocks = [\n                    Block(  # Deployment block\n                        txs=[deploy_tx],\n                        timestamp=14_999,\n                    ),\n                    Block(  # Empty block on fork\n                        txs=[],\n                        timestamp=15_000,\n                    ),\n                ]\n            elif test_type == DeploymentTestType.DEPLOY_ON_FORK_BLOCK:\n                blocks = [\n                    Block(  # Deployment on fork block\n                        txs=[deploy_tx],\n                        timestamp=15_000,\n                    ),\n                    Block(  # Empty block after fork\n                        txs=[],\n                        timestamp=15_001,\n                    ),\n                ]\n            elif test_type == DeploymentTestType.DEPLOY_AFTER_FORK:\n                blocks = [\n                    Block(  # Empty block on fork\n                        txs=[],\n                        timestamp=15_000,\n                        exception=BlockException.SYSTEM_CONTRACT_EMPTY\n                        if fail_on_empty_code\n                        else None,\n                    )\n                ]\n                if not fail_on_empty_code:\n                    blocks.append(\n                        Block(  # Deployment after fork block\n                            txs=[deploy_tx],\n                            timestamp=15_001,\n                        )\n                    )\n                    blocks.append(\n                        Block(  # Empty block after deployment\n                            txs=[],\n                            timestamp=15_002,\n                        ),\n                    )\n            balance = 1 if has_balance == ContractAddressHasBalance.NONZERO_BALANCE else 0\n            pre[expected_deploy_address] = Account(\n                code=b\"\",  # Remove the code that is automatically allocated on\n                # the fork\n                nonce=0,\n                balance=balance,\n            )\n            pre[deployer_address] = Account(\n                balance=deployer_required_balance,\n            )\n\n            expected_deploy_address_int = int.from_bytes(expected_deploy_address, \"big\")\n\n            post = Alloc()\n            fork_pre_allocation = fork.pre_allocation_blockchain()\n            assert expected_deploy_address_int in fork_pre_allocation\n            expected_code = fork_pre_allocation[expected_deploy_address_int][\"code\"]\n            # Note: balance check is omitted; it may be modified by the\n            # underlying, decorated test\n            account_kwargs = {\n                \"code\": expected_code,\n                \"nonce\": 1,\n            }\n            if expected_system_contract_storage:\n                account_kwargs[\"storage\"] = expected_system_contract_storage\n            if test_type != DeploymentTestType.DEPLOY_AFTER_FORK or not fail_on_empty_code:\n                post[expected_deploy_address] = Account(**account_kwargs)\n                post[deployer_address] = Account(\n                    nonce=1,\n                )\n\n            # Extra blocks (if any) returned by the decorated function to add\n            # after the contract is deployed.\n            if test_type != DeploymentTestType.DEPLOY_AFTER_FORK or not fail_on_empty_code:\n                # Only fill more blocks if the deploy block does not fail.\n                blocks += list(func(fork=fork, pre=pre, post=post, test_type=test_type))\n\n            blockchain_test(\n                pre=pre,\n                blocks=blocks,\n                post=post,\n            )\n\n        wrapper.__name__ = func.__name__  # type: ignore\n        wrapper.__doc__ = func.__doc__\n\n        return wrapper\n\n    return decorator\n\n\ndef generate_system_contract_error_test(\n    *,\n    max_gas_limit: int,\n) -> Callable[[SystemContractDeployTestFunction], Callable]:\n    \"\"\"\n    Generate a test that verifies the correct behavior when a system contract\n    fails execution.\n\n    Parametrizations required:\n    - system_contract (Address): The address of the system contract to deploy.\n    - valid_from (Fork): The fork from which the test is valid.\n\n    Arguments:\n      max_gas_limit (int): The maximum gas limit for the system transaction.\n\n    \"\"\"\n\n    def decorator(func: SystemContractDeployTestFunction) -> Callable:\n        @pytest.mark.parametrize(\"test_type\", [v.param() for v in SystemContractTestType])\n        @pytest.mark.execute(pytest.mark.skip(reason=\"modifies pre-alloc\"))\n        def wrapper(\n            blockchain_test: BlockchainTestFiller,\n            pre: Alloc,\n            test_type: SystemContractTestType,\n            system_contract: Address,\n            fork: Fork,\n        ) -> None:\n            modified_system_contract_code = Bytecode()\n\n            # Depending on the test case, we need to modify the system contract\n            # code accordingly.\n            if (\n                test_type == SystemContractTestType.GAS_LIMIT\n                or test_type == SystemContractTestType.OUT_OF_GAS_ERROR\n            ):\n                # Run code so that it reaches the gas limit.\n                gas_costs = fork.gas_costs()\n                # The code works by storing N values to storage, and N is\n                # calculated based on the gas costs for the given fork. This\n                # code will only work once, so if the system contract is re-\n                # executed in a subsequent block, it will consume less gas.\n                gas_used_per_storage = (\n                    gas_costs.G_STORAGE_SET + gas_costs.G_COLD_SLOAD + (gas_costs.G_VERY_LOW * 2)\n                )\n                modified_system_contract_code += sum(\n                    Op.SSTORE(i, 1) for i in range(max_gas_limit // gas_used_per_storage)\n                )\n                # If the gas limit is not divisible by the gas used per\n                # storage, we need to add some NO-OP (JUMPDEST) to the code\n                # that each consume 1 gas.\n                assert gas_costs.G_JUMPDEST == 1, (\n                    f\"JUMPDEST gas cost should be 1, but got {gas_costs.G_JUMPDEST}. \"\n                    \"Generator `generate_system_contract_error_test` needs to be updated.\"\n                )\n                modified_system_contract_code += sum(\n                    Op.JUMPDEST for _ in range(max_gas_limit % gas_used_per_storage)\n                )\n\n                if test_type == SystemContractTestType.OUT_OF_GAS_ERROR:\n                    # If the test type is OUT_OF_GAS_ERROR, we need to add a\n                    # JUMPDEST to the code to ensure that we go over the limit\n                    # by one gas.\n                    modified_system_contract_code += Op.JUMPDEST\n                modified_system_contract_code += Op.STOP\n            elif test_type == SystemContractTestType.REVERT_ERROR:\n                # Run a simple revert.\n                modified_system_contract_code = Op.REVERT(0, 0)\n            elif test_type == SystemContractTestType.EXCEPTION_ERROR:\n                # Run a simple exception.\n                modified_system_contract_code = Op.INVALID()\n            else:\n                raise ValueError(f\"Invalid test type: {test_type}\")\n\n            pre[system_contract] = Account(\n                code=modified_system_contract_code,\n                nonce=1,\n                balance=0,\n            )\n\n            # Simple test transaction to verify the block failed to modify the\n            # state.\n            value_receiver = pre.fund_eoa(amount=0)\n            test_tx = Transaction(\n                to=value_receiver,\n                value=1,\n                gas_limit=100_000,\n                sender=pre.fund_eoa(),\n            )\n            post = Alloc()\n            post[value_receiver] = (\n                Account.NONEXISTENT\n                if test_type != SystemContractTestType.GAS_LIMIT\n                else Account(\n                    balance=1,\n                )\n            )\n\n            blockchain_test(\n                pre=pre,\n                blocks=[\n                    Block(  # Deployment block\n                        txs=[test_tx],\n                        exception=BlockException.SYSTEM_CONTRACT_CALL_FAILED\n                        if test_type != SystemContractTestType.GAS_LIMIT\n                        else None,\n                    )\n                ],\n                post=post,\n            )\n\n        wrapper.__name__ = func.__name__  # type: ignore\n        wrapper.__doc__ = func.__doc__\n\n        return wrapper\n\n    return decorator\n"
  },
  {
    "path": "src/ethereum_test_tools/utility/pytest.py",
    "content": "\"\"\"Pytest utility functions used to write Ethereum tests.\"\"\"\n\nfrom typing import Any, Dict, List\n\nimport pytest\nfrom _pytest.mark.structures import ParameterSet\n\n\nclass UnknownParameterInCasesError(Exception):\n    \"\"\"\n    Exception raised when a test case contains parameters that are not present\n    in the defaults.\n    \"\"\"\n\n    def __init__(self) -> None:\n        \"\"\"Initialize the exception.\"\"\"\n        super().__init__(\"each case must only contain parameters present in defaults\")\n\n\ndef extend_with_defaults(\n    defaults: Dict[str, Any], cases: List[ParameterSet], **parametrize_kwargs: Any\n) -> Dict[str, Any]:\n    \"\"\"\n    Extend test cases with default parameter values.\n\n    This utility function extends test case parameters by adding default values\n    from the `defaults` dictionary to each case in the `cases` list. If a case\n    already specifies a value for a parameter, its default is ignored.\n\n    This function is particularly useful in scenarios where you want to define\n    a common set of default values but allow individual test cases to override\n    them as needed.\n\n    The function returns a dictionary that can be directly unpacked and passed\n    to the `@pytest.mark.parametrize` decorator.\n\n    Arguments:\n      defaults (Dict[str, Any]): A dictionary of default parameter names\n                                 and their values. These values will be added\n                                 to each case unless the case already defines\n                                 a value for each parameter.\n      cases (List[ParameterSet]): A list of `pytest.param` objects\n                                  representing different test cases.\n                                  Its first argument must be a dictionary\n                                  defining parameter names and values.\n      parametrize_kwargs (Any): Additional keyword arguments to be passed to\n                              `@pytest.mark.parametrize`. These arguments are\n                              not modified by this function and are passed\n                              through unchanged.\n\n    Returns:\n      Dict[str, Any]: A dictionary with the following structure:\n          `argnames`: A list of parameter names.\n          `argvalues`: A list of test cases with modified parameter values.\n          `parametrize_kwargs`: Additional keyword arguments passed\n                                through unchanged.\n\n\n    Example:\n    ```python\n    @pytest.mark.parametrize(**extend_with_defaults(\n        defaults=dict(\n            min_value=0,  # default minimum value is 0\n            max_value=100, # default maximum value is 100\n            average=50,  # default average value is 50\n        ),\n\n        cases=[\n            pytest.param(\n                dict(),  # use default\n                values id='default_case',\n            ),\n\n            pytest.param(\n                dict(min_value=10),  # override with min_value=10\n                id='min_value_10',\n            ),\n\n            pytest.param(\n                dict(max_value=200),  # override with max_value=200\n                id='max_value_200',\n            ),\n\n            pytest.param(\n                dict(min_value=-10, max_value=50),  # override both min_value\n                                                    # and max_value\n                id='min_-10_max_50',\n            ),\n\n            pytest.param(\n                # all defaults are overridden\n                dict(min_value=20, max_value=80, average=50),\n                id=\"min_20_max_80_avg_50\",\n            ),\n\n            pytest.param(\n                dict(min_value=100, max_value=0),  # invalid range\n                id='invalid_range',\n                marks=pytest.mark.xfail(reason='invalid range'),\n            )\n        ],\n    ))\n    def test_range(min_value, max_value, average):\n        assert min_value <= max_value\n        assert min_value <= average <= max_value\n    ```\n\n    The above test will execute with the following sets of parameters:\n\n    ```python\n    \"default_case\": {\"min_value\": 0, \"max_value\": 100, \"average\": 50}\n    \"min_value_10\": {\"min_value\": 10, \"max_value\": 100, \"average\": 50}\n    \"max_value_200\": {\"min_value\": 0, \"max_value\": 200, \"average\": 50}\n    \"min_-10_max_50\": {\"min_value\": -10, \"max_value\": 50, \"average\": 50}\n    \"min_20_max_80_avg_50\": {\"min_value\": 20, \"max_value\": 80, \"average\": 50}\n    # expected to fail\n    \"invalid_range\": {\"min_value\": 100, \"max_value\": 0, \"average\": 50}\n    ```\n\n    Notes:\n    - Each case in `cases` must contain exactly one value, which is a\n      dictionary of parameter values.\n    - The function performs an in-place update of the `cases` list, so\n      the original `cases` list is modified.\n\n    \"\"\"\n    for i, case in enumerate(cases):\n        if not (len(case.values) == 1 and isinstance(case.values[0], dict)):\n            raise ValueError(\n                \"each case must contain exactly one value; a dict of parameter values\"\n            )\n        if set(case.values[0].keys()) - set(defaults.keys()):\n            raise UnknownParameterInCasesError()\n        # Overwrite values in defaults if the parameter is present in the test\n        # case values\n        merged_params = {**defaults, **case.values[0]}\n        cases[i] = pytest.param(*merged_params.values(), id=case.id, marks=case.marks)\n\n    return {\"argnames\": list(defaults), \"argvalues\": cases, **parametrize_kwargs}\n"
  },
  {
    "path": "src/ethereum_test_tools/utility/tests/test_pytest.py",
    "content": "\"\"\"Tests for ethereum_test_tools.utility.pytest.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_tools import extend_with_defaults\nfrom ethereum_test_tools.utility.pytest import UnknownParameterInCasesError\n\n\n# TODO: This is from the docstring in extend_with_defaults; should be tested\n# automatically\n@pytest.mark.parametrize(\n    **extend_with_defaults(\n        defaults={\n            \"min_value\": 0,  # default minimum value is 0\n            \"max_value\": 100,  # default maximum value is 100\n            \"average\": 50,  # default average value is 50\n        },\n        cases=[\n            pytest.param(\n                {},  # use default values\n                id=\"default_case\",\n            ),\n            pytest.param(\n                {\"min_value\": 10},  # override with min_value=10\n                id=\"min_value_10\",\n            ),\n            pytest.param(\n                {\"max_value\": 200},  # override with max_value=200\n                id=\"max_value_200\",\n            ),\n            pytest.param(\n                # override both min_value and max_value\n                {\"min_value\": -10, \"max_value\": 50},\n                id=\"min_-10_max_50\",\n            ),\n            pytest.param(\n                # all defaults are overridden\n                {\"min_value\": 20, \"max_value\": 80, \"average\": 50},\n                id=\"min_20_max_80_avg_50\",\n            ),\n            pytest.param(\n                {\"min_value\": 100, \"max_value\": 0},  # invalid range\n                id=\"invalid_range\",\n                marks=pytest.mark.xfail(reason=\"invalid range\"),\n            ),\n        ],\n    )\n)\ndef test_range(min_value: int, max_value: int, average: int) -> None:  # noqa: D103\n    assert min_value <= max_value\n    assert min_value <= average <= max_value\n\n\n@pytest.mark.parametrize(\n    \"defaults,cases,parametrize_kwargs,expected\",\n    [\n        pytest.param(\n            {\"min_value\": 0, \"max_value\": 100, \"average\": 50},\n            [\n                pytest.param(\n                    {},\n                    id=\"default_case\",\n                ),\n                pytest.param(\n                    {\"min_value\": 10},\n                    id=\"min_value_10\",\n                ),\n                pytest.param(\n                    {\"max_value\": 200},\n                    id=\"max_value_200\",\n                ),\n                pytest.param(\n                    {\"min_value\": -10, \"max_value\": 50},\n                    id=\"min_-10_max_50\",\n                ),\n                pytest.param(\n                    {\"min_value\": 20, \"max_value\": 80, \"average\": 50},\n                    id=\"min_20_max_80_avg_50\",\n                ),\n                pytest.param(\n                    {\"min_value\": 100, \"max_value\": 0},\n                    id=\"invalid_range\",\n                    marks=pytest.mark.xfail(reason=\"invalid range\"),\n                ),\n            ],\n            {},\n            {\n                \"argnames\": [\"min_value\", \"max_value\", \"average\"],\n                \"argvalues\": [\n                    pytest.param(0, 100, 50, id=\"default_case\"),\n                    pytest.param(10, 100, 50, id=\"min_value_10\"),\n                    pytest.param(0, 200, 50, id=\"max_value_200\"),\n                    pytest.param(-10, 50, 50, id=\"min_-10_max_50\"),\n                    pytest.param(20, 80, 50, id=\"min_20_max_80_avg_50\"),\n                    pytest.param(\n                        100,\n                        0,\n                        50,\n                        id=\"invalid_range\",\n                        marks=pytest.mark.xfail(reason=\"invalid range\"),\n                    ),\n                ],\n            },\n            id=\"defaults_and_cases_empty_parametrize_kwargs\",\n        ),\n        pytest.param(\n            {\"min_value\": 0, \"max_value\": 100, \"average\": 50},\n            [\n                pytest.param(\n                    {},\n                    id=\"default_case\",\n                ),\n                pytest.param(\n                    {\"min_value\": 10},\n                    id=\"min_value_10\",\n                ),\n            ],\n            {\"scope\": \"session\"},\n            {\n                \"argnames\": [\"min_value\", \"max_value\", \"average\"],\n                \"argvalues\": [\n                    pytest.param(0, 100, 50, id=\"default_case\"),\n                    pytest.param(10, 100, 50, id=\"min_value_10\"),\n                ],\n            },\n            id=\"defaults_and_cases_with_parametrize_kwargs\",\n        ),\n    ],\n)\ndef test_extend_with_defaults(\n    defaults: dict, cases: list, parametrize_kwargs: dict, expected: dict\n) -> None:  # noqa: D103\n    \"\"\"Test the extend_with_defaults function.\"\"\"\n    result = extend_with_defaults(defaults, cases, **parametrize_kwargs)\n    assert result[\"argnames\"] == expected[\"argnames\"]\n    assert result[\"argvalues\"] == expected[\"argvalues\"]\n    result.pop(\"argnames\")\n    result.pop(\"argvalues\")\n    assert result == parametrize_kwargs\n\n\ndef test_extend_with_defaults_raises_for_unknown_default() -> None:  # noqa: D103\n    with pytest.raises(\n        UnknownParameterInCasesError, match=\"only contain parameters present in defaults\"\n    ):\n        extend_with_defaults({\"a\": 0, \"b\": 1}, [pytest.param({\"c\": 2})])\n\n\n@pytest.mark.parametrize(\n    \"defaults, cases\",\n    [\n        pytest.param(\n            {\"param_1\": \"default1\"},\n            [pytest.param({\"param_1\": \"value1\"}, {\"param_2\": \"value2\"})],\n            id=\"multiple_values\",\n        ),\n        pytest.param(\n            {\"param_1\": \"default1\"},\n            [pytest.param(\"not_a_dict\")],\n            id=\"non_dict_value\",\n        ),\n    ],\n)\ndef test_extend_with_defaults_raises_value_error(defaults: dict, cases: list) -> None:  # noqa: D103\n    expected_message = \"each case must contain exactly one value; a dict of parameter values\"\n    with pytest.raises(ValueError, match=expected_message):\n        extend_with_defaults(defaults, cases)\n"
  },
  {
    "path": "src/ethereum_test_tools/utility/versioning.py",
    "content": "\"\"\"Utility module with helper functions for versioning.\"\"\"\n\nimport re\nfrom typing import Union\n\nfrom git import InvalidGitRepositoryError, Repo\n\n\ndef get_current_commit_hash_or_tag(repo_path: str = \".\", shorten_hash: bool = False) -> str:\n    \"\"\"\n    Get the latest commit tag or commit hash from the repository.\n\n    If a tag points to the current commit, return the tag name. If no tag\n    exists:\n      - If shorten_hash is True, return the first 8 characters of the\n        commit hash.\n      - Otherwise, return the full commit hash.\n    \"\"\"\n    try:\n        repo = Repo(repo_path)\n        current_commit = repo.head.commit\n        # Check if current commit has a tag using lookup\n        for tag in repo.tags:\n            if tag.commit == current_commit:\n                return tag.name\n        # No tag found, return commit hash\n        return current_commit.hexsha[:8] if shorten_hash else current_commit.hexsha\n    except InvalidGitRepositoryError:\n        # Handle the case where the repository is not a valid Git repository\n        return \"Not a git repository; this should only be seen in framework tests.\"\n\n\ndef generate_github_url(\n    file_path: str, branch_or_commit_or_tag: str = \"main\", line_number: Union[str, int] = \"\"\n) -> str:\n    \"\"\"Generate a permalink to a source file in Github.\"\"\"\n    base_url = \"https://github.com\"\n    username = \"ethereum\"\n    repository = \"execution-spec-tests\"\n    if line_number:\n        line_number = f\"#L{line_number}\"\n    release_tag_regex = r\"^v[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}(a[0-9]+|b[0-9]+|rc[0-9]+)?$\"\n    tree_or_blob = \"tree\" if re.match(release_tag_regex, branch_or_commit_or_tag) else \"blob\"\n    return (\n        f\"{base_url}/{username}/{repository}/{tree_or_blob}/\"\n        f\"{branch_or_commit_or_tag}/{file_path}{line_number}\"\n    )\n"
  },
  {
    "path": "src/ethereum_test_types/__init__.py",
    "content": "\"\"\"Common definitions and types.\"\"\"\n\nfrom .account_types import EOA, Alloc\nfrom .blob_types import Blob\nfrom .block_access_list import (\n    BalAccountChange,\n    BalBalanceChange,\n    BalCodeChange,\n    BalNonceChange,\n    BalStorageChange,\n    BalStorageSlot,\n    BlockAccessList,\n    BlockAccessListExpectation,\n)\nfrom .block_types import (\n    Environment,\n    EnvironmentDefaults,\n    Withdrawal,\n)\nfrom .chain_config_types import ChainConfig, ChainConfigDefaults\nfrom .helpers import (\n    TestParameterGroup,\n    add_kzg_version,\n    ceiling_division,\n    compute_create2_address,\n    compute_create_address,\n    compute_eofcreate_address,\n)\nfrom .phase_manager import TestPhase, TestPhaseManager\nfrom .receipt_types import TransactionReceipt\nfrom .request_types import (\n    ConsolidationRequest,\n    DepositRequest,\n    Requests,\n    WithdrawalRequest,\n)\nfrom .transaction_types import (\n    AuthorizationTuple,\n    NetworkWrappedTransaction,\n    Transaction,\n    TransactionDefaults,\n    TransactionTestMetadata,\n    TransactionType,\n)\nfrom .utils import Removable, keccak256\n\n__all__ = (\n    \"Alloc\",\n    \"AuthorizationTuple\",\n    \"BalAccountChange\",\n    \"BalBalanceChange\",\n    \"BalCodeChange\",\n    \"BalNonceChange\",\n    \"BalStorageChange\",\n    \"BalStorageSlot\",\n    \"Blob\",\n    \"BlockAccessList\",\n    \"BlockAccessListExpectation\",\n    \"ChainConfig\",\n    \"ChainConfigDefaults\",\n    \"ConsolidationRequest\",\n    \"DepositRequest\",\n    \"Environment\",\n    \"EnvironmentDefaults\",\n    \"EOA\",\n    \"NetworkWrappedTransaction\",\n    \"Removable\",\n    \"Requests\",\n    \"TestParameterGroup\",\n    \"TestPhase\",\n    \"TestPhaseManager\",\n    \"Transaction\",\n    \"TransactionDefaults\",\n    \"TransactionReceipt\",\n    \"TransactionTestMetadata\",\n    \"TransactionType\",\n    \"Withdrawal\",\n    \"WithdrawalRequest\",\n    \"add_kzg_version\",\n    \"ceiling_division\",\n    \"compute_create_address\",\n    \"compute_create2_address\",\n    \"compute_eofcreate_address\",\n    \"keccak256\",\n)\n"
  },
  {
    "path": "src/ethereum_test_types/account_types.py",
    "content": "\"\"\"Account-related types for Ethereum tests.\"\"\"\n\nimport json\nfrom dataclasses import dataclass, field\nfrom enum import Enum, auto\nfrom typing import Any, Dict, ItemsView, Iterator, List, Literal, Optional, Self, Tuple\n\nfrom coincurve.keys import PrivateKey\nfrom ethereum_types.bytes import Bytes20\nfrom ethereum_types.numeric import U256, Bytes32, Uint\nfrom pydantic import PrivateAttr\n\nfrom ethereum_test_base_types import (\n    Account,\n    Address,\n    Hash,\n    Number,\n    Storage,\n    StorageRootType,\n)\nfrom ethereum_test_base_types import Alloc as BaseAlloc\nfrom ethereum_test_base_types.conversions import (\n    BytesConvertible,\n    FixedSizeBytesConvertible,\n    NumberConvertible,\n)\nfrom ethereum_test_vm import EVMCodeType\n\nfrom .trie import EMPTY_TRIE_ROOT, FrontierAccount, Trie, root, trie_get, trie_set\nfrom .utils import keccak256\n\nFrontierAddress = Bytes20\n\n\n@dataclass\nclass State:\n    \"\"\"Contains all information that is preserved between transactions.\"\"\"\n\n    _main_trie: Trie[Bytes20, Optional[FrontierAccount]] = field(\n        default_factory=lambda: Trie(secured=True, default=None)\n    )\n    _storage_tries: Dict[Bytes20, Trie[Bytes32, U256]] = field(default_factory=dict)\n    _snapshots: List[\n        Tuple[\n            Trie[Bytes20, Optional[FrontierAccount]],\n            Dict[Bytes20, Trie[Bytes32, U256]],\n        ]\n    ] = field(default_factory=list)\n\n\ndef set_account(state: State, address: Bytes20, account: Optional[FrontierAccount]) -> None:\n    \"\"\"\n    Set the `Account` object at an address. Setting to `None` deletes the\n    account (but not its storage, see `destroy_account()`).\n    \"\"\"\n    trie_set(state._main_trie, address, account)\n\n\ndef set_storage(state: State, address: Bytes20, key: Bytes32, value: U256) -> None:\n    \"\"\"\n    Set a value at a storage key on an account. Setting to `U256(0)` deletes\n    the key.\n    \"\"\"\n    assert trie_get(state._main_trie, address) is not None\n\n    trie = state._storage_tries.get(address)\n    if trie is None:\n        trie = Trie(secured=True, default=U256(0))\n        state._storage_tries[address] = trie\n    trie_set(trie, key, value)\n    if trie._data == {}:\n        del state._storage_tries[address]\n\n\ndef storage_root(state: State, address: Bytes20) -> Bytes32:\n    \"\"\"Calculate the storage root of an account.\"\"\"\n    assert not state._snapshots\n    if address in state._storage_tries:\n        return root(state._storage_tries[address])\n    else:\n        return EMPTY_TRIE_ROOT\n\n\ndef state_root(state: State) -> Bytes32:\n    \"\"\"Calculate the state root.\"\"\"\n    assert not state._snapshots\n\n    def get_storage_root(address: Bytes20) -> Bytes32:\n        return storage_root(state, address)\n\n    return root(state._main_trie, get_storage_root=get_storage_root)\n\n\nclass EOA(Address):\n    \"\"\"\n    An Externally Owned Account (EOA) is an account controlled by a private\n    key.\n\n    The EOA is defined by its address and (optionally) by its corresponding\n    private key.\n    \"\"\"\n\n    key: Hash | None\n    nonce: Number\n\n    def __new__(\n        cls,\n        address: \"FixedSizeBytesConvertible | Address | EOA | None\" = None,\n        *,\n        key: FixedSizeBytesConvertible | None = None,\n        nonce: NumberConvertible = 0,\n    ) -> \"EOA\":\n        \"\"\"Init the EOA.\"\"\"\n        if address is None:\n            if key is None:\n                raise ValueError(\"impossible to initialize EOA without address\")\n            private_key = PrivateKey(Hash(key))\n            public_key = private_key.public_key\n            address = Address(keccak256(public_key.format(compressed=False)[1:])[32 - 20 :])\n        elif isinstance(address, EOA):\n            return address\n        instance = super(EOA, cls).__new__(cls, address)\n        instance.key = Hash(key) if key is not None else None\n        instance.nonce = Number(nonce)\n        return instance\n\n    def get_nonce(self) -> Number:\n        \"\"\"Return current nonce of the EOA and increments it by one.\"\"\"\n        nonce = self.nonce\n        self.nonce = Number(nonce + 1)\n        return nonce\n\n    def copy(self) -> Self:\n        \"\"\"Return copy of the EOA.\"\"\"\n        return self.__class__(Address(self), key=self.key, nonce=self.nonce)\n\n\nclass Alloc(BaseAlloc):\n    \"\"\"Allocation of accounts in the state, pre and post test execution.\"\"\"\n\n    _eoa_fund_amount_default: int = PrivateAttr(10**21)\n\n    @dataclass(kw_only=True)\n    class UnexpectedAccountError(Exception):\n        \"\"\"Unexpected account found in the allocation.\"\"\"\n\n        address: Address\n        account: Account | None\n\n        def __str__(self) -> str:\n            \"\"\"Print exception string.\"\"\"\n            return f\"unexpected account in allocation {self.address}: {self.account}\"\n\n    @dataclass(kw_only=True)\n    class MissingAccountError(Exception):\n        \"\"\"Expected account not found in the allocation.\"\"\"\n\n        address: Address\n\n        def __str__(self) -> str:\n            \"\"\"Print exception string.\"\"\"\n            return f\"Account missing from allocation {self.address}\"\n\n    @dataclass(kw_only=True)\n    class CollisionError(Exception):\n        \"\"\"Different accounts at the same address.\"\"\"\n\n        address: Address\n        account_1: Account | None\n        account_2: Account | None\n\n        def to_json(self) -> Dict[str, Any]:\n            \"\"\"Dump to json object.\"\"\"\n            return {\n                \"address\": self.address.hex(),\n                \"account_1\": self.account_1.model_dump(mode=\"json\")\n                if self.account_1 is not None\n                else None,\n                \"account_2\": self.account_2.model_dump(mode=\"json\")\n                if self.account_2 is not None\n                else None,\n            }\n\n        @classmethod\n        def from_json(cls, obj: Dict[str, Any]) -> Self:\n            \"\"\"Parse from a json dict.\"\"\"\n            return cls(\n                address=Address(obj[\"address\"]),\n                account_1=Account.model_validate(obj[\"account_1\"])\n                if obj[\"account_1\"] is not None\n                else None,\n                account_2=Account.model_validate(obj[\"account_2\"])\n                if obj[\"account_2\"] is not None\n                else None,\n            )\n\n        def __str__(self) -> str:\n            \"\"\"Print exception string.\"\"\"\n            return (\n                \"Overlapping key defining different accounts detected:\\n\"\n                f\"{json.dumps(self.to_json(), indent=2)}\"\n            )\n\n    class KeyCollisionMode(Enum):\n        \"\"\"Mode for handling key collisions when merging allocations.\"\"\"\n\n        ERROR = auto()\n        OVERWRITE = auto()\n        ALLOW_IDENTICAL_ACCOUNTS = auto()\n\n    @classmethod\n    def merge(\n        cls,\n        alloc_1: \"Alloc\",\n        alloc_2: \"Alloc\",\n        key_collision_mode: KeyCollisionMode = KeyCollisionMode.OVERWRITE,\n    ) -> \"Alloc\":\n        \"\"\"Return merged allocation of two sources.\"\"\"\n        overlapping_keys = alloc_1.root.keys() & alloc_2.root.keys()\n        if overlapping_keys:\n            if key_collision_mode == cls.KeyCollisionMode.ERROR:\n                raise Exception(\n                    f\"Overlapping keys detected: {[key.hex() for key in overlapping_keys]}\"\n                )\n            elif key_collision_mode == cls.KeyCollisionMode.ALLOW_IDENTICAL_ACCOUNTS:\n                # The overlapping keys must point to the exact same account\n                for key in overlapping_keys:\n                    account_1 = alloc_1[key]\n                    account_2 = alloc_2[key]\n                    if account_1 != account_2:\n                        raise Alloc.CollisionError(\n                            address=key,\n                            account_1=account_1,\n                            account_2=account_2,\n                        )\n        merged = alloc_1.model_dump()\n\n        for address, other_account in alloc_2.root.items():\n            merged_account = Account.merge(merged.get(address, None), other_account)\n            if merged_account:\n                merged[address] = merged_account\n            elif address in merged:\n                merged.pop(address, None)\n\n        return Alloc(merged)\n\n    def __iter__(self) -> Iterator[Address]:  # type: ignore [override]\n        \"\"\"Return iterator over the allocation.\"\"\"\n        return iter(self.root)\n\n    def items(self) -> ItemsView[Address, Account | None]:\n        \"\"\"Return iterator over the allocation items.\"\"\"\n        return self.root.items()\n\n    def __getitem__(self, address: Address | FixedSizeBytesConvertible) -> Account | None:\n        \"\"\"Return account associated with an address.\"\"\"\n        if not isinstance(address, Address):\n            address = Address(address)\n        return self.root[address]\n\n    def __setitem__(\n        self, address: Address | FixedSizeBytesConvertible, account: Account | None\n    ) -> None:\n        \"\"\"Set account associated with an address.\"\"\"\n        if not isinstance(address, Address):\n            address = Address(address)\n        self.root[address] = account\n\n    def __delitem__(self, address: Address | FixedSizeBytesConvertible) -> None:\n        \"\"\"Delete account associated with an address.\"\"\"\n        if not isinstance(address, Address):\n            address = Address(address)\n        self.root.pop(address, None)\n\n    def __eq__(self, other: object) -> bool:\n        \"\"\"Return True if both allocations are equal.\"\"\"\n        if not isinstance(other, Alloc):\n            return False\n        return self.root == other.root\n\n    def __contains__(self, address: Address | FixedSizeBytesConvertible) -> bool:\n        \"\"\"Check if an account is in the allocation.\"\"\"\n        if not isinstance(address, Address):\n            address = Address(address)\n        return address in self.root\n\n    def empty_accounts(self) -> List[Address]:\n        \"\"\"Return list of addresses of empty accounts.\"\"\"\n        return [address for address, account in self.root.items() if not account]\n\n    def state_root(self) -> Hash:\n        \"\"\"Return state root of the allocation.\"\"\"\n        state = State()\n        for address, account in self.root.items():\n            if account is None:\n                continue\n            set_account(\n                state=state,\n                address=FrontierAddress(address),\n                account=FrontierAccount(\n                    nonce=Uint(account.nonce) if account.nonce is not None else Uint(0),\n                    balance=(U256(account.balance) if account.balance is not None else U256(0)),\n                    code=account.code if account.code is not None else b\"\",\n                ),\n            )\n            if account.storage is not None:\n                for key, value in account.storage.root.items():\n                    set_storage(\n                        state=state,\n                        address=FrontierAddress(address),\n                        key=Bytes32(Hash(key)),\n                        value=U256(value),\n                    )\n        return Hash(state_root(state))\n\n    def verify_post_alloc(self, got_alloc: \"Alloc\") -> None:\n        \"\"\"\n        Verify that the allocation matches the expected post in the test.\n        Raises exception on unexpected values.\n        \"\"\"\n        assert isinstance(got_alloc, Alloc), f\"got_alloc is not an Alloc: {got_alloc}\"\n        for address, account in self.root.items():\n            if account is None:\n                # Account must not exist\n                if address in got_alloc.root and got_alloc.root[address] is not None:\n                    raise Alloc.UnexpectedAccountError(\n                        address=address, account=got_alloc.root[address]\n                    )\n            else:\n                if address in got_alloc.root:\n                    got_account = got_alloc.root[address]\n                    assert isinstance(got_account, Account)\n                    assert isinstance(account, Account)\n                    account.check_alloc(address, got_account)\n                else:\n                    raise Alloc.MissingAccountError(address=address)\n\n    def deploy_contract(\n        self,\n        code: BytesConvertible,\n        *,\n        storage: Storage | StorageRootType | None = None,\n        balance: NumberConvertible = 0,\n        nonce: NumberConvertible = 1,\n        address: Address | None = None,\n        evm_code_type: EVMCodeType | None = None,\n        label: str | None = None,\n        stub: str | None = None,\n    ) -> Address:\n        \"\"\"Deploy a contract to the allocation.\"\"\"\n        raise NotImplementedError(\"deploy_contract is not implemented in the base class\")\n\n    def fund_eoa(\n        self,\n        amount: NumberConvertible | None = None,\n        label: str | None = None,\n        storage: Storage | None = None,\n        delegation: Address | Literal[\"Self\"] | None = None,\n        nonce: NumberConvertible | None = None,\n    ) -> EOA:\n        \"\"\"\n        Add a previously unused EOA to the pre-alloc with the balance specified\n        by `amount`.\n        \"\"\"\n        raise NotImplementedError(\"fund_eoa is not implemented in the base class\")\n\n    def fund_address(self, address: Address, amount: NumberConvertible) -> None:\n        \"\"\"\n        Fund an address with a given amount.\n\n        If the address is already present in the pre-alloc the amount will be\n        added to its existing balance.\n        \"\"\"\n        raise NotImplementedError(\"fund_address is not implemented in the base class\")\n\n    def empty_account(self) -> Address:\n        \"\"\"\n        Return a previously unused account guaranteed to be empty.\n\n        This ensures the account has zero balance, zero nonce, no code, and no\n        storage. The account is not a precompile or a system contract.\n        \"\"\"\n        raise NotImplementedError(\"empty_account is not implemented in the base class\")\n"
  },
  {
    "path": "src/ethereum_test_types/blob_types.py",
    "content": "\"\"\"Blob-related types for Ethereum tests.\"\"\"\n\nimport random\nfrom enum import Enum\nfrom hashlib import sha256\nfrom os.path import realpath\nfrom pathlib import Path\nfrom typing import Any, ClassVar, List, Literal, cast\n\nimport ckzg  # type: ignore\nimport platformdirs\nfrom filelock import FileLock\n\nfrom ethereum_test_base_types.base_types import Bytes, Hash\nfrom ethereum_test_base_types.pydantic import CamelModel\nfrom ethereum_test_forks import Fork\nfrom pytest_plugins.custom_logging import get_logger\n\nCACHED_BLOBS_DIRECTORY: Path = (\n    Path(platformdirs.user_cache_dir(\"ethereum-execution-spec-tests\")) / \"cached_blobs\"\n)\nlogger = get_logger(__name__)\n\n\ndef clear_blob_cache(cached_blobs_folder_path: Path) -> None:\n    \"\"\"Delete all cached blobs.\"\"\"\n    if not cached_blobs_folder_path.is_dir():\n        return\n\n    json_files = list(cached_blobs_folder_path.glob(\"*.json\"))\n\n    for f in json_files:\n        lock_file_path = f.with_suffix(\".lock\")\n\n        try:\n            # get file lock for what you want to delete\n            with FileLock(lock_file_path):\n                f.unlink()\n        except Exception as e:\n            print(\n                f\"Error while trying to delete file {f}:{e}. \"\n                \"Aborting clearing of blob cache folder.\"\n            )\n            return\n\n\nclass Blob(CamelModel):\n    \"\"\"Class representing a full blob.\"\"\"\n\n    data: Bytes\n    commitment: Bytes\n    proof: List[Bytes] | Bytes  # Bytes < Osaka, List[Bytes] >= Osaka\n    # None (in json: null) < Osaka, List[Bytes] >= Osaka\n    cells: List[Bytes] | None\n\n    versioned_hash: Hash\n    name: str\n    fork: Fork\n    seed: int\n    timestamp: int  # fork transitions require timestamp >= 15000 to occur\n\n    _trusted_setup: ClassVar[Any | None] = None\n\n    @classmethod\n    def trusted_setup(cls) -> Any:\n        \"\"\"Set trusted setup if it is not already set.\"\"\"\n        if cls._trusted_setup is None:\n            trusted_setup_path = Path(realpath(__file__)).parent / \"kzg_trusted_setup.txt\"\n            trusted_setup = ckzg.load_trusted_setup(str(trusted_setup_path), 0)\n            cls._trusted_setup = trusted_setup\n\n        return cls._trusted_setup\n\n    @staticmethod\n    def get_filename(fork: Fork, seed: int) -> str:\n        \"\"\"\n        Return filename this blob would have as string (with .json extension).\n        \"\"\"\n        amount_cell_proofs: int = cast(int, fork.get_blob_constant(\"AMOUNT_CELL_PROOFS\"))\n        return \"blob_\" + str(seed) + \"_cell_proofs_\" + str(amount_cell_proofs) + \".json\"\n\n    @staticmethod\n    def get_filepath(fork: Fork, seed: int) -> Path:\n        \"\"\"\n        Return the Path to the blob that would be created with these\n        parameters.\n        \"\"\"\n        # determine amount of cell proofs for this fork (0 or 128)\n        would_be_filename: str = Blob.get_filename(fork, seed)\n\n        # return path to blob\n        return CACHED_BLOBS_DIRECTORY / would_be_filename\n\n    @staticmethod\n    def from_fork(fork: Fork, seed: int = 0, timestamp: int = 0) -> \"Blob\":\n        \"\"\"\n        Construct Blob instances. Fork logic is encapsulated within nested\n        functions.\n        \"\"\"\n\n        def generate_blob_data(rng_seed: int = 0) -> Bytes:\n            \"\"\"Calculate blob data deterministically via provided seed.\"\"\"\n            # create local (independent) RNG object seeded with rng_seed\n            rng = random.Random(rng_seed)\n\n            # generate blob\n            ints: list[int] = [\n                rng.randrange(cast(int, fork.get_blob_constant(\"BLS_MODULUS\")))\n                for _ in range(cast(int, fork.get_blob_constant(\"FIELD_ELEMENTS_PER_BLOB\")))\n            ]\n\n            encoded: list[bytes] = [\n                i.to_bytes(\n                    cast(int, fork.get_blob_constant(\"BYTES_PER_FIELD_ELEMENT\")),\n                    cast(Literal[\"big\"], fork.get_blob_constant(\"KZG_ENDIANNESS\")),\n                )\n                for i in ints\n            ]\n            blob: bytes = b\"\".join(encoded)  # without 0x\n\n            return Bytes(blob)\n\n        def get_versioned_hash(commitment: Bytes, version: int = 1) -> Hash:\n            \"\"\"Calculate versioned hash for a given blob.\"\"\"\n            return Hash(bytes([version]) + sha256(commitment).digest()[1:])\n\n        def get_commitment(data: Bytes) -> Bytes:\n            \"\"\"\n            Take a blob and returns a cryptographic commitment to it.\n\n            Note: Each cell holds the exact same copy of this commitment.\n            \"\"\"\n            # sanity check\n            field_elements: int = cast(int, fork.get_blob_constant(\"FIELD_ELEMENTS_PER_BLOB\"))\n            bytes_per_field: int = cast(int, fork.get_blob_constant(\"BYTES_PER_FIELD_ELEMENT\"))\n            assert len(data) == field_elements * bytes_per_field, (\n                f\"Expected blob of length \"\n                f\"{field_elements * bytes_per_field} but got blob of length {len(data)}\"\n            )\n\n            # calculate commitment\n            commitment = ckzg.blob_to_kzg_commitment(data, Blob.trusted_setup())\n            assert len(commitment) == fork.get_blob_constant(\"BYTES_PER_COMMITMENT\"), (\n                f\"Expected {fork.get_blob_constant('BYTES_PER_COMMITMENT')} \"\n                f\"resulting commitments but got {len(commitment)} commitments\"\n            )\n\n            return commitment\n\n        def get_proof(fork: Fork, data: Bytes) -> List[Bytes] | Bytes:\n            # determine whether this fork is <osaka or >= osaka by looking at\n            # amount of cell_proofs\n            amount_cell_proofs = fork.get_blob_constant(\"AMOUNT_CELL_PROOFS\")\n\n            # cancun, prague\n            if amount_cell_proofs == 0:\n                z = 2  # 2 is one of many possible valid field elements z\n                # https://github.com/ethereum/consensus-specs/blob/ad884507f\n                #  7a1d5962cd3dfb5f7b3e41aab728c55/tests/core/pyspec/eth2spec/\n                #  test/utils/kzg_tests.py#L58-L66)\n                z_valid_size: bytes = z.to_bytes(\n                    cast(int, fork.get_blob_constant(\"BYTES_PER_FIELD_ELEMENT\")), byteorder=\"big\"\n                )\n                proof, _ = ckzg.compute_kzg_proof(data, z_valid_size, Blob.trusted_setup())\n                return proof\n\n            # >=osaka\n            if amount_cell_proofs == 128:\n                _, proofs = ckzg.compute_cells_and_kzg_proofs(\n                    data, Blob.trusted_setup()\n                )  # returns List[byte] of length 128\n                return proofs\n\n            raise AssertionError(\n                f\"get_proof() has not been implemented yet for fork: {fork.name()}.\"\n                f\"Got amount of cell proofs {amount_cell_proofs} but expected 128.\"\n            )\n\n        def get_cells(fork: Fork, data: Bytes) -> List[Bytes] | None:\n            # determine whether this fork is <osaka or >= osaka by looking at\n            # amount of cell_proofs\n            amount_cell_proofs = fork.get_blob_constant(\"AMOUNT_CELL_PROOFS\")\n\n            # cancun, prague\n            if amount_cell_proofs == 0:\n                return None\n\n            # >=osaka\n            if amount_cell_proofs == 128:\n                cells, _ = ckzg.compute_cells_and_kzg_proofs(\n                    data, Blob.trusted_setup()\n                )  # returns List[byte] of length 128\n                return cells  # List[bytes]\n\n            raise AssertionError(\n                f\"get_cells() has not been implemented yet for fork: {fork.name()}. Got amount of \"\n                f\"cell proofs {amount_cell_proofs} but expected 128.\"\n            )\n\n        # first, create cached blobs dir if necessary\n        if not CACHED_BLOBS_DIRECTORY.exists():\n            CACHED_BLOBS_DIRECTORY.mkdir(\n                parents=True, exist_ok=True\n            )  # create all necessary dirs on the way\n\n        # handle transition forks (blob related constants are needed and only\n        # available for normal forks)\n        fork = fork.fork_at(timestamp=timestamp)\n\n        # if this blob already exists then load from file. use lock\n        blob_location: Path = Blob.get_filepath(fork, seed)\n\n        # use lock to avoid race conditions\n        lock_file_path = blob_location.with_suffix(\".lock\")\n        with FileLock(lock_file_path):\n            if blob_location.exists():\n                logger.debug(f\"Blob exists already, reading it from file {blob_location}\")\n                return Blob.from_file(Blob.get_filename(fork, seed))\n\n        assert fork.supports_blobs(), f\"Provided fork {fork.name()} does not support blobs!\"\n\n        # get data for blob parameters\n        data: Bytes = generate_blob_data(seed)\n        commitment: Bytes = get_commitment(data)\n        proof: List[Bytes] | Bytes = get_proof(fork, data)\n        cells: List[Bytes] | None = get_cells(fork, data)\n        versioned_hash: Hash = get_versioned_hash(commitment)\n        name: str = Blob.get_filename(fork, seed)\n\n        blob = Blob(\n            data=data,\n            commitment=commitment,\n            proof=proof,\n            cells=cells,\n            versioned_hash=versioned_hash,\n            name=name,\n            fork=fork,\n            seed=seed,\n            timestamp=timestamp,\n        )\n        # for most effective caching temporarily persist every blob that is\n        # created in cache\n        blob.write_to_file()\n\n        return blob\n\n    @staticmethod\n    def from_file(file_name: str) -> \"Blob\":\n        \"\"\"\n        Read a .json file and reconstruct object it represents.\n\n        You can load a blob only via its filename (with or without .json\n        extension).\n        \"\"\"\n        # ensure filename was passed\n        assert file_name.startswith(\"blob_\"), (\n            f\"You provided an invalid blob filename. Expected it to start with 'blob_' \"\n            f\"but got: {file_name}\"\n        )\n\n        if \".json\" not in file_name:\n            file_name = file_name + \".json\"\n\n        # determine path where this blob would be stored if it existed\n        blob_file_location = CACHED_BLOBS_DIRECTORY / file_name\n\n        # check whether blob exists\n        assert blob_file_location.exists(), (\n            f\"Tried to load blob from file but {blob_file_location} does not exist\"\n        )\n\n        # read blob from file\n        with open(blob_file_location, \"r\", encoding=\"utf-8\") as f:\n            json_str: str = f.read()\n\n        # reconstruct and return blob object\n        return Blob.model_validate_json(json_str)\n\n    def write_to_file(self) -> None:\n        \"\"\"Take a blob object, serialize it and write it to disk as json.\"\"\"\n        json_str = self.model_dump_json()\n        output_location = Blob.get_filepath(self.fork, self.seed)\n\n        # use lock to avoid race conditions\n        lock_file_path = output_location.with_suffix(\".lock\")\n        with FileLock(lock_file_path):\n            # warn if existing static_blob gets overwritten\n            if output_location.exists():\n                logger.debug(f\"Blob {output_location} already exists. It will be overwritten.\")\n\n            # overwrite existing\n            with open(output_location, \"w\", encoding=\"utf-8\") as f:\n                f.write(json_str)\n\n    def verify_cell_kzg_proof_batch(self, cell_indices: list) -> bool:\n        \"\"\"\n        Check whether all cell proofs are valid and returns True only if that\n        is the case.\n        \"\"\"\n        amount_cell_proofs: int = cast(int, self.fork.get_blob_constant(\"AMOUNT_CELL_PROOFS\"))\n\n        assert amount_cell_proofs > 0, (\n            f\"verify_cell_kzg_proof_batch() is not available for your fork: {self.fork.name()}.\"\n        )\n\n        assert self.cells is not None, \"self.cells is None, critical error.\"\n\n        assert len(cell_indices) == len(self.cells), (\n            f\"Cell Indices list (detected length {len(cell_indices)}) and Cell list \"\n            f\"(detected length {len(self.cells)}) should have same length.\"\n        )\n\n        # each cell refers to the same commitment\n        commitments: list[bytes] = [self.commitment] * len(cell_indices)\n\n        is_valid = ckzg.verify_cell_kzg_proof_batch(\n            commitments, cell_indices, self.cells, self.proof, Blob.trusted_setup()\n        )\n\n        return is_valid\n\n    def delete_cells_then_recover_them(self, deletion_indices: list[int]) -> None:\n        \"\"\"\n        Simulate the cell recovery process in user-specified scenario.\n\n        Note: Requirement for successful reconstruction is having at least N of\n        the 2N cells.\n\n        Theoretical Usage: You pass a cell list with to 128 elements to this\n        function along with a list of deletion indices. These cells will be\n        deleted and then the ckzg recovery mechanism is used to repair the\n        missing cells. If no assertion is triggered the reconstruction was\n        successful.\n        \"\"\"\n        amount_cell_proofs: int = cast(int, self.fork.get_blob_constant(\"AMOUNT_CELL_PROOFS\"))\n\n        assert amount_cell_proofs > 0, (\n            f\"delete_cells_then_recover_them() is not available for fork: {self.fork.name()}\"\n        )\n\n        assert self.cells is not None, \"self.cells is None, critical problem.\"\n\n        assert isinstance(self.proof, list), (\n            \"This function only works when self.proof is a list, but it seems to be \"\n            \" of type bytes (not a list)\"\n        )\n\n        assert len(self.cells) == 128, (\n            f\"You are supposed to pass a full cell list with 128 elements to this function, \"\n            f\"but got list of length {len(self.cells)}\"\n        )\n\n        assert len(deletion_indices) < 129, (\n            f\"You can't delete more than every cell (max len of deletion indices list is 128), \"\n            f\"but you passed a deletion indices list of length {len(deletion_indices)}\"\n        )\n        for i in deletion_indices:\n            assert 0 <= i <= 127, f\"Expected integers in range [0, 127], but got: {i}\"\n\n        # delete cells\n        all_cell_indices: list[int] = list(range(128))\n        remaining_indices: list[int] = [i for i in all_cell_indices if i not in deletion_indices]\n        remaining_cells = [c for i, c in enumerate(self.cells) if i not in deletion_indices]\n\n        recovered_cells, recovered_proofs = ckzg.recover_cells_and_kzg_proofs(\n            remaining_indices, remaining_cells, Blob.trusted_setup()\n        )  # on success returns two lists of len 128\n\n        # determine success/failure\n        assert len(recovered_cells) == len(self.cells), (\n            f\"Failed to recover cell list. Original cell list had length {len(self.cells)} but \"\n            f\"recovered cell list has length {len(recovered_cells)}\"\n        )\n        assert len(recovered_proofs) == len(self.proof), (\n            f\"Failed to recover proofs list. Original proofs list had length {len(self.proof)} \"\n            f\"but recovered proofs list has length {len(recovered_proofs)}\"\n        )\n\n        for i in range(len(recovered_cells)):\n            assert self.cells[i] == recovered_cells[i], (\n                f\"Failed to correctly restore missing cells. At index {i} original cell was \"\n                f\"0x{self.cells[i].hex()} but reconstructed cell does not match: \"\n                f\"0x{recovered_cells[i].hex()}\"\n            )\n            assert self.proof[i] == recovered_proofs[i], (\n                f\"Failed to correctly restore missing proofs. At index {i} original proof was \"\n                f\"0x{self.proof[i].hex()} but reconstructed proof does not match: \"\n                f\"0x{recovered_proofs[i].hex()}\"\n            )\n\n    class ProofCorruptionMode(Enum):\n        \"\"\"\n        Define what the proof corruption modes do.\n\n        For Osaka and later each Bytes object in the list is manipulated this\n        way.\n        \"\"\"\n\n        CORRUPT_FIRST_BYTE = 1  # corrupts a single byte (index 0)\n        CORRUPT_LAST_BYTE = 2  # corrupts a single byte (last valid index)\n        CORRUPT_TO_ALL_ZEROES = 3  # sets all proof bytes to 0\n        CORRUPT_ALL_BYTES = 4  # corrupts all bytes\n\n    def corrupt_proof(self, mode: ProofCorruptionMode) -> None:\n        \"\"\"Corrupt the proof field, supports different corruption modes.\"\"\"\n\n        def corrupt_byte(b: bytes) -> Bytes:\n            \"\"\"\n            Bit-flip all bits of provided byte using XOR to guarantee change.\n            \"\"\"\n            if len(b) != 1:\n                raise ValueError(\"Input must be a single byte\")\n            return Bytes(bytes([b[0] ^ 0xFF]))\n\n        # >=osaka\n        amount_cell_proofs: int = cast(int, self.fork.get_blob_constant(\"AMOUNT_CELL_PROOFS\"))\n        if amount_cell_proofs > 0:\n            assert isinstance(self.proof, list), \"proof was expected to be a list but it isn't\"\n\n            if mode == self.ProofCorruptionMode.CORRUPT_FIRST_BYTE:\n                for i in range(len(self.proof)):\n                    b: Bytes = self.proof[i]\n                    corrupted: Bytes = Bytes(corrupt_byte(b[:1]) + b[1:])\n                    self.proof[i] = corrupted\n            elif mode == self.ProofCorruptionMode.CORRUPT_LAST_BYTE:\n                for i in range(len(self.proof)):\n                    b = self.proof[i]\n                    corrupted = Bytes(b[:-1] + corrupt_byte(b[-1:]))\n                    self.proof[i] = corrupted\n            elif mode == self.ProofCorruptionMode.CORRUPT_TO_ALL_ZEROES:\n                for i in range(len(self.proof)):\n                    self.proof[i] = Bytes(bytes(len(self.proof[i])))\n            elif mode == self.ProofCorruptionMode.CORRUPT_ALL_BYTES:\n                for i in range(len(self.proof)):\n                    b = self.proof[i]\n                    corrupted_bytes = Bytes(b\"\".join(corrupt_byte(bytes([byte])) for byte in b))\n                    self.proof[i] = corrupted_bytes\n            return\n\n        # pre-osaka (cancun and prague)\n        assert amount_cell_proofs == 0, (\n            f\"You need to adjust corrupt_proof to handle fork {self.fork.name()}\"\n        )\n        assert isinstance(self.proof, Bytes), \"proof was expected to be Bytes but it isn't\"\n\n        if mode == self.ProofCorruptionMode.CORRUPT_FIRST_BYTE:\n            self.proof = Bytes(corrupt_byte(self.proof[:1]) + self.proof[1:])\n        elif mode == self.ProofCorruptionMode.CORRUPT_LAST_BYTE:\n            self.proof = Bytes(self.proof[:-1] + corrupt_byte(self.proof[-1:]))\n        elif mode == self.ProofCorruptionMode.CORRUPT_TO_ALL_ZEROES:\n            self.proof = Bytes(bytes(len(self.proof)))\n        elif mode == self.ProofCorruptionMode.CORRUPT_ALL_BYTES:\n            self.proof = Bytes(b\"\".join(corrupt_byte(bytes([byte])) for byte in self.proof))\n"
  },
  {
    "path": "src/ethereum_test_types/block_access_list/__init__.py",
    "content": "\"\"\"\nBlock Access List (BAL) models for EIP-7928.\n\nFollowing the established pattern in the codebase (AccessList,\nAuthorizationTuple), these are simple data classes that can be composed\ntogether.\n\"\"\"\n\nfrom .account_absent_values import BalAccountAbsentValues\nfrom .account_changes import (\n    BalAccountChange,\n    BalBalanceChange,\n    BalCodeChange,\n    BalNonceChange,\n    BalStorageChange,\n    BalStorageSlot,\n    BlockAccessListChangeLists,\n)\nfrom .exceptions import BlockAccessListValidationError\nfrom .expectations import (\n    BalAccountExpectation,\n    BlockAccessListExpectation,\n    compose,\n)\nfrom .t8n import BlockAccessList\n\n__all__ = [\n    # Core models\n    \"BlockAccessList\",\n    \"BlockAccessListExpectation\",\n    \"BalAccountExpectation\",\n    \"BalAccountAbsentValues\",\n    # Change types\n    \"BalAccountChange\",\n    \"BalNonceChange\",\n    \"BalBalanceChange\",\n    \"BalCodeChange\",\n    \"BalStorageChange\",\n    \"BalStorageSlot\",\n    # Utilities\n    \"BlockAccessListChangeLists\",\n    \"BlockAccessListValidationError\",\n    \"compose\",\n]\n"
  },
  {
    "path": "src/ethereum_test_types/block_access_list/account_absent_values.py",
    "content": "\"\"\"\nBalAccountAbsentValues class for BAL testing.\n\nThis module provides a unified class for specifying explicit absent values\nin Block Access Lists. This class uses the same change classes as\nBalAccountChanges to specify specific values that should NOT exist in the BAL.\nFor checking complete absence, use BalAccountExpectation with empty lists\ninstead.\n\"\"\"\n\nfrom typing import Any, List\n\nfrom pydantic import Field, model_validator\n\nfrom ethereum_test_base_types import CamelModel, StorageKey\n\nfrom .account_changes import (\n    BalAccountChange,\n    BalBalanceChange,\n    BalCodeChange,\n    BalNonceChange,\n    BalStorageSlot,\n)\nfrom .exceptions import BlockAccessListValidationError\n\nEMPTY_LIST_ERROR_MSG = (\n    \"Empty lists are not allowed. This would mean 'check for any change' and \"\n    \"is bad practice. Instead, use the `BalAccountExpectation` to define \"\n    \"explicit, expected changes.\"\n)\n\n\nclass BalAccountAbsentValues(CamelModel):\n    \"\"\"\n    Represents explicit absent value expectations for a specific account\n    in a block.\n\n    This class specifies specific changes that should NOT exist in the BAL\n    for a given account.\n\n    IMPORTANT: This class is for checking that specific values are absent,\n    NOT for checking that entire categories are empty. For complete\n    absence checks (e.g., \"no nonce changes at all\"), use\n    BalAccountExpectation with empty lists instead.\n\n    The validation works by checking that none of the specified\n    explicit changes exist in the actual BAL.\n\n    Example:\n        # Forbid specific nonce change at tx 1 with post_nonce=5, and specific\n        # storage change\n        absent_values = BalAccountAbsentValues(\n            nonce_changes=[\n                # Forbid exact nonce change at this tx\n                BalNonceChange(tx_index=1, post_nonce=5),\n            ],\n            storage_changes=[\n                BalStorageSlot(\n                    slot=0x42,\n                    slot_changes=[\n                        # Forbid exact storage change at this slot and tx\n                        BalStorageChange(tx_index=2, post_value=0x99)\n                    ],\n                )\n            ],\n        )\n\n    For checking complete absence:\n        # Use BalAccountExpectation with empty lists instead\n        expectation = BalAccountExpectation(\n            nonce_changes=[],  # Expect NO nonce changes at all\n            storage_changes=[],  # Expect NO storage changes at all\n        )\n\n    \"\"\"\n\n    model_config = CamelModel.model_config | {\"extra\": \"forbid\"}\n\n    nonce_changes: List[BalNonceChange] = Field(\n        default_factory=list,\n        description=\"List of nonce changes that should NOT exist in the BAL. \"\n        \"Validates that none of these changes are present.\",\n    )\n    balance_changes: List[BalBalanceChange] = Field(\n        default_factory=list,\n        description=\"List of balance changes that should NOT exist in the BAL. \"\n        \"Validates that none of these changes are present.\",\n    )\n    code_changes: List[BalCodeChange] = Field(\n        default_factory=list,\n        description=\"List of code changes that should NOT exist in the BAL. \"\n        \"Validates that none of these changes are present.\",\n    )\n    storage_changes: List[BalStorageSlot] = Field(\n        default_factory=list,\n        description=\"List of storage slots/changes that should NOT exist in the BAL. \"\n        \"Validates that none of these changes are present.\",\n    )\n    storage_reads: List[StorageKey] = Field(\n        default_factory=list,\n        description=\"List of storage slots that should NOT be read.\",\n    )\n\n    @model_validator(mode=\"after\")\n    def validate_specific_absences_only(self) -> \"BalAccountAbsentValues\":\n        \"\"\"Ensure absence fields contain specific values, not empty checks.\"\"\"\n        # at least one field must have content\n        if not any(\n            [\n                self.nonce_changes,\n                self.balance_changes,\n                self.code_changes,\n                self.storage_changes,\n                self.storage_reads,\n            ]\n        ):\n            raise ValueError(\n                \"At least one absence field must be specified. \"\n                \"`BalAccountAbsentValues` is for checking specific forbidden values. \"\n                f\"{EMPTY_LIST_ERROR_MSG}\"\n            )\n\n        # check that no fields are explicitly set to empty lists\n        field_checks = [\n            (\"nonce_changes\", self.nonce_changes),\n            (\"balance_changes\", self.balance_changes),\n            (\"code_changes\", self.code_changes),\n            (\"storage_changes\", self.storage_changes),\n            (\"storage_reads\", self.storage_reads),\n        ]\n\n        for field_name, field_value in field_checks:\n            if field_name in self.model_fields_set and field_value == []:\n                raise ValueError(\n                    f\"`BalAccountAbsentValues.{field_name}` cannot be an empty list. \"\n                    f\"{EMPTY_LIST_ERROR_MSG}\"\n                )\n\n        # validate that storage_changes don't have empty slot_changes\n        for storage_slot in self.storage_changes:\n            if not storage_slot.slot_changes:\n                raise ValueError(\n                    f\"`BalAccountAbsentValues.storage_changes[{storage_slot.slot}].slot_changes` \"\n                    f\"cannot be an empty list. {EMPTY_LIST_ERROR_MSG}\"\n                )\n\n        return self\n\n    @staticmethod\n    def _validate_forbidden_changes(\n        actual_changes: List,\n        forbidden_changes: List,\n        match_fn: Any,\n        error_msg_fn: Any,\n    ) -> None:\n        for actual in actual_changes:\n            for forbidden in forbidden_changes:\n                if match_fn(actual, forbidden):\n                    raise BlockAccessListValidationError(error_msg_fn(actual))\n\n    def validate_against(self, account: BalAccountChange) -> None:\n        \"\"\"\n        Validate that the account does not contain the forbidden changes\n        specified in this object.\n\n        Args:\n            account: The BalAccountChange to validate against\n\n        Raises:\n            BlockAccessListValidationError: If any forbidden changes are found\n\n        \"\"\"\n        self._validate_forbidden_changes(\n            account.nonce_changes,\n            self.nonce_changes,\n            lambda a, f: a.tx_index == f.tx_index and a.post_nonce == f.post_nonce,\n            lambda a: f\"Unexpected nonce change found at tx {a.tx_index}\",\n        )\n        self._validate_forbidden_changes(\n            account.balance_changes,\n            self.balance_changes,\n            lambda a, f: a.tx_index == f.tx_index and a.post_balance == f.post_balance,\n            lambda a: f\"Unexpected balance change found at tx {a.tx_index}\",\n        )\n        self._validate_forbidden_changes(\n            account.code_changes,\n            self.code_changes,\n            lambda a, f: a.tx_index == f.tx_index and a.new_code == f.new_code,\n            lambda a: f\"Unexpected code change found at tx {a.tx_index}\",\n        )\n\n        for forbidden_storage_slot in self.storage_changes:\n            for actual_storage_slot in account.storage_changes:\n                if actual_storage_slot.slot == forbidden_storage_slot.slot:\n                    slot_id = actual_storage_slot.slot\n                    self._validate_forbidden_changes(\n                        actual_storage_slot.slot_changes,\n                        forbidden_storage_slot.slot_changes,\n                        lambda a, f: (a.tx_index == f.tx_index and a.post_value == f.post_value),\n                        lambda a, slot=slot_id: (\n                            f\"Unexpected storage change found at slot {slot} in tx {a.tx_index}\"\n                        ),\n                    )\n\n        for forbidden_read in self.storage_reads:\n            for actual_read in account.storage_reads:\n                if actual_read == forbidden_read:\n                    raise BlockAccessListValidationError(\n                        f\"Unexpected storage read found at slot {actual_read}\"\n                    )\n\n\n__all__ = [\n    \"BalAccountAbsentValues\",\n]\n"
  },
  {
    "path": "src/ethereum_test_types/block_access_list/account_changes.py",
    "content": "\"\"\"\nAccount change classes for Block Access List.\n\nThis module contains the core data structures representing changes to accounts\nin a block access list as defined in EIP-7928.\n\"\"\"\n\nfrom typing import ClassVar, List, Union\n\nfrom pydantic import Field\n\nfrom ethereum_test_base_types import (\n    Address,\n    Bytes,\n    CamelModel,\n    HexNumber,\n    RLPSerializable,\n    StorageKey,\n)\n\n\nclass BalNonceChange(CamelModel, RLPSerializable):\n    \"\"\"Represents a nonce change in the block access list.\"\"\"\n\n    model_config = CamelModel.model_config | {\"extra\": \"forbid\"}\n\n    tx_index: HexNumber = Field(\n        HexNumber(1),\n        description=\"Transaction index where the change occurred\",\n    )\n    post_nonce: HexNumber = Field(..., description=\"Nonce value after the transaction\")\n\n    rlp_fields: ClassVar[List[str]] = [\"tx_index\", \"post_nonce\"]\n\n\nclass BalBalanceChange(CamelModel, RLPSerializable):\n    \"\"\"Represents a balance change in the block access list.\"\"\"\n\n    model_config = CamelModel.model_config | {\"extra\": \"forbid\"}\n\n    tx_index: HexNumber = Field(\n        HexNumber(1),\n        description=\"Transaction index where the change occurred\",\n    )\n    post_balance: HexNumber = Field(..., description=\"Balance after the transaction\")\n\n    rlp_fields: ClassVar[List[str]] = [\"tx_index\", \"post_balance\"]\n\n\nclass BalCodeChange(CamelModel, RLPSerializable):\n    \"\"\"Represents a code change in the block access list.\"\"\"\n\n    model_config = CamelModel.model_config | {\"extra\": \"forbid\"}\n\n    tx_index: HexNumber = Field(\n        HexNumber(1),\n        description=\"Transaction index where the change occurred\",\n    )\n    new_code: Bytes = Field(..., description=\"New code bytes\")\n\n    rlp_fields: ClassVar[List[str]] = [\"tx_index\", \"new_code\"]\n\n\nclass BalStorageChange(CamelModel, RLPSerializable):\n    \"\"\"Represents a change to a specific storage slot.\"\"\"\n\n    model_config = CamelModel.model_config | {\"extra\": \"forbid\"}\n\n    tx_index: HexNumber = Field(\n        HexNumber(1),\n        description=\"Transaction index where the change occurred\",\n    )\n    post_value: StorageKey = Field(..., description=\"Value after the transaction\")\n\n    rlp_fields: ClassVar[List[str]] = [\"tx_index\", \"post_value\"]\n\n\nclass BalStorageSlot(CamelModel, RLPSerializable):\n    \"\"\"Represents all changes to a specific storage slot.\"\"\"\n\n    model_config = CamelModel.model_config | {\"extra\": \"forbid\"}\n\n    slot: StorageKey = Field(..., description=\"Storage slot key\")\n    slot_changes: List[BalStorageChange] = Field(\n        default_factory=list, description=\"List of changes to this slot\"\n    )\n\n    rlp_fields: ClassVar[List[str]] = [\"slot\", \"slot_changes\"]\n\n\nclass BalAccountChange(CamelModel, RLPSerializable):\n    \"\"\"Represents all changes to a specific account in a block.\"\"\"\n\n    model_config = CamelModel.model_config | {\"extra\": \"forbid\"}\n\n    address: Address = Field(..., description=\"Account address\")\n    nonce_changes: List[BalNonceChange] = Field(\n        default_factory=list, description=\"List of nonce changes\"\n    )\n    balance_changes: List[BalBalanceChange] = Field(\n        default_factory=list, description=\"List of balance changes\"\n    )\n    code_changes: List[BalCodeChange] = Field(\n        default_factory=list, description=\"List of code changes\"\n    )\n    storage_changes: List[BalStorageSlot] = Field(\n        default_factory=list, description=\"List of storage changes\"\n    )\n    storage_reads: List[StorageKey] = Field(\n        default_factory=list, description=\"List of storage slots that were read\"\n    )\n\n    rlp_fields: ClassVar[List[str]] = [\n        \"address\",\n        \"storage_changes\",\n        \"storage_reads\",\n        \"balance_changes\",\n        \"nonce_changes\",\n        \"code_changes\",\n    ]\n\n\nBlockAccessListChangeLists = Union[\n    List[BalNonceChange],\n    List[BalBalanceChange],\n    List[BalCodeChange],\n]\n\n\n__all__ = [\n    \"BalNonceChange\",\n    \"BalBalanceChange\",\n    \"BalCodeChange\",\n    \"BalStorageChange\",\n    \"BalStorageSlot\",\n    \"BalAccountChange\",\n    \"BlockAccessListChangeLists\",\n]\n"
  },
  {
    "path": "src/ethereum_test_types/block_access_list/exceptions.py",
    "content": "\"\"\"Exceptions related to block access list validation.\"\"\"\n\n\nclass BlockAccessListValidationError(Exception):\n    \"\"\"Custom exception for Block Access List validation errors.\"\"\"\n\n    pass\n"
  },
  {
    "path": "src/ethereum_test_types/block_access_list/expectations.py",
    "content": "\"\"\"\nBlock Access List expectation classes for test validation.\n\nThis module contains classes for defining and validating expected\nBAL values in tests.\n\"\"\"\n\nfrom typing import Any, Callable, ClassVar, Dict, List, Optional\n\nfrom pydantic import Field, PrivateAttr\n\nfrom ethereum_test_base_types import Address, CamelModel, StorageKey\n\nfrom .account_absent_values import BalAccountAbsentValues\nfrom .account_changes import (\n    BalAccountChange,\n    BalBalanceChange,\n    BalCodeChange,\n    BalNonceChange,\n    BalStorageSlot,\n    BlockAccessListChangeLists,\n)\nfrom .exceptions import BlockAccessListValidationError\nfrom .t8n import BlockAccessList\n\n\nclass BalAccountExpectation(CamelModel):\n    \"\"\"\n    Represents expected changes to a specific account in a block.\n\n    Same as BalAccountChange but without the address field,\n    used for expectations.\n    \"\"\"\n\n    model_config = CamelModel.model_config | {\"extra\": \"forbid\"}\n\n    nonce_changes: List[BalNonceChange] = Field(\n        default_factory=list, description=\"List of expected nonce changes\"\n    )\n    balance_changes: List[BalBalanceChange] = Field(\n        default_factory=list, description=\"List of expected balance changes\"\n    )\n    code_changes: List[BalCodeChange] = Field(\n        default_factory=list, description=\"List of expected code changes\"\n    )\n    storage_changes: List[BalStorageSlot] = Field(\n        default_factory=list, description=\"List of expected storage changes\"\n    )\n    storage_reads: List[StorageKey] = Field(\n        default_factory=list, description=\"List of expected read storage slots\"\n    )\n    absent_values: Optional[BalAccountAbsentValues] = Field(\n        default=None, description=\"Explicit absent value expectations using BalAccountAbsentValues\"\n    )\n\n    _EMPTY: ClassVar[Optional[\"BalAccountExpectation\"]] = None\n\n    @classmethod\n    def empty(cls) -> \"BalAccountExpectation\":\n        \"\"\"\n        Create an expectation that validates the account has NO changes.\n\n        This is distinct from `BalAccountExpectation()` with no fields set,\n        which is ambiguous and clashes with `model_fields_set` logic, and\n        will raise a clarifying error if used in expectations.\n\n        Returns:\n            A BalAccountExpectation instance with all change lists empty.\n            This uses a classvar to facilitate identity checks across\n            multiple expectation instances.\n\n        \"\"\"\n        if cls._EMPTY is None:\n            cls._EMPTY = cls(\n                nonce_changes=[],\n                balance_changes=[],\n                code_changes=[],\n                storage_changes=[],\n                storage_reads=[],\n            )\n        return cls._EMPTY\n\n\ndef compose(\n    *modifiers: Callable[[\"BlockAccessList\"], \"BlockAccessList\"],\n) -> Callable[[\"BlockAccessList\"], \"BlockAccessList\"]:\n    \"\"\"Compose multiple modifiers into a single modifier.\"\"\"\n\n    def composed(bal: BlockAccessList) -> BlockAccessList:\n        result = bal\n        for modifier in modifiers:\n            result = modifier(result)\n        return result\n\n    return composed\n\n\nclass BlockAccessListExpectation(CamelModel):\n    \"\"\"\n    Block Access List expectation model for test writing.\n\n    This model is used to define expected BAL values in tests. It supports:\n    - Partial validation (only checks explicitly set fields)\n    - Convenient test syntax with named parameters\n    - Verification against actual BAL from t8n\n    - Explicit exclusion of addresses (using None values)\n\n    Example:\n        # In test definition\n        expected_block_access_list = BlockAccessListExpectation(\n            account_expectations={\n                alice: BalAccountExpectation(\n                    nonce_changes=[BalNonceChange(tx_index=1, post_nonce=1)]\n                ),\n                bob: None,  # Bob should NOT be in the BAL\n            }\n        )\n\n    \"\"\"\n\n    model_config = CamelModel.model_config | {\"extra\": \"forbid\"}\n\n    account_expectations: Dict[Address, BalAccountExpectation | None] = Field(\n        default_factory=dict, description=\"Expected account changes or exclusions to verify\"\n    )\n\n    _modifier: Callable[[\"BlockAccessList\"], \"BlockAccessList\"] | None = PrivateAttr(default=None)\n\n    def modify(\n        self, *modifiers: Callable[[\"BlockAccessList\"], \"BlockAccessList\"]\n    ) -> \"BlockAccessListExpectation\":\n        \"\"\"\n        Create a new expectation with a modifier for invalid test cases.\n\n        Args:\n            modifiers: One or more functions that take and return\n                       a BlockAccessList\n\n        Returns:\n            A new BlockAccessListExpectation instance with\n            the modifiers applied\n\n        Example:\n            from ethereum_test_types.block_access_list.\n            modifiers import remove_nonces\n\n            expectation = BlockAccessListExpectation(\n                account_expectations={...}\n            ).modify(remove_nonces(alice))\n\n        \"\"\"\n        new_instance = self.model_copy(deep=True)\n        new_instance._modifier = compose(*modifiers)\n        return new_instance\n\n    def modify_if_invalid_test(self, t8n_bal: \"BlockAccessList\") -> \"BlockAccessList\":\n        \"\"\"\n        Apply the modifier to the given BAL if this is an invalid test case.\n\n        Args:\n            t8n_bal: The BlockAccessList from t8n tool\n\n        Returns:\n            The potentially transformed BlockAccessList for the fixture\n\n        \"\"\"\n        if self._modifier:\n            return self._modifier(t8n_bal)\n        return t8n_bal\n\n    def verify_against(self, actual_bal: \"BlockAccessList\") -> None:\n        \"\"\"\n        Verify that the actual BAL from the client matches this expected BAL.\n\n        Validation steps:\n        1. Validate actual BAL conforms to EIP-7928 ordering requirements\n        2. Verify address expectations - presence or explicit absence\n        3. Verify expected changes within accounts match actual changes\n\n        Args:\n            actual_bal: The BlockAccessList model from the client\n\n        Raises:\n            BlockAccessListValidationError: If verification fails\n\n        \"\"\"\n        # validate the actual BAL structure follows EIP-7928 ordering\n        self._validate_bal_ordering(actual_bal)\n\n        actual_accounts_by_addr = {acc.address: acc for acc in actual_bal.root}\n        for address, expectation in self.account_expectations.items():\n            if expectation is None:\n                # check explicit exclusion of address when set to `None`\n                if address in actual_accounts_by_addr:\n                    raise BlockAccessListValidationError(\n                        f\"Address {address} should not be in BAL but was found\"\n                    )\n            elif not expectation.model_fields_set:\n                # Disallow ambiguous BalAccountExpectation() with no fields set\n                raise BlockAccessListValidationError(\n                    f\"Address {address}: BalAccountExpectation() with no fields set is \"\n                    f\"ambiguous. Use BalAccountExpectation.empty() to validate no changes, \"\n                    f\"or explicitly set the fields to validate \"\n                    f\"(e.g., nonce_changes=[...]).\"\n                )\n            else:\n                # check address is present and validate changes\n                if address not in actual_accounts_by_addr:\n                    raise BlockAccessListValidationError(\n                        f\"Expected address {address} not found in actual BAL\"\n                    )\n\n                if expectation is BalAccountExpectation.empty():\n                    # explicit check for \"no changes\" validation w/ .empty()\n                    if actual_accounts_by_addr.get(address) != BalAccountChange(address=address):\n                        raise BlockAccessListValidationError(\n                            f\"No account changes expected for {address} but found \"\n                            f\"changes: {actual_accounts_by_addr[address]}\"\n                        )\n\n                actual_account = actual_accounts_by_addr[address]\n                try:\n                    self._compare_account_expectations(expectation, actual_account)\n                except AssertionError as e:\n                    raise BlockAccessListValidationError(f\"Account {address}: {str(e)}\") from e\n\n    @staticmethod\n    def _validate_bal_ordering(bal: \"BlockAccessList\") -> None:\n        \"\"\"\n        Validate BAL ordering follows EIP-7928 requirements.\n\n        Args:\n            bal: The BlockAccessList to validate\n\n        Raises:\n            BlockAccessListValidationError: If ordering is invalid\n\n        \"\"\"\n        # Check address ordering (ascending)\n        for i in range(1, len(bal.root)):\n            if bal.root[i - 1].address >= bal.root[i].address:\n                raise BlockAccessListValidationError(\n                    f\"BAL addresses are not in lexicographic order: \"\n                    f\"{bal.root[i - 1].address} >= {bal.root[i].address}\"\n                )\n\n        # Check transaction index ordering and uniqueness within accounts\n        for account in bal.root:\n            changes_to_check: List[tuple[str, BlockAccessListChangeLists]] = [\n                (\"nonce_changes\", account.nonce_changes),\n                (\"balance_changes\", account.balance_changes),\n                (\"code_changes\", account.code_changes),\n            ]\n\n            for field_name, change_list in changes_to_check:\n                if not change_list:\n                    continue\n\n                tx_indices = [c.tx_index for c in change_list]\n\n                # Check both ordering and duplicates\n                if tx_indices != sorted(tx_indices):\n                    raise BlockAccessListValidationError(\n                        f\"Transaction indices not in ascending order in {field_name} of account \"\n                        f\"{account.address}. Got: {tx_indices}, Expected: {sorted(tx_indices)}\"\n                    )\n\n                if len(tx_indices) != len(set(tx_indices)):\n                    duplicates = sorted({idx for idx in tx_indices if tx_indices.count(idx) > 1})\n                    raise BlockAccessListValidationError(\n                        f\"Duplicate transaction indices in {field_name} of account \"\n                        f\"{account.address}. Duplicates: {duplicates}\"\n                    )\n\n            # Check storage slot ordering\n            for i in range(1, len(account.storage_changes)):\n                if account.storage_changes[i - 1].slot >= account.storage_changes[i].slot:\n                    raise BlockAccessListValidationError(\n                        f\"Storage slots not in ascending order in account \"\n                        f\"{account.address}: {account.storage_changes[i - 1].slot} >= \"\n                        f\"{account.storage_changes[i].slot}\"\n                    )\n\n            # Check transaction index ordering and uniqueness within storage\n            # slots\n            for storage_slot in account.storage_changes:\n                if not storage_slot.slot_changes:\n                    continue\n\n                tx_indices = [c.tx_index for c in storage_slot.slot_changes]\n\n                # Check both ordering and duplicates\n                if tx_indices != sorted(tx_indices):\n                    raise BlockAccessListValidationError(\n                        f\"Transaction indices not in ascending order in storage slot \"\n                        f\"{storage_slot.slot} of account {account.address}. \"\n                        f\"Got: {tx_indices}, Expected: {sorted(tx_indices)}\"\n                    )\n\n                if len(tx_indices) != len(set(tx_indices)):\n                    duplicates = sorted({idx for idx in tx_indices if tx_indices.count(idx) > 1})\n                    raise BlockAccessListValidationError(\n                        f\"Duplicate transaction indices in storage slot \"\n                        f\"{storage_slot.slot} of account {account.address}. \"\n                        f\"Duplicates: {duplicates}\"\n                    )\n\n            # Check storage reads ordering\n            for i in range(1, len(account.storage_reads)):\n                if account.storage_reads[i - 1] >= account.storage_reads[i]:\n                    raise BlockAccessListValidationError(\n                        f\"Storage reads not in ascending order in account \"\n                        f\"{account.address}: {account.storage_reads[i - 1]} >= \"\n                        f\"{account.storage_reads[i]}\"\n                    )\n\n    @staticmethod\n    def _compare_account_expectations(\n        expected: BalAccountExpectation, actual: BalAccountChange\n    ) -> None:\n        \"\"\"\n        Compare expected and actual account changes using\n        subsequence validation.\n\n        Args:\n            expected: The expected account changes\n            actual: The actual account changes from the BAL\n\n        Raises:\n            AssertionError: If validation fails\n\n        \"\"\"\n        # Check absence expectations first if defined\n        if expected.absent_values is not None:\n            expected.absent_values.validate_against(actual)\n\n        # Validate expected changes using subsequence validation\n        field_pairs: List[tuple[str, Any, Any]] = [\n            (\"nonce_changes\", expected.nonce_changes, actual.nonce_changes),\n            (\"balance_changes\", expected.balance_changes, actual.balance_changes),\n            (\"code_changes\", expected.code_changes, actual.code_changes),\n            (\"storage_changes\", expected.storage_changes, actual.storage_changes),\n            (\"storage_reads\", expected.storage_reads, actual.storage_reads),\n        ]\n\n        for field_name, expected_list, actual_list in field_pairs:\n            # Only validate fields that were explicitly set\n            if field_name not in expected.model_fields_set:\n                continue\n\n            # Check if explicitly set to empty but actual has values\n            if not expected_list and actual_list:\n                raise BlockAccessListValidationError(\n                    f\"Expected {field_name} to be empty but found {actual_list}\"\n                )\n\n            if field_name == \"storage_reads\":\n                # storage_reads is a simple list of StorageKey\n                actual_idx = 0\n                for expected_read in expected_list:\n                    found = False\n                    while actual_idx < len(actual_list):\n                        if actual_list[actual_idx] == expected_read:\n                            found = True\n                            actual_idx += 1\n                            break\n                        actual_idx += 1\n\n                    if not found:\n                        raise BlockAccessListValidationError(\n                            f\"Storage read {expected_read} not found or not in correct order. \"\n                            f\"Actual reads: {actual_list}\"\n                        )\n\n            elif field_name == \"storage_changes\":\n                # storage_changes is a list of BalStorageSlot\n                actual_idx = 0\n                for expected_slot in expected_list:\n                    found = False\n                    while actual_idx < len(actual_list):\n                        if actual_list[actual_idx].slot == expected_slot.slot:\n                            # Found matching slot, now validate slot_changes\n                            actual_slot_changes = actual_list[actual_idx].slot_changes\n                            expected_slot_changes = expected_slot.slot_changes\n\n                            if not expected_slot_changes:\n                                # Empty expected means any\n                                # slot_changes are acceptable\n                                pass\n                            else:\n                                # Validate slot_changes as subsequence\n                                slot_actual_idx = 0\n                                for expected_change in expected_slot_changes:\n                                    slot_found = False\n                                    while slot_actual_idx < len(actual_slot_changes):\n                                        actual_change = actual_slot_changes[slot_actual_idx]\n                                        if (\n                                            actual_change.tx_index == expected_change.tx_index\n                                            and actual_change.post_value\n                                            == expected_change.post_value\n                                        ):\n                                            slot_found = True\n                                            slot_actual_idx += 1\n                                            break\n                                        slot_actual_idx += 1\n\n                                    if not slot_found:\n                                        raise BlockAccessListValidationError(\n                                            f\"Storage change {expected_change} not found \"\n                                            f\"or not in correct order in slot \"\n                                            f\"{expected_slot.slot}. \"\n                                            f\"Actual slot changes: {actual_slot_changes}\"\n                                        )\n\n                            found = True\n                            actual_idx += 1\n                            break\n                        actual_idx += 1\n\n                    if not found:\n                        raise BlockAccessListValidationError(\n                            f\"Storage slot {expected_slot.slot} not found \"\n                            f\"or not in correct order. Actual slots: \"\n                            f\"{[s.slot for s in actual_list]}\"\n                        )\n\n            else:\n                # Handle nonce_changes, balance_changes, code_changes\n                # Create tuples for comparison (ordering already validated)\n                if field_name == \"nonce_changes\":\n                    expected_tuples = [(c.tx_index, c.post_nonce) for c in expected_list]\n                    actual_tuples = [(c.tx_index, c.post_nonce) for c in actual_list]\n                    item_type = \"nonce\"\n                elif field_name == \"balance_changes\":\n                    expected_tuples = [(c.tx_index, int(c.post_balance)) for c in expected_list]\n                    actual_tuples = [(c.tx_index, int(c.post_balance)) for c in actual_list]\n                    item_type = \"balance\"\n                elif field_name == \"code_changes\":\n                    expected_tuples = [(c.tx_index, bytes(c.new_code)) for c in expected_list]\n                    actual_tuples = [(c.tx_index, bytes(c.new_code)) for c in actual_list]\n                    item_type = \"code\"\n                else:\n                    # sanity check\n                    raise ValueError(f\"Unexpected field type: {field_name}\")\n\n                # Check that expected forms a subsequence of actual\n                actual_idx = 0\n                for exp_tuple in expected_tuples:\n                    found = False\n                    while actual_idx < len(actual_tuples):\n                        if actual_tuples[actual_idx] == exp_tuple:\n                            found = True\n                            actual_idx += 1\n                            break\n                        actual_idx += 1\n\n                    if not found:\n                        raise BlockAccessListValidationError(\n                            f\"{item_type.capitalize()} change {exp_tuple} not found \"\n                            f\"or not in correct order. Actual changes: {actual_tuples}\"\n                        )\n\n\n__all__ = [\n    \"BalAccountExpectation\",\n    \"BlockAccessListExpectation\",\n    \"compose\",\n]\n"
  },
  {
    "path": "src/ethereum_test_types/block_access_list/modifiers.py",
    "content": "\"\"\"\nBAL modifier functions for invalid test cases.\n\nThis module provides modifier functions that can be used to modify Block Access\nLists in various ways for testing invalid block scenarios. They are composable\nand can be combined to create complex modifications.\n\"\"\"\n\nfrom typing import Any, Callable, List, Optional\n\nfrom ethereum_test_base_types import Address, HexNumber\n\nfrom .. import BalCodeChange\nfrom . import (\n    BalAccountChange,\n    BalBalanceChange,\n    BalNonceChange,\n    BalStorageChange,\n    BlockAccessList,\n)\n\n\ndef _remove_field_from_accounts(\n    addresses: tuple[Address, ...], field_name: str\n) -> Callable[[BlockAccessList], BlockAccessList]:\n    \"\"\"Abstracted helper to remove a field from specified accounts.\"\"\"\n    len_addresses = len(addresses)\n    found_addresses = set()\n\n    def transform(bal: BlockAccessList) -> BlockAccessList:\n        nonlocal found_addresses\n        new_root = []\n        for account_change in bal.root:\n            if account_change.address in addresses:\n                found_addresses.add(account_change.address)\n                new_account = account_change.model_copy(deep=True)\n                # clear the specified field\n                setattr(new_account, field_name, [])\n                new_root.append(new_account)\n            else:\n                new_root.append(account_change)\n\n        if len(found_addresses) != len_addresses:\n            # sanity check that we found all addresses specified\n            missing = set(addresses) - found_addresses\n            raise ValueError(f\"Some specified addresses were not found in the BAL: {missing}\")\n\n        return BlockAccessList(root=new_root)\n\n    return transform\n\n\ndef _modify_field_value(\n    address: Address,\n    tx_index: int,\n    field_name: str,\n    change_class: type,\n    new_value: Any,\n    value_field: str = \"post_value\",\n    nested: bool = False,\n    slot: Optional[int] = None,\n) -> Callable[[BlockAccessList], BlockAccessList]:\n    \"\"\"\n    Abstracted helper to modify a field value for a specific account and\n    transaction.\n    \"\"\"\n    found_address = False\n\n    def transform(bal: BlockAccessList) -> BlockAccessList:\n        nonlocal found_address\n        new_root = []\n        for account_change in bal.root:\n            if account_change.address == address:\n                found_address = True\n                new_account = account_change.model_copy(deep=True)\n                changes = getattr(new_account, field_name)\n\n                if changes:\n                    if nested and slot is not None:\n                        # nested structure (storage)\n                        for storage_slot in changes:\n                            if storage_slot.slot == slot:\n                                for j, change in enumerate(storage_slot.slot_changes):\n                                    if change.tx_index == tx_index:\n                                        kwargs = {\"tx_index\": tx_index, value_field: new_value}\n                                        storage_slot.slot_changes[j] = change_class(**kwargs)\n                                        break\n                                break\n                    else:\n                        # flat structure (nonce, balance, code)\n                        for i, change in enumerate(changes):\n                            if change.tx_index == tx_index:\n                                kwargs = {\"tx_index\": tx_index, value_field: new_value}\n                                changes[i] = change_class(**kwargs)\n                                break\n\n                new_root.append(new_account)\n            else:\n                new_root.append(account_change)\n\n        if not found_address:\n            # sanity check that we actually found the address\n            raise ValueError(f\"Address {address} not found in BAL to modify {field_name}\")\n\n        return BlockAccessList(root=new_root)\n\n    return transform\n\n\ndef remove_accounts(*addresses: Address) -> Callable[[BlockAccessList], BlockAccessList]:\n    \"\"\"Remove entire account entries from the BAL.\"\"\"\n\n    def transform(bal: BlockAccessList) -> BlockAccessList:\n        new_root = []\n        for account_change in bal.root:\n            if account_change.address not in addresses:\n                new_root.append(account_change)\n        return BlockAccessList(root=new_root)\n\n    return transform\n\n\ndef remove_nonces(*addresses: Address) -> Callable[[BlockAccessList], BlockAccessList]:\n    \"\"\"Remove nonce changes from specified accounts.\"\"\"\n    return _remove_field_from_accounts(addresses, \"nonce_changes\")\n\n\ndef remove_balances(*addresses: Address) -> Callable[[BlockAccessList], BlockAccessList]:\n    \"\"\"Remove balance changes from specified accounts.\"\"\"\n    return _remove_field_from_accounts(addresses, \"balance_changes\")\n\n\ndef remove_storage(*addresses: Address) -> Callable[[BlockAccessList], BlockAccessList]:\n    \"\"\"Remove storage changes from specified accounts.\"\"\"\n    return _remove_field_from_accounts(addresses, \"storage_changes\")\n\n\ndef remove_storage_reads(*addresses: Address) -> Callable[[BlockAccessList], BlockAccessList]:\n    \"\"\"Remove storage reads from specified accounts.\"\"\"\n    return _remove_field_from_accounts(addresses, \"storage_reads\")\n\n\ndef remove_code(*addresses: Address) -> Callable[[BlockAccessList], BlockAccessList]:\n    \"\"\"Remove code changes from specified accounts.\"\"\"\n    return _remove_field_from_accounts(addresses, \"code_changes\")\n\n\ndef modify_nonce(\n    address: Address, tx_index: int, nonce: int\n) -> Callable[[BlockAccessList], BlockAccessList]:\n    \"\"\"Set an incorrect nonce value for a specific account and transaction.\"\"\"\n    return _modify_field_value(\n        address, tx_index, \"nonce_changes\", BalNonceChange, nonce, \"post_nonce\"\n    )\n\n\ndef modify_balance(\n    address: Address, tx_index: int, balance: int\n) -> Callable[[BlockAccessList], BlockAccessList]:\n    \"\"\"\n    Set an incorrect balance value for a specific account and transaction.\n    \"\"\"\n    return _modify_field_value(\n        address, tx_index, \"balance_changes\", BalBalanceChange, balance, \"post_balance\"\n    )\n\n\ndef modify_storage(\n    address: Address, tx_index: int, slot: int, value: int\n) -> Callable[[BlockAccessList], BlockAccessList]:\n    \"\"\"\n    Set an incorrect storage value for a specific account, transaction, and\n    slot.\n    \"\"\"\n    return _modify_field_value(\n        address,\n        tx_index,\n        \"storage_changes\",\n        BalStorageChange,\n        value,\n        \"post_value\",\n        nested=True,\n        slot=slot,\n    )\n\n\ndef modify_code(\n    address: Address, tx_index: int, code: bytes\n) -> Callable[[BlockAccessList], BlockAccessList]:\n    \"\"\"Set an incorrect code value for a specific account and transaction.\"\"\"\n    return _modify_field_value(address, tx_index, \"code_changes\", BalCodeChange, code, \"post_code\")\n\n\ndef swap_tx_indices(tx1: int, tx2: int) -> Callable[[BlockAccessList], BlockAccessList]:\n    \"\"\"Swap transaction indices throughout the BAL, modifying tx ordering.\"\"\"\n    nonce_indices = {tx1: False, tx2: False}\n    balance_indices = nonce_indices.copy()\n    storage_indices = nonce_indices.copy()\n    code_indices = nonce_indices.copy()\n\n    def transform(bal: BlockAccessList) -> BlockAccessList:\n        nonlocal nonce_indices, balance_indices, storage_indices, code_indices\n        new_root = []\n        for account_change in bal.root:\n            new_account = account_change.model_copy(deep=True)\n\n            # Swap in nonce changes\n            if new_account.nonce_changes:\n                for nonce_change in new_account.nonce_changes:\n                    if nonce_change.tx_index == tx1:\n                        nonce_indices[tx1] = True\n                        nonce_change.tx_index = HexNumber(tx2)\n                    elif nonce_change.tx_index == tx2:\n                        nonce_indices[tx2] = True\n                        nonce_change.tx_index = HexNumber(tx1)\n\n            # Swap in balance changes\n            if new_account.balance_changes:\n                for balance_change in new_account.balance_changes:\n                    if balance_change.tx_index == tx1:\n                        balance_indices[tx1] = True\n                        balance_change.tx_index = HexNumber(tx2)\n                    elif balance_change.tx_index == tx2:\n                        balance_indices[tx2] = True\n                        balance_change.tx_index = HexNumber(tx1)\n\n            # Swap in storage changes (nested structure)\n            if new_account.storage_changes:\n                for storage_slot in new_account.storage_changes:\n                    for storage_change in storage_slot.slot_changes:\n                        if storage_change.tx_index == tx1:\n                            balance_indices[tx1] = True\n                            storage_change.tx_index = HexNumber(tx2)\n                        elif storage_change.tx_index == tx2:\n                            balance_indices[tx2] = True\n                            storage_change.tx_index = HexNumber(tx1)\n\n            # Note: storage_reads is just a list of StorageKey, no tx_index to\n            # swap\n\n            # Swap in code changes\n            if new_account.code_changes:\n                for code_change in new_account.code_changes:\n                    if code_change.tx_index == tx1:\n                        code_indices[tx1] = True\n                        code_change.tx_index = HexNumber(tx2)\n                    elif code_change.tx_index == tx2:\n                        code_indices[tx2] = True\n                        code_change.tx_index = HexNumber(tx1)\n\n            new_root.append(new_account)\n\n        return BlockAccessList(root=new_root)\n\n    return transform\n\n\ndef append_account(\n    account_change: BalAccountChange,\n) -> Callable[[BlockAccessList], BlockAccessList]:\n    \"\"\"Append an account to account changes.\"\"\"\n\n    def transform(bal: BlockAccessList) -> BlockAccessList:\n        new_root = list(bal.root)\n        new_root.append(account_change)\n        return BlockAccessList(root=new_root)\n\n    return transform\n\n\ndef duplicate_account(address: Address) -> Callable[[BlockAccessList], BlockAccessList]:\n    \"\"\"Duplicate an account entry in the BAL.\"\"\"\n    address_present = False\n\n    def transform(bal: BlockAccessList) -> BlockAccessList:\n        nonlocal address_present\n        new_root = []\n        for account_change in bal.root:\n            new_root.append(account_change)\n            if account_change.address == address:\n                # Add duplicate immediately after\n                new_root.append(account_change.model_copy(deep=True))\n                address_present = True\n\n        if not address_present:\n            # sanity check that we actually duplicate\n            raise ValueError(f\"Address {address} not found in BAL to duplicate\")\n\n        return BlockAccessList(root=new_root)\n\n    return transform\n\n\ndef reverse_accounts() -> Callable[[BlockAccessList], BlockAccessList]:\n    \"\"\"Reverse the order of accounts in the BAL.\"\"\"\n\n    def transform(bal: BlockAccessList) -> BlockAccessList:\n        return BlockAccessList(root=list(reversed(bal.root)))\n\n    return transform\n\n\ndef sort_accounts_by_address() -> Callable[[BlockAccessList], BlockAccessList]:\n    \"\"\"Sort accounts by address (may modify expected ordering).\"\"\"\n\n    def transform(bal: BlockAccessList) -> BlockAccessList:\n        sorted_root = sorted(bal.root, key=lambda x: x.address)\n        return BlockAccessList(root=sorted_root)\n\n    return transform\n\n\ndef reorder_accounts(indices: List[int]) -> Callable[[BlockAccessList], BlockAccessList]:\n    \"\"\"Reorder accounts according to the provided index list.\"\"\"\n\n    def transform(bal: BlockAccessList) -> BlockAccessList:\n        if len(indices) != len(bal.root):\n            raise ValueError(\"Index list length must match number of accounts\")\n        new_root = [bal.root[i] for i in indices]\n        return BlockAccessList(root=new_root)\n\n    return transform\n\n\ndef clear_all() -> Callable[[BlockAccessList], BlockAccessList]:\n    \"\"\"Return an empty BAL.\"\"\"\n\n    def transform(bal: BlockAccessList) -> BlockAccessList:\n        del bal\n        return BlockAccessList(root=[])\n\n    return transform\n\n\ndef keep_only(*addresses: Address) -> Callable[[BlockAccessList], BlockAccessList]:\n    \"\"\"Keep only the specified accounts, removing all others.\"\"\"\n    len_addresses = len(addresses)\n\n    def transform(bal: BlockAccessList) -> BlockAccessList:\n        new_root = []\n        for account_change in bal.root:\n            if account_change.address in addresses:\n                new_root.append(account_change)\n\n        if len(new_root) != len_addresses:\n            # sanity check that we found all specified addresses\n            raise ValueError(\"Some specified addresses were not found in the BAL\")\n\n        return BlockAccessList(root=new_root)\n\n    return transform\n\n\n__all__ = [\n    # Core functions\n    # Account-level modifiers\n    \"remove_accounts\",\n    \"append_account\",\n    \"duplicate_account\",\n    \"reverse_accounts\",\n    \"keep_only\",\n    # Field-level modifiers\n    \"remove_nonces\",\n    \"remove_balances\",\n    \"remove_storage\",\n    \"remove_storage_reads\",\n    \"remove_code\",\n    # Value modifiers\n    \"modify_nonce\",\n    \"modify_balance\",\n    \"modify_storage\",\n    \"modify_code\",\n    # Transaction index modifiers\n    \"swap_tx_indices\",\n]\n"
  },
  {
    "path": "src/ethereum_test_types/block_access_list/t8n.py",
    "content": "\"\"\"Block Access List (BAL) for t8n tool communication and fixtures.\"\"\"\n\nfrom functools import cached_property\nfrom typing import Any, List\n\nimport ethereum_rlp as eth_rlp\nfrom pydantic import Field\n\nfrom ethereum_test_base_types import Bytes, EthereumTestRootModel\nfrom ethereum_test_base_types.serialization import to_serializable_element\n\nfrom .account_changes import BalAccountChange\n\n\nclass BlockAccessList(EthereumTestRootModel[List[BalAccountChange]]):\n    \"\"\"\n    Block Access List for t8n tool communication and fixtures.\n\n    This model represents the BAL exactly as defined in EIP-7928\n    - it is itself a list of account changes (root model), not a container.\n\n    Used for:\n    - Communication with t8n tools\n    - Fixture generation\n    - RLP encoding for hash verification\n\n    Example:\n        bal = BlockAccessList([\n            BalAccountChange(address=alice, nonce_changes=[...]),\n            BalAccountChange(address=bob, balance_changes=[...])\n        ])\n\n    \"\"\"\n\n    root: List[BalAccountChange] = Field(default_factory=list)\n\n    def to_list(self) -> List[Any]:\n        \"\"\"Return the list for RLP encoding per EIP-7928.\"\"\"\n        return to_serializable_element(self.root)\n\n    @cached_property\n    def rlp(self) -> Bytes:\n        \"\"\"Return the RLP encoded block access list for hash verification.\"\"\"\n        return Bytes(eth_rlp.encode(self.to_list()))\n\n    @cached_property\n    def rlp_hash(self) -> Bytes:\n        \"\"\"Return the hash of the RLP encoded block access list.\"\"\"\n        return self.rlp.keccak256()\n"
  },
  {
    "path": "src/ethereum_test_types/block_types.py",
    "content": "\"\"\"Block-related types for Ethereum tests.\"\"\"\n\nimport hashlib\nfrom dataclasses import dataclass\nfrom functools import cached_property\nfrom typing import Any, Dict, Generic, List, Sequence\n\nimport ethereum_rlp as eth_rlp\nfrom ethereum_types.numeric import Uint\nfrom pydantic import Field, computed_field\nfrom trie import HexaryTrie\n\nfrom ethereum_test_base_types import (\n    Address,\n    Bytes,\n    CamelModel,\n    EmptyOmmersRoot,\n    Hash,\n    HexNumber,\n    NumberBoundTypeVar,\n    ZeroPaddedHexNumber,\n)\nfrom ethereum_test_forks import Fork\n\nDEFAULT_BASE_FEE = 7\nCURRENT_MAINNET_BLOCK_GAS_LIMIT = 45_000_000\nDEFAULT_BLOCK_GAS_LIMIT = CURRENT_MAINNET_BLOCK_GAS_LIMIT * 2\n\n\n@dataclass\nclass EnvironmentDefaults:\n    \"\"\"Default environment values.\"\"\"\n\n    # By default, the constant `DEFAULT_BLOCK_GAS_LIMIT` is used.\n    # Other libraries (pytest plugins) may override this value by modifying the\n    # `EnvironmentDefaults.gas_limit` class attribute.\n    gas_limit: int = DEFAULT_BLOCK_GAS_LIMIT\n\n\nclass WithdrawalGeneric(CamelModel, Generic[NumberBoundTypeVar]):\n    \"\"\"\n    Withdrawal generic type, used as a parent class for `Withdrawal` and\n    `FixtureWithdrawal`.\n    \"\"\"\n\n    index: NumberBoundTypeVar\n    validator_index: NumberBoundTypeVar\n    address: Address\n    amount: NumberBoundTypeVar\n\n    def to_serializable_list(self) -> List[Any]:\n        \"\"\"\n        Return list of the withdrawal's attributes in the order they should be\n        serialized.\n        \"\"\"\n        return [\n            Uint(self.index),\n            Uint(self.validator_index),\n            self.address,\n            Uint(self.amount),\n        ]\n\n    @staticmethod\n    def list_root(withdrawals: Sequence[\"WithdrawalGeneric\"]) -> bytes:\n        \"\"\"Return withdrawals root of a list of withdrawals.\"\"\"\n        t = HexaryTrie(db={})\n        for i, w in enumerate(withdrawals):\n            t.set(eth_rlp.encode(Uint(i)), eth_rlp.encode(w.to_serializable_list()))\n        return t.root_hash\n\n\nclass Withdrawal(WithdrawalGeneric[HexNumber]):\n    \"\"\"Withdrawal type.\"\"\"\n\n    pass\n\n\nclass EnvironmentGeneric(CamelModel, Generic[NumberBoundTypeVar]):\n    \"\"\"Used as a parent class for `Environment` and `FixtureEnvironment`.\"\"\"\n\n    fee_recipient: Address = Field(\n        Address(\"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\"),\n        alias=\"currentCoinbase\",\n    )\n    gas_limit: NumberBoundTypeVar = Field(\n        default_factory=lambda: EnvironmentDefaults.gas_limit, alias=\"currentGasLimit\"\n    )  # type: ignore\n    number: NumberBoundTypeVar = Field(1, alias=\"currentNumber\")  # type: ignore\n    timestamp: NumberBoundTypeVar = Field(1_000, alias=\"currentTimestamp\")  # type: ignore\n    prev_randao: NumberBoundTypeVar | None = Field(None, alias=\"currentRandom\")\n    difficulty: NumberBoundTypeVar | None = Field(None, alias=\"currentDifficulty\")\n    base_fee_per_gas: NumberBoundTypeVar | None = Field(None, alias=\"currentBaseFee\")\n    excess_blob_gas: NumberBoundTypeVar | None = Field(None, alias=\"currentExcessBlobGas\")\n\n    parent_difficulty: NumberBoundTypeVar | None = Field(None)\n    parent_timestamp: NumberBoundTypeVar | None = Field(None)\n    parent_base_fee_per_gas: NumberBoundTypeVar | None = Field(None, alias=\"parentBaseFee\")\n    parent_gas_used: NumberBoundTypeVar | None = Field(None)\n    parent_gas_limit: NumberBoundTypeVar | None = Field(None)\n\n\nclass Environment(EnvironmentGeneric[ZeroPaddedHexNumber]):\n    \"\"\"\n    Structure used to keep track of the context in which a block must be\n    executed.\n    \"\"\"\n\n    blob_gas_used: ZeroPaddedHexNumber | None = Field(None, alias=\"currentBlobGasUsed\")\n    parent_ommers_hash: Hash = Field(Hash(EmptyOmmersRoot), alias=\"parentUncleHash\")\n    parent_blob_gas_used: ZeroPaddedHexNumber | None = Field(None)\n    parent_excess_blob_gas: ZeroPaddedHexNumber | None = Field(None)\n    parent_beacon_block_root: Hash | None = Field(None)\n\n    block_hashes: Dict[ZeroPaddedHexNumber, Hash] = Field(default_factory=dict)\n    ommers: List[Hash] = Field(default_factory=list)\n    withdrawals: List[Withdrawal] | None = Field(None)\n    extra_data: Bytes = Field(Bytes(b\"\\x00\"), exclude=True)\n\n    # EIP-7928: Block-level access lists\n    bal_hash: Hash | None = Field(None)\n    block_access_lists: Bytes | None = Field(None)\n\n    @computed_field  # type: ignore[prop-decorator]\n    @cached_property\n    def parent_hash(self) -> Hash | None:\n        \"\"\"\n        Obtains the latest hash according to the highest block number in\n        `block_hashes`.\n        \"\"\"\n        if len(self.block_hashes) == 0:\n            return None\n\n        last_index = max(self.block_hashes.keys())\n        return Hash(self.block_hashes[last_index])\n\n    def set_fork_requirements(self, fork: Fork) -> \"Environment\":\n        \"\"\"Fill required fields in an environment depending on the fork.\"\"\"\n        number = self.number\n        timestamp = self.timestamp\n\n        updated_values: Dict[str, Any] = {}\n\n        if (\n            fork.header_prev_randao_required(block_number=number, timestamp=timestamp)\n            and self.prev_randao is None\n        ):\n            updated_values[\"prev_randao\"] = 0\n\n        if (\n            fork.header_withdrawals_required(block_number=number, timestamp=timestamp)\n            and self.withdrawals is None\n        ):\n            updated_values[\"withdrawals\"] = []\n\n        if (\n            fork.header_base_fee_required(block_number=number, timestamp=timestamp)\n            and self.base_fee_per_gas is None\n            and self.parent_base_fee_per_gas is None\n        ):\n            updated_values[\"base_fee_per_gas\"] = DEFAULT_BASE_FEE\n\n        if fork.header_zero_difficulty_required(block_number=number, timestamp=timestamp):\n            updated_values[\"difficulty\"] = 0\n        elif self.difficulty is None and self.parent_difficulty is None:\n            updated_values[\"difficulty\"] = 0x20000\n\n        if (\n            fork.header_excess_blob_gas_required(block_number=number, timestamp=timestamp)\n            and self.excess_blob_gas is None\n            and self.parent_excess_blob_gas is None\n        ):\n            updated_values[\"excess_blob_gas\"] = 0\n\n        if (\n            fork.header_blob_gas_used_required(block_number=number, timestamp=timestamp)\n            and self.blob_gas_used is None\n            and self.parent_blob_gas_used is None\n        ):\n            updated_values[\"blob_gas_used\"] = 0\n\n        if (\n            fork.header_beacon_root_required(block_number=number, timestamp=timestamp)\n            and self.parent_beacon_block_root is None\n        ):\n            updated_values[\"parent_beacon_block_root\"] = 0\n\n        return self.copy(**updated_values)\n\n    def __hash__(self) -> int:\n        \"\"\"Hashes the environment object.\"\"\"\n        hash_dict = self.model_dump(exclude_none=True, by_alias=True)\n\n        sorted_items = sorted(hash_dict.items())\n        hash_string = str(sorted_items)\n\n        digest = hashlib.sha256(hash_string.encode(\"utf-8\")).digest()\n        return int.from_bytes(digest[:8], byteorder=\"big\")\n\n    def __eq__(self, other: object) -> bool:\n        \"\"\"Check if two environment objects are equal.\"\"\"\n        if not isinstance(other, Environment):\n            return False\n\n        self_dict = self.model_dump(exclude_none=True, by_alias=True)\n        self_dict[\"extra_data\"] = self.extra_data.hex()\n\n        other_dict = other.model_dump(exclude_none=True, by_alias=True)\n        other_dict[\"extra_data\"] = other.extra_data.hex()\n\n        return self_dict == other_dict\n"
  },
  {
    "path": "src/ethereum_test_types/chain_config_types.py",
    "content": "\"\"\"Chain Configuration related types for Ethereum tests.\"\"\"\n\nfrom pydantic import Field\n\nfrom ethereum_test_base_types import CamelModel\n\n\nclass ChainConfigDefaults:\n    \"\"\"\n    Default values for the chain configuration.\n\n    Can be modified by modules that import this module and want to override the\n    default values.\n    \"\"\"\n\n    chain_id: int = 1\n\n\nclass ChainConfig(CamelModel):\n    \"\"\"Chain configuration.\"\"\"\n\n    chain_id: int = Field(\n        default_factory=lambda: ChainConfigDefaults.chain_id, validate_default=True\n    )\n"
  },
  {
    "path": "src/ethereum_test_types/eof/__init__.py",
    "content": "\"\"\"EVM Object Format Library to generate bytecode for testing purposes.\"\"\"\n\nfrom .constants import LATEST_EOF_VERSION\n\n__all__ = (\"LATEST_EOF_VERSION\",)\n"
  },
  {
    "path": "src/ethereum_test_types/eof/constants.py",
    "content": "\"\"\"EVM Object Format generic constants. Applicable to all EOF versions.\"\"\"\n\nEOF_MAGIC = b\"\\xef\\x00\"\n\"\"\"\nThe second byte found on every EOF formatted contract, which was chosen to\navoid clashes with three contracts which were deployed on Mainnet.\n\"\"\"\nEOF_HEADER_TERMINATOR = b\"\\x00\"\n\"\"\"Byte that terminates the header of the EOF format.\"\"\"\nLATEST_EOF_VERSION = 1\n\"\"\"Latest existing EOF version.\"\"\"\nVERSION_BYTE_LENGTH = 1\n\"\"\"Length of the version byte.\"\"\"\n\nMAX_RUNTIME_STACK_HEIGHT = 1024\n\"\"\"\nMaximum height of the EVM runtime operand stack. Exceeding this value during\nexecution will result in the stack overflow exception. This value applies to\nboth legacy EVM and EOF.\n\"\"\"\n"
  },
  {
    "path": "src/ethereum_test_types/eof/v1/__init__.py",
    "content": "\"\"\"\nEVM Object Format Version 1 Library to generate bytecode for testing purposes.\n\"\"\"\n\nfrom dataclasses import dataclass\nfrom enum import Enum, IntEnum, auto\nfrom functools import cached_property\nfrom typing import Any, Dict, List, Optional, Tuple\n\nfrom pydantic import Field, GetCoreSchemaHandler\nfrom pydantic_core.core_schema import (\n    PlainValidatorFunctionSchema,\n    no_info_plain_validator_function,\n    to_string_ser_schema,\n)\n\nfrom ethereum_test_base_types import Bytes, Hash\nfrom ethereum_test_base_types.conversions import BytesConvertible\nfrom ethereum_test_base_types.pydantic import CopyValidateModel\nfrom ethereum_test_exceptions.exceptions import EOFExceptionInstanceOrList\nfrom ethereum_test_vm import Bytecode\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom ..constants import EOF_HEADER_TERMINATOR, EOF_MAGIC\nfrom .constants import (\n    HEADER_SECTION_CONTAINER_SIZE_BYTE_LENGTH,\n    HEADER_SECTION_COUNT_BYTE_LENGTH,\n    HEADER_SECTION_KIND_BYTE_LENGTH,\n    HEADER_SECTION_SIZE_BYTE_LENGTH,\n    NON_RETURNING_SECTION,\n    TYPES_INPUTS_BYTE_LENGTH,\n    TYPES_OUTPUTS_BYTE_LENGTH,\n    TYPES_STACK_BYTE_LENGTH,\n    VERSION_NUMBER_BYTES,\n)\n\n\nclass SectionKind(IntEnum):\n    \"\"\"Enum class of V1 valid section kind values.\"\"\"\n\n    TYPE = 1\n    CODE = 2\n    CONTAINER = 3\n    DATA = 0xFF\n\n    def __str__(self) -> str:\n        \"\"\"Return string representation of the section kind.\"\"\"\n        return self.name\n\n\nclass ContainerKind(Enum):\n    \"\"\"Enum class of V1 valid container kind values.\"\"\"\n\n    RUNTIME = auto()\n    INITCODE = auto()\n\n    @staticmethod\n    def __get_pydantic_core_schema__(\n        source_type: Any, handler: GetCoreSchemaHandler\n    ) -> PlainValidatorFunctionSchema:\n        \"\"\"\n        Call class constructor without info and appends the serialization\n        schema.\n        \"\"\"\n        return no_info_plain_validator_function(\n            source_type.from_str,\n            serialization=to_string_ser_schema(),\n        )\n\n    @staticmethod\n    def from_str(value: \"str | ContainerKind | None\") -> \"ContainerKind | None\":\n        \"\"\"Return ContainerKind enum value from a string.\"\"\"\n        if value is None:\n            return None\n        if isinstance(value, ContainerKind):\n            return value\n        return ContainerKind[value.upper()]\n\n    def __str__(self) -> str:\n        \"\"\"Return string representation of the container kind.\"\"\"\n        return self.name\n\n\nclass AutoSection(Enum):\n    \"\"\"Enum class for auto section generation approach.\"\"\"\n\n    AUTO = 1\n    ONLY_HEADER = 2\n    ONLY_BODY = 3\n    NONE = 4\n\n    def any(self) -> bool:\n        \"\"\"Return True if the enum is not NONE.\"\"\"\n        return self != AutoSection.NONE\n\n    def header(self) -> bool:\n        \"\"\"Return True if the enum is not ONLY_BODY.\"\"\"\n        return self != AutoSection.ONLY_BODY and self != AutoSection.NONE\n\n    def body(self) -> bool:\n        \"\"\"Return True if the enum is not ONLY_HEADER.\"\"\"\n        return self != AutoSection.ONLY_HEADER and self != AutoSection.NONE\n\n\nSUPPORT_MULTI_SECTION_HEADER = [SectionKind.CODE, SectionKind.CONTAINER]\n\n\nclass Section(CopyValidateModel):\n    \"\"\"Class that represents a section in an EOF V1 container.\"\"\"\n\n    data: Bytes = Bytes(b\"\")\n    \"\"\"\n    Data to be contained by this section. Can be SupportsBytes, another EOF\n    container or any other abstract data.\n    \"\"\"\n    custom_size: int = 0\n    \"\"\"\n    Custom size value to be used in the header. If unset, the header is built\n    with length of the data.\n    \"\"\"\n    kind: SectionKind | int\n    \"\"\"\n    Kind of section that is represented by this object. Can be any `int`\n    outside of the values defined by `SectionKind` for testing purposes.\n    \"\"\"\n    force_type_listing: bool = False\n    \"\"\"\n    Forces this section to appear in the TYPE section at the beginning of the\n    container.\n    \"\"\"\n    code_inputs: int = 0\n    \"\"\"Data stack items consumed by this code section (function)\"\"\"\n    code_outputs: int = NON_RETURNING_SECTION\n    \"\"\"\n    Data stack items produced by or expected at the end of this code section\n    (function)\n    \"\"\"\n    max_stack_increase: int | None = None\n    \"\"\"Maximum operand stack height increase above the code section inputs.\"\"\"\n    max_stack_height: int | None = None\n    \"\"\"Maximum height data stack reaches during execution of code section.\"\"\"\n    auto_max_stack_height: bool = False\n    \"\"\"\n    Whether to automatically compute the best suggestion for the\n    max_stack_height value for this code section.\n    \"\"\"\n    auto_code_inputs_outputs: bool = False\n    \"\"\"\n    Whether to automatically compute the best suggestion for the code_inputs,\n    code_outputs values for this code section.\n    \"\"\"\n    skip_header_listing: bool = False\n    \"\"\"Skip section from listing in the header\"\"\"\n    skip_body_listing: bool = False\n    \"\"\"Skip section from listing in the body\"\"\"\n    skip_types_body_listing: bool = False\n    \"\"\"\n    Skip section from listing in the types body (input, output, stack) bytes\n    \"\"\"\n    skip_types_header_listing: bool = False\n    \"\"\"\n    Skip section from listing in the types header (not calculating input,\n    output, stack size)\n    \"\"\"\n\n    @cached_property\n    def header(self) -> bytes:\n        \"\"\"Get formatted header for this section according to its contents.\"\"\"\n        size = self.custom_size if \"custom_size\" in self.model_fields_set else len(self.data)\n        if self.kind == SectionKind.CODE:\n            raise Exception(\"Need container-wide view of code sections to generate header\")\n        return self.kind.to_bytes(\n            HEADER_SECTION_KIND_BYTE_LENGTH, byteorder=\"big\"\n        ) + size.to_bytes(HEADER_SECTION_SIZE_BYTE_LENGTH, byteorder=\"big\")\n\n    @cached_property\n    def type_definition(self) -> bytes:\n        \"\"\"Returns a serialized type section entry for this section.\"\"\"\n        if self.kind != SectionKind.CODE and not self.force_type_listing:\n            return bytes()\n\n        code_inputs, code_outputs, max_stack_increase, max_stack_height = (\n            self.code_inputs,\n            self.code_outputs,\n            self.max_stack_increase,\n            self.max_stack_height,\n        )\n        if self.auto_max_stack_height or self.auto_code_inputs_outputs:\n            (\n                auto_code_inputs,\n                auto_code_outputs,\n                auto_max_height,\n            ) = compute_code_stack_values(self.data)\n            if self.auto_code_inputs_outputs:\n                code_inputs, code_outputs = (\n                    auto_code_inputs,\n                    auto_code_outputs,\n                )\n            if self.auto_max_stack_height:\n                max_stack_increase = auto_max_height - code_inputs\n\n        if max_stack_increase is not None:\n            assert max_stack_height is None\n        elif max_stack_height is not None:\n            max_stack_increase = max_stack_height - code_inputs\n        else:\n            max_stack_increase = 0\n        assert max_stack_increase >= 0, \"incorrect max stack height value\"\n        return (\n            code_inputs.to_bytes(length=TYPES_INPUTS_BYTE_LENGTH, byteorder=\"big\")\n            + code_outputs.to_bytes(length=TYPES_OUTPUTS_BYTE_LENGTH, byteorder=\"big\")\n            + max_stack_increase.to_bytes(length=TYPES_STACK_BYTE_LENGTH, byteorder=\"big\")\n        )\n\n    def with_max_stack_height(self, max_stack_height: int) -> \"Section\":\n        \"\"\"\n        Create copy of the section with `max_stack_height` set to the specified\n        value.\n        \"\"\"\n        return self.copy(max_stack_height=max_stack_height)\n\n    def with_auto_max_stack_height(self) -> \"Section\":\n        \"\"\"\n        Create copy of the section with `auto_max_stack_height` set to True.\n        \"\"\"\n        return self.copy(auto_max_stack_height=True)\n\n    def with_auto_code_inputs_outputs(self) -> \"Section\":\n        \"\"\"\n        Create copy of the section with `auto_code_inputs_outputs` set to True.\n        \"\"\"\n        return self.copy(auto_code_inputs_outputs=True)\n\n    @staticmethod\n    def list_header(sections: List[\"Section\"]) -> bytes:\n        \"\"\"\n        Create single code header for all code sections contained in the list.\n        \"\"\"\n        # Allow 'types section' to use skip_header_listing flag\n        if sections[0].skip_header_listing:\n            return b\"\"\n\n        if sections[0].kind not in SUPPORT_MULTI_SECTION_HEADER:\n            return b\"\".join(s.header for s in sections)\n\n        h = sections[0].kind.to_bytes(HEADER_SECTION_KIND_BYTE_LENGTH, \"big\")\n\n        # Count only those sections that are not marked to be skipped for\n        # header calculation\n        header_registered_sections = 0\n        for cs in sections:\n            if not cs.skip_header_listing:\n                header_registered_sections += 1\n\n        h += header_registered_sections.to_bytes(HEADER_SECTION_COUNT_BYTE_LENGTH, \"big\")\n        for cs in sections:\n            # If section is marked to skip the header calculation, don't make\n            # header for it\n            if cs.skip_header_listing:\n                continue\n            size = cs.custom_size if \"custom_size\" in cs.model_fields_set else len(cs.data)\n            body_size_length = (\n                HEADER_SECTION_SIZE_BYTE_LENGTH\n                if cs.kind != SectionKind.CONTAINER\n                else HEADER_SECTION_CONTAINER_SIZE_BYTE_LENGTH\n            )\n            h += size.to_bytes(body_size_length, \"big\")\n\n        return h\n\n    @classmethod\n    def Code(  # noqa: N802\n        cls, code: Optional[BytesConvertible | Bytecode] = None, **kwargs: Any\n    ) -> \"Section\":\n        \"\"\"Create new code section with the specified code.\"\"\"\n        if code is None:\n            code = Bytecode()\n        kwargs.pop(\"kind\", None)\n        if (\n            \"max_stack_height\" not in kwargs\n            and \"max_stack_increase\" not in kwargs\n            and isinstance(code, Bytecode)\n        ):\n            # If not specified, take the max_stack_increase from the Bytecode.\n            kwargs[\"max_stack_increase\"] = code.max_stack_height - kwargs.get(\"code_inputs\", 0)\n        return cls(kind=SectionKind.CODE, data=code, **kwargs)\n\n    @classmethod\n    def Container(  # noqa: N802\n        cls, container: \"Container\" | BytesConvertible, **kwargs: Any\n    ) -> \"Section\":\n        \"\"\"Create new container section with the specified container.\"\"\"\n        kwargs.pop(\"kind\", None)\n        return cls(kind=SectionKind.CONTAINER, data=container, **kwargs)\n\n    @classmethod\n    def Data(cls, data: BytesConvertible = b\"\", **kwargs: Any) -> \"Section\":  # noqa: N802\n        \"\"\"Create new data section with the specified data.\"\"\"\n        kwargs.pop(\"kind\", None)\n        return cls(kind=SectionKind.DATA, data=data, **kwargs)\n\n\nclass Container(CopyValidateModel):\n    \"\"\"Class that represents an EOF V1 container.\"\"\"\n\n    name: Optional[str] = None\n    \"\"\"Name of the container\"\"\"\n    sections: List[Section] = Field(default_factory=list)\n    \"\"\"List of sections in the container\"\"\"\n    magic: Bytes = Bytes(EOF_MAGIC)\n    \"\"\"\n    Custom magic value used to override the mandatory EOF value for testing\n    purposes.\n    \"\"\"\n    version: Bytes = Bytes(VERSION_NUMBER_BYTES)\n    \"\"\"\n    Custom version value used to override the mandatory EOF V1 value for\n    testing purposes.\n    \"\"\"\n    header_terminator: Bytes = Bytes(EOF_HEADER_TERMINATOR)\n    \"\"\"Bytes used to terminate the header.\"\"\"\n    extra: Bytes = Bytes(b\"\")\n    \"\"\"\n    Extra data to be appended at the end of the container, which will not be\n    considered part of any of the sections, for testing purposes.\n    \"\"\"\n    auto_type_section: AutoSection = AutoSection.AUTO\n    \"\"\"\n    Automatically generate a `TYPE` section based on the included `CODE` kind\n    sections.\n    \"\"\"\n    auto_data_section: bool = True\n    \"\"\"Automatically generate a `DATA` section.\"\"\"\n    auto_sort_sections: AutoSection = AutoSection.AUTO\n    \"\"\"\n    Automatically sort sections for the header and body: Headers: type section\n    first, all code sections, container sections, last data section(s) Body:\n    type section first, all code sections, data section(s), last container\n    sections\n    \"\"\"\n    skip_join_concurrent_sections_in_header: bool = False\n    \"\"\"Skip joining concurrent sections in the header (code and container)\"\"\"\n    validity_error: EOFExceptionInstanceOrList | str | None = None\n    \"\"\"Optional error expected for the container. TODO: Remove str\"\"\"\n    kind: ContainerKind = ContainerKind.RUNTIME\n    \"\"\"Kind type of the container.\"\"\"\n    raw_bytes: Optional[Bytes] = None\n    \"\"\"\n    Optional raw bytes that represent the container. Used to have a cohesive\n    type among all test cases, even those that do not resemble a valid EOF V1\n    container.\n    \"\"\"\n    expected_bytecode: Optional[Bytes] = None\n    \"\"\"\n    Optional raw bytes of the expected constructed bytecode. This allows\n    confirming that raw EOF and Container() representations are identical.\n    \"\"\"\n\n    @cached_property\n    def bytecode(self) -> bytes:\n        \"\"\"Converts the EOF V1 Container into bytecode.\"\"\"\n        if self.raw_bytes is not None:\n            assert len(self.sections) == 0\n            return self.raw_bytes\n\n        c = self.magic + self.version\n\n        # Prepare auto-generated sections\n        sections = self.sections\n\n        # Add type section if needed\n        if self.auto_type_section.any() and count_sections(sections, SectionKind.TYPE) == 0:\n            # Calculate skipping flags\n            types_header_size = 0\n            type_section_data = b\"\"\n            for s in sections:\n                types_header_size += (\n                    len(s.type_definition) if not s.skip_types_header_listing else 0\n                )\n                type_section_data += s.type_definition if not s.skip_types_body_listing else b\"\"\n\n            sections = [\n                Section(\n                    kind=SectionKind.TYPE, data=type_section_data, custom_size=types_header_size\n                )\n            ] + sections\n\n        # Add data section if needed\n        if self.auto_data_section and count_sections(sections, SectionKind.DATA) == 0:\n            sections = sections + [Section(kind=SectionKind.DATA, data=\"0x\")]\n\n        header_sections = [\n            s\n            for s in sections\n            if s.kind != SectionKind.TYPE or self.auto_type_section != AutoSection.ONLY_BODY\n        ]\n        if self.auto_sort_sections.header():\n            header_sections.sort(key=lambda x: x.kind)\n\n        # Add headers\n        if header_sections:\n            # Join headers of the same kind in a list of lists, only if they\n            # are next to each other\n            concurrent_sections: List[List[Section]] = [[header_sections[0]]]\n            for s in header_sections[1:]:\n                if (\n                    s.kind == concurrent_sections[-1][-1].kind\n                    and not self.skip_join_concurrent_sections_in_header\n                ):\n                    concurrent_sections[-1].append(s)\n                else:\n                    concurrent_sections.append([s])\n            c += b\"\".join(Section.list_header(cs) for cs in concurrent_sections)\n\n        # Add header terminator\n        c += self.header_terminator\n\n        body_sections = sections[:]\n        if self.auto_sort_sections.body():\n            # Sort sections for the body\n            body_sections.sort(key=lambda x: x.kind)\n\n        # Add section bodies\n        for s in body_sections:\n            if s.kind == SectionKind.TYPE and self.auto_type_section == AutoSection.ONLY_HEADER:\n                continue\n            if s.data and not s.skip_body_listing:\n                c += s.data\n\n        # Add extra (garbage)\n        c += self.extra\n\n        # Check if the constructed bytecode matches the expected one\n        if self.expected_bytecode is not None:\n            assert c == self.expected_bytecode\n\n        return c\n\n    @classmethod\n    def Code(cls, code: Optional[BytesConvertible] = None, **kwargs: Any) -> \"Container\":  # noqa: N802\n        \"\"\"Create simple container with a single code section.\"\"\"\n        if code is None:\n            code = Bytecode()\n        kwargs.pop(\"kind\", None)\n        return cls(sections=[Section.Code(code=code, **kwargs)])\n\n    @classmethod\n    def Init(  # noqa: N802\n        cls,\n        deploy_container: \"Container\",\n        initcode_prefix: Optional[Bytecode] = None,\n    ) -> \"Container\":\n        \"\"\"\n        Create simple init container that deploys the specified container.\n        \"\"\"\n        if initcode_prefix is None:\n            initcode_prefix = Bytecode()\n        return cls(\n            sections=[\n                Section.Code(\n                    code=initcode_prefix + Op.RETURNCODE[0](0, 0),\n                ),\n                Section.Container(\n                    container=deploy_container,\n                ),\n            ],\n        )\n\n    @cached_property\n    def hash(self) -> Hash:\n        \"\"\"Returns hash of the container bytecode.\"\"\"\n        return Bytes(self.bytecode).keccak256()\n\n    def __bytes__(self) -> bytes:\n        \"\"\"Return bytecode of the container.\"\"\"\n        return self.bytecode\n\n    def __len__(self) -> int:\n        \"\"\"Return length of the container bytecode.\"\"\"\n        return len(self.bytecode)\n\n    def __str__(self) -> str:\n        \"\"\"\n        Return name of the container if available, otherwise the bytecode of\n        the container as a string.\n        \"\"\"\n        if self.name:\n            return self.name\n        return str(self.bytecode)\n\n\n@dataclass(kw_only=True)\nclass Initcode(Bytecode):\n    \"\"\"\n    Helper class used to generate initcode for the specified deployment code,\n    using EOF V1 container as init code.\n    \"\"\"\n\n    name: str = \"EOF V1 Initcode\"\n    \"\"\"Name used to identify the initcode.\"\"\"\n    deploy_container: Container\n    \"\"\"Container to be deployed.\"\"\"\n\n    @cached_property\n    def init_container(self) -> Container:\n        \"\"\"Generate a container that will be used as the initcode.\"\"\"\n        return Container(\n            sections=[\n                Section.Code(\n                    code=Op.RETURNCODE[0](0, 0),\n                    max_stack_height=2,\n                ),\n                Section.Container(\n                    container=self.deploy_container,\n                ),\n            ],\n        )\n\n    @cached_property\n    def bytecode(self) -> bytes:\n        \"\"\"\n        Generate an EOF container performs `EOFCREATE` with the specified code.\n        \"\"\"\n        initcode = Container(\n            sections=[\n                Section.Code(\n                    # TODO: Pass calldata\n                    code=Op.EOFCREATE[0](0, 0, 0, 0) + Op.STOP(),\n                    max_stack_height=4,\n                ),\n                Section.Container(\n                    container=self.init_container,\n                ),\n            ]\n        )\n\n        return bytes(initcode)\n\n\ndef count_sections(sections: List[Section], kind: SectionKind | int) -> int:\n    \"\"\"Count sections from a list that match a specific kind.\"\"\"\n    return len([s for s in sections if s.kind == kind])\n\n\nOPCODE_MAP: Dict[int, Op] = {x.int(): x for x in Op}\n\n\ndef compute_code_stack_values(code: bytes) -> Tuple[int, int, int]:\n    \"\"\"\n    Compute stack values for the given bytecode.\n\n    TODO: THIS DOES NOT WORK WHEN THE RJUMP* JUMPS BACKWARDS (and many other\n    things).\n    \"\"\"\n    i = 0\n    stack_height = 0\n    min_stack_height = 0\n    max_stack_height = 0\n\n    # compute type annotation\n    while i < len(code):\n        op = OPCODE_MAP.get(code[i])\n        if op is None:\n            return (0, 0, 0)\n        elif op == Op.RJUMPV:\n            i += 1\n            if i < len(code):\n                count = code[i]\n                i += count * 2\n        else:\n            i += 1 + op.data_portion_length\n\n        stack_height -= op.popped_stack_items\n        min_stack_height = min(stack_height, min_stack_height)\n        stack_height += op.pushed_stack_items\n        max_stack_height = max(stack_height, max_stack_height)\n    if stack_height < 0:\n        stack_height = 0\n    return (abs(min_stack_height), stack_height, max_stack_height)\n"
  },
  {
    "path": "src/ethereum_test_types/eof/v1/constants.py",
    "content": "\"\"\"\nEVM Object Format generic constants.\nApplicable to EOF version 1.\n\"\"\"\n\nfrom ..constants import VERSION_BYTE_LENGTH\n\nVERSION_NUMBER = 0x01\n\nVERSION_NUMBER_BYTES = VERSION_NUMBER.to_bytes(VERSION_BYTE_LENGTH, \"big\")\n\nMAX_CODE_SECTIONS = 1024\n\nMAX_RETURN_STACK_HEIGHT = 1024\n\nMAX_STACK_INCREASE_LIMIT = 0x3FF\n\"\"\"\nMaximum value for the max stack increase accepted by the EOF format.\n\"\"\"\n\nMAX_CODE_INPUTS = 127\n\nMAX_CODE_OUTPUTS = 127\n\nNON_RETURNING_SECTION = 0x80\n\nMAX_RJUMPV_COUNT = 0xFF\n\nMAX_BYTECODE_SIZE = 24576\n\nMAX_INITCODE_SIZE = MAX_BYTECODE_SIZE * 2\n\nHEADER_SECTION_KIND_BYTE_LENGTH = 1\n\nHEADER_SECTION_COUNT_BYTE_LENGTH = 2\n\nHEADER_SECTION_SIZE_BYTE_LENGTH = 2\n\nHEADER_SECTION_CONTAINER_SIZE_BYTE_LENGTH = 4\n\nTYPES_INPUTS_BYTE_LENGTH = 1\n\nTYPES_OUTPUTS_BYTE_LENGTH = 1\n\nTYPES_STACK_BYTE_LENGTH = 2\n"
  },
  {
    "path": "src/ethereum_test_types/helpers.py",
    "content": "\"\"\"Helper functions/classes used to generate Ethereum tests.\"\"\"\n\nfrom typing import List, SupportsBytes\n\nimport ethereum_rlp as eth_rlp\nfrom pydantic import BaseModel, ConfigDict\n\nfrom ethereum_test_base_types.base_types import Address, Bytes, Hash\nfrom ethereum_test_base_types.conversions import BytesConvertible, FixedSizeBytesConvertible\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .account_types import EOA\nfrom .utils import int_to_bytes\n\n\"\"\"\nHelper functions\n\"\"\"\n\n\ndef ceiling_division(a: int, b: int) -> int:\n    \"\"\"\n    Calculate ceil without using floating point. Used by many of the EVM's\n    formulas.\n    \"\"\"\n    return -(a // -b)\n\n\ndef compute_create_address(\n    *,\n    address: FixedSizeBytesConvertible | EOA,\n    nonce: int | None = None,\n    salt: int = 0,\n    initcode: BytesConvertible = b\"\",\n    opcode: Op = Op.CREATE,\n) -> Address:\n    \"\"\"\n    Compute address of the resulting contract created using a transaction or\n    the `CREATE` opcode.\n    \"\"\"\n    if opcode == Op.CREATE:\n        if isinstance(address, EOA):\n            if nonce is None:\n                nonce = address.nonce\n        else:\n            address = Address(address)\n        if nonce is None:\n            nonce = 0\n        hash_bytes = Bytes(eth_rlp.encode([address, int_to_bytes(nonce)])).keccak256()\n        return Address(hash_bytes[-20:])\n    if opcode == Op.CREATE2:\n        return compute_create2_address(address, salt, initcode)\n    raise ValueError(\"Unsupported opcode\")\n\n\ndef compute_create2_address(\n    address: FixedSizeBytesConvertible, salt: FixedSizeBytesConvertible, initcode: BytesConvertible\n) -> Address:\n    \"\"\"\n    Compute address of the resulting contract created using the `CREATE2`\n    opcode.\n    \"\"\"\n    hash_bytes = Bytes(\n        b\"\\xff\" + Address(address) + Hash(salt) + Bytes(initcode).keccak256()\n    ).keccak256()\n    return Address(hash_bytes[-20:])\n\n\ndef compute_eofcreate_address(\n    address: FixedSizeBytesConvertible, salt: FixedSizeBytesConvertible\n) -> Address:\n    \"\"\"\n    Compute address of the resulting contract created using the `EOFCREATE`\n    opcode.\n    \"\"\"\n    hash_bytes = Bytes(b\"\\xff\" + b\"\\x00\" * 12 + Address(address) + Hash(salt)).keccak256()\n    return Address(hash_bytes[-20:])\n\n\ndef add_kzg_version(\n    b_hashes: List[bytes | SupportsBytes | int | str], kzg_version: int\n) -> List[Hash]:\n    \"\"\"Add  Kzg Version to each blob hash.\"\"\"\n    kzg_version_hex = bytes([kzg_version])\n    kzg_versioned_hashes = []\n\n    for b_hash in b_hashes:\n        b_hash = bytes(Hash(b_hash))\n        if isinstance(b_hash, int) or isinstance(b_hash, str):\n            kzg_versioned_hashes.append(Hash(kzg_version_hex + b_hash[1:]))\n        elif isinstance(b_hash, bytes) or isinstance(b_hash, SupportsBytes):\n            if isinstance(b_hash, SupportsBytes):\n                b_hash = bytes(b_hash)\n            kzg_versioned_hashes.append(Hash(kzg_version_hex + b_hash[1:]))\n        else:\n            raise TypeError(\"Blob hash must be either an integer, string or bytes\")\n    return kzg_versioned_hashes\n\n\nclass TestParameterGroup(BaseModel):\n    \"\"\"\n    Base class for grouping test parameters in a dataclass. Provides a generic\n    __repr__ method to generate clean test ids, including only non-default\n    optional fields.\n    \"\"\"\n\n    __test__ = False  # explicitly prevent pytest collecting this class\n\n    model_config = ConfigDict(frozen=True, validate_default=True)\n\n    def __repr__(self) -> str:\n        \"\"\"\n        Generate repr string, intended to be used as a test id, based on the\n        class name and the values of the non-default optional fields.\n        \"\"\"\n        class_name = self.__class__.__name__\n        field_strings = [\n            f\"{field}_{value}\"\n            # Include the field only if it is not optional or not set to its\n            # default value\n            for field, value in self.model_dump(exclude_defaults=True, exclude_unset=True).items()\n        ]\n\n        return f\"{class_name}_{'-'.join(field_strings)}\"\n"
  },
  {
    "path": "src/ethereum_test_types/kzg_trusted_setup.txt",
    "content": "4096\n65\na0413c0dcafec6dbc9f47d66785cf1e8c981044f7d13cfe3e4fcbb71b5408dfde6312493cb3c1d30516cb3ca88c03654\n8b997fb25730d661918371bb41f2a6e899cac23f04fc5365800b75433c0a953250e15e7a98fb5ca5cc56a8cd34c20c57\n83302852db89424d5699f3f157e79e91dc1380f8d5895c5a772bb4ea3a5928e7c26c07db6775203ce33e62a114adaa99\na759c48b7e4a685e735c01e5aa6ef9c248705001f470f9ad856cd87806983e917a8742a3bd5ee27db8d76080269b7c83\n967f8dc45ebc3be14c8705f43249a30ff48e96205fb02ae28daeab47b72eb3f45df0625928582aa1eb4368381c33e127\na418eb1e9fb84cb32b370610f56f3cb470706a40ac5a47c411c464299c45c91f25b63ae3fcd623172aa0f273c0526c13\n8f44e3f0387293bc7931e978165abbaed08f53acd72a0a23ac85f6da0091196b886233bcee5b4a194db02f3d5a9b3f78\n97173434b336be73c89412a6d70d416e170ea355bf1956c32d464090b107c090ef2d4e1a467a5632fbc332eeb679bf2d\na24052ad8d55ad04bc5d951f78e14213435681594110fd18173482609d5019105b8045182d53ffce4fc29fc8810516c1\nb950768136b260277590b5bec3f56bbc2f7a8bc383d44ce8600e85bf8cf19f479898bcc999d96dfbd2001ede01d94949\n92ab8077871037bd3b57b95cbb9fb10eb11efde9191690dcac655356986fd02841d8fdb25396faa0feadfe3f50baf56d\na79b096dff98038ac30f91112dd14b78f8ad428268af36d20c292e2b3b6d9ed4fb28480bb04e465071cc67d05786b6d1\nb9ff71461328f370ce68bf591aa7fb13027044f42a575517f3319e2be4aa4843fa281e756d0aa5645428d6dfa857cef2\n8d765808c00b3543ff182e2d159c38ae174b12d1314da88ea08e13bd9d1c37184cb515e6bf6420531b5d41767987d7ce\nb8c9a837d20c3b53e6f578e4a257bb7ef8fc43178614ec2a154915b267ad2be135981d01ed2ee1b5fbd9d9bb27f0800a\na9773d92cf23f65f98ef68f6cf95c72b53d0683af2f9bf886bb9036e4a38184b1131b26fd24397910b494fbef856f3aa\nb41ebe38962d112da4a01bf101cb248d808fbd50aaf749fc7c151cf332032eb3e3bdbd716db899724b734d392f26c412\n90fbb030167fb47dcc13d604a726c0339418567c1d287d1d87423fa0cb92eec3455fbb46bcbe2e697144a2d3972142e4\nb11d298bd167464b35fb923520d14832bd9ed50ed841bf6d7618424fd6f3699190af21759e351b89142d355952149da1\n8bc36066f69dc89f7c4d1e58d67497675050c6aa002244cebd9fc957ec5e364c46bab4735ea3db02b73b3ca43c96e019\nab7ab92c5d4d773068e485aa5831941ebd63db7118674ca38089635f3b4186833af2455a6fb9ed2b745df53b3ce96727\naf191ca3089892cb943cd97cf11a51f38e38bd9be50844a4e8da99f27e305e876f9ed4ab0628e8ae3939066b7d34a15f\na3204c1747feabc2c11339a542195e7cb6628fd3964f846e71e2e3f2d6bb379a5e51700682ea1844eba12756adb13216\n903a29883846b7c50c15968b20e30c471aeac07b872c40a4d19eb1a42da18b649d5bbfde4b4cf6225d215a461b0deb6d\n8e6e9c15ffbf1e16e5865a5fef7ed751dc81957a9757b535cb38b649e1098cda25d42381dc4f776778573cdf90c3e6e0\na8f6dd26100b512a8c96c52e00715c4b2cb9ac457f17aed8ffe1cf1ea524068fe5a1ddf218149845fc1417b789ecfc98\na5b0ffc819451ea639cfd1c18cbc9365cc79368d3b2e736c0ae54eba2f0801e6eb0ee14a5f373f4a70ca463bdb696c09\n879f91ccd56a1b9736fbfd20d8747354da743fb121f0e308a0d298ff0d9344431890e41da66b5009af3f442c636b4f43\n81bf3a2d9755e206b515a508ac4d1109bf933c282a46a4ae4a1b4cb4a94e1d23642fad6bd452428845afa155742ade7e\n8de778d4742f945df40004964e165592f9c6b1946263adcdd5a88b00244bda46c7bb49098c8eb6b3d97a0dd46148a8ca\nb7a57b21d13121907ee28c5c1f80ee2e3e83a3135a8101e933cf57171209a96173ff5037f5af606e9fd6d066de6ed693\nb0877d1963fd9200414a38753dffd9f23a10eb3198912790d7eddbc9f6b477019d52ddd4ebdcb9f60818db076938a5a9\n88da2d7a6611bc16adc55fc1c377480c828aba4496c645e3efe0e1a67f333c05a0307f7f1d2df8ac013602c655c6e209\n95719eb02e8a9dede1a888c656a778b1c69b7716fbe3d1538fe8afd4a1bc972183c7d32aa7d6073376f7701df80116d8\n8e8a1ca971f2444b35af3376e85dccda3abb8e8e11d095d0a4c37628dfe5d3e043a377c3de68289ef142e4308e9941a0\nb720caaff02f6d798ac84c4f527203e823ff685869e3943c979e388e1c34c3f77f5c242c6daa7e3b30e511aab917b866\n86040d55809afeec10e315d1ad950d269d37cfee8c144cd8dd4126459e3b15a53b3e68df5981df3c2346d23c7b4baaf4\n82d8cabf13ab853db0377504f0aec00dba3a5cd3119787e8ad378ddf2c40b022ecfc67c642b7acc8c1e3dd03ab50993e\nb8d873927936719d2484cd03a6687d65697e17dcf4f0d5aed6f5e4750f52ef2133d4645894e7ebfc4ef6ce6788d404c8\nb1235594dbb15b674a419ff2b2deb644ad2a93791ca05af402823f87114483d6aa1689b7a9bea0f547ad12fe270e4344\na53fda86571b0651f5affb74312551a082fffc0385cfd24c1d779985b72a5b1cf7c78b42b4f7e51e77055f8e5e915b00\nb579adcfd9c6ef916a5a999e77a0cb21d378c4ea67e13b7c58709d5da23a56c2e54218691fc4ac39a4a3d74f88cc31f7\nab79e584011713e8a2f583e483a91a0c2a40771b77d91475825b5acbea82db4262132901cb3e4a108c46d7c9ee217a4e\na0fe58ea9eb982d7654c8aaf9366230578fc1362f6faae0594f8b9e659bcb405dff4aac0c7888bbe07f614ecf0d800a6\n867e50e74281f28ecd4925560e2e7a6f8911b135557b688254623acce0dbc41e23ac3e706a184a45d54c586edc416eb0\n89f81b61adda20ea9d0b387a36d0ab073dc7c7cbff518501962038be19867042f11fcc7ff78096e5d3b68c6d8dc04d9b\na58ee91bb556d43cf01f1398c5811f76dc0f11efdd569eed9ef178b3b0715e122060ec8f945b4dbf6eebfa2b90af6fa6\nac460be540f4c840def2eef19fc754a9af34608d107cbadb53334cf194cc91138d53b9538fcd0ec970b5d4aa455b224a\nb09b91f929de52c09d48ca0893be6eb44e2f5210a6c394689dc1f7729d4be4e11d0474b178e80cea8c2ac0d081f0e811\n8d37a442a76b06a02a4e64c2504aea72c8b9b020ab7bcc94580fe2b9603c7c50d7b1e9d70d2a7daea19c68667e8f8c31\na9838d4c4e3f3a0075a952cf7dd623307ec633fcc81a7cf9e52e66c31780de33dbb3d74c320dc7f0a4b72f7a49949515\na44766b6251af458fe4f5f9ed1e02950f35703520b8656f09fc42d9a2d38a700c11a7c8a0436ac2e5e9f053d0bb8ff91\nad78d9481c840f5202546bea0d13c776826feb8b1b7c72e83d99a947622f0bf38a4208551c4c41beb1270d7792075457\nb619ffa8733b470039451e224b777845021e8dc1125f247a4ff2476cc774657d0ff9c5279da841fc1236047de9d81c60\naf760b0a30a1d6af3bc5cd6686f396bd41779aeeb6e0d70a09349bd5da17ca2e7965afc5c8ec22744198fbe3f02fb331\na0cc209abdb768b589fcb7b376b6e1cac07743288c95a1cf1a0354b47f0cf91fca78a75c1fcafa6f5926d6c379116608\n864add673c89c41c754eeb3cd8dcff5cdde1d739fce65c30e474a082bb5d813cba6412e61154ce88fdb6c12c5d9be35b\nb091443b0ce279327dc37cb484e9a5b69b257a714ce21895d67539172f95ffa326903747b64a3649e99aea7bb10d03f7\na8c452b8c4ca8e0a61942a8e08e28f17fb0ef4c5b018b4e6d1a64038280afa2bf1169202f05f14af24a06ca72f448ccd\na23c24721d18bc48d5dcf70effcbef89a7ae24e67158d70ae1d8169ee75d9a051d34b14e9cf06488bac324fe58549f26\n92a730e30eb5f3231feb85f6720489dbb1afd42c43f05a1610c6b3c67bb949ec8fde507e924498f4ffc646f7b07d9123\n8dbe5abf4031ec9ba6bb06d1a47dd1121fb9e03b652804069250967fd5e9577d0039e233441b7f837a7c9d67ba18c28e\naa456bcfef6a21bb88181482b279df260297b3778e84594ebddbdf337e85d9e3d46ca1d0b516622fb0b103df8ec519b7\na3b31ae621bd210a2b767e0e6f22eb28fe3c4943498a7e91753225426168b9a26da0e02f1dc5264da53a5ad240d9f51b\naa8d66857127e6e71874ce2202923385a7d2818b84cb73a6c42d71afe70972a70c6bdd2aad1a6e8c5e4ca728382a8ea8\nac7e8e7a82f439127a5e40558d90d17990f8229852d21c13d753c2e97facf077cf59582b603984c3dd3faebd80aff4f5\n93a8bcf4159f455d1baa73d2ef2450dcd4100420de84169bbe28b8b7a5d1746273f870091a87a057e834f754f34204b1\n89d0ebb287c3613cdcae7f5acc43f17f09c0213fc40c074660120b755d664109ffb9902ed981ede79e018ddb0c845698\na87ccbfad431406aadbee878d9cf7d91b13649d5f7e19938b7dfd32645a43b114eef64ff3a13201398bd9b0337832e5a\n833c51d0d0048f70c3eefb4e70e4ff66d0809c41838e8d2c21c288dd3ae9d9dfaf26d1742bf4976dab83a2b381677011\n8bcd6b1c3b02fffead432e8b1680bad0a1ac5a712d4225e220690ee18df3e7406e2769e1f309e2e803b850bc96f0e768\nb61e3dbd88aaf4ff1401521781e2eea9ef8b66d1fac5387c83b1da9e65c2aa2a56c262dea9eceeb4ad86c90211672db0\n866d3090db944ecf190dd0651abf67659caafd31ae861bab9992c1e3915cb0952da7c561cc7e203560a610f48fae633b\na5e8971543c14274a8dc892b0be188c1b4fbc75c692ed29f166e0ea80874bc5520c2791342b7c1d2fb5dd454b03b8a5b\n8f2f9fc50471bae9ea87487ebd1bc8576ef844cc42d606af5c4c0969670fdf2189afd643e4de3145864e7773d215f37f\nb1bb0f2527db6d51f42b9224383c0f96048bbc03d469bf01fe1383173ef8b1cc9455d9dd8ba04d46057f46949bfc92b5\naa7c99d906b4d7922296cfe2520473fc50137c03d68b7865c5bfb8adbc316b1034310ec4b5670c47295f4a80fb8d61e9\na5d1da4d6aba555919df44cbaa8ff79378a1c9e2cfdfbf9d39c63a4a00f284c5a5724e28ecbc2d9dba27fe4ee5018bd5\na8db53224f70af4d991b9aae4ffe92d2aa5b618ad9137784b55843e9f16cefbfd25ada355d308e9bbf55f6d2f7976fb3\nb6536c4232bb20e22af1a8bb12de76d5fec2ad9a3b48af1f38fa67e0f8504ef60f305a73d19385095bb6a9603fe29889\n87f7e371a1817a63d6838a8cf4ab3a8473d19ce0d4f40fd013c03d5ddd5f4985df2956531cc9f187928ef54c68f4f9a9\nae13530b1dbc5e4dced9d909ea61286ec09e25c12f37a1ed2f309b0eb99863d236c3b25ed3484acc8c076ad2fa8cd430\n98928d850247c6f7606190e687d5c94a627550198dbdbea0161ef9515eacdb1a0f195cae3bb293112179082daccf8b35\n918528bb8e6a055ad4db6230d3a405e9e55866da15c4721f5ddd1f1f37962d4904aad7a419218fe6d906fe191a991806\nb71e31a06afe065773dd3f4a6e9ef81c3292e27a3b7fdfdd452d03e05af3b6dd654c355f7516b2a93553360c6681a73a\n8870b83ab78a98820866f91ac643af9f3ff792a2b7fda34185a9456a63abdce42bfe8ad4dc67f08a6392f250d4062df4\n91eea1b668e52f7a7a5087fabf1cab803b0316f78d9fff469fbfde2162f660c250e4336a9eea4cb0450bd30ac067bc8b\n8b74990946de7b72a92147ceac1bd9d55999a8b576e8df68639e40ed5dc2062cfcd727903133de482b6dca19d0aaed82\n8ebad537fece090ebbab662bdf2618e21ca30cf6329c50935e8346d1217dcbe3c1fe1ea28efca369c6003ce0a94703c1\na8640479556fb59ebd1c40c5f368fbd960932fdbb782665e4a0e24e2bdb598fc0164ce8c0726d7759cfc59e60a62e182\na9a52a6bf98ee4d749f6d38be2c60a6d54b64d5cbe4e67266633dc096cf28c97fe998596707d31968cbe2064b72256bf\n847953c48a4ce6032780e9b39d0ed4384e0be202c2bbe2dfda3910f5d87aa5cd3c2ffbfcfae4dddce16d6ab657599b95\nb6f6e1485d3ec2a06abaecd23028b200b2e4a0096c16144d07403e1720ff8f9ba9d919016b5eb8dc5103880a7a77a1d3\n98dfc2065b1622f596dbe27131ea60bef7a193b12922cecb27f8c571404f483014f8014572e86ae2e341ab738e4887ef\nacb0d205566bacc87bbe2e25d10793f63f7a1f27fd9e58f4f653ceae3ffeba511eaf658e068fad289eeb28f9edbeb35b\nae4411ed5b263673cee894c11fe4abc72a4bf642d94022a5c0f3369380fcdfc1c21e277f2902972252503f91ada3029a\nac4a7a27ba390a75d0a247d93d4a8ef1f0485f8d373a4af4e1139369ec274b91b3464d9738eeaceb19cd6f509e2f8262\n87379c3bf231fdafcf6472a79e9e55a938d851d4dd662ab6e0d95fd47a478ed99e2ad1e6e39be3c0fc4f6d996a7dd833\n81316904b035a8bcc2041199a789a2e6879486ba9fddcba0a82c745cc8dd8374a39e523b91792170cd30be7aa3005b85\nb8206809c6cd027ed019f472581b45f7e12288f89047928ba32b4856b6560ad30395830d71e5e30c556f6f182b1fe690\n88d76c028f534a62e019b4a52967bb8642ede6becfa3807be68fdd36d366fc84a4ac8dc176e80a68bc59eb62caf5dff9\n8c3b8be685b0f8aad131ee7544d0e12f223f08a6f8edaf464b385ac644e0ddc9eff7cc7cb5c1b50ab5d71ea0f41d2213\n8d91410e004f76c50fdc05784157b4d839cb5090022c629c7c97a5e0c3536eeafee17a527b54b1165c3cd81774bb54ce\nb25c2863bc28ec5281ce800ddf91a7e1a53f4c6d5da1e6c86ef4616e93bcf55ed49e297216d01379f5c6e7b3c1e46728\n865f7b09ac3ca03f20be90c48f6975dd2588838c2536c7a3532a6aa5187ed0b709cd03d91ff4048061c10d0aa72b69ce\nb3f7477c90c11596eb4f8bbf34adbcb832638c4ff3cdd090d4d477ee50472ac9ddaf5be9ad7eca3f148960d362bbd098\n8db35fd53fca04faecd1c76a8227160b3ab46ac1af070f2492445a19d8ff7c25bbaef6c9fa0c8c088444561e9f7e4eb2\na478b6e9d058a2e01d2fc053b739092e113c23a6a2770a16afbef044a3709a9e32f425ace9ba7981325f02667c3f9609\n98caa6bd38916c08cf221722a675a4f7577f33452623de801d2b3429595f988090907a7e99960fff7c076d6d8e877b31\nb79aaaacefc49c3038a14d2ac468cfec8c2161e88bdae91798d63552cdbe39e0e02f9225717436b9b8a40a022c633c6e\n845a31006c680ee6a0cc41d3dc6c0c95d833fcf426f2e7c573fa15b2c4c641fbd6fe5ebb0e23720cc3467d6ee1d80dc4\na1bc287e272cf8b74dbf6405b3a5190883195806aa351f1dc8e525aa342283f0a35ff687e3b434324dedee74946dd185\na4fd2dc8db75d3783a020856e2b3aa266dc6926e84f5c491ef739a3bddd46dc8e9e0fc1177937839ef1b18d062ffbb9e\nacbf0d3c697f57c202bb8c5dc4f3fc341b8fc509a455d44bd86acc67cad2a04495d5537bcd3e98680185e8aa286f2587\na5caf423a917352e1b8e844f5968a6da4fdeae467d10c6f4bbd82b5eea46a660b82d2f5440d3641c717b2c3c9ed0be52\n8a39d763c08b926599ab1233219c49c825368fad14d9afc7c0c039224d37c00d8743293fd21645bf0b91eaf579a99867\nb2b53a496def0ba06e80b28f36530fbe0fb5d70a601a2f10722e59abee529369c1ae8fd0f2db9184dd4a2519bb832d94\na73980fcef053f1b60ebbb5d78ba6332a475e0b96a0c724741a3abf3b59dd344772527f07203cf4c9cb5155ebed81fa0\na070d20acce42518ece322c9db096f16aed620303a39d8d5735a0df6e70fbeceb940e8d9f5cc38f3314b2240394ec47b\na50cf591f522f19ca337b73089557f75929d9f645f3e57d4f241e14cdd1ea3fb48d84bcf05e4f0377afbb789fbdb5d20\n82a5ffce451096aca8eeb0cd2ae9d83db3ed76da3f531a80d9a70a346359bf05d74863ce6a7c848522b526156a5e20cd\n88e0e84d358cbb93755a906f329db1537c3894845f32b9b0b691c29cbb455373d9452fadd1e77e20a623f6eaf624de6f\naa07ac7b84a6d6838826e0b9e350d8ec75e398a52e9824e6b0da6ae4010e5943fec4f00239e96433f291fef9d1d1e609\nac8887bf39366034bc63f6cc5db0c26fd27307cbc3d6cce47894a8a019c22dd51322fb5096edc018227edfafc053a8f6\nb7d26c26c5b33f77422191dca94977588ab1d4b9ce7d0e19c4a3b4cd1c25211b78c328dbf81e755e78cd7d1d622ad23e\n99a676d5af49f0ba44047009298d8474cabf2d5bca1a76ba21eff7ee3c4691a102fdefea27bc948ccad8894a658abd02\nb0d09a91909ab3620c183bdf1d53d43d39eb750dc7a722c661c3de3a1a5d383ad221f71bae374f8a71867505958a3f76\n84681a883de8e4b93d68ac10e91899c2bbb815ce2de74bb48a11a6113b2a3f4df8aceabda1f5f67bc5aacac8c9da7221\n9470259957780fa9b43521fab3644f555f5343281c72582b56d2efd11991d897b3b481cafa48681c5aeb80c9663b68f7\nab1b29f7ece686e6fa968a4815da1d64f3579fed3bc92e1f3e51cd13a3c076b6cf695ed269d373300a62463dc98a4234\n8ab415bfcd5f1061f7687597024c96dd9c7cb4942b5989379a7a3b5742f7d394337886317659cbeacaf030234a24f972\nb9b524aad924f9acc63d002d617488f31b0016e0f0548f050cada285ce7491b74a125621638f19e9c96eabb091d945be\n8c4c373e79415061837dd0def4f28a2d5d74d21cb13a76c9049ad678ca40228405ab0c3941df49249847ecdefc1a5b78\na8edf4710b5ab2929d3db6c1c0e3e242261bbaa8bcec56908ddadd7d2dad2dca9d6eb9de630b960b122ebeea41040421\n8d66bb3b50b9df8f373163629f9221b3d4b6980a05ea81dc3741bfe9519cf3ebba7ab98e98390bae475e8ede5821bd5c\n8d3c21bae7f0cfb97c56952bb22084b58e7bb718890935b73103f33adf5e4d99cd262f929c6eeab96209814f0dbae50a\na5c66cfab3d9ebf733c4af24bebc97070e7989fe3c73e79ac85fb0e4d40ae44fb571e0fad4ad72560e13ed453900d14f\n9362e6b50b43dbefbc3254471372297b5dcce809cd3b60bf74a1268ab68bdb50e46e462cbd78f0d6c056330e982846af\n854630d08e3f0243d570cc2e856234cb4c1a158d9c1883bf028a76525aaa34be897fe918d5f6da9764a3735fa9ebd24a\n8c7d246985469ff252c3f4df6c7c9196fc79f05c1c66a609d84725c78001d0837c7a7049394ba5cf7e863e2d58af8417\nae050271e01b528925302e71903f785b782f7bf4e4e7a7f537140219bc352dc7540c657ed03d3a297ad36798ecdb98cd\n8d2ae9179fcf2b0c69850554580b52c1f4a5bd865af5f3028f222f4acad9c1ad69a8ef6c7dc7b03715ee5c506b74325e\nb8ef8de6ce6369a8851cd36db0ccf00a85077e816c14c4e601f533330af9e3acf0743a95d28962ed8bfcfc2520ef3cfe\na6ecad6fdfb851b40356a8b1060f38235407a0f2706e7b8bb4a13465ca3f81d4f5b99466ac2565c60af15f022d26732e\n819ff14cdea3ab89d98e133cd2d0379361e2e2c67ad94eeddcdb9232efd509f51d12f4f03ebd4dd953bd262a886281f7\n8561cd0f7a6dbcddd83fcd7f472d7dbcba95b2d4fb98276f48fccf69f76d284e626d7e41314b633352df8e6333fd52a1\nb42557ccce32d9a894d538c48712cb3e212d06ac05cd5e0527ccd2db1078ee6ae399bf6a601ffdab1f5913d35fc0b20c\n89b4008d767aad3c6f93c349d3b956e28307311a5b1cec237e8d74bb0dee7e972c24f347fd56afd915a2342bd7bc32f0\n877487384b207e53f5492f4e36c832c2227f92d1bb60542cfeb35e025a4a7afc2b885fae2528b33b40ab09510398f83e\n8c411050b63c9053dd0cd81dacb48753c3d7f162028098e024d17cd6348482703a69df31ad6256e3d25a8bbf7783de39\na8506b54a88d17ac10fb1b0d1fe4aa40eae7553a064863d7f6b52ccc4236dd4b82d01dca6ba87da9a239e3069ba879fb\nb1a24caef9df64750c1350789bb8d8a0db0f39474a1c74ea9ba064b1516db6923f00af8d57c632d58844fb8786c3d47a\n959d6e255f212b0708c58a2f75cb1fe932248c9d93424612c1b8d1e640149656059737e4db2139afd5556bcdacf3eda2\n84525af21a8d78748680b6535bbc9dc2f0cf9a1d1740d12f382f6ecb2e73811d6c1da2ad9956070b1a617c61fcff9fe5\nb74417d84597a485d0a8e1be07bf78f17ebb2e7b3521b748f73935b9afbbd82f34b710fb7749e7d4ab55b0c7f9de127d\na4a9aecb19a6bab167af96d8b9d9aa5308eab19e6bfb78f5a580f9bf89bdf250a7b52a09b75f715d651cb73febd08e84\n9777b30be2c5ffe7d29cc2803a562a32fb43b59d8c3f05a707ab60ec05b28293716230a7d264d7cd9dd358fc031cc13e\n95dce7a3d4f23ac0050c510999f5fbf8042f771e8f8f94192e17bcbfa213470802ebdbe33a876cb621cf42e275cbfc8b\nb0b963ebcbbee847ab8ae740478544350b3ac7e86887e4dfb2299ee5096247cd2b03c1de74c774d9bde94ae2ee2dcd59\na4ab20bafa316030264e13f7ef5891a2c3b29ab62e1668fcb5881f50a9acac6adbe3d706c07e62f2539715db768f6c43\n901478a297669d608e406fe4989be75264b6c8be12169aa9e0ad5234f459ca377f78484ffd2099a2fe2db5e457826427\n88c76e5c250810c057004a03408b85cd918e0c8903dc55a0dd8bb9b4fc2b25c87f9b8cf5943eb19fbbe99d36490050c5\n91607322bbad4a4f03fc0012d0821eff5f8c516fda45d1ec1133bface6f858bf04b25547be24159cab931a7aa08344d4\n843203e07fce3c6c81f84bc6dc5fb5e9d1c50c8811ace522dc66e8658433a0ef9784c947e6a62c11bf705307ef05212e\n91dd8813a5d6dddcda7b0f87f672b83198cd0959d8311b2b26fb1fae745185c01f796fbd03aad9db9b58482483fdadd8\n8d15911aacf76c8bcd7136e958febd6963104addcd751ce5c06b6c37213f9c4fb0ffd4e0d12c8e40c36d658999724bfd\n8a36c5732d3f1b497ebe9250610605ee62a78eaa9e1a45f329d09aaa1061131cf1d9df00f3a7d0fe8ad614a1ff9caaae\na407d06affae03660881ce20dab5e2d2d6cddc23cd09b95502a9181c465e57597841144cb34d22889902aff23a76d049\nb5fd856d0578620a7e25674d9503be7d97a2222900e1b4738c1d81ff6483b144e19e46802e91161e246271f90270e6cf\n91b7708869cdb5a7317f88c0312d103f8ce90be14fb4f219c2e074045a2a83636fdc3e69e862049fc7c1ef000e832541\nb64719cc5480709d1dae958f1d3082b32a43376da446c8f9f64cb02a301effc9c34d9102051733315a8179aed94d53cc\n94347a9542ff9d18f7d9eaa2f4d9b832d0e535fe49d52aa2de08aa8192400eddabdb6444a2a78883e27c779eed7fdf5a\n840ef44a733ff1376466698cd26f82cf56bb44811e196340467f932efa3ae1ef9958a0701b3b032f50fd9c1d2aed9ab5\n90ab3f6f67688888a31ffc2a882bb37adab32d1a4b278951a21646f90d03385fc976715fc639a785d015751171016f10\nb56f35d164c24b557dbcbc8a4bfa681ec916f8741ffcb27fb389c164f4e3ed2be325210ef5bdaeae7a172ca9599ab442\na7921a5a80d7cf6ae81ba9ee05e0579b18c20cd2852762c89d6496aa4c8ca9d1ca2434a67b2c16d333ea8e382cdab1e3\na506bcfbd7e7e5a92f68a1bd87d07ad5fe3b97aeee40af2bf2cae4efcd77fff03f872732c5b7883aa6584bee65d6f8cb\na8c46cff58931a1ce9cbe1501e1da90b174cddd6d50f3dfdfb759d1d4ad4673c0a8feed6c1f24c7af32865a7d6c984e5\nb45686265a83bff69e312c5149db7bb70ac3ec790dc92e392b54d9c85a656e2bf58596ce269f014a906eafc97461aa5f\n8d4009a75ccb2f29f54a5f16684b93202c570d7a56ec1a8b20173269c5f7115894f210c26b41e8d54d4072de2d1c75d0\naef8810af4fc676bf84a0d57b189760ddc3375c64e982539107422e3de2580b89bd27aa6da44e827b56db1b5555e4ee8\n888f0e1e4a34f48eb9a18ef4de334c27564d72f2cf8073e3d46d881853ac1424d79e88d8ddb251914890588937c8f711\nb64b0aa7b3a8f6e0d4b3499fe54e751b8c3e946377c0d5a6dbb677be23736b86a7e8a6be022411601dd75012012c3555\n8d57776f519f0dd912ea14f79fbab53a30624e102f9575c0bad08d2dc754e6be54f39b11278c290977d9b9c7c0e1e0ad\na018fc00d532ceb2e4de908a15606db9b6e0665dd77190e2338da7c87a1713e6b9b61554e7c1462f0f6d4934b960b15c\n8c932be83ace46f65c78e145b384f58e41546dc0395270c1397874d88626fdeda395c8a289d602b4c312fe98c1311856\n89174838e21639d6bdd91a0621f04dc056907b88e305dd66e46a08f6d65f731dea72ae87ca5e3042d609e8de8de9aa26\nb7b7f508bb74f7a827ac8189daa855598ff1d96fa3a02394891fd105d8f0816224cd50ac4bf2ed1cf469ace516c48184\nb31877ad682583283baadd68dc1bebd83f5748b165aadd7fe9ef61a343773b88bcd3a022f36d6c92f339b7bfd72820a9\nb79d77260b25daf9126dab7a193df2d7d30542786fa1733ffaf6261734770275d3ca8bae1d9915d1181a78510b3439db\n91894fb94cd4c1dd2ceaf9c53a7020c5799ba1217cf2d251ea5bc91ed26e1159dd758e98282ebe35a0395ef9f1ed15a0\nab59895cdafd33934ceedfc3f0d5d89880482cba6c99a6db93245f9e41987efd76e0640e80aef31782c9a8c7a83fccec\naa22ea63654315e033e09d4d4432331904a6fc5fb1732557987846e3c564668ca67c60a324b4af01663a23af11a9ce4b\nb53ba3ef342601467e1f71aa280e100fbabbd38518fa0193e0099505036ee517c1ac78e96e9baeb549bb6879bb698fb0\n943fd69fd656f37487cca3605dc7e5a215fddd811caf228595ec428751fc1de484a0cb84c667fe4d7c35599bfa0e5e34\n9353128b5ebe0dddc555093cf3e5942754f938173541033e8788d7331fafc56f68d9f97b4131e37963ab7f1c8946f5f1\na76cd3c566691f65cfb86453b5b31dbaf3cab8f84fe1f795dd1e570784b9b01bdd5f0b3c1e233942b1b5838290e00598\n983d84b2e53ffa4ae7f3ba29ef2345247ea2377686b74a10479a0ef105ecf90427bf53b74c96dfa346d0f842b6ffb25b\n92e0fe9063306894a2c6970c001781cff416c87e87cb5fbac927a3192655c3da4063e6fa93539f6ff58efac6adcc5514\nb00a81f03c2b8703acd4e2e4c21e06973aba696415d0ea1a648ace2b0ea19b242fede10e4f9d7dcd61c546ab878bc8f9\nb0d08d880f3b456a10bf65cff983f754f545c840c413aea90ce7101a66eb0a0b9b1549d6c4d57725315828607963f15a\n90cb64d03534f913b411375cce88a9e8b1329ce67a9f89ca5df8a22b8c1c97707fec727dbcbb9737f20c4cf751359277\n8327c2d42590dfcdb78477fc18dcf71608686ad66c49bce64d7ee874668be7e1c17cc1042a754bbc77c9daf50b2dae07\n8532171ea13aa7e37178e51a6c775da469d2e26ec854eb16e60f3307db4acec110d2155832c202e9ba525fc99174e3b0\n83ca44b15393d021de2a511fa5511c5bd4e0ac7d67259dce5a5328f38a3cce9c3a269405959a2486016bc27bb140f9ff\nb1d36e8ca812be545505c8214943b36cabee48112cf0de369957afa796d37f86bf7249d9f36e8e990f26f1076f292b13\n9803abf45be5271e2f3164c328d449efc4b8fc92dfc1225d38e09630909fe92e90a5c77618daa5f592d23fc3ad667094\nb268ad68c7bf432a01039cd889afae815c3e120f57930d463aece10af4fd330b5bd7d8869ef1bcf6b2e78e4229922edc\na4c91a0d6f16b1553264592b4cbbbf3ca5da32ab053ffbdd3dbb1aed1afb650fb6e0dc5274f71a51d7160856477228db\nad89d043c2f0f17806277ffdf3ecf007448e93968663f8a0b674254f36170447b7527d5906035e5e56f4146b89b5af56\n8b6964f757a72a22a642e4d69102951897e20c21449184e44717bd0681d75f7c5bfa5ee5397f6e53febf85a1810d6ed1\nb08f5cdaabec910856920cd6e836c830b863eb578423edf0b32529488f71fe8257d90aed4a127448204df498b6815d79\naf26bb3358be9d280d39b21d831bb53145c4527a642446073fee5a86215c4c89ff49a3877a7a549486262f6f57a0f476\nb4010b37ec4d7c2af20800e272539200a6b623ae4636ecbd0e619484f4ab9240d02bc5541ace3a3fb955dc0a3d774212\n82752ab52bdcc3cc2fc405cb05a2e694d3df4a3a68f2179ec0652536d067b43660b96f85f573f26fbd664a9ef899f650\n96d392dde067473a81faf2d1fea55b6429126b88b160e39b4210d31d0a82833ffd3a80e07d24d495aea2d96be7251547\na76d8236d6671204d440c33ac5b8deb71fa389f6563d80e73be8b043ec77d4c9b06f9a586117c7f957f4af0331cbc871\nb6c90961f68b5e385d85c9830ec765d22a425f506904c4d506b87d8944c2b2c09615e740ed351df0f9321a7b93979cae\na6ec5ea80c7558403485b3b1869cdc63bde239bafdf936d9b62a37031628402a36a2cfa5cfbb8e26ac922cb0a209b3ba\n8c3195bbdbf9bc0fc95fa7e3d7f739353c947f7767d1e3cb24d8c8602d8ea0a1790ac30b815be2a2ba26caa5227891e2\na7f8a63d809f1155722c57f375ea00412b00147776ae4444f342550279ef4415450d6f400000a326bf11fea6c77bf941\n97fa404df48433a00c85793440e89bb1af44c7267588ae937a1f5d53e01e1c4d4fc8e4a6d517f3978bfdd6c2dfde012f\na984a0a3836de3d8d909c4629a2636aacb85393f6f214a2ef68860081e9db05ad608024762db0dc35e895dc00e2d4cdd\n9526cf088ab90335add1db4d3a4ac631b58cbfbe88fa0845a877d33247d1cfeb85994522e1eb8f8874651bfb1df03e2a\nac83443fd0afe99ad49de9bf8230158c118e2814c9c89db5ac951c240d6c2ce45e7677221279d9e97848ec466b99aafe\naeeefdbaba612e971697798ceaf63b247949dc823a0ad771ae5b988a5e882b338a98d3d0796230f49d533ec5ba411b39\nae3f248b5a7b0f92b7820a6c5ae21e5bd8f4265d4f6e21a22512079b8ee9be06393fd3133ce8ebac0faf23f4f8517e36\na64a831b908eee784b8388b45447d2885ec0551b26b0c2b15e5f417d0a12c79e867fb7bd3d008d0af98b44336f8ec1ad\nb242238cd8362b6e440ba21806905714dd55172db25ec7195f3fc4937b2aba146d5cbf3cf691a1384b4752dc3b54d627\n819f97f337eea1ffb2a678cc25f556f1aab751c6b048993a1d430fe1a3ddd8bb411c152e12ca60ec6e057c190cd1db9a\nb9d7d187407380df54ee9fef224c54eec1bfabf17dc8abf60765b7951f538f59aa26fffd5846cfe05546c35f59b573f4\naa6e3c14efa6a5962812e3f94f8ce673a433f4a82d07a67577285ea0eaa07f8be7115853122d12d6d4e1fdf64c504be1\n82268bee9c1662d3ddb5fb785abfae6fb8b774190f30267f1d47091d2cd4b3874db4372625aa36c32f27b0eee986269b\nb236459565b7b966166c4a35b2fa71030b40321821b8e96879d95f0e83a0baf33fa25721f30af4a631df209e25b96061\n8708d752632d2435d2d5b1db4ad1fa2558d776a013655f88e9a3556d86b71976e7dfe5b8834fdec97682cd94560d0d0d\nae1424a68ae2dbfb0f01211f11773732a50510b5585c1fb005cb892b2c6a58f4a55490b5c5b4483c6fce40e9d3236a52\nb3f5f722af9dddb07293c871ce97abbccba0093ca98c8d74b1318fa21396fc1b45b69c15084f63d728f9908442024506\n9606f3ce5e63886853ca476dc0949e7f1051889d529365c0cb0296fdc02abd088f0f0318ecd2cf36740a3634132d36f6\nb11a833a49fa138db46b25ff8cdda665295226595bc212c0931b4931d0a55c99da972c12b4ef753f7e37c6332356e350\nafede34e7dab0a9e074bc19a7daddb27df65735581ca24ad70c891c98b1349fcebbcf3ba6b32c2617fe06a5818dabc2d\n97993d456e459e66322d01f8eb13918979761c3e8590910453944bdff90b24091bb018ac6499792515c9923be289f99f\n977e3e967eff19290a192cd11df3667d511b398fb3ac9a5114a0f3707e25a0edcb56105648b1b85a8b7519fc529fc6f6\nb873a7c88bf58731fe1bf61ff6828bf114cf5228f254083304a4570e854e83748fc98683ddba62d978fff7909f2c5c47\nad4b2691f6f19da1d123aaa23cca3e876247ed9a4ab23c599afdbc0d3aa49776442a7ceaa996ac550d0313d9b9a36cee\nb9210713c78e19685608c6475bfa974b57ac276808a443f8b280945c5d5f9c39da43effa294bfb1a6c6f7b6b9f85bf6c\na65152f376113e61a0e468759de38d742caa260291b4753391ee408dea55927af08a4d4a9918600a3bdf1df462dffe76\n8bf8c27ad5140dde7f3d2280fd4cc6b29ab76537e8d7aa7011a9d2796ee3e56e9a60c27b5c2da6c5e14fc866301dc195\n92fde8effc9f61393a2771155812b863cff2a0c5423d7d40aa04d621d396b44af94ddd376c28e7d2f53c930aea947484\n97a01d1dd9ee30553ce676011aea97fa93d55038ada95f0057d2362ae9437f3ed13de8290e2ff21e3167dd7ba10b9c3f\n89affffaa63cb2df3490f76f0d1e1d6ca35c221dd34057176ba739fa18d492355e6d2a5a5ad93a136d3b1fed0bb8aa19\n928b8e255a77e1f0495c86d3c63b83677b4561a5fcbbe5d3210f1e0fc947496e426d6bf3b49394a5df796c9f25673fc4\n842a0af91799c9b533e79ee081efe2a634cac6c584c2f054fb7d1db67dde90ae36de36cbf712ec9cd1a0c7ee79e151ea\na65b946cf637e090baf2107c9a42f354b390e7316beb8913638130dbc67c918926eb87bec3b1fe92ef72bc77a170fa3b\naafc0f19bfd71ab5ae4a8510c7861458b70ad062a44107b1b1dbacbfa44ba3217028c2824bd7058e2fa32455f624040b\n95269dc787653814e0be899c95dba8cfa384f575a25e671c0806fd80816ad6797dc819d30ae06e1d0ed9cb01c3950d47\na1e760f7fa5775a1b2964b719ff961a92083c5c617f637fc46e0c9c20ab233f8686f7f38c3cb27d825c54dd95e93a59b\nac3b8a7c2317ea967f229eddc3e23e279427f665c4705c7532ed33443f1243d33453c1088f57088d2ab1e3df690a9cc9\nb787beeddfbfe36dd51ec4efd9cf83e59e84d354c3353cc9c447be53ae53d366ed1c59b686e52a92f002142c8652bfe0\nb7a64198300cb6716aa7ac6b25621f8bdec46ad5c07a27e165b3f774cdf65bcfdbf31e9bae0c16b44de4b00ada7a4244\nb8ae9f1452909e0c412c7a7fe075027691ea8df1347f65a5507bc8848f1d2c833d69748076db1129e5b4fb912f65c86c\n9682e41872456b9fa67def89e71f06d362d6c8ca85c9c48536615bc401442711e1c9803f10ab7f8ab5feaec0f9df20a6\n88889ff4e271dc1c7e21989cc39f73cde2f0475acd98078281591ff6c944fadeb9954e72334319050205d745d4df73df\n8f79b5b8159e7fd0d93b0645f3c416464f39aec353b57d99ecf24f96272df8a068ad67a6c90c78d82c63b40bb73989bb\n838c01a009a3d8558a3f0bdd5e22de21af71ca1aefc8423c91dc577d50920e9516880e87dce3e6d086e11cd45c9052d9\nb97f1c6eee8a78f137c840667cc288256e39294268a3009419298a04a1d0087c9c9077b33c917c65caf76637702dda8a\n972284ce72f96a61c899260203dfa06fc3268981732bef74060641c1a5068ead723e3399431c247ca034b0dae861e8df\n945a8d52d6d3db6663dbd3110c6587f9e9c44132045eeffba15621576d178315cb52870fa5861669f84f0bee646183fe\na0a547b5f0967b1c3e5ec6c6a9a99f0578521489180dfdfbb5561f4d166baac43a2f06f950f645ce991664e167537eed\na0592cda5cdddf1340033a745fd13a6eff2021f2e26587116c61c60edead067e0f217bc2bef4172a3c9839b0b978ab35\nb9c223b65a3281587fa44ec829e609154b32f801fd1de6950e01eafb07a8324243b960d5735288d0f89f0078b2c42b5b\n99ebfc3b8f9f98249f4d37a0023149ed85edd7a5abe062c8fb30c8c84555258b998bdcdd1d400bc0fa2a4aaa8b224466\n955b68526e6cb3937b26843270f4e60f9c6c8ece2fa9308fe3e23afa433309c068c66a4bc16ee2cf04220f095e9afce4\nb766caeafcc00378135ae53397f8a67ed586f5e30795462c4a35853de6681b1f17401a1c40958de32b197c083b7279c1\n921bf87cad947c2c33fa596d819423c10337a76fe5a63813c0a9dc78a728207ae7b339407a402fc4d0f7cba3af6da6fc\na74ba1f3bc3e6c025db411308f49b347ec91da1c916bda9da61e510ec8d71d25e0ac0f124811b7860e5204f93099af27\na29b4d144e0bf17a7e8353f2824cef0ce85621396babe8a0b873ca1e8a5f8d508b87866cf86da348470649fceefd735c\na8040e12ffc3480dd83a349d06741d1572ef91932c46f5cf03aee8454254156ee95786fd013d5654725e674c920cec32\n8c4cf34ca60afd33923f219ffed054f90cd3f253ffeb2204a3b61b0183417e366c16c07fae860e362b0f2bfe3e1a1d35\n8195eede4ddb1c950459df6c396b2e99d83059f282b420acc34220cadeed16ab65c856f2c52568d86d3c682818ed7b37\n91fff19e54c15932260aa990c7fcb3c3c3da94845cc5aa8740ef56cf9f58d19b4c3c55596f8d6c877f9f4d22921d93aa\na3e0bf7e5d02a80b75cf75f2db7e66cb625250c45436e3c136d86297d652590ec97c2311bafe407ad357c79ab29d107b\n81917ff87e5ed2ae4656b481a63ced9e6e5ff653b8aa6b7986911b8bc1ee5b8ef4f4d7882c3f250f2238e141b227e510\n915fdbe5e7de09c66c0416ae14a8750db9412e11dc576cf6158755fdcaf67abdbf0fa79b554cac4fe91c4ec245be073f\n8df27eafb5c3996ba4dc5773c1a45ca77e626b52e454dc1c4058aa94c2067c18332280630cc3d364821ee53bf2b8c130\n934f8a17c5cbb827d7868f5c8ca00cb027728a841000a16a3428ab16aa28733f16b52f58c9c4fbf75ccc45df72d9c4df\nb83f4da811f9183c25de8958bc73b504cf790e0f357cbe74ef696efa7aca97ad3b7ead1faf76e9f982c65b6a4d888fc2\n87188213c8b5c268dc2b6da413f0501c95749e953791b727450af3e43714149c115b596b33b63a2f006a1a271b87efd0\n83e9e888ab9c3e30761de635d9aabd31248cdd92f7675fc43e4b21fd96a03ec1dc4ad2ec94fec857ffb52683ac98e360\nb4b9a1823fe2d983dc4ec4e3aaea297e581c3fc5ab4b4af5fa1370caa37af2d1cc7fc6bfc5e7da60ad8fdce27dfe4b24\n856388bc78aef465dbcdd1f559252e028c9e9a2225c37d645c138e78f008f764124522705822a61326a6d1c79781e189\na6431b36db93c3b47353ba22e7c9592c9cdfb9cbdd052ecf2cc3793f5b60c1e89bc96e6bae117bfd047f2308da00dd2f\nb619972d48e7e4291542dcde08f7a9cdc883c892986ded2f23ccb216e245cd8d9ad1d285347b0f9d7611d63bf4cee2bc\n8845cca6ff8595955f37440232f8e61d5351500bd016dfadd182b9d39544db77a62f4e0102ff74dd4173ae2c181d24ef\nb2f5f7fa26dcd3b6550879520172db2d64ee6aaa213cbef1a12befbce03f0973a22eb4e5d7b977f466ac2bf8323dcedd\n858b7f7e2d44bdf5235841164aa8b4f3d33934e8cb122794d90e0c1cac726417b220529e4f896d7b77902ab0ccd35b3a\n80b0408a092dae2b287a5e32ea1ad52b78b10e9c12f49282976cd738f5d834e03d1ad59b09c5ccaccc39818b87d06092\nb996b0a9c6a2d14d984edcd6ab56bc941674102980d65b3ad9733455f49473d3f587c8cbf661228a7e125ddbe07e3198\n90224fcebb36865293bd63af786e0c5ade6b67c4938d77eb0cbae730d514fdd0fe2d6632788e858afd29d46310cf86df\nb71351fdfff7168b0a5ec48397ecc27ac36657a8033d9981e97002dcca0303e3715ce6dd3f39423bc8ef286fa2e9e669\nae2a3f078b89fb753ce4ed87e0c1a58bb19b4f0cfb6586dedb9fcab99d097d659a489fb40e14651741e1375cfc4b6c5f\n8ef476b118e0b868caed297c161f4231bbeb863cdfa5e2eaa0fc6b6669425ce7af50dc374abceac154c287de50c22307\n92e46ab472c56cfc6458955270d3c72b7bde563bb32f7d4ab4d959db6f885764a3d864e1aa19802fefaa5e16b0cb0b54\n96a3f68323d1c94e73d5938a18a377af31b782f56212de3f489d22bc289cf24793a95b37f1d6776edf88114b5c1fa695\n962cc068cfce6faaa27213c4e43e44eeff0dfbb6d25b814e82c7da981fb81d7d91868fa2344f05fb552362f98cfd4a72\n895d4e4c4ad670abf66d43d59675b1add7afad7438ada8f42a0360c704cee2060f9ac15b4d27e9b9d0996bb801276fe3\nb3ad18d7ece71f89f2ef749b853c45dc56bf1c796250024b39a1e91ed11ca32713864049c9aaaea60cde309b47486bbf\n8f05404e0c0258fdbae50e97ccb9b72ee17e0bd2400d9102c0dad981dac8c4c71585f03e9b5d50086d0a2d3334cb55d1\n8bd877e9d4591d02c63c6f9fc9976c109de2d0d2df2bfa5f6a3232bab5b0b8b46e255679520480c2d7a318545efa1245\n8d4c16b5d98957c9da13d3f36c46f176e64e5be879f22be3179a2c0e624fe4758a82bf8c8027410002f973a3b84cd55a\n86e2a8dea86427b424fa8eada881bdff896907084a495546e66556cbdf070b78ba312bf441eb1be6a80006d25d5097a3\n8608b0c117fd8652fdab0495b08fadbeba95d9c37068e570de6fddfef1ba4a1773b42ac2be212836141d1bdcdef11a17\na13d6febf5fb993ae76cae08423ca28da8b818d6ef0fde32976a4db57839cd45b085026b28ee5795f10a9a8e3098c683\n8e261967fa6de96f00bc94a199d7f72896a6ad8a7bbb1d6187cca8fad824e522880e20f766620f4f7e191c53321d70f9\n8b8e8972ac0218d7e3d922c734302803878ad508ca19f5f012bc047babd8a5c5a53deb5fe7c15a4c00fd6d1cb9b1dbd0\nb5616b233fb3574a2717d125a434a2682ff68546dccf116dd8a3b750a096982f185614b9fb6c7678107ff40a451f56fa\naa6adf9b0c3334b0d0663f583a4914523b2ac2e7adffdb026ab9109295ff6af003ef8357026dbcf789896d2afded8d73\nacb72df56a0b65496cd534448ed4f62950bb1e11e50873b6ed349c088ee364441821294ce0f7c61bd7d38105bea3b442\nabae12df83e01ec947249fedd0115dc501d2b03ff7232092979eda531dbbca29ace1d46923427c7dde4c17bdf3fd7708\n820b4fc2b63a9fda7964acf5caf19a2fc4965007cb6d6b511fcafcb1f71c3f673a1c0791d3f86e3a9a1eb6955b191cc0\naf277259d78c6b0f4f030a10c53577555df5e83319ddbad91afbd7c30bc58e7671c56d00d66ec3ab5ef56470cd910cee\nad4a861c59f1f5ca1beedd488fb3d131dea924fffd8e038741a1a7371fad7370ca5cf80dc01f177fbb9576713bb9a5b3\nb67a5162982ce6a55ccfb2f177b1ec26b110043cf18abd6a6c451cf140b5af2d634591eb4f28ad92177d8c7e5cd0a5e8\n96176d0a83816330187798072d449cbfccff682561e668faf6b1220c9a6535b32a6e4f852e8abb00f79abb87493df16b\nb0afe6e7cb672e18f0206e4423f51f8bd0017bf464c4b186d46332c5a5847647f89ff7fa4801a41c1b0b42f6135bcc92\n8fc5e7a95ef20c1278c645892811f6fe3f15c431ebc998a32ec0da44e7213ea934ed2be65239f3f49b8ec471e9914160\nb7793e41adda6c82ba1f2a31f656f6205f65bf8a3d50d836ee631bc7ce77c153345a2d0fc5c60edf8b37457c3729c4ec\na504dd7e4d6b2f4379f22cc867c65535079c75ccc575955f961677fa63ecb9f74026fa2f60c9fb6323c1699259e5e9c8\nab899d00ae693649cc1afdf30fb80d728973d2177c006e428bf61c7be01e183866614e05410041bc82cb14a33330e69c\n8a3bd8b0b1be570b65c4432a0f6dc42f48a2000e30ab089cf781d38f4090467b54f79c0d472fcbf18ef6a00df69cc6f3\nb4d7028f7f76a96a3d7803fca7f507ae11a77c5346e9cdfccb120a833a59bda1f4264e425aa588e7a16f8e7638061d84\nb9c7511a76ea5fb105de905d44b02edb17008335766ee357ed386b7b3cf19640a98b38785cb14603c1192bee5886c9b6\n8563afb12e53aed71ac7103ab8602bfa8371ae095207cb0d59e8fd389b6ad1aff0641147e53cb6a7ca16c7f37c9c5e6b\n8e108be614604e09974a9ed90960c28c4ea330a3d9a0cb4af6dd6f193f84ab282b243ecdf549b3131036bebc8905690c\nb794d127fbedb9c5b58e31822361706ffac55ce023fbfe55716c3c48c2fd2f2c7660a67346864dfe588812d369cb50b6\nb797a3442fc3b44f41baefd30346f9ac7f96e770d010d53c146ce74ce424c10fb62758b7e108b8abfdc5fafd89d745cb\n993bb71e031e8096442e6205625e1bfddfe6dd6a83a81f3e2f84fafa9e5082ab4cad80a099f21eff2e81c83457c725c3\n8711ab833fc03e37acf2e1e74cfd9133b101ff4144fe30260654398ae48912ab46549d552eb9d15d2ea57760d35ac62e\nb21321fd2a12083863a1576c5930e1aecb330391ef83326d9d92e1f6f0d066d1394519284ddab55b2cb77417d4b0292f\n877d98f731ffe3ee94b0b5b72d127630fa8a96f6ca4f913d2aa581f67732df6709493693053b3e22b0181632ac6c1e3b\nae391c12e0eb8c145103c62ea64f41345973311c3bf7281fa6bf9b7faafac87bcf0998e5649b9ef81e288c369c827e07\nb83a2842f36998890492ab1cd5a088d9423d192681b9a3a90ec518d4c541bce63e6c5f4df0f734f31fbfdd87785a2463\na21b6a790011396e1569ec5b2a423857b9bec16f543e63af28024e116c1ea24a3b96e8e4c75c6537c3e4611fd265e896\nb4251a9c4aab3a495da7a42e684ba4860dbcf940ad1da4b6d5ec46050cbe8dab0ab9ae6b63b5879de97b905723a41576\n8222f70aebfe6ac037f8543a08498f4cadb3edaac00336fc00437eb09f2cba758f6c38e887cc634b4d5b7112b6334836\n86f05038e060594c46b5d94621a1d9620aa8ba59a6995baf448734e21f58e23c1ea2993d3002ad5250d6edd5ba59b34f\na7c0c749baef811ab31b973c39ceb1d94750e2bc559c90dc5eeb20d8bb6b78586a2b363c599ba2107d6be65cd435f24e\n861d46a5d70b38d6c1cd72817a2813803d9f34c00320c8b62f8b9deb67f5b5687bc0b37c16d28fd017367b92e05da9ca\nb3365d3dab639bffbe38e35383686a435c8c88b397b717cd4aeced2772ea1053ceb670f811f883f4e02975e5f1c4ac58\na5750285f61ab8f64cd771f6466e2c0395e01b692fd878f2ef2d5c78bdd8212a73a3b1dfa5e4c8d9e1afda7c84857d3b\n835a10809ccf939bc46cf950a33b36d71be418774f51861f1cd98a016ade30f289114a88225a2c11e771b8b346cbe6ef\na4f59473a037077181a0a62f1856ec271028546ca9452b45cedfcb229d0f4d1aabfc13062b07e536cc8a0d4b113156a2\n95cd14802180b224d44a73cc1ed599d6c4ca62ddcaa503513ccdc80aaa8be050cc98bd4b4f3b639549beb4587ac6caf9\n973b731992a3e69996253d7f36dd7a0af1982b5ed21624b77a7965d69e9a377b010d6dabf88a8a97eec2a476259859cc\naf8a1655d6f9c78c8eb9a95051aa3baaf9c811adf0ae8c944a8d3fcba87b15f61021f3baf6996fa0aa51c81b3cb69de1\n835aad5c56872d2a2d6c252507b85dd742bf9b8c211ccb6b25b52d15c07245b6d89b2a40f722aeb5083a47cca159c947\nabf4e970b02bef8a102df983e22e97e2541dd3650b46e26be9ee394a3ea8b577019331857241d3d12b41d4eacd29a3ac\na13c32449dbedf158721c13db9539ae076a6ce5aeaf68491e90e6ad4e20e20d1cdcc4a89ed9fd49cb8c0dd50c17633c1\n8c8f78f88b7e22dd7e9150ab1c000f10c28e696e21d85d6469a6fe315254740f32e73d81ab1f3c1cf8f544c86df506e8\nb4b77f2acfe945abf81f2605f906c10b88fb4d28628487fb4feb3a09f17f28e9780445dfcee4878349d4c6387a9d17d4\n8d255c235f3812c6ecc646f855fa3832be5cb4dbb9c9e544989fafdf3f69f05bfd370732eaf954012f0044aa013fc9c6\nb982efd3f34b47df37c910148ac56a84e8116647bea24145a49e34e0a6c0176e3284d838dae6230cb40d0be91c078b85\n983f365aa09bd85df2a6a2ad8e4318996b1e27d02090755391d4486144e40d80b1fbfe1c798d626db92f52e33aa634da\n95fd1981271f3ea3a41d654cf497e6696730d9ff7369f26bc4d7d15c7adb4823dd0c42e4a005a810af12d234065e5390\na9f5219bd4b913c186ef30c02f995a08f0f6f1462614ea5f236964e02bdaa33db9d9b816c4aee5829947840a9a07ba60\n9210e6ceb05c09b46fd09d036287ca33c45124ab86315e5d6911ff89054f1101faaa3e83d123b7805056d388bcec6664\n8ed9cbf69c6ff3a5c62dd9fe0d7264578c0f826a29e614bc2fb4d621d90c8c9992438accdd7a614b1dca5d1bb73dc315\n85cf2a8cca93e00da459e3cecd22c342d697eee13c74d5851634844fc215f60053cf84b0e03c327cb395f48d1c71a8a4\n8818a18e9a2ec90a271b784400c1903089ffb0e0b40bc5abbbe12fbebe0f731f91959d98c5519ef1694543e31e2016d4\n8dabc130f296fa7a82870bf9a8405aaf542b222ed9276bba9bd3c3555a0f473acb97d655ee7280baff766a827a8993f0\nac7952b84b0dc60c4d858f034093b4d322c35959605a3dad2b806af9813a4680cb038c6d7f4485b4d6b2ff502aaeca25\nad65cb6d57b48a2602568d2ec8010baed0eb440eec7638c5ec8f02687d764e9de5b5d42ad5582934e592b48471c22d26\na02ab8bd4c3d114ea23aebdd880952f9495912817da8c0c08eabc4e6755439899d635034413d51134c72a6320f807f1c\n8319567764b8295402ec1ebef4c2930a138480b37e6d7d01c8b4c9cd1f2fc3f6e9a44ae6e380a0c469b25b06db23305f\nafec53b2301dc0caa8034cd9daef78c48905e6068d692ca23d589b84a6fa9ddc2ed24a39480597e19cb3e83eec213b3f\nac0b4ffdb5ae08e586a9cdb98f9fe56f4712af3a97065e89e274feacfb52b53c839565aee93c4cfaaccfe51432c4fab0\n8972cbf07a738549205b1094c5987818124144bf187bc0a85287c94fdb22ce038c0f11df1aa16ec5992e91b44d1af793\nb7267aa6f9e3de864179b7da30319f1d4cb2a3560f2ea980254775963f1523b44c680f917095879bebfa3dc2b603efcf\n80f68f4bfc337952e29504ee5149f15093824ea7ab02507efd1317a670f6cbc3611201848560312e3e52e9d9af72eccf\n8897fee93ce8fc1e1122e46b6d640bba309384dbd92e46e185e6364aa8210ebf5f9ee7e5e604b6ffba99aa80a10dd7d0\nb58ea6c02f2360be60595223d692e82ee64874fda41a9f75930f7d28586f89be34b1083e03bbc1575bbfdda2d30db1ea\n85a523a33d903280d70ac5938770453a58293480170c84926457ac2df45c10d5ff34322ab130ef4a38c916e70d81af53\na2cbf045e1bed38937492c1f2f93a5ba41875f1f262291914bc1fc40c60bd0740fb3fea428faf6da38b7c180fe8ac109\n8c09328770ed8eb17afc6ac7ddd87bb476de18ed63cab80027234a605806895959990c47bd10d259d7f3e2ecb50074c9\nb4b9e19edb4a33bde8b7289956568a5b6b6557404e0a34584b5721fe6f564821091013fbb158e2858c6d398293bb4b59\n8a47377df61733a2aa5a0e945fce00267f8e950f37e109d4487d92d878fb8b573317bb382d902de515b544e9e233458d\nb5804c9d97efeff5ca94f3689b8088c62422d92a1506fd1d8d3b1b30e8a866ad0d6dad4abfa051dfc4471250cac4c5d9\n9084a6ee8ec22d4881e9dcc8a9eb3c2513523d8bc141942370fd191ad2601bf9537a0b1e84316f3209b3d8a54368051e\n85447eea2fa26656a649f8519fa67279183044791d61cf8563d0783d46d747d96af31d0a93507bbb2242666aa87d3720\n97566a84481027b60116c751aec552adfff2d9038e68d48c4db9811fb0cbfdb3f1d91fc176a0b0d988a765f8a020bce1\nae87e5c1b9e86c49a23dceda4ecfd1dcf08567f1db8e5b6ec752ebd45433c11e7da4988573cdaebbb6f4135814fc059e\nabee05cf9abdbc52897ac1ce9ed157f5466ed6c383d6497de28616238d60409e5e92619e528af8b62cc552bf09970dc2\nae6d31cd7bf9599e5ee0828bab00ceb4856d829bba967278a73706b5f388465367aa8a6c7da24b5e5f1fdd3256ef8e63\nac33e7b1ee47e1ee4af472e37ab9e9175260e506a4e5ce449788075da1b53c44cb035f3792d1eea2aa24b1f688cc6ed3\n80f65b205666b0e089bb62152251c48c380a831e5f277f11f3ef4f0d52533f0851c1b612267042802f019ec900dc0e8f\n858520ad7aa1c9fed738e3b583c84168f2927837ad0e1d326afe9935c26e9b473d7f8c382e82ef1fe37d2b39bb40a1ee\nb842dd4af8befe00a97c2d0f0c33c93974761e2cb9e5ab8331b25170318ddd5e4bdbc02d8f90cbfdd5f348f4f371c1f7\n8bf2cb79bc783cb57088aae7363320cbeaabd078ffdec9d41bc74ff49e0043d0dad0086a30e5112b689fd2f5a606365d\n982eb03bbe563e8850847cd37e6a3306d298ab08c4d63ab6334e6b8c1fa13fce80cf2693b09714c7621d74261a0ff306\nb143edb113dec9f1e5105d4a93fbe502b859e587640d3db2f628c09a17060e6aec9e900e2c8c411cda99bc301ff96625\naf472d9befa750dcebc5428fe1a024f18ec1c07bca0f95643ce6b5f4189892a910285afb03fd7ed7068fbe614e80d33c\na97e3bc57ede73ecd1bbf02de8f51b4e7c1a067da68a3cd719f4ba26a0156cbf1cef2169fd35a18c5a4cced50d475998\na862253c937cf3d75d7183e5f5be6a4385d526aeda5171c1c60a8381fea79f88f5f52a4fab244ecc70765d5765e6dfd5\n90cb776f8e5a108f1719df4a355bebb04bf023349356382cae55991b31720f0fd03206b895fa10c56c98f52453be8778\na7614e8d0769dccd520ea4b46f7646e12489951efaef5176bc889e9eb65f6e31758df136b5bf1e9107e68472fa9b46ec\nac3a9b80a3254c42e5ed3a090a0dd7aee2352f480de96ad187027a3bb6c791eddfc3074b6ffd74eea825188f107cda4d\n82a01d0168238ef04180d4b6e0a0e39024c02c2d75b065017c2928039e154d093e1af4503f4d1f3d8a948917abb5d09f\n8fab000a2b0eef851a483aec8d2dd85fe60504794411a2f73ed82e116960547ac58766cb73df71aea71079302630258d\n872451a35c6db61c63e9b8bb9f16b217f985c20be4451c14282c814adb29d7fb13f201367c664435c7f1d4d9375d7a58\n887d9ff54cc96b35d562df4a537ff972d7c4b3fd91ab06354969a4cfede0b9fc68bbffb61d0dbf1a58948dc701e54f5a\n8cb5c2a6bd956875d88f41ae24574434f1308514d44057b55c9c70f13a3366ed054150eed0955a38fda3f757be73d55f\n89ad0163cad93e24129d63f8e38422b7674632a8d0a9016ee8636184cab177659a676c4ee7efba3abe1a68807c656d60\nb9ec01c7cab6d00359b5a0b4a1573467d09476e05ca51a9227cd16b589a9943d161eef62dcc73f0de2ec504d81f4d252\n8031d17635d39dfe9705c485d2c94830b6fc9bc67b91300d9d2591b51e36a782e77ab5904662effa9382d9cca201f525\n8be5a5f6bc8d680e5092d6f9a6585acbaaaa2ddc671da560dcf5cfa4472f4f184b9597b5b539438accd40dda885687cc\nb1fc0f052fae038a2e3de3b3a96b0a1024b009de8457b8b3adb2d315ae68a89af905720108a30038e5ab8d0d97087785\n8b8bdc77bd3a6bc7ca5492b6f8c614852c39a70d6c8a74916eaca0aeb4533b11898b8820a4c2620a97bf35e275480029\naf35f4dc538d4ad5cdf710caa38fd1eb496c3fa890a047b6a659619c5ad3054158371d1e88e0894428282eed9f47f76b\n8166454a7089cc07758ad78724654f4e7a1a13e305bbf88ddb86f1a4b2904c4fc8ab872d7da364cdd6a6c0365239e2ad\nab287c7d3addce74ce40491871c768abe01daaa0833481276ff2e56926b38a7c6d2681ffe837d2cc323045ad1a4414f9\nb90317f4505793094d89365beb35537f55a6b5618904236258dd04ca61f21476837624a2f45fef8168acf732cab65579\n98ae5ea27448e236b6657ab5ef7b1cccb5372f92ab25f5fa651fbac97d08353a1dae1b280b1cd42b17d2c6a70a63ab9d\nadcf54e752d32cbaa6cb98fbca48d8cd087b1db1d131d465705a0d8042c8393c8f4d26b59006eb50129b21e6240f0c06\nb591a3e4db18a7345fa935a8dd7994bbac5cc270b8ebd84c8304c44484c7a74afb45471fdbe4ab22156a30fae1149b40\n806b53ac049a42f1dcc1d6335505371da0bf27c614f441b03bbf2e356be7b2fb4eed7117eabcce9e427a542eaa2bf7d8\n800482e7a772d49210b81c4a907f5ce97f270b959e745621ee293cf8c71e8989363d61f66a98f2d16914439544ca84c7\n99de9eafdad3617445312341644f2bb888680ff01ce95ca9276b1d2e5ef83fa02dab5e948ebf66c17df0752f1bd37b70\n961ee30810aa4c93ae157fbe9009b8e443c082192bd36a73a6764ff9b2ad8b0948fe9a73344556e01399dd77badb4257\nae0a361067c52efbe56c8adf982c00432cd478929459fc7f74052c8ee9531cd031fe1335418fde53f7c2ef34254eb7ac\na3503d16b6b27eb20c1b177bcf90d13706169220523a6271b85b2ce35a9a2b9c5bed088540031c0a4ebfdae3a4c6ab04\n909420122c3e723289ca4e7b81c2df5aff312972a2203f4c45821b176e7c862bf9cac7f7df3adf1d59278f02694d06e7\n989f42380ae904b982f85d0c6186c1aef5d6bcba29bcfbb658e811b587eb2749c65c6e4a8cc6409c229a107499a4f5d7\n8037a6337195c8e26a27ea4ef218c6e7d79a9720aaab43932d343192abc2320fe72955f5e431c109093bda074103330a\nb312e168663842099b88445e940249cc508f080ab0c94331f672e7760258dbd86be5267e4cf25ea25facb80bff82a7e9\naaa3ff8639496864fcdbfdda1ac97edc4f08e3c9288b768f6c8073038c9fbbf7e1c4bea169b4d45c31935cdf0680d45e\n97dbd3df37f0b481a311dfc5f40e59227720f367912200d71908ef6650f32cc985cb05b981e3eea38958f7e48d10a15d\na89d49d1e267bb452d6cb621b9a90826fe55e9b489c0427b94442d02a16f390eed758e209991687f73f6b5a032321f42\n9530dea4e0e19d6496f536f2e75cf7d814d65fde567055eb20db48fd8d20d501cd2a22fb506db566b94c9ee10f413d43\n81a7009b9e67f1965fa7da6a57591c307de91bf0cd35ab4348dc4a98a4961e096d004d7e7ad318000011dc4342c1b809\n83440a9402b766045d7aca61a58bba2aa29cac1cf718199e472ba086f5d48093d9dda4d135292ba51d049a23964eceae\na06c9ce5e802df14f6b064a3d1a0735d429b452f0e2e276042800b0a4f16df988fd94cf3945921d5dd3802ab2636f867\nb1359e358b89936dee9e678a187aad3e9ab14ac40e96a0a68f70ee2583cdcf467ae03bef4215e92893f4e12f902adec8\n835304f8619188b4d14674d803103d5a3fa594d48e96d9699e653115dd05fdc2dda6ba3641cf7ad53994d448da155f02\n8327cba5a9ff0d3f5cd0ae55e77167448926d5fcf76550c0ad978092a14122723090c51c415e88e42a2b62eb07cc3981\nb373dcdaea85f85ce9978b1426a7ef4945f65f2d3467a9f1cc551a99766aac95df4a09e2251d3f89ca8c9d1a7cfd7b0e\nab1422dc41af2a227b973a6fd124dfcb2367e2a11a21faa1d381d404f51b7257e5bc82e9cf20cd7fe37d7ae761a2ab37\na93774a03519d2f20fdf2ef46547b0a5b77c137d6a3434b48d56a2cbef9e77120d1b85d0092cf8842909213826699477\n8eb967a495a38130ea28711580b7e61bcd1d051cd9e4f2dbf62f1380bd86e0d60e978d72f6f31e909eb97b3b9a2b867c\nae8213378da1287ba1fe4242e1acaec19b877b6fe872400013c6eac1084b8d03156792fa3020201725b08228a1e80f49\nb143daf6893d674d607772b3b02d8ac48f294237e2f2c87963c0d4e26d9227d94a2a13512457c3d5883544bbc259f0ef\nb343bd2aca8973888e42542218924e2dda2e938fd1150d06878af76f777546213912b7c7a34a0f94186817d80ffa185c\nb188ebc6a8c3007001aa347ae72cc0b15d09bc6c19a80e386ee4b334734ec0cc2fe8b493c2422f38d1e6d133cc3db6fe\nb795f6a8b9b826aaeee18ccd6baf6c5adeeec85f95eb5b6d19450085ec7217e95a2d9e221d77f583b297d0872073ba0e\nb1c7dbd998ad32ae57bfa95deafa147024afd57389e98992c36b6e52df915d3d5a39db585141ec2423173e85d212fed8\n812bcdeb9fe5f12d0e1df9964798056e1f1c3de3b17b6bd2919b6356c4b86d8e763c01933efbe0224c86a96d5198a4be\nb19ebeda61c23d255cbf472ef0b8a441f4c55b70f0d8ed47078c248b1d3c7c62e076b43b95c00a958ec8b16d5a7cb0d7\nb02adc9aaa20e0368a989c2af14ff48b67233d28ebee44ff3418bb0473592e6b681af1cc45450bd4b175df9051df63d9\n8d87f0714acee522eb58cec00360e762adc411901dba46adc9227124fa70ee679f9a47e91a6306d6030dd4eb8de2f3c1\n8be54cec21e74bcc71de29dc621444263737db15f16d0bb13670f64e42f818154e04b484593d19ef95f2ee17e4b3fe21\nab8e20546c1db38d31493b5d5f535758afb17e459645c1b70813b1cf7d242fd5d1f4354a7c929e8f7259f6a25302e351\n89f035a1ed8a1e302ac893349ba8ddf967580fcb6e73d44af09e3929cde445e97ff60c87dafe489e2c0ab9c9986cfa00\n8b2b0851a795c19191a692af55f7e72ad2474efdc5401bc3733cfdd910e34c918aaebe69d5ea951bdddf3c01cabbfc67\na4edb52c2b51495ccd1ee6450fc14b7b3ede8b3d106808929d02fb31475bacb403e112ba9c818d2857651e508b3a7dd1\n9569341fded45d19f00bcf3cbf3f20eb2b4d82ef92aba3c8abd95866398438a2387437e580d8b646f17cf6fde8c5af23\naa4b671c6d20f72f2f18a939a6ff21cc37e0084b44b4a717f1be859a80b39fb1be026b3205adec2a66a608ec2bcd578f\n94902e980de23c4de394ad8aec91b46f888d18f045753541492bfbb92c59d3daa8de37ae755a6853744af8472ba7b72b\naf651ef1b2a0d30a7884557edfad95b6b5d445a7561caebdc46a485aedd25932c62c0798465c340a76f6feaa196dd712\nb7b669b8e5a763452128846dd46b530dca4893ace5cc5881c7ddcd3d45969d7e73fbebdb0e78aa81686e5f7b22ec5759\n82507fd4ebe9fa656a7f2e084d64a1fa6777a2b0bc106d686e2d9d2edafc58997e58cb6bfd0453b2bf415704aa82ae62\nb40bce2b42b88678400ecd52955bbdadd15f8b9e1b3751a1a3375dc0efb5ca3ee258cf201e1140b3c09ad41217d1d49e\nb0210d0cbb3fbf3b8cdb39e862f036b0ff941cd838e7aaf3a8354e24246e64778d22f3de34572e6b2a580614fb6425be\n876693cba4301b251523c7d034108831df3ce133d8be5a514e7a2ca494c268ca0556fa2ad8310a1d92a16b55bcd99ea9\n8660281406d22a4950f5ef050bf71dd3090edb16eff27fa29ef600cdea628315e2054211ed2cc6eaf8f2a1771ef689fd\na610e7e41e41ab66955b809ba4ade0330b8e9057d8efc9144753caed81995edeb1a42a53f93ce93540feca1fae708dac\na49e2c176a350251daef1218efaccc07a1e06203386ede59c136699d25ca5cb2ac1b800c25b28dd05678f14e78e51891\n83e0915aa2b09359604566080d411874af8c993beba97d4547782fdbe1a68e59324b800ff1f07b8db30c71adcbd102a8\na19e84e3541fb6498e9bb8a099c495cbfcad113330e0262a7e4c6544495bb8a754b2208d0c2d895c93463558013a5a32\n87f2bd49859a364912023aca7b19a592c60214b8d6239e2be887ae80b69ebdeb59742bdebcfa73a586ab23b2c945586c\nb8e8fdddae934a14b57bc274b8dcd0d45ebb95ddbaabef4454e0f6ce7d3a5a61c86181929546b3d60c447a15134d08e1\n87e0c31dcb736ea4604727e92dc1d9a3cf00adcff79df3546e02108355260f3dd171531c3c0f57be78d8b28058fcc8c0\n9617d74e8f808a4165a8ac2e30878c349e1c3d40972006f0787b31ea62d248c2d9f3fc3da83181c6e57e95feedfd0e8c\n8949e2cee582a2f8db86e89785a6e46bc1565c2d8627d5b6bf43ba71ffadfab7e3c5710f88dcb5fb2fc6edf6f4fae216\nad3fa7b0edceb83118972a2935a09f409d09a8db3869f30be3a76f67aa9fb379cabb3a3aff805ba023a331cad7d7eb64\n8c95718a4112512c4efbd496be38bf3ca6cdcaad8a0d128f32a3f9aae57f3a57bdf295a3b372a8c549fda8f4707cffed\n88f3261d1e28a58b2dee3fcc799777ad1c0eb68b3560f9b4410d134672d9533532a91ea7be28a041784872632d3c9d80\nb47472a41d72dd2e8b72f5c4f8ad626737dde3717f63d6bc776639ab299e564cbad0a2ad5452a07f02ff49a359c437e5\n9896d21dc2e8aad87b76d6df1654f10cd7bceed4884159d50a818bea391f8e473e01e14684814c7780235f28e69dca6e\n82d47c332bbd31bbe83b5eb44a23da76d4a7a06c45d7f80f395035822bc27f62f59281d5174e6f8e77cc9b5c3193d6f0\n95c74cd46206e7f70c9766117c34c0ec45c2b0f927a15ea167901a160e1530d8522943c29b61e03568aa0f9c55926c53\na89d7757825ae73a6e81829ff788ea7b3d7409857b378ebccd7df73fdbe62c8d9073741cf038314971b39af6c29c9030\n8c1cd212d0b010905d560688cfc036ae6535bc334fa8b812519d810b7e7dcf1bb7c5f43deaa40f097158358987324a7f\nb86993c383c015ed8d847c6b795164114dd3e9efd25143f509da318bfba89389ea72a420699e339423afd68b6512fafb\n8d06bd379c6d87c6ed841d8c6e9d2d0de21653a073725ff74be1934301cc3a79b81ef6dd0aad4e7a9dc6eac9b73019bc\n81af4d2d87219985b9b1202d724fe39ef988f14fef07dfe3c3b11714e90ffba2a97250838e8535eb63f107abfe645e96\n8c5e0af6330a8becb787e4b502f34f528ef5756e298a77dc0c7467433454347f3a2e0bd2641fbc2a45b95e231c6e1c02\n8e2a8f0f04562820dc8e7da681d5cad9fe2e85dd11c785fb6fba6786c57a857e0b3bd838fb849b0376c34ce1665e4837\na39be8269449bfdfc61b1f62077033649f18dae9bef7c6163b9314ca8923691fb832f42776f0160b9e8abd4d143aa4e1\n8c154e665706355e1cc98e0a4cabf294ab019545ba9c4c399d666e6ec5c869ca9e1faf8fb06cd9c0a5c2f51a7d51b70a\na046a7d4de879d3ebd4284f08f24398e9e3bf006cd4e25b5c67273ade248689c69affff92ae810c07941e4904296a563\nafd94c1cb48758e5917804df03fb38a6da0e48cd9b6262413ea13b26973f9e266690a1b7d9d24bbaf7e82718e0e594b0\n859e21080310c8d6a38e12e2ac9f90a156578cdeb4bb2e324700e97d9a5511cd6045dc39d1d0de3f94aeed043a24119d\na219fb0303c379d0ab50893264919f598e753aac9065e1f23ef2949abc992577ab43c636a1d2c089203ec9ddb941e27d\nb0fdb639d449588a2ca730afcba59334e7c387342d56defdfb7ef79c493f7fd0e5277eff18e7203e756c7bdda5803047\n87f9c3b7ed01f54368aca6dbcf2f6e06bff96e183c4b2c65f8baa23b377988863a0a125d5cdd41a072da8462ced4c070\n99ef7a5d5ac2f1c567160e1f8c95f2f38d41881850f30c461a205f7b1b9fb181277311333839b13fb3ae203447e17727\naeaca9b1c2afd24e443326cc68de67b4d9cedb22ad7b501a799d30d39c85bb2ea910d4672673e39e154d699e12d9b3dc\na11675a1721a4ba24dd3d0e4c3c33a6edf4cd1b9f6b471070b4386c61f77452266eae6e3f566a40cfc885eada9a29f23\nb228334445e37b9b49cb4f2cc56b454575e92173ddb01370a553bba665adadd52df353ad74470d512561c2c3473c7bb9\na18177087c996572d76f81178d18ed1ceebc8362a396348ce289f1d8bd708b9e99539be6fccd4acb1112381cfc5749b4\n8e7b8bf460f0d3c99abb19803b9e43422e91507a1c0c22b29ee8b2c52d1a384da4b87c292e28eff040db5be7b1f8641f\nb03d038d813e29688b6e6f444eb56fec3abba64c3d6f890a6bcf2e916507091cdb2b9d2c7484617be6b26552ed1c56cb\na1c88ccd30e934adfc5494b72655f8afe1865a84196abfb376968f22ddc07761210b6a9fb7638f1413d1b4073d430290\n961b714faebf172ad2dbc11902461e286e4f24a99a939152a53406117767682a571057044decbeb3d3feef81f4488497\na03dc4059b46effdd786a0a03cc17cfee8585683faa35bb07936ded3fa3f3a097f518c0b8e2db92fd700149db1937789\nadf60180c99ca574191cbcc23e8d025b2f931f98ca7dfcebfc380226239b6329347100fcb8b0fcb12db108c6ad101c07\n805d4f5ef24d46911cbf942f62cb84b0346e5e712284f82b0db223db26d51aabf43204755eb19519b00e665c7719fcaa\n8dea7243e9c139662a7fe3526c6c601eee72fd8847c54c8e1f2ad93ef7f9e1826b170afe58817dac212427164a88e87f\na2ba42356606d651b077983de1ad643650997bb2babb188c9a3b27245bb65d2036e46667c37d4ce02cb1be5ae8547abe\naf2ae50b392bdc013db2d12ce2544883472d72424fc767d3f5cb0ca2d973fc7d1f425880101e61970e1a988d0670c81b\n98e6bec0568d3939b31d00eb1040e9b8b2a35db46ddf4369bdaee41bbb63cc84423d29ee510a170fb5b0e2df434ba589\n822ff3cd12fbef4f508f3ca813c04a2e0b9b799c99848e5ad3563265979e753ee61a48f6adc2984a850f1b46c1a43d35\n891e8b8b92a394f36653d55725ef514bd2e2a46840a0a2975c76c2a935577f85289026aaa74384da0afe26775cbddfb9\nb2a3131a5d2fe7c8967047aa66e4524babae941d90552171cc109527f345f42aa0df06dcbb2fa01b33d0043917bbed69\n80c869469900431f3eeefafdbe07b8afd8cee7739e659e6d0109b397cacff85a88247698f87dc4e2fe39a592f250ac64\n9091594f488b38f9d2bb5df49fd8b4f8829d9c2f11a197dd1431ed5abbc5c954bbde3387088f9ee3a5a834beb7619bce\nb472e241e6956146cca57b97a8a204668d050423b4e76f857bad5b47f43b203a04c8391ba9d9c3e95093c071f9d376a1\nb7dd2de0284844392f7dfb56fe7ca3ede41e27519753ffc579a0a8d2d65ceb8108d06b6b0d4c3c1a2588951297bd1a1e\n902116ce70d0a079ac190321c1f48701318c05f8e69ee09694754885d33a835a849cafe56f499a2f49f6cda413ddf9a7\nb18105cc736787fafaf7c3c11c448bce9466e683159dff52723b7951dff429565e466e4841d982e3aaa9ee2066838666\n97ab9911f3f659691762d568ae0b7faa1047b0aed1009c319fa79d15d0db8db9f808fc385dc9a68fa388c10224985379\nb2a2cba65f5b927e64d2904ba412e2bac1cf18c9c3eda9c72fb70262497ecf505b640827e2afebecf10eebbcf48ccd3e\nb36a3fd677baa0d3ef0dac4f1548ff50a1730286b8c99d276a0a45d576e17b39b3cbadd2fe55e003796d370d4be43ce3\na5dfec96ca3c272566e89dc453a458909247e3895d3e44831528130bc47cc9d0a0dac78dd3cad680a4351d399d241967\n8029382113909af6340959c3e61db27392531d62d90f92370a432aec3eb1e4c36ae1d4ef2ba8ec6edb4d7320c7a453f6\n971d85121ea108e6769d54f9c51299b0381ece8b51d46d49c89f65bedc123bab4d5a8bc14d6f67f4f680077529cbae4c\n98ff6afc01d0bec80a278f25912e1b1ebff80117adae72e31d5b9fa4d9624db4ba2065b444df49b489b0607c45e26c4c\n8fa29be10fb3ab30ce25920fec0187e6e91e458947009dabb869aade7136c8ba23602682b71e390c251f3743164cbdaa\nb3345c89eb1653418fe3940cf3e56a9a9c66526389b98f45ca02dd62bfb37baa69a4baaa7132d7320695f8ea6ad1fd94\nb72c7f5541c9ac6b60a7ec9f5415e7fb14da03f7164ea529952a29399f3a071576608dbbcc0d45994f21f92ddbeb1e19\naa3450bb155a5f9043d0ef95f546a2e6ade167280bfb75c9f09c6f9cdb1fffb7ce8181436161a538433afa3681c7a141\n92a18fecaded7854b349f441e7102b638ababa75b1b0281dd0bded6541abe7aa37d96693595be0b01fe0a2e2133d50f9\n980756ddf9d2253cfe6c94960b516c94889d09e612810935150892627d2ecee9a2517e04968eea295d0106850c04ca44\nae68c6ccc454318cdd92f32b11d89116a3b8350207a36d22a0f626718cad671d960090e054c0c77ac3162ae180ecfd4b\n99f31f66eaaa551749ad91d48a0d4e3ff4d82ef0e8b28f3184c54e852422ba1bdafd53b1e753f3a070f3b55f3c23b6a2\na44eaeaa6589206069e9c0a45ff9fc51c68da38d4edff1d15529b7932e6f403d12b9387019c44a1488a5d5f27782a51f\nb80b5d54d4b344840e45b79e621bd77a3f83fb4ce6d8796b7d6915107b3f3c34d2e7d95bdafd120f285669e5acf2437a\nb36c069ec085a612b5908314d6b84c00a83031780261d1c77a0384c406867c9847d5b0845deddfa512cc04a8df2046fb\nb09dbe501583220f640d201acea7ee3e39bf9eda8b91aa07b5c50b7641d86d71acb619b38d27835ce97c3759787f08e9\n87403d46a2bf63170fff0b857acacf42ee801afe9ccba8e5b4aea967b68eac73a499a65ca46906c2eb4c8f27bc739faa\n82b93669f42a0a2aa5e250ffe6097269da06a9c02fcd1801abbad415a7729a64f830754bafc702e64600ba47671c2208\n8e3a3029be7edb8dd3ab1f8216664c8dc50d395f603736061d802cef77627db7b859ef287ed850382c13b4d22d6a2d80\n968e9ec7194ff424409d182ce0259acd950c384c163c04463bc8700a40b79beba6146d22b7fa7016875a249b7b31c602\n8b42c984bbe4996e0c20862059167c6bdc5164b1ffcd928f29512664459212d263e89f0f0e30eed4e672ffa5ed0b01b5\n96bac54062110dada905363211133f1f15dc7e4fd80a4c6e4a83bc9a0bcbbaba11cd2c7a13debcf0985e1a954c1da66b\na16dc8a653d67a7cd7ae90b2fffac0bf1ca587005430fe5ba9403edd70ca33e38ba5661d2ed6e9d2864400d997626a62\na68ab11a570a27853c8d67e491591dcba746bfbee08a2e75ae0790399130d027ed387f41ef1d7de8df38b472df309161\n92532b74886874447c0300d07eda9bbe4b41ed25349a3da2e072a93fe32c89d280f740d8ff70d5816793d7f2b97373cc\n88e35711b471e89218fd5f4d0eadea8a29405af1cd81974427bc4a5fb26ed60798daaf94f726c96e779b403a2cd82820\nb5c72aa4147c19f8c4f3a0a62d32315b0f4606e0a7025edc5445571eaf4daff64f4b7a585464821574dd50dbe1b49d08\n9305d9b4095258e79744338683fd93f9e657367b3ab32d78080e51d54eec331edbc224fad5093ebf8ee4bd4286757eb8\nb2a17abb3f6a05bcb14dc7b98321fa8b46d299626c73d7c6eb12140bf4c3f8e1795250870947af817834f033c88a59d6\nb3477004837dbd8ba594e4296f960fc91ab3f13551458445e6c232eb04b326da803c4d93e2e8dcd268b4413305ff84da\n924b4b2ebaafdcfdfedb2829a8bf46cd32e1407d8d725a5bd28bdc821f1bafb3614f030ea4352c671076a63494275a3f\n8b81b9ef6125c82a9bece6fdcb9888a767ac16e70527753428cc87c56a1236e437da8be4f7ecfe57b9296dc3ae7ba807\n906e19ec8b8edd58bdf9ae05610a86e4ea2282b1bbc1e8b00b7021d093194e0837d74cf27ac9916bdb8ec308b00da3da\nb41c5185869071760ac786078a57a2ab4e2af60a890037ac0c0c28d6826f15c2cf028fddd42a9b6de632c3d550bfbc14\na646e5dec1b713ae9dfdf7bdc6cd474d5731a320403c7dfcfd666ffc9ae0cff4b5a79530e8df3f4aa9cb80568cb138e9\nb0efad22827e562bd3c3e925acbd0d9425d19057868608d78c2209a531cccd0f2c43dc5673acf9822247428ffa2bb821\na94c19468d14b6f99002fc52ac06bbe59e5c472e4a0cdb225144a62f8870b3f10593749df7a2de0bd3c9476ce682e148\n803864a91162f0273d49271dafaab632d93d494d1af935aefa522768af058fce52165018512e8d6774976d52bd797e22\na08711c2f7d45c68fb340ac23597332e1bcaec9198f72967b9921204b9d48a7843561ff318f87908c05a44fc35e3cc9d\n91c3cad94a11a3197ae4f9461faab91a669e0dddb0371d3cab3ed9aeb1267badc797d8375181130e461eadd05099b2a2\n81bdaaf48aae4f7b480fc13f1e7f4dd3023a41439ba231760409ce9292c11128ab2b0bdbbf28b98af4f97b3551f363af\n8d60f9df9fd303f625af90e8272c4ecb95bb94e6efc5da17b8ab663ee3b3f673e9f6420d890ccc94acf4d2cae7a860d8\na7b75901520c06e9495ab983f70b61483504c7ff2a0980c51115d11e0744683ce022d76e3e09f4e99e698cbd21432a0d\n82956072df0586562fda7e7738226f694e1c73518dd86e0799d2e820d7f79233667192c9236dcb27637e4c65ef19d493\na586beb9b6ffd06ad200957490803a7cd8c9bf76e782734e0f55e04a3dc38949de75dc607822ec405736c576cf83bca3\na179a30d00def9b34a7e85607a447eea0401e32ab5abeee1a281f2acd1cf6ec81a178020666f641d9492b1bdf66f05a3\n83e129705c538787ed8e0fdc1275e6466a3f4ee21a1e6abedd239393b1df72244723b92f9d9d9339a0cab6ebf28f5a16\n811bd8d1e3722b64cd2f5b431167e7f91456e8bba2cc669d3fbbce7d553e29c3c19f629fcedd2498bc26d33a24891d17\na243c030c858f1f60cccd26b45b024698cc6d9d9e6198c1ed4964a235d9f8d0baf9cde10c8e63dfaa47f8e74e51a6e85\nab839eb82e23ca52663281f863b55b0a3d6d4425c33ffb4eeb1d7979488ab068bf99e2a60e82cea4dc42c56c26cbfebe\n8b896f9bb21d49343e67aec6ad175b58c0c81a3ca73d44d113ae4354a0065d98eb1a5cafedaf232a2bb9cdc62152f309\naf6230340cc0b66f5bf845540ed4fc3e7d6077f361d60762e488d57834c3e7eb7eacc1b0ed73a7d134f174a01410e50c\n88975e1b1af678d1b5179f72300a30900736af580dd748fd9461ef7afccc91ccd9bed33f9da55c8711a7635b800e831f\na97486bb9047391661718a54b8dd5a5e363964e495eae6c692730264478c927cf3e66dd3602413189a3699fbeae26e15\na5973c161ab38732885d1d2785fd74bf156ba34881980cba27fe239caef06b24a533ffe6dbbbeca5e6566682cc00300a\na24776e9a840afda0003fa73b415d5bd6ecd9b5c2cc842b643ee51b8c6087f4eead4d0bfbd987eb174c489a7b952ff2a\na8a6ee06e3af053b705a12b59777267c546f33ba8a0f49493af8e6df4e15cf8dd2d4fb4daf7e84c6b5d3a7363118ff03\na28e59ce6ad02c2ce725067c0123117e12ac5a52c8f5af13eec75f4a9efc4f696777db18a374fa33bcae82e0734ebd16\n86dfc3b78e841c708aff677baa8ee654c808e5d257158715097c1025d46ece94993efe12c9d188252ad98a1e0e331fec\na88d0275510f242eab11fdb0410ff6e1b9d7a3cbd3658333539815f1b450a84816e6613d15aa8a8eb15d87cdad4b27a2\n8440acea2931118a5b481268ff9f180ee4ede85d14a52c026adc882410825b8275caa44aff0b50c2b88d39f21b1a0696\na7c3182eab25bd6785bacf12079d0afb0a9b165d6ed327814e2177148539f249eb9b5b2554538f54f3c882d37c0a8abe\n85291fbe10538d7da38efdd55a7acebf03b1848428a2f664c3ce55367aece60039f4f320b1771c9c89a35941797f717c\na2c6414eeb1234728ab0de94aa98fc06433a58efa646ca3fcbd97dbfb8d98ae59f7ce6d528f669c8149e1e13266f69c9\n840c8462785591ee93aee2538d9f1ec44ba2ca61a569ab51d335ac873f5d48099ae8d7a7efa0725d9ff8f9475bfa4f56\na7065a9d02fb3673acf7702a488fbc01aa69580964932f6f40b6c2d1c386b19e50b0e104fcac24ea26c4e723611d0238\nb72db6d141267438279e032c95e6106c2ccb3164b842ba857a2018f3a35f4b040da92680881eb17cd61d0920d5b8f006\na8005d6c5960e090374747307ef0be2871a7a43fa4e76a16c35d2baab808e9777b496e9f57a4218b23390887c33a0b55\n8e152cea1e00a451ca47c20a1e8875873419700af15a5f38ee2268d3fbc974d4bd5f4be38008fa6f404dbdedd6e6e710\na3391aed1fcd68761f06a7d1008ec62a09b1cb3d0203cd04e300a0c91adfed1812d8bc1e4a3fd7976dc0aae0e99f52f1\n967eb57bf2aa503ee0c6e67438098149eac305089c155f1762cf5e84e31f0fbf27c34a9af05621e34645c1ec96afaec8\n88af97ddc4937a95ec0dcd25e4173127260f91c8db2f6eac84afb789b363705fb3196235af631c70cafd09411d233589\na32df75b3f2c921b8767638fd289bcfc61e08597170186637a7128ffedd52c798c434485ac2c7de07014f9e895c2c3d8\nb0a783832153650aa0d766a3a73ec208b6ce5caeb40b87177ffc035ab03c7705ecdd1090b6456a29f5fb7e90e2fa8930\nb59c8e803b4c3486777d15fc2311b97f9ded1602fa570c7b0200bada36a49ee9ef4d4c1474265af8e1c38a93eb66b18b\n982f2c85f83e852022998ff91bafbb6ff093ef22cf9d5063e083a48b29175ccbd51b9c6557151409e439096300981a6c\n939e3b5989fefebb9d272a954659a4eb125b98c9da6953f5e628d26266bd0525ec38304b8d56f08d65abc4d6da4a8dbb\n8898212fe05bc8de7d18503cb84a1c1337cc2c09d1eeef2b475aa79185b7322bf1f8e065f1bf871c0c927dd19faf1f6d\n94b0393a41cd00f724aee2d4bc72103d626a5aecb4b5486dd1ef8ac27528398edf56df9db5c3d238d8579af368afeb09\n96ac564450d998e7445dd2ea8e3fc7974d575508fa19e1c60c308d83b645864c029f2f6b7396d4ff4c1b24e92e3bac37\n8adf6638e18aff3eb3b47617da696eb6c4bdfbecbbc3c45d3d0ab0b12cbad00e462fdfbe0c35780d21aa973fc150285e\nb53f94612f818571b5565bbb295e74bada9b5f9794b3b91125915e44d6ddcc4da25510eab718e251a09c99534d6042d9\n8b96462508d77ee083c376cd90807aebad8de96bca43983c84a4a6f196d5faf6619a2351f43bfeec101864c3bf255519\naeadf34657083fc71df33bd44af73bf5281c9ca6d906b9c745536e1819ea90b56107c55e2178ebad08f3ba75b3f81c86\n9784ba29b2f0057b5af1d3ab2796d439b8753f1f749c73e791037461bdfc3f7097394283105b8ab01788ea5255a96710\n8756241bda159d4a33bf74faba0d4594d963c370fb6a18431f279b4a865b070b0547a6d1613cf45b8cfb5f9236bbf831\nb03ebfd6b71421dfd49a30460f9f57063eebfe31b9ceaa2a05c37c61522b35bdc09d7db3ad75c76c253c00ba282d3cd2\nb34e7e6341fa9d854b2d3153bdda0c4ae2b2f442ab7af6f99a0975d45725aa48e36ae5f7011edd249862e91f499687d4\nb462ee09dc3963a14354244313e3444de5cc37ea5ccfbf14cd9aca8027b59c4cb2a949bc30474497cab8123e768460e6\naea753290e51e2f6a21a9a0ee67d3a2713f95c2a5c17fe41116c87d3aa77b1683761264d704df1ac34f8b873bc88ef7b\n98430592afd414394f98ddfff9f280fcb1c322dbe3510f45e1e9c4bb8ee306b3e0cf0282c0ee73ebb8ba087d4d9e0858\nb95d3b5aaf54ffca11f4be8d57f76e14afdb20afc859dc7c7471e0b42031e8f3d461b726ecb979bdb2f353498dfe95ea\n984d17f9b11a683132e0b5a9ee5945e3ff7054c2d5c716be73b29078db1d36f54c6e652fd2f52a19da313112e97ade07\nab232f756b3fff3262be418a1af61a7e0c95ceebbc775389622a8e10610508cd6784ab7960441917a83cc191c58829ea\na28f41678d6e60de76b0e36ab10e4516e53e02e9c77d2b5af3cfeee3ce94cfa30c5797bd1daab20c98e1cad83ad0f633\nb55395fca84dd3ccc05dd480cb9b430bf8631ff06e24cb51d54519703d667268c2f8afcde4ba4ed16bece8cc7bc8c6e0\n8a8a5392a0e2ea3c7a8c51328fab11156004e84a9c63483b64e8f8ebf18a58b6ffa8fe8b9d95af0a2f655f601d096396\nab480000fe194d23f08a7a9ec1c392334e9c687e06851f083845121ce502c06b54dda8c43092bcc1035df45cc752fe9b\nb265644c29f628d1c7e8e25a5e845cabb21799371814730a41a363e1bda8a7be50fee7c3996a365b7fcba4642add10db\nb8a915a3c685c2d4728f6931c4d29487cad764c5ce23c25e64b1a3259ac27235e41b23bfe7ae982921b4cb84463097df\n8efa7338442a4b6318145a5440fc213b97869647eeae41b9aa3c0a27ee51285b73e3ae3b4a9423df255e6add58864aa9\n9106d65444f74d217f4187dfc8fcf3810b916d1e4275f94f6a86d1c4f3565b131fd6cde1fa708bc05fe183c49f14941a\n948252dac8026bbbdb0a06b3c9d66ec4cf9532163bab68076fda1bd2357b69e4b514729c15aaa83b5618b1977bbc60c4\nae6596ccfdf5cbbc5782efe3bb0b101bb132dbe1d568854ca24cacc0b2e0e9fabcb2ca7ab42aecec412efd15cf8cb7a2\n84a0b6c198ff64fd7958dfd1b40eac9638e8e0b2c4cd8cf5d8cdf80419baee76a05184bce6c5b635f6bf2d30055476a7\n8893118be4a055c2b3da593dbca51b1ae2ea2469911acfb27ee42faf3e6c3ad0693d3914c508c0b05b36a88c8b312b76\nb097479e967504deb6734785db7e60d1d8034d6ca5ba9552887e937f5e17bb413fccac2c1d1082154ed76609127860ad\na0294e6b9958f244d29943debf24b00b538b3da1116269b6e452bb12dc742226712fd1a15b9c88195afeb5d2415f505c\nb3cc15f635080bc038f61b615f62b5b5c6f2870586191f59476e8368a73641d6ac2f7d0c1f54621982defdb318020230\n99856f49b9fe1604d917c94d09cc0ed753d13d015d30587a94e6631ffd964b214e607deb8a69a8b5e349a7edf4309206\na8571e113ea22b4b4fce41a094da8c70de37830ae32e62c65c2fa5ad06a9bc29e884b945e73d448c72b176d6ecebfb58\na9e9c6e52beb0013273c29844956b3ce291023678107cdc785f7b44eff5003462841ad8780761b86aefc6b734adde7cf\n80a784b0b27edb51ef2bad3aee80e51778dcaa0f3f5d3dcb5dc5d4f4b2cf7ae35b08de6680ea9dac53f8438b92eb09ef\n827b543e609ea328e97e373f70ad72d4915a2d1daae0c60d44ac637231070e164c43a2a58db80a64df1c624a042b38f9\nb449c65e8195202efdcb9bdb4e869a437313b118fef8b510cbbf8b79a4e99376adb749b37e9c20b51b31ed3310169e27\n8ea3028f4548a79a94c717e1ed28ad4d8725b8d6ab18b021063ce46f665c79da3c49440c6577319dab2d036b7e08f387\n897798431cfb17fe39f08f5f854005dc37b1c1ec1edba6c24bc8acb3b88838d0534a75475325a5ea98b326ad47dbad75\n89cf232e6303b0751561960fd4dea5754a28c594daf930326b4541274ffb03c7dd75938e411eb9a375006a70ce38097f\n9727c6ae7f0840f0b6c8bfb3a1a5582ceee705e0b5c59b97def7a7a2283edd4d3f47b7971e902a3a2079e40b53ff69b8\nb76ed72b122c48679d221072efc0eeea063cb205cbf5f9ef0101fd10cb1075b8628166c83577cced654e1c001c7882f7\nae908c42d208759da5ee9b405df85a6532ea35c6f0f6a1288d22870f59d98edc896841b8ac890a538e6c8d1e8b02d359\n809d12fe4039a0ec80dc9be6a89acaab7797e5f7f9b163378f52f9a75a1d73b2e9ae6e3dd49e32ced439783c1cabbef5\na4149530b7f85d1098ba534d69548c6c612c416e8d35992fc1f64f4deeb41e09e49c6cf7aadbed7e846b91299358fe2d\na49342eacd1ec1148b8df1e253b1c015f603c39de11fa0a364ccb86ea32d69c34fd7aa6980a1fadcd8e785a57fa46f60\n87d43eff5a006dc4dddcf76cc96c656a1f3a68f19f124181feab86c6cc9a52cb9189cdbb423414defdd9bb0ca8ff1ddc\n861367e87a9aa2f0f68296ba50aa5dbc5713008d260cc2c7e62d407c2063064749324c4e8156dc21b749656cfebce26b\nb5303c2f72e84e170e66ae1b0fbd51b8c7a6f27476eaf5694b64e8737d5c84b51fe90100b256465a4c4156dd873cddb0\nb62849a4f891415d74f434cdc1d23c4a69074487659ca96e1762466b2b7a5d8525b056b891d0feea6fe6845cba8bc7fb\n923dd9e0d6590a9307e8c4c23f13bae3306b580e297a937711a8b13e8de85e41a61462f25b7d352b682e8437bf2b4ab3\n9147379860cd713cd46c94b8cdf75125d36c37517fbecf81ace9680b98ce6291cd1c3e472f84249cc3b2b445e314b1b6\na808a4f17ac21e3fb5cfef404e61fae3693ca3e688d375f99b6116779696059a146c27b06de3ac36da349b0649befd56\n87787e9322e1b75e66c1f0d9ea0915722a232770930c2d2a95e9478c4b950d15ab767e30cea128f9ed65893bfc2d0743\n9036a6ee2577223be105defe1081c48ea7319e112fff9110eb9f61110c319da25a6cea0464ce65e858635b079691ef1f\naf5548c7c24e1088c23b57ee14d26c12a83484c9fd9296edf1012d8dcf88243f20039b43c8c548c265ef9a1ffe9c1c88\na0fff520045e14065965fb8accd17e878d3fcaf9e0af2962c8954e50be6683d31fa0bf4816ab68f08630dbac6bfce52a\nb4c1b249e079f6ae1781af1d97a60b15855f49864c50496c09c91fe1946266915b799f0406084d7783f5b1039116dd8b\n8b0ffa5e7c498cb3879dddca34743b41eee8e2dea3d4317a6e961b58adb699ef0c92400c068d5228881a2b08121226bf\n852ae8b19a1d80aa8ae5382e7ee5c8e7670ceb16640871c56b20b96b66b3b60e00015a3dde039446972e57b49a999ddd\na49942f04234a7d8492169da232cfff8051df86e8e1ba3db46aede02422c689c87dc1d99699c25f96cb763f5ca0983e5\nb04b597b7760cf5dcf411ef896d1661e6d5b0db3257ac2cf64b20b60c6cc18fa10523bb958a48d010b55bac7b02ab3b1\na494591b51ea8285daecc194b5e5bd45ae35767d0246ac94fae204d674ee180c8e97ff15f71f28b7aeb175b8aea59710\n97d2624919e78406e7460730680dea8e71c8571cf988e11441aeea54512b95bd820e78562c99372d535d96f7e200d20d\nac693ddb00e48f76e667243b9b6a7008424043fb779e4f2252330285232c3fccac4da25cbd6d95fe9ad959ff305a91f6\n8d20ca0a71a64a3f702a0825bb46bd810d03bebfb227683680d474a52f965716ff99e19a165ebaf6567987f4f9ee3c94\na5c516a438f916d1d68ca76996404792e0a66e97b7f18fc54c917bf10cf3211b62387932756e39e67e47b0bd6e88385a\nb089614d830abc0afa435034cec7f851f2f095d479cacf1a3fb57272da826c499a52e7dcbc0eb85f4166fb94778e18e9\na8dacc943765d930848288192f4c69e2461c4b9bc6e79e30eeef9a543318cf9ae9569d6986c65c5668a89d49993f8e07\nab5a9361fa339eec8c621bdad0a58078983abd8942d4282b22835d7a3a47e132d42414b7c359694986f7db39386c2e19\n94230517fb57bd8eb26c6f64129b8b2abd0282323bf7b94b8bac7fab27b4ecc2c4290c294275e1a759de19f2216134f3\nb8f158ea5006bc3b90b285246625faaa6ac9b5f5030dc69701b12f3b79a53ec7e92eeb5a63bbd1f9509a0a3469ff3ffc\n8b6944fd8cb8540957a91a142fdcda827762aa777a31e8810ca6d026e50370ee1636fc351724767e817ca38804ebe005\n82d1ee40fe1569c29644f79fa6c4033b7ed45cd2c3b343881f6eb0de2e79548fded4787fae19bed6ee76ed76ff9f2f11\na8924c7035e99eaed244ca165607e7e568b6c8085510dcdbaf6ebdbed405af2e6c14ee27d94ffef10d30aa52a60bf66d\n956f82a6c2ae044635e85812581e4866c5fa2f427b01942047d81f6d79a14192f66fbbe77c9ffeaef4e6147097fdd2b5\nb1100255a1bcf5e05b6aff1dfeb6e1d55b5d68d43a7457ba10cc76b61885f67f4d0d5179abda786e037ae95deb8eea45\n99510799025e3e5e8fbf06dedb14c060c6548ba2bda824f687d3999dc395e794b1fb6514b9013f3892b6cf65cb0d65aa\n8f9091cebf5e9c809aab415942172258f894e66e625d7388a05289183f01b8d994d52e05a8e69f784fba41db9ea357f0\na13d2eeb0776bdee9820ecb6693536720232848c51936bb4ef4fe65588d3f920d08a21907e1fdb881c1ad70b3725e726\na68b8f18922d550284c5e5dc2dda771f24c21965a6a4d5e7a71678178f46df4d8a421497aad8fcb4c7e241aba26378a0\n8b7601f0a3c6ad27f03f2d23e785c81c1460d60100f91ea9d1cab978aa03b523150206c6d52ce7c7769c71d2c8228e9e\na8e02926430813caa851bb2b46de7f0420f0a64eb5f6b805401c11c9091d3b6d67d841b5674fa2b1dce0867714124cd8\nb7968ecba568b8193b3058400af02c183f0a6df995a744450b3f7e0af7a772454677c3857f99c140bbdb2a09e832e8e0\n8f20b1e9ba87d0a3f35309b985f3c18d2e8800f1ca7f0c52cadef773f1496b6070c936eea48c4a1cae83fd2524e9d233\n88aef260042db0d641a51f40639dbeeefa9e9811df30bee695f3791f88a2f84d318f04e8926b7f47bf25956cb9e3754f\n9725345893b647e9ba4e6a29e12f96751f1ae25fcaec2173e9a259921a1a7edb7a47159b3c8767e44d9e2689f5aa0f72\n8c281e6f72752cb11e239e4df9341c45106eb7993c160e54423c2bffe10bc39d42624b45a1f673936ef2e1a02fc92f1a\n90aba2f68bddb2fcce6c51430dacdfeec43ea8dc379660c99095df11017691ccf5faa27665cf4b9f0eea7728ae53c327\nb7022695c16521c5704f49b7ddbdbec9b5f57ce0ceebe537bc0ebb0906d8196cc855a9afeb8950a1710f6a654464d93f\n8fe1b9dd3c6a258116415d36e08374e094b22f0afb104385a5da48be17123e86fb8327baacc4f0d9ebae923d55d99bb5\n817e85d8e3d19a4cbc1dec31597142c2daa4871bda89c2177fa719c00eda3344eb08b82eb92d4aa91a9eaacb3fc09783\nb59053e1081d2603f1ca0ba553804d6fa696e1fd996631db8f62087b26a40dfef02098b0326bb75f99ec83b9267ca738\n990a173d857d3ba81ff3789b931bfc9f5609cde0169b7f055fa3cb56451748d593d62d46ba33f80f9cafffe02b68dd14\nb0c538dbba4954b809ab26f9f94a3cf1dcb77ce289eaec1d19f556c0ae4be1fa03af4a9b7057837541c3cc0a80538736\nac3ba42f5f44f9e1fc453ce49c4ab79d0e1d5c42d3b30b1e098f3ab3f414c4c262fa12fb2be249f52d4aaf3c5224beb9\naf47467eb152e59870e21f0d4da2f43e093daf40180ab01438030684b114d025326928eaab12c41b81a066d94fce8436\n98d1b58ba22e7289b1c45c79a24624f19b1d89e00f778eef327ec4856a9a897278e6f1a9a7e673844b31dde949153000\n97ccb15dfadc7c59dca08cfe0d22df2e52c684cf97de1d94bc00d7ba24e020025130b0a39c0f4d46e4fc872771ee7875\nb699e4ed9a000ff96ca296b2f09dce278832bc8ac96851ff3cff99ed3f6f752cfc0fea8571be28cd9b5a7ec36f1a08ee\nb9f49f0edb7941cc296435ff0a912e3ad16848ee8765ab5f60a050b280d6ea585e5b34051b15f6b8934ef01ceb85f648\nac3893df7b4ceab23c6b9054e48e8ba40d6e5beda8fbe90b814f992f52494186969b35d8c4cdc3c99890a222c9c09008\na41293ad22fae81dea94467bc1488c3707f3d4765059173980be93995fa4fcc3c9340796e3eed0beeb0ba0d9bb4fa3aa\na0543e77acd2aeecde13d18d258aeb2c7397b77f17c35a1992e8666ea7abcd8a38ec6c2741bd929abba2f766138618cc\n92e79b22bc40e69f6527c969500ca543899105837b6b1075fa1796755c723462059b3d1b028e0b3df2559fa440e09175\na1fa1eac8f41a5197a6fb4aa1eae1a031c89f9c13ff9448338b222780cf9022e0b0925d930c37501a0ef7b2b00fdaf83\nb3cb29ff73229f0637335f28a08ad8c5f166066f27c6c175164d0f26766a927f843b987ee9b309ed71cbf0a65d483831\n84d4ab787f0ac00f104f4a734dc693d62d48c2aeb03913153da62c2ae2c27d11b1110dcef8980368dd84682ea2c1a308\nab6a8e4bbc78d4a7b291ad3e9a8fe2d65f640524ba3181123b09d2d18a9e300e2509ccf7000fe47e75b65f3e992a2e7e\nb7805ebe4f1a4df414003dc10bca805f2ab86ca75820012653e8f9b79c405196b0e2cab099f2ab953d67f0d60d31a0f9\nb12c582454148338ea605d22bd00a754109063e22617f1f8ac8ddf5502c22a181c50c216c3617b9852aa5f26af56b323\n86333ad9f898947e31ce747728dc8c887479e18d36ff3013f69ebef807d82c6981543b5c3788af93c4d912ba084d3cba\nb514efa310dc4ad1258add138891e540d8c87142a881b5f46563cc58ecd1488e6d3a2fca54c0b72a929f3364ca8c333e\naa0a30f92843cf2f484066a783a1d75a7aa6f41f00b421d4baf20a6ac7886c468d0eea7ca8b17dd22f4f74631b62b640\nb3b7dc63baec9a752e8433c0cdee4d0f9bc41f66f2b8d132faf925eef9cf89aae756fc132c45910f057122462605dc10\nb9b8190dac5bfdeb59fd44f4da41a57e7f1e7d2c21faba9da91fa45cbeca06dcf299c9ae22f0c89ece11ac46352d619f\n89f8cf36501ad8bdfeab863752a9090e3bfda57cf8fdeca2944864dc05925f501e252c048221bcc57136ab09a64b64b2\nb0cbfaf317f05f97be47fc9d69eda2dd82500e00d42612f271a1fe24626408c28881f171e855bd5bd67409f9847502b4\na7c21a8fcede581bfd9847b6835eda62ba250bea81f1bb17372c800a19c732abe03064e64a2f865d974fb636cab4b859\n95f9df524ba7a4667351696c4176b505d8ea3659f5ff2701173064acc624af69a0fad4970963736383b979830cb32260\n856a74fe8b37a2e3afeac858c8632200485d438422a16ae3b29f359e470e8244995c63ad79c7e007ed063f178d0306fd\nb37faa4d78fdc0bb9d403674dbea0176c2014a171c7be8527b54f7d1a32a76883d3422a3e7a5f5fcc5e9b31b57822eeb\n8d37234d8594ec3fe75670b5c9cc1ec3537564d4739b2682a75b18b08401869a4264c0f264354219d8d896cded715db4\nb5289ee5737f0e0bde485d32096d23387d68dab8f01f47821ab4f06cc79a967afe7355e72dc0c751d96b2747b26f6255\n9085e1fdf9f813e9c3b8232d3c8863cd84ab30d45e8e0d3d6a0abd9ebc6fd70cdf749ff4d04390000e14c7d8c6655fc7\n93a388c83630331eca4da37ea4a97b3b453238af474817cc0a0727fd3138dcb4a22de38c04783ec829c22cb459cb4e8e\na5377116027c5d061dbe24c240b891c08cdd8cd3f0899e848d682c873aff5b8132c1e7cfe76d2e5ed97ee0eb1d42cb68\na274c84b04338ed28d74683e2a7519c2591a3ce37c294d6f6e678f7d628be2db8eff253ede21823e2df7183e6552f622\n8bc201147a842453a50bec3ac97671397bc086d6dfc9377fa38c2124cdc286abda69b7324f47d64da094ae011d98d9d9\n9842d0c066c524592b76fbec5132bc628e5e1d21c424bec4555efca8619cc1fd8ea3161febcb8b9e8ab54702f4e815e2\na19191b713a07efe85c266f839d14e25660ee74452e6c691cd9997d85ae4f732052d802d3deb018bdd847caa298a894b\na24f71fc0db504da4e287dd118a4a74301cbcd16033937ba2abc8417956fcb4ae19b8e63b931795544a978137eff51cb\na90eec4a6a3a4b8f9a5b93d978b5026fcf812fe65585b008d7e08c4aaf21195a1d0699f12fc16f79b6a18a369af45771\n8b551cf89737d7d06d9b3b9c4c1c73b41f2ea0af4540999c70b82dabff8580797cf0a3caf34c86c59a7069eb2e38f087\nb8d312e6c635e7a216a1cda075ae77ba3e1d2fd501dc31e83496e6e81ed5d9c7799f8e578869c2e0e256fb29f5de10a7\n8d144bdb8cae0b2cdb5b33d44bbc96984a5925202506a8cc65eb67ac904b466f5a7fe3e1cbf04aa785bbb7348c4bb73c\na101b3d58b7a98659244b88de0b478b3fb87dc5fc6031f6e689b99edf498abd43e151fd32bd4bbd240e0b3e59c440359\n907453abca7d8e7151a05cc3d506c988007692fe7401395dc93177d0d07d114ab6cca0cc658eb94c0223fe8658295cad\n825329ffbe2147ddb68f63a0a67f32d7f309657b8e5d9ab5bb34b3730bfa2c77a23eaaadb05def7d9f94a9e08fdc1e96\n88ee923c95c1dac99ae7ed6067906d734d793c5dc5d26339c1bb3314abe201c5dccb33b9007351885eb2754e9a8ea06c\n98bc9798543f5f1adc9f2cfcfa72331989420e9c3f6598c45269f0dc9b7c8607bbeaf03faa0aea2ddde2b8f17fdceff5\n8ee87877702a79aef923ab970db6fa81561b3c07d5bf1a072af0a7bad765b4cbaec910afe1a91703feacc7822fa38a94\n8060b9584aa294fe8adc2b22f67e988bc6da768eae91e429dcc43ddc53cfcc5d6753fdc1b420b268c7eb2fb50736a970\nb344a5524d80a2f051870c7001f74fcf348a70fcf78dbd20c6ff9ca85d81567d2318c8b8089f2c4f195d6aec9fc15fa6\n8f5a5d893e1936ed062149d20eb73d98b62b7f50ab5d93a6429c03656b36688d1c80cb5010e4977491e51fa0d7dd35d5\n86fa32ebbf97328c5f5f15564e1238297e289ec3219b9a741724e9f3ae8d5c15277008f555863a478b247ba5dc601d44\n9557e55377e279f4b6b5e0ffe01eca037cc13aac242d67dfcd0374a1e775c5ed5cb30c25fe21143fee54e3302d34a3ea\n8cb6bcbc39372d23464a416ea7039f57ba8413cf3f00d9a7a5b356ab20dcb8ed11b3561f7bce372b8534d2870c7ee270\nb5d59075cb5abde5391f64b6c3b8b50adc6e1f654e2a580b6d6d6eff3f4fbdd8fffc92e06809c393f5c8eab37f774c4b\nafcfb6903ef13e493a1f7308675582f15af0403b6553e8c37afb8b2808ad21b88b347dc139464367dc260df075fea1ad\n810fbbe808375735dd22d5bc7fc3828dc49fdd22cc2d7661604e7ac9c4535c1df578780affb3b895a0831640a945bcad\n8056b0c678803b416f924e09a6299a33cf9ad7da6fe1ad7accefe95c179e0077da36815fde3716711c394e2c5ea7127f\n8b67403702d06979be19f1d6dc3ec73cc2e81254d6b7d0cc49cd4fdda8cd51ab0835c1d2d26fc0ecab5df90585c2f351\n87f97f9e6d4be07e8db250e5dd2bffdf1390665bc5709f2b631a6fa69a7fca958f19bd7cc617183da1f50ee63e9352b5\nae151310985940471e6803fcf37600d7fa98830613e381e00dab943aec32c14162d51c4598e8847148148000d6e5af5c\n81eb537b35b7602c45441cfc61b27fa9a30d3998fad35a064e05bc9479e9f10b62eba2b234b348219eea3cadcaac64bb\n8a441434934180ab6f5bc541f86ebd06eadbee01f438836d797e930fa803a51510e005c9248cecc231a775b74d12b5e9\n81f3c250a27ba14d8496a5092b145629eb2c2e6a5298438670375363f57e2798207832c8027c3e9238ad94ecdadfc4df\na6217c311f2f3db02ceaa5b6096849fe92b6f4b6f1491535ef8525f6ccee6130bed2809e625073ecbaddd4a3eb3df186\n82d1c396f0388b942cf22b119d7ef1ad03d3dad49a74d9d01649ee284f377c8daddd095d596871669e16160299a210db\na40ddf7043c5d72a7246bd727b07f7fff1549f0e443d611de6f9976c37448b21664c5089c57f20105102d935ab82f27b\nb6c03c1c97adf0c4bf4447ec71366c6c1bff401ba46236cd4a33d39291e7a1f0bb34bd078ba3a18d15c98993b153a279\n8a94f5f632068399c359c4b3a3653cb6df2b207379b3d0cdace51afdf70d6d5cce6b89a2b0fee66744eba86c98fb21c2\nb2f19e78ee85073f680c3bba1f07fd31b057c00b97040357d97855b54a0b5accb0d3b05b2a294568fcd6a4be6f266950\na74632d13bbe2d64b51d7a9c3ae0a5a971c19f51cf7596a807cea053e6a0f3719700976d4e394b356c0329a2dced9aa2\nafef616d341a9bc94393b8dfba68ff0581436aa3a3adb7c26a1bbf2cf19fa877066191681f71f17f3cd6f9cf6bf70b5a\n8ce96d93ae217408acf7eb0f9cbb9563363e5c7002e19bbe1e80760bc9d449daee2118f3878b955163ed664516b97294\n8414f79b496176bc8b8e25f8e4cfee28f4f1c2ddab099d63d2aca1b6403d26a571152fc3edb97794767a7c4686ad557c\nb6c61d01fd8ce087ef9f079bf25bf10090db483dd4f88c4a786d31c1bdf52065651c1f5523f20c21e75cea17df69ab73\na5790fd629be70545093631efadddc136661f63b65ec682609c38ef7d3d7fa4e56bdf94f06e263bc055b90cb1c6bcefe\nb515a767e95704fb7597bca9e46f1753abacdc0e56e867ee3c6f4cd382643c2a28e65312c05ad040eaa3a8cbe7217a65\n8135806a02ead6aa92e9adb6fefb91349837ab73105aaa7be488ef966aa8dfaafdfa64bbae30fcbfa55dd135a036a863\n8f22435702716d76b1369750694540742d909d5e72b54d0878245fab7c269953b1c6f2b29c66f08d5e0263ca3a731771\n8e0f8a8e8753e077dac95848212aeffd51c23d9b6d611df8b102f654089401954413ecbedc6367561ca599512ae5dda7\n815a9084e3e2345f24c5fa559deec21ee1352fb60f4025c0779be65057f2d528a3d91593bd30d3a185f5ec53a9950676\n967e6555ccba395b2cc1605f8484c5112c7b263f41ce8439a99fd1c71c5ed14ad02684d6f636364199ca48afbbde13be\n8cd0ccf17682950b34c796a41e2ea7dd5367aba5e80a907e01f4cdc611e4a411918215e5aebf4292f8b24765d73314a6\na58bf1bbb377e4b3915df6f058a0f53b8fb8130fdec8c391f6bc82065694d0be59bb67ffb540e6c42cc8b380c6e36359\n92af3151d9e6bfb3383d85433e953c0160859f759b0988431ec5893542ba40288f65db43c78a904325ef8d324988f09d\n8011bbb05705167afb47d4425065630f54cb86cd462095e83b81dfebf348f846e4d8fbcf1c13208f5de1931f81da40b9\n81c743c104fc3cb047885c9fa0fb9705c3a83ee24f690f539f4985509c3dafd507af3f6a2128276f45d5939ef70c167f\na2c9679b151c041aaf5efeac5a737a8f70d1631d931609fca16be1905682f35e291292874cb3b03f14994f98573c6f44\na4949b86c4e5b1d5c82a337e5ce6b2718b1f7c215148c8bfb7e7c44ec86c5c9476048fc5c01f57cb0920876478c41ad6\n86c2495088bd1772152e527a1da0ef473f924ea9ab0e5b8077df859c28078f73c4e22e3a906b507fdf217c3c80808b5c\n892e0a910dcf162bcea379763c3e2349349e4cda9402949255ac4a78dd5a47e0bf42f5bd0913951576b1d206dc1e536a\na7009b2c6b396138afe4754b7cc10dee557c51c7f1a357a11486b3253818531f781ea8107360c8d4c3b1cd96282353c0\n911763ef439c086065cc7b4e57484ed6d693ea44acee4b18c9fd998116da55fbe7dcb8d2a0f0f9b32132fca82d73dff6\na722000b95a4a2d40bed81870793f15ba2af633f9892df507f2842e52452e02b5ea8dea6a043c2b2611d82376e33742a\n9387ac49477bd719c2f92240d0bdfcf9767aad247ca93dc51e56106463206bc343a8ec855eb803471629a66fffb565d6\n92819a1fa48ab4902939bb72a0a4e6143c058ea42b42f9bc6cea5df45f49724e2530daf3fc4f097cceefa2a8b9db0076\n98eac7b04537653bc0f4941aae732e4b1f84bd276c992c64a219b8715eb1fb829b5cbd997d57feb15c7694c468f95f70\nb275e7ba848ce21bf7996e12dbeb8dadb5d0e4f1cb5a0248a4f8f9c9fe6c74e3c93f4b61edbcb0a51af5a141e1c14bc7\n97243189285aba4d49c53770c242f2faf5fd3914451da4931472e3290164f7663c726cf86020f8f181e568c72fd172d1\n839b0b3c25dd412bee3dc24653b873cc65454f8f16186bb707bcd58259c0b6765fa4c195403209179192a4455c95f3b8\n8689d1a870514568a074a38232e2ceb4d7df30fabeb76cff0aed5b42bf7f02baea12c5fadf69f4713464dbd52aafa55f\n8958ae7b290f0b00d17c3e9fdb4dbf168432b457c7676829299dd428984aba892de1966fc106cfc58a772862ecce3976\na422bc6bd68b8870cfa5bc4ce71781fd7f4368b564d7f1e0917f6013c8bbb5b240a257f89ecfdbecb40fe0f3aa31d310\naa61f78130cebe09bc9a2c0a37f0dd57ed2d702962e37d38b1df7f17dc554b1d4b7a39a44182a452ce4c5eb31fa4cfcc\nb7918bd114f37869bf1a459023386825821bfadce545201929d13ac3256d92a431e34f690a55d944f77d0b652cefeffc\n819bba35fb6ace1510920d4dcff30aa682a3c9af9022e287751a6a6649b00c5402f14b6309f0aeef8fce312a0402915e\n8b7c9ad446c6f63c11e1c24e24014bd570862b65d53684e107ba9ad381e81a2eaa96731b4b33536efd55e0f055071274\n8fe79b53f06d33386c0ec7d6d521183c13199498594a46d44a8a716932c3ec480c60be398650bbfa044fa791c4e99b65\n9558e10fb81250b9844c99648cf38fa05ec1e65d0ccbb18aa17f2d1f503144baf59d802c25be8cc0879fff82ed5034ad\nb538a7b97fbd702ba84645ca0a63725be1e2891c784b1d599e54e3480e4670d0025526674ef5cf2f87dddf2290ba09f0\n92eafe2e869a3dd8519bbbceb630585c6eb21712b2f31e1b63067c0acb5f9bdbbcbdb612db4ea7f9cc4e7be83d31973f\nb40d21390bb813ab7b70a010dff64c57178418c62685761784e37d327ba3cb9ef62df87ecb84277c325a637fe3709732\nb349e6fbf778c4af35fbed33130bd8a7216ed3ba0a79163ebb556e8eb8e1a7dad3456ddd700dad9d08d202491c51b939\na8fdaedecb251f892b66c669e34137f2650509ade5d38fbe8a05d9b9184bb3b2d416186a3640429bd1f3e4b903c159dd\nac6167ebfee1dbab338eff7642f5e785fc21ef0b4ddd6660333fe398068cbd6c42585f62e81e4edbb72161ce852a1a4f\n874b1fbf2ebe140c683bd7e4e0ab017afa5d4ad38055aaa83ee6bbef77dbc88a6ce8eb0dcc48f0155244af6f86f34c2d\n903c58e57ddd9c446afab8256a6bb6c911121e6ccfb4f9b4ed3e2ed922a0e500a5cb7fa379d5285bc16e11dac90d1fda\n8dae7a0cffa2fd166859cd1bf10ff82dd1932e488af377366b7efc0d5dec85f85fe5e8150ff86a79a39cefc29631733a\naa047857a47cc4dfc08585f28640420fcf105b881fd59a6cf7890a36516af0644d143b73f3515ab48faaa621168f8c31\n864508f7077c266cc0cb3f7f001cb6e27125ebfe79ab57a123a8195f2e27d3799ff98413e8483c533b46a816a3557f1f\n8bcd45ab1f9cbab36937a27e724af819838f66dfeb15923f8113654ff877bd8667c54f6307aaf0c35027ca11b6229bfd\nb21aa34da9ab0a48fcfdd291df224697ce0c1ebc0e9b022fdee8750a1a4b5ba421c419541ed5c98b461eecf363047471\na9a18a2ab2fae14542dc336269fe612e9c1af6cf0c9ac933679a2f2cb77d3c304114f4d219ca66fe288adde30716775b\nb5205989b92c58bdda71817f9a897e84100b5c4e708de1fced5c286f7a6f01ae96b1c8d845f3a320d77c8e2703c0e8b1\na364059412bbcc17b8907d43ac8e5df90bc87fd1724b5f99832d0d24559fae6fa76a74cff1d1eac8cbac6ec80b44af20\nae709f2c339886b31450834cf29a38b26eb3b0779bd77c9ac269a8a925d1d78ea3837876c654b61a8fe834b3b6940808\n8802581bba66e1952ac4dab36af371f66778958f4612901d95e5cac17f59165e6064371d02de8fb6fccf89c6dc8bd118\na313252df653e29c672cbcfd2d4f775089cb77be1077381cf4dc9533790e88af6cedc8a119158e7da5bf6806ad9b91a1\n992a065b4152c7ef11515cd54ba9d191fda44032a01aed954acff3443377ee16680c7248d530b746b8c6dee2d634e68c\nb627b683ee2b32c1ab4ccd27b9f6cce2fe097d96386fa0e5c182ad997c4c422ab8dfc03870cd830b8c774feb66537282\nb823cf8a9aee03dadd013eb9efe40a201b4b57ef67efaae9f99683005f5d1bf55e950bf4af0774f50859d743642d3fea\nb8a7449ffac0a3f206677097baf7ce00ca07a4d2bd9b5356fbcb83f3649b0fda07cfebad220c1066afba89e5a52abf4b\nb2dd1a2f986395bb4e3e960fbbe823dbb154f823284ebc9068502c19a7609790ec0073d08bfa63f71e30c7161b6ef966\n98e5236de4281245234f5d40a25b503505af140b503a035fc25a26159a9074ec81512b28f324c56ea2c9a5aa7ce90805\n89070847dc8bbf5bc4ed073aa2e2a1f699cf0c2ca226f185a0671cecc54e7d3e14cd475c7752314a7a8e7476829da4bc\na9402dc9117fdb39c4734c0688254f23aed3dce94f5f53f5b7ef2b4bf1b71a67f85ab1a38ec224a59691f3bee050aeb3\n957288f9866a4bf56a4204218ccc583f717d7ce45c01ea27142a7e245ad04a07f289cc044f8cf1f21d35e67e39299e9c\nb2fb31ccb4e69113763d7247d0fc8edaae69b550c5c56aecacfd780c7217dc672f9fb7496edf4aba65dacf3361268e5b\nb44a4526b2f1d6eb2aa8dba23bfa385ff7634572ab2afddd0546c3beb630fbfe85a32f42dd287a7fec069041411537f7\n8db5a6660c3ac7fd7a093573940f068ee79a82bc17312af900b51c8c439336bc86ca646c6b7ab13aaaa008a24ca508ab\n8f9899a6d7e8eb4367beb5c060a1f8e94d8a21099033ae582118477265155ba9e72176a67f7f25d7bad75a152b56e21a\na67de0e91ade8d69a0e00c9ff33ee2909b8a609357095fa12319e6158570c232e5b6f4647522efb7345ce0052aa9d489\n82eb2414898e9c3023d57907a2b17de8e7eea5269029d05a94bfd7bf5685ac4a799110fbb375eb5e0e2bd16acf6458ae\n94451fc7fea3c5a89ba701004a9693bab555cb622caf0896b678faba040409fdfd14a978979038b2a81e8f0abc4994d2\nac879a5bb433998e289809a4a966bd02b4bf6a9c1cc276454e39c886efcf4fc68baebed575826bde577ab5aa71d735a9\n880c0f8f49c875dfd62b4ddedde0f5c8b19f5687e693717f7e5c031bc580e58e13ab497d48b4874130a18743c59fdce3\nb582af8d8ff0bf76f0a3934775e0b54c0e8fed893245d7d89cae65b03c8125b7237edc29dc45b4fe1a3fe6db45d280ee\n89f337882ed3ae060aaee98efa20d79b6822bde9708c1c5fcee365d0ec9297f694cae37d38fd8e3d49717c1e86f078e7\n826d2c1faea54061848b484e288a5f4de0d221258178cf87f72e14baaa4acc21322f8c9eab5dde612ef497f2d2e1d60b\na5333d4f227543e9cd741ccf3b81db79f2f03ca9e649e40d6a6e8ff9073e06da83683566d3b3c8d7b258c62970fb24d1\na28f08c473db06aaf4c043a2fae82b3c8cfaa160bce793a4c208e4e168fb1c65115ff8139dea06453c5963d95e922b94\n8162546135cc5e124e9683bdfaa45833c18553ff06a0861c887dc84a5b12ae8cd4697f6794c7ef6230492c32faba7014\nb23f0d05b74c08d6a7df1760792be83a761b36e3f8ae360f3c363fb196e2a9dd2de2e492e49d36561366e14daa77155c\nb6f70d6c546722d3907c708d630dbe289771d2c8bf059c2e32b77f224696d750b4dda9b3a014debda38e7d02c9a77585\n83bf4c4a9f3ca022c631017e7a30ea205ba97f7f5927cba8fc8489a4646eac6712cb821c5668c9ffe94d69d524374a27\nb0371475425a8076d0dd5f733f55aabbe42d20a7c8ea7da352e736d4d35a327b2beb370dfcb05284e22cfd69c5f6c4cc\na0031ba7522c79211416c2cca3aa5450f96f8fee711552a30889910970ba13608646538781a2c08b834b140aadd7166f\n99d273c80c7f2dc6045d4ed355d9fc6f74e93549d961f4a3b73cd38683f905934d359058cd1fc4da8083c7d75070487f\nb0e4b0efa3237793e9dcce86d75aafe9879c5fa23f0d628649aef2130454dcf72578f9bf227b9d2b9e05617468e82588\na5ab076fa2e1c5c51f3ae101afdd596ad9d106bba7882b359c43d8548b64f528af19afa76cd6f40da1e6c5fca4def3fa\n8ce2299e570331d60f6a6eff1b271097cd5f1c0e1113fc69b89c6a0f685dabea3e5bc2ac6bd789aa492ab189f89be494\n91b829068874d911a310a5f9dee001021f97471307b5a3de9ec336870ec597413e1d92010ce320b619f38bed7c4f7910\nb14fe91f4b07bf33b046e9285b66cb07927f3a8da0af548ac2569b4c4fb1309d3ced76d733051a20814e90dd5b75ffd1\nabaab92ea6152d40f82940277c725aa768a631ee0b37f5961667f82fb990fc11e6d3a6a2752b0c6f94563ed9bb28265c\nb7fe28543eca2a716859a76ab9092f135337e28109544f6bd2727728d0a7650428af5713171ea60bfc273d1c821d992c\n8a4917b2ab749fc7343fc64bdf51b6c0698ff15d740cc7baf248c030475c097097d5a473bcc00d8c25817563fe0447b4\naa96156d1379553256350a0a3250166add75948fb9cde62aa555a0a9dc0a9cb7f2f7b8428aff66097bf6bfedaf14bbe2\nae4ffeb9bdc76830d3eca2b705f30c1bdede6412fa064260a21562c8850c7fb611ec62bc68479fe48f692833e6f66d8d\nb96543caaba9d051600a14997765d49e4ab10b07c7a92cccf0c90b309e6da334fdd6d18c96806cbb67a7801024fbd3c7\n97b2b9ad76f19f500fcc94ca8e434176249f542ac66e5881a3dccd07354bdab6a2157018b19f8459437a68d8b86ba8e0\na8d206f6c5a14c80005849474fde44b1e7bcf0b2d52068f5f97504c3c035b09e65e56d1cf4b5322791ae2c2fdbd61859\n936bad397ad577a70cf99bf9056584a61bd7f02d2d5a6cf219c05d770ae30a5cd902ba38366ce636067fc1dd10108d31\na77e30195ee402b84f3882e2286bf5380c0ed374a112dbd11e16cef6b6b61ab209d4635e6f35cdaaa72c1a1981d5dabe\na46ba4d3947188590a43c180757886a453a0503f79cc435322d92490446f37419c7b999fdf868a023601078070e03346\n80d8d4c5542f223d48240b445d4d8cf6a75d120b060bc08c45e99a13028b809d910b534d2ac47fb7068930c54efd8da9\n803be9c68c91b42b68e1f55e58917a477a9a6265e679ca44ee30d3eb92453f8c89c64eafc04c970d6831edd33d066902\nb14b2b3d0dfe2bb57cee4cd72765b60ac33c1056580950be005790176543826c1d4fbd737f6cfeada6c735543244ab57\na9e480188bba1b8fb7105ff12215706665fd35bf1117bacfb6ab6985f4dbc181229873b82e5e18323c2b8f5de03258e0\na66a0f0779436a9a3999996d1e6d3000f22c2cac8e0b29cddef9636393c7f1457fb188a293b6c875b05d68d138a7cc4a\n848397366300ab40c52d0dbbdafbafef6cd3dadf1503bb14b430f52bb9724188928ac26f6292a2412bc7d7aa620763c8\n95466cc1a78c9f33a9aaa3829a4c8a690af074916b56f43ae46a67a12bb537a5ac6dbe61590344a25b44e8512355a4a7\n8b5f7a959f818e3baf0887f140f4575cac093d0aece27e23b823cf421f34d6e4ff4bb8384426e33e8ec7b5eed51f6b5c\n8d5e1368ec7e3c65640d216bcc5d076f3d9845924c734a34f3558ac0f16e40597c1a775a25bf38b187213fbdba17c93b\nb4647c1b823516880f60d20c5cc38c7f80b363c19d191e8992226799718ee26b522a12ecb66556ed3d483aa4824f3326\nac3abaea9cd283eb347efda4ed9086ea3acf495043e08d0d19945876329e8675224b685612a6badf8fd72fb6274902b1\n8eae1ce292d317aaa71bcf6e77e654914edd5090e2e1ebab78b18bb41b9b1bc2e697439f54a44c0c8aa0d436ebe6e1a9\n94dc7d1aec2c28eb43d93b111fa59aaa0d77d5a09501220bd411768c3e52208806abf973c6a452fd8292ff6490e0c9e2\n8fd8967f8e506fef27d17b435d6b86b232ec71c1036351f12e6fb8a2e12daf01d0ee04451fb944d0f1bf7fd20e714d02\n824e6865be55d43032f0fec65b3480ea89b0a2bf860872237a19a54bc186a85d2f8f9989cc837fbb325b7c72d9babe2c\n8bd361f5adb27fd6f4e3f5de866e2befda6a8454efeb704aacc606f528c03f0faae888f60310e49440496abd84083ce2\nb098a3c49f2aaa28b6b3e85bc40ce6a9cdd02134ee522ae73771e667ad7629c8d82c393fba9f27f5416986af4c261438\nb385f5ca285ff2cfe64dcaa32dcde869c28996ed091542600a0b46f65f3f5a38428cca46029ede72b6cf43e12279e3d3\n8196b03d011e5be5288196ef7d47137d6f9237a635ab913acdf9c595fa521d9e2df722090ec7eb0203544ee88178fc5f\n8ed1270211ef928db18e502271b7edf24d0bbd11d97f2786aee772d70c2029e28095cf8f650b0328cc8a4c38d045316d\na52ab60e28d69b333d597a445884d44fd2a7e1923dd60f763951e1e45f83e27a4dac745f3b9eff75977b3280e132c15d\n91e9fe78cdac578f4a4687f71b800b35da54b824b1886dafec073a3c977ce7a25038a2f3a5b1e35c2c8c9d1a7312417c\na42832173f9d9491c7bd93b21497fbfa4121687cd4d2ab572e80753d7edcbb42cfa49f460026fbde52f420786751a138\n97b947126d84dcc70c97be3c04b3de3f239b1c4914342fa643b1a4bb8c4fe45c0fcb585700d13a7ed50784790c54bef9\n860e407d353eac070e2418ef6cb80b96fc5f6661d6333e634f6f306779651588037be4c2419562c89c61f9aa2c4947f5\nb2c9d93c3ba4e511b0560b55d3501bf28a510745fd666b3cb532db051e6a8617841ea2f071dda6c9f15619c7bfd2737f\n8596f4d239aeeac78311207904d1bd863ef68e769629cc379db60e019aaf05a9d5cd31dc8e630b31e106a3a93e47cbc5\n8b26e14e2e136b65c5e9e5c2022cee8c255834ea427552f780a6ca130a6446102f2a6f334c3f9a0308c53df09e3dba7e\nb54724354eb515a3c8bed0d0677ff1db94ac0a07043459b4358cb90e3e1aa38ac23f2caa3072cf9647275d7cd61d0e80\nb7ce9fe0e515e7a6b2d7ddcb92bc0196416ff04199326aea57996eef8c5b1548bd8569012210da317f7c0074691d01b7\na1a13549c82c877253ddefa36a29ea6a23695ee401fdd48e65f6f61e5ebd956d5e0edeff99484e9075cb35071fec41e2\n838ba0c1e5bd1a6da05611ff1822b8622457ebd019cb065ece36a2d176bd2d889511328120b8a357e44569e7f640c1e6\nb916eccff2a95519400bbf76b5f576cbe53cf200410370a19d77734dc04c05b585cfe382e8864e67142d548cd3c4c2f4\na610447cb7ca6eea53a6ff1f5fe562377dcb7f4aaa7300f755a4f5e8eba61e863c51dc2aa9a29b35525b550fbc32a0fe\n9620e8f0f0ee9a4719aa9685eeb1049c5c77659ba6149ec4c158f999cfd09514794b23388879931fe26fea03fa471fd3\na9dcf8b679e276583cf5b9360702a185470d09aea463dc474ee9c8aee91ef089dacb073e334e47fbc78ec5417c90465c\n8c9adee8410bdd99e5b285744cee61e2593b6300ff31a8a83b0ec28da59475a5c6fb9346fe43aadea2e6c3dad2a8e30a\n97d5afe9b3897d7b8bb628b7220cf02d8ee4e9d0b78f5000d500aaf4c1df9251aaaabfd1601626519f9d66f00a821d4e\n8a382418157b601ce4c3501d3b8409ca98136a4ef6abcbf62885e16e215b76b035c94d149cc41ff92e42ccd7c43b9b3d\nb64b8d11fb3b01abb2646ac99fdb9c02b804ce15d98f9fe0fbf1c9df8440c71417487feb6cdf51e3e81d37104b19e012\n849d7d044f9d8f0aab346a9374f0b3a5d14a9d1faa83dbacccbdc629ad1ef903a990940255564770537f8567521d17f0\n829dbb0c76b996c2a91b4cbbe93ba455ca0d5729755e5f0c92aaee37dff7f36fcdc06f33aca41f1b609c784127b67d88\n85a7c0069047b978422d264d831ab816435f63938015d2e977222b6b5746066c0071b7f89267027f8a975206ed25c1b0\n84b9fbc1cfb302df1acdcf3dc5d66fd1edfe7839f7a3b2fb3a0d5548656249dd556104d7c32b73967bccf0f5bdcf9e3b\n972220ac5b807f53eac37dccfc2ad355d8b21ea6a9c9b011c09fe440ddcdf7513e0b43d7692c09ded80d7040e26aa28f\n855885ed0b21350baeca890811f344c553cf9c21024649c722453138ba29193c6b02c4b4994cd414035486f923472e28\n841874783ae6d9d0e59daea03e96a01cbbe4ecaced91ae4f2c8386e0d87b3128e6d893c98d17c59e4de1098e1ad519dd\n827e50fc9ce56f97a4c3f2f4cbaf0b22f1c3ce6f844ff0ef93a9c57a09b8bf91ebfbd2ba9c7f83c442920bffdaf288cc\na441f9136c7aa4c08d5b3534921b730e41ee91ab506313e1ba5f7c6f19fd2d2e1594e88c219834e92e6fb95356385aa7\n97d75b144471bf580099dd6842b823ec0e6c1fb86dd0da0db195e65524129ea8b6fd4a7a9bbf37146269e938a6956596\na4b6fa87f09d5a29252efb2b3aaab6b3b6ea9fab343132a651630206254a25378e3e9d6c96c3d14c150d01817d375a8e\na31a671876d5d1e95fe2b8858dc69967231190880529d57d3cab7f9f4a2b9b458ac9ee5bdaa3289158141bf18f559efb\n90bee6fff4338ba825974021b3b2a84e36d617e53857321f13d2b3d4a28954e6de3b3c0e629d61823d18a9763313b3bf\n96b622a63153f393bb419bfcf88272ea8b3560dbd46b0aa07ada3a6223990d0abdd6c2adb356ef4be5641688c8d83941\n84c202adeaff9293698022bc0381adba2cd959f9a35a4e8472288fd68f96f6de8be9da314c526d88e291c96b1f3d6db9\n8ca01a143b8d13809e5a8024d03e6bc9492e22226073ef6e327edf1328ef4aff82d0bcccee92cb8e212831fa35fe1204\nb2f970dbad15bfbefb38903c9bcc043d1367055c55dc1100a850f5eb816a4252c8c194b3132c929105511e14ea10a67d\na5e36556472a95ad57eb90c3b6623671b03eafd842238f01a081997ffc6e2401f76e781d049bb4aa94d899313577a9cf\n8d1057071051772f7c8bedce53a862af6fd530dd56ae6321eaf2b9fc6a68beff5ed745e1c429ad09d5a118650bfd420a\n8aadc4f70ace4fcb8d93a78610779748dcffc36182d45b932c226dc90e48238ea5daa91f137c65ed532352c4c4d57416\na2ea05ae37e673b4343232ae685ee14e6b88b867aef6dfac35db3589cbcd76f99540fed5c2641d5bb5a4a9f808e9bf0d\n947f1abad982d65648ae4978e094332b4ecb90f482c9be5741d5d1cf5a28acf4680f1977bf6e49dd2174c37f11e01296\na27b144f1565e4047ba0e3f4840ef19b5095d1e281eaa463c5358f932114cbd018aa6dcf97546465cf2946d014d8e6d6\n8574e1fc3acade47cd4539df578ce9205e745e161b91e59e4d088711a7ab5aa3b410d517d7304b92109924d9e2af8895\na48ee6b86b88015d6f0d282c1ae01d2a5b9e8c7aa3d0c18b35943dceb1af580d08a65f54dc6903cde82fd0d73ce94722\n8875650cec543a7bf02ea4f2848a61d167a66c91ffaefe31a9e38dc8511c6a25bde431007eefe27a62af3655aca208dc\n999b0a6e040372e61937bf0d68374e230346b654b5a0f591a59d33a4f95bdb2f3581db7c7ccb420cd7699ed709c50713\n878c9e56c7100c5e47bbe77dc8da5c5fe706cec94d37fa729633bca63cace7c40102eee780fcdabb655f5fa47a99600e\n865006fb5b475ada5e935f27b96f9425fc2d5449a3c106aa366e55ebed3b4ee42adc3c3f0ac19fd129b40bc7d6bc4f63\nb7a7da847f1202e7bc1672553e68904715e84fd897d529243e3ecda59faa4e17ba99c649a802d53f6b8dfdd51f01fb74\n8b2fb4432c05653303d8c8436473682933a5cb604da10c118ecfcd2c8a0e3132e125afef562bdbcc3df936164e5ce4f2\n808d95762d33ddfa5d0ee3d7d9f327de21a994d681a5f372e2e3632963ea974da7f1f9e5bac8ccce24293509d1f54d27\n932946532e3c397990a1df0e94c90e1e45133e347a39b6714c695be21aeb2d309504cb6b1dde7228ff6f6353f73e1ca2\n9705e7c93f0cdfaa3fa96821f830fe53402ad0806036cd1b48adc2f022d8e781c1fbdab60215ce85c653203d98426da3\naa180819531c3ec1feb829d789cb2092964c069974ae4faad60e04a6afcce5c3a59aec9f11291e6d110a788d22532bc6\n88f755097f7e25cb7dd3c449520c89b83ae9e119778efabb54fbd5c5714b6f37c5f9e0346c58c6ab09c1aef2483f895d\n99fc03ab7810e94104c494f7e40b900f475fde65bdec853e60807ffd3f531d74de43335c3b2646b5b8c26804a7448898\naf2dea9683086bed1a179110efb227c9c00e76cd00a2015b089ccbcee46d1134aa18bda5d6cab6f82ae4c5cd2461ac21\na500f87ba9744787fdbb8e750702a3fd229de6b8817594348dec9a723b3c4240ddfa066262d002844b9e38240ce55658\n924d0e45c780f5bc1c1f35d15dfc3da28036bdb59e4c5440606750ecc991b85be18bc9a240b6c983bc5430baa4c68287\n865b11e0157b8bf4c5f336024b016a0162fc093069d44ac494723f56648bc4ded13dfb3896e924959ea11c96321afefc\n93672d8607d4143a8f7894f1dcca83fb84906dc8d6dd7dd063bb0049cfc20c1efd933e06ca7bd03ea4cb5a5037990bfe\n826891efbdff0360446825a61cd1fa04326dd90dae8c33dfb1ed97b045e165766dd070bd7105560994d0b2044bdea418\n93c4a4a8bcbc8b190485cc3bc04175b7c0ed002c28c98a540919effd6ed908e540e6594f6db95cd65823017258fb3b1c\naeb2a0af2d2239fda9aa6b8234b019708e8f792834ff0dd9c487fa09d29800ddceddd6d7929faa9a3edcb9e1b3aa0d6b\n87f11de7236d387863ec660d2b04db9ac08143a9a2c4dfff87727c95b4b1477e3bc473a91e5797313c58754905079643\n80dc1db20067a844fe8baceca77f80db171a5ca967acb24e2d480eae9ceb91a3343c31ad1c95b721f390829084f0eae6\n9825c31f1c18da0de3fa84399c8b40f8002c3cae211fb6a0623c76b097b4d39f5c50058f57a16362f7a575909d0a44a2\na99fc8de0c38dbf7b9e946de83943a6b46a762167bafe2a603fb9b86f094da30d6de7ed55d639aafc91936923ee414b3\nad594678b407db5d6ea2e90528121f84f2b96a4113a252a30d359a721429857c204c1c1c4ff71d8bb5768c833f82e80e\nb33d985e847b54510b9b007e31053732c8a495e43be158bd2ffcea25c6765bcbc7ca815f7c60b36ad088b955dd6e9350\n815f8dfc6f90b3342ca3fbd968c67f324dae8f74245cbf8bc3bef10e9440c65d3a2151f951e8d18959ba01c1b50b0ec1\n94c608a362dd732a1abc56e338637c900d59013db8668e49398b3c7a0cae3f7e2f1d1bf94c0299eeafe6af7f76c88618\n8ebd8446b23e5adfcc393adc5c52fe172f030a73e63cd2d515245ca0dd02782ceed5bcdd9ccd9c1b4c5953dfac9c340c\n820437f3f6f9ad0f5d7502815b221b83755eb8dc56cd92c29e9535eb0b48fb8d08c9e4fcc26945f9c8cca60d89c44710\n8910e4e8a56bf4be9cc3bbf0bf6b1182a2f48837a2ed3c2aaec7099bfd7f0c83e14e608876b17893a98021ff4ab2f20d\n9633918fde348573eec15ce0ad53ac7e1823aac86429710a376ad661002ae6d049ded879383faaa139435122f64047c6\na1f5e3fa558a9e89318ca87978492f0fb4f6e54a9735c1b8d2ecfb1d1c57194ded6e0dd82d077b2d54251f3bee1279e1\nb208e22d04896abfd515a95c429ff318e87ff81a5d534c8ac2c33c052d6ffb73ef1dccd39c0bbe0734b596c384014766\n986d5d7d2b5bde6d16336f378bd13d0e671ad23a8ec8a10b3fc09036faeeb069f60662138d7a6df3dfb8e0d36180f770\na2d4e6c5f5569e9cef1cddb569515d4b6ace38c8aed594f06da7434ba6b24477392cc67ba867c2b079545ca0c625c457\nb5ac32b1d231957d91c8b7fc43115ce3c5c0d8c13ca633374402fa8000b6d9fb19499f9181844f0c10b47357f3f757ce\n96b8bf2504b4d28fa34a4ec378e0e0b684890c5f44b7a6bb6e19d7b3db2ab27b1e2686389d1de9fbd981962833a313ea\n953bfd7f6c3a0469ad432072b9679a25486f5f4828092401eff494cfb46656c958641a4e6d0d97d400bc59d92dba0030\n876ab3cea7484bbfd0db621ec085b9ac885d94ab55c4bb671168d82b92e609754b86aaf472c55df3d81421d768fd108a\n885ff4e67d9ece646d02dd425aa5a087e485c3f280c3471b77532b0db6145b69b0fbefb18aa2e3fa5b64928b43a94e57\nb91931d93f806d0b0e6cc62a53c718c099526140f50f45d94b8bbb57d71e78647e06ee7b42aa5714aed9a5c05ac8533f\na0313eeadd39c720c9c27b3d671215331ab8d0a794e71e7e690f06bcd87722b531d6525060c358f35f5705dbb7109ccb\n874c0944b7fedc6701e53344100612ddcb495351e29305c00ec40a7276ea5455465ffb7bded898886c1853139dfb1fc7\n8dc31701a01ee8137059ca1874a015130d3024823c0576aa9243e6942ec99d377e7715ed1444cd9b750a64b85dcaa3e5\n836d2a757405e922ec9a2dfdcf489a58bd48b5f9683dd46bf6047688f778c8dee9bc456de806f70464df0b25f3f3d238\nb30b0a1e454a503ea3e2efdec7483eaf20b0a5c3cefc42069e891952b35d4b2c955cf615f3066285ed8fafd9fcfbb8f6\n8e6d4044b55ab747e83ec8762ea86845f1785cc7be0279c075dadf08aca3ccc5a096c015bb3c3f738f647a4eadea3ba5\nad7735d16ab03cbe09c029610aa625133a6daecfc990b297205b6da98eda8c136a7c50db90f426d35069708510d5ae9c\n8d62d858bbb59ec3c8cc9acda002e08addab4d3ad143b3812098f3d9087a1b4a1bb255dcb1635da2402487d8d0249161\n805beec33238b832e8530645a3254aeef957e8f7ea24bcfc1054f8b9c69421145ebb8f9d893237e8a001c857fedfc77e\nb1005644be4b085e3f5775aa9bd3e09a283e87ddada3082c04e7a62d303dcef3b8cf8f92944c200c7ae6bb6bdf63f832\nb4ba0e0790dc29063e577474ffe3b61f5ea2508169f5adc1e394934ebb473e356239413a17962bc3e5d3762d72cce8c2\na157ba9169c9e3e6748d9f1dd67fbe08b9114ade4c5d8fc475f87a764fb7e6f1d21f66d7905cd730f28a1c2d8378682a\n913e52b5c93989b5d15e0d91aa0f19f78d592bc28bcfdfddc885a9980c732b1f4debb8166a7c4083c42aeda93a702898\n90fbfc1567e7cd4e096a38433704d3f96a2de2f6ed3371515ccc30bc4dd0721a704487d25a97f3c3d7e4344472702d8d\n89646043028ffee4b69d346907586fd12c2c0730f024acb1481abea478e61031966e72072ff1d5e65cb8c64a69ad4eb1\nb125a45e86117ee11d2fb42f680ab4a7894edd67ff927ae2c808920c66c3e55f6a9d4588eee906f33a05d592e5ec3c04\naad47f5b41eae9be55fb4f67674ff1e4ae2482897676f964a4d2dcb6982252ee4ff56aac49578b23f72d1fced707525e\nb9ddff8986145e33851b4de54d3e81faa3352e8385895f357734085a1616ef61c692d925fe62a5ed3be8ca49f5d66306\nb3cb0963387ed28c0c0adf7fe645f02606e6e1780a24d6cecef5b7c642499109974c81a7c2a198b19862eedcea2c2d8c\nac9c53c885457aaf5cb36c717a6f4077af701e0098eebd7aa600f5e4b14e6c1067255b3a0bc40e4a552025231be7de60\n8e1a8d823c4603f6648ec21d064101094f2a762a4ed37dd2f0a2d9aa97b2d850ce1e76f4a4b8cae58819b058180f7031\nb268b73bf7a179b6d22bd37e5e8cb514e9f5f8968c78e14e4f6d5700ca0d0ca5081d0344bb73b028970eebde3cb4124e\na7f57d71940f0edbd29ed8473d0149cae71d921dd15d1ff589774003e816b54b24de2620871108cec1ab9fa956ad6ce6\n8053e6416c8b120e2b999cc2fc420a6a55094c61ac7f2a6c6f0a2c108a320890e389af96cbe378936132363c0d551277\nb3823f4511125e5aa0f4269e991b435a0d6ceb523ebd91c04d7add5534e3df5fc951c504b4fd412a309fd3726b7f940b\nae6eb04674d04e982ca9a6add30370ab90e303c71486f43ed3efbe431af1b0e43e9d06c11c3412651f304c473e7dbf39\n96ab55e641ed2e677591f7379a3cd126449614181fce403e93e89b1645d82c4af524381ff986cae7f9cebe676878646d\nb52423b4a8c37d3c3e2eca8f0ddbf7abe0938855f33a0af50f117fab26415fb0a3da5405908ec5fdc22a2c1f2ca64892\n82a69ce1ee92a09cc709d0e3cd22116c9f69d28ea507fe5901f5676000b5179b9abe4c1875d052b0dd42d39925e186bb\na84c8cb84b9d5cfb69a5414f0a5283a5f2e90739e9362a1e8c784b96381b59ac6c18723a4aa45988ee8ef5c1f45cc97d\nafd7efce6b36813082eb98257aae22a4c1ae97d51cac7ea9c852d4a66d05ef2732116137d8432e3f117119725a817d24\na0f5fe25af3ce021b706fcff05f3d825384a272284d04735574ce5fb256bf27100fad0b1f1ba0e54ae9dcbb9570ecad3\n8751786cb80e2e1ff819fc7fa31c2833d25086534eb12b373d31f826382430acfd87023d2a688c65b5e983927e146336\n8cf5c4b17fa4f3d35c78ce41e1dc86988fd1135cd5e6b2bb0c108ee13538d0d09ae7102609c6070f39f937b439b31e33\na9108967a2fedd7c322711eca8159c533dd561bedcb181b646de98bf5c3079449478eab579731bee8d215ae8852c7e21\nb54c5171704f42a6f0f4e70767cdb3d96ffc4888c842eece343a01557da405961d53ffdc34d2f902ea25d3e1ed867cad\nae8d4b764a7a25330ba205bf77e9f46182cd60f94a336bbd96773cf8064e3d39caf04c310680943dc89ed1fbad2c6e0d\naa5150e911a8e1346868e1b71c5a01e2a4bb8632c195861fb6c3038a0e9b85f0e09b3822e9283654a4d7bb17db2fc5f4\n9685d3756ce9069bf8bb716cf7d5063ebfafe37e15b137fc8c3159633c4e006ff4887ddd0ae90360767a25c3f90cba7f\n82155fd70f107ab3c8e414eadf226c797e07b65911508c76c554445422325e71af8c9a8e77fd52d94412a6fc29417cd3\nabfae52f53a4b6e00760468d973a267f29321997c3dbb5aee36dc1f20619551229c0c45b9d9749f410e7f531b73378e8\n81a76d921f8ef88e774fd985e786a4a330d779b93fad7def718c014685ca0247379e2e2a007ad63ee7f729cd9ed6ce1b\n81947c84bc5e28e26e2e533af5ae8fe10407a7b77436dbf8f1d5b0bbe86fc659eae10f974659dc7c826c6dabd03e3a4b\n92b8c07050d635b8dd4fd09df9054efe4edae6b86a63c292e73cc819a12a21dd7d104ce51fa56af6539dedf6dbe6f7b6\nb44c579e3881f32b32d20c82c207307eca08e44995dd2aac3b2692d2c8eb2a325626c80ac81c26eeb38c4137ff95add5\n97efab8941c90c30860926dea69a841f2dcd02980bf5413b9fd78d85904588bf0c1021798dbc16c8bbb32cce66c82621\n913363012528b50698e904de0588bf55c8ec5cf6f0367cfd42095c4468fcc64954fbf784508073e542fee242d0743867\n8ed203cf215148296454012bd10fddaf119203db1919a7b3d2cdc9f80e66729464fdfae42f1f2fc5af1ed53a42b40024\nab84312db7b87d711e9a60824f4fe50e7a6190bf92e1628688dfcb38930fe87b2d53f9e14dd4de509b2216856d8d9188\n880726def069c160278b12d2258eac8fa63f729cd351a710d28b7e601c6712903c3ac1e7bbd0d21e4a15f13ca49db5aa\n980699cd51bac6283959765f5174e543ed1e5f5584b5127980cbc2ef18d984ecabba45042c6773b447b8e694db066028\naeb019cb80dc4cb4207430d0f2cd24c9888998b6f21d9bf286cc638449668d2eec0018a4cf3fe6448673cd6729335e2b\nb29852f6aa6c60effdffe96ae88590c88abae732561d35cc19e82d3a51e26cb35ea00986193e07f90060756240f5346e\na0fa855adc5ba469f35800c48414b8921455950a5c0a49945d1ef6e8f2a1881f2e2dfae47de6417270a6bf49deeb091d\nb6c7332e3b14813641e7272d4f69ecc7e09081df0037d6dab97ce13a9e58510f5c930d300633f208181d9205c5534001\n85a6c050f42fce560b5a8d54a11c3bbb8407abbadd859647a7b0c21c4b579ec65671098b74f10a16245dc779dff7838e\n8f3eb34bb68759d53c6677de4de78a6c24dd32c8962a7fb355ed362572ef8253733e6b52bc21c9f92ecd875020a9b8de\na17dd44181e5dab4dbc128e1af93ec22624b57a448ca65d2d9e246797e4af7d079e09c6e0dfb62db3a9957ce92f098d5\na56a1b854c3183082543a8685bb34cae1289f86cfa8123a579049dbd059e77982886bfeb61bf6e05b4b1fe4e620932e7\naedae3033cb2fb7628cb4803435bdd7757370a86f808ae4cecb9a268ad0e875f308c048c80cbcac523de16b609683887\n9344905376aa3982b1179497fac5a1d74b14b7038fd15e3b002db4c11c8bfc7c39430db492cdaf58b9c47996c9901f28\na3bfafdae011a19f030c749c3b071f83580dee97dd6f949e790366f95618ca9f828f1daaeabad6dcd664fcef81b6556d\n81c03d8429129e7e04434dee2c529194ddb01b414feda3adee2271eb680f6c85ec872a55c9fa9d2096f517e13ed5abcc\n98205ef3a72dff54c5a9c82d293c3e45d908946fa74bb749c3aabe1ab994ea93c269bcce1a266d2fe67a8f02133c5985\n85a70aeed09fda24412fadbafbbbf5ba1e00ac92885df329e147bfafa97b57629a3582115b780d8549d07d19b7867715\nb0fbe81c719f89a57d9ea3397705f898175808c5f75f8eb81c2193a0b555869ba7bd2e6bc54ee8a60cea11735e21c68c\nb03a0bd160495ee626ff3a5c7d95bc79d7da7e5a96f6d10116600c8fa20bedd1132f5170f25a22371a34a2d763f2d6d0\na90ab04091fbca9f433b885e6c1d60ab45f6f1daf4b35ec22b09909d493a6aab65ce41a6f30c98239cbca27022f61a8b\nb66f92aa3bf2549f9b60b86f99a0bd19cbdd97036d4ae71ca4b83d669607f275260a497208f6476cde1931d9712c2402\nb08e1fdf20e6a9b0b4942f14fa339551c3175c1ffc5d0ab5b226b6e6a322e9eb0ba96adc5c8d59ca4259e2bdd04a7eb0\na2812231e92c1ce74d4f5ac3ab6698520288db6a38398bb38a914ac9326519580af17ae3e27cde26607e698294022c81\nabfcbbcf1d3b9e84c02499003e490a1d5d9a2841a9e50c7babbef0b2dd20d7483371d4dc629ba07faf46db659459d296\nb0fe9f98c3da70927c23f2975a9dc4789194d81932d2ad0f3b00843dd9cbd7fb60747a1da8fe5a79f136a601becf279d\nb130a6dba7645165348cb90f023713bed0eefbd90a976b313521c60a36d34f02032e69a2bdcf5361e343ed46911297ec\n862f0cffe3020cea7a5fd4703353aa1eb1be335e3b712b29d079ff9f7090d1d8b12013011e1bdcbaa80c44641fd37c9f\n8c6f11123b26633e1abb9ed857e0bce845b2b3df91cc7b013b2fc77b477eee445da0285fc6fc793e29d5912977f40916\n91381846126ea819d40f84d3005e9fb233dc80071d1f9bb07f102bf015f813f61e5884ffffb4f5cd333c1b1e38a05a58\n8add7d908de6e1775adbd39c29a391f06692b936518db1f8fde74eb4f533fc510673a59afb86e3a9b52ade96e3004c57\n8780e086a244a092206edcde625cafb87c9ab1f89cc3e0d378bc9ee776313836160960a82ec397bc3800c0a0ec3da283\na6cb4cd9481e22870fdd757fae0785edf4635e7aacb18072fe8dc5876d0bab53fb99ce40964a7d3e8bcfff6f0ab1332f\naf30ff47ecc5b543efba1ba4706921066ca8bb625f40e530fb668aea0551c7647a9d126e8aba282fbcce168c3e7e0130\n91b0bcf408ce3c11555dcb80c4410b5bc2386d3c05caec0b653352377efdcb6bab4827f2018671fc8e4a0e90d772acc1\na9430b975ef138b6b2944c7baded8fe102d31da4cfe3bd3d8778bda79189c99d38176a19c848a19e2d1ee0bddd9a13c1\naa5a4eef849d7c9d2f4b018bd01271c1dd83f771de860c4261f385d3bdcc130218495860a1de298f14b703ec32fa235f\nb0ce79e7f9ae57abe4ff366146c3b9bfb38b0dee09c28c28f5981a5d234c6810ad4d582751948affb480d6ae1c8c31c4\nb75122748560f73d15c01a8907d36d06dc068e82ce22b84b322ac1f727034493572f7907dec34ebc3ddcc976f2f89ed7\nb0fc7836369a3e4411d34792d6bd5617c14f61d9bba023dda64e89dc5fb0f423244e9b48ee64869258931daa9753a56f\n8956d7455ae9009d70c6e4a0bcd7610e55f37494cf9897a8f9e1b904cc8febc3fd2d642ebd09025cfff4609ad7e3bc52\nad741efe9e472026aa49ae3d9914cb9c1a6f37a54f1a6fe6419bebd8c7d68dca105a751c7859f4389505ede40a0de786\nb52f418797d719f0d0d0ffb0846788b5cba5d0454a69a2925de4b0b80fa4dd7e8c445e5eac40afd92897ed28ca650566\na0ab65fb9d42dd966cd93b1de01d7c822694669dd2b7a0c04d99cd0f3c3de795f387b9c92da11353412f33af5c950e9a\na0052f44a31e5741a331f7cac515a08b3325666d388880162d9a7b97598fde8b61f9ff35ff220df224eb5c4e40ef0567\na0101cfdc94e42b2b976c0d89612a720e55d145a5ef6ef6f1f78cf6de084a49973d9b5d45915349c34ce712512191e3c\na0dd99fcf3f5cead5aaf08e82212df3a8bb543c407a4d6fab88dc5130c1769df3f147e934a46f291d6c1a55d92b86917\na5939153f0d1931bbda5cf6bdf20562519ea55fbfa978d6dbc6828d298260c0da7a50c37c34f386e59431301a96c2232\n9568269f3f5257200f9ca44afe1174a5d3cf92950a7f553e50e279c239e156a9faaa2a67f288e3d5100b4142efe64856\nb746b0832866c23288e07f24991bbf687cad794e7b794d3d3b79367566ca617d38af586cdc8d6f4a85a34835be41d54f\na871ce28e39ab467706e32fec1669fda5a4abba2f8c209c6745df9f7a0fa36bbf1919cf14cb89ea26fa214c4c907ae03\na08dacdd758e523cb8484f6bd070642c0c20e184abdf8e2a601f61507e93952d5b8b0c723c34fcbdd70a8485eec29db2\n85bdb78d501382bb95f1166b8d032941005661aefd17a5ac32df9a3a18e9df2fc5dc2c1f07075f9641af10353cecc0c9\n98d730c28f6fa692a389e97e368b58f4d95382fad8f0baa58e71a3d7baaea1988ead47b13742ce587456f083636fa98e\na557198c6f3d5382be9fb363feb02e2e243b0c3c61337b3f1801c4a0943f18e38ce1a1c36b5c289c8fa2aa9d58742bab\n89174f79201742220ac689c403fc7b243eed4f8e3f2f8aba0bf183e6f5d4907cb55ade3e238e3623d9885f03155c4d2b\nb891d600132a86709e06f3381158db300975f73ea4c1f7c100358e14e98c5fbe792a9af666b85c4e402707c3f2db321e\nb9e5b2529ef1043278c939373fc0dbafe446def52ddd0a8edecd3e4b736de87e63e187df853c54c28d865de18a358bb6\n8589b2e9770340c64679062c5badb7bbef68f55476289b19511a158a9a721f197da03ece3309e059fc4468b15ac33aa3\naad8c6cd01d785a881b446f06f1e9cd71bca74ba98674c2dcddc8af01c40aa7a6d469037498b5602e76e9c91a58d3dbd\nabaccb1bd918a8465f1bf8dbe2c9ad4775c620b055550b949a399f30cf0d9eb909f3851f5b55e38f9e461e762f88f499\nae62339d26db46e85f157c0151bd29916d5cc619bd4b832814b3fd2f00af8f38e7f0f09932ffe5bba692005dab2d9a74\n93a6ff30a5c0edf8058c89aba8c3259e0f1b1be1b80e67682de651e5346f7e1b4b4ac3d87cbaebf198cf779524aff6bf\n8980a2b1d8f574af45b459193c952400b10a86122b71fca2acb75ee0dbd492e7e1ef5b959baf609a5172115e371f3177\n8c2f49f3666faee6940c75e8c7f6f8edc3f704cca7a858bbb7ee5e96bba3b0cf0993996f781ba6be3b0821ef4cb75039\nb14b9e348215b278696018330f63c38db100b0542cfc5be11dc33046e3bca6a13034c4ae40d9cef9ea8b34fef0910c4e\nb59bc3d0a30d66c16e6a411cb641f348cb1135186d5f69fda8b0a0934a5a2e7f6199095ba319ec87d3fe8f1ec4a06368\n8874aca2a3767aa198e4c3fec2d9c62d496bc41ff71ce242e9e082b7f38cdf356089295f80a301a3cf1182bde5308c97\nb1820ebd61376d91232423fc20bf008b2ba37e761199f4ef0648ea2bd70282766799b4de814846d2f4d516d525c8daa7\na6b202e5dedc16a4073e04a11af3a8509b23dfe5a1952f899adeb240e75c3f5bde0c424f811a81ea48d343591faffe46\na69becee9c93734805523b92150a59a62eed4934f66056b645728740d42223f2925a1ad38359ba644da24d9414f4cdda\nad72f0f1305e37c7e6b48c272323ee883320994cb2e0d850905d6655fafc9f361389bcb9c66b3ff8d2051dbb58c8aa96\nb563600bd56fad7c8853af21c6a02a16ed9d8a8bbeea2c31731d63b976d83cb05b9779372d898233e8fd597a75424797\nb0abb78ce465bf7051f563c62e8be9c57a2cc997f47c82819300f36e301fefd908894bb2053a9d27ce2d0f8c46d88b5b\na071a85fb8274bac2202e0cb8e0e2028a5e138a82d6e0374d39ca1884a549c7c401312f00071b91f455c3a2afcfe0cda\nb931c271513a0f267b9f41444a5650b1918100b8f1a64959c552aff4e2193cc1b9927906c6fa7b8a8c68ef13d79aaa52\na6a1bb9c7d32cb0ca44d8b75af7e40479fbce67d216b48a2bb680d3f3a772003a49d3cd675fc64e9e0f8fabeb86d6d61\nb98d609858671543e1c3b8564162ad828808bb50ded261a9f8690ded5b665ed8368c58f947365ed6e84e5a12e27b423d\nb3dca58cd69ec855e2701a1d66cad86717ff103ef862c490399c771ad28f675680f9500cb97be48de34bcdc1e4503ffd\nb34867c6735d3c49865e246ddf6c3b33baf8e6f164db3406a64ebce4768cb46b0309635e11be985fee09ab7a31d81402\nacb966c554188c5b266624208f31fab250b3aa197adbdd14aee5ab27d7fb886eb4350985c553b20fdf66d5d332bfd3fe\n943c36a18223d6c870d54c3b051ef08d802b85e9dd6de37a51c932f90191890656c06adfa883c87b906557ae32d09da0\n81bca7954d0b9b6c3d4528aadf83e4bc2ef9ea143d6209bc45ae9e7ae9787dbcd8333c41f12c0b6deee8dcb6805e826a\naba176b92256efb68f574e543479e5cf0376889fb48e3db4ebfb7cba91e4d9bcf19dcfec444c6622d9398f06de29e2b9\nb9f743691448053216f6ece7cd699871fff4217a1409ceb8ab7bdf3312d11696d62c74b0664ba0a631b1e0237a8a0361\na383c2b6276fa9af346b21609326b53fb14fdf6f61676683076e80f375b603645f2051985706d0401e6fbed7eb0666b6\na9ef2f63ec6d9beb8f3d04e36807d84bda87bdd6b351a3e4a9bf7edcb5618c46c1f58cfbf89e64b40f550915c6988447\na141b2d7a82f5005eaea7ae7d112c6788b9b95121e5b70b7168d971812f3381de8b0082ac1f0a82c7d365922ebd2d26a\nb1b76ef8120e66e1535c17038b75255a07849935d3128e3e99e56567b842fb1e8d56ef932d508d2fb18b82f7868fe1a9\n8e2e234684c81f21099f5c54f6bbe2dd01e3b172623836c77668a0c49ce1fe218786c3827e4d9ae2ea25c50a8924fb3c\na5caf5ff948bfd3c4ca3ffbdfcd91eec83214a6c6017235f309a0bbf7061d3b0b466307c00b44a1009cf575163898b43\n986415a82ca16ebb107b4c50b0c023c28714281db0bcdab589f6cb13d80e473a3034b7081b3c358e725833f6d845cb14\nb94836bf406ac2cbacb10e6df5bcdfcc9d9124ae1062767ca4e322d287fd5e353fdcebd0e52407cb3cd68571258a8900\n83c6d70a640b33087454a4788dfd9ef3ed00272da084a8d36be817296f71c086b23b576f98178ab8ca6a74f04524b46b\nad4115182ad784cfe11bcfc5ce21fd56229cc2ce77ac82746e91a2f0aa53ca6593a22efd2dc4ed8d00f84542643d9c58\nab1434c5e5065da826d10c2a2dba0facccab0e52b506ce0ce42fbe47ced5a741797151d9ecc99dc7d6373cfa1779bbf6\n8a8b591d82358d55e6938f67ea87a89097ab5f5496f7260adb9f649abb289da12b498c5b2539c2f9614fb4e21b1f66b0\n964f355d603264bc1f44c64d6d64debca66f37dff39c971d9fc924f2bc68e6c187b48564a6dc82660a98b035f8addb5d\nb66235eaaf47456bc1dc4bde454a028e2ce494ece6b713a94cd6bf27cf18c717fd0c57a5681caaa2ad73a473593cdd7a\n9103e3bb74304186fa4e3e355a02da77da4aca9b7e702982fc2082af67127ebb23a455098313c88465bc9b7d26820dd5\nb6a42ff407c9dd132670cdb83cbad4b20871716e44133b59a932cd1c3f97c7ac8ff7f61acfaf8628372508d8dc8cad7c\n883a9c21c16a167a4171b0f084565c13b6f28ba7c4977a0de69f0a25911f64099e7bbb4da8858f2e93068f4155d04e18\n8dbb3220abc6a43220adf0331e3903d3bfd1d5213aadfbd8dfcdf4b2864ce2e96a71f35ecfb7a07c3bbabf0372b50271\nb4ad08aee48e176bda390b7d9acf2f8d5eb008f30d20994707b757dc6a3974b2902d29cd9b4d85e032810ad25ac49e97\n865bb0f33f7636ec501bb634e5b65751c8a230ae1fa807a961a8289bbf9c7fe8c59e01fbc4c04f8d59b7f539cf79ddd5\n86a54d4c12ad1e3605b9f93d4a37082fd26e888d2329847d89afa7802e815f33f38185c5b7292293d788ad7d7da1df97\nb26c8615c5e47691c9ff3deca3021714662d236c4d8401c5d27b50152ce7e566266b9d512d14eb63e65bc1d38a16f914\n827639d5ce7db43ba40152c8a0eaad443af21dc92636cc8cc2b35f10647da7d475a1e408901cd220552fddad79db74df\na2b79a582191a85dbe22dc384c9ca3de345e69f6aa370aa6d3ff1e1c3de513e30b72df9555b15a46586bd27ea2854d9d\nae0d74644aba9a49521d3e9553813bcb9e18f0b43515e4c74366e503c52f47236be92dfbd99c7285b3248c267b1de5a0\n80fb0c116e0fd6822a04b9c25f456bdca704e2be7bdc5d141dbf5d1c5eeb0a2c4f5d80db583b03ef3e47517e4f9a1b10\nac3a1fa3b4a2f30ea7e0a114cdc479eb51773573804c2a158d603ad9902ae8e39ffe95df09c0d871725a5d7f9ba71a57\nb56b2b0d601cba7f817fa76102c68c2e518c6f20ff693aad3ff2e07d6c4c76203753f7f91686b1801e8c4659e4d45c48\n89d50c1fc56e656fb9d3915964ebce703cb723fe411ab3c9eaa88ccc5d2b155a9b2e515363d9c600d3c0cee782c43f41\nb24207e61462f6230f3cd8ccf6828357d03e725769f7d1de35099ef9ee4dca57dbce699bb49ed994462bee17059d25ce\nb886f17fcbcbfcd08ac07f04bb9543ef58510189decaccea4b4158c9174a067cb67d14b6be3c934e6e2a18c77efa9c9c\nb9c050ad9cafd41c6e2e192b70d080076eed59ed38ea19a12bd92fa17b5d8947d58d5546aaf5e8e27e1d3b5481a6ce51\naaf7a34d3267e3b1ddbc54c641e3922e89303f7c86ebebc7347ebca4cffad5b76117dac0cbae1a133053492799cd936f\na9ee604ada50adef82e29e893070649d2d4b7136cc24fa20e281ce1a07bd736bf0de7c420369676bcbcecff26fb6e900\n9855315a12a4b4cf80ab90b8bd13003223ba25206e52fd4fe6a409232fbed938f30120a3db23eab9c53f308bd8b9db81\n8cd488dd7a24f548a3cf03c54dec7ff61d0685cb0f6e5c46c2d728e3500d8c7bd6bba0156f4bf600466fda53e5b20444\n890ad4942ebac8f5b16c777701ab80c68f56fa542002b0786f8fea0fb073154369920ac3dbfc07ea598b82f4985b8ced\n8de0cf9ddc84c9b92c59b9b044387597799246b30b9f4d7626fc12c51f6e423e08ee4cbfe9289984983c1f9521c3e19d\nb474dfb5b5f4231d7775b3c3a8744956b3f0c7a871d835d7e4fd9cc895222c7b868d6c6ce250de568a65851151fac860\n86433b6135d9ed9b5ee8cb7a6c40e5c9d30a68774cec04988117302b8a02a11a71a1e03fd8e0264ef6611d219f103007\n80b9ed4adbe9538fb1ef69dd44ec0ec5b57cbfea820054d8d445b4261962624b4c70ac330480594bc5168184378379c3\n8b2e83562ccd23b7ad2d17f55b1ab7ef5fbef64b3a284e6725b800f3222b8bdf49937f4a873917ada9c4ddfb090938c2\nabe78cebc0f5a45d754140d1f685e387489acbfa46d297a8592aaa0d676a470654f417a4f7d666fc0b2508fab37d908e\na9c5f8ff1f8568e252b06d10e1558326db9901840e6b3c26bbd0cd5e850cb5fb3af3f117dbb0f282740276f6fd84126f\n975f8dc4fb55032a5df3b42b96c8c0ffecb75456f01d4aef66f973cb7270d4eff32c71520ceefc1adcf38d77b6b80c67\nb043306ed2c3d8a5b9a056565afd8b5e354c8c4569fda66b0d797a50a3ce2c08cffbae9bbe292da69f39e89d5dc7911e\n8d2afc36b1e44386ba350c14a6c1bb31ff6ea77128a0c5287584ac3584282d18516901ce402b4644a53db1ed8e7fa581\n8c294058bed53d7290325c363fe243f6ec4f4ea2343692f4bac8f0cb86f115c069ccb8334b53d2e42c067691ad110dba\nb92157b926751aaf7ef82c1aa8c654907dccab6376187ee8b3e8c0c82811eae01242832de953faa13ebaff7da8698b3e\na780c4bdd9e4ba57254b09d745075cecab87feda78c88ffee489625c5a3cf96aa6b3c9503a374a37927d9b78de9bd22b\n811f548ef3a2e6a654f7dcb28ac9378de9515ed61e5a428515d9594a83e80b35c60f96a5cf743e6fab0d3cb526149f49\n85a4dccf6d90ee8e094731eec53bd00b3887aec6bd81a0740efddf812fd35e3e4fe4f983afb49a8588691c202dabf942\nb152c2da6f2e01c8913079ae2b40a09b1f361a80f5408a0237a8131b429677c3157295e11b365b1b1841924b9efb922e\n849b9efee8742502ffd981c4517c88ed33e4dd518a330802caff168abae3cd09956a5ee5eda15900243bc2e829016b74\n955a933f3c18ec0f1c0e38fa931e4427a5372c46a3906ebe95082bcf878c35246523c23f0266644ace1fa590ffa6d119\n911989e9f43e580c886656377c6f856cdd4ff1bd001b6db3bbd86e590a821d34a5c6688a29b8d90f28680e9fdf03ba69\nb73b8b4f1fd6049fb68d47cd96a18fcba3f716e0a1061aa5a2596302795354e0c39dea04d91d232aec86b0bf2ba10522\n90f87456d9156e6a1f029a833bf3c7dbed98ca2f2f147a8564922c25ae197a55f7ea9b2ee1f81bf7383197c4bad2e20c\n903cba8b1e088574cb04a05ca1899ab00d8960580c884bd3c8a4c98d680c2ad11410f2b75739d6050f91d7208cac33a5\n9329987d42529c261bd15ecedd360be0ea8966e7838f32896522c965adfc4febf187db392bd441fb43bbd10c38fdf68b\n8178ee93acf5353baa349285067b20e9bb41aa32d77b5aeb7384fe5220c1fe64a2461bd7a83142694fe673e8bbf61b7c\na06a8e53abcff271b1394bcc647440f81fb1c1a5f29c27a226e08f961c3353f4891620f2d59b9d1902bf2f5cc07a4553\naaf5fe493b337810889e777980e6bbea6cac39ac66bc0875c680c4208807ac866e9fda9b5952aa1d04539b9f4a4bec57\naa058abb1953eceac14ccfa7c0cc482a146e1232905dcecc86dd27f75575285f06bbae16a8c9fe8e35d8713717f5f19f\n8f15dd732799c879ca46d2763453b359ff483ca33adb1d0e0a57262352e0476c235987dc3a8a243c74bc768f93d3014c\na61cc8263e9bc03cce985f1663b8a72928a607121005a301b28a278e9654727fd1b22bc8a949af73929c56d9d3d4a273\n98d6dc78502d19eb9f921225475a6ebcc7b44f01a2df6f55ccf6908d65b27af1891be2a37735f0315b6e0f1576c1f8d8\n8bd258b883f3b3793ec5be9472ad1ff3dc4b51bc5a58e9f944acfb927349ead8231a523cc2175c1f98e7e1e2b9f363b8\naeacc2ecb6e807ad09bedd99654b097a6f39840e932873ace02eabd64ccfbb475abdcb62939a698abf17572d2034c51e\nb8ccf78c08ccd8df59fd6eda2e01de328bc6d8a65824d6f1fc0537654e9bc6bf6f89c422dd3a295cce628749da85c864\n8f91fd8cb253ba2e71cc6f13da5e05f62c2c3b485c24f5d68397d04665673167fce1fc1aec6085c69e87e66ec555d3fd\na254baa10cb26d04136886073bb4c159af8a8532e3fd36b1e9c3a2e41b5b2b6a86c4ebc14dbe624ee07b7ccdaf59f9ab\n94e3286fe5cd68c4c7b9a7d33ae3d714a7f265cf77cd0e9bc19fc51015b1d1c34ad7e3a5221c459e89f5a043ee84e3a9\na279da8878af8d449a9539bec4b17cea94f0242911f66fab275b5143ab040825f78c89cb32a793930609415cfa3a1078\nac846ceb89c9e5d43a2991c8443079dc32298cd63e370e64149cec98cf48a6351c09c856f2632fd2f2b3d685a18bbf8b\na847b27995c8a2e2454aaeb983879fb5d3a23105c33175839f7300b7e1e8ec3efd6450e9fa3f10323609dee7b98c6fd5\na2f432d147d904d185ff4b2de8c6b82fbea278a2956bc406855b44c18041854c4f0ecccd472d1d0dff1d8aa8e281cb1d\n94a48ad40326f95bd63dff4755f863a1b79e1df771a1173b17937f9baba57b39e651e7695be9f66a472f098b339364fc\na12a0ccd8f96e96e1bc6494341f7ebce959899341b3a084aa1aa87d1c0d489ac908552b7770b887bb47e7b8cbc3d8e66\n81a1f1681bda923bd274bfe0fbb9181d6d164fe738e54e25e8d4849193d311e2c4253614ed673c98af2c798f19a93468\nabf71106a05d501e84cc54610d349d7d5eae21a70bd0250f1bebbf412a130414d1c8dbe673ffdb80208fd72f1defa4d4\n96266dc2e0df18d8136d79f5b59e489978eee0e6b04926687fe389d4293c14f36f055c550657a8e27be4118b64254901\n8df5dcbefbfb4810ae3a413ca6b4bf08619ca53cd50eb1dde2a1c035efffc7b7ac7dff18d403253fd80104bd83dc029e\n9610b87ff02e391a43324a7122736876d5b3af2a137d749c52f75d07b17f19900b151b7f439d564f4529e77aa057ad12\na90a5572198b40fe2fcf47c422274ff36c9624df7db7a89c0eb47eb48a73a03c985f4ac5016161c76ca317f64339bce1\n98e5e61a6ab6462ba692124dba7794b6c6bde4249ab4fcc98c9edd631592d5bc2fb5e38466691a0970a38e48d87c2e43\n918cefb8f292f78d4db81462c633daf73b395e772f47b3a7d2cea598025b1d8c3ec0cbff46cdb23597e74929981cde40\na98918a5dc7cf610fe55f725e4fd24ce581d594cb957bb9b4e888672e9c0137003e1041f83e3f1d7b9caab06462c87d4\nb92b74ac015262ca66c33f2d950221e19d940ba3bf4cf17845f961dc1729ae227aa9e1f2017829f2135b489064565c29\na053ee339f359665feb178b4e7ee30a85df37debd17cacc5a27d6b3369d170b0114e67ad1712ed26d828f1df641bcd99\n8c3c8bad510b35da5ce5bd84b35c958797fbea024ad1c97091d2ff71d9b962e9222f65a9b776e5b3cc29c36e1063d2ee\naf99dc7330fe7c37e850283eb47cc3257888e7c197cb0d102edf94439e1e02267b6a56306d246c326c4c79f9dc8c6986\nafecb2dc34d57a725efbd7eb93d61eb29dbe8409b668ab9ea040791f5b796d9be6d4fc10d7f627bf693452f330cf0435\n93334fedf19a3727a81a6b6f2459db859186227b96fe7a391263f69f1a0884e4235de64d29edebc7b99c44d19e7c7d7a\n89579c51ac405ad7e9df13c904061670ce4b38372492764170e4d3d667ed52e5d15c7cd5c5991bbfa3a5e4e3fa16363e\n9778f3e8639030f7ef1c344014f124e375acb8045bd13d8e97a92c5265c52de9d1ffebaa5bc3e1ad2719da0083222991\n88f77f34ee92b3d36791bdf3326532524a67d544297dcf1a47ff00b47c1b8219ff11e34034eab7d23b507caa2fd3c6b9\na699c1e654e7c484431d81d90657892efeb4adcf72c43618e71ca7bd7c7a7ebbb1db7e06e75b75dc4c74efd306b5df3f\n81d13153baebb2ef672b5bdb069d3cd669ce0be96b742c94e04038f689ff92a61376341366b286eee6bf3ae85156f694\n81efb17de94400fdacc1deec2550cbe3eecb27c7af99d8207e2f9be397e26be24a40446d2a09536bb5172c28959318d9\n989b21ebe9ceab02488992673dc071d4d5edec24bff0e17a4306c8cb4b3c83df53a2063d1827edd8ed16d6e837f0d222\n8d6005d6536825661b13c5fdce177cb37c04e8b109b7eb2b6d82ea1cb70efecf6a0022b64f84d753d165edc2bba784a3\na32607360a71d5e34af2271211652d73d7756d393161f4cf0da000c2d66a84c6826e09e759bd787d4fd0305e2439d342\naaad8d6f6e260db45d51b2da723be6fa832e76f5fbcb77a9a31e7f090dd38446d3b631b96230d78208cae408c288ac4e\nabcfe425255fd3c5cffd3a818af7650190c957b6b07b632443f9e33e970a8a4c3bf79ac9b71f4d45f238a04d1c049857\naeabf026d4c783adc4414b5923dbd0be4b039cc7201219f7260d321f55e9a5b166d7b5875af6129c034d0108fdc5d666\naf49e740c752d7b6f17048014851f437ffd17413c59797e5078eaaa36f73f0017c3e7da020310cfe7d3c85f94a99f203\n8854ca600d842566e3090040cd66bb0b3c46dae6962a13946f0024c4a8aca447e2ccf6f240045f1ceee799a88cb9210c\nb6c03b93b1ab1b88ded8edfa1b487a1ed8bdce8535244dddb558ffb78f89b1c74058f80f4db2320ad060d0c2a9c351cc\nb5bd7d17372faff4898a7517009b61a7c8f6f0e7ed4192c555db264618e3f6e57fb30a472d169fea01bf2bf0362a19a8\n96eb1d38319dc74afe7e7eb076fcd230d19983f645abd14a71e6103545c01301b31c47ae931e025f3ecc01fb3d2f31fa\nb55a8d30d4403067def9b65e16f867299f8f64c9b391d0846d4780bc196569622e7e5b64ce799b5aefac8f965b2a7a7b\n8356d199a991e5cbbff608752b6291731b6b6771aed292f8948b1f41c6543e4ab1bedc82dd26d10206c907c03508df06\n97f4137445c2d98b0d1d478049de952610ad698c91c9d0f0e7227d2aae690e9935e914ec4a2ea1fbf3fc1dddfeeacebb\naf5621707e0938320b15ddfc87584ab325fbdfd85c30efea36f8f9bd0707d7ec12c344eff3ec21761189518d192df035\n8ac7817e71ea0825b292687928e349da7140285d035e1e1abff0c3704fa8453faaae343a441b7143a74ec56539687cc4\n8a5e0a9e4758449489df10f3386029ada828d1762e4fb0a8ffe6b79e5b6d5d713cb64ed95960e126398b0cdb89002bc9\n81324be4a71208bbb9bca74b77177f8f1abb9d3d5d9db195d1854651f2cf333cd618d35400da0f060f3e1b025124e4b2\n849971d9d095ae067525b3cbc4a7dfae81f739537ade6d6cec1b42fb692d923176197a8770907c58069754b8882822d6\n89f830825416802477cc81fdf11084885865ee6607aa15aa4eb28e351c569c49b8a1b9b5e95ddc04fa0ebafe20071313\n9240aeeaff37a91af55f860b9badd466e8243af9e8c96a7aa8cf348cd270685ab6301bc135b246dca9eda696f8b0e350\nacf74db78cc33138273127599eba35b0fb4e7b9a69fe02dae18fc6692d748ca332bd00b22afa8e654ed587aab11833f3\nb091e6d37b157b50d76bd297ad752220cd5c9390fac16dc838f8557aed6d9833fc920b61519df21265406216315e883f\na6446c429ebf1c7793c622250e23594c836b2fbcaf6c5b3d0995e1595a37f50ea643f3e549b0be8bbdadd69044d72ab9\n93e675353bd60e996bf1c914d5267eeaa8a52fc3077987ccc796710ef9becc6b7a00e3d82671a6bdfb8145ee3c80245a\na2f731e43251d04ed3364aa2f072d05355f299626f2d71a8a38b6f76cf08c544133f7d72dd0ab4162814b674b9fc7fa6\n97a8b791a5a8f6e1d0de192d78615d73d0c38f1e557e4e15d15adc663d649e655bc8da3bcc499ef70112eafe7fb45c7a\n98cd624cbbd6c53a94469be4643c13130916b91143425bcb7d7028adbbfede38eff7a21092af43b12d4fab703c116359\n995783ce38fd5f6f9433027f122d4cf1e1ff3caf2d196ce591877f4a544ce9113ead60de2de1827eaff4dd31a20d79a8\n8cf251d6f5229183b7f3fe2f607a90b4e4b6f020fb4ba2459d28eb8872426e7be8761a93d5413640a661d73e34a5b81f\nb9232d99620652a3aa7880cad0876f153ff881c4ed4c0c2e7b4ea81d5d42b70daf1a56b869d752c3743c6d4c947e6641\n849716f938f9d37250cccb1bf77f5f9fde53096cdfc6f2a25536a6187029a8f1331cdbed08909184b201f8d9f04b792f\n80c7c4de098cbf9c6d17b14eba1805e433b5bc905f6096f8f63d34b94734f2e4ebf4bce8a177efd1186842a61204a062\nb790f410cf06b9b8daadceeb4fd5ff40a2deda820c8df2537e0a7554613ae3948e149504e3e79aa84889df50c8678eeb\n813aab8bd000299cd37485b73cd7cba06e205f8efb87f1efc0bae8b70f6db2bc7702eb39510ad734854fb65515fe9d0f\n94f0ab7388ac71cdb67f6b85dfd5945748afb2e5abb622f0b5ad104be1d4d0062b651f134ba22385c9e32c2dfdcccce1\nab6223dca8bd6a4f969e21ccd9f8106fc5251d321f9e90cc42cea2424b3a9c4e5060a47eeef6b23c7976109b548498e8\n859c56b71343fce4d5c5b87814c47bf55d581c50fd1871a17e77b5e1742f5af639d0e94d19d909ec7dfe27919e954e0c\naae0d632b6191b8ad71b027791735f1578e1b89890b6c22e37de0e4a6074886126988fe8319ae228ac9ef3b3bcccb730\n8ca9f32a27a024c3d595ecfaf96b0461de57befa3b331ab71dc110ec3be5824fed783d9516597537683e77a11d334338\na061df379fb3f4b24816c9f6cd8a94ecb89b4c6dc6cd81e4b8096fa9784b7f97ab3540259d1de9c02eb91d9945af4823\n998603102ac63001d63eb7347a4bb2bf4cf33b28079bb48a169076a65c20d511ccd3ef696d159e54cc8e772fb5d65d50\n94444d96d39450872ac69e44088c252c71f46be8333a608a475147752dbb99db0e36acfc5198f158509401959c12b709\nac1b51b6c09fe055c1d7c9176eea9adc33f710818c83a1fbfa073c8dc3a7eb3513cbdd3f5960b7845e31e3e83181e6ba\n803d530523fc9e1e0f11040d2412d02baef3f07eeb9b177fa9bfa396af42eea898a4276d56e1db998dc96ae47b644cb2\n85a3c9fc7638f5bf2c3e15ba8c2fa1ae87eb1ceb44c6598c67a2948667a9dfa41e61f66d535b4e7fda62f013a5a8b885\na961cf5654c46a1a22c29baf7a4e77837a26b7f138f410e9d1883480ed5fa42411d522aba32040b577046c11f007388e\nad1154142344f494e3061ef45a34fab1aaacf5fdf7d1b26adbb5fbc3d795655fa743444e39d9a4119b4a4f82a6f30441\nb1d6c30771130c77806e7ab893b73d4deb590b2ff8f2f8b5e54c2040c1f3e060e2bd99afc668cf706a2df666a508bbf6\na00361fd440f9decabd98d96c575cd251dc94c60611025095d1201ef2dedde51cb4de7c2ece47732e5ed9b3526c2012c\na85c5ab4d17d328bda5e6d839a9a6adcc92ff844ec25f84981e4f44a0e8419247c081530f8d9aa629c7eb4ca21affba6\na4ddd3eab4527a2672cf9463db38bc29f61460e2a162f426b7852b7a7645fbd62084fd39a8e4d60e1958cce436dd8f57\n811648140080fe55b8618f4cf17f3c5a250adb0cd53d885f2ddba835d2b4433188e41fc0661faac88e4ff910b16278c0\nb85c7f1cfb0ed29addccf7546023a79249e8f15ac2d14a20accbfef4dd9dc11355d599815fa09d2b6b4e966e6ea8cff1\na10b5d8c260b159043b020d5dd62b3467df2671afea6d480ca9087b7e60ed170c82b121819d088315902842d66c8fb45\n917e191df1bcf3f5715419c1e2191da6b8680543b1ba41fe84ed07ef570376e072c081beb67b375fca3565a2565bcabb\n881fd967407390bfd7badc9ab494e8a287559a01eb07861f527207c127eadea626e9bcc5aa9cca2c5112fbac3b3f0e9c\n959fd71149af82cc733619e0e5bf71760ca2650448c82984b3db74030d0e10f8ab1ce1609a6de6f470fe8b5bd90df5b3\na3370898a1c5f33d15adb4238df9a6c945f18b9ada4ce2624fc32a844f9ece4c916a64e9442225b6592afa06d2e015f2\n817efb8a791435e4236f7d7b278181a5fa34587578c629dbc14fbf9a5c26772290611395eecd20222a4c58649fc256d8\na04c9876acf2cfdc8ef96de4879742709270fa1d03fe4c8511fbef2d59eb0aaf0336fa2c7dfe41a651157377fa217813\n81e15875d7ea7f123e418edf14099f2e109d4f3a6ce0eb65f67fe9fb10d2f809a864a29f60ad3fc949f89e2596b21783\nb49f529975c09e436e6bc202fdc16e3fdcbe056db45178016ad6fdece9faad4446343e83aed096209690b21a6910724f\n879e8eda589e1a279f7f49f6dd0580788c040d973748ec4942dbe51ea8fbd05983cc919b78f0c6b92ef3292ae29db875\n81a2b74b2118923f34139a102f3d95e7eee11c4c2929c2576dee200a5abfd364606158535a6c9e4178a6a83dbb65f3c4\n8913f281d8927f2b45fc815d0f7104631cb7f5f7278a316f1327d670d15868daadd2a64e3eb98e1f53fe7e300338cc80\na6f815fba7ef9af7fbf45f93bc952e8b351f5de6568a27c7c47a00cb39a254c6b31753794f67940fc7d2e9cc581529f4\nb3722a15c66a0014ce4d082de118def8d39190c15678a472b846225585f3a83756ae1b255b2e3f86a26168878e4773b2\n817ae61ab3d0dd5b6e24846b5a5364b1a7dc2e77432d9fed587727520ae2f307264ea0948c91ad29f0aea3a11ff38624\nb3db467464415fcad36dc1de2d6ba7686772a577cc2619242ac040d6734881a45d3b40ed4588db124e4289cfeec4bbf6\nad66a14f5a54ac69603b16e5f1529851183da77d3cc60867f10aea41339dd5e06a5257982e9e90a352cdd32750f42ee4\nadafa3681ef45d685555601a25a55cf23358319a17f61e2179e704f63df83a73bdd298d12cf6cef86db89bd17119e11d\na379dc44cb6dd3b9d378c07b2ec654fec7ca2f272de6ba895e3d00d20c9e4c5550498a843c8ac67e4221db2115bedc1c\nb7bf81c267a78efc6b9e5a904574445a6487678d7ef70054e3e93ea6a23f966c2b68787f9164918e3b16d2175459ed92\nb41d66a13a4afafd5760062b77f79de7e6ab8ccacde9c6c5116a6d886912fb491dc027af435b1b44aacc6af7b3c887f2\n9904d23a7c1c1d2e4bab85d69f283eb0a8e26d46e8b7b30224438015c936729b2f0af7c7c54c03509bb0500acb42d8a4\nae30d65e9e20c3bfd603994ae2b175ff691d51f3e24b2d058b3b8556d12ca4c75087809062dddd4aaac81c94d15d8a17\n9245162fab42ac01527424f6013310c3eb462982518debef6c127f46ba8a06c705d7dc9f0a41e796ba8d35d60ae6cc64\n87fab853638d7a29a20f3ba2b1a7919d023e9415bfa78ebb27973d8cbc7626f584dc5665d2e7ad71f1d760eba9700d88\n85aac46ecd330608e5272430970e6081ff02a571e8ea444f1e11785ea798769634a22a142d0237f67b75369d3c484a8a\n938c85ab14894cc5dfce3d80456f189a2e98eddbc8828f4ff6b1df1dcb7b42b17ca2ff40226a8a1390a95d63dca698dd\na18ce1f846e3e3c4d846822f60271eecf0f5d7d9f986385ac53c5ace9589dc7c0188910448c19b91341a1ef556652fa9\n8611608a9d844f0e9d7584ad6ccf62a5087a64f764caf108db648a776b5390feb51e5120f0ef0e9e11301af3987dd7dc\n8106333ba4b4de8d1ae43bc9735d3fea047392e88efd6a2fa6f7b924a18a7a265ca6123c3edc0f36307dd7fb7fe89257\na91426fa500951ff1b051a248c050b7139ca30dde8768690432d597d2b3c4357b11a577be6b455a1c5d145264dcf81fc\nb7f9f90e0e450f37b081297f7f651bad0496a8b9afd2a4cf4120a2671aaaa8536dce1af301258bfbfdb122afa44c5048\n84126da6435699b0c09fa4032dec73d1fca21d2d19f5214e8b0bea43267e9a8dd1fc44f8132d8315e734c8e2e04d7291\naff064708103884cb4f1a3c1718b3fc40a238d35cf0a7dc24bdf9823693b407c70da50df585bf5bc4e9c07d1c2d203e8\na8b40fc6533752983a5329c31d376c7a5c13ce6879cc7faee648200075d9cd273537001fb4c86e8576350eaac6ba60c2\na02db682bdc117a84dcb9312eb28fcbde12d49f4ce915cc92c610bb6965ec3cc38290f8c5b5ec70afe153956692cda95\n86decd22b25d300508472c9ce75d3e465b737e7ce13bc0fcce32835e54646fe12322ba5bc457be18bfd926a1a6ca4a38\na18666ef65b8c2904fd598791f5627207165315a85ee01d5fb0e6b2e10bdd9b00babc447da5bd63445e3337de33b9b89\n89bb0c06effadefdaf34ffe4b123e1678a90d4451ee856c863df1e752eef41fd984689ded8f0f878bf8916d5dd8e8024\n97cfcba08ebec05d0073992a66b1d7d6fb9d95871f2cdc36db301f78bf8069294d1c259efef5c93d20dc937eedae3a1a\nac2643b14ece79dcb2e289c96776a47e2bebd40dd6dc74fd035df5bb727b5596f40e3dd2d2202141e69b0993717ede09\na5e6fd88a2f9174d9bd4c6a55d9c30974be414992f22aa852f552c7648f722ed8077acf5aba030abd47939bb451b2c60\n8ad40a612824a7994487731a40b311b7349038c841145865539c6ada75c56de6ac547a1c23df190e0caaafecddd80ccc\n953a7cea1d857e09202c438c6108060961f195f88c32f0e012236d7a4b39d840c61b162ec86436e8c38567328bea0246\n80d8b47a46dae1868a7b8ccfe7029445bbe1009dad4a6c31f9ef081be32e8e1ac1178c3c8fb68d3e536c84990cc035b1\n81ecd99f22b3766ce0aca08a0a9191793f68c754fdec78b82a4c3bdc2db122bbb9ebfd02fc2dcc6e1567a7d42d0cc16a\nb1dd0446bccc25846fb95d08c1c9cc52fb51c72c4c5d169ffde56ecfe800f108dc1106d65d5c5bd1087c656de3940b63\nb87547f0931e164e96de5c550ca5aa81273648fe34f6e193cd9d69cf729cb432e17aa02e25b1c27a8a0d20a3b795e94e\n820a94e69a927e077082aae66f6b292cfbe4589d932edf9e68e268c9bd3d71ef76cf7d169dd445b93967c25db11f58f1\nb0d07ddf2595270c39adfa0c8cf2ab1322979b0546aa4d918f641be53cd97f36c879bb75d205e457c011aca3bbd9f731\n8700b876b35b4b10a8a9372c5230acecd39539c1bb87515640293ad4464a9e02929d7d6a6a11112e8a29564815ac0de4\na61a601c5bb27dcb97e37c8e2b9ce479c6b192a5e04d9ed5e065833c5a1017ee5f237b77d1a17be5d48f8e7cc0bcacf6\n92fb88fe774c1ba1d4a08cae3c0e05467ad610e7a3f1d2423fd47751759235fe0a3036db4095bd6404716aa03820f484\nb274f140d77a3ce0796f5e09094b516537ccaf27ae1907099bff172e6368ba85e7c3ef8ea2a07457cac48ae334da95b3\nb2292d9181f16581a9a9142490b2bdcdfb218ca6315d1effc8592100d792eb89d5356996c890441f04f2b4a95763503e\n8897e73f576d86bc354baa3bd96e553107c48cf5889dcc23c5ba68ab8bcd4e81f27767be2233fdfa13d39f885087e668\na29eac6f0829791c728d71abc49569df95a4446ecbfc534b39f24f56c88fe70301838dfc1c19751e7f3c5c1b8c6af6a0\n9346dc3720adc5df500a8df27fd9c75ef38dc5c8f4e8ed66983304750e66d502c3c59b8e955be781b670a0afc70a2167\n9566d534e0e30a5c5f1428665590617e95fd05d45f573715f58157854ad596ece3a3cfec61356aee342308d623e029d5\na464fb8bffe6bd65f71938c1715c6e296cc6d0311a83858e4e7eb5873b7f2cf0c584d2101e3407b85b64ca78b2ac93ce\nb54088f7217987c87e9498a747569ac5b2f8afd5348f9c45bf3fd9fbf713a20f495f49c8572d087efe778ac7313ad6d3\n91fa9f5f8000fe050f5b224d90b59fcce13c77e903cbf98ded752e5b3db16adb2bc1f8c94be48b69f65f1f1ad81d6264\n92d04a5b0ac5d8c8e313709b432c9434ecd3e73231f01e9b4e7952b87df60cbfa97b5dedd2200bd033b4b9ea8ba45cc1\na94b90ad3c3d6c4bbe169f8661a790c40645b40f0a9d1c7220f01cf7fc176e04d80bab0ced9323fcafb93643f12b2760\n94d86149b9c8443b46196f7e5a3738206dd6f3be7762df488bcbb9f9ee285a64c997ed875b7b16b26604fa59020a8199\n82efe4ae2c50a2d7645240c173a047f238536598c04a2c0b69c96e96bd18e075a99110f1206bc213f39edca42ba00cc1\nab8667685f831bc14d4610f84a5da27b4ea5b133b4d991741a9e64dceb22cb64a3ce8f1b6e101d52af6296df7127c9ad\n83ba433661c05dcc5d562f4a9a261c8110dac44b8d833ae1514b1fc60d8b4ee395b18804baea04cb10adb428faf713c3\nb5748f6f660cc5277f1211d2b8649493ed8a11085b871cd33a5aea630abd960a740f08c08be5f9c21574600ac9bf5737\na5c8dd12af48fb710642ad65ebb97ca489e8206741807f7acfc334f8035d3c80593b1ff2090c9bb7bd138f0c48714ca8\na2b382fd5744e3babf454b1d806cc8783efeb4761bc42b6914ea48a46a2eae835efbe0a18262b6bc034379e03cf1262b\nb3145ffaf603f69f15a64936d32e3219eea5ed49fdfd2f5bf40ea0dfd974b36fb6ff12164d4c2282d892db4cf3ff3ce1\n87a316fb213f4c5e30c5e3face049db66be4f28821bd96034714ec23d3e97849d7b301930f90a4323c7ccf53de23050c\nb9de09a919455070fed6220fc179c8b7a4c753062bcd27acf28f5b9947a659c0b364298daf7c85c4ca6fca7f945add1f\n806fbd98d411b76979464c40ad88bc07a151628a27fcc1012ba1dfbaf5b5cc9d962fb9b3386008978a12515edce934bc\na15268877fae0d21610ae6a31061ed7c20814723385955fac09fdc9693a94c33dea11db98bb89fdfe68f933490f5c381\n8d633fb0c4da86b2e0b37d8fad5972d62bff2ac663c5ec815d095cd4b7e1fe66ebef2a2590995b57eaf941983c7ad7a4\n8139e5dd9cf405e8ef65f11164f0440827d98389ce1b418b0c9628be983a9ddd6cf4863036ccb1483b40b8a527acd9ed\n88b15fa94a08eac291d2b94a2b30eb851ff24addf2cc30b678e72e32cfcb3424cf4b33aa395d741803f3e578ddf524de\nb5eaf0c8506e101f1646bcf049ee38d99ea1c60169730da893fd6020fd00a289eb2f415947e44677af49e43454a7b1be\n8489822ad0647a7e06aa2aa5595960811858ddd4542acca419dd2308a8c5477648f4dd969a6740bb78aa26db9bfcc555\nb1e9a7b9f3423c220330d45f69e45fa03d7671897cf077f913c252e3e99c7b1b1cf6d30caad65e4228d5d7b80eb86e5e\nb28fe9629592b9e6a55a1406903be76250b1c50c65296c10c5e48c64b539fb08fe11f68cf462a6edcbba71b0cee3feb2\na41acf96a02c96cd8744ff6577c244fc923810d17ade133587e4c223beb7b4d99fa56eae311a500d7151979267d0895c\n880798938fe4ba70721be90e666dfb62fcab4f3556fdb7b0dc8ec5bc34f6b4513df965eae78527136eb391889fe2caf9\n98d4d89d358e0fb7e212498c73447d94a83c1b66e98fc81427ab13acddb17a20f52308983f3a5a8e0aaacec432359604\n81430b6d2998fc78ba937a1639c6020199c52da499f68109da227882dc26d005b73d54c5bdcac1a04e8356a8ca0f7017\na8d906a4786455eb74613aba4ce1c963c60095ffb8658d368df9266fdd01e30269ce10bf984e7465f34b4fd83beba26a\naf54167ac1f954d10131d44a8e0045df00d581dd9e93596a28d157543fbe5fb25d213806ed7fb3cba6b8f5b5423562db\n8511e373a978a12d81266b9afbd55035d7bc736835cfa921903a92969eeba3624437d1346b55382e61415726ab84a448\n8cf43eea93508ae586fa9a0f1354a1e16af659782479c2040874a46317f9e8d572a23238efa318fdfb87cc63932602b7\nb0bdd3bacff077173d302e3a9678d1d37936188c7ecc34950185af6b462b7c679815176f3cce5db19aac8b282f2d60ad\na355e9b87f2f2672052f5d4d65b8c1c827d24d89b0d8594641fccfb69aef1b94009105f3242058bb31c8bf51caae5a41\nb8baa9e4b950b72ff6b88a6509e8ed1304bc6fd955748b2e59a523a1e0c5e99f52aec3da7fa9ff407a7adf259652466c\n840bc3dbb300ea6f27d1d6dd861f15680bd098be5174f45d6b75b094d0635aced539fa03ddbccb453879de77fb5d1fe9\nb4bc7e7e30686303856472bae07e581a0c0bfc815657c479f9f5931cff208d5c12930d2fd1ff413ebd8424bcd7a9b571\n89b5d514155d7999408334a50822508b9d689add55d44a240ff2bdde2eee419d117031f85e924e2a2c1ca77db9b91eea\na8604b6196f87a04e1350302e8aa745bba8dc162115d22657b37a1d1a98cb14876ddf7f65840b5dbd77e80cd22b4256c\n83cb7acdb9e03247515bb2ce0227486ccf803426717a14510f0d59d45e998b245797d356f10abca94f7a14e1a2f0d552\naeb3266a9f16649210ab2df0e1908ac259f34ce1f01162c22b56cf1019096ee4ea5854c36e30bb2feb06c21a71e8a45c\n89e72e86edf2aa032a0fc9acf4d876a40865fbb2c8f87cb7e4d88856295c4ac14583e874142fd0c314a49aba68c0aa3c\n8c3576eba0583c2a7884976b4ed11fe1fda4f6c32f6385d96c47b0e776afa287503b397fa516a455b4b8c3afeedc76db\na31e5b633bda9ffa174654fee98b5d5930a691c3c42fcf55673d927dbc8d91c58c4e42e615353145431baa646e8bbb30\n89f2f3f7a8da1544f24682f41c68114a8f78c86bd36b066e27da13acb70f18d9f548773a16bd8e24789420e17183f137\nada27fa4e90a086240c9164544d2528621a415a5497badb79f8019dc3dce4d12eb6b599597e47ec6ac39c81efda43520\n90dc1eb21bf21c0187f359566fc4bf5386abea52799306a0e5a1151c0817c5f5bc60c86e76b1929c092c0f3ff48cedd2\nb702a53ebcc17ae35d2e735a347d2c700e9cbef8eadbece33cac83df483b2054c126593e1f462cfc00a3ce9d737e2af5\n9891b06455ec925a6f8eafffba05af6a38cc5e193acaaf74ffbf199df912c5197106c5e06d72942bbb032ce277b6417f\n8c0ee71eb01197b019275bcf96cae94e81d2cdc3115dbf2d8e3080074260318bc9303597e8f72b18f965ad601d31ec43\n8aaf580aaf75c1b7a5f99ccf60503506e62058ef43b28b02f79b8536a96be3f019c9f71caf327b4e6730134730d1bef5\nae6f9fc21dd7dfa672b25a87eb0a41644f7609fab5026d5cedb6e43a06dbbfd6d6e30322a2598c8dedde88c52eaed626\n8159b953ffece5693edadb2e906ebf76ff080ee1ad22698950d2d3bfc36ac5ea78f58284b2ca180664452d55bd54716c\nab7647c32ca5e9856ac283a2f86768d68de75ceeba9e58b74c5324f8298319e52183739aba4340be901699d66ac9eb3f\na4d85a5701d89bcfaf1572db83258d86a1a0717603d6f24ac2963ffcf80f1265e5ab376a4529ca504f4396498791253c\n816080c0cdbfe61b4d726c305747a9eb58ac26d9a35f501dd32ba43c098082d20faf3ccd41aad24600aa73bfa453dfac\n84f3afac024f576b0fd9acc6f2349c2fcefc3f77dbe5a2d4964d14b861b88e9b1810334b908cf3427d9b67a8aee74b18\n94b390655557b1a09110018e9b5a14490681ade275bdc83510b6465a1218465260d9a7e2a6e4ec700f58c31dc3659962\na8c66826b1c04a2dd4c682543242e7a57acae37278bd09888a3d17747c5b5fec43548101e6f46d703638337e2fd3277b\n86e6f4608a00007fa533c36a5b054c5768ccafe41ad52521d772dcae4c8a4bcaff8f7609be30d8fab62c5988cbbb6830\n837da4cf09ae8aa0bceb16f8b3bfcc3b3367aecac9eed6b4b56d7b65f55981ef066490764fb4c108792623ecf8cad383\n941ff3011462f9b5bf97d8cbdb0b6f5d37a1b1295b622f5485b7d69f2cb2bcabc83630dae427f0259d0d9539a77d8424\nb99e5d6d82aa9cf7d5970e7f710f4039ac32c2077530e4c2779250c6b9b373bc380adb0a03b892b652f649720672fc8c\na791c78464b2d65a15440b699e1e30ebd08501d6f2720adbc8255d989a82fcded2f79819b5f8f201bed84a255211b141\n84af7ad4a0e31fcbb3276ab1ad6171429cf39adcf78dc03750dc5deaa46536d15591e26d53e953dfb31e1622bc0743ab\na833e62fe97e1086fae1d4917fbaf09c345feb6bf1975b5cb863d8b66e8d621c7989ab3dbecda36bc9eaffc5eaa6fa66\nb4ef79a46a2126f53e2ebe62770feb57fd94600be29459d70a77c5e9cc260fa892be06cd60f886bf48459e48eb50d063\nb43b8f61919ea380bf151c294e54d3a3ff98e20d1ee5efbfe38aa2b66fafbc6a49739793bd5cb1c809f8b30466277c3a\nab37735af2412d2550e62df9d8b3b5e6f467f20de3890bf56faf1abf2bf3bd1d98dc3fa0ad5e7ab3fce0fa20409eb392\n82416b74b1551d484250d85bb151fabb67e29cce93d516125533df585bc80779ab057ea6992801a3d7d5c6dcff87a018\n8145d0787f0e3b5325190ae10c1d6bee713e6765fb6a0e9214132c6f78f4582bb2771aaeae40d3dad4bafb56bf7e36d8\nb6935886349ecbdd5774e12196f4275c97ec8279fdf28ccf940f6a022ebb6de8e97d6d2173c3fe402cbe9643bed3883b\n87ef9b4d3dc71ac86369f8ed17e0dd3b91d16d14ae694bc21a35b5ae37211b043d0e36d8ff07dcc513fb9e6481a1f37f\nae1d0ded32f7e6f1dc8fef495879c1d9e01826f449f903c1e5034aeeabc5479a9e323b162b688317d46d35a42d570d86\na40d16497004db4104c6794e2f4428d75bdf70352685944f3fbe17526df333e46a4ca6de55a4a48c02ecf0bde8ba03c0\n8d45121efba8cc308a498e8ee39ea6fa5cae9fb2e4aab1c2ff9d448aa8494ccbec9a078f978a86fcd97b5d5e7be7522a\na8173865c64634ba4ac2fa432740f5c05056a9deaf6427cb9b4b8da94ca5ddbc8c0c5d3185a89b8b28878194de9cdfcd\nb6ec06a74d690f6545f0f0efba236e63d1fdfba54639ca2617408e185177ece28901c457d02b849fd00f1a53ae319d0a\nb69a12df293c014a40070e3e760169b6f3c627caf9e50b35a93f11ecf8df98b2bc481b410eecb7ab210bf213bbe944de\n97e7dc121795a533d4224803e591eef3e9008bab16f12472210b73aaf77890cf6e3877e0139403a0d3003c12c8f45636\nacdfa6fdd4a5acb7738cc8768f7cba84dbb95c639399b291ae8e4e63df37d2d4096900a84d2f0606bf534a9ccaa4993f\n86ee253f3a9446a33e4d1169719b7d513c6b50730988415382faaf751988c10a421020609f7bcdef91be136704b906e2\naac9438382a856caf84c5a8a234282f71b5fc5f65219103b147e7e6cf565522285fbfd7417b513bdad8277a00f652ca1\n83f3799d8e5772527930f5dc071a2e0a65471618993ec8990a96ccdeee65270e490bda9d26bb877612475268711ffd80\n93f28a81ac8c0ec9450b9d762fae9c7f8feaace87a6ee6bd141ef1d2d0697ef1bbd159fe6e1de640dbdab2b0361fca8a\na0825c95ba69999b90eac3a31a3fd830ea4f4b2b7409bde5f202b61d741d6326852ce790f41de5cb0eccec7af4db30c1\n83924b0e66233edd603c3b813d698daa05751fc34367120e3cf384ea7432e256ccee4d4daf13858950549d75a377107d\n956fd9fa58345277e06ba2ec72f49ed230b8d3d4ff658555c52d6cddeb84dd4e36f1a614f5242d5ca0192e8daf0543c2\n944869912476baae0b114cced4ff65c0e4c90136f73ece5656460626599051b78802df67d7201c55d52725a97f5f29fe\n865cb25b64b4531fb6fe4814d7c8cd26b017a6c6b72232ff53defc18a80fe3b39511b23f9e4c6c7249d06e03b2282ed2\n81e09ff55214960775e1e7f2758b9a6c4e4cd39edf7ec1adfaad51c52141182b79fe2176b23ddc7df9fd153e5f82d668\nb31006896f02bc90641121083f43c3172b1039334501fbaf1672f7bf5d174ddd185f945adf1a9c6cf77be34c5501483d\n88b92f6f42ae45e9f05b16e52852826e933efd0c68b0f2418ac90957fd018df661bc47c8d43c2a7d7bfcf669dab98c3c\n92fc68f595853ee8683930751789b799f397135d002eda244fe63ecef2754e15849edde3ba2f0cc8b865c9777230b712\n99ca06a49c5cd0bb097c447793fcdd809869b216a34c66c78c7e41e8c22f05d09168d46b8b1f3390db9452d91bc96dea\nb48b9490a5d65296802431852d548d81047bbefc74fa7dc1d4e2a2878faacdfcb365ae59209cb0ade01901a283cbd15d\naff0fdbef7c188b120a02bc9085d7b808e88f73973773fef54707bf2cd772cd066740b1b6f4127b5c349f657bd97e738\n966fd4463b4f43dd8ccba7ad50baa42292f9f8b2e70da23bb6780e14155d9346e275ef03ddaf79e47020dcf43f3738bd\n9330c3e1fadd9e08ac85f4839121ae20bbeb0a5103d84fa5aadbd1213805bdcda67bf2fb75fc301349cbc851b5559d20\n993bb99867bd9041a71a55ad5d397755cfa7ab6a4618fc526179bfc10b7dc8b26e4372fe9a9b4a15d64f2b63c1052dda\na29b59bcfab51f9b3c490a3b96f0bf1934265c315349b236012adbd64a56d7f6941b2c8cc272b412044bc7731f71e1dc\na65c9cefe1fc35d089fe8580c2e7671ebefdb43014ac291528ff4deefd4883fd4df274af83711dad610dad0d615f9d65\n944c78c56fb227ae632805d448ca3884cd3d2a89181cead3d2b7835e63297e6d740aa79a112edb1d4727824991636df5\na73d782da1db7e4e65d7b26717a76e16dd9fab4df65063310b8e917dc0bc24e0d6755df5546c58504d04d9e68c3b474a\naf80f0b87811ae3124f68108b4ca1937009403f87928bbc53480e7c5408d072053ace5eeaf5a5aba814dab8a45502085\n88aaf1acfc6e2e19b8387c97da707cb171c69812fefdd4650468e9b2c627bd5ccfb459f4d8e56bdfd84b09ddf87e128f\n92c97276ff6f72bab6e9423d02ad6dc127962dbce15a0dd1e4a393b4510c555df6aa27be0f697c0d847033a9ca8b8dfd\na0e07d43d96e2d85b6276b3c60aadb48f0aedf2de8c415756dc597249ea64d2093731d8735231dadc961e5682ac59479\nadc9e6718a8f9298957d1da3842a7751c5399bbdf56f8de6c1c4bc39428f4aee6f1ba6613d37bf46b9403345e9d6fc81\n951da434da4b20d949b509ceeba02e24da7ed2da964c2fcdf426ec787779c696b385822c7dbea4df3e4a35921f1e912c\na04cbce0d2b2e87bbf038c798a12ec828423ca6aca08dc8d481cf6466e3c9c73d4d4a7fa47df9a7e2e15aae9e9f67208\n8f855cca2e440d248121c0469de1f94c2a71b8ee2682bbad3a78243a9e03da31d1925e6760dbc48a1957e040fae9abe8\nb642e5b17c1df4a4e101772d73851180b3a92e9e8b26c918050f51e6dd3592f102d20b0a1e96f0e25752c292f4c903ff\na92454c300781f8ae1766dbbb50a96192da7d48ef4cbdd72dd8cbb44c6eb5913c112cc38e9144615fdc03684deb99420\n8b74f7e6c2304f8e780df4649ef8221795dfe85fdbdaa477a1542d135b75c8be45bf89adbbb6f3ddf54ca40f02e733e9\n85cf66292cbb30cec5fd835ab10c9fcb3aea95e093aebf123e9a83c26f322d76ebc89c4e914524f6c5f6ee7d74fc917d\nae0bfe0cdc97c09542a7431820015f2d16067b30dca56288013876025e81daa8c519e5e347268e19aa1a85fa1dc28793\n921322fc6a47dc091afa0ad6df18ed14cde38e48c6e71550aa513918b056044983aee402de21051235eecf4ce8040fbe\n96c030381e97050a45a318d307dcb3c8377b79b4dd5daf6337cded114de26eb725c14171b9b8e1b3c08fe1f5ea6b49e0\n90c23b86b6111818c8baaf53a13eaee1c89203b50e7f9a994bf0edf851919b48edbac7ceef14ac9414cf70c486174a77\n8bf6c301240d2d1c8d84c71d33a6dfc6d9e8f1cfae66d4d0f7a256d98ae12b0bcebfa94a667735ee89f810bcd7170cff\na41a4ffbbea0e36874d65c009ee4c3feffff322f6fc0e30d26ee4dbc1f46040d05e25d9d0ecb378cef0d24a7c2c4b850\na8d4cdd423986bb392a0a92c12a8bd4da3437eec6ef6af34cf5310944899287452a2eb92eb5386086d5063381189d10e\na81dd26ec057c4032a4ed7ad54d926165273ed51d09a1267b2e477535cf6966835a257c209e4e92d165d74fa75695fa3\n8d7f708c3ee8449515d94fc26b547303b53d8dd55f177bc3b25d3da2768accd9bc8e9f09546090ebb7f15c66e6c9c723\n839ba65cffcd24cfffa7ab3b21faabe3c66d4c06324f07b2729c92f15cad34e474b0f0ddb16cd652870b26a756b731d3\n87f1a3968afec354d92d77e2726b702847c6afcabb8438634f9c6f7766de4c1504317dc4fa9a4a735acdbf985e119564\n91a8a7fd6542f3e0673f07f510d850864b34ac087eb7eef8845a1d14b2b1b651cbdc27fa4049bdbf3fea54221c5c8549\naef3cf5f5e3a2385ead115728d7059e622146c3457d266c612e778324b6e06fbfb8f98e076624d2f3ce1035d65389a07\n819915d6232e95ccd7693fdd78d00492299b1983bc8f96a08dcb50f9c0a813ed93ae53c0238345d5bea0beda2855a913\n8e9ba68ded0e94935131b392b28218315a185f63bf5e3c1a9a9dd470944509ca0ba8f6122265f8da851b5cc2abce68f1\nb28468e9b04ee9d69003399a3cf4457c9bf9d59f36ab6ceeb8e964672433d06b58beeea198fedc7edbaa1948577e9fa2\na633005e2c9f2fd94c8bce2dd5bb708fe946b25f1ec561ae65e54e15cdd88dc339f1a083e01f0d39610c8fe24151aaf0\n841d0031e22723f9328dd993805abd13e0c99b0f59435d2426246996b08d00ce73ab906f66c4eab423473b409e972ce0\n85758d1b084263992070ec8943f33073a2d9b86a8606672550c17545507a5b3c88d87382b41916a87ee96ff55a7aa535\n8581b06b0fc41466ef94a76a1d9fb8ae0edca6d018063acf6a8ca5f4b02d76021902feba58972415691b4bdbc33ae3b4\n83539597ff5e327357ee62bc6bf8c0bcaec2f227c55c7c385a4806f0d37fb461f1690bad5066b8a5370950af32fafbef\naee3557290d2dc10827e4791d00e0259006911f3f3fce4179ed3c514b779160613eca70f720bff7804752715a1266ffa\nb48d2f0c4e90fc307d5995464e3f611a9b0ef5fe426a289071f4168ed5cc4f8770c9332960c2ca5c8c427f40e6bb389f\n847af8973b4e300bb06be69b71b96183fd1a0b9d51b91701bef6fcfde465068f1eb2b1503b07afda380f18d69de5c9e1\na70a6a80ce407f07804c0051ac21dc24d794b387be94eb24e1db94b58a78e1bcfb48cd0006db8fc1f9bedaece7a44fbe\nb40e942b8fa5336910ff0098347df716bff9d1fa236a1950c16eeb966b3bc1a50b8f7b0980469d42e75ae13ced53cead\nb208fabaa742d7db3148515330eb7a3577487845abdb7bd9ed169d0e081db0a5816595c33d375e56aeac5b51e60e49d3\nb7c8194b30d3d6ef5ab66ec88ad7ebbc732a3b8a41731b153e6f63759a93f3f4a537eab9ad369705bd730184bdbbdc34\n9280096445fe7394d04aa1bc4620c8f9296e991cc4d6c131bd703cb1cc317510e6e5855ac763f4d958c5edfe7eebeed7\nabc2aa4616a521400af1a12440dc544e3c821313d0ab936c86af28468ef8bbe534837e364598396a81cf8d06274ed5a6\nb18ca8a3325adb0c8c18a666d4859535397a1c3fe08f95eebfac916a7a99bbd40b3c37b919e8a8ae91da38bc00fa56c0\n8a40c33109ecea2a8b3558565877082f79121a432c45ec2c5a5e0ec4d1c203a6788e6b69cb37f1fd5b8c9a661bc5476d\n88c47301dd30998e903c84e0b0f2c9af2e1ce6b9f187dab03528d44f834dc991e4c86d0c474a2c63468cf4020a1e24a0\n920c832853e6ab4c851eecfa9c11d3acc7da37c823be7aa1ab15e14dfd8beb5d0b91d62a30cec94763bd8e4594b66600\n98e1addbe2a6b8edc7f12ecb9be81c3250aeeca54a1c6a7225772ca66549827c15f3950d01b8eb44aecb56fe0fff901a\n8cfb0fa1068be0ec088402f5950c4679a2eb9218c729da67050b0d1b2d7079f3ddf4bf0f57d95fe2a8db04bc6bcdb20c\nb70f381aafe336b024120453813aeab70baac85b9c4c0f86918797b6aee206e6ed93244a49950f3d8ec9f81f4ac15808\na4c8edf4aa33b709a91e1062939512419711c1757084e46f8f4b7ed64f8e682f4e78b7135920c12f0eb0422fe9f87a6a\nb4817e85fd0752d7ebb662d3a51a03367a84bac74ebddfba0e5af5e636a979500f72b148052d333b3dedf9edd2b4031b\na87430169c6195f5d3e314ff2d1c2f050e766fd5d2de88f5207d72dba4a7745bb86d0baca6e9ae156582d0d89e5838c7\n991b00f8b104566b63a12af4826b61ce7aa40f4e5b8fff3085e7a99815bdb4471b6214da1e480214fac83f86a0b93cc5\nb39966e3076482079de0678477df98578377a094054960ee518ef99504d6851f8bcd3203e8da5e1d4f6f96776e1fe6eb\na448846d9dc2ab7a0995fa44b8527e27f6b3b74c6e03e95edb64e6baa4f1b866103f0addb97c84bef1d72487b2e21796\n894bec21a453ae84b592286e696c35bc30e820e9c2fd3e63dd4fbe629e07df16439c891056070faa490155f255bf7187\na9ec652a491b11f6a692064e955f3f3287e7d2764527e58938571469a1e29b5225b9415bd602a45074dfbfe9c131d6ca\nb39d37822e6cbe28244b5f42ce467c65a23765bd16eb6447c5b3e942278069793763483dafd8c4dd864f8917aad357fe\n88dba51133f2019cb266641c56101e3e5987d3b77647a2e608b5ff9113dfc5f85e2b7c365118723131fbc0c9ca833c9c\nb566579d904b54ecf798018efcb824dccbebfc6753a0fd2128ac3b4bd3b038c2284a7c782b5ca6f310eb7ea4d26a3f0a\na97a55c0a492e53c047e7d6f9d5f3e86fb96f3dddc68389c0561515343b66b4bc02a9c0d5722dff1e3445308240b27f7\na044028ab4bcb9e1a2b9b4ca4efbf04c5da9e4bf2fff0e8bd57aa1fc12a71e897999c25d9117413faf2f45395dee0f13\na78dc461decbeaeed8ebd0909369b491a5e764d6a5645a7dac61d3140d7dc0062526f777b0eb866bff27608429ebbdde\nb2c2a8991f94c39ca35fea59f01a92cb3393e0eccb2476dfbf57261d406a68bd34a6cff33ed80209991688c183609ef4\n84189eefb521aff730a4fd3fd5b10ddfd29f0d365664caef63bb015d07e689989e54c33c2141dd64427805d37a7e546e\n85ac80bd734a52235da288ff042dea9a62e085928954e8eacd2c751013f61904ed110e5b3afe1ab770a7e6485efb7b5e\n9183a560393dcb22d0d5063e71182020d0fbabb39e32493eeffeb808df084aa243eb397027f150b55a247d1ed0c8513e\n81c940944df7ecc58d3c43c34996852c3c7915ed185d7654627f7af62abae7e0048dd444a6c09961756455000bd96d09\naa8c34e164019743fd8284b84f06c3b449aae7996e892f419ee55d82ad548cb300fd651de329da0384243954c0ef6a60\n89a7b7bdfc7e300d06a14d463e573d6296d8e66197491900cc9ae49504c4809ff6e61b758579e9091c61085ba1237b83\n878d21809ba540f50bd11f4c4d9590fb6f3ab9de5692606e6e2ef4ed9d18520119e385be5e1f4b3f2e2b09c319f0e8fc\n8eb248390193189cf0355365e630b782cd15751e672dc478b39d75dc681234dcd9309df0d11f4610dbb249c1e6be7ef9\na1d7fb3aecb896df3a52d6bd0943838b13f1bd039c936d76d03de2044c371d48865694b6f532393b27fd10a4cf642061\na34bca58a24979be442238cbb5ece5bee51ae8c0794dd3efb3983d4db713bc6f28a96e976ac3bd9a551d3ed9ba6b3e22\n817c608fc8cacdd178665320b5a7587ca21df8bdd761833c3018b967575d25e3951cf3d498a63619a3cd2ad4406f5f28\n86c95707db0495689afd0c2e39e97f445f7ca0edffad5c8b4cacd1421f2f3cc55049dfd504f728f91534e20383955582\n99c3b0bb15942c301137765d4e19502f65806f3b126dc01a5b7820c87e8979bce6a37289a8f6a4c1e4637227ad5bf3bf\n8aa1518a80ea8b074505a9b3f96829f5d4afa55a30efe7b4de4e5dbf666897fdd2cf31728ca45921e21a78a80f0e0f10\n8d74f46361c79e15128ac399e958a91067ef4cec8983408775a87eca1eed5b7dcbf0ddf30e66f51780457413496c7f07\na41cde4a786b55387458a1db95171aca4fd146507b81c4da1e6d6e495527c3ec83fc42fad1dfe3d92744084a664fd431\n8c352852c906fae99413a84ad11701f93f292fbf7bd14738814f4c4ceab32db02feb5eb70bc73898b0bc724a39d5d017\na5993046e8f23b71ba87b7caa7ace2d9023fb48ce4c51838813174880d918e9b4d2b0dc21a2b9c6f612338c31a289df8\n83576d3324bf2d8afbfb6eaecdc5d767c8e22e7d25160414924f0645491df60541948a05e1f4202e612368e78675de8a\nb43749b8df4b15bc9a3697e0f1c518e6b04114171739ef1a0c9c65185d8ec18e40e6954d125cbc14ebc652cf41ad3109\nb4eebd5d80a7327a040cafb9ccdb12b2dfe1aa86e6bc6d3ac8a57fadfb95a5b1a7332c66318ff72ba459f525668af056\n9198be7f1d413c5029b0e1c617bcbc082d21abe2c60ec8ce9b54ca1a85d3dba637b72fda39dae0c0ae40d047eab9f55a\n8d96a0232832e24d45092653e781e7a9c9520766c3989e67bbe86b3a820c4bf621ea911e7cd5270a4bfea78b618411f6\n8d7160d0ea98161a2d14d46ef01dff72d566c330cd4fabd27654d300e1bc7644c68dc8eabf2a20a59bfe7ba276545f9b\nabb60fce29dec7ba37e3056e412e0ec3e05538a1fc0e2c68877378c867605966108bc5742585ab6a405ce0c962b285b6\n8fabffa3ed792f05e414f5839386f6449fd9f7b41a47595c5d71074bd1bb3784cc7a1a7e1ad6b041b455035957e5b2dc\n90ff017b4804c2d0533b72461436b10603ab13a55f86fd4ec11b06a70ef8166f958c110519ca1b4cc7beba440729fe2d\nb340cfd120f6a4623e3a74cf8c32bfd7cd61a280b59dfd17b15ca8fae4d82f64a6f15fbde4c02f424debc72b7db5fe67\n871311c9c7220c932e738d59f0ecc67a34356d1429fe570ca503d340c9996cb5ee2cd188fad0e3bd16e4c468ec1dbebd\na772470262186e7b94239ba921b29f2412c148d6f97c4412e96d21e55f3be73f992f1ad53c71008f0558ec3f84e2b5a7\nb2a897dcb7ffd6257f3f2947ec966f2077d57d5191a88840b1d4f67effebe8c436641be85524d0a21be734c63ab5965d\na044f6eacc48a4a061fa149500d96b48cbf14853469aa4d045faf3dca973be1bd4b4ce01646d83e2f24f7c486d03205d\n981af5dc2daa73f7fa9eae35a93d81eb6edba4a7f673b55d41f6ecd87a37685d31bb40ef4f1c469b3d72f2f18b925a17\n912d2597a07864de9020ac77083eff2f15ceb07600f15755aba61251e8ce3c905a758453b417f04d9c38db040954eb65\n9642b7f6f09394ba5e0805734ef6702c3eddf9eea187ba98c676d5bbaec0e360e3e51dc58433aaa1e2da6060c8659cb7\n8ab3836e0a8ac492d5e707d056310c4c8e0489ca85eb771bff35ba1d658360084e836a6f51bb990f9e3d2d9aeb18fbb5\n879e058e72b73bb1f4642c21ffdb90544b846868139c6511f299aafe59c2d0f0b944dffc7990491b7c4edcd6a9889250\nb9e60b737023f61479a4a8fd253ed0d2a944ea6ba0439bbc0a0d3abf09b0ad1f18d75555e4a50405470ae4990626f390\nb9c2535d362796dcd673640a9fa2ebdaec274e6f8b850b023153b0a7a30fffc87f96e0b72696f647ebe7ab63099a6963\n94aeff145386a087b0e91e68a84a5ede01f978f9dd9fe7bebca78941938469495dc30a96bba9508c0d017873aeea9610\n98b179f8a3d9f0d0a983c30682dd425a2ddc7803be59bd626c623c8951a5179117d1d2a68254c95c9952989877d0ee55\n889ecf5f0ee56938273f74eb3e9ecfb5617f04fb58e83fe4c0e4aef51615cf345bc56f3f61b17f6eed3249d4afd54451\na0f2b2c39bcea4b50883e2587d16559e246248a66ecb4a4b7d9ab3b51fb39fe98d83765e087eee37a0f86b0ba4144c02\nb2a61e247ed595e8a3830f7973b07079cbda510f28ad8c78c220b26cb6acde4fbb5ee90c14a665f329168ee951b08cf0\n95bd0fcfb42f0d6d8a8e73d7458498a85bcddd2fb132fd7989265648d82ac2707d6d203fac045504977af4f0a2aca4b7\n843e5a537c298666e6cf50fcc044f13506499ef83c802e719ff2c90e85003c132024e04711be7234c04d4b0125512d5d\na46d1797c5959dcd3a5cfc857488f4d96f74277c3d13b98b133620192f79944abcb3a361d939a100187f1b0856eae875\na1c7786736d6707a48515c38660615fcec67eb8a2598f46657855215f804fd72ab122d17f94fcffad8893f3be658dca7\nb23dc9e610abc7d8bd21d147e22509a0fa49db5be6ea7057b51aae38e31654b3aa044df05b94b718153361371ba2f622\nb00cc8f257d659c22d30e6d641f79166b1e752ea8606f558e4cad6fc01532e8319ea4ee12265ba4140ac45aa4613c004\nac7019af65221b0cc736287b32d7f1a3561405715ba9a6a122342e04e51637ba911c41573de53e4781f2230fdcb2475f\n81a630bc41b3da8b3eb4bf56cba10cd9f93153c3667f009dc332287baeb707d505fb537e6233c8e53d299ec0f013290c\na6b7aea5c545bb76df0f230548539db92bc26642572cb7dd3d5a30edca2b4c386f44fc8466f056b42de2a452b81aff5b\n8271624ff736b7b238e43943c81de80a1612207d32036d820c11fc830c737972ccc9c60d3c2359922b06652311e3c994\n8a684106458cb6f4db478170b9ad595d4b54c18bf63b9058f095a2fa1b928c15101472c70c648873d5887880059ed402\na5cc3c35228122f410184e4326cf61a37637206e589fcd245cb5d0cec91031f8f7586b80503070840fdfd8ce75d3c88b\n9443fc631aed8866a7ed220890911057a1f56b0afe0ba15f0a0e295ab97f604b134b1ed9a4245e46ee5f9a93aa74f731\n984b6f7d79835dffde9558c6bb912d992ca1180a2361757bdba4a7b69dc74b056e303adc69fe67414495dd9c2dd91e64\nb15a5c8cba5de080224c274d31c68ed72d2a7126d347796569aef0c4e97ed084afe3da4d4b590b9dda1a07f0c2ff3dfb\n991708fe9650a1f9a4e43938b91d45dc68c230e05ee999c95dbff3bf79b1c1b2bb0e7977de454237c355a73b8438b1d9\nb4f7edc7468b176a4a7c0273700c444fa95c726af6697028bed4f77eee887e3400f9c42ee15b782c0ca861c4c3b8c98a\n8c60dcc16c51087eb477c13e837031d6c6a3dc2b8bf8cb43c23f48006bc7173151807e866ead2234b460c2de93b31956\n83ad63e9c910d1fc44bc114accfb0d4d333b7ebe032f73f62d25d3e172c029d5e34a1c9d547273bf6c0fead5c8801007\n85de73213cc236f00777560756bdbf2b16841ba4b55902cf2cad9742ecaf5d28209b012ceb41f337456dfeca93010cd7\na7561f8827ccd75b6686ba5398bb8fc3083351c55a589b18984e186820af7e275af04bcd4c28e1dc11be1e8617a0610b\n88c0a4febd4068850557f497ea888035c7fc9f404f6cc7794e7cc8722f048ad2f249e7dc62743e7a339eb7473ad3b0cd\n932b22b1d3e6d5a6409c34980d176feb85ada1bf94332ef5c9fc4d42b907dabea608ceef9b5595ef3feee195151f18d8\na2867bb3f5ab88fbdae3a16c9143ab8a8f4f476a2643c505bb9f37e5b1fd34d216cab2204c9a017a5a67b7ad2dda10e8\nb573d5f38e4e9e8a3a6fd82f0880dc049efa492a946d00283019bf1d5e5516464cf87039e80aef667cb86fdea5075904\nb948f1b5ab755f3f5f36af27d94f503b070696d793b1240c1bdfd2e8e56890d69e6904688b5f8ff5a4bdf5a6abfe195f\n917eae95ebc4109a2e99ddd8fec7881d2f7aaa0e25fda44dec7ce37458c2ee832f1829db7d2dcfa4ca0f06381c7fe91d\n95751d17ed00a3030bce909333799bb7f4ab641acf585807f355b51d6976dceee410798026a1a004ef4dcdff7ec0f5b8\nb9b7bd266f449a79bbfe075e429613e76c5a42ac61f01c8f0bbbd34669650682efe01ff9dbbc400a1e995616af6aa278\nac1722d097ce9cd7617161f8ec8c23d68f1fb1c9ca533e2a8b4f78516c2fd8fb38f23f834e2b9a03bb06a9d655693ca9\na7ad9e96ffd98db2ecdb6340c5d592614f3c159abfd832fe27ee9293519d213a578e6246aae51672ee353e3296858873\n989b8814d5de7937c4acafd000eec2b4cd58ba395d7b25f98cafd021e8efa37029b29ad8303a1f6867923f5852a220eb\na5bfe6282c771bc9e453e964042d44eff4098decacb89aecd3be662ea5b74506e1357ab26f3527110ba377711f3c9f41\n8900a7470b656639721d2abbb7b06af0ac4222ab85a1976386e2a62eb4b88bfb5b72cf7921ddb3cf3a395d7eeb192a2e\n95a71b55cd1f35a438cf5e75f8ff11c5ec6a2ebf2e4dba172f50bfad7d6d5dca5de1b1afc541662c81c858f7604c1163\n82b5d62fea8db8d85c5bc3a76d68dedd25794cf14d4a7bc368938ffca9e09f7e598fdad2a5aac614e0e52f8112ae62b9\n997173f07c729202afcde3028fa7f52cefc90fda2d0c8ac2b58154a5073140683e54c49ed1f254481070d119ce0ce02a\naeffb91ccc7a72bbd6ffe0f9b99c9e66e67d59cec2e02440465e9636a613ab3017278cfa72ea8bc4aba9a8dc728cb367\n952743b06e8645894aeb6440fc7a5f62dd3acf96dab70a51e20176762c9751ea5f2ba0b9497ccf0114dc4892dc606031\n874c63baeddc56fbbca2ff6031f8634b745f6e34ea6791d7c439201aee8f08ef5ee75f7778700a647f3b21068513fce6\n85128fec9c750c1071edfb15586435cc2f317e3e9a175bb8a9697bcda1eb9375478cf25d01e7fed113483b28f625122d\n85522c9576fd9763e32af8495ae3928ed7116fb70d4378448926bc9790e8a8d08f98cf47648d7da1b6e40d6a210c7924\n97d0f37a13cfb723b848099ca1c14d83e9aaf2f7aeb71829180e664b7968632a08f6a85f557d74b55afe6242f2a36e7c\nabaa472d6ad61a5fccd1a57c01aa1bc081253f95abbcba7f73923f1f11c4e79b904263890eeb66926de3e2652f5d1c70\nb3c04945ba727a141e5e8aec2bf9aa3772b64d8fd0e2a2b07f3a91106a95cbcb249adcd074cbe498caf76fffac20d4ef\n82c46781a3d730d9931bcabd7434a9171372dde57171b6180e5516d4e68db8b23495c8ac3ab96994c17ddb1cf249b9fb\na202d8b65613c42d01738ccd68ed8c2dbc021631f602d53f751966e04182743ebc8e0747d600b8a8676b1da9ae7f11ab\nae73e7256e9459db04667a899e0d3ea5255211fb486d084e6550b6dd64ca44af6c6b2d59d7aa152de9f96ce9b58d940d\nb67d87b176a9722945ec7593777ee461809861c6cfd1b945dde9ee4ff009ca4f19cf88f4bbb5c80c9cbab2fe25b23ac8\n8f0b7a317a076758b0dac79959ee4a06c08b07d0f10538a4b53d3da2eda16e2af26922feb32c090330dc4d969cf69bd3\n90b36bf56adbd8c4b6cb32febc3a8d5f714370c2ac3305c10fa6d168dffb2a026804517215f9a2d4ec8310cdb6bb459b\naa80c19b0682ead69934bf18cf476291a0beddd8ef4ed75975d0a472e2ab5c70f119722a8574ae4973aceb733d312e57\na3fc9abb12574e5c28dcb51750b4339b794b8e558675eef7d26126edf1de920c35e992333bcbffcbf6a5f5c0d383ce62\na1573ff23ab972acdcd08818853b111fc757fdd35aa070186d3e11e56b172fb49d840bf297ac0dd222e072fc09f26a81\n98306f2be4caa92c2b4392212d0cbf430b409b19ff7d5b899986613bd0e762c909fc01999aa94be3bd529d67f0113d7f\n8c1fc42482a0819074241746d17dc89c0304a2acdae8ed91b5009e9e3e70ff725ba063b4a3e68fdce05b74f5180c545e\na6c6113ebf72d8cf3163b2b8d7f3fa24303b13f55752522c660a98cd834d85d8c79214d900fa649499365e2e7641f77a\nab95eea424f8a2cfd9fb1c78bb724e5b1d71a0d0d1e4217c5d0f98b0d8bbd3f8400a2002abc0a0e4576d1f93f46fefad\n823c5a4fd8cf4a75fdc71d5f2dd511b6c0f189b82affeacd2b7cfcad8ad1a5551227dcc9bfdb2e34b2097eaa00efbb51\nb97314dfff36d80c46b53d87a61b0e124dc94018a0bb680c32765b9a2d457f833a7c42bbc90b3b1520c33a182580398d\nb17566ee3dcc6bb3b004afe4c0136dfe7dd27df9045ae896dca49fb36987501ae069eb745af81ba3fc19ff037e7b1406\nb0bdc0f55cfd98d331e3a0c4fbb776a131936c3c47c6bffdc3aaf7d8c9fa6803fbc122c2fefbb532e634228687d52174\naa5d9e60cc9f0598559c28bb9bdd52aa46605ab4ffe3d192ba982398e72cec9a2a44c0d0d938ce69935693cabc0887ea\n802b6459d2354fa1d56c592ac1346c428dadea6b6c0a87bf7d309bab55c94e1cf31dd98a7a86bd92a840dd51f218b91b\na526914efdc190381bf1a73dd33f392ecf01350b9d3f4ae96b1b1c3d1d064721c7d6eec5788162c933245a3943f5ee51\nb3b8fcf637d8d6628620a1a99dbe619eabb3e5c7ce930d6efd2197e261bf394b74d4e5c26b96c4b8009c7e523ccfd082\n8f7510c732502a93e095aba744535f3928f893f188adc5b16008385fb9e80f695d0435bfc5b91cdad4537e87e9d2551c\n97b90beaa56aa936c3ca45698f79273a68dd3ccd0076eab48d2a4db01782665e63f33c25751c1f2e070f4d1a8525bf96\nb9fb798324b1d1283fdc3e48288e3861a5449b2ab5e884b34ebb8f740225324af86e4711da6b5cc8361c1db15466602f\nb6d52b53cea98f1d1d4c9a759c25bf9d8a50b604b144e4912acbdbdc32aab8b9dbb10d64a29aa33a4f502121a6fb481c\n9174ffff0f2930fc228f0e539f5cfd82c9368d26b074467f39c07a774367ff6cccb5039ac63f107677d77706cd431680\na33b6250d4ac9e66ec51c063d1a6a31f253eb29bbaed12a0d67e2eccfffb0f3a52750fbf52a1c2aaba8c7692346426e7\na97025fd5cbcebe8ef865afc39cd3ea707b89d4e765ec817fd021d6438e02fa51e3544b1fd45470c58007a08efac6edd\nb32a78480edd9ff6ba2f1eec4088db5d6ceb2d62d7e59e904ecaef7bb4a2e983a4588e51692b3be76e6ffbc0b5f911a5\nb5ab590ef0bb77191f00495b33d11c53c65a819f7d0c1f9dc4a2caa147a69c77a4fff7366a602d743ee1f395ce934c1e\nb3fb0842f9441fb1d0ee0293b6efbc70a8f58d12d6f769b12872db726b19e16f0f65efbc891cf27a28a248b0ef9c7e75\n9372ad12856fefb928ccb0d34e198df99e2f8973b07e9d417a3134d5f69e12e79ff572c4e03ccd65415d70639bc7c73e\naa8d6e83d09ce216bfe2009a6b07d0110d98cf305364d5529c170a23e693aabb768b2016befb5ada8dabdd92b4d012bb\na954a75791eeb0ce41c85200c3763a508ed8214b5945a42c79bfdcfb1ec4f86ad1dd7b2862474a368d4ac31911a2b718\n8e2081cfd1d062fe3ab4dab01f68062bac802795545fede9a188f6c9f802cb5f884e60dbe866710baadbf55dc77c11a4\na2f06003b9713e7dd5929501ed485436b49d43de80ea5b15170763fd6346badf8da6de8261828913ee0dacd8ff23c0e1\n98eecc34b838e6ffd1931ca65eec27bcdb2fdcb61f33e7e5673a93028c5865e0d1bf6d3bec040c5e96f9bd08089a53a4\n88cc16019741b341060b95498747db4377100d2a5bf0a5f516f7dec71b62bcb6e779de2c269c946d39040e03b3ae12b7\nad1135ccbc3019d5b2faf59a688eef2500697642be8cfbdf211a1ab59abcc1f24483e50d653b55ff1834675ac7b4978f\na946f05ed9972f71dfde0020bbb086020fa35b482cce8a4cc36dd94355b2d10497d7f2580541bb3e81b71ac8bba3c49f\na83aeed488f9a19d8cfd743aa9aa1982ab3723560b1cd337fc2f91ad82f07afa412b3993afb845f68d47e91ba4869840\n95eebe006bfc316810cb71da919e5d62c2cebb4ac99d8e8ef67be420302320465f8b69873470982de13a7c2e23516be9\na55f8961295a11e91d1e5deadc0c06c15dacbfc67f04ccba1d069cba89d72aa3b3d64045579c3ea8991b150ac29366ae\nb321991d12f6ac07a5de3c492841d1a27b0d3446082fbce93e7e1f9e8d8fe3b45d41253556261c21b70f5e189e1a7a6f\na0b0822f15f652ce7962a4f130104b97bf9529797c13d6bd8e24701c213cc37f18157bd07f3d0f3eae6b7cd1cb40401f\n96e2fa4da378aa782cc2d5e6e465fc9e49b5c805ed01d560e9b98abb5c0de8b74a2e7bec3aa5e2887d25cccb12c66f0c\n97e4ab610d414f9210ed6f35300285eb3ccff5b0b6a95ed33425100d7725e159708ea78704497624ca0a2dcabce3a2f9\n960a375b17bdb325761e01e88a3ea57026b2393e1d887b34b8fa5d2532928079ce88dc9fd06a728b26d2bb41b12b9032\n8328a1647398e832aadc05bd717487a2b6fcdaa0d4850d2c4da230c6a2ed44c3e78ec4837b6094f3813f1ee99414713f\naa283834ebd18e6c99229ce4b401eda83f01d904f250fedd4e24f1006f8fa0712a6a89a7296a9bf2ce8de30e28d1408e\nb29e097f2caadae3e0f0ae3473c072b0cd0206cf6d2e9b22c1a5ad3e07d433e32bd09ed1f4e4276a2da4268633357b7f\n9539c5cbba14538b2fe077ecf67694ef240da5249950baaabea0340718b882a966f66d97f08556b08a4320ceb2cc2629\nb4529f25e9b42ae8cf8338d2eface6ba5cd4b4d8da73af502d081388135c654c0b3afb3aa779ffc80b8c4c8f4425dd2b\n95be0739c4330619fbe7ee2249c133c91d6c07eab846c18c5d6c85fc21ac5528c5d56dcb0145af68ed0c6a79f68f2ccd\nac0c83ea802227bfc23814a24655c9ff13f729619bcffdb487ccbbf029b8eaee709f8bddb98232ef33cd70e30e45ca47\nb503becb90acc93b1901e939059f93e671900ca52c6f64ae701d11ac891d3a050b505d89324ce267bc43ab8275da6ffe\n98e3811b55b1bacb70aa409100abb1b870f67e6d059475d9f278c751b6e1e2e2d6f2e586c81a9fb6597fda06e7923274\nb0b0f61a44053fa6c715dbb0731e35d48dba257d134f851ee1b81fd49a5c51a90ebf5459ec6e489fce25da4f184fbdb1\nb1d2117fe811720bb997c7c93fe9e4260dc50fca8881b245b5e34f724aaf37ed970cdad4e8fcb68e05ac8cf55a274a53\na10f502051968f14b02895393271776dee7a06db9de14effa0b3471825ba94c3f805302bdddac4d397d08456f620999d\na3dbad2ef060ae0bb7b02eaa4a13594f3f900450faa1854fc09620b01ac94ab896321dfb1157cf2374c27e5718e8026a\nb550fdec503195ecb9e079dcdf0cad559d64d3c30818ef369b4907e813e689da316a74ad2422e391b4a8c2a2bef25fc0\na25ba865e2ac8f28186cea497294c8649a201732ecb4620c4e77b8e887403119910423df061117e5f03fc5ba39042db1\nb3f88174e03fdb443dd6addd01303cf88a4369352520187c739fc5ae6b22fa99629c63c985b4383219dab6acc5f6f532\n97a7503248e31e81b10eb621ba8f5210c537ad11b539c96dfb7cf72b846c7fe81bd7532c5136095652a9618000b7f8d3\na8bcdc1ce5aa8bfa683a2fc65c1e79de8ff5446695dcb8620f7350c26d2972a23da22889f9e2b1cacb3f688c6a2953dc\n8458c111df2a37f5dd91a9bee6c6f4b79f4f161c93fe78075b24a35f9817da8dde71763218d627917a9f1f0c4709c1ed\nac5f061a0541152b876cbc10640f26f1cc923c9d4ae1b6621e4bb3bf2cec59bbf87363a4eb72fb0e5b6d4e1c269b52d5\na9a25ca87006e8a9203cbb78a93f50a36694aa4aad468b8d80d3feff9194455ca559fcc63838128a0ab75ad78c07c13a\na450b85f5dfffa8b34dfd8bc985f921318efacf8857cf7948f93884ba09fb831482ee90a44224b1a41e859e19b74962f\n8ed91e7f92f5c6d7a71708b6132f157ac226ecaf8662af7d7468a4fa25627302efe31e4620ad28719318923e3a59bf82\nab524165fd4c71b1fd395467a14272bd2b568592deafa039d8492e9ef36c6d3f96927c95c72d410a768dc0b6d1fbbc9b\nb662144505aa8432c75ffb8d10318526b6d5777ac7af9ebfad87d9b0866c364f7905a6352743bd8fd79ffd9d5dd4f3e6\na48f1677550a5cd40663bb3ba8f84caaf8454f332d0ceb1d94dbea52d0412fe69c94997f7749929712fd3995298572f7\n8391cd6e2f6b0c242de1117a612be99776c3dc95cb800b187685ea5bf7e2722275eddb79fd7dfc8be8e389c4524cdf70\n875d3acb9af47833b72900bc0a2448999d638f153c5e97e8a14ec02d0c76f6264353a7e275e1f1a5855daced523d243b\n91f1823657d30b59b2f627880a9a9cb530f5aca28a9fd217fe6f2f5133690dfe7ad5a897872e400512db2e788b3f7628\nad3564332aa56cea84123fc7ca79ea70bb4fef2009fa131cb44e4b15e8613bd11ca1d83b9d9bf456e4b7fee9f2e8b017\n8c530b84001936d5ab366c84c0b105241a26d1fb163669f17c8f2e94776895c2870edf3e1bc8ccd04d5e65531471f695\n932d01fa174fdb0c366f1230cffde2571cc47485f37f23ba5a1825532190cc3b722aeb1f15aed62cf83ccae9403ba713\n88b28c20585aca50d10752e84b901b5c2d58efef5131479fbbe53de7bce2029e1423a494c0298e1497669bd55be97a5d\nb914148ca717721144ebb3d3bf3fcea2cd44c30c5f7051b89d8001502f3856fef30ec167174d5b76265b55d70f8716b5\n81d0173821c6ddd2a068d70766d9103d1ee961c475156e0cbd67d54e668a796310474ef698c7ab55abe6f2cf76c14679\n8f28e8d78e2fe7fa66340c53718e0db4b84823c8cfb159c76eac032a62fb53da0a5d7e24ca656cf9d2a890cb2a216542\n8a26360335c73d1ab51cec3166c3cf23b9ea51e44a0ad631b0b0329ef55aaae555420348a544e18d5760969281759b61\n94f326a32ed287545b0515be9e08149eb0a565025074796d72387cc3a237e87979776410d78339e23ef3172ca43b2544\na785d2961a2fa5e70bffa137858a92c48fe749fee91b02599a252b0cd50d311991a08efd7fa5e96b78d07e6e66ffe746\n94af9030b5ac792dd1ce517eaadcec1482206848bea4e09e55cc7f40fd64d4c2b3e9197027c5636b70d6122c51d2235d\n9722869f7d1a3992850fe7be405ec93aa17dc4d35e9e257d2e469f46d2c5a59dbd504056c85ab83d541ad8c13e8bcd54\nb13c4088b61a06e2c03ac9813a75ff1f68ffdfee9df6a8f65095179a475e29cc49119cad2ce05862c3b1ac217f3aace9\n8c64d51774753623666b10ca1b0fe63ae42f82ed6aa26b81dc1d48c86937c5772eb1402624c52a154b86031854e1fb9f\nb47e4df18002b7dac3fee945bf9c0503159e1b8aafcce2138818e140753011b6d09ef1b20894e08ba3006b093559061b\n93cb5970076522c5a0483693f6a35ffd4ea2aa7aaf3730c4eccd6af6d1bebfc1122fc4c67d53898ae13eb6db647be7e2\na68873ef80986795ea5ed1a597d1cd99ed978ec25e0abb57fdcc96e89ef0f50aeb779ff46e3dce21dc83ada3157a8498\n8cab67f50949cc8eee6710e27358aea373aae3c92849f8f0b5531c080a6300cdf2c2094fe6fecfef6148de0d28446919\n993e932bcb616dbaa7ad18a4439e0565211d31071ef1b85a0627db74a05d978c60d507695eaeea5c7bd9868a21d06923\nacdadff26e3132d9478a818ef770e9fa0d2b56c6f5f48bd3bd674436ccce9bdfc34db884a73a30c04c5f5e9764cb2218\na0d3e64c9c71f84c0eef9d7a9cb4fa184224b969db5514d678e93e00f98b41595588ca802643ea225512a4a272f5f534\n91c9140c9e1ba6e330cb08f6b2ce4809cd0d5a0f0516f70032bf30e912b0ed684d07b413b326ab531ee7e5b4668c799b\n87bc2ee7a0c21ba8334cd098e35cb703f9af57f35e091b8151b9b63c3a5b0f89bd7701dbd44f644ea475901fa6d9ef08\n9325ccbf64bf5d71b303e31ee85d486298f9802c5e55b2c3d75427097bf8f60fa2ab4fcaffa9b60bf922c3e24fbd4b19\n95d0506e898318f3dc8d28d16dfd9f0038b54798838b3c9be2a2ae3c2bf204eb496166353fc042220b0bd4f6673b9285\n811de529416331fe9c416726d45df9434c29dcd7e949045eb15740f47e97dde8f31489242200e19922cac2a8b7c6fd1f\nade632d04a4c8bbab6ca7df370b2213cb9225023e7973f0e29f4f5e52e8aeaabc65171306bbdd12a67b195dfbb96d48f\n88b7f029e079b6ae956042c0ea75d53088c5d0efd750dd018adaeacf46be21bf990897c58578c491f41afd3978d08073\n91f477802de507ffd2be3f4319903119225b277ad24f74eb50f28b66c14d32fae53c7edb8c7590704741af7f7f3e3654\n809838b32bb4f4d0237e98108320d4b079ee16ed80c567e7548bd37e4d7915b1192880f4812ac0e00476d246aec1dbc8\n84183b5fc4a7997a8ae5afedb4d21dce69c480d5966b5cbdafd6dd10d29a9a6377f3b90ce44da0eb8b176ac3af0253bb\n8508abbf6d3739a16b9165caf0f95afb3b3ac1b8c38d6d374cf0c91296e2c1809a99772492b539cda184510bce8a0271\n8722054e59bab2062e6419a6e45fc803af77fde912ef2cd23055ad0484963de65a816a2debe1693d93c18218d2b8e81a\n8e895f80e485a7c4f56827bf53d34b956281cdc74856c21eb3b51f6288c01cc3d08565a11cc6f3e2604775885490e8c5\nafc92714771b7aa6e60f3aee12efd9c2595e9659797452f0c1e99519f67c8bc3ac567119c1ddfe82a3e961ee9defea9a\n818ff0fd9cefd32db87b259e5fa32967201016fc02ef44116cdca3c63ce5e637756f60477a408709928444a8ad69c471\n8251e29af4c61ae806fc5d032347fb332a94d472038149225298389495139ce5678fae739d02dfe53a231598a992e728\na0ea39574b26643f6f1f48f99f276a8a64b5481989cfb2936f9432a3f8ef5075abfe5c067dc5512143ce8bf933984097\naf67a73911b372bf04e57e21f289fc6c3dfac366c6a01409b6e76fea4769bdb07a6940e52e8d7d3078f235c6d2f632c6\nb5291484ef336024dd2b9b4cf4d3a6b751133a40656d0a0825bcc6d41c21b1c79cb50b0e8f4693f90c29c8f4358641f9\n8bc0d9754d70f2cb9c63f991902165a87c6535a763d5eece43143b5064ae0bcdce7c7a8f398f2c1c29167b2d5a3e6867\n8d7faff53579ec8f6c92f661c399614cc35276971752ce0623270f88be937c414eddcb0997e14724a783905a026c8883\n9310b5f6e675fdf60796f814dbaa5a6e7e9029a61c395761e330d9348a7efab992e4e115c8be3a43d08e90d21290c892\nb5eb4f3eb646038ad2a020f0a42202532d4932e766da82b2c1002bf9c9c2e5336b54c8c0ffcc0e02d19dde2e6a35b6cc\n91dabfd30a66710f1f37a891136c9be1e23af4abf8cb751f512a40c022a35f8e0a4fb05b17ec36d4208de02d56f0d53a\nb3ded14e82d62ac7a5a036122a62f00ff8308498f3feae57d861babaff5a6628d43f0a0c5fc903f10936bcf4e2758ceb\na88e8348fed2b26acca6784d19ef27c75963450d99651d11a950ea81d4b93acd2c43e0ecce100eaf7e78508263d5baf3\nb1f5bbf7c4756877b87bb42163ac570e08c6667c4528bf68b5976680e19beeff7c5effd17009b0718797077e2955457a\nad2e7b516243f915d4d1415326e98b1a7390ae88897d0b03b66c2d9bd8c3fba283d7e8fe44ed3333296a736454cef6d8\n8f82eae096d5b11f995de6724a9af895f5e1c58d593845ad16ce8fcae8507e0d8e2b2348a0f50a1f66a17fd6fac51a5c\n890e4404d0657c6c1ee14e1aac132ecf7a568bb3e04137b85ac0f84f1d333bd94993e8750f88eee033a33fb00f85dcc7\n82ac7d3385e035115f1d39a99fc73e5919de44f5e6424579776d118d711c8120b8e5916372c6f27bed4cc64cac170b6c\n85ee16d8901c272cfbbe966e724b7a891c1bd5e68efd5d863043ad8520fc409080af61fd726adc680b3f1186fe0ac8b8\n86dc564c9b545567483b43a38f24c41c6551a49cabeebb58ce86404662a12dbfafd0778d30d26e1c93ce222e547e3898\na29f5b4522db26d88f5f95f18d459f8feefab02e380c2edb65aa0617a82a3c1a89474727a951cef5f15050bcf7b380fb\na1ce039c8f6cac53352899edb0e3a72c76da143564ad1a44858bd7ee88552e2fe6858d1593bbd74aeee5a6f8034b9b9d\n97f10d77983f088286bd7ef3e7fdd8fa275a56bec19919adf33cf939a90c8f2967d2b1b6fc51195cb45ad561202a3ed7\na25e2772e8c911aaf8712bdac1dd40ee061c84d3d224c466cfaae8e5c99604053f940cde259bd1c3b8b69595781dbfec\nb31bb95a0388595149409c48781174c340960d59032ab2b47689911d03c68f77a2273576fbe0c2bf4553e330656058c7\nb8b2e9287ad803fb185a13f0d7456b397d4e3c8ad5078f57f49e8beb2e85f661356a3392dbd7bcf6a900baa5582b86a1\na3d0893923455eb6e96cc414341cac33d2dbc88fba821ac672708cce131761d85a0e08286663a32828244febfcae6451\n82310cb42f647d99a136014a9f881eb0b9791efd2e01fc1841907ad3fc8a9654d3d1dab6689c3607214b4dc2aca01cee\n874022d99c16f60c22de1b094532a0bc6d4de700ad01a31798fac1d5088b9a42ad02bef8a7339af7ed9c0d4f16b186ee\n94981369e120265aed40910eebc37eded481e90f4596b8d57c3bec790ab7f929784bd33ddd05b7870aad6c02e869603b\na4f1f50e1e2a73f07095e0dd31cb45154f24968dae967e38962341c1241bcd473102fff1ff668b20c6547e9732d11701\nae2328f3b0ad79fcda807e69a1b5278145225083f150f67511dafc97e079f860c3392675f1752ae7e864c056e592205b\n875d8c971e593ca79552c43d55c8c73b17cd20c81ff2c2fed1eb19b1b91e4a3a83d32df150dbfd5db1092d0aebde1e1f\nadd2e80aa46aae95da73a11f130f4bda339db028e24c9b11e5316e75ba5e63bc991d2a1da172c7c8e8fee038baae3433\nb46dbe1cb3424002aa7de51e82f600852248e251465c440695d52538d3f36828ff46c90ed77fc1d11534fe3c487df8ef\na5e5045d28b4e83d0055863c30c056628c58d4657e6176fd0536f5933f723d60e851bb726d5bf3c546b8ce4ac4a57ef8\n91fec01e86dd1537e498fff7536ea3ca012058b145f29d9ada49370cd7b7193ac380e116989515df1b94b74a55c45df3\na7428176d6918cd916a310bdc75483c72de660df48cac4e6e7478eef03205f1827ea55afc0df5d5fa7567d14bbea7fc9\n851d89bef45d9761fe5fdb62972209335193610015e16a675149519f9911373bac0919add226ef118d9f3669cfdf4734\nb74acf5c149d0042021cb2422ea022be4c4f72a77855f42393e71ffd12ebb3eec16bdf16f812159b67b79a9706e7156d\n99f35dce64ec99aa595e7894b55ce7b5a435851b396e79036ffb249c28206087db4c85379df666c4d95857db02e21ff9\nb6b9a384f70db9e298415b8ab394ee625dafff04be2886476e59df8d052ca832d11ac68a9b93fba7ab055b7bc36948a4\n898ee4aefa923ffec9e79f2219c7389663eb11eb5b49014e04ed4a336399f6ea1691051d86991f4c46ca65bcd4fdf359\nb0f948217b0d65df7599a0ba4654a5e43c84db477936276e6f11c8981efc6eaf14c90d3650107ed4c09af4cc8ec11137\naa6286e27ac54f73e63dbf6f41865dd94d24bc0cf732262fcaff67319d162bb43af909f6f8ee27b1971939cfbba08141\n8bca7cdf730cf56c7b2c8a2c4879d61361a6e1dba5a3681a1a16c17a56e168ace0e99cf0d15826a1f5e67e6b8a8a049a\na746d876e8b1ce225fcafca603b099b36504846961526589af977a88c60d31ba2cc56e66a3dec8a77b3f3531bf7524c9\na11e2e1927e6704cdb8874c75e4f1842cef84d7d43d7a38e339e61dc8ba90e61bbb20dd3c12e0b11d2471d58eed245be\na36395e22bc1d1ba8b0459a235203177737397da5643ce54ded3459d0869ff6d8d89f50c73cb62394bf66a959cde9b90\n8b49f12ba2fdf9aca7e5f81d45c07d47f9302a2655610e7634d1e4bd16048381a45ef2c95a8dd5b0715e4b7cf42273af\n91cffa2a17e64eb7f76bccbe4e87280ee1dd244e04a3c9eac12e15d2d04845d876eb24fe2ec6d6d266cce9efb281077f\na6b8afabf65f2dee01788114e33a2f3ce25376fb47a50b74da7c3c25ff1fdc8aa9f41307534abbf48acb6f7466068f69\n8d13db896ccfea403bd6441191995c1a65365cab7d0b97fbe9526da3f45a877bd1f4ef2edef160e8a56838cd1586330e\n98c717de9e01bef8842c162a5e757fe8552d53269c84862f4d451e7c656ae6f2ae473767b04290b134773f63be6fdb9d\n8c2036ace1920bd13cf018e82848c49eb511fad65fd0ff51f4e4b50cf3bfc294afb63cba682c16f52fb595a98fa84970\na3520fdff05dbad9e12551b0896922e375f9e5589368bcb2cc303bde252743b74460cb5caf99629325d3620f13adc796\n8d4f83a5bfec05caf5910e0ce538ee9816ee18d0bd44c1d0da2a87715a23cd2733ad4d47552c6dc0eb397687d611dd19\na7b39a0a6a02823452d376533f39d35029867b3c9a6ad6bca181f18c54132d675613a700f9db2440fb1b4fa13c8bf18a\n80bcb114b2544b80f404a200fc36860ed5e1ad31fe551acd4661d09730c452831751baa9b19d7d311600d267086a70bc\n90dcce03c6f88fc2b08f2b42771eedde90cc5330fe0336e46c1a7d1b5a6c1641e5fcc4e7b3d5db00bd8afca9ec66ed81\naec15f40805065c98e2965b1ae12a6c9020cfdb094c2d0549acfc7ea2401a5fb48d3ea7d41133cf37c4e096e7ff53eb9\n80e129b735dba49fa627a615d6c273119acec8e219b2f2c4373a332b5f98d66cbbdd688dfbe72a8f8bfefaccc02c50c1\na9b596da3bdfe23e6799ece5f7975bf7a1979a75f4f546deeaf8b34dfe3e0d623217cb4cf4ccd504cfa3625b88cd53f1\nabcbbb70b16f6e517c0ab4363ab76b46e4ff58576b5f8340e5c0e8cc0e02621b6e23d742d73b015822a238b17cfd7665\na046937cc6ea6a2e1adae543353a9fe929c1ae4ad655be1cc051378482cf88b041e28b1e9a577e6ccff2d3570f55e200\n831279437282f315e65a60184ef158f0a3dddc15a648dc552bdc88b3e6fe8288d3cfe9f0031846d81350f5e7874b4b33\n993d7916fa213c6d66e7c4cafafc1eaec9a2a86981f91c31eb8a69c5df076c789cbf498a24c84e0ee77af95b42145026\n823907a3b6719f8d49b3a4b7c181bd9bb29fcf842d7c70660c4f351852a1e197ca46cf5e879b47fa55f616fa2b87ce5e\n8d228244e26132b234930ee14c75d88df0943cdb9c276a8faf167d259b7efc1beec2a87c112a6c608ad1600a239e9aae\nab6e55766e5bfb0cf0764ed909a8473ab5047d3388b4f46faeba2d1425c4754c55c6daf6ad4751e634c618b53e549529\nab0cab6860e55a84c5ad2948a7e0989e2b4b1fd637605634b118361497332df32d9549cb854b2327ca54f2bcb85eed8f\nb086b349ae03ef34f4b25a57bcaa5d1b29bd94f9ebf87e22be475adfe475c51a1230c1ebe13506cb72c4186192451658\n8a0b49d8a254ca6d91500f449cbbfbb69bb516c6948ac06808c65595e46773e346f97a5ce0ef7e5a5e0de278af22709c\nac49de11edaaf04302c73c578cc0824bdd165c0d6321be1c421c1950e68e4f3589aa3995448c9699e93c6ebae8803e27\n884f02d841cb5d8f4c60d1402469216b114ab4e93550b5bc1431756e365c4f870a9853449285384a6fa49e12ce6dc654\nb75f3a28fa2cc8d36b49130cb7448a23d73a7311d0185ba803ad55c8219741d451c110f48b786e96c728bc525903a54f\n80ae04dbd41f4a35e33f9de413b6ad518af0919e5a30cb0fa1b061b260420780bb674f828d37fd3b52b5a31673cbd803\nb9a8011eb5fcea766907029bf743b45262db3e49d24f84503687e838651ed11cb64c66281e20a0ae9f6aa51acc552263\n90bfdd75e2dc9cf013e22a5d55d2d2b8a754c96103a17524488e01206e67f8b6d52b1be8c4e3d5307d4fe06d0e51f54c\nb4af353a19b06203a815ec43e79a88578cc678c46f5a954b85bc5c53b84059dddba731f3d463c23bfd5273885c7c56a4\naa125e96d4553b64f7140e5453ff5d2330318b69d74d37d283e84c26ad672fa00e3f71e530eb7e28be1e94afb9c4612e\na18e060aee3d49cde2389b10888696436bb7949a79ca7d728be6456a356ea5541b55492b2138da90108bd1ce0e6f5524\n93e55f92bdbccc2de655d14b1526836ea2e52dba65eb3f87823dd458a4cb5079bf22ce6ef625cb6d6bfdd0995ab9a874\n89f5a683526b90c1c3ceebbb8dc824b21cff851ce3531b164f6626e326d98b27d3e1d50982e507d84a99b1e04e86a915\n83d1c38800361633a3f742b1cb2bfc528129496e80232611682ddbe403e92c2ac5373aea0bca93ecb5128b0b2b7a719e\n8ecba560ac94905e19ce8d9c7af217bf0a145d8c8bd38e2db82f5e94cc3f2f26f55819176376b51f154b4aab22056059\na7e2a4a002b60291924850642e703232994acb4cfb90f07c94d1e0ecd2257bb583443283c20fc6017c37e6bfe85b7366\n93ed7316fa50b528f1636fc6507683a672f4f4403e55e94663f91221cc198199595bd02eef43d609f451acc9d9b36a24\na1220a8ebc5c50ceed76a74bc3b7e0aa77f6884c71b64b67c4310ac29ce5526cb8992d6abc13ef6c8413ce62486a6795\nb2f6eac5c869ad7f4a25161d3347093e2f70e66cd925032747e901189355022fab3038bca4d610d2f68feb7e719c110b\nb703fa11a4d511ca01c7462979a94acb40b5d933759199af42670eb48f83df202fa0c943f6ab3b4e1cc54673ea3aab1e\nb5422912afbfcb901f84791b04f1ddb3c3fbdc76d961ee2a00c5c320e06d3cc5b5909c3bb805df66c5f10c47a292b13d\nad0934368da823302e1ac08e3ede74b05dfdbfffca203e97ffb0282c226814b65c142e6e15ec1e754518f221f01b30f7\na1dd302a02e37df15bf2f1147efe0e3c06933a5a767d2d030e1132f5c3ce6b98e216b6145eb39e1e2f74e76a83165b8d\na346aab07564432f802ae44738049a36f7ca4056df2d8f110dbe7fef4a3e047684dea609b2d03dc6bf917c9c2a47608f\nb96c5f682a5f5d02123568e50f5d0d186e4b2c4c9b956ec7aabac1b3e4a766d78d19bd111adb5176b898e916e49be2aa\n8a96676d56876fc85538db2e806e1cba20fd01aeb9fa3cb43ca6ca94a2c102639f65660db330e5d74a029bb72d6a0b39\nab0048336bd5c3def1a4064eadd49e66480c1f2abb4df46e03afbd8a3342c2c9d74ee35d79f08f4768c1646681440984\n888427bdf76caec90814c57ee1c3210a97d107dd88f7256f14f883ad0f392334b82be11e36dd8bfec2b37935177c7831\nb622b282becf0094a1916fa658429a5292ba30fb48a4c8066ce1ddcefb71037948262a01c95bab6929ed3a76ba5db9fe\nb5b9e005c1f456b6a368a3097634fb455723abe95433a186e8278dceb79d4ca2fbe21f8002e80027b3c531e5bf494629\na3c6707117a1e48697ed41062897f55d8119403eea6c2ee88f60180f6526f45172664bfee96bf61d6ec0b7fbae6aa058\nb02a9567386a4fbbdb772d8a27057b0be210447348efe6feb935ceec81f361ed2c0c211e54787dc617cdffed6b4a6652\na9b8364e40ef15c3b5902e5534998997b8493064fa2bea99600def58279bb0f64574c09ba11e9f6f669a8354dd79dc85\n9998a2e553a9aa9a206518fae2bc8b90329ee59ab23005b10972712389f2ec0ee746033c733092ffe43d73d33abbb8ef\n843a4b34d9039bf79df96d79f2d15e8d755affb4d83d61872daf540b68c0a3888cf8fc00d5b8b247b38524bcb3b5a856\n84f7128920c1b0bb40eee95701d30e6fc3a83b7bb3709f16d97e72acbb6057004ee7ac8e8f575936ca9dcb7866ab45f7\n918d3e2222e10e05edb34728162a899ad5ada0aaa491aeb7c81572a9c0d506e31d5390e1803a91ff3bd8e2bb15d47f31\n9442d18e2489613a7d47bb1cb803c8d6f3259d088cd079460976d87f7905ee07dea8f371b2537f6e1d792d36d7e42723\nb491976970fe091995b2ed86d629126523ccf3e9daf8145302faca71b5a71a5da92e0e05b62d7139d3efac5c4e367584\naa628006235dc77c14cef4c04a308d66b07ac92d377df3de1a2e6ecfe3144f2219ad6d7795e671e1cb37a3641910b940\n99d386adaea5d4981d7306feecac9a555b74ffdc218c907c5aa7ac04abaead0ec2a8237300d42a3fbc464673e417ceed\n8f78e8b1556f9d739648ea3cab9606f8328b52877fe72f9305545a73b74d49884044ba9c1f1c6db7d9b7c7b7c661caba\n8fb357ae49932d0babdf74fc7aa7464a65d3b6a2b3acf4f550b99601d3c0215900cfd67f2b6651ef94cfc323bac79fae\n9906f2fa25c0290775aa001fb6198113d53804262454ae8b83ef371b5271bde189c0460a645829cb6c59f9ee3a55ce4d\n8f4379b3ebb50e052325b27655ca6a82e6f00b87bf0d2b680d205dd2c7afdc9ff32a9047ae71a1cdf0d0ce6b9474d878\na85534e88c2bd43c043792eaa75e50914b21741a566635e0e107ae857aed0412035f7576cf04488ade16fd3f35fdbb87\nb4ce93199966d3c23251ca7f28ec5af7efea1763d376b0385352ffb2e0a462ef95c69940950278cf0e3dafd638b7bd36\nb10cb3d0317dd570aa73129f4acf63c256816f007607c19b423fb42f65133ce21f2f517e0afb41a5378cccf893ae14d0\na9b231c9f739f7f914e5d943ed9bff7eba9e2c333fbd7c34eb1648a362ee01a01af6e2f7c35c9fe962b11152cddf35de\n99ff6a899e156732937fb81c0cced80ae13d2d44c40ba99ac183aa246103b31ec084594b1b7feb96da58f4be2dd5c0ed\n8748d15d18b75ff2596f50d6a9c4ce82f61ecbcee123a6ceae0e43cab3012a29b6f83cf67b48c22f6f9d757c6caf76b2\nb88ab05e4248b7fb634cf640a4e6a945d13e331237410f7217d3d17e3e384ddd48897e7a91e4516f1b9cbd30f35f238b\n8d826deaeeb84a3b2d2c04c2300ca592501f992810582d6ae993e0d52f6283a839dba66c6c72278cff5871802b71173b\nb36fed027c2f05a5ef625ca00b0364b930901e9e4420975b111858d0941f60e205546474bb25d6bfa6928d37305ae95f\naf2fcfc6b87967567e8b8a13a4ed914478185705724e56ce68fb2df6d1576a0cf34a61e880997a0d35dc2c3276ff7501\nac351b919cd1fbf106feb8af2c67692bfcddc84762d18cea681cfa7470a5644839caace27efee5f38c87d3df306f4211\n8d6665fb1d4d8d1fa23bd9b8a86e043b8555663519caac214d1e3e3effbc6bee7f2bcf21e645f77de0ced279d69a8a8b\na9fc1c2061756b2a1a169c1b149f212ff7f0d2488acd1c5a0197eba793cffa593fc6d1d1b40718aa75ca3ec77eff10e1\naff64f0fa009c7a6cf0b8d7a22ddb2c8170c3cb3eec082e60d5aadb00b0040443be8936d728d99581e33c22178c41c87\n82e0b181adc5e3b1c87ff8598447260e839d53debfae941ebea38265575546c3a74a14b4325a030833a62ff6c52d9365\nb7ad43cbb22f6f892c2a1548a41dc120ab1f4e1b8dea0cb6272dd9cb02054c542ecabc582f7e16de709d48f5166cae86\n985e0c61094281532c4afb788ecb2dfcba998e974b5d4257a22040a161883908cdd068fe80f8eb49b8953cfd11acf43a\nae46895c6d67ea6d469b6c9c07b9e5d295d9ae73b22e30da4ba2c973ba83a130d7eef39717ec9d0f36e81d56bf742671\n8600177ea1f7e7ef90514b38b219a37dedfc39cb83297e4c7a5b479817ef56479d48cf6314820960c751183f6edf8b0e\nb9208ec1c1d7a1e99b59c62d3e4e61dfb706b0e940d09d3abfc3454c19749083260614d89cfd7e822596c3cdbcc6bb95\na1e94042c796c2b48bc724352d2e9f3a22291d9a34705993357ddb6adabd76da6fc25dac200a8cb0b5bbd99ecddb7af6\nb29c3adedd0bcad8a930625bc4dfdc3552a9afd5ca6dd9c0d758f978068c7982b50b711aa0eb5b97f2b84ee784637835\naf0632a238bb1f413c7ea8e9b4c3d68f2827bd2e38cd56024391fba6446ac5d19a780d0cfd4a78fe497d537b766a591a\naaf6e7f7d54f8ef5e2e45dd59774ecbeecf8683aa70483b2a75be6a6071b5981bbaf1627512a65d212817acdfab2e428\n8c751496065da2e927cf492aa5ca9013b24f861d5e6c24b30bbf52ec5aaf1905f40f9a28175faef283dd4ed4f2182a09\n8952377d8e80a85cf67d6b45499f3bad5fd452ea7bcd99efc1b066c4720d8e5bff1214cea90fd1f972a7f0baac3d29be\na1946ee543d1a6e21f380453be4d446e4130950c5fc3d075794eb8260f6f52d0a795c1ff91d028a648dc1ce7d9ab6b47\n89f3fefe37af31e0c17533d2ca1ce0884cc1dc97c15cbfab9c331b8debd94781c9396abef4bb2f163d09277a08d6adf0\na2753f1e6e1a154fb117100a5bd9052137add85961f8158830ac20541ab12227d83887d10acf7fd36dcaf7c2596d8d23\n814955b4198933ee11c3883863b06ff98c7eceb21fc3e09df5f916107827ccf3323141983e74b025f46ae00284c9513b\n8cc5c6bb429073bfef47cae7b3bfccb0ffa076514d91a1862c6bda4d581e0df87db53cc6c130bf8a7826304960f5a34e\n909f22c1f1cdc87f7be7439c831a73484a49acbf8f23d47087d7cf867c64ef61da3bde85dc57d705682b4c3fc710d36e\n8048fee7f276fcd504aed91284f28e73693615e0eb3858fa44bcf79d7285a9001c373b3ef71d9a3054817ba293ebe28c\n94400e5cf5d2700ca608c5fe35ce14623f71cc24959f2bc27ca3684092850f76b67fb1f07ca9e5b2ca3062cf8ad17bd4\n81c2ae7d4d1b17f8b6de6a0430acc0d58260993980fe48dc2129c4948269cdc74f9dbfbf9c26b19360823fd913083d48\n8c41fe765128e63f6889d6a979f6a4342300327c8b245a8cfe3ecfbcac1e09c3da30e2a1045b24b78efc6d6d50c8c6ac\na5dd4ae51ae48c8be4b218c312ade226cffce671cf121cb77810f6c0990768d6dd767badecb5c69921d5574d5e8433d3\nb7642e325f4ba97ae2a39c1c9d97b35aafd49d53dba36aed3f3cb0ca816480b3394079f46a48252d46596559c90f4d58\nae87375b40f35519e7bd4b1b2f73cd0b329b0c2cb9d616629342a71c6c304338445eda069b78ea0fbe44087f3de91e09\nb08918cb6f736855e11d3daca1ddfbdd61c9589b203b5493143227bf48e2c77c2e8c94b0d1aa2fab2226e0eae83f2681\nac36b84a4ac2ebd4d6591923a449c564e3be8a664c46092c09e875c2998eba16b5d32bfd0882fd3851762868e669f0b1\na44800a3bb192066fa17a3f29029a23697240467053b5aa49b9839fb9b9b8b12bcdcbfc557f024b61f4f51a9aacdefcb\n9064c688fec23441a274cdf2075e5a449caf5c7363cc5e8a5dc9747183d2e00a0c69f2e6b3f6a7057079c46014c93b3b\naa367b021469af9f5b764a79bb3afbe2d87fe1e51862221672d1a66f954b165778b7c27a705e0f93841fab4c8468344d\na1a8bfc593d4ab71f91640bc824de5c1380ab2591cfdafcbc78a14b32de3c0e15f9d1b461d85c504baa3d4232c16bb53\n97df48da1799430f528184d30b6baa90c2a2f88f34cdfb342d715339c5ebd6d019aa693cea7c4993daafc9849063a3aa\nabd923831fbb427e06e0dd335253178a9e5791395c84d0ab1433c07c53c1209161097e9582fb8736f8a60bde62d8693e\n84cd1a43f1a438b43dc60ffc775f646937c4f6871438163905a3cebf1115f814ccd38a6ccb134130bff226306e412f32\n91426065996b0743c5f689eb3ca68a9f7b9e4d01f6c5a2652b57fa9a03d8dc7cd4bdbdab0ca5a891fee1e97a7f00cf02\na4bee50249db3df7fd75162b28f04e57c678ba142ce4d3def2bc17bcb29e4670284a45f218dad3969af466c62a903757\n83141ebcc94d4681404e8b67a12a46374fded6df92b506aff3490d875919631408b369823a08b271d006d5b93136f317\na0ea1c8883d58d5a784da3d8c8a880061adea796d7505c1f903d07c287c5467f71e4563fc0faafbc15b5a5538b0a7559\n89d9d480574f201a87269d26fb114278ed2c446328df431dc3556e3500e80e4cd01fcac196a2459d8646361ebda840df\n8bf302978973632dd464bec819bdb91304712a3ec859be071e662040620422c6e75eba6f864f764cffa2799272efec39\n922f666bc0fd58b6d7d815c0ae4f66d193d32fc8382c631037f59eeaeae9a8ca6c72d08e72944cf9e800b8d639094e77\n81ad8714f491cdff7fe4399f2eb20e32650cff2999dd45b9b3d996d54a4aba24cc6c451212e78c9e5550368a1a38fb3f\nb58fcf4659d73edb73175bd9139d18254e94c3e32031b5d4b026f2ed37aa19dca17ec2eb54c14340231615277a9d347e\nb365ac9c2bfe409b710928c646ea2fb15b28557e0f089d39878e365589b9d1c34baf5566d20bb28b33bb60fa133f6eff\n8fcae1d75b53ab470be805f39630d204853ca1629a14158bac2f52632277d77458dec204ff84b7b2d77e641c2045be65\na03efa6bebe84f4f958a56e2d76b5ba4f95dd9ed7eb479edc7cc5e646c8d4792e5b0dfc66cc86aa4b4afe2f7a4850760\naf1c823930a3638975fb0cc5c59651771b2719119c3cd08404fbd4ce77a74d708cefbe3c56ea08c48f5f10e6907f338f\n8260c8299b17898032c761c325ac9cabb4c5b7e735de81eacf244f647a45fb385012f4f8df743128888c29aefcaaad16\nab2f37a573c82e96a8d46198691cd694dfa860615625f477e41f91b879bc58a745784fccd8ffa13065834ffd150d881d\n986c746c9b4249352d8e5c629e8d7d05e716b3c7aab5e529ca969dd1e984a14b5be41528baef4c85d2369a42d7209216\nb25e32da1a8adddf2a6080725818b75bc67240728ad1853d90738485d8924ea1e202df0a3034a60ffae6f965ec55cf63\na266e627afcebcefea6b6b44cbc50f5c508f7187e87d047b0450871c2a030042c9e376f3ede0afcf9d1952f089582f71\n86c3bbca4c0300606071c0a80dbdec21ce1dd4d8d4309648151c420854032dff1241a1677d1cd5de4e4de4385efda986\nb9a21a1fe2d1f3273a8e4a9185abf2ff86448cc98bfa435e3d68306a2b8b4a6a3ea33a155be3cb62a2170a86f77679a5\nb117b1ea381adce87d8b342cba3a15d492ff2d644afa28f22424cb9cbc820d4f7693dfc1a4d1b3697046c300e1c9b4c8\n9004c425a2e68870d6c69b658c344e3aa3a86a8914ee08d72b2f95c2e2d8a4c7bb0c6e7e271460c0e637cec11117bf8e\n86a18aa4783b9ebd9131580c8b17994825f27f4ac427b0929a1e0236907732a1c8139e98112c605488ee95f48bbefbfc\n84042243b955286482ab6f0b5df4c2d73571ada00716d2f737ca05a0d2e88c6349e8ee9e67934cfee4a1775dbf7f4800\n92c2153a4733a62e4e1d5b60369f3c26777c7d01cd3c8679212660d572bd3bac9b8a8a64e1f10f7dbf5eaa7579c4e423\n918454b6bb8e44a2afa144695ba8d48ae08d0cdfef4ad078f67709eddf3bb31191e8b006f04e82ea45a54715ef4d5817\nacf0b54f6bf34cf6ed6c2b39cf43194a40d68de6bcf1e4b82c34c15a1343e9ac3737885e1a30b78d01fa3a5125463db8\na7d60dbe4b6a7b054f7afe9ee5cbbfeca0d05dc619e6041fa2296b549322529faddb8a11e949562309aecefb842ac380\n91ffb53e6d7e5f11159eaf13e783d6dbdfdb1698ed1e6dbf3413c6ea23492bbb9e0932230a9e2caac8fe899a17682795\nb6e8d7be5076ee3565d5765a710c5ecf17921dd3cf555c375d01e958a365ae087d4a88da492a5fb81838b7b92bf01143\na8c6b763de2d4b2ed42102ef64eccfef31e2fb2a8a2776241c82912fa50fc9f77f175b6d109a97ede331307c016a4b1a\n99839f86cb700c297c58bc33e28d46b92931961548deac29ba8df91d3e11721b10ea956c8e16984f9e4acf1298a79b37\n8c2e2c338f25ea5c25756b7131cde0d9a2b35abf5d90781180a00fe4b8e64e62590dc63fe10a57fba3a31c76d784eb01\n9687d7df2f41319ca5469d91978fed0565a5f11f829ebadaa83db92b221755f76c6eacd7700735e75c91e257087512e3\n8795fdfb7ff8439c58b9bf58ed53873d2780d3939b902b9ddaaa4c99447224ced9206c3039a23c2c44bcc461e2bb637f\na803697b744d2d087f4e2307218d48fa88620cf25529db9ce71e2e3bbcc65bac5e8bb9be04777ef7bfb5ed1a5b8e6170\n80f3d3efbbb9346ddd413f0a8e36b269eb5d7ff6809d5525ff9a47c4bcab2c01b70018b117f6fe05253775612ff70c6b\n9050e0e45bcc83930d4c505af35e5e4d7ca01cd8681cba92eb55821aececcebe32bb692ebe1a4daac4e7472975671067\n8d206812aac42742dbaf233e0c080b3d1b30943b54b60283515da005de05ea5caa90f91fedcfcba72e922f64d7040189\na2d44faaeb2eff7915c83f32b13ca6f31a6847b1c1ce114ea240bac3595eded89f09b2313b7915ad882292e2b586d5b4\n961776c8576030c39f214ea6e0a3e8b3d32f023d2600958c098c95c8a4e374deeb2b9dc522adfbd6bda5949bdc09e2a2\n993fa7d8447407af0fbcd9e6d77f815fa5233ab00674efbcf74a1f51c37481445ae291cc7b76db7c178f9cb0e570e0fc\nabd5b1c78e05f9d7c8cc99bdaef8b0b6a57f2daf0f02bf492bec48ea4a27a8f1e38b5854da96efff11973326ff980f92\n8f15af4764bc275e6ccb892b3a4362cacb4e175b1526a9a99944e692fe6ccb1b4fc19abf312bb2a089cb1f344d91a779\na09b27ccd71855512aba1d0c30a79ffbe7f6707a55978f3ced50e674b511a79a446dbc6d7946add421ce111135a460af\n94b2f98ce86a9271fbd4153e1fc37de48421fe3490fb3840c00f2d5a4d0ba8810c6a32880b002f6374b59e0a7952518b\n8650ac644f93bbcb88a6a0f49fee2663297fd4bc6fd47b6a89b9d8038d32370438ab3a4775ec9b58cb10aea8a95ef7b6\n95e5c2f2e84eed88c6980bbba5a1c0bb375d5a628bff006f7516d45bb7d723da676add4fdd45956f312e7bab0f052644\nb3278a3fa377ac93af7cfc9453f8cb594aae04269bbc99d2e0e45472ff4b6a2f97a26c4c57bf675b9d86f5e77a5d55d1\nb4bcbe6eb666a206e2ea2f877912c1d3b5bdbd08a989fc4490eb06013e1a69ad1ba08bcdac048bf29192312be399077b\na76d70b78c99fffcbf9bb9886eab40f1ea4f99a309710b660b64cbf86057cbcb644d243f6e341711bb7ef0fedf0435a7\nb2093c1ee945dca7ac76ad5aed08eae23af31dd5a77c903fd7b6f051f4ab84425d33a03c3d45bf2907bc93c02d1f3ad8\n904b1f7534e053a265b22d20be859912b9c9ccb303af9a8d6f1d8f6ccdc5c53eb4a45a1762b880d8444d9be0cd55e7f9\n8f664a965d65bc730c9ef1ec7467be984d4b8eb46bd9b0d64e38e48f94e6e55dda19aeac82cbcf4e1473440e64c4ca18\n8bcee65c4cc7a7799353d07b114c718a2aae0cd10a3f22b7eead5185d159dafd64852cb63924bf87627d176228878bce\n8c78f2e3675096fef7ebaa898d2615cd50d39ca3d8f02b9bdfb07e67da648ae4be3da64838dffc5935fd72962c4b96c7\n8c40afd3701629421fec1df1aac4e849384ef2e80472c0e28d36cb1327acdf2826f99b357f3d7afdbc58a6347fc40b3c\na197813b1c65a8ea5754ef782522a57d63433ef752215ecda1e7da76b0412ee619f58d904abd2e07e0c097048b6ae1dd\na670542629e4333884ad7410f9ea3bd6f988df4a8f8a424ca74b9add2312586900cf9ae8bd50411f9146e82626b4af56\na19875cc07ab84e569d98b8b67fb1dbbdfb59093c7b748fae008c8904a6fd931a63ca8d03ab5fea9bc8d263568125a9b\nb57e7f68e4eb1bd04aafa917b1db1bdab759a02aa8a9cdb1cba34ba8852b5890f655645c9b4e15d5f19bf37e9f2ffe9f\n8abe4e2a4f6462b6c64b3f10e45db2a53c2b0d3c5d5443d3f00a453e193df771eda635b098b6c8604ace3557514027af\n8459e4fb378189b22b870a6ef20183deb816cefbf66eca1dc7e86d36a2e011537db893729f500dc154f14ce24633ba47\n930851df4bc7913c0d8c0f7bd3b071a83668987ed7c397d3d042fdc0d9765945a39a3bae83da9c88cb6b686ed8aeeb26\n8078c9e5cd05e1a8c932f8a1d835f61a248b6e7133fcbb3de406bf4ffc0e584f6f9f95062740ba6008d98348886cf76b\naddff62bb29430983fe578e3709b0949cdc0d47a13a29bc3f50371a2cb5c822ce53e2448cfaa01bcb6e0aa850d5a380e\n9433add687b5a1e12066721789b1db2edf9b6558c3bdc0f452ba33b1da67426abe326e9a34d207bfb1c491c18811bde1\n822beda3389963428cccc4a2918fa9a8a51cf0919640350293af70821967108cded5997adae86b33cb917780b097f1ca\na7a9f52bda45e4148ed56dd176df7bd672e9b5ed18888ccdb405f47920fdb0844355f8565cefb17010b38324edd8315f\nb35c3a872e18e607b2555c51f9696a17fa18da1f924d503b163b4ec9fe22ed0c110925275cb6c93ce2d013e88f173d6a\nadf34b002b2b26ab84fc1bf94e05bd8616a1d06664799ab149363c56a6e0c807fdc473327d25632416e952ea327fcd95\nae4a6b9d22a4a3183fac29e2551e1124a8ce4a561a9a2afa9b23032b58d444e6155bb2b48f85c7b6d70393274e230db7\na2ea3be4fc17e9b7ce3110284038d46a09e88a247b6971167a7878d9dcf36925d613c382b400cfa4f37a3ebea3699897\n8e5863786b641ce3140fbfe37124d7ad3925472e924f814ebfc45959aaf3f61dc554a597610b5defaecc85b59a99b50f\naefde3193d0f700d0f515ab2aaa43e2ef1d7831c4f7859f48e52693d57f97fa9e520090f3ed700e1c966f4b76048e57f\n841a50f772956622798e5cd208dc7534d4e39eddee30d8ce133383d66e5f267e389254a0cdae01b770ecd0a9ca421929\n8fbc2bfd28238c7d47d4c03b1b910946c0d94274a199575e5b23242619b1de3497784e646a92aa03e3e24123ae4fcaba\n926999579c8eec1cc47d7330112586bdca20b4149c8b2d066f527c8b9f609e61ce27feb69db67eea382649c6905efcf9\nb09f31f305efcc65589adf5d3690a76cf339efd67cd43a4e3ced7b839507466e4be72dd91f04e89e4bbef629d46e68c0\nb917361f6b95f759642638e0b1d2b3a29c3bdef0b94faa30de562e6078c7e2d25976159df3edbacbf43614635c2640b4\n8e7e8a1253bbda0e134d62bfe003a2669d471b47bd2b5cde0ff60d385d8e62279d54022f5ac12053b1e2d3aaa6910b4c\nb69671a3c64e0a99d90b0ed108ce1912ff8ed983e4bddd75a370e9babde25ee1f5efb59ec707edddd46793207a8b1fe7\n910b2f4ebd37b7ae94108922b233d0920b4aba0bd94202c70f1314418b548d11d8e9caa91f2cd95aff51b9432d122b7f\n82f645c90dfb52d195c1020346287c43a80233d3538954548604d09fbab7421241cde8593dbc4acc4986e0ea39a27dd9\n8fee895f0a140d88104ce442fed3966f58ff9d275e7373483f6b4249d64a25fb5374bbdc6bce6b5ab0270c2847066f83\n84f5bd7aab27b2509397aeb86510dd5ac0a53f2c8f73799bf720f2f87a52277f8d6b0f77f17bc80739c6a7119b7eb062\n9903ceced81099d7e146e661bcf01cbaccab5ba54366b85e2177f07e2d8621e19d9c9c3eee14b9266de6b3f9b6ea75ae\nb9c16ea2a07afa32dd6c7c06df0dec39bca2067a9339e45475c98917f47e2320f6f235da353fd5e15b477de97ddc68dd\n9820a9bbf8b826bec61ebf886de2c4f404c1ebdc8bab82ee1fea816d9de29127ce1852448ff717a3fe8bbfe9e92012e5\n817224d9359f5da6f2158c2c7bf9165501424f063e67ba9859a07ab72ee2ee62eb00ca6da821cfa19065c3282ca72c74\n94b95c465e6cb00da400558a3c60cfec4b79b27e602ca67cbc91aead08de4b6872d8ea096b0dc06dca4525c8992b8547\na2b539a5bccd43fa347ba9c15f249b417997c6a38c63517ca38394976baa08e20be384a360969ff54e7e721db536b3e5\n96caf707e34f62811ee8d32ccf28d8d6ec579bc33e424d0473529af5315c456fd026aa910c1fed70c91982d51df7d3ca\n8a77b73e890b644c6a142bdbac59b22d6a676f3b63ddafb52d914bb9d395b8bf5aedcbcc90429337df431ebd758a07a6\n8857830a7351025617a08bc44caec28d2fae07ebf5ffc9f01d979ce2a53839a670e61ae2783e138313929129790a51a1\naa3e420321ed6f0aa326d28d1a10f13facec6f605b6218a6eb9cbc074801f3467bf013a456d1415a5536f12599efa3d3\n824aed0951957b00ea2f3d423e30328a3527bf6714cf9abbae84cf27e58e5c35452ba89ccc011de7c68c75d6e021d8f1\na2e87cc06bf202e953fb1081933d8b4445527dde20e38ed1a4f440144fd8fa464a2b73e068b140562e9045e0f4bd3144\nae3b8f06ad97d7ae3a5e5ca839efff3e4824dc238c0c03fc1a8d2fc8aa546cdfd165b784a31bb4dec7c77e9305b99a4b\nb30c3e12395b1fb8b776f3ec9f87c70e35763a7b2ddc68f0f60a4982a84017f27c891a98561c830038deb033698ed7fc\n874e507757cd1177d0dff0b0c62ce90130324442a33da3b2c8ee09dbca5d543e3ecfe707e9f1361e7c7db641c72794bb\nb53012dd10b5e7460b57c092eaa06d6502720df9edbbe3e3f61a9998a272bf5baaac4a5a732ad4efe35d6fac6feca744\n85e6509d711515534d394e6cacbed6c81da710074d16ef3f4950bf2f578d662a494d835674f79c4d6315bced4defc5f0\nb6132b2a34b0905dcadc6119fd215419a7971fe545e52f48b768006944b4a9d7db1a74b149e2951ea48c083b752d0804\n989867da6415036d19b4bacc926ce6f4df7a556f50a1ba5f3c48eea9cefbb1c09da81481c8009331ee83f0859185e164\n960a6c36542876174d3fbc1505413e29f053ed87b8d38fef3af180491c7eff25200b45dd5fe5d4d8e63c7e8c9c00f4c8\n9040b59bd739d9cc2e8f6e894683429e4e876a8106238689ff4c22770ae5fdae1f32d962b30301fa0634ee163b524f35\naf3fcd0a45fe9e8fe256dc7eab242ef7f582dd832d147444483c62787ac820fafc6ca55d639a73f76bfa5e7f5462ab8f\nb934c799d0736953a73d91e761767fdb78454355c4b15c680ce08accb57ccf941b13a1236980001f9e6195801cffd692\n8871e8e741157c2c326b22cf09551e78da3c1ec0fc0543136f581f1550f8bab03b0a7b80525c1e99812cdbf3a9698f96\na8a977f51473a91d178ee8cfa45ffef8d6fd93ab1d6e428f96a3c79816d9c6a93cd70f94d4deda0125fd6816e30f3bea\na7688b3b0a4fc1dd16e8ba6dc758d3cfe1b7cf401c31739484c7fa253cce0967df1b290769bcefc9d23d3e0cb19e6218\n8ae84322662a57c6d729e6ff9d2737698cc2da2daeb1f39e506618750ed23442a6740955f299e4a15dda6db3e534d2c6\na04a961cdccfa4b7ef83ced17ab221d6a043b2c718a0d6cc8e6f798507a31f10bf70361f70a049bc8058303fa7f96864\nb463e39732a7d9daec8a456fb58e54b30a6e160aa522a18b9a9e836488cce3342bcbb2e1deab0f5e6ec0a8796d77197d\nb1434a11c6750f14018a2d3bcf94390e2948f4f187e93bb22070ca3e5393d339dc328cbfc3e48815f51929465ffe7d81\n84ff81d73f3828340623d7e3345553610aa22a5432217ef0ebd193cbf4a24234b190c65ca0873c22d10ea7b63bd1fbed\nb6fe2723f0c47757932c2ddde7a4f8434f665612f7b87b4009c2635d56b6e16b200859a8ade49276de0ef27a2b6c970a\n9742884ed7cd52b4a4a068a43d3faa02551a424136c85a9313f7cb58ea54c04aa83b0728fd741d1fe39621e931e88f8f\nb7d2d65ea4d1ad07a5dee39e40d6c03a61264a56b1585b4d76fc5b2a68d80a93a42a0181d432528582bf08d144c2d6a9\n88c0f66bada89f8a43e5a6ead2915088173d106c76f724f4a97b0f6758aed6ae5c37c373c6b92cdd4aea8f6261f3a374\n81f9c43582cb42db3900747eb49ec94edb2284999a499d1527f03315fd330e5a509afa3bff659853570e9886aab5b28b\n821f9d27d6beb416abf9aa5c79afb65a50ed276dbda6060103bc808bcd34426b82da5f23e38e88a55e172f5c294b4d40\n8ba307b9e7cb63a6c4f3851b321aebfdb6af34a5a4c3bd949ff7d96603e59b27ff4dc4970715d35f7758260ff942c9e9\nb142eb6c5f846de33227d0bda61d445a7c33c98f0a8365fe6ab4c1fabdc130849be597ef734305894a424ea715372d08\na732730ae4512e86a741c8e4c87fee8a05ee840fec0e23b2e037d58dba8dde8d10a9bc5191d34d00598941becbbe467f\nadce6f7c30fd221f6b10a0413cc76435c4bb36c2d60bca821e5c67409fe9dbb2f4c36ef85eb3d734695e4be4827e9fd3\na74f00e0f9b23aff7b2527ce69852f8906dab9d6abe62ecd497498ab21e57542e12af9918d4fd610bb09e10b0929c510\na593b6b0ef26448ce4eb3ab07e84238fc020b3cb10d542ff4b16d4e2be1bcde3797e45c9cf753b8dc3b0ffdb63984232\naed3913afccf1aa1ac0eb4980eb8426d0baccebd836d44651fd72af00d09fac488a870223c42aca3ceb39752070405ae\nb2c44c66a5ea7fde626548ba4cef8c8710191343d3dadfd3bb653ce715c0e03056a5303a581d47dde66e70ea5a2d2779\n8e5029b2ccf5128a12327b5103f7532db599846e422531869560ceaff392236434d87159f597937dbf4054f810c114f4\n82beed1a2c4477e5eb39fc5b0e773b30cfec77ef2b1bf17eadaf60eb35b6d0dd9d8cf06315c48d3546badb3f21cd0cca\n90077bd6cc0e4be5fff08e5d07a5a158d36cebd1d1363125bc4fae0866ffe825b26f933d4ee5427ba5cd0c33c19a7b06\na7ec0d8f079970e8e34f0ef3a53d3e0e45428ddcef9cc776ead5e542ef06f3c86981644f61c5a637e4faf001fb8c6b3e\nae6d4add6d1a6f90b22792bc9d40723ee6850c27d0b97eefafd5b7fd98e424aa97868b5287cc41b4fbd7023bca6a322c\n831aa917533d077da07c01417feaa1408846363ba2b8d22c6116bb858a95801547dd88b7d7fa1d2e3f0a02bdeb2e103d\n96511b860b07c8a5ed773f36d4aa9d02fb5e7882753bf56303595bcb57e37ccc60288887eb83bef08c657ec261a021a2\n921d2a3e7e9790f74068623de327443666b634c8443aba80120a45bba450df920b2374d96df1ce3fb1b06dd06f8cf6e3\naa74451d51fe82b4581ead8e506ec6cd881010f7e7dd51fc388eb9a557db5d3c6721f81c151d08ebd9c2591689fbc13e\na972bfbcf4033d5742d08716c927c442119bdae336bf5dff914523b285ccf31953da2733759aacaa246a9af9f698342c\nad1fcd0cae0e76840194ce4150cb8a56ebed728ec9272035f52a799d480dfc85840a4d52d994a18b6edb31e79be6e8ad\na2c69fe1d36f235215432dad48d75887a44c99dfa0d78149acc74087da215a44bdb5f04e6eef88ff7eff80a5a7decc77\na94ab2af2b6ee1bc6e0d4e689ca45380d9fbd3c5a65b9bd249d266a4d4c07bf5d5f7ef2ae6000623aee64027892bf8fe\n881ec1fc514e926cdc66480ac59e139148ff8a2a7895a49f0dff45910c90cdda97b66441a25f357d6dd2471cddd99bb3\n884e6d3b894a914c8cef946a76d5a0c8351843b2bffa2d1e56c6b5b99c84104381dd1320c451d551c0b966f4086e60f9\n817c6c10ce2677b9fc5223500322e2b880583254d0bb0d247d728f8716f5e05c9ff39f135854342a1afecd9fbdcf7c46\naaf4a9cb686a14619aa1fc1ac285dd3843ac3dd99f2b2331c711ec87b03491c02f49101046f3c5c538dc9f8dba2a0ac2\n97ecea5ce53ca720b5d845227ae61d70269a2f53540089305c86af35f0898bfd57356e74a8a5e083fa6e1ea70080bd31\na22d811e1a20a75feac0157c418a4bfe745ccb5d29466ffa854dca03e395b6c3504a734341746b2846d76583a780b32e\n940cbaa0d2b2db94ae96b6b9cf2deefbfd059e3e5745de9aec4a25f0991b9721e5cd37ef71c631575d1a0c280b01cd5b\nae33cb4951191258a11044682de861bf8d92d90ce751b354932dd9f3913f542b6a0f8a4dc228b3cd9244ac32c4582832\na580df5e58c4274fe0f52ac2da1837e32f5c9db92be16c170187db4c358f43e5cfdda7c5911dcc79d77a5764e32325f5\n81798178cb9d8affa424f8d3be67576ba94d108a28ccc01d330c51d5a63ca45bb8ca63a2f569b5c5fe1303cecd2d777f\n89975b91b94c25c9c3660e4af4047a8bacf964783010820dbc91ff8281509379cb3b24c25080d5a01174dd9a049118d5\na7327fcb3710ed3273b048650bde40a32732ef40a7e58cf7f2f400979c177944c8bc54117ba6c80d5d4260801dddab79\n92b475dc8cb5be4b90c482f122a51bcb3b6c70593817e7e2459c28ea54a7845c50272af38119406eaadb9bcb993368d0\n9645173e9ecefc4f2eae8363504f7c0b81d85f8949a9f8a6c01f2d49e0a0764f4eacecf3e94016dd407fc14494fce9f9\n9215fd8983d7de6ae94d35e6698226fc1454977ae58d42d294be9aad13ac821562ad37d5e7ee5cdfe6e87031d45cd197\n810360a1c9b88a9e36f520ab5a1eb8bed93f52deefbe1312a69225c0a08edb10f87cc43b794aced9c74220cefcc57e7d\nad7e810efd61ed4684aeda9ed8bb02fb9ae4b4b63fda8217d37012b94ff1b91c0087043bfa4e376f961fff030c729f3b\n8b07c95c6a06db8738d10bb03ec11b89375c08e77f0cab7e672ce70b2685667ca19c7e1c8b092821d31108ea18dfd4c7\n968825d025ded899ff7c57245250535c732836f7565eab1ae23ee7e513201d413c16e1ba3f5166e7ac6cf74de8ceef4f\n908243370c5788200703ade8164943ad5f8c458219186432e74dbc9904a701ea307fd9b94976c866e6c58595fd891c4b\n959969d16680bc535cdc6339e6186355d0d6c0d53d7bbfb411641b9bf4b770fd5f575beef5deec5c4fa4d192d455c350\nad177f4f826a961adeac76da40e2d930748effff731756c797eddc4e5aa23c91f070fb69b19221748130b0961e68a6bb\n82f8462bcc25448ef7e0739425378e9bb8a05e283ce54aae9dbebaf7a3469f57833c9171672ad43a79778366c72a5e37\na28fb275b1845706c2814d9638573e9bc32ff552ebaed761fe96fdbce70395891ca41c400ae438369264e31a2713b15f\n8a9c613996b5e51dadb587a787253d6081ea446bf5c71096980bf6bd3c4b69905062a8e8a3792de2d2ece3b177a71089\n8d5aefef9f60cb27c1db2c649221204dda48bb9bf8bf48f965741da051340e8e4cab88b9d15c69f3f84f4c854709f48a\n93ebf2ca6ad85ab6deace6de1a458706285b31877b1b4d7dcb9d126b63047efaf8c06d580115ec9acee30c8a7212fa55\nb3ee46ce189956ca298057fa8223b7fd1128cf52f39159a58bca03c71dd25161ac13f1472301f72aef3e1993fe1ab269\na24d7a8d066504fc3f5027ccb13120e2f22896860e02c45b5eba1dbd512d6a17c28f39155ea581619f9d33db43a96f92\nae9ceacbfe12137db2c1a271e1b34b8f92e4816bad1b3b9b6feecc34df0f8b3b0f7ed0133acdf59c537d43d33fc8d429\n83967e69bf2b361f86361bd705dce0e1ad26df06da6c52b48176fe8dfcbeb03c462c1a4c9e649eff8c654b18c876fdef\n9148e6b814a7d779c19c31e33a068e97b597de1f8100513db3c581190513edc4d544801ce3dd2cf6b19e0cd6daedd28a\n94ccdafc84920d320ed22de1e754adea072935d3c5f8c2d1378ebe53d140ea29853f056fb3fb1e375846061a038cc9bc\nafb43348498c38b0fa5f971b8cdd3a62c844f0eb52bc33daf2f67850af0880fce84ecfb96201b308d9e6168a0d443ae3\n86d5736520a83538d4cd058cc4b4e84213ed00ebd6e7af79ae787adc17a92ba5359e28ba6c91936d967b4b28d24c3070\nb5210c1ff212c5b1e9ef9126e08fe120a41e386bb12c22266f7538c6d69c7fd8774f11c02b81fd4e88f9137b020801fe\nb78cfd19f94d24e529d0f52e18ce6185cb238edc6bd43086270fd51dd99f664f43dd4c7d2fe506762fbd859028e13fcf\na6e7220598c554abdcc3fdc587b988617b32c7bb0f82c06205467dbedb58276cc07cae317a190f19d19078773f4c2bbb\nb88862809487ee430368dccd85a5d72fa4d163ca4aad15c78800e19c1a95be2192719801e315d86cff7795e0544a77e4\n87ecb13a03921296f8c42ceb252d04716f10e09c93962239fcaa0a7fef93f19ab3f2680bc406170108bc583e9ff2e721\na810cd473832b6581c36ec4cb403f2849357ba2d0b54df98ef3004b8a530c078032922a81d40158f5fb0043d56477f6e\na247b45dd85ca7fbb718b328f30a03f03c84aef2c583fbdc9fcc9eb8b52b34529e8c8f535505c10598b1b4dac3d7c647\n96ee0b91313c68bac4aa9e065ce9e1d77e51ca4cff31d6a438718c58264dee87674bd97fc5c6b8008be709521e4fd008\n837567ad073e42266951a9a54750919280a2ac835a73c158407c3a2b1904cf0d17b7195a393c71a18ad029cbd9cf79ee\na6a469c44b67ebf02196213e7a63ad0423aab9a6e54acc6fcbdbb915bc043586993454dc3cd9e4be8f27d67c1050879b\n8712d380a843b08b7b294f1f06e2f11f4ad6bcc655fdde86a4d8bc739c23916f6fad2b902fe47d6212f03607907e9f0e\n920adfb644b534789943cdae1bdd6e42828dda1696a440af2f54e6b97f4f97470a1c6ea9fa6a2705d8f04911d055acd1\na161c73adf584a0061e963b062f59d90faac65c9b3a936b837a10d817f02fcabfa748824607be45a183dd40f991fe83f\n874f4ecd408c76e625ea50bc59c53c2d930ee25baf4b4eca2440bfbffb3b8bc294db579caa7c68629f4d9ec24187c1ba\n8bff18087f112be7f4aa654e85c71fef70eee8ae480f61d0383ff6f5ab1a0508f966183bb3fc4d6f29cb7ca234aa50d3\nb03b46a3ca3bc743a173cbc008f92ab1aedd7466b35a6d1ca11e894b9482ea9dc75f8d6db2ddd1add99bfbe7657518b7\n8b4f3691403c3a8ad9e097f02d130769628feddfa8c2b3dfe8cff64e2bed7d6e5d192c1e2ba0ac348b8585e94acd5fa1\na0d9ca4a212301f97591bf65d5ef2b2664766b427c9dd342e23cb468426e6a56be66b1cb41fea1889ac5d11a8e3c50a5\n8c93ed74188ca23b3df29e5396974b9cc135c91fdefdea6c0df694c8116410e93509559af55533a3776ac11b228d69b1\n82dd331fb3f9e344ebdeeb557769b86a2cc8cc38f6c298d7572a33aea87c261afa9dbd898989139b9fc16bc1e880a099\na65faedf326bcfd8ef98a51410c78b021d39206704e8291cd1f09e096a66b9b0486be65ff185ca224c45918ac337ddeb\na188b37d363ac072a766fd5d6fa27df07363feff1342217b19e3c37385e42ffde55e4be8355aceaa2f267b6d66b4ac41\n810fa3ba3e96d843e3bafd3f2995727f223d3567c8ba77d684c993ba1773c66551eb5009897c51b3fe9b37196984f5ec\n87631537541852da323b4353af45a164f68b304d24c01183bf271782e11687f3fcf528394e1566c2a26cb527b3148e64\nb721cb2b37b3c477a48e3cc0044167d51ff568a5fd2fb606e5aec7a267000f1ddc07d3db919926ae12761a8e017c767c\n904dfad4ba2cc1f6e60d1b708438a70b1743b400164cd981f13c064b8328d5973987d4fb9cf894068f29d3deaf624dfb\na70491538893552c20939fae6be2f07bfa84d97e2534a6bbcc0f1729246b831103505e9f60e97a8fa7d2e6c1c2384579\n8726cf1b26b41f443ff7485adcfddc39ace2e62f4d65dd0bb927d933e262b66f1a9b367ded5fbdd6f3b0932553ac1735\nae8a11cfdf7aa54c08f80cb645e3339187ab3886babe9fae5239ba507bb3dd1c0d161ca474a2df081dcd3d63e8fe445e\n92328719e97ce60e56110f30a00ac5d9c7a2baaf5f8d22355d53c1c77941e3a1fec7d1405e6fbf8959665fe2ba7a8cad\n8d9d6255b65798d0018a8cccb0b6343efd41dc14ff2058d3eed9451ceaad681e4a0fa6af67b0a04318aa628024e5553d\nb70209090055459296006742d946a513f0cba6d83a05249ee8e7a51052b29c0ca9722dc4af5f9816a1b7938a5dac7f79\naab7b766b9bf91786dfa801fcef6d575dc6f12b77ecc662eb4498f0312e54d0de9ea820e61508fc8aeee5ab5db529349\na8104b462337748b7f086a135d0c3f87f8e51b7165ca6611264b8fb639d9a2f519926cb311fa2055b5fadf03da70c678\nb0d2460747d5d8b30fc6c6bd0a87cb343ddb05d90a51b465e8f67d499cfc5e3a9e365da05ae233bbee792cdf90ec67d5\naa55f5bf3815266b4a149f85ed18e451c93de9163575e3ec75dd610381cc0805bb0a4d7c4af5b1f94d10231255436d2c\n8d4c6a1944ff94426151909eb5b99cfd92167b967dabe2bf3aa66bb3c26c449c13097de881b2cfc1bf052862c1ef7b03\n8862296162451b9b6b77f03bf32e6df71325e8d7485cf3335d66fd48b74c2a8334c241db8263033724f26269ad95b395\n901aa96deb26cda5d9321190ae6624d357a41729d72ef1abfd71bebf6139af6d690798daba53b7bc5923462115ff748a\n96c195ec4992728a1eb38cdde42d89a7bce150db43adbc9e61e279ea839e538deec71326b618dd39c50d589f78fc0614\nb6ff8b8aa0837b99a1a8b46fb37f20ad4aecc6a98381b1308697829a59b8442ffc748637a88cb30c9b1f0f28a926c4f6\n8d807e3dca9e7bef277db1d2cfb372408dd587364e8048b304eff00eacde2c723bfc84be9b98553f83cba5c7b3cba248\n8800c96adb0195c4fc5b24511450dee503c32bf47044f5e2e25bd6651f514d79a2dd9b01cd8c09f3c9d3859338490f57\n89fe366096097e38ec28dd1148887112efa5306cc0c3da09562aafa56f4eb000bf46ff79bf0bdd270cbde6bf0e1c8957\naf409a90c2776e1e7e3760b2042507b8709e943424606e31e791d42f17873a2710797f5baaab4cc4a19998ef648556b0\n8d761863c9b6edbd232d35ab853d944f5c950c2b643f84a1a1327ebb947290800710ff01dcfa26dc8e9828481240e8b1\n90b95e9be1e55c463ed857c4e0617d6dc3674e99b6aa62ed33c8e79d6dfcf7d122f4f4cc2ee3e7c5a49170cb617d2e2e\nb3ff381efefabc4db38cc4727432e0301949ae4f16f8d1dea9b4f4de611cf5a36d84290a0bef160dac4e1955e516b3b0\na8a84564b56a9003adcadb3565dc512239fc79572762cda7b5901a255bc82656bb9c01212ad33d6bef4fbbce18dacc87\n90a081890364b222eef54bf0075417f85e340d2fec8b7375995f598aeb33f26b44143ebf56fca7d8b4ebb36b5747b0eb\nade6ee49e1293224ddf2d8ab7f14bb5be6bc6284f60fd5b3a1e0cf147b73cff57cf19763b8a36c5083badc79c606b103\nb2fa99806dd2fa3de09320b615a2570c416c9bcdb052e592b0aead748bbe407ec9475a3d932ae48b71c2627eb81986a6\n91f3b7b73c8ccc9392542711c45fe6f236057e6efad587d661ad5cb4d6e88265f86b807bb1151736b1009ab74fd7acb4\n8800e2a46af96696dfbdcbf2ca2918b3dcf28ad970170d2d1783b52b8d945a9167d052beeb55f56c126da7ffa7059baa\n9862267a1311c385956b977c9aa08548c28d758d7ba82d43dbc3d0a0fd1b7a221d39e8399997fea9014ac509ff510ac4\nb7d24f78886fd3e2d283e18d9ad5a25c1a904e7d9b9104bf47da469d74f34162e27e531380dbbe0a9d051e6ffd51d6e7\nb0f445f9d143e28b9df36b0f2c052da87ee2ca374d9d0fbe2eff66ca6fe5fe0d2c1951b428d58f7314b7e74e45d445ea\nb63fc4083eabb8437dafeb6a904120691dcb53ce2938b820bb553da0e1eecd476f72495aacb72600cf9cad18698fd3db\nb9ffd8108eaebd582d665f8690fe8bb207fd85185e6dd9f0b355a09bac1bbff26e0fdb172bc0498df025414e88fe2eda\n967ed453e1f1a4c5b7b6834cc9f75c13f6889edc0cc91dc445727e9f408487bbf05c337103f61397a10011dfbe25d61d\n98ceb673aff36e1987d5521a3984a07079c3c6155974bb8b413e8ae1ce84095fe4f7862fba7aefa14753eb26f2a5805f\n85f01d28603a8fdf6ce6a50cb5c44f8a36b95b91302e3f4cd95c108ce8f4d212e73aec1b8d936520d9226802a2bd9136\n88118e9703200ca07910345fbb789e7a8f92bd80bbc79f0a9e040e8767d33df39f6eded403a9b636eabf9101e588482a\n90833a51eef1b10ed74e8f9bbd6197e29c5292e469c854eed10b0da663e2bceb92539710b1858bbb21887bd538d28d89\nb513b905ec19191167c6193067b5cfdf5a3d3828375360df1c7e2ced5815437dfd37f0c4c8f009d7fb29ff3c8793f560\nb1b6d405d2d18f9554b8a358cc7e2d78a3b34269737d561992c8de83392ac9a2857be4bf15de5a6c74e0c9d0f31f393c\nb828bd3e452b797323b798186607849f85d1fb20c616833c0619360dfd6b3e3aa000fd09dafe4b62d74abc41072ff1a9\n8efde67d0cca56bb2c464731879c9ac46a52e75bac702a63200a5e192b4f81c641f855ca6747752b84fe469cb7113b6c\nb2762ba1c89ac3c9a983c242e4d1c2610ff0528585ed5c0dfc8a2c0253551142af9b59f43158e8915a1da7cc26b9df67\n8a3f1157fb820d1497ef6b25cd70b7e16bb8b961b0063ad340d82a79ee76eb2359ca9e15e6d42987ed7f154f5eeaa2da\na75e29f29d38f09c879f971c11beb5368affa084313474a5ecafa2896180b9e47ea1995c2733ec46f421e395a1d9cffe\n8e8c3dd3e7196ef0b4996b531ec79e4a1f211db5d5635e48ceb80ff7568b2ff587e845f97ee703bb23a60945ad64314a\n8e7f32f4a3e3c584af5e3d406924a0aa34024c42eca74ef6cc2a358fd3c9efaf25f1c03aa1e66bb94b023a2ee2a1cace\nab7dce05d59c10a84feb524fcb62478906b3fa045135b23afbede3bb32e0c678d8ebe59feabccb5c8f3550ea76cae44b\nb38bb4b44d827f6fd3bd34e31f9186c59e312dbfadd4a7a88e588da10146a78b1f8716c91ad8b806beb8da65cab80c4c\n9490ce9442bbbd05438c7f5c4dea789f74a7e92b1886a730544b55ba377840740a3ae4f2f146ee73f47c9278b0e233bc\n83c003fab22a7178eed1a668e0f65d4fe38ef3900044e9ec63070c23f2827d36a1e73e5c2b883ec6a2afe2450171b3b3\n9982f02405978ddc4fca9063ebbdb152f524c84e79398955e66fe51bc7c1660ec1afc3a86ec49f58d7b7dde03505731c\nab337bd83ccdd2322088ffa8d005f450ced6b35790f37ab4534313315ee84312adc25e99cce052863a8bedee991729ed\n8312ce4bec94366d88f16127a17419ef64285cd5bf9e5eda010319b48085966ed1252ed2f5a9fd3e0259b91bb65f1827\na60d5a6327c4041b0c00a1aa2f0af056520f83c9ce9d9ccd03a0bd4d9e6a1511f26a422ea86bd858a1f77438adf07e6c\nb84a0a0b030bdad83cf5202aa9afe58c9820e52483ab41f835f8c582c129ee3f34aa096d11c1cd922eda02ea1196a882\n8077d105317f4a8a8f1aadeb05e0722bb55f11abcb490c36c0904401107eb3372875b0ac233144829e734f0c538d8c1d\n9202503bd29a6ec198823a1e4e098f9cfe359ed51eb5174d1ca41368821bfeebcbd49debfd02952c41359d1c7c06d2b1\nabc28c155e09365cb77ffead8dc8f602335ef93b2f44e4ef767ce8fc8ef9dd707400f3a722e92776c2e0b40192c06354\nb0f6d1442533ca45c9399e0a63a11f85ff288d242cea6cb3b68c02e77bd7d158047cae2d25b3bcd9606f8f66d9b32855\nb01c3d56a0db84dc94575f4b6ee2de4beca3230e86bed63e2066beb22768b0a8efb08ebaf8ac3dedb5fe46708b084807\n8c8634b0432159f66feaabb165842d1c8ac378f79565b1b90c381aa8450eb4231c3dad11ec9317b9fc2b155c3a771e32\n8e67f623d69ecd430c9ee0888520b6038f13a2b6140525b056dc0951f0cfed2822e62cf11d952a483107c5c5acac4826\n9590bb1cba816dd6acd5ac5fba5142c0a19d53573e422c74005e0bcf34993a8138c83124cad35a3df65879dba6134edd\n801cd96cde0749021a253027118d3ea135f3fcdbe895db08a6c145641f95ebd368dd6a1568d995e1d0084146aebe224a\n848b5d196427f6fc1f762ee3d36e832b64a76ec1033cfedc8b985dea93932a7892b8ef1035c653fb9dcd9ab2d9a44ac8\na1017eb83d5c4e2477e7bd2241b2b98c4951a3b391081cae7d75965cadc1acaec755cf350f1f3d29741b0828e36fedea\n8d6d2785e30f3c29aad17bd677914a752f831e96d46caf54446d967cb2432be2c849e26f0d193a60bee161ea5c6fe90a\n935c0ba4290d4595428e034b5c8001cbd400040d89ab00861108e8f8f4af4258e41f34a7e6b93b04bc253d3b9ffc13bf\naac02257146246998477921cef2e9892228590d323b839f3e64ea893b991b463bc2f47e1e5092ddb47e70b2f5bce7622\nb921fde9412970a5d4c9a908ae8ce65861d06c7679af577cf0ad0d5344c421166986bee471fd6a6cecb7d591f06ec985\n8ef4c37487b139d6756003060600bb6ebac7ea810b9c4364fc978e842f13ac196d1264fbe5af60d76ff6d9203d8e7d3f\n94b65e14022b5cf6a9b95f94be5ace2711957c96f4211c3f7bb36206bd39cfbd0ea82186cab5ad0577a23214a5c86e9e\na31c166d2a2ca1d5a75a5920fef7532681f62191a50d8555fdaa63ba4581c3391cc94a536fc09aac89f64eafceec3f90\n919a8cc128de01e9e10f5d83b08b52293fdd41bde2b5ae070f3d95842d4a16e5331cf2f3d61c765570c8022403610fa4\nb23d6f8331eef100152d60483cfa14232a85ee712c8538c9b6417a5a7c5b353c2ac401390c6c215cb101f5cee6b5f43e\nab357160c08a18319510a571eafff154298ce1020de8e1dc6138a09fcb0fcbcdd8359f7e9386bda00b7b9cdea745ffdc\nab55079aea34afa5c0bd1124b9cdfe01f325b402fdfa017301bf87812eaa811ea5798c3aaf818074d420d1c782b10ada\nade616010dc5009e7fc4f8d8b00dc716686a5fa0a7816ad9e503e15839d3b909b69d9dd929b7575376434ffec0d2bea8\n863997b97ed46898a8a014599508fa3079f414b1f4a0c4fdc6d74ae8b444afa350f327f8bfc2a85d27f9e2d049c50135\n8d602ff596334efd4925549ed95f2aa762b0629189f0df6dbb162581657cf3ea6863cd2287b4d9c8ad52813d87fcd235\nb70f68c596dcdeed92ad5c6c348578b26862a51eb5364237b1221e840c47a8702f0fbc56eb520a22c0eed99795d3903e\n9628088f8e0853cefadee305a8bf47fa990c50fa96a82511bbe6e5dc81ef4b794e7918a109070f92fc8384d77ace226f\n97e26a46e068b605ce96007197ecd943c9a23881862f4797a12a3e96ba2b8d07806ad9e2a0646796b1889c6b7d75188c\nb1edf467c068cc163e2d6413cc22b16751e78b3312fe47b7ea82b08a1206d64415b2c8f2a677fa89171e82cc49797150\na44d15ef18745b251429703e3cab188420e2d974de07251501799b016617f9630643fcd06f895634d8ecdd579e1bf000\nabd126df3917ba48c618ee4dbdf87df506193462f792874439043fa1b844466f6f4e0ff2e42516e63b5b23c0892b2695\na2a67f57c4aa3c2aa1eeddbfd5009a89c26c2ce8fa3c96a64626aba19514beb125f27df8559506f737de3eae0f1fc18f\na633e0132197e6038197304b296ab171f1d8e0d0f34dcf66fe9146ac385b0239232a8470b9205a4802ab432389f4836d\na914b3a28509a906c3821463b936455d58ff45dcbe158922f9efb2037f2eb0ce8e92532d29b5d5a3fcd0d23fa773f272\na0e1412ce4505daf1a2e59ce4f0fc0e0023e335b50d2b204422f57cd65744cc7a8ed35d5ef131a42c70b27111d3115b7\na2339e2f2b6072e88816224fdd612c04d64e7967a492b9f8829db15367f565745325d361fd0607b0def1be384d010d9e\na7309fc41203cb99382e8193a1dcf03ac190a7ce04835304eb7e341d78634e83ea47cb15b885601956736d04cdfcaa01\n81f3ccd6c7f5b39e4e873365f8c37b214e8ab122d04a606fbb7339dc3298c427e922ec7418002561d4106505b5c399ee\n92c121cf914ca549130e352eb297872a63200e99b148d88fbc9506ad882bec9d0203d65f280fb5b0ba92e336b7f932e8\na4b330cf3f064f5b131578626ad7043ce2a433b6f175feb0b52d36134a454ca219373fd30d5e5796410e005b69082e47\n86fe5774112403ad83f9c55d58317eeb17ad8e1176d9f2f69c2afb7ed83bc718ed4e0245ceab4b377f5f062dcd4c00e7\n809d152a7e2654c7fd175b57f7928365a521be92e1ed06c05188a95864ddb25f7cab4c71db7d61bbf4cae46f3a1d96ce\nb82d663e55c2a5ada7e169e9b1a87bc1c0177baf1ec1c96559b4cb1c5214ce1ddf2ab8d345014cab6402f3774235cf5a\n86580af86df1bd2c385adb8f9a079e925981b7184db66fc5fe5b14cddb82e7d836b06eaeef14924ac529487b23dae111\nb5f5f4c5c94944ecc804df6ab8687d64e27d988cbfeae1ba7394e0f6adbf778c5881ead7cd8082dd7d68542b9bb4ecd5\na6016916146c2685c46e8fdd24186394e2d5496e77e08c0c6a709d4cd7dfa97f1efcef94922b89196819076a91ad37b5\nb778e7367ded3b6eab53d5fc257f7a87e8faf74a593900f2f517220add2125be3f6142022660d8181df8d164ad9441ce\n8581b2d36abe6f553add4d24be761bec1b8efaa2929519114346615380b3c55b59e6ad86990e312f7e234d0203bdf59b\n9917e74fd45c3f71a829ff5498a7f6b5599b48c098dda2339bf04352bfc7f368ccf1a407f5835901240e76452ae807d7\nafd196ce6f9335069138fd2e3d133134da253978b4ce373152c0f26affe77a336505787594022e610f8feb722f7cc1fb\na477491a1562e329764645e8f24d8e228e5ef28c9f74c6b5b3abc4b6a562c15ffb0f680d372aed04d9e1bf944dece7be\n9767440d58c57d3077319d3a330e5322b9ba16981ec74a5a14d53462eab59ae7fd2b14025bfc63b268862094acb444e6\n80986d921be3513ef69264423f351a61cb48390c1be8673aee0f089076086aaebea7ebe268fd0aa7182695606116f679\na9554c5c921c07b450ee04e34ec58e054ac1541b26ce2ce5a393367a97348ba0089f53db6660ad76b60278b66fd12e3e\n95097e7d2999b3e84bf052c775581cf361325325f4a50192521d8f4693c830bed667d88f482dc1e3f833aa2bd22d2cbf\n9014c91d0f85aefd28436b5228c12f6353c055a9326c7efbf5e071e089e2ee7c070fcbc84c5fafc336cbb8fa6fec1ca1\n90f57ba36ee1066b55d37384942d8b57ae00f3cf9a3c1d6a3dfee1d1af42d4b5fa9baeb0cd7e46687d1d6d090ddb931d\n8e4b1db12fd760a17214c9e47f1fce6e43c0dbb4589a827a13ac61aaae93759345697bb438a00edab92e0b7b62414683\n8022a959a513cdc0e9c705e0fc04eafd05ff37c867ae0f31f6d01cddd5df86138a426cab2ff0ac8ff03a62e20f7e8f51\n914e9a38829834c7360443b8ed86137e6f936389488eccf05b4b4db7c9425611705076ecb3f27105d24b85c852be7511\n957fb10783e2bd0db1ba66b18e794df710bc3b2b05776be146fa5863c15b1ebdd39747b1a95d9564e1772cdfc4f37b8a\nb6307028444daed8ed785ac9d0de76bc3fe23ff2cc7e48102553613bbfb5afe0ebe45e4212a27021c8eb870721e62a1f\n8f76143597777d940b15a01b39c5e1b045464d146d9a30a6abe8b5d3907250e6c7f858ff2308f8591e8b0a7b3f3c568a\n96163138ac0ce5fd00ae9a289648fd9300a0ca0f63a88481d703ecd281c06a52a3b5178e849e331f9c85ca4ba398f4cc\na63ef47c3e18245b0482596a09f488a716df3cbd0f9e5cfabed0d742843e65db8961c556f45f49762f3a6ac8b627b3ef\n8cb595466552e7c4d42909f232d4063e0a663a8ef6f6c9b7ce3a0542b2459cde04e0e54c7623d404acb5b82775ac04f6\nb47fe69960eb45f399368807cff16d941a5a4ebad1f5ec46e3dc8a2e4d598a7e6114d8f0ca791e9720fd786070524e2b\n89eb5ff83eea9df490e5beca1a1fbbbbcf7184a37e2c8c91ede7a1e654c81e8cd41eceece4042ea7918a4f4646b67fd6\na84f5d155ed08b9054eecb15f689ba81e44589e6e7207a99790c598962837ca99ec12344105b16641ca91165672f7153\na6cc8f25c2d5b2d2f220ec359e6a37a52b95fa6af6e173c65e7cd55299eff4aa9e6d9e6f2769e6459313f1f2aecb0fab\nafcde944411f017a9f7979755294981e941cc41f03df5e10522ef7c7505e5f1babdd67b3bf5258e8623150062eb41d9b\n8fab39f39c0f40182fcd996ade2012643fe7731808afbc53f9b26900b4d4d1f0f5312d9d40b3df8baa4739970a49c732\nae193af9726da0ebe7df1f9ee1c4846a5b2a7621403baf8e66c66b60f523e719c30c6b4f897bb14b27d3ff3da8392eeb\n8ac5adb82d852eba255764029f42e6da92dcdd0e224d387d1ef94174038db9709ac558d90d7e7c57ad4ce7f89bbfc38c\na2066b3458fdf678ee487a55dd5bfb74fde03b54620cb0e25412a89ee28ad0d685e309a51e3e4694be2fa6f1593a344c\n88d031745dd0ae07d61a15b594be5d4b2e2a29e715d081649ad63605e3404b0c3a5353f0fd9fad9c05c18e93ce674fa1\n8283cfb0ef743a043f2b77ecaeba3005e2ca50435585b5dd24777ee6bce12332f85e21b446b536da38508807f0f07563\nb376de22d5f6b0af0b59f7d9764561f4244cf8ffe22890ecd3dcf2ff1832130c9b821e068c9d8773136f4796721e5963\nae3afc50c764f406353965363840bf28ee85e7064eb9d5f0bb3c31c64ab10f48c853e942ee2c9b51bae59651eaa08c2f\n948b204d103917461a01a6c57a88f2d66b476eae5b00be20ec8c747650e864bc8a83aee0aff59cb7584b7a3387e0ee48\n81ab098a082b07f896c5ffd1e4446cb7fb44804cbbf38d125208b233fc82f8ec9a6a8d8dd1c9a1162dc28ffeec0dde50\na149c6f1312821ced2969268789a3151bdda213451760b397139a028da609c4134ac083169feb0ee423a0acafd10eceb\nb0ac9e27a5dadaf523010f730b28f0ebac01f460d3bbbe277dc9d44218abb5686f4fac89ae462682fef9edbba663520a\n8d0e0073cca273daaaa61b6fc54bfe5a009bc3e20ae820f6c93ba77b19eca517d457e948a2de5e77678e4241807157cb\nad61d3a2edf7c7533a04964b97499503fd8374ca64286dba80465e68fe932e96749b476f458c6fc57cb1a7ca85764d11\n90eb5e121ae46bc01a30881eaa556f46bd8457a4e80787cf634aab355082de34ac57d7f497446468225f7721e68e2a47\n8cdac557de7c42d1f3780e33dec1b81889f6352279be81c65566cdd4952d4c15d79e656cbd46035ab090b385e90245ef\n82b67e61b88b84f4f4d4f65df37b3e3dcf8ec91ea1b5c008fdccd52da643adbe6468a1cfdb999e87d195afe2883a3b46\n8503b467e8f5d6048a4a9b78496c58493a462852cab54a70594ae3fd064cfd0deb4b8f336a262155d9fedcaa67d2f6fd\n8db56c5ac763a57b6ce6832930c57117058e3e5a81532b7d19346346205e2ec614eb1a2ee836ef621de50a7bc9b7f040\nad344699198f3c6e8c0a3470f92aaffc805b76266734414c298e10b5b3797ca53578de7ccb2f458f5e0448203f55282b\n80602032c43c9e2a09154cc88b83238343b7a139f566d64cb482d87436b288a98f1ea244fd3bff8da3c398686a900c14\na6385bd50ecd548cfb37174cdbb89e10025b5cadaf3cff164c95d7aef5a33e3d6a9bf0c681b9e11db9ef54ebeee2a0c1\nabf2d95f4aa34b0581eb9257a0cc8462b2213941a5deb8ba014283293e8b36613951b61261cc67bbd09526a54cbbff76\na3d5de52f48df72c289ff713e445991f142390798cd42bd9d9dbefaee4af4f5faf09042d126b975cf6b98711c3072553\n8e627302ff3d686cff8872a1b7c2a57b35f45bf2fc9aa42b049d8b4d6996a662b8e7cbac6597f0cb79b0cc4e29fbf133\n8510702e101b39a1efbf4e504e6123540c34b5689645e70d0bac1ecc1baf47d86c05cef6c4317a4e99b4edaeb53f2d00\naa173f0ecbcc6088f878f8726d317748c81ebf501bba461f163b55d66099b191ec7c55f7702f351a9c8eb42cfa3280e2\nb560a697eafab695bcef1416648a0a664a71e311ecbe5823ae903bd0ed2057b9d7574b9a86d3fe22aa3e6ddce38ea513\n8df6304a3d9cf40100f3f687575419c998cd77e5cc27d579cf4f8e98642de3609af384a0337d145dd7c5635172d26a71\n8105c7f3e4d30a29151849673853b457c1885c186c132d0a98e63096c3774bc9deb956cf957367e633d0913680bda307\n95373fc22c0917c3c2044ac688c4f29a63ed858a45c0d6d2d0fe97afd6f532dcb648670594290c1c89010ecc69259bef\n8c2fae9bcadab341f49b55230310df93cac46be42d4caa0d42e45104148a91e527af1b4209c0d972448162aed28fab64\nb05a77baab70683f76209626eaefdda2d36a0b66c780a20142d23c55bd479ddd4ad95b24579384b6cf62c8eb4c92d021\n8e6bc6a7ea2755b4aaa19c1c1dee93811fcde514f03485fdc3252f0ab7f032c315614f6336e57cea25dcfb8fb6084eeb\nb656a27d06aade55eadae2ad2a1059198918ea6cc3fd22c0ed881294d34d5ac7b5e4700cc24350e27d76646263b223aa\na296469f24f6f56da92d713afcd4dd606e7da1f79dc4e434593c53695847eefc81c7c446486c4b3b8c8d00c90c166f14\n87a326f57713ac2c9dffeb3af44b9f3c613a8f952676fc46343299122b47ee0f8d792abaa4b5db6451ced5dd153aabd0\nb689e554ba9293b9c1f6344a3c8fcb6951d9f9eac4a2e2df13de021aade7c186be27500e81388e5b8bcab4c80f220a31\n87ae0aa0aa48eac53d1ca5a7b93917de12db9e40ceabf8fdb40884ae771cfdf095411deef7c9f821af0b7070454a2608\na71ffa7eae8ace94e6c3581d4cb2ad25d48cbd27edc9ec45baa2c8eb932a4773c3272b2ffaf077b40f76942a1f3af7f2\n94c218c91a9b73da6b7a495b3728f3028df8ad9133312fc0c03e8c5253b7ccb83ed14688fd4602e2fd41f29a0bc698bd\nae1e77b90ca33728af07a4c03fb2ef71cd92e2618e7bf8ed4d785ce90097fc4866c29999eb84a6cf1819d75285a03af2\nb7a5945b277dab9993cf761e838b0ac6eaa903d7111fca79f9fde3d4285af7a89bf6634a71909d095d7619d913972c9c\n8c43b37be02f39b22029b20aca31bff661abce4471dca88aa3bddefd9c92304a088b2dfc8c4795acc301ca3160656af2\nb32e5d0fba024554bd5fe8a793ebe8003335ddd7f585876df2048dcf759a01285fecb53daae4950ba57f3a282a4d8495\n85ea7fd5e10c7b659df5289b2978b2c89e244f269e061b9a15fcab7983fc1962b63546e82d5731c97ec74b6804be63ef\n96b89f39181141a7e32986ac02d7586088c5a9662cec39843f397f3178714d02f929af70630c12cbaba0268f8ba2d4fa\n929ab1a2a009b1eb37a2817c89696a06426529ebe3f306c586ab717bd34c35a53eca2d7ddcdef36117872db660024af9\na696dccf439e9ca41511e16bf3042d7ec0e2f86c099e4fc8879d778a5ea79e33aa7ce96b23dc4332b7ba26859d8e674d\na8fe69a678f9a194b8670a41e941f0460f6e2dbc60470ab4d6ae2679cc9c6ce2c3a39df2303bee486dbfde6844e6b31a\n95f58f5c82de2f2a927ca99bf63c9fc02e9030c7e46d0bf6b67fe83a448d0ae1c99541b59caf0e1ccab8326231af09a5\na57badb2c56ca2c45953bd569caf22968f76ed46b9bac389163d6fe22a715c83d5e94ae8759b0e6e8c2f27bff7748f3f\n868726fd49963b24acb5333364dffea147e98f33aa19c7919dc9aca0fd26661cfaded74ede7418a5fadbe7f5ae67b67b\na8d8550dcc64d9f1dd7bcdab236c4122f2b65ea404bb483256d712c7518f08bb028ff8801f1da6aed6cbfc5c7062e33b\n97e25a87dae23155809476232178538d4bc05d4ff0882916eb29ae515f2a62bfce73083466cc0010ca956aca200aeacc\nb4ea26be3f4bd04aa82d7c4b0913b97bcdf5e88b76c57eb1a336cbd0a3eb29de751e1bc47c0e8258adec3f17426d0c71\n99ee555a4d9b3cf2eb420b2af8e3bc99046880536116d0ce7193464ac40685ef14e0e3c442f604e32f8338cb0ef92558\n8c64efa1da63cd08f319103c5c7a761221080e74227bbc58b8fb35d08aa42078810d7af3e60446cbaff160c319535648\n8d9fd88040076c28420e3395cbdfea402e4077a3808a97b7939d49ecbcf1418fe50a0460e1c1b22ac3f6e7771d65169a\nae3c19882d7a9875d439265a0c7003c8d410367627d21575a864b9cb4918de7dbdb58a364af40c5e045f3df40f95d337\nb4f7bfacab7b2cafe393f1322d6dcc6f21ffe69cd31edc8db18c06f1a2b512c27bd0618091fd207ba8df1808e9d45914\n94f134acd0007c623fb7934bcb65ef853313eb283a889a3ffa79a37a5c8f3665f3d5b4876bc66223610c21dc9b919d37\naa15f74051171daacdc1f1093d3f8e2d13da2833624b80a934afec86fc02208b8f55d24b7d66076444e7633f46375c6a\na32d6bb47ef9c836d9d2371807bafbbbbb1ae719530c19d6013f1d1f813c49a60e4fa51d83693586cba3a840b23c0404\nb61b3599145ea8680011aa2366dc511a358b7d67672d5b0c5be6db03b0efb8ca5a8294cf220ea7409621f1664e00e631\n859cafc3ee90b7ececa1ed8ef2b2fc17567126ff10ca712d5ffdd16aa411a5a7d8d32c9cab1fbf63e87dce1c6e2f5f53\na2fef1b0b2874387010e9ae425f3a9676d01a095d017493648bcdf3b31304b087ccddb5cf76abc4e1548b88919663b6b\n939e18c73befc1ba2932a65ede34c70e4b91e74cc2129d57ace43ed2b3af2a9cc22a40fbf50d79a63681b6d98852866d\nb3b4259d37b1b14aee5b676c9a0dd2d7f679ab95c120cb5f09f9fbf10b0a920cb613655ddb7b9e2ba5af4a221f31303c\n997255fe51aaca6e5a9cb3359bcbf25b2bb9e30649bbd53a8a7c556df07e441c4e27328b38934f09c09d9500b5fabf66\nabb91be2a2d860fd662ed4f1c6edeefd4da8dc10e79251cf87f06029906e7f0be9b486462718f0525d5e049472692cb7\nb2398e593bf340a15f7801e1d1fbda69d93f2a32a889ec7c6ae5e8a37567ac3e5227213c1392ee86cfb3b56ec2787839\n8ddf10ccdd72922bed36829a36073a460c2118fc7a56ff9c1ac72581c799b15c762cb56cb78e3d118bb9f6a7e56cb25e\n93e6bc0a4708d16387cacd44cf59363b994dc67d7ada7b6d6dbd831c606d975247541b42b2a309f814c1bfe205681fc6\nb93fc35c05998cffda2978e12e75812122831523041f10d52f810d34ff71944979054b04de0117e81ddf5b0b4b3e13c0\n92221631c44d60d68c6bc7b287509f37ee44cbe5fdb6935cee36b58b17c7325098f98f7910d2c3ca5dc885ad1d6dabc7\na230124424a57fad3b1671f404a94d7c05f4c67b7a8fbacfccea28887b78d7c1ed40b92a58348e4d61328891cd2f6cee\na6a230edb8518a0f49d7231bc3e0bceb5c2ac427f045819f8584ba6f3ae3d63ed107a9a62aad543d7e1fcf1f20605706\n845be1fe94223c7f1f97d74c49d682472585d8f772762baad8a9d341d9c3015534cc83d102113c51a9dea2ab10d8d27b\nb44262515e34f2db597c8128c7614d33858740310a49cdbdf9c8677c5343884b42c1292759f55b8b4abc4c86e4728033\n805592e4a3cd07c1844bc23783408310accfdb769cca882ad4d07d608e590a288b7370c2cb327f5336e72b7083a0e30f\n95153e8b1140df34ee864f4ca601cb873cdd3efa634af0c4093fbaede36f51b55571ab271e6a133020cd34db8411241f\n82878c1285cfa5ea1d32175c9401f3cc99f6bb224d622d3fd98cc7b0a27372f13f7ab463ce3a33ec96f9be38dbe2dfe3\nb7588748f55783077c27fc47d33e20c5c0f5a53fc0ac10194c003aa09b9f055d08ec971effa4b7f760553997a56967b3\nb36b4de6d1883b6951f59cfae381581f9c6352fcfcf1524fccdab1571a20f80441d9152dc6b48bcbbf00371337ca0bd5\n89c5523f2574e1c340a955cbed9c2f7b5fbceb260cb1133160dabb7d41c2f613ec3f6e74bbfab3c4a0a6f0626dbe068f\na52f58cc39f968a9813b1a8ddc4e83f4219e4dd82c7aa1dd083bea7edf967151d635aa9597457f879771759b876774e4\n8300a67c2e2e123f89704abfde095463045dbd97e20d4c1157bab35e9e1d3d18f1f4aaba9cbe6aa2d544e92578eaa1b6\nac6a7f2918768eb6a43df9d3a8a04f8f72ee52f2e91c064c1c7d75cad1a3e83e5aba9fe55bb94f818099ac91ccf2e961\n8d64a2b0991cf164e29835c8ddef6069993a71ec2a7de8157bbfa2e00f6367be646ed74cbaf524f0e9fe13fb09fa15fd\n8b2ffe5a545f9f680b49d0a9797a4a11700a2e2e348c34a7a985fc278f0f12def6e06710f40f9d48e4b7fbb71e072229\n8ab8f71cd337fa19178924e961958653abf7a598e3f022138b55c228440a2bac4176cea3aea393549c03cd38a13eb3fc\n8419d28318c19ea4a179b7abb43669fe96347426ef3ac06b158d79c0acf777a09e8e770c2fb10e14b3a0421705990b23\n8bacdac310e1e49660359d0a7a17fe3d334eb820e61ae25e84cb52f863a2f74cbe89c2e9fc3283745d93a99b79132354\nb57ace3fa2b9f6b2db60c0d861ace7d7e657c5d35d992588aeed588c6ce3a80b6f0d49f8a26607f0b17167ab21b675e4\n83e265cde477f2ecc164f49ddc7fb255bb05ff6adc347408353b7336dc3a14fdedc86d5a7fb23f36b8423248a7a67ed1\na60ada971f9f2d79d436de5d3d045f5ab05308cae3098acaf5521115134b2a40d664828bb89895840db7f7fb499edbc5\na63eea12efd89b62d3952bf0542a73890b104dd1d7ff360d4755ebfa148fd62de668edac9eeb20507967ea37fb220202\na0275767a270289adc991cc4571eff205b58ad6d3e93778ddbf95b75146d82517e8921bd0d0564e5b75fa0ccdab8e624\nb9b03fd3bf07201ba3a039176a965d736b4ef7912dd9e9bf69fe1b57c330a6aa170e5521fe8be62505f3af81b41d7806\na95f640e26fb1106ced1729d6053e41a16e4896acac54992279ff873e5a969aad1dcfa10311e28b8f409ac1dab7f03bb\nb144778921742418053cb3c70516c63162c187f00db2062193bb2c14031075dbe055d020cde761b26e8c58d0ea6df2c1\n8432fbb799e0435ef428d4fefc309a05dd589bce74d7a87faf659823e8c9ed51d3e42603d878e80f439a38be4321c2fa\nb08ddef14e42d4fd5d8bf39feb7485848f0060d43b51ed5bdda39c05fe154fb111d29719ee61a23c392141358c0cfcff\n8ae3c5329a5e025b86b5370e06f5e61177df4bda075856fade20a17bfef79c92f54ed495f310130021ba94fb7c33632b\n92b6d3c9444100b4d7391febfc1dddaa224651677c3695c47a289a40d7a96d200b83b64e6d9df51f534564f272a2c6c6\nb432bc2a3f93d28b5e506d68527f1efeb2e2570f6be0794576e2a6ef9138926fdad8dd2eabfa979b79ab7266370e86bc\n8bc315eacedbcfc462ece66a29662ca3dcd451f83de5c7626ef8712c196208fb3d8a0faf80b2e80384f0dd9772f61a23\na72375b797283f0f4266dec188678e2b2c060dfed5880fc6bb0c996b06e91a5343ea2b695adaab0a6fd183b040b46b56\na43445036fbaa414621918d6a897d3692fdae7b2961d87e2a03741360e45ebb19fcb1703d23f1e15bb1e2babcafc56ac\nb9636b2ffe305e63a1a84bd44fb402442b1799bd5272638287aa87ca548649b23ce8ce7f67be077caed6aa2dbc454b78\n99a30bf0921d854c282b83d438a79f615424f28c2f99d26a05201c93d10378ab2cd94a792b571ddae5d4e0c0013f4006\n8648e3c2f93d70b392443be116b48a863e4b75991bab5db656a4ef3c1e7f645e8d536771dfe4e8d1ceda3be8d32978b0\nab50dc9e6924c1d2e9d2e335b2d679fc7d1a7632e84964d3bac0c9fe57e85aa5906ec2e7b0399d98ddd022e9b19b5904\nab729328d98d295f8f3272afaf5d8345ff54d58ff9884da14f17ecbdb7371857fdf2f3ef58080054e9874cc919b46224\n83fa5da7592bd451cad3ad7702b4006332b3aae23beab4c4cb887fa6348317d234bf62a359e665b28818e5410c278a09\n8bdbff566ae9d368f114858ef1f009439b3e9f4649f73efa946e678d6c781d52c69af195df0a68170f5f191b2eac286b\n91245e59b4425fd4edb2a61d0d47c1ccc83d3ced8180de34887b9655b5dcda033d48cde0bdc3b7de846d246c053a02e8\na2cb00721e68f1cad8933947456f07144dc69653f96ceed845bd577d599521ba99cdc02421118971d56d7603ed118cbf\naf8cd66d303e808b22ec57860dd909ca64c27ec2c60e26ffecfdc1179d8762ffd2739d87b43959496e9fee4108df71df\n9954136812dffcd5d3f167a500e7ab339c15cfc9b3398d83f64b0daa3dd5b9a851204f424a3493b4e326d3de81e50a62\n93252254d12511955f1aa464883ad0da793f84d900fea83e1df8bca0f2f4cf5b5f9acbaec06a24160d33f908ab5fea38\n997cb55c26996586ba436a95566bd535e9c22452ca5d2a0ded2bd175376557fa895f9f4def4519241ff386a063f2e526\na12c78ad451e0ac911260ade2927a768b50cb4125343025d43474e7f465cdc446e9f52a84609c5e7e87ae6c9b3f56cda\na789d4ca55cbba327086563831b34487d63d0980ba8cf55197c016702ed6da9b102b1f0709ce3da3c53ff925793a3d73\na5d76acbb76741ce85be0e655b99baa04f7f587347947c0a30d27f8a49ae78cce06e1cde770a8b618d3db402be1c0c4b\n873c0366668c8faddb0eb7c86f485718d65f8c4734020f1a18efd5fa123d3ea8a990977fe13592cd01d17e60809cb5ff\nb659b71fe70f37573ff7c5970cc095a1dc0da3973979778f80a71a347ef25ad5746b2b9608bad4ab9a4a53a4d7df42d7\na34cbe05888e5e5f024a2db14cb6dcdc401a9cbd13d73d3c37b348f68688f87c24ca790030b8f84fef9e74b4eab5e412\n94ce8010f85875c045b0f014db93ef5ab9f1f6842e9a5743dce9e4cb872c94affd9e77c1f1d1ab8b8660b52345d9acb9\nadefa9b27a62edc0c5b019ddd3ebf45e4de846165256cf6329331def2e088c5232456d3de470fdce3fa758bfdd387512\na6b83821ba7c1f83cc9e4529cf4903adb93b26108e3d1f20a753070db072ad5a3689643144bdd9c5ea06bb9a7a515cd0\na3a9ddedc2a1b183eb1d52de26718151744db6050f86f3580790c51d09226bf05f15111691926151ecdbef683baa992c\na64bac89e7686932cdc5670d07f0b50830e69bfb8c93791c87c7ffa4913f8da881a9d8a8ce8c1a9ce5b6079358c54136\na77b5a63452cb1320b61ab6c7c2ef9cfbcade5fd4727583751fb2bf3ea330b5ca67757ec1f517bf4d503ec924fe32fbd\n8746fd8d8eb99639d8cd0ca34c0d9c3230ed5a312aab1d3d925953a17973ee5aeb66e68667e93caf9cb817c868ea8f3d\n88a2462a26558fc1fbd6e31aa8abdc706190a17c27fdc4217ffd2297d1b1f3321016e5c4b2384c5454d5717dc732ed03\nb78893a97e93d730c8201af2e0d3b31cb923d38dc594ffa98a714e627c473d42ea82e0c4d2eeb06862ee22a9b2c54588\n920cc8b5f1297cf215a43f6fc843e379146b4229411c44c0231f6749793d40f07b9af7699fd5d21fd69400b97febe027\na0f0eafce1e098a6b58c7ad8945e297cd93aaf10bc55e32e2e32503f02e59fc1d5776936577d77c0b1162cb93b88518b\n98480ba0064e97a2e7a6c4769b4d8c2a322cfc9a3b2ca2e67e9317e2ce04c6e1108169a20bd97692e1cb1f1423b14908\n83dbbb2fda7e287288011764a00b8357753a6a44794cc8245a2275237f11affdc38977214e463ad67aec032f3dfa37e9\n86442fff37598ce2b12015ff19b01bb8a780b40ad353d143a0f30a06f6d23afd5c2b0a1253716c855dbf445cc5dd6865\nb8a4c60c5171189414887847b9ed9501bff4e4c107240f063e2d254820d2906b69ef70406c585918c4d24f1dd052142b\n919f33a98e84015b2034b57b5ffe9340220926b2c6e45f86fd79ec879dbe06a148ae68b77b73bf7d01bd638a81165617\n95c13e78d89474a47fbc0664f6f806744b75dede95a479bbf844db4a7f4c3ae410ec721cb6ffcd9fa9c323da5740d5ae\nab7151acc41fffd8ec6e90387700bcd7e1cde291ea669567295bea1b9dd3f1df2e0f31f3588cd1a1c08af8120aca4921\n80e74c5c47414bd6eeef24b6793fb1fa2d8fb397467045fcff887c52476741d5bc4ff8b6d3387cb53ad285485630537f\na296ad23995268276aa351a7764d36df3a5a3cffd7dbeddbcea6b1f77adc112629fdeffa0918b3242b3ccd5e7587e946\n813d2506a28a2b01cb60f49d6bd5e63c9b056aa56946faf2f33bd4f28a8d947569cfead3ae53166fc65285740b210f86\n924b265385e1646287d8c09f6c855b094daaee74b9e64a0dddcf9ad88c6979f8280ba30c8597b911ef58ddb6c67e9fe3\n8d531513c70c2d3566039f7ca47cd2352fd2d55b25675a65250bdb8b06c3843db7b2d29c626eed6391c238fc651cf350\n82b338181b62fdc81ceb558a6843df767b6a6e3ceedc5485664b4ea2f555904b1a45fbb35f6cf5d96f27da10df82a325\n92e62faaedea83a37f314e1d3cb4faaa200178371d917938e59ac35090be1db4b4f4e0edb78b9c991de202efe4f313d8\n99d645e1b642c2dc065bac9aaa0621bc648c9a8351efb6891559c3a41ba737bd155fb32d7731950514e3ecf4d75980e4\nb34a13968b9e414172fb5d5ece9a39cf2eb656128c3f2f6cc7a9f0c69c6bae34f555ecc8f8837dc34b5e470e29055c78\na2a0bb7f3a0b23a2cbc6585d59f87cd7e56b2bbcb0ae48f828685edd9f7af0f5edb4c8e9718a0aaf6ef04553ba71f3b7\n8e1a94bec053ed378e524b6685152d2b52d428266f2b6eadd4bcb7c4e162ed21ab3e1364879673442ee2162635b7a4d8\n9944adaff14a85eab81c73f38f386701713b52513c4d4b838d58d4ffa1d17260a6d056b02334850ea9a31677c4b078bd\na450067c7eceb0854b3eca3db6cf38669d72cb7143c3a68787833cbca44f02c0be9bfbe082896f8a57debb13deb2afb1\n8be4ad3ac9ef02f7df09254d569939757101ee2eda8586fefcd8c847adc1efe5bdcb963a0cafa17651befaafb376a531\n90f6de91ea50255f148ac435e08cf2ac00c772a466e38155bd7e8acf9197af55662c7b5227f88589b71abe9dcf7ba343\n86e5a24f0748b106dee2d4d54e14a3b0af45a96cbee69cac811a4196403ebbee17fd24946d7e7e1b962ac7f66dbaf610\nafdd96fbcda7aa73bf9eeb2292e036c25753d249caee3b9c013009cc22e10d3ec29e2aa6ddbb21c4e949b0c0bccaa7f4\nb5a4e7436d5473647c002120a2cb436b9b28e27ad4ebdd7c5f122b91597c507d256d0cbd889d65b3a908531936e53053\nb632414c3da704d80ac2f3e5e0e9f18a3637cdc2ebeb613c29300745582427138819c4e7b0bec3099c1b8739dac1807b\na28df1464d3372ce9f37ef1db33cc010f752156afae6f76949d98cd799c0cf225c20228ae86a4da592d65f0cffe3951b\n898b93d0a31f7d3f11f253cb7a102db54b669fd150da302d8354d8e02b1739a47cb9bd88015f3baf12b00b879442464e\n96fb88d89a12049091070cb0048a381902965e67a8493e3991eaabe5d3b7ff7eecd5c94493a93b174df3d9b2c9511755\nb899cb2176f59a5cfba3e3d346813da7a82b03417cad6342f19cc8f12f28985b03bf031e856a4743fd7ebe16324805b0\na60e2d31bc48e0c0579db15516718a03b73f5138f15037491f4dae336c904e312eda82d50862f4debd1622bb0e56d866\n979fc8b987b5cef7d4f4b58b53a2c278bd25a5c0ea6f41c715142ea5ff224c707de38451b0ad3aa5e749aa219256650a\nb2a75bff18e1a6b9cf2a4079572e41205741979f57e7631654a3c0fcec57c876c6df44733c9da3d863db8dff392b44a3\nb7a0f0e811222c91e3df98ff7f286b750bc3b20d2083966d713a84a2281744199e664879401e77470d44e5a90f3e5181\n82b74ba21c9d147fbc338730e8f1f8a6e7fc847c3110944eb17a48bea5e06eecded84595d485506d15a3e675fd0e5e62\na7f44eef817d5556f0d1abcf420301217d23c69dd2988f44d91ea1f1a16c322263cbacd0f190b9ba22b0f141b9267b4f\naadb68164ede84fc1cb3334b3194d84ba868d5a88e4c9a27519eef4923bc4abf81aab8114449496c073c2a6a0eb24114\nb5378605fabe9a8c12a5dc55ef2b1de7f51aedb61960735c08767a565793cea1922a603a6983dc25f7cea738d0f7c40d\na97a4a5cd8d51302e5e670aee78fe6b5723f6cc892902bbb4f131e82ca1dfd5de820731e7e3367fb0c4c1922a02196e3\n8bdfeb15c29244d4a28896f2b2cb211243cd6a1984a3f5e3b0ebe5341c419beeab3304b390a009ffb47588018034b0ea\na9af3022727f2aa2fca3b096968e97edad3f08edcbd0dbca107b892ae8f746a9c0485e0d6eb5f267999b23a845923ed0\n8e7594034feef412f055590fbb15b6322dc4c6ab7a4baef4685bd13d71a83f7d682b5781bdfa0d1c659489ce9c2b8000\n84977ca6c865ebee021c58106c1a4ad0c745949ecc5332948002fd09bd9b890524878d0c29da96fd11207621136421fe\n8687551a79158e56b2375a271136756313122132a6670fa51f99a1b5c229ed8eea1655a734abae13228b3ebfd2a825dd\na0227d6708979d99edfc10f7d9d3719fd3fc68b0d815a7185b60307e4c9146ad2f9be2b8b4f242e320d4288ceeb9504c\n89f75583a16735f9dd8b7782a130437805b34280ccea8dac6ecaee4b83fe96947e7b53598b06fecfffdf57ffc12cc445\na0056c3353227f6dd9cfc8e3399aa5a8f1d71edf25d3d64c982910f50786b1e395c508d3e3727ac360e3e040c64b5298\nb070e61a6d813626144b312ded1788a6d0c7cec650a762b2f8df6e4743941dd82a2511cd956a3f141fc81e15f4e092da\nb4e6db232e028a1f989bb5fc13416711f42d389f63564d60851f009dcffac01acfd54efa307aa6d4c0f932892d4e62b0\n89b5991a67db90024ddd844e5e1a03ef9b943ad54194ae0a97df775dde1addf31561874f4e40fbc37a896630f3bbda58\nad0e8442cb8c77d891df49cdb9efcf2b0d15ac93ec9be1ad5c3b3cca1f4647b675e79c075335c1f681d56f14dc250d76\nb5d55a6ae65bb34dd8306806cb49b5ccb1c83a282ee47085cf26c4e648e19a52d9c422f65c1cd7e03ca63e926c5e92ea\nb749501347e5ec07e13a79f0cb112f1b6534393458b3678a77f02ca89dca973fa7b30e55f0b25d8b92b97f6cb0120056\n94144b4a3ffc5eec6ba35ce9c245c148b39372d19a928e236a60e27d7bc227d18a8cac9983851071935d8ffb64b3a34f\n92bb4f9f85bc8c028a3391306603151c6896673135f8a7aefedd27acb322c04ef5dac982fc47b455d6740023e0dd3ea3\nb9633a4a101461a782fc2aa092e9dbe4e2ad00987578f18cd7cf0021a909951d60fe79654eb7897806795f93c8ff4d1c\n809f0196753024821b48a016eca5dbb449a7c55750f25981bb7a4b4c0e0846c09b8f6128137905055fc43a3f0deb4a74\na27dc9cdd1e78737a443570194a03d89285576d3d7f3a3cf15cc55b3013e42635d4723e2e8fe1d0b274428604b630db9\n861f60f0462e04cd84924c36a28163def63e777318d00884ab8cb64c8df1df0bce5900342163edb60449296484a6c5bf\nb7bc23fb4e14af4c4704a944253e760adefeca8caee0882b6bbd572c84434042236f39ae07a8f21a560f486b15d82819\nb9a6eb492d6dd448654214bd01d6dc5ff12067a11537ab82023fc16167507ee25eed2c91693912f4155d1c07ed9650b3\n97678af29c68f9a5e213bf0fb85c265303714482cfc4c2c00b4a1e8a76ed08834ee6af52357b143a1ca590fb0265ea5a\n8a15b499e9eca5b6cac3070b5409e8296778222018ad8b53a5d1f6b70ad9bb10c68a015d105c941ed657bf3499299e33\nb487fefede2e8091f2c7bfe85770db2edff1db83d4effe7f7d87bff5ab1ace35e9b823a71adfec6737fede8d67b3c467\n8b51b916402aa2c437fce3bcad6dad3be8301a1a7eab9d163085b322ffb6c62abf28637636fe6114573950117fc92898\nb06a2106d031a45a494adec0881cb2f82275dff9dcdd2bc16807e76f3bec28a6734edd3d54f0be8199799a78cd6228ad\naf0a185391bbe2315eb97feac98ad6dd2e5d931d012c621abd6e404a31cc188b286fef14871762190acf086482b2b5e2\n8e78ee8206506dd06eb7729e32fceda3bebd8924a64e4d8621c72e36758fda3d0001af42443851d6c0aea58562870b43\na1ba52a569f0461aaf90b49b92be976c0e73ec4a2c884752ee52ffb62dd137770c985123d405dfb5de70692db454b54a\n8d51b692fa1543c51f6b62b9acb8625ed94b746ef96c944ca02859a4133a5629da2e2ce84e111a7af8d9a5b836401c64\na7a20d45044cf6492e0531d0b8b26ffbae6232fa05a96ed7f06bdb64c2b0f5ca7ec59d5477038096a02579e633c7a3ff\n84df867b98c53c1fcd4620fef133ee18849c78d3809d6aca0fb6f50ff993a053a455993f216c42ab6090fa5356b8d564\na7227c439f14c48e2577d5713c97a5205feb69acb0b449152842e278fa71e8046adfab468089c8b2288af1fc51fa945b\n855189b3a105670779997690876dfaa512b4a25a24931a912c2f0f1936971d2882fb4d9f0b3d9daba77eaf660e9d05d5\nb5696bd6706de51c502f40385f87f43040a5abf99df705d6aac74d88c913b8ecf7a99a63d7a37d9bdf3a941b9e432ff5\nab997beb0d6df9c98d5b49864ef0b41a2a2f407e1687dfd6089959757ba30ed02228940b0e841afe6911990c74d536c4\nb36b65f85546ebfdbe98823d5555144f96b4ab39279facd19c0de3b8919f105ba0315a0784dce4344b1bc62d8bb4a5a3\nb8371f0e4450788720ac5e0f6cd3ecc5413d33895083b2c168d961ec2b5c3de411a4cc0712481cbe8df8c2fa1a7af006\n98325d8026b810a8b7a114171ae59a57e8bbc9848e7c3df992efc523621729fd8c9f52114ce01d7730541a1ada6f1df1\n8d0e76dbd37806259486cd9a31bc8b2306c2b95452dc395546a1042d1d17863ef7a74c636b782e214d3aa0e8d717f94a\na4e15ead76da0214d702c859fb4a8accdcdad75ed08b865842bd203391ec4cba2dcc916455e685f662923b96ee0c023f\n8618190972086ebb0c4c1b4a6c94421a13f378bc961cc8267a301de7390c5e73c3333864b3b7696d81148f9d4843fd02\n85369d6cc7342e1aa15b59141517d8db8baaaeb7ab9670f3ba3905353948d575923d283b7e5a05b13a30e7baf1208a86\n87c51ef42233c24a6da901f28c9a075d9ba3c625687c387ad6757b72ca6b5a8885e6902a3082da7281611728b1e45f26\naa6348a4f71927a3106ad0ea8b02fc8d8c65531e4ab0bd0a17243e66f35afe252e40ab8eef9f13ae55a72566ffdaff5c\n96a3bc976e9d03765cc3fee275fa05b4a84c94fed6b767e23ca689394501e96f56f7a97cffddc579a6abff632bf153be\n97dbf96c6176379fdb2b888be4e757b2bca54e74124bd068d3fa1dbd82a011bbeb75079da38e0cd22a761fe208ecad9b\nb70cf0a1d14089a4129ec4e295313863a59da8c7e26bf74cc0e704ed7f0ee4d7760090d0ddf7728180f1bf2c5ac64955\n882d664714cc0ffe53cbc9bef21f23f3649824f423c4dbad1f893d22c4687ab29583688699efc4d5101aa08b0c3e267a\n80ecb7cc963e677ccaddbe3320831dd6ee41209acf4ed41b16dc4817121a3d86a1aac9c4db3d8c08a55d28257088af32\na25ba667d832b145f9ce18c3f9b1bd00737aa36db020e1b99752c8ef7d27c6c448982bd8d352e1b6df266b8d8358a8d5\n83734841c13dee12759d40bdd209b277e743b0d08cc0dd1e0b7afd2d65bfa640400eefcf6be4a52e463e5b3d885eeac6\n848d16505b04804afc773aebabb51b36fd8aacfbb0e09b36c0d5d57df3c0a3b92f33e7d5ad0a7006ec46ebb91df42b8c\n909a8d793f599e33bb9f1dc4792a507a97169c87cd5c087310bc05f30afcd247470b4b56dec59894c0fb1d48d39bb54e\n8e558a8559df84a1ba8b244ece667f858095c50bb33a5381e60fcc6ba586b69693566d8819b4246a27287f16846c1dfa\n84d6b69729f5aaa000cd710c2352087592cfbdf20d5e1166977e195818e593fa1a50d1e04566be23163a2523dc1612f1\n9536d262b7a42125d89f4f32b407d737ba8d9242acfc99d965913ab3e043dcac9f7072a43708553562cac4cba841df30\n9598548923ca119d6a15fd10861596601dd1dedbcccca97bb208cdc1153cf82991ea8cc17686fbaa867921065265970c\nb87f2d4af6d026e4d2836bc3d390a4a18e98a6e386282ce96744603bab74974272e97ac2da281afa21885e2cbb3a8001\n991ece62bf07d1a348dd22191868372904b9f8cf065ae7aa4e44fd24a53faf6d851842e35fb472895963aa1992894918\na8c53dea4c665b30e51d22ca6bc1bc78aaf172b0a48e64a1d4b93439b053877ec26cb5221c55efd64fa841bbf7d5aff4\n93487ec939ed8e740f15335b58617c3f917f72d07b7a369befd479ae2554d04deb240d4a14394b26192efae4d2f4f35d\na44793ab4035443f8f2968a40e043b4555960193ffa3358d22112093aadfe2c136587e4139ffd46d91ed4107f61ea5e0\nb13fe033da5f0d227c75927d3dacb06dbaf3e1322f9d5c7c009de75cdcba5e308232838785ab69a70f0bedea755e003f\n970a29b075faccd0700fe60d1f726bdebf82d2cc8252f4a84543ebd3b16f91be42a75c9719a39c4096139f0f31393d58\na4c3eb1f7160f8216fc176fb244df53008ff32f2892363d85254002e66e2de21ccfe1f3b1047589abee50f29b9d507e3\n8c552885eab04ba40922a8f0c3c38c96089c95ff1405258d3f1efe8d179e39e1295cbf67677894c607ae986e4e6b1fb0\nb3671746fa7f848c4e2ae6946894defadd815230b906b419143523cc0597bc1d6c0a4c1e09d49b66b4a2c11cde3a4de3\n937a249a95813a5e2ef428e355efd202e15a37d73e56cfb7e57ea9f943f2ce5ca8026f2f1fd25bf164ba89d07077d858\n83646bdf6053a04aa9e2f112499769e5bd5d0d10f2e13db3ca89bd45c0b3b7a2d752b7d137fb3909f9c62b78166c9339\nb4eac4b91e763666696811b7ed45e97fd78310377ebea1674b58a2250973f80492ac35110ed1240cd9bb2d17493d708c\n82db43a99bc6573e9d92a3fd6635dbbb249ac66ba53099c3c0c8c8080b121dd8243cd5c6e36ba0a4d2525bae57f5c89c\na64d6a264a681b49d134c655d5fc7756127f1ee7c93d328820f32bca68869f53115c0d27fef35fe71f7bc4fdaed97348\n8739b7a9e2b4bc1831e7f04517771bc7cde683a5e74e052542517f8375a2f64e53e0d5ac925ef722327e7bb195b4d1d9\n8f337cdd29918a2493515ebb5cf702bbe8ecb23b53c6d18920cc22f519e276ca9b991d3313e2d38ae17ae8bdfa4f8b7e\nb0edeab9850e193a61f138ef2739fc42ceec98f25e7e8403bfd5fa34a7bc956b9d0898250d18a69fa4625a9b3d6129da\na9920f26fe0a6d51044e623665d998745c9eca5bce12051198b88a77d728c8238f97d4196f26e43b24f8841500b998d0\n86e655d61502b979eeeeb6f9a7e1d0074f936451d0a1b0d2fa4fb3225b439a3770767b649256fe481361f481a8dbc276\n84d3b32fa62096831cc3bf013488a9f3f481dfe293ae209ed19585a03f7db8d961a7a9dd0db82bd7f62d612707575d9c\n81c827826ec9346995ffccf62a241e3b2d32f7357acd1b1f8f7a7dbc97022d3eb51b8a1230e23ce0b401d2e535e8cd78\n94a1e40c151191c5b055b21e86f32e69cbc751dcbdf759a48580951834b96a1eed75914c0d19a38aefd21fb6c8d43d0c\nab890222b44bc21b71f7c75e15b6c6e16bb03371acce4f8d4353ff3b8fcd42a14026589c5ed19555a3e15e4d18bfc3a3\naccb0be851e93c6c8cc64724cdb86887eea284194b10e7a43c90528ed97e9ec71ca69c6fac13899530593756dd49eab2\nb630220aa9e1829c233331413ee28c5efe94ea8ea08d0c6bfd781955078b43a4f92915257187d8526873e6c919c6a1de\nadd389a4d358c585f1274b73f6c3c45b58ef8df11f9d11221f620e241bf3579fba07427b288c0c682885a700cc1fa28d\na9fe6ca8bf2961a3386e8b8dcecc29c0567b5c0b3bcf3b0f9169f88e372b80151af883871fc5229815f94f43a6f5b2b0\nad839ae003b92b37ea431fa35998b46a0afc3f9c0dd54c3b3bf7a262467b13ff3c323ada1c1ae02ac7716528bdf39e3e\n9356d3fd0edcbbb65713c0f2a214394f831b26f792124b08c5f26e7f734b8711a87b7c4623408da6a091c9aef1f6af3c\n896b25b083c35ac67f0af3784a6a82435b0e27433d4d74cd6d1eafe11e6827827799490fb1c77c11de25f0d75f14e047\n8bfa019391c9627e8e5f05c213db625f0f1e51ec68816455f876c7e55b8f17a4f13e5aae9e3fb9e1cf920b1402ee2b40\n8ba3a6faa6a860a8f3ce1e884aa8769ceded86380a86520ab177ab83043d380a4f535fe13884346c5e51bee68da6ab41\na8292d0844084e4e3bb7af92b1989f841a46640288c5b220fecfad063ee94e86e13d3d08038ec2ac82f41c96a3bfe14d\n8229bb030b2fc566e11fd33c7eab7a1bb7b49fed872ea1f815004f7398cb03b85ea14e310ec19e1f23e0bdaf60f8f76c\n8cfbf869ade3ec551562ff7f63c2745cc3a1f4d4dc853a0cd42dd5f6fe54228f86195ea8fe217643b32e9f513f34a545\nac52a3c8d3270ddfe1b5630159da9290a5ccf9ccbdef43b58fc0a191a6c03b8a5974cf6e2bbc7bd98d4a40a3581482d7\nab13decb9e2669e33a7049b8eca3ca327c40dea15ad6e0e7fa63ed506db1d258bc36ac88b35f65cae0984e937eb6575d\nb5e748eb1a7a1e274ff0cc56311c198f2c076fe4b7e73e5f80396fe85358549df906584e6bb2c8195b3e2be7736850a5\nb5cb911325d8f963c41f691a60c37831c7d3bbd92736efa33d1f77a22b3fde7f283127256c2f47e197571e6fe0b46149\n8a01dc6ed1b55f26427a014faa347130738b191a06b800e32042a46c13f60b49534520214359d68eb2e170c31e2b8672\na72fa874866e19b2efb8e069328362bf7921ec375e3bcd6b1619384c3f7ee980f6cf686f3544e9374ff54b4d17a1629c\n8db21092f7c5f110fba63650b119e82f4b42a997095d65f08f8237b02dd66fdf959f788df2c35124db1dbd330a235671\n8c65d50433d9954fe28a09fa7ba91a70a590fe7ba6b3060f5e4be0f6cef860b9897fa935fb4ebc42133524eb071dd169\nb4614058e8fa21138fc5e4592623e78b8982ed72aa35ee4391b164f00c68d277fa9f9eba2eeefc890b4e86eba5124591\nab2ad3a1bce2fbd55ca6b7c23786171fe1440a97d99d6df4d80d07dd56ac2d7203c294b32fc9e10a6c259381a73f24a1\n812ae3315fdc18774a8da3713a4679e8ed10b9405edc548c00cacbe25a587d32040566676f135e4723c5dc25df5a22e9\na464b75f95d01e5655b54730334f443c8ff27c3cb79ec7af4b2f9da3c2039c609908cd128572e1fd0552eb597e8cef8d\na0db3172e93ca5138fe419e1c49a1925140999f6eff7c593e5681951ee0ec1c7e454c851782cbd2b8c9bc90d466e90e0\n806db23ba7d00b87d544eed926b3443f5f9c60da6b41b1c489fba8f73593b6e3b46ebfcab671ee009396cd77d5e68aa1\n8bfdf2c0044cc80260994e1c0374588b6653947b178e8b312be5c2a05e05767e98ea15077278506aee7df4fee1aaf89e\n827f6558c16841b5592ff089c9c31e31eb03097623524394813a2e4093ad2d3f8f845504e2af92195aaa8a1679d8d692\n925c4f8eab2531135cd71a4ec88e7035b5eea34ba9d799c5898856080256b4a15ed1a746e002552e2a86c9c157e22e83\na9f9a368f0e0b24d00a35b325964c85b69533013f9c2cfad9708be5fb87ff455210f8cb8d2ce3ba58ca3f27495552899\n8ac0d3bebc1cae534024187e7c71f8927ba8fcc6a1926cb61c2b6c8f26bb7831019e635a376146c29872a506784a4aaa\n97c577be2cbbfdb37ad754fae9df2ada5fc5889869efc7e18a13f8e502fbf3f4067a509efbd46fd990ab47ce9a70f5a8\n935e7d82bca19f16614aa43b4a3474e4d20d064e4bfdf1cea2909e5c9ab72cfe3e54dc50030e41ee84f3588cebc524e9\n941aafc08f7c0d94cebfbb1f0aad5202c02e6e37f2c12614f57e727efa275f3926348f567107ee6d8914dd71e6060271\naf0fbc1ba05b4b5b63399686df3619968be5d40073de0313cbf5f913d3d4b518d4c249cdd2176468ccaa36040a484f58\na0c414f23f46ca6d69ce74c6f8a00c036cb0edd098af0c1a7d39c802b52cfb2d5dbdf93fb0295453d4646e2af7954d45\n909cf39e11b3875bb63b39687ae1b5d1f5a15445e39bf164a0b14691b4ddb39a8e4363f584ef42213616abc4785b5d66\na92bac085d1194fbd1c88299f07a061d0bdd3f980b663e81e6254dbb288bf11478c0ee880e28e01560f12c5ccb3c0103\n841705cd5cd76b943e2b7c5e845b9dd3c8defe8ef67e93078d6d5e67ade33ad4b0fd413bc196f93b0a4073c855cd97d4\n8e7eb8364f384a9161e81d3f1d52ceca9b65536ae49cc35b48c3e2236322ba4ae9973e0840802d9fa4f4d82ea833544f\naed3ab927548bc8bec31467ba80689c71a168e34f50dcb6892f19a33a099f5aa6b3f9cb79f5c0699e837b9a8c7f27efe\nb8fbf7696210a36e20edabd77839f4dfdf50d6d015cdf81d587f90284a9bcef7d2a1ff520728d7cc69a4843d6c20dedd\na9d533769ce6830211c884ae50a82a7bf259b44ac71f9fb11f0296fdb3981e6b4c1753fe744647b247ebc433a5a61436\n8b4bdf90d33360b7f428c71cde0a49fb733badba8c726876945f58c620ce7768ae0e98fc8c31fa59d8955a4823336bb1\n808d42238e440e6571c59e52a35ae32547d502dc24fd1759d8ea70a7231a95859baf30b490a4ba55fa2f3aaa11204597\n85594701f1d2fee6dc1956bc44c7b31db93bdeec2f3a7d622c1a08b26994760773e3d57521a44cfd7e407ac3fd430429\na66de045ce7173043a6825e9dc440ac957e2efb6df0a337f4f8003eb0c719d873a52e6eba3cb0d69d977ca37d9187674\n87a1c6a1fdff993fa51efa5c3ba034c079c0928a7d599b906336af7c2dcab9721ceaf3108c646490af9dff9a754f54b3\n926424223e462ceb75aed7c22ade8a7911a903b7e5dd4bc49746ddce8657f4616325cd12667d4393ac52cdd866396d0e\nb5dc96106593b42b30f06f0b0a1e0c1aafc70432e31807252d3674f0b1ea5e58eac8424879d655c9488d85a879a3e572\n997ca0987735cc716507cb0124b1d266d218b40c9d8e0ecbf26a1d65719c82a637ce7e8be4b4815d307df717bde7c72a\n92994d3f57a569b7760324bb5ae4e8e14e1633d175dab06aa57b8e391540e05f662fdc08b8830f489a063f59b689a688\na8087fcc6aa4642cb998bea11facfe87eb33b90a9aa428ab86a4124ad032fc7d2e57795311a54ec9f55cc120ebe42df1\na9bd7d1de6c0706052ca0b362e2e70e8c8f70f1f026ea189b4f87a08ce810297ebfe781cc8004430776c54c1a05ae90c\n856d33282e8a8e33a3d237fb0a0cbabaf77ba9edf2fa35a831fdafcadf620561846aa6cbb6bdc5e681118e1245834165\n9524a7aa8e97a31a6958439c5f3339b19370f03e86b89b1d02d87e4887309dbbe9a3a8d2befd3b7ed5143c8da7e0a8ad\n824fdf433e090f8acbd258ac7429b21f36f9f3b337c6d0b71d1416a5c88a767883e255b2888b7c906dd2e9560c4af24c\n88c7fee662ca7844f42ed5527996b35723abffd0d22d4ca203b9452c639a5066031207a5ae763dbc0865b3299d19b1ec\n919dca5c5595082c221d5ab3a5bc230f45da7f6dec4eb389371e142c1b9c6a2c919074842479c2844b72c0d806170c0c\nb939be8175715e55a684578d8be3ceff3087f60fa875fff48e52a6e6e9979c955efef8ff67cfa2b79499ea23778e33b0\n873b6db725e7397d11bc9bed9ac4468e36619135be686790a79bc6ed4249058f1387c9a802ea86499f692cf635851066\naeae06db3ec47e9e5647323fa02fac44e06e59b885ad8506bf71b184ab3895510c82f78b6b22a5d978e8218e7f761e9f\nb99c0a8359c72ab88448bae45d4bf98797a26bca48b0d4460cd6cf65a4e8c3dd823970ac3eb774ae5d0cea4e7fadf33e\n8f10c8ec41cdfb986a1647463076a533e6b0eec08520c1562401b36bb063ac972aa6b28a0b6ce717254e35940b900e3c\na106d9be199636d7add43b942290269351578500d8245d4aae4c083954e4f27f64740a3138a66230391f2d0e6043a8de\na469997908244578e8909ff57cffc070f1dbd86f0098df3cfeb46b7a085cfecc93dc69ee7cad90ff1dc5a34d50fe580c\na4ef087bea9c20eb0afc0ee4caba7a9d29dfa872137828c721391273e402fb6714afc80c40e98bbd8276d3836bffa080\nb07a013f73cd5b98dae0d0f9c1c0f35bff8a9f019975c4e1499e9bee736ca6fcd504f9bc32df1655ff333062382cff04\nb0a77188673e87cc83348c4cc5db1eecf6b5184e236220c8eeed7585e4b928db849944a76ec60ef7708ef6dac02d5592\nb1284b37e59b529f0084c0dacf0af6c0b91fc0f387bf649a8c74819debf606f7b07fc3e572500016fb145ec2b24e9f17\n97b20b5b4d6b9129da185adfbf0d3d0b0faeba5b9715f10299e48ea0521709a8296a9264ce77c275a59c012b50b6519a\nb9d37e946fae5e4d65c1fbfacc8a62e445a1c9d0f882e60cca649125af303b3b23af53c81d7bac544fb7fcfc7a314665\n8e5acaac379f4bb0127efbef26180f91ff60e4c525bc9b798fc50dfaf4fe8a5aa84f18f3d3cfb8baead7d1e0499af753\nb0c0b8ab1235bf1cda43d4152e71efc1a06c548edb964eb4afceb201c8af24240bf8ab5cae30a08604e77432b0a5faf0\n8cc28d75d5c8d062d649cbc218e31c4d327e067e6dbd737ec0a35c91db44fbbd0d40ec424f5ed79814add16947417572\n95ae6219e9fd47efaa9cb088753df06bc101405ba50a179d7c9f7c85679e182d3033f35b00dbba71fdcd186cd775c52e\nb5d28fa09f186ebc5aa37453c9b4d9474a7997b8ae92748ecb940c14868792292ac7d10ade01e2f8069242b308cf97e5\n8c922a0faa14cc6b7221f302df3342f38fc8521ec6c653f2587890192732c6da289777a6cd310747ea7b7d104af95995\nb9ad5f660b65230de54de535d4c0fcae5bc6b59db21dea5500fdc12eea4470fb8ea003690fdd16d052523418d5e01e8c\na39a9dd41a0ff78c82979483731f1cd68d3921c3e9965869662c22e02dde3877802e180ba93f06e7346f96d9fa9261d2\n8b32875977ec372c583b24234c27ed73aef00cdff61eb3c3776e073afbdeade548de9497c32ec6d703ff8ad0a5cb7fe4\n9644cbe755a5642fe9d26cfecf170d3164f1848c2c2e271d5b6574a01755f3980b3fc870b98cf8528fef6ecef4210c16\n81ea9d1fdd9dd66d60f40ce0712764b99da9448ae0b300f8324e1c52f154e472a086dda840cb2e0b9813dc8ce8afd4b5\n906aaa4a7a7cdf01909c5cfbc7ded2abc4b869213cbf7c922d4171a4f2e637e56f17020b852ad339d83b8ac92f111666\n939b5f11acbdeff998f2a080393033c9b9d8d5c70912ea651c53815c572d36ee822a98d6dfffb2e339f29201264f2cf4\naba4898bf1ccea9b9e2df1ff19001e05891581659c1cbbde7ee76c349c7fc7857261d9785823c9463a8aea3f40e86b38\n83ca1a56b8a0be4820bdb5a9346357c68f9772e43f0b887729a50d2eb2a326bbcede676c8bf2e51d7c89bbd8fdb778a6\n94e86e9fe6addfe2c3ee3a547267ed921f4230d877a85bb4442c2d9350c2fa9a9c54e6fe662de82d1a2407e4ab1691c2\na0cc3bdef671a59d77c6984338b023fa2b431b32e9ed2abe80484d73edc6540979d6f10812ecc06d4d0c5d4eaca7183c\nb5343413c1b5776b55ea3c7cdd1f3af1f6bd802ea95effe3f2b91a523817719d2ecc3f8d5f3cc2623ace7e35f99ca967\n92085d1ed0ed28d8cabe3e7ff1905ed52c7ceb1eac5503760c52fb5ee3a726aba7c90b483c032acc3f166b083d7ec370\n8ec679520455275cd957fca8122724d287db5df7d29f1702a322879b127bff215e5b71d9c191901465d19c86c8d8d404\nb65eb2c63d8a30332eb24ee8a0c70156fc89325ebbb38bacac7cf3f8636ad8a472d81ccca80423772abc00192d886d8a\na9fe1c060b974bee4d590f2873b28635b61bfcf614e61ff88b1be3eee4320f4874e21e8d666d8ac8c9aba672efc6ecae\nb3fe2a9a389c006a831dea7e777062df84b5c2803f9574d7fbe10b7e1c125817986af8b6454d6be9d931a5ac94cfe963\n95418ad13b734b6f0d33822d9912c4c49b558f68d08c1b34a0127fcfa666bcae8e6fda8832d2c75bb9170794a20e4d7c\na9a7df761e7f18b79494bf429572140c8c6e9d456c4d4e336184f3f51525a65eb9582bea1e601bdb6ef8150b7ca736a5\na0de03b1e75edf7998c8c1ac69b4a1544a6fa675a1941950297917366682e5644a4bda9cdeedfaf9473d7fccd9080b0c\na61838af8d95c95edf32663a68f007d95167bf6e41b0c784a30b22d8300cfdd5703bd6d16e86396638f6db6ae7e42a85\n8866d62084d905c145ff2d41025299d8b702ac1814a7dec4e277412c161bc9a62fed735536789cb43c88693c6b423882\n91da22c378c81497fe363e7f695c0268443abee50f8a6625b8a41e865638a643f07b157ee566de09ba09846934b4e2d7\n941d21dd57c9496aa68f0c0c05507405fdd413acb59bc668ce7e92e1936c68ec4b065c3c30123319884149e88228f0b2\na77af9b094bc26966ddf2bf9e1520c898194a5ccb694915950dadc204facbe3066d3d89f50972642d76b14884cfbaa21\n8e76162932346869f4618bde744647f7ab52ab498ad654bdf2a4feeb986ac6e51370841e5acbb589e38b6e7142bb3049\nb60979ace17d6937ece72e4f015da4657a443dd01cebc7143ef11c09e42d4aa8855999a65a79e2ea0067f31c9fc2ab0f\nb3e2ffdd5ee6fd110b982fd4fad4b93d0fca65478f986d086eeccb0804960bfaa1919afa743c2239973ea65091fe57d2\n8ce0ce05e7d7160d44574011da687454dbd3c8b8290aa671731b066e2c82f8cf2d63cb8e932d78c6122ec610e44660e6\nab005dd8d297045c39e2f72fb1c48edb501ccf3575d3d04b9817b3afee3f0bb0f3f53f64bda37d1d9cde545aae999bae\n95bd7edb4c4cd60e3cb8a72558845a3cce6bb7032ccdf33d5a49ebb6ddf203bc3c79e7b7e550735d2d75b04c8b2441e8\n889953ee256206284094e4735dbbb17975bafc7c3cb94c9fbfee4c3e653857bfd49e818f64a47567f721b98411a3b454\nb188423e707640ab0e75a061e0b62830cde8afab8e1ad3dae30db69ffae4e2fc005bababbdcbd7213b918ed4f70e0c14\na97e0fafe011abd70d4f99a0b36638b3d6e7354284588f17a88970ed48f348f88392779e9a038c6cbc9208d998485072\n87db11014a91cb9b63e8dfaa82cdebca98272d89eb445ee1e3ff9dbaf2b3fad1a03b888cffc128e4fe208ed0dddece0f\naad2e40364edd905d66ea4ac9d51f9640d6fda9a54957d26ba233809851529b32c85660fa401dbee3679ec54fa6dd966\n863e99336ca6edf03a5a259e59a2d0f308206e8a2fb320cfc0be06057366df8e0f94b33a28f574092736b3c5ada84270\nb34bcc56a057589f34939a1adc51de4ff6a9f4fee9c7fa9aa131e28d0cf0759a0c871b640162acdfbf91f3f1b59a3703\n935dd28f2896092995c5eff1618e5b6efe7a40178888d7826da9b0503c2d6e68a28e7fac1a334e166d0205f0695ef614\nb842cd5f8f5de5ca6c68cb4a5c1d7b451984930eb4cc18fd0934d52fdc9c3d2d451b1c395594d73bc3451432bfba653f\n9014537885ce2debad736bc1926b25fdab9f69b216bf024f589c49dc7e6478c71d595c3647c9f65ff980b14f4bb2283b\n8e827ccca1dd4cd21707140d10703177d722be0bbe5cac578db26f1ef8ad2909103af3c601a53795435b27bf95d0c9ed\n8a0b8ad4d466c09d4f1e9167410dbe2edc6e0e6229d4b3036d30f85eb6a333a18b1c968f6ca6d6889bb08fecde017ef4\n9241ee66c0191b06266332dc9161dede384c4bb4e116dbd0890f3c3790ec5566da4568243665c4725b718ac0f6b5c179\naeb4d5fad81d2b505d47958a08262b6f1b1de9373c2c9ba6362594194dea3e002ab03b8cbb43f867be83065d3d370f19\n8781bc83bb73f7760628629fe19e4714b494dbed444c4e4e4729b7f6a8d12ee347841a199888794c2234f51fa26fc2b9\nb58864f0acd1c2afa29367e637cbde1968d18589245d9936c9a489c6c495f54f0113ecdcbe4680ac085dd3c397c4d0c3\n94a24284afaeead61e70f3e30f87248d76e9726759445ca18cdb9360586c60cc9f0ec1c397f9675083e0b56459784e2e\naed358853f2b54dcbddf865e1816c2e89be12e940e1abfa661e2ee63ffc24a8c8096be2072fa83556482c0d89e975124\nb95374e6b4fc0765708e370bc881e271abf2e35c08b056a03b847e089831ef4fe3124b9c5849d9c276eb2e35b3daf264\nb834cdbcfb24c8f84bfa4c552e7fadc0028a140952fd69ed13a516e1314a4cd35d4b954a77d51a1b93e1f5d657d0315d\n8fb6d09d23bfa90e7443753d45a918d91d75d8e12ec7d016c0dfe94e5c592ba6aaf483d2f16108d190822d955ad9cdc3\naa315cd3c60247a6ad4b04f26c5404c2713b95972843e4b87b5a36a89f201667d70f0adf20757ebe1de1b29ae27dda50\na116862dca409db8beff5b1ccd6301cdd0c92ca29a3d6d20eb8b87f25965f42699ca66974dd1a355200157476b998f3b\nb4c2f5fe173c4dc8311b60d04a65ce1be87f070ac42e13cd19c6559a2931c6ee104859cc2520edebbc66a13dc7d30693\n8d4a02bf99b2260c334e7d81775c5cf582b00b0c982ce7745e5a90624919028278f5e9b098573bad5515ce7fa92a80c8\n8543493bf564ce6d97bd23be9bff1aba08bd5821ca834f311a26c9139c92a48f0c2d9dfe645afa95fec07d675d1fd53b\n9344239d13fde08f98cb48f1f87d34cf6abe8faecd0b682955382a975e6eed64e863fa19043290c0736261622e00045c\naa49d0518f343005ca72b9e6c7dcaa97225ce6bb8b908ebbe7b1a22884ff8bfb090890364e325a0d414ad180b8f161d1\n907d7fd3e009355ab326847c4a2431f688627faa698c13c03ffdd476ecf988678407f029b8543a475dcb3dafdf2e7a9c\n845f1f10c6c5dad2adc7935f5cd2e2b32f169a99091d4f1b05babe7317b9b1cdce29b5e62f947dc621b9acbfe517a258\n8f3be8e3b380ea6cdf9e9c237f5e88fd5a357e5ded80ea1fc2019810814de82501273b4da38916881125b6fa0cfd4459\nb9c7f487c089bf1d20c822e579628db91ed9c82d6ca652983aa16d98b4270c4da19757f216a71b9c13ddee3e6e43705f\n8ba2d8c88ad2b872db104ea8ddbb006ec2f3749fd0e19298a804bb3a5d94de19285cc7fb19fee58a66f7851d1a66c39f\n9375ecd3ed16786fe161af5d5c908f56eeb467a144d3bbddfc767e90065b7c94fc53431adebecba2b6c9b5821184d36e\na49e069bfadb1e2e8bff6a4286872e2a9765d62f0eaa4fcb0e5af4bbbed8be3510fb19849125a40a8a81d1e33e81c3eb\n9522cc66757b386aa6b88619525c8ce47a5c346d590bb3647d12f991e6c65c3ab3c0cfc28f0726b6756c892eae1672be\na9a0f1f51ff877406fa83a807aeb17b92a283879f447b8a2159653db577848cc451cbadd01f70441e351e9ed433c18bc\n8ff7533dcff6be8714df573e33f82cf8e9f2bcaaa43e939c4759d52b754e502717950de4b4252fb904560fc31dce94a4\n959724671e265a28d67c29d95210e97b894b360da55e4cf16e6682e7912491ed8ca14bfaa4dce9c25a25b16af580494f\n92566730c3002f4046c737032487d0833c971e775de59fe02d9835c9858e2e3bc37f157424a69764596c625c482a2219\na84b47ceff13ed9c3e5e9cdf6739a66d3e7c2bd8a6ba318fefb1a9aecf653bb2981da6733ddb33c4b0a4523acc429d23\nb4ddf571317e44f859386d6140828a42cf94994e2f1dcbcc9777f4eebbfc64fc1e160b49379acc27c4672b8e41835c5d\n8ab95c94072b853d1603fdd0a43b30db617d13c1d1255b99075198e1947bfa5f59aed2b1147548a1b5e986cd9173d15c\n89511f2eab33894fd4b3753d24249f410ff7263052c1fef6166fc63a79816656b0d24c529e45ccce6be28de6e375d916\na0866160ca63d4f2be1b4ea050dac6b59db554e2ebb4e5b592859d8df339b46fd7cb89aaed0951c3ee540aee982c238a\n8fcc5cbba1b94970f5ff2eb1922322f5b0aa7d918d4b380c9e7abfd57afd8b247c346bff7b87af82efbce3052511cd1b\n99aeb2a5e846b0a2874cca02c66ed40d5569eb65ab2495bc3f964a092e91e1517941f2688e79f8cca49cd3674c4e06dc\nb7a096dc3bad5ca49bee94efd884aa3ff5615cf3825cf95fbe0ce132e35f46581d6482fa82666c7ef5f1643eaee8f1ca\n94393b1da6eaac2ffd186b7725eca582f1ddc8cdd916004657f8a564a7c588175cb443fc6943b39029f5bbe0add3fad8\n884b85fe012ccbcd849cb68c3ad832d83b3ef1c40c3954ffdc97f103b1ed582c801e1a41d9950f6bddc1d11f19d5ec76\nb00061c00131eded8305a7ce76362163deb33596569afb46fe499a7c9d7a0734c084d336b38d168024c2bb42b58e7660\na439153ac8e6ca037381e3240e7ba08d056c83d7090f16ed538df25901835e09e27de2073646e7d7f3c65056af6e4ce7\n830fc9ca099097d1f38b90e6843dc86f702be9d20bdacc3e52cae659dc41df5b8d2c970effa6f83a5229b0244a86fe22\nb81ea2ffaaff2bb00dd59a9ab825ba5eed4db0d8ac9c8ed1a632ce8f086328a1cddd045fbe1ace289083c1325881b7e7\nb51ea03c58daf2db32c99b9c4789b183365168cb5019c72c4cc91ac30b5fb7311d3db76e6fa41b7cd4a8c81e2f6cdc94\na4170b2c6d09ca5beb08318730419b6f19215ce6c631c854116f904be3bc30dd85a80c946a8ab054d3e307afaa3f8fbc\n897cc42ff28971ff54d2a55dd6b35cfb8610ac902f3c06e3a5cea0e0a257e870c471236a8e84709211c742a09c5601a6\na18f2e98d389dace36641621488664ecbb422088ab03b74e67009b8b8acacaaa24fdcf42093935f355207d934adc52a8\n92adcfb678cc2ba19c866f3f2b988fdcb4610567f3ab436cc0cb9acaf5a88414848d71133ebdbec1983e38e6190f1b5f\na86d43c2ce01b366330d3b36b3ca85f000c3548b8297e48478da1ee7d70d8576d4650cba7852ed125c0d7cb6109aa7f3\n8ed31ceed9445437d7732dce78a762d72ff32a7636bfb3fd7974b7ae15db414d8184a1766915244355deb354fbc5803b\n9268f70032584f416e92225d65af9ea18c466ebc7ae30952d56a4e36fd9ea811dde0a126da9220ba3c596ec54d8a335e\n9433b99ee94f2d3fbdd63b163a2bdf440379334c52308bd24537f7defd807145a062ff255a50d119a7f29f4b85d250e3\n90ce664f5e4628a02278f5cf5060d1a34f123854634b1870906e5723ac9afd044d48289be283b267d45fcbf3f4656aaf\naaf21c4d59378bb835d42ae5c5e5ab7a3c8c36a59e75997989313197752b79a472d866a23683b329ea69b048b87fa13e\nb83c0589b304cec9ede549fde54f8a7c2a468c6657da8c02169a6351605261202610b2055c639b9ed2d5b8c401fb8f56\n9370f326ea0f170c2c05fe2c5a49189f20aec93b6b18a5572a818cd4c2a6adb359e68975557b349fb54f065d572f4c92\nac3232fa5ce6f03fca238bef1ce902432a90b8afce1c85457a6bee5571c033d4bceefafc863af04d4e85ac72a4d94d51\n80d9ea168ff821b22c30e93e4c7960ce3ad3c1e6deeebedd342a36d01bd942419b187e2f382dbfd8caa34cca08d06a48\na387a3c61676fb3381eefa2a45d82625635a666e999aba30e3b037ec9e040f414f9e1ad9652abd3bcad63f95d85038db\na1b229fe32121e0b391b0f6e0180670b9dc89d79f7337de4c77ea7ad0073e9593846f06797c20e923092a08263204416\n92164a9d841a2b828cedf2511213268b698520f8d1285852186644e9a0c97512cafa4bfbe29af892c929ebccd102e998\n82ee2fa56308a67c7db4fd7ef539b5a9f26a1c2cc36da8c3206ba4b08258fbb3cec6fe5cdbd111433fb1ba2a1e275927\n8c77bfe9e191f190a49d46f05600603fa42345592539b82923388d72392404e0b29a493a15e75e8b068dddcd444c2928\n80b927f93ccf79dcf5c5b20bcf5a7d91d7a17bc0401bb7cc9b53a6797feac31026eb114257621f5a64a52876e4474cc1\nb6b68b6501c37804d4833d5a063dd108a46310b1400549074e3cac84acc6d88f73948b7ad48d686de89c1ec043ae8c1a\nab3da00f9bdc13e3f77624f58a3a18fc3728956f84b5b549d62f1033ae4b300538e53896e2d943f160618e05af265117\nb6830e87233b8eace65327fdc764159645b75d2fd4024bf8f313b2dd5f45617d7ecfb4a0b53ccafb5429815a9a1adde6\nb9251cfe32a6dc0440615aadcd98b6b1b46e3f4e44324e8f5142912b597ee3526bea2431e2b0282bb58f71be5b63f65e\naf8d70711e81cdddfb39e67a1b76643292652584c1ce7ce4feb1641431ad596e75c9120e85f1a341e7a4da920a9cdd94\n98cd4e996594e89495c078bfd52a4586b932c50a449a7c8dfdd16043ca4cda94dafbaa8ad1b44249c99bbcc52152506e\nb9fc6d1c24f48404a4a64fbe3e43342738797905db46e4132aee5f086aaa4c704918ad508aaefa455cfe1b36572e6242\na365e871d30ba9291cedaba1be7b04e968905d003e9e1af7e3b55c5eb048818ae5b913514fb08b24fb4fbdccbb35d0b8\n93bf99510971ea9af9f1e364f1234c898380677c8e8de9b0dd24432760164e46c787bc9ec42a7ad450500706cf247b2d\nb872f825a5b6e7b9c7a9ddfeded3516f0b1449acc9b4fd29fc6eba162051c17416a31e5be6d3563f424d28e65bab8b8f\nb06b780e5a5e8eb4f4c9dc040f749cf9709c8a4c9ef15e925f442b696e41e5095db0778a6c73bcd329b265f2c6955c8b\n848f1a981f5fc6cd9180cdddb8d032ad32cdfa614fc750d690dbae36cc0cd355cbf1574af9b3ffc8b878f1b2fafb9544\na03f48cbff3e9e8a3a655578051a5ae37567433093ac500ed0021c6250a51b767afac9bdb194ee1e3eac38a08c0eaf45\nb5be78ce638ff8c4aa84352b536628231d3f7558c5be3bf010b28feac3022e64691fa672f358c8b663904aebe24a54ed\na9d4da70ff676fa55d1728ba6ab03b471fa38b08854d99e985d88c2d050102d8ccffbe1c90249a5607fa7520b15fe791\n8fe9f7092ffb0b69862c8e972fb1ecf54308c96d41354ed0569638bb0364f1749838d6d32051fff1599112978c6e229c\nae6083e95f37770ecae0df1e010456f165d96cfe9a7278c85c15cffd61034081ce5723e25e2bede719dc9341ec8ed481\na260891891103089a7afbd9081ea116cfd596fd1015f5b65e10b0961eb37fab7d09c69b7ce4be8bf35e4131848fb3fe4\n8d729fa32f6eb9fd2f6a140bef34e8299a2f3111bffd0fe463aa8622c9d98bfd31a1df3f3e87cd5abc52a595f96b970e\na30ec6047ae4bc7da4daa7f4c28c93aedb1112cfe240e681d07e1a183782c9ff6783ac077c155af23c69643b712a533f\nac830726544bfe7b5467339e5114c1a75f2a2a8d89453ce86115e6a789387e23551cd64620ead6283dfa4538eb313d86\n8445c135b7a48068d8ed3e011c6d818cfe462b445095e2fbf940301e50ded23f272d799eea47683fc027430ce14613ef\n95785411715c9ae9d8293ce16a693a2aa83e3cb1b4aa9f76333d0da2bf00c55f65e21e42e50e6c5772ce213dd7b4f7a0\nb273b024fa18b7568c0d1c4d2f0c4e79ec509dafac8c5951f14192d63ddbcf2d8a7512c1c1b615cc38fa3e336618e0c5\na78b9d3ea4b6a90572eb27956f411f1d105fdb577ee2ffeec9f221da9b45db84bfe866af1f29597220c75e0c37a628d8\na4be2bf058c36699c41513c4d667681ce161a437c09d81383244fc55e1c44e8b1363439d0cce90a3e44581fb31d49493\nb6eef13040f17dd4eba22aaf284d2f988a4a0c4605db44b8d2f4bf9567ac794550b543cc513c5f3e2820242dd704152e\n87eb00489071fa95d008c5244b88e317a3454652dcb1c441213aa16b28cd3ecaa9b22fec0bdd483c1df71c37119100b1\n92d388acdcb49793afca329cd06e645544d2269234e8b0b27d2818c809c21726bc9cf725651b951e358a63c83dedee24\nae27e219277a73030da27ab5603c72c8bd81b6224b7e488d7193806a41343dff2456132274991a4722fdb0ef265d04cd\n97583e08ecb82bbc27c0c8476d710389fa9ffbead5c43001bd36c1b018f29faa98de778644883e51870b69c5ffb558b5\n90a799a8ce73387599babf6b7da12767c0591cadd36c20a7990e7c05ea1aa2b9645654ec65308ee008816623a2757a6a\na1b47841a0a2b06efd9ab8c111309cc5fc9e1d5896b3e42ed531f6057e5ade8977c29831ce08dbda40348386b1dcc06d\nb92b8ef59bbddb50c9457691bc023d63dfcc54e0fd88bd5d27a09e0d98ac290fc90e6a8f6b88492043bf7c87fac8f3e4\na9d6240b07d62e22ec8ab9b1f6007c975a77b7320f02504fc7c468b4ee9cfcfd945456ff0128bc0ef2174d9e09333f8d\n8e96534c94693226dc32bca79a595ca6de503af635f802e86442c67e77564829756961d9b701187fe91318da515bf0e6\nb6ba290623cd8dd5c2f50931c0045d1cfb0c30877bc8fe58cbc3ff61ee8da100045a39153916efa1936f4aee0892b473\nb43baa7717fac02d4294f5b3bb5e58a65b3557747e3188b482410388daac7a9c177f762d943fd5dcf871273921213da8\nb9cf00f8fb5e2ef2b836659fece15e735060b2ea39b8e901d3dcbdcf612be8bf82d013833718c04cd46ffaa70b85f42e\n8017d0c57419e414cbba504368723e751ef990cc6f05dad7b3c2de6360adc774ad95512875ab8337d110bf39a42026fa\nae7401048b838c0dcd4b26bb6c56d79d51964a0daba780970b6c97daee4ea45854ea0ac0e4139b3fe60dac189f84df65\n887b237b0cd0f816b749b21db0b40072f9145f7896c36916296973f9e6990ede110f14e5976c906d08987c9836cca57f\na88c3d5770148aee59930561ca1223aceb2c832fb5417e188dca935905301fc4c6c2c9270bc1dff7add490a125eb81c6\nb6cf9b02c0cd91895ad209e38c54039523f137b5848b9d3ad33ae43af6c20c98434952db375fe378de7866f2d0e8b18a\n84ef3d322ff580c8ad584b1fe4fe346c60866eb6a56e982ba2cf3b021ecb1fdb75ecc6c29747adda86d9264430b3f816\na0561c27224baf0927ad144cb71e31e54a064c598373fcf0d66aebf98ab7af1d8e2f343f77baefff69a6da750a219e11\naa5cc43f5b8162b016f5e1b61214c0c9d15b1078911c650b75e6cdfb49b85ee04c6739f5b1687d15908444f691f732de\nad4ac099b935589c7b8fdfdf3db332b7b82bb948e13a5beb121ebd7db81a87d278024a1434bcf0115c54ca5109585c3d\n8a00466abf3f109a1dcd19e643b603d3af23d42794ef8ca2514dd507ecea44a031ac6dbc18bd02f99701168b25c1791e\nb00b5900dfad79645f8bee4e5adc7b84eb22e5b1e67df77ccb505b7fc044a6c08a8ea5faca662414eb945f874f884cea\n950e204e5f17112250b22ea6bb8423baf522fc0af494366f18fe0f949f51d6e6812074a80875cf1ed9c8e7420058d541\n91e5cbf8bb1a1d50c81608c9727b414d0dd2fb467ebc92f100882a3772e54f94979cfdf8e373fdef7c7fcdd60fec9e00\na093f6a857b8caaff80599c2e89c962b415ecbaa70d8fd973155fa976a284c6b29a855f5f7a3521134d00d2972755188\nb4d55a3551b00da54cc010f80d99ddd2544bde9219a3173dfaadf3848edc7e4056ab532fb75ac26f5f7141e724267663\na03ea050fc9b011d1b04041b5765d6f6453a93a1819cd9bd6328637d0b428f08526466912895dcc2e3008ee58822e9a7\n99b12b3665e473d01bc6985844f8994fb65cb15745024fb7af518398c4a37ff215da8f054e8fdf3286984ae36a73ca5e\n9972c7e7a7fb12e15f78d55abcaf322c11249cd44a08f62c95288f34f66b51f146302bce750ff4d591707075d9123bd2\na64b4a6d72354e596d87cda213c4fc2814009461570ccb27d455bbe131f8d948421a71925425b546d8cf63d5458cd64b\n91c215c73b195795ede2228b7ed1f6e37892e0c6b0f4a0b5a16c57aa1100c84df9239054a173b6110d6c2b7f4bf1ce52\n88807198910ec1303480f76a3683870246a995e36adaeadc29c22f0bdba8152fe705bd070b75de657b04934f7d0ccf80\nb37c0026c7b32eb02cacac5b55cb5fe784b8e48b2945c64d3037af83ece556a117f0ff053a5968c2f5fa230e291c1238\n94c768384ce212bc2387e91ce8b45e4ff120987e42472888a317abc9dcdf3563b62e7a61c8e98d7cdcbe272167d91fc6\na10c2564936e967a390cb14ef6e8f8b04ea9ece5214a38837eda09e79e0c7970b1f83adf017c10efd6faa8b7ffa2c567\na5085eed3a95f9d4b1269182ea1e0d719b7809bf5009096557a0674bde4201b0ddc1f0f16a908fc468846b3721748ce3\n87468eb620b79a0a455a259a6b4dfbc297d0d53336537b771254dd956b145dc816b195b7002647ea218552e345818a3f\nace2b77ffb87366af0a9cb5d27d6fc4a14323dbbf1643f5f3c4559306330d86461bb008894054394cbfaefeaa0bc2745\nb27f56e840a54fbd793f0b7a7631aa4cee64b5947e4382b2dfb5eb1790270288884c2a19afebe5dc0c6ef335d4531c1c\n876e438633931f7f895062ee16c4b9d10428875f7bc79a8e156a64d379a77a2c45bf5430c5ab94330f03da352f1e9006\na2512a252587d200d2092b44c914df54e04ff8bcef36bf631f84bde0cf5a732e3dc7f00f662842cfd74b0b0f7f24180e\n827f1bc8f54a35b7a4bd8154f79bcc055e45faed2e74adf7cf21cca95df44d96899e847bd70ead6bb27b9c0ed97bbd8b\na0c92cf5a9ed843714f3aea9fe7b880f622d0b4a3bf66de291d1b745279accf6ba35097849691370f41732ba64b5966b\na63f5c1e222775658421c487b1256b52626c6f79cb55a9b7deb2352622cedffb08502042d622eb3b02c97f9c09f9c957\n8cc093d52651e65fb390e186db6cc4de559176af4624d1c44cb9b0e836832419dacac7b8db0627b96288977b738d785d\naa7b6a17dfcec146134562d32a12f7bd7fe9522e300859202a02939e69dbd345ed7ff164a184296268f9984f9312e8fc\n8ac76721f0d2b679f023d06cbd28c85ae5f4b43c614867ccee88651d4101d4fd352dbdb65bf36bfc3ebc0109e4b0c6f9\n8d350f7c05fc0dcd9a1170748846fb1f5d39453e4cb31e6d1457bed287d96fc393b2ecc53793ca729906a33e59c6834a\nb9913510dfc5056d7ec5309f0b631d1ec53e3a776412ada9aefdaf033c90da9a49fdde6719e7c76340e86599b1f0eec2\n94955626bf4ce87612c5cfffcf73bf1c46a4c11a736602b9ba066328dc52ad6d51e6d4f53453d4ed55a51e0aad810271\nb0fcab384fd4016b2f1e53f1aafd160ae3b1a8865cd6c155d7073ecc1664e05b1d8bca1def39c158c7086c4e1103345e\n827de3f03edfbde08570b72de6662c8bfa499b066a0a27ebad9b481c273097d17a5a0a67f01553da5392ec3f149b2a78\nab7940384c25e9027c55c40df20bd2a0d479a165ced9b1046958353cd69015eeb1e44ed2fd64e407805ba42df10fc7bf\n8ad456f6ff8cd58bd57567d931f923d0c99141978511b17e03cab7390a72b9f62498b2893e1b05c7c22dd274e9a31919\nac75399e999effe564672db426faa17a839e57c5ef735985c70cd559a377adec23928382767b55ed5a52f7b11b54b756\nb17f975a00b817299ac7af5f2024ea820351805df58b43724393bfb3920a8cd747a3bbd4b8286e795521489db3657168\na2bed800a6d95501674d9ee866e7314063407231491d794f8cf57d5be020452729c1c7cefd8c50dc1540181f5caab248\n9743f5473171271ffdd3cc59a3ae50545901a7b45cd4bc3570db487865f3b73c0595bebabbfe79268809ee1862e86e4a\nb7eab77c2d4687b60d9d7b04e842b3880c7940140012583898d39fcc22d9b9b0a9be2c2e3788b3e6f30319b39c338f09\n8e2b8f797a436a1b661140e9569dcf3e1eea0a77c7ff2bc4ff0f3e49af04ed2de95e255df8765f1d0927fb456a9926b1\n8aefea201d4a1f4ff98ffce94e540bb313f2d4dfe7e9db484a41f13fc316ed02b282e1acc9bc6f56cad2dc2e393a44c9\nb950c17c0e5ca6607d182144aa7556bb0efe24c68f06d79d6413a973b493bfdf04fd147a4f1ab03033a32004cc3ea66f\nb7b8dcbb179a07165f2dc6aa829fad09f582a71b05c3e3ea0396bf9e6fe73076f47035c031c2101e8e38e0d597eadd30\na9d77ed89c77ec1bf8335d08d41c3c94dcca9fd1c54f22837b4e54506b212aa38d7440126c80648ab7723ff18e65ed72\na819d6dfd4aef70e52b8402fe5d135f8082d40eb7d3bb5c4d7997395b621e2bb10682a1bad2c9caa33dd818550fc3ec6\n8f6ee34128fac8bbf13ce2d68b2bb363eb4fd65b297075f88e1446ddeac242500eeb4ef0735e105882ff5ba8c44c139b\nb4440e48255c1644bcecf3a1e9958f1ec4901cb5b1122ee5b56ffd02cad1c29c4266999dbb85aa2605c1b125490074d4\na43304a067bede5f347775d5811cf65a6380a8d552a652a0063580b5c5ef12a0867a39c7912fa219e184f4538eba1251\na891ad67a790089ffc9f6d53e6a3d63d3556f5f693e0cd8a7d0131db06fd4520e719cfcc3934f0a8f62a95f90840f1d4\naea6df8e9bb871081aa0fc5a9bafb00be7d54012c5baf653791907d5042a326aeee966fd9012a582cc16695f5baf7042\n8ffa2660dc52ed1cd4eff67d6a84a8404f358a5f713d04328922269bee1e75e9d49afeec0c8ad751620f22352a438e25\n87ec6108e2d63b06abed350f8b363b7489d642486f879a6c3aa90e5b0f335efc2ff2834eef9353951a42136f8e6a1b32\n865619436076c2760d9e87ddc905023c6de0a8d56eef12c98a98c87837f2ca3f27fd26a2ad752252dbcbe2b9f1d5a032\n980437dce55964293cb315c650c5586ffd97e7a944a83f6618af31c9d92c37b53ca7a21bb5bc557c151b9a9e217e7098\n95d128fc369df4ad8316b72aea0ca363cbc7b0620d6d7bb18f7076a8717a6a46956ff140948b0cc4f6d2ce33b5c10054\n8c7212d4a67b9ec70ebbca04358ad2d36494618d2859609163526d7b3acc2fc935ca98519380f55e6550f70a9bc76862\n893a2968819401bf355e85eee0f0ed0406a6d4a7d7f172d0017420f71e00bb0ba984f6020999a3cdf874d3cd8ebcd371\n9103c1af82dece25d87274e89ea0acd7e68c2921c4af3d8d7c82ab0ed9990a5811231b5b06113e7fa43a6bd492b4564f\n99cfd87a94eab7d35466caa4ed7d7bb45e5c932b2ec094258fb14bf205659f83c209b83b2f2c9ccb175974b2a33e7746\n874b6b93e4ee61be3f00c32dd84c897ccd6855c4b6251eb0953b4023634490ed17753cd3223472873cbc6095b2945075\n84a32c0dc4ea60d33aac3e03e70d6d639cc9c4cc435c539eff915017be3b7bdaba33349562a87746291ebe9bc5671f24\na7057b24208928ad67914e653f5ac1792c417f413d9176ba635502c3f9c688f7e2ee81800d7e3dc0a340c464da2fd9c5\na03fb9ed8286aacfa69fbd5d953bec591c2ae4153400983d5dbb6cd9ea37fff46ca9e5cceb9d117f73e9992a6c055ad2\n863b2de04e89936c9a4a2b40380f42f20aefbae18d03750fd816c658aee9c4a03df7b12121f795c85d01f415baaeaa59\n8526eb9bd31790fe8292360d7a4c3eed23be23dd6b8b8f01d2309dbfdc0cfd33ad1568ddd7f8a610f3f85a9dfafc6a92\nb46ab8c5091a493d6d4d60490c40aa27950574a338ea5bbc045be3a114af87bdcb160a8c80435a9b7ad815f3cb56a3f3\naeadc47b41a8d8b4176629557646202f868b1d728b2dda58a347d937e7ffc8303f20d26d6c00b34c851b8aeec547885d\naebb19fc424d72c1f1822aa7adc744cd0ef7e55727186f8df8771c784925058c248406ebeeaf3c1a9ee005a26e9a10c6\n8ff96e81c1a4a2ab1b4476c21018fae0a67e92129ee36120cae8699f2d7e57e891f5c624902cb1b845b944926a605cc3\n8251b8d2c43fadcaa049a9e7aff838dae4fb32884018d58d46403ac5f3beb5c518bfd45f03b8abb710369186075eb71c\na8b2a64f865f51a5e5e86a66455c093407933d9d255d6b61e1fd81ffafc9538d73caaf342338a66ba8ee166372a3d105\naad915f31c6ba7fdc04e2aaac62e84ef434b7ee76a325f07dc430d12c84081999720181067b87d792efd0117d7ee1eab\na13db3bb60389883fd41d565c54fb5180d9c47ce2fe7a169ae96e01d17495f7f4fa928d7e556e7c74319c4c25d653eb2\na4491b0198459b3f552855d680a59214eb74e6a4d6c5fa3b309887dc50ebea2ecf6d26c040550f7dc478b452481466fb\n8f017f13d4b1e3f0c087843582b52d5f8d13240912254d826dd11f8703a99a2f3166dfbdfdffd9a3492979d77524276b\n96c3d5dcd032660d50d7cd9db2914f117240a63439966162b10c8f1f3cf74bc83b0f15451a43b31dbd85e4a7ce0e4bb1\nb479ec4bb79573d32e0ec93b92bdd7ec8c26ddb5a2d3865e7d4209d119fd3499eaac527615ffac78c440e60ef3867ae0\nb2c49c4a33aa94b52b6410b599e81ff15490aafa7e43c8031c865a84e4676354a9c81eb4e7b8be6825fdcefd1e317d44\n906dc51d6a90c089b6704b47592805578a6eed106608eeb276832f127e1b8e858b72e448edcbefb497d152447e0e68ff\nb0e81c63b764d7dfbe3f3fddc9905aef50f3633e5d6a4af6b340495124abedcff5700dfd1577bbbed7b6bf97d02719cb\n9304c64701e3b4ed6d146e48a881f7d83a17f58357cca0c073b2bb593afd2d94f6e2a7a1ec511d0a67ad6ff4c3be5937\nb6fdbd12ba05aa598d80b83f70a15ef90e5cba7e6e75fa038540ee741b644cd1f408a6cecfd2a891ef8d902de586c6b5\nb80557871a6521b1b3c74a1ba083ae055b575df607f1f7b04c867ba8c8c181ea68f8d90be6031f4d25002cca27c44da2\naa7285b8e9712e06b091f64163f1266926a36607f9d624af9996856ed2aaf03a580cb22ce407d1ade436c28b44ca173f\n8148d72b975238b51e6ea389e5486940d22641b48637d7dfadfa603a605bfc6d74a016480023945d0b85935e396aea5d\n8a014933a6aea2684b5762af43dcf4bdbb633cd0428d42d71167a2b6fc563ece5e618bff22f1db2ddb69b845b9a2db19\n990d91740041db770d0e0eb9d9d97d826f09fd354b91c41e0716c29f8420e0e8aac0d575231efba12fe831091ec38d5a\n9454d0d32e7e308ddec57cf2522fb1b67a2706e33fb3895e9e1f18284129ab4f4c0b7e51af25681d248d7832c05eb698\na5bd434e75bac105cb3e329665a35bce6a12f71dd90c15165777d64d4c13a82bceedb9b48e762bd24034e0fc9fbe45f4\nb09e3b95e41800d4dc29c6ffdaab2cd611a0050347f6414f154a47ee20ee59bf8cf7181454169d479ebce1eb5c777c46\nb193e341d6a047d15eea33766d656d807b89393665a783a316e9ba10518e5515c8e0ade3d6e15641d917a8a172a5a635\nade435ec0671b3621dde69e07ead596014f6e1daa1152707a8c18877a8b067bde2895dd47444ffa69db2bbef1f1d8816\na7fd3d6d87522dfc56fb47aef9ce781a1597c56a8bbfd796baba907afdc872f753d732bfda1d3402aee6c4e0c189f52d\na298cb4f4218d0464b2fab393e512bbc477c3225aa449743299b2c3572f065bc3a42d07e29546167ed9e1b6b3b3a3af3\na9ee57540e1fd9c27f4f0430d194b91401d0c642456c18527127d1f95e2dba41c2c86d1990432eb38a692fda058fafde\n81d6c1a5f93c04e6d8e5a7e0678c1fc89a1c47a5c920bcd36180125c49fcf7c114866b90e90a165823560b19898a7c16\na4b7a1ec9e93c899b9fd9aaf264c50e42c36c0788d68296a471f7a3447af4dbc81e4fa96070139941564083ec5b5b5a1\nb3364e327d381f46940c0e11e29f9d994efc6978bf37a32586636c0070b03e4e23d00650c1440f448809e1018ef9f6d8\n8056e0913a60155348300e3a62e28b5e30629a90f7dd4fe11289097076708110a1d70f7855601782a3cdc5bdb1ca9626\nb4980fd3ea17bac0ba9ee1c470b17e575bb52e83ebdd7d40c93f4f87bebeaff1c8a679f9d3d09d635f068d37d5bd28bd\n905a9299e7e1853648e398901dfcd437aa575c826551f83520df62984f5679cb5f0ea86aa45ed3e18b67ddc0dfafe809\nab99553bf31a84f2e0264eb34a08e13d8d15e2484aa9352354becf9a15999c76cc568d68274b70a65e49703fc23540d0\na43681597bc574d2dae8964c9a8dc1a07613d7a1272bdcb818d98c85d44e16d744250c33f3b5e4d552d97396b55e601f\na54e5a31716fccb50245898c99865644405b8dc920ded7a11f3d19bdc255996054b268e16f2e40273f11480e7145f41e\n8134f3ad5ef2ad4ba12a8a4e4d8508d91394d2bcdc38b7c8c8c0b0a820357ac9f79d286c65220f471eb1adca1d98fc68\n94e2f755e60471578ab2c1adb9e9cea28d4eec9b0e92e0140770bca7002c365fcabfe1e5fb4fe6cfe79a0413712aa3ef\nad48f8d0ce7eb3cc6e2a3086ad96f562e5bed98a360721492ae2e74dc158586e77ec8c35d5fd5927376301b7741bad2b\n8614f0630bdd7fbad3a31f55afd9789f1c605dc85e7dc67e2edfd77f5105f878bb79beded6e9f0b109e38ea7da67e8d5\n9804c284c4c5e77dabb73f655b12181534ca877c3e1e134aa3f47c23b7ec92277db34d2b0a5d38d2b69e5d1c3008a3e3\na51b99c3088e473afdaa9e0a9f7e75a373530d3b04e44e1148da0726b95e9f5f0c7e571b2da000310817c36f84b19f7f\nac4ff909933b3b76c726b0a382157cdc74ab851a1ac6cef76953c6444441804cc43abb883363f416592e8f6cfbc4550b\nae7d915eb9fc928b65a29d6edbc75682d08584d0014f7bcf17d59118421ae07d26a02137d1e4de6938bcd1ab8ef48fad\n852f7e453b1af89b754df6d11a40d5d41ea057376e8ecacd705aacd2f917457f4a093d6b9a8801837fa0f62986ad7149\n92c6bf5ada5d0c3d4dd8058483de36c215fa98edab9d75242f3eff9db07c734ad67337da6f0eefe23a487bf75a600dee\na2b42c09d0db615853763552a48d2e704542bbd786aae016eb58acbf6c0226c844f5fb31e428cb6450b9db855f8f2a6f\n880cc07968266dbfdcfbc21815cd69e0eddfee239167ac693fb0413912d816f2578a74f7716eecd6deefa68c6eccd394\nb885b3ace736cd373e8098bf75ba66fa1c6943ca1bc4408cd98ac7074775c4478594f91154b8a743d9c697e1b29f5840\na51ce78de512bd87bfa0835de819941dffbf18bec23221b61d8096fc9436af64e0693c335b54e7bfc763f287bdca2db6\na3c76166a3bdb9b06ef696e57603b58871bc72883ee9d45171a30fe6e1d50e30bc9c51b4a0f5a7270e19a77b89733850\nacefc5c6f8a1e7c24d7b41e0fc7f6f3dc0ede6cf3115ffb9a6e54b1d954cbca9bda8ad7a084be9be245a1b8e9770d141\nb420ed079941842510e31cfad117fa11fb6b4f97dfbc6298cb840f27ebaceba23eeaf3f513bcffbf5e4aae946310182d\n95c3bb5ef26c5ed2f035aa5d389c6b3c15a6705b9818a3fefaed28922158b35642b2e8e5a1a620fdad07e75ad4b43af4\n825149f9081ecf07a2a4e3e8b5d21bade86c1a882475d51c55ee909330b70c5a2ac63771c8600c6f38df716af61a3ea1\n873b935aae16d9f08adbc25353cee18af2f1b8d5f26dec6538d6bbddc515f2217ed7d235dcfea59ae61b428798b28637\n9294150843a2bedcedb3bb74c43eb28e759cf9499582c5430bccefb574a8ddd4f11f9929257ff4c153990f9970a2558f\nb619563a811cc531da07f4f04e5c4c6423010ff9f8ed7e6ec9449162e3d501b269fb1c564c09c0429431879b0f45df02\n91b509b87eb09f007d839627514658c7341bc76d468920fe8a740a8cb96a7e7e631e0ea584a7e3dc1172266f641d0f5c\n8b8aceace9a7b9b4317f1f01308c3904d7663856946afbcea141a1c615e21ccad06b71217413e832166e9dd915fbe098\n87b3b36e725833ea0b0f54753c3728c0dbc87c52d44d705ffc709f2d2394414c652d3283bab28dcce09799504996cee0\nb2670aad5691cbf308e4a6a77a075c4422e6cbe86fdba24e9f84a313e90b0696afb6a067eebb42ba2d10340d6a2f6e51\n876784a9aff3d54faa89b2bacd3ff5862f70195d0b2edc58e8d1068b3c9074c0da1cfa23671fe12f35e33b8a329c0ccd\n8b48b9e758e8a8eae182f5cbec96f67d20cca6d3eee80a2d09208eb1d5d872e09ef23d0df8ebbb9b01c7449d0e3e3650\nb79303453100654c04a487bdcadc9e3578bc80930c489a7069a52e8ca1dba36c492c8c899ce025f8364599899baa287d\n961b35a6111da54ece6494f24dacd5ea46181f55775b5f03df0e370c34a5046ac2b4082925855325bb42bc2a2c98381d\na31feb1be3f5a0247a1f7d487987eb622e34fca817832904c6ee3ee60277e5847945a6f6ea1ac24542c72e47bdf647df\na12a2aa3e7327e457e1aae30e9612715dd2cfed32892c1cd6dcda4e9a18203af8a44afb46d03b2eed89f6b9c5a2c0c23\na08265a838e69a2ca2f80fead6ccf16f6366415b920c0b22ee359bcd8d4464ecf156f400a16a7918d52e6d733dd64211\nb723d6344e938d801cca1a00032af200e541d4471fd6cbd38fb9130daa83f6a1dffbbe7e67fc20f9577f884acd7594b2\na6733d83ec78ba98e72ddd1e7ff79b7adb0e559e256760d0c590a986e742445e8cdf560d44b29439c26d87edd0b07c8c\na61c2c27d3f7b9ff4695a17afedf63818d4bfba390507e1f4d0d806ce8778d9418784430ce3d4199fd3bdbc2504d2af3\n8332f3b63a6dc985376e8b1b25eeae68be6160fbe40053ba7bcf6f073204f682da72321786e422d3482fd60c9e5aa034\na280f44877583fbb6b860d500b1a3f572e3ee833ec8f06476b3d8002058e25964062feaa1e5bec1536d734a5cfa09145\na4026a52d277fcea512440d2204f53047718ebfcae7b48ac57ea7f6bfbc5de9d7304db9a9a6cbb273612281049ddaec5\n95cdf69c831ab2fad6c2535ede9c07e663d2ddccc936b64e0843d2df2a7b1c31f1759c3c20f1e7a57b1c8f0dbb21b540\n95c96cec88806469c277ab567863c5209027cecc06c7012358e5f555689c0d9a5ffb219a464f086b45817e8536b86d2f\nafe38d4684132a0f03d806a4c8df556bf589b25271fbc6fe2e1ed16de7962b341c5003755da758d0959d2e6499b06c68\na9b77784fda64987f97c3a23c5e8f61b918be0f7c59ba285084116d60465c4a2aaafc8857eb16823282cc83143eb9126\na830f05881ad3ce532a55685877f529d32a5dbe56cea57ffad52c4128ee0fad0eeaf0da4362b55075e77eda7babe70e5\n992b3ad190d6578033c13ed5abfee4ef49cbc492babb90061e3c51ee4b5790cdd4c8fc1abff1fa2c00183b6b64f0bbbe\nb1015424d9364aeff75de191652dc66484fdbec3e98199a9eb9671ec57bec6a13ff4b38446e28e4d8aedb58dd619cd90\na745304604075d60c9db36cada4063ac7558e7ec2835d7da8485e58d8422e817457b8da069f56511b02601289fbb8981\na5ba4330bc5cb3dbe0486ddf995632a7260a46180a08f42ae51a2e47778142132463cc9f10021a9ad36986108fefa1a9\nb419e9fd4babcaf8180d5479db188bb3da232ae77a1c4ed65687c306e6262f8083070a9ac32220cddb3af2ec73114092\na49e23dc5f3468f3bf3a0bb7e4a114a788b951ff6f23a3396ae9e12cbff0abd1240878a3d1892105413dbc38818e807c\nb7ecc7b4831f650202987e85b86bc0053f40d983f252e9832ef503aea81c51221ce93279da4aa7466c026b2d2070e55d\n96a8c35cb87f84fa84dcd6399cc2a0fd79cc9158ef4bdde4bae31a129616c8a9f2576cd19baa3f497ca34060979aed7d\n8681b2c00aa62c2b519f664a95dcb8faef601a3b961bb4ce5d85a75030f40965e2983871d41ea394aee934e859581548\n85c229a07efa54a713d0790963a392400f55fbb1a43995a535dc6c929f20d6a65cf4efb434e0ad1cb61f689b8011a3bc\n90856f7f3444e5ad44651c28e24cc085a5db4d2ffe79aa53228c26718cf53a6e44615f3c5cda5aa752d5f762c4623c66\n978999b7d8aa3f28a04076f74d11c41ef9c89fdfe514936c4238e0f13c38ec97e51a5c078ebc6409e517bfe7ccb42630\na099914dd7ed934d8e0d363a648e9038eb7c1ec03fa04dbcaa40f7721c618c3ef947afef7a16b4d7ac8c12aa46637f03\nab2a104fed3c83d16f2cda06878fa5f30c8c9411de71bfb67fd2fc9aa454dcbcf3d299d72f8cc12e919466a50fcf7426\na4471d111db4418f56915689482f6144efc4664cfb0311727f36c864648d35734351becc48875df96f4abd3cfcf820f9\n83be11727cd30ea94ccc8fa31b09b81c9d6a9a5d3a4686af9da99587332fe78c1f94282f9755854bafd6033549afec91\n88020ff971dc1a01a9e993cd50a5d2131ffdcbb990c1a6aaa54b20d8f23f9546a70918ea57a21530dcc440c1509c24ad\nae24547623465e87905eaffa1fa5d52bb7c453a8dbd89614fa8819a2abcedaf455c2345099b7324ae36eb0ad7c8ef977\nb59b0c60997de1ee00b7c388bc7101d136c9803bf5437b1d589ba57c213f4f835a3e4125b54738e78abbc21b000f2016\na584c434dfe194546526691b68fa968c831c31da42303a1d735d960901c74011d522246f37f299555416b8cf25c5a548\n80408ce3724f4837d4d52376d255e10f69eb8558399ae5ca6c11b78b98fe67d4b93157d2b9b639f1b5b64198bfe87713\nabb941e8d406c2606e0ddc35c113604fdd9d249eacc51cb64e2991e551b8639ce44d288cc92afa7a1e7fc599cfc84b22\nb223173f560cacb1c21dba0f1713839e348ad02cbfdef0626748604c86f89e0f4c919ed40b583343795bdd519ba952c8\naf1c70512ec3a19d98b8a1fc3ff7f7f5048a27d17d438d43f561974bbdd116fcd5d5c21040f3447af3f0266848d47a15\n8a44809568ebe50405bede19b4d2607199159b26a1b33e03d180e6840c5cf59d991a4fb150d111443235d75ecad085b7\nb06207cdca46b125a27b3221b5b50cf27af4c527dd7c80e2dbcebbb09778a96df3af67e50f07725239ce3583dad60660\n993352d9278814ec89b26a11c4a7c4941bf8f0e6781ae79559d14749ee5def672259792db4587f85f0100c7bb812f933\n9180b8a718b971fd27bc82c8582d19c4b4f012453e8c0ffeeeffe745581fc6c07875ab28be3af3fa3896d19f0c89ac5b\n8b8e1263eb48d0fe304032dd5ea1f30e73f0121265f7458ba9054d3626894e8a5fef665340abd2ede9653045c2665938\n99a2beee4a10b7941c24b2092192faf52b819afd033e4a2de050fd6c7f56d364d0cf5f99764c3357cf32399e60fc5d74\n946a4aad7f8647ea60bee2c5fcdeb6f9a58fb2cfca70c4d10e458027a04846e13798c66506151be3df9454b1e417893f\na672a88847652d260b5472d6908d1d57e200f1e492d30dd1cecc441cdfc9b76e016d9bab560efd4d7f3c30801de884a9\n9414e1959c156cde1eb24e628395744db75fc24b9df4595350aaad0bc38e0246c9b4148f6443ef68b8e253a4a6bcf11c\n9316e9e4ec5fab4f80d6540df0e3a4774db52f1d759d2e5b5bcd3d7b53597bb007eb1887cb7dc61f62497d51ffc8d996\n902d6d77bb49492c7a00bc4b70277bc28c8bf9888f4307bb017ac75a962decdedf3a4e2cf6c1ea9f9ba551f4610cbbd7\nb07025a18b0e32dd5e12ec6a85781aa3554329ea12c4cd0d3b2c22e43d777ef6f89876dd90a9c8fb097ddf61cf18adc5\nb355a849ad3227caa4476759137e813505ec523cbc2d4105bc7148a4630f9e81918d110479a2d5f5e4cd9ccec9d9d3e3\nb49532cfdf02ee760109881ad030b89c48ee3bb7f219ccafc13c93aead754d29bdafe345be54c482e9d5672bd4505080\n9477802410e263e4f938d57fa8f2a6cac7754c5d38505b73ee35ea3f057aad958cb9722ba6b7b3cfc4524e9ca93f9cdc\n9148ea83b4436339580f3dbc9ba51509e9ab13c03063587a57e125432dd0915f5d2a8f456a68f8fff57d5f08c8f34d6e\nb00b6b5392b1930b54352c02b1b3b4f6186d20bf21698689bbfc7d13e86538a4397b90e9d5c93fd2054640c4dbe52a4f\n926a9702500441243cd446e7cbf15dde16400259726794694b1d9a40263a9fc9e12f7bcbf12a27cb9aaba9e2d5848ddc\na0c6155f42686cbe7684a1dc327100962e13bafcf3db97971fc116d9f5c0c8355377e3d70979cdbd58fd3ea52440901c\na277f899f99edb8791889d0817ea6a96c24a61acfda3ad8c3379e7c62b9d4facc4b965020b588651672fd261a77f1bfc\n8f528cebb866b501f91afa50e995234bef5bf20bff13005de99cb51eaac7b4f0bf38580cfd0470de40f577ead5d9ba0f\n963fc03a44e9d502cc1d23250efef44d299befd03b898d07ce63ca607bb474b5cf7c965a7b9b0f32198b04a8393821f7\nab087438d0a51078c378bf4a93bd48ef933ff0f1fa68d02d4460820df564e6642a663b5e50a5fe509527d55cb510ae04\nb0592e1f2c54746bb076be0fa480e1c4bebc4225e1236bcda3b299aa3853e3afb401233bdbcfc4a007b0523a720fbf62\n851613517966de76c1c55a94dc4595f299398a9808f2d2f0a84330ba657ab1f357701d0895f658c18a44cb00547f6f57\na2fe9a1dd251e72b0fe4db27be508bb55208f8f1616b13d8be288363ec722826b1a1fd729fc561c3369bf13950bf1fd6\nb896cb2bc2d0c77739853bc59b0f89b2e008ba1f701c9cbe3bef035f499e1baee8f0ff1e794854a48c320586a2dfc81a\na1b60f98e5e5106785a9b81a85423452ee9ef980fa7fa8464f4366e73f89c50435a0c37b2906052b8e58e212ebd366cf\na853b0ebd9609656636df2e6acd5d8839c0fda56f7bf9288a943b06f0b67901a32b95e016ca8bc99bd7b5eab31347e72\nb290fa4c1346963bd5225235e6bdf7c542174dab4c908ab483d1745b9b3a6015525e398e1761c90e4b49968d05e30eea\nb0f65a33ad18f154f1351f07879a183ad62e5144ad9f3241c2d06533dad09cbb2253949daff1bb02d24d16a3569f7ef0\na00db59b8d4218faf5aeafcd39231027324408f208ec1f54d55a1c41228b463b88304d909d16b718cfc784213917b71e\nb8d695dd33dc2c3bc73d98248c535b2770ad7fa31aa726f0aa4b3299efb0295ba9b4a51c71d314a4a1bd5872307534d1\nb848057cca2ca837ee49c42b88422303e58ea7d2fc76535260eb5bd609255e430514e927cc188324faa8e657396d63ec\n92677836061364685c2aaf0313fa32322746074ed5666fd5f142a7e8f87135f45cd10e78a17557a4067a51dfde890371\na854b22c9056a3a24ab164a53e5c5cf388616c33e67d8ebb4590cb16b2e7d88b54b1393c93760d154208b5ca822dc68f\n86fff174920388bfab841118fb076b2b0cdec3fdb6c3d9a476262f82689fb0ed3f1897f7be9dbf0932bb14d346815c63\n99661cf4c94a74e182752bcc4b98a8c2218a8f2765642025048e12e88ba776f14f7be73a2d79bd21a61def757f47f904\n8a8893144d771dca28760cba0f950a5d634195fd401ec8cf1145146286caffb0b1a6ba0c4c1828d0a5480ce49073c64c\n938a59ae761359ee2688571e7b7d54692848eb5dde57ffc572b473001ea199786886f8c6346a226209484afb61d2e526\n923f68a6aa6616714cf077cf548aeb845bfdd78f2f6851d8148cba9e33a374017f2f3da186c39b82d14785a093313222\nac923a93d7da7013e73ce8b4a2b14b8fd0cc93dc29d5de941a70285bdd19be4740fedfe0c56b046689252a3696e9c5bc\nb49b32c76d4ec1a2c68d4989285a920a805993bc6fcce6dacd3d2ddae73373050a5c44ba8422a3781050682fa0ef6ba2\n8a367941c07c3bdca5712524a1411bad7945c7c48ffc7103b1d4dff2c25751b0624219d1ccde8c3f70c465f954be5445\nb838f029df455efb6c530d0e370bbbf7d87d61a9aea3d2fe5474c5fe0a39cf235ceecf9693c5c6c5820b1ba8f820bd31\na8983b7c715eaac7f13a001d2abc462dfc1559dab4a6b554119c271aa8fe00ffcf6b6949a1121f324d6d26cb877bcbae\na2afb24ad95a6f14a6796315fbe0d8d7700d08f0cfaf7a2abe841f5f18d4fecf094406cbd54da7232a159f9c5b6e805e\n87e8e95ad2d62f947b2766ff405a23f7a8afba14e7f718a691d95369c79955cdebe24c54662553c60a3f55e6322c0f6f\n87c2cbcecb754e0cc96128e707e5c5005c9de07ffd899efa3437cadc23362f5a1d3fcdd30a1f5bdc72af3fb594398c2a\n91afd6ee04f0496dc633db88b9370d41c428b04fd991002502da2e9a0ef051bcd7b760e860829a44fbe5539fa65f8525\n8c50e5d1a24515a9dd624fe08b12223a75ca55196f769f24748686315329b337efadca1c63f88bee0ac292dd0a587440\n8a07e8f912a38d94309f317c32068e87f68f51bdfa082d96026f5f5f8a2211621f8a3856dda8069386bf15fb2d28c18f\n94ad1dbe341c44eeaf4dc133eed47d8dbfe752575e836c075745770a6679ff1f0e7883b6aa917462993a7f469d74cab5\n8745f8bd86c2bb30efa7efb7725489f2654f3e1ac4ea95bd7ad0f3cfa223055d06c187a16192d9d7bdaea7b050c6a324\n900d149c8d79418cda5955974c450a70845e02e5a4ecbcc584a3ca64d237df73987c303e3eeb79da1af83bf62d9e579f\n8f652ab565f677fb1a7ba03b08004e3cda06b86c6f1b0b9ab932e0834acf1370abb2914c15b0d08327b5504e5990681c\n9103097d088be1f75ab9d3da879106c2f597e2cc91ec31e73430647bdd5c33bcfd771530d5521e7e14df6acda44f38a6\nb0fec7791cfb0f96e60601e1aeced9a92446b61fedab832539d1d1037558612d78419efa87ff5f6b7aab8fd697d4d9de\nb9d2945bdb188b98958854ba287eb0480ef614199c4235ce5f15fc670b8c5ffe8eeb120c09c53ea8a543a022e6a321ac\na9461bb7d5490973ebaa51afc0bb4a5e42acdccb80e2f939e88b77ac28a98870e103e1042899750f8667a8cc9123bae9\na37fdf11d4bcb2aed74b9f460a30aa34afea93386fa4cdb690f0a71bc58f0b8df60bec56e7a24f225978b862626fa00e\na214420e183e03d531cf91661466ea2187d84b6e814b8b20b3730a9400a7d25cf23181bb85589ebc982cec414f5c2923\nad09a45a698a6beb3e0915f540ef16e9af7087f53328972532d6b5dfe98ce4020555ece65c6cbad8bd6be8a4dfefe6fd\nab6742800b02728c92d806976764cb027413d6f86edd08ad8bb5922a2969ee9836878cd39db70db0bd9a2646862acc4f\n974ca9305bd5ea1dc1755dff3b63e8bfe9f744321046c1395659bcea2a987b528e64d5aa96ac7b015650b2253b37888d\n84eee9d6bce039c52c2ebc4fccc0ad70e20c82f47c558098da4be2f386a493cbc76adc795b5488c8d11b6518c2c4fab8\n875d7bda46efcb63944e1ccf760a20144df3b00d53282b781e95f12bfc8f8316dfe6492c2efbf796f1150e36e436e9df\nb68a2208e0c587b5c31b5f6cb32d3e6058a9642e2d9855da4f85566e1412db528475892060bb932c55b3a80877ad7b4a\nba006368ecab5febb6ab348644d9b63de202293085ed468df8bc24d992ae8ce468470aa37f36a73630c789fb9c819b30\n90a196035150846cd2b482c7b17027471372a8ce7d914c4d82b6ea7fa705d8ed5817bd42d63886242585baf7d1397a1c\na223b4c85e0daa8434b015fd9170b5561fe676664b67064974a1e9325066ecf88fc81f97ab5011c59fad28cedd04b240\n82e8ec43139cf15c6bbeed484b62e06cded8a39b5ce0389e4cbe9c9e9c02f2f0275d8d8d4e8dfec8f69a191bef220408\n81a3fc07a7b68d92c6ee4b6d28f5653ee9ec85f7e2ee1c51c075c1b130a8c5097dc661cf10c5aff1c7114b1a6a19f11a\n8ed2ef8331546d98819a5dd0e6c9f8cb2630d0847671314a28f277faf68da080b53891dd75c82cbcf7788b255490785d\nacecabf84a6f9bbed6b2fc2e7e4b48f02ef2f15e597538a73aea8f98addc6badda15e4695a67ecdb505c1554e8f345ec\nb8f51019b2aa575f8476e03dcadf86cc8391f007e5f922c2a36b2daa63f5a503646a468990cd5c65148d323942193051\naaa595a84b403ec65729bc1c8055a94f874bf9adddc6c507b3e1f24f79d3ad359595a672b93aab3394db4e2d4a7d8970\n895144c55fcbd0f64d7dd69e6855cfb956e02b5658eadf0f026a70703f3643037268fdd673b0d21b288578a83c6338dd\na2e92ae6d0d237d1274259a8f99d4ea4912a299816350b876fba5ebc60b714490e198a916e1c38c6e020a792496fa23c\na45795fda3b5bb0ad1d3c628f6add5b2a4473a1414c1a232e80e70d1cfffd7f8a8d9861f8df2946999d7dbb56bf60113\nb6659bf7f6f2fef61c39923e8c23b8c70e9c903028d8f62516d16755cd3fba2fe41c285aa9432dc75ab08f8a1d8a81fc\na735609a6bc5bfd85e58234fc439ff1f58f1ff1dd966c5921d8b649e21f006bf2b8642ad8a75063c159aaf6935789293\na3c622eb387c9d15e7bda2e3e84d007cb13a6d50d655c3f2f289758e49d3b37b9a35e4535d3cc53d8efd51f407281f19\n8afe147b53ad99220f5ef9d763bfc91f9c20caecbcf823564236fb0e6ede49414c57d71eec4772c8715cc65a81af0047\nb5f0203233cf71913951e9c9c4e10d9243e3e4a1f2cb235bf3f42009120ba96e04aa414c9938ea8873b63148478927e8\n93c52493361b458d196172d7ba982a90a4f79f03aa8008edc322950de3ce6acf4c3977807a2ffa9e924047e02072b229\nb9e72b805c8ac56503f4a86c82720afbd5c73654408a22a2ac0b2e5caccdfb0e20b59807433a6233bc97ae58cf14c70a\naf0475779b5cee278cca14c82da2a9f9c8ef222eb885e8c50cca2315fea420de6e04146590ed0dd5a29c0e0812964df5\nb430ccab85690db02c2d0eb610f3197884ca12bc5f23c51e282bf3a6aa7e4a79222c3d8761454caf55d6c01a327595f9\n830032937418b26ee6da9b5206f3e24dc76acd98589e37937e963a8333e5430abd6ce3dd93ef4b8997bd41440eed75d6\n8820a6d73180f3fe255199f3f175c5eb770461ad5cfdde2fb11508041ed19b8c4ce66ad6ecebf7d7e836cc2318df47ca\naef1393e7d97278e77bbf52ef6e1c1d5db721ccf75fe753cf47a881fa034ca61eaa5098ee5a344c156d2b14ff9e284ad\n8a4a26c07218948c1196c45d927ef4d2c42ade5e29fe7a91eaebe34a29900072ce5194cf28d51f746f4c4c649daf4396\n84011dc150b7177abdcb715efbd8c201f9cb39c36e6069af5c50a096021768ba40cef45b659c70915af209f904ede3b6\nb1bd90675411389bb66910b21a4bbb50edce5330850c5ab0b682393950124252766fc81f5ecfc72fb7184387238c402e\n8dfdcd30583b696d2c7744655f79809f451a60c9ad5bf1226dc078b19f4585d7b3ef7fa9d54e1ac09520d95cbfd20928\nb351b4dc6d98f75b8e5a48eb7c6f6e4b78451991c9ba630e5a1b9874c15ac450cd409c1a024713bf2cf82dc400e025ef\na462b8bc97ac668b97b28b3ae24b9f5de60e098d7b23ecb600d2194cd35827fb79f77c3e50d358f5bd72ee83fef18fa0\na183753265c5f7890270821880cce5f9b2965b115ba783c6dba9769536f57a04465d7da5049c7cf8b3fcf48146173c18\na8a771b81ed0d09e0da4d79f990e58eabcd2be3a2680419502dd592783fe52f657fe55125b385c41d0ba3b9b9cf54a83\na71ec577db46011689d073245e3b1c3222a9b1fe6aa5b83629adec5733dd48617ebea91346f0dd0e6cdaa86e4931b168\na334b8b244f0d598a02da6ae0f918a7857a54dce928376c4c85df15f3b0f2ba3ac321296b8b7c9dd47d770daf16c8f8c\na29037f8ef925c417c90c4df4f9fb27fb977d04e2b3dd5e8547d33e92ab72e7a00f5461de21e28835319eae5db145eb7\nb91054108ae78b00e3298d667b913ebc44d8f26e531eae78a8fe26fdfb60271c97efb2dee5f47ef5a3c15c8228138927\n926c13efbe90604f6244be9315a34f72a1f8d1aab7572df431998949c378cddbf2fe393502c930fff614ff06ae98a0ce\n995c758fd5600e6537089b1baa4fbe0376ab274ff3e82a17768b40df6f91c2e443411de9cafa1e65ea88fb8b87d504f4\n9245ba307a7a90847da75fca8d77ec03fdfc812c871e7a2529c56a0a79a6de16084258e7a9ac4ae8a3756f394336e21c\n99e0cfa2bb57a7e624231317044c15e52196ecce020db567c8e8cb960354a0be9862ee0c128c60b44777e65ac315e59f\nad4f6b3d27bbbb744126601053c3dc98c07ff0eb0b38a898bd80dce778372846d67e5ab8fb34fb3ad0ef3f235d77ba7f\na0f12cae3722bbbca2e539eb9cc7614632a2aefe51410430070a12b5bc5314ecec5857b7ff8f41e9980cac23064f7c56\nb487f1bc59485848c98222fd3bc36c8c9bb3d2912e2911f4ceca32c840a7921477f9b1fe00877e05c96c75d3eecae061\na6033db53925654e18ecb3ce715715c36165d7035db9397087ac3a0585e587998a53973d011ac6d48af439493029cee6\na6b4d09cd01c70a3311fd131d3710ccf97bde3e7b80efd5a8c0eaeffeb48cca0f951ced905290267b115b06d46f2693b\na9dff1df0a8f4f218a98b6f818a693fb0d611fed0fc3143537cbd6578d479af13a653a8155e535548a2a0628ae24fa58\na58e469f65d366b519f9a394cacb7edaddac214463b7b6d62c2dbc1316e11c6c5184ce45c16de2d77f990dcdd8b55430\n989e71734f8119103586dc9a3c5f5033ddc815a21018b34c1f876cdfc112efa868d5751bf6419323e4e59fa6a03ece1c\na2da00e05036c884369e04cf55f3de7d659cd5fa3f849092b2519dd263694efe0f051953d9d94b7e121f0aee8b6174d7\n968f3c029f57ee31c4e1adea89a7f92e28483af9a74f30fbdb995dc2d40e8e657dff8f8d340d4a92bf65f54440f2859f\n932778df6f60ac1639c1453ef0cbd2bf67592759dcccb3e96dcc743ff01679e4c7dd0ef2b0833dda548d32cb4eba49e2\na805a31139f8e0d6dae1ac87d454b23a3dc9fc653d4ca18d4f8ebab30fc189c16e73981c2cb7dd6f8c30454a5208109d\na9ba0991296caa2aaa4a1ceacfb205544c2a2ec97088eace1d84ee5e2767656a172f75d2f0c4e16a3640a0e0dec316e0\nb1e49055c968dced47ec95ae934cf45023836d180702e20e2df57e0f62fb85d7ac60d657ba3ae13b8560b67210449459\na94e1da570a38809c71e37571066acabff7bf5632737c9ab6e4a32856924bf6211139ab3cedbf083850ff2d0e0c0fcfc\n88ef1bb322000c5a5515b310c838c9af4c1cdbb32eab1c83ac3b2283191cd40e9573747d663763a28dad0d64adc13840\na987ce205f923100df0fbd5a85f22c9b99b9b9cbe6ddfa8dfda1b8fe95b4f71ff01d6c5b64ca02eb24edb2b255a14ef0\n84fe8221a9e95d9178359918a108de4763ebfa7a6487facb9c963406882a08a9a93f492f8e77cf9e7ea41ae079c45993\naa1cf3dc7c5dcfa15bbbc811a4bb6dbac4fba4f97fb1ed344ab60264d7051f6eef19ea9773441d89929ee942ed089319\n8f6a7d610d59d9f54689bbe6a41f92d9f6096cde919c1ab94c3c7fcecf0851423bc191e5612349e10f855121c0570f56\nb5af1fa7894428a53ea520f260f3dc3726da245026b6d5d240625380bfb9c7c186df0204bb604efac5e613a70af5106e\na5bce6055ff812e72ce105f147147c7d48d7a2313884dd1f488b1240ee320f13e8a33f5441953a8e7a3209f65b673ce1\nb9b55b4a1422677d95821e1d042ab81bbf0bf087496504021ec2e17e238c2ca6b44fb3b635a5c9eac0871a724b8d47c3\n941c38e533ce4a673a3830845b56786585e5fe49c427f2e5c279fc6db08530c8f91db3e6c7822ec6bb4f956940052d18\na38e191d66c625f975313c7007bbe7431b5a06ed2da1290a7d5d0f2ec73770d476efd07b8e632de64597d47df175cbb0\n94ba76b667abf055621db4c4145d18743a368d951565632ed4e743dd50dd3333507c0c34f286a5c5fdbf38191a2255cd\na5ca38c60be5602f2bfa6e00c687ac96ac36d517145018ddbee6f12eb0faa63dd57909b9eeed26085fe5ac44e55d10ab\nb00fea3b825e60c1ed1c5deb4b551aa65a340e5af36b17d5262c9cd2c508711e4dc50dc2521a2c16c7c901902266e64a\n971b86fc4033485e235ccb0997a236206ba25c6859075edbcdf3c943116a5030b7f75ebca9753d863a522ba21a215a90\nb3b31f52370de246ee215400975b674f6da39b2f32514fe6bd54e747752eedca22bb840493b44a67df42a3639c5f901f\naffbbfac9c1ba7cbfa1839d2ae271dd6149869b75790bf103230637da41857fc326ef3552ff31c15bda0694080198143\na95d42aa7ef1962520845aa3688f2752d291926f7b0d73ea2ee24f0612c03b43f2b0fe3c9a9a99620ffc8d487b981bc2\n914a266065caf64985e8c5b1cb2e3f4e3fe94d7d085a1881b1fefa435afef4e1b39a98551d096a62e4f5cc1a7f0fdc2e\n81a0b4a96e2b75bc1bf2dbd165d58d55cfd259000a35504d1ffb18bc346a3e6f07602c683723864ffb980f840836fd8d\n91c1556631cddd4c00b65b67962b39e4a33429029d311c8acf73a18600e362304fb68bccb56fde40f49e95b7829e0b87\n8befbacc19e57f7c885d1b7a6028359eb3d80792fe13b92a8400df21ce48deb0bb60f2ddb50e3d74f39f85d7eab23adc\n92f9458d674df6e990789690ec9ca73dacb67fc9255b58c417c555a8cc1208ace56e8e538f86ba0f3615573a0fbac00d\nb4b1b3062512d6ae7417850c08c13f707d5838e43d48eb98dd4621baf62eee9e82348f80fe9b888a12874bfa538771f8\na13c4a3ac642ede37d9c883f5319e748d2b938f708c9d779714108a449b343f7b71a6e3ef4080fee125b416762920273\naf44983d5fc8cceee0551ef934e6e653f2d3efa385e5c8a27a272463a6f333e290378cc307c2b664eb923c78994e706e\na389fd6c59fe2b4031cc244e22d3991e541bd203dd5b5e73a6159e72df1ab41d49994961500dcde7989e945213184778\n8d2141e4a17836c548de9598d7b298b03f0e6c73b7364979a411c464e0628e21cff6ac3d6decdba5d1c4909eff479761\n980b22ef53b7bdf188a3f14bc51b0dbfdf9c758826daa3cbc1e3986022406a8aa9a6a79e400567120b88c67faa35ce5f\na28882f0a055f96df3711de5d0aa69473e71245f4f3e9aa944e9d1fb166e02caa50832e46da6d3a03b4801735fd01b29\n8db106a37d7b88f5d995c126abb563934dd8de516af48e85695d02b1aea07f79217e3cdd03c6f5ca57421830186c772b\nb5a7e50da0559a675c472f7dfaee456caab6695ab7870541b2be8c2b118c63752427184aad81f0e1afc61aef1f28c46f\n9962118780e20fe291d10b64f28d09442a8e1b5cffd0f3dd68d980d0614050a626c616b44e9807fbee7accecae00686a\nb38ddf33745e8d2ad6a991aefaf656a33c5f8cbe5d5b6b6fd03bd962153d8fd0e01b5f8f96d80ae53ab28d593ab1d4e7\n857dc12c0544ff2c0c703761d901aba636415dee45618aba2e3454ff9cbc634a85c8b05565e88520ff9be2d097c8b2b1\na80d465c3f8cc63af6d74a6a5086b626c1cb4a8c0fee425964c3bd203d9d7094e299f81ce96d58afc20c8c9a029d9dae\n89e1c8fbde8563763be483123a3ed702efac189c6d8ab4d16c85e74bbaf856048cc42d5d6e138633a38572ba5ec3f594\n893a594cf495535f6d216508f8d03c317dcf03446668cba688da90f52d0111ac83d76ad09bf5ea47056846585ee5c791\naadbd8be0ae452f7f9450c7d2957598a20cbf10139a4023a78b4438172d62b18b0de39754dd2f8862dbd50a3a0815e53\nae7d39670ecca3eb6db2095da2517a581b0e8853bdfef619b1fad9aacd443e7e6a40f18209fadd44038a55085c5fe8b2\n866ef241520eacb6331593cfcb206f7409d2f33d04542e6e52cba5447934e02d44c471f6c9a45963f9307e9809ab91d9\nb1a09911ad3864678f7be79a9c3c3eb5c84a0a45f8dcb52c67148f43439aeaaa9fd3ed3471276b7e588b49d6ebe3033a\nadd07b7f0dbb34049cd8feeb3c18da5944bf706871cfd9f14ff72f6c59ad217ebb1f0258b13b167851929387e4e34cfe\nae048892d5c328eefbdd4fba67d95901e3c14d974bfc0a1fc68155ca9f0d59e61d7ba17c6c9948b120cf35fd26e6fee9\n9185b4f3b7da0ddb4e0d0f09b8a9e0d6943a4611e43f13c3e2a767ed8592d31e0ba3ebe1914026a3627680274291f6e5\na9c022d4e37b0802284ce3b7ee9258628ab4044f0db4de53d1c3efba9de19d15d65cc5e608dbe149c21c2af47d0b07b5\nb24dbd5852f8f24921a4e27013b6c3fa8885b973266cb839b9c388efad95821d5d746348179dcc07542bd0d0aefad1ce\nb5fb4f279300876a539a27a441348764908bc0051ebd66dc51739807305e73db3d2f6f0f294ffb91b508ab150eaf8527\nace50841e718265b290c3483ed4b0fdd1175338c5f1f7530ae9a0e75d5f80216f4de37536adcbc8d8c95982e88808cd0\nb19cadcde0f63bd1a9c24bd9c2806f53c14c0b9735bf351601498408ba503ddbd2037c891041cbba47f58b8c483f3b21\nb6061e63558d312eb891b97b39aa552fa218568d79ee26fe6dd5b864aea9e3216d8f2e2f3b093503be274766dac41426\n89730fdb2876ab6f0fe780d695f6e12090259027e789b819956d786e977518057e5d1d7f5ab24a3ae3d5d4c97773bd2b\nb6fa841e81f9f2cad0163a02a63ae96dc341f7ae803b616efc6e1da2fbea551c1b96b11ad02c4afbdf6d0cc9f23da172\n8fb66187182629c861ddb6896d7ed3caf2ad050c3dba8ab8eb0d7a2c924c3d44c48d1a148f9e33fb1f061b86972f8d21\n86022ac339c1f84a7fa9e05358c1a5b316b4fc0b83dbe9c8c7225dc514f709d66490b539359b084ce776e301024345fa\nb50b9c321468da950f01480bb62b6edafd42f83c0001d6e97f2bd523a1c49a0e8574fb66380ea28d23a7c4d54784f9f0\na31c05f7032f30d1dac06678be64d0250a071fd655e557400e4a7f4c152be4d5c7aa32529baf3e5be7c4bd49820054f6\nb95ac0848cd322684772119f5b682d90a66bbf9dac411d9d86d2c34844bbd944dbaf8e47aa41380455abd51687931a78\nae4a6a5ce9553b65a05f7935e61e496a4a0f6fd8203367a2c627394c9ce1e280750297b74cdc48fd1d9a31e93f97bef4\na22daf35f6e9b05e52e0b07f7bd1dbbebd2c263033fb0e1b2c804e2d964e2f11bc0ece6aca6af079dd3a9939c9c80674\n902150e0cb1f16b9b59690db35281e28998ce275acb313900da8b2d8dfd29fa1795f8ca3ff820c31d0697de29df347c1\nb17b5104a5dc665cdd7d47e476153d715eb78c6e5199303e4b5445c21a7fa7cf85fe7cfd08d7570f4e84e579b005428c\na03f49b81c15433f121680aa02d734bb9e363af2156654a62bcb5b2ba2218398ccb0ff61104ea5d7df5b16ea18623b1e\n802101abd5d3c88876e75a27ffc2f9ddcce75e6b24f23dba03e5201281a7bd5cc7530b6a003be92d225093ca17d3c3bb\na4d183f63c1b4521a6b52226fc19106158fc8ea402461a5cccdaa35fee93669df6a8661f45c1750cd01308149b7bf08e\n8d17c22e0c8403b69736364d460b3014775c591032604413d20a5096a94d4030d7c50b9fe3240e31d0311efcf9816a47\n947225acfcce5992eab96276f668c3cbe5f298b90a59f2bb213be9997d8850919e8f496f182689b5cbd54084a7332482\n8df6f4ed216fc8d1905e06163ba1c90d336ab991a18564b0169623eb39b84e627fa267397da15d3ed754d1f3423bff07\n83480007a88f1a36dea464c32b849a3a999316044f12281e2e1c25f07d495f9b1710b4ba0d88e9560e72433addd50bc2\nb3019d6e591cf5b33eb972e49e06c6d0a82a73a75d78d383dd6f6a4269838289e6e07c245f54fed67f5c9bb0fd5e1c5f\n92e8ce05e94927a9fb02debadb99cf30a26172b2705003a2c0c47b3d8002bf1060edb0f6a5750aad827c98a656b19199\nac2aff801448dbbfc13cca7d603fd9c69e82100d997faf11f465323b97255504f10c0c77401e4d1890339d8b224f5803\nb0453d9903d08f508ee27e577445dc098baed6cde0ac984b42e0f0efed62760bd58d5816cf1e109d204607b7b175e30c\nae68dc4ba5067e825d46d2c7c67f1009ceb49d68e8d3e4c57f4bcd299eb2de3575d42ea45e8722f8f28497a6e14a1cfe\nb22486c2f5b51d72335ce819bbafb7fa25eb1c28a378a658f13f9fc79cd20083a7e573248d911231b45a5cf23b561ca7\n89d1201d1dbd6921867341471488b4d2fd0fc773ae1d4d074c78ae2eb779a59b64c00452c2a0255826fca6b3d03be2b1\na2998977c91c7a53dc6104f5bc0a5b675e5350f835e2f0af69825db8af4aeb68435bdbcc795f3dd1f55e1dd50bc0507f\nb0be4937a925b3c05056ed621910d535ccabf5ab99fd3b9335080b0e51d9607d0fd36cb5781ff340018f6acfca4a9736\naea145a0f6e0ba9df8e52e84bb9c9de2c2dc822f70d2724029b153eb68ee9c17de7d35063dcd6a39c37c59fdd12138f7\n91cb4545d7165ee8ffbc74c874baceca11fdebbc7387908d1a25877ca3c57f2c5def424dab24148826832f1e880bede0\nb3b579cb77573f19c571ad5eeeb21f65548d7dff9d298b8d7418c11f3e8cd3727c5b467f013cb87d6861cfaceee0d2e3\nb98a1eeec2b19fecc8378c876d73645aa52fb99e4819903735b2c7a885b242787a30d1269a04bfb8573d72d9bbc5f0f0\n940c1f01ed362bd588b950c27f8cc1d52276c71bb153d47f07ec85b038c11d9a8424b7904f424423e714454d5e80d1cd\naa343a8ecf09ce11599b8cf22f7279cf80f06dbf9f6d62cb05308dbbb39c46fd0a4a1240b032665fbb488a767379b91b\n87c3ac72084aca5974599d3232e11d416348719e08443acaba2b328923af945031f86432e170dcdd103774ec92e988c9\n91d6486eb5e61d2b9a9e742c20ec974a47627c6096b3da56209c2b4e4757f007e793ebb63b2b246857c9839b64dc0233\naebcd3257d295747dd6fc4ff910d839dd80c51c173ae59b8b2ec937747c2072fa85e3017f9060aa509af88dfc7529481\nb3075ba6668ca04eff19efbfa3356b92f0ab12632dcda99cf8c655f35b7928c304218e0f9799d68ef9f809a1492ff7db\n93ba7468bb325639ec2abd4d55179c69fd04eaaf39fc5340709227bbaa4ad0a54ea8b480a1a3c8d44684e3be0f8d1980\na6aef86c8c0d92839f38544d91b767c582568b391071228ff5a5a6b859c87bf4f81a7d926094a4ada1993ddbd677a920\n91dcd6d14207aa569194aa224d1e5037b999b69ade52843315ca61ba26abe9a76412c9e88259bc5cf5d7b95b97d9c3bc\nb3b483d31c88f78d49bd065893bc1e3d2aa637e27dedb46d9a7d60be7660ce7a10aaaa7deead362284a52e6d14021178\n8e5730070acf8371461ef301cc4523e8e672aa0e3d945d438a0e0aa6bdf8cb9c685dcf38df429037b0c8aff3955c6f5b\nb8c6d769890a8ee18dc4f9e917993315877c97549549b34785a92543cbeec96a08ae3a28d6e809c4aacd69de356c0012\n95ca86cd384eaceaa7c077c5615736ca31f36824bd6451a16142a1edc129fa42b50724aeed7c738f08d7b157f78b569e\n94df609c6d71e8eee7ab74226e371ccc77e01738fe0ef1a6424435b4570fe1e5d15797b66ed0f64eb88d4a3a37631f0e\n89057b9783212add6a0690d6bb99097b182738deff2bd9e147d7fd7d6c8eacb4c219923633e6309ad993c24572289901\n83a0f9f5f265c5a0e54defa87128240235e24498f20965009fef664f505a360b6fb4020f2742565dfc7746eb185bcec0\n91170da5306128931349bc3ed50d7df0e48a68b8cc8420975170723ac79d8773e4fa13c5f14dc6e3fafcad78379050b1\nb7178484d1b55f7e56a4cc250b6b2ec6040437d96bdfddfa7b35ed27435860f3855c2eb86c636f2911b012eb83b00db8\nac0b00c4322d1e4208e09cd977b4e54d221133ff09551f75b32b0b55d0e2be80941dda26257b0e288c162e63c7e9cf68\n9690ed9e7e53ed37ff362930e4096b878b12234c332fd19d5d064824084245952eda9f979e0098110d6963e468cf513e\nb6fa547bb0bb83e5c5be0ed462a8783fba119041c136a250045c09d0d2af330c604331e7de960df976ff76d67f8000cd\n814603907c21463bcf4e59cfb43066dfe1a50344ae04ef03c87c0f61b30836c3f4dea0851d6fa358c620045b7f9214c8\n9495639e3939fad2a3df00a88603a5a180f3c3a0fe4d424c35060e2043e0921788003689887b1ed5be424d9a89bb18bb\naba4c02d8d57f2c92d5bc765885849e9ff8393d6554f5e5f3e907e5bfac041193a0d8716d7861104a4295d5a03c36b03\n8ead0b56c1ca49723f94a998ba113b9058059321da72d9e395a667e6a63d5a9dac0f5717cec343f021695e8ced1f72af\nb43037f7e3852c34ed918c5854cd74e9d5799eeddfe457d4f93bb494801a064735e326a76e1f5e50a339844a2f4a8ec9\n99db8422bb7302199eb0ff3c3d08821f8c32f53a600c5b6fb43e41205d96adae72be5b460773d1280ad1acb806af9be8\n8a9be08eae0086c0f020838925984df345c5512ff32e37120b644512b1d9d4fecf0fd30639ca90fc6cf334a86770d536\n81b43614f1c28aa3713a309a88a782fb2bdfc4261dd52ddc204687791a40cf5fd6a263a8179388596582cccf0162efc2\na9f3a8b76912deb61d966c75daf5ddb868702ebec91bd4033471c8e533183df548742a81a2671de5be63a502d827437d\n902e2415077f063e638207dc7e14109652e42ab47caccd6204e2870115791c9defac5425fd360b37ac0f7bd8fe7011f8\naa18e4fdc1381b59c18503ae6f6f2d6943445bd00dd7d4a2ad7e5adad7027f2263832690be30d456e6d772ad76f22350\na348b40ba3ba7d81c5d4631f038186ebd5e5f314f1ea737259151b07c3cc8cf0c6ed4201e71bcc1c22fefda81a20cde6\naa1306f7ac1acbfc47dc6f7a0cb6d03786cec8c8dc8060388ccda777bca24bdc634d03e53512c23dba79709ff64f8620\n818ccfe46e700567b7f3eb400e5a35f6a5e39b3db3aa8bc07f58ace35d9ae5a242faf8dbccd08d9a9175bbce15612155\nb7e3da2282b65dc8333592bb345a473f03bd6df69170055fec60222de9897184536bf22b9388b08160321144d0940279\na4d976be0f0568f4e57de1460a1729129252b44c552a69fceec44e5b97c96c711763360d11f9e5bf6d86b4976bf40d69\n85d185f0397c24c2b875b09b6328a23b87982b84ee880f2677a22ff4c9a1ba9f0fea000bb3f7f66375a00d98ebafce17\nb4ccbb8c3a2606bd9b87ce022704663af71d418351575f3b350d294f4efc68c26f9a2ce49ff81e6ff29c3b63d746294e\n93ffd3265fddb63724dfde261d1f9e22f15ecf39df28e4d89e9fea03221e8e88b5dd9b77628bacaa783c6f91802d47cc\nb1fd0f8d7a01378e693da98d03a2d2fda6b099d03454b6f2b1fa6472ff6bb092751ce6290059826b74ac0361eab00e1e\na89f440c71c561641589796994dd2769616b9088766e983c873fae0716b95c386c8483ab8a4f367b6a68b72b7456dd32\naf4fe92b01d42d03dd5d1e7fa55e96d4bbcb7bf7d4c8c197acd16b3e0f3455807199f683dcd263d74547ef9c244b35cc\na8227f6e0a344dfe76bfbe7a1861be32c4f4bed587ccce09f9ce2cf481b2dda8ae4f566154bc663d15f962f2d41761bd\na7b361663f7495939ed7f518ba45ea9ff576c4e628995b7aea026480c17a71d63fc2c922319f0502eb7ef8f14a406882\n8ddcf382a9f39f75777160967c07012cfa89e67b19714a7191f0c68eaf263935e5504e1104aaabd0899348c972a8d3c6\n98c95b9f6f5c91f805fb185eedd06c6fc4457d37dd248d0be45a6a168a70031715165ea20606245cbdf8815dc0ac697f\n805b44f96e001e5909834f70c09be3efcd3b43632bcac5b6b66b6d227a03a758e4b1768ce2a723045681a1d34562aaeb\nb0e81b07cdc45b3dca60882676d9badb99f25c461b7efe56e3043b80100bb62d29e1873ae25eb83087273160ece72a55\nb0c53f0abe78ee86c7b78c82ae1f7c070bb0b9c45c563a8b3baa2c515d482d7507bb80771e60b38ac13f78b8af92b4a9\na7838ef6696a9e4d2e5dfd581f6c8d6a700467e8fd4e85adabb5f7a56f514785dd4ab64f6f1b48366f7d94728359441b\n88c76f7700a1d23c30366a1d8612a796da57b2500f97f88fdf2d76b045a9d24e7426a8ffa2f4e86d3046937a841dad58\nad8964baf98c1f02e088d1d9fcb3af6b1dfa44cdfe0ed2eae684e7187c33d3a3c28c38e8f4e015f9c04d451ed6f85ff6\n90e9d00a098317ececaa9574da91fc149eda5b772dedb3e5a39636da6603aa007804fa86358550cfeff9be5a2cb7845e\na56ff4ddd73d9a6f5ab23bb77efa25977917df63571b269f6a999e1ad6681a88387fcc4ca3b26d57badf91b236503a29\n97ad839a6302c410a47e245df84c01fb9c4dfef86751af3f9340e86ff8fc3cd52fa5ff0b9a0bd1d9f453e02ca80658a6\na4c8c44cbffa804129e123474854645107d1f0f463c45c30fd168848ebea94880f7c0c5a45183e9eb837f346270bdb35\na72e53d0a1586d736e86427a93569f52edd2f42b01e78aee7e1961c2b63522423877ae3ac1227a2cf1e69f8e1ff15bc3\n8559f88a7ef13b4f09ac82ae458bbae6ab25671cfbf52dae7eac7280d6565dd3f0c3286aec1a56a8a16dc3b61d78ce47\n8221503f4cdbed550876c5dc118a3f2f17800c04e8be000266633c83777b039a432d576f3a36c8a01e8fd18289ebc10b\n99bfbe5f3e46d4d898a578ba86ed26de7ed23914bd3bcdf3c791c0bcd49398a52419077354a5ab75cea63b6c871c6e96\naa134416d8ff46f2acd866c1074af67566cfcf4e8be8d97329dfa0f603e1ff208488831ce5948ac8d75bfcba058ddcaa\nb02609d65ebfe1fe8e52f21224a022ea4b5ea8c1bd6e7b9792eed8975fc387cdf9e3b419b8dd5bcce80703ab3a12a45f\na4f14798508698fa3852e5cac42a9db9797ecee7672a54988aa74037d334819aa7b2ac7b14efea6b81c509134a6b7ad2\n884f01afecbcb987cb3e7c489c43155c416ed41340f61ecb651d8cba884fb9274f6d9e7e4a46dd220253ae561614e44c\na05523c9e71dce1fe5307cc71bd721feb3e1a0f57a7d17c7d1c9fb080d44527b7dbaa1f817b1af1c0b4322e37bc4bb1e\n8560aec176a4242b39f39433dd5a02d554248c9e49d3179530815f5031fee78ba9c71a35ceeb2b9d1f04c3617c13d8f0\n996aefd402748d8472477cae76d5a2b92e3f092fc834d5222ae50194dd884c9fb8b6ed8e5ccf8f6ed483ddbb4e80c747\n8fd09900320000cbabc40e16893e2fcf08815d288ec19345ad7b6bb22f7d78a52b6575a3ca1ca2f8bc252d2eafc928ec\n939e51f73022bc5dc6862a0adf8fb8a3246b7bfb9943cbb4b27c73743926cc20f615a036c7e5b90c80840e7f1bfee0e7\na0a6258700cadbb9e241f50766573bf9bdb7ad380b1079dc3afb4054363d838e177b869cad000314186936e40359b1f2\n972699a4131c8ed27a2d0e2104d54a65a7ff1c450ad9da3a325c662ab26869c21b0a84d0700b98c8b5f6ce3b746873d7\na454c7fe870cb8aa6491eafbfb5f7872d6e696033f92e4991d057b59d70671f2acdabef533e229878b60c7fff8f748b1\na167969477214201f09c79027b10221e4707662e0c0fde81a0f628249f2f8a859ce3d30a7dcc03b8ecca8f7828ad85c7\n8ff6b7265175beb8a63e1dbf18c9153fb2578c207c781282374f51b40d57a84fd2ef2ea2b9c6df4a54646788a62fd17f\na3d7ebeccde69d73d8b3e76af0da1a30884bb59729503ff0fb0c3bccf9221651b974a6e72ea33b7956fc3ae758226495\nb71ef144c9a98ce5935620cb86c1590bd4f48e5a2815d25c0cdb008fde628cf628c31450d3d4f67abbfeb16178a74cfd\nb5e0a16d115134f4e2503990e3f2035ed66b9ccf767063fe6747870d97d73b10bc76ed668550cb82eedc9a2ca6f75524\nb30ffaaf94ee8cbc42aa2c413175b68afdb207dbf351fb20be3852cb7961b635c22838da97eaf43b103aff37e9e725cc\n98aa7d52284f6c1f22e272fbddd8c8698cf8f5fbb702d5de96452141fafb559622815981e50b87a72c2b1190f59a7deb\n81fbacda3905cfaf7780bb4850730c44166ed26a7c8d07197a5d4dcd969c09e94a0461638431476c16397dd7bdc449f9\n95e47021c1726eac2e5853f570d6225332c6e48e04c9738690d53e07c6b979283ebae31e2af1fc9c9b3e59f87e5195b1\nac024a661ba568426bb8fce21780406537f518075c066276197300841e811860696f7588188bc01d90bace7bc73d56e3\na4ebcaf668a888dd404988ab978594dee193dad2d0aec5cdc0ccaf4ec9a7a8228aa663db1da8ddc52ec8472178e40c32\na20421b8eaf2199d93b083f2aff37fb662670bd18689d046ae976d1db1fedd2c2ff897985ecc6277b396db7da68bcb27\n8bc33d4b40197fd4d49d1de47489d10b90d9b346828f53a82256f3e9212b0cbc6930b895e879da9cec9fedf026aadb3e\naaafdd1bec8b757f55a0433eddc0a39f818591954fd4e982003437fcceb317423ad7ee74dbf17a2960380e7067a6b4e2\naad34277ebaed81a6ec154d16736866f95832803af28aa5625bf0461a71d02b1faba02d9d9e002be51c8356425a56867\n976e9c8b150d08706079945bd0e84ab09a648ecc6f64ded9eb5329e57213149ae409ae93e8fbd8eda5b5c69f5212b883\n8097fae1653247d2aed4111533bc378171d6b2c6d09cbc7baa9b52f188d150d645941f46d19f7f5e27b7f073c1ebd079\n83905f93b250d3184eaba8ea7d727c4464b6bdb027e5cbe4f597d8b9dc741dcbea709630bd4fd59ce24023bec32fc0f3\n8095030b7045cff28f34271386e4752f9a9a0312f8df75de4f424366d78534be2b8e1720a19cb1f9a2d21105d790a225\na7b7b73a6ae2ed1009c49960374b0790f93c74ee03b917642f33420498c188a169724945a975e5adec0a1e83e07fb1b2\n856a41c54df393b6660b7f6354572a4e71c8bfca9cabaffb3d4ef2632c015e7ee2bc10056f3eccb3dbed1ad17d939178\na8f7a55cf04b38cd4e330394ee6589da3a07dc9673f74804fdf67b364e0b233f14aec42e783200a2e4666f7c5ff62490\n82c529f4e543c6bca60016dc93232c115b359eaee2798a9cf669a654b800aafe6ab4ba58ea8b9cdda2b371c8d62fa845\n8caab020c1baddce77a6794113ef1dfeafc5f5000f48e97f4351b588bf02f1f208101745463c480d37f588d5887e6d8c\n8fa91b3cc400f48b77b6fd77f3b3fbfb3f10cdff408e1fd22d38f77e087b7683adad258804409ba099f1235b4b4d6fea\n8aa02787663d6be9a35677d9d8188b725d5fcd770e61b11b64e3def8808ea5c71c0a9afd7f6630c48634546088fcd8e2\nb5635b7b972e195cab878b97dea62237c7f77eb57298538582a330b1082f6207a359f2923864630136d8b1f27c41b9aa\n8257bb14583551a65975946980c714ecd6e5b629672bb950b9caacd886fbd22704bc9e3ba7d30778adab65dc74f0203a\nab5fe1cd12634bfa4e5c60d946e2005cbd38f1063ec9a5668994a2463c02449a0a185ef331bd86b68b6e23a8780cb3ba\na7d3487da56cda93570cc70215d438204f6a2709bfb5fda6c5df1e77e2efc80f4235c787e57fbf2c74aaff8cbb510a14\nb61cff7b4c49d010e133319fb828eb900f8a7e55114fc86b39c261a339c74f630e1a7d7e1350244ada566a0ff3d46c4b\n8d4d1d55d321d278db7a85522ccceca09510374ca81d4d73e3bb5249ace7674b73900c35a531ec4fa6448fabf7ad00dc\n966492248aee24f0f56c8cfca3c8ec6ba3b19abb69ae642041d4c3be8523d22c65c4dafcab4c58989ccc4e0bd2f77919\nb20c320a90cb220b86e1af651cdc1e21315cd215da69f6787e28157172f93fc8285dcd59b039c626ed8ca4633cba1a47\naae9e6b22f018ceb5c0950210bb8182cb8cb61014b7e14581a09d36ebd1bbfebdb2b82afb7fdb0cf75e58a293d9c456d\n875547fb67951ad37b02466b79f0c9b985ccbc500cfb431b17823457dc79fb9597ec42cd9f198e15523fcd88652e63a4\n92afce49773cb2e20fb21e4f86f18e0959ebb9c33361547ddb30454ee8e36b1e234019cbdca0e964cb292f7f77df6b90\n8af85343dfe1821464c76ba11c216cbef697b5afc69c4d821342e55afdac047081ec2e3f7b09fc14b518d9a23b78c003\nb7de4a1648fd63f3a918096ea669502af5357438e69dac77cb8102b6e6c15c76e033cfaa80dafc806e535ede5c1a20aa\nac80e9b545e8bd762951d96c9ce87f629d01ffcde07efc2ef7879ca011f1d0d8a745abf26c9d452541008871304fac00\na4cf0f7ed724e481368016c38ea5816698a5f68eb21af4d3c422d2ba55f96a33e427c2aa40de1b56a7cfac7f7cf43ab0\n899b0a678bb2db2cae1b44e75a661284844ebcdd87abf308fedeb2e4dbe5c5920c07db4db7284a7af806a2382e8b111a\naf0588a2a4afce2b1b13c1230816f59e8264177e774e4a341b289a101dcf6af813638fed14fb4d09cb45f35d5d032609\na4b8df79e2be76e9f5fc5845f06fe745a724cf37c82fcdb72719b77bdebea3c0e763f37909373e3a94480cc5e875cba0\n83e42c46d88930c8f386b19fd999288f142d325e2ebc86a74907d6d77112cb0d449bc511c95422cc810574031a8cbba9\nb5e39534070de1e5f6e27efbdd3dc917d966c2a9b8cf2d893f964256e95e954330f2442027dc148c776d63a95bcde955\n958607569dc28c075e658cd4ae3927055c6bc456eef6212a6fea8205e48ed8777a8064f584cda38fe5639c371e2e7fba\n812adf409fa63575113662966f5078a903212ffb65c9b0bbe62da0f13a133443a7062cb8fd70f5e5dd5559a32c26d2c8\na679f673e5ce6a3cce7fa31f22ee3785e96bcb55e5a776e2dd3467bef7440e3555d1a9b87cb215e86ee9ed13a090344b\nafedbb34508b159eb25eb2248d7fe328f86ef8c7d84c62d5b5607d74aae27cc2cc45ee148eb22153b09898a835c58df4\nb75505d4f6b67d31e665cfaf5e4acdb5838ae069166b7fbcd48937c0608a59e40a25302fcc1873d2e81c1782808c70f0\nb62515d539ec21a155d94fc00ea3c6b7e5f6636937bce18ed5b618c12257fb82571886287fd5d1da495296c663ebc512\nab8e1a9446bbdd588d1690243b1549d230e6149c28f59662b66a8391a138d37ab594df38e7720fae53217e5c3573b5be\nb31e8abf4212e03c3287bb2c0a153065a7290a16764a0bac8f112a72e632185a654bb4e88fdd6053e6c7515d9719fadb\nb55165477fe15b6abd2d0f4fddaa9c411710dcc4dd712daba3d30e303c9a3ee5415c256f9dc917ecf18c725b4dbab059\na0939d4f57cacaae549b78e87cc234de4ff6a35dc0d9cd5d7410abc30ebcd34c135e008651c756e5a9d2ca79c40ef42b\n8cf10e50769f3443340844aad4d56ec790850fed5a41fcbd739abac4c3015f0a085a038fbe7fae9f5ad899cce5069f6b\n924055e804d82a99ea4bb160041ea4dc14b568abf379010bc1922fde5d664718c31d103b8b807e3a1ae809390e708c73\n8ec0f9d26f71b0f2e60a179e4fd1778452e2ffb129d50815e5d7c7cb9415fa69ae5890578086e8ef6bfde35ad2a74661\n98c7f12b15ec4426b59f737f73bf5faea4572340f4550b7590dfb7f7ffedb2372e3e555977c63946d579544c53210ad0\n8a935f7a955c78f69d66f18eee0092e5e833fa621781c9581058e219af4d7ceee48b84e472e159dda6199715fb2f9acf\nb78d4219f95a2dbfaa7d0c8a610c57c358754f4f43c2af312ab0fe8f10a5f0177e475332fb8fd23604e474fc2abeb051\n8d086a14803392b7318c28f1039a17e3cfdcece8abcaca3657ec3d0ac330842098a85c0212f889fabb296dfb133ce9aa\na53249f417aac82f2c2a50c244ce21d3e08a5e5a8bd33bec2a5ab0d6cd17793e34a17edfa3690899244ce201e2fb9986\n8619b0264f9182867a1425be514dc4f1ababc1093138a728a28bd7e4ecc99b9faaff68c23792264bc6e4dce5f52a5c52\n8c171edbbbde551ec19e31b2091eb6956107dd9b1f853e1df23bff3c10a3469ac77a58335eee2b79112502e8e163f3de\na9d19ec40f0ca07c238e9337c6d6a319190bdba2db76fb63902f3fb459aeeb50a1ac30db5b25ee1b4201f3ca7164a7f4\nb9c6ec14b1581a03520b8d2c1fbbc31fb8ceaef2c0f1a0d0080b6b96e18442f1734bea7ef7b635d787c691de4765d469\n8cb437beb4cfa013096f40ccc169a713dc17afee6daa229a398e45fd5c0645a9ad2795c3f0cd439531a7151945d7064d\na6e8740cc509126e146775157c2eb278003e5bb6c48465c160ed27888ca803fa12eee1f6a8dd7f444f571664ed87fdc1\nb75c1fecc85b2732e96b3f23aefb491dbd0206a21d682aee0225838dc057d7ed3b576176353e8e90ae55663f79e986e4\nad8d249b0aea9597b08358bce6c77c1fd552ef3fbc197d6a1cfe44e5e6f89b628b12a6fb04d5dcfcbacc51f46e4ae7bb\nb998b2269932cbd58d04b8e898d373ac4bb1a62e8567484f4f83e224061bc0f212459f1daae95abdbc63816ae6486a55\n827988ef6c1101cddc96b98f4a30365ff08eea2471dd949d2c0a9b35c3bbfa8c07054ad1f4c88c8fbf829b20bb5a9a4f\n8692e638dd60babf7d9f2f2d2ce58e0ac689e1326d88311416357298c6a2bffbfebf55d5253563e7b3fbbf5072264146\na685d75b91aea04dbc14ab3c1b1588e6de96dae414c8e37b8388766029631b28dd860688079b12d09cd27f2c5af11adf\nb57eced93eec3371c56679c259b34ac0992286be4f4ff9489d81cf9712403509932e47404ddd86f89d7c1c3b6391b28c\na1c8b4e42ebcbd8927669a97f1b72e236fb19249325659e72be7ddaaa1d9e81ca2abb643295d41a8c04a2c01f9c0efd7\n877c33de20d4ed31674a671ba3e8f01a316581e32503136a70c9c15bf0b7cb7b1cba6cd4eb641fad165fb3c3c6c235fd\na2a469d84ec478da40838f775d11ad38f6596eb41caa139cc190d6a10b5108c09febae34ffdafac92271d2e73c143693\n972f817caedb254055d52e963ed28c206848b6c4cfdb69dbc961c891f8458eaf582a6d4403ce1177d87bc2ea410ef60a\naccbd739e138007422f28536381decc54bb6bd71d93edf3890e54f9ef339f83d2821697d1a4ac1f5a98175f9a9ecb9b5\n8940f8772e05389f823b62b3adc3ed541f91647f0318d7a0d3f293aeeb421013de0d0a3664ea53dd24e5fbe02d7efef6\n8ecce20f3ef6212edef07ec4d6183fda8e0e8cad2c6ccd0b325e75c425ee1faba00b5c26b4d95204238931598d78f49d\n97cc72c36335bd008afbed34a3b0c7225933faba87f7916d0a6d2161e6f82e0cdcda7959573a366f638ca75d30e9dab1\n9105f5de8699b5bdb6bd3bb6cc1992d1eac23929c29837985f83b22efdda92af64d9c574aa9640475087201bbbe5fd73\n8ffb33c4f6d05c413b9647eb6933526a350ed2e4278ca2ecc06b0e8026d8dbe829c476a40e45a6df63a633090a3f82ef\n8bfc6421fdc9c2d2aaa68d2a69b1a2728c25b84944cc3e6a57ff0c94bfd210d1cbf4ff3f06702d2a8257024d8be7de63\na80e1dc1dddfb41a70220939b96dc6935e00b32fb8be5dff4eed1f1c650002ff95e4af481c43292e3827363b7ec4768a\n96f714ebd54617198bd636ba7f7a7f8995a61db20962f2165078d9ed8ee764d5946ef3cbdc7ebf8435bb8d5dd4c1deac\n8cdb0890e33144d66391d2ae73f5c71f5a861f72bc93bff6cc399fc25dd1f9e17d8772592b44593429718784802ac377\n8ccf9a7f80800ee770b92add734ed45a73ecc31e2af0e04364eefc6056a8223834c7c0dc9dfc52495bdec6e74ce69994\naa0875f423bd68b5f10ba978ddb79d3b96ec093bfbac9ff366323193e339ed7c4578760fb60f60e93598bdf1e5cc4995\na9214f523957b59c7a4cb61a40251ad72aba0b57573163b0dc0f33e41d2df483fb9a1b85a5e7c080e9376c866790f8cb\nb6224b605028c6673a536cc8ff9aeb94e7a22e686fda82cf16068d326469172f511219b68b2b3affb7933af0c1f80d07\nb6d58968d8a017c6a34e24c2c09852f736515a2c50f37232ac6b43a38f8faa7572cc31dade543b594b61b5761c4781d0\n8a97cefe5120020c38deeb861d394404e6c993c6cbd5989b6c9ebffe24f46ad11b4ba6348e2991cbf3949c28cfc3c99d\n95bf046f8c3a9c0ce2634be4de3713024daec3fc4083e808903b25ce3ac971145af90686b451efcc72f6b22df0216667\na6a4e2f71b8fa28801f553231eff2794c0f10d12e7e414276995e21195abc9c2983a8997e41af41e78d19ff6fbb2680b\n8e5e62a7ca9c2f58ebaab63db2ff1fb1ff0877ae94b7f5e2897f273f684ae639dff44cc65718f78a9c894787602ab26a\n8542784383eec4f565fcb8b9fc2ad8d7a644267d8d7612a0f476fc8df3aff458897a38003d506d24142ad18f93554f2b\nb7db68ba4616ea072b37925ec4fb39096358c2832cc6d35169e032326b2d6614479f765ae98913c267105b84afcb9bf2\n8b31dbb9457d23d416c47542c786e07a489af35c4a87dadb8ee91bea5ac4a5315e65625d78dad2cf8f9561af31b45390\na8545a1d91ac17257732033d89e6b7111db8242e9c6ebb0213a88906d5ef407a2c6fdb444e29504b06368b6efb4f4839\nb1bd85d29ebb28ccfb05779aad8674906b267c2bf8cdb1f9a0591dd621b53a4ee9f2942687ee3476740c0b4a7621a3ae\na2b54534e152e46c50d91fff03ae9cd019ff7cd9f4168b2fe7ac08ef8c3bbc134cadd3f9d6bd33d20ae476c2a8596c8a\nb19b571ff4ae3e9f5d95acda133c455e72c9ea9973cae360732859836c0341c4c29ab039224dc5bc3deb824e031675d8\n940b5f80478648bac025a30f3efeb47023ce20ee98be833948a248bca6979f206bb28fc0f17b90acf3bb4abd3d14d731\n8f106b40588586ac11629b96d57808ad2808915d89539409c97414aded90b4ff23286a692608230a52bff696055ba5d6\nae6bda03aa10da3d2abbc66d764ca6c8d0993e7304a1bdd413eb9622f3ca1913baa6da1e9f4f9e6cf847f14f44d6924d\na18e7796054a340ef826c4d6b5a117b80927afaf2ebd547794c400204ae2caf277692e2eabb55bc2f620763c9e9da66d\n8d2d25180dc2c65a4844d3e66819ccfcf48858f0cc89e1c77553b463ec0f7feb9a4002ce26bc618d1142549b9850f232\n863f413a394de42cc8166c1c75d513b91d545fff1de6b359037a742c70b008d34bf8e587afa2d62c844d0c6f0ea753e7\n83cd0cf62d63475e7fcad18a2e74108499cdbf28af2113cfe005e3b5887794422da450b1944d0a986eb7e1f4c3b18f25\nb4f8b350a6d88fea5ab2e44715a292efb12eb52df738c9b2393da3f1ddee68d0a75b476733ccf93642154bceb208f2b8\nb3f52aaa4cd4221cb9fc45936cc67fd3864bf6d26bf3dd86aa85aa55ecfc05f5e392ecce5e7cf9406b4b1c4fce0398c8\nb33137084422fb643123f40a6df2b498065e65230fc65dc31791c330e898c51c3a65ff738930f32c63d78f3c9315f85b\n91452bfa75019363976bb7337fe3a73f1c10f01637428c135536b0cdc7da5ce558dae3dfc792aa55022292600814a8ef\nad6ba94c787cd4361ca642c20793ea44f1f127d4de0bb4a77c7fbfebae0fcadbf28e2cb6f0c12c12a07324ec8c19761d\n890aa6248b17f1501b0f869c556be7bf2b1d31a176f9978bb97ab7a6bd4138eed32467951c5ef1871944b7f620542f43\n82111db2052194ee7dd22ff1eafffac0443cf969d3762cceae046c9a11561c0fdce9c0711f88ac01d1bed165f8a7cee3\nb1527b71df2b42b55832f72e772a466e0fa05743aacc7814f4414e4bcc8d42a4010c9e0fd940e6f254cafedff3cd6543\n922370fa49903679fc565f09c16a5917f8125e72acfeb060fcdbadbd1644eb9f4016229756019c93c6d609cda5d5d174\naa4c7d98a96cab138d2a53d4aee8ebff6ef903e3b629a92519608d88b3bbd94de5522291a1097e6acf830270e64c8ee1\nb3dc21608a389a72d3a752883a382baaafc61ecc44083b832610a237f6a2363f24195acce529eb4aed4ef0e27a12b66e\n94619f5de05e07b32291e1d7ab1d8b7337a2235e49d4fb5f3055f090a65e932e829efa95db886b32b153bdd05a53ec8c\nade1e92722c2ffa85865d2426fb3d1654a16477d3abf580cfc45ea4b92d5668afc9d09275d3b79283e13e6b39e47424d\nb7201589de7bed094911dd62fcd25c459a8e327ac447b69f541cdba30233063e5ddffad0b67e9c3e34adcffedfd0e13d\n809d325310f862d6549e7cb40f7e5fc9b7544bd751dd28c4f363c724a0378c0e2adcb5e42ec8f912f5f49f18f3365c07\na79c20aa533de7a5d671c99eb9eb454803ba54dd4f2efa3c8fec1a38f8308e9905c71e9282955225f686146388506ff6\na85eeacb5e8fc9f3ed06a3fe2dc3108ab9f8c5877b148c73cf26e4e979bf5795edbe2e63a8d452565fd1176ed40402b2\n97ef55662f8a1ec0842b22ee21391227540adf7708f491436044f3a2eb18c471525e78e1e14fa292507c99d74d7437c6\n93110d64ed5886f3d16ce83b11425576a3a7a9bb831cd0de3f9a0b0f2270a730d68136b4ef7ff035ede004358f419b5c\nac9ed0a071517f0ae4f61ce95916a90ba9a77a3f84b0ec50ef7298acdcd44d1b94525d191c39d6bd1bb68f4471428760\n98abd6a02c7690f5a339adf292b8c9368dfc12e0f8069cf26a5e0ce54b4441638f5c66ea735142f3c28e00a0024267e6\nb51efb73ba6d44146f047d69b19c0722227a7748b0e8f644d0fc9551324cf034c041a2378c56ce8b58d06038fb8a78de\n8f115af274ef75c1662b588b0896b97d71f8d67986ae846792702c4742ab855952865ce236b27e2321967ce36ff93357\nb3c4548f14d58b3ab03c222da09e4381a0afe47a72d18d50a94e0008797f78e39e99990e5b4757be62310d400746e35a\na9b1883bd5f31f909b8b1b6dcb48c1c60ed20aa7374b3ffa7f5b2ed036599b5bef33289d23c80a5e6420d191723b92f7\n85d38dffd99487ae5bb41ab4a44d80a46157bbbe8ef9497e68f061721f74e4da513ccc3422936b059575975f6787c936\nadf870fcb96e972c033ab7a35d28ae79ee795f82bc49c3bd69138f0e338103118d5529c53f2d72a9c0d947bf7d312af2\nab4c7a44e2d9446c6ff303eb49aef0e367a58b22cc3bb27b4e69b55d1d9ee639c9234148d2ee95f9ca8079b1457d5a75\na386420b738aba2d7145eb4cba6d643d96bda3f2ca55bb11980b318d43b289d55a108f4bc23a9606fb0bccdeb3b3bb30\n847020e0a440d9c4109773ecca5d8268b44d523389993b1f5e60e541187f7c597d79ebd6e318871815e26c96b4a4dbb1\na530aa7e5ca86fcd1bec4b072b55cc793781f38a666c2033b510a69e110eeabb54c7d8cbcb9c61fee531a6f635ffa972\n87364a5ea1d270632a44269d686b2402da737948dac27f51b7a97af80b66728b0256547a5103d2227005541ca4b7ed04\n8816fc6e16ea277de93a6d793d0eb5c15e9e93eb958c5ef30adaf8241805adeb4da8ce19c3c2167f971f61e0b361077d\n8836a72d301c42510367181bb091e4be377777aed57b73c29ef2ce1d475feedd7e0f31676284d9a94f6db01cc4de81a2\nb0d9d8b7116156d9dde138d28aa05a33e61f8a85839c1e9071ccd517b46a5b4b53acb32c2edd7150c15bc1b4bd8db9e3\nae931b6eaeda790ba7f1cd674e53dc87f6306ff44951fa0df88d506316a5da240df9794ccbd7215a6470e6b31c5ea193\n8c6d5bdf87bd7f645419d7c6444e244fe054d437ed1ba0c122fde7800603a5fadc061e5b836cb22a6cfb2b466f20f013\n90d530c6d0cb654999fa771b8d11d723f54b8a8233d1052dc1e839ea6e314fbed3697084601f3e9bbb71d2b4eaa596df\nb0d341a1422588c983f767b1ed36c18b141774f67ef6a43cff8e18b73a009da10fc12120938b8bba27f225bdfd3138f9\na131b56f9537f460d304e9a1dd75702ace8abd68cb45419695cb8dee76998139058336c87b7afd6239dc20d7f8f940cc\naa6c51fa28975f709329adee1bbd35d49c6b878041841a94465e8218338e4371f5cb6c17f44a63ac93644bf28f15d20f\n88440fb584a99ebd7f9ea04aaf622f6e44e2b43bbb49fb5de548d24a238dc8f26c8da2ccf03dd43102bda9f16623f609\n9777b8695b790e702159a4a750d5e7ff865425b95fa0a3c15495af385b91c90c00a6bd01d1b77bffe8c47d01baae846f\n8b9d764ece7799079e63c7f01690c8eff00896a26a0d095773dea7a35967a8c40db7a6a74692f0118bf0460c26739af4\n85808c65c485520609c9e61fa1bb67b28f4611d3608a9f7a5030ee61c3aa3c7e7dc17fff48af76b4aecee2cb0dbd22ac\nad2783a76f5b3db008ef5f7e67391fda4e7e36abde6b3b089fc4835b5c339370287935af6bd53998bed4e399eda1136d\n96f18ec03ae47c205cc4242ca58e2eff185c9dca86d5158817e2e5dc2207ab84aadda78725f8dc080a231efdc093b940\n97de1ab6c6cc646ae60cf7b86df73b9cf56cc0cd1f31b966951ebf79fc153531af55ca643b20b773daa7cab784b832f7\n870ba266a9bfa86ef644b1ef025a0f1b7609a60de170fe9508de8fd53170c0b48adb37f19397ee8019b041ce29a16576\nad990e888d279ac4e8db90619d663d5ae027f994a3992c2fbc7d262b5990ae8a243e19157f3565671d1cb0de17fe6e55\n8d9d5adcdd94c5ba3be4d9a7428133b42e485f040a28d16ee2384758e87d35528f7f9868de9bd23d1a42a594ce50a567\n85a33ed75d514ece6ad78440e42f7fcdb59b6f4cff821188236d20edae9050b3a042ce9bc7d2054296e133d033e45022\n92afd2f49a124aaba90de59be85ff269457f982b54c91b06650c1b8055f9b4b0640fd378df02a00e4fc91f7d226ab980\n8c0ee09ec64bd831e544785e3d65418fe83ed9c920d9bb4d0bf6dd162c1264eb9d6652d2def0722e223915615931581c\n8369bedfa17b24e9ad48ebd9c5afea4b66b3296d5770e09b00446c5b0a8a373d39d300780c01dcc1c6752792bccf5fd0\n8b9e960782576a59b2eb2250d346030daa50bbbec114e95cdb9e4b1ba18c3d34525ae388f859708131984976ca439d94\nb682bface862008fea2b5a07812ca6a28a58fd151a1d54c708fc2f8572916e0d678a9cb8dc1c10c0470025c8a605249e\na38d5e189bea540a824b36815fc41e3750760a52be0862c4cac68214febdc1a754fb194a7415a8fb7f96f6836196d82a\nb9e7fbda650f18c7eb8b40e42cc42273a7298e65e8be524292369581861075c55299ce69309710e5b843cb884de171bd\nb6657e5e31b3193874a1bace08f42faccbd3c502fb73ad87d15d18a1b6c2a146f1baa929e6f517db390a5a47b66c0acf\nae15487312f84ed6265e4c28327d24a8a0f4d2d17d4a5b7c29b974139cf93223435aaebe3af918f5b4bb20911799715f\n8bb4608beb06bc394e1a70739b872ce5a2a3ffc98c7547bf2698c893ca399d6c13686f6663f483894bccaabc3b9c56ad\nb58ac36bc6847077584308d952c5f3663e3001af5ecf2e19cb162e1c58bd6c49510205d453cffc876ca1dc6b8e04a578\n924f65ced61266a79a671ffb49b300f0ea44c50a0b4e3b02064faa99fcc3e4f6061ea8f38168ab118c5d47bd7804590e\n8d67d43b8a06b0ff4fafd7f0483fa9ed1a9e3e658a03fb49d9d9b74e2e24858dc1bed065c12392037b467f255d4e5643\nb4d4f87813125a6b355e4519a81657fa97c43a6115817b819a6caf4823f1d6a1169683fd68f8d025cdfa40ebf3069acb\na7fd4d2c8e7b59b8eed3d4332ae94b77a89a2616347402f880bc81bde072220131e6dbec8a605be3a1c760b775375879\n8d4a7d8fa6f55a30df37bcf74952e2fa4fd6676a2e4606185cf154bdd84643fd01619f8fb8813a564f72e3f574f8ce30\n8086fb88e6260e9a9c42e9560fde76315ff5e5680ec7140f2a18438f15bc2cc7d7d43bfb5880b180b738c20a834e6134\n916c4c54721de03934fee6f43de50bb04c81f6f8dd4f6781e159e71c40c60408aa54251d457369d133d4ba3ed7c12cb4\n902e5bf468f11ed9954e2a4a595c27e34abe512f1d6dc08bbca1c2441063f9af3dc5a8075ab910a10ff6c05c1c644a35\na1302953015e164bf4c15f7d4d35e3633425a78294406b861675667eec77765ff88472306531e5d3a4ec0a2ff0dd6a9e\n87874461df3c9aa6c0fa91325576c0590f367075f2f0ecfeb34afe162c04c14f8ce9d608c37ac1adc8b9985bc036e366\n84b50a8a61d3cc609bfb0417348133e698fe09a6d37357ce3358de189efcf35773d78c57635c2d26c3542b13cc371752\nacaed2cff8633d12c1d12bb7270c54d65b0b0733ab084fd47f81d0a6e1e9b6f300e615e79538239e6160c566d8bb8d29\n889e6a0e136372ca4bac90d1ab220d4e1cad425a710e8cdd48b400b73bb8137291ceb36a39440fa84305783b1d42c72f\n90952e5becec45b2b73719c228429a2c364991cf1d5a9d6845ae5b38018c2626f4308daa322cab1c72e0f6c621bb2b35\n8f5a97a801b6e9dcd66ccb80d337562c96f7914e7169e8ff0fda71534054c64bf2a9493bb830623d612cfe998789be65\n84f3df8b9847dcf1d63ca470dc623154898f83c25a6983e9b78c6d2d90a97bf5e622445be835f32c1e55e6a0a562ea78\n91d12095cd7a88e7f57f254f02fdb1a1ab18984871dead2f107404bcf8069fe68258c4e6f6ebd2477bddf738135400bb\nb771a28bc04baef68604d4723791d3712f82b5e4fe316d7adc2fc01b935d8e644c06d59b83bcb542afc40ebafbee0683\n872f6341476e387604a7e93ae6d6117e72d164e38ebc2b825bc6df4fcce815004d7516423c190c1575946b5de438c08d\n90d6b4aa7d40a020cdcd04e8b016d041795961a8e532a0e1f4041252131089114a251791bf57794cadb7d636342f5d1c\n899023ba6096a181448d927fed7a0fe858be4eac4082a42e30b3050ee065278d72fa9b9d5ce3bc1372d4cbd30a2f2976\na28f176571e1a9124f95973f414d5bdbf5794d41c3839d8b917100902ac4e2171eb940431236cec93928a60a77ede793\n838dbe5bcd29c4e465d02350270fa0036cd46f8730b13d91e77afb7f5ed16525d0021d3b2ae173a76c378516a903e0cb\n8e105d012dd3f5d20f0f1c4a7e7f09f0fdd74ce554c3032e48da8cce0a77260d7d47a454851387770f5c256fa29bcb88\n8f4df0f9feeb7a487e1d138d13ea961459a6402fd8f8cabb226a92249a0d04ded5971f3242b9f90d08da5ff66da28af6\nad1cfda4f2122a20935aa32fb17c536a3653a18617a65c6836700b5537122af5a8206befe9eaea781c1244c43778e7f1\n832c6f01d6571964ea383292efc8c8fa11e61c0634a25fa180737cc7ab57bc77f25e614aac9a2a03d98f27b3c1c29de2\n903f89cc13ec6685ac7728521898781fecb300e9094ef913d530bf875c18bcc3ceed7ed51e7b482d45619ab4b025c2e9\na03c474bb915aad94f171e8d96f46abb2a19c9470601f4c915512ec8b9e743c3938450a2a5b077b4618b9df8809e1dc1\n83536c8456f306045a5f38ae4be2e350878fa7e164ea408d467f8c3bc4c2ee396bd5868008c089183868e4dfad7aa50b\n88f26b4ea1b236cb326cd7ad7e2517ec8c4919598691474fe15d09cabcfc37a8d8b1b818f4d112432ee3a716b0f37871\na44324e3fe96e9c12b40ded4f0f3397c8c7ee8ff5e96441118d8a6bfad712d3ac990b2a6a23231a8f691491ac1fd480f\nb0de4693b4b9f932191a21ee88629964878680152a82996c0019ffc39f8d9369bbe2fe5844b68d6d9589ace54af947e4\n8e5d8ba948aea5fd26035351a960e87f0d23efddd8e13236cc8e4545a3dda2e9a85e6521efb8577e03772d3637d213d9\n93efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556\n8731176363ad7658a2862426ee47a5dce9434216cef60e6045fa57c40bb3ce1e78dac4510ae40f1f31db5967022ced32\nb10c9a96745722c85bdb1a693100104d560433d45b9ac4add54c7646a7310d8e9b3ca9abd1039d473ae768a18e489845\na2ac374dfbb464bf850b4a2caf15b112634a6428e8395f9c9243baefd2452b4b4c61b0cb2836d8eae2d57d4900bf407e\nb69fe3ded0c4f5d44a09a0e0f398221b6d1bf5dbb8bc4e338b93c64f1a3cac1e4b5f73c2b8117158030ec03787f4b452\n8852cdbaf7d0447a8c6f211b4830711b3b5c105c0f316e3a6a18dcfbb9be08bd6f4e5c8ae0c3692da08a2dfa532f9d5c\n93bbf6d7432a7d98ade3f94b57bf9f4da9bc221a180a370b113066dd42601bb9e09edd79e2e6e04e00423399339eebda\na80941c391f1eeafc1451c59e4775d6a383946ff22997aeaadf806542ba451d3b0f0c6864eeba954174a296efe2c1550\na045fe2bb011c2a2f71a0181a8f457a3078470fb74c628eab8b59aef69ffd0d649723bf74d6885af3f028bc5a104fb39\nb9d8c35911009c4c8cad64692139bf3fc16b78f5a19980790cb6a7aea650a25df4231a4437ae0c351676a7e42c16134f\n94c79501ded0cfcbab99e1841abe4a00a0252b3870e20774c3da16c982d74c501916ec28304e71194845be6e3113c7ab\n900a66418b082a24c6348d8644ddb1817df5b25cb33044a519ef47cc8e1f7f1e38d2465b7b96d32ed472d2d17f8414c6\nb26f45d393b8b2fcb29bdbb16323dc7f4b81c09618519ab3a39f8ee5bd148d0d9f3c0b5dfab55b5ce14a1cb9206d777b\naa1a87735fc493a80a96a9a57ca40a6d9c32702bfcaa9869ce1a116ae65d69cefe2f3e79a12454b4590353e96f8912b4\na922b188d3d0b69b4e4ea2a2aa076566962844637da12c0832105d7b31dea4a309eee15d12b7a336be3ea36fcbd3e3b7\n8f3841fcf4105131d8c4d9885e6e11a46c448226401cf99356c291fadb864da9fa9d30f3a73c327f23f9fd99a11d633e\n9791d1183fae270e226379af6c497e7da803ea854bb20afa74b253239b744c15f670ee808f708ede873e78d79a626c9a\na4cad52e3369491ada61bf28ada9e85de4516d21c882e5f1cd845bea9c06e0b2887b0c5527fcff6fc28acd3c04f0a796\nb9ac86a900899603452bd11a7892a9bfed8054970bfcbeaa8c9d1930db891169e38d6977f5258c25734f96c8462eee3b\na3a154c28e5580656a859f4efc2f5ebfa7eaa84ca40e3f134fa7865e8581586db74992dbfa4036aa252fba103773ddde\n95cc2a0c1885a029e094f5d737e3ecf4d26b99036453a8773c77e360101f9f98676ee246f6f732a377a996702d55691f\n842651bbe99720438d8d4b0218feb60481280c05beb17750e9ca0d8c0599a60f873b7fbdcc7d8835ba9a6d57b16eec03\n81ee54699da98f5620307893dcea8f64670609fa20e5622265d66283adeac122d458b3308c5898e6c57c298db2c8b24f\nb97868b0b2bc98032d68352a535a1b341b9ff3c7af4e3a7f3ebc82d3419daa1b5859d6aedc39994939623c7cd878bd9b\nb60325cd5d36461d07ef253d826f37f9ee6474a760f2fff80f9873d01fd2b57711543cdc8d7afa1c350aa753c2e33dea\n8c205326c11d25a46717b780c639d89714c7736c974ae71287e3f4b02e6605ac2d9b4928967b1684f12be040b7bf2dd3\n95a392d82db51e26ade6c2ccd3396d7e40aff68fa570b5951466580d6e56dda51775dce5cf3a74a7f28c3cb2eb551c4d\n8f2cc8071eb56dffb70bda6dd433b556221dc8bba21c53353c865f00e7d4d86c9e39f119ea9a8a12ef583e9a55d9a6b6\n9449a71af9672aaf8856896d7e3d788b22991a7103f75b08c0abbcc2bfe60fda4ed8ce502cea4511ff0ea52a93e81222\n857090ab9fdb7d59632d068f3cc8cf27e61f0d8322d30e6b38e780a1f05227199b4cd746aac1311c36c659ef20931f28\n98a891f4973e7d9aaf9ac70854608d4f7493dffc7e0987d7be9dd6029f6ea5636d24ef3a83205615ca1ff403750058e1\na486e1365bbc278dd66a2a25d258dc82f46b911103cb16aab3945b9c95ae87b386313a12b566df5b22322ede0afe25ad\na9a1eb399ed95d396dccd8d1ac718043446f8b979ec62bdce51c617c97a312f01376ab7fb87d27034e5f5570797b3c33\nb7abc3858d7a74bb446218d2f5a037e0fae11871ed9caf44b29b69c500c1fa1dcfad64c9cdccc9d80d5e584f06213deb\n8cfb09fe2e202faa4cebad932b1d35f5ca204e1c2a0c740a57812ac9a6792130d1312aabd9e9d4c58ca168bfebd4c177\na90a305c2cd0f184787c6be596fa67f436afd1f9b93f30e875f817ac2aae8bdd2e6e656f6be809467e6b3ad84adb86b1\n80a9ef993c2b009ae172cc8f7ec036f5734cf4f4dfa06a7db4d54725e7fbfae5e3bc6f22687bdbb6961939d6f0c87537\n848ade1901931e72b955d7db1893f07003e1708ff5d93174bac5930b9a732640f0578839203e9b77eb27965c700032d3\n93fdf4697609c5ae9c33b9ca2f5f1af44abeb2b98dc4fdf732cf7388de086f410730dc384d9b7a7f447bb009653c8381\n89ce3fb805aea618b5715c0d22a9f46da696b6fa86794f56fdf1d44155a33d42daf1920bcbe36cbacf3cf4c92df9cbc7\n829ce2c342cf82aa469c65f724f308f7a750bd1494adc264609cd790c8718b8b25b5cab5858cf4ee2f8f651d569eea67\naf2f0cee7bf413204be8b9df59b9e4991bc9009e0d6dbe6815181df0ec2ca93ab8f4f3135b1c14d8f53d74bff0bd6f27\nb87998cecf7b88cde93d1779f10a521edd5574a2fbd240102978639ec57433ba08cdb53849038a329cebbe74657268d2\na64542a1261a6ed3d720c2c3a802303aad8c4c110c95d0f12e05c1065e66f42da494792b6bfc5b9272363f3b1d457f58\n86a6fd042e4f282fadf07a4bfee03fc96a3aea49f7a00f52bf249a20f1ec892326855410e61f37fbb27d9305eb2fc713\n967ea5bc403b6db269682f7fd0df90659350d7e1aa66bc4fab4c9dfcd75ed0bba4b52f1cebc5f34dc8ba810793727629\na52990f9f3b8616ce3cdc2c74cd195029e6a969753dcf2d1630438700e7d6ebde36538532b3525ac516f5f2ce9dd27a3\na64f7ff870bab4a8bf0d4ef6f5c744e9bf1021ed08b4c80903c7ad318e80ba1817c3180cc45cb5a1cae1170f0241655f\nb00f706fa4de1f663f021e8ad3d155e84ce6084a409374b6e6cd0f924a0a0b51bebaaaf1d228c77233a73b0a5a0df0e9\n8b882cc3bff3e42babdb96df95fb780faded84887a0a9bab896bef371cdcf169d909f5658649e93006aa3c6e1146d62e\n9332663ef1d1dcf805c3d0e4ce7a07d9863fb1731172e766b3cde030bf81682cc011e26b773fb9c68e0477b4ae2cfb79\na8aa8151348dbd4ef40aaeb699b71b4c4bfd3218560c120d85036d14f678f6736f0ec68e80ce1459d3d35feccc575164\na16cd8b729768f51881c213434aa28301fa78fcb554ddd5f9012ee1e4eae7b5cb3dd88d269d53146dea92d10790faf0b\n86844f0ef9d37142faf3b1e196e44fbe280a3ba4189aa05c356778cb9e3b388a2bff95eed305ada8769935c9974e4c57\nae2eec6b328fccf3b47bcdac32901ac2744a51beb410b04c81dea34dee4912b619466a4f5e2780d87ecefaebbe77b46d\n915df4c38d301c8a4eb2dc5b1ba0ffaad67cbb177e0a80095614e9c711f4ef24a4cef133f9d982a63d2a943ba6c8669d\nae6a2a4dedfc2d1811711a8946991fede972fdf2a389b282471280737536ffc0ac3a6d885b1f8bda0366eb0b229b9979\na9b628c63d08b8aba6b1317f6e91c34b2382a6c85376e8ef2410a463c6796740ae936fc4e9e0737cb9455d1daa287bd8\n848e30bf7edf2546670b390d5cf9ab71f98fcb6add3c0b582cb34996c26a446dee5d1bde4fdcde4fc80c10936e117b29\n907d6096c7c8c087d1808dd995d5d2b9169b3768c3f433475b50c2e2bd4b082f4d543afd8b0b0ddffa9c66222a72d51d\na59970a2493b07339124d763ac9d793c60a03354539ecbcf6035bc43d1ea6e35718202ae6d7060b7d388f483d971573c\nb9cfef2af9681b2318f119d8611ff6d9485a68d8044581b1959ab1840cbca576dbb53eec17863d2149966e9feb21122f\nad47271806161f61d3afa45cdfe2babceef5e90031a21779f83dc8562e6076680525b4970b2f11fe9b2b23c382768323\n8e425a99b71677b04fe044625d338811fbb8ee32368a424f6ab2381c52e86ee7a6cecedf777dc97181519d41c351bc22\n86b55b54d7adefc12954a9252ee23ae83efe8b5b4b9a7dc307904413e5d69868c7087a818b2833f9b004213d629be8ad\na14fda6b93923dd11e564ae4457a66f397741527166e0b16a8eb91c6701c244fd1c4b63f9dd3515193ec88fa6c266b35\na9b17c36ae6cd85a0ed7f6cabc5b47dc8f80ced605db327c47826476dc1fb8f8669aa7a7dc679fbd4ee3d8e8b4bd6a6f\n82a0829469c1458d959c821148f15dacae9ea94bf56c59a6ab2d4dd8b3d16d73e313b5a3912a6c1f131d73a8f06730c4\nb22d56d549a53eaef549595924bdb621ff807aa4513feedf3fdcbf7ba8b6b9cfa4481c2f67fc642db397a6b794a8b63a\n974c59c24392e2cb9294006cbe3c52163e255f3bd0c2b457bdc68a6338e6d5b6f87f716854492f8d880a6b896ccf757c\nb70d247ba7cad97c50b57f526c2ba915786e926a94e8f8c3eebc2e1be6f4255411b9670e382060049c8f4184302c40b2\nad80201fe75ef21c3ddbd98cf23591e0d7a3ba1036dfe77785c32f44755a212c31f0ceb0a0b6f5ee9b6dc81f358d30c3\n8c656e841f9bb90b9a42d425251f3fdbc022a604d75f5845f479ed4be23e02aaf9e6e56cde351dd7449c50574818a199\n8b88dd3fa209d3063b7c5b058f7249ee9900fbc2287d16da61a0704a0a1d71e45d9c96e1cda7fdf9654534ec44558b22\n961da00cc8750bd84d253c08f011970ae1b1158ad6778e8ed943d547bceaf52d6d5a212a7de3bf2706688c4389b827d2\na5dd379922549a956033e3d51a986a4b1508e575042b8eaa1df007aa77cf0b8c2ab23212f9c075702788fa9c53696133\nac8fcfde3a349d1e93fc8cf450814e842005c545c4844c0401bc80e6b96cdb77f29285a14455e167c191d4f312e866cd\nac63d79c799783a8466617030c59dd5a8f92ee6c5204676fd8d881ce5f7f8663bdbeb0379e480ea9b6340ab0dc88e574\n805874fde19ce359041ae2bd52a39e2841acabfd31f965792f2737d7137f36d4e4722ede8340d8c95afa6af278af8acb\n8d2f323a228aa8ba7b7dc1399138f9e6b41df1a16a7069003ab8104b8b68506a45141bc5fe66acf430e23e13a545190b\na1610c721a2d9af882bb6b39bea97cff1527a3aea041d25934de080214ae77c959e79957164440686d15ab301e897d4d\naba16d29a47fc36f12b654fde513896723e2c700c4190f11b26aa4011da57737ad717daa02794aa3246e4ae5f0b0cc3a\na406db2f15fdd135f346cc4846623c47edd195e80ba8c7cb447332095314d565e4040694ca924696bb5ee7f8996ea0ba\n8b30e2cd9b47d75ba57b83630e40f832249af6c058d4f490416562af451993eec46f3e1f90bc4d389e4c06abd1b32a46\naacf9eb7036e248e209adbfc3dd7ce386569ea9b312caa4b240726549db3c68c4f1c8cbf8ed5ea9ea60c7e57c9df3b8e\nb20fcac63bf6f5ee638a42d7f89be847f348c085ddcbec3fa318f4323592d136c230495f188ef2022aa355cc2b0da6f9\n811eff750456a79ec1b1249d76d7c1547065b839d8d4aaad860f6d4528eb5b669473dcceeeea676cddbc3980b68461b7\nb52d14ae33f4ab422f953392ae76a19c618cc31afc96290bd3fe2fb44c954b5c92c4789f3f16e8793f2c0c1691ade444\na7826dafeeba0db5b66c4dfcf2b17fd7b40507a5a53ac2e42942633a2cb30b95ba1739a6e9f3b7a0e0f1ec729bf274e2\n8acfd83ddf7c60dd7c8b20c706a3b972c65d336b8f9b3d907bdd8926ced271430479448100050b1ef17578a49c8fa616\naf0c69f65184bb06868029ad46f8465d75c36814c621ac20a5c0b06a900d59305584f5a6709683d9c0e4b6cd08d650a6\nb6cc8588191e00680ee6c3339bd0f0a17ad8fd7f4be57d5d7075bede0ea593a19e67f3d7c1a20114894ee5bfcab71063\na82fd4f58635129dbb6cc3eb9391cf2d28400018b105fc41500fbbd12bd890b918f97d3d359c29dd3b4c4e34391dfab0\n92fc544ed65b4a3625cf03c41ddff7c039bc22d22c0d59dcc00efd5438401f2606adb125a1d5de294cca216ec8ac35a3\n906f67e4a32582b71f15940523c0c7ce370336935e2646bdaea16a06995256d25e99df57297e39d6c39535e180456407\n97510337ea5bbd5977287339197db55c60533b2ec35c94d0a460a416ae9f60e85cee39be82abeeacd5813cf54df05862\n87e6894643815c0ea48cb96c607266c5ee4f1f82ba5fe352fb77f9b6ed14bfc2b8e09e80a99ac9047dfcf62b2ae26795\nb6fd55dd156622ad7d5d51b7dde75e47bd052d4e542dd6449e72411f68275775c846dde301e84613312be8c7bce58b07\nb98461ac71f554b2f03a94e429b255af89eec917e208a8e60edf5fc43b65f1d17a20de3f31d2ce9f0cb573c25f2f4d98\n96f0dea40ca61cefbee41c4e1fe9a7d81fbe1f49bb153d083ab70f5d0488a1f717fd28cedcf6aa18d07cce2c62801898\n8d7c3ab310184f7dc34b6ce4684e4d29a31e77b09940448ea4daac730b7eb308063125d4dd229046cf11bfd521b771e0\n96f0564898fe96687918bbf0a6adead99cf72e3a35ea3347e124af9d006221f8e82e5a9d2fe80094d5e8d48e610f415e\nad50fcb92c2675a398cf07d4c40a579e44bf8d35f27cc330b57e54d5ea59f7d898af0f75dccfe3726e5471133d70f92b\n828beed62020361689ae7481dd8f116902b522fb0c6c122678e7f949fdef70ead011e0e6bffd25678e388744e17cdb69\n8349decac1ca16599eee2efc95bcaabf67631107da1d34a2f917884bd70dfec9b4b08ab7bc4379d6c73b19c0b6e54fb8\nb2a6a2e50230c05613ace9e58bb2e98d94127f196f02d9dddc53c43fc68c184549ca12d713cb1b025d8260a41e947155\n94ff52181aadae832aed52fc3b7794536e2a31a21fc8be3ea312ca5c695750d37f08002f286b33f4023dba1e3253ecfa\na21d56153c7e5972ee9a319501be4faff199fdf09bb821ea9ce64aa815289676c00f105e6f00311b3a5b627091b0d0fc\na27a60d219f1f0c971db73a7f563b371b5c9fc3ed1f72883b2eac8a0df6698400c9954f4ca17d7e94e44bd4f95532afb\na2fc56fae99b1f18ba5e4fe838402164ce82f8a7f3193d0bbd360c2bac07c46f9330c4c7681ffb47074c6f81ee6e7ac6\nb748e530cd3afb96d879b83e89c9f1a444f54e55372ab1dcd46a0872f95ce8f49cf2363fc61be82259e04f555937ed16\n8bf8993e81080c7cbba1e14a798504af1e4950b2f186ab3335b771d6acaee4ffe92131ae9c53d74379d957cb6344d9cd\n96774d0ef730d22d7ab6d9fb7f90b9ead44285219d076584a901960542756700a2a1603cdf72be4708b267200f6c36a9\nb47703c2ab17be1e823cc7bf3460db1d6760c0e33862c90ca058845b2ff234b0f9834ddba2efb2ee1770eb261e7d8ffd\n84319e67c37a9581f8b09b5e4d4ae88d0a7fb4cbb6908971ab5be28070c3830f040b1de83ee663c573e0f2f6198640e4\n96811875fa83133e0b3c0e0290f9e0e28bca6178b77fdf5350eb19344d453dbd0d71e55a0ef749025a5a2ca0ad251e81\n81a423423e9438343879f2bfd7ee9f1c74ebebe7ce3cfffc8a11da6f040cc4145c3b527bd3cf63f9137e714dbcb474ef\nb8c3535701ddbeec2db08e17a4fa99ba6752d32ece5331a0b8743676f421fcb14798afc7c783815484f14693d2f70db8\n81aee980c876949bf40782835eec8817d535f6f3f7e00bf402ddd61101fdcd60173961ae90a1cf7c5d060339a18c959d\n87e67b928d97b62c49dac321ce6cb680233f3a394d4c9a899ac2e8db8ccd8e00418e66cdfd68691aa3cb8559723b580c\n8eac204208d99a2b738648df96353bbb1b1065e33ee4f6bba174b540bbbd37d205855e1f1e69a6b7ff043ca377651126\n848e6e7a54ad64d18009300b93ea6f459ce855971dddb419b101f5ac4c159215626fadc20cc3b9ab1701d8f6dfaddd8b\n88aa123d9e0cf309d46dddb6acf634b1ade3b090a2826d6e5e78669fa1220d6df9a6697d7778cd9b627db17eea846126\n9200c2a629b9144d88a61151b661b6c4256cc5dadfd1e59a8ce17a013c2d8f7e754aabe61663c3b30f1bc47784c1f8cf\nb6e1a2827c3bdda91715b0e1b1f10dd363cef337e7c80cac1f34165fc0dea7c8b69747e310563db5818390146ce3e231\n92c333e694f89f0d306d54105b2a5dcc912dbe7654d9e733edab12e8537350815be472b063e56cfde5286df8922fdecb\na6fac04b6d86091158ebb286586ccfec2a95c9786e14d91a9c743f5f05546073e5e3cc717635a0c602cad8334e922346\na581b4af77feebc1fb897d49b5b507c6ad513d8f09b273328efbb24ef0d91eb740d01b4d398f2738125dacfe550330cd\n81c4860cccf76a34f8a2bc3f464b7bfd3e909e975cce0d28979f457738a56e60a4af8e68a3992cf273b5946e8d7f76e2\n8d1eaa09a3180d8af1cbaee673db5223363cc7229a69565f592fa38ba0f9d582cedf91e15dabd06ebbf2862fc0feba54\n9832f49b0147f4552402e54593cfa51f99540bffada12759b71fcb86734be8e500eea2d8b3d036710bdf04c901432de9\n8bdb0e8ec93b11e5718e8c13cb4f5de545d24829fd76161216340108098dfe5148ed25e3b57a89a516f09fa79043734d\nab96f06c4b9b0b2c0571740b24fca758e6976315053a7ecb20119150a9fa416db2d3a2e0f8168b390bb063f0c1caf785\nab777f5c52acd62ecf4d1f168b9cc8e1a9b45d4ec6a8ff52c583e867c2239aba98d7d3af977289b367edce03d9c2dfb1\na09d3ce5e748da84802436951acc3d3ea5d8ec1d6933505ed724d6b4b0d69973ab0930daec9c6606960f6e541e4a3ce2\n8ef94f7be4d85d5ad3d779a5cf4d7b2fc3e65c52fb8e1c3c112509a4af77a0b5be994f251e5e40fabeeb1f7d5615c22b\na7406a5bf5708d9e10922d3c5c45c03ef891b8d0d74ec9f28328a72be4cdc05b4f2703fa99366426659dfca25d007535\nb7f52709669bf92a2e070bfe740f422f0b7127392c5589c7f0af71bb5a8428697c762d3c0d74532899da24ea7d8695c2\nb9dfb0c8df84104dbf9239ccefa4672ef95ddabb8801b74997935d1b81a78a6a5669a3c553767ec19a1281f6e570f4ff\nae4d5c872156061ce9195ac640190d8d71dd406055ee43ffa6f9893eb24b870075b74c94d65bc1d5a07a6573282b5520\nafe6bd3eb72266d333f1807164900dcfa02a7eb5b1744bb3c86b34b3ee91e3f05e38fa52a50dc64eeb4bdb1dd62874b8\n948043cf1bc2ef3c01105f6a78dc06487f57548a3e6ef30e6ebc51c94b71e4bf3ff6d0058c72b6f3ecc37efd7c7fa8c0\na22fd17c2f7ffe552bb0f23fa135584e8d2d8d75e3f742d94d04aded2a79e22a00dfe7acbb57d44e1cdb962fb22ae170\n8cd0f4e9e4fb4a37c02c1bde0f69359c43ab012eb662d346487be0c3758293f1ca560122b059b091fddce626383c3a8f\n90499e45f5b9c81426f3d735a52a564cafbed72711d9279fdd88de8038e953bc48c57b58cba85c3b2e4ce56f1ddb0e11\n8c30e4c034c02958384564cac4f85022ef36ab5697a3d2feaf6bf105049675bbf23d01b4b6814711d3d9271abff04cac\n81f7999e7eeea30f3e1075e6780bbf054f2fb6f27628a2afa4d41872a385b4216dd5f549da7ce6cf39049b2251f27fb7\nb36a7191f82fc39c283ffe53fc1f5a9a00b4c64eee7792a8443475da9a4d226cf257f226ea9d66e329af15d8f04984ec\naad4da528fdbb4db504f3041c747455baff5fcd459a2efd78f15bdf3aea0bdb808343e49df88fe7a7c8620009b7964a3\n99ebd8c6dd5dd299517fb6381cfc2a7f443e6e04a351440260dd7c2aee3f1d8ef06eb6c18820b394366ecdfd2a3ce264\n8873725b81871db72e4ec3643084b1cdce3cbf80b40b834b092767728605825c19b6847ad3dcf328438607e8f88b4410\nb008ee2f895daa6abd35bd39b6f7901ae4611a11a3271194e19da1cdcc7f1e1ea008fe5c5440e50d2c273784541ad9c5\n9036feafb4218d1f576ef89d0e99124e45dacaa6d816988e34d80f454d10e96809791d5b78f7fd65f569e90d4d7238c5\n92073c1d11b168e4fa50988b0288638b4868e48bbc668c5a6dddf5499875d53be23a285acb5e4bad60114f6cf6c556e9\n88c87dfcb8ba6cbfe7e1be081ccfadbd589301db2cb7c99f9ee5d7db90aa297ed1538d5a867678a763f2deede5fd219a\nb42a562805c661a50f5dea63108002c0f27c0da113da6a9864c9feb5552225417c0356c4209e8e012d9bcc9d182c7611\n8e6317d00a504e3b79cd47feb4c60f9df186467fe9ca0f35b55c0364db30528f5ff071109dabb2fc80bb9cd4949f0c24\nb7b1ea6a88694f8d2f539e52a47466695e39e43a5eb9c6f23bca15305fe52939d8755cc3ac9d6725e60f82f994a3772f\na3cd55161befe795af93a38d33290fb642b8d80da8b786c6e6fb02d393ea308fbe87f486994039cbd7c7b390414594b6\nb416d2d45b44ead3b1424e92c73c2cf510801897b05d1724ff31cbd741920cd858282fb5d6040fe1f0aa97a65bc49424\n950ee01291754feace97c2e933e4681e7ddfbc4fcd079eb6ff830b0e481d929c93d0c7fb479c9939c28ca1945c40da09\n869bd916aee8d86efe362a49010382674825d49195b413b4b4018e88ce43fe091b475d0b863ff0ba2259400f280c2b23\n9782f38cd9c9d3385ec286ebbc7cba5b718d2e65a5890b0a5906b10a89dc8ed80d417d71d7c213bf52f2af1a1f513ea7\n91cd33bc2628d096269b23faf47ee15e14cb7fdc6a8e3a98b55e1031ea0b68d10ba30d97e660f7e967d24436d40fad73\n8becc978129cc96737034c577ae7225372dd855da8811ae4e46328e020c803833b5bdbc4a20a93270e2b8bd1a2feae52\na36b1d8076783a9522476ce17f799d78008967728ce920531fdaf88303321bcaf97ecaa08e0c01f77bc32e53c5f09525\nb4720e744943f70467983aa34499e76de6d59aa6fadf86f6b787fdce32a2f5b535b55db38fe2da95825c51002cfe142d\n91ad21fc502eda3945f6de874d1b6bf9a9a7711f4d61354f9e5634fc73f9c06ada848de15ab0a75811d3250be862827d\n84f78e2ebf5fc077d78635f981712daf17e2475e14c2a96d187913006ad69e234746184a51a06ef510c9455b38acb0d7\n960aa7906e9a2f11db64a26b5892ac45f20d2ccb5480f4888d89973beb6fa0dfdc06d68d241ff5ffc7f1b82b1aac242d\na99365dcd1a00c66c9db6924b97c920f5c723380e823b250db85c07631b320ec4e92e586f7319e67a522a0578f7b6d6c\na25d92d7f70cf6a88ff317cfec071e13774516da664f5fac0d4ecaa65b8bf4eb87a64a4d5ef2bd97dfae98d388dbf5cc\na7af47cd0041295798f9779020a44653007444e8b4ef0712982b06d0dcdd434ec4e1f7c5f7a049326602cb605c9105b7\naefe172eac5568369a05980931cc476bebd9dea573ba276d59b9d8c4420784299df5a910033b7e324a6c2dfc62e3ef05\nb69bc9d22ffa645baa55e3e02522e9892bb2daa7fff7c15846f13517d0799766883ee09ae0869df4139150c5b843ca8a\n95a10856140e493354fdd12722c7fdded21b6a2ffbc78aa2697104af8ad0c8e2206f44b0bfee077ef3949d46bbf7c16b\n891f2fcd2c47cbea36b7fa715968540c233313f05333f09d29aba23c193f462ed490dd4d00969656e89c53155fdfe710\na6c33e18115e64e385c843dde34e8a228222795c7ca90bc2cc085705d609025f3351d9be61822c69035a49fb3e48f2d5\nb87fb12f12c0533b005adad0487f03393ff682e13575e3cb57280c3873b2c38ba96a63c49eef7a442753d26b7005230b\nb905c02ba451bfd411c135036d92c27af3b0b1c9c2f1309d6948544a264b125f39dd41afeff4666b12146c545adc168a\n8b29c513f43a78951cf742231cf5457a6d9d55edf45df5481a0f299a418d94effef561b15d2c1a01d1b8067e7153fda9\nb9941cccd51dc645920d2781c81a317e5a33cb7cf76427b60396735912cb6d2ca9292bb4d36b6392467d390d2c58d9f3\na8546b627c76b6ef5c93c6a98538d8593dbe21cb7673fd383d5401b0c935eea0bdeeefeb1af6ad41bad8464fb87bbc48\naa286b27de2812de63108a1aec29d171775b69538dc6198640ac1e96767c2b83a50391f49259195957d457b493b667c9\na932fb229f641e9abbd8eb2bd874015d97b6658ab6d29769fc23b7db9e41dd4f850382d4c1f08af8f156c5937d524473\na1412840fcc86e2aeec175526f2fb36e8b3b8d21a78412b7266daf81e51b3f68584ed8bd42a66a43afdd8c297b320520\n89c78be9efb624c97ebca4fe04c7704fa52311d183ffd87737f76b7dadc187c12c982bd8e9ed7cd8beb48cdaafd2fd01\na3f5ddec412a5bec0ce15e3bcb41c6214c2b05d4e9135a0d33c8e50a78eaba71e0a5a6ea8b45854dec5c2ed300971fc2\n9721f9cec7a68b7758e3887548790de49fa6a442d0396739efa20c2f50352a7f91d300867556d11a703866def2d5f7b5\na23764e140a87e5991573521af039630dd28128bf56eed2edbed130fd4278e090b60cf5a1dca9de2910603d44b9f6d45\na1a6494a994215e48ab55c70efa8ffdddce6e92403c38ae7e8dd2f8288cad460c6c7db526bbdf578e96ca04d9fe12797\nb1705ea4cb7e074efe0405fc7b8ee2ec789af0426142f3ec81241cacd4f7edcd88e39435e4e4d8e7b1df64f3880d6613\n85595d061d677116089a6064418b93eb44ff79e68d12bd9625078d3bbc440a60d0b02944eff6054433ee34710ae6fbb4\n9978d5e30bedb7526734f9a1febd973a70bfa20890490e7cc6f2f9328feab1e24f991285dbc3711d892514e2d7d005ad\naf30243c66ea43b9f87a061f947f7bce745f09194f6e95f379c7582b9fead920e5d6957eaf05c12ae1282ada4670652f\na1930efb473f88001e47aa0b2b2a7566848cccf295792e4544096ecd14ee5d7927c173a8576b405bfa2eec551cd67eb5\nb0446d1c590ee5a45f7e22d269c044f3848c97aec1d226b44bfd0e94d9729c28a38bccddc3a1006cc5fe4e3c24f001f2\nb8a8380172df3d84b06176df916cf557966d4f2f716d3e9437e415d75b646810f79f2b2b71d857181b7fc944018883a3\na563afec25b7817bfa26e19dc9908bc00aa8fc3d19be7d6de23648701659009d10e3e4486c28e9c6b13d48231ae29ac5\na5a8e80579de886fb7d6408f542791876885947b27ad6fa99a8a26e381f052598d7b4e647b0115d4b5c64297e00ce28e\n8f87afcc7ad33c51ac719bade3cd92da671a37a82c14446b0a2073f4a0a23085e2c8d31913ed2d0be928f053297de8f6\na43c455ce377e0bc434386c53c752880687e017b2f5ae7f8a15c044895b242dffde4c92fb8f8bb50b18470b17351b156\n8368f8b12a5bceb1dba25adb3a2e9c7dc9b1a77a1f328e5a693f5aec195cd1e06b0fe9476b554c1c25dac6c4a5b640a3\n919878b27f3671fc78396f11531c032f3e2bd132d04cc234fa4858676b15fb1db3051c0b1db9b4fc49038216f11321ce\nb48cd67fb7f1242696c1f877da4bdf188eac676cd0e561fbac1a537f7b8229aff5a043922441d603a26aae56a15faee4\na3e0fdfd4d29ea996517a16f0370b54787fefe543c2fe73bfc6f9e560c1fd30dad8409859e2d7fa2d44316f24746c712\n8bb156ade8faf149df7bea02c140c7e392a4742ae6d0394d880a849127943e6f26312033336d3b9fdc0092d71b5efe87\n8845e5d5cc555ca3e0523244300f2c8d7e4d02aaebcb5bd749d791208856c209a6f84dd99fd55968c9f0ab5f82916707\na3e90bb5c97b07789c2f32dff1aec61d0a2220928202f5ad5355ae71f8249237799d6c8a22602e32e572cb12eabe0c17\nb150bcc391884c996149dc3779ce71f15dda63a759ee9cc05871f5a8379dcb62b047098922c0f26c7bd04deb394c33f9\n95cd4ad88d51f0f2efcfd0c2df802fe252bb9704d1afbf9c26a248df22d55da87bdfaf41d7bc6e5df38bd848f0b13f42\na05a49a31e91dff6a52ac8b9c2cfdd646a43f0d488253f9e3cfbce52f26667166bbb9b608fc358763a65cbf066cd6d05\na59c3c1227fdd7c2e81f5e11ef5c406da44662987bac33caed72314081e2eed66055d38137e01b2268e58ec85dd986c0\nb7020ec3bd73a99861f0f1d88cf5a19abab1cbe14b7de77c9868398c84bb8e18dbbe9831838a96b6d6ca06e82451c67b\n98d1ff2525e9718ee59a21d8900621636fcd873d9a564b8dceb4be80a194a0148daf1232742730b3341514b2e5a5436c\n886d97b635975fc638c1b6afc493e5998ca139edba131b75b65cfe5a8e814f11bb678e0eeee5e6e5cd913ad3f2fefdfc\n8fb9fd928d38d5d813b671c924edd56601dd7163b686c13f158645c2f869d9250f3859aa5463a39258c90fef0f41190a\naac35e1cd655c94dec3580bb3800bd9c2946c4a9856f7d725af15fbea6a2d8ca51c8ad2772abed60ee0e3fb9cb24046b\nb8d71fa0fa05ac9e443c9b4929df9e7f09a919be679692682e614d24227e04894bfc14a5c73a62fb927fedff4a0e4aa7\na45a19f11fbbb531a704badbb813ed8088ab827c884ee4e4ebf363fa1132ff7cfa9d28be9c85b143e4f7cdbc94e7cf1a\n82b54703a4f295f5471b255ab59dce00f0fe90c9fb6e06b9ee48b15c91d43f4e2ef4a96c3118aeb03b08767be58181bb\n8283264c8e6d2a36558f0d145c18576b6600ff45ff99cc93eca54b6c6422993cf392668633e5df396b9331e873d457e5\n8c549c03131ead601bc30eb6b9537b5d3beb7472f5bb1bcbbfd1e9f3704477f7840ab3ab7f7dc13bbbbcdff886a462d4\nafbb0c520ac1b5486513587700ad53e314cb74bfbc12e0b5fbdcfdaac36d342e8b59856196a0d84a25cff6e6e1d17e76\n89e4c22ffb51f2829061b3c7c1983c5c750cad158e3a825d46f7cf875677da5d63f653d8a297022b5db5845c9271b32b\nafb27a86c4c2373088c96b9adf4433f2ebfc78ac5c526e9f0510670b6e4e5e0057c0a4f75b185e1a30331b9e805c1c15\na18e16b57445f88730fc5d3567bf5a176861dc14c7a08ed2996fe80eed27a0e7628501bcb78a1727c5e9ac55f29c12c4\n93d61bf88b192d6825cf4e1120af1c17aa0f994d158b405e25437eaeefae049f7b721a206e7cc8a04fdc29d3c42580a1\na99f2995a2e3ed2fd1228d64166112038de2f516410aa439f4c507044e2017ea388604e2d0f7121256fadf7fbe7023d1\n914fd91cffc23c32f1c6d0e98bf660925090d873367d543034654389916f65f552e445b0300b71b61b721a72e9a5983c\nb42a578a7787b71f924e7def425d849c1c777156b1d4170a8ee7709a4a914e816935131afd9a0412c4cb952957b20828\n82fb30590e84b9e45db1ec475a39971cf554dc01bcc7050bc89265740725c02e2be5a972168c5170c86ae83e5b0ad2c0\nb14f8d8e1e93a84976289e0cf0dfa6f3a1809e98da16ee5c4932d0e1ed6bf8a07697fdd4dd86a3df84fb0003353cdcc0\n85d7a2f4bda31aa2cb208b771fe03291a4ebdaf6f1dc944c27775af5caec412584c1f45bc741fca2a6a85acb3f26ad7d\naf02e56ce886ff2253bc0a68faad76f25ead84b2144e5364f3fb9b648f03a50ee9dc0b2c33ebacf7c61e9e43201ef9ef\n87e025558c8a0b0abd06dfc350016847ea5ced7af2d135a5c9eec9324a4858c4b21510fb0992ec52a73447f24945058e\n80fff0bafcd058118f5e7a4d4f1ae0912efeb281d2cbe4d34ba8945cc3dbe5d8baf47fb077343b90b8d895c90b297aca\nb6edcf3a40e7b1c3c0148f47a263cd819e585a51ef31c2e35a29ce6f04c53e413f743034c0d998d9c00a08ba00166f31\nabb87ed86098c0c70a76e557262a494ff51a30fb193f1c1a32f8e35eafa34a43fcc07aa93a3b7a077d9e35afa07b1a3d\na280214cd3bb0fb7ecd2d8bcf518cbd9078417f2b91d2533ec2717563f090fb84f2a5fcfdbbeb2a2a1f8a71cc5aa5941\na63083ca7238ea2b57d15a475963cf1d4f550d8cd76db290014a0461b90351f1f26a67d674c837b0b773b330c7c3d534\na8fa39064cb585ece5263e2f42f430206476bf261bd50f18d2b694889bd79d04d56410664cecad62690e5c5a20b3f6ff\n85ba52ce9d700a5dcf6c5b00559acbe599d671ce5512467ff4b6179d7fad550567ce2a9c126a50964e3096458ea87920\nb913501e1008f076e5eac6d883105174f88b248e1c9801e568fefaffa1558e4909364fc6d9512aa4d125cbd7cc895f05\n8eb33b5266c8f2ed4725a6ad147a322e44c9264cf261c933cbbe230a43d47fca0f29ec39756b20561dabafadd5796494\n850ebc8b661a04318c9db5a0515066e6454fa73865aa4908767a837857ecd717387f614acb614a88e075d4edc53a2f5a\na08d6b92d866270f29f4ce23a3f5d99b36b1e241a01271ede02817c8ec3f552a5c562db400766c07b104a331835c0c64\n8131804c89bb3e74e9718bfc4afa547c1005ff676bd4db9604335032b203390cfa54478d45c6c78d1fe31a436ed4be9f\n9106d94f23cc1eacec8316f16d6f0a1cc160967c886f51981fdb9f3f12ee1182407d2bb24e5b873de58cb1a3ee915a6b\na13806bfc3eae7a7000c9d9f1bd25e10218d4e67f59ae798b145b098bca3edad2b1040e3fc1e6310e612fb8818f459ac\n8c69fbca502046cb5f6db99900a47b34117aef3f4b241690cdb3b84ca2a2fc7833e149361995dc41fa78892525bce746\n852c473150c91912d58ecb05769222fa18312800c3f56605ad29eec9e2d8667b0b81c379048d3d29100ed2773bb1f3c5\nb1767f6074426a00e01095dbb1795beb4e4050c6411792cbad6537bc444c3165d1058bafd1487451f9c5ddd209e0ae7e\n80c600a5fe99354ce59ff0f84c760923dc8ff66a30bf47dc0a086181785ceb01f9b951c4e66df800ea6d705e8bc47055\nb5cf19002fbc88a0764865b82afcb4d64a50196ea361e5c71dff7de084f4dcbbc34ec94a45cc9e0247bd51da565981aa\n93e67a254ea8ce25e112d93cc927fadaa814152a2c4ec7d9a56eaa1ed47aec99b7e9916b02e64452cc724a6641729bbb\nace70b32491bda18eee4a4d041c3bc9effae9340fe7e6c2f5ad975ee0874c17f1a7da7c96bd85fccff9312c518fac6e9\nab4cfa02065017dd7f1aadc66f2c92f78f0f11b8597c03a5d69d82cb2eaf95a4476a836ac102908f137662472c8d914b\na40b8cd8deb8ae503d20364d64cab7c2801b7728a9646ed19c65edea6a842756a2f636283494299584ad57f4bb12cd0b\n8594e11d5fc2396bcd9dbf5509ce4816dbb2b7305168021c426171fb444d111da5a152d6835ad8034542277011c26c0e\n8024de98c26b4c994a66628dc304bb737f4b6859c86ded552c5abb81fd4c6c2e19d5a30beed398a694b9b2fdea1dd06a\n8843f5872f33f54df8d0e06166c1857d733995f67bc54abb8dfa94ad92407cf0179bc91b0a50bbb56cdc2b350d950329\nb8bab44c7dd53ef9edf497dcb228e2a41282c90f00ba052fc52d57e87b5c8ab132d227af1fcdff9a12713d1f980bcaae\n982b4d7b29aff22d527fd82d2a52601d95549bfb000429bb20789ed45e5abf1f4b7416c7b7c4b79431eb3574b29be658\n8eb1f571b6a1878e11e8c1c757e0bc084bab5e82e897ca9be9b7f4b47b91679a8190bf0fc8f799d9b487da5442415857\na6e74b588e5af935c8b243e888582ef7718f8714569dd4992920740227518305eb35fab674d21a5551cca44b3e511ef2\na30fc2f3a4cb4f50566e82307de73cd7bd8fe2c1184e9293c136a9b9e926a018d57c6e4f308c95b9eb8299e94d90a2a1\na50c5869ca5d2b40722c056a32f918d47e0b65ca9d7863ca7d2fb4a7b64fe523fe9365cf0573733ceaadebf20b48fff8\n83bbdd32c04d17581418cf360749c7a169b55d54f2427390defd9f751f100897b2d800ce6636c5bbc046c47508d60c8c\na82904bdf614de5d8deaff688c8a5e7ac5b3431687acbcda8fa53960b7c417a39c8b2e462d7af91ce6d79260f412db8e\na4362e31ff4b05d278b033cf5eebea20de01714ae16d4115d04c1da4754269873afc8171a6f56c5104bfd7b0db93c3e7\nb5b8daa63a3735581e74a021b684a1038cea77168fdb7fdf83c670c2cfabcfc3ab2fc7359069b5f9048188351aef26b5\nb48d723894b7782d96ac8433c48faca1bdfa5238019c451a7f47d958097cce3ae599b876cf274269236b9d6ff8b6d7ca\n98ffff6a61a3a6205c7820a91ca2e7176fab5dba02bc194c4d14942ac421cb254183c705506ab279e4f8db066f941c6c\nae7db24731da2eaa6efc4f7fcba2ecc26940ddd68038dce43acf2cee15b72dc4ef42a7bfdd32946d1ed78786dd7696b3\na656db14f1de9a7eb84f6301b4acb2fbf78bfe867f48a270e416c974ab92821eb4df1cb881b2d600cfed0034ac784641\naa315f8ecba85a5535e9a49e558b15f39520fce5d4bf43131bfbf2e2c9dfccc829074f9083e8d49f405fb221d0bc4c3c\n90bffba5d9ff40a62f6c8e9fc402d5b95f6077ed58d030c93e321b8081b77d6b8dac3f63a92a7ddc01585cf2c127d66c\nabdd733a36e0e0f05a570d0504e73801bf9b5a25ff2c78786f8b805704997acb2e6069af342538c581144d53149fa6d3\nb4a723bb19e8c18a01bd449b1bb3440ddb2017f10bb153da27deb7a6a60e9bb37619d6d5435fbb1ba617687838e01dd0\n870016b4678bab3375516db0187a2108b2e840bae4d264b9f4f27dbbc7cc9cac1d7dc582d7a04d6fd1ed588238e5e513\n80d33d2e20e8fc170aa3cb4f69fffb72aeafb3b5bb4ea0bc79ab55da14142ca19b2d8b617a6b24d537366e3b49cb67c3\na7ee76aec273aaae03b3b87015789289551969fb175c11557da3ab77e39ab49d24634726f92affae9f4d24003050d974\n8415ea4ab69d779ebd42d0fe0c6aef531d6a465a5739e429b1fcf433ec45aa8296c527e965a20f0ec9f340c9273ea3cf\n8c7662520794e8b4405d0b33b5cac839784bc86a5868766c06cbc1fa306dbe334978177417b31baf90ce7b0052a29c56\n902b2abecc053a3dbdea9897ee21e74821f3a1b98b2d560a514a35799f4680322550fd3a728d4f6d64e1de98033c32b8\na05e84ed9ecab8d508d670c39f2db61ad6e08d2795ec32a3c9d0d3737ef3801618f4fc2a95f90ec2f068606131e076c5\n8b9208ff4d5af0c2e3f53c9375da666773ac57197dfabb0d25b1c8d0588ba7f3c15ee9661bb001297f322ea2fbf6928b\na3c827741b34a03254d4451b5ab74a96f2b9f7fb069e2f5adaf54fd97cc7a4d516d378db5ca07da87d8566d6eef13726\n8509d8a3f4a0ed378e0a1e28ea02f6bf1d7f6c819c6c2f5297c7df54c895b848f841653e32ba2a2c22c2ff739571acb8\na0ce988b7d3c40b4e496aa83a09e4b5472a2d98679622f32bea23e6d607bc7de1a5374fb162bce0549a67dad948519be\naa8a3dd12bd60e3d2e05f9c683cdcb8eab17fc59134815f8d197681b1bcf65108cba63ac5c58ee632b1e5ed6bba5d474\n8b955f1d894b3aefd883fb4b65f14cd37fc2b9db77db79273f1700bef9973bf3fd123897ea2b7989f50003733f8f7f21\nac79c00ddac47f5daf8d9418d798d8af89fc6f1682e7e451f71ea3a405b0d36af35388dd2a332af790bc83ca7b819328\na0d44dd2a4438b809522b130d0938c3fe7c5c46379365dbd1810a170a9aa5818e1c783470dd5d0b6d4ac7edbb7330910\na30b69e39ad43dd540a43c521f05b51b5f1b9c4eed54b8162374ae11eac25da4f5756e7b70ce9f3c92c2eeceee7431ed\nac43220b762c299c7951222ea19761ab938bf38e4972deef58ed84f4f9c68c230647cf7506d7cbfc08562fcca55f0485\nb28233b46a8fb424cfa386a845a3b5399d8489ceb83c8f3e05c22c934798d639c93718b7b68ab3ce24c5358339e41cbb\nac30d50ee8ce59a10d4b37a3a35e62cdb2273e5e52232e202ca7d7b8d09d28958ee667fae41a7bb6cdc6fe8f6e6c9c85\nb199842d9141ad169f35cc7ff782b274cbaa645fdb727761e0a89edbf0d781a15f8218b4bf4eead326f2903dd88a9cc1\n85e018c7ddcad34bb8285a737c578bf741ccd547e68c734bdb3808380e12c5d4ef60fc896b497a87d443ff9abd063b38\n8c856e6ba4a815bdb891e1276f93545b7072f6cb1a9aa6aa5cf240976f29f4dee01878638500a6bf1daf677b96b54343\nb8a47555fa8710534150e1a3f13eab33666017be6b41005397afa647ea49708565f2b86b77ad4964d140d9ced6b4d585\n8cd1f1db1b2f4c85a3f46211599caf512d5439e2d8e184663d7d50166fd3008f0e9253272f898d81007988435f715881\nb1f34b14612c973a3eceb716dc102b82ab18afef9de7630172c2780776679a7706a4874e1df3eaadf541fb009731807f\nb25464af9cff883b55be2ff8daf610052c02df9a5e147a2cf4df6ce63edcdee6dc535c533590084cc177da85c5dc0baa\n91c3c4b658b42d8d3448ae1415d4541d02379a40dc51e36a59bd6e7b9ba3ea51533f480c7c6e8405250ee9b96a466c29\n86dc027b95deb74c36a58a1333a03e63cb5ae22d3b29d114cfd2271badb05268c9d0c819a977f5e0c6014b00c1512e3a\nae0e6ff58eb5fa35da5107ebeacf222ab8f52a22bb1e13504247c1dfa65320f40d97b0e6b201cb6613476687cb2f0681\n8f13415d960b9d7a1d93ef28afc2223e926639b63bdefce0f85e945dfc81670a55df288893a0d8b3abe13c5708f82f91\n956f67ca49ad27c1e3a68c1faad5e7baf0160c459094bf6b7baf36b112de935fdfd79fa4a9ea87ea8de0ac07272969f4\n835e45e4a67df9fb51b645d37840b3a15c171d571a10b03a406dd69d3c2f22df3aa9c5cbe1e73f8d767ce01c4914ea9a\n919b938e56d4b32e2667469d0bdccb95d9dda3341aa907683ee70a14bbbe623035014511c261f4f59b318b610ac90aa3\n96b48182121ccd9d689bf1dfdc228175564cd68dc904a99c808a7f0053a6f636c9d953e12198bdf2ea49ea92772f2e18\nac5e5a941d567fa38fdbcfa8cf7f85bb304e3401c52d88752bcd516d1fa9bac4572534ea2205e38423c1df065990790f\nac0bd594fb85a8d4fc26d6df0fa81f11919401f1ecf9168b891ec7f061a2d9368af99f7fd8d9b43b2ce361e7b8482159\n83d92c69ca540d298fe80d8162a1c7af3fa9b49dfb69e85c1d136a3ec39fe419c9fa78e0bb6d96878771fbd37fe92e40\nb35443ae8aa66c763c2db9273f908552fe458e96696b90e41dd509c17a5c04ee178e3490d9c6ba2dc0b8f793c433c134\n923b2d25aa45b2e580ffd94cbb37dc8110f340f0f011217ee1bd81afb0714c0b1d5fb4db86006cdd2457563276f59c59\n96c9125d38fca1a61ac21257b696f8ac3dae78def50285e44d90ea293d591d1c58f703540a7e4e99e070afe4646bbe15\nb57946b2332077fbcdcb406b811779aefd54473b5559a163cd65cb8310679b7e2028aa55c12a1401fdcfcac0e6fae29a\n845daedc5cf972883835d7e13c937b63753c2200324a3b8082a6c4abb4be06c5f7c629d4abe4bfaf1d80a1f073eb6ce6\n91a55dfd0efefcd03dc6dacc64ec93b8d296cb83c0ee72400a36f27246e7f2a60e73b7b70ba65819e9cfb73edb7bd297\n8874606b93266455fe8fdd25df9f8d2994e927460af06f2e97dd4d2d90db1e6b06d441b72c2e76504d753badca87fb37\n8ee99e6d231274ff9252c0f4e84549da173041299ad1230929c3e3d32399731c4f20a502b4a307642cac9306ccd49d3c\n8836497714a525118e20849d6933bb8535fb6f72b96337d49e3133d936999c90a398a740f42e772353b5f1c63581df6d\na6916945e10628f7497a6cdc5e2de113d25f7ade3e41e74d3de48ccd4fce9f2fa9ab69645275002e6f49399b798c40af\n9597706983107eb23883e0812e1a2c58af7f3499d50c6e29b455946cb9812fde1aa323d9ed30d1c0ffd455abe32303cd\na24ee89f7f515cc33bdbdb822e7d5c1877d337f3b2162303cfc2dae028011c3a267c5cb4194afa63a4856a6e1c213448\n8cd25315e4318801c2776824ae6e7d543cb85ed3bc2498ba5752df2e8142b37653cf9e60104d674be3aeb0a66912e97a\nb5085ecbe793180b40dbeb879f4c976eaaccaca3a5246807dced5890e0ed24d35f3f86955e2460e14fb44ff5081c07ba\n960188cc0b4f908633a6840963a6fa2205fc42c511c6c309685234911c5304ef4c304e3ae9c9c69daa2fb6a73560c256\na32d0a70bf15d569b4cda5aebe3e41e03c28bf99cdd34ffa6c5d58a097f322772acca904b3a47addb6c7492a7126ebac\n977f72d06ad72d4aa4765e0f1f9f4a3231d9f030501f320fe7714cc5d329d08112789fa918c60dd7fdb5837d56bb7fc6\n99fa038bb0470d45852bb871620d8d88520adb701712fcb1f278fed2882722b9e729e6cdce44c82caafad95e37d0e6f7\nb855e8f4fc7634ada07e83b6c719a1e37acb06394bc8c7dcab7747a8c54e5df3943915f021364bd019fdea103864e55f\n88bc2cd7458532e98c596ef59ea2cf640d7cc31b4c33cef9ed065c078d1d4eb49677a67de8e6229cc17ea48bace8ee5a\naaa78a3feaa836d944d987d813f9b9741afb076e6aca1ffa42682ab06d46d66e0c07b8f40b9dbd63e75e81efa1ef7b08\nb7b080420cc4d808723b98b2a5b7b59c81e624ab568ecdfdeb8bf3aa151a581b6f56e983ef1b6f909661e25db40b0c69\nabee85c462ac9a2c58e54f06c91b3e5cd8c5f9ab5b5deb602b53763c54826ed6deb0d6db315a8d7ad88733407e8d35e2\n994d075c1527407547590df53e9d72dd31f037c763848d1662eebd4cefec93a24328c986802efa80e038cb760a5300f5\nab8777640116dfb6678e8c7d5b36d01265dfb16321abbfc277da71556a34bb3be04bc4ae90124ed9c55386d2bfb3bda0\n967e3a828bc59409144463bcf883a3a276b5f24bf3cbfdd7a42343348cba91e00b46ac285835a9b91eef171202974204\n875a9f0c4ffe5bb1d8da5e3c8e41d0397aa6248422a628bd60bfae536a651417d4e8a7d2fb98e13f2dad3680f7bd86d3\nacaa330c3e8f95d46b1880126572b238dbb6d04484d2cd4f257ab9642d8c9fc7b212188b9c7ac9e0fd135c520d46b1bf\naceb762edbb0f0c43dfcdb01ea7a1ac5918ca3882b1e7ebc4373521742f1ed5250d8966b498c00b2b0f4d13212e6dd0b\n81d072b4ad258b3646f52f399bced97c613b22e7ad76373453d80b1650c0ca87edb291a041f8253b649b6e5429bb4cff\n980a47d27416ac39c7c3a0ebe50c492f8c776ea1de44d5159ac7d889b6d554357f0a77f0e5d9d0ff41aae4369eba1fc2\n8b4dfd5ef5573db1476d5e43aacfb5941e45d6297794508f29c454fe50ea622e6f068b28b3debe8635cf6036007de2e3\na60831559d6305839515b68f8c3bc7abbd8212cc4083502e19dd682d56ca37c9780fc3ce4ec2eae81ab23b221452dc57\n951f6b2c1848ced9e8a2339c65918e00d3d22d3e59a0a660b1eca667d18f8430d737884e9805865ef3ed0fe1638a22d9\nb02e38fe790b492aa5e89257c4986c9033a8b67010fa2add9787de857d53759170fdd67715ca658220b4e14b0ca48124\na51007e4346060746e6b0e4797fc08ef17f04a34fe24f307f6b6817edbb8ce2b176f40771d4ae8a60d6152cbebe62653\na510005b05c0b305075b27b243c9d64bcdce85146b6ed0e75a3178b5ff9608213f08c8c9246f2ca6035a0c3e31619860\naaff4ef27a7a23be3419d22197e13676d6e3810ceb06a9e920d38125745dc68a930f1741c9c2d9d5c875968e30f34ab5\n864522a9af9857de9814e61383bebad1ba9a881696925a0ea6bfc6eff520d42c506bbe5685a9946ed710e889765be4a0\nb63258c080d13f3b7d5b9f3ca9929f8982a6960bdb1b0f8676f4dca823971601672f15e653917bf5d3746bb220504913\nb51ce0cb10869121ae310c7159ee1f3e3a9f8ad498827f72c3d56864808c1f21fa2881788f19ece884d3f705cd7bd0c5\n95d9cecfc018c6ed510e441cf84c712d9909c778c16734706c93222257f64dcd2a9f1bd0b400ca271e22c9c487014274\n8beff4d7d0140b86380ff4842a9bda94c2d2be638e20ac68a4912cb47dbe01a261857536375208040c0554929ced1ddc\n891ff49258749e2b57c1e9b8e04b12c77d79c3308b1fb615a081f2aacdfb4b39e32d53e069ed136fdbd43c53b87418fa\n9625cad224e163d387738825982d1e40eeff35fe816d10d7541d15fdc4d3eee48009090f3faef4024b249205b0b28f72\n8f3947433d9bd01aa335895484b540a9025a19481a1c40b4f72dd676bfcf332713714fd4010bde936eaf9470fd239ed0\na00ec2d67789a7054b53f0e858a8a232706ccc29a9f3e389df7455f1a51a2e75801fd78469a13dbc25d28399ae4c6182\na3f65884506d4a62b8775a0ea0e3d78f5f46bc07910a93cd604022154eabdf1d73591e304d61edc869e91462951975e1\na14eef4fd5dfac311713f0faa9a60415e3d30b95a4590cbf95f2033dffb4d16c02e7ceff3dcd42148a4e3bc49cce2dd4\n8afa11c0eef3c540e1e3460bc759bb2b6ea90743623f88e62950c94e370fe4fd01c22b6729beba4dcd4d581198d9358f\nafb05548a69f0845ffcc5f5dc63e3cdb93cd270f5655173b9a950394b0583663f2b7164ba6df8d60c2e775c1d9f120af\n97f179e01a947a906e1cbeafa083960bc9f1bade45742a3afee488dfb6011c1c6e2db09a355d77f5228a42ccaa7bdf8e\n8447fca4d35f74b3efcbd96774f41874ca376bf85b79b6e66c92fa3f14bdd6e743a051f12a7fbfd87f319d1c6a5ce217\na57ca39c23617cd2cf32ff93b02161bd7baf52c4effb4679d9d5166406e103bc8f3c6b5209e17c37dbb02deb8bc72ddd\n9667c7300ff80f0140be002b0e36caab07aaee7cce72679197c64d355e20d96196acaf54e06e1382167d081fe6f739c1\n828126bb0559ce748809b622677267ca896fa2ee76360fd2c02990e6477e06a667241379ca7e65d61a5b64b96d7867de\n8b8835dea6ba8cf61c91f01a4b3d2f8150b687a4ee09b45f2e5fc8f80f208ae5d142d8e3a18153f0722b90214e60c5a7\na98e8ff02049b4da386e3ee93db23bbb13dfeb72f1cfde72587c7e6d962780b7671c63e8ac3fbaeb1a6605e8d79e2f29\n87a4892a0026d7e39ef3af632172b88337cb03669dea564bcdb70653b52d744730ebb5d642e20cb627acc9dbb547a26b\n877352a22fc8052878a57effc159dac4d75fe08c84d3d5324c0bab6d564cdf868f33ceee515eee747e5856b62cfa0cc7\n8b801ba8e2ff019ee62f64b8cb8a5f601fc35423eb0f9494b401050103e1307dc584e4e4b21249cd2c686e32475e96c3\na9e7338d6d4d9bfec91b2af28a8ed13b09415f57a3a00e5e777c93d768fdb3f8e4456ae48a2c6626b264226e911a0e28\n99c05fedf40ac4726ed585d7c1544c6e79619a0d3fb6bda75a08c7f3c0008e8d5e19ed4da48de3216135f34a15eba17c\na61cce8a1a8b13a4a650fdbec0eeea8297c352a8238fb7cac95a0df18ed16ee02a3daa2de108fa122aca733bd8ad7855\nb97f37da9005b440b4cb05870dd881bf8491fe735844f2d5c8281818583b38e02286e653d9f2e7fa5e74c3c3eb616540\na72164a8554da8e103f692ac5ebb4aece55d5194302b9f74b6f2a05335b6e39beede0bf7bf8c5bfd4d324a784c5fb08c\nb87e8221c5341cd9cc8bb99c10fe730bc105550f25ed4b96c0d45e6142193a1b2e72f1b3857373a659b8c09be17b3d91\na41fb1f327ef91dcb7ac0787918376584890dd9a9675c297c45796e32d6e5985b12f9b80be47fc3a8596c245f419d395\n90dafa3592bdbb3465c92e2a54c2531822ba0459d45d3e7a7092fa6b823f55af28357cb51896d4ec2d66029c82f08e26\na0a9adc872ebc396557f484f1dd21954d4f4a21c4aa5eec543f5fa386fe590839735c01f236574f7ff95407cd12de103\nb8c5c940d58be7538acf8672852b5da3af34f82405ef2ce8e4c923f1362f97fc50921568d0fd2fe846edfb0823e62979\n85aaf06a8b2d0dac89dafd00c28533f35dbd074978c2aaa5bef75db44a7b12aeb222e724f395513b9a535809a275e30b\n81f3cbe82fbc7028c26a6c1808c604c63ba023a30c9f78a4c581340008dbda5ec07497ee849a2183fcd9124f7936af32\na11ac738de75fd60f15a34209d3825d5e23385796a4c7fc5931822f3f380af977dd0f7b59fbd58eed7777a071e21b680\n85a279c493de03db6fa6c3e3c1b1b29adc9a8c4effc12400ae1128da8421954fa8b75ad19e5388fe4543b76fb0812813\n83a217b395d59ab20db6c4adb1e9713fc9267f5f31a6c936042fe051ce8b541f579442f3dcf0fa16b9e6de9fd3518191\n83a0b86e7d4ed8f9ccdc6dfc8ff1484509a6378fa6f09ed908e6ab9d1073f03011dc497e14304e4e3d181b57de06a5ab\na63ad69c9d25704ce1cc8e74f67818e5ed985f8f851afa8412248b2df5f833f83b95b27180e9e7273833ed0d07113d3b\n99b1bc2021e63b561fe44ddd0af81fcc8627a91bfeecbbc989b642bc859abc0c8d636399701aad7bbaf6a385d5f27d61\nb53434adb66f4a807a6ad917c6e856321753e559b1add70824e5c1e88191bf6993fccb9b8b911fc0f473fb11743acacd\n97ed3b9e6fb99bf5f945d4a41f198161294866aa23f2327818cdd55cb5dc4c1a8eff29dd8b8d04902d6cd43a71835c82\nb1e808260e368a18d9d10bdea5d60223ba1713b948c782285a27a99ae50cc5fc2c53d407de07155ecc16fb8a36d744a0\na3eb4665f18f71833fec43802730e56b3ee5a357ea30a888ad482725b169d6f1f6ade6e208ee081b2e2633079b82ba7d\nab8beb2c8353fc9f571c18fdd02bdb977fc883313469e1277b0372fbbb33b80dcff354ca41de436d98d2ed710faa467e\naa9071cfa971e4a335a91ad634c98f2be51544cb21f040f2471d01bb97e1df2277ae1646e1ea8f55b7ba9f5c8c599b39\n80b7dbfdcaf40f0678012acc634eba44ea51181475180d9deb2050dc4f2de395289edd0223018c81057ec79b04b04c49\n89623d7f6cb17aa877af14de842c2d4ab7fd576d61ddd7518b5878620a01ded40b6010de0da3cdf31d837eecf30e9847\na773bb024ae74dd24761f266d4fb27d6fd366a8634febe8235376b1ae9065c2fe12c769f1d0407867dfbe9f5272c352f\n8455a561c3aaa6ba64c881a5e13921c592b3a02e968f4fb24a2243c36202795d0366d9cc1a24e916f84d6e158b7aeac7\n81d8bfc4b283cf702a40b87a2b96b275bdbf0def17e67d04842598610b67ea08c804d400c3e69fa09ea001eaf345b276\nb8f8f82cb11fea1c99467013d7e167ff03deb0c65a677fab76ded58826d1ba29aa7cf9fcd7763615735ea3ad38e28719\n89a6a04baf9cccc1db55179e1650b1a195dd91fb0aebc197a25143f0f393524d2589975e3fbfc2547126f0bced7fd6f2\nb81b2162df045390f04df07cbd0962e6b6ca94275a63edded58001a2f28b2ae2af2c7a6cba4ecd753869684e77e7e799\na3757f722776e50de45c62d9c4a2ee0f5655a512344c4cbec542d8045332806568dd626a719ef21a4eb06792ca70f204\n8c5590df96ec22179a4e8786de41beb44f987a1dcc508eb341eecbc0b39236fdfad47f108f852e87179ccf4e10091e59\n87502f026ed4e10167419130b88c3737635c5b9074c364e1dd247cef5ef0fc064b4ae99b187e33301e438bbd2fe7d032\naf925a2165e980ced620ff12289129fe17670a90ae0f4db9d4b39bd887ccb1f5d2514ac9ecf910f6390a8fc66bd5be17\n857fca899828cf5c65d26e3e8a6e658542782fc72762b3b9c73514919f83259e0f849a9d4838b40dc905fe43024d0d23\n87ffebdbfb69a9e1007ebac4ffcb4090ff13705967b73937063719aa97908986effcb7262fdadc1ae0f95c3690e3245d\na9ff6c347ac6f4c6ab993b748802e96982eaf489dc69032269568412fc9a79e7c2850dfc991b28211b3522ee4454344b\na65b3159df4ec48bebb67cb3663cd744027ad98d970d620e05bf6c48f230fa45bf17527fe726fdf705419bb7a1bb913e\n84b97b1e6408b6791831997b03cd91f027e7660fd492a93d95daafe61f02427371c0e237c75706412f442991dfdff989\nab761c26527439b209af0ae6afccd9340bbed5fbe098734c3145b76c5d2cd7115d9227b2eb523882b7317fbb09180498\na0479a8da06d7a69c0b0fee60df4e691c19c551f5e7da286dab430bfbcabf31726508e20d26ea48c53365a7f00a3ad34\na732dfc9baa0f4f40b5756d2e8d8937742999623477458e0bc81431a7b633eefc6f53b3b7939fe0a020018549c954054\n901502436a1169ba51dc479a5abe7c8d84e0943b16bc3c6a627b49b92cd46263c0005bc324c67509edd693f28e612af1\nb627aee83474e7f84d1bab9b7f6b605e33b26297ac6bbf52d110d38ba10749032bd551641e73a383a303882367af429b\n95108866745760baef4a46ef56f82da6de7e81c58b10126ebd2ba2cd13d339f91303bf2fb4dd104a6956aa3b13739503\n899ed2ade37236cec90056f3569bc50f984f2247792defafcceb49ad0ca5f6f8a2f06573705300e07f0de0c759289ff5\na9f5eee196d608efe4bcef9bf71c646d27feb615e21252cf839a44a49fd89da8d26a758419e0085a05b1d59600e2dc42\nb36c6f68fed6e6c85f1f4a162485f24817f2843ec5cbee45a1ebfa367d44892e464949c6669f7972dc7167af08d55d25\naaaede243a9a1b6162afbc8f571a52671a5a4519b4062e3f26777664e245ba873ed13b0492c5dbf0258c788c397a0e9e\n972b4fb39c31cbe127bf9a32a5cc10d621ebdd9411df5e5da3d457f03b2ab2cd1f6372d8284a4a9400f0b06ecdbfd38e\n8f6ca1e110e959a4b1d9a5ce5f212893cec21db40d64d5ac4d524f352d72198f923416a850bf845bc5a22a79c0ea2619\na0f3c93b22134f66f04b2553a53b738644d1665ceb196b8494b315a4c28236fb492017e4a0de4224827c78e42f9908b7\n807fb5ee74f6c8735b0b5ca07e28506214fe4047dbeb00045d7c24f7849e98706aea79771241224939cb749cf1366c7d\n915eb1ff034224c0b645442cdb7d669303fdc00ca464f91aaf0b6fde0b220a3a74ff0cb043c26c9f3a5667b3fdaa9420\n8fda6cef56ed33fefffa9e6ac8e6f76b1af379f89761945c63dd448801f7bb8ca970504a7105fac2f74f652ccff32327\n87380cffdcffb1d0820fa36b63cc081e72187f86d487315177d4d04da4533eb19a0e2ff6115ceab528887819c44a5164\n8cd89e03411a18e7f16f968b89fb500c36d47d229f6487b99e62403a980058db5925ce249206743333538adfad168330\n974451b1df33522ce7056de9f03e10c70bf302c44b0741a59df3d6877d53d61a7394dcee1dd46e013d7cb9d73419c092\n98c35ddf645940260c490f384a49496a7352bb8e3f686feed815b1d38f59ded17b1ad6e84a209e773ed08f7b8ff1e4c2\n963f386cf944bb9b2ddebb97171b64253ea0a2894ac40049bdd86cda392292315f3a3d490ca5d9628c890cfb669f0acb\n8d507712152babd6d142ee682638da8495a6f3838136088df9424ef50d5ec28d815a198c9a4963610b22e49b4cdf95e9\n83d4bc6b0be87c8a4f1e9c53f257719de0c73d85b490a41f7420e777311640937320557ff2f1d9bafd1daaa54f932356\n82f5381c965b7a0718441131c4d13999f4cdce637698989a17ed97c8ea2e5bdb5d07719c5f7be8688edb081b23ede0f4\na6ebecab0b72a49dfd01d69fa37a7f74d34fb1d4fef0aa10e3d6fceb9eccd671225c230af89f6eb514250e41a5f91f52\n846d185bdad6e11e604df7f753b7a08a28b643674221f0e750ebdb6b86ec584a29c869e131bca868972a507e61403f6a\n85a98332292acb744bd1c0fd6fdcf1f889a78a2c9624d79413ffa194cc8dfa7821a4b60cde8081d4b5f71f51168dd67f\n8f7d97c3b4597880d73200d074eb813d95432306e82dafc70b580b8e08cb8098b70f2d07b4b3ac6a4d77e92d57035031\n8185439c8751e595825d7053518cbe121f191846a38d4dbcb558c3f9d7a3104f3153401adaaaf27843bbe2edb504bfe3\nb3c00d8ece1518fca6b1215a139b0a0e26d9cba1b3a424f7ee59f30ce800a5db967279ed60958dd1f3ee69cf4dd1b204\na2e6cb6978e883f9719c3c0d44cfe8de0cc6f644b98f98858433bea8bbe7b612c8aca5952fccce4f195f9d54f9722dc2\n99663087e3d5000abbec0fbda4e7342ec38846cc6a1505191fb3f1a337cb369455b7f8531a6eb8b0f7b2c4baf83cbe2b\nab0836c6377a4dbc7ca6a4d6cf021d4cd60013877314dd05f351706b128d4af6337711ed3443cb6ca976f40d74070a9a\n87abfd5126152fd3bac3c56230579b489436755ea89e0566aa349490b36a5d7b85028e9fb0710907042bcde6a6f5d7e3\n974ba1033f75f60e0cf7c718a57ae1da3721cf9d0fb925714c46f027632bdd84cd9e6de4cf4d00bc55465b1c5ebb7384\na607b49d73689ac64f25cec71221d30d53e781e1100d19a2114a21da6507a60166166369d860bd314acb226596525670\na7c2b0b915d7beba94954f2aa7dd08ec075813661e2a3ecca5d28a0733e59583247fed9528eb28aba55b972cdbaf06eb\nb8b3123e44128cc8efbe3270f2f94e50ca214a4294c71c3b851f8cbb70cb67fe9536cf07d04bf7fe380e5e3a29dd3c15\na59a07e343b62ad6445a0859a32b58c21a593f9ddbfe52049650f59628c93715aa1f4e1f45b109321756d0eeec8a5429\n94f51f8a4ed18a6030d0aaa8899056744bd0e9dc9ac68f62b00355cddab11da5da16798db75f0bfbce0e5bdfe750c0b6\n97460a97ca1e1fa5ce243b81425edc0ec19b7448e93f0b55bc9785eedeeafe194a3c8b33a61a5c72990edf375f122777\n8fa859a089bc17d698a7ee381f37ce9beadf4e5b44fce5f6f29762bc04f96faff5d58c48c73631290325f05e9a1ecf49\nabdf38f3b20fc95eff31de5aa9ef1031abfa48f1305ee57e4d507594570401503476d3bcc493838fc24d6967a3082c7f\nb8914bfb82815abb86da35c64d39ab838581bc0bf08967192697d9663877825f2b9d6fbdcf9b410463482b3731361aef\na8187f9d22b193a5f578999954d6ec9aa9b32338ccadb8a3e1ce5bad5ea361d69016e1cdfac44e9d6c54e49dd88561b9\naac262cb7cba7fd62c14daa7b39677cabc1ef0947dd06dd89cac8570006a200f90d5f0353e84f5ff03179e3bebe14231\na630ef5ece9733b8c46c0a2df14a0f37647a85e69c63148e79ffdcc145707053f9f9d305c3f1cf3c7915cb46d33abd07\nb102c237cb2e254588b6d53350dfda6901bd99493a3fbddb4121d45e0b475cf2663a40d7b9a75325eda83e4ba1e68cb3\n86a930dd1ddcc16d1dfa00aa292cb6c2607d42c367e470aa920964b7c17ab6232a7108d1c2c11fc40fb7496547d0bbf8\na832fdc4500683e72a96cce61e62ac9ee812c37fe03527ad4cf893915ca1962cee80e72d4f82b20c8fc0b764376635a1\n88ad985f448dabb04f8808efd90f273f11f5e6d0468b5489a1a6a3d77de342992a73eb842d419034968d733f101ff683\n98a8538145f0d86f7fbf9a81c9140f6095c5bdd8960b1c6f3a1716428cd9cca1bf8322e6d0af24e6169abcf7df2b0ff6\n9048c6eba5e062519011e177e955a200b2c00b3a0b8615bdecdebc217559d41058d3315f6d05617be531ef0f6aef0e51\n833bf225ab6fc68cdcacf1ec1b50f9d05f5410e6cdcd8d56a3081dc2be8a8d07b81534d1ec93a25c2e270313dfb99e3b\na84bcd24c3da5e537e64a811b93c91bfc84d7729b9ead7f79078989a6eb76717d620c1fad17466a0519208651e92f5ff\nb7cdd0a3fbd79aed93e1b5a44ca44a94e7af5ed911e4492f332e3a5ed146c7286bde01b52276a2fcc02780d2109874dd\n8a19a09854e627cb95750d83c20c67442b66b35896a476358f993ba9ac114d32c59c1b3d0b8787ee3224cf3888b56c64\na9abd5afb8659ee52ada8fa5d57e7dd355f0a7350276f6160bec5fbf70d5f99234dd179eb221c913e22a49ec6d267846\n8c13c4274c0d30d184e73eaf812200094bbbd57293780bdadbceb262e34dee5b453991e7f37c7333a654fc71c69d6445\na4320d73296ff8176ce0127ca1921c450e2a9c06eff936681ebaffb5a0b05b17fded24e548454de89aca2dcf6d7a9de4\nb2b8b3e15c1f645f07783e5628aba614e60157889db41d8161d977606788842b67f83f361eae91815dc0abd84e09abd5\nad26c3aa35ddfddc15719b8bb6c264aaec7065e88ac29ba820eb61f220fef451609a7bb037f3722d022e6c86e4f1dc88\nb8615bf43e13ae5d7b8dd903ce37190800cd490f441c09b22aa29d7a29ed2c0417b7a08ead417868f1de2589deaadd80\n8d3425e1482cd1e76750a76239d33c06b3554c3c3c87c15cb7ab58b1cee86a4c5c4178b44e23f36928365a1b484bde02\n806893a62e38c941a7dd6f249c83af16596f69877cc737d8f73f6b8cd93cbc01177a7a276b2b8c6b0e5f2ad864db5994\n86618f17fa4b0d65496b661bbb5ba3bc3a87129d30a4b7d4f515b904f4206ca5253a41f49fd52095861e5e065ec54f21\n9551915da1304051e55717f4c31db761dcdcf3a1366c89a4af800a9e99aca93a357bf928307f098e62b44a02cb689a46\n8f79c4ec0ec1146cb2a523b52fe33def90d7b5652a0cb9c2d1c8808a32293e00aec6969f5b1538e3a94cd1efa3937f86\na0c03e329a707300081780f1e310671315b4c6a4cedcb29697aedfabb07a9d5df83f27b20e9c44cf6b16e39d9ded5b98\n86a7cfa7c8e7ce2c01dd0baec2139e97e8e090ad4e7b5f51518f83d564765003c65968f85481bbb97cb18f005ccc7d9f\na33811770c6dfda3f7f74e6ad0107a187fe622d61b444bbd84fd7ef6e03302e693b093df76f6ab39bb4e02afd84a575a\n85480f5c10d4162a8e6702b5e04f801874d572a62a130be94b0c02b58c3c59bdcd48cd05f0a1c2839f88f06b6e3cd337\n8e181011564b17f7d787fe0e7f3c87f6b62da9083c54c74fd6c357a1f464c123c1d3d8ade3cf72475000b464b14e2be3\n8ee178937294b8c991337e0621ab37e9ffa4ca2bdb3284065c5e9c08aad6785d50cf156270ff9daf9a9127289710f55b\n8bd1e8e2d37379d4b172f1aec96f2e41a6e1393158d7a3dbd9a95c8dd4f8e0b05336a42efc11a732e5f22b47fc5c271d\n8f3da353cd487c13136a85677de8cedf306faae0edec733cf4f0046f82fa4639db4745b0095ff33a9766aba50de0cbcf\n8d187c1e97638df0e4792b78e8c23967dac43d98ea268ca4aabea4e0fa06cb93183fd92d4c9df74118d7cc27bf54415e\na4c992f08c2f8bac0b74b3702fb0c75c9838d2ce90b28812019553d47613c14d8ce514d15443159d700b218c5a312c49\na6fd1874034a34c3ea962a316c018d9493d2b3719bb0ec4edbc7c56b240802b2228ab49bee6f04c8a3e9f6f24a48c1c2\nb2efed8e799f8a15999020900dc2c58ece5a3641c90811b86a5198e593d7318b9d53b167818ccdfbe7df2414c9c34011\n995ff7de6181ddf95e3ead746089c6148da3508e4e7a2323c81785718b754d356789b902e7e78e2edc6b0cbd4ff22c78\n944073d24750a9068cbd020b834afc72d2dde87efac04482b3287b40678ad07588519a4176b10f2172a2c463d063a5cd\n99db4b1bb76475a6fd75289986ef40367960279524378cc917525fb6ba02a145a218c1e9caeb99332332ab486a125ac0\n89fce4ecd420f8e477af4353b16faabb39e063f3f3c98fde2858b1f2d1ef6eed46f0975a7c08f233b97899bf60ccd60a\n8c09a4f07a02b80654798bc63aada39fd638d3e3c4236ccd8a5ca280350c31e4a89e5f4c9aafb34116e71da18c1226b8\n85325cfa7ded346cc51a2894257eab56e7488dbff504f10f99f4cd2b630d913003761a50f175ed167e8073f1b6b63fb0\nb678b4fbec09a8cc794dcbca185f133578f29e354e99c05f6d07ac323be20aecb11f781d12898168e86f2e0f09aca15e\na249cfcbca4d9ba0a13b5f6aac72bf9b899adf582f9746bb2ad043742b28915607467eb794fca3704278f9136f7642be\n9438e036c836a990c5e17af3d78367a75b23c37f807228362b4d13e3ddcb9e431348a7b552d09d11a2e9680704a4514f\n925ab70450af28c21a488bfb5d38ac994f784cf249d7fd9ad251bb7fd897a23e23d2528308c03415074d43330dc37ef4\na290563904d5a8c0058fc8330120365bdd2ba1fdbaef7a14bc65d4961bb4217acfaed11ab82669e359531f8bf589b8db\na7e07a7801b871fc9b981a71e195a3b4ba6b6313bc132b04796a125157e78fe5c11a3a46cf731a255ac2d78a4ae78cd0\nb26cd2501ee72718b0eebab6fb24d955a71f363f36e0f6dff0ab1d2d7836dab88474c0cef43a2cc32701fca7e82f7df3\na1dc3b6c968f3de00f11275092290afab65b2200afbcfa8ddc70e751fa19dbbc300445d6d479a81bda3880729007e496\na9bc213e28b630889476a095947d323b9ac6461dea726f2dc9084473ae8e196d66fb792a21905ad4ec52a6d757863e7d\nb25d178df8c2df8051e7c888e9fa677fde5922e602a95e966db9e4a3d6b23ce043d7dc48a5b375c6b7c78e966893e8c3\na1c8d88d72303692eaa7adf68ea41de4febec40cc14ae551bb4012afd786d7b6444a3196b5d9d5040655a3366d96b7cd\nb22bd44f9235a47118a9bbe2ba5a2ba9ec62476061be2e8e57806c1a17a02f9a51403e849e2e589520b759abd0117683\nb8add766050c0d69fe81d8d9ea73e1ed05f0135d093ff01debd7247e42dbb86ad950aceb3b50b9af6cdc14ab443b238f\naf2cf95f30ef478f018cf81d70d47d742120b09193d8bb77f0d41a5d2e1a80bfb467793d9e2471b4e0ad0cb2c3b42271\n8af5ef2107ad284e246bb56e20fef2a255954f72de791cbdfd3be09f825298d8466064f3c98a50496c7277af32b5c0bc\n85dc19558572844c2849e729395a0c125096476388bd1b14fa7f54a7c38008fc93e578da3aac6a52ff1504d6ca82db05\nae8c9b43c49572e2e166d704caf5b4b621a3b47827bb2a3bcd71cdc599bba90396fd9a405261b13e831bb5d44c0827d7\na7ba7efede25f02e88f6f4cbf70643e76784a03d97e0fbd5d9437c2485283ad7ca3abb638a5f826cd9f6193e5dec0b6c\n94a9d122f2f06ef709fd8016fd4b712d88052245a65a301f5f177ce22992f74ad05552b1f1af4e70d1eac62cef309752\n82d999b3e7cf563833b8bc028ff63a6b26eb357dfdb3fd5f10e33a1f80a9b2cfa7814d871b32a7ebfbaa09e753e37c02\naec6edcde234df502a3268dd2c26f4a36a2e0db730afa83173f9c78fcb2b2f75510a02b80194327b792811caefda2725\n94c0bfa66c9f91d462e9194144fdd12d96f9bbe745737e73bab8130607ee6ea9d740e2cfcbbd00a195746edb6369ee61\nab7573dab8c9d46d339e3f491cb2826cabe8b49f85f1ede78d845fc3995537d1b4ab85140b7d0238d9c24daf0e5e2a7e\n87e8b16832843251fe952dadfd01d41890ed4bb4b8fa0254550d92c8cced44368225eca83a6c3ad47a7f81ff8a80c984\n9189d2d9a7c64791b19c0773ad4f0564ce6bea94aa275a917f78ad987f150fdb3e5e26e7fef9982ac184897ecc04683f\nb3661bf19e2da41415396ae4dd051a9272e8a2580b06f1a1118f57b901fa237616a9f8075af1129af4eabfefedbe2f1c\naf43c86661fb15daf5d910a4e06837225e100fb5680bd3e4b10f79a2144c6ec48b1f8d6e6b98e067d36609a5d038889a\n82ac0c7acaa83ddc86c5b4249aae12f28155989c7c6b91e5137a4ce05113c6cbc16f6c44948b0efd8665362d3162f16a\n8f268d1195ab465beeeb112cd7ffd5d5548559a8bc01261106d3555533fc1971081b25558d884d552df0db1cddda89d8\n8ef7caa5521f3e037586ce8ac872a4182ee20c7921c0065ed9986c047e3dda08294da1165f385d008b40d500f07d895f\n8c2f98f6880550573fad46075d3eba26634b5b025ce25a0b4d6e0193352c8a1f0661064027a70fe8190b522405f9f4e3\nb7653f353564feb164f0f89ec7949da475b8dad4a4d396d252fc2a884f6932d027b7eb2dc4d280702c74569319ed701a\na026904f4066333befd9b87a8fad791d014096af60cdd668ef919c24dbe295ff31f7a790e1e721ba40cf5105abca67f4\n988f982004ada07a22dd345f2412a228d7a96b9cae2c487de42e392afe1e35c2655f829ce07a14629148ce7079a1f142\n9616add009067ed135295fb74d5b223b006b312bf14663e547a0d306694ff3a8a7bb9cfc466986707192a26c0bce599f\nad4c425de9855f6968a17ee9ae5b15e0a5b596411388cf976df62ecc6c847a6e2ddb2cea792a5f6e9113c2445dba3e5c\nb698ac9d86afa3dc69ff8375061f88e3b0cff92ff6dfe747cebaf142e813c011851e7a2830c10993b715e7fd594604a9\na386fa189847bb3b798efca917461e38ead61a08b101948def0f82cd258b945ed4d45b53774b400af500670149e601b7\n905c95abda2c68a6559d8a39b6db081c68cef1e1b4be63498004e1b2f408409be9350b5b5d86a30fd443e2b3e445640a\n9116dade969e7ce8954afcdd43e5cab64dc15f6c1b8da9d2d69de3f02ba79e6c4f6c7f54d6bf586d30256ae405cd1e41\na3084d173eacd08c9b5084a196719b57e47a0179826fda73466758235d7ecdb87cbcf097bd6b510517d163a85a7c7edd\n85bb00415ad3c9be99ff9ba83672cc59fdd24356b661ab93713a3c8eab34e125d8867f628a3c3891b8dc056e69cd0e83\n8d58541f9f39ed2ee4478acce5d58d124031338ec11b0d55551f00a5a9a6351faa903a5d7c132dc5e4bb026e9cbd18e4\na622adf72dc250e54f672e14e128c700166168dbe0474cecb340da175346e89917c400677b1bc1c11fcc4cc26591d9db\nb3f865014754b688ca8372e8448114fff87bf3ca99856ab9168894d0c4679782c1ced703f5b74e851b370630f5e6ee86\na7e490b2c40c2446fcd91861c020da9742c326a81180e38110558bb5d9f2341f1c1885e79b364e6419023d1cbdc47380\nb3748d472b1062e54572badbb8e87ac36534407f74932e7fc5b8392d008e8e89758f1671d1e4d30ab0fa40551b13bb5e\n89898a5c5ec4313aabc607b0049fd1ebad0e0c074920cf503c9275b564d91916c2c446d3096491c950b7af3ac5e4b0ed\n8eb8c83fef2c9dd30ea44e286e9599ec5c20aba983f702e5438afe2e5b921884327ad8d1566c72395587efac79ca7d56\nb92479599e806516ce21fb0bd422a1d1d925335ebe2b4a0a7e044dd275f30985a72b97292477053ac5f00e081430da80\na34ae450a324fe8a3c25a4d653a654f9580ed56bbea213b8096987bbad0f5701d809a17076435e18017fea4d69f414bc\n81381afe6433d62faf62ea488f39675e0091835892ecc238e02acf1662669c6d3962a71a3db652f6fe3bc5f42a0e5dc5\na430d475bf8580c59111103316fe1aa79c523ea12f1d47a976bbfae76894717c20220e31cf259f08e84a693da6688d70\nb842814c359754ece614deb7d184d679d05d16f18a14b288a401cef5dad2cf0d5ee90bad487b80923fc5573779d4e4e8\n971d9a2627ff2a6d0dcf2af3d895dfbafca28b1c09610c466e4e2bff2746f8369de7f40d65b70aed135fe1d72564aa88\n8f4ce1c59e22b1ce7a0664caaa7e53735b154cfba8d2c5cc4159f2385843de82ab58ed901be876c6f7fce69cb4130950\n86cc9dc321b6264297987000d344fa297ef45bcc2a4df04e458fe2d907ad304c0ea2318e32c3179af639a9a56f3263cf\n8229e0876dfe8f665c3fb19b250bd89d40f039bbf1b331468b403655be7be2e104c2fd07b9983580c742d5462ca39a43\n99299d73066e8eb128f698e56a9f8506dfe4bd014931e86b6b487d6195d2198c6c5bf15cccb40ccf1f8ddb57e9da44a2\na3a3be37ac554c574b393b2f33d0a32a116c1a7cfeaf88c54299a4da2267149a5ecca71f94e6c0ef6e2f472b802f5189\na91700d1a00387502cdba98c90f75fbc4066fefe7cc221c8f0e660994c936badd7d2695893fde2260c8c11d5bdcdd951\n8e03cae725b7f9562c5c5ab6361644b976a68bada3d7ca508abca8dfc80a469975689af1fba1abcf21bc2a190dab397d\nb01461ad23b2a8fa8a6d241e1675855d23bc977dbf4714add8c4b4b7469ccf2375cec20e80cedfe49361d1a30414ac5b\na2673bf9bc621e3892c3d7dd4f1a9497f369add8cbaa3472409f4f86bd21ac67cfac357604828adfee6ada1835365029\na042dff4bf0dfc33c178ba1b335e798e6308915128de91b12e5dbbab7c4ac8d60a01f6aea028c3a6d87b9b01e4e74c01\n86339e8a75293e4b3ae66b5630d375736b6e6b6b05c5cda5e73fbf7b2f2bd34c18a1d6cefede08625ce3046e77905cb8\naf2ebe1b7d073d03e3d98bc61af83bf26f7a8c130fd607aa92b75db22d14d016481b8aa231e2c9757695f55b7224a27f\na00ee882c9685e978041fd74a2c465f06e2a42ffd3db659053519925be5b454d6f401e3c12c746e49d910e4c5c9c5e8c\n978a781c0e4e264e0dad57e438f1097d447d891a1e2aa0d5928f79a9d5c3faae6f258bc94fdc530b7b2fa6a9932bb193\naa4b7ce2e0c2c9e9655bf21e3e5651c8503bce27483017b0bf476be743ba06db10228b3a4c721219c0779747f11ca282\nb003d1c459dacbcf1a715551311e45d7dbca83a185a65748ac74d1800bbeaba37765d9f5a1a221805c571910b34ebca8\n95b6e531b38648049f0d19de09b881baa1f7ea3b2130816b006ad5703901a05da57467d1a3d9d2e7c73fb3f2e409363c\na6cf9c06593432d8eba23a4f131bb7f72b9bd51ab6b4b772a749fe03ed72b5ced835a349c6d9920dba2a39669cb7c684\naa3d59f6e2e96fbb66195bc58c8704e139fa76cd15e4d61035470bd6e305db9f98bcbf61ac1b95e95b69ba330454c1b3\nb57f97959c208361de6d7e86dff2b873068adb0f158066e646f42ae90e650079798f165b5cd713141cd3a2a90a961d9a\na76ee8ed9052f6a7a8c69774bb2597be182942f08115baba03bf8faaeaee526feba86120039fe8ca7b9354c3b6e0a8e6\n95689d78c867724823f564627d22d25010f278674c6d2d0cdb10329169a47580818995d1d727ce46c38a1e47943ebb89\nab676d2256c6288a88e044b3d9ffd43eb9d5aaee00e8fc60ac921395fb835044c71a26ca948e557fed770f52d711e057\n96351c72785c32e5d004b6f4a1259fb8153d631f0c93fed172f18e8ba438fbc5585c1618deeabd0d6d0b82173c2e6170\n93dd8d3db576418e22536eba45ab7f56967c6c97c64260d6cddf38fb19c88f2ec5cd0e0156f50e70855eee8a2b879ffd\nad6ff16f40f6de3d7a737f8e6cebd8416920c4ff89dbdcd75eabab414af9a6087f83ceb9aff7680aa86bff98bd09c8cc\n84de53b11671abc9c38710e19540c5c403817562aeb22a88404cdaff792c1180f717dbdfe8f54940c062c4d032897429\n872231b9efa1cdd447b312099a5c164c560440a9441d904e70f5abfc3b2a0d16be9a01aca5e0a2599a61e19407587e3d\n88f44ac27094a2aa14e9dc40b099ee6d68f97385950f303969d889ee93d4635e34dff9239103bdf66a4b7cbba3e7eb7a\na59afebadf0260e832f6f44468443562f53fbaf7bcb5e46e1462d3f328ac437ce56edbca617659ac9883f9e13261fad7\nb1990e42743a88de4deeacfd55fafeab3bc380cb95de43ed623d021a4f2353530bcab9594389c1844b1c5ea6634c4555\n85051e841149a10e83f56764e042182208591396d0ce78c762c4a413e6836906df67f38c69793e158d64fef111407ba3\n9778172bbd9b1f2ec6bbdd61829d7b39a7df494a818e31c654bf7f6a30139899c4822c1bf418dd4f923243067759ce63\n9355005b4878c87804fc966e7d24f3e4b02bed35b4a77369d01f25a3dcbff7621b08306b1ac85b76fe7b4a3eb5f839b1\n8f9dc6a54fac052e236f8f0e1f571ac4b5308a43acbe4cc8183bce26262ddaf7994e41cf3034a4cbeca2c505a151e3b1\n8cc59c17307111723fe313046a09e0e32ea0cce62c13814ab7c6408c142d6a0311d801be4af53fc9240523f12045f9ef\n8e6057975ed40a1932e47dd3ac778f72ee2a868d8540271301b1aa6858de1a5450f596466494a3e0488be4fbeb41c840\n812145efbd6559ae13325d56a15940ca4253b17e72a9728986b563bb5acc13ec86453796506ac1a8f12bd6f9e4a288c3\n911da0a6d6489eb3dab2ec4a16e36127e8a291ae68a6c2c9de33e97f3a9b1f00da57a94e270a0de79ecc5ecb45d19e83\nb72ea85973f4b2a7e6e71962b0502024e979a73c18a9111130e158541fa47bbaaf53940c8f846913a517dc69982ba9e1\na7a56ad1dbdc55f177a7ad1d0af78447dc2673291e34e8ab74b26e2e2e7d8c5fe5dc89e7ef60f04a9508847b5b3a8188\nb52503f6e5411db5d1e70f5fb72ccd6463fa0f197b3e51ca79c7b5a8ab2e894f0030476ada72534fa4eb4e06c3880f90\nb51c7957a3d18c4e38f6358f2237b3904618d58b1de5dec53387d25a63772e675a5b714ad35a38185409931157d4b529\nb86b4266e719d29c043d7ec091547aa6f65bbf2d8d831d1515957c5c06513b72aa82113e9645ad38a7bc3f5383504fa6\nb95b547357e6601667b0f5f61f261800a44c2879cf94e879def6a105b1ad2bbf1795c3b98a90d588388e81789bd02681\na58fd4c5ae4673fa350da6777e13313d5d37ed1dafeeb8f4f171549765b84c895875d9d3ae6a9741f3d51006ef81d962\n9398dc348d078a604aadc154e6eef2c0be1a93bb93ba7fe8976edc2840a3a318941338cc4d5f743310e539d9b46613d2\n902c9f0095014c4a2f0dccaaab543debba6f4cc82c345a10aaf4e72511725dbed7a34cd393a5f4e48a3e5142b7be84ed\na7c0447849bb44d04a0393a680f6cd390093484a79a147dd238f5d878030d1c26646d88211108e59fe08b58ad20c6fbd\n80db045535d6e67a422519f5c89699e37098449d249698a7cc173a26ccd06f60238ae6cc7242eb780a340705c906790c\n8e52b451a299f30124505de2e74d5341e1b5597bdd13301cc39b05536c96e4380e7f1b5c7ef076f5b3005a868657f17c\n824499e89701036037571761e977654d2760b8ce21f184f2879fda55d3cda1e7a95306b8abacf1caa79d3cc075b9d27f\n9049b956b77f8453d2070607610b79db795588c0cec12943a0f5fe76f358dea81e4f57a4692112afda0e2c05c142b26f\n81911647d818a4b5f4990bfd4bc13bf7be7b0059afcf1b6839333e8569cdb0172fd2945410d88879349f677abaed5eb3\nad4048f19b8194ed45b6317d9492b71a89a66928353072659f5ce6c816d8f21e69b9d1817d793effe49ca1874daa1096\n8d22f7b2ddb31458661abd34b65819a374a1f68c01fc6c9887edeba8b80c65bceadb8f57a3eb686374004b836261ef67\n92637280c259bc6842884db3d6e32602a62252811ae9b019b3c1df664e8809ffe86db88cfdeb8af9f46435c9ee790267\na2f416379e52e3f5edc21641ea73dc76c99f7e29ea75b487e18bd233856f4c0183429f378d2bfc6cd736d29d6cadfa49\n882cb6b76dbdc188615dcf1a8439eba05ffca637dd25197508156e03c930b17b9fed2938506fdd7b77567cb488f96222\nb68b621bb198a763fb0634eddb93ed4b5156e59b96c88ca2246fd1aea3e6b77ed651e112ac41b30cd361fadc011d385e\na3cb22f6b675a29b2d1f827cacd30df14d463c93c3502ef965166f20d046af7f9ab7b2586a9c64f4eae4fad2d808a164\n8302d9ce4403f48ca217079762ce42cee8bc30168686bb8d3a945fbd5acd53b39f028dce757b825eb63af2d5ae41169d\nb2eef1fbd1a176f1f4cd10f2988c7329abe4eb16c7405099fb92baa724ab397bc98734ef7d4b24c0f53dd90f57520d04\na1bbef0bd684a3f0364a66bde9b29326bac7aa3dde4caed67f14fb84fed3de45c55e406702f1495a3e2864d4ee975030\n976acdb0efb73e3a3b65633197692dedc2adaed674291ae3df76b827fc866d214e9cac9ca46baefc4405ff13f953d936\nb9fbf71cc7b6690f601f0b1c74a19b7d14254183a2daaafec7dc3830cba5ae173d854bbfebeca985d1d908abe5ef0cda\n90591d7b483598c94e38969c4dbb92710a1a894bcf147807f1bcbd8aa3ac210b9f2be65519aa829f8e1ccdc83ad9b8cf\na30568577c91866b9c40f0719d46b7b3b2e0b4a95e56196ac80898a2d89cc67880e1229933f2cd28ee3286f8d03414d7\n97589a88c3850556b359ec5e891f0937f922a751ac7c95949d3bbc7058c172c387611c0f4cb06351ef02e5178b3dd9e4\n98e7bbe27a1711f4545df742f17e3233fbcc63659d7419e1ca633f104cb02a32c84f2fac23ca2b84145c2672f68077ab\na7ddb91636e4506d8b7e92aa9f4720491bb71a72dadc47c7f4410e15f93e43d07d2b371951a0e6a18d1bd087aa96a5c4\na7c006692227a06db40bceac3d5b1daae60b5692dd9b54772bedb5fea0bcc91cbcdb530cac31900ffc70c5b3ffadc969\n8d3ec6032778420dfa8be52066ba0e623467df33e4e1901dbadd586c5d750f4ccde499b5197e26b9ea43931214060f69\n8d9a8410518ea64f89df319bfd1fc97a0971cdb9ad9b11d1f8fe834042ea7f8dce4db56eeaf179ff8dda93b6db93e5ce\na3c533e9b3aa04df20b9ff635cb1154ce303e045278fcf3f10f609064a5445552a1f93989c52ce852fd0bbd6e2b6c22e\n81934f3a7f8c1ae60ec6e4f212986bcc316118c760a74155d06ce0a8c00a9b9669ec4e143ca214e1b995e41271774fd9\nab8e2d01a71192093ef8fafa7485e795567cc9db95a93fb7cc4cf63a391ef89af5e2bfad4b827fffe02b89271300407f\n83064a1eaa937a84e392226f1a60b7cfad4efaa802f66de5df7498962f7b2649924f63cd9962d47906380b97b9fe80e1\nb4f5e64a15c6672e4b55417ee5dc292dcf93d7ea99965a888b1cc4f5474a11e5b6520eacbcf066840b343f4ceeb6bf33\na63d278b842456ef15c278b37a6ea0f27c7b3ffffefca77c7a66d2ea06c33c4631eb242bbb064d730e70a8262a7b848a\n83a41a83dbcdf0d22dc049de082296204e848c453c5ab1ba75aa4067984e053acf6f8b6909a2e1f0009ed051a828a73b\n819485b036b7958508f15f3c19436da069cbe635b0318ebe8c014cf1ef9ab2df038c81161b7027475bcfa6fff8dd9faf\naa40e38172806e1e045e167f3d1677ef12d5dcdc89b43639a170f68054bd196c4fae34c675c1644d198907a03f76ba57\n969bae484883a9ed1fbed53b26b3d4ee4b0e39a6c93ece5b3a49daa01444a1c25727dabe62518546f36b047b311b177c\n80a9e73a65da99664988b238096a090d313a0ee8e4235bc102fa79bb337b51bb08c4507814eb5baec22103ec512eaab0\n86604379aec5bddda6cbe3ef99c0ac3a3c285b0b1a15b50451c7242cd42ae6b6c8acb717dcca7917838432df93a28502\na23407ee02a495bed06aa7e15f94cfb05c83e6d6fba64456a9bbabfa76b2b68c5c47de00ba169e710681f6a29bb41a22\n98cff5ecc73b366c6a01b34ac9066cb34f7eeaf4f38a5429bad2d07e84a237047e2a065c7e8a0a6581017dadb4695deb\n8de9f68a938f441f3b7ab84bb1f473c5f9e5c9e139e42b7ccee1d254bd57d0e99c2ccda0f3198f1fc5737f6023dd204e\nb0ce48d815c2768fb472a315cad86aa033d0e9ca506f146656e2941829e0acb735590b4fbc713c2d18d3676db0a954ac\n82f485cdefd5642a6af58ac6817991c49fac9c10ace60f90b27f1788cc026c2fe8afc83cf499b3444118f9f0103598a8\n82c24550ed512a0d53fc56f64cc36b553823ae8766d75d772dacf038c460f16f108f87a39ceef7c66389790f799dbab3\n859ffcf1fe9166388316149b9acc35694c0ea534d43f09dae9b86f4aa00a23b27144dda6a352e74b9516e8c8d6fc809c\nb8f7f353eec45da77fb27742405e5ad08d95ec0f5b6842025be9def3d9892f85eb5dd0921b41e6eff373618dba215bca\n8ccca4436f9017e426229290f5cd05eac3f16571a4713141a7461acfe8ae99cd5a95bf5b6df129148693c533966145da\na2c67ecc19c0178b2994846fea4c34c327a5d786ac4b09d1d13549d5be5996d8a89021d63d65cb814923388f47cc3a03\naa0ff87d676b418ec08f5cbf577ac7e744d1d0e9ebd14615b550eb86931eafd2a36d4732cc5d6fab1713fd7ab2f6f7c0\n8aef4730bb65e44efd6bb9441c0ae897363a2f3054867590a2c2ecf4f0224e578c7a67f10b40f8453d9f492ac15a9b2d\n86a187e13d8fba5addcfdd5b0410cedd352016c930f913addd769ee09faa6be5ca3e4b1bdb417a965c643a99bd92be42\na0a4e9632a7a094b14b29b78cd9c894218cdf6783e61671e0203865dc2a835350f465fbaf86168f28af7c478ca17bc89\na8c7b02d8deff2cd657d8447689a9c5e2cd74ef57c1314ac4d69084ac24a7471954d9ff43fe0907d875dcb65fd0d3ce5\n97ded38760aa7be6b6960b5b50e83b618fe413cbf2bcc1da64c05140bcc32f5e0e709cd05bf8007949953fac5716bad9\nb0d293835a24d64c2ae48ce26e550b71a8c94a0883103757fb6b07e30747f1a871707d23389ba2b2065fa6bafe220095\n8f9e291bf849feaa575592e28e3c8d4b7283f733d41827262367ea1c40f298c7bcc16505255a906b62bf15d9f1ba85fb\n998f4e2d12708b4fd85a61597ca2eddd750f73c9e0c9b3cf0825d8f8e01f1628fd19797dcaed3b16dc50331fc6b8b821\nb30d1f8c115d0e63bf48f595dd10908416774c78b3bbb3194192995154d80ea042d2e94d858de5f8aa0261b093c401fd\nb5d9c75bb41f964cbff3f00e96d9f1480c91df8913f139f0d385d27a19f57a820f838eb728e46823cbff00e21c660996\na6edec90b5d25350e2f5f0518777634f9e661ec9d30674cf5b156c4801746d62517751d90074830ac0f4b09911c262f1\n82f98da1264b6b75b8fbeb6a4d96d6a05b25c24db0d57ba3a38efe3a82d0d4e331b9fc4237d6494ccfe4727206457519\nb89511843453cf4ecd24669572d6371b1e529c8e284300c43e0d5bb6b3aaf35aeb634b3cb5c0a2868f0d5e959c1d0772\na82bf065676583e5c1d3b81987aaae5542f522ba39538263a944bb33ea5b514c649344a96c0205a3b197a3f930fcda6c\na37b47ea527b7e06c460776aa662d9a49ff4149d3993f1a974b0dd165f7171770d189b0e2ea54fd5fccb6a14b116e68a\na1017677f97dda818274d47556d09d0e4ccacb23a252f82a6cfe78c630ad46fb9806307445a59fb61262182de3a2b29c\nb01e9fcac239ba270e6877b79273ddd768bf8a51d2ed8a051b1c11e18eff3de5920e2fcbfbd26f06d381eddd3b1f1e1b\n82fcd53d803b1c8e4ed76adc339b7f3a5962d37042b9683aabac7513ac68775d4a566a9460183926a6a95dbe7d551a1f\na763e78995d55cd21cdb7ef75d9642d6e1c72453945e346ab6690c20a4e1eeec61bb848ef830ae4b56182535e3c71d8f\nb769f4db602251d4b0a1186782799bdcef66de33c110999a5775c50b349666ffd83d4c89714c4e376f2efe021a5cfdb2\na59cbd1b785efcfa6e83fc3b1d8cf638820bc0c119726b5368f3fba9dce8e3414204fb1f1a88f6c1ff52e87961252f97\n95c8c458fd01aa23ecf120481a9c6332ebec2e8bb70a308d0576926a858457021c277958cf79017ddd86a56cacc2d7db\n82eb41390800287ae56e77f2e87709de5b871c8bdb67c10a80fc65f3acb9f7c29e8fa43047436e8933f27449ea61d94d\nb3ec25e3545eb83aed2a1f3558d1a31c7edde4be145ecc13b33802654b77dc049b4f0065069dd9047b051e52ab11dcdd\nb78a0c715738f56f0dc459ab99e252e3b579b208142836b3c416b704ca1de640ca082f29ebbcee648c8c127df06f6b1e\na4083149432eaaf9520188ebf4607d09cf664acd1f471d4fb654476e77a9eaae2251424ffda78d09b6cb880df35c1219\n8c52857d68d6e9672df3db2df2dbf46b516a21a0e8a18eec09a6ae13c1ef8f369d03233320dd1c2c0bbe00abfc1ea18b\n8c856089488803066bff3f8d8e09afb9baf20cecc33c8823c1c0836c3d45498c3de37e87c016b705207f60d2b00f8609\n831a3df39be959047b2aead06b4dcd3012d7b29417f642b83c9e8ce8de24a3dbbd29c6fdf55e2db3f7ea04636c94e403\naed84d009f66544addabe404bf6d65af7779ce140dc561ff0c86a4078557b96b2053b7b8a43432ffb18cd814f143b9da\n93282e4d72b0aa85212a77b336007d8ba071eea17492da19860f1ad16c1ea8867ccc27ef5c37c74b052465cc11ea4f52\na7b78b8c8d057194e8d68767f1488363f77c77bddd56c3da2bc70b6354c7aa76247c86d51f7371aa38a4aa7f7e3c0bb7\nb1c77283d01dcd1bde649b5b044eac26befc98ff57cbee379fb5b8e420134a88f2fc7f0bf04d15e1fbd45d29e7590fe6\na4aa8de70330a73b2c6458f20a1067eed4b3474829b36970a8df125d53bbdda4f4a2c60063b7cccb0c80fc155527652f\n948a6c79ba1b8ad7e0bed2fae2f0481c4e41b4d9bbdd9b58164e28e9065700e83f210c8d5351d0212e0b0b68b345b3a5\n86a48c31dcbbf7b082c92d28e1f613a2378a910677d7db3a349dc089e4a1e24b12eee8e8206777a3a8c64748840b7387\n976adb1af21e0fc34148917cf43d933d7bfd3fd12ed6c37039dcd5a4520e3c6cf5868539ba5bf082326430deb8a4458d\nb93e1a4476f2c51864bb4037e7145f0635eb2827ab91732b98d49b6c07f6ac443111aa1f1da76d1888665cb897c3834e\n8afd46fb23bf869999fa19784b18a432a1f252d09506b8dbb756af900518d3f5f244989b3d7c823d9029218c655d3dc6\n83f1e59e3abeed18cdc632921672673f1cb6e330326e11c4e600e13e0d5bc11bdc970ae12952e15103a706fe720bf4d6\n90ce4cc660714b0b673d48010641c09c00fc92a2c596208f65c46073d7f349dd8e6e077ba7dcef9403084971c3295b76\n8b09b0f431a7c796561ecf1549b85048564de428dac0474522e9558b6065fede231886bc108539c104ce88ebd9b5d1b0\n85d6e742e2fb16a7b0ba0df64bc2c0dbff9549be691f46a6669bca05e89c884af16822b85faefefb604ec48c8705a309\na87989ee231e468a712c66513746fcf03c14f103aadca0eac28e9732487deb56d7532e407953ab87a4bf8961588ef7b0\nb00da10efe1c29ee03c9d37d5918e391ae30e48304e294696b81b434f65cf8c8b95b9d1758c64c25e534d045ba28696f\n91c0e1fb49afe46c7056400baa06dbb5f6e479db78ee37e2d76c1f4e88994357e257b83b78624c4ef6091a6c0eb8254d\n883fb797c498297ccbf9411a3e727c3614af4eccde41619b773dc7f3259950835ee79453debf178e11dec4d3ada687a0\na14703347e44eb5059070b2759297fcfcfc60e6893c0373eea069388eba3950aa06f1c57cd2c30984a2d6f9e9c92c79e\nafebc7585b304ceba9a769634adff35940e89cd32682c78002822aab25eec3edc29342b7f5a42a56a1fec67821172ad5\naea3ff3822d09dba1425084ca95fd359718d856f6c133c5fabe2b2eed8303b6e0ba0d8698b48b93136a673baac174fd9\naf2456a09aa777d9e67aa6c7c49a1845ea5cdda2e39f4c935c34a5f8280d69d4eec570446998cbbe31ede69a91e90b06\n82cada19fed16b891ef3442bafd49e1f07c00c2f57b2492dd4ee36af2bd6fd877d6cb41188a4d6ce9ec8d48e8133d697\n82a21034c832287f616619a37c122cee265cc34ae75e881fcaea4ea7f689f3c2bc8150bbf7dbcfd123522bfb7f7b1d68\n86877217105f5d0ec3eeff0289fc2a70d505c9fdf7862e8159553ef60908fb1a27bdaf899381356a4ef4649072a9796c\n82b196e49c6e861089a427c0b4671d464e9d15555ffb90954cd0d630d7ae02eb3d98ceb529d00719c2526cd96481355a\na29b41d0d43d26ce76d4358e0db2b77df11f56e389f3b084d8af70a636218bd3ac86b36a9fe46ec9058c26a490f887f7\na4311c4c20c4d7dd943765099c50f2fd423e203ccfe98ff00087d205467a7873762510cac5fdce7a308913ed07991ed7\nb1f040fc5cc51550cb2c25cf1fd418ecdd961635a11f365515f0cb4ffb31da71f48128c233e9cc7c0cf3978d757ec84e\na9ebae46f86d3bd543c5f207ed0d1aed94b8375dc991161d7a271f01592912072e083e2daf30c146430894e37325a1b9\n826418c8e17ad902b5fe88736323a47e0ca7a44bce4cbe27846ec8fe81de1e8942455dda6d30e192cdcc73e11df31256\n85199db563427c5edcbac21f3d39fec2357be91fb571982ddcdc4646b446ad5ced84410de008cb47b3477ee0d532daf8\nb7eed9cd400b2ca12bf1d9ae008214b8561fb09c8ad9ff959e626ffde00fee5ff2f5b6612e231f2a1a9b1646fcc575e3\n8b40bf12501dcbac78f5a314941326bfcddf7907c83d8d887d0bb149207f85d80cd4dfbd7935439ea7b14ea39a3fded7\n83e3041af302485399ba6cd5120e17af61043977083887e8d26b15feec4a6b11171ac5c06e6ad0971d4b58a81ff12af3\n8f5b9a0eecc589dbf8c35a65d5e996a659277ef6ea509739c0cb7b3e2da9895e8c8012de662e5b23c5fa85d4a8f48904\n835d71ed5e919d89d8e6455f234f3ff215462c4e3720c371ac8c75e83b19dfe3ae15a81547e4dc1138e5f5997f413cc9\n8b7d2e4614716b1db18e9370176ea483e6abe8acdcc3dcdf5fb1f4d22ca55d652feebdccc171c6de38398d9f7bfdec7a\n93eace72036fe57d019676a02acf3d224cf376f166658c1bf705db4f24295881d477d6fdd7916efcfceff8c7a063deda\nb1ac460b3d516879a84bc886c54f020a9d799e7c49af3e4d7de5bf0d2793c852254c5d8fe5616147e6659512e5ccb012\nacd0947a35cb167a48bcd9667620464b54ac0e78f9316b4aa92dcaab5422d7a732087e52e1c827faa847c6b2fe6e7766\n94ac33d21c3d12ff762d32557860e911cd94d666609ddcc42161b9c16f28d24a526e8b10bb03137257a92cec25ae637d\n832e02058b6b994eadd8702921486241f9a19e68ed1406dad545e000a491ae510f525ccf9d10a4bba91c68f2c53a0f58\n9471035d14f78ff8f463b9901dd476b587bb07225c351161915c2e9c6114c3c78a501379ab6fb4eb03194c457cbd22bf\nab64593e034c6241d357fcbc32d8ea5593445a5e7c24cac81ad12bd2ef01843d477a36dc1ba21dbe63b440750d72096a\n9850f3b30045e927ad3ec4123a32ed2eb4c911f572b6abb79121873f91016f0d80268de8b12e2093a4904f6e6cab7642\n987212c36b4722fe2e54fa30c52b1e54474439f9f35ca6ad33c5130cd305b8b54b532dd80ffd2c274105f20ce6d79f6e\n8b4d0c6abcb239b5ed47bef63bc17efe558a27462c8208fa652b056e9eae9665787cd1aee34fbb55beb045c8bfdb882b\na9f3483c6fee2fe41312d89dd4355d5b2193ac413258993805c5cbbf0a59221f879386d3e7a28e73014f10e65dd503d9\na2225da3119b9b7c83d514b9f3aeb9a6d9e32d9cbf9309cbb971fd53c4b2c001d10d880a8ad8a7c281b21d85ceca0b7c\na050be52e54e676c151f7a54453bbb707232f849beab4f3bf504b4d620f59ed214409d7c2bd3000f3ff13184ccda1c35\nadbccf681e15b3edb6455a68d292b0a1d0f5a4cb135613f5e6db9943f02181341d5755875db6ee474e19ace1c0634a28\n8b6eff675632a6fad0111ec72aacc61c7387380eb87933fd1d098856387d418bd38e77d897e65d6fe35951d0627c550b\naabe2328ddf90989b15e409b91ef055cb02757d34987849ae6d60bef2c902bf8251ed21ab30acf39e500d1d511e90845\n92ba4eb1f796bc3d8b03515f65c045b66e2734c2da3fc507fdd9d6b5d1e19ab3893726816a32141db7a31099ca817d96\n8a98b3cf353138a1810beb60e946183803ef1d39ac4ea92f5a1e03060d35a4774a6e52b14ead54f6794d5f4022b8685c\n909f8a5c13ec4a59b649ed3bee9f5d13b21d7f3e2636fd2bb3413c0646573fdf9243d63083356f12f5147545339fcd55\n9359d914d1267633141328ed0790d81c695fea3ddd2d406c0df3d81d0c64931cf316fe4d92f4353c99ff63e2aefc4e34\nb88302031681b54415fe8fbfa161c032ea345c6af63d2fb8ad97615103fd4d4281c5a9cae5b0794c4657b97571a81d3b\n992c80192a519038082446b1fb947323005b275e25f2c14c33cc7269e0ec038581cc43705894f94bad62ae33a8b7f965\na78253e3e3eece124bef84a0a8807ce76573509f6861d0b6f70d0aa35a30a123a9da5e01e84969708c40b0669eb70aa6\n8d5724de45270ca91c94792e8584e676547d7ac1ac816a6bb9982ee854eb5df071d20545cdfd3771cd40f90e5ba04c8e\n825a6f586726c68d45f00ad0f5a4436523317939a47713f78fd4fe81cd74236fdac1b04ecd97c2d0267d6f4981d7beb1\n93e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb8\nb5bfd7dd8cdeb128843bc287230af38926187075cbfbefa81009a2ce615ac53d2914e5870cb452d2afaaab24f3499f72185cbfee53492714734429b7b38608e23926c911cceceac9a36851477ba4c60b087041de621000edc98edada20c1def2\nb5337ba0ce5d37224290916e268e2060e5c14f3f9fc9e1ec3af5a958e7a0303122500ce18f1a4640bf66525bd10e763501fe986d86649d8d45143c08c3209db3411802c226e9fe9a55716ac4a0c14f9dcef9e70b2bb309553880dc5025eab3cc\nb3c1dcdc1f62046c786f0b82242ef283e7ed8f5626f72542aa2c7a40f14d9094dd1ebdbd7457ffdcdac45fd7da7e16c51200b06d791e5e43e257e45efdf0bd5b06cd2333beca2a3a84354eb48662d83aef5ecf4e67658c851c10b13d8d87c874\n954d91c7688983382609fca9e211e461f488a5971fd4e40d7e2892037268eacdfd495cfa0a7ed6eb0eb11ac3ae6f651716757e7526abe1e06c64649d80996fd3105c20c4c94bc2b22d97045356fe9d791f21ea6428ac48db6f9e68e30d875280\n88a6b6bb26c51cf9812260795523973bb90ce80f6820b6c9048ab366f0fb96e48437a7f7cb62aedf64b11eb4dfefebb0147608793133d32003cb1f2dc47b13b5ff45f1bb1b2408ea45770a08dbfaec60961acb8119c47b139a13b8641e2c9487\n85cd7be9728bd925d12f47fb04b32d9fad7cab88788b559f053e69ca18e463113ecc8bbb6dbfb024835f901b3a957d3108d6770fb26d4c8be0a9a619f6e3a4bf15cbfd48e61593490885f6cee30e4300c5f9cf5e1c08e60a2d5b023ee94fcad0\n80477dba360f04399821a48ca388c0fa81102dd15687fea792ee8c1114e00d1bc4839ad37ac58900a118d863723acfbe08126ea883be87f50e4eabe3b5e72f5d9e041db8d9b186409fd4df4a7dde38c0e0a3b1ae29b098e5697e7f110b6b27e4\nb7a6aec08715a9f8672a2b8c367e407be37e59514ac19dd4f0942a68007bba3923df22da48702c63c0d6b3efd3c2d04e0fe042d8b5a54d562f9f33afc4865dcbcc16e99029e25925580e87920c399e710d438ac1ce3a6dc9b0d76c064a01f6f7\nac1b001edcea02c8258aeffbf9203114c1c874ad88dae1184fadd7d94cd09053649efd0ca413400e6e9b5fa4eac33261000af88b6bd0d2abf877a4f0355d2fb4d6007adb181695201c5432e50b850b51b3969f893bddf82126c5a71b042b7686\n90043fda4de53fb364fab2c04be5296c215599105ecff0c12e4917c549257125775c29f2507124d15f56e30447f367db0596c33237242c02d83dfd058735f1e3c1ff99069af55773b6d51d32a68bf75763f59ec4ee7267932ae426522b8aaab6\na8660ce853e9dc08271bf882e29cd53397d63b739584dda5263da4c7cc1878d0cf6f3e403557885f557e184700575fee016ee8542dec22c97befe1d10f414d22e84560741cdb3e74c30dda9b42eeaaf53e27822de2ee06e24e912bf764a9a533\n8fe3921a96d0d065e8aa8fce9aa42c8e1461ca0470688c137be89396dd05103606dab6cdd2a4591efd6addf72026c12e065da7be276dee27a7e30afa2bd81c18f1516e7f068f324d0bad9570b95f6bd02c727cd2343e26db0887c3e4e26dceda\n8ae1ad97dcb9c192c9a3933541b40447d1dc4eebf380151440bbaae1e120cc5cdf1bcea55180b128d8e180e3af623815191d063cc0d7a47d55fb7687b9d87040bf7bc1a7546b07c61db5ccf1841372d7c2fe4a5431ffff829f3c2eb590b0b710\n8c2fa96870a88150f7876c931e2d3cc2adeaaaf5c73ef5fa1cf9dfa0991ae4819f9321af7e916e5057d87338e630a2f21242c29d76963cf26035b548d2a63d8ad7bd6efefa01c1df502cbdfdfe0334fb21ceb9f686887440f713bf17a89b8081\nb9aa98e2f02bb616e22ee5dd74c7d1049321ac9214d093a738159850a1dbcc7138cb8d26ce09d8296368fd5b291d74fa17ac7cc1b80840fdd4ee35e111501e3fa8485b508baecda7c1ab7bd703872b7d64a2a40b3210b6a70e8a6ffe0e5127e3\n9292db67f8771cdc86854a3f614a73805bf3012b48f1541e704ea4015d2b6b9c9aaed36419769c87c49f9e3165f03edb159c23b3a49c4390951f78e1d9b0ad997129b17cdb57ea1a6638794c0cca7d239f229e589c5ae4f9fe6979f7f8cba1d7\n91cd9e86550f230d128664f7312591fee6a84c34f5fc7aed557bcf986a409a6de722c4330453a305f06911d2728626e611acfdf81284f77f60a3a1595053a9479964fd713117e27c0222cc679674b03bc8001501aaf9b506196c56de29429b46\na9516b73f605cc31b89c68b7675dc451e6364595243d235339437f556cf22d745d4250c1376182273be2d99e02c10eee047410a43eff634d051aeb784e76cb3605d8e079b9eb6ad1957dfdf77e1cd32ce4a573c9dfcc207ca65af6eb187f6c3d\na9667271f7d191935cc8ad59ef3ec50229945faea85bfdfb0d582090f524436b348aaa0183b16a6231c00332fdac2826125b8c857a2ed9ec66821cfe02b3a2279be2412441bc2e369b255eb98614e4be8490799c4df22f18d47d24ec70bba5f7\na4371144d2aa44d70d3cb9789096d3aa411149a6f800cb46f506461ee8363c8724667974252f28aea61b6030c05930ac039c1ee64bb4bd56532a685cae182bf2ab935eee34718cffcb46cae214c77aaca11dbb1320faf23c47247db1da04d8dc\n89a7eb441892260b7e81168c386899cd84ffc4a2c5cad2eae0d1ab9e8b5524662e6f660fe3f8bfe4c92f60b060811bc605b14c5631d16709266886d7885a5eb5930097127ec6fb2ebbaf2df65909cf48f253b3d5e22ae48d3e9a2fd2b01f447e\n9648c42ca97665b5eccb49580d8532df05eb5a68db07f391a2340769b55119eaf4c52fe4f650c09250fa78a76c3a1e271799b8333cc2628e3d4b4a6a3e03da1f771ecf6516dd63236574a7864ff07e319a6f11f153406280d63af9e2b5713283\n9663bf6dd446ea7a90658ee458578d4196dc0b175ef7fcfa75f44d41670850774c2e46c5a6be132a2c072a3c0180a24f0305d1acac49d2d79878e5cda80c57feda3d01a6af12e78b5874e2a4b3717f11c97503b41a4474e2e95b179113726199\nb212aeb4814e0915b432711b317923ed2b09e076aaf558c3ae8ef83f9e15a83f9ea3f47805b2750ab9e8106cb4dc6ad003522c84b03dc02829978a097899c773f6fb31f7fe6b8f2d836d96580f216fec20158f1590c3e0d7850622e15194db05\n925f005059bf07e9ceccbe66c711b048e236ade775720d0fe479aebe6e23e8af281225ad18e62458dc1b03b42ad4ca290d4aa176260604a7aad0d9791337006fbdebe23746f8060d42876f45e4c83c3643931392fde1cd13ff8bddf8111ef974\n9553edb22b4330c568e156a59ef03b26f5c326424f830fe3e8c0b602f08c124730ffc40bc745bec1a22417adb22a1a960243a10565c2be3066bfdb841d1cd14c624cd06e0008f4beb83f972ce6182a303bee3fcbcabc6cfe48ec5ae4b7941bfc\n935f5a404f0a78bdcce709899eda0631169b366a669e9b58eacbbd86d7b5016d044b8dfc59ce7ed8de743ae16c2343b50e2f925e88ba6319e33c3fc76b314043abad7813677b4615c8a97eb83cc79de4fedf6ccbcfa4d4cbf759a5a84e4d9742\na5b014ab936eb4be113204490e8b61cd38d71da0dec7215125bcd131bf3ab22d0a32ce645bca93e7b3637cf0c2db3d6601a0ddd330dc46f9fae82abe864ffc12d656c88eb50c20782e5bb6f75d18760666f43943abb644b881639083e122f557\n935b7298ae52862fa22bf03bfc1795b34c70b181679ae27de08a9f5b4b884f824ef1b276b7600efa0d2f1d79e4a470d51692fd565c5cf8343dd80e5d3336968fc21c09ba9348590f6206d4424eb229e767547daefa98bc3aa9f421158dee3f2a\n9830f92446e708a8f6b091cc3c38b653505414f8b6507504010a96ffda3bcf763d5331eb749301e2a1437f00e2415efb01b799ad4c03f4b02de077569626255ac1165f96ea408915d4cf7955047620da573e5c439671d1fa5c833fb11de7afe6\n840dcc44f673fff3e387af2bb41e89640f2a70bcd2b92544876daa92143f67c7512faf5f90a04b7191de01f3e2b1bde00622a20dc62ca23bbbfaa6ad220613deff43908382642d4d6a86999f662efd64b1df448b68c847cfa87630a3ffd2ec76\n92950c895ed54f7f876b2fda17ecc9c41b7accfbdd42c210cc5b475e0737a7279f558148531b5c916e310604a1de25a80940c94fe5389ae5d6a5e9c371be67bceea1877f5401725a6595bcf77ece60905151b6dfcb68b75ed2e708c73632f4fd\n8010246bf8e94c25fd029b346b5fbadb404ef6f44a58fd9dd75acf62433d8cc6db66974f139a76e0c26dddc1f329a88214dbb63276516cf325c7869e855d07e0852d622c332ac55609ba1ec9258c45746a2aeb1af0800141ee011da80af175d4\nb0f1bad257ebd187bdc3f37b23f33c6a5d6a8e1f2de586080d6ada19087b0e2bf23b79c1b6da1ee82271323f5bdf3e1b018586b54a5b92ab6a1a16bb3315190a3584a05e6c37d5ca1e05d702b9869e27f513472bcdd00f4d0502a107773097da\n9636d24f1ede773ce919f309448dd7ce023f424afd6b4b69cb98c2a988d849a283646dc3e469879daa1b1edae91ae41f009887518e7eb5578f88469321117303cd3ac2d7aee4d9cb5f82ab9ae3458e796dfe7c24284b05815acfcaa270ff22e2\nb373feb5d7012fd60578d7d00834c5c81df2a23d42794fed91aa9535a4771fde0341c4da882261785e0caca40bf83405143085e7f17e55b64f6c5c809680c20b050409bf3702c574769127c854d27388b144b05624a0e24a1cbcc4d08467005b\nb15680648949ce69f82526e9b67d9b55ce5c537dc6ab7f3089091a9a19a6b90df7656794f6edc87fb387d21573ffc847062623685931c2790a508cbc8c6b231dd2c34f4d37d4706237b1407673605a604bcf6a50cc0b1a2db20485e22b02c17e\n8817e46672d40c8f748081567b038a3165f87994788ec77ee8daea8587f5540df3422f9e120e94339be67f186f50952504cb44f61e30a5241f1827e501b2de53c4c64473bcc79ab887dd277f282fbfe47997a930dd140ac08b03efac88d81075\na6e4ef6c1d1098f95aae119905f87eb49b909d17f9c41bcfe51127aa25fee20782ea884a7fdf7d5e9c245b5a5b32230b07e0dbf7c6743bf52ee20e2acc0b269422bd6cf3c07115df4aa85b11b2c16630a07c974492d9cdd0ec325a3fabd95044\n8634aa7c3d00e7f17150009698ce440d8e1b0f13042b624a722ace68ead870c3d2212fbee549a2c190e384d7d6ac37ce14ab962c299ea1218ef1b1489c98906c91323b94c587f1d205a6edd5e9d05b42d591c26494a6f6a029a2aadb5f8b6f67\n821a58092900bdb73decf48e13e7a5012a3f88b06288a97b855ef51306406e7d867d613d9ec738ebacfa6db344b677d21509d93f3b55c2ebf3a2f2a6356f875150554c6fff52e62e3e46f7859be971bf7dd9d5b3e1d799749c8a97c2e04325df\n8dba356577a3a388f782e90edb1a7f3619759f4de314ad5d95c7cc6e197211446819c4955f99c5fc67f79450d2934e3c09adefc91b724887e005c5190362245eec48ce117d0a94d6fa6db12eda4ba8dde608fbbd0051f54dcf3bb057adfb2493\na32a690dc95c23ed9fb46443d9b7d4c2e27053a7fcc216d2b0020a8cf279729c46114d2cda5772fd60a97016a07d6c5a0a7eb085a18307d34194596f5b541cdf01b2ceb31d62d6b55515acfd2b9eec92b27d082fbc4dc59fc63b551eccdb8468\na040f7f4be67eaf0a1d658a3175d65df21a7dbde99bfa893469b9b43b9d150fc2e333148b1cb88cfd0447d88fa1a501d126987e9fdccb2852ecf1ba907c2ca3d6f97b055e354a9789854a64ecc8c2e928382cf09dda9abde42bbdf92280cdd96\n864baff97fa60164f91f334e0c9be00a152a416556b462f96d7c43b59fe1ebaff42f0471d0bf264976f8aa6431176eb905bd875024cf4f76c13a70bede51dc3e47e10b9d5652d30d2663b3af3f08d5d11b9709a0321aba371d2ef13174dcfcaf\n95a46f32c994133ecc22db49bad2c36a281d6b574c83cfee6680b8c8100466ca034b815cfaedfbf54f4e75188e661df901abd089524e1e0eb0bf48d48caa9dd97482d2e8c1253e7e8ac250a32fd066d5b5cb08a8641bdd64ecfa48289dca83a3\na2cce2be4d12144138cb91066e0cd0542c80b478bf467867ebef9ddaf3bd64e918294043500bf5a9f45ee089a8d6ace917108d9ce9e4f41e7e860cbce19ac52e791db3b6dde1c4b0367377b581f999f340e1d6814d724edc94cb07f9c4730774\nb145f203eee1ac0a1a1731113ffa7a8b0b694ef2312dabc4d431660f5e0645ef5838e3e624cfe1228cfa248d48b5760501f93e6ab13d3159fc241427116c4b90359599a4cb0a86d0bb9190aa7fabff482c812db966fd2ce0a1b48cb8ac8b3bca\nadabe5d215c608696e03861cbd5f7401869c756b3a5aadc55f41745ad9478145d44393fec8bb6dfc4ad9236dc62b9ada0f7ca57fe2bae1b71565dbf9536d33a68b8e2090b233422313cc96afc7f1f7e0907dc7787806671541d6de8ce47c4cd0\nae7845fa6b06db53201c1080e01e629781817f421f28956589c6df3091ec33754f8a4bd4647a6bb1c141ac22731e3c1014865d13f3ed538dcb0f7b7576435133d9d03be655f8fbb4c9f7d83e06d1210aedd45128c2b0c9bab45a9ddde1c862a5\n9159eaa826a24adfa7adf6e8d2832120ebb6eccbeb3d0459ffdc338548813a2d239d22b26451fda98cc0c204d8e1ac69150b5498e0be3045300e789bcb4e210d5cd431da4bdd915a21f407ea296c20c96608ded0b70d07188e96e6c1a7b9b86b\na9fc6281e2d54b46458ef564ffaed6944bff71e389d0acc11fa35d3fcd8e10c1066e0dde5b9b6516f691bb478e81c6b20865281104dcb640e29dc116daae2e884f1fe6730d639dbe0e19a532be4fb337bf52ae8408446deb393d224eee7cfa50\n84291a42f991bfb36358eedead3699d9176a38f6f63757742fdbb7f631f2c70178b1aedef4912fed7b6cf27e88ddc7eb0e2a6aa4b999f3eb4b662b93f386c8d78e9ac9929e21f4c5e63b12991fcde93aa64a735b75b535e730ff8dd2abb16e04\na1b7fcacae181495d91765dfddf26581e8e39421579c9cbd0dd27a40ea4c54af3444a36bf85a11dda2114246eaddbdd619397424bb1eb41b5a15004b902a590ede5742cd850cf312555be24d2df8becf48f5afba5a8cd087cb7be0a521728386\n92feaaf540dbd84719a4889a87cdd125b7e995a6782911931fef26da9afcfbe6f86aaf5328fe1f77631491ce6239c5470f44c7791506c6ef1626803a5794e76d2be0af92f7052c29ac6264b7b9b51f267ad820afc6f881460521428496c6a5f1\na525c925bfae1b89320a5054acc1fa11820f73d0cf28d273092b305467b2831fab53b6daf75fb926f332782d50e2522a19edcd85be5eb72f1497193c952d8cd0bcc5d43b39363b206eae4cb1e61668bde28a3fb2fc1e0d3d113f6dfadb799717\n98752bb6f5a44213f40eda6aa4ff124057c1b13b6529ab42fe575b9afa66e59b9c0ed563fb20dff62130c436c3e905ee17dd8433ba02c445b1d67182ab6504a90bbe12c26a754bbf734665c622f76c62fe2e11dd43ce04fd2b91a8463679058b\na9aa9a84729f7c44219ff9e00e651e50ddea3735ef2a73fdf8ed8cd271961d8ed7af5cd724b713a89a097a3fe65a3c0202f69458a8b4c157c62a85668b12fc0d3957774bc9b35f86c184dd03bfefd5c325da717d74192cc9751c2073fe9d170e\nb221c1fd335a4362eff504cd95145f122bf93ea02ae162a3fb39c75583fc13a932d26050e164da97cff3e91f9a7f6ff80302c19dd1916f24acf6b93b62f36e9665a8785413b0c7d930c7f1668549910f849bca319b00e59dd01e5dec8d2edacc\na71e2b1e0b16d754b848f05eda90f67bedab37709550171551050c94efba0bfc282f72aeaaa1f0330041461f5e6aa4d11537237e955e1609a469d38ed17f5c2a35a1752f546db89bfeff9eab78ec944266f1cb94c1db3334ab48df716ce408ef\nb990ae72768779ba0b2e66df4dd29b3dbd00f901c23b2b4a53419226ef9232acedeb498b0d0687c463e3f1eead58b20b09efcefa566fbfdfe1c6e48d32367936142d0a734143e5e63cdf86be7457723535b787a9cfcfa32fe1d61ad5a2617220\n8d27e7fbff77d5b9b9bbc864d5231fecf817238a6433db668d5a62a2c1ee1e5694fdd90c3293c06cc0cb15f7cbeab44d0d42be632cb9ff41fc3f6628b4b62897797d7b56126d65b694dcf3e298e3561ac8813fbd7296593ced33850426df42db\na92039a08b5502d5b211a7744099c9f93fa8c90cedcb1d05e92f01886219dd464eb5fb0337496ad96ed09c987da4e5f019035c5b01cc09b2a18b8a8dd419bc5895388a07e26958f6bd26751929c25f89b8eb4a299d822e2d26fec9ef350e0d3c\n92dcc5a1c8c3e1b28b1524e3dd6dbecd63017c9201da9dbe077f1b82adc08c50169f56fc7b5a3b28ec6b89254de3e2fd12838a761053437883c3e01ba616670cea843754548ef84bcc397de2369adcca2ab54cd73c55dc68d87aec3fc2fe4f10\n97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb\nad3eb50121139aa34db1d545093ac9374ab7bca2c0f3bf28e27c8dcd8fc7cb42d25926fc0c97b336e9f0fb35e5a04c81\n8029c8ce0d2dce761a7f29c2df2290850c85bdfaec2955626d7acc8864aeb01fe16c9e156863dc63b6c22553910e27c1\nb1386c995d3101d10639e49b9e5d39b9a280dcf0f135c2e6c6928bb3ab8309a9da7178f33925768c324f11c3762cfdd5\n9596d929610e6d2ed3502b1bb0f1ea010f6b6605c95d4859f5e53e09fa68dc71dfd5874905447b5ec6cd156a76d6b6e8\n851e3c3d4b5b7cdbba25d72abf9812cf3d7c5a9dbdec42b6635e2add706cbeea18f985afe5247459f6c908620322f434\nb10f4cf8ec6e02491bbe6d9084d88c16306fdaf399fef3cd1453f58a4f7633f80dc60b100f9236c3103eaf727468374f\nade11ec630127e04d17e70db0237d55f2ff2a2094881a483797e8cddb98b622245e1f608e5dcd1172b9870e733b4a32f\naf58c8a2f58f904ce20db81005331bf2d251e227e7d1bef575d691bdca842e6233eb2e26c2e116a61a78594772b38d25\nb3c1313c31ec82da5a7a09e9cf6656ca598c243345fe8d4828e520ade91787ffb8b9867db789b34ad67cef47b26ff86d\na8ed8a235355948e0b04be080b7b3e145293accefb4704d1da9050796b2f6870516c1ebf77ae6a65359edcfd016c0f36\n80e792d5ba24b8058f6d7291a2ec5cb68aab1e16e96d793128e86815631baf42c56b6205c19e25ce9727bd1fd6f9defb\n816288c5d726b094e3fdf95cb8882f442c4d9d1101b92c7938a7dfd49bc50636d73ea1b05f75eb731c908c8fd8dee717\nae009128d128ba2e1519bfa7a0c01ed494a7d461c3aba60f8a301701fed61fe4e31d6c79ce189542ae51df91e73ce1b3\n96a866d60a9007d05825c332476a83e869e15b11d7257172a67690ea9bd3efea44bf9c8d42191454eb04fcf110b16396\n8b250a2a06419adb9b611e89f7f8f2990aa301949b533ad3bf17c4a61ab5f5be0b1d5e2b571864d13f1bb75805c7795d\n8450f49facf2e620fa45ee90e1801178842d927a2a25fc6ed7ba99a4eec7ae40eebfee41028eaa84f107f4a777694976\n91049080cf659c0985a22d1366e59191bb89663f922e8168b9b7d85c8a73d74a6d9dceefd855d3d858b493670c750581\na1e167aeb2008087f3195926f1985c0a459d6ec57237255b1473a96de4e2c1cf766127c862c7dc853a6909e67cb06cf7\nb667c0d4e26e20698b07567358625d5f003839c92de8088e12dbd74a6f6a3156b4ea8d252c9ad62af5f6c4fec1cf6cc7\n8e4b5e304c0b1b161ae3e4b68b5e3ac66c42acd7c1ee2458044f6527c508a93995e50894d72d57c1350f91afe72775ff\n8c642640aa7915421cdc21fd639f88a42052b1cfa358ff7702e60793a92b7b5926dae15a0c8f8f59cd3013f01c159ba3\na356f35e713cfc283056bf539de54a21731e61efb4c47319f20de4a4b723d76a33b65f4a67d298b9ec5c2a1579418657\n93ce204146ce95f484dc79c27919a16c9e3fc14a9111c6c63d44491158d5838117d20851cc3227a5e8ba6ccf79e77f39\nb585664cbb9a84b52f89114e1cf0cf1171bea78a136dc1404ac88a11210b2debc3b7a55e702da93ff629095c134a295e\nb6dfd444ec7fdceb14c6328f26ca12c3f9fc4327d8d8c68948e92e7e61262b82d833a65a9e3af6353ffa832b6da25705\nb4d4b8eb9ecfffe3f0d48fb4149c7b31aec1da7041ec03bd0750c52a2a7cbc3a7cfbf09d5bfdc56e3860826a62d0bb91\na4e248e3d61db52da9683fef188579c470d65e2df9064726847b1599fc774049ffdc6ef2ae578d5ed7874f1298ecdf69\na68a0fffc2e37d3183feb01b42234c0f4e510f9dc29d09c571e6da00fecad9da224cd0f31550070148667e226c4ca413\n86adda2ffecb77236c18005051f31f9657a0d50fef2a1175dfda32e74d5d53df825c10f289eb0ad39df0c64fc9bc7729\n998266d5c9c3764ed97d66fa9ed176af043999652bae19f0657c8328629d30af453230e3681c5a38e2f01e389ed8d825\na05261554d3c620af0c914cf27ab98f5d3593c33ab313c198e0c40d6c72022eb5943778cd4f73e9fe8383392a7004976\nad243fb3631bf90fedb9d679fd71fc0cf06bda028591ded2bd4c634ea7b3c2bd22eca2ab318fcdaa6c2cda1e63e1c57b\n89b9859a04f903c95e97fb2951f01cc6418a2505eee0b5bc7266b4d33e01b69b9fe7dc56fa9ebb5856095be0925a422d\na68d118343a5bbfbbab95ff9bfe53aeb7fdbaf16db983e6f4456366df2aa01fbdb6ee9901cb102fc7d2bd099be2f1f3e\nb49301f25d5a9dd2ec60ddb0b4b477291958487efea9e54dc0e4ef388f03b8bbadd13259d191f7a0b7513876767d8282\n8b93df7fb4513f67749905fd43db78f7026589b704ebb9ea3255d0ad6415437799f40f02e07efccda1e6fd5e8cd0a721\nad88769ace96455da37c3c9019a9f523c694643be3f6b37b1e9dcc5053d1fe8e463abebdb1b3ef2f2fb801528a01c47c\n80f0eb5dcbfaaf421bf59a8b9bd5245c4823c94510093e23e0b0534647fb5525a25ea3aeea0a927a1ee20c057f2c9234\nb10ad82ea6a5aeabe345d00eb17910d6942b6862f7f3773c7d321194e67c9cced0b3310425662606634dcd7f8b976c04\n82f6fd91f87822f6cc977808eeac77889f4a32fb0d618e784b2331263d0ffa820b3f70b069d32e0319c9e033ab75d3b4\n9436d3dc6b5e25b1f695f8c6c1c553dab312ccace4dac3afddc141d3506467cd50cb04a49ea96ea7f5a8a7b0fc65ef37\n8e0a9491651d52be8ebf4315fbbb410272f9a74b965d33b79ff1b9e1be3be59e43d9566773560e43280549c348e48f01\n8809137e5d3a22400d6e645a9bd84e21c492371736c7e62c51cef50fee3aa7f2405724367a83fd051ff702d971167f67\nb536a24f31a346de7f9863fc351fa602158404d2f94747eebe43abf1f21bf8f95a64146c02a4bec27b503f546789a388\nb5cdf5a04fc12a0e0ef7545830061dff7fd8abea46e48fbe6235109e6c36ee6bffcb9529e2f3d0d701cf58bbfb6a4197\nab15377525753467d042b7931f66f862cbbb77464212c9aa72d4e5c04375ef55f619b3a446091c1ba1a3b5d9f05e538f\n905a75b943ad017ff78ea6ddd1d28a45c7273ee1c2e5e3353685813793ead3370c09cabd903fcab9d8b1c6961372d486\n8147df4324faddc02fb0896367a7647b719b6499a361aecfdd3a34296fa6768ad31c34f9e873fd1e683386c44651883e\nac91d08570dd91f89d2e01dca67cdc83b640e20f073ea9f0734759c92182bb66c5d645f15ebd91ed705b66486ed2088d\nac6295ef2513bbea7ef4cdcf37d280300c34e63c4b9704663d55891a61bf5c91b04cc1d202a3a0a7c4520c30edc277c7\nb604be776a012095c0d4ebc77797dd8dec62a54c0559fb2185d7bac6b50d4e5fd471ac2d7f4523206d5d8178eabd9a87\n80ead68def272ce3f57951145e71ed6dc26da98e5825ef439af577c0c5de766d4e39207f205d5d21db903d89f37bbb02\n9950b4a830388c897158c7fe3921e2fe24beedc7c84e2024e8b92b9775f8f99593b54a86b8870ec5087734295ba06032\nb89ba714adabf94e658a7d14ac8fc197376a416841c2a80e1a6dde4f438d5f747d1fb90b39e8ea435c59d6ecda13dea1\nb0c78e7cc60bd05be46d48fbb0421a678c7f14b8d93730deb66fbe1647613b2c62b5075126d917047820c57fc3509cb9\na860c4acc5444e9ae987e8c93cb9a5f17d954d63c060cc616f724e26bc73d2c54cd36e0492d1fde173847278e55942ba\n8fb8269c9d5c15428e8d45da1251e4c4a4b600d47da0caea29fef246854d8fb6acae86a8e6440d0c429d8dd9c2dfee0c\n96c5d8eb6fd5c525b348ee4335d200139e437e4be83690af0f35b7f336a7cda8c6d2958647988b84da9f2dd7bbb7710b\na7f62141c4346cc14e9823dc38ac7d587b0427022afc1498d12ee2c43f6ac3a82167057e670dd524b74137f8c3ceb56d\n956aac50d06b46a3e94397f163f593f5010d366aa2d816c2205c7d0f47f90cf0f36c169e964f9bcf698d49182d47d91f\nb812899bcdc0e70d79ca729cb01104bf60e1357b9085a10f64f3ba9865d57e9abd0a505a502d4de07afb46f4d266be2f\nabce02c7e1372e25d40944dc9ece2904a8f59c8854c5f2875fe63ace8ce37d97881f4f9ab4f7bad070ec8e0daee58d3f\n8fb13c515b2d6abb4e14ed753fad5cc36c3631dfe21a23d0f603aad719423dd5423157eefcbd9a9c6074e155b79eb38d\na9ef67304dc297ab5af778cf8afa849eeac27db4b6978963e97b95ef7a8d3264d0d07775f728c298a2b6daed2ecf5053\na9b975520adb066e2ff2a4cde53284c23bc84261a22dc43b1634d99eff8e7892e46bb6e6da7319c9e72788aa9ea7a1ea\na6eaea4ab4206294474d9b956d9d3188d558a5633de2bd05df0d3bac03dbcbe4ed85406349c1d2e660b77c6da1f5bf8c\naf4a19f77290dddee762e1e0d4bc9945aacea3f75756ae46cd3e58a8f74d1b5db73e4834687946b0f39191e32f2fed0c\naafa6523f58f1a4cabc924c86d842816d606afeea21fa4b2b8b9573425810fdcc41c98888318e868f9c05e2be12178a3\n8ef38fba0a3fa4ebe985239c8b759c22aaef0c57e6f39050a651c869487803b0d1e389c3d958fb5a7f37740f050ac69e\nb07dfc9f85913c608ca7596a2e361f05e4853fad00e796fd492d247de6414892ce160f627669b1ba933b6ad726415d4e\n94da679ad1d78b2bff5283c938f17b2a7d6e9cbcdf59d340e6dfb652951c7a9e852ac0590f99cfee9631b9410f6f00ea\n98a907c9c021a5b034d3720197c160a82c4b7146cb73d48efeed99b9d0c6b831812cf80ac7e19e85a676a8cd3ead72de\nadb746595466a12929019d0048cea33236b05c1229d2eba73b259a18a786f2bc3f05fc0598d8ce253cecb80bdf679aaf\na2fbac016996d68f9027a157b0a3f6a336144a798d6113adfcda3a5d05b62c31f108f112aa915906aef22b7f83b9228b\n81841dea1904406d1b6fa49b4b3f7f6cb40b7646cf44d36c9fa07e3dee29f8e47324b40d8356ddf653109673c3374e9b\na3edbb8aac5e60c775775cbdb19067341b2e2530de48738e84c2c07151241ee31f0d8333bf20c2bc9dcb7b2e638a6b5e\nb8aa6890e22964828787ce86460d3a32f12a655bb5c28de500f2fcf6b61e3334640ec6ba96029a4912af0d18df4b4139\n8ca43169f04243ad0fdb0152de17c60d9e31ee0ab520970fccd98590e05508821a183b4b367967e60d53c2c826ec5dbd\nb179fffd9df8c00486c5a8b9327d599f5a11745ef564f06e126849b06fe2f99273c81f65bc941efb0debaadfecbfec1c\nacf068f1c2b1926279cc82750ce21b0d6b0bfd0406f0d8bbfa959bd83935932957c7f6b8de318315bf0b75f6ee41a0f2\nb97831da260919c856e9f71a41687f5979bc16f8a53b1037285b4a2f9ce93af5cfe70bf0ad484744827fb55c847b58eb\naff50b0bd907383b0c241727af364fe084d021221bfb1b09fb6c1a7752eeba45d662493d590f1f182764b90b25f17906\naeeef044c14e3ad41e1235c9e816e1eb49087fd3abe877b89b3bade74459186126e160bb569bcd77779e701b19b5f71a\n8483deb2b7001ca7c438fcdca8ca6aba96c9cbc4becfd9b16a6062705eae270011bcaedcae69bb54630d8c78129e57c7\naeee8d24be4ac0d9784c029e239fb5e64316ce29b88f47394cfaaa8bb966a72061bff72f99d02dc51c9705854686e77f\n90ae09525a16bb2422169e15d6831c87968a14ebc0d1d27e11a759839c73c655b9d33ee5b12f275d6f440688146fbd2f\na3a41fc7fefef101422465e506bea7f3ff23c26fe35f5732b86f5f2471fb93b37ebc339f84c6be1e8d22abc812c2e212\n86f4b5293e8aea4af1f1fb05dcf99714cb3aff1cfc849b1bb73524061c921c9da9ad92579a852e1889da29d952f02fe5\n8932ef39d4050a1e9dc0fd8afeaf159472d71c5c27f458c69d2730836606ea56e19c8c4febf2535f930d3260e9bc7637\n86307b9f3696bb21c20e4558e30310389e7367803c353d437e9b696039a0ff054d9a4953b75237ab1d1dd6f71118c189\n96e57730e683ef5b550c91de18b19ac73879f3e26234297db68d28747ed0953beb0f3913cfb720c602720bf9330685d8\nb04a19ee70123782e47b238abde55baf60ac0c66292a998af0d14afc8bbeb1134e557b94cd17a020084631c09a0d3c02\n829abc8718be8139569fcb2c398962f38f4201114d30e2b2fb23566f8a27a5c380f5605cec543415202a12ed859e33f6\na0744fa488c8fa92a722c5fc4ef5a47dfe824eccd87d26c8bab9c174cbb151d44b1b29082c48652f03d3177e5ec86001\n81d4035ae9fd28bdcd78b135cb54955d3b685a527319df6ee7e904b8e6d796f5f5a5f5035ee1de750c4cb6050e452b9e\nb205e8c2ec24d7104fa0106c09ad34b5a912c1adef553fb718838dd627355993c2ec01055c11d00b2c75b68e9516d44b\nb12d09da7968fa7394e449624fc7174d1d76c069ccb03e140d4d87a2d3f6d1f7b9cfc930f0c80becc673406ebe63f08e\nb23752c158695da85048fdf38b395681cc0e8998630af8a9ed41efbda08c9964c2dc8ae6e53377264be4467d702c0de4\nb0d84582fd73628d96b8c1ec96197697c41a963542451a2ade0890af0d33c7161d0f18e1a1ce2c168ca2dc1e9119d55e\n8b877e618b469aa187632e410b125d2999d5738fd66d482000706b51fd904a0c7e7daa8c9b729fa33817bbc4154cba2a\nb1cfc8a7551b601723b937d497d01dec3ee7614c2bf13d430b1058d5ebc1406045009ff02c2ac15bf8cf16f860193d1e\nb6d9da84f97b21e13175bbb0b5cc8e79e88b470c87a3e115726c1bd98e0288526c58f3faaa8aa170ace0cd6a60852525\nad2e773c2d527671ca5fab7085dde4da31cd35f45d4315dd95d8893ff5fb900494dca08eccfc1a2fc7bf7c7fd2fcab97\n8d5a79b34aeb761d4a0c73f09f02e9548e6d382c33ee6887a759ab05762b490b8a549ef2933c7e3a46415c154c0221c0\nb6f2cbe81bd0a7298403be392f8456bed30aed7ef30216959357698f789affd2942ae5fbaf3f48ecebeb7c273b20cb57\nb5b6c45d99cea7ce6a1dc134aff4a8f630f299b42bd59592a7592345f8cd35bcbee944e61b0723de732fcad6e4425b63\n8077d64dfcb2418974e956ea6dbf8a4c05b25d2a025333ad7e2a379f1976dc036771403383a51bfa3476c9c619ef8bef\nad2e0a9d479c77a5fb73b3613a177fdaad50dcb50fed50e756ba18164c153af30b07fb2565e80ff7469f1b0338b7b5de\n81017d1d80a6b6df4e99d0d7f85a8180b5523e8fa2ea2672fddff604933f8a113cab27fce098dcb454d7d1f7ed266e04\n852355479d68e76c7febf6dfe2ef8e80d575c0d3bd52c983803592021cfa898c571c0b884412c21e66f0dbfe03167b53\n98e1bf8ad48421467c93b9f72b47dded7c41b4fcd36ea55ca43ab24b0d0b876f5a731f422579b7167c7138fad2121266\n803369314abd5422019ed4b0ef652b4dbe97ef5a87b0ea373eec9628b64a12120b2c3d4eb53db405131ff786d14c7ac6\nadf2613fc34f73e1160975c140e925ed84d254e03cc3bc7fc1d19957b499c9ba9d9e4c1639981b594a7095c0a52c6757\na2f6a68efdff6e4173c00692abcfdfcdaf6f8b62369afad3dafaae4f2f38c4860780b4624d185e20e4f4498b75b5fe94\n8b1658aa0e119fb8401d486ed08d60240d26a8623ef9788e3b45ad09ae31259395b021bd16be395139cbb7149714e764\na7dd8bf21121285e00672ee8bb84e0cb39b2496fb53a26e35dfbca7f2b04e9a9ff9db15f53fe63fcbeafeb2deeaf2ca4\nb6d8d709e44bc18f3b41d69608edce60c02bcba48d3b7e2fd420842657f0665a7343246dea149a25e8f3416284abae66\naaf744ca5e9bcb63e3e2939b7a1e96e4a93c88c76bec0cf4294dd7db95cdd3f6a7d92196e352d08680e2328bc4592899\n84434b015a7c398d35f1ec71fce455d62ba4ed4f62da042ec31bb2b4db47073314354cd50bc322297a1cfe35138bf490\n8d70b3a3cd9d5dfefdacfa418c0b775a112a47ce538d33a560a519660009c3f141fd6221c18539129e9c0acdaceeeb80\nb8c6903412a800ec78a4c15f31c24385a267b0c0ece32fd31bbbb557fd70c3b2d60d8fc0f90fbd70f43baa1928ea30ba\n8e391dd445ea06cabb433f057853f8159511b2f9bef41aed9ccd14e0a6fcd912bbaebd38fd5fb736cfde0fa34b7a4874\na40cd988f70613df32babbd1bbc2f1b29ff1ab0147b01161555a81d56c9621657999bcdb1df38485f687afc51d5d0f23\nb6a008b4426b3d7b28ae04eee4698fc8ef6a35d89008ef5394da39ce582ce1a45dcfae9a33b90f6fa4237f3667803873\n8987280debfb175c3b44a2f152ea82548e4f680966f1fcbee9bf7d714e31bf8080c33f52705ef3aeee70544b22516aba\na78a51a2c11eea7680a5a0ae417a2981f8c69c396e06da621eadd7510a3664ade49d065617bec67b3de779548a4f4509\na4d9163f0a1bc048385e94d5e0bcafeee1b18f28eb23505623b9e8ef16f3df76408254dfbe790e45f2884198060d388d\n83dcae2568a0c518793c0f6e38b42f9ceb50673d100b556a17ec8bd9faeec84afe50b8d72422c6b2356959667bb8e2de\n874731941be4474b4576226e5906b5dee89fc9b56a9870dcc7289c1a7d494d345ba6aba31f7546a16f9963283c05f744\n82c1cfab1f501189ac20147fc4631075dbf1abf9125b7d42fcb4f31cf73f3d6461b1bd08fdf6e45cc54bc08a7d5d51d1\nb978228286f5d4a10ce027b6bea3021affcaa805340ca4b5192c69e8c56db59f48e4a14a284ec015f53baf97389f62b2\naf125f4fdccd1c1b64fdffecb5ec7cf8c7392bbe476e1b89a5b5329c5ba4a526e58c11e72ab9de8a38d60af648d75adc\n8411a41ec14295acab0d36389013535a80dfff6e024bffeb32fb3070762f61256419e8c51b2ad6de9dbe4f1e8e286912\n8ea67a91112a41f9c65515cd496f4b0cdefa1400fc06568eef000c9eae6dc250fb7622eb3f2deca10b37287cd96fa463\n8da99b6c55c31dee6a49aabb54da249d348a31d4416201a10c45a3b04b11e99d4ae9813632f0ee36c523b5cca62f6f49\n8b44656341e039e2bd83a19c3bb9a88f6209482e274f8cd4f8557b728e5948dd80b5745f621b96f4562928689314e8c2\na02d424a615ba0dce8ed91f477e79852215a3a39d025059826fa278e7eebef19824b2a2844f5b3865a0f471b609a23f5\na1f115cebc3fff3bcf233da27cef19eae791660f155d088003460f75567a550bef0722885010ddc384acdeac635939dc\nb61a55ce9d143c17876776e064b58a10baf0ba13553c785c1e47f57b5f94c0cda8bc89d43d73386e57816c15b61a8ec8\nb4073f47041e20a8e548c7fb00e07ba3b9056c34eb4ab63bb0e7b48f8e338e8b56a17611a1b5f4c03b352450b86f1d69\na7b1a07b213205b682fc5b6acb7e76fdf97b280c26621d8f3b76b7c1deb3511957da33a4e358c8e8f3d98b2a8855d67e\nb797e67c2670fbd9844e8a68c585f404b035dc14bd4ec75c3f95f932c777f9db5d5f5df7629164af488fc1213035cc5f\n99618200797b945f595794d6468e5c618649554ad9ba896330f1cc844090eb956ae9fc23132912f9047085c5f0c3bf7b\n81194aa1319abf534cb3927af9adfb178a99d0e3e8c99ab1105f1d3b4fed40ec2971caf1d6647acb0c8d681eca53097b\n80673f18e4978dbc226a6cd4b128a1259d9a7f833879c6e2fbe24d69fef2c3c23a51a4f3e8d88fa4533434bbb0723661\n8125bf6c7dbb2fb63aaa3f53283559f172c788223674adbeb6d5bd17cfe888e6b87a79aec774917f20ce911c1f85f8e7\n884bcdb1878b14fc38adc9fb8b4dd0b3afde404fbeb664f26ddfebc81736018551f23e75ce4cfe4865f610bcd454fbd7\naec65c8d4be8316e98aa54888af01bc6703a0c5d04b69756ff39a0a947b66817ec59d76afe9f61a25749b5e890f03e02\naa457aaa1b014a4c5a8992847a187a23321bb43452c98745987d038e3b04046102ae859b7a8e980eea978a39d76a88ef\na9832ee63b08e19123f719bfe2fe742125f32463efa966c7709a98ebfc65277670e9ea1fa2d2d78b96bdc7523b0c4c3e\na87b6b1b7858f96d55064274f29fbde56067064962cf3c3e2ba3110b22ea633bc037a74d23543ce3307a46208855d74f\n897cbe4ab68a753020fec732dfcc052c7ed9905342b5a6fe0aa25c631f9ad9b659e0ee75d46f0df6507b6720675ee28c\n97c3b5f0d54c1fc45e79445c3ff30458959e406a069f5bbf7979d684195b4fa0406b87c1c008f4075bc9e602ed863152\n921e65d582ea9322ddfad1c855331c3cac81f53c700b96db5305a643c084eb6793094e07944bfd41dc02c3b3cf671530\n8f23ef1aca02a260a3b65d25b110f28d3bafca44727448c8f2d03c5e77eda620c1721b06681bd816ee6027664d76352a\n946a89b132ec0795aea9ff9dde7b77e7feafffe6e4a2f093042a7e6c71cd6ab87ce0ca914a1b5fabad4e1f96a795f163\na01e2de9db33df6511172123ad6f7c64074237471df646b32dd9aff8c15278e2723108e4facaedca97e9f49503f8c792\n99dcdcde45b2ea3f15279936feede5f7d3b63ca4972f335b0559c2fa6f9faabd8127aa892a36deb114357ca906553ed8\na3f8af37bfcf66b04d1896a4bd5d343f4733d4c3305369ac7e75a08f20f2004c10c642d2c7577f4e5c4d1f2cd851ac3b\nb7294d15a3d674a56099f97a1adc9e82c15e90832eaf1722df110fc2abc8634c51515e5ad8522015498a3753b1fa8c49\nb4f27f5062ba7a04ea0048b3025b5e3d5b5d319a9e80310c808a5fb4e8e77b38c10a0f3172cb805cadbcc8bc66d36ec7\naefe5decee0ae2dc372cc6cf4217daf97c4c908d145f100f0daf1ccdfdf641c78432c2e473e7e4b77dcdf2d4c2bb05f0\nacc84af7648a535ffd218c0cc95c8f7b092418c548815f1bafc286b1fe14f6ccb51b2044db3bff864d0bb70e88604084\n84d8e3dac0df6a22beb03742e1d4af684f139f07e2ea0f7fb27fc2d7d4f1e89b5e89f71af32ff115ed5e6092133535f0\n8ada001e1a03a823c4c056f636e77adc0f9dc08689d28de0d99e0feecab5db13abf37b41ec268dbdb42c75419a046c68\n87dac6c798d1744dff81d8bc3e0e04f3c9bf260e811685ddb9a9a8d6eda73927439b344f9a818d2103fad633de5a4a17\nad9929a7d8a7d5d5954e48281a87e5c84f67e19110d73296b9989a09c76767a57a8115629239ffb4d99dfdf9c52ef6d9\n81ac7cbeef8ec35a5c3b61cc887080c29e6cd3e08af37e45830d17400dbacfb374dd07bf370b979828c3875b2027d5c6\n97f92c9182953b7e10f7a1bbb6b5b5c40b8275eb5a6eec1e29874c4712814749aa8c409651380216e1ff01d7b8511041\na09794d0bbe7db013045d3fd857c1544fe6231d21afa3495fa300371f6301a3a0f4b8ea175b281503dd06078ff371ae4\n839bb58d320aa08116dd387a57a2b9bd9efc89c4cdfd82d0e47a00cabe644631d09be5436bd485df3b61b75ddf81a3ef\nb1cdaa344f783757e8b9c1f84421da3c5be4c69f019a8fd4c1aa5bf1a63e8970c99e35c22cf3b48a0e6738bc6ba7ce8d\n92af68e3216c78998208fb24b5ba0e645d0d3f5e28222b805668d7e9cdd6c033d3b22fd6df4c2d745d7f910d133cd226\n87640a4ea4e605e2204e5232b29a6c1c31152d83547eef14122cb76a0da52b8653801af48455a3ed713b9dcfee7b1ef1\n8147e5bf0c8f4731155ca0517ef3fae5a32b4d5d2d98ed0007b23893d8dbb7f8a1199c50c1750c2fa7c9cebe594b1bb0\na76b4473c63c3ab6103c729afd2482822e4150f3155af39983b0ff0766c71cb622455ce6304e23853661eaa322219d18\nb3e2f05ca551bc3adec0067e4034aaffd72e0b64ac18ae25452c996927976c6727966e26d213b032521889be2170800d\na8414cd14cb3be658e9e0004ce511ef7063439b1cbc3166a11de030613fde4b59caad4e91d426927863c55382afbf476\nb2f0f8ab99f4d0ea785ac84fdbc00b20217b1df59b30b51d9d209d489d53b69dd5d82cdacc16fd1dd15c3a4001595f50\n8b2025d5fd658c9bbed619f3e3f6ac8efe7aeff8aa9401bd66a7ceb0062c44b353608ca073f95be99204f0a913bb77eb\n94a46bc5a87291b42024b2137e623c70115b9c6b196604106bfbfa20f3f56ac7779763f56b580190d3cb2f1c648cada1\naca9355545118d0769cacf69c4b23d6d68d229cd8f68f1bc0c847c05569c5af6bbbd8c4dceb637b4a6b3b5c83841bf5e\nb0731992cab87c7116406b283a84707a34838bfa3284b0f6082dfabeaf41c5ac2b0ddc1b420547a1b0955aee92de2dc0\nb671f77588c0f69f6830a5b28e7d07ed161b81fa9791bb3a24aae6638e3aa5e186df74978a82549c370c18ebee04d4f0\nb5621ed841780f3e6681d880a76cf519cdd20d35197b112eeaa686764d57b5dfa78ffe1a294b6bc76b6e3949cd2a2369\nafeba2524659d00caecf089645611553187a6ed7102050f6dd20f5a19bed08ac7065912d88371ee06242897d58d652a4\nb78bfb83d44ced14a20135804aba3f00128c3ce1f302e95567ce4097b0d973414153fb305b9f156882a5a0554bf25973\n98510aede95d26b1adf214053eae051ffaf24894e2fa37961a91d0ff5392dd09388196648d95b73e90bd88f2587cc4bf\nb35c682d49c295946b9f120fbc47b95abd9ee86d294abb003a92139fb825b509209562575015856a270eb3eea86397a7\nb9641bf685571dd9c478dd2033a1f1b11cd3a662b26502c78595863b8e536a189674a9a85f7a253453ebfd1b99fbd841\nb2ad37036a59b1c9b8457972665720a6868422ed8157b6810a9c0783006103be34ab732d7aeb8629653edd18fd0f1717\naf0920cff05179a3896ea6ea322c39adf91ada5bc40fe3f6fb1b1b4e121e907c904bbaa8ca00468b3749f3da144d71f3\n8e269672818ef1e2f9e0c8aa65c84442fcd9151d74bb8e870cee8c0e3fe24526e1a5388b430cef47b67f79b4e4056bcc\naa29a16fe00ea3d143b1032b1dd26b8ce638f37f95c085c7e777e8e2784bd724bd5c38b1583c61a6ec7c451dd78fd3fb\n87452b7435911cc5f513b0c81b15aa04972ecbe3d7bbd0a5d676c96a8a311301c0e07fac925c53a350b46fbd3d4d0fc1\n869a81c351096f47748e41566ae7b77a454b1cdfaa41d34a5742f80df38fbf5cbb08924b6fdff58e3b18f05c62bbbbb1\n8b7bc1b0486300981147a40a449ada9a41afc06d735cce8bf0fab3ee94ba2e2ea57b1397e3cd31bc295352beb8334ef7\n93e93fc41adb2df279d95654921b4c2edf0d293dab58d0afefb221f777349ef88d0985b3447e3b935954a81f1580a92c\n970fa7cdca8324faf3e62348bb50d78f580b4f43f2e1c11bd8382d48d0074a3c55c6407203a0c9cb1c5f2163ba421ef4\n924983929e608d27e4a36d4ed919297869e3c64de51aca794d32d6e90aea546bf898d98ceca28a0b2187734821b78504\n8d395332529c703d943d68415d443332b5c1342ca9d9a59bfa8bd4ab63e93358c4b0dde6ce1f2e8ea9dc8f52ad7ebd95\n80200dda853e588256599e7f905add5d5ee7c74272780317694fbae39318ae9be05d5bcd7b20cf460069743f3d4ef240\na287d51d6359c9ef7c7ac1b20e479ce7d0146dba5606397bd04b7a622cec642508d5b45d51b31de71f9763595b6ac88e\na320396c075175d6599225cf2e1de8c7cab549f6316c07feb0f6eaa21f06b2dd29ab14fbdf2af4543b4890ec0fd08a4d\nb1e9fe230418d20368691058adcbbe30011bab3000422f0371015ff8bd09c60fb5fa85d18550d35b1c900977ca48f58b\n9718fc26a51783b971744933f20490e9b5cd9162f86b84788c4c5217f5409e37b5a39d628b18e5b35a757acf67596321\na0cf81fdb161f4f1b419c5e4caa36d4bdca2325f0cd25b119a30178016f171bd6fb88403e4e3aec026c4089f180d540e\n8ab1e36bd04625ee794ef04c4dcb8e004d61aceb2b62438377f49ad95dcf025ba25eb799280004941e555bf7172af6fe\n9257b9e3d14d37fc7efae49b0c68d36eaac546035f4a2654d566b3ce1b2c4564cbb03dc8ec66efceb768559a8a507a18\n945d1123b839637ab5154a1972c3c83a0ff34a3b1a3465de6ef0416b1950f649869a3ef88d7f1036648ee385265ce2df\n81449639d708860fc0229c94f754f7262e8a3c7f67960ff12dfd15df95f57a9ffcee2013e81978b7703dd42bd5d0816f\na865481deaae5a690fd53892791e5fa729db283b75a525a11cdfee1ce17e8e7f0b449d25f20b3c1b43da128dbdf98a8b\n98766812a65fcd25b853546e3bba618a3edc9fd61510e4f8ab60c038a7fa50d197abeec8776109df0f2119be9445ad00\nb1b8dd5379d903dc41d74e999b1ab693607a0d2905692f4fb96adf08f738e5d31f9d00df28ccb8b5856145ca552c3e3c\n99d20be7b511bec78a8ed03c207aa4aa9097ba39d85e18f1b8d52f65431ab7e9a773c7b9ac3e8d8b25458bc91bd00703\nb1b7c3563fe8cb33c7d3e0b89d00bdd13e86452ff507c2e69db7b3af06f247f139155396e9b0278753310dc63940a10b\nb3dc9c08451b1de7c9969b1e47574bffff50490f4a16c51e12390195d9e9c72f794790caf7b0a835d64e01fec995d3ac\naaaa4761a00022ede0809d7063d3532b7bfae90ff16f45e17a340ad4ebaa2fbac40728ccc5fbe36a67ab0e707566c5dc\n8319a1903314eab01f5442d2aee6ae9c3f6edfda0d9a88b416d0f874d7d1d05d08bb482102f8ca70a4fa34836d0840c1\n932949a6e9edfec344932a74d4f81eec3667ece1e8b8ca840ce07ffd4b5d6d8f01657c764d64ac1b9190f876b136490e\n904db1568128487e312fe629dd8bb920cecafd3bb9cad8b63e269ae0129f2f5c80cd82f0d81e7feca9835c3945a72d28\na17280693d30dcd43c85de8f6b02d5f30cb9097274ad680cede1ef105c903615b4c40f3c6aaca478642de324972514e0\n8d5f76e093aee71d0cdeb017fdfcb13bd068039746de90690ce150a0bfdbe7ddc4d539df0f82c2d2890a40b191900594\n96fa1f2196a3883cdd73c66d28403cbbb58f6a939a3697ee0d308d8a076393cbb4be86255af986869230ee410c01bcfa\na8b74438dc5cabd70a91bf25601af915c4418d074327a9b01e0190c27d3922c89bb9b41e0b366e82e313edda8f21983d\nac9fdc1a9b2e3ff379eb2370979372e13c4177bf4574f1490fadf05a7073e6d61e703e2d8eed9ce984aba317d411e219\na45a6c9b958169f2f8df70143e6ac3e2f6f969a4eed6fd9f1c620711bc2454739bb69f0094079464790c5429c0d8aedd\n8901cbdd1009864386577842c1e3d37835fddf834064d9613b4559ea9aef3084204e1f863c4306f874141f4374f449ff\nb6c582161691e3635536686825be9c4d7399d668a7675738417e0363e064dfd28acdbd8dbc9e34c1dab8a1990f1f0eba\n89e89ddaf3cacc78428f3168549c161283ca8337345750667c98212717b21e7d994eae4e45bbddacc832a18df1d79276\n84be275627eed8e1a73c7af8a20cee1ef5cc568cfeea7ec323d7f91b44e9653e9aeed47c1896a8240b99dde545f0e1fa\na779a54ab4f40228f6e2539595fb8d509b70aab7c19e1928c1be69ec1dc19285c3898cf15e5f8b8bc725e13af177fe17\n92e2a49d2b9b36349d442283b17d46f8f9bf5932c34223015ce62d2f285e7363b2c12232be4a838b5b6cf08e694c094c\n8b4e28c6f3f36caa2cfb82ba88066c830f8017bd35608b077143dff236f3181230166f5a5c02fa0e5272297331726aed\n85fd77d46162ffac4b8adb25baff0eb0512a53a3d01638b3a376ea34702279ce21c8e7d8884308c03e00c9bcc1a9fd29\naad5e46916ff1be29009b595d1d8fa160cc7aa01c7fbf3a68f445c87615790dcab1fcdbdceda533d182b6541f09f2f73\n948df7654726250dae393325addd3c0a20431c81f00470962190335ea4b6d9f7463d6f308cda46b92084c1f24390b1da\n8f577474dea132676504376c5542b730b6604fe3d965eaa194659fd11c52233bd0b11ab62e198c0f442327ff1c00e501\nae2f1001546db3e0c19700adad997cd9f765fe7a51a502cbcd9a2a07a3a5db79c8f603e05cf96d80b688cb6c9b6cd3ae\n953b68e5d9561088dd20406ea7fb6894cba33868a38ace38fc30b5813140cb15dd6dd2171befae5b4df2e4a9658889d8\n86c52901655ff11419b084a04da8fc3596eae59d81d3461601c0baff59ba59e3d1dd0b7ce719e741a3e97c013e898579\nb9a72dd5eff73f9912a28b55de073568efb3eb0241a10b77a2bfd4f30c2aa4fbfe0c89eb345c9f07fb725660873cb515\n8e7353f5f2932e4ffd95811caf46c9bd1a53643c27eb41a4ebd211f230955cd71a8b27e17cfe8aa708d8514c0de67a66\na096b8e66312a92fb10839ebe60189a8d1bd34dff55f7dfae85e4d2f53a1a4a88211c19fc84494f066358ddce82be131\n931c5cd82719d76596832b007969b5f75d65cffabb41b9dac7910300db677c1309abe77eeb9837a68c760bb72013b73a\n8ba10f5118d778085122065b55dd1918fddb650cce7854d15a8f0da747da44d7b12d44fc29ad7dc38f174be803db74c6\n8c971deec679372a328587d91fd24ab91043e936ca709c333453d7afd43ee256d08c71cb89f0ab0e89ae119831df6d86\na2ac28a58034fbd8fd518f409221bad0efec52670880f202e09c0530e2aabc2171ed95e99891790596ffad163d86c110\nb3354e3dfa8068aba4f3741152b9204baa4e342c1cc77e6dd1419cbaf8da1d118be605846b8609e997d6a62a11f3423a\na12ab65a213c9d95c24865fddc2dffe0cf9fc527dd6bcdacc1bd7271e79929a4ab3427a231f4f49d0530474e6cbc88f9\n90afd65b7e6973f8aafbe74da0f42441840d3c93bd69bc1bec8fa56824e7ca97ad1b427c8a85da7d588469bd4ccc50c3\na09175940c59489bac3d3da3a4091270d9118948cbbdd57f2bcc63fbf45b8010651c801d3e58dccf42733ce1d6b446a3\na843bbf286e3cecc1fe370ff1bcf5f1001bc2e95b34246625ff50d48ee62343e82fba2d25b8a4bd5f7b5ffe90920efa2\na3c4d1003219157fdbee2707ce07afa6c2a64ae8e450182c307ed7f070024071f30b12c4b0032960ff913c74e73a9976\nb24af3f68d66f825d06fc3ff94fcccebe28b1a0d4ba29c48d3a3c953b9bf7ae6707f193fef25e2dcbd2b74e483c774f0\nb0f657f7723184ef7d7e4381143f1ac8020d8c6c6f2dcbebb0eaf9870d61a81f2d452596503311e46d1b38f625d4756b\nb90091004fc8f6205c51bec68547ac82dba0f5525631e7632cf6efe54eecd9020729fbee6105d1b8012402d3b79c54aa\n8e3fa187713c60eb0a416d6900a894cdf81e6b6b69dae0bb64f6287f3c3f030cfa85c665f7aace1eab4937f380b8f728\n879bf0784ccf6725c9cd1ea8c49fde31c91c605de1ea664a33c2ce24c277ee45d20b66309f98d989acb2ff3b77e13101\naf3f3a3ddc4e11abd627d5aef8adffa91c25df5f0c68b4d2b5d51e7d9af3395ba4f6f7ae2325a6672847e1ecc6cad628\n973e667289e796d3a40f072e6fea575a9b371a9997cf8961677f8dd934619ddc47c1a3efe91bae9ef95acb11a8fe6d09\nafa81c5606de82f46b93f4bb6db3fc0670f4e0d1091388b138a66b3827322d95a56168c951c30831d59eeadc227500bd\nb83eff77db5b4c18574662942eb36f6261c59f655f8a9c3d3731412d0f257c8e80aacc995c4b2303058a1ba32522a434\n912e5ac9234b9445be8260393ff08e4859a7a385e800b74d1534eeb971f58f74cfb518dfdb89f8705d89fbf721439129\nab27c8ece4a51d23e22c2e22efa43487c941139b37ea1182e96efb54ca4809d8245eae0ebe8ba94f0ed4457896fe11b1\na6630585d104a745bc79dba266d9292bbdad346449c8ee8140a5e6e8a6194411df9cdbf3d3ef83468a536d4f052e9335\n8b8c128244da48e7fec641a882d0005a2d05c7138d86a293e6a0a97c76bf632b44767d0ce44663c975e7f9f9679e25e3\n87dbcaca67351a4e7d2297d7cdba4796d12f58857e7ee4abd0645563577ff33544a44cd84e50b3a3b420d6998de9b57c\nb859ba43df259d7f8e7fac70bfd7aae546d57a5dc90e107b174a95bf7fd3cf00f740c4434848e69b2a7e6061f66c1ef1\n99d6e20978fefc40c6d310187eb2ad3a39296f189ee122ed64d74f81033c3069d44f7a9d3988a1df635b609603a17272\n99a5ddf3420cc0c92b21f71a805245608d4995ead447d8f73a670d26d33e26920d5f07bfe1f6230bd5f15978055b4253\nb936ac0944d3c5e4b494f48f158000abb37b80b5c763f77fe856398c664b0f1ddbcc0a9a2a672db9278f08b4bafbe2ec\nb4af85fbf4040e35a686dd016adec037c99b47cc2e4dfccaf7870ee9e8c97bff30f3035992def2a9d4af323c0b3af8ae\na5ee32b8bd5f8fa9000da4da0bf00565659a43285393d37080b555d0166bde64d87317b2eab2d48a0e7b287caa989be2\n894d4ad58ecb1c9ebc4f5a97407082e56cb7358d7a881ba7da72321c5027498454f2c7fa2bd5f67a4b11d38c7f14344a\n965be9eeaa0d450dacc1b1cc2fbf0d5d4b0dd188f2c89aaa9260e7307a2a1eb22db6092fccb662269e9a1abfc547cabb\n805893c424aec206260c1c2d2509d2cb9e67ee528bd5179a8417a667aa216a3f318ed118b50d28da18e36c01f0805e3f\n972d7040d4963b35260ef0cc37cd01746f1a2a87cedc0dc7b0ee7e838c9e4573784ea743f563b5267eb3905d4fa961ba\n8c7156991d4c2e561888feaecf501f721b4174e7d14109e9deeac5a9d748301c07e11fb2b04b09799f0d34ff42cb77d1\n894722ac35af3d507e81d737d21e16c5ba04686f8f004aa75934aae5e17acd3e065b96e229eb011c2f34096f4c62048b\n81237937c247c88e8e31e2c72412189fe59c1daf65c5513489d86cf29ee922c0bb08e5f7890f09f4ada7e5262083d266\n8cf62cda2fe0d9a6b42aa2a1c483f4ad26378c7cc2c2d1510a76df7560b07dba8528b33aaacb15f7f20b9d4c7c9f61f6\naaf0921fb3e1920eee5d0acb59dcc268b42f4b435d60d25d30357edd7dd758d035919691bd15311d85489dfa2e5ee696\n92cec07be2247ef42002ebcaf65ec855611b8e893a5675796f2225f55412201b0bf9f4761924d0c8377b9f131e09e39f\n8e514a62ac1e91773d99588415426c97ad63e917c10d762fe06ace5277a5c3bf3730e4b9e5d116f8493b9ab8687b70e3\n83932df2d923a5052468a3ea87f7b55c6a80ede3594046ee4fe233046570921822bc16555b92ba6aeabaef9b1dc0805a\na2b5bfb249de3472113fd3f35bfabf3c21d5609da62a27ea6aab5f309c9068d94bc58ba03efb4ec11be06306d59e60e8\n8106cf3ebe6f0507be8c6e8d137987315fe3689ecb75bb27980f36ba5efac504baccea0e7603549b6d126beccc278804\na73ee70b6fe8c082443972102c453fc0e386852476cf22224fc0bfe554735c12f96037fbf10922795f4502c4f052b5f4\n932b27e175440169958504f3ed6400e7d6dcd5e716c19dcd0f15c56c04503ed133d5a993e111c016f141e32d68b29886\n96f7ce4595318e0b4a6b368f788ff82226aac676aed4ace343867f751de414453a9aaaabef6e6224ce5aedc3d5cf77c4\na950c1e3bc9a14484997013d44d876374b939af437ae7c821c131fb886063ee9fe7214a25a0c7084f0b07b99412eff75\na9dba3886ed6855303106a1bdd26010f294218684e1c178afcfea3f37a2f04fd01724a31d82de3449046617e3507a115\n87a2f776b32a6b550cf3ceeaf78db02819be74968d228b1d14e0d74a1cdf994bb500b7abef6619455e98d728701fac5c\n8cd887b07e335edc0b27e6a660cebb64d210741395be431d79d570139687b056557159407459799a8197b6079644f666\nb81a61fce00588909c13a90c1caa150f15788786af443ff60ce654b57147601f7e70b95659e01f470334a220b547611b\n8aebc51141544c5f3d3b99422250424b9800031a8fdfbf22c430907a3a446fecaa2392105d66d64b1c8e847240da4a6a\n90db7dc12baa02f3f86d3edadf9434e2b9318d4f6f0eca08276b765dbb38d8eb0d08be2fe70adf2bf16ceda5db08d3ca\naa1839894152d548cc6ad963de20fb6fcc843bc9af2a2bf967c63626b8ad19e900894d6106265f38f3afccca317c22f0\n848e27b741496988a582515c0c8847b2bfc6a001259396cdeea1e1b1d2828ca3a626693a1bf4adf3a3d7f8b1fa3d75fe\na0aa11754d4ee136ac3ca609b17bcae77758763b2016544ca7921dddedd8aafcc7ad5f2b337c8bf53084eb8e43ea41fb\nb8713b7aa1c112178195fdcc9b7024f46e6bc04c4e76c41abe620aa265287809200d98eaed6c9703fa97e81d6964f0ec\n8605b5b33309e9ea6823542b85383c496794b8481c577497aaf99ba90496e794dce405be615bf92c7b6361460e6b82e3\n826fa34faa7f83e063a7bf172addfc07badabada59cfc6604fdf481d29085251c0a67a1355b2cbd374e2975934b84cb6\nb45d131082dc16fa53af010d43eefb79200dc23d2f3ee26af95ac6a5cebc49c84a9ed293e534ed16ff3ef9a4a25456ec\n91bd6ce3c5396a7a0de489e49f0cdf6dce1cd2d0be7a410326423c3185bd1125ce1e610768be7f15f4e44b62f8834fc3\n903ffbe3d33fbf106c01c727dc3a385201a67ded70d4df623934882f69a3a96c909b027a124f3d70cb072b0046a149e8\nb405359db9d9ef4821a181b440ef2918c240595141d861d19a85867a5afa74d2972d22c988775eab441e734700bae4a3\n8abb756d027233c83751910a832b0ef4d28d100077f1c5d656720c94906f91d85dd0ea94b1cc0ed95b692efee14c786e\na78ee77ab476a41a3454160ba7ca4085d8b1f7057c63e76db8b07cf20afdeddd2250cd00771a6329133bb4ad48ccc20a\na41810271d8c37197aa9b3dfcefe3498e42f5978d3f3d59defff4676d6402d8575b40683834f184f143b6cfbfc859b3a\n90c24a0750242660bcc6d487358a3cc015730538a0a8beb00ad5ac2ef33cb8ca8a62121e50bec8f3d2f43900f8e3134a\n8b96c39695d864ef5796941754978a1fd612b369f6b77fe5ae6587beac936ee28190af8f0a3822b63060af35e49a5c8b\nacde2548883d0e63c0fc257bb9dadd919aba60a985b69ebcfa1bca78acca42fc1322ec30bcc8e7c188818f858d04ad33\n895c86ae9ff8d95f2707d4838a3bc8ddb05b2611f0476f014b9c150d0e8332bc73285037a747426f09ac8179ba4e19fc\n821761fe406e18bd86fa9ca9db99d382cd3b5c70c456f471fa3706d57763d147706304c75d54f51ce8f3115aa26e59d9\na803a80e3e8f47dc3c59ea23eafdec017458eac648b360cd42cbd075e0dde6f6f450b48c7646fb1e178c04f82ae51a12\n91f40e1b6f588bd592829ce937996452c40be0fd6c43793c607866701ac6a8c7227e0891d45c6e7b1599382b0a3fbdbb\n9408246d996a634a58689337f2526dfb3ba9ffef1d3ff91c32aa8cbbed900861ef25d6477308b67d76491edfcc70d65e\na492325a427f3df1c9c690c5b553daa8ac41f62f5ae55f425539222bacf959e2f67afabbba1732e120d3e7a6dcdf7049\n8fd0c3e15477cae228613a171b6e9ec29ddc63ef74854d99b638adeffe39f89f34346a42851e8445e855a9f2bbef0f57\nb735ed01fafa051004dbaad5e8c9e2faca8f6049ef9b590f256ea4d75b04594af12764ad4e6031735eae36f83179db93\na7d35f43fca06c86b3425dcb68a87186834ba9740664fd657915771beca4cdc0fa2fc9b4c2e9d9bdad8ec33543ddfa59\na1156e71e2db1b17df5da28747c88e091bd687bfee59d89096437ab4dc9a543fe5c5272d5023d72adbaab397a6fc94d1\nab06a58bd81b33a411bade8d8c5232d38fadc2e38507159edea6e2e104b8ebd65ca02b05335118f691d44197b847a4dd\n848b67a10f1e6ff8f5c228f226ef2ffeb67fb8f50925fc94cbb588d61896d9dc79726959e649898fd3354fe3ff7b7ee3\naa933397361f32b388edcf832f0db172a38e756b34d5f7a4a050fa7325058006c22cede26ee27917e8f1b0f301792bd7\n89e49e7f02cfaae4a4b9c4180c9f6559d76e3a45774955859d4147970b1470dac37bdc9aedca1c32a20b045049161590\nadc1825d5ab94fc719f25d8c9773f4d518134ed88eb13ac33cb910b2be3523ef9ef88d9e4aea2418b806e20108317bf6\n96c4b444c8a023da644f3a343ebeeed19a8392d2ce175992461451c318a54273b76c3574d8f2dceda2947ddd34d1a674\n8aa7e97e87c8c5b29bbd51a6d30396a6be1fb82b716ef83800f2c36d5b85467ade7e0f59d2db82c310fa92a9265f0b03\n9146c32d99f02c3a6f764dcd9b4807f1585f528ac69dc4f84e4380f6fda4f9d5057c375671d51e7aca2b2b4140e83da0\na10760a533d9bc57536bcaf65f080302086aa50225437efd64e176841544711828c23a15c49c0dd1f357d3f10722ab72\nacb0811777e17f7ae7aaba5f6fce81b759c067a4908730916195a2505c7450d0e6e2194c2ef0f241090597d58e70de47\nb24f161e9bcdbad56665e2490b5e4c7768390d4668cd69a04ed74739062dbe832636dd33cda89e9b0afa8c77e93fc641\n96b4d01106b831868a88ef016500ef2fa42d0ce87a37ca8ca4194a92a22c113edfe04eb2ca037329f3c1acc635148f55\naebbb95fb4f7adcc8e7a217aeb73f9e037cbb873d08c1cd9d68c6c6834511adf1af8b44567fee84327599bdcb734dedb\na9bd8b17300532fb94d028659bcafbe7bbdf32f8945baf5db4cfaa1bac09e57c94cad0ba046b4514044b8fe81ea8596d\na5557cbda599857c512533e7cadcf27bf8444daa0602aa7499cafc1cf1cf21f9d16429915db7485f0e9a1b5046cf01c5\n8810307c40bc661c478a9747ebf2a30e5a5ead942d1ac0418db36ba5db0709c476f7d19685cabe6959e33ec1f3bff914\n8829b741f41f2c32e10b252d9338deb486dba2f23996a44cf1dd888ad967a589d51329be34d764139f372a1043f6c2e5\na6b4728d18857c5fa082fa67bfb3b1d801e76b251b1e211a19c87cea5fe7ce757f943c85071f7a03a718388cd5690e95\n86da7f397e2533cd487f962ae58e87bea2cd50af70ef2df9ea0f29f70b5843cde664d30ec207ab84fc817f3851277e02\n8085776ef4ac6d42ab85b9d9135ecc6380720efd274f966544eeedf4684028197de76ecab919fa5414302597e1962bca\nb05a065c733033d223ba13d16baa7a97bd8c8b8b1f0e59a9bdd36ee17e9922d48eb39bd180c168b122088a77f0bf321a\na89343fe44a93023dcc7ef71bd3bcb6786f68e1885ad260edc56a52445d34757f476395ba7ad35437f89bc573c7618dc\na114a9cd6105b524f3969c69faa2e09afe21753a93361a296f9e0e3b4e3e63726ddf2e6bfd3ddc046043e50bd44e539e\n8a5611fec539cf681c05636bb580f29acc06f628bb012649ffa41ea6c1521194a5643d5dd843f09b6eb2c3bdb4d41acd\nade247c4011ec73ec90b72f35afa59a999e64ba5a7e664a4b30874fea53ba6a14a76a41b58a5f891a20d019e5f091bdb\n905b5d96df388160ade1ffe210d0c6d1979081bc3de3b8d93ac0d677cc2fc2dc1ef6dcd49d3947055514292a3fa2932e\na9520796ca9fccd11b7524d866507f731f0f88976f0de04286e68d7cf6dbd192d0d269f0cd60fd3d34011a9fe9e144c2\n989a1edf4d7dae811eb57a865c8e64297837ffeeaae6ee6ac3af0f1044f023f1ca552bf00f1642491f0f0f20e820632e\n879c8e63713f4935ed6e020559e140ea3073ced79d3096c152c430141272117b4fd9a9fc3eef012e81262df02ea14bd7\n95074738ac1540c0312274333acd1ecad9c5509fee883c4d9295fa8d8200f6e637c363de395f9fa612f05c0dc58fae88\na770e4fc595269eb806b113ab3187ea75c8f96b57bf9fcfaf535f3eedc1d4d7e6285a20990575de0ff09f62d06ed0692\n81283e5dfb6423439ff513eca1cc316941d196df8da2d1069d2d0b63f5289e630af2fd4119bc0144c002d33313372dab\nabd1b108e743887b78f698f2aba9d5492f87a22868d1351d705d93a1084fd45be67170c68a6e18b07f400d9a01cda8c2\n8509c3f67b92908cea8144f4e2a71631a66a61ac3547601c788907e52e380e5fe8ae4110aed95d13c67d3bcdd5b55a61\n8fa5a790ec5cce6d4114128c295390120869aac5490a82feebd3c37a167120df2e7fdfaf2a4050a7dfebf48fb093212f\n944753e1ea7d8bc727d46a7702077dc01dc0c6574e8263a16579b57ee155ca5901f71bb347a01a9a922b329d3ff75135\nb46bc1fd4590b7a6275e20036d247c5909fc549c78e95b64ae7ed96e3b05bb044840f19f7650ebfe7008ba09fa83c3c9\nb1e47e4d88e59a06c465348c6cc4181d40f45b91e5e883966d370c26622c328415c6144aa2f61ddb88ec752482c550ca\n8bd4f8e293e3f1815c7e67167618fb3b0ea76424bc0985908957cfcede36109378e41b4d89555b8c2541b4c447e00461\na70589a867b2bfb63d0106083d58475d506637148549ed35c83f14e5c8de996e1b1f3447ecc80cf5cd134ef4db9d2fb6\n8048b80ba6131d07370162724127b0f7cb17fa7f71855e55e5a75bd0a9e4fd71b0d0ea2d16ec98858e458528df8d06b5\n97326cb94bae7530f4ec3235770c5a7ba042759e789d91c31fedbd979e3c0e6a2c69e2af3c1979c6fe0094274dbd53ce\na18e9c1d3eabd62af4e31a4b8e08494f4167fd4598c95d0123f39c46c53f9e93f76615900246e81a286c782ac37c569f\n80309c59d4522b15aba617cd3c6238663e8b1c7ad84456346082c8f281140fc0edf9caa19de411c7e7fb809ca4fa3f4d\n8e450c0990e2f65923f252311623038899eeff7b5c2da85b3a224e0ef7132588b291b782d53c477ecb70f34501466178\n87843f96f41484e254e754c681a65681b9ae5c96c292140368743df9e60f7e2ada58ca2bb95fa39abe064b2ebf21eeba\n858e8d5bf2a1cf26d8af5036b28b831d450a446026f58a1734b696c18f1f41482796b91cab0e5b443dd2f0b9cffa52b4\n99627dd6bad8c05c5904cd23aa667d664da846496dbbb8452705c4ec01e1480e9c7295504a5a8529e4a0c842306b038d\nb64b33256c18b2c886a837a0c0730fdfe73befb0e2796207c4dc592c5a33cd51f8c2ef47c584dd5773abf9ce9c1b0082\n944f6da2a1546f0bfc4d98c3e73c79e935e33d208b6be26b0b5f8df6d0e3b74a5bda649853b99281bd3a3ec799a7dd04\na266d165435784d4e884640155e35b2a911b3f89e1e715986de419b166a36a341ba724877d80583fa3da566f6a828971\nadff2698409d0756e78c534032ee926560c13d578cb178d5073172d049ebbce32a92692f7e2033ec781b9b0d894ddce0\na91933f110756c699c28bf9e24fd405bf432002a28c4349e0ca995528e56a5a2d101b8d78afa90a178ff1a9bf2ba515c\n8e77839c0eb4da2d01e4053912cd823eddffbdc6b9c42199fba707ca6ab49fc324288b57be959fbfb11d59085d49324a\naa124517c76692036c737e987f27c2660514e12a953e63ff4bcb269dd18fc44dae95e282de8444bed09639ef6577af88\nb285deae99688f1bd80f338772472fa2b35e68887c7eb52c4ef30fc733812444c5cd110050275ad999d5a9b57f782911\n8877b0fa85b44ef31f50bdb70b879fa6df5eb1940e2b304fd0c8f08abb65f3118fa3d97ff93919038c1e452fb1160334\n8a89f3b50dcbca655024542ca7d93df17deff5c7d01c7da2bdb69e76b3e0b4490d85c800fb3debb4b0b4d20c9527f7ad\nb7e5dbe36e985354ac2f4ab7730fea01b850af00767a6c4d8ee72e884d0fe539bb81f2e34638fcf5d07b7c8d605f4c06\na85a1d78f6d4f9d5d83ec0f2a426708342d4e4a5d15625554e8452f6a843d9aa4db0c7e68caebdaf767c5b3a6a6b2124\na518078a9dac63c5bf511b21ed8e50d1ccede27ebfe9d240937be813f5ee56aef93dc3bf7c08606be1e6172f13f352ce\n91144eedebda4d1ad801654ef4ecd46683489b177ba1de7259f7dd8242c8c1700e15938e06c5d29aa69f4660564209a0\na16c4657bc29d1d3271f507847b5a4f6401cee4ad35583ad6b7a68e6c2b9b462d77b5dd359fd88ea91ce93bb99130173\n85b855778f4b506880a2833b8468871c700440a87112fa6a83fd3ddb7e294b3a232d045dc37dfc7100b36f910d93c2ae\n8d86bb149d31bfbf1fabcae1b8183d19087fd601c3826a72a95d2f9cedb8bb0203d1136a754aa2dd61f84b7f515acfa9\nacfe7264eee24e14e9f95251cbcfdd7e7f7112955a1972058444df3c2d2a1070627baefada3574ebd39600f7f2ea7595\n906bd14ecca20ac4ae44bff77cc94eb5a4ecc61eba130de9838e066e8766ed3b58705f32c650e1e222b3100691b3806b\n8f2cbc7b8593c4be941dd01b80dc406fe9dfdf813ef87df911763f644f6309d659ea9e3830ff9155e21b195fc3c01c57\na68eb15ed78fae0060c6d20852db78f31bebb59d4ddc3c5bdd9a38dbe4efa99141b311473033ff8f8ea23af219bc8125\na95cb76c9d23fc478c7e8a73161f2ff409c1e28a2624c7d5e026e3cee9e488f22225a0c5907264545a73e83260e3a4ec\nb76f90e55fa37c9e2732fd6eba890dd9f1958c1a3e990bd0ce26055e22fe422d6f0bcc57a8a9890585717f0479180905\nb80cc95f365fabd9602ec370ca67aa4fb1219a46e44adf039d63c432e786835bb6b80756b38f80d0864ecb80e4acb453\nb753c86c82d98a5b04e89de8d005f513f5ea5ea5cf281a561d881ed9ad9d9a4be5febb6438e0dba3d377a7509d839df0\na664733f3b902fac4d1a65ea0d479bb2b54a4f0e2140ed258570da2e5907746e2ac173ace9120d8de4a5e29657ae6e05\n9479722da1a53446e2559bb0e70c4e5bf3f86c0ce478eede6f686db23be97fcd496f00a9e174ceb89ab27f80621f9b80\nb707fd21b75a8d244d8d578f3302d1b32bb2d09f2bd5247dff638d8b8b678c87d4feab83fe275c5553720a059d403836\n93214c16831c6e1d6e5a1266f09f435bbed5030c3c4c96794b38d4a70871782002e558d960778e4465b1ff296ffedad8\n8648f84e18eb63dad624e5fa0e7a28af2ee6d47c28f191be0918c412bf24b5460c04bf2b7a127c472914a0741843f78b\nb67f61e75d6b773a6b58b847d87084b94f3cdac3daa7bef75c2238903a84250355a986b158ff96ba276ca13a6035fdd6\nae9b094b7b5359ee4239d0858d3755a51aba19fce8ad82b0936cca48017523319c3309409ea6e9883a41bece2077e4d8\n8d1d8e1fba8cebd7a0e1effea785a35e16b1a10842f43e2b161d75add11eccf8f942d2ae91c20eef6c1a0c813731ea9a\nb82bd387458e3603782d5e2dec32ae03890a3fc156d7138d953f98eff4200de27c224f626e3648e80cd3dfc684c4790f\na6dd02a89ad1c84e25e91176c26355e21a01b126c1df4d22546159dab9d502dbc69bc0d793a017c1456516e4aa5fa53f\na9ab74a5c5459b8500beb0ad13e9cfe2656e966dc9b4f3f98bec7588023b4ddebf74e4fc722d30423f639f4ee1b2587f\nb03e5f33ab7ecec12cbc547038d3fa4f7ea0437e571891c39660c38d148212d191be29e04eb2dc001b674219b7a15a9c\n925df4fc6e898ca55090ad1a8f756cc5014167a042affda5b24896eeb6aac408545134920586a8e1a2b997de9758b78a\n98c8580fb56ed329fad9665bdf5b1676934ddfb701a339cc52c2c051e006f8202e1b2b0f5de01127c2cacf3b84deb384\nafc3765d374c60fac209abd976fe2c6f03ce5cc5c392f664bb8fac01be6d5a6e6251ac5fb54cfcd73e3b2db6af587cbb\n8e7e98fb5a0b5b50d1a64a411f216c6738baaca97e06d1eba1c561e5c52809b9dab1da9f378b5f7d56a01af077e4f8cf\nb724bf90309651afb2c5babaa62dc6eac2b8a565701520fe0508cee937f4f7b6f483fc164b15d4be4e29414ce5d3c7d4\n9665160e7bf73c94f956ecb8ba8c46fe43ae55c354ce36da40ccc7594beae21d48d9c34d1af15228c42d062a84353a0c\n8600ab3aa86b408ee6e477c55572573ed8cfb23689bbdadf9fccb00161b921ec66427d9988763a7009b823fa79f8a187\nb0d8d19fd1022e7bc628d456b9bd1a2584dce504eb0bf0802bdb1abd7a069abbeeccdb97ce688f3f84a229342dbc1c33\n8f447d5e5a65bb4b717d6939cbd06485b1d9870fe43d12f2da93ca3bb636133a96e49f46d2658b6c59f0436d4eede857\nb94e327d408d8553a54e263f6daa5f150f9067364ded7406dcb5c32db3c2dffd81d466ee65378db78d1c90bc20b08ab3\nb58c02781b74ef6f57f9d0714a96161d6bfa04aa758473fb4d67cc02094cd0c0f29d0527c37679a62b98771420cf638b\n8cfa0a687ea51561713e928271c43324b938aa11bb90f7ffaa0e4a779b3e98899f2af59364ce67b73a46a88748c76efa\n95d6d39c814c5362df69116558d81ce6f1c65fb400fc62de037f670d85f23f392c1451d43341c59bc342bc31842c8582\naf888b384c52d9e04e4db6c4e507c2037eb5857e9bcc33acf84fc3a02d93cbde8cce32141fce9f5fec715b5f24d56356\na7822bbc3c236fd58bd978f0fc15fe0b60933a0c953db6436a233441219418090ae0c07c490a6548e319029771cdaba7\n8c53729f750922e5eb461774be8851a3f40fe42eed170881cc8024d590bf0a161d861f5c967144d15cdcdc3dc6b5cf88\na052a25a4aeab0d5bb79bc92a6ae14b5ad07d1baca73f4f6684ccecfc7ea69bc21eadeb9510452fdba116c0502dd698f\n923946b83d37f60555dbac99f141f5a232728c6eb819a37e568c8c6e4d9e97a4229fb75d1de7e9d81f3356f69e6d36f1\n8cab82cf7e415b64a63bd272fe514d8b1fa03ba29852ec8ef04e9c73d02a2b0d12092a8937756fdec02d27c8080fb125\nb1123314852495e8d2789260e7b3c6f3e38cb068a47bdf54ed05f963258d8bcabaa36ccbea095ba008e07a2678ec85a7\na685b779514961e2652155af805996ceb15fb45c7af89c5896f161cac18e07b78c9776047c95b196362c9ad5430bcb22\nb734dd88f6cc6329c1cb0316c08ade03369a11dc33191086c6a177cf24540c7ceee8199b7afa86c344d78d513f828e81\nb0bf492fb136ecdb602c37636ed4deef44560ab752c0af5080a79c9f76a1f954eba60a0bf6ba8bd7b8cac21848c29741\na5c74682323e85ac20f912ab9c1d6e1b9246c4c829dca40c8a7d58ec07ea0ad3524be30623f351269552f49b65a1245c\n837403b9cf830fb33ecc11a7c8433e07745973c36acdeb3fc9ea8f7d8d690d462e1250b7410f79f2f4180fe8f3962a4f\nb03d64b944d49c83608f2c5b9c14070c025f7568c4c33d4eeb1da31d07f0bc5897e498b35b50d557ee129f0c3c68e254\n827272aab8bf757e2483156e00fbebe1093a58070dd3af9855bbf946c7abfb9c8a850a6a8acda8c620902f391f968b8f\n84c4eb863a865282d321302d06b362f8bd11c2bb0090f90ebffedd3eb3e7af704cff00d39a6d48cbea4262942e95200b\nb044eb91653dc55dce75c8d636308a5a0dae1298de4382d318e934140a21ca90e8a210e06fdf93aadbbeab1c2ef3904a\na8c08955a4378522e09a351ecb21b54025a90f2936b974068e80862803e7da2b5380c4b83b4b4aad0409df8d6c8cc0cb\na763a5fb32bd6cb7d7c6199041f429782deacac22b6a8467077fab68824dd69343ebca63a11004c637b9cb3129dbf493\n8c44c8afa9a623f05c2e2aba12e381abdb6753bb494da81f238452f24c758c0a0d517982f3999d2537b7279d381625ed\n8613f47fda577cd3bda7c99b80cf4b2dd40699edfd3df78acb5e456dd41fd0773bc8da6c5e8cbf726a519b9fb7646ccc\nb21a30d49d7e1c52068482b837a4475568d0923d38e813cea429c1000b5f79b8905b08f6db237e2eccf7ef3e29848162\nb9bdf4915f3fbb8d84cdfd0deedf2c9dc5b14f52bf299ef5dca2f816988e66322df078da2c54b934b69728fd3bef40b5\n993b45f389f55eba8e5ba1042d9a87242c383a066cbf19bc871b090abe04de9ff6c1438cb091875d21b8c10fac51db58\na85a95d14633d52d499727f3939979a498c154fd7ebb444b08f637b32c1caf5cca5e933a2f5d94f26851ae162707b77d\nb9874c7c4be1c88a9646e0c2f467cd76bc21765b5ab85d551305f5ec0b4419e39d90703d4ac1bb01feb3b160517e97b7\nad6771177fc78812904c90594712956357de1533a07fec3082ba707f19c5866596d624efc3e11773b3100547d8f6c202\na79f31921134f7197f79c43a4b5d5b86736a8d3ad5af1bdf4ad8789c2bfe1c905199c5e9f21e9f446247224f82b334f8\na7f1b6c45321222a350a86543162c6e4e3d2a7c2dce41aeb94c42c02418f0892dbd70c31700245d78c4d125163b2cd5e\n92abafe3ec9dbe55c193fb69042500067eb8f776e9bf0f1cb5ab8eb12e3d34986d1204136856fb115c12784c3b8dea6e\n89bc761238a4d989006ca5af5303c910c584fe7e6f22aa9f65f0718a1bc171e452c43695e9f5a591725e870770c0eceb\naa0e44c2b006a27d35e8087779411ba2f9f1966a0f5646ff6871bcf63a8b1a4a7638751b94c9b9798ccd491c940bc53f\n8736fe82862b8106e7fdab7b5a964d87ec291a74b8eb1cb5a6c046a648c1b686064ef3d52297043b8940bfe870c712f8\n956a3def1942f05144d8e9c3a82fd2d3610064b53b9eefde3d5594a8f705bf8f6849eb2c22181796beffeba43cc74ee4\naf27416d00cf97d5a1f4a1b6b51c010884cceca294f1151c3b684a3f83c3c8a3c30771df1166d833cbddf6c873c400c3\naac3b8dca2336fc4ffc63c362df461289e4bbd3418c621bde6c581d3ecedf66e2b3e523d4db39e3d8ba014577bf85efd\n94c3a8167f62074e5b28c2bffe4b6ce645439a9a0c5da3ca1b3ee956590a465d6f84a8a4dbbe9070ffbd6bbc734e4d62\n95e23ba6986d25ed4451215da05bd72c5491528271726d79a94c8cb16aef1c85b190d6c5b8a3a1191c7cafbab1dccf0c\n953e3dadb5ad68f7de31ac09692948655d174fe16d88b96930ef35b331da7f1dbc4c17863cd07b4ec3135b5205891a27\n915d018f18b5d63cb3301c2bb5c6e85e75a88ba80663c964d06575b6bacbbe59139d030b218ce0998271d5b28c00b26d\n8c871ba3dd138a908b2f7effeea0e71df096b23e0dd47cab10b9762b250abfd1221da94a8ee884e05bdf02271fb85a04\n96bad5c6ebc3080ecbe337409ae398bbeada651221c42a43ea3b7c08c21841ddbcfde544c9b8d4772de6f2ce92c0b963\nb5dbcd0b1c44c62108841558ec0a48df4b327a741e208c38b1c052321eda6e6ad01af71d49dfcdd445ab6fa6f0c34e6d\n97dba59219b69e8aef2659d1f10bbea98d74aefff1f6451de3f41be39acbac0122b8ff58b02e90554469e88911ec3547\nb7e5682ec306478be4858296f5d03364a61f3260636a4242f984d351a02e8723378496beb30c4ca22def9c9ca193ea70\n9656a7a3df4d11df3d8bc35930dff70a5e78a488ca57bba20bb06814fc390fc6c7cb3f39b22134992aad196cced577de\n8b269695aa63eb56d0324ba984279dc4c88e565321f1d61d553622bd4f1910d5eff68393d3a830eb924472bd478c2aa3\n9177bcd04b28c87bc0440268b4c8995c6790cad6039594971b2c177f0e197055231e776927d3fa30d98fb897a2ba401f\nae0e943973482001c4f214b9da82e1c27e38aa254d0555e016095c537c835d3702bc2de5c67b234ab151e02b3b7a43a6\n82fc719a7d38bf4787fe1888019ad89fbf29beb951d2fece8686d2beb9119d0c8c6d13bc598748c72c70d73d488140ca\nb716dc66f87eb16b95df8066877353962d91bf98cf7346a7f27056c2a4956fb65e55cb512af278783887ab269e91cd76\n81d58cd8bc6657362d724b966321cd29a1b5cdc4601a49fa06e07e1ad13b05e9f387ca4f053ed42396c508cd065c5219\nb32ad0280df6651c27bb6ddbdc61d5eb8246722140a2e29c02b8b52127de57a970e1ded5c2a67f9491ae9667349f4c46\nb68a2eb64cc43f423be8985b1a068e3814b0d6217837fb8fbfd9c786db9cca91885c86899c50a1242040b53bf304ced9\n85887515d4e371eabb81194cbc070e0c422179e01dbda050b359bd5870449c7950e6b3947b7a4a0eb68199341cc89fc3\nac5fff3c27dfbab78eb8aad37ac31cc747a82401ebf3644a4f4f5aa98d37b8bf3b3f4bd8a3428b32a127c25c9e19d239\n86fceaa6fbf8913553a9e1e907fcb1f1986d5e401a7eafd353beefd1899d571454fea96ff5b2a21254d9fb693ec94951\nb6778bb296d3f0de2531b67d36fdbfa21475be0ca48b9dfcc38f396c41b557823735ed0b583e525a2bae1fe06e04058c\n898088babeb5b9866537d6489f7514524c118704abd66b54210dc40a1c1ddb0a1edf7fe0b6e0db53b836f1828ecf939e\nb27854364b97274765f0fb8d1f80d3660d469785d1b68da05e2bd1e4b8cbbe04304804d4c8aabb44cf030eba6c496510\n8c55bbf3603dc11cb78b6395ccbc01e08afcef13611f7c52956b7a65ccf9c70551bff3ae274367200be9fc2d5cb26506\n947726f73cd6281cd448d94f21d3b91b96de7ad3ff039f9153befbb5f172db9f53cacb4f88c80a3db26e6a0f7a846eb0\na7b733a05e97528812d71cecb4f638a90d51acf6b8fcbc054787d6deb7e2595b7b8d1cbe1aa09d78375b5e684a2019bc\n8d5ca6d161341461544c533314fe0a6655cde032c2d96f0e4ea7e41098b8b39fa075d38e2d8c74e2d0308f250d6cf353\nb960e9f081393e2260b41f988935285586a26657a3d00b0692ea85420373b9f279b2f1bb2da2caae72dd2e314045f1bd\n852a49c7388c10821b387c6d51617add97ba72485f52be95d347bac44c638c92e9c6a44ba0d32afc4d59178a497d944a\n8412162a65147e1334ad5af512982b2b48eef565682b3f3e0bbe93fbc5e1103db9375a0c486bdb1b2c57e4cb3a8e7851\n8f52c3eb5d4f1e1e82cfd2b291d4910195427603b796f6c311deb35ef14a01a57a9e6cad39619ad108f3e86f384f9e1c\n88d221088f2bf0103c53e44d0d96cd7881ec2b0a965db9121a47481771a8b796edd5ac23c4f9c208a171dab301f7d3bb\nb49c3235e8b3617ed08a1891b9e2bcb33dbdacceb94ca96330555b7e00904fe6a749ced9312b8634f88bcb4e76f91cb1\na85834215e32f284d6dfb0cbfd97f6cffc7b9d354e8f8126d54598bb42d7f858a2b914cf84fa664069632db2ff89a332\naa3d48eb483c6120c27d9b3e3d0178c1c942632ff54b69f5b3cfbc6ad4ff5b2b9ce6eb771fd1eea8edf4a74c97027265\na446cfded353cdd9487783b45846402b973cdeddf87e2bf10cf4661610fff35743cc25e8d3b5771dcedfb46b018a5d18\n80998377b3b393ef3073f1a655ad9d1e34980750e9a5cfb95f53a221b053ddb4d6985747217e9c920735b0c851d7551f\na35ac469790fac6b8b07b486f36d0c02421a5f74ea2f0a20ffc5da8b622ac45dfccabfb737efa6e1689b4bd908234536\n8fb1f6d8e9c463b16ac1d0f36e04544320d5a482dd6ffaec90ea0f02b4611aaca984828bf67f84dcc3506b69af0a00a1\nb6e818d61aea62c5ed39c0a22ccbb327178feebdabda0c9927aa1549d2c5bb0637785c4aed2a6d9a7b4989fa8634c64a\nb4e7208d16018bf67caafe996d436113eac619732e3f529a6efb7e6f094d8ebea55b7be0e122be075770f5957b6ea6f0\nb691d38b552befac61f6d367287c38d01fec73b7f2efdb6713ca30314a37fb7c177eb111fe6bee657f2681014e07630a\n9817587e418e6e7e8e97ae27067f17b55d25dfb14e98f63f530620c855d9a348c9fa571c8508e2741f902f8b9fdc0c5c\nb6a6e5ca779ba140bf1d84cd5394ede8262f7479637ec0087a4b152243a1774ba916d8115ce759a3bebd1b409de5f2fc\nb53d1c84ad766ff794bf497db3228efd2cc8ed5fc1958d89c1126efdff361610ecb45ea8e329b39035ab00a66c1259c7\nadc31333c507c8e0f4aa2934fcdca57fd9c786722a50dbd5404e129541f7ac182cc7373bf14e1e4e06e6cf94b31b90eb\na82b7fde4642d982d95cec669efee140ad797a2442c7f6620580527d163accbf021b893446cbb8038ea82fe25b15d029\n91f7acf8a8903979afa281646fdecb54aa4d2ed905748e156e92f0910de268fa29d67107d40863935d677d1de8039be2\n86fea71c6d43a7d93216a92fc24dfce8521fd4534a9558b33762d002081247867a6eff54cad7116023277fb4049403ad\n8ae5369a7f9f4c91f3be44b98089efd9c97c08f5bb4cd8b3150c115ecd86288fa0865a046a489c782973a111eb93966e\nb6fb9e829aa2c81c2d9eac72bb2fd7f3a08e0cd763532c2ce3287444d33cf48b3621f205e9603ec58525934b61a795a9\n83e35ca808d84e41fc92115e9f6e283e928c3a614e6dfc48fe78c33b6411262e7bfa731eadb1e1937bc03cff60032e1d\n832fca5196c95098ad47b7d24ba2f9d042e1c73ad2273edd1c2ce36386796ccc26e8567847697f3fcc2a0536a2a2087a\n8fdb7038bc8f462ab2b76bf7053362f9c030019f1b6105cf42219a4e620ecc961e3eacb16a8e581a562a97f1418b0128\n8d3a5a404b51b1ad8ce3b23970e0d5cc57b573922341008e3a952a1dd24a135e19e55b79d86a70cfd82e1c0e9630f874\nba00c025c1c21c57c03cdfc0bfd094b35422281ff0a64b68b240617aa58c6b18800af5f2047d3ff9068bbe987d6c7980\nb468f0dd51964b3806b0aa04f3fe28a035e8f5567fc7d27555be33d02701a838b8dbfe1348b6422c4eac46d2c75c40c7\n8a73a18c97da9958903c38584b08d0e7e26993a5d9b068a5e0e1ee0d8a873942745cf795f94f7a3d3ba88790a9fbb2f6\n953a0a40c2c8102723736854d13b228698c14a02d85c8d2e61db1a768019ac305faf0d5db62ac976430ce087a5b20f1e\n8998219da6b34f657cb8a621c890a52cb98c2bc0f26f26e2af666eebeadadc5e8bdf4f830a91d04aca8ce186190152c8\n8941e08c3155ad432236ed05460420a05dd0aaab30477493ffb364b14c00ea5b9183d30d3442b6321d2d20c36e4f5c7e\n93f293ff7fb56cf5b03aee6f3ad2ad78444398ed5b3be56d7bf5b56b5aa5a2b980d13895dd57a5726d1b067c20cc55e2\n84a16f313e3f75e31824f58d19ab24c6611fb4c75140a7cadc3c166f68819547c1d0ff7f7d13f5d8ae30dff1d80e2aa4\nb6e3e830b15039d3e28b08f5465bb089eade11ee3bd80afe39e010df7db1fcf0c56d698717677a41ddbc91eeaf6544d3\n95e928e6dfff51351281568ae72da7d1edeb6e9fe01f30af0499e7505ba35a22b5bb919d41bb809a432dce83f3977663\naabeeb60ca46f9b0232ff82ea7766dcab8cc5aaf9d23539f30174f9486640bc9312868ca493b59b314519fc399973e47\nb393a11e957d0bbb3ecf617b075b5906a3450b348e62916c04791b366f0a7397cccd6648440ac544bc30526e1f95aad8\nabb5bfc3964a6d246da60bd809d0ea6daf4f8222efdc12ceb6730194e85f413ee7eb03bae300abf7ea900dbbc3d08971\n96c1bd1d1d216a4bfbcf000c123f296c0d31e1684e9e3884c14df23bf528c8d599f82bb98fcea491716b617216a8e0be\n92d1e570a56f1741fd9f3d9f488cc336421c6256c14a08d340a63720be49b0029e3780e3e193a2e22bf66cc652fa22a3\n8769c08551e3a730e46f8e5d0db9cf38e565a001dfb50db3c30fa7fa0e98b19438edc23c6e03c8c144581b720d7b33a4\nb850bd67fdf5d77d9288680b2f6b3bc0f210580447fb6c404eb01139a43fccb7ed20051999ae2323ea5a58de9676bfb4\n80285da7a0aaf72c4528a137182d89a4db22a446e6c4a488cf3411937f4e83f7b00ec7549b0b4417682e283f91225dfe\n80520368a80b97d80feb09dbc6908096c40ff7120f415702c1614d7112b0b57f6729581c71f4a3ce794ac959a46494ff\n9817b4c27a490b1cd5a6337e7bc7e8005fa075dd980c6bf075ddfa46cd51cc307ad1d9f24e613b762a20fc6c877eab41\nad66bda1a3034ec5e420b78107896ecf36126ce3ef9705163db259072dfa438c6107717a33572272062b9f60cb89557c\n876114ef078c2915288e29c9abe6b0ad6a756b5ee2930ba1b8a17257f3f0557602d1225e8aa41ce8606af71ada2a971b\naa3d6cde4c3b9d3d5d0c77a33e67f182a3e1cf89b0921423b2024236171955b34afc52b1f25b1dad9da9b001371771d7\n984d3e3a72412d290e3459339757af7520d1739c7af0cbcf659c71999328db44f407d92e8a69fea11625612c49eac927\nae890d0faf5bd3280dcad20a5f90e23a206661be8842375fea2ab22aadc500849ffbc52fe743b376d46bb926cedae6a6\nb1f231f3f4d710c3fe80099faeb56dac67c1baf53b8fe67a9920fe4f90e52cb9a4bf19211249a6456613b28efe337f18\n8caa54b418ba609d16520af3dff2e96d5f2eeb162c065a1763beb926547b2cfb3ae41d738db2c5681a9bc8bc9e6b9a1a\n932157ff56c5ac29cf6cf44f450c882b3acfbb9f43d12d118da3d6256bde4e6eb3183aea304ab6967f37baa718ffec99\n9360bed8fc5b6aac36aa69473040689bfc30411d20ffb7275ef39b9ff5789f9055d149383ce9f0f7709a1f9d683adbfe\n98b5b33209068335da72782179d0c7aeeabe94b5560a19d72088fe8323e56db7ce65debe37a97536b6b8a0ca3b840b61\n89a385c11be40064160b030a1bb28c3921fc8078522618a238c7ea0f86f34717ed9af9b4e2e20f5128e5f7fc66ad841e\nb615703cbc64b4192990cc7e4903b74aed6a0076ce113b59ef7719197ffa46fb29eb78ca56b49873487432d0625c0faa\n90f0d77abae9d3ad73a218e5ccec505ad108ea098451461567ae8ef9661606ca8e78df53b5d628b20b7037bd24622330\n92e0e7cc4dfadc5fa0ee6da0c8de0493030db6e54ba0317f52f232a6708b732068b6077bd13a17eb7eb40b88368085b5\na24dad20094985bfccc6df1343506ed3bf9dcbdf4b2085a87627a5d71f7568db067304e465f8f380c5c88e8a27291a01\n8629a45a10619354c84bdc2f6c42f540eab5a46f53f2ae11970433d7a2aef007897590bf31dfba1c921614c6d6fe1687\n84ac64040d4206f82b08c771f375da4b7d752e41d2aa0da20ce845f6bc1b880a855d3ee966bca19b8ec327b4b43e7f0e\n9608e6050c25996c052509f43f24a85cdf184135f46eaac520a9a6e78e0d44a6cee50ebc054048c708aefde8cd6651c2\na32032b0e0d7cc35e480c328f315327f9385adb102a708c9ba637878deb74582ae26bb6d6e5f8c9e3a839b0e0154b82a\nb7e3c78d63acc6564a49e9f00b0a820b56d4f37a2374af1f7f1d016268011df9e7af0670ed2b0eee961f15aa948328dd\n8b88bfdd353acc91ad0d308a43e5fb40da22c228f2fe093c6d6904d70f69c6203f56636ed898b05df51d33f1095ef609\nb1d7a430c51fc857af55047683fc18c453b013527196c5e1bf776819a3dffca802217e9249ae03f084e2ea03ad67fcc2\n80558e28a819ddb5e72e97c54be0f57c173ccf78038d360d190b7f1350a19577b8e3f43fa2f7bf113a228cd3b965b2e4\nb4b2ec44e746c00dfc5661ba2514930934fc805cdc29adc531c02d28ce3cc754414b0485d4ee593232cd1175f357ad66\nb57cee5d32835f76572330f61ccd25a203f0e4a7e5053d32965db283aad92f287645533e8e615137208383ec51b1fd99\n930256086b419a8a6581c52590d0dbd9f8a3564c79424198fca3866b786df2f6098a18c50dc4abd20853a7184b1ce15d\n8e75fd01181cffcd618a983492390f486e8c889972a46c1f34a4e1b38f384e8e4efc7e3c18533aa2057da9f9623e2238\nb375d927dd988429f9e2764e5943916131092c394fce13b311baa10f34b023dd3571da02553176091a0738cc23771b9a\nb9e28e4c0d0477518034d000e32464852e6951c8db6f64ccdb1d2566f5094716213fbf2fc0e29ac88d0e79f725e3c926\n963981e99392afbd2b8318d5a6b2b0cc69c7f2f2f13f4b38dddbfedb2b0eaf0584aecfcbda20a4c60789c15d77970a58\na7804e1977aa77c263c7c001afa6cf568032dea940e350d6a58ce4614f1a91c13ae1c78bfea740c229dce2444556976a\n8787204177da3cde6d35cd3497fa8774d244f9faa9f4bd91b636a613a32ce2ea0326378cf9c4cf475e73ef751b355c4b\n895aeef46a07152a04ec812f1aa1fd431389fa0ef6c6e96a5b833e70ea14073bc9984757a8ee456dbec9788e74e6f0ca\n8d17f0e5826783440d1f0ec868003510a4d9952bfe4a638e44a36d94482ac18ba70ef7ff773bdf7a3b62d714dcf0fcba\n810d5e36b31310b2e054a666d3b3f7ed16dfcb1765532d87ca2a3920316f0187303c27dd113db145d47e8961062a6c03\nb4e2fb48ae04cf8580bb6a28095076c9b95e5f13122b917328f334d4ac8a8648ce442919e28319a40148987350ab5303\nb85549a313544fa1eb3ceb78473b7d3d717fc85b808de7b79db7dbd0af838ebb020622a7503f1cbacab688dddb648f84\n80665adee057088eae827a5fe904ec3ad77d8843cdce0322d535e0659b4abc74a4d7ddd8a94c27f2def5c34ac2c038ee\nad72fc19c2ce99b5b717e35528fe7d3ac8add340b02ebeb4889d9a94c32f312a0b45ea84d21c54f84cc40ee4958b72e1\n99d530c843dff89a47a5ee8c87303ab18f8a82b0d5b808fca050354b35da5c5a5594d55921c6362d6cc917d75bdc18dc\n99c7286c293e1be21c5b2a669dfdfcd5aa587105d2886fc5a8eaf8984da4e907f7d7b8c2362d64a4f1621b077a2a08a0\nb4a39e1a9ed5d80c9563c3ca3fadf76f5478c63a98f4346a61b930c9c733e002f3ff02bc16abfdb53d776184cc3f87ba\n9378ea71b941979404c92d01fb70b33fa68d085bf15d60eb1c9fc2b5fcdee6379f5583389a3660a756a50019a2f19a69\nb68e17344a2bc45b8e2e19466b86dc139afefbf9bad2e2e28276a725099ebac7f5763f3cb52002261e3abe45ef51eb1a\n819e64dc412b2d194d693b9b3157c1070a226af35c629837df145ea12ad52fa8eabd65b025a63c1fb0726207a58cdde8\na5e8ff8748419466ff6df5d389125f3d46aedacf44eaf12cbfe2f68d218c7d5ab6de4a8279d13aecc25f3b1d98230894\n91560d54a9715cfda9cf7133ae51c432d0bf7fcbaeb468004994e6838bfc5ddcfa30e4e780667d0c4c0376780b083017\nae8adb3309cc89d79a55ff74f129bb311fe4f5351a8b87600a87e0c3ba60825f71fccf67eadcf7e4b243c619417540fd\n8d92cc1a6baa7bfa96fbce9940e7187b3d142f1888bdcb09bb5c8abf63355e9fb942ac4b4819d9be0e0e822d3e8e2e08\na6e8b79fdd90c34735bb8fbef02165ccbe55ea726dc203b15e7a015bf311c9cac56efd84d221cc55eaa710ee749dbdfe\na409b151de37bddf39ce5f8aa3def60ee91d6f03ddd533fce9bf7bdbeac618cc982c4f1ffbf6e302b8353d8f28f8c479\nb9693975ef82171b3b9fc318ca296e4fe6110b26cbdfd653418f7754563fa7b6e22d64f8025ee4243483fa321572bfe4\na039ebe0d9ee4a03ade08e2104ffd7169975b224061924cca2aae71464d250851e9f5f6f6cb288b5bf15df9e252712a6\nb27834db422395bd330e53736a001341ce02c9b148c277dabac67dc422741bfa983c28d47c27e8214cd861f2bad8c6f6\na2bafaf4e2daf629fd27d7d5ac09fb5efc930ff2ae610f37519808683aa583fe1c6f37207daf73de1d8a164f79a0c981\nb856cee1cfcf5e50db9af4ab0aed3db2f43c936eaea369b5bba65582f61f383c285efbda97b1c068c5d230cbe94f7722\na61ab205554c0550fa267e46a3d454cd1b0a631646b3df140623ff1bfffaa118e9abe6b62814968cc2a506e9c03ea9a0\n8c78edcd106377b9cbdfa2abd5278724aed0d9e4ae5869b5d2b568fdabb7804c953bae96294fcc70ef3cd52ba2cbe4ed\n8570869a9bbf6cc84966545a36586a60be4d694839f367b73dfc40b5f623fc4e246b39b9a3090694aa2e17e652d07fd1\na905b82c4da8d866a894da72315a95dc98faa3c7b3d809aef18f3b2be4801e736a1b79a406179e8cac8f74d27e71ac52\na8eb8679ff1a64908515f6720ff69434cb33d63aeb22d565fde506618908b1d37585e3bd4d044fd0838b55787af06b42\naf4d86b2fbd1684a657dffe4210321a71e6ae560c144d44668d1f324dc9630e98348c3d444622a689327c1a59cc169dd\n80359c6eab16954559ab0e6a1fee9a0526c45d3cae1a371159a2e3aa9b893afdc3a785c9559a5fd9cd8cd774234bf819\n8d4e5ff81eb5d17bbe8ae6416538ca51a9427ce142b311f5cbb14febbbbb9c1ffc6489fd625b9266264c366c12a9d997\n92e181c66489c5fa063ba2a1a354b6fd3439b8b4365a8c90e42e169bfaa1fb5766bf3e0fe804399d18bc8fbcafb5c3b1\na9ddf229360a095393885083716cb69c819b2d7cfb100e459c2e6beb999ff04446d1e4a0534832ae3b178cbe29f4f1d3\n8e085ef7d919302a1cc797857b75cff194bdbc1c5216434fa808c3dea0cf666f39d9b00f6d12b409693d7a9bd50a912c\n916dc4dc89e5e6acf69e4485a09fc66968f9b292eac61a146df1b750aa3da2425a0743d492179f90a543a0d4cd72c980\nb9cbf17e32c43d7863150d4811b974882da338cf0ed1313765b431b89457021dd1e421eeaa52840ef00551bb630962dc\na6fb875786daec1a91484481787093d8d691dd07e15c9c0c6ae0404bf9dc26083ed15d03c6d3fe03e29f28e20da21269\na870fcb54b9a029e8086de9b08da8782c64ad2cc2e7fdf955b913d294038bb8136193256b85267e75a4ca205808a76b4\n99883f057e09b88bf0e316f9814c091837fd5c26eeb16fec108c9fed4b7a2bd1c783dac0e4242b5a906621ab606c1e50\n85d89069ca3190577dab39bbec43c16bf6dbca439ad3eebd8f5e9f507d84c3c43e77fd6323224582566a3aa2c8018951\n9363ba219e0003f6e8a9d8937b9e1449e4b2c5cd57194563b758bea39deab88778e8f8e4f7816970a617fb077e1e1d42\n820622f25553c035326145c1d2d537dc9cfd064c2f5bdf6d4ec97814de5fe9a0fbd443345fa2ea0a9d40d81d3936aa56\n87e31110aaf447e70c3316459250e4f7f8c24420c97828f9eb33b22107542c5535bdb48b0e58682dd842edea2886ff08\n95bf80cac6f42029d843d1246588acb40a74802f9e94b2bf69b1833936767e701ef7b0e099e22ab9f20f8c0c4a794b6c\na46ecf612b2763d099b27fb814bd8fdbaee51d6b9ac277ad6f28350b843ce91d701371adfaaf4509400dc11628089b58\n8604decf299fb17e073969708be5befeb1090ab688ad9f3f97a0847a40ea9a11bbcfc7a91e8dc27bc67a155123f3bd02\n8eb765c8dc509061825f3688cb2d78b6fef90cf44db33783d256f09be284bc7282205279725b78882688a514247c4976\nb5c30b2244fa109d66b3a5270b178960fdec47d31e63db0b374b80d2b626409eb76d2e8d1ebf47ef96c166743032fc5e\naab01e76290a7e936989530221646160bf8f64e61e79282e980c8c5dcaaa805ff096efd01d075a2c75917a3f4bf15041\nb9d79671debd0b83d0c7c7c3e64c0fb1274300564b262771f839b49218501e7f38ef80cae1f7e5a3c34acdc74c89dab6\n92c0eaceadf036b3b9dfd2712013aba3dd7c30b7760f501f52141618265baa31840fe77850a7014dc528f71f8cf39ce6\nb3cdd098059980455dd5b1c04182df1bd12fa844a866f02a9f8a86aab95b59945baa9af99f687410bffc5b07153cb23c\nb361b73a62f71256b7f6ea8e0f6615e14fc5a06ee98b928ab3c9dd3eef9d9d30070e9855c82b7facb639cacb3401e01f\nb9c85fc0f25a3271cf28b1ca900078eaaa66cbab0a3e677606e898ac32781a2dfce4d9cbd07404599e2c3c02fa161c9d\nac5b4fdac2a0b2e6430d9fc72bde4249d72183b197fc7347bb1546ae6f544426686bbe0caec3ee973b6836da5e831c44\nb675aebf24b92e398e166f171a6df442b3f5919b6bee192f31675a5e8eeb77d34c6590a6f0c0857417e0f78cfb085db8\na9bef942044d8d62e6a40169f7dc7b49e40cd0d77f8678dd7c7bae6f46c46786f9b1e319a3fa408f22a54fd2a4d70804\na20d19cd917d5102ae9ca0cf532127d2b953aa3303310e8a8c4b3da025dded993a47e3a28e6b02acfadb6d65dc2d41a3\na47fdb04059b83b2afb86a47b2368bbd7247c337a36d3333b6e5ef2cc9476a92c4907e4c58a845c9ef9b497621e0b714\n94a9e9ffc14b411e11a4ffa59878d59460263589003dc7b6915247c549f67feede279bf3645fdd92379022fb21e3caeb\nb92e1177dd9ecdaf1370c71b14954219cf0851f309bc216d5907a4e2e84e0df3457018224150c142cc6bf86644bb4b73\n8bc57fadd68a265b7df9b42227a9c0968db7b1bb50dc12f7d755505779f1ff2c408672b3091e903366acc9ce15d19fb6\nb6b5efbe1ac4e1bd2e8447c45000d09397b772ca5496acc447b881022608a41c4f60388814607a01890190105bee7be3\n95f7c85fd614df968f8ccf8d086579c9e1cec4644ecf06da26e3511cb39635a7326b3cec47bd51cf5646f1c660425e9c\nb81765fb319bcdc74b4d608383ccb4af7dd84413b23af637be12e2827a75f7e4bcd14441cf979ed9038ae366fbb6f022\na120ea76cda8c6c50c97035078f6648afe6537809bdba26e7c9e61de8f3070d2347160f9d34010effbf2ec7e94f5749f\n92c1b8631953b40d3cc77eee2c72a064b999c09a9b92c11d8fa7b4072966273901c9dba25f9f79f384d9f11a56f3fc7a\na4b00dc0ab67b2300abc9c516e34daf444d6497b066a90cfe3381ed2812304ed37b14f3b948990443dc6c1cf1bed460c\na9e9f7e13c9f031bc7b9e6f1417c7abcc38894fe7d3f54869ee277afd2efa3e6fb50757dd36c8c94d591e0abdea322cc\n84f3e98f831792b5ad14bcfe62a4c9f296476c6087c4c1ec7767fc642fbca141ff6a3deeb8b4d4106a9cda5a9937eea0\n8eb1a7931bbea9a714226fd74b0100ab88355287d9b0a349c095e9b5809b98f237ffd706bce7d67a770da355fb9cec7b\n9738ef8739e1742c1f26b51a1621be0b89d37406a370c531e236f635c7064c661818817bb3858908986aa687b28b21be\na9cf3ce8501b003ccaf57552a4c4ec31081e44526d3aa3791d3dc4a7e438a357c0956f93c500356186d8fd4588ffac5e\na7af6a219cca59225839a9de5b19263cb23d75557d448bc7d677b62591a2e068c45e5f4457cceb3e9efa01d0601fc18a\n972a24ece5eda7692cbb6fb727f92740451bc1281835e2a02931b2b05824a16b01dbe5edd03a0ed5b441ff25a5cc0188\nb21d1ec7597ce95a42f759c9a8d79c8275d7e29047a22e08150f0f65014702f10b7edce8c03f6e7ab578ce8c3b0ec665\na13a1c7df341bd689e1f8116b7afc149c1ef39161e778aa7903e3df2569356ad31834fa58ceb191485585ce5ef6835c3\na57bdb08119dc3bc089b5b2b5383455c4de0c2fcdac2dcfa21c7ac5071a61635ff83eceb7412f53fab42d1a01991de32\nb2968748fa4a6921ee752d97aa225d289f599a7db7a222450e69706533573ded450380c87f8cdd4a8b8c8db1b42b5c97\n8718ec04e0d5f38e3034ecd2f13dfde840add500f43a5e13457a1c73db0d18138f938690c8c315b5bcbeb51e8b9a2781\n82094789e26c4a04f2f30bdb97b9aecca9b756cbd28d22ab3c8bed8afc5b2963340ddfc5a5f505e679bf058cbc5dcbb8\na35b8a566dd6ab67eddc2467906bffc76c345d508e52e9e4bb407b4f2b2c5f39b31d5a4bf5022f87bf7181dc6be2fe41\na8c93b1e893d4777c0e3a1b4bef3be90c215781501407c4011457fc3240e13524b4d2bea64a6d0a3efe3f3b0dae9b8ab\n877095ad18b1e5870818f7a606127ba1736a0b55b0dbcd281ec307c84b08afc0c9117e3a880fe48bfc225fbf37671a97\n84405ee0421ed2db1add3593df8426a9c1fcc8063e875f5311a917febc193748678dd63171d0c21665fb68b6d786c378\na52cdc8209c3c310bed15a5db260c4f4d4857f19c10e4c4a4cfe9dfc324dfac851421bb801509cf8147f65068d21603c\n8f8a028a70dda7285b664722387666274db92230b09b0672f1ead0d778cee79aae60688c3dfd3a8ed1efdeda5784c9d4\na0be42fecc86f245a45a8ed132d6efc4a0c4e404e1880d14601f5dce3f1c087d8480bad850d18b61629cf0d7b98e0ae0\n83d157445fc45cb963b063f11085746e93ab40ece64648d3d05e33e686770c035022c14fdf3024b32b321abf498689ad\n8a72bbf5a732e2d4f02e05f311027c509f228aef3561fc5edac3ef4f93313845d3a9f43c69f42e36f508efcc64a20be0\nb9ca29b0ec8e41c6a02f54d8c16aebf377982488cbe2ed1753090f2db4f804f6269af03e015d647a82ef06ffaa8cba6c\nb4df3858d61bbb5ded1cf0be22a79df65ae956e961fbb56c883e1881c4c21fe642e3f5a0c108a882e553ac59595e3241\n86457d8890ac8858d7bab180ef66851247c2bf5e52bf69a4051d1d015252c389684fcc30bb4b664d42fbf670574ab3a3\n86d5576ea6dfa06d9ebce4cd885450f270c88a283e1e0d29cab27851c14ed2f00355e167b52e1539f1218ad11d8f13dd\n883ad1364dc2a92388bfafaa9bc943c55b2f813525831e817a6208c666829a40455dde494eba054b2495a95f7ce69e8a\n8942371e6925231c2c603b5f5a882d8404d39f0c7c4232557c2610b21c2c07f145466da798ea78b7932da2b774aa3128\na799eb71496783cc7faf12c9d9804bf6180699a004b2f07fc5cc36840f63ce7eee7dde9275819a9aa3f8d92dc0d47557\n8eb3fb5c769548ee38c7882f51b959c5d5a42b5935269ccf987d6ddbb25a206e80c6000bcc328af149e0727c0b7c02c0\n8f3910d64e421a8f2d8db4c7b352ba5b3fc519d5663973fea5962efe4364fb74448770df944ef37ffe0382648fb56946\nb41413e0c26ff124cf334dab0dc8e538293d8d519d11cc2d10895a96b2064ac60c7da39f08589b38726cffa4c3f0bfef\nb46ef2eb10abae0f35fa4c9c7ee2665e8044b8d9f91988a241da40fd5bbc63166925582151941b400006e28bbc5ba22a\nb8baa8b4c420bb572a3b6b85479b67d994c49a7ebfe1274687d946a0d0b36dfed7630cfb897350fa166f5e2eff8f9809\n964b46d359c687e0dcfbdab0c2797fc2bd1042af79b7418795b43d32ffca4de89358cee97b9b30401392ff54c7834f9f\n8410d0203d382ebf07f200fd02c89b80676957b31d561b76563e4412bebce42ca7cafe795039f46baf5e701171360a85\nb1a8d5d473c1a912ed88ea5cfa37c2aea5c459967546d8f2f5177e04e0813b8d875b525a79c29cb3009c20e7e7292626\nafaab9a1637429251d075e0ba883380043eaf668e001f16d36737028fded6faa6eeed6b5bb340f710961cee1f8801c41\naef17650003b5185d28d1e2306b2f304279da50925f2704a6a3a68312f29fe5c2f2939f14e08b0ba9dee06ea950ad001\n97bcc442f370804aa4c48c2f8318d6f3452da8389af9335e187482d2e2b83b9382e5c297dce1a0f02935e227b74e09a3\n8a67a27b199f0bcd02d52a3e32f9b76a486b830ec481a49a4e11807e98408b7052b48581b5dd9f0b3e93052ec45dfb68\nb113bf15f430923c9805a5df2709082ab92dcdf686431bbad8c5888ca71cc749290fa4d4388a955c6d6ee3a3b9bc3c53\n8629ca24440740ce86c212afed406026f4ea077e7aa369c4151b6fa57bca7f33f9d026900e5e6e681ae669fd2bd6c186\n933a528371dcecc1ec6ded66b1c7b516bd691b3b8f127c13f948bfbcda3f2c774c7e4a8fbee72139c152064232103bdf\n8568ddd01f81a4df34e5fa69c7f4bb8c3c04274147498156aec2e3bd98ea3e57c8a23503925de8fa3de4184563a2b79e\n8160874ec030f30fda8f55bcf62613994ff7ed831e4901c7560eac647182b4a9b43bfaff74b916602b9d6ae3bfcaf929\nae71c48d48cf9459800cdf9f8e96bc22e2d4e37259e5c92a2b24fbe2c6ca42675e312288603c81762f6ceb15400bc4c9\nb05f39bb83fda73e0559db1fd4a71423938a87ad9f060d616d4f4a6c64bf99472a2cbfb95f88b9257c9630fc21a0b81f\n80c8479a640ed7a39e67f2db5ad8dfd28979f5443e8e6c23da8087fc24134d4b9e7c94320ffa4154163270f621188c27\n9969ba20ee29c64cb3285a3433a7e56a0fe4ddc6f3d93e147f49fe021bed4a9315266ebb2fb0eb3036bb02001ae015e6\na198c89fef2ab88e498703b9021becc940a80e32eb897563d65db57cc714eaa0e79092b09dd3a84cfab199250186edcc\n8df14a3db8fe558a54d6120bad87405ba9415a92b08c498812c20416c291b09fed33d1e2fcf698eb14471f451e396089\n81e245ef2649b8a5c8d4b27188dd7e985ef6639090bdc03462c081396cf7fc86ed7d01bfe7e649d2b399255e842bdc21\n8659f622c7ab7b40061bcf7a10144b51ad3ab5348567195924f2944e8c4ce137a37f1ba328e4716c10806f3fb7271689\na575d610fc8fe09334ca619ecdadf02d468ca71dd158a5a913252ca55ea8d8f9ce4548937c239b9cb8ab752a4d5af24a\n94744549cd9f29d99f4c8c663997bdfa90e975b31f1086214245de9c87b0c32209f515a0de64d72d5ef49c09b0a031fa\n80a8677862b056df59e350c967a27436c671b65d58854e100115bac9824ba177e94c2a1bfcaa191a071b9cefdbee3989\n91be9a5504ec99922440f92a43fe97ddce2f21b9d94cd3a94c085a89b70c903696cec203bbab6d0a70693ba4e558fb01\n8c5a0087bcd370734d12d9b3ab7bc19e9a336d4b49fc42825b2bfedcd73bb85eb47bf8bb8552b9097cc0790e8134d08c\n933aa9e6bd86df5d043e0577a48e17eea3352e23befdbb7d7dcac33b5703d5ace230443ac0a40e23bf95da4cc2313478\n984b7ee4bd081ee06c484db6114c2ce0ba356988efb90f4c46ff85ed2865fb37f56a730166c29ef0ae3345a39cdeae7a\nae830f908ea60276c6c949fb8813e2386cf8d1df26dcf8206aa8c849e4467243e074471380ed433465dc8925c138ea4c\n874c1df98d45b510b4f22feff46a7e8ed22cfc3fad2ac4094b53b9e6477c8dfc604976ca3cee16c07906dece471aa6c6\na603eb60d4c0fb90fa000d2913689126849c0261e6a8649218270e22a994902965a4e7f8c9462447259495fe17296093\na7c73d759a8ad5e3a64c6d050740d444e8d6b6c9ade6fb31cb660fa93dc4a79091230baccb51c888da05c28cb26f6f3f\na4411b79b6a85c79ea173bd9c23d49d19e736475f3d7d53213c5349ebb94a266d510d12ba52b2ac7a62deaaaec7339b8\n943b84f8bbcee53b06266b5c4cd24d649d972593837fe82b0bf5d5e1bbc1a2bf148e1426c366d7c39ab566b10224cadc\n8300012096a8b4cefecc080054bf3ceb0918162ba263c6848860423407796b5eb517170c0bad8e4905ac69a383055a21\n8244a1e3ad41908c6f037e2f8db052e81f281646141334829f36c707f307448b9ab79a7f382a1e8d86f877c90b59271c\n8eca1b74687802ecc36a5d39e4516a9dee3de61a2047252d9ed737b49e0090c386e9d792ac004c96337681c7f29a16ad\nb70fa47535f0524835039a20036c61e77f66146ad79d3d339214d8744742db41ceeb577c829d000011aeafbb12e09579\n84b3abbce48689f3adbb99889c7fd1f3e15ab455d477e34f5151c5c1c358ed77a5b6a581879f7e0f1f34106e0792e547\nab45ecb58c0ef0dbce3d16afc6ac281e0d90ec48741ea96a141152647e98fcc87f3a3ff07ba81f3179118453ce123156\n90d231a145ba36a59087e259bbfc019fa369201fcfeaa4347d5fd0a22cd8a716e5a797f3cc357f2779edb08f3b666169\na4f6074d23c6c97e00130bc05f25213ca4fa76c69ca1ace9dece904a2bdd9d987661f5d55023b50028c444af47ff7a08\n933af884939ad0241f3f1f8e8be65f91d77ac0fb234e1134d92713b7cfb927f1933f164aec39177daa13b39c1370fac8\n80d1db6933ce72091332ae47dc691acb2a9038f1239327b26d08ea9d40aa8f2e44410bbda64f2842a398cbe8f74f770f\na7a08605be2241ccc00151b00b3196d9c0717c4150909a2e9cd05538781231762b6cc6994bebbd4cddae7164d048e7b2\n96db0d839765a8fdbbac03430fa800519e11e06c9b402039e9ae8b6503840c7ecac44123df37e3d220ac03e77612f4e4\n96d70f8e9acd5a3151a8a9100ad94f16c289a31d61df681c23b17f21749c9062622d0a90f6d12c52397b609c6e997f76\n8cf8e22273f7459396ff674749ab7e24c94fe8ab36d45d8235e83be98d556f2b8668ba3a4ec1cb98fac3c0925335c295\n97b7e796a822262abc1a1f5a54cb72a1ea12c6c5824ac34cd1310be02d858a3c3aa56a80f340439b60d100e59c25097d\na48208328b08769737aa1a30482563a4a052aea736539eceab148fa6653a80cb6a80542e8b453f1f92a33d0480c20961\nb612184941413fd6c85ff6aa517b58303b9938958aa85a85911e53ed308778624d77eadb27ccf970573e25d3dfd83df7\nb3717068011648c7d03bbd1e2fc9521a86d2c3ae69113d732c2468880a3b932ebec93596957026477b02842ed71a331b\na0ad363e1352dcf035b03830fef4e27d5fd6481d29d5e8c9d51e851e3862d63cdcbaf8e330d61c1b90886921dac2c6fd\n8db409fdacfa4bfdaf01cc87c8e97b53ca3a6e3a526d794eaad1c2023f3df4b888f1bf19fee9a990fe6d5c7c3063f30c\nb34d6975310ab15938b75ef15020a165fc849949065d32d912554b51ffa1d3f428a6d1a396cb9329367670391de33842\n9117285e9e6762853fc074b8a92b3923864de2c88c13cea7bab574aaf8cdd324843455d2c3f83c00f91f27c7ecc5592a\nb4b2e8f190ea0b60819894710c866bf8578dd1b231ae701d430797cc7ede6e216e8ca6a304f3af9484061563645bf2ab\n8c493c6853ab135d96a464815dd06cad8b3e8b163849cdefc23d1f20211685753b3d3e147be43e61e92e35d35a0a0697\n9864d7880f778c42d33cf102c425e380d999d55a975a29c2774cad920dfddb80087a446c4f32ed9a6ab5f22ec6f82af0\n90f67fe26f11ca13e0c72b2c2798c0d0569ed6bc4ce5bbaf517c096e7296d5dd5685a25012f6c6d579af5b4f5d400b37\na228872348966f26e28a962af32e8fa7388d04bc07cfc0224a12be10757ac7ab16a3387c0b8318fcb0c67384b0e8c1a4\na9d9d64bba3c03b51acf70aeb746a2712ddafe3b3667ae3c25622df377c2b5504e7ab598263bec835ab972283c9a168b\n932128971c9d333f32939a1b46c4f7cf7e9d8417bd08dc5bd4573ccbd6ec5b460ac8880fb7f142f7ef8a40eef76d0c6d\n964115e7838f2f197d6f09c06fbb2301d6e27c0ecdf208350cf3b36c748436dac50f47f9f9ac651c09ab7ad7221c7e43\na5941f619e5f55a9cf6e7f1499b1f1bcddcc7cf5e274efedaaad73a75bc71b1fc5c29cd903f6c69dc9a366a6933ca9d1\na154bf5eaec096029e5fe7c8bf6c695ae51ace356bb1ad234747776c7e1b406dee2d58864c3f4af84ed69f310974125e\nb504e6209d48b0338ab1e4bdab663bac343bb6e0433466b70e49dc4464c1ec05f4a98111fd4450393607510ae467c915\n813411918ea79bdde295393284dc378b9bdc6cfcb34678b9733ea8c041ac9a32c1e7906e814887469f2c1e39287e80f8\n8be0369f94e4d72c561e6edb891755368660208853988647c55a8eed60275f2dd6ee27db976de6ecf54ac5c66aaf0ae6\na7e2701e55b1e7ea9294994c8ad1c080db06a6fc8710cd0c9f804195dce2a97661c566089c80652f27b39018f774f85e\n956b537703133b6ddf620d873eac67af058805a8cc4beb70f9c16c6787bf3cc9765e430d57a84a4c3c9fbdd11a007257\n835ae5b3bb3ee5e52e048626e3ddaa49e28a65cb94b7ecdc2e272ff603b7058f1f90b4c75b4b9558f23851f1a5547a35\n85d67c371d1bf6dc72cca7887fa7c886ce988b5d77dc176d767be3205e80f6af2204d6530f7060b1f65d360a0eaeff30\na84a6647a10fcef8353769ef5f55a701c53870054691a6e9d7e748cbe417b3b41dbb881bae67adc12cb6596c0d8be376\n87ffe271fc0964cb225551c7a61008d8bcb8b3d3942970dbcc2b9f4f9045a767971880368ea254e2038a3a0b94ecf236\n964bb721c51d43ee7dd67c1a2b7dd2cc672ce8fad78c22dcddb43e6aab48d9a4a7dc595d702aa54a6fb0ffabf01f2780\na89b3f84bb7dcbe3741749776f5b78a269f6b1bebb8e95d3cc80b834fd2177c6be058d16cacfd0d5e1e35e85cde8b811\nb4314538e003a1587b5592ff07355ea03239f17e75c49d51f32babe8e048b90b046a73357bcb9ce382d3e8fbe2f8e68b\n86daf4bf201ae5537b5d4f4d734ed2934b9cf74de30513e3280402078f1787871b6973aa60f75858bdf696f19935a0e2\nb1adf5d4f83f089dc4f5dae9dbd215322fa98c964e2eaa409bf8ca3fa5c627880a014ed209492c3894b3df1c117236c4\nb508d52382c5bac5749bc8c89f70c650bb2ed3ef9dc99619468c387c1b6c9ff530a906dfa393f78f34c4f2f31478508a\na8349a5865cb1f191bebb845dfbc25c747681d769dbffd40d8cedf9c9a62fa2cbc14b64bb6121120dab4e24bef8e6b37\naf0500d4af99c83db8890a25f0be1de267a382ec5e9835e2f3503e1bac9412acf9ff83a7b9385708ef8187a38a37bc77\nb76d57a1c1f85b8a8e1722a47057b4c572800957a6b48882d1fc21309c2e45f648a8db0fcff760d1dbc7732cf37c009b\nb93c996cec0d3714667b5a5a5f7c05a7dc00bbc9f95ac8e310626b9e41ae4cc5707fac3e5bd86e1e1f2f6d9627b0da94\n93216fdb864217b4c761090a0921cf8d42649ab7c4da1e009ec5450432564cb5a06cb6e8678579202d3985bd9e941cef\n8b8be41105186a339987ae3a5f075fbc91f34b9984d222dfed0f0f85d2f684b56a56ab5dc812a411570491743d6c8b18\n959b72782a6b2469e77fe4d492674cc51db148119b0671bd5d1765715f49fa8a87e907646671161586e84979ef16d631\n86b7fc72fb7e7904ea71d5e66ba0d5d898ace7850985c8cc4a1c4902c5bf94351d23ce62eed45e24321fb02adfa49fc8\na2f244e7c9aa272cb0d067d81d25e5a3045b80b5a520b49fd5996ece267a7f1bea42e53147bbf153d9af215ea605fc9e\n81aa2efa5520eebc894ce909ba5ce3250f2d96baa5f4f186a0637a1eea0080dd3a96c2f9fadf92262c1c5566ddb79bab\nb607dd110cfe510d087bcff9a18480ba2912662256d0ab7b1d8120b22db4ad036b2266f46152754664c4e08d0fc583f6\n8f588d5f4837e41312744caac5eee9ddc3ad7085871041694f0b5813edf83dc13af7970f7c9b6d234a886e07fa676a04\n924921b903207783b31016cbec4e6c99e70f5244e775755c90d03a8b769738be3ba61577aca70f706a9c2b80040c9485\nae0a42a222f1a71cd0d3c69ffb2f04c13e1940cce8efabe032629f650be3ceed6abb79651dbb81cb39a33286eb517639\na07d7d76460f31f5f0e32e40a5ea908d9d2aebf111ac4fadee67ef6540b916733c35a777dcdc05f6417726ca1f2d57dd\n88d7f8a31f8c99794291847d28745e5d0b5d3b9684ca4170b686ffbb5bb521a3ef6746c3c8db22e4250a0cdff7939d96\n849573071fd98c020dc9a8622a9eff221cb9f889bde259e7127a8886b73bef7ad430b87750915658918dcfb6b7b4d8d3\nb12d59f732fa47fad175d6263734da8db89230fd340a46ad1cdee51e577041a5c80bf24cd195593e637daf1a66ef5a98\nabbcfb8a4a6d5e269ee1ac5e277df84416c73ca55ec88317f73608201af25af0cb65b943c54684a5651df3a26e3daca2\nab157f589bdbaf067a6a7ba7513df0492933855d39f3a081196cf2352e0ddc0162d476c433320366e3df601e0556278d\na86c0619b92e5ae4f7daa876a2abc5ba189156afc2fa05eef464dfa342ba37fc670d0dc308ad3822fcb461ab001bac30\na3f292946476cfe8d5e544a5325439a00e0165a5f9bf3bb6a53f477baeac7697cc0377745536681aa116f326ce911390\n8aecbbfd442a6a0f01c1c09db5d9d50213eb6f1ff6fab674cde3da06a4edff3ed317e804f78300c22ef70c336123e05d\n834ed4b58211fcd647d7bf7c0a3ba9085184c5c856b085e8a0fcd5215c661ef43d36f3f0f6329a9f1370501b4e73b6e4\na114ea5ad2b402a0de6105e5730907f2f1e458d28ae35144cf49836e0ad21325fe3e755cfb67984ae0a32e65402aad1e\na005f12bed97d71cee288b59afe9affb4d256888727343944a99913980df2c963fe02f218e6ea992f88db693a4498066\na010f286ab06b966e3b91ff8f1bdbe2fe9ab41a27bc392d5787aa02a46e5080e58c62c7d907818caae9f6a8b8123e381\n857bd6df2ddef04dbc7c4f923e0b1696d3016c8bfed07fdfa28a3a3bd62d89b0f9df49aae81cbb6883d5e7b4fadae280\nb3927030da445bc4756ac7230a5d87412a4f7510581fb422212ce2e8cf49689aca7ba71678743af06d4de4914c5aa4a0\nb86403182c98fcce558d995f86752af316b3b2d53ba32075f71c7da2596747b7284c34a1a87de604fcc71e7e117a8add\n98dd19b5527733041689b2a4568edaf6aa0fe1a3dd800c290cda157b171e053648a5772c5d3d4c80e5a795bc49adf12e\n88a3c227bb7c9bff383f9ad3f7762245939a718ab85ae6e5e13180b12bf724d42054d3852b421c1cd1b3670baddecb63\nb3cfd9ad66b52bbe57b5fff0fad723434d23761409b92c4893124a574acc1e6b1e14b4ec507661551cbbe05e16db362e\n923e1bb482cf421dd77801f9780f49c3672b88508a389b94015fd907888dc647ee9ea8ec8d97131d235d066daf1f42b7\n8d5e16240f04f92aa948181d421006bdbc7b215648fb6554193224d00cf337ebbb958f7548cf01b4d828acffb9fbc452\n8b2b8f18ad0559746f6cda3acca294a1467fb1a3bc6b6371bc3a61a3bfe59418934fa8706f78b56005d85d9cb7f90454\na9316e2a94d6e31426d2ae7312878ba6baaac40f43e2b8a2fa3ab5a774c6918551554b2dbb23dc82f70ba3e0f60b5b0d\n9593116d92cf06b8cd6905a2ce569ee6e69a506c897911f43ae80fc66c4914da209fc9347962034eebbc6e3e0fe59517\n887d89d2b2d3c82b30e8f0acf15f0335532bd598b1861755498610cb2dd41ff5376b2a0bb757cb477add0ce8cfe7a9fc\nb514cfe17875ecb790ad055271cc240ea4bda39b6cfa6a212908849c0875cb10c3a07826550b24c4b94ea68c6bb9e614\na563d5187966d1257d2ed71d53c945308f709bcc98e3b13a2a07a1933dc17bcb34b30796bd68c156d91811fbd49da2cb\na7195ccc53b58e65d1088868aeeb9ee208103e8197ad4c317235bb2d0ad3dc56cb7d9a7186416e0b23c226078095d44c\na838e7a368e75b73b5c50fbfedde3481d82c977c3d5a95892ac1b1a3ea6234b3344ad9d9544b5a532ccdef166e861011\n9468ed6942e6b117d76d12d3a36138f5e5fb46e3b87cf6bb830c9b67d73e8176a1511780f55570f52d8cdb51dcf38e8c\n8d2fc1899bc3483a77298de0e033085b195caf0e91c8be209fd4f27b60029cbe1f9a801fbd0458b4a686609762108560\n8f4e44f8ca752a56aa96f3602e9234ad905ad9582111daf96a8c4d6f203bf3948f7ce467c555360ad58376ee8effd2ba\n8fb88640b656e8f1c7c966c729eb2ba5ccf780c49873f8b873c6971840db7d986bdf1332ba80f8a0bb4b4ee7401468fa\nb72aa3235868186913fb5f1d324e748cd3ce1a17d3d6e6ea7639a5076430fe0b08841c95feb19bb94181fe59c483a9eb\nb8b102690ebb94fc4148742e7e3fd00f807b745b02cbe92cd92992c9143b6db7bb23a70da64a8b2233e4a6e572fc2054\n8c9ae291f6cd744e2c6afe0719a7fc3e18d79307f781921fb848a0bf222e233879c1eca8236b4b1be217f9440859b6ce\na658ede47e14b3aad789e07f5374402f60e9cacb56b1b57a7c6044ca2418b82c98874e5c8c461898ebd69e38fecd5770\n89c0cb423580e333923eb66bda690f5aca6ec6cba2f92850e54afd882ba608465a7dbb5aa077cd0ca65d9d00909348ab\naed8e28d98d5508bd3818804cf20d296fe050b023db2ed32306f19a7a3f51c7aaafed9d0847a3d2cd5ba5b4dabbc5401\n96a0fcd6235f87568d24fb57269a94402c23d4aa5602572ad361f3f915a5f01be4e6945d576d51be0d37c24b8b0f3d72\n935d0c69edd5dfa8ed07c49661b3e725b50588f814eb38ea31bcc1d36b262fae40d038a90feff42329930f8310348a50\n900518288aa8ea824c7042f76710f2ea358c8bb7657f518a6e13de9123be891fa847c61569035df64605a459dad2ecc8\n947d743a570e84831b4fb5e786024bd752630429d0673bf12028eb4642beb452e133214aff1cfa578a8856c5ebcb1758\na787266f34d48c13a01b44e02f34a0369c36f7ec0aae3ec92d27a5f4a15b3f7be9b30b8d9dd1217d4eeedff5fd71b2e5\na24b797214707ccc9e7a7153e94521900c01a1acd7359d4c74b343bfa11ea2cdf96f149802f4669312cd58d5ab159c93\n97f5ee9c743b6845f15c7f0951221468b40e1edaef06328653a0882793f91e8146c26ac76dd613038c5fdcf5448e2948\n80abd843693aed1949b4ea93e0188e281334163a1de150c080e56ca1f655c53eb4e5d65a67bc3fc546ed4445a3c71d00\n908e499eb3d44836808dacff2f6815f883aeced9460913cf8f2fbbb8fe8f5428c6fc9875f60b9996445a032fd514c70f\nae1828ef674730066dc83da8d4dd5fa76fc6eb6fa2f9d91e3a6d03a9e61d7c3a74619f4483fe14cddf31941e5f65420a\na9f4dbe658cd213d77642e4d11385a8f432245b098fccd23587d7b168dbeebe1cca4f37ee8d1725adb0d60af85f8c12f\n93e20ee8a314b7772b2439be9d15d0bf30cd612719b64aa2b4c3db48e6df46cea0a22db08ca65a36299a48d547e826a7\na8746a3e24b08dffa57ae78e53825a9ddbbe12af6e675269d48bff4720babdc24f907fde5f1880a6b31c5d5a51fbb00e\nb5e94dfab3c2f5d3aea74a098546aa6a465aa1e3f5989377d0759d1899babf543ad688bb84811d3e891c8713c45886c5\na3929bada828bd0a72cda8417b0d057ecb2ddd8454086de235540a756e8032f2f47f52001eb1d7b1355339a128f0a53b\nb684231711a1612866af1f0b7a9a185a3f8a9dac8bde75c101f3a1022947ceddc472beb95db9d9d42d9f6ccef315edbc\naf7809309edbb8eb61ef9e4b62f02a474c04c7c1ffa89543d8c6bf2e4c3d3e5ecbd39ec2fc1a4943a3949b8a09d315a6\nb6f6e224247d9528ef0da4ad9700bee6e040bbf63e4d4c4b5989d0b29a0c17f7b003c60f74332fefa3c8ddbd83cd95c1\nadbcec190a6ac2ddd7c59c6933e5b4e8507ce5fd4e230effc0bd0892fc00e6ac1369a2115f3398dfc074987b3b005c77\n8a735b1bd7f2246d3fa1b729aecf2b1df8e8c3f86220a3a265c23444bdf540d9d6fe9b18ed8e6211fad2e1f25d23dd57\n96b1bf31f46766738c0c687af3893d098d4b798237524cb2c867ed3671775651d5852da6803d0ea7356a6546aa9b33f2\n8036e4c2b4576c9dcf98b810b5739051de4b5dde1e3e734a8e84ab52bc043e2e246a7f6046b07a9a95d8523ec5f7b851\n8a4f4c32ee2203618af3bb603bf10245be0f57f1cfec71037d327fa11c1283b833819cb83b6b522252c39de3ce599fa5\nad06ed0742c9838e3abaaffdb0ac0a64bad85b058b5be150e4d97d0346ed64fd6e761018d51d4498599669e25a6e3148\n8d91cb427db262b6f912c693db3d0939b5df16bf7d2ab6a7e1bc47f5384371747db89c161b78ff9587259fdb3a49ad91\nae0a3f84b5acb54729bcd7ef0fbfdcf9ed52da595636777897268d66db3de3f16a9cf237c9f8f6028412d37f73f2dfad\n8f774109272dc387de0ca26f434e26bc5584754e71413e35fa4d517ee0f6e845b83d4f503f777fe31c9ec05796b3b4bc\na8670e0db2c537ad387cf8d75c6e42724fae0f16eca8b34018a59a6d539d3c0581e1066053a2ec8a5280ffabad2ca51f\nac4929ed4ecad8124f2a2a482ec72e0ef86d6a4c64ac330dab25d61d1a71e1ee1009d196586ce46293355146086cabba\n845d222cb018207976cc2975a9aa3543e46c861486136d57952494eb18029a1ebb0d08b6d7c67c0f37ee82a5c754f26f\nb99fa4a29090eac44299f0e4b5a1582eb89b26ed2d4988b36338b9f073851d024b4201cd39a2b176d324f12903c38bee\n9138823bc45640b8f77a6464c171af2fe1700bdc2b7b88f4d66b1370b3eafe12f5fbb7b528a7e1d55d9a70ca2f9fc8e6\n8ac387dc4cf52bc48a240f2965ab2531ae3b518d4d1f99c0f520a3d6eb3d5123a35ef96bed8fa71ee2f46793fa5b33b3\n864adec6339d4c2ba2525621fceabd4c455902f6f690f31a26e55413e0722e5711c509dc47ce0bcc27bbdc7651768d2d\na0a52edb72268a15201a968dabc26a22909620bda824bd548fb8c26cc848f704166ed730d958f0173bd3b0a672f367bd\n949e445b0459983abd399571a1a7150aab3dd79f4b52a1cd5d733e436c71c1d4b74287c6b0ce6cc90c6711ba4c541586\n858966355dac11369e3b6552f2b381665181693d5a32e596984da3314021710b25a37d8c548b08700eea13d86cb22f21\n974bcbb8d38c5e6518745cc03ad436e585b61f31d705e7e2e5085da9655d768ac4d800904f892c3dab65d6223e3f1fd6\n8092b6506b01308bf6187fde5ebd4fa7448c9a640961ba231be22ac5fa2c7635ef01e8b357722c7695d09b723101ea2a\na5b8ef360bf28533ee17d8cd131fff661d265f609db49599085c0c7d83b0af409a1b5c28e3a5e5d7f8459a368aa121e8\nb031b6d5e3ceab0f0c93314b3b675f55cf18cbc86f70444af266fe39cb22fd7dad75d8c84e07f1c1bfa2cb8283e1361a\n93ad489e4f74658320c1cceed0137c023d3001a2c930ed87e6a21dbf02f2eb6ad1c1d8bcb3739c85dcfbecb040928707\nb15e4ec2cdab0d34aec8d6c50338812eb6ecd588cf123a3e9d22a7ca23b5a98662af18289f09e6cdd85a39a2863c945c\nb304f71a9717cf40c22073f942618b44bf27cd5e2ed4a386ad45d75b0fcb5a8dafd35158211eaf639495c6f1a651cedb\nb82d78d3eaaa7c5101b7a5aae02bd4f002cd5802d18c3abcda0dd53b036661c6d3c8b79e0abe591eab90b6fdc5fef5e3\nabbd1884243a35578b80914a5084449c237ee4e4660c279d1073a4d4217d1b55c6b7e9c087dfd08d94ac1416273d8d07\n92f4b61c62502745e3e198ec29bca2e18696c69dcb914d1f3a73f4998d012b90caf99df46e9bb59942e43cce377fe8fd\n906e79df98185820c8208844e1ba6bd86cb96965814b01310bd62f22cbec9b5d379b2ef16772d6fc45a421b60cfd68fe\na0eae2784ef596e2eb270dd40c48d6c508e4394c7d6d08d4cc1b56fde42b604d10ba752b3a80f2c4a737e080ef51b44f\n94c084985e276dc249b09029e49a4ef8a369cd1737b51c1772fbb458d61e3fe120d0f517976eba8ffa5711ba93e46976\n83619a0157eff3f480ab91d1d6225fead74c96a6fd685333f1e8e4d746f6273e226bad14232f1d1168a274e889f202f1\na724fe6a83d05dbbf9bb3f626e96db2c10d6d5c650c0a909415fbda9b5711c8b26e377201fb9ce82e94fa2ab0bf99351\na8a10c1b91a3a1fa2d7fd1f78a141191987270b13004600601d0f1f357042891010717319489f681aa8a1da79f7f00d5\na398a2e95b944940b1f8a8e5d697c50e7aa03994a8a640dfad4ea65cfb199a4d97861a3ec62d1c7b2b8d6e26488ca909\na2eedfe5452513b2a938fffd560798ef81379c5a5032d5b0da7b3bb812addbaad51f564c15d9acbbfc59bb7eddd0b798\nab31c572f6f145a53e13b962f11320a1f4d411739c86c88989f8f21ab629639905b3eedb0628067942b0dc1814b678ca\nad032736dd0e25652d3566f6763b48b34ea1507922ed162890cd050b1125ec03b6d41d34fccba36ec90336f7cdf788ed\n83028a558a5847293147c483b74173eca28578186137df220df747fccd7d769528d7277336ea03c5d9cdd0bc5ae3d666\nab5d182cd1181de8e14d3ef615580217c165e470b7a094a276b78a3003089123db75c6e1650bf57d23e587c587cd7472\na4793e089fbdb1597654f43b4f7e02d843d4ab99ee54099c3d9f0bd5c0c5657c90bb076379a055b00c01b12843415251\n98bdc52ee062035356fb2b5c3b41673198ddc60b2d1e546cb44e3bb36094ef3c9cf2e12bbc890feb7d9b15925439d1ea\na4f90cca6f48024a0341bd231797b03693b34e23d3e5b712eb24aba37a27827319b2c16188f97c0636a0c115381dc659\n8888e6c2e4a574d04ba5f4264e77abc24ccc195f1a7e3194169b8a2ceded493740c52db4f9833b3dbf4d67a3c5b252cb\n83dc4e302b8b0a76dc0292366520b7d246d73c6aebe1bdd16a02f645c082197bcff24a4369deda60336172cefbcf09af\na4eb2741699febfeb793914da3054337cc05c6fa00d740e5f97cb749ae16802c6256c9d4f0f7297dcdbb8b9f22fc0afa\n8b65557d5be273d1cb992a25cfce40d460c3f288d5cb0a54bdef25cbd17cdea5c32ec966e493addf5a74fd8e95b23e63\n97c6577e76c73837bcb398b947cb4d3323d511141e0ddd0b456f59fbb1e8f920a5c20d7827a24309145efddee786140f\nabcc0849ffe2a6a72157de907907b0a52deece04cf8317bee6fe1d999444b96e461eac95b6afde3d4fe530344086a625\n9385c0115cb826a49df1917556efa47b5b5e4022b6a0d2082053d498ec9681da904ecf375368bb4e385833116ea61414\n8b868c1841f0cdc175c90a81e610b0652c181db06731f5c8e72f8fafa0191620742e61a00db8215a991d60567b6a81ca\na8df15406f31b8fcf81f8ff98c01f3df73bf9ec84544ddec396bdf7fafa6fe084b3237bf7ef08ad43b26517de8c3cd26\na9943d21e35464ce54d4cc8b135731265a5d82f9ccf66133effa460ffdb443cdb694a25320506923eede88d972241bf2\na1378ee107dd7a3abcf269fd828887c288363e9b9ca2711377f2e96d2ed5e7c5ec8d3f1da995a3dcbedf1752d9c088fc\n8a230856f9227b834c75bdebc1a57c7298a8351874bf39805c3e0255d6fd0e846f7ad49709b65ec1fd1a309331a83935\n877bcf42549d42610e1780e721f5800972b51ba3b45c95c12b34cb35eeaf7eac8fa752edd7b342411820cf9093fea003\n84c7a0b63842e50905624f1d2662506b16d1f3ea201877dfc76c79181c338b498eceb7cad24c2142c08919120e62f915\n8e18b1bd04b1d65f6ed349b5d33a26fe349219043ead0e350b50ae7a65d6ff5f985dd9d318d3b807d29faa1a7de4fe42\n8ea7b5a7503e1f0b3c3cd01f8e50207044b0a9c50ed1697794048bbe8efd6659e65134d172fb22f95439e1644f662e23\nb1954a2818cad1dad6d343a7b23afa9aa8ad4463edc4eb51e26e087c2010927535020d045d97d44086d76acdb5818cbf\na5271ea85d0d21fa1ff59b027cf88847c0f999bbf578599083ff789a9b5228bc161e1c81deb97e74db1a82a0afd61c50\naa2fa4c05af3387e2c799315781d1910f69977ec1cfea57a25f1a37c63c4daaa3f0ecd400884a1673e17dd5300853bcf\nb1cd2a74ca0b8e6090da29787aef9b037b03b96607983a308b790133bd21297b21ca4e2edec890874096dbf54e9d04c3\n801931607ec66a81272feaa984f0b949ad12d75ecf324ba96627bd4dc5ddead8ebf088f78e836b6587c2b6c0b3366b6c\n95d79504710bdf0ad9b9c3da79068c30665818c2f0cdbba02cc0a5e46e29d596032ac984441b429bd62e34535c8d55b0\n9857d41e25e67876510ff8dadf0162019590f902da1897da0ef6fc8556e3c98961edb1eb3a3a5c000f6c494413ded15e\n8740c9ffe6bd179c19a400137c3bd3a593b85bd4c264e26b4dfb9e2e17ac73e5b52dfacc1dcb4033cfc0cd04785f4363\n977f98f29d948b4097a4abdf9345f4c1fb0aa94ba0c6bf6faa13b76f3a3efc8f688e1fe96099b71b3e1c05041118c8d1\na364422b1239126e3e8d7b84953ce2181f9856319b0a29fcab81e17ac27d35798088859c1cfc9fc12b2dbbf54d4f70b3\na0f6ba637f0db7a48e07439bb92ddb20d590ce9e2ed5bab08d73aa22d82c32a9a370fe934cbe9c08aeb84b11adcf2e0e\na2c548641bd5b677c7748327cca598a98a03a031945276be6d5c4357b6d04f8f40dd1c942ee6ec8499d56a1290ac134d\n9863e9cc5fbcdbd105a41d9778d7c402686bfd2d81d9ed107b4fda15e728871c38647529693306855bee33a00d257a7e\na54173bf47b976290c88fd41f99300135de222f1f76293757a438450880e6f13dbde3d5fe7afc687bdfbcfc4fbc1fc47\nb8db413917c60907b73a997b5ab42939abd05552c56a13525e3253eb72b83f0d5cc52b695968a10005c2e2fe13290e61\na1f8388ef21697c94ba90b1a1c157f0dc138e502379e6fc5dc47890d284563e5db7716266e1b91927e5adf3cde4c0a72\n9949013a59d890eb358eab12e623b2b5edb1acbee238dfad8b7253102abc6173922e188d5b89ec405aa377be8be5f16d\na00fdb7710db992041f6ddb3c00099e1ce311dea43c252c58f560c0d499983a89de67803a8e57baa01ee9d0ee6fa1e44\na8b1bcbed1951c9cdb974b61078412881b830b48cd6b384db0c00fa68bcc3f4312f8e56c892ea99d3511857ef79d3db9\n8f3ee78404edc08af23b1a28c2012cee0bdf3599a6cb4ea689fc47df4a765ef519191819a72562b91a0fbcdb896a937e\n8155bbb7fa8d386848b0a87caae4da3dec1f3dade95c750a64a8e3555166ccc8799f638bd80ed116c74e3a995541587a\nabfe30adbc0a6f1fd95c630ed5dac891b85384fa9331e86b83217f29dff0bd7cad19d328485715a7e3df9a19069d4d2f\n89d0783e496ee8dbb695764b87fb04cee14d4e96c4ba613a19736971c577d312079048142c12ce5b32b21e4d491d281b\n856b8dbc9c5d8f56b6bb7d909f339ca6da9a8787bba91f09130a025ab6d29b64dbf728ba6ed26e160a23c1cdb9bc037b\n8a30dd2ea24491141047a7dfe1a4af217661c693edf70b534d52ca547625c7397a0d721e568d5b8398595856e80e9730\nae7e1412feb68c5721922ed9279fb05549b7ef6812a4fd33dbbbd7effab756ab74634f195d0c072143c9f1fd0e1ee483\nb7ce970e06fa9832b82eef572f2902c263fda29fdce9676f575860aae20863046243558ede2c92343616be5184944844\n85ed0531f0e5c1a5d0bfe819d1aa29d6d5ff7f64ad8a0555560f84b72dee78e66931a594c72e1c01b36a877d48e017ca\nb8595be631dc5b7ea55b7eb8f2982c74544b1e5befc4984803b1c69727eac0079558182f109e755df3fd64bee00fcaa5\n99e15a66e5b32468ef8813e106271df4f8ba43a57629162832835b8b89402eb32169f3d2c8de1eb40201ce10e346a025\n844c6f5070a8c73fdfb3ed78d1eddca1be31192797ad53d47f98b10b74cc47a325d2bc07f6ee46f05e26cf46a6433efb\n974059da7f13da3694ad33f95829eb1e95f3f3bfc35ef5ef0247547d3d8ee919926c3bd473ab8b877ff4faa07fcc8580\nb6f025aecc5698f6243cc531782b760f946efebe0c79b9a09fe99de1da9986d94fa0057003d0f3631c39783e6d84c7d5\nb0c5358bc9c6dfe181c5fdf853b16149536fbb70f82c3b00db8d854aefe4db26f87332c6117f017386af8b40288d08f9\na3106be5e52b63119040b167ff9874e2670bd059b924b9817c78199317deb5905ae7bff24a8ff170de54a02c34ff40a4\nad846eb8953a41c37bcd80ad543955942a47953cbc8fb4d766eac5307892d34e17e5549dc14467724205255bc14e9b39\nb16607e7f0f9d3636e659e907af4a086ad4731488f5703f0917c4ce71a696072a14a067db71a3d103530920e1ec50c16\n8ed820e27116e60c412c608582e9bb262eaaf197197c9b7df6d62b21a28b26d49ea6c8bb77dfde821869d9b58025f939\n97bc25201d98cde389dd5c0c223a6f844393b08f75d3b63326343073e467ac23aacef630ddc68545ea874299ba4a3b4f\nb73c9695ad2eefd6cc989a251c433fab7d431f5e19f11d415a901762717d1004bb61e0cc4497af5a8abf2d567e59fef4\nadaabe331eea932533a7cc0cf642e2a5e9d60bbc92dd2924d9b429571cbf0d62d32c207b346607a40643c6909b8727e2\na7b1bbfe2a5e9e8950c7cb4daab44a40c3ffab01dc012ed7fe445f4af47fa56d774a618fafe332ab99cac4dfb5cf4794\nb4a3c454dcd5af850212e8b9ba5fe5c0d958d6b1cabbf6c6cfe3ccbc4d4c943309c18b047256867daf359006a23f3667\na5c0b32f6cef993834c1381ec57ad1b6f26ae7a8190dd26af0116e73dadc53bb0eeb1911419d609b79ce98b51fdc33bc\nac2f52de3ecf4c437c06c91f35f7ac7d171121d0b16d294a317897918679f3b9db1cef3dd0f43adb6b89fe3030728415\n94722ae6d328b1f8feaf6f0f78804e9b0219de85d6f14e8626c2845681841b2261d3e6a2c5b124086b7931bf89e26b46\na841a0602385d17afabca3a1bb6039167d75e5ec870fea60cfcaec4863039b4d745f1a008b40ec07bca4e42cb73f0d21\n8c355f0a1886ffced584b4a002607e58ff3f130e9de827e36d38e57cb618c0cb0b2d2dea2966c461cb3a3887ede9aef1\na6a9817b0fc2fd1786f5ba1a7b3d8595310987fb8d62f50a752c6bb0b2a95b67d03a4adfd13e10aa6190a280b7ee9a67\na1d2e552581ecbafeaef08e389eaa0b600a139d446e7d0648ac5db8bbbf3c438d59497e3a2874fc692b4924b87ff2f83\na1b271c55389f25639fe043e831e2c33a8ba045e07683d1468c6edd81fedb91684e4869becfb164330451cfe699c31a8\n8c263426e7f7e52f299d57d047a09b5eeb893644b86f4d149535a5046afd655a36d9e3fdb35f3201c2ccac2323a9582e\nb41c242a7f7880c714241a97d56cce658ee6bcb795aec057a7b7c358d65f809eb901e0d51256826727dc0dc1d1887045\n93001b9445813c82f692f94c0dc1e55298f609936b743cf7aae5ebfa86204f38833d3a73f7b67314be67c06a1de5682d\n82087536dc5e78422ad631af6c64c8d44f981c195ddea07d5af9bb0e014cdc949c6fa6e42fce823e0087fdb329d50a34\n8e071861ceba2737792741c031f57e0294c4892684506b7c4a0fc8b2f9a0a6b0a5635de3d1e8716c34df0194d789ae86\nb471c997e1e11774bd053f15609d58838a74073a6c089a7a32c37dd3f933badf98c7e5833263f3e77bc0d156a62dd750\n8d2d8686fb065b61714414bb6878fff3f9e1e303c8e02350fd79e2a7f0555ded05557628152c00166ce71c62c4d2feaa\nae4c75274d21c02380730e91de2056c0262ffcecf0cbdb519f0bdb0b5a10ae2d4996b3dc4b3e16dbaea7f0c63d497fef\n97140d819e8ca6330e589c6debdee77041c5a9cedb9b8cbd9c541a49207eeb7f6e6b1c7e736ec8ba6b3ab10f7fcd443a\naf6659f31f820291a160be452e64d1293aa68b5074b4c066dac169b8d01d0179139504df867dc56e2a6120354fc1f5be\na5e5d8088a368024617bfde6b731bf9eee35fc362bed3f5dfdd399e23a2495f97f17728fec99ca945b3282d1858aa338\na59cfc79d15dbdde51ab8e5129c97d3baba5a0a09272e6d2f3862370fdbaf90994e522e8bd99d6b14b3bb2e9e5545c6f\na30499b068083b28d6c7ddcc22f6b39b5ec84c8ee31c5630822c50ea736bb9dca41c265cffc6239f1c9ef2fd21476286\n88ffe103eca84bbe7d1e39a1aa599a5c7c9d5533204d5c4e085402a51441bb8efb8971efe936efbbfa05e5cb0d4b8017\nb202356fbf95a4d699154639e8cb03d02112c3e0128aab54d604645d8510a9ba98936028349b661672c3a4b36b9cb45d\n8b89bb6574bf3524473cff1ff743abcf1406bd11fb0a72070ccd7d8fce9493b0069fb0c6655252a5164aee9e446ea772\n93247b1038fa7e26667ee6446561d4882dc808d1015daafb705935ddc3598bb1433182c756465960480f7b2de391649e\nb027f94d3358cbb8b6c8c227300293a0dee57bf2fee190a456ad82ecfb6c32f8090afa783e2ab16f8139805e1fb69534\na18bb1849b2f06c1d2214371031d41c76ffa803ee3aa60920d29dbf3db5fbfac2b7383d5d0080ba29ce25c7baa7c306b\n827bf9fd647e238d5ac961c661e5bbf694b4c80b3af8079f94a2484cb8fba2c8cf60e472ebcd0b0024d98ae80ad2ff5a\n838e891218c626a7f39b8fd546b013587408e8e366ecc636b54f97fa76f0a758bc1effa1d0f9b6b3bc1a7fcc505970a0\n836523b5e8902d6e430c6a12cff01e417d2bd7b402e03904034e3b39755dee540d382778c1abe851d840d318ebedce7f\n850a77dda9ac6c217e2ef00bf386a1adec18b7f462f52801c4f541215690502a77ef7519b690e22fdf54dc2109e0ca38\na8265c6ae7b29fc2bda6a2f99ced0c1945dd514b1c6ca19da84b5269514f48a4f7b2ccbab65c9107cfd5b30b26e5462f\nab3d02ee1f1267e8d9d8f27cc388e218f3af728f1de811242b10e01de83471a1c8f623e282da5a284d77884d9b8cde0e\n831edaf4397e22871ea5ddee1e7036bab9cc72f8d955c7d8a97f5e783f40532edbbb444d0520fefcffeab75677864644\n80484487977e4877738744d67b9a35b6c96be579a9faa4a263e692295bb6e01f6e5a059181f3dd0278e2c3c24d10a451\naae65a18f28c8812617c11ecf30ad525421f31fb389b8b52d7892415e805a133f46d1feca89923f8f5b8234bd233486a\nb3a36fd78979e94288b4cefed82f043a7e24a4a8025479cc7eb39591e34603048a41ee606ee03c0b5781ebe26a424399\nb748b3fc0d1e12e876d626a1ba8ad6ad0c1f41ea89c3948e9f7d2666e90173eb9438027fadcd741d3ae0696bd13840f1\nacdd252d7c216c470683a140a808e011c4d5f1b4e91aeb947f099c717b6a3bad6651142cde988330827eb7d19d5fb25c\nb9a25556a6ca35db1ed59a1ec6f23343eab207a3146e4fc3324136e411c8dba77efd567938c63a39c2f1c676b07d8cdb\na8db6aef8f5680d2bdb415d7bcaae11de1458678dcb8c90c441d5986c44f83a9e5855662d0c1aace999172d8628d8fe1\naf58147108e9909c3a9710cc186eab598682dca4bfd22481e040b8c000593ecb22c4ede4253ac9504e964dfa95a9b150\n8dd8bb70f1c9aec0fcc9478f24dfc9c3c36c0bf5ff7a67c017fa4dab2ec633fbd7bc9d8aa41ea63e2696971ed7e375f5\naa98d600b22aff993a4d7a3ccabd314e1825b200cb598f6b797d7e4d6a76d89e34a4d156c06bddfc62f2ef9b4c809d1d\n8a8fc960d6c51294b8205d1dabe430bef59bda69824fa5c3c3105bef22ac77c36d2d0f38ffc95ce63731de5544ccbeff\nb6d1020efe01dc8032bd1b35e622325d7b9af9dcd5c9c87c48d7d6ebc58644454294c59b7f4b209204b5b1f899f473bf\n8a750dc9fe4891f2dfe5759fb985939810e4cdc0b4e243ff324b6143f87676d8cb4bcb9dfb01b550801cedcaaa5349e2\n98c13142d3a9c5f8d452245c40c6dae4327dd958e0fda85255ea0f87e0bcbaa42a3a0bd50407ed2b23f9f6317a8a4bc5\n99f2b83d9ec4fc46085a6d2a70fd0345df10f4a724c1ba4dee082a1fde9e642e3091992ebf5f90a731abcb6ec11f6d9b\nb218546ab2db565b2489ea4205b79daa19ef2acbf772ccaaa5e40150e67ea466090d07198444b48e7109939aa2319148\n84f9d1d868e4b55e535f1016558f1789df0daa0ead2d13153e02f715fe8049b1ce79f5bc1b0bbbb0b7e4dd3c04783f3f\n80d870d212fbddfdda943e90d35a5a8aa0509a7a1e7f8909f2fcb09c51c3026be47cc7a22620a3063406872105b4f81a\nb5b15138ff6551fac535d4bbce2ea6adc516b6b7734b4601c66ec029da2615e3119dc9ad6a937344acfd7b50e4a1a2ae\n95d2f97652086e7ceb54e1d32692b1c867ffba23c4325740c7f10d369283d1b389e8afa0df967831ade55696931e7934\n8a5b580403e1a99cd208f707e8ce0d3f658c8280417683f69008d09cc74d835a85f7380f391b36ead9ac66d9eedd1cbe\na8b0c90bff34c86720637b5a2081f0f144cfe2205c1176cacd87d348609bc67af68aed72414dc9aa6f44a82c92c2a890\n865abbdd96c496892c165a8de0f9e73348bf24fce361d7a9048710178a3625881afb0006e9f5ee39124866b87904c904\nace67bb994adef4b6f841cdf349195608030044562780a7e9b00b58a4ff117268a03ff01e5a3a9d9d7eff1dd01f5f4bf\nb9371d59185b3d2d320d3fefeadb06ba2aa7d164352fb8dc37571509509fa214d736d244ac625a09a033a10d51611e2e\na8ef992771422dcf2d6d84386fde9fe5dba88bfded3dfcd14074ca04331b4fd53a7f316615cdfaf10ed932cbb424a153\n868cbc75f8f789ea45eded2768a1dac0763347e0d8e8028d316a21005f17be179d26d5965903e51b037f2f57fe41765d\nb607111bcdfd05fa144aa0281b13ee736079ebbbf384d938a60e5e3579639ed8ef8eb9ca184868cdb220a8e130d4a952\naca55702af5cae4cae65576769effd98858307a71b011841c563b97c2aa5aeb5c4f8645d254f631ed1582df3dbbf17da\nb9b5cbace76246e80c20dfcc6f1e2c757a22ab53f7fd9ff8a1d309538b55174e55e557a13bf68f095ff6a4fa637ef21a\n8571b0a96871f254e2397c9be495c76379faf347801cb946b94e63212d6a0da61c80e5d7bebbabcd6eaa7f1029172fe5\n902540326281e6dc9c20d9c4deaaf6fbbbcc3d1869bd0cf7f081c0525bea33df5cfa24ead61430fda47fb964fcc7994b\n841af09279d3536a666fa072278950fabf27c59fc15f79bd52acb078675f8087f657929c97b4bc761cbade0ecb955541\na1f958b147ddf80ab2c0746ba11685c4bae37eb25bfa0442e7e1078a00d5311d25499da30f6d168cb9302ea1f2e35091\n863d939381db37d5a5866964be3392a70be460f0353af799d6b3ed6307176972686bd378f8ad457435a4094d27e8dfb7\n835cd4d7f36eff553d17483eb6c041b14280beb82c7c69bca115929658455a1931212976c619bafb8179aed9940a8cc6\n8d0770e3cb8225e39c454a1fc76954118491b59d97193c72c174ecc7613051e5aed48a534016a8cf0795c524f771a010\n91aa4edb82f6f40db2b7bd4789cc08786f6996ebed3cb6f06248e4884bc949793f04a4c5ea6eefe77984b1cc2a45d699\n8fb494ca2449f659ff4838833507a55500a016be9293e76598bbae0a7cb5687e4693757c2b6d76e62bd6c7f19ed080bb\nb59b104449a880a282c1dd6a3d8debb1d8814ef35aab5673c1e500ee4cb0e840fb23e05fa5a0af92509c26b97f098f90\naca908e3bad65e854ae6be6c5db441a06bcd47f5abafdfa8f5a83c8cd3c6e08c33cab139c45887887a478338e19ceb9f\n806f5d802040313a31964fc3eb0ee18ac91b348685bed93c13440984ee46f3d2da7194af18c63dea4196549129660a4e\nae4b2dca75c28d8f23b3ab760b19d839f39ff5a3112e33cb44cff22492604a63c382b88ec67be4b0266924dd438c3183\n99d1c29c6bd8bf384e79cd46e30b8f79f9cbc7d3bf980e9d6ffba048f0fc487cac45c364a8a44bb6027ad90721475482\na16e861c1af76d35528c25bf804bfc41c4e1e91b2927d07d8e96bffe3a781b4934e9d131ecf173be9399800b8269efac\na253303234fb74f5829060cdcef1d98652441ab6db7344b1e470d195a95722675988048d840201c3b98e794b1e8b037c\n905ac8a0ea9ce0eb373fb0f83dd4cbe20afb45b9d21ae307846fd4757d4d891b26a6711924e081e2b8151e14a496da18\nb485315791e775b9856cc5a820b10f1fa5028d5b92c2f0e003ba55134e1eddb3eb25f985f2611a2257acf3e7cfdfab5e\nb6189c0458b9a043ebc500abc4d88083a3487b7ac47ed5e13ab2a41e0a1bee50d54a406063f92bc96959f19e822a89a7\na30e15f995fd099a223fc6dc30dad4b8d40bee00caa2bc3223ba6d53cd717c4968a3e90c4618c711ed37cc4cd4c56cf3\na1b1ed07fcc350bb12a09cd343768d208fc51a6b3486f0ece8f5a52f8a5810b4bc7ab75582ec0bc2770aed52f68eace5\n88aa739fbae4bece147ba51a863e45d5f7203dbc3138975dc5aef1c32656feb35f014d626e0d5b3d8b1a2bda6f547509\nab570f3c8eabfca325b3a2ea775ef6b0c6e6138c39d53c2310329e8fb162869fde22b0e55688de9eb63d65c37598fca3\n89d274762c02158e27cb37052e296a78f2b643eb7f9ae409f8dac5c587d8b4d82be4ef7c79344a08ebec16ac4a895714\n99c411d2ad531e64f06e604d44c71c7c384424498ecd0a567d31ec380727fb605af76643d0d5513dd0a8d018076dd087\n80d0777fa9f79f4a0f0f937d6de277eec22b3507e2e398f44b16e11e40edf5feff55b3b07a69e95e7e3a1621add5ed58\nb2430a460783f44feb6e4e342106571ef81ad36e3ddd908ec719febeb7acaf4b833de34998f83a1dab8f0137a3744c11\nb8f38ccfc7279e1e30ad7cefc3ea146b0e2dff62430c50a5c72649a4f38f2bac2996124b03af2079d942b47b078cc4f8\na178a450a62f30ec2832ac13bbc48789549c64fc9d607b766f6d7998558a0e2fad007ae0148fc5747189b713f654e6ba\n98c5ede296f3016f6597f7ccc5f82c88fd38ed6dc3d6da3e4a916bfd7c4c95928722a1d02534fe89387c201d70aa6fd2\na8cc5e98573705d396576e022b2ba2c3e7c7ece45cd8605cb534b511763682582299e91b4bb4100c967019d9f15bbfaf\n848480ea7b7d9536e469da721236d932870b7bbee31ccf7ae31b4d98d91413f59b94a1e0d1786ee7342295aa3734969c\nb88ea38f9ee432f49e09e4e013b19dff5a50b65453e17caf612155fff6622198f3cba43b2ea493a87e160935aaaf20a9\n949376934a61e0ef8894339c8913b5f3b228fa0ae5c532ad99b8d783b9e4451e4588541f223d87273c0e96c0020d5372\n96f90bb65ca6b476527d32c415814b9e09061648d34993f72f28fae7dc9c197e04ef979f804076d107bb218dfd9cb299\na4402da95d9942c8f26617e02a7cef0ebc4b757fac72f222a7958e554c82cc216444de93f659e4a1d643b3e55a95d526\n81179cbc26a33f6d339b05ea3e1d6b9e1190bd44e94161ae36357b9cdf1e37d745d45c61735feed64371fe5384102366\nad4dc22bdbd60e147fdac57d98166de37c727f090059cfc33e5ee6cf85e23c2643996b75cf1b37c63f3dc9d3c57ffa18\n8a9b1b93dc56e078ce3bb61c2b0088fd6c3e303ba6b943231cc79d4a8e8572f4109bbde5f5aa7333aae3287909cb0fe2\n8876ef583bc1513322457a4807d03381ba1f4d13e179260eaa3bddfede8df677b02b176c6c9f74c8e6eab0e5edee6de6\nb6c67e228bf190fbaeb2b7ec34d4717ce710829c3e4964f56ebb7e64dc85058c30be08030fa87cc94f1734c5206aef5f\na00cb53b804ee9e85ce12c0103f12450d977bc54a41195819973c8a06dcb3f46f2bf83c3102db62c92c57ab4dd1e9218\na7675a64772eefddf8e94636fb7d1d28f277074327c02eea8fae88989de0c5f2dc1efed010f4992d57b5f59a0ab40d69\n8d42bb915e0bf6a62bcdf2d9330eca9b64f9ec36c21ae14bf1d9b0805e5e0228b8a5872be61be8133ad06f11cb77c363\na5b134de0d76df71af3001f70e65c6d78bed571bc06bfddf40d0baad7ea2767608b1777b7ef4c836a8445949877eeb34\naeadbc771eaa5de3a353229d33ed8c66e85efbd498e5be467709cb7ff70d3f1a7640002568b0940e3abd7b2da81d2821\n8c28da8e57a388007bd2620106f6226b011ee716a795c5d9f041c810edf9cf7345b2e2e7d06d8a6b6afa1ee01a5badc1\n8ed070626a4d39ffd952ddb177bc68fd35b325312e7c11694c99b691f92a8ea7734aeb96cf9cc73e05b3c1b1dcad6978\nada83e18e4842f3d8871881d5dbc81aed88a1328298bfdc9e28275094bd88d71b02e7b8501c380fa8d93096cbc62f4fb\n8befc3bec82dcf000a94603b4a35c1950ba5d00d4bed12661e4237afa75062aa5dcef8eac0b9803136c76d2dd424a689\n97c6f36c91ca5ca9230bfcbf109d813728b965a29b62e5f54c8e602d14a52ac38fa1270de8bfe1ab365426f3fc3654c7\nb01d192af3d8dbce2fe2fece231449e70eb9ac194ec98e758da11ca53294a0fa8c29b1d23a5d9064b938b259ea3b4fb5\n819a2c20646178f2f02865340db1c3c6ebc18f4e6559dd93aa604388796a34bd9fed28ad3ccc8afc57a5b60bb5c4e4ec\na9ffc877470afc169fecf9ec2dc33253b677371938b0c4ffa10f77bb80089afa2b4488437be90bb1bcf7586a6f4286e3\nb533051c7ce7107176bcb34ad49fdb41fac32d145854d2fe0a561c200dcf242da484156177e2c8f411c3fdf1559ecf83\n8fe2caff2e4241d353110a3618832f1443f7afe171fd14607009a4a0aa18509a4f1367b67913e1235ac19de15e732eb1\n84705c6370619403b9f498059f9869fdf5f188d9d9231a0cb67b1da2e8c906ead51b934286497293698bba269c48aa59\n899dddf312a37e3b10bdaaacc1789d71d710994b6ee2928ac982ad3fd8a4f6167672bc8bf3419412711c591afe801c28\nb2f7916d946b903ded57b9d57025386143410a41a139b183b70aeca09cf43f5089ead1450fce4e6eb4fba2c8f5c5bbe5\n8d5f742fe27a41623b5820914c5ca59f82246010fa974304204839880e5d0db8bc45ebab2ad19287f0de4ac6af25c09e\nb93d4a1f6f73ac34da5ffbd2a4199cf1d51888bc930dc3e481b78806f454fcb700b4021af7525b108d49ebbbaa936309\n8606f8d9121512e0217a70249937e5c7f35fbfe019f02248b035fa3a87d607bc23ae66d0443e26a4324f1f8e57fd6a25\nb21312cdec9c2c30dd7e06e9d3151f3c1aceeb0c2f47cf9800cce41521b9d835cb501f98b410dc1d49a310fdda9bc250\na56420b64286bdddda1e212bba268e9d1ba6bdb7132484bf7f0b9e38099b94a540884079b07c501c519b0813c184f6b4\n80b2cf0e010118cb2260f9c793cef136f8fa7b5e2711703735524e71d43bce2d296c093be41f2f59118cac71f1c5a2ff\nadcb12d65163804d2f66b53f313f97152841c3625dbbda765e889b9937195c6fcd55d45cc48ebffabb56a5e5fe041611\n8b8a42e50dc6b08ab2f69fc0f6d45e1ea3f11ba0c1008ee48448d79d1897356599e84f7f9d8a100329ed384d6787cfc4\naaa9c74afa2dec7eccfbd8bb0fc6f24ed04e74c9e2566c0755a00afdfdf3c4c7c59e2a037ec89c2f20af3fae1dd83b46\naa9f6e8fd59187171c6083ae433627d702eb78084f59010ff07aff8f821f7022ef5fbbe23d76814d811b720a8bfa6cc3\na56a3ded501659ad006d679af3287080b7ee8449e579406c2cae9706ef8bf19c1fc2eb2a6f9eaf2d3c7582cded73e477\n81971e077c1da25845840222b4191e65f6d242b264af4e86800f80072d97d2a27a6adc87c3a1cb1b0dd63d233fbafa81\na6fa5453c4aaad2947969ee856616bf6448224f7c5bf578f440bcfc85a55beb40bef79df8096c4db59d1bd8ef33293ea\n87c545adbfaaf71e0ab4bac9ae4e1419718f52b0060e8bb16b33db6d71b7248ae259d8dd4795b36a4bbb17f8fae9fd86\nb4c7a9bc0910e905713291d549cec5309e2d6c9b5ea96954489b1dff2e490a6c8b1fa1e392232575f0a424ba94202f61\n802350b761bcaba21b7afe82c8c6d36ee892b4524ab67e2161a91bbfa1d8e92e7e771efb1f22c14126218dd2cb583957\nb4e7ddb9143d4d78ea8ea54f1c908879877d3c96ee8b5e1cb738949dcfceb3012a464506d8ae97aa99ea1de2abf34e3d\na49a214065c512ad5b7cc45154657a206ef3979aa753b352f8b334411f096d28fd42bca17e57d4baaafb014ac798fc10\n8a80c70a06792678a97fe307520c0bf8ed3669f2617308752a2ab3c76fdf3726b014335a9b4c9cbcfc1df3b9e983c56f\na34721d9e2a0e4d08995a9d986dc9c266c766296d8d85e7b954651ad2ca07e55abb1b215898ee300da9b67114b036e0d\n8cfce4564a526d7dca31e013e0531a9510b63845bbbd868d5783875ed45f92c1c369ce4a01d9d541f55f83c2c0a94f03\nab3f5f03a5afc727778eb3edf70e4249061810eba06dc3b96b718e194c89429c5bfbec4b06f8bce8a2118a2fdce67b59\naa80c2529fc19d428342c894d4a30cb876169b1a2df81a723ab313a071cba28321de3511a4de7846207e916b395abcc9\n82b7828249bf535ef24547d6618164b3f72691c17ca1268a5ee9052dba0db2fdd9987c8e083307a54399eab11b0f76b1\n8fbcb56b687adad8655a6cf43364a18a434bf635e60512fad2c435cf046f914228fb314f7d8d24d7e5e774fb5ffb1735\na3010a61a2642f5ebbce7b4bc5d6ecb3df98722a49eb1655fe43c1d4b08f11dfad4bcec3e3f162d4cc7af6a504f4d47c\nb3dcc0fdf531478e7c9ef53190aa5607fd053a7d2af6c24a15d74c279dbb47e3c803a1c6517d7e45d6534bb59e3527f5\n8648f6316c898baaca534dff577c38e046b8dfa8f5a14ee7c7bc95d93ae42aa7794ba0f95688a13b554eeb58aeedf9ba\n89fca6fc50407695e9315483b24f8b4e75936edf1475bcf609eed1c4370819abac0e6a7c3c44f669560367d805d9ba63\na367a17db374f34cd50f66fb31ba5b7de9dbe040f23db2dcc1d6811c0e863606f6c51850af203956f3399000f284d05f\n91030f9ca0fff3e2dbd5947dcf2eba95eb3dbca92ee2df0ed83a1f73dbf274611af7daf1bb0c5c2ee46893ab87013771\n84d56181f304ce94015ea575afeef1f84ea0c5dbb5d29fb41f25c7f26077b1a495aff74bd713b83bce48c62d7c36e42d\n8fe2f84f178739c3e2a2f7dcac5351c52cbed5fa30255c29b9ae603ffd0c1a181da7fb5da40a4a39eec6ce971c328fcf\na6f9b77b2fdf0b9ee98cb6ff61073260b134eb7a428e14154b3aa34f57628e8980c03664c20f65becfe50d2bdd2751d4\n8c6760865445b9327c34d2a1247583694fbeb876055a6a0a9e5cb460e35d0b2c419e7b14768f1cc388a6468c94fd0a0f\naf0350672488a96fe0089d633311ac308978a2b891b6dbb40a73882f1bda7381a1a24a03e115ead2937bf9dcd80572ad\na8e528ec2ee78389dd31d8280e07c3fdd84d49556a0969d9d5c134d9a55cd79e1d65463367b9512389f125ed956bc36a\n942c66589b24f93e81fe3a3be3db0cd4d15a93fb75260b1f7419f58d66afaa57c8d2d8e6571536790e2b415eec348fd9\n83fe4184b4b277d8bf65fb747b3c944170824b5832751057e43465526560f60da6e5bbee2f183cb20b896a20197168c7\n88a71aada494e22c48db673d9e203eef7a4e551d25063b126017066c7c241ee82bedaa35741de4bd78a3dd8e21a8af44\n8c642a3186ca264aac16ee5e27bd8da7e40e9c67ae159b5d32daa87b7de394bf2d7e80e7efb1a5506c53bfd6edd8c2c3\n81855d6de9a59cef51bef12c72f07f1e0e8fe324fcc7ec3f850a532e96dcd434c247130610aaee413956f56b31cbb0dc\na01e61390dcd56a58ad2fcdb3275704ddfbedef3ba8b7c5fce4814a6cdd03d19d985dba6fd3383d4db089444ea9b9b4d\n96494e89cbf3f9b69488a875434302000c2c49b5d07e5ff048a5b4a8147c98291ae222529b61bb66f1903b2e988e5425\nb9689b3e8dddc6ec9d5c42ba9877f02c1779b2c912bba5183778dc2f022b49aed21c61c8ec7e3c02d74fe3f020a15986\na2a85e213b80b0511395da318cbb9935c87b82c305f717a264155a28a2ea204e9e726bae04ce6f012e331bd6730cbb9d\n91b70f44c7d8c5980ce77e9033a34b05781cbe773854d3f49d2905cc711a3d87c20d5d496801ad6fd82438874ce732b8\n884596417ff741bb4d11925d73852ffeea7161c7f232be3bdce9e6bbe7884c3a784f8f1807356ae49d336b7b53a2b495\nae2aed8ab6951d8d768789f5bc5d638838d290d33ccc152edfb123e88ba04c6272b44294b0c460880451ad7b3868cc6a\n89d8ebfb9beebc77189d27de31c55f823da87798a50bca21622cbf871e5d9f1d3182cf32ee9b90f157e6ce298e9efccf\nafd00a4db4c2ed93cf047378c9402914b6b3255779f3bb47ded4ab206acb7eaebba0fd7762928e681b1aebcfee994adc\na2e49b6cd32e95d141ebc29f8c0b398bb5e1a04945f09e7e30a4062142111cd7aa712ac0e3e6394cfb73dd854f41ad77\nae8e714ab6e01812a4de5828d84060f626358bb2b955f6fb99ae887b0d5ce4f67ebc079ab9e27d189bf1d3f24f7c2014\na3100c1eebf46d604e75ebf78569c25acf938d112b29ccbe1a91582f6bd8ef5548ae3961c808d3fb73936ac244e28dbc\na9a02dcff0e93d47ead9cdddc4759971c2d848580bf50e117eb100cafca6afeaa7b87208513d5f96b1e1440ffc1b0212\n894ab01462137e1b0db7b84920a3b677fbb46c52b6f4c15320ef64f985e0fc05cec84cd48f389ce039779d5376966ea3\nb1e40e8399ee793e5f501c9c43bde23538e3ce473c20a9f914f4a64f5b565748d13ab2406efe40a048965ee4476113e4\na5a7d97a19e636238968670a916d007bf2ce6ae8e352345d274101d0bbe3ac9b898f5b85814a7e4c433dd22ac2e000ff\nb6394c43b82923231d93fd0aa8124b757163ba62df369898b9481f0118cb85375d0caac979a198ece432dbb4eb7cc357\n82d522ae3ff4fe2c607b34b42af6f39c0cf96fcfe1f5b1812fca21c8d20cece78376da86dcbd6cdb140e23c93ae0bcb2\nb6e0d986383bc4955508d35af92f2993e7e89db745f4525948c5274cfd500880cb5a9d58a5b13d96f6368bb266a4433e\nb0b4325772ec156571d740c404e1add233fb693579f653b0fae0042b03157d3b904838f05c321d2d30f2dbd27c4d08ad\nac41367250263a2099006ef80c30bac1d2f25731d4874be623b6e315c45b0dc9a65f530fce82fb3dc25bd0610008c760\nb6c0b1ed7df53da04a6f3e796d3bfa186f9551c523bc67898bc0ecfc6b4a4a22f8c4d3bfc740ebf7b9fa5b0ea9431808\n8e78fca17346601219d01e5cd6a4837161a7c8f86fe2a8d93574d8006da5f06ae7c48eea7d2b70992c2a69184619663c\na21f91f47e04fafbfafacf3185b6863766a2d0c324ccac2c3853a4748af5897dbbe31d91473b480f646121339c9bae2d\na464d68786ab1fc64bd8734fce0be6fbe8dc021d3e771ff492ada76eedff466577c25e282b7c8ab4c1fd95ef5ff3631e\n829a24badc7714081e03509ccfb00818ce40430682c1c0e4a399cd10b690bda1f921aabcbf1edfb1d8a2e98e6c0cedd6\n87ccf7e4bbcb818ef525435e7a7f039ecbb9c6670b0af163173da38cbdb07f18bc0b40b7e0c771a74e5a4bc8f12dfe2c\n94087bd2af9dbeb449eb7f014cfbf3ee4348c0f47cde7dc0ad401a3c18481a8a33b89322227dee0822244965ae5a2abb\n896b83ed78724dac8a3d5a75a99de8e056a083690152c303326aa833618b93ef9ec19ab8c6ef0efe9da2dbcccac54431\n821e6a0d7ccf3c7bd6a6cc67cde6c5b92fb96542cb6b4e65a44bbc90bbc40c51ff9e04702cb69dd2452f39a2ff562898\nb35b2096cda729090663a49cb09656c019fef1fc69a88496028d3a258ad2b3fd6d91ab832163eaa0077989f647e85e7e\nb7857ef62c56d8bce62476cdb2ab965eddff24d932e20fc992bd820598686defe6cc0a7232d2be342696c2990d80721a\nb343d974dfda3f6589043acd25d53aecf7c34b1e980ae135a55cda554ff55e531bc7c2dfe89b0d2c30e523c7b065dad1\n8d139e16a73cd892b75f3f4e445a10d55d1118f8eeafc75b259d098338419e72e950df6ca49cb45677a3c4e16fb19cdc\n817b8535bd759da392b2c5760c51b3952ecf663662a137c997f595c533cd561ed7e655673c11144242160e41d1f2dd71\n817ee0f0819b0ccb794df17982d5b4332abff5fec5e23b69579db2767855642156d9b9acccf6ceab43332ccc8d2744dc\n9835d2b652aec9b0eba0c8e3b6169567e257a6a3f274ec705dbc250ee63f0f8e4b342e47b9e0c280c778208483d47af8\nb78c40177f54f0e6d03083a4f50d8e56b5aafdb90f1b047bb504777d6e27be5a58170330aee12fbaa5f1e9d4f944acfc\nab8eebacf3806fac7ab951f6a9f3695545e2e3b839ca399a4ef360a73e77f089bb53d3d31dbd84ddfde55e5f013626e0\n96c411fc6aecca39d07d2aff44d94b40814d8cfc4ee5a192fd23b54589b2801694d820a0dd217e44863ccff31dda891b\n8249c424a0caf87d4f7ff255950bbc64064d4d1b093324bfe99583e8457c1f50e6996e3517bf281aa9b252c2a7c5a83a\nacf6ed86121821a3dd63f3875b185c5ebe024bdb37878c8a8d558943d36db0616545a60db90789c0925295f45d021225\na37f155621a789f774dd13e57016b8e91b3a2512b5c75377ec8871b22a66db99655d101f57acaecd93115297caabfc21\n92e60ee245bd4d349f1c656e034b1a7f0c6415a39ac4c54d383112734305488b3b90b0145024255735e0a32f38dba656\nacec614e562ccfc93366309cfdc78c7d7ee0a23e3a7782a4fc4807b8803e6ebfb894a489d03e9a3c817ff2ec14813eba\nb912f9dd26ed552cb14b007b893e6ed2494d12517e5761dbeb88521270144f8c3eb9571a0ad444b30a8a65e80bd95996\n8375408dae79c547a29e9a9e5d4ec8241b36b82e45e4ca3b0c36d2227c02d17bb171528d3778eac3bbdc75d6c4e8a367\n8c2d0e6e4406836da112edbbb63996408bb3cda4a2712fd245e4bb29a0100fdc89a2746d859b84a94565bc1cfa681813\na7431bf59e111c072d28c97626cd54fcdf018421d053a787d2aef454b91251ee8ff9d3702d06b088f92b9ad2bbebff15\n8f3659b0fbeb90b7f30b7a49233325e806551a32911a654dca86e290b314483bbb33fe6482387bc48c35d85c1dd0441c\n8dca5ba23f0bb76f7dacabf12886053552ba829a72827b472a2f01e19a893155cdce65f1fb670000f43e8c75ba015a31\n8c1514c083c77624eeb5d995d60994a2866192e15c4474d0be4189fae0e9dbd62494ebb4c02fbc176b53be548abbc5a1\n80498d2ed153381baf3b0f81da839ed0eea6af5796c422b8e59be805dba48c4395bb97824ac308170bb4f14f319c5ddf\n84f5ebc3bf96362457993e9fa31493c31c4283075e2403f63d581b6b0db8a3df294b2085643f2007f4de38cb5d627776\n958e6e38774da518193a98397978dbc73d1c3827b4996ec00b4183da2c305a187a0ada9aa306242814b229a395be83c9\nab8b8fbf73845615e7fab3e09e96cc181159eab09f36b4c1239b3c03313c9aeb4bbb51e16316fe338b2319ed2571b810\n977e4e33b33bd53394e591eba4f9a183e13704c61e467d74b28f4ad0b69aa51501a5221cb1e0e42bcb548ca518caa619\na9bb7ecb9846cc30d04aad56d253c3df7004cebb272f6adf7b40a84adef9f57291e0d08d64c961b9fc406cdb198aab9b\n8d2b72dc36406a545a9da44e1fddfb953d4894710ca026d6421a4ac91e02d0373a599f2acfe41d8258bc9679cf6f43d3\n904192fc8fe250f61ecb8a36abbbccae85f592bbf00c10039c30b5a1c733d752a04e4fd8a1000c6578616f8a16aa83a3\n87f5fdfe20bbbf931b529ec9be77bbfcc398cad9d932d29f62c846e08a91d2f47ae56ad5345122d62a56f629f9a76c4d\n84cc3a53b2e7b7e03015f796b6cb7c32d6ded95c5b49c233ac27fafa792994b43c93cda6e618b66fce381f3db69838ba\naab58da10d7bbe091788988d43d66a335644f3d0897bbc98df27dcc0c0fcee0ac72e24f1abdd77e25196a1d0d0728e98\na10ea8677c2b7da563d84aa91a314a54cab27bb417c257826ebdd3b045d2a0f12729fe630bbbf785d04874f99f26bee8\nacc4970ef2a4435937a9b8a5a5a311226ca188d8f26af1adfcd6efb2376a59155b9a9ff1cff591bde4b684887d5da6e5\n8dc7cf6fcca483c44eb55e7fb924bf3f76cf79b411ae4b01c6c968910877ac9c166b71350f4d935f19bdffb056477961\nac2dd1182ded2054c2f4dbf27b71a0b517fb57193733a4e4e56aca8a069cff5078ffd3fd033683d076c1c639a4de63c7\n932ec87c450cd0dc678daf8c63cd1bf46124fa472934e517fbbfb78199f288ff7f354b36e0cc6c8739d3f496cfe0913b\nb0d631ced213e8492be60ea334dbe3b7799b86d85d5e8e70d02beef3ae87b1d76e1df3bdb5f7ba8a41904c96f6a64455\n929d7239ead7575867e26b536b8badf2e11ca37840034d0e5c77039f8cce122eff5a1bf6e0bcadde6b3858e9f483d475\naaae5d372d02ee25b14de585af6fbc48f2c7cd2a6af4f08352951b45aa469599eff41e820df642ca1a0f881120e89dbe\nb23c411741a6b059f04fa4f5fd9dd10e2a64915f2de6ea31e39c32f2f347a776a953320e5f7613fcb1167efe502f5c5c\na4581b0ae633fe29c6f09928e5efb16db019eeac57f79fef2fa1d3c9bee42ce0e852bc60b9d0133265373747e52a67a4\n81b33afffd7b2575d4a9a1c5dd6eee675c084f82e06b9b3a52a3c9f76e087f12dca6e0ffddc42fb81ce1adb559d47a38\n89cc890f06b424591556aabdfdbb36d7a23700425e90c9cfed7d3da226b4debe414ac5bdf175273828ce6c5355712514\na4399438be75cfae2bf825496704da5ed9001bed8538d8ac346c8cf0d4407808e9ee67573eb95fe1c6872ac21f639aaa\nad537f7ce74a1ca9a46fc06f15c1c8a6c32363bd6ac78a3c579ed8f84252e38a914cac16709fe65360e822ef47896de4\n8e53b69f5e3e86b86299452e20ea8068b49565d0d0ab5d50ce00158a18403ae44e1b078a3cfd3f919aa81eb049a30c6e\na59f2542c67a430fd3526215c60c02353ee18af2ff87cb6231a2564fe59b8efec421f18d8b8cc7f084675ecf57b3fd05\nb8d9bac93ef56cb4026dd1c731d92260a608fd55b8321e39166678e1dab834d0efddb717685da87786caeb1aaf258089\naa2df56f4c6fe9e0f899116c37302675f796a1608338700f05a13e779eb7cf278e01947864a8c2c74cc9d9a763804446\nb0108ff2e327dcb6982961232bf7a9a0356d4297902f4b38d380ff1b954bfbcae0093df0f133dd9e84d5966c7b1aada7\nb06b813b01fe7f8cf05b79dc95006f0c01d73101583d456278d71cd78638df2b1115897072b20947943fa263ddab0cd6\naa41e6c4d50da8abf0ea3c3901412fe9c9dff885383e2c0c0c50ed2f770ada888a27ea08bbb5342b5ff402e7b1230f12\na48635dbb7debac10cb93d422c2910e5358ba0c584b73f9845028af4a763fd20da8f928b54b27782b27ca47e631ebf38\n80a574c208e994799e4fa9ef895163f33153bc6487491d817c4049e376054c641c4717bda8efbeb09152fa421a7268a7\nb592bfd78ae228afc219c186589b9b0b5c571e314976d1ed5c1642db9159d577679a73c049cfc3dcfefcd5a4f174eeea\naa1f08af3918c61eadf567a5b1a3cdcdfb1b925f23f1f9e3c47889762f4d979d64686ce1ce990055ef8c1030d98daa3b\n857df4cfd56d41c6d0c7fcc1c657e83c888253bae58d33b86e0803a37461be5a57140a77fb4b61108d1d8565091ada1c\n8fae66a72361df509d253012a94160d84d0b2260822c788927d32fd3c89500500908c8f850ef70df68ddaeb077fd0820\naa1dbefc9aef1e7b896ff7303837053c63cfb5c8a3d8204680d3228ac16c23636748fe59286468c99699ae668e769a0c\nb64b1cb2ba28665ed10bad1dddc42f3f97383c39bad463c6615b527302e2aaf93eb6062946d2150bd41c329697d101be\nb6d35e3b524186e9065cee73ea17c082feff1811b5ab5519dd7991cdff2f397e3a79655969755309bd08c7d5a66f5d78\na4dae7f584270743bbba8bb633bdb8bc4dcc43580e53d3e9e509ff6c327e384f14104b5bdfe5c662dc6568806950da37\naae84d3d9ad4e237b07c199813a42ed2af3bf641339c342d9abf7ebec29b5bd06249c4488ce5c9277d87f7b71b3ddd37\nb82a463cf643821618a058bddf9f2acb34ac86a8de42a0fa18c9626e51c20351d27a9575398a31227e21e291b0da183e\n8b6c921e8707aded3ea693f490322971b1a7f64786ef071bc9826c73a06bd8ae6bf21bc980425769627b529d30b253ce\n80724937b27fc50f033c11c50835c632369f0905f413b1713a2b0a2274bec5d7a30438e94193d479ba6679dbe09a65ef\na1d9b259a2ca9cff8af6678b3af0a290c2f51e9cf26d5fe3c6a4fa3d28cbf33cb709b7f78b4f61cb9419427983c61925\n96a3e69a5ed7a98ce59c4481f2ffb75be9542122ad0eb4952c84d4536760df217854d4ec561ce2f4a79d3793c22fa4f4\n990c4d9a4a22d63a8976d34833cafc35936b165f04aed3504e9b435f0de1be4c83b097bbaa062483cf3dee3833b4f5b6\nb9bf5e4b270aec4a0dc219457b5fed984b548892c4b700482525ba1a7df19284464f841dab94abfabcaa9a7b7a757484\nacaecf49cb4786d17cf867d7a93bd4ffee0781766e11b5c1b29089ae0024c859d11b45828fbff5330b888543264d74a9\nb0e1a0865b1e6f9e4a0e31d0c885526ac06678acc526fda5124742a2c303bd0e8871a0cb7951ec8ed9540fc247c8d844\n82b3d327b3d1a631758451e12870816956cd0cef91fcf313a90dd533d5291193a0ff3cc447054564ce68c9b027a7ffd7\na2843602abb98f0f83e000f3415039788da1e9a096bfe8fed6b99bab96df948c814560424ffebe755cb72f40436fb590\nab1c7b43cf838798d1e314bc26e04fc021e99a7bfbfc8ffde62fa8d7f92139de86a377289d5177021154229de01ede15\n95e5cf5dd87ae3aed41b03c6c55f9dfad38dc126b17e7e587c156f7745c8da0bd1d60acb718fc1a03b61344f01e3de4d\n86f021a3762bb47167f80d4ef1b1c873a91fe83409f9704f192efeebbc3ece0729cd2f92f63419907ea38ae47bc907d2\naaa1445dafbbcd645d4332d9806225e9346ee5ac6b22ad45e8922134fe12f3d433f567a6a4c19efdd9d5775a7de1e92f\n8fd7e15688eef75df7b8bca3d61bc9fca4f56e047cdb6d0b864e7d1c4966eac27d6094b0c8482b49739f83ec51050198\n80aab8b4d394eb011d4ec6a4c2815617308c9b847c6fa6a3d7e6af1c79420ef6ff2a13934a398581c40ee4cf1cac02ac\n8970b97ac076a1d8a321ce00eada0edf974a46bf3cc26f6854e4218cdfc8d2b0c32199d9658f254b4fbae5a2c5535f41\na1aa2ec5b03df0a630e73dd048680ed6d3032c324941423f45cd1f16038789e5e75b876a13948732e9079a422f66a9fc\nb5fe5f5e2f2ae2beeb8e95859a02fc45f01f9fb0ebb2bd8ec9ec976b3e806228821a9775096d341d662bc536c4d89452\na2bc1f170b62d0d5788b02391337b2ab157c38e725694e80aeead7383e05599be0e2f0fa27ef05db007061809356e147\na8a69701d4a8d0d972390e9f831fd8e9f424b2c2ef069e56bd763e9e835b3ce5f7cf5de5e5c297c06ace4aa74df1067c\nb43d551af4ff3873557efe3f3fb98e5ede9008492f181f4796dd1a6bcda8b9445c155e8146966baa812afae1abe06b48\nb4b1dae44fd596813f30602ab20e9b1fb20cb1bd650daacc97b7e054e5c0178b8131d439a9e5b142ca483cc012a362b3\nb95b8a94c30a831eaaebea98c65cc5d0228c78afd6603d4aa426d8186aecc951f1a11c33951f51df04c7e6fa43ffb5ae\nb100059624cf9db371bec80013a57a8f296d006c139a8766308f1ea821c7eccc26cad65bc640ab3f6cef9062653bf17d\n8e5a2cb76716e0000d13bce5ef87acac307362a6096f090f5f64e5c5c71a10fddfdee8435e7166ba8c3ad8c3f540f3e4\n93d2c43e21588c1e83c4255c52604b4ac3f40e656352d1827e95dd5222a45aebff9674e34fbbe7ed21eca77bd9b8dcbc\n8aeaed611546bb9073b07512a9a1f38a7f436ab45e11775a0f9754baaf63e9bcc7bb59b47546a5ded5e4ba2f698e3b5f\naf9e6792e74a1163fe27612f999a2f3cfa9048914c5bef69e3b2a75162bb0ce6ece81af699ad7f0c5278a8df0ba000d2\n850bf2d5d34791c371a36404036ad6fdcd8fb62d1bb17a57e88bda7a78ea322397ce24d1abf4d0c89b9cf0b4cc42feb3\n87f7e2a1625e2b7861b11d593aaac933ed08a7c768aebd00a45d893ed295bbb6ed865037b152bb574d70be006ddc1791\n8dcce8f4ad163b29a2348ea15431c2c6ea1189ece88d2790e9f46b9125bd790b22503ec391bc2dee8f35419863b2c50c\nb4bf5266c37f12421dd684b29517982d5e4b65dfdfba5fc7bd7479fd854aabf250627498f1e1188a51c0a88d848ec951\n8651623c690247f747af8fdffdc3e5f73d0662bc3279fa2423a3c654af9b6433b9e5e0155f1ce53857e67388e7e3401d\nb155120f196d52760129dde2e2b1990039b99484cdc948fa98095cd23da87679850f522e5955eae34ac267d2144160d3\naec8115e8d7b6601fbceeccf92e35845a06706d46acd188452c9f7d49abef14c6b3a9a9369a8bab2fd4eb9288e2aaca5\n998a8ca4dc0f145f67a8c456f1d6a7323c4836fe036dcbb0f27eb1c596d121eb97369638a9908cfaf218c7706f266245\nb235fbafac62802742ee3d26b1f4e887f7d2da4d711ba7f9bb6ca024de7beec1de66bb830ce96d69538f7dcb93c51b26\n9258d2ddc21ab4e3edcde7eb7f6a382a29f1b626003cc6fdd8858be90f4ad13240072d8a8d44ef8de51ca4f477fa6c45\n99d038487821c948142c678acd8c792960993dd8cb5e02cb229153a1ee9f88249f4ad9007f08e5d82e2a71fb96bb5f32\na88ee9dbc73d3d8e0f447b76fdb3a27936bde479a58d5799176885583dc93830ac58bca9087075950ea75100cf51af23\n88b9b15816e5a0387153c1f4b90f613beb3ea4596037da01a81fdd2bcbd0baf5598db99f77e7694e5a0d35e822758108\n907ae4b637d06b15846ee27d08c9c9af42df261c5bdd10cf5bc71f8e5ca34b33ac2405307023c50bdb8dc7b98a2cd5fe\n9393d6900e1d2d1a1e42412fefd99578d9ac1d855c90a3e7930a739085496448609d674ca9b34016ad91f22d1cac538e\na28ac56b216730b7dcdb5ab3fc22d424c21a677db99a9897a89ed253ea83acfd9d83125133f5be6d9cd92298df110af8\nb027590ee8766f1e352f831fda732adbaf77152485223ad5489ef3b0ce2d2e9f98d547c111fe133847ebb738987fb928\na9cc08fbd5c3fee8f77cf6eb996a5cafa195df5134dab000e4d0312f970a5577942ee89794e618074f49841f1f933a42\na8b3535c3df0b1a409d3fc740527ee7dd5ac21756115cde6f87f98cc7623f50cfcf16790689cab113ee7c35a5bd4879f\nb61420227b97e5603ae8a716c6759b619f02b8fdc48acbf854352aa6519dad74b97bacc1723ca564cbf3ca48539ed773\n853762498de80eebf955a6c8ddd259af463e4e25f0b6ba7b6a27b19bdbf4c585de55760a16e2d9345cdba6b2a02610f3\na711c1b13fc6c30745203c5d06390e6c82bd7c50f61734aa8d99c626faba30119bc910be63ec916c91ba53f8483c05a8\nb488c0a793f4481f46b5875d96eecd73e46209a91677769f0890c5e002ecd7d4b1c9f4ba68c47fbed40e3857b1d8717a\na651c5e812ae65b1c66d92c607e80be330737ea49c1dcfe019c0ecea0f41a320406935bb09206a4abff0d1c24599b9ad\n85e34e7d96e4b97db98a43247b6c244383b11ca10bf4777364acf509a6faa618bc973e2136a4693fbc8ab597e308fd5a\n99837214102b394fffa7f3883759554c6bb7a070f5c809303595a44195e02b9a169460dc6bbffb62bdc0e7ced5f0a5c1\na952f89c0afb4bdae8c62b89cc3cfb60d0576ba4fe01a5d99534792f38d8848d919b3fc7577435d8443a044d2ee0bcfa\na1ac1f81acb29798acdfc493854663519e2d1b0e9d23d286ce33882c34b4c1c0bb43dd9638166d8026315a44d9ec92a8\nac9c58aa38219ae659d23007cc7b97fd25b7b610b2d81a8f9f94ddb089efc49c049a8ea4c56e6eaf7b6498f422a97b3c\n87e61d501c242b484fb9a937ef21d485f6678d75257fc8fe831b528979068cadbe7e12b49c34058ec96d70a9d179ab14\naa45f6852f35cc8b65a4a8b5380641d2602a4fa4e3a035db9664df3ac2e170b1280c4a8b7b55161430063e54de4158a6\na46975614ddde6d134753c8d82c381966f87203d6e5a5fb99a93b0d43aa461466b37f07b8d0973a1abd6ee2b40f24348\n8d35f97297773422351f4d99564c1359ef1a10cfb60aa0e6c8985a78f39b4268486312c8ebf9dd2ef50a771aa03158eb\n8497c6242102d21e8b3ade9a9896c96308ab39171ab74cbd94e304c47598e2c2a7b0a0822492ac5c076ba91d4176481d\n973f8fcb5f26915b3a3ef6fe58cc44bc7f4e115cd0ad9727d8d1b8113e126ae2e253a19922c5433be4ab2311a839c214\nae3ee9f1d765a9baf54b4617a289c3b24930aa8d57658a6b0b113bbf9b000c4a78499296c6f428bbb64755dfd4f795d2\na5be7a8e522ef3dcf9d2951220faf22bb865d050f4af2880b8483222ff7aad7c0866219fcc573df9d829c6efbb517f98\na5f3c7fabd7853a57695c5ad6d5b99167d08b5414e35ed1068ae386e0cb1ee2afbbe4d2b9024379b6fc3b10c39024d36\n978d5592d4798c9e6baceff095413589461267d6a5b56cd558ec85011342da16f4365d879b905168256f61d36d891b1f\nb7b6eaffa095ecbd76d6e1e88ceebabaf674d9ef7e331e875c6d9b9faa1762c800ff1ea597c214c28080f67a50a96c1e\n8a1ab53ae5ceaa42e06e58dd8faf6c215fc09ba111ca9eeb800612334d30d5971448be90fec62ed194328aadd8c8eecc\na9ca532cac8ace9a9e845382f8a7840bf40cb426f2fcad8a2f40aadbb400b3a74021627cc9351b0966b841b30284962e\n8dddeda8854c8e7ddc52676dd1d0fed1da610ed5415ddd7d25b835bd8420a6f83d7b67ec682270c9648b2e2186343591\n888906aac64fd41d5c518a832d4e044fdc430cfe142fd431caf4676cafc58853ce576f098910d729011be0a9d50d67b5\n96a3f886a2824e750b1e2ea5c587132f52a0c5e3ff192260d8783c666206bd8ebd539933816d7cdd97e4bc374e0b1edf\na150a29ffb2632cc7ec560983d9804cd6da3596c0c25956d27eb04776508eae809659fc883834269437871735de5f9ed\n81f7ad4d2959d9d4009d1dfbc6fee38f930f163eb5eac11e98dc38bd2f7f224e3f5c767583f8e52d58d34f3417a6cf90\n97ccac905ea7d9c6349132dd0397b6a2de9e57fd2d70f55e50860e019de15c20171a50b28a5c00ef90d43b838253b3d1\n95694f00c21e8a205d6cbda09956b5b6ec9242ec8c799a91f515b07dcc7de3b6f573e2c0ba149f5a83700cda2d1df0f5\n82bbc3c4a3b3997584903db30fffd182a266c7d1df3e913f908d5a53122fa12cf5acd11d915d85d5bd110fcc43cee736\n8d3f24b4949aa1b4162c28dfbb9f813dd1d8b330f71325448dc45ea34d59b69ca95059402aae011e1b5aba6e536bc6ec\n92c734c19752d24782331e74c9af97a8399ddfdd32954e91cda7363dba876aca4f730b451c50a8913950420682da8121\n8653d2c79f77b8c7dcdf7e8dee42433998aeedf1b583abfca686d47a854de1b75e9a4351580c96d1a2a9532659203361\n886f0e414cb558c1a534a1916d3531320a9b6024639712ffe18164ce6313993a553e2b9aafe9c0716318f81a5d0bb1da\nb31b5efaba5a5020c3bcea0f54860e0688c2c3f27b9b0e44b45d745158f484e474d5d3b1a0044dd6753c7fb4bf8ace34\nb2d615bbdfdc042d6f67a6170127392d99f0e77ae17b0e1be6786ff2f281795f1bf11f83f2e0f8723b5cdd1db1856e09\na6e014cca531e6ac2922239b5bee39d69d9ba6d0fa96a4b812217dd342657d35606f0b9c5a317efd423cdb1047815e3d\na8921736b69c9fbb29f443715174bac753e908251804620c542fad6cfbfda7bdfe287f2902f30b043a8a4b4818cfdeef\n8d73a9949a042ec2dcefa476e454cd9877eee543b1a6b3b96a78ffcff87421e8b26dd54d5b3192ac32073cb36497acc3\nb936a71ee8df0e48867f3790adf55dc8efc6585024128de2495f8873bd00fd9fa0984472125e801ed9c3cdce6698f160\n82f69c06209c28f64874e850601dda56af44ffc864f42efa8f9c6a0758207bf0a00f583840982dec0a517ab899a98e5b\nb7a0a14411101473406f30e82f14b13e6efc9699e7193c0be04bb43d1b49e8c54812ce0f9b39131a20379c4c39d3bbe3\n81159c969f38107af3b858d7582b22925a7ccced02fae3698482d7e9cdc6c568e959651991c6cf16c53a997442054b61\n8bf1116a206e0ce9199fcab6ed2b44a9e46e8143bff3ed3f1431f8d55508fe2728b8902670cfd8d9b316f575f288ed9d\na279b2149824b64144eb92f5a36b22036d34a52bd5a66e5da4b61fbc95af6eda8e485c7914f448abd8674fc14d268d9d\n8b98279b5f3588d1a2f8589d2756458690a502728800f8d94b28e00df842a101c96ab9c5aee87c5bbe65552c0c383b80\nb4a27a351ec54420f94e0a0a79d7c7a7337940399646631baca93eeab5fd429d7fb39428be77dcbce64a13eaa3c8ca1d\n90c08baa29ec8338ffce381eae3d23ce3f6ba54e5242dec21dc3caaed69cac13f2ab5e8d9d719bc95720fa182eee399c\n85156d65bb4fef69ffd539ab918b3286105ca6f1c36a74351ab3310b339727483433e8f8784791f47b4ba35ca933c379\n923005013c27209d07c06a6b92b0cbb248a69c5e15c600bbcc643e8dcd2402adebd94dd4cafb44ec422a127e9780aaec\n863b23eb5463a6ef5a12039edc2f8e18e3c97b244841bc50af02459b1bcc558367edf2f6e4fe69f45f37887469dd536d\n87a4a7708a112724ff9b69ebb25d623b5cae362ae0946daed2ec80e917800dbfcd69f999c253542533242e7b9a5cc959\n8bf4347ceea7f94b53564f26b1a4749a16f13bf71a9e03a546f906f7c423089820ff217066159b0637d9d6824e9c101c\nab07eef925d264145971628a39e4dd93ff849767f68ed06065802cf22756fc6bf384cf6d9ab174bfc1a87bcc37b037aa\n8e3f10a42fad43887d522dc76b1480063267991c2457c39f1e790e0c16c03e38a4c8e79a0b7622892464957bf517ebd8\na8722fc7b1acf0be18f6ddf3ee97a5a9b02a98da5bc1126a8b7bf10d18ee415be9a85668eb604ef5a1f48659bc447eb5\n878d6b2a9c0aca8e2bc2a5eb7dd8d842aa839bbd7754860c396a641d5794eab88a55f8448de7dbddf9e201cbc54fe481\nada881c167d39d368c1e9b283cf50491c6bfc66072815608ba23ab468cfbd31ca1bd7f140e158e0d9e4d7ebfa670bc2d\na2b48578fa899d77a7ee1b9cb1e228b40c20b303b3d403fd6612649c81e7db5a7313ba9702adc89627b5fd7439f8b754\n8e051280e10551558dcb5522120ac9216281c29071c0371aaa9bde52961fe26b21d78de3f98cb8cd63e65cff86d1b25c\na7c5022047930c958e499e8051056c5244ae03beb60d4ba9fe666ab77a913a067324dfb6debcb4da4694645145716c9d\n95cff6ec03e38c5ab0f6f8dccde252d91856093d8429b7494efc7772996e7985d2d6965307c7fdfa484559c129cca9f9\n993eb550d5e8661791f63e2fa259ab1f78a0e3edad467eb419b076a70923fede2e00ddc48a961d20001aaae89fad11e8\nabb2826e4d4b381d64787a09934b9c4fe1d5f5742f90858228e484f3c546e16ee8a2a0b0a952d834a93154a8b18f3d16\na922ca9f2061996e65ef38a7c5c7755e59d8d5ce27d577abcdd8165b23b4877398d735f9cb470a771335fc7d99ecb7fc\n90f22862216f6bc1bbf5437740a47605d1ff5147b1f06f7b13fec446e4c5a4a4a84792cb244a1905f3478a36f8d7065b\n87f3d9a86afef5b79ea1ca690ee1ee4bb9754b66f7c50a42ad6b99af7c222c853ca161f440a0a2a60b3b5a54e3493240\n80a9ca9a2d33b9cf61976b3860d79f5d00de89a06ef043d2a52931809018aeb4ce70423cbef375b29c2c750c2c8704c2\nb4e798ef1d615896108dae37ac50c1e859216ab6dbac11653e44d06ce5209057b4b0dd6d31dcfcda87664a23c8ef1cbd\naaed6d1e7c5b1db06f80dae6c24857daadfb0268f20e48a98fba4b76de1ebf65fb84c3be95fd6a418b498f8285ec63bd\naeceaa316c6369492c939f94809bc80e0857abac86c0d85be8066bbf61afbaaec67e28c572437a8d35c49dd596b3134f\nb791c3d53ed34a7d1c8aa89b7953e3684c3cd529230824dc529739a5fbe74b58b87f01e56e7a169f61c508237ef67160\n9351f8c80634386c45c0050d2f813193f9d839173be941e2092d729be5403632a2f18dffdc323d69eb0dc31fa31c5866\n97693184d5c0056ae244dfb6709cafa23a795dc22d497a307a7f9cf442d7452024023c54a8d6bda5d90a355ba2c84f3a\n85362daa003d23511ca174a8caafe83d52b6436dc4e43c4c049e5388d9211b5cbef3885896914d86d39be0dd1f910511\na2511b5fa34b24eeb0e1bcbcf872a569d1ff5570fe7b0fb48f5542f7fe57bad808d34b50afa87580866a6cb0eba02f27\nb382e3327eb1401f2d378dbb56ac7250adde0961bd718575a64d264ffd44772c20752d4035c3ba60eb435e160b375e20\nafad8a5d40b536c0720556845a6b257ed42165c14fb4b4a874717d107752f49ed9380c5b048df3aca67287bb8fc411a8\n8fad0c98434ca5373c2d767868f679b76b4a8d04bca8240ea3f388558262c2d61b73b16fc1160932652b5688c25fffcf\n83898008b5cbb6f08f8ef3ec179427869682bb4e8d38f6e6a687a214d4a307436afc64ee67d70a5a8ba9730bf839aecc\nb85232e79913785fd82b06890706972b4ad7a309489930ae23390d51aa5189731f8a2df24800409a8c36b3dd6fc91275\na24ff26ec792f3701da4c5638c1fca4fa4dae95b01827d6200d583c4caf17ea3171393ba2a8c23d1ee8b88402916f176\nadc5c7a7ff6b41d6cc386b7fc69d7bb04179bdf267864f9aa577f0f6a88438191fa81ebaf13055c2f2d7290be6421ace\na05e835abd502d31454d40a019010ff90b6b0b1f993075a35c9907aeab7a342ac0ba6144dc9379aada6119157970e9b2\n85ff07ba58463e7f153fc83f11302e9061e648a5cbd272bb0545030b20e11facd8b3ff90c9ac8c280a704fbda5c9d1b0\na6c735ada8f4587da8cdad7ea3ada01650b5a3ecab8d81daa7a5f5de51ef4a6592b524692584306f06be3f6701f2870c\nb138deee4e53ae8d677fae104f713ef1b8babfecec16b6a85785a66a72784eb09d44c3b63567222ade714e98f7d1604e\nae79c1a49dafcdd972acd95d8ad0a35c02adc7fd736d4c44c3cd13df5789d339b5ea16bddbbd43e486a061ab31baa5c0\nab3cf2371a1d7dcd0ffe3869a0178230964b06694bf258b2073ea66a2afccd845b38485da83d02e1d607d4c5c36b78a8\nab9609f28a325fd01cb39540e3a714506c44e52ef28ee640f361deb5760aadbb23e804663b0fa20a66e239c33f8d8bb8\n8ed95ea8e76e1b42823d7915a6aae77d93746f846bf602841dfce0e47543a36efb9ee7e5b42c73c3209d911225cc471b\na80b6162036d43811482323f0ce59eb18740e33a63d7c7bbbf3be206985919e5342d53a69df537d43e8b7d7f51e8892f\n93c03d0a5083408ba00c125a8a9385213d4c860072f0297857b1235045819b904e07f2425c13a661d0a01d2e53347f4b\na6581200f00f96c461621e1d26b14a23687dd97eb9f7df4ba641a84340ee7306dc1796248fba4804f185947ad13b4385\n8be174018fa40f7e0cedc5ae68f38969eb7695f2205e9c573641e533d56f68c20abf38a23d2f0dcac371e60b21b18615\n857ad4ee3218c647c58f09b8ab22bcc8976f00a768ab1f708618e868e6143474be846422ce2710a0ed39b5155b6f13a1\na490bec40f322d599f26bcefcdddd8f2ef6576aa737d5ce7e8d5d422741abe749e3e6a48489aed8c560633f72857e3c2\na9c0ee339621f1c4a2410f9b4d2f03f1b558dae2973807b8bccd920e8feb7f65dfde3e79986b72ad21fcc4567240381d\n8592251568e750a430f7d2c6ddbb3ec82a4dd9fd83efe389e69aa177fd97ac2c96c59a6e86db20d8e6f125d65b46c4d3\na4e2f4aa6a682913b423b097c4069c4e46a1f3af9556b1bfd0580d0fc01e3991488458049e0735b2a629684a79271c8f\n8c4f6a3e738cf74112b08b1680be08158013ef8a515a81215d8a36c9b756786d1b4cb4563923463f3329292f4b48bf6d\n8bace547353c02ea00dd547eeda7259aa354d4772dd5e0c486c723cf88627b7112e196b879c3c92a9561b674d9fc486d\n8d372f4901e25e8db64fa098148d4a4e709b0e9dcb756d0f90dad99dea393054193ae1a33d292a3dd772ff7ba05e4b71\na8c7ea6a6a031ed23d65639f01f5423190775558f479700597df7ae7e338a6ae5e9b32f470aff20787ac8b7eec84df6c\nb6e9dcba240fdbbf66033410a79a2dd3e9e1ffdf2eae949b3a9ed720e939d92339991dc3e70a5ac7d5253f317daf0b7d\n974dec4cd61af75721071752c664d9c2a5121f06ff1515c56139a177a3ca825f763b69d431d4607e393fa74dcc91cc58\n958863e6ad583a9d370a6db3639066982e44766904e7afa849b132f6666b7d08ab931131b3bec7a506d6583e93d56767\n8b93a33b5da9b3300c20a96d80b894e3789c77041183c2cb21751579c8c96857f60cfc2f075201b64e95a78985c5b321\nb726cb9f7ef34ddbc2fad82b3b0af0b30cc913e26c5a614ae5c19cc9c55c8e6dae069db5315a8dcb6d987415bb550ca8\na730f515398a71bddd66cab2ff996659d4e47dfbb08ce7958a41021f76d269b91c7498b708cd14b183a8ef469c772803\na4eb3b18132eb0f5337f14e01d63ca0bec0db6a43870f800e5491db756c2f5fce519d8dba5528b4bcef550d06b33699c\nb1ab6621eec1ee6784e632e214693f39a14f3715991996b883d66200963e065c86fa0667f7bc36b93b40b5d90ff708c2\n80486a26c3532ad6e19f76d8c9344e2626c07363fd495264927cb5935fa9565ece670dc98767afb04af6a9a5c9231075\n8ee20e0df3c84a1c6b0e21bcc325cf99235b747ffe47f17fdfba548a358ca75cbcc331dd50db2311b400ae882256a608\naef4268959e5541e7ec69c921a1e81a8374d7e44bf1bb2debf4101cf3cd6b7d6ca7f441758b388de96b3e0edb5b97be9\n8793629bd29d689ec94b016de8886cac6e2ca6638911babb22db4a787661422da0639a4e4089ebeb689d173abfe75950\nb487b3551c20a29e9a5abbda8c50ff594826283e443c09e3ae09b914e46060b3f9abf70434444ce1487e2a74e562616b\n8f11531cfc5997dd04b997cb87ba1831aa7041d5434fe72de66304e3f165d882fac891391fbb1eb955c65319e65293b6\nb195136875fd02a75676c33cb3e60504d5964f7a9e81f4c8c8fd38af62e2145c55f765b3158664566191188ac678f381\nb374174b0b3eb04fa49eb4ece45173f0db5d829eac370a20a62309566e0f98b18f72f3633626893c053b7be6bfbd2366\nb2a2f6b0cf652775679b2d677048f2ed8c31a3269e6cddcc7a10e3e6fee89e486b50d9d55fbe452b79c4157c0270fb77\n892177c364dc59032594e7a6fd032286ffdf4fa0b9e3baeb37ec839faebfd2fd46c57b2c9bfe9977b59c93a9cc0ead1d\n8ab7c0038a7dbb2ef200dbbe9acbc875829ecad4883792d5c6ce283de67ccd9aa935a9cc7b30b2bd9de7fca7bf2a9a05\n83745cfc78ca709835aa6c6a233c2b86fb31e3f9f6a8becf63e501f2841c4366fb7d131b746c9d3291afda714ff05579\na723dcb67925ef007e8339dc578d2622d9bb77cfda87cca0088854a59414c02338752c56116a6c1281917842e8467c38\n8a098142da0af2254c425fdbbd0d1b1a17b2bd781391ab37f181775524b8563c64ab8a1602aee2ac6c0a82ba11a8b1d1\nb13bd7529a9b351c5d395c794c28bcb0a3167f1c992e8c062eef47be9be27895945231d249c73a0b6949daa295e14944\na20dcd2fc2222eaae467d9f5db861040f58bcb991a26e5663ac3aa5e1ff13d0010657c5af586cc4621757add2b905073\nb818f660c3cc4e9f273c25ceeabe562c8afa8ff88529c26f2cf45ae6b2813cca5f350e3cbd56f6257c4df41722dabd25\nb225d5987108b24411bc389276f12509a45e86d5ad6b6d929af5274df0be11109c0fed329669a0acafdf3b0beaa8f2ec\n91fcb6d04576d3c6bae947bb7843b430e5fb0592ae49b0a65dfa5791f4eaa4bf2c7f436c8de7360f217001c2b4e5c67a\n8821f7a1424ca3fdc5d4a5606ad10dfaba6094cf36669fa9f84cf7617e50425405d14980780e1e18a1ecea7913cda896\n990dcb7f38f56521a70cb71bf4522649fcd46ac052c7feabb0748dfcac9f9c0f95d29e070d32af3cd0adbf869535e17b\nb0fac1029fe2c1100f24e2f4bf10c7672199fce53513c7dde2e8d9b00702edf0143e0e1dc7ceae7dcc6994edc2422b6f\na514ebb1a33451b4915c05114db0b10168393613744df848b24e43e09f0bda23baefd9d731075198aace586615ac7911\n8b77f7953c2e67049fdca3653b8d8cf3f799677f79b954da02bdad8cc4d6c855c1c7c16b4f6f9ba35f46426ec28b2d84\n875520cfbda16ec5b1d1d00f578a910d0fc052f17870ba093e22e310bb07648d34817cc2b8811b6f52de535f7046a0d0\nb8c77b4be0b430851c4ff69e91cb770db1935d848198601393810ef395efab52deb9d5c6525472bab720273d5e0e7a79\nb6d4d437146671bdea62fb6545395ea3df39f1cdef21b8476b68e7a25aa7354f847740576d6c9f187bbae9941f0ae450\n95c642f1bccdb62cd6a2212dcdd6ff8d49aee426ca08b7cf3a9d15249d24a9eed5533f92a70c84498c0797f8a57efa27\nb617978047ed0f748c305aa7f30c2dacd0db00baa67fe0c5ce346ef0e6991dc7e05f18dcb2702467421f8390f27aa815\n86411c7a00b3e8b43bf22fb061b1f54ad9bbf632cd74395a478218389c0f544668acf3dd7726532d080ca7da9a5f8608\n97bf684a8849626c4710a6992f6c11f6b5406fd4dfe9e6aa502425aaafe9827e2c435aaf9a5d3d2ba3a4c0e8aec79ba4\n8b178e2a125b461d3180906ffba0af3dce614c64058501fdd35243ababf892d6fcdea4834ce42c25d5569452b782a709\n8ebed2c8a25c61da6a6a8cb0d8f5ea179e28869753eacc728f2c076f7aed8598cd3aa0981f120f9e7ea55b3a689ae882\na6f235b8e655ca3d634740b53d8c0a757ecc75d2b8838b7948997c1985473d01943d935f687b86cee56cd47c8e773443\na7959c465a9646908b9d8032a589e41a7dd999f2ffc54bb42f22e5f8a4d8c493a31bcc7ea2cac6c8dbcc59acace7181b\n96d0532df2e12da20a57cadb6cf5f6c4ee1aa4775629358c25f1d51677a3e96d1fe3b232532324b4f02f941952d4cc68\n90f493473d686b639a30d1ddc9c72eae6e983f1236e162e58e967a477c0654973ea2e1bdf4ba1a44d7247bc1befc2cab\n8b2d87876d9c4085102a07ebb41c565ba69acab99ffc03efc18f20e48d3f3bbe4fc6ddab9c78fe479d9ada80504d85ba\n829a0fb3200a28e09cacd6c5346000e7786116ddfd898f37dfd17bef454a8abc0fe939ed8735c00769f7f2f33cd4f906\n86194ec9e88ddb7150e8b03e7a535b6e99863fc6762835601efd03615aa97aaeb413cb210e86035086ed852b39c9d019\nb02efd116a7189cb317ceae392bc301ae55470f0489fa89934e182aeb8c67e280299b975786fe9a470bff46827defb9b\n87d7c3903bd22b12d815506f150373f518d47dfc6e5fd74347d88b518124c9923d1e4c98defeb3a45d53d50b423e2175\na1a430406b28254a7d6348bc98e697e9bab43839aa05d53faee97546f84541ea0b559162619b2045182938f69bf61cae\n99d243c226c61c6697fb3d2594f3533fa5dfd7cfc87107908cacde337d7a077fa5a9dc702d26081b065edb1227498e65\n800ee5006ab6217161f42db0cfc552a81728bb4fbd7af6e4620ea099a65ef6664184af3f65a07fcec7e965529c5b49bf\n91bfd307579cadc8f81009558605be3edbcb8dbba271475803484017f40130b2b216aef4f620d960193be681877d3a53\n96a060459dec458d19a6f8af6e49dc6c7c58c55dd18915c5fce5e0f4b4a422fce3b9632f6059388fe760289abf70f173\n9921a37f3e657222c7fda3588418a9071409711d9f1fccede7494429f02a45fbc52d79fbb64e9ccd518f60d06d0520d3\n81052b0d15773cb75975ca9230ebb2579700e489c7e3f07cd9cde206fef38b8139bd4976d2b4a7840495fc645f96df03\n88ac37ba66d1de5e23878c992e4d54023729e97e77351f50dc5918d738b5a73faf1dc6feec7e85784761836ba1c6f778\nae1e6072c13060775f6086d1ae1f88b627ffcb810fc0e0e97deea1f3a15ef0aaa52a6dce2563e4beedadc131af2a8281\n8b60a340f5e4f90badf83001b495ac9f13974c3d2054ddcb3e6b8ca99dec5cd63a263e05c282454191ab2e087d5a2911\n832e2d56ba69dbf817b2b9dbd25c1538d5b8dbf5d9bc05e6be85054a423ebb66a71b157e166e0b9444ac171b34b7ccc9\n8586036fc7dde1e7e3ecb61663130c4529866ae9f5f5095b9fccd24a4c70eea899aae5f10ea1ba66d1665b2d83be35b0\na77969453b5c083a207913272b5b69d4ccbd8718bdf54be8fbe11b4bd0a2168aae3ba8f9362afa69c0ffa28d7e5a2340\nb7fe9568c214baad0ac5f83745611b481f744ec1c4fa78a549b180dcf79633e5ba75dc20055012a13d849eb7a9be57d3\nb01cad1d2a6c51c0ce88243d1f52f95fb5ee315a905079688027511f0c4ecd0563a3a81846709d272fa5ccb9665e8043\n8eae0a21adfc569aa57237654021c2bdb2c6f0f52ccc90a126682c21a1f9413c63d285f92b2b2f8649150a9284bf70b7\n942acc947192b5f3cf60e92383e5d35f79e7a5904e8e9fd1c8a351676c83ad29b0afb6578d555457cf909f8f4d27adfd\na74e092f8628fba9abcabc27e2e9f3d5a9a941dfe50a2dfde2ad179aabc73afd196676925c2d98643ab8b3d02bdb66ad\n896159daa2afd757cf3f9d34af248ad68bb3c62e4c9ac49919422727479cf669098f270b9e645607a7d11adad4c889b2\na428d8370813d78e7a2a24eebd36e9da2f8bb3605e5a39b5fcda939b531c35a8ebaaa642ba556250a37bddeec90326fb\na5fa04eb60a1d5ee9820e78f42f7be15e1c02757b539aead995768c6209684d6c183c71d282e0c12a4c15c03f9a89d4d\n93c77d5d220e40affa7269a6915c076c9aef4db552c643ae5d560a79c955b491c6346ca4cf11cbb7fe1894e28d47b065\n802e605d2de745eef6981d88e7a57ef4046a2062725e8080995374cea2b3273c27f35b7774d0dcba014710d8d6c501f2\n82f7169e6ec9b3e2bd450f35ea2e66d06bcf900acf5b73139677b48e078ce2e16599103027b2326770c99c0a690f2015\nb0c8581879439f9b997551233fe2de71aa03604f9cec37a7b18c5854342d9b67be468f3cac4bf6f64fe8a0066248c498\na3f626848a4db6e9fb01cac90d3362ec521e969ebd5228af694ea3671061476149f13d652942ac1e39f65591fed740f9\n88a8e759b9cbe16a7c16e43f4afa2de6100d2eafa4dee75ccd653ec38c919013d0a6b35c1ee1eaee7c1985b58bcc9e92\na3d5fc7aaea072798490616552d947e95f49cf02a420314307aafb555287ec607d75589ba24b009cd68299dc6f7942fa\na809cceeb84f9bcf3c3ddafde3041e7bc3b1d14df8830ab849002176a0725e6f16f70774d8962cb0b8ac0dc43c4ac66f\nb8f2e46c031cc8fa160a08c2ebdfa85345ed14771b06daa9636b0e7792b7fddbc501dfc85cc626a01104a43a7d3230c3\nb5367e2a521c318b802ce16ceac80c4b8139f73ddb10ddf38433397cda70a86ea1f051cc55626a4e99d27f30f3975ff5\n96d963660121c1441cd13141279cd371a6a0aa18b6a20761b18df60aa9c14e13489afd83695a0921d5232efe72045f07\n80818d492fd85d666bd91aaf6257b86527fdd796773c793407df1d4a0f91d74649a6bab4d15155c36ed4c6e0a32c5636\n931e22918905fd6c230d3d867ea42861f3074d320d14e1929031924c8ac209a5c552b679b24563bb12f9749b4ee983bd\na4de2c333e74ed9bfa3c0bf6a0beb90427abd9aa4221294cda74331646b58ef46ed57cccc8798ba2b9309894b17cfd69\n883881554c1d88c0ed8d3b6dec3d200f6fea69a77ace3e4d6f86b41506a23724b4394ec8384075f9c75c3868ba8a8e8e\naa0539ecf6ec9bf06f24443027f8f24b6b3d8c5b2084248eecd4bcad3c9a69716e1a0d01057f09a65bff1006ac5e157a\n856d74d44c943c9e809b42dc493dff20eca03cb0cf5ed45108c69b1f90d8592a53ae8100e99380a274fafad23e74cdfc\n9188257446661c88da093b7c5ce998135913f63842d7c1586065377b169ee35b062d925367fb9b909ca971f1188667b1\n8d3aa57cdafbe998938787479f5d590c1484c6dbe94e6c487e57a746ef5252be0eaa5976d6270de7db64b6b92e57a0f7\nb8f4d6997240f9eda5aca0c43323a828d1563c491b3db2087f60ac4120a3fcd06075fb42bb19d0339ab5ee3fb7db25d2\nad247ea94b8ae1e81eae4c9fd7b39e6601b53cff47b2547ff90a3cca87192eae28408082774a1fd14bf9ab459b7a4f1f\n9598598070f8bdbcc49056c40971e673726cd8c1bc4baa0b5124dfb5fb750e7baa7a7df18eae2bd91955ddcb1ec67955\nb874131ab1608667fa60ea29092d090859eed1812e90c609afff96d79e82c5ba546f617f4c96fc32c9bba97431c1e9af\nb00750a9cdc75c2a54f0d3cc99b0fe02300754f25166f7ac85ff41ab5e9cfcca33a29be76a480f12a2d410c7cd5032e5\n84b5bd1c90bb6c66755b28ba4af493ca1b0c3a4df9f436aac67d2e07289053f925cf6a149a84e74e1027dc8758150179\n99caf64bd9d193ff306e8ab5da3f1bb2a190a60c3a82099b8d03d17fa810dc53d176c21379f479e828f60d25beb3ffd0\na8fd9de502f1c261d5733430e5a18d8b7892a98c9529a016fc2ee53892ae965dcd9c75850bcda4c7edb980b8d88e60ea\n848c02cac636e047028a3fe8c1bf4066fb7591b96b0340f8fbd476ff01b35fa3e37d309333771a134f24800e5f3f9289\na1eab1a06dcca3439f0166441e7e7f2f5b56f5f8aa9f45e411c561f556e0fb71c514c06c26ac53b49a576caca5faac3d\naa603f970dcbe953e700e61c151182c8d32cbbb53ceef572ac93383db33a4b098b5c7b267e42d514ca66b740c0925efe\nb55fd5301bd700ddb0b4f72fabe9a91ad49759506101fa802ed1677e9553595aa4d2c66f7574e78d21ce882ce0120ae7\n829137bc4da7b4886d3d04d2c39cbf4b1dc40c813ac1adb425c7b9abf9142b516314cab79c68454df5d71994ce416144\nb83a3a22735001f783dd48a01c4fb3598a51ff3987e842b8045c71c035b9e43645a55254ca5911a5676ef4a8af12d056\n8ca8d463deb13f9eef5e533bc39efaeb0c15631282c5c0deee1673b0053a7cccd514af09801dd6c158caa159fe9351ac\na9ffb1427828f3c456b9c8cc50782de1ab0029b9233a0fd998bad0fd014d27e15c4a32d1e16ad41bff748378b5abdf49\n9627e29f725ddd86456aff813976bbc4a836f4deabf5ad9f73d1a260ceb30948824df9c8841e6b3c529652202be181b3\nb52c988647fe3d9276eed3c262e1044f57fbb116c64cf4f207235c205b3fda0f3d789bf90f5217401b468d85fdfda404\n833bbd6e2924f5c4446cb76b881d1434a5badce9eb9b003f85d076e297ad7ef45b822069fe54d17427a348c3263fb838\na067a36352db6f82a116cb87d3db5f60b18576852409e2076cbbfc7843af78866313a4969385a40271051dd195d51116\n902b99545971f9a103f99d7399acc347ac46fe156166e51deefc0e92aebf5893460c69aeeae11f5af9f49418e289ce6c\n9206a0e9ce9b9880f29ef0417c96931985f5d83bb17cebdbba4ff2af81a3d37155b04649426f698aed372e4f669599e6\nb54a5d7c976e45c0b1d44433595eae9d1ae9aeabfd58cd5ecb0c5804756a7b01c9a517754423b4714a3695533a3114c8\n91b612131e84580ece228b81ace83da0269b53f94d3c02a1a0879ebbd81bdc252064b3d03a7e140b43a90f237d9a45a0\na6cead3b8607eaeafe37135bd6de8fbd16f806c131eb71c8d36bfbe295d45b070255e50dabf076e2c3f6b8699be71d6a\n931da21e67b11ba6ce438546a24d063bcd51aebe39b4220a78d9c0aab88b2d37969b5ef3502d835507f9c8d6d006714c\n8fda408caa9daf01122a2308b7b9d328f52e1e2f138a8bec30492488f4d710e5e52524a6455a3a2ae2818ec8a610b650\nad8ad5c189644352d90c462731c46145410e5adf38682bb80f95495dd64d9d13782537d68690847bbb06c6be7175dbc7\n87bb5cc466ade60feb0961421c3fabdc8a7e20f11df8437bfff63d3f8bd25305002a396c9d0fa4fb9a9986d4717f12c4\n827cff72870ba00c29064a7d2b4973f322d6b6de7924c93d8bf8825e7a0e8478c7748f90f5c716bf83c55b2795d315d8\na225895a8e94229776ceb51b05356291f2dce748be17a60d5aeb33ef8507c368bafe5d1d6eea927f28b9d1422b661b9a\n8e011323ce670ff51c964241a6b72e0e0ffbb3ff9bb2762492323fc3a4abf4718091be0945287c7329850e4f74462cde\na2c03c2e5f4e9d3ef361f68b188451994ad1b24de9f323370559c8abfcdc7bffd289d92e78a5f6b104b0a12c84dab2ef\na22b4771116ce22276fab1fec6826610707ce8a342f9f60b079c4e0259dac3cc41c96c560dfd0ada6edd2828f7c0e8d6\n97c17441d0af9be83b42097aa8b7cec84a253b9a2b957214b8fa93c26d2add46144faffa7b8a55312059b10690f711f1\n94bdf348849f31a2737cbae5e5848aee711067bac85c11c2e68b44c398cfafbf3493a3226cd1ddf7a916e7613fc7b6f6\n838f59c6e8469a8ec6fd40b978a3607439aaebe1e50ff707eec72c0b8278af05b477bf12a384b56d03e3d4eb91e56f67\na1940f0db58185e2b3aedd2b0bc2b73b4a65c68e09b046f38e9dcd4e13c94f5406bea92635190bf315e48ec64eceef2f\nb2f4e0ae44e1f1210a91d8f280f17091fa994034ba8c991583f8182a323e9b3001a712e3584fc2d64ecbf2d319d076b2\n9342b89c721338d02c7854cd7466fb24d93d7313b6114ea591e6607439c8ddb911d1cf35f01898e9c557982bdff8f9b6\n8583fcab15be1dd14d5a415f4b14d706c8c62f058500f1344b37730c8be6741779691f87ded3cbcf6516468b373cafb0\n8fa9587c7989646571ad9032f34cedd353caee14f5be5cde1e9e0a1710f90c08faf6fa96a60e1f150f761c9c8ae7417d\n8d9ff904cc08141f5a9879f5f77dc600e6edbe859082231a4d819953890199bcc5f940b730ea688332f07e5279d49e1c\nb5f82b46e5ef9a2df8d144202d6e2e4f3bdae8e2048d2af5ea7deb3f722fbe6d370401954e74ff0d8cb1010ffb1f38d5\na3b5b57d435b06ed70530e060002a8fea71746ad07d969ca23f22b5e52624527595b6a6d54b4e953fb7b7596bac378f0\nb90f89390df6d4b7879b915aa3c29b8d779d035033f8873bb7ac54a14ec98f0d08c0e3bf696e2ffa7b5730d736f571f8\n8e81e371b92887e43d95c0dbdcc9575282b26ccebdc8cbf46587e4f2a83b61e9bc0c6d7d1f114b9d21e04fd6c180b12a\n8d682947c51dffc6e0fe0a486293c9ed121f441805168236393087cf62f2a429cca60bf0e472564844347d32c6bea27e\na8341ec7dd189fa7168759240224192c58209b53fc961c18082deba217928c399bde08ceae42bffd37c1135b4d14a845\na94bb076dcc5ee5ec82fac57c5b384c690df12631882bd1b960e1eb8c04f787bc22b7bac315b9dc5a8a098f17f051a0b\nab64e1c6f01b87706c88a3bd974454a438722768de7340b834ccf93ea9880c14ee7c2181432acf51f980d56de73832ee\nb7b0058bb724d879e5ad7aed6230297c54cb599ef659e86bf2cc84c38225899fb388391df9b2e6fdf063171937fd8c72\nae856f4fb74c27cc98b67429186e7df4feb01278cd57bfd3170af6e52e0a23b9e926bf9565a890cfb4ae8f2d590b2cd5\n804b9c6702f0596d328f92fc1ed5a30a7ba17b9204524135001b569233fc4937035031d079f52fd04968f37c24013898\n84274ed1af6bd6a968583995622b4d18c6a2bc703ce0d0edce45bb736529b4836343dcd11911a94a134dca7877e6cab8\n88808098463f7505034c3b6328c8a08186b33f7a981c08376e429dd64b79b97753170531ed078dd265ded4ec0a1ed8d5\n92823bfb23a4eb84d3759e7d717f0c8641ece0927cd2ba8c728c26bb35df2629a838002f353c8d3d75eb19520aab5f25\n8db36bae4d960cdb9c51f419d7ddc81f372e56be605bc96a9d4072b829f05527c37c8f255cc6115300a2a0d2e6568d89\na8fcdbd7f3b4d7ff04149a209feb75e97149e7efceaa42d66a6b8e432590fe7bd01f1a77fa8b47108f670b612e33fee9\na9f4c53c62db7e5dbdea6918862d3c6d24b5bd8732a218edf0ba61e9d1861182323d8ecd7bef8f895b42970b492f6e40\n8b95bc7f07818f4d7b409aff8da0b2c2ae136cde386f53a71565cae9fd14c73c13cc1cfd79c0f97cd77839fb738c5b9a\nadbd1d11adc756b51a571ddbcbf4392415231ddad93da09acfafee03a9e4f9e1ce3826110619e5271feadfaffce3e793\n95d327c8bb195cdf25fd79c98f9406a6b0316214b1630ebcce95bdaeffafa36fc1accc6882e0e5d13a8db5c0f3c0e61c\n8cb2f1e2fb25558869afdacc7bb866544cfdd566cefcd048b48d458a886130bd086ecb7600a960a7f2563c61cb326510\nb3aa8c4bf5b933d89cd74ca7f7176d6624d562d7d58b041328b49d7562a30b489cb606abb3c49e85baf04c28e9cd1f44\n97f9053a85250c420599827297453c2cfde087065b823d9e43139e6a9cac3a2ec40a1b6e2f0726bdc870fff215462f0b\n878d5dbe6b881389c2ca126ff66d87127c9aaa3f62f0d2c1ec0ea2b279ac95f8a06710dce166415db227655e2345a04d\nb2c33a6b4203e3ca5247f0890e475518317ffc44cfbb1da9a1ba02114e8b752bea618050b876de5cf3b1906140a64471\na56170c8313d2b5541a795bea9934d4425b185b5c409f0484df6f44f0e4bcbf50b860ff46b7245cd99c1cfa8fc1965b7\n96e2b658e2876a14147385fc423d2702a3cb76962b6b437222cf9cea39ebf4bdc03bbf434b747866d4bf72b4ceefa639\n89c4a74fa2f067e7ae49c84ef782c331bcc9245db7e941804e2e99d12e987b4d25cb827778ad4c3566c4fc68018650b6\na01d30cea7d01c80ff26650020fab02e78fc3842e2398a81b44b21d58d4e9816166ff4ed2418831fa995a28ff35cb6f1\nb960c80b55a8845bbf24bc3f23b0110ca701f9544ab6a5bb7929330213cb471321e55c390ceca3e24bff69bdb0d331c0\n802c5b13f22be7be0e5db11eb3be0f0ea7f9182c932265060ba05fba20ea093dd2810d3b969ee3e387e60fe6ee834e8d\n92478f88ef7435d15e39a97916c736abb28ea318394b88678fddbbaab3eaf31776110936abad116a8ff6ca632dd12043\na6d3da0370c303001d5ed99d1db8bce1f26b0e442f0f042e36db9674e92dcd6e80465e772f1e669f99221caee3392fe9\n938f04f70a8f947d6df2f0c0e9af3cce0c06edbb3c131970dd60884fc0b0a0959c504a2a36c3ff76dfe919905671626a\na7117e55224230822e9983df2132347eb7208cb6798f291df926ab51e04b1a1f78d5568c9a8924ee6f57426134360f20\nb91074c77ad93fe48dc2b10c0c5a62ca3ab7d98345b919c52d84a9dc419b59fc1b267e1c2d4b2e120016ef84bbdb0cbe\naa175c6b6edf02fe8778762c9575581c0ee6efc9dbf99c291a41444a23a056b893be6c45333d907d0bbe9fb0eef84d08\nad36dcb4e2ab425aa339ae464b038d550cb11186741dcf257f1b8b80ed4f32ffabbece45e2dc1525d4c3eeed819ea04f\n91cb35c1ffa9cd5aebef523edb8325078da3eb5cf9e95c675a76446fc7692aaee6f949de064ca2f3e0f082cc3fa93e20\n82622f9410c143a86bc4d756b3c7b324dc295231ce865de020d61cc0868f2c150a473cea3a5b756b36771ce1032415a5\na5c29996ad3a53468ece9356a5b4ccb68971ea1c89cf39644f1da2d4a477c2ea99bf791ef902b87c225d8c53d67c4c92\n92893eceed1af34fa92b23dcbab175b6a0188a27dbac9ad3317c4e39955a763cb383ab13fb1c519cde311d8a4d12e8b3\n8a093cb191b94b0200e38d31955f9d240e2be1edcd6810a2396a061f17c3ddc9c4f4d56766ddff4e121be7110e03b869\n93981473df0cb1f4b47c7d9b64e3123dcf1593845b401e619f5d7c70b5dbea375d1ca43fca65845fcf0a6b2e0af43791\na6beb6b0697070f9562910add88d9ba91992f8da127b27be81868b1596d1012f09ea7ed601b4a6474c921a1a1a6d866c\n92026b1ee30f2ed61c9f30337c3356844217926aabdff383c19ca3c21e0bc49811ca5b308012bee4ef250cfae1615800\nac0ebaea6d35f84dac4ce648af096305ba68a7a0aea0a11ab2fbe3162075444a158433c98141bc92ef3b3400d6deb46a\n83046f482dee24ac3ca83373f0d1b82ac1c4beda0f229a9011a81ec659ff5fc1fb105e219975b5c744308c77a24f71e4\naa5a312c47ff7248dcb9c6ffbe5a0628ccd565c07365c4413734d415cd4fb35772622ed833862dddff520a67c509c6a5\na02fb88805c34018ac33582e19ed0a7e4616acc3dd0867e5f21914c2031c05c6dca30b8b35b57c2b137750f3878a6f8c\na60528f1f14bf0c496491d46a0fbbd6c343e4eb3f1631e92f96a3c5e5c684091aabe5801df7a67f7c6dfd1b0d35269d4\na1fd8e7fad8ca05a340c05a051bb0eb4197eed345f4104629a9e38e234b09d789cc5537024615feb4a6177d32d39e39e\n8e70e36c1aa070815440e19443f1f04aae23b1b59fdbcba43b47b94a026c82c8f66c5dfe54f826f4d95ee1930cdb8008\n8234c1969fa7e9079661e4ca309b71b1aaa10f4372be0b963205c23a81f5a3d52ec08ba9ff65b37f832b52d631580d61\na18cb4134127fb37c4abca328cd0047378a2e1423490af2bd3eba9ffcc99ca81a3c22404c0886f21f65c7b93c41d7981\nb46fa45fe538816de776eec086e040005706cb3eca097e290abfb6864e745c879868aac8361894f3c3564373ef9ad55c\nb96ca43b96c59e95439f75d1e726a35a9362f0dbd34963b156e103e080a8126a8dc3501f9fd541ff3bcf4677f5c4a86b\na8e8c87c7301613818d57387009e601a7ab5cbdc2890f63d985c30c74f9cea2d0584c116baf0d9cd5594386ee93fc661\nb47e4f1b9153ef0981f813948150f283b47a7346fd9921d51fe8e4daedaef78ddeb4fd467c2ccb7cebd9816243da1c6e\na370c202a99c8441ffe96fad0f801086d4d7cc7b960f6e98cca29ceedf492afddfd0f351c9c4d29ac008bc255ec1a2a8\n8f5e6ce1655d1c059b006174e3f5a55c88e1821c97f9702ad8e8455d46c2a83ae4482f2d43edda74a835686ec45a8a15\na30421e694930a3b65d397b2720d5f8e1eec2b6e2bb5a28d3f9b0a84db9aabd83850268bae64c2b10e313cccf120151b\n8abe87163046f7a9b18e2a3c0b66e258facc1b31431420e0b70354b7a60ebd250a784634a76692e7d6f4330b62114945\n894f033cf077d4eb312e3258d9dca414356271abce1d6094ecce6d018c5fadb1c15d8d69451574ad0701a2876db191c5\nb0923d64f88ffc872654e1a294bb1af8681689c21cf08f39afe51448a68e60a9a0a74ccce9969276a932a52c07d095a3\nb9ca23b5be8725fae7fa710eefd45522889c50c29c26384e00b78a962384f0aeff9d15cb5910e9565da12a577eb7e5ba\nb242ccf292757197a9f470f2d80ccddc48c7f1235ba026bc68a93be2738bc968e8a200aff3e2f4807216442eb3fc50dc\nadc2c3b375b308524b79a024ff87d122055440643fea6fc0a651bdb312c7cbe6a456afa9d342bc76446d77d8daf08bc2\nab645955356c2ebf2f3df9da275e01daf0b44a52afc309277d6d9ad1b05484e5ae0d9d41ad485fe481e5e362826a86ae\n8de96ac587a4449fcc8b7fd0a51b4b5185d9c2eb3434f94cbadd092de1e26b0f6b3f7b15a37e8424b1429121ddca0ecd\n94c70ad4e9b871566f3da98170b665a09788d421818299857cde0853789fb943cbcf7d4b2c95246ea7b72edc56a8e36c\nb2574be63497843340700b701d5cc8be6d23125bd62058802ee67cce1f3b5f5602b27c93fea5611f27dc695ac563f042\n869ec89da7850cedd88bcb3a50a15cece233119b31b64a61bf6b2310892ce42d8b473b584b11e61db29ed24ce8033f83\n8fbaa269da8e28e9adf4c1b08f109da786dbe9cba871c32eecbfb10619b7a5d65a26f9bb33e201a8ed20b3de94003fbb\n8bf7a059c37242caf7f821a6314e4e4adf799e0dd86b37892a7172598892c07272acebd05b534755c57b51556b2d610f\nb4e72645fca459898cdd9214892ed08b5c99f82049c0a30d72bac0b9717caa9c6cc16c3dc7aa6ea4d42dcd2a6c175df6\na39170da87a3495da55bbb9701c5461f3403447174ed6a4af75712f7ba4ac35f51a4234bc4b94da888a0959ee109c0c7\nb45675b2774ea7696089dbf7a0afe6c22e85fd0e4ef3db508fbaf96c9d07f700c991789206da9309fd291be696357c5f\nb52899e3e3f6341eefcbe1291db6664bf3b6e8021d32fb9c3e37b6258a35c1da927747b2ce990937d6f4c6c3e7d020d2\n84e5bdb3dfe19700d79dd3fabb0159ccfa084f7288db836c855b827613ce8071067c8d7ac5cc2b4e88ed7f84b690f6e1\n801477d200b6d12fc6e0a9bab1c8211193ab06e44551e037a9b4c36fc2d4f67760b9ff4eba9a3bc7b6e177e891f64ff6\nb6b71a5116d3c22af26a7530f535e9b7851f25a84e562a8f17a125d55b9b3fc1bd8cfe65bdcbeeb328409521e802051c\n8687e21c34d7804c12489d30680d131ce2133e2981bfa993afd8a8eeda958ebd5e6881d342d725338659882d9f21cf98\na024e97a7c4de32b6383c34431994abc533ecdbd6be9bff836ec1af022f5a86773bf345c6f33273797a61fb70a8fd5d6\n83f784f095da20ce5b31f54d6cb14b32a8a12675f0029289c9cd036b7c87a8077be2d04a62618685720e6ee69c875e97\nb4e9dfe7cb9d9efd3fe00d99ae5e48769d4af4bf43d4e05c0b54c9cfd8bc854de96b8d3ebf4dcc06b9dac66b7471a0de\na08b79f9d4673afcf7f38b57f484f88feb7c908f597663a2417f92c348150c2be6b5603f914eba0d9d5bdd4e5c5572c1\nb0eaf919589988798cb01ba0610cd1b7fa3c08715675ece8ecd5f9ef6d5d7b2c4c8ae1ea7dfd202237171aa3e6f9de74\nabff99a98baae4dd0954052503ce81827781694a5ea8c1149f96a3adde75dc2d630e138598cd2ae7fdc7a654aa17df8f\n83e369b8680d8b9d995222b033b4f4f3e3b20e782113c941325c7fa9c742feef8747e4a212d9aa23285a259cc4faef8d\nb16d5855dd2716613697eba36e2fae0872aaea6999e91cf6552f93f9a0b85ed4f6ff922a91b50816bd6cf8e7a4513fc9\n848373db600e32e741aa1d37726bbb28956783f89ce2d781e95fb1ee1adf4359968a141678af268077eae4c25503204e\n93a0dd0fdac18a31875564505b4e28f9e8bb2915faae666538597731ac56cd77f23f2456461e2f672983fb24ad91f6e0\nab1ebbe49fa56524b564bc2e43784147073e6ea5d27a9540fbf2e04d0f87c645ed2fd28b3e4982cc4c0af1734ee47a6f\nb3ee30b733839edab6f61f0738e3f4afaeccf700d8dc7415684f193b36d70d07acd5780cf539f12e0fbf8d4683be773a\n88388f2cbdec47a6b3ae460b69eb0d2130ac14de950c22fd86de03e40d02292bb93cebe62432da39d509c1289f785fef\n9370c41a54b68ff486b4cc6329c3a851716ebf1d088d77a6c56dec93a18b8a77b596cde74cc17d2adb2b2f411a2e4bbb\nb9083b60dc16531f77b05a955b51a237a8f8c0173d72c352c5ca441b55abbc890b14937e457aaec4be5cbbf80cae0099\naafff8f6c6ebaad952c65054dfc7c829453ec735331bf8135e06406b7a9f740c9a200dc48bb2175516b41f77dc160121\nb43d31fbbaf10526809e9e5bd8bb47a76e0fabd7852ee7744404559ab89f0f215ff518f3271a6aa972a459cab82ac558\nb581ede48c6ef34e678f91dc4b89507413e00e70712e3e8c32a80eed770ec8d8b98caee9702d068aeaca6f704be57bd8\n8cb0a137e68b001a5ccac61de27cac9fb78d4af7b2f5a00b8d95d33ac19cc50c69e760c5e0330a85c0ded1edce0fe6f9\nb947fca07c7aa6c2bf13048275402b00b77b28f1d0ba4b589fbcede13f93b5b931c588560ab8ceba23bb8e748031b55d\n81753cced5ff819901740a9a584334e355b497cb699f0be5a52cd555a4c9f149535c7bb355b54407f7f0ec27de6c2e19\nb3d59273951ce97838c4853ec329782a255b5fc7c848e7992ded1be28a5ada7fa3254123afe32607b9991ec6e0659b08\n86b253de246f82be1cb0cef01e87c3d022ca1829d2cc7e6a160a5afbd3ca6b94d75739b122e3bb16f8bde28a8f3223ba\nb728b659fa2d8487e061a37f7d14a4c2d70cc37497a8715695d8d332cb274deee2ce23b9b5f6a7408516c02c3d526a49\n81277b46d98848a45abfbe39842495659dcbb80dee985a4fc91d77d52b815487aa8bb455f411fcce4c3879c7a075a93f\nb05b6f1fb4a6e654f0ee6b83e08b58b57059bb0b7c490405bc8d963c4a2d6be39c558917977e554e1e9e3169961cbf3e\n88f75fa7d016fb6442551ec071cc1e2beeb3ccd213d16d744f573a82f5d70f41dd1b18af71d5f9e73d87f2f6b7dbe889\n81a46434f1bbd65a661a0ff45a0295b8fd8a42a7969c5953721bc98698b64bddee3f806876d1e9983063fdd0c11f99df\n8b4f6d33c510a4c9c7d623d9ae0c9aa631fcb987704726b2a4d8519372123bce3c439202f25b5b47045ec14ce39a21a8\n8d5112b330fb63cf6ef3d2164b404c14ff9907d685015701399a260951912b19b8f270f869df317e9050a127763d7980\naadab394e84dfb82db15ecd2427f39b62352c3e1647c3bcd14fb24ae830ad0116f0fed87ddb63963b424a4741961386e\n81ca4e5600d00a3bda24cbdea7a532a4cbbd893c10e7ff10667c15ffa8138b91667abe5466b31a3dcdd60155c48538c1\nad943af1b8a5fcfcf309ed8f2f916339f254cd555c71a407a47365a139306286a05a8314e1c70e20a65fccd75d36fa12\nb16597a0b437060a390467bbfab94c0bdd695ae898894f4689f939e30cc2119cc08ecb594546304adf876f4e275ebcd9\na44a4e0a6693be356065891c27eefa040a1a79475be53d54d5fdcea7e0668ff9b35f850974000ed119f6865aa6faa721\nadef27d1b6e6921f4eaf69c79e2e01f5174f7033eaafdd33edcfa5119af23f3a834ffe1bdf19576581b797abd1865b34\n90c1e9202f3ffe28f8e1f58e9650dc4ff4dbc158005b6f2296ec36147e524b4f2f87f8aafc39db5b006fe0c491c92f45\nac817cd54288b6f7fe6338415344fc9e7b669414051631ab2f27851c052c044be06bf7235d668e194bef695923256368\nab14944ef653a14456d4ebc12e3196df3f1b4707c4e50b317b5ccc8ca3a0720f0330609f0e7e71793f6ca01583f38c70\nad5353f2f380837e5ffdf079350b3d42935a0517861d03af98db5ed3ea8501abd68885c8c65f5a66e944b1874826a450\n8b5583863f84af8443ce8970b02e26cc5d959e47efbf8a66a54106ab165f1f76b36423aee74c7b5402fd1c4d7c1adfe6\nb3b46037eed9fc30e4f8f0da8bdbdcc40a38e22e876ce9fde981883017854aba82c18eb00887d92ad847d30082fe7271\n98a2b6fc90b7ad172e4368c1e54675b75c8bf2096d91c9f2b60b3397d3be3b705aed5389845dbd68f0f84438cd0f7687\nb155e800852a5f90a2eac69cc4483428da1dc2c31588a13c924e60a7616ce9baeb7d4b829c772b260277cadd8ed84719\nb8b92c520a1302b0cf7d993a52e1dacd7f27bda9868d59c55687d995ae676b7070af4c0792a9bc1c2635d44a4fee01bb\n96dfe9bde526b8fc829eda825f55168b88e8f4e43d4d708cc3060df03437b46e12a8ac70d7788aa75760f6294d3e84d8\na3fa66c54e2fa084ced3bd838614c6c33042f492a5745d167a723c60d5e7d6020ffd1747981a23f8b68df21ad8f0fa77\nb573ca10cc41fc04a642f6f62c355a4fda69b94b8e95dbb02fd1ccce4bce1191356e1fd66d372159944eb36a7071f005\nacd0a1c9abddfd0ea223eda1722aaada362d34234455bd1c6be115d41e535b16f12ca428da7820a757fa4c98884a385d\n96f242eee99c4db383b8754fa7987c0c159652e1866faec905a8d3f010e0a1ad05bd77b9ea8dfd653738959180f58430\n9215a9b672a5d6e435e0e0a45156e0e20f75cbbdf1d14940fed3ddb63d433bef643796c7a4fff881829ebb2b2eba9460\nb8ad9bfceaf08dc5a874387219ddd1170bc3a5e25ed72d321d59ae713be5ddf9fdfbd3aa7ab163be28dfa0dd14614e19\na19a1050590bc500b32c502f393e407abc3d8e683d6f6b978873aff3e3299b18b1f6b59e2b0fe237d819dbdfcfdc98ca\na6870fb11d4429686e52e1f44c8dcfc7ea24a020df9570c021578dbc1f9bdc8cf797cb3a72d7fc52805dba35d59f2cd0\na7be733b64d5c06c127bd1c87250e42bfe30ca91ed8ce51e0b6e377f454e8f6fef7f99bff650695df2fd10c375da349b\na1b97145dab30330eea2cdc8739b2446a3704b64505fcea3dd8a9b4a72edf222e98d967d6fd7f76794acfd97aa091065\nb2127049907d2a3b654d1c940b740bfba3dbaf660f86ea79c2f909af7c9fe2a07a1caeb1be12370aeffaf8faa50f1582\n8a207701214bb28e99b0784e9228b1c34afa701966267fe7110f6f29f5bb41eaae6cdb98844d0400787978fabd224de8\n9925147a383b6f5f814520220ffdbf20b214225882c3ef49b1a1ca677709176ec82466fb9c4be2dfbe5640afb63b014a\n8416ad93871623fb555b5390b80de99edaaf317350cc0c1ae9d54d59517074d40061f315cce8ba2026d9c1e6f6a1009f\na315f943deebbf0a2cdbcf3f8323e215a406e9cbfbcc3f6288714cb3a6befb1bf71b2a21ff7a2ec4731c65044c45b6b5\n8213e0c2539c24efd186ffa8b6dd401ad2233bc19166a0623b26dd1e93614bbf792823f5599ac116231e2efde9885709\n8e5cafd2f34a127a4a896f05e4d929eef06972a1826b3566446942198df26d62f7679b987db2b3765d9d8058b1cd85c2\nb5302b399c9cdf912fd59007ad4737255552663b1e56dbe64a7b2ddd88d2093c73ea319b45db2dd49d1e03f5bef1a0ae\na0c2bcfbed4b008e1a56e5d2f2419aa59d7dd0ebd990f1c18588de702ad0fa79f445d69965fa9381e700eda13b309378\n80a44eea1ffe24c26b16b8e2e70ee519258b9ad4b3e83cc4e5cca88ebc48d0160066f8b91d0581095b0de2428390c8b3\n84a90cb9c7d2f799f1c4ed060387a4b793ab41c5c3eaffd3b60face9b9c3bae93cd2017283bf3de1e3dac63d0d84dd42\n81d22febca276a05ba9bbc5591ee087b0491beb35b4d9f8fc0d041d642a574667ddc57660b20f5c568f7d61fdcb41bda\na3ac965ac27a28e102a439b74fbfc157e75fd57620e4c0750a466165f8aeecb2191dcf8e656f7525aa50d9c7c69b0b5c\n913c17434ff0d9fc52e2ece4fec71b37d4474a18f3ea26925c1be2b250434d49759f58033ba0fce1c6862c6197930dc4\nac430559c151a5e461f67b49c7786c97e1653fa8698e9759ddbdd99f5daf17fc5a012ae6330739440880728f24eba7c9\nb10d8e9f8aed9361b042d1398ec74364f7c7c1cc5c7f917060572761138bdbe89bf409389ee3879f93bc8032dd67b308\n937271005a4cc6a6ec134870c1b56471aa84ed4f4af1b3d5f334bc0c42762fae0c9a6a2828d3de6151a76dad7b72781c\na10e4dcf51889f69e6bd4c052f8d4036b9571ced98a3d7d779cbcb9fa5c3a82228566ea7cc1d012bf56dea0a40c5a64c\na0ed026528d9a8bb3201bc9dcd20598933e8c72fd315deea8da63d06e97392aa729d98a55a8a60fa4d5573513ba5c9fe\nb723fcd04cddbd4c36feae827a03746ffef251c4f4c55a88beedaeeee194430a99f566f483668a0d88b13e7a4a37f1de\n84a2cdceed44828c7c05a6a762edec0165e434e7029df617d6646aba48776e6c3b823f40689cee136536f8c93e08a629\nb786264e3a237ac3a1d56c9f4e87438dfed620c867100fd38b01287f5b755c7820937403bfb86644e082094d3e410a00\n92cc35b2065fca157c7bba54410f8bd85907a01c9f760aa0ddb7a82cb55811d24cb4dc6b725367a6a1c293b809a48ead\na12bbf22b117f00164a42515bc57cc9e6c43cc77fb737ee3d0c0cad94cb50cd3847d61cab469cf8ca76f7958bdcfc771\n85985b00de533bde2a757eddf53be79ea39091d16af3fc92327bcd1cd59bf2bf4411a334da29ad775e8ffaf3cea7d7b8\naf9eb24185b0d330d0ea1d0b0fa78af0dcf42ced81cb0128f16cafdea687a9c5582bb6d7c5744117b271cd0b3303f0b5\n8c8aaa1d85ed6327f85d579767c7a9158d209171b3efcb3e8a9d9e534c078e821b6aade255101d2c9ef6d67ba66f10be\na450518a03ffb40e1df89e0f88fd55b5b06f4872cdfb7ec55f40dc40d9424b3b289866336c195bdd54597d95569e0096\n81e61cc69f93c435bd77f155e80626a9c764dd92b6c76af15c41346527948d8a6ca87d6351a0fe7987e2ee3aa66a9625\nb615e0cebf4fdff4cb23a20c8389c370915ba26aa703b28efe4ab070b1603d1c5b6541684acf46b52a915f6aee447539\na7f51885c7a71885cc84ef734ecd107e8bf5f7a25131415f671d143cc1de92859e65001125323c7985799993af6c410d\nabfbf7a46f32066989c32f774edcc68163f085ca81e94fe8c9fb32f8d451bbb2c20ac45cd8d97f9e618ab40186933b1a\n8cf35a522b5cac1934004aa9dd236bc77198d43272888afa860cfc79b4b28dabf7a3c74098f84510897566fdd609aa45\n86aa927df78f7a06a4985eb0a4f0b93529cef14f9fd2812d46abffbf25e618ead14d99c70e3c3bb2e17f3f7fabc9c264\n860f1b4f4a398e9a8bb4739587cf96979cfbbe1687b7e91e5bd1198db726391b09b1a261bf12e96698818f60b5bd3537\n8e7c4ee19ff115881051e8637dce1f5d6c65e865d0c757e8ce41b6d7bcd86c7070cce60649692bbf28c868c7e2e1e2f4\nacf7ba01b0220419f09169ac8d16e5cc13dce08e88c90b8fdfaa33aab417f011a20b79a178d8a9f7211589d2e0affd7d\nb404bde8e715aefbb9f20a353b911b79173ef3e2cf0aba98b5ae6190b90597d65043b0b4e014ad9ea6c77da2d213ea12\n97e3615d1c77a402253bb55da2d1cdf82de316cefffe42b1022c94b4818d6dc4a313731db85321c537914bdf716a875c\n940e950b96a4096a578c6874d747515936652b9b113a5f27f5a834a610867b05f9881e2679b0b289b8527baa0009b6dd\n8de15a13ca236a3a285ce6e6826c502ae7365bbe468b6e8ac67b15b0bb49be0e996f1eec81ef69e4b7f54f8e4779a054\na12244777eacb08ecd42b5676b3a51153022ab97e9353ace0f47c6054c22de9ba60d2a60f59a36841c2a791cb1b7c288\n94f7580203e39a2642ee2e7c969b9911f011d7f3a90c398e1302d26edb3df03df1d0c43baa1c6cf90dde95296d49e742\n82ead33144aaecab965faf63af384565992f38fc1066e71e33d53f43ac93892e27fe78c4eaca1cccbc53364e26ff31e9\na0c129e9706d354249a7f8aa664ccd7ede89aa1445c5547410814b56d10dc086720953363ab1da8ff5f1ed5d8e575104\n93b3057bf3f74edc95237781ae012cc4b1d3fd0455565ceaac7110290aa518ac32478ba4eb9851555fa87270fcc84f1f\n949c2fd0b94f31f7cbf00c679bd3f6ec1a2f4056654708d39edf1a450b4e19a6e251d0bb24eb765087e698f61d3fca2c\n99fd2e50e211ccb66b895eb2fc42f260f3ad5767f04c2fe238b81dae98aa6e3977443a51f4fe7b43f499caabe45699a5\n84fe19626503218f327b5325bfd7c0c3d2614b47d34964aa0259d564e769c6c81502132cc1765b0b31fbe39852706927\nb43287ec29d9010bec4284de58fed48dd1e129bac79f09d45153c9949131782f77b11b0c9f8ee06a39e5e9bbaa8e2c6d\n908902f3ed45482df2f94415fc8e5a308057a40c8905d7cbbd58ec4848e19276577b7f7e69e5e684a8b981738e10f7ef\n85cc7d9c1eae372b4f88758cd6e21604b4bc9f0794e1e74b6d9de96347f81944d01331385fae7a38e5f6096c1dc23465\naf60288c702082fc258b3dbd6952c6b75c1641a623905f491b1e72f49b9d39b33d150a336450abd3911a4c128166acdf\na7d8ac7e589558c4014369ab6f4c1f2196205b03e4278152ec0dbbd7ba54e803c3369a71d364a773aac8dbbd117e4a13\n9833aed34e48c206e9328073597aee1123f5bec085339b4e6839a389a429bf3042798a31fac1464ce963204adface76b\n84631a4f012bbb62133030224b57deb32dcf464cacc8ffde7775adbe68707263ab5527a1c75e597e03aa703ba658b889\na686a61f6467858a2a4c13e70ad81b1901290d3e51bbc0c6e366f9e652f575e91b11c75f640ccef8b0c6c1b05a43c9a0\nb585f0ffd5144907703b41539bfad7f9f058f5985f63db911064ba6b07af8da2796b84b16db42b8d11135c3f846cd9e2\nb525539516c7bb25f1d7e165f269dc8c9eedbba74df44887e178ab8fd798e2a31f39812ca922d6b64d91564f14012a64\n91e480d7568fd2fae39c35b0a8d623e66a3160fee1dd4e9097255004938b11ac1cd3918dc6a1e5fbcb700c95a547e5e8\n936ef55c69b842b6177de71fa48dc5442bf5132116b214302f8f242ca36a273a6bbfbfaf373777104dadbe8e7da5e970\n8e950c0f6688abdff8a3b8bd77be6da6f2565c7b55711f5860ea62a3ab1d51aac31821c602bc11a45e33c69e7dde3ea4\n90eed4595104a0527f8db1e028ff622ff70db4eae99cf47f6c2a0246ec7b103570a6a9a877e32e9647cc74969006743d\nb756344f6c4ea05b792e416d9bd9ce9dd4bd904e7622761f28a85628506bfc9d88a25e5f04db62fad30a92fb1d8d8556\nad79ba76534c1a02ac3e9b7308d390792984cd75b7e1d0e5e4ff123642d99d4ea1825643091aa8117336333c40d5bd94\n832b08144887de0c0341d84f6945450af8d7a4eb32367d7703118186c1be525df9382ce61fed5f3b65a0bb3449185f7f\na322fb944e46d8e47994820890c94af423674716da810ea1da71e0a7733ad72c22114ca39a4b59c98ce4291a5684c154\nb982851a65140dbea79bd3b5487e236feccee051deddcc17c2853032efca289ddb6eaf64be3dd85a73012fdbe9d2d4f3\n8eed5e230e201830b44b9fadca4e156fe1a16bf840cf29da0f381ea0587b20c226de2465c67e6268973e776809af68e1\n81c8f1c04490f36e41a53ee1b5185cb8adbb37c258fd6c3be8c56835bf574c37183a94d55b6554fca35d6e6dd9af0133\n8c4928724107cc16d36f2976677eac0b852fc4c3c0bb2f9cd4d59cd24a113faf33b2faf405c3fcce25be51d41e42c2c4\n8e4ba842636fdfc4d71f0983538ea5037d420acd26abd12efca48c252eea85544b2fa9fccdfec4e7c2a6359baffa112d\nb4315b84700e26dec26f3488d308430fdff4809c10d4c24309627911cbb769ffaad0d1ecccd622dd02194eaf5ba59f91\nab888308f757faef32648c1db01650dbc9aea248b09d06e6efcc996d395f48ec96f2d54a02de441d753fe8737862d991\n805094cfd77e207d5c75f3cad99f41f763ec15443052cfd758c6a82ba422d831a1103a7f9b100da49c28198279c3d3dc\nad857f33243e4a2cd2a773700def21fc7f94939d1a6d2c2125ecd58fc206ccafb07a2c02a1cfce19857d3654aca2c70c\na4d12d40149953daa70b89a329e918e9d93efb4e8004a9357fe76682dab9662c8507e16db83e849340f05cdb4933a373\na0dbac2ed4b5d03606524245e8a31080eb5bd3e9a0c51dad88c3b18e3e6bc5d64953a81c8e60425b80107ee6b62b1fb4\n86da05355900f327164a78901f6e3db857531b33b1e855df1a67a9ba222c6b05fdb6b0ffbacaeb1ba5b45ff8979b6b68\n932c9873aa3e226dd922b5a616c75153bd0390ce8f332a414b9c8cb6606c2501a37a2aa88097bc7d8e2c4261706eb38c\naccd9cdf07ccdd42033ce3b105e00bfd39e2304b1e3d66f8b1128645634452c20f759ec45adcef2fdf04408f62c4cc04\nb75cfdfc1cb48918752eab17eb579820ee6e71e6667abdb64df834ffc8c1362fbbc23ca2c80dee248fe1fbb72d87dfc8\n88b998c73b00638fde7d3dd650a08c5ab996dac6ac34251337fbff3fb5ae4a25dd20c1a16c987ad7ded19eca23cea891\n8afef0956c942571a27f504553fb312cca9e50ce41b44e0466d0516c5abe4d8acf4594cdb03b1ccdbe3f2e6a9093b713\n9042cd83c5ff261e9ebda26398caa16cac2cb840d19062fa8ae50e044c27104972948318f4c866dc4d578798272d3e49\nad536719a64570a2cd1d72b6590ea1d02c8c49f259a7867be26c8191445165954bcfad50ea12688ace3fdfb0e98143bd\n97c86328d63d297b6bc9718dc1ad5a05b908a750d1c455c700d84315589128ce4eea958aef2bcf0fcf4adbd8e3ce58d1\n8e592cf0802e6a9541eeb654dc55055e11f3d757847285197132935ca35bbb1a9156829a39384dfa6f645ff89eb36738\nac16c614998944f77590bf3913a010e13f2d3bbf6a172293baf5983506c1a2d89989fb72e598f5bba1ea10a691377c93\nab8e6f5b46baa6632de3621497bcbdd584decb999fe7d8a3364843a1e0b76497600630b6a24dd30119d8bcbfca29f335\nabe1d3af5279e60122d9cea8cc6581c819d7a0e20e3715da0f6da7e02d13a7653db643bd946e2fa9ba338eca81fbe140\n8c33bd831ecfb18d1d0713e16beba768e9c42df62170c1f8a16764912be77f2ac5915623d1d25e8c462aa9c2f6669ca4\n903692becae4a6409f7bdb127d9b11de57a5739fe24218dcbaa0092648d5332dfeef29a908ee9e43e5e0a51a4c3639bc\n92591e90347ae286acd365eba32cd9ad8f20f4c9cad2dc579b195147ff290adf0d776bcb3d4b04a25d68a941fc0c781b\nb64bbccf860299aec16e1f95c768a1f337c740bde612e6ba260e393edb8b04540127194761c42597abb9bcb771c576c3\n9194f056ccfdfeb78a11c5347e2255d7a7ebd1251f9aebc0b58feb68d3e03a7dbbb74e3ef7309455853adfb4694bd01a\naa4f15f6d6a53ae65b7f6f91e8981d07a5919d2138679a561f7bb608dc4596e45ca06c9441d51fb678b2ad89ae7a17ae\n90e3d18507beb30bde08c5001faf489a19ab545c177efb3f73fbf5605f9a0abcdc8bfbc44f832d6028e3e0a834bea98f\n8f31dc0118c8c88a6e79e502d10e57652b7aba8409a5bf572ca63fed6b7cbad7f28bbc92ac2264f649792fc1d0715085\na307d1067ea4c56437b6f8913aa8fcbf4a24580fc1e3336e7f6518f0f3adb9c4733090e459a3f737414ec0048179c30a\nb7cc41fdf89595cd81a821669be712cd75f3a6c7a18f95da7d7a73de4f51bb0b44771c1f7cd3cd949e6f711313308716\na9dc74e197fe60e8c0db06b18f8fe536381946edecdf31e9bd90e1ebfcad7f361544884e2fe83c23b5632912ec284faf\n8b3e1e81326d611567e26ed29108f33ddb838c45bbd1355b3ae7e5d463612af64b63fff9fa8e6f2c14c8806021a5a080\n92f6537bca12778866335acc1eb4c3dfc2c8e7e5cf03399743dcea46aa66cac92ac2963b0892784263ad0ebe26ffdbf6\nb5cc0061f7a3e41513199c7dd91ac60d727366482a4c7328527f7bd4fc3509412f711bb722b4413b3736a219b843d15d\nb3e9711d68d2c6f6e2cc27e385d5f603d9a1c9a96edeefa1ffdf390439954d19504d6aadc566b47e229ad4940ef020d2\na09d0d3f0e5dc73a4a0827b72710b514bbfce4a7fcd5141d498a5aad6c38071077f50d3f91af897d9ab677b7041dedda\nb177fe260f3b86e9ac21f1bfbe2682ae5dd8c9aecebb84f37054bdab6e39094e611ce582210ceeddde66adf759dadb6d\nb0ac6595eba9f5dc4b2fd21856267cfbcfb5b12aa34ec69ca32b80071c5b652e85c25a224d80443d503bf25fbbfe07e9\n81f3c0e11b196bd4a2e8f07f8c037002566dc9037da81f3988add458a520c24dd1be3d43d851e28c0c6a85de4b57a542\na44308c95615f7fedb2d2127012924468c015df9f48359cc2e36ab4223870b0bfc1e9040baabefdf5266f93afaad896b\n8493ec4c32d5a13b81039f1b436eb83f259945dc950e3c6c2ccf5087ec56dd2f60890ed4edf01728b6a54950e19b35c6\na1a439ec2a6a95bdac9aaa925ff337ba956c0d236ab5318354270e73ed6b73b4ae2d27b4c1686cf97b6526d04e65be81\nb4659b7b53c55a4b2bbe210b53520b392f893500e18990d843b72d7379d45fb44dd1dd2184348d6fd853d6b9ecc6b7c6\nafb2c68d75d00130b0e1b4f250001920213121791698ec04262db714cf7b1408d39f6cc10421f954845aad5b8250b77e\nb22b843b40a97210f94043b552f348f66743055a3f274856a738e7d90a625b80e9bbb80cbbb450e1666eb56b8bd5c60f\n800895ced82fe13d5fff65a93b0051c3df698bf1221b682accfdb63e3970f669ca37025750697f4e8ff2a3322ad57be4\nb21f598c50d7b9f4a584d548f85e42055ef8e24991906d973749090261584c7f4f5e984b528926f7e75375dd84d51af8\n849b1c68192d18274598dd6d0bf48fb5ee3b1ba25b331cff2d06f345bef3bed49760ca5690848cf33388f6a9a32cd646\naeb6fd9478b10ef456f6bbb1e6dd19b14475e65497772d12cfc097948383d3fbd191bf95f046b8bf1989954118e483d0\nb1b5e0ea2835f7fc8b66e7731e392b43d16cbce04b52906b6751ab1b91978899db5fecbdabc23a19dabb253005468136\n91b6b1284770cf6f7ef35bc0b872b76c7763ffcfa68f9c8cfabcb2f264a66d47598bb9293f6a40f4c3dd33c265f45176\nb9ffed029846487c2cfb8a4bb61782bd8a878f3afdb73c377a0ebe63139fa070e3fcdc583eec3a53fdc5a421ff1fa877\n998007249d041b0b40ff546131cfc86d0b3598dcedf9a8778a223f7ed68ba4833b97324cbb1de91292b8ff51beab44b3\n8eb77ce9e0e406bf6f002870fb2fd1447646dd240df9bd485f8e0869298a1fc799d8a41b130c04370e9a9cc5c7540ca5\n853db8157462c46f2af7e8f94f2ed1c9b9a7ba2896b4973296898ff3d523d6e29e0b63a5d26cecd5e490b33c87a4cecf\nb1436b6f3278768f0979ee852944258f2599977d255bea6fc912ba17c5dff5bdc850cf3e1fc52be9d6d188e868670f4f\na76acbc5832019b3b35667ab027feff49f01199a80016620f5c463dfcbfb51bf276ed17b7b683158ba450660cc7973eb\n94540cdb051faf3ae8b8c52662868c2dab66bd02505c4f5f8eb4d6b2e2e5fd9a610890c5dcf8fd887eee796d2b5753a8\naa35099666bceccf4eb3b65b13bba88e30a8be93693ab6761d8e5523343e8d6dd42d977e66499352fe4e9e9784a1dd0d\n894471aad17be54319083c4b5e40adcfacf7c36c4aab0b671030b7ef321c53590a25eccd836efd20f32a93185fd315bb\n8f52a9f705bb0dea958fcfbd52e2b6c08ad0f89a07a6b2942c1b4c37eead0d97a38a9e9aeb08d5d59b7fa2a9347f738b\n9031c16b4f936c9cab55585dc5064739f696c3347ee2c0792320c9f749e760d120e396e8485ffc79d81c9f3337ad3d1c\n82090a0d0d9b05459ec1c328ecd4707c333b784e3aaa0ef0072cee1eac83f9a653a75d83b9f63512a8c41200494826b4\n92c3a9553001f9ea4d67236b8ad1a33275378202cc1babc03f313895458f4b2549bfbbbdd37bfb8fbff0decb6b9f820a\n88651868f4da37338a22bc553388df5dd1dd0cb78c4d7d07c637d8f6faef4bed72476fdcd4304d5bedf3514011135f08\n83fa0141bfebd88063f1d787719721b4c6b19ecf565b866de9d7d5d1a890e0e3d859b364bb65f8f8e688654456a40263\n90a7fab753e5d56dfc0e53a6b4e6ab14508220f3a62b3f3f30570c4c9ad225e74122635826c92e8e3227ec45e551432a\n8fa375b0345bf6e5e062d108f9feaec91029345ecac67ccf1264eac77b8654cbfdda1f10579f481889c0e210254eadde\nb83f06116da9daebdb013b26724523f077debaf6bc618b48a7a68858a98d275f7899c4ec73a0a827219b9248dd81c8c9\n8be1cada55e0c5ebb4fd460b2d209ae5326285a20c8bdd54ed9d1a87302f4063c8730bfda52d9d40e0d6fe43a0628465\na68ad6f813743ec13a811f2ef3982c82d9d9ac1f7733936aa1e122f8dc7f4a305cc221579ab8fc170c3f123a1576f9ab\n8878f1128214fdbbb8a0edd85223741e021508ab6d36c50d38680f2951ee713ea056ed03f62b9461897963d50ceefe0b\nacc0d43d1b0260528b7425b260a5dea445b232b37240759fc65fe26f7c9d8e51569c5722bc33e94de6492f4ba1783504\nad80b1dd717b076910ee5ceabcb762e75e4d094dc83b93b65c16de1f75bc712cef223c05d5579c1561829406c07a97d9\na6fc9803f9c09d95fc326cc284f42ea5566255eb215dba8a9afb0be155ea11bcc55938b2d16f01cd2f2eda218c715efb\n83ad733dbdfbaae8095a403dbf09130513f4ed4f08dcf8dd76ce83d1ea72999b7eea3a7b731da0d2bc80a83c6ee0e3e0\n8748912fbd08cb34a85416b0937d9c4327e9eed20d6e30aeb024a7253f14f1e0d774f3326e54738d71aae080e28da0fe\n8997e78d8acf23051428af67183ae9b2c4aa42b503745ffe33df35a35103c589987e1473ab14dcd28ee78ebcb10d8e95\na2f340502a7eb3c4a36412e6f028321372c4fa18a4743945607424e932af1271fa3e6598a162c872072529576eba6283\n868ccf19b5044ab93b45c9ed3ae34fcb504fe1453d6c4a1d12c325032cf01eb90356de82080ed897e97dba13cae33a02\nac8867005fe4354d67aa37b866a7e581d2f94f7bd0b9f4efb5c2d1370ec13147a60692051b02fd00ae60b512bce9b1ff\n8fd01886b046819c83c12bb779e432b25ba13713f9227be702074ec3abb2bba6be37220a0a26a4bd4171b99b14e32bc4\na128981ed199f92b5959975c150a93a62fec50b61c80a3fa0634d90fc8058f76f5cbee77aae6889af12d296b30e613cd\n81fe618552ff7a36c9235c6d4066cf2f930b5b38de4089e18166e4a06ca5723eadd1976d25e34b74b3ce942300b23e5b\nab1223ea049e6e0fbf9b611de7fd7c15e5e9637cbd73aa0e36aea08a7503ba6804f2aa807186fdc9aa7f4f9195f72e24\nb97285286981b2665f898abc13f3243b63005bef8db4cab3f658bf6167036b61af400f08db0fc3c640a9c623b760690d\nae3ddff7c1f0fbb6a13dbbc667a61e863c2c7c51c2051e33cd61620142e7e30a7e0c4c1f8fbb512aa3a8640267c6ac26\n99c2a89d5bef236060e51c4f952664094c20fbfca647e5d24a55c1fb8df2f3df58244fbbf3635db07b1c29ee3234fa6f\na5010764d4b9cd3b410638334d1f70c5f4843f45b4f4a9316aaea5fbb2c510a97449dd7a07b49f47334a69d37d9955d3\n86706d011dcdc9e9d165d01fea1df68dd74bedaf15a39f92893c030cafe96f4498c4c1fec2d2136354341b3f440a1462\n88fd57eb62bd7dc35722f3a0576c2138403a2f663a2603482e8974a895cf56ddbb02657dc6b89eb2cf5c1f9d1aff6426\nb0dfd4c68e3acb6bb8a776adaa421fc5e268ed4d5964bb90a727091e5113b55b3f9c6d33cedb3ee47ff7acc5df8b1749\n93b92bc942e1a636fc5c2dc1840de5faf158a113d640d5a475b48e2c56ccccaf9db0e37e90ce74c4b3f5c9ac3b2eb523\nb29a16fa1ea95cbfc1873c435ad40dc8495ba6341801b72bd95d908147dcffb1b4bb426dd635f3af4c88984f56594dd8\nb8f367105e1a2d554ac30200c66aeb579d3d30a8953d20fb6ebba2d876ec39c52ea5d654f1bb89b8ddf3d9d651f31cdf\nb5fbc228c983d08adf8612eba5b3db3acff604439226f86aa133b02cce4ffde2f977c8dbb8b446b4375673f71634c89d\na399bea37d3056e0559f6644faa0af93063b4b545d504d7e228d3dbbc294af83d3c4cf37fe026b63899b4e7d50fd08f5\n928ef411a36414b24aea26fdbed4bdb1bb6bdc2d967e2553ce54c7c4e077e76869cea590257645c9129dd55ce025295c\n9684a4adeed416a9ce82ad79b55c4a3adcfbd43950bc442ed8a340381caedb70f4baaaf821e3a152f483f965d8f56162\n92558a37f214d6f4cb6d72cd2f4ad24dff9d17611b9e4a41ee5c741a5d1ca9e4053b0584533ef4da206110b5dc3e2a35\n973bf0724d1785cc5e85d2a8ee8c354ad4cf557217ced0b7940f6f064024c20b2bfc5b144c820b5083da4bf70690de4d\nadaf1389dfa528210ca9c2657c5ff10d51f7e3b18e93a59c37211be0506c3576cb2c04ec80cd0f82605e53c5a3556620\n85b58b223b09fda6f3ab674d75e780c49eb2167837243df049281e8f4fed653811138b398db9cdfe7405fdb8485602fe\n849504d3db408d80745a07e850b0a804607b91a59922a5d3bc40da2748c029c029419cda38d2a4485cc0824c6b2504f0\na3f4afcb353bc2582a02be758ebf0cd18752410ca2e64231176bfa23828423e0a450a65f241a9ed8eab36cae8d9c567b\nae362786cdf121206537af9590d330abbc6dc328b53cdd145dbed0e5df1364c816aae757c4c81f9d619e3698dd32bcdf\n9024cfa5b0101eb02ab97866d5a3832944e5aa6888484cfba3d856576b920787b364fba5956bd7c68a305afedc958201\n8a116df09fed923acefb2aecf38a4fbc4b973ee964d67f03791d70bee6356af43ffca117d4e9463ffaf0e0d5d5e5a69f\n9163016175c73f1bbc912ddfe03bd4e1db19c64951c8909ee6befe71a1249d838e0db49f03670bb4c5c9b2ab0fb4fef3\n8f6357318d8d16e7240a02b05ce5a4976b6079d49daa258789c6dbf4a47950ebe9de6411780fab06c7c1f35651433380\n8e63cbae8be7341892dbedee3111adf0307c4ee9e375181aa53478f5ba9cdce164d6ae890e5f480119a3a51c6e989165\na9782f30674a4874d91bfba7eda63aeb5dbe66b040c768d6a925d8ee135f0655ea56276b105239cc0668fc91ddb68cd1\n8d9d94b61ab84ec08665cbe0244ea41756785df019e453ef078c19380bd44c39d2958e8465c72eacf41eed5696037805\nb1470e6f5d2e314474937cb5a3bc30c8bf5fc3f79014945f6ee895fe20028ffc272f9d3a7320aac93e36c96d8a5454e3\na444911bbafc71179766594f3606b6eaff041826607fd3192f62dec05cd0f01b78598609a530f6930e8440db66f76713\na9823d44e2638fca7bcc8796cc91c3eb17f46ad6db9f7f6510e093727614aa3a4f9b2c4011ef91dc1c2d224d08d8d05b\nab86020972c359ab98294212558b4b14862040139876c67fc494184b5c9bcea1dbe32fe0c8dd9e60be9daa304acd599a\nb7e5cb685bbdcfdb1e48259a5d68d047846c8a35c5b3f90172fb183d1df40d22eaf0edaca2761a07c29c577000ccfed0\n8c88319dae4b28989817e79e6667fd891181e8d2ed91b9c6b614985bca14b12982462ec58b17be0463c24bbb79dd62a1\n8c1c6867e7107fb2178157c991b9c8b0f90c8d57a51220bf3650438ccabccf62da4db8a9916491e730ff3d0c106496e3\na00a79bd58da6528b9af033087260f9f3d00519eafb4746b355204ee994e89481591b508eaa5402821083e250d38467b\n8785abd7c37690f6aa870ee5c799eef72e398a7898b6767f698515be277b9c2fc1af12ea89b0620a848221343a3b5ec3\n8aadae68543db65cef71d0e230a09508d72061398ef2fabec0f856aacff2125b79c70e620744aaf331faf3dfc8afb9bc\n8ff0cd437fcad9630b8a2333176a55e178db4142ec841581590594d74d5b53baeac5fb903fdf7bcf83e245b95b58285e\naf274e8fad6b190be4e5dc92d2705ba6ac0d7e1ea29e958a5cdd4cb764de46a56d9eef62c999a16e7c50a50b2d9fe3a8\n865e6ec7d1aa848786d6a7a4e87a24d442311f0810b01ef5a74928ab59fdfd651e48880b49680047e5b0df6b3c7c2ecc\n800706baaeb35bf3bc33bdea9a8b5cb00d82df407b3b7e1b781a9359cf44fb410ed311591080181b768aae223d9246aa\na9496389d0780b309c6998374ae159f58a8d0fe9a1c24c36cebcb45b27d818e653b51a8ee1f01e30a9b2c46a548126ef\nb5fccf4fc3186661939fbee2e89c2aa0e3a6ad4907bcc98c7750520540c4c183b1bbfcdf47f2f1c5e75c3a30cdf30c75\na90028e39081b736e628c2230cc1338f9210ed01309a40fdf08d39c10cced2cdf71271013bea6dba3a0444fe47963106\na0815cbb325a8fecf2e1bcc5046644be32d43a8001bd5d8cf0022e4572cd0d481b3e717002f7ab21e16da5f5d16886d6\nb2024787fcda52abc4138150f15e81f4a5be442929b1651ddccbfd558029912be4d61c3c9b467605fff640edf7392494\nab5aa60032304a584cc9245a33f528eae7157808dedd1ad83ebae00aadc25dbe1cd5917eb8b6b2c800df15e67bdd4c4d\n866643847ef512c5119f2f6e4e3b8d3f4abb885f530bb16fcef0edb698a5b0768905e51536283925b6795a5e68b60ddc\n806aa99c9a46ee11cc3ebf0db2344b7515db8c45b09a46a85f8b2082940a6f7263f3c9b12214116c88310e706f8e973a\na6eada8b9ff3cd010f3174f3d894eb8bb19efdbff4c6d88976514a5b9968b0f1827d8ac4fe510fb0ba92b64583734a1e\n98480db817c3abbc8b7baedf9bf5674ec4afcfd0cd0fd670363510a426dad1bcf1b1cb3bf0f1860e54530deb99460291\n81ab480187af4a3dfbc87be29eca39b342a7e8e1d1df3fc61985e0e43d8d116b8eac2f1021bde4ae4e5e3606c1b67a21\n8a37df12dc997bf9b800f8fd581a614a1d5e32b843f067d63d1ca7fde2e229d24413d3a8308ec1e8389bf88154adb517\nb045a55ca0bb505bd5e8fcc4cfdd5e9af1a7d5fe7a797c7ede3f0b09712b37f493d3fcf6ef0e759d7e0157db1f583c95\nad502e53a50691238323642e1d8b519b3c2c2f0fd6a0dd29de231f453be730cf1adc672887d97df42af0a300f7631087\n80597648f10c6d8fcd7421caf4e7f126179633078a1724817d2adc41b783723f302eabc947a7ba7767166dacf4ce8fa1\naefb56427966c81081999dffbe89f8a0c402041929cd4e83d6612866cfbb97744f4ab802578349fbecc641fa9955e81b\na340e493fb3fb604eab864d4b18a6e40ba657003f1f88787e88e48b995da3d0ab4926ce438bdc8d100a41912a47dace0\na6d777bfc0895eac541a092e14499ff8bf7156689d916a678b50a1460583b38e68158984bea113a0a8e970d8a6799a85\n90ce469410f0e8cfff40472817eb445770833cdcf2895a69bc32bcf959854d41712599ceb2b0422008d7300b05e62e02\n815c51be91d8516d5adc2fd61b6600957ed07cf5fdc809aa652b059bea8ed179638a19077a3f040334032f0e7900ac8b\nb3ec6c0c3c007c49c6b7f7fc2ffd3d3a41cdff5ad3ac40831f53bfc0c799ffeed5f440a27acc5f64432e847cc17dd82e\n823637abeab5fb19e4810b045254558d98828126e9a2d5895a34b9e4b4f49ab0a5b3ee2422f1f378995ea05df5516057\nac05412bcf46c254f6548d8107a63928bba19ab6889de5d331eb68cf4d8ce206055b83af4cb7c6c23b50188391e93f84\n88514163c587068178302bc56e9a8b3ad2fa62afd405db92f2478bb730101358c99c0fe40020eeed818c4e251007de9c\nb1e657d0f7772795b3f5a84317b889e8ded7a08ea5beb2ab437bebf56bcb508ae7215742819ed1e4ae3969995fe3b35d\na727d4f03027fe858656ca5c51240a65924915bd8bd7ffa3cfc8314a03594738234df717e78bb55a7add61a0a4501836\nb601682830fc4d48ece2bdc9f1a1d5b9a2879c40c46135f00c2c3ae1187c821412f0f0cfbc83d4e144ddd7b702ca8e78\nb5cfea436aa1f29c4446979272a8637cb277f282825674ddb3acac2c280662fb119e6b2bdd52c4b8dbf2c39b1d2070d6\n85c211645ff746669f60aa314093703b9045966604c6aa75aae28422621b256c0c2be835b87e87a00d3f144e8ab7b5f0\n867628d25bab4cb85d448fd50fdd117be1decdd57292e194a8baa0655978fae551912851660a1d5b9de7a2afbb88ef5c\na4e79c55d1b13c959ff93ddcf1747722c6312a7941a3b49f79006b3165334bab369e5469f1bddebadb12bfaff53806d5\nac61f0973e84546487c5da7991209526c380e3731925b93228d93a93bce1283a3e0807152354f5fe7f3ea44fc447f8fe\na1aa676735a73a671a4e10de2078fd2725660052aa344ca2eb4d56ee0fd04552fe9873ee14a85b09c55708443182183a\n8e2f13269f0a264ef2b772d24425bef5b9aa7ea5bbfbefbcc5fd2a5efd4927641c3d2374d0548439a9f6302d7e4ba149\nb0aacdaf27548d4f9de6e1ec3ad80e196761e3fb07c440909524a83880d78c93465aea13040e99de0e60340e5a5503cd\na41b25ae64f66de4726013538411d0ac10fdb974420352f2adb6ce2dcad7b762fd7982c8062a9bac85cdfcc4b577fd18\nb32d87d5d551f93a16ec983fd4ef9c0efcdae4f5e242ce558e77bcde8e472a0df666875af0aeec1a7c10daebebab76ea\nb8515795775856e25899e487bf4e5c2b49e04b7fbe40cb3b5c25378bcccde11971da280e8b7ba44d72b8436e2066e20f\n91769a608c9a32f39ca9d14d5451e10071de2fd6b0baec9a541c8fad22da75ed4946e7f8b081f79cc2a67bd2452066a9\n87b1e6dbca2b9dbc8ce67fd2f54ffe96dfcce9609210a674a4cb47dd71a8d95a5a24191d87ba4effa4a84d7db51f9ba0\na95accf3dbcbf3798bab280cabe46e3e3688c5db29944dbe8f9bd8559d70352b0cfac023852adc67c73ce203cbb00a81\na835f8ce7a8aa772c3d7cfe35971c33fc36aa3333b8fae5225787533a1e4839a36c84c0949410bb6aace6d4085588b1e\n8ef7faa2cf93889e7a291713ab39b3a20875576a34a8072a133fed01046f8093ace6b858463e1e8a7f923d57e4e1bc38\n969ecd85643a16d937f148e15fb56c9550aefd68a638425de5058333e8c0f94b1df338eaab1bd683190bfde68460622b\n8982f4c76b782b9b47a9c5aeb135278e5c991b1558e47b79328c4fae4b30b2b20c01204ff1afb62b7797879d9dee48e2\nb5098b7ba813178ced68f873c8c223e23a3283d9f1a061c95b68f37310bca4b2934a3a725fff1de1341c79bb3ba6007e\n97b160787009f7b9649ed63db9387d48a669e17b2aba8656792eb4f5685bb8e6386f275476b4dfbb1b4cb0c2a69bc752\n88b69369c71daad6b84fa51a0f64a6962d8c77e555b13c035ad6fa1038e7190af455b1bd61ae328b65d6a14cf3d5f0d5\naf88b87801361f0de26bd2533554ee6f4d8067e3122b54161c313c52cc9eafea00661c5c43e2d533485d1f26da4e5510\n98ab18e3bbcb23ac1e34439849e56009bb765ab2f2558ebfd0a57cbe742169f114bceb930533fb911b22cb5a8fe172bc\n9027507f1725d81e5ac0f0854c89ab627df3020fe928cb8745f887bf3310086c58fca1119fd5cd18a7d3561c042d58de\na676583f8a26e6f8991a0791916ce785b596ce372812f5eb7b4243ba9367ea95c797170fdac5b0c5e6b7f6519cc2b026\nb91b0ab32638aef3365035a41c6068e36d2303bfee8640565e16c9a56c21703270fd45946ce663238a72c053eb3f2230\naaf4cd1ac0a30906dcd2b66b37848c6cc443da511e0b0367fd792887fdaf1500551590440e61d837dbee9d24c9801108\na06f20a02d3cd76029baad5a12592f181738378a83a95e90470fa7cc82a5ae9d2ed824a20eeb1e96e6edc0619f298688\na465d379c3481b294efc3f2f940b651c45579607cf72d143b99705eae42103a0279eb3595966453130e18935265e35d6\n892a8af7816a806295278027a956663ea1297118ede0f2a7e670483b81fb14dccacc7a652e12f160e531d806ca5f2861\nb480917c0e8b6e00de11b4416a20af6c48a343450a32ee43224559d30e1fecdece52cc699493e1754c0571b84f6c02c2\nb3182da84c81e5a52e22cebed985b0efc3056350ec59e8646e7fd984cdb32e6ac14e76609d0ffaca204a7a3c20e9f95d\na04ea6392f3b5a176fa797ddec3214946962b84a8f729ffbd01ca65767ff6237da8147fc9dc7dd88662ad0faefdb538c\n95c0d10a9ba2b0eb1fd7aa60c743b6cf333bb7f3d7adedce055d6cd35b755d326bf9102afabb1634f209d8dacfd47f1a\na1a583d28b07601541fa666767f4f45c954431f8f3cc3f96380364c5044ff9f64114160e5002fb2bbc20812b8cbd36cb\na1a0708af5034545e8fcc771f41e14dff421eed08b4606f6d051f2d7799efd00d3a59a1b9a811fa4eddf5682e63102ea\nab27c7f54096483dd85c866cfb347166abe179dc5ffaca0c29cf3bfe5166864c7fa5f954c919b3ba00bdbab38e03407d\nac8c82271c8ca71125b380ed6c61b326c1cfe5664ccd7f52820e11f2bea334b6f60b1cf1d31599ed94d8218aa6fbf546\na015ea84237d6aa2adb677ce1ff8a137ef48b460afaca20ae826a53d7e731320ebdd9ee836de7d812178bec010dd6799\n925418cda78a56c5b15d0f2dc66f720bda2885f15ffafb02ce9c9eed7167e68c04ad6ae5aa09c8c1c2f387aa39ad6d1b\n87c00bba80a965b3742deacafb269ca94ead4eb57fdb3ed28e776b1d0989e1b1dba289019cfb1a0f849e58668a4f1552\n948d492db131ca194f4e6f9ae1ea6ebc46ebbed5d11f1f305d3d90d6b4995b1218b9606d114f48282a15661a8a8051ca\n8179617d64306417d6865add8b7be8452f1759721f97d737ef8a3c90da6551034049af781b6686b2ea99f87d376bce64\n918e3da425b7c41e195ed7b726fa26b15a64299fe12a3c22f51a2a257e847611ac6cfcc99294317523fc491e1cbe60c4\na339682a37844d15ca37f753599d0a71eedfbbf7b241f231dd93e5d349c6f7130e0d0b97e6abd2d894f8b701da37cb11\n8fc284f37bee79067f473bc8b6de4258930a21c28ac54aaf00b36f5ac28230474250f3aa6a703b6057f7fb79a203c2c1\na2c474e3a52a48cd1928e755f610fefa52d557eb67974d02287dbb935c4b9aab7227a325424fed65f8f6d556d8a46812\n99b88390fa856aa1b8e615a53f19c83e083f9b50705d8a15922e7c3e8216f808a4cc80744ca12506b1661d31d8d962e4\na1cbd03e4d4f58fc4d48fa165d824b77838c224765f35d976d3107d44a6cf41e13f661f0e86f87589292721f4de703fb\nb3a5dde8a40e55d8d5532beaa5f734ee8e91eafad3696df92399ae10793a8a10319b6dc53495edcc9b5cfd50a389a086\n996e25e1df5c2203647b9a1744bd1b1811857f742aee0801508457a3575666fcc8fc0c047c2b4341d4b507008cd674c2\n93e0a66039e74e324ee6c38809b3608507c492ef752202fff0b2c0e1261ca28f1790b3af4fdb236f0ed7e963e05c1ec0\nb6084e5818d2d860ac1606d3858329fbad4708f79d51a6f072dc370a21fdb1e1b207b74bc265a8547658bfb6a9569bb3\na5336126a99c0ecfc890584b2a167922a26cae652dfc96a96ab2faf0bf9842f166b39ceaf396cd3d300d0ebb2e6e0ebf\nb8b6f13ce9201decaba76d4eca9b9fa2e7445f9bc7dc9f82c262f49b15a40d45d5335819b71ff2ee40465da47d015c47\nb45df257b40c68b7916b768092e91c72b37d3ed2a44b09bf23102a4f33348849026cb3f9fbb484adfea149e2d2a180ff\na50d38ee017e28021229c4bb7d83dd9cdad27ab3aa38980b2423b96aa3f7dc618e3b23895b0e1379ca20299ff1919bbf\n97542cf600d34e4fdc07d074e8054e950708284ed99c96c7f15496937242365c66e323b0e09c49c9c38113096640a1b6\n822d198629697dcd663be9c95ff1b39419eae2463fa7e6d996b2c009d746bedc8333be241850153d16c5276749c10b20\n9217bc14974766ebdfbf6b434dd84b32b04658c8d8d3c31b5ff04199795d1cfad583782fd0c7438df865b81b2f116f9c\n93477879fa28a89471a2c65ef6e253f30911da44260833dd51030b7a2130a923770ebd60b9120f551ab373f7d9ed80aa\n87d89ff7373f795a3a798f03e58a0f0f0e7deab8db2802863fab84a7be64ae4dcf82ece18c4ddbefccd356262c2e8176\na3ba26bd31d3cc53ceeced422eb9a63c0383cde9476b5f1902b7fe2b19e0bbf420a2172ac5c8c24f1f5c466eecc615d4\na0fe061c76c90d84bd4353e52e1ef4b0561919769dbabe1679b08ef6c98dcfb6258f122bb440993d976c0ab38854386b\nb3070aa470185cb574b3af6c94b4069068b89bb9f7ea7db0a668df0b5e6aabdfe784581f13f0cf35cd4c67726f139a8c\n9365e4cdf25e116cbc4a55de89d609bba0eaf0df2a078e624765509f8f5a862e5da41b81883df086a0e5005ce1576223\na9036081945e3072fa3b5f022df698a8f78e62ab1e9559c88f9c54e00bc091a547467d5e2c7cbf6bc7396acb96dd2c46\n8309890959fcc2a4b3d7232f9062ee51ece20c7e631a00ec151d6b4d5dfccf14c805ce5f9aa569d74fb13ae25f9a6bbe\nb1dc43f07303634157f78e213c2fae99435661cc56a24be536ccbd345ef666798b3ac53c438209b47eb62b91d6fea90a\n84eb451e0a74ef14a2c2266ff01bd33d9a91163c71f89d0a9c0b8edfcfe918fc549565509cd96eed5720a438ff55f7f2\n9863b85a10db32c4317b19cc9245492b9389b318cf128d9bbc7ec80a694fcbbd3c0d3189a8cad00cc9290e67e5b361ee\n8a150ee474ebe48bdfcac1b29e46ac90dcded8abbe4807a165214e66f780f424be367df5ef1e94b09acf4a00cd2e614d\na6677a373130b83e30849af12475e192f817ba4f3226529a9cca8baaefb8811db376e4a044b42bf1481268c249b1a66e\nb969cbf444c1297aa50d1dfa0894de4565161cb1fc59ba03af9655c5bf94775006fe8659d3445b546538a22a43be6b93\n8383167e5275e0707e391645dc9dea9e8a19640ecfa23387f7f6fcaddff5cde0b4090dfad7af3c36f8d5c7705568e8d8\na353ddbc6b6837773e49bb1e33a3e00ca2fb5f7e1dba3a004b0de75f94a4e90860d082a455968851ef050ae5904452e0\nadeccf320d7d2831b495479b4db4aa0e25c5f3574f65a978c112e9981b2663f59de4c2fa88974fdcabb2eedb7adab452\nafa0eacc9fdbe27fb5e640ecad7ecc785df0daf00fc1325af716af61786719dd7f2d9e085a71d8dc059e54fd68a41f24\na5b803a5bbe0ca77c8b95e1e7bacfd22feae9f053270a191b4fd9bca850ef21a2d4bd9bcd50ecfb971bb458ff2354840\nb023c9c95613d9692a301ef33176b655ba11769a364b787f02b42ceb72338642655ea7a3a55a3eec6e1e3b652c3a179e\n8fa616aa7196fc2402f23a19e54620d4cf4cf48e1adfb7ea1f3711c69705481ddcc4c97236d47a92e974984d124589e5\na49e11e30cb81cb7617935e8a30110b8d241b67df2d603e5acc66af53702cf1e9c3ef4a9b777be49a9f0f576c65dcc30\n8df70b0f19381752fe327c81cce15192389e695586050f26344f56e451df2be0b1cdf7ec0cba7ce5b911dcff2b9325ae\n8fbbc21a59d5f5a14ff455ca78a9a393cab91deb61cf1c25117db2714d752e0054ed3e7e13dd36ad423815344140f443\na9a03285488668ab97836a713c6e608986c571d6a6c21e1adbd99ae4009b3dde43721a705d751f1bd4ebf1ea7511dfed\nb2f32b8e19e296e8402251df67bae6066aeefd89047586d887ffa2eacdf38e83d4f9dc32e553799024c7a41818945755\n942cf596b2278ad478be5c0ab6a2ad0ceafe110263cc93d15b9a3f420932104e462cf37586c374f10b1040cb83b862e0\naaa077a55f501c875ceae0a27ef2b180be9de660ef3d6b2132eb17256771ce609d9bc8aaf687f2b56ae46af34ad12b30\n90ac74885be1448101cf3b957d4486e379673328a006ea42715c39916e9334ea77117ff4a60d858e2ccce9694547a14f\n9256cdfc2339e89db56fd04bd9b0611be0eefc5ee30711bcece4aadf2efcc5a6dcc0cfd5f733e0e307e3a58055dff612\na4c7384e208a0863f4c056248f595473dcde70f019ddaede45b8caf0752575c241bac6e436439f380ac88eee23a858e9\na3aa67391781e0736dddc389f86b430b2fc293b7bd56bfd5a8ec01d1dd52ed940593c3ad4ce25905061936da062b0af6\n80299275ec322fbb66cc7dce4482ddd846534e92121186b6906c9a5d5834346b7de75909b22b98d73120caec964e7012\naa3a6cd88e5f98a12738b6688f54478815e26778357bcc2bc9f2648db408d6076ef73cced92a0a6b8b486453c9379f18\nb07c444681dc87b08a7d7c86708b82e82f8f2dbd4001986027b82cfbed17b9043e1104ade612e8e7993a00a4f8128c93\naf40e01b68d908ac2a55dca9b07bb46378c969839c6c822d298a01bc91540ea7a0c07720a098be9a3cfe9c27918e80e8\nabd8947c3bbc3883c80d8c873f8e2dc9b878cbbb4fc4a753a68f5027de6d8c26aa8fbbafeb85519ac94e2db660f31f26\na234f9d1a8f0cb5d017ccca30b591c95ec416c1cb906bd3e71b13627f27960f61f41ed603ffbcf043fd79974ec3169a8\n835aaf52a6af2bc7da4cf1586c1a27c72ad9de03c88922ad172dce7550d70f6f3efcc3820d38cd56ae3f7fc2f901f7a0\nae75db982a45ad01f4aa7bc50d642ff188219652bb8d521d13a9877049425d57852f3c9e4d340ffec12a4d0c639e7062\nb88884aa9187c33dc784a96832c86a44d24e9ffe6315544d47fc25428f11337b9ffd56eb0a03ad709d1bf86175059096\n8492ca5afcc6c0187b06453f01ed45fd57eb56facbeea30c93686b9e1dab8eaabd89e0ccb24b5f35d3d19cd7a58b5338\n9350623b6e1592b7ea31b1349724114512c3cce1e5459cd5bddd3d0a9b2accc64ab2bf67a71382d81190c3ab7466ba08\n98e8bf9bed6ae33b7c7e0e49fc43de135bffdba12b5dcb9ff38cb2d2a5368bb570fe7ee8e7fbe68220084d1d3505d5be\nab56144393f55f4c6f80c67e0ab68f445568d68b5aa0118c0c666664a43ba6307ee6508ba0bb5eb17664817bc9749af0\n827d5717a41b8592cfd1b796a30d6b2c3ca2cdc92455f9f4294b051c4c97b7ad6373f692ddafda67884102e6c2a16113\n8445ce2bb81598067edaa2a9e356eda42fb6dc5dd936ccf3d1ff847139e6020310d43d0fec1fe70296e8f9e41a40eb20\n9405178d965ee51e8d76d29101933837a85710961bb61f743d563ef17263f3c2e161d57e133afac209cdb5c46b105e31\nb209f9ed324c0daa68f79800c0a1338bbaf6d37b539871cb7570f2c235caca238a2c4407961fcb7471a103545495ef2c\n92ae6437af6bbd97e729b82f5b0d8fb081ca822f340e20fae1875bdc65694cd9b8c037a5a1d49aa9cae3d33f5bad414e\n9445bdb666eae03449a38e00851629e29a7415c8274e93343dc0020f439a5df0009cd3c4f5b9ce5c0f79aefa53ceac99\n93fdab5f9f792eada28f75e9ac6042a2c7f3142ba416bfdb1f90aa8461dbe4af524eee6db4f421cb70c7bc204684d043\na7f4dc949af4c3163953320898104a2b17161f7be5a5615da684f881633174fb0b712d0b7584b76302e811f3fac3c12f\na8ac84da817b3066ba9789bf2a566ccf84ab0a374210b8a215a9dcf493656a3fa0ecf07c4178920245fee0e46de7c3ec\n8e6a0ae1273acda3aa50d07d293d580414110a63bc3fb6330bb2ee6f824aff0d8f42b7375a1a5ba85c05bfbe9da88cb5\na5dea98852bd6f51a84fa06e331ea73a08d9d220cda437f694ad9ad02cf10657882242e20bdf21acbbaa545047da4ce5\nb13f410bf4cfce0827a5dfd1d6b5d8eabc60203b26f4c88238b8000f5b3aaf03242cdeadc2973b33109751da367069e1\na334315a9d61b692ad919b616df0aa75a9f73e4ea6fc27d216f48964e7daebd84b796418580cf97d4f08d4a4b51037cd\n8901ba9e963fcd2f7e08179b6d19c7a3b8193b78ca0e5cf0175916de873ca0d000cd7ac678c0473be371e0ac132f35a2\nb11a445433745f6cb14c9a65314bbf78b852f7b00786501b05d66092b871111cd7bee25f702d9e550d7dd91601620abb\n8c2f7b8e7b906c71f2f154cc9f053e8394509c37c07b9d4f21b4495e80484fc5fc8ab4bdc525bd6cfa9518680ba0d1a2\nb9733cebe92b43b899d3d1bfbf4b71d12f40d1853b2c98e36e635fdd8a0603ab03119890a67127e6bc79afae35b0bef2\na560f6692e88510d9ba940371e1ada344caf0c36440f492a3067ba38e9b7011caac37ba096a8a4accb1c8656d3c019b3\nac18624339c1487b2626eef00d66b302bdb1526b6340d6847befe2fdfb2b410be5555f82939f8707f756db0e021ed398\nafd9a3b8866a7fe4f7bc13470c0169b9705fcd3073685f5a6dcff3bdbbc2be50ac6d9908f9a10c5104b0bffc2bc14dad\n97f15c92fe1f10949ed9def5dd238bc1429706e5037a0e0afb71c2d0e5845e2fed95a171c393e372077a7c7059f8c0e0\n9453a1d4d09c309b70968ea527007d34df9c4cfd3048e5391aac5f9b64ca0c05dde5b8c949c481cfc83ef2e57b687595\nb80e4b7c379ad435c91b20b3706253b763cbc980db78f782f955d2516af44c07bbfa5888cbf3a8439dc3907320feb25a\n8939f458d28fefe45320b95d75b006e98330254056d063e4a2f20f04bcb25936024efe8d436d491ed34b482f9b9ae49c\na9ead2e833f71f7e574c766440c4b3c9c3363698c7ade14499a56003a272832ee6d99440887fa43ccdf80265b9d56b97\nb6547a36934f05ce7b779e68049d61351cf229ae72dc211cc96a2a471b2724782f9355fdb415ea6f0ea1eb84fe00e785\n828bfb3099b7b650b29b0f21279f829391f64520a6ab916d1056f647088f1e50fac9253ef7464eceab5380035c5a59c4\n8d714b9ea650be4342ff06c0256189e85c5c125adf6c7aeca3dba9b21d5e01a28b688fc2116ce285a0714a8f1425c0b8\n8a82eda041b2e72a3d73d70d85a568e035fbd6dc32559b6c6cfdf6f4edcb59a6ba85b6294a721aa0a71b07714e0b99ae\naf5665ebc83d027173b14ffb0e05af0a192b719177889fadc9ac8c082fda721e9a75d9ce3f5602dbfd516600ee3b6405\na68fdddf03d77bebdb676e40d93e59bd854408793df2935d0a5600601f7691b879981a398d02658c2da39dbbf61ef96c\n8c001ebc84fcf0470b837a08a7b6125126b73a2762db47bbdc38c0e7992b1c66bac7a64faa1bf1020d1c63b40adc3082\n8553889b49f9491109792db0a69347880a9cf2911b4f16f59f7f424e5e6b553687d51282e8f95be6a543635247e2e2c2\na2c269d6370b541daf1f23cc6b5d2b03a5fa0c7538d53ae500ef875952fe215e74a5010329ff41461f4c58b32ad97b3d\na5dae097285392b4eba83a9fd24baa03d42d0a157a37fae4b6efc3f45be86024b1182e4a6b6eadcf5efe37704c0a1ae5\n89871a77d2032387d19369933cd50a26bda643e40cfd0ce73febe717a51b39fae981406fd41e50f4a837c02a99524ef9\n8a76d495e90093ec2ac22f53759dc1cf36fbb8370fb586acbd3895c56a90bbf3796bcc4fc422ca4058adf337ead1402e\nad4eb7576c4954d20623c1336c63662c2a6fb46ec6ef99b7f8e946aa47488dcb136eab60b35600f98c78c16c10c99013\n894c2b120cec539feb1d281baaadde1e44beafedeeec29b804473fe024e25c1db652f151c956e88d9081fb39d27e0b19\n9196bd5c100878792444c573d02b380a69e1b4b30cb59a48114852085058a5fd952df4afee3ecceb5c4ede21e1ed4a1a\na996fffc910764ea87a1eedc3a3d600e6e0ff70e6a999cb435c9b713a89600fc130d1850174efe9fc18244bb7c6c5936\n8591bb8826befa8bee9663230d9a864a5068589f059e37b450e8c85e15ce9a1992f0ce1ead1d9829b452997727edcf9d\n9465e20bb22c41bf1fa728be8e069e25cda3f7c243381ca9973cbedad0c7b07d3dd3e85719d77cf80b1058ce60e16d68\n926b5ce39b6e60b94878ffeae9ff20178656c375fb9cfe160b82318ca500eb3e2e3144608b6c3f8d6c856b8fe1e2fbcf\na1ef29cbc83c45eb28ad468d0ce5d0fdd6b9d8191ba5ffa1a781c2b232ed23db6b7b04de06ef31763a6bfe377fa2f408\n9328e63a3c8acf457c9f1f28b32d90d0eeadb0f650b5d43486a61d7374757a7ada5fc1def2a1e600fa255d8b3f48036f\na9c64880fcb7654f4dd08f4c90baac95712dd6dd407e17ea60606e9a97dc8e54dd25cb72a9bf3fc61f8d0ad569fe369d\na908eb7b940c1963f73046d6b35d40e09013bfbfbeb2ccd64df441867e202b0f3b625fa32dd04987c3d7851360abdffc\nb3947b5ed6d59e59e4472cdb1c3261de1b5278fb7cb9b5fca553f328b3b3e094596861ea526eca02395f7b7358155b7b\n99da7f190d37bc58945f981cf484d40fcf0855cf8178e2ce8d057c7f0a9d9f77425fdbce9ef8366f44f671b20fd27d0b\n913976d77d80e3657977df39571577fdf0be68ba846883705b454f8493578baa741cfaede53783e2c97cc08964395d83\n8d754a61e5164a80b5090c13f3e936056812d4ae8dc5cc649e6c7f37464777249bc4ae760a9806939131f39d92cca5bf\n82ffd098480828a90cb221a8c28584e15904bad477c13b2e2d6ef0b96a861ce4a309a328fe44342365349456ad7c654f\n89ae3ce4b0357044579ca17be85d8361bb1ce3941f87e82077dd67e43ec0f95edd4bd3426225c90994a81a99e79490b7\na170892074016d57c9d8e5a529379d7e08d2c1158b9ac4487ac9b95266c4fd51cb18ae768a2f74840137eec05000dd5a\naafd8acd1071103c7af8828a7a08076324d41ea530df90f7d98fafb19735fc27ead91b50c2ca45851545b41d589d0f77\n8623c849e61d8f1696dc9752116a26c8503fd36e2cbbc9650feffdd3a083d8cdbb3b2a4e9743a84b9b2ad91ac33083f2\nac7166ddd253bb22cdbd8f15b0933c001d1e8bc295e7c38dc1d2be30220e88e2155ecd2274e79848087c05e137e64d01\na5276b216d3df3273bbfa46210b63b84cfe1e599e9e5d87c4e2e9d58666ecf1af66cb7ae65caebbe74b6806677215bd0\n88792f4aa3597bb0aebadb70f52ee8e9db0f7a9d74f398908024ddda4431221a7783e060e0a93bf1f6338af3d9b18f68\n8f5fafff3ecb3aad94787d1b358ab7d232ded49b15b3636b585aa54212f97dc1d6d567c180682cca895d9876cacb7833\nab7cb1337290842b33e936162c781aa1093565e1a5b618d1c4d87dd866daea5cebbcc486aaa93d8b8542a27d2f8694c7\n88480a6827699da98642152ebc89941d54b4791fbc66110b7632fb57a5b7d7e79943c19a4b579177c6cf901769563f2f\na725ee6d201b3a610ede3459660658ee391803f770acc639cfc402d1667721089fb24e7598f00e49e81e50d9fd8c2423\n98924372da8aca0f67c8c5cad30fa5324519b014fae7849001dcd51b6286118f12b6c49061219c37714e11142b4d46de\na62c27360221b1a7c99697010dfe1fb31ceb17d3291cf2172624ebeff090cbaa3c3b01ec89fe106dace61d934711d42d\n825173c3080be62cfdc50256c3f06fe190bc5f190d0eb827d0af5b99d80936e284a4155b46c0d462ee574fe31d60983d\na28980b97023f9595fadf404ed4aa36898d404fe611c32fd66b70252f01618896f5f3fda71aea5595591176aabf0c619\na50f5f9def2114f6424ff298f3b128068438f40860c2b44e9a6666f43c438f1780be73cf3de884846f1ba67f9bef0802\nb1eee2d730da715543aeb87f104aff6122cb2bf11de15d2519ff082671330a746445777924521ec98568635f26988d0c\n862f6994a1ff4adfd9fb021925cccf542fca4d4b0b80fb794f97e1eb2964ef355608a98eec6e07aadd4b45ee625b2a21\n8ce69a18df2f9b9f6e94a456a7d94842c61dea9b00892da7cf5c08144de9be39b8c304aeca8b2e4222f87ba367e61006\nb5f325b1cecd435f5346b6bc562d92f264f1a6d91be41d612df012684fdd69e86063db077bc11ea4e22c5f2a13ae7bee\n85526870a911127835446cb83db8986b12d5637d59e0f139ad6501ac949a397a6c73bd2e7fba731b1bb357efe068242c\n8552247d3f7778697f77389717def5a149fc20f677914048e1ed41553b039b5427badc930491c0bae663e67668038fd1\na545640ee5e51f3fe5de7050e914cfe216202056cd9d642c90e89a166566f909ee575353cb43a331fde17f1c9021414e\n8b51229b53cff887d4cab573ba32ec52668d197c084414a9ee5589b285481cea0c3604a50ec133105f661321c3ca50f5\n8cdc0b960522bed284d5c88b1532142863d97bbb7dc344a846dc120397570f7bd507ceb15ed97964d6a80eccfef0f28e\na40683961b0812d9d53906e795e6470addc1f30d09affebf5d4fbbd21ddfa88ce441ca5ea99c33fd121405be3f7a3757\na527875eb2b99b4185998b5d4cf97dd0d4a937724b6ad170411fc8e2ec80f6cee2050f0dd2e6fee9a2b77252d98b9e64\n84f3a75f477c4bc4574f16ebc21aaa32924c41ced435703c4bf07c9119dd2b6e066e0c276ff902069887793378f779e0\na3544bc22d1d0cab2d22d44ced8f7484bfe391b36991b87010394bfd5012f75d580596ffd4f42b00886749457bb6334b\nb81f6eb26934b920285acc20ceef0220dd23081ba1b26e22b365d3165ce2fbae733bbc896bd0932f63dcc84f56428c68\n95e94d40a4f41090185a77bf760915a90b6a3e3ace5e53f0cb08386d438d3aa3479f0cd81081b47a9b718698817265cd\nb69bd1625b3d6c17fd1f87ac6e86efa0d0d8abb69f8355a08739109831baeec03fd3cd4c765b5ff8b1e449d33d050504\n8448f4e4c043519d98552c2573b76eebf2483b82d32abb3e2bfc64a538e79e4f59c6ca92adff1e78b2f9d0a91f19e619\n8f11c42d6a221d1fda50887fb68b15acdb46979ab21d909ed529bcad6ae10a66228ff521a54a42aca0dad6547a528233\na3adb18d7e4a882b13a067784cf80ea96a1d90f5edc61227d1f6e4da560c627688bdf6555d33fe54cab1bca242986871\na24d333d807a48dc851932ed21cbdd7e255bad2699909234f1706ba55dea4bb6b6f8812ffc0be206755868ba8a4af3f9\na322de66c22a606e189f7734dbb7fda5d75766d5e69ec04b4e1671d4477f5bcb9ff139ccc18879980ebc3b64ab4a2c49\n88f54b6b410a1edbf125db738d46ee1a507e69bc5a8f2f443eb787b9aa7dbd6e55014ec1e946aabeb3e27a788914fb04\nb32ee6da1dcd8d0a7fd7c1821bb1f1fe919c8922b4c1eeed56e5b068a5a6e68457c42b192cbaef5dc6d49b17fa45bc0f\n8a44402da0b3a15c97b0f15db63e460506cb8bef56c457166aea5e8881087d8202724c539ef0feb97131919a73aefca8\nb967e3fead6171fa1d19fd976535d428b501baff59e118050f9901a54b12cc8e4606348454c8f0fc25bd6644e0a5532e\nb7a0c9e9371c3efbbb2c6783ce2cc5f149135175f25b6d79b09c808bce74139020e77f0c616fa6dcb3d87a378532529d\na54207782ffc909cd1bb685a3aafabbc4407cda362d7b3c1b14608b6427e1696817aeb4f3f85304ac36e86d3d8caa65b\n98c1da056813a7bfebc81d8db7206e3ef9b51f147d9948c088976755826cc5123c239ca5e3fe59bed18b5d0a982f3c3f\nae1c86174dfafa9c9546b17b8201719aecd359f5bbeb1900475041f2d5b8a9600d54d0000c43dd061cfda390585726ff\na8ee5a8be0bd1372a35675c87bfd64221c6696dc16e2d5e0996e481fec5cdbcb222df466c24740331d60f0521285f7d3\n8ddadbe3cf13af50d556ce8fc0dd77971ac83fad9985c3d089b1b02d1e3afc330628635a31707b32595626798ea22d45\na5c80254baf8a1628dc77c2445ebe21fbda0de09dd458f603e6a9851071b2b7438fe74214df293dfa242c715d4375c95\nb9d83227ed2600a55cb74a7052003a317a85ca4bea50aa3e0570f4982b6fe678e464cc5156be1bd5e7bba722f95e92c5\nb56085f9f3a72bea9aa3a8dc143a96dd78513fa327b4b9ba26d475c088116cab13843c2bff80996bf3b43d3e2bddb1d6\n8fa9b39558c69a9757f1e7bc3f07295e4a433da3e6dd8c0282397d26f64c1ecd8eb3ba9824a7cacfb87496ebbb45d962\n879c6d0cb675812ed9dee68c3479a499f088068501e2677caeae035e6f538da91a49e245f5fcce135066169649872bee\n91aa9fd3fed0c2a23d1edda8a6542188aeb8abee8772818769bdee4b512d431e4625a343af5d59767c468779222cf234\na6be0bb2348c35c4143482c7ef6da9a93a5356f8545e8e9d791d6c08ed55f14d790d21ee61d3a56a2ae7f888a8fd46ca\n808ee396a94e1b8755f2b13a6ffbedef9e0369e6c2e53627c9f60130c137299d0e4924d8ef367e0a7fad7f68a8c9193c\nad1086028fcdac94d5f1e7629071e7e47e30ad0190ae59aaebfb7a7ef6202ab91323a503c527e3226a23d7937af41a52\n9102bdaf79b907d1b25b2ec6b497e2d301c8eac305e848c6276b392f0ad734131a39cc02ed42989a53ca8da3d6839172\n8c976c48a45b6bc7cd7a7acea3c2d7c5f43042863b0661d5cd8763e8b50730552187a8eecf6b3d17be89110208808e77\na2624c7e917e8297faa3af89b701953006bf02b7c95dfba00c9f3de77748bc0b13d6e15bb8d01377f4d98fb189538142\na405f1e66783cdcfe20081bce34623ec3660950222d50b7255f8b3cc5d4369aeb366e265e5224c0204911539f0fa165e\n8d69bdcaa5d883b5636ac8f8842026fcc58c5e2b71b7349844a3f5d6fbecf44443ef4f768eac376f57fb763606e92c9f\n82fce0643017d16ec1c3543db95fb57bfa4855cc325f186d109539fcacf8ea15539be7c4855594d4f6dc628f5ad8a7b0\n8860e6ff58b3e8f9ae294ff2487f0d3ffae4cf54fd3e69931662dabc8efd5b237b26b3def3bcd4042869d5087d22afcf\n88c80c442251e11c558771f0484f56dc0ed1b7340757893a49acbf96006aa73dfc3668208abea6f65375611278afb02a\n8be3d18c6b4aa8e56fcd74a2aacb76f80b518a360814f71edb9ccf3d144bfd247c03f77500f728a62fca7a2e45e504c5\n8b8ebf0df95c3f9b1c9b80469dc0d323784fd4a53f5c5357bb3f250a135f4619498af5700fe54ad08744576588b3dfff\na8d88abdaadd9c2a66bc8db3072032f63ed8f928d64fdb5f810a65074efc7e830d56e0e738175579f6660738b92d0c65\na0a10b5d1a525eb846b36357983c6b816b8c387d3890af62efb20f50b1cb6dd69549bbef14dab939f1213118a1ae8ec2\n8aadf9b895aeb8fdc9987daa937e25d6964cbd5ec5d176f5cdf2f0c73f6f145f0f9759e7560ab740bf623a3279736c37\n99aeda8a495031cc5bdf9b842a4d7647c55004576a0edc0bd9b985d60182608361ed5459a9d4b21aa8e2bd353d10a086\n832c8b3bfcd6e68eee4b100d58014522de9d4cefa99498bc06c6dca83741e4572e20778e0d846884b33439f160932bca\n841f56ebefc0823ab484fc445d62f914e13957e47904419e42771aa605e33ab16c44f781f6f9aa42e3a1baf377f54b42\na6e40271d419e295a182725d3a9b541ffd343f23e37549c51ecaa20d13cf0c8d282d6d15b24def5702bfee8ba10b12ac\n8ac00925ac6187a4c5cde48ea2a4eaf99a607e58b2c617ee6f01df30d03fafada2f0469178dd960d9d64cbd33a0087d8\nb6b80916b540f8a0fe4f23b1a06e2b830008ad138271d5ba3cd16d6619e521fe2a7623c16c41cba48950793386eea942\n8412c0857b96a650e73af9d93087d4109dd092ddf82188e514f18fcac644f44d4d62550bfa63947f2d574a2e9d995bbb\nb871395baa28b857e992a28ac7f6d95ec461934b120a688a387e78498eb26a15913b0228488c3e2360391c6b7260b504\n926e2d25c58c679be77d0e27ec3b580645956ba6f13adcbc2ea548ee1b7925c61fcf74c582337a3b999e5427b3f752f2\na165fa43fecae9b913d5dcfc232568e3e7b8b320ce96b13800035d52844c38fd5dbf7c4d564241d860c023049de4bcbc\nb4976d7572fd9cc0ee3f24888634433f725230a7a2159405946a79315bc19e2fc371448c1c9d52bf91539fd1fe39574b\na6b461eb72e07a9e859b9e16dfa5907f4ac92a5a7ca4368b518e4a508dc43f9b4be59db6849739f3ef4c44967b63b103\nb976606d3089345d0bc501a43525d9dca59cf0b25b50dfc8a61c5bd30fac2467331f0638fab2dc68838aa6ee8d2b6bc9\nb16ea61c855da96e180abf7647fa4d9dd6fd90adebadb4c5ed4d7cd24737e500212628fca69615d89cb40e9826e5a214\n95a3e3162eb5ea27a613f8c188f2e0dcc5cbd5b68c239858b989b004d87113e6aa3209fa9fad0ee6ecef42814ba9db1a\nb6a026ab56d3224220e5bce8275d023c8d39d1bdf7eec3b0923429b7d5ef18cf613a3591d364be8727bb1fa0ba11eabb\n949f117e2e141e25972ee9ccdd0b7a21150de7bbf92bbd89624a0c5f5a88da7b2b172ba2e9e94e1768081f260c2a2f8d\nb7c5e9e6630287d2a20a2dfb783ffe6a6ff104ff627c6e4e4342acc2f3eb6e60e9c22f465f8a8dc58c42f49840eca435\n872be5a75c3b85de21447bb06ac9eb610f3a80759f516a2f99304930ddf921f34cbffc7727989cdd7181d5fc62483954\na50976ea5297d797d220932856afdd214d1248230c9dcd840469ecc28ea9f305b6d7b38339fedb0c00b5251d77af8c95\n80b360f8b44914ff6f0ffbd8b5360e3cabe08639f6fe06d0c1526b1fe9fe9f18c497f1752580b30e950abd3e538ad416\na2f98f9bf7fac78c9da6bb41de267742a9d31cf5a04b2fb74f551084ec329b376f651a59e1ae919b2928286fb566e495\n8b9d218a8a6c150631548e7f24bbd43f132431ae275c2b72676abbea752f554789c5ff4aac5c0eeee5529af7f2b509ef\naa21a243b07e9c7b169598bf0b102c3c280861780f83121b2ef543b780d47aaa4b1850430ee7927f33ece9847c4e0e1a\n8a6f90f4ce58c8aa5d3656fe4e05acccf07a6ec188a5f3cde7bf59a8ae468e66f055ac6dfc50b6e8e98f2490d8deedc5\n8e39f77ca4b5149ffe9945ceac35d068760ba338d469d57c14f626dd8c96dbe993dd7011beff727c32117298c95ee854\n83bd641c76504222880183edd42267e0582642c4993fe2c7a20ce7168e4c3cbf7586e1d2d4b08c84d9b0bf2f6b8800b8\na9d332993cf0c1c55130e5cf3a478eb5e0bfb49c25c07538accc692ef03d82b458750a7b991cc0b41b813d361a5d31e3\na0fc60e6a6015df9bee04cea8f20f01d02b14b6f7aa03123ab8d65da071b2d0df5012c2a69e7290baae6ed6dd29ebe07\na2949dde2e48788ceaac7ec7243f287ffe7c3e788cdba97a4ab0772202aeef2d50382bed8bf7eff5478243f7eabe0bda\na7879373ea18572dba6cf29868ca955ffa55b8af627f29862f6487ee398b81fe3771d8721ca8e06716c5d91b9ac587cb\nb3c7081e2c5306303524fbe9fe5645111a57dffd4ec25b7384da12e56376a0150ab52f9d9cc6ca7bdd950695e39b766d\na634a6a19d52dcb9f823352b36c345d2de54b75197bcd90528d27830bd6606d1a9971170de0849ed5010afa9f031d5be\n88f2062f405fa181cfdb8475eaf52906587382c666ca09a9522537cfebbc7de8337be12a7fd0db6d6f2f7ab5aefab892\nb1f0058c1f273191247b98783b2a6f5aa716cf799a8370627fc3456683f03a624d0523b63a154fe9243c0dfd5b37c460\nae39a227cc05852437d87be6a446782c3d7fbe6282e25cf57b6b6e12b189bdc0d4a6e2c3a60b3979256b6b5baf8f1c5f\n802a1af228ab0c053b940e695e7ef3338f5be7acf4e5ed01ac8498e55b492d3a9f07996b1700a84e22f0b589638909cd\na36490832f20e4b2f9e79ee358b66d413f034d6a387534b264cdeac2bca96e8b5bcbdd28d1e98c44498032a8e63d94d2\n8728c9a87db2d006855cb304bba54c3c704bf8f1228ae53a8da66ca93b2dac7e980a2a74f402f22b9bc40cd726e9c438\na08f08ab0c0a1340e53b3592635e256d0025c4700559939aeb9010ed63f7047c8021b4210088f3605f5c14fb51d1c613\n9670fd7e2d90f241e8e05f9f0b475aa260a5fb99aa1c9e61cd023cbad8ed1270ae912f168e1170e62a0f6d319cf45f49\na35e60f2dd04f098bf274d2999c3447730fe3e54a8aff703bc5a3c274d22f97db4104d61a37417d93d52276b27ef8f31\n859df7a21bc35daec5695201bd69333dc4f0f9e4328f2b75a223e6615b22b29d63b44d338413ca97eb74f15563628cb7\nb2b44ad3e93bc076548acdf2477803203108b89ecc1d0a19c3fb9814d6b342afc420c20f75e9c2188ad75fdb0d34bb2d\n941173ee2c87765d10758746d103b667b1227301e1bcfecef2f38f9ab612496a9abd3050cef5537bf28cfecd2aacc449\n92b0bea30ebed20ac30648efb37bac2b865daaa514316e6f5470e1de6cb84651ff77c127aa7beed4521bda5e8fc81122\naf17bf813bb238cf8bb437433f816786612209180a6c0a1d5141292dc2d2c37164ef13bfc50c718bfcc6ce26369298a2\n8461fd951bdfda099318e05cc6f75698784b033f15a71bce26165f0ce421fd632d50df9eeced474838c0050b596e672c\n83281aa18ae4b01e8201e1f64248cc6444c92ee846ae72adb178cef356531558597d84ff93a05abf76bfe313eb7dbe86\nb62b150f73999c341daa4d2f7328d2f6ca1ef3b549e01df58182e42927537fc7971c360fe8264af724f4c0247850ef12\na7022a201f79c012f982b574c714d813064838a04f56964d1186691413757befeeaada063e7884297606e0eea1b1ed43\na42ac9e8be88e143853fd8e6a9ff21a0461801f0ac76b69cca669597f9af17ecb62cccdcdcbe7f19b62ab93d7f838406\n80f1ca73b6ba3a2fbae6b79b39c0be8c39df81862d46c4990c87cbf45b87996db7859d833abc20af2fcb4faf059c436a\nb355943e04132d5521d7bbe49aea26f6aa1c32f5d0853e77cc2400595325e923a82e0ff7601d1aee79f45fd8a254f6ae\n87142c891d93e539b31d0b5ead9ea600b9c84db9be9369ff150a8312fe3d10513f4c5b4d483a82b42bc65c45dd9dd3bd\n823c3d7f6dda98a9d8c42b3fee28d3154a95451402accadb6cf75fc45d2653c46a569be75a433094fa9e09c0d5cf1c90\nb3c3497fe7356525c1336435976e79ec59c5624c2fb6185ee09ca0510d58b1e392965e25df8a74d90d464c4e8bb1422b\n88c48d83e8ddc0d7eea051f3d0e21bc0d3a0bb2b6a39ece76750c1c90c382a538c9a35dc9478b8ceb8157dcccbbf187a\n93da81a8939f5f58b668fefdc6f5f7eca6dc1133054de4910b651f8b4a3267af1e44d5a1c9e5964dc7ab741eb146894b\n8b396e64985451ac337f16be61105106e262e381ea04660add0b032409b986e1ac64da3bc2feae788e24e9cb431d8668\n9472068b6e331ea67e9b5fbf8057672da93c209d7ded51e2914dbb98dccd8c72b7079b51fd97a7190f8fc8712c431538\nac47e1446cb92b0a7406f45c708567f520900dfa0070d5e91783139d1bfc946d6e242e2c7b3bf4020500b9f867139709\n896053706869fb26bb6f7933b3d9c7dd6db5c6bd1269c7a0e222b73039e2327d44bda7d7ae82bf5988808b9831d78bcd\na55e397fa7a02321a9fe686654c86083ecedb5757586d7c0250ec813ca6d37151a12061d5feca4691a0fd59d2f0fdd81\nae23f08ac2b370d845036518f1bddb7fea8dc59371c288a6af310486effeb61963f2eef031ca90f9bdbcf0e475b67068\nb5462921597a79f66c0fec8d4c7cfd89f427692a7ce30d787e6fd6acd2377f238ec74689a0fdbe8ef3c9c9bd24b908dc\nae67e8ea7c46e29e6aae6005131c29472768326819aa294aaf5a280d877de377b44959adb1348fa3e929dcbc3ae1f2c0\n84962b4c66500a20c4424191bdfb619a46cda35bdb34c2d61edcb0b0494f7f61dd5bf8f743302842026b7b7d49edd4b5\n846f76286dc3cc59cb15e5dabb72a54a27c78190631df832d3649b2952fa0408ecde7d4dfdae7046c728efa29879fb51\n8f76c854eaee8b699547e07ad286f7dadfa6974c1328d12502bd7630ae619f6129272fdd15e2137ffef0143c42730977\n8007b163d4ea4ec6d79e7a2aa19d06f388da0b3a56f3ee121441584e22a246c0e792431655632bf6e5e02cb86914eebf\nac4d2cecc1f33e6fb73892980b61e62095ddff5fd6167f53ca93d507328b3c05440729a277dc3649302045b734398af1\n92d2a88f2e9c9875abaff0d42624ccb6d65401de7127b5d42c25e6adccd7a664504c5861618f9031ced8aeb08b779f06\na832c1821c1b220eb003fc532af02c81196e98df058cdcc9c9748832558362915ea77526937f30a2f74f25073cb89afb\nb6f947ab4cc2baec100ed8ec7739a2fd2f9504c982b39ab84a4516015ca56aea8eef5545cfc057dd44c69b42125fb718\nb24afacf2e90da067e5c050d2a63878ee17aaf8fd446536f2462da4f162de87b7544e92c410d35bf2172465940c19349\nb7a0aa92deac71eaab07be8fa43086e071e5580f5dbf9b624427bdd7764605d27303ae86e5165bed30229c0c11958c38\nb0d1d5bfa1823392c5cf6ed927c1b9e84a09a24b284c2cd8fcb5fda8e392c7c59412d8f74eb7c48c6851dff23ae66f58\na24125ef03a92d2279fb384186ca0274373509cfec90b34a575490486098438932ee1be0334262d22d5f7d3db91efe67\n83e08e5fba9e8e11c164373794f4067b9b472d54f57f4dbe3c241cf7b5b7374102de9d458018a8c51ab3aed1dddf146f\n9453101b77bb915ed40990e1e1d2c08ea8ec5deb5b571b0c50d45d1c55c2e2512ec0ceca616ff0376a65678a961d344d\n92a0516e9eb6ad233d6b165a8d64a062ce189b25f95d1b3264d6b58da9c8d17da2cd1f534800c43efcf2be73556cd2ff\n958d0b5d7d8faf25d2816aa6a2c5770592ad448db778dd9b374085baa66c755b129822632eaabcb65ee35f0bf4b73634\n90a749de8728b301ad2a6b044e8c5fd646ccd8d20220e125cba97667e0bb1d0a62f6e3143b28f3d93f69cdc6aa04122a\n84bd34c8d8f74dec07595812058db24d62133c11afed5eb2a8320d3bfc28e442c7f0cfd51011b7b0bb3e5409cb7b6290\naecc250b556115d97b553ad7b2153f1d69e543e087890000eaa60f4368b736921d0342ce5563124f129096f5d5e2ca9d\n977f17ac82ed1fbf422f9b95feb3047a182a27b00960296d804fd74d54bb39ad2c055e665c1240d2ad2e06a3d7501b00\naf5be9846bd4879ebe0af5e7ad253a632f05aedfe306d31fe6debe701ba5aa4e33b65efc05043bc73aadb199f94baed4\n9199e12ec5f2aaaeed6db5561d2dcc1a8fe9c0854f1a069cba090d2dff5e5ba52b10c841ccbd49006a91d881f206150d\n8f4a96a96ed8ceaf3beba026c89848c9ca4e6452ce23b7cf34d12f9cc532984a498e051de77745bdc17c7c44c31b7c30\naf3f2a3dbe8652c4bfca0d37fb723f0e66aab4f91b91a625114af1377ad923da8d36da83f75deb7a3219cd63135a3118\na6d46963195df8962f7aa791d104c709c38caa438ddd192f7647a884282e81f748c94cdf0bb25d38a7b0dc1b1d7bbcf7\n86f3de4b22c42d3e4b24b16e6e8033e60120af341781ab70ae390cb7b5c5216f6e7945313c2e04261a51814a8cb5db92\nb9f86792e3922896cfd847d8ff123ff8d69ecf34968fb3de3f54532f6cd1112b5d34eeabdca46ae64ad9f6e7e5b55edc\n83edfbcbc4968381d1e91ab813b3c74ab940eaf6358c226f79182f8b21148ec130685fd91b0ea65916b0a50bccf524ea\n93b61daca7a8880b7926398760f50016f2558b0bab74c21181280a1baf3414fc539911bb0b79c4288d29d3c4ad0f4417\nad541aeb83a47526d38f2e47a5ce7e23a9adabe5efeae03541026881e6d5ef07da3ac1a6ed466ca924fa8e7a91fcff88\nac4bba31723875025640ed6426003ed8529215a44c9ffd44f37e928feef9fc4dfa889088131c9be3da87e8f3fdf55975\n88fa4d49096586bc9d29592909c38ea3def24629feacd378cc5335b70d13814d6dac415f8c699ee1bf4fe8b85eb89b38\nb67d0b76cbd0d79b71f4673b96e77b6cda516b8faa1510cfe58ff38cc19000bb5d73ff8418b3dab8c1c7960cb9c81e36\n98b4f8766810f0cfecf67bd59f8c58989eb66c07d3dfeee4f4bbce8fd1fce7cc4f69468372eaec7d690748543bd9691d\n8445891af3c298b588dec443beacdf41536adb84c812c413a2b843fd398e484eb379075c64066b460839b5fe8f80177c\nb603635c3ed6fdc013e2a091fc5164e09acf5f6a00347d87c6ebadb1f44e52ff1a5f0466b91f3f7ffc47d25753e44b75\n87ec2fc928174599a9dafe7538fec7dcf72e6873b17d953ed50708afff0da37653758b52b7cafa0bf50dfcf1eafbb46c\nb9dbd0e704d047a457d60efe6822dc679e79846e4cbcb11fa6c02079d65673ee19bbf0d14e8b7b200b9205f4738df7c7\n9591ec7080f3f5ba11197a41f476f9ba17880f414d74f821a072ec5061eab040a2acba3d9856ff8555dfe5eaeb14ca19\nb34c9d1805b5f1ce38a42b800dec4e7f3eb8c38e7d2b0a525378e048426fed150dbfe9cc61f5db82b406d1b9ff2d10bf\na36fdc649dc08f059dfa361e3969d96b4cc4a1ebf10b0cd01a7dd708430979e8d870961fef85878f8779b8e23caafb18\n88dfc739a80c16c95d9d6f73c3357a92d82fa8c3c670c72bee0f1e4bac9ec338e1751eb786eda3e10f747dd7a686900f\n84a535ad04f0961756c61c70001903a9adf13126983c11709430a18133c4b4040d17a33765b4a06968f5d536f4bfb5c5\n8c86d695052a2d2571c5ace744f2239840ef21bb88e742f050c7fa737cd925418ecef0971333eb89daa6b3ddfede268c\n8e9a700157069dc91e08ddcbdde3a9ad570272ad225844238f1015004239c542fceb0acce6d116c292a55f0d55b6175e\n84d659e7f94e4c1d15526f47bc5877a4ef761c2a5f76ec8b09c3a9a30992d41b0e2e38ed0c0106a6b6c86d670c4235f3\na99253d45d7863db1d27c0ab561fb85da8c025ba578b4b165528d0f20c511a9ca9aff722f4ff7004843f618eb8fced95\n89a3cacb15b84b20e95cd6135550146bbe6c47632cc6d6e14d825a0c79b1e02b66f05d57d1260cb947dc4ae5b0283882\n8385b1555e794801226c44bd5e878cbe68aeac0a19315625a8e5ea0c3526b58cdd4f53f9a14a167a5e8a293b530d615a\nb68c729e9df66c5cd22af4909fb3b0057b6a231c4a31cd6bf0fa0e53c5809419d15feb483de6e9408b052458e819b097\n924f56eda269ec7ec2fc20c5731bf7f521546ddf573ccbe145592f1c9fee5134747eb648d9335119a8066ca50a1f7e50\nb2100a26b9c3bec7ec5a53f0febbf56303f199be2f26b2d564cfee2adc65483b84192354f2865c2f4c035fa16252ae55\n8f64dbed62e638563967ec1605a83216aed17eb99aa618c0543d74771ea8f60bbb850c88608d4f8584f922e30a8a0a72\nb31b9e1ffe8d7260479c9413f8e680f3fe391ae8fcf44fcca3000d9b2473a40c1d32299f8f63865a57579a2d6c7e9f08\na5b1d136142eb23e322c6c07cb838a3f58ab6925472352ebd0bb47041a0d8729e1074ca223922f3a7a672ced7a1e562d\n8d9470a5a15d833a447b5f108333d50f30aa7659e331c3f8080b1e928a99922edc650466a2f54f3d48afdb34bff42142\n866368f5891564e5b2de37ad21ff0345c01129a14ea5667f9b64aad12d13ec034622872e414743af0bf20adb2041b497\n88ef9c2ebf25fd0c04b7cfa35fbac2e4156d2f1043fa9f98998b2aa402c8f9a4f1039e782451a46840f3e0e4b3fa47d3\n94ba04a4859273697e264a2d238dc5c9ff573ebc91e4796ea58eebe4080c1bf991255ab2ad8fb1e0301ce7b79cc6e69b\n86b6bd0953309a086e526211bf1a99327269304aa74d8cdc994cee63c3a2d4b883e832b0635888dff2a13f1b02eb8df4\n843ea6ea5f2c7a1fd50be56a5765dcce3ea61c99b77c1a729ee0cd8ec706385ac7062e603479d4c8d3527f030762d049\n8d3675195a3b06f2d935d45becc59f9fa8fa440c8df80c029775e47fe9c90e20f7c8e4cc9a2542dd6bfe87536c428f0d\n8978580b0c9b0aa3ab2d47e3cfd92fa891d3ddee57829ee4f9780e8e651900457d8e759d1a9b3e8f6ae366e4b57f2865\n890112ec81d0f24b0dfbb4d228e418eff02ae63dc691caf59c1d103e1d194e6e2550e1bec41c0bfdb74fed454f621d0c\n97da00bd4b19d1e88caff7f95b8b9a7d29bc0afe85d0c6a163b4b9ef336f0e90e2c49ce6777024bb08df908cc04ea1ca\nb458268d275a5211106ccaa8333ce796ef2939b1c4517e502b6462e1f904b41184a89c3954e7c4f933d68b87427a7bfd\naac9c043ba8ba9283e8428044e6459f982413380ee7005a996dc3cc468f6a21001ecaa3b845ce2e73644c2e721940033\n82145013c2155a1200246a1e8720adf8a1d1436b10d0854369d5b1b6208353e484dd16ce59280c6be84a223f2d45e5e2\nb301bafa041f9b203a46beab5f16160d463aa92117c77a3dc6a9261a35645991b9bafcc186c8891ca95021bd35f7f971\na531b8d2ac3de09b92080a8d8857efa48fb6a048595279110e5104fee7db1dd7f3cfb8a9c45c0ed981cbad101082e335\na22ac1d627d08a32a8abd41504b5222047c87d558ffae4232cefdeb6a3dc2a8671a4d8ddfba2ff9068a9a3ffb0fe99b1\nb8d9f0e383c35afb6d69be7ff04f31e25c74dd5751f0e51290c18814fbb49ee1486649e64355c80e93a3d9278bd21229\n8165babccd13033a3614c878be749dfa1087ecbeee8e95abcfffe3aa06695711122cb94477a4d55cffd2febf0c1173de\na4c1bc84ecb9d995d1d21c2804adf25621676d60334bd359dac3a2ec5dc8de567aa2831c10147034025fb3e3afb33c4b\nb77307cab8e7cb21e4038493058fb6db9e2ec91dda9d7f96f25acbc90309daf7b6d8a205682143ee35d675e9800c3b08\naaf7466083cd1f325ba860efe3faf4cebe6a5eecf52c3e8375d72043a5cfc8e6cb4b40f8e48f97266e84f0d488e8badf\n9264a05a3abc2a5b4958f957f3a486a5eb3ddd10ff57aa6943c9430d0cfa01d63b72695b1ade50ac1b302d312175e702\nb3f9e4c589ad28b1eceed99dc9980fac832524cfcbe4a486dfeedb4b97c080e24bdb3967e9ca63d2240e77f9addfaefd\nb2c1e253a78e7179e5d67204422e0debfa09c231970b1bfb70f31a8d77c7f5059a095ca79d2e9830f12c4a8f88881516\n81865a8a25913d1072cb5fd9505c73e0fde45e4c781ddd20fb0a7560d8b1cd5e1f63881c6efc05360e9204dfa6c3ce16\nab71c2ea7fa7853469a2236dedb344a19a6130dc96d5fd6d87d42d3fffda172557d203b7688ce0f86acd913ce362e6cd\n8aa2051bc3926c7bd63565f3782e6f77da824cb3b22bb056aa1c5bccfa274c0d9e49a91df62d0e88876e2bd7776e44b9\nb94e7074167745323d1d353efe7cfb71f40a390e0232354d5dfd041ef523ac8f118fb6dcc42bf16c796e3f61258f36f8\n8210fcf01267300cb1ccf650679cf6e1ee46df24ae4be5364c5ff715332746c113d680c9a8be3f17cacaeb3a7ba226ce\n905ac223568eedc5acd8b54e892be05a21abbb4083c5dbec919129f9d9ffa2c4661d78d43bf5656d8d7aafa06f89d647\na6e93da7e0c998e6ce2592d1aa87d12bf44e71bec12b825139d56682cdce8f0ba6dbfe9441a9989e10578479351a3d9d\nacde928a5e2df0d65de595288f2b81838155d5673013100a49b0cb0eb3d633237af1378148539e33ccd1b9a897f0fec3\na6e1a47e77f0114be6ae7acd2a51e6a9e38415cce7726373988153cdd5d4f86ef58f3309adc5681af4a159300ed4e5b5\nad2b6a0d72f454054cb0c2ebc42cd59ff2da7990526bd4c9886003ba63b1302a8343628b8fe3295d3a15aa85150e0969\nb0bc3aea89428d7918c2ee0cc57f159fba134dad224d0e72d21a359ca75b08fbb4373542f57a6408352033e1769f72c6\naad0497525163b572f135fad23fdd8763631f11deeaf61dea5c423f784fe1449c866040f303555920dc25e39cdb2e9b4\n8ce5d8310d2e17342bf881d517c9afc484d12e1f4b4b08ad026b023d98cba410cd9a7cc8e2c3c63456652a19278b6960\n8d9d57dbb24d68b6152337872bd5d422198da773174ade94b633f7c7f27670ff91969579583532ae7d8fe662c6d8a3b0\n855a1c2d83becb3f02a8f9a83519d1cb112102b61d4cdd396844b5206e606b3fefdbcc5aa8751da2b256d987d74d9506\n90eb7e6f938651f733cf81fcd2e7e8f611b627f8d94d4ac17ac00de6c2b841e4f80cada07f4063a13ae87b4a7736ca28\n8161459a21d55e7f5f1cecfc1595c7f468406a82080bfa46d7fb1af4b5ec0cd2064c2c851949483db2aa376e9df418e6\n8344ccd322b2072479f8db2ab3e46df89f536408cba0596f1e4ec6c1957ff0c73f3840990f9028ae0f21c1e9a729d7df\n929be2190ddd54a5afe98c3b77591d1eae0ab2c9816dc6fe47508d9863d58f1ea029d503938c8d9e387c5e80047d6f1e\n856e3d1f701688c650c258fecd78139ce68e19de5198cf1cd7bb11eba9d0f1c5af958884f58df10e3f9a08d8843f3406\n8490ae5221e27a45a37ca97d99a19a8867bcc026a94f08bdccfbb4b6fa09b83c96b37ec7e0fd6ee05f4ae6141b6b64a8\nb02dbd4d647a05ac248fda13708bba0d6a9cd00cae5634c1938b4c0abbb3a1e4f00f47aa416dcd00ffcdf166330bff9a\n9076164bb99ca7b1a98d1e11cb2f965f5c22866658e8259445589b80e3cb3119c8710ede18f396ba902696785619079c\naacf016920936dae63778ad171386f996f65fe98e83cfcdd75e23774f189303e65cc8ad334a7a62f9230ed2c6b7f6fa4\na8031d46c7f2474789123469ef42e81c9c35eb245d38d8f4796bba406c02b57053f5ec554d45373ab437869a0b1af3f0\na4b76cd82dc1f305a0ee053e9a4212b67f5acc5e69962a8640d190a176b73fbc2b0644f896ff3927cd708d524668ed09\nb00b029c74e6fdf7fb94df95ef1ccad025c452c19cddb5dccfb91efdcb8a9a1c17847cfa4486eae4f510e8a6c1f0791a\n9455e5235f29a73e9f1a707a97ddb104c55b9d6a92cc9952600d49f0447d38ea073ee5cf0d13f7f55f12b4a5132f4b10\nae118847542ed1084d269e8f3b503d0b6571a2c077def116ad685dcca2fca3dcb3f86e3f244284bdcd5ae7ac968d08a5\n8dcb4965cd57e8b89cd71d6fc700d66caa805bfd29ab71357961527a7894e082d49145c2614b670dcb231ab9050d0663\nadd6ed14f3183f4acc73feea19b22c9a330e431c674e5034924da31b69e8c02d79b570d12ef771a04215c4809e0f8a80\n96ae7e110412ee87d0478fdbdbaab290eb0b6edd741bb864961845e87fd44bcbe630371060b8104d8bf17c41f2e3fca0\na20db17f384e9573ca0928af61affab6ff9dd244296b69b026d737f0c6cd28568846eca8dadf903ee0eecbb47368351d\n937bfdf5feb0797863bc7c1be4dcc4f2423787952a3c77dfa3bfe7356f5dbcc4daebde976b84fc6bd97d5124fb8f85c9\na7050cc780445c124e46bba1acc0347ddcfa09a85b35a52cc5808bf412c859c0c680c0a82218f15a6daeefe73f0d0309\na9d9b93450e7630f1c018ea4e6a5ca4c19baa4b662eadfbe5c798fe798d8a3775ed1eb12bd96a458806b37ab82bdc10a\na52a4d5639e718380915daaefad7de60764d2d795443a3db7aeab5e16a1b8faa9441a4ccc6e809d8f78b0ac13eef3409\n8e6f72b6664a8433b032849b03af68f9376b3c16c0bc86842c43fc7bf31e40bc9fc105952d5c5780c4afa19d7b802caa\na107ae72f037000c6ee14093de8e9f2c92aa5f89a0a20007f4126419e5cb982469c32187e51a820f94805c9fccd51365\n9708218f9a984fe03abc4e699a4f3378a06530414a2e95e12ca657f031ef2e839c23fd83f96a4ba72f8203d54a1a1e82\nb9129770f4c5fcac999e98c171d67e148abd145e0bf2a36848eb18783bb98dff2c5cef8b7407f2af188de1fae9571b1c\n88cc9db8ff27eb583871eeeb517db83039b85404d735517c0c850bdfa99ae1b57fd24cf661ab60b4726878c17e047f37\na358c9aadc705a11722df49f90b17a2a6ba057b2e652246dc6131aaf23af66c1ca4ac0d5f11073a304f1a1b006bc0aa5\nac79f25af6364a013ba9b82175ccee143309832df8f9c3f62c193660253679284624e38196733fb2af733488ab1a556e\n82338e3ed162274d41a1783f44ae53329610134e6c62565353fbcc81131e88ce9f8a729d01e59e6d73695a378315111b\naa5ddcabf580fd43b6b0c3c8be45ffd26c9de8fa8d4546bb92d34f05469642b92a237d0806a1ad354f3046a4fcf14a92\nb308d2c292052a8e17862c52710140ffafa0b3dbedd6a1b6334934b059fe03e49883529d6baf8b361c6e67b3fbf70100\n96d870a15c833dddd8545b695139733d4a4c07d6206771a1524500c12607048731c49ec4ac26f5acc92dd9b974b2172c\n8e99ee9ed51956d05faaf5038bffd48a2957917a76d9974a78df6c1ff3c5423c5d346778f55de07098b578ad623a390e\na19052d0b4b89b26172c292bbf6fd73e7486e7fd3a63c7a501bbd5cf7244e8e8ce3c1113624086b7cdf1a7693fdad8b5\n958957caf99dc4bb6d3c0bc4821be10e3a816bd0ba18094603b56d9d2d1383ccc3ee8bc36d2d0aea90c8a119d4457eb4\n8482589af6c3fc4aa0a07db201d8c0d750dd21ae5446ff7a2f44decf5bff50965fd6338745d179c67ea54095ecd3add4\n8a088cc12cf618761eaa93da12c9158b050c86f10cd9f865b451c69e076c7e5b5a023e2f91c2e1eed2b40746ca06a643\n85e81101590597d7671f606bd1d7d6220c80d3c62e9f20423e734482c94547714a6ac0307e86847cce91de46503c6a8a\nb1bd39b481fc452d9abf0fcb73b48c501aaae1414c1c073499e079f719c4e034da1118da4ff5e0ce1c5a71d8af3f4279\n942ae5f64ac7a5353e1deb2213f68aa39daa16bff63eb5c69fc8d9260e59178c0452227b982005f720a3c858542246c8\n99fea18230e39df925f98e26ff03ab959cae7044d773de84647d105dfa75fd602b4f519c8e9d9f226ec0e0de0140e168\n97b9841af4efd2bfd56b9e7cd2275bc1b4ff5606728f1f2b6e24630dbe44bc96f4f2132f7103bca6c37057fc792aeaab\n94cdad044a6ab29e646ed30022c6f9a30d259f38043afcea0feceef0edc5f45297770a30718cbfec5ae7d6137f55fe08\na533a5efa74e67e429b736bb60f2ccab74d3919214351fe01f40a191e3ec321c61f54dd236f2d606c623ad556d9a8b63\nb7bd0bb72cd537660e081f420545f50a6751bb4dd25fde25e8218cab2885dd81ffe3b888d608a396dfcb78d75ba03f3f\nb1479e7aa34594ec8a45a97611d377206597149ece991a8cef1399738e99c3fa124a40396a356ab2ea135550a9f6a89f\nb75570fc94b491aef11f70ef82aeb00b351c17d216770f9f3bd87f3b5ac90893d70f319b8e0d2450dc8e21b57e26df94\na5e3f3ab112530fe5c3b41167f7db5708e65479b765b941ce137d647adb4f03781f7821bb4de80c5dc282c6d2680a13d\nb9b9c81b4cac7aca7e7c7baac2369d763dd9846c9821536d7467b1a7ec2e2a87b22637ab8bbeddb61879a64d111aa345\nb1e3ee2c4dd03a60b2991d116c372de18f18fe279f712829b61c904103a2bd66202083925bc816d07884982e52a03212\na13f0593791dbbd360b4f34af42d5cc275816a8db4b82503fe7c2ff6acc22ae4bd9581a1c8c236f682d5c4c02cc274cc\n86ba8238d3ed490abcc3f9ecc541305876315fb71bca8aaf87538012daab019992753bf1e10f8670e33bff0d36db0bf0\nb65fbb89fafb0e2a66fe547a60246d00b98fe2cb65db4922d9cef6668de7b2f4bb6c25970f1e112df06b4d1d953d3f34\nabb2d413e6f9e3c5f582e6020f879104473a829380b96a28123eb2bdd41a7a195f769b6ac70b35ba52a9fee9d6a289c3\n88ec764573e501c9d69098a11ea1ad20cdc171362f76eb215129cfcca43460140741ea06cee65a1f21b708afb6f9d5b0\na7aaec27246a3337911b0201f4c5b746e45780598004dac15d9d15e5682b4c688158adffdef7179abb654f686e4c6adc\na1128589258f1fbfa33341604c3cb07f2a30c651086f90dce63ae48b4f01782e27c3829de5102f847cde140374567c58\naaf2b149c1ca9352c94cc201125452b1ed7ca7c361ed022d626899426cb2d4cc915d76c58fa58b3ad4a6284a9ae1bc45\naaf5c71b18b27cd8fe1a9028027f2293f0753d400481655c0d88b081f150d0292fb9bd3e6acabb343a6afb4afdb103b5\n947c0257d1fb29ecc26c4dc5eab977ebb47d698b48f9357ce8ff2d2ed461c5725228cc354a285d2331a60d20de09ff67\nb73e996fa30f581699052ed06054c474ebdf3ae662c4dc6f889e827b8b6263df67aeff7f2c7f2919df319a99bdfdceb1\nb696355d3f742dd1bf5f6fbb8eee234e74653131278861bf5a76db85768f0988a73084e1ae03c2100644a1fa86a49688\nb0abca296a8898ac5897f61c50402bd96b59a7932de61b6e3c073d880d39fc8e109998c9dba666b774415edddcff1997\nb7abe07643a82a7cb409ee4177616e4f91ec1cf733699bf24dec90da0617fe3b52622edec6e12f54897c4b288278e4f3\n8a3fae76993edbc81d7b47f049279f4dd5c408133436605d934dee0eadde187d03e6483409713db122a2a412cd631647\n82eb8e48becfdf06b2d1b93bf072c35df210cf64ed6086267033ad219bf130c55ee60718f28a0e1cad7bc0a39d940260\na88f783e32944a82ea1ea4206e52c4bcf9962b4232e3c3b45bd72932ee1082527bf80864ce82497e5a8e40f2a60962d0\n830cf6b1e99430ae93a3f26fbfb92c741c895b017924dcd9e418c3dc4a5b21105850a8dd2536fa052667e508b90738f2\n990dce4c2c6f44bb6870328fba6aa2a26b0b8b2d57bfb24acf398b1edc0f3790665275f650884bd438d5403973469fa2\na2e5b6232d81c94bcb7fed782e2d00ff70fc86a3abddbe4332cb0544b4e109ae9639a180ae4c1f416752ed668d918420\nb4cdf7c2b3753c8d96d92eb3d5fa984fef5d346a76dc5016552069e3f110356b82e9585b9c2f5313c76ffaecef3d6fd8\n83b23b87f91d8d602bff3a4aa1ead39fcc04b26cf113a9da6d2bd08ba7ea827f10b69a699c16911605b0126a9132140f\n8aae7a2d9daa8a2b14f9168fe82933b35587a3e9ebf0f9c37bf1f8aa015f18fb116b7fba85a25c0b5e9f4b91ba1d350b\n80d1163675145cc1fab9203d5581e4cd2bed26ad49f077a7927dec88814e0bed7912e6bbe6507613b8e393d5ee3be9be\n93ddeb77b6a4c62f69b11cf36646ed089dcaa491590450456a525faf5659d810323b3effa0b908000887c20ac6b12c80\n9406360a2b105c44c45ba440055e40da5c41f64057e6b35a3786526869b853472e615e6beb957b62698a2e8a93608e13\n93bfc435ab9183d11e9ad17dac977a5b7e518db720e79a99072ce7e1b8fcb13a738806f414df5a3caa3e0b8a6ce38625\n8a12402c2509053500e8456d8b77470f1bbb9785dd7995ebbbe32fd7171406c7ce7bd89a96d0f41dbc6194e8f7442f42\naab901e35bf17e6422722c52a9da8b7062d065169bf446ef0cbf8d68167a8b92dab57320c1470fee1f4fc6100269c6e2\n8cad277d9e2ba086378190d33f1116ba40071d2cb78d41012ec605c23f13009e187d094d785012b9c55038ec96324001\n85511c72e2894e75075436a163418279f660c417e1d7792edce5f95f2a52024d1b5677e2e150bf4339ad064f70420c60\n85549ca8dcbe49d16d4b3e2b8a30495f16c0de35711978ada1e2d88ad28e80872fca3fb02deb951b8bcb01b6555492e4\n8d379ab35194fe5edf98045a088db240a643509ddc2794c9900aa6b50535476daa92fd2b0a3d3d638c2069e535cd783b\nb45cfebe529556b110392cb64059f4eb4d88aaf10f1000fdd986f7f140fdd878ce529c3c69dfd2c9d06f7b1e426e38f3\nac009efd11f0c4cdd07dd4283a8181420a2ba6a4155b32c2fed6b9f913d98e057d0f5f85e6af82efc19eb4e2a97a82df\nb2c2cdffa82f614e9cb5769b7c33c7d555e264e604e9b6138e19bcfc49284721180b0781ecbf321d7e60259174da9c3c\n95789960f848797abbe1c66ef05d01d920228ca1f698130c7b1e6ca73bfda82cee672d30a9787688620554e8886554ee\n98444018fa01b7273d3370eeb01adc8db902d5a69b9afc0aa9eadfeb43c4356863f19078d3c0d74e80f06ecf5a5223f4\n87d20b058050542f497c6645de59b8310f6eeec53acbc084e38b85414c3ea3016da3da690853498bde1c14de1db6f391\na5c12b3a40e54bee82a315c503c1ce431309a862458030dde02376745ec1d6b9c1dbeea481ae6883425e9dae608e444e\nb9daa3bf33f0a2979785067dcece83250e7bf6deb75bb1dbbab4af9e95ddfb3d38c288cbef3f80519a8916a77a43b56c\nb682ec3118f71bde6c08f06ea53378ea404f8a1c4c273dd08989f2df39d6634f6463be1d172ac0e06f0fa19ac4a62366\na4f94fd51ecf9d2065177593970854d3dce745eebb2a6d49c573cbf64a586ae949ddfa60466aaef0c0afb22bd92e0b57\n86cd5609efd570c51adbc606c1c63759c5f4f025fcbefab6bc3045b6ad2423628c68f5931ff56fdda985168ce993cc24\n981192e31e62e45572f933e86cdd5b1d28b1790b255c491c79bd9bb4964359b0e5f94f2ae0e00ef7fe7891b5c3904932\n9898f52b57472ebc7053f7bf7ab6695ce8df6213fc7f2d6f6ea68b5baad86ec1371a29304cae1baadf15083296958d27\nb676c4a8a791ae00a2405a0c88b9544878749a7235d3a5a9f53a3f822e0c5c1b147a7f3f0fc228049dc46e87aa6b6368\n9976e10beff544e5c1645c81a807739eff90449df58ffdd8d1aa45dd50b4c62f9370538b9855a00dd596480f38ebe7a5\na0e91404894187ec23c16d39d647ada912a2c4febfd050a1ea433c4bfdc1568b4e97a78a89ba643aca3e2782033c3c58\n91a6ea9a80476ed137eb81558ff1d55b8581663cccd41db4fc286876226b6515fd38661557419e1e46b6a3bc9cda3741\nb9e8a1e23c60335a37a16f8085f80178a17d5e055d87ffe8cf63c532af923e5a5a2d76cf078164fb577996683796caa6\nad8e151d87a37e8df438d0a6a7c02c3f511143efb93fde8aef334d218cb25932baf9e97c2f36c633620a024a5626af3d\n978f942f210e8a482015e6fdc35a4c967c67b66e6e2a17a05cc7a0f2163aed227b775d4352b0c3cca6cbf4bd5bafaf75\nb5e2e3d8b2e871c07f5899e108e133f87479959b80cb8a103fbecde00ccdbfbd997540eef33079c5cc14b1c00c009fd1\n88a164b3fefd36857f429ab10002243b053f5d386466dbb9e5135ed3c72dd369a5a25e5e2aaa11f25488535e044e2f12\na66091c0db4e7cf05a089ec2b9ff74744354d0196968201f5e201699144b52bb13b4e68e12502727163e6db96e3565f2\n8e65aff8e37240461b7374c20bfd1d58b73a525c28994a98f723daed9486130b3189f8efe5c5efcd7f5390cc366038da\n8b37c21dd7304c3aa366959ba8c77ea8b22164a67e136808b6f8e48604297f7429a6c6ecf67b1d09b8b7ec083eacd7e0\nb689b1277ad050f53da91a702516a06d7406ff33a4714ea859b3b2b69f8d0aa8f983c7e039b19c0759a3815d841fa409\nb17f7a0a182ed4937f88489e4c4e6163dcf49fd2ea4d9efbba8126c743bea951cd769752acd02e921774dc8ebcfae33b\n8b7fab4f90be825ac5d782a438e55c0a86be1c314a5dbc3cc6ed60760a8a94ef296391f1f6363652200cce4c188dae67\nab8410c4eaa2bb43b0dd271aa2836061bc95cb600b0be331dada76ddb46711ff7a4ad8c466cc1078b9f9131f0dc9d879\n9194bd7b3cc218624459d51c4d6dbc13da5d3de313448f8175650fa4cfab7cc4afcda5427b6676c3c13897dc638b401e\n980f61a0f01349acd8fc9fdc88fc2c5813610c07eecb6ab14af0845a980792a60dadf13bb4437b0169ae3eff8f5984ce\nb783bee24acea9c99d16434195c6940cf01fc2db135e21f16acae45a509eca3af6b9232a8aa3a86f9715c5f6a85cb1c3\na3079931c4b90966d1faa948db847741878b5828bc60325f5ebe554dcab4adcc19ee8bce645e48a8f4a9413bb3c6a093\n801f61ac9318f6e033a99071a46ae06ed249394638c19720831fff850226363a4ae8486dd00967746298ee9f1d65462f\nb34dbbed4f3bb91f28285c40f64ce60c691737cc2b2d2be5c7d0210611cd58341bb5bda51bb642d3ee2d80882e642a13\n8750af19abfb915e63c81542b13d84526a0c809179bbcc1cd8a52b29f3aba3ae0f7cf6f4f01790bf64ef7db01d8ee887\na6ea10000eb2dd4efc242ac95bc3b3873cdd882fbeb7c9538c87e3143a263ca3a2e192b2159316a625cfb5fb0b6cdcb3\naa40ca54bc758a6c64cb932924917581062e088b3ad43976b28f2e11d8a7dea73f1fb50aeaa0e70182bb2dc07d805bb9\na4779dfd25b5ec9d75dfb54a4bb030364899a5e75c1492403acb19f2adc782c7ac4daeb66d2f5aeb74135afe9f318e3f\nb4551e2805d63ca453f4f38b1921ac87ff687e1d70575ad38f3469d6f0608ef76b7b1b98ae1e6b1e7d928773aaab6e3b\n99490ee722f96aad2743b08dd37bfeb75a8c59efaee4c9b694eaa05eb8a6bb23861a4480544c7617d04d23fd5e2543b4\n8a7050d964d295fff98ae30d77ce730a055719313457e773fcce94c4d71a9b7cf63db67e54a8aab20fb1335b0130b5d5\n903144e6bbee0a4fec17ff80fef0d2103981140c3d41776cfb184ced17f480a687dd093f6b538584327e6142812e3cd5\na5b30f7c6939bdc24a84ae784add927fec798b5a5ee3dd156c652df020728dd6d43898be364cf5ee181725fbcffc0964\nb43d97ec2bc66af92d921a5c5c20a03ef2be2bc2c9b345f46d8287409fcbfd88ebc49d4509d64468222cd1d2021bf236\n82dc23c7f5086c9ac6b4566359bfb830d203544b0d8332a210775670f899cd9ff48b94bfeba40040c25664ebdd5cfad8\n9294cd017fea581dabb73dcc8c619904d7e022b664b0a8502c9d30f3807668af279948e7e41030ae296d492225297e95\n8d6c9dc636c8e884f9a4299e5cff06d044ebc94ad783a4b71788347ea4a336d4d048b8a9ecabae789e8fcdc459723dfb\n801a80bc49e882ec81b04e37407713f033f7bdac79252dfa3dc8c5bd0229fcbd4019890e402cf843b9378df08f72ab84\nb4313ca32569d973900f6196363c0b280ddfa1b47c88d019e5f399b805b444a777950fc21ae198fc23ece52674b94abf\n96f06056fd255fdabf78986e315e7c4fdf5495cf850536b7976baa97a994cc6a99c34609c33a0f2facba5e6f1026dce6\n983ed80220a5545ffd70ef5e6ac10217d82ec9cd8f9a27ee77a5ff4074092308c0e6396fc4e9932a77ddd474e61f8b55\n872a059aa630af73c4abbd076e8b333a973ffc5bdecf5dcc0600b00162184213cb19d4f601795030033beb808d5810ce\nb040f318d9d3b8833da854014a44296dbd6762dd17cab13f91987256c54353b7f0800547cb645a7cc231997454209fdd\na8c4731a555308e8ce0b8325eb7a4cbf6113d07e9f41932df04480b72628d313b941c7055f1cc2ac45c7353b56e96ca9\n8c24031440b77637e045a52e5ea3f488926ab0b426148975edf066c40a4581beecc1bfb18fc4cf5f9f96dc6681b4bd28\nb39254b475abf342f301298feaa17a4b3051f30ea23a18acf59e003e2704ac96fe40691f1da387913bdf7aee6389f9a8\na1dbf938b604ccc6d60881cc71f38df568aa02752aa44d123514154017503f6c1c335ae43e359f1487bc8934073cd9c1\n8d52aa1be9f429ece0580498d8fe9fef46d4a11f49436a82b8927f9503dacc41245907f126594c1cd30701286f8c092c\nb826f396486942c0326d16f30a01b00a682c30a75553dc6ac34fd5b3e96b13c33b94738f522eebaffb59ff8c571c76e9\naa89f51cbf6e6c3e2aa2806187b69ab3361c84e89f393f3ed284fe84db46fc3944aa44f8928e3964f9c1a1ec27048f68\na254df0efa4203fb92b42a1cd81ca955922e14bf408262c8f7cb7dc703da0ca2c71556bd2d05b22ce9a90ad77309833d\n93263c507e4d5f4e5df88e85b3d85c46ea729fb542a718b196333e2d9fb8a2e62dc1347cf146466a54ba12d200ef09d9\n922e3c4a84246d89a07aa3e90f02e04b2cea9bebc0e68b742156f702aed31b28c6dfa7ac936ea2fc2e029adf68361f98\n9a00628eeeda4ccbed3ef7834149aec4c77aac1a14bc2491ba5d1a4a2c5d29afb82ceaa5aac1c5ce1e42cdcaf53e30ba\nab3a88df36d703920f6648a295a70ffa5316c96044f39ff132937bfda768937cb6a479e9ba4a4e66b377f3a9996a88c4\n966b11526ab099d550ab33c6a9667e5cfdedf255da17a80a519d09acd78d2ea24ec18bd1ea7d8d63cf0a408f1c1fe0b3\nb5c21b9817dc32f3df9d9988aa3560e1e840d586d01cd596bc0f850ab416b6013cbf7dbfd05ac981f26014c74bd2d2b2\n9040abef5e2523e7f139c9f744a64b98fea3a57952059ffe4d5ed77fa87068203c090ef4e7f52c88fb82ea8a6fdca33e\na0dcdaeb7d3f5d30d49c004c5f478818c470187f4b0b4856812dcd1b3a86de58a99acb8ceb44c6b80c3060cf967c43a4\nb5f4be9a69e4a6719ea91104820df8623b6d1073e8ee4168de10a7e49c8babea772bcbc6b0908185e98d607e49cd3609\n8634020a5a78650015763c06121c606d2dd7b324aa17387910513dd6480fb797df541fc15b70d269b2794ad190595084\n9504d1d0fb31ff1926c89040c04d51fd1f5cddf9d7ca3d036e7fd17e7a0f767ef33cee1d8bf7e17e2bc40949e7630417\n812c72846ef6d692cf11d8f8c3de8fa78cc287303315114492667b19c702cd24d462020f1276895df26e937c38f361f8\n8c97aa5e9ef2aa9a1435ef9ddfe62e850f0360864ed5fb82bf9fef4ef04d8fb4f827dc078bc911ee275e4501edd6617c\nac5f7af5e23c8e429aaa6b6825129922b59d25b4608f07b65f21388a9ac3aa89096712f320afe6d56e44e1f0d51a4eb9\na8c84d9a8593a0cb5be1e450960f59878a4e6b70da54a7613dfc25911b7cc9e6d789d39401b0a0d6471ab9dcdc707976\n8c9d5fd89611392c0f085ffa4fa642a181f0b9b23593deb5e10fdd1642722ca75ef34a037e88a8d03f2888fe7461f27c\n8c74b05f91fb95c85e7bd41f6d9a1e41e667e68f3d19b325c1f25df1767019919edab89b92af237896cbc4e6d6dc1854\na3caecb91640821f0b2c4981b23f2069df8d2b98ce026c1538bc096b292f5f956a5d52c1c8d6a8165a1608083ba6494b\n8ae8e0c36f8b79a69176ff29855df45d0fcd9e4d1dbaed8899f8fcdece676e418ec034a6c161e2a894f0c834aaecbfd1\nb88d18c67dc3b1b6ed60ee437c441c1ed14ecddebccf43683605716f30058b1aa4ba05ff10cd8171ee97d8f58d70c094\n94f43d84dcdfd9cd19115c7d8e9c1e856828eafbfdec93b876cf0007e317e30b2ad951dbabc186aa6ef90fdee4d91990\nb44e4723f41fc1d5b0057f371e3381ae02566590b3f964b6eb07b2104f66ff78410c407235fa98d04f635694f3baca09\naddd8390173d29ca0811534d389253831fed75fed135398617836b6e70767269eacb1560b39a58f02042ca3b97fe59c4\n80bdbdacc0c358c7ea52aeacdc5f9ceb6928bcf6e7dee7c17d8ae3bf7c2372aa7a0372363888968fc0921aaf4776d5d0\na486e2b6f04f403f9e609d69dfb3cfb992af56ecad1683271df3e3faa3b86638b81e73b39978fb829ee7133d72901f2d\na19472da57457e10c6a6307895393ddaec8f523760d66937fe26a025817319e234eaf69756ffdf1b84c81733424a96d7\nad6a195397cbc2d75171f5e82090441eed60bd1ba42c39ef565b8b5a8281b04400678625b1dc46d617f694a7652a8e5d\n8f98e721c06cec432e2221f2e1b06bb1469d916a8d88d6973acf68d1e003441d00390dafcead8ecdbf9eae4509baf5aa\n91d62a0f9d13c59adfe1376ed6d057eae244d13c6b3d99be49a49e0075cf20f4085cf127774644ac93615be9ac9e5db6\naf45dec199245e2b326a0d79c4899ed44b1c0219db42602a4a6184ace0ff831a3276297af28f92e8b008ba412318e33e\n8754bde54e8d2d169e6a7d6f0eae6097bc0461c395192bd00dd6f105677ea56ab384c02553ea5eeac0a65adcb0df77ee\nb676afd2f5afc37a314c943d496e31b4885efcbcc2061036e370a74cfde5642bb035622d78d693bfc3136fc036c7edb4\naab6ffe6cc234397cf1822e02912bc282dfb314e92fb5a9e10d0c34ee9b5856d4b76e166bc2bb6fcdd66aabea35ec4ef\nada6e62f90ee6b852ec4b72b22367acac2896f0df2c105beda27096583ddbedddc710d171330569f111c6e44a5b57ae7\n802139dd15241a6de663d9b810121bdd9cf11f7f8c8ca6de63f4f8e731409e40d1fd3558b4f619ed42ee54929dff1c7e\nad8e70531cec21b4e6f55be1751c2d025bd2d7d8158269b054cfe57fa29252d052ce4478ec7db6ec705789e2118d63b3\na8e4a4271769480e1b33a28c87a150ecc0b48bfe8a15ae04152197881de4ce4b03453aefe574842424edbbe4173e1a3a\nb98c65726296610cef16c5b58da5491acd33bd5c5c5af4d934a9840649ef85730fbce8018dee09ded14e278009ed094a\n8e213a7861223287b860f040e5caaa563daa0b681e4e09ec79ad00cc459238e70bbeaf7486bbe182fc12650700034ec5\na2879f9e1a556cf89b9b5b3bd8646a8cce6b60bcbc8095df44637f66a2da5858eee2dc9091475a8f64bb5aff849389cd\n8a17cdb4077b9b0bcf28b93294ac5ae4c8bba8839fce0f1012b53187ac008f9858b02925fbfc421f1123afcdbd8b7753\n86fd9c11528aa43946e4415ff64a3ca6409ee6f807368c68997b18605da65e415ccd85ad913820d450cb386593de666d\n8ed55923b963c3d85a91aca11c40ff9c6c7f1e2b9bc199d1a270e5fb16aa62dec0136e97866145ae9d58a493e8b1cbbb\nae32af5b5d418668ae123c639b149e5eed602404e8516da4a61db944b537a3620545e8e3d38cf10cdaea980ab2f80973\n95cb8d9e9d6762d78dde0ad73869ffaca904a7d763a378b8cc11a7933d3e7d1c8aec4271a079b1b00f8887ee5b1ea21f\nb5ea20b42a3ca247f00ab5328c05f0cf194973d5f7271c66c41c5055b1ffdca136be179709e0c1de209fbe07b9820bf3\n98682f7cce471c92a8d6d15fee4ddf4d43dd97c3e3811d2913618ecacc6440b737717c07736ae4558c910e11ee98104e\na67da2c7cbba48e929ca4e4b9a6299fe01ef79eff8cc5cd3fdbdc0721a68130e4079f30ae151a573a7dcca8ecf2e684e\na9981c9f9dcbb3b0f6996f664fb2acd7573189f203be37b2b714662aa273551396abfb1f612ccde4e4c8127a050dbe4b\n92d55eff8da600f886da9bf68e8eecf482faa4b268f3f286b3b3e5cc91b19604081498d4905b201bb4ec68e32b5591d9\n963e3f1728de9d719c86d390f3eb9c3f99d1928347fab0abf10dbb37d76b59ddb64d4734c977863a6cd03ffece5ca895\n93480e2de83c921056b6d8628ac37cd5ef7555ba43b0308fc13386cb0515d42c12ecd06057137aa71a7931beaf90b9ce\n8feae57ff0e6a162cc81c99f45c6187d268fc0bee8c2bffc92142ef76c253d201f0e932943cf2fa312982b281ce1066b\n8f8f4bd4200fb87afcd743274480220d77571928000d4197410dbb75439d368df6a06d941a6152206371d2ca9cac99e4\n8ee7f11e79af4478e0a70eb424fe8078237ad99ba6d7e6bf1a8d5e44e40abd22d404bd39b718ad6fdf4c6601f2a47665\na98acfcec612b574943195b9ba95bebcc9c0b945c9f6b3e8760b2a4635909246a9d73b0b095c27b4ecb3339704e389b7\nb520efd19f65e81dc285031ea3593f8c5dad793e4426beb9196ab46e45346f265fd71e50adb0da657977c60ed5724128\na3d9d0b7415280ce4dfa2429d47b2b8e37604a5157280a72cc81d541ffe44612dbb3ef7d03693fc42a569169d5842dc3\n8c29e2d0b33801f6d9a9c065a76c5cad1fb0a001506b970307e21765ee97c732a4cbf1d7c1b72d95e0ad340b3b075224\n839e21f292892a6eb596b9b1e9c4bd7c22a6fe71d3d04487c77840028d48392c5cbe73140a4e742338e0c8475cd0c1ad\n8bea5c68e7743998619185bb662e958f1b4d3ca81019d84ac43c88911aab3abe4ee9bcc73cb95aa3ae87c0138801bde3\nb8f262d21a94604049e008ce03dc857848168e1efca4522acb0ccc827ffb37f545e1947843a356563a76bc6489605b66\na7bd0842b0bb38d9943b82aa883f36f4eb8a6e8a7790d4f87faf306608f51d250a19b73984f1156cef5dd2581664614b\na993e649bd953627a88a2539dac3a12ec7f37a4c65b01425d9d34edf7ee10a71aa98f65c9e013107f824faf8aee041a9\n8e07eced75c67cb4d2ec01857f6ac1408482e6b31cb2faa249e8cf99f180575587df530c7782a7539b5221121ef48aa0\nb2f4578f26c05ecb9e2669ca744eb19d4f737321ac7d04fafd18beb7866e0fec9dd063953ae1f077b44b9c6f54db1279\nb6b3788a6c7bcaf467d19daf6ab884d549aa866970c05a9181f544ff190d043192c84fe437a75a30b78b425461cca062\na270684903c61544b85a7041e81f65e787e1c1e23e57538fa8a69836bed0ca1673861dd29f743a1280f2f38eddd3aa83\na9c2397c4773dcad2821266dadfd2401d013d9f35de6744f2ec201f3507700adb1e6ec4f5a453be4764da8bf68543f26\n83a3025ed6fd5df9d98be32a74e10a0d9728b560942d33ba028536fb148fc34ae87e92be2df3e420a8dfec08da495982\n90dc70c183a90bab988b4a85b7b921c8070af0e5f220364fe11afa0722990b2c971e1e98eef62d3287fedfd9411f1df7\n82d940937a6c636224d04f8e2536f93dcf20dc97a5f188875ad76c21b804aef9af10839419b61143c1f88a695959a6b4\n8017f9473ce49d498d6f168137e77e62fe553e5a51e75b519cf2cbd1ab9afdafad80fd5e6fd0860e640b0d78ca8ed947\n80573a0ec049fe1f7b3013b2839e145cd87e07c0e43826a29ef8c92516f9a30896c2ffcf3ed77ed22a6cf3101b1789d5\n953349abd2559f9824db07cec857ad54f1a05018f3076425f8dbae37f8d92a46af2c04ab7c8ec0250449541187696e98\nab7bd2c4f05ee9a9f252c4e16a20993a12c535c3809d124bae24642616521a9768d3f19eceaf8524583f47ae1f527684\n9883b77ee834ee0112ca2f366d2a6fc213e0cf454e061438c2901a5ba35b7378f64da8adf6a476eb1562991ef5b4a5bc\n89291811db308637356dbf7ed22cf07bfce33eb977734ee346e8c15a231b35d8b4443574f3fa97a40867b3e23b0bbfa4\n93d753849d7d9588d39e38217500b123a6b628a873876612d9f98b5d611f52c89c573432d2176752b5d1cc2d94899b8b\na45add3c4844db3b7a237295fc85fddc788ac1ec395a0524d2fc90a539571a247146aea4aa10eec30a95e9617c85b98d\n90f94578842db7a4de672da1e483858ece5e466c73c12f725a0fc71f42ff880c9447a33fa9096839bee817536f2591e2\nb2c1b6fb031bb30460f157356562b44b4de096a0a112eab4fb3cc500aad38bc770da1fc2e73caf687a0da5e8537049c0\nafb15e15fd930929c0e3c66482068a5afe0c7b7f82e216a76c5eb1113625bfa0b045a52259d472284cfbaf4796c71456\nad222a9a3d907713418c151b8793d5e37634354322068f8206b9d0da1a3f53b0004193713d23ec35990639a1b6c2e075\nb44a128dce97e8c4b178cdbca0a5c1b3f6e164490fac0fd68dbfe0aafa89920bb4ea420a8527e06c80dd19c2f135e3ef\n8596e993ef18b8d94e9c42a90cb7060affc586b8e9b526820d25124285de5590134e2e86592e9dc4dd45ccf5d578fa60\nb71bb0ad138141ed506b2253e84110d2db97cc2d24a3fd0d096b0022d9f38f87aa74e2f505074632d64e90bcc491aa30\n84841eafd357309de47b92ca5ec163dec094a2e5271bc65898c31932e0160bee165e4decb23af339cfe09c83e1cc5441\n8a2915ee39a6fd4a240b98533d7690ef1773ce578ed1fb05ed414ebe36f7ef289fa46f41768df57190438c356331e329\n90bb337165386f1990cbd8ed2e8321ef21bc18125b015b4da0c37e5fcc446b26005379ee4fad8ce9348ceb4ab49e82e2\nb707b50ea2ab05c6d183671587f25fe29eef23fe569d731459a1ac111a0b83a2cd65b88242876b34aeead3b05a15d745\nae1f159f79b7996315c4f9acce7e21a6ed59d4ef76331196fc86911fda3035edd5c11d568b105175a36c948d0263b382\n922bc525bace05e5dff6b5cabde5469ddd2c1c601f7131abc04ecefdd35095e6ac015b1aec3c3b25c5dee8d139baf60d\na7b060405b2740f82db64683187b1bb89e5f40c8438663c7cbc8ef2513929fe5f92625667a7f2f599a72a96b1fc8f08a\nb9dfe94a08651db5efefbb813269bce80d814e3089b80c0654491e438d820bf521f8a4a4477909344ba88f7683eebb43\n841817a9729465743576950b6e8eea32ebf39cca99ace86c4792f9f35926e2d6830c52854a3b2eaeb61694e6845008bd\n934128034bde8fc7b93b952aa56e0ed28b36cfa04cfa1f0d5b38266dd40beedff5e0bab86e4717b0fb56c56be2eae26b\naee9d64caf28596308782cd8f3cf819506daf3378f86157ff775e618596411adf94efd0e9542787ca942066f02cbd332\n85871184db314411a49575fee088c52ed5dba4e916ee001ec24d90898a0154d9790a06aa8a707ca7a8b986c0293b8d89\n8d3d87edcc0187a099c97b581a598d357a41ac152303bb27c849eb78e72e15cb97cf9a0468fc36f245c3e152c76bb7dd\n900475d165dec18b99eb7b5f9e9ad1d2d4f632e55fdcc4c5ecd7775fed462990e6aaafe9c669f40508f9b15f00bda31f\na25b5954edd57e7811a0d18532043d975c7b44b80f65cd630935d7b16ada05f30fe2b7be7ae8a2f54c25957faf3f1950\na089019afa3a7a15f7e7874e73b6773c0a824e6d3379b4c928e173321fb165ad979a6be004d394c28d19d410b2655d3e\nb28f46797dee0c538bd3de815df641a0ef718ad3e52b2764aec380d6905b38b50ad6f60d0f68e096ca39960ba7734355\nb0ac155d3d05851b04104e6b459f1a68e9e155437c92421a7c0e4dd511ef89cf71dfa3cc920769492ee283a65ebf029e\n813c69a810745580d43d5b5480f0ba81000fbef0071e6b655c7346bef5ed774e9214a7816d40eb1774a5bd033767a046\nb176345ca75c64f10ec33daa0dcf1f282b66a862fcd3d8d66c913f9a02db4c9d283dadc02eff13aaab94bc932a42234e\n92560f67e5b995db4a489bb86ee78b4aee0800143b3535ad557a53e9e08716bd0202d9f5714722c2a5e8310046e3f5b3\n8adb427bad9cc15fc6c457a96a6750dda8c46d859c5f69bf0e7ab8fc0964430b33967fd47cf0675b6ba1757f91255e6e\nb120f723b80389a025b2daa891b140b3d7b8d520ae2a6a313f6e3d365a217af73292dcb249dca1f414ec05e865e3cdc7\na61a5d261a8dfe5996c42ea0a5ae703a2adcfda80e86837074d868eee16f87d38da19596c48b55dbd7a7cbec1a9b4996\n99dc921eacc6bb867c5825ad4c83bc4af9dd78a18b3d0e1a60ad493e3805b8fb9b7922b577da1adb3d805edfc128d51d\n85455fa165a07282aaab4a5bfb88027f47b9532e4af8195c048515f88b0db7e80f42e7a385fd4944faaa7f2a6544ad17\n96dff2d1c8a879d443fe576d46bcceaf5f4551d2e8aad9c1a30883637c91090de99ad5eec228eb5febf93911502d3cbb\na87eb7f439377fb26c6bfe779701f4aea78dd7980b452a386afec62905e75217a1996c5234853432a62ef8bab21c31c3\nb598278293823e9ccb638232a799211173b906444376337fdf044d0227d28fcc4c5867e6ecb3200e59ca0b139e71cac9\naa6fe147edc95027654d68140f428ec53cede3552c5f49c09d18bc6f6ae8c739a63042eb7291d14d717a4e1f0778abcb\nae8ee18913d328b2fba71efe65526d3ee9c81beda53cf776baec4019ea30212010758cbb5dc85ed6620ce04b189f01f2\nae9fb686777e88dffdd42805fe4114aa0da1b350d92a27ff3f8a817fb25af1fcfc9a06155affe0273bf13caad16a5351\n95d372ba3a2ee38371538f34aae91b4844488e273f70c02f1992370f89fc2343eff95692d52ce9f21206abbee4959958\nb15260376f0a34ca2827ff53acd7eaaef94c9acc2f244b36500423069cb1cdaa57ac8dd74adb5b53d0fd4265fcbb28ea\nb0ffce6a8059537ef6affdbbc300547ef86e00109289239b0c6930456c562b4ed97f2e523963af17736dd71b46c44ac7\nb5499a1277d34f9892f7579731ff53f423f2ffffa9ea43a6e929df8c525e301396249a2324818a6a03daa0e71fcd47b3\n98dbfb8e97a377a25605a7665d4d53e66146204d8953afda661ae506858c5cd77ff7f21f5f10232e06dbc37378638948\n84177e27e6da0e900c51f17077f5991e0e61bff00ca62c1623e627c5aea1b743f86eef6d55b13219a1947515150bade6\nb50407bb5c61b057ab8935df94fd43ca04870015705b4f30ceac85c1035db0eb8293babc3d40e513b6fb6792ecbc27a9\n988699a16917514e37f41ab5c24f4835ed8a2ca85d99972646fcc47c7e2a83c2816011144a8968a119657c4cda78d517\n920c43fdcb738239ad542cb6504ab34498bce892311c781971d7db4dec70e288676de4d8697024b108cfa8757fa74035\naaa106329aac882e8d46b523f126a86d3cee2d888035ce65c0be4eaae3e92fd862f6ac2da458a835539cccafaba9e626\n96e4c1562d14b7556f3d3e8a1b34ea4addc5a8170e1df541dc344728bcb74cd1630eb7ba4c70e9c68fd23c5c5d5a729b\na616ac5016d4e68e03074273cd3df9693ee0ce3458e8758b117a5c1bc6306dd2c7fad96b1bb37219c57ac62c78ad7a3e\n8db7d9b20abfb1445babd484ae9e38ff9153ac8492230d7591e14e3fca7388a5ca6ef7d92ed445c8943cf5263e4a6ad7\n88464134221aa7134878eb10928f31c8bd752ab68c27c9061c1de3f145c85731a4b76acdc7e939b399b6e497f9e6c136\na5f7c794f70b7c191c835dded21d442b6514bab5e4d19b56f630b6a2f1a84a1d69102d7a0dcca256aab5882d3f30f3ca\nb96b6f98b6817b5fa6b1b1044e2411bdf08bf3ffaa9f38915d59e1d2b9bed8b3d645eee322ee611102ce308be19dbc15\n92c26ade2e57257f498ac4ff0672d60b7ea26dad3eb39ed9a265162ccd205c36b882dba3689758c675f29e20836b62d9\n8379a0299e75774930577071d258e89e471951642b98e5e664c148af584d80df4caa4bd370174dae258848c306f44be5\na0e53beda02bd82bf3d24bd1b65b656238128e734b6c7a65e3e45d3658d934f909c86ca4c3f2d19e0ac3c7aae58b342e\n8ca5ceaeaf139188afd48f9bf034d8baf77bbf9669791c7e56ebf783394d7fcdf2a25fa4bdfcddfde649aa0dc67ccccd\na8060e6448844e9db4e9fb4da1c04bcf88fda4542def5d223f62c161490cf1408a85b7c484341929c0f9ce2a1d63e84b\naf6e1a5ecf50b754bb9eb2723096c9e9a8e82c29e9dcaa8856ab70074430534c5395534e1c0ed9ce98f4b84d4082fa67\n81c8dbbef98f1b561e531683d5ae0f9b27b7f45dc6b2f6d61119ca0d559bf4ceb676d320afc5aba1811eeef7547a59d8\n85b46cd64d605c7090a2faf1a2aadf22403b3692b3de1d83e38b2de0108d90ac56be35b0dca92c7a41c4b179a3567268\n8dd3cc3062ddbe17fd962c2452c2968c73739608f007ad81fa1788931c0e0dda65032f344a12249d743852eb1a6d52a9\n8630f1707aea9c90937b915f1f3d9d7ba6bda6d7fdef7a40877a40c1ee52471fd888f84c2b2c30b125451b2834f90d3b\nb4a747e0bd4e1e0357861184dacec6714b2b7e4ee52fa227724369334cf54861d2f61724a4666dae249aa967d8e3972f\na72de682e6f9490b808d58f34a0d67f25db393c6941f9342a375de9ca560e4c5825c83797d7df6ed812b71a25e582fff\n8d5ea7d5c01f1f41fffe282a334262cc4c31b5dcf31f42cc31d6c8e37c9bd2f1620a45519dab71e108fe21211c275b6c\n8ccdc7e3642c2894acbf9367f3e99c85963cea46dc5473d175339a2391be57dd8815feacadec766e13645971213b9eb8\n858e9b5fc8c13b651ff8eb92324bdda281db4cf39f7e7bd0472908b3e50b761fa06687f3d46f4047643029dc3e0ceeaa\nae20d36c70cd754128c07cbc18dcb8d58b17d7e83416e84964b71ccff9701f63d93b2b44ec3fddc13bbe42ebdd66221e\n860dbf7013da7709e24b491de198cb2fa2ffd49a392a7714ad2ab69a656ca23f6eafa90d6fdc2aa04a70f2c056af2703\n8f809e5119429840cb464ed0a1428762ba5e177a16c92581679d7a63f59e510fdc651c6cc84d11e3f663834fcafeafdd\n8d8a8dce82c3c8ea7d1cb771865c618d1e3da2348e5d216c4cbbd0ac541107e19b8f8c826220ca631d6f0a329215a8d6\n86e3115c895ae965b819e9161511540445e887815502562930cedc040b162ecb1e8bdc1b6705f74d52bf3e927bc6b057\nb9833b81a14115865ca48c9c6a3855f985228e04cbc285f59bf163dca5e966d69579ea4dba530b1e53f20bd4dccdc919\na71f5801838a6dbb162aa6f0be7beea56fadac1a4bcd8113a0a74ab14fc470a03775908c76822d64eb52a79b35530c05\na77ab73ae94b6d3378884f57eee400eff4a2969aa26e76281f577a61257347de704794761ea1465dd22a6cc6304fbc4a\nacd1c5df3c487c04cf27f002e81f2348a0119349b3691012526a7b0d3bf911cdd3accbc9883112ed2ba852145e57fe68\n8a28515a48832ac9eaf8a3fb3ad0829c46c944b4cb28acbcdbca1d0d4c3c623a36cda53a29291b8f2e0ea8ee056b1dee\n846bafca11a7f45b674237359b2966b7bf5161916a18cf69f3ec42c855792d967d3bf3f3799b72d008766206bb7a1aa3\nb24b341675b1db9a72c3405bbe4a95ccdfd18fa96f876ec946ccb5108f73e8816019998218a036b005ef9a458e75aeb3\nb99c267b4a09193f3448bc8c323e91ef5b97e23aeff227033fe5f00e19bab5583f6e5fcb472ec84f12b13a54d5c0e286\na088aa478dbe45973b04ecafbcbd7ee85c9a77f594046545cdb83697a0c2b01b22b1af0b97dd75d387bb889e17f17aa7\na0c6b0cdff2d69964134a014e36c3709d9e63f6463c5cd7b01b6f0be673731b202d577539d89dd57a888326da1df95af\nb4e6dc4ef11b2b41794ece70a8968e56705199d183366759568b6fa845d2cae127486e926b5b27ae9118bb21d1682c1d\na007804353f174098f02540a57e96227232444d5ae0a24232c244647148b6c049848cbd2b50d0a25af3ca9164bfff8ee\n873fb034cc39c9cee553ece908fbf315f62efbc412b9afdde6a1889326b7f6f813e050b0601ba9921688e958cb75942e\nb5676c90f0106c40d8683299e59d564f505ec990230cb076caef3ae33f2021e6aa5c9b27bb8fead05fc076df034c28f5\nb5a67fc4c5539ad1ddf946a063110f824f7f08d2e4d30762c9d437748c96c9147a88efc22260573803ab545c18b108f2\n817ff2b748a949973a91b69b0ec38efbd945aeb26a176d19f0fb76e261c7526c759e6f5516f9ed34de6eb1ac7838c9cb\n99b76bda3526a5d841e059010fdb14eb2fa035a7d10463373a062a98c3c1a123e2da0848421dd7546d776438fd05e304\naa0d363270f90d56bbee7ea577b0c358532bda36d9247af6c57d000044a97ba41e35bb0db438f4c94551c6350e4e0674\nacdae205d05f54b9544be96c9032350511895ccf413dbbc56d1f03053185df22a6d5b7ffcc3fbe96c3e2ce898ccfa73e\nb091c220a1de18d384f50dd071dca4648ca4e708162c52a60e2cedc0188e77c54639f75bce9a468a64b2549119c07ded\n878676133e5c700b1d4844564fa92a9930badb5293d882aa25ee6721a9f2cfab02088c31d62cf1342ae3edaea99a1ea0\n9756d0793e6aba3b4dff48100bb49a5ec08ec733f966cb438379b91caf52fc2a5930830ec3f49aa15a02c82c1914dc7a\n9722f760184d3b2d67cb2cea7fa41b1ff920a63446006bd98c6347c03d224d2d8328fa20ccd057690093d284b9a80360\nb5a68489de4f253715a67f0879437bfe8f4dfc4e655ca344848980e6153b1d728acde028bb66fd626fa72eedd46ff683\na8cfc900b34835d9fd3add08044636f69614eff9ae929eac616c39bd760fd275ee89bf24b0f275dd77a66e54fd6b94e5\n89967479bebf70b2893cad993bf7236a9efe4042d4408022fdbb47788fabedcec27d3bba99db778fcde41e43887e45af\n889235938fcec60275c2cf0f19d73a44d03877d817b60bb26f4cbce09db0afae86d42d6847b21f07b650af9b9381fa82\nb7fc321fa94557d8fbdd9fff55ab5c8788764614c1300d5ef1024290b2dbb9216bce15cb125da541f47b411a2e7e3c2d\nb11b0c4dc9477176b3cda6b17858dbd8c35a933ed31364801093f310af082cb5a61700f36851e94835c5d4625bf89e32\n9874e54d2939ee0600f4194f183877c30da26d7515e9e268fea8d24a675dd2945d1565d9016b62b1baab875ac892f4d2\n90df3a77280d6f1fa25a986309bba9d5b89c3cf13656c933069bc78e6c314058716b62eacfa7ab4aff43518b8b815698\n962b08299a287d77f28d3609f39fd31bc0069f7d478de17539e61fcc517045050644b0307c917208b300ce5d32affcca\nb30eedca41afb6f083442aaa00f2e4d5dc0fda58e66aaf0f44e93d4af5c4bf8ea22afec888cacbf3fae26d88e8d344cc\n847747a22fab3fe3c8cd67f3f1d54440f0b34ce7b513225dc8eb4fa789d7d9f3577631c0890a3d251e782a78418fecfa\n8d1ef3cb5836e4039b34ee4e1b4820128eb1e8540e350309e4b8fea80f3ae803d1f25f4b9c115482b324adf7c8178bc7\n8f8a2b0b0f24f09920b58c76f7d99ec2eb2e780b5a66f2f30a9ed267dcaea0ec63b472282076c7bf8548211376c72f6e\n831ee6dc8889bbf4d345eaeb2f425959c112d2190764abbbe33bc44e1d9698af87ff5a54d01fac00cfee5878dee7c0f6\na7eb2479ac80d0ee23f2648fd46c5e819ad3a1f4752b613607ae712961b300e37f98704880ac0a75f700f87d67853c7a\naa4d1b9cec62db549833000d51e83b930db21af1d37c250fdc15d97bc98de7a5af60dbf7268c8ec9c194d5d5ccda3c1d\n87396fd7e78c4bcf270369c23bc533b7fb363ca50d67262937dab40c7f15bd8448a8ba42e93cf35fb8b22af76740d5e1\na958b2a9ffccbca13c0c408f41afcfc14d3c7a4d30ea496ce786927399baaf3514ff70970ef4b2a72740105b8a304509\na5963a9dd3fe5507e3453b3b8ed4b593a4d2ced75293aee21bfed7280283348d9e08bf8244c1fce459aa2470211d41ea\n8b06ddc3359827558b2bb57caf78b3e5a319504f8047735fcc8ec0becf099c0104a60d4d86773e7b841eb5b6b3c0cc03\n9437e7278283f6d4d1a53d976c3c2c85c5fe9b5aec7e29d54a5423e425b4be15400ed314f72e22e7c44ee4bacf0e681c\nb56067ee26a485ed532c16ec622bb09135a36c29b0451949aa36fee0b0954d4bf012e30d7e3fc56e9f153616b19349bc\na5c72f7f5d9f5b35e789830a064a59c10175093a0ce17654da7048827d0b9709b443a947346b0e5d96b5ea89b8d7c575\na8318d01182d4c9af2847a29a6b947feef5795fc12e487a30001cc1ec482b48450c77af4837edfa1aedf69f0642c7e5e\n82ea421c091552d3dafa7da161420cb5601b819e861dd2ba1a788c3d1b5e8fa75cc3f2b0db125dde8742eb45b335efa2\n8679fd1c7771ea3b12006d4a972f4f2892e61f108107d4586f58ee7f2533d95d89b9695d369cdace665f19c6bc3bc85e\nb5ab3e8adee4c950fce4d33a0e2f85d3d886e60a6e2f4454b57bc68725f0cf246372d863167482cce1ea10a7c67c3af2\na85696927075ec188979180326c689016a0dc7a2f14ae02ea27c39ef91418cd44177d3fca5752cf6b298fd75fa012e26\na44f87b7232f102cd092f86c952a88afb635484a984da90a41a57a3d883c9469064bf105b9026024090486b6c6baa939\n866ac91a437db945bbfdc11fcee583f3669fa0a78a7cecf50fbfa6ed1026d63ad6125deba8291452bf0c04f2a50e5981\nb780d5a1e278fd4eef6139982e093ceafea16cb71d930768dea07c9689369ff589d0c7f47d5821d75fe93b28c5f41575\nb025d0046e643506e66642c2c6a5397a8117bbfe086cee4175ff8b7120e4f1e6794e1e3f6ec11390993cca26d207ae43\na04a22b6e28c959ab265c7f48cde42bb6a00832c6beb2595b5df2879080a9424890960417d7d7ceb013d697d0ebf7267\n81de9c656ac27f54d60d0252e33aff4e9e9e9c3363a50740baf15a2b9061f730a51ae1704e8c4a626153cf66d47f19b1\na15fab90599df889df11fa60c752948b68fba54005491180dafb66c5775547976d0eef33945e55d4818653e0818c6f92\nb06f9be44ddb103a72fa4ebc242c8ee1975fe9bf9ef7124afeda9967ff3db644dbf31440151b824869406851a90984a2\n99abdfe6806ae5efa2d11577da17bd874d847c5f810460148bc045bcf38c4fd564917eacb6ed61bb9164ed58055cd684\nac53231077f83f0ae5f25e52b70bb6105d561c0ba178040c11c3df8450c508ed5df34f067fdaacf716f90b4926f36df5\n99e3f509af44fc8d4ebc693d3682db45fd282971659f142c1b9c61592573a008fc00502c6af296c59c2e3e43ed31ec7a\n98f2f5819670aff9a344e1c401f9faf5db83f5c0953d3244cfa760762560e1c3a3c7692bb7107ea6eaf5247ac6fd7cc8\nb5b9f90391cec935db8d2b142571650fcbb6f6eb65b89c9329e84b10bfa1c656026674d70280ade4ba87eeaf9333714d\nb0696b77ca8a0cdbe86cad12f358880926906fb50e14f55b1afc1e08478ae6376215cbb79bc9035de2808c7cd2b13b85\na51d746833062a65fd458a48a390631d5d59e98e2230b80d8f852cfc57d77f05eefcfd3c395ade1e86d4a39c2141365c\n812d67654319f4ef3c9e4a2d4f027a4cb7768f1ea3f5fdde8d1b79187a4b874ff9a5c70f15b7efa079c2dc69d1b9b1fe\n968978b653c6416bf810f6c2ffa3d1abbefbd06f66b6686e9a4fdce3f869e0ab1e43cce14dc83786596761c100ae17e1\n98e1e6ab562ca7743783b802faeb0a24f1341abfb9655f106920aef08964a3c0e8083e1acda7ae28fed7cdd5478decb6\na91c0b982a0a7085a103600edf99e9d0bee4c4e7db6d9f8f376c215c7d42476218462a3765f2928e12c3dd49d688e4fd\n8a43395b3124fab9e2438635bf88952e8e3084dad7ecb3a9927f9af0e0887bce4707084043671fc98ad03621e40a149e\nb0b37626143d4a8c6f5693d5f1fe871525b4dd946c4239cde032b91f60a4d7a930d7ba28959737550d71c4a870a3a3be\nb01c74acae1715c19df08d5f4a10e0c19d1356264eb17938d97127bf57e09ced05ba30d0fc1a9f32d6cff8b0d5f91c9a\nb4c2328eb8a5a673406faed8f0aebb8540d2791646e37ce46e0e382506570ca276eb6f8e166dbbf9e0a84064873473b9\n85cb9f769a185e3538e4a4beda9a008694e1bf8dfeea9dc07c5c40a9ceb1d31fcb13cacfaa52849ba1894b5027cb8c30\n8742f91cddc9a115ddc73982f980f750d82d3760f2d46ee4490d5b17c6c3bb57c7d4c7b8d6311b7b41e59464c009b6a5\n948ef86d17128a061e1bdd3ea7fcc7348e3ec87ec35dc20a58dd757d5d18037fe5e052bb359e27ab4c2320d9a52a6a0b\na70f6a214097c271e0d2d95e30fce72d38c30a2f186271fdff0e38e005aff5baed53739b8c4f9501aa7f529c5cb2da59\n892a7574cf6704ad75b346c95ae6f2668904f1218c35b89b07a0c2dbf3c62173c348f6fd9473926eef56a37c0f635c04\n837e85a41f39b4ded1420aa8fc3be46a7adb99305e0928c6d7643b7c44434b72984cea08eb68f5f803661df0db78c87d\n94e495329f2aab3eeb68f347961d1006e69d990095877a4dcc376546233adf29a14bf6b16a0c39aa477e15368e87014c\n851860a8fdf76a97048396553262637dade27f1f63f926997e74c7c72b14b10293eae7824e8dedffad1aead57c124f79\n90481017a250972055ab1cf45ff17d2469517f10f18c9d4ef79a9bdc97a49093289bbacfefa8a1e491bbb75388b34ac0\n983db15f7463df28091c691608ca9c51095530fa6b1b7b5b099c612e673d29e16787cc9ae1c64370ba6560582ce623c0\na477dab41014c778a1b78a7ce5936b7b842124509424e3bfc02cc58878c841c45f9e04ccc58b4f2ff8231488fff0b627\n868ebba1c85d1f2a3bf34c0ab18721ea725378b24f6b6785637ee4019e65d4850e051c8408fe94a995cc918c7b193089\n93cbf4238a37ccd4c8654f01a96af809a7d5b81b9e1eab04be2f861d9d2470996fb67367e5bf9dcd602dc11a3e4cf185\n83113f4e696030cca9fdc2efc96ba179cf26887c677f76cde13820940ad6891cb106bb5b436d6b0f8867f2fd03933f7d\n90c709f4e3359a6d215d03f45ad5cf8067aedd4aab03512dd62229696485a41dcd64e2acce327fda390e0352152fce13\n9945cfced107a36f3cf028ba04c653360afc5013858b9a12fac48802efcbc198c9baf3a7f9b23dfdd5036e88bc7274c8\n832ae60192b47fc735a8ddeaf68314b16256c90ab68099f58e43073e249c6939895c544a02fa34e40805bc6b5db33461\n8b12c335818b643c1d22cbc2869606cf64e7ae54a7713617fc4dd3b2f052ebd6b920ca59ba2e9c7aa8cf71bb4f40f9e8\na2033eb7a373931c65d66989644aa0892ac3778b9a811b2f413d8bf534e282c339717979f9aa742162abb3468c195f87\naba2b4c37dea36bed6d39323e5f628ab607699c66767f9bf24ef5df1bfcad00c2664123c0d8d5bd782f1e14a06f4c769\nb71963777535b4d407286d08f6f55da8f50418486392a0018ee10f9ae007a377b8b8336f33386b0eb01c45695c3ed2da\n88dc87826941340913b564a4f9b74985a311371c8e7b47881235d81c081f1682bef313c2f86561a038757fb7d6a1a8dc\n869e13e3fcf91396750150f9dc9307460494c1d365f57893fd06fb8acf87ac7dddc24e4320d9cad0414119013ea739b8\n92194e292303d32b91ae9cecb8d6367c8799c2d928b2e2846dab1b901371a4e522fc4089aad8f4ee676f0614ff8b19d7\naa589a3e512cb4f8589bc61e826a06d9f9cb9fdfd57cf5c8a5a63841435b0548e30a424ca3d9ef52bf82cc83c6cb1134\n81802e0194bc351b9a5e7a0a47911d3a0a331b280cf1936c6cf86b839d3a4ab64e800a3fe80ea6c72c3751356005a38b\n88e5e9e3c802314ddd21cb86f2014948b7618502a70321c1caf72401654e361aac6990a674239afa1f46698545614c93\nabac1e0f85d5c3ff6d54ed94930c81716d0ac92be49e3d393bed858833f4796c2b80bf7c943e7110de7b2d148463bfbf\nb7eb416004febd574aef281745464f93ef835fd65b77d460b6ad5d5a85a24b536b4dec800cfe80ae98489e54447e8bb6\nb3fd8ed1c30e7c15b0bc0baf0d9d1ecad266bafb281cd4e37c55edc76c202fb1e4ea315a91a2848f40f481793ae35058\n86ef674ddf4b7d303c68bbfb53db00b925ccbf11d7d775ca09e458f4ecd868ca828103e8e7cd9d99672a193e81b83923\n95ef414e9f7e93f0aaaeb63cd84eb37fc059eb8b6eced2f01b24835b043b1afb3458069c45218da790c44de7246860c9\n93ec8f84c20b7752bfc84bb88c11d5f76456136377272b9ac95d46c34fce6dcfc54c0e4f45186dd8df6e2f924f7726ab\n95df5f3f677c03a238a76582d7cb22ed998b9f89aecf701475467616335c18e435283764fb733fb7099810fec35932ae\n8cda640695c6bc1497d19b9edc5ff4ea94c1c135d86f573d744358758f6066c1458901f9367190dcd24432ae41684cf0\nb19aedf5569435ff62019d71baa5e0a970c6d95fe4758081604f16b8e6120e6b557209cdea0ccd2efec6ff9e902d6ce6\nb3041f21f07d52e6bd723068df610aa894dfdde88094897593e50c5694c23025e412ef87a9d16cadd1adbb1c6e89ced4\na7f8d6ab0a7beb4f8d1cfef6960ebdaa364239eca949b535607dee5caeff8e5dfc2a9cfb880cc4466780c696cff2c3a6\n99a565b4796e2b990bfcb234772d93c5ffdbe10453b5aa94662272009a606ba6ea30cc0c3c26aa22982c1e90738418a5\n90c54b55ff19157c1e679d8d4f7f0687a70a27d88f123179a973c62565adfcc9347cfe31f54539038cf2f34556c86870\n8612f34bcd018d742202d77d7ce26cf9bc4e0d78e50ddf75250b9944583b2c6648f992b635ea13fdaae119764e7c28d5\na04fb38e5529bf9c76ec2b5e3a1ef3c6f9effb6246c7f67301cfed707356ba1bf774f2867c77a5805933f0c8ad0ec644\nb4800e7b503da0164885d253135c3b989690794d145182572181995e6fa1989f3d0324993e871bbd5f48fadd869d8a18\n9981cd4f28ae7b7dadf454fb3aec29746dc2e0ca3bd371b2a57cd2135a7d93559e02132528ccd2d305b639d7ac51613d\na3ceec012dd1fbad3ef9f9f1d6fe7618e13d4d59e3f50540d2a57010d651092979c75442ec8b38a1ab678505e30b710d\n8b97b8654d067fb4319a6e4ee439fb8de0f22fd9db5569ba0935a02235cb4edd40a4740836c303ec2394c59a0b96308b\nb3d1bf4410fec669a269622c3ce63282c9ac864620d7b46c9dfcec52d8e79b90c4c90a69c32763136a7f2d148493524e\n93174eba1e03f879e44921084aa0ee3562e48c2be49085de96ed7621c768ff52324d14c8cc81f17d7ed50c38ffb2c964\naa2194cd0fb7aec3dac9a1bd8ea08be785926ed6812538be6d3c54218ea4b563646af1f5c5f95cb914f37edfae55137d\n93f2c0dd59364f6061d3da189e04d6c64389a3563b062e8f969a982cd68cc55b4f38b21546c8a67c8df466ff4f61f9c5\naa7dd497cc949c10209c7010ba4ce8a1efd3cd806a849971e3e01716ea06a62e9d5e122ad1d2b8e5a535fae0a01a7761\nad402424b2a32bca775a66aa087580d7a81f0867f293f1c35580b9e87ccc5a2bab00c29a50fd0d7bd711085ae2248965\n96237843d8e29ac77fc6ebf4acc12946ad11697de8e5f152fe5776f2475b790226a7d156ac48968dd68b89512dc55943\na45c25cdbb9fc327cc49a1666988af9ab4c5f79cea751437d576793a01c3eeea4c962c05c0947852fe0e4c63e1c84771\n93dcf834a614a6f5484cc4ba059e733ab5dcc54253229df65ff5ad57b447353ebbc930736a4c96322e264e65736948dc\nb9a94f82a82c0c5a26f2c1d5381afec3645e8ee04c947dc3b7ad59a73018db1e9965ab3642f2bbf60f32c430b074fb22\n94eab29b3524ccbe0c4b928e5fa5dd8f684074b332fcf301c634d11083653ffee4f7e92ddbcb87ed038024954ad1747b\nb8dca5f679931d6abef0674bad0639aefad64c2b80572d646aaab17adf5ca1ab2ebeecd5a526cadc230bec92ed933fc2\n944d394958e539251b475c4304f103a09f62448b7d8a8eaef2f58e7de4f6e2e657d58d5b38e8513474115f323f6ec601\n8a5ae1f13d433962d05df79d049b28e63fe72688fc3e6660aa28e0876a860c3dbc5fc889d79f5c4dec4b3a34cdf89277\nafa5278724998eced338bb5932ecf1043d2be5dd93f4d231d05d2ea05b4455f2ffdc0eadcb335dcace96dd8b2b4926fb\nb91153a2f4647ae82fc4ee7396d2ca23270ec7f8884ce9eead7e9376270678edd42dd3d4d6c003dfc2dde9fd88cc6e7c\nadc932f1c679bf7889cb1ff4a2d2897d7973483fa283979a0ea3640c80ed106ea0934c1961dd42d74b22504be49851f2\na82e90761fae684d1415cee0649bb031bcb325ae0b28f128ab8e3650bccedd302a70de1a341ca8decfdda76f3349cad0\n8ae353188b4b98835f4ef0333cccb9e29e1ac3ec11d554bc96f5880c101cb3c84b8eefe72f2287b0812735339fe66cfa\nb8b41135bb1a1ffb64afbd83e2189e755f2c350e1273cf47c38ae9b8c4800d831436a69458b8ef9fa8b95a148d8ec9fd\n96f75a04d8752fa93dc1eaf85ad333cff4eeec902a345576139e16de3a88eeb71b6726224349bb9844065cc454d959e9\nab82b05e3923ad4c26f5727c60dc0d23063c03f5a4fd8077da66aa87042cad1bd99586d4ab35aa5e4ce6f4da6fecf3c1\na50c83db91c26ef7bf1720d8815b41bd056b49fd99710943679a162ccf46097a7a24585750ece886e38eb4fdb866fa37\na719f667914a84f62350dcc6f4f30b9ab428eac6837b70318c3ac491c1e69d48af5e1656c021818f377d911fe947c113\na148807aafddfa0a5624c7cb9e42468219e4bdb9994ec36bc19b6e6d7c4a54d3a0763d13ca80624af48bbd96d73afca5\naa012f205daf22a03e9fb13a63783dda7666f788a237232598d02a4d4becec7a699ab493f78d722ce68519262924c708\n97fc15fab5952c5a2d698fd6f7ad48aff1c8aa589f7d3b14285fea5e858c471cf72f09a892e814104fa2b27eb9771e73\n8da8840236812667c4c51c8fc8ab96d20dae8e2025290b9cde0147570a03384370b0fcbe20339c6aff09cca5d63e726f\nb477d85359a8e423fed73409f61417a806cb89c9a401967622aba32bf85b569e82bca1b3394c79e180114a0d60b97316\nb3d6ee2ed1e4c5cf8ba2c3a4f329832e41c7fdcbcda8a3fcbe8f60967fdb1717665610b7c1ac65582534d269d762aa09\na0b3b30b1b830b8331ee19f96b4a4321a6b93a3395b95d3a895682c65ec6ea64774b878b93514eaf353f2e4be28617b8\na2b88e9617f4d30ef4e686d1932ad43cd555fadcb5102e51bea19e6fca649284ccf4debb37b5cb2090ef386fa5bf5327\n8a4446f7e8463ea977a68d6217a9046ad4356d6fc1c18d46c5d2ab681ea977b8faff136d65abea6bbf8936369cb33117\n91e7464bc56e03f436228104939ddd50caace5a38f68817bb2991e193b57adf6835152bbf3dbcdebf0382ac9823f60c9\n961a441e6cdf8106c4f45e5b47190d35644faec701c9cfc41ced40cfdd1fa83752fd56c1ac49131a47f1970a8f825904\n94b7b165cc71c2ae82976b8f03c035fb70e90028992b853aa902c0467b384c7bcf01d56166bec5def4453e4d0c907e52\na5d32cffabbf547f900026b34ef46f08075b7a244565f615370d2f04edf50b094c95088a4a139ce07caf55bcd99afa07\nb4e06e73660745f75ab2f34d9f6d2675b58f80f911ab6dd4c5a6ce1095f9a2b50d86f6ff9a05394190bdf96af0827920\nad3fd8f83c0103b29d41319209dffca201d2b98094362da08da3fd6ff0ba96796b49d6bed525c9adb96c2954858e7f48\nb0c27430695f0fd20ae31e1ec621da090094f2203e17411db9384695ffcf5c7c6badf461ba49ba70164aacebd6f278ee\nb9bc6e972fc3b532fd2b1eeafc4bceb77604885f32132af6a9a842fa2440df452f49ec0cd9d86da1180e8deb0723b260\n9729e22d6104b0174c136a854920f542b384d375040adcebe36acc253bdb55845eb43e34dc5a7cc27d22c417973c24d0\na8b420b36d48786c9231d454468a6e855dd7f71dcfd095efc9855ee70dbece0f06ad277f7829c5813fc30524c3e40308\n8757dff5499668c93fc5d9cea0a8db61817b8ed407200d623030b5849a913d12f8371b667cfde8d8082026eda7407e8c\nb859ad747ca5af661fbd03a1a282df6e84c224ecea645bc2d4ba5e35fa06cbf047387319fca0cbc76b712398c0798968\n8e3173c27875f1460297af0fa736c945dc842ec3e476a973d3d5f790bf183ad3ffe96ac13868c5101d8e299890791864\na9d725e2b92c878be42b5eecc2c3081c63c7231ccc7e2dee17ca6a4caaeae22788fab1f1465fcbd7fc236613fc2bae4c\n86f6c4f04a354cb2470ef91914816fd740f8d5795ce7ff981f55a2634695fde5951bbae7a4bbc4c63747040f8644170a\n851773cb26f320f0c3f252d95ea7e058ffcc795dd0dc35e459aa1b6b448238909230d809e82022e64b7fca5d40b8324c\n8962641e0306220d9892fe2d452caa286301a3c465185757be7bce2d9b2c9beb3040280099606cc86773e43941fd3439\n8beb6e08c440b0de5fb85251d39d9e72db4e556a2dfe3dae59efd8b359d08492064cebd8d8993254b43bde8bd67d969a\na7e047894466ffe3dec4ab8d5462f2b1d8ac0df006b1d2dd26caf499ea857d93a811cf42233f9e948c9cb903beec004c\n92eedd95557a91691a5e2835170390ce2401e223da43b78615a804c49566f9d31cbb7f10c8a8390c4bdcf691544fdba9\na5e5b5d8fa65824e958bbae98d146b4b332f97ed50e0bc2c58851dc2c174ab71bcbb1ae015cd2955c26b368487dd862f\n853a494eafb308175629d581ed04bed71bbc3af9ca4c0dc483d03d27c993a2bbd88cea47c2085a6928d166fe6938fb77\n83f06b88d29afbfbe8f61811690322ac4fdd6abb9a23612162e7a2dd6bcbb5f14cee298ebebc1a382484f7346dc51e60\n8c9cf05735ea5a0e563490bdc7ed29a4426643711c651e35c8551ca6f855c8458ae8f0933a022d0bb9a952edfed411f6\nb906b48d807748a26cc2a8848455a76ce502261afe31f61777b71917bdf7de2fece419db636439478c7582058f626c29\n97efe1fa7c9b25d8bea79d74b6cdcf88f63f1e865f54b58512a2e60428630b0b40b8b6af1b5f71df47520507548c3cad\n8ef5ca6e753818906bb3fc71405928d8e4108854ef0ef01c1009071b353bc2852e771fcb619d5fea45590e8f61003d7f\n8e4d901661e2913740d70ba4d0745df5e8c9c0a260149d9362beadc7e669630ba909ff0e8a6cc85c54d6b7435d0d351e\nb7c6ba3bebbd9592967954e3a480ee8df1d9f5965f04e7d78a5415b645128deae7ddaf6ed507c8877bfca91ce078e529\n840bedb0ad4e25acf6cd25dee4f98fea495b2312dc5cb7a8388c5ab00b2acb9cd25da08e9fbead145a3107972b1ccd5d\na8d4578dbafdb27f3911af59962d89e75dea74db55346720357790da677312c203107d9c7911535aa563446fde7d4c47\n86d3b77f231bfa09251b7fd2ce09c27ac520ec35d783e912476f9a4863f83d269eb175790d6e735da9260293d707f8ee\nb34909f1cc033232652da0c34051a769dc76adb1aee00674a59dc1b860f6e610974c3b4bb69a69ccc73e01f042431242\n90799854d0cf34e1d91ff8e101bc7c5007423d34d2f3bd9adea2ecac57e83f3a65a506bb93d4caea49b29f6d18149957\n8ef94cde29b037e19a1ce7bf4418ad3c95cd9457412796ea385750c19a6690f13a3bb5bb6a9ee81e7a40face1e0a8bca\n97053d21ae8d75972fb37f6fe516c38c32ab162fb56b9f510f954858f4e3ef6ac8c3a9557ed3f41b7b6aef05fe97f931\n90a9f9f0f40991f3bddc58b92d40382147db22cce50d092d4a05aad251b46b94e71ec9f7107a180243288059fcc5ce29\na14265b1344ac2921b0f890d13bcfc432e4f648ce403e261fce4d3bb32ffee9e2794c02830346054f998e82784c77040\n91928402ae121e56a3e64cd6f390127e6e92fbfb1967ec6efa4f52f3e8058f1f41a0f4fe96b5bcc11641c1139e790b2b\n921c8c92b6d40da6c5a7b592acc74fc0f577d93767b9aa4a1cd302a72dbf503a1ea5b2c29fa0d0359bff3b8f252246d1\n93ae0ebe0e8e133fd80cf67a499047e30ec4c4660ccec9d49098717ef57721a030f423e00c5e74af4ff4acf014a10497\n82c865e21905aebfe0496af1c6ac7e342b5f446a9edb4f7da0f2fb0340abfd8e6fc545da874459d9aabe6bce0dd9bfcb\naee3961d8d2687c0f134b9c28b920bdc4021d925fbe14323c84224a9fe161248789249fb85436a5891d0bbff42c2a3e9\n91aee420b98b6949482b8ff4be996b97245b4e8f583a6e085226539074f42aa89818395efd1a6699735a569bfe19d623\na48eec22c192e495b01722d0016a54acc45ff837e2a95c4294ce81d5a4e43e0053a6f0ead8a4fb3ddd35faf6607275b0\na26e15937c11faa30ffa64817f035e294cab0e839f73d29de8a244ad039be4e221eb47ea08d9a4658b0152fc3caf6110\nb84450f948aa7c8682fccb9cae84d8e3558adf2d0ca5fb81eb200415291158720f8f3470542ab5b88c6873ad08e7fa9a\na8e8ec27d0608d020169a85d6ecdb40eb402f006a3b97afe32cc01987721b3a68a92ec693aeb4d357e189e05fadf699e\nac87cd535ef5699312cc26f86adb71baa0be42e858bd5a2d94ac05737dac63430691e29b9a30d2559ad581a172519b2c\na4481e67b524f8cddf2046625efd3d75efee6aab87ddd2c1b22835647e918157e5e924ac760db2195c86d326f3db1615\n891f29ded231486ee826840c8895cb325f7e84a5a6d2eac246cb3573612cde274720233b1978318a57ed337a046330a6\n906b6e750e6178289012769807d2598925d7e51c260c14497d8af978b1695990e3352e6e809a752f376597a68083870c\nb7a056898ee1e46f7f29702fb39232f678ec173eccd170303b3b0a30c8d8cf1a5321384e3513e3b03bb742c238deaa54\n8f2f035fd96c3a336354c89ec9b8222803bf42e95fb2412c28d4e75eec99c1d4d402501ccae17357b757db8bdb0bfeab\n81228625ffcedf977fba9cfa13f6edead3985e2651d5974789c394a69401cd7face9e20ae6694be4c0d4bab5e99c61a8\n885a83eae25e61439ad809567a2ab148583402e01cfdd77b0e37ab4038935425c64b4e0886949bf06438c35e80aa13f4\n8926387f48752f6933899c48e038cf14e7941ec6a58bcc0a436614b396296a17aa53e6873803dd3041dae470bd493fcb\n95d0d3fa061f4d856eca78a569aa132db14cede7646f97e2aceb6da0c8ea53195d3b7a566fe5ec8c41b95ecdd89a1c6b\na3c817f4062ed6aa94064ea695d76c1825f3bf77b310fe1db28b8bedc9aaacbf1019dbd128adfd53042fb943d863a2b7\naf1208417aa584052da309169854149ede38a3ad63c76cad6e43afb6f1a7b854edf8310a0b00088c039259cedf0f859b\n8b713fc3196bad35dbf364089049ada5477e540d78d76a5f0a9df98f7ba4a0e65dd0644509c149f9b07887298bf74b04\n89c09c43c5b733c4a417cd9ebc0795cc3348b72778d31828a9171427779a82ef023c1a4fcfcdc919ae25056f9c826fde\na0759c850ed320c8c874435e90ace6edfb8e7b3f2a09d942b8ad8339c508044ee2ee26c70f1b626ec49a77971433b6a8\nb85cbc58d4fd52286e714ac4eaaa0b2743a1de06fa03ddf8f6668ec6f1d204acccce93b10620272afb8c0b49bc4b0a43\n814e0a87384e159892a8d23036985fa3f489c53bce192e107bd2d64f57b1bf5ea0acc1ef46c7a42bbc5cd0924d92b4a0\naa6821da96ad89d7881b878e141076522f104ea9a5bbdd1fce9f641898f7d6232c518a87a0f666871d7e3165c26081e4\na9041d714bfc067b5427252186fa3557bad598fc0067dc8521aa9bc1ae298f6e96113db5ac9f6bade9a85d5a950c9755\nb8669340f3064692625e1bf682d34fbe69a61689e3aa6d6a3e822c781d406b0300dba9c3f7b8152a8c2513f1310d4291\na78c53316ce768a1dc5968030bf4fc885f4029b1ddb6a5d84a61c85af686c73727f62823891edfcb6ccf4545de366cff\nad1d3aa29ea28292ddd438c865e2b5d93f32cdf009e6d5f5dc726de996583925727e6348bf1c28c22dec0bd86aaf867f\nae1447a2062e9e28af5f38aecc60fe150cd10c2edeaf2110034aa144f6235ed7fbce432a58805d4fe1f6b12652d6e1cd\na32146634332d3303934550705353c6d4fae5fa5985105bba35041e74cd71e2aad67b45da171221f6ed80f36bf6dffa3\na232e8286184196ea77427b53d8b52c44d758ecc42d22556529db3136379b4989dec61cff610cc6cf6700a450a847a94\n8a72c7255125a736da52dff5f77e44c3de29f88fc05f5ff9227c69df296930caaa11446595e6bea3bd946baac5ef957c\n9688a981a9457678067f629f8efa6b522e7318b529f88d37ef56c5bf8f1c34fb9bb3a918ab73caab82bf5abb0c03518b\n88286f3eabd71115fc3b17a6bf6981340a81cf7e5f96b0a1a016d4ec8c18fb486d46c70919123d0c189a6f5d6ff29a1e\nb535e701b40d793c02ac0d625ca91620d3f4a512aa9741f71389e58381008b2f93d597586d06213c4e103d67d0ddf6c5\n80d0c9dd941e8d8d3700cc51a434a5aaa3308cf8ebfd14128ccfd258f826b27cc3cf5c3ad7851340393abb1eeab3a157\n87049225fa2380d93f18d3d90cb0697a56b373b66d7f24ab209966aed8b55a2790194d5885399db29dd5b1f189eda64f\na52df158ce8670e0290551e8878d63dd33b4759d6f50e448e63fc7fe6ea99dddb6f180be5fc0fc3918ce54c05f80b356\n8b2a728b39c465fb0f60b0c486e5dc8d5845ccec03d3dd93b393cedeeb3fe1b44518359f1ed55fc770a8f74bfeb9923d\n91fc05419dba718fa4a910dcf256ebea356bbea00522d8d5ec3e7ba4271a26035aac15e8d9f707969df1d655d92dac55\n97c8779ae80c24c1f82d5a714762d6ee81069224e39515e41d8a71c9310dc5d1c55cc92bc5c6a4bd391ae4c321d1d4d2\nb5e5aedba378c4484e3a7a4ed41b75b0844f674261c2501497de6f91f7274b5a4c1be0e055f2e0c0cab843d891169fbf\n8a26212f27211b295beea500abc8e9d430a8500d3a350cc62f895d39e8b4668aa638c17633804ba353010000165637ae\n864a95118e5d394e00e99efebd505df0125525c9ebe165764c453b80ad3edc730feebde3d93850745dfd88a27bb8f20b\na092e0b78290e826cc1ae56afffdd08f7c10954f549a3ea6666f3db1b6cdaeb7df53db28dd2a92446342930fe60a27ce\na1720224c0626a081b6c637b2a6d37da85d9a82241e5efef3bc15699b02a69f6304e43d8ff3144d60c16e00225d6b39e\na7b3d098cebea9cf32e19c5195608182b6afe9d4af6b9df532c047eb7a941a971279b2ae6a4b80f2f9d9313a6d788ce3\na3d2451e6788944802c5077a778d7b7299dbb9d1612676bb6baae78f39976e0fd879493cc4a4d737b8174b472a456850\n930121b73da844571b1411d56760e80923a4ee09917b3e9cff4d3dcb0bc27026ff2c4e2c44e7aca7d3f8383f129c7f9b\nb4b0119d163ee00a2b74bdf188a5cdcf054daaa48c483b94bbb4d09ff615afb4a91347db6363bc7535e2af9054ec2214\na5846decee706780201095a8cdd48fbf3d3a2eac8d089a818e5e22c29457494bbfb4399323b067f3d2be2197c33dbd98\n96ba600df10ee7af5a9df29c0ca31dbed275d647faf9c66c7342de927ceb25b5bdd852dd7aae0228b27897f90fdd5d62\nb6ac51ddc98edd9fb9f54ef84bf372a041d58dfdf0dfdbdc4b08ddc1a7ba93ddbb1413dda3c1545a3fd7386c6b85975c\nb35f3efd91a0723e0d486188ea9675a3462106470455118392d7610470b623caca2fa33829721c05fbeb0fabcf570bfc\n87f49e85df5f8055714a8ce7adf37f6a278e64e76ed74c60abe3edfc3611ef5b0426d4c6da45e5f3b74d30be1dc6f539\n8ff8bb06902a71b1e9177a77367318b2e3e0a88f5d74d6907ca9943f4f9f1ceb5f297132c2a025259d17a67e880d1bad\n85eb6de6c70fe5c53ab0ab27aa0fec439f136c979c557d317337cafa6e6c5cb3169679c9169567dec5f6c72b3c057d83\nac18715ed1080771d760cb7066c6328faf65d9b30517903f8a5cad8d66d5c6381156b521107d7cd75ebb8c30e250706c\nb95b9eae4703727e4ac9ddf2ae675906487bb78905a5f9cba74a4cbfd118d96b7afb6ef3ed5edf14fd963b830d71338c\na3b47b52fda16b62b11c8aa4daa56b0b669c4d5c56a3059b7d063284d8a91f6fff9ccccab23d6ceb9650483b2d353039\n96a95b3f327df94c85e92f2e406f1649ac621533c256b062738f3c3ee137059a735a3e6072247acf57b1b0d8c219bd7f\nb19b33cc04570be94eae8e943d5bb17bb0c96e9de4ca84f9f41b37320a1a03d397d53747dc13275fef1b356de557214f\na1faa3dcb931dd91507f3f12a17c43f6627fa2bc5c71fbdd27548e091eaaaba262477949cd51290e81196bffb954a492\nb060a16079dca1d28a1fb33cbc26f368630ee042d980ce305230005d5b9ab533a7a695281ab76e9214458303932d8bbc\nb303783196a858fe45d67e0520c30576da605fd69964449c20009fbd5099cf1de52a32d326d7c3b864de07440195ef40\naa550a4c20d1003d137ffd8fbdc1196d09ad53cfa0e202302093a80fa3bbc4c9aff83f34f2151785cc1ce5f30255693b\na7f8585f45566a351058e10c6f1ff4a7ba24811f1482a47202f581525615ca770da93f2f58878788b45b92cb446ef4ec\n8206f63a9a5b59bd68e64a843e68fcdf706f4c13bbfcdfa9928298e5b9251006ae0bbd80c715aa3c9957d2c0148b5059\nac9490abe1241319658f1c2c645cfa01296f5d4106020c7894b7ba4a65cdd52f6c5401bd3b3cf1c9863e088cd8c9a16f\n85dd6d9c80a1b58c24c4d2cb7590d33d2454f381f58e820979948e5831972360cde67bbd56e1860077ef5192fcacb904\n8b0285944c676fe2519cb68da0973275fa29c0718d838d363ce46651b068d29f867cf9fe579ff8da0bb8b37d202bb23c\n95147275da658d43a758b203b9ca1f1c1478853e9bf77b5218593142e2bd9c0bf46d2206ab64cef99295de6e9a268edc\nb8efa187fdd3e1f46c15cd596e9567690c10e253b5beaa5be8074b6ea4e6d3d06e0f2b05323453239e419ae1e7128521\n8340464f52c92e31806fd3e8e65f56e27194d1f6daa4a0f0b3831e8102aba16f88bb5a621633ddb7dd0342e1d2d12343\n8615d87dcab85a78dc052f05a01e751176b756b5dc9985014347454ce5752f459dd6464e1c5aff36cb6c51b783fa2692\n80c6e35c0d3defbe4d3968792724a23f0b8830dd2fac58663583a49339ea20f1812cc4140e3ee867c7e716177319bbbe\na7aa63dbfc201dde8f29bb6e23d7aa5020dd35bd18a0cc93c8a10c35d695913fe25b9e8cf9b5fd1899e9657b22bc8863\n97c2a4ba80c4caba2e729a603d2faa0120915e3fe64cbb065f7ff33de5f877f1ec9461cf455e88ec9e9ded9393939dba\na54bd1419f0e2d2d87757870f37c476c7e3a13502f1ada82fd7394fd29f8a00c4986473d753034d0954a2550badbac0b\n8d3e2bf900d0d2b9b46e6e2f37620f0cc90526dbbcfaad4e4a37ed53f39fdd23bd3a6f21aa7e800eaec937d9710dd6e3\na88d2b1c7802b2dc216c2b6532406c091bfb12f29121b9a82c1154470e250188413ddd3e79f7e009ea987a4c45b332e5\n8c552c2101dfdc3f99c2da436115452e4d364eefe029b12946f05673c5ce1cfb48d39a579625849236dc6c8e7277dd30\n8415c252d52a26a6400c3189c928a98559bf24162ecf3eef1d10e439269c31d854b0b4f6ec7a2430e3f11b5d77de78d6\n8b38905bad93a8d42339dbdb5e510003c51fcaf05e04f88fd7083753353bc1c4c00a5dd4a67431cd4456d0669c7040e2\nb1d0ed8862250d0f0d9ef9dcf0cd16d84313d1a795dc0c08e0b150dadf9ce73d32d735e04632b289cafa69a6ee75dc89\n9434e18a5fb631b10edb02057f2d1fe16000ee55ada3c26a079c9fc3943e29d6de99e52829fe7b333e962270c712e51e\nb1b9f3914007e6fca8ad3e7e848a1108988cb2318da36df24767d804e95d1272943fda948451135cc1b5052a3953b081\n8c02947a76d7b6c0a700a83dfb971dc105bfe996e18c521445f036310914b349ab28e57571e36ae08d13a46fb01c2f43\n893472fbc225f973a0ac6a0a0130b9cfb7ab6869dff80df71a62b1f6beb4afd069bbf35b4f327165bc31dff39e4fcaa4\na7c176c0903175f3540d62f9afee994d5d9bf37081e094644b22f017e94c515afefde7bb07f638342abef7de657f8848\n860186c2b1d3b1e657729bc804275fb5f5ee89eaa60848fcabd3871289665ea9f0efc8a95792d884972bcfa2de96223b\n865b38aea6386d0ac8f501a7d934e23d01dc50105324e354d4c4fa3cb1d4c29c26f4566df7b1a728e10cfaa9d24552e6\nb4eea5548de6969dada658df604b5d9c49002e2258352838003e0fdf7b299d81fb025807a7f37cf5b547cebd7f2c1f93\n8982de11ba68d63a649a3b296d4d56c71e3c3eec016db250d733ab7c3b9a620c09c5a5d0b64fd30d3bc03037ca4b17c9\n84d8b8a10d67eda4716673167c360fc9b95717cf36ef1d5bc6f2ef5b9d2624f0e76c2a704d016adf03e775ea8e28d83a\n834d03ebd51aff4d777714783e750b84c16cb6627f8311bd8ff17c3b97fc4a5bba57d6c8f6d74f195d3030bcb5f07612\naaf49e0def0c4d5f2c1e9c17b51e931d2f754b19e80070954980b6c160178349f6d3c8d4808801d362e77f41a0008918\n8ef4115edec841854e89f2bbd11498dac7396bca35dda554290d3db1c459ffc17be671f4a46d29fa78cbd6064cc2da20\n9641dc8a64f4acd38e343a3062787c48c312f1382f7e310ccea3e95e066ab6dc980f6ed90a633236a435e68bf6b3c625\n8a84cfc2cbeb18a11dd6c2a0aebb3f6fd58a33bb4b26101e826add03748595022e816afac79a4e7c20b3805252839dca\n9770782d729017659844421e1639ffcda66a2044df9e19769b90292df87dcb146b20c6b9141bb2302029d84a5310665d\n98c7ec9696454868ac52799d1c098c15ec4e08b34884dda186ebfe87d32840b81fd3282295df141c91137faf4cc02da8\na3f6eb921247617292162dfc8eec5b830ddc294a0fb92f5b4828a541091ffdaff34c392c1d7168259d6204405d90ec72\nb185f77a468f07a54222d968a95635234e74fc942485604909308a9028ed2753b15902b9134749f381f7cd6b89cc8c3d\n867608a682d53bd691dbc92eeb460d1c300b362ca49c11a280f6768ccec217f1145f9d59fe50d994f715ce89d38a74e1\nafaad630ad8827cd71aade80edf3d7aeb65a344878db12fa848759e6233f6fceca563aa437e506ea9e0f1e47b126d45b\na12afbc84e3441594aecf85d089423dd3bb8bb33a1a384ddf7cc14caa72284caaa56aa179c15e3140fd56bb532491a67\n98757b0b5e5837ddc156a4a01ce78f33bb1fce51e0c1254ee9b6d3942268d0feb50b93edbf6aa88f9ea7b3c0309830d8\n89573f4a4ae752e9f964e42bec77d28a41840c28e4bcdf86a98a131d0b85367b885077823a6f916972de6ac110821bd2\na17f2745052de5de9c059307308fc49f56cb5230e7a41cb7e14a61c9efa742ee14c41023ce90c7f2261adc71e31045f8\n914b07c53a41c0d480083f41a61c10429ea42dafea9a0db93862d2269ff69c41db8b110b4768687b88089b5e095523cf\nb380cc3e0d26370976fe891d24ea4eeb1b6be8cfce01f47fd68838a27190e644fd57b049d3aa0a9589370de20e276944\n906385fdfad60feec79eb1c303e750c659ceb22d9c16a95faaae093daadd53e7aa039a45d57e20951d6e1ca0dc899ef2\nb5211ceee31b194dba60b616bfd91536e71b9213a3aaaf5aaf9b2f4cbdeb05191861d78b97eec58e3c81abe4f0488c04\n97878e9e38c2f69d697800e7a2f132fc4babaacf471c79c26a757f771606e55fe696ece68a3163a0ffeb2f72274cf214\n959431c1f54c46500c05aaa9a2bc4230531dad97ae768fa92bb85436c0ecc6374cf20fb0ef82d122db116820a943b401\nb69e5a1c6798f30d33e42cb8d124f025d2c77c993c4c7107a539aacddf44d8d4d2239e802ece32e60ee4dbfdce201bdb\na8b09e5e9f802ad273b2efa02bcbc3d4a65ac68510510b9400a08d75b47b31c6f61ffdb3704abf535a3d6d9362fc6244\na41ace7f1efa930564544af9aa7d42a9f50f8ba834badcaf64b0801aaed0f1616b295284e74ca00c29a1e10c3de68996\na8f2aa0bbbc19420a7c7cec3e8d4229129b4eb08fff814d959300cd7a017ddb6548c9a6efebad567d5a6fde679a6ac6a\n9683da74490a2161252d671d0bc16eb07110f7af171a1080dc4d9e4684854336a44c022efe3074eb29958ae8a1a14ace\n8ef44d78d10795050c161b36afa9ab2f2f004ccf50fdeef42fe9cdc72ebb15a09389ca72a00001cd6d9b1d7b3bb766c3\nadca54f3b14fb18298098970b0267301b7312afb75894deea1b2afa3e85b7a3b4efac9971ab54c5cbecba2da9f18507e\nac5d4528f06fdccfc1370d5c3d03ed982fed0861a93a3f6453aa64e99360b124926d1892faaf72d89459e663721dfa99\n98aa1c801bd615b8cba728fa993021e181e0ad717ba01c0290e7355694155407083eb53cb70819c4775da39d33224db7\n8b3aea4c7c2bfe1020de3261ec085d79c7bf8a7903b825d2c70ebbb84af197bcc54e3653c5373a2045c3021526b63b66\na29f3de4cb3d99afff1daf7d431b38a33a9804fedc41626618928ed059df6f6fe9f298a046b594ffee951ed4d4e1400f\n803fd346be540c5242667c18ee41b26bc812456ab13ff117196ed69b90ee608c8cb6554396b64066a546ec87a71ed6a9\na9c18d81ffd029c0339c72c499bb51685392253b996b6eabd8b76f05c6191ed8444a1397d63b9923743661a319517f7e\na048d5c390d08f07161faac71c5994baf152c883b205f3bb10d3501709d6516ae54d491b486303a11b751857a31f0052\n9156fb4803e40e28d8d57d928481a8de4373687288da44fe88c5676a8ae013ed1fcc09d56a31140bf74e7f767253810e\n98e289c725b18e0085afdfaf2acbc674dae7b0a2ecc2537a7d0b87e20eb785404ab05973a787f0495d2adb3e5565c09b\n8a7237b249325bd67cdc1f9fb278710069033c304afbf270b7ea24dbc10c8eabe559a484d3edc733c77b4384932deb41\n9056f2e5b02e5c2e04a69fa1323bbf1859d143761268d18e74632e43800a2a9c76fd681e924a19bc141de0e128d3e462\nb9f2bf9e4e7263014296a82b9ecbb05d3f1efa4b2e675e3b38d3eace59da06a89c859256e1b77847886d6aa15f98f649\n83b22949cca19030289bbf7cd2a0d8b84e1d468e78bc85271a6753241b89122627632723bc293cf904a5eb2b5dc6c3ae\na919aaf35dd0116168d2ee845122026416bec9633df113fbd913d8db5996221e234f98470d029a8ff182825b59fda20a\n91726901f49d32b41afa15219073842278f60dcee223640903d871e318a1c2b541136b7b38a7b2ab7d31e4242fc29674\n942b77666545bc9a858d36cfe857ab1a787c9528f4a0b87918a06bf510793264dcafd12ae6bd3ee300179dab7f40aed0\n80adc1f2f9c47a96d416e44fcba41628abc0fae1f88f6a26aea4648419ab726f7fcc2187c7d5145e3d8f5a75c03937f4\n8041e0f66ba9dcee01e336dd4d16ae5e4e1618512fc147cc8230003aa2940848162dc2187d4130bf550dc1f3559849d4\n999e8adc51bab54386af1c5e8822986ad1b7ecaf1f8a4c2baa5bb2fe9d10710e49545c5a8bd89ed0e61a3d73a908e5ef\n89272ffd39b6e9f99fafdd58bd9dc00f66f26a1d36b38a1ac6215e3546d966739eecda7fc236335479207cef95cce484\nb8e0b7532af13f15dc04a0eb4ea8abd67e58f1b1c6ad2e70c0ffa04a5c18ec2018b5d7f4be2f9f86db5e0b3986f639d9\nb96bd11b0f6ead4abd5fe1e4c6e995da7583b901afd01cc05e87d04663fb997997d6d39dd9fb067c62cb1b1cbb67516f\n94ab08914088b973e8dbd5685decb95f3bf9e7e4700d50a05dbf5aaac9aea4be2c10c83096c02252e9238ceea1351d05\na188de419b062af21275d976494c131ba18d2b2ead8bdbfa38a777832448e64d4d9725c6a1d530ffb6513f18d5b68d9d\n8f73c8c118fa25c76a4ec5611351953c491452743056a819c8c82ba4737a37d88da0b55f837e7239a5f46d2c05a1bbba\n894a44769e0be1c26648b0d89c4c9f46dbdeb3a71b90c493093bee372bb9f2d3f319850fd886d51f4f58db0de5641742\n87d239923b0db024a8d9b0281111d47b0761d81c50652268b074efa3ea70d793e30f874a91ce33a4acecd0cf38c01951\nb1b48b75a97f9fc2dc9530dc69f6268829dd0ddd574516e7eb1b9f5c3a90058889a7bcf3d378738e6d4b02f5fbfa44db\n83e3ee9526ffcb60c6e75b75550fc017912ec0daf96d0a0d5f58c1b229cce90c684ac7c3e17fb998def8e7e2e155d750\nb9b7bba579e474b0abdc7775ff5f84c9f117c6ca17788cf5a5f01b2c35a14aa39036031c8d799fec2cfb371d9f7471fd\n90d7faf4891fbc368a32f575dfb69f13e37161ab4f63a7139be103285a49490c2851a907f8d36e09e7d1a190dddbc6cd\n968c8b9affe18fc34a4e21f0d8c5518341c566099e6b45b8721c9912bab3693c9cc343406fe90279692a1eef2a3f7311\n8735baaf4704207550f77df73fb701d9a63329993a8cb355ccc0d80daf950145f37e9b4b22be2aba29898e974f9fd552\n90f52b2dccf525b9191d836b205ffe966d9a94f6c5800f8f51f51f6c822619e5abdf1257ee523597858032d2e21014ec\n831209f8f5257bb3eb452d3ee643d5f063299f8e4bfea91b47fc27453ac49fd0ba3cf9d493c24f2ca10d3c06d7c51cd6\na5a4db4571f69b0f60fb3e63af37c3c2f99b2add4fc0e5baf1a22de24f456e6146c8dc66a2ecaafeb71dce970083cd68\nb63da69108fad437e48bd5c4fc6f7a06c4274afc904b77e3993db4575d3275fce6cffa1246de1346c10a617074b57c07\na449448d4156b6b701b1fa6e0fe334d7d5dd758432a0f91d785b4d45fb8a78e29d42631bc22aaa4ea26f8669e531fed7\naabe43de1350b6831ef03b0eef52c49ffb0ccd6189cce6f87f97c57a510ac0440806700ce2902e2e0b7a57b851405845\n91015f144fe12d5d0b0808c61fa03efe0249058e1829bb18770242f5fb3811e4c8b57ff9cb43deccfc70552e4993892f\n8e9c570811ce44133ce3e0a208053acb2493ef18aade57c319276ad532578a60d939ed0bde92f98b0e6a8d8aabd60111\n8b21839b5dc1c9a38515c1076b45cedec245d1c185c0faac1d3d317f71f1bfebba57c2559bcdb413d9d7f0a2b07f3563\n90413bbd162be1b711e9355d83769e6aac52fdfa74802d628ff009325aa174c68f5329ddd552ef93e8fdcb9b03b34af3\n8b6b02e3f9dd1031ebd3df9a30432a3c86e64306062ef00a6d1243620d0cb66dc76f8d0d412eceff877ff8768c2696ce\n9894b41d9fc715f8f6addace65451f41dc5ce7b983dd8cb33757b4d7259bef12f144e0077d0b662aa847d5a45f33c563\na353a9740f6188d73aa4175a6c5f97898a05ed7aae9d2a365f15b91dfa7c28b921fdef0a32d90b6fb82718b33d3ddb8d\n984eab8faed87c403c9979f2d2340fb090cc26d00cb4092aeb187c3f4ee1df3f57cb8363f7764073188790b16dfc464b\na5c5ae0ba435fb7f3ddd5ad962358da326239ff236fc3b51bd22e88296236b109951cee1b98f444302badc58d1b5bfbe\n880be1006b0156f2788813432f450f613d235f41aba52a6000d2ad310408ad73d86b79f6081aef1e8c51010d404ba670\n937da751aae68f865c7a33fa38d718f20e2a1c65cb18c8e08f8441f0cdc77662789d2793794dd0a427cad30cd0b33f42\n9496fde66c834ff86f205897db12bbf9a9bb78d9ba8b5fb539cd0a2c927cc6b4120c017b0a652750b45edbe5f650e5dd\n97a6f409ffeb593e149307a14bc47befb632412d70565c5f13d6b7d032acd2e3ed0f7b6af701b387f11d69ee4a8094d7\n97ed94934263dc0260f4f7513745ed3483cdddb9adb85dc33193c3a8b4d52affaf1ded23b59c34651afbffe80d40dc36\nb2b26378d44f916bcf999db218b9892e06de8075f205c7dafd6d37a252185c2d1b58e2e809c717963d25627e31f068e4\nb8f9fa1fb45fb19a45223f7be06c37d3a3501dd227c3e15999d1c34b605f888123026590697d0ae24d6c421df8112520\n997aa71e3b2e8c780f6855e94453c682bee1356b5ce804619ef14834475511105b1e4d01470fe4e2215dc72182d9909c\nac2cb2a7cf55aaf990cfada0218453853047e813d3f51f5a623d09f4714da79de6592671358a5edf938a67f905b6cb5b\n8d8340d0c3081cd30d34f3ff6191e1ff6ad7994b4ebac19e5936f1157ca84e1813228b7605ee226366d6bab1e2bf62a2\n9693b17669086003cb46c75fed26ea83914a54901a145e18c799a777db1df9c9ca6b2ea3ee91e7b0ab848dc89cf77f19\na6b6b2a6cd8c4922d78c8ba379373b375d66ac6ea04b830a23d5a496cf714a9439d81c865da92d52600aa4e2e43afcf1\n89cb665020abc3f5e11a03c7ba5ec9d890fa9ed2630f1443a8e45a28c32786ed980b5343ffffaea60eeff5b313bc0d66\nb37b989106594221bc6cf33a1a83c3e65ecdef279e90333a9e105b8139dc28384bb2277edd4b77c9e59d15e6afe074c5\n98ce5aee5918d18b2326b30c1ba41669cce20bc7a1d1b585363305fbdea66055164a7ac398ca0f0e670291a3061022eb\nb57f472d5f34beb4cf430d7c0f8ac5bd1c0621a284633ed36e6f7804bc2b7847f54b469c7ea163a436510d9e3b32f97e\nae673a6579dbf0504c8fd0c8fc0252d2f7ae8da615a06f4d215c2f8a8f516201f24e5cc42967630c252905e5dbbd6377\n97c1501835a31091a5a83f0546e01c85ee847a0ca52fb3cc0653f6a826e13d25ddc623a5dea139108f7270a1fd7043ea\n9376ee667f3834f6c0da4324fdcca5c04712e0649877ee19da79a2d23be24640c38758fce562470ce2134ca34148ffe3\n818af89c40379a10074cfaba6d5968ecf667f1a68a7edaa18e8977ccb34e0829f237c5634fbd079e7f22928b277f1096\nb8e0af0be0a252b28df25d4a509f31878bcddf702af0e5553393c3dfd4a1f1247ad8dc2668bc8dedc9b41f6ad8e71b15\n811667ffb60bc4316e44bd04573503f5b4dc44d1ec824393a699c950e5fa085b146537ddd6a08a3fede7700396a0df7d\nad834cbf850b2f61ce799c4a0f8ab0c57039d4e1113933c50b0c00175171aadee84894d1376cf325bfd434c3deb44315\na8b7dfcdb40373ba4d55e751ccfb9070554434df9e359fc165284ee3dc35db6fb6055657ecf5a9e9b7b8e2e1abea4375\nb56a5b9fd41c9d3f65532aa58bf71a38fcf07782e1ae0084dc537862fa02e6d66658b19d6f71c39cd5dbfac418da1837\na935af5ed224b9533b41a7e79f872f6851591da9e9d906050ccd1b2c772a1d6d010c5fc7160c4f8cd7d3aa14c3bcdc26\na81e580fc98692567b28323fc746f70c3139d989fb6aabf3529504d42d0620f05327e3385c2bd5faea010d60dd5c8bdf\na8b352054cdcde8ddb24989329a249b71498a5593a13edad1e913c795dcad3d24789abca9c7ed1d57efcc9e3156da479\nb0de8a2bd7f93284b2bc700e442f52ada16a22ad8d86329591547411c23fff0333b2ab0c9edf82bf7903ebf69916eed1\n843e9781b653d1a427f3534b2e86add49d308ca247546f9fcf565f9e08df921e4d969e1b8ed83f3f849e98c0f63e39be\n84a4098c5dca9f73e827d44025473096101affd7193c40a0307e3215e850e753e9a08e6e74a442d57626ff26df77faac\nb463eaaa2f3315b511c22a97fad353014d840a6a95fe0d457d0677e63e571407d7f5268f8775381a5e7adc3b4163eb88\nad0417edaa16cfddc288eef4173aa7057ca4f81e815541ac588ef5f24b98d56fed6845deb6ae1a9740a28bb1cd8780a7\n9271963b8fb2288a96e07eac13c0543ec41abdc6d978bd7c44ae08251ea49994412b542c77c8208cd71fd8e7852d4a70\n8b68b6db9044d8bafc155d69e0daba95cd59d6afebb085791e999afed4f33a2479c633d31d534ff767b8cd433d591a23\na6a06a0e433e385437d9996ce823abda9848754aa9cdd25ec8701af35c9ec15df999825669bbc2e17cedb597a96e8eeb\n94d414bff8b6b8597634b77a77d1060db8e1af0d0ddfb737a9bf1c66c8430e93a425510af2464bce4a7b29bc66cf325b\nb6514049562af1c6fb7d0e8df6987b020f0b7a6e721f4862e36b1ba0e19af19414ede04b346be22d348b50875803d1bf\na42c7fb34f2fbee8aaccd1d86672d0acdf4e6bb083ff0456512d7e1e43be041cc0924322fcd986e6e1bce5d5ecce6f92\n867cbdd169a52440ae0a75d33a28c7d00aa92b4b65aaac5e62aa53a8fc367c08ab8828cc8fa18b6e7d1f908d158e3382\na6fe0b768fff3e4a6153e59a7b7508eb2ee8165eaf5274d41ac2812bd4563c4ca2b132f0e27ea2f1c98759cc3589b61c\nb3eb1dba43d10b9e17ffec8def053fc96f9883bacb49330a089a0ca5b9ab0182e8b5111ad4aa55c1ce1b6f4afa5c70a3\na1531351098bdfcda566ff4d811301c0305626c77f954a38420c490e7c684f517eb1a4e4bd2c3904a10bac889cba314a\n92278d106ad2f27eacdb86bdb1faa0a07a93765bb79dcff191873c52253af83480114b2299ffe5324f9c31d0abbdbbd1\n8900ba95a90c447fb6fa1f528af3d7a378aec25feb0620516b6b97e54b328fc31af42e46a8ad5e6e3029d83a6f2bbe5f\n86053d481179c1ac910d5e7b9a5de82794b442f20e854583512ce1f9c3f09e71d1bf97d6700fe776debfe1527ab97a82\na32a60de492fc4340336416bccbd2591b5e414fca0aead82281212e24490acc01747537b3da783684e27aeb987245cc8\n9820fe8e0338f21797143f368177e3669a1f3894b40ae9fa3b353125f7c8e85cc424dcf89878f2c7667f65db3b1e4165\n934d64711b4348ac5e1395cc6a3215e5643b540f591380d254165486b0ec2a1d0d21c7d2c6310f9e0eed3d08ecf4b57c\nb9fd32d589432eddcb66dc30ad78981360915854cc44b2afeb826b5d48a08e377dc91be66f5bf1e783d1a8bb320f7ccb\n98c972cf01efff4fc2e485b47572e2d8dde22461d127ef401b71a111b0603203971e3cde40912643affd7341cd27e57a\n8db6c1620760063edabd376f4399b6e1355462e04f5c81cdcb3989fdc00f9a466bc85ed899e886c89c149adad69edbad\nad7b7fda0aa6e2aa66a27235ac5cc680aa04b85dce329fc4be84f75c9c961120a3d9e446aa44539aaac8ea203eecb4eb\n8ccb01eaf41d816ce69ebd57754859e263530915e775c4e7d9dac37b2457a9099b9ae9b4c6cb09eb5ff246e3c9320c59\nb895b83b5f7ca46e02697dbaa6157df6c7571864c83e504a8c77d965bc2ba97bf9353a71c56a020df64498bd40e30b21\n8018c07a81c522fbc25f2cb14f2321c61b98bd8962ed8eb7d5823dbe5d1958a5ec2fb5622fd0868e991bcb6cae016ea1\n95b16364e94d01b3664812264d7185032722a4afc23bdd33bc16ae87ee61816c741657c37138d9312cebfb5fcfbb3b2d\n94a709209990a8b09bfb4b9581ab471aae3a29526eae861108b28edb84aab6d28f1d7a25dddd8150b70af34bee4ca2e4\nae06c80839c5a13269b984ff4d8a5938c6f4d8d647b1b1daa8cf7f6145340b76a286cd615ec251a65501e6290162da50\n875cbd0694eeb90d3567da9dc7f570d97b02bd9cf17bfa011efdd48f1d580608a3213bff4006603b8b4079fa66bded10\nb27f88c455f025e1cd902097d6a224d76bdf9c9195adee30bef4a0b0411fff980787285896e1943a62271d0aca531446\n8024880cde783cdb2b863e3dd856be92bacc5b2a1347e96e039fe34279ce528560d2df7d4d1624a4595dbafb40529697\n8883d02c2a5c0e026d941c785128d4ac6f7a9de625ea735b7d6ff27a5ba10fa4d6370d450d99a855d919f40d64f86afc\na1beb985c45fdc30ac536f1c385b40b6113ef6fabc2f76d255490fe529468847a776efa674ba8fed72180f07d3f701f1\nab83bd9b007561695210e3276fde72e507456ba277ad4c348a2aec7a6e9ebdc2277cb4bd0bca73bd79bd2240a1fc4456\n8db27f516153812149854fd6bb1250e843a3ae1c9637df818b08bd016a769d0497ab6087fe3b2fd4080882713607bf46\nb3891dde4e00d60386aeff161b4a0fbc30bb31ee7918ce5fc0b49aac3238a000ced192c9c4c08d90de3a0ba973d7cfd6\n90a2049a15c02e59024a7a1cb0adea97501c60b1c7442fbbe560054c3d69264e69627ac57b7d9be01bef498bb2a60198\n87df67a4bd72444b5faa4f3b067204c4927c869dd3b29ad192d859589a9b2c1d6d35ed68310081e140add254a9463092\n8f80986a8dc8a0d6408ebbcb4f234e76413c11cb0d66067f9436bb232373100f20a4fded60f08dec3525315abfaa8523\nb061e10beb12ba3683688a4ae3a91600d14878ef78a308d01b93e4918efc666450e3f7b0e56283468e218934231df98c\n86b9e55f3783d62e381659d3e06699d788b88aab1ff99848db328a83c97d223f602201bf2127c5ecf419752fed0a224d\n858d878e29925c87243e010020007f96fa33264e89c8693af12857b362aee3fac2244057e159651c476ebe1dfbd67bcb\n8fd47cdef87d7a569ffce806d2c2dad100692d6c53e5f5dfc6e274f897dccadcee30fc6c6e61373961bbc1f3ecbfa698\n892f2822daf3df3a759bef03168c1cb07408df62e024747a788e94d2da325f880bb9c6e136c7f6643f45b021c6ccb654\n8714e37ac24f5a198f219e7c88a92172fc3db129e044e914663ac708d8101851e7c53fce79d32d0e6da74f2ccd1d30ff\nae95e1dbba8b9e2c8dfbe1c202e9ccfd04fa396470035a699b902fbd86d5e6a31732a7c8cae00b9a4f6e51c8d560c7c3\nb0cd058e77498e860fa20c5f8d9bd09bb249add1badf84ba8d1bd49e704b9b4bcd67a5c3d211840a2c8fefab3fea639b\nb78e468d3a7da0dd481f333ae56534e2ef97587be2e259a458e25aa37952aed1cc5f835640f812d8052f5bada8f57b12\n835de7965c6b26e7ad1b92eb6f0261d1f376fa12d61eb618d9b342b597c9c117a5a8f6a36269aeea88072b4641e6b5bf\nb4d0eb99136b3643468c9c48a20fad62785a60fbdd3c054efac4bd1fa7979b4c9ca6c2c0b18069c0912bea2f19832790\na00c47315dc0700a850966836a95f3cebfde04dd094bde0742dee77b89a05b5ad655921f86fafd1e902938ff34d4c58d\nab13fa0afaa92229a71ee91efae6d1b15f14b6eacefffb7401d41d0d6db24e24a8dbe8ee19b4680ecb69d2a0cb4e84e7\naa56c0fb18401210062dbc653df8e3732aa8921a1280e9737e99b26a0100a13a9cba8ad0317a69bba16193362ee0f030\n8b410324a6406b345df0fa25f541ac20b7313fa55832752f70cf4c79f43b0bd3d5b4cdc447e6ba7bca08d0edffa8e29c\n893362241ae412d9e5df46506407595c58ffbd7fb1fdaf0694c3432470599291238997abe118bf7737e56a4f5c9dc292\n921618194a756be81cb49d6357cb392b32cc62d96c8ffb7e16d9659a0f226a0436bd378da7b835054dbe0de2c6372ef2\n94a2904f10994928ff5367b777e1430047736fbece33442cf452018bfdeae62e84cd75cf80f8468285e347d504c94111\nb4b81545b767f380bfe10e0fea9c3cc62ca8db40b43c83ffb245259378731298e3eb6c3bdc3a16932f88f5d8a86edc4d\n936203c2453ff01c6fc635e4d54320d69e60047d805daae3b75633c2259108497b778f011e5a057249f11b2b888ea76c\nb90bf6378d29339443c3f2008b1e2b5f0345f86e393027f14a295e583bf6e6c2b10f54b6dcc42079ff0d356c405b03bb\n916913f550d327de2d8d6c7723dcef2e3869efaf95fd963d95c8980b97748c61ad8e2e629cead8577266d93fe39203bd\na033c6f3d5ecbabeb83eb363e54e5faa7ed2d7f4fb771b161762c4f003eac4e1afb236806b784baf2222cad54e2d3cd9\nab289d4a5771147e6c29ff9ac2bf65d70081ea6c6af2d9b728c3c144574a31b5fd8632af57c18c389aa2cd994938bb0b\n9488da2019ff13e290eeac132b491df58b5b7b23c2898ff1a67bffd7e9c9464c39bc8177a57950fd28589e3d9ff9c6c4\na5abe42b2e0891851440fb2aa6c1d8a86b571bce8b80c8e9e2692e5cb6d45a1b2f055c9fc4c74a7cd292871604129ea9\n90bfef698e83c2ba4dc9304aa01edd274169a978b7154bca518daef394f55857d0d1922ebef3d91fc5ecb3b895d9e0ec\n92328f1372b6406ec80786041b6d57018b8507e3881a08727aadfecfdfcfb0824394cbb1150117ac5da5d71b89e895ae\n9719751c5f7a65ae2bed8aff7b4b8c34539ff011b259b7ff54f63f9d987b3fbdce5c99534ed561aadaf07bb6e939e208\na151816774aa9379fccec21cf212429a1c68cf91b055cbb9d931f461a8d5616c693331a11ac5c6fcfbd17d84ee0b44e4\na72977b1285618a45943ad00f33f37102e2885eccd2f76785254eeca495068fb1d8d49865343e9e8313c6c2c3b2024da\na6f5ad2e023a1585d90625c9f7094f0e8851c79f0eede8ec582ee8e063407cc5b8298e5fdc4c786e4fbbcecaf33e787e\n82901e008febcea0c0a14ae21d985a397630e18ee6e346f4a449f23be228e8f338df567d30211a11180b94fbc5204bec\nb9b57fdb8d14d1be87a25f89553b3966eb7869e0519ffdf4cc4d51f4cec90d68f7b81cdc0450e04207276e9c63ace721\na06eabcf43585a001448f3dc30411f3d5b74fd0a695c81eda9981842ba2bb0081d3f5a8360aa18b6d43ef13ea78b293d\n926fe48a7e8f07559b7237beff9504476dd97b5b4d67acd01a3633358a6ba4c7abed5c87683a11209aa2ee759888e00e\na716cd3a84a963e2a5a46145b6ef4ebce705de52bf2945c374152a1e41c228a9c4eae0b6d1e222c1eea8b9c13c002177\n8a9b5985df6fb32cdb06ba1591a977545444478f2fe985ed1b10de61c630f0a4693c2185d63f0dc0256b208072c43b17\na8eab26ae0ebcdf96a59fad1dc2d5e83b94abb2ea1774b607023f9d9e0fe065853b1e2242e794f989a80a47f550c0bd9\n84adbf38164cd04f3d770a7f4b8eae7a5d25b4a803fb63c02b95b71b33e454319c44e07a760d22bf5f58e7e372d09a16\n90f443a3ba1b9129a0bee400b5b29d42e50bb2aa56b0022bbfc3c6f8d69db40299871ec7c1b68421cc89e1af6b13a39a\n81c5a94b379eb98c494a8d0067c748ba47e87a2ada0105202ed7651eb4e5111a0cd8569b06ae68d392c4fd74a37833d2\n8f92324b14a1549ee0b186073a26691088e41556d33b54258fc6e0b000e9624156db4e97861a0ec22960e6c47ca8a1dd\n8b021cd0fffe055068cc460aec3cc455952e2ac32be5fa060e0d1b6cf30ed15381618f801249e893b1b9f10dd82077b0\nb3e9f0dcb3d6f0b138f589fa54dfb01f849890ab97016372d004aac55103f363a64bc0e606ddf75430f1534a30fc522d\n8fdfe64af891db89b25daa859864d479cb7599486bd6f36e593f8f2f839f942261ffc3eed5001a93fde44cbcdc24c583\na9e4554373c5073e135874e2bacbee69c65308eb0785532fec6a37834e8d0b437b77a2f11cc63c87d7183b82cd9b6bc9\nb4c47daca723ad7193ac5098cad4dcab654186ec5ea5c0fd014a3ac39726be954565a901694ba211820c011fa1c59e18\n8835427e86cdceb4c11cbea331ed724e4e78af15e3bab5be54f6b926bf66b5d99bcc40dbc456d86342c9fa83a033c2d5\n8ea84590a400cedba047c2661378921a42f5ca0421da58c1bcb37bc686a2aed98afab3fa5e6ba3a51029390ef3cdf4d4\nb48551170fc479d69fffb00fae4fba301e92e37cae08f596db6f6489c3b7020edc074f9e8d7465b84e9dcef1b6b3aecc\na6f318b1eaab00836a330710e88bfe400395b3081485f6a212e3cba9463f6fe7864ba4f71e57a411ecdf2bcb4d189f96\n848d5137a39999141a79f4bdf91150796ba36352d8525821bf3bd6e070b352792d79147341b8254dd60fa8c36e9e2618\na8526f8904b1eac4ae2a25534aa91e8031e9aac7b8f58d8f49897e920c36c0232f4a30aa6eed305deb0f7793c115b267\nb8b6a727c44c37a8388383e959d195d1d0e51a657d4ba360633d219d43c5df645383e2406c25f1d418e72b862c3a6e9b\n92e64adf65b42c978f36dd03ab22ba983bfbb61944efccdb45b337ceb486beda99818bf20d32a545503c4572bb0a4983\n9653bb83df66260a0bd059cd4244ef7c661b089e403d26ba777d2090783ff31f963f5d3a9c125b1ad1a1d19134f3fc8d\na74e72355e71ae5eb36dc75191643500ca3e67f18833ee981010e7e7e60a68e1b01b05901eff05014b9ef29aa4829f45\n8b2139a5da14524cf6acc593144db23db424b95b8c7041d8f6c7a14a6725dda1cd09c42bb3ae26a5a3650affaa742800\na60ddff4300ca44a7c7a00a1f98441ad1438e07c30275bc46551cee1b681926d2c825cc8f90399ee5f36bb9fbd07d3dd\na04e5e9958867a5acc15fdea0d88951cfebd37c657102f6ba1dcdaa5e46cf1c823ad0d98718e88e436f260b770599102\n95e977abeb70d46fe8d7584204770f14c856a77680607304ce58077550152733758e7a8b98b11b378540542b1175fecd\n8c9ec93ed35a25ce00d61609e92d567459a45e39922ccd1c64ab512e292787125bd4164c00af4cf89fd3cf9deddcd8bb\n819819ad0338250d9c89aceda9e217df12ac54e940c77fb8420575caa3fa78930689d0377ba88f16d38179a807135dc6\n8baafb379d4150ac382b14a64788d819146480d7a1dccd3deef6889686ded375900f5df069843ef14d754ad3d7540401\nab827236996bb79b447714c6993af941c5ae66248df4d9a6f3650d44b853badb5c0cb67804210e07a7b9d66ca43092f6\n927656c3eac8d2eb575e3daeb77f9605771170c325bee6aeade10c083d42bd8dcbf3bcc3d929ea437001c7cf9a95e2da\naf22b212d5ee44fd4197966b9690487c38a119cd6536cfb8c181f38a94610dd9e057f95774047a446504dd96dd11e326\na44bd94b9e01e3ba36340f2ac2201ecb477495d4f1fb6726a6b439302deabb5a35d237c6a6aeb7e3b0a65649f8656716\naf367aeeae3bba14fbdb05bcc1a521000dd9d37f5c34ae56fb306d3dfda201d0329a8b6e89d98e15825cb3c6bfdb1194\nabcc4fbdea43e50ded9e2fb01464f4e87fb136e960141e8d39214f92794cfab5634f22cd40b18d8c0e501f2307aad23e\n920786cbd674348b9853689915dfcab02cce2a4596d117962bce36aadddf4bdd143891e22f2c8015517039a64e8aede3\n8cde63b9bd57cb3ef743f1f3e8250669eed739e5fbd68c500a3cc0c12f93862a69aebcdbc69dd8f476c2eb307f572a53\nb967e65a5f1cd8d5d570f5e87e7e186fba51b9504f8e466392a76d8a971fb91fd9b7565bcc1647f50d7d15e48b93bc95\n8d5a87b25fedf5edd57d870304bfd9081dc78c3e3e3b38b997260a92edac7feccdaf24feb51822d2edc223b70bb4ed5f\nb6cd5d340a57f8ec73723c4f3ecd6601620dc8137a3e75a5d3c578bc79a9cae86b379950c644dee2ff99dad780d025c1\nb6f0a8e754b7f52a85a2a2e6512cfd017f7fb0418d19bb318308951c4e242d3c65bbcb9748da9cbc91a738f9ca577332\na89dcf7d410bccec385400dd96b1cc6af89026a431d0f531aa992cbd7bc8bfd7c5f360bcb665bda1d72efa17bb982551\n97788e7522427a46c4b6258d15623ef7a565712812fa80d001e1de8dc1791392702f3fa3cce5a8cd1c5755625a0ad10a\nb5338fb5e137ff625b27c5148298f27ce8f493e2527c5d0facaa49f29cae34580d0d6c3c1074a2e46cd8db3f56004ea9\n8962f006d7b1095dd0dd132ffe7e87e328510c95ad893cf3b2ab21c177c5cf2c27f47d8856f87e9762c547be009d25c0\n87fee9ce9c26aa476e67e0791a809e0a06a8a98facf3faea730d438d3e516cdf75d645fa75c906e4e44ab9237a22c016\nb75ab972e1a1214bab0b38cc3e973d44bb233acda5b4291f5e110b6fb78fdcab93dc63f01168debd898e165f615be1f7\nb5a0fb52bca279d3853761a94b206acaf313df33ae6303d9b71edae90b66fc507adbc60fb11e758888736c81d5d80c0a\n849b8f0005010e684701cd3a4e59e8c89e5fec59af6d2de5b6332cde03b865ea84f07f0b80ec3404380b0e148fbd2c24\n96e2b0b6fe78408f9208f809f5c40398100b2dac202c8c5c33c2189560dea868270a598c419871a5a2b67783354f6014\nb234b81f996142d0df2c719760bf996544820a03195a6dc0ff6a72543692f5a369bf63d1f0b477ef2fe7b3234e41f685\nb85e39bcf40da1a12a535740176f4de749a93824079deb5fdaa004f3282fdefaf5275e3418c88c419bd42a3dd2ed2b3b\na27279304b89a18a4e2b443246f2368fb8b15f46a34533179b6bd2ef683f6e98e222b7a32880b39b8fac1afa90133803\n8923c22cf15c9c1964213d725b337ece9ea854775a06f75f232c4859c7142a3942f418354e33066298aedfba3cb27e62\nb109f714311fb9bc431ef57911e2cad6a3949455b9f23255cd7edea35be629e07f845fe53e2b12a32305ee2f4f264f27\nb51e82ae5c7d48050e405897d0053e9ea4b2714d002e88f78c9a307cd50b9c6b3ee7cb86f86527be9d964b01895fab20\n90db256931c7f98bcf3bffff4d496739185e7a20f329ee7bffd4e0850a37739948ec745285703967f4ca50ec370cf68b\na0485ac0445d88dafac56bfba2563b020cfc370f54c1606c89d12cfd8a4d1336d2ba50306e476155a6f5b0e0a1f2d092\na00754c3462e74bda928da855bbf90f9077db395e32f03cce9b2955546d900b72330d247b7d607b65e130f5b0d883de0\n8547d56727c3ad8b5c8ce622ed9ad86fe8cd78e6e4848c9845914b5063b17330bd10b46d8d3f18f83ca09ecb28d1afb2\n95b937b2a979bce0e159ac75c7d5d659be8599c92305e73e942aab414793364a3ec28c7c1c8491a5750ba84a29828d8d\nb011e150f0294e45a0f4c69409999d0c2e602449dbd67ab95e8258466687cd733a0329083a31b03722f4e2580ddc95e9\n924651a733ad5e5d9adadad3ea6a6babb8e455c8d5f2cb5bdc83fa422e7752592190ccedaa827b866861e73506a6968e\na4d5180122f8e31503ae027e54da50f72f5cfb910a6f7309bd882b5cd666f454672591f1f20e461e182a47d03b47052a\nab19ae659c4f73ea3d21895269dbec583c7029955a36469124ebe295027010faab56c4a475973497f28e9a77c03b8fd0\nae7ea1a803d0f439e91494f8f35fc1167dae23834c0c699ffe65d3da8b09f8df5a53195a99ca7b8558242279e69578fa\nb9d63cf0e30f9800101b43b980bcd2f229758e74b21ad5354866b4e684791c08a184330dc316228a0d67fe0210f2bc4d\n8c41629744391ddb96dcbbf9cd99b13d36e57d65962e0aeb92ebccf1c4cc769626feb3ec0363def08eceb102b3dd4ad6\nb2848ff24faf9e667a8c19d050a93896e9e75b86595f7b762c7c74ccdfb9db126ae094961fee7f5d1192776c1ac1a524\naf013bc29206743ce934d5887b8d0fb3667c89bda465d2321835a3618513fba6a459dd7566268220ffce7e0c97e22b2c\n8bb799e36db1132da8e8b028ea8487dd3266b4628c56dfae4ea275f3c47c78e3d7445ab8d0aaee4cbf42148b3a148175\nae2b81fd47c038b5195a52ab8431f0d3cab4cf24c4237252d955aad2156adc16dda9d3270157e0bfe5a44022e5c051ef\n8e0129213b1698d2ec6df132356805a8633ba79e672e586dfef664ffccca71834253ba14f296da962651fcba2c002622\na1ae30b500ae77cd9bbb803d737b4a5991cc780618ac22b5cc179efd8fe10afb8c135457f2e7b86ded485ea12eae70e5\n8a39723077b7c0df6e3bf6548afa3910c214ee275951fbe5155a39473be98099626ea14d844630a6fa90292b9594665d\na628386c79b61aa7314b01d9814aeec20c2a66e3deda322a39957e7135c2e52b1da486d1b9cd61c87afb22c1d10f6462\n97867f469b01249820aadd9a54e12d4fdadd4555f2d530450e1f8f6d2dae57360578e2c2c8ba41e3b5950df596537a98\n97f192d0457c217affa5a24267dd16cb4c01de8fefde9df4884e1906d2f22e73382dcee6c7d910bf6430bb03f4a4f1e1\n86d5b5739de8442dc74d0d8dc78e49210fe11bf8c6ff0f0faecbc47b64812d6b28c8afddf6d9c0212f1988451d6ccb1c\n8ff3312ce9693cd4a9f4b8e75bd805f65b0790ee43fd9e075fe4cebc87185bdf161335049819f22530f54fed2779a5b9\n8dc41d85548bee5d51941d55752a500bde3c5a8f3b362da4eec307a963968e26605048a111c9166d448b8dddf6f53892\n996bdfd004b534151e309ac925fa5ee7801c9da4f6b4c43e156d1158b134535a2a3956e1255e0dd72ac2af6bddaebcaf\naead652704b788bf4983c8f725c644c327a6e9f6683215f5c826c09f82fd2e40631791f51d14e6aded91fdc018d45501\n991ffab58a82b98ed8fc7b00c3faca153589fe09cebf6a137ad506387a1ca4dba475b0e4a1b9bdad829f1422facaec39\n9652e6c4ae084221d6bad855ec0bc11b5f855c6efba67f644e0902ab790a98861cecc6ce047c68273c3aa7eeb2f4c7d9\nb88b816507aaeea6dc92b861eabdc96988b74d7883f20a4b30ba249158acaff3c50d261742fc9ad2e9eba888a8d59065\nacd028a51e16c07a10d2073b9d03070457ac5f1246365295a1359d015c460b92b4861125fabe6f114de8197045df408d\n806d3cd9d02d41c49179fe7dac5b05dcfc9a205a283135d4f008d0771c58e6f963d7ad0f6798606edda718eb5c7ff3ed\nb9b71f1657a6b206fc40159a941e127f252a7b324dea864ecd804f48c0ed86da9778a925fb65491204a92bc2a26fef32\n80ed67bd0e74350c875abedc0e07fd42ce7cb926f0f3fb1949c6ac73f2300b5a14a5c6f6ff8aed99d5ea5029bb8e7ae6\n9875f67a7a473714e4dd75ee0c763ddf88101532d9680724b3848fef69e218b04a96b90f88e0f4409aa40b9a21507ecc\nb4a2bb1b421e5243e5e7576a0672dc19f9f70315a03f6411c19f76616ffbb70fc5dc0e57fd4ab85e24ea2261b7ce38ab\n879723002ce43e6c75ba2246f51436efe3376242beff987d025c3c4476495af32d52a54fad5d9ec329a442b93bcff1ce\na4121efbefd9c3eb143619afa52a916f199c75024908047763b29466cdfc837c2fcc894aca63044c33c41c777e529b5b\n895f637b497a9766714a3d9e3c275a1f0c9ddab105bf4c8b7e663f36cd79492022415bb4938c1a4849bda73106ace77c\nb119acb8b161ce4384a924645a248a656a831af526cd337d97e08405415b9dd22060849c76b88a4785eb5e7214961759\n802e712f4c0a17009c4be6c1e5ba2ca3b82adcb68793ec81f4489b7985babd8a3873d544de63d5e5de0cb4dc5048c030\nab111051e4651b910c68ecfdc33f2d99e7bf4182df68cedbdbbcac219a543e04d93ecb2763fe32b40c095c7ca193c331\n855c73ef6afc6bcaab4c1e6388519fd5cbb682f91995bebd558167715db454f38012291beccea8186a3fb7045c685b67\na29d02ec6d9baf84c19dfd0eb378307703bfafc0744b73335550f3cd1b647275e70215f02d1f4ab82a5df4d4e12dd938\n91510a45b8a50cac982d2db8faf8318352418c3f1c59bc6bc95eab0089d5d3a3a215533c415380e50b7928b9d388ff89\n8286e7a2751ca4e23ea7a15851ad96d2cadf5b47f39f43165dde40d38ddb33f63a07bc00600c22e41d68a66fd8a0fa51\na413d4e619b63799dd0f42ac57e99628d338b676d52aec2bb0d1bb39155ad9344b50cdfe1fe643ff041f1bc9e2cec833\n85524e5bb43ae58784d7e0966a664717289e541c8fcaff651541718d79a718f040a70aa8daf735f6635dabfc85c00663\n97f0d48a4028ff4266faf1c6997b6ad27404daa50ca4420c00b90f0b3e2d82ef8134d0a04108a74955e61e8dfeac082c\n8df6145c6cc39034c2f7331d488b8a411931c8faa25d99c5432831292637fd983d4f6b1a6f55522b4a42a462d63c6845\n98c2060f67a916991b391e67fcf23e5f305112807fe95bdddb8ce6c4084126557e4c5f003afb32e30bc6808b30d4b526\n8964246b3c2b8f7312f0a99647c38ef41daf70d2b99b112412356e680185da6810ab8ee0855ad7409d334173bcc4438f\nb56c2c416a7069c14bdb3f2e208c5a6ad5aac1cbe5b1faf99dc89c7141d0259d1c6250be9d9195500c4a41182ad2ec3d\nb7864583a4cae3b1083dcdcff7f123d24a69920a57d6594d0b7219e31bf0e236682442b6499a1f6795cfeb4f5f236695\na064f94139bf1b70d476bde97099631b1284aa6b4d87f16bfc65c075e58b2f1b3c2d057605259f806e545674a1169881\n80d1bc4acf14c0f487cd57c5d6157b7f38917e93cb660f1c25e474fcdcac3c3dfda50f6bcccfd6676bae25c4b6b5014e\n8ad9a4976c4e3e282843518149fcf5d454240740f4b91466f6310b7216d23d70b9b47c42870293252f29f092f330967a\n914197593d2d99d784c704cad7ecd3f0b9f55dce03fc928d13e1a1034566c4de754f1c2a5ade047b0956415fe40399ec\n8d77f5e29c572ec3c0ca39cbae2072ba4102403265b3d8c347a00386da9c0b8688d6e3280c96037c300d57b3545f3773\nabfdf79d935fd4f06a04938d6580a8cbf9735f0d498f49677f26e73d3b34b7075d525afcb4f14ef1632cb375bef7dd55\na97a8c446e3edc86efac7bda5e2e5d0158c909552a3bf86151df20ece63b8d18b608f477286fb1c7f05605ab7e6a7c2c\n8618d946c7fd62486551c35486fa466bdfcdc63c941e4cff5a01fbbe566b7ea9dc763cbe73e2acae063060b619a212a9\n8d03ee468070936004b06acf64b868963f721f37faa09887f8a82c155ad5c5732572a6855b531db58af03b1afe034a18\n8d3247f75966ea63935ef6049f7c889c1651374adb446f49499fc9191dbcde7ea33cbc1f1e2d3d1756b6e69870404643\nafc853c3a3facb4ba0267512b8242327cd88007cef3bf549184ee891b5ddc8c27267bae7700758ad5bc32753ebf55dae\n80df863eaea289de5a2101f2288046fdbfaa64f2cf1d6419a0e0eb8c93e3880d3a3fdf4940f7524ea1514eef77fb514e\n8434b5888c2b51d12d57da6fb7392fff29393c2e3bfee8e3f9d395e23ddc016f10ebe3e3182d9584fddbd93a6effcefc\nb78cbb4c9e80e3808c8f006dc3148a59a9cace55bcbb20dd27597557f931e5df7eb3efd18d880fe63466636701a8925e\nacb140e44098414ae513b6ef38480e4f6180c6d5f9d1ca40ae7fbadb8b046829f79c97fe2cc663cbccd5ccf3994180c6\n936cb8dc959e1fc574f6bb31f28b756499532ebb79b2c97ff58b720d1cd50dc24b1c17d3beb853ba76cb8334106ce807\nadda2116d9fab2c214ec10c0b75f7f1d75e0dd01e9c3e295a0a126af0ea2c66373d977f0aefdda2e569c0a25f4921d0e\n89a5cefb80c92dcad7653b1545f11701d6312aef392986835d048f39d5bc062cabc8a9501c5439c2b922efc5f04954d0\nb9acb52747ce7f759b9cdc781f54938968c7eeacb27c1a080474e59394a55ae1d5734caf22d80289d3392aab76441e89\n8564f72ce60f15a4225f1a223d757ebd19300e341fd9c1fe5a8ece8776c69c601938fa2d5c21b0935bd2bb593293272b\na5567d7b277c4ebf80e09c7e200c20d6cb27acbaa118c66ef71cbccb33ee3ddce0e0f57b77277ae1db9c66ed6e2d8f30\nb82e9c2d8df1cdd3b2417bf316d53e9f3cb58473c4cb5383f521ef53e0af961ef916e4f6557a6d8b4655ec01415231cd\naa816dfd2814c8a25bd2cbaf66303ee49784df471bac4b3188074ea30816f00f425234454d40d8ad8035aa925d74da36\n9919f384df20faaa2d226b521cab207dd2b62420d25ebbda28c9b2ca76a2a52203b2ad7844c1a25f5c75f005c5a83149\nb24a6aa35c2d0f87e36598b36224c64427cd69642b6f9c1bd478a62c70f8ee69f85028648f6603b4f04fb21355f2afb1\n892e044bdb1276b455eac2204be105e1821f987c2570494b1f32aa09506caba7ed343cd09b1bc126fed5e0fda3d0eaad\naf0e01a3ad954dc048de18bc46bb1c4971db2467e839698e4dd05cd1adcb9261013fe9fd0cafb946c0b586f6aad86d4e\nac152f0a9ace425378daf02510eb7923ff1ed2c0f8d1deb918e4efb63655de1ba58c96438e9aa23abdf2431dc771370d\nad8c7419c097709347e2394195924e09617b47ac5c7a84aeb9deab8975f22155de0f70cf20d8a976551b14e3a2683a2b\n808f14f67ae801536fb70a5898ab86e50ad35340cffd0648daed2f2c4564c9ad538034b2a179a6a8bfa27e9d93b4cbe0\n80a74ab7ce4769db93cfa695a166db95f0a9c47885ff826ad5d93310f36d6b18b5351c67c858b9837b925e85a1995b63\n95b88c3cdd64401c345828f4e4754b1a88b4875a14c08a668b90acd499b3b858842669ecd73a46c5d9f1de32ec1a0120\n8ddbd770b7b18a5917eb43926fa05004e819f1d1ead05b915269e4a86b53e0633a90559007e59f6705a3769e2126ac56\nab6db5fc220754f19948bef98844e6e38dd623565d1695e1198040c228ac4fd863c1f168cac1d036bbfb718d9d8dd036\n97bef628e977c069e60c395a17740e0e1bc1828f5607ae7f30ce5a0c95f02b53af2ad062700a75212e462aa22c3c5465\nb68d465e04fd17ca98501e61eccb0ce30401855e98046e0c1debba71c2153d6a7a704aa36a6f12454696e78e87181cdc\na79cfdd048f4181e005bd0fbac0a8424495474956b58ce858d2b700fb0f931c406282bd33bfa25c8991bc528d12a69c1\n843f55fa0a6a0969daf2b48080738f30b269b2e7ec123a799e5b203c0b3b4b956dc95d095bc6550b0013918cdff8a225\nb683cdf2823036827e5b454bfe04af9bec1850d25a7a7a44aee7696b6ff0468b7ed6885a41dde2b8f3ecc4aec880c3d2\n8b500796e82acdc89778e0c0f230f744fb05f762000fee877bcf57e8fb703d212dbc2374887bdc2e7b7a273d83a85798\nac35a8ee87bafecb1a87f15abc7ccf4109aab4ac91d357821e417f9b1474d196c38cc41cd13667f68d1ffab5e79a6e92\nb6e517739390cfed5b395d33b14bce7cd7aaece57fe79a7eb3cbf150dc10765c3ea9fef7976a21a2243687e6eea38ef6\nb53901eeee26692273365b789f2a60afc9b5f0df229c6d21b07016cf4c0e7985beec748aeca52262f68084393ab038e1\nac4804f33d8ba2b4854ca3537bd8bf2dda72d4e94ff7ecaaf9bd3b7f098343d74d765471ef80072ae34f860b052cbfb1\n8c6a30a93f1dde18039bbdd1ef294552bf79856e20bce863e4b8dd72d906be3ff22468ff3610e06b5a7d1745dde7ead9\n88f0607fa3b7cefe20a02115572b16fc3222be86bb19e592c86c48afbe7e0dd523492b0c29a3bceb9a20f5538bc3134c\na660b801bbddad725975ddf9a8f606f76ecef831f954be224d6178c368e1c72d346f00c4a4c95c289b62d36f2af323cf\na75b9a6aea9542b698938dcd6cc2f6fe0c43e29f64b2f54aeb05d35fac73d41aa7fd750af4fa9333644aab8db90775b9\n83e1b7129d963d1cd076c3baa5fe422148e939273db173e4d59d1858a7d841eacac7fe817d15ab8f8a493bf46c2045e6\n9060a2e9c24de11f9c70e039b5ffe9e6d32f1ae39f3dda263610df2265d917679e689898e4a8bd84ad34613dca5e3761\nb42fc8b863a2af15e04d1fe6693c09b46007c0b8298973fb4762b45b4590ad7fe0aa758918b2fe5ed1ed0359754fd955\n83e6de7860fb256ecf7b47506a5e557d0fb0aefe57fb513c7dee2bd9604712d08ca26adca7ba9a54b712372a7c585a26\n90586e9cbbf71475ecd3e7b5753b286804dcce61e165502a82b960099e79272de8b7494b8877b54ae838eb5d0f71af2f\nb2e4b0d21208f73b7b75e08df80cde20c4578e117d37092a490af82354e2afd3a7dbab46fa2d12fcb731cdaece69c2ba\na010961239bb8809fc7fb4aa08fa30d33a130f9f417ee9ea60f587dcc5ef4e1b7abcdcbf8e848ecdcb7972ef6af46e78\n8f511fd58d1e3403a5eefdc0a4ba6b8af848c7efddbf9575ee84449facde05ae9a24aa41a5725416467f6fbd11369c52\nb24ebbd2d4482eb618cea1ac4fbfd9ed8c46c0988a27259300a7ce5ce1bb256aeca0357828cbbc4cf0dfafbf586040e1\nb3ea29e9cca55250e9b7b9bd854edae40f0f0cc65fe478cd468795d1288cc20d7b34ced33bd1356f1f54a4291faa877d\n8a8b20f222d9e65bbde33638033972e7d44c6a310b92a9d9c5273b324c4ad1a94f2a10cbce8300c34dbd9beb618c877d\nb2436a9a647dc3f12c550e4ddc5b010e6f9cb3f3504742d377384b625fc38f5b71710a49fb73ffaf95b9856047c98201\na13f8b77c70621e421be94c7412454adc1937b9e09845c2853ef72cdbe500e5c1bf08e3c8b8d6b8eff4bce5b8dec9213\nb25de8780c80d779e6c2e3c4e839a5a107d55b9cccc3ad7c575f9fe37ef44b35db4c1b58f6114a5f2f9ca11e1eb9c5fa\n96ba6ad4358c7a645e5edb07d23836cbd35c47d9a66937d09486570e68da3c8f72a578bd2e14188d3acc17e563a652d7\na7f55989814051fda73f83b5f1a3d5385cd31dc34baf94b37c208b3eaca008ff696fd7f41e2ecffc2dd586de905bf613\n882d0c7c81e58eb9560349f35c35e4498dcde7af7be8d7974b79d262304c26ab67ffa5ed287bb193d5f0ab46b4096015\na607158f0c1fd0377a8ee5e9715ac230abf97406c19b233d22f5911ebe716967cc10425546dc44e40c38bd6c2b4bca2e\n87e8cde50e5d852d3f073a43d652f7186bac7354612517cfaecd4a1b942f06fef6f14546279c0dc0262e2997b835b2a4\na1c93acc6db9d5ee426fb4a0b846bb7a7b8d5915bec777a9fe6907246b0beafb8938941c8c79ed6082155f75dbc1e332\nb1e4f61457b86f76cd93eafd7536f72baf239ce5a62bd5a8085a34e90576b1e118e25002d2de49b01d6e9a245ee7d3a2\na0435fe9a4bd1031ec5973a103ec9396b2ce9fd982f6d9ed780fa80ac06a6e47a0a6eb2daf52df1dc9292db622ee9fa3\nb66d8e8a1717e4bfa42083b6ef4490e090a73168b2912f2111743e089027be0a4945a229ecf5d0b5eec11b23f0e11303\n8eb764f26904eea4f4169be6e75beaa6a39e4eb524625a15a78befe3d8e3cc82692d9b135590c20ed460d6e4ba630ef7\nb7e4aea6bb09829e53fe83e53f49a7a331a6d7bf76e0073d758577e6d6fbe63dab642b23657355cad48896ad8715119c\n8f94207982373a99ffa282673f192aa98d0c4461fb77c31dc4549628bd9687a249f1b3c66b1840929341e42516c5c64a\na9c673cb247b13e17fa5e616f0399b7f5c7ad043e143e44ae68855a840870ab3d2aad737ebcf74c2cc9688d17ef3a794\nb02635104dd28c02068985256975c0af783899eb996e37d021d9a35238deeea9e836760db21869be7b6c82aa687ded29\nb33bc0966389710812b5f6698afa3e9c84839a1b85492ba11e6ded26695260abf66be6fb355d12d3a8524966f0f89e0f\na79c0dd09506951c33da3cbc23843fd02d641fc24c640a205e6e8150240372847312b9381fb03c5d301fe4dbee8d0da2\nb74de6f3a2c502b5b658ebe8a9b7edd78afd036f5a2736aa06502863b6865d131b9e3542e72a86fa2e1d2db4927661ed\n99e365def1452ff9fb4b9eccd36ff4154d128469ba5bd73e83ae457ab53977cf6fc04a5d05bdcde357ab539e34bd9fe0\nb4f2bfb95abb47c67870aa6ca38ac8f3ae1b1a2bed064b1be7ff90865ea12e4930fcf66429c7ecd1183fae4a01539386\nae4bde87f36b912e92398bf72e11d5389e93b2de1b277d7ed4b6fb5a9ab9f71a959ec3bcb734c11079440fe42b86fafd\nb826459e568efdeeb66688482b67ef5020787275123fd3192f979b6175e3b0ed59e17cb734a0a052bf13f0afc7bd237c\na99dd735f4a7c85cb23dcc7f4835f9ab32026886909aaa95876b98029c37dc4d621726c872d3a9e50403443c958f4029\n99083545034768010988bf8a9f34486c2cd9da27a1d10db3ab86eb69a1dd9c8ee723e7da4ef2aced63c1dbd53ccc52cb\n8ac3209349f0142546c714ef7e9d1b094aab5469b8f080c0a37cb0362da5349e108760f272fbba770aa468e48d9a34c4\naf5f48ed74b21e3f2c1430192adb4b804dc873cd7e8f07130c556c30e7b78df0ef5a14b205368848fa9185e5a68dee0d\nb8b741b65d68df89443523ba74203226f1e0d13bab073d183662d124e83e76cd318b2bfff09879c04d81b577ac895638\n914abe4282d11176d4f2f08c6f15e6c2d0cde1ab4de00bbe888015c205f51929d97296a0a8d3ca5641f085a29ea89505\n83ec306b2a9a6780efafe799df90b1aebdbff7d47921a136ea8a5648b9708a97231245a1082fea38e47ecafbbe000528\n95d6b58d70b388dfcee4eda0c9805362ccfb60a87603add565b175b2c14ed92999dfdb0d3724ee3e5d30535f282641e9\n97eeb4de607c8306e1d4e494f0d5db126d53fd04983ab5674ec5996b971899e734fa4011f2c889da21154ea1e76dbd2f\n84ff21977fbd873ea06bec444d4ec9ff0e3902edc29dfa25f3bed269b3709e3116e99dc06cc3e77f53c53b736bf8fc29\n8ecf483874a040a4a1c293af145094fedf203a5eb37c3e165857e108cce3e1210e0bfc0f26f4ae5e2194024929ba034d\n97d9b92b2ef34609d69402167f81bce225ed3a95718a3b403f702b93e96a121a8f7f072d0ff47e8b25164e204d1576bf\nab87c39cca1803b4e84b32e40ff30289e3cbbcfbe16a70f9e025643824752359be1f10c3e5398df402b6fec64d5a3537\naf84ca57e6944332884b5c84750afe0d5950015e127acec161853d55d48fd864c7da8d59cc5aba4ceceac650b813fcc0\nb1d23d98edbe7089ce0a8432e0eb3b427c350fb4bb39eb2aca3c2bef68c432078cb9b4b2c4966255e00e734fa616638b\n8e2b5252e0ea96d40835ebfb5693af49946509975682d68651396d6bb1463f09e75fd0afa04ccea49893b5b9c3e77e40\n8db25e762f1d4a89a9a1cbc61c01698e775906bc88a921b2905735457a35df9ab84bae12e1b1b8dafadd50212f1acda1\nb5f7cd163a801770a4034e2b837e00191b0ac63a2b91032ae9a99ec182d748798df48a14644935fabdbac9a43a26749a\n998e7232e5906843d6272d4e04f3f00ca41a57e6dcc393c68b5b5899e6d3f23001913a24383ed00955d5ec823dbd3844\nab2110a5174ae55ebb0a788f753597bd060ee8d6beafc5f7ce25046ea036dba939d67104bba91103d7838b50e36703d1\na211972a4f6a0303bec6c86f5c23c0d25ab4df0ba25876cbaad66ae010b5a00aa0c5daded85e4326261a17a563508a25\na49f53496a4041a01e07f2c2cf1e84e2ee726917bb103fd267451b9b7bb1331c0afde85a79a55409bfde27328b2a4745\n934e915c67c7fc47adeabdde49f63f04644fe234672003be2aa0a2454dc8d9288f94293478936a450f2e3f249d395b5b\nb6e69e9d6808ff7f60a01b7aea6781495d7a20f5b547852d3f0af727a7434209d3015a9dd04cbe3e272918e32e345508\nb348d3462092b5c6fead7e515e09611438db8d69650876dd3b56226e303252bbeb9e9f3b888fb911445b0c87132a1d0e\n8d6510334a905efe5a32001e167f1ba06f9bc4af7ffbf11b7f7bf3c0076b5cca373d8c47e98c1ba8755bb22632bfe0e7\na2d5200f20985dcd473d119ee97e1c0fafafa0f191185bfed9cac429cef8198d17665dac4f70342eea66e6e4a7370d58\n8dd7eb6b1841b3f33425a158d33a172b79b2dc8a01378e4174e67a1a4c8f4b887f02c7c3a8f354ed9eac718155bcdf37\nb16ca19388642f71afcd9f7007b490d82f83210ac1a989da9d4bf4c419de07af8c048cd301ec7e01b9d06abda7c169d5\n93cb2d847d1a88de8c1c9d5b3c83efd0b7afb3682942bd2c8ab5ef35b33dc31a097a3e181daab8630d4e840b677216dc\na8b648c769e77a7b41c0c689fe2fba9bc585067e004bcb1732cb7b1618e97b317781c36c23a00680fc780b58c301a789\n918c321100d57712866bdae84edf7e42df30a32853af257e0cb4da028842a43b49e775f3cecb85cd817269c728de7319\na7b0f6ce42e00c519e69b2c78fd9b75a2e7103e5892d3c1afd70c9b5b9e706180a4bf73dbb2d3eed52bfd521103ec5b3\n90041994af3322b010891356afd8115340bd7fd7ba328716fbc4fe458236c8cad8c7564ae473d6091ec3a54bdab524c0\nacb1ac83809573846231f9be2dc5f3e986cc36dd9574a620b1cced45bad0b11ea957ce8c6cbf964a0af916781c574f05\nac54677dc002698fc4d454c7beb862ad085d0514f92576f3485a44c0cb47afb9db2c085058918a3508f9b3de0137d97c\n8dea56e1bfa150e442f8484b2952b116781d08cfa3072d08657cc09b0217276efc4ab6f5fd726bfd826f6976ced8da29\na2b09e25baf01d4364b5205fa0c4dea84ef8fe03709113b034f88a0f0a502a81bf92c1d4641e2ac9f3a6f4203d3645ee\nb95fe37aa351b4292691a9c2e547224c37ec2751a31ecce59810cb2ae0993da6fbe5efe0ab82f164462fa3764b6eb20f\na3498947e91a3a540e86940be664fc82f1e83ff41a0d95eb84b925e820602a41b7393c8b458bd4ebbe574a754586787a\naa2516d3620c832e5728fefdb1af0be30c871cbad4b166a7a4565af676e73bddc2f2f51acc603b3a022056daad2b330e\na9251b56467fb55f64c70729e2ec77a59d7eac79cc0b4b25ee405ac02aea46bf1cbc858bc773934a6d9bea57cb528185\nae8c0a4ca7ba6bdca8764bac98df0581f00358db904e57867e6ffdf15542e55f7bad2dedac152ef88038b466ed901934\nb0881e27e52cc6a57c4f3f278dffc7f63a9174b68bc867c16d8a151d9cc4d0aeb703d1074d1927faa9ffb43e10912c9a\nb67138465d6654ded486d18e682f11a238d6a65d90f23d6b13eb6a1b7471efbac9ada6345dfb13e5432196d2a256829a\n944c69a6f1126edd38f6eef60b8a5bd17147ab511e44e8e0a442e87244d8f35236ee0b8d3dac0631f8598f16486a5f74\n995679dbe03dec775da26708cb9200dabcad983825f1ba601eb9395f9da350ca71e8af61dbff4c668fd0eebac7e4e356\n89de362f02dc14de6995d43cdea3c854a0986c605ba5eb5dacf24e3a85983229bc99a2fcf50aba3df59f0fb20daffe29\n84607f0e2d078df22d0866285614f5d78cf7697c94a7d1b5e02b770101ceecbfd53806b377b124a7320d9fed65000b97\n93e3faab60050dac76ab44a29bcd521813e76ec8e4ae22712d77bb489bb49f98f9087acfd6a77016a09a42ddedab2d73\nb7d64a7a35f21747b8e6a874be31ba770c0d13cbd41448411994e8cebb59591295a26bacbf74ee91e248a5b111aacca0\n8dcad429a2b0d66b9eb8c1c3924d7a72979727db6a535526a3518bed2a9532d12aad1c5a778824ca4cb98e3e513f85f8\n980882895faa347bd2fd1dda7b8ee7ed49e69843afe646f677b371eecc7a10e0f4e40bb55f28995a40080df471876816\n89e8e7fb51df79971e2f7bf65783614abbb0d7f3f1b4a15d3f0d160deafa7ed1c446d9a5ae1a77160d4dd94ceed8af13\n93fda8d350392e9c4d4ffe6534f7e7be53f32483d9319093e8436fbb8166a3c01085dc858373e65c7f4d014e0dc2bab7\n897521a87b7ebf7152de5260c0875e3c7df1c53e734c672569219ee6f9bd196c5ecef159b6a1d3b7cd95e91b9b8803ff\nb59affa408a0f7bd7930fa3b88750fd043ce672c10a3adeba95a12f23f0dda1793f761a86f7409ce1e6fd3b3b7195381\nb4422ccc12f4fe99c530cda610053af9ffe635b633d52492fd81271d1f6f91b87171d572d5bd0e46ff63e221fb2fc4a5\na4542cdf3346ee0867c08d630c2aefc57442f1c05c0eba52d223bfdca5e9d0bb80775cff6ce2e28aa2730231fd7b1bb1\na7d297bb09118b914d286e5d1e87bdf13f7d174b988e38fb5427902e8e8c674072f36b19055a1070abcf357f8668f35b\n9213b0ae24b7cb43ae95e25c09fead8bdbac55141694137d67eb5eab5e90a348a13d4d4d2cbc6436fc4f4f9f7334ced2\n8aed71a0d116d832a372b42a0bb92a1980f3edf8189bdbaed7cde89fc0418b3ab21a04f5c6e1d3b8edf73f1f62bd6b15\na6c47d77d714c285c84c6b9458cbec5e3b191c0502dffd10ce049cf1ea27ddf868ef0cff13a2377289fa6c932b8e4f28\n92f45622ec02483f2c1e07075a6695416d3768c8984856f284f40734346d56cb5b3322f20c2c9f0ef8e58ddc294a309a\naf6450d02b79ac9fc79f35655b58fd3619cd5d38c5317564b453f5f2d79d7a030bf767e399fe01b658a72fbd2cac2356\na3c01fed5240eb8a61ffa8ff4a120dbcebb53b8e19845949c77fb4f9b2c3dd52c7001df6219ad2f76c785a4ee0f64a2a\naf3136bfe8f774187bdf87555a1ac505322a956229a285d28bab1c88d4f4d12245af8dff35914a62e90e49f3dce6acb0\nb20e21d28444fc96737958cd951858fda324b924b4d3d08932540fd4b87150f053db6985b96903906ce83dde0578cbb2\nb7978101071268d1f485134b4dfd1e35f89b82c7d99ae91f58b6745f5e0273b7e06f3b23009033ecc3e41b2e9e85219b\n9104b7d75245b784187175912cc0ad869e12f1983b98e052710fb33663224362bffd69ceed43e7d4ad7f998c0a699eb7\na7624cd71b92699ce3fde0e747976ee04ee820032ac45dd27d769edf3b3379a4b8db358e50c9d057c63b5a9b13d76bcd\n9354a76f294005de8c59db10e638ae6e8c6d6b86a699d8da93143da8478d36116211c788d8285d8e01ea6647dfcaa1aa\nb85935c04cae14af9848db5339ab6420122c041075ec1549314e3c9c5a610d9b794ea3617c50ca7af6b4aec8b06bc7dd\nad6835a62311c84b30ce90e86c91c0f31c4a44bf0a1db65bf331b7cf530cca0488efaac009ab9ed14c1d487da9e88feb\n80339f0245cc37a42bd14cd58d2a8d50c554364d3a8485d0520ea6d2c83db3597bf51a858b10c838bfc8b6bc35619638\nb370420ac1a011f6d8f930511b788708ccf2fe23ca7b775b65faa5f5a15c112a4667ed6496ae452baf2204e9ce0dbf09\n8ceab3dadca807a1c8de58ac5788313419c37bc89603692c7a4d96e2311b7fe9e813cc691a7e25a242828cdf98f8bbcd\nac1526ebc6bd4ac92ee1b239f915e494d0279fbd065e4cab1f1b8a1663f67daa89560f6c99bbc3e63fa845520316d2e6\n8240ab0bc36a29d43ec3059c7e6355ff39567e135f93b243145d3ada97fd1c970743819e0d58bd5171967daec144e7a1\na99743192a6f1967511b2d3038cc73edacb7e85f84b2926d8880d932d2fa12f5215592311a7548494b68a87ec70c93eb\n8ffffc31c235997e59ab33c2f79f468399eb52b776fd7968f37a73e41949111957434f2c0a27645ab34c741eb627cd1f\n8949d955309415d6d2cf6ee682ccd0427565142c1bfe43b17c38de05cd7185c48549a35b67665a0380f51aef10b62a8e\n9614f727a9dac8ecd22b5b81b6e14d34f516db23a1a7d81771ddaa11f516ed04d4e78b78fda5dc9c276a55372f44c4d4\naa85d3ef157407bd8aa74032f66bc375fddaff90c612470b5ff5d93659f8c3523b2d1b6937b3cc4201c2aa339621180e\n86f8fe8bf4c262dc6a04620a848e3844f5e39a2e1700c960f20ee66d4a559a90141ef4e5091d0f32acb1e915af1e0472\nb3af2eb785b00588371beb3b49536b7919a3f2175d4817de5dcbf7fcc20c512852ef0f313327fd0589b10173f77b92e0\n8388703c512eea59190351f3bd2cce83ff8bcb3c5aefc114cccf9e9b3f78200d8034c3ebe60448aaf6c912f0ff8f0cc4\n95d0dbbbf08ec1ed3975fe7dd542be0a05156a2b3db5092825d918a849411ee536ed958201f74a5513e9743674d6658d\n8d1a48802f1a2db247e633ddf61d3ef7a2c062c48dda59bf858916e04f56651a7d51e367d6535964ebf3ae6d2b21b421\n971436871bfe868f25247145a55802945409b3150008535b372c949760d7949dd2fdb40d9b96ae7473bc8f6e9b83ecdb\n8ca431728ac0f156763090828a7b6d860bf591e5b9dd3bb3b7f3ba0ca74191f9710ee55efd32db7d18eab5b479cee8a4\n81e28f1a506e84c2b9aba1df720cb50e0b597b2c22f98acc34e710c934cc6f97dcaf33d589e845c2c1f6d8716d05ccac\n8f43b11d3f00c41d16c9bc9bc0c44227c056bd77de4f1ca9a799418c5601e744f99066bef47da2d9088ae88eb259327c\n8d330aa52744c08ef98cc5599eec8b9b4dd18aa01b803f1d1ca0e29b74f1aa2886ed0224390fc377af25852851fbee03\na06f5b203b67134c685039ec2bdbcc787353e2575ce73a415db24a517c0c31b59d1de89f12b97cbef0219fb6a1e90a20\n9269a5f49bbb8fec1a387b5d105df88a027de615d5ca6afae20fe89b11746f8d23880db78dac238c955fc8bb3de18046\naf5074b3bc0656421c314547b45b5abd3045ca1b17f5e34ba39d8c1f7928a55d4ca5ea9c2ab59a55909b25255233e04e\n8e7ee5d733c8e08f3fb7d85f0628de3de6835121672c65374905dc6d19e02fa2df14c13d5e9835dacd609a4df09abd26\na9b9aaf83d31e879dfb8e73a0708801b4dbdb5d7c8654b27d2c0f5797ebcacc8d00a82143e2060f0917c9d41f1a03de6\n904872aa1c093cb00e1c8e369a3bdae6931c5b1ed705dd3bffba243dc4f42df3e7d7cf70303d513b34d2245743d765cf\n8a4d6b3b1d6afe67383c66693f70b397e510be28e3d97dbc8ec543d699b6cbb0e72eb90a7f65e83cf9f7ef50fb18b128\na914de13916e6a0dc0e0fefecb3a443cca80d83276513b70c22c6e566a2d41acbd33a0e2836ee09abeffd3a4894e437e\nb9c408f5f05934b0aefab301ba22f8254c5ebbf5405b6aa788f76e4b328c150b395f441e3566015a0deb3eca89afe9ff\n8d32aa2c81b2a8b89f347c2e0b6567b2117ddbb778fda8a3f19004b7f5aa9dd814b9b3ad35f9223715d2447b2d12f159\n8230e8b9c84cada1bf14ea6aa9ecdadd978d893cf5962fee6c7167ed21239210ea491987f2c8f2e8cfea8c140704ca28\na5d7b6285fea51c6f21d0976a7c3a97baa3d733a201bfaac0994db6c65611d91c5fc0ebc2a7724ee02b371e575573649\na54f00a9530f6930069f5e3a8b8b1d52ee1def0aad1763e3c609ec07f25410969b43d5943a94c235ed5eb207b33a402e\na8dc6e96399b81397734c61c3a8154e55a670fa25fa5854b3c66734cbb4ec0d8f6ba650ee3c71da3773ffc9e37abf8bd\n8841fbfae1af4d400d49f74495f864804f043416c09c64705251d021b3ab7881f134a00b0241e61010617d04979d747d\n95acea7ff4861cc969c1d8cc8775c5eae014ad6e2e0e2d0a911dd916c34ae69f53eef779cc24ff1eac18c2b478d3ba2b\na5dce74abcfb8c68031b47364bd9baf71a91db01e45514ab6216f5eb582ef8fe9b06aaa02f17be8b93392d9b19ab9c06\n89e111169e4ae2f4016c07c574a3bdacd8d2f359561fbbdaa3474de9bc24ef8936784dfe6fe0e29a13cac85a3e622b61\na4c511af6bdf3892939aab651828259e4ef6ebecfdd503ecc14e61001575b313a89e209cb55a77ec19a64d29ada066ef\n923c62156fbf3a44926ffb5dc71f7cef602dbe941a98c61f019a27a18a50c16b6135b6099fe04a2e1dc88a6cad989fb7\nafb9191c541b61afa0ef14652e563cc5a557842ce2afea13e21507dde0ebbe6da5233af949c998c00865c79bb3d45ec8\n8a1f0ad65cb2b225931f41dc53547d756111ecbf5bc57c5ee2cc1ffd61b126d0389d311ffe26cf06eaead95af09c5ca3\n9040b20b5ac2e1a9d30abf7a4eea1ec2db8f3077cb2cfc8736b37222d8d3937f5d9f421167086dc5551e9f0bd2522d07\nb6d888b8c6bd448dccaf99c3f690d47f802e134709ce102fb6f6fc68156943c0762be6f386338163e01eed2d1dd5f734\nb94f0e27bbcda793e4a272603b3dcc739d3bf3207798df7319f8dc9d37cbd850e3724bdd30498c929debad971950223c\n9769827767be9d7bacba1b687289e0794c6fe630d33c9b607da1f6a65e3f34cb8bd65327d9287c8c5f3c8b5f6d3d133e\naaac72c993aa2356c9a6a030950441de42b2d746bace29865382f0ef54835bc96958b2f00237d805ee6a69ca82117c1b\na2b1f027d80c1b0e79bfc7dd252e095b436fba23a97a1b2b16cdd39fd39a49e06a1ca9a1345c4dbb3d601ffa99f42bdc\nb3fa0ad1478ca571e8aa230921f95d81aed7eca00275a51b33aadabd5cb9c530030691d1242a6ff24e2d4cfd72a47203\na43ed4368e78daad51b9bf1a685b1e1bfe05bed7340d4a00df718133f686690c99198b60031513328fc353c6825a5f2f\n965e145711ecf998b01a18843cbb8db6b91ff46f668229281d4ca52236c4d40804ebc54276e9c168d2a2bfc299bcf397\nae18e6efc6f54c1d9230210ac859c2f19180f31d2e37a94da2983a4264dbb58ad328ab3cbc6884ce4637c8c2390f7fc1\n83a9200486d4d85f5671643b6daf3d0290b2e41520fb7ea7030e7e342d7789023da6a293a3984308b27eb55f879ad99d\nb925fb6ca83479355a44abbcdf182bfac8a3c7cce6cfc7962be277ce34460eb837c561257569be3cb28023208dea80dd\n9583dd991b62ae4bd5f379ccd3cec72cfae1c08137ddfbacc659a9641e7d5a82083de60005f74fc807bd2acd218d0789\nae73bc32e9ff5926e1e06c07a3963080881b976c9875777f8e4cf96af91bf41bdbed4bd77e91253b8ec3c15b4a6d3977\nb2a3ea90aa398717ba7d8c46743e4c487b63c5abb140555d8d20e5115df2f70d3c84a2cb9a5e0536b2d93d24f271b38d\n91d119d3bf1d34cd839eb69c6de998b78482ab66bc93fa97e31fb9592f36cdfcd673f52366f8c8e8877e313b92d4a2ad\na1907e20120902cf68912cc3046f8806cabbd7673e80218814cb088e080dd93b5dccba395b13e0025f5755c183276c3a\nb2e2011df72504065ec4c12cbc2137b95cfcd1355509671feb7b00dbf7f8d500476a49754cb7fb9219cb5cba7c8afe01\na48589fb7a74a3dfd782cb3503e6294a81dbb6adb412887569f9408e9079371edbd9822388e0b7ec8d3297ba270f53ef\na203909bfe196ac65ed3e6800d577b6ca5c8fe1d40f7f925a43852951e38883f2ffd250a9e16fab3ed3dc1249650247b\n997ac293722a8b98f7e819f8e6c2d4c5bd1103b82d489d8b8aabeb905e95450b9b75bd61442cf68cc957212ec1c55617\n9895a3de62395c33509b153b7820bd94fd2b011f0cac135fcf916482f1eda272ecc79f83a61837e99c3a3c4ab2c5c2a2\n98c2ece4d49a64ec8e06407a0585081003bcef88af35210e22eab91169f8f0c044d611494b755e5bd915804b1d857747\n8bc6dd083b36d076ddf0e0bb1bb87cfd059283ddabb3886f02eb7e27f1f0539b2819527b56b5c13436523c4603ac1d12\n85ab8b7a696333c82dd5e179e12b2e127e67d911de609ff9a03cab95cbeedb1f364aa1f2b5e59353e4ba0d177f996151\na9478e214afa68c395aa2c7daf8ba1627feb71ad6d8bc7339734cdcdd5a42838e032736c28e6251c808d5a4875ef0d06\n8c53f62cf06a35321c8af3871ee4459768d0745ebf48942b9f464206309f42fc7b2c50f196ae1e43b664f0e2e718a23a\n8ba80662f6642d8866e832ec8082a4204ebc993fc304c4b794666856de0407620131a18dc053597bb40a3de0bf8aca22\n8c8fac6b911785d1561a985580c03fb2ebc613ae33e486a92638aa7d4493374118d9a6d9d99121e29c68c3d67ee4e3f3\n90f2c793eee07ad90157040b30558bb3b0164e8ddf856389d6742cf5bd1c712e4c6a8e5678da70a8e9e242ec7864117e\n954abed8f6d58896b7f6438c9780236c1c83b02d60a29fa7361559e619e5bc9d67b3646ee39ffafe2b3019bb3357fb50\nb79874f757a33085e1e751544de8fe3afbea92e0234f9c00254c2b36115a16ee46f085f22aa66e0c9177e5106f51b03b\naa148b287cf4f60c64f774282b421aae075f0eaa93a45aab4927750f47e2ef0b811d1846bbb15eeb2f293c80a7612e83\na588d8825e7b0168d45499dcff6faf0dfe1ba4f090fdc7c06d50344960c0121f10ad109b0b9d13b06ef22de5a04eef87\n8f61ec93d14ebfa9c31731f9ef0fb8907505fedc79378e9a3f65c27bed4d74b41e129c97672ce5f567d897befbceec8c\na008218633f1da10efd01c155f7ed739faec902da6dc48e9f19ccbc8d32bb318d71806285cf2003de2c907bbdd4f8b22\n88ad82c66f7085632d7e348d69da84200c53594553acf5432b50dd1e87f410c802dfea91be3cf804e3117ce13103f23e\n8498dba17de0318af227a3f9ed86df37a5c33f9a538be9823f8dce4efc3579e8296cb3b7200cee7c5e0bfd9da23a4b69\nb3c0342231dffe4c9bc7d9265597bc8cc4a82e2980ac6d1407108db5b00349dc91d5116fab51cf2802d58f05f653861d\nb3f2730455f9bf5a058598bc60f47740117ba51f6a767e1134516a4e42338b513f377027acf8825da5c4d047a62984fd\n816360914fbc9d8b865157bfab07aeb7b90bb5a7c5cd64847b1c3184a52266cd3f8f8f3ef99309ba2edc4622304bacc0\n8fd21b2315b44a52d60b39ebc45970a47b9495f42b88217ae057bebcd3ea0e2476c0c3d13de7f72016ae12ae966a008d\nb62014485bc217a0fe892ef1aef0e59604ad5a868face7a93f77a70ba3d7413443fbe7a44552a784d8eae1acb1d1c52b\na905822507e431b35f56724f6c8d2e93b0607ed7a4533073a99cce2b7c1c35367382447073a53036dfdb0d04978ccf2a\n81672e39c2b31845142963351de3d9cd04c67c806fdfe77467867463dbbd8a9b0e2400ccc55016e57cbedb02d83a0544\n90919c970ec668de8ec48a2a73bb75cb94f0f8380c79a7909fd8084df61ecd631476ddd474b27103c6817c8f3f260db9\n8fbe37dfb04bf1d3029f8070fd988fc5e4b585e61eab6a8b66caf0ffef979d3ed6a662cd99468ce98ec802e985da5fad\n950939aabb90b57a3d667f9820880eb0c4fee5c27fe211ce8ecd34663c21b5543c810b3676111d079ac98644c75ee0ae\nb06201ec3c3cfdaf864a66af128effee8ec42d25f1e173c1edf9207979fa52c871757000c591d71a9b6cde40f5001a06\na79054e8febd0450c96ac7a5fd6bf419c4b17a5926f3bc23a8616f0cfbc2849d97470174cd1baa7c739b12615334b6b7\n81c7391b2a1844ed26a84f054b5f03865b442b7a8d614cd44805b5705fe6a356ac182b66a3c8d415132e389efac5f6b2\n825af1563d0fe53925ec9ac0df65d8211b333474e59359bf1bde8861eecd03f2ac74534d34b7e61031227c2fa7a74e1e\nb60dd9bf036f1825295cd2014ef1f6d520cf729b4d6cee0b42cb871b60ae539b27c83aa3f96ee3d490ec27ce7e915115\n89ca43d5b7f3622b42df7887572297a7f52d5204d85e2e1ac6e5d7aa7f8aaea5e3a07280477d910db025d17cd2e7373b\nb93a2bc9b1b597f0e514fde76ce5bfb6e61eee39cbf1971ea6db38c3ecb055e7913ec8cd07fb0b0ffae3ca345883101c\n8d45546bc30266b20c6c59fc4339eb633155aa58f115a8f976d13789eaae20a95b064fedead247c46665cc13ba856663\naa8eacfe00e8a4d9815de3f7619d9c420629ada6489933ca66a571bf6c044d08b391e0d9eec7d1cbebe8def1e7523f1e\nb32fefc59a0d0319ccb1946b351ed70445d78d9fbb536fa710d3162b9659f10288f12d82b32ecc026d55f16cbad55441\n99c7c45c34044c056b24e8f57123ba5e2c2c039e9f038a66899362840cffe021733e078866a8708504cdc35816cb335d\n80def162c134540d5ec071b25ccc3eef4efe158be453af41a310b7916c49ec0ce06bb43dfee96b6d77339e11587de448\nb5f2fa4f68f6a26bcb70d8eab62ad73509c08ee7aa622a14b3d16973ffff508ce6f1aff9ced77b8dcfef7319245cf2de\nb4d0436019e779c789464716e1741c189e8945dab7f3072720bd9aa89882fa5b085a1755c48da21541f3cd70a41b0a71\n931e798ef672e1472f4f84c727a101e70d77b3a9f0c0803a5220958d6bbeb8aeeb56c769ab472a3d6451249a13a3f56e\n918c10a84de268aa8f1ba24b38fe55ff907be07b1e86b4a4adbf305c0d705c1cf5f65ce99e03e11676cedc89f1a4f331\n8e55a8413b823715ccd92daee357cedd797e69a0e78b6fcdacb7318646b9903dfe05e5501f47b3c52e74055b9eb619a4\n8b329bb63e6c985d7d072dff4680b3f8b1217ed20543277386bd30ec25240d9dc378837dcd5cf4fd9548658635f4c537\n8c2be5386052b22986b33dbc63c5afacb6d0095495564ba4aa28fc8c880a3c78242fb083248d788ed928deb1e30a82c2\n83a2b7bdfcbd25d6b059f27218e009ecb5ecc4da68ead885e00216411d8222062ca42f21c4d9cfa19c31522080af677b\n9620334d2633e85646b2e2fc48dc6c3f09c64ef1706ed78a3bb6ce1f6b274a727364df71e97531dfdcb392f70f27f536\nb6c84970ec04545121ec3b79376f4e45053c97e8bf2b11922cc2490a429c38735466097ecb81cc9d9692c74d2fb8abc8\n8e55d707dcf265c5ae29a32c27ce66f200fddb724faa5bbf145ef42280ef645fa2f0cc3cfe2db8599b26c83b91e077df\nb910b96b763966402bbebd68a32c15a225ec21e1357fa298478c5981a4310e556103fef0c73bd8903e11c4ed2c065647\na8fd933a0e9fe8c459809bd93b8ce153e2af55df94b61a1490736b19c89469954da8b72dbd072d798fc06fc3d7a3d60a\n811b279c113828e114fd82c2070caa7eb089a46c8cabf865f9c77354a77ebebe0c4c6400dda0e66dd017cfc44d76851d\n8ed03e91c331afb3ad6e42767e1b3e8d3a35fb831805ff1b5fd3e91878e04027ff5af1165a3ac295f1578faf2c83b581\n95bf53683d64a0621bf1ca6ee17446783f6c535b7a54d6ea57723487a215759a54f886597a55dfdd560424e368ab2759\na9bea378768fb1d7ba365a16531c51fc1975f1c73caf2a0891da28509805fa84e2a8db7c6ccfbc620e9002317abf174c\nb8308250891015deaf851c4e5a4cf4704d104f94064418488d7e3076d49f36240dcf6fdcf83f45fe8a1d97fb02e3db59\nadcda6b63da21f4074f142f8e7f3a2274f624c733e3a4001054a1809711529c61356aa087f73aed877a58ccb41d38d12\nb80e7869239ae26d1da2e6683f064d1dc93cf4a2b66e9439b3ad9b25324e969bf98014760d29e6b8de7ff152ef498d0f\n8e9bf968911df3bb5e3a7655e9d8143e91ee87f14464d7ba9c86e1e31b03ab31b91eda121281b79cd974d9ed2657e33e\n9007277e8335a43e6bc3c2f5f98c0ba7024a679b7156aeefe964f1a962e5ac82154ac39d1ffbad85a8f2440f3c1e354b\n9422b9d670e997b7c919a429499f38e863c69c6a4d2bb28d85e36ae0895c620f68b71e39eba785e3d39a45be91507757\n926094e01132938000d82dd9a571fef5ef104cd25b4015a25e3442af0329e585aaad5472f0e7a69899ba2d6f734b40aa\n95552d8057f7e32c24d69e4d6c51c98403f198a20c5be8826254d19cab2f84d5758e2220cea7e38b7c8a7a23178fd564\n8abcf8dcc8488bcc9ab23c51b9e7a0d91dfc7bebe88b7ed370ee68eceba643e939c5eae66a4aa5fe85120751780e351c\na91bf8198f029e6a4cf6f0cc39b629e9aeff1c77b8739e1d5c73d8c1d3fb5c8f6f23e27b435bf10b5b4ec1cf6a7249ed\nb932d87ee3a4b81341511f90fe5aa36c571e8b914f25abcc33dd40ca67a3f6444fe9362c1434744e4af18d6e045c54a3\na8e960c2be9b1d805d387b3ebe2134d421a65f1fd4c1b4cccdce78f9926f139eea78e3afb449b3d6dd19b5d16ace48fe\na7e2f57cce509fe66707eaba9b4c042c1be93fd6034a9b51d1d30c45c4363eac79d54663d525c9873ab0eec0b1cc4ed3\naa162a31c2078f4b080199debf24494a8dfdfb9d8fc85b198a861b12a629c73128c55a883e4c2de3dfed6e0e1b83eeab\nb5a4d075433eaf4115717a84b4dc37f843d44bba0bf820c92ecdedd5afb61be60f7708c8a151a678d9d5c0ae531bffb7\nb56ab96f7a463c0079e05dc766f3a6a31cae5c5044947734ebe0a26e01367c6763cc8de6c2ee2f3b8218f05bef217474\nb60792ac506b901065a8bc0180a86e028fe34b62ceae1ad640c759538ebf3a2ad9c8c927d662deed6f489ff3ff7813c4\n8c8c2cdf075504d12d441a58542e1f8e4bdf92b3ee4775e836b2734c5ec1e3df919b931386417d04489a1dca806c87d2\n8ed78e91e5c4a68894cefc2f7fa71f02e5e12d40f1bb74332139bc7be4d92c24e07d5ece0e82150ed474aa1337af4c18\n87119c22ff8aa31150bde537d863cad661cc5159b12f084cc319224c533f0deb28526ed8568d00a1441e7d8bb4f05673\n83a60ba5a9cccf22cebadf7318b706c9f29abd25db0e2fc1c802965351b53cbf316df72ee3e9b2d3ae7f3c4494cfdff1\nb73b6a9fdd3e7463fbdaabc9a885b7c82201ad867d1bced1c2484300a01cbbb3f1e21afa95d4c7cbb6cb983416b63b90\nb1d89ad16981ff9217708090d4017662d8838f21f3a3296cffe14590b533905fa06a20e40dd497bd291fa4dfd1bfc511\n8abde560083e071a402e3c7bf31930f537f67d2a7bbc734a7480b1b760aa712ebd1cbcb65b00e11e384e980222fe14a9\n89c731d8f31afea8bdc9c32527bdca257f2a840764d40f6e49403b8e75ae51017d505ea4fff91bf28b6f3a1bc65b8bbc\n80e9ac8e077e86ad050ee73dfce268a69564ff1b8419e9c236d981fe7a5f0c2bc756e8603ec604b3b9e36da8fe10a49c\nb4f1eea0f304898b1323c6382732e6f40e556bfc68af9ce73f6d54e92f5f23cc4f78eb3f43d578d81e7627fb40f092b3\na0e3a8d1348f8f153e08ac4839232d75d1d6e81b5de184ec4724f8213baf98d3fe739a96f6b39d79a053b628c3a09981\na6915ba0b52ffe4a381bbb8ff3791d9d3b848bf89b3bacbb2a7d2e5ae21f1353cdc304b3cb6e82416f7e604035c27d7e\nb2c4c9cdfdd2fc9a340ba3ade9423344b9f429e8c7e20a8abbf26400376e312f3ae35d1c456be99dfb5c02fc8a36cbfa\n9657d57ca0641825a0aa5687f3f87659d893f33aee819bafa5b1ca1db554811c1c844f971e278606e3a2f096defdc67c\na4ad24d0a557704ada24d8e27a15604bca28679e260b2c69ccc8e6cae5499866724b700605a90df7dfb35130756939b9\nb18d9ea6682f73a1f99a9a4fc98c38fcda02c1a18e8c5fc080cf935a2ac877dc5223fca273dcde190b906178d0fd05bc\n8ea5fefad0799c885f50ff10d94bd0af5b99b0a446cd1f367ae5ff529cc47e09f3018115f3c0ccac2fa05bb65b84945e\n92450d52e6c7d13ebfcdf5674d6761bbae2fc5aabc865d35d031b588c383e0a64cf69a73dc93948632e2b98f74a5ed86\na356f171a98df4ec5a96d556eaccc6ad34b4238aafcf0e94ece27cdbb491749fc9692e78b84dfe80bdef2914079d34b5\nb918703a4d3507d266414712ba8eb7ad17da07cc5f952b5c62ef130cc6ed1ae3bf01237fc8848c179725bdddd465b301\nad2b0554570bfc9d97510cf59bc38e10ca54a93649c30ac9919bd0255e43bf525ab11b74f78a51ac0973cd0c5a5dcb54\na7ecaf4b631d179d32ac1632390d95196a0035e00da6c0e6e13b5c09ae44b15ae6c21538b5a31b73bc5f650ecd979b59\na37704eb4d728df2a367e59fcb6c26023136230e37f3b8a2f3ceeb1467f5cd30186fc0116f98b64a8146fd2c5903e8d9\nb09373ce92314678299ae10ec1f93c702911beb4115c6b5ba6efbcab9c7afb599f59793912df70a98868bce6545a33dd\nb52a878a1393094fd2b93f2d1eccabf2830ab10800ba4cc24dcc7849cd0978733263aef2fcb766a7cb575a7a99383db8\n8dac097e006fda4fb9d6d7ae52adabd9448ebc8d5bd5b38ac0c4ed38ceb510763174f7adfb0b473c38e52147ccab4239\n86b19c41efb949937d74a7875549ee5e997f9fdac7f7198085afda233cf74341a38d0ca3767c76cd35f875b89a35f78c\n99f0d927e5ad25cd134f1c70b72631cc6b5cb4ddb86c0642b900464e33d971213a5239dddaf71f7a42f2d6d02a12dcc6\n8355c38806c335d747d4e97f0083fb96585677da18b409a85175ec35dc3f74671817b34203eb18c2f729717ce083ede8\nabb3603adb061a036eae0afa5f23d79c3b62442e0e3bcdeef896f88995585c1105cd3065410368456a4d36b5b0485a83\n9051c5c0011784885187d04749f774b9b4f6bc594b0e4e18226de79dedc4d7aefa3529c3d2c728e180f96f3e204d578b\n91888213e7d321d0bfac884edbd5cb756b280753bb5f8bc6acfc208f525757beca24bdf86fc68d3d8736ef176a960b49\n91258bd7ce6e3b7516fe2f5391a368d826da299e0e99b1f82eaa44b62b110ab696adc92debab8ba098a52f38dfb3c5d8\n96e3907340dffa9da3602d3b94bacff7e1bb8649edd3b9bbd06e1bc6781e78f91ababab12c0b9be7c66dfedc7001b66e\n9513555688fcfb12ba63952ab36a67b36affdd71f7b843e8eb99ccbd45421698024608233efbdc905eaeb26b334b33af\n9913ca9bcf11eeb408da02e4317c5ca0010fb2f4490b282ddb758001c08b438c3b35351a8cbe10b7fffc1293ccd22d4b\n85dc2471860ebca88e5a2766161fdd77f926d2a34825d1134a30418f91a741759668e32fd1e37c415d07ab5824338e8a\n8b128917e828a0b5eb6fa8ed72b52fae2dfaf74febee69a2e2f87e8df702f0c5bc0fb620c8d1d2a07f35a15ec9c0f5a8\n964c39e7840c130b01bb481ae7bfc92682b0f124c9c383f9dbf3027f2249151925f4faf36905af476a54778d69da3f48\n80671ece658cf850e522d46d25678f934ce6df043f25f8707235125765d40c2eaaf39eda6092f75039b22cb58bf2c29d\nad4bb0e79fdaa340b1347a46b0f64e801c72a89770dda0a6e4bfd35f2df5146fce9934e4baecb1c2671077c771eb8089\n80b3bd3adc6cf198fcd997f8867d2839a2eb28f57390352ec423b8a14cc1f2ab21c6e286505d6a21fb134dcd8d8f11cf\na26d46a6b8a75748895a1d599e7fd120d896340e79813167a400b2fe463452532a4cab419074663fe1d29fa716b76a33\n82b1f3a8a1df29207d7ff020809113ab06080a7f0c631f76ad33f47cdfb6a567143144df97b4ed7f676d929195b04bba\nad96633a3744648ff0a2e4491e8219c9c6ba6e655cb058c36320a8f72cd5f72c00bddf97083d07650ea9ddc005fc1ff4\n91d0783788626c91662359dc3ff36a8bcc6831e3f4114f85c99910256b1d8f88a8612f53c7c417d55581dea486f38926\n84edd9e87ff3d193ebb25f43474c33fe502a1e2100fd3f93fda6520f5e42214cc12e9f8045f99aa2423a0ee35e671854\nb55e06a4b1fc3ff9a5520e0b7c8b5ac11b28385cce78d91ce93b82f1bd7f7afdd4195d0c13a76e80d0ed5a4f12325fa7\nb0b15c7ddede2b81d9c835ecaa887650622e75d0d85f81b8bbec7ef24e9a31a9c9e3de1f382d8c76d878d1b01373f6c8\nb1adb47c20f29784116b80f3670182d01b17612d5d91bd6502b0dcecdcf072541f582aafc5e7dd9a765cad52151684f4\n8efd1018df9c9e9814a9c48f68c168551b999914a6719229f0c5bf0f20a288a2f5ba4a48ba966c5bffb0fbd346a4fcc6\nb34ea2bd3269a4ddb2fbf2514401d2712fc46c22642f3557e3b9c7acbce9b454dcf789573ede9aa14f39605fdd03f8c4\na9e1428ce24eacfc460aec2e787c053327ba612f50d93510d58b2cb0f13291ca3d16358325ab3e86693fe686e4f526f7\n91eac7361af4c66f725c153da665a3c55aca9ae73ead84ca2662cf736fe6a348a301be1954723206dda4a2120202954b\na6f02db89739c686407825fa7e84000ceedb9bd943e8a0908fef6f0d35dbc33c336072ba65e33e15ecfcd5714d01c2f0\na25666faa12e843a80365c0fef7d328a480c6e3cb7f224763c11d8cbabd0e7e91a5b647585ee905cc036afca14842bae\nb4348576439cd2e48c01cb9cded7cc4a0ea364ab936dd679ddc7d58b48807e7fab070f2f1ea88595b11af4500849026a\na8c6c731e0d0464ef7e4fc1b049065eb4ce100c01e1a376365c636a0b23851022bf55805963bc15eb57434a837e81167\nb0952937b154e3a4c206f96cd96c76ba37624956b0e4d43470bdd97b4af878326b589e3eaee82fc192437123096799a2\n97d07ec31ecc9923192e48d37df2cf08750050fb452dcfbdb350fbc43e146bae3590c5b732b31ebfa1ce5d884ad5ad57\na69359aebbfe4cbc4d39d178150039fbf284cbc0edc68a6bd635ee3a1c76569a4a575c907fff691b2a4d82a384c2945f\nb321c2c0f6b5902ee9056cce7404d858da9a573d27348c1a6bfea29b2746f2aee7abcb6192504e5a583b0caeaba117d7\na74e738aa6eb4eea58855ae6f422af22812fb388c83aacca5bd5fa4a88d4c01463174a229aea2830c348dd9ab9307854\n94306a3b106bc1644346bc45c05cdc8287811d5c86cad691bde0c65d6a686eb9c0ce79ad91baa4547e5d058ae8bf7310\nb64140fd77a07633e4ca8d60786452311dcdb8ce7095ba51dad8486f57c3bf4e69bced92603f71da992a48ad817ab275\naffe7f4310f1dc68e5e3cd640bedf864f51bfb46bb752063bfc18e95930021f784e509261ff9c560f53000c361b142d1\nb0d2fee222c6f963ba3385547f921a48964da031d737892604f8f2677d4905dbf615046db57eae6c6dd756709ae6932a\n81700c66aad7c2e51168e028b0fe086dea75d3b17d93a4dc1f47a6a0f025df0bae1c8c997901837ad859a84197e7bb00\naa4ac5fdd602f8b79cace18690e67bad557a93d00c0e295074185e8c6b4059a65495d9971685de2fc01d2171ac8b706a\na8becb3a64fdf35d65d2857898dcf8053b5057a73ab8c5bb5324af1a8015cff47efb85dc3eae7364cd5c850b7962bedf\nb72ea09bd0b72f8cde3466f359ea69b194ede93dced534efba1b9ebc6f3bd53942fe2965e992e82edb6050cac4ed88dd\n85bb8dd7eef023a251fb6f220af54687747f4c91983ff728163c4618ffac40ee6edc29a0aa6d455276bbe017f63757c2\n85a485254a11b4c4a943d9ec509c0dd1cbfc0ff5273a00cf5c9f0babec973efb15348e5d9451b548293d778e3a2b62a5\nb109f3ac809391e772b589c196b013db69a9b2b10ac3898feb70b986973731f30722b573cd0c9324158ec20416825385\n8a4eb579a840d438bed008644f373ea9ba2f28470d50cf1d70af38ba0e17326c948527b1719dd1bd9ac656ebd5aedd10\na52e9d66ead5ee1e02ce6108e4ded790d8ec83164a0fa275ab1f89a32200726c8e988d66df131df9e62dd80203c13dce\nb541cee9febf15d252475507e11d65c4b7819c26cf6d90352f5e8a8f5c63e254eddf22df0c35a7be5b244233e8e4ee5e\n8153c297772adf4603c39349142f98cc15baeccaeae10c3230ee87d62255f6814d88d6ed208c368d2c02332426589748\n970dc9782f1828474e9fab7dcdec19aa106725465a5844caed948eef5c9e48199c1b6bc1a637ed7864116927e84bc65a\na975a920624967f4ecc77ea5d9869c434caa64c330024194615a8d0640c5d4d4fb139ea11a0c73a5c6ae6dd3fbf0ab5d\n811f0f9e0c12acfb4b9dca359eaef3bed18083bad96188befc036ad3143b121fff4777ca6dc70a835bbc4921bd25f5ff\n82341c6ebdb97c8b72910da95c7eebccd1308b6a92999886aab552f0642882d5c7cc60931577d200efd6066530c998dd\n860f7162c2f5fd1c0953c6ce75bd8c52eaa48032b914410681b8cc05e00b64130d1f96ec5a52df66a04c78a9f9f42981\n8a578e674875571fe1a0459843495a5ee1d9fb6cd684b244feb9488f999a46f43363938cd0542879ea18ed14fba10a6e\n8df217aba4da6781f0f5139aced472025523ed6e17e504511c04b677ca8197488e237d8bb5dff7b6b3898cd5a6393dd5\nb2c9230ad35d7b471d3aee6f771517cf3145ad26200bd6fe9c7cf28120e2945fed402e212d2330a692f97bb9ac4dcf12\nb78b89e29e8b782603b222cc8724eeb83b2d9d56bc02f59a3c899ab76429dc721358b07dcdaf422f59520b7e7ab4fb55\n82682a5617843c4ac8d4efb4c3ce715c76c1da2c3bab1ede387db503f3489c1bfdfc07d9231d96f955df84fd225bc81b\nb0f53725cc610e78b8e8a4e6823a2ffe44dd15a9a5bc8151ab7a3787ddd97e1d7f2f0e6efd2876e5f96417157143e3bf\n92c5a93233085e2b244519078770c7192af62f3562113abc8902f9d72591eacf52bd15ce78653ab9170d5067606287f8\na43ef97dcd9b6ad288846bf31fccf78df72f94bc7ad768baf5bf0d5dfa27bd74ffcc6b6c6ed1d1f09e09be3afa5eaedf\n817d43bd684a261fb30f709f7926cc4e1a31fd3a1a5e7e53ba4d664856827b340d7867e23d55617ab3514c8a26a7040d\na599e22d3286b32fafaaf79bd5b0c5b72f6bf266ec68948478f055391336d756b58f9afea0167b961fd94234989f0f02\nb70db7d8e8356df2e2070f8d658e560081442f3f3b95e20f4bf30106835d76161101163659d5d12cc0f335fb042dc66e\nb8f725b70c957aa3cd6b4bef0d9647393f7c9e0b7343e92439372f0e9aa3ceddd0cb9c30be331742b87c53f2eb030593\nb2fb5e7762f26036e7e966f4454f886758804d1f4c2da17f3d13b0b67ca337f1fd89fd3cc798b07da6e05e8582c9537b\na377f944dccc300921e238ed67989872338137fe57f04cb5a913c787842e08b8a1adcfb4d2200abdc911fc1c766a7092\nb82e98a606071c2a33f2ad44e7ace6d9471d5434500de8307b5d4e0083e3a5cbc67f0609ca8055f0ea0ee7501b9ed916\n8e58f9a04d33a41ace4944615041662dc35057e645f63e127cf0d70f96ac307d33a62ce98f164d6eed8536c1a747dcbe\nb5b11388071ffbf57ac47fc195736613b964ebb91cc8e2c17b32646f91d64ea506282b881897fca96c317364d3290de2\na40ee9b7551133856cfb3904837f9949a9558e59a418898affb78adf1500fd6ef6328fc4422161909aea2c79ad08c14b\n81f9eb4ef28aacdb43e11dfc9aa92ba990be4d3c14b484fa677edad3a3fbfeaa859a7f9322b5e95818240d7326215abf\n84939b2b6bc859437d1a7a8d6ec9a357c6b716c4b4cc22abc274af872655940cfc72c99f5d0283d90e05191fcdb1c232\nb78a5b74a90a805410b6225fb9576d6d73752520f25cc3fd1edf8ea9f6559d3080f9acaa2246809b6a66879cd2ae446b\n8d0a92baa88bf38dce5385ccf15d345b28e2e5d0a2d469e689353d80eaed8e8408933816d70ad752f226c59a0d5b5f0c\na7e15f8a8c1655b7b346c9488cff278c793505379b781b31b273b4bf09b3bdfca1c8ab2334746075d636b2e05859f215\nb70daf14f2adce03c7b92d6aa181f0c507a80a37493d8dd12419d5ed5f943a98099fefb46ac827d6e4efb9b8233c99d6\n8c2480814661744d116fba7355bc6b1914975e44cf0e976d50b6a20092bb1c636b7b44ed3fe8d63b5555ffc89fa759d6\na6059528a4fed36abb74ab992b22a4f9bf1d05c5de2bfe6837b9af1adfed98bc37ed7481b5a99675d432743021fcfdb3\nb7e19f1b25bc159e5a769811e773c3a8ffe8be8ac77ed0b711540915e5c6e7bafdb407cf9b85c551f67fd621ce8142a5\na2f66d4f7d16ed3e7ef5fc90b42676c61a98ff18bd26ccce91de03b6a0130c1db17a6bc57be135e410a76d2255b15813\na139c916927dc3d3fb83598da9217ca64f0ae127215332e9a7ed82be923b89a801c44580d5617297175f9dafb1c4eaf3\naf08e1e1b04ec95366a12d99c80a9a9ac40ac984a575dd0230cdf4eb346a7686da55ef0a276f3356f814af31f9cbf1aa\n98840aefe287369221c0721cd7c1b15b1d670c3cbbfda191cdb5434bcad757e59c30ec82b2d8c75947405888d44da435\nb7c61c8d42daf2e278a12d8f6eed76090b71c82275f8b33504aba75d95103840e8acd083e97a5a5aa79897876a68940d\na0264048d2a2061d32eee4f661957ff351e78436bf49ef973c059612874ce9c91970869d011dc13a5b7c754476880a68\n897199a4d8db8aa2db5d9be3d4f4312e41fa0739eb06c62e2e046c4b9be829a447e5d47227e2d96195d3b7b66eb59da6\nb512a9082881f5dc90b02f8bc4f38b133348c2e933813852f6a8e7d8c270c9ce68a5524af7d1d3123e53b2d02a53d465\n80b332469254a96f53c95ec79bb5a8bb1c387d40e58b73d72f84384c696ba0d3c81d6ac90be2979c364c44294e90432e\nab680c2e547ea5cbf95bf813020beb461d50ee4341dea944eb48f6a8584d35682d20186e3b190b849a1ba25625a7f499\n9070581993a0531d6be372d370c2e4ab2ee53f30e04a75ae61ea0fc2c320914506c4d2d4b4487c1f8fa88356fc45c895\n8424303dad6b4051ab633ad27ee51783b2ead61c5a6dae1eb3ed72fc1f36e2a9b1f315504a4bd90f9664091f2f403d4c\n82225611eee626556553b9316dab4043aff241a81826a33aebd9864a91e299b765ba1fb43eea2c2047e6b75b6d7fe3de\n8a3fb221c616ad55c352dd5e0c09ee892022013d6965aef40d4f277a42e9fa01226fe973cb99aaf6ffe4f4f348fb54d1\nb07c07679aa51713e8a7d7bc304dc15ed5664b66bd371877023f3b110b3927e09e259ef22895c4001421a69c6c013cc6\n83556c76bdac0dd8db6da231b863c335be076e7299802eebc259e0818c369f933a4a4b18e2df8ca07e82f60767b462e0\na516f659b7915d2f7cd0f0f5ea2491b15f0c84dcb191e7671b28adf7cf14a56d42cfc0da94b3c269b45c535f6eeded49\n80d7cc6f26066f753041b17ff1bd27f6d4b5603a43729d33d596e21a67356db84ca9710158089def425f6afaf3207f9e\nb802a47f9009dbd48851209ea1e2739020e717f0ae80671d9f97a0e43de923273f66b7fcc136a064c8467372a5b02d28\nac92fec1864a8a911633f377df87aab56713876316d48240fefeee49ab97f7406c22e70f4938b5912c5c4e766146b7a5\n89224225b9835d04428b0a74edbff53dee2be285ddd1e5a3a8c37307c0500578155f0c4052e4bc8be04c56862fac099d\nb1d3c8492fbf22ea60732745edd3b0163ba5a20d1a3315e3773f2540ee38cf308d42ec72cbb3e3dcea457d1d132c3904\n8bd00e38ec30ee6c44a0e5b222f1f737c9ed2a4bb9225f1741d6334df966318c8a0fd2fbb109557fe8c9479694b8d8dc\na930ce5454efc0b247dc148aff869963fc5c240241d5590415cbd36634801a04d3873d93635911bb9c0c42ecb005cc63\nb83d4f80e9e0fa47b42175df74935ba8aad2e559b80e84478ab1685bc3eb65d51b93e5738d5ca968cc055ca0c552a03c\nb3ae21258f98051f13af3878b8103bc541fe6f20b1c3f8fb4689ddb8800b3c25cca9b55f0a4104bdf15dc4d5844abb8c\n831ef8684c1cd446c58c59d0152aeade5cc305bca6aa296b92162615f052ba280fe289edd62fda6d9f0667c186445f52\n97bf9659b14f133885916733b7d4ac7e215495953caba970fa259f7bf6b79e661090ec8d79e1c9ce8dfb17e8552f93af\n84d5a89cc2332baaaf3d19627a65f4b107f8dd9228a1434b327732f59883bb54fb8ce60d6acd026ed4b0e94e545d1c33\n8e66cb743f95ca5486400b0d89d02e20b98044be1e3a12983ff9fe086179e5a0ebf4dcd5098703191552e9aa660a6de5\n87b4cfb35bacec805f8148786788db84eb8f4bcecdd0570ecb592c705450ce1a90b6d183d37ef58780ede3995be67497\na72a4fece5478011973afa543f6d8a8ea06a64b241cf7d8bd81fa3740ac2a4cf10e5120abcc1c1101f94da89507a40ca\n89dc6001a96adcd2679916f43dd19ea00508c8d5dd6b0090eab7982fd2f3571b62f3029588a0649e73f49124525407ea\n8ca75edf1259599e873530eff6151c822a4018e71a340534219ef8641cb6683215891df41d4e3c0ca2560e57a7aa913e\n9282d32f868e5ee6f7fc229dda5b94b603476de30cec0a44a30edf396b52dc0ebd472b8f726d4b67d76179fecc1666a1\nafa24704223707db89690bcf9761f07a093f6009ca9fc945e0a8801fc29f9f51292bf95243e466fe736088af36c55ca6\nb51332508ddd9a2610edd2b0ad120272ca342e96c28baae37a2c4f07e689303a46c237712d07e446b1d67c75aa8ce32f\n9219249f3799dfa4eb4770ee323f821e559e7406bb11b1f1889286221b22c8b40ccacbd9ac50ea3fa9ed754860bc24f0\n993515270c128ede64fe6f06755259105d0ec74947b7eb05924a375fa5c6d14822f3d7d41dd04fa5df8aa2aa205a1dec\na83be4c2511bae430034ab15b194ac719d7b7041f9c0e321317f513a97db39e97b9ee1df92a1962f265b7a3e98cdd753\n8ac7feaecd26f7b99fda3ed0b8a08bd6dd33ed5ba687c913ec0ffc64bbbefcda6f265072add4d944f2005634601ce68b\nb4e3ac6b09299db9e1a469f3a0b2d8d724ee47a417a517bebc4c2ac3efc5cde086b57b9aa4efccdef2bcf8f456d973f6\n9262a24a84fb7b2a84d700f98dcf3fefab8b47293778c20bfc356860cb84e0bf102bae9facd9986d92d1762e0a955836\n97be2041c42bd25e5eb519279163b0857f8bef627492c27b1182f8bf0033769246be5886422cbd2409c08a2615352465\nb0b87d059a00e3effa2e5e4925da913b245785f2932ac3ed364ad19a064d3561b8aa6afea22c951316074f0df179af36\n891644b7b3321b06a2a40cd96c2b8b29d81cde5b48546483fdda439000982a9cbf1f6333fb6c089d39da6492cdfaefe9\n8da9149b7f4783a24240b7b9c7e6df4abf8d699d3834e31ee591489bf4744141ab199c173db64397c1f9bd5f9c862ca1\n8ad7f9fb2742654aa2964fd468e7645436cefd1308b064fd63fdf0d3adb4caf6cfe5426354f6cc284f208b03d6b2d918\n8435e4668f7aeb027100d21e4e0b6ee22b401d21966a3736b95610de86c7e2f2c9ee5d0f901353675eee5ff458dad69e\n9010895f045538bd11b47bb8996f27198c8d6cffd3220569e6b7407f68f35c47d1efdbcecbf9b5e241c3c2879a4f6936\n92a9aa443b5ee7bf13b6f43f2d8d8db7f6f33fd4073a606ec5772421a55f464831419726130dd97829a7d4bfeb1ab078\n843f3266560be6dcbe0258c3c7d7e332330e10630c069892954290288eda301e247f479505a8a1bf7e59c99ccafd104f\n915bd1dad808f8a568725bd243f80b5476a2999d0ef60ea3ef6e754155bc4121b2b879d01570725b510c5a3f09cd83ef\n97250d781815b1825be192714884630e9f564b9bd737d55b8ac79ab48d0fb3ca53bd21ead7b2fa82a05f24083f25645d\n81e2d52333391ff2faab39611689a62d6ead77039e8703f4e012d53eea17a4d46f2e3342e44b6edbe73a542b461bda45\n89c9f9fd5f638156b018831c1bb70c91215f4a2f5a73c84b1208bdf6ad652a55df7213336ce12bd910a0e1a726474f95\n92bd02984d090ea7e2f3eb7d36d1e7b9d731b6b047e3cdd4af7cc4ee177415fea7a145205e484b366d84191f06af85c9\n85a86fc61d5d916ccbb219db52953e1495230aaaca63237e9165276405f07ad9644e253ae394f1ccdd231944e7143313\na2ca5b3fbc9f3530f88c0ed7071ec3d89b272174c366eedb5d15d2b648c65d23c0faa4e92c776357e7c6883a0084d03c\nad171f5badcc99c8ffc9d8b707d792046f86cd0aa478e0e2fbb32fe095f96cd134ca548d1f7713057694dc6b26465315\n96bd15d57da9980870fbadc98c68db76824407dff2700c45b859bb70d98374d4a4ba99e3ed0b0c17f480fe08f16c6b8a\n8300bac69ca088c3ff35749b437215e9e35a16393e9dc094f520516ba57a485def7029d30adfc72bca36eeb285c19301\n8a09e20be64f346668fcc7b07fee9c0ea8094c935cbf4f3a4cdbb613d4b936c1edb9256b7c884efb72393d97c0da00e1\nb1f85827ee6f041f93ab174d847a55710824fa131c9ade9561168c3962a25c617475ebc4105eba6e738961a754442bc8\na131558f92e215969f41b6a57d1e2f424149eea531723821dd4cf8c54325cbe66b002de2c8287de6b41ab4b5c35f060a\n81ba492b8956f73557f361a856c6c884ebb300d828287d5699e22e0cfa75c8e77a61616551d0be5178263898c461d6f7\nb2608f44d3c22fac8e13cb59e4ade8b9a98c4eb1ec0959ea400c97eb937ae3f66837e91917057148befade8389af2f6a\na6ff0323b5a18a4becb2cc6b376086b47cb2baffbfd1b0f2229ef2286fb4a34c5cd83a5faed5def7bbad519fcab8a856\n857d879cb9eff22501d883071382832730704bfcc5cd5b07cdce7ab8dc41c565a1eb0e7e4befce8e0e03a4975d3f11ef\na2879a20c0360c516811c490289be7dfbf7dbd41d2f172c9239f99e3d091957e0446854f9d0f753d90384a80feb6fa56\n83518624f33f19f87096a47d7b8e5f2d019b927e935a9021823fac6564c4f2328dcb172e25bb052748191e75ac682bd0\n817ec79132faa4e2950665712b2c503d7fb542aa57b7b36e324f77cda79f8b77bde12314e2df65c5b5296a6bca9bb0b4\nb2abf8fb7c3690816fa133d5b4aa509cd5a6e3257cfeb7513d1408b12371c4d58c44d123ac07360be0d0dd378e5bcf99\na9fe1e4fb1574c1affac5560939face1af6657f5d6abce08d32fc9d98ef03186dbb2dbb9fd1decd6d8f4e4687afecce9\n89b2f41e51f33c3ca3e44b692e8a6681eb42a7f90b81c9e0a0bc538341df9e2039ee61f26d2ebe9e68df5ed1bccf8cdf\n8b35aa7b1d9e2135b35a1d801f6c9f47c08a80e48603f3850b425f64e7fb9860d1adda04f92a1ba22d00dd0a26e781ca\n960574978cadedbd4cd9f764bee92f94e08b7af65403de36b21bffc9424bcee845b3b028af2e9e545dd77cf1e69a6a7d\n840aa0f34b5b6c39471f54d9e85f1eb946468c4fc01963a9027cd7864df01f73c2e864f1f07aeed4b1b1af72808dfa07\n834464a84a11200e3c60f816044c254a7d9baed64aed45a17325cef7fd62338e0a26da78d199d30ac3411714dc813223\nb4ac6fe2f5059546f4ad9a361426ead33237b6b9030b129bf0122085c85fe4ccb33cf90f5a7f23c5b708a5ac64b487f6\na12aa9035464795f2a67f3eaba478d5ebc838ed9e997c7dfa241e1ed60a94b367d3f969ccf0ef02028c35215698b309f\nac8d926492ec2bb68c6d8aa9bce49085d3d266f3d5f1f924032b87c42b44e41da7c047eeb01e4618f9d0f123dcaa537d\na5142425825d813ed8ce1849d81aa40b11f1cc3daa89a9f798dd83065c74820b4da6122b3308f528b074531df66e1a5e\n87ff55c9f5aae079e7bf24084dd9c6b3bc260727d942d79cbe8dc13341d98525b4ece3ed8169994b56a387642f09134a\n88e680f148ef2ecdcfed33b61f9e0224790fddc9069bd6999e9bede1791e761637c0fd60b52990b6c93e6e5429e483ce\n94bc20bf5aac6e9f1060d02eacd06c42aeac9a1c5635b15a83985dfb03938ddb4999a822e865635201489c7f75601b29\n849221cab7599f25f0b114df092bd5e8c2430503ae959bef1543a101de0790a78245db6a145e26f40b5f9bcf533219a3\n88b6f2c2e7a7954fad11009d839ce50780921f80292320868d481e38d26aecd80fa607e82219a99532d88cf33b39f562\nb0d82947dc23c0b88b86c321b582c15decdb825ed909a731b42d46bc895009515a3dc646c98dbec7d71b0722df82392e\na2cfb9f7c1a76c8073363c1c3bebe5dc29fa76533caea41046c51ea9bbdc693a121b957cd96be5b6da18704d1865cff7\n8f0ffab9a83355a22683a9d998d1c1089449eb308711eaad4265f05927ec6d0d1ca39217082a0b372e02234e78dbaaad\nab024661e2b2937ad374c8cf2e3669f1dc55558a3a881e9ec4d461f27e0fa92e2bc88230f038bfb051cf2145ca747a07\nb98d9b9ec9eefa56d38cca959ce1aee7b6d4b41a8dbbd34b3f50c0a5f97f84ed2502ded1ce8cdb5895872360d4ba6d61\n851244158b3184a62d2c98d148e2b1102cf0d5500906bbc2deda95acc5e3bc4b4a3344febbb31ce05a56dfee86a74913\n860d9e2cb886bd3620b5d7499d14b415532482569bd45fd76e3e8052d78a73ae4b2b41f139f9cfb136564108cd93c0f3\n8305a052a0fb2bcd41f3aca075c5f7f233bd8f861451d03f3a6e6e31f7d08dd89fe1eb4dd7b238a78b12ddceaad9768c\nadb703e4778c7e14fb83541ab00b5fc344108243ec6827c5d9b302ee68321aa569da1718424e6a57979ab7536d5eb43b\nb1a754b87b9e21aeb86217ec5b4fadb7535344567f1bd15e88ec12a833fed68e26bfbe03b7709ce24ba6c925ea0a0e07\n8c1e2f6bf820e1653f3b8213e9d959d8649196223c2aab57b7ebda094f4919f88d883bcc6a0cd0be335f26f5a2a9c962\na082deb9865fe8668e91db0e4fd7fb50fb3fdae3e7bf1217ce0aa6f286a624624cf936d762bb2b6c3fead6826694f846\na10540ca05fbcccdd0a2a66aabab3b36e9bb525794cbae68bc3dace6116f58942218e9d5e9af10d67b5f6fb6c774fdd4\nb81d22c4ab0ccaf447cc5fc2ff3bd21746617e6773bf43257c0d80331be2e8437b88c9c45309ee46402b38d3d4911caf\n84c7c6e924713cab3b149f641dabf63ad5abbc17c1d8ee7802a6630507aa1137f7e034ba1d12ec13f1e31efbab79bf13\n8773b9d236e5fcfa8c32e471b555264692006bf9a869a3c327aed33da22dfbf5780ecea7158904d4d6ac4acfe9789388\na4c2c1bb7290eb7af2013f7dde78282148593f066b09faf42e61a3fcf81297caa5a00fdbf6b93609c8c5782a0f25341a\na7bfa6e3f273da3dcfac7cb9906bbe9fa4fc2872b184d79813ee273e6cc4d7f37f46164362707a1976f5b6a2c5d7ed1a\n8b71502019e4263fcda354a0fd10aaa7da47f4abb7a0c715c7b017e9eea14f2b64009b29b467394668c7ca995adedf82\nad7460fba7deccc3f9a7d204233de47ce30ffa55e1e164975cdf06480a6108720bc397b93ca8c959df77d44a1e1f05f4\na5b8df96ccb7b078a3918e74b1b10da21df982538d2c9313f5129b2797c8a6db9ff8707241ff72d3e9d5983397321736\naa6cfa6386660c01879656da6c4e72497690708bae6c5cd1d088f443cb5bbbe75561d6eec256a72b9728377eb83ef973\nb9699ce7c5c878e44114ab7a598646c6c7616b8e08a9ef8ec291189ef9945c1a538d2abf1ce3b0da0f8eecb303b81b43\nb8d0fd1d278f53c455de92ec4357885fc6648dc5f276930263da7dc885b4a9628a2113e28b66b1e64fd08189427c614f\n84ad8d262f6ef5d93e82ff6f4af995148eedf6d8e079124daee9b99f506e2968922eac2c7d4aea741fceb7733f20b2d2\nab5e30ab54641e3a44450118b8235554e0fcfffdfbe1430ceb3f7ef33325725741995fbbbb0c16f0875aef0f1e0c98ec\n80e2cf8bf386ebda46045852751611f2af80eca2e910d9ec5f6e2c7376611534604ceafa639272b3d503b02bd66525a6\naaac69af8fbb87da1c1b7c1b9e59942887ae839a91f0c1d191c40fe8163d7f1dbe984e4fd33619c73e63abfa7058f1e3\na6194224ad838ab86e84dc80e9b8abb121ae6c3c7fddc476463d81f14168131e429a9757e18219b3896a667edda2c751\nb68f36aa57aedc7d65752b74761e49127afa65466005a42556230dd608ecc8f5efdb2ce90bb445a8466e1fc780eea8c3\n886c3fa235d6977822846b3d6eccb77f1e2cd8ba3dc04780666cf070cae208b7513dc4525d19a3fb6385cb55f5048e2a\na9801273ef850b99eb28f3dee84ba4c4017c95398730c447efe8c1146b0719f252709d3397ce60509e05da74ed0f373f\na58c2a5dd13e08ffa26a6c5e5eb18bd8f761ab64a711e928e6101512401ef2b1c41f67ba6d0823e16e89395d6b03ebb7\n91318b564ec8b2d8c347ca827d4d3a060272aec585e1acd693b2bafa750565c72fec6a52c73bb3ae964fdaa479700532\na058db5d76f329c7e6873e80c7b6a088974522390ccaf171896066f0476742fd87a12fe9606c20d80920786a88d42cec\n9838e07f9ed8b3fbca701be0ef32a3f90752bbe325aca4eaea5150d99eb2243332745c9e544fd1bb17e7e917202edab9\n85a9ae7dd354f36e73baa5ecf8465d03f0c53b24caf510036b3e796e4764a2bc17f0373013af5b9f1b8973226eb58cd1\n896a4ff4508d069a7da6ef7bed66e1080991daee8b227f3c959b4f47feaf75fd1b9e03d0917b247c2db11e105395d685\na36d9a6a037bf498dfc0e535f2034e6cd433c7b52e520469811eb2e9f04499a6ce40257d2905300df7d81f38d1bba075\n97aac3c5492aca879b4c06db1834b30b8850a244d29296046a84c637d9580c8521ab4752ef814c96f255a139660d7639\n8552bf592a84ab4b356d01643c90347377ebf1f2b38a8c2e55a3f34537b8c7dcbd62e6776d6c2114f2bc2d4344d1567c\n84474ad163db8e590943ccd1dc50b4f444beb8275919b33f53d42cba89831e9d42ce2de52b26f4412e2a0676ce913277\n900799dfaf5eafeb297c7b4f892438bf2a65ce04034d66f8e5cc3836e4eaffe782fba4f4455a0fcab49102a240d1780e\n817176415e35ad4a204b9fd5771bae6cc270f6ff050996cec89efbe461b2940ae5dd3c6c7d7e31b1da5285b207efed27\n965e5791c927d47569bc54ec9b4c5305788aecd87a26e402aabeaeccc03480df46f0586ca2e2a9918885cd03332af166\nb96d9ada4b5a04a94807d71726bd557de94fbd44042d7dba40560eebe8658d1da49eba54499360619f3b2c38e8b5ed6a\na07b6d641a43e02e7868f30db4dd5069a2f221b4f122ce9b11eac04abadc4f25f3207f1d2d86c7935b1a3d9992ea9814\n8250d4d8ccac846a4b1a9fa392d9279b5bf2283c8b95d8164c3c0d199fec8849eab85755f2a2a99d584a0407742e3200\n8324cf49f56fc14162f9a9ebda1ebda0388d09d8688f1938aef7dbf9505fc119069efc552f68cc7cd9213f96fda2c6de\na98e6f1e85268dccbe3bf4e92c9f455c58dcb53de1dba3b78589adf2e50e79f8e245f956e0d098eb46f5d3746826c6dd\nb103ec12f266b4153d67b54d8fc079357ee342cbe5008adc3e0689a7f788534c4601e60e939731f49e4a1e24fd589f82\nb2d7681e866420413cc98eae67614d383943e3762d5742cb3c57e26157633c20880eea1209feaf68402d5d33dd699708\n99fed0ae4112ec9ed74baac70d202a885aa51cb555a3886b49016744dd4017640dd5dd564998c4d842a9f38f3e004e68\n95c35401314467219c8bfb1ccd1f1eae6ef4fa9e48fbea14f70d5315e67b16c46cd03554471840e4a5030b077d2a3856\n8d029380e0c294400d6b8673a23aed43697cb6460fc1bcf217aca3b47cf240886644ed09521d6a05f6abf56f99722d84\n8ef54d1dc0b84575d3a01ecba8a249739edfd25513714dd4d1941fbde99dbbc392f7eb9fb96690d7052609af23aa57f7\nb8ad2b7af4812417aa8de8f33a26547f84bb84f39501d4b7c484cc8bb54c7e166c849b95240fbe459a4719a6e3bf1651\n9858545de898721d19930d8b360cacc5ce262c8e004867a050f849f7a2f2aba968c28d51f24a9af56aaba23a9ded4349\n94ea5043b70df1db63f9b66b4f9d8082776f721b559f27d37b45e0a84faf47f948d7c4532dfd854a4bac49fb2ec8e69e\na2fd88d7b15e3c2778f6c74470d0f9e1a1f979a4d58bd205361eacadab9973d585a6508e685e640b272d6f8a448eae05\n88defd6bccd55db8ca84e3c8d0fc55a3456b41788f1e209d0aec19c9c70febebf3ae32cacaa1dbbf796d7ddea4b17995\n88b8cde2449d5ee7de2ee2f32e845d27e171a51ef64f1d3d8a5fd7dbb9f898ea70eb7f6410cddfd7b7ae70ea8073cc2e\n8e044fff6ec557824866ac76301b6d93ed19b7177aa6baa95046330f5d69b572b59200e3653cf2f2b559455e782e8960\nb5446b4d6741c824885790d2d26258729dc0ba2f469c85a47d38886d933b785a4f38a951d37f3ef4bd5091c03fa3a071\n956c8afa8056e9a71ab2e8be5241ddbb3a8b3cff2110cb0e7389493d9fa45e6c4b769ebef540a952db6dcd8bd55baf64\n925950cae25615246e29d594ebf34fa7d52f78a9867338648158f2131e6eb4dc17e18f9db8a5fdd76d017b3a9798b3a7\na17ea4b43211ba990270c21562690b3ef154a46c3d669c4674c80bd424cdfa95d8850c8e882b8d06504f929cba3d93af\nb315ec723973a138508afc387ef651fd8a8804f93975fc36c2eeb796a304eeb1508518d8703e666a74d14318253f526f\na995742d7433b3f230e622de23cb2d81cac76de54831491cc29768eb4a56da60a5cbd573e1da81fddc359b489a98f85c\nadb2e89f0d15294d7118fc06d4fdbd9c51d3ecbcc23c69797e5b8197eea0d6cd1240910cf22fcab4ef1e2dc2dd99da91\nb5ec9f9fcd0b5d176b643df989bb4c4c1c167112373d662fb414875662d1a93160dc0b5cdf540e8a30e5fcbe6cfbbd49\nb1291b53f90aed275df8b540c74a1f9c6f582e16c5df9f5393a453a3e95624ab7552e93d6e2999784e164046e92ef219\n8bc7b7b1a584a12d5ae63d0bbe4dc1b63c9df9c89bdd1095ff4b8e7c822bf8c1994c92310a3644033c7c9689f4b7d2b0\nad7fc45506a10ca48f991714ecc055cea376c0cbe667f3b40ee8dad8446218835439ae59bccc474cf47b053748ceba6d\nb134756828a5f5725c0b95109e09ca450e3834b127163a0aeeb544e63cc0cdcdf66f8ed98c331c7c98758f46af369a84\n94535bf1636be0974b112fcec480ed8eafc529933f3065c40e417e608e43a392206cfde8bb5a87b720263446c90de663\na4df4f6efbc3701000fb072e5cbed2754b9ef5618386c51ff12f95d281d1b700fea81fc1365f4afc66a7c83bd0228fbf\nb0336b3552b721087c7e2194976a9119aee13ebed9f1c3c494353707fffde52d004a712965f460062ec9443620716302\n99a39d1d1ee4283b75fa8c1fa42b6a3836b734be48bdd48050f9b05e48db6354fef509623c6ec8d447d630a9b3352b77\n8e3dc3583d40956f9e784e8bbd0b5e65671d2ff2a7c387b20fcb7da9b969f2d122aaf7f054d450dc611737604548c03a\nb5068ec5b7bcb5d8583d51cb25345990f50d1f7b82fe535a6a6b17756355885047916f466ea3ab09eef5516bbf2dda90\na8284ec1eb1d21e693f31a6c074199ee85d8a8da2167bffab5fe240defa2773971c8437e358a18f7e58d1e2954f57f6f\naa7415639d29081acbaac3e9c6b059d68e8702db3f430b86bb6e220d476fa74841c875e9d471c8a5423c58b6fee3cb54\n8afcfe6f65fa6e07c2cb3e1756c0ef2c589830be96edd50c3c248e3b17f51a4b08ba92ef7eed7991d81667ddfbf2bf7f\n83b9c8dec8ca8f9b85f0e36c08c5523cfeafb15a544398e6f93b48b5fc4b15a0bd05c0f176a9c2469664acab8dffb0a8\n82a128a89ea46b9debe5c903b950c0ab30cd7570b979ca911500b5c2cca5c4ee6b2c2fa414b5f28e367f4671ffce60f4\nb79fd0ccd2629a361cd6f9307c02ecd4d1f07e4ee03ce4b542997e055b07a026cbc0ba05fe3da309efc58db2e401a8fe\nb190751141093823b4b5324cc26c4f3258552f7893241201f2fca1ae9b1a1d4d4964a9abdde8642cf308ded61ce5ef09\n935fd48b95aa6f9eada0cf9a25a573f0ffe039888b3410788c41d173747bf384c0ec40371bb4383ddcc7d9f2db3d386b\nb9affe100d878491ff345636ffd874ce1f27852a92417694afce4163e6a80c78b2f28d78102fd06c3283ef273ad37642\na877670276d49ec1d16c9f1671e43ade11c0c1a1413755f6b92be9ad56bc283e4bd2ad860367c675d5b32ff567301fc4\n8c660d16464878590761bd1990fd0fc30766e7e49e97b82ec24346937856f43990e45aa8ad37283cb83fa16080d4a818\nae1412087da5a88f3ccc45b1483096aeb4dcf4f519ff3dbe613f63712f484bdd8b2c98a152a9db54cf1a239ae808f075\nad83cead97a9c3d26a141604268f8a627a100c3db7e5eefaf55a1787ddc1dd5ffc7544e4947784cb73b90d1729003c8f\n97c3140ce435512a509e6ff3150da385fdf9e0883a5dc7cb83d616ec8d0a0014e4e0fa57a4d12c7997cd84e07d49a303\na353773ff68f1615454555bf658eabdcca40a9c7bced8537ea6fa8d54764fd1f032889e910d2a2a342835513352e2d2e\n89e8df0c17a36ffe08149c2ef8b27306d04cdf437135aaeba697abc65e3c8e91bcf1817919a8a826acdbbe7dce79a18a\n9928c2da15ac6cb20b15859c22508cfcd452c5643cd22eb84abf5f0a1a694fdefcd8fc329c9b40babc52630743d6b65a\n99d837b556f8d13108eef6c26333a183f59383b39958dd807b10590c3d37f62ade6c4a320ca2e70567e0218b0ad5807d\n9272da080e4aa18720b634640b01bf1fe506c7c8a89dee8759a53e2ca5cdbbd4a4f3aca54924c46b935362cf1eca066e\nb4d39752c882de1c1daf3854202c1d58c2bcf35c882006eb640fe54a97be2655281cdb91c30d1a41c698617c2cf64b01\n8bf827f4a7d47e07374d338a3d8b5c2cc3183015b5a474b64b6086fcf0cdcf4852046c9e34d7917d69caa65a9f80346c\n901bffc7db9c9416e06f593a76d14f6d9e5dea1c5f9557bd8c93b9e70aa4782bab3518775c2a5b285739323579f7cf0a\naf7e204388568627ca23e517bcf95112ca8afd4c6056b7f2c77c4da4b838c48791191565fd38398587761c8047d11c47\nab2576b5366e6bd88b347703f9549da7947520d4e9de95d7e49966d98249406ed9270fe69347c7752dad47e42c4ea2f4\nb12e3b228b761dedd99d02928105494ded6d4fea3026d73d65ebffa2e85e2cd75b6d091135d418dd95ac102c22b5ee31\na20b4a752685d5e31ee7e2353c8a1b9a5265f12bb775004d282a3ecd9deda44831bac1ac5151646428b66909b2a423f5\n91a1d4bc0062a86cc6786a96fd3eb4436d8a4a187b7cbba02190d1cd6ed3c3797d9ae7d6ddc413f1c94a21f62bd04ef5\n977f18da1a5df5cfdd0276f583cfba2b2a0fc6139520664e20068f8dfdde33e29d179abfd722f142448f4677aa47be6c\nabc3ece90f0f7b1d80fd917de27ab0d88cca584ef959da520825e54cb5a71336b15f8b348532d08d47a6fa600527ef25\n888d36a2c7cc13a1c1aa338a183a74a1f57713e76cb825f9837f43279ce4741999b76a16928147537bcc20f2e0195b0f\naf3f5dfdc2dcfe19de893f385f39f550cb1dab67c2e97f1d5fa735e5ec96d6680066803e8a0eb010dd4399f654195513\na0fb4e08ff56530a940a86c28830956eb6dec2f020f7faaea7566faf0a4fafe0cffe01480e87763ec22f201be51a6451\n92343c5b107910b203c64a79c93d354f7ee5b7d1e62e56732386776e275285561cb887019cc00d3fdbe3b5d54460bec1\nacfe7df83c4624188a1011ad88c1e1490d31a8a8c8016b40aebcdd7590d9c0793e80d2d7ce6a7048876621c252a06a5e\na7da001dc1e33e0e129c192d469d2bd6e5d2982eb38f3ba78bae0670690c8e70f40e8114a57bd0718c870ca5dd25b648\na903de5ff97dc83628290d781e206ef9d7c6b6d00cadc5bacffb31dc8935623ab96ade616413cb196a50f533e63641d6\n8f9658d42ad14a60bbf7263f6bd516cfee6b37b91a8f53715d69f718a090ad92484061c2cef999816760a78552fae45b\n8c15b72b3d5fcb9ffd377fd67d9dfbdd706593fba9629002639973db12aac987bd1db70250ded31c88e19efff612cdb8\n88a2a4034decd854fb557960194ff3404e239953818a8a891bf72a0b26a8e570a65c4a630884de991ae7452b3234f31a\na09cae5c4c190537bf1dd75bd7bce56f7b799762af865bb9d1ee970f6a133c27cce0dd0f14a0e0516ceac41054e6998f\n9760ebb1b40f9a97530c3b940d4ef772a225e5b63bf18283f8e302b9436c5209f6294980fd37058060e429fb7fdc3a56\nadaa9400eb86d857dc591b25dbe3bc8f207b69e77b03cb5ee01f7e4b006b5c8f6ba2b51b5a45687479885708509363de\n949efe6b00b3248846747a9ad4a934d6e4255994c2b540a59fbbde395fe96d69bb67908441cfadd8c8bbb561fe52da03\na19a45504b6b1dc3a0fe0e6a1384734a3dcd5a7cb8fb59eb70e49426c4fc44946547443d558e5719a04884ab3a2811ca\n8934c9ee21e8d1435426fd0f64232a0670a7946ec524c054cd4f2cc8b1be9f89cc11002ca8aebae646a2050d91716b10\nb1150ff8ffb34ffdcf7d603348c0aed61e5f90ee0a1b814079fc2a41325c75f2f9ee81542797ede3f947884266a772e0\n86ce8cc7c1f92af68de2bca96ccb732f9b3374dad6657dfd523a95e8a931a0af2a80df74098514a06174406a40c16ba5\n90faabb9ace9e13fd9584932846ab28a618f50958d2ce0d50310a50c3bc6b0da4338288e06e5fcbaa499f24a42c000d5\naf4a935c2d8df73332a16dc6da490075cf93365bd0e53e2374ef397514c30c250bcac569b6df443985cf3720a4534889\nb7f948ee90f394789eb0644d9f5ad0b700c8e44e5e9ed0e49da4cc18483676d25740710b1c15a557965da635f425b62e\na917913091245beed6a997ff7043ecf60c4d655c4db0b1ef1c704fd9b0e1ea1335ce8b9f45d6e120f81805ce31555e30\na48099da8406399bfb1ba834f6f7d864111d0036969a5cb64089947a63dd9467d3857b605e9f57f5ad5f4ec915088d9b\n9784c3f9be42eed354542b1446d734521f8e3f01cd9d495ae98f2e4a3a16767fe2ad909e0def5d9a6267f3fc6a172cd2\n8d9afaa323847a3226ad7d7b60d87322ffcda2e4a8df89f58a076f7972d896588de685a2e155e243bcf9456b0a0d6d1f\n994413faf0b843f4ec1842c706c45ea5f24351c68674a27887bc8b182eda756856e507a4e8bbfd937e2c4c581b629ee6\nb3e72d9d1ddaa00c7d22f25462d6e9f2faf55e30d138dce8bb1517eb0b67132db758668aac26164fd934d732633bdea5\n8e95875e338f714e9e293df104f0ad66833bbd7a49d53a4f7f5fd5b18a66a61aa0a0f65cc31d55e0c075e0d3e412cb90\nb980091862b1a9f9334b428eae14bbf1cecb4849e3a5809773b0d071d609727270f6ad97f329eca896c178ce65883db9\n915d7ae5ae780bdba27ba51a9788a8852a15355b569581d1f18f0d94bcdfed2c1ed5a4f58e049e9825cda11f92b2c2d4\n83e581058edf9259d0b06128282327cacbb6afc939578223cbf93544599f799a8dce1fb21d52464f990a877086f42506\n803612a38b6f6efb97941997e101ac1878e192456f8fbddb3359aa7f3023434ed8fa92e60ec8e7b4473b1948850e4311\n864a1bf4ac046161617dde282e44ab3cc1843da01a09ca58aa00ed00eaea9351a07a9ec16d910819e7dcc28b8d2c8ada\n922eb142845975d5f6f7dcfee6cac8c299b3730400e6bf82cc0bdd9888de21de9d9f1530640f702c003e1ed63b140cc7\na7db03c5be647dce1385ebc02f4825a654447fa8c4c8d4b22e635dbdd2b3ccdf219384e49a80cfb1e9e6182b6e4227ed\na167289ff0f0967bbab6479e4a8a6f508b001bbe0d16cad36ab4c105ad44f3f180e39a6694e6cd53bc300fe64dac1e8c\nb7766431f6379ce62cba22ab938cdbb1b0c7903dfb43980a417e0ee96c10b86b447241e9dd4722fa716283061b847fb3\n90cda18c5d66f5945c07c8c7dc453dee1370217ccb851bbea32578599aa669b4dd245dd8a9711b27c5df918eadf9746c\nac690cd2af39932874385fbf73c22b5d0162f371c2d818ec8a83761e0a57d2db2fca1d757343e141e1a0348016d5fc44\nabac820f170ae9daa820661f32a603ed81013c6130d1ca1659137d94835e1546c39a2be898b187108662cdcbb99d24fe\nb2ea5a5950096772f2b210d9f562f1a4cfacc021c2e3801ac3a935f2120d537471307d27b13d538dcbf877a35ff79a2e\nad94af4d0699cd49ba8ca3f15945bd09f3f7d20c3aa282a3113cdf89f943d7793e59468386b067e3c1d53425dfe84db4\n83788367ec97cc4bbc18241cbed465b19baa76fab51759355d5618067009298c79d0a62a22e2a1e6dc63c7b90f21a4a5\na3e142d879096d90b1e0a778e726351fa71996466c39ee58a964e6b5a29855123d4a8af47e159027e8e6be0ca93d9955\n860831f8d3edaabd41be5d4d79c94921625252aaec806251fb508e364e39fde8808d38b10d557e487603a1b274c9bc3a\n88da39f334bd656a73c414ec17dda532059183664bbbac44eb4686c2601629ef8ff9da992c337a842e3885b684dd0032\nb50addbdf7164e8303f33de5ce854d6f023d39c1c1984b214d9e5fb6f6001cd5bdda816f048a438ff3d696872672f805\n999e58c4c69a912b84561cb09610e415b43832beeb95897eca8c403ef4754f4277754d492eef3673afd4362f50060fc9\nb88ea0f60f8119c5a1fd9294796d387472dfad22442b29659713d1d88e7d854cb7cf5c9ef773627781188626bb2fb573\na068b3844e9dbcf74b54fd55904d56af754d8ce4c619fead7a07f9bfb9d02118db7c512ccec2489d2a84374ec1d1fb6d\n871dee023768636003c799e6f6fd8d31315a4c0da7286345cd64264a016693b3485e0732be1bbd34dd5fa04dfa58a983\n8021e8f508680df12e4a5a1bd49f2d7142df65158b0a7198ffa83abd16053a542fb93ffc33e5279020ba8c6a26feacf2\nb5d3cd64df5bc965228b0bd4ce9e5797c409f7b64a172ba165e44a8e4b38e3d5fabc3e0b9a19afbfe427f887c40a315d\na54fdebbb594bafcefb1a03697711e0091c072e1cc24fb441fefd4e0a0518675a1d7b0966cb8294051d7ec0ac175d0cd\n93922202337f72969d6d6e14a29c9c75e0420dfba712029941d1504b9f6f9761d706cbc0652cd09a1aa5d22aec766af1\n9711ebf1c7c7426190d4afd5dd03b014a456bbd9d90ed101623866a280550df26a629dde400c03ee3699f7d827dc0bb9\nb4d686d8bc5c1e822a50124c1cc23c6bc3a1577a3d0b8d4b70d1797418aaa763283c09e8a0d31ae6d4e6115f39e713c4\na533ea2ac683e4ba07e320501a5d82a1cfc4fa1d65451000c3043f0fdac0a765cc1125d6cc14fe69975f3b346be0fdde\n94ee563134fe233a4a48cf1380df55ead2a8ec3bf58313c208659003fb615a71477e5c994dc4dcfb2a8c6f2d0cb27594\n93e97d3f3f70664d0925be7aee3a358e95ae7da394220928ae48da7251e287a6dfbd3e04003a31fab771c874328ae005\nb57440d34615e2e7b1f676f2a8e379e1d961209fe00a0cf6798f42b7c28dbd03172fce689305e5b83e54424bc3f4a47c\n97644084c6f7b4162bc098bed781dd3af6e49e7661db510975528f1dea8154f3d87e979bcae90c3df3a7752eb0752889\na923b27b225b2a6dd5bdc2e3d295b101cac5b629a86c483577e073cea1c7d942c457d7ff66b42fcf33e26c510b180bc2\n86698d3b3873ed3f8ab3269556f03ac8d53c6e2c47e5174ec5d14b3ed5c939750245441c00e2e9bb4d6f604179f255ef\n87946826d3aa6c7d53435c78005509b178fdb9befc191c107aee0b48fbe4c88a54cebf1aae08c32c3df103c678bad0ca\n860864896c32b5d4cb075176f4755ea87fea6b9cb541c255a83d56c0a4092f92396a3e2b357c71833979b23508865457\nb78fa75d687349e28b4ddfe9e2d32bb6a3be13220b8f3ff1ded712088bd0643da9b72778bcca9e3b103b80097f48bdd0\n8a188b940446598d1f0e8c6d81d3cada34c4c1ae0118ec7e0eacc70d1bced28ae34b99667d5793d9d315a414601c3b22\n842ac6f7dc14191ab6dddffcbc7cb9effba42700a77584aa6a8e17a855cd444c5d138f9d61bf55f43c6ffbcc83f92bc9\nb6742902c3d145a6af9738c01cf9880dd05c85f0d0ef7dbe93c06fdd6493333d218339ebc2a02be1895436a2f734a866\n98bf18488483c627b7181b049d3e6f849fce1f15794de59dcde6e5a9b0d76fd484a46e48822a6a93001d3aa12f48bc6d\n8769cac10bda8c53a1c19419ef073a5998f73dcf2ba1b849561615a17cbc0a49bfe3eb4ff8801dd36a22fa34b9a3a7e2\nb45c084d58028fdfae792210fcd183abc4ffddeb4cf52ebf3f8a50e4c4eec2a2758f1241b0920bebcb24b757c778577c\n85c1216eec8e1fbc1af9b36b93c5d073a81d5fba86a6daae38748ec1573eacc6bef209e76c87a6efbd7a3f80e11d4c3c\nb8007e34bb3f927ec06a050b51e633d7eb9e9a44715d5b39712e69c36177a03cd68391090cc3293098e54f6cf65f6caf\n8e85527b27c9152b1ba3fdd532a76a79064ab097570508f233e09978761dfe3012d537411b47d0e4b65265eb32cea2ae\n899779f3c31a20b76068ec8d59d97a64d2249588ddfd69dcbaac6bfaee8ce0ff3c5afc4e17c934ae7cd041b760eb555d\na5dac3d8f5fbef018509612e25d179f60d2a62451c76426bf546e9666fcdc73263d34aa6fa7e2bfd4c9947bbf5095eff\n896900eeef9be2b2e755128e7b1c436af6fb3984f1e66c444bc15fcf3959013b4902c381f0eab1247f878a6ebd1f4ee0\n8cb17f4b0af2e9b2cbb56f46e6a5d6874ea0daf147aae77303020b4e592ddc92e0dd058def7da96258b3a68b223bf22d\na1b6d3f09a9fa7ecc021ab7c5396541895da6e9bf1f9a156c08fc6f2b815a57f18c337ccfe540b62d79e0d261facb2be\nae70888811434ef93da60aeee44f113510069fd21161e5bb787295492eb8df85103794663fc9305f04adcbcf11ff0c5e\na84bbc8624100acfae080ba8cfb48fd4d0229a60b62d070bd08fade709efc6914dc232d3f7bed76a59204f9252321aad\naea47d54652abd8ca213cfc623c8e30780f37b095b59ac4795252a29c2b6bc703a5203acff8831314478b8ee8771d4d7\n8dd438eb8be14935f759aa93021c2b24e1d588f7a162c42c90ec3a647b0ff857f60e24c0a8953eb7bb04e04be70f11ce\n922b07b5469680a10e7532766e099896f4dc3d70c522d8add18f5f7765d4ddb840df109146607b51ceddd2189fa7b9c0\n83ef6ebd0ae6c569d580093e8b0b78daa964760556272d202d343e824c38eccb424262e5b7809d3c586f9e2e9c5c5f22\n97f98bd357db6e093e967fe180cf67ed09fa711580a5ad48f07cf095b2e8fabbe6319f97d1f15d62c0ec2227569d8dbf\na1953a4a22fe6c2beaf2a5e39666b0eb53018af6976e3a7aab5515550ff2efa89400605a43fb2c4ac1e51961dbd271d8\na5cbd67f4c0bc98e20aa74c09e6f5fb6f42c08e59aaa477b4b4e61434c8884bc14f17cf11faecf46dc4b6c055affbad2\n87d96818f2c4f12fd7705cf4060a97bd28037c5ac0f0cc38f71189ec49361e438ce863e6617651977708094d5336d1da\n85e7c2daae5fe59f8a1541c94df50402a671a17dbb8838113fa4b7aaff6114cf2bb5969410cf21e6a162857f2f7a83a8\na19575083e1731bb04bb4a49414e97aaadb36d883aa993d1f6847db50007315444814740e67e10177a14e0e074fd4c7d\na00ebfb5bcc3a6da835078189038a1e56b7dab6be74332b5ff7440e53b0f9e1eb9973effecbbf37000021fcf50c7c1ff\n8969d7943abd3b1375fdfc7d6124dde82b0f7193068ed6ec83bcf908734daf3487a6a30f7b322e54a4818ae5f86d91c0\nb959c8d210fa43af9b20d1fe0ea8c4921280eb4544ef6ea913309ff9d61c9327096707e84dc1662960519be8e7d080a4\n9011d8ac651c42e0cb03931a9e960f58e02524c6b666047525e3b9097e9f35fb2b4b278efcce2bd5ad463c6d7fd56694\n937e3b22ed0fcdbd9ea5a1b97b84bbe86b7f5b2de3866a930611112f2217f4ee7d9822c4ab1253823f77bceeae0c8e10\n828997e5d121f4c305e018a0a0ba338bd6a34a7b4dc3c5ceab098ee57490311c130e2c045b9238a83908d07098d9fc32\n8d114808eac0f2e1a942d80dad16756ec24f0276763cd6771acb6049472e05a9bb1d3bbd5957f092936b415d25c746b0\na063c5c26267ae12887387cbebbe51fd31bc604630b3a6e8e177e71d4f26263be89112cd12d139dd4c39f55f0e496be0\nab1e1582c8d67196d10f969eeb44e6e16214f1316aa4a2a821f65ba5834326da6cba04373eabfd3b3072e79e5c9717e6\na17b1dbaa11d41457e71a9d45d032448091df7a006c1a7836557923ab1a8d7290ec92a7a02b7e2a29fcea8f8e374c096\na1ed7198da3591771c7c6802a1d547cf4fcd055ca9010756d2a89a49a3581dfe9886e02ee08c4a2f00b2688d0600509a\naf09aa60c0a185e19b3d99ffdc8c6196d8806169086c8ff577bf3801c8ab371e74165ba0f7329981e9252bfe965be617\n98c04cc8bb26ffce187fa0051d068977c8f09303a08a575175072744e0a5fb61191b1769f663a426c30d405515329986\na542bf1c9c3262d488ea896f973d62923be982e572172e2461e0146190f2a531f62acd44a5e955a9f1e242b3e46d63ae\naef7b7f30efd50e4a66c87482386f39f095bff6108e68f74fd3bb92156c71c75757912b111060cdee46a6b3452eed657\n8afe1e0ccd00079702f16ab364a23bbbd3da1889d07c4f8cb04fd994bf9353216360dbd364492932bfe20b8b69ae8028\n9896c690999db3c08cd7b25efb1b912c3e0f976db98a3e830f086aef93222d06ce570a7b2babcd7c81d8f9955169669c\nac7bcab6a281468907ef1ea8a6c1cd624159c88839131bef6aa0c22f331fc87ec6128a2c2a333fb79df549e4587e1a12\n987935c08a30b099d19f96901315a2e60591baf898581c40bf5eddcda806ff24a4536e30ed1e6c0b128a83fc77b6e81d\na0a6945bbede3bb09a4a09ef27baa20619d3e15af5673b9350601bcebe952597c989870746cf75767ffb73b32c6c9c6f\nb0f5590079f0a0302b08a0cc1b7a5f39cc6900c2a5cdc7baa333d8328a731b2df5dbb67e27a154d3c44ed1a795fc4adb\na7294bdeea210e528f277f3d50e89e6d79950494478998181ecb38de675020130256f2f2a075899170be964d478458b0\n8ab3041b895a631869b439d5599a66facba919226ca9b39d915f19d59f9fc82393ea781377e9bd3bcc5a310e41376914\n8da399b59151fd48b2579948bb82698e3c9804d70ec7d6f3cc7e82901f9f2de5ee850349a7d6f43e5e9ebd47bd78620f\n80e8c32de83d1083916d768b11a982955614a345d26d85b457f2280ff6c52bb776958add7c1c8878f7d520d815b8e014\n81bbec7bd99d2917d2dcd8a288722fb33ad5a4bf5416fba8609fa215fb80e0f873535349e7dc287f892aa56eb9e39c4a\n9665796fe04c8519206fba58496bc84a8b9113e7ea8e152b65f7f732e88beea271dc97b1ea420dbc8257cc4b18a77463\na97e342aaaf693ddc87e02790278e4bb50117af4413cd703bdf3b7cad2d1facf31fde1303b43ab2e0265467474f97a8a\n925549ebebed348886e37773b05cd8ad04906eca4536bfed951d1ee41b3d362ddc6e1a302c21ff3a2d1e70e95117922c\n818fdf74d7903502101551bbf48d3c7819786b04b192d9e94362d2fcb85760d8b6f45165a5443aa5221bef400525ddb4\na9d29de7e8fd31b59f4a087168d062a478b1329cd3c81c31e56de4fb40de7a5be9a5269ef0be452c487443a0b097dd50\na85286ad573db4c9aa56221135da1e31d742e0f6ff01d6b159086d7258f78b08dad55ec8eb5c91ee9d3404b2eeb67e1e\n92a79b37db5e777f9ebbebde24a95430a199e866e56597c7d0b0e7fb54c7b092c2f6cf61fb24470ddf250cf609898281\n8d79f5ca67ed67d52c82949af342a9fc60fb793c47c76d84b4863c550796fcae2dd59e285897c6fb96fe31cee1efa62c\n8ad2e0bda03415ab86324992bb62dfa3612d2d003765bcad1468087c27971d08bdbae5252681f0115a184f4885d444e4\na08815af979286538c31b4aa5ec805053790af1ca58a8c4341be51136d094a8a05e569d876a079033298ad355ccb7ca8\nb96c2978d0165d619d08281d295e90df78bc2375d0afbc3142ebff9c2cd4b0f0aa97a9a0e3740bc4dce0ff8a9fac8252\nb7752cd0e582f35ab0d0036ca9c0a9fe893a6ad325164d78d865a604a85d3d23729e0362553e8b8a3d51816beeaa30cf\n99cef1fafc29e7adfe247c753c475ad4bda7a5f9558b79c86e8a65968ede67adb38dc30071925c9d66a13860027a6735\nb9f6c65af178c791b6137d71980651fb09cb5b42f268999c728c6e129985a9c7d77b3dc3b50751bd29ec9ee0b3111dfc\n8d73ae61fff5be883a281782698075c5650083f00399992688738856d76d159803be0059fbd9dec48f4f0432f0590bbb\na8a4a2865226de9bbf19e12c7e75318439fa6cf1cbf344d5e79a8f363439d3bc5bcf4df91b54581e7866e46db04eaf0d\n894582aeff222e145f092ba15c60d3207340c38f2c6792ee2ab4d82d50fb544ae366c2985cc2b6c2f970bcc5f4b46385\n956014ba2d20a056fd86cb8c7ceeab9a2c6f905dae24fc1c5278fa5b84335148ebdefec5dcde8eb9b084700724fc93d7\naf217fe2b654eff6d11a2a79fe0339a1d4cb3708b7be9f09d852158b5a44b4f9b04406d6d67c4f144fb6b69a41ae9d0f\na90752a784bc00df94d960e523f5596695d16a534fc806179e0f878fc0e82a91b25e758e91a165debd815dd1af5f1028\na697606fb32979549ad822b31df8eaaf50de4ead984439a0a33e955937d326519bb9f62c8243ad37f764655f8d32cc80\na3ad4a30922e45a3e665551e5611384f1c2d414f6fa806184b0c826af05f014dc872585e255543794ee41e43cdadd856\nb29c255843a82ea74a013bac6c36a694646e61e6b9cefc4c130e2ee261e3bb5da3e0fe3ee7e6fbb009deed0530bc1c82\n87e1cc7febefa829cf050aa2aea59385d1048f8617abba691f7ea9ef58eb90ad12eeb9c439af228b0e34897ba1cf1b47\n994d3222f89e9c8c154362190be7167c8c2662f0cfa9d50eb4d8175b255ff0de09dc548ee312fc8226963c8c16f43e8b\n8f1a980be640820f2d1e953264ca4c30330878971669852be3d5d6b41c488be1628b935388bfa2bd4de484acb0fe661d\n854d90d0721579c8c88e147a4aa83553c960617b18075f8224b975562dccb30b0e02e81fa9df7070f356a0eeffc3b14f\n8e156da9d4330a03e32a25a2f0b861fd3ea5c719fa4f834119baab6e5fa5236a9baaf0d44147bf0841418900037f6eac\n96586fc49e53a6799242ddf617000db5a0ad20c6cb1686af2102623d64a71aaddb8e468b15fa6d100d0384e448548db4\nb44d8d85c8df95d504f82d597f8c515866d4d4a326fa1b816dcc5bb0cc4ef1a52647aa5d2e84c62e194c01cae0885d21\nb75c43e676a7efd199f8b32ae31f176ec667e714df355e9eecee97246f72af5bef9c5b04c11e7e90fc37bb9163f957ec\na49835ac0565a79f6a9078cf0443c5be20561a68b448289589721fded55188583f1d301925a34eea647f90a6e66c6774\nb47c17ff6824a00b8f29df0adb7f06223208d062bd703b0f763c6eee4ae62d4217eef2da4f4dde33f0b469c2f2db9e42\n957cf039cea6f6d41e368e2bd0cf77315938a0738f15ed9ca342f0a28658b763659ac1d1a85ecb362f13de12b77bb582\n903a52f8d2439fa63f59e1e9aba864d87b0464ded63814474947112375236a6f84e8fa003cc4433c8208d80e05fbd1b0\n8afd524209ff08d1eb6312b078f7afeb8e1155af649e930ab711dedda226dc2db6b0354aab9652eea7f433f90015bf7b\na95c3c9277b11bc8fe191773bf567641be57c0549913b973fb18740ff9cd7b3f7ce198fa4dc1086b2b8a446012459193\n9455ce8163fce04aeff61e7808ef3aac4725e51404f0858fe5d39d7344f55dcc7871ca332aa5cb1a63a4399529e48907\n809fa35b6958f94e781f2c584438b33f5ed528a6b492d08960cf22ecf63ea3aa1e2d29bc879e17296e0a6cc495439cb6\nb0f50774de212dd33e5837f6b496556215c665437e657f674fc5117e5c07dadbd0d057e6ac4c42d50a8eb81edfebf315\n844c65e263891d0b2fea7db6934cc4b7fb6bee2c1d0b9ab4c47f2eb3e9c5d7197dad828d38c54139123740151420280b\nb13c78c9efcbb3b28eb3fe0b971380b7d5151c80948a99cd93c78b4c3ab0e86df6226a64d91e0a2ea4a1c0a46bc0404e\n90300a541decad460c348b8f4257f7a29687b2362ebee8d92fd03cc0e85b285ccb0ab1cb2ff5e29c5cc5295e351017cd\nac49b409ded770c6d74f6e70104c2cdc95b7b90609da0743c9923179e8e5201ead03becc0ab10d65b3d91a5be0d52371\na257b815bd8289dfdfc21af218aaba12ccfd84ebf77642cc4cf744d9b0174ca0b0d7ab2a545c2a314fd5f63c140f41ab\na34778d8446e4d74d8fe33de64b2694ef1e50bc140e252af6eff3ce7b57acf8b6577a02ba94b74a8ae32e5113cf0a29b\nab9e935bcf0d8607e3d66f013d9bce7909962cb7a81174923db02dc89e485c2b1c33d6065bdc7bbbe0450b5c49fbe640\n94d2c5c5c309c9eac04be4636f61bc47fd9579b47aded57cc6c736fefb8dfd8f8a5de32210f7baf2052d04c0219d3b4b\nb8dda9046ae265214086355101be3460421f7cd0ed01bde9c1621da510941d42bc93cd8060fd73f374fb1b0a5f38d45e\na6674649dab5f92ab9fa811d9da1d342cf89ff6eff13ad49f4d81de45438e81a384098d3ae5ccce4c67bda5dbe246d95\n8d619f7564677bacba29c346c4ef67c211f7a3a14c73433dd1a7692e16a7e2562f1d0532454af62fc04c2fd2bb1789b0\na2b93d2fd4c707f5908f624a0fc889e20164d3c61850af9125f47a1719757a6ce6375aa1910eafa4c1e8b6e20c312775\na07d5585447654d82817ef4d199984542328b238157976eb9a267f0bdb2229acc25aee510be68f65a312b68fdd9e0447\n8ef55cf95e2b24d8ec88e4136399a7763bd1b73d5e90ea45e9845123e9d39a625cc336e9b67988374b8ebcbc75f2ed21\nb62c1fc32e27c767c461411b02fe9aa44a86586e1427406f4ef0b346d077db91952abce79318b382ec75b7be23058cac\nb252900345f5fa15a4b77fb6af6a2d04db16e878b7bd98005333f7f6e3c8e6e46cf38fc5d1b2bc399c5c2ff4af730dc6\na4ab5ac0cc15d3d17b1747c6e3133d586870eae0a0d9c8fa7fd990ebd4fbb62e9090557ca2792a6bc6271856aa3c9a05\n8e706b3f2e902faee10b22742c6c33bea6f670a8937c243db96885143c1db5c979e33ab73a38359b52b8d668ccd092a9\n8a6792190ee6c959d79f60c22980ca140c638d88d75660adaf9bcbe6dc4692ab5f01e0c460170f09f74d5e582e85ff1f\n97ffeedfc94c98ec85ea937e064d7b290a326838e62cebd407facd1ab4f08d9c0c109d79af7cb6170fccfa6c8243c127\nb79970b67c09453614ffd83a0c923c17f857c6ce3c87a356298f8351cab0def7ed83efd4f6638f48df67e07bef4ad9d8\nb90f1931c7cf1822cc0a97401119910cdfd0482daf09a4d7612e4e05046295cfb4cc50d5214b31676bb1a1c9d15f9c7f\n922921ad813c01fb5d12fa7fb7ed8e0b0abbf7b19affa190b36013c55b88fe3c7df0ae663c970eec7725ba37b95a7cb7\na124f33e7f28feabb4089a063a08d52b7395d24eecd06857a720439dd9414b7073bb86fbd0b04e7bfac62d3dc0fdb2f2\nb252fe50bc6677c004550f240fe670974a33ffe7191ed7675da6ac36c780c2f8d02be7da5d92cbe2d0ce90147847f8b1\nae5f8c9c56070f919f3df2d2284348fa4b2e39881f7bc42c9b2f5b7cb1ebeef8ecac000f37329bbe04cc1680cefc7f4e\nb432a4575caf7337f11eecfcbd34a6705d0f82c216301725ceae2b3c9df20fa53d1ebef65513e305013d1e0c2df522b6\nb7c016fbbc4614cdbb12db1c9ac41f9a45d5e5ce82594d568a30cd2c66c3cc9d91a2c959697b67c582a0913de661505d\n8f6f3e5e0347dddc1b2a34ec0dbbbb7cafbf976f19c9c902efb5c1427d1bbd4b71abd9f3fba20dda75c35a39393c989f\nb0042a1d33a1ee9fdf3fad2299b8d70c4f1862d8393b5ebe3ac2189a2c5a58bb826128cd7a39b70d524a6dd976097e26\n85297c4e8ae8d9b44c3fe51aa926c77d55db766c2a9f91b659040de36e34c9a4fc6f44380f8d61704498f6fd52395a49\n8c61a988b6a00fe5a277450f30bf6daa932e42a2eae844568e3babf8815e09311f3c352dae6eb2d57a98d16b7beb2d22\n990be28aaecd932e7edb2a97b9be2789a3905cb88737b1c79881302585801c69a3dd5fb230808b39db1352fc06e0b4a8\n82fd14bdb335aa46f022dfe0ed4d631911e6b6f5eefb10d11e9e2e02a7df55012ed8162249d10b58eb76ced5a7b06cda\nac39cb058df764e161db9c39b185f09aa210bddbd66f681f1697ddbe6b305735612d5dd321d3ffbb4876771bdb321e2f\n858a3f7e57ccb81387caf8e89f9b6039e9aadeab06886d8688fe6427151a59ab2e77e85ba850c67d099965426c97779a\nb57fb9ea623cec432946819937c6bded0b5d03c8c67b52b44a4b67d34adfb055e6cabca67a48e4d859b4be45162c5083\nb84d2990b563d6d7fe1f4c1894989db25b81745090b94b1fe2ef708ac3b2110ef93d647820b2a51fcf78e3f00fef5412\n817d85b9f5e1521733d2b1fa6d4f4957ac445dc803f97fc495e20b819b14e651332f9e0573d684b854fd47824c53f0e8\nb09e18e97e93a8523101af594422fb71afc5b8826002314269016fcc1b44002d91bcb7c90d923d460f0cc03bddfe9af1\nb867cbede82102de7cf6cd0dae68506869576eaa66c3fc806e73585310602682fc912dc37adf5ff6f0f34a07831735b1\nb1126255798368b692f2796a3470ed16e5ffdee2d8c9e0f7ee3d2e92950c3e6365c32895171c3494aff2a6d6356f7e25\nb05f0a0996dec16335c770a5df3f0b08e20020c838c2caaa1d3a4a2490ede98552f5de349de2ce6e4c4a839731d80919\n98c512bb91c8fa191120ddf5d63c88076581cf41e15eec3c168822f12b3dd0ce4d6df74a7e3093d3e35cad1cb3135421\n84ce38fd97f7f90012c2c1e59a67bf9f465a7ccfb6f308bdd0446cc82b8a26ff7c30e5c7cc375011718cad1b31adaa9f\n93139db52c9fb96dee97a0825f21e34c5d6d36838e1e42f4d12d01eacbe94426c85a811fe16ca78e89e08f1c27383d28\n81454037b1e7a1765f67e4288b8742eebf6d864d9b0f508ab44fa3243168ce0ed30cb5f33dfcdb995cd2c2710ff97a6d\n828deb2a26efb2ff1842f735e2cc27162360f619b6e3e27a85bedf384912d4726bb2759a3016937973092ece1bf90540\n87e5a7d4e7bd301078f625d9a99b99e6e8e1207c9f8a679f8ebbbfb467bfa0b5f7ef4a4d577c7d2670efa88221153012\nb9dc9d0ea48deee201e34379447bec789c8924aecd030eeb93db159af77eff230976ef60ea9f4b4a9e9e95c1f9f4284e\naa6528268d46bf0627d87d58e243d3ac34b863513c725908a2617e4c6a46ccb1d8c8334bd6dd0eea7ffebec44259dae5\n8d26c9ce07293f6a32a664d31e6df9a7ace47e6c38001635918efd9872aceab62de7757b13b783d422eb67bd28ce7bbb\nb0d3ca88d9829a7459b89b0dcbdb8bbb5180b00d750bd959bd110f53c2dd5d4db554b6005c4765fbe7ec5903669e5ebc\na94d1c72bf3b2dc6bfebc9dee40f6a89a516b252bd9f4fad96f156e3dbfc151a9b8a02324d764c7656d59230a18eb61f\n88996e79171e30b16505638d8ecb25afd875e5f3cc3e29860937f2b5e751c66e78dc77f744a0cc454a8a655142a93ffb\naf4d94f342665fe7ecda318de6cf1bc1c40c37dd83d060fedaf827459728152b5f0e280286ff5e6a0012036f6715f53f\n96beaa7a2d565ec14a4e5cb895d33624c69da56b75c8d06ac729cb6d0cb64470ed4f9b0387083cd827b1609c8cabde8c\n96b773fa2fcb7377bf71a7e286f37f1f24ee42cba5b4f33903c4566e5e5bcc501ea360e3c8435749107c3de84e272d8e\na69ac6218454c3f40ad0beb48821a218fb0a4f33ebade986d2fffd9a3900d8cfa613bc71676c46cfeaa5f644d1f239a9\n857f139c08fcc45370f448ce3e4915bcb30f23daa4134407fc6d78efac7d718b2cd89e9a743eec7bf2cc0eccf55eb907\nadeeba36af137fd3c371a2adbefea614c3ae3a69f8755ce892d0dd7102fb60717f5245d30119c69c582804e7e56f1626\nafa97ca3548b35aeda6bfed7fbb39af907ed82a09348004d5705b4bb000173270ce44eb5d181819088aa5a2f20a547a2\n8423bd2d07073b0e87819b4e81997e4d3188b0a5592621a30981dc0a5a9d0578fde1638a364f015078a001afb00891c2\nb92e9d4ec3966981ee574695d6e4865810b8e75313e48c1e4bc5eebae77eb28740e97ecc3e5c42040f9eb1ee4b13b0ea\nb07b218321d54cecfcd2ed54a5fd588a6be8d7a5b6a66dff7facfe061222c40553e076e57cbdfa0bdb08e0a009c94ba5\na71e1ae4d6096eac9ea4c21f621c875423de7c620544e520fb6ec3cb41a78554aedd79493cbd2c2ba4f0387f902ddd2a\n807cdac291246a02f60c8937532c8969e689b1cfe811f239bfdee0791e7aa0545e9686cfb9ed0c1df84748e5efa5e3da\na1faeb4504c057304d27d54fb3ec681462384a354a4f0b6c759d4fa313253a789250c6b0f44f751b0718592637438a19\n996bcd3215182d49f1cd15a05e1e0a4bf57e264400bf14f7253c6611d2571de7130cce81fd28e0411e0a80e9054f4f98\n89d15b38f14bcd46f4b2dcae82b0e7bf9a35e40bf57aa947e9c4a8f87a440b5cea95229708de08ca596762062c34aaa0\n8d8ddcaf79374c750b8b0b3d196acb6bb921e51b4619876a29d09161ba82a42271066187211ef746f9f40a5ca17b75f7\na3dc7f70f3a6c7edc483e712770abbaa94bfa3174cfee872b2cc011b267e0ef9baa1ab49e4a6c6c30dbba0e0a1237117\naa9e958bbdcb192b19c43fc6fd34afcd754949fdada98e9f4848e8db0e23acb27d19dd073c951a8819000f2356aa22e1\na4714e45ec853eadfe5c3bee7f683b81f97857bbd7833192a48936dd1460aee68f700a21658658b74b737c4fecf90c7f\na1ecab4215c1892e4a8ff3405d710163875e5dfef8a8cb84f5cac4e317d89c7696e3f496ed1747ca6f52b304190f4ba1\nb9b48943eca3686219575026d395b969e6ff8159dc5317005df090e79d26901984e40ae4b1af060ed3ff6f42e0417d76\n9644b9f90a66edb0396abd8c00066886f978ebf56fc22081031fbc9ce371bf9b04aa5a4ef59e59319b3a05bb7fb88b43\nb2bb14f1c055a78596488e4e2d4135a6470c1ee43961952160b8498f674a4d23040606e937c02c1fc23dbd47e9bd4633\n8c61f2fce9a42b94a389c7e52d7d093fc011099d0f4914f6d6f05b631df7b88182826edf9bbb1225971a080ca5c0d15a\naa6a7b8499cc7d256043eacad18528d38bf3be970bea4c6d4cb886690280bdb373688ceba3e506471e1d9493dc76f3f4\n8127703363b3b35b06762c2353d4de82b7b85bb860db1028d3640f46bdb78f2d104fa77ee3e0d9db83833d2b12a966f8\nb7b01f5909f2c66ae0fab156be5d79954e3a304615e1fe55945049dd4bd95f973bb3821117eb54db7e9ed1ee9a527652\n8be47ba5dfe212420649193490838670c40540e0ea24adbab18c4a66e7ac3dcf94f068dec2533b60e08c1f64e7533e54\n905a6c7e24b86aa54a05c329a6b4616d335bb0b1f1e9987562eee0acf82ad302c7c44981a1dd6b24c6121ca12fb92996\n86969ccfd91deed93b355a2c21319e3bb08cc652b741463bf68c626b7ba2afce3f7cc397f2fb74588c2893477c948ae2\nb5a9d20eb12c331d0d300fd4b85b0ac0bb74573178a5fac8ec9dce5e95acba07fab444260355ece442a846737a2dcd1c\na13497c11df21b11fc1a63b0ffdcf7f432da4dc2c98f8d07d36da4fa68aceb57af2158088e5b05e334fe0f264aeb7a97\n882e4597cc66498a45e86a2ed9ee24652da4699af00ad35f73b5e74fde6ac3cee70630962d5ddd86162d4aaf11bbc11c\nb748858c2bafa4a14ce44af35195e9c52aa75e109719243bbe278095acbfd6a7ae7e084caf8dae6939039b5a4e8fd675\n83a2e0524507e74f51fe976441108f8226ba1b3a33f4e16ec45c5661ce80cb1840a93d17122cb8ca9e0f80d14f69877d\n846cd2946c93ee5f24243d9ebc69936b3a1a6d59f45fec6c79b1eddf15ce30a8e73ad03cf606ee66baea3d8ff115f70f\n8d98d0a3a94f6efe158f8423c041b546416145c5c2254bfa157efea0d1c99fe58acc7df6424ef29f75960b18d664ea4e\na39fa47e4b79f54dbf59d0b1726f1e78bc219fcfc56ad238c84b4b610e7892ff1e65d537baf5118a32f5e2eb80d5ee0c\n8c30969a4519131de5e30121c84c04f67b98c8ad109fa4710dd3149cae303d51778add3f258f0482f1c89c169824dffc\naf7f80d141ceb78b4762015de17fef49d7ff6202d292e9604deb508272ee7569f7fd5be3b2438da1dfecf0c26533ef86\n97cf82f70128251944d79b8845506975405bd720e150d836205b048ff36ba8801eb74cdcc6425f28f6bc0acec0a81463\n8c276c876eb88688957d1868bf3a1462375e608ff72b49870a5dac82cbf6584e00e3f36f236f732348a47502ccf9539d\n964765f1a5c8a41d8025ddf56dc01b78424703d8a64a4e5539e477cb2445cb541c70127c561e717256d13f91a830ba83\na2aacd9e21b8c8efaf2319611addea1b9f41430aee42e7f2a640cc693aa395287cc8fdc2806b76b577d84fbd05378ead\nab11eabbf5be4345a77323a3b75f9ee93b011fd2a9d0154e88183cafe47f82a7888666af16b40d3cb677c94bcc755ff7\na0bfe715a7af5a29b1b6148b8cbee585d2b49fa6ce59bcd173ea3bbc60d71a62f9da27ffcbbd5a6da75502112fe44d70\n902e6cc38ee42245103d90b65028a471bc7a48b825599d361aa81d8c56e0fcf9fbe8d4c13802040d2cfb85b7e022eea1\n8832e2b5014fdef4003bdbb87e3298fdbdbbe49673f6b66e2373f1cb2605f9c4af2cdf9bfd45d1993208681d29ee1c9d\na7d39d3fa1ec1e0c87730fa43d4900e91932d1cafb36c76b2934907becf7d15a1d84d7234591ad4c322b5a24673bba8d\n836ed5f09d99624204aa3aa7ac601980fda223f3b4b96b4a8fb235c574a3545d518787c12f81bd5851987f2860d41886\n94235e94445e6086f6e9331923262070a4c2ed930ec519eabb8a30133bd4fc6debb99185f4b668431fae1b485c5c81b7\n9828ffe20b9405f117dac044159be2d3c6e2b50ecdd1651d6a73f7633e6e2a7ba3d783ae939973604446d3a1ef0fb20f\n92f03dc365dfe9154743ca70e6dd2758f064e3286fc543cf8c50f68effdf7c554bd17b3507c6ff4127046d9bbb5522ef\n91ed07df479d8eb3d31292a0e987672a7f3d45ecafe72935b7abbc3f23493605134ce573f309e226c9efe830b6868220\n93bee582661e6d6cefeff29002afc2f36dd2c13dbf33f0574c35b290ddc426170a5f7f196369ad592efcd72cfb6f8fc0\n89a51467d966f48fed15dea5a12dda54d0015f69e2169b5e34f44c7b5a5d4c282d6f138116a0cd06a8476980e420f8d8\nb8ccebc14b6679ba2399370848864f15f63512fd6139df7359b7b93e82c1007fd85137ecb0597294b46643e1a9e7ab5e\n841fa301567fc57b2cd09508ce75326684e12bfb8add671dc208f579b2500b93d5b641e9f59bba798ed4ed1259757f7d\nb3cb45c15eb00b4ccb7013299f761cb8fefc17adf6db50e9ecb8abe927a3bc7f28e359e64693813e078e1dac800ad55b\n96e55d3b9f445f5679e34fa5425b3e87cb221cfbdd07f8353868c7f7f4ba388ee3841cb9a1d638583bc20d03a9d071f2\na7dee9377de740270c5b57cf86699004ba8dc2766af56b388b5cb0814ec71bb99ecf43ee3d82a552733854ecc7def0fe\nb129dfff23b3c1c95ddb214c4711961fcb129efe2b6557ec9e116ada909593d0d2eec2c628434493393c58c52aa86847\naed2670e201cb3e38a8be3c86735a4d76255e1e5a4c67b91df6ed262d09c8d10b0a3891da3e6ab934058cc9a7178931b\nb20b8921ae52e5b3c94fa3a8b46489044174f7b897779e7763d6eb419e808d76705b7e7ba5131576f425aa81b6b0de53\na7e45bbc3ba1bc36617291ba7663806e247f1b57a89e31520c64a90cbf8d426cac2e2f381338baf78c8f92fdbbcb7026\na99e651e73a507e9e663e2364fcc193ec77e8afdc08c2bed6ad864e49b537ec31e9114ee72291a7657899f2033a849e2\naf966033636c2e9e8280d173f556fe07f8b6940bbcf6b2df7e2165c30bea66cced2596f6c17ca7c1aa0e614174953ba9\nb69ca7a79e3d55ef21e0ebdc6f0c4bd17182d30cf6290cccca7d2551c91c12b966020d8e40e4ee4179488c9809c03ae4\nb981cd36244e035fef043f70b1d7188d7cd045b4de0581c459fc5730e10eb7f3d5893b54cc4243849c0855e4e621167a\nb20fea858a36921b35a3051ce787b73f70fdecd3fef283c15a2eb1bffb1dcba5991eee4a047ce4e87802da923fd9457b\nb040e6f2e56dc1860274c263d4045837456f74b354a679f6b5ea70919835ebe5d32bf1f519e218730096c98ff396dc9d\n8d2dd60e702c923a7204b530e7d6c193c6f93ca648c4f7bb38f4edbeb0aaed84184213afafb8db6aeb9197c24364276c\n95dfa7348709e43d71285b28a0bfad3ca805b6ed4ae99753e9f736c79d58a35a3a50b42760ccdd03eda50f6e59494968\nb8585632a13f18c139a411bb2f02df809591834d127cd1ff081e26d0abfe0e3fbb54abea26538b25a0dcb4d7e969590e\nb46ba47858a29c6d523c9982660949567666daf2582b93393a4802a9e077eedbc0d49d454731696bc8e46ca50c7caa40\n84b756b901b98a4404e58d70f39f6ccac877146c866732ae65e7e82727448d1550343bf7cdff1bfd4ee1ed73793db255\n83e5be888eaf877a2c755897410865f64a6d1169a8ccf0336092f3932abab915e542ab75a35ffe016042340d581ee987\n8cb274fc39285aed451a7def72cfbf73168ee10be02affe355a2bf87cf361a81ad284e9334cf00c5bf99a13d9f75e116\n91ff6220924b94ae13f50eeac16a159232e4f16a73fbd5c22c0e185cd1998403904d36bad203baa82b85819ee4a8ac10\n87f46e08e09aea2ab37b55fc300689d9b58ff3e72f1cffe023386035888f714fac4673c7c5193d3f3f3c568c640694f0\n835d7d84ca7641e1b15095830114aa6072fe12260d2202456cafe2308c22651af9ffbcf6b7e56af97167dd0c4e2a4cf2\n91202183f79794f114fd9e3b9bd05553c0e8985919965101a57d97ef666b028863e6cea9735af016dc1864f1542dee51\n81ab2b02a9b0a490a74ae615ddd4fe560734c1bfdde6b8dd13303c1481ba0e8ab14473535a93cfe4e824a0ab29445f8c\n8a32d73f4fc006551d4e2c61eec6130355ec9b8c39a65c24ec1edc00e80155ca83a8ef2455e892521a3d47634d82a987\naf70d7b8f13bc90193cc1cfb0c400c4224cf10f1887848aa93e6380f7087782fc41a159926ab53c53eb95c2383b1a849\n989bf42f9d357c51774f1c7c0f7c0c46a8cb7398a74497141c32685be098e38b4230ffe833a6d880ec391a35b1a747b6\n94cb6715ee95700020c630b8c19e35f231de970219bd7e6ba7ced01899197da473b6c45cacfab0d652ddaf547b4ea58c\nb12e3331f1f7d7458393a785e22e9a5e1d1daea521b4e78c0ee8ca59b41ade1735a29820e18f6afb2f2c3c56fecc16b6\nad4b7cf654349d136fb41fb0dd65b588199f68b462b05f5c4e5c2b468bfaa6c26329033e3c3f7873dc8ace89cf873ea5\na3279969e1ab596df0559ffc5ac7a6dc849680354e01c3f4fd34c6413a3f9f046f89c1e1be0b315d8b6dfab3d23d5c14\nac74cc5562836ed89d09a9ae6a3644c936d64bdda9e77659d9982f1be29541b03ef2723236d5465e398373ea19a4ccc6\n98138ebce1af531dd8b631b3e74c84f0c700355a2a9bde31e5e51bb10c8bbd766559c63f6041f4002568803fe08438e0\n9006445da131349fe5714e0777a4f82a82da343612589a0c1596393e8b6894ce1cf42784f95ff67a8384ffe1f1a4ad76\n88502a84a85e4ce54cfed297b5d355867cc770a8ffd0714a6f23b1ab320a9903c6e42809e034bb67dbf94c4fc0d9c790\naa8b4bf123d1a6ccaa44b86be8f980005f2a0a388a76cb111b0e85cd072ef64167fb0c097c7b23c4bca64c0260f6cce0\nad49eb35dfea9feabb513a78dd1152ad7eba22fbb02a80cefc494a7037699c8df81202dfec12acc1b9e33ad680cb72d2\n8694da730231b29afd5196371ddcb15b4dcc499574bdd063f4864ab80749833ea38ab8b0ca1629a367fe378e87a60a86\n8eca7b488e810c479e7e32e24b8afcd837f7df183fe4f621a0336b53a9ed77603c84bdc365d8be68179a32b71a1deb7e\n8875cd3e23c7e1af55af1b091025a08255743984186770bcd43f30b4a58d175cfdf1984bad97a15e08dac2da27198c3d\nabdafcf58ec72997e494d4714645f40d09dcd0fbd0733e640eca44eeea67c25bb0c270299c459991f2fae59d13b4f4d5\n8f040970141e61489284f3efd907705eae6ec757fe8e1d284eac123d313e9ac1e8dc14ae3f04d281e1effc49d5d2f51d\na7ff115f0d2dbf66c0e8770b3d05157b37357b9e33e9a447f0f3fa9da69ad04e371fd1e4848cfb9e8d05e3165bd969d8\na39b1a8c39d317fcc97bf6c396e6ed4a85640aeeadbf45166bd02bc3bdfb6266509159c03afd492e642384c635b824c0\na2e1b90f3dd2d0038eaa5be52127844ccf35d997143179d95ffd3749c0896398b130094d01eb1bb31ffe80ef34b42b48\na2bbe31f89b0c3c375ffaf63c8b7831860a921d5e388eb7907dbf61f2601ea40db86bb3952ecaa26a5eca4317a848ff9\n87d885bb0f2ce04b40ce94d2557c15f1698dc652e938f9a2d69a73ccf4899e08eafa1a59a20cae92823795f5b94f04b9\n8f7746370f8a24a2889d351f3e36b8a7d60e75e50e8f5abeea7dafc75441e95915721654e61ceac51bb6f112780d352c\na7272847526ed3d9e0d0fea1d8685b07b5b908971490bf8a46748c8b1783c629b8644feb5bac772ae615daae383d5e72\n978c9aa2996d8bd6fda7e0393fa8b38747f8f99712427705c00f6e9a12c36f8d8b4cedb03fcb9867155cbddb5200e6e1\na4dec4a2354b2b32434c5bcdc380bf84580c6f9940f94dc0498a5bfe89c675a0921e66b807a3d859a6059a464cb2a9ac\n99459ddecc7abce437f68722dae556d8ffaf8ed974f459e52e6d4a64f176caa4d42c2f2ec57e8a5b5f2034638e8acb0a\n928c68c0c9213fe6258ab5bb0c693d97203d15da359784de7824dec143212da57d062a1fc70a79172cee31adc7aff382\naad3f318f1622ea87e12541dfd982d71629b8f1ded4c301f9f6b6af9432716ad057773c33bdaa6f15dc151b0ee4505ea\n8eb8e978f149a983fd6ad01773f9aacf57bd0cc622d8a301e404184b37e610123dd081faeda571a0ab1f149a3960af10\n851e7191d7b94bd422bcece5b92609fc1b1c8556229bc53e32963b2d2fd1cacd8ce5da9040b599eca6e610540f8a7987\n9414157fe9d50e5a0b5a7397417681bcb3a651eec1cab63f2a88d5df68ab1fef6e4c1d7ba657cbaf241a7cb790297633\nb5cb2dafdc5408959780754a58b2da55b2a9136672ebca42f34da4e329ddc89360e7218cde3efdbf784ddb390deacc57\nac6b70f65503a8e94b773fda3e72615745824930114fe72b6d833484285462392617c1b2eea4a250fedbee88f503f3ba\nb0829a5312f9ac6c06fddee2f835a3452fe994f6d42c9edfc390d7d5b3240ca544433b544cbbddd6516b38a6d5d7c21d\n95f8e2c59905957e34d53be3d6fb85732f834e2cb9ab4c333fea2f502452a87ccd035fc9075d7c0bd8530bb0a0c96527\nb93f279b7045f2d97c674495f6e69a3e352f32f43cc60300193b936c2850b2805c15457251f7e3f633f435cb2b60405c\n915abf16cba1a0b655b92a8a70c03e7fb306b86f3bbfb66967ca63e64c003b59c7a5953675efa4fa0bce9bed536b6700\nac2047f50a319d09df1ec44d71afdcec5ac3bd2765dc98aba347734aa780863545df9f6d71214d443e3f37edc0dae45a\nad49c74ddb24c8a26b14ec08bc807313c77c5967fbb36237f55994d7511bbac8d7e7b9b8ec53eb1b3b066989f078dbd9\n961483105f605e959213fe9e8a52b76dac62d7efd2319ec71fc4e92d68fbe44cd2f65d7adefb2eb64d591b91648b8085\nb67fcafc97d8df2b3075bbff7b3d7471dbf1f3048f309e55d5e2c5bcbc7a73aebcb0697859be9f387cbc7ce98041e154\n8da70ac16468cab6066992389cb37c79ff5e0babbe67d76878aef9408b9597a3dc2eb5de87428bc761a0d78957b0eb28\naec0ce89770d299b631f15ae12f94b1e1014ac57d38fcf037c2c7712d770d074affa06e97c60691bad8733874b6ad2ed\n8b702c85fa4c915a09fc86507f44d7aeda0993b77af87780d70cc98d580c6e996b64b7c16cdb4dd4562cb0f75da36ee7\naaeb43aa472aac2253e211fd1066c3a5422ea041cef20168702d0618a1a742a44f7fb30a76677640fea1a24e7fae1996\na8820e92825d6e02b9b4ad5ebc86161d3244cddd3d244333ba1576b6ae10948145b68d9e926bf6b7a2c25dab4cf43f3e\n8ffdae28a1f1d15d7ffa473628a66ee9a739073f59ba781248286b39cb8f7255f66d62337064246713cbb5017e615174\nadfc5dd142b7911326d8424881d5d92006f3b17de4cce91674d6ea37f00fbb266c791ac13f6c7a0f61d04f2a952e6a04\n87f98982444bf661f539bec73a10256f079a4baa88a1cea0351ae3de929e1c500485b2d1b5d933063cd7d9123d5050e4\n8f217ba4dd404c5ee384f0c9a126686db001ff0344c01c82174c5e5ef89d1a241b146008c534b13a0da6c8afe7450fbb\nafc85476dddaf1cbb4ba8b22186789f3818c7964f9f613e55010278800cd95422702248bdf9c73760702ef24854795ec\na59e0f6ac2ccdfbd01f002008034390c0ea78716f5e0de4e474e3558755705c9c7afb6e3c5c4370e7bbc85958a9c7a63\n97c0695c58d792ec31d9b86d3b2fc1382f0855057b24d5f6a54c41f76f9e2f52882cadc89a8b2f121530e7f1393faa95\n8e49112de0b2649c08a96cf737af68fa8055f1af594846a2d0534c94df6f926f200405edaa6e6ac9db7e380707a2571d\n99a1bd83a7ac5f8d77ddf044c80ebfc5745b998714696d67b94d185c97e9d6db989bacac646d9def463127a8b2febc00\naba80725f9f9f7abe10760eca73ba427ca8df864a157122eb9af828a05b0199de3add02019a297750bdab5380e505c58\nae18f62573275c1eb268f74c5e54e8958547f9e7d1d36a05b084eb53e5704fafe2200b8aff95cc7e9af5be2391c42b7c\n908b8031d09d22b2aefeaa876a998e0a97c7a1070aad9e9c97836cc5aa6d2d5ef94230e1222074837b5e21b4e6490f01\nb3132282e8b41ca6789ec5c43c1fecf3a65b8eefbc2f3d10f746a843b9ba4ce6db664678e75e424f7b11a00c1440de15\na1eb49440cc106ebc09cf198c93e8070271eb5a936d31c04858a2b311a037350100c7957d5545c9653f396aa968b91f4\n81df6ad1bdd5eee4cc2f94318467b8602d15cc1be2b48b09ade12cc46ee05cbaaf77a20397e5015030b1f1db5dd9dac0\n87236c68a2a93c8442d15d7f1d1dc01d1fd123439c183e1d843f4ddd2bcf638c128f66f1ef9b710e5d1f64a52726007a\n84f2e7f85563bb2f61b10a712c7605d63f79af5be0dba056814fd3efebc20e9c53227c56577b72c68d185571b775eff6\na36d4ae06688ece2927aeb2c7f058a3cd2aa1de1601282d4e688e1d76ef20728b892928deda2314eba41675eba3912f1\nb8326dcbcdcfce017b263c456c47692fb476c4225c95981666fff0b7d4522fc23b7f12273f0f47cf0442662124e6648f\n84c66463ab277cda2cc7007d0509269e89cdd41c5e0d3773a92615f0fc5da63811186b05d7a11088048a5d4834a7e0df\nb20d3571d970712ef4699b0e7034fd269c361f53e1572e2ea2676b4245e992d43b8b5931a801439a44d977a988cc360b\n94dba6007e6d4998ca1eb84aa8e2a7e9f5c164b9d80df2825f2208ce5640a05aacac2e4f08918268990f43ae1ccab69a\na1c25f0b3ef9d1982153207570d9ce8d692e1b6963b509958dc4d9bcd80074bb221c46804a6d9a29e76149cc7787c282\n8857748fcdab1199fc96084323a81d3bd8b5a7f0b1abc5bc3b5252a19268344e2e7d2d086c90fc9b5fa4b92feedb93a4\n8b9c1d841447354b6c086549e4d1d435ab64c13933488c34bc30f0f6eb36c5c5b838b7b6bb018542247edd1ada091045\n8f5b655416da0e719a204fc567e93792c301acb4374cf7bbabc6ce51dbeaaadfd75c2db0e16ce073ab8e91fd3d7ea9d4\n90f2846b19be46a75c5cd0cafefcf9192e6fd80c479e8d6320c4b8d8d7d96703c9e77ff31a67afa9858e6b7bde1f7cce\na53e383947fd98aa1a55ac956214b46b20a52758461e8ba41341a23a835ebb713038bf048edb1202bbfd0b56a96bf292\n9542d7debbcfb9cda6fa279c699a7b655c03b9a9b456a5d3cfc41a826c94eafa43e01155a29e39ff0bcd965f4c0c512d\na43792864ec5fc549f7afc02622454afc0e425c310c4039ba615067243ebb26a4c7ebfd19bd4d57ff412a4bb2a7958a0\nb85123950e30c048465bf32365d24a5d4b21fffc6183cdbf71643a07b87463989b72dd9a6a47f134856f704909a6b38f\n944ea689aec1376f855c0bc9c51378ad06ff758a2c075b95a60b535b88b36eca0be11e4edb5152e98cb2137d6e749f27\na6bef52cda22325e4c62d323e2a0e3fa91c5552fcfce951edfd52ad6f652bfdcc2341f1cd349e6b5d447924dc569bfe2\nb56bff8ffe981bfcb30791836da10b87f2ccbe17ed969e7f7a650af07d27ae0223805b1264d985148208483be50578a6\n8b209cac898dd580c82d854a553e2517497ad1a4cd198e1360b8b50639b380aee70ee4b87625d9b2278228ff644cd25c\n877cce233fec74c7158b3c5bf108365e98238418b8a71f058f1aca44a0fd3a1021e3e9025bd11fe244d9fe0f5034ce7f\nb1b871aeedb03d6f6accc99816b89f5958178738d8d8cd9717527d04363c80fdb5f6848122ae19fdbc450cfa11e753c8\n858aca51b9e5b0a724e88688d5124eb24c9faf01a3d465e74d31de6da315f311143f22f60201ea09f62c92f61f09d889\n8521d409615dfc8c8289e00f6aaa6297c2c4e1439b25952afd76aac641b81c70b9cef07cd58c1c0198382bddd2bd8544\n88647c3e41666b88acca42505f1f5da226937e0522b538fe0cebb724e9a99730ca2522989e94a96cac94109aef675c0f\nb417fdaf719caf38854e89ce52031b30ce61a632e6c3135adec9002280e022d82ab0ea4ac5ebdb21f1f0169e4c37bcda\n9367a6feb5e23ea2eab8ddd5e7bdf32b4d2419fad1c71a1ed327b77362d8942dad971a1c2e6f7073885149cdf0a0c339\na71c5c08d50c57d094d6a4f02e97d3799bada92f238ffc07bd223bbe8379507b7310d20b28f5bbbf331e5e153515e491\n9630a9a3bcb044b51299c4d3d3388a4ff47308dd27be3229601985478c0f6b55faa7e20815d8694f910611396a9d0d45\nb0bfaf56a5aa59b48960aa7c1617e832e65c823523fb2a5cd44ba606800501cf873e8db1d0dda64065285743dc40786e\n"
  },
  {
    "path": "src/ethereum_test_types/phase_manager.py",
    "content": "\"\"\"Test phase management for Ethereum tests.\"\"\"\n\nfrom contextlib import contextmanager\nfrom enum import Enum\nfrom typing import ClassVar, Iterator, Optional\n\n\nclass TestPhase(Enum):\n    \"\"\"Test phase for state and blockchain tests.\"\"\"\n\n    SETUP = \"setup\"\n    EXECUTION = \"execution\"\n\n\nclass TestPhaseManager:\n    \"\"\"\n    Manages test phases for transactions and blocks.\n\n    This singleton class provides context managers for \"setup\" and\n    \"execution\" phases. Transactions automatically detect and tag\n    themselves with the current phase.\n\n    Usage:\n        with TestPhaseManager.setup():\n            # Transactions created here have test_phase = \"setup\"\n            setup_tx = Transaction(...)\n\n        with TestPhaseManager.execution():\n            # Transactions created here have test_phase = \"execution\"\n            benchmark_tx = Transaction(...)\n    \"\"\"\n\n    _current_phase: ClassVar[Optional[TestPhase]] = None\n\n    @classmethod\n    @contextmanager\n    def setup(cls) -> Iterator[None]:\n        \"\"\"Context manager for the setup phase of a benchmark test.\"\"\"\n        old_phase = cls._current_phase\n        cls._current_phase = TestPhase.SETUP\n        try:\n            yield\n        finally:\n            cls._current_phase = old_phase\n\n    @classmethod\n    @contextmanager\n    def execution(cls) -> Iterator[None]:\n        \"\"\"Context manager for the execution phase of a test.\"\"\"\n        old_phase = cls._current_phase\n        cls._current_phase = TestPhase.EXECUTION\n        try:\n            yield\n        finally:\n            cls._current_phase = old_phase\n\n    @classmethod\n    def get_current_phase(cls) -> Optional[TestPhase]:\n        \"\"\"Get the current test phase.\"\"\"\n        return cls._current_phase\n\n    @classmethod\n    def reset(cls) -> None:\n        \"\"\"Reset the phase state to None (primarily for testing).\"\"\"\n        cls._current_phase = None\n"
  },
  {
    "path": "src/ethereum_test_types/py.typed",
    "content": ""
  },
  {
    "path": "src/ethereum_test_types/receipt_types.py",
    "content": "\"\"\"Transaction receipt and log types for Ethereum tests.\"\"\"\n\nfrom typing import List\n\nfrom pydantic import Field\n\nfrom ethereum_test_base_types import (\n    Address,\n    Bloom,\n    Bytes,\n    CamelModel,\n    Hash,\n    HexNumber,\n)\n\n\nclass TransactionLog(CamelModel):\n    \"\"\"Transaction log.\"\"\"\n\n    address: Address\n    topics: List[Hash]\n    data: Bytes\n    block_number: HexNumber\n    transaction_hash: Hash\n    transaction_index: HexNumber\n    block_hash: Hash\n    log_index: HexNumber\n    removed: bool\n\n\nclass ReceiptDelegation(CamelModel):\n    \"\"\"Transaction receipt set-code delegation.\"\"\"\n\n    from_address: Address = Field(..., alias=\"from\")\n    nonce: HexNumber\n    target: Address\n\n\nclass TransactionReceipt(CamelModel):\n    \"\"\"Transaction receipt.\"\"\"\n\n    transaction_hash: Hash | None = None\n    gas_used: HexNumber | None = None\n    root: Bytes | None = None\n    status: HexNumber | None = None\n    cumulative_gas_used: HexNumber | None = None\n    logs_bloom: Bloom | None = None\n    logs: List[TransactionLog] | None = None\n    contract_address: Address | None = None\n    effective_gas_price: HexNumber | None = None\n    block_hash: Hash | None = None\n    transaction_index: HexNumber | None = None\n    blob_gas_used: HexNumber | None = None\n    blob_gas_price: HexNumber | None = None\n    delegations: List[ReceiptDelegation] | None = None\n"
  },
  {
    "path": "src/ethereum_test_types/request_types.py",
    "content": "\"\"\"Request types for Ethereum tests.\"\"\"\n\nfrom abc import abstractmethod\nfrom collections import defaultdict\nfrom typing import ClassVar, Dict, List, SupportsBytes\n\nfrom ethereum_test_base_types import (\n    Address,\n    BLSPublicKey,\n    BLSSignature,\n    Bytes,\n    CamelModel,\n    Hash,\n    HexNumber,\n)\n\n\nclass RequestBase:\n    \"\"\"Base class for requests.\"\"\"\n\n    type: ClassVar[int]\n\n    @abstractmethod\n    def __bytes__(self) -> bytes:\n        \"\"\"Return request's attributes as bytes.\"\"\"\n        ...\n\n\nclass DepositRequest(RequestBase, CamelModel):\n    \"\"\"Deposit Request type.\"\"\"\n\n    pubkey: BLSPublicKey\n    \"\"\"The public key of the beacon chain validator.\"\"\"\n    withdrawal_credentials: Hash\n    \"\"\"The withdrawal credentials of the beacon chain validator.\"\"\"\n    amount: HexNumber\n    \"\"\"The amount in gwei of the deposit.\"\"\"\n    signature: BLSSignature\n    \"\"\"\n    The signature of the deposit using the validator's private key that matches\n    the `pubkey`.\n    \"\"\"\n    index: HexNumber\n    \"\"\"The index of the deposit.\"\"\"\n\n    type: ClassVar[int] = 0\n\n    def __bytes__(self) -> bytes:\n        \"\"\"Return deposit's attributes as bytes.\"\"\"\n        return (\n            bytes(self.pubkey)\n            + bytes(self.withdrawal_credentials)\n            + self.amount.to_bytes(8, \"little\")\n            + bytes(self.signature)\n            + self.index.to_bytes(8, \"little\")\n        )\n\n\nclass WithdrawalRequest(RequestBase, CamelModel):\n    \"\"\"Withdrawal Request type.\"\"\"\n\n    source_address: Address = Address(0)\n    \"\"\"\n    The address of the execution layer account that made the withdrawal\n    request.\n    \"\"\"\n    validator_pubkey: BLSPublicKey\n    \"\"\"\n    The current public key of the validator as it currently is in the beacon\n    state.\n    \"\"\"\n    amount: HexNumber\n    \"\"\"The amount in gwei to be withdrawn on the beacon chain.\"\"\"\n\n    type: ClassVar[int] = 1\n\n    def __bytes__(self) -> bytes:\n        \"\"\"Return withdrawal's attributes as bytes.\"\"\"\n        return (\n            bytes(self.source_address)\n            + bytes(self.validator_pubkey)\n            + self.amount.to_bytes(8, \"little\")\n        )\n\n\nclass ConsolidationRequest(RequestBase, CamelModel):\n    \"\"\"Consolidation Request type.\"\"\"\n\n    source_address: Address = Address(0)\n    \"\"\"\n    The address of the execution layer account that made the consolidation\n    request.\n    \"\"\"\n    source_pubkey: BLSPublicKey\n    \"\"\"\n    The public key of the source validator as it currently is in the beacon\n    state.\n    \"\"\"\n    target_pubkey: BLSPublicKey\n    \"\"\"\n    The public key of the target validator as it currently is in the beacon\n    state.\n    \"\"\"\n\n    type: ClassVar[int] = 2\n\n    def __bytes__(self) -> bytes:\n        \"\"\"Return consolidation's attributes as bytes.\"\"\"\n        return bytes(self.source_address) + bytes(self.source_pubkey) + bytes(self.target_pubkey)\n\n\ndef requests_list_to_bytes(requests_list: List[RequestBase] | Bytes | SupportsBytes) -> Bytes:\n    \"\"\"Convert list of requests to bytes.\"\"\"\n    if not isinstance(requests_list, list):\n        return Bytes(requests_list)\n    return Bytes(b\"\".join([bytes(r) for r in requests_list]))\n\n\nclass Requests:\n    \"\"\"Requests for the transition tool.\"\"\"\n\n    requests_list: List[Bytes]\n\n    def __init__(\n        self,\n        *requests: RequestBase,\n        requests_lists: List[List[RequestBase] | Bytes] | None = None,\n    ) -> None:\n        \"\"\"Initialize requests object.\"\"\"\n        if requests_lists is not None:\n            assert len(requests) == 0, \"requests must be empty if list is provided\"\n            self.requests_list = []\n            for requests_list in requests_lists:\n                self.requests_list.append(requests_list_to_bytes(requests_list))\n            return\n        else:\n            lists: Dict[int, List[RequestBase]] = defaultdict(list)\n            for r in requests:\n                lists[r.type].append(r)\n\n            self.requests_list = [\n                Bytes(bytes([request_type]) + requests_list_to_bytes(lists[request_type]))\n                for request_type in sorted(lists.keys())\n            ]\n\n    def __bytes__(self) -> bytes:\n        \"\"\"Return requests hash.\"\"\"\n        s: bytes = b\"\".join(r.sha256() for r in self.requests_list)\n        return Bytes(s).sha256()\n"
  },
  {
    "path": "src/ethereum_test_types/tests/__init__.py",
    "content": "\"\"\"Tests for the ethereum_test_types package.\"\"\"\n"
  },
  {
    "path": "src/ethereum_test_types/tests/test_blob_types.py",
    "content": "\"\"\"Test suite for blobs.\"\"\"\n\nimport copy\nimport time\nfrom typing import Any\n\nimport pytest\nfrom filelock import FileLock\n\nfrom ethereum_test_forks import (\n    Cancun,\n    Osaka,\n    Prague,\n)\nfrom ethereum_test_forks.forks.transition import (\n    CancunToPragueAtTime15k,\n    PragueToOsakaAtTime15k,\n    ShanghaiToCancunAtTime15k,\n)\n\nfrom ..blob_types import CACHED_BLOBS_DIRECTORY, Blob, clear_blob_cache\n\n\ndef increment_counter(timeout: float = 10) -> int:\n    \"\"\"\n    Increment counter in file, creating if doesn't exist.\n\n    This is needed because we require the unit test\n    'test_transition_fork_blobs' to run at the end without having to include\n    another dependency for ordering tests. That test has to run at the end\n    because it assumes that no json blobs not created by itself are created\n    while it is running.\n\n    The hardcoded counter value in the test above has to be updated if any new\n    blob_related unit tests that create json blobs are added in the future.\n    \"\"\"\n    file_path = CACHED_BLOBS_DIRECTORY / \"blob_unit_test_counter.txt\"\n    lock_file = file_path.with_suffix(\".lock\")\n\n    with FileLock(lock_file, timeout=timeout):\n        # Read current value or start at 0\n        if file_path.exists():\n            current_value = int(file_path.read_text().strip())\n        else:\n            current_value = 0\n\n        # Increment and write back\n        new_value = current_value + 1\n        file_path.write_text(str(new_value))\n\n        return new_value\n\n\ndef wait_until_counter_reached(target: int, poll_interval: float = 0.1) -> int:\n    \"\"\"Wait until blob unit test counter reaches target value.\"\"\"\n    file_path = CACHED_BLOBS_DIRECTORY / \"blob_unit_test_counter.txt\"\n    lock_file = file_path.with_suffix(\".lock\")  # Add lock file path\n\n    while True:\n        # Use FileLock when reading!\n        with FileLock(lock_file, timeout=10):\n            if file_path.exists():\n                try:\n                    current_value = int(file_path.read_text().strip())\n                    if current_value == target:\n                        return current_value\n                    elif current_value > target:\n                        pytest.fail(\n                            f\"The blob_unit_test lock counter is too high! \"\n                            f\"Expected {target}, but got {current_value}. \"\n                            f\"It probably reused an existing file that was not cleared. \"\n                            f\"Delete {file_path} manually to fix this.\"\n                        )\n                except Exception:\n                    current_value = 0\n            else:\n                current_value = 0\n\n        time.sleep(poll_interval)\n\n\n@pytest.mark.parametrize(\"seed\", [0, 10, 100])\n@pytest.mark.parametrize(\"fork\", [Cancun, Prague, Osaka])\ndef test_blob_creation_and_writing_and_reading(\n    seed: int,\n    fork: Any,\n) -> None:  # noqa: F811\n    \"\"\"\n    Generates blobs for different forks and ensures writing to file and reading\n    from file works as expected.\n    \"\"\"\n    timestamp = 100\n    b = Blob.from_fork(fork=fork, seed=seed, timestamp=timestamp)\n    b.write_to_file()\n\n    # read from file\n    #       determine what filename would be\n    cell_proof_amount = str(fork.get_blob_constant(\"AMOUNT_CELL_PROOFS\"))\n    file_name = \"blob_\" + str(seed) + \"_cell_proofs_\" + cell_proof_amount + \".json\"\n    #       read\n    restored = Blob.from_file(file_name)\n\n    # ensure file you read equals file you wrote\n    assert b.model_dump() == restored.model_dump()\n\n    increment_counter()\n\n\n@pytest.mark.parametrize(\n    \"corruption_mode\",\n    [\n        Blob.ProofCorruptionMode.CORRUPT_ALL_BYTES,\n        Blob.ProofCorruptionMode.CORRUPT_FIRST_BYTE,\n        Blob.ProofCorruptionMode.CORRUPT_LAST_BYTE,\n        Blob.ProofCorruptionMode.CORRUPT_TO_ALL_ZEROES,\n    ],\n)\n@pytest.mark.parametrize(\"fork\", [Cancun, Prague, Osaka])\ndef test_blob_proof_corruption(\n    corruption_mode: Any,\n    fork: Any,\n) -> None:\n    \"\"\"\n    Generates blobs for different forks, corrupts their proofs and ensures that\n    the corrupted proof is not equal to the correct proof.\n    \"\"\"\n    timestamp = 100\n    b = Blob.from_fork(fork=fork, timestamp=timestamp)\n    old_valid_proof = copy.deepcopy(b.proof)  # important to deepcopy\n\n    b.corrupt_proof(corruption_mode)\n    assert b.proof != old_valid_proof, (\n        f\"Proof corruption mode {corruption_mode} for fork {fork.name()} failed, \"\n        \"proof is unchanged!\"\n    )\n\n    increment_counter()\n\n\n@pytest.mark.parametrize(\"timestamp\", [14999, 15000])\n@pytest.mark.parametrize(\n    \"fork\", [ShanghaiToCancunAtTime15k, CancunToPragueAtTime15k, PragueToOsakaAtTime15k]\n)\ndef test_transition_fork_blobs(\n    fork: Any,\n    timestamp: int,\n) -> None:\n    \"\"\"\n    Generates blobs for transition forks (time 14999 is old fork, time 15000 is\n    new fork).\n    \"\"\"\n    # line below guarantees that this test runs only after the other blob unit\n    # tests are done\n    wait_until_counter_reached(21)\n\n    clear_blob_cache(CACHED_BLOBS_DIRECTORY)\n\n    print(f\"Original fork: {fork}, Timestamp: {timestamp}\")\n    pre_transition_fork = fork.transitions_from()\n    # only reached if timestamp >= 15000\n    post_transition_fork_at_15k = fork.transitions_to()\n\n    if not pre_transition_fork.supports_blobs() and timestamp < 15000:\n        print(\n            f\"Skipping blob creation because pre-transition fork is {pre_transition_fork} \"\n            f\"and timestamp is {timestamp}\"\n        )\n        return\n\n    # b has already applied transition if requirements were met\n    b = Blob.from_fork(fork=fork, timestamp=timestamp)\n    print(f\"Fork of created blob: {b.fork.name()}\")\n\n    if timestamp == 14999:  # case: no transition yet\n        assert b.fork.name() == pre_transition_fork.name(), (\n            f\"Transition fork failure! Fork {fork.name()} at timestamp: {timestamp} should have \"\n            f\"stayed at fork {pre_transition_fork.name()} but has unexpectedly transitioned \"\n            f\"to {b.fork.name()}\"\n        )\n    elif timestamp == 15000:  # case: transition to next fork has happened\n        assert b.fork.name() == post_transition_fork_at_15k.name(), (\n            f\"Transition fork failure! Fork {fork.name()} at timestamp: {timestamp} should have \"\n            f\"transitioned to {post_transition_fork_at_15k.name()} but is still at {b.fork.name()}\"\n        )\n\n    # delete counter at last iteration (otherwise re-running all unit tests\n    # will fail)\n    if timestamp == 15_000 and pre_transition_fork == Prague:\n        (CACHED_BLOBS_DIRECTORY / \"blob_unit_test_counter.txt\").unlink()\n"
  },
  {
    "path": "src/ethereum_test_types/tests/test_block_access_lists.py",
    "content": "\"\"\"Unit tests for BlockAccessListExpectation validation.\"\"\"\n\nfrom typing import Any\n\nimport pytest\n\nfrom ethereum_test_base_types import Address, StorageKey\nfrom ethereum_test_types.block_access_list import (\n    BalAccountAbsentValues,\n    BalAccountChange,\n    BalAccountExpectation,\n    BalBalanceChange,\n    BalCodeChange,\n    BalNonceChange,\n    BalStorageChange,\n    BalStorageSlot,\n    BlockAccessList,\n    BlockAccessListExpectation,\n    BlockAccessListValidationError,\n)\n\n\ndef test_address_exclusion_validation_passes() -> None:\n    \"\"\"Test that address exclusion works when address is not in BAL.\"\"\"\n    alice = Address(0xA)\n    bob = Address(0xB)\n\n    actual_bal = BlockAccessList(\n        [\n            BalAccountChange(\n                address=alice,\n                nonce_changes=[BalNonceChange(tx_index=1, post_nonce=1)],\n            ),\n        ]\n    )\n\n    expectation = BlockAccessListExpectation(\n        account_expectations={\n            alice: BalAccountExpectation(nonce_changes=[BalNonceChange(tx_index=1, post_nonce=1)]),\n            bob: None,  # expect Bob is not in BAL (correctly)\n        }\n    )\n\n    expectation.verify_against(actual_bal)\n\n\ndef test_address_exclusion_validation_raises_when_address_is_present() -> None:\n    \"\"\"Test that validation fails when excluded address is in BAL.\"\"\"\n    alice = Address(0xA)\n    bob = Address(0xB)\n\n    actual_bal = BlockAccessList(\n        [\n            BalAccountChange(\n                address=alice,\n                nonce_changes=[BalNonceChange(tx_index=1, post_nonce=1)],\n            ),\n            BalAccountChange(\n                address=bob,\n                balance_changes=[BalBalanceChange(tx_index=1, post_balance=100)],\n            ),\n        ]\n    )\n\n    expectation = BlockAccessListExpectation(\n        # explicitly expect Bob to NOT be in BAL (wrongly)\n        account_expectations={bob: None},\n    )\n\n    with pytest.raises(BlockAccessListValidationError, match=\"should not be in BAL but was found\"):\n        expectation.verify_against(actual_bal)\n\n\n@pytest.mark.parametrize(\n    \"empty_changes_definition,exception_message\",\n    [\n        [BalAccountExpectation(), \"ambiguous. Use BalAccountExpectation.empty()\"],\n        [BalAccountExpectation.empty(), \"No account changes expected for \"],\n    ],\n    ids=[\"BalAccountExpectation()\", \"BalAccountExpectation.empty()\"],\n)\ndef test_empty_account_changes_definitions(\n    empty_changes_definition: Any,\n    exception_message: str,\n) -> None:\n    \"\"\"\n    Test that validation fails when expected empty changes but actual\n    has changes.\n    \"\"\"\n    alice = Address(0xA)\n\n    actual_bal = BlockAccessList(\n        [\n            BalAccountChange(\n                address=alice,\n                nonce_changes=[BalNonceChange(tx_index=1, post_nonce=1)],\n            ),\n        ]\n    )\n\n    expectation = BlockAccessListExpectation(\n        account_expectations={alice: empty_changes_definition}\n    )\n\n    with pytest.raises(BlockAccessListValidationError, match=exception_message):\n        expectation.verify_against(actual_bal)\n\n\ndef test_empty_list_validation() -> None:\n    \"\"\"Test that empty list validates correctly.\"\"\"\n    alice = Address(0xA)\n\n    actual_bal = BlockAccessList(\n        [\n            BalAccountChange(\n                address=alice,\n                nonce_changes=[],\n                balance_changes=[],\n                code_changes=[],\n                storage_changes=[],\n                storage_reads=[],\n            ),\n        ]\n    )\n\n    expectation = BlockAccessListExpectation(\n        account_expectations={\n            alice: BalAccountExpectation(\n                nonce_changes=[],\n                balance_changes=[],\n                code_changes=[],\n                storage_changes=[],\n                storage_reads=[],\n            ),\n        }\n    )\n\n    expectation.verify_against(actual_bal)\n\n\n@pytest.mark.parametrize(\n    \"field,value\",\n    [\n        [\"nonce_changes\", BalNonceChange(tx_index=1, post_nonce=1)],\n        [\"balance_changes\", BalBalanceChange(tx_index=1, post_balance=100)],\n        [\"code_changes\", BalCodeChange(tx_index=1, new_code=b\"code\")],\n        [\n            \"storage_changes\",\n            BalStorageSlot(\n                slot=0x01,\n                slot_changes=[BalStorageChange(tx_index=1, post_value=0x42)],\n            ),\n        ],\n        [\"storage_reads\", 0x01],\n    ],\n)\ndef test_empty_list_validation_fails(field: str, value: Any) -> None:\n    \"\"\"Test that validation fails when expecting empty but field has values.\"\"\"\n    alice = Address(0xA)\n\n    alice_acct_change = BalAccountChange(\n        address=alice,\n        storage_reads=[0x02],\n    )\n\n    if field == \"storage_reads\":\n        alice_acct_change.storage_reads = [value]\n        # set another field to non-empty to avoid all-empty account change\n        alice_acct_change.nonce_changes = [BalNonceChange(tx_index=1, post_nonce=1)]\n\n    else:\n        setattr(alice_acct_change, field, [value])\n    actual_bal = BlockAccessList([alice_acct_change])\n\n    alice_acct_expectation = BalAccountExpectation(\n        storage_reads=[0x02],\n    )\n    if field == \"storage_reads\":\n        alice_acct_expectation.storage_reads = []\n        # match the filled field in actual to avoid all-empty\n        # account expectation\n        alice_acct_expectation.nonce_changes = [BalNonceChange(tx_index=1, post_nonce=1)]\n    else:\n        setattr(alice_acct_expectation, field, [])\n\n    expectation = BlockAccessListExpectation(account_expectations={alice: alice_acct_expectation})\n\n    with pytest.raises(\n        BlockAccessListValidationError,\n        match=f\"Expected {field} to be empty\",\n    ):\n        expectation.verify_against(actual_bal)\n\n\ndef test_partial_validation() -> None:\n    \"\"\"Test that unset fields are not validated.\"\"\"\n    alice = Address(0xA)\n\n    # Actual BAL has multiple types of changes\n    actual_bal = BlockAccessList(\n        [\n            BalAccountChange(\n                address=alice,\n                nonce_changes=[BalNonceChange(tx_index=1, post_nonce=1)],\n                balance_changes=[BalBalanceChange(tx_index=1, post_balance=100)],\n                storage_reads=[0x01, 0x02],\n            ),\n        ]\n    )\n\n    # Only validate nonce changes, ignore balance and storage\n    expectation = BlockAccessListExpectation(\n        account_expectations={\n            alice: BalAccountExpectation(\n                nonce_changes=[BalNonceChange(tx_index=1, post_nonce=1)],\n                # balance_changes and storage_reads not set and won't be\n                # validated\n            ),\n        }\n    )\n\n    expectation.verify_against(actual_bal)\n\n\ndef test_storage_changes_validation() -> None:\n    \"\"\"Test storage changes validation.\"\"\"\n    contract = Address(0xC)\n\n    # Actual BAL with storage changes\n    actual_bal = BlockAccessList(\n        [\n            BalAccountChange(\n                address=contract,\n                storage_changes=[\n                    BalStorageSlot(\n                        slot=0x01,\n                        slot_changes=[BalStorageChange(tx_index=1, post_value=0x42)],\n                    )\n                ],\n            ),\n        ]\n    )\n\n    # Expect the same storage changes\n    expectation = BlockAccessListExpectation(\n        account_expectations={\n            contract: BalAccountExpectation(\n                storage_changes=[\n                    BalStorageSlot(\n                        slot=0x01,\n                        slot_changes=[BalStorageChange(tx_index=1, post_value=0x42)],\n                    )\n                ],\n            ),\n        }\n    )\n\n    expectation.verify_against(actual_bal)\n\n\ndef test_missing_expected_address() -> None:\n    \"\"\"Test that validation fails when expected address is missing.\"\"\"\n    alice = Address(0xA)\n    bob = Address(0xB)\n\n    actual_bal = BlockAccessList(\n        [\n            BalAccountChange(\n                address=alice,\n                nonce_changes=[BalNonceChange(tx_index=1, post_nonce=1)],\n            ),\n        ]\n    )\n\n    expectation = BlockAccessListExpectation(\n        account_expectations={\n            # wrongly expect Bob to be present\n            bob: BalAccountExpectation(\n                nonce_changes=[BalNonceChange(tx_index=1, post_nonce=1)],\n            ),\n        }\n    )\n\n    with pytest.raises(\n        BlockAccessListValidationError, match=\"Expected address .* not found in actual BAL\"\n    ):\n        expectation.verify_against(actual_bal)\n\n\n@pytest.mark.parametrize(\n    \"addresses,error_message\",\n    [\n        (\n            [\n                Address(0xB),\n                Address(0xA),  # should come first\n            ],\n            \"BAL addresses are not in lexicographic order\",\n        ),\n        (\n            [\n                Address(0x1),\n                Address(0x3),\n                Address(0x2),\n            ],\n            \"BAL addresses are not in lexicographic order\",\n        ),\n    ],\n)\ndef test_actual_bal_address_ordering_validation(addresses: Any, error_message: str) -> None:\n    \"\"\"Test that actual BAL must have addresses in lexicographic order.\"\"\"\n    # Create BAL with addresses in the given order\n    actual_bal = BlockAccessList(\n        [BalAccountChange(address=addr, nonce_changes=[]) for addr in addresses]\n    )\n\n    expectation = BlockAccessListExpectation(account_expectations={})\n\n    with pytest.raises(BlockAccessListValidationError, match=error_message):\n        expectation.verify_against(actual_bal)\n\n\n@pytest.mark.parametrize(\n    \"storage_slots,error_message\",\n    [\n        (\n            [StorageKey(0x02), StorageKey(0x01)],  # 0x02 before 0x01\n            \"Storage slots not in ascending order\",\n        ),\n        (\n            [StorageKey(0x01), StorageKey(0x03), StorageKey(0x02)],\n            \"Storage slots not in ascending order\",\n        ),\n    ],\n)\ndef test_actual_bal_storage_slot_ordering(storage_slots: Any, error_message: str) -> None:\n    \"\"\"Test that actual BAL must have storage slots in lexicographic order.\"\"\"\n    addr = Address(0xA)\n\n    actual_bal = BlockAccessList(\n        [\n            BalAccountChange(\n                address=addr,\n                storage_changes=[\n                    BalStorageSlot(slot=slot, slot_changes=[]) for slot in storage_slots\n                ],\n            )\n        ]\n    )\n\n    expectation = BlockAccessListExpectation(account_expectations={})\n\n    with pytest.raises(BlockAccessListValidationError, match=error_message):\n        expectation.verify_against(actual_bal)\n\n\n@pytest.mark.parametrize(\n    \"storage_reads,error_message\",\n    [\n        ([StorageKey(0x02), StorageKey(0x01)], \"Storage reads not in ascending order\"),\n        (\n            [StorageKey(0x01), StorageKey(0x03), StorageKey(0x02)],\n            \"Storage reads not in ascending order\",\n        ),\n    ],\n)\ndef test_actual_bal_storage_reads_ordering(storage_reads: Any, error_message: str) -> None:\n    \"\"\"Test that actual BAL must have storage reads in lexicographic order.\"\"\"\n    addr = Address(0xA)\n\n    actual_bal = BlockAccessList([BalAccountChange(address=addr, storage_reads=storage_reads)])\n\n    expectation = BlockAccessListExpectation(account_expectations={})\n\n    with pytest.raises(BlockAccessListValidationError, match=error_message):\n        expectation.verify_against(actual_bal)\n\n\n@pytest.mark.parametrize(\n    \"field_name\",\n    [\"nonce_changes\", \"balance_changes\", \"code_changes\"],\n)\ndef test_actual_bal_tx_indices_ordering(field_name: str) -> None:\n    \"\"\"Test that actual BAL must have tx indices in ascending order.\"\"\"\n    addr = Address(0xA)\n\n    tx_indices = [2, 3, 1]  # out of order\n\n    changes: Any = []\n    if field_name == \"nonce_changes\":\n        changes = [BalNonceChange(tx_index=idx, post_nonce=1) for idx in tx_indices]\n    elif field_name == \"balance_changes\":\n        changes = [BalBalanceChange(tx_index=idx, post_balance=100) for idx in tx_indices]\n    elif field_name == \"code_changes\":\n        changes = [BalCodeChange(tx_index=idx, new_code=b\"code\") for idx in tx_indices]\n\n    actual_bal = BlockAccessList([BalAccountChange(address=addr, **{field_name: changes})])\n\n    expectation = BlockAccessListExpectation(account_expectations={})\n\n    with pytest.raises(\n        BlockAccessListValidationError,\n        match=\"Transaction indices not in ascending order\",\n    ):\n        expectation.verify_against(actual_bal)\n\n\n@pytest.mark.parametrize(\n    \"field_name\",\n    [\"nonce_changes\", \"balance_changes\", \"code_changes\"],\n)\ndef test_actual_bal_duplicate_tx_indices(field_name: str) -> None:\n    \"\"\"\n    Test that actual BAL must not have duplicate tx indices in change lists.\n    \"\"\"\n    addr = Address(0xA)\n\n    # Duplicate tx_index=1\n    changes: Any = []\n    if field_name == \"nonce_changes\":\n        changes = [\n            BalNonceChange(tx_index=1, post_nonce=1),\n            BalNonceChange(tx_index=1, post_nonce=2),  # duplicate tx_index\n            BalNonceChange(tx_index=2, post_nonce=3),\n        ]\n    elif field_name == \"balance_changes\":\n        changes = [\n            BalBalanceChange(tx_index=1, post_balance=100),\n            BalBalanceChange(tx_index=1, post_balance=200),  # duplicate tx_index\n            BalBalanceChange(tx_index=2, post_balance=300),\n        ]\n    elif field_name == \"code_changes\":\n        changes = [\n            BalCodeChange(tx_index=1, new_code=b\"code1\"),\n            BalCodeChange(tx_index=1, new_code=b\"\"),  # duplicate tx_index\n            BalCodeChange(tx_index=2, new_code=b\"code2\"),\n        ]\n\n    actual_bal = BlockAccessList([BalAccountChange(address=addr, **{field_name: changes})])\n\n    expectation = BlockAccessListExpectation(account_expectations={})\n\n    with pytest.raises(\n        BlockAccessListValidationError,\n        match=f\"Duplicate transaction indices in {field_name}.*Duplicates: \\\\[1\\\\]\",\n    ):\n        expectation.verify_against(actual_bal)\n\n\ndef test_actual_bal_storage_duplicate_tx_indices() -> None:\n    \"\"\"\n    Test that storage changes must not have duplicate tx indices within same\n    slot.\n    \"\"\"\n    addr = Address(0xA)\n\n    # Create storage changes with duplicate tx_index within the same slot\n    actual_bal = BlockAccessList(\n        [\n            BalAccountChange(\n                address=addr,\n                storage_changes=[\n                    BalStorageSlot(\n                        slot=0x01,\n                        slot_changes=[\n                            BalStorageChange(tx_index=1, post_value=0x100),\n                            BalStorageChange(tx_index=1, post_value=0x200),  # duplicate tx_index\n                            BalStorageChange(tx_index=2, post_value=0x300),\n                        ],\n                    )\n                ],\n            )\n        ]\n    )\n\n    expectation = BlockAccessListExpectation(account_expectations={})\n\n    with pytest.raises(\n        BlockAccessListValidationError,\n        match=\"Duplicate transaction indices in storage slot.*Duplicates: \\\\[1\\\\]\",\n    ):\n        expectation.verify_against(actual_bal)\n\n\ndef test_expected_addresses_auto_sorted() -> None:\n    \"\"\"\n    Test that expected addresses are automatically sorted before comparison.\n\n    The BAL *Expectation address order should not matter for the dict. We DO,\n    however, validate that the actual BAL (from t8n) is sorted correctly.\n    \"\"\"\n    alice = Address(0xA)\n    bob = Address(0xB)\n    charlie = Address(0xC)\n\n    actual_bal = BlockAccessList(\n        [\n            BalAccountChange(address=alice, nonce_changes=[]),\n            BalAccountChange(address=bob, nonce_changes=[]),\n            BalAccountChange(address=charlie, nonce_changes=[]),\n        ]\n    )\n\n    # expectation order should not matter for the dict though we DO validate\n    # that the _actual_ BAL (from t8n) is sorted correctly\n    expectation = BlockAccessListExpectation(\n        account_expectations={\n            charlie: BalAccountExpectation(nonce_changes=[]),\n            alice: BalAccountExpectation(nonce_changes=[]),\n            bob: BalAccountExpectation(nonce_changes=[]),\n        }\n    )\n\n    expectation.verify_against(actual_bal)\n\n\n@pytest.mark.parametrize(\n    \"expected_slots,should_pass\",\n    [\n        # Correct order - should pass\n        ([StorageKey(0x01), StorageKey(0x02), StorageKey(0x03)], True),\n        # Partial subset in correct order - should pass\n        ([StorageKey(0x01), StorageKey(0x03)], True),\n        # Out of order - should fail\n        ([StorageKey(0x01), StorageKey(0x03), StorageKey(0x02)], False),\n        # Wrong order from start - should fail\n        ([StorageKey(0x02), StorageKey(0x01)], False),\n    ],\n)\ndef test_expected_storage_slots_ordering(expected_slots: Any, should_pass: bool) -> None:\n    \"\"\"Test that expected storage slots must be defined in correct order.\"\"\"\n    addr = Address(0xA)\n\n    # Actual BAL with storage slots in correct order\n    actual_bal = BlockAccessList(\n        [\n            BalAccountChange(\n                address=addr,\n                storage_changes=[\n                    BalStorageSlot(slot=StorageKey(0x01), slot_changes=[]),\n                    BalStorageSlot(slot=StorageKey(0x02), slot_changes=[]),\n                    BalStorageSlot(slot=StorageKey(0x03), slot_changes=[]),\n                ],\n            )\n        ]\n    )\n\n    expectation = BlockAccessListExpectation(\n        account_expectations={\n            addr: BalAccountExpectation(\n                storage_changes=[\n                    BalStorageSlot(slot=slot, slot_changes=[]) for slot in expected_slots\n                ],\n            ),\n        }\n    )\n\n    if should_pass:\n        expectation.verify_against(actual_bal)\n    else:\n        with pytest.raises(\n            BlockAccessListValidationError,\n            match=\"not found or not in correct order\",\n        ):\n            expectation.verify_against(actual_bal)\n\n\n@pytest.mark.parametrize(\n    \"expected_reads,should_pass\",\n    [\n        # Correct order - should pass\n        ([StorageKey(0x01), StorageKey(0x02), StorageKey(0x03)], True),\n        # Partial subset in correct order - should pass\n        ([StorageKey(0x02), StorageKey(0x03)], True),\n        # Out of order - should fail\n        ([StorageKey(0x03), StorageKey(0x02)], False),\n        # Wrong order with all elements - should fail\n        ([StorageKey(0x01), StorageKey(0x03), StorageKey(0x02)], False),\n    ],\n)\ndef test_expected_storage_reads_ordering(expected_reads: Any, should_pass: bool) -> None:\n    \"\"\"Test that expected storage reads must be defined in correct order.\"\"\"\n    addr = Address(0xA)\n\n    # Actual BAL with storage reads in correct order\n    actual_bal = BlockAccessList(\n        [\n            BalAccountChange(\n                address=addr,\n                storage_reads=[StorageKey(0x01), StorageKey(0x02), StorageKey(0x03)],\n            )\n        ]\n    )\n\n    expectation = BlockAccessListExpectation(\n        account_expectations={\n            addr: BalAccountExpectation(storage_reads=expected_reads),\n        }\n    )\n\n    if should_pass:\n        expectation.verify_against(actual_bal)\n    else:\n        with pytest.raises(\n            BlockAccessListValidationError,\n            match=\"not found or not in correct order\",\n        ):\n            expectation.verify_against(actual_bal)\n\n\n@pytest.mark.parametrize(\n    \"expected_tx_indices,should_pass\",\n    [\n        # Correct order - should pass\n        ([1, 2, 3], True),\n        # Partial subset in correct order - should pass\n        ([1, 3], True),\n        # Single element - should pass\n        ([2], True),\n        # Out of order - should fail\n        ([2, 1], False),\n        # Wrong order with all elements - should fail\n        ([1, 3, 2], False),\n    ],\n)\ndef test_expected_tx_indices_ordering(expected_tx_indices: Any, should_pass: bool) -> None:\n    \"\"\"Test that expected tx indices must be defined in correct order.\"\"\"\n    addr = Address(0xA)\n\n    # actual BAL with tx indices in correct order\n    actual_bal = BlockAccessList(\n        [\n            BalAccountChange(\n                address=addr,\n                nonce_changes=[\n                    BalNonceChange(tx_index=1, post_nonce=1),\n                    BalNonceChange(tx_index=2, post_nonce=2),\n                    BalNonceChange(tx_index=3, post_nonce=3),\n                ],\n            )\n        ]\n    )\n\n    expectation = BlockAccessListExpectation(\n        account_expectations={\n            addr: BalAccountExpectation(\n                nonce_changes=[\n                    BalNonceChange(tx_index=idx, post_nonce=idx) for idx in expected_tx_indices\n                ],\n            ),\n        }\n    )\n\n    if should_pass:\n        expectation.verify_against(actual_bal)\n    else:\n        with pytest.raises(\n            BlockAccessListValidationError,\n            match=\"not found or not in correct order\",\n        ):\n            expectation.verify_against(actual_bal)\n\n\n@pytest.mark.parametrize(\"has_change_should_raise\", [True, False])\ndef test_absent_values_nonce_changes(has_change_should_raise: bool) -> None:\n    \"\"\"Test nonce_changes_at_tx validator with present/absent changes.\"\"\"\n    alice = Address(0xA)\n\n    nonce_changes = [BalNonceChange(tx_index=1, post_nonce=1)]\n    if has_change_should_raise:\n        # add nonce change at tx 2 which should trigger failure\n        nonce_changes.append(BalNonceChange(tx_index=2, post_nonce=2))\n\n    actual_bal = BlockAccessList(\n        [\n            BalAccountChange(\n                address=alice,\n                nonce_changes=nonce_changes,\n            ),\n        ]\n    )\n\n    expectation = BlockAccessListExpectation(\n        account_expectations={\n            # no nonce changes at tx 2\n            alice: BalAccountExpectation(\n                absent_values=BalAccountAbsentValues(\n                    nonce_changes=[BalNonceChange(tx_index=2, post_nonce=2)]\n                )\n            )\n        }\n    )\n\n    if has_change_should_raise:\n        with pytest.raises(Exception, match=\"Unexpected nonce change found at tx 0x2\"):\n            expectation.verify_against(actual_bal)\n    else:\n        expectation.verify_against(actual_bal)\n\n\n@pytest.mark.parametrize(\"has_change_should_raise\", [True, False])\ndef test_absent_values_balance_changes(has_change_should_raise: bool) -> None:\n    \"\"\"Test balance_changes_at_tx validator with present/absent changes.\"\"\"\n    alice = Address(0xA)\n\n    balance_changes = [BalBalanceChange(tx_index=1, post_balance=100)]\n    if has_change_should_raise:\n        # add balance change at tx 2 which should trigger failure\n        balance_changes.append(BalBalanceChange(tx_index=2, post_balance=200))\n\n    actual_bal = BlockAccessList(\n        [\n            BalAccountChange(\n                address=alice,\n                balance_changes=balance_changes,\n            ),\n        ]\n    )\n\n    expectation = BlockAccessListExpectation(\n        account_expectations={\n            alice: BalAccountExpectation(\n                absent_values=BalAccountAbsentValues(\n                    balance_changes=[BalBalanceChange(tx_index=2, post_balance=200)]\n                )\n            ),\n        }\n    )\n\n    if has_change_should_raise:\n        with pytest.raises(\n            Exception,\n            match=\"Unexpected balance change found at tx 0x2\",\n        ):\n            expectation.verify_against(actual_bal)\n    else:\n        expectation.verify_against(actual_bal)\n\n\n@pytest.mark.parametrize(\"has_change_should_raise\", [True, False])\ndef test_absent_values_storage_changes(has_change_should_raise: bool) -> None:\n    \"\"\"Test storage_changes_at_slots validator with present/absent changes.\"\"\"\n    contract = Address(0xC)\n\n    storage_changes = [\n        BalStorageSlot(\n            slot=0x01,\n            slot_changes=[BalStorageChange(tx_index=1, post_value=0x99)],\n        )\n    ]\n    if has_change_should_raise:\n        storage_changes.append(\n            BalStorageSlot(\n                slot=0x42,\n                slot_changes=[BalStorageChange(tx_index=1, post_value=0xBEEF)],\n            )\n        )\n\n    actual_bal = BlockAccessList(\n        [\n            BalAccountChange(\n                address=contract,\n                storage_changes=storage_changes,\n            ),\n        ]\n    )\n\n    expectation = BlockAccessListExpectation(\n        account_expectations={\n            # no storage changes at slot 0x42\n            contract: BalAccountExpectation(\n                absent_values=BalAccountAbsentValues(\n                    storage_changes=[\n                        BalStorageSlot(\n                            slot=0x42,\n                            slot_changes=[BalStorageChange(tx_index=1, post_value=0xBEEF)],\n                        )\n                    ]\n                )\n            ),\n        }\n    )\n\n    if has_change_should_raise:\n        with pytest.raises(Exception, match=\"Unexpected storage change found at slot\"):\n            expectation.verify_against(actual_bal)\n    else:\n        expectation.verify_against(actual_bal)\n\n\n@pytest.mark.parametrize(\"has_read_should_raise\", [True, False])\ndef test_absent_values_storage_reads(has_read_should_raise: bool) -> None:\n    \"\"\"Test storage_reads_at_slots validator with present/absent reads.\"\"\"\n    contract = Address(0xC)\n\n    # Create actual BAL with or without storage read at slot 0x42\n    storage_reads = [StorageKey(0x01)]\n    if has_read_should_raise:\n        storage_reads.append(StorageKey(0x42))\n\n    actual_bal = BlockAccessList(\n        [\n            BalAccountChange(\n                address=contract,\n                storage_reads=storage_reads,\n            ),\n        ]\n    )\n\n    expectation = BlockAccessListExpectation(\n        account_expectations={\n            # no storage reads at slot 0x42\n            contract: BalAccountExpectation(\n                absent_values=BalAccountAbsentValues(storage_reads=[StorageKey(0x42)])\n            ),\n        }\n    )\n\n    if has_read_should_raise:\n        with pytest.raises(Exception, match=\"Unexpected storage read found at slot\"):\n            expectation.verify_against(actual_bal)\n    else:\n        expectation.verify_against(actual_bal)\n\n\n@pytest.mark.parametrize(\"has_change_should_raise\", [True, False])\ndef test_absent_values_code_changes(has_change_should_raise: bool) -> None:\n    \"\"\"Test code_changes_at_tx validator with present/absent changes.\"\"\"\n    alice = Address(0xA)\n\n    code_changes = [BalCodeChange(tx_index=1, new_code=b\"\\x00\")]\n    if has_change_should_raise:\n        # add code change at tx 2 which should trigger failure\n        code_changes.append(BalCodeChange(tx_index=2, new_code=b\"\\x60\\x00\"))\n\n    actual_bal = BlockAccessList(\n        [\n            BalAccountChange(\n                address=alice,\n                code_changes=code_changes,\n            ),\n        ]\n    )\n\n    expectation = BlockAccessListExpectation(\n        account_expectations={\n            # no code changes at tx 2\n            alice: BalAccountExpectation(\n                absent_values=BalAccountAbsentValues(\n                    code_changes=[BalCodeChange(tx_index=2, new_code=b\"\\x60\\x00\")]\n                )\n            ),\n        }\n    )\n\n    if has_change_should_raise:\n        with pytest.raises(Exception, match=\"Unexpected code change found at tx 0x2\"):\n            expectation.verify_against(actual_bal)\n    else:\n        expectation.verify_against(actual_bal)\n\n\ndef test_multiple_absent_valuess() -> None:\n    \"\"\"Test multiple absence validators working together.\"\"\"\n    contract = Address(0xC)\n\n    actual_bal = BlockAccessList(\n        [\n            BalAccountChange(\n                address=contract,\n                nonce_changes=[],\n                balance_changes=[],\n                storage_changes=[\n                    BalStorageSlot(\n                        slot=0x01,\n                        slot_changes=[BalStorageChange(tx_index=1, post_value=0x99)],\n                    )\n                ],\n                storage_reads=[StorageKey(0x01)],\n                code_changes=[],\n            ),\n        ]\n    )\n\n    # Test that multiple validators all pass\n    expectation = BlockAccessListExpectation(\n        account_expectations={\n            contract: BalAccountExpectation(\n                storage_changes=[\n                    BalStorageSlot(\n                        slot=0x01,\n                        slot_changes=[BalStorageChange(tx_index=1, post_value=0x99)],\n                    )\n                ],\n                absent_values=BalAccountAbsentValues(\n                    nonce_changes=[\n                        BalNonceChange(tx_index=1, post_nonce=0),\n                        BalNonceChange(tx_index=2, post_nonce=0),\n                    ],\n                    balance_changes=[\n                        BalBalanceChange(tx_index=1, post_balance=0),\n                        BalBalanceChange(tx_index=2, post_balance=0),\n                    ],\n                    storage_changes=[\n                        BalStorageSlot(\n                            slot=0x42, slot_changes=[BalStorageChange(tx_index=1, post_value=0)]\n                        ),\n                        BalStorageSlot(\n                            slot=0x43, slot_changes=[BalStorageChange(tx_index=1, post_value=0)]\n                        ),\n                    ],\n                    storage_reads=[StorageKey(0x42), StorageKey(0x43)],\n                    code_changes=[\n                        BalCodeChange(tx_index=1, new_code=b\"\"),\n                        BalCodeChange(tx_index=2, new_code=b\"\"),\n                    ],\n                ),\n            ),\n        }\n    )\n\n    expectation.verify_against(actual_bal)\n\n\ndef test_absent_values_with_multiple_tx_indices() -> None:\n    \"\"\"Test absence validators with multiple transaction indices.\"\"\"\n    alice = Address(0xA)\n\n    actual_bal = BlockAccessList(\n        [\n            BalAccountChange(\n                address=alice,\n                nonce_changes=[\n                    # nonce changes at tx 1 and 3\n                    BalNonceChange(tx_index=1, post_nonce=1),\n                    BalNonceChange(tx_index=3, post_nonce=2),\n                ],\n            ),\n        ]\n    )\n\n    expectation = BlockAccessListExpectation(\n        account_expectations={\n            alice: BalAccountExpectation(\n                nonce_changes=[\n                    BalNonceChange(tx_index=1, post_nonce=1),\n                    BalNonceChange(tx_index=3, post_nonce=2),\n                ],\n                absent_values=BalAccountAbsentValues(\n                    nonce_changes=[\n                        BalNonceChange(tx_index=2, post_nonce=0),\n                        BalNonceChange(tx_index=4, post_nonce=0),\n                    ]\n                ),\n            ),\n        }\n    )\n\n    expectation.verify_against(actual_bal)\n\n    expectation_fail = BlockAccessListExpectation(\n        account_expectations={\n            alice: BalAccountExpectation(\n                absent_values=BalAccountAbsentValues(\n                    nonce_changes=[\n                        # wrongly forbid change at txs 1 and 2\n                        # (1 exists, so should fail)\n                        BalNonceChange(tx_index=1, post_nonce=1),\n                        BalNonceChange(tx_index=2, post_nonce=0),\n                    ]\n                ),\n            ),\n        }\n    )\n\n    with pytest.raises(Exception, match=\"Unexpected nonce change found at tx 0x1\"):\n        expectation_fail.verify_against(actual_bal)\n\n\ndef test_bal_account_absent_values_comprehensive() -> None:\n    \"\"\"Test comprehensive BalAccountAbsentValues usage.\"\"\"\n    addr = Address(0xA)\n\n    # Test forbidding nonce changes\n    actual_bal = BlockAccessList(\n        [BalAccountChange(address=addr, nonce_changes=[BalNonceChange(tx_index=1, post_nonce=1)])]\n    )\n\n    expectation = BlockAccessListExpectation(\n        account_expectations={\n            addr: BalAccountExpectation(\n                absent_values=BalAccountAbsentValues(\n                    nonce_changes=[BalNonceChange(tx_index=1, post_nonce=1)]\n                )\n            ),\n        }\n    )\n\n    with pytest.raises(\n        BlockAccessListValidationError, match=\"Unexpected nonce change found at tx\"\n    ):\n        expectation.verify_against(actual_bal)\n\n    # Test forbidding balance changes\n    actual_bal = BlockAccessList(\n        [\n            BalAccountChange(\n                address=addr, balance_changes=[BalBalanceChange(tx_index=2, post_balance=100)]\n            )\n        ]\n    )\n\n    expectation = BlockAccessListExpectation(\n        account_expectations={\n            addr: BalAccountExpectation(\n                absent_values=BalAccountAbsentValues(\n                    balance_changes=[BalBalanceChange(tx_index=2, post_balance=100)]\n                )\n            ),\n        }\n    )\n\n    with pytest.raises(\n        BlockAccessListValidationError, match=\"Unexpected balance change found at tx\"\n    ):\n        expectation.verify_against(actual_bal)\n\n    # Test forbidding code changes\n    actual_bal = BlockAccessList(\n        [\n            BalAccountChange(\n                address=addr, code_changes=[BalCodeChange(tx_index=3, new_code=b\"\\x60\\x00\")]\n            )\n        ]\n    )\n\n    expectation = BlockAccessListExpectation(\n        account_expectations={\n            addr: BalAccountExpectation(\n                absent_values=BalAccountAbsentValues(\n                    code_changes=[BalCodeChange(tx_index=3, new_code=b\"\\x60\\x00\")]\n                )\n            ),\n        }\n    )\n\n    with pytest.raises(BlockAccessListValidationError, match=\"Unexpected code change found at tx\"):\n        expectation.verify_against(actual_bal)\n\n    # Test forbidding storage reads\n    actual_bal = BlockAccessList(\n        [BalAccountChange(address=addr, storage_reads=[StorageKey(0x42)])]\n    )\n\n    expectation = BlockAccessListExpectation(\n        account_expectations={\n            addr: BalAccountExpectation(\n                absent_values=BalAccountAbsentValues(storage_reads=[StorageKey(0x42)])\n            ),\n        }\n    )\n\n    with pytest.raises(\n        BlockAccessListValidationError, match=\"Unexpected storage read found at slot\"\n    ):\n        expectation.verify_against(actual_bal)\n\n    # Test forbidding storage changes\n    actual_bal = BlockAccessList(\n        [\n            BalAccountChange(\n                address=addr,\n                storage_changes=[\n                    BalStorageSlot(\n                        slot=0x01, slot_changes=[BalStorageChange(tx_index=1, post_value=99)]\n                    )\n                ],\n            )\n        ]\n    )\n\n    expectation = BlockAccessListExpectation(\n        account_expectations={\n            addr: BalAccountExpectation(\n                absent_values=BalAccountAbsentValues(\n                    storage_changes=[\n                        BalStorageSlot(\n                            slot=0x01, slot_changes=[BalStorageChange(tx_index=1, post_value=99)]\n                        )\n                    ]\n                )\n            ),\n        }\n    )\n\n    with pytest.raises(\n        BlockAccessListValidationError, match=\"Unexpected storage change found at slot\"\n    ):\n        expectation.verify_against(actual_bal)\n\n\n@pytest.mark.parametrize(\n    \"field_name,field_value\",\n    [\n        (\"nonce_changes\", []),\n        (\"balance_changes\", []),\n        (\"code_changes\", []),\n        (\"storage_changes\", []),\n        (\"storage_reads\", []),\n    ],\n)\ndef test_bal_account_absent_values_empty_list_validation_raises(\n    field_name: str, field_value: Any\n) -> None:\n    \"\"\"\n    Test that empty lists in BalAccountAbsentValues fields\n    raise appropriate errors.\n    \"\"\"\n    with pytest.raises(ValueError, match=\"Empty lists are not allowed\"):\n        BalAccountAbsentValues(**{field_name: field_value})\n\n\ndef test_bal_account_absent_values_empty_slot_changes_raises() -> None:\n    \"\"\"\n    Test that empty slot_changes in storage_changes\n    raises appropriate error.\n    \"\"\"\n    with pytest.raises(ValueError, match=\"Empty lists are not allowed\"):\n        BalAccountAbsentValues(\n            storage_changes=[\n                BalStorageSlot(\n                    slot=0x42,\n                    slot_changes=[],  # Empty list should raise error\n                )\n            ]\n        )\n"
  },
  {
    "path": "src/ethereum_test_types/tests/test_eof_v1.py",
    "content": "\"\"\"Test suite for `code.eof.v1` module.\"\"\"\n\nfrom typing import List, Tuple\n\nimport pytest\n\nfrom ethereum_test_base_types import to_json\nfrom ethereum_test_base_types.pydantic import CopyValidateModel\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom ..eof.v1 import AutoSection, Container, Section, SectionKind\n\ntest_cases: List[Tuple[str, Container, str]] = [\n    (\n        \"No sections\",\n        Container(\n            auto_data_section=False,\n            auto_type_section=AutoSection.NONE,\n            sections=[],\n        ),\n        \"ef0001 00\",\n    ),\n    (\n        \"Single code section\",\n        Container(\n            sections=[\n                Section.Code(\"0x00\"),\n            ],\n        ),\n        \"ef0001 01 0004 02 0001 0001 ff 0000 00 00800000 00\",\n    ),\n    (\n        \"Single code section, single container section\",\n        Container(\n            sections=[\n                Section.Code(\"0x0A\"),\n                Section.Container(\"0x0B\"),\n            ],\n        ),\n        \"ef0001 01 0004 02 0001 0001 03 0001 00000001 ff 0000 00 00800000 0A 0B\",\n    ),\n    (\n        \"Single code section, single container section, single data\",\n        Container(\n            sections=[\n                Section.Code(\"0x0A\"),\n                Section.Container(\"0x0B\"),\n                Section.Data(\"0x0C\"),\n            ],\n        ),\n        \"ef0001 01 0004 02 0001 0001 03 0001 00000001 ff 0001 00 00800000 0A 0B 0C\",\n    ),\n    (\n        \"Single code section, single container section, single data 2\",\n        Container(\n            sections=[\n                Section.Code(\"0x0A\"),\n                Section.Data(\"0x0C\"),\n                Section.Container(\"0x0B\"),\n            ],\n        ),\n        \"ef0001 01 0004 02 0001 0001 03 0001 00000001 ff 0001 00 00800000 0A 0B 0C\",\n    ),\n    (\n        \"Single code section, multiple container section, single data\",\n        Container(\n            sections=[\n                Section.Code(\"0x0A\"),\n                Section.Container(\"0x0B\"),\n                Section.Data(\"0x0C\"),\n                Section.Container(\"0x0D\"),\n            ],\n        ),\n        \"ef0001 01 0004 02 0001 0001 03 0002 00000001 00000001 ff 0001 00 00800000 0A 0B 0D 0C\",\n    ),\n    (\n        \"Single code section, multiple container sections\",\n        Container(\n            sections=[\n                Section.Code(\"0x00\"),\n                Section.Container(\"0x0001\"),\n                Section.Container(\"0x00\"),\n            ],\n        ),\n        \"ef0001 01 0004 02 0001 0001 03 0002 00000002 00000001 ff 0000 00 00800000 00 0001 00\",\n    ),\n    (\n        \"No code section\",\n        Container(\n            sections=[Section.Data(\"0x00\")],\n        ),\n        \"ef0001 01 0000 ff 0001 00 00\",\n    ),\n    (\n        \"Single data section\",\n        Container(\n            auto_type_section=AutoSection.NONE,\n            sections=[\n                Section.Data(\"0x00\"),\n            ],\n        ),\n        \"ef0001 ff 0001 00 00\",\n    ),\n    (\n        \"Custom invalid section\",\n        Container(\n            auto_data_section=False,\n            auto_type_section=AutoSection.NONE,\n            sections=[\n                Section(\n                    kind=0xFE,\n                    data=\"0x00\",\n                ),\n            ],\n        ),\n        \"ef0001 fe 0001 00 00\",\n    ),\n    (\n        \"Multiple sections\",\n        Container(\n            sections=[\n                Section.Code(\"0x0e\"),\n                Section.Data(\"0x0f\"),\n            ],\n        ),\n        \"ef0001 01 0004 02 0001 0001 ff 0001 00 00800000 0e 0f\",\n    ),\n    (\n        \"Multiple type sections\",\n        Container(\n            sections=[\n                Section(\n                    kind=SectionKind.TYPE,\n                    data=\"0x00000000\",\n                ),\n                Section(\n                    kind=SectionKind.TYPE,\n                    data=\"0x00000000\",\n                ),\n                Section.Code(\"0x00\"),\n            ],\n            auto_type_section=AutoSection.NONE,\n        ),\n        \"ef0001 01 0004 01 0004 02 0001 0001 ff 0000 00 00000000 00000000 00\",\n    ),\n    (\n        \"Invalid Magic\",\n        Container(\n            magic=b\"\\xef\\xfe\",\n            sections=[\n                Section.Code(\"0x00\"),\n            ],\n        ),\n        \"effe01 01 0004 02 0001 0001 ff 0000 00 00800000 00\",\n    ),\n    (\n        \"Invalid Version\",\n        Container(\n            version=b\"\\x02\",\n            sections=[\n                Section.Code(\"0x00\"),\n            ],\n        ),\n        \"ef0002 01 0004 02 0001 0001 ff 0000 00 00800000 00\",\n    ),\n    (\n        \"Section Invalid size Version\",\n        Container(\n            sections=[\n                Section.Code(\n                    \"0x00\",\n                    custom_size=0xFFFF,\n                ),\n            ],\n        ),\n        \"ef0001 01 0004 02 0001 ffff ff 0000 00 00800000 00\",\n    ),\n    (\n        \"Nested EOF\",\n        Container(\n            sections=[\n                Section.Code(\"0x00\"),\n                Section(\n                    kind=SectionKind.CONTAINER,\n                    data=Container(\n                        sections=[Section.Code(\"0x01\")],\n                    ),\n                ),\n            ],\n        ),\n        \"ef0001 01 0004 02 0001 0001 03 0001 00000014 ff 0000 00 00800000 00\"\n        \"ef0001 01 0004 02 0001 0001 ff 0000 00 00800000 01\",\n    ),\n    (\n        \"Nested EOF in Data\",\n        Container(\n            sections=[\n                Section.Code(\"0x00\"),\n                Section.Data(\n                    data=Container(\n                        sections=[Section.Code(\"0x01\")],\n                    ),\n                ),\n            ],\n        ),\n        \"ef0001 01 0004 02 0001 0001 ff 0014 00 00800000 00\"\n        \"ef0001 01 0004 02 0001 0001 ff 0000 00 00800000 01\",\n    ),\n    (\n        \"Incomplete code section\",\n        Container(\n            sections=[\n                Section.Code(\n                    code=b\"\",\n                    custom_size=0x02,\n                ),\n            ],\n        ),\n        \"ef0001 01 0004 02 0001 0002 ff 0000 00 00800000\",\n    ),\n    (\n        \"Trailing bytes after code section\",\n        Container(\n            sections=[\n                Section.Code(\"0x600000\"),\n            ],\n            extra=bytes.fromhex(\"deadbeef\"),\n        ),\n        \"ef0001 01 0004 02 0001 0003 ff 0000 00 00800000 600000 deadbeef\",\n    ),\n    (\n        \"Multiple code sections\",\n        Container(\n            sections=[\n                Section.Code(\"0x600000\"),\n                Section.Code(\"0x600000\"),\n            ],\n        ),\n        \"\"\"\n            ef0001 01 0008 02 0002 0003 0003 ff 0000 00\n            00800000 00800000\n            600000\n            600000\n            \"\"\",\n    ),\n    (\n        \"No section terminator\",\n        Container(\n            sections=[\n                Section.Code(\"0x600000\"),\n            ],\n            header_terminator=bytes(),\n        ),\n        \"ef0001 01 0004 02 0001 0003 ff 0000 00800000 600000\",\n    ),\n    (\n        \"No auto type section\",\n        Container(\n            auto_type_section=AutoSection.NONE,\n            sections=[\n                Section.Code(\"0x00\"),\n            ],\n        ),\n        \"ef0001 02 0001 0001 ff 0000 00 00\",\n    ),\n    (\n        \"Data section in types\",\n        Container(\n            sections=[\n                Section.Code(\"0x00\"),\n                Section.Data(\n                    data=\"0x00\",\n                    force_type_listing=True,\n                ),\n            ],\n        ),\n        \"\"\"\n            ef0001 01 0008 02 0001 0001 ff 0001 00\n            00800000 00800000\n            00 00\n            \"\"\",\n    ),\n    (\n        \"Code section inputs\",\n        Container(\n            sections=[\n                Section.Code(\n                    \"0x00\",\n                    code_inputs=1,\n                    max_stack_height=1,\n                ),\n            ],\n        ),\n        \"\"\"\n            ef0001 01 0004 02 0001 0001 ff 0000 00\n            01800000\n            00\n            \"\"\",\n    ),\n    (\n        \"Code section inputs 2\",\n        Container(\n            sections=[\n                Section.Code(\n                    \"0x00\",\n                    code_inputs=0xFF,\n                    max_stack_height=0xFF,\n                ),\n            ],\n        ),\n        \"\"\"\n            ef0001 01 0004 02 0001 0001 ff 0000 00\n            ff800000\n            00\n            \"\"\",\n    ),\n    (\n        \"Code section outputs\",\n        Container(\n            sections=[\n                Section.Code(\n                    \"0x00\",\n                    code_outputs=1,\n                ),\n            ],\n        ),\n        \"\"\"\n            ef0001 01 0004 02 0001 0001 ff 0000 00\n            00010000\n            00\n            \"\"\",\n    ),\n    (\n        \"Code section outputs 2\",\n        Container(\n            sections=[\n                Section.Code(\n                    \"0x00\",\n                    code_outputs=0xFF,\n                ),\n            ],\n        ),\n        \"\"\"\n            ef0001 01 0004 02 0001 0001 ff 0000 00\n            00ff0000\n            00\n            \"\"\",\n    ),\n    (\n        \"Code section max stack height\",\n        Container(\n            sections=[\n                Section.Code(\n                    \"0x00\",\n                    max_stack_height=0x0201,\n                ),\n            ],\n        ),\n        \"\"\"\n            ef0001 01 0004 02 0001 0001 ff 0000 00\n            00800201\n            00\n            \"\"\",\n    ),\n    (\n        \"Code section max stack height 2\",\n        Container(\n            sections=[\n                Section.Code(\n                    \"0x00\",\n                    max_stack_height=0xFFFF,\n                ),\n            ],\n        ),\n        \"\"\"\n            ef0001 01 0004 02 0001 0001 ff 0000 00\n            0080FFFF\n            00\n            \"\"\",\n    ),\n    (\n        \"Code section max stack height 3\",\n        Container(\n            sections=[\n                Section.Code(\n                    \"0x00\",\n                    max_stack_height=0xFFFF,\n                ),\n                Section.Code(\"0x00\"),\n            ],\n        ),\n        \"\"\"\n            ef0001 01 0008 02 0002 0001 0001 ff 0000 00\n            0080FFFF 00800000\n            00\n            00\n            \"\"\",\n    ),\n    (\n        \"Custom type section\",\n        Container(\n            sections=[\n                Section(\n                    kind=SectionKind.TYPE,\n                    data=\"0x00\",\n                ),\n                Section.Code(\"0x00\"),\n            ],\n        ),\n        \"ef0001 01 0001 02 0001 0001 ff 0000 00 00 00\",\n    ),\n    (\n        \"EIP-4750 Single code section oversized type\",\n        Container(\n            sections=[\n                Section(\n                    kind=SectionKind.TYPE,\n                    data=\"0x0000000000\",\n                ),\n                Section.Code(\"0x00\"),\n            ],\n        ),\n        \"ef0001 01 0005 02 0001 0001 ff 0000 00 0000000000 00\",\n    ),\n    (\n        \"Empty type section\",\n        Container(\n            sections=[\n                Section(kind=SectionKind.TYPE, data=\"0x\"),\n                Section.Code(\"0x00\"),\n            ],\n            auto_type_section=AutoSection.NONE,\n        ),\n        \"ef0001 01 0000 02 0001 0001 ff 0000 00 00\",\n    ),\n    (\n        \"Check that simple valid EOF1 deploys\",\n        Container(\n            sections=[\n                Section.Code(\n                    \"0x305000\",\n                    code_inputs=0,\n                    code_outputs=128,  # Non returning\n                    max_stack_height=1,\n                ),\n                Section.Data(\"0xef\"),\n            ],\n            auto_type_section=AutoSection.AUTO,\n        ),\n        \"\"\"\n        # EOF deployed code\n        ef0001  # Magic followed by version\n        010004  # One code segment\n        020001  # One code segment\n            0003  #   code seg 0: 3 bytes\n        ff0001  # One byte data segment\n        00      # End of header\n                # Code segment 0 header\n            00  # Zero inputs\n            80  # Non-Returning Function\n            0001  # Max stack height 1\n                # Code segment 0 code\n            30 #  1 ADDRESS\n            50 #  2 POP\n            00 #  3 STOP\n            # Data segment\n            ef\n        \"\"\",\n    ),\n    (\n        \"Data Section custom_size parameter overwrites bytes size\",\n        Container(\n            sections=[\n                Section.Code(\n                    \"0x305000\",\n                    code_inputs=0,\n                    code_outputs=128,  # Non returning\n                    max_stack_height=1,\n                ),\n                Section.Data(\"0x0bad\", custom_size=4),\n            ],\n            auto_type_section=AutoSection.AUTO,\n        ),\n        \"\"\"\n      # EOF deployed code\n      ef0001  # Magic followed by version\n      010004  # One code segment\n      020001  # One code segment\n        0003  #   code seg 0: 3 bytes\n      ff0004  # Four byte data segment\n      00      # End of header\n              # Code segment 0 header\n          00  # Zero inputs\n          80  # Non-Returning Function\n        0001  # Max stack height 1\n              # Code segment 0 code\n           30 #  1 ADDRESS\n           50 #  2 POP\n           00 #  3 STOP\n              # Data segment\n           0bad  # 2 bytes instead of four\n        \"\"\",\n    ),\n    (\n        \"Multiple code segments\",\n        Container(\n            sections=[\n                Section.Code(\n                    \"0x5f35e2030000000300060009e50001e50002e50003e3000400\",\n                    code_inputs=0,\n                    code_outputs=128,  # Non returning\n                    max_stack_height=1,\n                ),\n                Section.Code(\n                    \"0x5f5ff3\",\n                    code_inputs=0,\n                    code_outputs=128,  # Non returning\n                    max_stack_height=2,\n                ),\n                Section.Code(\n                    \"0x5f5ffd\",\n                    code_inputs=0,\n                    code_outputs=128,  # Non returning\n                    max_stack_height=2,\n                ),\n                Section.Code(\n                    \"0xfe\",\n                    code_inputs=0,\n                    code_outputs=128,  # Non returning\n                    max_stack_height=0,\n                ),\n                Section.Code(\n                    \"0xe4\",\n                    code_inputs=0,\n                    code_outputs=0,\n                    max_stack_height=0,\n                ),\n                Section.Data(\"0x0bad60a7\", custom_size=4),\n            ],\n            auto_type_section=AutoSection.AUTO,\n        ),\n        \"\"\"\n      # EOF deployed code\n      EF0001 # Magic and Version ( 1 )\n     010014 # Types length ( 20 )\n     020005 # Total code sections ( 5 )\n       0019 # Code section  0 , 25  bytes\n       0003 # Code section  1 , 3  bytes\n       0003 # Code section  2 , 3  bytes\n       0001 # Code section  3 , 1  bytes\n       0001 # Code section  4 , 1  bytes\n     ff0004 # Data section length ( 4 )\n         00 # Terminator (end of header)\n            # Code 0 types\n         00 # 0 inputs\n         80 # 0 outputs (Non-returning function)\n       0001 # max stack: 1\n            # Code 1 types\n         00 # 0 inputs\n         80 # 0 outputs (Non-returning function)\n       0002 # max stack: 2\n            # Code 2 types\n         00 # 0 inputs\n         80 # 0 outputs (Non-returning function)\n       0002 # max stack: 2\n            # Code 3 types\n         00 # 0 inputs\n         80 # 0 outputs (Non-returning function)\n       0000 # max stack: 0\n            # Code 4 types\n         00 # 0 inputs\n         00 # 0 outputs\n       0000 # max stack: 0\n            # Code section 0\n         5f # [0] PUSH0\n         35 # [1] CALLDATALOAD\n     e2030000000300060009 # [2] RJUMPV(0,3,6,9)\n     e50001 # [12] JUMPF(1)\n     e50002 # [15] JUMPF(2)\n     e50003 # [18] JUMPF(3)\n     e30004 # [21] CALLF(4)\n         00 # [24] STOP\n            # Code section 1\n         5f # [0] PUSH0\n         5f # [1] PUSH0\n         f3 # [2] RETURN\n            # Code section 2\n         5f # [0] PUSH0\n         5f # [1] PUSH0\n         fd # [2] REVERT\n            # Code section 3\n         fe # [0] INVALID\n            # Code section 4\n         e4 # [0] RETF\n            # Data section\n     0bad60a7\n        \"\"\",\n    ),\n    (\n        \"Custom Types Section overrides code\",\n        Container(\n            sections=[\n                Section(kind=SectionKind.TYPE, data=\"0x00700002\", custom_size=8),\n                Section(\n                    kind=SectionKind.CODE,\n                    code_inputs=0,\n                    code_outputs=128,  # Non returning\n                    max_stack_height=1,\n                    data=\"0x305000\",\n                ),\n                Section(kind=SectionKind.DATA, data=\"0x0bad60A7\"),\n            ],\n        ),\n        \"\"\"\n      # EOF deployed code\n      ef0001  # Magic followed by version\n      010008  # Two code segments\n      020001  # One code segment\n        0003  #   code seg 0: 3 bytes\n      ff0004  # Four byte data segment\n      00      # End of header\n              # Code segment 0 header\n          00  # Zero inputs\n          70  # Non-Returning Function\n        0002  # Max stack height 1\n              # Code segment 0 code\n           30 #  1 ADDRESS\n           50 #  2 POP\n           00 #  3 STOP\n              # Data segment\n           0bad60A7  # 4 bytes (valid)\n        \"\"\",\n    ),\n    (\n        \"Type section wrong order, but only in HEADER\",\n        Container(\n            sections=[\n                Section(\n                    kind=SectionKind.CODE,\n                    code_inputs=0,\n                    code_outputs=128,  # Non returning\n                    max_stack_height=1,\n                    data=\"0x305000\",\n                ),\n                Section(\n                    kind=SectionKind.TYPE,\n                    data=\"0x00800001\",\n                ),\n                Section(kind=SectionKind.DATA, data=\"0xef\"),\n            ],\n            auto_sort_sections=AutoSection.ONLY_BODY,\n        ),\n        \"\"\"\n      # EOF deployed code\n      ef0001  # Magic followed by version\n      020001  # One code segment\n        0003  #   code seg 0: 3 bytes\n      010004  # One code segment\n      ff0001  # One byte data segment\n      00      # End of header\n              # Code segment 0 header\n          00  # Zero inputs\n          80  # Non-Returning Function\n        0001  # Max stack height 1\n              # Code segment 0 code\n           30 #  1 ADDRESS\n           50 #  2 POP\n           00 #  3 STOP\n              # Data segment\n           ef\n        \"\"\",\n    ),\n    (\n        \"Type section wrong order, but only in BODY\",\n        Container(\n            sections=[\n                Section(\n                    kind=SectionKind.CODE,\n                    code_inputs=0,\n                    code_outputs=128,  # Non returning\n                    max_stack_height=1,\n                    data=\"0x305000\",\n                ),\n                Section(\n                    kind=SectionKind.TYPE,\n                    data=\"0x00800001\",\n                ),\n                Section(kind=SectionKind.DATA, data=\"0xef\"),\n            ],\n            auto_sort_sections=AutoSection.ONLY_HEADER,\n        ),\n        \"\"\"\n      # EOF deployed code\n      ef0001  # Magic followed by version\n      010004  # One code segment\n      020001  # One code segment\n        0003  #   code seg 0: 3 bytes\n      ff0001  # One byte data segment\n      00      # End of header\n              # Code segment 0 code\n           30 #  1 ADDRESS\n           50 #  2 POP\n           00 #  3 STOP\n              # Code segment 0 header\n          00  # Zero inputs\n          80  # Non-Returning Function\n        0001  # Max stack height 1\n              # Data segment\n           ef\n        \"\"\",\n    ),\n    (\n        \"Type section missing, but only in HEADER\",\n        Container(\n            sections=[\n                Section(\n                    kind=SectionKind.CODE,\n                    code_inputs=0,\n                    code_outputs=128,  # Non returning\n                    max_stack_height=1,\n                    data=\"0x305000\",\n                ),\n                Section(kind=SectionKind.DATA, data=\"0xef\"),\n            ],\n            auto_type_section=AutoSection.ONLY_BODY,\n        ),\n        \"\"\"\n      # EOF deployed code\n      ef0001  # Magic followed by version\n      020001  # One code segment\n        0003  #   code seg 0: 3 bytes\n      ff0001  # One byte data segment\n      00      # End of header\n              # Code segment 0 header\n          00  # Zero inputs\n          80  # Non-Returning Function\n        0001  # Max stack height 1\n              # Code segment 0 code\n           30 #  1 ADDRESS\n           50 #  2 POP\n           00 #  3 STOP\n              # Data segment\n           ef\n        \"\"\",\n    ),\n    (\n        \"Type section missing, but only in BODY\",\n        Container(\n            sections=[\n                Section(\n                    kind=SectionKind.CODE,\n                    code_inputs=0,\n                    code_outputs=128,  # Non returning\n                    max_stack_height=1,\n                    data=\"0x305000\",\n                ),\n                Section(kind=SectionKind.DATA, data=\"0xef\"),\n            ],\n            auto_type_section=AutoSection.ONLY_HEADER,\n        ),\n        \"\"\"\n      # EOF deployed code\n      ef0001  # Magic followed by version\n      010004  # Types section\n      020001  # One code segment\n        0003  #   code seg 0: 3 bytes\n      ff0001  # One byte data segment\n      00      # End of header\n              # Code segment 0 header\n              # Code segment 0 code\n           30 #  1 ADDRESS\n           50 #  2 POP\n           00 #  3 STOP\n              # Data segment\n           ef\n        \"\"\",\n    ),\n    (\n        \"Container.Init simple test\",\n        Container.Init(deploy_container=Container.Code(b\"\\0\")),\n        \"\"\"\n      # EOF deployed code\n      ef0001  # Magic followed by version\n      010004  # Types section\n      020001  # One code segment\n        0006  #   code seg 0: 6 bytes\n      030001  # One container segment\n    00000014  #   container seg 0: 20 bytes\n      ff0000  # Zero byte data segment\n      00      # End of header\n   0080 0002  # Types section\n              # Code segment 0 code\n         6000 #  1 PUSH1 0\n         6000 #  2 PUSH1 0\n         ee00 #  3 RETURNCODE[0]\n              # Subcontainer 0\n      ef0001  # Magic followed by version\n      010004  # Types section\n      020001  # One code segment\n        0001  #   code seg 0: 1 byte\n      ff0000  # Zero byte data segment\n      00      # End of header\n   0080 0000  # Types section\n              # Code segment 0 code\n           00 #  1 STOP\n        \"\"\",\n    ),\n    (\n        \"Container.Init initcode prefix\",\n        Container.Init(deploy_container=Container.Code(b\"\\0\"), initcode_prefix=Op.SSTORE(0, 0)),\n        \"\"\"\n      # EOF deployed code\n      ef0001  # Magic followed by version\n      010004  # Types section\n      020001  # One code segment\n        000b  #   code seg 0: 11 bytes\n      030001  # One container segment\n    00000014  #   container seg 0: 20 bytes\n      ff0000  # Zero byte data segment\n      00      # End of header\n   0080 0002  # Types section\n              # Code segment 0 code\n         6000 #  1 PUSH1 0\n         6000 #  2 PUSH1 0\n           55 #  3 SSTORE\n         6000 #  4 PUSH1 0\n         6000 #  5 PUSH1 0\n         ee00 #  6 RETURNCODE[0]\n              # Subcontainer 0\n      ef0001  # Magic followed by version\n      010004  # Types section\n      020001  # One code segment\n        0001  #   code seg 0: 1 byte\n      ff0000  # Zero byte data segment\n      00      # End of header\n   0080 0000  # Types section\n              # Code segment 0 code\n           00 #  1 STOP\n        \"\"\",\n    ),\n]\n\n\n@pytest.mark.parametrize(\n    [\"container\", \"hex_value\"],\n    [(x[1], x[2]) for x in test_cases],\n    ids=[x[0] for x in test_cases],\n)\ndef test_eof_v1_assemble(container: Container, hex_value: str) -> None:\n    \"\"\"Test `ethereum_test.types.code`.\"\"\"\n    expected_string = remove_comments_from_string(hex_value)\n    expected_bytes = bytes.fromhex(expected_string.replace(\" \", \"\").replace(\"\\n\", \"\"))\n    assert bytes(container) == expected_bytes, f\"\"\"\n    Container: {bytes(container).hex()}\n    Expected : {expected_bytes.hex()}\n    \"\"\"\n\n\ndef remove_comments_from_string(input_string: str) -> str:\n    \"\"\"Remove comments from a string and leave only valid hex characters.\"\"\"\n    # Split the string into individual lines\n    lines = input_string.split(\"\\n\")\n\n    # Process each line to remove text following a '#'\n    cleaned_lines = []\n    for line in lines:\n        # Find the index of the first '#' character\n        comment_start = line.find(\"#\")\n\n        # If a '#' is found, slice up to that point; otherwise, take the whole\n        # line\n        if comment_start != -1:\n            cleaned_line = line[:comment_start].rstrip()\n        else:\n            cleaned_line = line\n\n        # Only add non-empty lines if needed\n        if cleaned_line.strip():\n            cleaned_lines.append(cleaned_line)\n\n    # Join the cleaned lines back into a single string\n    cleaned_string = \"\\n\".join(cleaned_lines)\n    return cleaned_string\n\n\n@pytest.mark.parametrize(\n    \"model\",\n    [\n        Container(),\n    ],\n    ids=lambda model: model.__class__.__name__,\n)\ndef test_model_copy(model: CopyValidateModel) -> None:\n    \"\"\"Test that the copy method returns a correct copy of the model.\"\"\"\n    assert to_json(model.copy()) == to_json(model)\n    assert model.copy().model_fields_set == model.model_fields_set\n"
  },
  {
    "path": "src/ethereum_test_types/tests/test_helpers.py",
    "content": "\"\"\"Test suite for `ethereum_test.helpers` module.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_base_types import Address\n\nfrom ..helpers import compute_create2_address, compute_create_address\n\n\ndef test_address() -> None:\n    \"\"\"Test `ethereum_test.base_types.Address`.\"\"\"\n    assert (\n        Address(\"0x0000000000000000000000000000000000000000\")\n        == \"0x0000000000000000000000000000000000000000\"\n    )\n    assert Address(0) == \"0x0000000000000000000000000000000000000000\"\n    assert Address(1) == \"0x0000000000000000000000000000000000000001\"\n    assert Address(10) == \"0x000000000000000000000000000000000000000a\"\n    assert (\n        Address(\"0x0000000000000000000000000000000000000010\")\n        == \"0x0000000000000000000000000000000000000010\"\n    )\n    assert Address(2 ** (20 * 8) - 1) == \"0xffffffffffffffffffffffffffffffffffffffff\"\n    assert Address(0) == Address(0)\n    assert Address(0) != Address(1)\n\n\n@pytest.mark.parametrize(\n    \"address,nonce,expected_contract_address\",\n    [\n        pytest.param(\n            \"0x00caa64684700d2825da7cac6ba0c6ed9fd2a1bb\",\n            0,\n            \"0x863df6bfa4469f3ead0be8f9f2aae51c91a907b4\",\n            id=\"zero-nonce-0x-str-address\",\n        ),\n        pytest.param(\n            \"00caa64684700d2825da7cac6ba0c6ed9fd2a1bb\",\n            0,\n            \"0x863df6bfa4469f3ead0be8f9f2aae51c91a907b4\",\n            id=\"zero-nonce-str-address\",\n        ),\n        pytest.param(\n            int(\"0x00caa64684700d2825da7cac6ba0c6ed9fd2a1bb\", 16),\n            0,\n            \"0x863df6bfa4469f3ead0be8f9f2aae51c91a907b4\",\n            id=\"zero-nonce-int-address\",\n        ),\n        pytest.param(\n            \"0x9c33eacc2f50e39940d3afaf2c7b8246b681a374\",\n            3,\n            \"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\n            id=\"non-zero-nonce-0x-str-address\",\n        ),\n        pytest.param(\n            \"0xba52c75764d6f594735dc735be7f1830cdf58ddf\",\n            3515,\n            \"0x06012c8cf97bead5deae237070f9587f8e7a266d\",\n            id=\"large-nonce-0x-str-address\",\n            marks=pytest.mark.xfail(\n                reason=\"Nonce too large to convert with hard-coded to_bytes length of 1\"\n            ),\n        ),\n    ],\n)\ndef test_compute_create_address(\n    address: str | int, nonce: int, expected_contract_address: str\n) -> None:\n    \"\"\"\n    Test `ethereum_test.helpers.compute_create_address` with some famous\n    contracts:\n    - https://etherscan.io/address/0x863df6bfa4469f3ead0be8f9f2aae51c91a907b4\n    - https://etherscan.io/address/0x7a250d5630b4cf539739df2c5dacb4c659f2488d\n    - https://etherscan.io/address/0x06012c8cf97bead5deae237070f9587f8e7a266d.\n\n    \"\"\"\n    assert compute_create_address(address=address, nonce=nonce) == expected_contract_address\n\n\n@pytest.mark.parametrize(\n    \"address,salt,initcode,expected_contract_address\",\n    [\n        pytest.param(\n            \"0x0000000000000000000000000000000000000000\",\n            \"0x0000000000000000000000000000000000000000\",\n            \"0x00\",\n            \"0x4d1a2e2bb4f88f0250f26ffff098b0b30b26bf38\",\n        ),\n        pytest.param(\n            \"0xdeadbeef00000000000000000000000000000000\",\n            \"0x0000000000000000000000000000000000000000\",\n            \"0x00\",\n            \"0xB928f69Bb1D91Cd65274e3c79d8986362984fDA3\",\n        ),\n        pytest.param(\n            \"0xdeadbeef00000000000000000000000000000000\",\n            \"0xfeed000000000000000000000000000000000000\",\n            \"0x00\",\n            \"0xD04116cDd17beBE565EB2422F2497E06cC1C9833\",\n        ),\n        pytest.param(\n            \"0x0000000000000000000000000000000000000000\",\n            \"0x0000000000000000000000000000000000000000\",\n            \"0xdeadbeef\",\n            \"0x70f2b2914A2a4b783FaEFb75f459A580616Fcb5e\",\n        ),\n        pytest.param(\n            \"0x00000000000000000000000000000000deadbeef\",\n            \"0xcafebabe\",\n            \"0xdeadbeef\",\n            \"0x60f3f640a8508fC6a86d45DF051962668E1e8AC7\",\n        ),\n        pytest.param(\n            \"0x00000000000000000000000000000000deadbeef\",\n            \"0xcafebabe\",\n            (\n                \"0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef\"\n                \"deadbeefdeadbeefdeadbeefdeadbeefdeadbeef\"\n            ),\n            \"0x1d8bfDC5D46DC4f61D6b6115972536eBE6A8854C\",\n        ),\n        pytest.param(\n            \"0x0000000000000000000000000000000000000000\",\n            \"0x0000000000000000000000000000000000000000\",\n            \"0x\",\n            \"0xE33C0C7F7df4809055C3ebA6c09CFe4BaF1BD9e0\",\n        ),\n    ],\n)\ndef test_compute_create2_address(\n    address: str | int,\n    salt: str,\n    initcode: str,\n    expected_contract_address: str,\n) -> None:\n    \"\"\"\n    Test `ethereum_test.helpers.compute_create2_address` using the CREATE2 geth\n    test cases from:\n    https://github.com/ethereum/go-ethereum/blob/2189773093b2fe6d161b6477589f964470ff5bce/core/vm/instructions_test.go.\n\n    Note: `compute_create2_address` does not generate checksum addresses.\n    \"\"\"\n    salt_as_int = int(salt, 16)\n    initcode_as_bytes = bytes.fromhex(initcode[2:])\n    assert (\n        compute_create2_address(address, salt_as_int, initcode_as_bytes)\n        == expected_contract_address.lower()\n    )\n"
  },
  {
    "path": "src/ethereum_test_types/tests/test_phase_manager.py",
    "content": "\"\"\"Test suite for TestPhaseManager functionality.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_base_types import Address\nfrom ethereum_test_tools import Transaction\n\nfrom ..phase_manager import TestPhase, TestPhaseManager\n\n\n@pytest.fixture(autouse=True)\ndef reset_phase_manager() -> None:\n    \"\"\"Reset TestPhaseManager singleton state before each test.\"\"\"\n    TestPhaseManager.reset()\n\n\ndef test_test_phase_enum_values() -> None:\n    \"\"\"Test that TestPhase enum has correct values.\"\"\"\n    assert TestPhase.SETUP.value == \"setup\"\n    assert TestPhase.EXECUTION.value == \"execution\"\n\n\ndef test_phase_manager_class_state() -> None:\n    \"\"\"Test TestPhaseManager uses class-level state.\"\"\"\n    # All access is through class methods, no instance needed\n    assert TestPhaseManager.get_current_phase() is None\n\n    # Setting phase through class method\n    with TestPhaseManager.setup():\n        assert TestPhaseManager.get_current_phase() == TestPhase.SETUP\n\n    # Phase persists at class level\n    assert TestPhaseManager.get_current_phase() is None\n\n\ndef test_default_phase_is_none() -> None:\n    \"\"\"Test that default phase is None (no context set).\"\"\"\n    assert TestPhaseManager.get_current_phase() is None\n\n\ndef test_transaction_auto_detects_default_phase() -> None:\n    \"\"\"Test that transactions default to None when no phase set.\"\"\"\n    tx = Transaction(to=Address(0x123), value=100, gas_limit=21000)\n    assert tx.test_phase is None\n\n\ndef test_transaction_auto_detects_setup_phase() -> None:\n    \"\"\"Test that transactions created in setup context get SETUP phase.\"\"\"\n    with TestPhaseManager.setup():\n        tx = Transaction(to=Address(0x456), value=50, gas_limit=21000)\n        assert tx.test_phase == TestPhase.SETUP\n\n\ndef test_phase_context_switching() -> None:\n    \"\"\"Test that phase switching works correctly.\"\"\"\n    # Start with no phase set (defaults to None)\n    tx1 = Transaction(to=Address(0x100), value=100, gas_limit=21000)\n    assert tx1.test_phase is None\n\n    # Switch to SETUP\n    with TestPhaseManager.setup():\n        assert TestPhaseManager.get_current_phase() == TestPhase.SETUP\n        tx2 = Transaction(to=Address(0x200), value=200, gas_limit=21000)\n        assert tx2.test_phase == TestPhase.SETUP\n\n    # Back to None after context (transactions default to None)\n    assert TestPhaseManager.get_current_phase() is None\n    tx3 = Transaction(to=Address(0x300), value=300, gas_limit=21000)\n    assert tx3.test_phase is None\n\n\ndef test_nested_phase_contexts() -> None:\n    \"\"\"Test that nested phase contexts work correctly.\"\"\"\n    with TestPhaseManager.setup():\n        tx1 = Transaction(to=Address(0x100), value=100, gas_limit=21000)\n        assert tx1.test_phase == TestPhase.SETUP\n\n        # Nested execution context\n        with TestPhaseManager.execution():\n            tx2 = Transaction(to=Address(0x200), value=200, gas_limit=21000)\n            assert tx2.test_phase == TestPhase.EXECUTION\n\n        # Back to setup after nested context\n        tx3 = Transaction(to=Address(0x300), value=300, gas_limit=21000)\n        assert tx3.test_phase == TestPhase.SETUP\n\n\n@pytest.mark.parametrize(\n    [\"num_setup_txs\", \"num_exec_txs\"],\n    [\n        pytest.param(0, 1, id=\"exec_only\"),\n        pytest.param(1, 0, id=\"setup_only\"),\n        pytest.param(3, 5, id=\"mixed\"),\n        pytest.param(10, 10, id=\"many\"),\n    ],\n)\ndef test_multiple_transactions_phase_tagging(num_setup_txs: int, num_exec_txs: int) -> None:\n    \"\"\"Test that multiple transactions are correctly tagged by phase.\"\"\"\n    setup_txs = []\n    exec_txs = []\n\n    # Create setup transactions\n    with TestPhaseManager.setup():\n        for i in range(num_setup_txs):\n            tx = Transaction(to=Address(0x1000 + i), value=i * 10, gas_limit=21000)\n            setup_txs.append(tx)\n\n    # Create execution transactions\n    for i in range(num_exec_txs):\n        tx = Transaction(to=Address(0x2000 + i), value=i * 20, gas_limit=21000)\n        exec_txs.append(tx)\n\n    # Verify all setup transactions have SETUP phase\n    for tx in setup_txs:\n        assert tx.test_phase == TestPhase.SETUP\n\n    # Verify all execution transactions have None phase (no context set)\n    for tx in exec_txs:\n        assert tx.test_phase is None\n\n\ndef test_phase_reset() -> None:\n    \"\"\"Test that reset() restores default phase.\"\"\"\n    # Change phase\n    with TestPhaseManager.setup():\n        pass\n\n    # Manually set to SETUP\n    TestPhaseManager._current_phase = TestPhase.SETUP\n    assert TestPhaseManager.get_current_phase() == TestPhase.SETUP\n\n    # Reset should restore None\n    TestPhaseManager.reset()\n    assert TestPhaseManager.get_current_phase() is None\n\n\ndef test_class_state_shared() -> None:\n    \"\"\"Test that phase state is shared at class level.\"\"\"\n    # Phase changes are visible globally since it's class-level state\n    assert TestPhaseManager.get_current_phase() is None\n\n    with TestPhaseManager.setup():\n        # All access to the class sees the same phase\n        assert TestPhaseManager.get_current_phase() == TestPhase.SETUP\n\n        # Transactions created during this context get SETUP phase\n        tx = Transaction(to=Address(0x789), value=75, gas_limit=21000)\n        assert tx.test_phase == TestPhase.SETUP\n\n    # After context, phase returns to None\n    assert TestPhaseManager.get_current_phase() is None\n"
  },
  {
    "path": "src/ethereum_test_types/tests/test_post_alloc.py",
    "content": "\"\"\"Test suite for test spec submodules of the `ethereum_test` module.\"\"\"\n\nfrom typing import Type\n\nimport pytest\n\nfrom ethereum_test_base_types import Account\nfrom ethereum_test_types import Alloc\n\n\n@pytest.fixture()\ndef post(request: pytest.FixtureRequest) -> Alloc:\n    \"\"\"\n    Post state: Set from the test's indirectly parametrized `post` parameter.\n    \"\"\"\n    return Alloc.model_validate(request.param)\n\n\n@pytest.fixture()\ndef alloc(request: pytest.FixtureRequest) -> Alloc:\n    \"\"\"\n    Alloc state: Set from the test's indirectly parametrized `alloc` parameter.\n    \"\"\"\n    return Alloc.model_validate(request.param)\n\n\n@pytest.mark.parametrize(\n    [\"post\", \"alloc\", \"expected_exception_type\"],\n    [\n        # Account should not exist but contained in alloc\n        (\n            {\"0x0000000000000000000000000000000000000000\": Account.NONEXISTENT},\n            {\n                \"0x0000000000000000000000000000000000000000\": {\n                    \"nonce\": \"1\",\n                    \"code\": \"0x123\",\n                    \"balance\": \"1\",\n                    \"storage\": {0: 1},\n                }\n            },\n            Alloc.UnexpectedAccountError,\n        ),\n        # Account should not exist but contained in alloc\n        (\n            {\"0x0000000000000000000000000000000000000000\": Account.NONEXISTENT},\n            {\"0x0000000000000000000000000000000000000000\": {\"nonce\": \"1\"}},\n            Alloc.UnexpectedAccountError,\n        ),\n        # Account should not exist but contained in alloc\n        (\n            {\"0x0000000000000000000000000000000000000001\": Account.NONEXISTENT},\n            {\"0x0000000000000000000000000000000000000001\": {\"balance\": \"1\"}},\n            Alloc.UnexpectedAccountError,\n        ),\n        # Account should not exist but contained in alloc\n        (\n            {\"0x000000000000000000000000000000000000000a\": Account.NONEXISTENT},\n            {\"0x000000000000000000000000000000000000000A\": {\"code\": \"0x00\"}},\n            Alloc.UnexpectedAccountError,\n        ),\n        # Account should exist but not in alloc\n        (\n            {\"0x000000000000000000000000000000000000000A\": Account()},\n            {\n                \"0x000000000000000000000000000000000000000B\": {\n                    \"nonce\": \"1\",\n                    \"code\": \"0x123\",\n                    \"balance\": \"1\",\n                    \"storage\": {0: 1},\n                }\n            },\n            Alloc.MissingAccountError,\n        ),\n        # Account should exist and contained in alloc, but don't care about\n        # values\n        (\n            {\"0x0000000000000000000000000000000000000001\": Account()},\n            {\n                \"0x0000000000000000000000000000000000000001\": {\n                    \"nonce\": \"1\",\n                    \"code\": \"0x123\",\n                    \"balance\": \"1\",\n                    \"storage\": {0: 1},\n                }\n            },\n            None,\n        ),\n        # Account should exist and contained in alloc, single incorrect value\n        (\n            {\"0x0000000000000000000000000000000000000001\": Account(nonce=0)},\n            {\n                \"0x0000000000000000000000000000000000000001\": {\n                    \"nonce\": \"1\",\n                    \"code\": \"0x123\",\n                    \"balance\": \"1\",\n                    \"storage\": {0: 1},\n                }\n            },\n            Account.NonceMismatchError,\n        ),\n    ],\n    indirect=[\"post\", \"alloc\"],\n)\ndef test_verify_post_alloc(\n    post: Alloc, alloc: Alloc, expected_exception_type: Type[Exception] | None\n) -> None:\n    \"\"\"Test `verify_post_alloc` method of `Alloc`.\"\"\"\n    if expected_exception_type is None:\n        post.verify_post_alloc(alloc)\n    else:\n        with pytest.raises(expected_exception_type) as _:\n            post.verify_post_alloc(alloc)\n"
  },
  {
    "path": "src/ethereum_test_types/tests/test_transactions.py",
    "content": "\"\"\"Test suite for transaction signing and serialization.\"\"\"\n\nfrom typing import Tuple\n\nimport pytest\n\nfrom ethereum_test_base_types import AccessList, Hash\n\nfrom ..transaction_types import Transaction\n\n\n@pytest.mark.parametrize(\n    [\n        \"tx\",\n        \"expected_signature\",\n        \"expected_sender\",\n        \"expected_serialized\",\n    ],\n    [\n        (\n            Transaction(\n                ty=0,\n                nonce=0,\n                gas_price=1000000000,\n                protected=False,\n            ),\n            (\n                27,\n                53278292994103027856810056625464356790495244130915206464977063215688423053889,\n                51913880459033617104276213638042305667358907564476883662899087493955291953870,\n            ),\n            \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"0xf86380843b9aca008252089400000000000000000000000000000000000000aa80801ba075ca71\"\n            \"f8b7f1e95841db86704f4fe3da864694d135e0ed12ddf936f009541a41a072c6370f0c078df435b4\"\n            \"041fe9e1fd596f7bcbd810993122b39a7f212617bace\",\n        ),\n        (\n            Transaction(\n                ty=0,\n                nonce=0,\n                gas_price=1000000000,\n                protected=False,\n                to=None,\n            ),\n            (\n                27,\n                69580953802627422387708984158392304322597795331978871908970340300185024633230,\n                9987437858655471264845875982426404737641514329900923987672173898100072610198,\n            ),\n            \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"0xf84f80843b9aca008252088080801ba099d56c9a276e7b5c29f433bdc5ee0d551a242542445d2f\"\n            \"f793be942cd4cc998ea01614b083596de05d65f22e0319d969a8465732ce5ad199c41c17fd72a651\"\n            \"7996\",\n        ),\n        (\n            Transaction(\n                ty=0,\n                nonce=0,\n                gas_price=1000000000,\n                protected=True,\n            ),\n            (\n                37,\n                43493668498277122407922969255529421324465897185389682326746699251814478581534,\n                22805784714726510606244238945786421174106485654201651664508077741484361436093,\n            ),\n            \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"0xf86380843b9aca008252089400000000000000000000000000000000000000aa808025a060288b\"\n            \"4319025f4955e36c53831871a91b2b59131b0355dbbc01a34f05b30f1ea0326b9de159e61d79e55c\"\n            \"1844a8b0de520eef2fcb8b2992750c2f694d841ccbbd\",\n        ),\n        (\n            Transaction(\n                ty=1,\n                nonce=0,\n                gas_price=1000000000,\n            ),\n            (\n                1,\n                64717097837956073364449107040675652683171442339602810813343912669101132492723,\n                16766093433587703483635506527630997640109434240457156669715758246025787266781,\n            ),\n            \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"0x01f8650180843b9aca008252089400000000000000000000000000000000000000aa8080c001a0\"\n            \"8f14944d8d46e2b6280d61afee759646d42aa23189e0764ed409e68f45962fb3a0251145c8de5edc\"\n            \"9a19b3244f37caca6858aec3a1056330e251491881cbd2d6dd\",\n        ),\n        (\n            Transaction(\n                ty=1,\n                nonce=0,\n                gas_price=1000000000,\n                access_list=[],\n            ),\n            (\n                1,\n                64717097837956073364449107040675652683171442339602810813343912669101132492723,\n                16766093433587703483635506527630997640109434240457156669715758246025787266781,\n            ),\n            \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"0x01f8650180843b9aca008252089400000000000000000000000000000000000000aa8080c001a0\"\n            \"8f14944d8d46e2b6280d61afee759646d42aa23189e0764ed409e68f45962fb3a0251145c8de5edc\"\n            \"9a19b3244f37caca6858aec3a1056330e251491881cbd2d6dd\",\n        ),\n        (\n            Transaction(\n                ty=1,\n                nonce=0,\n                gas_price=1000000000,\n                access_list=[\n                    AccessList(\n                        address=\"0x0000000000000000000000000000000000000123\",\n                        storage_keys=[0x456, 0x789],\n                    )\n                ],\n            ),\n            (\n                0,\n                66978004263684299215005885298552000328779940885769675563360335351527355325681,\n                56105983548446712608196400571580400910290560012106232439738315212890613615554,\n            ),\n            \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"0x01f8c10180843b9aca008252089400000000000000000000000000000000000000aa8080f85bf8\"\n            \"59940000000000000000000000000000000000000123f842a0000000000000000000000000000000\"\n            \"0000000000000000000000000000000456a000000000000000000000000000000000000000000000\"\n            \"0000000000000000078980a0941434fdc19a5853453cad120ebdea00bc0fce323301794b908ca9f7\"\n            \"a0661cf1a07c0adc80aec2b076a8dbfde04e0a51de29e9e904510f804cd57e153a804e0bc2\",\n        ),\n        (\n            Transaction(\n                ty=1,\n                nonce=0,\n                gas_price=1000000000,\n                to=None,\n                access_list=[AccessList(address=0x123, storage_keys=[0x456, 0x789])],\n            ),\n            (\n                0,\n                16814800520830332761874524721118962980778925570205706327283408113434790879234,\n                38982159227826105391951884315531363239837729091757253660549724931098838198780,\n            ),\n            \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"0x01f8ad0180843b9aca00825208808080f85bf85994000000000000000000000000000000000000\"\n            \"0123f842a00000000000000000000000000000000000000000000000000000000000000456a00000\"\n            \"00000000000000000000000000000000000000000000000000000000078980a0252cd6ff24fb485a\"\n            \"50aa3cc4e11947e257c325213a6d5c6ae2ea70cb68b26002a0562f1ec7bfd17a0cc72ae25192b8a7\"\n            \"450b315a4a8bcea8f60281d3e72bd669fc\",\n        ),\n        (\n            Transaction(\n                ty=2,\n                nonce=0,\n                access_list=[AccessList(address=0x123, storage_keys=[0x456, 0x789])],\n                max_fee_per_gas=10,\n                max_priority_fee_per_gas=5,\n            ),\n            (\n                0,\n                91749892362404225540206401600149574009569116775084797886968775355264509620768,\n                44616954018220623825844796436003012227293665710878821792267483622343477105629,\n            ),\n            \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"0x02f8be0180050a8252089400000000000000000000000000000000000000aa8080f85bf8599400\"\n            \"00000000000000000000000000000000000123f842a0000000000000000000000000000000000000\"\n            \"0000000000000000000000000456a000000000000000000000000000000000000000000000000000\"\n            \"0000000000078980a0cad8994ac160fd7e167715bbe20212939abdd5cd5a1f6c4dd6e5612cd8b332\"\n            \"20a062a44d12b176bbd669d09d20d26281b5a693d8a52ab02a9d130201ee5db113dd\",\n        ),\n        (\n            Transaction(\n                ty=2,\n                nonce=0,\n                to=None,\n                access_list=[AccessList(address=0x123, storage_keys=[0x456, 0x789])],\n                max_fee_per_gas=10,\n                max_priority_fee_per_gas=5,\n            ),\n            (\n                0,\n                90322080068302816931882206183311797596224841408506356995778410737685074239457,\n                11150681916082931632476906514672946504836769153730288987778622018872414351162,\n            ),\n            \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"0x02f8aa0180050a825208808080f85bf859940000000000000000000000000000000000000123f8\"\n            \"42a00000000000000000000000000000000000000000000000000000000000000456a00000000000\"\n            \"00000000000000000000000000000000000000000000000000078980a0c7b07c5552829e585f68e2\"\n            \"eed4495ed6dfbe8cb1453edb2dc1e959d1087f5fe1a018a70ff379958b47e85172bc93fe5e47dc23\"\n            \"d13e3b0e4a800f1f3a0766a0af3a\",\n        ),\n        (\n            Transaction(\n                ty=3,\n                nonce=0,\n                access_list=[AccessList(address=0x123, storage_keys=[0x456, 0x789])],\n                max_fee_per_gas=10,\n                max_priority_fee_per_gas=5,\n                max_fee_per_blob_gas=100,\n                blob_versioned_hashes=[],\n            ),\n            (\n                0,\n                48031212734270141632897997738964470162703155533103542626635301519303700733477,\n                25274846027382763458393508666208718022841865508839207374090140639125166603463,\n            ),\n            \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"0x03f8c00180050a8252089400000000000000000000000000000000000000aa8080f85bf8599400\"\n            \"00000000000000000000000000000000000123f842a0000000000000000000000000000000000000\"\n            \"0000000000000000000000000456a000000000000000000000000000000000000000000000000000\"\n            \"0000000000078964c080a06a30b3f8fd434b55ee40d662263ffa98ff9c31ca0f9bce61ca5de5019c\"\n            \"4d5e25a037e10e4f6ca934236d6bf064134f7c3203b7308a16d5c43b3c9ce8b8a6fbbcc7\",\n        ),\n        (\n            Transaction(\n                ty=3,\n                nonce=0,\n                access_list=[AccessList(address=0x123, storage_keys=[0x456, 0x789])],\n                max_fee_per_gas=10,\n                max_priority_fee_per_gas=5,\n                max_fee_per_blob_gas=100,\n                blob_versioned_hashes=[Hash(0), Hash(0x01)],\n            ),\n            (\n                1,\n                16459258601065735918558202846976552354069849089672096317954578689965269615539,\n                13812345945591193204859005420918043741474532833353814142223502482030426489098,\n            ),\n            \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"0x03f901030180050a8252089400000000000000000000000000000000000000aa8080f85bf85994\"\n            \"0000000000000000000000000000000000000123f842a00000000000000000000000000000000000\"\n            \"000000000000000000000000000456a0000000000000000000000000000000000000000000000000\"\n            \"000000000000078964f842a000000000000000000000000000000000000000000000000000000000\"\n            \"00000000a0000000000000000000000000000000000000000000000000000000000000000101a024\"\n            \"639c3863663bb71a82b48482fd92428a4e1e6962c8ebe467a72adf2dc283b3a01e8982c15e3b5b53\"\n            \"e90ae56d2a6e93ebd918d778ff0cf7f4f8f96eb2f472810a\",\n        ),\n    ],\n    ids=[\n        \"type-0-not-protected\",\n        \"type-0-protected-contract-creation\",\n        \"type-0-protected\",\n        \"type-1\",\n        \"type-1-access-list-empty\",\n        \"type-1-access-list-filled\",\n        \"type-1-access-list-filled-contract-creation\",\n        \"type-2\",\n        \"type-2-contract-creation\",\n        \"type-3-minimal-empty-blobs\",\n        \"type-3-minimal-two-blobs\",\n    ],\n)\ndef test_transaction_signing(\n    tx: Transaction,\n    expected_signature: Tuple[int, int, int],\n    expected_sender: str,\n    expected_serialized: str,\n) -> None:\n    \"\"\"Test that transaction signing / serialization works as expected.\"\"\"\n    tx = tx.with_signature_and_sender()\n    signature = (tx.v, tx.r, tx.s)\n    assert signature is not None\n\n    assert signature == expected_signature\n    assert tx.sender is not None\n    assert tx.sender.hex() == expected_sender\n    assert (tx.rlp().hex()) == expected_serialized\n"
  },
  {
    "path": "src/ethereum_test_types/tests/test_types.py",
    "content": "\"\"\"Test suite for `ethereum_test` module.\"\"\"\n\nfrom typing import Any, Dict, List\n\nimport pytest\n\nfrom ethereum_test_base_types import (\n    AccessList,\n    Account,\n    Address,\n    Bytes,\n    Storage,\n    TestPrivateKey,\n    ZeroPaddedHexNumber,\n    to_json,\n)\nfrom ethereum_test_base_types.pydantic import CopyValidateModel\n\nfrom ..account_types import EOA, Alloc\nfrom ..block_types import (\n    Environment,\n    Withdrawal,\n)\nfrom ..transaction_types import (\n    AuthorizationTuple,\n    Transaction,\n)\n\n\ndef test_storage() -> None:\n    \"\"\"Test `ethereum_test.types.storage` parsing.\"\"\"\n    s = Storage({\"10\": \"0x10\"})  # type: ignore[dict-item]\n\n    assert 10 in s\n    assert s[10] == 16\n\n    s = Storage({\"10\": \"10\"})  # type: ignore[dict-item]\n\n    assert 10 in s\n    assert s[10] == 10\n\n    s = Storage({10: 10})  # type: ignore[dict-item]\n\n    assert 10 in s\n    assert s[10] == 10\n\n    iter_s = iter(Storage({10: 20, \"11\": \"21\"}))  # type: ignore[dict-item]\n    assert next(iter_s) == 10\n    assert next(iter_s) == 11\n\n    s[\"10\"] = \"0x10\"\n    s[\"0x10\"] = \"10\"\n    assert s[10] == 16\n    assert s[16] == 10\n\n    assert \"10\" in s\n    assert \"0xa\" in s\n    assert 10 in s\n\n    del s[10]\n    assert \"10\" not in s\n    assert \"0xa\" not in s\n    assert 10 not in s\n\n    s = Storage({-1: -1, -2: -2})  # type: ignore[dict-item]\n    assert s[-1] == 2**256 - 1\n    assert s[-2] == 2**256 - 2\n    d = to_json(s)\n    assert (\n        d[\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"]\n        == \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n    )\n    assert (\n        d[\"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\"]\n        == \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\"\n    )\n    # Try to add a duplicate key (negative and positive number at the same\n    # time)\n    # same value, ok\n    s[2**256 - 1] = 2**256 - 1\n    to_json(s)\n\n    # Check store counter\n    s = Storage({})\n    s.store_next(0x100)\n    s.store_next(\"0x200\")\n    s.store_next(b\"\\x03\\x00\".rjust(32, b\"\\x00\"))\n    d = to_json(s)\n    assert d == {\n        \"0x00\": (\"0x0100\"),\n        \"0x01\": (\"0x0200\"),\n        \"0x02\": (\"0x0300\"),\n    }\n\n\n@pytest.mark.parametrize(\n    [\"account\"],\n    [\n        pytest.param(\n            Account(),\n            id=\"no_fields\",\n        ),\n        pytest.param(\n            Account(\n                nonce=0,\n            ),\n            id=\"zero_nonce\",\n        ),\n        pytest.param(\n            Account(\n                balance=0,\n            ),\n            id=\"zero_balance\",\n        ),\n        pytest.param(\n            Account(\n                code=\"\",\n            ),\n            id=\"empty_code\",\n        ),\n        pytest.param(\n            Account(\n                storage={},\n            ),\n            id=\"empty_storage\",\n        ),\n        pytest.param(\n            Account(\n                nonce=0,\n                balance=0,\n                code=\"\",\n                storage={\n                    1: 0,\n                },\n            ),\n            id=\"only_zero_storage_values\",\n        ),\n    ],\n)\ndef test_empty_accounts(account: Account) -> None:\n    \"\"\"Test `ethereum_test.types.account` parsing.\"\"\"\n    assert not bool(account)\n\n\n@pytest.mark.parametrize(\n    [\"account\", \"alloc_dict\", \"should_pass\"],\n    [\n        # All None: Pass\n        (\n            Account(),\n            {\"nonce\": \"1\", \"code\": \"0x123\", \"balance\": \"1\", \"storage\": {0: 1}},\n            True,\n        ),\n        # Storage must be empty: Fail\n        (\n            Account(storage={}),\n            {\"nonce\": \"1\", \"code\": \"0x123\", \"balance\": \"1\", \"storage\": {0: 1}},\n            False,\n        ),\n        # Storage must be empty: Pass\n        (\n            Account(storage={}),\n            {\"nonce\": \"1\", \"code\": \"0x123\", \"balance\": \"1\", \"storage\": {}},\n            True,\n        ),\n        # Storage must be empty: Pass\n        (\n            Account(storage={}),\n            {\n                \"nonce\": \"1\",\n                \"code\": \"0x123\",\n                \"balance\": \"1\",\n                \"storage\": {0: 0, 1: 0},\n            },\n            True,\n        ),\n        # Storage must be empty: Pass\n        (\n            Account(storage={0: 0}),\n            {\n                \"nonce\": \"1\",\n                \"code\": \"0x123\",\n                \"balance\": \"1\",\n                \"storage\": {},\n            },\n            True,\n        ),\n        # Storage must not be empty: Pass\n        (\n            Account(storage={1: 1}),\n            {\n                \"nonce\": \"1\",\n                \"code\": \"0x123\",\n                \"balance\": \"1\",\n                \"storage\": {0: 0, 1: 1},\n            },\n            True,\n        ),\n        # Storage must not be empty: Fail\n        (\n            Account(storage={1: 1}),\n            {\n                \"nonce\": \"1\",\n                \"code\": \"0x123\",\n                \"balance\": \"1\",\n                \"storage\": {0: 0, 1: 1, 2: 2},\n            },\n            False,\n        ),\n        # Code must be empty: Fail\n        (\n            Account(code=\"\"),\n            {\n                \"nonce\": \"0\",\n                \"code\": \"0x123\",\n                \"balance\": \"0\",\n                \"storage\": {},\n            },\n            False,\n        ),\n        # Code must be empty: Pass\n        (\n            Account(code=\"\"),\n            {\n                \"nonce\": \"1\",\n                \"code\": \"0x\",\n                \"balance\": \"1\",\n                \"storage\": {0: 0, 1: 1},\n            },\n            True,\n        ),\n        # Nonce must be empty: Fail\n        (\n            Account(nonce=0),\n            {\n                \"nonce\": \"1\",\n                \"code\": \"0x\",\n                \"balance\": \"0\",\n                \"storage\": {},\n            },\n            False,\n        ),\n        # Nonce must be empty: Pass\n        (\n            Account(nonce=0),\n            {\n                \"nonce\": \"0\",\n                \"code\": \"0x1234\",\n                \"balance\": \"1\",\n                \"storage\": {0: 0, 1: 1},\n            },\n            True,\n        ),\n        # Nonce must not be empty: Fail\n        (\n            Account(nonce=1),\n            {\n                \"code\": \"0x1234\",\n                \"balance\": \"1\",\n                \"storage\": {0: 0, 1: 1},\n            },\n            False,\n        ),\n        # Nonce must not be empty: Pass\n        (\n            Account(nonce=1),\n            {\n                \"nonce\": \"1\",\n                \"code\": \"0x\",\n                \"balance\": \"0\",\n                \"storage\": {},\n            },\n            True,\n        ),\n        # Balance must be empty: Fail\n        (\n            Account(balance=0),\n            {\n                \"nonce\": \"0\",\n                \"code\": \"0x\",\n                \"balance\": \"1\",\n                \"storage\": {},\n            },\n            False,\n        ),\n        # Balance must be empty: Pass\n        (\n            Account(balance=0),\n            {\n                \"nonce\": \"1\",\n                \"code\": \"0x1234\",\n                \"balance\": \"0\",\n                \"storage\": {0: 0, 1: 1},\n            },\n            True,\n        ),\n        # Balance must not be empty: Fail\n        (\n            Account(balance=1),\n            {\n                \"nonce\": \"1\",\n                \"code\": \"0x1234\",\n                \"storage\": {0: 0, 1: 1},\n            },\n            False,\n        ),\n        # Balance must not be empty: Pass\n        (\n            Account(balance=1),\n            {\n                \"nonce\": \"0\",\n                \"code\": \"0x\",\n                \"balance\": \"1\",\n                \"storage\": {},\n            },\n            True,\n        ),\n    ],\n)\ndef test_account_check_alloc(\n    account: Account, alloc_dict: Dict[Any, Any], should_pass: bool\n) -> None:\n    \"\"\"Test `Account.check_alloc` method.\"\"\"\n    alloc_account = Account(**alloc_dict)\n    if should_pass:\n        account.check_alloc(Address(1), alloc_account)\n    else:\n        with pytest.raises(Exception) as _:\n            account.check_alloc(Address(1), alloc_account)\n\n\n@pytest.mark.parametrize(\n    [\"alloc_1\", \"alloc_2\", \"expected_alloc\"],\n    [\n        pytest.param(\n            Alloc(),\n            Alloc(),\n            Alloc(),\n            id=\"empty_alloc\",\n        ),\n        pytest.param(\n            Alloc({0x1: {\"nonce\": 1}}),  # type: ignore\n            Alloc({0x2: {\"nonce\": 2}}),  # type: ignore\n            Alloc({0x1: Account(nonce=1), 0x2: Account(nonce=2)}),  # type: ignore\n            id=\"alloc_different_accounts\",\n        ),\n        pytest.param(\n            Alloc({0x2: {\"nonce\": 1}}),  # type: ignore\n            Alloc({\"0x0000000000000000000000000000000000000002\": {\"nonce\": 2}}),  # type: ignore\n            Alloc({0x2: Account(nonce=2)}),  # type: ignore\n            id=\"overwrite_account\",\n        ),\n        pytest.param(\n            Alloc({0x2: {\"balance\": 1}}),  # type: ignore\n            Alloc({\"0x0000000000000000000000000000000000000002\": {\"nonce\": 1}}),  # type: ignore\n            Alloc({0x2: Account(balance=1, nonce=1)}),  # type: ignore\n            id=\"mix_account\",\n        ),\n    ],\n)\ndef test_alloc_append(alloc_1: Alloc, alloc_2: Alloc, expected_alloc: Alloc) -> None:\n    \"\"\"Test `ethereum_test.types.alloc` merging.\"\"\"\n    assert Alloc.merge(alloc_1, alloc_2) == expected_alloc\n\n\n@pytest.mark.parametrize(\n    [\"account_1\", \"account_2\", \"expected_account\"],\n    [\n        pytest.param(\n            Account(),\n            Account(),\n            Account(),\n            id=\"empty_accounts\",\n        ),\n        pytest.param(\n            None,\n            None,\n            Account(),\n            id=\"none_accounts\",\n        ),\n        pytest.param(\n            Account(nonce=1),\n            Account(code=\"0x6000\"),\n            Account(nonce=1, code=\"0x6000\"),\n            id=\"accounts_with_different_fields\",\n        ),\n        pytest.param(\n            Account(nonce=1),\n            Account(nonce=2),\n            Account(nonce=2),\n            id=\"accounts_with_different_nonce\",\n        ),\n    ],\n)\ndef test_account_merge(\n    account_1: Account | None, account_2: Account | None, expected_account: Account\n) -> None:\n    \"\"\"Test `ethereum_test.types.account` merging.\"\"\"\n    assert Account.merge(account_1, account_2) == expected_account\n\n\nCHECKSUM_ADDRESS = \"0x8a0A19589531694250d570040a0c4B74576919B8\"\n\n\n@pytest.mark.parametrize(\n    [\"can_be_deserialized\", \"model_instance\", \"json\"],\n    [\n        pytest.param(\n            True,\n            Address(CHECKSUM_ADDRESS),\n            CHECKSUM_ADDRESS,\n            marks=pytest.mark.xfail,\n            id=\"address_with_checksum_address\",\n        ),\n        pytest.param(\n            True,\n            Account(),\n            {\n                \"nonce\": \"0x00\",\n                \"balance\": \"0x00\",\n                \"code\": \"0x\",\n                \"storage\": {},\n            },\n            id=\"account_1\",\n        ),\n        pytest.param(\n            True,\n            Account(\n                nonce=1,\n                balance=2,\n                code=\"0x1234\",\n                storage={\n                    0: 0,\n                    1: 1,\n                },\n            ),\n            {\n                \"nonce\": \"0x01\",\n                \"balance\": \"0x02\",\n                \"code\": \"0x1234\",\n                \"storage\": {\n                    \"0x00\": \"0x00\",\n                    \"0x01\": \"0x01\",\n                },\n            },\n            id=\"account_2\",\n        ),\n        pytest.param(\n            True,\n            Withdrawal(index=0, validator_index=1, address=0x1234, amount=2),\n            {\n                \"index\": \"0x0\",\n                \"validatorIndex\": \"0x1\",\n                \"address\": \"0x0000000000000000000000000000000000001234\",\n                \"amount\": \"0x2\",\n            },\n            id=\"withdrawal\",\n        ),\n        pytest.param(\n            True,\n            Environment(),\n            {\n                \"currentCoinbase\": \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n                \"currentGasLimit\": str(ZeroPaddedHexNumber(Environment().gas_limit)),\n                \"currentNumber\": \"0x01\",\n                \"currentTimestamp\": \"0x03e8\",\n                \"blockHashes\": {},\n                \"ommers\": [],\n                \"parentUncleHash\": (\n                    \"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347\"\n                ),\n            },\n            id=\"environment_1\",\n        ),\n        pytest.param(\n            True,\n            Environment(\n                fee_recipient=0x1234,\n                difficulty=0x5,\n                prev_randao=0x6,\n                base_fee_per_gas=0x7,\n                parent_difficulty=0x8,\n                parent_timestamp=0x9,\n                parent_base_fee_per_gas=0xA,\n                parent_gas_used=0xB,\n                parent_gas_limit=0xC,\n                parent_ommers_hash=0xD,\n                withdrawals=[Withdrawal(index=0, validator_index=1, address=0x1234, amount=2)],\n                parent_blob_gas_used=0xE,\n                parent_excess_blob_gas=0xF,\n                blob_gas_used=0x10,\n                excess_blob_gas=0x11,\n                block_hashes={1: 2, 3: 4},\n            ),\n            {\n                \"currentCoinbase\": \"0x0000000000000000000000000000000000001234\",\n                \"currentGasLimit\": str(ZeroPaddedHexNumber(Environment().gas_limit)),\n                \"currentNumber\": \"0x01\",\n                \"currentTimestamp\": \"0x03e8\",\n                \"currentDifficulty\": \"0x05\",\n                \"currentRandom\": \"0x06\",\n                \"currentBaseFee\": \"0x07\",\n                \"parentDifficulty\": \"0x08\",\n                \"parentTimestamp\": \"0x09\",\n                \"parentBaseFee\": \"0x0a\",\n                \"parentGasUsed\": \"0x0b\",\n                \"parentGasLimit\": \"0x0c\",\n                \"parentUncleHash\": (\n                    \"0x000000000000000000000000000000000000000000000000000000000000000d\"\n                ),\n                \"withdrawals\": [\n                    {\n                        \"index\": \"0x0\",\n                        \"validatorIndex\": \"0x1\",\n                        \"address\": \"0x0000000000000000000000000000000000001234\",\n                        \"amount\": \"0x2\",\n                    },\n                ],\n                \"parentBlobGasUsed\": \"0x0e\",\n                \"parentExcessBlobGas\": \"0x0f\",\n                \"currentBlobGasUsed\": \"0x10\",\n                \"currentExcessBlobGas\": \"0x11\",\n                \"blockHashes\": {\n                    \"0x01\": \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n                    \"0x03\": \"0x0000000000000000000000000000000000000000000000000000000000000004\",\n                },\n                \"parentHash\": \"0x0000000000000000000000000000000000000000000000000000000000000004\",\n                \"ommers\": [],\n            },\n            id=\"environment_2\",\n        ),\n        pytest.param(\n            True,\n            Transaction().with_signature_and_sender(),\n            {\n                \"type\": \"0x0\",\n                \"chainId\": \"0x1\",\n                \"nonce\": \"0x0\",\n                \"to\": \"0x00000000000000000000000000000000000000aa\",\n                \"value\": \"0x0\",\n                \"input\": \"0x\",\n                \"gas\": \"0x5208\",\n                \"gasPrice\": \"0xa\",\n                \"v\": \"0x26\",\n                \"r\": \"0xcc61d852649c34cc0b71803115f38036ace257d2914f087bf885e6806a664fbd\",\n                \"s\": \"0x2020cb35f5d7731ab540d62614503a7f2344301a86342f67daf011c1341551ff\",\n                \"sender\": \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            },\n            id=\"transaction_t8n_default_args\",\n        ),\n        pytest.param(\n            True,\n            Transaction(\n                to=None,\n            ).with_signature_and_sender(),\n            {\n                \"type\": \"0x0\",\n                \"chainId\": \"0x1\",\n                \"nonce\": \"0x0\",\n                \"to\": None,\n                \"value\": \"0x0\",\n                \"input\": \"0x\",\n                \"gas\": \"0x5208\",\n                \"gasPrice\": \"0xa\",\n                \"v\": \"0x25\",\n                \"r\": \"0x1cfe2cbb0c3577f74d9ae192a7f1ee2d670fe806a040f427af9cb768be3d07ce\",\n                \"s\": \"0xcbe2d029f52dbf93ade486625bed0603945d2c7358b31de99fe8786c00f13da\",\n                \"sender\": \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            },\n            id=\"transaction_t8n_to_none\",\n        ),\n        pytest.param(\n            True,\n            Transaction(\n                to=\"\",\n            ).with_signature_and_sender(),\n            {\n                \"type\": \"0x0\",\n                \"chainId\": \"0x1\",\n                \"nonce\": \"0x0\",\n                \"to\": None,\n                \"value\": \"0x0\",\n                \"input\": \"0x\",\n                \"gas\": \"0x5208\",\n                \"gasPrice\": \"0xa\",\n                \"v\": \"0x25\",\n                \"r\": \"0x1cfe2cbb0c3577f74d9ae192a7f1ee2d670fe806a040f427af9cb768be3d07ce\",\n                \"s\": \"0xcbe2d029f52dbf93ade486625bed0603945d2c7358b31de99fe8786c00f13da\",\n                \"sender\": \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            },\n            id=\"transaction_t8n_to_empty_str\",\n        ),\n        pytest.param(\n            True,\n            Transaction(\n                to=0x1234,\n                data=b\"\\x01\\x00\",\n                access_list=[\n                    AccessList(\n                        address=0x1234,\n                        storage_keys=[0, 1],\n                    )\n                ],\n                max_priority_fee_per_gas=10,\n                max_fee_per_gas=20,\n                max_fee_per_blob_gas=30,\n                blob_versioned_hashes=[0, 1],\n            ).with_signature_and_sender(),\n            {\n                \"type\": \"0x3\",\n                \"chainId\": \"0x1\",\n                \"nonce\": \"0x0\",\n                \"to\": \"0x0000000000000000000000000000000000001234\",\n                \"accessList\": [\n                    {\n                        \"address\": \"0x0000000000000000000000000000000000001234\",\n                        \"storageKeys\": [\n                            \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n                            \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n                        ],\n                    }\n                ],\n                \"value\": \"0x0\",\n                \"input\": \"0x0100\",\n                \"gas\": \"0x5208\",\n                \"maxPriorityFeePerGas\": \"0xa\",\n                \"maxFeePerGas\": \"0x14\",\n                \"maxFeePerBlobGas\": \"0x1e\",\n                \"blobVersionedHashes\": [\n                    \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n                    \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n                ],\n                \"v\": \"0x0\",\n                \"r\": \"0x418bb557c43262375f80556cb09dac5e67396acf0eaaf2c2540523d1ce54b280\",\n                \"s\": \"0x4fa36090ea68a1138043d943ced123c0b0807d82ff3342a6977cbc09230e927c\",\n                \"sender\": \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            },\n            id=\"transaction_3\",\n        ),\n    ],\n)\nclass TestPydanticModelConversion:\n    \"\"\"Test that Pydantic models are converted to and from JSON correctly.\"\"\"\n\n    def test_json_serialization(\n        self, can_be_deserialized: bool, model_instance: Any, json: str | Dict[str, Any]\n    ) -> None:\n        \"\"\"Test that to_json returns the expected JSON for the given object.\"\"\"\n        del can_be_deserialized\n        assert to_json(model_instance) == json\n\n    def test_json_deserialization(\n        self, can_be_deserialized: bool, model_instance: Any, json: str | Dict[str, Any]\n    ) -> None:\n        \"\"\"Test that to_json returns the expected JSON for the given object.\"\"\"\n        if not can_be_deserialized:\n            pytest.skip(reason=\"The model instance in this case can not be deserialized\")\n        model_type = type(model_instance)\n        assert model_type(**json) == model_instance\n\n\n@pytest.mark.parametrize(\n    [\"invalid_tx_args\", \"expected_exception\", \"expected_exception_substring\"],\n    [\n        pytest.param(\n            {\"gas_price\": 1, \"max_fee_per_gas\": 2},\n            Transaction.InvalidFeePaymentError,\n            \"only one type of fee payment field can be used\",\n            id=\"gas-price-and-max-fee-per-gas\",\n        ),\n        pytest.param(\n            {\"gas_price\": 1, \"max_priority_fee_per_gas\": 2},\n            Transaction.InvalidFeePaymentError,\n            \"only one type of fee payment field can be used\",\n            id=\"gas-price-and-max-priority-fee-per-gas\",\n        ),\n        pytest.param(\n            {\"gas_price\": 1, \"max_fee_per_blob_gas\": 2},\n            Transaction.InvalidFeePaymentError,\n            \"only one type of fee payment field can be used\",\n            id=\"gas-price-and-max-fee-per-blob-gas\",\n        ),\n        pytest.param(\n            {\"ty\": 0, \"v\": 1, \"secret_key\": 2},\n            Transaction.InvalidSignaturePrivateKeyError,\n            \"can't define both 'signature' and 'private_key'\",\n            id=\"type0-signature-and-secret-key\",\n        ),\n    ],\n)\ndef test_transaction_post_init_invalid_arg_combinations(  # noqa: D103\n    invalid_tx_args: Any, expected_exception: Any, expected_exception_substring: str\n) -> None:\n    \"\"\"\n    Test that Transaction.__post_init__ raises the expected exceptions for\n    invalid constructor argument combinations.\n    \"\"\"\n    with pytest.raises(expected_exception) as exc_info:\n        Transaction(**invalid_tx_args)\n    assert expected_exception_substring in str(exc_info.value)\n\n\n@pytest.mark.parametrize(\n    [\"tx_args\", \"expected_attributes_and_values\"],\n    [\n        pytest.param(\n            {\"max_fee_per_blob_gas\": 10},\n            [\n                (\"ty\", 3),\n            ],\n            id=\"max_fee_per_blob_gas-adds-ty-3\",\n        ),\n        pytest.param(\n            {},\n            [\n                (\"gas_price\", 10),\n            ],\n            id=\"no-fees-adds-gas_price\",\n        ),\n        pytest.param(\n            {},\n            [\n                (\"secret_key\", TestPrivateKey),\n            ],\n            id=\"no-signature-adds-secret_key\",\n        ),\n        pytest.param(\n            {\"max_fee_per_gas\": 10},\n            [\n                (\"ty\", 2),\n            ],\n            id=\"max_fee_per_gas-adds-ty-2\",\n        ),\n        pytest.param(\n            {\"access_list\": [AccessList(address=0x1234, storage_keys=[0, 1])]},\n            [\n                (\"ty\", 1),\n            ],\n            id=\"access_list-adds-ty-1\",\n        ),\n        pytest.param(\n            {\"ty\": 1},\n            [\n                (\"access_list\", []),\n            ],\n            id=\"ty-1-adds-empty-access_list\",\n        ),\n        pytest.param(\n            {\"ty\": 2},\n            [\n                (\"max_priority_fee_per_gas\", 0),\n            ],\n            id=\"ty-2-adds-max_priority_fee_per_gas\",\n        ),\n        pytest.param(\n            {\"to\": Address(1)},\n            [\n                (\"to\", Address(1)),\n            ],\n            id=\"non-zero-to\",\n        ),\n        pytest.param(\n            {\"to\": Address(0)},\n            [\n                (\"to\", Address(0)),\n            ],\n            id=\"zero-to\",\n        ),\n    ],\n)\ndef test_transaction_post_init_defaults(tx_args: Any, expected_attributes_and_values: Any) -> None:\n    \"\"\"\n    Test that Transaction.__post_init__ sets the expected default values for\n    missing fields.\n    \"\"\"\n    tx = Transaction(**tx_args)\n    for attr, val in expected_attributes_and_values:\n        assert hasattr(tx, attr)\n        assert getattr(tx, attr) == val\n\n\n@pytest.mark.parametrize(\n    [\"withdrawals\", \"expected_root\"],\n    [\n        pytest.param(\n            [],\n            bytes.fromhex(\"56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421\"),\n            id=\"empty-withdrawals\",\n        ),\n        pytest.param(\n            [\n                Withdrawal(\n                    index=0,\n                    validator_index=1,\n                    address=0x1234,\n                    amount=2,\n                )\n            ],\n            bytes.fromhex(\"dc3ead883fc17ea3802cd0f8e362566b07b223f82e52f94c76cf420444b8ff81\"),\n            id=\"single-withdrawal\",\n        ),\n        pytest.param(\n            [\n                Withdrawal(\n                    index=0,\n                    validator_index=1,\n                    address=0x1234,\n                    amount=2,\n                ),\n                Withdrawal(\n                    index=1,\n                    validator_index=2,\n                    address=0xABCD,\n                    amount=0,\n                ),\n            ],\n            bytes.fromhex(\"069ab71e5d228db9b916880f02670c85682c46641bb9c95df84acc5075669e01\"),\n            id=\"multiple-withdrawals\",\n        ),\n        pytest.param(\n            [\n                Withdrawal(\n                    index=0,\n                    validator_index=0,\n                    address=0x100,\n                    amount=0,\n                ),\n                Withdrawal(\n                    index=0,\n                    validator_index=0,\n                    address=0x200,\n                    amount=0,\n                ),\n            ],\n            bytes.fromhex(\"daacd8fe889693f7d20436d9c0c044b5e92cc17b57e379997273fc67fd2eb7b8\"),\n            id=\"multiple-withdrawals\",\n        ),\n    ],\n)\ndef test_withdrawals_root(withdrawals: List[Withdrawal], expected_root: bytes) -> None:\n    \"\"\"Test that withdrawals_root returns the expected hash.\"\"\"\n    assert Withdrawal.list_root(withdrawals) == expected_root\n\n\n@pytest.mark.parametrize(\n    \"model\",\n    [\n        Environment(),\n    ],\n    ids=lambda model: model.__class__.__name__,\n)\ndef test_model_copy(model: CopyValidateModel) -> None:\n    \"\"\"Test that the copy method returns a correct copy of the model.\"\"\"\n    assert to_json(model.copy()) == to_json(model)\n    assert model.copy().model_fields_set == model.model_fields_set\n\n\n@pytest.mark.parametrize(\n    \"value, expected\",\n    [\n        pytest.param(\n            Transaction().with_signature_and_sender(),\n            Bytes(\n                \"0xf85f800a8252089400000000000000000000000000000000000000aa808026a0cc61d852649c34\"\n                \"cc0b71803115f38036ace257d2914f087bf885e6806a664fbda02020cb35f5d7731ab540d6261450\"\n                \"3a7f2344301a86342f67daf011c1341551ff\"\n            ),\n            id=\"type-0-transaction\",\n        ),\n        pytest.param(\n            Transaction(\n                access_list=[AccessList(address=0, storage_keys=[0, 1])],\n            ).with_signature_and_sender(),\n            Bytes(\n                \"0x01f8bd01800a8252089400000000000000000000000000000000000000aa8080f85bf859940000\"\n                \"000000000000000000000000000000000000f842a000000000000000000000000000000000000000\"\n                \"00000000000000000000000000a00000000000000000000000000000000000000000000000000000\"\n                \"00000000000180a0d48930fdc0183ff3e5f5a6d87cbdb8a719bfcd0396d22ef360166fb4cc35e42e\"\n                \"a063aba729e7a5f7b55c41b68dc6250769c98a25b5d21f5649576c5e79aa71a90e\"\n            ),\n            id=\"type-1-transaction\",\n        ),\n        pytest.param(\n            Transaction(\n                access_list=[AccessList(address=0, storage_keys=[0, 1])],\n                max_fee_per_gas=10,\n                max_priority_fee_per_gas=5,\n            ).with_signature_and_sender(),\n            Bytes(\n                \"0x02f8be0180050a8252089400000000000000000000000000000000000000aa8080f85bf8599400\"\n                \"00000000000000000000000000000000000000f842a0000000000000000000000000000000000000\"\n                \"0000000000000000000000000000a000000000000000000000000000000000000000000000000000\"\n                \"0000000000000180a0759123c15b9b06a9a063c9e9568e52631e8161cf663a5035505896070f67c3\"\n                \"21a0562291c94c89b5ab380c68fb8e254d34e373f4cd546a0ca3f40e455ce7072575\"\n            ),\n            id=\"type-2-transaction\",\n        ),\n        pytest.param(\n            Transaction(\n                access_list=[AccessList(address=1, storage_keys=[2, 3])],\n                max_fee_per_gas=10,\n                max_priority_fee_per_gas=5,\n                max_fee_per_blob_gas=20,\n                blob_versioned_hashes=[0, 1],\n            ).with_signature_and_sender(),\n            Bytes(\n                \"0x03f901030180050a8252089400000000000000000000000000000000000000aa8080f85bf85994\"\n                \"0000000000000000000000000000000000000001f842a00000000000000000000000000000000000\"\n                \"000000000000000000000000000002a0000000000000000000000000000000000000000000000000\"\n                \"000000000000000314f842a000000000000000000000000000000000000000000000000000000000\"\n                \"00000000a0000000000000000000000000000000000000000000000000000000000000000101a0cf\"\n                \"df45e03bb79a725059abfdff26243794e4f2cedc31cb951bae0064cb0d18ffa07af8ae0e4eb39dad\"\n                \"4f8210c49e3c81f4d2c50d0d94987122b788d17efa623de1\"\n            ),\n            id=\"type-3-transaction\",\n        ),\n        pytest.param(\n            Transaction(\n                access_list=[AccessList(address=0, storage_keys=[0, 1])],\n                max_fee_per_gas=10,\n                max_priority_fee_per_gas=5,\n                authorization_list=[\n                    AuthorizationTuple(\n                        address=0,\n                        signer=EOA(key=TestPrivateKey),\n                    ),\n                ],\n            ).with_signature_and_sender(),\n            Bytes(\n                \"0x04f9011c0180050a8252089400000000000000000000000000000000000000aa8080f85bf85994\"\n                \"0000000000000000000000000000000000000000f842a00000000000000000000000000000000000\"\n                \"000000000000000000000000000000a0000000000000000000000000000000000000000000000000\"\n                \"0000000000000001f85cf85a809400000000000000000000000000000000000000008080a0def12a\"\n                \"a13571bba668b619dc7523da4a44b4373f26ff19356a6b58a66217839fa0130454fb52ed23b604de\"\n                \"189d89b7b119698408a1cd80995959c8e3560aabb8ca80a051b5d457dfc118d4b0793c83c728c1ee\"\n                \"b9890ee98391493e8bb1c31855bcf3eca05d1d0c49babee471a39d63c9d5ca15f8e71051cc87335f\"\n                \"16d9bc7e4d56de278e\"\n            ),\n            id=\"type-4-transaction\",\n        ),\n        pytest.param(\n            Transaction(\n                access_list=[AccessList(address=0, storage_keys=[0, 1])],\n                max_fee_per_gas=10,\n                max_priority_fee_per_gas=5,\n                authorization_list=[\n                    AuthorizationTuple(\n                        address=0,\n                        secret_key=TestPrivateKey,\n                    ),\n                ],\n            ).with_signature_and_sender(),\n            Bytes(\n                \"0x04f9011c0180050a8252089400000000000000000000000000000000000000aa8080f85bf85994\"\n                \"0000000000000000000000000000000000000000f842a00000000000000000000000000000000000\"\n                \"000000000000000000000000000000a0000000000000000000000000000000000000000000000000\"\n                \"0000000000000001f85cf85a809400000000000000000000000000000000000000008080a0def12a\"\n                \"a13571bba668b619dc7523da4a44b4373f26ff19356a6b58a66217839fa0130454fb52ed23b604de\"\n                \"189d89b7b119698408a1cd80995959c8e3560aabb8ca80a051b5d457dfc118d4b0793c83c728c1ee\"\n                \"b9890ee98391493e8bb1c31855bcf3eca05d1d0c49babee471a39d63c9d5ca15f8e71051cc87335f\"\n                \"16d9bc7e4d56de278e\"\n            ),\n            id=\"type-4-transaction-auth-secret-key\",\n        ),\n    ],\n)\ndef test_serialization(value: Any, expected: Bytes) -> None:\n    \"\"\"Test `to_serializable_element` function.\"\"\"\n    assert value.rlp().hex() == expected.hex()\n"
  },
  {
    "path": "src/ethereum_test_types/transaction_types.py",
    "content": "\"\"\"Transaction-related types for Ethereum tests.\"\"\"\n\nfrom dataclasses import dataclass\nfrom enum import IntEnum\nfrom functools import cached_property\nfrom typing import Any, ClassVar, Dict, Generic, List, Literal, Sequence\n\nimport ethereum_rlp as eth_rlp\nfrom coincurve.keys import PrivateKey, PublicKey\nfrom ethereum_types.numeric import Uint\nfrom pydantic import (\n    AliasChoices,\n    BaseModel,\n    ConfigDict,\n    Field,\n    computed_field,\n    model_serializer,\n    model_validator,\n)\nfrom trie import HexaryTrie\n\nfrom ethereum_test_base_types import (\n    AccessList,\n    Address,\n    Bytes,\n    CamelModel,\n    Hash,\n    HexNumber,\n    NumberBoundTypeVar,\n    RLPSerializable,\n    SignableRLPSerializable,\n    TestAddress,\n    TestPrivateKey,\n)\nfrom ethereum_test_exceptions import TransactionException\nfrom pytest_plugins.custom_logging import get_logger\n\nfrom .account_types import EOA\nfrom .blob_types import Blob\nfrom .chain_config_types import ChainConfigDefaults\nfrom .phase_manager import TestPhase, TestPhaseManager\nfrom .receipt_types import TransactionReceipt\nfrom .utils import int_to_bytes, keccak256\n\nlogger = get_logger(__name__)\n\n\nclass TransactionType(IntEnum):\n    \"\"\"Transaction types.\"\"\"\n\n    LEGACY = 0\n    ACCESS_LIST = 1\n    BASE_FEE = 2\n    BLOB_TRANSACTION = 3\n    SET_CODE = 4\n\n\n@dataclass\nclass TransactionDefaults:\n    \"\"\"Default values for transactions.\"\"\"\n\n    gas_price = 10\n    max_fee_per_gas = 7\n    max_priority_fee_per_gas: int = 0\n\n\nclass AuthorizationTupleGeneric(CamelModel, Generic[NumberBoundTypeVar], SignableRLPSerializable):\n    \"\"\"Authorization tuple for transactions.\"\"\"\n\n    chain_id: NumberBoundTypeVar = Field(0)  # type: ignore\n    address: Address\n    nonce: NumberBoundTypeVar = Field(0)  # type: ignore\n\n    v: NumberBoundTypeVar = Field(default=0, validation_alias=AliasChoices(\"v\", \"yParity\"))  # type: ignore\n    r: NumberBoundTypeVar = Field(0)  # type: ignore\n    s: NumberBoundTypeVar = Field(0)  # type: ignore\n\n    magic: ClassVar[int] = 0x05\n\n    rlp_fields: ClassVar[List[str]] = [\"chain_id\", \"address\", \"nonce\", \"v\", \"r\", \"s\"]\n    rlp_signing_fields: ClassVar[List[str]] = [\"chain_id\", \"address\", \"nonce\"]\n\n    def get_rlp_signing_prefix(self) -> bytes:\n        \"\"\"\n        Return a prefix that has to be appended to the serialized signing\n        object.\n\n        By default, an empty string is returned.\n        \"\"\"\n        return self.magic.to_bytes(1, byteorder=\"big\")\n\n    @model_serializer(mode=\"wrap\", when_used=\"json-unless-none\")\n    def duplicate_v_as_y_parity(self, serializer: Any) -> Any:\n        \"\"\"\n        Add a duplicate 'yParity' field (same as `v`) in JSON fixtures.\n\n        Background: https://github.com/erigontech/erigon/issues/14073\n        \"\"\"\n        data = serializer(self)\n        if \"v\" in data and data[\"v\"] is not None:\n            data[\"yParity\"] = data[\"v\"]\n        return data\n\n\nclass AuthorizationTuple(AuthorizationTupleGeneric[HexNumber]):\n    \"\"\"Authorization tuple for transactions.\"\"\"\n\n    signer: EOA | None = None\n    secret_key: Hash | None = None\n\n    def model_post_init(self, __context: Any) -> None:\n        \"\"\"\n        Automatically signs the authorization tuple if a secret key or sender\n        are provided.\n        \"\"\"\n        super().model_post_init(__context)\n        self.sign()\n\n    def sign(self: \"AuthorizationTuple\") -> None:\n        \"\"\"Signs the authorization tuple with a private key.\"\"\"\n        signature_bytes: bytes | None = None\n        rlp_signing_bytes = self.rlp_signing_bytes()\n        if (\n            \"v\" not in self.model_fields_set\n            and \"r\" not in self.model_fields_set\n            and \"s\" not in self.model_fields_set\n        ):\n            signing_key: Hash | None = None\n            if self.secret_key is not None:\n                signing_key = self.secret_key\n            elif self.signer is not None:\n                eoa = self.signer\n                assert eoa is not None, \"signer must be set\"\n                signing_key = eoa.key\n            assert signing_key is not None, \"secret_key or signer must be set\"\n\n            signature_bytes = PrivateKey(secret=signing_key).sign_recoverable(\n                rlp_signing_bytes, hasher=keccak256\n            )\n            self.v, self.r, self.s = (\n                HexNumber(signature_bytes[64]),\n                HexNumber(int.from_bytes(signature_bytes[0:32], byteorder=\"big\")),\n                HexNumber(int.from_bytes(signature_bytes[32:64], byteorder=\"big\")),\n            )\n            self.model_fields_set.add(\"v\")\n            self.model_fields_set.add(\"r\")\n            self.model_fields_set.add(\"s\")\n\n        if self.signer is None:\n            try:\n                if not signature_bytes:\n                    signature_bytes = (\n                        int(self.r).to_bytes(32, byteorder=\"big\")\n                        + int(self.s).to_bytes(32, byteorder=\"big\")\n                        + bytes([self.v])\n                    )\n                public_key = PublicKey.from_signature_and_message(\n                    signature_bytes, rlp_signing_bytes.keccak256(), hasher=None\n                )\n                self.signer = EOA(\n                    address=Address(keccak256(public_key.format(compressed=False)[1:])[32 - 20 :])\n                )\n            except Exception:\n                # Signer remains `None` in this case\n                pass\n\n\nclass TransactionGeneric(BaseModel, Generic[NumberBoundTypeVar]):\n    \"\"\"\n    Generic transaction type used as a parent for Transaction and\n    FixtureTransaction (blockchain).\n    \"\"\"\n\n    ty: NumberBoundTypeVar = Field(0, alias=\"type\")  # type: ignore\n    chain_id: NumberBoundTypeVar = Field(\n        default_factory=lambda: ChainConfigDefaults.chain_id, validate_default=True\n    )  # type: ignore\n    nonce: NumberBoundTypeVar = Field(0)  # type: ignore\n    gas_price: NumberBoundTypeVar | None = None\n    max_priority_fee_per_gas: NumberBoundTypeVar | None = None\n    max_fee_per_gas: NumberBoundTypeVar | None = None\n    gas_limit: NumberBoundTypeVar = Field(21_000)  # type: ignore\n    to: Address | None = None\n    value: NumberBoundTypeVar = Field(0)  # type: ignore\n    data: Bytes = Field(Bytes(b\"\"))\n    access_list: List[AccessList] | None = None\n    max_fee_per_blob_gas: NumberBoundTypeVar | None = None\n    blob_versioned_hashes: Sequence[Hash] | None = None\n\n    v: NumberBoundTypeVar = Field(0)  # type: ignore\n    r: NumberBoundTypeVar = Field(0)  # type: ignore\n    s: NumberBoundTypeVar = Field(0)  # type: ignore\n    sender: EOA | None = None\n\n    def metadata_string(self) -> str | None:\n        \"\"\"Return the metadata field as a formatted json string or None.\"\"\"\n        return None\n\n\nclass TransactionValidateToAsEmptyString(CamelModel):\n    \"\"\"Handler to validate the `to` field from an empty string.\"\"\"\n\n    @model_validator(mode=\"before\")\n    @classmethod\n    def validate_to_as_empty_string(cls, data: Any) -> Any:\n        \"\"\"\n        If the `to` field is an empty string, set the model value to None.\n        \"\"\"\n        if (\n            isinstance(data, dict)\n            and \"to\" in data\n            and isinstance(data[\"to\"], str)\n            and data[\"to\"] == \"\"\n        ):\n            data[\"to\"] = None\n        return data\n\n\nclass TransactionFixtureConverter(TransactionValidateToAsEmptyString):\n    \"\"\"\n    Handler for serializing and validating the `to` field as an empty string.\n    \"\"\"\n\n    @model_serializer(mode=\"wrap\", when_used=\"json-unless-none\")\n    def serialize_to_as_empty_string(self, serializer: Any) -> Any:\n        \"\"\"\n        Serialize the `to` field as the empty string if the model value is\n        None.\n        \"\"\"\n        default = serializer(self)\n        if default is not None and \"to\" not in default:\n            default[\"to\"] = \"\"\n        return default\n\n\nclass TransactionTransitionToolConverter(TransactionValidateToAsEmptyString):\n    \"\"\"\n    Handler for serializing and validating the `to` field as an empty string.\n    \"\"\"\n\n    @model_serializer(mode=\"wrap\", when_used=\"json-unless-none\")\n    def serialize_to_as_none(self, serializer: Any) -> Any:\n        \"\"\"\n        Serialize the `to` field as `None` if the model value is None.\n\n        This is required as we use `exclude_none=True` when serializing, but\n        the t8n tool explicitly requires a value of `None` (respectively null),\n        for if the `to` field should be unset (contract creation).\n        \"\"\"\n        default = serializer(self)\n        if default is not None and \"to\" not in default:\n            default[\"to\"] = None\n        return default\n\n\nclass TransactionTestMetadata(CamelModel):\n    \"\"\"Represents the metadata for a transaction.\"\"\"\n\n    test_id: str | None = None\n    phase: str | None = None\n    action: str | None = None  # e.g. deploy / fund / execute\n    target: str | None = None  # account/contract label\n    tx_index: int | None = None  # index within this phase\n\n    def to_json(self) -> str:\n        \"\"\"\n        Convert the transaction metadata into json string for it to be embedded\n        in the request id.\n        \"\"\"\n        return self.model_dump_json(exclude_none=True, by_alias=True)\n\n\nclass Transaction(\n    TransactionGeneric[HexNumber], TransactionTransitionToolConverter, SignableRLPSerializable\n):\n    \"\"\"Generic object that can represent all Ethereum transaction types.\"\"\"\n\n    gas_limit: HexNumber = Field(HexNumber(21_000), serialization_alias=\"gas\")\n    to: Address | None = Field(Address(0xAA))\n    data: Bytes = Field(Bytes(b\"\"), alias=\"input\")\n\n    authorization_list: List[AuthorizationTuple] | None = None\n\n    initcodes: List[Bytes] | None = None\n\n    secret_key: Hash | None = None\n    error: List[TransactionException] | TransactionException | None = Field(None, exclude=True)\n\n    protected: bool = Field(True, exclude=True)\n\n    expected_receipt: TransactionReceipt | None = Field(None, exclude=True)\n\n    zero: ClassVar[Literal[0]] = 0\n\n    metadata: TransactionTestMetadata | None = Field(None, exclude=True)\n    test_phase: TestPhase | None = Field(\n        default_factory=TestPhaseManager.get_current_phase, exclude=True\n    )\n\n    model_config = ConfigDict(validate_assignment=True)\n\n    class InvalidFeePaymentError(Exception):\n        \"\"\"Transaction described more than one fee payment type.\"\"\"\n\n        def __str__(self) -> str:\n            \"\"\"Print exception string.\"\"\"\n            return \"only one type of fee payment field can be used in a single tx\"\n\n    class InvalidSignaturePrivateKeyError(Exception):\n        \"\"\"\n        Transaction describes both the signature and private key of source\n        account.\n        \"\"\"\n\n        def __str__(self) -> str:\n            \"\"\"Print exception string.\"\"\"\n            return \"can't define both 'signature' and 'private_key'\"\n\n    def model_post_init(self, __context: Any) -> None:\n        \"\"\"Ensure transaction has no conflicting properties.\"\"\"\n        super().model_post_init(__context)\n\n        if self.gas_price is not None and (\n            self.max_fee_per_gas is not None\n            or self.max_priority_fee_per_gas is not None\n            or self.max_fee_per_blob_gas is not None\n        ):\n            raise Transaction.InvalidFeePaymentError()\n\n        if \"ty\" not in self.model_fields_set:\n            # Try to deduce transaction type from included fields\n            if self.initcodes is not None:\n                self.ty = HexNumber(6)\n            elif self.authorization_list is not None:\n                self.ty = HexNumber(4)\n            elif self.max_fee_per_blob_gas is not None or self.blob_versioned_hashes is not None:\n                self.ty = HexNumber(3)\n            elif self.max_fee_per_gas is not None or self.max_priority_fee_per_gas is not None:\n                self.ty = HexNumber(2)\n            elif self.access_list is not None:\n                self.ty = HexNumber(1)\n            else:\n                self.ty = HexNumber(0)\n\n        if \"v\" in self.model_fields_set and self.secret_key is not None:\n            raise Transaction.InvalidSignaturePrivateKeyError()\n\n        if \"v\" not in self.model_fields_set and self.secret_key is None:\n            if self.sender is not None:\n                self.secret_key = self.sender.key\n            else:\n                self.secret_key = Hash(TestPrivateKey)\n                self.sender = EOA(address=TestAddress, key=self.secret_key, nonce=0)\n\n        # Set default values for fields that are required for certain tx types\n        if self.ty <= 1 and self.gas_price is None:\n            self.gas_price = HexNumber(TransactionDefaults.gas_price)\n        if self.ty >= 1 and self.access_list is None:\n            self.access_list = []\n        if self.ty < 1:\n            assert self.access_list is None, \"access_list must be None\"\n\n        if self.ty >= 2 and self.max_fee_per_gas is None:\n            self.max_fee_per_gas = HexNumber(TransactionDefaults.max_fee_per_gas)\n        if self.ty >= 2 and self.max_priority_fee_per_gas is None:\n            self.max_priority_fee_per_gas = HexNumber(TransactionDefaults.max_priority_fee_per_gas)\n        if self.ty < 2:\n            assert self.max_fee_per_gas is None, \"max_fee_per_gas must be None\"\n            assert self.max_priority_fee_per_gas is None, \"max_priority_fee_per_gas must be None\"\n\n        if self.ty == 3 and self.max_fee_per_blob_gas is None:\n            self.max_fee_per_blob_gas = HexNumber(1)\n        if self.ty != 3:\n            assert self.blob_versioned_hashes is None, \"blob_versioned_hashes must be None\"\n            assert self.max_fee_per_blob_gas is None, \"max_fee_per_blob_gas must be None\"\n\n        if self.ty == 4 and self.authorization_list is None:\n            self.authorization_list = []\n        if self.ty != 4:\n            assert self.authorization_list is None, \"authorization_list must be None\"\n\n        if self.ty == 6 and self.initcodes is None:\n            self.initcodes = []\n        if self.ty != 6:\n            assert self.initcodes is None, \"initcodes must be None\"\n\n        if \"nonce\" not in self.model_fields_set and self.sender is not None:\n            self.nonce = HexNumber(self.sender.get_nonce())\n\n    def with_error(\n        self, error: List[TransactionException] | TransactionException\n    ) -> \"Transaction\":\n        \"\"\"Create a copy of the transaction with an added error.\"\"\"\n        return self.copy(error=error)\n\n    def with_nonce(self, nonce: int) -> \"Transaction\":\n        \"\"\"Create a copy of the transaction with a modified nonce.\"\"\"\n        return self.copy(nonce=nonce)\n\n    @cached_property\n    def signature_bytes(self) -> Bytes:\n        \"\"\"Returns the serialized bytes of the transaction signature.\"\"\"\n        assert \"v\" in self.model_fields_set, \"transaction must be signed\"\n        v = int(self.v)\n        if self.ty == 0:\n            if self.protected:\n                assert self.chain_id is not None\n                v -= 35 + (self.chain_id * 2)\n            else:\n                v -= 27\n        return Bytes(\n            self.r.to_bytes(32, byteorder=\"big\")\n            + self.s.to_bytes(32, byteorder=\"big\")\n            + bytes([v])\n        )\n\n    def sign(self: \"Transaction\") -> None:\n        \"\"\"Signs the authorization tuple with a private key.\"\"\"\n        signature_bytes: bytes | None = None\n        rlp_signing_bytes = self.rlp_signing_bytes()\n        if (\n            \"v\" not in self.model_fields_set\n            and \"r\" not in self.model_fields_set\n            and \"s\" not in self.model_fields_set\n        ):\n            signing_key: Hash | None = None\n            if self.secret_key is not None:\n                signing_key = self.secret_key\n                self.secret_key = None\n            elif self.sender is not None:\n                eoa = self.sender\n                assert eoa is not None, \"signer must be set\"\n                signing_key = eoa.key\n            assert signing_key is not None, \"secret_key or signer must be set\"\n\n            signature_bytes = PrivateKey(secret=signing_key).sign_recoverable(\n                rlp_signing_bytes, hasher=keccak256\n            )\n            v, r, s = (\n                signature_bytes[64],\n                int.from_bytes(signature_bytes[0:32], byteorder=\"big\"),\n                int.from_bytes(signature_bytes[32:64], byteorder=\"big\"),\n            )\n            if self.ty == 0:\n                if self.protected:\n                    v += 35 + (self.chain_id * 2)\n                else:  # not protected\n                    v += 27\n            self.v, self.r, self.s = (HexNumber(v), HexNumber(r), HexNumber(s))\n            self.model_fields_set.add(\"v\")\n            self.model_fields_set.add(\"r\")\n            self.model_fields_set.add(\"s\")\n\n        if self.sender is None:\n            try:\n                if not signature_bytes:\n                    v = self.v\n                    if self.ty == 0:\n                        if v > 28:\n                            v -= 35 + (self.chain_id * 2)\n                        else:  # not protected\n                            v -= 27\n                    signature_bytes = (\n                        int(self.r).to_bytes(32, byteorder=\"big\")\n                        + int(self.s).to_bytes(32, byteorder=\"big\")\n                        + bytes([v])\n                    )\n                public_key = PublicKey.from_signature_and_message(\n                    signature_bytes, rlp_signing_bytes.keccak256(), hasher=None\n                )\n                self.sender = EOA(\n                    address=Address(keccak256(public_key.format(compressed=False)[1:])[32 - 20 :])\n                )\n            except Exception:\n                # Signer remains `None` in this case\n                pass\n\n    def with_signature_and_sender(self, *, keep_secret_key: bool = False) -> \"Transaction\":\n        \"\"\"Return signed version of the transaction using the private key.\"\"\"\n        updated_values: Dict[str, Any] = {}\n\n        if (\n            \"v\" in self.model_fields_set\n            or \"r\" in self.model_fields_set\n            or \"s\" in self.model_fields_set\n        ):\n            # Transaction already signed\n            if self.sender is not None:\n                return self\n\n            public_key = PublicKey.from_signature_and_message(\n                self.signature_bytes, self.rlp_signing_bytes().keccak256(), hasher=None\n            )\n            updated_values[\"sender\"] = Address(\n                keccak256(public_key.format(compressed=False)[1:])[32 - 20 :]\n            )\n            return self.copy(**updated_values)\n\n        if self.secret_key is None:\n            raise ValueError(\"secret_key must be set to sign a transaction\")\n\n        # Get the signing bytes\n        signing_hash = self.rlp_signing_bytes().keccak256()\n\n        # Sign the bytes\n        signature_bytes = PrivateKey(secret=self.secret_key).sign_recoverable(\n            signing_hash, hasher=None\n        )\n        public_key = PublicKey.from_signature_and_message(\n            signature_bytes, signing_hash, hasher=None\n        )\n\n        sender = keccak256(public_key.format(compressed=False)[1:])[32 - 20 :]\n        updated_values[\"sender\"] = Address(sender)\n\n        v, r, s = (\n            signature_bytes[64],\n            int.from_bytes(signature_bytes[0:32], byteorder=\"big\"),\n            int.from_bytes(signature_bytes[32:64], byteorder=\"big\"),\n        )\n        if self.ty == 0:\n            if self.protected:\n                v += 35 + (self.chain_id * 2)\n            else:  # not protected\n                v += 27\n\n        updated_values[\"v\"] = HexNumber(v)\n        updated_values[\"r\"] = HexNumber(r)\n        updated_values[\"s\"] = HexNumber(s)\n\n        updated_values[\"secret_key\"] = None\n\n        updated_tx: \"Transaction\" = self.model_copy(update=updated_values)\n\n        # Remove the secret key if requested\n        if keep_secret_key:\n            updated_tx.secret_key = self.secret_key\n        return updated_tx\n\n    def get_rlp_signing_fields(self) -> List[str]:\n        \"\"\"\n        Return the list of values included in the envelope used for signing\n        depending on the transaction type.\n        \"\"\"\n        field_list: List[str]\n        if self.ty == 6:\n            # EIP-7873: https://eips.ethereum.org/EIPS/eip-7873\n            field_list = [\n                \"chain_id\",\n                \"nonce\",\n                \"max_priority_fee_per_gas\",\n                \"max_fee_per_gas\",\n                \"gas_limit\",\n                \"to\",\n                \"value\",\n                \"data\",\n                \"access_list\",\n                \"initcodes\",\n            ]\n        elif self.ty == 4:\n            # EIP-7702: https://eips.ethereum.org/EIPS/eip-7702\n            field_list = [\n                \"chain_id\",\n                \"nonce\",\n                \"max_priority_fee_per_gas\",\n                \"max_fee_per_gas\",\n                \"gas_limit\",\n                \"to\",\n                \"value\",\n                \"data\",\n                \"access_list\",\n                \"authorization_list\",\n            ]\n        elif self.ty == 3:\n            # EIP-4844: https://eips.ethereum.org/EIPS/eip-4844\n            field_list = [\n                \"chain_id\",\n                \"nonce\",\n                \"max_priority_fee_per_gas\",\n                \"max_fee_per_gas\",\n                \"gas_limit\",\n                \"to\",\n                \"value\",\n                \"data\",\n                \"access_list\",\n                \"max_fee_per_blob_gas\",\n                \"blob_versioned_hashes\",\n            ]\n        elif self.ty == 2:\n            # EIP-1559: https://eips.ethereum.org/EIPS/eip-1559\n            field_list = [\n                \"chain_id\",\n                \"nonce\",\n                \"max_priority_fee_per_gas\",\n                \"max_fee_per_gas\",\n                \"gas_limit\",\n                \"to\",\n                \"value\",\n                \"data\",\n                \"access_list\",\n            ]\n        elif self.ty == 1:\n            # EIP-2930: https://eips.ethereum.org/EIPS/eip-2930\n            field_list = [\n                \"chain_id\",\n                \"nonce\",\n                \"gas_price\",\n                \"gas_limit\",\n                \"to\",\n                \"value\",\n                \"data\",\n                \"access_list\",\n            ]\n        elif self.ty == 0:\n            field_list = [\"nonce\", \"gas_price\", \"gas_limit\", \"to\", \"value\", \"data\"]\n            if self.protected:\n                # EIP-155: https://eips.ethereum.org/EIPS/eip-155\n                field_list.extend([\"chain_id\", \"zero\", \"zero\"])\n        else:\n            raise NotImplementedError(f\"signing for transaction type {self.ty} not implemented\")\n\n        for field in field_list:\n            if field != \"to\":\n                assert getattr(self, field) is not None, (\n                    f\"{field} must be set for type {self.ty} tx\"\n                )\n        return field_list\n\n    def get_rlp_fields(self) -> List[str]:\n        \"\"\"\n        Return the list of values included in the list used for rlp encoding\n        depending on the transaction type.\n        \"\"\"\n        fields = self.get_rlp_signing_fields()\n        if self.ty == 0 and self.protected:\n            fields = fields[:-3]\n        return fields + [\"v\", \"r\", \"s\"]\n\n    def get_rlp_prefix(self) -> bytes:\n        \"\"\"\n        Return the transaction type as bytes to be appended at the beginning of\n        the serialized transaction if type is not 0.\n        \"\"\"\n        if self.ty > 0:\n            return bytes([self.ty])\n        return b\"\"\n\n    def get_rlp_signing_prefix(self) -> bytes:\n        \"\"\"\n        Return the transaction type as bytes to be appended at the beginning of\n        the serialized transaction signing envelope if type is not 0.\n        \"\"\"\n        if self.ty > 0:\n            return bytes([self.ty])\n        return b\"\"\n\n    def metadata_string(self) -> str | None:\n        \"\"\"Return the metadata field as a formatted json string or None.\"\"\"\n        if self.metadata is None:\n            return None\n        return self.metadata.to_json()\n\n    @cached_property\n    def hash(self) -> Hash:\n        \"\"\"Returns hash of the transaction.\"\"\"\n        return self.rlp().keccak256()\n\n    @cached_property\n    def serializable_list(self) -> Any:\n        \"\"\"\n        Return list of values included in the transaction as a serializable\n        object.\n        \"\"\"\n        return self.rlp() if self.ty > 0 else self.to_list(signing=False)\n\n    @staticmethod\n    def list_root(input_txs: List[\"Transaction\"]) -> Hash:\n        \"\"\"Return transactions root of a list of transactions.\"\"\"\n        t = HexaryTrie(db={})\n        for i, tx in enumerate(input_txs):\n            t.set(eth_rlp.encode(Uint(i)), tx.rlp())\n        return Hash(t.root_hash)\n\n    @staticmethod\n    def list_blob_versioned_hashes(input_txs: List[\"Transaction\"]) -> List[Hash]:\n        \"\"\"\n        Get list of ordered blob versioned hashes from a list of transactions.\n        \"\"\"\n        return [\n            blob_versioned_hash\n            for tx in input_txs\n            if tx.blob_versioned_hashes is not None\n            for blob_versioned_hash in tx.blob_versioned_hashes\n        ]\n\n    @cached_property\n    def created_contract(self) -> Address:\n        \"\"\"Return address of the contract created by the transaction.\"\"\"\n        if self.to is not None:\n            raise ValueError(\"transaction is not a contract creation\")\n        if self.sender is None:\n            raise ValueError(\"sender address is None\")\n        hash_bytes = Bytes(eth_rlp.encode([self.sender, int_to_bytes(self.nonce)])).keccak256()\n        return Address(hash_bytes[-20:])\n\n\nclass NetworkWrappedTransaction(CamelModel, RLPSerializable):\n    \"\"\"\n    Network wrapped transaction as defined in\n    [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844#networking).\n\n    < Osaka: rlp([tx_payload_body, blobs, commitments, proofs])\n\n    >= Osaka: rlp([tx_payload_body, wrapper_version,  blobs, commitments,\n                   cell_proofs])\n    \"\"\"\n\n    tx: Transaction\n    blob_objects: Sequence[Blob]\n    wrapper_version: int | None = None  # only exists in >= osaka\n\n    @computed_field  # type: ignore[prop-decorator]\n    @property\n    def blobs(self) -> Sequence[Bytes]:\n        \"\"\"Return a list of blob data as bytes.\"\"\"\n        return [blob.data for blob in self.blob_objects]\n\n    @computed_field  # type: ignore[prop-decorator]\n    @property\n    def commitments(self) -> Sequence[Bytes]:\n        \"\"\"Return a list of kzg commitments.\"\"\"\n        return [blob.commitment for blob in self.blob_objects]\n\n    @computed_field  # type: ignore[prop-decorator]\n    @property\n    def proofs(self) -> Sequence[Bytes] | None:\n        \"\"\"Return a list of kzg proofs (returns None >= Osaka).\"\"\"\n        if self.wrapper_version is not None:\n            return None\n\n        proofs: list[Bytes] = []\n        for blob in self.blob_objects:\n            assert isinstance(blob.proof, Bytes)\n            proofs.append(blob.proof)\n\n        return proofs\n\n    @computed_field  # type: ignore[prop-decorator]\n    @property\n    def cell_proofs(self) -> Sequence[Bytes] | None:\n        \"\"\"Return a list of cells (returns None < Osaka).\"\"\"\n        if self.wrapper_version is None:\n            return None\n\n        cells: list[Bytes] = []\n        for blob in self.blob_objects:\n            assert isinstance(blob.proof, list)\n            cells.extend(blob.proof)\n\n        return cells\n\n    def get_rlp_fields(self) -> List[str]:\n        \"\"\"\n        Return an ordered list of field names to be included in RLP\n        serialization.\n\n        Function can be overridden to customize the logic to return the fields.\n\n        By default, rlp_fields class variable is used.\n\n        The list can be nested list up to one extra level to represent nested\n        fields.\n        \"\"\"\n        # only put a wrapper_version field for >=osaka (value 1), otherwise\n        # omit field\n        wrapper = []\n        if self.wrapper_version is not None:\n            wrapper = [\"wrapper_version\"]\n\n        rlp_proofs: list[str] = []\n        if self.proofs is not None:\n            rlp_proofs = [\"proofs\"]\n\n        rlp_cell_proofs: list[str] = []\n        if self.cell_proofs is not None:\n            rlp_cell_proofs = [\"cell_proofs\"]\n\n        rlp_fields: List[str] = [  # structure explained in\n            # https://eips.ethereum.org/EIPS/eip-7594#Networking\n            \"tx\",  # tx_payload_body\n            *wrapper,  # wrapper_version, which is always 1 for osaka (was non-\n            # existing before)\n            \"blobs\",  # Blob.data\n            \"commitments\",\n            *rlp_proofs,\n            *rlp_cell_proofs,\n        ]\n\n        assert (\"proofs\" in rlp_fields) or (\"cell_proofs\" in rlp_fields), (\n            \"Neither proofs nor cell_proofs are in rlp_fields. Critical error!\"\n        )\n\n        # logger.debug(f\"Ended up with this rlp field list: {rlp_fields}\")\n\n        return rlp_fields\n\n    def get_rlp_prefix(self) -> bytes:\n        \"\"\"\n        Return the transaction type as bytes to be appended at the beginning of\n        the serialized transaction if type is not 0.\n        \"\"\"\n        if self.tx.ty > 0:\n            return bytes([self.tx.ty])\n        return b\"\"\n"
  },
  {
    "path": "src/ethereum_test_types/trie.py",
    "content": "\"\"\"\nThe state trie is the structure responsible for storing.\n\"\"\"\n\nimport copy\nfrom dataclasses import dataclass, field\nfrom typing import (\n    Callable,\n    Dict,\n    Generic,\n    List,\n    Mapping,\n    MutableMapping,\n    Optional,\n    Sequence,\n    Tuple,\n    TypeVar,\n    cast,\n)\n\nfrom Crypto.Hash import keccak\nfrom ethereum_rlp import Extended, rlp\nfrom ethereum_types.bytes import Bytes, Bytes20, Bytes32\nfrom ethereum_types.frozen import slotted_freezable\nfrom ethereum_types.numeric import U256, Uint\nfrom typing_extensions import assert_type\n\n\n@slotted_freezable\n@dataclass\nclass FrontierAccount:\n    \"\"\"State associated with an address.\"\"\"\n\n    nonce: Uint\n    balance: U256\n    code: Bytes\n\n\ndef keccak256(buffer: Bytes) -> Bytes32:\n    \"\"\"Compute the keccak256 hash of the input `buffer`.\"\"\"\n    k = keccak.new(digest_bits=256)\n    return Bytes32(k.update(buffer).digest())\n\n\ndef encode_account(raw_account_data: FrontierAccount, storage_root: Bytes) -> Bytes:\n    \"\"\"\n    Encode `Account` dataclass.\n\n    Storage is not stored in the `Account` dataclass, so `Accounts` cannot be\n    encoded without providing a storage root.\n    \"\"\"\n    return rlp.encode(\n        (\n            raw_account_data.nonce,\n            raw_account_data.balance,\n            storage_root,\n            keccak256(raw_account_data.code),\n        )\n    )\n\n\n# note: an empty trie (regardless of whether it is secured) has root:\n# keccak256(RLP(b'')) ==\n# 56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421\n# also:\n# keccak256(RLP(())) ==\n# 1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347\n# which is the sha3Uncles hash in block header with no uncles\nEMPTY_TRIE_ROOT = Bytes32(\n    bytes.fromhex(\"56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421\")\n)\n\nNode = FrontierAccount | Bytes | Uint | U256 | None\nK = TypeVar(\"K\", bound=Bytes)\nV = TypeVar(\n    \"V\",\n    Optional[FrontierAccount],\n    Bytes,\n    Uint,\n    U256,\n)\n\n\n@slotted_freezable\n@dataclass\nclass LeafNode:\n    \"\"\"Leaf node in the Merkle Trie.\"\"\"\n\n    rest_of_key: Bytes\n    value: Extended\n\n\n@slotted_freezable\n@dataclass\nclass ExtensionNode:\n    \"\"\"Extension node in the Merkle Trie.\"\"\"\n\n    key_segment: Bytes\n    subnode: Extended\n\n\nBranchSubnodes = Tuple[\n    Extended,\n    Extended,\n    Extended,\n    Extended,\n    Extended,\n    Extended,\n    Extended,\n    Extended,\n    Extended,\n    Extended,\n    Extended,\n    Extended,\n    Extended,\n    Extended,\n    Extended,\n    Extended,\n]\n\n\n@slotted_freezable\n@dataclass\nclass BranchNode:\n    \"\"\"Branch node in the Merkle Trie.\"\"\"\n\n    subnodes: BranchSubnodes\n    value: Extended\n\n\nInternalNode = LeafNode | ExtensionNode | BranchNode\n\n\ndef encode_internal_node(node: Optional[InternalNode]) -> Extended:\n    \"\"\"\n    Encode a Merkle Trie node into its RLP form.\n\n    The RLP will then be serialized into a `Bytes` and hashed unless it is less\n    that 32 bytes when serialized.\n\n    This function also accepts `None`, representing the absence of a node,\n    which is encoded to `b\"\"`.\n    \"\"\"\n    unencoded: Extended\n    match node:\n        case None:\n            unencoded = b\"\"\n        case LeafNode():\n            unencoded = (\n                nibble_list_to_compact(node.rest_of_key, True),\n                node.value,\n            )\n        case ExtensionNode():\n            unencoded = (\n                nibble_list_to_compact(node.key_segment, False),\n                node.subnode,\n            )\n        case BranchNode():\n            unencoded = list(node.subnodes) + [node.value]\n        case _:\n            raise AssertionError(f\"Invalid internal node type {type(node)}!\")\n\n    encoded = rlp.encode(unencoded)\n    if len(encoded) < 32:\n        return unencoded\n    else:\n        return keccak256(encoded)\n\n\ndef encode_node(node: Node, storage_root: Optional[Bytes] = None) -> Bytes:\n    \"\"\"\n    Encode a Node for storage in the Merkle Trie.\n\n    Currently mostly an unimplemented stub.\n    \"\"\"\n    match node:\n        case FrontierAccount():\n            assert storage_root is not None\n            return encode_account(node, storage_root)\n        case U256():\n            return rlp.encode(node)\n        case Bytes():\n            return node\n        case _:\n            raise AssertionError(f\"encoding for {type(node)} is not currently implemented\")\n\n\n@dataclass(slots=True)\nclass Trie(Generic[K, V]):\n    \"\"\"The Merkle Trie.\"\"\"\n\n    secured: bool\n    default: V\n    _data: Dict[K, V] = field(default_factory=dict)\n\n\ndef copy_trie(trie: Trie[K, V]) -> Trie[K, V]:\n    \"\"\"\n    Create a copy of `trie`. Since only frozen objects may be stored in tries,\n    the contents are reused.\n    \"\"\"\n    return Trie(trie.secured, trie.default, copy.copy(trie._data))\n\n\ndef trie_set(trie: Trie[K, V], key: K, value: V) -> None:\n    \"\"\"\n    Store an item in a Merkle Trie.\n\n    This method deletes the key if `value == trie.default`, because the Merkle\n    Trie represents the default value by omitting it from the trie.\n    \"\"\"\n    if value == trie.default:\n        if key in trie._data:\n            del trie._data[key]\n    else:\n        trie._data[key] = value\n\n\ndef trie_get(trie: Trie[K, V], key: K) -> V:\n    \"\"\"\n    Get an item from the Merkle Trie.\n\n    This method returns `trie.default` if the key is missing.\n    \"\"\"\n    return trie._data.get(key, trie.default)\n\n\ndef common_prefix_length(a: Sequence, b: Sequence) -> int:\n    \"\"\"Find the longest common prefix of two sequences.\"\"\"\n    for i in range(len(a)):\n        if i >= len(b) or a[i] != b[i]:\n            return i\n    return len(a)\n\n\ndef nibble_list_to_compact(x: Bytes, is_leaf: bool) -> Bytes:\n    \"\"\"\n    Compresses nibble-list into a standard byte array with a flag.\n\n    A nibble-list is a list of byte values no greater than `15`. The flag is\n    encoded in high nibble of the highest byte. The flag nibble can be broken\n    down into two two-bit flags.\n\n    Highest nibble::\n\n    +---+---+----------+--------+\n    | _ | _ | is_leaf  | parity |\n    +---+---+----------+--------+\n      3   2      1         0\n\n    The lowest bit of the nibble encodes the parity of the length of the\n    remaining nibbles -- `0` when even and `1` when odd. The second lowest bit\n    is used to distinguish leaf and extension nodes. The other two bits are not\n    used.\n    \"\"\"\n    compact = bytearray()\n\n    if len(x) % 2 == 0:  # ie even length\n        compact.append(16 * (2 * is_leaf))\n        for i in range(0, len(x), 2):\n            compact.append(16 * x[i] + x[i + 1])\n    else:\n        compact.append(16 * ((2 * is_leaf) + 1) + x[0])\n        for i in range(1, len(x), 2):\n            compact.append(16 * x[i] + x[i + 1])\n\n    return Bytes(compact)\n\n\ndef bytes_to_nibble_list(bytes_: Bytes) -> Bytes:\n    \"\"\"\n    Convert a `Bytes` into to a sequence of nibbles (bytes with value < 16).\n    \"\"\"\n    nibble_list = bytearray(2 * len(bytes_))\n    for byte_index, byte in enumerate(bytes_):\n        nibble_list[byte_index * 2] = (byte & 0xF0) >> 4\n        nibble_list[byte_index * 2 + 1] = byte & 0x0F\n    return Bytes(nibble_list)\n\n\ndef _prepare_trie(\n    trie: Trie[K, V],\n    get_storage_root: Optional[Callable[[Bytes20], Bytes32]] = None,\n) -> Mapping[Bytes, Bytes]:\n    \"\"\"\n    Prepare the trie for root calculation. Removes values that are empty,\n    hashes the keys (if `secured == True`) and encodes all the nodes.\n    \"\"\"\n    mapped: MutableMapping[Bytes, Bytes] = {}\n\n    for preimage, value in trie._data.items():\n        if isinstance(value, FrontierAccount):\n            assert get_storage_root is not None\n            address = Bytes20(preimage)\n            encoded_value = encode_node(value, get_storage_root(address))\n        else:\n            encoded_value = encode_node(value)\n        if encoded_value == b\"\":\n            raise AssertionError\n        key: Bytes\n        if trie.secured:\n            # \"secure\" tries hash keys once before construction\n            key = keccak256(preimage)\n        else:\n            key = preimage\n        mapped[bytes_to_nibble_list(key)] = encoded_value\n\n    return mapped\n\n\ndef root(\n    trie: Trie[K, V],\n    get_storage_root: Optional[Callable[[Bytes20], Bytes32]] = None,\n) -> Bytes32:\n    \"\"\"Compute the root of a modified merkle patricia trie (MPT).\"\"\"\n    obj = _prepare_trie(trie, get_storage_root)\n\n    root_node = encode_internal_node(patricialize(obj, Uint(0)))\n    if len(rlp.encode(root_node)) < 32:\n        return keccak256(rlp.encode(root_node))\n    else:\n        assert isinstance(root_node, Bytes)\n        return Bytes32(root_node)\n\n\ndef patricialize(obj: Mapping[Bytes, Bytes], level: Uint) -> Optional[InternalNode]:\n    \"\"\"\n    Structural composition function.\n\n    Used to recursively patricialize and merkleize a dictionary. Includes\n    memoization of the tree structure and hashes.\n    \"\"\"\n    if len(obj) == 0:\n        return None\n\n    arbitrary_key = next(iter(obj))\n\n    # if leaf node\n    if len(obj) == 1:\n        leaf = LeafNode(arbitrary_key[level:], obj[arbitrary_key])\n        return leaf\n\n    # prepare for extension node check by finding max j such that all keys in\n    # obj have the same key[i:j]\n    substring = arbitrary_key[level:]\n    prefix_length = len(substring)\n    for key in obj:\n        prefix_length = min(prefix_length, common_prefix_length(substring, key[level:]))\n\n        # finished searching, found another key at the current level\n        if prefix_length == 0:\n            break\n\n    # if extension node\n    if prefix_length > 0:\n        prefix = arbitrary_key[int(level) : int(level) + prefix_length]\n        return ExtensionNode(\n            prefix,\n            encode_internal_node(patricialize(obj, level + Uint(prefix_length))),\n        )\n\n    branches: List[MutableMapping[Bytes, Bytes]] = []\n    for _ in range(16):\n        branches.append({})\n    value = b\"\"\n    for key in obj:\n        if len(key) == level:\n            # shouldn't ever have an account or receipt in an internal node\n            if isinstance(obj[key], (FrontierAccount, Uint)):\n                raise AssertionError\n            value = obj[key]\n        else:\n            branches[key[level]][key] = obj[key]\n\n    subnodes = tuple(\n        encode_internal_node(patricialize(branches[k], level + Uint(1))) for k in range(16)\n    )\n    return BranchNode(\n        cast(BranchSubnodes, assert_type(subnodes, Tuple[Extended, ...])),\n        value,\n    )\n"
  },
  {
    "path": "src/ethereum_test_types/utils.py",
    "content": "\"\"\"Utility functions and sentinel classes for Ethereum test types.\"\"\"\n\nfrom typing import Any\n\nfrom ethereum_test_base_types import Bytes, Hash\n\n\ndef keccak256(data: bytes) -> Hash:\n    \"\"\"Calculate keccak256 hash of the given data.\"\"\"\n    return Bytes(data).keccak256()\n\n\ndef int_to_bytes(value: int) -> bytes:\n    \"\"\"Convert integer to its big-endian representation.\"\"\"\n    if value == 0:\n        return b\"\"\n\n    return int_to_bytes(value // 256) + bytes([value % 256])\n\n\n# Sentinel classes\nclass Removable:\n    \"\"\"\n    Sentinel class to detect if a parameter should be removed.\n    (`None` normally means \"do not modify\").\n    \"\"\"\n\n    def __eq__(self, other: Any) -> bool:\n        \"\"\"Return True for all Removable.\"\"\"\n        if not isinstance(other, Removable):\n            return NotImplemented\n        return True\n"
  },
  {
    "path": "src/ethereum_test_vm/__init__.py",
    "content": "\"\"\"Ethereum Virtual Machine related definitions and utilities.\"\"\"\n\nfrom .bytecode import Bytecode\nfrom .evm_types import EVMCodeType\nfrom .helpers import MemoryVariable, call_return_code\nfrom .opcodes import Macro, Macros, Opcode, OpcodeCallArg, Opcodes, UndefinedOpcodes\n\n__all__ = (\n    \"Bytecode\",\n    \"EVMCodeType\",\n    \"Macro\",\n    \"Macros\",\n    \"MemoryVariable\",\n    \"Opcode\",\n    \"OpcodeCallArg\",\n    \"Opcodes\",\n    \"UndefinedOpcodes\",\n    \"call_return_code\",\n)\n"
  },
  {
    "path": "src/ethereum_test_vm/bytecode.py",
    "content": "\"\"\"Ethereum Virtual Machine bytecode primitives and utilities.\"\"\"\n\nfrom typing import Any, Self, SupportsBytes\n\nfrom pydantic import GetCoreSchemaHandler\nfrom pydantic_core.core_schema import (\n    PlainValidatorFunctionSchema,\n    no_info_plain_validator_function,\n    plain_serializer_function_ser_schema,\n)\n\nfrom ethereum_test_base_types import Bytes, Hash\n\n\nclass Bytecode:\n    \"\"\"\n    Base class to represent EVM bytecode.\n\n    Stack calculations are automatically done after an addition operation\n    between two bytecode objects. The stack height is not guaranteed to be\n    correct, so the user must take this into consideration.\n\n    Parameters\n    ----------\n    - popped_stack_items: number of items the bytecode pops from the stack\n    - pushed_stack_items: number of items the bytecode pushes to the stack\n    - min_stack_height: minimum stack height required by the bytecode\n    - max_stack_height: maximum stack height reached by the bytecode\n\n    \"\"\"\n\n    _name_: str = \"\"\n    _bytes_: bytes\n\n    popped_stack_items: int\n    pushed_stack_items: int\n    max_stack_height: int\n    min_stack_height: int\n\n    terminating: bool\n\n    def __new__(\n        cls,\n        bytes_or_byte_code_base: \"bytes | Bytecode | None\" = None,\n        *,\n        popped_stack_items: int | None = None,\n        pushed_stack_items: int | None = None,\n        max_stack_height: int | None = None,\n        min_stack_height: int | None = None,\n        terminating: bool = False,\n        name: str = \"\",\n    ) -> Self:\n        \"\"\"Create new opcode instance.\"\"\"\n        if bytes_or_byte_code_base is None:\n            instance = super().__new__(cls)\n            instance._bytes_ = b\"\"\n            instance.popped_stack_items = 0\n            instance.pushed_stack_items = 0\n            instance.min_stack_height = 0\n            instance.max_stack_height = 0\n            instance.terminating = False\n            instance._name_ = name\n            return instance\n\n        if isinstance(bytes_or_byte_code_base, Bytecode):\n            # Required because Enum class calls the base class with the\n            # instantiated object as parameter.\n            obj = super().__new__(cls)\n            obj._bytes_ = bytes_or_byte_code_base._bytes_\n            obj.popped_stack_items = bytes_or_byte_code_base.popped_stack_items\n            obj.pushed_stack_items = bytes_or_byte_code_base.pushed_stack_items\n            obj.min_stack_height = bytes_or_byte_code_base.min_stack_height\n            obj.max_stack_height = bytes_or_byte_code_base.max_stack_height\n            obj.terminating = bytes_or_byte_code_base.terminating\n            obj._name_ = bytes_or_byte_code_base._name_\n            return obj\n\n        if isinstance(bytes_or_byte_code_base, bytes):\n            obj = super().__new__(cls)\n            obj._bytes_ = bytes_or_byte_code_base\n            assert popped_stack_items is not None\n            assert pushed_stack_items is not None\n            obj.popped_stack_items = popped_stack_items\n            obj.pushed_stack_items = pushed_stack_items\n            if min_stack_height is None:\n                obj.min_stack_height = obj.popped_stack_items\n            else:\n                obj.min_stack_height = min_stack_height\n            if max_stack_height is None:\n                obj.max_stack_height = max(obj.popped_stack_items, obj.pushed_stack_items)\n            else:\n                obj.max_stack_height = max_stack_height\n            obj.terminating = terminating\n            obj._name_ = name\n            return obj\n\n        raise TypeError(\"Bytecode constructor '__new__' didn't return an instance!\")\n\n    def __bytes__(self) -> bytes:\n        \"\"\"Return the opcode byte representation.\"\"\"\n        return self._bytes_\n\n    def __len__(self) -> int:\n        \"\"\"Return the length of the opcode byte representation.\"\"\"\n        return len(self._bytes_)\n\n    def __str__(self) -> str:\n        \"\"\"Return the name of the opcode, assigned at Enum creation.\"\"\"\n        return self._name_\n\n    def __eq__(self, other: object) -> bool:\n        \"\"\"\n        Allow comparison between Bytecode instances and bytes objects.\n\n        Raises:\n          - NotImplementedError: if the comparison is not between an\n                                 Bytecode or a bytes object.\n\n        \"\"\"\n        if isinstance(other, Bytecode):\n            return (\n                bytes(self) == bytes(other)\n                and self.popped_stack_items == other.popped_stack_items\n                and self.pushed_stack_items == other.pushed_stack_items\n                and self.max_stack_height == other.max_stack_height\n                and self.min_stack_height == other.min_stack_height\n            )\n        if isinstance(other, SupportsBytes) or isinstance(other, bytes):\n            return bytes(self) == bytes(other)\n        raise NotImplementedError(f\"Unsupported type for comparison: {type(other)}\")\n\n    def __hash__(self) -> int:\n        \"\"\"Return the hash of the bytecode representation.\"\"\"\n        return hash(\n            (\n                bytes(self),\n                self.popped_stack_items,\n                self.pushed_stack_items,\n                self.max_stack_height,\n                self.min_stack_height,\n            )\n        )\n\n    def __add__(self, other: \"Bytecode | bytes | int | None\") -> \"Bytecode\":\n        \"\"\"\n        Concatenate the bytecode representation with another bytecode object.\n        \"\"\"\n        if other is None or (isinstance(other, int) and other == 0):\n            # Edge case for sum() function\n            return self\n\n        if isinstance(other, bytes):\n            c = Bytecode(self)\n            c._bytes_ += other\n            c._name_ = \"\"\n            return c\n\n        assert isinstance(other, Bytecode), \"Can only concatenate Bytecode instances\"\n        # Figure out the stack height after executing the two opcodes.\n        a_pop, a_push = self.popped_stack_items, self.pushed_stack_items\n        a_min, a_max = self.min_stack_height, self.max_stack_height\n        b_pop, b_push = other.popped_stack_items, other.pushed_stack_items\n        b_min, b_max = other.min_stack_height, other.max_stack_height\n\n        # NOTE: \"_pop\" is understood as the number of elements required by an\n        # instruction or bytecode to be popped off the stack before it starts\n        # returning (pushing).\n\n        # Auxiliary variables representing \"stages\" of the execution of\n        # `c = a + b` bytecode: Assume starting point 0 as reference:\n        a_start = 0\n        # A (potentially) pops some elements and reaches its \"bottom\", might be\n        # negative:\n        a_bottom = a_start - a_pop\n        # After this A pushes some elements, then B pops and reaches its\n        # \"bottom\":\n        b_bottom = a_bottom + a_push - b_pop\n\n        # C's bottom is either at the bottom of A or B:\n        c_bottom = min(a_bottom, b_bottom)\n        if c_bottom == a_bottom:\n            # C pops the same as A to reach its bottom, then the rest of A and\n            # B are C's \"push\"\n            c_pop = a_pop\n            c_push = a_push - b_pop + b_push\n        else:\n            # A and B are C's \"pop\" to reach its bottom, then pushes the same\n            # as B\n            c_pop = a_pop - a_push + b_pop\n            c_push = b_push\n\n        # C's minimum required stack is either A's or B's shifted by the net\n        # stack balance of A\n        c_min = max(a_min, b_min + a_pop - a_push)\n\n        # C starts from c_min, then reaches max either in the spot where A\n        # reached a_max or in the spot where B reached b_max, after A had\n        # completed.\n        c_max = max(c_min + a_max - a_min, c_min - a_pop + a_push + b_max - b_min)\n\n        return Bytecode(\n            bytes(self) + bytes(other),\n            popped_stack_items=c_pop,\n            pushed_stack_items=c_push,\n            min_stack_height=c_min,\n            max_stack_height=c_max,\n            terminating=other.terminating,\n        )\n\n    def __radd__(self, other: \"Bytecode | int | None\") -> \"Bytecode\":\n        \"\"\"\n        Concatenate the opcode byte representation with another bytes object.\n        \"\"\"\n        if other is None or (isinstance(other, int) and other == 0):\n            # Edge case for sum() function\n            return self\n        assert isinstance(other, Bytecode), \"Can only concatenate Bytecode instances\"\n        return other.__add__(self)\n\n    def __mul__(self, other: int) -> \"Bytecode\":\n        \"\"\"\n        Concatenate another bytes object with the opcode byte representation.\n        \"\"\"\n        if other < 0:\n            raise ValueError(\"Cannot multiply by a negative number\")\n        if other == 0:\n            return Bytecode()\n        output = self\n        for _ in range(other - 1):\n            output += self\n        return output\n\n    def hex(self) -> str:\n        \"\"\"\n        Return the hexadecimal representation of the opcode byte\n        representation.\n        \"\"\"\n        return bytes(self).hex()\n\n    def keccak256(self) -> Hash:\n        \"\"\"Return the keccak256 hash of the opcode byte representation.\"\"\"\n        return Bytes(self._bytes_).keccak256()\n\n    @classmethod\n    def __get_pydantic_core_schema__(\n        cls, source_type: Any, handler: GetCoreSchemaHandler\n    ) -> PlainValidatorFunctionSchema:\n        \"\"\"\n        Provide Pydantic core schema for Bytecode\n        serialization and validation.\n        \"\"\"\n        return no_info_plain_validator_function(\n            cls,\n            serialization=plain_serializer_function_ser_schema(\n                lambda bytecode: \"0x\" + bytecode.hex(),\n                info_arg=False,\n            ),\n        )\n"
  },
  {
    "path": "src/ethereum_test_vm/evm_types.py",
    "content": "\"\"\"EVM types definitions.\"\"\"\n\nfrom enum import Enum\n\n\nclass EVMCodeType(str, Enum):\n    \"\"\"\n    Enum representing the type of EVM code that is supported in a given fork.\n    \"\"\"\n\n    LEGACY = \"legacy\"\n    EOF_V1 = \"eof_v1\"\n\n    def __str__(self) -> str:\n        \"\"\"Return the name of the EVM code type.\"\"\"\n        return self.name\n"
  },
  {
    "path": "src/ethereum_test_vm/helpers.py",
    "content": "\"\"\"Helper functions for the EVM.\"\"\"\n\nfrom .bytecode import Bytecode\nfrom .opcodes import Opcodes as Op\n\n\nclass MemoryVariable(Bytecode):\n    \"\"\"\n    Variable abstraction to help keep track values that are stored in memory.\n\n    To use, simply declare a variable with an unique offset that is not used\n    by any other variable.\n\n    The variable then can be used in-place to read the value from memory:\n\n    ```python\n    v = MemoryVariable(128)\n\n    bytecode = Op.ADD(v, Op.CALLDATASIZE())\n    ```\n\n    The previous example is equivalent to:\n\n    ```python\n    bytecode = Op.ADD(Op.MLOAD(offset=128), Op.CALLDATASIZE())\n    ```\n\n    The variable also contains methods to add and subtract values from the\n    memory offset.\n\n    ```python\n    v = MemoryVariable(128)\n\n    bytecode = (\n        v.set(0xff)\n        + v.add(1)\n        + v.return_value()\n    )\n    ```\n\n    The previous example is equivalent to:\n\n    ```python\n    bytecode = (\n        Op.MSTORE(offset=128, value=0xff)\n        + Op.MSTORE(offset=128, value=Op.ADD(Op.MLOAD(offset=128), 1))\n        + Op.RETURN(offset=128, size=32)\n    )\n    ```\n\n    \"\"\"\n\n    offset: int\n\n    def __new__(cls, offset: int) -> \"MemoryVariable\":\n        \"\"\"\n        Instantiate a new EVM memory variable.\n\n        When used with normal bytecode, this class simply returns the MLOAD\n        with the provided offset.\n        \"\"\"\n        instance = super().__new__(cls, Op.MLOAD(offset=offset))\n        instance.offset = offset\n        return instance\n\n    def set(self, value: int | Bytecode) -> Bytecode:\n        \"\"\"Set the given value at the memory location of this variable.\"\"\"\n        return Op.MSTORE(offset=self.offset, value=value)\n\n    def add(self, value: int | Bytecode) -> Bytecode:\n        \"\"\"In-place add the given value to the one currently in memory.\"\"\"\n        return Op.MSTORE(offset=self.offset, value=Op.ADD(Op.MLOAD(offset=self.offset), value))\n\n    def sub(self, value: int | Bytecode) -> Bytecode:\n        \"\"\"\n        In-place subtract the given value from the one currently\n        in memory.\n        \"\"\"\n        return Op.MSTORE(offset=self.offset, value=Op.SUB(Op.MLOAD(offset=self.offset), value))\n\n    def store_value(self, key: int | Bytecode) -> Bytecode:\n        \"\"\"Op.SSTORE the value that is currently in memory.\"\"\"\n        return Op.SSTORE(key, Op.MLOAD(offset=self.offset))\n\n    def return_value(self) -> Bytecode:\n        \"\"\"Op.RETURN the value that is currently in memory.\"\"\"\n        return Op.RETURN(offset=self.offset, size=32)\n\n\ndef call_return_code(opcode: Op, success: bool, *, revert: bool = False) -> int:\n    \"\"\"Return return code for a CALL operation.\"\"\"\n    if opcode in [Op.CALL, Op.CALLCODE, Op.DELEGATECALL, Op.STATICCALL]:\n        return int(success)\n    elif opcode in [Op.EXTCALL, Op.EXTDELEGATECALL, Op.EXTSTATICCALL]:\n        if success:\n            return 0\n        if revert:\n            return 1\n        return 2\n    raise ValueError(f\"Not a call opcode: {opcode}\")\n"
  },
  {
    "path": "src/ethereum_test_vm/opcodes.py",
    "content": "\"\"\"\nEthereum Virtual Machine opcode definitions.\n\nAcknowledgments: The individual opcode documentation below is due to the work\nby [smlXL](https://github.com/smlxl) on [evm.codes](https://www.evm.codes/),\navailable as open source [github.com/smlxl/\nevm.codes](https://github.com/smlxl/evm.codes) - thank you! And thanks\nto @ThreeHrSleep for integrating it in the docstrings.\n\"\"\"\n\nfrom enum import Enum\nfrom typing import Any, Callable, Iterable, List, Mapping, Optional, SupportsBytes\n\nfrom ethereum_test_base_types import to_bytes\n\nfrom .bytecode import Bytecode\n\n\ndef _get_int_size(n: int) -> int:\n    \"\"\"Return size of an integer in bytes.\"\"\"\n    if n < 0:\n        # Negative numbers in the EVM are represented as two's complement\n        # of 32 bytes\n        return 32\n    byte_count = 0\n    while n:\n        byte_count += 1\n        n >>= 8\n    return byte_count\n\n\nKW_ARGS_DEFAULTS_TYPE = Mapping[str, \"int | bytes | str | Opcode | Bytecode\"]\n\n\ndef _stack_argument_to_bytecode(\n    arg: \"int | bytes | SupportsBytes | str | Opcode | Bytecode | Iterable[int]\",\n) -> Bytecode:\n    \"\"\"Convert stack argument in an opcode or macro to bytecode.\"\"\"\n    if isinstance(arg, Bytecode):\n        return arg\n\n    # We are going to push a constant to the stack.\n    data_size = 0\n    if isinstance(arg, int):\n        signed = arg < 0\n        data_size = _get_int_size(arg)\n        if data_size > 32:\n            raise ValueError(\"Opcode stack data must be less than 32 bytes\")\n        elif data_size == 0:\n            # Pushing 0 is done with the PUSH1 opcode\n            # for compatibility reasons.\n            data_size = 1\n        arg = arg.to_bytes(\n            length=data_size,\n            byteorder=\"big\",\n            signed=signed,\n        )\n    else:\n        arg = to_bytes(arg).lstrip(b\"\\0\")  # type: ignore\n        if arg == b\"\":\n            # Pushing 0 is done with the PUSH1 opcode for\n            # compatibility reasons.\n            arg = b\"\\x00\"\n        data_size = len(arg)\n\n    assert isinstance(arg, bytes)\n    assert data_size > 0\n    new_opcode = _push_opcodes_byte_list[data_size - 1][arg]\n    return new_opcode\n\n\nclass Opcode(Bytecode):\n    \"\"\"\n    Represents a single Opcode instruction in the EVM, with extra\n    metadata useful to parametrize tests.\n\n    Parameters\n    ----------\n    - data_portion_length: number of bytes after the opcode in the bytecode\n        that represent data\n    - data_portion_formatter: function to format the data portion of the\n        opcode, if any\n    - stack_properties_modifier: function to modify the stack properties of\n    the opcode after the data portion has been processed\n    - kwargs: list of keyword arguments that can be passed to the opcode,\n    in the order they are meant to be placed in the stack\n    - kwargs_defaults: default values for the keyword arguments if any,\n    otherwise 0\n    - unchecked_stack: whether the bytecode should ignore stack checks\n    when being called\n\n    \"\"\"\n\n    data_portion_length: int\n    data_portion_formatter: Optional[Callable[[Any], bytes]]\n    stack_properties_modifier: Optional[Callable[[Any], tuple[int, int, int, int]]]\n    kwargs: List[str]\n    kwargs_defaults: KW_ARGS_DEFAULTS_TYPE\n    unchecked_stack: bool = False\n\n    def __new__(\n        cls,\n        opcode_or_byte: \"int | bytes | Opcode\",\n        *,\n        popped_stack_items: int = 0,\n        pushed_stack_items: int = 0,\n        max_stack_height: int | None = None,\n        min_stack_height: int | None = None,\n        data_portion_length: int = 0,\n        data_portion_formatter: Any = None,\n        stack_properties_modifier: Any = None,\n        unchecked_stack: bool = False,\n        terminating: bool = False,\n        kwargs: List[str] | None = None,\n        kwargs_defaults: Optional[KW_ARGS_DEFAULTS_TYPE] = None,\n    ) -> \"Opcode\":\n        \"\"\"Create new opcode instance.\"\"\"\n        if kwargs_defaults is None:\n            kwargs_defaults = {}\n        if type(opcode_or_byte) is Opcode:\n            # Required because Enum class calls the base class\n            # with the instantiated object as parameter.\n            return opcode_or_byte\n        elif isinstance(opcode_or_byte, int) or isinstance(opcode_or_byte, bytes):\n            obj_bytes = (\n                bytes([opcode_or_byte]) if isinstance(opcode_or_byte, int) else opcode_or_byte\n            )\n            if min_stack_height is None:\n                min_stack_height = popped_stack_items\n            if max_stack_height is None:\n                max_stack_height = max(\n                    min_stack_height - popped_stack_items + pushed_stack_items, min_stack_height\n                )\n            obj = super().__new__(\n                cls,\n                obj_bytes,\n                popped_stack_items=popped_stack_items,\n                pushed_stack_items=pushed_stack_items,\n                max_stack_height=max_stack_height,\n                min_stack_height=min_stack_height,\n                terminating=terminating,\n            )\n            obj.data_portion_length = data_portion_length\n            obj.data_portion_formatter = data_portion_formatter\n            obj.stack_properties_modifier = stack_properties_modifier\n            obj.unchecked_stack = unchecked_stack\n            if kwargs is None:\n                obj.kwargs = []\n            else:\n                obj.kwargs = kwargs\n            obj.kwargs_defaults = kwargs_defaults\n            return obj\n        raise TypeError(\"Opcode constructor '__new__' didn't return an instance!\")\n\n    def __getitem__(self, *args: \"int | bytes | str | Iterable[int]\") -> \"Opcode\":\n        \"\"\"\n        Initialize a new instance of the opcode with the data portion set,\n        and also clear the data portion variables to avoid reusing them.\n        \"\"\"\n        if self.data_portion_formatter is None and self.data_portion_length == 0:\n            raise ValueError(\"Opcode does not have a data portion or has already been set\")\n        data_portion = bytes()\n\n        if self.data_portion_formatter is not None:\n            if len(args) == 1 and isinstance(args[0], Iterable) and not isinstance(args[0], bytes):\n                data_portion = self.data_portion_formatter(*args[0])\n            else:\n                data_portion = self.data_portion_formatter(*args)\n        elif self.data_portion_length > 0:\n            # For opcodes with a data portion, the first argument is the\n            # data and the rest of the arguments form the stack.\n            assert len(args) == 1, \"Opcode with data portion requires exactly one argument\"\n            data = args[0]\n            if isinstance(data, bytes) or isinstance(data, SupportsBytes) or isinstance(data, str):\n                if isinstance(data, str):\n                    if data.startswith(\"0x\"):\n                        data = data[2:]\n                    data = bytes.fromhex(data)\n                elif isinstance(data, SupportsBytes):\n                    data = bytes(data)\n                assert len(data) <= self.data_portion_length\n                data_portion = data.rjust(self.data_portion_length, b\"\\x00\")\n            elif isinstance(data, int):\n                signed = data < 0\n                data_portion = data.to_bytes(\n                    length=self.data_portion_length,\n                    byteorder=\"big\",\n                    signed=signed,\n                )\n            else:\n                raise TypeError(\"Opcode data portion must be either an int or bytes/hex string\")\n        popped_stack_items = self.popped_stack_items\n        pushed_stack_items = self.pushed_stack_items\n        min_stack_height = self.min_stack_height\n        max_stack_height = self.max_stack_height\n        assert (\n            popped_stack_items is not None\n            and pushed_stack_items is not None\n            and min_stack_height is not None\n        )\n        if self.stack_properties_modifier is not None:\n            (\n                popped_stack_items,\n                pushed_stack_items,\n                min_stack_height,\n                max_stack_height,\n            ) = self.stack_properties_modifier(data_portion)\n\n        new_opcode = Opcode(\n            bytes(self) + data_portion,\n            popped_stack_items=popped_stack_items,\n            pushed_stack_items=pushed_stack_items,\n            min_stack_height=min_stack_height,\n            max_stack_height=max_stack_height,\n            data_portion_length=0,\n            data_portion_formatter=None,\n            unchecked_stack=self.unchecked_stack,\n            terminating=self.terminating,\n            kwargs=self.kwargs,\n            kwargs_defaults=self.kwargs_defaults,\n        )\n        new_opcode._name_ = f\"{self._name_}_0x{data_portion.hex()}\"\n        return new_opcode\n\n    def __call__(\n        self,\n        *args_t: \"int | bytes | str | Opcode | Bytecode | Iterable[int]\",\n        unchecked: bool = False,\n        **kwargs: \"int | bytes | str | Opcode | Bytecode\",\n    ) -> Bytecode:\n        \"\"\"\n        Make all opcode instances callable to return formatted bytecode, which\n        constitutes a data portion, that is located after the opcode byte,\n        and pre-opcode bytecode, which is normally used to set up the stack.\n\n        This useful to automatically format, e.g., call opcodes and their\n        stack arguments as\n        `Opcodes.CALL(Opcodes.GAS, 0x1234, 0x0, 0x0, 0x0, 0x0, 0x0)`.\n\n        Data sign is automatically detected but for this reason the range\n        of the input must be:\n        `[-2^(data_portion_bits-1), 2^(data_portion_bits)]`\n        where:\n        `data_portion_bits == data_portion_length * 8`\n\n        For the stack, the arguments are set up in the opposite order they\n        are given, so the first argument is the last item pushed to the stack.\n\n        The resulting stack arrangement does not take into account\n        opcode stack element consumption, so the stack height is not\n        guaranteed to be correct and the user must take this into\n        consideration.\n\n        Integers can also be used as stack elements, in which case they\n        are automatically converted to PUSH operations, and negative numbers\n        always use a PUSH32 operation.\n\n        Hex-strings will be automatically converted to bytes.\n        \"\"\"\n        args: List[\"int | bytes | str | Opcode | Bytecode | Iterable[int]\"] = list(args_t)\n\n        if self.has_data_portion():\n            if len(args) == 0:\n                raise ValueError(\"Opcode with data portion requires at least one argument\")\n            assert type(self) is Opcode\n            get_item_arg = args.pop()\n            assert not isinstance(get_item_arg, Bytecode)\n            return self[get_item_arg](*args)\n\n        if self.kwargs is not None and len(kwargs) > 0:\n            assert len(args) == 0, f\"Cannot mix positional and keyword arguments {args} {kwargs}\"\n\n            # Validate that all provided kwargs are valid\n            invalid_kwargs = set(kwargs.keys()) - set(self.kwargs)\n            if invalid_kwargs:\n                raise ValueError(\n                    f\"Invalid keyword argument(s) {list(invalid_kwargs)} for opcode \"\n                    f\"{self._name_}. Valid arguments are: {self.kwargs}\"\n                    f\"Valid arguments are: {self.kwargs}\"\n                )\n\n            for kw in self.kwargs:\n                args.append(kwargs[kw] if kw in kwargs else self.kwargs_defaults.get(kw, 0))\n\n        # The rest of the arguments form the stack.\n        if len(args) != self.popped_stack_items and not (unchecked or self.unchecked_stack):\n            raise ValueError(\n                f\"Opcode {self._name_} requires {self.popped_stack_items} stack elements, but \"\n                f\"{len(args)} were provided. Use 'unchecked=True' parameter to ignore this check.\"\n            )\n\n        pre_opcode_bytecode = Bytecode()\n        while len(args) > 0:\n            pre_opcode_bytecode += _stack_argument_to_bytecode(args.pop())\n        return pre_opcode_bytecode + self\n\n    def __lt__(self, other: \"Opcode\") -> bool:\n        \"\"\"Compare two opcodes by their integer value.\"\"\"\n        return self.int() < other.int()\n\n    def __gt__(self, other: \"Opcode\") -> bool:\n        \"\"\"Compare two opcodes by their integer value.\"\"\"\n        return self.int() > other.int()\n\n    def int(self) -> int:\n        \"\"\"Return integer representation of the opcode.\"\"\"\n        return int.from_bytes(self, byteorder=\"big\")\n\n    def has_data_portion(self) -> bool:\n        \"\"\"Return whether the opcode has a data portion.\"\"\"\n        return self.data_portion_length > 0 or self.data_portion_formatter is not None\n\n\nOpcodeCallArg = int | bytes | str | Bytecode | Iterable[int]\n\n\nclass Macro(Bytecode):\n    \"\"\"Represents opcode macro replacement, basically holds bytes.\"\"\"\n\n    lambda_operation: Callable[..., Bytecode] | None\n\n    def __new__(\n        cls,\n        macro_or_bytes: Optional[\"Bytecode | Macro\"] = None,\n        *,\n        lambda_operation: Callable[..., Bytecode] | None = None,\n    ) -> \"Macro\":\n        \"\"\"Create new opcode macro instance.\"\"\"\n        if macro_or_bytes is None:\n            macro_or_bytes = Bytecode()\n        if isinstance(macro_or_bytes, Macro):\n            # Required because Enum class calls the base class\n            # with the instantiated object as parameter.\n            return macro_or_bytes\n        else:\n            instance = super().__new__(cls, macro_or_bytes)\n            instance.lambda_operation = lambda_operation\n            return instance\n\n    def __call__(self, *args_t: OpcodeCallArg, **kwargs: Any) -> Bytecode:\n        \"\"\"Perform macro operation if any. Otherwise is a no-op.\"\"\"\n        del kwargs\n        if self.lambda_operation is not None:\n            return self.lambda_operation(*args_t)\n\n        pre_opcode_bytecode = Bytecode()\n        for arg in args_t:\n            pre_opcode_bytecode += _stack_argument_to_bytecode(arg)\n        return pre_opcode_bytecode + self\n\n\n#  Constants\n\nRJUMPV_MAX_INDEX_BYTE_LENGTH = 1\nRJUMPV_BRANCH_OFFSET_BYTE_LENGTH = 2\n\n\n# TODO: Allowing Iterable here is a hacky way to support `range`,\n# because Python 3.11+ will allow `Op.RJUMPV[*range(5)]`.\n# This is a temporary solution until Python 3.11+ is the minimum required\n# version.\n\n\ndef _rjumpv_encoder(*args: int | bytes | Iterable[int]) -> bytes:\n    if len(args) == 1:\n        if isinstance(args[0], bytes) or isinstance(args[0], SupportsBytes):\n            return bytes(args[0])\n        elif isinstance(args[0], Iterable):\n            int_args = list(args[0])\n            return b\"\".join(\n                [(len(int_args) - 1).to_bytes(RJUMPV_MAX_INDEX_BYTE_LENGTH, \"big\")]\n                + [\n                    i.to_bytes(RJUMPV_BRANCH_OFFSET_BYTE_LENGTH, \"big\", signed=True)\n                    for i in int_args\n                ]\n            )\n    return b\"\".join(\n        [(len(args) - 1).to_bytes(RJUMPV_MAX_INDEX_BYTE_LENGTH, \"big\")]\n        + [\n            i.to_bytes(RJUMPV_BRANCH_OFFSET_BYTE_LENGTH, \"big\", signed=True)\n            for i in args\n            if isinstance(i, int)\n        ]\n    )\n\n\ndef _exchange_encoder(*args: int) -> bytes:\n    assert 1 <= len(args) <= 2, f\"Exchange opcode requires one or two arguments, got {len(args)}\"\n    if len(args) == 1:\n        return int.to_bytes(args[0], 1, \"big\")\n    # n = imm >> 4 + 1\n    # m = imm & 0xF + 1\n    # x = n + 1\n    # y = n + m + 1\n    # ...\n    # n = x - 1\n    # m = y - x\n    # m = y - n - 1\n    x, y = args\n    assert 2 <= x <= 0x11\n    assert x + 1 <= y <= x + 0x10\n    n = x - 1\n    m = y - x\n    imm = (n - 1) << 4 | m - 1\n    return int.to_bytes(imm, 1, \"big\")\n\n\ndef _swapn_stack_properties_modifier(data: bytes) -> tuple[int, int, int, int]:\n    imm = int.from_bytes(data, \"big\")\n    n = imm + 1\n    min_stack_height = n + 1\n    return 0, 0, min_stack_height, min_stack_height\n\n\ndef _dupn_stack_properties_modifier(data: bytes) -> tuple[int, int, int, int]:\n    imm = int.from_bytes(data, \"big\")\n    n = imm + 1\n    min_stack_height = n\n    return 0, 1, min_stack_height, min_stack_height + 1\n\n\ndef _exchange_stack_properties_modifier(data: bytes) -> tuple[int, int, int, int]:\n    imm = int.from_bytes(data, \"big\")\n    n = (imm >> 4) + 1\n    m = (imm & 0x0F) + 1\n    min_stack_height = n + m + 1\n    return 0, 0, min_stack_height, min_stack_height\n\n\nclass Opcodes(Opcode, Enum):\n    \"\"\"\n    Enum containing all known opcodes.\n\n    Contains deprecated and not yet implemented opcodes.\n\n    This enum is !! NOT !! meant to be iterated over by the tests.\n    Instead, create a list with cherry-picked opcodes from this Enum\n    within the test if iteration is needed.\n\n    Do !! NOT !! remove or modify existing opcodes from this list.\n    \"\"\"\n\n    STOP = Opcode(0x00, terminating=True)\n    \"\"\"\n    STOP()\n    ----\n\n    Description\n    ----\n    Stop execution\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - None\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    0\n\n    Source: [evm.codes/#00](https://www.evm.codes/#00)\n    \"\"\"\n\n    ADD = Opcode(0x01, popped_stack_items=2, pushed_stack_items=1)\n    \"\"\"\n    ADD(a, b) = c\n    ----\n\n    Description\n    ----\n    Addition operation\n\n    Inputs\n    ----\n    - a: first integer value to add\n    - b: second integer value to add\n\n    Outputs\n    ----\n    - c: integer result of the addition modulo 2**256\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#01](https://www.evm.codes/#01)\n    \"\"\"\n\n    MUL = Opcode(0x02, popped_stack_items=2, pushed_stack_items=1)\n    \"\"\"\n    MUL(a, b) = c\n    ----\n\n    Description\n    ----\n    Multiplication operation\n\n    Inputs\n    ----\n    - a: first integer value to multiply\n    - b: second integer value to multiply\n\n    Outputs\n    ----\n    - c: integer result of the multiplication modulo 2**256\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    5\n\n    Source: [evm.codes/#02](https://www.evm.codes/#02)\n    \"\"\"\n\n    SUB = Opcode(0x03, popped_stack_items=2, pushed_stack_items=1)\n    \"\"\"\n    SUB(a, b) = c\n    ----\n\n    Description\n    ----\n    Subtraction operation\n\n    Inputs\n    ----\n    - a: first integer value\n    - b: second integer value\n\n    Outputs\n    ----\n    - c: integer result of the subtraction modulo 2**256\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#03](https://www.evm.codes/#03)\n    \"\"\"\n\n    DIV = Opcode(0x04, popped_stack_items=2, pushed_stack_items=1)\n    \"\"\"\n    DIV(a, b) = c\n    ----\n\n    Description\n    ----\n    Division operation\n\n    Inputs\n    ----\n    - a: numerator\n    - b: denominator (must be non-zero)\n\n    Outputs\n    ----\n    - c: integer result of the division\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    5\n\n    Source: [evm.codes/#04](https://www.evm.codes/#04)\n    \"\"\"\n\n    SDIV = Opcode(0x05, popped_stack_items=2, pushed_stack_items=1)\n    \"\"\"\n    SDIV(a, b) = c\n    ----\n\n    Description\n    ----\n    Signed division operation\n\n    Inputs\n    ----\n    - a: signed numerator\n    - b: signed denominator\n\n    Outputs\n    ----\n    - c: signed integer result of the division. If the denominator is 0,\n         the result will be 0\n    ----\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    5\n\n    Source: [evm.codes/#05](https://www.evm.codes/#05)\n    \"\"\"\n\n    MOD = Opcode(0x06, popped_stack_items=2, pushed_stack_items=1)\n    \"\"\"\n    MOD(a, b) = c\n    ----\n\n    Description\n    ----\n    Modulo operation\n\n    Inputs\n    ----\n    - a: integer numerator\n    - b: integer denominator\n\n    Outputs\n    ----\n    - a % b: integer result of the integer modulo. If the denominator is 0,\n             the result will be 0\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    5\n\n    Source: [evm.codes/#06](https://www.evm.codes/#06)\n    \"\"\"\n\n    SMOD = Opcode(0x07, popped_stack_items=2, pushed_stack_items=1)\n    \"\"\"\n    SMOD(a, b) = c\n    ----\n\n    Description\n    ----\n    Signed modulo remainder operation\n\n    Inputs\n    ----\n    - a: integer numerator\n    - b: integer denominator\n\n    Outputs\n    ----\n    - a % b: integer result of the signed integer modulo. If the denominator\n             is 0, the result will be 0\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    5\n\n    Source: [evm.codes/#07](https://www.evm.codes/#07)\n    \"\"\"\n\n    ADDMOD = Opcode(0x08, popped_stack_items=3, pushed_stack_items=1)\n    \"\"\"\n    ADDMOD(a, b, c) = d\n    ----\n\n    Description\n    ----\n    Modular addition operation with overflow check\n\n    Inputs\n    ----\n    - a: first integer value\n    - b: second integer value\n    - c: integer denominator\n\n    Outputs\n    ----\n    - (a + b) % N: integer result of the addition followed by a modulo.\n                   If the denominator is 0, the result will be 0\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    8\n\n    Source: [evm.codes/#08](https://www.evm.codes/#08)\n    \"\"\"\n\n    MULMOD = Opcode(0x09, popped_stack_items=3, pushed_stack_items=1)\n    \"\"\"\n    MULMOD(a, b, N) = d\n    ----\n\n    Description\n    ----\n    Modulo multiplication operation\n\n    Inputs\n    ----\n    - a: first integer value to multiply\n    - b: second integer value to multiply\n    - N: integer denominator\n\n    Outputs\n    ----\n    - (a * b) % N: integer result of the multiplication followed by a modulo.\n                   If the denominator is 0, the result will be 0\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    8\n\n    Source: [evm.codes/#09](https://www.evm.codes/#09)\n    \"\"\"\n\n    EXP = Opcode(0x0A, popped_stack_items=2, pushed_stack_items=1)\n    \"\"\"\n    EXP(a, exponent) = a ** exponent\n    ----\n\n    Description\n    ----\n    Exponential operation\n\n    Inputs\n    ----\n    - a: integer base\n    - exponent: integer exponent\n\n    Outputs\n    ----\n    - a ** exponent: integer result of the exponential operation modulo 2**256\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    - static_gas = 10\n    - dynamic_gas = 50 * exponent_byte_size\n\n    Source: [evm.codes/#0A](https://www.evm.codes/#0A)\n    \"\"\"\n\n    SIGNEXTEND = Opcode(0x0B, popped_stack_items=2, pushed_stack_items=1)\n    \"\"\"\n    SIGNEXTEND(b, x) = y\n    ----\n\n    Description\n    ----\n    Sign extension operation\n\n    Inputs\n    ----\n    - b: size in byte - 1 of the integer to sign extend\n    - x: integer value to sign extend\n\n    Outputs\n    ----\n    - y: integer result of the sign extend\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    5\n\n    Source: [evm.codes/#0B](https://www.evm.codes/#0B)\n    \"\"\"\n\n    LT = Opcode(0x10, popped_stack_items=2, pushed_stack_items=1)\n    \"\"\"\n    LT(a, b) = a < b\n    ----\n\n    Description\n    ----\n    Less-than comparison\n\n    Inputs\n    ----\n    - a: left side integer value\n    - b: right side integer value\n\n    Outputs\n    ----\n    - a < b: 1 if the left side is smaller, 0 otherwise\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#10](https://www.evm.codes/#10)\n    \"\"\"\n\n    GT = Opcode(0x11, popped_stack_items=2, pushed_stack_items=1)\n    \"\"\"\n    GT(a, b) = a > b\n    ----\n\n    Description\n    ----\n    Greater-than comparison\n\n    Inputs\n    ----\n    - a: left side integer\n    - b: right side integer\n\n    Outputs\n    ----\n    - a > b: 1 if the left side is bigger, 0 otherwise\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#11](https://www.evm.codes/#11)\n    \"\"\"\n\n    SLT = Opcode(0x12, popped_stack_items=2, pushed_stack_items=1)\n    \"\"\"\n    SLT(a, b) = a < b\n    ----\n\n    Description\n    ----\n    Signed less-than comparison\n\n    Inputs\n    ----\n    - a: left side signed integer\n    - b: right side signed integer\n\n    Outputs\n    ----\n    - a < b: 1 if the left side is smaller, 0 otherwise\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#12](https://www.evm.codes/#12)\n    \"\"\"\n\n    SGT = Opcode(0x13, popped_stack_items=2, pushed_stack_items=1)\n    \"\"\"\n    SGT(a, b) = a > b\n    ----\n\n    Description\n    ----\n    Signed greater-than comparison\n\n    Inputs\n    ----\n    - a: left side signed integer\n    - b: right side signed integer\n\n    Outputs\n    ----\n    - a > b: 1 if the left side is bigger, 0 otherwise\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#13](https://www.evm.codes/#13)\n    \"\"\"\n\n    EQ = Opcode(0x14, popped_stack_items=2, pushed_stack_items=1)\n    \"\"\"\n    EQ(a, b) = a == b\n    ----\n\n    Description\n    ----\n    Equality comparison\n\n    Inputs\n    ----\n    - a: left side integer\n    - b: right side integer\n\n    Outputs\n    ----\n    - a == b: 1 if the left side is equal to the right side, 0 otherwise\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#14](https://www.evm.codes/#14)\n    \"\"\"\n\n    ISZERO = Opcode(0x15, popped_stack_items=1, pushed_stack_items=1)\n    \"\"\"\n    ISZERO(a) = a == 0\n    ----\n\n    Description\n    ----\n    Is-zero comparison\n\n    Inputs\n    ----\n    - a: integer\n\n    Outputs\n    ----\n    - a == 0: 1 if a is 0, 0 otherwise\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#15](https://www.evm.codes/#15)\n    \"\"\"\n\n    AND = Opcode(0x16, popped_stack_items=2, pushed_stack_items=1)\n    \"\"\"\n    AND(a, b) = a & b\n    ----\n\n    Description\n    ----\n    Bitwise AND operation\n\n    Inputs\n    ----\n    - a: first binary value\n    - b: second binary value\n\n    Outputs\n    ----\n    - a & b: the bitwise AND result\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#16](https://www.evm.codes/#16)\n    \"\"\"\n\n    OR = Opcode(0x17, popped_stack_items=2, pushed_stack_items=1)\n    \"\"\"\n    OR(a, b) = a | b\n    ----\n\n    Description\n    ----\n    Bitwise OR operation\n\n    Inputs\n    ----\n    - a: first binary value\n    - b: second binary value\n\n    Outputs\n    ----\n    - a | b: the bitwise OR result\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#17](https://www.evm.codes/#17)\n    \"\"\"\n\n    XOR = Opcode(0x18, popped_stack_items=2, pushed_stack_items=1)\n    \"\"\"\n    XOR(a, b) = a ^ b\n    ----\n\n    Description\n    ----\n    Bitwise XOR operation\n\n    Inputs\n    ----\n    - a: first binary value\n    - b: second binary value\n\n    Outputs\n    ----\n    - a ^ b: the bitwise XOR result\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#18](https://www.evm.codes/#18)\n    \"\"\"\n\n    NOT = Opcode(0x19, popped_stack_items=1, pushed_stack_items=1)\n    \"\"\"\n    NOT(a) = ~a\n    ----\n\n    Description\n    ----\n    Bitwise NOT operation\n\n    Inputs\n    ----\n    - a: binary value\n\n    Outputs\n    ----\n    - ~a: the bitwise NOT result\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#19](https://www.evm.codes/#19)\n    \"\"\"\n\n    BYTE = Opcode(0x1A, popped_stack_items=2, pushed_stack_items=1)\n    \"\"\"\n    BYTE(i, x) = y\n    ----\n\n    Description\n    ----\n    Extract a byte from the given position in the value\n\n    Inputs\n    ----\n    - i: byte offset starting from the most significant byte\n    - x: 32-byte value\n\n    Outputs\n    ----\n    - y: the indicated byte at the least significant position.\n         If the byte offset is out of range, the result is 0\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#1A](https://www.evm.codes/#1A)\n    \"\"\"\n\n    SHL = Opcode(0x1B, popped_stack_items=2, pushed_stack_items=1)\n    \"\"\"\n    SHL(shift, value) = value << shift\n    ----\n\n    Description\n    ----\n    Shift left operation\n\n    Inputs\n    ----\n    - shift: number of bits to shift to the left\n    - value: 32 bytes to shift\n\n    Outputs\n    ----\n    - value << shift: the shifted value. If shift is bigger than 255, returns 0\n\n    Fork\n    ----\n    Constantinople\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#1B](https://www.evm.codes/#1B)\n    \"\"\"\n\n    SHR = Opcode(0x1C, popped_stack_items=2, pushed_stack_items=1)\n    \"\"\"\n    SHR(shift, value) = value >> shift\n    ----\n\n    Description\n    ----\n    Logical shift right operation\n\n    Inputs\n    ----\n    - shift: number of bits to shift to the right.\n    - value: 32 bytes to shift\n\n    Outputs\n    ----\n    - value >> shift: the shifted value. If shift is bigger than 255, returns 0\n\n    Fork\n    ----\n    Constantinople\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#1C](https://www.evm.codes/#1C)\n    \"\"\"\n\n    SAR = Opcode(0x1D, popped_stack_items=2, pushed_stack_items=1)\n    \"\"\"\n    SAR(shift, value) = value >> shift\n    ----\n\n    Description\n    ----\n    Arithmetic shift right operation\n\n    Inputs\n    ----\n    - shift: number of bits to shift to the right\n    - value: integer to shift\n\n    Outputs\n    ----\n    - value >> shift: the shifted value\n\n    Fork\n    ----\n    Constantinople\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#1D](https://www.evm.codes/#1D)\n    \"\"\"\n\n    CLZ = Opcode(0x1E, popped_stack_items=1, pushed_stack_items=1)\n    \"\"\"\n    CLZ(value) = count_leading_zeros(value)\n    ----\n\n    Description\n    ----\n    Counts leading zeros (bitwise).\n\n    Inputs\n    ----\n    - value: integer to count zeros on\n\n    Outputs\n    ----\n    - zeros: leading zero bits\n\n    Fork\n    ----\n    Osaka\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#1E](https://www.evm.codes/#1E)\n    \"\"\"\n\n    SHA3 = Opcode(0x20, popped_stack_items=2, pushed_stack_items=1, kwargs=[\"offset\", \"size\"])\n    \"\"\"\n    SHA3(offset, size) = hash\n    ----\n\n    Description\n    ----\n    Compute Keccak-256 hash\n\n    Inputs\n    ----\n    - offset: byte offset in the memory\n    - size: byte size to read in the memory\n\n    Outputs\n    ----\n    - hash: Keccak-256 hash of the given data in memory\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    - minimum_word_size = (size + 31) / 32\n    - static_gas = 30\n    - dynamic_gas = 6 * minimum_word_size + memory_expansion_cost\n\n    Source: [evm.codes/#20](https://www.evm.codes/#20)\n    \"\"\"\n\n    ADDRESS = Opcode(0x30, pushed_stack_items=1)\n    \"\"\"\n    ADDRESS() = address\n    ----\n\n    Description\n    ----\n    Get address of currently executing account\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - address: the 20-byte address of the current account\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    2\n\n    Source: [evm.codes/#30](https://www.evm.codes/#30)\n    \"\"\"\n\n    BALANCE = Opcode(0x31, popped_stack_items=1, pushed_stack_items=1, kwargs=[\"address\"])\n    \"\"\"\n    BALANCE(address) = balance\n    ----\n\n    Description\n    ----\n    Get the balance of the specified account\n\n    Inputs\n    ----\n    - address: 20-byte address of the account to check\n\n    Outputs\n    ----\n    - balance: balance of the given account in wei. Returns 0 if the\n               account doesn't exist\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    - static_gas = 0\n    - dynamic_gas = 100 if warm_address, 2600 if cold_address\n\n    Source: [evm.codes/#31](https://www.evm.codes/#31)\n    \"\"\"\n\n    ORIGIN = Opcode(0x32, pushed_stack_items=1)\n    \"\"\"\n    ORIGIN() = address\n    ----\n\n    Description\n    ----\n    Get execution origination address\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - address: the 20-byte address of the sender of the transaction.\n               It can only be an account without code\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    2\n\n    Source: [evm.codes/#32](https://www.evm.codes/#32)\n    \"\"\"\n\n    CALLER = Opcode(0x33, pushed_stack_items=1)\n    \"\"\"\n    CALLER() = address\n    ----\n\n    Description\n    ----\n    Get caller address\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - address: the 20-byte address of the caller account.\n               This is the account that did the last\n               call (except delegate call)\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    2\n\n    Source: [evm.codes/#33](https://www.evm.codes/#33)\n    \"\"\"\n\n    CALLVALUE = Opcode(0x34, pushed_stack_items=1)\n    \"\"\"\n    CALLVALUE() = value\n    ----\n\n    Description\n    ----\n    Get deposited value by the instruction/transaction responsible\n    for this execution\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - value: the value of the current call in wei\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    2\n\n    Source: [evm.codes/#34](https://www.evm.codes/#34)\n    \"\"\"\n\n    CALLDATALOAD = Opcode(0x35, popped_stack_items=1, pushed_stack_items=1, kwargs=[\"offset\"])\n    \"\"\"\n    CALLDATALOAD(offset) = data[offset]\n    ----\n\n    Description\n    ----\n    Get input data of current environment\n\n    Inputs\n    ----\n    - offset: byte offset in the calldata\n\n    Outputs\n    ----\n    - data[offset]: 32-byte value starting from the given offset of\n                    the calldata. All bytes after the end of the calldata\n                    are set to 0\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#35](https://www.evm.codes/#35)\n    \"\"\"\n\n    CALLDATASIZE = Opcode(0x36, pushed_stack_items=1)\n    \"\"\"\n    CALLDATASIZE() = size\n    ----\n\n    Description\n    ----\n    Get size of input data in current environment\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - size: byte size of the calldata\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    2\n\n    Source: [evm.codes/#36](https://www.evm.codes/#36)\n    \"\"\"\n\n    CALLDATACOPY = Opcode(0x37, popped_stack_items=3, kwargs=[\"dest_offset\", \"offset\", \"size\"])\n    \"\"\"\n    CALLDATACOPY(dest_offset, offset, size)\n    ----\n\n    Description\n    ----\n    Copy input data in current environment to memory\n\n    Inputs\n    ----\n    - dest_offset: byte offset in the memory where the result will be copied\n    - offset: byte offset in the calldata to copy\n    - size: byte size to copy\n\n    Outputs\n    ----\n    - None\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    - minimum_word_size = (size + 31) / 32\n    - static_gas = 3\n    - dynamic_gas = 3 * minimum_word_size + memory_expansion_cost\n\n    Source: [evm.codes/#37](https://www.evm.codes/#37)\n    \"\"\"\n\n    CODESIZE = Opcode(0x38, pushed_stack_items=1)\n    \"\"\"\n    CODESIZE() = size\n    ----\n\n    Description\n    ----\n    Get size of code running in current environment\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - size: byte size of the code\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    2\n\n    Source: [evm.codes/#38](https://www.evm.codes/#38)\n    \"\"\"\n\n    CODECOPY = Opcode(0x39, popped_stack_items=3, kwargs=[\"dest_offset\", \"offset\", \"size\"])\n    \"\"\"\n    CODECOPY(dest_offset, offset, size)\n    ----\n\n    Description\n    ----\n    Copy code running in current environment to memory\n\n    Inputs\n    ----\n    - dest_offset: byte offset in the memory where the result will be copied.\n    - offset: byte offset in the code to copy.\n    - size: byte size to copy\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    - minimum_word_size = (size + 31) / 32\n    - static_gas = 3\n    - dynamic_gas = 3 * minimum_word_size + memory_expansion_cost\n\n    Source: [evm.codes/#39](https://www.evm.codes/#39)\n    \"\"\"\n\n    GASPRICE = Opcode(0x3A, pushed_stack_items=1)\n    \"\"\"\n    GASPRICE() = price\n    ----\n\n    Description\n    ----\n    Get price of gas in current environment\n\n    Outputs\n    ----\n    - price: gas price in wei per gas\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    2\n\n    Source: [evm.codes/#3A](https://www.evm.codes/#3A)\n    \"\"\"\n\n    EXTCODESIZE = Opcode(0x3B, popped_stack_items=1, pushed_stack_items=1, kwargs=[\"address\"])\n    \"\"\"\n    EXTCODESIZE(address) = size\n    ----\n\n    Description\n    ----\n    Get size of an account's code\n\n    Inputs\n    ----\n    - address: 20-byte address of the contract to query\n\n    Outputs\n    ----\n    - size: byte size of the code\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    - static_gas = 0\n    - dynamic_gas = 100 if warm_address, 2600 if cold_address\n\n    Source: [evm.codes/#3B](https://www.evm.codes/#3B)\n    \"\"\"\n\n    EXTCODECOPY = Opcode(\n        0x3C, popped_stack_items=4, kwargs=[\"address\", \"dest_offset\", \"offset\", \"size\"]\n    )\n    \"\"\"\n    EXTCODECOPY(address, dest_offset, offset, size)\n    ----\n\n    Description\n    ----\n    Copy an account's code to memory\n\n    Inputs\n    ----\n    - address: 20-byte address of the contract to query\n    - dest_offset: byte offset in the memory where the result will be copied\n    - offset: byte offset in the code to copy\n    - size: byte size to copy\n\n    Outputs\n    ----\n    - None\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    - minimum_word_size = (size + 31) / 32\n    - static_gas = 0\n    - dynamic_gas = 3 * minimum_word_size +\n                    memory_expansion_cost + address_access_cost\n\n    Source: [evm.codes/#3C](https://www.evm.codes/#3C)\n    \"\"\"\n\n    RETURNDATASIZE = Opcode(0x3D, pushed_stack_items=1)\n    \"\"\"\n    RETURNDATASIZE() = size\n    ----\n\n    Description\n    ----\n    Get size of output data from the previous call from the current environment\n\n    Outputs\n    ----\n    - size: byte size of the return data from the last executed sub context\n\n    Fork\n    ----\n    Byzantium\n\n    Gas\n    ----\n    2\n\n    Source: [evm.codes/#3D](https://www.evm.codes/#3D)\n    \"\"\"\n\n    RETURNDATACOPY = Opcode(0x3E, popped_stack_items=3, kwargs=[\"dest_offset\", \"offset\", \"size\"])\n    \"\"\"\n    RETURNDATACOPY(dest_offset, offset, size)\n    ----\n\n    Description\n    ----\n    Copy output data from the previous call to memory\n\n    Inputs\n    ----\n    - dest_offset: byte offset in the memory where the result will be copied\n    - offset: byte offset in the return data from the last\n              executed sub context to copy\n    - size: byte size to copy\n\n    Fork\n    ----\n    Byzantium\n\n    Gas\n    ----\n    - minimum_word_size = (size + 31) / 32\n    - static_gas = 3\n    - dynamic_gas = 3 * minimum_word_size + memory_expansion_cost\n\n    Source: [evm.codes/#3E](https://www.evm.codes/#3E)\n    \"\"\"\n\n    EXTCODEHASH = Opcode(0x3F, popped_stack_items=1, pushed_stack_items=1, kwargs=[\"address\"])\n    \"\"\"\n    EXTCODEHASH(address) = hash\n    ----\n\n    Description\n    ----\n    Get hash of an account's code\n\n    Inputs\n    ----\n    - address: 20-byte address of the account\n\n    Outputs\n    ----\n    - hash: hash of the chosen account's code, the empty hash (0xc5d24601...)\n            if the account has no code, or 0 if the account does not exist or\n            has been destroyed\n\n    Fork\n    ----\n    Constantinople\n\n    Gas\n    ----\n    - static_gas = 0\n    - dynamic_gas = 100 if warm_address, 2600 if cold_address\n\n    Source: [evm.codes/#3F](https://www.evm.codes/#3F)\n    \"\"\"\n\n    BLOCKHASH = Opcode(0x40, popped_stack_items=1, pushed_stack_items=1, kwargs=[\"block_number\"])\n    \"\"\"\n    BLOCKHASH(block_number) = hash\n    ----\n\n    Description\n    ----\n    Get the hash of one of the 256 most recent complete blocks\n\n    Inputs\n    ----\n    - blockNumber: block number to get the hash from. Valid range is the\n                   last 256 blocks (not including the current one). Current\n                   block number can be queried with NUMBER\n\n    Outputs\n    ----\n    - hash: hash of the chosen block, or 0 if the block number is not\n            in the valid range\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    20\n\n    Source: [evm.codes/#40](https://www.evm.codes/#40)\n    \"\"\"\n\n    COINBASE = Opcode(0x41, pushed_stack_items=1)\n    \"\"\"\n    COINBASE() = address\n    ----\n\n    Description\n    ----\n    Get the block's beneficiary address\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - address: miner's 20-byte address\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    2\n\n    Source: [evm.codes/#41](https://www.evm.codes/#41)\n    \"\"\"\n\n    TIMESTAMP = Opcode(0x42, pushed_stack_items=1)\n    \"\"\"\n    TIMESTAMP() = timestamp\n    ----\n\n    Description\n    ----\n    Get the block's timestamp\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - timestamp: unix timestamp of the current block\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    2\n\n    Source: [evm.codes/#42](https://www.evm.codes/#42)\n    \"\"\"\n\n    NUMBER = Opcode(0x43, pushed_stack_items=1)\n    \"\"\"\n    NUMBER() = blockNumber\n    ----\n\n    Description\n    ----\n    Get the block's number\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - blockNumber: current block number\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    2\n\n    Source: [evm.codes/#43](https://www.evm.codes/#43)\n    \"\"\"\n\n    PREVRANDAO = Opcode(0x44, pushed_stack_items=1)\n    \"\"\"\n    PREVRANDAO() = prevRandao\n    ----\n\n    Description\n    ----\n    Get the previous block's RANDAO mix\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - prevRandao: previous block's RANDAO mix\n\n    Fork\n    ----\n    Merge\n\n    Gas\n    ----\n    2\n\n    Source: [evm.codes/#44](https://www.evm.codes/#44)\n    \"\"\"\n\n    GASLIMIT = Opcode(0x45, pushed_stack_items=1)\n    \"\"\"\n    GASLIMIT() = gasLimit\n    ----\n\n    Description\n    ----\n    Get the block's gas limit\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - gasLimit: gas limit\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    2\n\n    Source: [evm.codes/#45](https://www.evm.codes/#45)\n    \"\"\"\n\n    CHAINID = Opcode(0x46, pushed_stack_items=1)\n    \"\"\"\n    CHAINID() = chainId\n    ----\n\n    Description\n    ----\n    Get the chain ID\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - chainId: chain id of the network\n\n    Fork\n    ----\n    Istanbul\n\n    Gas\n    ----\n    2\n\n    Source: [evm.codes/#46](https://www.evm.codes/#46)\n    \"\"\"\n\n    SELFBALANCE = Opcode(0x47, pushed_stack_items=1)\n    \"\"\"\n    SELFBALANCE() = balance\n    ----\n\n    Description\n    ----\n    Get balance of currently executing account\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - balance: balance of the current account in wei\n\n    Fork\n    ----\n    Istanbul\n\n    Gas\n    ----\n    5\n\n    Source: [evm.codes/#47](https://www.evm.codes/#47)\n    \"\"\"\n\n    BASEFEE = Opcode(0x48, pushed_stack_items=1)\n    \"\"\"\n    BASEFEE() = baseFee\n    ----\n\n    Description\n    ----\n    Get the base fee\n\n    Outputs\n    ----\n    - baseFee: base fee in wei\n\n    Fork\n    ----\n    London\n\n    Gas\n    ----\n    2\n\n    Source: [evm.codes/#48](https://www.evm.codes/#48)\n    \"\"\"\n\n    BLOBHASH = Opcode(0x49, popped_stack_items=1, pushed_stack_items=1, kwargs=[\"index\"])\n    \"\"\"\n    BLOBHASH(index) = versionedHash\n    ----\n\n    Description\n    ----\n    Returns the versioned hash of a single blob contained in\n    the type-3 transaction\n\n    Inputs\n    ----\n    - index: index of the blob\n\n    Outputs\n    ----\n    - versionedHash: versioned hash of the blob\n\n    Fork\n    ----\n    Cancun\n\n    Gas\n    ----\n    3\n\n    Source: [eips.ethereum.org/EIPS/\n    eip-4844](https://eips.ethereum.org/EIPS/eip-4844)\n    \"\"\"\n\n    BLOBBASEFEE = Opcode(0x4A, popped_stack_items=0, pushed_stack_items=1)\n    \"\"\"\n    BLOBBASEFEE() = fee\n    ----\n\n    Description\n    ----\n    Returns the value of the blob base fee of the block it is executing in\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - baseFeePerBlobGas: base fee for the blob gas in wei\n\n    Fork\n    ----\n    Cancun\n\n    Gas\n    ----\n    2\n\n    Source: [eips.ethereum.org/EIPS/eip-7516](https://eips.ethereum.org/\n    EIPS/eip-7516)\n    \"\"\"\n\n    POP = Opcode(0x50, popped_stack_items=1)\n    \"\"\"\n    POP()\n    ----\n\n    Description\n    ----\n    Remove item from stack\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - None\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    2\n\n    Source: [evm.codes/#50](https://www.evm.codes/#50)\n    \"\"\"\n\n    MLOAD = Opcode(0x51, popped_stack_items=1, pushed_stack_items=1, kwargs=[\"offset\"])\n    \"\"\"\n    MLOAD(offset) = value\n    ----\n\n    Description\n    ----\n    Load word from memory\n\n    Inputs\n    ----\n    - offset: offset in the memory in bytes\n\n    Outputs\n    ----\n    - value: the 32 bytes in memory starting at that offset.\n    If it goes beyond its current size (see MSIZE), writes 0s\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    - static_gas = 3\n    - dynamic_gas = memory_expansion_cost\n\n    Source: [evm.codes/#51](https://www.evm.codes/#51)\n    \"\"\"\n\n    MSTORE = Opcode(0x52, popped_stack_items=2, kwargs=[\"offset\", \"value\"])\n    \"\"\"\n    MSTORE(offset, value)\n    ----\n\n    Description\n    ----\n    Save word to memory\n\n    Inputs\n    ----\n    - offset: offset in the memory in bytes\n    - value: 32-byte value to write in the memory\n\n    Outputs\n    ----\n    - None\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    - static_gas = 3\n    - dynamic_gas = memory_expansion_cost\n\n    Source: [evm.codes/#52](https://www.evm.codes/#52)\n    \"\"\"\n\n    MSTORE8 = Opcode(0x53, popped_stack_items=2, kwargs=[\"offset\", \"value\"])\n    \"\"\"\n    MSTORE8(offset, value)\n    ----\n\n    Description\n    ----\n    Save byte to memory\n\n    Inputs\n    ----\n    - offset: offset in the memory in bytes\n    - value: 1-byte value to write in the memory (the least significant\n             byte of the 32-byte stack value)\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    - static_gas = 3\n    - dynamic_gas = memory_expansion_cost\n\n    Source: [evm.codes/#53](https://www.evm.codes/#53)\n    \"\"\"\n\n    SLOAD = Opcode(0x54, popped_stack_items=1, pushed_stack_items=1, kwargs=[\"key\"])\n    \"\"\"\n    SLOAD(key) = value\n    ----\n\n    Description\n    ----\n    Load word from storage\n\n    Inputs\n    ----\n    - key: 32-byte key in storage\n\n    Outputs\n    ----\n    - value: 32-byte value corresponding to that key. 0 if that\n             key was never written before\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    - static_gas = 0\n    - dynamic_gas = 100 if warm_address, 2600 if cold_address\n\n    Source: [evm.codes/#54](https://www.evm.codes/#54)\n    \"\"\"\n\n    SSTORE = Opcode(0x55, popped_stack_items=2, kwargs=[\"key\", \"value\"])\n    \"\"\"\n    SSTORE(key, value)\n    ----\n\n    Description\n    ----\n    Save word to storage\n\n    Inputs\n    ----\n    - key: 32-byte key in storage\n    - value: 32-byte value to store\n\n    Outputs\n    ----\n    - None\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    ```\n    static_gas = 0\n\n    if value == current_value\n        if key is warm\n            base_dynamic_gas = 100\n        else\n            base_dynamic_gas = 100\n    else if current_value == original_value\n        if original_value == 0\n            base_dynamic_gas = 20000\n        else\n            base_dynamic_gas = 2900\n    else\n        base_dynamic_gas = 100\n\n    if key is cold:\n        base_dynamic_gas += 2100\n    ```\n\n    Source: [evm.codes/#55](https://www.evm.codes/#55)\n    \"\"\"\n\n    JUMP = Opcode(0x56, popped_stack_items=1, kwargs=[\"pc\"])\n    \"\"\"\n    JUMP(pc)\n    ----\n\n    Description\n    ----\n    Alter the program counter\n\n    Inputs\n    ----\n    - pc: byte offset in the deployed code where execution will continue from.\n          Must be a JUMPDEST instruction\n\n    Outputs\n    ----\n    - None\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    8\n\n    Source: [evm.codes/#56](https://www.evm.codes/#56)\n    \"\"\"\n\n    JUMPI = Opcode(0x57, popped_stack_items=2, kwargs=[\"pc\", \"condition\"])\n    \"\"\"\n    JUMPI(pc, condition)\n    ----\n\n    Description\n    ----\n    Conditionally alter the program counter\n\n    Inputs\n    ----\n    - pc: byte offset in the deployed code where execution will continue from.\n          Must be a JUMPDEST instruction\n    - condition: the program counter will be altered with the new value only\n                 if this value is different from 0. Otherwise, the program\n                 counter is simply incremented and the next instruction\n                 will be executed\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    10\n\n    Source: [evm.codes/#57](https://www.evm.codes/#57)\n    \"\"\"\n\n    PC = Opcode(0x58, pushed_stack_items=1)\n    \"\"\"\n    PC() = counter\n    ----\n\n    Description\n    ----\n    Get the value of the program counter prior to the increment corresponding\n    to this instruction\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - counter: PC of this instruction in the current program.\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    2\n\n    Source: [evm.codes/#58](https://www.evm.codes/#58)\n    \"\"\"\n\n    MSIZE = Opcode(0x59, pushed_stack_items=1)\n    \"\"\"\n    MSIZE() = size\n    ----\n\n    Description\n    ----\n    Get the size of active memory in bytes\n\n    Outputs\n    ----\n    - size: current memory size in bytes (higher offset accessed until now + 1)\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    2\n\n    Source: [evm.codes/#59](https://www.evm.codes/#59)\n    \"\"\"\n\n    GAS = Opcode(0x5A, pushed_stack_items=1)\n    \"\"\"\n    GAS() = gas_remaining\n    ----\n\n    Description\n    ----\n    Get the amount of available gas, including the corresponding reduction\n    for the cost of this instruction\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - gas: remaining gas (after this instruction)\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    2\n\n    Source: [evm.codes/#5A](https://www.evm.codes/#5A)\n    \"\"\"\n\n    JUMPDEST = Opcode(0x5B)\n    \"\"\"\n    JUMPDEST()\n    ----\n\n    Description\n    ----\n    Mark a valid destination for jumps\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - None\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    1\n\n    Source: [evm.codes/#5B](https://www.evm.codes/#5B)\n    \"\"\"\n\n    NOOP = Opcode(0x5B)\n    \"\"\"\n    NOOP()\n    ----\n\n    Description\n    ----\n    Synonym for JUMPDEST. Performs no operation.\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - None\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    1\n\n    Source: [evm.codes/#5B](https://www.evm.codes/#5B)\n    \"\"\"\n\n    TLOAD = Opcode(0x5C, popped_stack_items=1, pushed_stack_items=1, kwargs=[\"key\"])\n    \"\"\"\n    TLOAD(key) = value\n    ----\n\n    Description\n    ----\n    Load word from transient storage\n\n    Inputs\n    ----\n    - key: 32-byte key in transient storage\n\n    Outputs\n    ----\n    - value: 32-byte value corresponding to that key. 0 if that key\n             was never written\n\n    Fork\n    ----\n    Cancun\n\n    Gas\n    ----\n    100\n\n    Source: [eips.ethereum.org/EIPS/eip-1153](https://eips.ethereum.org/EIPS/eip-1153)\n    \"\"\"\n\n    TSTORE = Opcode(0x5D, popped_stack_items=2, kwargs=[\"key\", \"value\"])\n    \"\"\"\n    TSTORE(key, value)\n    ----\n\n    Description\n    ----\n    Save word to transient storage\n\n    Inputs\n    ----\n    - key: 32-byte key in transient storage\n    - value: 32-byte value to store\n\n    Fork\n    ----\n    Cancun\n\n    Gas\n    ----\n    100\n\n    Source: [eips.ethereum.org/EIPS/eip-1153](https://eips.ethereum.org/EIPS/\n    eip-1153)\n    \"\"\"\n\n    MCOPY = Opcode(0x5E, popped_stack_items=3, kwargs=[\"dest_offset\", \"offset\", \"size\"])\n    \"\"\"\n    MCOPY(dest_offset, offset, size)\n    ----\n\n    Description\n    ----\n    Copies areas in memory\n\n    Inputs\n    ----\n    - dest_offset: byte offset in the memory where the result will be copied\n    - offset: byte offset in the calldata to copy\n    - size: byte size to copy\n\n    Outputs\n    ----\n    - None\n\n    Fork\n    ----\n    Cancun\n\n    Gas\n    ----\n    - minimum_word_size = (size + 31) / 32\n    - static_gas = 3\n    - dynamic_gas = 3 * minimum_word_size + memory_expansion_cost\n\n    Source: [eips.ethereum.org/EIPS/eip-5656](https://eips.ethereum.org/EIPS/\n    eip-5656)\n    \"\"\"\n\n    PUSH0 = Opcode(0x5F, pushed_stack_items=1)\n    \"\"\"\n    PUSH0() = value\n    ----\n\n    Description\n    ----\n    Place value 0 on stack\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - value: pushed value, equal to 0\n\n    Fork\n    ----\n    Shanghai\n\n    Gas\n    ----\n    2\n\n    Source: [evm.codes/#5F](https://www.evm.codes/#5F)\n    \"\"\"\n\n    PUSH1 = Opcode(0x60, pushed_stack_items=1, data_portion_length=1)\n    \"\"\"\n    PUSH1() = value\n    ----\n\n    Description\n    ----\n    Place 1 byte item on stack\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - value: pushed value, aligned to the right (put in the\n             lowest significant bytes)\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#60](https://www.evm.codes/#60)\n    \"\"\"\n\n    PUSH2 = Opcode(0x61, pushed_stack_items=1, data_portion_length=2)\n    \"\"\"\n    PUSH2() = value\n    ----\n\n    Description\n    ----\n    Place 2 byte item on stack\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - value: pushed value, aligned to the right (put in the lowest\n             significant bytes)\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#61](https://www.evm.codes/#61)\n    \"\"\"\n\n    PUSH3 = Opcode(0x62, pushed_stack_items=1, data_portion_length=3)\n    \"\"\"\n    PUSH3() = value\n    ----\n\n    Description\n    ----\n    Place 3 byte item on stack\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - value: pushed value, aligned to the right (put in the\n             lowest significant bytes)\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#62](https://www.evm.codes/#62)\n    \"\"\"\n\n    PUSH4 = Opcode(0x63, pushed_stack_items=1, data_portion_length=4)\n    \"\"\"\n    PUSH4() = value\n    ----\n\n    Description\n    ----\n    Place 4 byte item on stack\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - value: pushed value, aligned to the right (put in the lowest\n             significant bytes)\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#63](https://www.evm.codes/#63)\n    \"\"\"\n\n    PUSH5 = Opcode(0x64, pushed_stack_items=1, data_portion_length=5)\n    \"\"\"\n    PUSH5() = value\n    ----\n\n    Description\n    ----\n    Place 5 byte item on stack\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - value: pushed value, aligned to the right (put in the lowest\n             significant bytes)\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#64](https://www.evm.codes/#64)\n    \"\"\"\n\n    PUSH6 = Opcode(0x65, pushed_stack_items=1, data_portion_length=6)\n    \"\"\"\n    PUSH6() = value\n    ----\n\n    Description\n    ----\n    Place 6 byte item on stack\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - value: pushed value, aligned to the right (put in the\n             lowest significant bytes)\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#65](https://www.evm.codes/#65)\n    \"\"\"\n\n    PUSH7 = Opcode(0x66, pushed_stack_items=1, data_portion_length=7)\n    \"\"\"\n    PUSH7() = value\n    ----\n\n    Description\n    ----\n    Place 7 byte item on stack\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - value: pushed value, aligned to the right (put in the\n             lowest significant bytes)\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#66](https://www.evm.codes/#66)\n    \"\"\"\n\n    PUSH8 = Opcode(0x67, pushed_stack_items=1, data_portion_length=8)\n    \"\"\"\n    PUSH8() = value\n    ----\n\n    Description\n    ----\n    Place 8 byte item on stack\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - value: pushed value, aligned to the right (put in the\n             lowest significant bytes)\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#67](https://www.evm.codes/#67)\n    \"\"\"\n\n    PUSH9 = Opcode(0x68, pushed_stack_items=1, data_portion_length=9)\n    \"\"\"\n    PUSH9() = value\n    ----\n\n    Description\n    ----\n    Place 9 byte item on stack\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - value: pushed value, aligned to the right (put in the\n             lowest significant bytes)\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#68](https://www.evm.codes/#68)\n    \"\"\"\n\n    PUSH10 = Opcode(0x69, pushed_stack_items=1, data_portion_length=10)\n    \"\"\"\n    PUSH10() = value\n    ----\n\n    Description\n    ----\n    Place 10 byte item on stack\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - value: pushed value, aligned to the right (put in\n             the lowest significant bytes)\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#69](https://www.evm.codes/#69)\n    \"\"\"\n\n    PUSH11 = Opcode(0x6A, pushed_stack_items=1, data_portion_length=11)\n    \"\"\"\n    PUSH11() = value\n    ----\n\n    Description\n    ----\n    Place 11 byte item on stack\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - value: pushed value, aligned to the right (put in\n             the lowest significant bytes)\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#6A](https://www.evm.codes/#6A)\n    \"\"\"\n\n    PUSH12 = Opcode(0x6B, pushed_stack_items=1, data_portion_length=12)\n    \"\"\"\n    PUSH12() = value\n    ----\n\n    Description\n    ----\n    Place 12 byte item on stack\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - value: pushed value, aligned to the right (put in the\n             lowest significant bytes)\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#6B](https://www.evm.codes/#6B)\n    \"\"\"\n\n    PUSH13 = Opcode(0x6C, pushed_stack_items=1, data_portion_length=13)\n    \"\"\"\n    PUSH13() = value\n    ----\n\n    Description\n    ----\n    Place 13 byte item on stack\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - value: pushed value, aligned to the right (put in\n             the lowest significant bytes)\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#6C](https://www.evm.codes/#6C)\n    \"\"\"\n\n    PUSH14 = Opcode(0x6D, pushed_stack_items=1, data_portion_length=14)\n    \"\"\"\n    PUSH14() = value\n    ----\n\n    Description\n    ----\n    Place 14 byte item on stack\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - value: pushed value, aligned to the right (put in\n             the lowest significant bytes)\n\n    Fork\n    ----\n    Frontier\n\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#6D](https://www.evm.codes/#6D)\n    \"\"\"\n\n    PUSH15 = Opcode(0x6E, pushed_stack_items=1, data_portion_length=15)\n    \"\"\"\n    PUSH15() = value\n    ----\n\n    Description\n    ----\n    Place 15 byte item on stack\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - value: pushed value, aligned to the right (put in\n             the lowest significant bytes)\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#6E](https://www.evm.codes/#6E)\n    \"\"\"\n\n    PUSH16 = Opcode(0x6F, pushed_stack_items=1, data_portion_length=16)\n    \"\"\"\n    PUSH16() = value\n    ----\n\n    Description\n    ----\n    Place 16 byte item on stack\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - value: pushed value, aligned to the right (put in\n             the lowest significant bytes)\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#6F](https://www.evm.codes/#6F)\n    \"\"\"\n\n    PUSH17 = Opcode(0x70, pushed_stack_items=1, data_portion_length=17)\n    \"\"\"\n    PUSH17() = value\n    ----\n\n    Description\n    ----\n    Place 17 byte item on stack\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - value: pushed value, aligned to the right (put in\n             the lowest significant bytes)\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#70](https://www.evm.codes/#70)\n    \"\"\"\n\n    PUSH18 = Opcode(0x71, pushed_stack_items=1, data_portion_length=18)\n    \"\"\"\n    PUSH18() = value\n    ----\n\n    Description\n    ----\n    Place 18 byte item on stack\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - value: pushed value, aligned to the right (put in\n             the lowest significant bytes)\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#71](https://www.evm.codes/#71)\n    \"\"\"\n\n    PUSH19 = Opcode(0x72, pushed_stack_items=1, data_portion_length=19)\n    \"\"\"\n    PUSH19() = value\n    ----\n\n    Description\n    ----\n    Place 19 byte item on stack\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - value: pushed value, aligned to the right (put in\n             the lowest significant bytes)\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#72](https://www.evm.codes/#72)\n    \"\"\"\n\n    PUSH20 = Opcode(0x73, pushed_stack_items=1, data_portion_length=20)\n    \"\"\"\n    PUSH20() = value\n    ----\n\n    Description\n    ----\n    Place 20 byte item on stack\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - value: pushed value, aligned to the right (put in\n             the lowest significant bytes)\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#73](https://www.evm.codes/#73)\n    \"\"\"\n\n    PUSH21 = Opcode(0x74, pushed_stack_items=1, data_portion_length=21)\n    \"\"\"\n    PUSH21() = value\n    ----\n\n    Description\n    ----\n    Place 21 byte item on stack\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - value: pushed value, aligned to the right (put in\n             the lowest significant bytes)\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#74](https://www.evm.codes/#74)\n    \"\"\"\n\n    PUSH22 = Opcode(0x75, pushed_stack_items=1, data_portion_length=22)\n    \"\"\"\n    PUSH22() = value\n    ----\n\n    Description\n    ----\n    Place 22 byte item on stack\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - value: pushed value, aligned to the right (put in\n             the lowest significant bytes)\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#75](https://www.evm.codes/#75)\n    \"\"\"\n\n    PUSH23 = Opcode(0x76, pushed_stack_items=1, data_portion_length=23)\n    \"\"\"\n    PUSH23() = value\n    ----\n\n    Description\n    ----\n    Place 23 byte item on stack\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - value: pushed value, aligned to the right (put in\n             the lowest significant bytes)\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#76](https://www.evm.codes/#76)\n    \"\"\"\n\n    PUSH24 = Opcode(0x77, pushed_stack_items=1, data_portion_length=24)\n    \"\"\"\n    PUSH24() = value\n    ----\n\n    Description\n    ----\n    Place 24 byte item on stack\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - value: pushed value, aligned to the right (put in\n             the lowest significant bytes)\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#77](https://www.evm.codes/#77)\n    \"\"\"\n\n    PUSH25 = Opcode(0x78, pushed_stack_items=1, data_portion_length=25)\n    \"\"\"\n    PUSH25() = value\n    ----\n\n    Description\n    ----\n    Place 25 byte item on stack\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - value: pushed value, aligned to the right (put in\n             the lowest significant bytes)\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#78](https://www.evm.codes/#78)\n    \"\"\"\n\n    PUSH26 = Opcode(0x79, pushed_stack_items=1, data_portion_length=26)\n    \"\"\"\n    PUSH26() = value\n    ----\n\n    Description\n    ----\n    Place 26 byte item on stack\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - value: pushed value, aligned to the right (put in\n             the lowest significant bytes)\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#79](https://www.evm.codes/#79)\n    \"\"\"\n\n    PUSH27 = Opcode(0x7A, pushed_stack_items=1, data_portion_length=27)\n    \"\"\"\n    PUSH27() = value\n    ----\n\n    Description\n    ----\n    Place 27 byte item on stack\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - value: pushed value, aligned to the right (put in\n             the lowest significant bytes)\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#7A](https://www.evm.codes/#7A)\n    \"\"\"\n\n    PUSH28 = Opcode(0x7B, pushed_stack_items=1, data_portion_length=28)\n    \"\"\"\n    PUSH28() = value\n    ----\n\n    Description\n    ----\n    Place 28 byte item on stack\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - value: pushed value, aligned to the right (put in\n             the lowest significant bytes)\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#7B](https://www.evm.codes/#7B)\n    \"\"\"\n\n    PUSH29 = Opcode(0x7C, pushed_stack_items=1, data_portion_length=29)\n    \"\"\"\n    PUSH29() = value\n    ----\n\n    Description\n    ----\n    Place 29 byte item on stack\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - value: pushed value, aligned to the right (put in\n             the lowest significant bytes)\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#7C](https://www.evm.codes/#7C)\n    \"\"\"\n\n    PUSH30 = Opcode(0x7D, pushed_stack_items=1, data_portion_length=30)\n    \"\"\"\n    PUSH30() = value\n    ----\n\n    Description\n    ----\n    Place 30 byte item on stack\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - value: pushed value, aligned to the right (put in\n             the lowest significant bytes)\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#7D](https://www.evm.codes/#7D)\n    \"\"\"\n\n    PUSH31 = Opcode(0x7E, pushed_stack_items=1, data_portion_length=31)\n    \"\"\"\n    PUSH31() = value\n    ----\n\n    Description\n    ----\n    Place 31 byte item on stack\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - value: pushed value, aligned to the right (put in\n             the lowest significant bytes)\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#7E](https://www.evm.codes/#7E)\n    \"\"\"\n\n    PUSH32 = Opcode(0x7F, pushed_stack_items=1, data_portion_length=32)\n    \"\"\"\n    PUSH32() = value\n    ----\n\n    Description\n    ----\n    Place 32 byte item on stack\n\n    Inputs\n    ----\n    - None\n\n    Outputs\n    ----\n    - value: pushed value, aligned to the right (put in\n             the lowest significant bytes)\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#7F](https://www.evm.codes/#7F)\n    \"\"\"\n\n    DUP1 = Opcode(0x80, pushed_stack_items=1, min_stack_height=1)\n    \"\"\"\n    DUP1(value) = value, value\n    ----\n\n    Description\n    ----\n    Duplicate 1st stack item\n\n    Inputs\n    ----\n    - value: value to duplicate\n\n    Outputs\n    ----\n    - value: duplicated value\n    - value: original value\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#80](https://www.evm.codes/#80)\n    \"\"\"\n\n    DUP2 = Opcode(0x81, pushed_stack_items=1, min_stack_height=2)\n    \"\"\"\n    DUP2(v1, v2) = v2, v1, v2\n    ----\n\n    Description\n    ----\n    Duplicate 2nd stack item\n\n    Inputs\n    ----\n    - v1: ignored value\n    - v2: value to duplicate\n\n    Outputs\n    ----\n    - v2: duplicated value\n    - v1: ignored value\n    - v2: original value\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#81](https://www.evm.codes/#81)\n    \"\"\"\n\n    DUP3 = Opcode(0x82, pushed_stack_items=1, min_stack_height=3)\n    \"\"\"\n    DUP3(v1, v2, v3) = v3, v1, v2, v3\n    ----\n\n    Description\n    ----\n    Duplicate 3rd stack item\n\n    Inputs\n    ----\n    - v1: ignored value\n    - v2: ignored value\n    - v3: value to duplicate\n\n    Outputs\n    ----\n    - v3: duplicated value\n    - v1: ignored value\n    - v2: ignored value\n    - v3: original value\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#82](https://www.evm.codes/#82)\n    \"\"\"\n\n    DUP4 = Opcode(0x83, pushed_stack_items=1, min_stack_height=4)\n    \"\"\"\n    DUP4(v1, v2, v3, v4) = v4, v1, v2, v3, v4\n    ----\n\n    Description\n    ----\n    Duplicate 4th stack item\n\n    Inputs\n    ----\n    - v1: ignored value\n    - v2: ignored value\n    - v3: ignored value\n    - v4: value to duplicate\n\n    Outputs\n    ----\n    - v4: duplicated value\n    - v1: ignored value\n    - v2: ignored value\n    - v3: ignored value\n    - v4: original value\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#83](https://www.evm.codes/#83)\n    \"\"\"\n\n    DUP5 = Opcode(0x84, pushed_stack_items=1, min_stack_height=5)\n    \"\"\"\n    DUP5(v1, v2, v3, v4, v5) = v5, v1, v2, v3, v4, v5\n    ----\n\n    Description\n    ----\n    Duplicate 5th stack item\n\n    Inputs\n    ----\n    - v1: ignored value\n    - v2: ignored value\n    - v3: ignored value\n    - v4: ignored value\n    - v5: value to duplicate\n\n    Outputs\n    ----\n    - v5: duplicated value\n    - v1: ignored value\n    - v2: ignored value\n    - v3: ignored value\n    - v4: ignored value\n    - v5: original value\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#84](https://www.evm.codes/#84)\n    \"\"\"\n\n    DUP6 = Opcode(0x85, pushed_stack_items=1, min_stack_height=6)\n    \"\"\"\n    DUP6(v1, v2, ..., v5, v6) = v6, v1, v2, ..., v5, v6\n    ----\n\n    Description\n    ----\n    Duplicate 6th stack item\n\n    Inputs\n    ----\n    - v1: ignored value\n    - v2: ignored value\n    - ...\n    - v5: ignored value\n    - v6: value to duplicate\n\n    Outputs\n    ----\n    - v6: duplicated value\n    - v1: ignored value\n    - v2: ignored value\n    - ...\n    - v5: ignored value\n    - v6: original value\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#85](https://www.evm.codes/#85)\n    \"\"\"\n\n    DUP7 = Opcode(0x86, pushed_stack_items=1, min_stack_height=7)\n    \"\"\"\n    DUP7(v1, v2, ..., v6, v7) = v7, v1, v2, ..., v6, v7\n    ----\n\n    Description\n    ----\n    Duplicate 7th stack item\n\n    Inputs\n    ----\n    - v1: ignored value\n    - v2: ignored value\n    - ...\n    - v6: ignored value\n    - v7: value to duplicate\n\n    Outputs\n    ----\n    - v7: duplicated value\n    - v1: ignored value\n    - v2: ignored value\n    - ...\n    - v6: ignored value\n    - v7: original value\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#86](https://www.evm.codes/#86)\n    \"\"\"\n\n    DUP8 = Opcode(0x87, pushed_stack_items=1, min_stack_height=8)\n    \"\"\"\n    DUP8(v1, v2, ..., v7, v8) = v8, v1, v2, ..., v7, v8\n    ----\n\n    Description\n    ----\n    Duplicate 8th stack item\n\n    Inputs\n    ----\n    - v1: ignored value\n    - v2: ignored value\n    - ...\n    - v7: ignored value\n    - v8: value to duplicate\n\n    Outputs\n    ----\n    - v8: duplicated value\n    - v1: ignored value\n    - v2: ignored value\n    - ...\n    - v7: ignored value\n    - v8: original value\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#87](https://www.evm.codes/#87)\n    \"\"\"\n\n    DUP9 = Opcode(0x88, pushed_stack_items=1, min_stack_height=9)\n    \"\"\"\n    DUP9(v1, v2, ..., v8, v9) = v9, v1, v2, ..., v8, v9\n    ----\n\n    Description\n    ----\n    Duplicate 9th stack item\n\n    Inputs\n    ----\n    - v1: ignored value\n    - v2: ignored value\n    - ...\n    - v8: ignored value\n    - v9: value to duplicate\n\n    Outputs\n    ----\n    - v9: duplicated value\n    - v1: ignored value\n    - v2: ignored value\n    - ...\n    - v8: ignored value\n    - v9: original value\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#88](https://www.evm.codes/#88)\n    \"\"\"\n    DUP10 = Opcode(0x89, pushed_stack_items=1, min_stack_height=10)\n    \"\"\"\n    DUP10(v1, v2, ..., v9, v10) = v10, v1, v2, ..., v9, v10\n    ----\n\n    Description\n    ----\n    Duplicate 10th stack item\n\n    Inputs\n    ----\n    - v1: ignored value\n    - v2: ignored value\n    - ...\n    - v9: ignored value\n    - v10: value to duplicate\n\n    Outputs\n    ----\n    - v10: duplicated value\n    - v1: ignored value\n    - v2: ignored value\n    - ...\n    - v9: ignored value\n    - v10: original value\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#89](https://www.evm.codes/#89)\n    \"\"\"\n\n    DUP11 = Opcode(0x8A, pushed_stack_items=1, min_stack_height=11)\n    \"\"\"\n    DUP11(v1, v2, ..., v10, v11) = v11, v1, v2, ..., v10, v11\n    ----\n\n    Description\n    ----\n    Duplicate 11th stack item\n\n    Inputs\n    ----\n    - v1: ignored value\n    - v2: ignored value\n    - ...\n    - v10: ignored value\n    - v11: value to duplicate\n\n    Outputs\n    ----\n    - v11: duplicated value\n    - v1: ignored value\n    - v2: ignored value\n    - ...\n    - v10: ignored value\n    - v11: original value\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#8A](https://www.evm.codes/#8A)\n    \"\"\"\n\n    DUP12 = Opcode(0x8B, pushed_stack_items=1, min_stack_height=12)\n    \"\"\"\n    DUP12(v1, v2, ..., v11, v12) = v12, v1, v2, ..., v11, v12\n    ----\n\n    Description\n    ----\n    Duplicate 12th stack item\n\n    Inputs\n    ----\n    - v1: ignored value\n    - v2: ignored value\n    - ...\n    - v11: ignored value\n    - v12: value to duplicate\n\n    Outputs\n    ----\n    - v12: duplicated value\n    - v1: ignored value\n    - v2: ignored value\n    - ...\n    - v11: ignored value\n    - v12: original value\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#8B](https://www.evm.codes/#8B)\n    \"\"\"\n\n    DUP13 = Opcode(0x8C, pushed_stack_items=1, min_stack_height=13)\n    \"\"\"\n    DUP13(v1, v2, ..., v12, v13) = v13, v1, v2, ..., v12, v13\n    ----\n\n    Description\n    ----\n    Duplicate 13th stack item\n\n    Inputs\n    ----\n    - v1: ignored value\n    - v2: ignored value\n    - ...\n    - v12: ignored value\n    - v13: value to duplicate\n\n    Outputs\n    ----\n    - v13: duplicated value\n    - v1: ignored value\n    - v2: ignored value\n    - ...\n    - v12: ignored value\n    - v13: original value\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#8C](https://www.evm.codes/#8C)\n    \"\"\"\n\n    DUP14 = Opcode(0x8D, pushed_stack_items=1, min_stack_height=14)\n    \"\"\"\n    DUP14(v1, v2, ..., v13, v14) = v14, v1, v2, ..., v13, v14\n    ----\n\n    Description\n    ----\n    Duplicate 14th stack item\n\n    Inputs\n    ----\n    - v1: ignored value\n    - v2: ignored value\n    - ...\n    - v13: ignored value\n    - v14: value to duplicate\n\n    Outputs\n    ----\n    - v14: duplicated value\n    - v1: ignored value\n    - v2: ignored value\n    - ...\n    - v13: ignored value\n    - v14: original value\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#8D](https://www.evm.codes/#8D)\n    \"\"\"\n\n    DUP15 = Opcode(0x8E, pushed_stack_items=1, min_stack_height=15)\n    \"\"\"\n    DUP15(v1, v2, ..., v14, v15) = v15, v1, v2, ..., v14, v15\n    ----\n\n    Description\n    ----\n    Duplicate 15th stack item\n\n    Inputs\n    ----\n    - v1: ignored value\n    - v2: ignored value\n    - ...\n    - v14: ignored value\n    - v15: value to duplicate\n\n    Outputs\n    ----\n    - v15: duplicated value\n    - v1: ignored value\n    - v2: ignored value\n    - ...\n    - v14: ignored value\n    - v15: original value\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#8E](https://www.evm.codes/#8E)\n    \"\"\"\n\n    DUP16 = Opcode(0x8F, pushed_stack_items=1, min_stack_height=16)\n    \"\"\"\n    DUP16(v1, v2, ..., v15, v16) = v16, v1, v2, ..., v15, v16\n    ----\n\n    Description\n    ----\n    Duplicate 16th stack item\n\n    Inputs\n    ----\n    - v1: ignored value\n    - v2: ignored value\n    - ...\n    - v15: ignored value\n    - v16: value to duplicate\n\n    Outputs\n    ----\n    - v16: duplicated value\n    - v1: ignored value\n    - v2: ignored value\n    - ...\n    - v15: ignored value\n    - v16: original value\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#8F](https://www.evm.codes/#8F)\n    \"\"\"\n\n    SWAP1 = Opcode(0x90, min_stack_height=2)\n    \"\"\"\n    SWAP1(v1, v2) = v2, v1\n    ----\n\n    Description\n    ----\n    Exchange the top stack item with the second stack item.\n\n    Inputs\n    ----\n    - v1: value to swap\n    - v2: value to swap\n\n    Outputs\n    ----\n    - v1: swapped value\n    - v2: swapped value\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#90](https://www.evm.codes/#90)\n    \"\"\"\n\n    SWAP2 = Opcode(0x91, min_stack_height=3)\n    \"\"\"\n    SWAP2(v1, v2, v3) = v3, v2, v1\n    ----\n\n    Description\n    ----\n    Exchange 1st and 3rd stack items\n\n    Inputs\n    ----\n    - v1: value to swap\n    - v2: ignored value\n    - v3: value to swap\n\n    Outputs\n    ----\n    - v3: swapped value\n    - v2: ignored value\n    - v1: swapped value\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#91](https://www.evm.codes/#91)\n    \"\"\"\n\n    SWAP3 = Opcode(0x92, min_stack_height=4)\n    \"\"\"\n    SWAP3(v1, v2, v3, v4) = v4, v2, v3, v1\n    ----\n\n    Description\n    ----\n    Exchange 1st and 4th stack items\n\n    Inputs\n    ----\n    - v1: value to swap\n    - v2: ignored value\n    - v3: ignored value\n    - v4: value to swap\n\n    Outputs\n    ----\n    - v4: swapped value\n    - v2: ignored value\n    - v3: ignored value\n    - v1: swapped value\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#92](https://www.evm.codes/#92)\n    \"\"\"\n\n    SWAP4 = Opcode(0x93, min_stack_height=5)\n    \"\"\"\n    SWAP4(v1, v2, ..., v4, v5) = v5, v2, ..., v4, v1\n    ----\n\n    Description\n    ----\n    Exchange 1st and 5th stack items\n\n    Inputs\n    ----\n    - v1: value to swap\n    - v2: ignored value\n    - ...\n    - v4: ignored value\n    - v5: value to swap\n\n    Outputs\n    ----\n    - v5: swapped value\n    - v2: ignored value\n    - ...\n    - v4: ignored value\n    - v1: swapped value\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#93](https://www.evm.codes/#93)\n    \"\"\"\n\n    SWAP5 = Opcode(0x94, min_stack_height=6)\n    \"\"\"\n    SWAP5(v1, v2, ..., v5, v6) = v6, v2, ..., v5, v1\n    ----\n\n    Description\n    ----\n    Exchange 1st and 6th stack items\n\n    Inputs\n    ----\n    - v1: value to swap\n    - v2: ignored value\n    - ...\n    - v5: ignored value\n    - v6: value to swap\n\n    Outputs\n    ----\n    - v6: swapped value\n    - v2: ignored value\n    - ...\n    - v5: ignored value\n    - v1: swapped value\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#94](https://www.evm.codes/#94)\n    \"\"\"\n\n    SWAP6 = Opcode(0x95, min_stack_height=7)\n    \"\"\"\n    SWAP6(v1, v2, ..., v6, v7) = v7, v2, ..., v6, v1\n    ----\n\n    Description\n    ----\n    Exchange 1st and 7th stack items\n\n    Inputs\n    ----\n    - v1: value to swap\n    - v2: ignored value\n    - ...\n    - v6: ignored value\n    - v7: value to swap\n\n    Outputs\n    ----\n    - v7: swapped value\n    - v2: ignored value\n    - ...\n    - v6: ignored value\n    - v1: swapped value\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#95](https://www.evm.codes/#95)\n    \"\"\"\n\n    SWAP7 = Opcode(0x96, min_stack_height=8)\n    \"\"\"\n    SWAP7(v1, v2, ..., v7, v8) = v8, v2, ..., v7, v1\n    ----\n\n    Description\n    ----\n    Exchange 1st and 8th stack items\n\n    Inputs\n    ----\n    - v1: value to swap\n    - v2: ignored value\n    - ...\n    - v7: ignored value\n    - v8: value to swap\n\n    Outputs\n    ----\n    - v8: swapped value\n    - v2: ignored value\n    - ...\n    - v7: ignored value\n    - v1: swapped value\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#96](https://www.evm.codes/#96)\n    \"\"\"\n\n    SWAP8 = Opcode(0x97, min_stack_height=9)\n    \"\"\"\n    SWAP8(v1, v2, ..., v8, v9) = v9, v2, ..., v8, v1\n    ----\n\n    Description\n    ----\n    Exchange 1st and 9th stack items\n\n    Inputs\n    ----\n    - v1: value to swap\n    - v2: ignored value\n    - ...\n    - v8: ignored value\n    - v9: value to swap\n\n    Outputs\n    ----\n    - v9: swapped value\n    - v2: ignored value\n    - ...\n    - v8: ignored value\n    - v1: swapped value\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#97](https://www.evm.codes/#97)\n    \"\"\"\n\n    SWAP9 = Opcode(0x98, min_stack_height=10)\n    \"\"\"\n    SWAP9(v1, v2, ..., v9, v10) = v10, v2, ..., v9, v1\n    ----\n\n    Description\n    ----\n    Exchange 1st and 10th stack items\n\n    Inputs\n    ----\n    - v1: value to swap\n    - v2: ignored value\n    - ...\n    - v9: ignored value\n    - v10: value to swap\n\n    Outputs\n    ----\n    - v10: swapped value\n    - v2: ignored value\n    - ...\n    - v9: ignored value\n    - v1: swapped value\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#98](https://www.evm.codes/#98)\n    \"\"\"\n\n    SWAP10 = Opcode(0x99, min_stack_height=11)\n    \"\"\"\n    SWAP10(v1, v2, ..., v10, v11) = v11, v2, ..., v10, v1\n    ----\n\n    Description\n    ----\n    Exchange 1st and 11th stack items\n\n    Inputs\n    ----\n    - v1: value to swap\n    - v2: ignored value\n    - ...\n    - v10: ignored value\n    - v11: value to swap\n\n    Outputs\n    ----\n    - v11: swapped value\n    - v2: ignored value\n    - ...\n    - v10: ignored value\n    - v1: swapped value\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#99](https://www.evm.codes/#99)\n    \"\"\"\n\n    SWAP11 = Opcode(0x9A, min_stack_height=12)\n    \"\"\"\n    SWAP11(v1, v2, ..., v11, v12) = v12, v2, ..., v11, v1\n    ----\n\n    Description\n    ----\n    Exchange 1st and 12th stack items\n\n    Inputs\n    ----\n    - v1: value to swap\n    - v2: ignored value\n    - ...\n    - v11: ignored value\n    - v12: value to swap\n\n    Outputs\n    ----\n    - v12: swapped value\n    - v2: ignored value\n    - ...\n    - v11: ignored value\n    - v1: swapped value\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#9A](https://www.evm.codes/#9A)\n    \"\"\"\n\n    SWAP12 = Opcode(0x9B, min_stack_height=13)\n    \"\"\"\n    SWAP12(v1, v2, ..., v12, v13) = v13, v2, ..., v12, v1\n    ----\n\n    Description\n    ----\n    Exchange 1st and 13th stack items\n\n    Inputs\n    ----\n    - v1: value to swap\n    - v2: ignored value\n    - ...\n    - v12: ignored value\n    - v13: value to swap\n\n    Outputs\n    ----\n    - v13: swapped value\n    - v2: ignored value\n    - ...\n    - v12: ignored value\n    - v1: swapped value\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#9B](https://www.evm.codes/#9B)\n    \"\"\"\n\n    SWAP13 = Opcode(0x9C, min_stack_height=14)\n    \"\"\"\n    SWAP13(v1, v2, ..., v13, v14) = v14, v2, ..., v13, v1\n    ----\n\n    Description\n    ----\n    Exchange 1st and 14th stack items\n\n    Inputs\n    ----\n    - v1: value to swap\n    - v2: ignored value\n    - ...\n    - v13: ignored value\n    - v14: value to swap\n\n    Outputs\n    ----\n    - v14: swapped value\n    - v2: ignored value\n    - ...\n    - v13: ignored value\n    - v1: swapped value\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#9C](https://www.evm.codes/#9C)\n    \"\"\"\n\n    SWAP14 = Opcode(0x9D, min_stack_height=15)\n    \"\"\"\n    SWAP14(v1, v2, ..., v14, v15) = v15, v2, ..., v14, v1\n    ----\n\n    Description\n    ----\n    Exchange 1st and 15th stack items\n\n    Inputs\n    ----\n    - v1: value to swap\n    - v2: ignored value\n    - ...\n    - v14: ignored value\n    - v15: value to swap\n\n    Outputs\n    ----\n    - v15: swapped value\n    - v2: ignored value\n    - ...\n    - v14: ignored value\n    - v1: swapped value\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#9D](https://www.evm.codes/#9D)\n    \"\"\"\n\n    SWAP15 = Opcode(0x9E, min_stack_height=16)\n    \"\"\"\n    SWAP15(v1, v2, ..., v15, v16) = v16, v2, ..., v15, v1\n    ----\n\n    Description\n    ----\n    Exchange 1st and 16th stack items\n\n    Inputs\n    ----\n    - v1: value to swap\n    - v2: ignored value\n    - ...\n    - v15: ignored value\n    - v16: value to swap\n\n    Outputs\n    ----\n    - v16: swapped value\n    - v2: ignored value\n    - ...\n    - v15: ignored value\n    - v1: swapped value\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#9E](https://www.evm.codes/#9E)\n    \"\"\"\n\n    SWAP16 = Opcode(0x9F, min_stack_height=17)\n    \"\"\"\n    SWAP16(v1, v2, ..., v16, v17) = v17, v2, ..., v16, v1\n    ----\n\n    Description\n    ----\n    Exchange 1st and 17th stack items\n\n    Inputs\n    ----\n    - v1: value to swap\n    - v2: ignored value\n    - ...\n    - v16: ignored value\n    - v17: value to swap\n\n    Outputs\n    ----\n    - v17: swapped value\n    - v2: ignored value\n    - ...\n    - v16: ignored value\n    - v1: swapped value\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    3\n\n    Source: [evm.codes/#9F](https://www.evm.codes/#9F)\n    \"\"\"\n\n    LOG0 = Opcode(0xA0, popped_stack_items=2, kwargs=[\"offset\", \"size\"])\n    \"\"\"\n    LOG0(offset, size)\n    ----\n\n    Description\n    ----\n    Append log record with no topics\n\n    Inputs\n    ----\n    - offset: byte offset in the memory in bytes\n    - size: byte size to copy\n\n    Outputs\n    ----\n    - None\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    - static_gas = 375\n    - dynamic_gas = 375 * topic_count + 8 * size + memory_expansion_cost\n\n    Source: [evm.codes/#A0](https://www.evm.codes/#A0)\n    \"\"\"\n\n    LOG1 = Opcode(0xA1, popped_stack_items=3, kwargs=[\"offset\", \"size\", \"topic_1\"])\n    \"\"\"\n    LOG1(offset, size, topic_1)\n    ----\n\n    Description\n    ----\n    Append log record with one topic\n\n    Inputs\n    ----\n    - offset: byte offset in the memory in bytes\n    - size: byte size to copy\n    - topic_1: 32-byte value\n\n    Outputs\n    ----\n    - None\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    - static_gas = 375\n    - dynamic_gas = 375 * topic_count + 8 * size + memory_expansion_cost\n\n    Source: [evm.codes/#A1](https://www.evm.codes/#A1)\n    \"\"\"\n\n    LOG2 = Opcode(0xA2, popped_stack_items=4, kwargs=[\"offset\", \"size\", \"topic_1\", \"topic_2\"])\n    \"\"\"\n    LOG2(offset, size, topic_1, topic_2)\n    ----\n\n    Description\n    ----\n    Append log record with two topics\n\n    Inputs\n    ----\n    - offset: byte offset in the memory in bytes\n    - size: byte size to copy\n    - topic_1: 32-byte value\n    - topic_2: 32-byte value\n\n    Outputs\n    ----\n    - None\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    - static_gas = 375\n    - dynamic_gas = 375 * topic_count + 8 * size + memory_expansion_cost\n\n    Source: [evm.codes/#A2](https://www.evm.codes/#A2)\n    \"\"\"\n\n    LOG3 = Opcode(\n        0xA3, popped_stack_items=5, kwargs=[\"offset\", \"size\", \"topic_1\", \"topic_2\", \"topic_3\"]\n    )\n    \"\"\"\n    LOG3(offset, size, topic_1, topic_2, topic_3)\n    ----\n\n    Description\n    ----\n    Append log record with three topics\n\n    Inputs\n    ----\n    - offset: byte offset in the memory in bytes\n    - size: byte size to copy\n    - topic_1: 32-byte value\n    - topic_2: 32-byte value\n    - topic_3: 32-byte value\n\n    Outputs\n    ----\n    - None\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    - static_gas = 375\n    - dynamic_gas = 375 * topic_count + 8 * size + memory_expansion_cost\n\n    Source: [evm.codes/#A3](https://www.evm.codes/#A3)\n    \"\"\"\n\n    LOG4 = Opcode(\n        0xA4,\n        popped_stack_items=6,\n        kwargs=[\"offset\", \"size\", \"topic_1\", \"topic_2\", \"topic_3\", \"topic_4\"],\n    )\n    \"\"\"\n    LOG4(offset, size, topic_1, topic_2, topic_3, topic_4)\n    ----\n\n    Description\n    ----\n    Append log record with four topics\n\n    Inputs\n    ----\n    - offset: byte offset in the memory in bytes\n    - size: byte size to copy\n    - topic_1: 32-byte value\n    - topic_2: 32-byte value\n    - topic_3: 32-byte value\n    - topic_4: 32-byte value\n\n    Outputs\n    ----\n    - None\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    - static_gas = 375\n    - dynamic_gas = 375 * topic_count + 8 * size + memory_expansion_cost\n\n    Source: [evm.codes/#A4](https://www.evm.codes/#A4)\n    \"\"\"\n\n    RJUMP = Opcode(0xE0, data_portion_length=2)\n    \"\"\"\n    !!! Note: This opcode is under development\n\n    RJUMP()\n    ----\n\n    Description\n    ----\n\n    Inputs\n    ----\n\n    Outputs\n    ----\n\n    Fork\n    ----\n    EOF Fork\n\n    Gas\n    ----\n\n    Source: [eips.ethereum.org/EIPS/eip-4200](https://eips.ethereum.org/EIPS/\n    eip-4200)\n    \"\"\"\n\n    DATALOAD = Opcode(0xD0, popped_stack_items=1, pushed_stack_items=1, kwargs=[\"offset\"])\n    \"\"\"\n    !!! Note: This opcode is under development\n\n    DATALOAD(offset)\n    ----\n\n    Description\n    ----\n    Reads 32 bytes of data at offset onto the stack\n\n    Inputs\n    ----\n    - offset: offset within the data section to start copying\n\n    Outputs\n    ----\n    none\n\n    Fork\n    ----\n    EOF Fork\n\n    Gas\n    ----\n    4\n\n    Source: [eips.ethereum.org/EIPS/eip-7480](https://eips.ethereum.org/EIPS/\n    eip-7480)\n    \"\"\"\n\n    DATALOADN = Opcode(0xD1, pushed_stack_items=1, data_portion_length=2)\n    \"\"\"\n    !!! Note: This opcode is under development\n\n    DATALOADN()\n    ----\n\n    Description\n    ----\n    Reads 32 bytes of data at offset onto the stack\n\n    Immediates\n    ----\n    2 bytes forming a UInt16, which is the offset into the data section.\n\n    Inputs\n    ----\n    none\n\n    Outputs\n    ----\n    none\n\n    Fork\n    ----\n    EOF Fork\n\n    Gas\n    ----\n    3\n\n    Source: [eips.ethereum.org/EIPS/eip-7480](https://eips.ethereum.org/EIPS/\n    eip-7480)\n    \"\"\"\n\n    DATASIZE = Opcode(0xD2, pushed_stack_items=1)\n    \"\"\"\n    !!! Note: This opcode is under development\n\n    DATASIZE()\n    ----\n\n    Description\n    ----\n    Returns the size of the data section\n\n    Inputs\n    ----\n\n    Outputs\n    ----\n    The size of the data section. If there is no data section, returns 0.\n\n    Fork\n    ----\n    EOF Fork\n\n    Gas\n    ----\n    2\n\n    Source: [eips.ethereum.org/EIPS/eip-7480](https://eips.ethereum.org/EIPS/\n    eip-7480)\n    \"\"\"\n\n    DATACOPY = Opcode(0xD3, popped_stack_items=3, kwargs=[\"dest_offset\", \"offset\", \"size\"])\n    \"\"\"\n    !!! Note: This opcode is under development\n\n    DATACOPY(dest_offset, offset, size)\n    ----\n\n    Description\n    ----\n    Copies data from the data section into call frame memory\n\n    Inputs\n    ----\n    - dest_offset: The offset within the memory section to start copying to\n    - offset: The offset within the data section to start copying from\n    - size: The number of bytes to copy\n\n    Outputs\n    ----\n    none\n\n    Fork\n    ----\n    EOF Fork\n\n    Gas\n    ----\n    - minimum_word_size = (size + 31) / 32\n    - static_gas = 3\n    - dynamic_gas = 3 * minimum_word_size + memory_expansion_cost\n\n    Source: [eips.ethereum.org/EIPS/eip-7480](https://eips.ethereum.org/EIPS/\n    eip-7480)\n    \"\"\"\n\n    RJUMPI = Opcode(0xE1, popped_stack_items=1, data_portion_length=2)\n    \"\"\"\n    !!! Note: This opcode is under development\n\n    RJUMPI()\n    ----\n\n    Description\n    ----\n\n    Inputs\n    ----\n\n    Outputs\n    ----\n\n    Fork\n    ----\n    EOF Fork\n\n    Gas\n    ----\n\n    Source: [eips.ethereum.org/EIPS/eip-4200](https://eips.ethereum.org/EIPS/\n    eip-4200)\n    \"\"\"\n\n    RJUMPV = Opcode(\n        0xE2,\n        popped_stack_items=1,\n        data_portion_formatter=_rjumpv_encoder,\n    )\n    \"\"\"\n    !!! Note: This opcode is under development\n\n    RJUMPV()\n    ----\n\n    Description\n    ----\n    Relative jump with variable offset.\n\n    When calling this opcode to generate bytecode, the first argument is\n    used to format the data portion of the opcode, and it can be either\n    of two types:\n    - A bytes type, and in this instance the bytes are used verbatim\n      as the data portion.\n    - An integer iterable, list or tuple or any other iterable, where\n      each element is a jump offset.\n\n    Inputs\n    ----\n\n    Outputs\n    ----\n\n    Fork\n    ----\n    EOF Fork\n\n    Gas\n    ----\n\n    Source: [eips.ethereum.org/EIPS/eip-4200](https://eips.ethereum.org/EIPS/\n    eip-4200)\n    \"\"\"\n\n    CALLF = Opcode(0xE3, data_portion_length=2, unchecked_stack=True)\n    \"\"\"\n    !!! Note: This opcode is under development\n\n    CALLF()\n    ----\n\n    Description\n    ----\n\n    - deduct 5 gas\n    - read uint16 operand idx\n    - if 1024 < len(stack) + types[idx].max_stack_height - types[idx].inputs,\n      execution results in an exceptional halt\n    - if 1024 <= len(return_stack), execution results in an exceptional halt\n    - push new element to return_stack (current_code_idx, pc+3)\n    - update current_code_idx to idx and set pc to 0\n\n    Inputs\n    ----\n    Any: The inputs are not checked because we cannot know how many inputs\n    the callee function/section requires\n\n    Outputs\n    ----\n    Any: The outputs are variable because we cannot know how many outputs the\n    callee function/section produces\n\n    Fork\n    ----\n    EOF Fork\n\n    Gas\n    ----\n    5\n\n    Source:\n    [ipsilon/eof/blob/main/spec/eof.md](https://github.com/ipsilon/eof/blob/\n    main/spec/eof.md)\n    \"\"\"\n\n    RETF = Opcode(0xE4, terminating=True)\n    \"\"\"\n    !!! Note: This opcode is under development\n\n    RETF()\n    ----\n\n    Description\n    ----\n\n    Inputs\n    ----\n\n    Outputs\n    ----\n\n    Fork\n    ----\n    EOF Fork\n\n    Gas\n    ----\n    3\n    \"\"\"\n\n    JUMPF = Opcode(0xE5, data_portion_length=2, terminating=True, unchecked_stack=True)\n    \"\"\"\n    !!! Note: This opcode is under development\n\n    JUMPF()\n    ----\n\n    Description\n    ----\n\n    - deduct 5 gas\n    - read uint16 operand idx\n    - if 1024 < len(stack) + types[idx].max_stack_height - types[idx].inputs,\n    execution results in an exceptional halt\n    - set current_code_idx to idx\n    - set pc = 0\n\n\n    Inputs\n    ----\n\n    Outputs\n    ----\n\n    Fork\n    ----\n    EOF Fork\n\n    Gas\n    ----\n    5\n\n    \"\"\"\n\n    DUPN = Opcode(\n        0xE6,\n        pushed_stack_items=1,\n        data_portion_length=1,\n        stack_properties_modifier=_dupn_stack_properties_modifier,\n    )\n    \"\"\"\n    !!! Note: This opcode is under development\n\n    DUPN()\n    ----\n\n    Description\n    ----\n\n    - deduct 3 gas\n    - read uint8 operand imm\n    - n = imm + 1\n    - n‘th (1-based) stack item is duplicated at the top of the stack\n    - Stack validation: stack_height >= n\n\n\n    Inputs\n    ----\n\n    Outputs\n    ----\n\n    Fork\n    ----\n    EOF Fork\n\n    Gas\n    ----\n\n    \"\"\"\n\n    SWAPN = Opcode(\n        0xE7, data_portion_length=1, stack_properties_modifier=_swapn_stack_properties_modifier\n    )\n    \"\"\"\n    !!! Note: This opcode is under development\n\n    SWAPN()\n    ----\n\n    Description\n    ----\n\n    - deduct 3 gas\n    - read uint8 operand imm\n    - n = imm + 1\n    - n + 1th stack item is swapped with the top stack item (1-based).\n    - Stack validation: stack_height >= n + 1\n\n\n    Inputs\n    ----\n\n    Outputs\n    ----\n\n    Fork\n    ----\n    EOF Fork\n\n    Gas\n    ----\n\n    \"\"\"\n\n    EXCHANGE = Opcode(\n        0xE8,\n        data_portion_length=1,\n        data_portion_formatter=_exchange_encoder,\n        stack_properties_modifier=_exchange_stack_properties_modifier,\n    )\n    \"\"\"\n    !!! Note: This opcode is under development\n\n    EXCHANGE[x, y]\n    ----\n\n    Description\n    ----\n    Exchanges two stack positions.  Two nybbles, n is high 4 bits + 1,\n    then  m is 4 low bits + 1.\n    Exchanges the n+1'th item with the n + m + 1 item.\n\n    Inputs x and y when the opcode is used as `EXCHANGE[x, y]`, are equal to:\n    - x = n + 1\n    - y = n + m + 1\n    Which each equals to 1-based stack positions swapped.\n\n    Inputs\n    ----\n    n + m + 1, or ((imm >> 4) + (imm &0x0F) + 3) from the raw immediate,\n\n    Outputs\n    ----\n    n + m + 1, or ((imm >> 4) + (imm &0x0F) + 3) from the raw immediate,\n\n    Fork\n    ----\n    EOF_FORK\n\n    Gas\n    ----\n    3\n\n    \"\"\"\n\n    EOFCREATE = Opcode(\n        0xEC,\n        popped_stack_items=4,\n        pushed_stack_items=1,\n        data_portion_length=1,\n        kwargs=[\"salt\", \"input_offset\", \"input_size\", \"value\"],\n    )\n    \"\"\"\n    !!! Note: This opcode is under development\n\n    EOFCREATE[initcontainer_index] (salt, input_offset, input_size, value)\n    ----\n\n    Description\n    ----\n\n    Inputs\n    ----\n\n    Outputs\n    ----\n\n    Fork\n    ----\n\n    Gas\n    ----\n\n    \"\"\"\n\n    TXCREATE = Opcode(\n        0xED,\n        popped_stack_items=5,\n        pushed_stack_items=1,\n        kwargs=[\"tx_initcode_hash\", \"salt\", \"input_offset\", \"input_size\", \"value\"],\n    )\n    \"\"\"\n    !!! Note: This opcode is under development\n\n    TXCREATE (tx_initcode_hash, salt, input_offset, input_size, value)\n    ----\n\n    Description\n    ----\n\n    Inputs\n    ----\n\n    Outputs\n    ----\n\n    Fork\n    ----\n\n    Gas\n    ----\n\n    \"\"\"\n\n    RETURNCODE = Opcode(\n        0xEE,\n        popped_stack_items=2,\n        data_portion_length=1,\n        terminating=True,\n        kwargs=[\"auxdata_offset\", \"auxdata_size\"],\n    )\n    \"\"\"\n    !!! Note: This opcode is under development\n\n    RETURNCODE()\n    ----\n\n    Description\n    ----\n\n    Inputs\n    ----\n\n    Outputs\n    ----\n\n    Fork\n    ----\n\n    Gas\n    ----\n\n    \"\"\"\n\n    CREATE = Opcode(\n        0xF0, popped_stack_items=3, pushed_stack_items=1, kwargs=[\"value\", \"offset\", \"size\"]\n    )\n    \"\"\"\n    CREATE(value, offset, size) = address\n    ----\n\n    Description\n    ----\n    Create a new contract with the given code\n\n    Inputs\n    ----\n    - value: value in wei to send to the new account\n    - offset: byte offset in the memory in bytes, the initialization code\n              for the new account\n    - size: byte size to copy (size of the initialization code)\n\n    Outputs\n    ----\n    - address: the address of the deployed contract, 0 if the deployment failed\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    ```\n    minimum_word_size = (size + 31) / 32\n    init_code_cost = 2 * minimum_word_size\n    code_deposit_cost = 200 * deployed_code_size\n\n    static_gas = 32000\n    dynamic_gas = init_code_cost + memory_expansion_cost +\n                  deployment_code_execution_cost +\n                  code_deposit_cost\n    ```\n\n    Source: [evm.codes/#F0](https://www.evm.codes/#F0)\n    \"\"\"\n\n    CALL = Opcode(\n        0xF1,\n        popped_stack_items=7,\n        pushed_stack_items=1,\n        kwargs=[\"gas\", \"address\", \"value\", \"args_offset\", \"args_size\", \"ret_offset\", \"ret_size\"],\n        kwargs_defaults={\"gas\": GAS},\n    )\n    \"\"\"\n    CALL(gas, address, value, args_offset, args_size, ret_offset, ret_size)\n    = success\n    ----\n\n    Description\n    ----\n    Message-call into an account\n\n    Inputs\n    ----\n    - gas: amount of gas to send to the sub context to execute. The gas that\n           is not used by the sub context is returned to this one\n    - address: the account which context to execute\n    - value: value in wei to send to the account\n    - args_offset: byte offset in the memory in bytes, the calldata of\n                   the sub context\n    - args_size: byte size to copy (size of the calldata)\n    - ret_offset: byte offset in the memory in bytes, where to store the\n                  return data of the sub context\n    - ret_size: byte size to copy (size of the return data)\n\n    Outputs\n    ----\n    - success: return 0 if the sub context reverted, 1 otherwise\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    ```\n    static_gas = 0\n    dynamic_gas = memory_expansion_cost + code_execution_cost +\n                  address_access_cost + positive_value_cost +\n                  value_to_empty_account_cost\n    ```\n\n    Source: [evm.codes/#F1](https://www.evm.codes/#F1)\n    \"\"\"\n\n    CALLCODE = Opcode(\n        0xF2,\n        popped_stack_items=7,\n        pushed_stack_items=1,\n        kwargs=[\"gas\", \"address\", \"value\", \"args_offset\", \"args_size\", \"ret_offset\", \"ret_size\"],\n        kwargs_defaults={\"gas\": GAS},\n    )\n    \"\"\"\n    CALLCODE(gas, address, value, args_offset, args_size, ret_offset, ret_size)\n    = success\n    ----\n\n    Description\n    ----\n    Message-call into this account with an alternative account's code.\n    Executes code starting at the address to which the call is made.\n\n    Inputs\n    ----\n    - gas: amount of gas to send to the sub context to execute. The gas that\n    is not used by the sub context is returned to this one\n    - address: the account which code to execute\n    - value: value in wei to send to the account\n    - args_offset: byte offset in the memory in bytes, the calldata of\n                   the sub context\n    - args_size: byte size to copy (size of the calldata)\n    - ret_offset: byte offset in the memory in bytes, where to store the\n                  return data of the sub context\n    - ret_size: byte size to copy (size of the return data)\n\n    Outputs\n    ----\n    - success: return 0 if the sub context reverted, 1 otherwise\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    ```\n    static_gas = 0\n    dynamic_gas = memory_expansion_cost + code_execution_cost +\n                  address_access_cost + positive_value_cost\n    ```\n\n    Source: [evm.codes/#F2](https://www.evm.codes/#F2)\n    \"\"\"\n\n    RETURN = Opcode(0xF3, popped_stack_items=2, kwargs=[\"offset\", \"size\"], terminating=True)\n    \"\"\"\n    RETURN(offset, size)\n    ----\n\n    Description\n    ----\n    Halt execution returning output data\n\n    Inputs\n    ----\n    - offset: byte offset in the memory in bytes, to copy what will be\n              the return data of this context\n    - size: byte size to copy (size of the return data)\n\n    Outputs\n    ----\n    - None\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    - static_gas = 0\n    - dynamic_gas = memory_expansion_cost\n\n    Source: [evm.codes/#F3](https://www.evm.codes/#F3)\n    \"\"\"\n\n    DELEGATECALL = Opcode(\n        0xF4,\n        popped_stack_items=6,\n        pushed_stack_items=1,\n        kwargs=[\"gas\", \"address\", \"args_offset\", \"args_size\", \"ret_offset\", \"ret_size\"],\n        kwargs_defaults={\"gas\": GAS},\n    )\n    \"\"\"\n    DELEGATECALL(gas, address, args_offset, args_size, ret_offset, ret_size)\n    = success\n    ----\n\n    Description\n    ----\n    Message-call into this account with an alternative account's code, but\n    persisting the current values for sender and value\n\n    Inputs\n    ----\n    - gas: amount of gas to send to the sub context to execute. The gas that\n    is not used by the sub context is returned to this one\n    - address: the account which code to execute\n    - args_offset: byte offset in the memory in bytes, the calldata of\n                   the sub context\n    - args_size: byte size to copy (size of the calldata)\n    - ret_offset: byte offset in the memory in bytes, where to store\n                  the return data of the sub context\n    - ret_size: byte size to copy (size of the return data)\n\n    Outputs\n    ----\n    - success: return 0 if the sub context reverted, 1 otherwise\n\n    Fork\n    ----\n    Byzantium\n\n    Gas\n    ----\n    - static_gas = 0\n    - dynamic_gas = memory_expansion_cost + code_execution_cost +\n                    address_access_cost\n\n    Source: [evm.codes/#F4](https://www.evm.codes/#F4)\n    \"\"\"\n\n    CREATE2 = Opcode(\n        0xF5,\n        popped_stack_items=4,\n        pushed_stack_items=1,\n        kwargs=[\"value\", \"offset\", \"size\", \"salt\"],\n    )\n    \"\"\"\n    CREATE2(value, offset, size, salt) = address\n    ----\n\n    Description\n    ----\n    Creates a new contract\n\n    Inputs\n    ----\n    - value: value in wei to send to the new account\n    - offset: byte offset in the memory in bytes, the initialization code\n              of the new account\n    - size: byte size to copy (size of the initialization code)\n    - salt: 32-byte value used to create the new account at a\n            deterministic address\n\n    Outputs\n    ----\n    - address: the address of the deployed contract, 0 if the deployment failed\n\n    Fork\n    ----\n    Constantinople\n\n    Gas\n    ----\n    ```\n    minimum_word_size = (size + 31) / 32\n    init_code_cost = 2 * minimum_word_size\n    hash_cost = 6 * minimum_word_size\n    code_deposit_cost = 200 * deployed_code_size\n\n    static_gas = 32000\n    dynamic_gas = init_code_cost + hash_cost + memory_expansion_cost\n        + deployment_code_execution_cost + code_deposit_cost\n    ```\n\n    Source: [evm.codes/#F5](https://www.evm.codes/#F5)\n    \"\"\"\n\n    EXTCALL = Opcode(\n        0xF8,\n        popped_stack_items=4,\n        pushed_stack_items=1,\n        kwargs=[\"address\", \"args_offset\", \"args_size\", \"value\"],\n    )\n    \"\"\"\n    EXTCALL(address, args_offset, args_size, value) = address\n    ----\n\n    Description\n    ----\n    Message-call into an account\n\n    Inputs\n    ----\n    - address: the account which context to execute\n    - args_offset: byte offset in the memory in bytes, the calldata of\n                   the sub context\n    - args_size: byte size to copy (size of the calldata)\n    - value: value in wei to send to the account\n\n    Outputs\n    ----\n    - success:\n        - `0` if the call was successful.\n        - `1` if the call has reverted (also can be pushed earlier in a\n          light failure scenario).\n        - `2` if the call has failed.\n\n    Fork\n    ----\n    Prague\n\n    Gas\n    ----\n    ```\n    static_gas = 0\n    dynamic_gas = memory_expansion_cost + code_execution_cost +\n                  address_access_cost + positive_value_cost +\n                  value_to_empty_account_cost\n    ```\n\n    Source: [EIP-7069](https://eips.ethereum.org/EIPS/eip-7069)\n    \"\"\"\n\n    EXTDELEGATECALL = Opcode(\n        0xF9,\n        popped_stack_items=3,\n        pushed_stack_items=1,\n        kwargs=[\"address\", \"args_offset\", \"args_size\"],\n    )\n    \"\"\"\n    EXTDELEGATECALL(address, args_offset, args_size) = address\n    ----\n\n    Description\n    ----\n    Message-call into this account with an alternative account's code,\n    but persisting the current values for sender and value\n\n    Inputs\n    ----\n    - address: the account which context to execute\n    - args_offset: byte offset in the memory in bytes, the calldata of\n                   the sub context\n    - args_size: byte size to copy (size of the calldata)\n\n    Outputs\n    ----\n    - success:\n        - `0` if the call was successful.\n        - `1` if the call has reverted (also can be pushed earlier in a\n          light failure scenario).\n        - `2` if the call has failed.\n\n    Fork\n    ----\n    Prague\n\n    Gas\n    ----\n    - static_gas = 0\n    - dynamic_gas = memory_expansion_cost + code_execution_cost +\n                    address_access_cost\n\n    Source: [EIP-7069](https://eips.ethereum.org/EIPS/eip-7069)\n    \"\"\"\n\n    STATICCALL = Opcode(\n        0xFA,\n        popped_stack_items=6,\n        pushed_stack_items=1,\n        kwargs=[\"gas\", \"address\", \"args_offset\", \"args_size\", \"ret_offset\", \"ret_size\"],\n        kwargs_defaults={\"gas\": GAS},\n    )\n    \"\"\"\n    STATICCALL(gas, address, args_offset, args_size, ret_offset, ret_size)\n    = success\n    ----\n\n    Description\n    ----\n    Static message-call into an account\n\n    Inputs\n    ----\n    - gas: amount of gas to send to the sub context to execute. The gas\n    that is not used by the sub context is returned to this one\n    - address: the account which context to execute\n    - args_offset: byte offset in the memory in bytes, the calldata of the\n                   sub context\n    - args_size: byte size to copy (size of the calldata)\n    - ret_offset: byte offset in the memory in bytes, where to store the\n                  return data of the sub context\n    - ret_size: byte size to copy (size of the return data)\n\n    Outputs\n    ----\n    - success: return 0 if the sub context reverted, 1 otherwise\n\n    Fork\n    ----\n    Byzantium\n\n    Gas\n    ----\n    - static_gas = 0\n    - dynamic_gas = memory_expansion_cost + code_execution_cost +\n                    address_access_cost\n\n    Source: [evm.codes/#FA](https://www.evm.codes/#FA)\n    \"\"\"\n\n    EXTSTATICCALL = Opcode(\n        0xFB,\n        popped_stack_items=3,\n        pushed_stack_items=1,\n        kwargs=[\"address\", \"args_offset\", \"args_size\"],\n    )\n    \"\"\"\n    EXTSTATICCALL(address, args_offset, args_size) = address\n    ----\n\n    Description\n    ----\n    Static message-call into an account\n\n    Inputs\n    ----\n    - address: the account which context to execute\n    - args_offset: byte offset in the memory in bytes, the calldata\n                   of the sub context\n    - args_size: byte size to copy (size of the calldata)\n\n    Outputs\n    ----\n    - success:\n        - `0` if the call was successful.\n        - `1` if the call has reverted (also can be pushed earlier in a\n          light failure scenario).\n        - `2` if the call has failed.\n\n    Fork\n    ----\n    Prague\n\n    Gas\n    ----\n    - static_gas = 0\n    - dynamic_gas = memory_expansion_cost + code_execution_cost +\n                    address_access_cost\n\n    Source: [EIP-7069](https://eips.ethereum.org/EIPS/eip-7069)\n    \"\"\"\n\n    RETURNDATALOAD = Opcode(0xF7, popped_stack_items=1, pushed_stack_items=1, kwargs=[\"offset\"])\n    \"\"\"\n    RETURNDATALOAD(offset)\n    ----\n\n    Description\n    ----\n    Copy 32 bytes from returndata at offset onto the stack\n\n    Inputs\n    ----\n    - offset: byte offset in the return data from the last executed\n              sub context to copy\n\n    Fork\n    ----\n    EOF\n\n    Gas\n    ----\n    3\n    \"\"\"\n\n    REVERT = Opcode(0xFD, popped_stack_items=2, kwargs=[\"offset\", \"size\"], terminating=True)\n    \"\"\"\n    REVERT(offset, size)\n    ----\n\n    Description\n    ----\n    Halt execution reverting state changes but returning data and remaining gas\n\n    Inputs\n    ----\n    - offset: byte offset in the memory in bytes. The return data of\n              the calling context\n    - size: byte size to copy (size of the return data)\n\n    Fork\n    ----\n    Byzantium\n\n    Gas\n    ----\n    static_gas = 0\n    dynamic_gas = memory_expansion_cost\n\n    Source: [evm.codes/#FD](https://www.evm.codes/#FD)\n    \"\"\"\n\n    INVALID = Opcode(0xFE, terminating=True)\n    \"\"\"\n    INVALID()\n    ----\n\n    Description\n    ----\n    Designated invalid instruction\n\n    Inputs\n    ----\n    None\n\n    Outputs\n    ----\n    None\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    All the remaining gas in this context is consumed\n\n    Source: [evm.codes/#FE](https://www.evm.codes/#FE)\n    \"\"\"\n\n    SELFDESTRUCT = Opcode(0xFF, popped_stack_items=1, kwargs=[\"address\"])\n    \"\"\"\n    SELFDESTRUCT(address)\n    ----\n\n    Description\n    ----\n    Halt execution and register the account for later deletion\n\n    Inputs\n    ----\n    - address: account to send the current balance to\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    5000\n\n    Source: [evm.codes/#FF](https://www.evm.codes/#FF)\n    \"\"\"\n\n\n_push_opcodes_byte_list: List[Opcode] = [\n    Opcodes.PUSH1,\n    Opcodes.PUSH2,\n    Opcodes.PUSH3,\n    Opcodes.PUSH4,\n    Opcodes.PUSH5,\n    Opcodes.PUSH6,\n    Opcodes.PUSH7,\n    Opcodes.PUSH8,\n    Opcodes.PUSH9,\n    Opcodes.PUSH10,\n    Opcodes.PUSH11,\n    Opcodes.PUSH12,\n    Opcodes.PUSH13,\n    Opcodes.PUSH14,\n    Opcodes.PUSH15,\n    Opcodes.PUSH16,\n    Opcodes.PUSH17,\n    Opcodes.PUSH18,\n    Opcodes.PUSH19,\n    Opcodes.PUSH20,\n    Opcodes.PUSH21,\n    Opcodes.PUSH22,\n    Opcodes.PUSH23,\n    Opcodes.PUSH24,\n    Opcodes.PUSH25,\n    Opcodes.PUSH26,\n    Opcodes.PUSH27,\n    Opcodes.PUSH28,\n    Opcodes.PUSH29,\n    Opcodes.PUSH30,\n    Opcodes.PUSH31,\n    Opcodes.PUSH32,\n]\n\n\ndef _mstore_operation(data: OpcodeCallArg = b\"\", offset: OpcodeCallArg = 0) -> Bytecode:\n    \"\"\"\n    Generate the bytecode that stores an arbitrary\n    amount of data in memory.\n    \"\"\"\n    assert isinstance(offset, int)\n    if isinstance(data, int):\n        data = data.to_bytes(32, \"big\")\n    data = to_bytes(data)  # type: ignore\n    bytecode = Bytecode()\n    for i in range(0, len(data), 32):\n        chunk = data[i : i + 32]\n        if len(chunk) == 32:\n            bytecode += Opcodes.MSTORE(offset, chunk)\n        else:\n            # We need to MLOAD the existing data at the offset and then\n            # do a bitwise OR with the new data to store it in memory.\n            bytecode += Opcodes.MLOAD(offset)\n            # Create a mask to zero out the leftmost bytes of\n            # the existing data.\n            mask_size = 32 - len(chunk)\n            bytecode += _push_opcodes_byte_list[mask_size - 1][-1]\n            bytecode += Opcodes.AND\n            bytecode += Opcodes.PUSH32[chunk.ljust(32, b\"\\x00\")]\n            bytecode += Opcodes.OR\n            bytecode += _stack_argument_to_bytecode(offset)\n            bytecode += Opcodes.MSTORE\n        offset += len(chunk)\n    return bytecode\n\n\nclass Macros(Macro, Enum):\n    \"\"\"Enum containing all macros.\"\"\"\n\n    OOG = Macro(Opcodes.SHA3(0, 100000000000))\n    \"\"\"\n    OOG()\n    ----\n\n    Halt execution by consuming all available gas.\n\n    Inputs\n    ----\n    - None. Any input arguments are ignored.\n\n    Outputs\n    ----\n    - None\n\n    Fork\n    ----\n    Frontier\n\n    Gas\n    ----\n    `SHA3(0, 100000000000)` results in 19073514453125027 gas used and an OOG\n    exception.\n\n    Note:\n    If a value > `100000000000` is used as second argument, the resulting geth\n     trace reports gas `30` and an OOG exception.\n    `SHA3(0, SUB(0, 1))` causes a gas > u64 exception and an OOG exception.\n\n    Bytecode\n    ----\n    SHA3(0, 100000000000)\n    \"\"\"\n\n    MSTORE = Macro(lambda_operation=_mstore_operation)\n    \"\"\"\n    MSTORE(data, offset)\n    ----\n\n    Place data of arbitrary length into memory at a given offset.\n\n    Inputs\n    ----\n    - data: The data to store in memory. Can be an integer or bytes.\n    - offset: The offset in memory to store the data.\n\n    Outputs\n    ----\n    - None\n    \"\"\"\n\n\nclass UndefinedOpcodes(Opcode, Enum):\n    \"\"\"Enum containing all unknown opcodes (88 at the moment).\"\"\"\n\n    OPCODE_0C = Opcode(0x0C)\n    OPCODE_0D = Opcode(0x0D)\n    OPCODE_0E = Opcode(0x0E)\n    OPCODE_0F = Opcode(0x0F)\n    OPCODE_1E = Opcode(0x1E)\n    OPCODE_1F = Opcode(0x1F)\n    OPCODE_21 = Opcode(0x21)\n    OPCODE_22 = Opcode(0x22)\n    OPCODE_23 = Opcode(0x23)\n    OPCODE_24 = Opcode(0x24)\n    OPCODE_25 = Opcode(0x25)\n    OPCODE_26 = Opcode(0x26)\n    OPCODE_27 = Opcode(0x27)\n    OPCODE_28 = Opcode(0x28)\n    OPCODE_29 = Opcode(0x29)\n    OPCODE_2A = Opcode(0x2A)\n    OPCODE_2B = Opcode(0x2B)\n    OPCODE_2C = Opcode(0x2C)\n    OPCODE_2D = Opcode(0x2D)\n    OPCODE_2E = Opcode(0x2E)\n    OPCODE_2F = Opcode(0x2F)\n    OPCODE_4B = Opcode(0x4B)\n    OPCODE_4C = Opcode(0x4C)\n    OPCODE_4D = Opcode(0x4D)\n    OPCODE_4E = Opcode(0x4E)\n    OPCODE_4F = Opcode(0x4F)\n    OPCODE_A5 = Opcode(0xA5)\n    OPCODE_A6 = Opcode(0xA6)\n    OPCODE_A7 = Opcode(0xA7)\n    OPCODE_A8 = Opcode(0xA8)\n    OPCODE_A9 = Opcode(0xA9)\n    OPCODE_AA = Opcode(0xAA)\n    OPCODE_AB = Opcode(0xAB)\n    OPCODE_AC = Opcode(0xAC)\n    OPCODE_AD = Opcode(0xAD)\n    OPCODE_AE = Opcode(0xAE)\n    OPCODE_AF = Opcode(0xAF)\n    OPCODE_B0 = Opcode(0xB0)\n    OPCODE_B1 = Opcode(0xB1)\n    OPCODE_B2 = Opcode(0xB2)\n    OPCODE_B3 = Opcode(0xB3)\n    OPCODE_B4 = Opcode(0xB4)\n    OPCODE_B5 = Opcode(0xB5)\n    OPCODE_B6 = Opcode(0xB6)\n    OPCODE_B7 = Opcode(0xB7)\n    OPCODE_B8 = Opcode(0xB8)\n    OPCODE_B9 = Opcode(0xB9)\n    OPCODE_BA = Opcode(0xBA)\n    OPCODE_BB = Opcode(0xBB)\n    OPCODE_BC = Opcode(0xBC)\n    OPCODE_BD = Opcode(0xBD)\n    OPCODE_BE = Opcode(0xBE)\n    OPCODE_BF = Opcode(0xBF)\n    OPCODE_C0 = Opcode(0xC0)\n    OPCODE_C1 = Opcode(0xC1)\n    OPCODE_C2 = Opcode(0xC2)\n    OPCODE_C3 = Opcode(0xC3)\n    OPCODE_C4 = Opcode(0xC4)\n    OPCODE_C5 = Opcode(0xC5)\n    OPCODE_C6 = Opcode(0xC6)\n    OPCODE_C7 = Opcode(0xC7)\n    OPCODE_C8 = Opcode(0xC8)\n    OPCODE_C9 = Opcode(0xC9)\n    OPCODE_CA = Opcode(0xCA)\n    OPCODE_CB = Opcode(0xCB)\n    OPCODE_CC = Opcode(0xCC)\n    OPCODE_CD = Opcode(0xCD)\n    OPCODE_CE = Opcode(0xCE)\n    OPCODE_CF = Opcode(0xCF)\n    OPCODE_D4 = Opcode(0xD4)\n    OPCODE_D5 = Opcode(0xD5)\n    OPCODE_D6 = Opcode(0xD6)\n    OPCODE_D7 = Opcode(0xD7)\n    OPCODE_D8 = Opcode(0xD8)\n    OPCODE_D9 = Opcode(0xD9)\n    OPCODE_DA = Opcode(0xDA)\n    OPCODE_DB = Opcode(0xDB)\n    OPCODE_DC = Opcode(0xDC)\n    OPCODE_DD = Opcode(0xDD)\n    OPCODE_DE = Opcode(0xDE)\n    OPCODE_DF = Opcode(0xDF)\n    OPCODE_E9 = Opcode(0xE9)\n    OPCODE_EA = Opcode(0xEA)\n    OPCODE_EB = Opcode(0xEB)\n    OPCODE_EF = Opcode(0xEF)\n    OPCODE_F6 = Opcode(0xF6)\n    OPCODE_FC = Opcode(0xFC)\n"
  },
  {
    "path": "src/ethereum_test_vm/py.typed",
    "content": ""
  },
  {
    "path": "src/ethereum_test_vm/tests/__init__.py",
    "content": "\"\"\"Tests for the ethereum_test_vm package.\"\"\"\n"
  },
  {
    "path": "src/ethereum_test_vm/tests/test_vm.py",
    "content": "\"\"\"Test suite for `ethereum_test_vm` module.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_base_types import Address\n\nfrom ..opcodes import Bytecode\nfrom ..opcodes import Macros as Om\nfrom ..opcodes import Opcodes as Op\n\n\n@pytest.mark.parametrize(\n    \"opcodes,expected\",\n    [\n        pytest.param(Op.PUSH1(0x01), b\"\\x60\\x01\", id=\"PUSH1(0x01)\"),\n        pytest.param(Op.PUSH1[0x01], b\"\\x60\\x01\", id=\"PUSH1[0x01]\"),\n        pytest.param(Op.PUSH1(\"0x01\"), b\"\\x60\\x01\", id=\"PUSH1('0x01')\"),\n        pytest.param(Op.PUSH1[\"0x01\"], b\"\\x60\\x01\", id=\"PUSH1['0x01']\"),\n        pytest.param(Op.PUSH1(0xFF), b\"\\x60\\xff\", id=\"PUSH1(0xFF)\"),\n        pytest.param(Op.PUSH1(-1), b\"\\x60\\xff\", id=\"PUSH1(-1)\"),\n        pytest.param(Op.PUSH1[-1], b\"\\x60\\xff\", id=\"PUSH1[-1]\"),\n        pytest.param(Op.PUSH1(-2), b\"\\x60\\xfe\", id=\"PUSH1(-2)\"),\n        pytest.param(Op.PUSH20(0x01), b\"\\x73\" + b\"\\x00\" * 19 + b\"\\x01\", id=\"PUSH20(0x01)\"),\n        pytest.param(Op.PUSH20[0x01], b\"\\x73\" + b\"\\x00\" * 19 + b\"\\x01\", id=\"PUSH20[0x01]\"),\n        pytest.param(Op.PUSH32(0xFF), b\"\\x7f\" + b\"\\x00\" * 31 + b\"\\xff\", id=\"PUSH32(0xFF)\"),\n        pytest.param(Op.PUSH32(-1), b\"\\x7f\" + b\"\\xff\" * 32, id=\"PUSH32(-1)\"),\n        pytest.param(\n            sum(Op.PUSH1(i) for i in range(0x2)),\n            b\"\\x60\\x00\\x60\\x01\",\n            id=\"sum(PUSH1(i) for i in range(0x2))\",\n        ),\n        pytest.param(\n            sum(Op.PUSH1[i] for i in range(0x2)),\n            b\"\\x60\\x00\\x60\\x01\",\n            id=\"sum(PUSH1[i] for i in range(0x2))\",\n        ),\n        pytest.param(\n            Op.SSTORE(\n                -1,\n                Op.CALL(\n                    Op.GAS,\n                    Op.ADDRESS,\n                    Op.PUSH1(0x20),\n                    0,\n                    0,\n                    0x20,\n                    0x1234,\n                ),\n            ),\n            bytes(\n                [\n                    0x61,\n                    0x12,\n                    0x34,\n                    0x60,\n                    0x20,\n                    0x60,\n                    0x00,\n                    0x60,\n                    0x00,\n                    0x60,\n                    0x20,\n                    0x30,\n                    0x5A,\n                    0xF1,\n                    0x7F,\n                ]\n                + [0xFF] * 32\n                + [0x55]\n            ),\n            id=\"SSTORE(-1, CALL(GAS, ADDRESS, PUSH1(0x20), 0, 0, 0x20, 0x1234))\",\n        ),\n        pytest.param(\n            Op.CALL(Op.GAS, Op.PUSH20(0x1234), 0, 0, 0, 0, 32),\n            b\"\\x60\\x20\\x60\\x00\\x60\\x00\\x60\\x00\\x60\\x00\\x73\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\"\n            + b\"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x12\\x34\\x5a\\xf1\",\n            id=\"CALL(GAS, PUSH20(0x1234), 0, 0, 0, 0, 32)\",\n        ),\n        pytest.param(\n            Op.CALL(Op.GAS, Address(0x1234), 0, 0, 0, 0, 32),\n            b\"\\x60\\x20\\x60\\x00\\x60\\x00\\x60\\x00\\x60\\x00\\x61\\x12\\x34\\x5a\\xf1\",\n            id=\"CALL(GAS, Address(0x1234), 0, 0, 0, 0, 32)\",\n        ),\n        pytest.param(Op.ADD(1, 2), bytes([0x60, 0x02, 0x60, 0x01, 0x01]), id=\"ADD(1, 2)\"),\n        pytest.param(\n            Op.ADD(Op.ADD(1, 2), 3),\n            bytes([0x60, 0x03, 0x60, 0x02, 0x60, 0x01, 0x01, 0x01]),\n            id=\"ADD(ADD(1, 2), 3)\",\n        ),\n        pytest.param(\n            Op.CALL(1, 123, 4, 5, 6, 7, 8),\n            b\"\\x60\\x08\\x60\\x07\\x60\\x06\\x60\\x05\\x60\\x04\\x60\\x7b\\x60\\x01\\xf1\",\n            id=\"CALL(1, 123, 4, 5, 6, 7, 8)\",\n        ),\n        pytest.param(\n            Op.CALL(1, Address(0x0123), 4, 5, 6, 7, 8),\n            b\"\\x60\\x08\\x60\\x07\\x60\\x06\\x60\\x05\\x60\\x04\\x61\\x01\\x23\\x60\\x01\\xf1\",\n            id=\"CALL(1, Address(0x0123), 4, 5, 6, 7, 8)\",\n        ),\n        pytest.param(\n            Op.CALL(1, 0x0123, 4, 5, 6, 7, 8),\n            b\"\\x60\\x08\\x60\\x07\\x60\\x06\\x60\\x05\\x60\\x04\\x61\\x01\\x23\\x60\\x01\\xf1\",\n            id=\"CALL(1, 0x0123, 4, 5, 6, 7, 8)\",\n        ),\n        pytest.param(\n            Op.CALL(1, 123, 4, 5, 6, 7, 8),\n            b\"\\x60\\x08\\x60\\x07\\x60\\x06\\x60\\x05\\x60\\x04\\x60\\x7b\\x60\\x01\\xf1\",\n            id=\"CALL(1, 123, 4, 5, 6, 7, 8)\",\n        ),\n        pytest.param(\n            Op.CREATE(1, Address(12), 4, 5, 6, 7, 8, unchecked=True),\n            b\"\\x60\\x08\\x60\\x07\\x60\\x06\\x60\\x05\\x60\\x04\\x60\\x0c\\x60\\x01\\xf0\",\n            id=\"CREATE(1, Address(12), 4, 5, 6, 7, 8, unchecked=True)\",\n        ),\n        pytest.param(\n            Om.OOG(),\n            bytes([0x64, 0x17, 0x48, 0x76, 0xE8, 0x00, 0x60, 0x00, 0x20]),\n            id=\"OOG()\",\n        ),\n        pytest.param(\n            Op.RJUMPV[1, 2, 3](Op.ORIGIN),\n            bytes(\n                [\n                    Op.ORIGIN.int(),\n                    Op.RJUMPV.int(),\n                    0x02,  # Data portion, defined by the [1, 2, 3] argument\n                    0x00,\n                    0x01,\n                    0x00,\n                    0x02,\n                    0x00,\n                    0x03,\n                ]\n            ),\n            id=\"RJUMPV[1, 2, 3](ORIGIN)\",\n        ),\n        pytest.param(\n            Op.RJUMPV[b\"\\x00\"],\n            bytes(\n                [\n                    Op.RJUMPV.int(),\n                    0x00,\n                ]\n            ),\n            id=\"RJUMPV[b'\\\\x00']\",\n        ),\n        pytest.param(\n            Op.RJUMPV[-1, -2, -3],\n            bytes(\n                [\n                    Op.RJUMPV.int(),\n                    0x02,\n                    0xFF,\n                    0xFF,\n                    0xFF,\n                    0xFE,\n                    0xFF,\n                    0xFD,\n                ]\n            ),\n            id=\"RJUMPV[-1, -2, -3]\",\n        ),\n        pytest.param(\n            Op.RJUMPV[range(5)],  # TODO: on Python 3.11+: Op.RJUMPV[*range(5)]\n            bytes(\n                [\n                    Op.RJUMPV.int(),\n                    0x04,\n                    0x00,\n                    0x00,\n                    0x00,\n                    0x01,\n                    0x00,\n                    0x02,\n                    0x00,\n                    0x03,\n                    0x00,\n                    0x04,\n                ]\n            ),\n            id=\"RJUMPV[range(5)]\",\n        ),\n        pytest.param(\n            Op.RJUMPV[1, 2, 3](Op.ORIGIN) + Op.STOP,\n            bytes(\n                [\n                    Op.ORIGIN.int(),\n                    Op.RJUMPV.int(),\n                    0x02,  # Data portion, defined by the [1, 2, 3] argument\n                    0x00,\n                    0x01,\n                    0x00,\n                    0x02,\n                    0x00,\n                    0x03,\n                    Op.STOP.int(),\n                ]\n            ),\n            id=\"RJUMPV[1, 2, 3](ORIGIN) + STOP\",\n        ),\n        pytest.param(\n            Op.STOP * 2,\n            bytes(\n                [\n                    Op.STOP.int(),\n                    Op.STOP.int(),\n                ]\n            ),\n            id=\"STOP * 2\",\n        ),\n        pytest.param(\n            Op.RJUMPV[0, 3, 6, 9], bytes.fromhex(\"e2030000000300060009\"), id=\"RJUMPV[0, 3, 6, 9]\"\n        ),\n        pytest.param(Op.RJUMPV[2, 0], bytes.fromhex(\"e20100020000\"), id=\"RJUMPV[2, 0]\"),\n        pytest.param(\n            Op.RJUMPV[b\"\\x02\\x00\\x02\\xff\\xff\"],\n            bytes.fromhex(\"e2020002ffff\"),\n            id=\"RJUMPV[b'\\\\x02\\\\x00\\\\x02\\\\xFF\\\\xFF']\",\n        ),\n        pytest.param(\n            Op.EXCHANGE[0x2 + 0x0, 0x3 + 0x0],\n            bytes.fromhex(\"e800\"),\n            id=\"EXCHANGE[0x2 + 0x0, 0x3 + 0x0]\",\n        ),\n        pytest.param(\n            Op.EXCHANGE[0x2 + 0x0, 0x3 + 0xF],\n            bytes.fromhex(\"e80f\"),\n            id=\"EXCHANGE[0x2 + 0x0, 0x3 + 0xF]\",\n        ),\n        pytest.param(\n            Op.EXCHANGE[0x2 + 0xF, 0x3 + 0xF + 0x0],\n            bytes.fromhex(\"e8f0\"),\n            id=\"EXCHANGE[0x2 + 0xF, 0x3 + 0xF + 0x0]\",\n        ),\n        pytest.param(\n            Op.EXCHANGE[0x2 + 0xF, 0x3 + 0xF + 0xF],\n            bytes.fromhex(\"e8ff\"),\n            id=\"EXCHANGE[0x2 + 0xF, 0x3 + 0xF + 0xF]\",\n        ),\n        pytest.param(Op.PUSH0 * 0, bytes(), id=\"PUSH0 * 0\"),\n        pytest.param(\n            Op.CREATE(value=1, offset=2, size=3),\n            b\"\\x60\\x03\\x60\\x02\\x60\\x01\\xf0\",\n            id=\"Op.CREATE(value=1, offset=2, size=3)\",\n        ),\n        pytest.param(\n            Op.CREATE2(value=1, offset=2, size=3),\n            b\"\\x60\\x00\\x60\\x03\\x60\\x02\\x60\\x01\\xf5\",\n            id=\"Op.CREATE2(value=1, offset=2, size=3)\",\n        ),\n        pytest.param(\n            Op.CALL(address=1),\n            b\"\\x60\\x00\\x60\\x00\\x60\\x00\\x60\\x00\\x60\\x00\\x60\\x01\\x5a\\xf1\",\n            id=\"Op.CALL(address=1)\",\n        ),\n        pytest.param(\n            Op.STATICCALL(address=1),\n            b\"\\x60\\x00\\x60\\x00\\x60\\x00\\x60\\x00\\x60\\x01\\x5a\\xfa\",\n            id=\"Op.STATICCALL(address=1)\",\n        ),\n        pytest.param(\n            Op.CALLCODE(address=1),\n            b\"\\x60\\x00\\x60\\x00\\x60\\x00\\x60\\x00\\x60\\x00\\x60\\x01\\x5a\\xf2\",\n            id=\"Op.CALLCODE(address=1)\",\n        ),\n        pytest.param(\n            Op.DELEGATECALL(address=1),\n            b\"\\x60\\x00\\x60\\x00\\x60\\x00\\x60\\x00\\x60\\x01\\x5a\\xf4\",\n            id=\"Op.DELEGATECALL(address=1)\",\n        ),\n        pytest.param(\n            Op.EXTCALL(address=1),\n            b\"\\x60\\x00\\x60\\x00\\x60\\x00\\x60\\x01\\xf8\",\n            id=\"Op.EXTCALL(address=1)\",\n        ),\n        pytest.param(\n            Op.EXTSTATICCALL(address=1),\n            b\"\\x60\\x00\\x60\\x00\\x60\\x01\\xfb\",\n            id=\"Op.EXTSTATICCALL(address=1)\",\n        ),\n        pytest.param(\n            Op.EXTDELEGATECALL(address=1),\n            b\"\\x60\\x00\\x60\\x00\\x60\\x01\\xf9\",\n            id=\"Op.EXTDELEGATECALL(address=1)\",\n        ),\n        pytest.param(\n            Om.MSTORE(b\"\"),\n            b\"\",\n            id='Om.MSTORE(b\"\")',\n        ),\n        pytest.param(\n            Om.MSTORE(bytes(range(32))),\n            bytes(Op.MSTORE(0, bytes(range(32)))),\n            id=\"Om.MSTORE(bytes(range(32)))\",\n        ),\n        pytest.param(\n            Om.MSTORE(bytes(range(64))),\n            bytes(Op.MSTORE(0, bytes(range(32))) + Op.MSTORE(32, bytes(range(32, 64)))),\n            id=\"Om.MSTORE(bytes(range(64)))\",\n        ),\n        pytest.param(\n            Om.MSTORE(bytes(range(33))),\n            bytes(\n                Op.MSTORE(0, bytes(range(32)))\n                + Op.MLOAD(32)\n                + Op.PUSH31[-1]\n                + Op.AND\n                + Op.PUSH32[b\"\\x20\".ljust(32, b\"\\x00\")]\n                + Op.OR\n                + Op.PUSH1(32)\n                + Op.MSTORE\n            ),\n            id=\"Om.MSTORE(bytes(range(33)))\",\n        ),\n        pytest.param(\n            Om.MSTORE(bytes(range(63))),\n            bytes(\n                Op.MSTORE(0, bytes(range(32)))\n                + Op.MLOAD(32)\n                + Op.PUSH1[-1]\n                + Op.AND\n                + Op.PUSH32[bytes(range(32, 63)).ljust(32, b\"\\x00\")]\n                + Op.OR\n                + Op.PUSH1(32)\n                + Op.MSTORE\n            ),\n            id=\"Om.MSTORE(bytes(range(63)))\",\n        ),\n    ],\n)\ndef test_opcodes(opcodes: bytes, expected: bytes) -> None:\n    \"\"\"Test that the `opcodes` are transformed into bytecode as expected.\"\"\"\n    assert bytes(opcodes) == expected\n\n\ndef test_opcodes_repr() -> None:\n    \"\"\"Test that the `repr` of an `Op` is the same as its name.\"\"\"\n    assert f\"{Op.CALL}\" == \"CALL\"\n    assert f\"{Op.DELEGATECALL}\" == \"DELEGATECALL\"\n    assert f\"{Om.OOG}\" == \"OOG\"\n    assert str(Op.ADD) == \"ADD\"\n    assert f\"{Op.DUPN[1]}\" == \"DUPN_0x01\"\n    assert f\"{Op.DATALOADN[1]}\" == \"DATALOADN_0x0001\"\n\n\ndef test_macros() -> None:\n    \"\"\"Test opcode and macros interaction.\"\"\"\n    assert (Op.PUSH1(1) + Om.OOG) == (Op.PUSH1(1) + Op.SHA3(0, 100000000000))\n    for opcode in Op:\n        assert opcode != Om.OOG\n\n\n@pytest.mark.parametrize(\n    \"bytecode,expected_popped_items,expected_pushed_items,\"\n    \"expected_max_stack_height,expected_min_stack_height\",\n    [\n        pytest.param(Op.PUSH1 + Op.POP, 0, 0, 1, 0, id=\"PUSH1 + POP\"),\n        pytest.param(Op.PUSH1 + Op.PUSH1, 0, 2, 2, 0, id=\"PUSH1 + PUSH1\"),\n        pytest.param(Op.PUSH1 * 3, 0, 3, 3, 0, id=\"PUSH1 * 3\"),\n        pytest.param(Op.POP + Op.POP, 2, 0, 2, 2, id=\"POP + POP\"),\n        pytest.param(Op.POP * 3, 3, 0, 3, 3, id=\"POP * 3\"),\n        pytest.param((Op.POP * 3) + Op.PUSH1, 3, 1, 3, 3, id=\"(POP * 3) + PUSH1\"),\n        pytest.param(Op.SWAP2 + Op.POP * 3, 3, 0, 3, 3, id=\"SWAP2 + POP * 3\"),\n        pytest.param(Op.SWAP2 + Op.PUSH1 * 3, 0, 3, 6, 3, id=\"SWAP2 + PUSH1 * 3\"),\n        pytest.param(Op.SWAP1 + Op.SWAP2, 0, 0, 3, 3, id=\"SWAP1 + SWAP2\"),\n        pytest.param(\n            Op.POP * 2 + Op.PUSH1 + Op.POP * 2 + Op.PUSH1 * 3,\n            3,\n            3,\n            3,\n            3,\n            id=\"POP * 2 + PUSH1 + POP * 2 + PUSH1 * 3\",\n        ),\n        pytest.param(Op.CALL(1, 2, 3, 4, 5, 6, 7), 0, 1, 7, 0, id=\"CALL(1, 2, 3, 4, 5, 6, 7)\"),\n        pytest.param(\n            Op.POP(Op.CALL(1, 2, 3, 4, 5, 6, 7)), 0, 0, 7, 0, id=\"POP(CALL(1, 2, 3, 4, 5, 6, 7))\"\n        ),\n        pytest.param(\n            Op.PUSH0 * 2 + Op.PUSH0 + Op.ADD + Op.PUSH0 + Op.POP * 2, 0, 1, 3, 0, id=\"parens1\"\n        ),\n        pytest.param(\n            Op.PUSH0 * 2 + (Op.PUSH0 + Op.ADD + Op.PUSH0 + Op.POP * 2), 0, 1, 3, 0, id=\"parens2\"\n        ),\n        pytest.param(\n            Op.PUSH0 * 2 + Op.PUSH0 + (Op.ADD + Op.PUSH0 + Op.POP * 2), 0, 1, 3, 0, id=\"parens3\"\n        ),\n        pytest.param(\n            Op.PUSH0 * 2 + Op.PUSH0 + (Op.ADD + Op.PUSH0) + Op.POP * 2, 0, 1, 3, 0, id=\"parens4\"\n        ),\n        pytest.param(\n            Op.PUSH0 * 2 + (Op.PUSH0 + Op.ADD + Op.PUSH0) + Op.POP * 2, 0, 1, 3, 0, id=\"parens5\"\n        ),\n    ],\n)\ndef test_bytecode_properties(\n    bytecode: Bytecode,\n    expected_popped_items: int,\n    expected_pushed_items: int,\n    expected_max_stack_height: int,\n    expected_min_stack_height: int,\n) -> None:\n    \"\"\"Test that the properties of the bytecode are as expected.\"\"\"\n    assert bytecode.popped_stack_items == expected_popped_items, \"Popped stack items mismatch\"\n    assert bytecode.pushed_stack_items == expected_pushed_items, \"Pushed stack items mismatch\"\n    assert bytecode.max_stack_height == expected_max_stack_height, \"Max stack height mismatch\"\n    assert bytecode.min_stack_height == expected_min_stack_height, \"Min stack height mismatch\"\n\n\ndef test_opcode_comparison() -> None:\n    \"\"\"Test that the opcodes are comparable.\"\"\"\n    assert Op.STOP < Op.ADD\n    assert Op.ADD == Op.ADD\n    assert Op.ADD != Op.STOP\n    assert Op.ADD > Op.STOP\n\n\ndef test_bytecode_concatenation_with_bytes() -> None:\n    \"\"\"\n    Test that the bytecode can be concatenated with bytes.\n    Bytes work as verbatim code and don't affect the bytecode properties.\n    \"\"\"\n    base = Op.PUSH1[0xFF] + Op.NOT\n    assert str(base) == \"\"\n\n    code = base + b\"\\x01\\x02\"\n    assert code == bytes([0x60, 0xFF, 0x19, 0x01, 0x02])\n\n    assert str(code) == \"\"\n    assert code.popped_stack_items == base.popped_stack_items\n    assert code.pushed_stack_items == base.pushed_stack_items\n    assert code.max_stack_height == base.max_stack_height\n    assert code.min_stack_height == base.min_stack_height\n    assert code.terminating == base.terminating\n\n\ndef test_opcode_kwargs_validation() -> None:\n    \"\"\"Test that invalid keyword arguments raise ValueError.\"\"\"\n    # Test valid kwargs work\n    Op.MSTORE(offset=0, value=1)\n    Op.CALL(gas=1, address=2, value=3, args_offset=4, args_size=5, ret_offset=6, ret_size=7)\n\n    # Test invalid kwargs raise ValueError\n    with pytest.raises(\n        ValueError, match=r\"Invalid keyword argument\\(s\\) \\['offest'\\] for opcode MSTORE\"\n    ):\n        Op.MSTORE(offest=0, value=1)  # codespell:ignore offest\n\n    with pytest.raises(\n        ValueError, match=r\"Invalid keyword argument\\(s\\) \\['wrong_arg'\\] for opcode MSTORE\"\n    ):\n        Op.MSTORE(offset=0, value=1, wrong_arg=2)\n\n    with pytest.raises(\n        ValueError, match=r\"Invalid keyword argument\\(s\\) \\['addres'\\] for opcode CALL\"\n    ):\n        Op.CALL(\n            gas=1,\n            addres=2,  # codespell:ignore\n            value=3,\n            args_offset=4,\n            args_size=5,\n            ret_offset=6,\n            ret_size=7,\n        )\n\n    # Test multiple invalid kwargs\n    with pytest.raises(ValueError, match=r\"Invalid keyword argument\\(s\\).*for opcode MSTORE\"):\n        Op.MSTORE(offest=0, valu=1, extra=2)  # codespell:ignore offest,valu\n"
  },
  {
    "path": "src/pytest_plugins/__init__.py",
    "content": "\"\"\"Package containing pytest plugins related to test filling.\"\"\"\n"
  },
  {
    "path": "src/pytest_plugins/concurrency.py",
    "content": "\"\"\"\nPytest plugin to create a temporary folder for the session where multi-process\ntests can store data that is shared between processes.\n\nThe provided `session_temp_folder` fixture is used, for example, by `consume`\nwhen running hive simulators to ensure that only one `test_suite` is created\n(used to create tests on the hive simulator) when they are being created using\nmultiple workers with pytest-xdist.\n\"\"\"\n\nimport os\nimport shutil\nfrom pathlib import Path\nfrom tempfile import gettempdir as get_temp_dir\nfrom typing import Generator\n\nimport pytest\nfrom filelock import FileLock\n\n\n@pytest.fixture(scope=\"session\")\ndef session_temp_folder_name(testrun_uid: str) -> str:\n    \"\"\"\n    Define the name of the temporary folder that will be shared among all the\n    xdist workers to coordinate the tests.\n\n    \"testrun_uid\" is a fixture provided by the xdist plugin, and is unique for\n    each test run, so it is used to create the unique folder name.\n    \"\"\"\n    return f\"pytest-{testrun_uid}\"\n\n\n@pytest.fixture(scope=\"session\")\ndef session_temp_folder(\n    session_temp_folder_name: str,\n) -> Generator[Path, None, None]:\n    \"\"\"\n    Create a global temporary folder that will be shared among all the xdist\n    workers to coordinate the tests.\n\n    We also create a file to keep track of how many workers are still using the\n    folder, so we can delete it when the last worker is done.\n    \"\"\"\n    session_temp_folder = Path(get_temp_dir()) / session_temp_folder_name\n    session_temp_folder.mkdir(exist_ok=True)\n\n    folder_users_file_name = \"folder_users\"\n    folder_users_file = session_temp_folder / folder_users_file_name\n    folder_users_lock_file = session_temp_folder / f\"{folder_users_file_name}.lock\"\n\n    with FileLock(folder_users_lock_file):\n        if folder_users_file.exists():\n            with folder_users_file.open(\"r\") as f:\n                folder_users = int(f.read())\n        else:\n            folder_users = 0\n        folder_users += 1\n        with folder_users_file.open(\"w\") as f:\n            f.write(str(folder_users))\n\n    yield session_temp_folder\n\n    with FileLock(folder_users_lock_file):\n        with folder_users_file.open(\"r\") as f:\n            folder_users = int(f.read())\n        folder_users -= 1\n        if folder_users == 0:\n            shutil.rmtree(session_temp_folder)\n        else:\n            with folder_users_file.open(\"w\") as f:\n                f.write(str(folder_users))\n\n\n@pytest.fixture(scope=\"session\")\ndef worker_count() -> int:\n    \"\"\"Get the number of workers for the test.\"\"\"\n    worker_count_env = os.environ.get(\"PYTEST_XDIST_WORKER_COUNT\", \"1\")\n    return max(int(worker_count_env), 1)\n"
  },
  {
    "path": "src/pytest_plugins/consume/__init__.py",
    "content": "\"\"\"Pytest plugins for consume commands.\"\"\"\n"
  },
  {
    "path": "src/pytest_plugins/consume/consume.py",
    "content": "\"\"\"\nA pytest plugin providing common functionality for consuming test fixtures.\n\"\"\"\n\nimport re\nimport sys\nimport tarfile\nfrom dataclasses import dataclass\nfrom io import BytesIO\nfrom pathlib import Path\nfrom typing import Any, Generator, List, Optional, Tuple\nfrom urllib.parse import urlparse\n\nimport platformdirs\nimport pytest\nimport requests\nimport rich\n\nfrom cli.gen_index import generate_fixtures_index\nfrom ethereum_test_fixtures import BaseFixture, FixtureFormat\nfrom ethereum_test_fixtures.consume import IndexFile, TestCases\nfrom ethereum_test_forks import get_forks, get_relative_fork_markers, get_transition_forks\nfrom ethereum_test_tools.utility.versioning import get_current_commit_hash_or_tag\n\nfrom .releases import ReleaseTag, get_release_page_url, get_release_url, is_release_url, is_url\n\nCACHED_DOWNLOADS_DIRECTORY = (\n    Path(platformdirs.user_cache_dir(\"ethereum-execution-spec-tests\")) / \"cached_downloads\"\n)\n\n\ndef print_migration_warning(terminalreporter: Any = None) -> None:\n    \"\"\"Print migration warning about repository merge.\"\"\"\n    lines = [\n        \"\",\n        \"=\" * 80,\n        \"⚠️  IMPORTANT: Repository Migration in Progress - 'The Weld' ⚠️\",\n        \"=\" * 80,\n        \"\",\n        \"This repository is being merged into ethereum/execution-specs (EELS) during the\",\n        \"week of October 20-24, 2025.\",\n        \"\",\n        \"📅 Timeline:\",\n        \"  • Week of Oct 13-17: Closing PRs, porting issues to EELS\",\n        \"  • Week of Oct 20-24: Migration week - fixing CI and fixture building\",\n        \"  • Oct 24 (ETA): Weld finalized - all development moves to EELS\",\n        \"\",\n        \"👉 What This Means:\",\n        \"  • Test Contributors: After Oct 24, reopen draft PRs in EELS\",\n        \"  • All future test development happens in EELS after completion\",\n        \"  • Fixture releases continue as usual during transition\",\n        \"\",\n        \"For details: https://steel.ethereum.foundation/blog/2025-09-11_weld-announcement/\",\n        \"=\" * 80,\n        \"\",\n    ]\n\n    if terminalreporter:\n        for line in lines:\n            if \"⚠️\" in line or \"IMPORTANT\" in line:\n                terminalreporter.write_line(line, bold=True, yellow=True)\n            elif line.startswith(\"=\"):\n                terminalreporter.write_line(line, yellow=True)\n            else:\n                terminalreporter.write_line(line)\n    else:\n        for line in lines:\n            print(line)\n\n\ndef default_input() -> str:\n    \"\"\"\n    Directory (default) to consume generated test fixtures from. Defined as a\n    function to allow for easier testing.\n    \"\"\"\n    return \"./fixtures\"\n\n\ndef default_html_report_file_path() -> str:\n    \"\"\"\n    Filepath (default) to store the generated HTML test report. Defined as a\n    function to allow for easier testing.\n    \"\"\"\n    return \".meta/report_consume.html\"\n\n\nclass FixtureDownloader:\n    \"\"\"Handles downloading and extracting fixture archives.\"\"\"\n\n    def __init__(self, url: str, destination_folder: Path):  # noqa: D107\n        self.url = url\n        self.destination_folder = destination_folder\n        self.parsed_url = urlparse(url)\n        self.archive_name = self.strip_archive_extension(Path(self.parsed_url.path).name)\n\n    def download_and_extract(self) -> Tuple[bool, Path]:\n        \"\"\"\n        Download the URL and extract it locally if it hasn't already been\n        downloaded.\n        \"\"\"\n        if self.destination_folder.exists():\n            return True, self.detect_extracted_directory()\n\n        return False, self.fetch_and_extract()\n\n    @staticmethod\n    def strip_archive_extension(filename: str) -> str:\n        \"\"\"Remove .tar.gz or .tgz extensions from filename.\"\"\"\n        return filename.removesuffix(\".tar.gz\").removesuffix(\".tgz\")\n\n    @staticmethod\n    def get_cache_path(url: str, cache_folder: Path) -> Path:\n        \"\"\"Get the appropriate cache path for a given URL.\"\"\"\n        parsed_url = urlparse(url)\n        archive_name = FixtureDownloader.strip_archive_extension(Path(parsed_url.path).name)\n\n        if is_release_url(url):\n            version = Path(parsed_url.path).parts[-2]\n            parts = parsed_url.path.strip(\"/\").split(\"/\")\n            org_repo = (\n                f\"{parts[0]}/{parts[1]}\"\n                if parsed_url.netloc == \"github.com\" and len(parts) >= 2\n                else \"other\"\n            )\n            return cache_folder / org_repo / version / archive_name\n        return cache_folder / \"other\" / archive_name\n\n    def fetch_and_extract(self) -> Path:\n        \"\"\"Download and extract an archive from the given URL.\"\"\"\n        self.destination_folder.mkdir(parents=True, exist_ok=True)\n        response = requests.get(self.url)\n        response.raise_for_status()\n\n        with tarfile.open(fileobj=BytesIO(response.content), mode=\"r:gz\") as tar:\n            tar.extractall(path=self.destination_folder)\n\n        return self.detect_extracted_directory()\n\n    def detect_extracted_directory(self) -> Path:\n        \"\"\"\n        Detect a single top-level dir within the extracted archive, otherwise\n        return destination_folder.\n        \"\"\"  # noqa: D200\n        extracted_dirs = [\n            d for d in self.destination_folder.iterdir() if d.is_dir() and d.name != \".meta\"\n        ]\n        return extracted_dirs[0] if len(extracted_dirs) == 1 else self.destination_folder\n\n\n@dataclass\nclass FixturesSource:\n    \"\"\"Represents the source of test fixtures.\"\"\"\n\n    input_option: str\n    path: Path\n    url: str = \"\"\n    release_page: str = \"\"\n    is_local: bool = True\n    is_stdin: bool = False\n    was_cached: bool = False\n    extract_to_local_path: bool = False\n\n    @classmethod\n    def from_input(\n        cls,\n        input_source: str,\n        cache_folder: Optional[Path] = None,\n        extract_to: Optional[Path] = None,\n    ) -> \"FixturesSource\":\n        \"\"\"Determine the fixture source type and return an instance.\"\"\"\n        if cache_folder is None:\n            cache_folder = CACHED_DOWNLOADS_DIRECTORY\n        if input_source == \"stdin\":\n            return cls(input_option=input_source, path=Path(), is_local=False, is_stdin=True)\n        if is_release_url(input_source):\n            return cls.from_release_url(input_source, cache_folder, extract_to)\n        if is_url(input_source):\n            return cls.from_url(input_source, cache_folder, extract_to)\n        if ReleaseTag.is_release_string(input_source):\n            return cls.from_release_spec(input_source, cache_folder, extract_to)\n        return cls.validate_local_path(Path(input_source))\n\n    @classmethod\n    def from_release_url(\n        cls, url: str, cache_folder: Optional[Path] = None, extract_to: Optional[Path] = None\n    ) -> \"FixturesSource\":\n        \"\"\"Create a fixture source from a supported github repo release URL.\"\"\"\n        if cache_folder is None:\n            cache_folder = CACHED_DOWNLOADS_DIRECTORY\n\n        destination_folder = extract_to or FixtureDownloader.get_cache_path(url, cache_folder)\n        downloader = FixtureDownloader(url, destination_folder)\n\n        # Skip cache check for extract_to (always download fresh)\n        if extract_to is not None:\n            was_cached = False\n            path = downloader.fetch_and_extract()\n        else:\n            was_cached, path = downloader.download_and_extract()\n\n        return cls(\n            input_option=url,\n            path=path,\n            url=url,\n            release_page=\"\",\n            is_local=False,\n            was_cached=was_cached,\n            extract_to_local_path=extract_to is not None,\n        )\n\n    @classmethod\n    def from_url(\n        cls, url: str, cache_folder: Optional[Path] = None, extract_to: Optional[Path] = None\n    ) -> \"FixturesSource\":\n        \"\"\"Create a fixture source from a direct URL.\"\"\"\n        if cache_folder is None:\n            cache_folder = CACHED_DOWNLOADS_DIRECTORY\n\n        destination_folder = extract_to or FixtureDownloader.get_cache_path(url, cache_folder)\n        downloader = FixtureDownloader(url, destination_folder)\n\n        # Skip cache check for extract_to (always download fresh)\n        if extract_to is not None:\n            was_cached = False\n            path = downloader.fetch_and_extract()\n        else:\n            was_cached, path = downloader.download_and_extract()\n\n        return cls(\n            input_option=url,\n            path=path,\n            url=url,\n            release_page=\"\",\n            is_local=False,\n            was_cached=was_cached,\n            extract_to_local_path=extract_to is not None,\n        )\n\n    @classmethod\n    def from_release_spec(\n        cls, spec: str, cache_folder: Optional[Path] = None, extract_to: Optional[Path] = None\n    ) -> \"FixturesSource\":\n        \"\"\"\n        Create a fixture source from a release spec (e.g., develop@latest).\n        \"\"\"\n        if cache_folder is None:\n            cache_folder = CACHED_DOWNLOADS_DIRECTORY\n        url = get_release_url(spec)\n        release_page = get_release_page_url(url)\n\n        destination_folder = extract_to or FixtureDownloader.get_cache_path(url, cache_folder)\n        downloader = FixtureDownloader(url, destination_folder)\n\n        # Skip cache check for extract_to (always download fresh)\n        if extract_to is not None:\n            was_cached = False\n            path = downloader.fetch_and_extract()\n        else:\n            was_cached, path = downloader.download_and_extract()\n\n        return cls(\n            input_option=spec,\n            path=path,\n            url=url,\n            release_page=release_page,\n            is_local=False,\n            was_cached=was_cached,\n            extract_to_local_path=extract_to is not None,\n        )\n\n    @staticmethod\n    def validate_local_path(path: Path) -> \"FixturesSource\":\n        \"\"\"\n        Validate that a local fixture path exists and contains JSON files.\n        \"\"\"\n        if not path.exists():\n            pytest.exit(f\"Specified fixture directory '{path}' does not exist.\")\n        if not any(path.glob(\"**/*.json\")):\n            pytest.exit(f\"Specified fixture directory '{path}' does not contain any JSON files.\")\n        return FixturesSource(input_option=str(path), path=path)\n\n\nclass SimLimitBehavior:\n    \"\"\"Represents options derived from the `--sim.limit` argument.\"\"\"\n\n    def __init__(self, pattern: str, collectonly: bool = False):  # noqa: D107\n        self.pattern = pattern\n        self.collectonly = collectonly\n\n    @staticmethod\n    def _escape_id(pattern: str) -> str:\n        \"\"\"\n        Escape regex char in the pattern; prepend and append '.*' (for `fill`\n        IDs).\n\n        The `pattern` is prefixed and suffixed with a wildcard match to allow\n        `fill` test case IDs to be specified, otherwise the full `consume` test\n        ID must be specified.\n        \"\"\"\n        return f\".*{re.escape(pattern)}.*\"\n\n    @classmethod\n    def from_string(cls, pattern: str) -> \"SimLimitBehavior\":\n        \"\"\"\n        Parse the `--sim.limit` argument and return a `SimLimitBehavior`\n        instance.\n\n        If `pattern`:\n          - Is \"collectonly\", enable collection mode without filtering.\n          - Starts with \"collectonly:\", enable collection mode and use the\n            rest as a regex pattern.\n          - Starts with \"id:\", treat the rest as a literal test ID and escape\n            special regex chars.\n          - Starts with \"collectonly:id:\", enable collection mode with a\n            literal test ID.\n        \"\"\"\n        if pattern == \"collectonly\":\n            return cls(pattern=\".*\", collectonly=True)\n\n        if pattern.startswith(\"collectonly:id:\"):\n            literal_id = pattern.removeprefix(\"collectonly:id:\")\n            if not literal_id:\n                raise ValueError(\"Empty literal ID provided.\")\n            return cls(pattern=cls._escape_id(literal_id), collectonly=True)\n\n        if pattern.startswith(\"collectonly:\"):\n            return cls(pattern=pattern.removeprefix(\"collectonly:\"), collectonly=True)\n\n        if pattern.startswith(\"id:\"):\n            literal_id = pattern.removeprefix(\"id:\")\n            if not literal_id:\n                raise ValueError(\"Empty literal ID provided.\")\n            return cls(pattern=cls._escape_id(literal_id))\n\n        return cls(pattern=pattern)\n\n\ndef pytest_addoption(parser: pytest.Parser) -> None:  # noqa: D103\n    consume_group = parser.getgroup(\n        \"consume\", \"Arguments related to consuming fixtures via a client\"\n    )\n    consume_group.addoption(\n        \"--input\",\n        action=\"store\",\n        dest=\"fixtures_source\",\n        default=None,\n        help=(\n            \"Specify the JSON test fixtures source. Can be a local directory, a URL pointing to a \"\n            \" fixtures.tar.gz archive, a release name and version in the form of `NAME@v1.2.3` \"\n            \"(`stable` and `develop` are valid release names, and `latest` is a valid version), \"\n            \"or the special keyword 'stdin'. \"\n            f\"Defaults to the following local directory: '{default_input()}'.\"\n        ),\n    )\n    consume_group.addoption(\n        \"--cache-folder\",\n        action=\"store\",\n        dest=\"fixture_cache_folder\",\n        default=CACHED_DOWNLOADS_DIRECTORY,\n        help=(\n            \"Specify the path where the downloaded fixtures are cached. \"\n            f\"Defaults to the following directory: '{CACHED_DOWNLOADS_DIRECTORY}'.\"\n        ),\n    )\n    consume_group.addoption(\n        \"--extract-to\",\n        action=\"store\",\n        dest=\"extract_to_folder\",\n        default=None,\n        help=(\n            \"Extract downloaded fixtures to the specified directory. Only valid with 'cache' \"\n            \"command. When used, fixtures are extracted directly to this path instead of the \"\n            \"user's execution-spec-tests cache directory.\"\n        ),\n    )\n    if \"cache\" in sys.argv:\n        return\n    consume_group.addoption(\n        \"--no-html\",\n        action=\"store_true\",\n        dest=\"disable_html\",\n        default=False,\n        help=(\n            \"Don't generate an HTML test report (in the output directory). \"\n            \"The --html flag can be used to specify a different path.\"\n        ),\n    )\n    consume_group.addoption(\n        \"--sim.limit\",\n        action=\"store\",\n        dest=\"sim_limit\",\n        type=SimLimitBehavior.from_string,\n        default=SimLimitBehavior(\".*\"),\n        help=(\n            \"Filter tests by either a regex pattern or a literal test case ID. To match a \"\n            \"test case by its exact ID, prefix the ID with `id:`. The string following `id:` \"\n            \"will be automatically escaped so that all special regex characters are treated as \"\n            \"literals. Without the `id:` prefix, the argument is interpreted as a Python regex \"\n            \"pattern. To see which test cases are matched, without executing them, prefix with \"\n            '`collectonly:`, e.g. `--sim.limit \"collectonly:.*eip4788.*fork_Prague.*\"`. '\n            \"To list all available test case IDs, set the value to `collectonly`.\"\n        ),\n    )\n\n\n@pytest.hookimpl(tryfirst=True)\ndef pytest_configure(config: pytest.Config) -> None:  # noqa: D103\n    \"\"\"\n    Pytest hook called after command line options have been parsed and before\n    test collection begins.\n\n    `@pytest.hookimpl(tryfirst=True)` is applied to ensure that this hook is\n    called before the pytest-html plugin's pytest_configure to ensure that it\n    uses the modified `htmlpath` option.\n    \"\"\"\n    print_migration_warning()\n    # Validate --extract-to usage\n    if config.option.extract_to_folder is not None and \"cache\" not in sys.argv:\n        pytest.exit(\"The --extract-to flag is only valid with the 'cache' command.\")\n    fixtures_source: FixturesSource\n    if config.option.fixtures_source is None:\n        # NOTE: Setting the default value here is necessary for correct\n        # stdin/piping behavior.\n        fixtures_source = FixturesSource(input_option=default_input(), path=Path(default_input()))\n    else:\n        # NOTE: Setting `type=FixturesSource.from_input` in pytest_addoption()\n        # causes the option to be evaluated twice which breaks the result of\n        # `was_cached`; the work-around is to call it manually here.\n        fixtures_source = FixturesSource.from_input(\n            config.option.fixtures_source,\n            Path(config.option.fixture_cache_folder),\n            Path(config.option.extract_to_folder)\n            if config.option.extract_to_folder is not None\n            else None,\n        )\n    config.fixtures_source = fixtures_source  # type: ignore[attr-defined]\n    config.fixture_source_flags = [\"--input\", fixtures_source.input_option]  # type: ignore[attr-defined]\n\n    if \"cache\" in sys.argv and not fixtures_source:\n        pytest.exit(\"The --input flag is required when using the cache command.\")\n\n    if \"cache\" in sys.argv:\n        reason = \"\"\n        if fixtures_source.extract_to_local_path:\n            reason += \"Fixtures downloaded and extracted to specified directory.\"\n        elif fixtures_source.was_cached:\n            reason += \"Fixtures already cached.\"\n        elif not fixtures_source.is_local:\n            reason += \"Fixtures downloaded and cached.\"\n        reason += f\"\\nPath: {fixtures_source.path}\"\n        reason += f\"\\nInput: {fixtures_source.url or fixtures_source.path}\"\n        if fixtures_source.release_page:\n            reason += f\"\\nRelease page: {fixtures_source.release_page}\"\n        pytest.exit(\n            returncode=0,\n            reason=reason,\n        )\n\n    if fixtures_source.is_stdin:\n        config.test_cases = TestCases.from_stream(sys.stdin)  # type: ignore[attr-defined]\n        return\n    index_file = fixtures_source.path / \".meta\" / \"index.json\"\n    index_file.parent.mkdir(parents=True, exist_ok=True)\n    if not index_file.exists():\n        rich.print(f\"Generating index file [bold cyan]{index_file}[/]...\")\n        generate_fixtures_index(\n            fixtures_source.path,\n            quiet_mode=False,\n            force_flag=False,\n        )\n\n    index = IndexFile.model_validate_json(index_file.read_text())\n    config.test_cases = index.test_cases  # type: ignore[attr-defined]\n\n    for fixture_format in BaseFixture.formats.values():\n        config.addinivalue_line(\n            \"markers\",\n            f\"{fixture_format.format_name}: Tests in `{fixture_format.format_name}` format \",\n        )\n\n    # All forked defined within EEST\n    all_forks = {fork for fork in set(get_forks()) | get_transition_forks() if not fork.ignore()}\n    # Append all forks within the index file (compatibility with\n    # `ethereum/tests`)\n    all_forks.update(getattr(index, \"forks\", []))\n    for fork in all_forks:\n        config.addinivalue_line(\"markers\", f\"{fork}: Tests for the {fork} fork\")\n\n    if config.option.sim_limit:\n        if config.option.dest_regex != \".*\":\n            pytest.exit(\n                \"Both the --sim.limit (via env var?) and the --regex flags are set. \"\n                \"Please only set one of them.\"\n            )\n        config.option.dest_regex = config.option.sim_limit.pattern\n        if config.option.sim_limit.collectonly:\n            config.option.collectonly = True\n            config.option.verbose = -1  # equivalent to -q; only print test ids\n\n    if config.option.collectonly or config.option.markers:\n        return\n    if not config.getoption(\"disable_html\") and config.getoption(\"htmlpath\") is None:\n        # generate an html report by default, unless explicitly disabled\n        config.option.htmlpath = Path(default_html_report_file_path())\n\n\ndef pytest_html_report_title(report: Any) -> None:\n    \"\"\"Set the HTML report title (pytest-html plugin).\"\"\"\n    report.title = \"Consume Test Report\"\n\n\ndef pytest_report_header(config: pytest.Config) -> List[str]:\n    \"\"\"Add the consume version and fixtures source to the report header.\"\"\"\n    source = config.fixtures_source  # type: ignore[attr-defined]\n    lines = [\n        f\"consume ref: {get_current_commit_hash_or_tag()}\",\n        f\"fixtures: {source.path}\",\n    ]\n    if not source.is_local and not source.is_stdin:\n        lines.append(f\"fixtures url: {source.url}\")\n        lines.append(f\"fixtures release: {source.release_page}\")\n    return lines\n\n\n@pytest.fixture(scope=\"session\")\ndef fixture_source_flags(request: pytest.FixtureRequest) -> List[str]:\n    \"\"\"Return the input flags used to specify the JSON test fixtures source.\"\"\"\n    return request.config.fixture_source_flags  # type: ignore[attr-defined]\n\n\n@pytest.fixture(scope=\"session\")\ndef fixtures_source(request: pytest.FixtureRequest) -> FixturesSource:  # noqa: D103\n    return request.config.fixtures_source  # type: ignore[attr-defined]\n\n\ndef pytest_generate_tests(metafunc: pytest.Metafunc) -> None:\n    \"\"\"\n    Generate test cases for every test fixture in all the JSON fixture files\n    within the specified fixtures directory, or read from stdin if the\n    directory is 'stdin'.\n    \"\"\"\n    if \"cache\" in sys.argv:\n        return\n\n    test_cases = metafunc.config.test_cases  # type: ignore[attr-defined]\n    supported_fixture_formats: List[FixtureFormat] = getattr(\n        metafunc.config, \"supported_fixture_formats\", []\n    )\n    param_list = []\n    for test_case in test_cases:\n        if test_case.format not in supported_fixture_formats:\n            continue\n        fork_markers = get_relative_fork_markers(test_case.fork, strict_mode=False)\n        param = pytest.param(\n            test_case,\n            id=test_case.id,\n            marks=[getattr(pytest.mark, m) for m in fork_markers]\n            + [getattr(pytest.mark, test_case.format.format_name)],\n        )\n        param_list.append(param)\n\n    metafunc.parametrize(\"test_case\", param_list)\n\n    if \"client_type\" in metafunc.fixturenames:\n        metafunc.parametrize(\n            \"client_type\",\n            metafunc.config.hive_execution_clients,  # type: ignore[attr-defined]\n            ids=[client.name for client in metafunc.config.hive_execution_clients],  # type: ignore[attr-defined]\n        )\n\n\n@pytest.hookimpl(hookwrapper=True, trylast=True)\ndef pytest_terminal_summary(\n    terminalreporter: Any,\n    exitstatus: int,\n    config: pytest.Config,\n) -> Generator[None, None, None]:\n    \"\"\"Print migration warning at end of test session.\"\"\"\n    del exitstatus\n    yield\n\n    if not hasattr(config, \"workerinput\"):\n        print_migration_warning(terminalreporter)\n"
  },
  {
    "path": "src/pytest_plugins/consume/direct/__init__.py",
    "content": "\"\"\"Consume direct test functions.\"\"\"\n"
  },
  {
    "path": "src/pytest_plugins/consume/direct/conftest.py",
    "content": "\"\"\"\nA pytest plugin that configures the consume command to act as a test runner for\n\"direct\" client fixture consumer interfaces.\n\nFor example, via go-ethereum's `evm blocktest` or `evm statetest` commands.\n\"\"\"\n\nimport json\nimport tempfile\nimport warnings\nfrom pathlib import Path\nfrom typing import Any, Generator\n\nimport pytest\n\nfrom ethereum_clis.ethereum_cli import EthereumCLI\nfrom ethereum_clis.fixture_consumer_tool import FixtureConsumerTool\nfrom ethereum_test_base_types import to_json\nfrom ethereum_test_fixtures import (\n    BaseFixture,\n    BlockchainFixture,\n    EOFFixture,\n    StateFixture,\n)\nfrom ethereum_test_fixtures.consume import TestCaseIndexFile, TestCaseStream\nfrom ethereum_test_fixtures.file import Fixtures\nfrom pytest_plugins.consume.consume import FixturesSource\n\n\nclass CollectOnlyCLI(EthereumCLI):\n    \"\"\"A dummy CLI for use with `--collect-only`.\"\"\"\n\n    def __init__(self) -> None:  # noqa: D107\n        pass\n\n\nclass CollectOnlyFixtureConsumer(\n    FixtureConsumerTool, CollectOnlyCLI, fixture_formats=list(BaseFixture.formats.values())\n):\n    \"\"\"A dummy fixture consumer for use with `--collect-only`.\"\"\"\n\n    def consume_fixture(self, *args: Any, **kwargs: Any) -> None:  # noqa: D102\n        pass\n\n\ndef pytest_addoption(parser: pytest.Parser) -> None:  # noqa: D103\n    consume_group = parser.getgroup(\n        \"consume_direct\", \"Arguments related to consuming fixtures via a client\"\n    )\n\n    consume_group.addoption(\n        \"--bin\",\n        action=\"append\",\n        dest=\"fixture_consumer_bin\",\n        type=Path,\n        default=[],\n        help=(\n            \"Path to a geth evm executable that provides `blocktest` or `statetest`. \"\n            \"Flag can be used multiple times to specify multiple fixture consumer binaries.\"\n        ),\n    )\n    consume_group.addoption(\n        \"--traces\",\n        action=\"store_true\",\n        dest=\"consumer_collect_traces\",\n        default=False,\n        help=\"Collect traces of the execution information from the fixture consumer tool.\",\n    )\n    debug_group = parser.getgroup(\"debug\", \"Arguments defining debug behavior\")\n    debug_group.addoption(\n        \"--dump-dir\",\n        action=\"store\",\n        dest=\"base_dump_dir\",\n        type=Path,\n        default=None,\n        help=\"Path to dump the fixture consumer tool debug output.\",\n    )\n\n\ndef pytest_configure(config: pytest.Config) -> None:  # noqa: D103\n    config.supported_fixture_formats = [StateFixture, BlockchainFixture, EOFFixture]  # type: ignore[attr-defined]\n    fixture_consumers = []\n    for fixture_consumer_bin_path in config.getoption(\"fixture_consumer_bin\"):\n        fixture_consumers.append(\n            FixtureConsumerTool.from_binary_path(\n                binary_path=Path(fixture_consumer_bin_path),\n                trace=config.getoption(\"consumer_collect_traces\"),\n            )\n        )\n    if config.option.markers:\n        return\n    elif not fixture_consumers and config.option.collectonly:\n        warnings.warn(\n            (\n                \"No fixture consumer binaries provided; using a dummy consumer for collect-only; \"\n                \"all possible fixture formats will be collected. \"\n                \"Specify fixture consumer(s) via `--bin` to see actual collection results.\"\n            ),\n            stacklevel=1,\n        )\n        fixture_consumers = [CollectOnlyFixtureConsumer()]\n    elif not fixture_consumers:\n        pytest.exit(\n            \"No fixture consumer binaries provided; please specify a binary path via `--bin`.\"\n        )\n    config.fixture_consumers = fixture_consumers  # type: ignore[attr-defined]\n\n\n@pytest.fixture(scope=\"function\")\ndef test_dump_dir(\n    request: pytest.FixtureRequest, fixture_path: Path, fixture_name: str\n) -> Path | None:\n    \"\"\"The directory to write evm debug output to.\"\"\"\n    base_dump_dir = request.config.getoption(\"base_dump_dir\")\n    if not base_dump_dir:\n        return None\n    if len(fixture_name) > 142:\n        # ensure file name is not too long for eCryptFS\n        fixture_name = fixture_name[:70] + \"...\" + fixture_name[-70:]\n    return base_dump_dir / fixture_path.stem / fixture_name.replace(\"/\", \"-\")\n\n\n@pytest.fixture\ndef fixture_path(\n    test_case: TestCaseIndexFile | TestCaseStream, fixtures_source: FixturesSource\n) -> Generator[Path, None, None]:\n    \"\"\"\n    Path to the current JSON fixture file.\n\n    If the fixture source is stdin, the fixture is written to a temporary json\n    file.\n    \"\"\"\n    if fixtures_source.is_stdin:\n        assert isinstance(test_case, TestCaseStream)\n        temp_dir = tempfile.TemporaryDirectory()\n        fixture_path = Path(temp_dir.name) / f\"{test_case.id.replace('/', '_')}.json\"\n        fixtures = Fixtures({test_case.id: test_case.fixture})\n        with open(fixture_path, \"w\") as f:\n            json.dump(to_json(fixtures), f, indent=4)\n        yield fixture_path\n        temp_dir.cleanup()\n    else:\n        assert isinstance(test_case, TestCaseIndexFile)\n        yield fixtures_source.path / test_case.json_path\n\n\n@pytest.fixture(scope=\"function\")\ndef fixture_name(test_case: TestCaseIndexFile | TestCaseStream) -> str:\n    \"\"\"Name of the current fixture.\"\"\"\n    return test_case.id\n\n\ndef pytest_generate_tests(metafunc: pytest.Metafunc) -> None:\n    \"\"\"Parametrize test cases for every fixture consumer.\"\"\"\n    metafunc.parametrize(\n        \"fixture_consumer\",\n        (\n            pytest.param(fixture_consumer, id=str(fixture_consumer.__class__.__name__))\n            for fixture_consumer in metafunc.config.fixture_consumers  # type: ignore[attr-defined]\n        ),\n    )\n"
  },
  {
    "path": "src/pytest_plugins/consume/direct/test_via_direct.py",
    "content": "\"\"\"\nExecutes a JSON test fixture directly against a client using a dedicated client\ninterface similar to geth's EVM 'blocktest' command.\n\"\"\"\n\nfrom pathlib import Path\n\nfrom ethereum_test_fixtures import FixtureConsumer\nfrom ethereum_test_fixtures.consume import TestCaseIndexFile, TestCaseStream\n\n\ndef test_fixture(\n    test_case: TestCaseIndexFile | TestCaseStream,\n    fixture_consumer: FixtureConsumer,\n    fixture_path: Path,\n    test_dump_dir: Path | None,\n) -> None:\n    \"\"\"\n    Generic test function used to call the fixture consumer with a given\n    fixture file path and a fixture name (for a single test run).\n    \"\"\"\n    fixture_consumer.consume_fixture(\n        test_case.format,\n        fixture_path,\n        fixture_name=test_case.id,\n        debug_output_path=test_dump_dir,\n    )\n"
  },
  {
    "path": "src/pytest_plugins/consume/hive_engine_test/__init__.py",
    "content": "\"\"\"Hive engine test consumer plugin.\"\"\"\n"
  },
  {
    "path": "src/pytest_plugins/consume/hive_simulators_reorg/__init__.py",
    "content": "\"\"\"Hive simulators reorganization consumer plugin.\"\"\"\n"
  },
  {
    "path": "src/pytest_plugins/consume/releases.py",
    "content": "\"\"\"Procedures to consume fixtures from Github releases.\"\"\"\n\nimport json\nimport os\nimport re\nfrom dataclasses import dataclass\nfrom datetime import datetime\nfrom pathlib import Path\nfrom typing import List\nfrom urllib.parse import urlparse\n\nimport platformdirs\nimport requests\nfrom pydantic import BaseModel, Field, RootModel\n\nCACHED_RELEASE_INFORMATION_FILE = (\n    Path(platformdirs.user_cache_dir(\"ethereum-execution-spec-tests\")) / \"release_information.json\"\n)\n\nSUPPORTED_REPOS = [\"ethereum/execution-spec-tests\", \"ethereum/tests\", \"ethereum/legacytests\"]\n\n\nclass NoSuchReleaseError(Exception):\n    \"\"\"Raised when a release does not exist.\"\"\"\n\n    def __init__(self, release_string: str):\n        \"\"\"Initialize the exception.\"\"\"\n        super().__init__(f\"Unknown release source: {release_string}\")\n\n\nclass AssetNotFoundError(Exception):\n    \"\"\"Raised when a release has no assets.\"\"\"\n\n    def __init__(self, release_string: str):\n        \"\"\"Initialize the exception.\"\"\"\n        super().__init__(f\"Asset not found: {release_string}\")\n\n\n@dataclass(kw_only=True)\nclass ReleaseTag:\n    \"\"\"A descriptor for a release.\"\"\"\n\n    tag_name: str\n    version: str | None\n\n    @classmethod\n    def from_string(cls, release_string: str) -> \"ReleaseTag\":\n        \"\"\"\n        Create a release descriptor from a string.\n\n        The release source can be in the format `tag_name@version` or just\n        `tag_name`.\n        \"\"\"\n        version: str | None\n        if \"@\" in release_string:\n            tag_name, version = release_string.split(\"@\")\n            if version == \"\" or version.lower() == \"latest\":\n                version = None\n        else:\n            tag_name = release_string\n            version = None\n        return cls(tag_name=tag_name, version=version)\n\n    @staticmethod\n    def is_release_string(release_string: str) -> bool:\n        \"\"\"Check if the release string is in the correct format.\"\"\"\n        return \"@\" in release_string\n\n    def __eq__(self, value: object) -> bool:\n        \"\"\"\n        Check if the release descriptor matches the string value.\n\n        Returns True if the value is the same as the tag name or the tag name\n        and version.\n        \"\"\"\n        assert isinstance(value, str), f\"Expected a string, but got: {value}\"\n        if self.version is not None:\n            # normal release, e.g., stable@v4.0.0\n            normal_release_match = value == self.version\n            # pre release, e.g., pectra-devnet-6@v1.0.0\n            pre_release_match = value == f\"{self.tag_name}@{self.version}\"\n            return normal_release_match or pre_release_match\n        return value.startswith(self.tag_name)\n\n    @property\n    def asset_name(self) -> str:\n        \"\"\"Get the asset name.\"\"\"\n        return f\"fixtures_{self.tag_name}.tar.gz\"\n\n\nclass Asset(BaseModel):\n    \"\"\"Information about a release asset.\"\"\"\n\n    url: str = Field(..., alias=\"browser_download_url\")\n    id: int\n    name: str\n    content_type: str\n    size: int\n\n\nclass Assets(RootModel[List[Asset]]):\n    \"\"\"A list of assets and their information.\"\"\"\n\n    root: List[Asset]\n\n    def __contains__(self, release_descriptor: ReleaseTag) -> bool:\n        \"\"\"Check if the assets contain the release descriptor.\"\"\"\n        return any(release_descriptor.asset_name == asset.name for asset in self.root)\n\n\nclass ReleaseInformation(BaseModel):\n    \"\"\"Information about a release.\"\"\"\n\n    url: str = Field(..., alias=\"html_url\")\n    id: int\n    tag_name: str\n    name: str\n    created_at: datetime\n    published_at: datetime\n    assets: Assets\n\n    def __contains__(self, release_descriptor: ReleaseTag) -> bool:\n        \"\"\"Check if the release information contains the release descriptor.\"\"\"\n        if release_descriptor.version is not None:\n            return release_descriptor == self.tag_name\n        for asset in self.assets.root:\n            if asset.name == release_descriptor.asset_name:\n                return True\n        return False\n\n    def get_asset(self, release_descriptor: ReleaseTag) -> Asset:\n        \"\"\"Get the asset URL.\"\"\"\n        for asset in self.assets.root:\n            if asset.name == release_descriptor.asset_name:\n                return asset\n        raise AssetNotFoundError(release_descriptor.tag_name)\n\n\nclass Releases(RootModel[List[ReleaseInformation]]):\n    \"\"\"A list of releases and their information.\"\"\"\n\n    root: List[ReleaseInformation]\n\n\ndef is_docker_or_ci() -> bool:\n    \"\"\"\n    Check if the code is running inside a Docker container or a CI environment.\n    \"\"\"\n    return \"GITHUB_ACTIONS\" in os.environ or Path(\"/.dockerenv\").exists()\n\n\ndef is_url(string: str) -> bool:\n    \"\"\"Check if a string is a remote URL.\"\"\"\n    result = urlparse(string)\n    return all([result.scheme, result.netloc])\n\n\ndef is_release_url(input_str: str) -> bool:\n    \"\"\"Check if the release string is a URL.\"\"\"\n    if not is_url(input_str):\n        return False\n    repo_pattern = \"|\".join(re.escape(repo) for repo in SUPPORTED_REPOS)\n    regex_pattern = rf\"https://github\\.com/({repo_pattern})/releases/download/\"\n    return re.match(regex_pattern, input_str) is not None\n\n\ndef parse_release_information(release_information: List) -> List[ReleaseInformation]:\n    \"\"\"Parse the release information from the Github API.\"\"\"\n    return Releases.model_validate(release_information).root\n\n\ndef download_release_information(destination_file: Path | None) -> List[ReleaseInformation]:\n    \"\"\"\n    Download all releases from the GitHub API, handling pagination properly.\n\n    GitHub's API returns releases in pages of 30 by default. This function\n    follows the pagination links to ensure we get every release, which is\n    crucial for finding older version or latest releases.\n    \"\"\"\n    all_releases = []\n    for repo in SUPPORTED_REPOS:\n        current_url: str | None = f\"https://api.github.com/repos/{repo}/releases\"\n        max_pages = 2\n        while current_url and max_pages > 0:\n            max_pages -= 1\n            response = requests.get(current_url)\n            response.raise_for_status()\n            all_releases.extend(response.json())\n            current_url = None\n            if \"link\" in response.headers:\n                for link in requests.utils.parse_header_links(response.headers[\"link\"]):\n                    if link[\"rel\"] == \"next\":\n                        current_url = link[\"url\"]\n                        break\n\n    if destination_file:\n        destination_file.parent.mkdir(parents=True, exist_ok=True)\n        with open(destination_file, \"w\") as file:\n            json.dump(all_releases, file)\n    return parse_release_information(all_releases)\n\n\ndef parse_release_information_from_file(\n    release_information_file: Path,\n) -> List[ReleaseInformation]:\n    \"\"\"Parse the release information from a file.\"\"\"\n    with open(release_information_file, \"r\") as file:\n        release_information = json.load(file)\n    return parse_release_information(release_information)\n\n\ndef get_release_url_from_release_information(\n    release_string: str, release_information: List[ReleaseInformation]\n) -> str:\n    \"\"\"Get the URL for a specific release.\"\"\"\n    release_descriptor = ReleaseTag.from_string(release_string)\n    for release in release_information:\n        if release_descriptor in release:\n            return release.get_asset(release_descriptor).url\n    raise NoSuchReleaseError(release_string)\n\n\ndef get_release_page_url(release_string: str) -> str:\n    \"\"\"\n    Return the GitHub Release page URL for a specific release descriptor.\n\n    This function can handle:\n    - A standard release string (e.g., \"eip7692@latest\") from\n      execution-spec-tests only.\n    - A direct asset download link (e.g.,\n      \"https://github.com/ethereum/execution-spec-tests/releases/\n      download/v4.0.0/fixtures_eip7692.tar.gz\").\n    \"\"\"\n    release_information = get_release_information()\n\n    # Case 1: If it's a direct GitHub Releases download link, find which\n    # release in `release_information` has an asset with this exact URL.\n    repo_pattern = \"|\".join(re.escape(repo) for repo in SUPPORTED_REPOS)\n    regex_pattern = rf\"https://github\\.com/({repo_pattern})/releases/download/\"\n    if re.match(regex_pattern, release_string):\n        for release in release_information:\n            for asset in release.assets.root:\n                if asset.url == release_string:\n                    return release.url  # The HTML page for this release\n        raise NoSuchReleaseError(f\"No release found for asset URL: {release_string}\")\n\n    # Case 2: Otherwise, treat it as a release descriptor (e.g.,\n    # \"eip7692@latest\")\n    release_descriptor = ReleaseTag.from_string(release_string)\n    for release in release_information:\n        if release_descriptor in release:\n            return release.url\n\n    # If nothing matched, raise\n    raise NoSuchReleaseError(release_string)\n\n\ndef get_release_information() -> List[ReleaseInformation]:\n    \"\"\"\n    Get the release information.\n\n    First check if the cached release information file exists. If it does, but\n    it is older than 4 hours, delete the file, unless running inside a CI\n    environment or a Docker container. Then download the release information\n    from the Github API and save it to the cache file.\n    \"\"\"\n    if CACHED_RELEASE_INFORMATION_FILE.exists():\n        last_modified = CACHED_RELEASE_INFORMATION_FILE.stat().st_mtime\n        if (datetime.now().timestamp() - last_modified) < 4 * 60 * 60 or is_docker_or_ci():\n            return parse_release_information_from_file(CACHED_RELEASE_INFORMATION_FILE)\n        CACHED_RELEASE_INFORMATION_FILE.unlink()\n    if not CACHED_RELEASE_INFORMATION_FILE.exists():\n        return download_release_information(CACHED_RELEASE_INFORMATION_FILE)\n    return parse_release_information_from_file(CACHED_RELEASE_INFORMATION_FILE)\n\n\ndef get_release_url(release_string: str) -> str:\n    \"\"\"Get the URL for a specific release.\"\"\"\n    release_information = get_release_information()\n    return get_release_url_from_release_information(release_string, release_information)\n"
  },
  {
    "path": "src/pytest_plugins/consume/simulators/__init__.py",
    "content": "\"\"\"Consume hive simulators test functions.\"\"\"\n"
  },
  {
    "path": "src/pytest_plugins/consume/simulators/base.py",
    "content": "\"\"\"Common pytest fixtures for the Hive simulators.\"\"\"\n\nfrom pathlib import Path\nfrom typing import Dict, Literal\n\nimport pytest\nfrom hive.client import Client\n\nfrom ethereum_test_fixtures import (\n    BaseFixture,\n)\nfrom ethereum_test_fixtures.consume import TestCaseIndexFile, TestCaseStream\nfrom ethereum_test_fixtures.file import Fixtures\nfrom ethereum_test_rpc import EthRPC\n\nfrom ..consume import FixturesSource\n\n\n@pytest.fixture(scope=\"function\")\ndef eth_rpc(client: Client) -> EthRPC:\n    \"\"\"Initialize ethereum RPC client for the execution client under test.\"\"\"\n    return EthRPC(f\"http://{client.ip}:8545\")\n\n\n@pytest.fixture(scope=\"function\")\ndef check_live_port(test_suite_name: str) -> Literal[8545, 8551]:\n    \"\"\"Port used by hive to check for liveness of the client.\"\"\"\n    if test_suite_name == \"eest/consume-rlp\":\n        return 8545\n    elif test_suite_name in {\"eest/consume-engine\", \"eest/consume-sync\"}:\n        return 8551\n    raise ValueError(\n        f\"Unexpected test suite name '{test_suite_name}' while setting HIVE_CHECK_LIVE_PORT.\"\n    )\n\n\nclass FixturesDict(Dict[Path, Fixtures]):\n    \"\"\"\n    A dictionary caches loaded fixture files to avoid reloading the same file\n    multiple times.\n    \"\"\"\n\n    def __init__(self) -> None:\n        \"\"\"Initialize the dictionary that caches loaded fixture files.\"\"\"\n        self._fixtures: Dict[Path, Fixtures] = {}\n\n    def __getitem__(self, key: Path) -> Fixtures:\n        \"\"\"\n        Return the fixtures from the index file, if not found, load from disk.\n        \"\"\"\n        assert key.is_file(), f\"Expected a file path, got '{key}'\"\n        if key not in self._fixtures:\n            self._fixtures[key] = Fixtures.model_validate_json(key.read_text())\n        return self._fixtures[key]\n\n\n@pytest.fixture(scope=\"session\")\ndef fixture_file_loader() -> Dict[Path, Fixtures]:\n    \"\"\"\n    Return a singleton dictionary that caches loaded fixture files used in all\n    tests.\n    \"\"\"\n    return FixturesDict()\n\n\n@pytest.fixture(scope=\"function\")\ndef fixture(\n    fixtures_source: FixturesSource,\n    fixture_file_loader: Dict[Path, Fixtures],\n    test_case: TestCaseIndexFile | TestCaseStream,\n) -> BaseFixture:\n    \"\"\"\n    Load the fixture from a file or from stream in any of the supported fixture\n    formats.\n\n    The fixture is either already available within the test case (if consume is\n    taking input on stdin) or loaded from the fixture json file if taking input\n    from disk (fixture directory with index file).\n    \"\"\"\n    fixture: BaseFixture\n    if fixtures_source.is_stdin:\n        assert isinstance(test_case, TestCaseStream), \"Expected a stream test case\"\n        fixture = test_case.fixture\n    else:\n        assert isinstance(test_case, TestCaseIndexFile), \"Expected an index file test case\"\n        fixtures_file_path = fixtures_source.path / test_case.json_path\n        fixtures: Fixtures = fixture_file_loader[fixtures_file_path]\n        fixture = fixtures[test_case.id]\n    assert isinstance(fixture, test_case.format), (\n        f\"Expected a {test_case.format.format_name} test fixture\"\n    )\n    return fixture\n"
  },
  {
    "path": "src/pytest_plugins/consume/simulators/engine/__init__.py",
    "content": "\"\"\"Consume Engine test functions.\"\"\"\n"
  },
  {
    "path": "src/pytest_plugins/consume/simulators/engine/conftest.py",
    "content": "\"\"\"\nPytest fixtures for the `consume engine` simulator.\n\nConfigures the hive back-end & EL clients for each individual test execution.\n\"\"\"\n\nimport io\nfrom typing import Mapping\n\nimport pytest\nfrom hive.client import Client\n\nfrom ethereum_test_exceptions import ExceptionMapper\nfrom ethereum_test_fixtures import BlockchainEngineFixture\nfrom ethereum_test_rpc import EngineRPC\n\npytest_plugins = (\n    \"pytest_plugins.pytest_hive.pytest_hive\",\n    \"pytest_plugins.consume.simulators.base\",\n    \"pytest_plugins.consume.simulators.single_test_client\",\n    \"pytest_plugins.consume.simulators.test_case_description\",\n    \"pytest_plugins.consume.simulators.timing_data\",\n    \"pytest_plugins.consume.simulators.exceptions\",\n)\n\n\ndef pytest_configure(config: pytest.Config) -> None:\n    \"\"\"Set the supported fixture formats for the engine simulator.\"\"\"\n    config.supported_fixture_formats = [BlockchainEngineFixture]  # type: ignore[attr-defined]\n\n\n@pytest.fixture(scope=\"function\")\ndef engine_rpc(client: Client, client_exception_mapper: ExceptionMapper | None) -> EngineRPC:\n    \"\"\"Initialize engine RPC client for the execution client under test.\"\"\"\n    if client_exception_mapper:\n        return EngineRPC(\n            f\"http://{client.ip}:8551\",\n            response_validation_context={\n                \"exception_mapper\": client_exception_mapper,\n            },\n        )\n    return EngineRPC(f\"http://{client.ip}:8551\")\n\n\n@pytest.fixture(scope=\"module\")\ndef test_suite_name() -> str:\n    \"\"\"The name of the hive test suite used in this simulator.\"\"\"\n    return \"eest/consume-engine\"\n\n\n@pytest.fixture(scope=\"module\")\ndef test_suite_description() -> str:\n    \"\"\"The description of the hive test suite used in this simulator.\"\"\"\n    return \"Execute blockchain tests against clients using the Engine API.\"\n\n\n@pytest.fixture(scope=\"function\")\ndef client_files(buffered_genesis: io.BufferedReader) -> Mapping[str, io.BufferedReader]:\n    \"\"\"Define the files that hive will start the client with.\"\"\"\n    files = {}\n    files[\"/genesis.json\"] = buffered_genesis\n    return files\n"
  },
  {
    "path": "src/pytest_plugins/consume/simulators/exceptions.py",
    "content": "\"\"\"Pytest plugin that defines options and fixtures for client exceptions.\"\"\"\n\nfrom typing import Dict, List\n\nimport pytest\nfrom hive.client import ClientType\n\nfrom ethereum_test_exceptions import ExceptionMapper\nfrom ethereum_test_fixtures import (\n    BlockchainFixtureCommon,\n)\n\nfrom .helpers.exceptions import EXCEPTION_MAPPERS\n\n\ndef pytest_addoption(parser: pytest.Parser) -> None:\n    \"\"\"Hive simulator specific consume command line options.\"\"\"\n    consume_group = parser.getgroup(\n        \"consume\", \"Arguments related to consuming fixtures via a client\"\n    )\n    consume_group.addoption(\n        \"--disable-strict-exception-matching\",\n        action=\"store\",\n        dest=\"disable_strict_exception_matching\",\n        default=\"\",\n        help=(\n            \"Comma-separated list of client names and/or forks which should NOT use strict \"\n            \"exception matching.\"\n        ),\n    )\n\n\n@pytest.fixture(scope=\"session\")\ndef client_exception_mapper_cache() -> Dict[str, ExceptionMapper | None]:\n    \"\"\"Cache for exception mappers by client type.\"\"\"\n    return {}\n\n\n@pytest.fixture(scope=\"function\")\ndef client_exception_mapper(\n    client_type: ClientType, client_exception_mapper_cache: Dict[str, ExceptionMapper | None]\n) -> ExceptionMapper | None:\n    \"\"\"Return the exception mapper for the client type, with caching.\"\"\"\n    if client_type.name not in client_exception_mapper_cache:\n        for client in EXCEPTION_MAPPERS:\n            if client in client_type.name:\n                client_exception_mapper_cache[client_type.name] = EXCEPTION_MAPPERS[client]\n                break\n        else:\n            client_exception_mapper_cache[client_type.name] = None\n\n    return client_exception_mapper_cache[client_type.name]\n\n\n@pytest.fixture(scope=\"session\")\ndef disable_strict_exception_matching(request: pytest.FixtureRequest) -> List[str]:\n    \"\"\"\n    Return the list of clients or forks that should NOT use strict exception\n    matching.\n    \"\"\"\n    config_string = request.config.getoption(\"disable_strict_exception_matching\")\n    return config_string.split(\",\") if config_string else []\n\n\n@pytest.fixture(scope=\"function\")\ndef client_strict_exception_matching(\n    client_type: ClientType,\n    disable_strict_exception_matching: List[str],\n) -> bool:\n    \"\"\"Return True if the client type should use strict exception matching.\"\"\"\n    return not any(\n        client.lower() in client_type.name.lower() for client in disable_strict_exception_matching\n    )\n\n\n@pytest.fixture(scope=\"function\")\ndef fork_strict_exception_matching(\n    fixture: BlockchainFixtureCommon,\n    disable_strict_exception_matching: List[str],\n) -> bool:\n    \"\"\"Return True if the fork should use strict exception matching.\"\"\"\n    # NOTE: `in` makes it easier for transition forks (\"Prague\" in\n    # \"CancunToPragueAtTime15k\")\n    return not any(\n        s.lower() in str(fixture.fork).lower() for s in disable_strict_exception_matching\n    )\n\n\n@pytest.fixture(scope=\"function\")\ndef strict_exception_matching(\n    client_strict_exception_matching: bool,\n    fork_strict_exception_matching: bool,\n) -> bool:\n    \"\"\"Return True if the test should use strict exception matching.\"\"\"\n    return client_strict_exception_matching and fork_strict_exception_matching\n"
  },
  {
    "path": "src/pytest_plugins/consume/simulators/helpers/__init__.py",
    "content": "\"\"\"Helper classes and functions for consume hive simulators.\"\"\"\n"
  },
  {
    "path": "src/pytest_plugins/consume/simulators/helpers/exceptions.py",
    "content": "\"\"\"Custom exceptions utilized within consume simulators.\"\"\"\n\nimport pprint\nfrom typing import Dict, List, Tuple\n\nfrom ethereum_clis.clis.besu import BesuExceptionMapper\nfrom ethereum_clis.clis.erigon import ErigonExceptionMapper\nfrom ethereum_clis.clis.ethereumjs import EthereumJSExceptionMapper\nfrom ethereum_clis.clis.ethrex import EthrexExceptionMapper\nfrom ethereum_clis.clis.geth import GethExceptionMapper\nfrom ethereum_clis.clis.nethermind import NethermindExceptionMapper\nfrom ethereum_clis.clis.nimbus import NimbusExceptionMapper\nfrom ethereum_clis.clis.reth import RethExceptionMapper\nfrom ethereum_test_exceptions import ExceptionMapper\nfrom ethereum_test_fixtures.blockchain import FixtureHeader\n\n\nclass GenesisBlockMismatchExceptionError(Exception):\n    \"\"\"\n    Definers a mismatch exception between the client and fixture genesis\n    blockhash.\n    \"\"\"\n\n    def __init__(self, *, expected_header: FixtureHeader, got_genesis_block: Dict[str, str]):\n        \"\"\"\n        Initialize the exception with the expected and received genesis block\n        headers.\n        \"\"\"\n        message = (\n            \"Genesis block hash mismatch.\\n\\n\"\n            f\"Expected: {expected_header.block_hash}\\n\"\n            f\"     Got: {got_genesis_block['hash']}.\"\n        )\n        differences, unexpected_fields = self.compare_models(\n            expected_header, FixtureHeader(**got_genesis_block)\n        )\n        if differences:\n            message += (\n                \"\\n\\nGenesis block header field differences:\\n\"\n                f\"{pprint.pformat(differences, indent=4)}\"\n            )\n        elif unexpected_fields:\n            message += (\n                \"\\n\\nUn-expected genesis block header fields from client:\\n\"\n                f\"{pprint.pformat(unexpected_fields, indent=4)}\"\n                \"\\nIs the fork configuration correct?\"\n            )\n        else:\n            message += (\n                \"There were no differences in the expected and received genesis block headers.\"\n            )\n        super().__init__(message)\n\n    @staticmethod\n    def compare_models(expected: FixtureHeader, got: FixtureHeader) -> Tuple[Dict, List]:\n        \"\"\"\n        Compare two FixtureHeader model instances and return their differences.\n        \"\"\"\n        differences = {}\n        unexpected_fields = []\n        for (exp_name, exp_value), (got_name, got_value) in zip(expected, got, strict=False):\n            if \"rlp\" in exp_name or \"fork\" in exp_name:  # ignore rlp as not verbose enough\n                continue\n            if exp_value != got_value:\n                differences[exp_name] = {\n                    \"expected     \": str(exp_value),\n                    \"got (via rpc)\": str(got_value),\n                }\n            if got_value is None:\n                unexpected_fields.append(got_name)\n        return differences, unexpected_fields\n\n\nEXCEPTION_MAPPERS: Dict[str, ExceptionMapper] = {\n    \"go-ethereum\": GethExceptionMapper(),\n    \"nethermind\": NethermindExceptionMapper(),\n    \"erigon\": ErigonExceptionMapper(),\n    \"besu\": BesuExceptionMapper(),\n    \"reth\": RethExceptionMapper(),\n    \"nimbus\": NimbusExceptionMapper(),\n    \"ethereumjs\": EthereumJSExceptionMapper(),\n    \"ethrex\": EthrexExceptionMapper(),\n}\n"
  },
  {
    "path": "src/pytest_plugins/consume/simulators/helpers/ruleset.py",
    "content": "\"\"\"\nFork rules for consume hive simulators.\n\nTODO: Create the ruleset dynamically per fixture test case based on the fork.\nRemove this file afterwards.\n\"\"\"\n\nfrom typing import Dict, List\n\nfrom ethereum_test_forks import (\n    BPO1,\n    BPO2,\n    BPO3,\n    BPO4,\n    Amsterdam,\n    Berlin,\n    BerlinToLondonAt5,\n    BPO1ToBPO2AtTime15k,\n    BPO2ToBPO3AtTime15k,\n    BPO3ToBPO4AtTime15k,\n    Byzantium,\n    Cancun,\n    CancunToPragueAtTime15k,\n    Constantinople,\n    ConstantinopleFix,\n    Fork,\n    Frontier,\n    Homestead,\n    Istanbul,\n    London,\n    Osaka,\n    OsakaToBPO1AtTime15k,\n    Paris,\n    ParisToShanghaiAtTime15k,\n    Prague,\n    PragueToOsakaAtTime15k,\n    Shanghai,\n    ShanghaiToCancunAtTime15k,\n)\n\n\ndef get_blob_schedule_entries(fork: Fork) -> Dict[str, int]:\n    \"\"\"\n    Generate blob schedule entries for each fork (and respective parent forks).\n\n    Adds the following entries to the ruleset for the given fork (and parent\n    forks):\n      HIVE_{FORK}_BLOB_TARGET: target_blobs_per_block()\n      HIVE_{FORK}_BLOB_MAX: max_blobs_per_block()\n      HIVE_{FORK}_BLOB_BASE_FEE_UPDATE_FRACTION: blob_base_fee_update_\n                                                 fraction()\n    \"\"\"\n    entries: Dict = {}\n    forks_with_blobs: List[Fork] = []\n    current_fork = fork\n    while current_fork.supports_blobs():\n        forks_with_blobs.append(current_fork)\n        current_fork = current_fork.parent()  # type: ignore\n\n    for fork_to_process in forks_with_blobs:\n        prefix = fork_to_process.__name__.upper()\n        entries[f\"HIVE_{prefix}_BLOB_TARGET\"] = fork_to_process.target_blobs_per_block()\n        entries[f\"HIVE_{prefix}_BLOB_MAX\"] = fork_to_process.max_blobs_per_block()\n        entries[f\"HIVE_{prefix}_BLOB_BASE_FEE_UPDATE_FRACTION\"] = (\n            fork_to_process.blob_base_fee_update_fraction()\n        )\n    return entries\n\n\nruleset: Dict[Fork, Dict[str, int]] = {\n    Frontier: {\n        \"HIVE_FORK_HOMESTEAD\": 2000,\n        \"HIVE_FORK_DAO_BLOCK\": 2000,\n        \"HIVE_FORK_TANGERINE\": 2000,\n        \"HIVE_FORK_SPURIOUS\": 2000,\n        \"HIVE_FORK_BYZANTIUM\": 2000,\n        \"HIVE_FORK_CONSTANTINOPLE\": 2000,\n        \"HIVE_FORK_PETERSBURG\": 2000,\n        \"HIVE_FORK_ISTANBUL\": 2000,\n        \"HIVE_FORK_BERLIN\": 2000,\n        \"HIVE_FORK_LONDON\": 2000,\n    },\n    Homestead: {\n        \"HIVE_FORK_HOMESTEAD\": 0,\n        \"HIVE_FORK_DAO_BLOCK\": 2000,\n        \"HIVE_FORK_TANGERINE\": 2000,\n        \"HIVE_FORK_SPURIOUS\": 2000,\n        \"HIVE_FORK_BYZANTIUM\": 2000,\n        \"HIVE_FORK_CONSTANTINOPLE\": 2000,\n        \"HIVE_FORK_PETERSBURG\": 2000,\n        \"HIVE_FORK_ISTANBUL\": 2000,\n        \"HIVE_FORK_BERLIN\": 2000,\n        \"HIVE_FORK_LONDON\": 2000,\n    },\n    Byzantium: {\n        \"HIVE_FORK_HOMESTEAD\": 0,\n        \"HIVE_FORK_TANGERINE\": 0,\n        \"HIVE_FORK_SPURIOUS\": 0,\n        \"HIVE_FORK_BYZANTIUM\": 0,\n        \"HIVE_FORK_CONSTANTINOPLE\": 2000,\n        \"HIVE_FORK_PETERSBURG\": 2000,\n        \"HIVE_FORK_ISTANBUL\": 2000,\n        \"HIVE_FORK_BERLIN\": 2000,\n        \"HIVE_FORK_LONDON\": 2000,\n    },\n    Constantinople: {\n        \"HIVE_FORK_HOMESTEAD\": 0,\n        \"HIVE_FORK_TANGERINE\": 0,\n        \"HIVE_FORK_SPURIOUS\": 0,\n        \"HIVE_FORK_BYZANTIUM\": 0,\n        \"HIVE_FORK_CONSTANTINOPLE\": 0,\n        \"HIVE_FORK_PETERSBURG\": 2000,\n        \"HIVE_FORK_ISTANBUL\": 2000,\n        \"HIVE_FORK_BERLIN\": 2000,\n        \"HIVE_FORK_LONDON\": 2000,\n    },\n    ConstantinopleFix: {\n        \"HIVE_FORK_HOMESTEAD\": 0,\n        \"HIVE_FORK_TANGERINE\": 0,\n        \"HIVE_FORK_SPURIOUS\": 0,\n        \"HIVE_FORK_BYZANTIUM\": 0,\n        \"HIVE_FORK_CONSTANTINOPLE\": 0,\n        \"HIVE_FORK_PETERSBURG\": 0,\n        \"HIVE_FORK_ISTANBUL\": 2000,\n        \"HIVE_FORK_BERLIN\": 2000,\n        \"HIVE_FORK_LONDON\": 2000,\n    },\n    Istanbul: {\n        \"HIVE_FORK_HOMESTEAD\": 0,\n        \"HIVE_FORK_TANGERINE\": 0,\n        \"HIVE_FORK_SPURIOUS\": 0,\n        \"HIVE_FORK_BYZANTIUM\": 0,\n        \"HIVE_FORK_CONSTANTINOPLE\": 0,\n        \"HIVE_FORK_PETERSBURG\": 0,\n        \"HIVE_FORK_ISTANBUL\": 0,\n        \"HIVE_FORK_BERLIN\": 2000,\n        \"HIVE_FORK_LONDON\": 2000,\n    },\n    Berlin: {\n        \"HIVE_FORK_HOMESTEAD\": 0,\n        \"HIVE_FORK_TANGERINE\": 0,\n        \"HIVE_FORK_SPURIOUS\": 0,\n        \"HIVE_FORK_BYZANTIUM\": 0,\n        \"HIVE_FORK_CONSTANTINOPLE\": 0,\n        \"HIVE_FORK_PETERSBURG\": 0,\n        \"HIVE_FORK_ISTANBUL\": 0,\n        \"HIVE_FORK_BERLIN\": 0,\n        \"HIVE_FORK_LONDON\": 2000,\n    },\n    BerlinToLondonAt5: {\n        \"HIVE_FORK_HOMESTEAD\": 0,\n        \"HIVE_FORK_TANGERINE\": 0,\n        \"HIVE_FORK_SPURIOUS\": 0,\n        \"HIVE_FORK_BYZANTIUM\": 0,\n        \"HIVE_FORK_CONSTANTINOPLE\": 0,\n        \"HIVE_FORK_PETERSBURG\": 0,\n        \"HIVE_FORK_ISTANBUL\": 0,\n        \"HIVE_FORK_BERLIN\": 0,\n        \"HIVE_FORK_LONDON\": 5,\n    },\n    London: {\n        \"HIVE_FORK_HOMESTEAD\": 0,\n        \"HIVE_FORK_TANGERINE\": 0,\n        \"HIVE_FORK_SPURIOUS\": 0,\n        \"HIVE_FORK_BYZANTIUM\": 0,\n        \"HIVE_FORK_CONSTANTINOPLE\": 0,\n        \"HIVE_FORK_PETERSBURG\": 0,\n        \"HIVE_FORK_ISTANBUL\": 0,\n        \"HIVE_FORK_BERLIN\": 0,\n        \"HIVE_FORK_LONDON\": 0,\n    },\n    Paris: {\n        \"HIVE_FORK_HOMESTEAD\": 0,\n        \"HIVE_FORK_TANGERINE\": 0,\n        \"HIVE_FORK_SPURIOUS\": 0,\n        \"HIVE_FORK_BYZANTIUM\": 0,\n        \"HIVE_FORK_CONSTANTINOPLE\": 0,\n        \"HIVE_FORK_PETERSBURG\": 0,\n        \"HIVE_FORK_ISTANBUL\": 0,\n        \"HIVE_FORK_BERLIN\": 0,\n        \"HIVE_FORK_LONDON\": 0,\n        \"HIVE_FORK_MERGE\": 0,\n        \"HIVE_TERMINAL_TOTAL_DIFFICULTY\": 0,\n    },\n    Shanghai: {\n        \"HIVE_FORK_HOMESTEAD\": 0,\n        \"HIVE_FORK_TANGERINE\": 0,\n        \"HIVE_FORK_SPURIOUS\": 0,\n        \"HIVE_FORK_BYZANTIUM\": 0,\n        \"HIVE_FORK_CONSTANTINOPLE\": 0,\n        \"HIVE_FORK_PETERSBURG\": 0,\n        \"HIVE_FORK_ISTANBUL\": 0,\n        \"HIVE_FORK_BERLIN\": 0,\n        \"HIVE_FORK_LONDON\": 0,\n        \"HIVE_FORK_MERGE\": 0,\n        \"HIVE_TERMINAL_TOTAL_DIFFICULTY\": 0,\n        \"HIVE_SHANGHAI_TIMESTAMP\": 0,\n    },\n    ParisToShanghaiAtTime15k: {\n        \"HIVE_FORK_HOMESTEAD\": 0,\n        \"HIVE_FORK_TANGERINE\": 0,\n        \"HIVE_FORK_SPURIOUS\": 0,\n        \"HIVE_FORK_BYZANTIUM\": 0,\n        \"HIVE_FORK_CONSTANTINOPLE\": 0,\n        \"HIVE_FORK_PETERSBURG\": 0,\n        \"HIVE_FORK_ISTANBUL\": 0,\n        \"HIVE_FORK_BERLIN\": 0,\n        \"HIVE_FORK_LONDON\": 0,\n        \"HIVE_FORK_MERGE\": 0,\n        \"HIVE_TERMINAL_TOTAL_DIFFICULTY\": 0,\n        \"HIVE_SHANGHAI_TIMESTAMP\": 15000,\n    },\n    Cancun: {\n        \"HIVE_FORK_HOMESTEAD\": 0,\n        \"HIVE_FORK_TANGERINE\": 0,\n        \"HIVE_FORK_SPURIOUS\": 0,\n        \"HIVE_FORK_BYZANTIUM\": 0,\n        \"HIVE_FORK_CONSTANTINOPLE\": 0,\n        \"HIVE_FORK_PETERSBURG\": 0,\n        \"HIVE_FORK_ISTANBUL\": 0,\n        \"HIVE_FORK_BERLIN\": 0,\n        \"HIVE_FORK_LONDON\": 0,\n        \"HIVE_FORK_MERGE\": 0,\n        \"HIVE_TERMINAL_TOTAL_DIFFICULTY\": 0,\n        \"HIVE_SHANGHAI_TIMESTAMP\": 0,\n        \"HIVE_CANCUN_TIMESTAMP\": 0,\n        **get_blob_schedule_entries(Cancun),\n    },\n    ShanghaiToCancunAtTime15k: {\n        \"HIVE_FORK_HOMESTEAD\": 0,\n        \"HIVE_FORK_TANGERINE\": 0,\n        \"HIVE_FORK_SPURIOUS\": 0,\n        \"HIVE_FORK_BYZANTIUM\": 0,\n        \"HIVE_FORK_CONSTANTINOPLE\": 0,\n        \"HIVE_FORK_PETERSBURG\": 0,\n        \"HIVE_FORK_ISTANBUL\": 0,\n        \"HIVE_FORK_BERLIN\": 0,\n        \"HIVE_FORK_LONDON\": 0,\n        \"HIVE_FORK_MERGE\": 0,\n        \"HIVE_TERMINAL_TOTAL_DIFFICULTY\": 0,\n        \"HIVE_SHANGHAI_TIMESTAMP\": 0,\n        \"HIVE_CANCUN_TIMESTAMP\": 15000,\n        **get_blob_schedule_entries(Cancun),\n    },\n    Prague: {\n        \"HIVE_FORK_HOMESTEAD\": 0,\n        \"HIVE_FORK_TANGERINE\": 0,\n        \"HIVE_FORK_SPURIOUS\": 0,\n        \"HIVE_FORK_BYZANTIUM\": 0,\n        \"HIVE_FORK_CONSTANTINOPLE\": 0,\n        \"HIVE_FORK_PETERSBURG\": 0,\n        \"HIVE_FORK_ISTANBUL\": 0,\n        \"HIVE_FORK_BERLIN\": 0,\n        \"HIVE_FORK_LONDON\": 0,\n        \"HIVE_FORK_MERGE\": 0,\n        \"HIVE_TERMINAL_TOTAL_DIFFICULTY\": 0,\n        \"HIVE_SHANGHAI_TIMESTAMP\": 0,\n        \"HIVE_CANCUN_TIMESTAMP\": 0,\n        \"HIVE_PRAGUE_TIMESTAMP\": 0,\n        **get_blob_schedule_entries(Prague),\n    },\n    CancunToPragueAtTime15k: {\n        \"HIVE_FORK_HOMESTEAD\": 0,\n        \"HIVE_FORK_TANGERINE\": 0,\n        \"HIVE_FORK_SPURIOUS\": 0,\n        \"HIVE_FORK_BYZANTIUM\": 0,\n        \"HIVE_FORK_CONSTANTINOPLE\": 0,\n        \"HIVE_FORK_PETERSBURG\": 0,\n        \"HIVE_FORK_ISTANBUL\": 0,\n        \"HIVE_FORK_BERLIN\": 0,\n        \"HIVE_FORK_LONDON\": 0,\n        \"HIVE_FORK_MERGE\": 0,\n        \"HIVE_TERMINAL_TOTAL_DIFFICULTY\": 0,\n        \"HIVE_SHANGHAI_TIMESTAMP\": 0,\n        \"HIVE_CANCUN_TIMESTAMP\": 0,\n        \"HIVE_PRAGUE_TIMESTAMP\": 15000,\n        **get_blob_schedule_entries(Prague),\n    },\n    Osaka: {\n        \"HIVE_FORK_HOMESTEAD\": 0,\n        \"HIVE_FORK_TANGERINE\": 0,\n        \"HIVE_FORK_SPURIOUS\": 0,\n        \"HIVE_FORK_BYZANTIUM\": 0,\n        \"HIVE_FORK_CONSTANTINOPLE\": 0,\n        \"HIVE_FORK_PETERSBURG\": 0,\n        \"HIVE_FORK_ISTANBUL\": 0,\n        \"HIVE_FORK_BERLIN\": 0,\n        \"HIVE_FORK_LONDON\": 0,\n        \"HIVE_FORK_MERGE\": 0,\n        \"HIVE_TERMINAL_TOTAL_DIFFICULTY\": 0,\n        \"HIVE_SHANGHAI_TIMESTAMP\": 0,\n        \"HIVE_CANCUN_TIMESTAMP\": 0,\n        \"HIVE_PRAGUE_TIMESTAMP\": 0,\n        \"HIVE_OSAKA_TIMESTAMP\": 0,\n        **get_blob_schedule_entries(Osaka),\n    },\n    PragueToOsakaAtTime15k: {\n        \"HIVE_FORK_HOMESTEAD\": 0,\n        \"HIVE_FORK_TANGERINE\": 0,\n        \"HIVE_FORK_SPURIOUS\": 0,\n        \"HIVE_FORK_BYZANTIUM\": 0,\n        \"HIVE_FORK_CONSTANTINOPLE\": 0,\n        \"HIVE_FORK_PETERSBURG\": 0,\n        \"HIVE_FORK_ISTANBUL\": 0,\n        \"HIVE_FORK_BERLIN\": 0,\n        \"HIVE_FORK_LONDON\": 0,\n        \"HIVE_FORK_MERGE\": 0,\n        \"HIVE_TERMINAL_TOTAL_DIFFICULTY\": 0,\n        \"HIVE_SHANGHAI_TIMESTAMP\": 0,\n        \"HIVE_CANCUN_TIMESTAMP\": 0,\n        \"HIVE_PRAGUE_TIMESTAMP\": 0,\n        \"HIVE_OSAKA_TIMESTAMP\": 15000,\n        **get_blob_schedule_entries(Osaka),\n    },\n    BPO1: {\n        \"HIVE_FORK_HOMESTEAD\": 0,\n        \"HIVE_FORK_TANGERINE\": 0,\n        \"HIVE_FORK_SPURIOUS\": 0,\n        \"HIVE_FORK_BYZANTIUM\": 0,\n        \"HIVE_FORK_CONSTANTINOPLE\": 0,\n        \"HIVE_FORK_PETERSBURG\": 0,\n        \"HIVE_FORK_ISTANBUL\": 0,\n        \"HIVE_FORK_BERLIN\": 0,\n        \"HIVE_FORK_LONDON\": 0,\n        \"HIVE_FORK_MERGE\": 0,\n        \"HIVE_TERMINAL_TOTAL_DIFFICULTY\": 0,\n        \"HIVE_SHANGHAI_TIMESTAMP\": 0,\n        \"HIVE_CANCUN_TIMESTAMP\": 0,\n        \"HIVE_PRAGUE_TIMESTAMP\": 0,\n        \"HIVE_OSAKA_TIMESTAMP\": 0,\n        \"HIVE_BPO1_TIMESTAMP\": 0,\n        **get_blob_schedule_entries(BPO1),\n    },\n    OsakaToBPO1AtTime15k: {\n        \"HIVE_FORK_HOMESTEAD\": 0,\n        \"HIVE_FORK_TANGERINE\": 0,\n        \"HIVE_FORK_SPURIOUS\": 0,\n        \"HIVE_FORK_BYZANTIUM\": 0,\n        \"HIVE_FORK_CONSTANTINOPLE\": 0,\n        \"HIVE_FORK_PETERSBURG\": 0,\n        \"HIVE_FORK_ISTANBUL\": 0,\n        \"HIVE_FORK_BERLIN\": 0,\n        \"HIVE_FORK_LONDON\": 0,\n        \"HIVE_FORK_MERGE\": 0,\n        \"HIVE_TERMINAL_TOTAL_DIFFICULTY\": 0,\n        \"HIVE_SHANGHAI_TIMESTAMP\": 0,\n        \"HIVE_CANCUN_TIMESTAMP\": 0,\n        \"HIVE_PRAGUE_TIMESTAMP\": 0,\n        \"HIVE_OSAKA_TIMESTAMP\": 0,\n        \"HIVE_BPO1_TIMESTAMP\": 15000,\n        **get_blob_schedule_entries(BPO1),\n    },\n    BPO2: {\n        \"HIVE_FORK_HOMESTEAD\": 0,\n        \"HIVE_FORK_TANGERINE\": 0,\n        \"HIVE_FORK_SPURIOUS\": 0,\n        \"HIVE_FORK_BYZANTIUM\": 0,\n        \"HIVE_FORK_CONSTANTINOPLE\": 0,\n        \"HIVE_FORK_PETERSBURG\": 0,\n        \"HIVE_FORK_ISTANBUL\": 0,\n        \"HIVE_FORK_BERLIN\": 0,\n        \"HIVE_FORK_LONDON\": 0,\n        \"HIVE_FORK_MERGE\": 0,\n        \"HIVE_TERMINAL_TOTAL_DIFFICULTY\": 0,\n        \"HIVE_SHANGHAI_TIMESTAMP\": 0,\n        \"HIVE_CANCUN_TIMESTAMP\": 0,\n        \"HIVE_PRAGUE_TIMESTAMP\": 0,\n        \"HIVE_OSAKA_TIMESTAMP\": 0,\n        \"HIVE_BPO1_TIMESTAMP\": 0,\n        \"HIVE_BPO2_TIMESTAMP\": 0,\n        **get_blob_schedule_entries(BPO2),\n    },\n    BPO1ToBPO2AtTime15k: {\n        \"HIVE_FORK_HOMESTEAD\": 0,\n        \"HIVE_FORK_TANGERINE\": 0,\n        \"HIVE_FORK_SPURIOUS\": 0,\n        \"HIVE_FORK_BYZANTIUM\": 0,\n        \"HIVE_FORK_CONSTANTINOPLE\": 0,\n        \"HIVE_FORK_PETERSBURG\": 0,\n        \"HIVE_FORK_ISTANBUL\": 0,\n        \"HIVE_FORK_BERLIN\": 0,\n        \"HIVE_FORK_LONDON\": 0,\n        \"HIVE_FORK_MERGE\": 0,\n        \"HIVE_TERMINAL_TOTAL_DIFFICULTY\": 0,\n        \"HIVE_SHANGHAI_TIMESTAMP\": 0,\n        \"HIVE_CANCUN_TIMESTAMP\": 0,\n        \"HIVE_PRAGUE_TIMESTAMP\": 0,\n        \"HIVE_OSAKA_TIMESTAMP\": 0,\n        \"HIVE_BPO1_TIMESTAMP\": 0,\n        \"HIVE_BPO2_TIMESTAMP\": 15000,\n        **get_blob_schedule_entries(BPO2),\n    },\n    BPO3: {\n        \"HIVE_FORK_HOMESTEAD\": 0,\n        \"HIVE_FORK_TANGERINE\": 0,\n        \"HIVE_FORK_SPURIOUS\": 0,\n        \"HIVE_FORK_BYZANTIUM\": 0,\n        \"HIVE_FORK_CONSTANTINOPLE\": 0,\n        \"HIVE_FORK_PETERSBURG\": 0,\n        \"HIVE_FORK_ISTANBUL\": 0,\n        \"HIVE_FORK_BERLIN\": 0,\n        \"HIVE_FORK_LONDON\": 0,\n        \"HIVE_FORK_MERGE\": 0,\n        \"HIVE_TERMINAL_TOTAL_DIFFICULTY\": 0,\n        \"HIVE_SHANGHAI_TIMESTAMP\": 0,\n        \"HIVE_CANCUN_TIMESTAMP\": 0,\n        \"HIVE_PRAGUE_TIMESTAMP\": 0,\n        \"HIVE_OSAKA_TIMESTAMP\": 0,\n        \"HIVE_BPO1_TIMESTAMP\": 0,\n        \"HIVE_BPO2_TIMESTAMP\": 0,\n        \"HIVE_BPO3_TIMESTAMP\": 0,\n        **get_blob_schedule_entries(BPO3),\n    },\n    BPO2ToBPO3AtTime15k: {\n        \"HIVE_FORK_HOMESTEAD\": 0,\n        \"HIVE_FORK_TANGERINE\": 0,\n        \"HIVE_FORK_SPURIOUS\": 0,\n        \"HIVE_FORK_BYZANTIUM\": 0,\n        \"HIVE_FORK_CONSTANTINOPLE\": 0,\n        \"HIVE_FORK_PETERSBURG\": 0,\n        \"HIVE_FORK_ISTANBUL\": 0,\n        \"HIVE_FORK_BERLIN\": 0,\n        \"HIVE_FORK_LONDON\": 0,\n        \"HIVE_FORK_MERGE\": 0,\n        \"HIVE_TERMINAL_TOTAL_DIFFICULTY\": 0,\n        \"HIVE_SHANGHAI_TIMESTAMP\": 0,\n        \"HIVE_CANCUN_TIMESTAMP\": 0,\n        \"HIVE_PRAGUE_TIMESTAMP\": 0,\n        \"HIVE_OSAKA_TIMESTAMP\": 0,\n        \"HIVE_BPO1_TIMESTAMP\": 0,\n        \"HIVE_BPO2_TIMESTAMP\": 0,\n        \"HIVE_BPO3_TIMESTAMP\": 15000,\n        **get_blob_schedule_entries(BPO3),\n    },\n    BPO4: {\n        \"HIVE_FORK_HOMESTEAD\": 0,\n        \"HIVE_FORK_TANGERINE\": 0,\n        \"HIVE_FORK_SPURIOUS\": 0,\n        \"HIVE_FORK_BYZANTIUM\": 0,\n        \"HIVE_FORK_CONSTANTINOPLE\": 0,\n        \"HIVE_FORK_PETERSBURG\": 0,\n        \"HIVE_FORK_ISTANBUL\": 0,\n        \"HIVE_FORK_BERLIN\": 0,\n        \"HIVE_FORK_LONDON\": 0,\n        \"HIVE_FORK_MERGE\": 0,\n        \"HIVE_TERMINAL_TOTAL_DIFFICULTY\": 0,\n        \"HIVE_SHANGHAI_TIMESTAMP\": 0,\n        \"HIVE_CANCUN_TIMESTAMP\": 0,\n        \"HIVE_PRAGUE_TIMESTAMP\": 0,\n        \"HIVE_OSAKA_TIMESTAMP\": 0,\n        \"HIVE_BPO1_TIMESTAMP\": 0,\n        \"HIVE_BPO2_TIMESTAMP\": 0,\n        \"HIVE_BPO3_TIMESTAMP\": 0,\n        \"HIVE_BPO4_TIMESTAMP\": 0,\n        **get_blob_schedule_entries(BPO4),\n    },\n    BPO3ToBPO4AtTime15k: {\n        \"HIVE_FORK_HOMESTEAD\": 0,\n        \"HIVE_FORK_TANGERINE\": 0,\n        \"HIVE_FORK_SPURIOUS\": 0,\n        \"HIVE_FORK_BYZANTIUM\": 0,\n        \"HIVE_FORK_CONSTANTINOPLE\": 0,\n        \"HIVE_FORK_PETERSBURG\": 0,\n        \"HIVE_FORK_ISTANBUL\": 0,\n        \"HIVE_FORK_BERLIN\": 0,\n        \"HIVE_FORK_LONDON\": 0,\n        \"HIVE_FORK_MERGE\": 0,\n        \"HIVE_TERMINAL_TOTAL_DIFFICULTY\": 0,\n        \"HIVE_SHANGHAI_TIMESTAMP\": 0,\n        \"HIVE_CANCUN_TIMESTAMP\": 0,\n        \"HIVE_PRAGUE_TIMESTAMP\": 0,\n        \"HIVE_OSAKA_TIMESTAMP\": 0,\n        \"HIVE_BPO1_TIMESTAMP\": 0,\n        \"HIVE_BPO2_TIMESTAMP\": 0,\n        \"HIVE_BPO3_TIMESTAMP\": 0,\n        \"HIVE_BPO4_TIMESTAMP\": 15000,\n        **get_blob_schedule_entries(BPO4),\n    },\n    Amsterdam: {\n        \"HIVE_FORK_HOMESTEAD\": 0,\n        \"HIVE_FORK_TANGERINE\": 0,\n        \"HIVE_FORK_SPURIOUS\": 0,\n        \"HIVE_FORK_BYZANTIUM\": 0,\n        \"HIVE_FORK_CONSTANTINOPLE\": 0,\n        \"HIVE_FORK_PETERSBURG\": 0,\n        \"HIVE_FORK_ISTANBUL\": 0,\n        \"HIVE_FORK_BERLIN\": 0,\n        \"HIVE_FORK_LONDON\": 0,\n        \"HIVE_FORK_MERGE\": 0,\n        \"HIVE_TERMINAL_TOTAL_DIFFICULTY\": 0,\n        \"HIVE_SHANGHAI_TIMESTAMP\": 0,\n        \"HIVE_CANCUN_TIMESTAMP\": 0,\n        \"HIVE_PRAGUE_TIMESTAMP\": 0,\n        \"HIVE_OSAKA_TIMESTAMP\": 0,\n        \"HIVE_BPO1_TIMESTAMP\": 0,\n        \"HIVE_BPO2_TIMESTAMP\": 0,\n        \"HIVE_BPO3_TIMESTAMP\": 0,\n        \"HIVE_BPO4_TIMESTAMP\": 0,\n        \"HIVE_AMSTERDAM_TIMESTAMP\": 0,\n        **get_blob_schedule_entries(Amsterdam),\n    },\n}\n"
  },
  {
    "path": "src/pytest_plugins/consume/simulators/helpers/timing.py",
    "content": "\"\"\"Test timing class used to time tests.\"\"\"\n\nimport time\nfrom typing import Any, List, Self\n\n\nclass TimingData:\n    \"\"\"\n    The times taken to perform the various steps of a test case (seconds).\n    \"\"\"\n\n    name: str\n    start_time: float | None\n    end_time: float | None\n    parent: \"TimingData | None\"\n    timings: \"List[TimingData]\"\n\n    def __init__(self, name: str, parent: \"TimingData | None\" = None):\n        \"\"\"Initialize the timing data.\"\"\"\n        self.name = name\n        self.start_time = None\n        self.end_time = None\n        self.parent = parent\n        self.timings = []\n\n    @staticmethod\n    def format_float(num: float | None, precision: int = 4) -> str | None:\n        \"\"\"Format a float to a specific precision in significant figures.\"\"\"\n        if num is None:\n            return None\n        return f\"{num:.{precision}f}\"\n\n    def __enter__(self) -> Self:\n        \"\"\"Start timing the test case.\"\"\"\n        self.start_time = time.perf_counter()\n        return self\n\n    def __exit__(self, exc_type: Any, exc_value: Any, traceback: Any) -> None:\n        \"\"\"Record the time taken since the last time recorded.\"\"\"\n        self.end_time = time.perf_counter()\n\n    def time(self, sub_name: str) -> \"TimingData\":\n        \"\"\"Record the time taken in an execution section.\"\"\"\n        new_timing = TimingData(sub_name, self)\n        self.timings.append(new_timing)\n        return new_timing\n\n    def formatted(self, precision: int = 4, indent: int = 0) -> str:\n        \"\"\"Recursively format the timing data with correct indentation.\"\"\"\n        assert self.start_time is not None\n        assert self.end_time is not None\n        formatted = (\n            f\"{' ' * indent}{self.name}: \"\n            f\"{TimingData.format_float(self.end_time - self.start_time, precision)}\\n\"\n        )\n        for timing in self.timings:\n            formatted += timing.formatted(precision, indent + 2)\n        return formatted\n"
  },
  {
    "path": "src/pytest_plugins/consume/simulators/rlp/__init__.py",
    "content": "\"\"\"Consume RLP test functions.\"\"\"\n"
  },
  {
    "path": "src/pytest_plugins/consume/simulators/rlp/conftest.py",
    "content": "\"\"\"Pytest fixtures and classes for the `consume rlp` hive simulator.\"\"\"\n\nimport io\nfrom typing import List, Mapping, cast\n\nimport pytest\n\nfrom ethereum_test_base_types import Bytes\nfrom ethereum_test_fixtures import BlockchainFixture\nfrom ethereum_test_fixtures.consume import TestCaseIndexFile, TestCaseStream\n\nTestCase = TestCaseIndexFile | TestCaseStream\n\npytest_plugins = (\n    \"pytest_plugins.pytest_hive.pytest_hive\",\n    \"pytest_plugins.consume.simulators.base\",\n    \"pytest_plugins.consume.simulators.single_test_client\",\n    \"pytest_plugins.consume.simulators.test_case_description\",\n    \"pytest_plugins.consume.simulators.timing_data\",\n    \"pytest_plugins.consume.simulators.exceptions\",\n)\n\n\ndef pytest_configure(config: pytest.Config) -> None:\n    \"\"\"Set the supported fixture formats for the rlp simulator.\"\"\"\n    config.supported_fixture_formats = [BlockchainFixture]  # type: ignore[attr-defined]\n\n\n@pytest.fixture(scope=\"module\")\ndef test_suite_name() -> str:\n    \"\"\"The name of the hive test suite used in this simulator.\"\"\"\n    return \"eest/consume-rlp\"\n\n\n@pytest.fixture(scope=\"module\")\ndef test_suite_description() -> str:\n    \"\"\"The description of the hive test suite used in this simulator.\"\"\"\n    return \"Execute blockchain tests by providing RLP-encoded blocks to a client upon start-up.\"\n\n\n@pytest.fixture(scope=\"function\")\ndef blocks_rlp(fixture: BlockchainFixture) -> List[Bytes]:\n    \"\"\"List of the fixture's blocks encoded as RLP.\"\"\"\n    return [block.rlp for block in fixture.blocks]\n\n\n@pytest.fixture(scope=\"function\")\ndef buffered_blocks_rlp(blocks_rlp: List[bytes]) -> list[io.BufferedReader]:\n    \"\"\"\n    Convert the RLP-encoded blocks of the current test fixture to buffered\n    readers.\n    \"\"\"\n    block_rlp_files: list[io.BufferedReader] = []\n    for _, block_rlp in enumerate(blocks_rlp):\n        block_rlp_stream = io.BytesIO(block_rlp)\n        block_rlp_files.append(io.BufferedReader(cast(io.RawIOBase, block_rlp_stream)))\n    return block_rlp_files\n\n\n@pytest.fixture(scope=\"function\")\ndef client_files(\n    buffered_genesis: io.BufferedReader,\n    buffered_blocks_rlp: list[io.BufferedReader],\n) -> Mapping[str, io.BufferedReader]:\n    \"\"\"\n    Define the files that hive will start the client with.\n\n    The files are specified as a dictionary whose:\n    - Keys are the target file paths in the client's docker container, and,\n    - Values are in-memory buffered file objects.\n    \"\"\"\n    files = {f\"/blocks/{i + 1:04d}.rlp\": rlp for i, rlp in enumerate(buffered_blocks_rlp)}\n    files[\"/genesis.json\"] = buffered_genesis\n    return files\n"
  },
  {
    "path": "src/pytest_plugins/consume/simulators/simulator_logic/__init__.py",
    "content": "\"\"\"Defines the Pytest test functions used by Hive Consume Simulators.\"\"\"\n"
  },
  {
    "path": "src/pytest_plugins/consume/simulators/simulator_logic/test_via_engine.py",
    "content": "\"\"\"\nA hive based simulator that executes blocks against clients using the\n`engine_newPayloadVX` method from the Engine API. The simulator uses the\n`BlockchainEngineFixtures` to test against clients.\n\nEach `engine_newPayloadVX` is verified against the appropriate VALID/INVALID\nresponses.\n\"\"\"\n\nimport time\n\nfrom ethereum_test_exceptions import UndefinedException\nfrom ethereum_test_fixtures import BlockchainEngineFixture\nfrom ethereum_test_rpc import EngineRPC, EthRPC\nfrom ethereum_test_rpc.rpc_types import ForkchoiceState, JSONRPCError, PayloadStatusEnum\n\nfrom ....custom_logging import get_logger\nfrom ..helpers.exceptions import GenesisBlockMismatchExceptionError\nfrom ..helpers.timing import TimingData\n\nlogger = get_logger(__name__)\n\nMAX_RETRIES = 30\nDELAY_BETWEEN_RETRIES_IN_SEC = 1\n\n\nclass LoggedError(Exception):\n    \"\"\"Exception that uses the logger to log the failure.\"\"\"\n\n    def __init__(self, *args: object) -> None:\n        \"\"\"Initialize the exception and log the failure.\"\"\"\n        super().__init__(*args)\n        logger.fail(str(self))\n\n\ndef test_blockchain_via_engine(\n    timing_data: TimingData,\n    eth_rpc: EthRPC,\n    engine_rpc: EngineRPC,\n    fixture: BlockchainEngineFixture,\n    strict_exception_matching: bool,\n) -> None:\n    \"\"\"\n    1. Check the client genesis block hash matches\n       `fixture.genesis.block_hash`.\n    2. Execute the test case fixture blocks against the client under test using\n       the `engine_newPayloadVX` method from the Engine API.\n    3. For valid payloads a forkchoice update is performed to finalize the\n       chain.\n    \"\"\"\n    # Send a initial forkchoice update\n    with timing_data.time(\"Initial forkchoice update\"):\n        logger.info(\"Sending initial forkchoice update to genesis block...\")\n        for attempt in range(1, MAX_RETRIES + 1):\n            forkchoice_response = engine_rpc.forkchoice_updated(\n                forkchoice_state=ForkchoiceState(\n                    head_block_hash=fixture.genesis.block_hash,\n                ),\n                payload_attributes=None,\n                version=fixture.payloads[0].forkchoice_updated_version,\n            )\n            status = forkchoice_response.payload_status.status\n            logger.info(f\"Initial forkchoice update response attempt {attempt}: {status}\")\n            if status != PayloadStatusEnum.SYNCING:\n                break\n\n            if attempt < MAX_RETRIES:\n                time.sleep(DELAY_BETWEEN_RETRIES_IN_SEC)\n\n        if forkchoice_response.payload_status.status != PayloadStatusEnum.VALID:\n            logger.error(\n                f\"Client failed to initialize properly after {MAX_RETRIES} attempts, \"\n                f\"final status: {forkchoice_response.payload_status.status}\"\n            )\n            raise LoggedError(\n                f\"unexpected status on forkchoice updated to genesis: {forkchoice_response}\"\n            )\n\n    with timing_data.time(\"Get genesis block\"):\n        logger.info(\"Calling getBlockByNumber to get genesis block...\")\n        genesis_block = eth_rpc.get_block_by_number(0)\n        assert genesis_block is not None, \"genesis_block is None\"\n        if genesis_block[\"hash\"] != str(fixture.genesis.block_hash):\n            expected = fixture.genesis.block_hash\n            got = genesis_block[\"hash\"]\n            logger.fail(f\"Genesis block hash mismatch. Expected: {expected}, Got: {got}\")\n            raise GenesisBlockMismatchExceptionError(\n                expected_header=fixture.genesis,\n                got_genesis_block=genesis_block,\n            )\n\n    with timing_data.time(\"Payloads execution\") as total_payload_timing:\n        logger.info(f\"Starting execution of {len(fixture.payloads)} payloads...\")\n        for i, payload in enumerate(fixture.payloads):\n            logger.info(f\"Processing payload {i + 1}/{len(fixture.payloads)}...\")\n            with total_payload_timing.time(f\"Payload {i + 1}\") as payload_timing:\n                with payload_timing.time(f\"engine_newPayloadV{payload.new_payload_version}\"):\n                    logger.info(f\"Sending engine_newPayloadV{payload.new_payload_version}...\")\n                    try:\n                        payload_response = engine_rpc.new_payload(\n                            *payload.params,\n                            version=payload.new_payload_version,\n                        )\n                        logger.info(f\"Payload response status: {payload_response.status}\")\n                        expected_validity = (\n                            PayloadStatusEnum.VALID\n                            if payload.valid()\n                            else PayloadStatusEnum.INVALID\n                        )\n                        if payload_response.status != expected_validity:\n                            raise LoggedError(\n                                f\"unexpected status: want {expected_validity},\"\n                                f\" got {payload_response.status}\"\n                            )\n                        if payload.error_code is not None:\n                            raise LoggedError(\n                                f\"Client failed to raise expected Engine API error code: \"\n                                f\"{payload.error_code}\"\n                            )\n                        elif payload_response.status == PayloadStatusEnum.INVALID:\n                            if payload_response.validation_error is None:\n                                raise LoggedError(\n                                    \"Client returned INVALID but no validation error was provided.\"\n                                )\n                            if isinstance(payload_response.validation_error, UndefinedException):\n                                message = (\n                                    \"Undefined exception message: \"\n                                    f'expected exception: \"{payload.validation_error}\", '\n                                    f'returned exception: \"{payload_response.validation_error}\" '\n                                    f'(mapper: \"{payload_response.validation_error.mapper_name}\")'\n                                )\n                                if strict_exception_matching:\n                                    raise LoggedError(message)\n                                else:\n                                    logger.warning(message)\n                            else:\n                                if (\n                                    payload.validation_error\n                                    not in payload_response.validation_error\n                                ):\n                                    message = (\n                                        \"Client returned unexpected validation error: \"\n                                        f'got: \"{payload_response.validation_error}\" '\n                                        f'expected: \"{payload.validation_error}\"'\n                                    )\n                                    if strict_exception_matching:\n                                        raise LoggedError(message)\n                                    else:\n                                        logger.warning(message)\n\n                    except JSONRPCError as e:\n                        logger.info(f\"JSONRPC error encountered: {e.code} - {e.message}\")\n                        if payload.error_code is None:\n                            raise LoggedError(f\"Unexpected error: {e.code} - {e.message}\") from e\n                        if e.code != payload.error_code:\n                            raise LoggedError(\n                                f\"Unexpected error code: {e.code}, expected: {payload.error_code}\"\n                            ) from e\n\n                if payload.valid():\n                    with payload_timing.time(\n                        f\"engine_forkchoiceUpdatedV{payload.forkchoice_updated_version}\"\n                    ):\n                        # Send a forkchoice update to the engine\n                        version = payload.forkchoice_updated_version\n                        logger.info(f\"Sending engine_forkchoiceUpdatedV{version}...\")\n                        forkchoice_response = engine_rpc.forkchoice_updated(\n                            forkchoice_state=ForkchoiceState(\n                                head_block_hash=payload.params[0].block_hash,\n                            ),\n                            payload_attributes=None,\n                            version=payload.forkchoice_updated_version,\n                        )\n                        status = forkchoice_response.payload_status.status\n                        logger.info(f\"Forkchoice update response: {status}\")\n                        if forkchoice_response.payload_status.status != PayloadStatusEnum.VALID:\n                            raise LoggedError(\n                                f\"unexpected status: want {PayloadStatusEnum.VALID},\"\n                                f\" got {forkchoice_response.payload_status.status}\"\n                            )\n        logger.info(\"All payloads processed successfully.\")\n"
  },
  {
    "path": "src/pytest_plugins/consume/simulators/simulator_logic/test_via_rlp.py",
    "content": "\"\"\"\nA hive based simulator that executes RLP-encoded blocks against clients. The\nsimulator uses the `BlockchainFixtures` to test this against clients.\n\nClients consume the genesis and RLP-encoded blocks from input files upon\nstart-up.\n\"\"\"\n\nimport logging\n\nfrom ethereum_test_fixtures import BlockchainFixture\nfrom ethereum_test_fixtures.blockchain import FixtureBlock, FixtureHeader\nfrom ethereum_test_rpc import EthRPC\n\nfrom ..helpers.exceptions import GenesisBlockMismatchExceptionError\nfrom ..helpers.timing import TimingData\n\nlogger = logging.getLogger(__name__)\n\n\ndef test_via_rlp(\n    timing_data: TimingData,\n    eth_rpc: EthRPC,\n    fixture: BlockchainFixture,\n) -> None:\n    \"\"\"\n    1. Check the client genesis block hash matches\n       `fixture.genesis.block_hash`.\n    2. Check the client last block hash matches `fixture.last_block_hash`.\n    \"\"\"\n    with timing_data.time(\"Get genesis block\"):\n        logger.info(\"Calling getBlockByNumber to get genesis block...\")\n        genesis_block = eth_rpc.get_block_by_number(0)\n        assert genesis_block, \"`getBlockByNumber` didn't return a block.\"\n        if genesis_block[\"hash\"] != str(fixture.genesis.block_hash):\n            raise GenesisBlockMismatchExceptionError(\n                expected_header=fixture.genesis,\n                got_genesis_block=genesis_block,\n            )\n    with timing_data.time(\"Get latest block\"):\n        logger.info(\"Calling getBlockByNumber to get latest block...\")\n        block = eth_rpc.get_block_by_number(\"latest\")\n        assert block, \"`getBlockByNumber` didn't return a block.\"\n        if block[\"hash\"] != str(fixture.last_block_hash):\n            try:\n                block_header = FixtureHeader.model_validate(block).model_dump()\n                last_block = FixtureBlock.model_validate(fixture.blocks[-1])\n                last_block_header = last_block.header.model_dump()\n\n                if block_header[\"number\"] != last_block_header[\"number\"]:\n                    # raise with clearer message if block number mismatches\n                    raise AssertionError(\n                        f\"block number mismatch in last block: got \"\n                        f\"`{block_header['number']}`, \"\n                        f\"expected `{last_block_header['number']}``\"\n                    )\n\n                # find all mismatched fields\n                mismatches = []\n                for block_field, block_value in block_header.items():\n                    fixture_value = last_block_header[block_field]\n                    if str(block_value) != str(fixture_value):\n                        mismatches.append(\n                            f\"    {block_field}: got `{block_value}`, expected `{fixture_value}`\"\n                        )\n                raise AssertionError(\n                    \"blockHash mismatch in last block - field mismatches:\"\n                    \"\\n\" + \"\\n\".join(mismatches)\n                )\n            except Exception:\n                raise AssertionError(\n                    f\"blockHash mismatch in last block: got `{block['hash']}`, \"\n                    f\"expected `{fixture.last_block_hash}`\"\n                ) from None\n"
  },
  {
    "path": "src/pytest_plugins/consume/simulators/simulator_logic/test_via_sync.py",
    "content": "\"\"\"\nA hive based simulator that executes blocks against clients using the\n`engine_newPayloadV*` method from the Engine API with sync testing. The\nsimulator uses the `BlockchainEngineSyncFixtures` to test against clients with\nclient synchronization.\n\nThis simulator:\n1. Spins up two clients: one as the client under test and another as the sync\n   client\n2. Executes payloads on the client under test\n3. Has the sync client synchronize from the client under test\n4. Verifies that the sync was successful\n\"\"\"\n\nimport time\n\nimport pytest\n\nfrom ethereum_test_exceptions import UndefinedException\nfrom ethereum_test_fixtures import BlockchainEngineSyncFixture\nfrom ethereum_test_rpc import AdminRPC, EngineRPC, EthRPC, NetRPC\nfrom ethereum_test_rpc.rpc_types import (\n    ForkchoiceState,\n    JSONRPCError,\n    PayloadStatusEnum,\n)\n\nfrom ....custom_logging import get_logger\nfrom ..helpers.exceptions import GenesisBlockMismatchExceptionError\nfrom ..helpers.timing import TimingData\n\nlogger = get_logger(__name__)\n\n\nclass LoggedError(Exception):\n    \"\"\"Exception that uses the logger to log the failure.\"\"\"\n\n    def __init__(self, *args: object) -> None:\n        \"\"\"Initialize the exception and log the failure.\"\"\"\n        super().__init__(*args)\n        logger.fail(str(self))\n\n\ndef test_blockchain_via_sync(\n    timing_data: TimingData,\n    eth_rpc: EthRPC,\n    engine_rpc: EngineRPC,\n    net_rpc: NetRPC,\n    sync_eth_rpc: EthRPC,\n    sync_engine_rpc: EngineRPC,\n    sync_net_rpc: NetRPC,\n    sync_admin_rpc: AdminRPC,\n    client_enode_url: str,\n    fixture: BlockchainEngineSyncFixture,\n    strict_exception_matching: bool,\n) -> None:\n    \"\"\"\n    Test blockchain synchronization between two clients.\n\n    1. Initialize the client under test with the genesis block\n    2. Execute all payloads on the client under test\n    3. Initialize the sync client with the genesis block\n    4. Send sync payload and forkchoice_updated to the sync client to trigger\n       synchronization\n    5. Verify that the sync client successfully syncs to the same state\n    \"\"\"\n    # Initialize client under test\n    with timing_data.time(\"Initialize client under test\"):\n        logger.info(\"Initializing client under test with genesis block...\")\n\n        # Send initial forkchoice update to client under test\n        delay = 0.5\n        for attempt in range(3):\n            forkchoice_response = engine_rpc.forkchoice_updated(\n                forkchoice_state=ForkchoiceState(\n                    head_block_hash=fixture.genesis.block_hash,\n                ),\n                payload_attributes=None,\n                version=fixture.payloads[0].forkchoice_updated_version,\n            )\n            status = forkchoice_response.payload_status.status\n            logger.info(f\"Initial forkchoice update response attempt {attempt + 1}: {status}\")\n            if status != PayloadStatusEnum.SYNCING:\n                break\n            if attempt < 2:\n                time.sleep(delay)\n                delay *= 2\n\n        if forkchoice_response.payload_status.status != PayloadStatusEnum.VALID:\n            logger.error(\n                f\"Client under test failed to initialize properly after 3 attempts, \"\n                f\"final status: {forkchoice_response.payload_status.status}\"\n            )\n            raise LoggedError(\n                f\"unexpected status on forkchoice updated to genesis: {forkchoice_response}\"\n            )\n\n    # Verify genesis block on client under test\n    with timing_data.time(\"Verify genesis on client under test\"):\n        logger.info(\"Verifying genesis block on client under test...\")\n        genesis_block = eth_rpc.get_block_by_number(0)\n        assert genesis_block is not None, \"genesis_block is None\"\n        if genesis_block[\"hash\"] != str(fixture.genesis.block_hash):\n            expected = fixture.genesis.block_hash\n            got = genesis_block[\"hash\"]\n            logger.fail(f\"Genesis block hash mismatch. Expected: {expected}, Got: {got}\")\n            raise GenesisBlockMismatchExceptionError(\n                expected_header=fixture.genesis,\n                got_genesis_block=genesis_block,\n            )\n\n    # Execute all payloads on client under test\n    last_valid_block_hash = fixture.genesis.block_hash\n    with timing_data.time(\"Execute payloads on client under test\") as total_payload_timing:\n        logger.info(f\"Starting execution of {len(fixture.payloads)} payloads...\")\n        for i, payload in enumerate(fixture.payloads):\n            logger.info(f\"Processing payload {i + 1}/{len(fixture.payloads)}...\")\n            with total_payload_timing.time(f\"Payload {i + 1}\") as payload_timing:\n                with payload_timing.time(f\"engine_newPayloadV{payload.new_payload_version}\"):\n                    logger.info(f\"Sending engine_newPayloadV{payload.new_payload_version}...\")\n                    # Note: This is similar to the logic in test_via_engine.py\n                    try:\n                        payload_response = engine_rpc.new_payload(\n                            *payload.params,\n                            version=payload.new_payload_version,\n                        )\n                        logger.info(f\"Payload response status: {payload_response.status}\")\n                        expected_validity = (\n                            PayloadStatusEnum.VALID\n                            if payload.valid()\n                            else PayloadStatusEnum.INVALID\n                        )\n                        if payload_response.status != expected_validity:\n                            raise LoggedError(\n                                f\"unexpected status: want {expected_validity},\"\n                                f\" got {payload_response.status}\"\n                            )\n                        if payload.error_code is not None:\n                            raise LoggedError(\n                                f\"Client failed to raise expected Engine API error code: \"\n                                f\"{payload.error_code}\"\n                            )\n                        elif payload_response.status == PayloadStatusEnum.INVALID:\n                            if payload_response.validation_error is None:\n                                raise LoggedError(\n                                    \"Client returned INVALID but no validation error was provided.\"\n                                )\n                            if isinstance(payload_response.validation_error, UndefinedException):\n                                message = (\n                                    \"Undefined exception message: \"\n                                    f'expected exception: \"{payload.validation_error}\", '\n                                    f'returned exception: \"{payload_response.validation_error}\" '\n                                    f'(mapper: \"{payload_response.validation_error.mapper_name}\")'\n                                )\n                                if strict_exception_matching:\n                                    raise LoggedError(message)\n                                else:\n                                    logger.warning(message)\n                            else:\n                                if (\n                                    payload.validation_error\n                                    not in payload_response.validation_error\n                                ):\n                                    message = (\n                                        \"Client returned unexpected validation error: \"\n                                        f'got: \"{payload_response.validation_error}\" '\n                                        f'expected: \"{payload.validation_error}\"'\n                                    )\n                                    if strict_exception_matching:\n                                        raise LoggedError(message)\n                                    else:\n                                        logger.warning(message)\n\n                    except JSONRPCError as e:\n                        logger.info(f\"JSONRPC error encountered: {e.code} - {e.message}\")\n                        if payload.error_code is None:\n                            raise LoggedError(f\"Unexpected error: {e.code} - {e.message}\") from e\n                        if e.code != payload.error_code:\n                            raise LoggedError(\n                                f\"Unexpected error code: {e.code}, expected: {payload.error_code}\"\n                            ) from e\n\n                if payload.valid():\n                    with payload_timing.time(\n                        f\"engine_forkchoiceUpdatedV{payload.forkchoice_updated_version}\"\n                    ):\n                        # Send a forkchoice update to the engine\n                        version = payload.forkchoice_updated_version\n                        logger.info(f\"Sending engine_forkchoiceUpdatedV{version}...\")\n                        forkchoice_response = engine_rpc.forkchoice_updated(\n                            forkchoice_state=ForkchoiceState(\n                                head_block_hash=payload.params[0].block_hash,\n                            ),\n                            payload_attributes=None,\n                            version=payload.forkchoice_updated_version,\n                        )\n                        status = forkchoice_response.payload_status.status\n                        logger.info(f\"Forkchoice update response: {status}\")\n                        if forkchoice_response.payload_status.status != PayloadStatusEnum.VALID:\n                            raise LoggedError(\n                                f\"unexpected status: want {PayloadStatusEnum.VALID},\"\n                                f\" got {forkchoice_response.payload_status.status}\"\n                            )\n                        last_valid_block_hash = payload.params[0].block_hash\n\n        logger.info(\"All payloads processed successfully on client under test.\")\n\n    # sync_payload creates the final block that the sync client will sync to\n    if not fixture.sync_payload:\n        pytest.fail(\"Sync tests require a syncPayload that is not present in this test.\")\n\n    with timing_data.time(\"Send sync payload to client under test\"):\n        logger.info(\"Sending sync payload (empty block) to client under test...\")\n        try:\n            sync_response = engine_rpc.new_payload(\n                *fixture.sync_payload.params,\n                version=fixture.sync_payload.new_payload_version,\n            )\n            logger.info(f\"Client sync payload response status: {sync_response.status}\")\n\n            if sync_response.status == PayloadStatusEnum.VALID:\n                # Update forkchoice on client under test to include sync block\n                forkchoice_response = engine_rpc.forkchoice_updated(\n                    forkchoice_state=ForkchoiceState(\n                        head_block_hash=fixture.sync_payload.params[0].block_hash,\n                    ),\n                    payload_attributes=None,\n                    version=fixture.sync_payload.forkchoice_updated_version,\n                )\n                status = forkchoice_response.payload_status.status\n                logger.info(f\"Client forkchoice update to sync block: {status}\")\n                last_valid_block_hash = fixture.sync_payload.params[0].block_hash\n            else:\n                logger.error(f\"Sync payload was not valid: {sync_response.status}\")\n                raise LoggedError(f\"Sync payload validation failed: {sync_response.status}\")\n        except JSONRPCError as e:\n            logger.error(\n                f\"Error sending sync payload to client under test: {e.code} - {e.message}\"\n            )\n            raise\n\n    # Initialize sync client\n    with timing_data.time(\"Initialize sync client\"):\n        logger.info(\"Initializing sync client with genesis block...\")\n\n        # Send initial forkchoice update to sync client\n        delay = 0.5\n        for attempt in range(3):\n            forkchoice_response = sync_engine_rpc.forkchoice_updated(\n                forkchoice_state=ForkchoiceState(\n                    head_block_hash=fixture.genesis.block_hash,\n                ),\n                payload_attributes=None,\n                version=fixture.payloads[0].forkchoice_updated_version,\n            )\n            status = forkchoice_response.payload_status.status\n            logger.info(f\"Sync client forkchoice update response attempt {attempt + 1}: {status}\")\n            if status != PayloadStatusEnum.SYNCING:\n                break\n            if attempt < 2:\n                time.sleep(delay)\n                delay *= 2\n\n        if forkchoice_response.payload_status.status != PayloadStatusEnum.VALID:\n            logger.error(\n                f\"Sync client failed to initialize properly after 3 attempts, \"\n                f\"final status: {forkchoice_response.payload_status.status}\"\n            )\n            raise LoggedError(\n                f\"Unexpected status on sync client forkchoice updated to genesis: \"\n                f\"{forkchoice_response}\"\n            )\n\n    # Add peer using admin_addPeer This seems to be required... TODO: we can\n    # maybe improve flow here if not required\n    logger.info(f\"Adding peer: {client_enode_url}\")\n    assert sync_admin_rpc is not None, \"sync_admin_rpc is required\"\n    try:\n        add_result = sync_admin_rpc.add_peer(client_enode_url)\n        logger.info(f\"admin_addPeer result: {add_result}\")\n    except Exception as e:\n        raise LoggedError(f\"admin_addPeer failed: {e}\") from e\n\n    # quick sleep to allow for connection - TODO: is this necessary?\n    time.sleep(1)\n\n    try:\n        sync_peer_count = sync_net_rpc.peer_count()\n        client_peer_count = net_rpc.peer_count()\n        logger.info(\n            f\"Peer count: sync_client={sync_peer_count}, client_under_test={client_peer_count}\"\n        )\n\n        if sync_peer_count == 0 and client_peer_count == 0:\n            raise LoggedError(\"No P2P connection established between clients\")\n    except Exception as e:\n        logger.warning(f\"Could not verify peer connection: {e}\")\n\n    # Trigger sync by sending the target block via newPayload followed by\n    # forkchoice update\n    logger.info(f\"Triggering sync to block {last_valid_block_hash}\")\n\n    # Find the last valid payload to send to sync client\n    last_valid_payload = None\n    if fixture.sync_payload and last_valid_block_hash == fixture.sync_payload.params[0].block_hash:\n        last_valid_payload = fixture.sync_payload\n    else:\n        # Find the payload that matches last_valid_block_hash\n        for payload in fixture.payloads:\n            if payload.params[0].block_hash == last_valid_block_hash and payload.valid():\n                last_valid_payload = payload\n                break\n\n    if last_valid_payload:\n        last_valid_block_forkchoice_state = ForkchoiceState(\n            head_block_hash=last_valid_block_hash,\n            safe_block_hash=last_valid_block_hash,\n            finalized_block_hash=fixture.genesis.block_hash,\n        )\n\n        try:\n            # log version used for debugging\n            version = last_valid_payload.new_payload_version\n            logger.info(f\"Sending target payload via engine_newPayloadV{version}\")\n\n            # send the payload to sync client\n            assert sync_engine_rpc is not None, \"sync_engine_rpc is required\"\n            sync_payload_response = sync_engine_rpc.new_payload(\n                *last_valid_payload.params,\n                version=last_valid_payload.new_payload_version,\n            )\n            logger.info(f\"Sync client newPayload response: {sync_payload_response.status}\")\n\n            # send forkchoice update pointing to latest block\n            logger.info(\"Sending forkchoice update with last valid block to trigger sync...\")\n            sync_forkchoice_response = sync_engine_rpc.forkchoice_updated(\n                forkchoice_state=last_valid_block_forkchoice_state,\n                payload_attributes=None,\n                version=last_valid_payload.forkchoice_updated_version,\n            )\n            status = sync_forkchoice_response.payload_status.status\n            logger.info(f\"Sync trigger forkchoice response: {status}\")\n\n            if sync_forkchoice_response.payload_status.status == PayloadStatusEnum.SYNCING:\n                logger.info(\"Sync client is now syncing!\")\n            elif sync_forkchoice_response.payload_status.status == PayloadStatusEnum.ACCEPTED:\n                logger.info(\"Sync client accepted the block, may start syncing ancestors\")\n\n            # Give a moment for P2P connections to establish after sync starts\n            time.sleep(1)\n\n            # Check peer count after triggering sync Note: Reth does not\n            # actually raise the peer count but doesn't seem to need this to\n            # sync.\n            try:\n                assert sync_net_rpc is not None, \"sync_net_rpc is required\"\n                client_peer_count = net_rpc.peer_count()\n                sync_peer_count = sync_net_rpc.peer_count()\n                if sync_peer_count > 0 or client_peer_count > 0:\n                    logger.debug(\n                        f\"Peers connected: client_under_test={client_peer_count}, \"\n                        f\"sync_client={sync_peer_count}\"\n                    )\n            except Exception as e:\n                logger.debug(f\"Could not check peer count: {e}\")\n\n        except Exception as e:\n            logger.warning(f\"Failed to trigger sync with newPayload/forkchoice update: {e}\")\n    else:\n        logger.warning(\n            f\"Could not find payload for block {last_valid_block_hash} to send to sync client\"\n        )\n\n    # Wait for synchronization with continuous forkchoice updates\n    with timing_data.time(\"Wait for synchronization\"):\n        # Get the target block number for logging\n        target_block = eth_rpc.get_block_by_hash(last_valid_block_hash)\n        target_block_number = int(target_block[\"number\"], 16) if target_block else \"unknown\"\n        logger.info(\n            f\"Waiting for sync client to reach block #{target_block_number} \"\n            f\"(hash: {last_valid_block_hash})\"\n        )\n\n        # Start monitoring sync progress\n        sync_start_time = time.time()\n        last_forkchoice_time = time.time()\n        forkchoice_interval = 2.0  # Send forkchoice updates every 2 seconds\n\n        while time.time() - sync_start_time < 15:  # 15 second timeout\n            # Send periodic forkchoice updates to keep sync alive\n            if time.time() - last_forkchoice_time >= forkchoice_interval:\n                try:\n                    # Send forkchoice update to sync client to trigger/maintain\n                    # sync\n                    assert sync_engine_rpc is not None, \"sync_engine_rpc is required\"\n                    sync_fc_response = sync_engine_rpc.forkchoice_updated(\n                        forkchoice_state=last_valid_block_forkchoice_state,\n                        payload_attributes=None,\n                        version=fixture.sync_payload.forkchoice_updated_version\n                        if fixture.sync_payload\n                        else fixture.payloads[-1].forkchoice_updated_version,\n                    )\n                    status = sync_fc_response.payload_status.status\n                    logger.debug(f\"Periodic forkchoice update status: {status}\")\n                    if status.VALID:\n                        break\n                    last_forkchoice_time = time.time()\n                except Exception as fc_err:\n                    logger.debug(f\"Periodic forkchoice update failed: {fc_err}\")\n            time.sleep(0.5)\n        else:\n            raise LoggedError(\n                f\"Sync client failed to synchronize to block {last_valid_block_hash} \"\n                f\"within timeout\"\n            )\n\n        logger.info(\"Sync verification successful!\")\n\n        # Verify the final state but give a few tries\n        assert eth_rpc is not None, \"eth_rpc is required\"\n        assert sync_eth_rpc is not None, \"sync_eth_rpc is required\"\n\n        for attempt in range(5):\n            try:\n                sync_block = sync_eth_rpc.get_block_by_hash(last_valid_block_hash)\n                client_block = eth_rpc.get_block_by_hash(last_valid_block_hash)\n\n                if sync_block is None or client_block is None:\n                    raise LoggedError(\n                        f\"Failed to retrieve block {last_valid_block_hash} \"\n                        f\"on attempt {attempt + 1}\"\n                    )\n\n                if sync_block[\"stateRoot\"] != client_block[\"stateRoot\"]:\n                    raise LoggedError(\n                        f\"State root mismatch after sync. \"\n                        f\"Sync client: {sync_block['stateRoot']}, \"\n                        f\"Client under test: {client_block['stateRoot']}\"\n                    )\n\n                if fixture.post_state_hash:\n                    if sync_block[\"stateRoot\"] != str(fixture.post_state_hash):\n                        raise LoggedError(\n                            f\"Final state root mismatch. \"\n                            f\"Expected: {fixture.post_state_hash}, \"\n                            f\"Got: {sync_block['stateRoot']}\"\n                        )\n                break\n            except Exception as e:\n                if attempt < 4:\n                    time.sleep(1)\n                    continue\n                raise e\n\n    logger.info(\"Sync test completed successfully!\")\n"
  },
  {
    "path": "src/pytest_plugins/consume/simulators/single_test_client.py",
    "content": "\"\"\"\nCommon pytest fixtures for simulators with single-test client architecture.\n\"\"\"\n\nimport io\nimport json\nimport logging\nfrom typing import Generator, Literal, cast\n\nimport pytest\nfrom hive.client import Client, ClientType\nfrom hive.testing import HiveTest\n\nfrom ethereum_test_base_types import Number, to_json\nfrom ethereum_test_fixtures import BlockchainFixtureCommon\nfrom ethereum_test_fixtures.blockchain import FixtureHeader\n\nfrom .helpers.ruleset import (\n    ruleset,  # TODO: generate dynamically\n)\nfrom .helpers.timing import TimingData\n\nlogger = logging.getLogger(__name__)\n\n\n@pytest.fixture(scope=\"function\")\ndef client_genesis(fixture: BlockchainFixtureCommon) -> dict:\n    \"\"\"\n    Convert the fixture genesis block header and pre-state to a client genesis\n    state.\n    \"\"\"\n    genesis = to_json(fixture.genesis)\n    alloc = to_json(fixture.pre)\n    # NOTE: nethermind requires account keys without '0x' prefix\n    genesis[\"alloc\"] = {k.replace(\"0x\", \"\"): v for k, v in alloc.items()}\n    return genesis\n\n\n@pytest.fixture(scope=\"function\")\ndef environment(\n    fixture: BlockchainFixtureCommon,\n    check_live_port: Literal[8545, 8551],\n) -> dict:\n    \"\"\"Define the environment that hive will start the client with.\"\"\"\n    assert fixture.fork in ruleset, f\"fork '{fixture.fork}' missing in hive ruleset\"\n    chain_id = str(Number(fixture.config.chain_id))\n    return {\n        \"HIVE_CHAIN_ID\": chain_id,\n        \"HIVE_NETWORK_ID\": chain_id,  # Use same value for P2P network compatibility\n        \"HIVE_FORK_DAO_VOTE\": \"1\",\n        \"HIVE_NODETYPE\": \"full\",\n        \"HIVE_CHECK_LIVE_PORT\": str(check_live_port),\n        **{k: f\"{v:d}\" for k, v in ruleset[fixture.fork].items()},\n    }\n\n\n@pytest.fixture(scope=\"function\")\ndef buffered_genesis(client_genesis: dict) -> io.BufferedReader:\n    \"\"\"\n    Create a buffered reader for the genesis block header of the current test\n    fixture.\n    \"\"\"\n    genesis_json = json.dumps(client_genesis)\n    genesis_bytes = genesis_json.encode(\"utf-8\")\n    return io.BufferedReader(cast(io.RawIOBase, io.BytesIO(genesis_bytes)))\n\n\n@pytest.fixture(scope=\"function\")\ndef genesis_header(fixture: BlockchainFixtureCommon) -> FixtureHeader:\n    \"\"\"Provide the genesis header from the shared pre-state group.\"\"\"\n    return fixture.genesis\n\n\n@pytest.fixture(scope=\"function\")\ndef client(\n    hive_test: HiveTest,\n    client_files: dict,  # configured within: rlp/conftest.py & engine/conftest.py\n    environment: dict,\n    client_type: ClientType,\n    total_timing_data: TimingData,\n) -> Generator[Client, None, None]:\n    \"\"\"\n    Initialize the client with the appropriate files and environment variables.\n    \"\"\"\n    logger.info(f\"Starting client ({client_type.name})...\")\n    logger.debug(f\"Main client Network ID: {environment.get('HIVE_NETWORK_ID', 'NOT SET!')}\")\n    logger.debug(f\"Main client Chain ID: {environment.get('HIVE_CHAIN_ID', 'NOT SET!')}\")\n    with total_timing_data.time(\"Start client\"):\n        client = hive_test.start_client(\n            client_type=client_type, environment=environment, files=client_files\n        )\n    error_message = (\n        f\"Unable to connect to the client container ({client_type.name}) via Hive during test \"\n        \"setup. Check the client or Hive server logs for more information.\"\n    )\n    assert client is not None, error_message\n    logger.info(f\"Client ({client_type.name}) ready!\")\n    yield client\n    logger.info(f\"Stopping client ({client_type.name})...\")\n    with total_timing_data.time(\"Stop client\"):\n        client.stop()\n    logger.info(f\"Client ({client_type.name}) stopped!\")\n"
  },
  {
    "path": "src/pytest_plugins/consume/simulators/sync/__init__.py",
    "content": "\"\"\"Consume Sync test functions.\"\"\"\n"
  },
  {
    "path": "src/pytest_plugins/consume/simulators/sync/conftest.py",
    "content": "\"\"\"\nPytest fixtures for the `consume sync` simulator.\n\nConfigures the hive back-end & EL clients for each individual test execution.\n\"\"\"\n\nimport io\nimport json\nfrom typing import Dict, Generator, Mapping, cast\n\nimport pytest\nfrom hive.client import Client, ClientType\nfrom hive.testing import HiveTest\n\nfrom ethereum_test_base_types import to_json\nfrom ethereum_test_exceptions import ExceptionMapper\nfrom ethereum_test_fixtures import BlockchainEngineSyncFixture\nfrom ethereum_test_rpc import AdminRPC, EngineRPC, EthRPC, NetRPC\n\npytest_plugins = (\n    \"pytest_plugins.pytest_hive.pytest_hive\",\n    \"pytest_plugins.consume.simulators.base\",\n    \"pytest_plugins.consume.simulators.single_test_client\",\n    \"pytest_plugins.consume.simulators.test_case_description\",\n    \"pytest_plugins.consume.simulators.timing_data\",\n    \"pytest_plugins.consume.simulators.exceptions\",\n)\n\n\ndef pytest_configure(config: pytest.Config) -> None:\n    \"\"\"Set the supported fixture formats for the engine sync simulator.\"\"\"\n    config.supported_fixture_formats = [BlockchainEngineSyncFixture]  # type: ignore[attr-defined]\n\n\ndef pytest_generate_tests(metafunc: pytest.Metafunc) -> None:\n    \"\"\"Parametrize sync_client_type separately from client_type.\"\"\"\n    if \"sync_client_type\" in metafunc.fixturenames:\n        client_ids = [f\"sync_{client.name}\" for client in metafunc.config.hive_execution_clients]  # type: ignore[attr-defined]\n        metafunc.parametrize(\n            \"sync_client_type\",\n            metafunc.config.hive_execution_clients,  # type: ignore[attr-defined]\n            ids=client_ids,\n        )\n\n\n@pytest.hookimpl(trylast=True)\ndef pytest_collection_modifyitems(\n    session: pytest.Session, config: pytest.Config, items: list[pytest.Item]\n) -> None:\n    \"\"\"Modify test IDs to show both client and sync client clearly.\"\"\"\n    del session, config\n\n    for item in items:\n        # Auto-mark all verify_sync tests as flaky with 3 reruns\n        if item.get_closest_marker(\"blockchain_test_sync\"):\n            item.add_marker(pytest.mark.flaky(reruns=3))\n\n        # Check if this test has both client_type and sync_client_type\n        if (\n            hasattr(item, \"callspec\")\n            and \"client_type\" in item.callspec.params\n            and \"sync_client_type\" in item.callspec.params\n        ):\n            # Get the client names and remove fork suffix if present\n            client_name = item.callspec.params[\"client_type\"].name.replace(\"-\", \"_\")\n            sync_client_name = item.callspec.params[\"sync_client_type\"].name.replace(\"-\", \"_\")\n\n            # Format: ``-{client}_sync_{sync_client}``\n            new_suffix = f\"-{client_name}::sync_{sync_client_name}\"\n\n            # client_param-\n            # tests/path/to/test.py::test_name[test_params]-sync_client_param\n            # 1. Remove the client prefix from the beginning\n            # 2. Replace the -client_param part at the end with our new format\n            nodeid = item.nodeid\n            prefix_index = item.nodeid.find(\"-tests/\")\n            if prefix_index != -1:\n                nodeid = item.nodeid[prefix_index + 1 :]\n\n            # Find the last hyphen followed by client name pattern and replace\n            if \"-\" in nodeid:\n                # Split by the last hyphen to separate the client suffix\n                parts = nodeid.rsplit(\"]-\", 1)\n                assert len(parts) == 2, (\n                    # expect \"..._end_of_test]-client_name\" suffix...\n                    f\"Unexpected format to parse client name: {nodeid}\"\n                )\n\n                base = parts[0]\n                if base.endswith(\"sync_test\"):\n                    # Insert suffix before the closing bracket\n                    base = base + new_suffix + \"]\"\n                    item._nodeid = base\n                else:\n                    item._nodeid = base + new_suffix\n\n\n@pytest.fixture(scope=\"function\")\ndef engine_rpc(client: Client, client_exception_mapper: ExceptionMapper | None) -> EngineRPC:\n    \"\"\"Initialize engine RPC client for the execution client under test.\"\"\"\n    if client_exception_mapper:\n        return EngineRPC(\n            f\"http://{client.ip}:8551\",\n            response_validation_context={\n                \"exception_mapper\": client_exception_mapper,\n            },\n        )\n    return EngineRPC(f\"http://{client.ip}:8551\")\n\n\n@pytest.fixture(scope=\"function\")\ndef eth_rpc(client: Client) -> EthRPC:\n    \"\"\"Initialize eth RPC client for the execution client under test.\"\"\"\n    return EthRPC(f\"http://{client.ip}:8545\")\n\n\n@pytest.fixture(scope=\"function\")\ndef net_rpc(client: Client) -> NetRPC:\n    \"\"\"Initialize net RPC client for the execution client under test.\"\"\"\n    return NetRPC(f\"http://{client.ip}:8545\")\n\n\n@pytest.fixture(scope=\"function\")\ndef admin_rpc(client: Client) -> AdminRPC:\n    \"\"\"Initialize admin RPC client for the execution client under test.\"\"\"\n    return AdminRPC(f\"http://{client.ip}:8545\")\n\n\n@pytest.fixture(scope=\"function\")\ndef sync_genesis(fixture: BlockchainEngineSyncFixture) -> Dict:\n    \"\"\"\n    Convert the fixture genesis block header and pre-state to a sync client\n    genesis state.\n    \"\"\"\n    genesis = to_json(fixture.genesis)\n    alloc = to_json(fixture.pre)\n    # NOTE: nethermind requires account keys without '0x' prefix\n    genesis[\"alloc\"] = {k.replace(\"0x\", \"\"): v for k, v in alloc.items()}\n    return genesis\n\n\n@pytest.fixture(scope=\"function\")\ndef sync_buffered_genesis(sync_genesis: Dict) -> io.BufferedReader:\n    \"\"\"\n    Create a buffered reader for the genesis block header of the sync client.\n    \"\"\"\n    genesis_json = json.dumps(sync_genesis)\n    genesis_bytes = genesis_json.encode(\"utf-8\")\n    return io.BufferedReader(cast(io.RawIOBase, io.BytesIO(genesis_bytes)))\n\n\n@pytest.fixture(scope=\"function\")\ndef sync_client_files(sync_buffered_genesis: io.BufferedReader) -> Mapping[str, io.BufferedReader]:\n    \"\"\"Define the files that hive will start the sync client with.\"\"\"\n    files = {}\n    files[\"/genesis.json\"] = sync_buffered_genesis\n    return files\n\n\n@pytest.fixture(scope=\"function\")\ndef client_enode_url(client: Client) -> str:\n    \"\"\"Get the enode URL from the client under test.\"\"\"\n    import logging\n\n    logger = logging.getLogger(__name__)\n\n    enode = client.enode()\n    logger.info(f\"Client enode object: {enode}\")\n\n    # Build the enode URL string with container IP\n    enode_url = f\"enode://{enode.id}@{client.ip}:{enode.port}\"\n    logger.info(f\"Client enode URL: {enode_url}\")\n    return enode_url\n\n\n@pytest.fixture(scope=\"function\")\ndef sync_client(\n    hive_test: HiveTest,\n    sync_client_files: Dict,\n    environment: Dict,\n    sync_client_type: ClientType,  # Separate parametrization for sync client\n    client_enode_url: str,  # Get the enode URL from fixture\n) -> Generator[Client, None, None]:\n    \"\"\"Start a sync client that will sync from the client under test.\"\"\"\n    import logging\n\n    logger = logging.getLogger(__name__)\n    logger.info(f\"Starting sync client setup for {sync_client_type.name}\")\n\n    # Start with the same environment as the main client\n    sync_environment = environment.copy()\n\n    # Only override what's necessary for sync client\n    sync_environment[\"HIVE_MINER\"] = \"\"  # Disable mining on sync client\n\n    # Set bootnode even though we also use admin_addPeer\n    # Some clients use this for initial P2P configuration\n    sync_environment[\"HIVE_BOOTNODE\"] = client_enode_url\n\n    # Ensure both network and chain IDs are properly set\n    if \"HIVE_NETWORK_ID\" not in sync_environment and \"HIVE_CHAIN_ID\" in sync_environment:\n        # Some clients need explicit HIVE_NETWORK_ID\n        sync_environment[\"HIVE_NETWORK_ID\"] = sync_environment[\"HIVE_CHAIN_ID\"]\n\n    logger.info(f\"Starting sync client ({sync_client_type.name})\")\n    logger.info(f\"  Network ID: {sync_environment.get('HIVE_NETWORK_ID', 'NOT SET!')}\")\n    logger.info(f\"  Chain ID: {sync_environment.get('HIVE_CHAIN_ID', 'NOT SET!')}\")\n\n    # Debug: log all HIVE_ variables\n    hive_vars = {k: v for k, v in sync_environment.items() if k.startswith(\"HIVE_\")}\n    logger.debug(f\"All HIVE_ environment variables: {hive_vars}\")\n\n    # Use the separately parametrized sync client type\n    sync_client = hive_test.start_client(\n        client_type=sync_client_type,\n        environment=sync_environment,\n        files=sync_client_files,\n    )\n\n    error_message = (\n        f\"Unable to start sync client ({sync_client_type.name}) via Hive. \"\n        \"Check the client or Hive server logs for more information.\"\n    )\n    assert sync_client is not None, error_message\n\n    logger.info(f\"Sync client ({sync_client_type.name}) started with IP: {sync_client.ip}\")\n\n    yield sync_client\n\n    # Cleanup\n    sync_client.stop()\n\n\n@pytest.fixture(scope=\"function\")\ndef sync_client_exception_mapper(\n    sync_client_type: ClientType, client_exception_mapper_cache: Dict[str, ExceptionMapper | None]\n) -> ExceptionMapper | None:\n    \"\"\"Return the exception mapper for the sync client type, with caching.\"\"\"\n    if sync_client_type.name not in client_exception_mapper_cache:\n        from ..exceptions import EXCEPTION_MAPPERS\n\n        for client in EXCEPTION_MAPPERS:\n            if client in sync_client_type.name:\n                client_exception_mapper_cache[sync_client_type.name] = EXCEPTION_MAPPERS[client]\n                break\n        else:\n            client_exception_mapper_cache[sync_client_type.name] = None\n\n    return client_exception_mapper_cache[sync_client_type.name]\n\n\n@pytest.fixture(scope=\"function\")\ndef sync_engine_rpc(\n    sync_client: Client, sync_client_exception_mapper: ExceptionMapper | None\n) -> EngineRPC:\n    \"\"\"Initialize engine RPC client for the sync client.\"\"\"\n    if sync_client_exception_mapper:\n        return EngineRPC(\n            f\"http://{sync_client.ip}:8551\",\n            response_validation_context={\n                \"exception_mapper\": sync_client_exception_mapper,\n            },\n        )\n    return EngineRPC(f\"http://{sync_client.ip}:8551\")\n\n\n@pytest.fixture(scope=\"function\")\ndef sync_eth_rpc(sync_client: Client) -> EthRPC:\n    \"\"\"Initialize eth RPC client for the sync client.\"\"\"\n    return EthRPC(f\"http://{sync_client.ip}:8545\")\n\n\n@pytest.fixture(scope=\"function\")\ndef sync_net_rpc(sync_client: Client) -> NetRPC:\n    \"\"\"Initialize net RPC client for the sync client.\"\"\"\n    return NetRPC(f\"http://{sync_client.ip}:8545\")\n\n\n@pytest.fixture(scope=\"function\")\ndef sync_admin_rpc(sync_client: Client) -> AdminRPC:\n    \"\"\"Initialize admin RPC client for the sync client.\"\"\"\n    return AdminRPC(f\"http://{sync_client.ip}:8545\")\n\n\n@pytest.fixture(scope=\"module\")\ndef test_suite_name() -> str:\n    \"\"\"The name of the hive test suite used in this simulator.\"\"\"\n    return \"eest/consume-sync\"\n\n\n@pytest.fixture(scope=\"module\")\ndef test_suite_description() -> str:\n    \"\"\"The description of the hive test suite used in this simulator.\"\"\"\n    return \"Execute blockchain sync tests against clients using the Engine API.\"\n\n\n@pytest.fixture(scope=\"function\")\ndef client_files(buffered_genesis: io.BufferedReader) -> Mapping[str, io.BufferedReader]:\n    \"\"\"Define the files that hive will start the client with.\"\"\"\n    files = {}\n    files[\"/genesis.json\"] = buffered_genesis\n    return files\n"
  },
  {
    "path": "src/pytest_plugins/consume/simulators/test_case_description.py",
    "content": "\"\"\"\nPytest fixtures that help create the test case \"Description\" displayed in the\nHive UI.\n\"\"\"\n\nimport logging\nimport textwrap\nimport urllib\nimport warnings\nfrom typing import List\n\nimport pytest\nfrom hive.client import ClientType\n\nfrom ethereum_test_fixtures import BaseFixture\nfrom ethereum_test_fixtures.consume import TestCaseIndexFile, TestCaseStream\n\nfrom ...pytest_hive.hive_info import ClientFile, HiveInfo\n\nlogger = logging.getLogger(__name__)\n\n\n@pytest.fixture(scope=\"function\")\ndef hive_clients_yaml_target_filename() -> str:\n    \"\"\"Return the name of the target clients YAML file.\"\"\"\n    return \"clients_eest.yaml\"\n\n\n@pytest.fixture(scope=\"function\")\ndef hive_clients_yaml_generator_command(\n    client_type: ClientType,\n    client_file: ClientFile,\n    hive_clients_yaml_target_filename: str,\n    hive_info: HiveInfo,\n) -> str:\n    \"\"\"\n    Generate a shell command that creates a clients YAML file for the current\n    client.\n    \"\"\"\n    try:\n        if not client_file:\n            raise ValueError(\"No client information available - try updating hive\")\n        client_config = [c for c in client_file.root if c.client in client_type.name]\n        if not client_config:\n            raise ValueError(f\"Client '{client_type.name}' not found in client file\")\n        try:\n            yaml_content = ClientFile(root=[client_config[0]]).yaml().replace(\" \", \"&nbsp;\")\n            return f'echo \"\\\\\\n{yaml_content}\" > {hive_clients_yaml_target_filename}'\n        except Exception as e:\n            raise ValueError(f\"Failed to generate YAML: {str(e)}\") from e\n    except ValueError as e:\n        error_message = str(e)\n        warnings.warn(\n            f\"{error_message}. The Hive clients YAML generator command will not be available.\",\n            stacklevel=2,\n        )\n\n        issue_title = f\"Client {client_type.name} configuration issue\"\n        issue_body = f\"Error: {error_message}\\nHive version: {hive_info.commit}\\n\"\n        issue_url = f\"https://github.com/ethereum/execution-spec-tests/issues/new?title={urllib.parse.quote(issue_title)}&body={urllib.parse.quote(issue_body)}\"\n\n        return (\n            f\"Error: {error_message}\\n\"\n            f'Please <a href=\"{issue_url}\">create an issue</a> to report this problem.'\n        )\n\n\n@pytest.fixture(scope=\"function\")\ndef filtered_hive_options(hive_info: HiveInfo) -> List[str]:\n    \"\"\"Filter Hive command options to remove unwanted options.\"\"\"\n    logger.info(\"Hive info: %s\", hive_info.command)\n\n    unwanted_options = [\n        \"--client\",  # gets overwritten: we specify a single client; the one\n        # from the test case\n        \"--client-file\",  # gets overwritten: we'll write our own client file\n        \"--results-root\",  # use default value instead (or you have to pass it\n        # to ./hiveview)\n        \"--sim.limit\",  # gets overwritten: we only run the current test case\n        # id\n        \"--sim.parallelism\",  # skip; we'll only be running a single test\n    ]\n\n    command_parts = []\n    skip_next = False\n    for part in hive_info.command:\n        if skip_next:\n            skip_next = False\n            continue\n\n        if part in unwanted_options:\n            skip_next = True\n            continue\n\n        if any(part.startswith(f\"{option}=\") for option in unwanted_options):\n            continue\n\n        command_parts.append(part)\n\n    return command_parts\n\n\n@pytest.fixture(scope=\"function\")\ndef hive_client_config_file_parameter(hive_clients_yaml_target_filename: str) -> str:\n    \"\"\"Return the hive client config file parameter.\"\"\"\n    return f\"--client-file {hive_clients_yaml_target_filename}\"\n\n\n@pytest.fixture(scope=\"function\")\ndef hive_consume_command(\n    test_case: TestCaseIndexFile | TestCaseStream,\n    hive_client_config_file_parameter: str,\n    filtered_hive_options: List[str],\n    client_type: ClientType,\n) -> str:\n    \"\"\"Command to run the test within hive.\"\"\"\n    command_parts = filtered_hive_options.copy()\n    command_parts.append(f\"{hive_client_config_file_parameter}\")\n    command_parts.append(f\"--client={client_type.name}\")\n    command_parts.append(f'--sim.limit=\"id:{test_case.id}\"')\n\n    return \" \".join(command_parts)\n\n\n@pytest.fixture(scope=\"function\")\ndef hive_dev_command(\n    client_type: ClientType,\n    hive_client_config_file_parameter: str,\n) -> str:\n    \"\"\"\n    Return the command used to instantiate hive alongside the `consume`\n    command.\n    \"\"\"\n    return f\"./hive --dev {hive_client_config_file_parameter} --client {client_type.name}\"\n\n\n@pytest.fixture(scope=\"function\")\ndef eest_consume_command(\n    test_suite_name: str,\n    test_case: TestCaseIndexFile | TestCaseStream,\n    fixture_source_flags: List[str],\n) -> str:\n    \"\"\"Commands to run the test within EEST using a hive dev back-end.\"\"\"\n    flags = \" \".join(fixture_source_flags)\n    return (\n        f\"uv run consume {test_suite_name.split('-')[-1]} \"\n        f'{flags} --sim.limit=\"id:{test_case.id}\" -v -s'\n    )\n\n\n@pytest.fixture(scope=\"function\")\ndef test_case_description(\n    fixture: BaseFixture,\n    test_case: TestCaseIndexFile | TestCaseStream,\n    hive_clients_yaml_generator_command: str,\n    hive_consume_command: str,\n    hive_dev_command: str,\n    eest_consume_command: str,\n) -> str:\n    \"\"\"Create the description of the current blockchain fixture test case.\"\"\"\n    test_url = fixture.info.get(\"url\", \"\")\n\n    if \"description\" not in fixture.info or fixture.info[\"description\"] is None:\n        test_docstring = \"No documentation available.\"\n    else:\n        # this prefix was included in the fixture description field for\n        # fixtures <= v4.3.0\n        test_docstring = fixture.info[\"description\"].replace(\"Test function documentation:\\n\", \"\")  # type: ignore\n\n    description = textwrap.dedent(f\"\"\"\n        <b>Test Details</b>\n        <code>{test_case.id}</code>\n        {f'<a href=\"{test_url}\">[source]</a>' if test_url else \"\"}\n\n        {test_docstring}\n\n        <b>Run This Test Locally:</b>\n        To run this test in <a href=\"https://github.com/ethereum/hive\">\n        hive\n        </a></i>:\n        <code>{hive_clients_yaml_generator_command}\n            {hive_consume_command}</code>\n\n        <b>Advanced: Run the test against a hive developer backend using\n        EEST's <code>consume</code> command</b>\n        Create the client YAML file, as above, then:\n        1. Start hive in dev mode: <code>{hive_dev_command}</code>\n        2. In the EEST repository root: <code>{eest_consume_command}</code>\n    \"\"\")\n\n    description = description.strip()\n    description = description.replace(\"\\n\", \"<br/>\")\n    return description\n"
  },
  {
    "path": "src/pytest_plugins/consume/simulators/timing_data.py",
    "content": "\"\"\"Pytest plugin that helps measure and log timing data in Hive simulators.\"\"\"\n\nfrom typing import Generator\n\nimport pytest\nimport rich\nfrom hive.client import Client\n\nfrom .helpers.timing import TimingData\n\n\ndef pytest_addoption(parser: pytest.Parser) -> None:\n    \"\"\"Hive simulator specific consume command line options.\"\"\"\n    consume_group = parser.getgroup(\n        \"consume\", \"Arguments related to consuming fixtures via a client\"\n    )\n    consume_group.addoption(\n        \"--timing-data\",\n        action=\"store_true\",\n        dest=\"timing_data\",\n        default=False,\n        help=\"Log the timing data for each test case execution.\",\n    )\n\n\n@pytest.fixture(scope=\"function\", autouse=True)\ndef total_timing_data(request: pytest.FixtureRequest) -> Generator[TimingData, None, None]:\n    \"\"\"Record timing data for various stages of executing test case.\"\"\"\n    with TimingData(\"Total (seconds)\") as total_timing_data:\n        yield total_timing_data\n    if request.config.getoption(\"timing_data\"):\n        rich.print(f\"\\n{total_timing_data.formatted()}\")\n    if hasattr(request.node, \"rep_call\"):  # make available for test reports\n        request.node.rep_call.timings = total_timing_data\n\n\n@pytest.fixture(scope=\"function\", autouse=True)\ndef timing_data(\n    total_timing_data: TimingData, client: Client\n) -> Generator[TimingData, None, None]:\n    \"\"\"Record timing data for the main execution of the test case.\"\"\"\n    del client\n\n    with total_timing_data.time(\"Test case execution\") as timing_data:\n        yield timing_data\n"
  },
  {
    "path": "src/pytest_plugins/consume/tests/__init__.py",
    "content": "\"\"\"Tests for the consume plugin.\"\"\"\n"
  },
  {
    "path": "src/pytest_plugins/consume/tests/release_information.json",
    "content": "[\n  {\n    \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/192140551\",\n    \"assets_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/192140551/assets\",\n    \"upload_url\": \"https://uploads.github.com/repos/ethereum/execution-spec-tests/releases/192140551/assets{?name,label}\",\n    \"html_url\": \"https://github.com/ethereum/execution-spec-tests/releases/tag/pectra-devnet-5%40v1.0.0\",\n    \"id\": 192140551,\n    \"author\": {\n      \"login\": \"marioevz\",\n      \"id\": 11726710,\n      \"node_id\": \"MDQ6VXNlcjExNzI2NzEw\",\n      \"avatar_url\": \"https://avatars.githubusercontent.com/u/11726710?v=4\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/marioevz\",\n      \"html_url\": \"https://github.com/marioevz\",\n      \"followers_url\": \"https://api.github.com/users/marioevz/followers\",\n      \"following_url\": \"https://api.github.com/users/marioevz/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/marioevz/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/marioevz/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/marioevz/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/marioevz/orgs\",\n      \"repos_url\": \"https://api.github.com/users/marioevz/repos\",\n      \"events_url\": \"https://api.github.com/users/marioevz/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/marioevz/received_events\",\n      \"type\": \"User\",\n      \"user_view_type\": \"public\",\n      \"site_admin\": false\n    },\n    \"node_id\": \"RE_kwDOIQGLK84Lc9UH\",\n    \"tag_name\": \"pectra-devnet-5@v1.0.0\",\n    \"target_commitish\": \"main\",\n    \"name\": \"pectra-devnet-5@v1.0.0\",\n    \"draft\": false,\n    \"prerelease\": true,\n    \"created_at\": \"2024-12-23T13:58:57Z\",\n    \"published_at\": \"2024-12-23T17:47:33Z\",\n    \"assets\": [\n      {\n        \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/assets/215394109\",\n        \"id\": 215394109,\n        \"node_id\": \"RA_kwDOIQGLK84M1qc9\",\n        \"name\": \"fixtures_pectra-devnet-5.tar.gz\",\n        \"label\": null,\n        \"uploader\": {\n          \"login\": \"marioevz\",\n          \"id\": 11726710,\n          \"node_id\": \"MDQ6VXNlcjExNzI2NzEw\",\n          \"avatar_url\": \"https://avatars.githubusercontent.com/u/11726710?v=4\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/marioevz\",\n          \"html_url\": \"https://github.com/marioevz\",\n          \"followers_url\": \"https://api.github.com/users/marioevz/followers\",\n          \"following_url\": \"https://api.github.com/users/marioevz/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/marioevz/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/marioevz/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/marioevz/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/marioevz/orgs\",\n          \"repos_url\": \"https://api.github.com/users/marioevz/repos\",\n          \"events_url\": \"https://api.github.com/users/marioevz/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/marioevz/received_events\",\n          \"type\": \"User\",\n          \"user_view_type\": \"public\",\n          \"site_admin\": false\n        },\n        \"content_type\": \"application/gzip\",\n        \"state\": \"uploaded\",\n        \"size\": 53020980,\n        \"download_count\": 10,\n        \"created_at\": \"2024-12-23T17:37:55Z\",\n        \"updated_at\": \"2024-12-23T17:38:02Z\",\n        \"browser_download_url\": \"https://github.com/ethereum/execution-spec-tests/releases/download/pectra-devnet-5%40v1.0.0/fixtures_pectra-devnet-5.tar.gz\"\n      }\n    ],\n    \"tarball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/tarball/pectra-devnet-5@v1.0.0\",\n    \"zipball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/zipball/pectra-devnet-5@v1.0.0\",\n    \"body\": \"First EEST pre-release for Pectra Devnet-5.\\r\\n\\r\\n## Execution Layer EIP List for pectra-devnet-5\\r\\n\\r\\nThe list below links the specific commit versions of the EIPs included in devnet-5 and in this release: \\r\\n\\r\\n- [EIP-2537: Precompile for BLS12-381 curve operations](https://github.com/ethereum/EIPs/blob/e8ce6c1d95a6901505fcf2d4ada4245feb69ea7e/EIPS/eip-2537.md)\\r\\n- [EIP-2935: Save historical block hashes in state](https://github.com/lightclient/EIPs/blob/4d485ae63022f60824bafdc715c049b8510d76eb/EIPS/eip-2935.md)\\r\\n- [EIP-6110: Supply validator deposits on chain](https://github.com/ethereum/EIPs/blob/e8ce6c1d95a6901505fcf2d4ada4245feb69ea7e/EIPS/eip-6110.md)\\r\\n- [EIP-7002: Execution layer triggerable withdrawals](https://github.com/ethereum/EIPs/blob/e8ce6c1d95a6901505fcf2d4ada4245feb69ea7e/EIPS/eip-7002.md)\\r\\n- [EIP-7251: Increase the MAX_EFFECTIVE_BALANCE](https://github.com/ethereum/EIPs/blob/e8ce6c1d95a6901505fcf2d4ada4245feb69ea7e/EIPS/eip-7251.md)\\r\\n- [EIP-7623: Increase calldata cost](https://github.com/ethereum/EIPs/blob/e8ce6c1d95a6901505fcf2d4ada4245feb69ea7e/EIPS/eip-7623.md) - :exclamation: new EIP\\r\\n- [EIP-7685: General purpose execution layer requests](https://github.com/ethereum/EIPs/blob/e8ce6c1d95a6901505fcf2d4ada4245feb69ea7e/EIPS/eip-7685.md)\\r\\n- [EIP-7691: Blob throughput increase](https://github.com/ethereum/EIPs/blob/e8ce6c1d95a6901505fcf2d4ada4245feb69ea7e/EIPS/eip-7691.md) :exclamation: new EIP\\r\\n- [EIP-7702: Set EOA account code for one transaction](https://github.com/ethereum/EIPs/blob/e8ce6c1d95a6901505fcf2d4ada4245feb69ea7e/EIPS/eip-7702.md)\\r\\n\\r\\n## Breaking Changes\\r\\n\\r\\n#### Transaction Tests\\r\\n\\r\\nNew test format is included in this release called [Transaction Tests](https://eest.ethereum.org/main/consuming_tests/transaction_test/).\\r\\n\\r\\nThe fixtures of this type are included in folder `./fixtures/transaction_tests/`.\\r\\n\\r\\n###  Important Notes\\r\\nNone\"\n  },\n  {\n    \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/190023984\",\n    \"assets_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/190023984/assets\",\n    \"upload_url\": \"https://uploads.github.com/repos/ethereum/execution-spec-tests/releases/190023984/assets{?name,label}\",\n    \"html_url\": \"https://github.com/ethereum/execution-spec-tests/releases/tag/verkle%40v0.0.9-alpha-1\",\n    \"id\": 190023984,\n    \"author\": {\n      \"login\": \"github-actions[bot]\",\n      \"id\": 41898282,\n      \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n      \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n      \"html_url\": \"https://github.com/apps/github-actions\",\n      \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n      \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n      \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n      \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n      \"type\": \"Bot\",\n      \"user_view_type\": \"public\",\n      \"site_admin\": false\n    },\n    \"node_id\": \"RE_kwDOIQGLK84LU4kw\",\n    \"tag_name\": \"verkle@v0.0.9-alpha-1\",\n    \"target_commitish\": \"main\",\n    \"name\": \"verkle@v0.0.9-alpha-1\",\n    \"draft\": false,\n    \"prerelease\": true,\n    \"created_at\": \"2024-12-10T16:03:56Z\",\n    \"published_at\": \"2024-12-10T18:01:25Z\",\n    \"assets\": [\n      {\n        \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/assets/212429636\",\n        \"id\": 212429636,\n        \"node_id\": \"RA_kwDOIQGLK84MqWtE\",\n        \"name\": \"fixtures_verkle-conversion-stride-0.tar.gz\",\n        \"label\": \"\",\n        \"uploader\": {\n          \"login\": \"github-actions[bot]\",\n          \"id\": 41898282,\n          \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n          \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n          \"html_url\": \"https://github.com/apps/github-actions\",\n          \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n          \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n          \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n          \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n          \"type\": \"Bot\",\n          \"user_view_type\": \"public\",\n          \"site_admin\": false\n        },\n        \"content_type\": \"application/gzip\",\n        \"state\": \"uploaded\",\n        \"size\": 380857,\n        \"download_count\": 1,\n        \"created_at\": \"2024-12-10T17:59:15Z\",\n        \"updated_at\": \"2024-12-10T17:59:15Z\",\n        \"browser_download_url\": \"https://github.com/ethereum/execution-spec-tests/releases/download/verkle%40v0.0.9-alpha-1/fixtures_verkle-conversion-stride-0.tar.gz\"\n      },\n      {\n        \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/assets/212429637\",\n        \"id\": 212429637,\n        \"node_id\": \"RA_kwDOIQGLK84MqWtF\",\n        \"name\": \"fixtures_verkle-genesis.tar.gz\",\n        \"label\": \"\",\n        \"uploader\": {\n          \"login\": \"github-actions[bot]\",\n          \"id\": 41898282,\n          \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n          \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n          \"html_url\": \"https://github.com/apps/github-actions\",\n          \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n          \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n          \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n          \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n          \"type\": \"Bot\",\n          \"user_view_type\": \"public\",\n          \"site_admin\": false\n        },\n        \"content_type\": \"application/gzip\",\n        \"state\": \"uploaded\",\n        \"size\": 3161837,\n        \"download_count\": 5,\n        \"created_at\": \"2024-12-10T17:59:15Z\",\n        \"updated_at\": \"2024-12-10T17:59:15Z\",\n        \"browser_download_url\": \"https://github.com/ethereum/execution-spec-tests/releases/download/verkle%40v0.0.9-alpha-1/fixtures_verkle-genesis.tar.gz\"\n      }\n    ],\n    \"tarball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/tarball/verkle@v0.0.9-alpha-1\",\n    \"zipball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/zipball/verkle@v0.0.9-alpha-1\",\n    \"body\": \"**Full Changelog**: https://github.com/ethereum/execution-spec-tests/compare/verkle@v0.0.8...verkle@v0.0.9-alpha-1\"\n  },\n  {\n    \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/188166169\",\n    \"assets_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/188166169/assets\",\n    \"upload_url\": \"https://uploads.github.com/repos/ethereum/execution-spec-tests/releases/188166169/assets{?name,label}\",\n    \"html_url\": \"https://github.com/ethereum/execution-spec-tests/releases/tag/eip7692%40v2.1.0\",\n    \"id\": 188166169,\n    \"author\": {\n      \"login\": \"github-actions[bot]\",\n      \"id\": 41898282,\n      \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n      \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n      \"html_url\": \"https://github.com/apps/github-actions\",\n      \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n      \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n      \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n      \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n      \"type\": \"Bot\",\n      \"user_view_type\": \"public\",\n      \"site_admin\": false\n    },\n    \"node_id\": \"RE_kwDOIQGLK84LNzAZ\",\n    \"tag_name\": \"eip7692@v2.1.0\",\n    \"target_commitish\": \"main\",\n    \"name\": \"eip7692@v2.1.0\",\n    \"draft\": false,\n    \"prerelease\": true,\n    \"created_at\": \"2024-11-27T13:42:33Z\",\n    \"published_at\": \"2024-11-29T10:15:52Z\",\n    \"assets\": [\n      {\n        \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/assets/209848063\",\n        \"id\": 209848063,\n        \"node_id\": \"RA_kwDOIQGLK84Mggb_\",\n        \"name\": \"fixtures_eip7692.tar.gz\",\n        \"label\": \"\",\n        \"uploader\": {\n          \"login\": \"github-actions[bot]\",\n          \"id\": 41898282,\n          \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n          \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n          \"html_url\": \"https://github.com/apps/github-actions\",\n          \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n          \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n          \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n          \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n          \"type\": \"Bot\",\n          \"user_view_type\": \"public\",\n          \"site_admin\": false\n        },\n        \"content_type\": \"application/gzip\",\n        \"state\": \"uploaded\",\n        \"size\": 35294190,\n        \"download_count\": 126,\n        \"created_at\": \"2024-11-29T09:32:05Z\",\n        \"updated_at\": \"2024-11-29T09:32:06Z\",\n        \"browser_download_url\": \"https://github.com/ethereum/execution-spec-tests/releases/download/eip7692%40v2.1.0/fixtures_eip7692.tar.gz\"\n      }\n    ],\n    \"tarball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/tarball/eip7692@v2.1.0\",\n    \"zipball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/zipball/eip7692@v2.1.0\",\n    \"body\": \"## What's Changed (Only EOF-relevant changes listed)\\r\\n\\r\\n* new(tests): EOF - EIP-4750: Stack  validation in CALLF by @shemnon in https://github.com/ethereum/execution-spec-tests/pull/889\\r\\n* new(tests): EOF - EIP-5450: RJUMP* vs CALLF tests by @pdobacz in https://github.com/ethereum/execution-spec-tests/pull/833\\r\\n* bug(tests) - CALLF rule #4 applies to return stack, not operand stack by @shemnon in https://github.com/ethereum/execution-spec-tests/pull/907\\r\\n* feat(exceptions,specs): class to verify exception strings by @winsvega in https://github.com/ethereum/execution-spec-tests/pull/795\\r\\n* new(tests): basic EOF execution tests by @chfast in https://github.com/ethereum/execution-spec-tests/pull/912\\r\\n* new(tests): EOF - EIP-4200: migrate remaining RJUMP* execution tests by @chfast in https://github.com/ethereum/execution-spec-tests/pull/916\\r\\n* refactor(tests): EOF - EIP-4750: parametrize CALLF execution tests by @chfast in https://github.com/ethereum/execution-spec-tests/pull/913\\r\\n* new(cli): Introduce eofwrap tool by @pdobacz in https://github.com/ethereum/execution-spec-tests/pull/896\\r\\n* new(tests): EOF - EIP-6206: Add stack overflow by rule check to JUMPF by @shemnon in https://github.com/ethereum/execution-spec-tests/pull/902\\r\\n* new(tests): Explicit test for EXTDELEGATECALL value cost by @pdobacz in https://github.com/ethereum/execution-spec-tests/pull/911\\r\\n* new(tests): EOF - EIP-4750: add fibonacci and factorial tests for CALLF by @chfast in https://github.com/ethereum/execution-spec-tests/pull/915\\r\\n* new(tests): EOF - EIP-7692: migrate `CALLF` execution tests by @chfast in https://github.com/ethereum/execution-spec-tests/pull/914\\r\\n* new(tests): EOF - EIP-4200 EIP-6206 RJUMPI with JUMPF by @pdobacz in https://github.com/ethereum/execution-spec-tests/pull/928\\r\\n* feat(forks): Add gas costs functions by @marioevz in https://github.com/ethereum/execution-spec-tests/pull/779\\r\\n* new(tests): EOF - EIP-3540: validation of opcodes by @chfast in https://github.com/ethereum/execution-spec-tests/pull/932\\r\\n* feat(docs): add prague-devnet-5 link; add EOF EIP links/info by @danceratopz in https://github.com/ethereum/execution-spec-tests/pull/957\\r\\n* feat(ci,eof): include eofwrap in EOF prerelease by @pdobacz in https://github.com/ethereum/execution-spec-tests/pull/962\\r\\n\\r\\n## New Contributors\\r\\n* @MaximeDavin made their first contribution in https://github.com/ethereum/execution-spec-tests/pull/949\\r\\n\\r\\n**Full Changelog**: https://github.com/ethereum/execution-spec-tests/compare/eip7692@v2.0.0...eip7692@v2.1.0\",\n    \"reactions\": {\n      \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/188166169/reactions\",\n      \"total_count\": 1,\n      \"+1\": 0,\n      \"-1\": 0,\n      \"laugh\": 0,\n      \"hooray\": 0,\n      \"confused\": 0,\n      \"heart\": 0,\n      \"rocket\": 1,\n      \"eyes\": 0\n    },\n    \"mentions_count\": 7\n  },\n  {\n    \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/186894334\",\n    \"assets_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/186894334/assets\",\n    \"upload_url\": \"https://uploads.github.com/repos/ethereum/execution-spec-tests/releases/186894334/assets{?name,label}\",\n    \"html_url\": \"https://github.com/ethereum/execution-spec-tests/releases/tag/verkle%40v0.0.8\",\n    \"id\": 186894334,\n    \"author\": {\n      \"login\": \"github-actions[bot]\",\n      \"id\": 41898282,\n      \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n      \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n      \"html_url\": \"https://github.com/apps/github-actions\",\n      \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n      \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n      \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n      \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n      \"type\": \"Bot\",\n      \"user_view_type\": \"public\",\n      \"site_admin\": false\n    },\n    \"node_id\": \"RE_kwDOIQGLK84LI8f-\",\n    \"tag_name\": \"verkle@v0.0.8\",\n    \"target_commitish\": \"main\",\n    \"name\": \"verkle@v0.0.8\",\n    \"draft\": false,\n    \"prerelease\": true,\n    \"created_at\": \"2024-11-22T11:08:22Z\",\n    \"published_at\": \"2024-11-22T13:21:15Z\",\n    \"assets\": [\n      {\n        \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/assets/208335927\",\n        \"id\": 208335927,\n        \"node_id\": \"RA_kwDOIQGLK84MavQ3\",\n        \"name\": \"fixtures_verkle-conversion-stride-0.tar.gz\",\n        \"label\": \"\",\n        \"uploader\": {\n          \"login\": \"github-actions[bot]\",\n          \"id\": 41898282,\n          \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n          \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n          \"html_url\": \"https://github.com/apps/github-actions\",\n          \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n          \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n          \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n          \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n          \"type\": \"Bot\",\n          \"user_view_type\": \"public\",\n          \"site_admin\": false\n        },\n        \"content_type\": \"application/gzip\",\n        \"state\": \"uploaded\",\n        \"size\": 380504,\n        \"download_count\": 2,\n        \"created_at\": \"2024-11-22T13:03:52Z\",\n        \"updated_at\": \"2024-11-22T13:03:53Z\",\n        \"browser_download_url\": \"https://github.com/ethereum/execution-spec-tests/releases/download/verkle%40v0.0.8/fixtures_verkle-conversion-stride-0.tar.gz\"\n      },\n      {\n        \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/assets/208335928\",\n        \"id\": 208335928,\n        \"node_id\": \"RA_kwDOIQGLK84MavQ4\",\n        \"name\": \"fixtures_verkle-genesis.tar.gz\",\n        \"label\": \"\",\n        \"uploader\": {\n          \"login\": \"github-actions[bot]\",\n          \"id\": 41898282,\n          \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n          \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n          \"html_url\": \"https://github.com/apps/github-actions\",\n          \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n          \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n          \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n          \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n          \"type\": \"Bot\",\n          \"user_view_type\": \"public\",\n          \"site_admin\": false\n        },\n        \"content_type\": \"application/gzip\",\n        \"state\": \"uploaded\",\n        \"size\": 3160592,\n        \"download_count\": 15,\n        \"created_at\": \"2024-11-22T13:03:52Z\",\n        \"updated_at\": \"2024-11-22T13:03:53Z\",\n        \"browser_download_url\": \"https://github.com/ethereum/execution-spec-tests/releases/download/verkle%40v0.0.8/fixtures_verkle-genesis.tar.gz\"\n      }\n    ],\n    \"tarball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/tarball/verkle@v0.0.8\",\n    \"zipball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/zipball/verkle@v0.0.8\",\n    \"body\": \"## What's Changed\\r\\nThis release includes extra tests that reproduce bugs found in some EL clients in the new devnet7:\\r\\n* verkle: add extra SSTORE test by @jsign in https://github.com/ethereum/execution-spec-tests/pull/936\\r\\n* verkle: add contract creation failure scenario by @jsign in https://github.com/ethereum/execution-spec-tests/pull/944\\r\\n\\r\\nPlease see PR descriptions to understand better what new tests try to cover.\\r\\n\\r\\n**Full Changelog**: https://github.com/ethereum/execution-spec-tests/compare/verkle@v0.0.7...verkle@v0.0.8\",\n    \"mentions_count\": 1\n  },\n  {\n    \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/183128740\",\n    \"assets_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/183128740/assets\",\n    \"upload_url\": \"https://uploads.github.com/repos/ethereum/execution-spec-tests/releases/183128740/assets{?name,label}\",\n    \"html_url\": \"https://github.com/ethereum/execution-spec-tests/releases/tag/verkle%40v0.0.7-alpha-8\",\n    \"id\": 183128740,\n    \"author\": {\n      \"login\": \"github-actions[bot]\",\n      \"id\": 41898282,\n      \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n      \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n      \"html_url\": \"https://github.com/apps/github-actions\",\n      \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n      \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n      \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n      \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n      \"type\": \"Bot\",\n      \"user_view_type\": \"public\",\n      \"site_admin\": false\n    },\n    \"node_id\": \"RE_kwDOIQGLK84K6lKk\",\n    \"tag_name\": \"verkle@v0.0.7-alpha-8\",\n    \"target_commitish\": \"main\",\n    \"name\": \"verkle@v0.0.7-alpha-8\",\n    \"draft\": false,\n    \"prerelease\": true,\n    \"created_at\": \"2024-11-01T14:13:01Z\",\n    \"published_at\": \"2024-11-01T16:12:50Z\",\n    \"assets\": [\n      {\n        \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/assets/203411146\",\n        \"id\": 203411146,\n        \"node_id\": \"RA_kwDOIQGLK84MH87K\",\n        \"name\": \"fixtures_verkle-conversion-stride-0.tar.gz\",\n        \"label\": \"\",\n        \"uploader\": {\n          \"login\": \"github-actions[bot]\",\n          \"id\": 41898282,\n          \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n          \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n          \"html_url\": \"https://github.com/apps/github-actions\",\n          \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n          \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n          \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n          \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n          \"type\": \"Bot\",\n          \"user_view_type\": \"public\",\n          \"site_admin\": false\n        },\n        \"content_type\": \"application/gzip\",\n        \"state\": \"uploaded\",\n        \"size\": 380886,\n        \"download_count\": 3,\n        \"created_at\": \"2024-11-01T16:11:16Z\",\n        \"updated_at\": \"2024-11-01T16:11:16Z\",\n        \"browser_download_url\": \"https://github.com/ethereum/execution-spec-tests/releases/download/verkle%40v0.0.7-alpha-8/fixtures_verkle-conversion-stride-0.tar.gz\"\n      },\n      {\n        \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/assets/203411145\",\n        \"id\": 203411145,\n        \"node_id\": \"RA_kwDOIQGLK84MH87J\",\n        \"name\": \"fixtures_verkle-genesis.tar.gz\",\n        \"label\": \"\",\n        \"uploader\": {\n          \"login\": \"github-actions[bot]\",\n          \"id\": 41898282,\n          \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n          \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n          \"html_url\": \"https://github.com/apps/github-actions\",\n          \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n          \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n          \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n          \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n          \"type\": \"Bot\",\n          \"user_view_type\": \"public\",\n          \"site_admin\": false\n        },\n        \"content_type\": \"application/gzip\",\n        \"state\": \"uploaded\",\n        \"size\": 3158358,\n        \"download_count\": 9,\n        \"created_at\": \"2024-11-01T16:11:16Z\",\n        \"updated_at\": \"2024-11-01T16:11:16Z\",\n        \"browser_download_url\": \"https://github.com/ethereum/execution-spec-tests/releases/download/verkle%40v0.0.7-alpha-8/fixtures_verkle-genesis.tar.gz\"\n      }\n    ],\n    \"tarball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/tarball/verkle@v0.0.7-alpha-8\",\n    \"zipball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/zipball/verkle@v0.0.7-alpha-8\",\n    \"body\": \"## What's Changed\\r\\n* feat(verkle): add parent root to witness by @spencer-tb in https://github.com/ethereum/execution-spec-tests/pull/910\\r\\n* verkle: parent state root field renaming by @jsign in https://github.com/ethereum/execution-spec-tests/pull/934\\r\\n\\r\\n\\r\\n**Full Changelog**: https://github.com/ethereum/execution-spec-tests/compare/verkle@v0.0.6...verkle@v0.0.7-alpha-8\",\n    \"mentions_count\": 2\n  },\n  {\n    \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/183375211\",\n    \"assets_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/183375211/assets\",\n    \"upload_url\": \"https://uploads.github.com/repos/ethereum/execution-spec-tests/releases/183375211/assets{?name,label}\",\n    \"html_url\": \"https://github.com/ethereum/execution-spec-tests/releases/tag/verkle%40v0.0.7\",\n    \"id\": 183375211,\n    \"author\": {\n      \"login\": \"github-actions[bot]\",\n      \"id\": 41898282,\n      \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n      \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n      \"html_url\": \"https://github.com/apps/github-actions\",\n      \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n      \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n      \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n      \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n      \"type\": \"Bot\",\n      \"user_view_type\": \"public\",\n      \"site_admin\": false\n    },\n    \"node_id\": \"RE_kwDOIQGLK84K7hVr\",\n    \"tag_name\": \"verkle@v0.0.7\",\n    \"target_commitish\": \"main\",\n    \"name\": \"verkle@v0.0.7\",\n    \"draft\": false,\n    \"prerelease\": true,\n    \"created_at\": \"2024-11-01T16:27:53Z\",\n    \"published_at\": \"2024-11-04T13:53:03Z\",\n    \"assets\": [\n      {\n        \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/assets/204012832\",\n        \"id\": 204012832,\n        \"node_id\": \"RA_kwDOIQGLK84MKP0g\",\n        \"name\": \"fixtures_verkle-conversion-stride-0.tar.gz\",\n        \"label\": \"\",\n        \"uploader\": {\n          \"login\": \"github-actions[bot]\",\n          \"id\": 41898282,\n          \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n          \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n          \"html_url\": \"https://github.com/apps/github-actions\",\n          \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n          \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n          \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n          \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n          \"type\": \"Bot\",\n          \"user_view_type\": \"public\",\n          \"site_admin\": false\n        },\n        \"content_type\": \"application/gzip\",\n        \"state\": \"uploaded\",\n        \"size\": 380554,\n        \"download_count\": 8,\n        \"created_at\": \"2024-11-04T13:47:54Z\",\n        \"updated_at\": \"2024-11-04T13:47:54Z\",\n        \"browser_download_url\": \"https://github.com/ethereum/execution-spec-tests/releases/download/verkle%40v0.0.7/fixtures_verkle-conversion-stride-0.tar.gz\"\n      },\n      {\n        \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/assets/204012833\",\n        \"id\": 204012833,\n        \"node_id\": \"RA_kwDOIQGLK84MKP0h\",\n        \"name\": \"fixtures_verkle-genesis.tar.gz\",\n        \"label\": \"\",\n        \"uploader\": {\n          \"login\": \"github-actions[bot]\",\n          \"id\": 41898282,\n          \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n          \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n          \"html_url\": \"https://github.com/apps/github-actions\",\n          \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n          \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n          \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n          \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n          \"type\": \"Bot\",\n          \"user_view_type\": \"public\",\n          \"site_admin\": false\n        },\n        \"content_type\": \"application/gzip\",\n        \"state\": \"uploaded\",\n        \"size\": 3157499,\n        \"download_count\": 9,\n        \"created_at\": \"2024-11-04T13:47:54Z\",\n        \"updated_at\": \"2024-11-04T13:47:54Z\",\n        \"browser_download_url\": \"https://github.com/ethereum/execution-spec-tests/releases/download/verkle%40v0.0.7/fixtures_verkle-genesis.tar.gz\"\n      }\n    ],\n    \"tarball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/tarball/verkle@v0.0.7\",\n    \"zipball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/zipball/verkle@v0.0.7\",\n    \"body\": \"⚠️ **Note these tests are up to date with the latest devnet-7 spec!**\\r\\n\\r\\nA reasonable order of steps for client teams to start running tests can be found below, starting with the genesis tests from: `fixtures_verkle-genesis.tar.gz`\\r\\n- Run the EIP-6800 tests for a good first check, `fixtures/verkle/eip6800_genesis_verkle_tree/` within the extracted the fixture genesis tar.\\r\\n  - Followed by EIP-4762 tests: `fixtures/verkle/eip4762_verkle_gas_witness/`.\\r\\n  - And EIP-7709 tests: `fixtures/verkle/eip7709_blockhash_witness/`.\\r\\n- Run \\\"backfilled\\\" tests, all previous fork tests filled for Verkle, i.e all tests excluding`fixtures/verkle/*`.\\r\\n- (Optional) Run the `fixtures_verkle-conversion-stride-0.tar.gz` tests, as these contain basic pre-fork tests to make sure nothing is broken on the fork before Verkle.\\r\\n\\r\\nChanges:\\r\\n* The `parentStateRoot` field was added to the witness.\\r\\n* In backported tests, if the test is running in Overlay Tree mode, we won't generate a witness (since it doesn't make sense).\\r\\n* **Important note:** the backported tests under `tests/cancun/eip6780_selfdestruct` might fail for some clients. This is expected since there's an ongoing discussion on how to resolve a spec issue.\\r\\n\\r\\n## 🐘 Verkle Genesis Test Fixtures\\r\\n\\r\\nContains verkle specific test vectors from https://github.com/ethereum/execution-spec-tests/pull/659 including all existing EEST test cases filled for a verkle configured fork. Note these tests assume the MPT to VKT conversion has completed where we start at the Verkle fork.\\r\\n\\r\\nPlease use `fixtures_verkle-genesis.tar.gz`!\\r\\n\\r\\n### Generating Genesis Fixtures\\r\\n\\r\\nUsing the geth evm binary from this [commit](https://github.com/gballet/go-ethereum/commit/a00d50aa1590d7bed660723e2aa2fc7e58d64559), fill with the following command:\\r\\n```\\r\\nfill --fork Verkle --evm-bin=<path_to_geth_evm> -n auto -m blockchain_test\\r\\n```\\r\\n\\r\\n## 🔁 Verkle Conversion Test Fixtures - 0 Stride\\r\\n\\r\\nThese aim to verify a basic fork transition from Shanghai to Verkle. 0 stride denotes that the initial MPT remains frozen. Thus the MPT is not being converted to a VKT within these tests. The intention is to check that **only blocks after the transition** update the VKT, isolating VKT fork transition issues without touching MPT stride conversion logic.\\r\\n\\r\\nTest cases additionally include Shanghai genesis tests to assert that the fork before Verkle is not broken.\\r\\n\\r\\nPlease use `fixtures_verkle-conversion-stride-0.tar.gz`!\\r\\n\\r\\n### Generating Conversion Fixtures\\r\\n\\r\\nUsing the geth evm binary from this [commit](https://github.com/gballet/go-ethereum/commit/a00d50aa1590d7bed660723e2aa2fc7e58d64559), fill with the following command:\\r\\n```\\r\\nfill --from Shanghai --until EIP6800Transition --evm-bin=<path_to_geth_evm> -n auto -m blockchain_test\\r\\n```\"\n  },\n  {\n    \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/181327020\",\n    \"assets_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/181327020/assets\",\n    \"upload_url\": \"https://uploads.github.com/repos/ethereum/execution-spec-tests/releases/181327020/assets{?name,label}\",\n    \"html_url\": \"https://github.com/ethereum/execution-spec-tests/releases/tag/verkle%40v0.0.6\",\n    \"id\": 181327020,\n    \"author\": {\n      \"login\": \"github-actions[bot]\",\n      \"id\": 41898282,\n      \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n      \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n      \"html_url\": \"https://github.com/apps/github-actions\",\n      \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n      \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n      \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n      \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n      \"type\": \"Bot\",\n      \"user_view_type\": \"public\",\n      \"site_admin\": false\n    },\n    \"node_id\": \"RE_kwDOIQGLK84KztSs\",\n    \"tag_name\": \"verkle@v0.0.6\",\n    \"target_commitish\": \"main\",\n    \"name\": \"verkle@v0.0.6\",\n    \"draft\": false,\n    \"prerelease\": true,\n    \"created_at\": \"2024-10-21T17:37:28Z\",\n    \"published_at\": \"2024-10-22T22:29:59Z\",\n    \"assets\": [\n      {\n        \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/assets/201018032\",\n        \"id\": 201018032,\n        \"node_id\": \"RA_kwDOIQGLK84L-0qw\",\n        \"name\": \"fixtures_verkle-conversion-stride-0.tar.gz\",\n        \"label\": \"\",\n        \"uploader\": {\n          \"login\": \"github-actions[bot]\",\n          \"id\": 41898282,\n          \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n          \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n          \"html_url\": \"https://github.com/apps/github-actions\",\n          \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n          \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n          \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n          \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n          \"type\": \"Bot\",\n          \"user_view_type\": \"public\",\n          \"site_admin\": false\n        },\n        \"content_type\": \"application/gzip\",\n        \"state\": \"uploaded\",\n        \"size\": 859314,\n        \"download_count\": 12,\n        \"created_at\": \"2024-10-22T22:24:59Z\",\n        \"updated_at\": \"2024-10-22T22:24:59Z\",\n        \"browser_download_url\": \"https://github.com/ethereum/execution-spec-tests/releases/download/verkle%40v0.0.6/fixtures_verkle-conversion-stride-0.tar.gz\"\n      },\n      {\n        \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/assets/201018029\",\n        \"id\": 201018029,\n        \"node_id\": \"RA_kwDOIQGLK84L-0qt\",\n        \"name\": \"fixtures_verkle-genesis.tar.gz\",\n        \"label\": \"\",\n        \"uploader\": {\n          \"login\": \"github-actions[bot]\",\n          \"id\": 41898282,\n          \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n          \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n          \"html_url\": \"https://github.com/apps/github-actions\",\n          \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n          \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n          \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n          \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n          \"type\": \"Bot\",\n          \"user_view_type\": \"public\",\n          \"site_admin\": false\n        },\n        \"content_type\": \"application/gzip\",\n        \"state\": \"uploaded\",\n        \"size\": 3140809,\n        \"download_count\": 17,\n        \"created_at\": \"2024-10-22T22:24:59Z\",\n        \"updated_at\": \"2024-10-22T22:24:59Z\",\n        \"browser_download_url\": \"https://github.com/ethereum/execution-spec-tests/releases/download/verkle%40v0.0.6/fixtures_verkle-genesis.tar.gz\"\n      }\n    ],\n    \"tarball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/tarball/verkle@v0.0.6\",\n    \"zipball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/zipball/verkle@v0.0.6\",\n    \"body\": \"⚠️ **Note these tests are up to date with the latest devnet-7 spec!**\\r\\n\\r\\n**This release is filled with a specific geth branch [`gballet/jsign-witness-fix`](https://github.com/gballet/go-ethereum/pull/495) aligned with devnet-7. It contains updates and fixes for the past genesis tests due to the addition of witness checks within the testing framework. These verify the correct behaviour of the witness for specific test cases if defined.**\\r\\n\\r\\nA reasonable order of steps for client teams to start running tests can be found below, starting with the genesis tests from: `fixtures_verkle-genesis.tar.gz`\\r\\n- Run the EIP-6800 tests for a good first check, `fixtures/verkle/eip6800_genesis_verkle_tree/` within the extracted the fixture genesis tar.\\r\\n  - Followed by EIP-4762 tests: `fixtures/verkle/eip4762_verkle_gas_witness/`.\\r\\n  - And EIP-7709 tests: `fixtures/verkle/eip7709_blockhash_witness/`.\\r\\n- Run \\\"backfilled\\\" tests, all previous fork tests filled for Verkle, i.e all tests excluding`fixtures/verkle/*`.\\r\\n- (Optional) Run the `fixtures_verkle-conversion-stride-0.tar.gz` tests, as these contain basic pre-fork tests to make sure nothing is broken on the fork before Verkle.\\r\\n\\r\\nChanges:\\r\\n* A SELFDESTRUCT test targeting insufficient gas case was improved.\\r\\n* There was a bug in Geth that generated incorrect filling for backported tests (i.e: Shanghai ones).\\r\\n\\r\\n## 🐘 Verkle Genesis Test Fixtures\\r\\n\\r\\nContains verkle specific test vectors from https://github.com/ethereum/execution-spec-tests/pull/659 including all existing EEST test cases filled for a verkle configured fork. Note these tests assume the MPT to VKT conversion has completed where we start at the Verkle fork.\\r\\n\\r\\nPlease use `fixtures_verkle-genesis.tar.gz`!\\r\\n\\r\\n### Generating Genesis Fixtures\\r\\n\\r\\nUsing the geth evm binary from this [commit](https://github.com/gballet/go-ethereum/commit/a00d50aa1590d7bed660723e2aa2fc7e58d64559), fill with the following command:\\r\\n```\\r\\nfill --fork Verkle --evm-bin=<path_to_geth_evm> -n auto -m blockchain_test\\r\\n```\\r\\n\\r\\n## 🔁 Verkle Conversion Test Fixtures - 0 Stride\\r\\n\\r\\nThese aim to verify a basic fork transition from Shanghai to Verkle. 0 stride denotes that the initial MPT remains frozen. Thus the MPT is not being converted to a VKT within these tests. The intention is to check that **only blocks after the transition** update the VKT, isolating VKT fork transition issues without touching MPT stride conversion logic.\\r\\n\\r\\nTest cases additionally include Shanghai genesis tests to assert that the fork before Verkle is not broken.\\r\\n\\r\\nPlease use `fixtures_verkle-conversion-stride-0.tar.gz`!\\r\\n\\r\\n### Generating Conversion Fixtures\\r\\n\\r\\nUsing the geth evm binary from this [commit](https://github.com/gballet/go-ethereum/commit/a00d50aa1590d7bed660723e2aa2fc7e58d64559), fill with the following command:\\r\\n```\\r\\nfill --from Shanghai --until EIP6800Transition --evm-bin=<path_to_geth_evm> -n auto -m blockchain_test\\r\\n```\\r\\n\"\n  },\n  {\n    \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/180476466\",\n    \"assets_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/180476466/assets\",\n    \"upload_url\": \"https://uploads.github.com/repos/ethereum/execution-spec-tests/releases/180476466/assets{?name,label}\",\n    \"html_url\": \"https://github.com/ethereum/execution-spec-tests/releases/tag/verkle%40v0.0.5\",\n    \"id\": 180476466,\n    \"author\": {\n      \"login\": \"github-actions[bot]\",\n      \"id\": 41898282,\n      \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n      \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n      \"html_url\": \"https://github.com/apps/github-actions\",\n      \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n      \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n      \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n      \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n      \"type\": \"Bot\",\n      \"user_view_type\": \"public\",\n      \"site_admin\": false\n    },\n    \"node_id\": \"RE_kwDOIQGLK84Kwdoy\",\n    \"tag_name\": \"verkle@v0.0.5\",\n    \"target_commitish\": \"main\",\n    \"name\": \"verkle@v0.0.5\",\n    \"draft\": false,\n    \"prerelease\": true,\n    \"created_at\": \"2024-10-16T13:14:57Z\",\n    \"published_at\": \"2024-10-17T15:11:23Z\",\n    \"assets\": [\n      {\n        \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/assets/199780731\",\n        \"id\": 199780731,\n        \"node_id\": \"RA_kwDOIQGLK84L6Gl7\",\n        \"name\": \"fixtures_verkle-conversion-stride-0.tar.gz\",\n        \"label\": \"\",\n        \"uploader\": {\n          \"login\": \"github-actions[bot]\",\n          \"id\": 41898282,\n          \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n          \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n          \"html_url\": \"https://github.com/apps/github-actions\",\n          \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n          \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n          \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n          \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n          \"type\": \"Bot\",\n          \"user_view_type\": \"public\",\n          \"site_admin\": false\n        },\n        \"content_type\": \"application/gzip\",\n        \"state\": \"uploaded\",\n        \"size\": 859332,\n        \"download_count\": 11,\n        \"created_at\": \"2024-10-17T14:55:52Z\",\n        \"updated_at\": \"2024-10-17T14:55:52Z\",\n        \"browser_download_url\": \"https://github.com/ethereum/execution-spec-tests/releases/download/verkle%40v0.0.5/fixtures_verkle-conversion-stride-0.tar.gz\"\n      },\n      {\n        \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/assets/199780732\",\n        \"id\": 199780732,\n        \"node_id\": \"RA_kwDOIQGLK84L6Gl8\",\n        \"name\": \"fixtures_verkle-genesis.tar.gz\",\n        \"label\": \"\",\n        \"uploader\": {\n          \"login\": \"github-actions[bot]\",\n          \"id\": 41898282,\n          \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n          \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n          \"html_url\": \"https://github.com/apps/github-actions\",\n          \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n          \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n          \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n          \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n          \"type\": \"Bot\",\n          \"user_view_type\": \"public\",\n          \"site_admin\": false\n        },\n        \"content_type\": \"application/gzip\",\n        \"state\": \"uploaded\",\n        \"size\": 3140759,\n        \"download_count\": 45,\n        \"created_at\": \"2024-10-17T14:55:52Z\",\n        \"updated_at\": \"2024-10-17T14:55:52Z\",\n        \"browser_download_url\": \"https://github.com/ethereum/execution-spec-tests/releases/download/verkle%40v0.0.5/fixtures_verkle-genesis.tar.gz\"\n      }\n    ],\n    \"tarball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/tarball/verkle@v0.0.5\",\n    \"zipball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/zipball/verkle@v0.0.5\",\n    \"body\": \"⚠️ **Note these tests are up to date with the latest devnet-7 spec!**\\r\\n\\r\\n**This release is filled with a specific geth branch [`gballet/jsign-witness-fix`](https://github.com/gballet/go-ethereum/pull/495) aligned with devnet-7. It contains updates and fixes for the past genesis tests due to the addition of witness checks within the testing framework. These verify the correct behaviour of the witness for specific test cases if defined.**\\r\\n\\r\\nA reasonable order of steps for client teams to start running tests can be found below, starting with the genesis tests from: `fixtures_verkle-genesis.tar.gz`\\r\\n- Run the EIP-6800 tests for a good first check, `fixtures/verkle/eip6800_genesis_verkle_tree/` within the extracted the fixture genesis tar.\\r\\n  - Followed by EIP-4762 tests: `fixtures/verkle/eip4762_verkle_gas_witness/`.\\r\\n  - And EIP-7709 tests: `fixtures/verkle/eip7709_blockhash_witness/`.\\r\\n- Run \\\"backfilled\\\" tests, all previous fork tests filled for Verkle, i.e all tests excluding`fixtures/verkle/*`.\\r\\n- (Optional) Run the `fixtures_verkle-conversion-stride-0.tar.gz` tests, as these contain basic pre-fork tests to make sure nothing is broken on the fork before Verkle.\\r\\n\\r\\nChanges:\\r\\n* new(tests): eip-4762 *CALL with insufficient gas by @jsign in https://github.com/ethereum/execution-spec-tests/pull/867\\r\\n* feat(verkle): add two-way exhaustive witness checks by @spencer-tb in https://github.com/ethereum/execution-spec-tests/pull/879\\r\\n* eip4762: enable calls with insufficient gas tests again by @jsign in https://github.com/ethereum/execution-spec-tests/pull/880\\r\\n* new(tests): eip-4762 contract creations with insufficient gas by @jsign in https://github.com/ethereum/execution-spec-tests/pull/873\\r\\n* new(tests): eip-4762 EXTCODEHASH with insufficient gas by @jsign in https://github.com/ethereum/execution-spec-tests/pull/874\\r\\n* new(tests): eip-4762 (EXT)CODECOPY with insufficient gas by @jsign in https://github.com/ethereum/execution-spec-tests/pull/868\\r\\n* new(tests): eip-4762 SELFDESTRUCT with insufficient gas by @jsign in https://github.com/ethereum/execution-spec-tests/pull/875\\r\\n* eip4762: SSTORE/SLOAD insufficient gas tests by @jsign in https://github.com/ethereum/execution-spec-tests/pull/884\\r\\n* Filling fixes by @jsign in https://github.com/ethereum/execution-spec-tests/pull/885\\r\\n**Full Changelog**: https://github.com/ethereum/execution-spec-tests/compare/verkle@v0.0.3...verkle@v0.0.4\\r\\n\\r\\n## 🐘 Verkle Genesis Test Fixtures\\r\\n\\r\\nContains verkle specific test vectors from https://github.com/ethereum/execution-spec-tests/pull/659 including all existing EEST test cases filled for a verkle configured fork. Note these tests assume the MPT to VKT conversion has completed where we start at the Verkle fork.\\r\\n\\r\\nPlease use `fixtures_verkle-genesis.tar.gz`!\\r\\n\\r\\n### Generating Genesis Fixtures\\r\\n\\r\\nUsing the geth evm binary from this [commit](https://github.com/gballet/go-ethereum/commit/a00d50aa1590d7bed660723e2aa2fc7e58d64559), fill with the following command:\\r\\n```\\r\\nfill --fork Verkle --evm-bin=<path_to_geth_evm> -n auto -m blockchain_test\\r\\n```\\r\\n\\r\\n## 🔁 Verkle Conversion Test Fixtures - 0 Stride\\r\\n\\r\\nThese aim to verify a basic fork transition from Shanghai to Verkle. 0 stride denotes that the initial MPT remains frozen. Thus the MPT is not being converted to a VKT within these tests. The intention is to check that **only blocks after the transition** update the VKT, isolating VKT fork transition issues without touching MPT stride conversion logic.\\r\\n\\r\\nTest cases additionally include Shanghai genesis tests to assert that the fork before Verkle is not broken.\\r\\n\\r\\nPlease use `fixtures_verkle-conversion-stride-0.tar.gz`!\\r\\n\\r\\n### Generating Conversion Fixtures\\r\\n\\r\\nUsing the geth evm binary from this [commit](https://github.com/gballet/go-ethereum/commit/a00d50aa1590d7bed660723e2aa2fc7e58d64559), fill with the following command:\\r\\n```\\r\\nfill --from Shanghai --until EIP6800Transition --evm-bin=<path_to_geth_evm> -n auto -m blockchain_test\\r\\n```\\r\\n\",\n    \"mentions_count\": 2\n  },\n  {\n    \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/180106863\",\n    \"assets_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/180106863/assets\",\n    \"upload_url\": \"https://uploads.github.com/repos/ethereum/execution-spec-tests/releases/180106863/assets{?name,label}\",\n    \"html_url\": \"https://github.com/ethereum/execution-spec-tests/releases/tag/eip7692%40v2.0.0\",\n    \"id\": 180106863,\n    \"author\": {\n      \"login\": \"github-actions[bot]\",\n      \"id\": 41898282,\n      \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n      \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n      \"html_url\": \"https://github.com/apps/github-actions\",\n      \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n      \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n      \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n      \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n      \"type\": \"Bot\",\n      \"user_view_type\": \"public\",\n      \"site_admin\": false\n    },\n    \"node_id\": \"RE_kwDOIQGLK84KvDZv\",\n    \"tag_name\": \"eip7692@v2.0.0\",\n    \"target_commitish\": \"main\",\n    \"name\": \"eip7692@v2.0.0\",\n    \"draft\": false,\n    \"prerelease\": true,\n    \"created_at\": \"2024-10-15T20:35:40Z\",\n    \"published_at\": \"2024-10-15T21:34:53Z\",\n    \"assets\": [\n      {\n        \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/assets/199345084\",\n        \"id\": 199345084,\n        \"node_id\": \"RA_kwDOIQGLK84L4cO8\",\n        \"name\": \"fixtures_eip7692-osaka.tar.gz\",\n        \"label\": \"\",\n        \"uploader\": {\n          \"login\": \"github-actions[bot]\",\n          \"id\": 41898282,\n          \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n          \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n          \"html_url\": \"https://github.com/apps/github-actions\",\n          \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n          \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n          \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n          \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n          \"type\": \"Bot\",\n          \"user_view_type\": \"public\",\n          \"site_admin\": false\n        },\n        \"content_type\": \"application/gzip\",\n        \"state\": \"uploaded\",\n        \"size\": 29598138,\n        \"download_count\": 85,\n        \"created_at\": \"2024-10-15T21:01:23Z\",\n        \"updated_at\": \"2024-10-15T21:01:24Z\",\n        \"browser_download_url\": \"https://github.com/ethereum/execution-spec-tests/releases/download/eip7692%40v2.0.0/fixtures_eip7692-osaka.tar.gz\"\n      },\n      {\n        \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/assets/199345083\",\n        \"id\": 199345083,\n        \"node_id\": \"RA_kwDOIQGLK84L4cO7\",\n        \"name\": \"fixtures_eip7692.tar.gz\",\n        \"label\": \"\",\n        \"uploader\": {\n          \"login\": \"github-actions[bot]\",\n          \"id\": 41898282,\n          \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n          \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n          \"html_url\": \"https://github.com/apps/github-actions\",\n          \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n          \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n          \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n          \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n          \"type\": \"Bot\",\n          \"user_view_type\": \"public\",\n          \"site_admin\": false\n        },\n        \"content_type\": \"application/gzip\",\n        \"state\": \"uploaded\",\n        \"size\": 3005939,\n        \"download_count\": 5,\n        \"created_at\": \"2024-10-15T21:01:23Z\",\n        \"updated_at\": \"2024-10-15T21:01:24Z\",\n        \"browser_download_url\": \"https://github.com/ethereum/execution-spec-tests/releases/download/eip7692%40v2.0.0/fixtures_eip7692.tar.gz\"\n      }\n    ],\n    \"tarball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/tarball/eip7692@v2.0.0\",\n    \"zipball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/zipball/eip7692@v2.0.0\",\n    \"body\": \"First EIP-7692 release filled for the `Osaka` fork.\\r\\n\\r\\nFilled tests in `tests/prague` and `tests/osaka` folders.\\r\\n\\r\\nPrague fork follows **devnet-3 specification** (see https://github.com/ethereum/execution-spec-tests/releases/tag/pectra-devnet-3%40v1.5.0 for details).\\r\\n\\r\\n## What's Changed (Only EOF-relevant  changes listed)\\r\\n* fix(tests): fix TSTORE EOF variant test by @shemnon in https://github.com/ethereum/execution-spec-tests/pull/831\\r\\n* new(tests): EOF - EIP-6206: clarify \\\"non-returning instruction\\\" by @pdobacz in https://github.com/ethereum/execution-spec-tests/pull/837\\r\\n* feat(docs,tests): add links to the online test case docs in the EOF tracker by @danceratopz in https://github.com/ethereum/execution-spec-tests/pull/838\\r\\n* refactor(tests): unify EOF return code constants by @shemnon in https://github.com/ethereum/execution-spec-tests/pull/834\\r\\n* new(tests): EOF validation tests of stack height with double RJUMPI by @chfast in https://github.com/ethereum/execution-spec-tests/pull/851\\r\\n* new(tests): EOF - EIP-4750: unreachable code sections by @chfast in https://github.com/ethereum/execution-spec-tests/pull/856\\r\\n* fix(fw): EOF - Fix EXCHANGE's data_portion_length by @pdobacz in https://github.com/ethereum/execution-spec-tests/pull/849\\r\\n* new(tests): EIP-7069 and EIP-7620 - failures and context vars by @pdobacz in https://github.com/ethereum/execution-spec-tests/pull/836\\r\\n* feat(forks,tests): Osaka by @marioevz in https://github.com/ethereum/execution-spec-tests/pull/869\\r\\n* fix(github): Fix `eip7692-osaka` to also fill `tests/prague` by @marioevz in https://github.com/ethereum/execution-spec-tests/pull/897\\r\\n\\r\\n**Full Changelog**: https://github.com/ethereum/execution-spec-tests/compare/eip7692@v1.1.1...eip7692@v2.0.0\",\n    \"mentions_count\": 5\n  },\n  {\n    \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/179885084\",\n    \"assets_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/179885084/assets\",\n    \"upload_url\": \"https://uploads.github.com/repos/ethereum/execution-spec-tests/releases/179885084/assets{?name,label}\",\n    \"html_url\": \"https://github.com/ethereum/execution-spec-tests/releases/tag/pectra-devnet-4%40v1.0.1\",\n    \"id\": 179885084,\n    \"author\": {\n      \"login\": \"github-actions[bot]\",\n      \"id\": 41898282,\n      \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n      \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n      \"html_url\": \"https://github.com/apps/github-actions\",\n      \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n      \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n      \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n      \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n      \"type\": \"Bot\",\n      \"user_view_type\": \"public\",\n      \"site_admin\": false\n    },\n    \"node_id\": \"RE_kwDOIQGLK84KuNQc\",\n    \"tag_name\": \"pectra-devnet-4@v1.0.1\",\n    \"target_commitish\": \"main\",\n    \"name\": \"pectra-devnet-4@v1.0.1\",\n    \"draft\": false,\n    \"prerelease\": true,\n    \"created_at\": \"2024-10-14T17:38:34Z\",\n    \"published_at\": \"2024-10-14T20:32:44Z\",\n    \"assets\": [\n      {\n        \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/assets/199069956\",\n        \"id\": 199069956,\n        \"node_id\": \"RA_kwDOIQGLK84L3ZEE\",\n        \"name\": \"fixtures_pectra-devnet-4.tar.gz\",\n        \"label\": \"\",\n        \"uploader\": {\n          \"login\": \"github-actions[bot]\",\n          \"id\": 41898282,\n          \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n          \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n          \"html_url\": \"https://github.com/apps/github-actions\",\n          \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n          \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n          \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n          \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n          \"type\": \"Bot\",\n          \"user_view_type\": \"public\",\n          \"site_admin\": false\n        },\n        \"content_type\": \"application/gzip\",\n        \"state\": \"uploaded\",\n        \"size\": 20080350,\n        \"download_count\": 5047,\n        \"created_at\": \"2024-10-14T19:47:27Z\",\n        \"updated_at\": \"2024-10-14T19:47:28Z\",\n        \"browser_download_url\": \"https://github.com/ethereum/execution-spec-tests/releases/download/pectra-devnet-4%40v1.0.1/fixtures_pectra-devnet-4.tar.gz\"\n      }\n    ],\n    \"tarball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/tarball/pectra-devnet-4@v1.0.1\",\n    \"zipball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/zipball/pectra-devnet-4@v1.0.1\",\n    \"body\": \"Second EEST pre-release for Pectra Devnet-4. Fixes a small issue on some negative tests that override the expected requests with an empty requests hash but the block does indeed contain transactions that trigger at least one request.\\r\\n\\r\\nFor a full description of the fixtures included please check [pectra-devnet-4@v1.0.0](https://github.com/ethereum/execution-spec-tests/releases/tag/pectra-devnet-4%40v1.0.0) release notes.\\r\\n\\r\\n**Full Changelog**: https://github.com/ethereum/execution-spec-tests/compare/pectra-devnet-4@v1.0.0...pectra-devnet-4@v1.0.1\\r\\n\\r\\n**Test Case Documentation**: https://eest.ethereum.org/pectra-devnet-4@v1.0.1/tests/prague/\",\n    \"reactions\": {\n      \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/179885084/reactions\",\n      \"total_count\": 2,\n      \"+1\": 0,\n      \"-1\": 0,\n      \"laugh\": 0,\n      \"hooray\": 0,\n      \"confused\": 0,\n      \"heart\": 0,\n      \"rocket\": 2,\n      \"eyes\": 0\n    }\n  },\n  {\n    \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/179659615\",\n    \"assets_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/179659615/assets\",\n    \"upload_url\": \"https://uploads.github.com/repos/ethereum/execution-spec-tests/releases/179659615/assets{?name,label}\",\n    \"html_url\": \"https://github.com/ethereum/execution-spec-tests/releases/tag/pectra-devnet-4%40v1.0.0\",\n    \"id\": 179659615,\n    \"author\": {\n      \"login\": \"github-actions[bot]\",\n      \"id\": 41898282,\n      \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n      \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n      \"html_url\": \"https://github.com/apps/github-actions\",\n      \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n      \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n      \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n      \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n      \"type\": \"Bot\",\n      \"user_view_type\": \"public\",\n      \"site_admin\": false\n    },\n    \"node_id\": \"RE_kwDOIQGLK84KtWNf\",\n    \"tag_name\": \"pectra-devnet-4@v1.0.0\",\n    \"target_commitish\": \"main\",\n    \"name\": \"pectra-devnet-4@v1.0.0\",\n    \"draft\": false,\n    \"prerelease\": true,\n    \"created_at\": \"2024-10-13T14:08:37Z\",\n    \"published_at\": \"2024-10-14T04:00:43Z\",\n    \"assets\": [\n      {\n        \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/assets/198798555\",\n        \"id\": 198798555,\n        \"node_id\": \"RA_kwDOIQGLK84L2Wzb\",\n        \"name\": \"fixtures_pectra-devnet-4.tar.gz\",\n        \"label\": \"\",\n        \"uploader\": {\n          \"login\": \"github-actions[bot]\",\n          \"id\": 41898282,\n          \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n          \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n          \"html_url\": \"https://github.com/apps/github-actions\",\n          \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n          \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n          \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n          \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n          \"type\": \"Bot\",\n          \"user_view_type\": \"public\",\n          \"site_admin\": false\n        },\n        \"content_type\": \"application/gzip\",\n        \"state\": \"uploaded\",\n        \"size\": 20080066,\n        \"download_count\": 11,\n        \"created_at\": \"2024-10-13T16:16:57Z\",\n        \"updated_at\": \"2024-10-13T16:16:58Z\",\n        \"browser_download_url\": \"https://github.com/ethereum/execution-spec-tests/releases/download/pectra-devnet-4%40v1.0.0/fixtures_pectra-devnet-4.tar.gz\"\n      }\n    ],\n    \"tarball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/tarball/pectra-devnet-4@v1.0.0\",\n    \"zipball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/zipball/pectra-devnet-4@v1.0.0\",\n    \"body\": \"First EEST pre-release for Pectra Devnet-4.\\r\\n\\r\\n## Included Specification PRs\\r\\n\\r\\n- [x] https://github.com/ethereum/EIPs/pull/8889\\r\\n- [x] https://github.com/ethereum/EIPs/pull/8890\\r\\n- [x] https://github.com/lightclient/sys-asm/pull/20\\r\\n- [x] https://github.com/ethereum/EIPs/pull/8845\\r\\n- [x] https://github.com/ethereum/EIPs/pull/8929\\r\\n- [x] https://github.com/ethereum/EIPs/pull/8948\\r\\n- [x] https://github.com/ethereum/EIPs/pull/8950\\r\\n- [x] https://github.com/ethereum/EIPs/pull/8857\\r\\n- [x] https://github.com/ethereum/EIPs/pull/8856\\r\\n- [x] https://github.com/ethereum/EIPs/pull/8855\\r\\n- [x] https://github.com/ethereum/EIPs/pull/8854\\r\\n- [x] https://github.com/ethereum/execution-apis/pull/591\\r\\n- [x] https://github.com/ethereum/EIPs/pull/8934 (Also updates EIP-7251)\\r\\n- [x] https://github.com/ethereum/EIPs/pull/8938\\r\\n\\r\\n## New Tests\\r\\n\\r\\n- EIP-7685: Invalid request type in block\\r\\n- EIP-7002, EIP-7251: Add tests for system contracts execution pre-fork.\\r\\n- EIP-7702: Add deploy delegation-like contract test\\r\\n\\r\\n## Breaking Changes\\r\\n\\r\\n#### Blockchain Fixtures Changes\\r\\n\\r\\n- `blockHeader.requests_root` field has been renamed to `requests_hash` in the `blockchain_test` fixture type.\\r\\n- `FixtureBlockBase` and `FixtureExecutionPayload` fields `deposit_requests`, `withdrawal_requests` and `consolidation_requests` are replaced by a single field `requests` which contains a list of hex strings, each element represents the bytes of a flattened request.\\r\\n- Fourth parameter has been added to `FixtureEngineNewPayload.params` which represents the flattened requests.\\r\\n\\r\\n###  Important Notes\\r\\n- EIP-2935 slow tests (256+ blocks) have been skipped.\\r\\n\\r\\n## Included EIP Versions\\r\\n\\r\\n- [EIP-2537: Precompile for BLS12-381 curve operations](https://github.com/ethereum/EIPs/blob/9ccf12ceb3979bf0b31ad82a54a0470845c38c2d/EIPS/eip-2537.md)\\r\\n- [EIP-2935: Save historical block hashes in state](https://github.com/ethereum/EIPs/blob/45587bd019487b0bd59bec941bc0e2d708811cc8/EIPS/eip-2935.md)\\r\\n- [EIP-6110: Supply validator deposits on chain](https://github.com/ethereum/EIPs/blob/f88a24b00b0ad92d5ba640f8427ab5001fc453ad/EIPS/eip-6110.md)\\r\\n- [EIP-7002: Execution layer triggerable exits](https://github.com/ethereum/EIPs/blob/a7fb2260ae2ea39bdd31886832c9e45452d0e76a/EIPS/eip-7002.md)\\r\\n- [EIP-7251: Increase the MAX_EFFECTIVE_BALANCE](https://github.com/ethereum/EIPs/blob/a7fb2260ae2ea39bdd31886832c9e45452d0e76a/EIPS/eip-7251.md)\\r\\n- [EIP-7685: General purpose execution layer requests](https://github.com/ethereum/EIPs/blob/a7fb2260ae2ea39bdd31886832c9e45452d0e76a/EIPS/eip-7685.md)\\r\\n- [EIP-7702: Set EOA account code for one transaction](https://github.com/ethereum/EIPs/blob/a7fb2260ae2ea39bdd31886832c9e45452d0e76a/EIPS/eip-7702.md)\",\n    \"reactions\": {\n      \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/179659615/reactions\",\n      \"total_count\": 1,\n      \"+1\": 0,\n      \"-1\": 0,\n      \"laugh\": 0,\n      \"hooray\": 0,\n      \"confused\": 0,\n      \"heart\": 0,\n      \"rocket\": 1,\n      \"eyes\": 0\n    }\n  },\n  {\n    \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/177899690\",\n    \"assets_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/177899690/assets\",\n    \"upload_url\": \"https://uploads.github.com/repos/ethereum/execution-spec-tests/releases/177899690/assets{?name,label}\",\n    \"html_url\": \"https://github.com/ethereum/execution-spec-tests/releases/tag/verkle%40v0.0.4\",\n    \"id\": 177899690,\n    \"author\": {\n      \"login\": \"github-actions[bot]\",\n      \"id\": 41898282,\n      \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n      \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n      \"html_url\": \"https://github.com/apps/github-actions\",\n      \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n      \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n      \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n      \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n      \"type\": \"Bot\",\n      \"user_view_type\": \"public\",\n      \"site_admin\": false\n    },\n    \"node_id\": \"RE_kwDOIQGLK84Kmoiq\",\n    \"tag_name\": \"verkle@v0.0.4\",\n    \"target_commitish\": \"main\",\n    \"name\": \"verkle@v0.0.4\",\n    \"draft\": false,\n    \"prerelease\": true,\n    \"created_at\": \"2024-10-01T19:34:38Z\",\n    \"published_at\": \"2024-10-01T22:30:31Z\",\n    \"assets\": [\n      {\n        \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/assets/196226600\",\n        \"id\": 196226600,\n        \"node_id\": \"RA_kwDOIQGLK84Lsi4o\",\n        \"name\": \"fixtures_verkle-conversion-stride-0.tar.gz\",\n        \"label\": \"\",\n        \"uploader\": {\n          \"login\": \"github-actions[bot]\",\n          \"id\": 41898282,\n          \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n          \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n          \"html_url\": \"https://github.com/apps/github-actions\",\n          \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n          \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n          \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n          \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n          \"type\": \"Bot\",\n          \"user_view_type\": \"public\",\n          \"site_admin\": false\n        },\n        \"content_type\": \"application/gzip\",\n        \"state\": \"uploaded\",\n        \"size\": 850808,\n        \"download_count\": 31,\n        \"created_at\": \"2024-10-01T22:05:30Z\",\n        \"updated_at\": \"2024-10-01T22:05:30Z\",\n        \"browser_download_url\": \"https://github.com/ethereum/execution-spec-tests/releases/download/verkle%40v0.0.4/fixtures_verkle-conversion-stride-0.tar.gz\"\n      },\n      {\n        \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/assets/196226599\",\n        \"id\": 196226599,\n        \"node_id\": \"RA_kwDOIQGLK84Lsi4n\",\n        \"name\": \"fixtures_verkle-genesis.tar.gz\",\n        \"label\": \"\",\n        \"uploader\": {\n          \"login\": \"github-actions[bot]\",\n          \"id\": 41898282,\n          \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n          \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n          \"html_url\": \"https://github.com/apps/github-actions\",\n          \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n          \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n          \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n          \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n          \"type\": \"Bot\",\n          \"user_view_type\": \"public\",\n          \"site_admin\": false\n        },\n        \"content_type\": \"application/gzip\",\n        \"state\": \"uploaded\",\n        \"size\": 3073513,\n        \"download_count\": 37,\n        \"created_at\": \"2024-10-01T22:05:30Z\",\n        \"updated_at\": \"2024-10-01T22:05:30Z\",\n        \"browser_download_url\": \"https://github.com/ethereum/execution-spec-tests/releases/download/verkle%40v0.0.4/fixtures_verkle-genesis.tar.gz\"\n      }\n    ],\n    \"tarball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/tarball/verkle@v0.0.4\",\n    \"zipball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/zipball/verkle@v0.0.4\",\n    \"body\": \"⚠️ **Note these tests are up to date with the latest devnet-7 spec!**\\r\\n\\r\\n**This release is filled with a specific geth branch [`gballet/jsign-witness-fix`](https://github.com/gballet/go-ethereum/pull/495) aligned with devnet-7. It contains updates and fixes for the past genesis tests due to the addition of witness checks within the testing framework. These verify the correct behaviour of the witness for specific test cases if defined.**\\r\\n\\r\\nA reasonable order of steps for client teams to start running tests can be found below, starting with the genesis tests from: `fixtures_verkle-genesis.tar.gz`\\r\\n- Run the EIP-6800 tests for a good first check, `fixtures/verkle/eip6800_genesis_verkle_tree/` within the extracted the fixture genesis tar.\\r\\n  - Followed by EIP-4762 tests: `fixtures/verkle/eip4762_verkle_gas_witness/`.\\r\\n  - And EIP-7709 tests: `fixtures/verkle/eip7709_blockhash_witness/`.\\r\\n- Run \\\"backfilled\\\" tests, all previous fork tests filled for Verkle, i.e all tests excluding`fixtures/verkle/*`.\\r\\n- (Optional) Run the `fixtures_verkle-conversion-stride-0.tar.gz` tests, as these contain basic pre-fork tests to make sure nothing is broken on the fork before Verkle.\\r\\n\\r\\n**Full Changelog**: https://github.com/ethereum/execution-spec-tests/compare/verkle@v0.0.3...verkle@v0.0.4\\r\\n\\r\\n## 🐘 Verkle Genesis Test Fixtures\\r\\n\\r\\nContains verkle specific test vectors from https://github.com/ethereum/execution-spec-tests/pull/659 including all existing EEST test cases filled for a verkle configured fork. Note these tests assume the MPT to VKT conversion has completed where we start at the Verkle fork.\\r\\n\\r\\nPlease use `fixtures_verkle-genesis.tar.gz`!\\r\\n\\r\\n### Generating Genesis Fixtures\\r\\n\\r\\nUsing the geth evm binary from this [commit](https://github.com/gballet/go-ethereum/commit/a00d50aa1590d7bed660723e2aa2fc7e58d64559), fill with the following command:\\r\\n```\\r\\nfill --fork Verkle --evm-bin=<path_to_geth_evm> -n auto -m blockchain_test\\r\\n```\\r\\n\\r\\n## 🔁 Verkle Conversion Test Fixtures - 0 Stride\\r\\n\\r\\nThese aim to verify a basic fork transition from Shanghai to Verkle. 0 stride denotes that the initial MPT remains frozen. Thus the MPT is not being converted to a VKT within these tests. The intention is to check that **only blocks after the transition** update the VKT, isolating VKT fork transition issues without touching MPT stride conversion logic.\\r\\n\\r\\nTest cases additionally include Shanghai genesis tests to assert that the fork before Verkle is not broken.\\r\\n\\r\\nPlease use `fixtures_verkle-conversion-stride-0.tar.gz`!\\r\\n\\r\\n### Generating Conversion Fixtures\\r\\n\\r\\nUsing the geth evm binary from this [commit](https://github.com/gballet/go-ethereum/commit/a00d50aa1590d7bed660723e2aa2fc7e58d64559), fill with the following command:\\r\\n```\\r\\nfill --from Shanghai --until EIP6800Transition --evm-bin=<path_to_geth_evm> -n auto -m blockchain_test\\r\\n```\\r\\n\\r\\n\"\n  },\n  {\n    \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/176456969\",\n    \"assets_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/176456969/assets\",\n    \"upload_url\": \"https://uploads.github.com/repos/ethereum/execution-spec-tests/releases/176456969/assets{?name,label}\",\n    \"html_url\": \"https://github.com/ethereum/execution-spec-tests/releases/tag/eip7692%40v1.1.1\",\n    \"id\": 176456969,\n    \"author\": {\n      \"login\": \"github-actions[bot]\",\n      \"id\": 41898282,\n      \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n      \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n      \"html_url\": \"https://github.com/apps/github-actions\",\n      \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n      \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n      \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n      \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n      \"type\": \"Bot\",\n      \"user_view_type\": \"public\",\n      \"site_admin\": false\n    },\n    \"node_id\": \"RE_kwDOIQGLK84KhIUJ\",\n    \"tag_name\": \"eip7692@v1.1.1\",\n    \"target_commitish\": \"main\",\n    \"name\": \"eip7692@v1.1.1\",\n    \"draft\": false,\n    \"prerelease\": true,\n    \"created_at\": \"2024-09-23T16:06:58Z\",\n    \"published_at\": \"2024-09-23T19:28:51Z\",\n    \"assets\": [\n      {\n        \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/assets/194417872\",\n        \"id\": 194417872,\n        \"node_id\": \"RA_kwDOIQGLK84LlpTQ\",\n        \"name\": \"fixtures_eip7692-prague.tar.gz\",\n        \"label\": \"\",\n        \"uploader\": {\n          \"login\": \"github-actions[bot]\",\n          \"id\": 41898282,\n          \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n          \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n          \"html_url\": \"https://github.com/apps/github-actions\",\n          \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n          \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n          \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n          \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n          \"type\": \"Bot\",\n          \"user_view_type\": \"public\",\n          \"site_admin\": false\n        },\n        \"content_type\": \"application/gzip\",\n        \"state\": \"uploaded\",\n        \"size\": 29388774,\n        \"download_count\": 14,\n        \"created_at\": \"2024-09-23T17:45:29Z\",\n        \"updated_at\": \"2024-09-23T17:45:31Z\",\n        \"browser_download_url\": \"https://github.com/ethereum/execution-spec-tests/releases/download/eip7692%40v1.1.1/fixtures_eip7692-prague.tar.gz\"\n      },\n      {\n        \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/assets/194417871\",\n        \"id\": 194417871,\n        \"node_id\": \"RA_kwDOIQGLK84LlpTP\",\n        \"name\": \"fixtures_eip7692.tar.gz\",\n        \"label\": \"\",\n        \"uploader\": {\n          \"login\": \"github-actions[bot]\",\n          \"id\": 41898282,\n          \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n          \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n          \"html_url\": \"https://github.com/apps/github-actions\",\n          \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n          \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n          \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n          \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n          \"type\": \"Bot\",\n          \"user_view_type\": \"public\",\n          \"site_admin\": false\n        },\n        \"content_type\": \"application/gzip\",\n        \"state\": \"uploaded\",\n        \"size\": 2947021,\n        \"download_count\": 155,\n        \"created_at\": \"2024-09-23T17:45:29Z\",\n        \"updated_at\": \"2024-09-23T17:45:30Z\",\n        \"browser_download_url\": \"https://github.com/ethereum/execution-spec-tests/releases/download/eip7692%40v1.1.1/fixtures_eip7692.tar.gz\"\n      }\n    ],\n    \"tarball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/tarball/eip7692@v1.1.1\",\n    \"zipball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/zipball/eip7692@v1.1.1\",\n    \"body\": \"Filled using Besu commit https://github.com/hyperledger/besu/commit/0d6395515890280c29ee2402c03b1ee81bde3bab\\r\\n\\r\\n## What's Changed\\r\\n* new(tests): EOF - EIP-7620 EOFCREATE gas testing by @pdobacz in https://github.com/ethereum/execution-spec-tests/pull/785\\r\\n\\r\\n**Full Changelog**: https://github.com/ethereum/execution-spec-tests/compare/eip7692@v1.1.0...eip7692@v1.1.1\",\n    \"mentions_count\": 1\n  },\n  {\n    \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/175961554\",\n    \"assets_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/175961554/assets\",\n    \"upload_url\": \"https://uploads.github.com/repos/ethereum/execution-spec-tests/releases/175961554/assets{?name,label}\",\n    \"html_url\": \"https://github.com/ethereum/execution-spec-tests/releases/tag/eip7692%40v1.1.0\",\n    \"id\": 175961554,\n    \"author\": {\n      \"login\": \"github-actions[bot]\",\n      \"id\": 41898282,\n      \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n      \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n      \"html_url\": \"https://github.com/apps/github-actions\",\n      \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n      \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n      \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n      \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n      \"type\": \"Bot\",\n      \"user_view_type\": \"public\",\n      \"site_admin\": false\n    },\n    \"node_id\": \"RE_kwDOIQGLK84KfPXS\",\n    \"tag_name\": \"eip7692@v1.1.0\",\n    \"target_commitish\": \"main\",\n    \"name\": \"eip7692@v1.1.0\",\n    \"draft\": false,\n    \"prerelease\": true,\n    \"created_at\": \"2024-09-19T18:04:52Z\",\n    \"published_at\": \"2024-09-19T18:41:46Z\",\n    \"assets\": [\n      {\n        \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/assets/193660497\",\n        \"id\": 193660497,\n        \"node_id\": \"RA_kwDOIQGLK84LiwZR\",\n        \"name\": \"fixtures_eip7692-prague.tar.gz\",\n        \"label\": \"\",\n        \"uploader\": {\n          \"login\": \"github-actions[bot]\",\n          \"id\": 41898282,\n          \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n          \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n          \"html_url\": \"https://github.com/apps/github-actions\",\n          \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n          \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n          \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n          \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n          \"type\": \"Bot\",\n          \"user_view_type\": \"public\",\n          \"site_admin\": false\n        },\n        \"content_type\": \"application/gzip\",\n        \"state\": \"uploaded\",\n        \"size\": 28430232,\n        \"download_count\": 10,\n        \"created_at\": \"2024-09-19T18:23:47Z\",\n        \"updated_at\": \"2024-09-19T18:23:48Z\",\n        \"browser_download_url\": \"https://github.com/ethereum/execution-spec-tests/releases/download/eip7692%40v1.1.0/fixtures_eip7692-prague.tar.gz\"\n      },\n      {\n        \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/assets/193660498\",\n        \"id\": 193660498,\n        \"node_id\": \"RA_kwDOIQGLK84LiwZS\",\n        \"name\": \"fixtures_eip7692.tar.gz\",\n        \"label\": \"\",\n        \"uploader\": {\n          \"login\": \"github-actions[bot]\",\n          \"id\": 41898282,\n          \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n          \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n          \"html_url\": \"https://github.com/apps/github-actions\",\n          \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n          \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n          \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n          \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n          \"type\": \"Bot\",\n          \"user_view_type\": \"public\",\n          \"site_admin\": false\n        },\n        \"content_type\": \"application/gzip\",\n        \"state\": \"uploaded\",\n        \"size\": 2734819,\n        \"download_count\": 31,\n        \"created_at\": \"2024-09-19T18:23:47Z\",\n        \"updated_at\": \"2024-09-19T18:23:47Z\",\n        \"browser_download_url\": \"https://github.com/ethereum/execution-spec-tests/releases/download/eip7692%40v1.1.0/fixtures_eip7692.tar.gz\"\n      }\n    ],\n    \"tarball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/tarball/eip7692@v1.1.0\",\n    \"zipball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/zipball/eip7692@v1.1.0\",\n    \"body\": \"Contains several EIP-7702 Devnet-3 tests parametrized to use EOF.\\r\\n\\r\\n## What's Changed\\r\\n* chore(tests): update EOF tests tracker by @chfast in https://github.com/ethereum/execution-spec-tests/pull/791\\r\\n* new(tests): EOF: more fuzzing discovered tests by @shemnon in https://github.com/ethereum/execution-spec-tests/pull/789\\r\\n* fix(fw): DATALOAD pushed_stack_items by @pdobacz in https://github.com/ethereum/execution-spec-tests/pull/784\\r\\n* new(tests): EOF: tests for invalid non-returning sections by @chfast in https://github.com/ethereum/execution-spec-tests/pull/794\\r\\n* new(tests): EOF - EIP-7069 - expand EXT*CALL gas testing by @pdobacz in https://github.com/ethereum/execution-spec-tests/pull/771\\r\\n* fix(tests): EOF - Remove duplicate container tests, automatically check for duplicates by @marioevz in https://github.com/ethereum/execution-spec-tests/pull/800\\r\\n* fix(fw): max stack height calculation in __add__  by @pdobacz in https://github.com/ethereum/execution-spec-tests/pull/810\\r\\n* new(test): EIP-7702 + EIP-1153: test that TransientStorage stays at correct address by @jochem-brouwer in https://github.com/ethereum/execution-spec-tests/pull/799\\r\\n* new(tests): TSTORE: ensure transient storage is cleared after transactions by @jochem-brouwer in https://github.com/ethereum/execution-spec-tests/pull/798\\r\\n* new(tests): EOF - EIP-7620: EOFCREATE referencing the same subcontainer twice by @MariusVanDerWijden in https://github.com/ethereum/execution-spec-tests/pull/809\\r\\n* new(tests): EOF - EIP-7620: Dangling data in subcontainer test by @shemnon in https://github.com/ethereum/execution-spec-tests/pull/812\\r\\n* fix(fw): EOF - Accept `initcode_prefix` on EOF `Container.Init` by @marioevz in https://github.com/ethereum/execution-spec-tests/pull/819\\r\\n* fix(tests): Fix Existing EOF + EIP-7702 Tests by @marioevz in https://github.com/ethereum/execution-spec-tests/pull/821\\r\\n\\r\\n\\r\\n**Full Changelog**: https://github.com/ethereum/execution-spec-tests/compare/eip7692@v1.0.9...eip7692@v1.1.0\",\n    \"mentions_count\": 6\n  },\n  {\n    \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/174363281\",\n    \"assets_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/174363281/assets\",\n    \"upload_url\": \"https://uploads.github.com/repos/ethereum/execution-spec-tests/releases/174363281/assets{?name,label}\",\n    \"html_url\": \"https://github.com/ethereum/execution-spec-tests/releases/tag/pectra-devnet-3%40v1.5.0\",\n    \"id\": 174363281,\n    \"author\": {\n      \"login\": \"github-actions[bot]\",\n      \"id\": 41898282,\n      \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n      \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n      \"html_url\": \"https://github.com/apps/github-actions\",\n      \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n      \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n      \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n      \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n      \"type\": \"Bot\",\n      \"user_view_type\": \"public\",\n      \"site_admin\": false\n    },\n    \"node_id\": \"RE_kwDOIQGLK84KZJKR\",\n    \"tag_name\": \"pectra-devnet-3@v1.5.0\",\n    \"target_commitish\": \"main\",\n    \"name\": \"pectra-devnet-3@v1.5.0\",\n    \"draft\": false,\n    \"prerelease\": true,\n    \"created_at\": \"2024-09-10T14:20:58Z\",\n    \"published_at\": \"2024-09-10T15:14:09Z\",\n    \"assets\": [\n      {\n        \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/assets/191744130\",\n        \"id\": 191744130,\n        \"node_id\": \"RA_kwDOIQGLK84LbciC\",\n        \"name\": \"fixtures_pectra-devnet-3.tar.gz\",\n        \"label\": \"\",\n        \"uploader\": {\n          \"login\": \"github-actions[bot]\",\n          \"id\": 41898282,\n          \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n          \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n          \"html_url\": \"https://github.com/apps/github-actions\",\n          \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n          \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n          \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n          \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n          \"type\": \"Bot\",\n          \"user_view_type\": \"public\",\n          \"site_admin\": false\n        },\n        \"content_type\": \"application/gzip\",\n        \"state\": \"uploaded\",\n        \"size\": 18524987,\n        \"download_count\": 4146,\n        \"created_at\": \"2024-09-10T15:12:25Z\",\n        \"updated_at\": \"2024-09-10T15:12:26Z\",\n        \"browser_download_url\": \"https://github.com/ethereum/execution-spec-tests/releases/download/pectra-devnet-3%40v1.5.0/fixtures_pectra-devnet-3.tar.gz\"\n      }\n    ],\n    \"tarball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/tarball/pectra-devnet-3@v1.5.0\",\n    \"zipball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/zipball/pectra-devnet-3@v1.5.0\",\n    \"body\": \"Adds `tests/prague/eip7702_set_code_tx/test_set_code_txs.py::test_contract_creating_set_code_transaction` which is the contract creating type-4 transaction test.\\r\\n\\r\\n###  Important Notes\\r\\n- EIP-2935 slow tests (256+ blocks) have been skipped.\\r\\n\\r\\n## Included EIPs\\r\\n\\r\\n- [EIP-2537: Precompile for BLS12-381 curve operations](https://github.com/ethereum/EIPs/blob/032c46504b10568039ba300969010e77c795f43a/EIPS/eip-2537.md)\\r\\n- [EIP-2935: Save historical block hashes in state](https://github.com/ethereum/EIPs/blob/45587bd019487b0bd59bec941bc0e2d708811cc8/EIPS/eip-2935.md)\\r\\n- [EIP-6110: Supply validator deposits on chain](https://github.com/ethereum/EIPs/blob/699cb15fc5ab7812d44266013876d9de81d05742/EIPS/eip-6110.md)\\r\\n- [EIP-7002: Execution layer triggerable exits](https://github.com/ethereum/EIPs/blob/f3620fabfa303fd84ee84522c744ae4a4da65cdf/EIPS/eip-7002.md)\\r\\n- [EIP-7251: Increase the MAX_EFFECTIVE_BALANCE](https://github.com/ethereum/EIPs/blob/bc91716ef2863c3bcab0d4d8ff013e24bf4999c2/EIPS/eip-7251.md)\\r\\n- [EIP-7685: General purpose execution layer requests](https://github.com/ethereum/EIPs/blob/b27b3f1c1b8252d178c0a7d4bcf6480c8bcb2159/EIPS/eip-7685.md)\\r\\n- [EIP-7702: Set EOA account code for one transaction](https://github.com/ethereum/EIPs/blob/d87a570a5baedff7b0a71d79de3ff4f14cee0990/EIPS/eip-7702.md)\\r\\n\\r\\n## Missing EIPs\\r\\n- [EIP-7692: EVM Object Format (EOFv1) Meta](https://github.com/ethereum/EIPs/blob/ad9bf2bd83c1018f0a892e03ad3b524cc441257e/EIPS/eip-7692.md)\\r\\n**Full Changelog**: https://github.com/ethereum/execution-spec-tests/compare/pectra-devnet-3@v1.4.0...pectra-devnet-3@v1.5.0\",\n    \"reactions\": {\n      \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/174363281/reactions\",\n      \"total_count\": 1,\n      \"+1\": 0,\n      \"-1\": 0,\n      \"laugh\": 0,\n      \"hooray\": 0,\n      \"confused\": 0,\n      \"heart\": 1,\n      \"rocket\": 0,\n      \"eyes\": 0\n    }\n  },\n  {\n    \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/173852359\",\n    \"assets_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/173852359/assets\",\n    \"upload_url\": \"https://uploads.github.com/repos/ethereum/execution-spec-tests/releases/173852359/assets{?name,label}\",\n    \"html_url\": \"https://github.com/ethereum/execution-spec-tests/releases/tag/eip7692%40v1.0.9\",\n    \"id\": 173852359,\n    \"author\": {\n      \"login\": \"marioevz\",\n      \"id\": 11726710,\n      \"node_id\": \"MDQ6VXNlcjExNzI2NzEw\",\n      \"avatar_url\": \"https://avatars.githubusercontent.com/u/11726710?v=4\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/marioevz\",\n      \"html_url\": \"https://github.com/marioevz\",\n      \"followers_url\": \"https://api.github.com/users/marioevz/followers\",\n      \"following_url\": \"https://api.github.com/users/marioevz/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/marioevz/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/marioevz/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/marioevz/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/marioevz/orgs\",\n      \"repos_url\": \"https://api.github.com/users/marioevz/repos\",\n      \"events_url\": \"https://api.github.com/users/marioevz/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/marioevz/received_events\",\n      \"type\": \"User\",\n      \"user_view_type\": \"public\",\n      \"site_admin\": false\n    },\n    \"node_id\": \"RE_kwDOIQGLK84KXMbH\",\n    \"tag_name\": \"eip7692@v1.0.9\",\n    \"target_commitish\": \"main\",\n    \"name\": \"eip7692@v1.0.9\",\n    \"draft\": false,\n    \"prerelease\": true,\n    \"created_at\": \"2024-09-05T20:24:52Z\",\n    \"published_at\": \"2024-09-06T14:10:28Z\",\n    \"assets\": [\n      {\n        \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/assets/190869157\",\n        \"id\": 190869157,\n        \"node_id\": \"RA_kwDOIQGLK84LYG6l\",\n        \"name\": \"fixtures_eip7692.tar.gz\",\n        \"label\": null,\n        \"uploader\": {\n          \"login\": \"marioevz\",\n          \"id\": 11726710,\n          \"node_id\": \"MDQ6VXNlcjExNzI2NzEw\",\n          \"avatar_url\": \"https://avatars.githubusercontent.com/u/11726710?v=4\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/marioevz\",\n          \"html_url\": \"https://github.com/marioevz\",\n          \"followers_url\": \"https://api.github.com/users/marioevz/followers\",\n          \"following_url\": \"https://api.github.com/users/marioevz/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/marioevz/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/marioevz/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/marioevz/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/marioevz/orgs\",\n          \"repos_url\": \"https://api.github.com/users/marioevz/repos\",\n          \"events_url\": \"https://api.github.com/users/marioevz/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/marioevz/received_events\",\n          \"type\": \"User\",\n          \"user_view_type\": \"public\",\n          \"site_admin\": false\n        },\n        \"content_type\": \"application/gzip\",\n        \"state\": \"uploaded\",\n        \"size\": 2694137,\n        \"download_count\": 147,\n        \"created_at\": \"2024-09-06T14:08:16Z\",\n        \"updated_at\": \"2024-09-06T14:08:17Z\",\n        \"browser_download_url\": \"https://github.com/ethereum/execution-spec-tests/releases/download/eip7692%40v1.0.9/fixtures_eip7692.tar.gz\"\n      }\n    ],\n    \"tarball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/tarball/eip7692@v1.0.9\",\n    \"zipball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/zipball/eip7692@v1.0.9\",\n    \"body\": \"## Important Notes\\r\\n\\r\\nEIP-7702 breaks Prague+EOF tests at the moment, therefore this release does not contain them, but they should be expected at a later release.\\r\\n\\r\\n## What's Changed\\r\\n* fix(docs): Add some more cases to EOF tracker  by @gumb0 in https://github.com/ethereum/execution-spec-tests/pull/747\\r\\n* new(tests): EOF - EIP-3540: Migrate validation tests: EIP3540/validInvalidFiller.yml by @chfast in https://github.com/ethereum/execution-spec-tests/pull/598\\r\\n* new(tests): EOF - EIP-7620: tests for msg.depth and static flag by @pdobacz in https://github.com/ethereum/execution-spec-tests/pull/732\\r\\n* new(tests): EOF - EIP-7069: Call Gas Testing for EXT*CALL by @shemnon in https://github.com/ethereum/execution-spec-tests/pull/713\\r\\n* new(tests): EIP-7069 - EXTCALL with balance and other by @pdobacz in https://github.com/ethereum/execution-spec-tests/pull/755\\r\\n* new(tests): EOF - EIP-3540: Test types with 128 inputs by @gurukamath in https://github.com/ethereum/execution-spec-tests/pull/749\\r\\n* new(tests): EOF - EIP-3540: out of order container section by @chfast in https://github.com/ethereum/execution-spec-tests/pull/741\\r\\n* chore: simplify python project config by @danceratopz in https://github.com/ethereum/execution-spec-tests/pull/764\\r\\n* feat(tests): Add multiple exception support to EOF tests by @shemnon in https://github.com/ethereum/execution-spec-tests/pull/759\\r\\n* new(tests): EOF - EIP-7620: migrate \\\"embedded container\\\" tests by @chfast in https://github.com/ethereum/execution-spec-tests/pull/763\\r\\n* new(tests): EIP-5656/7692 - use new marker to EOF-ize MCOPY test (2) by @pdobacz in https://github.com/ethereum/execution-spec-tests/pull/754\\r\\n* feat(tests): EOF - EIP-3540/EIP-4200: Move and rename oritests by @winsvega in https://github.com/ethereum/execution-spec-tests/pull/731\\r\\n* new(tests): EOF - Tests from Fuzzing by @shemnon in https://github.com/ethereum/execution-spec-tests/pull/756\\r\\n* feat(docs/tests): EOF: Update tracker, add unimplemented tests by @marioevz in https://github.com/ethereum/execution-spec-tests/pull/773\\r\\n* new(tests): EOF:  Validate EOF only opcodes are invalid in legacy by @shemnon in https://github.com/ethereum/execution-spec-tests/pull/768\\r\\n\\r\\n**Full Changelog**: https://github.com/ethereum/execution-spec-tests/compare/eip7692@v1.0.8...eip7692@v1.0.9\",\n    \"mentions_count\": 8\n  },\n  {\n    \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/172420698\",\n    \"assets_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/172420698/assets\",\n    \"upload_url\": \"https://uploads.github.com/repos/ethereum/execution-spec-tests/releases/172420698/assets{?name,label}\",\n    \"html_url\": \"https://github.com/ethereum/execution-spec-tests/releases/tag/pectra-devnet-3%40v1.4.0\",\n    \"id\": 172420698,\n    \"author\": {\n      \"login\": \"github-actions[bot]\",\n      \"id\": 41898282,\n      \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n      \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n      \"html_url\": \"https://github.com/apps/github-actions\",\n      \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n      \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n      \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n      \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n      \"type\": \"Bot\",\n      \"user_view_type\": \"public\",\n      \"site_admin\": false\n    },\n    \"node_id\": \"RE_kwDOIQGLK84KRu5a\",\n    \"tag_name\": \"pectra-devnet-3@v1.4.0\",\n    \"target_commitish\": \"main\",\n    \"name\": \"pectra-devnet-3@v1.4.0\",\n    \"draft\": false,\n    \"prerelease\": true,\n    \"created_at\": \"2024-08-28T17:35:59Z\",\n    \"published_at\": \"2024-08-28T18:35:05Z\",\n    \"assets\": [\n      {\n        \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/assets/188915076\",\n        \"id\": 188915076,\n        \"node_id\": \"RA_kwDOIQGLK84LQp2E\",\n        \"name\": \"fixtures_pectra-devnet-3.tar.gz\",\n        \"label\": \"\",\n        \"uploader\": {\n          \"login\": \"github-actions[bot]\",\n          \"id\": 41898282,\n          \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n          \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n          \"html_url\": \"https://github.com/apps/github-actions\",\n          \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n          \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n          \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n          \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n          \"type\": \"Bot\",\n          \"user_view_type\": \"public\",\n          \"site_admin\": false\n        },\n        \"content_type\": \"application/gzip\",\n        \"state\": \"uploaded\",\n        \"size\": 18516050,\n        \"download_count\": 117,\n        \"created_at\": \"2024-08-28T18:29:17Z\",\n        \"updated_at\": \"2024-08-28T18:29:18Z\",\n        \"browser_download_url\": \"https://github.com/ethereum/execution-spec-tests/releases/download/pectra-devnet-3%40v1.4.0/fixtures_pectra-devnet-3.tar.gz\"\n      }\n    ],\n    \"tarball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/tarball/pectra-devnet-3@v1.4.0\",\n    \"zipball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/zipball/pectra-devnet-3@v1.4.0\",\n    \"body\": \"Fixes to `test_set_code_using_invalid_signatures` where the test expected an invalid transaction in some cases where only an invalid authorization list element was expected (but a valid transaction): https://github.com/ethereum/execution-spec-tests/commit/e70d831d30a3e924ef6946b518efb18e10ca684a\\r\\n###  Important Notes\\r\\n- EIP-2935 slow tests (256+ blocks) have been skipped.\\r\\n\\r\\n## Included EIPs\\r\\n\\r\\n- [EIP-2537: Precompile for BLS12-381 curve operations](https://github.com/ethereum/EIPs/blob/032c46504b10568039ba300969010e77c795f43a/EIPS/eip-2537.md)\\r\\n- [EIP-2935: Save historical block hashes in state](https://github.com/ethereum/EIPs/blob/45587bd019487b0bd59bec941bc0e2d708811cc8/EIPS/eip-2935.md)\\r\\n- [EIP-6110: Supply validator deposits on chain](https://github.com/ethereum/EIPs/blob/699cb15fc5ab7812d44266013876d9de81d05742/EIPS/eip-6110.md)\\r\\n- [EIP-7002: Execution layer triggerable exits](https://github.com/ethereum/EIPs/blob/f3620fabfa303fd84ee84522c744ae4a4da65cdf/EIPS/eip-7002.md)\\r\\n- [EIP-7251: Increase the MAX_EFFECTIVE_BALANCE](https://github.com/ethereum/EIPs/blob/bc91716ef2863c3bcab0d4d8ff013e24bf4999c2/EIPS/eip-7251.md)\\r\\n- [EIP-7685: General purpose execution layer requests](https://github.com/ethereum/EIPs/blob/b27b3f1c1b8252d178c0a7d4bcf6480c8bcb2159/EIPS/eip-7685.md)\\r\\n- [EIP-7702: Set EOA account code for one transaction](https://github.com/ethereum/EIPs/blob/d87a570a5baedff7b0a71d79de3ff4f14cee0990/EIPS/eip-7702.md)\\r\\n\\r\\n## Missing EIPs\\r\\n- [EIP-7692: EVM Object Format (EOFv1) Meta](https://github.com/ethereum/EIPs/blob/ad9bf2bd83c1018f0a892e03ad3b524cc441257e/EIPS/eip-7692.md)\\r\\n\\r\\n**Full Changelog**: https://github.com/ethereum/execution-spec-tests/compare/pectra-devnet-3@v1.3.0...pectra-devnet-3@v1.4.0\"\n  },\n  {\n    \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/172389706\",\n    \"assets_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/172389706/assets\",\n    \"upload_url\": \"https://uploads.github.com/repos/ethereum/execution-spec-tests/releases/172389706/assets{?name,label}\",\n    \"html_url\": \"https://github.com/ethereum/execution-spec-tests/releases/tag/pectra-devnet-3%40v1.3.0\",\n    \"id\": 172389706,\n    \"author\": {\n      \"login\": \"github-actions[bot]\",\n      \"id\": 41898282,\n      \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n      \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n      \"html_url\": \"https://github.com/apps/github-actions\",\n      \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n      \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n      \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n      \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n      \"type\": \"Bot\",\n      \"user_view_type\": \"public\",\n      \"site_admin\": false\n    },\n    \"node_id\": \"RE_kwDOIQGLK84KRnVK\",\n    \"tag_name\": \"pectra-devnet-3@v1.3.0\",\n    \"target_commitish\": \"main\",\n    \"name\": \"pectra-devnet-3@v1.3.0\",\n    \"draft\": false,\n    \"prerelease\": true,\n    \"created_at\": \"2024-08-27T18:27:56Z\",\n    \"published_at\": \"2024-08-28T15:27:28Z\",\n    \"assets\": [\n      {\n        \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/assets/188881070\",\n        \"id\": 188881070,\n        \"node_id\": \"RA_kwDOIQGLK84LQhiu\",\n        \"name\": \"fixtures_pectra-devnet-3.tar.gz\",\n        \"label\": \"\",\n        \"uploader\": {\n          \"login\": \"github-actions[bot]\",\n          \"id\": 41898282,\n          \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n          \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n          \"html_url\": \"https://github.com/apps/github-actions\",\n          \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n          \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n          \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n          \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n          \"type\": \"Bot\",\n          \"user_view_type\": \"public\",\n          \"site_admin\": false\n        },\n        \"content_type\": \"application/gzip\",\n        \"state\": \"uploaded\",\n        \"size\": 18509265,\n        \"download_count\": 7,\n        \"created_at\": \"2024-08-28T15:22:25Z\",\n        \"updated_at\": \"2024-08-28T15:22:25Z\",\n        \"browser_download_url\": \"https://github.com/ethereum/execution-spec-tests/releases/download/pectra-devnet-3%40v1.3.0/fixtures_pectra-devnet-3.tar.gz\"\n      }\n    ],\n    \"tarball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/tarball/pectra-devnet-3@v1.3.0\",\n    \"zipball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/zipball/pectra-devnet-3@v1.3.0\",\n    \"body\": \"This is a hotfix release that contains no new tests but fixes an issue during filling where the system account (`0xfffffffffffffffffffffffffffffffffffffffe`) had its nonce increased in blockchain tests.\\r\\n\\r\\n###  Important Notes\\r\\n- EIP-2935 slow tests (256+ blocks) have been skipped.\\r\\n\\r\\n## Included EIPs\\r\\n\\r\\n- [EIP-2537: Precompile for BLS12-381 curve operations](https://github.com/ethereum/EIPs/blob/032c46504b10568039ba300969010e77c795f43a/EIPS/eip-2537.md)\\r\\n- [EIP-2935: Save historical block hashes in state](https://github.com/ethereum/EIPs/blob/45587bd019487b0bd59bec941bc0e2d708811cc8/EIPS/eip-2935.md)\\r\\n- [EIP-6110: Supply validator deposits on chain](https://github.com/ethereum/EIPs/blob/699cb15fc5ab7812d44266013876d9de81d05742/EIPS/eip-6110.md)\\r\\n- [EIP-7002: Execution layer triggerable exits](https://github.com/ethereum/EIPs/blob/f3620fabfa303fd84ee84522c744ae4a4da65cdf/EIPS/eip-7002.md)\\r\\n- [EIP-7251: Increase the MAX_EFFECTIVE_BALANCE](https://github.com/ethereum/EIPs/blob/bc91716ef2863c3bcab0d4d8ff013e24bf4999c2/EIPS/eip-7251.md)\\r\\n- [EIP-7685: General purpose execution layer requests](https://github.com/ethereum/EIPs/blob/b27b3f1c1b8252d178c0a7d4bcf6480c8bcb2159/EIPS/eip-7685.md)\\r\\n- [EIP-7702: Set EOA account code for one transaction](https://github.com/ethereum/EIPs/blob/d87a570a5baedff7b0a71d79de3ff4f14cee0990/EIPS/eip-7702.md)\\r\\n\\r\\n## Missing EIPs\\r\\n- [EIP-7692: EVM Object Format (EOFv1) Meta](https://github.com/ethereum/EIPs/blob/ad9bf2bd83c1018f0a892e03ad3b524cc441257e/EIPS/eip-7692.md)\\r\\n\\r\\n**Full Changelog**: https://github.com/ethereum/execution-spec-tests/compare/eip7692@v1.0.8...pectra-devnet-3@v1.3.0\"\n  },\n  {\n    \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/172219357\",\n    \"assets_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/172219357/assets\",\n    \"upload_url\": \"https://uploads.github.com/repos/ethereum/execution-spec-tests/releases/172219357/assets{?name,label}\",\n    \"html_url\": \"https://github.com/ethereum/execution-spec-tests/releases/tag/pectra-devnet-3%40v1.2.0\",\n    \"id\": 172219357,\n    \"author\": {\n      \"login\": \"github-actions[bot]\",\n      \"id\": 41898282,\n      \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n      \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n      \"html_url\": \"https://github.com/apps/github-actions\",\n      \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n      \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n      \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n      \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n      \"type\": \"Bot\",\n      \"user_view_type\": \"public\",\n      \"site_admin\": false\n    },\n    \"node_id\": \"RE_kwDOIQGLK84KQ9vd\",\n    \"tag_name\": \"pectra-devnet-3@v1.2.0\",\n    \"target_commitish\": \"main\",\n    \"name\": \"pectra-devnet-3@v1.2.0\",\n    \"draft\": false,\n    \"prerelease\": true,\n    \"created_at\": \"2024-08-27T18:27:56Z\",\n    \"published_at\": \"2024-08-27T19:27:24Z\",\n    \"assets\": [\n      {\n        \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/assets/188681921\",\n        \"id\": 188681921,\n        \"node_id\": \"RA_kwDOIQGLK84LPw7B\",\n        \"name\": \"fixtures_pectra-devnet-3.tar.gz\",\n        \"label\": \"\",\n        \"uploader\": {\n          \"login\": \"github-actions[bot]\",\n          \"id\": 41898282,\n          \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n          \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n          \"html_url\": \"https://github.com/apps/github-actions\",\n          \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n          \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n          \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n          \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n          \"type\": \"Bot\",\n          \"user_view_type\": \"public\",\n          \"site_admin\": false\n        },\n        \"content_type\": \"application/gzip\",\n        \"state\": \"uploaded\",\n        \"size\": 18529117,\n        \"download_count\": 13,\n        \"created_at\": \"2024-08-27T19:18:48Z\",\n        \"updated_at\": \"2024-08-27T19:18:48Z\",\n        \"browser_download_url\": \"https://github.com/ethereum/execution-spec-tests/releases/download/pectra-devnet-3%40v1.2.0/fixtures_pectra-devnet-3.tar.gz\"\n      }\n    ],\n    \"tarball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/tarball/pectra-devnet-3@v1.2.0\",\n    \"zipball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/zipball/pectra-devnet-3@v1.2.0\",\n    \"body\": \"Third release for Pectra Devnet-3, filled again using EthereumJS transition tool implementation which includes fixes to the state root expected in state tests (thanks again @jochem-brouwer!).\\r\\n\\r\\n### Fixes\\r\\n- In previous release, in the state tests, the system contracts' addresses were touched even though the contracts were not present in the pre-alloc.\\r\\n\\r\\n###  Important Notes\\r\\n- EIP-2935 slow tests (256+ blocks) have been skipped.\\r\\n\\r\\n## Included EIPs\\r\\n\\r\\n- [EIP-2537: Precompile for BLS12-381 curve operations](https://github.com/ethereum/EIPs/blob/032c46504b10568039ba300969010e77c795f43a/EIPS/eip-2537.md)\\r\\n- [EIP-2935: Save historical block hashes in state](https://github.com/ethereum/EIPs/blob/45587bd019487b0bd59bec941bc0e2d708811cc8/EIPS/eip-2935.md)\\r\\n- [EIP-6110: Supply validator deposits on chain](https://github.com/ethereum/EIPs/blob/699cb15fc5ab7812d44266013876d9de81d05742/EIPS/eip-6110.md)\\r\\n- [EIP-7002: Execution layer triggerable exits](https://github.com/ethereum/EIPs/blob/f3620fabfa303fd84ee84522c744ae4a4da65cdf/EIPS/eip-7002.md)\\r\\n- [EIP-7251: Increase the MAX_EFFECTIVE_BALANCE](https://github.com/ethereum/EIPs/blob/bc91716ef2863c3bcab0d4d8ff013e24bf4999c2/EIPS/eip-7251.md)\\r\\n- [EIP-7685: General purpose execution layer requests](https://github.com/ethereum/EIPs/blob/b27b3f1c1b8252d178c0a7d4bcf6480c8bcb2159/EIPS/eip-7685.md)\\r\\n- [EIP-7702: Set EOA account code for one transaction](https://github.com/ethereum/EIPs/blob/d87a570a5baedff7b0a71d79de3ff4f14cee0990/EIPS/eip-7702.md)\\r\\n\\r\\n## Missing EIPs\\r\\n- [EIP-7692: EVM Object Format (EOFv1) Meta](https://github.com/ethereum/EIPs/blob/ad9bf2bd83c1018f0a892e03ad3b524cc441257e/EIPS/eip-7692.md)\\r\\n\\r\\n**Full Changelog**: https://github.com/ethereum/execution-spec-tests/compare/pectra-devnet-3@v1.1.0...pectra-devnet-3@v1.2.0\",\n    \"mentions_count\": 1\n  },\n  {\n    \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/171954734\",\n    \"assets_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/171954734/assets\",\n    \"upload_url\": \"https://uploads.github.com/repos/ethereum/execution-spec-tests/releases/171954734/assets{?name,label}\",\n    \"html_url\": \"https://github.com/ethereum/execution-spec-tests/releases/tag/verkle%40v0.0.3\",\n    \"id\": 171954734,\n    \"author\": {\n      \"login\": \"github-actions[bot]\",\n      \"id\": 41898282,\n      \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n      \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n      \"html_url\": \"https://github.com/apps/github-actions\",\n      \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n      \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n      \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n      \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n      \"type\": \"Bot\",\n      \"user_view_type\": \"public\",\n      \"site_admin\": false\n    },\n    \"node_id\": \"RE_kwDOIQGLK84KP9Iu\",\n    \"tag_name\": \"verkle@v0.0.3\",\n    \"target_commitish\": \"main\",\n    \"name\": \"verkle@v0.0.3\",\n    \"draft\": false,\n    \"prerelease\": true,\n    \"created_at\": \"2024-08-26T13:37:20Z\",\n    \"published_at\": \"2024-08-26T14:29:03Z\",\n    \"assets\": [\n      {\n        \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/assets/188383335\",\n        \"id\": 188383335,\n        \"node_id\": \"RA_kwDOIQGLK84LOoBn\",\n        \"name\": \"fixtures_verkle-conversion-stride-0.tar.gz\",\n        \"label\": \"\",\n        \"uploader\": {\n          \"login\": \"github-actions[bot]\",\n          \"id\": 41898282,\n          \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n          \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n          \"html_url\": \"https://github.com/apps/github-actions\",\n          \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n          \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n          \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n          \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n          \"type\": \"Bot\",\n          \"user_view_type\": \"public\",\n          \"site_admin\": false\n        },\n        \"content_type\": \"application/gzip\",\n        \"state\": \"uploaded\",\n        \"size\": 809677,\n        \"download_count\": 82,\n        \"created_at\": \"2024-08-26T14:00:11Z\",\n        \"updated_at\": \"2024-08-26T14:00:11Z\",\n        \"browser_download_url\": \"https://github.com/ethereum/execution-spec-tests/releases/download/verkle%40v0.0.3/fixtures_verkle-conversion-stride-0.tar.gz\"\n      },\n      {\n        \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/assets/188383334\",\n        \"id\": 188383334,\n        \"node_id\": \"RA_kwDOIQGLK84LOoBm\",\n        \"name\": \"fixtures_verkle-genesis.tar.gz\",\n        \"label\": \"\",\n        \"uploader\": {\n          \"login\": \"github-actions[bot]\",\n          \"id\": 41898282,\n          \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n          \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n          \"html_url\": \"https://github.com/apps/github-actions\",\n          \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n          \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n          \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n          \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n          \"type\": \"Bot\",\n          \"user_view_type\": \"public\",\n          \"site_admin\": false\n        },\n        \"content_type\": \"application/gzip\",\n        \"state\": \"uploaded\",\n        \"size\": 891973,\n        \"download_count\": 87,\n        \"created_at\": \"2024-08-26T14:00:11Z\",\n        \"updated_at\": \"2024-08-26T14:00:11Z\",\n        \"browser_download_url\": \"https://github.com/ethereum/execution-spec-tests/releases/download/verkle%40v0.0.3/fixtures_verkle-genesis.tar.gz\"\n      }\n    ],\n    \"tarball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/tarball/verkle@v0.0.3\",\n    \"zipball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/zipball/verkle@v0.0.3\",\n    \"body\": \"⚠️ **Note these tests are up to date with the latest devnet-7 spec!**\\r\\n\\r\\n**This release is equivalent to [verkle@v0.0.2](https://github.com/ethereum/execution-spec-tests/releases/tag/verkle%40v0.0.2) but filled with the latest geth [`gballet/kaustinen-with-shapella`](https://github.com/gballet/go-ethereum/tree/kaustinen-with-shapella) branch aligned with devnet-7.**\\r\\n\\r\\nFrom the [VIC no 23 testing slides](https://hackmd.io/@jsign/verkle-testing#/4), a reasonable order of steps for client teams to start running tests can be found below, starting with the genesis tests from: `fixtures_verkle-genesis.tar.gz`\\r\\n- Run EIP-6800 tests (~23) for a good first check, `fixtures/verkle/eip6800_genesis_verkle_tree/` within the extracted the fixture genesis tar.\\r\\n- Run \\\"backfilled\\\" tests (~300), all tests excluding`fixtures/verkle/*`.\\r\\n- Wait for the next release to run additional tests after framework witness assertions verify the remaining test cases.\\r\\n\\r\\n**Full Changelog**: https://github.com/ethereum/execution-spec-tests/compare/verkle@v0.0.2...verkle@v0.0.3\\r\\n\\r\\n## 🌪️ Fixture Format Changes\\r\\n\\r\\nAll fixtures now contain a block witness although currently without the parent state root.\\r\\n```python\\r\\nclass Witness(CamelModel):\\r\\n    state_diff: StateDiff\\r\\n    verkle_proof: VerkleProof\\r\\n```\\r\\nClient test consumers can now utilize this to compare there computed block witness against the witness contained within the fixtures (computed from geth's t8n).\\r\\n\\r\\nFor more information on our witness definition please adhere to [`src/ethereum_test_types/verkle/types.py`](https://github.com/jsign/execution-spec-tests/blob/jsign-verkle-rebased-mainnet/src/ethereum_test_types/verkle/types.py).\\r\\n\\r\\nAdditionally the post state is removed. Future fixture releases will contain the post state as a VKT.\\r\\n\\r\\n## 🐘 Verkle Genesis Test Fixtures\\r\\n\\r\\nContains verkle specific test vectors from https://github.com/ethereum/execution-spec-tests/pull/659 including all existing EEST test cases filled for a verkle configured fork. Note these tests assume the MPT to VKT conversion has completed where we start at the Verkle fork.\\r\\n\\r\\nPlease use `fixtures_verkle-genesis.tar.gz`!\\r\\n\\r\\n### Generating Genesis Fixtures\\r\\n\\r\\nUsing the geth evm binary from this [commit](https://github.com/gballet/go-ethereum/commit/df132604b24104bcfcf838bf30495a279dd799f8), fill with the following command:\\r\\n```\\r\\nfill --fork Verkle --evm-bin=<path_to_geth_evm> -n auto -m blockchain_test\\r\\n```\\r\\n\\r\\n## 🔁 Verkle Conversion Test Fixtures - 0 Stride\\r\\n\\r\\nContains an improvement to the initial set of transition [tests](https://github.com/ethereum/execution-spec-tests/releases/tag/eip6800%40v0.0.1).\\r\\n\\r\\nThese aim to verify a basic fork transition from Shanghai to Verkle. 0 stride denotes that the initial MPT remains frozen. Thus the MPT is not being converted to a VKT within these tests. The intention is to check that **only blocks after the transition** update the VKT, isolating VKT fork transition issues without touching MPT stride conversion logic.\\r\\n\\r\\nTest cases additionally include Shanghai genesis tests to assert that the fork before Verkle is not broken.\\r\\n\\r\\nThe next release will contain conversion tests with some stride enabled to dynamically validate the MPT conversion.\\r\\n\\r\\nPlease use `fixtures_verkle-conversion-stride-0.tar.gz`!\\r\\n\\r\\n### Generating Conversion Fixtures\\r\\n\\r\\nUsing the geth evm binary from this [commit](https://github.com/gballet/go-ethereum/commit/df132604b24104bcfcf838bf30495a279dd799f8), fill with the following command:\\r\\n```\\r\\nfill --from Shanghai --until EIP6800Transition --evm-bin=<path_to_geth_evm> -n auto -m blockchain_test\\r\\n```\\r\\n\\r\\n\\r\\n\",\n    \"reactions\": {\n      \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/171954734/reactions\",\n      \"total_count\": 1,\n      \"+1\": 0,\n      \"-1\": 0,\n      \"laugh\": 0,\n      \"hooray\": 0,\n      \"confused\": 0,\n      \"heart\": 0,\n      \"rocket\": 1,\n      \"eyes\": 0\n    }\n  },\n  {\n    \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/171714751\",\n    \"assets_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/171714751/assets\",\n    \"upload_url\": \"https://uploads.github.com/repos/ethereum/execution-spec-tests/releases/171714751/assets{?name,label}\",\n    \"html_url\": \"https://github.com/ethereum/execution-spec-tests/releases/tag/pectra-devnet-3%40v1.1.0\",\n    \"id\": 171714751,\n    \"author\": {\n      \"login\": \"github-actions[bot]\",\n      \"id\": 41898282,\n      \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n      \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n      \"html_url\": \"https://github.com/apps/github-actions\",\n      \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n      \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n      \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n      \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n      \"type\": \"Bot\",\n      \"user_view_type\": \"public\",\n      \"site_admin\": false\n    },\n    \"node_id\": \"RE_kwDOIQGLK84KPCi_\",\n    \"tag_name\": \"pectra-devnet-3@v1.1.0\",\n    \"target_commitish\": \"main\",\n    \"name\": \"pectra-devnet-3@v1.1.0\",\n    \"draft\": false,\n    \"prerelease\": true,\n    \"created_at\": \"2024-08-23T16:53:12Z\",\n    \"published_at\": \"2024-08-23T17:49:42Z\",\n    \"assets\": [\n      {\n        \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/assets/187907663\",\n        \"id\": 187907663,\n        \"node_id\": \"RA_kwDOIQGLK84LMz5P\",\n        \"name\": \"fixtures_pectra-devnet-3.tar.gz\",\n        \"label\": \"\",\n        \"uploader\": {\n          \"login\": \"github-actions[bot]\",\n          \"id\": 41898282,\n          \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n          \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n          \"html_url\": \"https://github.com/apps/github-actions\",\n          \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n          \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n          \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n          \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n          \"type\": \"Bot\",\n          \"user_view_type\": \"public\",\n          \"site_admin\": false\n        },\n        \"content_type\": \"application/gzip\",\n        \"state\": \"uploaded\",\n        \"size\": 18636284,\n        \"download_count\": 8,\n        \"created_at\": \"2024-08-23T17:44:22Z\",\n        \"updated_at\": \"2024-08-23T17:44:23Z\",\n        \"browser_download_url\": \"https://github.com/ethereum/execution-spec-tests/releases/download/pectra-devnet-3%40v1.1.0/fixtures_pectra-devnet-3.tar.gz\"\n      }\n    ],\n    \"tarball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/tarball/pectra-devnet-3@v1.1.0\",\n    \"zipball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/zipball/pectra-devnet-3@v1.1.0\",\n    \"body\": \"Second release for Pectra Devnet-3, filled again using EthereumJS transition tool implementation which included gas accounting fixes (thanks again @jochem-brouwer!).\\r\\n\\r\\n### Fixes\\r\\n- Added re-authorization gas costs tests, i.e. existing set-code in account receives a new delegation (https://github.com/ethereum/execution-spec-tests/commit/c27e01079951553ade21d5cf2ce705a8917f9865)\\r\\n- Fixed warm account costs to consider cost to access the delegated-to account (https://github.com/ethereum/execution-spec-tests/commit/59ec505058ef3cc93e3657d2a7453a643ef6e439)\\r\\n\\r\\n###  Important Notes\\r\\n- EIP-2935 slow tests (256+ blocks) have been skipped.\\r\\n\\r\\n## Included EIPs\\r\\n\\r\\n- [EIP-2537: Precompile for BLS12-381 curve operations](https://github.com/ethereum/EIPs/blob/032c46504b10568039ba300969010e77c795f43a/EIPS/eip-2537.md)\\r\\n- [EIP-2935: Save historical block hashes in state](https://github.com/ethereum/EIPs/blob/45587bd019487b0bd59bec941bc0e2d708811cc8/EIPS/eip-2935.md)\\r\\n- [EIP-6110: Supply validator deposits on chain](https://github.com/ethereum/EIPs/blob/699cb15fc5ab7812d44266013876d9de81d05742/EIPS/eip-6110.md)\\r\\n- [EIP-7002: Execution layer triggerable exits](https://github.com/ethereum/EIPs/blob/f3620fabfa303fd84ee84522c744ae4a4da65cdf/EIPS/eip-7002.md)\\r\\n- [EIP-7251: Increase the MAX_EFFECTIVE_BALANCE](https://github.com/ethereum/EIPs/blob/bc91716ef2863c3bcab0d4d8ff013e24bf4999c2/EIPS/eip-7251.md)\\r\\n- [EIP-7685: General purpose execution layer requests](https://github.com/ethereum/EIPs/blob/b27b3f1c1b8252d178c0a7d4bcf6480c8bcb2159/EIPS/eip-7685.md)\\r\\n- [EIP-7702: Set EOA account code for one transaction](https://github.com/ethereum/EIPs/blob/d87a570a5baedff7b0a71d79de3ff4f14cee0990/EIPS/eip-7702.md)\\r\\n\\r\\n## Missing EIPs\\r\\n- [EIP-7692: EVM Object Format (EOFv1) Meta](https://github.com/ethereum/EIPs/blob/ad9bf2bd83c1018f0a892e03ad3b524cc441257e/EIPS/eip-7692.md)\\r\\n\\r\\n**Full Changelog**: https://github.com/ethereum/execution-spec-tests/compare/pectra-devnet-3@v1.0.0...pectra-devnet-3@v1.1.0\",\n    \"reactions\": {\n      \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/171714751/reactions\",\n      \"total_count\": 2,\n      \"+1\": 0,\n      \"-1\": 0,\n      \"laugh\": 0,\n      \"hooray\": 0,\n      \"confused\": 0,\n      \"heart\": 0,\n      \"rocket\": 2,\n      \"eyes\": 0\n    },\n    \"mentions_count\": 1\n  },\n  {\n    \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/171316015\",\n    \"assets_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/171316015/assets\",\n    \"upload_url\": \"https://uploads.github.com/repos/ethereum/execution-spec-tests/releases/171316015/assets{?name,label}\",\n    \"html_url\": \"https://github.com/ethereum/execution-spec-tests/releases/tag/pectra-devnet-3%40v1.0.0\",\n    \"id\": 171316015,\n    \"author\": {\n      \"login\": \"github-actions[bot]\",\n      \"id\": 41898282,\n      \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n      \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n      \"html_url\": \"https://github.com/apps/github-actions\",\n      \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n      \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n      \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n      \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n      \"type\": \"Bot\",\n      \"user_view_type\": \"public\",\n      \"site_admin\": false\n    },\n    \"node_id\": \"RE_kwDOIQGLK84KNhMv\",\n    \"tag_name\": \"pectra-devnet-3@v1.0.0\",\n    \"target_commitish\": \"main\",\n    \"name\": \"pectra-devnet-3@v1.0.0\",\n    \"draft\": false,\n    \"prerelease\": true,\n    \"created_at\": \"2024-08-21T16:11:07Z\",\n    \"published_at\": \"2024-08-21T17:01:28Z\",\n    \"assets\": [\n      {\n        \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/assets/187443215\",\n        \"id\": 187443215,\n        \"node_id\": \"RA_kwDOIQGLK84LLCgP\",\n        \"name\": \"fixtures_pectra-devnet-3.tar.gz\",\n        \"label\": \"\",\n        \"uploader\": {\n          \"login\": \"github-actions[bot]\",\n          \"id\": 41898282,\n          \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n          \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n          \"html_url\": \"https://github.com/apps/github-actions\",\n          \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n          \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n          \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n          \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n          \"type\": \"Bot\",\n          \"user_view_type\": \"public\",\n          \"site_admin\": false\n        },\n        \"content_type\": \"application/gzip\",\n        \"state\": \"uploaded\",\n        \"size\": 16580317,\n        \"download_count\": 10,\n        \"created_at\": \"2024-08-21T16:50:53Z\",\n        \"updated_at\": \"2024-08-21T16:50:53Z\",\n        \"browser_download_url\": \"https://github.com/ethereum/execution-spec-tests/releases/download/pectra-devnet-3%40v1.0.0/fixtures_pectra-devnet-3.tar.gz\"\n      }\n    ],\n    \"tarball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/tarball/pectra-devnet-3@v1.0.0\",\n    \"zipball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/zipball/pectra-devnet-3@v1.0.0\",\n    \"body\": \"First release for Pectra Devnet-3, filled using EthereumJS transition tool implementation (thanks @jochem-brouwer!).\\r\\n\\r\\n\\r\\n###  Important Notes\\r\\n- EIP-2537 tests have been skipped for this release but will be available in a later release.\\r\\n- EIP-2935 slow tests (256+ blocks) have been skipped too.\\r\\n\\r\\n## Included EIPs\\r\\n\\r\\n- ~~[EIP-2537: Precompile for BLS12-381 curve operations](https://github.com/ethereum/EIPs/blob/032c46504b10568039ba300969010e77c795f43a/EIPS/eip-2537.md)~~ TESTS SKIPPED ONLY FOR THIS RELEASE, EIP STILL ENABLED IN DEVNET-3\\r\\n- [EIP-2935: Save historical block hashes in state](https://github.com/ethereum/EIPs/blob/45587bd019487b0bd59bec941bc0e2d708811cc8/EIPS/eip-2935.md)\\r\\n- [EIP-6110: Supply validator deposits on chain](https://github.com/ethereum/EIPs/blob/699cb15fc5ab7812d44266013876d9de81d05742/EIPS/eip-6110.md)\\r\\n- [EIP-7002: Execution layer triggerable exits](https://github.com/ethereum/EIPs/blob/f3620fabfa303fd84ee84522c744ae4a4da65cdf/EIPS/eip-7002.md)\\r\\n- [EIP-7251: Increase the MAX_EFFECTIVE_BALANCE](https://github.com/ethereum/EIPs/blob/bc91716ef2863c3bcab0d4d8ff013e24bf4999c2/EIPS/eip-7251.md)\\r\\n- [EIP-7685: General purpose execution layer requests](https://github.com/ethereum/EIPs/blob/b27b3f1c1b8252d178c0a7d4bcf6480c8bcb2159/EIPS/eip-7685.md)\\r\\n- [EIP-7702: Set EOA account code for one transaction](https://github.com/ethereum/EIPs/blob/d87a570a5baedff7b0a71d79de3ff4f14cee0990/EIPS/eip-7702.md)\\r\\n\\r\\n## Missing EIPs\\r\\n- [EIP-7692: EVM Object Format (EOFv1) Meta](https://github.com/ethereum/EIPs/blob/ad9bf2bd83c1018f0a892e03ad3b524cc441257e/EIPS/eip-7692.md)\\r\\n\\r\\n**Full Changelog**: https://github.com/ethereum/execution-spec-tests/compare/v3.0.0...pectra-devnet-3@v1.0.0\",\n    \"reactions\": {\n      \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/171316015/reactions\",\n      \"total_count\": 4,\n      \"+1\": 0,\n      \"-1\": 0,\n      \"laugh\": 0,\n      \"hooray\": 0,\n      \"confused\": 0,\n      \"heart\": 0,\n      \"rocket\": 4,\n      \"eyes\": 0\n    },\n    \"mentions_count\": 1\n  },\n  {\n    \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/170379891\",\n    \"assets_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/170379891/assets\",\n    \"upload_url\": \"https://uploads.github.com/repos/ethereum/execution-spec-tests/releases/170379891/assets{?name,label}\",\n    \"html_url\": \"https://github.com/ethereum/execution-spec-tests/releases/tag/eip7692%40v1.0.8\",\n    \"id\": 170379891,\n    \"author\": {\n      \"login\": \"github-actions[bot]\",\n      \"id\": 41898282,\n      \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n      \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n      \"html_url\": \"https://github.com/apps/github-actions\",\n      \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n      \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n      \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n      \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n      \"type\": \"Bot\",\n      \"user_view_type\": \"public\",\n      \"site_admin\": false\n    },\n    \"node_id\": \"RE_kwDOIQGLK84KJ8pz\",\n    \"tag_name\": \"eip7692@v1.0.8\",\n    \"target_commitish\": \"main\",\n    \"name\": \"eip7692@v1.0.8\",\n    \"draft\": false,\n    \"prerelease\": true,\n    \"created_at\": \"2024-08-13T23:41:40Z\",\n    \"published_at\": \"2024-08-15T16:17:27Z\",\n    \"assets\": [\n      {\n        \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/assets/186158058\",\n        \"id\": 186158058,\n        \"node_id\": \"RA_kwDOIQGLK84LGIvq\",\n        \"name\": \"fixtures_eip7692-prague.tar.gz\",\n        \"label\": \"\",\n        \"uploader\": {\n          \"login\": \"github-actions[bot]\",\n          \"id\": 41898282,\n          \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n          \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n          \"html_url\": \"https://github.com/apps/github-actions\",\n          \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n          \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n          \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n          \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n          \"type\": \"Bot\",\n          \"user_view_type\": \"public\",\n          \"site_admin\": false\n        },\n        \"content_type\": \"application/gzip\",\n        \"state\": \"uploaded\",\n        \"size\": 11910702,\n        \"download_count\": 10,\n        \"created_at\": \"2024-08-15T15:00:11Z\",\n        \"updated_at\": \"2024-08-15T15:00:12Z\",\n        \"browser_download_url\": \"https://github.com/ethereum/execution-spec-tests/releases/download/eip7692%40v1.0.8/fixtures_eip7692-prague.tar.gz\"\n      },\n      {\n        \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/assets/186158059\",\n        \"id\": 186158059,\n        \"node_id\": \"RA_kwDOIQGLK84LGIvr\",\n        \"name\": \"fixtures_eip7692.tar.gz\",\n        \"label\": \"\",\n        \"uploader\": {\n          \"login\": \"github-actions[bot]\",\n          \"id\": 41898282,\n          \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n          \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n          \"html_url\": \"https://github.com/apps/github-actions\",\n          \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n          \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n          \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n          \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n          \"type\": \"Bot\",\n          \"user_view_type\": \"public\",\n          \"site_admin\": false\n        },\n        \"content_type\": \"application/gzip\",\n        \"state\": \"uploaded\",\n        \"size\": 2495738,\n        \"download_count\": 220,\n        \"created_at\": \"2024-08-15T15:00:11Z\",\n        \"updated_at\": \"2024-08-15T15:00:11Z\",\n        \"browser_download_url\": \"https://github.com/ethereum/execution-spec-tests/releases/download/eip7692%40v1.0.8/fixtures_eip7692.tar.gz\"\n      }\n    ],\n    \"tarball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/tarball/eip7692@v1.0.8\",\n    \"zipball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/zipball/eip7692@v1.0.8\",\n    \"body\": \"## What's Changed\\r\\n* new(tests): EOF - EIP-3540: Expand section size testing by @pdobacz in https://github.com/ethereum/execution-spec-tests/pull/705\\r\\n* new(tests) Deep and wide EOF subcontainers by @shemnon in https://github.com/ethereum/execution-spec-tests/pull/718\\r\\n* fix(docs): Add more cases to EOF tracker by @gumb0 in https://github.com/ethereum/execution-spec-tests/pull/723\\r\\n* new(tests): EOF - EIP-7069: Add tests by @pdobacz in https://github.com/ethereum/execution-spec-tests/pull/722\\r\\n* fix(fixtures): Fix index generation for EOF tests by @marioevz in https://github.com/ethereum/execution-spec-tests/pull/728\\r\\n* fix(docs): Add some execution cases to EOF test tracker by @gumb0 in https://github.com/ethereum/execution-spec-tests/pull/727\\r\\n* feat(fw,forks,tests): Add EVM code type marker by @marioevz in https://github.com/ethereum/execution-spec-tests/pull/610\\r\\n* new(tests): EOF - EIP-7069: Add tests, part 2. by @pdobacz in https://github.com/ethereum/execution-spec-tests/pull/730\\r\\n* feat(fw): add optional `Container.expected_bytecode` by @chfast in https://github.com/ethereum/execution-spec-tests/pull/737\\r\\n* new(tests): migrate \\\"valid\\\" EOFCREATE validation by @chfast in https://github.com/ethereum/execution-spec-tests/pull/738\\r\\n* fix(docs): Add stack validation cases to EOF tracker by @gumb0 in https://github.com/ethereum/execution-spec-tests/pull/735\\r\\n* new(tests): EOF - EIP-3540: migrate tests for truncated sections by @chfast in https://github.com/ethereum/execution-spec-tests/pull/740\\r\\n* feat(plugins,forks,github): Allow dual-feature (Prague+Cancun) build on EOF releases by @marioevz in https://github.com/ethereum/execution-spec-tests/pull/743\\r\\n* fix(docs): Add execution cases from evmone-generated tests to EOF tracker by @gumb0 in https://github.com/ethereum/execution-spec-tests/pull/742\\r\\n\\r\\n\\r\\n**Full Changelog**: https://github.com/ethereum/execution-spec-tests/compare/v3.0.0...eip7692@v1.0.8\",\n    \"mentions_count\": 5\n  },\n  {\n    \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/169640052\",\n    \"assets_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/169640052/assets\",\n    \"upload_url\": \"https://uploads.github.com/repos/ethereum/execution-spec-tests/releases/169640052/assets{?name,label}\",\n    \"html_url\": \"https://github.com/ethereum/execution-spec-tests/releases/tag/verkle%40v0.0.2\",\n    \"id\": 169640052,\n    \"author\": {\n      \"login\": \"github-actions[bot]\",\n      \"id\": 41898282,\n      \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n      \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n      \"html_url\": \"https://github.com/apps/github-actions\",\n      \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n      \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n      \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n      \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n      \"type\": \"Bot\",\n      \"user_view_type\": \"public\",\n      \"site_admin\": false\n    },\n    \"node_id\": \"RE_kwDOIQGLK84KHIB0\",\n    \"tag_name\": \"verkle@v0.0.2\",\n    \"target_commitish\": \"main\",\n    \"name\": \"verkle@v0.0.2\",\n    \"draft\": false,\n    \"prerelease\": true,\n    \"created_at\": \"2024-08-10T18:46:36Z\",\n    \"published_at\": \"2024-08-10T19:21:58Z\",\n    \"assets\": [\n      {\n        \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/assets/185158406\",\n        \"id\": 185158406,\n        \"node_id\": \"RA_kwDOIQGLK84LCUsG\",\n        \"name\": \"fixtures_verkle-conversion-stride-0.tar.gz\",\n        \"label\": \"\",\n        \"uploader\": {\n          \"login\": \"github-actions[bot]\",\n          \"id\": 41898282,\n          \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n          \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n          \"html_url\": \"https://github.com/apps/github-actions\",\n          \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n          \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n          \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n          \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n          \"type\": \"Bot\",\n          \"user_view_type\": \"public\",\n          \"site_admin\": false\n        },\n        \"content_type\": \"application/gzip\",\n        \"state\": \"uploaded\",\n        \"size\": 1153328,\n        \"download_count\": 2,\n        \"created_at\": \"2024-08-10T19:08:40Z\",\n        \"updated_at\": \"2024-08-10T19:08:40Z\",\n        \"browser_download_url\": \"https://github.com/ethereum/execution-spec-tests/releases/download/verkle%40v0.0.2/fixtures_verkle-conversion-stride-0.tar.gz\"\n      },\n      {\n        \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/assets/185158405\",\n        \"id\": 185158405,\n        \"node_id\": \"RA_kwDOIQGLK84LCUsF\",\n        \"name\": \"fixtures_verkle-genesis.tar.gz\",\n        \"label\": \"\",\n        \"uploader\": {\n          \"login\": \"github-actions[bot]\",\n          \"id\": 41898282,\n          \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n          \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n          \"html_url\": \"https://github.com/apps/github-actions\",\n          \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n          \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n          \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n          \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n          \"type\": \"Bot\",\n          \"user_view_type\": \"public\",\n          \"site_admin\": false\n        },\n        \"content_type\": \"application/gzip\",\n        \"state\": \"uploaded\",\n        \"size\": 941999,\n        \"download_count\": 1,\n        \"created_at\": \"2024-08-10T19:08:40Z\",\n        \"updated_at\": \"2024-08-10T19:08:40Z\",\n        \"browser_download_url\": \"https://github.com/ethereum/execution-spec-tests/releases/download/verkle%40v0.0.2/fixtures_verkle-genesis.tar.gz\"\n      }\n    ],\n    \"tarball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/tarball/verkle@v0.0.2\",\n    \"zipball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/zipball/verkle@v0.0.2\",\n    \"body\": \"\\r\\n⚠️ **Note these tests are up to date with the devnet-6 spec!**\\r\\n\\r\\n**This release is equivalent to [verkle@v0.0.1](https://github.com/ethereum/execution-spec-tests/releases/tag/verkle%40v0.0.1) but with the addition of Shanghai genesis tests within the conversion fixture set.**\\r\\n\\r\\n**Full Changelog**: https://github.com/ethereum/execution-spec-tests/compare/verkle@v0.0.1...verkle@v0.0.2\\r\\n\\r\\n## 🌪️ Fixture Format Changes\\r\\n\\r\\nAll fixtures now contain a block witness although currently without the parent state root.\\r\\n```python\\r\\nclass Witness(CamelModel):\\r\\n    state_diff: StateDiff\\r\\n    verkle_proof: VerkleProof\\r\\n```\\r\\nClient test consumers can now utilize this to compare there computed block witness against the witness present within the fixtures (computed from geth's t8n).\\r\\n\\r\\nFor more information on our witness definition please adhere to [`src/ethereum_test_types/verkle/types.py`](https://github.com/jsign/execution-spec-tests/blob/jsign-verkle-rebased-mainnet/src/ethereum_test_types/verkle/types.py).\\r\\n\\r\\nAdditionally the post state is removed. Future fixture releases will contain the post state as a VKT.\\r\\n\\r\\n## 🐘 Verkle Genesis Test Fixtures\\r\\n\\r\\nContains verkle specific test vectors from https://github.com/ethereum/execution-spec-tests/pull/659 including all existing EEST test cases filled for a verkle configured fork. Note these tests assume the MPT to VKT conversion has completed where we start at the Verkle fork.\\r\\n\\r\\nPlease use `fixtures_verkle-genesis.tar.gz`!\\r\\n\\r\\n### Generating Genesis Fixtures\\r\\n\\r\\nUsing the geth evm binary from this [commit](https://github.com/gballet/go-ethereum/pull/466/commits/47addd7be52f2e07743aa2f4710236f463c5afdf), fill with the following command:\\r\\n```\\r\\nfill --fork Verkle --evm-bin=<path_to_geth_evm>/evm -n auto -m blockchain_test\\r\\n```\\r\\n\\r\\n## 🔁 Verkle Conversion Test Fixtures - 0 Stride\\r\\n\\r\\nContains an improvement to the initial set of transition [tests](https://github.com/ethereum/execution-spec-tests/releases/tag/eip6800%40v0.0.1).\\r\\n\\r\\nThese aim to verify a basic fork transition from Shanghai to Verkle. 0 stride denotes that the initial MPT remains frozen. Thus the MPT is not being converted to a VKT within these tests. The intention is to check that **only blocks after the transition** update the VKT, isolating VKT fork transition issues without touching MPT stride conversion logic.\\r\\n\\r\\nTest cases additionally include Shanghai genesis tests to assert that the fork before Verkle is not broken.\\r\\n\\r\\nThe next release will contain conversion tests with some stride enabled to dynamically validate the MPT conversion.\\r\\n\\r\\nPlease use `fixtures_verkle-conversion-stride-0.tar.gz`!\\r\\n\\r\\n### Generating Conversion Fixtures\\r\\n\\r\\nUsing the geth evm binary from this [commit](https://github.com/gballet/go-ethereum/pull/466/commits/47addd7be52f2e07743aa2f4710236f463c5afdf), fill with the following command:\\r\\n```\\r\\nfill --from Shanghai --until EIP6800Transition --evm-bin=<path_to_geth_evm>/evm -n auto -m blockchain_test\\r\\n```\\r\\n\",\n    \"reactions\": {\n      \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/169640052/reactions\",\n      \"total_count\": 1,\n      \"+1\": 0,\n      \"-1\": 0,\n      \"laugh\": 0,\n      \"hooray\": 0,\n      \"confused\": 0,\n      \"heart\": 0,\n      \"rocket\": 1,\n      \"eyes\": 0\n    }\n  },\n  {\n    \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/169420898\",\n    \"assets_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/169420898/assets\",\n    \"upload_url\": \"https://uploads.github.com/repos/ethereum/execution-spec-tests/releases/169420898/assets{?name,label}\",\n    \"html_url\": \"https://github.com/ethereum/execution-spec-tests/releases/tag/verkle%40v0.0.1\",\n    \"id\": 169420898,\n    \"author\": {\n      \"login\": \"github-actions[bot]\",\n      \"id\": 41898282,\n      \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n      \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n      \"html_url\": \"https://github.com/apps/github-actions\",\n      \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n      \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n      \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n      \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n      \"type\": \"Bot\",\n      \"user_view_type\": \"public\",\n      \"site_admin\": false\n    },\n    \"node_id\": \"RE_kwDOIQGLK84KGShi\",\n    \"tag_name\": \"verkle@v0.0.1\",\n    \"target_commitish\": \"main\",\n    \"name\": \"verkle@v0.0.1\",\n    \"draft\": false,\n    \"prerelease\": true,\n    \"created_at\": \"2024-08-08T22:23:18Z\",\n    \"published_at\": \"2024-08-08T23:32:32Z\",\n    \"assets\": [\n      {\n        \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/assets/184817013\",\n        \"id\": 184817013,\n        \"node_id\": \"RA_kwDOIQGLK84LBBV1\",\n        \"name\": \"fixtures_verkle-conversion-stride-0.tar.gz\",\n        \"label\": \"\",\n        \"uploader\": {\n          \"login\": \"github-actions[bot]\",\n          \"id\": 41898282,\n          \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n          \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n          \"html_url\": \"https://github.com/apps/github-actions\",\n          \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n          \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n          \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n          \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n          \"type\": \"Bot\",\n          \"user_view_type\": \"public\",\n          \"site_admin\": false\n        },\n        \"content_type\": \"application/gzip\",\n        \"state\": \"uploaded\",\n        \"size\": 908777,\n        \"download_count\": 2,\n        \"created_at\": \"2024-08-08T22:45:40Z\",\n        \"updated_at\": \"2024-08-08T22:45:40Z\",\n        \"browser_download_url\": \"https://github.com/ethereum/execution-spec-tests/releases/download/verkle%40v0.0.1/fixtures_verkle-conversion-stride-0.tar.gz\"\n      },\n      {\n        \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/assets/184817014\",\n        \"id\": 184817014,\n        \"node_id\": \"RA_kwDOIQGLK84LBBV2\",\n        \"name\": \"fixtures_verkle-genesis.tar.gz\",\n        \"label\": \"\",\n        \"uploader\": {\n          \"login\": \"github-actions[bot]\",\n          \"id\": 41898282,\n          \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n          \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n          \"html_url\": \"https://github.com/apps/github-actions\",\n          \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n          \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n          \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n          \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n          \"type\": \"Bot\",\n          \"user_view_type\": \"public\",\n          \"site_admin\": false\n        },\n        \"content_type\": \"application/gzip\",\n        \"state\": \"uploaded\",\n        \"size\": 941979,\n        \"download_count\": 2,\n        \"created_at\": \"2024-08-08T22:45:40Z\",\n        \"updated_at\": \"2024-08-08T22:45:41Z\",\n        \"browser_download_url\": \"https://github.com/ethereum/execution-spec-tests/releases/download/verkle%40v0.0.1/fixtures_verkle-genesis.tar.gz\"\n      }\n    ],\n    \"tarball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/tarball/verkle@v0.0.1\",\n    \"zipball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/zipball/verkle@v0.0.1\",\n    \"body\": \"⚠️ **Note these tests are up to date with the devnet-6 spec!**\\r\\n\\r\\n## 🌪️ Fixture Format Changes\\r\\n\\r\\nAll fixtures now contain a block witness although currently without the parent state root.\\r\\n```python\\r\\nclass Witness(CamelModel):\\r\\n    state_diff: StateDiff\\r\\n    verkle_proof: VerkleProof\\r\\n```\\r\\nClient test consumers can now utilize this to compare there computed block witness against the witness present within the fixtures (computed from geth's t8n).\\r\\n\\r\\nFor more information on our witness definition please adhere to [`src/ethereum_test_types/verkle/types.py`](https://github.com/jsign/execution-spec-tests/blob/jsign-verkle-rebased-mainnet/src/ethereum_test_types/verkle/types.py).\\r\\n\\r\\nAdditionally the post state is removed. Future fixture releases will contain the post state as a VKT.\\r\\n\\r\\n## 🐘 Verkle Genesis Test Fixtures\\r\\n\\r\\nContains verkle specific test vectors from https://github.com/ethereum/execution-spec-tests/pull/659 including all existing EEST test cases filled for a verkle configured fork. Note these tests assume the MPT to VKT conversion has completed where we start at the Verkle fork.\\r\\n\\r\\nPlease use `fixtures_verkle-genesis.tar.gz`!\\r\\n\\r\\n### Generating Genesis Fixtures\\r\\n\\r\\nUsing the geth evm binary from this [commit](https://github.com/gballet/go-ethereum/pull/466/commits/47addd7be52f2e07743aa2f4710236f463c5afdf), fill with the following command:\\r\\n```\\r\\nfill --fork Verkle --evm-bin=<path_to_geth_evm>/evm -n auto -m blockchain_test\\r\\n```\\r\\n\\r\\n## 🔁 Verkle Conversion Test Fixtures - 0 Stride\\r\\n\\r\\nContains an improvement to the initial set of transition [tests](https://github.com/ethereum/execution-spec-tests/releases/tag/eip6800%40v0.0.1).\\r\\n\\r\\nThese aim to verify a basic fork transition from Shanghai to Verkle. 0 stride denotes that the initial MPT remains frozen. Thus the MPT is not being converted to a VKT within these tests. The intention is to check that **only blocks after the transition** update the VKT, isolating VKT fork transition issues without touching MPT stride conversion logic.\\r\\n\\r\\nThe next release will contain conversion tests with some stride enabled to dynamically validate the MPT conversion.\\r\\n\\r\\nPlease use `fixtures_verkle-conversion-stride-0.tar.gz`!\\r\\n\\r\\n### Generating Conversion Fixtures\\r\\n\\r\\nUsing the geth evm binary from this [commit](https://github.com/gballet/go-ethereum/pull/466/commits/47addd7be52f2e07743aa2f4710236f463c5afdf), fill with the following command:\\r\\n```\\r\\nfill --fork EIP6800Transition --evm-bin=<path_to_geth_evm>/evm -n auto -m blockchain_test\\r\\n```\\r\\n\"\n  },\n  {\n    \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/166538302\",\n    \"assets_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/166538302/assets\",\n    \"upload_url\": \"https://uploads.github.com/repos/ethereum/execution-spec-tests/releases/166538302/assets{?name,label}\",\n    \"html_url\": \"https://github.com/ethereum/execution-spec-tests/releases/tag/v3.0.0\",\n    \"id\": 166538302,\n    \"author\": {\n      \"login\": \"github-actions[bot]\",\n      \"id\": 41898282,\n      \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n      \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n      \"html_url\": \"https://github.com/apps/github-actions\",\n      \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n      \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n      \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n      \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n      \"type\": \"Bot\",\n      \"user_view_type\": \"public\",\n      \"site_admin\": false\n    },\n    \"node_id\": \"RE_kwDOIQGLK84J7Sw-\",\n    \"tag_name\": \"v3.0.0\",\n    \"target_commitish\": \"main\",\n    \"name\": \" Petřín (v3.0.0)\",\n    \"draft\": false,\n    \"prerelease\": false,\n    \"created_at\": \"2024-07-23T18:34:24Z\",\n    \"published_at\": \"2024-07-23T23:43:55Z\",\n    \"assets\": [\n      {\n        \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/assets/183049828\",\n        \"id\": 183049828,\n        \"node_id\": \"RA_kwDOIQGLK84K6R5k\",\n        \"name\": \"fixtures_develop.tar.gz\",\n        \"label\": null,\n        \"uploader\": {\n          \"login\": \"spencer-tb\",\n          \"id\": 60348173,\n          \"node_id\": \"MDQ6VXNlcjYwMzQ4MTcz\",\n          \"avatar_url\": \"https://avatars.githubusercontent.com/u/60348173?v=4\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/spencer-tb\",\n          \"html_url\": \"https://github.com/spencer-tb\",\n          \"followers_url\": \"https://api.github.com/users/spencer-tb/followers\",\n          \"following_url\": \"https://api.github.com/users/spencer-tb/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/spencer-tb/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/spencer-tb/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/spencer-tb/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/spencer-tb/orgs\",\n          \"repos_url\": \"https://api.github.com/users/spencer-tb/repos\",\n          \"events_url\": \"https://api.github.com/users/spencer-tb/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/spencer-tb/received_events\",\n          \"type\": \"User\",\n          \"user_view_type\": \"public\",\n          \"site_admin\": false\n        },\n        \"content_type\": \"application/x-gzip\",\n        \"state\": \"uploaded\",\n        \"size\": 21746751,\n        \"download_count\": 3396,\n        \"created_at\": \"2024-07-31T20:47:41Z\",\n        \"updated_at\": \"2024-07-31T20:48:01Z\",\n        \"browser_download_url\": \"https://github.com/ethereum/execution-spec-tests/releases/download/v3.0.0/fixtures_develop.tar.gz\"\n      },\n      {\n        \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/assets/181430588\",\n        \"id\": 181430588,\n        \"node_id\": \"RA_kwDOIQGLK84K0Gk8\",\n        \"name\": \"fixtures_eip7692.tar.gz\",\n        \"label\": \"\",\n        \"uploader\": {\n          \"login\": \"github-actions[bot]\",\n          \"id\": 41898282,\n          \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n          \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n          \"html_url\": \"https://github.com/apps/github-actions\",\n          \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n          \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n          \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n          \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n          \"type\": \"Bot\",\n          \"user_view_type\": \"public\",\n          \"site_admin\": false\n        },\n        \"content_type\": \"application/gzip\",\n        \"state\": \"uploaded\",\n        \"size\": 2075015,\n        \"download_count\": 8,\n        \"created_at\": \"2024-07-23T23:38:17Z\",\n        \"updated_at\": \"2024-07-23T23:38:17Z\",\n        \"browser_download_url\": \"https://github.com/ethereum/execution-spec-tests/releases/download/v3.0.0/fixtures_eip7692.tar.gz\"\n      },\n      {\n        \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/assets/181430589\",\n        \"id\": 181430589,\n        \"node_id\": \"RA_kwDOIQGLK84K0Gk9\",\n        \"name\": \"fixtures_stable.tar.gz\",\n        \"label\": \"\",\n        \"uploader\": {\n          \"login\": \"github-actions[bot]\",\n          \"id\": 41898282,\n          \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n          \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n          \"html_url\": \"https://github.com/apps/github-actions\",\n          \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n          \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n          \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n          \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n          \"type\": \"Bot\",\n          \"user_view_type\": \"public\",\n          \"site_admin\": false\n        },\n        \"content_type\": \"application/gzip\",\n        \"state\": \"uploaded\",\n        \"size\": 2847936,\n        \"download_count\": 24258,\n        \"created_at\": \"2024-07-23T23:38:17Z\",\n        \"updated_at\": \"2024-07-23T23:38:17Z\",\n        \"browser_download_url\": \"https://github.com/ethereum/execution-spec-tests/releases/download/v3.0.0/fixtures_stable.tar.gz\"\n      }\n    ],\n    \"tarball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/tarball/v3.0.0\",\n    \"zipball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/zipball/v3.0.0\",\n    \"body\": \"EEST's Petřín release adds many improvements and additions. Please read the breaking changes!\\r\\n\\r\\nA notable key package `ethereum_test_tools` is now fragmented into several fine grained packages that are suitable for use within other Python based repositories.\\r\\n\\r\\nThe consume simulator pytest plugin now contains 4 fixture runners:\\r\\n- `consume direct`: provides a pytest wrapper to execute multiple fixtures against client evm `statetest/blocktest` runners.\\r\\n- `consume rlp`: using hive as a back-end, executes fixture block rlps against fully instantiated clients, verifying the last block hash is expected.\\r\\n- `consume engine`: with a hive back-end, sends `engine_newPayloadVX` calls against fully instantiated clients validating each call response.\\r\\n- `consume all`: provides a wrapper surrounding all commands to execute consume direct, rlp and engine at once for the specified fixtures.\\r\\n\\r\\nWith a refined consume suite, testers can now `fill` and `consume` the generated fixtures extremely quickly to validate both the generated fixture and client implementation. This removes the cumbersome requirement of updating hive when verifying new fixtures.\\r\\n\\r\\nTo align the [execution-apis](https://github.com/ethereum/execution-apis/) engine specification with the `consume engine` plugin, the `blockchain_test_hive` fixture is renamed to `blockchain_test_engine` to align more with the sentiment of the spec. Similarly, the fixture format of the latter is changed to match the engine new payload `\\\"params\\\"` field defined in the spec.\\r\\n\\r\\n---\\r\\n\\r\\n### 💥 Breaking Changes\\r\\n\\r\\n- Cancun is now the latest deployed fork, and the development fork is now Prague ([#489](https://github.com/ethereum/execution-spec-tests/pull/489)).\\r\\n- Stable fixtures artifact `fixtures.tar.gz` has been renamed to `fixtures_stable.tar.gz` ([#573](https://github.com/ethereum/execution-spec-tests/pull/573))\\r\\n- The \\\"Blockchain Test Hive\\\" fixture format has been renamed to \\\"Blockchain Test Engine\\\" and updated to more closely resemble the `engine_newPayload` format in the `execution-apis` specification (https://github.com/ethereum/execution-apis/blob/main/src/engine/prague.md#request) and now contains a single `\\\"params\\\"` field instead of multiple fields for each parameter ([#687](https://github.com/ethereum/execution-spec-tests/pull/687)).\\r\\n- Output folder for fixtures has been renamed from \\\"blockchain_tests_hive\\\" to \\\"blockchain_tests_engine\\\" ([#687](https://github.com/ethereum/execution-spec-tests/pull/687)).\\r\\n\\r\\n### 🧪 Test Cases\\r\\n\\r\\n- ✨ Add tests for eof container's section bytes position smart fuzzing ([#592](https://github.com/ethereum/execution-spec-tests/pull/592)).\\r\\n- ✨ Add `test_create_selfdestruct_same_tx_increased_nonce` which tests self-destructing a contract with a nonce > 1 ([#478](https://github.com/ethereum/execution-spec-tests/pull/478)).\\r\\n- ✨ Add `test_double_kill` and `test_recreate` which test resurrection of accounts killed with `SELFDESTRUCT` ([#488](https://github.com/ethereum/execution-spec-tests/pull/488)).\\r\\n- ✨ Add eof example valid invalid tests from ori, fetch EOF Container implementation ([#535](https://github.com/ethereum/execution-spec-tests/pull/535)).\\r\\n- ✨ Add tests for [EIP-2537: Precompile for BLS12-381 curve operations](https://eips.ethereum.org/EIPS/eip-2537) ([#499](https://github.com/ethereum/execution-spec-tests/pull/499)).\\r\\n- ✨ [EIP-663](https://eips.ethereum.org/EIPS/eip-663): Add `test_dupn.py` and `test_swapn.py` ([#502](https://github.com/ethereum/execution-spec-tests/pull/502)).\\r\\n- ✨ Add tests for [EIP-6110: Supply validator deposits on chain](https://eips.ethereum.org/EIPS/eip-6110) ([#530](https://github.com/ethereum/execution-spec-tests/pull/530)).\\r\\n- ✨ Add tests for [EIP-7002: Execution layer triggerable withdrawals](https://eips.ethereum.org/EIPS/eip-7002) ([#530](https://github.com/ethereum/execution-spec-tests/pull/530)).\\r\\n- ✨ Add tests for [EIP-7685: General purpose execution layer requests](https://eips.ethereum.org/EIPS/eip-7685) ([#530](https://github.com/ethereum/execution-spec-tests/pull/530)).\\r\\n- ✨ Add tests for [EIP-2935: Serve historical block hashes from state](https://eips.ethereum.org/EIPS/eip-2935) ([#564](https://github.com/ethereum/execution-spec-tests/pull/564), [#585](https://github.com/ethereum/execution-spec-tests/pull/585)).\\r\\n- ✨ Add tests for [EIP-4200: EOF - Static relative jumps](https://eips.ethereum.org/EIPS/eip-4200) ([#581](https://github.com/ethereum/execution-spec-tests/pull/581), [#666](https://github.com/ethereum/execution-spec-tests/pull/666)).\\r\\n- ✨ Add tests for [EIP-7069: EOF - Revamped CALL instructions](https://eips.ethereum.org/EIPS/eip-7069) ([#595](https://github.com/ethereum/execution-spec-tests/pull/595)).\\r\\n- 🐞 Fix typos in self-destruct collision test from erroneous pytest parametrization ([#608](https://github.com/ethereum/execution-spec-tests/pull/608)).\\r\\n- ✨ Add tests for [EIP-3540: EOF - EVM Object Format v1](https://eips.ethereum.org/EIPS/eip-3540) ([#634](https://github.com/ethereum/execution-spec-tests/pull/634), [#668](https://github.com/ethereum/execution-spec-tests/pull/668)).\\r\\n- 🔀 Update EIP-7002 tests to match spec changes in [ethereum/execution-apis#549](https://github.com/ethereum/execution-apis/pull/549) ([#600](https://github.com/ethereum/execution-spec-tests/pull/600))\\r\\n- ✨ Convert a few eip1153 tests from ethereum/tests repo into .py ([#440](https://github.com/ethereum/execution-spec-tests/pull/440)).\\r\\n- ✨ Add tests for [EIP-7480: EOF - Data section access instructions](https://eips.ethereum.org/EIPS/eip-7480) ([#518](https://github.com/ethereum/execution-spec-tests/pull/518), [#664](https://github.com/ethereum/execution-spec-tests/pull/664)).\\r\\n- ✨ Add tests for subcontainer kind validation from [EIP-7620: EOF Contract Creation](https://eips.ethereum.org/EIPS/eip-7620) for the cases with deeply nested containers and non-first code sections ([#676](https://github.com/ethereum/execution-spec-tests/pull/676)).\\r\\n- ✨ Add tests for runtime stack overflow at CALLF instruction from [EIP-4750: EOF - Functions](https://eips.ethereum.org/EIPS/eip-4750) ([#678](https://github.com/ethereum/execution-spec-tests/pull/678)).\\r\\n- ✨ Add tests for runtime stack overflow at JUMPF instruction from [EIP-6206: EOF - JUMPF and non-returning functions](https://eips.ethereum.org/EIPS/eip-6206) ([#690](https://github.com/ethereum/execution-spec-tests/pull/690)).\\r\\n- ✨ Add tests for [EIP-7251: Increase the MAX_EFFECTIVE_BALANCE](https://eips.ethereum.org/EIPS/eip-7251) ([#642](https://github.com/ethereum/execution-spec-tests/pull/642))\\r\\n- ✨ Add tests for Devnet-1 version of [EIP-7702: Set EOA account code](https://eips.ethereum.org/EIPS/eip-7702) ([#621](https://github.com/ethereum/execution-spec-tests/pull/621))\\r\\n\\r\\n### 🛠️ Framework\\r\\n\\r\\n- 🐞 Fix incorrect `!=` operator for `FixedSizeBytes` ([#477](https://github.com/ethereum/execution-spec-tests/pull/477)).\\r\\n- ✨ Add Macro enum that represents byte sequence of Op instructions ([#457](https://github.com/ethereum/execution-spec-tests/pull/457))\\r\\n- ✨ Number of parameters used to call opcodes (to generate bytecode) is now checked ([#492](https://github.com/ethereum/execution-spec-tests/pull/492)).\\r\\n- ✨ Libraries have been refactored to use `pydantic` for type checking in most test types ([#486](https://github.com/ethereum/execution-spec-tests/pull/486), [#501](https://github.com/ethereum/execution-spec-tests/pull/501), [#508](https://github.com/ethereum/execution-spec-tests/pull/508)).\\r\\n- ✨ Opcodes are now subscriptable and it's used to define the data portion of the opcode: `Op.PUSH1(1) == Op.PUSH1[1]  == b\\\"\\\\x60\\\\x01\\\"` ([#513](https://github.com/ethereum/execution-spec-tests/pull/513))\\r\\n- ✨ Added EOF fixture format ([#512](https://github.com/ethereum/execution-spec-tests/pull/512)).\\r\\n- ✨ Verify filled EOF fixtures using `evmone-eofparse` during `fill` execution ([#519](https://github.com/ethereum/execution-spec-tests/pull/519)).\\r\\n- ✨ Added `--traces` support when running with Hyperledger Besu ([#511](https://github.com/ethereum/execution-spec-tests/pull/511)).\\r\\n- ✨ Use pytest's \\\"short\\\" traceback style (`--tb=short`) for failure summaries in the test report for more compact terminal output ([#542](https://github.com/ethereum/execution-spec-tests/pull/542)).\\r\\n- ✨ The `fill` command now generates HTML test reports with links to the JSON fixtures and debug information ([#537](https://github.com/ethereum/execution-spec-tests/pull/537)).\\r\\n- ✨ Add an Ethereum RPC client class for use with consume commands ([#556](https://github.com/ethereum/execution-spec-tests/pull/556)).\\r\\n- ✨ Add a \\\"slow\\\" pytest marker, in order to be able to limit the filled tests until release ([#562](https://github.com/ethereum/execution-spec-tests/pull/562)).\\r\\n- ✨ Add a CLI tool that generates blockchain tests as Python from a transaction hash ([#470](https://github.com/ethereum/execution-spec-tests/pull/470), [#576](https://github.com/ethereum/execution-spec-tests/pull/576)).\\r\\n- ✨ Add more Transaction and Block exceptions from existing ethereum/tests repo ([#572](https://github.com/ethereum/execution-spec-tests/pull/572)).\\r\\n- ✨ Add \\\"description\\\" and \\\"url\\\" fields containing test case documentation and a source code permalink to fixtures during `fill` and use them in `consume`-generated Hive test reports ([#579](https://github.com/ethereum/execution-spec-tests/pull/579)).\\r\\n- ✨ Add git workflow evmone coverage script for any new lines mentioned in converted_ethereum_tests.txt ([#503](https://github.com/ethereum/execution-spec-tests/pull/503)).\\r\\n- ✨ Add a new covariant marker `with_all_contract_creating_tx_types` that allows automatic parametrization of a test with all contract-creating transaction types at the current executing fork ([#602](https://github.com/ethereum/execution-spec-tests/pull/602)).\\r\\n- ✨ Tests are now encouraged to declare a `pre: Alloc` parameter to get the pre-allocation object for the test, and use `pre.deploy_contract` and `pre.fund_eoa` to deploy contracts and fund accounts respectively, instead of declaring the `pre` as a dictionary or modifying its contents directly (see the [state test tutorial](https://eest.ethereum.org/main/tutorials/state_transition/) for an updated example) ([#584](https://github.com/ethereum/execution-spec-tests/pull/584)).\\r\\n- ✨ Enable loading of [ethereum/tests/BlockchainTests](https://github.com/ethereum/tests/tree/develop/BlockchainTests) ([#596](https://github.com/ethereum/execution-spec-tests/pull/596)).\\r\\n- 🔀 Refactor `gentest` to use `ethereum_test_tools.rpc.rpc` by adding to `get_transaction_by_hash`, `debug_trace_call` to `EthRPC` ([#568](https://github.com/ethereum/execution-spec-tests/pull/568)).\\r\\n- ✨ Write a properties file to the output directory and enable direct generation of a fixture tarball from `fill` via `--output=fixtures.tgz`([#627](https://github.com/ethereum/execution-spec-tests/pull/627)).\\r\\n- 🔀 `ethereum_test_tools` library has been split into multiple libraries ([#645](https://github.com/ethereum/execution-spec-tests/pull/645)).\\r\\n- ✨ Add the consume engine simulator and refactor the consume simulator suite. ([#691](https://github.com/ethereum/execution-spec-tests/pull/691)).\\r\\n\\r\\n### 📋 Misc\\r\\n\\r\\n- 🐞 Fix CI by using Golang 1.21 in Github Actions to build geth ([#484](https://github.com/ethereum/execution-spec-tests/pull/484)).\\r\\n- 💥 \\\"Merge\\\" has been renamed to \\\"Paris\\\" in the \\\"network\\\" field of the Blockchain tests, and in the \\\"post\\\" field of the State tests ([#480](https://github.com/ethereum/execution-spec-tests/pull/480)).\\r\\n- ✨ Port entry point scripts to use [click](https://click.palletsprojects.com) and add tests ([#483](https://github.com/ethereum/execution-spec-tests/pull/483)).\\r\\n- 💥 As part of the pydantic conversion, the fixtures have the following (possibly breaking) changes ([#486](https://github.com/ethereum/execution-spec-tests/pull/486)):\\r\\n  - State test field `transaction` now uses the proper zero-padded hex number format for fields `maxPriorityFeePerGas`, `maxFeePerGas`, and `maxFeePerBlobGas`\\r\\n  - Fixtures' hashes (in the `_info` field) are now calculated by removing the \\\"_info\\\" field entirely instead of it being set to an empty dict.\\r\\n- 🐞 Relax minor and patch dependency requirements to avoid conflicting package dependencies ([#510](https://github.com/ethereum/execution-spec-tests/pull/510)).\\r\\n- 🔀 Update all CI actions to use their respective Node.js 20 versions, ahead of their Node.js 16 version deprecations ([#527](https://github.com/ethereum/execution-spec-tests/pull/527)).\\r\\n- ✨ Releases now contain a `fixtures_eip7692.tar.gz` which contains all EOF fixtures ([#573](https://github.com/ethereum/execution-spec-tests/pull/573)).\\r\\n- ✨ Use `solc-select` for tox when running locally and within CI ([#604](https://github.com/ethereum/execution-spec-tests/pull/604)).\\r\\n\\r\\n\\r\\n## New Contributors\\r\\n* @raxhvl made their first contribution in https://github.com/ethereum/execution-spec-tests/pull/482\\r\\n* @yperbasis made their first contribution in https://github.com/ethereum/execution-spec-tests/pull/488\\r\\n* @redistay made their first contribution in https://github.com/ethereum/execution-spec-tests/pull/493\\r\\n* @hanghuge made their first contribution in https://github.com/ethereum/execution-spec-tests/pull/495\\r\\n* @gumb0 made their first contribution in https://github.com/ethereum/execution-spec-tests/pull/559\\r\\n* @artemd24 made their first contribution in https://github.com/ethereum/execution-spec-tests/pull/568\\r\\n* @pdobacz made their first contribution in https://github.com/ethereum/execution-spec-tests/pull/614\\r\\n* @raymondnguyen8 made their first contribution in https://github.com/ethereum/execution-spec-tests/pull/632\\r\\n\\r\\n**Full Changelog**: https://github.com/ethereum/execution-spec-tests/compare/v2.1.1...v3.0.0\",\n    \"reactions\": {\n      \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/166538302/reactions\",\n      \"total_count\": 2,\n      \"+1\": 0,\n      \"-1\": 0,\n      \"laugh\": 0,\n      \"hooray\": 0,\n      \"confused\": 0,\n      \"heart\": 0,\n      \"rocket\": 2,\n      \"eyes\": 0\n    },\n    \"mentions_count\": 8\n  },\n  {\n    \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/166305534\",\n    \"assets_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/166305534/assets\",\n    \"upload_url\": \"https://uploads.github.com/repos/ethereum/execution-spec-tests/releases/166305534/assets{?name,label}\",\n    \"html_url\": \"https://github.com/ethereum/execution-spec-tests/releases/tag/eip7692%40v1.0.7\",\n    \"id\": 166305534,\n    \"author\": {\n      \"login\": \"github-actions[bot]\",\n      \"id\": 41898282,\n      \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n      \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n      \"html_url\": \"https://github.com/apps/github-actions\",\n      \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n      \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n      \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n      \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n      \"type\": \"Bot\",\n      \"user_view_type\": \"public\",\n      \"site_admin\": false\n    },\n    \"node_id\": \"RE_kwDOIQGLK84J6Z7-\",\n    \"tag_name\": \"eip7692@v1.0.7\",\n    \"target_commitish\": \"main\",\n    \"name\": \"eip7692@v1.0.7\",\n    \"draft\": false,\n    \"prerelease\": true,\n    \"created_at\": \"2024-07-19T21:16:06Z\",\n    \"published_at\": \"2024-07-19T21:33:40Z\",\n    \"assets\": [\n      {\n        \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/assets/180664153\",\n        \"id\": 180664153,\n        \"node_id\": \"RA_kwDOIQGLK84KxLdZ\",\n        \"name\": \"fixtures_eip7692.tar.gz\",\n        \"label\": \"\",\n        \"uploader\": {\n          \"login\": \"github-actions[bot]\",\n          \"id\": 41898282,\n          \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n          \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n          \"html_url\": \"https://github.com/apps/github-actions\",\n          \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n          \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n          \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n          \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n          \"type\": \"Bot\",\n          \"user_view_type\": \"public\",\n          \"site_admin\": false\n        },\n        \"content_type\": \"application/gzip\",\n        \"state\": \"uploaded\",\n        \"size\": 2075714,\n        \"download_count\": 140,\n        \"created_at\": \"2024-07-19T21:23:37Z\",\n        \"updated_at\": \"2024-07-19T21:23:38Z\",\n        \"browser_download_url\": \"https://github.com/ethereum/execution-spec-tests/releases/download/eip7692%40v1.0.7/fixtures_eip7692.tar.gz\"\n      }\n    ],\n    \"tarball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/tarball/eip7692@v1.0.7\",\n    \"zipball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/zipball/eip7692@v1.0.7\",\n    \"body\": \"## What's Changed\\r\\n* new(tests): EOF - EIP-6206: Runtime stack overflow at JUMPF by @gumb0 in https://github.com/ethereum/execution-spec-tests/pull/690\\r\\n\\r\\n**Full Changelog**: https://github.com/ethereum/execution-spec-tests/compare/eip7692@v1.0.6...eip7692@v1.0.7\",\n    \"mentions_count\": 1\n  },\n  {\n    \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/166305622\",\n    \"assets_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/166305622/assets\",\n    \"upload_url\": \"https://uploads.github.com/repos/ethereum/execution-spec-tests/releases/166305622/assets{?name,label}\",\n    \"html_url\": \"https://github.com/ethereum/execution-spec-tests/releases/tag/eip7692-prague%40v1.0.7\",\n    \"id\": 166305622,\n    \"author\": {\n      \"login\": \"github-actions[bot]\",\n      \"id\": 41898282,\n      \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n      \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n      \"html_url\": \"https://github.com/apps/github-actions\",\n      \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n      \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n      \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n      \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n      \"type\": \"Bot\",\n      \"user_view_type\": \"public\",\n      \"site_admin\": false\n    },\n    \"node_id\": \"RE_kwDOIQGLK84J6Z9W\",\n    \"tag_name\": \"eip7692-prague@v1.0.7\",\n    \"target_commitish\": \"main\",\n    \"name\": \"eip7692-prague@v1.0.7\",\n    \"draft\": false,\n    \"prerelease\": true,\n    \"created_at\": \"2024-07-19T21:16:26Z\",\n    \"published_at\": \"2024-07-19T21:34:05Z\",\n    \"assets\": [\n      {\n        \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/assets/180664380\",\n        \"id\": 180664380,\n        \"node_id\": \"RA_kwDOIQGLK84KxLg8\",\n        \"name\": \"fixtures_eip7692-prague.tar.gz\",\n        \"label\": \"\",\n        \"uploader\": {\n          \"login\": \"github-actions[bot]\",\n          \"id\": 41898282,\n          \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n          \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n          \"html_url\": \"https://github.com/apps/github-actions\",\n          \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n          \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n          \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n          \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n          \"type\": \"Bot\",\n          \"user_view_type\": \"public\",\n          \"site_admin\": false\n        },\n        \"content_type\": \"application/gzip\",\n        \"state\": \"uploaded\",\n        \"size\": 7797035,\n        \"download_count\": 6,\n        \"created_at\": \"2024-07-19T21:24:33Z\",\n        \"updated_at\": \"2024-07-19T21:24:33Z\",\n        \"browser_download_url\": \"https://github.com/ethereum/execution-spec-tests/releases/download/eip7692-prague%40v1.0.7/fixtures_eip7692-prague.tar.gz\"\n      }\n    ],\n    \"tarball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/tarball/eip7692-prague@v1.0.7\",\n    \"zipball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/zipball/eip7692-prague@v1.0.7\",\n    \"body\": \"## What's Changed\\r\\n* new(tests): EOF - EIP-6206: Runtime stack overflow at JUMPF by @gumb0 in https://github.com/ethereum/execution-spec-tests/pull/690\\r\\n\\r\\n**Full Changelog**: https://github.com/ethereum/execution-spec-tests/compare/eip7692@v1.0.6...eip7692-prague@v1.0.7\",\n    \"mentions_count\": 1\n  },\n  {\n    \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/165899819\",\n    \"assets_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/165899819/assets\",\n    \"upload_url\": \"https://uploads.github.com/repos/ethereum/execution-spec-tests/releases/165899819/assets{?name,label}\",\n    \"html_url\": \"https://github.com/ethereum/execution-spec-tests/releases/tag/eip7692%40v1.0.6\",\n    \"id\": 165899819,\n    \"author\": {\n      \"login\": \"github-actions[bot]\",\n      \"id\": 41898282,\n      \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n      \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n      \"html_url\": \"https://github.com/apps/github-actions\",\n      \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n      \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n      \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n      \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n      \"type\": \"Bot\",\n      \"user_view_type\": \"public\",\n      \"site_admin\": false\n    },\n    \"node_id\": \"RE_kwDOIQGLK84J424r\",\n    \"tag_name\": \"eip7692@v1.0.6\",\n    \"target_commitish\": \"main\",\n    \"name\": \"eip7692@v1.0.6\",\n    \"draft\": false,\n    \"prerelease\": true,\n    \"created_at\": \"2024-07-17T17:31:27Z\",\n    \"published_at\": \"2024-07-17T18:17:33Z\",\n    \"assets\": [\n      {\n        \"url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/releases/assets/180177698\",\n        \"id\": 180177698,\n        \"node_id\": \"RA_kwDOIQGLK84KvUsi\",\n        \"name\": \"fixtures_eip7692.tar.gz\",\n        \"label\": \"\",\n        \"uploader\": {\n          \"login\": \"github-actions[bot]\",\n          \"id\": 41898282,\n          \"node_id\": \"MDM6Qm90NDE4OTgyODI=\",\n          \"avatar_url\": \"https://avatars.githubusercontent.com/in/15368?v=4\",\n          \"gravatar_id\": \"\",\n          \"url\": \"https://api.github.com/users/github-actions%5Bbot%5D\",\n          \"html_url\": \"https://github.com/apps/github-actions\",\n          \"followers_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/followers\",\n          \"following_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}\",\n          \"gists_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}\",\n          \"starred_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}\",\n          \"subscriptions_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions\",\n          \"organizations_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/orgs\",\n          \"repos_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/repos\",\n          \"events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}\",\n          \"received_events_url\": \"https://api.github.com/users/github-actions%5Bbot%5D/received_events\",\n          \"type\": \"Bot\",\n          \"user_view_type\": \"public\",\n          \"site_admin\": false\n        },\n        \"content_type\": \"application/gzip\",\n        \"state\": \"uploaded\",\n        \"size\": 2057949,\n        \"download_count\": 14,\n        \"created_at\": \"2024-07-17T17:39:35Z\",\n        \"updated_at\": \"2024-07-17T17:39:35Z\",\n        \"browser_download_url\": \"https://github.com/ethereum/execution-spec-tests/releases/download/eip7692%40v1.0.6/fixtures_eip7692.tar.gz\"\n      }\n    ],\n    \"tarball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/tarball/eip7692@v1.0.6\",\n    \"zipball_url\": \"https://api.github.com/repos/ethereum/execution-spec-tests/zipball/eip7692@v1.0.6\",\n    \"body\": \"## What's Changed\\r\\n* fix(tests): EOF - EIP-4200: Organize code_validation_jump.py tests by @marioevz in https://github.com/ethereum/execution-spec-tests/pull/666\\r\\n* fix(tests): EOF - EIP-3540: EXTCODECOPY a hard-coded size for EOF target by @gurukamath in https://github.com/ethereum/execution-spec-tests/pull/667\\r\\n* new(tests): EOF - EIP-7480: Add tests for DATACOPY memory expansion by @pdobacz in https://github.com/ethereum/execution-spec-tests/pull/664\\r\\n* feat(fw): support invalid containers in EOFStateTest by @chfast in https://github.com/ethereum/execution-spec-tests/pull/665\\r\\n* fix(tests): EOF - EIP-3540: Organize code_validation.py tests by @marioevz in https://github.com/ethereum/execution-spec-tests/pull/668\\r\\n* new(tests): EOF - EIP-7620: Add more tests for validating EOF subcontainer kinds by @gumb0 in https://github.com/ethereum/execution-spec-tests/pull/676\\r\\n* new(tests): EOF - EIP-7069: RETURNDATACOPY mem expansion and copy OOG by @pdobacz in https://github.com/ethereum/execution-spec-tests/pull/671\\r\\n* fix(cli): `RJUMPV` in `evm_bytes_to_python` by @marioevz in https://github.com/ethereum/execution-spec-tests/pull/683\\r\\n* refactor(fw): Refactor `ethereum_test_tools` into separate libraries by @marioevz in https://github.com/ethereum/execution-spec-tests/pull/645\\r\\n* new(tests) EXT*CALL input data validation by @shemnon in https://github.com/ethereum/execution-spec-tests/pull/685\\r\\n* new(tests): EOF - EIP-4750: Runtime stack overflow at CALLF by @gumb0 in https://github.com/ethereum/execution-spec-tests/pull/678\\r\\n\\r\\n## New Contributors\\r\\n* @raymondnguyen8 made their first contribution in https://github.com/ethereum/execution-spec-tests/pull/632\\r\\n\\r\\n**Full Changelog**: https://github.com/ethereum/execution-spec-tests/compare/eip7692@v1.0.5...eip7692@v1.0.6\",\n    \"mentions_count\": 7\n  }\n]\n"
  },
  {
    "path": "src/pytest_plugins/consume/tests/test_consume_args.py",
    "content": "\"\"\"Test the consume plugins with various cli arguments.\"\"\"\n\nimport re\nimport shutil\nfrom pathlib import Path\nfrom typing import List\n\nimport pytest\nfrom filelock import FileLock\nfrom pytest import Pytester, TempPathFactory\n\nfrom ethereum_clis import TransitionTool\n\nMINIMAL_TEST_FILE_NAME = \"test_example.py\"\nMINIMAL_TEST_CONTENTS = \"\"\"\nfrom ethereum_test_tools import Transaction\ndef test_function(state_test, pre):\n    tx = Transaction(to=0, gas_limit=21_000, sender=pre.fund_eoa())\n    state_test(pre=pre, post={}, tx=tx)\n\"\"\"\n\n\n@pytest.fixture\ndef minimal_test_path(pytester: pytest.Pytester) -> Path:\n    \"\"\"\n    Minimal test file that's written to a file using pytester and ready to\n    fill.\n    \"\"\"\n    tests_dir = pytester.mkdir(\"tests\")\n    test_file = tests_dir / MINIMAL_TEST_FILE_NAME\n    test_file.write_text(MINIMAL_TEST_CONTENTS)\n    return test_file\n\n\n@pytest.fixture(scope=\"module\")\ndef consume_test_case_ids() -> list[str]:\n    \"\"\"Hard-coded expected output of `consume direct --collectonly -q`.\"\"\"\n    return [\n        f\"src/pytest_plugins/consume/direct/test_via_direct.py::test_fixture[CollectOnlyFixtureConsumer-tests/{MINIMAL_TEST_FILE_NAME}::test_function[fork_Cancun-blockchain_test_from_state_test]]\",\n        f\"src/pytest_plugins/consume/direct/test_via_direct.py::test_fixture[CollectOnlyFixtureConsumer-tests/{MINIMAL_TEST_FILE_NAME}::test_function[fork_Paris-blockchain_test_from_state_test]]\",\n        f\"src/pytest_plugins/consume/direct/test_via_direct.py::test_fixture[CollectOnlyFixtureConsumer-tests/{MINIMAL_TEST_FILE_NAME}::test_function[fork_Shanghai-blockchain_test_from_state_test]]\",\n        f\"src/pytest_plugins/consume/direct/test_via_direct.py::test_fixture[CollectOnlyFixtureConsumer-tests/{MINIMAL_TEST_FILE_NAME}::test_function[fork_Cancun-state_test]]\",\n        f\"src/pytest_plugins/consume/direct/test_via_direct.py::test_fixture[CollectOnlyFixtureConsumer-tests/{MINIMAL_TEST_FILE_NAME}::test_function[fork_Paris-state_test]]\",\n        f\"src/pytest_plugins/consume/direct/test_via_direct.py::test_fixture[CollectOnlyFixtureConsumer-tests/{MINIMAL_TEST_FILE_NAME}::test_function[fork_Shanghai-state_test]]\",\n    ]\n\n\n@pytest.fixture(scope=\"module\")\ndef fill_fork_from() -> str:\n    \"\"\"Specify the value for `fill`'s `--from` argument.\"\"\"\n    return \"Paris\"\n\n\n@pytest.fixture(scope=\"module\")\ndef fill_fork_until() -> str:\n    \"\"\"Specify the value for `fill`'s `--until` argument.\"\"\"\n    return \"Cancun\"\n\n\n@pytest.fixture(scope=\"module\")\ndef fixtures_dir(tmp_path_factory: TempPathFactory) -> Path:\n    \"\"\"Define the temporary test fixture directory for fill output.\"\"\"\n    return tmp_path_factory.mktemp(\"fixtures\")\n\n\n@pytest.fixture(autouse=True)\ndef fill_tests(\n    pytester: Pytester,\n    fixtures_dir: Path,\n    fill_fork_from: str,\n    fill_fork_until: str,\n    minimal_test_path: Path,\n    default_t8n: TransitionTool,\n) -> None:\n    \"\"\"\n    Run fill to generate test fixtures for use with testing consume.\n\n    We only need to do this once so ideally the scope of this fixture should be\n    \"module\", however the `pytester` fixture's scope is function and cannot be\n    accessed from a higher scope fixture.\n\n    Instead we use a file lock and only write the fixtures once to the\n    directory.\n    \"\"\"\n    with FileLock(fixtures_dir.with_suffix(\".lock\")):\n        meta_folder = fixtures_dir / \".meta\"\n        if not meta_folder.exists():\n            pytester.copy_example(name=\"src/cli/pytest_commands/pytest_ini_files/pytest-fill.ini\")\n            args = [\n                \"-c\",\n                \"pytest-fill.ini\",\n                \"-m\",\n                \"not blockchain_test_engine\",\n                f\"--from={fill_fork_from}\",\n                f\"--until={fill_fork_until}\",\n                f\"--output={str(fixtures_dir)}\",\n                f\"--t8n-server-url={default_t8n.server_url}\",\n                str(minimal_test_path),\n            ]\n            fill_result = pytester.runpytest(*args)\n            assert fill_result.ret == 0, f\"Fill command failed:\\n{str(fill_result.stdout)}\"\n\n\n@pytest.fixture(autouse=True, scope=\"function\")\ndef test_fixtures(pytester: Pytester, fixtures_dir: Path, fill_tests: None) -> List[Path]:\n    \"\"\"\n    Copy test fixtures from the regular temp path to the pytester temporary\n    dir.\n\n    We intentionally copy the `.meta/index.json` file to test its compatibility\n    with consume.\n    \"\"\"\n    del fill_tests\n\n    test_fixtures = []\n    for json_file in fixtures_dir.rglob(\"*.json\"):\n        target_dir = Path(pytester.path) / json_file.parent\n        if not target_dir.exists():\n            target_dir.mkdir(parents=True)\n        pytester.copy_example(name=json_file.as_posix())\n        shutil.move(json_file.name, target_dir / json_file.name)\n        if \".meta\" not in str(json_file):\n            test_fixtures.append(json_file)\n    return test_fixtures\n\n\n@pytest.fixture(autouse=True)\ndef copy_consume_test_paths(pytester: Pytester) -> None:\n    \"\"\"Specify and copy the consume test paths to the testdir.\"\"\"\n    local_test_paths = [Path(\"src/pytest_plugins/consume/direct/test_via_direct.py\")]\n    for test_path in local_test_paths:\n        target_dir = Path(pytester.path) / test_path.parent\n        target_dir.mkdir(parents=True, exist_ok=True)\n        pytester.copy_example(name=str(test_path))\n        pytester.copy_example(name=str(test_path.parent / \"conftest.py\"))\n        shutil.move(test_path.name, target_dir / test_path.name)\n        shutil.move(\"conftest.py\", target_dir / \"conftest.py\")\n\n\nsingle_test_id = (\n    \"src/pytest_plugins/consume/direct/\"\n    \"test_via_direct.py::test_fixture[CollectOnlyFixtureConsumer-tests/\"\n    f\"{MINIMAL_TEST_FILE_NAME}::test_function[fork_Shanghai-state_test]]\"\n)\n\n\n@pytest.mark.parametrize(\n    \"extra_args, expected_filter_pattern\",\n    [\n        pytest.param(\n            [\"--collect-only\", \"-q\"],\n            re.compile(r\".*\"),\n            id=\"no_extra_args\",\n        ),\n        pytest.param(\n            [\"--collect-only\", \"-q\", \"--sim.limit\", \".*fork_Cancun.*\"],\n            re.compile(\".*Cancun.*\"),\n            id=\"sim_limit_regex\",\n        ),\n        pytest.param(\n            [\"--sim.limit\", \"collectonly:.*fork_Cancun.*\"],\n            re.compile(\".*Cancun.*\"),\n            id=\"sim_limit_collect_only_regex\",\n        ),\n        pytest.param(\n            [\n                \"--collect-only\",\n                \"-q\",\n                \"--sim.limit\",\n                f\"id:{single_test_id}\",\n            ],\n            re.compile(re.escape(f\"{single_test_id}\")),\n            id=\"sim_limit_id\",\n        ),\n        pytest.param(\n            [\n                \"--sim.limit\",\n                f\"collectonly:id:{single_test_id}\",\n            ],\n            re.compile(\n                re.compile(re.escape(f\"{single_test_id}\")),\n            ),\n            id=\"sim_limit_collect_only_id\",\n        ),\n    ],\n)\ndef test_consume_simlimit_collectonly(\n    pytester: Pytester,\n    fixtures_dir: Path,\n    consume_test_case_ids: List[str],\n    extra_args: List[str],\n    expected_filter_pattern: re.Pattern,\n) -> None:\n    \"\"\"Test consume's --sim.limit argument in collect-only mode.\"\"\"\n    pytester.copy_example(name=\"src/cli/pytest_commands/pytest_ini_files/pytest-consume.ini\")\n    consume_test_path = \"src/pytest_plugins/consume/direct/test_via_direct.py\"\n    args = [\n        \"-c\",\n        \"pytest-consume.ini\",\n        \"--input\",\n        str(fixtures_dir),\n        consume_test_path,\n        *extra_args,\n    ]\n    result = pytester.runpytest(*args)\n    assert result.ret == 0\n    stdout_lines = str(result.stdout).splitlines()\n    test_id_pattern = r\"^(?:\\s*)([^:\\s]+\\.py::[^:\\s]+(?:::[^:\\s]+)?)(?:\\[[^\\]]*\\])?(?:\\s*)$\"\n    collected_test_ids = [\n        line for line in stdout_lines if line.strip() and re.match(test_id_pattern, line)\n    ]\n    expected_collected_test_ids = [\n        line for line in consume_test_case_ids if expected_filter_pattern.search(line)\n    ]\n    assert set(collected_test_ids) == set(expected_collected_test_ids)\n"
  },
  {
    "path": "src/pytest_plugins/consume/tests/test_fixtures_source_input_types.py",
    "content": "\"\"\"Test the simplified consume behavior for different input types.\"\"\"\n\nfrom pathlib import Path\nfrom unittest.mock import MagicMock, patch\n\nfrom ..consume import CACHED_DOWNLOADS_DIRECTORY, FixturesSource\n\n\nclass TestSimplifiedConsumeBehavior:\n    \"\"\"Test suite for the simplified consume behavior.\"\"\"\n\n    def test_fixtures_source_from_release_url_no_api_calls(self) -> None:\n        \"\"\"\n        Test that direct release URLs do not make API calls for release page.\n        \"\"\"\n        test_url = \"https://github.com/ethereum/execution-spec-tests/releases/download/v3.0.0/fixtures_develop.tar.gz\"\n\n        with patch(\"pytest_plugins.consume.consume.FixtureDownloader\") as mock_downloader:\n            mock_instance = MagicMock()\n            mock_instance.download_and_extract.return_value = (False, Path(\"/tmp/test\"))\n            mock_downloader.return_value = mock_instance\n\n            source = FixturesSource.from_release_url(test_url)\n\n            # Verify no release page is set for direct URLs\n            assert source.release_page == \"\"\n            assert source.url == test_url\n            assert source.input_option == test_url\n\n    def test_fixtures_source_from_release_spec_makes_api_calls(self) -> None:\n        \"\"\"\n        Test that release specs still make API calls and get release page.\n        \"\"\"\n        test_spec = \"stable@latest\"\n\n        with patch(\"pytest_plugins.consume.consume.get_release_url\") as mock_get_url:\n            mock_get_url.return_value = \"https://github.com/ethereum/execution-spec-tests/releases/download/v3.0.0/fixtures_stable.tar.gz\"\n            with patch(\"pytest_plugins.consume.consume.get_release_page_url\") as mock_get_page:\n                mock_get_page.return_value = (\n                    \"https://github.com/ethereum/execution-spec-tests/releases/tag/v3.0.0\"\n                )\n                with patch(\"pytest_plugins.consume.consume.FixtureDownloader\") as mock_downloader:\n                    mock_instance = MagicMock()\n                    mock_instance.download_and_extract.return_value = (False, Path(\"/tmp/test\"))\n                    mock_downloader.return_value = mock_instance\n\n                    source = FixturesSource.from_release_spec(test_spec)\n\n                    # Verify API calls were made and release page is set\n                    mock_get_url.assert_called_once_with(test_spec)\n                    mock_get_page.assert_called_once_with(\n                        \"https://github.com/ethereum/execution-spec-tests/releases/download/v3.0.0/fixtures_stable.tar.gz\"\n                    )\n                    assert (\n                        source.release_page\n                        == \"https://github.com/ethereum/execution-spec-tests/releases/tag/v3.0.0\"\n                    )\n\n    def test_fixtures_source_from_regular_url_no_release_page(self) -> None:\n        \"\"\"Test that regular URLs (non-GitHub) don't have release page.\"\"\"\n        test_url = \"http://example.com/fixtures.tar.gz\"\n\n        with patch(\"pytest_plugins.consume.consume.FixtureDownloader\") as mock_downloader:\n            mock_instance = MagicMock()\n            mock_instance.download_and_extract.return_value = (False, Path(\"/tmp/test\"))\n            mock_downloader.return_value = mock_instance\n\n            source = FixturesSource.from_url(test_url)\n\n            # Verify no release page for regular URLs\n            assert source.release_page == \"\"\n            assert source.url == test_url\n\n    def test_output_formatting_without_release_page_for_direct_urls(self) -> None:\n        \"\"\"\n        Test output formatting when release page is empty for direct URLs.\n        \"\"\"\n        from unittest.mock import MagicMock\n\n        from pytest import Config\n\n        config = MagicMock(spec=Config)\n        config.fixtures_source = MagicMock()\n        config.fixtures_source.was_cached = False\n        config.fixtures_source.is_local = False\n        config.fixtures_source.path = Path(\"/tmp/test\")\n        config.fixtures_source.url = \"https://github.com/ethereum/execution-spec-tests/releases/download/v3.0.0/fixtures_develop.tar.gz\"\n        config.fixtures_source.release_page = \"\"  # Empty for direct URLs\n\n        # Simulate the output generation logic from pytest_configure\n        reason = \"\"\n        if config.fixtures_source.was_cached:\n            reason += \"Fixtures already cached.\"\n        elif not config.fixtures_source.is_local:\n            reason += \"Fixtures downloaded and cached.\"\n        reason += f\"\\nPath: {config.fixtures_source.path}\"\n        reason += f\"\\nInput: {config.fixtures_source.url or config.fixtures_source.path}\"\n        if config.fixtures_source.release_page:\n            reason += f\"\\nRelease page: {config.fixtures_source.release_page}\"\n\n        assert \"Release page:\" not in reason\n        assert \"Path:\" in reason\n        assert \"Input:\" in reason\n\n    def test_output_formatting_with_release_page_for_specs(self) -> None:\n        \"\"\"\n        Test output formatting when release page is present for release specs.\n        \"\"\"\n        from unittest.mock import MagicMock\n\n        from pytest import Config\n\n        config = MagicMock(spec=Config)\n        config.fixtures_source = MagicMock()\n        config.fixtures_source.was_cached = False\n        config.fixtures_source.is_local = False\n        config.fixtures_source.path = Path(\"/tmp/test\")\n        config.fixtures_source.url = \"https://github.com/ethereum/execution-spec-tests/releases/download/v3.0.0/fixtures_stable.tar.gz\"\n        config.fixtures_source.release_page = (\n            \"https://github.com/ethereum/execution-spec-tests/releases/tag/v3.0.0\"\n        )\n\n        # Simulate the output generation logic from pytest_configure\n        reason = \"\"\n        if config.fixtures_source.was_cached:\n            reason += \"Fixtures already cached.\"\n        elif not config.fixtures_source.is_local:\n            reason += \"Fixtures downloaded and cached.\"\n        reason += f\"\\nPath: {config.fixtures_source.path}\"\n        reason += f\"\\nInput: {config.fixtures_source.url or config.fixtures_source.path}\"\n        if config.fixtures_source.release_page:\n            reason += f\"\\nRelease page: {config.fixtures_source.release_page}\"\n\n        assert (\n            \"Release page: https://github.com/ethereum/execution-spec-tests/releases/tag/v3.0.0\"\n            in reason\n        )\n\n\nclass TestFixturesSourceFromInput:\n    \"\"\"Test the from_input method without no_api_calls parameter.\"\"\"\n\n    def test_from_input_handles_release_url(self) -> None:\n        \"\"\"Test that from_input properly handles release URLs.\"\"\"\n        test_url = \"https://github.com/ethereum/execution-spec-tests/releases/download/v3.0.0/fixtures_develop.tar.gz\"\n\n        with patch.object(FixturesSource, \"from_release_url\") as mock_from_release_url:\n            mock_from_release_url.return_value = MagicMock()\n\n            FixturesSource.from_input(test_url)\n\n            mock_from_release_url.assert_called_once_with(\n                test_url, CACHED_DOWNLOADS_DIRECTORY, None\n            )\n\n    def test_from_input_handles_release_spec(self) -> None:\n        \"\"\"Test that from_input properly handles release specs.\"\"\"\n        test_spec = \"stable@latest\"\n\n        with patch.object(FixturesSource, \"from_release_spec\") as mock_from_release_spec:\n            mock_from_release_spec.return_value = MagicMock()\n\n            FixturesSource.from_input(test_spec)\n\n            mock_from_release_spec.assert_called_once_with(\n                test_spec, CACHED_DOWNLOADS_DIRECTORY, None\n            )\n\n    def test_from_input_handles_regular_url(self) -> None:\n        \"\"\"Test that from_input properly handles regular URLs.\"\"\"\n        test_url = \"http://example.com/fixtures.tar.gz\"\n\n        with patch.object(FixturesSource, \"from_url\") as mock_from_url:\n            mock_from_url.return_value = MagicMock()\n\n            FixturesSource.from_input(test_url)\n\n            mock_from_url.assert_called_once_with(test_url, CACHED_DOWNLOADS_DIRECTORY, None)\n\n    def test_from_input_handles_extract_to_parameter(self) -> None:\n        \"\"\"Test that from_input properly passes extract_to parameter.\"\"\"\n        test_url = \"https://github.com/ethereum/execution-spec-tests/releases/download/v3.0.0/fixtures_develop.tar.gz\"\n        extract_to_path = Path(\"/custom/extract/path\")\n\n        with patch.object(FixturesSource, \"from_release_url\") as mock_from_release_url:\n            mock_from_release_url.return_value = MagicMock()\n\n            FixturesSource.from_input(test_url, extract_to=extract_to_path)\n\n            mock_from_release_url.assert_called_once_with(\n                test_url, CACHED_DOWNLOADS_DIRECTORY, extract_to_path\n            )\n"
  },
  {
    "path": "src/pytest_plugins/consume/tests/test_releases.py",
    "content": "\"\"\"Test release parsing given the github repository release JSON data.\"\"\"\n\nfrom os.path import realpath\nfrom pathlib import Path\nfrom typing import List\n\nimport pytest\n\nfrom ..releases import (\n    ReleaseInformation,\n    get_release_url_from_release_information,\n    parse_release_information_from_file,\n)\n\nCURRENT_FILE = Path(realpath(__file__))\nCURRENT_FOLDER = CURRENT_FILE.parent\n\n\n@pytest.fixture(scope=\"session\")\ndef release_information() -> List[ReleaseInformation]:\n    \"\"\"Return the release information from a file.\"\"\"\n    return parse_release_information_from_file(CURRENT_FOLDER / \"release_information.json\")\n\n\n@pytest.mark.parametrize(\n    \"release_name,expected_release_download_url\",\n    [\n        (\n            \"pectra-devnet-5\",\n            \"pectra-devnet-5%40v1.0.0/fixtures_pectra-devnet-5.tar.gz\",\n        ),\n        (\n            \"pectra-devnet-4@v1.0.0\",\n            \"pectra-devnet-4%40v1.0.0/fixtures_pectra-devnet-4.tar.gz\",\n        ),\n        (\n            \"stable\",\n            \"v3.0.0/fixtures_stable.tar.gz\",\n        ),\n        (\n            \"develop\",\n            \"v3.0.0/fixtures_develop.tar.gz\",\n        ),\n        (\n            \"eip7692-prague\",\n            \"eip7692%40v1.1.1/fixtures_eip7692-prague.tar.gz\",\n        ),\n    ],\n)\ndef test_release_parsing(\n    release_name: str,\n    expected_release_download_url: str,\n    release_information: List[ReleaseInformation],\n) -> None:\n    \"\"\"Test release parsing.\"\"\"\n    assert (\n        \"https://github.com/ethereum/execution-spec-tests/releases/download/\"\n        + expected_release_download_url\n    ) == get_release_url_from_release_information(release_name, release_information)\n"
  },
  {
    "path": "src/pytest_plugins/custom_logging/__init__.py",
    "content": "\"\"\"\nImport the logging module content to make it available from\npytest_plugins.logging.\n\"\"\"\n\nfrom .plugin_logging import (\n    FAIL_LEVEL,\n    VERBOSE_LEVEL,\n    ColorFormatter,\n    EESTLogger,\n    LogLevel,\n    UTCFormatter,\n    configure_logging,\n    get_logger,\n)\n\n__all__ = [\n    \"VERBOSE_LEVEL\",\n    \"FAIL_LEVEL\",\n    \"EESTLogger\",\n    \"UTCFormatter\",\n    \"ColorFormatter\",\n    \"LogLevel\",\n    \"get_logger\",\n    \"configure_logging\",\n]\n"
  },
  {
    "path": "src/pytest_plugins/custom_logging/plugin_logging.py",
    "content": "\"\"\"\nA Pytest plugin to configure logging for pytest sessions.\n\nNote: While pytest's builtin logging is generally amazing, it does not write\ntimestamps when log output is written to pytest's caplog (the captured output\nfor a test). And having timestamps in this output is the main use case for\nadding logging to our plugins. This output gets shown in the `FAILURES` summary\nsection, which is shown as the \"simulator log\" in hive simulations. For this\nuse case, timestamps are essential to verify timing issues against the clients\nlog.\n\nThis module provides both:\n1. A standalone logging configuration system that can be used in any\n   Python project\n2. A pytest plugin that automatically configures logging for pytest sessions\n\"\"\"\n\nimport functools\nimport logging\nimport os\nimport sys\nfrom datetime import datetime, timezone\nfrom logging import LogRecord\nfrom pathlib import Path\nfrom typing import Any, ClassVar, Optional, cast\n\nimport pytest\nfrom _pytest.terminal import TerminalReporter\n\nfile_handler: Optional[logging.FileHandler] = None\n\n# Custom log levels\nVERBOSE_LEVEL = 15  # Between INFO (10) and DEBUG (20)\nFAIL_LEVEL = 35  # Between WARNING (30) and ERROR (40)\n\n# Add custom log levels to the logging module\nlogging.addLevelName(VERBOSE_LEVEL, \"VERBOSE\")\nlogging.addLevelName(FAIL_LEVEL, \"FAIL\")\n\n\nclass EESTLogger(logging.Logger):\n    \"\"\"Define custom log levels via a dedicated Logger class.\"\"\"\n\n    def verbose(\n        self,\n        msg: object,\n        *args: Any,\n        exc_info: BaseException | bool | None = None,\n        stack_info: bool = False,\n        stacklevel: int = 1,\n        extra: Optional[dict[str, Any]] = None,\n    ) -> None:\n        \"\"\"\n        Log a message with VERBOSE level severity (15).\n\n        This level is between DEBUG (10) and INFO (20), intended for messages\n        more detailed than INFO but less verbose than DEBUG.\n        \"\"\"\n        if stacklevel is None:\n            stacklevel = 1\n        if self.isEnabledFor(VERBOSE_LEVEL):\n            self._log(VERBOSE_LEVEL, msg, args, exc_info, extra, stack_info, stacklevel)\n\n    def fail(\n        self,\n        msg: object,\n        *args: Any,\n        exc_info: BaseException | bool | None = None,\n        stack_info: bool = False,\n        stacklevel: int = 1,\n        extra: Optional[dict[str, Any]] = None,\n    ) -> None:\n        \"\"\"\n        Log a message with FAIL level severity (35).\n\n        This level is between WARNING (30) and ERROR (40), intended for test\n        failures and similar issues.\n        \"\"\"\n        if stacklevel is None:\n            stacklevel = 1\n        if self.isEnabledFor(FAIL_LEVEL):\n            self._log(FAIL_LEVEL, msg, args, exc_info, extra, stack_info, stacklevel)\n\n\n# Register the custom logger class\nlogging.setLoggerClass(EESTLogger)\n\n\ndef get_logger(name: str) -> EESTLogger:\n    \"\"\"Get a properly-typed logger with the EEST custom logging levels.\"\"\"\n    return cast(EESTLogger, logging.getLogger(name))\n\n\n# Module logger\nlogger = get_logger(__name__)\n\n\nclass UTCFormatter(logging.Formatter):\n    \"\"\"\n    Log formatter that formats UTC timestamps with milliseconds and +00:00\n    suffix.\n    \"\"\"\n\n    def formatTime(self, record: LogRecord, datefmt: str | None = None) -> str:  # noqa: D102,N802\n        # camelcase required\n        del datefmt\n\n        dt = datetime.fromtimestamp(record.created, tz=timezone.utc)\n        return dt.strftime(\"%Y-%m-%d %H:%M:%S.%f\")[:-3] + \"+00:00\"\n\n\nclass ColorFormatter(UTCFormatter):\n    \"\"\"\n    Formatter that adds ANSI color codes to log level names for terminal\n    output.\n    \"\"\"\n\n    running_in_docker: ClassVar[bool] = Path(\"/.dockerenv\").exists()\n\n    COLORS = {\n        logging.DEBUG: \"\\033[37m\",  # Gray\n        VERBOSE_LEVEL: \"\\033[36m\",  # Cyan\n        logging.INFO: \"\\033[36m\",  # Cyan\n        logging.WARNING: \"\\033[33m\",  # Yellow\n        FAIL_LEVEL: \"\\033[35m\",  # Magenta\n        logging.ERROR: \"\\033[31m\",  # Red\n        logging.CRITICAL: \"\\033[41m\",  # Red background\n    }\n    RESET = \"\\033[0m\"\n\n    def format(self, record: LogRecord) -> str:\n        \"\"\"Apply colorful formatting only when not running in Docker.\"\"\"\n        # First make a copy of the record to avoid modifying the original\n        record_copy = logging.makeLogRecord(record.__dict__)\n        if not self.running_in_docker:\n            color = self.COLORS.get(record_copy.levelno, self.RESET)\n            record_copy.levelname = f\"{color}{record_copy.levelname}{self.RESET}\"\n        return super().format(record_copy)\n\n\nclass LogLevel:\n    \"\"\"Help parse a log-level provided on the command-line.\"\"\"\n\n    @classmethod\n    def from_cli(cls, value: str) -> int:\n        \"\"\"\n        Parse a logging level from CLI.\n\n        Accepts standard level names (e.g. 'INFO', 'debug') or numeric values.\n        \"\"\"\n        try:\n            return int(value)\n        except ValueError:\n            pass\n\n        level_name = value.upper()\n        if level_name in logging._nameToLevel:\n            return logging._nameToLevel[level_name]\n\n        valid = \", \".join(logging._nameToLevel.keys())\n        raise ValueError(f\"Invalid log level '{value}'. Expected one of: {valid} or a number.\")\n\n\n# =========================================================================\n# Standalone logging configuration (usable without pytest)\n# =========================================================================\n\n\ndef configure_logging(\n    log_level: int | str = \"INFO\",\n    log_file: Optional[str | Path] = None,\n    log_to_stdout: bool = True,\n    log_format: str = \"%(asctime)s [%(levelname)s] %(name)s: %(message)s\",\n    use_color: Optional[bool] = None,\n) -> Optional[logging.FileHandler]:\n    \"\"\"\n    Configure logging with EEST custom log levels and formatters.\n\n    This function can be used in any Python project to set up logging with the\n    same settings as the pytest plugin.\n\n    Args:\n      log_level: The logging level to use (name or numeric value)\n      log_file: Path to the log file (if None, no file logging is set up)\n      log_to_stdout: Whether to log to stdout\n      log_format: The log format string\n      use_color: Whether to use colors in stdout output (auto-detected if None)\n\n    Returns: The file handler if log_file is provided, otherwise None\n\n    \"\"\"\n    # Initialize root logger\n    root_logger = logging.getLogger()\n\n    # Convert log level if it's a string\n    if isinstance(log_level, str):\n        log_level = LogLevel.from_cli(log_level)\n\n    # Set log level\n    root_logger.setLevel(log_level)\n\n    # Remove any existing handlers\n    for handler in root_logger.handlers[:]:\n        root_logger.removeHandler(handler)\n\n    # File handler (optional)\n    file_handler_instance = None\n    if log_file:\n        log_path = Path(log_file)\n        log_path.parent.mkdir(exist_ok=True, parents=True)\n\n        file_handler_instance = logging.FileHandler(log_path, mode=\"w\")\n        file_handler_instance.setFormatter(UTCFormatter(fmt=log_format))\n        root_logger.addHandler(file_handler_instance)\n\n    # Stdout handler (optional)\n    if log_to_stdout:\n        stream_handler = logging.StreamHandler(sys.stdout)\n\n        # Determine whether to use color\n        if use_color is None:\n            use_color = not ColorFormatter.running_in_docker\n\n        if use_color:\n            stream_handler.setFormatter(ColorFormatter(fmt=log_format))\n        else:\n            stream_handler.setFormatter(UTCFormatter(fmt=log_format))\n\n        root_logger.addHandler(stream_handler)\n\n    logger.verbose(\"Logging configured successfully.\")\n    return file_handler_instance\n\n\n# ==========================================================================\n# Pytest plugin integration\n# ==========================================================================\n\n\ndef pytest_addoption(parser: pytest.Parser) -> None:  # noqa: D103\n    logging_group = parser.getgroup(\n        \"logging\", \"Arguments related to logging from test fixtures and tests.\"\n    )\n    logging_group.addoption(\n        \"--eest-log-level\",  # --log-level is defined by pytest's built-in\n        # logging\n        \"--eestloglevel\",\n        action=\"store\",\n        default=\"INFO\",\n        type=LogLevel.from_cli,\n        dest=\"eest_log_level\",\n        help=(\n            \"The logging level to use in the test session: DEBUG, INFO, WARNING, ERROR or \"\n            \"CRITICAL, default - INFO. An integer in [0, 50] may be also provided.\"\n        ),\n    )\n\n\n@functools.cache\ndef get_log_stem(argv0: str, argv1: Optional[str]) -> str:\n    \"\"\"Generate the stem (prefix-subcommand-timestamp) for log files.\"\"\"\n    stem = Path(argv0).stem\n    prefix = \"pytest\" if stem in (\"\", \"-c\", \"__main__\") else stem\n    subcommand = argv1 if argv1 and not argv1.startswith(\"-\") else None\n    timestamp = datetime.now(timezone.utc).strftime(\"%Y%m%d-%H%M%S\")\n\n    name_parts = [prefix]\n    if subcommand:\n        name_parts.append(subcommand)\n    name_parts.append(timestamp)\n\n    return \"-\".join(name_parts)\n\n\ndef pytest_configure_node(node: Any) -> None:\n    \"\"\"Initialize a variable for use in the worker (xdist hook).\"\"\"\n    potential_subcommand = None\n    if len(sys.argv) > 1:\n        potential_subcommand = sys.argv[1]\n    node.workerinput[\"log_stem\"] = get_log_stem(sys.argv[0], potential_subcommand)\n\n\n@pytest.hookimpl(tryfirst=True)\ndef pytest_configure(config: pytest.Config) -> None:\n    \"\"\"\n    Initialize logging for pytest sessions.\n\n    This goes to a lot of effort to ensure that a log file is created per\n    worker if xdist is used and that the timestamp used in the filename is the\n    same across main and all workers.\n    \"\"\"\n    global file_handler\n\n    # Determine log file path with consistent timestamp across workers\n    potential_subcommand = None\n    if len(sys.argv) > 1:\n        potential_subcommand = sys.argv[1]\n    log_stem = getattr(config, \"workerinput\", {}).get(\"log_stem\") or get_log_stem(\n        sys.argv[0], potential_subcommand\n    )\n\n    worker_id = os.getenv(\"PYTEST_XDIST_WORKER\", \"main\")\n    log_filename = f\"{log_stem}-{worker_id}.log\"\n    log_path = Path(\"logs\")\n    log_path.mkdir(exist_ok=True)\n    log_file_path = log_path / log_filename\n\n    # Store the log file path in the pytest config\n    config.option.eest_log_file_path = log_file_path\n\n    # Configure logging using the standalone function\n    file_handler = configure_logging(\n        log_level=config.getoption(\"eest_log_level\"),\n        log_file=log_file_path,\n        log_to_stdout=True,\n    )\n\n\ndef pytest_report_header(config: pytest.Config) -> list[str]:\n    \"\"\"Show the log file path in the test session header.\"\"\"\n    if eest_log_file_path := config.option.eest_log_file_path:\n        return [f\"Log file: {eest_log_file_path}\"]\n    return []\n\n\ndef pytest_terminal_summary(terminalreporter: TerminalReporter) -> None:\n    \"\"\"\n    Display the log file path in the terminal summary like the HTML report\n    does.\n    \"\"\"\n    if terminalreporter.config.option.collectonly:\n        return\n    if eest_log_file_path := terminalreporter.config.option.eest_log_file_path:\n        terminalreporter.write_sep(\"-\", f\"Log file: {eest_log_file_path.resolve()}\", yellow=True)\n\n\ndef log_only_to_file(level: int, msg: str, *args: Any) -> None:\n    \"\"\"Log a message only to the file handler, bypassing stdout.\"\"\"\n    if not file_handler:\n        return\n    handler: logging.Handler = file_handler\n    logger = logging.getLogger(__name__)\n    if not logger.isEnabledFor(level):\n        return\n    record: LogRecord = logger.makeRecord(\n        logger.name,\n        level,\n        fn=__file__,\n        lno=0,\n        msg=msg,\n        args=args,\n        exc_info=None,\n        func=None,\n        extra=None,\n    )\n    handler.handle(record)\n\n\ndef pytest_runtest_logstart(nodeid: str, location: tuple[str, int, str]) -> None:\n    \"\"\"Log test start to file.\"\"\"\n    del location\n\n    log_only_to_file(logging.INFO, f\"ℹ️  - START TEST: {nodeid}\")\n\n\ndef pytest_runtest_logreport(report: pytest.TestReport) -> None:\n    \"\"\"Log test status and duration to file after it runs.\"\"\"\n    if report.when != \"call\":\n        return\n\n    nodeid = report.nodeid\n    duration = report.duration\n\n    log_level = logging.INFO\n    if hasattr(report, \"wasxfail\"):\n        if report.skipped:\n            status = \"XFAIL\"\n            emoji = \"💤\"\n        elif report.passed:\n            status = \"XPASS\"\n            emoji = \"🚨\"\n        else:\n            status = \"XFAIL ERROR\"\n            emoji = \"💣\"\n            log_level = logging.ERROR\n    elif report.skipped:\n        status = \"SKIPPED\"\n        emoji = \"⏭️\"\n    elif report.failed:\n        status = \"FAILED\"\n        emoji = \"❌\"\n        log_level = FAIL_LEVEL\n    else:\n        status = \"PASSED\"\n        emoji = \"✅\"\n\n    log_only_to_file(log_level, f\"{emoji} - {status} in {duration:.2f}s: {nodeid}\")\n\n\ndef pytest_runtest_logfinish(nodeid: str, location: tuple[str, int, str]) -> None:\n    \"\"\"Log end of test to file.\"\"\"\n    del location\n\n    log_only_to_file(logging.INFO, f\"ℹ️  - END TEST: {nodeid}\")\n"
  },
  {
    "path": "src/pytest_plugins/custom_logging/tests/__init__.py",
    "content": "\"\"\"Test package for the logging module.\"\"\"\n"
  },
  {
    "path": "src/pytest_plugins/custom_logging/tests/test_logging.py",
    "content": "\"\"\"\nTests for the logging module.\n\nThese tests verify the functionality of the custom logging system,\nincluding both the standalone configuration and the pytest integration.\n\"\"\"\n\nimport io\nimport logging\nimport re\nimport tempfile\nfrom pathlib import Path\nfrom typing import Any\nfrom unittest.mock import MagicMock, patch\n\nimport pytest\n\nfrom ..plugin_logging import (\n    FAIL_LEVEL,\n    VERBOSE_LEVEL,\n    ColorFormatter,\n    EESTLogger,\n    UTCFormatter,\n    configure_logging,\n    get_logger,\n)\n\n\nclass TestLoggerSetup:\n    \"\"\"Test the basic setup of loggers and custom levels.\"\"\"\n\n    def test_custom_levels_registered(self) -> None:\n        \"\"\"Test that custom log levels are properly registered.\"\"\"\n        assert logging.getLevelName(VERBOSE_LEVEL) == \"VERBOSE\"\n        assert logging.getLevelName(FAIL_LEVEL) == \"FAIL\"\n        assert logging.getLevelName(\"VERBOSE\") == VERBOSE_LEVEL\n        assert logging.getLevelName(\"FAIL\") == FAIL_LEVEL\n\n    def test_get_logger(self) -> None:\n        \"\"\"Test that get_logger returns a properly typed logger.\"\"\"\n        logger = get_logger(\"test_logger\")\n        assert isinstance(logger, EESTLogger)\n        assert logger.name == \"test_logger\"\n        assert hasattr(logger, \"verbose\")\n        assert hasattr(logger, \"fail\")\n\n\nclass TestEESTLogger:\n    \"\"\"Test the custom logger methods.\"\"\"\n\n    def setup_method(self) -> None:\n        \"\"\"Set up a logger and string stream for capturing log output.\"\"\"\n        self.log_output = io.StringIO()\n        self.logger = get_logger(\"test_eest_logger\")\n\n        # Remove any existing handlers\n        for handler in self.logger.handlers[:]:\n            self.logger.removeHandler(handler)\n\n        # Configure a basic handler that writes to our string stream\n        handler = logging.StreamHandler(self.log_output)\n        handler.setFormatter(logging.Formatter(\"%(levelname)s: %(message)s\"))\n        self.logger.addHandler(handler)\n        self.logger.setLevel(logging.DEBUG)  # Set to lowest possible level for testing\n\n    def test_verbose_method(self) -> None:\n        \"\"\"Test the verbose() method logs at the expected level.\"\"\"\n        self.logger.verbose(\"This is a verbose message\")\n        assert \"VERBOSE: This is a verbose message\" in self.log_output.getvalue()\n\n    def test_fail_method(self) -> None:\n        \"\"\"Test the fail() method logs at the expected level.\"\"\"\n        self.logger.fail(\"This is a fail message\")\n        assert \"FAIL: This is a fail message\" in self.log_output.getvalue()\n\n    def test_standard_methods(self) -> None:\n        \"\"\"Test that standard log methods still work.\"\"\"\n        self.logger.debug(\"Debug message\")\n        self.logger.info(\"Info message\")\n        self.logger.warning(\"Warning message\")\n\n        log_output = self.log_output.getvalue()\n        assert \"DEBUG: Debug message\" in log_output\n        assert \"INFO: Info message\" in log_output\n        assert \"WARNING: Warning message\" in log_output\n\n\nclass TestFormatters:\n    \"\"\"Test the custom log formatters.\"\"\"\n\n    def test_utc_formatter(self) -> None:\n        \"\"\"Test that UTCFormatter formats timestamps correctly.\"\"\"\n        formatter = UTCFormatter(fmt=\"%(asctime)s: %(message)s\")\n        record = logging.makeLogRecord(\n            {\n                \"msg\": \"Test message\",\n                \"created\": 1609459200.0,  # 2021-01-01 00:00:00 UTC\n            }\n        )\n\n        formatted = formatter.format(record)\n        assert re.match(r\"2021-01-01 00:00:00\\.\\d{3}\\+00:00: Test message\", formatted)\n\n    def test_color_formatter(self, monkeypatch: pytest.MonkeyPatch) -> None:\n        \"\"\"Test that ColorFormatter adds color codes to the log level.\"\"\"\n        # Create the formatter and test record\n        formatter = ColorFormatter(fmt=\"[%(levelname)s] %(message)s\")\n        record = logging.makeLogRecord(\n            {\n                \"levelno\": logging.ERROR,\n                \"levelname\": \"ERROR\",\n                \"msg\": \"Error message\",\n            }\n        )\n\n        # Test case 1: When not running in Docker, colors should be applied\n        # Override the class variable directly with monkeypatch\n        monkeypatch.setattr(ColorFormatter, \"running_in_docker\", False)\n        formatted = formatter.format(record)\n        assert \"\\033[31mERROR\\033[0m\" in formatted  # Red color for ERROR\n\n        # Test case 2: When running in Docker, colors should not be applied\n        monkeypatch.setattr(ColorFormatter, \"running_in_docker\", True)\n        formatted = formatter.format(record)\n        assert \"\\033[31mERROR\\033[0m\" not in formatted\n        assert \"ERROR\" in formatted\n\n\nclass TestStandaloneConfiguration:\n    \"\"\"Test the standalone logging configuration function.\"\"\"\n\n    def test_configure_logging_defaults(self) -> None:\n        \"\"\"Test configure_logging with default parameters.\"\"\"\n        with patch(\"sys.stdout\", new=io.StringIO()):\n            # Configure logging with default settings\n            handler = configure_logging()\n\n            # Should log to stdout by default\n            root_logger = logging.getLogger()\n            assert any(isinstance(h, logging.StreamHandler) for h in root_logger.handlers)\n\n            # Should set INFO level by default\n            assert root_logger.level == logging.INFO\n\n            # Should not return a file handler\n            assert handler is None\n\n    def test_configure_logging_with_file(self) -> None:\n        \"\"\"Test configure_logging with file output.\"\"\"\n        # Create a temporary directory for log files\n        with tempfile.TemporaryDirectory() as temp_dir:\n            log_file = Path(temp_dir) / \"test.log\"\n\n            # Configure logging with a file\n            handler = configure_logging(log_file=log_file, log_to_stdout=False)\n\n            try:\n                # Should return a file handler\n                assert isinstance(handler, logging.FileHandler)\n\n                # Should create the log file\n                assert log_file.exists()\n\n                # Log a message and check it appears in the file\n                logger = get_logger(\"test_config\")\n                logger.info(\"Test log message\")\n\n                with open(log_file, \"r\") as f:\n                    log_content = f.read()\n                    assert \"Test log message\" in log_content\n            finally:\n                # Clean up\n                if handler:\n                    handler.close()\n                logging.getLogger().handlers = []  # Remove all handlers\n\n    def test_configure_logging_with_level(self) -> None:\n        \"\"\"Test configure_logging with custom log level.\"\"\"\n        # Test with string level name\n        configure_logging(log_level=\"DEBUG\", log_to_stdout=False)\n        assert logging.getLogger().level == logging.DEBUG\n\n        # Test with numeric level\n        configure_logging(log_level=VERBOSE_LEVEL, log_to_stdout=False)\n        assert logging.getLogger().level == VERBOSE_LEVEL\n\n        # Clean up\n        logging.getLogger().handlers = []\n\n\n# Only the TestPytestIntegration class tests require pytest to run properly\n# We'll put the skip marker on that class instead of the whole module\n\n\nclass TestPytestIntegration:\n    \"\"\"Test the pytest integration of the logging module.\"\"\"\n\n    def test_pytest_configure(self, monkeypatch: pytest.MonkeyPatch) -> None:\n        \"\"\"Test that pytest_configure sets up logging correctly.\"\"\"\n        from pytest_plugins.custom_logging.plugin_logging import pytest_configure\n\n        # Create logs directory if it doesn't exist\n        log_dir = Path(\"logs\")\n        if not log_dir.exists():\n            log_dir.mkdir()\n\n        # Save the original handlers to restore later\n        original_handlers = logging.getLogger().handlers.copy()\n\n        try:\n            # Remove existing handlers to start clean\n            for handler in logging.getLogger().handlers[:]:\n                logging.getLogger().removeHandler(handler)\n\n            # Create a mock pytest config\n            class MockConfig:\n                def __init__(self) -> None:\n                    self.option = MagicMock()\n                    self.option.eest_log_level = logging.INFO\n                    self.workerinput: dict[str, Any] = {}\n\n                def getoption(self, name: str) -> Any:\n                    if name == \"eest_log_level\":\n                        return logging.INFO\n\n            # Set up environment\n            monkeypatch.setattr(\"sys.argv\", [\"pytest\"])\n            monkeypatch.setenv(\"PYTEST_XDIST_WORKER\", \"worker1\")\n\n            # Call pytest_configure\n            config = MockConfig()\n            pytest_configure(config)  # type: ignore[arg-type]\n\n            # Check that logging is configured\n            assert hasattr(config.option, \"eest_log_file_path\")\n\n            # Check that a file handler was added to the root logger\n            file_handlers = [\n                h for h in logging.getLogger().handlers if isinstance(h, logging.FileHandler)\n            ]\n            assert len(file_handlers) > 0\n\n            # Find the log file handler's file\n            log_file = Path(file_handlers[0].baseFilename)\n\n            # Check that the log file was created\n            assert log_file.exists()\n\n            # Verify the file is in the logs directory\n            assert log_file.parent.resolve() == log_dir.resolve()\n\n            # Clean up the test log file\n            log_file.unlink()\n\n        finally:\n            # Clean up: Remove any handlers we added\n            for handler in logging.getLogger().handlers[:]:\n                handler.close()\n                logging.getLogger().removeHandler(handler)\n\n            # Restore original handlers\n            for handler in original_handlers:\n                logging.getLogger().addHandler(handler)\n"
  },
  {
    "path": "src/pytest_plugins/eels_resolutions.json",
    "content": "{\n    \"EELSMaster\": {\n        \"git_url\": \"https://github.com/ethereum/execution-specs.git\",\n        \"branch\": \"forks/bpos\",\n        \"commit\": \"7aacb2c54111391af5e98c505d5010b5698a770f\"\n    },\n    \"Frontier\": {\n        \"same_as\": \"EELSMaster\"\n    },\n    \"Homestead\": {\n        \"same_as\": \"EELSMaster\"\n    },\n    \"Byzantium\": {\n        \"same_as\": \"EELSMaster\"\n    },\n    \"ConstantinopleFix\": {\n        \"same_as\": \"EELSMaster\"\n    },\n    \"Istanbul\": {\n        \"same_as\": \"EELSMaster\"\n    },\n    \"Berlin\": {\n        \"same_as\": \"EELSMaster\"\n    },\n    \"London\": {\n        \"same_as\": \"EELSMaster\"\n    },\n    \"Merge\": {\n        \"same_as\": \"EELSMaster\"\n    },\n    \"Shanghai\": {\n        \"same_as\": \"EELSMaster\"\n    },\n    \"Cancun\": {\n        \"same_as\": \"EELSMaster\"\n    },\n    \"Prague\": {\n        \"same_as\": \"EELSMaster\"\n    },\n    \"Osaka\": {\n        \"same_as\": \"EELSMaster\"\n    },\n    \"BPO1\": {\n          \"same_as\": \"EELSMaster\"\n    },\n    \"BPO2\": {\n      \"same_as\": \"EELSMaster\"\n    },\n    \"BPO3\": {\n      \"same_as\": \"EELSMaster\"\n    },\n    \"BPO4\": {\n      \"same_as\": \"EELSMaster\"\n    },\n    \"Amsterdam\": {\n      \"git_url\": \"https://github.com/fselmo/execution-specs.git\",\n      \"branch\": \"feat/amsterdam-fork-and-block-access-lists\",\n      \"commit\": \"3496e719b515bc82f35c42f83e78d426d31283ba\"\n    }\n}\n"
  },
  {
    "path": "src/pytest_plugins/eels_resolver.py",
    "content": "\"\"\"\nPytest plugin to help working with the `ethereum-spec-evm-resolver`.\n\nThis plugin sets the `EELS_RESOLUTIONS_FILE` environment variable to the path\nof the `eels_resolutions.json` file in the pytest root directory. If the\nenvironment variable is already set, the plugin will not override it.\n\"\"\"\n\nimport os\nimport shutil\nfrom os.path import realpath\nfrom pathlib import Path\n\nimport pytest\nfrom pytest_metadata.plugin import metadata_key\n\nCURRENT_FOLDER = Path(realpath(__file__)).parent\n\n\n@pytest.hookimpl(tryfirst=True)\ndef pytest_configure(config: pytest.Config) -> None:\n    \"\"\"\n    Set the EELS_RESOLUTIONS_FILE environment variable.\n\n    Args:\n        config (pytest.Config): The pytest configuration object.\n\n    \"\"\"\n    evm_bin = config.getoption(\"evm_bin\", default=None)\n    if evm_bin and \"resolver\" not in str(evm_bin):\n        # evm_bin is not set for the framework tests: always set the env var.\n        return\n\n    env_var_name = \"EELS_RESOLUTIONS_FILE\"\n    eels_resolutions_file = os.getenv(env_var_name)\n\n    if os.getenv(\"EELS_RESOLUTIONS\"):\n        # If the user sets this variable, assume they know what they're doing.\n        return\n\n    if eels_resolutions_file:\n        file_path = Path(eels_resolutions_file)\n        if not file_path.is_absolute():\n            raise ValueError(f\"The path provided in {env_var_name} must be an absolute path.\")\n        if not file_path.exists():\n            raise FileNotFoundError(\n                f\"The file {file_path} does not exist. \"\n                f\"Ensure the {env_var_name} points to an existing file.\"\n            )\n    else:\n        default_file_path = CURRENT_FOLDER / \"eels_resolutions.json\"\n        os.environ[env_var_name] = str(default_file_path)\n        eels_resolutions_file = str(default_file_path)\n\n    if \"Tools\" in config.stash[metadata_key]:\n        # don't overwrite existing tools metadata added by other plugins\n        config.stash[metadata_key][\"Tools\"][\"EELS Resolutions\"] = str(eels_resolutions_file)\n    else:\n        config.stash[metadata_key][\"Tools\"] = {\"EELS Resolutions\": str(eels_resolutions_file)}\n\n    config._eels_resolutions_file = eels_resolutions_file  # type: ignore\n\n\ndef pytest_report_header(config: pytest.Config, start_path: Path) -> str:\n    \"\"\"\n    Report the EELS_RESOLUTIONS_FILE path to the pytest report header.\n\n    Args:\n        config (pytest.Config): The pytest configuration object.\n        start_path (Path): The starting directory for the test run.\n\n    Returns:\n        str: A string to add to the pytest report header.\n\n    \"\"\"\n    del start_path\n\n    eels_resolutions_file = getattr(config, \"_eels_resolutions_file\", None)\n    if eels_resolutions_file:\n        return f\"EELS resolutions file: {eels_resolutions_file}\"\n    return \"\"\n\n\n@pytest.fixture(scope=\"session\", autouse=True)\ndef output_metadata_dir_with_teardown(\n    request: pytest.FixtureRequest,\n) -> object:\n    \"\"\"\n    Session-scoped fixture that attempts to retrieve the filler's\n    \"output_metadata_dir\" fixture value and copies the EELS resolutions\n    file there, if `_eels_resolutions_file` is set on the config object.\n    \"\"\"\n    yield\n    try:\n        output_metadata_dir = request.getfixturevalue(\"output_metadata_dir\")\n        if output_metadata_dir.name == \"stdout\":\n            return\n    except pytest.FixtureLookupError:\n        output_metadata_dir = None\n\n    eels_resolutions_file = getattr(request.config, \"_eels_resolutions_file\", None)\n    if output_metadata_dir and eels_resolutions_file:\n        shutil.copy(\n            Path(eels_resolutions_file),\n            Path(output_metadata_dir) / Path(eels_resolutions_file).name,\n        )\n"
  },
  {
    "path": "src/pytest_plugins/execute/__init__.py",
    "content": "\"\"\"\nA pytest plugin that provides fixtures that execute tests in live\ndevnets/testnets.\n\"\"\"\n"
  },
  {
    "path": "src/pytest_plugins/execute/eth_config/__init__.py",
    "content": "\"\"\"Execute module to test the `eth_config` RPC endpoint.\"\"\"\n"
  },
  {
    "path": "src/pytest_plugins/execute/eth_config/eth_config.py",
    "content": "\"\"\"Pytest plugin to test the `eth_config` RPC endpoint in a node.\"\"\"\n\nimport re\nfrom os.path import realpath\nfrom pathlib import Path\nfrom typing import Dict, List\nfrom urllib.parse import urlparse\n\nimport pytest\nimport requests\n\nfrom ethereum_test_rpc import EthRPC\nfrom pytest_plugins.custom_logging import get_logger\n\nfrom .execute_types import Genesis, NetworkConfigFile\n\nCURRENT_FILE = Path(realpath(__file__))\nCURRENT_FOLDER = CURRENT_FILE.parent\n\nDEFAULT_NETWORK_CONFIGS_FILE = CURRENT_FOLDER / \"networks.yml\"\nDEFAULT_NETWORKS = NetworkConfigFile.from_yaml(DEFAULT_NETWORK_CONFIGS_FILE)\n\nEXECUTION_CLIENTS = [\"besu\", \"erigon\", \"geth\", \"nethermind\", \"nimbusel\", \"reth\"]\nCONSENSUS_CLIENTS = [\"grandine\", \"lighthouse\", \"lodestar\", \"nimbus\", \"prysm\", \"teku\"]\n\nlogger = get_logger(__name__)\n\n\ndef pytest_addoption(parser: pytest.Parser) -> None:\n    \"\"\"Add command-line options to pytest.\"\"\"\n    eth_config_group = parser.getgroup(\"execute\", \"Arguments defining eth_config test behavior.\")\n    eth_config_group.addoption(\n        \"--network\",\n        action=\"store\",\n        dest=\"network\",\n        required=False,\n        type=str,\n        default=None,\n        help=(\n            \"Name of the network to verify for the RPC client. Supported networks by default: \"\n            f\"{', '.join(DEFAULT_NETWORKS.root.keys())}.\"\n        ),\n    )\n    eth_config_group.addoption(\n        \"--network-config-file\",\n        action=\"store\",\n        dest=\"network_config_file\",\n        required=False,\n        type=Path,\n        default=None,\n        help=\"Path to the yml file that contains custom network configuration \"\n        \"(e.g. ./src/pytest_plugins/execute/eth_config/networks.yml).\\nIf no config is provided \"\n        \"then majority mode will be used for devnet testing (clients that have a different \"\n        \"response than the majority of clients will fail the test)\",\n    )\n    eth_config_group.addoption(\n        \"--clients\",\n        required=False,\n        action=\"store\",\n        dest=\"clients\",\n        type=str,\n        default=None,\n        help=\"Comma-separated list of clients to be tested in majority mode. Example: \"\n        '\"besu,erigon,geth,nethermind,nimbusel,reth\"\\nIf you do not pass a value, majority mode '\n        \"testing will be disabled.\",\n    )\n    eth_config_group.addoption(\n        \"--genesis-config-file\",\n        action=\"store\",\n        dest=\"genesis_config_file\",\n        required=False,\n        type=Path,\n        default=None,\n        help=\"Path to a genesis JSON file from which a custom network configuration \"\n        \"must be derived.\",\n    )\n    eth_config_group.addoption(\n        \"--genesis-config-url\",\n        action=\"store\",\n        dest=\"genesis_config_url\",\n        required=False,\n        type=str,\n        default=None,\n        help=\"URL to a genesis JSON file from which a custom network configuration \"\n        \"must be derived.\",\n    )\n    eth_config_group.addoption(\n        \"--rpc-endpoint\",\n        required=True,\n        action=\"store\",\n        dest=\"rpc_endpoint\",\n        help=\"RPC endpoint to the execution client that will be tested.\",\n    )\n\n\ndef pytest_configure(config: pytest.Config) -> None:\n    \"\"\"\n    Load the network configuration file and load the specific network to be\n    used for the test.\n    \"\"\"\n    genesis_config_file = config.getoption(\"genesis_config_file\")\n    genesis_config_url = config.getoption(\"genesis_config_url\")\n    network_configs_path = config.getoption(\"network_config_file\")\n    network_name = config.getoption(\"network\")\n    rpc_endpoint = config.getoption(\"rpc_endpoint\")\n    # majority mode\n    clients = config.getoption(\"clients\")\n    config.option.majority_clients = []  # List[str]\n\n    if genesis_config_file and genesis_config_url:\n        pytest.exit(\n            \"Cannot specify both the --genesis-config-file and --genesis-config-url flags.\"\n        )\n\n    if (genesis_config_file or genesis_config_url) and network_name:\n        pytest.exit(\n            \"Cannot specify a network name when using the --genesis-config-file or \"\n            \"--genesis-config-url flag.\"\n        )\n    # handle the one of the three flags that was passed\n    #   case 1: genesis_config_file\n    if genesis_config_file:\n        genesis_config_contents = genesis_config_file.read_text()\n        genesis_config = Genesis.model_validate_json(genesis_config_contents)\n        config.network = genesis_config.network_config()  # type: ignore\n    #   case 2: genesis_config_url\n    elif genesis_config_url:\n        genesis_config_contents = requests.get(genesis_config_url).text\n        genesis_config = Genesis.model_validate_json(genesis_config_contents)\n        config.network = genesis_config.network_config()  # type: ignore\n    #   case 3: network_name\n    elif network_name:\n        # load provided networks file\n        if network_configs_path is None:\n            network_configs_path = DEFAULT_NETWORK_CONFIGS_FILE\n        if not network_configs_path.exists():\n            pytest.exit(f'Specified networks file \"{network_configs_path}\" does not exist.')\n        try:\n            network_configs = NetworkConfigFile.from_yaml(network_configs_path)\n        except Exception as e:\n            pytest.exit(f\"Could not load file {network_configs_path}: {e}\")\n\n        if network_name not in network_configs.root:\n            pytest.exit(\n                f'Network \"{network_name}\" could not be found in file \"{network_configs_path}\".'\n            )\n        config.network = network_configs.root[network_name]  # type: ignore\n\n    # determine whether to activate majority mode or not\n    if clients:\n        clients.replace(\" \", \"\")\n        clients = clients.split(\",\")\n        for c in clients:\n            if c not in EXECUTION_CLIENTS:\n                pytest.exit(f\"Unsupported client was passed: {c}\")\n        logger.info(f\"Provided client list: {clients}\")\n        # activate majority mode if also URL condition is met\n        if \".ethpandaops.io\" in rpc_endpoint:\n            logger.info(\"Ethpandaops RPC detected\")\n            logger.info(\"Toggling majority test on\")\n            config.option.majority_clients = clients  # List[str]\n    else:\n        logger.info(\"Majority test mode is disabled because no --clients value was passed.\")\n\n    if config.getoption(\"collectonly\", default=False):\n        return\n\n    # Test out the RPC endpoint to be able to fail fast if it's not working\n    eth_rpc = EthRPC(rpc_endpoint)\n    try:\n        logger.debug(\"Will now perform a connection check (request chain_id)..\")\n        chain_id = eth_rpc.chain_id()\n        logger.debug(f\"Connection check ok (successfully got chain id {chain_id})\")\n    except Exception as e:\n        pytest.exit(f\"Could not connect to RPC endpoint {rpc_endpoint}: {e}\")\n    try:\n        logger.debug(\"Will now briefly check whether eth_config is supported by target rpc..\")\n        eth_rpc.config()\n        logger.debug(\"Connection check ok (successfully got eth_config response)\")\n    except Exception as e:\n        pytest.exit(f\"RPC endpoint {rpc_endpoint} does not support `eth_config`: {e}\")\n\n\n@pytest.fixture(autouse=True, scope=\"session\")\ndef rpc_endpoint(request: pytest.FixtureRequest) -> str:\n    \"\"\"\n    Return remote RPC endpoint to be used to make requests to the execution\n    client.\n    \"\"\"\n    return request.config.getoption(\"rpc_endpoint\")\n\n\ndef all_rpc_endpoints(config: pytest.Config) -> Dict[str, List[EthRPC]]:\n    \"\"\"\n    Derive a mapping of exec clients to the RPC URLs they are reachable at.\n    \"\"\"\n    rpc_endpoint = config.getoption(\"rpc_endpoint\")\n    # besu, erigon, ..\n    el_clients: List[str] = config.getoption(\"majority_clients\")\n    if len(el_clients) == 0:\n        endpoint_name = rpc_endpoint\n        try:\n            parsed = urlparse(rpc_endpoint)\n            endpoint_name = parsed.hostname\n        except Exception:\n            pass\n        return {endpoint_name: [EthRPC(rpc_endpoint)]}\n\n    pattern = r\"(.*?@rpc\\.)([^-]+)-([^-]+)(-.*)\"\n    url_dict: Dict[str, List[EthRPC]] = {\n        exec_client: [\n            EthRPC(\n                re.sub(\n                    pattern,\n                    f\"\\\\g<1>{consensus}-{exec_client}\\\\g<4>\",\n                    rpc_endpoint,\n                )\n            )\n            for consensus in CONSENSUS_CLIENTS\n        ]\n        for exec_client in el_clients\n    }\n    # url_dict looks like this:\n    # { 'besu': [<EthRPC that holds url for grandine+besu>,\n    #            <EthRPC that holds url for lighthouse+besu>, ..],\n    #   'erigon':  ... ... }\n    return url_dict\n\n\ndef pytest_generate_tests(metafunc: pytest.Metafunc) -> None:\n    \"\"\"Generate tests for all clients under test.\"\"\"\n    # all_rpc_endpoints is a dictionary with the name of the exec client as key\n    # and the possible URLs to contact it (different cl combinations) as value\n    # list\n    all_rpc_endpoints_dict = all_rpc_endpoints(metafunc.config)\n\n    if metafunc.definition.name == \"test_eth_config_majority\":\n        if len(all_rpc_endpoints_dict) < 2:\n            # The test function is not run because we only have a single\n            # client, so no majority comparison\n            logger.info(\n                \"Skipping eth_config majority because less than 2 exec clients were passed\"\n            )\n            metafunc.parametrize(\n                [\"all_rpc_endpoints\"],\n                [\n                    pytest.param(\n                        all_rpc_endpoints_dict,\n                        id=metafunc.definition.name,\n                        marks=pytest.mark.skip(\"Only one client\"),\n                    )\n                ],\n            )\n        else:\n            metafunc.parametrize(\n                [\"all_rpc_endpoints\"],\n                [\n                    pytest.param(\n                        all_rpc_endpoints_dict,\n                        id=metafunc.definition.name,\n                    )\n                ],\n                scope=\"function\",\n            )\n    else:\n        metafunc.parametrize(\n            [\"eth_rpc\"],\n            [\n                pytest.param(\n                    rpc_endpoint,\n                    id=f\"{metafunc.definition.name}[{endpoint_name}]\",\n                )\n                for endpoint_name, rpc_endpoint in all_rpc_endpoints_dict.items()\n            ],\n            scope=\"function\",\n        )\n"
  },
  {
    "path": "src/pytest_plugins/execute/eth_config/execute_eth_config.py",
    "content": "\"\"\"\nPytest test to verify a client's configuration using `eth_config` RPC endpoint.\n\"\"\"\n\nimport json\nimport time\nfrom hashlib import sha256\nfrom typing import Dict, List\n\nimport pytest\n\nfrom ethereum_test_rpc import EthConfigResponse, EthRPC\nfrom pytest_plugins.custom_logging import get_logger\n\nfrom .execute_types import NetworkConfig\n\nlogger = get_logger(__name__)\n\n\n@pytest.fixture(scope=\"function\")\ndef eth_config_response(eth_rpc: List[EthRPC]) -> EthConfigResponse | None:\n    \"\"\"\n    Get the `eth_config` response from the client to be verified by all tests.\n    \"\"\"\n    for rpc in eth_rpc:\n        try:\n            response = rpc.config()\n            if response is not None:\n                return response\n        except Exception:\n            pass\n    else:\n        raise Exception(\"Could not connect to any RPC client.\")\n\n\n@pytest.fixture(scope=\"function\")\ndef network(request: pytest.FixtureRequest) -> NetworkConfig:\n    \"\"\"Get the network that will be used to verify all tests.\"\"\"\n    return request.config.network  # type: ignore\n\n\n@pytest.fixture(scope=\"function\")\ndef current_time() -> int:\n    \"\"\"\n    Get the `eth_config` response from the client to be verified by all tests.\n    \"\"\"\n    return int(time.time())\n\n\n@pytest.fixture(scope=\"function\")\ndef expected_eth_config(network: NetworkConfig, current_time: int) -> EthConfigResponse:\n    \"\"\"\n    Calculate the current fork value to verify against the client's response.\n    \"\"\"\n    return network.get_eth_config(current_time)\n\n\ndef test_eth_config_current(\n    eth_config_response: EthConfigResponse | None,\n    expected_eth_config: EthConfigResponse,\n) -> None:\n    \"\"\"Validate `current` field of the `eth_config` RPC endpoint.\"\"\"\n    assert eth_config_response is not None, \"Client did not return a valid `eth_config` response.\"\n    assert eth_config_response.current is not None, (\n        \"Client did not return a valid `current` fork config.\"\n    )\n    expected_current = expected_eth_config.current\n    assert eth_config_response.current == expected_current, (\n        \"Client's `current` fork config does not match expected value: \"\n        f\"{eth_config_response.current.model_dump_json(indent=2)} != \"\n        f\"{expected_current.model_dump_json(indent=2)}\"\n    )\n\n\ndef test_eth_config_current_fork_id(\n    eth_config_response: EthConfigResponse | None,\n    expected_eth_config: EthConfigResponse,\n) -> None:\n    \"\"\"Validate `forkId` field within the `current` configuration object.\"\"\"\n    assert eth_config_response is not None, \"Client did not return a valid `eth_config` response.\"\n    assert eth_config_response.current is not None, (\n        \"Client did not return a valid `current` fork config.\"\n    )\n    assert eth_config_response.current.fork_id is not None, (\n        \"Client did not return a valid `forkId` in the current fork config.\"\n    )\n    assert eth_config_response.current.fork_id == expected_eth_config.current.fork_id, (\n        \"Client's `current.forkId` does not match expected value: \"\n        f\"{eth_config_response.current.fork_id} != \"\n        f\"{expected_eth_config.current.fork_id}\"\n    )\n\n\ndef test_eth_config_next(\n    eth_config_response: EthConfigResponse | None,\n    expected_eth_config: EthConfigResponse,\n) -> None:\n    \"\"\"Validate `next` field of the `eth_config` RPC endpoint.\"\"\"\n    assert eth_config_response is not None, \"Client did not return a valid `eth_config` response.\"\n    expected_next = expected_eth_config.next\n    if expected_next is None:\n        assert eth_config_response.next is None, (\n            \"Client returned a `next` fork config but expected None.\"\n        )\n    else:\n        assert eth_config_response.next is not None, (\n            \"Client did not return a valid `next` fork config.\"\n        )\n        assert eth_config_response.next == expected_next, (\n            \"Client's `next` fork config does not match expected value: \"\n            f\"{eth_config_response.next.model_dump_json(indent=2)} != \"\n            f\"{expected_next.model_dump_json(indent=2)}\"\n        )\n\n\ndef test_eth_config_next_fork_id(\n    eth_config_response: EthConfigResponse | None,\n    expected_eth_config: EthConfigResponse,\n) -> None:\n    \"\"\"Validate `forkId` field within the `next` configuration object.\"\"\"\n    assert eth_config_response is not None, \"Client did not return a valid `eth_config` response.\"\n    expected_next = expected_eth_config.next\n    if expected_next is None:\n        assert eth_config_response.next is None, (\n            \"Client returned a `next` fork config but expected None.\"\n        )\n    else:\n        assert eth_config_response.next is not None, (\n            \"Client did not return a valid `next` fork config.\"\n        )\n        expected_next_fork_id = expected_next.fork_id\n        if expected_next_fork_id is None:\n            assert eth_config_response.next.fork_id is None, (\n                \"Client returned a `next.forkId` but expected None.\"\n            )\n        else:\n            received_fork_id = eth_config_response.next.fork_id\n            assert received_fork_id is not None, \"Client did not return a valid `next.forkId`.\"\n            assert received_fork_id == expected_next_fork_id, (\n                \"Client's `next.forkId` does not match expected value: \"\n                f\"{received_fork_id} != \"\n                f\"{expected_next_fork_id}\"\n            )\n\n\ndef test_eth_config_last(\n    eth_config_response: EthConfigResponse | None,\n    expected_eth_config: EthConfigResponse,\n) -> None:\n    \"\"\"Validate `last` field of the `eth_config` RPC endpoint.\"\"\"\n    expected_last = expected_eth_config.last\n    assert eth_config_response is not None, \"Client did not return a valid `eth_config` response.\"\n    if expected_last is None:\n        assert eth_config_response.last is None, (\n            \"Client returned a `last` fork config but expected None.\"\n        )\n    else:\n        assert eth_config_response.last is not None, (\n            \"Client did not return a valid `last` fork config.\"\n        )\n        assert eth_config_response.last == expected_last, (\n            \"Client's `last` fork config does not match expected value: \"\n            f\"{eth_config_response.last.model_dump_json(indent=2)} != \"\n            f\"{expected_last.model_dump_json(indent=2)}\"\n        )\n\n\ndef test_eth_config_last_fork_id(\n    eth_config_response: EthConfigResponse | None,\n    expected_eth_config: EthConfigResponse,\n) -> None:\n    \"\"\"Validate `forkId` field within the `last` configuration object.\"\"\"\n    assert eth_config_response is not None, \"Client did not return a valid `eth_config` response.\"\n    expected_last = expected_eth_config.last\n    if expected_last is None:\n        assert eth_config_response.last is None, (\n            \"Client returned a `last` fork config but expected None.\"\n        )\n    else:\n        assert eth_config_response.last is not None, (\n            \"Client did not return a valid `last` fork config.\"\n        )\n        expected_last_fork_id = expected_last.fork_id\n        if expected_last_fork_id is None:\n            assert eth_config_response.last.fork_id is None, (\n                \"Client returned a `last.forkId` but expected None.\"\n            )\n        else:\n            received_fork_id = eth_config_response.last.fork_id\n            assert received_fork_id is not None, \"Client did not return a valid `last.forkId`.\"\n            assert received_fork_id == expected_last_fork_id, (\n                \"Client's `last.forkId` does not match expected value: \"\n                f\"{received_fork_id} != \"\n                f\"{expected_last_fork_id}\"\n            )\n\n\ndef test_eth_config_majority(\n    all_rpc_endpoints: Dict[str, List[EthRPC]],\n) -> None:\n    \"\"\"\n    Queries devnet exec clients for their eth_config and fails if not all have\n    the same response.\n    \"\"\"\n    responses = dict()  # Dict[exec_client_name : response] # noqa: C408\n    client_to_url_used_dict = dict()  # noqa: C408\n    for exec_client in all_rpc_endpoints.keys():\n        # try only as many consensus+exec client combinations until you receive\n        # a response if all combinations for a given exec client fail we panic\n        for eth_rpc_target in all_rpc_endpoints[exec_client]:\n            try:\n                response = eth_rpc_target.config(timeout=5)\n                if response is None:\n                    logger.warning(f\"Got 'None' as eth_config response from {eth_rpc_target}\")\n                    continue\n            except Exception as e:\n                logger.warning(\n                    f\"When trying to get eth_config from {eth_rpc_target} a problem occurred: {e}\"\n                )\n                continue\n\n            response_str = json.dumps(response.model_dump(mode=\"json\"), sort_keys=True)\n            responses[exec_client] = response_str\n            client_to_url_used_dict[exec_client] = (\n                eth_rpc_target.url\n            )  # remember which cl+el combination was used\n            logger.info(f\"Response of {exec_client}: {response_str}\\n\\n\")\n\n            break  # no need to gather more responses for this client\n\n    assert len(responses.keys()) == len(all_rpc_endpoints.keys()), (\n        \"Failed to get an eth_config response \"\n        f\" from each specified execution client. Full list of execution clients is \"\n        f\"{all_rpc_endpoints.keys()} but we were only able to gather eth_config responses \"\n        f\"from: {responses.keys()}\\n\"\n        \"Will try again with a different consensus-execution client combination for \"\n        \"this execution client\"\n    )\n    # determine hashes of client responses\n    client_to_hash_dict = {}  # Dict[exec_client : response hash] # noqa: C408\n    for client in responses.keys():\n        response_bytes = responses[client].encode(\"utf-8\")\n        response_hash = sha256(response_bytes).digest().hex()\n        logger.info(f\"Response hash of client {client}: {response_hash}\")\n        client_to_hash_dict[client] = response_hash\n\n    # if not all responses have the same hash there is a critical consensus\n    # issue\n    expected_hash = \"\"\n    for h in client_to_hash_dict.keys():\n        if expected_hash == \"\":\n            expected_hash = client_to_hash_dict[h]\n            continue\n\n        assert client_to_hash_dict[h] == expected_hash, (\n            \"Critical consensus issue: Not all eth_config responses are the \"\n            \" same!\\n\"\n            \"Here is an overview of client response hashes:\\n\"\n            + \"\\n\\t\".join(f\"{k}: {v}\" for k, v in client_to_hash_dict.items())\n            + \"\\n\\n\"\n            \"Here is an overview of which URLs were contacted:\\n\\t\"\n            + \"\\n\\t\".join(f\"{k}: @{v.split('@')[1]}\" for k, v in client_to_url_used_dict.items())\n            + \"\\n\\n\"\n            # log which cl+el combinations were used without leaking full url\n            \"Here is a dump of all client responses:\\n\"\n            + \"\\n\\n\".join(f\"{k}: {v}\" for k, v in responses.items())\n        )\n    assert expected_hash != \"\"\n\n    logger.info(\"All clients returned the same eth_config response. Test has been passed!\")\n"
  },
  {
    "path": "src/pytest_plugins/execute/eth_config/execute_types.py",
    "content": "\"\"\"Types used to test `eth_config`.\"\"\"\n\nfrom binascii import crc32\nfrom collections import defaultdict\nfrom functools import cached_property\nfrom pathlib import Path\nfrom typing import Annotated, Any, ClassVar, Dict, List, Self, Set\n\nimport yaml\nfrom pydantic import BaseModel, BeforeValidator, Field, model_validator\n\nfrom ethereum_test_base_types import (\n    Address,\n    Bytes,\n    CamelModel,\n    EthereumTestRootModel,\n    ForkHash,\n    Hash,\n    HeaderNonce,\n    HexNumber,\n    Number,\n)\nfrom ethereum_test_fixtures.blockchain import FixtureHeader\nfrom ethereum_test_forks import Fork, Frontier\nfrom ethereum_test_rpc import (\n    EthConfigResponse,\n    ForkConfig,\n    ForkConfigBlobSchedule,\n)\nfrom ethereum_test_types import Alloc, Environment\n\n\nclass AddressOverrideDict(EthereumTestRootModel):\n    \"\"\"\n    Dictionary with overrides to the default addresses specified for each fork.\n    Required for testnets or devnets which have a different location of\n    precompiles or system contracts.\n    \"\"\"\n\n    root: Dict[Address, Address]\n\n\nclass ForkConfigBuilder(BaseModel):\n    \"\"\"Class to describe a current or next fork + bpo configuration.\"\"\"\n\n    fork: Fork\n    activation_time: int\n    chain_id: int\n    address_overrides: AddressOverrideDict\n    blob_schedule: ForkConfigBlobSchedule | None = None\n\n    @property\n    def precompiles(self) -> Dict[str, Address]:\n        \"\"\"Get the precompiles.\"\"\"\n        precompiles = {}\n        for a in self.fork.precompiles():\n            label = a.label\n            if a in self.address_overrides.root:\n                a = self.address_overrides.root[a]\n            precompiles[f\"{label}\"] = a\n        return precompiles\n\n    @property\n    def system_contracts(self) -> Dict[str, Address]:\n        \"\"\"Get the system contracts.\"\"\"\n        system_contracts = {}\n        for a in self.fork.system_contracts():\n            label = a.label\n            if a in self.address_overrides.root:\n                a = self.address_overrides.root[a]\n            system_contracts[f\"{label}\"] = a\n        return system_contracts\n\n    def get_config(self, fork_id: ForkHash) -> ForkConfig:\n        \"\"\"\n        Get the current and next fork configurations given the current time and\n        the network configuration.\n        \"\"\"\n        return ForkConfig(\n            activation_time=self.activation_time,\n            blob_schedule=self.blob_schedule,\n            chain_id=self.chain_id,\n            fork_id=fork_id,\n            precompiles=self.precompiles,\n            system_contracts=self.system_contracts,\n        )\n\n\ndef calculate_fork_id(genesis_hash: Hash, activation_times: Set[int]) -> ForkHash:\n    \"\"\"\n    Calculate the fork Id given the genesis hash and each fork activation\n    times.\n    \"\"\"\n    buffer = bytes(genesis_hash)\n    for activation_time in sorted(activation_times):\n        if activation_time == 0:\n            continue\n        buffer += activation_time.to_bytes(length=8, byteorder=\"big\")\n    return ForkHash(crc32(buffer))\n\n\nclass ForkActivationTimes(EthereumTestRootModel[Dict[Fork, int]]):\n    \"\"\"Fork activation times.\"\"\"\n\n    root: Dict[Fork, int]\n\n    def forks_by_activation_time(self) -> Dict[int, Set[Fork]]:\n        \"\"\"Get the forks by activation time.\"\"\"\n        forks_by_activation_time = defaultdict(set)\n        for fork, activation_time in self.root.items():\n            forks_by_activation_time[activation_time].add(fork)\n        return forks_by_activation_time\n\n    def active_forks(self, current_time: int) -> List[Fork]:\n        \"\"\"Get the active forks.\"\"\"\n        forks_by_activation_time = self.forks_by_activation_time()\n        active_forks = []\n        for activation_time in sorted(forks_by_activation_time.keys()):\n            if activation_time <= current_time:\n                active_forks.extend(sorted(forks_by_activation_time[activation_time]))\n        return active_forks\n\n    def next_forks(self, current_time: int) -> List[Fork]:\n        \"\"\"Get the next forks.\"\"\"\n        forks_by_activation_time = self.forks_by_activation_time()\n        next_forks = []\n        for activation_time in sorted(forks_by_activation_time.keys()):\n            if activation_time > current_time:\n                next_forks.extend(sorted(forks_by_activation_time[activation_time]))\n        return next_forks\n\n    def active_fork(self, current_time: int) -> Fork:\n        \"\"\"Get the active fork.\"\"\"\n        return self.active_forks(current_time)[-1]\n\n    def next_fork(self, current_time: int) -> Fork | None:\n        \"\"\"Get the next fork.\"\"\"\n        next_forks = self.next_forks(current_time)\n        if next_forks:\n            return next_forks[0]\n        return None\n\n    def last_fork(self, current_time: int) -> Fork | None:\n        \"\"\"Get the last fork.\"\"\"\n        next_forks = self.next_forks(current_time)\n        if next_forks:\n            return next_forks[-1]\n        return None\n\n    def __getitem__(self, key: Fork) -> int:\n        \"\"\"Get the activation time for a given fork.\"\"\"\n        return self.root[key]\n\n\nclass NetworkConfig(CamelModel):\n    \"\"\"Ethereum network config.\"\"\"\n\n    chain_id: HexNumber\n    genesis_hash: Hash\n    fork_activation_times: ForkActivationTimes\n    blob_schedule: Dict[Fork, ForkConfigBlobSchedule] = Field(default_factory=dict)\n    address_overrides: AddressOverrideDict = Field(default_factory=lambda: AddressOverrideDict({}))\n\n    def get_eth_config(self, current_time: int) -> EthConfigResponse:\n        \"\"\"Get the current and next forks based on the given time.\"\"\"\n        network_kwargs = {\n            \"chain_id\": self.chain_id,\n            \"address_overrides\": self.address_overrides,\n        }\n\n        activation_times = set(self.fork_activation_times.forks_by_activation_time().keys())\n\n        current_activation_times = {\n            activation_time\n            for activation_time in activation_times\n            if activation_time <= current_time\n        }\n        next_activation_times = {\n            activation_time\n            for activation_time in activation_times\n            if activation_time > current_time\n        }\n        active_fork = self.fork_activation_times.active_fork(current_time)\n        current_config_builder: ForkConfigBuilder = ForkConfigBuilder(\n            fork=active_fork,\n            activation_time=self.fork_activation_times[active_fork],\n            blob_schedule=self.blob_schedule.get(active_fork),\n            **network_kwargs,\n        )\n        current_config = current_config_builder.get_config(\n            calculate_fork_id(self.genesis_hash, current_activation_times)\n        )\n        kwargs = {\"current\": current_config}\n\n        next_fork = self.fork_activation_times.next_fork(current_time)\n        if next_fork:\n            next_config_builder: ForkConfigBuilder = ForkConfigBuilder(\n                fork=next_fork,\n                activation_time=self.fork_activation_times[next_fork],\n                blob_schedule=self.blob_schedule.get(next_fork),\n                **network_kwargs,\n            )\n            kwargs[\"next\"] = next_config_builder.get_config(\n                calculate_fork_id(\n                    self.genesis_hash,\n                    current_activation_times | {sorted(next_activation_times)[0]},\n                )\n            )\n\n        last_fork = self.fork_activation_times.last_fork(current_time)\n        if last_fork:\n            last_config_builder: ForkConfigBuilder = ForkConfigBuilder(\n                fork=last_fork,\n                activation_time=self.fork_activation_times[last_fork],\n                blob_schedule=self.blob_schedule.get(last_fork),\n                **network_kwargs,\n            )\n            kwargs[\"last\"] = last_config_builder.get_config(\n                calculate_fork_id(\n                    self.genesis_hash,\n                    current_activation_times | next_activation_times,\n                )\n            )\n\n        return EthConfigResponse(**kwargs)\n\n\nclass NetworkConfigFile(EthereumTestRootModel):\n    \"\"\"Root model to describe a file that contains network configurations.\"\"\"\n\n    root: Dict[str, NetworkConfig]\n\n    @classmethod\n    def from_yaml(cls, path: Path) -> Self:\n        \"\"\"Read the network configuration from a yaml file.\"\"\"\n        with path.open(\"r\") as file:\n            config_data = yaml.safe_load(file)\n            return cls.model_validate(config_data)\n\n\nclass GenesisConfig(CamelModel):\n    \"\"\"Config model contained in a Geth-type genesis file.\"\"\"\n\n    chain_id: int\n    terminal_total_difficulty: int\n    terminal_total_difficulty_passed: bool\n    deposit_contract_address: Address = Address(0x00000000219AB540356CBB839CBE05303D7705FA)\n    fork_activation_times: ForkActivationTimes\n    blob_schedule: Dict[Fork, ForkConfigBlobSchedule]\n\n    fork_synonyms: ClassVar[Dict[str, str | None]] = {\n        # TODO: Ideally add fork synonyms, but not important for now.\n        \"eip150\": None,\n        \"eip155\": None,\n        \"eip158\": None,\n        \"petersburg\": None,\n        \"mergeNetsplit\": \"paris\",\n    }\n\n    @property\n    def address_overrides(self) -> AddressOverrideDict:\n        \"\"\"Get the address overrides.\"\"\"\n        if self.deposit_contract_address == Address(0x00000000219AB540356CBB839CBE05303D7705FA):\n            return AddressOverrideDict({})\n        return AddressOverrideDict(\n            {Address(0x00000000219AB540356CBB839CBE05303D7705FA): self.deposit_contract_address}\n        )\n\n    def fork(self) -> Fork:\n        \"\"\"Return the latest fork active at genesis.\"\"\"\n        current_fork: Fork = Frontier\n        for fork, activation_block_time in self.fork_activation_times.root.items():\n            if activation_block_time == 0 and fork > current_fork:\n                current_fork = fork\n        return current_fork\n\n    @model_validator(mode=\"before\")\n    @classmethod\n    def preprocess_fork_times_blocks(cls, data: Any) -> Any:\n        \"\"\"\n        Pre-process the dictionary to put fork block numbers and times in the\n        correct format.\n\n        Fork times and block numbers have the following format in the root of\n        the object:\n\n        ```\n        \"berlinBlock\": 0,\n        \"londonBlock\": 0,\n        ...\n        \"pragueTime\": 0,\n        \"osakaTime\": 1753379304,\n        ```\n\n        This function strips the \"*Block\" and \"*Time\" part and moves the\n        values.\n        \"\"\"\n        if isinstance(data, dict):\n            fork_activation_times: Dict[str, int] = {}\n            for key in list(data.keys()):\n                assert isinstance(key, str)\n                if key.endswith(\"Block\") or key.endswith(\"Time\"):\n                    if key.endswith(\"Block\"):\n                        stripped_key = key.removesuffix(\"Block\")\n                    else:\n                        stripped_key = key.removesuffix(\"Time\")\n                    if stripped_key in cls.fork_synonyms:\n                        synonym = cls.fork_synonyms[stripped_key]\n                        if synonym:\n                            stripped_key = synonym\n                        else:\n                            continue\n                    fork_activation_times[stripped_key] = data.pop(key)\n            if fork_activation_times:\n                data[\"forkActivationTimes\"] = fork_activation_times\n        return data\n\n\nclass Genesis(CamelModel):\n    \"\"\"Geth-type genesis file.\"\"\"\n\n    config: GenesisConfig\n    alloc: Alloc\n    fee_recipient: Address = Field(validation_alias=\"coinbase\")\n    difficulty: HexNumber\n    extra_data: Bytes\n    gas_limit: HexNumber\n    nonce: Annotated[HeaderNonce, BeforeValidator(lambda x: HexNumber(x))]\n    mixhash: Hash\n    timestamp: Number\n    parent_hash: Hash\n    base_fee_per_gas: HexNumber = HexNumber(10**9)\n    number: HexNumber = HexNumber(0)\n\n    @cached_property\n    def hash(self) -> Hash:\n        \"\"\"Calculate the genesis hash.\"\"\"\n        dumped_genesis = self.model_dump(mode=\"json\", exclude={\"config\", \"alloc\"})\n        genesis_fork = self.config.fork()\n        env = Environment(**dumped_genesis).set_fork_requirements(genesis_fork)\n        genesis_header = FixtureHeader.genesis(genesis_fork, env, self.alloc.state_root())\n        genesis_header.extra_data = self.extra_data\n        genesis_header.nonce = self.nonce\n        return genesis_header.block_hash\n\n    def network_config(self) -> NetworkConfig:\n        \"\"\"Get the network config.\"\"\"\n        return NetworkConfig(\n            chain_id=self.config.chain_id,\n            genesis_hash=self.hash,\n            fork_activation_times=self.config.fork_activation_times,\n            blob_schedule=self.config.blob_schedule,\n            address_overrides=self.config.address_overrides,\n        )\n"
  },
  {
    "path": "src/pytest_plugins/execute/eth_config/networks.yml",
    "content": "Mainnet:\n  chainId:              0x1\n  genesisHash:          0xd4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3\n  forkActivationTimes:\n    Frontier:           0\n    Homestead:          1150000\n    DAOFork:            1920000\n    Tangerine:          2463000\n    SpuriousDragon:     2675000\n    Byzantium:          4370000\n    Constantinople:     7280000\n    Istanbul:           9069000\n    MuirGlacier:        9200000\n    Berlin:             12244000\n    London:             12965000\n    ArrowGlacier:       13773000\n    GrayGlacier:        15050000\n    Shanghai:           1681338455\n    Cancun:             1710338135\n    Prague:             1746612311\n  blobSchedule:\n    Cancun:\n      target: 3\n      max: 6\n      baseFeeUpdateFraction: 3338477\n    Prague:\n      target: 6\n      max: 9\n      baseFeeUpdateFraction: 5007716\n    Osaka:\n      target: 6\n      max: 9\n      baseFeeUpdateFraction: 5007716\n    BPO1:\n      target: 10\n      max: 15\n      baseFeeUpdateFraction: 8346193\n    BPO2:\n      target: 14\n      max: 21\n      baseFeeUpdateFraction: 11684671\n\nSepolia:\n  chainId:              0xaa36a7\n  genesisHash:          0x25a5cc106eea7138acab33231d7160d69cb777ee0c2c553fcddf5138993e6dd9\n  forkActivationTimes:\n    Berlin:             0\n    London:             1735371\n    Shanghai:           1677557088\n    Cancun:             1706655072\n    Prague:             1741159776\n    Osaka:              1760427360\n    BPO1:               1761017184\n    BPO2:               1761607008\n  blobSchedule:\n    Cancun:\n      target: 3\n      max: 6\n      baseFeeUpdateFraction: 3338477\n    Prague:\n      target: 6\n      max: 9\n      baseFeeUpdateFraction: 5007716\n    Osaka:\n      target: 6\n      max: 9\n      baseFeeUpdateFraction: 5007716\n    BPO1:\n      target: 10\n      max: 15\n      baseFeeUpdateFraction: 8346193\n    BPO2:\n      target: 14\n      max: 21\n      baseFeeUpdateFraction: 11684671\n  addressOverrides:\n    0x00000000219ab540356cbb839cbe05303d7705fa: 0x7f02c3e3c98b133055b8b348b2ac625669ed295d\n\nHoodi:\n  chainId:              0x88BB0\n  genesisHash:          0xbbe312868b376a3001692a646dd2d7d1e4406380dfd86b98aa8a34d1557c971b\n  forkActivationTimes:\n    Cancun:             0\n    Prague:             1742999832\n    Osaka:              1761677592\n    BPO1:               1762365720\n    BPO2:               1762955544\n  blobSchedule:\n    Cancun:\n      target: 3\n      max: 6\n      baseFeeUpdateFraction: 3338477\n    Prague:\n      target: 6\n      max: 9\n      baseFeeUpdateFraction: 5007716\n    Osaka:\n      target: 6\n      max: 9\n      baseFeeUpdateFraction: 5007716\n    BPO1:\n      target: 10\n      max: 15\n      baseFeeUpdateFraction: 8346193\n    BPO2:\n      target: 14\n      max: 21\n      baseFeeUpdateFraction: 11684671\n\nHolesky:\n  chainId:              0x4268\n  genesisHash:          0xb5f7f912443c940f21fd611f12828d75b534364ed9e95ca4e307729a4661bde4\n  forkActivationTimes:\n    Paris:              0\n    Shanghai:           1696000704\n    Cancun:             1707305664\n    Prague:             1740434112\n    Osaka:              1759308480\n    BPO1:               1759800000\n    BPO2:               1760389824\n  addressOverrides:\n    0x00000000219ab540356cbb839cbe05303d7705fa: 0x4242424242424242424242424242424242424242\n  blobSchedule:\n    Cancun:\n      target: 3\n      max: 6\n      baseFeeUpdateFraction: 3338477\n    Prague:\n      target: 6\n      max: 9\n      baseFeeUpdateFraction: 5007716\n    Osaka:\n      target: 6\n      max: 9\n      baseFeeUpdateFraction: 5007716\n    BPO1:\n      target: 10\n      max: 15\n      baseFeeUpdateFraction: 8346193\n    BPO2:\n      target: 14\n      max: 21\n      baseFeeUpdateFraction: 11684671"
  },
  {
    "path": "src/pytest_plugins/execute/eth_config/tests/__init__.py",
    "content": "\"\"\"Unit tests for the `eth_config` pytest plugin package.\"\"\"\n"
  },
  {
    "path": "src/pytest_plugins/execute/eth_config/tests/genesis_example.json",
    "content": "{\n    \"config\": {\n      \"chainId\": 7023102237,\n      \"homesteadBlock\": 0,\n      \"eip150Block\": 0,\n      \"eip155Block\": 0,\n      \"eip158Block\": 0,\n      \"byzantiumBlock\": 0,\n      \"constantinopleBlock\": 0,\n      \"petersburgBlock\": 0,\n      \"istanbulBlock\": 0,\n      \"berlinBlock\": 0,\n      \"londonBlock\": 0,\n      \"mergeNetsplitBlock\": 0,\n      \"terminalTotalDifficulty\": 0,\n      \"terminalTotalDifficultyPassed\": true,\n      \"shanghaiTime\": 0,\n      \"cancunTime\": 0,\n      \"blobSchedule\": {\n        \"cancun\": {\n          \"target\": 3,\n          \"max\": 6,\n          \"baseFeeUpdateFraction\": 3338477\n        },\n        \"prague\": {\n          \"target\": 6,\n          \"max\": 9,\n          \"baseFeeUpdateFraction\": 5007716\n        },\n        \"osaka\": {\n          \"target\": 6,\n          \"max\": 9,\n          \"baseFeeUpdateFraction\": 5007716\n        },\n        \"bpo1\": {\n          \"target\": 9,\n          \"max\": 12,\n          \"baseFeeUpdateFraction\": 5007716\n        },\n        \"bpo2\": {\n          \"target\": 12,\n          \"max\": 15,\n          \"baseFeeUpdateFraction\": 5007716\n        },\n        \"bpo3\": {\n          \"target\": 15,\n          \"max\": 18,\n          \"baseFeeUpdateFraction\": 5007716\n        },\n        \"bpo4\": {\n          \"target\": 6,\n          \"max\": 9,\n          \"baseFeeUpdateFraction\": 5007716\n        },\n        \"bpo5\": {\n          \"target\": 15,\n          \"max\": 20,\n          \"baseFeeUpdateFraction\": 5007716\n        }\n      },\n      \"depositContractAddress\": \"0x00000000219ab540356cBB839Cbe05303d7705Fa\",\n      \"pragueTime\": 0,\n      \"osakaTime\": 1753379304,\n      \"bpo1Time\": 1753477608,\n      \"bpo2Time\": 1753575912,\n      \"bpo3Time\": 1753674216,\n      \"bpo4Time\": 1753772520,\n      \"bpo5Time\": 1753889256\n    },\n    \"alloc\": {\n      \"0x0000000000000000000000000000000000000000\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000001\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000002\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000003\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000004\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000005\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000006\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000007\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000008\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000009\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000000a\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000000b\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000000c\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000000d\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000000e\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000000f\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000010\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000011\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000012\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000013\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000014\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000015\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000016\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000017\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000018\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000019\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000001a\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000001b\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000001c\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000001d\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000001e\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000001f\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000020\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000021\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000022\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000023\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000024\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000025\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000026\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000027\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000028\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000029\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000002a\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000002b\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000002c\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000002d\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000002e\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000002f\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000030\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000031\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000032\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000033\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000034\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000035\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000036\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000037\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000038\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000039\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000003a\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000003b\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000003c\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000003d\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000003e\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000003f\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000040\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000041\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000042\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000043\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000044\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000045\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000046\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000047\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000048\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000049\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000004a\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000004b\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000004c\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000004d\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000004e\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000004f\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000050\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000051\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000052\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000053\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000054\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000055\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000056\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000057\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000058\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000059\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000005a\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000005b\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000005c\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000005d\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000005e\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000005f\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000060\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000061\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000062\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000063\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000064\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000065\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000066\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000067\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000068\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000069\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000006a\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000006b\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000006c\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000006d\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000006e\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000006f\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000070\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000071\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000072\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000073\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000074\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000075\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000076\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000077\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000078\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000079\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000007a\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000007b\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000007c\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000007d\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000007e\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000007f\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000080\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000081\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000082\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000083\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000084\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000085\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000086\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000087\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000088\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000089\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000008a\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000008b\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000008c\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000008d\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000008e\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000008f\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000090\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000091\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000092\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000093\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000094\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000095\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000096\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000097\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000098\": {\n        \"balance\": \"1\"\n      },\n      \"0x0000000000000000000000000000000000000099\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000009a\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000009b\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000009c\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000009d\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000009e\": {\n        \"balance\": \"1\"\n      },\n      \"0x000000000000000000000000000000000000009f\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000a0\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000a1\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000a2\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000a3\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000a4\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000a5\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000a6\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000a7\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000a8\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000a9\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000aa\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000ab\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000ac\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000ad\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000ae\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000af\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000b0\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000b1\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000b2\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000b3\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000b4\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000b5\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000b6\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000b7\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000b8\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000b9\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000ba\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000bb\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000bc\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000bd\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000be\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000bf\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000c0\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000c1\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000c2\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000c3\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000c4\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000c5\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000c6\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000c7\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000c8\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000c9\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000ca\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000cb\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000cc\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000cd\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000ce\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000cf\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000d0\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000d1\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000d2\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000d3\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000d4\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000d5\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000d6\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000d7\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000d8\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000d9\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000da\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000db\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000dc\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000dd\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000de\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000df\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000e0\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000e1\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000e2\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000e3\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000e4\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000e5\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000e6\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000e7\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000e8\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000e9\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000ea\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000eb\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000ec\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000ed\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000ee\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000ef\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000f0\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000f1\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000f2\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000f3\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000f4\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000f5\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000f6\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000f7\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000f8\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000f9\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000fa\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000fb\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000fc\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000fd\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000fe\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000000000000000000000000000000000ff\": {\n        \"balance\": \"1\"\n      },\n      \"0x00000000219ab540356cBB839Cbe05303d7705Fa\": {\n        \"balance\": \"0\",\n        \"code\": \"0x60806040526004361061003f5760003560e01c806301ffc9a71461004457806322895118146100a4578063621fd130146101ba578063c5f2892f14610244575b600080fd5b34801561005057600080fd5b506100906004803603602081101561006757600080fd5b50357fffffffff000000000000000000000000000000000000000000000000000000001661026b565b604080519115158252519081900360200190f35b6101b8600480360360808110156100ba57600080fd5b8101906020810181356401000000008111156100d557600080fd5b8201836020820111156100e757600080fd5b8035906020019184600183028401116401000000008311171561010957600080fd5b91939092909160208101903564010000000081111561012757600080fd5b82018360208201111561013957600080fd5b8035906020019184600183028401116401000000008311171561015b57600080fd5b91939092909160208101903564010000000081111561017957600080fd5b82018360208201111561018b57600080fd5b803590602001918460018302840111640100000000831117156101ad57600080fd5b919350915035610304565b005b3480156101c657600080fd5b506101cf6110b5565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102095781810151838201526020016101f1565b50505050905090810190601f1680156102365780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561025057600080fd5b506102596110c7565b60408051918252519081900360200190f35b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a70000000000000000000000000000000000000000000000000000000014806102fe57507fffffffff0000000000000000000000000000000000000000000000000000000082167f8564090700000000000000000000000000000000000000000000000000000000145b92915050565b6030861461035d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806118056026913960400191505060405180910390fd5b602084146103b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018061179c6036913960400191505060405180910390fd5b6060821461040f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806118786029913960400191505060405180910390fd5b670de0b6b3a7640000341015610470576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806118526026913960400191505060405180910390fd5b633b9aca003406156104cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806117d26033913960400191505060405180910390fd5b633b9aca00340467ffffffffffffffff811115610535576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602781526020018061182b6027913960400191505060405180910390fd5b6060610540826114ba565b90507f649bbc62d0e31342afea4e5cd82d4049e7e1ee912fc0889aa790803be39038c589898989858a8a6105756020546114ba565b6040805160a0808252810189905290819060208201908201606083016080840160c085018e8e80828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910187810386528c815260200190508c8c808284376000838201819052601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690920188810386528c5181528c51602091820193918e019250908190849084905b83811015610648578181015183820152602001610630565b50505050905090810190601f1680156106755780820380516001836020036101000a031916815260200191505b5086810383528881526020018989808284376000838201819052601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018881038452895181528951602091820193918b019250908190849084905b838110156106ef5781810151838201526020016106d7565b50505050905090810190601f16801561071c5780820380516001836020036101000a031916815260200191505b509d505050505050505050505050505060405180910390a1600060028a8a600060801b604051602001808484808284377fffffffffffffffffffffffffffffffff0000000000000000000000000000000090941691909301908152604080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0818403018152601090920190819052815191955093508392506020850191508083835b602083106107fc57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016107bf565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610859573d6000803e3d6000fd5b5050506040513d602081101561086e57600080fd5b5051905060006002806108846040848a8c6116fe565b6040516020018083838082843780830192505050925050506040516020818303038152906040526040518082805190602001908083835b602083106108f857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016108bb565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610955573d6000803e3d6000fd5b5050506040513d602081101561096a57600080fd5b5051600261097b896040818d6116fe565b60405160009060200180848480828437919091019283525050604080518083038152602092830191829052805190945090925082918401908083835b602083106109f457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016109b7565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610a51573d6000803e3d6000fd5b5050506040513d6020811015610a6657600080fd5b5051604080516020818101949094528082019290925280518083038201815260609092019081905281519192909182918401908083835b60208310610ada57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610a9d565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610b37573d6000803e3d6000fd5b5050506040513d6020811015610b4c57600080fd5b50516040805160208101858152929350600092600292839287928f928f92018383808284378083019250505093505050506040516020818303038152906040526040518082805190602001908083835b60208310610bd957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610b9c565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610c36573d6000803e3d6000fd5b5050506040513d6020811015610c4b57600080fd5b50516040518651600291889160009188916020918201918291908601908083835b60208310610ca957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610c6c565b6001836020036101000a0380198251168184511680821785525050505050509050018367ffffffffffffffff191667ffffffffffffffff1916815260180182815260200193505050506040516020818303038152906040526040518082805190602001908083835b60208310610d4e57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610d11565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610dab573d6000803e3d6000fd5b5050506040513d6020811015610dc057600080fd5b5051604080516020818101949094528082019290925280518083038201815260609092019081905281519192909182918401908083835b60208310610e3457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610df7565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610e91573d6000803e3d6000fd5b5050506040513d6020811015610ea657600080fd5b50519050858114610f02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260548152602001806117486054913960600191505060405180910390fd5b60205463ffffffff11610f60576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806117276021913960400191505060405180910390fd5b602080546001019081905560005b60208110156110a9578160011660011415610fa0578260008260208110610f9157fe5b0155506110ac95505050505050565b600260008260208110610faf57fe5b01548460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061102557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610fe8565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015611082573d6000803e3d6000fd5b5050506040513d602081101561109757600080fd5b50519250600282049150600101610f6e565b50fe5b50505050505050565b60606110c26020546114ba565b905090565b6020546000908190815b60208110156112f05781600116600114156111e6576002600082602081106110f557fe5b01548460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061116b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161112e565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa1580156111c8573d6000803e3d6000fd5b5050506040513d60208110156111dd57600080fd5b505192506112e2565b600283602183602081106111f657fe5b015460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061126b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161122e565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa1580156112c8573d6000803e3d6000fd5b5050506040513d60208110156112dd57600080fd5b505192505b6002820491506001016110d1565b506002826112ff6020546114ba565b600060401b6040516020018084815260200183805190602001908083835b6020831061135a57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161131d565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790527fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000095909516920191825250604080518083037ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8018152601890920190819052815191955093508392850191508083835b6020831061143f57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611402565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa15801561149c573d6000803e3d6000fd5b5050506040513d60208110156114b157600080fd5b50519250505090565b60408051600880825281830190925260609160208201818036833701905050905060c082901b8060071a60f81b826000815181106114f457fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060061a60f81b8260018151811061153757fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060051a60f81b8260028151811061157a57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060041a60f81b826003815181106115bd57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060031a60f81b8260048151811061160057fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060021a60f81b8260058151811061164357fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060011a60f81b8260068151811061168657fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060001a60f81b826007815181106116c957fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535050919050565b6000808585111561170d578182fd5b83861115611719578182fd5b505082019391909203915056fe4465706f736974436f6e74726163743a206d65726b6c6520747265652066756c6c4465706f736974436f6e74726163743a207265636f6e7374727563746564204465706f7369744461746120646f6573206e6f74206d6174636820737570706c696564206465706f7369745f646174615f726f6f744465706f736974436f6e74726163743a20696e76616c6964207769746864726177616c5f63726564656e7469616c73206c656e6774684465706f736974436f6e74726163743a206465706f7369742076616c7565206e6f74206d756c7469706c65206f6620677765694465706f736974436f6e74726163743a20696e76616c6964207075626b6579206c656e6774684465706f736974436f6e74726163743a206465706f7369742076616c756520746f6f20686967684465706f736974436f6e74726163743a206465706f7369742076616c756520746f6f206c6f774465706f736974436f6e74726163743a20696e76616c6964207369676e6174757265206c656e677468a2646970667358221220dceca8706b29e917dacf25fceef95acac8d90d765ac926663ce4096195952b6164736f6c634300060b0033\",\n        \"storage\": {\n          \"0x0000000000000000000000000000000000000000000000000000000000000022\": \"0xf5a5fd42d16a20302798ef6ed309979b43003d2320d9f0e8ea9831a92759fb4b\",\n          \"0x0000000000000000000000000000000000000000000000000000000000000023\": \"0xdb56114e00fdd4c1f85c892bf35ac9a89289aaecb1ebd0a96cde606a748b5d71\",\n          \"0x0000000000000000000000000000000000000000000000000000000000000024\": \"0xc78009fdf07fc56a11f122370658a353aaa542ed63e44c4bc15ff4cd105ab33c\",\n          \"0x0000000000000000000000000000000000000000000000000000000000000025\": \"0x536d98837f2dd165a55d5eeae91485954472d56f246df256bf3cae19352a123c\",\n          \"0x0000000000000000000000000000000000000000000000000000000000000026\": \"0x9efde052aa15429fae05bad4d0b1d7c64da64d03d7a1854a588c2cb8430c0d30\",\n          \"0x0000000000000000000000000000000000000000000000000000000000000027\": \"0xd88ddfeed400a8755596b21942c1497e114c302e6118290f91e6772976041fa1\",\n          \"0x0000000000000000000000000000000000000000000000000000000000000028\": \"0x87eb0ddba57e35f6d286673802a4af5975e22506c7cf4c64bb6be5ee11527f2c\",\n          \"0x0000000000000000000000000000000000000000000000000000000000000029\": \"0x26846476fd5fc54a5d43385167c95144f2643f533cc85bb9d16b782f8d7db193\",\n          \"0x000000000000000000000000000000000000000000000000000000000000002a\": \"0x506d86582d252405b840018792cad2bf1259f1ef5aa5f887e13cb2f0094f51e1\",\n          \"0x000000000000000000000000000000000000000000000000000000000000002b\": \"0xffff0ad7e659772f9534c195c815efc4014ef1e1daed4404c06385d11192e92b\",\n          \"0x000000000000000000000000000000000000000000000000000000000000002c\": \"0x6cf04127db05441cd833107a52be852868890e4317e6a02ab47683aa75964220\",\n          \"0x000000000000000000000000000000000000000000000000000000000000002d\": \"0xb7d05f875f140027ef5118a2247bbb84ce8f2f0f1123623085daf7960c329f5f\",\n          \"0x000000000000000000000000000000000000000000000000000000000000002e\": \"0xdf6af5f5bbdb6be9ef8aa618e4bf8073960867171e29676f8b284dea6a08a85e\",\n          \"0x000000000000000000000000000000000000000000000000000000000000002f\": \"0xb58d900f5e182e3c50ef74969ea16c7726c549757cc23523c369587da7293784\",\n          \"0x0000000000000000000000000000000000000000000000000000000000000030\": \"0xd49a7502ffcfb0340b1d7885688500ca308161a7f96b62df9d083b71fcc8f2bb\",\n          \"0x0000000000000000000000000000000000000000000000000000000000000031\": \"0x8fe6b1689256c0d385f42f5bbe2027a22c1996e110ba97c171d3e5948de92beb\",\n          \"0x0000000000000000000000000000000000000000000000000000000000000032\": \"0x8d0d63c39ebade8509e0ae3c9c3876fb5fa112be18f905ecacfecb92057603ab\",\n          \"0x0000000000000000000000000000000000000000000000000000000000000033\": \"0x95eec8b2e541cad4e91de38385f2e046619f54496c2382cb6cacd5b98c26f5a4\",\n          \"0x0000000000000000000000000000000000000000000000000000000000000034\": \"0xf893e908917775b62bff23294dbbe3a1cd8e6cc1c35b4801887b646a6f81f17f\",\n          \"0x0000000000000000000000000000000000000000000000000000000000000035\": \"0xcddba7b592e3133393c16194fac7431abf2f5485ed711db282183c819e08ebaa\",\n          \"0x0000000000000000000000000000000000000000000000000000000000000036\": \"0x8a8d7fe3af8caa085a7639a832001457dfb9128a8061142ad0335629ff23ff9c\",\n          \"0x0000000000000000000000000000000000000000000000000000000000000037\": \"0xfeb3c337d7a51a6fbf00b9e34c52e1c9195c969bd4e7a0bfd51d5c5bed9c1167\",\n          \"0x0000000000000000000000000000000000000000000000000000000000000038\": \"0xe71f0aa83cc32edfbefa9f4d3e0174ca85182eec9f3a09f6a6c0df6377a510d7\",\n          \"0x0000000000000000000000000000000000000000000000000000000000000039\": \"0x31206fa80a50bb6abe29085058f16212212a60eec8f049fecb92d8c8e0a84bc0\",\n          \"0x000000000000000000000000000000000000000000000000000000000000003a\": \"0x21352bfecbeddde993839f614c3dac0a3ee37543f9b412b16199dc158e23b544\",\n          \"0x000000000000000000000000000000000000000000000000000000000000003b\": \"0x619e312724bb6d7c3153ed9de791d764a366b389af13c58bf8a8d90481a46765\",\n          \"0x000000000000000000000000000000000000000000000000000000000000003c\": \"0x7cdd2986268250628d0c10e385c58c6191e6fbe05191bcc04f133f2cea72c1c4\",\n          \"0x000000000000000000000000000000000000000000000000000000000000003d\": \"0x848930bd7ba8cac54661072113fb278869e07bb8587f91392933374d017bcbe1\",\n          \"0x000000000000000000000000000000000000000000000000000000000000003e\": \"0x8869ff2c22b28cc10510d9853292803328be4fb0e80495e8bb8d271f5b889636\",\n          \"0x000000000000000000000000000000000000000000000000000000000000003f\": \"0xb5fe28e79f1b850f8658246ce9b6a1e7b49fc06db7143e8fe0b4f2b0c5523a5c\",\n          \"0x0000000000000000000000000000000000000000000000000000000000000040\": \"0x985e929f70af28d0bdd1a90a808f977f597c7c778c489e98d3bd8910d31ac0f7\"\n        }\n      },\n      \"0x000F3df6D732807Ef1319fB7B8bB8522d0Beac02\": {\n        \"balance\": \"0\",\n        \"nonce\": \"1\",\n        \"code\": \"0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500\"\n      },\n      \"0x0000F90827F1C53a10cb7A02335B175320002935\": {\n        \"balance\": \"0\",\n        \"nonce\": \"1\",\n        \"code\": \"0x3373fffffffffffffffffffffffffffffffffffffffe14604657602036036042575f35600143038111604257611fff81430311604257611fff9006545f5260205ff35b5f5ffd5b5f35611fff60014303065500\"\n      },\n      \"0x00000961Ef480Eb55e80D19ad83579A64c007002\": {\n        \"balance\": \"0\",\n        \"nonce\": \"1\",\n        \"code\": \"0x3373fffffffffffffffffffffffffffffffffffffffe1460cb5760115f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff146101f457600182026001905f5b5f82111560685781019083028483029004916001019190604d565b909390049250505036603814608857366101f457346101f4575f5260205ff35b34106101f457600154600101600155600354806003026004013381556001015f35815560010160203590553360601b5f5260385f601437604c5fa0600101600355005b6003546002548082038060101160df575060105b5f5b8181146101835782810160030260040181604c02815460601b8152601401816001015481526020019060020154807fffffffffffffffffffffffffffffffff00000000000000000000000000000000168252906010019060401c908160381c81600701538160301c81600601538160281c81600501538160201c81600401538160181c81600301538160101c81600201538160081c81600101535360010160e1565b910180921461019557906002556101a0565b90505f6002555f6003555b5f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14156101cd57505f5b6001546002828201116101e25750505f6101e8565b01600290035b5f555f600155604c025ff35b5f5ffd\",\n        \"storage\": {\n          \"0x0000000000000000000000000000000000000000000000000000000000000000\": \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n        }\n      },\n      \"0x0000BBdDc7CE488642fb579F8B00f3a590007251\": {\n        \"balance\": \"0\",\n        \"nonce\": \"1\",\n        \"code\": \"0x3373fffffffffffffffffffffffffffffffffffffffe1460d35760115f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1461019a57600182026001905f5b5f82111560685781019083028483029004916001019190604d565b9093900492505050366060146088573661019a573461019a575f5260205ff35b341061019a57600154600101600155600354806004026004013381556001015f358155600101602035815560010160403590553360601b5f5260605f60143760745fa0600101600355005b6003546002548082038060021160e7575060025b5f5b8181146101295782810160040260040181607402815460601b815260140181600101548152602001816002015481526020019060030154905260010160e9565b910180921461013b5790600255610146565b90505f6002555f6003555b5f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff141561017357505f5b6001546001828201116101885750505f61018e565b01600190035b5f555f6001556074025ff35b5f5ffd\",\n        \"storage\": {\n          \"0x0000000000000000000000000000000000000000000000000000000000000000\": \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n        }\n      },\n      \"0x454b0EA7d8aD3C56D0CF2e44Ed97b2Feab4D7AF2\": {\n        \"balance\": \"1000000000000000000000000000\"\n      },\n      \"0xd3248BA3E5492D767F8e427Cb9C7B9D5C3972D7B\": {\n        \"balance\": \"1000000000000000000000000000\"\n      },\n      \"0xAD01b55d7c3448B8899862eb335FBb17075d8DE2\": {\n        \"balance\": \"1000000000000000000000000000\"\n      },\n      \"0x7e454a14B8e7528465eeF86f0DC1da4f235d9D79\": {\n        \"balance\": \"1000000000000000000000000000\"\n      },\n      \"0x7a40026A3b9A41754a95EeC8c92C6B99886f440C\": {\n        \"balance\": \"1000000000000000000000000000\"\n      },\n      \"0x8c4D8CDD1f474510Dd70D66F2785a3a38a29AC1A\": {\n        \"balance\": \"1000000000000000000000000000\"\n      },\n      \"0xfC7360b3b28cf4204268A8354dbEc60720d155D2\": {\n        \"balance\": \"1000000000000000000000000000\"\n      },\n      \"0x2F7626bBDb8c0f9071bC98046Ef6fDed2167F97F\": {\n        \"balance\": \"1000000000000000000000000000\"\n      },\n      \"0x752CE31Dec0dde7D1563CdF6438d892De2D4FBee\": {\n        \"balance\": \"1000000000000000000000000000\"\n      },\n      \"0x455f42d91096c4Aa708D7Cbcb2DC499dE89C402c\": {\n        \"balance\": \"1000000000000000000000000000\"\n      },\n      \"0x85154341488732D57a97F54AB9706Bc4B71B8636\": {\n        \"balance\": \"1000000000000000000000000000\"\n      },\n      \"0x6a9CcA73d4Ff3a249fa778C7651f4Df8B9fFa0Df\": {\n        \"balance\": \"1000000000000000000000000000\"\n      },\n      \"0xee2d0567AAe8080CA269b7908F4aF8BBb59A6804\": {\n        \"balance\": \"1000000000000000000000000000\"\n      },\n      \"0xDd8D4027078a471816e4Ef7F69aFc0A5d2947dDc\": {\n        \"balance\": \"1000000000000000000000000000\"\n      },\n      \"0x20466E9A67f299F6056bE52A50ea324FA6Bd05D5\": {\n        \"balance\": \"1000000000000000000000000000\"\n      },\n      \"0x03F24BB0C9cfb30217Ff992A36ae9230F2A1697f\": {\n        \"balance\": \"1000000000000000000000000000\"\n      },\n      \"0x032d8372C519c3927b87BDe4479E846a81EF2d10\": {\n        \"balance\": \"1000000000000000000000000000\"\n      },\n      \"0xF863DF14954df73804b3150F3754a8F98CBB1D0d\": {\n        \"balance\": \"1000000000000000000000000000\"\n      },\n      \"0xbe918A6aef1920F3706E23d153146aA6C5982620\": {\n        \"balance\": \"1000000000000000000000000000\"\n      },\n      \"0xA0c7edA3CE474BC670A11EA9537cBEfd36331123\": {\n        \"balance\": \"1000000000000000000000000000\"\n      },\n      \"0xF03b43BeB861044492Eb43E247bEE2AC6C80c651\": {\n        \"balance\": \"1000000000000000000000000000\"\n      }\n    },\n    \"coinbase\": \"0x0000000000000000000000000000000000000000\",\n    \"difficulty\": \"0x0\",\n    \"extraData\": \"\",\n    \"gasLimit\": \"0x2aea540\",\n    \"nonce\": \"0x1234\",\n    \"mixhash\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n    \"parentHash\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n    \"timestamp\": \"1753280940\"\n  }  "
  },
  {
    "path": "src/pytest_plugins/execute/eth_config/tests/test_execute_eth_config.py",
    "content": "\"\"\"Unit tests for the `eth_config` execute tests.\"\"\"\n\nimport json\nfrom os.path import realpath\nfrom pathlib import Path\n\nimport pytest\nimport yaml\n\nfrom ethereum_test_base_types import ForkHash\nfrom ethereum_test_rpc import EthConfigResponse\n\nfrom ..execute_types import NetworkConfig, NetworkConfigFile\n\nEXPECTED_CANCUN = json.loads(\"\"\"\n{\n    \"activationTime\": 0,\n    \"blobSchedule\": {\n    \"baseFeeUpdateFraction\": 3338477,\n    \"max\": 6,\n    \"target\": 3\n    },\n    \"chainId\": \"0x88bb0\",\n    \"forkId\": \"0xbef71d30\",\n    \"precompiles\": {\n    \"BLAKE2F\": \"0x0000000000000000000000000000000000000009\",\n    \"BN254_ADD\": \"0x0000000000000000000000000000000000000006\",\n    \"BN254_MUL\": \"0x0000000000000000000000000000000000000007\",\n    \"BN254_PAIRING\": \"0x0000000000000000000000000000000000000008\",\n    \"ECREC\": \"0x0000000000000000000000000000000000000001\",\n    \"ID\": \"0x0000000000000000000000000000000000000004\",\n    \"KZG_POINT_EVALUATION\": \"0x000000000000000000000000000000000000000a\",\n    \"MODEXP\": \"0x0000000000000000000000000000000000000005\",\n    \"RIPEMD160\": \"0x0000000000000000000000000000000000000003\",\n    \"SHA256\": \"0x0000000000000000000000000000000000000002\"\n    },\n    \"systemContracts\": {\n    \"BEACON_ROOTS_ADDRESS\": \"0x000f3df6d732807ef1319fb7b8bb8522d0beac02\"\n    }\n}\n\"\"\")\nEXPECTED_CANCUN_FORK_ID = ForkHash(\"0xbef71d30\")\nEXPECTED_PRAGUE = json.loads(\"\"\"\n{\n    \"activationTime\": 1742999832,\n    \"blobSchedule\": {\n    \"baseFeeUpdateFraction\": 5007716,\n    \"max\": 9,\n    \"target\": 6\n    },\n    \"chainId\": \"0x88bb0\",\n    \"forkId\": \"0x0929e24e\",\n    \"precompiles\": {\n    \"BLAKE2F\": \"0x0000000000000000000000000000000000000009\",\n    \"BLS12_G1ADD\": \"0x000000000000000000000000000000000000000b\",\n    \"BLS12_G1MSM\": \"0x000000000000000000000000000000000000000c\",\n    \"BLS12_G2ADD\": \"0x000000000000000000000000000000000000000d\",\n    \"BLS12_G2MSM\": \"0x000000000000000000000000000000000000000e\",\n    \"BLS12_MAP_FP2_TO_G2\": \"0x0000000000000000000000000000000000000011\",\n    \"BLS12_MAP_FP_TO_G1\": \"0x0000000000000000000000000000000000000010\",\n    \"BLS12_PAIRING_CHECK\": \"0x000000000000000000000000000000000000000f\",\n    \"BN254_ADD\": \"0x0000000000000000000000000000000000000006\",\n    \"BN254_MUL\": \"0x0000000000000000000000000000000000000007\",\n    \"BN254_PAIRING\": \"0x0000000000000000000000000000000000000008\",\n    \"ECREC\": \"0x0000000000000000000000000000000000000001\",\n    \"ID\": \"0x0000000000000000000000000000000000000004\",\n    \"KZG_POINT_EVALUATION\": \"0x000000000000000000000000000000000000000a\",\n    \"MODEXP\": \"0x0000000000000000000000000000000000000005\",\n    \"RIPEMD160\": \"0x0000000000000000000000000000000000000003\",\n    \"SHA256\": \"0x0000000000000000000000000000000000000002\"\n    },\n    \"systemContracts\": {\n    \"BEACON_ROOTS_ADDRESS\": \"0x000f3df6d732807ef1319fb7b8bb8522d0beac02\",\n    \"CONSOLIDATION_REQUEST_PREDEPLOY_ADDRESS\": \"0x0000bbddc7ce488642fb579f8b00f3a590007251\",\n    \"DEPOSIT_CONTRACT_ADDRESS\": \"0x00000000219ab540356cbb839cbe05303d7705fa\",\n    \"HISTORY_STORAGE_ADDRESS\": \"0x0000f90827f1c53a10cb7a02335b175320002935\",\n    \"WITHDRAWAL_REQUEST_PREDEPLOY_ADDRESS\": \"0x00000961ef480eb55e80d19ad83579a64c007002\"\n  }\n}\n\"\"\")\nEXPECTED_PRAGUE_FORK_ID = ForkHash(\"0x0929e24e\")\nEXPECTED_BPO1 = json.loads(\"\"\"\n{\n    \"activationTime\": 1753477608,\n    \"blobSchedule\": {\n    \"baseFeeUpdateFraction\": 5007716,\n    \"max\": 12,\n    \"target\": 9\n    },\n    \"chainId\": \"0x88bb0\",\n    \"forkId\": \"0x5e2e4e84\",\n    \"precompiles\": {\n    \"BLAKE2F\": \"0x0000000000000000000000000000000000000009\",\n    \"BLS12_G1ADD\": \"0x000000000000000000000000000000000000000b\",\n    \"BLS12_G1MSM\": \"0x000000000000000000000000000000000000000c\",\n    \"BLS12_G2ADD\": \"0x000000000000000000000000000000000000000d\",\n    \"BLS12_G2MSM\": \"0x000000000000000000000000000000000000000e\",\n    \"BLS12_MAP_FP2_TO_G2\": \"0x0000000000000000000000000000000000000011\",\n    \"BLS12_MAP_FP_TO_G1\": \"0x0000000000000000000000000000000000000010\",\n    \"BLS12_PAIRING_CHECK\": \"0x000000000000000000000000000000000000000f\",\n    \"BN254_ADD\": \"0x0000000000000000000000000000000000000006\",\n    \"BN254_MUL\": \"0x0000000000000000000000000000000000000007\",\n    \"BN254_PAIRING\": \"0x0000000000000000000000000000000000000008\",\n    \"ECREC\": \"0x0000000000000000000000000000000000000001\",\n    \"ID\": \"0x0000000000000000000000000000000000000004\",\n    \"KZG_POINT_EVALUATION\": \"0x000000000000000000000000000000000000000a\",\n    \"MODEXP\": \"0x0000000000000000000000000000000000000005\",\n    \"P256VERIFY\": \"0x0000000000000000000000000000000000000100\",\n    \"RIPEMD160\": \"0x0000000000000000000000000000000000000003\",\n    \"SHA256\": \"0x0000000000000000000000000000000000000002\"\n    },\n    \"systemContracts\": {\n    \"BEACON_ROOTS_ADDRESS\": \"0x000f3df6d732807ef1319fb7b8bb8522d0beac02\",\n    \"CONSOLIDATION_REQUEST_PREDEPLOY_ADDRESS\": \"0x0000bbddc7ce488642fb579f8b00f3a590007251\",\n    \"DEPOSIT_CONTRACT_ADDRESS\": \"0x00000000219ab540356cbb839cbe05303d7705fa\",\n    \"HISTORY_STORAGE_ADDRESS\": \"0x0000f90827f1c53a10cb7a02335b175320002935\",\n    \"WITHDRAWAL_REQUEST_PREDEPLOY_ADDRESS\": \"0x00000961ef480eb55e80d19ad83579a64c007002\"\n  }\n}\n\"\"\")\nEXPECTED_BPO1_FORK_ID = ForkHash(\"0x5e2e4e84\")\nEXPECTED_BPO2 = json.loads(\"\"\"\n{\n    \"activationTime\": 1753575912,\n    \"blobSchedule\": {\n    \"baseFeeUpdateFraction\": 5007716,\n    \"max\": 15,\n    \"target\": 12\n    },\n    \"chainId\": \"0x88bb0\",\n    \"forkId\": \"0x9d7b6bfb\",\n    \"precompiles\": {\n    \"BLAKE2F\": \"0x0000000000000000000000000000000000000009\",\n    \"BLS12_G1ADD\": \"0x000000000000000000000000000000000000000b\",\n    \"BLS12_G1MSM\": \"0x000000000000000000000000000000000000000c\",\n    \"BLS12_G2ADD\": \"0x000000000000000000000000000000000000000d\",\n    \"BLS12_G2MSM\": \"0x000000000000000000000000000000000000000e\",\n    \"BLS12_MAP_FP2_TO_G2\": \"0x0000000000000000000000000000000000000011\",\n    \"BLS12_MAP_FP_TO_G1\": \"0x0000000000000000000000000000000000000010\",\n    \"BLS12_PAIRING_CHECK\": \"0x000000000000000000000000000000000000000f\",\n    \"BN254_ADD\": \"0x0000000000000000000000000000000000000006\",\n    \"BN254_MUL\": \"0x0000000000000000000000000000000000000007\",\n    \"BN254_PAIRING\": \"0x0000000000000000000000000000000000000008\",\n    \"ECREC\": \"0x0000000000000000000000000000000000000001\",\n    \"ID\": \"0x0000000000000000000000000000000000000004\",\n    \"KZG_POINT_EVALUATION\": \"0x000000000000000000000000000000000000000a\",\n    \"MODEXP\": \"0x0000000000000000000000000000000000000005\",\n    \"P256VERIFY\": \"0x0000000000000000000000000000000000000100\",\n    \"RIPEMD160\": \"0x0000000000000000000000000000000000000003\",\n    \"SHA256\": \"0x0000000000000000000000000000000000000002\"\n    },\n    \"systemContracts\": {\n    \"BEACON_ROOTS_ADDRESS\": \"0x000f3df6d732807ef1319fb7b8bb8522d0beac02\",\n    \"CONSOLIDATION_REQUEST_PREDEPLOY_ADDRESS\": \"0x0000bbddc7ce488642fb579f8b00f3a590007251\",\n    \"DEPOSIT_CONTRACT_ADDRESS\": \"0x00000000219ab540356cbb839cbe05303d7705fa\",\n    \"HISTORY_STORAGE_ADDRESS\": \"0x0000f90827f1c53a10cb7a02335b175320002935\",\n    \"WITHDRAWAL_REQUEST_PREDEPLOY_ADDRESS\": \"0x00000961ef480eb55e80d19ad83579a64c007002\"\n  }\n}\n\"\"\")\nEXPECTED_BPO2_FORK_ID = ForkHash(\"0x9d7b6bfb\")\nEXPECTED_BPO3 = json.loads(\"\"\"\n{\n    \"activationTime\": 1753674216,\n    \"blobSchedule\": {\n    \"baseFeeUpdateFraction\": 5007716,\n    \"max\": 18,\n    \"target\": 15\n    },\n    \"chainId\": \"0x88bb0\",\n    \"forkId\": \"0xbebdd3a1\",\n    \"precompiles\": {\n    \"BLAKE2F\": \"0x0000000000000000000000000000000000000009\",\n    \"BLS12_G1ADD\": \"0x000000000000000000000000000000000000000b\",\n    \"BLS12_G1MSM\": \"0x000000000000000000000000000000000000000c\",\n    \"BLS12_G2ADD\": \"0x000000000000000000000000000000000000000d\",\n    \"BLS12_G2MSM\": \"0x000000000000000000000000000000000000000e\",\n    \"BLS12_MAP_FP2_TO_G2\": \"0x0000000000000000000000000000000000000011\",\n    \"BLS12_MAP_FP_TO_G1\": \"0x0000000000000000000000000000000000000010\",\n    \"BLS12_PAIRING_CHECK\": \"0x000000000000000000000000000000000000000f\",\n    \"BN254_ADD\": \"0x0000000000000000000000000000000000000006\",\n    \"BN254_MUL\": \"0x0000000000000000000000000000000000000007\",\n    \"BN254_PAIRING\": \"0x0000000000000000000000000000000000000008\",\n    \"ECREC\": \"0x0000000000000000000000000000000000000001\",\n    \"ID\": \"0x0000000000000000000000000000000000000004\",\n    \"KZG_POINT_EVALUATION\": \"0x000000000000000000000000000000000000000a\",\n    \"MODEXP\": \"0x0000000000000000000000000000000000000005\",\n    \"P256VERIFY\": \"0x0000000000000000000000000000000000000100\",\n    \"RIPEMD160\": \"0x0000000000000000000000000000000000000003\",\n    \"SHA256\": \"0x0000000000000000000000000000000000000002\"\n    },\n    \"systemContracts\": {\n    \"BEACON_ROOTS_ADDRESS\": \"0x000f3df6d732807ef1319fb7b8bb8522d0beac02\",\n    \"CONSOLIDATION_REQUEST_PREDEPLOY_ADDRESS\": \"0x0000bbddc7ce488642fb579f8b00f3a590007251\",\n    \"DEPOSIT_CONTRACT_ADDRESS\": \"0x00000000219ab540356cbb839cbe05303d7705fa\",\n    \"HISTORY_STORAGE_ADDRESS\": \"0x0000f90827f1c53a10cb7a02335b175320002935\",\n    \"WITHDRAWAL_REQUEST_PREDEPLOY_ADDRESS\": \"0x00000961ef480eb55e80d19ad83579a64c007002\"\n  }\n}\n\"\"\")\nEXPECTED_BPO3_FORK_ID = ForkHash(\"0xbebdd3a1\")\nEXPECTED_BPO4 = json.loads(\"\"\"\n{\n    \"activationTime\": 1753772520,\n    \"blobSchedule\": {\n    \"baseFeeUpdateFraction\": 5007716,\n    \"max\": 9,\n    \"target\": 6\n    },\n    \"chainId\": \"0x88bb0\",\n    \"forkId\": \"0x190c2054\",\n    \"precompiles\": {\n    \"BLAKE2F\": \"0x0000000000000000000000000000000000000009\",\n    \"BLS12_G1ADD\": \"0x000000000000000000000000000000000000000b\",\n    \"BLS12_G1MSM\": \"0x000000000000000000000000000000000000000c\",\n    \"BLS12_G2ADD\": \"0x000000000000000000000000000000000000000d\",\n    \"BLS12_G2MSM\": \"0x000000000000000000000000000000000000000e\",\n    \"BLS12_MAP_FP2_TO_G2\": \"0x0000000000000000000000000000000000000011\",\n    \"BLS12_MAP_FP_TO_G1\": \"0x0000000000000000000000000000000000000010\",\n    \"BLS12_PAIRING_CHECK\": \"0x000000000000000000000000000000000000000f\",\n    \"BN254_ADD\": \"0x0000000000000000000000000000000000000006\",\n    \"BN254_MUL\": \"0x0000000000000000000000000000000000000007\",\n    \"BN254_PAIRING\": \"0x0000000000000000000000000000000000000008\",\n    \"ECREC\": \"0x0000000000000000000000000000000000000001\",\n    \"ID\": \"0x0000000000000000000000000000000000000004\",\n    \"KZG_POINT_EVALUATION\": \"0x000000000000000000000000000000000000000a\",\n    \"MODEXP\": \"0x0000000000000000000000000000000000000005\",\n    \"P256VERIFY\": \"0x0000000000000000000000000000000000000100\",\n    \"RIPEMD160\": \"0x0000000000000000000000000000000000000003\",\n    \"SHA256\": \"0x0000000000000000000000000000000000000002\"\n    },\n    \"systemContracts\": {\n    \"BEACON_ROOTS_ADDRESS\": \"0x000f3df6d732807ef1319fb7b8bb8522d0beac02\",\n    \"CONSOLIDATION_REQUEST_PREDEPLOY_ADDRESS\": \"0x0000bbddc7ce488642fb579f8b00f3a590007251\",\n    \"DEPOSIT_CONTRACT_ADDRESS\": \"0x00000000219ab540356cbb839cbe05303d7705fa\",\n    \"HISTORY_STORAGE_ADDRESS\": \"0x0000f90827f1c53a10cb7a02335b175320002935\",\n    \"WITHDRAWAL_REQUEST_PREDEPLOY_ADDRESS\": \"0x00000961ef480eb55e80d19ad83579a64c007002\"\n  }\n}\n\"\"\")\nEXPECTED_BPO4_FORK_ID = ForkHash(\"0x190c2054\")\nEXPECTED_BPO5 = json.loads(\"\"\"\n{\n    \"activationTime\": 1753889256,\n    \"blobSchedule\": {\n    \"baseFeeUpdateFraction\": 5007716,\n    \"max\": 20,\n    \"target\": 15\n    },\n    \"chainId\": \"0x88bb0\",\n    \"forkId\": \"0xd3a4880b\",\n    \"precompiles\": {\n    \"BLAKE2F\": \"0x0000000000000000000000000000000000000009\",\n    \"BLS12_G1ADD\": \"0x000000000000000000000000000000000000000b\",\n    \"BLS12_G1MSM\": \"0x000000000000000000000000000000000000000c\",\n    \"BLS12_G2ADD\": \"0x000000000000000000000000000000000000000d\",\n    \"BLS12_G2MSM\": \"0x000000000000000000000000000000000000000e\",\n    \"BLS12_MAP_FP2_TO_G2\": \"0x0000000000000000000000000000000000000011\",\n    \"BLS12_MAP_FP_TO_G1\": \"0x0000000000000000000000000000000000000010\",\n    \"BLS12_PAIRING_CHECK\": \"0x000000000000000000000000000000000000000f\",\n    \"BN254_ADD\": \"0x0000000000000000000000000000000000000006\",\n    \"BN254_MUL\": \"0x0000000000000000000000000000000000000007\",\n    \"BN254_PAIRING\": \"0x0000000000000000000000000000000000000008\",\n    \"ECREC\": \"0x0000000000000000000000000000000000000001\",\n    \"ID\": \"0x0000000000000000000000000000000000000004\",\n    \"KZG_POINT_EVALUATION\": \"0x000000000000000000000000000000000000000a\",\n    \"MODEXP\": \"0x0000000000000000000000000000000000000005\",\n    \"P256VERIFY\": \"0x0000000000000000000000000000000000000100\",\n    \"RIPEMD160\": \"0x0000000000000000000000000000000000000003\",\n    \"SHA256\": \"0x0000000000000000000000000000000000000002\"\n    },\n    \"systemContracts\": {\n    \"BEACON_ROOTS_ADDRESS\": \"0x000f3df6d732807ef1319fb7b8bb8522d0beac02\",\n    \"CONSOLIDATION_REQUEST_PREDEPLOY_ADDRESS\": \"0x0000bbddc7ce488642fb579f8b00f3a590007251\",\n    \"DEPOSIT_CONTRACT_ADDRESS\": \"0x00000000219ab540356cbb839cbe05303d7705fa\",\n    \"HISTORY_STORAGE_ADDRESS\": \"0x0000f90827f1c53a10cb7a02335b175320002935\",\n    \"WITHDRAWAL_REQUEST_PREDEPLOY_ADDRESS\": \"0x00000961ef480eb55e80d19ad83579a64c007002\"\n  }\n}\n\"\"\")\nEXPECTED_BPO5_FORK_ID = ForkHash(\"0xd3a4880b\")\n\nCURRENT_FILE = Path(realpath(__file__))\nCURRENT_FOLDER = CURRENT_FILE.parent\n\n\nSTATIC_NETWORK_CONFIGS = \"\"\"\n# Static network configs so updates to the network configs don't break the tests.\nMainnet:\n  chainId:              0x1\n  genesisHash:          0xd4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3\n  forkActivationTimes:\n    Frontier:           0\n    Homestead:          1150000\n    DAOFork:            1920000\n    Tangerine:          2463000\n    SpuriousDragon:     2675000\n    Byzantium:          4370000\n    Constantinople:     7280000\n    Istanbul:           9069000\n    MuirGlacier:        9200000\n    Berlin:             12244000\n    London:             12965000\n    ArrowGlacier:       13773000\n    GrayGlacier:        15050000\n    Shanghai:           1681338455\n    Cancun:             1710338135\n    Prague:             1746612311\n  blobSchedule:\n    Cancun:\n      target: 3\n      max: 6\n      baseFeeUpdateFraction: 3338477\n    Prague:\n      target: 6\n      max: 9\n      baseFeeUpdateFraction: 5007716\n\nSepolia:\n  chainId:              0xaa36a7\n  genesisHash:          0x25a5cc106eea7138acab33231d7160d69cb777ee0c2c553fcddf5138993e6dd9\n  forkActivationTimes:\n    Berlin:             0\n    London:             1735371\n    Shanghai:           1677557088\n    Cancun:             1706655072\n    Prague:             1741159776\n  blobSchedule:\n    Cancun:\n      target: 3\n      max: 6\n      baseFeeUpdateFraction: 3338477\n    Prague:\n      target: 6\n      max: 9\n      baseFeeUpdateFraction: 5007716\n  addressOverrides:\n    0x00000000219ab540356cbb839cbe05303d7705fa: 0x7f02c3e3c98b133055b8b348b2ac625669ed295d\n\nHoodi:\n  chainId:              0x88BB0\n  genesisHash:          0xbbe312868b376a3001692a646dd2d7d1e4406380dfd86b98aa8a34d1557c971b\n  forkActivationTimes:\n    Cancun:             0\n    Prague:             1742999832\n  blobSchedule:\n    Cancun:\n      target: 3\n      max: 6\n      baseFeeUpdateFraction: 3338477\n    Prague:\n      target: 6\n      max: 9\n      baseFeeUpdateFraction: 5007716\n\nHolesky:\n  chainId:              0x4268\n  genesisHash:          0xb5f7f912443c940f21fd611f12828d75b534364ed9e95ca4e307729a4661bde4\n  forkActivationTimes:\n    Paris:              0\n    Shanghai:           1696000704\n    Cancun:             1707305664\n    Prague:             1740434112\n  addressOverrides:\n    0x00000000219ab540356cbb839cbe05303d7705fa: 0x4242424242424242424242424242424242424242\n  blobSchedule:\n    Cancun:\n      target: 3\n      max: 6\n      baseFeeUpdateFraction: 3338477\n    Prague:\n      target: 6\n      max: 9\n      baseFeeUpdateFraction: 5007716\n\n# Test-only network configs.\nHoodiWithBPOs:\n  chainId:              0x88BB0\n  genesisHash:          0xbbe312868b376a3001692a646dd2d7d1e4406380dfd86b98aa8a34d1557c971b\n  forkActivationTimes:\n    Cancun:             0\n    Prague:             1742999832\n    Osaka:              1753477608\n    BPO1:               1753575912\n    BPO2:               1753674216\n    BPO3:               1753772520\n    BPO4:               1753889256\n  blobSchedule:\n    Cancun:\n      target: 3\n      max: 6\n      baseFeeUpdateFraction: 3338477\n    Prague:\n      target: 6\n      max: 9\n      baseFeeUpdateFraction: 5007716\n    Osaka:\n      target: 9\n      max: 12\n      baseFeeUpdateFraction: 5007716\n    BPO1:\n      target: 12\n      max: 15\n      baseFeeUpdateFraction: 5007716\n    BPO2:\n      target: 15\n      max: 18\n      baseFeeUpdateFraction: 5007716\n    BPO3:\n      target: 6\n      max: 9\n      baseFeeUpdateFraction: 5007716\n    BPO4:\n      target: 15\n      max: 20\n      baseFeeUpdateFraction: 5007716\n\"\"\"  # W505\n\n\n@pytest.fixture(scope=\"session\")\ndef network_configs() -> NetworkConfigFile:\n    \"\"\"Get the file contents from the provided network configs file.\"\"\"\n    return NetworkConfigFile(root=yaml.safe_load(STATIC_NETWORK_CONFIGS))\n\n\n@pytest.fixture\ndef network(request: pytest.FixtureRequest, network_configs: NetworkConfigFile) -> NetworkConfig:\n    \"\"\"Get the network that is under test.\"\"\"\n    network_name = request.param\n    assert network_name in network_configs.root, (\n        f\"Network {network_name} could not be found in network_configs.\"\n    )\n    return network_configs.root[network_name]\n\n\n@pytest.fixture\ndef eth_config(network: NetworkConfig, current_time: int) -> EthConfigResponse:\n    \"\"\"\n    Get the `eth_config` response from the client to be verified by all tests.\n    \"\"\"\n    return network.get_eth_config(current_time)\n\n\n@pytest.mark.parametrize(\n    [\n        \"network\",\n        \"current_time\",\n        \"expected_eth_config\",\n    ],\n    [\n        pytest.param(\n            \"Hoodi\",\n            0,\n            EthConfigResponse(\n                current=EXPECTED_CANCUN,\n                next=EXPECTED_PRAGUE,\n                last=EXPECTED_PRAGUE,\n            ),\n            id=\"Hoodi_cancun\",\n        ),\n        pytest.param(\n            \"Hoodi\",\n            1753477608,\n            EthConfigResponse(\n                current=EXPECTED_PRAGUE,\n            ),\n            id=\"Hoodi_prague\",\n        ),\n        pytest.param(\n            \"HoodiWithBPOs\",\n            1742999832,\n            EthConfigResponse(\n                current=EXPECTED_PRAGUE,\n                next=EXPECTED_BPO1,\n                last=EXPECTED_BPO5,\n            ),\n            id=\"Hoodi_prague_with_bpos_1\",\n        ),\n        pytest.param(\n            \"HoodiWithBPOs\",\n            1753575912,\n            EthConfigResponse(\n                current=EXPECTED_BPO2,\n                next=EXPECTED_BPO3,\n                last=EXPECTED_BPO5,\n            ),\n            id=\"Hoodi_prague_with_bpos_2\",\n        ),\n        pytest.param(\n            \"HoodiWithBPOs\",\n            1753674216,\n            EthConfigResponse(\n                current=EXPECTED_BPO3,\n                next=EXPECTED_BPO4,\n                last=EXPECTED_BPO5,\n            ),\n            id=\"Hoodi_prague_with_bpos_3\",\n        ),\n        pytest.param(\n            \"HoodiWithBPOs\",\n            1753772520,\n            EthConfigResponse(\n                current=EXPECTED_BPO4,\n                next=EXPECTED_BPO5,\n                last=EXPECTED_BPO5,\n            ),\n            id=\"Hoodi_prague_with_bpos_4\",\n        ),\n        pytest.param(\n            \"HoodiWithBPOs\",\n            1753889256,\n            EthConfigResponse(\n                current=EXPECTED_BPO5,\n            ),\n            id=\"Hoodi_prague_with_bpos_5\",\n        ),\n    ],\n    indirect=[\"network\"],\n)\ndef test_fork_config_from_fork(\n    eth_config: EthConfigResponse,\n    expected_eth_config: EthConfigResponse,\n) -> None:\n    \"\"\"Test the `fork_config_from_fork` function.\"\"\"\n    current_config, next_config = (eth_config.current, eth_config.next)\n    assert current_config.model_dump(\n        mode=\"json\", by_alias=True\n    ) == expected_eth_config.current.model_dump(mode=\"json\", by_alias=True), (\n        f\"Expected {expected_eth_config.current.model_dump_json()} but got \"\n        f\"{current_config.model_dump_json()}\"\n    )\n    assert current_config.fork_id == expected_eth_config.current.fork_id, (\n        f\"Expected {expected_eth_config.current.fork_id} but got {current_config.fork_id}\"\n    )\n    if expected_eth_config.next is not None:\n        assert next_config is not None, \"Expected next to be not None\"\n        assert next_config.model_dump(\n            mode=\"json\", by_alias=True\n        ) == expected_eth_config.next.model_dump(mode=\"json\", by_alias=True), (\n            f\"Expected {expected_eth_config.next.model_dump_json()} but got \"\n            f\"{next_config.model_dump_json()}\"\n        )\n        assert next_config.fork_id == expected_eth_config.next.fork_id, (\n            f\"Expected {expected_eth_config.next.fork_id} but got {next_config.fork_id}\"\n        )\n    else:\n        assert next_config is None, \"Expected next to be None\"\n    if expected_eth_config.last is not None:\n        assert eth_config.last is not None, \"Expected last to be not None\"\n        assert eth_config.last.model_dump(\n            mode=\"json\", by_alias=True\n        ) == expected_eth_config.last.model_dump(mode=\"json\", by_alias=True), (\n            f\"Expected {expected_eth_config.last.model_dump_json()} but got \"\n            f\"{eth_config.last.model_dump_json()}\"\n        )\n        assert eth_config.last.fork_id == expected_eth_config.last.fork_id, (\n            f\"Expected {expected_eth_config.last.fork_id} but got {eth_config.last.fork_id}\"\n        )\n    else:\n        assert eth_config.last is None, \"Expected last to be None\"\n\n\n@pytest.mark.parametrize(\n    [\n        \"network\",\n        \"current_time\",\n        \"expected_current_fork_id\",\n        \"expected_next_fork_id\",\n        \"expected_last_fork_id\",\n    ],\n    [\n        pytest.param(\n            \"Mainnet\",\n            1746612310,  # Right before Prague activation\n            ForkHash(0x9F3D2254),\n            ForkHash(0xC376CF8B),\n            ForkHash(0xC376CF8B),\n            id=\"mainnet_cancun\",\n        ),\n        pytest.param(\n            \"Sepolia\",\n            1741159775,  # Right before Prague activation\n            ForkHash(0x88CF81D9),\n            ForkHash(0xED88B5FD),\n            ForkHash(0xED88B5FD),\n            id=\"sepolia_cancun\",\n        ),\n        pytest.param(\n            \"Holesky\",\n            1740434111,  # Right before Prague activation\n            ForkHash(0x9B192AD0),\n            ForkHash(0xDFBD9BED),\n            ForkHash(0xDFBD9BED),\n            id=\"holesky_cancun\",\n        ),\n        pytest.param(\n            \"Hoodi\",\n            1742999831,  # Right before Prague activation\n            ForkHash(0xBEF71D30),\n            ForkHash(0x0929E24E),\n            ForkHash(0x0929E24E),\n            id=\"hoodi_prague\",\n        ),\n    ],\n    indirect=[\"network\"],\n)\ndef test_fork_ids(\n    eth_config: EthConfigResponse,\n    expected_current_fork_id: ForkHash,\n    expected_next_fork_id: ForkHash | None,\n    expected_last_fork_id: ForkHash | None,\n) -> None:\n    \"\"\"Test various configurations of fork Ids for different timestamps.\"\"\"\n    assert expected_current_fork_id == eth_config.current.fork_id, (\n        f\"Unexpected current fork id: {eth_config.current.fork_id} != {expected_current_fork_id}\"\n    )\n    if expected_next_fork_id is not None:\n        assert eth_config.next is not None, \"Expected next to be not None\"\n        assert expected_next_fork_id == eth_config.next.fork_id, (\n            f\"Unexpected next fork id: {eth_config.next.fork_id} != {expected_next_fork_id}\"\n        )\n    else:\n        assert eth_config.next is None, \"Expected next to be None\"\n    if expected_last_fork_id is not None:\n        assert eth_config.last is not None, \"Expected last to be not None\"\n        assert expected_last_fork_id == eth_config.last.fork_id, (\n            f\"Unexpected last fork id: {eth_config.last.fork_id} != {expected_last_fork_id}\"\n        )\n    else:\n        assert eth_config.last is None, \"Expected last to be None\"\n"
  },
  {
    "path": "src/pytest_plugins/execute/eth_config/tests/test_genesis.py",
    "content": "\"\"\"Test parsing a genesis file to generate a network configuration.\"\"\"\n\nfrom os.path import realpath\nfrom pathlib import Path\n\nimport pytest\n\nfrom ethereum_test_base_types import Hash\nfrom ethereum_test_forks import (\n    BPO1,\n    BPO2,\n    BPO3,\n    BPO4,\n    BPO5,\n    Berlin,\n    Byzantium,\n    Cancun,\n    Constantinople,\n    Homestead,\n    Istanbul,\n    London,\n    Osaka,\n    Paris,\n    Prague,\n    Shanghai,\n)\nfrom ethereum_test_rpc import (\n    ForkConfigBlobSchedule,\n)\n\nfrom ..execute_types import ForkActivationTimes, Genesis, NetworkConfig\n\nCURRENT_FILE = Path(realpath(__file__))\nCURRENT_FOLDER = CURRENT_FILE.parent\n\n\n@pytest.fixture\ndef genesis_contents(genesis_file_name: str) -> str:\n    \"\"\"Read the genesis file contents.\"\"\"\n    genesis_path = CURRENT_FOLDER / genesis_file_name\n    return genesis_path.read_text()\n\n\n@pytest.mark.parametrize(\n    \"genesis_file_name,expected_hash,expected_network_config\",\n    [\n        pytest.param(\n            \"genesis_example.json\",\n            Hash(0x3A8C8CEF63859865AA1D40DED77B083EEF06A1702B8188D5586434B9C3ADC4BE),\n            NetworkConfig(\n                chain_id=7023102237,\n                genesis_hash=Hash(\n                    0x3A8C8CEF63859865AA1D40DED77B083EEF06A1702B8188D5586434B9C3ADC4BE\n                ),\n                fork_activation_times=ForkActivationTimes(\n                    root={\n                        Homestead: 0,\n                        Byzantium: 0,\n                        Constantinople: 0,\n                        Istanbul: 0,\n                        Berlin: 0,\n                        London: 0,\n                        Paris: 0,\n                        Shanghai: 0,\n                        Cancun: 0,\n                        Prague: 0,\n                        Osaka: 1753379304,\n                        BPO1: 1753477608,\n                        BPO2: 1753575912,\n                        BPO3: 1753674216,\n                        BPO4: 1753772520,\n                        BPO5: 1753889256,\n                    },\n                ),\n                blob_schedule={\n                    Cancun: ForkConfigBlobSchedule(target=3, max=6, baseFeeUpdateFraction=3338477),\n                    Prague: ForkConfigBlobSchedule(target=6, max=9, baseFeeUpdateFraction=5007716),\n                    Osaka: ForkConfigBlobSchedule(target=6, max=9, baseFeeUpdateFraction=5007716),\n                    BPO1: ForkConfigBlobSchedule(target=9, max=12, baseFeeUpdateFraction=5007716),\n                    BPO2: ForkConfigBlobSchedule(target=12, max=15, baseFeeUpdateFraction=5007716),\n                    BPO3: ForkConfigBlobSchedule(target=15, max=18, baseFeeUpdateFraction=5007716),\n                    BPO4: ForkConfigBlobSchedule(target=6, max=9, baseFeeUpdateFraction=5007716),\n                    BPO5: ForkConfigBlobSchedule(target=15, max=20, baseFeeUpdateFraction=5007716),\n                },\n            ),\n        ),\n    ],\n)\ndef test_genesis_parsing(\n    genesis_contents: str,\n    expected_hash: Hash,\n    expected_network_config: NetworkConfig,\n) -> None:\n    \"\"\"\n    Verify genesis config file is parsed and correctly converted into a network\n    configuration.\n    \"\"\"\n    parsed_genesis = Genesis.model_validate_json(genesis_contents)\n    assert parsed_genesis.hash == expected_hash, (\n        f\"Unexpected genesis hash: {parsed_genesis.hash}, expected: {expected_hash}\"\n    )\n    network_config = parsed_genesis.network_config()\n    assert network_config == expected_network_config, (\n        f\"Unexpected network config: {network_config}, expected: {expected_network_config}\"\n    )\n"
  },
  {
    "path": "src/pytest_plugins/execute/execute.py",
    "content": "\"\"\"\nTest execution plugin for pytest, to run Ethereum tests using in live networks.\n\"\"\"\n\nimport os\nfrom dataclasses import dataclass, field\nfrom pathlib import Path\nfrom typing import Any, Dict, Generator, List, Type\n\nimport pytest\nfrom pytest_metadata.plugin import metadata_key\n\nfrom ethereum_test_execution import BaseExecute\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_rpc import EngineRPC, EthRPC\nfrom ethereum_test_tools import BaseTest\nfrom ethereum_test_types import ChainConfigDefaults, EnvironmentDefaults, TransactionDefaults\n\nfrom ..shared.execute_fill import ALL_FIXTURE_PARAMETERS\nfrom ..shared.helpers import (\n    get_spec_format_for_item,\n    is_help_or_collectonly_mode,\n    labeled_format_parameter_set,\n)\nfrom ..spec_version_checker.spec_version_checker import EIPSpecTestItem\nfrom .pre_alloc import Alloc\n\n\ndef print_migration_warning(terminalreporter: Any = None) -> None:\n    \"\"\"Print migration warning about repository merge.\"\"\"\n    lines = [\n        \"\",\n        \"=\" * 80,\n        \"⚠️  IMPORTANT: Repository Migration in Progress - 'The Weld' ⚠️\",\n        \"=\" * 80,\n        \"\",\n        \"This repository is being merged into ethereum/execution-specs (EELS) during the\",\n        \"week of October 20-24, 2025.\",\n        \"\",\n        \"📅 Timeline:\",\n        \"  • Week of Oct 13-17: Closing PRs, porting issues to EELS\",\n        \"  • Week of Oct 20-24: Migration week - fixing CI and fixture building\",\n        \"  • Oct 24 (ETA): Weld finalized - all development moves to EELS\",\n        \"\",\n        \"👉 What This Means:\",\n        \"  • Test Contributors: After Oct 24, reopen draft PRs in ethereum/execution-specs\",\n        \"  • All future test development happens in EELS after completion\",\n        \"  • Fixture releases continue as usual during transition\",\n        \"\",\n        \"For details: https://steel.ethereum.foundation/blog/2025-09-11_weld-announcement/\",\n        \"=\" * 80,\n        \"\",\n    ]\n\n    if terminalreporter:\n        for line in lines:\n            if \"⚠️\" in line or \"IMPORTANT\" in line:\n                terminalreporter.write_line(line, bold=True, yellow=True)\n            elif line.startswith(\"=\"):\n                terminalreporter.write_line(line, yellow=True)\n            else:\n                terminalreporter.write_line(line)\n    else:\n        for line in lines:\n            print(line)\n\n\ndef default_html_report_file_path() -> str:\n    \"\"\"\n    File (default) to store the generated HTML test report. Defined as a\n    function to allow for easier testing.\n    \"\"\"\n    return \"./execution_results/report_execute.html\"\n\n\ndef pytest_addoption(parser: pytest.Parser) -> None:\n    \"\"\"Add command-line options to pytest.\"\"\"\n    execute_group = parser.getgroup(\"execute\", \"Arguments defining test execution behavior\")\n    execute_group.addoption(\n        \"--default-gas-price\",\n        action=\"store\",\n        dest=\"default_gas_price\",\n        type=int,\n        default=10**9,\n        help=(\"Default gas price used for transactions, unless overridden by the test.\"),\n    )\n    execute_group.addoption(\n        \"--default-max-fee-per-gas\",\n        action=\"store\",\n        dest=\"default_max_fee_per_gas\",\n        type=int,\n        default=10**9,\n        help=(\"Default max fee per gas used for transactions, unless overridden by the test.\"),\n    )\n    execute_group.addoption(\n        \"--default-max-priority-fee-per-gas\",\n        action=\"store\",\n        dest=\"default_max_priority_fee_per_gas\",\n        type=int,\n        default=10**9,\n        help=(\n            \"Default max priority fee per gas used for transactions, \"\n            \"unless overridden by the test.\"\n        ),\n    )\n    execute_group.addoption(\n        \"--transaction-gas-limit\",\n        action=\"store\",\n        dest=\"transaction_gas_limit\",\n        default=EnvironmentDefaults.gas_limit // 4,\n        type=int,\n        help=(\n            \"Maximum gas used to execute a single transaction. \"\n            \"Will be used as ceiling for tests that attempt to consume the entire block gas limit.\"\n            f\"(Default: {EnvironmentDefaults.gas_limit // 4})\"\n        ),\n    )\n    execute_group.addoption(\n        \"--transactions-per-block\",\n        action=\"store\",\n        dest=\"transactions_per_block\",\n        type=int,\n        default=None,\n        help=(\"Number of transactions to send before producing the next block.\"),\n    )\n    execute_group.addoption(\n        \"--get-payload-wait-time\",\n        action=\"store\",\n        dest=\"get_payload_wait_time\",\n        type=float,\n        default=0.3,\n        help=(\"Time to wait after sending a forkchoice_updated before getting the payload.\"),\n    )\n    execute_group.addoption(\n        \"--chain-id\",\n        action=\"store\",\n        dest=\"chain_id\",\n        required=False,\n        type=int,\n        default=None,\n        help=\"ID of the chain where the tests will be executed.\",\n    )\n\n    report_group = parser.getgroup(\"tests\", \"Arguments defining html report behavior\")\n    report_group.addoption(\n        \"--no-html\",\n        action=\"store_true\",\n        dest=\"disable_html\",\n        default=False,\n        help=(\n            \"Don't generate an HTML test report. \"\n            \"The --html flag can be used to specify a different path.\"\n        ),\n    )\n\n\n@pytest.hookimpl(tryfirst=True)\ndef pytest_configure(config: pytest.Config) -> None:\n    \"\"\"\n    Pytest hook called after command line options have been parsed and before\n    test collection begins.\n\n    Couple of notes:\n    1. Register the plugin's custom markers and process command-line options.\n\n       Custom marker registration:\n       https://docs.pytest.org/en/7.1.x/how-to/writing_plugins.html#registering-custom-markers\n\n    2. `@pytest.hookimpl(tryfirst=True)` is applied to ensure that this hook is\n       called before the pytest-html plugin's pytest_configure to ensure that\n       it uses the modified `htmlpath` option.\n    \"\"\"\n    print_migration_warning()\n    # Modify the block gas limit if specified.\n    if config.getoption(\"transaction_gas_limit\"):\n        EnvironmentDefaults.gas_limit = config.getoption(\"transaction_gas_limit\")\n    if is_help_or_collectonly_mode(config):\n        return\n\n    config.engine_rpc_supported = False  # type: ignore[attr-defined]\n    if config.getoption(\"disable_html\") and config.getoption(\"htmlpath\") is None:\n        # generate an html report by default, unless explicitly disabled\n        config.option.htmlpath = Path(default_html_report_file_path())\n\n    command_line_args = \"execute \" + \" \".join(config.invocation_params.args)\n    config.stash[metadata_key][\"Command-line args\"] = f\"<code>{command_line_args}</code>\"\n\n    # Configuration for the forks pytest plugin\n    config.skip_transition_forks = True  # type: ignore[attr-defined]\n    config.single_fork_mode = True  # type: ignore[attr-defined]\n\n    # Configure the chain ID for the tests.\n    rpc_chain_id = config.getoption(\"rpc_chain_id\", None)\n    chain_id = config.getoption(\"chain_id\")\n    if rpc_chain_id is not None or chain_id is not None:\n        if rpc_chain_id is not None and chain_id is not None:\n            if chain_id != rpc_chain_id:\n                pytest.exit(\n                    \"Conflicting chain ID configuration. \"\n                    \"The --rpc-chain-id flag is deprecated and will be removed in a future \"\n                    \"release. Use --chain-id instead.\"\n                )\n        if rpc_chain_id is not None:\n            ChainConfigDefaults.chain_id = rpc_chain_id\n        if chain_id is not None:\n            ChainConfigDefaults.chain_id = chain_id\n\n\ndef pytest_metadata(metadata: dict[str, Any]) -> None:\n    \"\"\"Add or remove metadata to/from the pytest report.\"\"\"\n    metadata.pop(\"JAVA_HOME\", None)\n\n\ndef pytest_html_results_table_header(cells: list[str]) -> None:\n    \"\"\"Customize the table headers of the HTML report table.\"\"\"\n    cells.insert(3, '<th class=\"sortable\" data-column-type=\"sender\">Sender</th>')\n    cells.insert(4, '<th class=\"sortable\" data-column-type=\"fundedAccounts\">Funded Accounts</th>')\n    cells.insert(\n        5, '<th class=\"sortable\" data-column-type=\"fundedAccounts\">Deployed Contracts</th>'\n    )\n    del cells[-1]  # Remove the \"Links\" column\n\n\ndef pytest_html_results_table_row(report: Any, cells: list[str]) -> None:\n    \"\"\"Customize the table rows of the HTML report table.\"\"\"\n    if hasattr(report, \"user_properties\"):\n        user_props = dict(report.user_properties)\n        if \"sender_address\" in user_props and user_props[\"sender_address\"] is not None:\n            sender_address = user_props[\"sender_address\"]\n            cells.insert(3, f\"<td>{sender_address}</td>\")\n        else:\n            cells.insert(3, \"<td>Not available</td>\")\n\n        if \"funded_accounts\" in user_props and user_props[\"funded_accounts\"] is not None:\n            funded_accounts = user_props[\"funded_accounts\"]\n            cells.insert(4, f\"<td>{funded_accounts}</td>\")\n        else:\n            cells.insert(4, \"<td>Not available</td>\")\n\n    del cells[-1]  # Remove the \"Links\" column\n\n\n@pytest.hookimpl(hookwrapper=True)\ndef pytest_runtest_makereport(\n    item: pytest.Item, call: pytest.CallInfo[None]\n) -> Generator[None, Any, None]:\n    \"\"\"\n    Make each test's fixture json path available to the test report via\n    user_properties.\n\n    This hook is called when each test is run and a report is being made.\n    \"\"\"\n    outcome = yield\n    report = outcome.get_result()\n\n    if call.when == \"call\":\n        for property_name in [\"sender_address\", \"funded_accounts\"]:\n            if hasattr(item.config, property_name):\n                report.user_properties.append((property_name, getattr(item.config, property_name)))\n\n\ndef pytest_html_report_title(report: Any) -> None:\n    \"\"\"Set the HTML report title (pytest-html plugin).\"\"\"\n    report.title = \"Execute Test Report\"\n\n\n@pytest.fixture(scope=\"session\")\ndef transactions_per_block(\n    request: pytest.FixtureRequest,\n) -> int:\n    \"\"\"\n    Return the number of transactions to send before producing the next block.\n    \"\"\"\n    if transactions_per_block := request.config.getoption(\"transactions_per_block\"):\n        return transactions_per_block\n\n    # Get the number of workers for the test\n    worker_count_env = os.environ.get(\"PYTEST_XDIST_WORKER_COUNT\")\n    if not worker_count_env:\n        return 1\n    return max(int(worker_count_env), 1)\n\n\n@pytest.fixture(scope=\"session\")\ndef default_gas_price(request: pytest.FixtureRequest) -> int:\n    \"\"\"Return default gas price used for transactions.\"\"\"\n    gas_price = request.config.getoption(\"default_gas_price\")\n    assert gas_price > 0, \"Gas price must be greater than 0\"\n    return gas_price\n\n\n@pytest.fixture(scope=\"session\")\ndef default_max_fee_per_gas(\n    request: pytest.FixtureRequest,\n) -> int:\n    \"\"\"Return default max fee per gas used for transactions.\"\"\"\n    return request.config.getoption(\"default_max_fee_per_gas\")\n\n\n@pytest.fixture(scope=\"session\")\ndef default_max_priority_fee_per_gas(\n    request: pytest.FixtureRequest,\n) -> int:\n    \"\"\"Return default max priority fee per gas used for transactions.\"\"\"\n    return request.config.getoption(\"default_max_priority_fee_per_gas\")\n\n\n@pytest.fixture(autouse=True, scope=\"session\")\ndef modify_transaction_defaults(\n    default_gas_price: int,\n    default_max_fee_per_gas: int,\n    default_max_priority_fee_per_gas: int,\n) -> None:\n    \"\"\"\n    Modify transaction defaults to values better suited for live networks.\n    \"\"\"\n    TransactionDefaults.gas_price = default_gas_price\n    TransactionDefaults.max_fee_per_gas = default_max_fee_per_gas\n    TransactionDefaults.max_priority_fee_per_gas = default_max_priority_fee_per_gas\n\n\n@dataclass(kw_only=True)\nclass Collector:\n    \"\"\"\n    A class that collects transactions and post-allocations for every test\n    case.\n    \"\"\"\n\n    eth_rpc: EthRPC\n    collected_tests: Dict[str, BaseExecute] = field(default_factory=dict)\n\n    def collect(self, test_name: str, execute_format: BaseExecute) -> None:\n        \"\"\"Collect transactions and post-allocations for the test case.\"\"\"\n        self.collected_tests[test_name] = execute_format\n\n\n@pytest.fixture(scope=\"session\")\ndef collector(\n    request: pytest.FixtureRequest,\n    eth_rpc: EthRPC,\n) -> Generator[Collector, None, None]:\n    \"\"\"\n    Return configured fixture collector instance used for all tests in one test\n    module.\n    \"\"\"\n    del request\n\n    collector = Collector(eth_rpc=eth_rpc)\n    yield collector\n\n\ndef base_test_parametrizer(cls: Type[BaseTest]) -> Any:\n    \"\"\"\n    Generate pytest.fixture for a given BaseTest subclass.\n\n    Implementation detail: All spec fixtures must be scoped on test function\n    level to avoid leakage between tests.\n    \"\"\"\n    cls_fixture_parameters = [p for p in ALL_FIXTURE_PARAMETERS if p in cls.model_fields]\n\n    @pytest.fixture(\n        scope=\"function\",\n        name=cls.pytest_parameter_name(),\n    )\n    def base_test_parametrizer_func(\n        request: Any,\n        fork: Fork,\n        pre: Alloc,\n        eth_rpc: EthRPC,\n        engine_rpc: EngineRPC | None,\n        collector: Collector,\n    ) -> Type[BaseTest]:\n        \"\"\"\n        Fixture used to instantiate an auto-fillable BaseTest object from\n        within a test function.\n\n        Every test that defines a test filler must explicitly specify its\n        parameter name (see `pytest_parameter_name` in each implementation of\n        BaseTest) in its function arguments.\n\n        When parametrize, indirect must be used along with the fixture format\n        as value.\n        \"\"\"\n        execute_format = request.param\n        assert execute_format in BaseExecute.formats.values()\n        assert issubclass(execute_format, BaseExecute)\n\n        if execute_format.requires_engine_rpc:\n            assert engine_rpc is not None, \"Engine RPC is required for this format.\"\n\n        class BaseTestWrapper(cls):  # type: ignore\n            def __init__(self, *args: Any, **kwargs: Any) -> None:\n                kwargs[\"t8n_dump_dir\"] = None\n                if \"pre\" not in kwargs:\n                    kwargs[\"pre\"] = pre\n                elif kwargs[\"pre\"] != pre:\n                    raise ValueError(\"The pre-alloc object was modified by the test.\")\n                # Set default for expected_benchmark_gas_used\n                if \"expected_benchmark_gas_used\" not in kwargs:\n                    kwargs[\"expected_benchmark_gas_used\"] = request.getfixturevalue(\n                        \"gas_benchmark_value\"\n                    )\n                kwargs |= {\n                    p: request.getfixturevalue(p)\n                    for p in cls_fixture_parameters\n                    if p not in kwargs\n                }\n\n                request.node.config.sender_address = str(pre._sender)\n\n                super(BaseTestWrapper, self).__init__(*args, **kwargs)\n                self._request = request\n\n                # wait for pre-requisite transactions to be included in blocks\n                pre.wait_for_transactions()\n                for deployed_contract, expected_code in pre._deployed_contracts:\n                    actual_code = eth_rpc.get_code(deployed_contract)\n                    if actual_code != expected_code:\n                        raise Exception(\n                            f\"Deployed test contract didn't match expected code at address \"\n                            f\"{deployed_contract} (not enough gas_limit?).\\n\"\n                            f\"Expected: {expected_code}\\n\"\n                            f\"Actual: {actual_code}\"\n                        )\n                request.node.config.funded_accounts = \", \".join(\n                    [str(eoa) for eoa in pre._funded_eoa]\n                )\n\n                execute = self.execute(fork=fork, execute_format=execute_format)\n                execute.execute(fork=fork, eth_rpc=eth_rpc, engine_rpc=engine_rpc, request=request)\n                collector.collect(request.node.nodeid, execute)\n\n        return BaseTestWrapper\n\n    return base_test_parametrizer_func\n\n\n# Dynamically generate a pytest fixture for each test spec type.\nfor cls in BaseTest.spec_types.values():\n    # Fixture needs to be defined in the global scope so pytest can detect it.\n    globals()[cls.pytest_parameter_name()] = base_test_parametrizer(cls)\n\n\ndef pytest_generate_tests(metafunc: pytest.Metafunc) -> None:\n    \"\"\"\n    Pytest hook used to dynamically generate test cases for each fixture format\n    a given test spec supports.\n    \"\"\"\n    engine_rpc_supported = metafunc.config.engine_rpc_supported  # type: ignore\n    for test_type in BaseTest.spec_types.values():\n        if test_type.pytest_parameter_name() in metafunc.fixturenames:\n            parameter_set = []\n            for format_with_or_without_label in test_type.supported_execute_formats:\n                param = labeled_format_parameter_set(format_with_or_without_label)\n                if format_with_or_without_label.requires_engine_rpc and not engine_rpc_supported:\n                    param.marks.append(pytest.mark.skip(reason=\"Engine RPC is not supported\"))  # type: ignore\n                parameter_set.append(param)\n            metafunc.parametrize(\n                [test_type.pytest_parameter_name()],\n                parameter_set,\n                scope=\"function\",\n                indirect=True,\n            )\n\n\ndef pytest_collection_modifyitems(\n    items: List[pytest.Item],\n) -> None:\n    \"\"\"\n    Remove transition tests and add the appropriate execute markers to the\n    test.\n    \"\"\"\n    items_for_removal = []\n    for i, item in enumerate(items):\n        if isinstance(item, EIPSpecTestItem):\n            continue\n        params: Dict[str, Any] = item.callspec.params  # type: ignore\n        if \"fork\" not in params or params[\"fork\"] is None:\n            items_for_removal.append(i)\n            continue\n        fork: Fork = params[\"fork\"]\n        spec_type, execute_format = get_spec_format_for_item(params)\n        assert issubclass(execute_format, BaseExecute)\n        markers = list(item.iter_markers())\n        if spec_type.discard_execute_format_by_marks(execute_format, fork, markers):\n            items_for_removal.append(i)\n            continue\n        for marker in markers:\n            if marker.name == \"execute\":\n                for mark in marker.args:\n                    item.add_marker(mark)\n            elif marker.name == \"valid_at_transition_to\":\n                items_for_removal.append(i)\n                continue\n            elif marker.name == \"pre_alloc_modify\":\n                item.add_marker(pytest.mark.skip(reason=\"Pre-alloc modification not supported\"))\n\n        if \"yul\" in item.fixturenames:  # type: ignore\n            item.add_marker(pytest.mark.yul_test)\n\n    for i in reversed(items_for_removal):\n        items.pop(i)\n"
  },
  {
    "path": "src/pytest_plugins/execute/execute_recover.py",
    "content": "\"\"\"Pytest test to recover funds from a failed remote execution.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_base_types import Address\nfrom ethereum_test_rpc import EthRPC\nfrom ethereum_test_types import EOA, Transaction\n\n\n@pytest.fixture(scope=\"session\")\ndef gas_price(eth_rpc: EthRPC) -> int:\n    \"\"\"Get the gas price for the funding transactions.\"\"\"\n    return eth_rpc.gas_price()\n\n\ndef test_recover_funds(\n    destination: Address,\n    index: int,\n    eoa: EOA,\n    gas_price: int,\n    eth_rpc: EthRPC,\n) -> None:\n    \"\"\"Recover funds from a failed remote execution.\"\"\"\n    del index\n\n    remaining_balance = eth_rpc.get_balance(eoa)\n    refund_gas_limit = 21_000\n    tx_cost = refund_gas_limit * gas_price\n    if remaining_balance < tx_cost:\n        pytest.skip(f\"Balance {remaining_balance} is less than the transaction cost {tx_cost}\")\n\n    refund_tx = Transaction(\n        sender=eoa,\n        to=destination,\n        gas_limit=refund_gas_limit,\n        gas_price=gas_price,\n        value=remaining_balance - tx_cost,\n    ).with_signature_and_sender()\n\n    eth_rpc.send_wait_transaction(refund_tx)\n    print(f\"Recovered {remaining_balance} from {eoa} to {destination}\")\n"
  },
  {
    "path": "src/pytest_plugins/execute/pre_alloc.py",
    "content": "\"\"\"Pre-allocation fixtures using for test filling.\"\"\"\n\nfrom itertools import count\nfrom pathlib import Path\nfrom random import randint\nfrom typing import Any, Dict, Generator, Iterator, List, Literal, Self, Tuple\n\nimport pytest\nimport yaml\nfrom pydantic import PrivateAttr\n\nfrom ethereum_test_base_types import (\n    Bytes,\n    EthereumTestRootModel,\n    Number,\n    StorageRootType,\n    ZeroPaddedHexNumber,\n)\nfrom ethereum_test_base_types.conversions import (\n    BytesConvertible,\n    FixedSizeBytesConvertible,\n    NumberConvertible,\n)\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_rpc import EthRPC\nfrom ethereum_test_rpc.rpc_types import TransactionByHashResponse\nfrom ethereum_test_tools import (\n    EOA,\n    Account,\n    Address,\n    AuthorizationTuple,\n    Initcode,\n    Storage,\n    Transaction,\n)\nfrom ethereum_test_tools import Alloc as BaseAlloc\nfrom ethereum_test_tools import Opcodes as Op\nfrom ethereum_test_types import ChainConfig, TransactionTestMetadata\nfrom ethereum_test_types.eof.v1 import Container\nfrom ethereum_test_vm import Bytecode, EVMCodeType, Opcodes\n\nMAX_BYTECODE_SIZE = 24576\nMAX_INITCODE_SIZE = MAX_BYTECODE_SIZE * 2\n\n\nclass AddressStubs(EthereumTestRootModel[Dict[str, Address]]):\n    \"\"\"\n    Address stubs class.\n\n    The key represents the label that is used in the test to tag the contract,\n    and the value is the address where the contract is already located at in\n    the current network.\n    \"\"\"\n\n    root: Dict[str, Address]\n\n    def __contains__(self, item: str) -> bool:\n        \"\"\"Check if an item is in the address stubs.\"\"\"\n        return item in self.root\n\n    def __getitem__(self, item: str) -> Address:\n        \"\"\"Get an item from the address stubs.\"\"\"\n        return self.root[item]\n\n    @classmethod\n    def model_validate_json_or_file(cls, json_data_or_path: str) -> Self:\n        \"\"\"\n        Try to load from file if the value resembles a path that ends with\n        .json/.yml and the file exists.\n        \"\"\"\n        lower_json_data_or_path = json_data_or_path.lower()\n        if (\n            lower_json_data_or_path.endswith(\".json\")\n            or lower_json_data_or_path.endswith(\".yml\")\n            or lower_json_data_or_path.endswith(\".yaml\")\n        ):\n            path = Path(json_data_or_path)\n            if path.is_file():\n                path_suffix = path.suffix.lower()\n                if path_suffix == \".json\":\n                    return cls.model_validate_json(path.read_text())\n                elif path_suffix in [\".yml\", \".yaml\"]:\n                    loaded_yaml = yaml.safe_load(path.read_text())\n                    if loaded_yaml is None:\n                        return cls(root={})\n                    return cls.model_validate(loaded_yaml)\n        if json_data_or_path.strip() == \"\":\n            return cls(root={})\n        return cls.model_validate_json(json_data_or_path)\n\n\ndef pytest_addoption(parser: pytest.Parser) -> None:\n    \"\"\"Add command-line options to pytest.\"\"\"\n    pre_alloc_group = parser.getgroup(\n        \"pre_alloc\", \"Arguments defining pre-allocation behavior during test execution\"\n    )\n    pre_alloc_group.addoption(\n        \"--eoa-start\",\n        action=\"store\",\n        dest=\"eoa_iterator_start\",\n        default=randint(0, 2**256),\n        type=int,\n        help=\"The start private key from which tests will deploy EOAs.\",\n    )\n    pre_alloc_group.addoption(\n        \"--evm-code-type\",\n        action=\"store\",\n        dest=\"evm_code_type\",\n        default=None,\n        type=EVMCodeType,\n        choices=list(EVMCodeType),\n        help=\"Type of EVM code to deploy in each test by default.\",\n    )\n    pre_alloc_group.addoption(\n        \"--eoa-fund-amount-default\",\n        action=\"store\",\n        dest=\"eoa_fund_amount_default\",\n        default=10**18,\n        type=int,\n        help=\"The default amount of wei to fund each EOA in each test with.\",\n    )\n    pre_alloc_group.addoption(\n        \"--skip-cleanup\",\n        action=\"store_true\",\n        dest=\"skip_cleanup\",\n        default=False,\n        help=\"Skip cleanup phase after each test.\",\n    )\n\n\n@pytest.hookimpl(trylast=True)\ndef pytest_report_header(config: pytest.Config) -> list[str]:\n    \"\"\"Pytest hook called to obtain the report header.\"\"\"\n    bold = \"\\033[1m\"\n    reset = \"\\033[39;49m\"\n    eoa_start = config.getoption(\"eoa_iterator_start\")\n    header = [\n        (bold + f\"Start seed for EOA: {hex(eoa_start)} \" + reset),\n    ]\n    return header\n\n\n@pytest.fixture(scope=\"session\")\ndef address_stubs(\n    request: pytest.FixtureRequest,\n) -> AddressStubs | None:\n    \"\"\"\n    Return an address stubs object.\n\n    If the address stubs are not supported by the subcommand, return None.\n    \"\"\"\n    return request.config.getoption(\"address_stubs\", None)\n\n\n@pytest.fixture(scope=\"session\")\ndef skip_cleanup(request: pytest.FixtureRequest) -> bool:\n    \"\"\"Return whether to skip cleanup phase after each test.\"\"\"\n    return request.config.getoption(\"skip_cleanup\")\n\n\n@pytest.fixture(scope=\"session\")\ndef eoa_iterator(request: pytest.FixtureRequest) -> Iterator[EOA]:\n    \"\"\"Return an iterator that generates EOAs.\"\"\"\n    eoa_start = request.config.getoption(\"eoa_iterator_start\")\n    print(f\"Starting EOA index: {hex(eoa_start)}\")\n    return iter(EOA(key=i, nonce=0) for i in count(start=eoa_start))\n\n\nclass Alloc(BaseAlloc):\n    \"\"\"A custom class that inherits from the original Alloc class.\"\"\"\n\n    _fork: Fork = PrivateAttr()\n    _sender: EOA = PrivateAttr()\n    _eth_rpc: EthRPC = PrivateAttr()\n    _txs: List[Transaction] = PrivateAttr(default_factory=list)\n    _deployed_contracts: List[Tuple[Address, Bytes]] = PrivateAttr(default_factory=list)\n    _funded_eoa: List[EOA] = PrivateAttr(default_factory=list)\n    _evm_code_type: EVMCodeType | None = PrivateAttr(None)\n    _chain_id: int = PrivateAttr()\n    _node_id: str = PrivateAttr(\"\")\n    _address_stubs: AddressStubs = PrivateAttr()\n\n    def __init__(\n        self,\n        *args: Any,\n        fork: Fork,\n        sender: EOA,\n        eth_rpc: EthRPC,\n        eoa_iterator: Iterator[EOA],\n        chain_id: int,\n        eoa_fund_amount_default: int,\n        evm_code_type: EVMCodeType | None = None,\n        node_id: str = \"\",\n        address_stubs: AddressStubs | None = None,\n        **kwargs: Any,\n    ) -> None:\n        \"\"\"Initialize the pre-alloc with the given parameters.\"\"\"\n        super().__init__(*args, **kwargs)\n        self._fork = fork\n        self._sender = sender\n        self._eth_rpc = eth_rpc\n        self._eoa_iterator = eoa_iterator\n        self._evm_code_type = evm_code_type\n        self._chain_id = chain_id\n        self._eoa_fund_amount_default = eoa_fund_amount_default\n        self._node_id = node_id\n        self._address_stubs = address_stubs or AddressStubs(root={})\n\n    # always refresh _sender nonce from RPC (\"pending\") before building tx\n    def _refresh_sender_nonce(self) -> None:\n        \"\"\"\n        Synchronize self._sender.nonce with the node's view.\n        Prefer 'pending' to account for in-flight transactions.\n        \"\"\"\n        try:\n            rpc_nonce = self._eth_rpc.get_transaction_count(self._sender, block_number=\"pending\")\n        except TypeError:\n            # If EthRPC.get_transaction_count has no 'block' kwarg\n            rpc_nonce = self._eth_rpc.get_transaction_count(self._sender)\n        self._sender.nonce = Number(rpc_nonce)\n\n    def __setitem__(\n        self,\n        address: Address | FixedSizeBytesConvertible,\n        account: Account | None,\n    ) -> None:\n        \"\"\"Set account associated with an address.\"\"\"\n        raise ValueError(\"Tests are not allowed to set pre-alloc items in execute mode\")\n\n    def code_pre_processor(\n        self,\n        code: Bytecode | Container,\n        *,\n        evm_code_type: EVMCodeType | None,\n    ) -> Bytecode | Container:\n        \"\"\"Pre-processes the code before setting it.\"\"\"\n        if evm_code_type is None:\n            evm_code_type = self._evm_code_type\n        if evm_code_type == EVMCodeType.EOF_V1:\n            if not isinstance(code, Container):\n                if isinstance(code, Bytecode) and not code.terminating:\n                    return Container.Code(code + Opcodes.STOP)\n                return Container.Code(code)\n        return code\n\n    def deploy_contract(\n        self,\n        code: BytesConvertible,\n        *,\n        storage: Storage | StorageRootType | None = None,\n        balance: NumberConvertible = 0,\n        nonce: NumberConvertible = 1,\n        address: Address | None = None,\n        evm_code_type: EVMCodeType | None = None,\n        label: str | None = None,\n        stub: str | None = None,\n    ) -> Address:\n        \"\"\"Deploy a contract to the allocation.\"\"\"\n        if storage is None:\n            storage = {}\n        assert address is None, \"address parameter is not supported\"\n\n        if not isinstance(storage, Storage):\n            storage = Storage(storage)  # type: ignore\n\n        if stub is not None and self._address_stubs is not None:\n            if stub not in self._address_stubs:\n                raise ValueError(f\"Stub name {stub} not found in address stubs\")\n            contract_address = self._address_stubs[stub]\n            code = self._eth_rpc.get_code(contract_address)\n            if code == b\"\":\n                raise ValueError(f\"Stub {stub} at {contract_address} has no code\")\n            balance = self._eth_rpc.get_balance(contract_address)\n            nonce = self._eth_rpc.get_transaction_count(contract_address)\n            super().__setitem__(\n                contract_address,\n                Account(\n                    nonce=nonce,\n                    balance=balance,\n                    code=code,\n                    storage={},\n                ),\n            )\n            return contract_address\n\n        initcode_prefix = Bytecode()\n\n        deploy_gas_limit = 21_000 + 32_000\n\n        if len(storage.root) > 0:\n            initcode_prefix += sum(Op.SSTORE(key, value) for key, value in storage.root.items())\n            deploy_gas_limit += len(storage.root) * 22_600\n\n        assert isinstance(code, Bytecode) or isinstance(code, Container), (\n            f\"incompatible code type: {type(code)}\"\n        )\n        code = self.code_pre_processor(code, evm_code_type=evm_code_type)\n\n        assert len(code) <= MAX_BYTECODE_SIZE, f\"code too large: {len(code)} > {MAX_BYTECODE_SIZE}\"\n\n        deploy_gas_limit += len(bytes(code)) * 200\n\n        initcode: Bytecode | Container\n\n        if evm_code_type == EVMCodeType.EOF_V1:\n            assert isinstance(code, Container)\n            initcode = Container.Init(deploy_container=code, initcode_prefix=initcode_prefix)\n        else:\n            initcode = Initcode(deploy_code=code, initcode_prefix=initcode_prefix)\n            memory_expansion_gas_calculator = self._fork.memory_expansion_gas_calculator()\n            deploy_gas_limit += memory_expansion_gas_calculator(new_bytes=len(bytes(initcode)))\n\n        assert len(initcode) <= MAX_INITCODE_SIZE, (\n            f\"initcode too large {len(initcode)} > {MAX_INITCODE_SIZE}\"\n        )\n\n        calldata_gas_calculator = self._fork.calldata_gas_calculator(block_number=0, timestamp=0)\n        deploy_gas_limit += calldata_gas_calculator(data=initcode)\n\n        # Limit the gas limit\n        deploy_gas_limit = min(deploy_gas_limit * 2, 30_000_000)\n        print(f\"Deploying contract with gas limit: {deploy_gas_limit}\")\n\n        self._refresh_sender_nonce()\n\n        deploy_tx = Transaction(\n            sender=self._sender,\n            to=None,\n            data=initcode,\n            value=balance,\n            gas_limit=deploy_gas_limit,\n        ).with_signature_and_sender()\n        deploy_tx.metadata = TransactionTestMetadata(\n            test_id=self._node_id,\n            phase=\"setup\",\n            action=\"deploy_contract\",\n            target=label,\n            tx_index=len(self._txs),\n        )\n        self._eth_rpc.send_transaction(deploy_tx)\n        self._txs.append(deploy_tx)\n\n        contract_address = deploy_tx.created_contract\n        self._deployed_contracts.append((contract_address, Bytes(code)))\n\n        assert Number(nonce) >= 1, \"impossible to deploy contract with nonce lower than one\"\n\n        super().__setitem__(\n            contract_address,\n            Account(\n                nonce=nonce,\n                balance=balance,\n                code=code,\n                storage=storage,\n            ),\n        )\n\n        contract_address.label = label\n        return contract_address\n\n    def fund_eoa(\n        self,\n        amount: NumberConvertible | None = None,\n        label: str | None = None,\n        storage: Storage | None = None,\n        delegation: Address | Literal[\"Self\"] | None = None,\n        nonce: NumberConvertible | None = None,\n    ) -> EOA:\n        \"\"\"\n        Add a previously unused EOA to the pre-alloc with the balance specified\n        by `amount`.\n        \"\"\"\n        assert nonce is None, \"nonce parameter is not supported for execute\"\n        eoa = next(self._eoa_iterator)\n        eoa.label = label\n        # Send a transaction to fund the EOA\n        if amount is None:\n            amount = self._eoa_fund_amount_default\n\n        fund_tx: Transaction | None = None\n        if delegation is not None or storage is not None:\n            if storage is not None:\n                sstore_address = self.deploy_contract(\n                    code=(\n                        sum(Op.SSTORE(key, value) for key, value in storage.root.items()) + Op.STOP\n                    )\n                )\n\n                self._refresh_sender_nonce()\n\n                set_storage_tx = Transaction(\n                    sender=self._sender,\n                    to=eoa,\n                    authorization_list=[\n                        AuthorizationTuple(\n                            chain_id=self._chain_id,\n                            address=sstore_address,\n                            nonce=eoa.nonce,\n                            signer=eoa,\n                        ),\n                    ],\n                    gas_limit=100_000,\n                ).with_signature_and_sender()\n                eoa.nonce = Number(eoa.nonce + 1)\n                set_storage_tx.metadata = TransactionTestMetadata(\n                    test_id=self._node_id,\n                    phase=\"setup\",\n                    action=\"eoa_storage_set\",\n                    target=label,\n                    tx_index=len(self._txs),\n                )\n                self._eth_rpc.send_transaction(set_storage_tx)\n                self._txs.append(set_storage_tx)\n\n            self._refresh_sender_nonce()\n\n            if delegation is not None:\n                if not isinstance(delegation, Address) and delegation == \"Self\":\n                    delegation = eoa\n                # TODO: This tx has side-effects on the EOA state because of\n                # the delegation\n                fund_tx = Transaction(\n                    sender=self._sender,\n                    to=eoa,\n                    value=amount,\n                    authorization_list=[\n                        AuthorizationTuple(\n                            chain_id=self._chain_id,\n                            address=delegation,\n                            nonce=eoa.nonce,\n                            signer=eoa,\n                        ),\n                    ],\n                    gas_limit=100_000,\n                ).with_signature_and_sender()\n                eoa.nonce = Number(eoa.nonce + 1)\n            else:\n                fund_tx = Transaction(\n                    sender=self._sender,\n                    to=eoa,\n                    value=amount,\n                    authorization_list=[\n                        AuthorizationTuple(\n                            chain_id=self._chain_id,\n                            # Reset delegation to an address without code\n                            address=0,\n                            nonce=eoa.nonce,\n                            signer=eoa,\n                        ),\n                    ],\n                    gas_limit=100_000,\n                ).with_signature_and_sender()\n                eoa.nonce = Number(eoa.nonce + 1)\n\n        else:\n            if Number(amount) > 0:\n                self._refresh_sender_nonce()\n\n                fund_tx = Transaction(\n                    sender=self._sender,\n                    to=eoa,\n                    value=amount,\n                ).with_signature_and_sender()\n\n        if fund_tx is not None:\n            fund_tx.metadata = TransactionTestMetadata(\n                test_id=self._node_id,\n                phase=\"setup\",\n                action=\"fund_eoa\",\n                target=label,\n                tx_index=len(self._txs),\n            )\n            self._eth_rpc.send_transaction(fund_tx)\n            self._txs.append(fund_tx)\n        super().__setitem__(\n            eoa,\n            Account(\n                nonce=eoa.nonce,\n                balance=amount,\n            ),\n        )\n        self._funded_eoa.append(eoa)\n        return eoa\n\n    def fund_address(self, address: Address, amount: NumberConvertible) -> None:\n        \"\"\"\n        Fund an address with a given amount.\n\n        If the address is already present in the pre-alloc the amount will be\n        added to its existing balance.\n        \"\"\"\n        self._refresh_sender_nonce()\n\n        fund_tx = Transaction(\n            sender=self._sender,\n            to=address,\n            value=amount,\n        ).with_signature_and_sender()\n        fund_tx.metadata = TransactionTestMetadata(\n            test_id=self._node_id,\n            phase=\"setup\",\n            action=\"fund_address\",\n            target=address.label,\n            tx_index=len(self._txs),\n        )\n        self._eth_rpc.send_transaction(fund_tx)\n        self._txs.append(fund_tx)\n        if address in self:\n            account = self[address]\n            if account is not None:\n                current_balance = account.balance or 0\n                account.balance = ZeroPaddedHexNumber(current_balance + Number(amount))\n                return\n\n        super().__setitem__(address, Account(balance=amount))\n\n    def empty_account(self) -> Address:\n        \"\"\"\n        Add a previously unused account guaranteed to be empty to the\n        pre-alloc.\n\n        This ensures the account has:\n        - Zero balance\n        - Zero nonce\n        - No code\n        - No storage\n\n        This is different from precompiles or system contracts. The function\n        does not send any transactions, ensuring that the account remains\n        \"empty.\"\n\n        Returns:\n            Address: The address of the created empty account.\n\n        \"\"\"\n        eoa = next(self._eoa_iterator)\n\n        super().__setitem__(\n            eoa,\n            Account(\n                nonce=0,\n                balance=0,\n            ),\n        )\n        return Address(eoa)\n\n    def wait_for_transactions(self) -> List[TransactionByHashResponse]:\n        \"\"\"Wait for all transactions to be included in blocks.\"\"\"\n        return self._eth_rpc.wait_for_transactions(self._txs)\n\n\n@pytest.fixture(autouse=True)\ndef evm_code_type(request: pytest.FixtureRequest) -> EVMCodeType:\n    \"\"\"Return default EVM code type for all tests (LEGACY).\"\"\"\n    parameter_evm_code_type = request.config.getoption(\"evm_code_type\")\n    if parameter_evm_code_type is not None:\n        assert type(parameter_evm_code_type) is EVMCodeType, \"Invalid EVM code type\"\n        return parameter_evm_code_type\n    return EVMCodeType.LEGACY\n\n\n@pytest.fixture(scope=\"session\")\ndef eoa_fund_amount_default(request: pytest.FixtureRequest) -> int:\n    \"\"\"Get the gas price for the funding transactions.\"\"\"\n    return request.config.option.eoa_fund_amount_default\n\n\n@pytest.fixture(autouse=True, scope=\"function\")\ndef pre(\n    fork: Fork,\n    sender_key: EOA,\n    eoa_iterator: Iterator[EOA],\n    eth_rpc: EthRPC,\n    evm_code_type: EVMCodeType,\n    chain_config: ChainConfig,\n    eoa_fund_amount_default: int,\n    default_gas_price: int,\n    address_stubs: AddressStubs | None,\n    skip_cleanup: bool,\n    request: pytest.FixtureRequest,\n) -> Generator[Alloc, None, None]:\n    \"\"\"Return default pre allocation for all tests (Empty alloc).\"\"\"\n    # FIXME: Static tests dont have a fork so we need to get it from the node.\n    actual_fork = fork\n    if actual_fork is None:\n        assert hasattr(request.node, \"fork\")\n        actual_fork = request.node.fork\n\n    # Record the starting balance of the sender\n    sender_test_starting_balance = eth_rpc.get_balance(sender_key)\n\n    # Prepare the pre-alloc\n    pre = Alloc(\n        fork=fork,\n        sender=sender_key,\n        eth_rpc=eth_rpc,\n        eoa_iterator=eoa_iterator,\n        evm_code_type=evm_code_type,\n        chain_id=chain_config.chain_id,\n        eoa_fund_amount_default=eoa_fund_amount_default,\n        node_id=request.node.nodeid,\n        address_stubs=address_stubs,\n    )\n\n    # Yield the pre-alloc for usage during the test\n    yield pre\n\n    if not skip_cleanup:\n        # Refund all EOAs (regardless of whether the test passed or failed)\n        refund_txs = []\n        for idx, eoa in enumerate(pre._funded_eoa):\n            remaining_balance = eth_rpc.get_balance(eoa)\n            eoa.nonce = Number(eth_rpc.get_transaction_count(eoa))\n            refund_gas_limit = 21_000\n            tx_cost = refund_gas_limit * default_gas_price\n            if remaining_balance < tx_cost:\n                continue\n            refund_tx = Transaction(\n                sender=eoa,\n                to=sender_key,\n                gas_limit=21_000,\n                gas_price=default_gas_price,\n                value=remaining_balance - tx_cost,\n            ).with_signature_and_sender()\n            refund_tx.metadata = TransactionTestMetadata(\n                test_id=request.node.nodeid,\n                phase=\"cleanup\",\n                action=\"refund_from_eoa\",\n                target=eoa.label,\n                tx_index=idx,\n            )\n            refund_txs.append(refund_tx)\n        eth_rpc.send_wait_transactions(refund_txs)\n\n    # Record the ending balance of the sender\n    sender_test_ending_balance = eth_rpc.get_balance(sender_key)\n    used_balance = sender_test_starting_balance - sender_test_ending_balance\n    print(f\"Used balance={used_balance / 10**18:.18f}\")\n"
  },
  {
    "path": "src/pytest_plugins/execute/recover.py",
    "content": "\"\"\"Pytest plugin to recover funds from a failed remote execution.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_base_types import Address, HexNumber\nfrom ethereum_test_types import EOA\n\n\ndef pytest_addoption(parser: pytest.Parser) -> None:\n    \"\"\"Add command-line options to pytest.\"\"\"\n    recover_group = parser.getgroup(\"execute\", \"Arguments defining fund recovery behavior.\")\n    recover_group.addoption(\n        \"--start-eoa-index\",\n        action=\"store\",\n        dest=\"start_eoa_index\",\n        type=HexNumber,\n        required=True,\n        default=None,\n        help=(\"Starting private key index to use for EOA generation.\"),\n    )\n    recover_group.addoption(\n        \"--destination\",\n        action=\"store\",\n        dest=\"destination\",\n        type=Address,\n        required=True,\n        default=None,\n        help=(\"Address to send the recovered funds to.\"),\n    )\n    recover_group.addoption(\n        \"--max-index\",\n        action=\"store\",\n        dest=\"max_index\",\n        type=int,\n        default=100,\n        help=(\"Maximum private key index to use for EOA generation.\"),\n    )\n\n\n@pytest.fixture(scope=\"session\")\ndef destination(request: pytest.FixtureRequest) -> Address:\n    \"\"\"Get the destination address.\"\"\"\n    return request.config.option.destination\n\n\ndef pytest_generate_tests(metafunc: pytest.Metafunc) -> None:\n    \"\"\"Pytest hook used to dynamically generate test cases.\"\"\"\n    max_index = metafunc.config.option.max_index\n    start_eoa_index = metafunc.config.option.start_eoa_index\n\n    print(f\"Generating {max_index} test cases starting from index {start_eoa_index}\")\n\n    indexes_keys = [(index, EOA(key=start_eoa_index + index)) for index in range(max_index)]\n\n    metafunc.parametrize(\n        [\"index\", \"eoa\"],\n        indexes_keys,\n        ids=[f\"{index}-{eoa}\" for index, eoa in indexes_keys],\n    )\n"
  },
  {
    "path": "src/pytest_plugins/execute/rpc/__init__.py",
    "content": "\"\"\"RPC plugins to execute tests in different environments.\"\"\"\n"
  },
  {
    "path": "src/pytest_plugins/execute/rpc/chain_builder_eth_rpc.py",
    "content": "\"\"\"\nChain builder Ethereum RPC that can drive the chain when new transactions are\nsubmitted.\n\"\"\"\n\nimport time\nfrom pathlib import Path\nfrom typing import Any, Dict, Iterator, List\n\nfrom filelock import FileLock\nfrom pydantic import RootModel\nfrom typing_extensions import Self\n\nfrom ethereum_test_base_types import HexNumber\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_rpc import EngineRPC\nfrom ethereum_test_rpc import EthRPC as BaseEthRPC\nfrom ethereum_test_rpc.rpc_types import (\n    ForkchoiceState,\n    PayloadAttributes,\n    PayloadStatusEnum,\n    TransactionByHashResponse,\n)\nfrom ethereum_test_tools import (\n    Address,\n    Hash,\n    Transaction,\n)\nfrom ethereum_test_types.trie import keccak256\n\n\nclass HashList(RootModel[List[Hash]]):\n    \"\"\"Hash list class.\"\"\"\n\n    root: List[Hash]\n\n    def append(self, item: Hash) -> None:\n        \"\"\"Append an item to the list.\"\"\"\n        self.root.append(item)\n\n    def clear(self) -> None:\n        \"\"\"Clear the list.\"\"\"\n        self.root.clear()\n\n    def remove(self, item: Hash) -> None:\n        \"\"\"Remove an item from the list.\"\"\"\n        self.root.remove(item)\n\n    def __contains__(self, item: Hash) -> bool:\n        \"\"\"Check if an item is in the list.\"\"\"\n        return item in self.root\n\n    def __len__(self) -> int:\n        \"\"\"Get the length of the list.\"\"\"\n        return len(self.root)\n\n    def __iter__(self) -> Iterator[Hash]:  # type: ignore\n        \"\"\"Iterate over the list.\"\"\"\n        return iter(self.root)\n\n\nclass AddressList(RootModel[List[Address]]):\n    \"\"\"Address list class.\"\"\"\n\n    root: List[Address]\n\n    def append(self, item: Address) -> None:\n        \"\"\"Append an item to the list.\"\"\"\n        self.root.append(item)\n\n    def clear(self) -> None:\n        \"\"\"Clear the list.\"\"\"\n        self.root.clear()\n\n    def remove(self, item: Address) -> None:\n        \"\"\"Remove an item from the list.\"\"\"\n        self.root.remove(item)\n\n    def __contains__(self, item: Address) -> bool:\n        \"\"\"Check if an item is in the list.\"\"\"\n        return item in self.root\n\n    def __len__(self) -> int:\n        \"\"\"Get the length of the list.\"\"\"\n        return len(self.root)\n\n    def __iter__(self) -> Iterator[Address]:  # type: ignore\n        \"\"\"Iterate over the list.\"\"\"\n        return iter(self.root)\n\n\nclass PendingTxHashes:\n    \"\"\"\n    A class to manage the pending transaction hashes in a multi-process\n    environment.\n\n    It uses a lock file to ensure that only one process can access the pending\n    hashes file at a time.\n    \"\"\"\n\n    pending_hashes_file: Path\n    pending_hashes_lock: Path\n    pending_tx_hashes: HashList | None\n    lock: FileLock | None\n\n    def __init__(self, temp_folder: Path):\n        \"\"\"Initialize the pending transaction hashes manager.\"\"\"\n        self.pending_hashes_file = temp_folder / \"pending_tx_hashes\"\n        self.pending_hashes_lock = temp_folder / \"pending_tx_hashes.lock\"\n        self.pending_tx_hashes = None\n        self.lock = None\n\n    def __enter__(self) -> Self:\n        \"\"\"Lock the pending hashes file and load it.\"\"\"\n        assert self.lock is None, \"Lock already acquired\"\n        self.lock = FileLock(self.pending_hashes_lock, timeout=-1)\n        self.lock.acquire()\n        assert self.pending_tx_hashes is None, \"Pending transaction hashes already loaded\"\n        if self.pending_hashes_file.exists():\n            with open(self.pending_hashes_file, \"r\") as f:\n                self.pending_tx_hashes = HashList.model_validate_json(f.read())\n        else:\n            self.pending_tx_hashes = HashList([])\n        return self\n\n    def __exit__(self, exc_type: object, exc_value: object, traceback: object) -> None:\n        \"\"\"Flush the pending hashes to the file and release the lock.\"\"\"\n        assert self.lock is not None, \"Lock not acquired\"\n        assert self.pending_tx_hashes is not None, \"Pending transaction hashes not loaded\"\n        with open(self.pending_hashes_file, \"w\") as f:\n            f.write(self.pending_tx_hashes.model_dump_json())\n        self.lock.release()\n        self.lock = None\n        self.pending_tx_hashes = None\n\n    def append(self, tx_hash: Hash) -> None:\n        \"\"\"Add a transaction hash to the pending list.\"\"\"\n        assert self.lock is not None, \"Lock not acquired\"\n        assert self.pending_tx_hashes is not None, \"Pending transaction hashes not loaded\"\n        self.pending_tx_hashes.append(tx_hash)\n\n    def clear(self) -> None:\n        \"\"\"Remove a transaction hash from the pending list.\"\"\"\n        assert self.lock is not None, \"Lock not acquired\"\n        assert self.pending_tx_hashes is not None\n        self.pending_tx_hashes.clear()\n\n    def remove(self, tx_hash: Hash) -> None:\n        \"\"\"Remove a transaction hash from the pending list.\"\"\"\n        assert self.lock is not None, \"Lock not acquired\"\n        assert self.pending_tx_hashes is not None, \"Pending transaction hashes not loaded\"\n        self.pending_tx_hashes.remove(tx_hash)\n\n    def __contains__(self, tx_hash: Hash) -> bool:\n        \"\"\"Check if a transaction hash is in the pending list.\"\"\"\n        assert self.lock is not None, \"Lock not acquired\"\n        assert self.pending_tx_hashes is not None, \"Pending transaction hashes not loaded\"\n        return tx_hash in self.pending_tx_hashes\n\n    def __len__(self) -> int:\n        \"\"\"Get the number of pending transaction hashes.\"\"\"\n        assert self.lock is not None, \"Lock not acquired\"\n        assert self.pending_tx_hashes is not None, \"Pending transaction hashes not loaded\"\n        return len(self.pending_tx_hashes)\n\n    def __iter__(self) -> Iterator[Hash]:\n        \"\"\"Iterate over the pending transaction hashes.\"\"\"\n        assert self.lock is not None, \"Lock not acquired\"\n        assert self.pending_tx_hashes is not None, \"Pending transaction hashes not loaded\"\n        return iter(self.pending_tx_hashes)\n\n\nclass ChainBuilderEthRPC(BaseEthRPC, namespace=\"eth\"):\n    \"\"\"\n    Special type of Ethereum RPC client that also has access to the Engine API\n    and automatically coordinates block generation based on the number of\n    pending transactions or a block generation interval.\n    \"\"\"\n\n    fork: Fork\n    engine_rpc: EngineRPC\n    transactions_per_block: int\n    get_payload_wait_time: float\n    pending_tx_hashes: PendingTxHashes\n\n    def __init__(\n        self,\n        *,\n        rpc_endpoint: str,\n        fork: Fork,\n        engine_rpc: EngineRPC,\n        transactions_per_block: int,\n        session_temp_folder: Path,\n        get_payload_wait_time: float,\n        initial_forkchoice_update_retries: int = 5,\n        transaction_wait_timeout: int = 60,\n    ):\n        \"\"\"Initialize the Ethereum RPC client for the hive simulator.\"\"\"\n        super().__init__(\n            rpc_endpoint,\n            transaction_wait_timeout=transaction_wait_timeout,\n        )\n        self.fork = fork\n        self.engine_rpc = engine_rpc\n        self.transactions_per_block = transactions_per_block\n        self.pending_tx_hashes = PendingTxHashes(session_temp_folder)\n        self.get_payload_wait_time = get_payload_wait_time\n\n        # Send initial forkchoice updated only if we are the first worker\n        base_name = \"eth_rpc_forkchoice_updated\"\n        base_file = session_temp_folder / base_name\n        base_error_file = session_temp_folder / f\"{base_name}.err\"\n        base_lock_file = session_temp_folder / f\"{base_name}.lock\"\n\n        with FileLock(base_lock_file):\n            if base_error_file.exists():\n                raise Exception(\"Error occurred during initial forkchoice_updated\")\n            if not base_file.exists():\n                base_error_file.touch()  # Assume error\n                # Get the head block hash\n                head_block = self.get_block_by_number(\"latest\")\n                assert head_block is not None\n                # Send initial forkchoice updated\n                forkchoice_state = ForkchoiceState(\n                    head_block_hash=head_block[\"hash\"],\n                )\n                forkchoice_version = self.fork.engine_forkchoice_updated_version()\n                assert forkchoice_version is not None, (\n                    \"Fork does not support engine forkchoice_updated\"\n                )\n                for _ in range(initial_forkchoice_update_retries):\n                    response = self.engine_rpc.forkchoice_updated(\n                        forkchoice_state,\n                        None,\n                        version=forkchoice_version,\n                    )\n                    if response.payload_status.status == PayloadStatusEnum.VALID:\n                        break\n                    time.sleep(0.5)\n                else:\n                    raise Exception(\"Initial forkchoice_updated was invalid\")\n                base_error_file.unlink()  # Success\n                base_file.touch()\n\n    def generate_block(self: \"ChainBuilderEthRPC\") -> None:\n        \"\"\"Generate a block using the Engine API.\"\"\"\n        # Get the head block hash\n        head_block = self.get_block_by_number(\"latest\")\n        assert head_block is not None\n\n        forkchoice_state = ForkchoiceState(\n            head_block_hash=head_block[\"hash\"],\n        )\n        parent_beacon_block_root = (\n            Hash(0) if self.fork.header_beacon_root_required(block_number=0, timestamp=0) else None\n        )\n        payload_attributes = PayloadAttributes(\n            timestamp=HexNumber(head_block[\"timestamp\"]) + 1,\n            prev_randao=Hash(0),\n            suggested_fee_recipient=Address(0),\n            withdrawals=[] if self.fork.header_withdrawals_required() else None,\n            parent_beacon_block_root=parent_beacon_block_root,\n            target_blobs_per_block=(\n                self.fork.target_blobs_per_block(block_number=0, timestamp=0)\n                if self.fork.engine_payload_attribute_target_blobs_per_block(\n                    block_number=0, timestamp=0\n                )\n                else None\n            ),\n            max_blobs_per_block=(\n                self.fork.max_blobs_per_block(block_number=0, timestamp=0)\n                if self.fork.engine_payload_attribute_max_blobs_per_block(\n                    block_number=0, timestamp=0\n                )\n                else None\n            ),\n        )\n        forkchoice_updated_version = self.fork.engine_forkchoice_updated_version()\n        assert forkchoice_updated_version is not None, (\n            \"Fork does not support engine forkchoice_updated\"\n        )\n        response = self.engine_rpc.forkchoice_updated(\n            forkchoice_state,\n            payload_attributes,\n            version=forkchoice_updated_version,\n        )\n        assert response.payload_status.status == PayloadStatusEnum.VALID, \"Payload was invalid\"\n        assert response.payload_id is not None, \"payload_id was not returned by the client\"\n        time.sleep(self.get_payload_wait_time)\n        get_payload_version = self.fork.engine_get_payload_version()\n        assert get_payload_version is not None, \"Fork does not support engine get_payload\"\n        new_payload = self.engine_rpc.get_payload(\n            response.payload_id,\n            version=get_payload_version,\n        )\n        new_payload_args: List[Any] = [new_payload.execution_payload]\n        if new_payload.blobs_bundle is not None:\n            new_payload_args.append(new_payload.blobs_bundle.blob_versioned_hashes())\n        if parent_beacon_block_root is not None:\n            new_payload_args.append(parent_beacon_block_root)\n        if new_payload.execution_requests is not None:\n            new_payload_args.append(new_payload.execution_requests)\n        new_payload_version = self.fork.engine_new_payload_version()\n        assert new_payload_version is not None, \"Fork does not support engine new_payload\"\n        new_payload_response = self.engine_rpc.new_payload(\n            *new_payload_args, version=new_payload_version\n        )\n        assert new_payload_response.status == PayloadStatusEnum.VALID, \"Payload was invalid\"\n\n        new_forkchoice_state = ForkchoiceState(\n            head_block_hash=new_payload.execution_payload.block_hash,\n        )\n        response = self.engine_rpc.forkchoice_updated(\n            new_forkchoice_state,\n            None,\n            version=forkchoice_updated_version,\n        )\n        assert response.payload_status.status == PayloadStatusEnum.VALID, \"Payload was invalid\"\n        for tx in new_payload.execution_payload.transactions:\n            tx_hash = Hash(keccak256(tx))\n            if tx_hash in self.pending_tx_hashes:\n                self.pending_tx_hashes.remove(tx_hash)\n\n    def send_transaction(self, transaction: Transaction) -> Hash:\n        \"\"\"`eth_sendRawTransaction`: Send a transaction to the client.\"\"\"\n        returned_hash = super().send_transaction(transaction)\n        with self.pending_tx_hashes:\n            self.pending_tx_hashes.append(transaction.hash)\n            if len(self.pending_tx_hashes) >= self.transactions_per_block:\n                self.generate_block()\n        return returned_hash\n\n    def wait_for_transaction(self, transaction: Transaction) -> TransactionByHashResponse:\n        \"\"\"\n        Wait for a specific transaction to be included in a block.\n\n        Waits for a specific transaction to be included in a block by polling\n        `eth_getTransactionByHash` until it is confirmed or a timeout occurs.\n\n        Args:\n            transaction: The transaction to track.\n\n        Returns:\n            The transaction details after it is included in a block.\n\n        \"\"\"\n        return self.wait_for_transactions([transaction])[0]\n\n    def wait_for_transactions(\n        self, transactions: List[Transaction]\n    ) -> List[TransactionByHashResponse]:\n        \"\"\"\n        Wait for all transactions in the provided list to be included in a\n        block.\n\n        Waits for all transactions in the provided list to be included in a\n        block by polling `eth_getTransactionByHash` until they are confirmed or\n        a timeout occurs.\n\n        Args:\n            transactions: A list of transactions to track.\n\n        Returns:\n            A list of transaction details after they are included in a block.\n\n        Raises:\n            Exception: If one or more transactions are not included in a block\n                within the timeout period.\n\n        \"\"\"\n        tx_hashes = [tx.hash for tx in transactions]\n        responses: List[TransactionByHashResponse] = []\n        pending_responses: Dict[Hash, TransactionByHashResponse] = {}\n\n        start_time = time.time()\n        pending_transactions_handler = PendingTransactionHandler(self)\n        while True:\n            tx_id = 0\n            pending_responses = {}\n            while tx_id < len(tx_hashes):\n                tx_hash = tx_hashes[tx_id]\n                tx = self.get_transaction_by_hash(tx_hash)\n                assert tx is not None, f\"Transaction {tx_hash} not found\"\n                if tx.block_number is not None:\n                    responses.append(tx)\n                    tx_hashes.pop(tx_id)\n                else:\n                    pending_responses[tx_hash] = tx\n                    tx_id += 1\n\n            if not tx_hashes:\n                return responses\n\n            pending_transactions_handler.handle()\n\n            if (time.time() - start_time) > self.transaction_wait_timeout:\n                break\n            time.sleep(0.1)\n\n        missing_txs_strings = [\n            f\"{tx.hash} ({tx.model_dump_json()})\" for tx in transactions if tx.hash in tx_hashes\n        ]\n\n        pending_tx_responses_string = \"\\n\".join(\n            [f\"{tx_hash}: {tx.model_dump_json()}\" for tx_hash, tx in pending_responses.items()]\n        )\n        raise Exception(\n            f\"Transactions {', '.join(missing_txs_strings)} were not included in a block \"\n            f\"within {self.transaction_wait_timeout} seconds:\\n\"\n            f\"{pending_tx_responses_string}\"\n        )\n\n\nclass PendingTransactionHandler:\n    \"\"\"\n    Manages block generation based on the number of pending transactions or a\n    block generation interval.\n\n    Attributes:\n        block_generation_interval: The number of iterations after which a block\n            is generated if no new transactions are added (default: 10).\n\n    \"\"\"\n\n    chain_builder_eth_rpc: ChainBuilderEthRPC\n    block_generation_interval: int\n    last_pending_tx_hashes_count: int | None = None\n    i: int = 0\n\n    def __init__(\n        self, chain_builder_eth_rpc: ChainBuilderEthRPC, block_generation_interval: int = 10\n    ):\n        \"\"\"Initialize the pending transaction handler.\"\"\"\n        self.chain_builder_eth_rpc = chain_builder_eth_rpc\n        self.block_generation_interval = block_generation_interval\n\n    def handle(self) -> None:\n        \"\"\"\n        Handle pending transactions and generate blocks if necessary.\n\n        If the number of pending transactions reaches the limit, a block is\n        generated.\n\n        If no new transactions have been added to the pending list and the\n        block generation interval has been reached, a block is generated to\n        avoid potential deadlock.\n        \"\"\"\n        with self.chain_builder_eth_rpc.pending_tx_hashes:\n            if (\n                len(self.chain_builder_eth_rpc.pending_tx_hashes)\n                >= self.chain_builder_eth_rpc.transactions_per_block\n            ):\n                self.chain_builder_eth_rpc.generate_block()\n            else:\n                if (\n                    self.last_pending_tx_hashes_count is not None\n                    and len(self.chain_builder_eth_rpc.pending_tx_hashes)\n                    == self.last_pending_tx_hashes_count\n                    and self.i % self.block_generation_interval == 0\n                ):\n                    # If no new transactions have been added to the pending\n                    # list, generate a block to avoid potential deadlock.\n                    self.chain_builder_eth_rpc.generate_block()\n            self.last_pending_tx_hashes_count = len(self.chain_builder_eth_rpc.pending_tx_hashes)\n            self.i += 1\n"
  },
  {
    "path": "src/pytest_plugins/execute/rpc/hive.py",
    "content": "\"\"\"Pytest plugin to run the test-execute in hive-mode.\"\"\"\n\nimport io\nimport json\nfrom dataclasses import asdict, replace\nfrom pathlib import Path\nfrom random import randint\nfrom typing import Generator, Mapping, Tuple, cast\n\nimport pytest\nfrom filelock import FileLock\nfrom hive.client import Client, ClientType\nfrom hive.simulation import Simulation\nfrom hive.testing import HiveTest, HiveTestResult, HiveTestSuite\n\nfrom ethereum_test_base_types import EmptyOmmersRoot, EmptyTrieRoot, to_json\nfrom ethereum_test_fixtures.blockchain import FixtureHeader\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_rpc import EngineRPC, EthRPC\nfrom ethereum_test_tools import (\n    EOA,\n    Account,\n    Alloc,\n    Environment,\n    Hash,\n    Withdrawal,\n)\nfrom ethereum_test_types import ChainConfig, Requests\n\nfrom ...consume.simulators.helpers.ruleset import ruleset\nfrom .chain_builder_eth_rpc import ChainBuilderEthRPC\n\n\ndef pytest_addoption(parser: pytest.Parser) -> None:\n    \"\"\"Add command-line options to pytest.\"\"\"\n    hive_rpc_group = parser.getgroup(\n        \"hive_rpc\", \"Arguments defining the hive RPC client properties for the test.\"\n    )\n    hive_rpc_group.addoption(\n        \"--sender-key-initial-balance\",\n        action=\"store\",\n        dest=\"sender_key_initial_balance\",\n        type=int,\n        default=10**26,\n        help=(\n            \"Initial balance of each sender key. There is one sender key per worker process \"\n            \"(`-n` option).\"\n        ),\n    )\n    hive_rpc_group.addoption(\n        \"--tx-wait-timeout\",\n        action=\"store\",\n        dest=\"tx_wait_timeout\",\n        type=int,\n        default=10,  # Lowered from Remote RPC because of the consistent block production\n        help=\"Maximum time in seconds to wait for a transaction to be included in a block\",\n    )\n\n\n@pytest.hookimpl(trylast=True)\ndef pytest_configure(config: pytest.Config) -> None:  # noqa: D103\n    config.test_suite_scope = \"session\"  # type: ignore\n    config.engine_rpc_supported = True  # type: ignore\n\n\n@pytest.fixture(scope=\"session\")\ndef seed_sender(session_temp_folder: Path) -> EOA:\n    \"\"\"Determine the seed sender account for the client's genesis.\"\"\"\n    base_name = \"seed_sender\"\n    base_file = session_temp_folder / base_name\n    base_lock_file = session_temp_folder / f\"{base_name}.lock\"\n\n    with FileLock(base_lock_file):\n        if base_file.exists():\n            with base_file.open(\"r\") as f:\n                seed_sender_key = Hash(f.read())\n            seed_sender = EOA(key=seed_sender_key)\n        else:\n            seed_sender = EOA(key=randint(0, 2**256))\n            with base_file.open(\"w\") as f:\n                f.write(str(seed_sender.key))\n    return seed_sender\n\n\n@pytest.fixture(scope=\"session\")\ndef base_pre(\n    request: pytest.FixtureRequest,\n    seed_sender: EOA,\n    worker_count: int,\n) -> Alloc:\n    \"\"\"Pre-allocation for the client's genesis.\"\"\"\n    sender_key_initial_balance = request.config.getoption(\"sender_key_initial_balance\")\n    return Alloc(\n        {seed_sender: Account(balance=(worker_count * sender_key_initial_balance) + 10**18)}\n    )\n\n\n@pytest.fixture(scope=\"session\")\ndef base_pre_genesis(\n    session_fork: Fork,\n    base_pre: Alloc,\n) -> Tuple[Alloc, FixtureHeader]:\n    \"\"\"Create a genesis block from the blockchain test definition.\"\"\"\n    env = Environment().set_fork_requirements(session_fork)\n    assert env.withdrawals is None or len(env.withdrawals) == 0, (\n        \"withdrawals must be empty at genesis\"\n    )\n    assert env.parent_beacon_block_root is None or env.parent_beacon_block_root == Hash(0), (\n        \"parent_beacon_block_root must be empty at genesis\"\n    )\n\n    pre_alloc = Alloc.merge(\n        Alloc.model_validate(session_fork.pre_allocation_blockchain()),\n        base_pre,\n    )\n    if empty_accounts := pre_alloc.empty_accounts():\n        raise Exception(f\"Empty accounts in pre state: {empty_accounts}\")\n    state_root = pre_alloc.state_root()\n    block_number = 0\n    timestamp = 1\n    genesis = FixtureHeader(\n        parent_hash=0,\n        ommers_hash=EmptyOmmersRoot,\n        fee_recipient=0,\n        state_root=state_root,\n        transactions_trie=EmptyTrieRoot,\n        receipts_root=EmptyTrieRoot,\n        logs_bloom=0,\n        difficulty=0x20000 if env.difficulty is None else env.difficulty,\n        number=block_number,\n        gas_limit=env.gas_limit,\n        gas_used=0,\n        timestamp=timestamp,\n        extra_data=b\"\\x00\",\n        prev_randao=0,\n        nonce=0,\n        base_fee_per_gas=env.base_fee_per_gas,\n        blob_gas_used=env.blob_gas_used,\n        excess_blob_gas=env.excess_blob_gas,\n        withdrawals_root=(\n            Withdrawal.list_root(env.withdrawals) if env.withdrawals is not None else None\n        ),\n        parent_beacon_block_root=env.parent_beacon_block_root,\n        requests_hash=Requests()\n        if session_fork.header_requests_required(block_number=block_number, timestamp=timestamp)\n        else None,\n    )\n\n    return (pre_alloc, genesis)\n\n\n@pytest.fixture(scope=\"session\")\ndef client_genesis(base_pre_genesis: Tuple[Alloc, FixtureHeader]) -> dict:\n    \"\"\"\n    Convert the fixture's genesis block header and pre-state to a client\n    genesis state.\n    \"\"\"\n    genesis = to_json(base_pre_genesis[1])  # NOTE: to_json() excludes None values\n    alloc = to_json(base_pre_genesis[0])\n    # NOTE: nethermind requires account keys without '0x' prefix\n    genesis[\"alloc\"] = {k.replace(\"0x\", \"\"): v for k, v in alloc.items()}\n    return genesis\n\n\n@pytest.fixture(scope=\"session\")\ndef buffered_genesis(client_genesis: dict) -> io.BufferedReader:\n    \"\"\"\n    Create a buffered reader for the genesis block header of the current test\n    fixture.\n    \"\"\"\n    genesis_json = json.dumps(client_genesis)\n    genesis_bytes = genesis_json.encode(\"utf-8\")\n    return io.BufferedReader(cast(io.RawIOBase, io.BytesIO(genesis_bytes)))\n\n\n@pytest.fixture(scope=\"session\")\ndef client_files(\n    buffered_genesis: io.BufferedReader,\n) -> Mapping[str, io.BufferedReader]:\n    \"\"\"\n    Define the files that hive will start the client with.\n\n    For this type of test, only the genesis is passed\n    \"\"\"\n    files = {}\n    files[\"/genesis.json\"] = buffered_genesis\n    return files\n\n\n@pytest.fixture(scope=\"session\")\ndef environment(session_fork: Fork, chain_config: ChainConfig) -> dict:\n    \"\"\"\n    Define the environment that hive will start the client with using the fork\n    rules specific for the simulator.\n    \"\"\"\n    assert session_fork in ruleset, f\"fork '{session_fork}' missing in hive ruleset\"\n    return {\n        \"HIVE_CHAIN_ID\": str(chain_config.chain_id),\n        \"HIVE_FORK_DAO_VOTE\": \"1\",\n        \"HIVE_NODETYPE\": \"full\",\n        **{k: f\"{v:d}\" for k, v in ruleset[session_fork].items()},\n    }\n\n\n@pytest.fixture(scope=\"session\")\ndef test_suite_name() -> str:\n    \"\"\"The name of the hive test suite used in this simulator.\"\"\"\n    return \"eest/execute, hive mode\"\n\n\n@pytest.fixture(scope=\"session\")\ndef test_suite_description() -> str:\n    \"\"\"The description of the hive test suite used in this simulator.\"\"\"\n    return \"Execute EEST tests using hive endpoint.\"\n\n\n@pytest.fixture(autouse=True, scope=\"session\")\ndef base_hive_test(\n    request: pytest.FixtureRequest, test_suite: HiveTestSuite, session_temp_folder: Path\n) -> Generator[HiveTest, None, None]:\n    \"\"\"\n    Test (base) used to deploy the main client to be used throughout all tests.\n    \"\"\"\n    base_name = \"base_hive_test\"\n    base_file = session_temp_folder / base_name\n    base_lock_file = session_temp_folder / f\"{base_name}.lock\"\n    with FileLock(base_lock_file):\n        if base_file.exists():\n            with open(base_file, \"r\") as f:\n                test = HiveTest(**json.load(f))\n        else:\n            test = test_suite.start_test(\n                name=\"Base Hive Test\",\n                description=(\n                    \"Base test used to deploy the main client to be used throughout all tests.\"\n                ),\n            )\n            with open(base_file, \"w\") as f:\n                json.dump(asdict(test), f)\n\n    users_file_name = f\"{base_name}_users\"\n    users_file = session_temp_folder / users_file_name\n    users_lock_file = session_temp_folder / f\"{users_file_name}.lock\"\n    with FileLock(users_lock_file):\n        if users_file.exists():\n            with open(users_file, \"r\") as f:\n                users = json.load(f)\n        else:\n            users = 0\n        users += 1\n        with open(users_file, \"w\") as f:\n            json.dump(users, f)\n\n    yield test\n\n    test_pass = True\n    test_details = \"All tests have completed\"\n    if request.session.testsfailed > 0:\n        test_pass = False\n        test_details = \"One or more tests have failed\"\n\n    with FileLock(users_lock_file):\n        with open(users_file, \"r\") as f:\n            users = json.load(f)\n        users -= 1\n        with open(users_file, \"w\") as f:\n            json.dump(users, f)\n        if users == 0:\n            test.end(result=HiveTestResult(test_pass=test_pass, details=test_details))\n            base_file.unlink()\n            users_file.unlink()\n\n\n@pytest.fixture(scope=\"session\")\ndef client_type(simulator: Simulation) -> ClientType:\n    \"\"\"Type of client to be used in the test.\"\"\"\n    return simulator.client_types()[0]\n\n\n@pytest.fixture(autouse=True, scope=\"session\")\ndef client(\n    base_hive_test: HiveTest,\n    client_files: dict,\n    environment: dict,\n    client_type: ClientType,\n    session_temp_folder: Path,\n) -> Generator[Client, None, None]:\n    \"\"\"\n    Initialize the client with the appropriate files and environment variables.\n    \"\"\"\n    base_name = \"hive_client\"\n    base_file = session_temp_folder / base_name\n    base_error_file = session_temp_folder / f\"{base_name}.err\"\n    base_lock_file = session_temp_folder / f\"{base_name}.lock\"\n    client: Client | None = None\n    with FileLock(base_lock_file):\n        if not base_error_file.exists():\n            if base_file.exists():\n                with open(base_file, \"r\") as f:\n                    client = Client(**json.load(f))\n            else:\n                base_error_file.touch()  # Assume error\n                client = base_hive_test.start_client(\n                    client_type=client_type, environment=environment, files=client_files\n                )\n                if client is not None:\n                    base_error_file.unlink()  # Success\n                    with open(base_file, \"w\") as f:\n                        json.dump(\n                            asdict(replace(client, config=None)),  # type: ignore\n                            f,\n                        )\n\n    error_message = (\n        f\"Unable to connect to the client container ({client_type.name}) via Hive during test \"\n        \"setup. Check the client or Hive server logs for more information.\"\n    )\n    assert client is not None, error_message\n\n    users_file_name = f\"{base_name}_users\"\n    users_file = session_temp_folder / users_file_name\n    users_lock_file = session_temp_folder / f\"{users_file_name}.lock\"\n    with FileLock(users_lock_file):\n        if users_file.exists():\n            with open(users_file, \"r\") as f:\n                users = json.load(f)\n        else:\n            users = 0\n        users += 1\n        with open(users_file, \"w\") as f:\n            json.dump(users, f)\n\n    yield client\n\n    with FileLock(users_lock_file):\n        with open(users_file, \"r\") as f:\n            users = json.load(f)\n        users -= 1\n        with open(users_file, \"w\") as f:\n            json.dump(users, f)\n        if users == 0:\n            client.stop()\n            base_file.unlink()\n            users_file.unlink()\n\n\n@pytest.fixture(scope=\"session\")\ndef engine_rpc(client: Client) -> EngineRPC | None:\n    \"\"\"Return the engine RPC client.\"\"\"\n    return EngineRPC(f\"http://{client.ip}:8551\")\n\n\n@pytest.fixture(autouse=True, scope=\"session\")\ndef eth_rpc(\n    request: pytest.FixtureRequest,\n    client: Client,\n    engine_rpc: EngineRPC,\n    session_fork: Fork,\n    transactions_per_block: int,\n    session_temp_folder: Path,\n) -> EthRPC:\n    \"\"\"Initialize ethereum RPC client for the execution client under test.\"\"\"\n    get_payload_wait_time = request.config.getoption(\"get_payload_wait_time\")\n    tx_wait_timeout = request.config.getoption(\"tx_wait_timeout\")\n    return ChainBuilderEthRPC(\n        rpc_endpoint=f\"http://{client.ip}:8545\",\n        fork=session_fork,\n        engine_rpc=engine_rpc,\n        transactions_per_block=transactions_per_block,\n        session_temp_folder=session_temp_folder,\n        get_payload_wait_time=get_payload_wait_time,\n        transaction_wait_timeout=tx_wait_timeout,\n    )\n"
  },
  {
    "path": "src/pytest_plugins/execute/rpc/remote.py",
    "content": "\"\"\"Pytest plugin to run the execute in remote-rpc-mode.\"\"\"\n\nfrom pathlib import Path\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_rpc import EngineRPC, EthRPC\nfrom ethereum_test_types.chain_config_types import ChainConfigDefaults\n\nfrom ..pre_alloc import AddressStubs\nfrom .chain_builder_eth_rpc import ChainBuilderEthRPC\n\n\ndef pytest_addoption(parser: pytest.Parser) -> None:\n    \"\"\"Add command-line options to pytest.\"\"\"\n    remote_rpc_group = parser.getgroup(\"remote_rpc\", \"Arguments defining remote RPC configuration\")\n    remote_rpc_group.addoption(\n        \"--rpc-endpoint\",\n        required=True,\n        action=\"store\",\n        dest=\"rpc_endpoint\",\n        help=\"RPC endpoint to an execution client\",\n    )\n    remote_rpc_group.addoption(\n        \"--rpc-chain-id\",\n        action=\"store\",\n        dest=\"rpc_chain_id\",\n        required=False,\n        type=int,\n        default=None,\n        help=\"DEPRECATED: ID of the chain where the tests will be executed. \"\n        \"This flag is deprecated and will be removed in a future release.\"\n        \"Use --chain-id instead.\",\n    )\n    remote_rpc_group.addoption(\n        \"--tx-wait-timeout\",\n        action=\"store\",\n        dest=\"tx_wait_timeout\",\n        type=int,\n        default=60,\n        help=\"Maximum time in seconds to wait for a transaction to be included in a block\",\n    )\n    remote_rpc_group.addoption(\n        \"--address-stubs\",\n        action=\"store\",\n        dest=\"address_stubs\",\n        default=AddressStubs(root={}),\n        type=AddressStubs.model_validate_json_or_file,\n        help=\"The address stubs for contracts that have already been placed in the chain and to \"\n        \"use for the test. Can be a JSON formatted string or a path to a YAML or JSON file.\",\n    )\n\n    engine_rpc_group = parser.getgroup(\"engine_rpc\", \"Arguments defining engine RPC configuration\")\n    engine_rpc_group.addoption(\n        \"--engine-endpoint\",\n        required=False,\n        action=\"store\",\n        default=None,\n        dest=\"engine_endpoint\",\n        help=\"Engine endpoint to an execution client, which implies that the execute command \"\n        \"will be used to drive the chain. If not provided, it's assumed that the execution client\"\n        \"is connected to a beacon node and the chain progresses automatically. If provided, the\"\n        \"JWT secret must be provided as well.\",\n    )\n    engine_rpc_group.addoption(\n        \"--engine-jwt-secret\",\n        required=False,\n        action=\"store\",\n        default=None,\n        dest=\"engine_jwt_secret\",\n        help=\"JWT secret to be used to authenticate with the engine endpoint. Provided string \"\n        \"will be converted to bytes using the UTF-8 encoding.\",\n    )\n    engine_rpc_group.addoption(\n        \"--engine-jwt-secret-file\",\n        required=False,\n        action=\"store\",\n        default=None,\n        dest=\"engine_jwt_secret_file\",\n        help=\"Path to a file containing the JWT secret to be used to authenticate with the engine\"\n        \"endpoint. The file must contain only the JWT secret as a hex string.\",\n    )\n\n\ndef pytest_configure(config: pytest.Config) -> None:\n    \"\"\"Check if a chain ID configuration is provided.\"\"\"\n    if config.getoption(\"rpc_chain_id\") is None and config.getoption(\"chain_id\") is None:\n        pytest.exit(\"No chain ID configuration found. Please use --chain-id.\")\n    # Verify the chain ID configuration is consistent with the remote RPC\n    # endpoint\n    rpc_endpoint = config.getoption(\"rpc_endpoint\")\n    eth_rpc = EthRPC(rpc_endpoint)\n    remote_chain_id = eth_rpc.chain_id()\n    if remote_chain_id != ChainConfigDefaults.chain_id:\n        pytest.exit(\n            f\"Chain ID obtained from the remote RPC endpoint ({remote_chain_id}) does not match \"\n            f\"the configured chain ID ({ChainConfigDefaults.chain_id}).\"\n            \"Please check if the chain ID is correctly configured with the --chain-id flag.\"\n        )\n    engine_endpoint = config.getoption(\"engine_endpoint\")\n    engine_rpc = None\n    if engine_endpoint is not None:\n        jwt_secret = config.getoption(\"engine_jwt_secret\")\n        jwt_secret_file = config.getoption(\"engine_jwt_secret_file\")\n        if jwt_secret is None and jwt_secret_file is None:\n            pytest.exit(\n                \"JWT secret must be provided if engine endpoint is provided. \"\n                \"Please check if the JWT secret is correctly configured with the \"\n                \"--engine-jwt-secret or --engine-jwt-secret-file flag.\"\n            )\n        elif jwt_secret_file is not None:\n            with open(jwt_secret_file, \"r\") as f:\n                jwt_secret = f.read().strip()\n            if jwt_secret.startswith(\"0x\"):\n                jwt_secret = jwt_secret[2:]\n            try:\n                jwt_secret = bytes.fromhex(jwt_secret)\n            except ValueError:\n                pytest.exit(\n                    \"JWT secret must be a hex string if provided as a file. \"\n                    \"Please check if the JWT secret is correctly configured with the \"\n                    \"--engine-jwt-secret-file flag.\"\n                )\n        if isinstance(jwt_secret, str):\n            jwt_secret = jwt_secret.encode(\"utf-8\")\n        assert isinstance(jwt_secret, bytes), (\n            f\"JWT secret must be a bytes object, got {type(jwt_secret)}\"\n        )\n        engine_rpc = EngineRPC(engine_endpoint, jwt_secret=jwt_secret)\n        # TODO: Perform a request to the engine endpoint to verify that the JWT\n        # secret is valid. Potentially could be `engine_getClientVersionV1` but\n        # need to implement this in rpc.py.\n    config.engine_rpc = engine_rpc  # type: ignore\n\n\n@pytest.fixture(scope=\"session\")\ndef engine_rpc(request: pytest.FixtureRequest) -> EngineRPC | None:\n    \"\"\"Execute remote command does not have access to the engine RPC.\"\"\"\n    return request.config.engine_rpc  # type: ignore\n\n\n@pytest.fixture(autouse=True, scope=\"session\")\ndef rpc_endpoint(request: pytest.FixtureRequest) -> str:\n    \"\"\"\n    Return remote RPC endpoint to be used to make requests to the execution\n    client.\n    \"\"\"\n    return request.config.getoption(\"rpc_endpoint\")\n\n\n@pytest.fixture(autouse=True, scope=\"session\")\ndef eth_rpc(\n    request: pytest.FixtureRequest,\n    rpc_endpoint: str,\n    engine_rpc: EngineRPC | None,\n    session_fork: Fork,\n    transactions_per_block: int,\n    session_temp_folder: Path,\n) -> EthRPC:\n    \"\"\"Initialize ethereum RPC client for the execution client under test.\"\"\"\n    tx_wait_timeout = request.config.getoption(\"tx_wait_timeout\")\n    if engine_rpc is None:\n        return EthRPC(rpc_endpoint, transaction_wait_timeout=tx_wait_timeout)\n    get_payload_wait_time = request.config.getoption(\"get_payload_wait_time\")\n    return ChainBuilderEthRPC(\n        rpc_endpoint=rpc_endpoint,\n        fork=session_fork,\n        engine_rpc=engine_rpc,\n        transactions_per_block=transactions_per_block,\n        session_temp_folder=session_temp_folder,\n        get_payload_wait_time=get_payload_wait_time,\n        transaction_wait_timeout=tx_wait_timeout,\n    )\n"
  },
  {
    "path": "src/pytest_plugins/execute/rpc/remote_seed_sender.py",
    "content": "\"\"\"Seed sender on a remote execution client.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_base_types import Hash, Number\nfrom ethereum_test_rpc import EthRPC\nfrom ethereum_test_types import EOA\n\n\ndef pytest_addoption(parser: pytest.Parser) -> None:\n    \"\"\"Add command-line options to pytest.\"\"\"\n    remote_seed_sender_group = parser.getgroup(\n        \"remote_seed_sender\",\n        \"Arguments for the remote seed sender\",\n    )\n\n    remote_seed_sender_group.addoption(\n        \"--rpc-seed-key\",\n        action=\"store\",\n        required=True,\n        dest=\"rpc_seed_key\",\n        help=(\n            \"Seed key used to fund all sender keys. This account must have a balance of at least \"\n            \"`sender_key_initial_balance` * `workers` + gas fees. It should also be \"\n            \"exclusively used by this command because the nonce is only checked once and if \"\n            \"it's externally increased, the seed transactions might fail.\"\n        ),\n    )\n\n\n@pytest.fixture(scope=\"session\")\ndef seed_sender(request: pytest.FixtureRequest, eth_rpc: EthRPC) -> EOA:\n    \"\"\"Create seed sender account by checking its balance and nonce.\"\"\"\n    rpc_seed_key = Hash(request.config.getoption(\"rpc_seed_key\"))\n    # check the nonce through the rpc client\n    seed_sender = EOA(key=rpc_seed_key)\n    seed_sender.nonce = Number(eth_rpc.get_transaction_count(seed_sender))\n    return seed_sender\n"
  },
  {
    "path": "src/pytest_plugins/execute/sender.py",
    "content": "\"\"\"Sender mutex class that allows sending transactions one at a time.\"\"\"\n\nfrom pathlib import Path\nfrom typing import Generator, Iterator\n\nimport pytest\nfrom filelock import FileLock\nfrom pytest_metadata.plugin import metadata_key\n\nfrom ethereum_test_base_types import Number, Wei\nfrom ethereum_test_rpc import EthRPC\nfrom ethereum_test_tools import EOA, Transaction\n\n\ndef pytest_addoption(parser: pytest.Parser) -> None:\n    \"\"\"Add command-line options to pytest.\"\"\"\n    sender_group = parser.getgroup(\n        \"sender\",\n        \"Arguments for the sender key fixtures\",\n    )\n\n    sender_group.addoption(\n        \"--seed-account-sweep-amount\",\n        action=\"store\",\n        dest=\"seed_account_sweep_amount\",\n        type=Wei,\n        default=None,\n        help=\"Amount of wei to sweep from the seed account to the sender account. \"\n        \"Default=None (Entire balance)\",\n    )\n\n    sender_group.addoption(\n        \"--sender-funding-txs-gas-price\",\n        action=\"store\",\n        dest=\"sender_funding_transactions_gas_price\",\n        type=Wei,\n        default=None,\n        help=(\"Gas price set for the funding transactions of each worker's sender key.\"),\n    )\n\n    sender_group.addoption(\n        \"--sender-fund-refund-gas-limit\",\n        action=\"store\",\n        dest=\"sender_fund_refund_gas_limit\",\n        type=Wei,\n        default=21_000,\n        help=(\"Gas limit set for the funding transactions of each worker's sender key.\"),\n    )\n\n\n@pytest.fixture(scope=\"session\")\ndef sender_funding_transactions_gas_price(\n    request: pytest.FixtureRequest, default_gas_price: int\n) -> int:\n    \"\"\"Get the gas price for the funding transactions.\"\"\"\n    gas_price: int | None = request.config.option.sender_funding_transactions_gas_price\n    if gas_price is None:\n        gas_price = default_gas_price\n    assert gas_price > 0, \"Gas price must be greater than 0\"\n    return gas_price\n\n\n@pytest.fixture(scope=\"session\")\ndef sender_fund_refund_gas_limit(request: pytest.FixtureRequest) -> int:\n    \"\"\"Get the gas limit of the funding transactions.\"\"\"\n    return request.config.option.sender_fund_refund_gas_limit\n\n\n@pytest.fixture(scope=\"session\")\ndef seed_account_sweep_amount(request: pytest.FixtureRequest) -> int | None:\n    \"\"\"Get the seed account sweep amount.\"\"\"\n    return request.config.option.seed_account_sweep_amount\n\n\n@pytest.fixture(scope=\"session\")\ndef sender_key_initial_balance(\n    seed_sender: EOA,\n    eth_rpc: EthRPC,\n    session_temp_folder: Path,\n    worker_count: int,\n    sender_funding_transactions_gas_price: int,\n    sender_fund_refund_gas_limit: int,\n    seed_account_sweep_amount: int | None,\n) -> int:\n    \"\"\"\n    Calculate the initial balance of each sender key.\n\n    The way to do this is to fetch the seed sender balance and divide it by the\n    number of workers. This way we can ensure that each sender key has the same\n    initial balance.\n\n    We also only do this once per session, because if we try to fetch the\n    balance again, it could be that another worker has already sent a\n    transaction and the balance is different.\n\n    It's not really possible to calculate the transaction costs of each test\n    that each worker is going to run, so we can't really calculate the initial\n    balance of each sender key based on that.\n    \"\"\"\n    base_name = \"sender_key_initial_balance\"\n    base_file = session_temp_folder / base_name\n    base_lock_file = session_temp_folder / f\"{base_name}.lock\"\n\n    with FileLock(base_lock_file):\n        if base_file.exists():\n            with base_file.open(\"r\") as f:\n                sender_key_initial_balance = int(f.read())\n        else:\n            if seed_account_sweep_amount is None:\n                seed_account_sweep_amount = eth_rpc.get_balance(seed_sender)\n            seed_sender_balance_per_worker = seed_account_sweep_amount // worker_count\n            assert seed_sender_balance_per_worker > 100, \"Seed sender balance too low\"\n            # Subtract the cost of the transaction that is going to be sent to\n            # the seed sender\n            sender_key_initial_balance = seed_sender_balance_per_worker - (\n                sender_fund_refund_gas_limit * sender_funding_transactions_gas_price\n            )\n\n            with base_file.open(\"w\") as f:\n                f.write(str(sender_key_initial_balance))\n    return sender_key_initial_balance\n\n\n@pytest.fixture(scope=\"session\")\ndef sender_key(\n    request: pytest.FixtureRequest,\n    seed_sender: EOA,\n    sender_key_initial_balance: int,\n    eoa_iterator: Iterator[EOA],\n    eth_rpc: EthRPC,\n    session_temp_folder: Path,\n    sender_funding_transactions_gas_price: int,\n    sender_fund_refund_gas_limit: int,\n) -> Generator[EOA, None, None]:\n    \"\"\"\n    Get the sender keys for all tests.\n\n    The seed sender is going to be shared among different processes, so we need\n    to lock it before we produce each funding transaction.\n    \"\"\"\n    # For the seed sender we do need to keep track of the nonce because it is\n    # shared among different processes, and there might not be a new block\n    # produced between the transactions.\n    seed_sender_nonce_file_name = \"seed_sender_nonce\"\n    seed_sender_lock_file_name = f\"{seed_sender_nonce_file_name}.lock\"\n    seed_sender_nonce_file = session_temp_folder / seed_sender_nonce_file_name\n    seed_sender_lock_file = session_temp_folder / seed_sender_lock_file_name\n\n    sender = next(eoa_iterator)\n\n    # prepare funding transaction\n    with FileLock(seed_sender_lock_file):\n        if seed_sender_nonce_file.exists():\n            with seed_sender_nonce_file.open(\"r\") as f:\n                seed_sender.nonce = Number(f.read())\n        fund_tx = Transaction(\n            sender=seed_sender,\n            to=sender,\n            gas_limit=sender_fund_refund_gas_limit,\n            gas_price=sender_funding_transactions_gas_price,\n            value=sender_key_initial_balance,\n        ).with_signature_and_sender()\n        eth_rpc.send_transaction(fund_tx)\n        with seed_sender_nonce_file.open(\"w\") as f:\n            f.write(str(seed_sender.nonce))\n    eth_rpc.wait_for_transaction(fund_tx)\n\n    yield sender\n\n    # refund seed sender\n    remaining_balance = eth_rpc.get_balance(sender)\n    sender.nonce = Number(eth_rpc.get_transaction_count(sender))\n    used_balance = sender_key_initial_balance - remaining_balance\n    request.config.stash[metadata_key][\"Senders\"][str(sender)] = (\n        f\"Used balance={used_balance / 10**18:.18f}\"\n    )\n\n    refund_gas_limit = sender_fund_refund_gas_limit\n    # double the gas price to ensure the transaction is included and overwrites\n    # any other transaction that might have been sent by the sender.\n    refund_gas_price = sender_funding_transactions_gas_price * 2\n    tx_cost = refund_gas_limit * refund_gas_price\n\n    if (remaining_balance - 1) < tx_cost:\n        return\n\n    # Update the nonce of the sender in case one of the pre-alloc transactions\n    # failed\n    sender.nonce = Number(eth_rpc.get_transaction_count(sender))\n\n    refund_tx = Transaction(\n        sender=sender,\n        to=seed_sender,\n        gas_limit=refund_gas_limit,\n        gas_price=refund_gas_price,\n        value=remaining_balance - tx_cost - 1,\n    ).with_signature_and_sender()\n\n    eth_rpc.send_wait_transaction(refund_tx)\n\n\ndef pytest_sessionstart(session: pytest.Session) -> None:\n    \"\"\"Reset the sender info before the session starts.\"\"\"\n    session.config.stash[metadata_key][\"Senders\"] = {}\n"
  },
  {
    "path": "src/pytest_plugins/execute/tests/__init__.py",
    "content": "\"\"\"Unit tests for the execute pytest plugin.\"\"\"\n"
  },
  {
    "path": "src/pytest_plugins/execute/tests/test_pre_alloc.py",
    "content": "\"\"\"Test the pre-allocation models used during test execution.\"\"\"\n\nfrom typing import Any\n\nimport pytest\n\nfrom ethereum_test_base_types import Address\n\nfrom ..pre_alloc import AddressStubs\n\n\n@pytest.mark.parametrize(\n    \"input_value,expected\",\n    [\n        pytest.param(\n            \"{}\",\n            AddressStubs({}),\n            id=\"empty_address_stubs_string\",\n        ),\n        pytest.param(\n            '{\"some_address\": \"0x0000000000000000000000000000000000000001\"}',\n            AddressStubs({\"some_address\": Address(\"0x0000000000000000000000000000000000000001\")}),\n            id=\"address_stubs_string_with_some_address\",\n        ),\n    ],\n)\ndef test_address_stubs(input_value: Any, expected: AddressStubs) -> None:\n    \"\"\"Test the address stubs.\"\"\"\n    assert AddressStubs.model_validate_json_or_file(input_value) == expected\n\n\n@pytest.mark.parametrize(\n    \"file_name,file_contents,expected\",\n    [\n        pytest.param(\n            \"empty.json\",\n            \"{}\",\n            AddressStubs({}),\n            id=\"empty_address_stubs_json\",\n        ),\n        pytest.param(\n            \"empty.yaml\",\n            \"\",\n            AddressStubs({}),\n            id=\"empty_address_stubs_yaml\",\n        ),\n        pytest.param(\n            \"one_address.json\",\n            '{\"DEPOSIT_CONTRACT_ADDRESS\": \"0x00000000219ab540356cbb839cbe05303d7705fa\"}',\n            AddressStubs(\n                {\n                    \"DEPOSIT_CONTRACT_ADDRESS\": Address(\n                        \"0x00000000219ab540356cbb839cbe05303d7705fa\"\n                    ),\n                }\n            ),\n            id=\"single_address_json\",\n        ),\n        pytest.param(\n            \"one_address.yaml\",\n            \"DEPOSIT_CONTRACT_ADDRESS: 0x00000000219ab540356cbb839cbe05303d7705fa\",\n            AddressStubs(\n                {\n                    \"DEPOSIT_CONTRACT_ADDRESS\": Address(\n                        \"0x00000000219ab540356cbb839cbe05303d7705fa\"\n                    ),\n                }\n            ),\n            id=\"single_address_yaml\",\n        ),\n    ],\n)\ndef test_address_stubs_from_files(\n    pytester: pytest.Pytester,\n    file_name: str,\n    file_contents: str,\n    expected: AddressStubs,\n) -> None:\n    \"\"\"Test the address stubs.\"\"\"\n    filename = pytester.path.joinpath(file_name)\n    filename.write_text(file_contents)\n\n    assert AddressStubs.model_validate_json_or_file(str(filename)) == expected\n"
  },
  {
    "path": "src/pytest_plugins/filler/__init__.py",
    "content": "\"\"\"A pytest plugin to fill tests and generate JSON fixtures.\"\"\"\n\nfrom .fixture_output import FixtureOutput\n\n__all__ = [\n    \"FixtureOutput\",\n]\n"
  },
  {
    "path": "src/pytest_plugins/filler/eip_checklist.py",
    "content": "\"\"\"\nPytest plugin for generating EIP test completion checklists.\n\nThis plugin collects checklist markers from tests and generates a filled\nchecklist for each EIP based on the template at\ndocs/writing_tests/checklist_templates/eip_testing_checklist_template.md\n\"\"\"\n\nimport logging\nimport re\nfrom dataclasses import dataclass, field\nfrom pathlib import Path\nfrom typing import ClassVar, Dict, List, Set, Tuple, Type\n\nimport pytest\n\nfrom .gen_test_doc.page_props import EipChecklistPageProps\n\nlogger = logging.getLogger(\"mkdocs\")\n\n\ndef pytest_addoption(parser: pytest.Parser) -> None:\n    \"\"\"Add command-line options for checklist generation.\"\"\"\n    group = parser.getgroup(\"checklist\", \"EIP checklist generation options\")\n    group.addoption(\n        \"--checklist-output\",\n        action=\"store\",\n        dest=\"checklist_output\",\n        type=Path,\n        default=Path(\"./checklists\"),\n        help=\"Directory to output the generated checklists\",\n    )\n    group.addoption(\n        \"--checklist-eip\",\n        action=\"append\",\n        dest=\"checklist_eips\",\n        type=int,\n        default=[],\n        help=\"Generate checklist only for specific EIP(s)\",\n    )\n    group.addoption(\n        \"--checklist-doc-gen\",\n        action=\"store_true\",\n        dest=\"checklist_doc_gen\",\n        default=False,\n        help=\"Generate checklists for documentation (uses mkdocs_gen_files)\",\n    )\n\n\nTITLE_LINE = \"# EIP Execution Layer Testing Checklist Template\"\nPERCENTAGE_LINE = \"| TOTAL_CHECKLIST_ITEMS | COVERED_CHECKLIST_ITEMS | PERCENTAGE |\"\nTEMPLATE_PATH = (\n    Path(__file__).parents[3]\n    / \"docs\"\n    / \"writing_tests\"\n    / \"checklist_templates\"\n    / \"eip_testing_checklist_template.md\"\n)\nTEMPLATE_CONTENT = TEMPLATE_PATH.read_text()\nEXTERNAL_COVERAGE_FILE_NAME = \"eip_checklist_external_coverage.txt\"\nNOT_APPLICABLE_FILE_NAME = \"eip_checklist_not_applicable.txt\"\nWARNINGS_LINE = \"<!-- WARNINGS LINE -->\"\n\n\n@pytest.hookimpl(tryfirst=True)\ndef pytest_configure(config: pytest.Config) -> None:  # noqa: D103\n    config.pluginmanager.register(EIPChecklistCollector(), \"eip-checklist-collector\")\n\n\n@dataclass(kw_only=True)\nclass EIPItem:\n    \"\"\"Represents an EIP checklist item.\"\"\"\n\n    id: str\n    line_number: int\n    description: str\n    tests: Set[str]\n    not_applicable_reason: str = \"\"\n    external_coverage_reason: str = \"\"\n\n    @classmethod\n    def from_checklist_line(cls, *, line: str, line_number: int) -> \"EIPItem | None\":\n        \"\"\"Create an EIP item from a checklist line.\"\"\"\n        match = re.match(r\"\\|\\s*`([^`]+)`\\s*\\|\\s*([^|]+)\\s*\\|\", line)\n        if not match:\n            return None\n        return cls(\n            id=match.group(1),\n            line_number=line_number,\n            description=match.group(2),\n            tests=set(),\n        )\n\n    @property\n    def covered(self) -> bool:\n        \"\"\"Return True if the item is covered by at least one test.\"\"\"\n        return len(self.tests) > 0 or self.external_coverage\n\n    @property\n    def external_coverage(self) -> bool:\n        \"\"\"Return True if the item is covered by an external test/procedure.\"\"\"\n        return self.external_coverage_reason != \"\"\n\n    @property\n    def not_applicable(self) -> bool:\n        \"\"\"Return True if the item is not applicable.\"\"\"\n        return self.not_applicable_reason != \"\"\n\n    def __str__(self) -> str:\n        \"\"\"Return a string representation of the EIP item.\"\"\"\n        status = \" \"\n        tests = \"\"\n        if self.external_coverage:\n            status = \"✅\"\n            tests = self.external_coverage_reason\n        elif self.covered:\n            if self.not_applicable:\n                status = \"❓\"\n            else:\n                status = \"✅\"\n            tests = \", \".join(sorted(self.tests))\n        elif self.not_applicable:\n            status = \"N/A\"\n            tests = self.not_applicable_reason\n\n        return f\"| `{self.id}` | {self.description} | {status} | {tests} |\"\n\n\nTEMPLATE_ITEMS: Dict[str, EIPItem] = {}\n# Parse the template to extract checklist item IDs and descriptions\nfor i, line in enumerate(TEMPLATE_CONTENT.splitlines()):\n    # Match lines that contain checklist items with IDs in backticks\n    if item := EIPItem.from_checklist_line(line=line, line_number=i + 1):\n        TEMPLATE_ITEMS[item.id] = item\n\n\ndef template_items() -> Dict[str, EIPItem]:\n    \"\"\"Return a copy of the template items.\"\"\"\n    new_items = {}\n    for test_id, item in TEMPLATE_ITEMS.items():\n        new_items[test_id] = EIPItem(\n            id=item.id,\n            line_number=item.line_number,\n            description=item.description,\n            tests=set(),\n        )\n    return new_items\n\n\nALL_IDS = set(TEMPLATE_ITEMS.keys())\n\n\ndef resolve_id(item_id: str) -> Set[str]:\n    \"\"\"Resolve an item ID to a set of checklist IDs.\"\"\"\n    covered_ids = {\n        checklist_id\n        for checklist_id in ALL_IDS\n        if checklist_id == item_id or checklist_id.startswith(item_id + \"/\")\n    }\n    return covered_ids\n\n\nALL_CHECKLIST_WARNINGS: Dict[str, Type[\"ChecklistWarning\"]] = {}\n\n\n@dataclass(kw_only=True)\nclass ChecklistWarning:\n    \"\"\"Represents an EIP checklist warning.\"\"\"\n\n    title: ClassVar[str] = \"\"\n    details: List[str]\n\n    def __init_subclass__(cls) -> None:\n        \"\"\"Register the checklist warning subclass.\"\"\"\n        super().__init_subclass__()\n        assert cls.title, \"Title must be set\"\n        if cls.title in ALL_CHECKLIST_WARNINGS:\n            raise ValueError(f\"Duplicate checklist warning class: {cls}\")\n        ALL_CHECKLIST_WARNINGS[cls.title] = cls\n\n    def lines(self) -> List[str]:\n        \"\"\"Return the lines of the checklist warning.\"\"\"\n        return [\"\", f\"### {self.title}\", \"\"] + self.details + [\"\"]\n\n    @classmethod\n    def from_items(cls, all_items: Dict[str, EIPItem]) -> \"ChecklistWarning | None\":\n        \"\"\"Generate a checklist warning from a list of items.\"\"\"\n        raise NotImplementedError(f\"from_items not implemented for {cls}\")\n\n\nclass ConflictingChecklistItemsWarning(ChecklistWarning):\n    \"\"\"Represents a conflicting checklist items warning.\"\"\"\n\n    title: ClassVar[str] = \"Conflicting Checklist Items\"\n\n    @classmethod\n    def from_items(cls, all_items: Dict[str, EIPItem]) -> ChecklistWarning | None:\n        \"\"\"\n        Generate a conflicting checklist items warning from a list of items.\n        \"\"\"\n        conflicting_items = [\n            item for item in all_items.values() if item.not_applicable and item.covered\n        ]\n        if not conflicting_items:\n            return None\n\n        details = [\n            \"The following checklist items were marked both as not applicable and covered:\",\n            \"\",\n            \"| ID | Description | Not Applicable | Tests |\",\n            \"|---|---|---|---|\",\n        ]\n        for item in conflicting_items:\n            details.append(\n                f\"| {item.id} | {item.description} | \"\n                + f\"{item.not_applicable_reason} | {', '.join(sorted(item.tests))} |\"\n            )\n\n        return cls(details=details)\n\n\n@dataclass(kw_only=True)\nclass EIP:\n    \"\"\"Represents an EIP and its checklist.\"\"\"\n\n    number: int\n    items: Dict[str, EIPItem] = field(default_factory=template_items)\n    path: Path | None = None\n\n    def add_covered_test(self, checklist_id: str, node_id: str) -> None:\n        \"\"\"Add a covered test to the EIP.\"\"\"\n        self.items[checklist_id].tests.add(node_id)\n\n    @property\n    def covered_items(self) -> int:\n        \"\"\"Return the number of covered items.\"\"\"\n        return sum(1 for item in self.items.values() if item.covered and not item.not_applicable)\n        return sum(1 for item in self.items.values() if item.covered and not item.not_applicable)\n\n    @property\n    def total_items(self) -> int:\n        \"\"\"Return the number of total items.\"\"\"\n        return sum(1 for item in self.items.values() if not item.not_applicable)\n\n    @property\n    def percentage(self) -> float:\n        \"\"\"Return the percentage of covered items.\"\"\"\n        return self.covered_items / self.total_items * 100 if self.total_items else 0\n\n    @property\n    def completeness_emoji(self) -> str:\n        \"\"\"Return the completeness emoji.\"\"\"\n        return \"🟢\" if self.percentage == 100 else \"🟡\" if self.percentage > 50 else \"🔴\"\n\n    @property\n    def warnings(self) -> List[ChecklistWarning]:\n        \"\"\"Return the detected inconsistencies in the checklist.\"\"\"\n        warnings = []\n        for warning_cls in ALL_CHECKLIST_WARNINGS.values():\n            if warning := warning_cls.from_items(self.items):\n                warnings.append(warning)\n        return warnings\n\n    def mark_not_applicable(self) -> None:\n        \"\"\"Read the not-applicable items from the EIP.\"\"\"\n        if self.path is None:\n            return\n        not_applicable_path = self.path / NOT_APPLICABLE_FILE_NAME\n        if not not_applicable_path.exists():\n            return\n        with not_applicable_path.open() as f:\n            for line in f:\n                line = line.strip()\n                if not line:\n                    continue\n                assert \"=\" in line\n                item_id, reason = line.split(\"=\", 1)\n                item_id = item_id.strip()\n                reason = reason.strip()\n                assert reason, f\"Reason is empty for {line}\"\n                assert item_id, f\"Item ID is empty for {line}\"\n                ids = resolve_id(item_id)\n                if not ids:\n                    logger.warning(\n                        f\"Item ID {item_id} not found in the checklist template, \"\n                        f\"for EIP {self.number}\"\n                    )\n                    continue\n                for id_covered in ids:\n                    self.items[id_covered].not_applicable_reason = reason\n\n    def mark_external_coverage(self) -> None:\n        \"\"\"Read the externally covered items from the EIP.\"\"\"\n        if self.path is None:\n            return\n        external_coverage_path = self.path / EXTERNAL_COVERAGE_FILE_NAME\n        if not external_coverage_path.exists():\n            return\n        with external_coverage_path.open() as f:\n            for line in f:\n                line = line.strip()\n                if not line:\n                    continue\n                assert \"=\" in line\n                item_id, reason = line.split(\"=\", 1)\n                item_id = item_id.strip()\n                reason = reason.strip()\n                assert item_id, f\"Item ID is empty for {line}\"\n                assert reason, f\"Reason is empty for {line}\"\n                ids = resolve_id(item_id)\n                if not ids:\n                    logger.warning(\n                        f\"Item ID {item_id} not found in the checklist template, \"\n                        f\"for EIP {self.number}\"\n                    )\n                    continue\n                for id_covered in ids:\n                    self.items[id_covered].external_coverage_reason = reason\n\n    def generate_filled_checklist_lines(self) -> List[str]:\n        \"\"\"Generate the filled checklist lines for a specific EIP.\"\"\"\n        # Create a copy of the template content\n        lines = TEMPLATE_CONTENT.splitlines()\n\n        self.mark_not_applicable()\n        self.mark_external_coverage()\n\n        for checklist_item in self.items.values():\n            # Find the line with this item ID\n            lines[checklist_item.line_number - 1] = str(checklist_item)\n\n        lines[lines.index(PERCENTAGE_LINE)] = (\n            f\"| {self.total_items} | {self.covered_items} | {self.completeness_emoji} \"\n            f\"{self.percentage:.2f}% |\"\n        )\n\n        # Replace the title line with the EIP number\n        lines[lines.index(TITLE_LINE)] = f\"# EIP-{self.number} Test Checklist\"\n\n        # Last, add the warnings if there are any, this must be the last thing\n        # we do to avoid shifting the lines below the percentage line\n        if self.warnings:\n            warnings_line_idx = lines.index(WARNINGS_LINE)\n            warnings_lines = [\"\", \"## ⚠️ Checklist Warnings ⚠️\", \"\"]\n            for warning in self.warnings:\n                warnings_lines.extend(warning.lines())\n            lines[warnings_line_idx:warnings_line_idx] = warnings_lines\n\n        return lines\n\n    def generate_filled_checklist(self, output_dir: Path) -> Path:\n        \"\"\"Generate a filled checklist for a specific EIP.\"\"\"\n        lines = self.generate_filled_checklist_lines()\n\n        output_dir = output_dir / f\"eip{self.number}_checklist.md\"\n\n        # Write the filled checklist\n        output_dir.parent.mkdir(exist_ok=True, parents=True)\n        output_dir.write_text(\"\\n\".join(lines))\n\n        return output_dir\n\n\nclass EIPChecklistCollector:\n    \"\"\"Collects and manages EIP checklist items from test markers.\"\"\"\n\n    def __init__(self: \"EIPChecklistCollector\") -> None:\n        \"\"\"Initialize the EIP checklist collector.\"\"\"\n        self.eips: Dict[int, EIP] = {}\n\n    def extract_eip_from_path(self, test_path: Path) -> Tuple[int | None, Path | None]:\n        \"\"\"Extract EIP number from test file path.\"\"\"\n        # Look for patterns like eip1234_ or eip1234/ in the path\n        for part_idx, part in enumerate(test_path.parts):\n            match = re.match(r\"eip(\\d+)\", part)\n            if match:\n                eip = int(match.group(1))\n                eip_path = test_path.parents[len(test_path.parents) - part_idx - 2]\n                return eip, eip_path\n        return None, None\n\n    def get_eip_from_item(self, item: pytest.Item) -> EIP | None:\n        \"\"\"Get the EIP for a test item.\"\"\"\n        test_path = Path(item.location[0])\n        for part_idx, part in enumerate(test_path.parts):\n            match = re.match(r\"eip(\\d+)\", part)\n            if match:\n                eip = int(match.group(1))\n                if eip not in self.eips:\n                    self.eips[eip] = EIP(\n                        number=eip,\n                        path=test_path.parents[len(test_path.parents) - part_idx - 2],\n                    )\n                else:\n                    if self.eips[eip].path is None:\n                        self.eips[eip].path = test_path.parents[\n                            len(test_path.parents) - part_idx - 2\n                        ]\n                return self.eips[eip]\n        return None\n\n    def get_eip(self, eip: int) -> EIP:\n        \"\"\"Get the EIP for a given EIP number.\"\"\"\n        if eip not in self.eips:\n            self.eips[eip] = EIP(number=eip, path=None)\n        return self.eips[eip]\n\n    def collect_from_item(self, item: pytest.Item, primary_eip: EIP | None) -> None:\n        \"\"\"Collect checklist markers from a test item.\"\"\"\n        for marker in item.iter_markers(\"eip_checklist\"):\n            if not marker.args:\n                pytest.fail(\n                    f\"eip_checklist marker on {item.nodeid} must have at least one argument \"\n                    \"(item_id)\"\n                )\n            additional_eips = marker.kwargs.get(\"eip\", [])\n            if not isinstance(additional_eips, list):\n                additional_eips = [additional_eips]\n\n            eips: List[EIP] = [primary_eip] if primary_eip else []\n\n            if additional_eips:\n                if any(not isinstance(eip, int) for eip in additional_eips):\n                    pytest.fail(\n                        \"EIP numbers must be integers. Found non-integer EIPs in \"\n                        f\"{item.nodeid}: {additional_eips}\"\n                    )\n                eips += [self.get_eip(eip) for eip in additional_eips]\n\n            for item_id in marker.args:\n                item_id = str(item_id)\n                covered_ids = resolve_id(item_id.strip())\n                if not covered_ids:\n                    logger.warning(\n                        f\"Item ID {item_id} not found in the checklist template, \"\n                        f\"for test {item.nodeid}\"\n                    )\n                    continue\n                for id_covered in covered_ids:\n                    for eip in eips:\n                        eip.add_covered_test(id_covered, item.nodeid)\n\n    @pytest.hookimpl(tryfirst=True)\n    def pytest_runtestloop(self, session: pytest.Session) -> bool:\n        \"\"\"Skip test execution, only generate checklists.\"\"\"\n        session.testscollected = 0\n        return True\n\n    def pytest_collection_modifyitems(\n        self, config: pytest.Config, items: List[pytest.Item]\n    ) -> None:\n        \"\"\"Collect checklist markers during test collection.\"\"\"\n        for item in items:\n            eip = self.get_eip_from_item(item)\n            if item.get_closest_marker(\"derived_test\") or item.get_closest_marker(\"skip\"):\n                continue\n            self.collect_from_item(item, eip)\n\n        # Check which mode we are in\n        checklist_doc_gen = config.getoption(\"checklist_doc_gen\", False)\n        checklist_output = config.getoption(\"checklist_output\", Path(\"checklists\"))\n        checklist_eips = config.getoption(\"checklist_eips\", [])\n\n        checklist_props = {}\n        # Generate a checklist for each EIP\n        for eip in self.eips.values():\n            # Skip if specific EIPs were requested and this isn't one of them\n            if checklist_eips and eip.number not in checklist_eips:\n                continue\n\n            if checklist_doc_gen:\n                assert eip.path is not None\n                checklist_path = eip.path / \"checklist.md\"\n                checklist_props[checklist_path] = EipChecklistPageProps(\n                    title=f\"EIP-{eip.number} Test Checklist\",\n                    source_code_url=\"\",\n                    target_or_valid_fork=\"mainnet\",\n                    path=checklist_path,\n                    pytest_node_id=\"\",\n                    package_name=\"checklist\",\n                    eip=eip.number,\n                    lines=eip.generate_filled_checklist_lines(),\n                )\n            else:\n                checklist_path = eip.generate_filled_checklist(checklist_output)\n                print(f\"\\nGenerated EIP-{eip.number} checklist: {checklist_path}\")\n\n        if checklist_doc_gen:\n            config.checklist_props = checklist_props  # type: ignore\n"
  },
  {
    "path": "src/pytest_plugins/filler/filler.py",
    "content": "\"\"\"\nTop-level pytest configuration file providing:\n- Command-line options,\n- Test-fixtures that can be used by all test cases,\nand that modifies pytest hooks in order to fill test specs for all tests\nand writes the generated fixtures to file.\n\"\"\"\n\nimport configparser\nimport datetime\nimport json\nimport os\nimport warnings\nfrom dataclasses import dataclass, field\nfrom pathlib import Path\nfrom typing import Any, Dict, Generator, List, Self, Set, Type\n\nimport pytest\nimport xdist\nfrom _pytest.compat import NotSetType\nfrom _pytest.terminal import TerminalReporter\nfrom filelock import FileLock\nfrom pytest_metadata.plugin import metadata_key\n\nfrom cli.gen_index import generate_fixtures_index\nfrom ethereum_clis import TransitionTool\nfrom ethereum_clis.clis.geth import FixtureConsumerTool\nfrom ethereum_test_base_types import Account, Address, Alloc, ReferenceSpec\nfrom ethereum_test_fixtures import (\n    BaseFixture,\n    FixtureCollector,\n    FixtureConsumer,\n    FixtureFillingPhase,\n    LabeledFixtureFormat,\n    PreAllocGroup,\n    PreAllocGroups,\n    TestInfo,\n)\nfrom ethereum_test_forks import Fork, get_transition_fork_predecessor, get_transition_forks\nfrom ethereum_test_specs import BaseTest\nfrom ethereum_test_specs.base import OpMode\nfrom ethereum_test_tools.utility.versioning import (\n    generate_github_url,\n    get_current_commit_hash_or_tag,\n)\nfrom ethereum_test_types import EnvironmentDefaults\n\nfrom ..shared.execute_fill import ALL_FIXTURE_PARAMETERS\nfrom ..shared.helpers import (\n    get_spec_format_for_item,\n    is_help_or_collectonly_mode,\n    labeled_format_parameter_set,\n)\nfrom ..spec_version_checker.spec_version_checker import get_ref_spec_from_module\nfrom .fixture_output import FixtureOutput\n\n\ndef print_migration_warning(terminalreporter: Any = None) -> None:\n    \"\"\"Print migration warning about repository merge.\"\"\"\n    lines = [\n        \"\",\n        \"=\" * 80,\n        \"⚠️  IMPORTANT: Repository Migration in Progress - 'The Weld' ⚠️\",\n        \"=\" * 80,\n        \"\",\n        \"This repository is being merged into ethereum/execution-specs (EELS) during the\",\n        \"week of October 20-24, 2025.\",\n        \"\",\n        \"📅 Timeline:\",\n        \"  • Week of Oct 13-17: Closing PRs, porting issues to EELS\",\n        \"  • Week of Oct 20-24: Migration week - fixing CI and fixture building\",\n        \"  • Oct 24 (ETA): Weld finalized - all development moves to EELS\",\n        \"\",\n        \"👉 What This Means:\",\n        \"  • Test Contributors: After Oct 24, reopen draft PRs in ethereum/execution-specs\",\n        \"  • All future test development happens in EELS after completion\",\n        \"  • Fixture releases continue as usual during transition\",\n        \"\",\n        \"For details: https://steel.ethereum.foundation/blog/2025-09-11_weld-announcement/\",\n        \"=\" * 80,\n        \"\",\n    ]\n\n    if terminalreporter:\n        for line in lines:\n            if \"⚠️\" in line or \"IMPORTANT\" in line:\n                terminalreporter.write_line(line, bold=True, yellow=True)\n            elif line.startswith(\"=\"):\n                terminalreporter.write_line(line, yellow=True)\n            else:\n                terminalreporter.write_line(line)\n    else:\n        for line in lines:\n            print(line)\n\n\n@dataclass(kw_only=True)\nclass PhaseManager:\n    \"\"\"\n    Manages the execution phase for fixture generation.\n\n    The filler plugin supports two-phase execution for pre-allocation group\n    generation:\n    - Phase 1: Generate pre-allocation groups (pytest run with\n        --generate-pre-alloc-groups).\n\n    - Phase 2: Fill fixtures using pre-allocation\n        groups (pytest run with --use-pre-alloc-groups).\n\n    Note: These are separate pytest runs orchestrated by the CLI wrapper. Each\n    run gets a fresh PhaseManager instance (no persistence between phases).\n    \"\"\"\n\n    current_phase: FixtureFillingPhase\n    previous_phases: Set[FixtureFillingPhase] = field(default_factory=set)\n\n    @classmethod\n    def from_config(cls, config: pytest.Config) -> \"Self\":\n        \"\"\"\n        Create a PhaseManager from pytest configuration.\n\n        Flag logic:\n        - use_pre_alloc_groups: We're in phase 2 (FILL) after phase\n                                1 (PRE_ALLOC_GENERATION).\n        - generate_pre_alloc_groups or generate_all_formats:\n                                We're in phase 1 (PRE_ALLOC_GENERATION). -\n        Otherwise: Normal single-phase filling (FILL).\n\n        Note: generate_all_formats triggers PRE_ALLOC_GENERATION because the\n        CLI passes it to phase 1 to ensure all formats are considered for\n        grouping.\n        \"\"\"\n        generate_pre_alloc = config.getoption(\"generate_pre_alloc_groups\", False)\n        use_pre_alloc = config.getoption(\"use_pre_alloc_groups\", False)\n        generate_all = config.getoption(\"generate_all_formats\", False)\n\n        if use_pre_alloc:\n            # Phase 2: Using pre-generated groups\n            return cls(\n                current_phase=FixtureFillingPhase.FILL,\n                previous_phases={FixtureFillingPhase.PRE_ALLOC_GENERATION},\n            )\n        elif generate_pre_alloc or generate_all:\n            # Phase 1: Generating pre-allocation groups\n            return cls(current_phase=FixtureFillingPhase.PRE_ALLOC_GENERATION)\n        else:\n            # Normal single-phase filling\n            return cls(current_phase=FixtureFillingPhase.FILL)\n\n    @property\n    def is_pre_alloc_generation(self) -> bool:\n        \"\"\"Check if we're in the pre-allocation generation phase.\"\"\"\n        return self.current_phase == FixtureFillingPhase.PRE_ALLOC_GENERATION\n\n    @property\n    def is_fill_after_pre_alloc(self) -> bool:\n        \"\"\"Check if we're filling after pre-allocation generation.\"\"\"\n        return (\n            self.current_phase == FixtureFillingPhase.FILL\n            and FixtureFillingPhase.PRE_ALLOC_GENERATION in self.previous_phases\n        )\n\n    @property\n    def is_single_phase_fill(self) -> bool:\n        \"\"\"Check if we're in single-phase fill mode (no pre-allocation).\"\"\"\n        return (\n            self.current_phase == FixtureFillingPhase.FILL\n            and FixtureFillingPhase.PRE_ALLOC_GENERATION not in self.previous_phases\n        )\n\n\n@dataclass(kw_only=True)\nclass FormatSelector:\n    \"\"\"\n    Handles fixture format selection based on the current phase and format\n    capabilities.\n\n    This class encapsulates the complex logic for determining which fixture\n    formats should be generated in each phase of the two-phase execution model.\n    \"\"\"\n\n    phase_manager: PhaseManager\n    generate_all_formats: bool\n\n    def should_generate(self, fixture_format: Type[BaseFixture] | LabeledFixtureFormat) -> bool:\n        \"\"\"\n        Determine if a fixture format should be generated in the current phase.\n\n        Args:\n            fixture_format: The fixture format to check (may be wrapped in\n                LabeledFixtureFormat).\n\n        Returns:\n            True if the format should be generated in the current phase.\n\n        \"\"\"\n        format_phases = fixture_format.format_phases\n\n        if self.phase_manager.is_pre_alloc_generation:\n            return self._should_generate_pre_alloc(format_phases)\n        else:  # FILL phase\n            return self._should_generate_fill(format_phases)\n\n    def _should_generate_pre_alloc(self, format_phases: Set[FixtureFillingPhase]) -> bool:\n        \"\"\"\n        Determine if format should be generated during pre-alloc generation\n        phase.\n        \"\"\"\n        # Only generate formats that need pre-allocation groups\n        return FixtureFillingPhase.PRE_ALLOC_GENERATION in format_phases\n\n    def _should_generate_fill(self, format_phases: Set[FixtureFillingPhase]) -> bool:\n        \"\"\"Determine if format should be generated during fill phase.\"\"\"\n        if FixtureFillingPhase.PRE_ALLOC_GENERATION in self.phase_manager.previous_phases:\n            # Phase 2: After pre-alloc generation\n            if self.generate_all_formats:\n                # Generate all formats, including those that don't need pre-\n                # alloc\n                return True\n            else:\n                # Only generate formats that needed pre-alloc groups\n                return FixtureFillingPhase.PRE_ALLOC_GENERATION in format_phases\n        else:\n            # Single phase: Only generate fill-only formats\n            return format_phases == {FixtureFillingPhase.FILL}\n\n\n@dataclass(kw_only=True)\nclass FillingSession:\n    \"\"\"\n    Manages all state for a single pytest fill session.\n\n    This class serves as the single source of truth for all filler state\n    management, including phase management, format selection, and\n    pre-allocation groups.\n\n    Important: Each pytest run gets a fresh FillingSession instance. There is\n    no persistence between phase 1 (generate pre-alloc) and phase 2 (use\n    pre-alloc) except through file I/O.\n    \"\"\"\n\n    fixture_output: FixtureOutput\n    phase_manager: PhaseManager\n    format_selector: FormatSelector\n    pre_alloc_groups: PreAllocGroups | None\n\n    @classmethod\n    def from_config(cls, config: pytest.Config) -> \"Self\":\n        \"\"\"\n        Initialize a filling session from pytest configuration.\n\n        Args:\n            config: The pytest configuration object.\n\n        \"\"\"\n        phase_manager = PhaseManager.from_config(config)\n        instance = cls(\n            fixture_output=FixtureOutput.from_config(config),\n            phase_manager=phase_manager,\n            format_selector=FormatSelector(\n                phase_manager=phase_manager,\n                generate_all_formats=config.getoption(\"generate_all_formats\", False),\n            ),\n            pre_alloc_groups=None,\n        )\n\n        # Initialize pre-alloc groups based on phase\n        instance._initialize_pre_alloc_groups()\n        return instance\n\n    def _initialize_pre_alloc_groups(self) -> None:\n        \"\"\"Initialize pre-allocation groups based on the current phase.\"\"\"\n        if self.phase_manager.is_pre_alloc_generation:\n            # Phase 1: Create empty container for collecting groups\n            self.pre_alloc_groups = PreAllocGroups(root={})\n        elif self.phase_manager.is_fill_after_pre_alloc:\n            # Phase 2: Load pre-alloc groups from disk\n            self._load_pre_alloc_groups_from_folder()\n\n    def _load_pre_alloc_groups_from_folder(self) -> None:\n        \"\"\"Load pre-allocation groups from the output folder.\"\"\"\n        pre_alloc_folder = self.fixture_output.pre_alloc_groups_folder_path\n        if pre_alloc_folder.exists():\n            self.pre_alloc_groups = PreAllocGroups.from_folder(pre_alloc_folder, lazy_load=True)\n        else:\n            raise FileNotFoundError(\n                f\"Pre-allocation groups folder not found: {pre_alloc_folder}. \"\n                \"Run phase 1 with --generate-pre-alloc-groups first.\"\n            )\n\n    def should_generate_format(\n        self, fixture_format: Type[BaseFixture] | LabeledFixtureFormat\n    ) -> bool:\n        \"\"\"\n        Determine if a fixture format should be generated in the current\n        session.\n\n        Args:\n            fixture_format: The fixture format to check.\n\n        Returns:\n            True if the format should be generated.\n\n        \"\"\"\n        return self.format_selector.should_generate(fixture_format)\n\n    def get_pre_alloc_group(self, hash_key: str) -> PreAllocGroup:\n        \"\"\"\n        Get a pre-allocation group by hash.\n\n        Args:\n            hash_key: The hash of the pre-alloc group.\n\n        Returns:\n            The pre-allocation group.\n\n        Raises:\n            ValueError: If pre-alloc groups not initialized or hash not found.\n\n        \"\"\"\n        if self.pre_alloc_groups is None:\n            raise ValueError(\"Pre-allocation groups not initialized\")\n\n        if hash_key not in self.pre_alloc_groups:\n            pre_alloc_path = self.fixture_output.pre_alloc_groups_folder_path / hash_key\n            raise ValueError(\n                f\"Pre-allocation hash {hash_key} not found in pre-allocation groups. \"\n                f\"Please check the pre-allocation groups file at: {pre_alloc_path}. \"\n                \"Make sure phase 1 (--generate-pre-alloc-groups) was run before phase 2.\"\n            )\n\n        return self.pre_alloc_groups[hash_key]\n\n    def update_pre_alloc_group(self, hash_key: str, group: PreAllocGroup) -> None:\n        \"\"\"\n        Update or add a pre-allocation group.\n\n        Args:\n            hash_key: The hash of the pre-alloc group.\n            group: The pre-allocation group.\n\n        Raises:\n            ValueError: If not in pre-alloc generation phase.\n\n        \"\"\"\n        if not self.phase_manager.is_pre_alloc_generation:\n            raise ValueError(\"Can only update pre-alloc groups in generation phase\")\n\n        if self.pre_alloc_groups is None:\n            self.pre_alloc_groups = PreAllocGroups(root={})\n\n        self.pre_alloc_groups[hash_key] = group\n\n    def save_pre_alloc_groups(self) -> None:\n        \"\"\"Save pre-allocation groups to disk.\"\"\"\n        if self.pre_alloc_groups is None:\n            return\n\n        pre_alloc_folder = self.fixture_output.pre_alloc_groups_folder_path\n        pre_alloc_folder.mkdir(parents=True, exist_ok=True)\n        self.pre_alloc_groups.to_folder(pre_alloc_folder)\n\n    def aggregate_pre_alloc_groups(self, worker_groups: PreAllocGroups) -> None:\n        \"\"\"\n        Aggregate pre-alloc groups from a worker process (xdist support).\n\n        Args:\n            worker_groups: Pre-alloc groups from a worker process.\n\n        \"\"\"\n        if self.pre_alloc_groups is None:\n            self.pre_alloc_groups = PreAllocGroups(root={})\n\n        for hash_key, group in worker_groups.items():\n            if hash_key in self.pre_alloc_groups:\n                # Merge if exists (should not happen in practice)\n                existing = self.pre_alloc_groups[hash_key]\n                if existing.pre != group.pre:\n                    raise ValueError(\n                        f\"Conflicting pre-alloc groups for hash {hash_key}: \"\n                        f\"existing={self.pre_alloc_groups[hash_key].pre}, new={group.pre}\"\n                    )\n            else:\n                self.pre_alloc_groups[hash_key] = group\n\n\ndef calculate_post_state_diff(post_state: Alloc, genesis_state: Alloc) -> Alloc:\n    \"\"\"\n    Calculate the state difference between post_state and genesis_state.\n\n    This function enables significant space savings in Engine X fixtures by\n    storing only the accounts that changed during test execution, rather than\n    the full post-state which may contain thousands of unchanged accounts.\n\n    Returns an Alloc containing only the accounts that:\n    - Changed between genesis and post state (balance, nonce, storage, code)\n    - Were created during test execution (new accounts)\n    - Were deleted during test execution (represented as None)\n\n    Args:\n        post_state: Final state after test execution\n        genesis_state: Genesis pre-allocation state\n\n    Returns:\n        Alloc containing only the state differences for efficient storage\n\n    \"\"\"\n    diff: Dict[Address, Account | None] = {}\n\n    # Find all addresses that exist in either state\n    all_addresses = set(post_state.root.keys()) | set(genesis_state.root.keys())\n\n    for address in all_addresses:\n        genesis_account = genesis_state.root.get(address)\n        post_account = post_state.root.get(address)\n\n        # Account was deleted (exists in genesis but not in post)\n        if genesis_account is not None and post_account is None:\n            diff[address] = None\n\n        # Account was created (doesn't exist in genesis but exists in post)\n        elif genesis_account is None and post_account is not None:\n            diff[address] = post_account\n\n        # Account was modified (exists in both but different)\n        elif genesis_account != post_account:\n            diff[address] = post_account\n\n        # Account unchanged - don't include in diff\n\n    return Alloc(diff)\n\n\ndef default_output_directory() -> str:\n    \"\"\"\n    Directory (default) to store the generated test fixtures. Defined as a\n    function to allow for easier testing.\n    \"\"\"\n    return \"./fixtures\"\n\n\ndef default_html_report_file_path() -> str:\n    \"\"\"\n    File path (default) to store the generated HTML test report. Defined as a\n    function to allow for easier testing.\n    \"\"\"\n    return \".meta/report_fill.html\"\n\n\ndef pytest_addoption(parser: pytest.Parser) -> None:\n    \"\"\"Add command-line options to pytest.\"\"\"\n    evm_group = parser.getgroup(\"evm\", \"Arguments defining evm executable behavior\")\n    evm_group.addoption(\n        \"--evm-bin\",\n        action=\"store\",\n        dest=\"evm_bin\",\n        type=Path,\n        default=None,\n        help=(\n            \"Path to an evm executable (or name of an executable in the PATH) that provides `t8n`.\"\n            \" Default: `ethereum-spec-evm-resolver`.\"\n        ),\n    )\n    evm_group.addoption(\n        \"--t8n-server-url\",\n        action=\"store\",\n        dest=\"t8n_server_url\",\n        type=str,\n        default=None,\n        help=(\n            \"[INTERNAL USE ONLY] URL of the t8n server to use. Used by framework tests/ci; not \"\n            \"intended for regular CLI use.\"\n        ),\n    )\n    evm_group.addoption(\n        \"--traces\",\n        action=\"store_true\",\n        dest=\"evm_collect_traces\",\n        default=None,\n        help=\"Collect traces of the execution information from the transition tool.\",\n    )\n    evm_group.addoption(\n        \"--verify-fixtures\",\n        action=\"store_true\",\n        dest=\"verify_fixtures\",\n        default=False,\n        help=(\n            \"Verify generated fixture JSON files using geth's evm blocktest command. \"\n            \"By default, the same evm binary as for the t8n tool is used. A different (geth) evm \"\n            \"binary may be specified via --verify-fixtures-bin, this must be specified if filling \"\n            \"with a non-geth t8n tool that does not support blocktest.\"\n        ),\n    )\n    evm_group.addoption(\n        \"--verify-fixtures-bin\",\n        action=\"store\",\n        dest=\"verify_fixtures_bin\",\n        type=Path,\n        default=None,\n        help=(\n            \"Path to an evm executable that provides the `blocktest` command. \"\n            \"Default: The first (geth) 'evm' entry in PATH.\"\n        ),\n    )\n\n    test_group = parser.getgroup(\"tests\", \"Arguments defining filler location and output\")\n    test_group.addoption(\n        \"--filler-path\",\n        action=\"store\",\n        dest=\"filler_path\",\n        default=\"./tests/\",\n        type=Path,\n        help=\"Path to filler directives\",\n    )\n    test_group.addoption(\n        \"--output\",\n        action=\"store\",\n        dest=\"output\",\n        type=Path,\n        default=Path(default_output_directory()),\n        help=(\n            \"Directory path to store the generated test fixtures. Must be empty if it exists. \"\n            \"If the specified path ends in '.tar.gz', then the specified tarball is additionally \"\n            \"created (the fixtures are still written to the specified path without the '.tar.gz' \"\n            f\"suffix). Tarball output automatically enables --generate-all-formats. \"\n            f\"Can be deleted. Default: '{default_output_directory()}'.\"\n        ),\n    )\n    test_group.addoption(\n        \"--clean\",\n        action=\"store_true\",\n        dest=\"clean\",\n        default=False,\n        help=\"Clean (remove) the output directory before filling fixtures.\",\n    )\n    test_group.addoption(\n        \"--single-fixture-per-file\",\n        action=\"store_true\",\n        dest=\"single_fixture_per_file\",\n        default=False,\n        help=(\n            \"Don't group fixtures in JSON files by test function; write each fixture to its own \"\n            \"file. This can be used to increase the granularity of --verify-fixtures.\"\n        ),\n    )\n    test_group.addoption(\n        \"--no-html\",\n        action=\"store_true\",\n        dest=\"disable_html\",\n        default=False,\n        help=(\n            \"Don't generate an HTML test report (in the output directory). \"\n            \"The --html flag can be used to specify a different path.\"\n        ),\n    )\n    test_group.addoption(\n        \"--build-name\",\n        action=\"store\",\n        dest=\"build_name\",\n        default=None,\n        type=str,\n        help=\"Specify a build name for the fixtures.ini file, e.g., 'stable'.\",\n    )\n    test_group.addoption(\n        \"--skip-index\",\n        action=\"store_false\",\n        dest=\"generate_index\",\n        default=True,\n        help=\"Skip generating an index file for all produced fixtures.\",\n    )\n    test_group.addoption(\n        \"--block-gas-limit\",\n        action=\"store\",\n        dest=\"block_gas_limit\",\n        default=EnvironmentDefaults.gas_limit,\n        type=int,\n        help=(\n            \"Default gas limit used ceiling used for blocks and tests that attempt to \"\n            f\"consume an entire block's gas. (Default: {EnvironmentDefaults.gas_limit})\"\n        ),\n    )\n    test_group.addoption(\n        \"--generate-pre-alloc-groups\",\n        action=\"store_true\",\n        dest=\"generate_pre_alloc_groups\",\n        default=False,\n        help=\"Generate pre-allocation groups (phase 1 only).\",\n    )\n    test_group.addoption(\n        \"--use-pre-alloc-groups\",\n        action=\"store_true\",\n        dest=\"use_pre_alloc_groups\",\n        default=False,\n        help=\"Fill tests using existing pre-allocation groups (phase 2 only).\",\n    )\n    test_group.addoption(\n        \"--generate-all-formats\",\n        action=\"store_true\",\n        dest=\"generate_all_formats\",\n        default=False,\n        help=(\n            \"Generate all fixture formats including BlockchainEngineXFixture. \"\n            \"This enables two-phase execution: Phase 1 generates pre-allocation groups, \"\n            \"phase 2 generates all supported fixture formats.\"\n        ),\n    )\n\n    optimize_gas_group = parser.getgroup(\n        \"optimize gas\",\n        \"Arguments defining test gas optimization behavior.\",\n    )\n    optimize_gas_group.addoption(\n        \"--optimize-gas\",\n        action=\"store_true\",\n        dest=\"optimize_gas\",\n        default=False,\n        help=(\n            \"Attempt to optimize the gas used in every transaction for the filled tests, \"\n            \"then print the minimum amount of gas at which the test still produces a correct \"\n            \"post state and the exact same trace.\"\n        ),\n    )\n    optimize_gas_group.addoption(\n        \"--optimize-gas-output\",\n        action=\"store\",\n        dest=\"optimize_gas_output\",\n        default=Path(\"optimize-gas-output.json\"),\n        type=Path,\n        help=(\n            \"Path to the JSON file that is output to the gas optimization. \"\n            \"Requires `--optimize-gas`.\"\n        ),\n    )\n    optimize_gas_group.addoption(\n        \"--optimize-gas-max-gas-limit\",\n        action=\"store\",\n        dest=\"optimize_gas_max_gas_limit\",\n        default=None,\n        type=int,\n        help=(\n            \"Maximum gas limit for gas optimization, if reached the search will stop and \"\n            \"fail for that given test. Requires `--optimize-gas`.\"\n        ),\n    )\n    optimize_gas_group.addoption(\n        \"--optimize-gas-post-processing\",\n        action=\"store_true\",\n        dest=\"optimize_gas_post_processing\",\n        default=False,\n        help=(\n            \"Post process the traces during gas optimization in order to Account for \"\n            \"opcodes that put the current gas in the stack, in order to remove \"\n            \"remaining-gas from the comparison.\"\n        ),\n    )\n\n    debug_group = parser.getgroup(\"debug\", \"Arguments defining debug behavior\")\n    debug_group.addoption(\n        \"--evm-dump-dir\",\n        \"--t8n-dump-dir\",\n        action=\"store\",\n        dest=\"base_dump_dir\",\n        default=None,\n        help=(\n            \"Path to dump the transition tool debug output. \"\n            \"Only creates debug output when explicitly specified.\"\n        ),\n    )\n\n\n@pytest.hookimpl(tryfirst=True)\ndef pytest_configure(config: pytest.Config) -> None:\n    \"\"\"\n    Pytest hook called after command line options have been parsed and before\n    test collection begins.\n\n    Couple of notes:\n    1. Register the plugin's custom markers and process command-line options.\n\n       Custom marker registration:\n       https://docs.pytest.org/en/7.1.x/how-to/writing_plugins.html#registering-custom-markers\n\n    2. `@pytest.hookimpl(tryfirst=True)` is applied to ensure that this hook is\n       called before the pytest-html plugin's pytest_configure to ensure that\n       it uses the modified `htmlpath` option.\n    \"\"\"\n    if not is_help_or_collectonly_mode(config):\n        print_migration_warning()\n    # Register custom markers\n    # Modify the block gas limit if specified.\n    if config.getoption(\"block_gas_limit\"):\n        EnvironmentDefaults.gas_limit = config.getoption(\"block_gas_limit\")\n\n    # Initialize fixture output configuration\n    config.fixture_output = FixtureOutput.from_config(  # type: ignore[attr-defined]\n        config\n    )\n\n    # Initialize filling session\n    config.filling_session = FillingSession.from_config(  # type: ignore[attr-defined]\n        config\n    )\n\n    if is_help_or_collectonly_mode(config):\n        return\n\n    try:\n        # Check whether the directory exists and is not empty; if --clean is\n        # set, it will delete it\n        config.fixture_output.create_directories(  # type: ignore[attr-defined]\n            is_master=not hasattr(config, \"workerinput\")\n        )\n    except ValueError as e:\n        pytest.exit(str(e), returncode=pytest.ExitCode.USAGE_ERROR)\n\n    if (\n        not config.getoption(\"disable_html\")\n        and config.getoption(\"htmlpath\") is None\n        and config.filling_session.phase_manager.current_phase  # type: ignore[attr-defined]\n        != FixtureFillingPhase.PRE_ALLOC_GENERATION\n    ):\n        config.option.htmlpath = (\n            config.fixture_output.directory  # type: ignore[attr-defined]\n            / default_html_report_file_path()\n        )\n\n    config.gas_optimized_tests = {}  # type: ignore[attr-defined]\n    if config.getoption(\"optimize_gas\", False):\n        if config.getoption(\"optimize_gas_post_processing\"):\n            config.op_mode = (  # type: ignore[attr-defined]\n                OpMode.OPTIMIZE_GAS_POST_PROCESSING\n            )\n        else:\n            config.op_mode = OpMode.OPTIMIZE_GAS  # type: ignore[attr-defined]\n\n    config.collect_traces = (  # type: ignore[attr-defined]\n        config.getoption(\"evm_collect_traces\") or config.getoption(\"optimize_gas\", False)\n    )\n\n    # Instantiate the transition tool here to check that the binary path/trace\n    # option is valid. This ensures we only raise an error once, if\n    # appropriate, instead of for every test.\n    evm_bin = config.getoption(\"evm_bin\")\n    trace = config.getoption(\"evm_collect_traces\")\n    t8n_server_url = config.getoption(\"t8n_server_url\")\n    kwargs = {\n        \"trace\": trace,\n    }\n    if t8n_server_url is not None:\n        kwargs[\"server_url\"] = t8n_server_url\n    if evm_bin is None:\n        assert TransitionTool.default_tool is not None, \"No default transition tool found\"\n        t8n = TransitionTool.default_tool(**kwargs)\n    else:\n        t8n = TransitionTool.from_binary_path(binary_path=evm_bin, **kwargs)\n\n    if (\n        isinstance(config.getoption(\"numprocesses\"), int)\n        and config.getoption(\"numprocesses\") > 0\n        and not t8n.supports_xdist\n    ):\n        pytest.exit(\n            f\"The {t8n.__class__.__name__} t8n tool does not work well with the xdist plugin;\"\n            \"use -n=0.\",\n            returncode=pytest.ExitCode.USAGE_ERROR,\n        )\n    config.t8n = t8n  # type: ignore[attr-defined]\n\n    if \"Tools\" not in config.stash[metadata_key]:\n        config.stash[metadata_key][\"Tools\"] = {\n            \"t8n\": t8n.version(),\n        }\n    else:\n        config.stash[metadata_key][\"Tools\"][\"t8n\"] = t8n.version()\n\n    args = [\"fill\"] + [str(arg) for arg in config.invocation_params.args]\n    for i in range(len(args)):\n        if \" \" in args[i]:\n            args[i] = f'\"{args[i]}\"'\n    command_line_args = \" \".join(args)\n    config.stash[metadata_key][\"Command-line args\"] = f\"<code>{command_line_args}</code>\"\n\n\n@pytest.hookimpl(trylast=True)\ndef pytest_report_header(config: pytest.Config) -> List[str]:\n    \"\"\"Add lines to pytest's console output header.\"\"\"\n    if is_help_or_collectonly_mode(config):\n        return []\n    t8n_version = config.stash[metadata_key][\"Tools\"][\"t8n\"]\n    return [(f\"{t8n_version}\")]\n\n\n@pytest.hookimpl(tryfirst=True)\ndef pytest_report_teststatus(report: Any, config: pytest.Config) -> tuple[str, str, str] | None:\n    \"\"\"\n    Modify test results in pytest's terminal output.\n\n    We use this:\n\n    1. To disable test session progress report if we're writing the JSON\n    fixtures to stdout to be read by a consume command on stdin. I.e., don't\n    write this type of output to the console:\n    ```text\n    ...x...\n    ```\n    \"\"\"\n    if config.fixture_output.is_stdout:  # type: ignore[attr-defined]\n        return report.outcome, \"\", report.outcome.upper()\n    return None\n\n\n@pytest.hookimpl(hookwrapper=True, trylast=True)\ndef pytest_terminal_summary(\n    terminalreporter: TerminalReporter,\n    exitstatus: int,\n    config: pytest.Config,\n) -> Generator[None, None, None]:\n    \"\"\"\n    Modify pytest's terminal summary to emphasize that no tests were ran.\n\n    Emphasize that fixtures have only been filled; they must now be executed to\n    actually run the tests.\n    \"\"\"\n    del exitstatus\n\n    yield\n    if config.fixture_output.is_stdout or hasattr(config, \"workerinput\"):  # type: ignore[attr-defined]\n        return\n    print_migration_warning(terminalreporter)\n    stats = terminalreporter.stats\n    if \"passed\" in stats and stats[\"passed\"]:\n        # Custom message for Phase 1 (pre-allocation group generation)\n        session_instance: FillingSession = config.filling_session  # type: ignore[attr-defined]\n        if session_instance.phase_manager.is_pre_alloc_generation:\n            # Generate summary stats\n            pre_alloc_groups: PreAllocGroups\n            if config.pluginmanager.hasplugin(\"xdist\"):\n                # Load pre-allocation groups from disk\n                pre_alloc_groups = PreAllocGroups.from_folder(\n                    config.fixture_output.pre_alloc_groups_folder_path,  # type: ignore[attr-defined]\n                    lazy_load=False,\n                )\n            else:\n                assert session_instance.pre_alloc_groups is not None\n                pre_alloc_groups = session_instance.pre_alloc_groups\n\n            total_groups = len(pre_alloc_groups.root)\n            total_accounts = sum(group.pre_account_count for group in pre_alloc_groups.values())\n\n            terminalreporter.write_sep(\n                \"=\",\n                f\" Phase 1 Complete: Generated {total_groups} pre-allocation groups \"\n                f\"({total_accounts} total accounts) \",\n                bold=True,\n                green=True,\n            )\n\n        else:\n            # Normal message for fixture generation\n            # append / to indicate this is a directory\n            output_dir = str(config.fixture_output.directory) + \"/\"  # type: ignore[attr-defined]\n            terminalreporter.write_sep(\n                \"=\",\n                (\n                    f' No tests executed - the test fixtures in \"{output_dir}\" may now be '\n                    \"executed against a client \"\n                ),\n                bold=True,\n                yellow=True,\n            )\n\n\ndef pytest_metadata(metadata: Any) -> None:\n    \"\"\"Add or remove metadata to/from the pytest report.\"\"\"\n    metadata.pop(\"JAVA_HOME\", None)\n\n\ndef pytest_html_results_table_header(cells: Any) -> None:\n    \"\"\"Customize the table headers of the HTML report table.\"\"\"\n    cells.insert(3, '<th class=\"sortable\" data-column-type=\"fixturePath\">JSON Fixture File</th>')\n    cells.insert(4, '<th class=\"sortable\" data-column-type=\"evmDumpDir\">EVM Dump Dir</th>')\n    del cells[-1]  # Remove the \"Links\" column\n\n\ndef pytest_html_results_table_row(report: Any, cells: Any) -> None:\n    \"\"\"Customize the table rows of the HTML report table.\"\"\"\n    if hasattr(report, \"user_properties\"):\n        user_props = dict(report.user_properties)\n        if (\n            report.passed\n            and \"fixture_path_absolute\" in user_props\n            and \"fixture_path_relative\" in user_props\n        ):\n            fixture_path_absolute = user_props[\"fixture_path_absolute\"]\n            fixture_path_relative = user_props[\"fixture_path_relative\"]\n            fixture_path_link = (\n                f'<a href=\"{fixture_path_absolute}\" target=\"_blank\">{fixture_path_relative}</a>'\n            )\n            cells.insert(3, f\"<td>{fixture_path_link}</td>\")\n        elif report.failed:\n            cells.insert(3, \"<td>Fixture unavailable</td>\")\n        if \"evm_dump_dir\" in user_props:\n            if user_props[\"evm_dump_dir\"] is None:\n                cells.insert(\n                    4, \"<td>For t8n debug info use <code>--evm-dump-dir=path --traces</code></td>\"\n                )\n            else:\n                evm_dump_dir = user_props.get(\"evm_dump_dir\")\n                if evm_dump_dir == \"N/A\":\n                    evm_dump_entry = \"N/A\"\n                else:\n                    evm_dump_entry = f'<a href=\"{evm_dump_dir}\" target=\"_blank\">{evm_dump_dir}</a>'\n                cells.insert(4, f\"<td>{evm_dump_entry}</td>\")\n    del cells[-1]  # Remove the \"Links\" column\n\n\n@pytest.hookimpl(hookwrapper=True)\ndef pytest_runtest_makereport(item: Any, call: Any) -> Generator[None, None, None]:\n    \"\"\"\n    Make each test's fixture json path available to the test report via\n    user_properties.\n\n    This hook is called when each test is run and a report is being made.\n    \"\"\"\n    outcome = yield\n    report = outcome.get_result()  # type: ignore[attr-defined]\n\n    if call.when == \"call\":\n        if hasattr(item.config, \"fixture_path_absolute\") and hasattr(\n            item.config, \"fixture_path_relative\"\n        ):\n            report.user_properties.append(\n                (\"fixture_path_absolute\", item.config.fixture_path_absolute)\n            )\n            report.user_properties.append(\n                (\"fixture_path_relative\", item.config.fixture_path_relative)\n            )\n        if hasattr(item.config, \"evm_dump_dir\") and hasattr(item.config, \"fixture_format\"):\n            if item.config.fixture_format in [\n                \"state_test\",\n                \"blockchain_test\",\n                \"blockchain_test_engine\",\n                \"blockchain_test_sync\",\n            ]:\n                report.user_properties.append((\"evm_dump_dir\", item.config.evm_dump_dir))\n            else:\n                # not yet for EOF\n                report.user_properties.append((\"evm_dump_dir\", \"N/A\"))\n\n\ndef pytest_html_report_title(report: Any) -> None:\n    \"\"\"Set the HTML report title (pytest-html plugin).\"\"\"\n    report.title = \"Fill Test Report\"\n\n\n@pytest.fixture(autouse=True, scope=\"session\")\ndef evm_bin(request: pytest.FixtureRequest) -> Path | None:\n    \"\"\"Return configured evm tool binary path used to run t8n.\"\"\"\n    return request.config.getoption(\"evm_bin\")\n\n\n@pytest.fixture(autouse=True, scope=\"session\")\ndef verify_fixtures_bin(request: pytest.FixtureRequest) -> Path | None:\n    \"\"\"\n    Return configured evm tool binary path used to run statetest or blocktest.\n    \"\"\"\n    return request.config.getoption(\"verify_fixtures_bin\")\n\n\n@pytest.fixture(autouse=True, scope=\"session\")\ndef t8n(request: pytest.FixtureRequest) -> Generator[TransitionTool, None, None]:\n    \"\"\"Return configured transition tool.\"\"\"\n    t8n: TransitionTool = request.config.t8n  # type: ignore\n    if not t8n.exception_mapper.reliable:\n        warnings.warn(\n            f\"The t8n tool that is currently being used to fill tests ({t8n.__class__.__name__}) \"\n            \"does not provide reliable exception messages. This may lead to false positives when \"\n            \"writing tests and extra care should be taken when writing tests that produce \"\n            \"exceptions.\",\n            stacklevel=2,\n        )\n    yield t8n\n    t8n.shutdown()\n\n\n@pytest.fixture(scope=\"session\")\ndef do_fixture_verification(\n    request: pytest.FixtureRequest, verify_fixtures_bin: Path | None\n) -> bool:\n    \"\"\"\n    Return True if evm statetest or evm blocktest should be ran on the\n    generated fixture JSON files.\n    \"\"\"\n    do_fixture_verification = False\n    if verify_fixtures_bin:\n        do_fixture_verification = True\n    if request.config.getoption(\"verify_fixtures\"):\n        do_fixture_verification = True\n    return do_fixture_verification\n\n\n@pytest.fixture(autouse=True, scope=\"session\")\ndef evm_fixture_verification(\n    request: pytest.FixtureRequest,\n    do_fixture_verification: bool,\n    evm_bin: Path | None,\n    verify_fixtures_bin: Path | None,\n) -> Generator[FixtureConsumer | None, None, None]:\n    \"\"\"\n    Return configured evm binary for executing statetest and blocktest commands\n    used to verify generated JSON fixtures.\n    \"\"\"\n    if not do_fixture_verification:\n        yield None\n        return\n    reused_evm_bin = False\n    if not verify_fixtures_bin and evm_bin:\n        verify_fixtures_bin = evm_bin\n        reused_evm_bin = True\n    if not verify_fixtures_bin:\n        return\n    try:\n        evm_fixture_verification = FixtureConsumerTool.from_binary_path(\n            binary_path=Path(verify_fixtures_bin),\n            trace=request.config.collect_traces,  # type: ignore[attr-defined]\n        )\n    except Exception:\n        if reused_evm_bin:\n            pytest.exit(\n                \"The binary specified in --evm-bin could not be recognized as a known \"\n                \"FixtureConsumerTool. Either remove --verify-fixtures or set \"\n                \"--verify-fixtures-bin to a known fixture consumer binary.\",\n                returncode=pytest.ExitCode.USAGE_ERROR,\n            )\n        else:\n            pytest.exit(\n                \"Specified binary in --verify-fixtures-bin could not be recognized as a known \"\n                \"FixtureConsumerTool. Please see `GethFixtureConsumer` for an example \"\n                \"of how a new fixture consumer can be defined.\",\n                returncode=pytest.ExitCode.USAGE_ERROR,\n            )\n    yield evm_fixture_verification\n\n\n@pytest.fixture(scope=\"session\")\ndef base_dump_dir(request: pytest.FixtureRequest) -> Path | None:\n    \"\"\"Path to base directory to dump the evm debug output.\"\"\"\n    base_dump_dir_str = request.config.getoption(\"base_dump_dir\")\n    if base_dump_dir_str:\n        return Path(base_dump_dir_str)\n    return None\n\n\n@pytest.fixture(scope=\"session\")\ndef fixture_output(request: pytest.FixtureRequest) -> FixtureOutput:\n    \"\"\"Return the fixture output configuration.\"\"\"\n    return request.config.fixture_output  # type: ignore[attr-defined]\n\n\n@pytest.fixture(scope=\"session\")\ndef is_output_tarball(fixture_output: FixtureOutput) -> bool:\n    \"\"\"Return True if the output directory is a tarball.\"\"\"\n    return fixture_output.is_tarball\n\n\n@pytest.fixture(scope=\"session\")\ndef output_dir(fixture_output: FixtureOutput) -> Path:\n    \"\"\"Return directory to store the generated test fixtures.\"\"\"\n    return fixture_output.directory\n\n\n@pytest.fixture(scope=\"session\", autouse=True)\ndef create_properties_file(request: pytest.FixtureRequest, fixture_output: FixtureOutput) -> None:\n    \"\"\"\n    Create ini file with fixture build properties in the fixture output\n    directory.\n    \"\"\"\n    if fixture_output.is_stdout:\n        return\n\n    fixture_properties = {\n        \"timestamp\": datetime.datetime.now().isoformat(),\n    }\n    if build_name := request.config.getoption(\"build_name\"):\n        fixture_properties[\"build\"] = build_name\n    if github_ref := os.getenv(\"GITHUB_REF\"):\n        fixture_properties[\"ref\"] = github_ref\n    if github_sha := os.getenv(\"GITHUB_SHA\"):\n        fixture_properties[\"commit\"] = github_sha\n    command_line_args = request.config.stash[metadata_key][\"Command-line args\"]\n    command_line_args = command_line_args.replace(\"<code>\", \"\").replace(\"</code>\", \"\")\n    fixture_properties[\"command_line_args\"] = command_line_args\n\n    config = configparser.ConfigParser(interpolation=None)\n    config[\"fixtures\"] = fixture_properties\n    environment_properties = {}\n    for key, val in request.config.stash[metadata_key].items():\n        if key.lower() == \"command-line args\":\n            continue\n        if key.lower() in [\"ci\", \"python\", \"platform\"]:\n            environment_properties[key] = val\n        elif isinstance(val, dict):\n            config[key.lower()] = val\n        else:\n            warnings.warn(\n                f\"Fixtures ini file: Skipping metadata key {key} with value {val}.\", stacklevel=2\n            )\n    config[\"environment\"] = environment_properties\n\n    ini_filename = fixture_output.metadata_dir / \"fixtures.ini\"\n    with open(ini_filename, \"w\") as f:\n        f.write(\"; This file describes fixture build properties\\n\\n\")\n        config.write(f)\n\n\n@pytest.fixture(scope=\"function\")\ndef dump_dir_parameter_level(\n    request: pytest.FixtureRequest, base_dump_dir: Path | None, filler_path: Path\n) -> Path | None:\n    \"\"\"\n    Directory to dump evm transition tool debug output on a test parameter\n    level.\n\n    Example with --evm-dump-dir=/tmp/evm: ->\n    /tmp/evm/shanghai__eip3855_push0__test_push0__test_push0_key_sstore/fork_shangh\n    ai/\n    \"\"\"\n    evm_dump_dir = node_to_test_info(request.node).get_dump_dir_path(\n        base_dump_dir,\n        filler_path,\n        level=\"test_parameter\",\n    )\n    # NOTE: Use str for compatibility with pytest-dist\n    if evm_dump_dir:\n        request.node.config.evm_dump_dir = str(evm_dump_dir)\n    else:\n        request.node.config.evm_dump_dir = None\n    return evm_dump_dir\n\n\ndef get_fixture_collection_scope(fixture_name: str, config: pytest.Config) -> str:\n    \"\"\"\n    Return the appropriate scope to write fixture JSON files.\n\n    See: https://docs.pytest.org/en/stable/how-to/fixtures.html#dynamic-scope\n    \"\"\"\n    del fixture_name\n\n    if config.fixture_output.is_stdout:  # type: ignore[attr-defined]\n        return \"session\"\n    if (\n        config.fixture_output.single_fixture_per_file  # type: ignore\n    ):\n        return \"function\"\n    return \"module\"\n\n\n@pytest.fixture(autouse=True, scope=\"module\")\ndef reference_spec(request: pytest.FixtureRequest) -> None | ReferenceSpec:\n    \"\"\"\n    Pytest fixture that returns the reference spec defined in a module.\n\n    See `get_ref_spec_from_module`.\n    \"\"\"\n    if hasattr(request, \"module\"):\n        return get_ref_spec_from_module(request.module)\n    return None\n\n\n@pytest.fixture(scope=get_fixture_collection_scope)  # type: ignore[arg-type]\ndef fixture_collector(\n    request: pytest.FixtureRequest,\n    do_fixture_verification: bool,\n    evm_fixture_verification: FixtureConsumer,\n    filler_path: Path,\n    base_dump_dir: Path | None,\n    fixture_output: FixtureOutput,\n) -> Generator[FixtureCollector, None, None]:\n    \"\"\"\n    Return configured fixture collector instance used for all tests in one test\n    module.\n    \"\"\"\n    # Dynamically load the 'static_filler' and 'solc' plugins if needed\n    if request.config.getoption(\"fill_static_tests_enabled\"):\n        request.config.pluginmanager.import_plugin(\"pytest_plugins.filler.static_filler\")\n        request.config.pluginmanager.import_plugin(\"pytest_plugins.solc.solc\")\n\n    fixture_collector = FixtureCollector(\n        output_dir=fixture_output.directory,\n        fill_static_tests=request.config.getoption(\"fill_static_tests_enabled\"),\n        single_fixture_per_file=fixture_output.single_fixture_per_file,\n        filler_path=filler_path,\n        base_dump_dir=base_dump_dir,\n    )\n    yield fixture_collector\n    fixture_collector.dump_fixtures()\n    if do_fixture_verification:\n        fixture_collector.verify_fixture_files(evm_fixture_verification)\n\n\n@pytest.fixture(autouse=True, scope=\"session\")\ndef filler_path(request: pytest.FixtureRequest) -> Path:\n    \"\"\"Return directory containing the tests to execute.\"\"\"\n    return request.config.getoption(\"filler_path\")\n\n\ndef node_to_test_info(node: pytest.Item) -> TestInfo:\n    \"\"\"Return test info of the current node item.\"\"\"\n    return TestInfo(\n        name=node.name,\n        id=node.nodeid,\n        original_name=node.originalname,  # type: ignore\n        module_path=Path(node.path),\n    )\n\n\n@pytest.fixture(scope=\"session\")\ndef commit_hash_or_tag() -> str:\n    \"\"\"Cache the git commit hash or tag for the entire test session.\"\"\"\n    return get_current_commit_hash_or_tag()\n\n\n@pytest.fixture(scope=\"function\")\ndef fixture_source_url(\n    request: pytest.FixtureRequest,\n    commit_hash_or_tag: str,\n) -> str:\n    \"\"\"Return URL to the fixture source.\"\"\"\n    if hasattr(request.node, \"github_url\"):\n        return request.node.github_url\n    function_line_number = request.function.__code__.co_firstlineno\n    module_relative_path = os.path.relpath(request.function.__code__.co_filename)\n\n    github_url = generate_github_url(\n        module_relative_path,\n        branch_or_commit_or_tag=commit_hash_or_tag,\n        line_number=function_line_number,\n    )\n    test_module_relative_path = os.path.relpath(request.module.__file__)\n    if module_relative_path != test_module_relative_path:\n        # This can be the case when the test function's body only contains pass\n        # and the entire test logic is implemented as a test generator from the\n        # framework.\n        test_module_github_url = generate_github_url(\n            test_module_relative_path,\n            branch_or_commit_or_tag=commit_hash_or_tag,\n        )\n        github_url += f\" called via `{request.node.originalname}()` in {test_module_github_url}\"\n    return github_url\n\n\ndef base_test_parametrizer(cls: Type[BaseTest]) -> Any:\n    \"\"\"\n    Generate pytest.fixture for a given BaseTest subclass.\n\n    Implementation detail: All spec fixtures must be scoped on test function\n    level to avoid leakage between tests.\n    \"\"\"\n    cls_fixture_parameters = [p for p in ALL_FIXTURE_PARAMETERS if p in cls.model_fields]\n\n    @pytest.fixture(\n        scope=\"function\",\n        name=cls.pytest_parameter_name(),\n    )\n    def base_test_parametrizer_func(\n        request: pytest.FixtureRequest,\n        t8n: TransitionTool,\n        fork: Fork,\n        reference_spec: ReferenceSpec,\n        pre: Alloc,\n        output_dir: Path,\n        dump_dir_parameter_level: Path | None,\n        fixture_collector: FixtureCollector,\n        test_case_description: str,\n        fixture_source_url: str,\n        gas_benchmark_value: int,\n        witness_generator: Any,\n    ) -> Any:\n        \"\"\"\n        Fixture used to instantiate an auto-fillable BaseTest object from\n        within a test function.\n\n        Every test that defines a test filler must explicitly specify its\n        parameter name (see `pytest_parameter_name` in each implementation of\n        BaseTest) in its function arguments.\n\n        When parametrize, indirect must be used along with the fixture format\n        as value.\n        \"\"\"\n        if hasattr(request.node, \"fixture_format\"):\n            fixture_format = request.node.fixture_format\n        else:\n            fixture_format = request.param\n        assert issubclass(fixture_format, BaseFixture)\n        if fork is None:\n            assert hasattr(request.node, \"fork\")\n            fork = request.node.fork\n\n        class BaseTestWrapper(cls):  # type: ignore\n            def __init__(self, *args: Any, **kwargs: Any) -> None:\n                kwargs[\"t8n_dump_dir\"] = dump_dir_parameter_level\n                if \"pre\" not in kwargs:\n                    kwargs[\"pre\"] = pre\n                if \"expected_benchmark_gas_used\" not in kwargs:\n                    kwargs[\"expected_benchmark_gas_used\"] = gas_benchmark_value\n                kwargs |= {\n                    p: request.getfixturevalue(p)\n                    for p in cls_fixture_parameters\n                    if p not in kwargs\n                }\n\n                super(BaseTestWrapper, self).__init__(*args, **kwargs)\n                self._request = request\n                self._operation_mode = (\n                    request.config.op_mode  # type: ignore[attr-defined]\n                )\n                if (\n                    self._operation_mode == OpMode.OPTIMIZE_GAS\n                    or self._operation_mode == OpMode.OPTIMIZE_GAS_POST_PROCESSING\n                ):\n                    self._gas_optimization_max_gas_limit = request.config.getoption(\n                        \"optimize_gas_max_gas_limit\", None\n                    )\n\n                # Get the filling session from config\n                session: FillingSession = request.config.filling_session  # type: ignore\n\n                # Phase 1: Generate pre-allocation groups\n                if session.phase_manager.is_pre_alloc_generation:\n                    # Use the original update_pre_alloc_groups method which\n                    # returns the groups\n                    self.update_pre_alloc_groups(\n                        session.pre_alloc_groups, fork, request.node.nodeid\n                    )\n                    return  # Skip fixture generation in phase 1\n\n                # Phase 2: Use pre-allocation groups (only for\n                # BlockchainEngineXFixture)\n                pre_alloc_hash = None\n                if FixtureFillingPhase.PRE_ALLOC_GENERATION in fixture_format.format_phases:\n                    pre_alloc_hash = self.compute_pre_alloc_group_hash(fork=fork)\n                    group = session.get_pre_alloc_group(pre_alloc_hash)\n                    self.pre = group.pre\n                try:\n                    fixture = self.generate(\n                        t8n=t8n,\n                        fork=fork,\n                        fixture_format=fixture_format,\n                    )\n                finally:\n                    if (\n                        request.config.op_mode  # type: ignore[attr-defined]\n                        == OpMode.OPTIMIZE_GAS\n                        or request.config.op_mode  # type: ignore[attr-defined]\n                        == OpMode.OPTIMIZE_GAS_POST_PROCESSING\n                    ):\n                        gas_optimized_tests = (\n                            request.config.gas_optimized_tests  # type: ignore\n                        )\n                        assert gas_optimized_tests is not None\n                        # Force adding something to the list, even if it's\n                        # None, to keep track of failed tests in the output\n                        # file.\n                        gas_optimized_tests[request.node.nodeid] = self._gas_optimization\n\n                # Post-process for Engine X format (add pre_hash and state\n                # diff)\n                if (\n                    FixtureFillingPhase.PRE_ALLOC_GENERATION in fixture_format.format_phases\n                    and pre_alloc_hash is not None\n                ):\n                    fixture.pre_hash = pre_alloc_hash\n\n                    # Calculate state diff for efficiency\n                    if hasattr(fixture, \"post_state\") and fixture.post_state is not None:\n                        group = session.get_pre_alloc_group(pre_alloc_hash)\n                        fixture.post_state_diff = calculate_post_state_diff(\n                            fixture.post_state, group.pre\n                        )\n\n                fixture.fill_info(\n                    t8n.version(),\n                    test_case_description,\n                    fixture_source_url=fixture_source_url,\n                    ref_spec=reference_spec,\n                    _info_metadata=t8n._info_metadata,\n                )\n\n                # Generate witness data if witness functionality is enabled via\n                # the witness plugin\n                if witness_generator is not None:\n                    witness_generator(fixture)\n\n                fixture_path = fixture_collector.add_fixture(\n                    node_to_test_info(request.node),\n                    fixture,\n                )\n\n                # NOTE: Use str for compatibility with pytest-dist\n                request.node.config.fixture_path_absolute = str(fixture_path.absolute())\n                request.node.config.fixture_path_relative = str(\n                    fixture_path.relative_to(output_dir)\n                )\n                request.node.config.fixture_format = fixture_format.format_name\n\n        return BaseTestWrapper\n\n    return base_test_parametrizer_func\n\n\n# Dynamically generate a pytest fixture for each test spec type.\nfor cls in BaseTest.spec_types.values():\n    # Fixture needs to be defined in the global scope so pytest can detect it.\n    globals()[cls.pytest_parameter_name()] = base_test_parametrizer(cls)\n\n\ndef pytest_generate_tests(metafunc: pytest.Metafunc) -> None:\n    \"\"\"\n    Pytest hook used to dynamically generate test cases for each fixture format\n    a given test spec supports.\n\n    NOTE: The static test filler does NOT use this hook. See\n    FillerFile.collect() in ./static_filler.py for more details.\n    \"\"\"\n    session: FillingSession = metafunc.config.filling_session  # type: ignore[attr-defined]\n    for test_type in BaseTest.spec_types.values():\n        if test_type.pytest_parameter_name() in metafunc.fixturenames:\n            parameters = []\n            for i, format_with_or_without_label in enumerate(test_type.supported_fixture_formats):\n                if not session.should_generate_format(format_with_or_without_label):\n                    continue\n                parameter = labeled_format_parameter_set(format_with_or_without_label)\n                if i > 0:\n                    parameter.marks.append(pytest.mark.derived_test)  # type: ignore\n                parameters.append(parameter)\n            metafunc.parametrize(\n                [test_type.pytest_parameter_name()],\n                parameters,\n                scope=\"function\",\n                indirect=True,\n            )\n\n\ndef pytest_collection_modifyitems(\n    config: pytest.Config, items: List[pytest.Item | pytest.Function]\n) -> None:\n    \"\"\"\n    Remove pre-Paris tests parametrized to generate hive type fixtures; these\n    can't be used in the Hive Pyspec Simulator.\n\n    Replaces the test ID for state tests that use a transition fork with the\n    base fork.\n\n    These can't be handled in this plugins pytest_generate_tests() as the fork\n    parametrization occurs in the forks plugin.\n    \"\"\"\n    del config\n\n    items_for_removal = []\n    for i, item in enumerate(items):\n        item.name = item.name.strip().replace(\" \", \"-\")\n        params: Dict[str, Any] | None = None\n        if isinstance(item, pytest.Function):\n            params = item.callspec.params\n        elif hasattr(item, \"params\"):\n            params = item.params\n        if not params or \"fork\" not in params or params[\"fork\"] is None:\n            items_for_removal.append(i)\n            continue\n        fork: Fork = params[\"fork\"]\n        spec_type, fixture_format = get_spec_format_for_item(params)\n        if isinstance(fixture_format, NotSetType):\n            items_for_removal.append(i)\n            continue\n        assert issubclass(fixture_format, BaseFixture)\n        if not fixture_format.supports_fork(fork):\n            items_for_removal.append(i)\n            continue\n\n        markers = list(item.iter_markers())\n\n        # Automatically apply pre_alloc_group marker to slow tests that are not\n        # benchmark tests\n        has_slow_marker = any(marker.name == \"slow\" for marker in markers)\n        has_benchmark_marker = any(marker.name == \"benchmark\" for marker in markers)\n        has_pre_alloc_group_marker = any(marker.name == \"pre_alloc_group\" for marker in markers)\n\n        if has_slow_marker and not has_benchmark_marker and not has_pre_alloc_group_marker:\n            # Add pre_alloc_group marker to isolate slow non-benchmark tests\n            pre_alloc_marker = pytest.mark.pre_alloc_group(\n                \"separate\",\n                reason=(\n                    \"Non-benchmark tests marked as slow should be generated \"\n                    \"with their own pre-alloc-group\"\n                ),\n            )\n            item.add_marker(pre_alloc_marker)\n            # Re-collect markers after adding the new one\n            markers = list(item.iter_markers())\n\n        # Both the fixture format itself and the spec filling it have a chance\n        # to veto the filling of a specific format.\n        if fixture_format.discard_fixture_format_by_marks(fork, markers):\n            items_for_removal.append(i)\n            continue\n        if spec_type.discard_fixture_format_by_marks(fixture_format, fork, markers):\n            items_for_removal.append(i)\n            continue\n        for marker in markers:\n            if marker.name == \"fill\":\n                for mark in marker.args:\n                    item.add_marker(mark)\n        if \"yul\" in item.fixturenames:  # type: ignore\n            item.add_marker(pytest.mark.yul_test)\n\n        # Update test ID for state tests that use a transition fork\n        if fork in get_transition_forks():\n            has_state_test = any(marker.name == \"state_test\" for marker in markers)\n            has_valid_transition = any(\n                marker.name == \"valid_at_transition_to\" for marker in markers\n            )\n            if has_state_test and has_valid_transition:\n                base_fork = get_transition_fork_predecessor(fork)\n                item._nodeid = item._nodeid.replace(\n                    f\"fork_{fork.name()}\",\n                    f\"fork_{base_fork.name()}\",\n                )\n\n    for i in reversed(items_for_removal):\n        items.pop(i)\n\n\ndef pytest_sessionfinish(session: pytest.Session, exitstatus: int) -> None:\n    \"\"\"\n    Perform session finish tasks.\n\n    - Save pre-allocation groups (phase 1)\n    - Remove any lock files that may have been created.\n    - Generate index file for all produced fixtures.\n    - Create tarball of the output directory if the output is a tarball.\n    \"\"\"\n    del exitstatus\n\n    # Save pre-allocation groups after phase 1\n    fixture_output: FixtureOutput = session.config.fixture_output  # type: ignore[attr-defined]\n    session_instance: FillingSession = session.config.filling_session  # type: ignore[attr-defined]\n    if session_instance.phase_manager.is_pre_alloc_generation:\n        session_instance.save_pre_alloc_groups()\n        return\n\n    if session.config.getoption(\"optimize_gas\", False):\n        output_file = Path(session.config.getoption(\"optimize_gas_output\"))\n        lock_file_path = output_file.with_suffix(\".lock\")\n        assert hasattr(session.config, \"gas_optimized_tests\")\n        gas_optimized_tests: Dict[str, int] = session.config.gas_optimized_tests\n        with FileLock(lock_file_path):\n            if output_file.exists():\n                gas_optimized_tests = json.loads(output_file.read_text()) | gas_optimized_tests\n            output_file.write_text(json.dumps(gas_optimized_tests, indent=2, sort_keys=True))\n\n    if xdist.is_xdist_worker(session):\n        return\n\n    if fixture_output.is_stdout or is_help_or_collectonly_mode(session.config):\n        return\n\n    # Remove any lock files that may have been created.\n    for file in fixture_output.directory.rglob(\"*.lock\"):\n        file.unlink()\n\n    # Generate index file for all produced fixtures.\n    if (\n        session.config.getoption(\"generate_index\")\n        and not session_instance.phase_manager.is_pre_alloc_generation\n    ):\n        generate_fixtures_index(fixture_output.directory, quiet_mode=True, force_flag=False)\n\n    # Create tarball of the output directory if the output is a tarball.\n    fixture_output.create_tarball()\n"
  },
  {
    "path": "src/pytest_plugins/filler/fixture_output.py",
    "content": "\"\"\"Fixture output configuration for generated test fixtures.\"\"\"\n\nimport shutil\nimport tarfile\nfrom pathlib import Path\n\nimport pytest\nfrom pydantic import BaseModel, Field\n\nfrom ethereum_test_fixtures.blockchain import BlockchainEngineXFixture\n\n\nclass FixtureOutput(BaseModel):\n    \"\"\"Represents the output destination for generated test fixtures.\"\"\"\n\n    output_path: Path = Field(description=\"Directory path to store the generated test fixtures\")\n    single_fixture_per_file: bool = Field(\n        default=False,\n        description=(\n            \"Don't group fixtures in JSON files by test function; \"\n            \"write each fixture to its own file\"\n        ),\n    )\n    clean: bool = Field(\n        default=False,\n        description=\"Clean (remove) the output directory before filling fixtures.\",\n    )\n    generate_pre_alloc_groups: bool = Field(\n        default=False,\n        description=\"Generate pre-allocation groups (phase 1).\",\n    )\n    use_pre_alloc_groups: bool = Field(\n        default=False,\n        description=\"Use existing pre-allocation groups (phase 2).\",\n    )\n    should_generate_all_formats: bool = Field(\n        default=False,\n        description=\"Generate all fixture formats including BlockchainEngineXFixture.\",\n    )\n\n    @property\n    def directory(self) -> Path:\n        \"\"\"Return the actual directory path where fixtures will be written.\"\"\"\n        return self.strip_tarball_suffix(self.output_path)\n\n    @property\n    def metadata_dir(self) -> Path:\n        \"\"\"Return metadata directory to store fixture meta files.\"\"\"\n        if self.is_stdout:\n            return self.directory\n        return self.directory / \".meta\"\n\n    @property\n    def is_tarball(self) -> bool:\n        \"\"\"Return True if the output should be packaged as a tarball.\"\"\"\n        path = self.output_path\n        return path.suffix == \".gz\" and path.with_suffix(\"\").suffix == \".tar\"\n\n    @property\n    def is_stdout(self) -> bool:\n        \"\"\"Return True if the fixture output is configured to be stdout.\"\"\"\n        return self.directory.name == \"stdout\"\n\n    @property\n    def pre_alloc_groups_folder_path(self) -> Path:\n        \"\"\"Return the path for pre-allocation groups folder.\"\"\"\n        engine_x_dir = BlockchainEngineXFixture.output_base_dir_name()\n        return self.directory / engine_x_dir / \"pre_alloc\"\n\n    @property\n    def should_auto_enable_all_formats(self) -> bool:\n        \"\"\"\n        Check if all formats should be auto-enabled due to tarball output.\n        \"\"\"\n        return self.is_tarball\n\n    @staticmethod\n    def strip_tarball_suffix(path: Path) -> Path:\n        \"\"\"Strip the '.tar.gz' suffix from the output path.\"\"\"\n        if str(path).endswith(\".tar.gz\"):\n            return path.with_suffix(\"\").with_suffix(\"\")\n        return path\n\n    def is_directory_empty(self) -> bool:\n        \"\"\"Check if the output directory is empty.\"\"\"\n        if not self.directory.exists():\n            return True\n\n        return not any(self.directory.iterdir())\n\n    def is_directory_usable_for_phase(self) -> bool:\n        \"\"\"Check if the output directory is usable for the current phase.\"\"\"\n        if not self.directory.exists():\n            return True\n\n        if self.generate_pre_alloc_groups:\n            # Phase 1: Directory must be completely empty\n            return self.is_directory_empty()\n        elif self.use_pre_alloc_groups:\n            # Phase 2: Only pre-allocation groups must exist, no other files\n            # allowed\n            if not self.pre_alloc_groups_folder_path.exists():\n                return False\n            # Check that only the pre-allocation group files exist\n            existing_files = {f for f in self.directory.rglob(\"*\") if f.is_file()}\n            allowed_files = set(self.pre_alloc_groups_folder_path.rglob(\"*.json\"))\n            return existing_files == allowed_files\n        else:\n            # Normal filling: Directory must be empty\n            return self.is_directory_empty()\n\n    def get_directory_summary(self) -> str:\n        \"\"\"Return a summary of directory contents for error reporting.\"\"\"\n        if not self.directory.exists():\n            return \"directory does not exist\"\n\n        items = list(self.directory.iterdir())\n        if not items:\n            return \"empty directory\"\n\n        dirs = [d.name for d in items if d.is_dir()]\n        files = [f.name for f in items if f.is_file()]\n\n        max_dirs = 4\n        summary_parts = []\n        if dirs:\n            summary_parts.append(\n                f\"{len(dirs)} directories\"\n                + (\n                    f\" ({', '.join(dirs[:max_dirs])}\"\n                    + (f\"... and {len(dirs) - max_dirs} more\" if len(dirs) > max_dirs else \"\")\n                    + \")\"\n                    if dirs\n                    else \"\"\n                )\n            )\n        if files:\n            summary_parts.append(\n                f\"{len(files)} files\"\n                + (\n                    f\" ({', '.join(files[:3])}\"\n                    + (f\"... and {len(files) - 3} more\" if len(files) > 3 else \"\")\n                    + \")\"\n                    if files\n                    else \"\"\n                )\n            )\n\n        return \" and \".join(summary_parts)\n\n    def create_directories(self, is_master: bool) -> None:\n        \"\"\"\n        Create output and metadata directories if needed.\n\n        If clean flag is set, remove and recreate the directory. Otherwise,\n        verify the directory is empty before proceeding.\n        \"\"\"\n        if self.is_stdout:\n            return\n\n        # Only the master process should delete/create directories if using\n        # pytest-xdist\n        if not is_master:\n            return\n\n        if self.directory.exists() and self.clean:\n            shutil.rmtree(self.directory)\n\n        if self.directory.exists() and not self.is_directory_usable_for_phase():\n            summary = self.get_directory_summary()\n\n            if self.generate_pre_alloc_groups:\n                raise ValueError(\n                    f\"Output directory '{self.directory}' must be completely empty for \"\n                    f\"pre-allocation group generation (phase 1). Contains: {summary}. \"\n                    \"Use --clean to remove all existing files.\"\n                )\n            elif self.use_pre_alloc_groups:\n                if not self.pre_alloc_groups_folder_path.exists():\n                    raise ValueError(\n                        \"Pre-allocation groups folder not found at \"\n                        f\"'{self.pre_alloc_groups_folder_path}'. \"\n                        \"Run phase 1 with --generate-pre-alloc-groups first.\"\n                    )\n            else:\n                raise ValueError(\n                    f\"Output directory '{self.directory}' is not empty. \"\n                    f\"Contains: {summary}. Use --clean to remove all existing files \"\n                    \"or specify a different output directory.\"\n                )\n\n        # Create directories\n        self.directory.mkdir(parents=True, exist_ok=True)\n        self.metadata_dir.mkdir(parents=True, exist_ok=True)\n\n        # Create pre-allocation groups directory for phase 1\n        if self.generate_pre_alloc_groups:\n            self.pre_alloc_groups_folder_path.parent.mkdir(parents=True, exist_ok=True)\n\n    def create_tarball(self) -> None:\n        \"\"\"Create tarball of the output directory if configured to do so.\"\"\"\n        if not self.is_tarball:\n            return\n\n        with tarfile.open(self.output_path, \"w:gz\") as tar:\n            for file in self.directory.rglob(\"*\"):\n                if file.suffix in {\".json\", \".ini\"}:\n                    arcname = Path(\"fixtures\") / file.relative_to(self.directory)\n                    tar.add(file, arcname=arcname)\n\n    @classmethod\n    def from_config(cls, config: pytest.Config) -> \"FixtureOutput\":\n        \"\"\"Create a FixtureOutput instance from pytest configuration.\"\"\"\n        output_path = Path(config.getoption(\"output\"))\n        should_generate_all_formats = config.getoption(\"generate_all_formats\")\n\n        # Auto-enable --generate-all-formats for tarball output\n        # Use same logic as is_tarball property\n        if output_path.suffix == \".gz\" and output_path.with_suffix(\"\").suffix == \".tar\":\n            should_generate_all_formats = True\n\n        return cls(\n            output_path=output_path,\n            single_fixture_per_file=config.getoption(\"single_fixture_per_file\"),\n            clean=config.getoption(\"clean\"),\n            generate_pre_alloc_groups=config.getoption(\"generate_pre_alloc_groups\"),\n            use_pre_alloc_groups=config.getoption(\"use_pre_alloc_groups\"),\n            should_generate_all_formats=should_generate_all_formats,\n        )\n"
  },
  {
    "path": "src/pytest_plugins/filler/gen_test_doc/__init__.py",
    "content": "\"\"\"A pytest plugin to generate test case documentation for mkdocs.\"\"\"\n"
  },
  {
    "path": "src/pytest_plugins/filler/gen_test_doc/gen_test_doc.py",
    "content": "\"\"\"\nA pytest plugin that generates test case documentation for use in mkdocs.\n\nIt generates the top-level \"Test Case Reference\" section in EEST's mkdocs site.\n\nNote:\n----\n- No output directory is specified for the generated output; file IO\noccurs via the `mkdocs-gen-files` plugin. `mkdocs serve` writes intermediate\nfiles to our local `docs/` directory and then copies it to the site directory.\nWe modify `docs/navigation.md` and write all other output underneath\n`docs/tests`. If mkdocs is interrupted, these intermediate artifacts are left\nin `docs/`.\n\nUsage:\n------\n\n!!! note \"Ensuring a clean build\"\n\nIn case mkdocs has polluted the `docs/` directory with intermediate files, run:\n\n```console\ngit restore docs/navigation.md  # Careful if you have local modifications!\nrm -rf docs/tests docs/docs site\n```\n\nTo test doc generation, run the plugin without mkdocs:\n\n```console\nuv run fill -p pytest_plugins.filler.gen_test_doc.gen_test_doc --gen-docs \\\n    --fork=<fork> tests\n```\n\nOr to build and view the site:\n\n```console\nuv run mkdocs serve\n```\n\n\"\"\"\n\nimport glob\nimport logging\nimport os\nimport sys\nimport textwrap\nfrom collections import defaultdict\nfrom pathlib import Path\nfrom typing import Any, Dict, List, Set, Tuple, cast\n\nimport mkdocs_gen_files  # type: ignore[unused-ignore, import-not-found]\nimport pytest\nfrom jinja2 import Environment, FileSystemLoader, StrictUndefined\nfrom pytest import Item\n\nfrom ethereum_test_forks import get_forks\nfrom ethereum_test_specs import BaseTest\nfrom ethereum_test_tools.utility.versioning import (\n    generate_github_url,\n    get_current_commit_hash_or_tag,\n)\n\nfrom .page_props import (\n    DirectoryPageProps,\n    FunctionPageProps,\n    FunctionPagePropsLookup,\n    MarkdownPageProps,\n    ModulePageProps,\n    ModulePagePropsLookup,\n    PageProps,\n    PagePropsLookup,\n    TestCase,\n    TestFunction,\n    sanitize_string_title,\n)\n\nlogger = logging.getLogger(\"mkdocs\")\n\ndocstring_test_function_history: Dict[str, str] = {}\n\n\ndef pytest_addoption(parser: pytest.Parser) -> None:  # noqa: D103\n    gen_docs = parser.getgroup(\n        \"gen_docs\", \"Arguments related to generating test case documentation\"\n    )\n    gen_docs.addoption(\n        \"--gen-docs\",\n        action=\"store_true\",\n        dest=\"gen_docs\",\n        default=False,\n        help=\"Generate documentation for all collected tests for use in for mkdocs\",\n    )\n    gen_docs.addoption(\n        \"--gen-docs-target-fork\",\n        action=\"store\",\n        dest=\"gen_docs_target_fork\",\n        default=None,\n        help=(\n            \"The default fork to use generated in generated doc pages. Should be the name of the \"\n            \"next upcoming fork.\"\n        ),\n    )\n\n\n@pytest.hookimpl(tryfirst=True)\ndef pytest_configure(config: pytest.Config) -> None:  # noqa: D103\n    if config.getoption(\"gen_docs\"):\n        config.option.disable_html = True\n        config.pluginmanager.register(TestDocsGenerator(config), \"test-case-doc-generator\")\n\n\ndef get_test_function_id(item: Item) -> str:\n    \"\"\"Get the test function's ID from the item.\"\"\"\n    return item.nodeid.split(\"[\")[0]\n\n\ndef get_test_function_name(item: Item) -> str:\n    \"\"\"Get the test function's name from the item.\"\"\"\n    return item.name.split(\"[\")[0]\n\n\ndef get_test_case_id(item: Item) -> str:\n    \"\"\"Get the test case's ID from the item.\"\"\"\n    return item.nodeid.split(\"[\")[-1].rstrip(\"]\")\n\n\ndef get_test_function_import_path(item: pytest.Item) -> str:\n    \"\"\"\n    Retrieve the fully qualified import path for an item's test function.\n\n    This is used in jinja2 templates to get the test function, respectively the\n    test function's class, documentation with mkdocstrings.\n    \"\"\"\n    item = cast(pytest.Function, item)  # help mypy infer type\n    module_name = item.module.__name__\n    if hasattr(item.obj, \"__self__\"):\n        # it's a method bound to a class\n        test_class = item.obj.__self__.__class__.__name__\n        test_function = item.obj.__name__\n        full_path = f\"{module_name}.{test_class}\"\n    else:\n        # it's a standalone function, no class\n        test_function = item.obj.__name__\n        full_path = f\"{module_name}.{test_function}\"\n    return full_path\n\n\ndef get_import_path(path: Path) -> str:\n    \"\"\"\n    Get the import path for a given path.\n\n    - For modules, strip the file extension.\n    - For directories (i.e., packages such as `tests.berlin`),\n      `with_suffix()` is ignored.\n\n    To do:\n    ------\n\n    - This should be combined with `get_test_function_import_path`.\n    \"\"\"\n    return str(path.with_suffix(\"\")).replace(\"/\", \".\")\n\n\ndef create_github_issue_url(title: str) -> str:\n    \"\"\"Create a GitHub issue URL for the given title.\"\"\"\n    url_base = \"https://github.com/ethereum/execution-spec-tests/issues/new?\"\n    title = title.replace(\" \", \"%20\")\n    labels = \"scope:docs,type:bug\"\n    return f\"{url_base}title={title}&labels={labels}\"\n\n\ndef get_docstring_one_liner(item: pytest.Item) -> str:\n    \"\"\"\n    Extract either the first 100 characters or the first line of the docstring\n    from the function associated with the given pytest.Item.\n    \"\"\"\n    item = cast(pytest.Function, item)  # help mypy infer type\n    func_obj = item.obj\n    docstring = func_obj.__doc__\n    test_function_name = get_test_function_name(item)\n\n    if not docstring:\n        github_issue_url = create_github_issue_url(\n            f\"docs(bug): No docstring available for `{test_function_name}`\"\n        )\n        logger.warning(f\"No docstring available for `{test_function_name}`.\")\n        return f\"[📖🐛 No docstring available]({github_issue_url})\"\n    docstring = docstring.strip()\n    test_function_id = get_test_function_id(item)\n    if (\n        docstring in docstring_test_function_history\n        and docstring_test_function_history[docstring] != test_function_id\n    ):\n        logger.info(\n            f\"Duplicate docstring for {test_function_id}: \"\n            f\"{docstring_test_function_history[docstring]} and {test_function_id}\"\n        )\n    else:\n        docstring_test_function_history[docstring] = test_function_id\n    lines = docstring.splitlines()\n\n    bad_oneliner_issue_url = create_github_issue_url(\n        f\"docs(bug): Bad docstring oneliner for `{test_function_name}`\"\n    )\n    report_bad_oneliner_link = f\"([📖🐛?]({bad_oneliner_issue_url}))\"\n    if lines:\n        first_line = lines[0].strip()\n        if len(first_line) <= 100:\n            return (\n                first_line\n                if not first_line.endswith(\":\")\n                else first_line + report_bad_oneliner_link\n            )\n        else:\n            return first_line[:100] + f\"... {report_bad_oneliner_link}\"\n    else:\n        return docstring[:100] + f\"... {report_bad_oneliner_link}\"\n\n\ndef get_test_function_test_type(item: pytest.Item) -> str:\n    \"\"\"Get the test type for the test function based on its fixtures.\"\"\"\n    test_types: List[str] = [\n        spec_type.pytest_parameter_name() for spec_type in BaseTest.spec_types.values()\n    ]\n    item = cast(pytest.Function, item)  # help mypy infer type\n    fixture_names = item.fixturenames\n    for test_type in test_types:\n        if test_type in fixture_names:\n            return test_type\n    logger.warning(f\"Could not determine the test function type for {item.nodeid}\")\n    return f\"unknown ([📖🐛]({create_github_issue_url('docs(bug): unknown test function type')}))\"\n\n\nclass TestDocsGenerator:\n    \"\"\"Pytest plugin class for generating test case documentation.\"\"\"\n\n    def __init__(self, config: pytest.Config) -> None:\n        \"\"\"Initialize the plugin with the given pytest config.\"\"\"\n        self.config = config\n        self.target_fork: str = config.getoption(\"gen_docs_target_fork\")\n        self.deployed_forks = [fork.name() for fork in get_forks() if fork.is_deployed()]\n        self._setup_logger()\n        self.jinja2_env = Environment(\n            loader=FileSystemLoader(\"docs/templates\"),\n            trim_blocks=True,\n            undefined=StrictUndefined,\n        )\n        self.source_dir = Path(\"tests\")\n        self.ref = get_current_commit_hash_or_tag()\n        self.top_level_nav_entry = \"Test Case Reference\"\n        # intermediate collected pages and their properties\n        self.function_page_props: FunctionPagePropsLookup = {}\n        self.module_page_props: ModulePagePropsLookup = {}\n        # the complete set of pages and their properties\n        self.page_props: PagePropsLookup = {}\n\n    @pytest.hookimpl(hookwrapper=True, trylast=True)\n    def pytest_collection_modifyitems(\n        self, config: pytest.Config, items: List[pytest.Item]\n    ) -> object:\n        \"\"\"Generate html doc for each test item that pytest has collected.\"\"\"\n        yield\n\n        self.add_global_page_props_to_env()\n\n        functions = defaultdict(list)\n        for item in items:  # group test case by test function\n            functions[get_test_function_id(item)].append(item)\n\n        if hasattr(config, \"checklist_props\"):\n            checklist_props = config.checklist_props\n            self.page_props = {**self.page_props, **checklist_props}\n\n        # the heavy work\n        self.create_function_page_props(functions)\n        self.create_module_page_props()\n        # add the pages to the page_props dict\n        self.page_props = {**self.page_props, **self.function_page_props, **self.module_page_props}\n        # this adds pages for the intermediate directory structure (tests,\n        # tests/berlin)\n        self.add_directory_page_props()\n        # add other interesting pages\n        self.add_spec_page_props()\n        self.add_markdown_page_props()\n        # write pages and navigation menu\n        self.write_pages()\n        self.update_mkdocs_nav()\n\n    @pytest.hookimpl(tryfirst=True)\n    def pytest_runtestloop(self, session: pytest.Session) -> bool:\n        \"\"\"Skip test execution, only generate docs.\"\"\"\n        session.testscollected = 0\n        return True\n\n    def pytest_terminal_summary(\n        self,\n        terminalreporter: Any,\n        exitstatus: int,\n        config: pytest.Config,\n    ) -> None:\n        \"\"\"Add a summary line for the docs.\"\"\"\n        del exitstatus, config\n        terminalreporter.write_sep(\"=\", f\"{len(self.page_props)} doc pages generated\", bold=True)\n\n    def _setup_logger(self) -> None:\n        \"\"\"\n        Configure the mkdocs logger and adds a StreamHandler if outside mkdocs.\n\n        We use the mkdocs logger to report warnings if conditions are invalid -\n        this will inform the user and fail the build with `mkdocs build\n        --strict`.\n        \"\"\"\n        if not logger.hasHandlers() or logger.level == logging.NOTSET:\n            stream_handler = logging.StreamHandler(sys.stdout)\n            stream_handler.setLevel(logging.INFO)\n            logger.addHandler(stream_handler)\n            logger.setLevel(logging.INFO)\n\n    def get_doc_site_base_url(self) -> str:\n        \"\"\"\n        Return site's base in its URL for inclusion of local files.\n\n        This is required in order to include docs/javascripts/site.js, for\n        example, in the standalone html pages.\n\n        Github pages deploys to a sub-directory \"execution-spec-tests\" and mike\n        deploys a version of the site underneath a sub-directory named after\n        the version, e.g.:\n\n        - https://eest.ethereum.org/main/\n        - https://eest.ethereum.org/v4.1.0/\n\n        We need to be able to include the javascript available at:\n\n        - https://eest.ethereum.org/main/javascripts/site.js\n        \"\"\"\n        ci = os.getenv(\"CI\", None)\n        github_ref_name = os.getenv(\"GITHUB_REF_NAME\", None)\n        doc_version = os.getenv(\"GEN_TEST_DOC_VERSION\", None)\n        if ci and github_ref_name:\n            return f\"/execution-spec-tests/{github_ref_name}/\"\n        if ci and not github_ref_name:\n            raise Exception(\"Failed to determine target doc version (no GITHUB_REF_NAME env?).\")\n        if (\"--strict\" in sys.argv or \"deploy\" in sys.argv) and not doc_version:\n            # assume we're trying to deploy manually via mike (locally)\n            raise Exception(\n                \"Failed to determine target doc version during strict build (set \"\n                \"GEN_TEST_DOC_VERSION env var).\"\n            )\n        # local test build, e.g. via `uv run mkdocs serve`\n        return \"/execution-spec-tests/\"\n\n    def add_global_page_props_to_env(self) -> None:\n        \"\"\"Populate global page properties used in j2 templates.\"\"\"\n        global_page_props = {\n            \"target_fork\": self.target_fork,\n            \"base_url\": self.get_doc_site_base_url(),\n            \"deployed_forks\": self.deployed_forks,\n            \"short_git_ref\": get_current_commit_hash_or_tag(shorten_hash=True),\n        }\n\n        self.jinja2_env.globals.update(global_page_props)\n\n    def create_function_page_props(self, test_functions: Dict[\"str\", List[Item]]) -> None:\n        \"\"\"\n        Traverse all test items and create a lookup of doc pages & required\n        props.\n\n        To do: Needs refactor.\n        \"\"\"\n        skip_params = [\"fork\"] + [\n            spec_type.pytest_parameter_name() for spec_type in BaseTest.spec_types.values()\n        ]\n        for function_id, function_items in test_functions.items():\n            assert all(isinstance(item, pytest.Function) for item in function_items)\n            # help mypy infer type\n            items = cast(List[pytest.Function], function_items)\n\n            # extract parametrized test cases for each test function\n            test_cases = []\n            if getattr(items[0], \"callspec\", None):\n                for item in items:\n                    param_set = item.callspec.params\n                    # Don't show skipped parameters as columns in the test case\n                    # table\n                    keys = [key for key in param_set.keys() if key not in skip_params]\n                    values = [param_set[key] for key in keys]\n                    # TODO: This formatting of bytes objects should be moved\n                    # elsewhere\n                    values = [\n                        (\n                            \" \".join(\n                                f\"<code>{chunk}</code>\" for chunk in textwrap.wrap(value.hex(), 32)\n                            )\n                            if isinstance(value, bytes)\n                            else str(value)\n                        )\n                        for value in values\n                    ]\n                    fork = item.callspec.params.get(\"fork\").name()  # type: ignore\n                    test_type = get_test_function_test_type(item)\n                    test_type_value = item.callspec.params.get(test_type)\n                    fixture_type = test_type_value.format_name  # type: ignore\n                    test_cases.append(\n                        TestCase(\n                            full_id=item.nodeid,\n                            abbreviated_id=item.nodeid.split(\"[\")[-1].rstrip(\"]\"),\n                            fork=fork,\n                            fixture_type=fixture_type,\n                            params=dict(zip(keys, values, strict=False)),\n                        )\n                    )\n\n            module_relative_path = Path(items[0].module.__file__).relative_to(Path.cwd())\n            source_url = generate_github_url(\n                str(module_relative_path),\n                branch_or_commit_or_tag=self.ref,\n                line_number=items[0].function.__code__.co_firstlineno,\n            )\n            valid_from_marker = items[0].get_closest_marker(\"valid_from\")\n            if not valid_from_marker:\n                valid_from_fork = \"Frontier\"\n            else:\n                # NOTE: The EOF tests cases contain two fork names in their\n                # valid_from marker, separated by a comma. Take the last.\n                valid_from_fork = valid_from_marker.args[0].split(\",\")[-1]\n\n            target_or_valid_fork = (\n                self.target_fork if valid_from_fork in self.deployed_forks else valid_from_fork\n            )\n            test_type = get_test_function_test_type(items[0])\n\n            test_case_count = len(\n                [\n                    case\n                    for case in test_cases\n                    if case.fork == target_or_valid_fork and case.fixture_type == test_type\n                ]\n            )\n\n            is_benchmark = items[0].get_closest_marker(\"benchmark\") is not None\n            is_stateful = items[0].get_closest_marker(\"stateful\") is not None\n\n            self.function_page_props[function_id] = FunctionPageProps(\n                title=get_test_function_name(items[0]),\n                source_code_url=source_url,\n                target_or_valid_fork=target_or_valid_fork,\n                path=module_relative_path,\n                pytest_node_id=function_id,\n                package_name=get_test_function_import_path(items[0]),\n                test_case_count=test_case_count,\n                cases=test_cases,\n                fixture_formats=sorted({case.fixture_type for case in test_cases}),\n                test_type=test_type,\n                docstring_one_liner=get_docstring_one_liner(items[0]),\n                html_static_page_target=f\"./{get_test_function_name(items[0])}.html\",\n                mkdocs_function_page_target=f\"./{get_test_function_name(items[0])}/\",\n                is_benchmark=is_benchmark,\n                is_stateful=is_stateful,\n            )\n\n    def create_module_page_props(self) -> None:\n        \"\"\"Discover the test module doc pages and extract their properties.\"\"\"\n        for _function_id, function_page in self.function_page_props.items():\n            if str(function_page.path) not in self.module_page_props:\n                module_path = function_page.path\n                self.module_page_props[str(function_page.path)] = ModulePageProps(\n                    title=sanitize_string_title(function_page.path.stem),\n                    source_code_url=function_page.source_code_url,\n                    target_or_valid_fork=function_page.target_or_valid_fork,\n                    path=module_path,\n                    pytest_node_id=str(module_path),\n                    package_name=get_import_path(module_path),\n                    is_benchmark=function_page.is_benchmark,\n                    is_stateful=function_page.is_stateful,\n                    test_functions=[\n                        TestFunction(\n                            name=function_page.title,\n                            test_type=function_page.test_type,\n                            test_case_count=function_page.test_case_count,\n                            docstring_one_liner=function_page.docstring_one_liner,\n                        )\n                    ],\n                )\n            else:\n                existing_module_page = self.module_page_props[str(function_page.path)]\n                if function_page.is_benchmark:\n                    existing_module_page.is_benchmark = True\n                if function_page.is_stateful:\n                    existing_module_page.is_stateful = True\n                existing_module_page.test_functions.append(\n                    TestFunction(\n                        name=function_page.title,\n                        test_type=function_page.test_type,\n                        test_case_count=function_page.test_case_count,\n                        docstring_one_liner=function_page.docstring_one_liner,\n                    )\n                )\n\n    def add_directory_page_props(self) -> None:\n        \"\"\"\n        Discover the intermediate directory pages and extract their properties.\n\n        These directories may not have any test modules within them, e.g.,\n        tests/berlin/.\n        \"\"\"\n        sub_paths: Set[Path] = set()\n        for module_page in self.module_page_props.values():\n            module_path_parts = module_page.path.parent.parts\n            sub_paths.update(\n                Path(*module_path_parts[: i + 1]) for i in range(len(module_path_parts))\n            )\n        for directory in sub_paths:\n            directory_fork_name = (\n                directory.relative_to(self.source_dir).parts[0].capitalize()\n                if directory != self.source_dir\n                else self.target_fork\n            )\n            if directory_fork_name in self.deployed_forks:\n                fork = self.target_fork\n            else:\n                fork = directory_fork_name\n\n            is_benchmark = any(\n                module_page.is_benchmark\n                for module_page in self.module_page_props.values()\n                if directory in module_page.path.parents or module_page.path.parent == directory\n            )\n            is_stateful = any(\n                module_page.is_stateful\n                for module_page in self.module_page_props.values()\n                if directory in module_page.path.parents or module_page.path.parent == directory\n            )\n\n            self.page_props[str(directory)] = DirectoryPageProps(\n                title=sanitize_string_title(str(directory.name)),\n                path=directory,\n                pytest_node_id=str(directory),\n                source_code_url=generate_github_url(\n                    str(directory), branch_or_commit_or_tag=self.ref\n                ),\n                # TODO: This won't work in all cases; should be from the\n                # development fork Currently breaks for\n                # `tests/unscheduled/eip7692_eof_v1/index.md`\n                target_or_valid_fork=fork.capitalize() if fork else \"Unknown\",\n                # init.py will be used for docstrings\n                package_name=get_import_path(directory),\n                is_benchmark=is_benchmark,\n                is_stateful=is_stateful,\n            )\n\n    def find_files_within_collection_scope(self, file_pattern: str) -> List[Path]:\n        \"\"\"\n        Find all files that match the scope of the collected test modules.\n\n        This to avoid adding matching files in uncollected test directories.\n\n        Note: could be optimized!\n        \"\"\"\n        files = []\n        for module_page in self.module_page_props.values():\n            # all files found in and under the modules' directory\n            files += glob.glob(f\"{module_page.path.parent}/**/{file_pattern}\", recursive=True)\n            for parent in module_page.path.parent.parents:\n                if parent == self.source_dir:\n                    break\n                # add files in a module's parent directory\n                files += glob.glob(f\"{parent}/{file_pattern}\")\n        return [Path(file) for file in set(files)]\n\n    def add_spec_page_props(self) -> None:\n        \"\"\"\n        Add page path properties for spec files discovered in the collection\n        scope.\n        \"\"\"\n        for spec_path in self.find_files_within_collection_scope(\"spec.py\"):\n            self.page_props[str(spec_path)] = ModulePageProps(\n                title=\"Spec\",\n                path=spec_path,\n                source_code_url=generate_github_url(\n                    str(spec_path), branch_or_commit_or_tag=self.ref\n                ),\n                pytest_node_id=str(spec_path),\n                package_name=get_import_path(spec_path),\n                target_or_valid_fork=\"\",\n                test_functions=[],\n            )\n\n    def add_markdown_page_props(self) -> None:\n        \"\"\"\n        Add page path properties for markdown files discovered in the\n        collection scope.\n        \"\"\"\n        for md_path in self.find_files_within_collection_scope(\"*.md\"):\n            self.page_props[str(md_path)] = MarkdownPageProps(\n                title=md_path.stem,\n                path=md_path,\n                source_code_url=generate_github_url(\n                    str(md_path), branch_or_commit_or_tag=self.ref\n                ),\n                # abuse: not a test, but used in source code link\n                pytest_node_id=str(md_path),\n                target_or_valid_fork=\"\",\n                package_name=\"\",\n            )\n\n    def update_mkdocs_nav(self) -> None:\n        \"\"\"\n        Add the generated 'Test Case Reference' entries to the mkdocs\n        navigation menu.\n        \"\"\"\n        fork_order = {fork.name().lower(): i for i, fork in enumerate(reversed(get_forks()))}\n\n        def sort_by_fork_deployment_and_path(x: PageProps) -> Tuple[Any, ...]:\n            \"\"\"\n            Key function used to sort navigation menu entries for test case ref\n            docs.\n\n            Nav entries / output files contain special cases such as:\n\n            - (\"Test Case Reference\",) -> tests/index.md\n            - (\"Test Case Reference\", \"Berlin\") -> tests/berlin/index.md\n            - (\"Test Case Reference\", \"EIP-7692 EOF V1\", tracker.md\")\n            tests/unscheduled/eip7692_eof_v1/tracker.md\n            - (\"Test Case Reference\", \"Shanghai\", \"EIP-3855 PUSH0\", \"Spec\") ->\n            tests/shanghai/eip3855_push0/spec.py\n\n            This function provides and ordering to sort nav men entries as\n            follows:\n\n            1. Forks are listed in the chronological order that they were\n            deployed.\n            2. Special files listed first (before test pages): \"*.md\"\n            and `Spec.py`,\n            3. The page's corresponding file path under\n            `./tests/`.\n            \"\"\"\n            length = len(x.path.parts)\n            if length > 1:\n                # the fork folder from the relative path\n                fork = str(x.path.parts[1]).lower()\n                # unscheduled features added to the end\n                if fork not in fork_order:\n                    return (999, str(x.path))\n            if length == 1:\n                return (0,)\n            elif length == 2:\n                return (1, fork_order[fork])\n            elif x.path.name == \"spec.py\":\n                return (2, fork_order[fork], length, 0, x.path)\n            elif x.path.suffix == \".md\":\n                return (2, fork_order[fork], length, 1, x.path)\n            else:\n                return (2, fork_order[fork], length, 2, x.path)\n\n        nav = mkdocs_gen_files.Nav()\n        for page in sorted(self.page_props.values(), key=sort_by_fork_deployment_and_path):\n            nav[page.nav_entry(self.top_level_nav_entry)] = str(page.target_output_file)\n        with mkdocs_gen_files.open(\"navigation.md\", \"a\") as nav_file:\n            nav_file.writelines(nav.build_literate_nav())\n\n    def write_pages(self) -> None:\n        \"\"\"Write all pages to the target directory.\"\"\"\n        for page in self.page_props.values():\n            page.write_page(mkdocs_gen_files, self.jinja2_env)  # type: ignore[arg-type, unused-ignore]\n"
  },
  {
    "path": "src/pytest_plugins/filler/gen_test_doc/page_props.py",
    "content": "\"\"\"\nClasses and helpers used for templates, navigation menus and file output.\n\nThe dataclass fields are used to define the page properties fields which are\nused in the jinja2 templates when generating site content (located in\ndocs/templates). The classes also define each page's navigation menu entry and\ntarget output file.\n\nA few helpers are defined with EEST logic in order to sanitize strings from\nfile paths for use in navigation menu.\n\"\"\"\n\nimport re\nfrom abc import abstractmethod\nfrom dataclasses import asdict, dataclass, field\nfrom pathlib import Path\nfrom typing import IO, Any, ContextManager, Dict, List, Protocol\n\nfrom jinja2 import Environment\n\nfrom ethereum_test_tools import Opcodes\n\n\ndef apply_name_filters(input_string: str) -> str:\n    \"\"\"\n    Apply a list of capitalizations/regexes to names used in titles & nav\n    menus.\n\n    Note: As of 2024-10-08, with 634 doc pages, this function constitutes ~2.0s\n    of the total runtime (~5.5s). This seems to be insignificant with the time\n    taken by mkdocstrings to include the docstrings in the final output (which)\n    is a separate mkdocs \"build-step\" occurs outside the scope of this plugin.\n    \"\"\"\n    word_replacements = {\n        \"acl\": \"ACL\",\n        \"bls 12\": \"BLS12\",\n        \"bls12 g1add\": \"BLS12_G1ADD\",\n        \"bls12 g1msm\": \"BLS12_G1MSM\",\n        \"bls12 g1mul\": \"BLS12_G1MUL\",\n        \"bls12 g2add\": \"BLS12_G2ADD\",\n        \"bls12 g2msm\": \"BLS12_G2MSM\",\n        \"bls12 g2mul\": \"BLS12_G2MUL\",\n        \"bls12 map fp2 to g2\": \"BLS12_MAP_FP2_TO_G2\",\n        \"bls12 map fp to g1\": \"BLS12_MAP_FP_TO_G1\",\n        \"bls12 pairing\": \"BLS12_PAIRING_CHECK\",\n        \"eips\": \"EIPs\",\n        \"eof\": \"EOF\",\n        \"vm\": \"VM\",\n    }\n    # adding these is the expensive part\n    opcode_replacements = {str(opcode): str(opcode) for opcode in Opcodes if str(opcode) != \"GAS\"}\n    all_replacements = {**word_replacements, **opcode_replacements}\n    for word, replacement in all_replacements.items():\n        input_string = re.sub(rf\"(?i)\\b{re.escape(word)}\\b\", replacement, input_string)\n\n    regex_patterns = [\n        (r\"eip-?([1-9]{1,5})\", r\"EIP-\\1\"),  # Matches \"eip-123\" or \"eip123\"\n    ]\n    for pattern, replacement in regex_patterns:\n        input_string = re.sub(pattern, replacement, input_string, flags=re.IGNORECASE)\n\n    return input_string\n\n\ndef snake_to_capitalize(string: str) -> str:  # noqa: D103\n    \"\"\"\n    Convert valid identifiers to a capitalized string, otherwise leave as-is.\n    \"\"\"\n    if string.isidentifier():\n        return \" \".join(word.capitalize() for word in string.split(\"_\"))\n    return string\n\n\ndef sanitize_string_title(string: str) -> str:\n    \"\"\"Sanitize a string to be used as a title.\"\"\"\n    return apply_name_filters(snake_to_capitalize(string))\n\n\ndef nav_path_to_sanitized_str_tuple(nav_path: Path) -> tuple:\n    \"\"\"\n    Convert a nav path to a tuple of sanitized strings for use in mkdocs\n    navigation.\n    \"\"\"\n    return tuple(sanitize_string_title(part) for part in nav_path.parts)\n\n\nclass FileOpener(Protocol):\n    \"\"\"\n    Protocol to replace `mkdocs_gen_files` so it doesn't have to be\n    imported/installed for unit tests.\n    \"\"\"\n\n    def open(self, path: Path, mode: str) -> ContextManager[IO[Any]]:\n        \"\"\"Open a file for writing.\"\"\"\n        raise NotImplementedError\n\n\n@dataclass\nclass PagePropsBase:\n    \"\"\"\n    Common test reference doc page properties and definitions.\n\n    The dataclass attributes are made directly available in the jinja2 found in\n    `docs/templates/*.j2`.\n    \"\"\"\n\n    title: str\n    source_code_url: str\n    target_or_valid_fork: str\n    path: Path\n    pytest_node_id: str\n    package_name: str\n    is_benchmark: bool = False\n    is_stateful: bool = False\n\n    @property\n    @abstractmethod\n    def template(self) -> str:\n        \"\"\"Get the jinja2 template used to render this page.\"\"\"\n        raise NotImplementedError\n\n    @property\n    @abstractmethod\n    def target_output_file(self) -> Path:\n        \"\"\"Get the target output file for this page.\"\"\"\n        raise NotImplementedError\n\n    def nav_entry(self, top_level_nav_entry: str) -> tuple:\n        \"\"\"Get the mkdocs navigation entry for this page.\"\"\"\n        if len(self.path.parts) == 1:\n            return (top_level_nav_entry,)\n        path = top_level_nav_entry / Path(*self.path.parts[1:]).with_suffix(\"\")\n        return nav_path_to_sanitized_str_tuple(path)\n\n    def write_page(self, file_opener: FileOpener, jinja2_env: Environment) -> None:\n        \"\"\"Write the page to the target directory.\"\"\"\n        template = jinja2_env.get_template(self.template)\n        rendered_content = template.render(**asdict(self))\n        with file_opener.open(self.target_output_file, \"w\") as destination:\n            for line in rendered_content.splitlines(keepends=True):\n                destination.write(line)\n\n\n@dataclass\nclass EipChecklistPageProps(PagePropsBase):\n    \"\"\"Properties used to generate the EIP checklist page.\"\"\"\n\n    eip: int = 0\n    lines: List[str] = field(default_factory=list)\n\n    @property\n    def template(self) -> str:\n        \"\"\"Get the jinja2 template used to render this page.\"\"\"\n        raise Exception(\"EipChecklistPageProps does not have a template\")\n\n    @property\n    def target_output_file(self) -> Path:\n        \"\"\"Get the target output file for this page.\"\"\"\n        return self.path\n\n    def write_page(self, file_opener: FileOpener, jinja2_env: Environment) -> None:\n        \"\"\"Write the page to the target directory.\"\"\"\n        del jinja2_env\n        with file_opener.open(self.target_output_file, \"w\") as destination:\n            destination.write(\"\\n\".join(self.lines))\n\n\n@dataclass\nclass TestCase:\n    \"\"\"\n    Properties used to define a single test case in test function parameter\n    tables.\n    \"\"\"\n\n    full_id: str\n    abbreviated_id: str\n    fork: str\n    fixture_type: str\n    params: Dict[str, Any]\n\n\n@dataclass\nclass FunctionPageProps(PagePropsBase):\n    \"\"\"\n    Definitions used for to generate test function (markdown) pages and their\n    corresponding static HTML pages.\n    \"\"\"\n\n    test_case_count: int = 0\n    fixture_formats: List[str] = field(default_factory=list)\n    test_type: str = \"\"\n    docstring_one_liner: str = \"\"\n    html_static_page_target: str = \"\"\n    mkdocs_function_page_target: str = \"\"\n    cases: List[TestCase] = field(default_factory=list)\n\n    @property\n    def template(self) -> str:\n        \"\"\"Get the filename of the jinja2 template used to render this page.\"\"\"\n        return \"function.md.j2\"\n\n    @property\n    def target_output_file(self) -> Path:\n        \"\"\"Get the target output file for this page.\"\"\"\n        return self.path.with_suffix(\"\") / f\"{self.title}.md\"\n\n    def nav_entry(self, top_level_nav_entry: str) -> tuple:\n        \"\"\"Get the mkdocs navigation entry for this page.\"\"\"\n        nav_path_prefix = super().nav_entry(top_level_nav_entry)  # already sanitized\n        return (*nav_path_prefix, f\"<code>{self.title}</code>\")\n\n    def write_page(self, file_opener: FileOpener, jinja2_env: Environment) -> None:\n        \"\"\"\n        Test functions also get a static HTML page with parametrized test\n        cases.\n\n        This is intended for easier viewing (without mkdocs styling) of the\n        data-table that documents the parametrized test cases.\n        \"\"\"\n        super().write_page(file_opener, jinja2_env)\n        if not self.cases:\n            return\n        html_template = jinja2_env.get_template(\"function.html.j2\")\n        rendered_html_content = html_template.render(**asdict(self))\n        html_output_file = self.target_output_file.with_suffix(\".html\")\n        with file_opener.open(html_output_file, \"w\") as destination:\n            for line in rendered_html_content.splitlines(keepends=True):\n                destination.write(line)\n\n\n@dataclass\nclass TestFunction:\n    \"\"\"\n    Properties used to build the test function overview table in test module\n    pages.\n    \"\"\"\n\n    name: str\n    test_type: str\n    test_case_count: int\n    docstring_one_liner: str\n\n\n@dataclass\nclass ModulePageProps(PagePropsBase):\n    \"\"\"\n    Definitions used for test modules, e.g.,\n    `tests/berlin/eip2930_access_list/test_acl.py`.\n    \"\"\"\n\n    test_functions: List[TestFunction] = field(default_factory=list)\n\n    @property\n    def template(self) -> str:\n        \"\"\"Get the filename of the jinja2 template used to render this page.\"\"\"\n        return \"module.md.j2\"\n\n    @property\n    def target_output_file(self) -> Path:\n        \"\"\"Get the target output file for this page.\"\"\"\n        if self.path.suffix == \"spec.py\":\n            return self.path.with_suffix(\".md\")\n        return self.path.with_suffix(\"\") / \"index.md\"\n\n\n@dataclass\nclass DirectoryPageProps(PagePropsBase):\n    \"\"\"\n    Definitions used for parent directories in test paths, e.g.,\n    `tests/berlin`.\n    \"\"\"\n\n    @property\n    def template(self) -> str:\n        \"\"\"Get the filename of the jinja2 template used to render this page.\"\"\"\n        return \"directory.md.j2\"\n\n    @property\n    def target_output_file(self) -> Path:\n        \"\"\"Get the target output file for this page.\"\"\"\n        return self.path / \"index.md\"\n\n\n@dataclass\nclass MarkdownPageProps(PagePropsBase):\n    \"\"\"\n    Definitions used to verbatim include markdown files included in test paths.\n    \"\"\"\n\n    @property\n    def template(self) -> str:\n        \"\"\"Get the filename of the jinja2 template used to render this page.\"\"\"\n        return \"markdown_header.md.j2\"\n\n    @property\n    def target_output_file(self) -> Path:\n        \"\"\"Get the target output file for this page.\"\"\"\n        return self.path\n\n    def write_page(self, file_opener: FileOpener, jinja2_env: Environment) -> None:\n        \"\"\"\n        Write the page to the target directory.\n\n        We read the md file and write it with `mkdocs_gen_files`.\n        \"\"\"\n        template = jinja2_env.get_template(self.template)\n        rendered_content = template.render(**asdict(self))\n        with open(self.path, \"r\") as md_source:\n            with file_opener.open(self.target_output_file, \"w\") as destination:\n                for line in rendered_content.splitlines(keepends=True):\n                    destination.write(line)\n                for line in md_source:\n                    destination.write(line)\n\n\nPageProps = (\n    DirectoryPageProps\n    | ModulePageProps\n    | FunctionPageProps\n    | MarkdownPageProps\n    | EipChecklistPageProps\n)\nPagePropsLookup = Dict[str, PageProps]\nModulePagePropsLookup = Dict[str, ModulePageProps]\nFunctionPagePropsLookup = Dict[str, FunctionPageProps]\n"
  },
  {
    "path": "src/pytest_plugins/filler/ported_tests.py",
    "content": "\"\"\"\nA pytest plugin that shows `ported_from` marker information.\n\nThis plugin extracts and displays information from @pytest.mark.ported_from\nmarkers, showing either the static filler file paths or associated PR URLs.\n\nUsage:\n------\n# Show static filler file paths:\n# uv run fill --show-ported-from tests/\n\n# Show PR URLs instead:\n# uv run fill --show-ported-from=prs tests/\n\nThe plugin will:\n1. Collect all test items with @pytest.mark.ported_from markers\n2. Extract either the file paths (first positional argument) or PR URLs (pr\n   keyword argument)\n3. Output a deduplicated, sorted list, one per line\n4. Skip test execution (collection only)\n5. Exclude tests with coverage_missed_reason from output\n\nMarker Format:\n--------------\n@pytest.mark.ported_from(\n    [\"path/to/static_filler1.json\",\n    \"path/to/static_filler2.json\"],\n    pr=[\n        \"https://github.com/ethereum/execution-spec-tests/pull/1234\",\n        \"https://github.com/ethereum/execution-spec-tests/pull/5678\",\n    ],\n    coverage_missed_reason=\"Optional reason for accepted coverage miss\",\n)\n\"\"\"\n\nimport re\nfrom typing import List, Set\nfrom urllib.parse import urlparse\n\nimport pytest\nfrom _pytest.terminal import TerminalReporter\n\n\ndef convert_to_filled(file_path: str) -> str | None:\n    \"\"\"Convert source link to filler to filled test path.\"\"\"\n    path = urlparse(file_path).path\n    if \"/src/\" in path:\n        path = path.split(\"/src/\", 1)[1]\n\n    if path.endswith((\".sh\", \".js\")):\n        return None\n\n    # Remove \"Filler\" from the path components\n    path = path.replace(\"TestsFiller\", \"Tests\")\n\n    # Replace file extension to .json\n    path = re.sub(r\"Filler\\.(yml|yaml|json)$\", \".json\", path)\n\n    return path\n\n\ndef pytest_addoption(parser: pytest.Parser) -> None:\n    \"\"\"Add command-line options to pytest.\"\"\"\n    ported_from_group = parser.getgroup(\n        \"ported_from\", \"Arguments for showing ported_from marker information\"\n    )\n    ported_from_group.addoption(\n        \"--show-ported-from\",\n        action=\"store\",\n        dest=\"show_ported_from\",\n        default=None,\n        nargs=\"?\",\n        const=\"paths\",\n        help=(\n            \"Show information from @pytest.mark.ported_from markers. \"\n            \"Use '--show-ported-from' or '--show-ported-from=paths' to show static filler paths. \"\n            \"Use '--show-ported-from=prs' to show PR URLs.\"\n        ),\n    )\n    ported_from_group.addoption(\n        \"--skip-coverage-missed-reason\",\n        action=\"store_true\",\n        dest=\"skip_coverage_missed_reason\",\n        default=False,\n        help=(\n            \"When using --show-ported-from, exclude tests that have \"\n            \"coverage_missed_reason in their @pytest.mark.ported_from marker. \"\n            \"These are tests that were intentionally not ported from the original \"\n            \"static filler files, typically because they are redundant or obsolete. \"\n            \"This helps filter out accepted coverage gaps when analyzing test coverage.\"\n        ),\n    )\n    ported_from_group.addoption(\n        \"--ported-from-output-file\",\n        action=\"store\",\n        dest=\"ported_from_output_file\",\n        default=None,\n        help=\"Output file for ported_from information.\",\n    )\n    ported_from_group.addoption(\n        \"--links-as-filled\",\n        action=\"store_true\",\n        dest=\"links_as_filled\",\n        default=False,\n        help=(\n            \"Convert URLs or paths to filled test file paths for coverage script. \"\n            \"Used in combination with --show-ported-from.\"\n        ),\n    )\n\n\n@pytest.hookimpl(tryfirst=True)\ndef pytest_configure(config: pytest.Config) -> None:\n    \"\"\"Register the plugin if the CLI option is provided.\"\"\"\n    if config.getoption(\"show_ported_from\"):\n        config.pluginmanager.register(PortedFromDisplay(config), \"ported-from-display\")\n\n\nclass PortedFromDisplay:\n    \"\"\"Pytest plugin class for displaying ported_from marker information.\"\"\"\n\n    def __init__(self, config: pytest.Config) -> None:\n        \"\"\"Initialize the plugin with the given pytest config.\"\"\"\n        self.config = config\n        self.show_mode = config.getoption(\"show_ported_from\")\n        self.links_as_filled = config.getoption(\"links_as_filled\")\n        self.ported_from_output_file = config.getoption(\"ported_from_output_file\")\n        self.skip_coverage_missed_reason = config.getoption(\"skip_coverage_missed_reason\")\n\n    @pytest.hookimpl(hookwrapper=True, trylast=True)\n    def pytest_collection_modifyitems(\n        self,\n        session: pytest.Session,\n        config: pytest.Config,\n        items: List[pytest.Item],\n    ) -> object:\n        \"\"\"Extract ported_from information from collected test items.\"\"\"\n        del session\n        yield\n\n        # Only run on master node when using pytest-xdist\n        if hasattr(config, \"workerinput\"):\n            return\n\n        paths: Set[str] = set()\n        prs: Set[str] = set()\n\n        for item in items:\n            ported_from_marker = item.get_closest_marker(\"ported_from\")\n            if ported_from_marker:\n                # Skip tests with coverage_missed_reason\n                if (\n                    \"coverage_missed_reason\" in ported_from_marker.kwargs\n                    and self.skip_coverage_missed_reason\n                ):\n                    continue\n\n                # Extract paths (first positional argument)\n                if ported_from_marker.args:\n                    first_arg = ported_from_marker.args[0]\n                    if isinstance(first_arg, list):\n                        paths.update(first_arg)\n                    elif isinstance(first_arg, str):\n                        paths.add(first_arg)\n\n                # Extract PRs (keyword argument 'pr')\n                if \"pr\" in ported_from_marker.kwargs:\n                    pr_arg = ported_from_marker.kwargs[\"pr\"]\n                    if isinstance(pr_arg, list):\n                        prs.update(pr_arg)\n                    elif isinstance(pr_arg, str):\n                        prs.add(pr_arg)\n\n        # Output results based on mode\n        if self.show_mode == \"prs\":\n            outputs = sorted(prs)\n        else:  # default to \"paths\"\n            outputs = sorted(paths)\n        output_lines: List[str] = []\n        if self.links_as_filled:\n            for output in outputs:\n                converted_link_output = convert_to_filled(output)\n                if converted_link_output is not None:\n                    output_lines.append(converted_link_output)\n        else:\n            output_lines.extend(outputs)\n        if self.ported_from_output_file:\n            with open(self.ported_from_output_file, \"w\") as f:\n                f.write(\"\\n\".join(output_lines))\n        else:\n            for line in output_lines:\n                print(line)\n\n    @pytest.hookimpl(tryfirst=True)\n    def pytest_runtestloop(self, session: pytest.Session) -> bool:\n        \"\"\"Skip test execution, only show ported_from information.\"\"\"\n        del session\n        return True\n\n    def pytest_terminal_summary(\n        self,\n        terminalreporter: TerminalReporter,\n        exitstatus: int,\n        config: pytest.Config,\n    ) -> None:\n        \"\"\"Add a summary line.\"\"\"\n        del exitstatus\n        if config.getoption(\"verbose\") < 0:\n            return\n        mode_desc = \"PR URLs\" if self.show_mode == \"prs\" else \"static filler paths\"\n        terminalreporter.write_sep(\"=\", f\"ported_from {mode_desc} displayed\", bold=True)\n"
  },
  {
    "path": "src/pytest_plugins/filler/pre_alloc.py",
    "content": "\"\"\"Pre-alloc specifically conditioned for test filling.\"\"\"\n\nimport inspect\nfrom enum import IntEnum\nfrom functools import cache\nfrom hashlib import sha256\nfrom itertools import count\nfrom typing import Any, Iterator, List, Literal\n\nimport pytest\nfrom pydantic import PrivateAttr\n\nfrom ethereum_test_base_types import (\n    Account,\n    Address,\n    Number,\n    Storage,\n    StorageRootType,\n    TestPrivateKey,\n    TestPrivateKey2,\n    ZeroPaddedHexNumber,\n)\nfrom ethereum_test_base_types.conversions import (\n    BytesConvertible,\n    FixedSizeBytesConvertible,\n    NumberConvertible,\n)\nfrom ethereum_test_fixtures import LabeledFixtureFormat\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_specs import BaseTest\nfrom ethereum_test_types import EOA\nfrom ethereum_test_types import Alloc as BaseAlloc\nfrom ethereum_test_types.eof.v1 import Container\nfrom ethereum_test_vm import Bytecode, EVMCodeType, Opcodes\n\nCONTRACT_START_ADDRESS_DEFAULT = 0x1000000000000000000000000000000000001000\nCONTRACT_ADDRESS_INCREMENTS_DEFAULT = 0x100\n\n\ndef pytest_addoption(parser: pytest.Parser) -> None:\n    \"\"\"Add command-line options to pytest.\"\"\"\n    pre_alloc_group = parser.getgroup(\n        \"pre_alloc\", \"Arguments defining pre-allocation behavior during test filling.\"\n    )\n\n    pre_alloc_group.addoption(\n        \"--strict-alloc\",\n        action=\"store_true\",\n        dest=\"strict_alloc\",\n        default=False,\n        help=(\"[DEBUG ONLY] Disallows deploying a contract in a predefined address.\"),\n    )\n    pre_alloc_group.addoption(\n        \"--ca-start\",\n        \"--contract-address-start\",\n        action=\"store\",\n        dest=\"test_contract_start_address\",\n        default=f\"{CONTRACT_START_ADDRESS_DEFAULT}\",\n        type=str,\n        help=\"The starting address from which tests will deploy contracts.\",\n    )\n    pre_alloc_group.addoption(\n        \"--ca-incr\",\n        \"--contract-address-increment\",\n        action=\"store\",\n        dest=\"test_contract_address_increments\",\n        default=f\"{CONTRACT_ADDRESS_INCREMENTS_DEFAULT}\",\n        type=str,\n        help=\"The address increment value to each deployed contract by a test.\",\n    )\n    pre_alloc_group.addoption(\n        \"--evm-code-type\",\n        action=\"store\",\n        dest=\"evm_code_type\",\n        default=None,\n        type=EVMCodeType,\n        choices=list(EVMCodeType),\n        help=\"Type of EVM code to deploy in each test by default.\",\n    )\n\n\nclass AllocMode(IntEnum):\n    \"\"\"Allocation mode for the state.\"\"\"\n\n    PERMISSIVE = 0\n    STRICT = 1\n\n\nDELEGATION_DESIGNATION = b\"\\xef\\x01\\x00\"\n\n\nclass Alloc(BaseAlloc):\n    \"\"\"Allocation of accounts in the state, pre and post test execution.\"\"\"\n\n    _alloc_mode: AllocMode = PrivateAttr()\n    _contract_address_iterator: Iterator[Address] = PrivateAttr()\n    _eoa_iterator: Iterator[EOA] = PrivateAttr()\n    _evm_code_type: EVMCodeType | None = PrivateAttr(None)\n    _fork: Fork = PrivateAttr()\n\n    def __init__(\n        self,\n        *args: Any,\n        alloc_mode: AllocMode,\n        contract_address_iterator: Iterator[Address],\n        eoa_iterator: Iterator[EOA],\n        fork: Fork,\n        evm_code_type: EVMCodeType | None = None,\n        **kwargs: Any,\n    ) -> None:\n        \"\"\"Initialize allocation with the given properties.\"\"\"\n        super().__init__(*args, **kwargs)\n        self._alloc_mode = alloc_mode\n        self._contract_address_iterator = contract_address_iterator\n        self._eoa_iterator = eoa_iterator\n        self._evm_code_type = evm_code_type\n        self._fork = fork\n\n    def __setitem__(\n        self,\n        address: Address | FixedSizeBytesConvertible,\n        account: Account | None,\n    ) -> None:\n        \"\"\"Set account associated with an address.\"\"\"\n        if self._alloc_mode == AllocMode.STRICT:\n            raise ValueError(\"Cannot set items in strict mode\")\n        super().__setitem__(address, account)\n\n    def code_pre_processor(\n        self, code: BytesConvertible, *, evm_code_type: EVMCodeType | None\n    ) -> BytesConvertible:\n        \"\"\"Pre-processes the code before setting it.\"\"\"\n        if evm_code_type is None:\n            evm_code_type = self._evm_code_type\n        if evm_code_type == EVMCodeType.EOF_V1:\n            if not isinstance(code, Container):\n                if isinstance(code, Bytecode) and not code.terminating:\n                    return Container.Code(code + Opcodes.STOP)\n                return Container.Code(code)\n        return code\n\n    def deploy_contract(\n        self,\n        code: BytesConvertible,\n        *,\n        storage: Storage | StorageRootType | None = None,\n        balance: NumberConvertible = 0,\n        nonce: NumberConvertible = 1,\n        address: Address | None = None,\n        evm_code_type: EVMCodeType | None = None,\n        label: str | None = None,\n        stub: str | None = None,\n    ) -> Address:\n        \"\"\"\n        Deploy a contract to the allocation.\n\n        Warning: `address` parameter is a temporary solution to allow tests to\n        hard-code the contract address. Do NOT use in new tests as it will be\n        removed in the future!\n        \"\"\"\n        del stub\n\n        if storage is None:\n            storage = {}\n        if address is not None:\n            assert self._alloc_mode == AllocMode.PERMISSIVE, \"address parameter is not supported\"\n            assert address not in self, f\"address {address} already in allocation\"\n            contract_address = address\n        else:\n            contract_address = next(self._contract_address_iterator)\n\n        if self._alloc_mode == AllocMode.STRICT:\n            assert Number(nonce) >= 1, \"impossible to deploy contract with nonce lower than one\"\n\n        code = self.code_pre_processor(code, evm_code_type=evm_code_type)\n        code_bytes = bytes(code) if not isinstance(code, (bytes, str)) else code\n        max_code_size = self._fork.max_code_size()\n        assert len(code_bytes) <= max_code_size, (\n            f\"code too large: {len(code_bytes)} > {max_code_size}\"\n        )\n\n        super().__setitem__(\n            contract_address,\n            Account(\n                nonce=nonce,\n                balance=balance,\n                code=code,\n                storage=storage,\n            ),\n        )\n        if label is None:\n            # Try to deduce the label from the code\n            frame = inspect.currentframe()\n            if frame is not None:\n                caller_frame = frame.f_back\n                if caller_frame is not None:\n                    code_context = inspect.getframeinfo(caller_frame).code_context\n                    if code_context is not None:\n                        line = code_context[0].strip()\n                        if \"=\" in line:\n                            label = line.split(\"=\")[0].strip()\n\n        contract_address.label = label\n        return contract_address\n\n    def fund_eoa(\n        self,\n        amount: NumberConvertible | None = None,\n        label: str | None = None,\n        storage: Storage | None = None,\n        delegation: Address | Literal[\"Self\"] | None = None,\n        nonce: NumberConvertible | None = None,\n    ) -> EOA:\n        \"\"\"\n        Add a previously unused EOA to the pre-alloc with the balance specified\n        by `amount`.\n\n        If amount is 0, nothing will be added to the pre-alloc but a new and\n        unique EOA will be returned.\n        \"\"\"\n        del label\n\n        eoa = next(self._eoa_iterator)\n        if amount is None:\n            amount = self._eoa_fund_amount_default\n        if (\n            Number(amount) > 0\n            or storage is not None\n            or delegation is not None\n            or (nonce is not None and Number(nonce) > 0)\n        ):\n            if storage is None and delegation is None:\n                nonce = Number(0 if nonce is None else nonce)\n                account = Account(\n                    nonce=nonce,\n                    balance=amount,\n                )\n                if nonce > 0:\n                    eoa.nonce = nonce\n            else:\n                # Type-4 transaction is sent to the EOA to set the storage, so\n                # the nonce must be 1\n                if not isinstance(delegation, Address) and delegation == \"Self\":\n                    delegation = eoa\n                # If delegation is None but storage is not, realistically the\n                # nonce should be 2 because the account must have delegated to\n                # set the storage and then again to reset the delegation (but\n                # can be overridden by the test for a non-realistic scenario)\n                real_nonce = 2 if delegation is None else 1\n                nonce = Number(real_nonce if nonce is None else nonce)\n                account = Account(\n                    nonce=nonce,\n                    balance=amount,\n                    storage=storage if storage is not None else {},\n                    code=DELEGATION_DESIGNATION + bytes(delegation)\n                    if delegation is not None\n                    else b\"\",\n                )\n                eoa.nonce = nonce\n\n            super().__setitem__(eoa, account)\n        return eoa\n\n    def fund_address(self, address: Address, amount: NumberConvertible) -> None:\n        \"\"\"\n        Fund an address with a given amount.\n\n        If the address is already present in the pre-alloc the amount will be\n        added to its existing balance.\n        \"\"\"\n        if address in self:\n            account = self[address]\n            if account is not None:\n                current_balance = account.balance or 0\n                account.balance = ZeroPaddedHexNumber(current_balance + Number(amount))\n                return\n        super().__setitem__(address, Account(balance=amount))\n\n    def empty_account(self) -> Address:\n        \"\"\"\n        Add a previously unused account guaranteed to be empty to the\n        pre-alloc.\n\n        This ensures the account has:\n        - Zero balance\n        - Zero nonce\n        - No code\n        - No storage\n\n        This is different from precompiles or system contracts. The function\n        does not send any transactions, ensuring that the account remains\n        \"empty.\"\n\n        Returns:\n            Address: The address of the created empty account.\n\n        \"\"\"\n        eoa = next(self._eoa_iterator)\n\n        return Address(eoa)\n\n\n@pytest.fixture(scope=\"session\")\ndef alloc_mode(request: pytest.FixtureRequest) -> AllocMode:\n    \"\"\"Return allocation mode for the tests.\"\"\"\n    if request.config.getoption(\"strict_alloc\"):\n        return AllocMode.STRICT\n    return AllocMode.PERMISSIVE\n\n\n@pytest.fixture(scope=\"session\")\ndef contract_start_address(request: pytest.FixtureRequest) -> int:\n    \"\"\"Return starting address for contract deployment.\"\"\"\n    return int(request.config.getoption(\"test_contract_start_address\"), 0)\n\n\n@pytest.fixture(scope=\"session\")\ndef contract_address_increments(request: pytest.FixtureRequest) -> int:\n    \"\"\"Return address increment for contract deployment.\"\"\"\n    return int(request.config.getoption(\"test_contract_address_increments\"), 0)\n\n\ndef sha256_from_string(s: str) -> int:\n    \"\"\"Return SHA-256 hash of a string.\"\"\"\n    return int.from_bytes(sha256(s.encode(\"utf-8\")).digest(), \"big\")\n\n\nALL_FIXTURE_FORMAT_NAMES: List[str] = []\n\nfor spec in BaseTest.spec_types.values():\n    for labeled_fixture_format in spec.supported_fixture_formats:\n        name = (\n            labeled_fixture_format.label\n            if isinstance(labeled_fixture_format, LabeledFixtureFormat)\n            else labeled_fixture_format.format_name.lower()\n        )\n        if name not in ALL_FIXTURE_FORMAT_NAMES:\n            ALL_FIXTURE_FORMAT_NAMES.append(name)\n\n# Sort by length, from longest to shortest, since some fixture format names\n# contain others so we are always sure to catch the longest one first.\nALL_FIXTURE_FORMAT_NAMES.sort(key=len, reverse=True)\n\n\n@pytest.fixture(scope=\"function\")\ndef node_id_for_entropy(request: pytest.FixtureRequest, fork: Fork | None) -> str:\n    \"\"\"\n    Return the node id with the fixture format name and fork name stripped.\n\n    Used in cases where we are filling for pre-alloc groups, and we take the\n    name of the test as source of entropy to get a deterministic address when\n    generating the pre-alloc grouping.\n\n    Removing the fixture format and the fork name from the node id before\n    hashing results in the contracts and senders addresses being the same\n    across fixture types and forks for the same test.\n    \"\"\"\n    node_id: str = request.node.nodeid\n    if fork is None:\n        # FIXME: Static tests don't have a fork, so we need to get it from the\n        # node.\n        assert hasattr(request.node, \"fork\")\n        fork = request.node.fork\n    for fixture_format_name in ALL_FIXTURE_FORMAT_NAMES:\n        if fixture_format_name in node_id:\n            parts = request.node.nodeid.split(\"::\")\n            test_file_path = parts[0]\n            test_name = \"::\".join(parts[1:])\n            stripped_test_name = test_name.replace(fixture_format_name, \"\").replace(\n                fork.name(), \"\"\n            )\n            return f\"{test_file_path}::{stripped_test_name}\"\n    raise Exception(f\"Fixture format name not found in test {node_id}\")\n\n\n@pytest.fixture(scope=\"function\")\ndef contract_address_iterator(\n    request: pytest.FixtureRequest,\n    contract_start_address: int,\n    contract_address_increments: int,\n    node_id_for_entropy: str,\n) -> Iterator[Address]:\n    \"\"\"Return iterator over contract addresses with dynamic scoping.\"\"\"\n    if request.config.getoption(\n        # TODO: Ideally, we should check the fixture format instead of checking\n        # parameters.\n        \"generate_pre_alloc_groups\",\n        default=False,\n    ) or request.config.getoption(\"use_pre_alloc_groups\", default=False):\n        # Use a starting address that is derived from the test node\n        contract_start_address = sha256_from_string(node_id_for_entropy)\n    return iter(\n        Address((contract_start_address + (i * contract_address_increments)) % 2**160)\n        for i in count()\n    )\n\n\n@cache\ndef eoa_by_index(i: int) -> EOA:\n    \"\"\"Return EOA by index.\"\"\"\n    return EOA(key=TestPrivateKey + i if i != 1 else TestPrivateKey2, nonce=0)\n\n\n@pytest.fixture(scope=\"function\")\ndef eoa_iterator(\n    request: pytest.FixtureRequest,\n    node_id_for_entropy: str,\n) -> Iterator[EOA]:\n    \"\"\"Return iterator over EOAs copies with dynamic scoping.\"\"\"\n    if request.config.getoption(\n        # TODO: Ideally, we should check the fixture format instead of checking\n        # parameters.\n        \"generate_pre_alloc_groups\",\n        default=False,\n    ) or request.config.getoption(\"use_pre_alloc_groups\", default=False):\n        # Use a starting address that is derived from the test node\n        eoa_start_pk = sha256_from_string(node_id_for_entropy)\n        return iter(\n            EOA(\n                key=(eoa_start_pk + i)\n                % 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141,\n                nonce=0,\n            )\n            for i in count()\n        )\n    return iter(eoa_by_index(i).copy() for i in count())\n\n\n@pytest.fixture(autouse=True)\ndef evm_code_type(request: pytest.FixtureRequest) -> EVMCodeType:\n    \"\"\"Return default EVM code type for all tests (LEGACY).\"\"\"\n    parameter_evm_code_type = request.config.getoption(\"evm_code_type\")\n    if parameter_evm_code_type is not None:\n        assert type(parameter_evm_code_type) is EVMCodeType, \"Invalid EVM code type\"\n        return parameter_evm_code_type\n    return EVMCodeType.LEGACY\n\n\n@pytest.fixture(scope=\"function\")\ndef pre(\n    alloc_mode: AllocMode,\n    contract_address_iterator: Iterator[Address],\n    eoa_iterator: Iterator[EOA],\n    evm_code_type: EVMCodeType,\n    fork: Fork | None,\n    request: pytest.FixtureRequest,\n) -> Alloc:\n    \"\"\"Return default pre allocation for all tests (Empty alloc).\"\"\"\n    # FIXME: Static tests dont have a fork so we need to get it from the node.\n    actual_fork = fork\n    if actual_fork is None:\n        assert hasattr(request.node, \"fork\")\n        actual_fork = request.node.fork\n\n    return Alloc(\n        alloc_mode=alloc_mode,\n        contract_address_iterator=contract_address_iterator,\n        eoa_iterator=eoa_iterator,\n        fork=actual_fork,\n        evm_code_type=evm_code_type,\n    )\n"
  },
  {
    "path": "src/pytest_plugins/filler/static_filler.py",
    "content": "\"\"\"\nStatic filler pytest plugin that reads test cases from static files and fills\nthem into test fixtures.\n\"\"\"\n\nimport inspect\nimport itertools\nimport json\nimport warnings\nfrom pathlib import Path\nfrom typing import Any, Callable, Dict, Generator, List, Self, Tuple, Type\n\nimport pytest\nimport yaml\nfrom _pytest.fixtures import TopRequest\nfrom _pytest.mark import ParameterSet\nfrom _pytest.python import Module\n\nfrom ethereum_test_fixtures import BaseFixture, LabeledFixtureFormat\nfrom ethereum_test_forks import Fork, get_closest_fork\nfrom ethereum_test_specs import BaseStaticTest, BaseTest\nfrom ethereum_test_tools.tools_code.yul import Yul\n\nfrom ..forks.forks import ValidityMarker\nfrom ..shared.helpers import labeled_format_parameter_set\n\n\ndef get_test_id_from_arg_names_and_values(\n    arg_names: List[str], arg_values: List[Any] | Tuple[Any, ...]\n) -> str:\n    \"\"\"Get the test id from argument names and values.\"\"\"\n    return \"-\".join(\n        [\n            f\"{arg_name}={arg_value}\"\n            for arg_name, arg_value in zip(arg_names, arg_values, strict=True)\n        ]\n    )\n\n\ndef get_argument_names_and_values_from_parametrize_mark(\n    mark: pytest.Mark,\n) -> Tuple[List[str], List[ParameterSet]]:\n    \"\"\"Get the argument names and values from a parametrize mark.\"\"\"\n    if mark.name != \"parametrize\":\n        raise Exception(\"Mark is not a parametrize mark\")\n    kwargs_dict = dict(mark.kwargs)\n    ids: Callable | List[str] | None = kwargs_dict.pop(\"ids\") if \"ids\" in kwargs_dict else None\n    marks: List[pytest.Mark] = kwargs_dict.pop(\"marks\") if \"marks\" in kwargs_dict else []\n    if kwargs_dict:\n        raise Exception(\"Mark has kwargs which is not supported\")\n    args = mark.args\n    if not isinstance(args, tuple):\n        raise Exception(\"Args is not a tuple\")\n    if len(args) != 2:\n        raise Exception(\"Args does not have 2 elements\")\n    arg_names = args[0] if isinstance(args[0], list) else args[0].split(\",\")\n    arg_values = []\n    for arg_index, arg_value in enumerate(args[1]):\n        if not isinstance(arg_value, ParameterSet):\n            original_arg_value = arg_value\n            if not isinstance(arg_value, tuple) and not isinstance(arg_value, list):\n                arg_value = (arg_value,)\n            test_id: str = get_test_id_from_arg_names_and_values(arg_names, arg_value)\n            if ids:\n                if callable(ids):\n                    test_id = ids(original_arg_value)\n                else:\n                    test_id = ids[arg_index]\n            arg_values.append(ParameterSet(arg_value, marks, id=test_id))\n        else:\n            arg_values.append(arg_value)\n    return arg_names, arg_values\n\n\ndef get_all_combinations_from_parametrize_marks(\n    parametrize_marks: List[pytest.Mark],\n) -> Tuple[List[str], List[ParameterSet]]:\n    \"\"\"Get all combinations of arguments from multiple parametrize marks.\"\"\"\n    assert parametrize_marks, \"No parametrize marks found\"\n    list_of_values: List[List[ParameterSet]] = []\n    all_argument_names = []\n    for mark in parametrize_marks:\n        arg_names, arg_values = get_argument_names_and_values_from_parametrize_mark(mark)\n        list_of_values.append(arg_values)\n        all_argument_names.extend(arg_names)\n    all_value_combinations: List[ParameterSet] = []\n    # use itertools to get all combinations\n    test_ids = set()\n    for combination in itertools.product(*list_of_values):\n        values: List[Any] = []\n        marks: List[pytest.Mark | pytest.MarkDecorator] = []\n        for param_set in combination:\n            values.extend(param_set.values)\n            marks.extend(param_set.marks)\n        test_id = \"-\".join([param.id or \"\" for param in combination])  # type: ignore[misc]\n        if test_id in test_ids:\n            current_int = 2\n            while f\"{test_id}-{current_int}\" in test_ids:\n                current_int += 1\n            test_id = f\"{test_id}-{current_int}\"\n        all_value_combinations.append(\n            ParameterSet(\n                values=values,\n                marks=marks,\n                id=test_id,\n            )\n        )\n        test_ids.add(test_id)\n\n    return all_argument_names, all_value_combinations\n\n\ndef pytest_collect_file(file_path: Path, parent: Module) -> pytest.Collector | None:\n    \"\"\"\n    Pytest hook that collects test cases from static files and fills them into\n    test fixtures.\n    \"\"\"\n    fill_static_tests_enabled = parent.config.getoption(\"fill_static_tests_enabled\")\n    if not fill_static_tests_enabled:\n        return None\n    if not BaseStaticTest.formats:\n        # No formats registered, so no need to collect any files.\n        return None\n    if file_path.suffix in (\".json\", \".yml\", \".yaml\"):\n        init_file = file_path.parent / \"__init__.py\"\n        module = Module.from_parent(\n            parent=parent,\n            path=init_file,\n            nodeid=str(init_file),\n        )\n        return FillerFile.from_parent(module, path=file_path)\n    return None\n\n\nclass NoIntResolver(yaml.SafeLoader):\n    \"\"\"Class that tells yaml to not resolve int values.\"\"\"\n\n    pass\n\n\n# Remove the implicit resolver for integers\n# Because yaml treat unquoted numbers 000001000 as oct numbers\n# Treat all numbers as str instead\nfor ch in list(NoIntResolver.yaml_implicit_resolvers):\n    resolvers = NoIntResolver.yaml_implicit_resolvers[ch]\n    NoIntResolver.yaml_implicit_resolvers[ch] = [\n        (tag, regexp) for tag, regexp in resolvers if tag != \"tag:yaml.org,2002:int\"\n    ]\n\n\nclass FillerFile(pytest.File):\n    \"\"\"\n    Filler file that reads test cases from static files and fills them into\n    test fixtures.\n    \"\"\"\n\n    def collect(self: \"FillerFile\") -> Generator[\"FillerTestItem\", None, None]:\n        \"\"\"Collect test cases from a single static file.\"\"\"\n        if not self.path.stem.endswith(\"Filler\"):\n            return\n        with open(self.path, \"r\") as file:\n            try:\n                loaded_file = (\n                    json.load(file)\n                    if self.path.suffix == \".json\"\n                    else yaml.load(file, Loader=NoIntResolver)\n                )\n                for key in loaded_file:\n                    filler = BaseStaticTest.model_validate(loaded_file[key])\n\n                    func = filler.fill_function()\n\n                    function_marks: List[pytest.Mark] = []\n                    if hasattr(func, \"pytestmark\"):\n                        function_marks = func.pytestmark[:]\n                    parametrize_marks: List[pytest.Mark] = [\n                        mark for mark in function_marks if mark.name == \"parametrize\"\n                    ]\n\n                    func_parameters = inspect.signature(func).parameters\n\n                    fixture_formats: List[Type[BaseFixture] | LabeledFixtureFormat] = []\n                    spec_parameter_name = \"\"\n                    for test_type in BaseTest.spec_types.values():\n                        if test_type.pytest_parameter_name() in func_parameters:\n                            assert not spec_parameter_name, \"Multiple spec parameters found\"\n                            spec_parameter_name = test_type.pytest_parameter_name()\n                            session = self.config.filling_session  # type: ignore[attr-defined]\n                            fixture_formats.extend(\n                                fixture_format\n                                for fixture_format in test_type.supported_fixture_formats\n                                if session.should_generate_format(fixture_format)\n                            )\n\n                    test_fork_set = ValidityMarker.get_test_fork_set_from_markers(\n                        iter(function_marks)\n                    )\n                    if not test_fork_set:\n                        pytest.fail(\n                            \"The test function's \"\n                            f\"'{key}' fork validity markers generate \"\n                            \"an empty fork range. Please check the arguments to its \"\n                            f\"markers:  @pytest.mark.valid_from and \"\n                            f\"@pytest.mark.valid_until.\"\n                        )\n                    intersection_set = test_fork_set & self.config.selected_fork_set  # type: ignore\n\n                    extra_function_marks: List[pytest.Mark] = [\n                        mark\n                        for mark in function_marks\n                        if mark.name != \"parametrize\"\n                        and not ValidityMarker.is_validity_or_filter_marker(mark.name)\n                    ]\n\n                    for format_with_or_without_label in fixture_formats:\n                        fixture_format_parameter_set = labeled_format_parameter_set(\n                            format_with_or_without_label\n                        )\n                        fixture_format = (\n                            format_with_or_without_label.format\n                            if isinstance(format_with_or_without_label, LabeledFixtureFormat)\n                            else format_with_or_without_label\n                        )\n                        for fork in sorted(intersection_set):\n                            params: Dict[str, Any] = {spec_parameter_name: fixture_format}\n                            fixturenames = [\n                                spec_parameter_name,\n                            ]\n                            marks: List[pytest.Mark] = [\n                                mark  # type: ignore\n                                for mark in fixture_format_parameter_set.marks\n                                if mark.name != \"parametrize\"\n                            ]\n                            test_id = f\"fork_{fork.name()}-{fixture_format_parameter_set.id}\"\n                            if \"fork\" in func_parameters:\n                                params[\"fork\"] = fork\n                            if \"pre\" in func_parameters:\n                                fixturenames.append(\"pre\")\n                            if \"request\" in func_parameters:\n                                fixturenames.append(\"request\")\n\n                            if parametrize_marks:\n                                parameter_names, parameter_set_list = (\n                                    get_all_combinations_from_parametrize_marks(parametrize_marks)\n                                )\n                                for parameter_set in parameter_set_list:\n                                    # Copy and extend the params with the\n                                    # parameter set\n                                    case_marks = (\n                                        marks[:]\n                                        + [\n                                            mark\n                                            for mark in parameter_set.marks\n                                            if mark.name != \"parametrize\"\n                                        ]\n                                        + extra_function_marks\n                                    )\n                                    case_params = params.copy() | dict(\n                                        zip(parameter_names, parameter_set.values, strict=True)\n                                    )\n\n                                    yield FillerTestItem.from_parent(\n                                        self,\n                                        original_name=key,\n                                        func=func,\n                                        params=case_params,\n                                        fixturenames=fixturenames,\n                                        name=f\"{key}[{test_id}-{parameter_set.id}]\",\n                                        fork=fork,\n                                        fixture_format=fixture_format,\n                                        marks=case_marks,\n                                    )\n                            else:\n                                yield FillerTestItem.from_parent(\n                                    self,\n                                    original_name=key,\n                                    func=func,\n                                    params=params,\n                                    fixturenames=fixturenames,\n                                    name=f\"{key}[{test_id}]\",\n                                    fork=fork,\n                                    fixture_format=fixture_format,\n                                    marks=marks,\n                                )\n            except Exception as e:\n                pytest.fail(f\"Error loading file {self.path} as a test: {e}\")\n                warnings.warn(f\"Error loading file {self.path} as a test: {e}\", stacklevel=1)\n                return\n\n\nclass FillerTestItem(pytest.Item):\n    \"\"\"Filler test item produced from a single test from a static file.\"\"\"\n\n    originalname: str\n    func: Callable\n    params: Dict[str, Any]\n    fixturenames: List[str]\n    github_url: str = \"\"\n    fork: Fork\n    fixture_format: Type[BaseFixture]\n\n    def __init__(\n        self,\n        *args: Any,\n        original_name: str,\n        func: Callable,\n        params: Dict[str, Any],\n        fixturenames: List[str],\n        fork: Fork,\n        fixture_format: Type[BaseFixture],\n        marks: List[pytest.Mark],\n        **kwargs: Any,\n    ) -> None:\n        \"\"\"Initialize the filler test item.\"\"\"\n        super().__init__(*args, **kwargs)\n        self.originalname = original_name\n        self.func = func\n        self.params = params\n        self.fixturenames = fixturenames\n        self.fork = fork\n        self.fixture_format = fixture_format\n        for marker in marks:\n            if type(marker) is pytest.Mark:\n                self.own_markers.append(marker)\n            else:\n                self.add_marker(marker)  # type: ignore\n\n    def setup(self) -> None:\n        \"\"\"Resolve and apply fixtures before test execution.\"\"\"\n        self._fixtureinfo = self.session._fixturemanager.getfixtureinfo(\n            self,\n            None,\n            None,\n        )\n        request = TopRequest(\n            self,  # type: ignore[arg-type]\n            _ispytest=True,\n        )\n        for fixture_name in self.fixturenames:\n            if fixture_name == \"request\":\n                self.params[fixture_name] = request\n            else:\n                self.params[fixture_name] = request.getfixturevalue(fixture_name)\n\n    def runtest(self) -> None:\n        \"\"\"Execute the test logic for this specific static test.\"\"\"\n        self.func(**self.params)\n\n    def reportinfo(self) -> Tuple[Path, int, str]:\n        \"\"\"Provide information for test reporting.\"\"\"\n        return self.fspath, 0, f\"Static file test: {self.name}\"\n\n\n@pytest.fixture\ndef yul(fork: Fork, request: pytest.FixtureRequest) -> Type[Yul]:\n    \"\"\"\n    Fixture that allows contract code to be defined with Yul code.\n\n    This fixture defines a class that wraps the ::ethereum_test_tools.Yul class\n    so that upon instantiation within the test case, it provides the test\n    case's current fork parameter. The forks is then available for use in\n    solc's arguments for the Yul code compilation.\n\n    Test cases can override the default value by specifying a fixed version\n    with the @pytest.mark.compile_yul_with(FORK) marker.\n    \"\"\"\n    solc_target_fork: Fork | None\n    marker = request.node.get_closest_marker(\"compile_yul_with\")\n    assert hasattr(request.config, \"solc_version\"), \"solc_version not set in pytest config.\"\n    if marker:\n        if not marker.args[0]:\n            pytest.fail(\n                f\"{request.node.name}: Expected one argument in 'compile_yul_with' marker.\"\n            )\n        for fork in request.config.all_forks:  # type: ignore\n            if fork.name() == marker.args[0]:\n                solc_target_fork = fork\n                break\n        else:\n            pytest.fail(f\"{request.node.name}: Fork {marker.args[0]} not found in forks list.\")\n    else:\n        solc_target_fork = get_closest_fork(fork)\n        assert solc_target_fork is not None, \"No fork supports provided solc version.\"\n        if solc_target_fork != fork and request.config.getoption(\"verbose\") >= 1:\n            warnings.warn(\n                f\"Compiling Yul for {solc_target_fork.name()}, not {fork.name()}.\", stacklevel=2\n            )\n\n    class YulWrapper(Yul):\n        def __new__(cls, *args: Any, **kwargs: Any) -> Self:\n            kwargs[\"fork\"] = solc_target_fork\n            return super(YulWrapper, cls).__new__(cls, *args, **kwargs)\n\n    return YulWrapper\n"
  },
  {
    "path": "src/pytest_plugins/filler/tests/__init__.py",
    "content": "\"\"\"Filler tests.\"\"\"\n"
  },
  {
    "path": "src/pytest_plugins/filler/tests/conftest.py",
    "content": "\"\"\"Local pytest configuration for filler tests.\"\"\"\n\nimport os\nimport sysconfig\n\nimport pytest\n\n\n@pytest.fixture(autouse=True)\ndef monkeypatch_path_for_entry_points(\n    monkeypatch: pytest.MonkeyPatch,\n) -> None:\n    \"\"\"\n    Monkeypatch the PATH to add the \"bin\" directory where entrypoints are\n    installed.\n\n    This would typically be in the venv in which pytest is running these tests\n    and fill, which, with uv, is `./.venv/bin`.\n\n    This is required in order for fill to locate the ethereum-spec-evm-resolver\n    \"binary\" (entrypoint) when being executed using pytester.\n    \"\"\"\n    bin_dir = sysconfig.get_path(\"scripts\")\n    monkeypatch.setenv(\"PATH\", f\"{bin_dir}:{os.environ['PATH']}\")\n"
  },
  {
    "path": "src/pytest_plugins/filler/tests/test_benchmarking.py",
    "content": "\"\"\"Test the benchmarking pytest plugin for gas benchmark values.\"\"\"\n\nimport textwrap\nfrom pathlib import Path\n\nimport pytest\n\ntest_module_dummy = textwrap.dedent(\n    \"\"\"\\\n    import pytest\n\n    from ethereum_test_tools import Environment\n\n    @pytest.mark.valid_at(\"Istanbul\")\n    def test_dummy_benchmark_test(state_test, gas_benchmark_value) -> None:\n        state_test(\n            env=env,pre={},post={},tx=None)\n    \"\"\"\n)\n\ntest_module_without_fixture = textwrap.dedent(\n    \"\"\"\\\n    import pytest\n\n    from ethereum_test_tools import Environment\n\n    @pytest.mark.valid_at(\"Istanbul\")\n    def test_dummy_no_benchmark_test(state_test) -> None:\n        state_test(env=env, pre={}, post={}, tx=None)\n    \"\"\"\n)\n\n\ndef setup_test_directory_structure(\n    pytester: pytest.Pytester, test_content: str, test_filename: str\n) -> Path:\n    \"\"\"\n    Set up the common test directory structure used across multiple tests.\n\n    Args:\n      pytester: The pytest Pytester fixture\n      test_content: The content to write to the test file\n      test_filename: The name of the test file to create\n\n    Returns: The path to the created test module file\n\n    \"\"\"\n    tests_dir = pytester.mkdir(\"tests\")\n    istanbul_tests_dir = tests_dir / \"istanbul\"\n    istanbul_tests_dir.mkdir()\n    dummy_dir = istanbul_tests_dir / \"dummy_test_module\"\n    dummy_dir.mkdir()\n    test_module = dummy_dir / test_filename\n    test_module.write_text(test_content)\n\n    pytester.copy_example(name=\"src/cli/pytest_commands/pytest_ini_files/pytest-fill.ini\")\n\n    return test_module\n\n\ndef test_gas_benchmark_option_added(pytester: pytest.Pytester) -> None:\n    \"\"\"Test that the --gas-benchmark-values option is properly added.\"\"\"\n    pytester.copy_example(name=\"src/cli/pytest_commands/pytest_ini_files/pytest-fill.ini\")\n\n    # Command: pytest -p pytest_plugins.filler.benchmarking --help\n    result = pytester.runpytest(\"-c\", \"pytest-fill.ini\", \"--help\")\n\n    assert result.ret == 0\n    assert any(\"--gas-benchmark-values\" in line for line in result.outlines)\n    assert any(\"Specify gas benchmark values for tests\" in line for line in result.outlines)\n\n\ndef test_benchmarking_mode_configured_with_option(pytester: pytest.Pytester) -> None:\n    \"\"\"\n    Test that fill_mode is set to BENCHMARKING when --gas-benchmark-values is\n    used.\n    \"\"\"\n    setup_test_directory_structure(pytester, test_module_dummy, \"test_dummy_benchmark.py\")\n\n    # Test with gas benchmark values\n    result = pytester.runpytest(\n        \"-c\",\n        \"pytest-fill.ini\",\n        \"--fork\",\n        \"Istanbul\",\n        \"--gas-benchmark-values\",\n        \"10,20,30\",\n        \"tests/istanbul/dummy_test_module/\",\n        \"--collect-only\",\n        \"-q\",\n    )\n\n    assert result.ret == 0\n    assert any(\"9 tests collected\" in line for line in result.outlines)\n    # Check that the test names include the benchmark gas values\n    assert any(\"benchmark-gas-value_10M\" in line for line in result.outlines)\n    assert any(\"benchmark-gas-value_20M\" in line for line in result.outlines)\n    assert any(\"benchmark-gas-value_30M\" in line for line in result.outlines)\n\n\ndef test_benchmarking_mode_not_configured_without_option(pytester: pytest.Pytester) -> None:\n    \"\"\"\n    Test that fill_mode is not set to BENCHMARKING when --gas-benchmark-values\n    is not used.\n    \"\"\"\n    setup_test_directory_structure(pytester, test_module_dummy, \"test_dummy_benchmark.py\")\n\n    # Test without gas benchmark values\n    result = pytester.runpytest(\n        \"-c\",\n        \"pytest-fill.ini\",\n        \"--fork\",\n        \"Istanbul\",\n        \"tests/istanbul/dummy_test_module/\",\n        \"--collect-only\",\n        \"-q\",\n    )\n\n    assert result.ret == 0\n    # Should generate normal test variants (3) without parametrization\n    assert any(\"3 tests collected\" in line for line in result.outlines)\n    assert not any(\"benchmark-gas-value_10M\" in line for line in result.outlines)\n    assert not any(\"benchmark-gas-value_20M\" in line for line in result.outlines)\n    assert not any(\"benchmark-gas-value_30M\" in line for line in result.outlines)\n"
  },
  {
    "path": "src/pytest_plugins/filler/tests/test_collect_only.py",
    "content": "\"\"\"Test the fill command's --collect-only pytest option.\"\"\"\n\nimport textwrap\n\nimport pytest\n\ntest_module_dummy = textwrap.dedent(\n    \"\"\"\\\n    import pytest\n\n    from ethereum_test_tools import Environment\n\n    @pytest.mark.valid_at(\"Istanbul\")\n    def test_dummy_collect_only_test(state_test) -> None:\n        state_test(env=Environment(), pre={}, post={}, tx=None)\n    \"\"\"\n)\n\n\ndef test_collect_only_output(pytester: pytest.Pytester) -> None:\n    \"\"\"Test that --collect-only option produces expected output.\"\"\"\n    tests_dir = pytester.mkdir(\"tests\")\n    istanbul_tests_dir = tests_dir / \"istanbul\"\n    istanbul_tests_dir.mkdir()\n    dummy_dir = istanbul_tests_dir / \"dummy_test_module\"\n    dummy_dir.mkdir()\n    test_module = dummy_dir / \"test_dummy_collect.py\"\n    test_module.write_text(test_module_dummy)\n\n    pytester.copy_example(name=\"src/cli/pytest_commands/pytest_ini_files/pytest-fill.ini\")\n\n    result = pytester.runpytest(\n        \"-c\",\n        \"pytest-fill.ini\",\n        \"--fork\",\n        \"Istanbul\",\n        \"tests/istanbul/dummy_test_module/\",\n        \"--collect-only\",\n        \"-q\",\n    )\n\n    assert result.ret == 0, f\"Fill command failed:\\n{result.outlines}\"\n\n    assert any(\n        \"tests/istanbul/dummy_test_module/test_dummy_collect.py::test_dummy_collect_only_test[fork_Istanbul-state_test]\"\n        in line\n        for line in result.outlines\n    ), f\"Expected test output: {result.outlines}\"\n    assert any(\n        \"tests/istanbul/dummy_test_module/test_dummy_collect.py::test_dummy_collect_only_test[fork_Istanbul-blockchain_test_from_state_test]\"\n        in line\n        for line in result.outlines\n    ), f\"Expected test output: {result.outlines}\"\n    # fill generates 3 test variants: state_test,\n    # blockchain_test_from_state_test, blockchain_test_engine_from_state_test\n    assert any(\"3 tests collected\" in line for line in result.outlines)\n"
  },
  {
    "path": "src/pytest_plugins/filler/tests/test_eip_checklist.py",
    "content": "\"\"\"Test the EIP checklist plugin functionality.\"\"\"\n\nimport re\nimport textwrap\nfrom typing import Any\n\n\ndef test_eip_checklist_collection(testdir: Any) -> None:\n    \"\"\"Test that checklist markers are collected correctly.\"\"\"\n    # Create the test in an EIP-specific directory\n    tests_dir = testdir.mkdir(\"tests\")\n\n    prague_tests_dir = tests_dir.mkdir(\"prague\")\n    eip_7702_tests_dir = prague_tests_dir.mkdir(\"eip7702_set_code_tx\")\n    test_7702_module = eip_7702_tests_dir.join(\"test_eip7702.py\")\n    test_7702_module.write(\n        textwrap.dedent(\n            \"\"\"\n            import pytest\n            from ethereum_test_tools import StateTestFiller\n\n            from ethereum_test_checklists import EIPChecklist\n\n            REFERENCE_SPEC_GIT_PATH = \"N/A\"\n            REFERENCE_SPEC_VERSION = \"N/A\"\n\n            @pytest.mark.valid_at(\"Prague\")\n            @EIPChecklist.TransactionType.Test.IntrinsicValidity.GasLimit.Exact()\n            def test_exact_gas(state_test: StateTestFiller) -> None:\n                pass\n\n            @pytest.mark.valid_at(\"Prague\")\n            @EIPChecklist.TransactionType.Test.Signature.Invalid.V.Two(eip=[2930])\n            def test_invalid_v(state_test: StateTestFiller) -> None:\n                pass\n            \"\"\"\n        )\n    )\n    eip_7702_external_coverage_file = eip_7702_tests_dir.join(\n        \"eip_checklist_external_coverage.txt\"\n    )\n    eip_7702_external_coverage_file.write(\n        textwrap.dedent(\n            \"\"\"\n            general/code_coverage/eels = DEBUG EXTERNAL COVERAGE REASON\n            \"\"\"\n        )\n    )\n\n    berlin_tests_dir = tests_dir.mkdir(\"berlin\")\n    eip_2930_tests_dir = berlin_tests_dir.mkdir(\"eip2930_access_list\")\n    test_2930_module = eip_2930_tests_dir.join(\"test_eip2930.py\")\n    test_2930_module.write(\n        textwrap.dedent(\n            \"\"\"\n            import pytest\n            from ethereum_test_tools import StateTestFiller\n\n            REFERENCE_SPEC_GIT_PATH = \"N/A\"\n            REFERENCE_SPEC_VERSION = \"N/A\"\n\n            @pytest.mark.valid_at(\"Berlin\")\n            def test_berlin_one(state_test: StateTestFiller) -> None:\n                pass\n            \"\"\"\n        )\n    )\n    test_2930_n_a_file = eip_2930_tests_dir.join(\"eip_checklist_not_applicable.txt\")\n    test_2930_n_a_file.write(\n        textwrap.dedent(\n            \"\"\"\n            system_contract = DEBUG NOT APPLICABLE REASON\n            \"\"\"\n        )\n    )\n    # Run pytest with checklist-only mode\n    testdir.copy_example(name=\"src/cli/pytest_commands/pytest_ini_files/pytest-fill.ini\")\n    result = testdir.runpytest(\n        \"-c\",\n        \"pytest-fill.ini\",\n        \"-p\",\n        \"pytest_plugins.filler.eip_checklist\",\n        \"--collect-only\",\n        \"--checklist-output\",\n        str(testdir.tmpdir / \"checklists\"),\n        str(tests_dir),\n    )\n    result.assert_outcomes(\n        passed=0,\n        failed=0,\n        skipped=0,\n        errors=0,\n    )\n\n    # Check that checklists were generated\n    checklist_dir = testdir.tmpdir / \"checklists\"\n    assert checklist_dir.exists()\n\n    checklist_file = checklist_dir / \"eip7702_checklist.md\"\n    assert checklist_file.exists()\n\n    # Verify the checklist contains the expected markers\n    content = checklist_file.readlines()\n    assert any(re.search(r\"✅.*test_exact_gas\", line) for line in content)\n    assert any(re.search(r\"✅.*test_invalid_v\", line) for line in content)\n    assert any(re.search(r\"✅.*DEBUG EXTERNAL COVERAGE REASON\", line) for line in content)\n\n    checklist_file = checklist_dir / \"eip2930_checklist.md\"\n    assert checklist_file.exists()\n    content = checklist_file.readlines()\n    assert not any(re.search(r\"✅.*test_exact_gas\", line) for line in content)\n    assert any(re.search(r\"✅.*test_invalid_v\", line) for line in content)\n    assert any(re.search(r\"N/A.*DEBUG NOT APPLICABLE REASON\", line) for line in content)\n"
  },
  {
    "path": "src/pytest_plugins/filler/tests/test_filler.py",
    "content": "\"\"\"\nTest the filler plugin.\n\"\"\"\n\nimport configparser\nimport json\nimport os\nimport textwrap\nfrom datetime import datetime\nfrom pathlib import Path\n\nimport pytest\n\nfrom ethereum_test_tools import Environment\nfrom ethereum_clis import ExecutionSpecsTransitionTool, TransitionTool\nfrom ..filler import default_output_directory\n\n\n# flake8: noqa\ndef get_all_files_in_directory(base_dir: str) -> list[Path]:  # noqa: D103\n    base_path = Path(base_dir)\n    return [f.relative_to(os.getcwd()) for f in base_path.rglob(\"*\") if f.is_file()]\n\n\ndef count_keys_in_fixture(file_path: Path) -> int:  # noqa: D103\n    with open(file_path, \"r\") as f:\n        data = json.load(f)\n        if not isinstance(data, dict):  # Ensure the loaded data is a dictionary\n            raise ValueError(\n                f\"Expected a dictionary in {file_path}, but got {type(data).__name__}.\"\n            )\n        return len(data)\n\n\ntest_module_paris = textwrap.dedent(\n    \"\"\"\\\n    import pytest\n\n    from ethereum_test_tools import Account, Environment, TestAddress, Transaction\n\n    @pytest.mark.valid_from(\"Paris\")\n    @pytest.mark.valid_until(\"Shanghai\")\n    def test_paris_one(state_test) -> None:\n        state_test(env=Environment(),\n                    pre={TestAddress: Account(balance=1_000_000)}, post={}, tx=Transaction())\n\n    @pytest.mark.valid_from(\"Paris\")\n    @pytest.mark.valid_until(\"Shanghai\")\n    def test_paris_two(state_test) -> None:\n        state_test(env=Environment(),\n                    pre={TestAddress: Account(balance=1_000_000)}, post={}, tx=Transaction())\n    \"\"\"\n)\ntest_count_paris = 4\n\ntest_module_shanghai = textwrap.dedent(\n    \"\"\"\\\n    import pytest\n\n    from ethereum_test_tools import Account, Environment, TestAddress, Transaction\n\n    @pytest.mark.valid_from(\"Paris\")\n    @pytest.mark.valid_until(\"Shanghai\")\n    def test_shanghai_one(state_test) -> None:\n        state_test(env=Environment(),\n                    pre={TestAddress: Account(balance=1_000_000)}, post={}, tx=Transaction())\n\n    @pytest.mark.parametrize(\"x\", [1, 2, 3])\n    @pytest.mark.valid_from(\"Paris\")\n    @pytest.mark.valid_until(\"Shanghai\")\n    def test_shanghai_two(state_test, x) -> None:\n        state_test(env=Environment(),\n                    pre={TestAddress: Account(balance=1_000_000)}, post={}, tx=Transaction())\n    \"\"\"\n)\n\ntest_count_shanghai = 8\ntotal_test_count = test_count_paris + test_count_shanghai\n\n\n@pytest.mark.parametrize(\n    \"args, expected_fixture_files, expected_fixture_counts\",\n    [\n        pytest.param(\n            [],\n            [\n                Path(\"fixtures/blockchain_tests/paris/module_paris/paris_one.json\"),\n                Path(\"fixtures/blockchain_tests_engine/paris/module_paris/paris_one.json\"),\n                Path(\"fixtures/state_tests/paris/module_paris/paris_one.json\"),\n                Path(\"fixtures/blockchain_tests/paris/module_paris/paris_two.json\"),\n                Path(\"fixtures/blockchain_tests_engine/paris/module_paris/paris_two.json\"),\n                Path(\"fixtures/state_tests/paris/module_paris/paris_two.json\"),\n                Path(\"fixtures/blockchain_tests/shanghai/module_shanghai/shanghai_one.json\"),\n                Path(\n                    \"fixtures/blockchain_tests_engine/shanghai/module_shanghai/shanghai_one.json\"\n                ),\n                Path(\"fixtures/state_tests/shanghai/module_shanghai/shanghai_one.json\"),\n                Path(\"fixtures/blockchain_tests/shanghai/module_shanghai/shanghai_two.json\"),\n                Path(\n                    \"fixtures/blockchain_tests_engine/shanghai/module_shanghai/shanghai_two.json\"\n                ),\n                Path(\"fixtures/state_tests/shanghai/module_shanghai/shanghai_two.json\"),\n            ],\n            [2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 6, 6],\n            id=\"default-args\",\n        ),\n        pytest.param(\n            [\"--skip-index\"],\n            [\n                Path(\"fixtures/blockchain_tests/paris/module_paris/paris_one.json\"),\n                Path(\"fixtures/blockchain_tests_engine/paris/module_paris/paris_one.json\"),\n                Path(\"fixtures/state_tests/paris/module_paris/paris_one.json\"),\n                Path(\"fixtures/blockchain_tests/paris/module_paris/paris_two.json\"),\n                Path(\"fixtures/blockchain_tests_engine/paris/module_paris/paris_two.json\"),\n                Path(\"fixtures/state_tests/paris/module_paris/paris_two.json\"),\n                Path(\"fixtures/blockchain_tests/shanghai/module_shanghai/shanghai_one.json\"),\n                Path(\n                    \"fixtures/blockchain_tests_engine/shanghai/module_shanghai/shanghai_one.json\"\n                ),\n                Path(\"fixtures/state_tests/shanghai/module_shanghai/shanghai_one.json\"),\n                Path(\"fixtures/blockchain_tests/shanghai/module_shanghai/shanghai_two.json\"),\n                Path(\n                    \"fixtures/blockchain_tests_engine/shanghai/module_shanghai/shanghai_two.json\"\n                ),\n                Path(\"fixtures/state_tests/shanghai/module_shanghai/shanghai_two.json\"),\n            ],\n            [2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 6, 6],\n            id=\"skip-index\",\n        ),\n        pytest.param(\n            [\"--build-name\", \"test_build\"],\n            [\n                Path(\"fixtures/blockchain_tests/paris/module_paris/paris_one.json\"),\n                Path(\"fixtures/blockchain_tests_engine/paris/module_paris/paris_one.json\"),\n                Path(\"fixtures/state_tests/paris/module_paris/paris_one.json\"),\n                Path(\"fixtures/blockchain_tests/paris/module_paris/paris_two.json\"),\n                Path(\"fixtures/blockchain_tests_engine/paris/module_paris/paris_two.json\"),\n                Path(\"fixtures/state_tests/paris/module_paris/paris_two.json\"),\n                Path(\"fixtures/blockchain_tests/shanghai/module_shanghai/shanghai_one.json\"),\n                Path(\n                    \"fixtures/blockchain_tests_engine/shanghai/module_shanghai/shanghai_one.json\"\n                ),\n                Path(\"fixtures/state_tests/shanghai/module_shanghai/shanghai_one.json\"),\n                Path(\"fixtures/blockchain_tests/shanghai/module_shanghai/shanghai_two.json\"),\n                Path(\n                    \"fixtures/blockchain_tests_engine/shanghai/module_shanghai/shanghai_two.json\"\n                ),\n                Path(\"fixtures/state_tests/shanghai/module_shanghai/shanghai_two.json\"),\n            ],\n            [2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 6, 6],\n            id=\"build-name-in-fixtures-ini-file\",\n        ),\n        pytest.param(\n            [\"--single-fixture-per-file\"],\n            [\n                Path(\n                    \"fixtures/blockchain_tests/paris/module_paris/paris_one__fork_Paris_blockchain_test_from_state_test.json\"\n                ),\n                Path(\n                    \"fixtures/state_tests/paris/module_paris/paris_one__fork_Paris_state_test.json\"\n                ),\n                Path(\n                    \"fixtures/blockchain_tests_engine/paris/module_paris/paris_one__fork_Paris_blockchain_test_engine_from_state_test.json\"\n                ),\n                Path(\n                    \"fixtures/blockchain_tests/paris/module_paris/paris_one__fork_Shanghai_blockchain_test_from_state_test.json\"\n                ),\n                Path(\n                    \"fixtures/state_tests/paris/module_paris/paris_one__fork_Shanghai_state_test.json\"\n                ),\n                Path(\n                    \"fixtures/blockchain_tests_engine/paris/module_paris/paris_one__fork_Shanghai_blockchain_test_engine_from_state_test.json\"\n                ),\n                Path(\n                    \"fixtures/blockchain_tests/paris/module_paris/paris_two__fork_Paris_blockchain_test_from_state_test.json\"\n                ),\n                Path(\n                    \"fixtures/state_tests/paris/module_paris/paris_two__fork_Paris_state_test.json\"\n                ),\n                Path(\n                    \"fixtures/blockchain_tests_engine/paris/module_paris/paris_two__fork_Paris_blockchain_test_engine_from_state_test.json\"\n                ),\n                Path(\n                    \"fixtures/blockchain_tests/paris/module_paris/paris_two__fork_Shanghai_blockchain_test_from_state_test.json\"\n                ),\n                Path(\n                    \"fixtures/state_tests/paris/module_paris/paris_two__fork_Shanghai_state_test.json\"\n                ),\n                Path(\n                    \"fixtures/blockchain_tests_engine/paris/module_paris/paris_two__fork_Shanghai_blockchain_test_engine_from_state_test.json\"\n                ),\n                Path(\n                    \"fixtures/blockchain_tests/shanghai/module_shanghai/shanghai_one__fork_Paris_blockchain_test_from_state_test.json\"\n                ),\n                Path(\n                    \"fixtures/state_tests/shanghai/module_shanghai/shanghai_one__fork_Paris_state_test.json\"\n                ),\n                Path(\n                    \"fixtures/blockchain_tests_engine/shanghai/module_shanghai/shanghai_one__fork_Paris_blockchain_test_engine_from_state_test.json\"\n                ),\n                Path(\n                    \"fixtures/blockchain_tests/shanghai/module_shanghai/shanghai_one__fork_Shanghai_blockchain_test_from_state_test.json\"\n                ),\n                Path(\n                    \"fixtures/state_tests/shanghai/module_shanghai/shanghai_one__fork_Shanghai_state_test.json\"\n                ),\n                Path(\n                    \"fixtures/blockchain_tests_engine/shanghai/module_shanghai/shanghai_one__fork_Shanghai_blockchain_test_engine_from_state_test.json\"\n                ),\n                Path(\n                    \"fixtures/blockchain_tests/shanghai/module_shanghai/shanghai_two__fork_Paris_blockchain_test_from_state_test_x_1.json\"\n                ),\n                Path(\n                    \"fixtures/state_tests/shanghai/module_shanghai/shanghai_two__fork_Paris_state_test_x_1.json\"\n                ),\n                Path(\n                    \"fixtures/blockchain_tests_engine/shanghai/module_shanghai/shanghai_two__fork_Paris_blockchain_test_engine_from_state_test_x_1.json\"\n                ),\n                Path(\n                    \"fixtures/blockchain_tests/shanghai/module_shanghai/shanghai_two__fork_Paris_blockchain_test_from_state_test_x_2.json\"\n                ),\n                Path(\n                    \"fixtures/state_tests/shanghai/module_shanghai/shanghai_two__fork_Paris_state_test_x_2.json\"\n                ),\n                Path(\n                    \"fixtures/blockchain_tests_engine/shanghai/module_shanghai/shanghai_two__fork_Paris_blockchain_test_engine_from_state_test_x_2.json\"\n                ),\n                Path(\n                    \"fixtures/blockchain_tests/shanghai/module_shanghai/shanghai_two__fork_Paris_blockchain_test_from_state_test_x_3.json\"\n                ),\n                Path(\n                    \"fixtures/state_tests/shanghai/module_shanghai/shanghai_two__fork_Paris_state_test_x_3.json\"\n                ),\n                Path(\n                    \"fixtures/blockchain_tests_engine/shanghai/module_shanghai/shanghai_two__fork_Paris_blockchain_test_engine_from_state_test_x_3.json\"\n                ),\n                Path(\n                    \"fixtures/blockchain_tests/shanghai/module_shanghai/shanghai_two__fork_Shanghai_blockchain_test_from_state_test_x_1.json\"\n                ),\n                Path(\n                    \"fixtures/state_tests/shanghai/module_shanghai/shanghai_two__fork_Shanghai_state_test_x_1.json\"\n                ),\n                Path(\n                    \"fixtures/blockchain_tests_engine/shanghai/module_shanghai/shanghai_two__fork_Shanghai_blockchain_test_engine_from_state_test_x_1.json\"\n                ),\n                Path(\n                    \"fixtures/blockchain_tests/shanghai/module_shanghai/shanghai_two__fork_Shanghai_blockchain_test_from_state_test_x_2.json\"\n                ),\n                Path(\n                    \"fixtures/state_tests/shanghai/module_shanghai/shanghai_two__fork_Shanghai_state_test_x_2.json\"\n                ),\n                Path(\n                    \"fixtures/blockchain_tests_engine/shanghai/module_shanghai/shanghai_two__fork_Shanghai_blockchain_test_engine_from_state_test_x_2.json\"\n                ),\n                Path(\n                    \"fixtures/blockchain_tests/shanghai/module_shanghai/shanghai_two__fork_Shanghai_blockchain_test_from_state_test_x_3.json\"\n                ),\n                Path(\n                    \"fixtures/state_tests/shanghai/module_shanghai/shanghai_two__fork_Shanghai_state_test_x_3.json\"\n                ),\n                Path(\n                    \"fixtures/blockchain_tests_engine/shanghai/module_shanghai/shanghai_two__fork_Shanghai_blockchain_test_engine_from_state_test_x_3.json\"\n                ),\n            ],\n            [1] * 36,\n            id=\"single-fixture-per-file\",\n        ),\n        pytest.param(\n            [\"--single-fixture-per-file\", \"--output\", \"other_fixtures\"],\n            [\n                Path(\n                    \"other_fixtures/blockchain_tests/paris/module_paris/paris_one__fork_Paris_blockchain_test_from_state_test.json\"\n                ),\n                Path(\n                    \"other_fixtures/state_tests/paris/module_paris/paris_one__fork_Paris_state_test.json\"\n                ),\n                Path(\n                    \"other_fixtures/blockchain_tests_engine/paris/module_paris/paris_one__fork_Paris_blockchain_test_engine_from_state_test.json\"\n                ),\n                Path(\n                    \"other_fixtures/blockchain_tests/paris/module_paris/paris_one__fork_Shanghai_blockchain_test_from_state_test.json\"\n                ),\n                Path(\n                    \"other_fixtures/state_tests/paris/module_paris/paris_one__fork_Shanghai_state_test.json\"\n                ),\n                Path(\n                    \"other_fixtures/blockchain_tests_engine/paris/module_paris/paris_one__fork_Shanghai_blockchain_test_engine_from_state_test.json\"\n                ),\n                Path(\n                    \"other_fixtures/blockchain_tests/paris/module_paris/paris_two__fork_Paris_blockchain_test_from_state_test.json\"\n                ),\n                Path(\n                    \"other_fixtures/state_tests/paris/module_paris/paris_two__fork_Paris_state_test.json\"\n                ),\n                Path(\n                    \"other_fixtures/blockchain_tests_engine/paris/module_paris/paris_two__fork_Paris_blockchain_test_engine_from_state_test.json\"\n                ),\n                Path(\n                    \"other_fixtures/blockchain_tests/paris/module_paris/paris_two__fork_Shanghai_blockchain_test_from_state_test.json\"\n                ),\n                Path(\n                    \"other_fixtures/state_tests/paris/module_paris/paris_two__fork_Shanghai_state_test.json\"\n                ),\n                Path(\n                    \"other_fixtures/blockchain_tests_engine/paris/module_paris/paris_two__fork_Shanghai_blockchain_test_engine_from_state_test.json\"\n                ),\n                Path(\n                    \"other_fixtures/blockchain_tests/shanghai/module_shanghai/shanghai_one__fork_Paris_blockchain_test_from_state_test.json\"\n                ),\n                Path(\n                    \"other_fixtures/state_tests/shanghai/module_shanghai/shanghai_one__fork_Paris_state_test.json\"\n                ),\n                Path(\n                    \"other_fixtures/blockchain_tests_engine/shanghai/module_shanghai/shanghai_one__fork_Paris_blockchain_test_engine_from_state_test.json\"\n                ),\n                Path(\n                    \"other_fixtures/blockchain_tests/shanghai/module_shanghai/shanghai_one__fork_Shanghai_blockchain_test_from_state_test.json\"\n                ),\n                Path(\n                    \"other_fixtures/state_tests/shanghai/module_shanghai/shanghai_one__fork_Shanghai_state_test.json\"\n                ),\n                Path(\n                    \"other_fixtures/blockchain_tests_engine/shanghai/module_shanghai/shanghai_one__fork_Shanghai_blockchain_test_engine_from_state_test.json\"\n                ),\n                Path(\n                    \"other_fixtures/blockchain_tests/shanghai/module_shanghai/shanghai_two__fork_Paris_blockchain_test_from_state_test_x_1.json\"\n                ),\n                Path(\n                    \"other_fixtures/state_tests/shanghai/module_shanghai/shanghai_two__fork_Paris_state_test_x_1.json\"\n                ),\n                Path(\n                    \"other_fixtures/blockchain_tests_engine/shanghai/module_shanghai/shanghai_two__fork_Paris_blockchain_test_engine_from_state_test_x_1.json\"\n                ),\n                Path(\n                    \"other_fixtures/blockchain_tests/shanghai/module_shanghai/shanghai_two__fork_Paris_blockchain_test_from_state_test_x_2.json\"\n                ),\n                Path(\n                    \"other_fixtures/state_tests/shanghai/module_shanghai/shanghai_two__fork_Paris_state_test_x_2.json\"\n                ),\n                Path(\n                    \"other_fixtures/blockchain_tests_engine/shanghai/module_shanghai/shanghai_two__fork_Paris_blockchain_test_engine_from_state_test_x_2.json\"\n                ),\n                Path(\n                    \"other_fixtures/blockchain_tests/shanghai/module_shanghai/shanghai_two__fork_Paris_blockchain_test_from_state_test_x_3.json\"\n                ),\n                Path(\n                    \"other_fixtures/state_tests/shanghai/module_shanghai/shanghai_two__fork_Paris_state_test_x_3.json\"\n                ),\n                Path(\n                    \"other_fixtures/blockchain_tests_engine/shanghai/module_shanghai/shanghai_two__fork_Paris_blockchain_test_engine_from_state_test_x_3.json\"\n                ),\n                Path(\n                    \"other_fixtures/blockchain_tests/shanghai/module_shanghai/shanghai_two__fork_Shanghai_blockchain_test_from_state_test_x_1.json\"\n                ),\n                Path(\n                    \"other_fixtures/state_tests/shanghai/module_shanghai/shanghai_two__fork_Shanghai_state_test_x_1.json\"\n                ),\n                Path(\n                    \"other_fixtures/blockchain_tests_engine/shanghai/module_shanghai/shanghai_two__fork_Shanghai_blockchain_test_engine_from_state_test_x_1.json\"\n                ),\n                Path(\n                    \"other_fixtures/blockchain_tests/shanghai/module_shanghai/shanghai_two__fork_Shanghai_blockchain_test_from_state_test_x_2.json\"\n                ),\n                Path(\n                    \"other_fixtures/state_tests/shanghai/module_shanghai/shanghai_two__fork_Shanghai_state_test_x_2.json\"\n                ),\n                Path(\n                    \"other_fixtures/blockchain_tests_engine/shanghai/module_shanghai/shanghai_two__fork_Shanghai_blockchain_test_engine_from_state_test_x_2.json\"\n                ),\n                Path(\n                    \"other_fixtures/blockchain_tests/shanghai/module_shanghai/shanghai_two__fork_Shanghai_blockchain_test_from_state_test_x_3.json\"\n                ),\n                Path(\n                    \"other_fixtures/state_tests/shanghai/module_shanghai/shanghai_two__fork_Shanghai_state_test_x_3.json\"\n                ),\n                Path(\n                    \"other_fixtures/blockchain_tests_engine/shanghai/module_shanghai/shanghai_two__fork_Shanghai_blockchain_test_engine_from_state_test_x_3.json\"\n                ),\n            ],\n            [1] * 36,\n            id=\"single-fixture-per-file_custom_output_dir\",\n        ),\n    ],\n)\ndef test_fixture_output_based_on_command_line_args(\n    testdir: pytest.Testdir,\n    args: list[str],\n    expected_fixture_files: list[Path],\n    expected_fixture_counts: list[int],\n    default_t8n: TransitionTool,\n) -> None:\n    \"\"\"\n    Test:\n    - fixture files are created at the expected paths.\n    - no other files are present in the output directory.\n    - each fixture file contains the expected number of fixtures.\n\n    The modules above generate the following test cases:\n        tests/paris/test_module_paris.py::test_paris_one[fork_Paris] PASSED\n        tests/paris/test_module_paris.py::test_paris_one[fork_Shanghai] PASSED\n        tests/paris/test_module_paris.py::test_paris_two[fork_Paris] PASSED\n        tests/paris/test_module_paris.py::test_paris_two[fork_Shanghai] PASSED\n        tests/shanghai/test_module_shanghai.py::test_shanghai_one[fork_Paris] PASSED\n        tests/shanghai/test_module_shanghai.py::test_shanghai_one[fork_Shanghai] PASSED\n        tests/shanghai/test_module_shanghai.py::test_shanghai_two[fork_Paris-x=1] PASSED\n        tests/shanghai/test_module_shanghai.py::test_shanghai_two[fork_Paris-x=2] PASSED\n        tests/shanghai/test_module_shanghai.py::test_shanghai_two[fork_Paris-x=3] PASSED\n        tests/shanghai/test_module_shanghai.py::test_shanghai_two[fork_Shanghai-x=1] PASSED\n        tests/shanghai/test_module_shanghai.py::test_shanghai_two[fork_Shanghai-x=2] PASSED\n        tests/shanghai/test_module_shanghai.py::test_shanghai_two[fork_Shanghai-x=3] PASSED\n    \"\"\"\n    tests_dir = testdir.mkdir(\"tests\")\n\n    paris_tests_dir = tests_dir.mkdir(\"paris\")\n    test_module = paris_tests_dir.join(\"test_module_paris.py\")\n    test_module.write(test_module_paris)\n\n    shanghai_tests_dir = tests_dir.mkdir(\"shanghai\")\n    test_module = shanghai_tests_dir.join(\"test_module_shanghai.py\")\n    test_module.write(test_module_shanghai)\n\n    testdir.copy_example(name=\"src/cli/pytest_commands/pytest_ini_files/pytest-fill.ini\")\n    args.append(\"-c\")\n    args.append(\"pytest-fill.ini\")\n    args.append(\"-v\")\n    args.append(\"--no-html\")\n    args.append(\"--t8n-server-url\")\n    assert default_t8n.server_url is not None\n    args.append(default_t8n.server_url)\n\n    result = testdir.runpytest(*args)\n    result.assert_outcomes(\n        passed=total_test_count * 3,\n        failed=0,\n        skipped=0,\n        errors=0,\n    )\n    if \"--output\" in args:\n        output_dir = Path(args[args.index(\"--output\") + 1]).absolute()\n    else:\n        output_dir = Path(default_output_directory()).absolute()\n    assert output_dir.exists()\n\n    all_files = get_all_files_in_directory(str(output_dir))\n    meta_dir = os.path.join(output_dir, \".meta\")\n    assert os.path.exists(meta_dir), f\"The directory {meta_dir} does not exist\"\n\n    expected_ini_file = \"fixtures.ini\"\n    expected_index_file = \"index.json\"\n    expected_resolver_file = None\n    resolver_file = None\n    if TransitionTool.default_tool == ExecutionSpecsTransitionTool:\n        expected_resolver_file = \"eels_resolutions.json\"\n\n    ini_file = None\n    index_file = None\n    for file in all_files:\n        if file.name == expected_ini_file:\n            ini_file = file\n        elif file.name == expected_index_file:\n            index_file = file\n        elif expected_resolver_file and file.name == expected_resolver_file:\n            resolver_file = file\n            assert resolver_file.exists(), f\"{resolver_file} does not exist\"\n\n    expected_additional_files = {expected_ini_file, expected_index_file}\n    if resolver_file:\n        expected_additional_files.add(str(expected_resolver_file))\n    all_fixtures = [file for file in all_files if file.name not in expected_additional_files]\n    for fixture_file, fixture_count in zip(expected_fixture_files, expected_fixture_counts):\n        assert fixture_file.exists(), f\"{fixture_file} does not exist\"\n        assert fixture_count == count_keys_in_fixture(fixture_file), (\n            f\"Fixture count mismatch for {fixture_file}\"\n        )\n\n    assert set(all_fixtures) == set(expected_fixture_files), (\n        f\"Unexpected files in directory: {set(all_fixtures) - set(expected_fixture_files)}\"\n    )\n\n    assert ini_file is not None, f\"No {expected_ini_file} file was found in {meta_dir}\"\n    config = configparser.ConfigParser()\n    ini_file_text = ini_file.read_text()\n    ini_file_text = ini_file_text.replace(default_t8n.server_url, \"t8n_server_path\")\n    config.read_string(ini_file_text)\n\n    if \"--skip-index\" not in args:\n        assert index_file is not None, f\"No {expected_index_file} file was found in {meta_dir}\"\n\n    properties = {key: value for key, value in config.items(\"fixtures\")}\n    assert \"timestamp\" in properties\n    timestamp = datetime.fromisoformat(properties[\"timestamp\"])\n    assert timestamp.year == datetime.now().year\n    if \"--build-name\" in args:\n        assert \"build\" in properties\n        build_name = args[args.index(\"--build-name\") + 1]\n        assert properties[\"build\"] == build_name\n\n\ntest_module_environment_variables = textwrap.dedent(\n    \"\"\"\\\n    import pytest\n\n    from ethereum_test_tools import Account, Environment, Transaction\n\n    @pytest.mark.parametrize(\"block_gas_limit\", [Environment().gas_limit])\n    @pytest.mark.valid_at(\"Cancun\")\n    def test_max_gas_limit(state_test, pre, block_gas_limit) -> None:\n        env = Environment()\n        assert block_gas_limit == {expected_gas_limit}\n        tx = Transaction(gas_limit=block_gas_limit, sender=pre.fund_eoa())\n        state_test(env=env, pre=pre, post={{}}, tx=tx)\n    \"\"\"\n)\n\n\n@pytest.mark.parametrize(\n    \"args, expected_fixture_files, expected_fixture_counts, expected_gas_limit\",\n    [\n        pytest.param(\n            [],\n            [\n                Path(\n                    \"fixtures/state_tests/cancun/module_environment_variables/max_gas_limit.json\"\n                ),\n            ],\n            [1],\n            Environment().gas_limit,\n            id=\"default-args\",\n        ),\n        pytest.param(\n            [\"--block-gas-limit\", str(Environment().gas_limit * 2)],\n            [\n                Path(\n                    \"fixtures/state_tests/cancun/module_environment_variables/max_gas_limit.json\"\n                ),\n            ],\n            [1],\n            Environment().gas_limit * 2,\n            id=\"higher-gas-limit\",\n        ),\n    ],\n)\ndef test_fill_variables(\n    testdir: pytest.Testdir,\n    args: list[str],\n    expected_fixture_files: list[Path],\n    expected_fixture_counts: list[int],\n    expected_gas_limit: int,\n    default_t8n: TransitionTool,\n) -> None:\n    \"\"\"\n    Test filling tests that depend on variables such as the max block gas limit.\n    \"\"\"\n    tests_dir = testdir.mkdir(\"tests\")\n\n    cancun_tests_dir = tests_dir.mkdir(\"cancun\")\n    test_module = cancun_tests_dir.join(\"test_module_environment_variables.py\")\n    test_module.write(\n        test_module_environment_variables.format(expected_gas_limit=expected_gas_limit)\n    )\n\n    testdir.copy_example(name=\"src/cli/pytest_commands/pytest_ini_files/pytest-fill.ini\")\n    args.append(\"-c\")\n    args.append(\"pytest-fill.ini\")\n    args.append(\"-v\")\n    args.append(\"-m\")\n    args.append(\"state_test\")\n    args.append(\"--no-html\")\n    args.append(\"--t8n-server-url\")\n    assert default_t8n.server_url is not None\n    args.append(default_t8n.server_url)\n    result = testdir.runpytest(*args)\n    result.assert_outcomes(\n        passed=1,\n        failed=0,\n        skipped=0,\n        errors=0,\n    )\n    if \"--output\" in args:\n        output_dir = Path(args[args.index(\"--output\") + 1]).absolute()\n    else:\n        output_dir = Path(default_output_directory()).absolute()\n    assert output_dir.exists()\n\n    all_files = get_all_files_in_directory(str(output_dir))\n    meta_dir = os.path.join(output_dir, \".meta\")\n    assert os.path.exists(meta_dir), f\"The directory {meta_dir} does not exist\"\n\n    expected_ini_file = \"fixtures.ini\"\n    expected_index_file = \"index.json\"\n    expected_resolver_file = None\n    resolver_file = None\n    if TransitionTool.default_tool == ExecutionSpecsTransitionTool:\n        expected_resolver_file = \"eels_resolutions.json\"\n\n    ini_file = None\n    index_file = None\n    for file in all_files:\n        if file.name == expected_ini_file:\n            ini_file = file\n        elif file.name == expected_index_file:\n            index_file = file\n        elif expected_resolver_file and file.name == expected_resolver_file:\n            resolver_file = file\n            assert resolver_file.exists(), f\"{resolver_file} does not exist\"\n\n    expected_additional_files = {expected_ini_file, expected_index_file}\n    if resolver_file:\n        expected_additional_files.add(str(expected_resolver_file))\n    all_fixtures = [file for file in all_files if file.name not in expected_additional_files]\n    for fixture_file, fixture_count in zip(expected_fixture_files, expected_fixture_counts):\n        assert fixture_file.exists(), f\"{fixture_file} does not exist\"\n        assert fixture_count == count_keys_in_fixture(fixture_file), (\n            f\"Fixture count mismatch for {fixture_file}\"\n        )\n\n    assert set(all_fixtures) == set(expected_fixture_files), (\n        f\"Unexpected files in directory: {set(all_fixtures) - set(expected_fixture_files)}\"\n    )\n\n    assert ini_file is not None, f\"No {expected_ini_file} file was found in {meta_dir}\"\n    config = configparser.ConfigParser()\n    ini_file_text = ini_file.read_text()\n    ini_file_text = ini_file_text.replace(default_t8n.server_url, \"t8n_server_path\")\n    config.read_string(ini_file_text)\n\n    if \"--skip-index\" not in args:\n        assert index_file is not None, f\"No {expected_index_file} file was found in {meta_dir}\"\n\n    properties = {key: value for key, value in config.items(\"fixtures\")}\n    assert \"timestamp\" in properties\n    timestamp = datetime.fromisoformat(properties[\"timestamp\"])\n    assert timestamp.year == datetime.now().year\n    if \"--build-name\" in args:\n        assert \"build\" in properties\n        build_name = args[args.index(\"--build-name\") + 1]\n        assert properties[\"build\"] == build_name\n"
  },
  {
    "path": "src/pytest_plugins/filler/tests/test_filling_session.py",
    "content": "\"\"\"Unit tests for the FillingSession class.\"\"\"\n\nfrom pathlib import Path\nfrom typing import Any\nfrom unittest.mock import patch\n\nimport pytest\n\nfrom ethereum_test_base_types import Alloc\nfrom ethereum_test_fixtures import (\n    FixtureFillingPhase,\n    PreAllocGroup,\n    PreAllocGroups,\n)\nfrom ethereum_test_forks import Prague\nfrom ethereum_test_types import Environment\n\nfrom ..filler import FillingSession\n\n\nclass MockConfig:\n    \"\"\"Mock pytest config for testing.\"\"\"\n\n    def __init__(self, **options: Any) -> None:\n        \"\"\"Initialize with option values.\"\"\"\n        self._options = options\n        self.op_mode = \"fill\"  # Default operation mode\n\n    def getoption(self, name: str, default: Any = None) -> Any:\n        \"\"\"Mock getoption method.\"\"\"\n        return self._options.get(name, default)\n\n\nclass MockFixtureOutput:\n    \"\"\"Mock fixture output for testing.\"\"\"\n\n    def __init__(self, pre_alloc_folder_exists: bool = True) -> None:\n        \"\"\"Initialize with test conditions.\"\"\"\n        self._folder_exists = pre_alloc_folder_exists\n        self.pre_alloc_groups_folder_path = Path(\"/tmp/test_pre_alloc\")\n\n    @classmethod\n    def from_config(cls, config: Any) -> \"MockFixtureOutput\":\n        \"\"\"Mock factory method.\"\"\"\n        del config\n        return cls()\n\n\nclass TestFillingSession:\n    \"\"\"Test cases for FillingSession class.\"\"\"\n\n    def test_init_normal_fill(self) -> None:\n        \"\"\"Test initialization for normal single-phase fill.\"\"\"\n        config = MockConfig()\n\n        with patch(\"pytest_plugins.filler.filler.FixtureOutput\", MockFixtureOutput):\n            session = FillingSession.from_config(config)  # type: ignore[arg-type]\n\n        assert session.phase_manager.is_single_phase_fill\n        assert session.pre_alloc_groups is None\n\n    def test_init_pre_alloc_generation(self) -> None:\n        \"\"\"Test initialization for pre-alloc generation phase.\"\"\"\n        config = MockConfig(generate_pre_alloc_groups=True)\n\n        with patch(\"pytest_plugins.filler.filler.FixtureOutput\", MockFixtureOutput):\n            session = FillingSession.from_config(config)  # type: ignore[arg-type]\n\n        assert session.phase_manager.is_pre_alloc_generation\n        assert session.pre_alloc_groups is not None\n        assert len(session.pre_alloc_groups.root) == 0\n\n    def test_init_use_pre_alloc(self) -> None:\n        \"\"\"Test initialization for phase 2 (using pre-alloc groups).\"\"\"\n        config = MockConfig(use_pre_alloc_groups=True)\n\n        # Mock the file system operations\n        test_group = PreAllocGroup(\n            pre=Alloc().model_dump(mode=\"json\"),\n            environment=Environment().model_dump(mode=\"json\"),\n            network=Prague.name(),\n        )\n        mock_groups = PreAllocGroups(root={\"test_hash\": test_group})\n\n        with patch(\"pytest_plugins.filler.filler.FixtureOutput\", MockFixtureOutput):\n            with patch.object(Path, \"exists\", return_value=True):\n                with patch.object(PreAllocGroups, \"from_folder\", return_value=mock_groups):\n                    session = FillingSession.from_config(config)  # type: ignore[arg-type]\n\n        assert session.phase_manager.is_fill_after_pre_alloc\n        assert session.pre_alloc_groups is mock_groups\n\n    def test_init_use_pre_alloc_missing_folder(self) -> None:\n        \"\"\"Test initialization fails when pre-alloc folder is missing.\"\"\"\n        config = MockConfig(use_pre_alloc_groups=True)\n\n        with patch(\"pytest_plugins.filler.filler.FixtureOutput\", MockFixtureOutput):\n            with patch.object(Path, \"exists\", return_value=False):\n                with pytest.raises(\n                    FileNotFoundError, match=\"Pre-allocation groups folder not found\"\n                ):\n                    FillingSession.from_config(config)  # type: ignore[arg-type]\n\n    def test_should_generate_format(self) -> None:\n        \"\"\"Test format generation decision.\"\"\"\n        config = MockConfig()\n\n        with patch(\"pytest_plugins.filler.filler.FixtureOutput\", MockFixtureOutput):\n            session = FillingSession.from_config(config)  # type: ignore[arg-type]\n\n        # Mock fixture format\n        class MockFormat:\n            format_phases = {FixtureFillingPhase.FILL}\n\n        assert session.should_generate_format(MockFormat())  # type: ignore[arg-type]\n\n    def test_should_generate_format_with_generate_all(self) -> None:\n        \"\"\"Test format generation with generate_all_formats flag.\"\"\"\n        config = MockConfig(generate_all_formats=True, use_pre_alloc_groups=True)\n\n        mock_groups = PreAllocGroups(root={})\n\n        with patch(\"pytest_plugins.filler.filler.FixtureOutput\", MockFixtureOutput):\n            with patch.object(Path, \"exists\", return_value=True):\n                with patch.object(PreAllocGroups, \"from_folder\", return_value=mock_groups):\n                    session = FillingSession.from_config(config)  # type: ignore[arg-type]\n\n        # Mock fixture format that normally wouldn't generate in phase 2\n        class MockFormat:\n            format_phases = {FixtureFillingPhase.FILL}\n\n        # Should generate because generate_all=True\n        assert session.should_generate_format(MockFormat())  # type: ignore[arg-type]\n\n    def test_get_pre_alloc_group(self) -> None:\n        \"\"\"Test getting a pre-alloc group by hash.\"\"\"\n        config = MockConfig(use_pre_alloc_groups=True)\n\n        test_group = PreAllocGroup(\n            pre=Alloc().model_dump(mode=\"json\"),\n            environment=Environment().model_dump(mode=\"json\"),\n            network=Prague.name(),\n        )\n        mock_groups = PreAllocGroups(root={\"test_hash\": test_group})\n\n        with patch(\"pytest_plugins.filler.filler.FixtureOutput\", MockFixtureOutput):\n            with patch.object(Path, \"exists\", return_value=True):\n                with patch.object(PreAllocGroups, \"from_folder\", return_value=mock_groups):\n                    session = FillingSession.from_config(config)  # type: ignore[arg-type]\n\n        assert session.get_pre_alloc_group(\"test_hash\") is test_group\n\n    def test_get_pre_alloc_group_not_found(self) -> None:\n        \"\"\"Test getting a non-existent pre-alloc group.\"\"\"\n        config = MockConfig(use_pre_alloc_groups=True)\n\n        mock_groups = PreAllocGroups(root={})\n\n        with patch(\"pytest_plugins.filler.filler.FixtureOutput\", MockFixtureOutput):\n            with patch.object(Path, \"exists\", return_value=True):\n                with patch.object(PreAllocGroups, \"from_folder\", return_value=mock_groups):\n                    session = FillingSession.from_config(config)  # type: ignore[arg-type]\n\n        with pytest.raises(ValueError, match=\"Pre-allocation hash .* not found\"):\n            session.get_pre_alloc_group(\"missing_hash\")\n\n    def test_get_pre_alloc_group_not_initialized(self) -> None:\n        \"\"\"Test getting pre-alloc group when not initialized.\"\"\"\n        config = MockConfig()  # Normal fill, no pre-alloc groups\n\n        with patch(\"pytest_plugins.filler.filler.FixtureOutput\", MockFixtureOutput):\n            session = FillingSession.from_config(config)  # type: ignore[arg-type]\n\n        with pytest.raises(ValueError, match=\"Pre-allocation groups not initialized\"):\n            session.get_pre_alloc_group(\"any_hash\")\n\n    def test_update_pre_alloc_group(self) -> None:\n        \"\"\"Test updating a pre-alloc group.\"\"\"\n        config = MockConfig(generate_pre_alloc_groups=True)\n\n        with patch(\"pytest_plugins.filler.filler.FixtureOutput\", MockFixtureOutput):\n            session = FillingSession.from_config(config)  # type: ignore[arg-type]\n\n        test_group = PreAllocGroup(\n            pre=Alloc().model_dump(mode=\"json\"),\n            environment=Environment().model_dump(mode=\"json\"),\n            network=Prague.name(),\n        )\n        session.update_pre_alloc_group(\"test_hash\", test_group)\n\n        assert \"test_hash\" in session.pre_alloc_groups  # type: ignore[operator]\n        assert session.pre_alloc_groups[\"test_hash\"] is test_group  # type: ignore[index]\n\n    def test_update_pre_alloc_group_wrong_phase(self) -> None:\n        \"\"\"Test updating pre-alloc group in wrong phase.\"\"\"\n        config = MockConfig()  # Normal fill\n\n        with patch(\"pytest_plugins.filler.filler.FixtureOutput\", MockFixtureOutput):\n            session = FillingSession.from_config(config)  # type: ignore[arg-type]\n\n        test_group = PreAllocGroup(\n            pre=Alloc().model_dump(mode=\"json\"),\n            environment=Environment().model_dump(mode=\"json\"),\n            network=Prague.name(),\n        )\n        with pytest.raises(\n            ValueError, match=\"Can only update pre-alloc groups in generation phase\"\n        ):\n            session.update_pre_alloc_group(\"test_hash\", test_group)\n\n    def test_save_pre_alloc_groups(self) -> None:\n        \"\"\"Test saving pre-alloc groups to disk.\"\"\"\n        config = MockConfig(generate_pre_alloc_groups=True)\n\n        with patch(\"pytest_plugins.filler.filler.FixtureOutput\", MockFixtureOutput):\n            session = FillingSession.from_config(config)  # type: ignore[arg-type]\n\n        # Add a test group\n        test_group = PreAllocGroup(\n            pre=Alloc().model_dump(mode=\"json\"),\n            environment=Environment().model_dump(mode=\"json\"),\n            network=Prague.name(),\n        )\n        session.update_pre_alloc_group(\"test_hash\", test_group)\n\n        # Mock file operations\n        with patch.object(Path, \"mkdir\") as mock_mkdir:\n            with patch.object(PreAllocGroups, \"to_folder\") as mock_to_folder:\n                session.save_pre_alloc_groups()\n\n        mock_mkdir.assert_called_once_with(parents=True, exist_ok=True)\n        mock_to_folder.assert_called_once()\n\n    def test_save_pre_alloc_groups_none(self) -> None:\n        \"\"\"Test saving when no pre-alloc groups exist.\"\"\"\n        config = MockConfig()  # Normal fill\n\n        with patch(\"pytest_plugins.filler.filler.FixtureOutput\", MockFixtureOutput):\n            session = FillingSession.from_config(config)  # type: ignore[arg-type]\n\n        # Should not raise, just return\n        session.save_pre_alloc_groups()\n\n    def test_aggregate_pre_alloc_groups(self) -> None:\n        \"\"\"Test aggregating pre-alloc groups from workers (xdist).\"\"\"\n        config = MockConfig(generate_pre_alloc_groups=True)\n\n        with patch(\"pytest_plugins.filler.filler.FixtureOutput\", MockFixtureOutput):\n            session = FillingSession.from_config(config)  # type: ignore[arg-type]\n\n        # Worker groups to aggregate\n        group1 = PreAllocGroup(\n            pre=Alloc().model_dump(mode=\"json\"),\n            environment=Environment().model_dump(mode=\"json\"),\n            network=Prague.name(),\n        )\n        group2 = PreAllocGroup(\n            pre=Alloc().model_dump(mode=\"json\"),\n            environment=Environment().model_dump(mode=\"json\"),\n            network=Prague.name(),\n        )\n        worker_groups = PreAllocGroups(root={\"hash1\": group1, \"hash2\": group2})\n\n        session.aggregate_pre_alloc_groups(worker_groups)\n\n        assert \"hash1\" in session.pre_alloc_groups  # type: ignore[operator]\n        assert \"hash2\" in session.pre_alloc_groups  # type: ignore[operator]\n\n    def test_aggregate_pre_alloc_groups_conflict(self) -> None:\n        \"\"\"Test aggregating conflicting pre-alloc groups.\"\"\"\n        config = MockConfig(generate_pre_alloc_groups=True)\n\n        with patch(\"pytest_plugins.filler.filler.FixtureOutput\", MockFixtureOutput):\n            session = FillingSession.from_config(config)  # type: ignore[arg-type]\n\n        # Add initial group\n        alloc1 = Alloc().model_dump(mode=\"json\")\n        group1 = PreAllocGroup(\n            pre=alloc1,\n            environment=Environment().model_dump(mode=\"json\"),\n            network=Prague.name(),\n        )\n        session.update_pre_alloc_group(\"hash1\", group1)\n\n        # Try to aggregate conflicting group with same hash but different pre\n        alloc2_dict = Alloc().model_dump(mode=\"json\")\n        alloc2_dict[\"0x1234567890123456789012345678901234567890\"] = None  # Make it different\n        group2 = PreAllocGroup(\n            pre=alloc2_dict,\n            environment=Environment().model_dump(mode=\"json\"),\n            network=Prague.name(),\n        )\n        worker_groups = PreAllocGroups(root={\"hash1\": group2})\n\n        with pytest.raises(ValueError, match=\"Conflicting pre-alloc groups\"):\n            session.aggregate_pre_alloc_groups(worker_groups)\n"
  },
  {
    "path": "src/pytest_plugins/filler/tests/test_format_selector.py",
    "content": "\"\"\"Unit tests for the FormatSelector class.\"\"\"\n\nfrom typing import List, Set, Tuple\n\nfrom ethereum_test_fixtures import BaseFixture, FixtureFillingPhase, LabeledFixtureFormat\n\nfrom ..filler import FormatSelector, PhaseManager\n\n\nclass TestFormatSelector:\n    \"\"\"Test cases for FormatSelector class.\"\"\"\n\n    def test_init(self) -> None:\n        \"\"\"Test basic initialization.\"\"\"\n        phase_manager = PhaseManager(current_phase=FixtureFillingPhase.FILL)\n        format_selector = FormatSelector(phase_manager=phase_manager, generate_all_formats=False)\n        assert format_selector.phase_manager is phase_manager\n\n    def test_should_generate_pre_alloc_phase_with_pre_alloc_format(self) -> None:\n        \"\"\"Test pre-alloc phase with format that supports pre-alloc.\"\"\"\n        phase_manager = PhaseManager(current_phase=FixtureFillingPhase.PRE_ALLOC_GENERATION)\n        format_selector = FormatSelector(phase_manager=phase_manager, generate_all_formats=False)\n\n        # MySub = type(\"MySub\", (BaseClass,), {\"MY_CLASSVAR\": 42})\n        format_with_pre_alloc = type(\n            \"MockFixtureFormat\",\n            (BaseFixture,),\n            {\n                \"format_phases\": {\n                    FixtureFillingPhase.PRE_ALLOC_GENERATION,\n                    FixtureFillingPhase.FILL,\n                }\n            },\n        )\n\n        assert format_selector.should_generate(format_with_pre_alloc)\n\n    def test_should_generate_pre_alloc_phase_without_pre_alloc_format(self) -> None:\n        \"\"\"Test pre-alloc phase with format that doesn't support pre-alloc.\"\"\"\n        phase_manager = PhaseManager(current_phase=FixtureFillingPhase.PRE_ALLOC_GENERATION)\n        format_selector = FormatSelector(phase_manager=phase_manager, generate_all_formats=False)\n\n        format_without_pre_alloc = type(\n            \"MockFixtureFormat\",\n            (BaseFixture,),\n            {\"format_phases\": {FixtureFillingPhase.FILL}},\n        )\n\n        assert not format_selector.should_generate(format_without_pre_alloc)\n\n    def test_should_generate_single_phase_fill_only_format(self) -> None:\n        \"\"\"Test single-phase fill with fill-only format.\"\"\"\n        phase_manager = PhaseManager(current_phase=FixtureFillingPhase.FILL)\n        format_selector = FormatSelector(phase_manager=phase_manager, generate_all_formats=False)\n\n        fill_only_format = type(\n            \"MockFixtureFormat\",\n            (BaseFixture,),\n            {\"format_phases\": {FixtureFillingPhase.FILL}},\n        )\n\n        assert format_selector.should_generate(fill_only_format)\n\n    def test_should_generate_single_phase_pre_alloc_format(self) -> None:\n        \"\"\"Test single-phase fill with format that supports pre-alloc.\"\"\"\n        phase_manager = PhaseManager(current_phase=FixtureFillingPhase.FILL)\n        format_selector = FormatSelector(phase_manager=phase_manager, generate_all_formats=False)\n\n        format_with_pre_alloc = type(\n            \"MockFixtureFormat\",\n            (BaseFixture,),\n            {\n                \"format_phases\": {\n                    FixtureFillingPhase.PRE_ALLOC_GENERATION,\n                    FixtureFillingPhase.FILL,\n                }\n            },\n        )\n\n        # Should not generate because it needs pre-alloc but we're in single\n        # phase\n        assert not format_selector.should_generate(format_with_pre_alloc)\n\n    def test_should_generate_phase2_with_pre_alloc_format(self) -> None:\n        \"\"\"\n        Test phase 2 (after pre-alloc) with format that supports pre-alloc.\n        \"\"\"\n        phase_manager = PhaseManager(\n            current_phase=FixtureFillingPhase.FILL,\n            previous_phases={FixtureFillingPhase.PRE_ALLOC_GENERATION},\n        )\n        format_selector = FormatSelector(phase_manager=phase_manager, generate_all_formats=False)\n\n        format_with_pre_alloc = type(\n            \"MockFixtureFormat\",\n            (BaseFixture,),\n            {\n                \"format_phases\": {\n                    FixtureFillingPhase.PRE_ALLOC_GENERATION,\n                    FixtureFillingPhase.FILL,\n                }\n            },\n        )\n\n        # Should generate in phase 2\n        assert format_selector.should_generate(format_with_pre_alloc)\n\n    def test_should_generate_phase2_without_pre_alloc_format(self) -> None:\n        \"\"\"Test phase 2 (after pre-alloc) with fill-only format.\"\"\"\n        phase_manager = PhaseManager(\n            current_phase=FixtureFillingPhase.FILL,\n            previous_phases={FixtureFillingPhase.PRE_ALLOC_GENERATION},\n        )\n        format_selector = FormatSelector(phase_manager=phase_manager, generate_all_formats=False)\n\n        fill_only_format = type(\n            \"MockFixtureFormat\",\n            (BaseFixture,),\n            {\"format_phases\": {FixtureFillingPhase.FILL}},\n        )\n\n        # Should not generate because it doesn't need pre-alloc\n        assert not format_selector.should_generate(fill_only_format)\n\n    def test_should_generate_phase2_with_generate_all(self) -> None:\n        \"\"\"Test phase 2 with --generate-all-formats flag.\"\"\"\n        phase_manager = PhaseManager(\n            current_phase=FixtureFillingPhase.FILL,\n            previous_phases={FixtureFillingPhase.PRE_ALLOC_GENERATION},\n        )\n        format_selector = FormatSelector(phase_manager=phase_manager, generate_all_formats=True)\n\n        fill_only_format = type(\n            \"MockFixtureFormat\",\n            (BaseFixture,),\n            {\"format_phases\": {FixtureFillingPhase.FILL}},\n        )\n        format_with_pre_alloc = type(\n            \"MockFixtureFormat\",\n            (BaseFixture,),\n            {\n                \"format_phases\": {\n                    FixtureFillingPhase.PRE_ALLOC_GENERATION,\n                    FixtureFillingPhase.FILL,\n                }\n            },\n        )\n\n        # With generate_all=True, both formats should be generated\n        assert format_selector.should_generate(fill_only_format)\n        assert format_selector.should_generate(format_with_pre_alloc)\n\n    def test_should_generate_labeled_format(self) -> None:\n        \"\"\"Test with LabeledFixtureFormat wrapper.\"\"\"\n        phase_manager = PhaseManager(current_phase=FixtureFillingPhase.FILL)\n        format_selector = FormatSelector(phase_manager=phase_manager, generate_all_formats=False)\n\n        fill_only_format = type(\n            \"MockFixtureFormat\",\n            (BaseFixture,),\n            {\"format_phases\": {FixtureFillingPhase.FILL}},\n        )\n        labeled_format = LabeledFixtureFormat(\n            fill_only_format,\n            \"mock_labeled_format\",\n            \"A mock labeled fixture format\",\n        )\n\n        assert format_selector.should_generate(labeled_format)\n\n    def test_comprehensive_scenarios(self) -> None:\n        \"\"\"\n        Test comprehensive scenarios covering all phase and format\n        combinations.\n        \"\"\"\n        # Test matrix: (current_phase, previous_phases, format_phases,\n        # generate_all) -> expected\n        test_cases: List[\n            Tuple[\n                FixtureFillingPhase, Set[FixtureFillingPhase], Set[FixtureFillingPhase], bool, bool\n            ]\n        ] = [\n            # Pre-alloc generation phase\n            (\n                FixtureFillingPhase.PRE_ALLOC_GENERATION,\n                set(),\n                {FixtureFillingPhase.PRE_ALLOC_GENERATION, FixtureFillingPhase.FILL},\n                False,\n                True,\n            ),\n            (\n                FixtureFillingPhase.PRE_ALLOC_GENERATION,\n                set(),\n                {FixtureFillingPhase.FILL},\n                False,\n                False,\n            ),\n            # Single-phase fill\n            (FixtureFillingPhase.FILL, set(), {FixtureFillingPhase.FILL}, False, True),\n            (\n                FixtureFillingPhase.FILL,\n                set(),\n                {FixtureFillingPhase.PRE_ALLOC_GENERATION, FixtureFillingPhase.FILL},\n                False,\n                False,\n            ),\n            # Phase 2 without generate_all\n            (\n                FixtureFillingPhase.FILL,\n                {FixtureFillingPhase.PRE_ALLOC_GENERATION},\n                {FixtureFillingPhase.PRE_ALLOC_GENERATION, FixtureFillingPhase.FILL},\n                False,\n                True,\n            ),\n            (\n                FixtureFillingPhase.FILL,\n                {FixtureFillingPhase.PRE_ALLOC_GENERATION},\n                {FixtureFillingPhase.FILL},\n                False,\n                False,\n            ),\n            # Phase 2 with generate_all\n            (\n                FixtureFillingPhase.FILL,\n                {FixtureFillingPhase.PRE_ALLOC_GENERATION},\n                {FixtureFillingPhase.PRE_ALLOC_GENERATION, FixtureFillingPhase.FILL},\n                True,\n                True,\n            ),\n            (\n                FixtureFillingPhase.FILL,\n                {FixtureFillingPhase.PRE_ALLOC_GENERATION},\n                {FixtureFillingPhase.FILL},\n                True,\n                True,\n            ),\n        ]\n\n        for current, previous, format_phases, gen_all, expected in test_cases:\n            phase_manager = PhaseManager(current_phase=current, previous_phases=previous)\n            format_selector = FormatSelector(\n                phase_manager=phase_manager, generate_all_formats=gen_all\n            )\n            fixture_format = type(\n                \"MockFixtureFormat\",\n                (BaseFixture,),\n                {\"format_phases\": format_phases},\n            )\n\n            result = format_selector.should_generate(fixture_format)\n            assert result == expected, (\n                f\"Failed for phase={current}, previous={previous}, \"\n                f\"format_phases={format_phases}, generate_all={gen_all}\"\n            )\n"
  },
  {
    "path": "src/pytest_plugins/filler/tests/test_generate_all_formats.py",
    "content": "\"\"\"Test the --generate-all-formats functionality.\"\"\"\n\nfrom typing import Any\n\nfrom pytest_plugins.filler.fixture_output import FixtureOutput\n\n\ndef test_fixture_output_with_generate_all_formats() -> None:\n    \"\"\"\n    Test that FixtureOutput properly handles the should_generate_all_formats\n    parameter.\n    \"\"\"\n    # Test with should_generate_all_formats=True\n    fixture_output = FixtureOutput(\n        output_path=\"/tmp/test\",\n        should_generate_all_formats=True,\n    )\n    assert fixture_output.should_generate_all_formats is True\n\n    # Test with should_generate_all_formats=False (default)\n    fixture_output = FixtureOutput(\n        output_path=\"/tmp/test\",\n    )\n    assert fixture_output.should_generate_all_formats is False\n\n\ndef test_fixture_output_from_config_includes_generate_all_formats() -> None:\n    \"\"\"\n    Test that FixtureOutput.from_config includes the\n    should_generate_all_formats option.\n    \"\"\"\n\n    # Mock pytest config object\n    class MockConfig:\n        def getoption(self, option: str) -> Any:\n            option_values = {\n                \"output\": \"/tmp/test\",\n                \"single_fixture_per_file\": False,\n                \"clean\": False,\n                \"generate_pre_alloc_groups\": False,\n                \"use_pre_alloc_groups\": False,\n                \"generate_all_formats\": True,  # Test the new option\n            }\n            return option_values.get(option, False)\n\n    config = MockConfig()\n    fixture_output = FixtureOutput.from_config(\n        config  # type: ignore\n    )\n\n    assert fixture_output.should_generate_all_formats is True\n    assert fixture_output.output_path.name == \"test\"\n\n\ndef test_tarball_output_auto_enables_generate_all_formats() -> None:\n    \"\"\"\n    Test that tarball output (.tar.gz) automatically enables\n    should_generate_all_formats.\n    \"\"\"\n\n    # Mock pytest config object with tarball output\n    class MockConfig:\n        def getoption(self, option: str) -> Any:\n            option_values = {\n                \"output\": \"/tmp/fixtures.tar.gz\",  # Tarball output\n                \"single_fixture_per_file\": False,\n                \"clean\": False,\n                \"generate_pre_alloc_groups\": False,\n                \"use_pre_alloc_groups\": False,\n                \"generate_all_formats\": False,  # Explicitly False\n            }\n            return option_values.get(option, False)\n\n    config = MockConfig()\n    fixture_output = FixtureOutput.from_config(\n        config  # type: ignore\n    )\n\n    # Should auto-enable should_generate_all_formats due to tarball output\n    assert fixture_output.should_generate_all_formats is True\n    assert fixture_output.is_tarball is True\n\n\ndef test_regular_output_does_not_auto_enable_generate_all_formats() -> None:\n    \"\"\"\n    Test that regular directory output doesn't auto-enable\n    should_generate_all_formats.\n    \"\"\"\n\n    # Mock pytest config object with regular output\n    class MockConfig:\n        def getoption(self, option: str) -> Any:\n            option_values = {\n                \"output\": \"/tmp/fixtures\",  # Regular directory output\n                \"single_fixture_per_file\": False,\n                \"clean\": False,\n                \"generate_pre_alloc_groups\": False,\n                \"use_pre_alloc_groups\": False,\n                \"generate_all_formats\": False,  # Explicitly False\n            }\n            return option_values.get(option, False)\n\n    config = MockConfig()\n    fixture_output = FixtureOutput.from_config(\n        config  # type: ignore\n    )\n\n    # Should remain False for regular directory output\n    assert fixture_output.should_generate_all_formats is False\n    assert fixture_output.is_tarball is False\n\n\ndef test_explicit_generate_all_formats_overrides_tarball_auto_enable() -> None:\n    \"\"\"\n    Test that explicitly setting should_generate_all_formats=True works with\n    tarball output.\n    \"\"\"\n\n    # Mock pytest config object with tarball output and explicit flag\n    class MockConfig:\n        def getoption(self, option: str) -> Any:\n            option_values = {\n                \"output\": \"/tmp/fixtures.tar.gz\",  # Tarball output\n                \"single_fixture_per_file\": False,\n                \"clean\": False,\n                \"generate_pre_alloc_groups\": False,\n                \"use_pre_alloc_groups\": False,\n                \"generate_all_formats\": True,  # Explicitly True\n            }\n            return option_values.get(option, False)\n\n    config = MockConfig()\n    fixture_output = FixtureOutput.from_config(\n        config  # type: ignore\n    )\n\n    # Should be True (both explicitly set and auto-enabled)\n    assert fixture_output.should_generate_all_formats is True\n    assert fixture_output.is_tarball is True\n"
  },
  {
    "path": "src/pytest_plugins/filler/tests/test_output_directory.py",
    "content": "\"\"\"Test the filler plugin's output directory handling.\"\"\"\n\nfrom pathlib import Path\nfrom typing import Any, Callable\nfrom unittest.mock import patch\n\nimport pytest\nfrom pytest import TempPathFactory\n\nfrom ethereum_clis import TransitionTool\n\nfrom ..fixture_output import FixtureOutput\n\nMINIMAL_TEST_FILE_NAME = \"test_example.py\"\nMINIMAL_TEST_CONTENTS = \"\"\"\nfrom ethereum_test_tools import Transaction\ndef test_function(state_test, pre) -> None:\n    tx = Transaction(to=0, gas_limit=21_000, sender=pre.fund_eoa())\n    state_test(pre=pre, post={}, tx=tx)\n\"\"\"\n\n\n@pytest.fixture\ndef minimal_test_path(pytester: pytest.Pytester) -> Path:\n    \"\"\"\n    Minimal test file that's written to a file using pytester and ready to\n    fill.\n    \"\"\"\n    tests_dir = pytester.mkdir(\"tests\")\n    test_file = tests_dir / MINIMAL_TEST_FILE_NAME\n    test_file.write_text(MINIMAL_TEST_CONTENTS)\n    return test_file\n\n\n@pytest.fixture(scope=\"module\")\ndef fill_fork_from() -> str:\n    \"\"\"Specify the value for `fill`'s `--from` argument.\"\"\"\n    return \"Paris\"\n\n\n@pytest.fixture(scope=\"module\")\ndef fill_fork_until() -> str:\n    \"\"\"Specify the value for `fill`'s `--until` argument.\"\"\"\n    return \"Cancun\"\n\n\n@pytest.fixture\ndef run_fill(\n    pytester: pytest.Pytester,\n    minimal_test_path: Path,\n    fill_fork_from: str,\n    fill_fork_until: str,\n    default_t8n: TransitionTool,\n) -> Callable[..., pytest.RunResult]:\n    \"\"\"\n    Create a function to run the fill command with various output directory\n    scenarios.\n    \"\"\"\n\n    def _run_fill(\n        output_dir: Path,\n        clean: bool = False,\n        expect_failure: bool = False,\n        disable_capture_output: bool = False,\n    ) -> pytest.RunResult:\n        \"\"\"\n        Run the fill command with the specified output directory and clean\n        flag.\n        \"\"\"\n        pytester.copy_example(name=\"src/cli/pytest_commands/pytest_ini_files/pytest-fill.ini\")\n        args = [\n            \"-c\",\n            \"pytest-fill.ini\",\n            \"-m\",\n            \"(not blockchain_test_engine) and (not eip_version_check)\",\n            f\"--from={fill_fork_from}\",\n            f\"--until={fill_fork_until}\",\n            f\"--output={str(output_dir)}\",\n            f\"--t8n-server-url={default_t8n.server_url}\",\n            str(minimal_test_path),\n        ]\n        if clean:\n            args.append(\"--clean\")\n        if disable_capture_output:\n            # Required for tests on stdout\n            args.append(\"-s\")\n\n        result = pytester.runpytest(*args)\n\n        if expect_failure:\n            assert result.ret != 0, \"Fill command was expected to fail but succeeded\"\n        else:\n            assert result.ret == 0, f\"Fill command failed:\\n{result.outlines}\"\n\n        return result\n\n    return _run_fill\n\n\ndef test_fill_to_empty_directory(tmp_path_factory: TempPathFactory, run_fill: Any) -> None:\n    \"\"\"Test filling to a new, empty directory.\"\"\"\n    output_dir = tmp_path_factory.mktemp(\"empty_fixtures\")\n\n    run_fill(output_dir)\n\n    assert any(output_dir.glob(\"state_tests/**/*.json\")), \"No fixture files were created\"\n    assert (output_dir / \".meta\").exists(), \"Metadata directory was not created\"\n\n\ndef test_fill_to_nonexistent_directory(tmp_path_factory: TempPathFactory, run_fill: Any) -> None:\n    \"\"\"Test filling to a nonexistent directory.\"\"\"\n    base_dir = tmp_path_factory.mktemp(\"base\")\n    output_dir = base_dir / \"nonexistent_fixtures\"\n\n    run_fill(output_dir)\n\n    assert any(output_dir.glob(\"state_tests/**/*.json\")), \"No fixture files were created\"\n    assert (output_dir / \".meta\").exists(), \"Metadata directory was not created\"\n\n\ndef test_fill_to_nonempty_directory_fails(\n    tmp_path_factory: TempPathFactory, run_fill: Any\n) -> None:\n    \"\"\"Test filling to a non-empty directory fails without --clean.\"\"\"\n    # Create a directory with a file\n    output_dir = tmp_path_factory.mktemp(\"nonempty_fixtures\")\n    (output_dir / \"existing_file.txt\").write_text(\"This directory is not empty\")\n\n    result: pytest.RunResult = run_fill(output_dir, expect_failure=True)\n    outlines = result.errlines\n    assert isinstance(outlines, list)\n\n    assert any(\"is not empty\" in line for line in outlines), (\n        f\"Expected error about non-empty directory: {outlines}\"\n    )\n    assert any(\"Use --clean\" in line for line in outlines), (\n        f\"Expected suggestion to use --clean flag: {outlines}\"\n    )\n\n\ndef test_fill_to_nonempty_directory_with_clean(\n    tmp_path_factory: TempPathFactory, run_fill: Any\n) -> None:\n    \"\"\"Test filling to a non-empty directory succeeds with --clean.\"\"\"\n    # Create a directory with a file\n    output_dir = tmp_path_factory.mktemp(\"nonempty_fixtures_clean\")\n    (output_dir / \"existing_file.txt\").write_text(\"This directory will be cleaned\")\n\n    run_fill(output_dir, clean=True)\n\n    # Verify the existing file was removed\n    assert not (output_dir / \"existing_file.txt\").exists(), \"Existing file was not removed\"\n\n    assert any(output_dir.glob(\"state_tests/**/*.json\")), \"No fixture files were created\"\n\n\ndef test_fill_to_directory_with_meta_fails(\n    tmp_path_factory: TempPathFactory, run_fill: Any\n) -> None:\n    \"\"\"\n    Test filling to a directory with .meta subdirectory fails without --clean.\n    \"\"\"\n    # Create a directory with .meta\n    output_dir = tmp_path_factory.mktemp(\"directory_with_meta\")\n    meta_dir = output_dir / \".meta\"\n    meta_dir.mkdir()\n    (meta_dir / \"existing_meta_file.txt\").write_text(\"This is metadata\")\n\n    result: pytest.RunResult = run_fill(output_dir, expect_failure=True)\n\n    assert any(\"is not empty\" in line for line in result.errlines), (\n        \"Expected error about non-empty directory\"\n    )\n\n\ndef test_fill_to_directory_with_meta_with_clean(\n    tmp_path_factory: TempPathFactory, run_fill: Any\n) -> None:\n    \"\"\"Test filling to a directory with .meta succeeds with --clean.\"\"\"\n    # Create a directory with .meta\n    output_dir = tmp_path_factory.mktemp(\"directory_with_meta_clean\")\n    meta_dir = output_dir / \".meta\"\n    meta_dir.mkdir()\n    (meta_dir / \"existing_meta_file.txt\").write_text(\"This is metadata\")\n\n    run_fill(output_dir, clean=True)\n\n    assert any(output_dir.glob(\"state_tests/**/*.json\")), \"No fixture files were created\"\n    assert not (meta_dir / \"existing_meta_file.txt\").exists(), \"Existing meta file was not removed\"\n\n\ndef test_fill_stdout_always_works(tmp_path_factory: TempPathFactory, run_fill: Any) -> None:\n    \"\"\"Test filling to stdout always works regardless of output state.\"\"\"\n    stdout_path = Path(\"stdout\")\n    # create a directory called \"stdout\" - it should not have any effect\n    output_dir = tmp_path_factory.mktemp(stdout_path.name, numbered=False)\n    assert str(output_dir.stem) == \"stdout\"\n    meta_dir = output_dir / \".meta\"\n    meta_dir.mkdir()\n    (meta_dir / \"existing_meta_file.txt\").write_text(\"This is metadata\")\n\n    result: pytest.RunResult = run_fill(stdout_path, disable_capture_output=True)\n\n    assert any(\n        \"test_example.py::test_function[fork_Cancun-state_test]\" in line\n        for line in result.outlines\n    ), f\"Expected JSON output for state test: {result.outlines}\"\n    assert not any(stdout_path.glob(\"*.json\")), \"Fixture files were created when stdout is used\"\n\n\ndef test_fill_to_tarball_directory(tmp_path_factory: TempPathFactory, run_fill: Any) -> None:\n    \"\"\"Test filling to a tarball output.\"\"\"\n    output_dir = tmp_path_factory.mktemp(\"tarball_fixtures\")\n    tarball_path = output_dir / \"fixtures.tar.gz\"\n\n    run_fill(tarball_path)\n\n    assert tarball_path.exists(), \"Tarball was not created\"\n    extracted_dir = output_dir / \"fixtures\"\n    assert extracted_dir.exists(), \"Extracted directory doesn't exist\"\n\n    assert any(extracted_dir.glob(\"state_tests/**/*.json\")), \"No fixture files were created\"\n\n\n# New tests for the is_master functionality\ndef test_create_directories_skips_when_not_master() -> None:\n    \"\"\"\n    Test that create_directories skips operations when not the master process.\n    \"\"\"\n    fixture_output = FixtureOutput(\n        output_path=Path(\"/fake/path\"),\n        clean=True,\n    )\n\n    # Mock directory operations to ensure they aren't called\n    with (\n        patch.object(FixtureOutput, \"is_directory_empty\") as mock_is_empty,\n        patch.object(Path, \"exists\", return_value=True),\n        patch.object(Path, \"mkdir\") as mock_mkdir,\n        patch(\"shutil.rmtree\") as mock_rmtree,\n    ):\n        # Call with is_master=False (worker process)\n        fixture_output.create_directories(is_master=False)\n\n        # Verify no directory operations occurred\n        mock_is_empty.assert_not_called()\n        mock_mkdir.assert_not_called()\n        mock_rmtree.assert_not_called()\n\n\ndef test_create_directories_operates_when_master() -> None:\n    \"\"\"\n    Test that create_directories performs operations when is the master\n    process.\n    \"\"\"\n    fixture_output = FixtureOutput(\n        output_path=Path(\"/fake/path\"),\n        clean=True,\n    )\n\n    # Mock directory operations\n    with (\n        patch.object(FixtureOutput, \"is_directory_empty\", return_value=True),\n        patch.object(Path, \"exists\", return_value=True),\n        patch.object(Path, \"mkdir\") as mock_mkdir,\n        patch(\"shutil.rmtree\") as mock_rmtree,\n    ):\n        # Call with is_master=True (master process)\n        fixture_output.create_directories(is_master=True)\n\n        # Verify directory operations occurred\n        mock_rmtree.assert_called_once()\n        mock_mkdir.assert_called()\n\n\ndef test_create_directories_checks_empty_when_master() -> None:\n    \"\"\"Test that directory emptiness is checked only when is_master=True.\"\"\"\n    fixture_output = FixtureOutput(\n        output_path=Path(\"/fake/path\"),\n        clean=False,  # Don't clean, so we'll check if empty\n    )\n\n    # Mock directory operations\n    with (\n        patch.object(FixtureOutput, \"is_directory_empty\", return_value=False) as mock_is_empty,\n        patch.object(\n            FixtureOutput, \"get_directory_summary\", return_value=\"not empty\"\n        ) as mock_summary,\n        patch.object(Path, \"exists\", return_value=True),\n        patch.object(Path, \"mkdir\"),\n    ):\n        # Call with is_master=True and expect an error about non-empty\n        # directory\n        with pytest.raises(ValueError, match=\"not empty\"):\n            fixture_output.create_directories(is_master=True)\n\n        # Verify emptiness check was performed\n        mock_is_empty.assert_called_once()\n        mock_summary.assert_called_once()\n\n\ndef test_stdout_skips_directory_operations_regardless_of_master() -> None:\n    \"\"\"\n    Test that stdout output skips directory operations regardless of is_master\n    value.\n    \"\"\"\n    fixture_output = FixtureOutput(\n        output_path=Path(\"stdout\"),\n        clean=True,\n    )\n\n    # Mock directory operations to ensure they aren't called\n    with (\n        patch.object(FixtureOutput, \"is_directory_empty\") as mock_is_empty,\n        patch.object(Path, \"exists\") as mock_exists,\n        patch.object(Path, \"mkdir\") as mock_mkdir,\n        patch(\"shutil.rmtree\") as mock_rmtree,\n    ):\n        # Should skip operations even with is_master=True\n        fixture_output.create_directories(is_master=True)\n\n        # Verify no directory operations occurred\n        mock_is_empty.assert_not_called()\n        mock_exists.assert_not_called()\n        mock_mkdir.assert_not_called()\n        mock_rmtree.assert_not_called()\n"
  },
  {
    "path": "src/pytest_plugins/filler/tests/test_phase_manager.py",
    "content": "\"\"\"Unit tests for the PhaseManager class.\"\"\"\n\nfrom typing import Any\n\nimport pytest\n\nfrom ethereum_test_fixtures import FixtureFillingPhase\n\nfrom ..filler import PhaseManager\n\n\nclass MockConfig:\n    \"\"\"Mock pytest config for testing.\"\"\"\n\n    def __init__(\n        self,\n        generate_pre_alloc_groups: bool = False,\n        use_pre_alloc_groups: bool = False,\n        generate_all_formats: bool = False,\n    ) -> None:\n        \"\"\"Initialize with flag values.\"\"\"\n        self._options = {\n            \"generate_pre_alloc_groups\": generate_pre_alloc_groups,\n            \"use_pre_alloc_groups\": use_pre_alloc_groups,\n            \"generate_all_formats\": generate_all_formats,\n        }\n\n    def getoption(self, name: str, default: Any = None) -> Any:\n        \"\"\"Mock getoption method.\"\"\"\n        return self._options.get(name, default)\n\n\nclass TestPhaseManager:\n    \"\"\"Test cases for PhaseManager class.\"\"\"\n\n    def test_init(self) -> None:\n        \"\"\"Test basic initialization.\"\"\"\n        phase_manager = PhaseManager(\n            current_phase=FixtureFillingPhase.FILL,\n            previous_phases={FixtureFillingPhase.PRE_ALLOC_GENERATION},\n        )\n        assert phase_manager.current_phase == FixtureFillingPhase.FILL\n        assert phase_manager.previous_phases == {FixtureFillingPhase.PRE_ALLOC_GENERATION}\n\n    def test_from_config_normal_fill(self) -> None:\n        \"\"\"Test normal single-phase filling (no flags set).\"\"\"\n        config = MockConfig()\n        phase_manager = PhaseManager.from_config(\n            config  # type: ignore[arg-type]\n        )\n\n        assert phase_manager.current_phase == FixtureFillingPhase.FILL\n        assert phase_manager.previous_phases == set()\n        assert phase_manager.is_single_phase_fill\n        assert not phase_manager.is_pre_alloc_generation\n        assert not phase_manager.is_fill_after_pre_alloc\n\n    def test_from_config_generate_pre_alloc(self) -> None:\n        \"\"\"Test phase 1: generate pre-allocation groups.\"\"\"\n        config = MockConfig(generate_pre_alloc_groups=True)\n        phase_manager = PhaseManager.from_config(\n            config  # type: ignore[arg-type]\n        )\n\n        assert phase_manager.current_phase == FixtureFillingPhase.PRE_ALLOC_GENERATION\n        assert phase_manager.previous_phases == set()\n        assert phase_manager.is_pre_alloc_generation\n        assert not phase_manager.is_single_phase_fill\n        assert not phase_manager.is_fill_after_pre_alloc\n\n    def test_from_config_use_pre_alloc(self) -> None:\n        \"\"\"Test phase 2: use pre-allocation groups.\"\"\"\n        config = MockConfig(use_pre_alloc_groups=True)\n        phase_manager = PhaseManager.from_config(\n            config  # type: ignore[arg-type]\n        )\n\n        assert phase_manager.current_phase == FixtureFillingPhase.FILL\n        assert phase_manager.previous_phases == {FixtureFillingPhase.PRE_ALLOC_GENERATION}\n        assert phase_manager.is_fill_after_pre_alloc\n        assert not phase_manager.is_pre_alloc_generation\n        assert not phase_manager.is_single_phase_fill\n\n    def test_from_config_generate_all_formats(self) -> None:\n        \"\"\"Generate_all_formats should trigger PRE_ALLOC_GENERATION phase.\"\"\"\n        config = MockConfig(generate_all_formats=True)\n        phase_manager = PhaseManager.from_config(\n            config  # type: ignore[arg-type]\n        )\n\n        assert phase_manager.current_phase == FixtureFillingPhase.PRE_ALLOC_GENERATION\n        assert phase_manager.previous_phases == set()\n        assert phase_manager.is_pre_alloc_generation\n        assert not phase_manager.is_single_phase_fill\n        assert not phase_manager.is_fill_after_pre_alloc\n\n    def test_from_config_generate_all_and_pre_alloc(self) -> None:\n        \"\"\"Test both generate_all_formats and generate_pre_alloc_groups set.\"\"\"\n        config = MockConfig(generate_pre_alloc_groups=True, generate_all_formats=True)\n        phase_manager = PhaseManager.from_config(\n            config  # type: ignore[arg-type]\n        )\n\n        assert phase_manager.current_phase == FixtureFillingPhase.PRE_ALLOC_GENERATION\n        assert phase_manager.previous_phases == set()\n        assert phase_manager.is_pre_alloc_generation\n\n    def test_from_config_use_pre_alloc_with_generate_all(self) -> None:\n        \"\"\"Test phase 2 with generate_all_formats (passed by CLI).\"\"\"\n        config = MockConfig(use_pre_alloc_groups=True, generate_all_formats=True)\n        phase_manager = PhaseManager.from_config(\n            config  # type: ignore[arg-type]\n        )\n\n        # use_pre_alloc_groups takes precedence\n        assert phase_manager.current_phase == FixtureFillingPhase.FILL\n        assert phase_manager.previous_phases == {FixtureFillingPhase.PRE_ALLOC_GENERATION}\n        assert phase_manager.is_fill_after_pre_alloc\n\n    def test_all_flag_combinations(self) -> None:\n        \"\"\"\n        Test all 8 possible flag combinations to ensure correct phase\n        determination.\n        \"\"\"\n        test_cases = [\n            # (generate_pre_alloc, use_pre_alloc, generate_all) ->\n            # (current_phase, has_previous)\n            # Normal fill\n            (False, False, False, FixtureFillingPhase.FILL, False),\n            # Generate all triggers phase 1\n            (False, False, True, FixtureFillingPhase.PRE_ALLOC_GENERATION, False),\n            (False, True, False, FixtureFillingPhase.FILL, True),  # Phase 2\n            # Phase 2 with generate all\n            (False, True, True, FixtureFillingPhase.FILL, True),\n            (True, False, False, FixtureFillingPhase.PRE_ALLOC_GENERATION, False),  # Phase 1\n            # Phase 1 with generate all\n            (True, False, True, FixtureFillingPhase.PRE_ALLOC_GENERATION, False),\n            # Invalid but use_pre_alloc wins\n            (True, True, False, FixtureFillingPhase.FILL, True),\n            # Invalid but use_pre_alloc wins\n            (True, True, True, FixtureFillingPhase.FILL, True),\n        ]\n\n        for gen_pre, use_pre, gen_all, expected_phase, has_previous in test_cases:\n            config = MockConfig(\n                generate_pre_alloc_groups=gen_pre,\n                use_pre_alloc_groups=use_pre,\n                generate_all_formats=gen_all,\n            )\n            phase_manager = PhaseManager.from_config(\n                config  # type: ignore[arg-type]\n            )\n\n            assert phase_manager.current_phase == expected_phase, (\n                f\"Failed for flags: generate_pre_alloc={gen_pre}, \"\n                f\"use_pre_alloc={use_pre}, generate_all={gen_all}\"\n            )\n\n            if has_previous:\n                assert FixtureFillingPhase.PRE_ALLOC_GENERATION in phase_manager.previous_phases\n            else:\n                assert phase_manager.previous_phases == set()\n\n\nif __name__ == \"__main__\":\n    pytest.main([__file__, \"-v\"])\n"
  },
  {
    "path": "src/pytest_plugins/filler/tests/test_pre_alloc.py",
    "content": "\"\"\"Test the pre-allocation methods in the filler module.\"\"\"\n\nfrom itertools import count\n\nimport pytest\n\nfrom ethereum_test_base_types import Address, TestPrivateKey, TestPrivateKey2\nfrom ethereum_test_forks import Fork, Prague\nfrom ethereum_test_types import EOA\nfrom ethereum_test_vm import EVMCodeType\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom ..pre_alloc import (\n    CONTRACT_ADDRESS_INCREMENTS_DEFAULT,\n    CONTRACT_START_ADDRESS_DEFAULT,\n    Alloc,\n    AllocMode,\n)\n\n\ndef create_test_alloc(\n    alloc_mode: AllocMode = AllocMode.PERMISSIVE,\n    fork: Fork = Prague,\n    evm_code_type: EVMCodeType = EVMCodeType.LEGACY,\n) -> Alloc:\n    \"\"\"Create a test Alloc instance with default iterators.\"\"\"\n    contract_iter = iter(\n        Address(CONTRACT_START_ADDRESS_DEFAULT + (i * CONTRACT_ADDRESS_INCREMENTS_DEFAULT))\n        for i in count()\n    )\n    eoa_iter = iter(\n        EOA(key=TestPrivateKey + i if i != 1 else TestPrivateKey2, nonce=0).copy() for i in count()\n    )\n\n    return Alloc(\n        alloc_mode=alloc_mode,\n        contract_address_iterator=contract_iter,\n        eoa_iterator=eoa_iter,\n        fork=fork,\n        evm_code_type=evm_code_type,\n    )\n\n\ndef test_alloc_deploy_contract_basic() -> None:\n    \"\"\"Test basic `Alloc.deploy_contract` functionality.\"\"\"\n    pre = create_test_alloc()\n\n    contract_1 = pre.deploy_contract(Op.SSTORE(0, 1) + Op.STOP)\n    contract_2 = pre.deploy_contract(Op.SSTORE(0, 2) + Op.STOP)\n\n    # Contracts should be deployed to different addresses\n    assert contract_1 != contract_2\n    assert contract_1 in pre\n    assert contract_2 in pre\n\n    # Check that addresses follow expected pattern\n    assert contract_1 == Address(CONTRACT_START_ADDRESS_DEFAULT)\n    assert contract_2 == Address(\n        CONTRACT_START_ADDRESS_DEFAULT + CONTRACT_ADDRESS_INCREMENTS_DEFAULT\n    )\n\n    # Check accounts exist and have code\n    pre_contract_1_account = pre[contract_1]\n    pre_contract_2_account = pre[contract_2]\n    assert pre_contract_1_account is not None\n    assert pre_contract_2_account is not None\n    assert pre_contract_1_account.code is not None\n    assert pre_contract_2_account.code is not None\n    assert len(pre_contract_1_account.code) > 0\n    assert len(pre_contract_2_account.code) > 0\n\n\ndef test_alloc_deploy_contract_with_balance() -> None:\n    \"\"\"Test `Alloc.deploy_contract` with balance.\"\"\"\n    pre = create_test_alloc()\n    balance = 10**18\n    contract = pre.deploy_contract(Op.STOP, balance=balance)\n\n    assert contract in pre\n    account = pre[contract]\n    assert account is not None\n    assert account.balance == balance\n\n\ndef test_alloc_deploy_contract_with_storage() -> None:\n    \"\"\"Test `Alloc.deploy_contract` with storage.\"\"\"\n    pre = create_test_alloc()\n    storage = {0: 42, 1: 100}\n    contract = pre.deploy_contract(\n        Op.STOP,\n        storage=storage,  # type: ignore\n    )\n\n    assert contract in pre\n    account = pre[contract]\n    assert account is not None\n    assert account.storage is not None\n    assert account.storage[0] == 42\n    assert account.storage[1] == 100\n\n\ndef test_alloc_fund_eoa_basic() -> None:\n    \"\"\"Test basic `Alloc.fund_eoa` functionality.\"\"\"\n    pre = create_test_alloc()\n\n    eoa_1 = pre.fund_eoa(10**18)\n    eoa_2 = pre.fund_eoa(2 * 10**18)\n\n    # EOAs should be different\n    assert eoa_1 != eoa_2\n    assert eoa_1 in pre\n    assert eoa_2 in pre\n\n    # Check balances\n    account_1 = pre[eoa_1]\n    account_2 = pre[eoa_2]\n    assert account_1 is not None\n    assert account_2 is not None\n    assert account_1.balance == 10**18\n    assert account_2.balance == 2 * 10**18\n\n\ndef test_alloc_fund_address() -> None:\n    \"\"\"Test `Alloc.fund_address` functionality.\"\"\"\n    pre = create_test_alloc()\n    address = Address(0x1234567890123456789012345678901234567890)\n    amount = 5 * 10**18\n\n    pre.fund_address(address, amount)\n\n    assert address in pre\n    account = pre[address]\n    assert account is not None\n    assert account.balance == amount\n\n\ndef test_alloc_empty_account() -> None:\n    \"\"\"Test `Alloc.empty_account` functionality.\"\"\"\n    pre = create_test_alloc()\n    empty_addr = pre.empty_account()\n\n    # Check that we get a valid address (address generation works)\n    assert isinstance(empty_addr, Address)\n    # Note: empty_account() only returns address, doesn't add to pre\n\n\n@pytest.mark.parametrize(\"evm_code_type\", [EVMCodeType.LEGACY, EVMCodeType.EOF_V1])\ndef test_alloc_deploy_contract_code_types(evm_code_type: EVMCodeType) -> None:\n    \"\"\"Test `Alloc.deploy_contract` with different EVM code types.\"\"\"\n    pre = create_test_alloc(evm_code_type=evm_code_type)\n\n    contract = pre.deploy_contract(Op.SSTORE(0, 1) + Op.STOP)\n\n    assert contract in pre\n    account = pre[contract]\n    assert account is not None\n    assert account.code is not None\n\n    if evm_code_type == EVMCodeType.LEGACY:\n        # Legacy bytecode should be raw opcodes\n        assert account.code == bytes.fromhex(\"600160005500\")\n    elif evm_code_type == EVMCodeType.EOF_V1:\n        # EOF v1 should have the EOF container header\n        assert account.code.startswith(b\"\\xef\\x00\\x01\")\n\n\n@pytest.mark.parametrize(\"alloc_mode\", [AllocMode.STRICT, AllocMode.PERMISSIVE])\ndef test_alloc_modes(alloc_mode: AllocMode) -> None:\n    \"\"\"Test different allocation modes.\"\"\"\n    pre = create_test_alloc(alloc_mode=alloc_mode)\n\n    assert pre._alloc_mode == alloc_mode\n\n    # Test that we can deploy contracts regardless of mode\n    contract = pre.deploy_contract(Op.STOP)\n    assert contract in pre\n\n\ndef test_global_address_allocation_consistency() -> None:\n    \"\"\"Test that address allocation produces consistent results.\"\"\"\n    # Create two alloc instances with same parameters\n    pre1 = create_test_alloc()\n    pre2 = create_test_alloc()\n\n    # Deploy contracts and check they get the same addresses\n    contract1_pre1 = pre1.deploy_contract(Op.STOP)\n    contract1_pre2 = pre2.deploy_contract(Op.STOP)\n\n    # Should get same starting address\n    assert contract1_pre1 == contract1_pre2\n    assert contract1_pre1 == Address(CONTRACT_START_ADDRESS_DEFAULT)\n\n    # Second contracts should also match\n    contract2_pre1 = pre1.deploy_contract(Op.STOP)\n    contract2_pre2 = pre2.deploy_contract(Op.STOP)\n\n    assert contract2_pre1 == contract2_pre2\n    assert contract2_pre1 == Address(\n        CONTRACT_START_ADDRESS_DEFAULT + CONTRACT_ADDRESS_INCREMENTS_DEFAULT\n    )\n\n\ndef test_alloc_deploy_contract_nonce() -> None:\n    \"\"\"Test that deployed contracts have correct nonce.\"\"\"\n    pre = create_test_alloc()\n\n    contract = pre.deploy_contract(Op.STOP)\n    account = pre[contract]\n\n    assert account is not None\n    assert account.nonce == 1  # Deployed contracts should have nonce 1\n\n\ndef test_alloc_fund_eoa_returns_eoa_object() -> None:\n    \"\"\"Test that fund_eoa returns proper EOA object with private key access.\"\"\"\n    pre = create_test_alloc()\n\n    eoa = pre.fund_eoa(10**18)\n\n    # Should be able to access private key (EOA object)\n    assert hasattr(eoa, \"key\")\n    assert eoa.key is not None\n\n    # Should also be in pre-allocation\n    assert eoa in pre\n    account = pre[eoa]\n    assert account is not None\n    assert account.balance == 10**18\n\n\ndef test_alloc_multiple_contracts_sequential_addresses() -> None:\n    \"\"\"Test that multiple contracts get sequential addresses.\"\"\"\n    pre = create_test_alloc()\n\n    contracts = []\n    for i in range(5):\n        contract = pre.deploy_contract(Op.PUSH1(i) + Op.STOP)\n        contracts.append(contract)\n\n    # Check addresses are sequential\n    for i, contract in enumerate(contracts):\n        expected_addr = Address(\n            CONTRACT_START_ADDRESS_DEFAULT + (i * CONTRACT_ADDRESS_INCREMENTS_DEFAULT)\n        )\n        assert contract == expected_addr\n        assert contract in pre\n"
  },
  {
    "path": "src/pytest_plugins/filler/tests/test_prealloc_group.py",
    "content": "\"\"\"Test the pre_alloc_group marker functionality.\"\"\"\n\nimport textwrap\nfrom pathlib import Path\nfrom typing import Any, ClassVar, Dict, List\nfrom unittest.mock import Mock\n\nimport pytest\n\nfrom ethereum_clis import TransitionTool\nfrom ethereum_test_fixtures import BaseFixture, PreAllocGroups\nfrom ethereum_test_forks import Fork, Prague\nfrom ethereum_test_specs.base import BaseTest\nfrom ethereum_test_types import Alloc, Environment\n\nfrom ..filler import default_output_directory\n\n\nclass MockTest(BaseTest):\n    \"\"\"Mock test class for testing.\"\"\"\n\n    pre: Alloc\n    genesis_environment: Environment\n\n    def __init__(\n        self, pre: Alloc, genesis_environment: Environment, request: Mock | None = None\n    ) -> None:\n        \"\"\"Initialize mock test.\"\"\"\n        super().__init__(  # type: ignore\n            pre=pre,\n            genesis_environment=genesis_environment,\n        )\n        self._request = request\n\n    def generate(self, *args: Any, **kwargs: Any) -> BaseFixture:\n        \"\"\"Mock generate method.\"\"\"\n        raise NotImplementedError(\"This is a mock test class\")\n\n    def get_genesis_environment(self, fork: Fork) -> Environment:\n        \"\"\"Return the genesis environment.\"\"\"\n        return self.genesis_environment.set_fork_requirements(fork)\n\n\ndef test_pre_alloc_group_separate() -> None:\n    \"\"\"Test that pre_alloc_group(\"separate\") forces unique grouping.\"\"\"\n    # Create mock environment and pre-allocation\n    env = Environment()\n    pre = Alloc()\n    fork = Prague\n\n    # Create test without marker\n    test1 = MockTest(pre=pre, genesis_environment=env)\n    hash1 = test1.compute_pre_alloc_group_hash(fork)\n\n    # Create test with \"separate\" marker\n    mock_request = Mock()\n    mock_request.node = Mock()\n    mock_request.node.nodeid = \"test_module.py::test_function\"\n    mock_marker = Mock()\n    mock_marker.args = (\"separate\",)\n    mock_request.node.get_closest_marker = Mock(return_value=mock_marker)\n\n    test2 = MockTest(pre=pre, genesis_environment=env, request=mock_request)\n    hash2 = test2.compute_pre_alloc_group_hash(fork)\n\n    # Hashes should be different due to \"separate\" marker\n    assert hash1 != hash2\n\n    # Create another test without marker - should match first test\n    test3 = MockTest(pre=pre, genesis_environment=env)\n    hash3 = test3.compute_pre_alloc_group_hash(fork)\n\n    assert hash1 == hash3\n\n\ndef test_pre_alloc_group_custom_salt() -> None:\n    \"\"\"Test that custom group names create consistent grouping.\"\"\"\n    env = Environment()\n    pre = Alloc()\n    fork = Prague\n\n    # Create test with custom group \"eip1234\"\n    mock_request1 = Mock()\n    mock_request1.node = Mock()\n    mock_request1.node.nodeid = \"test_module.py::test_function1\"\n    mock_marker1 = Mock()\n    mock_marker1.args = (\"eip1234\",)\n    mock_request1.node.get_closest_marker = Mock(return_value=mock_marker1)\n\n    test1 = MockTest(pre=pre, genesis_environment=env, request=mock_request1)\n    hash1 = test1.compute_pre_alloc_group_hash(fork)\n\n    # Create another test with same custom group \"eip1234\"\n    mock_request2 = Mock()\n    mock_request2.node = Mock()\n    mock_request2.node.nodeid = \"test_module.py::test_function2\"  # Different nodeid\n    mock_marker2 = Mock()\n    mock_marker2.args = (\"eip1234\",)  # Same group\n    mock_request2.node.get_closest_marker = Mock(return_value=mock_marker2)\n\n    test2 = MockTest(pre=pre, genesis_environment=env, request=mock_request2)\n    hash2 = test2.compute_pre_alloc_group_hash(fork)\n\n    # Hashes should be the same - both in \"eip1234\" group\n    assert hash1 == hash2\n\n    # Create test with different custom group \"eip5678\"\n    mock_request3 = Mock()\n    mock_request3.node = Mock()\n    mock_request3.node.nodeid = \"test_module.py::test_function3\"\n    mock_marker3 = Mock()\n    mock_marker3.args = (\"eip5678\",)  # Different group\n    mock_request3.node.get_closest_marker = Mock(return_value=mock_marker3)\n\n    test3 = MockTest(pre=pre, genesis_environment=env, request=mock_request3)\n    hash3 = test3.compute_pre_alloc_group_hash(fork)\n\n    # Hash should be different - different custom group\n    assert hash1 != hash3\n    assert hash2 != hash3\n\n\ndef test_pre_alloc_group_separate_different_nodeids() -> None:\n    \"\"\"Test that different tests with \"separate\" get different hashes.\"\"\"\n    env = Environment()\n    pre = Alloc()\n    fork = Prague\n\n    # Create test with \"separate\" and nodeid1\n    mock_request1 = Mock()\n    mock_request1.node = Mock()\n    mock_request1.node.nodeid = \"test_module.py::test_function1\"\n    mock_marker1 = Mock()\n    mock_marker1.args = (\"separate\",)\n    mock_request1.node.get_closest_marker = Mock(return_value=mock_marker1)\n\n    test1 = MockTest(pre=pre, genesis_environment=env, request=mock_request1)\n    hash1 = test1.compute_pre_alloc_group_hash(fork)\n\n    # Create test with \"separate\" and nodeid2\n    mock_request2 = Mock()\n    mock_request2.node = Mock()\n    mock_request2.node.nodeid = \"test_module.py::test_function2\"\n    mock_marker2 = Mock()\n    mock_marker2.args = (\"separate\",)\n    mock_request2.node.get_closest_marker = Mock(return_value=mock_marker2)\n\n    test2 = MockTest(pre=pre, genesis_environment=env, request=mock_request2)\n    hash2 = test2.compute_pre_alloc_group_hash(fork)\n\n    # Hashes should be different due to different nodeids\n    assert hash1 != hash2\n\n\ndef test_no_pre_alloc_group_marker() -> None:\n    \"\"\"Test normal grouping without pre_alloc_group marker.\"\"\"\n    env = Environment()\n    pre = Alloc()\n    fork = Prague\n\n    # Create test without marker but with request object\n    mock_request = Mock()\n    mock_request.node = Mock()\n    mock_request.node.nodeid = \"test_module.py::test_function\"\n    mock_request.node.get_closest_marker = Mock(return_value=None)  # No marker\n\n    test1 = MockTest(pre=pre, genesis_environment=env, request=mock_request)\n    hash1 = test1.compute_pre_alloc_group_hash(fork)\n\n    # Create test without any request\n    test2 = MockTest(pre=pre, genesis_environment=env)\n    hash2 = test2.compute_pre_alloc_group_hash(fork)\n\n    # Hashes should be the same - both have no marker\n    assert hash1 == hash2\n\n\ndef test_pre_alloc_group_with_reason() -> None:\n    \"\"\"Test that reason kwarg is accepted but doesn't affect grouping.\"\"\"\n    env = Environment()\n    pre = Alloc()\n    fork = Prague\n\n    # Create test with custom group and reason\n    mock_request1 = Mock()\n    mock_request1.node = Mock()\n    mock_request1.node.nodeid = \"test_module.py::test_function1\"\n    mock_marker1 = Mock()\n    mock_marker1.args = (\"hardcoded_addresses\",)\n    mock_marker1.kwargs = {\"reason\": \"Uses legacy hardcoded addresses for backwards compatibility\"}\n    mock_request1.node.get_closest_marker = Mock(return_value=mock_marker1)\n\n    test1 = MockTest(pre=pre, genesis_environment=env, request=mock_request1)\n    hash1 = test1.compute_pre_alloc_group_hash(fork)\n\n    # Create another test with same group but different reason\n    mock_request2 = Mock()\n    mock_request2.node = Mock()\n    mock_request2.node.nodeid = \"test_module.py::test_function2\"\n    mock_marker2 = Mock()\n    mock_marker2.args = (\"hardcoded_addresses\",)\n    mock_marker2.kwargs = {\"reason\": \"Different reason but same group\"}\n    mock_request2.node.get_closest_marker = Mock(return_value=mock_marker2)\n\n    test2 = MockTest(pre=pre, genesis_environment=env, request=mock_request2)\n    hash2 = test2.compute_pre_alloc_group_hash(fork)\n\n    # Hashes should be the same - reason doesn't affect grouping\n    assert hash1 == hash2\n\n\nclass FormattedTest:\n    \"\"\"Represents a single formatted test.\"\"\"\n\n    kwargs: Dict[str, str]\n    template: ClassVar[str]\n\n    def __init__(self, **kwargs: str) -> None:  # noqa: D107\n        self.kwargs = kwargs\n\n    def format(self) -> str:  # noqa: D102\n        return self.template.format(**self.kwargs)\n\n\nclass StateTest(FormattedTest):  # noqa: D101\n    template: ClassVar[str] = textwrap.dedent(\n        \"\"\"\\\n        import pytest\n\n        from ethereum_test_tools import (\n            Account,\n            Alloc,\n            Environment,\n            StateTestFiller,\n            Transaction\n        )\n        from ethereum_test_vm import Opcodes as Op\n\n        @pytest.mark.valid_from(\"Istanbul\")\n        def test_chainid(state_test: StateTestFiller, pre: Alloc) -> None:\n            contract_address = pre.deploy_contract(Op.SSTORE(1, Op.CHAINID) + Op.STOP)\n            sender = pre.fund_eoa()\n\n            tx = Transaction(\n                ty=0x0,\n                chain_id=0x01,\n                to=contract_address,\n                gas_limit=100_000,\n                sender=sender,\n            )\n\n            post = {{\n                contract_address: Account(storage={{\"0x01\": \"0x01\"}}),\n            }}\n\n            state_test(env={env}, pre=pre, post=post, tx=tx)\n        \"\"\"\n    )\n\n\nclass BlockchainTest(FormattedTest):  # noqa: D101\n    template: ClassVar[str] = textwrap.dedent(\n        \"\"\"\\\n        import pytest\n\n        from ethereum_test_tools import (\n            Account,\n            Alloc,\n            Block,\n            BlockchainTestFiller,\n            Environment,\n            Transaction\n        )\n        from ethereum_test_vm import Opcodes as Op\n\n        @pytest.mark.valid_from(\"Istanbul\")\n        def test_chainid_blockchain(blockchain_test: BlockchainTestFiller, pre: Alloc) -> None:\n            contract_address = pre.deploy_contract(Op.SSTORE(1, Op.CHAINID) + Op.STOP)\n            sender = pre.fund_eoa()\n\n            tx = Transaction(\n                ty=0x0,\n                chain_id=0x01,\n                to=contract_address,\n                gas_limit=100_000,\n                sender=sender,\n            )\n\n            post = {{\n                contract_address: Account(storage={{\"0x01\": \"0x01\"}}),\n            }}\n\n            blockchain_test(\n                genesis_environment={env},\n                pre=pre,\n                post=post,\n                blocks=[Block(txs=[tx])],\n            )\n        \"\"\"\n    )\n\n\n@pytest.mark.parametrize(\n    \"test_definitions,expected_different_pre_alloc_groups\",\n    [\n        # Environment fields not affecting the pre-alloc groups\n        pytest.param(\n            [\n                BlockchainTest(env=\"Environment()\"),\n                StateTest(env=\"Environment()\"),\n            ],\n            1,\n            id=\"different_types_default_environment\",\n        ),\n        pytest.param(\n            [\n                StateTest(env=\"Environment(fee_recipient=pre.fund_eoa(amount=0))\"),\n                StateTest(env=\"Environment(fee_recipient=1)\"),\n                StateTest(env=\"Environment(fee_recipient=2)\"),\n            ],\n            1,\n            id=\"different_fee_recipients\",\n        ),\n        pytest.param(\n            [\n                StateTest(env=\"Environment(fee_recipient=1)\"),\n                BlockchainTest(env=\"Environment(fee_recipient=1)\"),\n            ],\n            2,\n            id=\"different_fee_recipients_different_types\",\n        ),\n        pytest.param(\n            [\n                StateTest(env=\"Environment(prev_randao=1)\"),\n                StateTest(env=\"Environment(prev_randao=2)\"),\n            ],\n            1,\n            id=\"different_prev_randaos\",\n        ),\n        pytest.param(\n            [\n                StateTest(env=\"Environment(prev_randao=1)\"),\n                BlockchainTest(env=\"Environment(prev_randao=2)\"),\n            ],\n            2,\n            id=\"different_prev_randaos_different_types\",\n        ),\n        pytest.param(\n            [\n                StateTest(env=\"Environment(timestamp=1)\"),\n                StateTest(env=\"Environment(timestamp=2)\"),\n            ],\n            1,\n            id=\"different_timestamps\",\n        ),\n        pytest.param(\n            [\n                StateTest(env=\"Environment(extra_data='0x01')\"),\n                StateTest(env=\"Environment(extra_data='0x02')\"),\n            ],\n            1,\n            id=\"different_extra_data\",\n        ),\n        pytest.param(\n            [\n                StateTest(env=\"Environment(extra_data='0x01')\"),\n                BlockchainTest(env=\"Environment(extra_data='0x02')\"),\n            ],\n            2,\n            id=\"different_extra_data_different_types\",\n            marks=pytest.mark.xfail(\n                reason=\"Extra data is excluded=True in the Environment model, so it does not \"\n                \"propagate correctly to the genesis header without a lot of code changes.\",\n            ),\n        ),\n        # Environment fields affecting the pre-alloc groups\n        pytest.param(\n            [\n                StateTest(env=\"Environment(gas_limit=100_000_000)\"),\n                StateTest(env=\"Environment(gas_limit=200_000_000)\"),\n            ],\n            2,\n            id=\"different_gas_limits\",\n        ),\n        pytest.param(\n            [\n                StateTest(env=\"Environment(number=10)\"),\n                StateTest(env=\"Environment(number=20)\"),\n            ],\n            2,\n            id=\"different_block_numbers\",\n        ),\n        pytest.param(\n            [\n                StateTest(env=\"Environment(base_fee_per_gas=10)\"),\n                StateTest(env=\"Environment(base_fee_per_gas=20)\"),\n            ],\n            2,\n            id=\"different_base_fee\",\n        ),\n        pytest.param(\n            [\n                StateTest(env=\"Environment(excess_blob_gas=10)\"),\n                StateTest(env=\"Environment(excess_blob_gas=20)\"),\n            ],\n            2,\n            id=\"different_excess_blob_gas\",\n        ),\n    ],\n)\ndef test_pre_alloc_grouping_by_test_type(\n    pytester: pytest.Pytester,\n    default_t8n: TransitionTool,\n    test_definitions: List[FormattedTest],\n    expected_different_pre_alloc_groups: int,\n) -> None:\n    \"\"\"\n    Test pre-alloc grouping when filling state tests, and the effect of the\n    `state_test.env`.\n    \"\"\"\n    tests_dir = Path(pytester.mkdir(\"tests\"))\n    for i, test in enumerate(test_definitions):\n        test_module = tests_dir / f\"test_{i}.py\"\n        test_module.write_text(test.format())\n    pytester.copy_example(name=\"src/cli/pytest_commands/pytest_ini_files/pytest-fill.ini\")\n    args = [\n        \"-c\",\n        \"pytest-fill.ini\",\n        \"--generate-pre-alloc-groups\",\n        \"--fork=Cancun\",\n        \"--t8n-server-url\",\n    ]\n    assert default_t8n.server_url is not None\n    args.append(default_t8n.server_url)\n    result = pytester.runpytest(*args)\n    result.assert_outcomes(\n        passed=len(test_definitions),\n        failed=0,\n        skipped=0,\n        errors=0,\n    )\n\n    output_dir = (\n        Path(default_output_directory()).absolute() / \"blockchain_tests_engine_x\" / \"pre_alloc\"\n    )\n    assert output_dir.exists()\n    groups = PreAllocGroups.from_folder(output_dir, lazy_load=False)\n    if (\n        len([f for f in output_dir.iterdir() if f.name.endswith(\".json\")])\n        != expected_different_pre_alloc_groups\n    ):\n        error_message = (\n            f\"Expected {expected_different_pre_alloc_groups} different pre-alloc groups, \"\n            f\"but got {len(groups)}\"\n        )\n        for group_hash, group in groups.items():\n            error_message += f\"\\n{group_hash}: \\n\"\n            error_message += f\"tests: {group.test_ids}\\n\"\n            error_message += (\n                f\"env: {group.environment.model_dump_json(indent=2, exclude_none=True)}\\n\"\n            )\n        raise AssertionError(error_message)\n\n    for group_hash, group in groups.items():\n        assert group.environment.fee_recipient == group.genesis.fee_recipient, (\n            f\"Fee recipient mismatch for group {group_hash}: {group.environment.fee_recipient} != \"\n            f\"{group.genesis.fee_recipient}\"\n        )\n        assert group.environment.prev_randao == group.genesis.prev_randao, (\n            f\"Prev randao mismatch for group {group_hash}: {group.environment.prev_randao} != \"\n            f\"{group.genesis.prev_randao}\"\n        )\n        assert group.environment.extra_data == group.genesis.extra_data, (\n            f\"Extra data mismatch for group {group_hash}: {group.environment.extra_data} != \"\n            f\"{group.genesis.extra_data}\"\n        )\n        assert group.environment.number == group.genesis.number, (\n            f\"Number mismatch for group {group_hash}: {group.environment.number} != \"\n            f\"{group.genesis.number}\"\n        )\n        assert group.environment.timestamp == group.genesis.timestamp, (\n            f\"Timestamp mismatch for group {group_hash}: {group.environment.timestamp} != \"\n            f\"{group.genesis.timestamp}\"\n        )\n        assert group.environment.difficulty == group.genesis.difficulty, (\n            f\"Difficulty mismatch for group {group_hash}: {group.environment.difficulty} != \"\n            f\"{group.genesis.difficulty}\"\n        )\n        assert group.environment.gas_limit == group.genesis.gas_limit, (\n            f\"Gas limit mismatch for group {group_hash}: {group.environment.gas_limit} != \"\n            f\"{group.genesis.gas_limit}\"\n        )\n        assert group.environment.base_fee_per_gas == group.genesis.base_fee_per_gas, (\n            f\"Base fee per gas mismatch for group {group_hash}: \"\n            f\"{group.environment.base_fee_per_gas} != \"\n            f\"{group.genesis.base_fee_per_gas}\"\n        )\n        assert group.environment.excess_blob_gas == group.genesis.excess_blob_gas, (\n            f\"Excess blob gas mismatch for group {group_hash}: \"\n            f\"{group.environment.excess_blob_gas} != \"\n            f\"{group.genesis.excess_blob_gas}\"\n        )\n        assert group.environment.blob_gas_used == group.genesis.blob_gas_used, (\n            f\"Blob gas used mismatch for group {group_hash}: {group.environment.blob_gas_used} != \"\n            f\"{group.genesis.blob_gas_used}\"\n        )\n        assert (\n            group.environment.parent_beacon_block_root == group.genesis.parent_beacon_block_root\n        ), (\n            f\"Parent beacon block root mismatch for group {group_hash}: \"\n            f\"{group.environment.parent_beacon_block_root} != \"\n            f\"{group.genesis.parent_beacon_block_root}\"\n        )\n"
  },
  {
    "path": "src/pytest_plugins/filler/tests/test_prealloc_group_usage_example.py",
    "content": "\"\"\"\nExample usage of the pre_alloc_group marker.\n\nThis file demonstrates how tests would use the marker in practice. Note: This\nis just documentation, not executable tests.\n\"\"\"\n\nimport pytest\n\n\n# Example 1: Test that deploys beacon root contract with hardcoded deployer\n@pytest.mark.pre_alloc_group(\n    \"separate\",\n    reason=\"Deploys beacon root contract using actual hardcoded deployer address\",\n)\ndef test_beacon_root_contract_deployment() -> None:\n    \"\"\"\n    Test beacon root contract deployment with the official deployer address.\n    \"\"\"\n    # This test uses the actual beacon root deployer address (e.g.,\n    # 0x4242...4242) which could conflict with dynamically allocated addresses\n    # in other tests\n    pass\n\n\n# Example 2: Test with custom consolidation contract\n@pytest.mark.pre_alloc_group(\n    \"custom_consolidation\",\n    reason=\"Deploys custom consolidation contract with different bytecode\",\n)\ndef test_custom_consolidation_contract() -> None:\n    \"\"\"Test that deploys a modified consolidation contract.\"\"\"\n    # This test deploys a consolidation contract with custom bytecode that\n    # differs from the standard implementation, requiring isolation from other\n    # consolidation tests\n    pass\n\n\n# Example 3: Group related tests that need custom contracts\n@pytest.mark.pre_alloc_group(\n    \"custom_consolidation\",\n    reason=\"Uses same custom consolidation contract setup\",\n)\ndef test_custom_consolidation_edge_cases() -> None:\n    \"\"\"Test edge cases with the custom consolidation contract.\"\"\"\n    # This test can share the pre-allocation with\n    # test_custom_consolidation_contract since they both use the same custom\n    # contract setup\n    pass\n\n\n# Example 4: Test without marker - uses default grouping\ndef test_normal_consolidation() -> None:\n    \"\"\"Test that uses standard consolidation contract and default grouping.\"\"\"\n    # This test uses dynamic allocation and standard contracts,\n    # so it can be grouped normally with other tests\n    pass\n"
  },
  {
    "path": "src/pytest_plugins/filler/tests/test_slow_marker_pre_alloc.py",
    "content": "\"\"\"Test automatic pre_alloc_group marker application to slow tests.\"\"\"\n\nimport textwrap\nfrom typing import Any\n\nfrom ethereum_clis import TransitionTool\n\n\ndef test_slow_marker_gets_pre_alloc_group(pytester: Any, default_t8n: TransitionTool) -> None:\n    \"\"\"\n    Test that slow tests without benchmark marker get pre_alloc_group\n    automatically.\n    \"\"\"\n    test_module = textwrap.dedent(\n        \"\"\"\\\n        import pytest\n        from ethereum_test_tools import Alloc, StateTestFiller, Transaction\n\n        @pytest.mark.slow\n        @pytest.mark.valid_from(\"Cancun\")\n        def test_slow_without_benchmark(state_test: StateTestFiller, pre: Alloc) -> None:\n            sender = pre.fund_eoa()\n            contract = pre.deploy_contract(code=b\"\")\n            tx = Transaction(sender=sender, to=contract, gas_limit=100000)\n            state_test(pre=pre, tx=tx, post={})\n        \"\"\"\n    )\n\n    # Create test directory structure\n    tests_dir = pytester.mkdir(\"tests\")\n    cancun_dir = tests_dir / \"cancun\"\n    cancun_dir.mkdir()\n    test_file = cancun_dir / \"test_slow.py\"\n    test_file.write_text(test_module)\n\n    # Copy the pytest configuration\n    pytester.copy_example(name=\"src/cli/pytest_commands/pytest_ini_files/pytest-fill.ini\")\n\n    # Run pytest with our plugin and check collection\n    args = [\n        \"-c\",\n        \"pytest-fill.ini\",\n        \"--collect-only\",\n        \"-q\",\n        \"--t8n-server-url\",\n        default_t8n.server_url,\n        \"tests/cancun/test_slow.py\",\n    ]\n\n    result = pytester.runpytest(*args)\n    # The test should be collected successfully\n    result.stdout.fnmatch_lines([\"*test_slow_without_benchmark*\"])\n\n\ndef test_slow_with_benchmark_no_pre_alloc(pytester: Any, default_t8n: TransitionTool) -> None:\n    \"\"\"\n    Test that slow tests WITH benchmark marker do NOT get pre_alloc_group.\n    \"\"\"\n    test_module = textwrap.dedent(\n        \"\"\"\\\n        import pytest\n        from ethereum_test_tools import Alloc, StateTestFiller, Transaction\n\n        @pytest.mark.slow\n        @pytest.mark.benchmark\n        @pytest.mark.valid_from(\"Cancun\")\n        def test_slow_with_benchmark(state_test: StateTestFiller, pre: Alloc) -> None:\n            sender = pre.fund_eoa()\n            contract = pre.deploy_contract(code=b\"\")\n            tx = Transaction(sender=sender, to=contract, gas_limit=100000)\n            state_test(pre=pre, tx=tx, post={})\n        \"\"\"\n    )\n\n    # Create test directory structure\n    tests_dir = pytester.mkdir(\"tests\")\n    benchmark_dir = tests_dir / \"benchmark\"\n    benchmark_dir.mkdir()\n    test_file = benchmark_dir / \"test_slow_benchmark.py\"\n    test_file.write_text(test_module)\n\n    pytester.copy_example(name=\"src/cli/pytest_commands/pytest_ini_files/pytest-fill.ini\")\n\n    # Run with collection only to verify test is collected\n    args = [\n        \"-c\",\n        \"pytest-fill.ini\",\n        \"--collect-only\",\n        \"-q\",\n        \"--t8n-server-url\",\n        default_t8n.server_url,\n        \"tests/benchmark/test_slow_benchmark.py\",\n    ]\n\n    result = pytester.runpytest(*args)\n    # The test should be collected\n    result.stdout.fnmatch_lines([\"*test_slow_with_benchmark*\"])\n\n\ndef test_slow_with_existing_pre_alloc_unchanged(\n    pytester: Any, default_t8n: TransitionTool\n) -> None:\n    \"\"\"\n    Test that slow tests with existing pre_alloc_group marker are unchanged.\n    \"\"\"\n    test_module = textwrap.dedent(\n        \"\"\"\\\n        import pytest\n        from ethereum_test_tools import Alloc, StateTestFiller, Transaction\n\n        @pytest.mark.slow\n        @pytest.mark.pre_alloc_group(\"custom_group\", reason=\"Custom reason\")\n        @pytest.mark.valid_from(\"Cancun\")\n        def test_slow_with_existing_pre_alloc(state_test: StateTestFiller, pre: Alloc) -> None:\n            sender = pre.fund_eoa()\n            contract = pre.deploy_contract(code=b\"\")\n            tx = Transaction(sender=sender, to=contract, gas_limit=100000)\n            state_test(pre=pre, tx=tx, post={})\n        \"\"\"\n    )\n\n    # Create test directory structure\n    tests_dir = pytester.mkdir(\"tests\")\n    cancun_dir = tests_dir / \"cancun\"\n    cancun_dir.mkdir()\n    test_file = cancun_dir / \"test_existing_pre_alloc.py\"\n    test_file.write_text(test_module)\n\n    pytester.copy_example(name=\"src/cli/pytest_commands/pytest_ini_files/pytest-fill.ini\")\n\n    # Run with collection only to verify test is collected\n    args = [\n        \"-c\",\n        \"pytest-fill.ini\",\n        \"--collect-only\",\n        \"-q\",\n        \"--t8n-server-url\",\n        default_t8n.server_url,\n        \"tests/cancun/test_existing_pre_alloc.py\",\n    ]\n\n    result = pytester.runpytest(*args)\n    # The test should be collected successfully\n    result.stdout.fnmatch_lines([\"*test_slow_with_existing_pre_alloc*\"])\n\n\ndef test_non_slow_no_pre_alloc(pytester: Any, default_t8n: TransitionTool) -> None:\n    \"\"\"Test that tests without slow marker do not get pre_alloc_group.\"\"\"\n    test_module = textwrap.dedent(\n        \"\"\"\\\n        import pytest\n        from ethereum_test_tools import Alloc, StateTestFiller, Transaction\n\n        @pytest.mark.valid_from(\"Cancun\")\n        def test_normal_speed(state_test: StateTestFiller, pre: Alloc) -> None:\n            sender = pre.fund_eoa()\n            contract = pre.deploy_contract(code=b\"\")\n            tx = Transaction(sender=sender, to=contract, gas_limit=100000)\n            state_test(pre=pre, tx=tx, post={})\n        \"\"\"\n    )\n\n    # Create test directory structure\n    tests_dir = pytester.mkdir(\"tests\")\n    cancun_dir = tests_dir / \"cancun\"\n    cancun_dir.mkdir()\n    test_file = cancun_dir / \"test_normal.py\"\n    test_file.write_text(test_module)\n\n    pytester.copy_example(name=\"src/cli/pytest_commands/pytest_ini_files/pytest-fill.ini\")\n\n    # Run with collection only to verify test is collected\n    args = [\n        \"-c\",\n        \"pytest-fill.ini\",\n        \"--collect-only\",\n        \"-q\",\n        \"--t8n-server-url\",\n        default_t8n.server_url,\n        \"tests/cancun/test_normal.py\",\n    ]\n\n    result = pytester.runpytest(*args)\n    # The test should be collected successfully\n    result.stdout.fnmatch_lines([\"*test_normal_speed*\"])\n\n\ndef test_integration_with_fill(pytester: Any, default_t8n: TransitionTool) -> None:\n    \"\"\"\n    Integration test using actual fill command to verify marker application.\n    \"\"\"\n    test_module = textwrap.dedent(\n        \"\"\"\\\n        import pytest\n        from ethereum_test_tools import (\n            Account,\n            Alloc,\n            StateTestFiller,\n            Transaction,\n        )\n\n        @pytest.mark.slow\n        @pytest.mark.valid_from(\"Cancun\")\n        def test_slow_for_integration(state_test: StateTestFiller, pre: Alloc) -> None:\n            '''Test that should get pre_alloc_group marker automatically.'''\n            sender = pre.fund_eoa()\n            contract = pre.deploy_contract(code=b\"\")\n            tx = Transaction(sender=sender, to=contract, gas_limit=100000)\n            state_test(pre=pre, tx=tx, post={})\n        \"\"\"\n    )\n\n    # Create proper directory structure for tests\n    tests_dir = pytester.mkdir(\"tests\")\n    cancun_tests_dir = tests_dir / \"cancun\"\n    cancun_tests_dir.mkdir()\n    slow_test_dir = cancun_tests_dir / \"slow_test_module\"\n    slow_test_dir.mkdir()\n    test_module_file = slow_test_dir / \"test_slow_integration.py\"\n    test_module_file.write_text(test_module)\n\n    # Copy pytest configuration\n    pytester.copy_example(name=\"src/cli/pytest_commands/pytest_ini_files/pytest-fill.ini\")\n\n    # Run fill command\n    args = [\n        \"-c\",\n        \"pytest-fill.ini\",\n        \"-v\",\n        \"--no-html\",\n        \"--t8n-server-url\",\n        default_t8n.server_url,\n        \"tests/cancun/slow_test_module/\",\n    ]\n\n    # The test generates 3 formats (state_test, blockchain_test,\n    # blockchain_test_engine).\n\n    # But it also runs on multiple forks (Cancun and\n    # Prague), so expect more tests.\n\n    # This is fine - the important thing is that they all pass.\n    result = pytester.runpytest(*args)\n\n    # Verify that tests passed (don't care about exact count due to fork\n    # variations)\n    assert result.ret == 0, \"Fill command should succeed\"\n"
  },
  {
    "path": "src/pytest_plugins/filler/tests/test_verify_sync_marker.py",
    "content": "\"\"\"Test blockchain sync fixture generation with verify_sync pytest marker.\"\"\"\n\nimport textwrap\nfrom typing import Any\n\nfrom ethereum_clis import TransitionTool\n\ntest_module_with_verify_sync = textwrap.dedent(\n    \"\"\"\\\n    import pytest\n    from ethereum_test_tools import (\n        Account,\n        BlockException,\n        Block,\n        Environment,\n        Header,\n        TestAddress,\n        Transaction,\n    )\n\n    TEST_ADDRESS = Account(balance=1_000_000)\n\n    @pytest.mark.valid_at(\"Cancun\")\n    def test_verify_sync_default(blockchain_test) -> None:\n        blockchain_test(\n            pre={TestAddress: TEST_ADDRESS},\n            post={},\n            blocks=[Block(txs=[Transaction()])]\n        )\n\n\n    @pytest.mark.valid_at(\"Cancun\")\n    @pytest.mark.verify_sync\n    def test_verify_sync_with_marker(blockchain_test) -> None:\n        blockchain_test(\n            pre={TestAddress: TEST_ADDRESS},\n            post={},\n            blocks=[Block(txs=[Transaction()])]\n        )\n\n    @pytest.mark.valid_at(\"Cancun\")\n    @pytest.mark.parametrize(\n        \"has_exception\",\n        [\n            pytest.param(False, id=\"no_exception\", marks=pytest.mark.verify_sync),\n            pytest.param(\n                True, id=\"with_exception\", marks=pytest.mark.exception_test\n            ),\n        ]\n    )\n    def test_verify_sync_with_param_marks(blockchain_test, has_exception) -> None:\n        blockchain_test(\n            pre={TestAddress: TEST_ADDRESS},\n            post={},\n            blocks=[\n                Block(\n                    txs=[Transaction()],\n                    rlp_modifier=Header(gas_limit=0) if has_exception else None,\n                    exception=BlockException.INCORRECT_BLOCK_FORMAT if has_exception else None,\n                )\n            ],\n        )\n\n    \"\"\"\n)\n\n\ndef test_verify_sync_marker(\n    pytester: Any,\n    default_t8n: TransitionTool,\n) -> None:\n    \"\"\"\n    Test blockchain sync fixture generation with verify_sync marker.\n\n    The test module has 3 test functions (4 test cases with parametrization):\n      - test_verify_sync_default: generates all formats except sync\n                                  (no verify_sync marker)\n      - test_verify_sync_with_marker: generates all formats including sync\n                                      (has verify_sync marker)\n      - test_verify_sync_with_param_marks: tests parametrized marks with\n                                           verify_sync (2 cases)\n\n    Each test generates fixture formats:\n    - BlockchainFixture (always)\n    - BlockchainEngineFixture (always)\n    - BlockchainEngineSyncFixture (only when marked with verify_sync marker)\n\n    Expected outcomes:\n    - 4 test cases total\n    - Each generates BlockchainFixture (4) and BlockchainEngineFixture (4) =\n      8 fixtures\n\n    - Sync fixtures:\n      - test_verify_sync_with_marker: 1 sync fixture ✓\n      - test_verify_sync_with_param_marks[no_exception]: 1 sync fixture ✓\n      - Total sync fixtures: 2 - Not generated (due to exception_test marker):\n      - test_verify_sync_with_param_marks[with_exception]:  sync fixture\n                                                            not generated\n\n    Final counts:\n    - Passed: 8 (base fixtures) + 2 (sync fixtures) = 10 passed\n    - Skipped: 0 skipped\n    - Failed: 0 failed\n    \"\"\"\n    # Create proper directory structure for tests\n    tests_dir = pytester.mkdir(\"tests\")\n    cancun_tests_dir = tests_dir / \"cancun\"\n    cancun_tests_dir.mkdir()\n    verify_sync_test_dir = cancun_tests_dir / \"verify_sync_test_module\"\n    verify_sync_test_dir.mkdir()\n    test_module = verify_sync_test_dir / \"test_verify_sync_marker.py\"\n    test_module.write_text(test_module_with_verify_sync)\n\n    pytester.copy_example(name=\"src/cli/pytest_commands/pytest_ini_files/pytest-fill.ini\")\n\n    # Add the test directory to the arguments\n    args = [\n        \"-c\",\n        \"pytest-fill.ini\",\n        \"-v\",\n        \"--no-html\",\n        \"--t8n-server-url\",\n        default_t8n.server_url,\n        \"tests/cancun/verify_sync_test_module/\",\n    ]\n\n    expected_outcomes = {\"passed\": 10, \"failed\": 0, \"skipped\": 0, \"errors\": 0}\n\n    result = pytester.runpytest(*args)\n    result.assert_outcomes(**expected_outcomes)\n"
  },
  {
    "path": "src/pytest_plugins/filler/witness.py",
    "content": "\"\"\"\nPytest plugin for witness functionality.\n\nProvides --witness command-line option that checks for the witness-filler tool\nin PATH and generates execution witness data for blockchain test fixtures when\nenabled.\n\"\"\"\n\nimport shutil\nimport subprocess\nfrom typing import Callable, List\n\nimport pytest\n\nfrom ethereum_test_base_types import EthereumTestRootModel\nfrom ethereum_test_fixtures.blockchain import BlockchainFixture, FixtureBlock, WitnessChunk\nfrom ethereum_test_forks import Paris\n\n\nclass WitnessFillerResult(EthereumTestRootModel[List[WitnessChunk]]):\n    \"\"\"\n    Model that defines the expected result from the `witness-filler` command.\n    \"\"\"\n\n    root: List[WitnessChunk]\n\n\nclass Merge(Paris):\n    \"\"\"\n    Paris fork that serializes as 'Merge' for witness-filler compatibility.\n\n    IMPORTANT: This class MUST be named 'Merge' (not 'MergeForWitness' or\n    similar) because the class name is used directly in Pydantic serialization,\n    and witness-filler expects exactly 'Merge' for this fork.\n    \"\"\"\n\n    pass\n\n\ndef pytest_addoption(parser: pytest.Parser) -> None:\n    \"\"\"Add witness command-line options to pytest.\"\"\"\n    witness_group = parser.getgroup(\"witness\", \"Arguments for witness functionality\")\n    witness_group.addoption(\n        \"--witness\",\n        \"--witness-the-fitness\",\n        action=\"store_true\",\n        dest=\"witness\",\n        default=False,\n        help=(\n            \"Generate execution witness data for blockchain test fixtures using the \"\n            \"witness-filler tool (must be installed separately).\"\n        ),\n    )\n\n\ndef pytest_configure(config: pytest.Config) -> None:\n    \"\"\"\n    Pytest hook called after command line options have been parsed.\n\n    If --witness is enabled, checks that the witness-filler tool is available\n    in PATH.\n    \"\"\"\n    if config.getoption(\"witness\"):\n        # Check if witness-filler binary is available in PATH\n        if not shutil.which(\"witness-filler\"):\n            pytest.exit(\n                \"witness-filler tool not found in PATH. Please build and install witness-filler \"\n                \"from https://github.com/kevaundray/reth.git before using --witness flag.\\n\"\n                \"Example: cargo install --git https://github.com/kevaundray/reth.git \"\n                \"witness-filler\",\n                1,\n            )\n\n\n@pytest.fixture\ndef witness_generator(\n    request: pytest.FixtureRequest,\n) -> Callable[[BlockchainFixture], None] | None:\n    \"\"\"\n    Provide a witness generator function if --witness is enabled.\n\n    Returns: None if witness functionality is disabled. Callable that generates\n    witness data for a BlockchainFixture if enabled.\n    \"\"\"\n    if not request.config.getoption(\"witness\"):\n        return None\n\n    def generate_witness(fixture: BlockchainFixture) -> None:\n        \"\"\"\n        Generate witness data for a blockchain fixture using the witness-filler\n        tool.\n        \"\"\"\n        if not isinstance(fixture, BlockchainFixture):\n            return None\n\n        # Hotfix: witness-filler expects \"Merge\" but execution-spec-tests uses\n        # \"Paris\"\n        original_fork = None\n        if fixture.fork is Paris:\n            original_fork = fixture.fork\n            fixture.fork = Merge\n\n        try:\n            result = subprocess.run(\n                [\"witness-filler\"],\n                input=fixture.model_dump_json(by_alias=True),\n                text=True,\n                capture_output=True,\n            )\n        finally:\n            if original_fork is not None:\n                fixture.fork = original_fork\n\n        if result.returncode != 0:\n            raise RuntimeError(\n                f\"witness-filler tool failed with exit code {result.returncode}. \"\n                f\"stderr: {result.stderr}\"\n            )\n\n        try:\n            result_model = WitnessFillerResult.model_validate_json(result.stdout)\n            witnesses = result_model.root\n\n            for i, witness in enumerate(witnesses):\n                if i < len(fixture.blocks):\n                    block = fixture.blocks[i]\n                    if isinstance(block, FixtureBlock):\n                        block.execution_witness = witness\n        except Exception as e:\n            raise RuntimeError(\n                f\"Failed to parse witness data from witness-filler tool. \"\n                f\"Output was: {result.stdout[:500]}{'...' if len(result.stdout) > 500 else ''}\"\n            ) from e\n\n    return generate_witness\n"
  },
  {
    "path": "src/pytest_plugins/fix_package_test_path.py",
    "content": "\"\"\"\nPytest plugin to fix the test IDs for all pytest command that use a\ncommand-logic test file.\n\"\"\"\n\nfrom typing import List\n\nimport pytest\n\n\ndef pytest_collection_modifyitems(items: List[pytest.Item]) -> None:\n    \"\"\"\n    Modify collected item names to remove the test runner function from the\n    name.\n    \"\"\"\n    for item in items:\n        original_name = item.originalname  # type: ignore\n        remove = f\"{original_name}[\"\n        if item.name.startswith(remove):\n            item.name = item.name.removeprefix(remove)[:-1]\n        if remove in item.nodeid:\n            item._nodeid = item.nodeid[item.nodeid.index(remove) + len(remove) : -1]\n"
  },
  {
    "path": "src/pytest_plugins/forks/__init__.py",
    "content": "\"\"\"\nA pytest plugin to configure the forks in the test session. It parametrizes\ntests based on the user-provided fork range the tests' specified validity\nmarkers.\n\"\"\"\n"
  },
  {
    "path": "src/pytest_plugins/forks/forks.py",
    "content": "\"\"\"Pytest plugin to enable fork range configuration for the test session.\"\"\"\n\nimport itertools\nimport re\nimport sys\nimport textwrap\nfrom abc import ABC, abstractmethod\nfrom dataclasses import dataclass, field\nfrom types import FunctionType\nfrom typing import Any, Callable, ClassVar, Dict, Iterable, Iterator, List, Set, Tuple, Type\n\nimport pytest\nfrom _pytest.mark.structures import ParameterSet\nfrom pytest import Mark, Metafunc\n\nfrom ethereum_clis import TransitionTool\nfrom ethereum_test_forks import (\n    ALL_FORKS,\n    ALL_FORKS_WITH_TRANSITIONS,\n    Fork,\n    ForkSetAdapter,\n    InvalidForkError,\n    get_deployed_forks,\n    get_selected_fork_set,\n    get_transition_forks,\n    transition_fork_to,\n)\nfrom pytest_plugins.custom_logging import get_logger\n\nlogger = get_logger(__name__)\n\n\ndef pytest_addoption(parser: pytest.Parser) -> None:\n    \"\"\"Add command-line options to pytest.\"\"\"\n    fork_group = parser.getgroup(\"Forks\", \"Specify the fork range to generate fixtures for\")\n    fork_group.addoption(\n        \"--forks\",\n        action=\"store_true\",\n        dest=\"show_fork_help\",\n        default=False,\n        help=\"Display forks supported by the test framework and exit.\",\n    )\n    fork_group.addoption(\n        \"--fork\",\n        action=\"store\",\n        dest=\"single_fork\",\n        default=\"\",\n        help=\"Only fill tests for the specified fork.\",\n    )\n    fork_group.addoption(\n        \"--from\",\n        action=\"store\",\n        dest=\"forks_from\",\n        default=\"\",\n        help=\"Fill tests from and including the specified fork.\",\n    )\n    fork_group.addoption(\n        \"--until\",\n        action=\"store\",\n        dest=\"forks_until\",\n        default=\"\",\n        help=\"Fill tests until and including the specified fork.\",\n    )\n\n\n@dataclass(kw_only=True)\nclass ForkCovariantParameter:\n    \"\"\"Value list for a fork covariant parameter in a given fork.\"\"\"\n\n    names: List[str]\n    values: List[ParameterSet]\n\n\nclass ForkParametrizer:\n    \"\"\"A parametrizer for a test case that is parametrized by the fork.\"\"\"\n\n    fork: Fork\n    fork_covariant_parameters: List[ForkCovariantParameter] = field(default_factory=list)\n\n    def __init__(\n        self,\n        fork: Fork,\n        marks: List[pytest.MarkDecorator | pytest.Mark] | None = None,\n        fork_covariant_parameters: List[ForkCovariantParameter] | None = None,\n    ):\n        \"\"\"\n        Initialize a new fork parametrizer object for a given fork.\n\n        Args:\n          fork: The fork for which the test cases will be parametrized.\n          marks: A list of pytest marks to apply to all the test cases\n                 parametrized by the fork.\n          fork_covariant_parameters: A list of fork covariant parameters\n                                     for the test case, for unit testing\n                                     purposes only.\n\n        \"\"\"\n        if marks is None:\n            marks = []\n        self.fork_covariant_parameters = [\n            ForkCovariantParameter(\n                names=[\"fork\"],\n                values=[\n                    pytest.param(\n                        fork,\n                        marks=marks,\n                    )\n                ],\n            )\n        ]\n        if fork_covariant_parameters is not None:\n            self.fork_covariant_parameters.extend(fork_covariant_parameters)\n        self.fork = fork\n\n    @property\n    def argnames(self) -> List[str]:\n        \"\"\"Return the parameter names for the test case.\"\"\"\n        argnames = []\n        for p in self.fork_covariant_parameters:\n            argnames.extend(p.names)\n        return argnames\n\n    @property\n    def argvalues(self) -> List[ParameterSet]:\n        \"\"\"Return the parameter values for the test case.\"\"\"\n        parameter_set_combinations = itertools.product(\n            # Add the values for each parameter, all of them are lists of at\n            # least one element.\n            *[p.values for p in self.fork_covariant_parameters],\n        )\n\n        parameter_set_list: List[ParameterSet] = []\n        for parameter_set_combination in parameter_set_combinations:\n            params: List[Any] = []\n            marks: List[pytest.Mark | pytest.MarkDecorator] = []\n            test_id: str | None = None\n            for p in parameter_set_combination:\n                assert isinstance(p, ParameterSet)\n                params.extend(p.values)\n                if p.marks:\n                    marks.extend(p.marks)\n                if p.id:\n                    if test_id is None:\n                        test_id = f\"fork_{self.fork.name()}-{p.id}\"\n                    else:\n                        test_id = f\"{test_id}-{p.id}\"\n            parameter_set_list.append(pytest.param(*params, marks=marks, id=test_id))\n\n        return parameter_set_list\n\n\nclass CovariantDescriptor:\n    \"\"\"\n    A descriptor for a parameter that is covariant with the fork: the\n    parametrized values change depending on the fork.\n    \"\"\"\n\n    argnames: List[str] = []\n    fn: Callable[[Fork], List[Any] | Iterable[Any]] | None = None\n\n    selector: Callable[..., bool] | None = None\n    marks: None | pytest.Mark | pytest.MarkDecorator | List[pytest.Mark | pytest.MarkDecorator] = (\n        None\n    )\n\n    def __init__(\n        self,\n        argnames: List[str] | str,\n        fn: Callable[[Fork], List[Any] | Iterable[Any]] | None = None,\n        *,\n        selector: Callable[..., bool] | None = None,\n        marks: None\n        | pytest.Mark\n        | pytest.MarkDecorator\n        | List[pytest.Mark | pytest.MarkDecorator] = None,\n    ):\n        \"\"\"\n        Initialize a new covariant descriptor.\n\n        Args:\n          argnames: The names of the parameters that are covariant with the\n                    fork.\n          fn: A function that takes the fork as the single parameter and\n              returns the values for the parameter for each fork.\n          selector: A function that filters the values for the parameter.\n          marks: A list of pytest marks to apply to the test cases\n                 parametrized by the parameter.\n\n        \"\"\"\n        self.argnames = (\n            [argname.strip() for argname in argnames.split(\",\")]\n            if isinstance(argnames, str)\n            else argnames\n        )\n        self.fn = fn\n        self.selector = selector\n        self.marks = marks\n\n    def process_value(\n        self,\n        parameters_values: Any | List[Any] | Tuple[Any] | ParameterSet,\n    ) -> ParameterSet | None:\n        \"\"\"\n        Process a value for a covariant parameter.\n\n        The `selector` is applied to parameters_values in order to filter them.\n        \"\"\"\n        if isinstance(parameters_values, ParameterSet):\n            return parameters_values\n\n        if len(self.argnames) == 1:\n            # Wrap values that are meant for a single parameter in a list\n            parameters_values = [parameters_values]\n        marks = self.marks\n        if self.selector is None or self.selector(\n            *parameters_values[: self.selector.__code__.co_argcount]\n        ):\n            if isinstance(marks, FunctionType):\n                marks = marks(*parameters_values[: marks.__code__.co_argcount])\n            assert not isinstance(marks, FunctionType), \"marks must be a list or None\"\n            if marks is None:\n                marks = []\n            elif not isinstance(marks, list):\n                marks = [marks]\n\n            return pytest.param(*parameters_values, marks=marks)\n\n        return None\n\n    def process_values(self, values: Iterable[Any]) -> List[ParameterSet]:\n        \"\"\"\n        Filter the values for the covariant parameter.\n\n        I.e. if the marker has an argument, the argument is interpreted as a\n        lambda function that filters the values.\n        \"\"\"\n        processed_values: List[ParameterSet] = []\n        for value in values:\n            processed_value = self.process_value(value)\n            if processed_value is not None:\n                processed_values.append(processed_value)\n        return processed_values\n\n    def add_values(self, fork_parametrizer: ForkParametrizer) -> None:\n        \"\"\"Add the values for the covariant parameter to the parametrizer.\"\"\"\n        if self.fn is None:\n            return\n        fork = fork_parametrizer.fork\n        values = self.fn(fork)\n        values = self.process_values(values)\n        assert len(values) > 0\n        fork_parametrizer.fork_covariant_parameters.append(\n            ForkCovariantParameter(names=self.argnames, values=values)\n        )\n\n\nclass CovariantDecorator(CovariantDescriptor):\n    \"\"\"\n    A marker used to parametrize a function by a covariant parameter with the\n    values returned by a fork method.\n\n    The decorator must be subclassed with the appropriate class variables\n    before initialization.\n\n    Attributes:\n      marker_name: Name of the marker.\n      description: Description of the marker.\n      fork_attribute_name: Name of the method to call on the fork to\n                           get the values.\n      marker_parameter_names: Names of the parameters to be parametrized\n                              in the test function.\n      indirect: Whether the parameters should be passed through fixtures\n                (indirect parametrization).\n\n    \"\"\"\n\n    marker_name: ClassVar[str]\n    description: ClassVar[str]\n    fork_attribute_name: ClassVar[str]\n    marker_parameter_names: ClassVar[List[str]]\n    indirect: ClassVar[bool]\n\n    def __init__(self, metafunc: Metafunc):\n        \"\"\"\n        Initialize the covariant decorator.\n\n        The decorator must already be subclassed with the appropriate class\n        variables before initialization.\n\n        Args:\n            metafunc: The metafunc object that pytest uses when generating\n                tests.\n\n        \"\"\"\n        self.metafunc = metafunc\n\n        m = metafunc.definition.iter_markers(self.marker_name)\n        if m is None:\n            return\n        marker_list = list(m)\n        assert len(marker_list) <= 1, f\"Multiple markers {self.marker_name} found\"\n        if len(marker_list) == 0:\n            return\n        marker = marker_list[0]\n\n        assert marker is not None\n        assert len(marker.args) == 0, \"Only keyword arguments are supported\"\n\n        kwargs = dict(marker.kwargs)\n\n        selector = kwargs.pop(\"selector\", lambda _: True)\n        assert isinstance(selector, FunctionType), \"selector must be a function\"\n\n        marks = kwargs.pop(\"marks\", None)\n\n        if len(kwargs) > 0:\n            raise ValueError(f\"Unknown arguments to {self.marker_name}: {kwargs}\")\n\n        def fn(fork: Fork) -> List[Any]:\n            return getattr(fork, self.fork_attribute_name)(block_number=0, timestamp=0)\n\n        super().__init__(\n            argnames=self.marker_parameter_names,\n            fn=fn,\n            selector=selector,\n            marks=marks,\n        )\n\n\ndef covariant_decorator(\n    *,\n    marker_name: str,\n    description: str,\n    fork_attribute_name: str,\n    argnames: List[str],\n    indirect: bool = False,\n) -> Type[CovariantDecorator]:\n    \"\"\"Generate a new covariant decorator subclass.\"\"\"\n    return type(\n        marker_name,\n        (CovariantDecorator,),\n        {\n            \"marker_name\": marker_name,\n            \"description\": description,\n            \"fork_attribute_name\": fork_attribute_name,\n            \"marker_parameter_names\": argnames,\n            \"indirect\": indirect,\n        },\n    )\n\n\nfork_covariant_decorators: List[Type[CovariantDecorator]] = [\n    covariant_decorator(\n        marker_name=\"with_all_tx_types\",\n        description=\"marks a test to be parametrized for all tx types at parameter named tx_type\"\n        \" of type int\",\n        fork_attribute_name=\"tx_types\",\n        argnames=[\"tx_type\"],\n    ),\n    covariant_decorator(\n        marker_name=\"with_all_contract_creating_tx_types\",\n        description=\"marks a test to be parametrized for all tx types that can create a contract\"\n        \" at parameter named tx_type of type int\",\n        fork_attribute_name=\"contract_creating_tx_types\",\n        argnames=[\"tx_type\"],\n    ),\n    covariant_decorator(\n        marker_name=\"with_all_typed_transactions\",\n        description=\"marks a test to be parametrized with default typed transactions named \"\n        \"typed_transaction\",\n        fork_attribute_name=\"tx_types\",\n        argnames=[\"typed_transaction\"],\n        # indirect means the values from `tx_types` will be passed to the\n        # `typed_transaction` fixture which will then be used in the test\n        indirect=True,\n    ),\n    covariant_decorator(\n        marker_name=\"with_all_precompiles\",\n        description=\"marks a test to be parametrized for all precompiles at parameter named\"\n        \" precompile of type int\",\n        fork_attribute_name=\"precompiles\",\n        argnames=[\"precompile\"],\n    ),\n    covariant_decorator(\n        marker_name=\"with_all_evm_code_types\",\n        description=\"marks a test to be parametrized for all EVM code types at parameter named\"\n        \" `evm_code_type` of type `EVMCodeType`, such as `LEGACY` and `EOF_V1`\",\n        fork_attribute_name=\"evm_code_types\",\n        argnames=[\"evm_code_type\"],\n    ),\n    covariant_decorator(\n        marker_name=\"with_all_call_opcodes\",\n        description=\"marks a test to be parametrized for all *CALL opcodes at parameter named\"\n        \" call_opcode, and also the appropriate EVM code type at parameter named evm_code_type\",\n        fork_attribute_name=\"call_opcodes\",\n        argnames=[\"call_opcode\", \"evm_code_type\"],\n    ),\n    covariant_decorator(\n        marker_name=\"with_all_create_opcodes\",\n        description=\"marks a test to be parametrized for all *CREATE* opcodes at parameter named\"\n        \" create_opcode, and also the appropriate EVM code type at parameter named evm_code_type\",\n        fork_attribute_name=\"create_opcodes\",\n        argnames=[\"create_opcode\", \"evm_code_type\"],\n    ),\n    covariant_decorator(\n        marker_name=\"with_all_system_contracts\",\n        description=\"marks a test to be parametrized for all system contracts at parameter named\"\n        \" system_contract of type int\",\n        fork_attribute_name=\"system_contracts\",\n        argnames=[\"system_contract\"],\n    ),\n]\n\n\ndef pytest_configure(config: pytest.Config) -> None:\n    \"\"\"\n    Register the plugin's custom markers and process command-line options.\n\n    Custom marker registration:\n    https://docs.pytest.org/en/7.1.x/how-to/\n    writing_plugins.html# registering-custom-markers\n    \"\"\"\n    config.addinivalue_line(\n        \"markers\",\n        (\n            \"valid_at_transition_to(fork, subsequent_forks: bool = False, \"\n            \"until: str | None = None): specifies a test case is only valid \"\n            \"at the specified fork transition boundaries\"\n        ),\n    )\n    config.addinivalue_line(\n        \"markers\",\n        \"valid_from(fork): specifies from which fork a test case is valid\",\n    )\n    config.addinivalue_line(\n        \"markers\",\n        \"valid_until(fork): specifies until which fork a test case is valid\",\n    )\n    config.addinivalue_line(\n        \"markers\",\n        \"valid_at(fork): specifies at which fork a test case is valid\",\n    )\n    config.addinivalue_line(\n        \"markers\",\n        (\n            \"parametrize_by_fork(names, values_fn): parametrize a test case by fork using the \"\n            \"specified names and values returned by the function values_fn(fork)\"\n        ),\n    )\n    for d in fork_covariant_decorators:\n        config.addinivalue_line(\"markers\", f\"{d.marker_name}: {d.description}\")\n\n    available_forks_help = textwrap.dedent(\n        f\"\"\"\\\n        Available forks:\n        {\", \".join(fork.name() for fork in ALL_FORKS)}\n        \"\"\"\n    )\n    available_forks_help += textwrap.dedent(\n        f\"\"\"\\\n        Available transition forks:\n        {\", \".join([fork.name() for fork in get_transition_forks()])}\n        \"\"\"\n    )\n\n    def get_fork_option(config: pytest.Config, option_name: str, parameter_name: str) -> Set[Fork]:\n        \"\"\"Post-process get option to allow for external fork conditions.\"\"\"\n        config_str = config.getoption(option_name)\n        try:\n            return ForkSetAdapter.validate_python(config_str)\n        except InvalidForkError:\n            print(\n                f\"Error: Unsupported fork provided to {parameter_name}:\",\n                config_str,\n                \"\\n\",\n                file=sys.stderr,\n            )\n            print(available_forks_help, file=sys.stderr)\n            pytest.exit(\"Invalid command-line options.\", returncode=pytest.ExitCode.USAGE_ERROR)\n\n    single_fork = get_fork_option(config, \"single_fork\", \"--fork\")\n    forks_from = get_fork_option(config, \"forks_from\", \"--from\")\n    forks_until = get_fork_option(config, \"forks_until\", \"--until\")\n    show_fork_help = config.getoption(\"show_fork_help\")\n\n    dev_forks_help = textwrap.dedent(\n        \"To run tests for a fork under active development, it must be \"\n        \"specified explicitly via --until=FORK.\\n\"\n        \"Tests are only ran for deployed mainnet forks by default, i.e., \"\n        f\"until {get_deployed_forks()[-1].name()}.\\n\"\n    )\n    if show_fork_help:\n        print(available_forks_help)\n        print(dev_forks_help)\n        pytest.exit(\"After displaying help.\", returncode=0)\n\n    if single_fork and (forks_from or forks_until):\n        print(\n            \"Error: --fork cannot be used in combination with --from or --until\", file=sys.stderr\n        )\n        pytest.exit(\"Invalid command-line options.\", returncode=pytest.ExitCode.USAGE_ERROR)\n\n    transition_forks = not getattr(config, \"skip_transition_forks\", False)\n\n    selected_fork_set = get_selected_fork_set(\n        single_fork=single_fork,\n        forks_from=forks_from,\n        forks_until=forks_until,\n        transition_forks=transition_forks,\n    )\n    if getattr(config, \"single_fork_mode\", False) and len(selected_fork_set) != 1:\n        pytest.exit(\n            f\"\"\"\n            Expected exactly one fork to be specified, got {len(selected_fork_set)}\n            ({selected_fork_set}).\n            Make sure to specify exactly one fork using the --fork command line argument.\n            \"\"\",\n            returncode=pytest.ExitCode.USAGE_ERROR,\n        )\n    config.selected_fork_set = selected_fork_set  # type: ignore\n\n    if not selected_fork_set:\n        print(\n            f\"Error: --from {','.join(fork.name() for fork in forks_from)} \"\n            f\"--until {','.join(fork.name() for fork in forks_until)} \"\n            \"creates an empty fork range.\",\n            file=sys.stderr,\n        )\n        pytest.exit(\n            \"Command-line options produce empty fork range.\",\n            returncode=pytest.ExitCode.USAGE_ERROR,\n        )\n\n    config.unsupported_forks: Set[Fork] = set()  # type: ignore\n    t8n: TransitionTool | None = getattr(config, \"t8n\", None)\n    if t8n:\n        config.unsupported_forks = frozenset(  # type: ignore\n            fork for fork in selected_fork_set if not t8n.is_fork_supported(fork)\n        )\n        logger.debug(f\"List of unsupported forks: {list(config.unsupported_forks)}\")  # type: ignore\n\n\n@pytest.hookimpl(trylast=True)\ndef pytest_report_header(config: pytest.Config, start_path: Any) -> List[str]:\n    \"\"\"Pytest hook called to obtain the report header.\"\"\"\n    del start_path\n\n    bold = \"\\033[1m\"\n    warning = \"\\033[93m\"\n    reset = \"\\033[39;49m\"\n    header = [\n        (\n            bold\n            + \"Generating fixtures for: \"\n            + \", \".join([f.name() for f in sorted(config.selected_fork_set)])  # type: ignore[attr-defined]\n            + reset\n        ),\n    ]\n    if all(fork.is_deployed() for fork in config.selected_fork_set):  # type: ignore[attr-defined]\n        header += [\n            (\n                bold + warning + \"Only generating fixtures with stable/deployed forks: \"\n                \"Specify an upcoming fork via --until=fork to \"\n                \"add forks under development.\" + reset\n            )\n        ]\n    return header\n\n\n@pytest.fixture(autouse=True)\ndef fork(request: pytest.FixtureRequest) -> None:\n    \"\"\"Parametrize test cases by fork.\"\"\"\n    pass\n\n\n@pytest.fixture(scope=\"session\")\ndef session_fork(request: pytest.FixtureRequest) -> Fork | None:\n    \"\"\"\n    Session-wide fork object used if the plugin is configured in single-fork\n    mode.\n    \"\"\"\n    if hasattr(request.config, \"single_fork_mode\") and request.config.single_fork_mode:\n        return list(request.config.selected_fork_set)[0]  # type: ignore\n    raise AssertionError(\n        \"Plugin used `session_fork` fixture without the correct configuration (single_fork_mode).\"\n    )\n\n\nALL_VALIDITY_MARKERS: Dict[str, \"Type[ValidityMarker]\"] = {}\nMARKER_NAME_REGEX = re.compile(r\"(?<!^)(?=[A-Z])\")\n\n\n@dataclass(kw_only=True)\nclass ValidityMarker(ABC):\n    \"\"\"\n    Abstract class to represent any fork validity marker.\n\n    Subclassing this class allows for the creation of new validity markers.\n\n    Instantiation must be done per test function, and the `process` method must\n    be called to process the fork arguments.\n\n    When subclassing, the following optional parameters can be set:\n    - marker_name: Name of the marker, if not set, the class name is\n                   converted to underscore.\n    - mutually_exclusive: List of other marker types incompatible\n                          with this one.\n    - flag: Whether the marker is a flag and should always be included.\n    \"\"\"\n\n    marker_name: ClassVar[str]\n    mutually_exclusive: ClassVar[List[Type[\"ValidityMarker\"]]]\n    flag: ClassVar[bool]\n\n    mark: Mark | None\n\n    def __init_subclass__(\n        cls,\n        marker_name: str | None = None,\n        mutually_exclusive: List[Type[\"ValidityMarker\"]] | None = None,\n        flag: bool = False,\n        **kwargs: Any,\n    ) -> None:\n        \"\"\"Register the validity marker subclass.\"\"\"\n        super().__init_subclass__(**kwargs)\n        if marker_name is None:\n            # Use the class name converted to underscore:\n            # https://stackoverflow.com/a/1176023\n            marker_name = MARKER_NAME_REGEX.sub(\"_\", cls.__name__).lower()\n        cls.marker_name = marker_name\n        cls.mutually_exclusive = mutually_exclusive if mutually_exclusive else []\n        cls.flag = flag\n        if marker_name in ALL_VALIDITY_MARKERS:\n            raise ValueError(f\"Duplicate validity marker class: {cls}\")\n        ALL_VALIDITY_MARKERS[marker_name] = cls\n\n    def __post_init__(self) -> None:\n        \"\"\"Post-initialize the validity marker.\"\"\"\n        if self.flag:\n            return\n        if self.mark is None:\n            raise Exception(f\"Marker error '{self.marker_name}'\")\n        if len(self.mark.args) == 0:\n            raise Exception(f\"Missing fork argument with '{self.marker_name}' marker\")\n\n    def process_fork_arguments(self, *fork_args: str) -> Set[Fork]:\n        \"\"\"Process the fork arguments.\"\"\"\n        fork_set = ForkSetAdapter.validate_python(fork_args)\n        if len(fork_set) != len(fork_args):\n            raise Exception(f\"Duplicate argument specified in '{self.marker_name}'\")\n        return fork_set\n\n    @staticmethod\n    def get_all_validity_markers(markers: Iterator[pytest.Mark]) -> List[\"ValidityMarker\"]:\n        \"\"\"Get all the validity markers applied to the test function.\"\"\"\n        markers_dict: Dict[str, ValidityMarker] = {}\n        for marker in markers:\n            for marker_name in ALL_VALIDITY_MARKERS:\n                if marker.name == marker_name:\n                    if marker_name in markers_dict:\n                        raise Exception(f\"Too many '{marker_name}' markers applied to test\")\n                    cls = ALL_VALIDITY_MARKERS[marker.name]\n                    markers_dict[marker_name] = cls(mark=marker)\n\n        for cls in ALL_VALIDITY_MARKERS.values():\n            if cls.flag and cls.marker_name not in markers_dict:\n                markers_dict[cls.marker_name] = cls(mark=None)\n\n        for marker_name, validity_marker in markers_dict.items():\n            for incompatible_marker in validity_marker.mutually_exclusive:\n                if incompatible_marker.marker_name in markers_dict:\n                    raise Exception(\n                        f\"The markers '{incompatible_marker.marker_name}' and \"\n                        f\"'{marker_name}' can't be combined. \"\n                    )\n        return list(markers_dict.values())\n\n    @staticmethod\n    def get_test_fork_set(validity_markers: List[\"ValidityMarker\"]) -> Set[Fork]:\n        \"\"\"\n        Get the set of forks where a test is valid from the validity markers\n        and filters.\n        \"\"\"\n        if not len(\n            [validity_marker for validity_marker in validity_markers if not validity_marker.flag]\n        ):\n            # Limit to non-transition forks if no validity markers were applied\n            test_fork_set = set(ALL_FORKS)\n        else:\n            # Start with all forks and transitions if any validity markers were\n            # applied\n            test_fork_set = set(ALL_FORKS_WITH_TRANSITIONS)\n\n        for v in validity_markers:\n            # Apply the validity markers to the test function if applicable\n            test_fork_set = v.process(test_fork_set)\n\n        return test_fork_set\n\n    @staticmethod\n    def get_test_fork_set_from_markers(markers: Iterator[pytest.Mark]) -> Set[Fork]:\n        \"\"\"\n        Get the set of forks where a test is valid using the markers applied to\n        the test.\n        \"\"\"\n        return ValidityMarker.get_test_fork_set(ValidityMarker.get_all_validity_markers(markers))\n\n    @staticmethod\n    def get_test_fork_set_from_metafunc(\n        metafunc: Metafunc,\n    ) -> Set[Fork]:\n        \"\"\"\n        Get the set of forks where a test is valid using its pytest\n        meta-function.\n        \"\"\"\n        return ValidityMarker.get_test_fork_set_from_markers(metafunc.definition.iter_markers())\n\n    @staticmethod\n    def is_validity_or_filter_marker(name: str) -> bool:\n        \"\"\"Check if a marker is a validity or filter marker.\"\"\"\n        return name in ALL_VALIDITY_MARKERS\n\n    def process(self, forks: Set[Fork]) -> Set[Fork]:\n        \"\"\"Process the fork arguments.\"\"\"\n        if self.mark is None:\n            fork_set = self._process_with_marker_args()\n        else:\n            fork_set = self._process_with_marker_args(*self.mark.args, **self.mark.kwargs)\n        if self.flag:\n            return forks - fork_set\n        return forks & fork_set\n\n    @abstractmethod\n    def _process_with_marker_args(self, *args: Any, **kwargs: Any) -> Set[Fork]:\n        \"\"\"\n        Process the fork arguments as specified for the marker.\n\n        Method must be implemented by the subclass.\n\n        If the validity marker is of flag type, the returned forks will be\n        subtracted from the fork set, otherwise the returned forks will be\n        intersected with the current set.\n        \"\"\"\n        pass\n\n\nclass ValidFrom(ValidityMarker):\n    \"\"\"\n    Marker used to specify the fork from which the test is valid. The test will\n    not be filled for forks before the specified fork.\n\n    ```python\n    import pytest\n\n    from ethereum_test_tools import Alloc, StateTestFiller\n\n    @pytest.mark.valid_from(\"London\")\n    def test_something_only_valid_after_london(\n        state_test: StateTestFiller,\n        pre: Alloc\n    ):\n        pass\n    ```\n\n    In this example, the test will only be filled for the London fork and\n    after, e.g. London, Paris, Shanghai, Cancun, etc.\n    \"\"\"\n\n    def _process_with_marker_args(self, *fork_args: str) -> Set[Fork]:\n        \"\"\"Process the fork arguments.\"\"\"\n        forks: Set[Fork] = self.process_fork_arguments(*fork_args)\n        resulting_set: Set[Fork] = set()\n        for fork in forks:\n            resulting_set |= {f for f in ALL_FORKS if f >= fork}\n        return resulting_set\n\n\nclass ValidUntil(ValidityMarker):\n    \"\"\"\n    Marker to specify the fork until which the test is valid. The test will not\n    be filled for forks after the specified fork.\n\n    ```python\n    import pytest\n\n    from ethereum_test_tools import Alloc, StateTestFiller\n\n    @pytest.mark.valid_until(\"London\")\n    def test_something_only_valid_until_london(\n        state_test: StateTestFiller,\n        pre: Alloc\n    ):\n        pass\n    ```\n\n    In this example, the test will only be filled for the London fork and\n    before, e.g. London, Berlin, Istanbul, etc.\n    \"\"\"\n\n    def _process_with_marker_args(self, *fork_args: str) -> Set[Fork]:\n        \"\"\"Process the fork arguments.\"\"\"\n        forks: Set[Fork] = self.process_fork_arguments(*fork_args)\n        resulting_set: Set[Fork] = set()\n        for fork in forks:\n            resulting_set |= {f for f in ALL_FORKS if f <= fork}\n        return resulting_set\n\n\nclass ValidAt(ValidityMarker):\n    \"\"\"\n    Marker to specify each fork individually for which the test is valid.\n\n    ```python\n    import pytest\n\n    from ethereum_test_tools import Alloc, StateTestFiller\n\n    @pytest.mark.valid_at(\"London\", \"Cancun\")\n    def test_something_only_valid_at_london_and_cancun(\n        state_test: StateTestFiller,\n        pre: Alloc\n    ):\n        pass\n    ```\n\n    In this example, the test will only be filled for the London and Cancun\n    forks.\n    \"\"\"\n\n    def _process_with_marker_args(self, *fork_args: str) -> Set[Fork]:\n        \"\"\"Process the fork arguments.\"\"\"\n        return self.process_fork_arguments(*fork_args)\n\n\nclass ValidAtTransitionTo(ValidityMarker, mutually_exclusive=[ValidAt, ValidFrom, ValidUntil]):\n    \"\"\"\n    Marker to specify that a test is only meant to be filled at the transition\n    to the specified fork.\n\n    The test usually starts at the fork prior to the specified fork at genesis\n    and at block 5 (for pre-merge forks) or at timestamp 15,000 (for post-merge\n    forks) the fork transition occurs.\n\n    ```python\n    import pytest\n\n    from ethereum_test_tools import Alloc, BlockchainTestFiller\n\n    @pytest.mark.valid_at_transition_to(\"London\")\n    def test_something_that_happens_during_the_fork_transition_to_london(\n        blockchain_test: BlockchainTestFiller,\n        pre: Alloc\n    ):\n        pass\n    ```\n\n    In this example, the test will only be filled for the fork that transitions\n    to London at block number 5, `BerlinToLondonAt5`, and no other forks.\n\n    To see or add a new transition fork, see the\n    `ethereum_test_forks.forks.transition` module.\n\n    Note that the test uses a `BlockchainTestFiller` fixture instead of a\n    `StateTestFiller`, as the transition forks are used to test changes\n    throughout the blockchain progression, and not just the state change of a\n    single transaction.\n\n    This marker also accepts the following keyword arguments:\n\n    - `subsequent_transitions`: Force the test to also fill for subsequent fork\n    transitions.\n    - `until`: Implies `subsequent_transitions` and puts a limit\n    on which transition fork will the test filling will be limited to.\n\n    For example:\n    ```python\n    @pytest.mark.valid_at_transition_to(\"Cancun\", subsequent_transitions=True)\n    ```\n\n    produces tests on `ShanghaiToCancunAtTime15k` and\n    `CancunToPragueAtTime15k`, and any transition fork after that.\n\n    And:\n    ```python\n    @pytest.mark.valid_at_transition_to(\"Cancun\",\n    subsequent_transitions=True, until=\"Prague\")\n    ```\n\n    produces tests on `ShanghaiToCancunAtTime15k` and\n    `CancunToPragueAtTime15k`, but no forks after Prague.\n    \"\"\"\n\n    def _process_with_marker_args(\n        self, *fork_args: str, subsequent_forks: bool = False, until: str | None = None\n    ) -> Set[Fork]:\n        \"\"\"Process the fork arguments.\"\"\"\n        forks: Set[Fork] = self.process_fork_arguments(*fork_args)\n        until_forks: Set[Fork] | None = (\n            None if until is None else self.process_fork_arguments(until)\n        )\n        if len(forks) == 0:\n            raise Exception(\"Missing fork argument with 'valid_at_transition_to' marker.\")\n\n        if len(forks) > 1:\n            raise Exception(\"Too many forks specified to 'valid_at_transition_to' marker.\")\n\n        resulting_set: Set[Fork] = set()\n        for fork in forks:\n            resulting_set |= transition_fork_to(fork)\n            if subsequent_forks:\n                for transition_forks in (transition_fork_to(f) for f in ALL_FORKS if f > fork):\n                    for transition_fork in transition_forks:\n                        if transition_fork and (\n                            until_forks is None\n                            or any(transition_fork <= until_fork for until_fork in until_forks)\n                        ):\n                            resulting_set.add(transition_fork)\n        return resulting_set\n\n\nclass ValidForBPOForks(ValidityMarker, marker_name=\"valid_for_bpo_forks\", flag=True):\n    \"\"\"\n    Marker to specify that a test is valid for BPO forks.\n\n    ```python\n    import pytest\n\n    from ethereum_test_tools import Alloc, BlockchainTestFiller\n\n    @pytest.mark.valid_for_bpo_forks()\n    def test_something_in_a_bpo_fork(\n        blockchain_test: BlockchainTestFiller,\n        pre: Alloc\n    ):\n        pass\n    ```\n    \"\"\"\n\n    def _process_with_marker_args(self) -> Set[Fork]:\n        \"\"\"Process the fork arguments.\"\"\"\n        include_bpo_forks = self.mark is not None\n        if include_bpo_forks:\n            return set()\n        resulting_set: Set[Fork] = set()\n        for fork in ALL_FORKS:\n            if fork.bpo_fork():\n                resulting_set.add(fork)\n                resulting_set |= transition_fork_to(fork)\n        return resulting_set\n\n\ndef pytest_generate_tests(metafunc: pytest.Metafunc) -> None:\n    \"\"\"Pytest hook used to dynamically generate test cases.\"\"\"\n    test_name = metafunc.function.__name__\n    try:\n        test_fork_set = ValidityMarker.get_test_fork_set_from_metafunc(metafunc)\n    except Exception as e:\n        pytest.fail(f\"Error generating tests for {test_name}: {e}\")\n\n    if not test_fork_set:\n        pytest.fail(\n            \"The test function's \"\n            f\"'{test_name}' fork validity markers generate \"\n            \"an empty fork range. Please check the arguments to its \"\n            f\"markers:  @pytest.mark.valid_from and \"\n            f\"@pytest.mark.valid_until.\"\n        )\n\n    # Get the intersection between the test's validity marker and the current\n    # filling parameters.\n    intersection_set = test_fork_set & metafunc.config.selected_fork_set  # type: ignore\n\n    if \"fork\" not in metafunc.fixturenames:\n        return\n\n    pytest_params: List[Any]\n    if not intersection_set:\n        if metafunc.config.getoption(\"verbose\") >= 2:\n            pytest_params = [\n                pytest.param(\n                    None,\n                    marks=[\n                        pytest.mark.skip(\n                            reason=(\n                                f\"{test_name} is not valid for any any of forks specified on \"\n                                \"the command-line.\"\n                            )\n                        )\n                    ],\n                )\n            ]\n            metafunc.parametrize(\"fork\", pytest_params, scope=\"function\")\n    else:\n        unsupported_forks: Set[Fork] = metafunc.config.unsupported_forks  # type: ignore\n        pytest_params = [\n            (\n                ForkParametrizer(\n                    fork=fork,\n                    marks=[\n                        pytest.mark.skip(\n                            reason=(\n                                f\"Fork '{fork}' unsupported by \"\n                                f\"{metafunc.config.t8n.__class__.__name__}.\"  # type: ignore\n                            )\n                        )\n                    ],\n                )\n                if fork in sorted(unsupported_forks)\n                else ForkParametrizer(fork=fork)\n            )\n            for fork in sorted(intersection_set)\n        ]\n        add_fork_covariant_parameters(metafunc, pytest_params)\n        parametrize_fork(metafunc, pytest_params)\n\n\ndef add_fork_covariant_parameters(\n    metafunc: Metafunc, fork_parametrizers: List[ForkParametrizer]\n) -> None:\n    \"\"\"\n    Iterate over the fork covariant descriptors and add their values to the\n    test function.\n    \"\"\"\n    # Process all covariant decorators uniformly\n    for covariant_descriptor in fork_covariant_decorators:\n        if list(metafunc.definition.iter_markers(covariant_descriptor.marker_name)):\n            for fork_parametrizer in fork_parametrizers:\n                covariant_descriptor(metafunc=metafunc).add_values(\n                    fork_parametrizer=fork_parametrizer\n                )\n\n    # Handle custom parametrize_by_fork markers\n    for marker in metafunc.definition.iter_markers():\n        if marker.name == \"parametrize_by_fork\":\n            descriptor = CovariantDescriptor(\n                *marker.args,\n                **marker.kwargs,\n            )\n            for fork_parametrizer in fork_parametrizers:\n                descriptor.add_values(fork_parametrizer=fork_parametrizer)\n\n\ndef parameters_from_fork_parametrizer_list(\n    fork_parametrizers: List[ForkParametrizer],\n) -> Tuple[List[str], List[ParameterSet]]:\n    \"\"\"Get the parameters from the fork parametrizers.\"\"\"\n    param_names: List[str] = []\n    param_values: List[ParameterSet] = []\n\n    for fork_parametrizer in fork_parametrizers:\n        if not param_names:\n            param_names = fork_parametrizer.argnames\n        else:\n            assert param_names == fork_parametrizer.argnames\n        param_values.extend(fork_parametrizer.argvalues)\n\n    # Remove duplicate parameters\n    param_1 = 0\n    while param_1 < len(param_names):\n        param_2 = param_1 + 1\n        while param_2 < len(param_names):\n            if param_names[param_1] == param_names[param_2]:\n                i = 0\n                while i < len(param_values):\n                    if param_values[i].values[param_1] != param_values[i].values[param_2]:\n                        del param_values[i]\n                    else:\n                        param_values[i] = pytest.param(\n                            *param_values[i].values[:param_2],\n                            *param_values[i].values[(param_2 + 1) :],\n                            id=param_values[i].id,\n                            marks=param_values[i].marks,\n                        )\n                        i += 1\n\n                del param_names[param_2]\n            else:\n                param_2 += 1\n        param_1 += 1\n\n    return param_names, param_values\n\n\ndef parametrize_fork(metafunc: Metafunc, fork_parametrizers: List[ForkParametrizer]) -> None:\n    \"\"\"Add the fork parameters to the test function.\"\"\"\n    param_names, param_values = parameters_from_fork_parametrizer_list(fork_parametrizers)\n\n    # Collect all parameters that should be indirect from the decorators\n    indirect = []\n    for covariant_descriptor in fork_covariant_decorators:\n        if (\n            list(metafunc.definition.iter_markers(covariant_descriptor.marker_name))\n            and covariant_descriptor.indirect\n        ):\n            # Add all argnames from this decorator to indirect list\n            indirect.extend(covariant_descriptor.marker_parameter_names)\n\n    metafunc.parametrize(param_names, param_values, scope=\"function\", indirect=indirect)\n"
  },
  {
    "path": "src/pytest_plugins/forks/tests/__init__.py",
    "content": "\"\"\"Tests for the forks plugin.\"\"\"\n"
  },
  {
    "path": "src/pytest_plugins/forks/tests/test_bad_command_line_options.py",
    "content": "\"\"\"\nTest the correct error is produced with bad/invalid command-line arguments.\n\"\"\"\n\nimport pytest\n\ninvalid_cli_option_test_cases = (\n    (\n        \"from_nonexistent_fork\",\n        (\n            (\"--from\", \"Marge\"),  # codespell:ignore marge\n            \"Unsupported fork provided to --from: Marge\",  # codespell:ignore marge\n        ),\n    ),\n    (\n        \"until_nonexistent_fork\",\n        (\n            (\"--until\", \"Shangbye\"),\n            \"Unsupported fork provided to --until: Shangbye\",\n        ),\n    ),\n    (\n        \"fork_nonexistent_fork\",\n        (\n            (\"--fork\", \"Cantcun\"),\n            \"Unsupported fork provided to --fork: Cantcun\",\n        ),\n    ),\n    (\n        \"fork_and_from\",\n        (\n            (\"--fork\", \"Frontier\", \"--from\", \"Frontier\"),\n            \"--fork cannot be used in combination with --from or --until\",\n        ),\n    ),\n    (\n        \"fork_and_until\",\n        (\n            (\"--fork\", \"Frontier\", \"--until\", \"Frontier\"),\n            \"--fork cannot be used in combination with --from or --until\",\n        ),\n    ),\n    (\n        \"invalid_fork_range\",\n        (\n            (\"--from\", \"Paris\", \"--until\", \"Frontier\"),\n            \"--from Paris --until Frontier creates an empty fork range\",\n        ),\n    ),\n)\n\n\n@pytest.mark.parametrize(\n    \"options, error_string\",\n    [test_case for _, test_case in invalid_cli_option_test_cases],\n    ids=[test_id for test_id, _ in invalid_cli_option_test_cases],\n)\ndef test_bad_options(pytester: pytest.Pytester, options: tuple, error_string: str) -> None:\n    \"\"\"\n    Test that a test with an invalid command-line options:\n    - Creates an outcome with exactly one error.\n    - Triggers the expected error string in pytest's console output.\n\n    Each invalid marker/marker combination is tested with one test in its own\n    test session.\n    \"\"\"\n    pytester.makepyfile(\n        \"\"\"\n        def test_should_not_run(state_test):\n            assert 0\n        \"\"\"\n    )\n    pytester.copy_example(name=\"src/cli/pytest_commands/pytest_ini_files/pytest-fill.ini\")\n    result = pytester.runpytest(\"-c\", \"pytest-fill.ini\", \"-v\", *options)\n    assert result.ret == pytest.ExitCode.USAGE_ERROR\n    assert error_string in \"\\n\".join(result.stderr.lines)\n"
  },
  {
    "path": "src/pytest_plugins/forks/tests/test_bad_validity_markers.py",
    "content": "\"\"\"\nTest the correct error is produced with bad/invalid validity markers.\n\"\"\"\n\nimport pytest\n\ninvalid_merge_marker = \"Marge\"  # codespell:ignore marge\n\ninvalid_validity_marker_test_cases = (\n    (\n        \"too_many_valid_from_markers\",\n        (\n            \"\"\"\n            import pytest\n            @pytest.mark.valid_from(\"Paris\")\n            @pytest.mark.valid_from(\"Paris\")\n            def test_case(state_test):\n                assert 0\n            \"\"\",\n            \"Too many 'valid_from' markers applied to test\",\n        ),\n    ),\n    (\n        \"too_many_valid_until_markers\",\n        (\n            \"\"\"\n            import pytest\n            @pytest.mark.valid_until(\"Paris\")\n            @pytest.mark.valid_until(\"Paris\")\n            def test_case(state_test):\n                assert 0\n            \"\"\",\n            \"Too many 'valid_until' markers applied to test\",\n        ),\n    ),\n    (\n        \"too_many_valid_at_transition_to_markers\",\n        (\n            \"\"\"\n            import pytest\n            @pytest.mark.valid_at_transition_to(\"Paris\")\n            @pytest.mark.valid_at_transition_to(\"Paris\")\n            def test_case(state_test):\n                assert 0\n            \"\"\",\n            \"Too many 'valid_at_transition_to' markers applied to test\",\n        ),\n    ),\n    (\n        \"valid_from_no_args\",\n        (\n            \"\"\"\n            import pytest\n            @pytest.mark.valid_from()\n            def test_case(state_test):\n                assert 0\n            \"\"\",\n            \"Missing fork argument with 'valid_from' marker\",\n        ),\n    ),\n    (\n        \"valid_until_no_args\",\n        (\n            \"\"\"\n            import pytest\n            @pytest.mark.valid_until()\n            def test_case(state_test):\n                assert 0\n            \"\"\",\n            \"Missing fork argument with 'valid_until' marker\",\n        ),\n    ),\n    (\n        \"valid_at_transition_to_no_args\",\n        (\n            \"\"\"\n            import pytest\n            @pytest.mark.valid_at_transition_to()\n            def test_case(state_test):\n                assert 0\n            \"\"\",\n            \"Missing fork argument with 'valid_at_transition_to' marker\",\n        ),\n    ),\n    (\n        \"valid_from_duplicate_arg\",\n        (\n            \"\"\"\n            import pytest\n            @pytest.mark.valid_from(\"Paris\", \"Paris\")\n            def test_case(state_test):\n                assert 0\n            \"\"\",\n            \"Duplicate argument specified in 'valid_from'\",\n        ),\n    ),\n    (\n        \"valid_until_duplicate_arg\",\n        (\n            \"\"\"\n            import pytest\n            @pytest.mark.valid_until(\"Paris\", \"Paris\")\n            def test_case(state_test):\n                assert 0\n            \"\"\",\n            \"Duplicate argument specified in 'valid_until'\",\n        ),\n    ),\n    (\n        \"valid_at_transition_duplicate_arg\",\n        (\n            \"\"\"\n            import pytest\n            @pytest.mark.valid_at_transition_to(\"Paris\", \"Paris\")\n            def test_case(state_test):\n                assert 0\n            \"\"\",\n            \"Duplicate argument specified in 'valid_at_transition_to'\",\n        ),\n    ),\n    (\n        \"valid_from_nonexistent_fork\",\n        (\n            f\"\"\"\n            import pytest\n            @pytest.mark.valid_from(\"{invalid_merge_marker}\")\n            def test_case(state_test):\n                assert 0\n            \"\"\",\n            f\"Invalid fork '{invalid_merge_marker}'\",\n        ),\n    ),\n    (\n        \"valid_until_nonexistent_fork\",\n        (\n            \"\"\"\n            import pytest\n            @pytest.mark.valid_until(\"Shangbye\")\n            def test_case(state_test):\n                assert 0\n            \"\"\",\n            \"Invalid fork 'Shangbye'\",\n        ),\n    ),\n    (\n        \"valid_at_transition_to_nonexistent_fork\",\n        (\n            \"\"\"\n            import pytest\n            @pytest.mark.valid_at_transition_to(\"Cantcun\")\n            def test_case(state_test):\n                assert 0\n            \"\"\",\n            \"Invalid fork 'Cantcun'\",\n        ),\n    ),\n    (\n        \"valid_at_transition_to_until_nonexistent_fork\",\n        (\n            \"\"\"\n            import pytest\n            @pytest.mark.valid_at_transition_to(\"Shanghai\", until=\"Cantcun\")\n            def test_case(state_test):\n                assert 0\n            \"\"\",\n            \"Invalid fork 'Cantcun'\",\n        ),\n    ),\n    (\n        \"valid_at_transition_to_and_valid_from\",\n        (\n            \"\"\"\n            import pytest\n            @pytest.mark.valid_at_transition_to(\"Cancun\")\n            @pytest.mark.valid_from(\"Paris\")\n            def test_case(state_test):\n                assert 0\n            \"\"\",\n            \"The markers 'valid_from' and 'valid_at_transition_to' can't be combined\",\n        ),\n    ),\n    (\n        \"valid_at_transition_to_and_valid_until\",\n        (\n            \"\"\"\n            import pytest\n            @pytest.mark.valid_at_transition_to(\"Shanghai\")\n            @pytest.mark.valid_until(\"Cancun\")\n            def test_case(state_test):\n                assert 0\n            \"\"\",\n            \"The markers 'valid_until' and 'valid_at_transition_to' can't be combined\",\n        ),\n    ),\n    (\n        \"invalid_validity_range\",\n        (\n            \"\"\"\n            import pytest\n            @pytest.mark.valid_from(\"Paris\")\n            @pytest.mark.valid_until(\"Frontier\")\n            def test_case(state_test):\n                assert 0\n            \"\"\",\n            \"fork validity markers generate an empty fork range\",\n        ),\n    ),\n)\n\n\n@pytest.mark.parametrize(\n    \"test_function, error_string\",\n    [test_case for _, test_case in invalid_validity_marker_test_cases],\n    ids=[test_id for test_id, _ in invalid_validity_marker_test_cases],\n)\ndef test_invalid_validity_markers(\n    pytester: pytest.Pytester, error_string: str, test_function: str\n) -> None:\n    \"\"\"\n    Test that a test with an invalid marker cases:\n    - Creates an outcome with exactly one error.\n    - Triggers the expected error string in pytest's console output.\n\n    Each invalid marker/marker combination is tested with one test in its own\n    test session.\n    \"\"\"\n    pytester.makepyfile(test_function)\n    pytester.copy_example(name=\"src/cli/pytest_commands/pytest_ini_files/pytest-fill.ini\")\n    result = pytester.runpytest(\"-c\", \"pytest-fill.ini\")\n    result.assert_outcomes(\n        passed=0,\n        failed=0,\n        skipped=0,\n        errors=1,\n    )\n    assert error_string in \"\\n\".join(result.stdout.lines)\n"
  },
  {
    "path": "src/pytest_plugins/forks/tests/test_covariant_markers.py",
    "content": "\"\"\"Test fork covariant markers and their effect on test parametrization.\"\"\"\n\nimport pytest\n\n\n@pytest.mark.parametrize(\n    \"test_function,outcomes,error_string\",\n    [\n        pytest.param(\n            \"\"\"\n            import pytest\n            @pytest.mark.with_all_tx_types()\n            @pytest.mark.valid_from(\"Paris\")\n            @pytest.mark.valid_until(\"Paris\")\n            @pytest.mark.state_test_only\n            def test_case(state_test, tx_type):\n                pass\n            \"\"\",\n            {\"passed\": 3, \"failed\": 0, \"skipped\": 0, \"errors\": 0},\n            None,\n            id=\"with_all_tx_types\",\n        ),\n        pytest.param(\n            \"\"\"\n            import pytest\n            @pytest.mark.with_all_tx_types(selector=lambda tx_type: tx_type != 0)\n            @pytest.mark.valid_from(\"Paris\")\n            @pytest.mark.valid_until(\"Paris\")\n            @pytest.mark.state_test_only\n            def test_case(state_test, tx_type):\n                pass\n            \"\"\",\n            {\"passed\": 2, \"failed\": 0, \"skipped\": 0, \"errors\": 0},\n            None,\n            id=\"with_all_tx_types_with_selector\",\n        ),\n        pytest.param(\n            \"\"\"\n            import pytest\n            @pytest.mark.with_all_tx_types(\n                marks=lambda tx_type: pytest.mark.skip(\"incompatible\") if tx_type == 1 else None,\n            )\n            @pytest.mark.valid_from(\"Paris\")\n            @pytest.mark.valid_until(\"Paris\")\n            @pytest.mark.state_test_only\n            def test_case(state_test, tx_type):\n                assert tx_type != 1\n            \"\"\",\n            {\"passed\": 2, \"xpassed\": 0, \"failed\": 0, \"skipped\": 1, \"errors\": 0},\n            None,\n            id=\"with_all_tx_types_with_marks_lambda\",\n        ),\n        pytest.param(\n            \"\"\"\n            import pytest\n            @pytest.mark.with_all_tx_types(marks=pytest.mark.skip(\"incompatible\"))\n            @pytest.mark.valid_from(\"Paris\")\n            @pytest.mark.valid_until(\"Paris\")\n            @pytest.mark.state_test_only\n            def test_case(state_test, tx_type):\n                assert False\n            \"\"\",\n            {\"passed\": 0, \"xpassed\": 0, \"failed\": 0, \"skipped\": 3, \"errors\": 0},\n            None,\n            id=\"with_all_tx_types_with_marks_lambda\",\n        ),\n        pytest.param(\n            \"\"\"\n            import pytest\n            @pytest.mark.with_all_tx_types(marks=[pytest.mark.skip(\"incompatible\")])\n            @pytest.mark.valid_from(\"Paris\")\n            @pytest.mark.valid_until(\"Paris\")\n            @pytest.mark.state_test_only\n            def test_case(state_test, tx_type):\n                assert False\n            \"\"\",\n            {\"passed\": 0, \"xpassed\": 0, \"failed\": 0, \"skipped\": 3, \"errors\": 0},\n            None,\n            id=\"with_all_tx_types_with_marks_lambda\",\n        ),\n        pytest.param(\n            \"\"\"\n            import pytest\n            @pytest.mark.with_all_tx_types(\n                marks=(\n                    lambda tx_type:\n                        [pytest.mark.xfail, pytest.mark.slow]\n                        if tx_type == 1 else None\n                    ),\n            )\n            @pytest.mark.valid_from(\"Paris\")\n            @pytest.mark.valid_until(\"Paris\")\n            @pytest.mark.state_test_only\n            def test_case(request, state_test, tx_type):\n                mark_names = [mark.name for mark in request.node.iter_markers()]\n\n                assert \"state_test\" in mark_names\n                if tx_type == 1:\n                    assert \"slow\" in mark_names\n            \"\"\",\n            {\"passed\": 2, \"xpassed\": 1, \"failed\": 0, \"skipped\": 0, \"errors\": 0},\n            None,\n            id=\"with_all_tx_types_with_marks_lambda_multiple_marks\",\n        ),\n        pytest.param(\n            \"\"\"\n            import pytest\n            @pytest.mark.with_all_contract_creating_tx_types()\n            @pytest.mark.valid_from(\"Paris\")\n            @pytest.mark.valid_until(\"Paris\")\n            @pytest.mark.state_test_only\n            def test_case(state_test, tx_type):\n                pass\n            \"\"\",\n            {\"passed\": 3, \"failed\": 0, \"skipped\": 0, \"errors\": 0},\n            None,\n            id=\"with_all_contract_creating_tx_types\",\n        ),\n        pytest.param(\n            \"\"\"\n            import pytest\n            @pytest.mark.with_all_contract_creating_tx_types()\n            @pytest.mark.valid_from(\"Cancun\")\n            @pytest.mark.valid_until(\"Cancun\")\n            @pytest.mark.state_test_only\n            def test_case(state_test, tx_type):\n                pass\n            \"\"\",\n            {\"passed\": 3, \"failed\": 0, \"skipped\": 0, \"errors\": 0},\n            None,\n            id=\"with_all_contract_creating_tx_types\",\n        ),\n        pytest.param(\n            \"\"\"\n            import pytest\n            @pytest.mark.with_all_precompiles()\n            @pytest.mark.valid_from(\"Cancun\")\n            @pytest.mark.valid_until(\"Cancun\")\n            @pytest.mark.state_test_only\n            def test_case(state_test, precompile):\n                pass\n            \"\"\",\n            {\"passed\": 10, \"failed\": 0, \"skipped\": 0, \"errors\": 0},\n            None,\n            id=\"with_all_precompiles\",\n        ),\n        pytest.param(\n            \"\"\"\n            import pytest\n            @pytest.mark.with_all_evm_code_types()\n            @pytest.mark.valid_from(\"Cancun\")\n            @pytest.mark.valid_until(\"Cancun\")\n            @pytest.mark.state_test_only\n            def test_case(state_test, evm_code_type):\n                pass\n            \"\"\",\n            {\"passed\": 1, \"failed\": 0, \"skipped\": 0, \"errors\": 0},\n            None,\n            id=\"with_all_evm_code_types\",\n        ),\n        pytest.param(\n            \"\"\"\n            import pytest\n            @pytest.mark.with_all_call_opcodes()\n            @pytest.mark.valid_from(\"Cancun\")\n            @pytest.mark.valid_until(\"Cancun\")\n            @pytest.mark.state_test_only\n            def test_case(state_test, call_opcode):\n                pass\n            \"\"\",\n            {\"passed\": 4, \"failed\": 0, \"skipped\": 0, \"errors\": 0},\n            None,\n            id=\"with_all_call_opcodes\",\n        ),\n        pytest.param(\n            \"\"\"\n            import pytest\n            from ethereum_test_tools import EVMCodeType\n            @pytest.mark.with_all_call_opcodes(\n                selector=(lambda _, evm_code_type: evm_code_type == EVMCodeType.LEGACY)\n            )\n            @pytest.mark.valid_from(\"Cancun\")\n            @pytest.mark.valid_until(\"Cancun\")\n            @pytest.mark.state_test_only\n            def test_case(state_test, call_opcode):\n                pass\n            \"\"\",\n            {\"passed\": 4, \"failed\": 0, \"skipped\": 0, \"errors\": 0},\n            None,\n            id=\"with_all_call_opcodes_with_selector_for_evm_code_type\",\n        ),\n        pytest.param(\n            \"\"\"\n            import pytest\n            from ethereum_test_tools import Opcodes as Op\n            @pytest.mark.with_all_call_opcodes(selector=lambda call_opcode: call_opcode == Op.CALL)\n            @pytest.mark.valid_from(\"Cancun\")\n            @pytest.mark.valid_until(\"Cancun\")\n            @pytest.mark.state_test_only\n            def test_case(state_test, call_opcode):\n                pass\n            \"\"\",\n            {\"passed\": 1, \"failed\": 0, \"skipped\": 0, \"errors\": 0},\n            None,\n            id=\"with_all_call_opcodes_with_selector\",\n        ),\n        pytest.param(\n            \"\"\"\n            import pytest\n            @pytest.mark.with_all_create_opcodes()\n            @pytest.mark.valid_from(\"Cancun\")\n            @pytest.mark.valid_until(\"Cancun\")\n            @pytest.mark.state_test_only\n            def test_case(state_test, create_opcode):\n                pass\n            \"\"\",\n            {\"passed\": 2, \"failed\": 0, \"skipped\": 0, \"errors\": 0},\n            None,\n            id=\"with_all_create_opcodes\",\n        ),\n        pytest.param(\n            \"\"\"\n            import pytest\n            @pytest.mark.with_all_call_opcodes()\n            @pytest.mark.with_all_precompiles()\n            @pytest.mark.valid_from(\"Cancun\")\n            @pytest.mark.valid_until(\"Cancun\")\n            @pytest.mark.state_test_only\n            def test_case(state_test, call_opcode, precompile):\n                pass\n            \"\"\",\n            {\"passed\": 4 * 10, \"failed\": 0, \"skipped\": 0, \"errors\": 0},\n            None,\n            id=\"with_all_call_opcodes_and_precompiles\",\n        ),\n        pytest.param(\n            \"\"\"\n            import pytest\n            @pytest.mark.with_all_call_opcodes()\n            @pytest.mark.with_all_create_opcodes()\n            @pytest.mark.valid_from(\"Cancun\")\n            @pytest.mark.valid_until(\"Cancun\")\n            @pytest.mark.state_test_only\n            def test_case(state_test, call_opcode, create_opcode):\n                pass\n            \"\"\",\n            {\"passed\": 2 * 4, \"failed\": 0, \"skipped\": 0, \"errors\": 0},\n            None,\n            id=\"with_all_call_opcodes_and_create_opcodes\",\n        ),\n        pytest.param(\n            \"\"\"\n            import pytest\n            @pytest.mark.with_all_system_contracts()\n            @pytest.mark.valid_from(\"Cancun\")\n            @pytest.mark.valid_until(\"Cancun\")\n            @pytest.mark.state_test_only\n            def test_case(state_test, system_contract):\n                pass\n            \"\"\",\n            {\"passed\": 1, \"failed\": 0, \"skipped\": 0, \"errors\": 0},\n            None,\n            id=\"with_all_system_contracts\",\n        ),\n        pytest.param(\n            \"\"\"\n            import pytest\n            from ethereum_test_tools import Transaction\n            @pytest.mark.with_all_typed_transactions\n            @pytest.mark.valid_from(\"Berlin\")\n            @pytest.mark.valid_until(\"Berlin\")\n            @pytest.mark.state_test_only\n            def test_case(state_test, typed_transaction):\n                assert isinstance(typed_transaction, Transaction)\n                assert typed_transaction.ty in [0, 1]  # Berlin supports types 0 and 1\n            \"\"\",\n            {\"passed\": 2, \"failed\": 0, \"skipped\": 0, \"errors\": 0},\n            None,\n            id=\"with_all_typed_transactions_berlin\",\n        ),\n        pytest.param(\n            \"\"\"\n            import pytest\n            from ethereum_test_tools import Transaction\n            @pytest.mark.with_all_typed_transactions()\n            @pytest.mark.valid_from(\"London\")\n            @pytest.mark.valid_until(\"London\")\n            @pytest.mark.state_test_only\n            def test_case(state_test, typed_transaction, pre):\n                assert isinstance(typed_transaction, Transaction)\n                assert typed_transaction.ty in [0, 1, 2]  # London supports types 0, 1, 2\n            \"\"\",\n            {\"passed\": 3, \"failed\": 0, \"skipped\": 0, \"errors\": 0},\n            None,\n            id=\"with_all_typed_transactions_london\",\n        ),\n        pytest.param(\n            \"\"\"\n            import pytest\n            from ethereum_test_tools import Transaction\n            from ethereum_test_base_types import AccessList\n\n            # Override the type 3 transaction fixture\n            @pytest.fixture\n            def type_3_default_transaction(pre):\n                sender = pre.fund_eoa()\n\n                return Transaction(\n                    ty=3,\n                    sender=sender,\n                    max_fee_per_gas=10**10,\n                    max_priority_fee_per_gas=10**9,\n                    max_fee_per_blob_gas=10**8,\n                    gas_limit=300_000,\n                    data=b\"\\\\xFF\" * 50,\n                    access_list=[\n                        AccessList(address=0x1111, storage_keys=[10, 20]),\n                    ],\n                    blob_versioned_hashes=[\n                        0x0111111111111111111111111111111111111111111111111111111111111111,\n                    ],\n                )\n\n            @pytest.mark.with_all_typed_transactions()\n            @pytest.mark.valid_at(\"Cancun\")\n            @pytest.mark.state_test_only\n            def test_case(state_test, typed_transaction, pre):\n                assert isinstance(typed_transaction, Transaction)\n                if typed_transaction.ty == 3:\n                    # Verify our override worked\n                    assert typed_transaction.data == b\"\\\\xFF\" * 50\n                    assert len(typed_transaction.blob_versioned_hashes) == 1\n            \"\"\",\n            {\"passed\": 4, \"failed\": 0, \"skipped\": 0, \"errors\": 0},\n            None,\n            id=\"with_all_typed_transactions_with_override\",\n        ),\n        pytest.param(\n            \"\"\"\n            import pytest\n            @pytest.mark.with_all_tx_types(invalid_parameter=\"invalid\")\n            @pytest.mark.valid_from(\"Paris\")\n            @pytest.mark.valid_until(\"Paris\")\n            @pytest.mark.state_test_only\n            def test_case(state_test, tx_type):\n                pass\n            \"\"\",\n            {\"passed\": 0, \"failed\": 0, \"skipped\": 0, \"errors\": 1},\n            \"Unknown arguments to with_all_tx_types\",\n            id=\"invalid_covariant_marker_parameter\",\n        ),\n        pytest.param(\n            \"\"\"\n            import pytest\n            @pytest.mark.with_all_tx_types(selector=None)\n            @pytest.mark.valid_from(\"Paris\")\n            @pytest.mark.valid_until(\"Paris\")\n            @pytest.mark.state_test_only\n            def test_case(state_test, tx_type):\n                pass\n            \"\"\",\n            {\"passed\": 0, \"failed\": 0, \"skipped\": 0, \"errors\": 1},\n            \"selector must be a function\",\n            id=\"invalid_selector\",\n        ),\n        pytest.param(\n            \"\"\"\n            import pytest\n            @pytest.mark.with_all_tx_types(lambda tx_type: tx_type != 0)\n            @pytest.mark.valid_from(\"Paris\")\n            @pytest.mark.valid_until(\"Paris\")\n            @pytest.mark.state_test_only\n            def test_case(state_test, tx_type):\n                pass\n            \"\"\",\n            {\"passed\": 0, \"failed\": 0, \"skipped\": 0, \"errors\": 1},\n            \"Only keyword arguments are supported\",\n            id=\"selector_as_positional_argument\",\n        ),\n        pytest.param(\n            \"\"\"\n            import pytest\n\n            def covariant_function(fork):\n                return [1, 2] if fork.name() == \"Paris\" else [3, 4, 5]\n\n            @pytest.mark.parametrize_by_fork(\n                argnames=[\"test_parameter\"],\n                fn=covariant_function,\n            )\n            @pytest.mark.valid_from(\"Paris\")\n            @pytest.mark.valid_until(\"Shanghai\")\n            @pytest.mark.state_test_only\n            def test_case(state_test, test_parameter):\n                pass\n            \"\"\",\n            {\"passed\": 5, \"failed\": 0, \"skipped\": 0, \"errors\": 0},\n            None,\n            id=\"custom_covariant_marker\",\n        ),\n        pytest.param(\n            \"\"\"\n            import pytest\n\n            def covariant_function(fork):\n                return [[1, 2], [3, 4]] if fork.name() == \"Paris\" else [[4, 5], [5, 6], [6, 7]]\n\n            @pytest.mark.parametrize_by_fork(\"test_parameter,test_parameter_2\", covariant_function)\n            @pytest.mark.valid_from(\"Paris\")\n            @pytest.mark.valid_until(\"Shanghai\")\n            @pytest.mark.state_test_only\n            def test_case(state_test, test_parameter, test_parameter_2):\n                pass\n            \"\"\",\n            {\"passed\": 5, \"failed\": 0, \"skipped\": 0, \"errors\": 0},\n            None,\n            id=\"multi_parameter_custom_covariant_marker\",\n        ),\n        pytest.param(\n            \"\"\"\n            import pytest\n\n            def covariant_function(fork):\n                return [\n                    pytest.param(1, id=\"first_value\"),\n                    2,\n                ] if fork.name() == \"Paris\" else [\n                    pytest.param(3, id=\"third_value\"),\n                    4,\n                    5,\n                ]\n\n            @pytest.mark.parametrize_by_fork(\"test_parameter\",covariant_function)\n            @pytest.mark.valid_from(\"Paris\")\n            @pytest.mark.valid_until(\"Shanghai\")\n            @pytest.mark.state_test_only\n            def test_case(state_test, test_parameter):\n                pass\n            \"\"\",\n            {\"passed\": 5, \"failed\": 0, \"skipped\": 0, \"errors\": 0},\n            None,\n            id=\"custom_covariant_marker_pytest_param_id\",\n        ),\n        pytest.param(\n            \"\"\"\n            import pytest\n\n            def covariant_function(fork):\n                return [\n                    pytest.param(1, 2, id=\"first_test\"),\n                    pytest.param(3, 4, id=\"second_test\"),\n                ] if fork.name() == \"Paris\" else [\n                    pytest.param(4, 5, id=\"fourth_test\"),\n                    pytest.param(5, 6, id=\"fifth_test\"),\n                    pytest.param(6, 7, id=\"sixth_test\"),\n                ]\n\n            @pytest.mark.parametrize_by_fork(argnames=[\n                \"test_parameter\", \"test_parameter_2\"\n            ], fn=covariant_function)\n            @pytest.mark.valid_from(\"Paris\")\n            @pytest.mark.valid_until(\"Shanghai\")\n            @pytest.mark.state_test_only\n            def test_case(state_test, test_parameter, test_parameter_2):\n                pass\n            \"\"\",\n            {\"passed\": 5, \"failed\": 0, \"skipped\": 0, \"errors\": 0},\n            None,\n            id=\"multi_parameter_custom_covariant_marker_pytest_param_id\",\n        ),\n    ],\n)\ndef test_fork_covariant_markers(\n    pytester: pytest.Pytester, test_function: str, outcomes: dict, error_string: str | None\n) -> None:\n    \"\"\"\n    Test fork covariant markers in an isolated test session, i.e., in\n    a `fill` execution.\n\n    In the case of an error, check that the expected error string is in the\n    console output.\n    \"\"\"\n    pytester.makepyfile(test_function)\n    pytester.copy_example(name=\"src/cli/pytest_commands/pytest_ini_files/pytest-fill.ini\")\n    result = pytester.runpytest(\"-c\", \"pytest-fill.ini\")\n    result.assert_outcomes(**outcomes)\n    if outcomes[\"errors\"]:\n        assert error_string is not None\n        assert error_string in \"\\n\".join(result.stdout.lines)\n"
  },
  {
    "path": "src/pytest_plugins/forks/tests/test_fork_parametrizer_types.py",
    "content": "\"\"\"Test the types used to parametrize forks.\"\"\"\n\nfrom typing import List\n\nimport pytest\nfrom _pytest.mark.structures import ParameterSet\n\nfrom ethereum_test_forks import Frontier\n\nfrom ..forks import (\n    ForkCovariantParameter,\n    ForkParametrizer,\n    parameters_from_fork_parametrizer_list,\n)\n\n\n@pytest.mark.parametrize(\n    \"fork_parametrizers,expected_names,expected_parameter_sets\",\n    [\n        pytest.param(\n            [ForkParametrizer(fork=Frontier)],\n            [\"fork\"],\n            [pytest.param(Frontier)],\n            id=\"only_fork\",\n        ),\n        pytest.param(\n            [\n                ForkParametrizer(\n                    fork=Frontier,\n                    fork_covariant_parameters=[\n                        ForkCovariantParameter(names=[\"some_value\"], values=[pytest.param(1)])\n                    ],\n                )\n            ],\n            [\"fork\", \"some_value\"],\n            [pytest.param(Frontier, 1)],\n            id=\"fork_with_single_covariant_parameter\",\n        ),\n        pytest.param(\n            [\n                ForkParametrizer(\n                    fork=Frontier,\n                    fork_covariant_parameters=[\n                        ForkCovariantParameter(\n                            names=[\"some_value\"],\n                            values=[pytest.param(1), pytest.param(2)],\n                        )\n                    ],\n                )\n            ],\n            [\"fork\", \"some_value\"],\n            [pytest.param(Frontier, 1), pytest.param(Frontier, 2)],\n            id=\"fork_with_single_covariant_parameter_multiple_values\",\n        ),\n        pytest.param(\n            [\n                ForkParametrizer(\n                    fork=Frontier,\n                    fork_covariant_parameters=[\n                        ForkCovariantParameter(\n                            names=[\"some_value\"],\n                            values=[\n                                pytest.param(1, marks=[pytest.mark.some_mark]),\n                                pytest.param(2),\n                            ],\n                        )\n                    ],\n                )\n            ],\n            [\"fork\", \"some_value\"],\n            [pytest.param(Frontier, 1, marks=[pytest.mark.some_mark]), pytest.param(Frontier, 2)],\n            id=\"fork_with_single_covariant_parameter_multiple_values_one_mark\",\n        ),\n        pytest.param(\n            [\n                ForkParametrizer(\n                    fork=Frontier,\n                    fork_covariant_parameters=[\n                        ForkCovariantParameter(names=[\"some_value\"], values=[pytest.param(1)]),\n                        ForkCovariantParameter(names=[\"another_value\"], values=[pytest.param(2)]),\n                    ],\n                )\n            ],\n            [\"fork\", \"some_value\", \"another_value\"],\n            [pytest.param(Frontier, 1, 2)],\n            id=\"fork_with_multiple_covariant_parameters\",\n        ),\n        pytest.param(\n            [\n                ForkParametrizer(\n                    fork=Frontier,\n                    fork_covariant_parameters=[\n                        ForkCovariantParameter(names=[\"some_value\"], values=[pytest.param(1)]),\n                        ForkCovariantParameter(\n                            names=[\"another_value\"],\n                            values=[pytest.param(2), pytest.param(3)],\n                        ),\n                    ],\n                )\n            ],\n            [\"fork\", \"some_value\", \"another_value\"],\n            [pytest.param(Frontier, 1, 2), pytest.param(Frontier, 1, 3)],\n            id=\"fork_with_multiple_covariant_parameters_multiple_values\",\n        ),\n        pytest.param(\n            [\n                ForkParametrizer(\n                    fork=Frontier,\n                    fork_covariant_parameters=[\n                        ForkCovariantParameter(\n                            names=[\"some_value\", \"another_value\"],\n                            values=[\n                                pytest.param(1, \"a\"),\n                                pytest.param(2, \"b\"),\n                            ],\n                        )\n                    ],\n                )\n            ],\n            [\"fork\", \"some_value\", \"another_value\"],\n            [pytest.param(Frontier, 1, \"a\"), pytest.param(Frontier, 2, \"b\")],\n            id=\"fork_with_single_multi_value_covariant_parameter_multiple_values\",\n        ),\n        pytest.param(\n            [\n                ForkParametrizer(\n                    fork=Frontier,\n                    fork_covariant_parameters=[\n                        ForkCovariantParameter(\n                            names=[\"some_value\", \"another_value\"],\n                            values=[\n                                pytest.param(1, \"a\"),\n                                pytest.param(2, \"b\"),\n                            ],\n                        ),\n                        ForkCovariantParameter(\n                            names=[\"yet_another_value\", \"last_value\"],\n                            values=[\n                                pytest.param(3, \"x\"),\n                                pytest.param(4, \"y\"),\n                            ],\n                        ),\n                    ],\n                )\n            ],\n            [\"fork\", \"some_value\", \"another_value\", \"yet_another_value\", \"last_value\"],\n            [\n                pytest.param(Frontier, 1, \"a\", 3, \"x\"),\n                pytest.param(Frontier, 1, \"a\", 4, \"y\"),\n                pytest.param(Frontier, 2, \"b\", 3, \"x\"),\n                pytest.param(Frontier, 2, \"b\", 4, \"y\"),\n            ],\n            id=\"fork_with_multiple_multi_value_covariant_parameter_multiple_values\",\n        ),\n        pytest.param(\n            [\n                ForkParametrizer(\n                    fork=Frontier,\n                    fork_covariant_parameters=[\n                        ForkCovariantParameter(\n                            names=[\"shared_value\", \"different_value_1\"],\n                            values=[\n                                pytest.param(1, \"a\"),\n                                pytest.param(2, \"b\"),\n                            ],\n                        ),\n                        ForkCovariantParameter(\n                            names=[\"shared_value\", \"different_value_2\"],\n                            values=[\n                                pytest.param(1, \"x\"),\n                                pytest.param(2, \"y\"),\n                            ],\n                        ),\n                    ],\n                )\n            ],\n            [\"fork\", \"shared_value\", \"different_value_1\", \"different_value_2\"],\n            [\n                pytest.param(Frontier, 1, \"a\", \"x\"),\n                pytest.param(Frontier, 2, \"b\", \"y\"),\n            ],\n            id=\"fork_with_multiple_multi_value_covariant_parameter_shared_values\",\n        ),\n    ],\n)\ndef test_fork_parametrizer(\n    fork_parametrizers: List[ForkParametrizer],\n    expected_names: List[str],\n    expected_parameter_sets: List[ParameterSet],\n) -> None:\n    \"\"\"\n    Test the fork parametrizer correctly parametrizes using the fork name.\n    \"\"\"\n    argnames, values = parameters_from_fork_parametrizer_list(fork_parametrizers)\n    assert argnames == expected_names\n    assert len(values) == len(expected_parameter_sets)\n    for i in range(len(values)):\n        assert len(values[i].values) == len(expected_parameter_sets[i].values)\n        for j in range(len(values[i].values)):\n            assert values[i].values[j] == expected_parameter_sets[i].values[j]\n        assert len(values[i].marks) == len(expected_parameter_sets[i].marks)\n        for j in range(len(values[i].marks)):\n            assert values[i].marks[j] == expected_parameter_sets[i].marks[j]  # type: ignore\n"
  },
  {
    "path": "src/pytest_plugins/forks/tests/test_forks.py",
    "content": "\"\"\"Test the forks plugin.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_fixtures import LabeledFixtureFormat\nfrom ethereum_test_forks import ArrowGlacier, Fork, forks_from_until, get_deployed_forks, get_forks\nfrom ethereum_test_tools import StateTest\n\n\n@pytest.fixture\ndef fork_map() -> dict[str, Fork]:\n    \"\"\"Lookup fork.name() : fork class.\"\"\"\n    return {fork.name(): fork for fork in get_forks()}\n\n\ndef test_no_options_no_validity_marker(pytester: pytest.Pytester) -> None:\n    \"\"\"\n    Test test parametrization with:\n    - no fork command-line options,\n    - no fork validity marker.\n    \"\"\"\n    pytester.makepyfile(\n        f\"\"\"\n        import pytest\n\n        def test_all_forks({StateTest.pytest_parameter_name()}):\n            pass\n        \"\"\"\n    )\n    pytester.copy_example(name=\"src/cli/pytest_commands/pytest_ini_files/pytest-fill.ini\")\n    result = pytester.runpytest(\"-c\", \"pytest-fill.ini\", \"-v\")\n    all_forks = get_deployed_forks()\n    forks_under_test = forks_from_until(all_forks[0], all_forks[-1])\n    expected_skipped = 2  # eels doesn't support Constantinople\n    expected_passed = (\n        len(forks_under_test) * len(StateTest.supported_fixture_formats) - expected_skipped\n    )\n    stdout = \"\\n\".join(result.stdout.lines)\n    for test_fork in forks_under_test:\n        for fixture_format in StateTest.supported_fixture_formats:\n            if isinstance(fixture_format, LabeledFixtureFormat):\n                fixture_format_label = fixture_format.label\n                fixture_format = fixture_format.format\n            else:\n                fixture_format_label = fixture_format.format_name.lower()\n            if (\n                not fixture_format.supports_fork(test_fork)\n                or \"blockchain_test_engine_x\" in fixture_format_label\n            ):\n                expected_passed -= 1\n                assert f\":test_all_forks[fork_{test_fork}-{fixture_format_label}]\" not in stdout\n                continue\n            assert f\":test_all_forks[fork_{test_fork}-{fixture_format_label}]\" in stdout\n\n    result.assert_outcomes(\n        passed=expected_passed,\n        failed=0,\n        skipped=expected_skipped,\n        errors=0,\n    )\n\n\n@pytest.mark.parametrize(\"fork\", [\"London\", \"Paris\"])\ndef test_from_london_option_no_validity_marker(\n    pytester: pytest.Pytester, fork_map: dict[str, Fork], fork: str\n) -> None:\n    \"\"\"\n    Test test parametrization with:\n    - --from London command-line option,\n    - no until command-line option,\n    - no fork validity marker.\n    \"\"\"\n    pytester.makepyfile(\n        f\"\"\"\n        import pytest\n\n        def test_all_forks({StateTest.pytest_parameter_name()}):\n            pass\n        \"\"\"\n    )\n    pytester.copy_example(name=\"src/cli/pytest_commands/pytest_ini_files/pytest-fill.ini\")\n    result = pytester.runpytest(\"-c\", \"pytest-fill.ini\", \"-v\", \"--from\", fork)\n    all_forks = get_deployed_forks()\n    forks_under_test = forks_from_until(fork_map[fork], all_forks[-1])\n    expected_passed = len(forks_under_test) * len(StateTest.supported_fixture_formats)\n    stdout = \"\\n\".join(result.stdout.lines)\n    for test_fork in forks_under_test:\n        for fixture_format in StateTest.supported_fixture_formats:\n            if isinstance(fixture_format, LabeledFixtureFormat):\n                fixture_format_label = fixture_format.label\n                fixture_format = fixture_format.format\n            else:\n                fixture_format_label = fixture_format.format_name.lower()\n            if (\n                not fixture_format.supports_fork(test_fork)\n                or \"blockchain_test_engine_x\" in fixture_format_label\n            ):\n                expected_passed -= 1\n                assert f\":test_all_forks[fork_{test_fork}-{fixture_format_label}]\" not in stdout\n                continue\n            assert f\":test_all_forks[fork_{test_fork}-{fixture_format_label}]\" in stdout\n    result.assert_outcomes(\n        passed=expected_passed,\n        failed=0,\n        skipped=0,\n        errors=0,\n    )\n\n\ndef test_from_london_until_shanghai_option_no_validity_marker(\n    pytester: pytest.Pytester, fork_map: dict[str, Fork]\n) -> None:\n    \"\"\"\n    Test test parametrization with:\n    - --from London command-line option,\n    - --until Shanghai command-line option,\n    - no fork validity marker.\n    \"\"\"\n    pytester.makepyfile(\n        f\"\"\"\n        import pytest\n\n        def test_all_forks({StateTest.pytest_parameter_name()}):\n            pass\n        \"\"\"\n    )\n    pytester.copy_example(name=\"src/cli/pytest_commands/pytest_ini_files/pytest-fill.ini\")\n    result = pytester.runpytest(\n        \"-c\", \"pytest-fill.ini\", \"-v\", \"--from\", \"London\", \"--until\", \"shanghai\"\n    )\n    forks_under_test = forks_from_until(fork_map[\"London\"], fork_map[\"Shanghai\"])\n    expected_passed = len(forks_under_test) * len(StateTest.supported_fixture_formats)\n    stdout = \"\\n\".join(result.stdout.lines)\n    if ArrowGlacier in forks_under_test:\n        forks_under_test.remove(ArrowGlacier)\n        expected_passed -= len(StateTest.supported_fixture_formats)\n    for test_fork in forks_under_test:\n        for fixture_format in StateTest.supported_fixture_formats:\n            if isinstance(fixture_format, LabeledFixtureFormat):\n                fixture_format_label = fixture_format.label\n                fixture_format = fixture_format.format\n            else:\n                fixture_format_label = fixture_format.format_name.lower()\n            if (\n                not fixture_format.supports_fork(test_fork)\n                or \"blockchain_test_engine_x\" in fixture_format_label\n            ):\n                expected_passed -= 1\n                assert f\":test_all_forks[fork_{test_fork}-{fixture_format_label}]\" not in stdout\n                continue\n            assert f\":test_all_forks[fork_{test_fork}-{fixture_format_label}]\" in stdout\n    result.assert_outcomes(\n        passed=expected_passed,\n        failed=0,\n        skipped=0,\n        errors=0,\n    )\n\n\ndef test_from_paris_until_paris_option_no_validity_marker(\n    pytester: pytest.Pytester, fork_map: dict[str, Fork]\n) -> None:\n    \"\"\"\n    Test test parametrization with:\n    - --from Paris command-line option,\n    - --until Paris command-line option,\n    - no fork validity marker.\n    \"\"\"\n    pytester.makepyfile(\n        f\"\"\"\n        import pytest\n\n        def test_all_forks({StateTest.pytest_parameter_name()}):\n            pass\n        \"\"\"\n    )\n    pytester.copy_example(name=\"src/cli/pytest_commands/pytest_ini_files/pytest-fill.ini\")\n    result = pytester.runpytest(\n        \"-c\", \"pytest-fill.ini\", \"-v\", \"--from\", \"paris\", \"--until\", \"paris\"\n    )\n    forks_under_test = forks_from_until(fork_map[\"Paris\"], fork_map[\"Paris\"])\n    expected_passed = len(forks_under_test) * len(StateTest.supported_fixture_formats)\n    stdout: str = \"\\n\".join(result.stdout.lines)\n    assert len(stdout) > 0, \"stdout is empty string\"\n\n    for test_fork in forks_under_test:\n        for fixture_format in StateTest.supported_fixture_formats:\n            if isinstance(fixture_format, LabeledFixtureFormat):\n                fixture_format_label = fixture_format.label\n                fixture_format = fixture_format.format\n            else:\n                fixture_format_label = fixture_format.format_name.lower()\n            if \"blockchain_test_engine_x\" in fixture_format_label:\n                expected_passed -= 1\n                assert f\":test_all_forks[fork_{test_fork}-{fixture_format_label}]\" not in stdout\n                continue\n            assert f\":test_all_forks[fork_{test_fork}-{fixture_format_label}]\" in stdout\n    result.assert_outcomes(\n        passed=expected_passed,\n        failed=0,\n        skipped=0,\n        errors=0,\n    )\n"
  },
  {
    "path": "src/pytest_plugins/forks/tests/test_markers.py",
    "content": "\"\"\"Test fork markers and their effect on test parametrization.\"\"\"\n\nfrom typing import List\n\nimport pytest\n\nfrom ethereum_clis import TransitionTool\n\n\ndef generate_test(**kwargs: str) -> str:\n    \"\"\"Generate a test function with the given fork markers.\"\"\"\n    markers = [f\"@pytest.mark.{key}({value})\" for key, value in kwargs.items()]\n    marker_lines = \"\\n\".join(markers)\n    return f\"\"\"\nimport pytest\n{marker_lines}\n@pytest.mark.state_test_only\ndef test_case(state_test):\n    pass\n\"\"\"\n\n\n@pytest.mark.parametrize(\n    \"test_function,pytest_args,outcomes\",\n    [\n        pytest.param(\n            generate_test(\n                valid_until='\"Cancun\"',\n            ),\n            [],\n            {\"passed\": 10, \"failed\": 0, \"skipped\": 1, \"errors\": 0},\n            id=\"valid_until\",\n        ),\n        pytest.param(\n            generate_test(\n                valid_until='\"Cancun\"',\n            ),\n            [\"--from=Berlin\"],\n            {\"passed\": 5, \"failed\": 0, \"skipped\": 0, \"errors\": 0},\n            id=\"valid_until,--from\",\n        ),\n        pytest.param(\n            generate_test(\n                valid_from='\"Paris\"',\n            ),\n            [\"--until=Prague\"],\n            {\"passed\": 4, \"failed\": 0, \"skipped\": 0, \"errors\": 0},\n            id=\"valid_from\",\n        ),\n        pytest.param(\n            generate_test(\n                valid_from='\"Paris\"',\n                valid_until='\"Cancun\"',\n            ),\n            [],\n            {\"passed\": 3, \"failed\": 0, \"skipped\": 0, \"errors\": 0},\n            id=\"valid_from_until\",\n        ),\n        pytest.param(\n            generate_test(\n                valid_from='\"Paris\"',\n                valid_until='\"Cancun\"',\n            ),\n            [\"--until=Prague\"],\n            {\"passed\": 3, \"failed\": 0, \"skipped\": 0, \"errors\": 0},\n            id=\"valid_from_until,--until=Prague\",\n        ),\n        pytest.param(\n            generate_test(\n                valid_from='\"Paris\"',\n                valid_until='\"Cancun\"',\n            ),\n            [\"--until=Shanghai\"],\n            {\"passed\": 2, \"failed\": 0, \"skipped\": 0, \"errors\": 0},\n            id=\"valid_from_until,--until=Shanghai\",\n        ),\n        pytest.param(\n            generate_test(\n                valid_at_transition_to='\"Shanghai\"',\n            ),\n            [],\n            {\"passed\": 1, \"failed\": 0, \"skipped\": 0, \"errors\": 0},\n            id=\"valid_at_transition_to\",\n        ),\n        pytest.param(\n            generate_test(\n                valid_at_transition_to='\"Shanghai\"',\n            ),\n            [\"--until=Prague\"],\n            {\"passed\": 1, \"failed\": 0, \"skipped\": 0, \"errors\": 0},\n            id=\"valid_at_transition_to,--until=Prague\",\n        ),\n        pytest.param(\n            generate_test(\n                valid_at_transition_to='\"Shanghai\"',\n            ),\n            [\"--until=Berlin\"],\n            {\"passed\": 0, \"failed\": 0, \"skipped\": 0, \"errors\": 0},\n            id=\"valid_at_transition_to,--until=Berlin\",\n        ),\n        pytest.param(\n            generate_test(\n                valid_at_transition_to='\"Paris\", subsequent_forks=True',\n            ),\n            [\"--until=Prague\"],\n            {\"passed\": 3, \"failed\": 0, \"skipped\": 0, \"errors\": 0},\n            id=\"valid_at_transition_to,subsequent_forks=True\",\n        ),\n        pytest.param(\n            generate_test(\n                valid_at_transition_to='\"Paris\", subsequent_forks=True, until=\"Cancun\"',\n            ),\n            [\"--until=Prague\"],\n            {\"passed\": 2, \"failed\": 0, \"skipped\": 0, \"errors\": 0},\n            id=\"valid_at_transition_to,subsequent_forks=True,until\",\n        ),\n        pytest.param(\n            generate_test(\n                valid_at_transition_to='\"Cancun\"',\n            ),\n            [\"--fork=ShanghaiToCancunAtTime15k\"],\n            {\"passed\": 1, \"failed\": 0, \"skipped\": 0, \"errors\": 0},\n            id=\"valid_at_transition_to,--fork=transition_fork_only\",\n        ),\n        pytest.param(\n            generate_test(\n                valid_from='\"Osaka\"',\n                valid_until='\"BPO1\"',\n            ),\n            [\"--until=BPO1\"],\n            {\"passed\": 1, \"failed\": 0, \"skipped\": 0, \"errors\": 0},\n            id=\"valid_until_bpo_fork_without_bpo_test_marker\",\n        ),\n        pytest.param(\n            generate_test(\n                valid_from='\"Osaka\"',\n                valid_until='\"BPO1\"',\n                valid_for_bpo_forks=\"\",\n            ),\n            [\"--until=BPO1\"],\n            {\"passed\": 2, \"failed\": 0, \"skipped\": 0, \"errors\": 0},\n            id=\"valid_until_bpo_fork_with_bpo_test_marker\",\n        ),\n        pytest.param(\n            generate_test(\n                valid_at_transition_to='\"Osaka\", subsequent_forks=True, until=\"BPO1\"',\n            ),\n            [\"--until=BPO1\"],\n            {\"passed\": 1, \"failed\": 0, \"skipped\": 0, \"errors\": 0},\n            id=\"valid_at_transition_without_bpo_test_marker\",\n        ),\n        pytest.param(\n            generate_test(\n                valid_at_transition_to='\"Osaka\", subsequent_forks=True, until=\"BPO1\"',\n                valid_for_bpo_forks=\"\",\n            ),\n            [\"--until=BPO1\"],\n            {\"passed\": 2, \"failed\": 0, \"skipped\": 0, \"errors\": 0},\n            id=\"valid_at_transition_with_bpo_test_marker\",\n        ),\n        pytest.param(\n            generate_test(\n                valid_at_transition_to='\"Cancun\"',\n            ),\n            [\"--fork=Cancun\"],\n            {\"passed\": 1, \"failed\": 0, \"skipped\": 0, \"errors\": 0},\n            id=\"valid_at_transition_to_with_exact_fork\",\n        ),\n        pytest.param(\n            generate_test(\n                valid_at_transition_to='\"Cancun\"',\n            ),\n            [\"--from=Cancun\", \"--until=Prague\"],\n            {\"passed\": 1, \"failed\": 0, \"skipped\": 0, \"errors\": 0},\n            id=\"valid_at_transition_to_from_fork_until_later_fork\",\n        ),\n        pytest.param(\n            generate_test(\n                valid_at_transition_to='\"BPO1\"',\n                valid_for_bpo_forks=\"\",\n            ),\n            [\"--fork=Osaka\"],\n            {\"passed\": 0, \"failed\": 0, \"skipped\": 0, \"errors\": 0},\n            id=\"valid_at_transition_with_bpo_test_marker_fork_parent\",\n        ),\n        pytest.param(\n            generate_test(\n                valid_at_transition_to='\"BPO1\"',\n                valid_for_bpo_forks=\"\",\n            ),\n            [\"--from=Osaka\", \"--until=Osaka\"],\n            {\"passed\": 0, \"failed\": 0, \"skipped\": 0, \"errors\": 0},\n            id=\"valid_at_transition_with_bpo_test_marker_from_parent\",\n        ),\n    ],\n)\ndef test_fork_markers(\n    pytester: pytest.Pytester,\n    test_function: str,\n    outcomes: dict,\n    pytest_args: List[str],\n    default_t8n: TransitionTool,\n) -> None:\n    \"\"\"\n    Test fork markers in an isolated test session, i.e., in\n    a `fill` execution.\n\n    In the case of an error, check that the expected error string is in the\n    console output.\n    \"\"\"\n    pytester.makepyfile(test_function)\n    pytester.copy_example(name=\"src/cli/pytest_commands/pytest_ini_files/pytest-fill.ini\")\n    assert default_t8n.server_url is not None\n    result = pytester.runpytest(\n        \"-c\",\n        \"pytest-fill.ini\",\n        \"-v\",\n        *pytest_args,\n        \"--t8n-server-url\",\n        default_t8n.server_url,\n    )\n    result.assert_outcomes(**outcomes)\n"
  },
  {
    "path": "src/pytest_plugins/help/__init__.py",
    "content": "\"\"\"\nPytest plugin that prints help defined in other execution-spec-tests plugins.\n\"\"\"\n"
  },
  {
    "path": "src/pytest_plugins/help/help.py",
    "content": "\"\"\"\nA small pytest plugin that shows the a concise help string that only contains\nthe options defined by the plugins defined in execution-spec-tests.\n\"\"\"\n\nimport argparse\nfrom pathlib import Path\n\nimport pytest\n\n\ndef pytest_addoption(parser: pytest.Parser) -> None:\n    \"\"\"Add command-line options to pytest for specific help commands.\"\"\"\n    help_group = parser.getgroup(\"help_options\", \"Help options for different commands\")\n    help_group.addoption(\n        \"--check-eip-versions-help\",\n        action=\"store_true\",\n        dest=\"show_check_eip_versions_help\",\n        default=False,\n        help=\"Show help options only for the check_eip_versions command and exit.\",\n    )\n    help_group.addoption(\n        \"--fill-help\",\n        action=\"store_true\",\n        dest=\"show_fill_help\",\n        default=False,\n        help=\"Show help options only for the fill command and exit.\",\n    )\n    help_group.addoption(\n        \"--consume-help\",\n        action=\"store_true\",\n        dest=\"show_consume_help\",\n        default=False,\n        help=\"Show help options specific to the consume command and exit.\",\n    )\n    help_group.addoption(\n        \"--execute-remote-help\",\n        action=\"store_true\",\n        dest=\"show_execute_help\",\n        default=False,\n        help=\"Show help options specific to the execute's command remote and exit.\",\n    )\n    help_group.addoption(\n        \"--execute-hive-help\",\n        action=\"store_true\",\n        dest=\"show_execute_hive_help\",\n        default=False,\n        help=\"Show help options specific to the execute's command hive and exit.\",\n    )\n    help_group.addoption(\n        \"--execute-recover-help\",\n        action=\"store_true\",\n        dest=\"show_execute_recover_help\",\n        default=False,\n        help=\"Show help options specific to the execute's command recover and exit.\",\n    )\n    help_group.addoption(\n        \"--execute-eth-config-help\",\n        action=\"store_true\",\n        dest=\"show_execute_eth_config_help\",\n        default=False,\n        help=\"Show help options specific to the execute's command eth_config and exit.\",\n    )\n\n\n@pytest.hookimpl(tryfirst=True)\ndef pytest_configure(config: pytest.Config) -> None:\n    \"\"\"\n    Handle specific help flags by displaying the corresponding help message.\n    \"\"\"\n    if config.getoption(\"show_check_eip_versions_help\"):\n        show_specific_help(\n            config,\n            \"pytest-check-eip-versions.ini\",\n            [\n                \"spec_version_checker\",\n                \"EIP spec version\",\n            ],\n        )\n    elif config.getoption(\"show_fill_help\"):\n        show_specific_help(\n            config,\n            \"pytest-fill.ini\",\n            [\n                \"evm\",\n                \"solc\",\n                \"fork range\",\n                \"filler location\",\n                \"defining debug\",\n                \"pre-allocation behavior during test filling\",\n                \"ported\",\n                \"witness\",\n            ],\n        )\n    elif config.getoption(\"show_consume_help\"):\n        show_specific_help(\n            config,\n            \"pytest-consume.ini\",\n            [\n                \"consuming\",\n            ],\n        )\n    elif config.getoption(\"show_execute_help\"):\n        show_specific_help(\n            config,\n            \"pytest-execute.ini\",\n            [\n                \"execute\",\n                \"remote RPC configuration\",\n                \"pre-allocation behavior during test execution\",\n                \"sender key fixtures\",\n                \"remote seed sender\",\n            ],\n        )\n    elif config.getoption(\"show_execute_hive_help\"):\n        show_specific_help(\n            config,\n            \"pytest-execute-hive.ini\",\n            [\n                \"execute\",\n                \"hive RPC client\",\n                \"pre-allocation behavior during test execution\",\n                \"sender key fixtures\",\n                \"remote seed sender\",\n            ],\n        )\n    elif config.getoption(\"show_execute_recover_help\"):\n        show_specific_help(\n            config,\n            \"pytest-execute-recover.ini\",\n            [\n                \"fund recovery\",\n                \"remote RPC configuration\",\n                \"remote seed sender\",\n            ],\n        )\n    elif config.getoption(\"show_execute_eth_config_help\"):\n        show_specific_help(\n            config,\n            \"pytest-execute-eth-config.ini\",\n            [\n                \"eth_config\",\n            ],\n        )\n\n\ndef show_specific_help(config: pytest.Config, expected_ini: str, substrings: list[str]) -> None:\n    \"\"\"\n    Print help options filtered by specific substrings from the given\n    configuration.\n    \"\"\"\n    pytest_ini = Path(config.inifile)  # type: ignore\n    if pytest_ini.name != expected_ini:\n        raise ValueError(\n            f\"Unexpected {expected_ini}!={pytest_ini.name} file option generating help.\"\n        )\n\n    test_parser = argparse.ArgumentParser()\n    for group in config._parser.optparser._action_groups:\n        title: str | None = group.title\n        if title and any(substring in title for substring in substrings):\n            new_group = test_parser.add_argument_group(group.title, group.description)\n            for action in group._group_actions:\n                kwargs = {\n                    \"default\": action.default,\n                    \"help\": action.help,\n                    \"required\": action.required,\n                }\n                if isinstance(action, argparse._StoreTrueAction):\n                    kwargs[\"action\"] = \"store_true\"\n                else:\n                    kwargs[\"type\"] = action.type\n                if action.nargs:\n                    kwargs[\"nargs\"] = action.nargs\n                new_group.add_argument(*action.option_strings, **kwargs)\n\n    print(test_parser.format_help())\n    pytest.exit(\"After displaying help.\", returncode=pytest.ExitCode.OK)\n"
  },
  {
    "path": "src/pytest_plugins/help/tests/test_help.py",
    "content": "\"\"\"Test the help plugin.\"\"\"\n\nfrom typing import Any\n\nimport pytest\n\nFILL_TEST_ARGS = (\n    \"--evm-bin\",\n    \"--traces\",\n    \"--filler-path\",\n    \"--output\",\n    \"--forks\",\n    \"--fork\",\n    \"--from\",\n    \"--until\",\n    \"--help\",\n)\n\n\n@pytest.mark.parametrize(\"help_flag\", [\"--fill-help\"])\ndef test_local_arguments_present_in_fill_help(pytester: Any, help_flag: str) -> None:\n    \"\"\"\n    Test that locally defined command-line flags appear in the help if our\n    custom help flag is used.\n    \"\"\"\n    pytester.copy_example(name=\"src/cli/pytest_commands/pytest_ini_files/pytest-fill.ini\")\n    result = pytester.runpytest(\"-c\", \"pytest-fill.ini\", help_flag)\n    for test_arg in FILL_TEST_ARGS:\n        assert test_arg in \"\\n\".join(result.stdout.lines)\n\n\nCONSUME_TEST_ARGS = (\n    \"--input\",\n    \"--no-html\",\n    \"--help\",\n)\n\n\n@pytest.mark.parametrize(\n    \"command, help_flag\",\n    [\n        (\"direct\", \"--consume-help\"),\n        (\"rlp\", \"--consume-help\"),\n        (\"engine\", \"--consume-help\"),\n    ],\n)\ndef test_local_arguments_present_in_base_consume_help(\n    pytester: Any, help_flag: str, command: str\n) -> None:\n    \"\"\"\n    Test that locally defined command-line flags appear in the help for consume\n    subcommands.\n    \"\"\"\n    pytester.copy_example(name=\"src/cli/pytest_commands/pytest_ini_files/pytest-consume.ini\")\n    result = pytester.runpytest(\"-c\", \"pytest-consume.ini\", command, help_flag)\n    for test_arg in CONSUME_TEST_ARGS:\n        assert test_arg in \"\\n\".join(result.stdout.lines)\n"
  },
  {
    "path": "src/pytest_plugins/py.typed",
    "content": ""
  },
  {
    "path": "src/pytest_plugins/pytest_hive/hive_info.py",
    "content": "\"\"\"Hive instance information structures.\"\"\"\n\nfrom typing import Any, Dict, List, Optional\n\nimport yaml\nfrom pydantic import BaseModel, Field, RootModel\nfrom typing_extensions import Self\n\nfrom ethereum_test_base_types import CamelModel\n\n\nclass YAMLModel(BaseModel):\n    \"\"\"A helper class for YAML serialization of pydantic models.\"\"\"\n\n    def yaml(self, **kwargs: Any) -> str:\n        \"\"\"Return the YAML representation of the model.\"\"\"\n        return yaml.dump(self.model_dump(), **kwargs)\n\n    @classmethod\n    def parse_yaml(cls, yaml_string: str) -> Self:\n        \"\"\"Parse a YAML string into a model instance.\"\"\"\n        data = yaml.safe_load(yaml_string)\n        return cls(**data)\n\n\nclass ClientConfig(YAMLModel):\n    \"\"\"\n    Client configuration for YAML serialization.\n\n    Represents a single client entry in the clients.yaml file.\n    \"\"\"\n\n    client: str\n    nametag: Optional[str] = None\n    dockerfile: Optional[str] = None\n    build_args: Optional[Dict[str, str]] = Field(default_factory=lambda: {})\n\n\nclass ClientFile(RootModel, YAMLModel):\n    \"\"\"\n    Represents the entire clients.yaml file structure.\n\n    The clients.yaml file is a list of client configurations.\n    \"\"\"\n\n    root: List[ClientConfig]\n\n\nclass HiveInfo(CamelModel):\n    \"\"\"Hive instance information.\"\"\"\n\n    command: List[str]\n    client_file: ClientFile = Field(default_factory=lambda: ClientFile(root=[]))\n    commit: str\n    date: str\n"
  },
  {
    "path": "src/pytest_plugins/pytest_hive/pytest_hive.py",
    "content": "\"\"\"\nA pytest plugin providing common functionality for Hive simulators.\n\nSimulators using this plugin must define two pytest fixtures:\n\n1. `test_suite_name`: The name of the test suite.\n2. `test_suite_description`: The description of the test suite.\n\nThese fixtures are used when creating the hive test suite.\n\nLog Capture Architecture:\n-------------------------\nThis module implements a log capture approach that ensures all logs,\nincluding those generated during fixture teardown, are properly\ncaptured and included in the test results.\n\nThe key insight is that we need to ensure that test finalization happens\n*before* the test suite is finalized, but *after* all fixtures have been torn\ndown so we can capture their logs. This is accomplished through the fixture\nteardown mechanism in pytest:\n\n1. Since the `hive_test` fixture depends on the `test_suite` fixture, pytest\nguarantees that the teardown of `hive_test` runs before the teardown of\n`test_suite`\n\n2. All logs are processed and the test is finalized in the\nteardown phase of the `hive_test` fixture using the pytest test report data\n\n3. This sequencing ensures that all logs are captured and the test is properly\nfinalized before its parent test suite is finalized\n\nThis approach relies on the pytest fixture dependency graph and teardown\nordering to ensure proper sequencing, which is more reliable than using hooks\nwhich might run in an unpredictable order relative to fixture teardown.\n\"\"\"\n\nimport json\nimport os\nimport warnings\nfrom dataclasses import asdict\nfrom pathlib import Path\nfrom typing import Any, Generator, List\n\nimport pytest\nfrom filelock import FileLock\nfrom hive.client import ClientRole\nfrom hive.simulation import Simulation\nfrom hive.testing import HiveTest, HiveTestResult, HiveTestSuite\n\nfrom ..custom_logging import get_logger\nfrom .hive_info import ClientFile, HiveInfo\n\nlogger = get_logger(__name__)\n\n\ndef pytest_configure(config: pytest.Config) -> None:  # noqa: D103\n    hive_simulator_url = config.getoption(\"hive_simulator\")\n    if hive_simulator_url is None:\n        pytest.exit(\n            \"The HIVE_SIMULATOR environment variable is not set.\\n\\n\"\n            \"If running locally, start hive in --dev mode, for example:\\n\"\n            \"./hive --dev --client go-ethereum\\n\\n\"\n            \"and set the HIVE_SIMULATOR to the reported URL. For example, in bash:\\n\"\n            \"export HIVE_SIMULATOR=http://127.0.0.1:3000\\n\"\n            \"or in fish:\\n\"\n            \"set -x HIVE_SIMULATOR http://127.0.0.1:3000\"\n        )\n    # TODO: Try and get these into fixtures; this is only here due to the\n    # \"dynamic\" parametrization of client_type with hive_execution_clients.\n    config.hive_simulator_url = hive_simulator_url  # type: ignore[attr-defined]\n    config.hive_simulator = Simulation(url=hive_simulator_url)  # type: ignore[attr-defined]\n    try:\n        config.hive_execution_clients = config.hive_simulator.client_types(  # type: ignore[attr-defined]\n            role=ClientRole.ExecutionClient\n        )\n    except Exception as e:\n        message = (\n            f\"Error connecting to hive simulator at {hive_simulator_url}.\\n\\n\"\n            \"Did you forget to start hive in --dev mode?\\n\"\n            \"./hive --dev --client go-ethereum\\n\\n\"\n        )\n        if config.option.verbose > 0:\n            message += f\"Error details:\\n{str(e)}\"\n        else:\n            message += \"Re-run with -v for more details.\"\n        pytest.exit(message)\n\n\ndef pytest_addoption(parser: pytest.Parser) -> None:  # noqa: D103\n    pytest_hive_group = parser.getgroup(\"pytest_hive\", \"Arguments related to pytest hive\")\n    pytest_hive_group.addoption(\n        \"--hive-simulator\",\n        action=\"store\",\n        dest=\"hive_simulator\",\n        default=os.environ.get(\"HIVE_SIMULATOR\"),\n        help=(\n            \"The Hive simulator endpoint, e.g. http://127.0.0.1:3000. By default, the value is \"\n            \"taken from the HIVE_SIMULATOR environment variable.\"\n        ),\n    )\n\n\ndef get_hive_info(simulator: Simulation) -> HiveInfo | None:\n    \"\"\"Fetch and return the Hive instance information.\"\"\"\n    try:\n        hive_info = simulator.hive_instance()\n        return HiveInfo(**hive_info)\n    except Exception as e:\n        warnings.warn(\n            f\"Error fetching hive information: {str(e)}\\n\\n\"\n            \"Hive might need to be updated to a newer version.\",\n            stacklevel=2,\n        )\n    return None\n\n\n@pytest.hookimpl(trylast=True)\ndef pytest_report_header(config: pytest.Config, start_path: Path) -> List[str] | None:\n    \"\"\"Add lines to pytest's console output header.\"\"\"\n    del start_path\n\n    if config.option.collectonly:\n        return None\n    header_lines = [f\"hive simulator: {config.hive_simulator_url}\"]  # type: ignore[attr-defined]\n    if hive_info := get_hive_info(config.hive_simulator):  # type: ignore[attr-defined]\n        hive_command = \" \".join(hive_info.command)\n        header_lines += [\n            f\"hive command: {hive_command}\",\n            f\"hive commit: {hive_info.commit}\",\n            f\"hive date: {hive_info.date}\",\n        ]\n        for client in hive_info.client_file.root:\n            header_lines += [\n                f\"hive client ({client.client}): {client.model_dump_json(exclude_none=True)}\",\n            ]\n    return header_lines\n\n\n@pytest.hookimpl(tryfirst=True, hookwrapper=True)\ndef pytest_runtest_makereport(\n    item: pytest.Item, call: pytest.CallInfo[None]\n) -> Generator[None, Any, None]:\n    \"\"\"\n    Make the setup, call, and teardown results available in the teardown phase\n    of a test fixture (i.e., after yield has been called).\n\n    This is used to get the test result and pass it to the hive test suite.\n\n    Available as:\n    - result_setup - setup result\n    - result_call - test result\n    - result_teardown - teardown result\n    \"\"\"\n    del call\n\n    outcome = yield\n    report = outcome.get_result()\n    setattr(item, f\"result_{report.when}\", report)\n\n\n@pytest.fixture(scope=\"session\")\ndef simulator(request: pytest.FixtureRequest) -> Simulation:\n    \"\"\"Return the Hive simulator instance.\"\"\"\n    return request.config.hive_simulator  # type: ignore[attr-defined]\n\n\n@pytest.fixture(scope=\"session\")\ndef hive_info(simulator: Simulation) -> HiveInfo | None:\n    \"\"\"Fetch and return the Hive instance information.\"\"\"\n    return get_hive_info(simulator)\n\n\n@pytest.fixture(scope=\"session\")\ndef client_file(hive_info: HiveInfo | None) -> ClientFile:\n    \"\"\"Return the client file used when launching hive.\"\"\"\n    if hive_info is None:\n        return ClientFile(root=[])\n    return hive_info.client_file\n\n\ndef get_test_suite_scope(fixture_name: str, config: pytest.Config) -> str:\n    \"\"\"\n    Return the appropriate scope of the test suite.\n\n    See: https://docs.pytest.org/en/stable/how-to/fixtures.html#dynamic-scope\n    \"\"\"\n    del fixture_name\n\n    if hasattr(config, \"test_suite_scope\"):\n        return config.test_suite_scope\n    return \"module\"\n\n\n@pytest.fixture(scope=get_test_suite_scope)  # type: ignore[arg-type]\ndef test_suite(\n    simulator: Simulation,\n    session_temp_folder: Path,\n    test_suite_name: str,\n    test_suite_description: str,\n) -> Generator[HiveTestSuite, None, None]:\n    \"\"\"Defines a Hive test suite and cleans up after all tests have run.\"\"\"\n    suite_file_name = f\"test_suite_{test_suite_name}\"\n    suite_file = session_temp_folder / suite_file_name\n    suite_lock_file = session_temp_folder / f\"{suite_file_name}.lock\"\n    with FileLock(suite_lock_file):\n        if suite_file.exists():\n            with open(suite_file, \"r\") as f:\n                suite = HiveTestSuite(**json.load(f))\n        else:\n            suite = simulator.start_suite(\n                name=test_suite_name,\n                description=test_suite_description,\n            )\n            with open(suite_file, \"w\") as f:\n                json.dump(asdict(suite), f)\n\n    users_file_name = f\"test_suite_{test_suite_name}_users\"\n    users_file = session_temp_folder / users_file_name\n    users_lock_file = session_temp_folder / f\"{users_file_name}.lock\"\n    with FileLock(users_lock_file):\n        if users_file.exists():\n            with open(users_file, \"r\") as f:\n                users = json.load(f)\n        else:\n            users = 0\n        users += 1\n        with open(users_file, \"w\") as f:\n            json.dump(users, f)\n\n    yield suite\n\n    with FileLock(users_lock_file):\n        with open(users_file, \"r\") as f:\n            users = json.load(f)\n        users -= 1\n        with open(users_file, \"w\") as f:\n            json.dump(users, f)\n        if users == 0:\n            suite.end()\n            suite_file.unlink()\n            users_file.unlink()\n\n\n@pytest.fixture(scope=\"function\")\ndef hive_test(\n    request: pytest.FixtureRequest, test_suite: HiveTestSuite\n) -> Generator[HiveTest, None, None]:\n    \"\"\"\n    Propagate the pytest test case and its result to the hive server.\n\n    This fixture handles both starting the test and ending it with all logs,\n    including those generated during teardown of other fixtures. The approach\n    of processing teardown logs directly in the teardown phase of this fixture\n    ensures that the test gets properly finalized before the test suite is torn\n    down.\n    \"\"\"\n    try:\n        test_case_description = request.getfixturevalue(\"test_case_description\")\n    except pytest.FixtureLookupError:\n        pytest.exit(\n            \"Error: The 'test_case_description' fixture has not been defined by the simulator \"\n            \"or pytest plugin using this plugin!\"\n        )\n\n    test_parameter_string = request.node.name\n    test: HiveTest = test_suite.start_test(\n        name=test_parameter_string,\n        description=test_case_description,\n    )\n    yield test\n\n    try:\n        # Collect all logs from all phases\n        captured = []\n        setup_out = \"\"\n        call_out = \"\"\n        for phase in (\"setup\", \"call\", \"teardown\"):\n            report = getattr(request.node, f\"result_{phase}\", None)\n            if report:\n                stdout = report.capstdout or \"None\"\n                stderr = report.capstderr or \"None\"\n\n                # Remove setup output from call phase output\n                if phase == \"setup\":\n                    setup_out = stdout\n                if phase == \"call\":\n                    call_out = stdout\n                    # If call output starts with setup output, strip it\n                    if call_out.startswith(setup_out):\n                        stdout = call_out.removeprefix(setup_out)\n\n                captured.append(\n                    f\"# Captured Output from Test {phase.capitalize()}\\n\\n\"\n                    f\"## stdout:\\n{stdout}\\n\"\n                    f\"## stderr:\\n{stderr}\\n\"\n                )\n\n        captured_output = \"\\n\".join(captured)\n\n        if hasattr(request.node, \"result_call\") and request.node.result_call.passed:\n            test_passed = True\n            test_result_details = \"Test passed.\\n\\n\" + captured_output\n        elif hasattr(request.node, \"result_call\") and not request.node.result_call.passed:\n            test_passed = False\n            test_result_details = \"Test failed.\\n\\n\" + captured_output\n            test_result_details = request.node.result_call.longreprtext + \"\\n\" + captured_output\n        elif hasattr(request.node, \"result_setup\") and not request.node.result_setup.passed:\n            test_passed = False\n            test_result_details = (\n                \"Test setup failed.\\n\\n\"\n                + request.node.result_setup.longreprtext\n                + \"\\n\"\n                + captured_output\n            )\n        elif hasattr(request.node, \"result_teardown\") and not request.node.result_teardown.passed:\n            test_passed = False\n            test_result_details = (\n                \"Test teardown failed.\\n\\n\"\n                + request.node.result_teardown.longreprtext\n                + \"\\n\"\n                + captured_output\n            )\n        else:\n            test_passed = False\n            test_result_details = (\n                \"Test failed for unknown reason (setup or call status unknown).\\n\\n\"\n                + captured_output\n            )\n\n        test.end(result=HiveTestResult(test_pass=test_passed, details=test_result_details))\n        logger.verbose(f\"Finished processing logs for test: {request.node.nodeid}\")\n\n    except Exception as e:\n        logger.verbose(f\"Error processing logs for test {request.node.nodeid}: {str(e)}\")\n        test_passed = False\n        test_result_details = f\"Exception whilst processing test result: {str(e)}\"\n        test.end(result=HiveTestResult(test_pass=test_passed, details=test_result_details))\n"
  },
  {
    "path": "src/pytest_plugins/shared/benchmarking.py",
    "content": "\"\"\"The module contains the pytest hooks for the gas benchmark values.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_tools import Environment\nfrom ethereum_test_types import EnvironmentDefaults\n\nfrom .execute_fill import OpMode\n\n\ndef pytest_addoption(parser: pytest.Parser) -> None:\n    \"\"\"Add command line options for gas benchmark values.\"\"\"\n    evm_group = parser.getgroup(\"evm\", \"Arguments defining evm executable behavior\")\n    evm_group.addoption(\n        \"--gas-benchmark-values\",\n        action=\"store\",\n        dest=\"gas_benchmark_value\",\n        type=str,\n        default=None,\n        help=\"Specify gas benchmark values for tests as a comma-separated list.\",\n    )\n\n\n@pytest.hookimpl(tryfirst=True)\ndef pytest_configure(config: pytest.Config) -> None:\n    \"\"\"Configure the fill and execute mode to benchmarking.\"\"\"\n    if config.getoption(\"gas_benchmark_value\"):\n        config.op_mode = OpMode.BENCHMARKING  # type: ignore[attr-defined]\n\n\ndef pytest_generate_tests(metafunc: pytest.Metafunc) -> None:\n    \"\"\"Generate tests for the gas benchmark values.\"\"\"\n    if \"gas_benchmark_value\" in metafunc.fixturenames:\n        gas_benchmark_values = metafunc.config.getoption(\"gas_benchmark_value\")\n        if gas_benchmark_values:\n            gas_values = [int(x.strip()) for x in gas_benchmark_values.split(\",\")]\n            gas_parameters = [\n                pytest.param(gas_value * 1_000_000, id=f\"benchmark-gas-value_{gas_value}M\")\n                for gas_value in gas_values\n            ]\n            metafunc.parametrize(\"gas_benchmark_value\", gas_parameters, scope=\"function\")\n\n\n@pytest.fixture(scope=\"function\")\ndef gas_benchmark_value(request: pytest.FixtureRequest) -> int:\n    \"\"\"Return a single gas benchmark value for the current test.\"\"\"\n    if hasattr(request, \"param\"):\n        return request.param\n\n    return EnvironmentDefaults.gas_limit\n\n\nBENCHMARKING_MAX_GAS = 1_000_000_000_000\n\n\n@pytest.fixture\ndef genesis_environment(request: pytest.FixtureRequest) -> Environment:  # noqa: D103\n    \"\"\"\n    Return an Environment instance with appropriate gas limit based on test\n    type.\n    \"\"\"\n    if request.node.get_closest_marker(\"benchmark\") is not None:\n        return Environment(gas_limit=BENCHMARKING_MAX_GAS)\n    return Environment()\n\n\n@pytest.fixture\ndef env(request: pytest.FixtureRequest) -> Environment:  # noqa: D103\n    \"\"\"\n    Return an Environment instance with appropriate gas limit based on test\n    type.\n    \"\"\"\n    if request.node.get_closest_marker(\"benchmark\") is not None:\n        return Environment(gas_limit=BENCHMARKING_MAX_GAS)\n    return Environment()\n"
  },
  {
    "path": "src/pytest_plugins/shared/execute_fill.py",
    "content": "\"\"\"\nShared pytest fixtures and hooks for EEST generation modes (fill and execute).\n\"\"\"\n\nfrom typing import List\n\nimport pytest\n\nfrom ethereum_test_execution import BaseExecute, LabeledExecuteFormat\nfrom ethereum_test_fixtures import BaseFixture, LabeledFixtureFormat\nfrom ethereum_test_specs import BaseTest\nfrom ethereum_test_specs.base import OpMode\nfrom ethereum_test_types import EOA, Alloc, ChainConfig\n\nfrom ..spec_version_checker.spec_version_checker import EIPSpecTestItem\n\nALL_FIXTURE_PARAMETERS = {\n    \"gas_benchmark_value\",\n    \"genesis_environment\",\n    \"env\",\n}\n\"\"\"\nList of test parameters that have a default fixture value which can be\nretrieved and used for the test instance if it was not explicitly specified\nwhen calling from the test function.\n\nAll parameter names included in this list must define a fixture in one of the\nplugins.\n\"\"\"\n\n\n@pytest.hookimpl(tryfirst=True)\ndef pytest_configure(config: pytest.Config) -> None:\n    \"\"\"\n    Pytest hook called after command line options have been parsed and before\n    test collection begins.\n\n    Couple of notes:\n    1. Register the plugin's custom markers and process command-line options.\n\n       Custom marker registration:\n       https://docs.pytest.org/en/7.1.x/how-to/writing_plugins.html#registering-custom-markers\n\n    2. `@pytest.hookimpl(tryfirst=True)` is applied to ensure that this hook is\n       called before the pytest-html plugin's pytest_configure to ensure that\n       it uses the modified `htmlpath` option.\n    \"\"\"\n    if config.pluginmanager.has_plugin(\"pytest_plugins.filler.filler\"):\n        for fixture_format in BaseFixture.formats.values():\n            config.addinivalue_line(\n                \"markers\",\n                (f\"{fixture_format.format_name.lower()}: {fixture_format.description}\"),\n            )\n        for label, labeled_fixture_format in LabeledFixtureFormat.registered_labels.items():\n            config.addinivalue_line(\n                \"markers\",\n                (f\"{label}: {labeled_fixture_format.description}\"),\n            )\n    elif config.pluginmanager.has_plugin(\"pytest_plugins.execute.execute\"):\n        for execute_format in BaseExecute.formats.values():\n            config.addinivalue_line(\n                \"markers\",\n                (f\"{execute_format.format_name.lower()}: {execute_format.description}\"),\n            )\n        for label, labeled_execute_format in LabeledExecuteFormat.registered_labels.items():\n            config.addinivalue_line(\n                \"markers\",\n                (f\"{label}: {labeled_execute_format.description}\"),\n            )\n    else:\n        raise Exception(\"Neither the filler nor the execute plugin is loaded.\")\n\n    for spec_type in BaseTest.spec_types.values():\n        for marker, description in spec_type.supported_markers.items():\n            config.addinivalue_line(\n                \"markers\",\n                (f\"{marker}: {description}\"),\n            )\n\n    if not hasattr(config, \"op_mode\"):\n        config.op_mode = OpMode.CONSENSUS  # type: ignore[attr-defined]\n\n    config.addinivalue_line(\n        \"markers\",\n        \"yul_test: a test case that compiles Yul code.\",\n    )\n    config.addinivalue_line(\n        \"markers\",\n        \"compile_yul_with(fork): Always compile Yul source using the corresponding evm version.\",\n    )\n    config.addinivalue_line(\n        \"markers\",\n        \"fill: Markers to be added in fill mode only.\",\n    )\n    config.addinivalue_line(\n        \"markers\",\n        \"execute: Markers to be added in execute mode only.\",\n    )\n    config.addinivalue_line(\n        \"markers\",\n        \"benchmark: Tests relevant to benchmarking EVMs.\",\n    )\n    config.addinivalue_line(\n        \"markers\",\n        \"stateful: Tests for stateful benchmarking scenarios.\",\n    )\n    config.addinivalue_line(\n        \"markers\",\n        \"exception_test: Negative tests that include an invalid block or transaction.\",\n    )\n    config.addinivalue_line(\n        \"markers\",\n        \"eip_checklist(item_id, eip=None): Mark a test as implementing a specific checklist item. \"\n        \"The first positional parameter is the checklist item ID. \"\n        \"The optional 'eip' keyword parameter specifies additional EIPs covered by the test.\",\n    )\n    config.addinivalue_line(\n        \"markers\",\n        \"derived_test: Mark a test as a derived test (E.g. a BlockchainTest that is derived \"\n        \"from a StateTest).\",\n    )\n    config.addinivalue_line(\n        \"markers\",\n        \"tagged: Marks a static test as tagged. Tags are used to generate dynamic \"\n        \"addresses for static tests at fill time. All tagged tests are compatible with \"\n        \"dynamic address generation.\",\n    )\n    config.addinivalue_line(\n        \"markers\",\n        \"untagged: Marks a static test as untagged. Tags are used to generate dynamic \"\n        \"addresses for static tests at fill time. Untagged tests are incompatible with \"\n        \"dynamic address generation.\",\n    )\n    config.addinivalue_line(\n        \"markers\",\n        \"verify_sync: Marks a test to be run with `consume sync`, verifying blockchain \"\n        \"engine tests and having hive clients sync after payload execution.\",\n    )\n    config.addinivalue_line(\n        \"markers\",\n        \"pre_alloc_group: Control shared pre-allocation grouping (use \"\n        '\"separate\" for isolated group or custom string for named groups)',\n    )\n    config.addinivalue_line(\n        \"markers\",\n        \"pre_alloc_modify: Marks a test to apply plugin-specific pre_alloc_group modifiers\",\n    )\n    config.addinivalue_line(\n        \"markers\",\n        \"slow: Marks a test as slow (deselect with '-m \\\"not slow\\\"')\",\n    )\n    config.addinivalue_line(\n        \"markers\",\n        \"ported_from: Marks a test as ported from ethereum/tests\",\n    )\n    config.addinivalue_line(\n        \"markers\",\n        \"valid_for_bpo_forks: Marks a test as valid for BPO forks\",\n    )\n    config.addinivalue_line(\n        \"markers\",\n        \"mainnet: Specialty tests crafted for running on mainnet and sanity checking.\",\n    )\n\n\n@pytest.fixture(scope=\"function\")\ndef test_case_description(request: pytest.FixtureRequest) -> str:\n    \"\"\"\n    Fixture to extract and combine docstrings from the test class and the test\n    function.\n    \"\"\"\n    description_unavailable = (\n        \"No description available - add a docstring to the python test class or function.\"\n    )\n    test_class_doc = \"\"\n    test_function_doc = \"\"\n    if hasattr(request.node, \"cls\"):\n        test_class_doc = f\"Test class documentation:\\n{request.cls.__doc__}\" if request.cls else \"\"\n    if hasattr(request.node, \"function\"):\n        test_function_doc = f\"{request.function.__doc__}\" if request.function.__doc__ else \"\"\n    if not test_class_doc and not test_function_doc:\n        return description_unavailable\n    combined_docstring = f\"{test_class_doc}\\n\\n{test_function_doc}\".strip()\n    return combined_docstring\n\n\ndef pytest_make_parametrize_id(config: pytest.Config, val: str, argname: str) -> str:\n    \"\"\"\n    Pytest hook called when generating test ids. We use this to generate more\n    readable test ids for the generated tests.\n    \"\"\"\n    del config\n    return f\"{argname}_{val}\"\n\n\nSPEC_TYPES_PARAMETERS: List[str] = list(BaseTest.spec_types.keys())\n\n\ndef pytest_runtest_call(item: pytest.Item) -> None:\n    \"\"\"Pytest hook called in the context of test execution.\"\"\"\n    if isinstance(item, EIPSpecTestItem):\n        return\n\n    class InvalidFillerError(Exception):\n        def __init__(self, message: str):\n            super().__init__(message)\n\n    if not isinstance(item, pytest.Function):\n        return\n\n    if \"state_test\" in item.fixturenames and \"blockchain_test\" in item.fixturenames:\n        raise InvalidFillerError(\n            \"A filler should only implement either a state test or a blockchain test; not both.\"\n        )\n\n    # Check that the test defines either test type as parameter.\n    if not any(i for i in item.funcargs if i in SPEC_TYPES_PARAMETERS):\n        pytest.fail(\n            \"Test must define either one of the following parameters to \"\n            + \"properly generate a test: \"\n            + \", \".join(SPEC_TYPES_PARAMETERS)\n        )\n\n\n# Global `sender` fixture that can be overridden by tests.\n@pytest.fixture\ndef sender(pre: Alloc) -> EOA:\n    \"\"\"Fund an EOA from pre-alloc.\"\"\"\n    return pre.fund_eoa()\n\n\n@pytest.fixture(scope=\"session\")\ndef chain_config() -> ChainConfig:\n    \"\"\"Return chain configuration.\"\"\"\n    return ChainConfig()\n\n\ndef pytest_addoption(parser: pytest.Parser) -> None:\n    \"\"\"Add command-line options to pytest.\"\"\"\n    static_filler_group = parser.getgroup(\"static\", \"Arguments defining static filler behavior\")\n    static_filler_group.addoption(\n        \"--fill-static-tests\",\n        action=\"store_true\",\n        dest=\"fill_static_tests_enabled\",\n        default=None,\n        help=(\"Enable reading and filling from static test files.\"),\n    )\n"
  },
  {
    "path": "src/pytest_plugins/shared/helpers.py",
    "content": "\"\"\"Helpers for pytest plugins.\"\"\"\n\nfrom typing import Any, Dict, Tuple, Type\n\nimport pytest\nfrom _pytest.mark.structures import ParameterSet\n\nfrom ethereum_test_execution import ExecuteFormat, LabeledExecuteFormat\nfrom ethereum_test_fixtures import FixtureFormat, LabeledFixtureFormat\nfrom ethereum_test_tools import BaseTest\n\n\ndef is_help_or_collectonly_mode(config: pytest.Config) -> bool:\n    \"\"\"Check if pytest is running in a help or collectonly mode.\"\"\"\n    return (\n        config.getoption(\"markers\", default=False)\n        or config.getoption(\"collectonly\", default=False)\n        or config.getoption(\"show_ported_from\", default=False)\n        or config.getoption(\"links_as_filled\", default=False)\n        or config.getoption(\"help\", default=False)\n        or config.pluginmanager.has_plugin(\"pytest_plugins.filler.eip_checklist\")\n        or config.pluginmanager.has_plugin(\"pytest_plugins.filler.gen_test_doc.gen_test_doc\")\n    )\n\n\ndef labeled_format_parameter_set(\n    format_with_or_without_label: LabeledExecuteFormat\n    | LabeledFixtureFormat\n    | ExecuteFormat\n    | FixtureFormat,\n) -> ParameterSet:\n    \"\"\"\n    Return a parameter set from a fixture/execute format and parses a label if\n    there's any.\n\n    The label will be used in the test id and also will be added as a marker to\n    the generated test case when filling/executing the test.\n    \"\"\"\n    if isinstance(format_with_or_without_label, LabeledExecuteFormat) or isinstance(\n        format_with_or_without_label, LabeledFixtureFormat\n    ):\n        return pytest.param(\n            format_with_or_without_label.format,\n            id=format_with_or_without_label.label,\n            marks=[\n                getattr(\n                    pytest.mark,\n                    format_with_or_without_label.format_name.lower(),\n                ),\n                getattr(\n                    pytest.mark,\n                    format_with_or_without_label.label.lower(),\n                ),\n            ],\n        )\n    else:\n        return pytest.param(\n            format_with_or_without_label,\n            id=format_with_or_without_label.format_name.lower(),\n            marks=[\n                getattr(\n                    pytest.mark,\n                    format_with_or_without_label.format_name.lower(),\n                )\n            ],\n        )\n\n\ndef get_spec_format_for_item(\n    params: Dict[str, Any],\n) -> Tuple[Type[BaseTest], Any]:\n    \"\"\"Return the spec type and execute format for the given test item.\"\"\"\n    for spec_type in BaseTest.spec_types.values():\n        if spec_type.pytest_parameter_name() in params:\n            return spec_type, params[spec_type.pytest_parameter_name()]\n    raise ValueError(\"No spec type format found in the test item.\")\n"
  },
  {
    "path": "src/pytest_plugins/shared/transaction_fixtures.py",
    "content": "\"\"\"\nPytest plugin providing default transaction fixtures for each transaction type.\n\nEach fixture can be overridden in test files to customize transaction behavior.\n\"\"\"\n\nimport pytest\n\nfrom ethereum_test_base_types import AccessList\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import Opcodes as Op\nfrom ethereum_test_types import EOA, Alloc, AuthorizationTuple, Transaction, add_kzg_version\n\n\n@pytest.fixture\ndef type_0_default_transaction(sender: EOA) -> Transaction:\n    \"\"\"Type 0 (legacy) default transaction available in all forks.\"\"\"\n    return Transaction(\n        ty=0,\n        sender=sender,\n        gas_price=10**9,\n        gas_limit=100_000,\n        data=b\"\\x00\" * 100,\n        protected=True,\n    )\n\n\n@pytest.fixture\ndef type_1_default_transaction(sender: EOA) -> Transaction:\n    \"\"\"Type 1 (access list) default transaction introduced in Berlin fork.\"\"\"\n    return Transaction(\n        ty=1,\n        sender=sender,\n        gas_price=10**9,\n        gas_limit=100_000,\n        data=b\"\\x00\" * 100,\n        access_list=[\n            AccessList(address=0x1234, storage_keys=[0, 1, 2]),\n            AccessList(address=0x5678, storage_keys=[3, 4, 5]),\n            AccessList(address=0x9ABC, storage_keys=[]),\n        ],\n    )\n\n\n@pytest.fixture\ndef type_2_default_transaction(sender: EOA) -> Transaction:\n    \"\"\"Type 2 (dynamic fee) default transaction introduced in London fork.\"\"\"\n    return Transaction(\n        ty=2,\n        sender=sender,\n        max_fee_per_gas=10**10,\n        max_priority_fee_per_gas=10**9,\n        gas_limit=100_000,\n        data=b\"\\x00\" * 200,\n        access_list=[\n            AccessList(address=0x2468, storage_keys=[10, 20, 30]),\n            AccessList(address=0xACE0, storage_keys=[40, 50]),\n        ],\n    )\n\n\n@pytest.fixture\ndef type_3_default_transaction(sender: EOA) -> Transaction:\n    \"\"\"Type 3 (blob) default transaction introduced in Cancun fork.\"\"\"\n    return Transaction(\n        ty=3,\n        sender=sender,\n        max_fee_per_gas=10**10,\n        max_priority_fee_per_gas=10**9,\n        max_fee_per_blob_gas=10**9,\n        gas_limit=100_000,\n        data=b\"\\x00\" * 150,\n        access_list=[\n            AccessList(address=0x3690, storage_keys=[100, 200]),\n            AccessList(address=0xBEEF, storage_keys=[300]),\n        ],\n        blob_versioned_hashes=add_kzg_version(\n            [\n                0x1111111111111111111111111111111111111111111111111111111111111111,\n                0x2222222222222222222222222222222222222222222222222222222222222222,\n            ],\n            0x01,\n        ),\n    )\n\n\n@pytest.fixture\ndef type_4_default_transaction(sender: EOA, pre: Alloc) -> Transaction:\n    \"\"\"Type 4 (set code) default transaction introduced in Prague fork.\"\"\"\n    # Create authorized accounts with funds\n    auth_signer1 = pre.fund_eoa(amount=10**18)\n    auth_signer2 = pre.fund_eoa(amount=10**18)\n\n    # Create target addresses that will be authorized\n    target1 = pre.deploy_contract(Op.SSTORE(0, 1))\n    target2 = pre.deploy_contract(Op.SSTORE(0, 1))\n\n    return Transaction(\n        ty=4,\n        sender=sender,\n        max_fee_per_gas=10**10,\n        max_priority_fee_per_gas=10**9,\n        gas_limit=150_000,\n        data=b\"\\x00\" * 200,\n        access_list=[\n            AccessList(address=0x4567, storage_keys=[1000, 2000, 3000]),\n            AccessList(address=0xCDEF, storage_keys=[4000, 5000]),\n        ],\n        authorization_list=[\n            AuthorizationTuple(\n                chain_id=1,\n                address=target1,\n                nonce=0,\n                signer=auth_signer1,\n            ),\n            AuthorizationTuple(\n                chain_id=1,\n                address=target2,\n                nonce=0,\n                signer=auth_signer2,\n            ),\n        ],\n    )\n\n\n@pytest.fixture\ndef typed_transaction(request: pytest.FixtureRequest, fork: Fork) -> Transaction:\n    \"\"\"\n    Fixture that provides a Transaction object based on the parametrized tx\n    type.\n\n    This fixture works with the @pytest.mark.with_all_typed_transactions\n    marker, which parametrizes the test with all transaction types supported by\n    the fork.\n\n    The actual transaction type value comes from the marker's parametrization.\n    \"\"\"\n    # The marker parametrizes 'typed_transaction' with tx type integers\n    # Get the parametrized tx_type value\n    if hasattr(request, \"param\"):\n        # When parametrized by the marker, request.param contains the tx type\n        tx_type = request.param\n    else:\n        raise ValueError(\n            \"`typed_transaction` fixture must be used with \"\n            \"`@pytest.mark.with_all_typed_transactions` marker\"\n        )\n\n    fixture_name = f\"type_{tx_type}_default_transaction\"\n\n    # Check if fixture exists - try to get it first\n    try:\n        # This will find fixtures defined in the test file or plugin\n        return request.getfixturevalue(fixture_name)\n    except pytest.FixtureLookupError as e:\n        # Get all supported tx types for better error message\n        supported_types = fork.tx_types()\n        raise NotImplementedError(\n            f\"Fork {fork} supports transaction type {tx_type} but \"\n            f\"fixture '{fixture_name}' is not implemented!\\n\"\n            f\"Fork {fork} supports transaction types: {supported_types}\\n\"\n            f\"Please add the missing fixture to \"\n            f\"src/pytest_plugins/shared/transaction_fixtures.py\"\n        ) from e\n"
  },
  {
    "path": "src/pytest_plugins/solc/__init__.py",
    "content": "\"\"\"A pytest plugin that provides solc functionality to fill/execute tests.\"\"\"\n"
  },
  {
    "path": "src/pytest_plugins/solc/solc.py",
    "content": "\"\"\"Pytest plugin for configuring and verifying the solc compiler.\"\"\"\n\nimport subprocess\nfrom shutil import which\n\nimport pytest\nfrom pytest_metadata.plugin import metadata_key\nfrom semver import Version\n\nSOLC_EXPECTED_MIN_VERSION: Version = Version.parse(\"0.8.24\")\n\n\ndef pytest_addoption(parser: pytest.Parser) -> None:\n    \"\"\"Add command-line options to pytest.\"\"\"\n    solc_group = parser.getgroup(\"solc\", \"Arguments defining the solc executable\")\n    solc_group.addoption(\n        \"--solc-bin\",\n        action=\"store\",\n        dest=\"solc_bin\",\n        type=str,\n        default=None,\n        help=(\n            \"Path to a solc executable (for Yul source compilation). Default: solc binary in PATH.\"\n        ),\n    )\n\n\n@pytest.hookimpl(tryfirst=True)\ndef pytest_configure(config: pytest.Config) -> None:\n    \"\"\"Ensure that solc is available and get its version.\"\"\"\n    solc_bin = config.getoption(\"solc_bin\")\n\n    # Use provided solc binary or find it in PATH\n    if solc_bin:\n        if not which(solc_bin):\n            pytest.exit(\n                f\"Specified solc binary not found: {solc_bin}\",\n                returncode=pytest.ExitCode.USAGE_ERROR,\n            )\n    else:\n        solc_bin = which(\"solc\")\n        if not solc_bin:\n            pytest.exit(\n                \"solc binary not found in PATH. Please install solc and ensure it's in your PATH.\",\n                returncode=pytest.ExitCode.USAGE_ERROR,\n            )\n\n    # Get solc version using subprocess\n    try:\n        result = subprocess.run(\n            [solc_bin, \"--version\"],\n            stdout=subprocess.PIPE,\n            stderr=subprocess.STDOUT,\n            text=True,\n            check=True,\n        )\n    except subprocess.CalledProcessError as e:\n        pytest.exit(\n            f\"Failed to get solc version. Command output: {e.stdout}\",\n            returncode=pytest.ExitCode.USAGE_ERROR,\n        )\n    except subprocess.TimeoutExpired:\n        pytest.exit(\"Timeout while getting solc version.\", returncode=pytest.ExitCode.USAGE_ERROR)\n    except Exception as e:\n        pytest.exit(\n            f\"Unexpected error while getting solc version: {e}\",\n            returncode=pytest.ExitCode.USAGE_ERROR,\n        )\n\n    # Parse version from output\n    version_output = result.stdout\n    version_line = None\n\n    # Look for version in output (format: \"Version: X.Y.Z+commit.hash\")\n    for line in version_output.split(\"\\n\"):\n        if line.startswith(\"Version:\"):\n            version_line = line\n            break\n\n    if not version_line:\n        pytest.exit(\n            f\"Could not parse solc version from output:\\n{version_output}\",\n            returncode=pytest.ExitCode.USAGE_ERROR,\n        )\n\n    # Extract version number\n    try:\n        # --version format is typically something like\n        # \"0.8.24+commit.e11b9ed9.Linux.g++\"\n        version_str = version_line.split()[1].split(\"+\")[0]\n        solc_version_semver = Version.parse(version_str)\n    except (IndexError, ValueError) as e:\n        pytest.exit(\n            f\"Failed to parse solc version from: {version_line}\\nError: {e}\",\n            returncode=pytest.ExitCode.USAGE_ERROR,\n        )\n\n    # Store version in metadata\n    if \"Tools\" not in config.stash[metadata_key]:\n        config.stash[metadata_key][\"Tools\"] = {\n            \"solc\": str(solc_version_semver),\n        }\n    else:\n        config.stash[metadata_key][\"Tools\"][\"solc\"] = str(solc_version_semver)\n\n    # Check minimum version requirement\n    solc_version_semver = Version.parse(str(solc_version_semver).split()[0].split(\"-\")[0])\n    if solc_version_semver < SOLC_EXPECTED_MIN_VERSION:\n        pytest.exit(\n            f\"Unsupported solc version: {solc_version_semver}. Minimum required version is \"\n            f\"{SOLC_EXPECTED_MIN_VERSION}\",\n            returncode=pytest.ExitCode.USAGE_ERROR,\n        )\n\n    # Store for later use\n    config.solc_version = solc_version_semver  # type: ignore\n    config.option.solc_bin = solc_bin  # save for fixture\n\n    if config.getoption(\"verbose\") > 0:\n        print(f\"Using solc version {solc_version_semver} from {solc_bin}\")\n\n\n@pytest.fixture(autouse=True, scope=\"session\")\ndef solc_bin(request: pytest.FixtureRequest) -> str | None:\n    \"\"\"Return configured solc binary path.\"\"\"\n    return request.config.getoption(\"solc_bin\") or which(\"solc\")\n\n\n@pytest.hookimpl(trylast=True)\ndef pytest_report_header(config: pytest.Config, start_path: object) -> list[str] | None:\n    \"\"\"Add lines to pytest's console output header.\"\"\"\n    del start_path\n\n    if config.option.collectonly:\n        return None\n    solc_version = config.stash[metadata_key][\"Tools\"][\"solc\"]\n    solc_path = config.option.solc_bin or which(\"solc\")\n    return [f\"solc: {solc_version}\", f\"solc path: {solc_path}\"]\n"
  },
  {
    "path": "src/pytest_plugins/spec_version_checker/__init__.py",
    "content": "\"\"\"\nA pytest plugin that verifies the tested version of an EIP specification\nagainst the latest version from the\n[ethereum/EIPs](https://github.com/ethereum/EIPs) Github repository.\n\"\"\"\n"
  },
  {
    "path": "src/pytest_plugins/spec_version_checker/spec_version_checker.py",
    "content": "\"\"\"\nA pytest plugin that checks that the spec version specified in test/filler\nmodules matches that of https://github.com/ethereum/EIPs.\n\"\"\"\n\nimport os\nimport re\nimport textwrap\nfrom types import ModuleType\nfrom typing import Any, List, Optional, Set\n\nimport pytest\nfrom _pytest.nodes import Item, Node\nfrom _pytest.python import Module\n\nfrom ethereum_test_tools import ReferenceSpec, ReferenceSpecTypes\n\nGITHUB_TOKEN_HELP = textwrap.dedent(\n    \"Either set the GITHUB_TOKEN environment variable or specify one via --github-token. \"\n    \"The Github CLI can be used: `--github-token $(gh auth token)` (https://cli.github.com/) \"\n    \"or a PAT can be generated at https://github.com/settings/personal-access-tokens/new.\"\n)\n\n\ndef pytest_addoption(parser: pytest.Parser) -> None:\n    \"\"\"Add Github token option to pytest command line options.\"\"\"\n    group = parser.getgroup(\n        \"spec_version_checker\", \"Arguments defining the EIP spec version checker\"\n    )\n    group.addoption(\n        \"--github-token\",\n        action=\"store\",\n        dest=\"github_token\",\n        default=None,\n        help=(\n            \"Specify a Github API personal access token (PAT) to avoid rate limiting. \"\n            f\"{GITHUB_TOKEN_HELP}\"\n        ),\n    )\n\n\n@pytest.hookimpl(tryfirst=True)\ndef pytest_configure(config: pytest.Config) -> None:\n    \"\"\"\n    Register the plugin's custom markers and process command-line options.\n\n    Custom marker registration:\n    https://docs.pytest.org/en/7.1.x/how-to/writing_plugins.html#registering-custom-markers\n    \"\"\"\n    config.addinivalue_line(\n        \"markers\",\n        \"eip_version_check: a test that tests the reference spec defined in an EIP test module.\",\n    )\n\n    github_token = config.getoption(\"github_token\") or os.environ.get(\"GITHUB_TOKEN\")\n\n    if not github_token:\n        pytest.exit(\n            \"A Github personal access token (PAT) is required but has not been provided. \"\n            f\"{GITHUB_TOKEN_HELP}\"\n        )\n\n    config.github_token = github_token  # type: ignore[attr-defined]\n\n\ndef get_ref_spec_from_module(\n    module: ModuleType, github_token: Optional[str] = None\n) -> None | ReferenceSpec:\n    \"\"\"\n    Return the reference spec object defined in a module.\n\n    Args:\n      module: The module to extract reference spec from\n      github_token: Optional GitHub token for API authentication\n\n    Raises:\n      Exception: If the module path contains \"eip\" and the module does\n                 not define a reference spec.\n\n    Returns:\n      spec_obj: Return None if the module path does not contain \"eip\",\n      i.e., the module is not required to define a reference spec, otherwise,\n      return the ReferenceSpec object as defined by the module.\n\n    \"\"\"\n    if not is_test_for_an_eip(str(module.__file__)):\n        return None\n    module_dict = module.__dict__\n    parseable_ref_specs = [\n        ref_spec_type\n        for ref_spec_type in ReferenceSpecTypes\n        if ref_spec_type.parseable_from_module(module_dict)\n    ]\n    if len(parseable_ref_specs) > 0:\n        module_dict = module.__dict__\n        try:\n            spec_obj = parseable_ref_specs[0].parse_from_module(\n                module_dict, github_token=github_token\n            )\n        except Exception as e:\n            raise Exception(f\"Error in spec_version_checker: {e} (this test is generated).\") from e\n    else:\n        raise Exception(\"Test doesn't define REFERENCE_SPEC_GIT_PATH and REFERENCE_SPEC_VERSION\")\n    return spec_obj\n\n\ndef is_test_for_an_eip(input_string: str) -> bool:\n    \"\"\"Return True if `input_string` contains an EIP number, i.e., eipNNNN.\"\"\"\n    pattern = re.compile(r\".*eip\\d{1,4}\", re.IGNORECASE)\n    if pattern.match(input_string):\n        return True\n    return False\n\n\ndef test_eip_spec_version(module: ModuleType, github_token: Optional[str] = None) -> None:\n    \"\"\"\n    Test that the ReferenceSpec object as defined in the test module is not\n    outdated when compared to the remote hash from ethereum/EIPs.\n\n    Args:\n      module: Module to test\n      github_token: Optional GitHub token for API authentication\n\n    \"\"\"\n    ref_spec = get_ref_spec_from_module(module, github_token=github_token)\n    assert ref_spec, \"No reference spec object defined\"\n\n    message = (\n        \"The version of the spec referenced in \"\n        f\"{module} does not match that from ethereum/EIPs, \"\n        f\"tests might be outdated: Spec: {ref_spec.name()}. \"\n        f\"Referenced version: {ref_spec.known_version()}. \"\n        f\"Latest version: {ref_spec.latest_version()}. The \"\n        f\"version was retrieved from {ref_spec.api_url()}.\"\n    )\n    try:\n        is_up_to_date = not ref_spec.is_outdated()\n    except Exception as e:\n        raise Exception(\n            f\"Error in spec_version_checker: {e} (this test is generated). \"\n            f\"Reference spec URL: {ref_spec.api_url()}.\"\n        ) from e\n\n    assert is_up_to_date, message\n\n\nclass EIPSpecTestItem(Item):\n    \"\"\"Custom pytest test item to test EIP spec versions.\"\"\"\n\n    module: ModuleType\n    github_token: Optional[str]\n\n    def __init__(self, name: str, parent: Node, **kwargs: Any):\n        \"\"\"\n        Initialize the test item.\n\n        Args:\n          name: Name of the test\n          parent: Parent node\n          **kwargs: Additional keyword arguments\n\n        \"\"\"\n        super().__init__(name, parent, **kwargs)\n        self.module = None  # type: ignore\n        self.github_token = None\n\n    @classmethod\n    def from_parent(cls, parent: Node, **kw: Any) -> \"EIPSpecTestItem\":\n        \"\"\"\n        Public constructor to define new tests.\n        https://docs.pytest.org/en/latest/reference/reference.html#pytest.nodes.Node.from_parent.\n\n        Args:\n            parent: The parent Node\n            kw: Additional keyword arguments (module, github_token)\n\n        \"\"\"\n        module = kw.pop(\"module\", None)\n        github_token = kw.pop(\"github_token\", None)\n\n        kw[\"name\"] = \"test_eip_spec_version\"\n        item = super(EIPSpecTestItem, cls).from_parent(parent, **kw)\n\n        item.module = module\n        item.github_token = github_token\n        return item\n\n    def runtest(self) -> None:\n        \"\"\"Define the test to execute for this item.\"\"\"\n        test_eip_spec_version(self.module, github_token=self.github_token)\n\n    def reportinfo(self) -> tuple[str, int, str]:\n        \"\"\"\n        Get location information for this test item to use test reports.\n\n        Returns:\n            A tuple of (path, line_number, description)\n\n        \"\"\"\n        return \"spec_version_checker\", 0, f\"{self.name}\"\n\n\ndef pytest_collection_modifyitems(config: pytest.Config, items: List[Item]) -> None:\n    \"\"\"\n    Insert a new test EIPSpecTestItem for every test module with 'eip' in its\n    path.\n    \"\"\"\n    github_token = config.github_token if hasattr(config, \"github_token\") else None\n\n    modules: Set[Module] = {item.parent for item in items if isinstance(item.parent, Module)}\n    new_test_eip_spec_version_items = [\n        EIPSpecTestItem.from_parent(parent=module, module=module.obj, github_token=github_token)\n        for module in sorted(modules, key=lambda module: module.path)\n        if is_test_for_an_eip(str(module.path))\n    ]\n    for item in new_test_eip_spec_version_items:\n        item.add_marker(\"eip_version_check\", append=True)\n    items.extend(new_test_eip_spec_version_items)\n"
  },
  {
    "path": "stubs/joblib/__init__.pyi",
    "content": "from typing import Any, Callable\n\nclass Memory:\n    def __init__(self, location: str, verbose: int = ...) -> None: ...\n    def cache(self, func: Callable[..., Any]) -> Callable[..., Any]: ...\n"
  },
  {
    "path": "stubs/jwt/__init__.pyi",
    "content": "from .encode import encode\n\n__all__ = (\"encode\",)\n"
  },
  {
    "path": "stubs/jwt/encode.pyi",
    "content": "from typing import Any, Dict\n\ndef encode(payload: Dict[Any, Any], key: bytes, algorithm: str) -> str: ...\n"
  },
  {
    "path": "stubs/pytest_metadata/__init__.pyi",
    "content": ""
  },
  {
    "path": "stubs/pytest_metadata/plugin.pyi",
    "content": "from _pytest.stash import StashKey\n\nmetadata_key: StashKey\n"
  },
  {
    "path": "stubs/trie/__init__.pyi",
    "content": "from .hexary import HexaryTrie as HexaryTrie\n\n__all__ = (\"HexaryTrie\",)\n"
  },
  {
    "path": "stubs/trie/hexary.pyi",
    "content": "from typing import Dict\n\nclass HexaryTrie:\n    db: Dict\n    root_hash: bytes\n\n    def __init__(self, db: Dict) -> None: ...\n    def set(self, key: bytes, value: bytes) -> None: ...\n"
  },
  {
    "path": "stubs/xdist/__init__.pyi",
    "content": "from .methods import is_xdist_worker\n\n__all__ = (\"is_xdist_worker\",)\n"
  },
  {
    "path": "stubs/xdist/methods.pyi",
    "content": "import pytest\n\ndef is_xdist_worker(session: pytest.Session) -> bool: ...\n"
  },
  {
    "path": "tests/__init__.py",
    "content": "\"\"\"\nCross-client test cases organized by fork. Each directory underneath `tests/`\ncontains test cases corresponding [to the fork](https://ethereum.org/en/history)\nin which the functionality-under-test was introduced.\n\"\"\"\n"
  },
  {
    "path": "tests/amsterdam/__init__.py",
    "content": "\"\"\"\nTest cases for EVM functionality introduced in Amsterdam, [EIP-7773: Hardfork\nMeta - Glamsterdam](https://eip.directory/eips/eip-7773).\n\"\"\"\n"
  },
  {
    "path": "tests/amsterdam/eip7928_block_level_access_lists/__init__.py",
    "content": "\"\"\"Tests for [EIP-7928: Block-level Access Lists](https://eips.ethereum.org/EIPS/eip-7928).\"\"\"\n"
  },
  {
    "path": "tests/amsterdam/eip7928_block_level_access_lists/spec.py",
    "content": "\"\"\"Reference spec for [EIP-7928: Block-level Access Lists.](https://eips.ethereum.org/EIPS/eip-7928).\"\"\"\n\nfrom dataclasses import dataclass\n\n\n@dataclass(frozen=True)\nclass ReferenceSpec:\n    \"\"\"Reference specification.\"\"\"\n\n    git_path: str\n    version: str\n\n\nref_spec_7928 = ReferenceSpec(\n    git_path=\"EIPS/eip-7928.md\",\n    version=\"e7f0963a024b3d0dedc4488a7553bf7c70dedb3e\",\n)\n\n\n@dataclass(frozen=True)\nclass Spec:\n    \"\"\"Constants and parameters from EIP-7928.\"\"\"\n\n    # RLP encoding is used for block access list data structures\n    BAL_ENCODING_FORMAT: str = \"RLP\"\n\n    # Maximum limits for block access list data structures\n    TARGET_MAX_GAS_LIMIT = 600_000_000\n    MAX_TXS: int = 30_000\n    MAX_SLOTS: int = 300_000\n    MAX_ACCOUNTS: int = 300_000\n    # TODO: Use this as a function of the current fork.\n    MAX_CODE_SIZE: int = 24_576  # 24 KiB\n\n    # Type size constants\n    ADDRESS_SIZE: int = 20  # Ethereum address size in bytes\n    STORAGE_KEY_SIZE: int = 32  # Storage slot key size in bytes\n    STORAGE_VALUE_SIZE: int = 32  # Storage value size in bytes\n    HASH_SIZE: int = 32  # Hash size in bytes\n\n    # Numeric type limits\n    MAX_TX_INDEX: int = 2**16 - 1  # uint16 max value\n    MAX_BALANCE: int = 2**128 - 1  # uint128 max value\n    MAX_NONCE: int = 2**64 - 1  # uint64 max value\n"
  },
  {
    "path": "tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists.py",
    "content": "\"\"\"Tests for EIP-7928 using the consistent data class pattern.\"\"\"\n\nfrom typing import Callable, Dict\n\nimport pytest\n\nfrom ethereum_test_base_types import AccessList, Address, Hash\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_specs.blockchain import Header\nfrom ethereum_test_tools import (\n    Account,\n    Alloc,\n    Block,\n    BlockchainTestFiller,\n    Initcode,\n    Transaction,\n    compute_create_address,\n)\nfrom ethereum_test_types import Environment\nfrom ethereum_test_types.block_access_list import (\n    BalAccountExpectation,\n    BalBalanceChange,\n    BalCodeChange,\n    BalNonceChange,\n    BalStorageChange,\n    BalStorageSlot,\n    BlockAccessListExpectation,\n)\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .spec import ref_spec_7928\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_7928.git_path\nREFERENCE_SPEC_VERSION = ref_spec_7928.version\n\npytestmark = pytest.mark.valid_from(\"Amsterdam\")\n\n\ndef test_bal_nonce_changes(\n    pre: Alloc,\n    blockchain_test: BlockchainTestFiller,\n) -> None:\n    \"\"\"Ensure BAL captures changes to nonce.\"\"\"\n    alice = pre.fund_eoa()\n    bob = pre.fund_eoa(amount=0)\n\n    tx = Transaction(\n        sender=alice,\n        to=bob,\n        value=100,\n    )\n\n    block = Block(\n        txs=[tx],\n        expected_block_access_list=BlockAccessListExpectation(\n            account_expectations={\n                alice: BalAccountExpectation(\n                    nonce_changes=[BalNonceChange(tx_index=1, post_nonce=1)],\n                ),\n            }\n        ),\n    )\n\n    blockchain_test(\n        pre=pre,\n        blocks=[block],\n        post={\n            alice: Account(nonce=1),\n            bob: Account(balance=100),\n        },\n    )\n\n\ndef test_bal_balance_changes(\n    pre: Alloc,\n    blockchain_test: BlockchainTestFiller,\n    fork: Fork,\n) -> None:\n    \"\"\"Ensure BAL captures changes to balance.\"\"\"\n    alice = pre.fund_eoa()\n    bob = pre.fund_eoa(amount=0)\n\n    intrinsic_gas_calculator = fork.transaction_intrinsic_cost_calculator()\n    intrinsic_gas_cost = intrinsic_gas_calculator(\n        calldata=b\"\",\n        contract_creation=False,\n        access_list=[],\n    )\n    tx_gas_limit = intrinsic_gas_cost + 1000  # add a small buffer\n\n    tx = Transaction(\n        sender=alice,\n        to=bob,\n        value=100,\n        gas_limit=tx_gas_limit,\n        gas_price=1_000_000_000,\n    )\n\n    alice_account = pre[alice]\n    assert alice_account is not None, \"Alice account should exist\"\n    alice_initial_balance = alice_account.balance\n\n    # Account for both the value sent and gas cost (gas_price * gas_used)\n    alice_final_balance = alice_initial_balance - 100 - (intrinsic_gas_cost * 1_000_000_000)\n\n    block = Block(\n        txs=[tx],\n        expected_block_access_list=BlockAccessListExpectation(\n            account_expectations={\n                alice: BalAccountExpectation(\n                    nonce_changes=[BalNonceChange(tx_index=1, post_nonce=1)],\n                    balance_changes=[\n                        BalBalanceChange(tx_index=1, post_balance=alice_final_balance)\n                    ],\n                ),\n                bob: BalAccountExpectation(\n                    balance_changes=[BalBalanceChange(tx_index=1, post_balance=100)],\n                ),\n            }\n        ),\n    )\n\n    blockchain_test(\n        pre=pre,\n        blocks=[block],\n        post={\n            alice: Account(nonce=1, balance=alice_final_balance),\n            bob: Account(balance=100),\n        },\n    )\n\n\ndef test_bal_code_changes(\n    pre: Alloc,\n    blockchain_test: BlockchainTestFiller,\n) -> None:\n    \"\"\"Ensure BAL captures changes to account code.\"\"\"\n    runtime_code = Op.STOP\n    runtime_code_bytes = bytes(runtime_code)\n\n    init_code = (\n        Op.PUSH1(len(runtime_code_bytes))  # size = 1\n        + Op.DUP1  # duplicate size for return\n        + Op.PUSH1(0x0C)  # offset in init code where runtime code starts\n        + Op.PUSH1(0x00)  # dest offset\n        + Op.CODECOPY  # copy runtime code to memory\n        + Op.PUSH1(0x00)  # memory offset for return\n        + Op.RETURN  # return runtime code\n        + runtime_code  # the actual runtime code to deploy\n    )\n    init_code_bytes = bytes(init_code)\n\n    # Factory contract that uses CREATE to deploy\n    factory_code = (\n        # Push init code to memory\n        Op.PUSH32(init_code_bytes)\n        + Op.PUSH1(0x00)\n        + Op.MSTORE  # Store at memory position 0\n        # CREATE parameters: value, offset, size\n        + Op.PUSH1(len(init_code_bytes))  # size of init code\n        + Op.PUSH1(32 - len(init_code_bytes))  # offset in memory (account for padding)\n        + Op.PUSH1(0x00)  # value = 0 (no ETH sent)\n        + Op.CREATE  # Deploy the contract\n        + Op.STOP\n    )\n\n    factory_contract = pre.deploy_contract(code=factory_code)\n    alice = pre.fund_eoa()\n\n    tx = Transaction(\n        sender=alice,\n        to=factory_contract,\n        gas_limit=500000,\n    )\n\n    created_contract = compute_create_address(address=factory_contract, nonce=1)\n\n    block = Block(\n        txs=[tx],\n        expected_block_access_list=BlockAccessListExpectation(\n            account_expectations={\n                alice: BalAccountExpectation(\n                    nonce_changes=[BalNonceChange(tx_index=1, post_nonce=1)],\n                ),\n                factory_contract: BalAccountExpectation(\n                    nonce_changes=[BalNonceChange(tx_index=1, post_nonce=2)],\n                ),\n                created_contract: BalAccountExpectation(\n                    code_changes=[BalCodeChange(tx_index=1, new_code=runtime_code_bytes)],\n                ),\n            }\n        ),\n    )\n\n    blockchain_test(\n        pre=pre,\n        blocks=[block],\n        post={\n            alice: Account(nonce=1),\n            factory_contract: Account(nonce=2),  # incremented by CREATE to 2\n            created_contract: Account(\n                code=runtime_code_bytes,\n                storage={},\n            ),\n        },\n    )\n\n\n@pytest.mark.parametrize(\"self_destruct_in_same_tx\", [True, False], ids=[\"same_tx\", \"new_tx\"])\n@pytest.mark.parametrize(\"pre_funded\", [True, False], ids=[\"pre_funded\", \"not_pre_funded\"])\ndef test_bal_self_destruct(\n    pre: Alloc,\n    blockchain_test: BlockchainTestFiller,\n    self_destruct_in_same_tx: bool,\n    pre_funded: bool,\n) -> None:\n    \"\"\"Ensure BAL captures balance changes caused by `SELFDESTRUCT`.\"\"\"\n    alice = pre.fund_eoa()\n    bob = pre.fund_eoa(amount=0)\n\n    selfdestruct_code = (\n        Op.SLOAD(0x01)  # Read from storage slot 0x01\n        + Op.SSTORE(0x02, 0x42)  # Write to storage slot 0x02\n        + Op.SELFDESTRUCT(bob)\n    )\n    # A pre existing self-destruct contract with initial storage\n    kaboom = pre.deploy_contract(code=selfdestruct_code, storage={0x01: 0x123})\n\n    # A template for self-destruct contract\n    self_destruct_init_code = Initcode(deploy_code=selfdestruct_code)\n    template = pre.deploy_contract(code=self_destruct_init_code)\n\n    transfer_amount = expected_recipient_balance = 100\n    pre_fund_amount = 10\n\n    if self_destruct_in_same_tx:\n        # The goal is to create a self-destructing contract in the same\n        # transaction to trigger deletion of code as per EIP-6780.\n        # The factory contract below creates a new self-destructing\n        # contract and calls it in this transaction.\n\n        bytecode_size = len(self_destruct_init_code)\n        factory_bytecode = (\n            # Clone template memory\n            Op.EXTCODECOPY(template, 0, 0, bytecode_size)\n            # Fund 100 wei and deploy the clone\n            + Op.CREATE(transfer_amount, 0, bytecode_size)\n            # Call the clone, which self-destructs\n            + Op.CALL(100_000, Op.DUP6, 0, 0, 0, 0, 0)\n            + Op.STOP\n        )\n\n        factory = pre.deploy_contract(code=factory_bytecode)\n        kaboom_same_tx = compute_create_address(address=factory, nonce=1)\n\n    # Determine which account will be self-destructed\n    self_destructed_account = kaboom_same_tx if self_destruct_in_same_tx else kaboom\n\n    if pre_funded:\n        expected_recipient_balance += pre_fund_amount\n        pre.fund_address(address=self_destructed_account, amount=pre_fund_amount)\n\n    tx = Transaction(\n        sender=alice,\n        to=factory if self_destruct_in_same_tx else kaboom,\n        value=transfer_amount,\n        gas_limit=1_000_000,\n        gas_price=0xA,\n    )\n\n    block = Block(\n        txs=[tx],\n        expected_block_access_list=BlockAccessListExpectation(\n            account_expectations={\n                alice: BalAccountExpectation(\n                    nonce_changes=[BalNonceChange(tx_index=1, post_nonce=1)],\n                ),\n                bob: BalAccountExpectation(\n                    balance_changes=[\n                        BalBalanceChange(tx_index=1, post_balance=expected_recipient_balance)\n                    ]\n                ),\n                self_destructed_account: BalAccountExpectation(\n                    balance_changes=[BalBalanceChange(tx_index=1, post_balance=0)]\n                    if pre_funded\n                    else [],\n                    # Accessed slots for same-tx are recorded as reads (0x02)\n                    storage_reads=[0x01, 0x02] if self_destruct_in_same_tx else [0x01],\n                    # Storage changes are recorded for non-same-tx\n                    # self-destructs\n                    storage_changes=[\n                        BalStorageSlot(\n                            slot=0x02, slot_changes=[BalStorageChange(tx_index=1, post_value=0x42)]\n                        )\n                    ]\n                    if not self_destruct_in_same_tx\n                    else [],\n                    code_changes=[],  # should not be present\n                    nonce_changes=[],  # should not be present\n                ),\n            }\n        ),\n    )\n\n    post: Dict[Address, Account] = {\n        alice: Account(nonce=1),\n        bob: Account(balance=expected_recipient_balance),\n    }\n\n    # If the account was self-destructed in the same transaction,\n    # we expect the account to non-existent and its balance to be 0.\n    if self_destruct_in_same_tx:\n        post.update(\n            {\n                factory: Account(\n                    nonce=2,  # incremented after CREATE\n                    balance=0,  # spent on CREATE\n                    code=factory_bytecode,\n                ),\n                kaboom_same_tx: Account.NONEXISTENT,  # type: ignore\n                # The pre-existing contract remains unaffected\n                kaboom: Account(balance=0, code=selfdestruct_code, storage={0x01: 0x123}),\n            }\n        )\n    else:\n        post.update(\n            {\n                # This contract was self-destructed in a separate tx.\n                # From EIP 6780: `SELFDESTRUCT` does not delete any data\n                # (including storage keys, code, or the account itself).\n                kaboom: Account(\n                    balance=0, code=selfdestruct_code, storage={0x01: 0x123, 0x2: 0x42}\n                ),\n            }\n        )\n\n    blockchain_test(\n        pre=pre,\n        blocks=[block],\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"account_access_opcode\",\n    [\n        pytest.param(lambda target_addr: Op.BALANCE(target_addr), id=\"balance\"),\n        pytest.param(lambda target_addr: Op.EXTCODESIZE(target_addr), id=\"extcodesize\"),\n        pytest.param(lambda target_addr: Op.EXTCODECOPY(target_addr, 0, 0, 32), id=\"extcodecopy\"),\n        pytest.param(lambda target_addr: Op.EXTCODEHASH(target_addr), id=\"extcodehash\"),\n        pytest.param(lambda target_addr: Op.CALL(0, target_addr, 0, 0, 0, 0, 0), id=\"call\"),\n        pytest.param(\n            lambda target_addr: Op.CALLCODE(0, target_addr, 0, 0, 0, 0, 0), id=\"callcode\"\n        ),\n        pytest.param(\n            lambda target_addr: Op.DELEGATECALL(0, target_addr, 0, 0, 0, 0), id=\"delegatecall\"\n        ),\n        pytest.param(\n            lambda target_addr: Op.STATICCALL(0, target_addr, 0, 0, 0, 0), id=\"staticcall\"\n        ),\n    ],\n)\ndef test_bal_account_access_target(\n    pre: Alloc,\n    blockchain_test: BlockchainTestFiller,\n    account_access_opcode: Callable[[Address], Op],\n) -> None:\n    \"\"\"Ensure BAL captures target address of account access opcodes.\"\"\"\n    alice = pre.fund_eoa()\n    target_contract = pre.deploy_contract(code=Op.STOP)\n\n    oracle_contract = pre.deploy_contract(\n        balance=100,\n        code=account_access_opcode(target_contract),\n    )\n\n    tx = Transaction(sender=alice, to=oracle_contract, gas_limit=5_000_000, gas_price=0xA)\n\n    block = Block(\n        txs=[tx],\n        expected_block_access_list=BlockAccessListExpectation(\n            account_expectations={\n                alice: BalAccountExpectation(\n                    nonce_changes=[BalNonceChange(tx_index=1, post_nonce=1)]\n                ),\n                target_contract: BalAccountExpectation.empty(),\n                oracle_contract: BalAccountExpectation.empty(),\n            }\n        ),\n    )\n\n    blockchain_test(pre=pre, blocks=[block], post={})\n\n\ndef test_bal_call_with_value_transfer(\n    pre: Alloc,\n    blockchain_test: BlockchainTestFiller,\n) -> None:\n    \"\"\"\n    Ensure BAL captures balance changes from CALL opcode with\n    value transfer.\n    \"\"\"\n    alice = pre.fund_eoa()\n    bob = pre.fund_eoa(amount=0)\n\n    # Oracle contract that uses CALL to transfer 100 wei to Bob\n    oracle_code = Op.CALL(0, bob, 100, 0, 0, 0, 0)\n    oracle_contract = pre.deploy_contract(code=oracle_code, balance=200)\n\n    tx = Transaction(sender=alice, to=oracle_contract, gas_limit=1_000_000, gas_price=0xA)\n\n    block = Block(\n        txs=[tx],\n        expected_block_access_list=BlockAccessListExpectation(\n            account_expectations={\n                alice: BalAccountExpectation(\n                    nonce_changes=[BalNonceChange(tx_index=1, post_nonce=1)],\n                ),\n                oracle_contract: BalAccountExpectation(\n                    balance_changes=[BalBalanceChange(tx_index=1, post_balance=100)],\n                ),\n                bob: BalAccountExpectation(\n                    balance_changes=[BalBalanceChange(tx_index=1, post_balance=100)],\n                ),\n            }\n        ),\n    )\n\n    blockchain_test(pre=pre, blocks=[block], post={})\n\n\ndef test_bal_callcode_with_value_transfer(\n    pre: Alloc,\n    blockchain_test: BlockchainTestFiller,\n) -> None:\n    \"\"\"\n    Ensure BAL captures balance changes from CALLCODE opcode with\n    value transfer.\n    \"\"\"\n    alice = pre.fund_eoa()\n    bob = pre.fund_eoa(amount=0)\n\n    # TargetContract sends 100 wei to bob\n    target_code = Op.CALL(0, bob, 100, 0, 0, 0, 0)\n    target_contract = pre.deploy_contract(code=target_code)\n\n    # Oracle contract that uses CALLCODE to execute TargetContract's code\n    oracle_code = Op.CALLCODE(50_000, target_contract, 100, 0, 0, 0, 0)\n    oracle_contract = pre.deploy_contract(code=oracle_code, balance=200)\n\n    tx = Transaction(sender=alice, to=oracle_contract, gas_limit=1_000_000, gas_price=0xA)\n\n    block = Block(\n        txs=[tx],\n        expected_block_access_list=BlockAccessListExpectation(\n            account_expectations={\n                alice: BalAccountExpectation(\n                    nonce_changes=[BalNonceChange(tx_index=1, post_nonce=1)],\n                ),\n                oracle_contract: BalAccountExpectation(\n                    balance_changes=[BalBalanceChange(tx_index=1, post_balance=100)],\n                ),\n                bob: BalAccountExpectation(\n                    balance_changes=[BalBalanceChange(tx_index=1, post_balance=100)],\n                ),\n                target_contract: BalAccountExpectation.empty(),\n            }\n        ),\n    )\n\n    blockchain_test(pre=pre, blocks=[block], post={})\n\n\n@pytest.mark.parametrize(\n    \"delegated_opcode\",\n    [\n        pytest.param(\n            lambda target_addr: Op.DELEGATECALL(50000, target_addr, 0, 0, 0, 0), id=\"delegatecall\"\n        ),\n        pytest.param(\n            lambda target_addr: Op.CALLCODE(50000, target_addr, 0, 0, 0, 0, 0), id=\"callcode\"\n        ),\n    ],\n)\ndef test_bal_delegated_storage_writes(\n    pre: Alloc,\n    blockchain_test: BlockchainTestFiller,\n    delegated_opcode: Callable[[Address], Op],\n) -> None:\n    \"\"\"\n    Ensure BAL captures delegated storage writes via\n    DELEGATECALL and CALLCODE.\n    \"\"\"\n    alice = pre.fund_eoa()\n\n    # TargetContract that writes 0x42 to slot 0x01\n    target_code = Op.SSTORE(0x01, 0x42)\n    target_contract = pre.deploy_contract(code=target_code)\n\n    # Oracle contract that uses delegated opcode to execute\n    # TargetContract's code\n    oracle_code = delegated_opcode(target_contract)\n    oracle_contract = pre.deploy_contract(code=oracle_code)\n\n    tx = Transaction(\n        sender=alice,\n        to=oracle_contract,\n        gas_limit=1_000_000,\n    )\n\n    block = Block(\n        txs=[tx],\n        expected_block_access_list=BlockAccessListExpectation(\n            account_expectations={\n                alice: BalAccountExpectation(\n                    nonce_changes=[BalNonceChange(tx_index=1, post_nonce=1)],\n                ),\n                oracle_contract: BalAccountExpectation(\n                    storage_changes=[\n                        BalStorageSlot(\n                            slot=0x01,\n                            slot_changes=[BalStorageChange(tx_index=1, post_value=0x42)],\n                        )\n                    ],\n                ),\n                target_contract: BalAccountExpectation.empty(),\n            }\n        ),\n    )\n\n    blockchain_test(pre=pre, blocks=[block], post={})\n\n\n@pytest.mark.parametrize(\n    \"delegated_opcode\",\n    [\n        pytest.param(\n            lambda target_addr: Op.DELEGATECALL(50000, target_addr, 0, 0, 0, 0), id=\"delegatecall\"\n        ),\n        pytest.param(\n            lambda target_addr: Op.CALLCODE(50000, target_addr, 0, 0, 0, 0, 0), id=\"callcode\"\n        ),\n    ],\n)\ndef test_bal_delegated_storage_reads(\n    pre: Alloc,\n    blockchain_test: BlockchainTestFiller,\n    delegated_opcode: Callable[[Address], Op],\n) -> None:\n    \"\"\"\n    Ensure BAL captures delegated storage reads via\n    DELEGATECALL and CALLCODE.\n    \"\"\"\n    alice = pre.fund_eoa()\n\n    # TargetContract that reads from slot 0x01\n    target_code = Op.SLOAD(0x01) + Op.STOP\n    target_contract = pre.deploy_contract(code=target_code)\n\n    # Oracle contract with storage slot 0x01 = 0x42,\n    # uses delegated opcode to execute TargetContract's code\n    oracle_code = delegated_opcode(target_contract)\n    oracle_contract = pre.deploy_contract(code=oracle_code, storage={0x01: 0x42})\n\n    tx = Transaction(\n        sender=alice,\n        to=oracle_contract,\n        gas_limit=1_000_000,\n    )\n\n    block = Block(\n        txs=[tx],\n        expected_block_access_list=BlockAccessListExpectation(\n            account_expectations={\n                alice: BalAccountExpectation(\n                    nonce_changes=[BalNonceChange(tx_index=1, post_nonce=1)],\n                ),\n                oracle_contract: BalAccountExpectation(\n                    storage_reads=[0x01],\n                ),\n                target_contract: BalAccountExpectation.empty(),\n            }\n        ),\n    )\n\n    blockchain_test(pre=pre, blocks=[block], post={})\n\n\ndef test_bal_block_rewards(\n    pre: Alloc,\n    blockchain_test: BlockchainTestFiller,\n    fork: Fork,\n) -> None:\n    \"\"\"Ensure BAL captures fee recipient balance changes from block rewards.\"\"\"\n    alice_initial_balance = 1_000_000\n    alice = pre.fund_eoa(amount=alice_initial_balance)\n    bob = pre.fund_eoa(amount=0)\n    charlie = pre.fund_eoa(amount=0)  # fee recipient\n\n    intrinsic_gas_calculator = fork.transaction_intrinsic_cost_calculator()\n    intrinsic_gas = intrinsic_gas_calculator(\n        calldata=b\"\",\n        contract_creation=False,\n        access_list=[],\n    )\n    tx_gas_limit = intrinsic_gas + 1000  # add a small buffer\n    gas_price = 0xA\n\n    tx = Transaction(\n        sender=alice,\n        to=bob,\n        value=100,\n        gas_limit=tx_gas_limit,\n        gas_price=gas_price,\n    )\n\n    # EIP-1559 fee calculation:\n    # - Total gas cost\n    total_gas_cost = intrinsic_gas * gas_price\n    # - Tip portion\n\n    genesis_env = Environment(base_fee_per_gas=0x7)\n    base_fee_per_gas = fork.base_fee_per_gas_calculator()(\n        parent_base_fee_per_gas=int(genesis_env.base_fee_per_gas or 0),\n        parent_gas_used=0,\n        parent_gas_limit=genesis_env.gas_limit,\n    )\n    tip_to_charlie = (gas_price - base_fee_per_gas) * intrinsic_gas\n\n    alice_final_balance = alice_initial_balance - 100 - total_gas_cost\n\n    block = Block(\n        txs=[tx],\n        fee_recipient=charlie,  # Set Charlie as the fee recipient\n        header_verify=Header(base_fee_per_gas=base_fee_per_gas),\n        expected_block_access_list=BlockAccessListExpectation(\n            account_expectations={\n                alice: BalAccountExpectation(\n                    nonce_changes=[BalNonceChange(tx_index=1, post_nonce=1)],\n                    balance_changes=[\n                        BalBalanceChange(tx_index=1, post_balance=alice_final_balance)\n                    ],\n                ),\n                bob: BalAccountExpectation(\n                    balance_changes=[BalBalanceChange(tx_index=1, post_balance=100)],\n                ),\n                charlie: BalAccountExpectation(\n                    balance_changes=[BalBalanceChange(tx_index=1, post_balance=tip_to_charlie)],\n                ),\n            }\n        ),\n    )\n\n    blockchain_test(\n        pre=pre,\n        blocks=[block],\n        post={},\n        genesis_environment=genesis_env,\n    )\n\n\ndef test_bal_2930_account_listed_but_untouched(\n    pre: Alloc,\n    blockchain_test: BlockchainTestFiller,\n) -> None:\n    \"\"\"Ensure BAL excludes untouched access list accounts.\"\"\"\n    alice = pre.fund_eoa()\n    bob = pre.fund_eoa()\n    oracle = pre.deploy_contract(code=Op.STOP)\n\n    access_list = AccessList(\n        address=oracle,\n        storage_keys=[Hash(0x1)],\n    )\n\n    gas_limit = 1_000_000\n\n    tx = Transaction(ty=1, sender=alice, to=bob, gas_limit=gas_limit, access_list=[access_list])\n\n    block = Block(\n        txs=[tx],\n        expected_block_access_list=BlockAccessListExpectation(\n            account_expectations={\n                alice: BalAccountExpectation(\n                    nonce_changes=[BalNonceChange(tx_index=1, post_nonce=1)],\n                ),\n                # The address excluded from BAL since state is not accessed\n                oracle: None,\n            }\n        ),\n    )\n\n    blockchain_test(\n        pre=pre,\n        blocks=[block],\n        post={\n            alice: Account(nonce=1),\n        },\n    )\n\n\ndef test_bal_2930_slot_listed_but_untouched(\n    pre: Alloc,\n    blockchain_test: BlockchainTestFiller,\n    fork: Fork,\n) -> None:\n    \"\"\"Ensure BAL excludes untouched access list storage slots.\"\"\"\n    alice = pre.fund_eoa()\n    pure_calculator = pre.deploy_contract(\n        # Pure add operation\n        Op.ADD(35, 7)\n    )\n\n    access_list = AccessList(\n        address=pure_calculator,\n        storage_keys=[Hash(0x1)],\n    )\n\n    intrinsic_gas_calculator = fork.transaction_intrinsic_cost_calculator()\n    gas_limit = (\n        intrinsic_gas_calculator(\n            calldata=b\"\",\n            contract_creation=False,\n            access_list=[access_list],\n        )\n        + 1000\n    )  # intrinsic + buffer\n\n    tx = Transaction(\n        ty=1, sender=alice, to=pure_calculator, gas_limit=gas_limit, access_list=[access_list]\n    )\n\n    block = Block(\n        txs=[tx],\n        expected_block_access_list=BlockAccessListExpectation(\n            account_expectations={\n                alice: BalAccountExpectation(\n                    nonce_changes=[BalNonceChange(tx_index=1, post_nonce=1)],\n                ),\n                # The account was loaded.\n                pure_calculator: BalAccountExpectation.empty(),\n            }\n        ),\n    )\n\n    blockchain_test(\n        pre=pre,\n        blocks=[block],\n        post={\n            alice: Account(nonce=1),\n        },\n    )\n\n\ndef test_bal_2930_slot_listed_and_unlisted_writes(\n    pre: Alloc,\n    blockchain_test: BlockchainTestFiller,\n    fork: Fork,\n) -> None:\n    \"\"\"\n    Ensure BAL includes storage writes regardless of access list presence.\n    \"\"\"\n    alice = pre.fund_eoa()\n    storage_writer = pre.deploy_contract(code=Op.SSTORE(0x01, 0x42) + Op.SSTORE(0x02, 0x43))\n\n    # Access list only includes slot 0x01, but contract writes to both\n    # 0x01 and 0x02\n    access_list = AccessList(\n        address=storage_writer,\n        storage_keys=[Hash(0x01)],\n    )\n\n    intrinsic_gas_calculator = fork.transaction_intrinsic_cost_calculator()\n    gas_limit = (\n        intrinsic_gas_calculator(\n            calldata=b\"\",\n            contract_creation=False,\n            access_list=[access_list],\n        )\n        + 50000\n    )  # intrinsic + buffer for storage writes\n\n    tx = Transaction(\n        ty=1, sender=alice, to=storage_writer, gas_limit=gas_limit, access_list=[access_list]\n    )\n\n    block = Block(\n        txs=[tx],\n        expected_block_access_list=BlockAccessListExpectation(\n            account_expectations={\n                alice: BalAccountExpectation(\n                    nonce_changes=[BalNonceChange(tx_index=1, post_nonce=1)],\n                ),\n                storage_writer: BalAccountExpectation(\n                    storage_changes=[\n                        BalStorageSlot(\n                            slot=0x01,\n                            slot_changes=[BalStorageChange(tx_index=1, post_value=0x42)],\n                        ),\n                        BalStorageSlot(\n                            slot=0x02,\n                            slot_changes=[BalStorageChange(tx_index=1, post_value=0x43)],\n                        ),\n                    ],\n                ),\n            }\n        ),\n    )\n\n    blockchain_test(\n        pre=pre,\n        blocks=[block],\n        post={\n            alice: Account(nonce=1),\n            storage_writer: Account(storage={0x01: 0x42, 0x02: 0x43}),\n        },\n    )\n\n\ndef test_bal_2930_slot_listed_and_unlisted_reads(\n    pre: Alloc,\n    blockchain_test: BlockchainTestFiller,\n    fork: Fork,\n) -> None:\n    \"\"\"Ensure BAL includes storage reads regardless of access list presence.\"\"\"\n    alice = pre.fund_eoa()\n    storage_reader = pre.deploy_contract(\n        code=Op.SLOAD(0x01) + Op.SLOAD(0x02),\n        storage={0x01: 0x42, 0x02: 0x43},  # Pre-populate storage with values\n    )\n\n    # Access list only includes slot 0x01, but contract reads from both\n    # 0x01 and 0x02\n    access_list = AccessList(\n        address=storage_reader,\n        storage_keys=[Hash(0x01)],\n    )\n\n    intrinsic_gas_calculator = fork.transaction_intrinsic_cost_calculator()\n    gas_limit = (\n        intrinsic_gas_calculator(\n            calldata=b\"\",\n            contract_creation=False,\n            access_list=[access_list],\n        )\n        + 50000\n    )  # intrinsic + buffer for storage reads\n\n    tx = Transaction(\n        ty=1, sender=alice, to=storage_reader, gas_limit=gas_limit, access_list=[access_list]\n    )\n\n    block = Block(\n        txs=[tx],\n        expected_block_access_list=BlockAccessListExpectation(\n            account_expectations={\n                alice: BalAccountExpectation(\n                    nonce_changes=[BalNonceChange(tx_index=1, post_nonce=1)],\n                ),\n                storage_reader: BalAccountExpectation(\n                    storage_reads=[0x01, 0x02],\n                ),\n            }\n        ),\n    )\n\n    blockchain_test(\n        pre=pre,\n        blocks=[block],\n        post={\n            alice: Account(nonce=1),\n            storage_reader: Account(storage={0x01: 0x42, 0x02: 0x43}),\n        },\n    )\n\n\ndef test_bal_self_transfer(\n    pre: Alloc,\n    blockchain_test: BlockchainTestFiller,\n    fork: Fork,\n) -> None:\n    \"\"\"Test that BAL correctly handles self-transfers.\"\"\"\n    start_balance = 1_000_000\n    alice = pre.fund_eoa(amount=start_balance)\n\n    intrinsic_gas_calculator = fork.transaction_intrinsic_cost_calculator()\n    intrinsic_gas_cost = intrinsic_gas_calculator()\n\n    tx = Transaction(\n        sender=alice, to=alice, gas_limit=intrinsic_gas_cost, value=100, gas_price=0xA\n    )\n\n    block = Block(\n        txs=[tx],\n        expected_block_access_list=BlockAccessListExpectation(\n            account_expectations={\n                alice: BalAccountExpectation(\n                    nonce_changes=[BalNonceChange(tx_index=1, post_nonce=1)],\n                    balance_changes=[\n                        BalBalanceChange(\n                            tx_index=1,\n                            post_balance=start_balance\n                            - intrinsic_gas_cost * int(tx.gas_price or 0),\n                        )\n                    ],\n                )\n            }\n        ),\n    )\n\n    blockchain_test(pre=pre, blocks=[block], post={})\n\n\ndef test_bal_zero_value_transfer(\n    pre: Alloc,\n    blockchain_test: BlockchainTestFiller,\n    fork: Fork,\n) -> None:\n    \"\"\"Test that BAL correctly handles zero-value transfers.\"\"\"\n    start_balance = 1_000_000\n    alice = pre.fund_eoa(amount=start_balance)\n    bob = pre.fund_eoa(amount=100)\n\n    intrinsic_gas_calculator = fork.transaction_intrinsic_cost_calculator()\n    intrinsic_gas_cost = intrinsic_gas_calculator()\n\n    tx = Transaction(sender=alice, to=bob, gas_limit=intrinsic_gas_cost, value=0, gas_price=0xA)\n\n    block = Block(\n        txs=[tx],\n        expected_block_access_list=BlockAccessListExpectation(\n            account_expectations={\n                alice: BalAccountExpectation(\n                    nonce_changes=[BalNonceChange(tx_index=1, post_nonce=1)],\n                    balance_changes=[\n                        BalBalanceChange(\n                            tx_index=1,\n                            post_balance=start_balance\n                            - intrinsic_gas_cost * int(tx.gas_price or 0),\n                        )\n                    ],\n                ),\n                # Include the address; omit from balance_changes.\n                bob: BalAccountExpectation(balance_changes=[]),\n            }\n        ),\n    )\n\n    blockchain_test(pre=pre, blocks=[block], post={})\n\n\n@pytest.mark.parametrize(\n    \"initial_balance,transfer_amount,transfer_mechanism\",\n    [\n        pytest.param(0, 0, \"call\", id=\"zero_balance_zero_transfer_call\"),\n        pytest.param(0, 0, \"selfdestruct\", id=\"zero_balance_zero_transfer_selfdestruct\"),\n        pytest.param(1, 1, \"call\", id=\"nonzero_balance_net_zero\"),\n        pytest.param(100, 50, \"call\", id=\"larger_balance_net_zero\"),\n    ],\n)\ndef test_bal_net_zero_balance_transfer(\n    pre: Alloc,\n    blockchain_test: BlockchainTestFiller,\n    initial_balance: int,\n    transfer_amount: int,\n    transfer_mechanism: str,\n) -> None:\n    \"\"\"\n    Test that BAL does not record balance changes when net change is zero.\n\n    A contract starts with `initial_balance`, receives `transfer_amount`\n    (increasing its balance), then sends `transfer_amount` to a recipient\n    (decreasing its balance back to `initial_balance`). The net change is zero,\n    so BAL should not record any balance changes for this contract.\n\n    The contract verifies this by reading its own balance with SELFBALANCE,\n    storing it in slot 0, then sending that amount to the recipient.\n    \"\"\"\n    alice = pre.fund_eoa()\n    recipient = pre.fund_eoa(amount=0)\n\n    net_zero_bal_contract_code = (\n        Op.SSTORE(0, Op.SELFBALANCE) + Op.SELFDESTRUCT(recipient)\n        if transfer_mechanism == \"selfdestruct\"\n        # store current balance in slot 0\n        else (\n            Op.SSTORE(0, Op.SELFBALANCE)\n            # send only the `transfer_amount` received to recipient (net zero)\n            + Op.CALL(0, recipient, Op.CALLVALUE, 0, 0, 0, 0)\n            + Op.STOP\n        )\n    )\n    net_zero_bal_contract = pre.deploy_contract(\n        code=net_zero_bal_contract_code, balance=initial_balance\n    )\n\n    tx = Transaction(\n        sender=alice,\n        to=net_zero_bal_contract,\n        value=transfer_amount,\n        gas_limit=1_000_000,\n        gas_price=0xA,\n    )\n\n    expected_balance_in_slot = initial_balance + transfer_amount\n\n    block = Block(\n        txs=[tx],\n        expected_block_access_list=BlockAccessListExpectation(\n            account_expectations={\n                alice: BalAccountExpectation(\n                    nonce_changes=[BalNonceChange(tx_index=1, post_nonce=1)],\n                ),\n                net_zero_bal_contract: BalAccountExpectation(\n                    # receives transfer_amount and sends transfer_amount away\n                    # (net-zero change)\n                    balance_changes=[],\n                    storage_reads=[0x00] if expected_balance_in_slot == 0 else [],\n                    storage_changes=[\n                        BalStorageSlot(\n                            slot=0x00,\n                            slot_changes=[\n                                BalStorageChange(tx_index=1, post_value=expected_balance_in_slot)\n                            ],\n                        )\n                    ]\n                    if expected_balance_in_slot > 0\n                    else [],\n                ),\n                # recipient receives transfer_amount\n                recipient: BalAccountExpectation(\n                    balance_changes=[BalBalanceChange(tx_index=1, post_balance=transfer_amount)]\n                    if transfer_amount > 0\n                    else [],\n                ),\n            }\n        ),\n    )\n\n    blockchain_test(\n        pre=pre,\n        blocks=[block],\n        post={\n            net_zero_bal_contract: Account(\n                balance=initial_balance,\n                storage={0x00: expected_balance_in_slot} if expected_balance_in_slot > 0 else {},\n            ),\n            recipient: Account(balance=transfer_amount)\n            if transfer_amount > 0\n            else Account.NONEXISTENT,\n        },\n    )\n\n\ndef test_bal_pure_contract_call(\n    pre: Alloc,\n    blockchain_test: BlockchainTestFiller,\n    fork: Fork,\n) -> None:\n    \"\"\"Test that BAL captures contract access for pure computation calls.\"\"\"\n    alice = pre.fund_eoa()\n    pure_contract = pre.deploy_contract(code=Op.ADD(0x3, 0x2))\n\n    intrinsic_gas_calculator = fork.transaction_intrinsic_cost_calculator()\n    gas_limit = intrinsic_gas_calculator() + 5_000  # Buffer\n\n    tx = Transaction(sender=alice, to=pure_contract, gas_limit=gas_limit, gas_price=0xA)\n\n    block = Block(\n        txs=[tx],\n        expected_block_access_list=BlockAccessListExpectation(\n            account_expectations={\n                alice: BalAccountExpectation(\n                    nonce_changes=[BalNonceChange(tx_index=1, post_nonce=1)],\n                ),\n                # Ensure called contract is tracked\n                pure_contract: BalAccountExpectation.empty(),\n            }\n        ),\n    )\n\n    blockchain_test(pre=pre, blocks=[block], post={})\n\n\ndef test_bal_noop_storage_write(\n    pre: Alloc,\n    blockchain_test: BlockchainTestFiller,\n    fork: Fork,\n) -> None:\n    \"\"\"Test that BAL correctly handles no-op storage write.\"\"\"\n    alice = pre.fund_eoa()\n    storage_contract = pre.deploy_contract(code=Op.SSTORE(0x01, 0x42), storage={0x01: 0x42})\n\n    intrinsic_gas_calculator = fork.transaction_intrinsic_cost_calculator()\n    gas_limit = (\n        intrinsic_gas_calculator()\n        # Sufficient gas for write\n        + fork.gas_costs().G_COLD_SLOAD\n        + fork.gas_costs().G_COLD_ACCOUNT_ACCESS\n        + fork.gas_costs().G_STORAGE_SET\n        + fork.gas_costs().G_BASE * 10  # Buffer for push\n    )\n\n    tx = Transaction(sender=alice, to=storage_contract, gas_limit=gas_limit, gas_price=0xA)\n\n    block = Block(\n        txs=[tx],\n        expected_block_access_list=BlockAccessListExpectation(\n            account_expectations={\n                alice: BalAccountExpectation(\n                    nonce_changes=[BalNonceChange(tx_index=1, post_nonce=1)],\n                ),\n                storage_contract: BalAccountExpectation(\n                    storage_reads=[0x01],\n                    storage_changes=[],\n                ),\n            }\n        ),\n    )\n\n    blockchain_test(pre=pre, blocks=[block], post={})\n\n\n@pytest.mark.parametrize(\n    \"abort_opcode\",\n    [\n        pytest.param(Op.REVERT(0, 0), id=\"revert\"),\n        pytest.param(Op.INVALID, id=\"invalid\"),\n    ],\n)\ndef test_bal_aborted_storage_access(\n    pre: Alloc, blockchain_test: BlockchainTestFiller, abort_opcode: Op\n) -> None:\n    \"\"\"Ensure BAL captures storage access in aborted transactions correctly.\"\"\"\n    alice = pre.fund_eoa()\n    storage_contract = pre.deploy_contract(\n        code=Op.SLOAD(0x01) + Op.SSTORE(0x02, 0x42) + abort_opcode,\n        storage={0x01: 0x10},  # Pre-existing value in slot 0x01\n    )\n\n    tx = Transaction(sender=alice, to=storage_contract, gas_limit=5_000_000, gas_price=0xA)\n\n    block = Block(\n        txs=[tx],\n        expected_block_access_list=BlockAccessListExpectation(\n            account_expectations={\n                alice: BalAccountExpectation(\n                    nonce_changes=[BalNonceChange(tx_index=1, post_nonce=1)]\n                ),\n                storage_contract: BalAccountExpectation(\n                    storage_changes=[],\n                    storage_reads=[0x01, 0x02],\n                ),\n            }\n        ),\n    )\n\n    blockchain_test(\n        pre=pre,\n        blocks=[block],\n        post={},\n    )\n\n\n@pytest.mark.parametrize(\n    \"account_access_opcode\",\n    [\n        pytest.param(lambda target_addr: Op.BALANCE(target_addr), id=\"balance\"),\n        pytest.param(lambda target_addr: Op.EXTCODESIZE(target_addr), id=\"extcodesize\"),\n        pytest.param(lambda target_addr: Op.EXTCODECOPY(target_addr, 0, 0, 32), id=\"extcodecopy\"),\n        pytest.param(lambda target_addr: Op.EXTCODEHASH(target_addr), id=\"extcodehash\"),\n        pytest.param(lambda target_addr: Op.CALL(0, target_addr, 50, 0, 0, 0, 0), id=\"call\"),\n        pytest.param(\n            lambda target_addr: Op.CALLCODE(0, target_addr, 50, 0, 0, 0, 0), id=\"callcode\"\n        ),\n        pytest.param(\n            lambda target_addr: Op.DELEGATECALL(0, target_addr, 0, 0, 0, 0), id=\"delegatecall\"\n        ),\n        pytest.param(\n            lambda target_addr: Op.STATICCALL(0, target_addr, 0, 0, 0, 0), id=\"staticcall\"\n        ),\n    ],\n)\n@pytest.mark.parametrize(\n    \"abort_opcode\",\n    [\n        pytest.param(Op.REVERT(0, 0), id=\"revert\"),\n        pytest.param(Op.INVALID, id=\"invalid\"),\n    ],\n)\ndef test_bal_aborted_account_access(\n    pre: Alloc,\n    blockchain_test: BlockchainTestFiller,\n    account_access_opcode: Callable[[Address], Op],\n    abort_opcode: Op,\n) -> None:\n    \"\"\"Ensure BAL captures account access in aborted transactions.\"\"\"\n    alice = pre.fund_eoa()\n    target_contract = pre.deploy_contract(code=Op.STOP)\n\n    abort_contract = pre.deploy_contract(\n        balance=100,\n        code=account_access_opcode(target_contract) + abort_opcode,\n    )\n\n    tx = Transaction(sender=alice, to=abort_contract, gas_limit=5_000_000, gas_price=0xA)\n\n    block = Block(\n        txs=[tx],\n        expected_block_access_list=BlockAccessListExpectation(\n            account_expectations={\n                alice: BalAccountExpectation(\n                    nonce_changes=[BalNonceChange(tx_index=1, post_nonce=1)]\n                ),\n                target_contract: BalAccountExpectation.empty(),\n                abort_contract: BalAccountExpectation.empty(),\n            }\n        ),\n    )\n\n    blockchain_test(\n        pre=pre,\n        blocks=[block],\n        post={},\n    )\n\n\ndef test_bal_fully_unmutated_account(\n    pre: Alloc,\n    blockchain_test: BlockchainTestFiller,\n) -> None:\n    \"\"\"\n    Test that BAL captures account that has zero net mutations.\n\n    oracle account:\n        1. Storage read and write the same value (no net change).\n        2. Receives `0` value transfer (no net change).\n    \"\"\"\n    alice = pre.fund_eoa()\n    # Deploy Oracle contract with pre-existing storage value\n    oracle = pre.deploy_contract(\n        code=Op.SSTORE(0x01, 0x42) + Op.STOP,\n        storage={0x01: 0x42},  # Pre-existing value\n    )\n\n    tx = Transaction(sender=alice, to=oracle, gas_limit=1_000_000, value=0, gas_price=0xA)\n\n    block = Block(\n        txs=[tx],\n        expected_block_access_list=BlockAccessListExpectation(\n            account_expectations={\n                alice: BalAccountExpectation(\n                    nonce_changes=[BalNonceChange(tx_index=1, post_nonce=1)],\n                ),\n                oracle: BalAccountExpectation(\n                    storage_changes=[],  # No net storage changes\n                    storage_reads=[0x01],  # But storage was accessed\n                    balance_changes=[],  # No net balance changes\n                ),\n            }\n        ),\n    )\n\n    blockchain_test(pre=pre, blocks=[block], post={})\n"
  },
  {
    "path": "tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists_eip7702.py",
    "content": "\"\"\"Tests for the effects of EIP-7702 transactions on EIP-7928.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_tools import (\n    Account,\n    Alloc,\n    AuthorizationTuple,\n    Block,\n    BlockchainTestFiller,\n    Transaction,\n)\nfrom ethereum_test_types.block_access_list import (\n    BalAccountExpectation,\n    BalBalanceChange,\n    BalCodeChange,\n    BalNonceChange,\n    BalStorageChange,\n    BalStorageSlot,\n    BlockAccessListExpectation,\n)\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom ...prague.eip7702_set_code_tx.spec import Spec as Spec7702\nfrom .spec import ref_spec_7928\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_7928.git_path\nREFERENCE_SPEC_VERSION = ref_spec_7928.version\n\npytestmark = pytest.mark.valid_from(\"Amsterdam\")\n\n\n@pytest.mark.parametrize(\n    \"self_funded\",\n    [\n        pytest.param(False, id=\"sponsored\"),\n        pytest.param(True, id=\"self_funded\"),\n    ],\n)\ndef test_bal_7702_delegation_create(\n    pre: Alloc,\n    blockchain_test: BlockchainTestFiller,\n    self_funded: bool,\n) -> None:\n    \"\"\"Ensure BAL captures creation of EOA delegation.\"\"\"\n    alice = pre.fund_eoa()\n    bob = pre.fund_eoa(amount=0)\n\n    if not self_funded:\n        relayer = pre.fund_eoa()\n        sender = relayer\n    else:\n        sender = alice\n\n    oracle = pre.deploy_contract(code=Op.STOP)\n\n    tx = Transaction(\n        sender=sender,\n        to=bob,\n        value=10,\n        gas_limit=1_000_000,\n        gas_price=0xA,\n        authorization_list=[\n            AuthorizationTuple(\n                address=oracle,\n                nonce=1 if self_funded else 0,\n                signer=alice,\n            )\n        ],\n    )\n\n    account_expectations = {\n        alice: BalAccountExpectation(\n            nonce_changes=[BalNonceChange(tx_index=1, post_nonce=2 if self_funded else 1)],\n            code_changes=[\n                BalCodeChange(tx_index=1, new_code=Spec7702.delegation_designation(oracle))\n            ],\n        ),\n        bob: BalAccountExpectation(\n            balance_changes=[BalBalanceChange(tx_index=1, post_balance=10)]\n        ),\n        # Oracle must not be present in BAL - the account is never accessed\n        oracle: None,\n    }\n\n    # For sponsored variant, relayer must also be included in BAL\n    if not self_funded:\n        account_expectations[relayer] = BalAccountExpectation(\n            nonce_changes=[BalNonceChange(tx_index=1, post_nonce=1)],\n        )\n\n    block = Block(\n        txs=[tx],\n        expected_block_access_list=BlockAccessListExpectation(\n            account_expectations=account_expectations\n        ),\n    )\n\n    post = {\n        alice: Account(\n            nonce=2 if self_funded else 1, code=Spec7702.delegation_designation(oracle)\n        ),\n        # Bob receives 10 wei\n        bob: Account(balance=10),\n    }\n\n    # For sponsored variant, include relayer in post state\n    if not self_funded:\n        post.update({relayer: Account(nonce=1)})\n\n    blockchain_test(\n        pre=pre,\n        blocks=[block],\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"self_funded\",\n    [\n        pytest.param(False, id=\"sponsored\"),\n        pytest.param(True, id=\"self_funded\"),\n    ],\n)\ndef test_bal_7702_delegation_update(\n    pre: Alloc,\n    blockchain_test: BlockchainTestFiller,\n    self_funded: bool,\n) -> None:\n    \"\"\"Ensure BAL captures update of existing EOA delegation.\"\"\"\n    alice = pre.fund_eoa()\n    bob = pre.fund_eoa(amount=0)\n\n    if not self_funded:\n        relayer = pre.fund_eoa()\n        sender = relayer\n    else:\n        sender = alice\n\n    oracle1 = pre.deploy_contract(code=Op.STOP)\n    oracle2 = pre.deploy_contract(code=Op.STOP)\n\n    ## Perhaps create pre existing delegation,\n    ## see `test_bal_7702_delegated_storage_access` since\n    ## `test_bal_7702_delegation_create` already tests creation\n    tx_create = Transaction(\n        sender=sender,\n        to=bob,\n        value=10,\n        gas_limit=1_000_000,\n        gas_price=0xA,\n        authorization_list=[\n            AuthorizationTuple(\n                address=oracle1,\n                nonce=1 if self_funded else 0,\n                signer=alice,\n            )\n        ],\n    )\n\n    tx_update = Transaction(\n        nonce=2 if self_funded else 1,\n        sender=sender,\n        to=bob,\n        value=10,\n        gas_limit=1_000_000,\n        gas_price=0xA,\n        authorization_list=[\n            AuthorizationTuple(\n                address=oracle2,\n                nonce=3 if self_funded else 1,\n                signer=alice,\n            )\n        ],\n    )\n\n    account_expectations = {\n        alice: BalAccountExpectation(\n            nonce_changes=[\n                BalNonceChange(tx_index=1, post_nonce=2 if self_funded else 1),\n                BalNonceChange(tx_index=2, post_nonce=4 if self_funded else 2),\n            ],\n            code_changes=[\n                BalCodeChange(tx_index=1, new_code=Spec7702.delegation_designation(oracle1)),\n                BalCodeChange(tx_index=2, new_code=Spec7702.delegation_designation(oracle2)),\n            ],\n        ),\n        bob: BalAccountExpectation(\n            balance_changes=[\n                BalBalanceChange(tx_index=1, post_balance=10),\n                BalBalanceChange(tx_index=2, post_balance=20),\n            ]\n        ),\n        # Both delegation targets must not be present in BAL\n        # the account is never accessed\n        oracle1: None,\n        oracle2: None,\n    }\n\n    # For sponsored variant, relayer must also be included in BAL\n    if not self_funded:\n        account_expectations[relayer] = BalAccountExpectation(\n            nonce_changes=[\n                BalNonceChange(tx_index=1, post_nonce=1),\n                BalNonceChange(tx_index=2, post_nonce=2),\n            ],\n        )\n\n    block = Block(\n        txs=[tx_create, tx_update],\n        expected_block_access_list=BlockAccessListExpectation(\n            account_expectations=account_expectations\n        ),\n    )\n\n    post = {\n        # Finally Alice's account should be delegated to oracle2\n        alice: Account(\n            nonce=4 if self_funded else 2, code=Spec7702.delegation_designation(oracle2)\n        ),\n        # Bob receives 20 wei in total\n        bob: Account(balance=20),\n    }\n\n    # For sponsored variant, include relayer in post state\n    if not self_funded:\n        post.update({relayer: Account(nonce=2)})\n\n    blockchain_test(\n        pre=pre,\n        blocks=[block],\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"self_funded\",\n    [\n        pytest.param(False, id=\"sponsored\"),\n        pytest.param(True, id=\"self_funded\"),\n    ],\n)\ndef test_bal_7702_delegation_clear(\n    pre: Alloc,\n    blockchain_test: BlockchainTestFiller,\n    self_funded: bool,\n) -> None:\n    \"\"\"Ensure BAL captures clearing of EOA delegation.\"\"\"\n    alice = pre.fund_eoa()\n    bob = pre.fund_eoa(amount=0)\n\n    if not self_funded:\n        relayer = pre.fund_eoa()\n        sender = relayer\n    else:\n        sender = alice\n\n    oracle = pre.deploy_contract(code=Op.STOP)\n    abyss = Spec7702.RESET_DELEGATION_ADDRESS\n\n    ## Perhaps create  pre existing delegation,\n    ## see `test_bal_7702_delegated_storage_access` since\n    ## `test_bal_7702_delegation_create` already tests creation\n    tx_create = Transaction(\n        sender=sender,\n        to=bob,\n        value=10,\n        gas_limit=1_000_000,\n        gas_price=0xA,\n        authorization_list=[\n            AuthorizationTuple(\n                address=oracle,\n                nonce=1 if self_funded else 0,\n                signer=alice,\n            )\n        ],\n    )\n\n    tx_clear = Transaction(\n        nonce=2 if self_funded else 1,\n        sender=sender,\n        to=bob,\n        value=10,\n        gas_limit=1_000_000,\n        gas_price=0xA,\n        authorization_list=[\n            AuthorizationTuple(\n                address=abyss,\n                nonce=3 if self_funded else 1,\n                signer=alice,\n            )\n        ],\n    )\n\n    account_expectations = {\n        alice: BalAccountExpectation(\n            nonce_changes=[\n                BalNonceChange(tx_index=1, post_nonce=2 if self_funded else 1),\n                BalNonceChange(tx_index=2, post_nonce=4 if self_funded else 2),\n            ],\n            code_changes=[\n                BalCodeChange(tx_index=1, new_code=Spec7702.delegation_designation(oracle)),\n                BalCodeChange(tx_index=2, new_code=\"\"),\n            ],\n        ),\n        bob: BalAccountExpectation(\n            balance_changes=[\n                BalBalanceChange(tx_index=1, post_balance=10),\n                BalBalanceChange(tx_index=2, post_balance=20),\n            ]\n        ),\n        # Both delegation targets must not be present in BAL\n        # the account is never accessed\n        oracle: None,\n        abyss: None,\n    }\n\n    # For sponsored variant, relayer must also be included in BAL\n    if not self_funded:\n        account_expectations[relayer] = BalAccountExpectation(\n            nonce_changes=[\n                BalNonceChange(tx_index=1, post_nonce=1),\n                BalNonceChange(tx_index=2, post_nonce=2),\n            ],\n        )\n\n    block = Block(\n        txs=[tx_create, tx_clear],\n        expected_block_access_list=BlockAccessListExpectation(\n            account_expectations=account_expectations\n        ),\n    )\n\n    post = {\n        # Finally Alice's account should NOT have any code\n        alice: Account(nonce=4 if self_funded else 2, code=\"\"),\n        # Bob receives 20 wei in total\n        bob: Account(balance=20),\n    }\n\n    # For sponsored variant, include relayer in post state\n    if not self_funded:\n        post.update({relayer: Account(nonce=2)})\n\n    blockchain_test(\n        pre=pre,\n        blocks=[block],\n        post=post,\n    )\n\n\ndef test_bal_7702_delegated_storage_access(\n    pre: Alloc,\n    blockchain_test: BlockchainTestFiller,\n) -> None:\n    \"\"\"\n    Ensure BAL captures storage operations when calling a delegated\n    EIP-7702 account.\n    \"\"\"\n    # Oracle contract that reads from slot 0x01 and writes to slot 0x02\n    oracle = pre.deploy_contract(code=Op.SLOAD(0x01) + Op.PUSH1(0x42) + Op.PUSH1(0x02) + Op.SSTORE)\n    bob = pre.fund_eoa()\n\n    alice = pre.deploy_contract(nonce=0x1, code=Spec7702.delegation_designation(oracle), balance=0)\n\n    tx = Transaction(\n        sender=bob,\n        to=alice,  # Bob calls Alice (delegated account)\n        value=10,\n        gas_limit=1_000_000,\n        gas_price=0xA,\n    )\n\n    block = Block(\n        txs=[tx],\n        expected_block_access_list=BlockAccessListExpectation(\n            account_expectations={\n                alice: BalAccountExpectation(\n                    balance_changes=[BalBalanceChange(tx_index=1, post_balance=10)],\n                    storage_changes=[\n                        BalStorageSlot(\n                            slot=0x02,\n                            slot_changes=[BalStorageChange(tx_index=1, post_value=0x42)],\n                        )\n                    ],\n                    storage_reads=[0x01],\n                ),\n                bob: BalAccountExpectation(\n                    nonce_changes=[BalNonceChange(tx_index=1, post_nonce=1)],\n                ),\n                # Oracle appears in BAL due to account access\n                # (delegation target)\n                oracle: BalAccountExpectation.empty(),\n            }\n        ),\n    )\n\n    post = {\n        alice: Account(\n            balance=10,\n            storage={0x02: 0x42},\n        ),\n        bob: Account(nonce=1),\n    }\n\n    blockchain_test(\n        pre=pre,\n        blocks=[block],\n        post=post,\n    )\n\n\ndef test_bal_7702_invalid_nonce_authorization(\n    pre: Alloc,\n    blockchain_test: BlockchainTestFiller,\n) -> None:\n    \"\"\"Ensure BAL handles failed authorization due to wrong nonce.\"\"\"\n    alice = pre.fund_eoa()\n    bob = pre.fund_eoa(amount=0)\n    relayer = pre.fund_eoa()\n    oracle = pre.deploy_contract(code=Op.STOP)\n\n    tx = Transaction(\n        sender=relayer,  # Sponsored transaction\n        to=bob,\n        value=10,\n        gas_limit=1_000_000,\n        gas_price=0xA,\n        authorization_list=[\n            AuthorizationTuple(\n                address=oracle,\n                nonce=5,  # Wrong nonce - Alice's actual nonce is 0\n                signer=alice,\n            )\n        ],\n    )\n\n    block = Block(\n        txs=[tx],\n        expected_block_access_list=BlockAccessListExpectation(\n            account_expectations={\n                # Ensuring silent fail\n                bob: BalAccountExpectation(\n                    balance_changes=[BalBalanceChange(tx_index=1, post_balance=10)]\n                ),\n                relayer: BalAccountExpectation(\n                    nonce_changes=[BalNonceChange(tx_index=1, post_nonce=1)],\n                ),\n                # Alice's account was marked warm but no changes were made\n                alice: BalAccountExpectation.empty(),\n                # Oracle must NOT be present - authorization failed so\n                # account is never accessed\n                oracle: None,\n            }\n        ),\n    )\n\n    post = {\n        relayer: Account(nonce=1),\n        bob: Account(balance=10),\n    }\n\n    blockchain_test(\n        pre=pre,\n        blocks=[block],\n        post=post,\n    )\n\n\ndef test_bal_7702_invalid_chain_id_authorization(\n    pre: Alloc,\n    blockchain_test: BlockchainTestFiller,\n) -> None:\n    \"\"\"Ensure BAL handles failed authorization due to wrong chain id.\"\"\"\n    alice = pre.fund_eoa()\n    bob = pre.fund_eoa(amount=0)\n    relayer = pre.fund_eoa()\n    oracle = pre.deploy_contract(code=Op.STOP)\n\n    tx = Transaction(\n        sender=relayer,  # Sponsored transaction\n        to=bob,\n        value=10,\n        gas_limit=1_000_000,\n        gas_price=0xA,\n        authorization_list=[\n            AuthorizationTuple(\n                chain_id=999,  # Wrong chain id\n                address=oracle,\n                nonce=0,\n                signer=alice,\n            )\n        ],\n    )\n\n    block = Block(\n        txs=[tx],\n        expected_block_access_list=BlockAccessListExpectation(\n            account_expectations={\n                # Alice's account must not be read because\n                # authorization fails before loading her account\n                alice: None,\n                # Ensuring silent fail\n                bob: BalAccountExpectation(\n                    balance_changes=[BalBalanceChange(tx_index=1, post_balance=10)]\n                ),\n                relayer: BalAccountExpectation(\n                    nonce_changes=[BalNonceChange(tx_index=1, post_nonce=1)],\n                ),\n                # Oracle must NOT be present - authorization failed so\n                # account never accessed\n                oracle: None,\n            }\n        ),\n    )\n\n    post = {\n        relayer: Account(nonce=1),\n        bob: Account(balance=10),\n    }\n\n    blockchain_test(\n        # Set chain id here\n        # so this test holds if the default is\n        # ever changed\n        chain_id=1,\n        pre=pre,\n        blocks=[block],\n        post=post,\n    )\n\n\n@pytest.mark.with_all_call_opcodes\ndef test_bal_7702_delegated_via_call_opcode(\n    pre: Alloc,\n    blockchain_test: BlockchainTestFiller,\n    call_opcode: Op,\n) -> None:\n    \"\"\"\n    Ensure BAL captures delegation target when a contract uses *CALL\n    opcodes to call a delegated account.\n    \"\"\"\n    # `oracle` contract that just returns successfully\n    oracle = pre.deploy_contract(code=Op.STOP)\n\n    # `alice` is a delegated account pointing to oracle\n    alice = pre.deploy_contract(\n        nonce=1,\n        code=Spec7702.delegation_designation(oracle),\n        balance=0,\n    )\n\n    # caller contract that uses `call_opcode` to call `alice`\n    caller = pre.deploy_contract(code=(call_opcode(address=alice) + Op.STOP))\n\n    bob = pre.fund_eoa()\n    tx = Transaction(\n        sender=bob,\n        to=caller,  # `bob` calls caller contract\n        gas_limit=10_000_000,\n        gas_price=0xA,\n    )\n\n    block = Block(\n        txs=[tx],\n        expected_block_access_list=BlockAccessListExpectation(\n            account_expectations={\n                bob: BalAccountExpectation(\n                    nonce_changes=[BalNonceChange(tx_index=1, post_nonce=1)],\n                ),\n                caller: BalAccountExpectation.empty(),\n                # `alice` is accessed due to being the call target\n                alice: BalAccountExpectation.empty(),\n                # `oracle` appears in BAL due to delegation target access\n                oracle: BalAccountExpectation.empty(),\n            }\n        ),\n    )\n\n    post = {bob: Account(nonce=1)}\n    blockchain_test(\n        pre=pre,\n        blocks=[block],\n        post=post,\n    )\n"
  },
  {
    "path": "tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists_invalid.py",
    "content": "\"\"\"\nTest cases for invalid Block Access Lists.\n\nThese tests verify that clients properly reject blocks with corrupted BALs.\n\"\"\"\n\nimport pytest\n\nfrom ethereum_test_exceptions import BlockException\nfrom ethereum_test_tools import (\n    Account,\n    Alloc,\n    Block,\n    BlockchainTestFiller,\n    Storage,\n    Transaction,\n)\nfrom ethereum_test_tools import (\n    Opcodes as Op,\n)\nfrom ethereum_test_types.block_access_list import (\n    BalAccountChange,\n    BalAccountExpectation,\n    BalBalanceChange,\n    BalNonceChange,\n    BalStorageChange,\n    BalStorageSlot,\n    BlockAccessListExpectation,\n)\nfrom ethereum_test_types.block_access_list.modifiers import (\n    append_account,\n    duplicate_account,\n    modify_balance,\n    modify_nonce,\n    modify_storage,\n    remove_accounts,\n    remove_balances,\n    remove_nonces,\n    reverse_accounts,\n    swap_tx_indices,\n)\n\nfrom .spec import ref_spec_7928\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_7928.git_path\nREFERENCE_SPEC_VERSION = ref_spec_7928.version\n\n\n@pytest.mark.valid_from(\"Amsterdam\")\n@pytest.mark.exception_test\ndef test_bal_invalid_missing_nonce(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    Test that clients reject blocks where BAL is missing required nonce\n    changes.\n    \"\"\"\n    sender = pre.fund_eoa(amount=10**18)\n    receiver = pre.fund_eoa(amount=0)\n\n    tx = Transaction(\n        sender=sender,\n        to=receiver,\n        value=10**15,\n        gas_limit=21_000,\n    )\n\n    blockchain_test(\n        pre=pre,\n        post={\n            sender: Account(balance=10**18, nonce=0),\n            receiver: None,\n        },\n        blocks=[\n            Block(\n                txs=[tx],\n                exception=BlockException.INVALID_BLOCK_ACCESS_LIST,\n                expected_block_access_list=BlockAccessListExpectation(\n                    account_expectations={\n                        sender: BalAccountExpectation(\n                            nonce_changes=[BalNonceChange(tx_index=1, post_nonce=1)],\n                        ),\n                    }\n                ).modify(remove_nonces(sender)),\n            )\n        ],\n    )\n\n\n@pytest.mark.valid_from(\"Amsterdam\")\n@pytest.mark.exception_test\ndef test_bal_invalid_nonce_value(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    Test that clients reject blocks where BAL contains incorrect nonce value.\n    \"\"\"\n    sender = pre.fund_eoa(amount=10**18)\n    receiver = pre.fund_eoa(amount=0)\n\n    tx = Transaction(\n        sender=sender,\n        to=receiver,\n        value=10**15,\n        gas_limit=21_000,\n    )\n\n    blockchain_test(\n        pre=pre,\n        post={\n            sender: Account(balance=10**18, nonce=0),  # Unchanged\n            receiver: None,\n        },\n        blocks=[\n            Block(\n                txs=[tx],\n                exception=BlockException.INVALID_BLOCK_ACCESS_LIST,\n                expected_block_access_list=BlockAccessListExpectation(\n                    account_expectations={\n                        sender: BalAccountExpectation(\n                            nonce_changes=[BalNonceChange(tx_index=1, post_nonce=1)],\n                        ),\n                    }\n                ).modify(modify_nonce(sender, tx_index=1, nonce=42)),\n            )\n        ],\n    )\n\n\n@pytest.mark.valid_from(\"Amsterdam\")\n@pytest.mark.exception_test\ndef test_bal_invalid_storage_value(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    Test that clients reject blocks where BAL contains incorrect storage\n    values.\n    \"\"\"\n    sender = pre.fund_eoa(amount=10**18)\n\n    # Simple storage contract with canary values\n    storage = Storage({1: 0, 2: 0, 3: 0})  # type: ignore\n    contract = pre.deploy_contract(\n        code=Op.SSTORE(1, 1) + Op.SSTORE(2, 2) + Op.SSTORE(3, 3),\n        storage=storage.canary(),\n    )\n\n    tx = Transaction(\n        sender=sender,\n        to=contract,\n        gas_limit=100_000,\n    )\n\n    blockchain_test(\n        pre=pre,\n        post={\n            sender: Account(balance=10**18, nonce=0),\n            contract: Account(storage=storage.canary()),\n        },\n        blocks=[\n            Block(\n                txs=[tx],\n                exception=BlockException.INVALID_BLOCK_ACCESS_LIST,\n                expected_block_access_list=BlockAccessListExpectation(\n                    account_expectations={\n                        contract: BalAccountExpectation(\n                            storage_changes=[\n                                BalStorageSlot(\n                                    slot=0x01,\n                                    slot_changes=[BalStorageChange(tx_index=1, post_value=0x01)],\n                                ),\n                                BalStorageSlot(\n                                    slot=0x02,\n                                    slot_changes=[BalStorageChange(tx_index=1, post_value=0x02)],\n                                ),\n                                BalStorageSlot(\n                                    slot=0x03,\n                                    slot_changes=[BalStorageChange(tx_index=1, post_value=0x03)],\n                                ),\n                            ],\n                        ),\n                    }\n                ).modify(\n                    # Corrupt storage value for slot 0x02\n                    modify_storage(contract, tx_index=1, slot=0x02, value=0xFF)\n                ),\n            )\n        ],\n    )\n\n\n@pytest.mark.valid_from(\"Amsterdam\")\n@pytest.mark.exception_test\ndef test_bal_invalid_tx_order(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    Test that clients reject blocks where BAL has incorrect transaction\n    ordering.\n    \"\"\"\n    sender1 = pre.fund_eoa(amount=10**18)\n    sender2 = pre.fund_eoa(amount=10**18)\n    receiver = pre.fund_eoa(amount=0)\n\n    tx1 = Transaction(\n        sender=sender1,\n        to=receiver,\n        value=10**15,\n        gas_limit=21_000,\n    )\n\n    tx2 = Transaction(\n        sender=sender2,\n        to=receiver,\n        value=2 * 10**15,\n        gas_limit=21_000,\n    )\n\n    blockchain_test(\n        pre=pre,\n        post={\n            sender1: Account(balance=10**18, nonce=0),\n            sender2: Account(balance=10**18, nonce=0),\n            receiver: None,\n        },\n        blocks=[\n            Block(\n                txs=[tx1, tx2],\n                exception=BlockException.INVALID_BLOCK_ACCESS_LIST,\n                expected_block_access_list=BlockAccessListExpectation(\n                    account_expectations={\n                        sender1: BalAccountExpectation(\n                            nonce_changes=[BalNonceChange(tx_index=1, post_nonce=1)],\n                        ),\n                        sender2: BalAccountExpectation(\n                            nonce_changes=[BalNonceChange(tx_index=2, post_nonce=1)],\n                        ),\n                        receiver: BalAccountExpectation(\n                            balance_changes=[\n                                BalBalanceChange(tx_index=1, post_balance=10**15),\n                                BalBalanceChange(tx_index=2, post_balance=3 * 10**15),\n                            ],\n                        ),\n                    }\n                ).modify(swap_tx_indices(1, 2)),\n            )\n        ],\n    )\n\n\n@pytest.mark.valid_from(\"Amsterdam\")\n@pytest.mark.exception_test\ndef test_bal_invalid_account(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    Test that clients reject blocks where BAL contains accounts that don't\n    exist.\n    \"\"\"\n    sender = pre.fund_eoa(amount=10**18)\n    receiver = pre.fund_eoa(amount=0)\n    phantom = pre.fund_eoa(amount=0)\n\n    tx = Transaction(\n        sender=sender,\n        to=receiver,\n        value=10**15,\n        gas_limit=21_000,\n    )\n\n    blockchain_test(\n        pre=pre,\n        post={\n            sender: Account(balance=10**18, nonce=0),\n            receiver: None,\n            phantom: None,\n        },\n        blocks=[\n            Block(\n                txs=[tx],\n                exception=BlockException.INVALID_BAL_EXTRA_ACCOUNT,\n                expected_block_access_list=BlockAccessListExpectation(\n                    account_expectations={\n                        sender: BalAccountExpectation(\n                            nonce_changes=[BalNonceChange(tx_index=1, post_nonce=1)],\n                        ),\n                    }\n                ).modify(\n                    append_account(\n                        BalAccountChange(\n                            address=phantom,\n                            nonce_changes=[BalNonceChange(tx_index=1, post_nonce=1)],\n                        )\n                    )\n                ),\n            )\n        ],\n    )\n\n\n@pytest.mark.valid_from(\"Amsterdam\")\n@pytest.mark.exception_test\ndef test_bal_invalid_duplicate_account(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    Test that clients reject blocks where BAL contains duplicate account\n    entries.\n    \"\"\"\n    sender = pre.fund_eoa(amount=10**18)\n    receiver = pre.fund_eoa(amount=0)\n\n    tx = Transaction(\n        sender=sender,\n        to=receiver,\n        value=10**15,\n        gas_limit=21_000,\n    )\n\n    blockchain_test(\n        pre=pre,\n        post={\n            sender: Account(balance=10**18, nonce=0),\n            receiver: None,\n        },\n        blocks=[\n            Block(\n                txs=[tx],\n                exception=BlockException.INCORRECT_BLOCK_FORMAT,\n                expected_block_access_list=BlockAccessListExpectation(\n                    account_expectations={\n                        sender: BalAccountExpectation(\n                            nonce_changes=[BalNonceChange(tx_index=1, post_nonce=1)],\n                        ),\n                        receiver: BalAccountExpectation(\n                            balance_changes=[BalBalanceChange(tx_index=1, post_balance=10**15)],\n                        ),\n                    }\n                ).modify(duplicate_account(sender)),\n            )\n        ],\n    )\n\n\n@pytest.mark.valid_from(\"Amsterdam\")\n@pytest.mark.exception_test\ndef test_bal_invalid_account_order(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    Test that clients reject blocks where BAL has incorrect account ordering.\n    \"\"\"\n    sender = pre.fund_eoa(amount=10**18)\n    receiver = pre.fund_eoa(amount=0)\n\n    tx = Transaction(\n        sender=sender,\n        to=receiver,\n        value=10**15,\n        gas_limit=21_000,\n    )\n\n    blockchain_test(\n        pre=pre,\n        post={\n            sender: Account(balance=10**18, nonce=0),\n            receiver: None,\n        },\n        blocks=[\n            Block(\n                txs=[tx],\n                exception=BlockException.INCORRECT_BLOCK_FORMAT,\n                expected_block_access_list=BlockAccessListExpectation(\n                    account_expectations={\n                        sender: BalAccountExpectation(\n                            nonce_changes=[BalNonceChange(tx_index=1, post_nonce=1)],\n                        ),\n                        receiver: BalAccountExpectation(\n                            balance_changes=[BalBalanceChange(tx_index=1, post_balance=10**15)],\n                        ),\n                    }\n                ).modify(reverse_accounts()),\n            )\n        ],\n    )\n\n\n@pytest.mark.valid_from(\"Amsterdam\")\n@pytest.mark.exception_test\ndef test_bal_invalid_complex_corruption(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"Test complex BAL corruption with multiple transformations.\"\"\"\n    sender = pre.fund_eoa(amount=10**18)\n    receiver = pre.fund_eoa(amount=0)\n\n    storage = Storage({1: 0, 2: 0})  # type: ignore\n    contract = pre.deploy_contract(\n        code=Op.SSTORE(1, 1) + Op.SSTORE(2, 2),\n        storage=storage.canary(),\n    )\n\n    tx1 = Transaction(\n        sender=sender,\n        to=contract,\n        gas_limit=100_000,\n    )\n\n    tx2 = Transaction(\n        sender=sender,\n        to=receiver,\n        value=10**15,\n        gas_limit=21_000,\n    )\n\n    blockchain_test(\n        pre=pre,\n        post={\n            sender: Account(balance=10**18, nonce=0),\n            contract: Account(storage=storage.canary()),\n            receiver: None,\n        },\n        blocks=[\n            Block(\n                txs=[tx1, tx2],\n                exception=BlockException.INVALID_BLOCK_ACCESS_LIST,\n                expected_block_access_list=BlockAccessListExpectation(\n                    account_expectations={\n                        sender: BalAccountExpectation(\n                            nonce_changes=[\n                                BalNonceChange(tx_index=1, post_nonce=1),\n                                BalNonceChange(tx_index=2, post_nonce=2),\n                            ],\n                        ),\n                        contract: BalAccountExpectation(\n                            storage_changes=[\n                                BalStorageSlot(\n                                    slot=0x01,\n                                    slot_changes=[BalStorageChange(tx_index=1, post_value=0x01)],\n                                ),\n                                BalStorageSlot(\n                                    slot=0x02,\n                                    slot_changes=[BalStorageChange(tx_index=1, post_value=0x02)],\n                                ),\n                            ],\n                        ),\n                        receiver: BalAccountExpectation(\n                            balance_changes=[BalBalanceChange(tx_index=2, post_balance=10**15)],\n                        ),\n                    }\n                ).modify(\n                    remove_nonces(sender),\n                    modify_storage(contract, tx_index=1, slot=0x01, value=0xFF),\n                    remove_balances(receiver),\n                    swap_tx_indices(1, 2),\n                ),\n            )\n        ],\n    )\n\n\n@pytest.mark.valid_from(\"Amsterdam\")\n@pytest.mark.exception_test\ndef test_bal_invalid_missing_account(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    Test that clients reject blocks where BAL is missing an entire account.\n    \"\"\"\n    sender = pre.fund_eoa(amount=10**18)\n    receiver = pre.fund_eoa(amount=0)\n\n    tx = Transaction(\n        sender=sender,\n        to=receiver,\n        value=10**15,\n        gas_limit=21_000,\n    )\n\n    blockchain_test(\n        pre=pre,\n        post={\n            sender: Account(balance=10**18, nonce=0),\n            receiver: None,\n        },\n        blocks=[\n            Block(\n                txs=[tx],\n                exception=BlockException.INVALID_BAL_MISSING_ACCOUNT,\n                expected_block_access_list=BlockAccessListExpectation(\n                    account_expectations={\n                        sender: BalAccountExpectation(\n                            nonce_changes=[BalNonceChange(tx_index=1, post_nonce=1)],\n                        ),\n                        receiver: BalAccountExpectation(\n                            balance_changes=[BalBalanceChange(tx_index=1, post_balance=10**15)],\n                        ),\n                    }\n                ).modify(remove_accounts(receiver)),\n            )\n        ],\n    )\n\n\n@pytest.mark.valid_from(\"Amsterdam\")\n@pytest.mark.exception_test\ndef test_bal_invalid_balance_value(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    Test that clients reject blocks where BAL contains incorrect balance value.\n    \"\"\"\n    sender = pre.fund_eoa(amount=10**18)\n    receiver = pre.fund_eoa(amount=0)\n\n    tx = Transaction(\n        sender=sender,\n        to=receiver,\n        value=10**15,\n        gas_limit=21_000,\n    )\n\n    blockchain_test(\n        pre=pre,\n        post={\n            sender: Account(balance=10**18, nonce=0),\n            receiver: None,\n        },\n        blocks=[\n            Block(\n                txs=[tx],\n                exception=BlockException.INVALID_BLOCK_ACCESS_LIST,\n                expected_block_access_list=BlockAccessListExpectation(\n                    account_expectations={\n                        receiver: BalAccountExpectation(\n                            balance_changes=[BalBalanceChange(tx_index=1, post_balance=10**15)],\n                        ),\n                    }\n                ).modify(modify_balance(receiver, tx_index=1, balance=999999)),\n            )\n        ],\n    )\n"
  },
  {
    "path": "tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists_opcodes.py",
    "content": "\"\"\"\nTests for EIP-7928 Block Access Lists with single-opcode success and OOG\nscenarios.\n\nBlock access lists (BAL) are generated via a client's state tracing journal.\nResidual journal entries may persist when opcodes run out of gas, resulting\nin a bloated BAL payload.\n\nIssues identified in:\nhttps://github.com/paradigmxyz/reth/issues/17765\nhttps://github.com/bluealloy/revm/pull/2903\n\nThese tests ensure out-of-gas operations are not recorded in BAL,\npreventing consensus issues.\n\"\"\"\n\nfrom enum import Enum\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    Account,\n    Alloc,\n    Block,\n    BlockchainTestFiller,\n    Transaction,\n)\nfrom ethereum_test_tools import (\n    Opcodes as Op,\n)\nfrom ethereum_test_types.block_access_list import (\n    BalAccountExpectation,\n    BalStorageChange,\n    BalStorageSlot,\n    BlockAccessListExpectation,\n)\nfrom ethereum_test_vm import Bytecode\n\nfrom .spec import ref_spec_7928\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_7928.git_path\nREFERENCE_SPEC_VERSION = ref_spec_7928.version\n\n\npytestmark = pytest.mark.valid_from(\"Amsterdam\")\n\n\nclass OutOfGasAt(Enum):\n    \"\"\"\n    Enumeration of specific gas boundaries where OOG can occur.\n    \"\"\"\n\n    EIP_2200_STIPEND = \"oog_at_eip2200_stipend\"\n    EIP_2200_STIPEND_PLUS_1 = \"oog_at_eip2200_stipend_plus_1\"\n    EXACT_GAS_MINUS_1 = \"oog_at_exact_gas_minus_1\"\n\n\n@pytest.mark.parametrize(\n    \"out_of_gas_at\",\n    [\n        OutOfGasAt.EIP_2200_STIPEND,\n        OutOfGasAt.EIP_2200_STIPEND_PLUS_1,\n        OutOfGasAt.EXACT_GAS_MINUS_1,\n        None,  # no oog, successful sstore\n    ],\n    ids=lambda x: x.value if x else \"successful_sstore\",\n)\ndef test_bal_sstore_and_oog(\n    pre: Alloc,\n    blockchain_test: BlockchainTestFiller,\n    fork: Fork,\n    out_of_gas_at: OutOfGasAt | None,\n) -> None:\n    \"\"\"\n    Test BAL recording with SSTORE at various OOG boundaries and success.\n\n    1. OOG at EIP-2200 stipend check & implicit SLOAD -> no BAL changes\n    2. OOG post EIP-2200 stipend check & implicit SLOAD -> storage read in BAL\n    3. OOG at exact gas minus 1 -> storage read in BAL\n    4. exact gas (success) -> storage write in BAL\n    \"\"\"\n    alice = pre.fund_eoa()\n    gas_costs = fork.gas_costs()\n\n    # Create contract that attempts SSTORE to cold storage slot 0x01\n    storage_contract_code = Bytecode(Op.SSTORE(0x01, 0x42))\n\n    storage_contract = pre.deploy_contract(code=storage_contract_code)\n\n    intrinsic_gas_calculator = fork.transaction_intrinsic_cost_calculator()\n    intrinsic_gas_cost = intrinsic_gas_calculator()\n\n    # Costs:\n    # - PUSH1 (value and slot) = G_VERY_LOW * 2\n    # - SSTORE cold (to zero slot) = G_STORAGE_SET + G_COLD_SLOAD\n    sload_cost = gas_costs.G_COLD_SLOAD\n    sstore_cost = gas_costs.G_STORAGE_SET\n    sstore_cold_cost = sstore_cost + sload_cost\n    push_cost = gas_costs.G_VERY_LOW * 2\n    stipend = gas_costs.G_CALL_STIPEND\n\n    if out_of_gas_at == OutOfGasAt.EIP_2200_STIPEND:\n        # 2300 after PUSHes (fails stipend check: 2300 <= 2300)\n        tx_gas_limit = intrinsic_gas_cost + push_cost + stipend\n    elif out_of_gas_at == OutOfGasAt.EIP_2200_STIPEND_PLUS_1:\n        # 2301 after PUSHes (passes stipend, does SLOAD, fails charge_gas)\n        tx_gas_limit = intrinsic_gas_cost + push_cost + stipend + 1\n    elif out_of_gas_at == OutOfGasAt.EXACT_GAS_MINUS_1:\n        # fail at charge_gas() at exact gas - 1 (boundary condition)\n        tx_gas_limit = intrinsic_gas_cost + push_cost + sstore_cold_cost - 1\n    else:\n        # exact gas for successful SSTORE\n        tx_gas_limit = intrinsic_gas_cost + push_cost + sstore_cold_cost\n\n    tx = Transaction(\n        sender=alice,\n        to=storage_contract,\n        gas_limit=tx_gas_limit,\n    )\n\n    # Storage read recorded only if we pass the stipend check and reach\n    # implicit SLOAD (STIPEND_PLUS_1 and EXACT_GAS_MINUS_1)\n    expect_storage_read = out_of_gas_at in (\n        OutOfGasAt.EIP_2200_STIPEND_PLUS_1,\n        OutOfGasAt.EXACT_GAS_MINUS_1,\n    )\n    expect_storage_write = out_of_gas_at is None\n\n    block = Block(\n        txs=[tx],\n        expected_block_access_list=BlockAccessListExpectation(\n            account_expectations={\n                storage_contract: BalAccountExpectation(\n                    storage_changes=[\n                        BalStorageSlot(\n                            slot=0x01,\n                            slot_changes=[BalStorageChange(tx_index=1, post_value=0x42)],\n                        ),\n                    ]\n                    if expect_storage_write\n                    else [],\n                    storage_reads=[0x01] if expect_storage_read else [],\n                )\n            }\n        ),\n    )\n\n    blockchain_test(\n        pre=pre,\n        blocks=[block],\n        post={\n            alice: Account(nonce=1),\n            storage_contract: Account(storage={0x01: 0x42} if expect_storage_write else {}),\n        },\n    )\n\n\n@pytest.mark.parametrize(\n    \"fails_at_sload\",\n    [True, False],\n    ids=[\"oog_at_sload\", \"successful_sload\"],\n)\ndef test_bal_sload_and_oog(\n    pre: Alloc,\n    blockchain_test: BlockchainTestFiller,\n    fork: Fork,\n    fails_at_sload: bool,\n) -> None:\n    \"\"\"\n    Ensure BAL handles SLOAD and OOG during SLOAD appropriately.\n    \"\"\"\n    alice = pre.fund_eoa()\n    gas_costs = fork.gas_costs()\n\n    # Create contract that attempts SLOAD from cold storage slot 0x01\n    storage_contract_code = Bytecode(\n        Op.PUSH1(0x01)  # Storage slot (cold)\n        + Op.SLOAD  # Load value from slot - this will OOG\n        + Op.STOP\n    )\n\n    storage_contract = pre.deploy_contract(code=storage_contract_code)\n\n    intrinsic_gas_calculator = fork.transaction_intrinsic_cost_calculator()\n    intrinsic_gas_cost = intrinsic_gas_calculator()\n\n    # Costs:\n    # - PUSH1 (slot) = G_VERY_LOW\n    # - SLOAD cold = G_COLD_SLOAD\n    push_cost = gas_costs.G_VERY_LOW\n    sload_cold_cost = gas_costs.G_COLD_SLOAD\n    tx_gas_limit = intrinsic_gas_cost + push_cost + sload_cold_cost\n\n    if fails_at_sload:\n        # subtract 1 gas to ensure OOG at SLOAD\n        tx_gas_limit -= 1\n\n    tx = Transaction(\n        sender=alice,\n        to=storage_contract,\n        gas_limit=tx_gas_limit,\n    )\n\n    block = Block(\n        txs=[tx],\n        expected_block_access_list=BlockAccessListExpectation(\n            account_expectations={\n                storage_contract: BalAccountExpectation(\n                    storage_reads=[] if fails_at_sload else [0x01],\n                )\n            }\n        ),\n    )\n\n    blockchain_test(\n        pre=pre,\n        blocks=[block],\n        post={\n            alice: Account(nonce=1),\n            storage_contract: Account(storage={}),\n        },\n    )\n\n\n@pytest.mark.parametrize(\n    \"fails_at_balance\", [True, False], ids=[\"oog_at_balance\", \"successful_balance\"]\n)\ndef test_bal_balance_and_oog(\n    pre: Alloc,\n    blockchain_test: BlockchainTestFiller,\n    fork: Fork,\n    fails_at_balance: bool,\n) -> None:\n    \"\"\"Ensure BAL handles BALANCE and OOG during BALANCE appropriately.\"\"\"\n    alice = pre.fund_eoa()\n    bob = pre.fund_eoa()\n    gas_costs = fork.gas_costs()\n\n    # Create contract that attempts to check Bob's balance\n    balance_checker_code = Bytecode(\n        Op.PUSH20(bob)  # Bob's address\n        + Op.BALANCE  # Check balance (cold access)\n        + Op.STOP\n    )\n\n    balance_checker = pre.deploy_contract(code=balance_checker_code)\n\n    intrinsic_gas_calculator = fork.transaction_intrinsic_cost_calculator()\n    intrinsic_gas_cost = intrinsic_gas_calculator()\n\n    # Costs:\n    # - PUSH20 = G_VERY_LOW\n    # - BALANCE cold = G_COLD_ACCOUNT_ACCESS\n    push_cost = gas_costs.G_VERY_LOW\n    balance_cold_cost = gas_costs.G_COLD_ACCOUNT_ACCESS\n    tx_gas_limit = intrinsic_gas_cost + push_cost + balance_cold_cost\n\n    if fails_at_balance:\n        # subtract 1 gas to ensure OOG at BALANCE\n        tx_gas_limit -= 1\n\n    tx = Transaction(\n        sender=alice,\n        to=balance_checker,\n        gas_limit=tx_gas_limit,\n    )\n\n    block = Block(\n        txs=[tx],\n        expected_block_access_list=BlockAccessListExpectation(\n            account_expectations={\n                balance_checker: BalAccountExpectation.empty(),\n                # Bob should only appear in BAL if BALANCE succeeded\n                **({bob: None} if fails_at_balance else {bob: BalAccountExpectation.empty()}),\n            }\n        ),\n    )\n\n    blockchain_test(\n        pre=pre,\n        blocks=[block],\n        post={\n            alice: Account(nonce=1),\n            bob: Account(),\n            balance_checker: Account(),\n        },\n    )\n\n\n@pytest.mark.parametrize(\n    \"fails_at_extcodesize\", [True, False], ids=[\"oog_at_extcodesize\", \"successful_extcodesize\"]\n)\ndef test_bal_extcodesize_and_oog(\n    pre: Alloc,\n    blockchain_test: BlockchainTestFiller,\n    fork: Fork,\n    fails_at_extcodesize: bool,\n) -> None:\n    \"\"\"\n    Ensure BAL handles EXTCODESIZE and OOG during EXTCODESIZE appropriately.\n    \"\"\"\n    alice = pre.fund_eoa()\n    gas_costs = fork.gas_costs()\n\n    # Create target contract with some code\n    target_contract = pre.deploy_contract(code=Bytecode(Op.STOP))\n\n    # Create contract that checks target's code size\n    codesize_checker_code = Bytecode(\n        Op.PUSH20(target_contract)  # Target contract address\n        + Op.EXTCODESIZE  # Check code size (cold access)\n        + Op.STOP\n    )\n\n    codesize_checker = pre.deploy_contract(code=codesize_checker_code)\n\n    intrinsic_gas_calculator = fork.transaction_intrinsic_cost_calculator()\n    intrinsic_gas_cost = intrinsic_gas_calculator()\n\n    # Costs:\n    # - PUSH20 = G_VERY_LOW\n    # - EXTCODESIZE cold = G_COLD_ACCOUNT_ACCESS\n    push_cost = gas_costs.G_VERY_LOW\n    extcodesize_cold_cost = gas_costs.G_COLD_ACCOUNT_ACCESS\n    tx_gas_limit = intrinsic_gas_cost + push_cost + extcodesize_cold_cost\n\n    if fails_at_extcodesize:\n        # subtract 1 gas to ensure OOG at EXTCODESIZE\n        tx_gas_limit -= 1\n\n    tx = Transaction(\n        sender=alice,\n        to=codesize_checker,\n        gas_limit=tx_gas_limit,\n    )\n\n    block = Block(\n        txs=[tx],\n        expected_block_access_list=BlockAccessListExpectation(\n            account_expectations={\n                codesize_checker: BalAccountExpectation.empty(),\n                # Target should only appear if EXTCODESIZE succeeded\n                **(\n                    {target_contract: None}\n                    if fails_at_extcodesize\n                    else {target_contract: BalAccountExpectation.empty()}\n                ),\n            }\n        ),\n    )\n\n    blockchain_test(\n        pre=pre,\n        blocks=[block],\n        post={\n            alice: Account(nonce=1),\n            codesize_checker: Account(),\n            target_contract: Account(),\n        },\n    )\n\n\n@pytest.mark.parametrize(\"fails_at_call\", [True, False], ids=[\"oog_at_call\", \"successful_call\"])\ndef test_bal_call_and_oog(\n    pre: Alloc,\n    blockchain_test: BlockchainTestFiller,\n    fork: Fork,\n    fails_at_call: bool,\n) -> None:\n    \"\"\"Ensure BAL handles CALL and OOG during CALL appropriately.\"\"\"\n    alice = pre.fund_eoa()\n    bob = pre.fund_eoa()\n    gas_costs = fork.gas_costs()\n\n    # Create contract that attempts to call Bob\n    call_contract_code = Bytecode(\n        Op.PUSH1(0)  # retSize\n        + Op.PUSH1(0)  # retOffset\n        + Op.PUSH1(0)  # argsSize\n        + Op.PUSH1(0)  # argsOffset\n        + Op.PUSH1(0)  # value\n        + Op.PUSH20(bob)  # address\n        + Op.PUSH2(0xFFFF)  # gas (provide enough for the call)\n        + Op.CALL  # Call (cold account access)\n        + Op.STOP\n    )\n\n    call_contract = pre.deploy_contract(code=call_contract_code)\n\n    intrinsic_gas_calculator = fork.transaction_intrinsic_cost_calculator()\n    intrinsic_gas_cost = intrinsic_gas_calculator()\n\n    # Costs:\n    # - 7 PUSH operations = G_VERY_LOW * 7\n    # - CALL cold = G_COLD_ACCOUNT_ACCESS (minimum for account access)\n    push_cost = gas_costs.G_VERY_LOW * 7\n    call_cold_cost = gas_costs.G_COLD_ACCOUNT_ACCESS\n    tx_gas_limit = intrinsic_gas_cost + push_cost + call_cold_cost\n\n    if fails_at_call:\n        # subtract 1 gas to ensure OOG at CALL\n        tx_gas_limit -= 1\n\n    tx = Transaction(\n        sender=alice,\n        to=call_contract,\n        gas_limit=tx_gas_limit,\n    )\n\n    block = Block(\n        txs=[tx],\n        expected_block_access_list=BlockAccessListExpectation(\n            account_expectations={\n                call_contract: BalAccountExpectation.empty(),\n                # Bob should only appear if CALL succeeded\n                **({bob: None} if fails_at_call else {bob: BalAccountExpectation.empty()}),\n            }\n        ),\n    )\n\n    blockchain_test(\n        pre=pre,\n        blocks=[block],\n        post={\n            alice: Account(nonce=1),\n            call_contract: Account(),\n        },\n    )\n\n\n@pytest.mark.parametrize(\n    \"fails_at_delegatecall\", [True, False], ids=[\"oog_at_delegatecall\", \"successful_delegatecall\"]\n)\ndef test_bal_delegatecall_and_oog(\n    pre: Alloc,\n    blockchain_test: BlockchainTestFiller,\n    fork: Fork,\n    fails_at_delegatecall: bool,\n) -> None:\n    \"\"\"\n    Ensure BAL handles DELEGATECALL and OOG during DELEGATECALL\n    appropriately.\n    \"\"\"\n    alice = pre.fund_eoa()\n    gas_costs = fork.gas_costs()\n\n    # Create target contract\n    target_contract = pre.deploy_contract(code=Bytecode(Op.STOP))\n\n    # Create contract that attempts delegatecall to target\n    delegatecall_contract_code = Bytecode(\n        Op.PUSH1(0)  # retSize\n        + Op.PUSH1(0)  # retOffset\n        + Op.PUSH1(0)  # argsSize\n        + Op.PUSH1(0)  # argsOffset\n        + Op.PUSH20(target_contract)  # address\n        + Op.PUSH2(0xFFFF)  # gas (provide enough for the call)\n        + Op.DELEGATECALL  # Delegatecall (cold account access)\n        + Op.STOP\n    )\n\n    delegatecall_contract = pre.deploy_contract(code=delegatecall_contract_code)\n\n    intrinsic_gas_calculator = fork.transaction_intrinsic_cost_calculator()\n    intrinsic_gas_cost = intrinsic_gas_calculator()\n\n    # Costs:\n    # - 6 PUSH operations = G_VERY_LOW * 6\n    # - DELEGATECALL cold = G_COLD_ACCOUNT_ACCESS\n    push_cost = gas_costs.G_VERY_LOW * 6\n    delegatecall_cold_cost = gas_costs.G_COLD_ACCOUNT_ACCESS\n    tx_gas_limit = intrinsic_gas_cost + push_cost + delegatecall_cold_cost\n\n    if fails_at_delegatecall:\n        # subtract 1 gas to ensure OOG at DELEGATECALL\n        tx_gas_limit -= 1\n\n    tx = Transaction(\n        sender=alice,\n        to=delegatecall_contract,\n        gas_limit=tx_gas_limit,\n    )\n\n    block = Block(\n        txs=[tx],\n        expected_block_access_list=BlockAccessListExpectation(\n            account_expectations={\n                delegatecall_contract: BalAccountExpectation.empty(),\n                # Target should only appear if DELEGATECALL succeeded\n                **(\n                    {target_contract: None}\n                    if fails_at_delegatecall\n                    else {target_contract: BalAccountExpectation.empty()}\n                ),\n            }\n        ),\n    )\n\n    blockchain_test(\n        pre=pre,\n        blocks=[block],\n        post={\n            alice: Account(nonce=1),\n            delegatecall_contract: Account(),\n            target_contract: Account(),\n        },\n    )\n\n\n@pytest.mark.parametrize(\n    \"fails_at_extcodecopy\", [True, False], ids=[\"oog_at_extcodecopy\", \"successful_extcodecopy\"]\n)\ndef test_bal_extcodecopy_and_oog(\n    pre: Alloc,\n    blockchain_test: BlockchainTestFiller,\n    fork: Fork,\n    fails_at_extcodecopy: bool,\n) -> None:\n    \"\"\"\n    Ensure BAL handles EXTCODECOPY and OOG during EXTCODECOPY appropriately.\n    \"\"\"\n    alice = pre.fund_eoa()\n    gas_costs = fork.gas_costs()\n\n    # Create target contract with some code\n    target_contract = pre.deploy_contract(code=Bytecode(Op.PUSH1(0x42) + Op.STOP))\n\n    # Create contract that attempts to copy code from target\n    extcodecopy_contract_code = Bytecode(\n        Op.PUSH1(0)  # size - copy 0 bytes to minimize memory expansion cost\n        + Op.PUSH1(0)  # codeOffset\n        + Op.PUSH1(0)  # destOffset\n        + Op.PUSH20(target_contract)  # address\n        + Op.EXTCODECOPY  # Copy code (cold access + base cost)\n        + Op.STOP\n    )\n\n    extcodecopy_contract = pre.deploy_contract(code=extcodecopy_contract_code)\n\n    intrinsic_gas_calculator = fork.transaction_intrinsic_cost_calculator()\n    intrinsic_gas_cost = intrinsic_gas_calculator()\n\n    # Costs:\n    # - 4 PUSH operations = G_VERY_LOW * 4\n    # - EXTCODECOPY cold = G_COLD_ACCOUNT_ACCESS + (G_COPY * words)\n    #   where words = ceil32(size) // 32 = ceil32(0) // 32 = 0\n    push_cost = gas_costs.G_VERY_LOW * 4\n    extcodecopy_cold_cost = gas_costs.G_COLD_ACCOUNT_ACCESS  # + (G_COPY * 0) = 0\n    tx_gas_limit = intrinsic_gas_cost + push_cost + extcodecopy_cold_cost\n\n    if fails_at_extcodecopy:\n        # subtract 1 gas to ensure OOG at EXTCODECOPY\n        tx_gas_limit -= 1\n\n    tx = Transaction(\n        sender=alice,\n        to=extcodecopy_contract,\n        gas_limit=tx_gas_limit,\n    )\n\n    block = Block(\n        txs=[tx],\n        expected_block_access_list=BlockAccessListExpectation(\n            account_expectations={\n                extcodecopy_contract: BalAccountExpectation.empty(),\n                # Target should only appear if EXTCODECOPY succeeded\n                **(\n                    {target_contract: None}\n                    if fails_at_extcodecopy\n                    else {target_contract: BalAccountExpectation.empty()}\n                ),\n            }\n        ),\n    )\n\n    blockchain_test(\n        pre=pre,\n        blocks=[block],\n        post={\n            alice: Account(nonce=1),\n            extcodecopy_contract: Account(),\n            target_contract: Account(),\n        },\n    )\n"
  },
  {
    "path": "tests/amsterdam/eip7928_block_level_access_lists/test_cases.md",
    "content": "# EIP-7928 Block Access Lists (BAL) Test Cases\n\n| Function Name | Goal | Setup | Expectation | Status |\n|---------------|------|-------|-------------|--------|\n| `test_bal_nonce_changes` | Ensure BAL captures changes to nonce | Alice sends 100 wei to Bob | BAL MUST include changes to Alice's nonce. | ✅ Completed |\n| `test_bal_balance_changes` | Ensure BAL captures changes to balance | Alice sends 100 wei to Bob | BAL MUST include balance change for Alice, Bob, and Coinbase | ✅ Completed |\n| `test_bal_code_changes` | Ensure BAL captures changes to account code | Alice deploys factory contract that creates new contract | BAL MUST include code changes for newly deployed contract | ✅ Completed |\n| `test_bal_self_destruct` | Ensure BAL captures storage access and balance changes caused by `SELFDESTRUCT` | Parameterized test: Alice interacts with a contract (either existing or created same-tx) that reads from storage slot 0x01, writes to storage slot 0x02, then executes `SELFDESTRUCT` with Bob as recipient. Contract may be pre-funded with 10 wei | BAL MUST include Alice's nonce change (increment) and Bob's balance change (100 or 110 depending on pre-funding). For the self-destructing contract: storage_reads=[0x01], empty storage_changes=[], and if pre-funded, balance_changes with post_balance=0; if not pre-funded, no balance change recorded. MUST NOT have code_changes or nonce_changes entries | ✅ Completed |\n| `test_bal_account_access_target` | Ensure BAL captures target addresses of account access opcodes | Alice calls `Oracle` contract which uses account access opcodes (`BALANCE`, `EXTCODESIZE`, `EXTCODECOPY`, `EXTCODEHASH`, `CALL`, `CALLCODE`, `DELEGATECALL`, `STATICCALL`) on `TargetContract`. | BAL MUST include Alice, `Oracle`, and `TargetContract` with empty changes for `TargetContract` and nonce changes for Alice. | ✅ Completed |\n| `test_bal_call_with_value_transfer` | Ensure BAL captures balance changes from `CALL` opcode with value transfer | Alice calls `Oracle` contract (200 wei balance) which uses `CALL` opcode to transfer 100 wei to Bob (0 wei balance). | BAL MUST include Alice (nonce changes), Oracle (balance change to 100 wei), and Bob (balance change to 100 wei). | ✅ Completed |\n| `test_bal_callcode_with_value_transfer` | Ensure BAL captures balance changes from `CALLCODE` opcode with value transfer | Alice calls `Oracle` contract (200 wei balance) which uses `CALLCODE` opcode to execute `TargetContract`'s code with 100 wei value transfer to Bob (0 wei balance). | BAL MUST include Alice (nonce changes), `Oracle` (balance change to 100 wei), Bob (balance change to 100 wei), and `TargetContract` (empty changes). | ✅ Completed |\n| `test_bal_delegated_storage_writes` | Ensure BAL captures delegated storage writes via `DELEGATECALL` and `CALLCODE` | Alice calls `Oracle` contract which uses `DELEGATECALL`/`CALLCODE` to `TargetContract` that writes `0x42` to slot `0x01`. | BAL MUST include Alice (nonce changes), `Oracle` (storage changes for slot `0x01` = `0x42`), and `TargetContract` (empty changes). | ✅ Completed |\n| `test_bal_delegated_storage_reads` | Ensure BAL captures delegated storage reads via `DELEGATECALL` and `CALLCODE` | Alice calls `Oracle` contract (with slot `0x01` = `0x42`) which uses `DELEGATECALL`/`CALLCODE` to `TargetContract` that reads from slot `0x01`. | BAL MUST include Alice (nonce changes), `Oracle` (storage reads for slot `0x01`), and `TargetContract` (empty changes). | ✅ Completed |\n| `test_bal_block_rewards` | BAL tracks fee recipient balance changes from block rewards | Alice sends 100 wei to Bob with Charlie as fee recipient | BAL MUST include fee recipient Charlie with `balance_changes` reflecting transaction fees collected from the block. | ✅ Completed |\n| `test_bal_2930_account_listed_but_untouched` | Ensure BAL excludes listed but untouched account        | Alice sends a simple eth transfer tx to Bob with EIP-2930 access list including `Oracle` | BAL MUST NOT include any entry for `Oracle` because it wasn't accessed. | ✅ Completed |\n| `test_bal_2930_slot_listed_but_untouched` | Ensure BAL excludes listed but untouched storage slots        | Alice sends tx with EIP-2930 access list including `(PureCalculator, slot=0x01)`; PureCalculator executes pure arithmetic (adding two numbers) without touching slot `0x01` | BAL MUST NOT include any entry for PureCalculator's slot `0x01` because it doesn't access state | ✅ Completed |\n| `test_bal_2930_slot_listed_and_unlisted_writes`  | Ensure BAL includes storage writes regardless of access list presence | Alice sends tx with EIP-2930 access list including `(StorageWriter, slot=0x01)`; StorageWriter executes `SSTORE` to slots `0x01` and `0x02` | BAL MUST include `storage_changes` for StorageWriter's slots `0x01` and `0x02` | ✅ Completed |\n| `test_bal_2930_slot_listed_and_unlisted_reads` | Ensure BAL includes storage reads regardless of access list presence | Alice sends tx with EIP-2930 access list including `(StorageReader, slot=0x01)`; StorageReader executes `SLOAD` from slots `0x01` and `0x02` | BAL MUST include `storage_reads` for StorageReader's slots `0x01` and `0x02` | ✅ Completed |\n| `test_bal_self_transfer`                         | BAL handles self-transfers correctly                                        | Alice sends `100 wei` to Alice                                                                                               | BAL **MUST** include one entry for Alice with `balance_changes` reflecting gas cost only (value cancels out) and nonce change.                                        | ✅ Completed |\n| `test_bal_zero_value_transfer`                   | BAL handles zero-value transfers correctly                                  | Alice sends `0 wei` to Bob                                                                                                   | BAL **MUST** include Alice with `balance_changes` (gas cost only) and nonce change, and Bob in `account_changes` with empty `balance_changes`.                     | ✅ Completed |\n| `test_bal_noop_storage_write` | Ensure BAL includes storage read but not write for no-op writes where pre-state equals post-state | Contract with pre-existing storage value `0x42` in slot `0x01`; transaction executes `SSTORE(0x01, 0x42)` (writing same value) | BAL **MUST** include the contract address with `storage_reads` for slot `0x01` since it was accessed, but **MUST NOT** include it in `storage_changes` (no actual state change). | ✅ Completed |\n| `test_bal_fully_unmutated_account` | Ensure BAL captures account that has zero net mutations | Alice sends 0 wei to `Oracle` which writes same pre-existing value to storage | BAL MUST include Alice with `nonce_changes` and balance changes (gas), `Oracle` with `storage_reads` for accessed slot but empty `storage_changes`. | ✅ Completed |\n| `test_bal_net_zero_balance_transfer`             | BAL includes accounts with net-zero balance change but excludes them from balance changes | Contract receives and sends same amount to recipient using CALL or SELFDESTRUCT | BAL **MUST** include contract in `account_changes` without `balance_changes` (net zero). BAL **MUST** record non-zero `balance_changes` for recipient. | ✅ Completed |\n| `test_bal_system_contracts_2935_4788`            | BAL includes pre-exec system writes for parent hash & beacon root           | Build a block with `N` normal txs; 2935 & 4788 active                                                                          | BAL MUST include `HISTORY_STORAGE_ADDRESS` (EIP-2935) and `BEACON_ROOTS_ADDRESS` (EIP-4788) with `storage_changes` to ring-buffer slots; each write uses `tx_index = N` (system op).                                                 | 🟡 Planned  |\n| `test_bal_system_dequeue_withdrawals_eip7002`    | BAL tracks post-exec system dequeues for withdrawals                        | Pre-populate EIP-7002 withdrawal requests; produce a block where dequeues occur                                                | BAL MUST include the 7002 system contract with `storage_changes` (queue head/tail slots 0–3) using `tx_index = len(txs)` and balance changes for withdrawal recipients.                                                              | 🟡 Planned  |\n| `test_bal_system_dequeue_consolidations_eip7251` | BAL tracks post-exec system dequeues for consolidations                     | Pre-populate EIP-7251 consolidation requests; produce a block where dequeues occur                                             | BAL MUST include the 7251 system contract with `storage_changes` (queue slots 0–3) using `tx_index = len(txs)`.                                                                                                                      | 🟡 Planned  |\n| `test_bal_aborted_storage_access` | Ensure BAL captures storage access in aborted transactions correctly | Alice calls contract that reads storage slot `0x01`, writes to slot `0x02`, then aborts with `REVERT`/`INVALID` | BAL MUST include storage_reads for slots `0x01` and `0x02` (aborted writes become reads), empty storage_changes. Only nonce changes for Alice. | ✅ Completed |\n| `test_bal_aborted_account_access` | Ensure BAL captures account access in aborted transactions for all account accessing opcodes | Alice calls `AbortContract` that performs account access operations (`BALANCE`, `EXTCODESIZE`, `EXTCODECOPY`, `EXTCODEHASH`, `CALL`, `CALLCODE`, `DELEGATECALL`, `STATICCALL`) on `TargetContract` and aborts via `REVERT`/`INVALID` | BAL MUST include Alice, `TargetContract`, and `AbortContract` in account_changes and nonce changes for Alice. | ✅ Completed |\n| `test_bal_pure_contract_call` | Ensure BAL captures contract access for pure computation calls | Alice calls `PureContract` that performs pure arithmetic (ADD operation) without storage or balance changes | BAL MUST include Alice and `PureContract` in `account_changes`, and `nonce_changes` for Alice. | ✅ Completed |\n| `test_bal_create2_to_A_read_then_selfdestruct`  | BAL records balance change for A and storage access (no persistent change)                          | Tx0: Alice sends ETH to address **A**. Tx1: Deployer `CREATE2` a contract **at A**; contract does `SLOAD(B)` and immediately `SELFDESTRUCT(beneficiary=X)` in the same tx.         | BAL **MUST** include **A** with `balance_changes` (funding in Tx0 and transfer on selfdestruct in Tx1). BAL **MUST** include storage key **B** as an accessed `StorageKey`, and **MUST NOT** include **B** under `storage_changes` (no persistence due to same-tx create+destruct).      | 🟡 Planned |\n| `test_bal_create2_to_A_write_then_selfdestruct` | BAL records balance change for A and storage access even if a write occurred (no persistent change) | Tx0: Alice sends ETH to **A**. Tx1: Deployer `CREATE2` contract **at A**; contract does `SSTORE(B, v)` (optionally `SLOAD(B)`), then `SELFDESTRUCT(beneficiary=Y)` in the same tx. | BAL **MUST** include **A** with `balance_changes` (Tx0 fund; Tx1 outflow to `Y`). BAL **MUST** include **B** as `StorageKey` accessed, and **MUST NOT** include **B** under `storage_changes` (ephemeral write discarded because the contract was created and destroyed in the same tx). | 🟡 Planned |\n| `test_bal_precompile_funded_then_called` | BAL records precompile with balance change (fund) and access (call) | **Tx0**: Alice sends `1 ETH` to `ecrecover` (0x01). **Tx1**: Alice (or Bob) calls `ecrecover` with valid input and `0 ETH`. | BAL **MUST** include address `0x01` with `balance_changes` (from Tx0). No `storage_changes` or `code_changes`. | 🟡 Planned |\n| `test_bal_precompile_call_only`          | BAL records precompile when called with no balance change           | Alice calls `ecrecover` (0x01) with a valid input, sending **0 ETH**.                                                       | BAL **MUST** include address `0x01` in access list, with **no** `balance_changes`, `storage_changes`, or `code_changes`.                                   | 🟡 Planned |\n| `test_bal_7702_delegated_create`                 | BAL tracks EIP-7702 delegation indicator write and contract creation        | Alice sends a type-4 (7702) tx authorizing herself to delegate to `Deployer` code which executes `CREATE`                      | BAL MUST include for **Alice**: `code_changes` (delegation indicator), `nonce_changes` (increment from 7702 processing), and `balance_changes` (post-gas). For **Child**: `code_changes` (runtime bytecode) and `nonce_changes = 1`. | 🟡 Planned  |\n| `test_bal_7702_delegation_create` | Ensure BAL captures creation of EOA delegation | Alice authorizes delegation to contract `Oracle`. Transaction sends 10 wei to Bob. Two variants: (1) Self-funded: Alice sends 7702 tx herself. (2) Sponsored: `Relayer` sends 7702 tx on Alice's behalf. | BAL **MUST** include Alice: `code_changes` (delegation designation `0xef0100\\|\\|address(Oracle)`),`nonce_changes` (increment). Bob: `balance_changes` (receives 10 wei). For sponsored variant, BAL **MUST** also include `Relayer`:`nonce_changes`.`Oracle` **MUST NOT** be present in BAL - the account is never accessed. | ✅ Completed |\n| `test_bal_7702_delegation_update` | Ensure BAL captures update of existing EOA delegation | Alice first delegates to `Oracle1`, then in second tx updates delegation to `Oracle2`. Each transaction sends 10 wei to Bob. Two variants: (1) Self-funded: Alice sends both 7702 txs herself. (2) Sponsored: `Relayer` sends both 7702 txs on Alice's behalf. | BAL **MUST** include Alice: first tx has `code_changes` (delegation designation `0xef0100\\|\\|address(Oracle1)`),`nonce_changes`. Second tx has`code_changes` (delegation designation `0xef0100\\|\\|address(Oracle2)`),`nonce_changes`. Bob:`balance_changes` (receives 10 wei on each tx). For sponsored variant, BAL **MUST** also include `Relayer`:`nonce_changes` for both transactions. `Oracle1` and `Oracle2` **MUST NOT** be present in BAL - accounts are never accessed. | ✅ Completed |\n| `test_bal_7702_delegation_clear` | Ensure BAL captures clearing of EOA delegation | Alice first delegates to `Oracle`, then in second tx clears delegation by authorizing to `0x0` address. Each transaction sends 10 wei to Bob. Two variants: (1) Self-funded: Alice sends both 7702 txs herself. (2) Sponsored: `Relayer` sends both 7702 txs on Alice's behalf. | BAL **MUST** include Alice: first tx has `code_changes` (delegation designation `0xef0100\\|\\|address(Oracle)`), `nonce_changes`. Second tx has `code_changes` (empty code - delegation cleared), `nonce_changes`. Bob: `balance_changes` (receives 10 wei on each tx). For sponsored variant, BAL **MUST** also include `Relayer`: `nonce_changes` for both transactions. `Oracle` and `0x0` address **MUST NOT** be present in BAL - accounts are never accessed. | ✅ Completed |\n| `test_bal_7702_delegated_storage_access` | Ensure BAL captures storage operations when calling a delegated EIP-7702 account | Alice has delegated her account to `Oracle`. `Oracle` contract contains code that reads from storage slot `0x01` and writes to storage slot `0x02`. Bob sends 10 wei to Alice (the delegated account), which executes `Oracle`'s code. | BAL **MUST** include Alice: `balance_changes` (receives 10 wei), `storage_changes` for slot `0x02` (write operation performed in Alice's storage), `storage_reads` for slot `0x01` (read operation from Alice's storage). Bob: `nonce_changes` (sender), `balance_changes` (loses 10 wei plus gas costs). `Oracle` (account access). | ✅ Completed |\n| `test_bal_7702_invalid_nonce_authorization` | Ensure BAL handles failed authorization due to wrong nonce | `Relayer` sends sponsored transaction to Bob (10 wei transfer succeeds) but Alice's authorization to delegate to `Oracle` uses incorrect nonce, causing silent authorization failure | BAL **MUST** include Alice with empty changes (account access), Bob with `balance_changes` (receives 10 wei), Relayer with `nonce_changes`. **MUST NOT** include `Oracle` (authorization failed, no delegation) | ✅ Completed |\n| `test_bal_7702_invalid_chain_id_authorization` | Ensure BAL handles failed authorization due to wrong chain id | `Relayer` sends sponsored transaction to Bob (10 wei transfer succeeds) but Alice's authorization to delegate to `Oracle` uses incorrect chain id, causing authorization failure before account access | BAL **MUST** include Bob with `balance_changes` (receives 10 wei), Relayer with `nonce_changes`. **MUST NOT** include Alice (authorization fails before loading account) or `Oracle` (authorization failed, no delegation) | ✅ Completed |\n| `test_bal_7702_delegated_via_call_opcode` | Ensure BAL captures delegation target when a contract uses *CALL opcodes to call a delegated account | Pre-deployed contract `Alice` delegated to `Oracle`. `Caller` contract uses CALL/CALLCODE/DELEGATECALL/STATICCALL to call `Alice`. Bob sends transaction to `Caller`. | BAL **MUST** include Bob: `nonce_changes`. `Caller`: empty changes (account access). `Alice`: empty changes (account access - delegated account being called). `Oracle`: empty changes (delegation target access). | ✅ Completed |\n| `test_bal_sstore_and_oog` | Ensure BAL handles OOG during SSTORE execution at various gas boundaries (EIP-2200 stipend and implicit SLOAD) | Alice calls contract that attempts `SSTORE` to cold slot `0x01`. Parameterized: (1) OOG at EIP-2200 stipend check (2300 gas after PUSH opcodes) - fails before implicit SLOAD, (2) OOG at stipend + 1 (2301 gas) - passes stipend check but fails after implicit SLOAD, (3) OOG at exact gas - 1, (4) Successful SSTORE with exact gas. | For case (1): BAL **MUST NOT** include slot `0x01` in `storage_reads` or `storage_changes` (fails before implicit SLOAD). For cases (2) and (3): BAL **MUST** include slot `0x01` in `storage_reads` (implicit SLOAD occurred) but **MUST NOT** include in `storage_changes` (write didn't complete). For case (4): BAL **MUST** include slot `0x01` in `storage_changes` only (successful write; read is filtered by builder). | ✅ Completed |\n| `test_bal_sload_and_oog` | Ensure BAL handles OOG during SLOAD execution correctly | Alice calls contract that attempts `SLOAD` from cold slot `0x01`. Parameterized: (1) OOG at SLOAD opcode (insufficient gas), (2) Successful SLOAD execution. | For OOG case: BAL **MUST NOT** contain slot `0x01` in `storage_reads` since storage wasn't accessed. For success case: BAL **MUST** contain slot `0x01` in `storage_reads`. | ✅ Completed |\n| `test_bal_balance_and_oog` | Ensure BAL handles OOG during BALANCE opcode execution correctly | Alice calls contract that attempts `BALANCE` opcode on cold target account. Parameterized: (1) OOG at BALANCE opcode (insufficient gas), (2) Successful BALANCE execution. | For OOG case: BAL **MUST NOT** include target account (wasn't accessed). For success case: BAL **MUST** include target account in `account_changes`. | ✅ Completed |\n| `test_bal_extcodesize_and_oog` | Ensure BAL handles OOG during EXTCODESIZE opcode execution correctly | Alice calls contract that attempts `EXTCODESIZE` opcode on cold target contract. Parameterized: (1) OOG at EXTCODESIZE opcode (insufficient gas), (2) Successful EXTCODESIZE execution. | For OOG case: BAL **MUST NOT** include target contract (wasn't accessed). For success case: BAL **MUST** include target contract in `account_changes`. | ✅ Completed |\n| `test_bal_call_and_oog` | Ensure BAL handles OOG during CALL opcode execution correctly | Alice calls contract that attempts `CALL` to cold target contract. Parameterized: (1) OOG at CALL opcode (insufficient gas), (2) Successful CALL execution. | For OOG case: BAL **MUST NOT** include target contract (wasn't accessed). For success case: BAL **MUST** include target contract in `account_changes`. | ✅ Completed |\n| `test_bal_delegatecall_and_oog` | Ensure BAL handles OOG during DELEGATECALL opcode execution correctly | Alice calls contract that attempts `DELEGATECALL` to cold target contract. Parameterized: (1) OOG at DELEGATECALL opcode (insufficient gas), (2) Successful DELEGATECALL execution. | For OOG case: BAL **MUST NOT** include target contract (wasn't accessed). For success case: BAL **MUST** include target contract in `account_changes`. | ✅ Completed |\n| `test_bal_extcodecopy_and_oog` | Ensure BAL handles OOG during EXTCODECOPY opcode execution correctly | Alice calls contract that attempts `EXTCODECOPY` from cold target contract. Parameterized: (1) OOG at EXTCODECOPY opcode (insufficient gas), (2) Successful EXTCODECOPY execution. | For OOG case: BAL **MUST NOT** include target contract (wasn't accessed). For success case: BAL **MUST** include target contract in `account_changes`. | ✅ Completed |\n| `test_bal_oog_7702_delegated_cold_cold` | Ensure BAL handles OOG during EIP-7702 delegated account loading when both accounts are cold | Alice calls cold delegated account Bob (7702) which delegates to cold `TargetContract`  with insufficient gas for second cold load | BAL **MUST** include Bob in `account_changes` (first cold load succeeds) but **MUST NOT** include `TargetContract` (second cold load fails due to OOG) | 🟡 Planned |\n| `test_bal_oog_7702_delegated_warm_cold` | Ensure BAL handles OOG during EIP-7702 delegated account loading when first account is warm, second is cold | Alice calls warm delegated account Bob (7702) which delegates to cold `TargetContract`  with insufficient gas for second cold load | BAL **MUST** include Bob in `account_changes` (warm load succeeds) but **MUST NOT** include `TargetContract` (cold load fails due to OOG) | 🟡 Planned |\n| `test_bal_invalid_missing_nonce` | Verify clients reject blocks with BAL missing required nonce changes | Alice sends transaction to Bob; BAL modifier removes Alice's nonce change entry | Block **MUST** be rejected with `INVALID_BLOCK_ACCESS_LIST` exception. Clients **MUST** validate that all sender accounts have nonce changes recorded. | ✅ Completed |\n| `test_bal_invalid_nonce_value` | Verify clients reject blocks with incorrect nonce values in BAL | Alice sends transaction to Bob; BAL modifier changes Alice's nonce to incorrect value | Block **MUST** be rejected with `INVALID_BLOCK_ACCESS_LIST` exception. Clients **MUST** validate nonce values match actual state transitions. | ✅ Completed |\n| `test_bal_invalid_storage_value` | Verify clients reject blocks with incorrect storage values in BAL | Alice calls contract that writes to storage; BAL modifier changes storage value to incorrect value | Block **MUST** be rejected with `INVALID_BLOCK_ACCESS_LIST` exception. Clients **MUST** validate storage change values match actual state transitions. | ✅ Completed |\n| `test_bal_invalid_tx_order` | Verify clients reject blocks with incorrect transaction indices in BAL | Alice sends transaction; BAL modifier swaps transaction indices incorrectly | Block **MUST** be rejected with `INVALID_BLOCK_ACCESS_LIST` exception. Clients **MUST** validate transaction ordering matches actual block execution order. | ✅ Completed |\n| `test_bal_invalid_account` | Verify clients reject blocks with incorrect account addresses in BAL | Alice sends transaction; BAL modifier includes wrong account address | Block **MUST** be rejected with `INVALID_BLOCK_ACCESS_LIST` exception. Clients **MUST** validate all account addresses in BAL were actually accessed. | ✅ Completed |\n| `test_bal_invalid_duplicate_account` | Verify clients reject blocks with duplicate account entries in BAL | Alice sends transaction; BAL modifier duplicates Alice's account entry | Block **MUST** be rejected with `INVALID_BLOCK_ACCESS_LIST` exception. Clients **MUST** ensure each account appears at most once in BAL. | ✅ Completed |\n| `test_bal_invalid_account_order` | Verify clients reject blocks with incorrect account ordering in BAL | Alice sends transaction to Bob; BAL modifier reverses account order (BAL requires sorted order) | Block **MUST** be rejected with `INVALID_BLOCK_ACCESS_LIST` exception. Clients **MUST** validate accounts are in canonical sorted order. | ✅ Completed |\n| `test_bal_invalid_complex_corruption` | Verify clients reject blocks with multiple BAL corruptions | Alice calls contract with storage writes; BAL has multiple issues: wrong account, missing nonce, wrong storage value | Block **MUST** be rejected with `INVALID_BLOCK_ACCESS_LIST` exception. Clients **MUST** detect any corruption regardless of other issues. | ✅ Completed |\n| `test_bal_invalid_missing_account` | Verify clients reject blocks with missing required account entries in BAL | Alice sends transaction to Bob; BAL modifier removes Bob's account entry (recipient should be included) | Block **MUST** be rejected with `INVALID_BLOCK_ACCESS_LIST` exception. Clients **MUST** validate all accessed accounts are present. | ✅ Completed |\n| `test_bal_invalid_balance_value` | Verify clients reject blocks with incorrect balance values in BAL | Alice sends value to Bob; BAL modifier changes balance to incorrect value | Block **MUST** be rejected with `INVALID_BLOCK_ACCESS_LIST` exception. Clients **MUST** validate balance change values match actual state transitions. | ✅ Completed |\n| `test_bal_empty_block_no_coinbase` | Verify BAL correctly handles empty blocks without including coinbase | Block with 0 transactions, no withdrawals. System contracts may perform operations (EIP-2935 parent hash, EIP-4788 beacon root if active). | BAL **MUST NOT** include the coinbase/fee recipient (receives no fees). BAL **MAY** include system contract addresses (EIP-2935 `HISTORY_STORAGE_ADDRESS`, EIP-4788 `BEACON_ROOTS_ADDRESS`) with `storage_changes` at `tx_index=0` (pre-execution system operations). Maximum 4 system contract addresses if all active. | 🟡 Planned |\n| `test_bal_empty_block_withdrawal_to_coinbase` | Verify BAL includes coinbase when it receives EIP-4895 withdrawal even in empty block | Block with 0 transactions but contains EIP-4895 withdrawal(s) with coinbase as recipient. System contracts may perform operations. | BAL **MUST** include coinbase with `balance_changes` at `tx_index=1` (post-execution: len(txs)+1 = 0+1). BAL **MAY** include system contract addresses with `storage_changes` at `tx_index=0` (pre-execution system operations). This confirms that coinbase inclusion depends on actual state changes, not transaction presence. | 🟡 Planned |\n"
  },
  {
    "path": "tests/benchmark/__init__.py",
    "content": "\"\"\"\nBenchmark tests for EVMs.\n\nBenchmark tests aim to maximize the usage of a specific opcode, precompile,\nor operation within a transaction or block. These can be executed against\nEVM implementations to ensure they handle pathological cases efficiently\nand correctly, allowing Ethereum to safely\n[Scale the L1](https://protocol.ethereum.foundation/).\n\"\"\"\n"
  },
  {
    "path": "tests/benchmark/conftest.py",
    "content": "\"\"\"Pytest configuration for benchmark tests.\"\"\"\n\nfrom pathlib import Path\nfrom typing import Any\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\n\nDEFAULT_BENCHMARK_FORK = \"Prague\"\n\n\ndef pytest_generate_tests(metafunc: Any) -> None:\n    \"\"\"\n    Modify test generation to enforce default benchmark fork for benchmark\n    tests.\n    \"\"\"\n    benchmark_dir = Path(__file__).parent\n    test_file_path = Path(metafunc.definition.fspath)\n\n    # Check if this test is in the benchmark directory\n    is_in_benchmark_dir = benchmark_dir in test_file_path.parents\n\n    if is_in_benchmark_dir:\n        # Add benchmark marker if no valid_from marker exists\n        existing_markers = list(metafunc.definition.iter_markers())\n        has_valid_from = any(marker.name == \"valid_from\" for marker in existing_markers)\n\n        if not has_valid_from:\n            benchmark_marker = pytest.mark.valid_from(DEFAULT_BENCHMARK_FORK)\n            metafunc.definition.add_marker(benchmark_marker)\n\n\ndef pytest_collection_modifyitems(config: Any, items: Any) -> None:\n    \"\"\"Add the `benchmark` marker to all tests under `./tests/benchmark`.\"\"\"\n    benchmark_dir = Path(__file__).parent\n    benchmark_marker = pytest.mark.benchmark\n    gen_docs = config.getoption(\"--gen-docs\", default=False)\n\n    if gen_docs:\n        for item in items:\n            if (\n                benchmark_dir in Path(item.fspath).parents\n                and not item.get_closest_marker(\"benchmark\")\n                and not item.get_closest_marker(\"stateful\")\n            ):\n                item.add_marker(benchmark_marker)\n        return\n\n    marker_expr = config.getoption(\"-m\", default=\"\")\n    run_benchmarks = (\n        marker_expr and \"benchmark\" in marker_expr and \"not benchmark\" not in marker_expr\n    )\n    run_stateful_tests = (\n        marker_expr and \"stateful\" in marker_expr and \"not stateful\" not in marker_expr\n    )\n\n    items_for_removal = []\n    for i, item in enumerate(items):\n        is_in_benchmark_dir = benchmark_dir in Path(item.fspath).parents\n        has_stateful_marker = item.get_closest_marker(\"stateful\")\n        is_benchmark_test = (\n            is_in_benchmark_dir and not has_stateful_marker\n        ) or item.get_closest_marker(\"benchmark\")\n\n        if is_benchmark_test:\n            if is_in_benchmark_dir and not item.get_closest_marker(\"benchmark\"):\n                item.add_marker(benchmark_marker)\n            if not run_benchmarks:\n                items_for_removal.append(i)\n        elif run_benchmarks:\n            items_for_removal.append(i)\n        elif is_in_benchmark_dir and has_stateful_marker and not run_stateful_tests:\n            items_for_removal.append(i)\n\n    for i in reversed(items_for_removal):\n        items.pop(i)\n\n\n@pytest.fixture\ndef tx_gas_limit_cap(fork: Fork, gas_benchmark_value: int) -> int:\n    \"\"\"Return the transaction gas limit cap.\"\"\"\n    return fork.transaction_gas_limit_cap() or gas_benchmark_value\n"
  },
  {
    "path": "tests/benchmark/helpers.py",
    "content": "\"\"\"Helper functions for the EVM benchmark worst-case tests.\"\"\"\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import Bytecode\nfrom ethereum_test_vm import Opcodes as Op\n\n\ndef code_loop_precompile_call(calldata: Bytecode, attack_block: Bytecode, fork: Fork) -> Bytecode:\n    \"\"\"Create a code loop that calls a precompile with the given calldata.\"\"\"\n    max_code_size = fork.max_code_size()\n\n    # The attack contract is: CALLDATA_PREP + #JUMPDEST + [attack_block]* +\n    # JUMP(#)\n    jumpdest = Op.JUMPDEST\n    jump_back = Op.JUMP(len(calldata))\n    max_iters_loop = (max_code_size - len(calldata) - len(jumpdest) - len(jump_back)) // len(\n        attack_block\n    )\n    code = calldata + jumpdest + sum([attack_block] * max_iters_loop) + jump_back\n    if len(code) > max_code_size:\n        # Must never happen, but keep it as a sanity check.\n        raise ValueError(f\"Code size {len(code)} exceeds maximum code size {max_code_size}\")\n\n    return code\n"
  },
  {
    "path": "tests/benchmark/stateful/__init__.py",
    "content": "\"\"\"Benchmark state tests package.\"\"\"\n"
  },
  {
    "path": "tests/benchmark/stateful/bloatnet/README.md",
    "content": "# BloatNet Single-Opcode Benchmarks\n\nThis directory contains benchmarks for testing single EVM opcodes (SLOAD, SSTORE) under state-heavy conditions using pre-deployed contracts.\n\n## Test Setup\n\n### Prerequisites\n\n1. Pre-deployed ERC20 contracts on the target network\n2. A JSON file containing contract addresses (stubs)\n\n### Address Stubs Format\n\nCreate a JSON file (`stubs.json`) mapping test-specific stub names to deployed contract addresses:\n\n```json\n{\n  \"test_sload_empty_erc20_balanceof_USDT\": \"0x1234567890123456789012345678901234567890\",\n  \"test_sload_empty_erc20_balanceof_USDC\": \"0x2345678901234567890123456789012345678901\",\n  \"test_sload_empty_erc20_balanceof_DAI\": \"0x3456789012345678901234567890123456789012\",\n  \"test_sload_empty_erc20_balanceof_WETH\": \"0x4567890123456789012345678901234567890123\",\n  \"test_sload_empty_erc20_balanceof_WBTC\": \"0x5678901234567890123456789012345678901234\",\n\n  \"test_sstore_erc20_approve_USDT\": \"0x1234567890123456789012345678901234567890\",\n  \"test_sstore_erc20_approve_USDC\": \"0x2345678901234567890123456789012345678901\",\n  \"test_sstore_erc20_approve_DAI\": \"0x3456789012345678901234567890123456789012\",\n  \"test_sstore_erc20_approve_WETH\": \"0x4567890123456789012345678901234567890123\",\n  \"test_sstore_erc20_approve_WBTC\": \"0x5678901234567890123456789012345678901234\"\"\n}\n```\n\n**Naming Convention:**\n- Stub names MUST start with the test function name\n- Format: `{test_function_name}_{identifier}`\n- Example: `test_sload_empty_erc20_balanceof_USDT`\n\n\n### Running the Tests\n\n#### Execute Mode (Against Live Network)\n\n```bash\n# Run with specific number of contracts (e.g., only the 5-contract variant)\nPYTEST_DISABLE_PLUGIN_AUTOLOAD=1 uv run execute \\\n  --address-stubs /path/to/stubs.json \\\n  --fork=Prague \\\n  tests/benchmark/stateful/bloatnet/test_single_opcode.py::test_sload_empty_erc20_balanceof \\\n  -k \"[5]\" \\\n  -v\n\n# Run all parametrized variants (1, 5, 10, 20 contracts)\nPYTEST_DISABLE_PLUGIN_AUTOLOAD=1 uv run execute \\\n  --address-stubs /path/to/stubs.json \\\n  --fork=Prague \\\n  tests/benchmark/stateful/bloatnet/test_single_opcode.py \\\n  -v\n```\n\n\n## Test Parametrization\n\nBoth tests are parametrized with `num_contracts = [1, 5, 10, 20, 100]`, generating 5 test variants each:\n\n- **1 contract**: Baseline single-contract performance\n- **5 contracts**: Small-scale multi-contract scenario\n- **10 contracts**: Medium-scale multi-contract scenario\n- **20 contracts**: Large-scale multi-contract scenario\n- **100 contracts**: Very large-scale multi-contract stress test\n\n### How Stub Filtering Works\n\n1. Test extracts its function name (e.g., `test_sload_empty_erc20_balanceof`)\n2. Filters stubs starting with that name from `stubs.json`\n3. Selects the **first N** matching stubs based on `num_contracts` parameter\n4. Errors if insufficient matching stubs found\n\n"
  },
  {
    "path": "tests/benchmark/stateful/bloatnet/__init__.py",
    "content": "\"\"\"Bloatnet benchmark tests package.\"\"\"\n"
  },
  {
    "path": "tests/benchmark/stateful/bloatnet/test_bloatnet.py",
    "content": "\"\"\"\nabstract: Tests benchmark worst-case bloatnet scenarios.\n    Tests benchmark worst-case bloatnet scenarios.\n\nTests running worst-case bloatnet scenarios for benchmarking purposes.\n\"\"\"\n"
  },
  {
    "path": "tests/benchmark/stateful/bloatnet/test_multi_opcode.py",
    "content": "\"\"\"\nabstract: BloatNet bench cases extracted from https://hackmd.io/9icZeLN7R0Sk5mIjKlZAHQ.\n\n   The idea of all these tests is to stress client implementations to find out\n   where the limits of processing are focusing specifically on state-related\n   operations.\n\"\"\"\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    Account,\n    Alloc,\n    Block,\n    BlockchainTestFiller,\n    Transaction,\n    While,\n)\nfrom ethereum_test_vm import Bytecode\nfrom ethereum_test_vm import Opcodes as Op\nfrom pytest_plugins.execute.pre_alloc import AddressStubs\n\nREFERENCE_SPEC_GIT_PATH = \"DUMMY/bloatnet.md\"\nREFERENCE_SPEC_VERSION = \"1.0\"\n\n\n# BLOATNET ARCHITECTURE:\n#\n#   [Initcode Contract]        [Factory Contract]              [24KB Contracts]\n#         (9.5KB)                    (116B)                     (N x 24KB each)\n#           │                          │                              │\n#           │  EXTCODECOPY             │   CREATE2(salt++)            │\n#           └──────────────►           ├──────────────────►     Contract_0\n#                                      ├──────────────────►     Contract_1\n#                                      ├──────────────────►     Contract_2\n#                                      └──────────────────►     Contract_N\n#\n#   [Attack Contract] ──STATICCALL──► [Factory.getConfig()]\n#           │                              returns: (N, hash)\n#           └─► Loop(i=0 to N):\n#                 1. Generate CREATE2 addr: keccak256(0xFF|factory|i|hash)[12:]\n#                 2. BALANCE(addr)    → 2600 gas (cold access)\n#                 3. EXTCODESIZE(addr) → 100 gas (warm access)\n#\n# HOW IT WORKS:\n#   1. Factory uses EXTCODECOPY to load initcode, avoiding PC-relative jumps\n#   2. Each CREATE2 deployment produces unique 24KB bytecode (via ADDRESS)\n#   3. All contracts share same initcode hash for deterministic addresses\n#   4. Attack rapidly accesses all contracts, stressing client's state handling\n\n\n@pytest.mark.parametrize(\n    \"balance_first\",\n    [True, False],\n    ids=[\"balance_extcodesize\", \"extcodesize_balance\"],\n)\n@pytest.mark.valid_from(\"Prague\")\ndef test_bloatnet_balance_extcodesize(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    fork: Fork,\n    gas_benchmark_value: int,\n    balance_first: bool,\n) -> None:\n    \"\"\"\n    BloatNet test using BALANCE + EXTCODESIZE with \"on-the-fly\" CREATE2\n    address generation.\n\n    This test:\n    1. Assumes contracts are already deployed via the factory (salt 0 to N-1)\n    2. Generates CREATE2 addresses dynamically during execution\n    3. Calls BALANCE and EXTCODESIZE (order controlled by balance_first param)\n    4. Maximizes cache eviction by accessing many contracts\n    \"\"\"\n    gas_costs = fork.gas_costs()\n\n    # Calculate gas costs\n    intrinsic_gas = fork.transaction_intrinsic_cost_calculator()(calldata=b\"\")\n\n    # Cost per contract access with CREATE2 address generation\n    cost_per_contract = (\n        gas_costs.G_KECCAK_256  # SHA3 static cost for address generation (30)\n        + gas_costs.G_KECCAK_256_WORD * 3  # SHA3 dynamic cost (85 bytes = 3 words * 6)\n        + gas_costs.G_COLD_ACCOUNT_ACCESS  # Cold access (2600)\n        + gas_costs.G_BASE  # POP first result (2)\n        + gas_costs.G_WARM_ACCOUNT_ACCESS  # Warm access (100)\n        + gas_costs.G_BASE  # POP second result (2)\n        + gas_costs.G_BASE  # DUP1 before first op (3)\n        + gas_costs.G_VERY_LOW * 4  # PUSH1 operations (4 * 3)\n        + gas_costs.G_LOW  # MLOAD for salt (3)\n        + gas_costs.G_VERY_LOW  # ADD for increment (3)\n        + gas_costs.G_LOW  # MSTORE salt back (3)\n        + 10  # While loop overhead\n    )\n\n    # Calculate how many contracts to access based on available gas\n    available_gas = gas_benchmark_value - intrinsic_gas - 1000  # Reserve for cleanup\n    contracts_needed = int(available_gas // cost_per_contract)\n\n    # Deploy factory using stub contract - NO HARDCODED VALUES\n    # The stub \"bloatnet_factory\" must be provided via --address-stubs flag\n    # The factory at that address MUST have:\n    # - Slot 0: Number of deployed contracts\n    # - Slot 1: Init code hash for CREATE2 address calculation\n    factory_address = pre.deploy_contract(\n        code=Bytecode(),  # Required parameter, but will be ignored for stubs\n        stub=\"bloatnet_factory\",\n    )\n\n    # Log test requirements - deployed count read from factory storage\n    print(\n        f\"Test needs {contracts_needed} contracts for \"\n        f\"{gas_benchmark_value / 1_000_000:.1f}M gas. \"\n        f\"Factory storage will be checked during execution.\"\n    )\n\n    # Define operations that differ based on parameter\n    balance_op = Op.POP(Op.BALANCE)\n    extcodesize_op = Op.POP(Op.EXTCODESIZE)\n    benchmark_ops = (\n        (balance_op + extcodesize_op) if balance_first else (extcodesize_op + balance_op)\n    )\n\n    # Build attack contract that reads config from factory and performs attack\n    attack_code = (\n        # Call getConfig() on factory to get num_deployed and init_code_hash\n        Op.STATICCALL(\n            gas=Op.GAS,\n            address=factory_address,\n            args_offset=0,\n            args_size=0,\n            ret_offset=96,\n            ret_size=64,\n        )\n        # Check if call succeeded\n        + Op.ISZERO\n        + Op.PUSH2(0x1000)  # Jump to error handler if failed (far jump)\n        + Op.JUMPI\n        # Load results from memory\n        # Memory[96:128] = num_deployed_contracts\n        # Memory[128:160] = init_code_hash\n        + Op.MLOAD(96)  # Load num_deployed_contracts\n        + Op.MLOAD(128)  # Load init_code_hash\n        # Setup memory for CREATE2 address generation\n        # Memory layout at 0: 0xFF + factory_addr(20) + salt(32) + hash(32)\n        + Op.MSTORE(0, factory_address)  # Store factory address at memory position 0\n        + Op.MSTORE8(11, 0xFF)  # Store 0xFF prefix at position (32 - 20 - 1)\n        + Op.MSTORE(32, 0)  # Store salt at position 32\n        # Stack now has: [num_contracts, init_code_hash]\n        + Op.PUSH1(64)  # Push memory position\n        + Op.MSTORE  # Store init_code_hash at memory[64]\n        # Stack now has: [num_contracts]\n        # Main attack loop - iterate through all deployed contracts\n        + While(\n            body=(\n                # Generate CREATE2 addr: keccak256(0xFF+factory+salt+hash)\n                Op.SHA3(11, 85)  # Generate CREATE2 address from memory[11:96]\n                # The address is now on the stack\n                + Op.DUP1  # Duplicate for second operation\n                + benchmark_ops  # Execute operations in specified order\n                # Increment salt for next iteration\n                + Op.MSTORE(32, Op.ADD(Op.MLOAD(32), 1))  # Increment and store salt\n            ),\n            # Continue while we haven't reached the limit\n            condition=Op.DUP1 + Op.PUSH1(1) + Op.SWAP1 + Op.SUB + Op.DUP1 + Op.ISZERO + Op.ISZERO,\n        )\n        + Op.POP  # Clean up counter\n    )\n\n    # Deploy attack contract\n    attack_address = pre.deploy_contract(code=attack_code)\n\n    # Run the attack\n    attack_tx = Transaction(\n        to=attack_address,\n        gas_limit=gas_benchmark_value,\n        sender=pre.fund_eoa(),\n    )\n\n    # Post-state: just verify attack contract exists\n    post = {\n        attack_address: Account(storage={}),\n    }\n\n    blockchain_test(\n        pre=pre,\n        blocks=[Block(txs=[attack_tx])],\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"balance_first\",\n    [True, False],\n    ids=[\"balance_extcodecopy\", \"extcodecopy_balance\"],\n)\n@pytest.mark.valid_from(\"Prague\")\ndef test_bloatnet_balance_extcodecopy(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    fork: Fork,\n    gas_benchmark_value: int,\n    balance_first: bool,\n) -> None:\n    \"\"\"\n    BloatNet test using BALANCE + EXTCODECOPY with on-the-fly CREATE2\n    address generation.\n\n    This test forces actual bytecode reads from disk by:\n    1. Assumes contracts are already deployed via the factory\n    2. Generating CREATE2 addresses dynamically during execution\n    3. Using BALANCE and EXTCODECOPY (order controlled by balance_first param)\n    4. Reading 1 byte from the END of the bytecode to force full contract load\n    \"\"\"\n    gas_costs = fork.gas_costs()\n    max_contract_size = fork.max_code_size()\n\n    # Calculate costs\n    intrinsic_gas = fork.transaction_intrinsic_cost_calculator()(calldata=b\"\")\n\n    # Cost per contract with EXTCODECOPY and CREATE2 address generation\n    cost_per_contract = (\n        gas_costs.G_KECCAK_256  # SHA3 static cost for address generation (30)\n        + gas_costs.G_KECCAK_256_WORD * 3  # SHA3 dynamic cost (85 bytes = 3 words * 6)\n        + gas_costs.G_COLD_ACCOUNT_ACCESS  # Cold access (2600)\n        + gas_costs.G_BASE  # POP first result (2)\n        + gas_costs.G_WARM_ACCOUNT_ACCESS  # Warm access base (100)\n        + gas_costs.G_COPY * 1  # Copy cost for 1 byte (3)\n        + gas_costs.G_BASE * 2  # DUP1 before first op, DUP4 for address (6)\n        + gas_costs.G_VERY_LOW * 8  # PUSH operations (8 * 3 = 24)\n        + gas_costs.G_LOW * 2  # MLOAD for salt twice (6)\n        + gas_costs.G_VERY_LOW * 2  # ADD operations (6)\n        + gas_costs.G_LOW  # MSTORE salt back (3)\n        + gas_costs.G_BASE  # POP after second op (2)\n        + 10  # While loop overhead\n    )\n\n    # Calculate how many contracts to access\n    available_gas = gas_benchmark_value - intrinsic_gas - 1000\n    contracts_needed = int(available_gas // cost_per_contract)\n\n    # Deploy factory using stub contract - NO HARDCODED VALUES\n    # The stub \"bloatnet_factory\" must be provided via --address-stubs flag\n    # The factory at that address MUST have:\n    # - Slot 0: Number of deployed contracts\n    # - Slot 1: Init code hash for CREATE2 address calculation\n    factory_address = pre.deploy_contract(\n        code=Bytecode(),  # Required parameter, but will be ignored for stubs\n        stub=\"bloatnet_factory\",\n    )\n\n    # Log test requirements - deployed count read from factory storage\n    print(\n        f\"Test needs {contracts_needed} contracts for \"\n        f\"{gas_benchmark_value / 1_000_000:.1f}M gas. \"\n        f\"Factory storage will be checked during execution.\"\n    )\n\n    # Define operations that differ based on parameter\n    balance_op = Op.POP(Op.BALANCE)\n    extcodecopy_op = (\n        Op.PUSH1(1)  # size (1 byte)\n        + Op.PUSH2(max_contract_size - 1)  # code offset (last byte)\n        + Op.ADD(Op.MLOAD(32), 96)  # unique memory offset\n        + Op.DUP4  # address (duplicated earlier)\n        + Op.EXTCODECOPY\n        + Op.POP  # clean up address\n    )\n    benchmark_ops = (\n        (balance_op + extcodecopy_op) if balance_first else (extcodecopy_op + balance_op)\n    )\n\n    # Build attack contract that reads config from factory and performs attack\n    attack_code = (\n        # Call getConfig() on factory to get num_deployed and init_code_hash\n        Op.STATICCALL(\n            gas=Op.GAS,\n            address=factory_address,\n            args_offset=0,\n            args_size=0,\n            ret_offset=96,\n            ret_size=64,\n        )\n        # Check if call succeeded\n        + Op.ISZERO\n        + Op.PUSH2(0x1000)  # Jump to error handler if failed (far jump)\n        + Op.JUMPI\n        # Load results from memory\n        # Memory[96:128] = num_deployed_contracts\n        # Memory[128:160] = init_code_hash\n        + Op.MLOAD(96)  # Load num_deployed_contracts\n        + Op.MLOAD(128)  # Load init_code_hash\n        # Setup memory for CREATE2 address generation\n        # Memory layout at 0: 0xFF + factory_addr(20) + salt(32) + hash(32)\n        + Op.MSTORE(0, factory_address)  # Store factory address at memory position 0\n        + Op.MSTORE8(11, 0xFF)  # Store 0xFF prefix at position (32 - 20 - 1)\n        + Op.MSTORE(32, 0)  # Store salt at position 32\n        # Stack now has: [num_contracts, init_code_hash]\n        + Op.PUSH1(64)  # Push memory position\n        + Op.MSTORE  # Store init_code_hash at memory[64]\n        # Stack now has: [num_contracts]\n        # Main attack loop - iterate through all deployed contracts\n        + While(\n            body=(\n                # Generate CREATE2 address\n                Op.SHA3(11, 85)  # Generate CREATE2 address from memory[11:96]\n                # The address is now on the stack\n                + Op.DUP1  # Duplicate for later operations\n                + benchmark_ops  # Execute operations in specified order\n                # Increment salt for next iteration\n                + Op.MSTORE(32, Op.ADD(Op.MLOAD(32), 1))  # Increment and store salt\n            ),\n            # Continue while counter > 0\n            condition=Op.DUP1 + Op.PUSH1(1) + Op.SWAP1 + Op.SUB + Op.DUP1 + Op.ISZERO + Op.ISZERO,\n        )\n        + Op.POP  # Clean up counter\n    )\n\n    # Deploy attack contract\n    attack_address = pre.deploy_contract(code=attack_code)\n\n    # Run the attack\n    attack_tx = Transaction(\n        to=attack_address,\n        gas_limit=gas_benchmark_value,\n        sender=pre.fund_eoa(),\n    )\n\n    # Post-state\n    post = {\n        attack_address: Account(storage={}),\n    }\n\n    blockchain_test(\n        pre=pre,\n        blocks=[Block(txs=[attack_tx])],\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"balance_first\",\n    [True, False],\n    ids=[\"balance_extcodehash\", \"extcodehash_balance\"],\n)\n@pytest.mark.valid_from(\"Prague\")\ndef test_bloatnet_balance_extcodehash(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    fork: Fork,\n    gas_benchmark_value: int,\n    balance_first: bool,\n) -> None:\n    \"\"\"\n    BloatNet test using BALANCE + EXTCODEHASH with on-the-fly CREATE2\n    address generation.\n\n    This test:\n    1. Assumes contracts are already deployed via the factory\n    2. Generates CREATE2 addresses dynamically during execution\n    3. Calls BALANCE and EXTCODEHASH (order controlled by balance_first param)\n    4. Forces client to compute code hash for 24KB bytecode\n    \"\"\"\n    gas_costs = fork.gas_costs()\n\n    # Calculate gas costs\n    intrinsic_gas = fork.transaction_intrinsic_cost_calculator()(calldata=b\"\")\n\n    # Cost per contract access with CREATE2 address generation\n    cost_per_contract = (\n        gas_costs.G_KECCAK_256  # SHA3 static cost for address generation (30)\n        + gas_costs.G_KECCAK_256_WORD * 3  # SHA3 dynamic cost (85 bytes = 3 words * 6)\n        + gas_costs.G_COLD_ACCOUNT_ACCESS  # Cold access (2600)\n        + gas_costs.G_BASE  # POP first result (2)\n        + gas_costs.G_WARM_ACCOUNT_ACCESS  # Warm access (100)\n        + gas_costs.G_BASE  # POP second result (2)\n        + gas_costs.G_BASE  # DUP1 before first op (3)\n        + gas_costs.G_VERY_LOW * 4  # PUSH1 operations (4 * 3)\n        + gas_costs.G_LOW  # MLOAD for salt (3)\n        + gas_costs.G_VERY_LOW  # ADD for increment (3)\n        + gas_costs.G_LOW  # MSTORE salt back (3)\n        + 10  # While loop overhead\n    )\n\n    # Calculate how many contracts to access based on available gas\n    available_gas = gas_benchmark_value - intrinsic_gas - 1000  # Reserve for cleanup\n    contracts_needed = int(available_gas // cost_per_contract)\n\n    # Deploy factory using stub contract\n    factory_address = pre.deploy_contract(\n        code=Bytecode(),\n        stub=\"bloatnet_factory\",\n    )\n\n    # Log test requirements\n    print(\n        f\"Test needs {contracts_needed} contracts for \"\n        f\"{gas_benchmark_value / 1_000_000:.1f}M gas. \"\n        f\"Factory storage will be checked during execution.\"\n    )\n\n    # Define operations that differ based on parameter\n    balance_op = Op.POP(Op.BALANCE)\n    extcodehash_op = Op.POP(Op.EXTCODEHASH)\n    benchmark_ops = (\n        (balance_op + extcodehash_op) if balance_first else (extcodehash_op + balance_op)\n    )\n\n    # Build attack contract that reads config from factory and performs attack\n    attack_code = (\n        # Call getConfig() on factory to get num_deployed and init_code_hash\n        Op.STATICCALL(\n            gas=Op.GAS,\n            address=factory_address,\n            args_offset=0,\n            args_size=0,\n            ret_offset=96,\n            ret_size=64,\n        )\n        # Check if call succeeded\n        + Op.ISZERO\n        + Op.PUSH2(0x1000)  # Jump to error handler if failed\n        + Op.JUMPI\n        # Load results from memory\n        + Op.MLOAD(96)  # Load num_deployed_contracts\n        + Op.MLOAD(128)  # Load init_code_hash\n        # Setup memory for CREATE2 address generation\n        + Op.MSTORE(0, factory_address)\n        + Op.MSTORE8(11, 0xFF)\n        + Op.MSTORE(32, 0)  # Initial salt\n        + Op.PUSH1(64)\n        + Op.MSTORE  # Store init_code_hash\n        # Main attack loop\n        + While(\n            body=(\n                # Generate CREATE2 address\n                Op.SHA3(11, 85)\n                + Op.DUP1  # Duplicate for second operation\n                + benchmark_ops  # Execute operations in specified order\n                # Increment salt\n                + Op.MSTORE(32, Op.ADD(Op.MLOAD(32), 1))\n            ),\n            condition=Op.DUP1 + Op.PUSH1(1) + Op.SWAP1 + Op.SUB + Op.DUP1 + Op.ISZERO + Op.ISZERO,\n        )\n        + Op.POP  # Clean up counter\n    )\n\n    # Deploy attack contract\n    attack_address = pre.deploy_contract(code=attack_code)\n\n    # Run the attack\n    attack_tx = Transaction(\n        to=attack_address,\n        gas_limit=gas_benchmark_value,\n        sender=pre.fund_eoa(),\n    )\n\n    # Post-state\n    post = {\n        attack_address: Account(storage={}),\n    }\n\n    blockchain_test(\n        pre=pre,\n        blocks=[Block(txs=[attack_tx])],\n        post=post,\n    )\n\n\n# ERC20 function selectors\nBALANCEOF_SELECTOR = 0x70A08231  # balanceOf(address)\nAPPROVE_SELECTOR = 0x095EA7B3  # approve(address,uint256)\n\n\n@pytest.mark.valid_from(\"Prague\")\n@pytest.mark.parametrize(\"num_contracts\", [1, 5, 10, 20, 100])\n@pytest.mark.parametrize(\n    \"sload_percent,sstore_percent\",\n    [\n        pytest.param(50, 50, id=\"50-50\"),\n        pytest.param(70, 30, id=\"70-30\"),\n        pytest.param(90, 10, id=\"90-10\"),\n    ],\n)\ndef test_mixed_sload_sstore(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    fork: Fork,\n    gas_benchmark_value: int,\n    address_stubs: AddressStubs,\n    num_contracts: int,\n    sload_percent: int,\n    sstore_percent: int,\n    request: pytest.FixtureRequest,\n) -> None:\n    \"\"\"\n    BloatNet mixed SLOAD/SSTORE benchmark with configurable operation ratios.\n\n    This test:\n    1. Filters stubs matching test name prefix\n       (e.g., test_mixed_sload_sstore_*)\n    2. Uses first N contracts based on num_contracts parameter\n    3. Divides gas budget evenly across all selected contracts\n    4. For each contract, divides gas into SLOAD and SSTORE portions by\n       percentage\n    5. Executes balanceOf (SLOAD) and approve (SSTORE) calls per the ratio\n    6. Stresses clients with combined read/write operations on large\n       contracts\n    \"\"\"\n    # Extract test function name for stub filtering\n    test_name = request.node.name.split(\"[\")[0]  # Remove parametrization suffix\n\n    # Filter stubs that match the test name prefix\n    matching_stubs = [\n        stub_name for stub_name in address_stubs.root.keys() if stub_name.startswith(test_name)\n    ]\n\n    # Validate we have enough stubs\n    if len(matching_stubs) < num_contracts:\n        pytest.fail(\n            f\"Not enough matching stubs for test '{test_name}'. \"\n            f\"Required: {num_contracts}, Found: {len(matching_stubs)}. \"\n            f\"Matching stubs: {matching_stubs}\"\n        )\n\n    # Select first N stubs\n    selected_stubs = matching_stubs[:num_contracts]\n    gas_costs = fork.gas_costs()\n\n    # Calculate gas costs\n    intrinsic_gas = fork.transaction_intrinsic_cost_calculator()(calldata=b\"\")\n\n    # Fixed overhead for SLOAD loop\n    sload_loop_overhead = (\n        # Attack contract loop overhead\n        gas_costs.G_VERY_LOW * 2  # MLOAD counter (3*2)\n        + gas_costs.G_VERY_LOW * 2  # MSTORE selector (3*2)\n        + gas_costs.G_VERY_LOW * 3  # MLOAD + MSTORE address (3*3)\n        + gas_costs.G_BASE  # POP (2)\n        + gas_costs.G_BASE * 3  # SUB + MLOAD + MSTORE for counter decrement (2*3)\n        + gas_costs.G_BASE * 2  # ISZERO * 2 for loop condition (2*2)\n        + gas_costs.G_MID  # JUMPI (8)\n    )\n\n    # ERC20 balanceOf internal gas\n    sload_erc20_internal = (\n        gas_costs.G_VERY_LOW  # PUSH4 selector (3)\n        + gas_costs.G_BASE  # EQ selector match (2)\n        + gas_costs.G_MID  # JUMPI to function (8)\n        + gas_costs.G_JUMPDEST  # JUMPDEST at function start (1)\n        + gas_costs.G_VERY_LOW * 2  # CALLDATALOAD arg (3*2)\n        + gas_costs.G_KECCAK_256  # keccak256 static (30)\n        + gas_costs.G_KECCAK_256_WORD * 2  # keccak256 dynamic for 64 bytes (2*6)\n        + gas_costs.G_COLD_SLOAD  # Cold SLOAD - always cold for random addresses (2100)\n        + gas_costs.G_VERY_LOW * 3  # MSTORE result + RETURN setup (3*3)\n    )\n\n    # Fixed overhead for SSTORE loop\n    sstore_loop_overhead = (\n        # Attack contract loop body operations\n        gas_costs.G_VERY_LOW  # MSTORE selector at memory[32] (3)\n        + gas_costs.G_LOW  # MLOAD counter (5)\n        + gas_costs.G_VERY_LOW  # MSTORE spender at memory[64] (3)\n        + gas_costs.G_BASE  # POP call result (2)\n        # Counter decrement\n        + gas_costs.G_LOW  # MLOAD counter (5)\n        + gas_costs.G_VERY_LOW  # PUSH1 1 (3)\n        + gas_costs.G_VERY_LOW  # SUB (3)\n        + gas_costs.G_VERY_LOW  # MSTORE counter back (3)\n        # While loop condition check\n        + gas_costs.G_LOW  # MLOAD counter (5)\n        + gas_costs.G_BASE  # ISZERO (2)\n        + gas_costs.G_BASE  # ISZERO (2)\n        + gas_costs.G_MID  # JUMPI back to loop start (8)\n    )\n\n    # ERC20 approve internal gas\n    # Cold SSTORE: 22100 = 20000 base + 2100 cold access\n    sstore_erc20_internal = (\n        gas_costs.G_VERY_LOW  # PUSH4 selector (3)\n        + gas_costs.G_BASE  # EQ selector match (2)\n        + gas_costs.G_MID  # JUMPI to function (8)\n        + gas_costs.G_JUMPDEST  # JUMPDEST at function start (1)\n        + gas_costs.G_VERY_LOW  # CALLDATALOAD spender (3)\n        + gas_costs.G_VERY_LOW  # CALLDATALOAD amount (3)\n        + gas_costs.G_KECCAK_256  # keccak256 static (30)\n        + gas_costs.G_KECCAK_256_WORD * 2  # keccak256 dynamic for 64 bytes (12)\n        + gas_costs.G_COLD_SLOAD  # Cold SLOAD for allowance check (2100)\n        + gas_costs.G_STORAGE_SET  # SSTORE base cost (20000)\n        + gas_costs.G_COLD_SLOAD  # Additional cold storage access (2100)\n        + gas_costs.G_VERY_LOW  # PUSH1 1 for return value (3)\n        + gas_costs.G_VERY_LOW  # MSTORE return value (3)\n        + gas_costs.G_VERY_LOW  # PUSH1 32 for return size (3)\n        + gas_costs.G_VERY_LOW  # PUSH1 0 for return offset (3)\n    )\n\n    # Calculate gas budget per contract\n    available_gas = gas_benchmark_value - intrinsic_gas\n    gas_per_contract = available_gas // num_contracts\n\n    # For each contract, split gas by percentage\n    sload_gas_per_contract = (gas_per_contract * sload_percent) // 100\n    sstore_gas_per_contract = (gas_per_contract * sstore_percent) // 100\n\n    # Account for cold/warm transitions in CALL costs\n    # First SLOAD call is COLD (2600), rest are WARM (100)\n    sload_warm_cost = sload_loop_overhead + gas_costs.G_WARM_ACCOUNT_ACCESS + sload_erc20_internal\n    cold_warm_diff = gas_costs.G_COLD_ACCOUNT_ACCESS - gas_costs.G_WARM_ACCOUNT_ACCESS\n    sload_calls_per_contract = int((sload_gas_per_contract - cold_warm_diff) // sload_warm_cost)\n\n    # First SSTORE call is COLD (2600), rest are WARM (100)\n    sstore_warm_cost = (\n        sstore_loop_overhead + gas_costs.G_WARM_ACCOUNT_ACCESS + sstore_erc20_internal\n    )\n    sstore_calls_per_contract = int((sstore_gas_per_contract - cold_warm_diff) // sstore_warm_cost)\n\n    # Deploy selected ERC20 contracts using stubs\n    erc20_addresses = []\n    for stub_name in selected_stubs:\n        addr = pre.deploy_contract(\n            code=Bytecode(),\n            stub=stub_name,\n        )\n        erc20_addresses.append(addr)\n\n    # Log test requirements\n    print(\n        f\"Total gas budget: {gas_benchmark_value / 1_000_000:.1f}M gas. \"\n        f\"~{gas_per_contract / 1_000_000:.1f}M gas per contract \"\n        f\"({sload_percent}% SLOAD, {sstore_percent}% SSTORE). \"\n        f\"Per contract: {sload_calls_per_contract} balanceOf calls, \"\n        f\"{sstore_calls_per_contract} approve calls.\"\n    )\n\n    # Build attack code that loops through each contract\n    attack_code: Bytecode = (\n        Op.JUMPDEST  # Entry point\n        + Op.MSTORE(offset=0, value=BALANCEOF_SELECTOR)  # Store selector once for all contracts\n    )\n\n    for erc20_address in erc20_addresses:\n        # For each contract, execute SLOAD operations (balanceOf)\n        attack_code += (\n            # Initialize counter in memory[32] = number of balanceOf calls\n            Op.MSTORE(offset=32, value=sload_calls_per_contract)\n            # Loop for balanceOf calls\n            + While(\n                condition=Op.MLOAD(32) + Op.ISZERO + Op.ISZERO,\n                body=(\n                    # Call balanceOf(address) on ERC20 contract\n                    # args_offset=28 reads: selector from MEM[28:32] + address\n                    # from MEM[32:64]\n                    Op.CALL(\n                        address=erc20_address,\n                        value=0,\n                        args_offset=28,\n                        args_size=36,\n                        ret_offset=0,\n                        ret_size=0,\n                    )\n                    + Op.POP  # Discard CALL success status\n                    # Decrement counter\n                    + Op.MSTORE(offset=32, value=Op.SUB(Op.MLOAD(32), 1))\n                ),\n            )\n        )\n\n        # For each contract, execute SSTORE operations (approve)\n        # Reuse the same memory layout as balanceOf\n        attack_code += (\n            # Store approve selector at memory[0] (reusing same slot)\n            Op.MSTORE(offset=0, value=APPROVE_SELECTOR)\n            # Initialize counter in memory[32] = number of approve calls\n            # (reusing same slot)\n            + Op.MSTORE(offset=32, value=sstore_calls_per_contract)\n            # Loop for approve calls\n            + While(\n                condition=Op.MLOAD(32) + Op.ISZERO + Op.ISZERO,\n                body=(\n                    # Store spender at memory[64] (counter as spender/amount)\n                    Op.MSTORE(offset=64, value=Op.MLOAD(32))\n                    # Call approve(spender, amount) on ERC20 contract\n                    # args_offset=28 reads: selector from MEM[28:32] +\n                    # spender from MEM[32:64] + amount from MEM[64:96]\n                    # Note: counter at MEM[32:64] is reused as spender,\n                    # and value at MEM[64:96] serves as the amount\n                    + Op.CALL(\n                        address=erc20_address,\n                        value=0,\n                        args_offset=28,\n                        args_size=68,\n                        ret_offset=0,\n                        ret_size=0,\n                    )\n                    + Op.POP  # Discard CALL success status\n                    # Decrement counter\n                    + Op.MSTORE(offset=32, value=Op.SUB(Op.MLOAD(32), 1))\n                ),\n            )\n        )\n\n    # Deploy attack contract\n    attack_address = pre.deploy_contract(code=attack_code)\n\n    # Run the attack\n    attack_tx = Transaction(\n        to=attack_address,\n        gas_limit=gas_benchmark_value,\n        sender=pre.fund_eoa(),\n    )\n\n    # Post-state\n    post = {\n        attack_address: Account(storage={}),\n    }\n\n    blockchain_test(\n        pre=pre,\n        blocks=[Block(txs=[attack_tx])],\n        post=post,\n    )\n"
  },
  {
    "path": "tests/benchmark/stateful/bloatnet/test_single_opcode.py",
    "content": "\"\"\"\nabstract: BloatNet single-opcode benchmark cases for state-related operations.\n\n   These tests focus on individual EVM opcodes (SLOAD, SSTORE) to measure\n   their performance when accessing many storage slots across pre-deployed\n   contracts. Unlike multi-opcode tests, these isolate single operations\n   to benchmark specific state-handling bottlenecks.\n\"\"\"\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    Account,\n    Alloc,\n    Block,\n    BlockchainTestFiller,\n    Transaction,\n    While,\n)\nfrom ethereum_test_vm import Bytecode\nfrom ethereum_test_vm import Opcodes as Op\nfrom pytest_plugins.execute.pre_alloc import AddressStubs\n\nREFERENCE_SPEC_GIT_PATH = \"DUMMY/bloatnet.md\"\nREFERENCE_SPEC_VERSION = \"1.0\"\n\n# ERC20 function selectors\nBALANCEOF_SELECTOR = 0x70A08231  # balanceOf(address)\nAPPROVE_SELECTOR = 0x095EA7B3  # approve(address,uint256)\nALLOWANCE_SELECTOR = 0xDD62ED3E  # allowance(address,address)\n\n\n# SLOAD BENCHMARK ARCHITECTURE:\n#\n#   [Pre-deployed ERC20 Contract] ──── Storage slots for balances\n#           │\n#           ���  balanceOf(address) → SLOAD(keccak256(address || slot))\n#           │\n#   [Attack Contract] ──CALL──► ERC20.balanceOf(random_address)\n#           │\n#           └─► Loop(i=0 to N):\n#                 1. Generate random address from counter\n#                 2. CALL balanceOf(random_address) → forces cold SLOAD\n#                 3. Most addresses have zero balance → empty storage slots\n#\n# WHY IT STRESSES CLIENTS:\n#   - Each balanceOf() call forces a cold SLOAD on a likely-empty slot\n#   - Storage slot = keccak256(address || balances_slot)\n#   - Random addresses ensure maximum cache misses\n#   - Tests client's sparse storage handling efficiency\n\n\n# SSTORE BENCHMARK ARCHITECTURE:\n#\n#   [Pre-deployed ERC20 Contract] ──── Storage slots for allowances\n#           │\n#           │  approve(spender, amount)\n#           │    → SSTORE(keccak256(spender || slot), amount)\n#           │\n#   [Attack Contract]\n#       ──CALL──► ERC20.approve(counter_as_spender, counter_as_amount)\n#           │\n#           └─► Loop(i=0 to N):\n#                 1. Use counter as both spender address and amount\n#                 2. CALL approve(counter, counter) → forces cold SSTORE\n#                 3. Writes to new allowance slots in sparse storage\n#\n# WHY IT STRESSES CLIENTS:\n#   - Each approve() call forces an SSTORE to a new storage slot\n#   - Storage slot = keccak256(\n#       msg.sender || keccak256(spender || allowances_slot)\n#     )\n#   - Sequential counter ensures unique storage locations\n#   - Tests client's ability to handle many storage writes\n#   - Simulates real-world contract state accumulation over time\n\n\n@pytest.mark.valid_from(\"Prague\")\n@pytest.mark.parametrize(\"num_contracts\", [1, 5, 10, 20, 100])\ndef test_sload_empty_erc20_balanceof(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    fork: Fork,\n    gas_benchmark_value: int,\n    address_stubs: AddressStubs,\n    num_contracts: int,\n    request: pytest.FixtureRequest,\n) -> None:\n    \"\"\"\n    BloatNet SLOAD benchmark using ERC20 balanceOf queries on random\n    addresses.\n\n    This test:\n    1. Filters stubs matching test name prefix\n       (e.g., test_sload_empty_erc20_balanceof_*)\n    2. Uses first N contracts based on num_contracts parameter\n    3. Splits gas budget evenly across the selected contracts\n    4. Queries balanceOf() incrementally starting by 0 and increasing by 1\n       (thus forcing SLOADs to non-existing addresses)\n    \"\"\"\n    # Extract test function name for stub filtering\n    test_name = request.node.name.split(\"[\")[0]  # Remove parametrization suffix\n\n    # Filter stubs that match the test name prefix\n    matching_stubs = [\n        stub_name for stub_name in address_stubs.root.keys() if stub_name.startswith(test_name)\n    ]\n\n    # Validate we have enough stubs\n    if len(matching_stubs) < num_contracts:\n        pytest.fail(\n            f\"Not enough matching stubs for test '{test_name}'. \"\n            f\"Required: {num_contracts}, Found: {len(matching_stubs)}. \"\n            f\"Matching stubs: {matching_stubs}\"\n        )\n\n    # Select first N stubs\n    selected_stubs = matching_stubs[:num_contracts]\n    gas_costs = fork.gas_costs()\n\n    # Calculate gas costs\n    intrinsic_gas = fork.transaction_intrinsic_cost_calculator()(calldata=b\"\")\n\n    # Fixed overhead per iteration (loop mechanics, independent of warm/cold)\n    loop_overhead = (\n        # Attack contract loop overhead\n        gas_costs.G_VERY_LOW * 2  # MLOAD counter (3*2)\n        + gas_costs.G_VERY_LOW * 2  # MSTORE selector (3*2)\n        + gas_costs.G_VERY_LOW * 3  # MLOAD + MSTORE address (3*3)\n        + gas_costs.G_BASE  # POP (2)\n        + gas_costs.G_BASE * 3  # SUB + MLOAD + MSTORE for counter decrement (2*3)\n        + gas_costs.G_BASE * 2  # ISZERO * 2 for loop condition (2*2)\n        + gas_costs.G_MID  # JUMPI (8)\n    )\n\n    # ERC20 internal gas (same for all calls)\n    erc20_internal_gas = (\n        gas_costs.G_VERY_LOW  # PUSH4 selector (3)\n        + gas_costs.G_BASE  # EQ selector match (2)\n        + gas_costs.G_MID  # JUMPI to function (8)\n        + gas_costs.G_JUMPDEST  # JUMPDEST at function start (1)\n        + gas_costs.G_VERY_LOW * 2  # CALLDATALOAD arg (3*2)\n        + gas_costs.G_KECCAK_256  # keccak256 static (30)\n        + gas_costs.G_KECCAK_256_WORD * 2  # keccak256 dynamic for 64 bytes (2*6)\n        + gas_costs.G_COLD_SLOAD  # Cold SLOAD - always cold for random addresses (2100)\n        + gas_costs.G_VERY_LOW * 3  # MSTORE result + RETURN setup (3*3)\n        # RETURN costs 0 gas\n    )\n\n    # Calculate gas budget per contract\n    available_gas = gas_benchmark_value - intrinsic_gas\n    gas_per_contract = available_gas // num_contracts\n\n    # For each contract: first call is COLD (2600), subsequent are WARM (100)\n    # Solve for calls_per_contract:\n    # gas_per_contract = cold_call + (calls-1) * warm_call\n    # Simplifies to: gas = cold_warm_diff + calls * warm_call_cost\n    warm_call_cost = loop_overhead + gas_costs.G_WARM_ACCOUNT_ACCESS + erc20_internal_gas\n    cold_warm_diff = gas_costs.G_COLD_ACCOUNT_ACCESS - gas_costs.G_WARM_ACCOUNT_ACCESS\n\n    calls_per_contract = int((gas_per_contract - cold_warm_diff) // warm_call_cost)\n\n    # Deploy selected ERC20 contracts using stubs\n    # In execute mode: stubs point to already-deployed contracts on chain\n    # In fill mode: empty bytecode is deployed as placeholder\n    erc20_addresses = []\n    for stub_name in selected_stubs:\n        addr = pre.deploy_contract(\n            code=Bytecode(),  # Required parameter, ignored for stubs in execute mode\n            stub=stub_name,\n        )\n        erc20_addresses.append(addr)\n\n    # Log test requirements\n    print(\n        f\"Total gas budget: {gas_benchmark_value / 1_000_000:.1f}M gas. \"\n        f\"~{gas_per_contract / 1_000_000:.1f}M gas per contract, \"\n        f\"{calls_per_contract} balanceOf calls per contract.\"\n    )\n\n    # Build attack code that loops through each contract\n    attack_code: Bytecode = (\n        Op.JUMPDEST  # Entry point\n        + Op.MSTORE(offset=0, value=BALANCEOF_SELECTOR)  # Store selector once for all contracts\n    )\n\n    for erc20_address in erc20_addresses:\n        # For each contract, initialize counter and loop\n        attack_code += (\n            # Initialize counter in memory[32] = number of calls\n            Op.MSTORE(offset=32, value=calls_per_contract)\n            # Loop for this specific contract\n            + While(\n                condition=Op.MLOAD(32) + Op.ISZERO + Op.ISZERO,  # Continue while counter > 0\n                body=(\n                    # Call balanceOf(address) on ERC20 contract\n                    # args_offset=28 reads: selector from MEM[28:32] + address\n                    # from MEM[32:64]\n                    Op.CALL(\n                        address=erc20_address,\n                        value=0,\n                        args_offset=28,\n                        args_size=36,\n                        ret_offset=0,\n                        ret_size=0,\n                    )\n                    + Op.POP  # Discard CALL success status\n                    # Decrement counter: counter - 1\n                    + Op.MSTORE(offset=32, value=Op.SUB(Op.MLOAD(32), 1))\n                ),\n            )\n        )\n\n    # Deploy attack contract\n    attack_address = pre.deploy_contract(code=attack_code)\n\n    # Run the attack\n    attack_tx = Transaction(\n        to=attack_address,\n        gas_limit=gas_benchmark_value,\n        sender=pre.fund_eoa(),\n    )\n\n    # Post-state\n    post = {\n        attack_address: Account(storage={}),\n    }\n\n    blockchain_test(\n        pre=pre,\n        blocks=[Block(txs=[attack_tx])],\n        post=post,\n    )\n\n\n@pytest.mark.valid_from(\"Prague\")\n@pytest.mark.parametrize(\"num_contracts\", [1, 5, 10, 20, 100])\ndef test_sstore_erc20_approve(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    fork: Fork,\n    gas_benchmark_value: int,\n    address_stubs: AddressStubs,\n    num_contracts: int,\n    request: pytest.FixtureRequest,\n) -> None:\n    \"\"\"\n    BloatNet SSTORE benchmark using ERC20 approve to write to storage.\n\n    This test:\n    1. Filters stubs matching test name prefix\n       (e.g., test_sstore_erc20_approve_*)\n    2. Uses first N contracts based on num_contracts parameter\n    3. Splits gas budget evenly across the selected contracts\n    4. Calls approve(spender, amount) incrementally (counter as spender)\n    5. Forces SSTOREs to allowance mapping storage slots\n    \"\"\"\n    # Extract test function name for stub filtering\n    test_name = request.node.name.split(\"[\")[0]  # Remove parametrization suffix\n\n    # Filter stubs that match the test name prefix\n    matching_stubs = [\n        stub_name for stub_name in address_stubs.root.keys() if stub_name.startswith(test_name)\n    ]\n\n    # Validate we have enough stubs\n    if len(matching_stubs) < num_contracts:\n        pytest.fail(\n            f\"Not enough matching stubs for test '{test_name}'. \"\n            f\"Required: {num_contracts}, Found: {len(matching_stubs)}. \"\n            f\"Matching stubs: {matching_stubs}\"\n        )\n\n    # Select first N stubs\n    selected_stubs = matching_stubs[:num_contracts]\n    gas_costs = fork.gas_costs()\n\n    # Calculate gas costs\n    intrinsic_gas = fork.transaction_intrinsic_cost_calculator()(calldata=b\"\")\n\n    # Per-contract fixed overhead (setup + teardown)\n    memory_expansion_cost = 15  # Memory expansion to 160 bytes (5 words)\n    overhead_per_contract = (\n        gas_costs.G_VERY_LOW  # MSTORE to initialize counter (3)\n        + memory_expansion_cost  # Memory expansion (15)\n        + gas_costs.G_JUMPDEST  # JUMPDEST at loop start (1)\n        + gas_costs.G_LOW  # MLOAD for While condition check (5)\n        + gas_costs.G_BASE  # ISZERO (2)\n        + gas_costs.G_BASE  # ISZERO (2)\n        + gas_costs.G_MID  # JUMPI (8)\n        + gas_costs.G_BASE  # POP to clean up counter at end (2)\n    )  # = 38\n\n    # Fixed overhead per iteration (loop mechanics, independent of warm/cold)\n    loop_overhead = (\n        # Attack contract loop body operations\n        gas_costs.G_VERY_LOW  # MSTORE selector at memory[32] (3)\n        + gas_costs.G_LOW  # MLOAD counter (5)\n        + gas_costs.G_VERY_LOW  # MSTORE spender at memory[64] (3)\n        + gas_costs.G_BASE  # POP call result (2)\n        # Counter decrement: MSTORE(0, SUB(MLOAD(0), 1))\n        + gas_costs.G_LOW  # MLOAD counter (5)\n        + gas_costs.G_VERY_LOW  # PUSH1 1 (3)\n        + gas_costs.G_VERY_LOW  # SUB (3)\n        + gas_costs.G_VERY_LOW  # MSTORE counter back (3)\n        # While loop condition check\n        + gas_costs.G_LOW  # MLOAD counter (5)\n        + gas_costs.G_BASE  # ISZERO (2)\n        + gas_costs.G_BASE  # ISZERO (2)\n        + gas_costs.G_MID  # JUMPI back to loop start (8)\n    )\n\n    # ERC20 internal gas (same for all calls)\n    # Note: SSTORE cost is 22100 for cold slot, zero-to-non-zero\n    # (20000 base + 2100 cold access)\n    erc20_internal_gas = (\n        gas_costs.G_VERY_LOW  # PUSH4 selector (3)\n        + gas_costs.G_BASE  # EQ selector match (2)\n        + gas_costs.G_MID  # JUMPI to function (8)\n        + gas_costs.G_JUMPDEST  # JUMPDEST at function start (1)\n        + gas_costs.G_VERY_LOW  # CALLDATALOAD spender (3)\n        + gas_costs.G_VERY_LOW  # CALLDATALOAD amount (3)\n        + gas_costs.G_KECCAK_256  # keccak256 static (30)\n        + gas_costs.G_KECCAK_256_WORD * 2  # keccak256 dynamic for 64 bytes (12)\n        + gas_costs.G_COLD_SLOAD  # Cold SLOAD for allowance check (2100)\n        + gas_costs.G_STORAGE_SET  # SSTORE base cost (20000)\n        + gas_costs.G_COLD_SLOAD  # Additional cold storage access (2100)\n        + gas_costs.G_VERY_LOW  # PUSH1 1 for return value (3)\n        + gas_costs.G_VERY_LOW  # MSTORE return value (3)\n        + gas_costs.G_VERY_LOW  # PUSH1 32 for return size (3)\n        + gas_costs.G_VERY_LOW  # PUSH1 0 for return offset (3)\n        # RETURN costs 0 gas\n    )\n\n    # Calculate total gas needed\n    total_overhead = intrinsic_gas + (overhead_per_contract * num_contracts)\n    available_gas_for_iterations = gas_benchmark_value - total_overhead\n\n    # For each contract: first call is COLD (2600), subsequent are WARM (100)\n    # Solve for calls per contract accounting for cold/warm transition\n    warm_call_cost = loop_overhead + gas_costs.G_WARM_ACCOUNT_ACCESS + erc20_internal_gas\n    cold_warm_diff = gas_costs.G_COLD_ACCOUNT_ACCESS - gas_costs.G_WARM_ACCOUNT_ACCESS\n\n    # Per contract: gas_available = cold_warm_diff + calls * warm_call_cost\n    gas_per_contract = available_gas_for_iterations // num_contracts\n    calls_per_contract = int((gas_per_contract - cold_warm_diff) // warm_call_cost)\n\n    # Deploy selected ERC20 contracts using stubs\n    erc20_addresses = []\n    for stub_name in selected_stubs:\n        addr = pre.deploy_contract(\n            code=Bytecode(),\n            stub=stub_name,\n        )\n        erc20_addresses.append(addr)\n\n    # Log test requirements\n    print(\n        f\"Total gas budget: {gas_benchmark_value / 1_000_000:.1f}M gas. \"\n        f\"Intrinsic: {intrinsic_gas}, Overhead per contract: {overhead_per_contract}, \"\n        f\"Warm call cost: {warm_call_cost}. \"\n        f\"{calls_per_contract} approve calls per contract ({num_contracts} contracts).\"\n    )\n\n    # Build attack code that loops through each contract\n    attack_code: Bytecode = (\n        Op.JUMPDEST  # Entry point\n        + Op.MSTORE(offset=0, value=APPROVE_SELECTOR)  # Store selector once for all contracts\n    )\n\n    for erc20_address in erc20_addresses:\n        # For each contract, initialize counter and loop\n        attack_code += (\n            # Initialize counter in memory[32] = number of calls\n            Op.MSTORE(offset=32, value=calls_per_contract)\n            # Loop for this specific contract\n            + While(\n                condition=Op.MLOAD(32) + Op.ISZERO + Op.ISZERO,  # Continue while counter > 0\n                body=(\n                    # Store spender at memory[64] (counter as spender/amount)\n                    Op.MSTORE(offset=64, value=Op.MLOAD(32))\n                    # Call approve(spender, amount) on ERC20 contract\n                    # args_offset=28 reads: selector from MEM[28:32] +\n                    # spender from MEM[32:64] + amount from MEM[64:96]\n                    # Note: counter at MEM[32:64] is reused as spender,\n                    # and value at MEM[64:96] serves as the amount\n                    + Op.CALL(\n                        address=erc20_address,\n                        value=0,\n                        args_offset=28,\n                        args_size=68,  # 4 bytes selector + 32 bytes spender + 32 bytes amount\n                        ret_offset=0,\n                        ret_size=0,\n                    )\n                    + Op.POP  # Discard CALL success status\n                    # Decrement counter: counter - 1\n                    + Op.MSTORE(offset=32, value=Op.SUB(Op.MLOAD(32), 1))\n                ),\n            )\n        )\n\n    # Deploy attack contract\n    attack_address = pre.deploy_contract(code=attack_code)\n\n    # Run the attack\n    attack_tx = Transaction(\n        to=attack_address,\n        gas_limit=gas_benchmark_value,\n        sender=pre.fund_eoa(),\n    )\n\n    # Post-state\n    post = {\n        attack_address: Account(storage={}),\n    }\n\n    blockchain_test(\n        pre=pre,\n        blocks=[Block(txs=[attack_tx])],\n        post=post,\n    )\n"
  },
  {
    "path": "tests/benchmark/stateful/conftest.py",
    "content": "\"\"\"Pytest configuration for state tests.\"\"\"\n\nfrom pathlib import Path\nfrom typing import Any\n\nimport pytest\n\nDEFAULT_BENCHMARK_FORK = \"Prague\"\n\n\ndef pytest_generate_tests(metafunc: Any) -> None:\n    \"\"\"\n    Add default valid_from marker to state tests without explicit fork\n    specification.\n    \"\"\"\n    state_dir = Path(__file__).parent\n    test_file_path = Path(metafunc.definition.fspath)\n\n    if state_dir in test_file_path.parents:\n        has_valid_from = any(\n            marker.name == \"valid_from\" for marker in metafunc.definition.iter_markers()\n        )\n        if not has_valid_from:\n            metafunc.definition.add_marker(pytest.mark.valid_from(DEFAULT_BENCHMARK_FORK))\n\n\ndef pytest_collection_modifyitems(config: Any, items: Any) -> None:\n    \"\"\"Manage stateful test markers and filtering.\"\"\"\n    state_dir = Path(__file__).parent\n    gen_docs = config.getoption(\"--gen-docs\", default=False)\n\n    if gen_docs:\n        _add_stateful_markers_for_docs(items, state_dir)\n        return\n\n    marker_expr = config.getoption(\"-m\", default=\"\")\n\n    items_to_remove = []\n\n    for i, item in enumerate(items):\n        item_path = Path(item.fspath)\n        is_in_state_dir = state_dir in item_path.parents\n\n        # Add stateful marker to tests in state directory that don't have it\n        if is_in_state_dir and not item.get_closest_marker(\"stateful\"):\n            item.add_marker(pytest.mark.stateful)\n\n        has_stateful_marker = item.get_closest_marker(\"stateful\")\n\n        run_stateful = (\n            marker_expr and (\"stateful\" in marker_expr) and (\"not stateful\" not in marker_expr)\n        )\n\n        # When not running stateful tests, remove all stateful tests\n        if not run_stateful and has_stateful_marker:\n            items_to_remove.append(i)\n\n    for i in reversed(items_to_remove):\n        items.pop(i)\n\n\ndef _add_stateful_markers_for_docs(items: Any, state_dir: Any) -> None:\n    \"\"\"Add stateful markers for documentation generation.\"\"\"\n    for item in items:\n        item_path = Path(item.fspath)\n        if state_dir in item_path.parents and not item.get_closest_marker(\"stateful\"):\n            item.add_marker(pytest.mark.stateful)\n"
  },
  {
    "path": "tests/benchmark/test_worst_blocks.py",
    "content": "\"\"\"\nTests that benchmark EVMs in worst-case block scenarios.\n\"\"\"\n\nimport math\nimport random\nfrom typing import Generator, Tuple\n\nimport pytest\n\nfrom ethereum_test_base_types import Account\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    AccessList,\n    Address,\n    Alloc,\n    AuthorizationTuple,\n    BenchmarkTestFiller,\n    Block,\n    BlockchainTestFiller,\n    Hash,\n    Transaction,\n)\nfrom ethereum_test_vm import Opcodes as Op\n\n\n@pytest.fixture\ndef iteration_count(intrinsic_cost: int, gas_benchmark_value: int) -> int:\n    \"\"\"\n    Calculate the number of iterations based on the gas limit and intrinsic\n    cost.\n    \"\"\"\n    return gas_benchmark_value // intrinsic_cost\n\n\n@pytest.fixture\ndef transfer_amount() -> int:\n    \"\"\"Ether to transfer in each transaction.\"\"\"\n    return 1\n\n\n@pytest.fixture\ndef intrinsic_cost(fork: Fork) -> int:\n    \"\"\"Transaction intrinsic cost.\"\"\"\n    intrinsic_cost = fork.transaction_intrinsic_cost_calculator()\n    return intrinsic_cost()\n\n\ndef get_distinct_sender_list(pre: Alloc) -> Generator[Address, None, None]:\n    \"\"\"Get a list of distinct sender accounts.\"\"\"\n    while True:\n        yield pre.fund_eoa()\n\n\ndef get_distinct_receiver_list(pre: Alloc) -> Generator[Address, None, None]:\n    \"\"\"Get a list of distinct receiver accounts.\"\"\"\n    while True:\n        yield pre.fund_eoa(0)\n\n\ndef get_single_sender_list(pre: Alloc) -> Generator[Address, None, None]:\n    \"\"\"Get a list of single sender accounts.\"\"\"\n    sender = pre.fund_eoa()\n    while True:\n        yield sender\n\n\ndef get_single_receiver_list(pre: Alloc) -> Generator[Address, None, None]:\n    \"\"\"Get a list of single receiver accounts.\"\"\"\n    receiver = pre.fund_eoa(0)\n    while True:\n        yield receiver\n\n\n@pytest.fixture\ndef ether_transfer_case(\n    case_id: str,\n    pre: Alloc,\n) -> Tuple[Generator[Address, None, None], Generator[Address, None, None]]:\n    \"\"\"Generate the test parameters based on the case ID.\"\"\"\n    if case_id == \"a_to_a\":\n        \"\"\"Sending to self.\"\"\"\n        senders = get_single_sender_list(pre)\n        receivers = senders\n\n    elif case_id == \"a_to_b\":\n        \"\"\"One sender → one receiver.\"\"\"\n        senders = get_single_sender_list(pre)\n        receivers = get_single_receiver_list(pre)\n\n    elif case_id == \"diff_acc_to_b\":\n        \"\"\"Multiple senders → one receiver.\"\"\"\n        senders = get_distinct_sender_list(pre)\n        receivers = get_single_receiver_list(pre)\n\n    elif case_id == \"a_to_diff_acc\":\n        \"\"\"One sender → multiple receivers.\"\"\"\n        senders = get_single_sender_list(pre)\n        receivers = get_distinct_receiver_list(pre)\n\n    elif case_id == \"diff_acc_to_diff_acc\":\n        \"\"\"Multiple senders → multiple receivers.\"\"\"\n        senders = get_distinct_sender_list(pre)\n        receivers = get_distinct_receiver_list(pre)\n\n    else:\n        raise ValueError(f\"Unknown case: {case_id}\")\n\n    return senders, receivers\n\n\n@pytest.mark.parametrize(\n    \"case_id\",\n    [\"a_to_a\", \"a_to_b\", \"diff_acc_to_b\", \"a_to_diff_acc\", \"diff_acc_to_diff_acc\"],\n)\ndef test_block_full_of_ether_transfers(\n    benchmark_test: BenchmarkTestFiller,\n    pre: Alloc,\n    case_id: str,\n    ether_transfer_case: Tuple[Generator[Address, None, None], Generator[Address, None, None]],\n    iteration_count: int,\n    transfer_amount: int,\n    intrinsic_cost: int,\n) -> None:\n    \"\"\"\n    Single test for ether transfer scenarios.\n\n    Scenarios:\n    - a_to_a: one sender → one sender\n    - a_to_b: one sender → one receiver\n    - diff_acc_to_b: multiple senders → one receiver\n    - a_to_diff_acc: one sender → multiple receivers\n    - diff_acc_to_diff_acc: multiple senders → multiple receivers\n    \"\"\"\n    senders, receivers = ether_transfer_case\n\n    # Create a single block with all transactions\n    txs = []\n    balances: dict[Address, int] = {}\n    for _ in range(iteration_count):\n        receiver = next(receivers)\n        balances[receiver] = balances.get(receiver, 0) + transfer_amount\n        txs.append(\n            Transaction(\n                to=receiver,\n                value=transfer_amount,\n                gas_limit=intrinsic_cost,\n                sender=next(senders),\n            )\n        )\n\n    # Only include post state for non a_to_a cases\n    post_state = (\n        {}\n        if case_id == \"a_to_a\"\n        else {receiver: Account(balance=balance) for receiver, balance in balances.items()}\n    )\n\n    benchmark_test(\n        pre=pre,\n        post=post_state,\n        blocks=[Block(txs=txs)],\n        expected_benchmark_gas_used=iteration_count * intrinsic_cost,\n    )\n\n\n@pytest.fixture\ndef total_cost_floor_per_token() -> int:\n    \"\"\"Total cost floor per token.\"\"\"\n    return 10\n\n\n@pytest.fixture\ndef total_cost_standard_per_token() -> int:\n    \"\"\"Total cost floor per token.\"\"\"\n    return 4\n\n\ndef calldata_generator(\n    gas_amount: int,\n    zero_byte: int,\n    total_cost_floor_per_token: int,\n) -> bytes:\n    \"\"\"Calculate the calldata based on the gas amount and zero byte.\"\"\"\n    # Gas cost calculation based on EIP-7683: (https://eips.ethereum.org/EIPS/eip-7683)\n    #\n    #   tx.gasUsed = 21000 + max(\n    #       STANDARD_TOKEN_COST * tokens_in_calldata\n    #       + execution_gas_used\n    #       + isContractCreation * (32000 +\n    #                                 INITCODE_WORD_COST * words(calldata)),\n    #       TOTAL_COST_FLOOR_PER_TOKEN * tokens_in_calldata)\n    #\n    # Simplified in this test case:\n    # - No execution gas used (no opcodes are executed)\n    # - Not a contract creation (no initcode)\n    #\n    # Therefore:\n    #   max_token_cost = max(STANDARD_TOKEN_COST, TOTAL_COST_FLOOR_PER_TOKEN)\n    #   tx.gasUsed = 21000 + tokens_in_calldata * max_token_cost\n    #\n    # Since max(STANDARD_TOKEN_COST, TOTAL_COST_FLOOR_PER_TOKEN) = 10:\n    #   tx.gasUsed = 21000 + tokens_in_calldata * 10\n    #\n    # Token accounting:\n    #   tokens_in_calldata = zero_bytes + 4 * non_zero_bytes\n    #\n    # So we calculate how many bytes we can fit into calldata based on\n    # available gas.\n    max_tokens_in_calldata = gas_amount // total_cost_floor_per_token\n    num_of_bytes = max_tokens_in_calldata if zero_byte else max_tokens_in_calldata // 4\n    byte_data = b\"\\x00\" if zero_byte else b\"\\xff\"\n    return byte_data * num_of_bytes\n\n\n@pytest.mark.parametrize(\"zero_byte\", [True, False])\ndef test_block_full_data(\n    benchmark_test: BenchmarkTestFiller,\n    pre: Alloc,\n    zero_byte: bool,\n    intrinsic_cost: int,\n    total_cost_floor_per_token: int,\n    gas_benchmark_value: int,\n    tx_gas_limit_cap: int,\n    total_cost_standard_per_token: int,\n    fork: Fork,\n) -> None:\n    \"\"\"Test a block with empty payload.\"\"\"\n    iteration_count = math.ceil(gas_benchmark_value / tx_gas_limit_cap)\n\n    gas_remaining = gas_benchmark_value\n    total_gas_used = 0\n    txs = []\n    for _ in range(iteration_count):\n        gas_available = min(tx_gas_limit_cap, gas_remaining) - intrinsic_cost\n        data = calldata_generator(\n            gas_available,\n            zero_byte,\n            total_cost_floor_per_token,\n        )\n\n        total_gas_used += fork.transaction_intrinsic_cost_calculator()(calldata=data)\n        gas_remaining -= gas_available + intrinsic_cost\n\n        txs.append(\n            Transaction(\n                to=pre.fund_eoa(),\n                data=data,\n                gas_limit=gas_available + intrinsic_cost,\n                sender=pre.fund_eoa(),\n            )\n        )\n\n    benchmark_test(\n        blocks=[Block(txs=txs)],\n        expected_benchmark_gas_used=total_gas_used,\n    )\n\n\ndef test_block_full_access_list_and_data(\n    benchmark_test: BenchmarkTestFiller,\n    pre: Alloc,\n    intrinsic_cost: int,\n    total_cost_standard_per_token: int,\n    fork: Fork,\n    gas_benchmark_value: int,\n    tx_gas_limit_cap: int,\n) -> None:\n    \"\"\"\n    Test a block with access lists (60% gas) and calldata (40% gas) using\n    random mixed bytes.\n    \"\"\"\n    iteration_count = math.ceil(gas_benchmark_value / tx_gas_limit_cap)\n\n    gas_remaining = gas_benchmark_value\n    total_gas_used = 0\n\n    txs = []\n    for _ in range(iteration_count):\n        gas_available = min(tx_gas_limit_cap, gas_remaining) - intrinsic_cost\n\n        # Split available gas: 60% for access lists, 40% for calldata\n        gas_for_access_list = int(gas_available * 0.6)\n        gas_for_calldata = int(gas_available * 0.4)\n\n        # Access list gas costs from fork's gas_costs\n        gas_costs = fork.gas_costs()\n        gas_per_address = gas_costs.G_ACCESS_LIST_ADDRESS\n        gas_per_storage_key = gas_costs.G_ACCESS_LIST_STORAGE\n\n        # Calculate number of storage keys we can fit\n        gas_after_address = gas_for_access_list - gas_per_address\n        num_storage_keys = gas_after_address // gas_per_storage_key\n\n        # Create access list with 1 address and many storage keys\n        access_address = Address(\"0x1234567890123456789012345678901234567890\")\n        storage_keys = []\n        for i in range(num_storage_keys):\n            # Generate random-looking storage keys\n            storage_keys.append(Hash(i))\n\n        access_list = [\n            AccessList(\n                address=access_address,\n                storage_keys=storage_keys,\n            )\n        ]\n\n        # Calculate calldata with 29% of gas for zero bytes and 71% for\n        # non-zero bytes\n        # Token accounting: tokens_in_calldata = zero_bytes + 4 *\n        # non_zero_bytes\n        # We want to split the gas budget:\n        # - 29% of gas_for_calldata for zero bytes\n        # - 71% of gas_for_calldata for non-zero bytes\n\n        max_tokens_in_calldata = gas_for_calldata // total_cost_standard_per_token\n\n        # Calculate how many tokens to allocate to each type\n        tokens_for_zero_bytes = int(max_tokens_in_calldata * 0.29)\n        tokens_for_non_zero_bytes = max_tokens_in_calldata - tokens_for_zero_bytes\n\n        # Convert tokens to actual byte counts\n        # Zero bytes: 1 token per byte\n        # Non-zero bytes: 4 tokens per byte\n        num_zero_bytes = tokens_for_zero_bytes  # 1 token = 1 zero byte\n        num_non_zero_bytes = tokens_for_non_zero_bytes // 4  # 4 tokens = 1 non-zero byte\n\n        # Create calldata with mixed bytes\n        calldata = bytearray()\n\n        # Add zero bytes\n        calldata.extend(b\"\\x00\" * num_zero_bytes)\n\n        # Add non-zero bytes (random values from 0x01 to 0xff)\n        rng = random.Random(42)  # For reproducibility\n        for _ in range(num_non_zero_bytes):\n            calldata.append(rng.randint(1, 255))\n\n        # Shuffle the bytes to mix zero and non-zero bytes\n        calldata_list = list(calldata)\n        rng.shuffle(calldata_list)\n        shuffled_calldata = bytes(calldata_list)\n\n        txs.append(\n            Transaction(\n                to=pre.fund_eoa(amount=0),\n                data=shuffled_calldata,\n                gas_limit=gas_available + intrinsic_cost,\n                sender=pre.fund_eoa(),\n                access_list=access_list,\n            )\n        )\n\n        gas_remaining -= gas_for_access_list + intrinsic_cost\n        total_gas_used += fork.transaction_intrinsic_cost_calculator()(\n            calldata=shuffled_calldata,\n            access_list=access_list,\n        )\n\n    benchmark_test(\n        blocks=[Block(txs=txs)],\n        expected_benchmark_gas_used=total_gas_used,\n    )\n\n\n@pytest.mark.parametrize(\"empty_authority\", [True, False])\n@pytest.mark.parametrize(\"zero_delegation\", [True, False])\ndef test_worst_case_auth_block(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    intrinsic_cost: int,\n    gas_benchmark_value: int,\n    fork: Fork,\n    empty_authority: bool,\n    zero_delegation: bool,\n) -> None:\n    \"\"\"Test an auth block.\"\"\"\n    gas_costs = fork.gas_costs()\n\n    iteration_count = (gas_benchmark_value - intrinsic_cost) // gas_costs.G_AUTHORIZATION\n\n    code = Op.STOP * fork.max_code_size()\n    auth_target = Address(0) if zero_delegation else pre.deploy_contract(code=code)\n\n    auth_tuples = []\n    for _ in range(iteration_count):\n        signer = (\n            pre.fund_eoa(amount=0, delegation=None)\n            if empty_authority\n            else pre.fund_eoa(amount=0, delegation=auth_target)\n        )\n        auth_tuple = AuthorizationTuple(address=auth_target, nonce=signer.nonce, signer=signer)\n        auth_tuples.append(auth_tuple)\n\n    tx = Transaction(\n        to=pre.empty_account(),\n        gas_limit=gas_benchmark_value,\n        sender=pre.fund_eoa(),\n        authorization_list=auth_tuples,\n    )\n\n    gas_used = fork.transaction_intrinsic_cost_calculator()(\n        authorization_list_or_count=auth_tuples\n    )\n\n    refund = 0\n    if not empty_authority:\n        refund = min(\n            gas_used // 5,\n            (gas_costs.G_AUTHORIZATION - gas_costs.R_AUTHORIZATION_EXISTING_AUTHORITY)\n            * iteration_count,\n        )\n\n    blockchain_test(\n        pre=pre,\n        post={},\n        blocks=[Block(txs=[tx])],\n        expected_benchmark_gas_used=gas_used - refund,\n    )\n"
  },
  {
    "path": "tests/benchmark/test_worst_bytecode.py",
    "content": "\"\"\"\nTests that benchmark EVMs in worst-case opcode scenarios.\n\"\"\"\n\nimport math\n\nimport pytest\n\nfrom ethereum_test_benchmark.benchmark_code_generator import JumpLoopGenerator\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    Account,\n    Alloc,\n    BenchmarkTestFiller,\n    Block,\n    BlockchainTestFiller,\n    Bytecode,\n    Environment,\n    Hash,\n    Transaction,\n    While,\n    compute_create2_address,\n)\nfrom ethereum_test_types.helpers import compute_create_address\nfrom ethereum_test_vm import Opcodes as Op\n\nREFERENCE_SPEC_GIT_PATH = \"TODO\"\nREFERENCE_SPEC_VERSION = \"TODO\"\n\nXOR_TABLE_SIZE = 256\nXOR_TABLE = [Hash(i).sha256() for i in range(XOR_TABLE_SIZE)]\n\n\n@pytest.mark.parametrize(\n    \"opcode\",\n    [\n        Op.EXTCODESIZE,\n        Op.EXTCODEHASH,\n        Op.CALL,\n        Op.CALLCODE,\n        Op.DELEGATECALL,\n        Op.STATICCALL,\n        Op.EXTCODECOPY,\n    ],\n)\ndef test_worst_bytecode_single_opcode(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    fork: Fork,\n    opcode: Op,\n    env: Environment,\n    gas_benchmark_value: int,\n) -> None:\n    \"\"\"\n    Test a block execution where a single opcode execution maxes out the gas\n    limit, and the opcodes access a huge amount of contract code.\n\n    We first use a single block to deploy a factory contract that will be used\n    to deploy a large number of contracts.\n\n    This is done to avoid having a big pre-allocation size for the test.\n\n    The test is performed in the last block of the test, and the entire block\n    gas limit is consumed by repeated opcode executions.\n    \"\"\"\n    # The attack gas limit is the gas limit which the target tx will use The\n    # test will scale the block gas limit to setup the contracts accordingly to\n    # be able to pay for the contract deposit. This has to take into account\n    # the 200 gas per byte, but also the quadratic memory expansion costs which\n    # have to be paid each time the memory is being setup\n    attack_gas_limit = gas_benchmark_value\n    max_contract_size = fork.max_code_size()\n\n    gas_costs = fork.gas_costs()\n\n    # Calculate the absolute minimum gas costs to deploy the contract This does\n    # not take into account setting up the actual memory (using KECCAK256 and\n    # XOR) so the actual costs of deploying the contract is higher\n    memory_expansion_gas_calculator = fork.memory_expansion_gas_calculator()\n    memory_gas_minimum = memory_expansion_gas_calculator(new_bytes=len(bytes(max_contract_size)))\n    code_deposit_gas_minimum = (\n        fork.gas_costs().G_CODE_DEPOSIT_BYTE * max_contract_size + memory_gas_minimum\n    )\n\n    intrinsic_gas_cost_calc = fork.transaction_intrinsic_cost_calculator()\n    # Calculate the loop cost of the attacker to query one address\n    loop_cost = (\n        gas_costs.G_KECCAK_256  # KECCAK static cost\n        + math.ceil(85 / 32) * gas_costs.G_KECCAK_256_WORD  # KECCAK dynamic\n        # cost for CREATE2\n        + gas_costs.G_VERY_LOW * 3  # ~MSTOREs+ADDs\n        + gas_costs.G_COLD_ACCOUNT_ACCESS  # Opcode cost\n        + 30  # ~Gluing opcodes\n    )\n    # Calculate the number of contracts to be targeted\n    num_contracts = (\n        # Base available gas = GAS_LIMIT - intrinsic - (out of loop MSTOREs)\n        attack_gas_limit - intrinsic_gas_cost_calc() - gas_costs.G_VERY_LOW * 4\n    ) // loop_cost\n\n    # Set the block gas limit to a relative high value to ensure the code\n    # deposit tx fits in the block (there is enough gas available in the block\n    # to execute this)\n    minimum_gas_limit = code_deposit_gas_minimum * 2 * num_contracts\n    if env.gas_limit < minimum_gas_limit:\n        raise Exception(\n            f\"`BENCHMARKING_MAX_GAS` ({env.gas_limit}) is no longer enough to support this test, \"\n            f\"which requires {minimum_gas_limit} gas for its setup. Update the value or consider \"\n            \"optimizing gas usage during the setup phase of this test.\"\n        )\n\n    # The initcode will take its address as a starting point to the input to\n    # the keccak hash function. It will reuse the output of the hash function\n    # in a loop to create a large amount of seemingly random code, until it\n    # reaches the maximum contract size.\n    initcode = (\n        Op.MSTORE(0, Op.ADDRESS)\n        + While(\n            body=(\n                Op.SHA3(Op.SUB(Op.MSIZE, 32), 32)\n                # Use a xor table to avoid having to call the \"expensive\" sha3\n                # opcode as much\n                + sum(\n                    (Op.PUSH32[xor_value] + Op.XOR + Op.DUP1 + Op.MSIZE + Op.MSTORE)\n                    for xor_value in XOR_TABLE\n                )\n                + Op.POP\n            ),\n            condition=Op.LT(Op.MSIZE, max_contract_size),\n        )\n        # Despite the whole contract has random bytecode, we make the first\n        # opcode be a STOP so CALL-like attacks return as soon as possible,\n        # while EXTCODE(HASH|SIZE) work as intended.\n        + Op.MSTORE8(0, 0x00)\n        + Op.RETURN(0, max_contract_size)\n    )\n    initcode_address = pre.deploy_contract(code=initcode)\n\n    # The factory contract will simply use the initcode that is already\n    # deployed, and create a new contract and return its address if successful.\n    factory_code = (\n        Op.EXTCODECOPY(\n            address=initcode_address,\n            dest_offset=0,\n            offset=0,\n            size=Op.EXTCODESIZE(initcode_address),\n        )\n        + Op.MSTORE(\n            0,\n            Op.CREATE2(\n                value=0,\n                offset=0,\n                size=Op.EXTCODESIZE(initcode_address),\n                salt=Op.SLOAD(0),\n            ),\n        )\n        + Op.SSTORE(0, Op.ADD(Op.SLOAD(0), 1))\n        + Op.RETURN(0, 32)\n    )\n    factory_address = pre.deploy_contract(code=factory_code)\n\n    # The factory caller will call the factory contract N times, creating N new\n    # contracts. Calldata should contain the N value.\n    factory_caller_code = Op.CALLDATALOAD(0) + While(\n        body=Op.POP(Op.CALL(address=factory_address)),\n        condition=Op.PUSH1(1) + Op.SWAP1 + Op.SUB + Op.DUP1 + Op.ISZERO + Op.ISZERO,\n    )\n    factory_caller_address = pre.deploy_contract(code=factory_caller_code)\n\n    contracts_deployment_tx = Transaction(\n        to=factory_caller_address,\n        gas_limit=env.gas_limit,\n        gas_price=10**6,\n        data=Hash(num_contracts),\n        sender=pre.fund_eoa(),\n    )\n\n    post = {}\n    deployed_contract_addresses = []\n    for i in range(num_contracts):\n        deployed_contract_address = compute_create2_address(\n            address=factory_address,\n            salt=i,\n            initcode=initcode,\n        )\n        post[deployed_contract_address] = Account(nonce=1)\n        deployed_contract_addresses.append(deployed_contract_address)\n\n    attack_call = Bytecode()\n    if opcode == Op.EXTCODECOPY:\n        attack_call = Op.EXTCODECOPY(address=Op.SHA3(32 - 20 - 1, 85), dest_offset=96, size=1000)\n    else:\n        # For the rest of the opcodes, we can use the same generic attack call\n        # since all only minimally need the `address` of the target.\n        attack_call = Op.POP(opcode(address=Op.SHA3(32 - 20 - 1, 85)))\n    attack_code = (\n        # Setup memory for later CREATE2 address generation loop.\n        # 0xFF+[Address(20bytes)]+[seed(32bytes)]+[initcode keccak(32bytes)]\n        Op.MSTORE(0, factory_address)\n        + Op.MSTORE8(32 - 20 - 1, 0xFF)\n        + Op.MSTORE(32, 0)\n        + Op.MSTORE(64, initcode.keccak256())\n        # Main loop\n        + While(\n            body=attack_call + Op.MSTORE(32, Op.ADD(Op.MLOAD(32), 1)),\n        )\n    )\n\n    if len(attack_code) > max_contract_size:\n        # TODO: A workaround could be to split the opcode code into multiple\n        # contracts and call them in sequence.\n        raise ValueError(\n            f\"Code size {len(attack_code)} exceeds maximum code size {max_contract_size}\"\n        )\n    opcode_address = pre.deploy_contract(code=attack_code)\n    opcode_tx = Transaction(\n        to=opcode_address,\n        gas_limit=attack_gas_limit,\n        gas_price=10**9,\n        sender=pre.fund_eoa(),\n    )\n\n    blockchain_test(\n        pre=pre,\n        post=post,\n        blocks=[\n            Block(txs=[contracts_deployment_tx]),\n            Block(txs=[opcode_tx]),\n        ],\n        exclude_full_post_state_in_output=True,\n    )\n\n\n@pytest.mark.parametrize(\n    \"pattern\",\n    [\n        Op.STOP,\n        Op.JUMPDEST,\n        Op.PUSH1[bytes(Op.JUMPDEST)],\n        Op.PUSH2[bytes(Op.JUMPDEST + Op.JUMPDEST)],\n        Op.PUSH1[bytes(Op.JUMPDEST)] + Op.JUMPDEST,\n        Op.PUSH2[bytes(Op.JUMPDEST + Op.JUMPDEST)] + Op.JUMPDEST,\n    ],\n    ids=lambda x: x.hex(),\n)\ndef test_worst_initcode_jumpdest_analysis(\n    benchmark_test: BenchmarkTestFiller,\n    fork: Fork,\n    pattern: Bytecode,\n) -> None:\n    \"\"\"\n    Test the jumpdest analysis performance of the initcode.\n\n    This benchmark places a very long initcode in the memory and then invoke\n    CREATE instructions with this initcode up to the block gas limit. The\n    initcode itself has minimal execution time but forces the EVM to perform\n    the full jumpdest analysis on the parametrized byte pattern. The initicode\n    is modified by mixing-in the returned create address between CREATE\n    invocations to prevent caching.\n    \"\"\"\n    initcode_size = fork.max_initcode_size()\n\n    # Expand the initcode pattern to the transaction data so it can be used in\n    # CALLDATACOPY in the main contract. TODO: tune the tx_data_len param.\n    tx_data_len = 1024\n    tx_data = pattern * (tx_data_len // len(pattern))\n    tx_data += (tx_data_len - len(tx_data)) * bytes(Op.JUMPDEST)\n    assert len(tx_data) == tx_data_len\n    assert initcode_size % len(tx_data) == 0\n\n    # Prepare the initcode in memory.\n    code_prepare_initcode = sum(\n        (\n            Op.CALLDATACOPY(dest_offset=i * len(tx_data), offset=0, size=Op.CALLDATASIZE)\n            for i in range(initcode_size // len(tx_data))\n        ),\n        Bytecode(),\n    )\n\n    # At the start of the initcode execution, jump to the last opcode.\n    # This forces EVM to do the full jumpdest analysis.\n    initcode_prefix = Op.JUMP(initcode_size - 1)\n    code_prepare_initcode += Op.MSTORE(\n        0, Op.PUSH32[bytes(initcode_prefix).ljust(32, bytes(Op.JUMPDEST))]\n    )\n\n    # Make sure the last opcode in the initcode is JUMPDEST.\n    code_prepare_initcode += Op.MSTORE(initcode_size - 32, Op.PUSH32[bytes(Op.JUMPDEST) * 32])\n\n    attack_block = (\n        Op.PUSH1[len(initcode_prefix)]\n        + Op.MSTORE\n        + Op.CREATE(value=Op.PUSH0, offset=Op.PUSH0, size=Op.MSIZE)\n    )\n\n    setup = code_prepare_initcode + Op.PUSH0\n\n    benchmark_test(\n        code_generator=JumpLoopGenerator(\n            setup=setup,\n            attack_block=attack_block,\n            tx_kwargs={\"data\": tx_data},\n        ),\n    )\n\n\n@pytest.mark.parametrize(\n    \"opcode\",\n    [\n        Op.CREATE,\n        Op.CREATE2,\n    ],\n)\n@pytest.mark.parametrize(\n    \"max_code_size_ratio, non_zero_data, value\",\n    [\n        # To avoid a blowup of combinations, the value dimension is only\n        # explored for the non-zero data case, so isn't affected by code size\n        # influence.\n        pytest.param(0, False, 0, id=\"0 bytes without value\"),\n        pytest.param(0, False, 1, id=\"0 bytes with value\"),\n        pytest.param(0.25, True, 0, id=\"0.25x max code size with non-zero data\"),\n        pytest.param(0.25, False, 0, id=\"0.25x max code size with zero data\"),\n        pytest.param(0.50, True, 0, id=\"0.50x max code size with non-zero data\"),\n        pytest.param(0.50, False, 0, id=\"0.50x max code size with zero data\"),\n        pytest.param(0.75, True, 0, id=\"0.75x max code size with non-zero data\"),\n        pytest.param(0.75, False, 0, id=\"0.75x max code size with zero data\"),\n        pytest.param(1.00, True, 0, id=\"max code size with non-zero data\"),\n        pytest.param(1.00, False, 0, id=\"max code size with zero data\"),\n    ],\n)\ndef test_worst_create(\n    benchmark_test: BenchmarkTestFiller,\n    pre: Alloc,\n    fork: Fork,\n    opcode: Op,\n    max_code_size_ratio: float,\n    non_zero_data: bool,\n    value: int,\n) -> None:\n    \"\"\"\n    Test the CREATE and CREATE2 performance with different configurations.\n    \"\"\"\n    max_code_size = fork.max_code_size()\n\n    code_size = int(max_code_size * max_code_size_ratio)\n\n    # Deploy the initcode template which has following design:\n    # ```\n    # PUSH3(code_size)\n    # [CODECOPY(DUP1) -- Conditional that non_zero_data is True]\n    # RETURN(0, DUP1)\n    # [<pad to code_size>] -- Conditional that non_zero_data is True]\n    # ```\n    code = (\n        Op.PUSH3(code_size)\n        + (Op.CODECOPY(size=Op.DUP1) if non_zero_data else Bytecode())\n        + Op.RETURN(0, Op.DUP1)\n    )\n    if non_zero_data:  # Pad to code_size.\n        code += bytes([i % 256 for i in range(code_size - len(code))])\n\n    initcode_template_contract = pre.deploy_contract(code=code)\n\n    # Create the benchmark contract which has the following design:\n    # ```\n    # PUSH(value)\n    # [EXTCODECOPY(full initcode_template_contract)\n    # -> Conditional that non_zero_data is True]\n    #\n    # JUMPDEST (#)\n    # (CREATE|CREATE2)\n    # (CREATE|CREATE2)\n    # ...\n    # JUMP(#)\n    # ```\n    setup = (\n        Op.PUSH3(code_size)\n        + Op.PUSH1(value)\n        + Op.EXTCODECOPY(\n            address=initcode_template_contract,\n            size=Op.DUP2,  # DUP2 refers to the EXTCODESIZE value above.\n        )\n    )\n\n    if opcode == Op.CREATE2:\n        # For CREATE2, we provide an initial salt.\n        setup += Op.PUSH1(42)\n\n    attack_block = (\n        # For CREATE:\n        # - DUP2 refers to the EXTOCODESIZE value  pushed in code_prefix.\n        # - DUP3 refers to PUSH1(value) above.\n        Op.POP(Op.CREATE(value=Op.DUP3, offset=0, size=Op.DUP2))\n        if opcode == Op.CREATE\n        # For CREATE2: we manually push the arguments because we leverage the\n        # return value of previous CREATE2 calls as salt for the next CREATE2\n        # call.\n        # - DUP4 is targeting the PUSH1(value) from the code_prefix.\n        # - DUP3 is targeting the EXTCODESIZE value pushed in code_prefix.\n        else Op.DUP3 + Op.PUSH0 + Op.DUP4 + Op.CREATE2\n    )\n\n    code = JumpLoopGenerator(setup=setup, attack_block=attack_block).generate_repeated_code(\n        repeated_code=attack_block, setup=setup, fork=fork\n    )\n\n    tx = Transaction(\n        # Set enough balance in the pre-alloc for `value > 0` configurations.\n        to=pre.deploy_contract(code=code, balance=1_000_000_000 if value > 0 else 0),\n        sender=pre.fund_eoa(),\n    )\n\n    benchmark_test(tx=tx)\n\n\n@pytest.mark.parametrize(\n    \"opcode\",\n    [\n        Op.CREATE,\n        Op.CREATE2,\n    ],\n)\ndef test_worst_creates_collisions(\n    benchmark_test: BenchmarkTestFiller,\n    pre: Alloc,\n    fork: Fork,\n    opcode: Op,\n    gas_benchmark_value: int,\n) -> None:\n    \"\"\"Test the CREATE and CREATE2 collisions performance.\"\"\"\n    # We deploy a \"proxy contract\" which is the contract that will be called in\n    # a loop using all the gas in the block. This \"proxy contract\" is the one\n    # executing CREATE2 failing with a collision. The reason why we need a\n    # \"proxy contract\" is that CREATE(2) failing with a collision will consume\n    # all the available gas. If we try to execute the CREATE(2) directly\n    # without being wrapped **and capped in gas** in a previous CALL, we would\n    # run out of gas very fast!\n    # The proxy contract calls CREATE(2) with empty initcode. The current call\n    # frame gas will be exhausted because of the collision. For this reason the\n    # caller will carefully give us the minimal gas necessary to execute the\n    # CREATE(2) and not waste any extra gas in the CREATE(2)-failure.\n    # Note that these CREATE(2) calls will fail because in (**) below we pre-\n    # alloc contracts with the same address as the ones that CREATE(2) will try\n    # to create.\n    proxy_contract = pre.deploy_contract(\n        code=Op.CREATE2(value=Op.PUSH0, salt=Op.PUSH0, offset=Op.PUSH0, size=Op.PUSH0)\n        if opcode == Op.CREATE2\n        else Op.CREATE(value=Op.PUSH0, offset=Op.PUSH0, size=Op.PUSH0)\n    )\n\n    gas_costs = fork.gas_costs()\n    # The CALL to the proxy contract needs at a minimum gas corresponding to\n    # the CREATE(2) plus extra required PUSH0s for arguments.\n    min_gas_required = gas_costs.G_CREATE + gas_costs.G_BASE * (3 if opcode == Op.CREATE else 4)\n    setup = Op.PUSH20(proxy_contract) + Op.PUSH3(min_gas_required)\n    attack_block = Op.POP(\n        # DUP7 refers to the PUSH3 above.\n        # DUP7 refers to the proxy contract address.\n        Op.CALL(gas=Op.DUP7, address=Op.DUP7)\n    )\n\n    # (**) We deploy the contract that CREATE(2) will attempt to create so any\n    # attempt will fail.\n    if opcode == Op.CREATE2:\n        addr = compute_create2_address(address=proxy_contract, salt=0, initcode=[])\n        pre.deploy_contract(address=addr, code=Op.INVALID)\n    else:\n        # Heuristic to have an upper bound.\n        max_contract_count = 2 * gas_benchmark_value // gas_costs.G_CREATE\n        for nonce in range(max_contract_count):\n            addr = compute_create_address(address=proxy_contract, nonce=nonce)\n            pre.deploy_contract(address=addr, code=Op.INVALID)\n\n    benchmark_test(\n        code_generator=JumpLoopGenerator(setup=setup, attack_block=attack_block),\n    )\n"
  },
  {
    "path": "tests/benchmark/test_worst_compute.py",
    "content": "\"\"\"\nTests that benchmark EVMs in worst-case compute scenarios.\n\"\"\"\n\nimport math\nimport operator\nimport random\nfrom enum import Enum, auto\nfrom typing import Any, Dict, cast\n\nimport pytest\nfrom _pytest.mark import ParameterSet\nfrom py_ecc.bn128 import G1, G2, multiply\n\nfrom ethereum_test_base_types.base_types import Bytes\nfrom ethereum_test_benchmark import ExtCallGenerator, JumpLoopGenerator\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    Address,\n    Alloc,\n    BenchmarkTestFiller,\n    Block,\n    Bytecode,\n    Transaction,\n    add_kzg_version,\n)\nfrom ethereum_test_types import TransactionType\nfrom ethereum_test_vm import Opcode\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom ..byzantium.eip198_modexp_precompile.test_modexp import ModExpInput\nfrom ..cancun.eip4844_blobs.spec import Spec as BlobsSpec\nfrom ..istanbul.eip152_blake2.common import Blake2bInput\nfrom ..istanbul.eip152_blake2.spec import Spec as Blake2bSpec\nfrom ..osaka.eip7951_p256verify_precompiles import spec as p256verify_spec\nfrom ..osaka.eip7951_p256verify_precompiles.spec import FieldElement\nfrom ..prague.eip2537_bls_12_381_precompiles import spec as bls12381_spec\nfrom ..prague.eip2537_bls_12_381_precompiles.spec import BytesConcatenation\n\nREFERENCE_SPEC_GIT_PATH = \"TODO\"\nREFERENCE_SPEC_VERSION = \"TODO\"\n\nKECCAK_RATE = 136\n\n\ndef neg(x: int) -> int:\n    \"\"\"Negate the given integer in the two's complement 256-bit range.\"\"\"\n    assert 0 <= x < 2**256\n    return 2**256 - x\n\n\ndef make_dup(index: int) -> Opcode:\n    \"\"\"\n    Create a DUP instruction which duplicates the index-th (counting from 0)\n    element from the top of the stack. E.g. make_dup(0) → DUP1.\n    \"\"\"\n    assert 0 <= index < 16\n    return Opcode(0x80 + index, pushed_stack_items=1, min_stack_height=index + 1)\n\n\n@pytest.mark.parametrize(\n    \"opcode\",\n    [\n        Op.ADDRESS,\n        Op.ORIGIN,\n        Op.CALLER,\n        Op.CODESIZE,\n        Op.GASPRICE,\n        Op.COINBASE,\n        Op.TIMESTAMP,\n        Op.NUMBER,\n        Op.PREVRANDAO,\n        Op.GASLIMIT,\n        Op.CHAINID,\n        Op.BASEFEE,\n        Op.BLOBBASEFEE,\n        Op.GAS,\n        # Note that other 0-param opcodes are covered in separate tests.\n    ],\n)\ndef test_worst_zero_param(\n    benchmark_test: BenchmarkTestFiller,\n    pre: Alloc,\n    opcode: Op,\n) -> None:\n    \"\"\"Test running a block with as many zero-parameter opcodes as possible.\"\"\"\n    benchmark_test(\n        pre=pre,\n        post={},\n        code_generator=ExtCallGenerator(attack_block=opcode),\n    )\n\n\n@pytest.mark.parametrize(\"calldata_length\", [0, 1_000, 10_000])\ndef test_worst_calldatasize(\n    benchmark_test: BenchmarkTestFiller,\n    calldata_length: int,\n) -> None:\n    \"\"\"Test running a block with as many CALLDATASIZE as possible.\"\"\"\n    benchmark_test(\n        code_generator=JumpLoopGenerator(\n            attack_block=Op.POP(Op.CALLDATASIZE),\n            tx_kwargs={\"data\": b\"\\x00\" * calldata_length},\n        ),\n    )\n\n\n@pytest.mark.parametrize(\"non_zero_value\", [True, False])\n@pytest.mark.parametrize(\"from_origin\", [True, False])\ndef test_worst_callvalue(\n    benchmark_test: BenchmarkTestFiller,\n    pre: Alloc,\n    fork: Fork,\n    non_zero_value: bool,\n    from_origin: bool,\n) -> None:\n    \"\"\"\n    Test running a block with as many CALLVALUE opcodes as possible.\n\n    The `non_zero_value` parameter controls whether opcode must return non-zero\n    value. The `from_origin` parameter controls whether the call frame is the\n    immediate from the transaction or a previous CALL.\n    \"\"\"\n    code_address = JumpLoopGenerator(attack_block=Op.POP(Op.CALLVALUE)).deploy_contracts(\n        pre=pre, fork=fork\n    )\n\n    if from_origin:\n        tx_to = code_address\n    else:\n        entry_code = (\n            Op.JUMPDEST\n            + Op.CALL(address=code_address, value=1 if non_zero_value else 0)\n            + Op.JUMP(Op.PUSH0)\n        )\n        tx_to = pre.deploy_contract(code=entry_code, balance=1_000_000)\n\n    tx = Transaction(\n        to=tx_to,\n        value=1 if non_zero_value and from_origin else 0,\n        sender=pre.fund_eoa(),\n    )\n\n    benchmark_test(tx=tx)\n\n\nclass ReturnDataStyle(Enum):\n    \"\"\"Helper enum to specify return data is returned to the caller.\"\"\"\n\n    RETURN = auto()\n    REVERT = auto()\n    IDENTITY = auto()\n\n\n@pytest.mark.parametrize(\n    \"return_data_style\",\n    [\n        ReturnDataStyle.RETURN,\n        ReturnDataStyle.REVERT,\n        ReturnDataStyle.IDENTITY,\n    ],\n)\n@pytest.mark.parametrize(\"returned_size\", [1, 0])\ndef test_worst_returndatasize_nonzero(\n    benchmark_test: BenchmarkTestFiller,\n    pre: Alloc,\n    returned_size: int,\n    return_data_style: ReturnDataStyle,\n) -> None:\n    \"\"\"\n    Test running a block which execute as many RETURNDATASIZE opcodes which\n    return a non-zero buffer as possible.\n\n    The `returned_size` parameter indicates the size of the returned data\n    buffer. The `return_data_style` indicates how returned data is produced for\n    the opcode caller.\n    \"\"\"\n    setup = Bytecode()\n    if return_data_style != ReturnDataStyle.IDENTITY:\n        setup += Op.STATICCALL(\n            address=pre.deploy_contract(\n                code=Op.REVERT(0, returned_size)\n                if return_data_style == ReturnDataStyle.REVERT\n                else Op.RETURN(0, returned_size)\n            )\n        )\n    else:\n        setup += Op.MSTORE8(0, 1) + Op.STATICCALL(\n            address=0x04,  # Identity precompile\n            args_size=returned_size,\n        )\n\n    benchmark_test(\n        code_generator=JumpLoopGenerator(setup=setup, attack_block=Op.POP(Op.RETURNDATASIZE)),\n    )\n\n\ndef test_worst_returndatasize_zero(benchmark_test: BenchmarkTestFiller) -> None:\n    \"\"\"\n    Test running a block with as many RETURNDATASIZE opcodes as possible with\n    a zero buffer.\n    \"\"\"\n    benchmark_test(\n        code_generator=ExtCallGenerator(attack_block=Op.RETURNDATASIZE),\n    )\n\n\n@pytest.mark.parametrize(\"mem_size\", [0, 1, 1_000, 100_000, 1_000_000])\ndef test_worst_msize(\n    benchmark_test: BenchmarkTestFiller,\n    mem_size: int,\n) -> None:\n    \"\"\"\n    Test running a block with as many MSIZE opcodes as possible.\n\n    The `mem_size` parameter indicates by how much the memory is expanded.\n    \"\"\"\n    benchmark_test(\n        code_generator=ExtCallGenerator(\n            setup=Op.MLOAD(Op.SELFBALANCE) + Op.POP,\n            attack_block=Op.MSIZE,\n            contract_balance=mem_size,\n        ),\n    )\n\n\ndef test_worst_keccak(\n    benchmark_test: BenchmarkTestFiller,\n    fork: Fork,\n    gas_benchmark_value: int,\n) -> None:\n    \"\"\"Test running a block with as many KECCAK256 permutations as possible.\"\"\"\n    # Intrinsic gas cost is paid once.\n    intrinsic_gas_calculator = fork.transaction_intrinsic_cost_calculator()\n    available_gas = gas_benchmark_value - intrinsic_gas_calculator()\n\n    gsc = fork.gas_costs()\n    mem_exp_gas_calculator = fork.memory_expansion_gas_calculator()\n\n    # Discover the optimal input size to maximize keccak-permutations,\n    # not to maximize keccak calls.\n    # The complication of the discovery arises from\n    # the non-linear gas cost of memory expansion.\n    max_keccak_perm_per_block = 0\n    optimal_input_length = 0\n    for i in range(1, 1_000_000, 32):\n        iteration_gas_cost = (\n            2 * gsc.G_VERY_LOW  # PUSHN + PUSH1\n            + gsc.G_KECCAK_256  # KECCAK256 static cost\n            + math.ceil(i / 32) * gsc.G_KECCAK_256_WORD  # KECCAK256 dynamic\n            # cost\n            + gsc.G_BASE  # POP\n        )\n        # From the available gas, we subtract the mem expansion costs\n        # considering we know the current input size length i.\n        available_gas_after_expansion = max(0, available_gas - mem_exp_gas_calculator(new_bytes=i))\n        # Calculate how many calls we can do.\n        num_keccak_calls = available_gas_after_expansion // iteration_gas_cost\n        # KECCAK does 1 permutation every 136 bytes.\n        num_keccak_permutations = num_keccak_calls * math.ceil(i / KECCAK_RATE)\n\n        # If we found an input size that is better (reg permutations/gas), then\n        # save it.\n        if num_keccak_permutations > max_keccak_perm_per_block:\n            max_keccak_perm_per_block = num_keccak_permutations\n            optimal_input_length = i\n\n    # max_iters_loop contains how many keccak calls can be done per loop. The\n    # loop is as big as possible bounded by the maximum code size.\n    #\n    # The loop structure is: JUMPDEST + [attack iteration] + PUSH0 + JUMP\n    #\n    # Now calculate available gas for [attack iteration]:\n    #   Numerator = max_code_size-3. (JUMPDEST, PUSH0 and JUMP)\n    #   Denominator = (PUSHN + PUSH1 + KECCAK256 + POP) + PUSH1_DATA +\n    #   PUSHN_DATA\n    # TODO: the testing framework uses PUSH1(0) instead of PUSH0 which is\n    # suboptimal for the\n    # attack, whenever this is fixed adjust accordingly.\n    benchmark_test(\n        code_generator=JumpLoopGenerator(\n            setup=Op.PUSH20[optimal_input_length],\n            attack_block=Op.POP(Op.SHA3(Op.PUSH0, Op.DUP1)),\n        ),\n    )\n\n\n@pytest.mark.parametrize(\n    \"address,static_cost,per_word_dynamic_cost,bytes_per_unit_of_work\",\n    [\n        pytest.param(0x02, 60, 12, 64, id=\"SHA2-256\"),\n        pytest.param(0x03, 600, 120, 64, id=\"RIPEMD-160\"),\n        pytest.param(0x04, 15, 3, 1, id=\"IDENTITY\"),\n    ],\n)\ndef test_worst_precompile_only_data_input(\n    benchmark_test: BenchmarkTestFiller,\n    fork: Fork,\n    address: Address,\n    static_cost: int,\n    per_word_dynamic_cost: int,\n    bytes_per_unit_of_work: int,\n    gas_benchmark_value: int,\n) -> None:\n    \"\"\"\n    Test running a block with as many precompile calls which have a single\n    `data` input.\n    \"\"\"\n    # Intrinsic gas cost is paid once.\n    intrinsic_gas_calculator = fork.transaction_intrinsic_cost_calculator()\n    available_gas = gas_benchmark_value - intrinsic_gas_calculator()\n\n    gsc = fork.gas_costs()\n    mem_exp_gas_calculator = fork.memory_expansion_gas_calculator()\n\n    # Discover the optimal input size to maximize precompile work, not\n    # precompile calls.\n    max_work = 0\n    optimal_input_length = 0\n    for input_length in range(1, 1_000_000, 32):\n        parameters_gas = (\n            gsc.G_BASE  # PUSH0 = arg offset\n            + gsc.G_BASE  # PUSH0 = arg size\n            + gsc.G_BASE  # PUSH0 = arg size\n            + gsc.G_VERY_LOW  # PUSH0 = arg offset\n            + gsc.G_VERY_LOW  # PUSHN = address\n            + gsc.G_BASE  # GAS\n        )\n        iteration_gas_cost = (\n            parameters_gas\n            + +static_cost  # Precompile static cost\n            + math.ceil(input_length / 32) * per_word_dynamic_cost\n            # Precompile dynamic cost\n            + gsc.G_BASE  # POP\n        )\n        # From the available gas, we subtract the mem expansion costs\n        # considering we know the current input size length.\n        available_gas_after_expansion = max(\n            0, available_gas - mem_exp_gas_calculator(new_bytes=input_length)\n        )\n        # Calculate how many calls we can do.\n        num_calls = available_gas_after_expansion // iteration_gas_cost\n        total_work = num_calls * math.ceil(input_length / bytes_per_unit_of_work)\n\n        # If we found an input size that is better (reg permutations/gas), then\n        # save it.\n        if total_work > max_work:\n            max_work = total_work\n            optimal_input_length = input_length\n\n    attack_block = Op.POP(Op.STATICCALL(Op.GAS, address, 0, optimal_input_length, 0, 0))\n\n    benchmark_test(\n        code_generator=JumpLoopGenerator(\n            setup=Op.CODECOPY(0, 0, optimal_input_length), attack_block=attack_block\n        ),\n    )\n\n\ndef create_modexp_test_cases() -> list[ParameterSet]:\n    \"\"\"Create test cases for the MODEXP precompile.\"\"\"\n    test_cases = [\n        # (base, exponent, modulus, test_id)\n        (8 * \"ff\", 112 * \"ff\", 7 * \"ff\" + \"00\", \"mod_even_8b_exp_896\"),\n        (16 * \"ff\", 40 * \"ff\", 15 * \"ff\" + \"00\", \"mod_even_16b_exp_320\"),\n        (24 * \"ff\", 21 * \"ff\", 23 * \"ff\" + \"00\", \"mod_even_24b_exp_168\"),\n        (32 * \"ff\", 5 * \"ff\", 31 * \"ff\" + \"00\", \"mod_even_32b_exp_40\"),\n        (32 * \"ff\", 12 * \"ff\", 31 * \"ff\" + \"00\", \"mod_even_32b_exp_96\"),\n        (32 * \"ff\", 32 * \"ff\", 31 * \"ff\" + \"00\", \"mod_even_32b_exp_256\"),\n        (64 * \"ff\", 64 * \"ff\", 63 * \"ff\" + \"00\", \"mod_even_64b_exp_512\"),\n        (128 * \"ff\", 128 * \"ff\", 127 * \"ff\" + \"00\", \"mod_even_128b_exp_1024\"),\n        (256 * \"ff\", 128 * \"ff\", 255 * \"ff\" + \"00\", \"mod_even_256b_exp_1024\"),\n        (512 * \"ff\", 128 * \"ff\", 511 * \"ff\" + \"00\", \"mod_even_512b_exp_1024\"),\n        (1024 * \"ff\", 128 * \"ff\", 1023 * \"ff\" + \"00\", \"mod_even_1024b_exp_1024\"),\n        (32 * \"ff\", 12 * \"ff\", 31 * \"ff\" + \"01\", \"mod_odd_32b_exp_96\"),\n        (32 * \"ff\", 32 * \"ff\", 31 * \"ff\" + \"01\", \"mod_odd_32b_exp_256\"),\n        (64 * \"ff\", 64 * \"ff\", 63 * \"ff\" + \"01\", \"mod_odd_64b_exp_512\"),\n        (128 * \"ff\", 128 * \"ff\", 127 * \"ff\" + \"01\", \"mod_odd_128b_exp_1024\"),\n        (256 * \"ff\", 128 * \"ff\", 255 * \"ff\" + \"01\", \"mod_odd_256b_exp_1024\"),\n        (512 * \"ff\", 128 * \"ff\", 511 * \"ff\" + \"01\", \"mod_odd_512b_exp_1024\"),\n        (1024 * \"ff\", 128 * \"ff\", 1023 * \"ff\" + \"01\", \"mod_odd_1024b_exp_1024\"),\n        (32 * \"ff\", 8 * \"12345670\", 31 * \"ff\" + \"01\", \"mod_odd_32b_exp_cover_windows\"),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/Modexp.cs#L38\n        (192 * \"FF\", \"03\", 6 * (\"00\" + 31 * \"FF\"), \"mod_min_gas_base_heavy\"),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/Modexp.cs#L40\n        (8 * \"FF\", \"07\" + 75 * \"FF\", 7 * \"FF\", \"mod_min_gas_exp_heavy\"),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/Modexp.cs#L42\n        (40 * \"FF\", \"01\" + 3 * \"FF\", \"00\" + 38 * \"FF\", \"mod_min_gas_balanced\"),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/Modexp.cs#L44\n        (32 * \"FF\", 5 * \"FF\", (\"00\" + 31 * \"FF\"), \"mod_exp_208_gas_balanced\"),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/Modexp.cs#L46\n        (8 * \"FF\", 81 * \"FF\", 7 * \"FF\", \"mod_exp_215_gas_exp_heavy\"),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/Modexp.cs#L48\n        (8 * \"FF\", 112 * \"FF\", 7 * \"FF\", \"mod_exp_298_gas_exp_heavy\"),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/Modexp.cs#L50\n        (16 * \"FF\", 40 * \"FF\", 15 * \"FF\", \"mod_pawel_2\"),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/Modexp.cs#L52\n        (24 * \"FF\", 21 * \"FF\", 23 * \"FF\", \"mod_pawel_3\"),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/Modexp.cs#L54\n        (32 * \"FF\", 12 * \"FF\", \"00\" + 31 * \"FF\", \"mod_pawel_4\"),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/Modexp.cs#L56\n        (280 * \"FF\", \"03\", 8 * (\"00\" + 31 * \"FF\") + 23 * \"FF\", \"mod_408_gas_base_heavy\"),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/Modexp.cs#L58\n        (16 * \"FF\", \"15\" + 37 * \"FF\", 15 * \"FF\", \"mod_400_gas_exp_heavy\"),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/Modexp.cs#L60\n        (48 * \"FF\", \"07\" + 4 * \"FF\", \"00\" + 46 * \"FF\", \"mod_408_gas_balanced\"),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/Modexp.cs#L62\n        (344 * \"FF\", \"03\", 10 * (\"00\" + 31 * \"FF\") + 23 * \"FF\", \"mod_616_gas_base_heavy\"),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/Modexp.cs#L64\n        (16 * \"FF\", \"07\" + 56 * \"FF\", 15 * \"FF\", \"mod_600_gas_exp_heavy\"),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/Modexp.cs#L66\n        (48 * \"FF\", \"07\" + 6 * \"FF\", \"00\" + 46 * \"FF\", \"mod_600_gas_balanced\"),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/Modexp.cs#L68\n        (392 * \"FF\", \"03\", 12 * (\"00\" + 31 * \"FF\") + 7 * \"FF\", \"mod_800_gas_base_heavy\"),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/Modexp.cs#L70\n        (16 * \"FF\", \"01\" + 75 * \"FF\", 15 * \"FF\", \"mod_800_gas_exp_heavy\"),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/Modexp.cs#L72\n        (56 * \"FF\", 6 * \"FF\", \"00\" + 54 * \"FF\", \"mod_767_gas_balanced\"),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/Modexp.cs#L74\n        (16 * \"FF\", 80 * \"FF\", 15 * \"FF\", \"mod_852_gas_exp_heavy\"),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/Modexp.cs#L76\n        (408 * \"FF\", \"03\", 12 * (\"00\" + 31 * \"FF\") + 23 * \"FF\", \"mod_867_gas_base_heavy\"),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/Modexp.cs#L78\n        (56 * \"FF\", \"2b\" + 7 * \"FF\", \"00\" + 54 * \"FF\", \"mod_996_gas_balanced\"),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/Modexp.cs#L80\n        (448 * \"FF\", \"03\", 14 * (\"00\" + 31 * \"FF\"), \"mod_1045_gas_base_heavy\"),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/Modexp.cs#L82\n        (32 * \"FF\", 16 * \"FF\", \"00\" + 31 * \"FF\", \"mod_677_gas_base_heavy\"),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/Modexp.cs#L84\n        (24 * \"FF\", 32 * \"FF\", 23 * \"FF\", \"mod_765_gas_exp_heavy\"),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/Modexp.cs#L86\n        (32 * \"FF\", 32 * \"FF\", \"00\" + 31 * \"FF\", \"mod_1360_gas_balanced\"),\n        (8 * \"FF\", 81 * \"FF\", 7 * \"FF\", \"mod_8_exp_648\"),\n        (8 * \"FF\", \"FF\" + 111 * \"FF\", 7 * \"FF\", \"mod_8_exp_896\"),\n        (32 * \"FF\", 4 * \"FF\", \"00\" + 31 * \"FF\", \"mod_32_exp_32\"),\n        (32 * \"FF\", \"0D\" + 4 * \"FF\", \"00\" + 31 * \"FF\", \"mod_32_exp_36\"),\n        (32 * \"FF\", 5 * \"FF\", \"00\" + 31 * \"FF\", \"mod_32_exp_40\"),\n        (32 * \"FF\", 8 * \"FF\", \"00\" + 31 * \"FF\", \"mod_32_exp_64\"),\n        (32 * \"FF\", \"01\" + 8 * \"FF\", \"00\" + 31 * \"FF\", \"mod_32_exp_65\"),\n        (32 * \"FF\", 16 * \"FF\", \"00\" + 31 * \"FF\", \"mod_32_exp_128\"),\n        (256 * \"FF\", \"03\" + 0 * \"FF\", 8 * (\"00\" + 31 * \"FF\"), \"mod_256_exp_2\"),\n        (264 * \"FF\", \"03\" + 0 * \"FF\", 8 * (\"00\" + 31 * \"FF\") + 7 * \"FF\", \"mod_264_exp_2\"),\n        (1024 * \"FF\", \"03\", 32 * (\"00\" + 31 * \"FF\"), \"mod_1024_exp_2\"),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/ModexpVulnerability.cs#L122\n        (\n            \"03\",\n            \"fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2e\",\n            \"fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f\",\n            \"mod_vul_example_1\",\n        ),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/ModexpVulnerability.cs#L124\n        (\n            \"\",\n            \"fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2e\",\n            \"fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f\",\n            \"mod_vul_example_2\",\n        ),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/ModexpVulnerability.cs#L126\n        (\n            \"e09ad9675465c53a109fac66a445c91b292d2bb2c5268addb30cd82f80fcb0033ff97c80a5fc6f39193ae969c6ede6710a6b7ac27078a06d90ef1c72e5c85fb5\",\n            \"02\",\n            \"fc9e1f6beb81516545975218075ec2af118cd8798df6e08a147c60fd6095ac2bb02c2908cf4dd7c81f11c289e4bce98f3553768f392a80ce22bf5c4f4a248c6b\",\n            \"mod_vul_nagydani_1_square\",\n        ),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/ModexpVulnerability.cs#L128\n        (\n            \"e09ad9675465c53a109fac66a445c91b292d2bb2c5268addb30cd82f80fcb0033ff97c80a5fc6f39193ae969c6ede6710a6b7ac27078a06d90ef1c72e5c85fb5\",\n            \"03\",\n            \"fc9e1f6beb81516545975218075ec2af118cd8798df6e08a147c60fd6095ac2bb02c2908cf4dd7c81f11c289e4bce98f3553768f392a80ce22bf5c4f4a248c6b\",\n            \"mod_vul_nagydani_1_qube\",\n        ),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/ModexpVulnerability.cs#L130\n        (\n            \"e09ad9675465c53a109fac66a445c91b292d2bb2c5268addb30cd82f80fcb0033ff97c80a5fc6f39193ae969c6ede6710a6b7ac27078a06d90ef1c72e5c85fb5\",\n            \"010001\",\n            \"fc9e1f6beb81516545975218075ec2af118cd8798df6e08a147c60fd6095ac2bb02c2908cf4dd7c81f11c289e4bce98f3553768f392a80ce22bf5c4f4a248c6b\",\n            \"mod_vul_nagydani_1_pow_0x10001\",\n        ),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/ModexpVulnerability.cs#L132\n        (\n            \"cad7d991a00047dd54d3399b6b0b937c718abddef7917c75b6681f40cc15e2be0003657d8d4c34167b2f0bbbca0ccaa407c2a6a07d50f1517a8f22979ce12a81dcaf707cc0cebfc0ce2ee84ee7f77c38b9281b9822a8d3de62784c089c9b18dcb9a2a5eecbede90ea788a862a9ddd9d609c2c52972d63e289e28f6a590ffbf51\",\n            \"02\",\n            \"e6d893b80aeed5e6e9ce9afa8a5d5675c93a32ac05554cb20e9951b2c140e3ef4e433068cf0fb73bc9f33af1853f64aa27a0028cbf570d7ac9048eae5dc7b28c87c31e5810f1e7fa2cda6adf9f1076dbc1ec1238560071e7efc4e9565c49be9e7656951985860a558a754594115830bcdb421f741408346dd5997bb01c287087\",\n            \"mod_vul_nagydani_2_square\",\n        ),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/ModexpVulnerability.cs#L134\n        (\n            \"cad7d991a00047dd54d3399b6b0b937c718abddef7917c75b6681f40cc15e2be0003657d8d4c34167b2f0bbbca0ccaa407c2a6a07d50f1517a8f22979ce12a81dcaf707cc0cebfc0ce2ee84ee7f77c38b9281b9822a8d3de62784c089c9b18dcb9a2a5eecbede90ea788a862a9ddd9d609c2c52972d63e289e28f6a590ffbf51\",\n            \"03\",\n            \"e6d893b80aeed5e6e9ce9afa8a5d5675c93a32ac05554cb20e9951b2c140e3ef4e433068cf0fb73bc9f33af1853f64aa27a0028cbf570d7ac9048eae5dc7b28c87c31e5810f1e7fa2cda6adf9f1076dbc1ec1238560071e7efc4e9565c49be9e7656951985860a558a754594115830bcdb421f741408346dd5997bb01c287087\",\n            \"mod_vul_nagydani_2_qube\",\n        ),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/ModexpVulnerability.cs#L136\n        (\n            \"cad7d991a00047dd54d3399b6b0b937c718abddef7917c75b6681f40cc15e2be0003657d8d4c34167b2f0bbbca0ccaa407c2a6a07d50f1517a8f22979ce12a81dcaf707cc0cebfc0ce2ee84ee7f77c38b9281b9822a8d3de62784c089c9b18dcb9a2a5eecbede90ea788a862a9ddd9d609c2c52972d63e289e28f6a590ffbf51\",\n            \"010001\",\n            \"e6d893b80aeed5e6e9ce9afa8a5d5675c93a32ac05554cb20e9951b2c140e3ef4e433068cf0fb73bc9f33af1853f64aa27a0028cbf570d7ac9048eae5dc7b28c87c31e5810f1e7fa2cda6adf9f1076dbc1ec1238560071e7efc4e9565c49be9e7656951985860a558a754594115830bcdb421f741408346dd5997bb01c287087\",\n            \"mod_vul_nagydani_2_pow_0x10001\",\n        ),\n        (\n            \"c9130579f243e12451760976261416413742bd7c91d39ae087f46794062b8c239f2a74abf3918605a0e046a7890e049475ba7fbb78f5de6490bd22a710cc04d30088179a919d86c2da62cf37f59d8f258d2310d94c24891be2d7eeafaa32a8cb4b0cfe5f475ed778f45907dc8916a73f03635f233f7a77a00a3ec9ca6761a5bbd558a2318ecd0caa1c5016691523e7e1fa267dd35e70c66e84380bdcf7c0582f540174e572c41f81e93da0b757dff0b0fe23eb03aa19af0bdec3afb474216febaacb8d0381e631802683182b0fe72c28392539850650b70509f54980241dc175191a35d967288b532a7a8223ce2440d010615f70df269501944d4ec16fe4a3cb\",\n            \"02\",\n            \"d7a85909174757835187cb52e71934e6c07ef43b4c46fc30bbcd0bc72913068267c54a4aabebb493922492820babdeb7dc9b1558fcf7bd82c37c82d3147e455b623ab0efa752fe0b3a67ca6e4d126639e645a0bf417568adbb2a6a4eef62fa1fa29b2a5a43bebea1f82193a7dd98eb483d09bb595af1fa9c97c7f41f5649d976aee3e5e59e2329b43b13bea228d4a93f16ba139ccb511de521ffe747aa2eca664f7c9e33da59075cc335afcd2bf3ae09765f01ab5a7c3e3938ec168b74724b5074247d200d9970382f683d6059b94dbc336603d1dfee714e4b447ac2fa1d99ecb4961da2854e03795ed758220312d101e1e3d87d5313a6d052aebde75110363d\",\n            \"mod_vul_nagydani_3_square\",\n        ),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/ModexpVulnerability.cs#L140\n        (\n            \"c9130579f243e12451760976261416413742bd7c91d39ae087f46794062b8c239f2a74abf3918605a0e046a7890e049475ba7fbb78f5de6490bd22a710cc04d30088179a919d86c2da62cf37f59d8f258d2310d94c24891be2d7eeafaa32a8cb4b0cfe5f475ed778f45907dc8916a73f03635f233f7a77a00a3ec9ca6761a5bbd558a2318ecd0caa1c5016691523e7e1fa267dd35e70c66e84380bdcf7c0582f540174e572c41f81e93da0b757dff0b0fe23eb03aa19af0bdec3afb474216febaacb8d0381e631802683182b0fe72c28392539850650b70509f54980241dc175191a35d967288b532a7a8223ce2440d010615f70df269501944d4ec16fe4a3cb\",\n            \"03\",\n            \"d7a85909174757835187cb52e71934e6c07ef43b4c46fc30bbcd0bc72913068267c54a4aabebb493922492820babdeb7dc9b1558fcf7bd82c37c82d3147e455b623ab0efa752fe0b3a67ca6e4d126639e645a0bf417568adbb2a6a4eef62fa1fa29b2a5a43bebea1f82193a7dd98eb483d09bb595af1fa9c97c7f41f5649d976aee3e5e59e2329b43b13bea228d4a93f16ba139ccb511de521ffe747aa2eca664f7c9e33da59075cc335afcd2bf3ae09765f01ab5a7c3e3938ec168b74724b5074247d200d9970382f683d6059b94dbc336603d1dfee714e4b447ac2fa1d99ecb4961da2854e03795ed758220312d101e1e3d87d5313a6d052aebde75110363d\",\n            \"mod_vul_nagydani_3_qube\",\n        ),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/ModexpVulnerability.cs#L142\n        (\n            \"c9130579f243e12451760976261416413742bd7c91d39ae087f46794062b8c239f2a74abf3918605a0e046a7890e049475ba7fbb78f5de6490bd22a710cc04d30088179a919d86c2da62cf37f59d8f258d2310d94c24891be2d7eeafaa32a8cb4b0cfe5f475ed778f45907dc8916a73f03635f233f7a77a00a3ec9ca6761a5bbd558a2318ecd0caa1c5016691523e7e1fa267dd35e70c66e84380bdcf7c0582f540174e572c41f81e93da0b757dff0b0fe23eb03aa19af0bdec3afb474216febaacb8d0381e631802683182b0fe72c28392539850650b70509f54980241dc175191a35d967288b532a7a8223ce2440d010615f70df269501944d4ec16fe4a3cb\",\n            \"010001\",\n            \"d7a85909174757835187cb52e71934e6c07ef43b4c46fc30bbcd0bc72913068267c54a4aabebb493922492820babdeb7dc9b1558fcf7bd82c37c82d3147e455b623ab0efa752fe0b3a67ca6e4d126639e645a0bf417568adbb2a6a4eef62fa1fa29b2a5a43bebea1f82193a7dd98eb483d09bb595af1fa9c97c7f41f5649d976aee3e5e59e2329b43b13bea228d4a93f16ba139ccb511de521ffe747aa2eca664f7c9e33da59075cc335afcd2bf3ae09765f01ab5a7c3e3938ec168b74724b5074247d200d9970382f683d6059b94dbc336603d1dfee714e4b447ac2fa1d99ecb4961da2854e03795ed758220312d101e1e3d87d5313a6d052aebde75110363d\",\n            \"mod_vul_nagydani_3_pow_0x10001\",\n        ),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/ModexpVulnerability.cs#L144\n        (\n            \"db34d0e438249c0ed685c949cc28776a05094e1c48691dc3f2dca5fc3356d2a0663bd376e4712839917eb9a19c670407e2c377a2de385a3ff3b52104f7f1f4e0c7bf7717fb913896693dc5edbb65b760ef1b00e42e9d8f9af17352385e1cd742c9b006c0f669995cb0bb21d28c0aced2892267637b6470d8cee0ab27fc5d42658f6e88240c31d6774aa60a7ebd25cd48b56d0da11209f1928e61005c6eb709f3e8e0aaf8d9b10f7d7e296d772264dc76897ccdddadc91efa91c1903b7232a9e4c3b941917b99a3bc0c26497dedc897c25750af60237aa67934a26a2bc491db3dcc677491944bc1f51d3e5d76b8d846a62db03dedd61ff508f91a56d71028125035c3a44cbb041497c83bf3e4ae2a9613a401cc721c547a2afa3b16a2969933d3626ed6d8a7428648f74122fd3f2a02a20758f7f693892c8fd798b39abac01d18506c45e71432639e9f9505719ee822f62ccbf47f6850f096ff77b5afaf4be7d772025791717dbe5abf9b3f40cff7d7aab6f67e38f62faf510747276e20a42127e7500c444f9ed92baf65ade9e836845e39c4316d9dce5f8e2c8083e2c0acbb95296e05e51aab13b6b8f53f06c9c4276e12b0671133218cc3ea907da3bd9a367096d9202128d14846cc2e20d56fc8473ecb07cecbfb8086919f3971926e7045b853d85a69d026195c70f9f7a823536e2a8f4b3e12e94d9b53a934353451094b81\",\n            \"02\",\n            \"df3143a0057457d75e8c708b6337a6f5a4fd1a06727acf9fb93e2993c62f3378b37d56c85e7b1e00f0145ebf8e4095bd723166293c60b6ac1252291ef65823c9e040ddad14969b3b340a4ef714db093a587c37766d68b8d6b5016e741587e7e6bf7e763b44f0247e64bae30f994d248bfd20541a333e5b225ef6a61199e301738b1e688f70ec1d7fb892c183c95dc543c3e12adf8a5e8b9ca9d04f9445cced3ab256f29e998e69efaa633a7b60e1db5a867924ccab0a171d9d6e1098dfa15acde9553de599eaa56490c8f411e4985111f3d40bddfc5e301edb01547b01a886550a61158f7e2033c59707789bf7c854181d0c2e2a42a93cf09209747d7082e147eb8544de25c3eb14f2e35559ea0c0f5877f2f3fc92132c0ae9da4e45b2f6c866a224ea6d1f28c05320e287750fbc647368d41116e528014cc1852e5531d53e4af938374daba6cee4baa821ed07117253bb3601ddd00d59a3d7fb2ef1f5a2fbba7c429f0cf9a5b3462410fd833a69118f8be9c559b1000cc608fd877fb43f8e65c2d1302622b944462579056874b387208d90623fcdaf93920ca7a9e4ba64ea208758222ad868501cc2c345e2d3a5ea2a17e5069248138c8a79c0251185d29ee73e5afab5354769142d2bf0cb6712727aa6bf84a6245fcdae66e4938d84d1b9dd09a884818622080ff5f98942fb20acd7e0c916c2d5ea7ce6f7e173315384518f\",\n            \"mod_vul_nagydani_4_square\",\n        ),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/ModexpVulnerability.cs#L146\n        (\n            \"db34d0e438249c0ed685c949cc28776a05094e1c48691dc3f2dca5fc3356d2a0663bd376e4712839917eb9a19c670407e2c377a2de385a3ff3b52104f7f1f4e0c7bf7717fb913896693dc5edbb65b760ef1b00e42e9d8f9af17352385e1cd742c9b006c0f669995cb0bb21d28c0aced2892267637b6470d8cee0ab27fc5d42658f6e88240c31d6774aa60a7ebd25cd48b56d0da11209f1928e61005c6eb709f3e8e0aaf8d9b10f7d7e296d772264dc76897ccdddadc91efa91c1903b7232a9e4c3b941917b99a3bc0c26497dedc897c25750af60237aa67934a26a2bc491db3dcc677491944bc1f51d3e5d76b8d846a62db03dedd61ff508f91a56d71028125035c3a44cbb041497c83bf3e4ae2a9613a401cc721c547a2afa3b16a2969933d3626ed6d8a7428648f74122fd3f2a02a20758f7f693892c8fd798b39abac01d18506c45e71432639e9f9505719ee822f62ccbf47f6850f096ff77b5afaf4be7d772025791717dbe5abf9b3f40cff7d7aab6f67e38f62faf510747276e20a42127e7500c444f9ed92baf65ade9e836845e39c4316d9dce5f8e2c8083e2c0acbb95296e05e51aab13b6b8f53f06c9c4276e12b0671133218cc3ea907da3bd9a367096d9202128d14846cc2e20d56fc8473ecb07cecbfb8086919f3971926e7045b853d85a69d026195c70f9f7a823536e2a8f4b3e12e94d9b53a934353451094b81\",\n            \"03\",\n            \"df3143a0057457d75e8c708b6337a6f5a4fd1a06727acf9fb93e2993c62f3378b37d56c85e7b1e00f0145ebf8e4095bd723166293c60b6ac1252291ef65823c9e040ddad14969b3b340a4ef714db093a587c37766d68b8d6b5016e741587e7e6bf7e763b44f0247e64bae30f994d248bfd20541a333e5b225ef6a61199e301738b1e688f70ec1d7fb892c183c95dc543c3e12adf8a5e8b9ca9d04f9445cced3ab256f29e998e69efaa633a7b60e1db5a867924ccab0a171d9d6e1098dfa15acde9553de599eaa56490c8f411e4985111f3d40bddfc5e301edb01547b01a886550a61158f7e2033c59707789bf7c854181d0c2e2a42a93cf09209747d7082e147eb8544de25c3eb14f2e35559ea0c0f5877f2f3fc92132c0ae9da4e45b2f6c866a224ea6d1f28c05320e287750fbc647368d41116e528014cc1852e5531d53e4af938374daba6cee4baa821ed07117253bb3601ddd00d59a3d7fb2ef1f5a2fbba7c429f0cf9a5b3462410fd833a69118f8be9c559b1000cc608fd877fb43f8e65c2d1302622b944462579056874b387208d90623fcdaf93920ca7a9e4ba64ea208758222ad868501cc2c345e2d3a5ea2a17e5069248138c8a79c0251185d29ee73e5afab5354769142d2bf0cb6712727aa6bf84a6245fcdae66e4938d84d1b9dd09a884818622080ff5f98942fb20acd7e0c916c2d5ea7ce6f7e173315384518f\",\n            \"mod_vul_nagydani_4_qube\",\n        ),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/ModexpVulnerability.cs#L148\n        (\n            \"db34d0e438249c0ed685c949cc28776a05094e1c48691dc3f2dca5fc3356d2a0663bd376e4712839917eb9a19c670407e2c377a2de385a3ff3b52104f7f1f4e0c7bf7717fb913896693dc5edbb65b760ef1b00e42e9d8f9af17352385e1cd742c9b006c0f669995cb0bb21d28c0aced2892267637b6470d8cee0ab27fc5d42658f6e88240c31d6774aa60a7ebd25cd48b56d0da11209f1928e61005c6eb709f3e8e0aaf8d9b10f7d7e296d772264dc76897ccdddadc91efa91c1903b7232a9e4c3b941917b99a3bc0c26497dedc897c25750af60237aa67934a26a2bc491db3dcc677491944bc1f51d3e5d76b8d846a62db03dedd61ff508f91a56d71028125035c3a44cbb041497c83bf3e4ae2a9613a401cc721c547a2afa3b16a2969933d3626ed6d8a7428648f74122fd3f2a02a20758f7f693892c8fd798b39abac01d18506c45e71432639e9f9505719ee822f62ccbf47f6850f096ff77b5afaf4be7d772025791717dbe5abf9b3f40cff7d7aab6f67e38f62faf510747276e20a42127e7500c444f9ed92baf65ade9e836845e39c4316d9dce5f8e2c8083e2c0acbb95296e05e51aab13b6b8f53f06c9c4276e12b0671133218cc3ea907da3bd9a367096d9202128d14846cc2e20d56fc8473ecb07cecbfb8086919f3971926e7045b853d85a69d026195c70f9f7a823536e2a8f4b3e12e94d9b53a934353451094b81\",\n            \"010001\",\n            \"df3143a0057457d75e8c708b6337a6f5a4fd1a06727acf9fb93e2993c62f3378b37d56c85e7b1e00f0145ebf8e4095bd723166293c60b6ac1252291ef65823c9e040ddad14969b3b340a4ef714db093a587c37766d68b8d6b5016e741587e7e6bf7e763b44f0247e64bae30f994d248bfd20541a333e5b225ef6a61199e301738b1e688f70ec1d7fb892c183c95dc543c3e12adf8a5e8b9ca9d04f9445cced3ab256f29e998e69efaa633a7b60e1db5a867924ccab0a171d9d6e1098dfa15acde9553de599eaa56490c8f411e4985111f3d40bddfc5e301edb01547b01a886550a61158f7e2033c59707789bf7c854181d0c2e2a42a93cf09209747d7082e147eb8544de25c3eb14f2e35559ea0c0f5877f2f3fc92132c0ae9da4e45b2f6c866a224ea6d1f28c05320e287750fbc647368d41116e528014cc1852e5531d53e4af938374daba6cee4baa821ed07117253bb3601ddd00d59a3d7fb2ef1f5a2fbba7c429f0cf9a5b3462410fd833a69118f8be9c559b1000cc608fd877fb43f8e65c2d1302622b944462579056874b387208d90623fcdaf93920ca7a9e4ba64ea208758222ad868501cc2c345e2d3a5ea2a17e5069248138c8a79c0251185d29ee73e5afab5354769142d2bf0cb6712727aa6bf84a6245fcdae66e4938d84d1b9dd09a884818622080ff5f98942fb20acd7e0c916c2d5ea7ce6f7e173315384518f\",\n            \"mod_vul_nagydani_4_pow_0x10001\",\n        ),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/ModexpVulnerability.cs#L150\n        (\n            \"c5a1611f8be90071a43db23cc2fe01871cc4c0e8ab5743f6378e4fef77f7f6db0095c0727e20225beb665645403453e325ad5f9aeb9ba99bf3c148f63f9c07cf4fe8847ad5242d6b7d4499f93bd47056ddab8f7dee878fc2314f344dbee2a7c41a5d3db91eff372c730c2fdd3a141a4b61999e36d549b9870cf2f4e632c4d5df5f024f81c028000073a0ed8847cfb0593d36a47142f578f05ccbe28c0c06aeb1b1da027794c48db880278f79ba78ae64eedfea3c07d10e0562668d839749dc95f40467d15cf65b9cfc52c7c4bcef1cda3596dd52631aac942f146c7cebd46065131699ce8385b0db1874336747ee020a5698a3d1a1082665721e769567f579830f9d259cec1a836845109c21cf6b25da572512bf3c42fd4b96e43895589042ab60dd41f497db96aec102087fe784165bb45f942859268fd2ff6c012d9d00c02ba83eace047cc5f7b2c392c2955c58a49f0338d6fc58749c9db2155522ac17914ec216ad87f12e0ee95574613942fa615898c4d9e8a3be68cd6afa4e7a003dedbdf8edfee31162b174f965b20ae752ad89c967b3068b6f722c16b354456ba8e280f987c08e0a52d40a2e8f3a59b94d590aeef01879eb7a90b3ee7d772c839c85519cbeaddc0c193ec4874a463b53fcaea3271d80ebfb39b33489365fc039ae549a17a9ff898eea2f4cb27b8dbee4c17b998438575b2b8d107e4a0d66ba7fca85b41a58a8d51f191a35c856dfbe8aef2b00048a694bbccff832d23c8ca7a7ff0b6c0b3011d00b97c86c0628444d267c951d9e4fb8f83e154b8f74fb51aa16535e498235c5597dac9606ed0be3173a3836baa4e7d756ffe1e2879b415d3846bccd538c05b847785699aefde3e305decb600cd8fb0e7d8de5efc26971a6ad4e6d7a2d91474f1023a0ac4b78dc937da0ce607a45974d2cac1c33a2631ff7fe6144a3b2e5cf98b531a9627dea92c1dc82204d09db0439b6a11dd64b484e1263aa45fd9539b6020b55e3baece3986a8bffc1003406348f5c61265099ed43a766ee4f93f5f9c5abbc32a0fd3ac2b35b87f9ec26037d88275bd7dd0a54474995ee34ed3727f3f97c48db544b1980193a4b76a8a3ddab3591ce527f16d91882e67f0103b5cda53f7da54d489fc4ac08b6ab358a5a04aa9daa16219d50bd672a7cb804ed769d218807544e5993f1c27427104b349906a0b654df0bf69328afd3013fbe430155339c39f236df5557bf92f1ded7ff609a8502f49064ec3d1dbfb6c15d3a4c11a4f8acd12278cbf68acd5709463d12e3338a6eddb8c112f199645e23154a8e60879d2a654e3ed9296aa28f134168619691cd2c6b9e2eba4438381676173fc63c2588a3c5910dc149cf3760f0aa9fa9c3f5faa9162b0bf1aac9dd32b706a60ef53cbdb394b6b40222b5bc80eea82ba8958386672564cae3794f977871ab62337cf\",\n            \"02\",\n            \"e30049201ec12937e7ce79d0f55d9c810e20acf52212aca1d3888949e0e4830aad88d804161230eb89d4d329cc83570fe257217d2119134048dd2ed167646975fc7d77136919a049ea74cf08ddd2b896890bb24a0ba18094a22baa351bf29ad96c66bbb1a598f2ca391749620e62d61c3561a7d3653ccc8892c7b99baaf76bf836e2991cb06d6bc0514568ff0d1ec8bb4b3d6984f5eaefb17d3ea2893722375d3ddb8e389a8eef7d7d198f8e687d6a513983df906099f9a2d23f4f9dec6f8ef2f11fc0a21fac45353b94e00486f5e17d386af42502d09db33cf0cf28310e049c07e88682aeeb00cb833c5174266e62407a57583f1f88b304b7c6e0c84bbe1c0fd423072d37a5bd0aacf764229e5c7cd02473460ba3645cd8e8ae144065bf02d0dd238593d8e230354f67e0b2f23012c23274f80e3ee31e35e2606a4a3f31d94ab755e6d163cff52cbb36b6d0cc67ffc512aeed1dce4d7a0d70ce82f2baba12e8d514dc92a056f994adfb17b5b9712bd5186f27a2fda1f7039c5df2c8587fdc62f5627580c13234b55be4df3056050e2d1ef3218f0dd66cb05265fe1acfb0989d8213f2c19d1735a7cf3fa65d88dad5af52dc2bba22b7abf46c3bc77b5091baab9e8f0ddc4d5e581037de91a9f8dcbc69309be29cc815cf19a20a7585b8b3073edf51fc9baeb3e509b97fa4ecfd621e0fd57bd61cac1b895c03248ff12bdbc57509250df3517e8a3fe1d776836b34ab352b973d932ef708b14f7418f9eceb1d87667e61e3e758649cb083f01b133d37ab2f5afa96d6c84bcacf4efc3851ad308c1e7d9113624fce29fab460ab9d2a48d92cdb281103a5250ad44cb2ff6e67ac670c02fdafb3e0f1353953d6d7d5646ca1568dea55275a050ec501b7c6250444f7219f1ba7521ba3b93d089727ca5f3bbe0d6c1300b423377004954c5628fdb65770b18ced5c9b23a4a5a6d6ef25fe01b4ce278de0bcc4ed86e28a0a68818ffa40970128cf2c38740e80037984428c1bd5113f40ff47512ee6f4e4d8f9b8e8e1b3040d2928d003bd1c1329dc885302fbce9fa81c23b4dc49c7c82d29b52957847898676c89aa5d32b5b0e1c0d5a2b79a19d67562f407f19425687971a957375879d90c5f57c857136c17106c9ab1b99d80e69c8c954ed386493368884b55c939b8d64d26f643e800c56f90c01079d7c534e3b2b7ae352cefd3016da55f6a85eb803b85e2304915fd2001f77c74e28746293c46e4f5f0fd49cf988aafd0026b8e7a3bab2da5cdce1ea26c2e29ec03f4807fac432662b2d6c060be1c7be0e5489de69d0a6e03a4b9117f9244b34a0f1ecba89884f781c6320412413a00c4980287409a2a78c2cd7e65cecebbe4ec1c28cac4dd95f6998e78fc6f1392384331c9436aa10e10e2bf8ad2c4eafbcf276aa7bae64b74428911b3269c749338b0fc5075ad\",\n            \"mod_vul_nagydani_5_square\",\n        ),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/ModexpVulnerability.cs#L152\n        (\n            \"c5a1611f8be90071a43db23cc2fe01871cc4c0e8ab5743f6378e4fef77f7f6db0095c0727e20225beb665645403453e325ad5f9aeb9ba99bf3c148f63f9c07cf4fe8847ad5242d6b7d4499f93bd47056ddab8f7dee878fc2314f344dbee2a7c41a5d3db91eff372c730c2fdd3a141a4b61999e36d549b9870cf2f4e632c4d5df5f024f81c028000073a0ed8847cfb0593d36a47142f578f05ccbe28c0c06aeb1b1da027794c48db880278f79ba78ae64eedfea3c07d10e0562668d839749dc95f40467d15cf65b9cfc52c7c4bcef1cda3596dd52631aac942f146c7cebd46065131699ce8385b0db1874336747ee020a5698a3d1a1082665721e769567f579830f9d259cec1a836845109c21cf6b25da572512bf3c42fd4b96e43895589042ab60dd41f497db96aec102087fe784165bb45f942859268fd2ff6c012d9d00c02ba83eace047cc5f7b2c392c2955c58a49f0338d6fc58749c9db2155522ac17914ec216ad87f12e0ee95574613942fa615898c4d9e8a3be68cd6afa4e7a003dedbdf8edfee31162b174f965b20ae752ad89c967b3068b6f722c16b354456ba8e280f987c08e0a52d40a2e8f3a59b94d590aeef01879eb7a90b3ee7d772c839c85519cbeaddc0c193ec4874a463b53fcaea3271d80ebfb39b33489365fc039ae549a17a9ff898eea2f4cb27b8dbee4c17b998438575b2b8d107e4a0d66ba7fca85b41a58a8d51f191a35c856dfbe8aef2b00048a694bbccff832d23c8ca7a7ff0b6c0b3011d00b97c86c0628444d267c951d9e4fb8f83e154b8f74fb51aa16535e498235c5597dac9606ed0be3173a3836baa4e7d756ffe1e2879b415d3846bccd538c05b847785699aefde3e305decb600cd8fb0e7d8de5efc26971a6ad4e6d7a2d91474f1023a0ac4b78dc937da0ce607a45974d2cac1c33a2631ff7fe6144a3b2e5cf98b531a9627dea92c1dc82204d09db0439b6a11dd64b484e1263aa45fd9539b6020b55e3baece3986a8bffc1003406348f5c61265099ed43a766ee4f93f5f9c5abbc32a0fd3ac2b35b87f9ec26037d88275bd7dd0a54474995ee34ed3727f3f97c48db544b1980193a4b76a8a3ddab3591ce527f16d91882e67f0103b5cda53f7da54d489fc4ac08b6ab358a5a04aa9daa16219d50bd672a7cb804ed769d218807544e5993f1c27427104b349906a0b654df0bf69328afd3013fbe430155339c39f236df5557bf92f1ded7ff609a8502f49064ec3d1dbfb6c15d3a4c11a4f8acd12278cbf68acd5709463d12e3338a6eddb8c112f199645e23154a8e60879d2a654e3ed9296aa28f134168619691cd2c6b9e2eba4438381676173fc63c2588a3c5910dc149cf3760f0aa9fa9c3f5faa9162b0bf1aac9dd32b706a60ef53cbdb394b6b40222b5bc80eea82ba8958386672564cae3794f977871ab62337cf\",\n            \"03\",\n            \"e30049201ec12937e7ce79d0f55d9c810e20acf52212aca1d3888949e0e4830aad88d804161230eb89d4d329cc83570fe257217d2119134048dd2ed167646975fc7d77136919a049ea74cf08ddd2b896890bb24a0ba18094a22baa351bf29ad96c66bbb1a598f2ca391749620e62d61c3561a7d3653ccc8892c7b99baaf76bf836e2991cb06d6bc0514568ff0d1ec8bb4b3d6984f5eaefb17d3ea2893722375d3ddb8e389a8eef7d7d198f8e687d6a513983df906099f9a2d23f4f9dec6f8ef2f11fc0a21fac45353b94e00486f5e17d386af42502d09db33cf0cf28310e049c07e88682aeeb00cb833c5174266e62407a57583f1f88b304b7c6e0c84bbe1c0fd423072d37a5bd0aacf764229e5c7cd02473460ba3645cd8e8ae144065bf02d0dd238593d8e230354f67e0b2f23012c23274f80e3ee31e35e2606a4a3f31d94ab755e6d163cff52cbb36b6d0cc67ffc512aeed1dce4d7a0d70ce82f2baba12e8d514dc92a056f994adfb17b5b9712bd5186f27a2fda1f7039c5df2c8587fdc62f5627580c13234b55be4df3056050e2d1ef3218f0dd66cb05265fe1acfb0989d8213f2c19d1735a7cf3fa65d88dad5af52dc2bba22b7abf46c3bc77b5091baab9e8f0ddc4d5e581037de91a9f8dcbc69309be29cc815cf19a20a7585b8b3073edf51fc9baeb3e509b97fa4ecfd621e0fd57bd61cac1b895c03248ff12bdbc57509250df3517e8a3fe1d776836b34ab352b973d932ef708b14f7418f9eceb1d87667e61e3e758649cb083f01b133d37ab2f5afa96d6c84bcacf4efc3851ad308c1e7d9113624fce29fab460ab9d2a48d92cdb281103a5250ad44cb2ff6e67ac670c02fdafb3e0f1353953d6d7d5646ca1568dea55275a050ec501b7c6250444f7219f1ba7521ba3b93d089727ca5f3bbe0d6c1300b423377004954c5628fdb65770b18ced5c9b23a4a5a6d6ef25fe01b4ce278de0bcc4ed86e28a0a68818ffa40970128cf2c38740e80037984428c1bd5113f40ff47512ee6f4e4d8f9b8e8e1b3040d2928d003bd1c1329dc885302fbce9fa81c23b4dc49c7c82d29b52957847898676c89aa5d32b5b0e1c0d5a2b79a19d67562f407f19425687971a957375879d90c5f57c857136c17106c9ab1b99d80e69c8c954ed386493368884b55c939b8d64d26f643e800c56f90c01079d7c534e3b2b7ae352cefd3016da55f6a85eb803b85e2304915fd2001f77c74e28746293c46e4f5f0fd49cf988aafd0026b8e7a3bab2da5cdce1ea26c2e29ec03f4807fac432662b2d6c060be1c7be0e5489de69d0a6e03a4b9117f9244b34a0f1ecba89884f781c6320412413a00c4980287409a2a78c2cd7e65cecebbe4ec1c28cac4dd95f6998e78fc6f1392384331c9436aa10e10e2bf8ad2c4eafbcf276aa7bae64b74428911b3269c749338b0fc5075ad\",\n            \"mod_vul_nagydani_5_qube\",\n        ),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/ModexpVulnerability.cs#L154\n        (\n            \"c5a1611f8be90071a43db23cc2fe01871cc4c0e8ab5743f6378e4fef77f7f6db0095c0727e20225beb665645403453e325ad5f9aeb9ba99bf3c148f63f9c07cf4fe8847ad5242d6b7d4499f93bd47056ddab8f7dee878fc2314f344dbee2a7c41a5d3db91eff372c730c2fdd3a141a4b61999e36d549b9870cf2f4e632c4d5df5f024f81c028000073a0ed8847cfb0593d36a47142f578f05ccbe28c0c06aeb1b1da027794c48db880278f79ba78ae64eedfea3c07d10e0562668d839749dc95f40467d15cf65b9cfc52c7c4bcef1cda3596dd52631aac942f146c7cebd46065131699ce8385b0db1874336747ee020a5698a3d1a1082665721e769567f579830f9d259cec1a836845109c21cf6b25da572512bf3c42fd4b96e43895589042ab60dd41f497db96aec102087fe784165bb45f942859268fd2ff6c012d9d00c02ba83eace047cc5f7b2c392c2955c58a49f0338d6fc58749c9db2155522ac17914ec216ad87f12e0ee95574613942fa615898c4d9e8a3be68cd6afa4e7a003dedbdf8edfee31162b174f965b20ae752ad89c967b3068b6f722c16b354456ba8e280f987c08e0a52d40a2e8f3a59b94d590aeef01879eb7a90b3ee7d772c839c85519cbeaddc0c193ec4874a463b53fcaea3271d80ebfb39b33489365fc039ae549a17a9ff898eea2f4cb27b8dbee4c17b998438575b2b8d107e4a0d66ba7fca85b41a58a8d51f191a35c856dfbe8aef2b00048a694bbccff832d23c8ca7a7ff0b6c0b3011d00b97c86c0628444d267c951d9e4fb8f83e154b8f74fb51aa16535e498235c5597dac9606ed0be3173a3836baa4e7d756ffe1e2879b415d3846bccd538c05b847785699aefde3e305decb600cd8fb0e7d8de5efc26971a6ad4e6d7a2d91474f1023a0ac4b78dc937da0ce607a45974d2cac1c33a2631ff7fe6144a3b2e5cf98b531a9627dea92c1dc82204d09db0439b6a11dd64b484e1263aa45fd9539b6020b55e3baece3986a8bffc1003406348f5c61265099ed43a766ee4f93f5f9c5abbc32a0fd3ac2b35b87f9ec26037d88275bd7dd0a54474995ee34ed3727f3f97c48db544b1980193a4b76a8a3ddab3591ce527f16d91882e67f0103b5cda53f7da54d489fc4ac08b6ab358a5a04aa9daa16219d50bd672a7cb804ed769d218807544e5993f1c27427104b349906a0b654df0bf69328afd3013fbe430155339c39f236df5557bf92f1ded7ff609a8502f49064ec3d1dbfb6c15d3a4c11a4f8acd12278cbf68acd5709463d12e3338a6eddb8c112f199645e23154a8e60879d2a654e3ed9296aa28f134168619691cd2c6b9e2eba4438381676173fc63c2588a3c5910dc149cf3760f0aa9fa9c3f5faa9162b0bf1aac9dd32b706a60ef53cbdb394b6b40222b5bc80eea82ba8958386672564cae3794f977871ab62337cf\",\n            \"010001\",\n            \"e30049201ec12937e7ce79d0f55d9c810e20acf52212aca1d3888949e0e4830aad88d804161230eb89d4d329cc83570fe257217d2119134048dd2ed167646975fc7d77136919a049ea74cf08ddd2b896890bb24a0ba18094a22baa351bf29ad96c66bbb1a598f2ca391749620e62d61c3561a7d3653ccc8892c7b99baaf76bf836e2991cb06d6bc0514568ff0d1ec8bb4b3d6984f5eaefb17d3ea2893722375d3ddb8e389a8eef7d7d198f8e687d6a513983df906099f9a2d23f4f9dec6f8ef2f11fc0a21fac45353b94e00486f5e17d386af42502d09db33cf0cf28310e049c07e88682aeeb00cb833c5174266e62407a57583f1f88b304b7c6e0c84bbe1c0fd423072d37a5bd0aacf764229e5c7cd02473460ba3645cd8e8ae144065bf02d0dd238593d8e230354f67e0b2f23012c23274f80e3ee31e35e2606a4a3f31d94ab755e6d163cff52cbb36b6d0cc67ffc512aeed1dce4d7a0d70ce82f2baba12e8d514dc92a056f994adfb17b5b9712bd5186f27a2fda1f7039c5df2c8587fdc62f5627580c13234b55be4df3056050e2d1ef3218f0dd66cb05265fe1acfb0989d8213f2c19d1735a7cf3fa65d88dad5af52dc2bba22b7abf46c3bc77b5091baab9e8f0ddc4d5e581037de91a9f8dcbc69309be29cc815cf19a20a7585b8b3073edf51fc9baeb3e509b97fa4ecfd621e0fd57bd61cac1b895c03248ff12bdbc57509250df3517e8a3fe1d776836b34ab352b973d932ef708b14f7418f9eceb1d87667e61e3e758649cb083f01b133d37ab2f5afa96d6c84bcacf4efc3851ad308c1e7d9113624fce29fab460ab9d2a48d92cdb281103a5250ad44cb2ff6e67ac670c02fdafb3e0f1353953d6d7d5646ca1568dea55275a050ec501b7c6250444f7219f1ba7521ba3b93d089727ca5f3bbe0d6c1300b423377004954c5628fdb65770b18ced5c9b23a4a5a6d6ef25fe01b4ce278de0bcc4ed86e28a0a68818ffa40970128cf2c38740e80037984428c1bd5113f40ff47512ee6f4e4d8f9b8e8e1b3040d2928d003bd1c1329dc885302fbce9fa81c23b4dc49c7c82d29b52957847898676c89aa5d32b5b0e1c0d5a2b79a19d67562f407f19425687971a957375879d90c5f57c857136c17106c9ab1b99d80e69c8c954ed386493368884b55c939b8d64d26f643e800c56f90c01079d7c534e3b2b7ae352cefd3016da55f6a85eb803b85e2304915fd2001f77c74e28746293c46e4f5f0fd49cf988aafd0026b8e7a3bab2da5cdce1ea26c2e29ec03f4807fac432662b2d6c060be1c7be0e5489de69d0a6e03a4b9117f9244b34a0f1ecba89884f781c6320412413a00c4980287409a2a78c2cd7e65cecebbe4ec1c28cac4dd95f6998e78fc6f1392384331c9436aa10e10e2bf8ad2c4eafbcf276aa7bae64b74428911b3269c749338b0fc5075ad\",\n            \"mod_vul_nagydani_5_pow_0x10001\",\n        ),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/ModexpVulnerability.cs#L156\n        (\n            \"ffffff\",\n            \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffe000007d7d7d83828282348286877d7d827d407d797d7d7d7d7d7d7d7d7d7d7d5b00000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000021000000000000000000000000000000000000000000000000000000000000000cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4000007d7d\",\n            \"7d83828282348286877d7d82\",\n            \"mod_vul_marius_1_even\",\n        ),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/ModexpVulnerability.cs#L158\n        (\n            \"ffffffffffffffff76ffffffffffffff\",\n            \"1cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c76ec7c7c7c7ffffffffffffffc7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7ffffffffffffc7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c76ec7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7ffff\",\n            \"ffffff3f000000000000000000000000\",\n            \"mod_vul_guido_1_even\",\n        ),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/ModexpVulnerability.cs#L160\n        (\n            \"e0060000a921212121212121ff000021\",\n            \"2b212121ffff1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f00feffff212121212121ffffffff1fe1e0e0e01e1f1f169f1f1f1f490afcefffffffffffffffff82828282828282828282828282828282828282828200ffff28ff2b212121ffff1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1fffffffffff0afceffffff7ffffffffff7c8282828282a1828282828282828282828282828200ffff28ff2b212121ffff1f1f1f1f1f1fd11f1f1f1f1f1f1f1f1f1f1fffffffffffffffff21212121212121fb2121212121ffff1f1f1f1f1f1f1f1fffaf\",\n            \"82828282828200ffff28ff2b21828200\",\n            \"mod_vul_guido_2_even\",\n        ),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/ModexpVulnerability.cs#L162\n        (\n            \"0193585a48e18aad777e9c1b54221a0f58140392e4f091cd5f42b2e8644a9384fbd58ae1edec2477ebf7edbf7c0a3f8bd21d1890ee87646feab3c47be716f842cc3da9b940af312dc54450a960e3fc0b86e56abddd154068e10571a96fff6259431632bc15695c6c8679057e66c2c25c127e97e64ee5de6ea1fc0a4a0e431343fed1daafa072c238a45841da86a9806680bc9f298411173210790359209cd454b5af7b4d5688b4403924e5f863d97e2c5349e1a04b54fcf385b1e9d7714bab8fbf5835f6ff9ed575e77dff7af5cbb641db5d537933bae1fa6555d6c12d6fb31ca27b57771f4aebfbe0bf95e8990c0108ffe7cbdaf370be52cf3ade594543af75ad9329d2d11a402270b5b9a6bf4b83307506e118fca4862749d04e916fc7a039f0d13f2a02e0eedb800199ec95df15b4ccd8669b52586879624d51219e72102fad810b5909b1e372ddf33888fb9beb09b416e4164966edbabd89e4a286be36277fc576ed519a15643dac602e92b63d0b9121f0491da5b16ef793a967f096d80b6c81ecaaffad7e3f06a4a5ac2796f1ed9f68e6a0fd5cf191f0c5c2eec338952ff8d31abc68bf760febeb57e088995ba1d7726a2fdd6d8ca28a181378b8b4ab699bfd4b696739bbf17a9eb2df6251143046137fdbbfacac312ebf67a67da9741b59600000000000\",\n            \"04\",\n            \"19a2917c61722b0713d3b00a2f0e1dd5aebbbe09615de424700eea3c3020fe6e9ea5de9fa1ace781df28b21f746d2ab61d0da496e08473c90ff7dfe25b43bcde76f4bafb82e0975bea75f5a0591dba80ba2fff80a07d8853bea5be13ab326ba70c57b153acc646151948d1cf061ca31b02d4719fac710e7c723ca44f5b1737824b7ccc74ba5bff980aabdbf267621cafc3d6dcc29d0ca9c16839a92ed34de136da7900aa3ee43d21aa57498981124357cf0ca9b86f9a8d3f9c604ca00c726e48f7a9945021ea6dfff92d6b2d6514693169ca133e993541bfa4c4c191de806aa80c48109bcfc9901eccfdeb2395ab75fe63c67de900829d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n            \"mod_vul_guido_3_even\",\n        ),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/ModexpVulnerability.cs#L166\n        (\n            \"ffffffffffffffff\",\n            \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"ffffffffffffffff\",\n            \"mod_vul_pawel_1_exp_heavy\",\n        ),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/ModexpVulnerability.cs#L168\n        (\n            \"ffffffffffffffffffffffffffffffff\",\n            \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"ffffffffffffffffffffffffffffffff\",\n            \"mod_vul_pawel_2_exp_heavy\",\n        ),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/ModexpVulnerability.cs#L170\n        (\n            \"ffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"ffffffffffffffffffffffffffffffffffffffffff\",\n            \"ffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"mod_vul_pawel_3_exp_heavy\",\n        ),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/ModexpVulnerability.cs#L172\n        (\n            \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"ffffffffffffffffffffffff\",\n            \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"mod_vul_pawel_4_exp_heavy\",\n        ),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/ModexpVulnerability.cs#L174\n        (\n            \"29356abadad68ad986c416de6f620bda0e1818b589e84f853a97391694d35496\",\n            \"ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254f\",\n            \"ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551\",\n            \"mod_vul_common_1360n1\",\n        ),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/ModexpVulnerability.cs#L176\n        (\n            \"d41afaeaea32f7409827761b68c41b6e535da4ede1f0800bfb4a6aed18394f6b\",\n            \"ffffffff00000001000000000000000000000000fffffffffffffffffffffffd\",\n            \"ffffffff00000001000000000000000000000000ffffffffffffffffffffffff\",\n            \"mod_vul_common_1360n2\",\n        ),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/ModexpVulnerability.cs#L178\n        (\n            \"1a5be8fae3b3fda9ea329494ae8689c04fae4978ecccfa6a6bfb9f04b25846c0\",\n            \"30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffffff\",\n            \"30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001\",\n            \"mod_vul_common_1349n1\",\n        ),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/ModexpVulnerability.cs#L182\n        (\n            \"0000000000000000000000000000000000000000000000000000000000000003\",\n            \"0000000001000000000000022000000000000000000000000000000000000000\",\n            \"0800000000000011000000000000000000000000000000000000000000000001\",\n            \"mod_vul_common_1152n1\",\n        ),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/ModexpVulnerability.cs#L184\n        (\n            \"1fb473dd1171cf88116aa77ab3612c2c7d2cf466cc2386cc456130e2727c70b4\",\n            \"0000000000000000000000000000000000000000000000000000000001000000\",\n            \"30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001\",\n            \"mod_vul_common_200n1\",\n        ),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/ModexpVulnerability.cs#L186\n        (\n            \"1951441010b2b95a6e47a6075066a50a036f5ba978c050f2821df86636c0facb\",\n            \"0000000000000000000000000000000000000000000000000000000000ffffff\",\n            \"30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001\",\n            \"mod_vul_common_200n2\",\n        ),\n        # Ported from https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCases/ModexpVulnerability.cs#L188\n        (\n            \"288254ba43e713afbe36c9f03b54c00fae4c0a82df1cf165eb46a21c20a48ca2\",\n            \"0000000000000000000000000000000000000000000000000000000000ffffff\",\n            \"30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001\",\n            \"mod_vul_common_200n3\",\n        ),\n        (\n            \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\",\n            \"mod_vul_zkevm_worst_case\",\n        ),\n    ]\n\n    special_cases = [\n        pytest.param(\n            ModExpInput.from_bytes(\n                \"000000000000000000000000000000000000000000000000000000000000001700000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000017bffffffffffffffffffffffffffffffffffffffffffffbffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffe\"\n            ),\n            id=\"mod_vul_pawel_3_exp_8\",\n        ),\n    ]\n\n    regular_cases = [\n        pytest.param(\n            ModExpInput(\n                base=base,\n                exponent=exponent,\n                modulus=modulus,\n            ),\n            id=test_id,\n        )\n        for base, exponent, modulus, test_id in test_cases\n    ]\n\n    return regular_cases + special_cases\n\n\n@pytest.mark.parametrize(\n    [\"mod_exp_input\"],\n    create_modexp_test_cases(),\n)\ndef test_worst_modexp(\n    benchmark_test: BenchmarkTestFiller,\n    mod_exp_input: ModExpInput,\n) -> None:\n    \"\"\"\n    Test running a block with as many calls to the MODEXP (5) precompile as\n    possible. All the calls have the same parametrized input.\n    \"\"\"\n    attack_block = Op.POP(\n        Op.STATICCALL(Op.GAS, 0x5, Op.PUSH0, Op.CALLDATASIZE, Op.PUSH0, Op.PUSH0)\n    )\n    benchmark_test(\n        code_generator=JumpLoopGenerator(\n            setup=Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE),\n            attack_block=attack_block,\n            tx_kwargs={\"data\": bytes(mod_exp_input).rstrip(b\"\\x00\")},\n        ),\n    )\n\n\n@pytest.mark.parametrize(\n    \"precompile_address,parameters\",\n    [\n        pytest.param(\n            0x01,\n            [\n                # The inputs below are a valid signature, thus ECRECOVER call\n                # won't be short-circuited by validations and do actual work.\n                \"38D18ACB67D25C8BB9942764B62F18E17054F66A817BD4295423ADF9ED98873E\",\n                \"000000000000000000000000000000000000000000000000000000000000001B\",\n                \"38D18ACB67D25C8BB9942764B62F18E17054F66A817BD4295423ADF9ED98873E\",\n                \"789D1DD423D25F0772D2748D60F7E4B81BB14D086EBA8E8E8EFB6DCFF8A4AE02\",\n            ],\n            id=\"ecrecover\",\n        ),\n        pytest.param(\n            0x06,\n            [\n                \"18B18ACFB4C2C30276DB5411368E7185B311DD124691610C5D3B74034E093DC9\",\n                \"063C909C4720840CB5134CB9F59FA749755796819658D32EFC0D288198F37266\",\n                \"07C2B7F58A84BD6145F00C9C2BC0BB1A187F20FF2C92963A88019E7C6A014EED\",\n                \"06614E20C147E940F2D70DA3F74C9A17DF361706A4485C742BD6788478FA17D7\",\n            ],\n            id=\"bn128_add\",\n        ),\n        # Ported from\n        # https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCase.cs#L326\n        pytest.param(\n            0x06,\n            [\n                \"0000000000000000000000000000000000000000000000000000000000000000\",\n                \"0000000000000000000000000000000000000000000000000000000000000000\",\n                \"0000000000000000000000000000000000000000000000000000000000000000\",\n                \"0000000000000000000000000000000000000000000000000000000000000000\",\n            ],\n            id=\"bn128_add_infinities\",\n        ),\n        # Ported from\n        # https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCase.cs#L329\n        pytest.param(\n            0x06,\n            [\n                \"0000000000000000000000000000000000000000000000000000000000000001\",\n                \"0000000000000000000000000000000000000000000000000000000000000002\",\n                \"0000000000000000000000000000000000000000000000000000000000000001\",\n                \"0000000000000000000000000000000000000000000000000000000000000002\",\n            ],\n            id=\"bn128_add_1_2\",\n        ),\n        pytest.param(\n            0x07,\n            [\n                \"1A87B0584CE92F4593D161480614F2989035225609F08058CCFA3D0F940FEBE3\",\n                \"1A2F3C951F6DADCC7EE9007DFF81504B0FCD6D7CF59996EFDC33D92BF7F9F8F6\",\n                \"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\",\n            ],\n            id=\"bn128_mul\",\n        ),\n        # Ported from\n        # https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCase.cs#L335\n        pytest.param(\n            0x07,\n            [\n                \"0000000000000000000000000000000000000000000000000000000000000000\",\n                \"0000000000000000000000000000000000000000000000000000000000000000\",\n                \"0000000000000000000000000000000000000000000000000000000000000002\",\n            ],\n            id=\"bn128_mul_infinities_2_scalar\",\n        ),\n        # Ported from\n        # https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCase.cs#L338\n        pytest.param(\n            0x07,\n            [\n                \"0000000000000000000000000000000000000000000000000000000000000000\",\n                \"0000000000000000000000000000000000000000000000000000000000000000\",\n                \"25f8c89ea3437f44f8fc8b6bfbb6312074dc6f983809a5e809ff4e1d076dd585\",\n            ],\n            id=\"bn128_mul_infinities_32_byte_scalar\",\n        ),\n        # Ported from\n        # https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCase.cs#L341\n        pytest.param(\n            0x07,\n            [\n                \"0000000000000000000000000000000000000000000000000000000000000001\",\n                \"0000000000000000000000000000000000000000000000000000000000000002\",\n                \"0000000000000000000000000000000000000000000000000000000000000002\",\n            ],\n            id=\"bn128_mul_1_2_2_scalar\",\n        ),\n        # Ported from\n        # https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCase.cs#L344\n        pytest.param(\n            0x07,\n            [\n                \"0000000000000000000000000000000000000000000000000000000000000001\",\n                \"0000000000000000000000000000000000000000000000000000000000000002\",\n                \"25f8c89ea3437f44f8fc8b6bfbb6312074dc6f983809a5e809ff4e1d076dd585\",\n            ],\n            id=\"bn128_mul_1_2_32_byte_scalar\",\n        ),\n        # Ported from\n        # https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCase.cs#L347\n        pytest.param(\n            0x07,\n            [\n                \"089142debb13c461f61523586a60732d8b69c5b38a3380a74da7b2961d867dbf\",\n                \"2d5fc7bbc013c16d7945f190b232eacc25da675c0eb093fe6b9f1b4b4e107b36\",\n                \"0000000000000000000000000000000000000000000000000000000000000002\",\n            ],\n            id=\"bn128_mul_32_byte_coord_and_2_scalar\",\n        ),\n        # Ported from\n        # https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCase.cs#L350\n        pytest.param(\n            0x07,\n            [\n                \"089142debb13c461f61523586a60732d8b69c5b38a3380a74da7b2961d867dbf\",\n                \"2d5fc7bbc013c16d7945f190b232eacc25da675c0eb093fe6b9f1b4b4e107b36\",\n                \"25f8c89ea3437f44f8fc8b6bfbb6312074dc6f983809a5e809ff4e1d076dd585\",\n            ],\n            id=\"bn128_mul_32_byte_coord_and_scalar\",\n        ),\n        pytest.param(\n            0x08,\n            [\n                # First pairing\n                \"1C76476F4DEF4BB94541D57EBBA1193381FFA7AA76ADA664DD31C16024C43F59\",\n                \"3034DD2920F673E204FEE2811C678745FC819B55D3E9D294E45C9B03A76AEF41\",\n                \"209DD15EBFF5D46C4BD888E51A93CF99A7329636C63514396B4A452003A35BF7\",\n                \"04BF11CA01483BFA8B34B43561848D28905960114C8AC04049AF4B6315A41678\",\n                \"2BB8324AF6CFC93537A2AD1A445CFD0CA2A71ACD7AC41FADBF933C2A51BE344D\",\n                \"120A2A4CF30C1BF9845F20C6FE39E07EA2CCE61F0C9BB048165FE5E4DE877550\",\n                # Second pairing\n                \"111E129F1CF1097710D41C4AC70FCDFA5BA2023C6FF1CBEAC322DE49D1B6DF7C\",\n                \"103188585E2364128FE25C70558F1560F4F9350BAF3959E603CC91486E110936\",\n                \"198E9393920D483A7260BFB731FB5D25F1AA493335A9E71297E485B7AEF312C2\",\n                \"1800DEEF121F1E76426A00665E5C4479674322D4F75EDADD46DEBD5CD992F6ED\",\n                \"090689D0585FF075EC9E99AD690C3395BC4B313370B38EF355ACDADCD122975B\",\n                \"12C85EA5DB8C6DEB4AAB71808DCB408FE3D1E7690C43D37B4CE6CC0166FA7DAA\",\n            ],\n            id=\"bn128_two_pairings\",\n        ),\n        pytest.param(\n            0x08,\n            [\n                # First pairing\n                \"1C76476F4DEF4BB94541D57EBBA1193381FFA7AA76ADA664DD31C16024C43F59\",\n                \"3034DD2920F673E204FEE2811C678745FC819B55D3E9D294E45C9B03A76AEF41\",\n                \"209DD15EBFF5D46C4BD888E51A93CF99A7329636C63514396B4A452003A35BF7\",\n                \"04BF11CA01483BFA8B34B43561848D28905960114C8AC04049AF4B6315A41678\",\n                \"2BB8324AF6CFC93537A2AD1A445CFD0CA2A71ACD7AC41FADBF933C2A51BE344D\",\n                \"120A2A4CF30C1BF9845F20C6FE39E07EA2CCE61F0C9BB048165FE5E4DE877550\",\n            ],\n            id=\"bn128_one_pairing\",\n        ),\n        # Ported from\n        # https://github.com/NethermindEth/nethermind/blob/ceb8d57b8530ce8181d7427c115ca593386909d6/tools/EngineRequestsGenerator/TestCase.cs#L353\n        pytest.param(0x08, [], id=\"ec_pairing_zero_input\"),\n        pytest.param(\n            0x08,\n            [\n                # First pairing\n                \"2cf44499d5d27bb186308b7af7af02ac5bc9eeb6a3d147c186b21fb1b76e18da\",\n                \"2c0f001f52110ccfe69108924926e45f0b0c868df0e7bde1fe16d3242dc715f6\",\n                \"1fb19bb476f6b9e44e2a32234da8212f61cd63919354bc06aef31e3cfaff3ebc\",\n                \"22606845ff186793914e03e21df544c34ffe2f2f3504de8a79d9159eca2d98d9\",\n                \"2bd368e28381e8eccb5fa81fc26cf3f048eea9abfdd85d7ed3ab3698d63e4f90\",\n                \"2fe02e47887507adf0ff1743cbac6ba291e66f59be6bd763950bb16041a0a85e\",\n                # Second pairing\n                \"0000000000000000000000000000000000000000000000000000000000000013\",\n                \"0644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd451\",\n                \"971ff0471b09fa93caaf13cbf443c1aede09cc4328f5a62aad45f40ec133eb40\",\n                \"91058a3141822985733cbdddfed0fd8d6c104e9e9eff40bf5abfef9ab163bc72\",\n                \"a23af9a5ce2ba2796c1f4e453a370eb0af8c212d9dc9acd8fc02c2e907baea22\",\n                \"3a8eb0b0996252cb548a4487da97b02422ebc0e834613f954de6c7e0afdc1fc0\",\n            ],\n            id=\"ec_pairing_2_sets\",\n        ),\n        pytest.param(\n            0x08,\n            [\"\"],\n            id=\"ec_pairing_1_pair\",\n        ),\n        pytest.param(\n            0x08,\n            [\n                # First pairing\n                \"2371e7d92e9fc444d0e11526f0752b520318c80be68bf0131704b36b7976572e\",\n                \"2dca8f05ed5d58e0f2e13c49ae40480c0f99dfcd9268521eea6c81c6387b66c4\",\n                \"051a93d697db02afd3dcf8414ecb906a114a2bfdb6b06c95d41798d1801b3cbd\",\n                \"2e275fef7a0bdb0a2aea77d8ec5817e66e199b3d55bc0fa308dcdda74e85060b\",\n                \"1c7e33c2a72d6e12a31eababad3dbc388525135628102bb64742d9e325f43410\",\n                \"115dc41fa10b2dbf99036f252ad6f00e8876b22f02cb4738dc4413b22ea9b2df\",\n                # Second pairing\n                \"09a760ea8f9bd87dc258a949395a03f7d2500c6e72c61f570986328a096b610a\",\n                \"148027063c072345298117eb2cb980ad79601db31cc69bba6bcbe4937ada6720\",\n                \"198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c2\",\n                \"1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed\",\n                \"090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b\",\n                \"12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\",\n            ],\n            id=\"ec_pairing_2_pair\",\n        ),\n        pytest.param(\n            0x08,\n            [\n                # First pairing\n                \"0000000000000000000000000000000000000000000000000000000000000000\",\n                \"0000000000000000000000000000000000000000000000000000000000000000\",\n                \"0ef4aac9b7954d5fc6eafae7f4f4c2a732ab05b45f8d50d102cee4973f36eb2c\",\n                \"23db7d30c99e0a2a7f3bb5cd1f04635aaea58732b58887df93d9239c28230d28\",\n                \"2bd99d31a5054f2556d226f2e5ef0e075423d8604178b2e2c08006311caee54f\",\n                \"0f11afb0c6073d12d21b13f4f78210e8ca9a66729206d3fcc2c1b04824c425f2\",\n                # Second pairing\n                \"0000000000000000000000000000000000000000000000000000000000000000\",\n                \"198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c2\",\n                \"1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed\",\n                \"090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b\",\n                \"12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\",\n                # Third pairing\n                \"0000000000000000000000000000000000000000000000000000000000000000\",\n                \"198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c2\",\n                \"1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed\",\n                \"090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b\",\n                \"12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\",\n            ],\n            id=\"ec_pairing_3_pair\",\n        ),\n        pytest.param(\n            0x08,\n            [\n                # First pairing\n                \"24ab69f46f3e3333027d67d51af71571141bd5652b9829157a3c5d1268461984\",\n                \"0f0e1495665bccf97d627b714e8a49e9c77c21e8d5b383ad7dde7e50040d0f62\",\n                \"2cab595b9d579f8b82e433249b83ae1d7b62d7073a4f67cb3aeb9b316988907f\",\n                \"1326d1905ffde0c77e8ebd98257aa239b05ae76c8ec7723ec19bbc8282b0debe\",\n                \"130502106676b537e01cc356765e91c005d6c4bd1a75f5f6d41d2556c73e56ac\",\n                \"2dc4cb08068b4aa5f14b7f1096ab35d5c13d78319ec7e66e9f67a1ff20cbbf03\",\n                # Second pairing\n                \"1459f4140b271cbc8746de9dfcb477d5b72d50ef95bec5fef4a68dd69ddfdb2e\",\n                \"2c589584551d16a9723b5d356d1ee2066d10381555cdc739e39efca2612fc544\",\n                \"229ab0abdb0a7d1a5f0d93fb36ce41e12a31ba52fd9e3c27bebce524ab6c4e9b\",\n                \"00f8756832b244377d06e2d00eeb95ec8096dcfd81f4e4931b50fea23c04a2fe\",\n                \"29605352ce973ec48d1ab2c8355643c999b70ff771946078b519c556058c3d56\",\n                \"059a65ae6e0189d4e04a966140aa40f781a1345824a90a91bb035e12ad29af1d\",\n                # Third pairing\n                \"1459f4140b271cbc8746de9dfcb477d5b72d50ef95bec5fef4a68dd69ddfdb2e\",\n                \"2c589584551d16a9723b5d356d1ee2066d10381555cdc739e39efca2612fc544\",\n                \"229ab0abdb0a7d1a5f0d93fb36ce41e12a31ba52fd9e3c27bebce524ab6c4e9b\",\n                \"00f8756832b244377d06e2d00eeb95ec8096dcfd81f4e4931b50fea23c04a2fe\",\n                \"29605352ce973ec48d1ab2c8355643c999b70ff771946078b519c556058c3d56\",\n                \"059a65ae6e0189d4e04a966140aa40f781a1345824a90a91bb035e12ad29af1d\",\n                # Fourth pairing\n                \"24ab69f46f3e3333027d67d51af71571141bd5652b9829157a3c5d1268461984\",\n                \"0f0e1495665bccf97d627b714e8a49e9c77c21e8d5b383ad7dde7e50040d0f62\",\n                \"2cab595b9d579f8b82e433249b83ae1d7b62d7073a4f67cb3aeb9b316988907f\",\n                \"1326d1905ffde0c77e8ebd98257aa239b05ae76c8ec7723ec19bbc8282b0debe\",\n                \"130502106676b537e01cc356765e91c005d6c4bd1a75f5f6d41d2556c73e56ac\",\n                \"2dc4cb08068b4aa5f14b7f1096ab35d5c13d78319ec7e66e9f67a1ff20cbbf03\",\n            ],\n            id=\"ec_pairing_4_pair\",\n        ),\n        pytest.param(\n            0x08,\n            [\n                # First pairing\n                \"1147057b17237df94a3186435acf66924e1d382b8c935fdd493ceb38c38def73\",\n                \"03cd046286139915160357ce5b29b9ea28bfb781b71734455d20ef1a64be76ca\",\n                \"0daa7cc4983cf74c94607519df747f61e317307c449bafb6923f6d6a65299a7e\",\n                \"1d48db8f275830859fd61370addbc5d5ef3f0ce7491d16918e065f7e3727439d\",\n                \"1ca8ac2f4a0f540e5505edbe1d15d13899a2a0dfccb012d068134ac66edec625\",\n                \"2162c315417d1d12c9d7028c5619015391003a9006d4d8979784c7af2c4537a3\",\n                # Second pairing\n                \"0d221a19ca86dafa8cb804daff78fd3d1bed30aa32e7d4029b1aa69afda2d750\",\n                \"018628c766a98de1d0cca887a6d90303e68a7729490f25f937b76b57624ba0be\",\n                \"14550ccf7139312da6fa9eb1259c6365b0bd688a27473ccb42bc5cd6f14c8abd\",\n                \"165f8721ee9f614382c8c7edb103c941d3a55c1849c9787f34317777d5d9365b\",\n                \"0d19da7439edb573a1b3e357faade63d5d68b6031771fd911459b7ab0bda9d3f\",\n                \"25a50a44d10c99c5f107e3b3874f717873cb2d4674699a468204df27c0c50a9a\",\n                # Third pairing\n                \"0d7136c59b907615e1b45cf730fbfd6cf38b7e126e85e52be804620a23ace4fb\",\n                \"03e80c29d24ed5cc407329ae093bb1be00f9e3c9332f532bc3658937110d7607\",\n                \"2129813bd7247065ac58eac42c81e874044e199f48c12aa749a9fe6bb6e4bddc\",\n                \"1b72b9ab4579283e62445555d5b2921424213d09a776152361c46988b82be8a7\",\n                \"111bc8198f932e379b8f9825f01af0f5e5cacbf8bfe274bf674f6eaa6e338e04\",\n                \"259f58d438fd6391e158c991e155966218e6a432703a84068a32543965749857\",\n                # Fourth pairing\n                \"1ba47a91d487cce77aa78390a295df54d9351637d67810c400415fb374278e3f\",\n                \"24318bbc05a4e4d779b9498075841c360c6973c1c51dea254281829bbc9aef33\",\n                \"198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c2\",\n                \"1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed\",\n                \"090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b\",\n                \"12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\",\n                # Fifth pairing\n                \"1e219772c16eee72450bbf43e9cadae7bf6b2e6ae6637cfeb1d1e8965287acfb\",\n                \"0347e7bf4245debd3d00b6f51d2d50fd718e6769352f4fe1db0efe492fed2fc3\",\n                \"24fdcc7d4ed0953e3dad500c7ef9836fc61ded44ba454ec76f0a6d0687f4c1b4\",\n                \"282b18f7e59c1db4852e622919b2ce9aa5980ca883eac312049c19a3deb79f6d\",\n                \"0c9d6ce303b7811dd7ea506c8fa124837405bd209b8731bda79a66eb7206277b\",\n                \"1ac5dac62d2332faa8069faca3b0d27fcdf95d8c8bafc9074ee72b5c1f33aa70\",\n            ],\n            id=\"ec_pairing_5_pair\",\n        ),\n        pytest.param(\n            0x08,\n            [\n                \"0000000000000000000000000000000000000000000000000000000000000000\",\n            ],\n            id=\"ec_pairing_1_pair_empty\",\n        ),\n        pytest.param(\n            Blake2bSpec.BLAKE2_PRECOMPILE_ADDRESS,\n            [\n                Blake2bInput(rounds=0xFFFF, f=True).create_blake2b_tx_data(),\n            ],\n            id=\"blake2f\",\n        ),\n        pytest.param(\n            BlobsSpec.POINT_EVALUATION_PRECOMPILE_ADDRESS,\n            [\n                \"01E798154708FE7789429634053CBF9F99B619F9F084048927333FCE637F549B\",\n                \"564C0A11A0F704F4FC3E8ACFE0F8245F0AD1347B378FBF96E206DA11A5D36306\",\n                \"24D25032E67A7E6A4910DF5834B8FE70E6BCFEEAC0352434196BDF4B2485D5A1\",\n                \"8F59A8D2A1A625A17F3FEA0FE5EB8C896DB3764F3185481BC22F91B4AAFFCCA25F26936857BC3A7C2539EA8EC3A952B7\",\n                \"873033E038326E87ED3E1276FD140253FA08E9FC25FB2D9A98527FC22A2C9612FBEAFDAD446CBC7BCDBDCD780AF2C16A\",\n            ],\n            id=\"point_evaluation\",\n        ),\n        pytest.param(\n            bls12381_spec.Spec.G1ADD,\n            [\n                bls12381_spec.Spec.G1,\n                bls12381_spec.Spec.P1,\n            ],\n            id=\"bls12_g1add\",\n        ),\n        pytest.param(\n            bls12381_spec.Spec.G1MSM,\n            [\n                (bls12381_spec.Spec.P1 + bls12381_spec.Scalar(bls12381_spec.Spec.Q))\n                * (len(bls12381_spec.Spec.G1MSM_DISCOUNT_TABLE) - 1),\n            ],\n            id=\"bls12_g1msm\",\n        ),\n        pytest.param(\n            bls12381_spec.Spec.G2ADD,\n            [\n                bls12381_spec.Spec.G2,\n                bls12381_spec.Spec.P2,\n            ],\n            id=\"bls12_g2add\",\n        ),\n        pytest.param(\n            bls12381_spec.Spec.G2MSM,\n            [\n                # TODO: the //2 is required due to a limitation of the max\n                # contract size limit. In a further iteration we can insert the\n                # inputs as calldata or storage and avoid having to do PUSHes\n                # which has this limitation. This also applies to G1MSM.\n                (bls12381_spec.Spec.P2 + bls12381_spec.Scalar(bls12381_spec.Spec.Q))\n                * (len(bls12381_spec.Spec.G2MSM_DISCOUNT_TABLE) // 2),\n            ],\n            id=\"bls12_g2msm\",\n        ),\n        pytest.param(\n            bls12381_spec.Spec.PAIRING,\n            [\n                bls12381_spec.Spec.G1,\n                bls12381_spec.Spec.G2,\n            ],\n            id=\"bls12_pairing_check\",\n        ),\n        pytest.param(\n            bls12381_spec.Spec.MAP_FP_TO_G1,\n            [\n                bls12381_spec.FP(bls12381_spec.Spec.P - 1),\n            ],\n            id=\"bls12_fp_to_g1\",\n        ),\n        pytest.param(\n            bls12381_spec.Spec.MAP_FP2_TO_G2,\n            [\n                bls12381_spec.FP2((bls12381_spec.Spec.P - 1, bls12381_spec.Spec.P - 1)),\n            ],\n            id=\"bls12_fp_to_g2\",\n        ),\n        pytest.param(\n            p256verify_spec.Spec.P256VERIFY,\n            [\n                p256verify_spec.Spec.H0,\n                p256verify_spec.Spec.R0,\n                p256verify_spec.Spec.S0,\n                p256verify_spec.Spec.X0,\n                p256verify_spec.Spec.Y0,\n            ],\n            id=\"p256verify\",\n            marks=[pytest.mark.eip_checklist(\"precompile/test/excessive_gas_usage\", eip=[7951])],\n        ),\n        pytest.param(\n            p256verify_spec.Spec.P256VERIFY,\n            [\n                \"235060CAFE19A407880C272BC3E73600E3A12294F56143ED61929C2FF4525ABB\",\n                \"182E5CBDF96ACCB859E8EEA1850DE5FF6E430A19D1D9A680ECD5946BBEA8A32B\",\n                \"76DDFAE6797FA6777CAAB9FA10E75F52E70A4E6CEB117B3C5B2F445D850BD64C\",\n                \"3828736CDFC4C8696008F71999260329AD8B12287846FEDCEDE3BA1205B12729\",\n                \"3E5141734E971A8D55015068D9B3666760F4608A49B11F92E500ACEA647978C7\",\n            ],\n            id=\"p256verify_wrong_endianness\",\n        ),\n        pytest.param(\n            p256verify_spec.Spec.P256VERIFY,\n            [\n                \"BB5A52F42F9C9261ED4361F59422A1E30036E7C32B270C8807A419FECA605023\",\n                \"000000000000000000000000000000004319055358E8617B0C46353D039CDAAB\",\n                \"FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC63254E\",\n                \"0AD99500288D466940031D72A9F5445A4D43784640855BF0A69874D2DE5FE103\",\n                \"C5011E6EF2C42DCD50D5D3D29F99AE6EBA2C80C9244F4C5422F0979FF0C3BA5E\",\n            ],\n            id=\"p256verify_modular_comp_x_coordinate_exceeds_n\",\n        ),\n    ],\n)\ndef test_worst_precompile_fixed_cost(\n    benchmark_test: BenchmarkTestFiller,\n    fork: Fork,\n    precompile_address: Address,\n    parameters: list[str] | list[BytesConcatenation] | list[bytes],\n) -> None:\n    \"\"\"Test running a block filled with a precompile with fixed cost.\"\"\"\n    if precompile_address not in fork.precompiles():\n        pytest.skip(\"Precompile not enabled\")\n\n    concatenated_bytes: bytes\n    if all(isinstance(p, str) for p in parameters):\n        parameters_str = cast(list[str], parameters)\n        concatenated_hex_string = \"\".join(parameters_str)\n        concatenated_bytes = bytes.fromhex(concatenated_hex_string)\n    elif all(isinstance(p, (bytes, BytesConcatenation, FieldElement)) for p in parameters):\n        parameters_bytes_list = [\n            bytes(p) for p in cast(list[BytesConcatenation | bytes | FieldElement], parameters)\n        ]\n        concatenated_bytes = b\"\".join(parameters_bytes_list)\n    else:\n        raise TypeError(\n            \"parameters must be a list of strings (hex) \"\n            \"or a list of byte-like objects (bytes, BytesConcatenation or FieldElement).\"\n        )\n\n    padding_length = (32 - (len(concatenated_bytes) % 32)) % 32\n    input_bytes = concatenated_bytes + b\"\\x00\" * padding_length\n\n    setup = Bytecode()\n    for i in range(0, len(input_bytes), 32):\n        chunk = input_bytes[i : i + 32]\n        value_to_store = int.from_bytes(chunk, \"big\")\n        setup += Op.MSTORE(i, value_to_store)\n\n    attack_block = Op.POP(\n        Op.STATICCALL(Op.GAS, precompile_address, 0, len(concatenated_bytes), 0, 0)\n    )\n\n    benchmark_test(\n        code_generator=JumpLoopGenerator(setup=setup, attack_block=attack_block),\n    )\n\n\ndef test_worst_jumps(\n    benchmark_test: BenchmarkTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"Test running a JUMP-intensive contract.\"\"\"\n    tx = Transaction(\n        to=pre.deploy_contract(code=(Op.JUMPDEST + Op.JUMP(Op.PUSH0))),\n        sender=pre.fund_eoa(),\n    )\n\n    benchmark_test(tx=tx)\n\n\ndef test_worst_jumpi_fallthrough(\n    benchmark_test: BenchmarkTestFiller,\n) -> None:\n    \"\"\"Test running a JUMPI-intensive contract with fallthrough.\"\"\"\n    benchmark_test(\n        code_generator=JumpLoopGenerator(attack_block=Op.JUMPI(Op.PUSH0, Op.PUSH0)),\n    )\n\n\ndef test_worst_jumpis(\n    benchmark_test: BenchmarkTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"Test running a JUMPI-intensive contract.\"\"\"\n    tx = Transaction(\n        to=pre.deploy_contract(code=(Op.JUMPDEST + Op.JUMPI(Op.PUSH0, Op.NUMBER))),\n        sender=pre.fund_eoa(),\n    )\n\n    benchmark_test(tx=tx)\n\n\ndef test_worst_jumpdests(\n    benchmark_test: BenchmarkTestFiller,\n) -> None:\n    \"\"\"Test running a JUMPDEST-intensive contract.\"\"\"\n    benchmark_test(code_generator=JumpLoopGenerator(attack_block=Op.JUMPDEST))\n\n\nDEFAULT_BINOP_ARGS = (\n    0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F,\n    0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFF00000001,\n)\n\n\n@pytest.mark.parametrize(\n    \"opcode,opcode_args\",\n    [\n        (\n            Op.ADD,\n            DEFAULT_BINOP_ARGS,\n        ),\n        (\n            Op.MUL,\n            DEFAULT_BINOP_ARGS,\n        ),\n        (\n            # This has the cycle of 2, after two SUBs values are back to\n            # initials.\n            Op.SUB,\n            DEFAULT_BINOP_ARGS,\n        ),\n        (\n            # This has the cycle of 2:\n            # v[0] = a // b\n            # v[1] = a // v[0] = a // (a // b) = b\n            # v[2] = a // b\n            Op.DIV,\n            (\n                0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F,\n                # We want the first divisor to be slightly bigger than 2**128:\n                # this is the worst case for the division algorithm with\n                # optimized paths for division by 1 and 2 words.\n                0x100000000000000000000000000000033,\n            ),\n        ),\n        (\n            # This has the cycle of 2, see above.\n            Op.DIV,\n            (\n                0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F,\n                # We want the first divisor to be slightly bigger than 2**64:\n                # this is the worst case for the division algorithm with an\n                # optimized path for division by 1 word.\n                0x10000000000000033,\n            ),\n        ),\n        (\n            # Same as DIV-0, but the numerator made positive, and the divisor\n            # made negative.\n            Op.SDIV,\n            (\n                0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F,\n                0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD,\n            ),\n        ),\n        (\n            # Same as DIV-1, but the numerator made positive, and the divisor\n            # made negative.\n            Op.SDIV,\n            (\n                0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F,\n                0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFCD,\n            ),\n        ),\n        (\n            # This scenario is not suitable for MOD because the values quickly\n            # become 0.\n            Op.MOD,\n            DEFAULT_BINOP_ARGS,\n        ),\n        (\n            # This scenario is not suitable for SMOD because the values quickly\n            # become 0.\n            Op.SMOD,\n            DEFAULT_BINOP_ARGS,\n        ),\n        (\n            # This keeps the values unchanged, pow(2**256-1, 2**256-1, 2**256)\n            # == 2**256-1.\n            Op.EXP,\n            (\n                0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF,\n                0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF,\n            ),\n        ),\n        (\n            # Not great because we always sign-extend the 4 bytes.\n            Op.SIGNEXTEND,\n            (\n                3,\n                0xFFDADADA,  # Negative to have more work.\n            ),\n        ),\n        (\n            Op.LT,  # Keeps getting result 1.\n            (0, 1),\n        ),\n        (\n            Op.GT,  # Keeps getting result 0.\n            (0, 1),\n        ),\n        (\n            Op.SLT,  # Keeps getting result 1.\n            (0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 1),\n        ),\n        (\n            Op.SGT,  # Keeps getting result 0.\n            (0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 1),\n        ),\n        (\n            # The worst case is if the arguments are equal (no early return),\n            # so let's keep it comparing ones.\n            Op.EQ,\n            (1, 1),\n        ),\n        (\n            Op.AND,\n            DEFAULT_BINOP_ARGS,\n        ),\n        (\n            Op.OR,\n            DEFAULT_BINOP_ARGS,\n        ),\n        (\n            Op.XOR,\n            DEFAULT_BINOP_ARGS,\n        ),\n        (\n            Op.BYTE,  # Keep extracting the last byte: 0x2F.\n            (31, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F),\n        ),\n        (\n            Op.SHL,  # Shift by 1 until getting 0.\n            (1, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F),\n        ),\n        (\n            Op.SHR,  # Shift by 1 until getting 0.\n            (1, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F),\n        ),\n        (\n            Op.SAR,  # Shift by 1 until getting -1.\n            (1, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F),\n        ),\n    ],\n    ids=lambda param: \"\" if isinstance(param, tuple) else param,\n)\ndef test_worst_binop_simple(\n    benchmark_test: BenchmarkTestFiller,\n    opcode: Op,\n    opcode_args: tuple[int, int],\n) -> None:\n    \"\"\"\n    Test running a block with as many binary instructions (takes two args,\n    produces one value) as possible. The execution starts with two initial\n    values on the stack, and the stack is balanced by the DUP2 instruction.\n    \"\"\"\n    tx_data = b\"\".join(arg.to_bytes(32, byteorder=\"big\") for arg in opcode_args)\n\n    setup = Op.CALLDATALOAD(0) + Op.CALLDATALOAD(32) + Op.DUP2 + Op.DUP2\n    attack_block = Op.DUP2 + opcode\n    cleanup = Op.POP + Op.POP + Op.DUP2 + Op.DUP2\n    benchmark_test(\n        code_generator=JumpLoopGenerator(\n            setup=setup,\n            attack_block=attack_block,\n            cleanup=cleanup,\n            tx_kwargs={\"data\": tx_data},\n        ),\n    )\n\n\n@pytest.mark.parametrize(\"opcode\", [Op.ISZERO, Op.NOT])\ndef test_worst_unop(\n    benchmark_test: BenchmarkTestFiller,\n    opcode: Op,\n) -> None:\n    \"\"\"\n    Test running a block with as many unary instructions (takes one arg,\n    produces one value) as possible.\n    \"\"\"\n    benchmark_test(\n        code_generator=JumpLoopGenerator(setup=Op.PUSH0, attack_block=opcode),\n    )\n\n\n# `key_mut` indicates the key isn't fixed.\n@pytest.mark.parametrize(\"key_mut\", [True, False])\n# `val_mut` indicates that at the end of each big-loop, the value of the target\n# key changes.\n@pytest.mark.parametrize(\"val_mut\", [True, False])\ndef test_worst_tload(\n    benchmark_test: BenchmarkTestFiller,\n    key_mut: bool,\n    val_mut: bool,\n) -> None:\n    \"\"\"Test running a block with as many TLOAD calls as possible.\"\"\"\n    start_key = 41\n    code_key_mut = Bytecode()\n    code_val_mut = Bytecode()\n    setup = Bytecode()\n    if key_mut and val_mut:\n        setup = Op.PUSH1(start_key)\n        attack_block = Op.POP(Op.TLOAD(Op.DUP1))\n        code_key_mut = Op.POP + Op.GAS\n        code_val_mut = Op.TSTORE(Op.DUP2, Op.GAS)\n    if key_mut and not val_mut:\n        attack_block = Op.POP(Op.TLOAD(Op.GAS))\n    if not key_mut and val_mut:\n        attack_block = Op.POP(Op.TLOAD(Op.CALLVALUE))\n        code_val_mut = Op.TSTORE(Op.CALLVALUE, Op.GAS)  # CALLVALUE configured in the tx\n    if not key_mut and not val_mut:\n        attack_block = Op.POP(Op.TLOAD(Op.CALLVALUE))\n\n    cleanup = code_key_mut + code_val_mut\n    tx_value = start_key if not key_mut and val_mut else 0\n\n    benchmark_test(\n        code_generator=JumpLoopGenerator(\n            setup=setup,\n            attack_block=attack_block,\n            cleanup=cleanup,\n            tx_kwargs={\n                \"value\": tx_value,\n            },\n        ),\n    )\n\n\n@pytest.mark.parametrize(\"key_mut\", [True, False])\n@pytest.mark.parametrize(\"dense_val_mut\", [True, False])\ndef test_worst_tstore(\n    benchmark_test: BenchmarkTestFiller,\n    key_mut: bool,\n    dense_val_mut: bool,\n) -> None:\n    \"\"\"Test running a block with as many TSTORE calls as possible.\"\"\"\n    init_key = 42\n    setup = Op.PUSH1(init_key)\n\n    # If `dense_val_mut` is set, we use GAS as a cheap way of always\n    # storing a different value than\n    # the previous one.\n    attack_block = Op.TSTORE(Op.DUP2, Op.GAS if dense_val_mut else Op.DUP1)\n\n    # If `key_mut` is True, we mutate the key on every iteration of the\n    # big loop.\n    cleanup = Op.POP + Op.GAS if key_mut else Bytecode()\n\n    benchmark_test(\n        code_generator=JumpLoopGenerator(setup=setup, attack_block=attack_block, cleanup=cleanup),\n    )\n\n\n@pytest.mark.parametrize(\"shift_right\", [Op.SHR, Op.SAR])\ndef test_worst_shifts(\n    benchmark_test: BenchmarkTestFiller,\n    pre: Alloc,\n    fork: Fork,\n    shift_right: Op,\n    gas_benchmark_value: int,\n) -> None:\n    \"\"\"\n    Test running a block with as many shift instructions with non-trivial\n    arguments. This test generates left-right pairs of shifts to avoid zeroing\n    the argument. The shift amounts are randomly pre-selected from the constant\n    pool of 15 values on the stack.\n    \"\"\"\n    max_code_size = fork.max_code_size()\n\n    def to_signed(x: int) -> int:\n        return x if x < 2**255 else x - 2**256\n\n    def to_unsigned(x: int) -> int:\n        return x if x >= 0 else x + 2**256\n\n    def shr(x: int, s: int) -> int:\n        return x >> s\n\n    def shl(x: int, s: int) -> int:\n        return x << s\n\n    def sar(x: int, s: int) -> int:\n        return to_unsigned(to_signed(x) >> s)\n\n    match shift_right:\n        case Op.SHR:\n            shift_right_fn = shr\n        case Op.SAR:\n            shift_right_fn = sar\n        case _:\n            raise ValueError(f\"Unexpected shift op: {shift_right}\")\n\n    rng = random.Random(1)  # Use random with a fixed seed.\n    initial_value = 2**256 - 1  # The initial value to be shifted; should be\n    # negative for SAR.\n\n    # Create the list of shift amounts with 15 elements (max reachable by DUPs\n    # instructions). For the worst case keep the values small and omit values\n    # divisible by 8.\n    shift_amounts = [x + (x >= 8) + (x >= 15) for x in range(1, 16)]\n\n    code_prefix = sum(Op.PUSH1[sh] for sh in shift_amounts) + Op.JUMPDEST + Op.CALLDATALOAD(0)\n    code_suffix = Op.POP + Op.JUMP(len(shift_amounts) * 2)\n    code_body_len = max_code_size - len(code_prefix) - len(code_suffix)\n\n    def select_shift_amount(shift_fn: Any, v: Any) -> Any:\n        \"\"\"Select a shift amount that will produce a non-zero result.\"\"\"\n        while True:\n            index = rng.randint(0, len(shift_amounts) - 1)\n            sh = shift_amounts[index]\n            new_v = shift_fn(v, sh) % 2**256\n            if new_v != 0:\n                return new_v, index\n\n    code_body = Bytecode()\n    v = initial_value\n    while len(code_body) <= code_body_len - 4:\n        v, i = select_shift_amount(shl, v)\n        code_body += make_dup(len(shift_amounts) - i) + Op.SHL\n        v, i = select_shift_amount(shift_right_fn, v)\n        code_body += make_dup(len(shift_amounts) - i) + shift_right\n\n    code = code_prefix + code_body + code_suffix\n    assert len(code) == max_code_size - 2\n\n    tx = Transaction(\n        to=pre.deploy_contract(code=code),\n        data=initial_value.to_bytes(32, byteorder=\"big\"),\n        gas_limit=gas_benchmark_value,\n        sender=pre.fund_eoa(),\n    )\n\n    benchmark_test(tx=tx)\n\n\n@pytest.mark.parametrize(\n    \"blob_index, blobs_present\",\n    [\n        pytest.param(0, 0, id=\"no blobs\"),\n        pytest.param(0, 1, id=\"one blob and accessed\"),\n        pytest.param(1, 1, id=\"one blob but access non-existent index\"),\n        pytest.param(5, 6, id=\"six blobs, access latest\"),\n    ],\n)\ndef test_worst_blobhash(\n    fork: Fork,\n    benchmark_test: BenchmarkTestFiller,\n    blob_index: int,\n    blobs_present: bool,\n) -> None:\n    \"\"\"Test running a block with as many BLOBHASH instructions as possible.\"\"\"\n    tx_kwargs: Dict[str, Any] = {}\n    if blobs_present > 0:\n        tx_kwargs[\"ty\"] = TransactionType.BLOB_TRANSACTION\n        tx_kwargs[\"max_fee_per_blob_gas\"] = fork.min_base_fee_per_blob_gas()\n        tx_kwargs[\"blob_versioned_hashes\"] = add_kzg_version(\n            [i.to_bytes() * 32 for i in range(blobs_present)],\n            BlobsSpec.BLOB_COMMITMENT_VERSION_KZG,\n        )\n\n    benchmark_test(\n        code_generator=ExtCallGenerator(\n            attack_block=Op.BLOBHASH(blob_index),\n            tx_kwargs=tx_kwargs,\n        ),\n    )\n\n\n@pytest.mark.parametrize(\"mod_bits\", [255, 191, 127, 63])\n@pytest.mark.parametrize(\"op\", [Op.MOD, Op.SMOD])\ndef test_worst_mod(\n    benchmark_test: BenchmarkTestFiller,\n    mod_bits: int,\n    op: Op,\n) -> None:\n    \"\"\"\n    Test running a block with as many MOD instructions with arguments of the\n    parametrized range.\n\n    The test program consists of code segments evaluating the \"MOD chain\":\n    mod[0] = calldataload(0)\n    mod[1] = numerators[indexes[0]] % mod[0]\n    mod[2] = numerators[indexes[1]] % mod[1] ...\n\n    The \"numerators\" is a pool of 15 constants pushed to the EVM stack at the\n    program start.\n\n    The order of accessing the numerators is selected in a way the mod value\n    remains in the range as long as possible.\n    \"\"\"\n    # For SMOD we negate both numerator and modulus. The underlying\n    # computation is the same,\n    # just the SMOD implementation will have to additionally handle the\n    # sign bits.\n    # The result stays negative.\n    should_negate = op == Op.SMOD\n\n    num_numerators = 15\n    numerator_bits = 256 if not should_negate else 255\n    numerator_max = 2**numerator_bits - 1\n    numerator_min = 2 ** (numerator_bits - 1)\n\n    # Pick the modulus min value so that it is _unlikely_ to drop to the lower\n    # word count.\n    assert mod_bits >= 63\n    mod_min = 2 ** (mod_bits - 63)\n\n    # Select the random seed giving the longest found MOD chain. You can look\n    # for a longer one by increasing the numerators_min_len. This will activate\n    # the while loop below.\n    match op, mod_bits:\n        case Op.MOD, 255:\n            seed = 20393\n            numerators_min_len = 750\n        case Op.MOD, 191:\n            seed = 25979\n            numerators_min_len = 770\n        case Op.MOD, 127:\n            seed = 17671\n            numerators_min_len = 750\n        case Op.MOD, 63:\n            seed = 29181\n            numerators_min_len = 730\n        case Op.SMOD, 255:\n            seed = 4015\n            numerators_min_len = 750\n        case Op.SMOD, 191:\n            seed = 17355\n            numerators_min_len = 750\n        case Op.SMOD, 127:\n            seed = 897\n            numerators_min_len = 750\n        case Op.SMOD, 63:\n            seed = 7562\n            numerators_min_len = 720\n        case _:\n            raise ValueError(f\"{mod_bits}-bit {op} not supported.\")\n\n    while True:\n        rng = random.Random(seed)\n\n        # Create the list of random numerators.\n        numerators = [rng.randint(numerator_min, numerator_max) for _ in range(num_numerators)]\n\n        # Create the random initial modulus.\n        initial_mod = rng.randint(2 ** (mod_bits - 1), 2**mod_bits - 1)\n\n        # Evaluate the MOD chain and collect the order of accessing numerators.\n        mod = initial_mod\n        indexes = []\n        while mod >= mod_min:\n            # Compute results for each numerator.\n            results = [n % mod for n in numerators]\n            # And pick the best one.\n            i = max(range(len(results)), key=results.__getitem__)\n            mod = results[i]\n            indexes.append(i)\n\n        # Disable if you want to find longer MOD chains.\n        assert len(indexes) > numerators_min_len\n        if len(indexes) > numerators_min_len:\n            break\n        seed += 1\n        print(f\"{seed=}\")\n\n    # TODO: Don't use fixed PUSH32. Let Bytecode helpers to select optimal\n    # push opcode.\n    setup = sum((Op.PUSH32[n] for n in numerators), Bytecode())\n    attack_block = (\n        Op.CALLDATALOAD(0) + sum(make_dup(len(numerators) - i) + op for i in indexes) + Op.POP\n    )\n\n    input_value = initial_mod if not should_negate else neg(initial_mod)\n    benchmark_test(\n        code_generator=JumpLoopGenerator(\n            setup=setup,\n            attack_block=attack_block,\n            tx_kwargs={\"data\": input_value.to_bytes(32, byteorder=\"big\")},\n        ),\n    )\n\n\n@pytest.mark.parametrize(\"opcode\", [Op.MLOAD, Op.MSTORE, Op.MSTORE8])\n@pytest.mark.parametrize(\"offset\", [0, 1, 31])\n@pytest.mark.parametrize(\"offset_initialized\", [True, False])\n@pytest.mark.parametrize(\"big_memory_expansion\", [True, False])\ndef test_worst_memory_access(\n    benchmark_test: BenchmarkTestFiller,\n    opcode: Op,\n    offset: int,\n    offset_initialized: bool,\n    big_memory_expansion: bool,\n) -> None:\n    \"\"\"\n    Test running a block with as many memory access instructions as\n    possible.\n    \"\"\"\n    mem_exp_code = Op.MSTORE8(10 * 1024, 1) if big_memory_expansion else Bytecode()\n    offset_set_code = Op.MSTORE(offset, 43) if offset_initialized else Bytecode()\n    setup = mem_exp_code + offset_set_code + Op.PUSH1(42) + Op.PUSH1(offset)\n\n    attack_block = Op.POP(Op.MLOAD(Op.DUP1)) if opcode == Op.MLOAD else opcode(Op.DUP2, Op.DUP2)\n\n    benchmark_test(\n        code_generator=JumpLoopGenerator(setup=setup, attack_block=attack_block),\n    )\n\n\n@pytest.mark.parametrize(\"mod_bits\", [255, 191, 127, 63])\n@pytest.mark.parametrize(\"op\", [Op.ADDMOD, Op.MULMOD])\ndef test_worst_modarith(\n    benchmark_test: BenchmarkTestFiller,\n    pre: Alloc,\n    fork: Fork,\n    mod_bits: int,\n    op: Op,\n    gas_benchmark_value: int,\n) -> None:\n    \"\"\"\n    Test running a block with as many \"op\" instructions with arguments of the\n    parametrized range.\n    The test program consists of code segments evaluating the \"op chain\":\n    mod[0] = calldataload(0)\n    mod[1] = (fixed_arg op args[indexes[0]]) % mod[0]\n    mod[2] = (fixed_arg op args[indexes[1]]) % mod[1]\n    The \"args\" is a pool of 15 constants pushed to the EVM stack at the program\n    start.\n    The \"fixed_arg\" is the 0xFF...FF constant added to the EVM stack by PUSH32\n    just before executing the \"op\".\n    The order of accessing the numerators is selected in a way the mod value\n    remains in the range as long as possible.\n    \"\"\"\n    fixed_arg = 2**256 - 1\n    num_args = 15\n\n    max_code_size = fork.max_code_size()\n\n    # Pick the modulus min value so that it is _unlikely_ to drop to the lower\n    # word count.\n    assert mod_bits >= 63\n    mod_min = 2 ** (mod_bits - 63)\n\n    # Select the random seed giving the longest found op chain. You can look\n    # for a longer one by increasing the op_chain_len. This will activate the\n    # while loop below.\n    op_chain_len = 666\n    match op, mod_bits:\n        case Op.ADDMOD, 255:\n            seed = 4\n        case Op.ADDMOD, 191:\n            seed = 2\n        case Op.ADDMOD, 127:\n            seed = 2\n        case Op.ADDMOD, 63:\n            seed = 64\n        case Op.MULMOD, 255:\n            seed = 5\n        case Op.MULMOD, 191:\n            seed = 389\n        case Op.MULMOD, 127:\n            seed = 5\n        case Op.MULMOD, 63:\n            # For this setup we were not able to find an op-chain longer than\n            # 600.\n            seed = 4193\n            op_chain_len = 600\n        case _:\n            raise ValueError(f\"{mod_bits}-bit {op} not supported.\")\n\n    while True:\n        rng = random.Random(seed)\n        args = [rng.randint(2**255, 2**256 - 1) for _ in range(num_args)]\n        initial_mod = rng.randint(2 ** (mod_bits - 1), 2**mod_bits - 1)\n\n        # Evaluate the op chain and collect the order of accessing numerators.\n        op_fn = operator.add if op == Op.ADDMOD else operator.mul\n        mod = initial_mod\n        indexes: list[int] = []\n        while mod >= mod_min and len(indexes) < op_chain_len:\n            results = [op_fn(a, fixed_arg) % mod for a in args]\n            # And pick the best one.\n            i = max(range(len(results)), key=results.__getitem__)\n            mod = results[i]\n            indexes.append(i)\n\n        # Disable if you want to find longer op chains.\n        assert len(indexes) == op_chain_len\n        if len(indexes) == op_chain_len:\n            break\n        seed += 1\n        print(f\"{seed=}\")\n\n    code_constant_pool = sum((Op.PUSH32[n] for n in args), Bytecode())\n    code_segment = (\n        Op.CALLDATALOAD(0)\n        + sum(make_dup(len(args) - i) + Op.PUSH32[fixed_arg] + op for i in indexes)\n        + Op.POP\n    )\n    # Construct the final code. Because of the usage of PUSH32 the code segment\n    # is very long, so don't try to include multiple of these.\n    code = code_constant_pool + Op.JUMPDEST + code_segment + Op.JUMP(len(code_constant_pool))\n    assert (max_code_size - len(code_segment)) < len(code) <= max_code_size\n\n    tx = Transaction(\n        to=pre.deploy_contract(code=code),\n        data=initial_mod.to_bytes(32, byteorder=\"big\"),\n        gas_limit=gas_benchmark_value,\n        sender=pre.fund_eoa(),\n    )\n\n    benchmark_test(tx=tx)\n\n\ndef test_empty_block(\n    benchmark_test: BenchmarkTestFiller,\n) -> None:\n    \"\"\"Test running an empty block as a baseline for fixed proving costs.\"\"\"\n    benchmark_test(\n        blocks=[Block(txs=[])],\n        expected_benchmark_gas_used=0,\n    )\n\n\ndef test_amortized_bn128_pairings(\n    benchmark_test: BenchmarkTestFiller,\n    fork: Fork,\n    gas_benchmark_value: int,\n) -> None:\n    \"\"\"Test running a block with as many BN128 pairings as possible.\"\"\"\n    base_cost = 45_000\n    pairing_cost = 34_000\n    size_per_pairing = 192\n\n    gsc = fork.gas_costs()\n    intrinsic_gas_calculator = fork.transaction_intrinsic_cost_calculator()\n    mem_exp_gas_calculator = fork.memory_expansion_gas_calculator()\n\n    # This is a theoretical maximum number of pairings that can be done in a\n    # block. It is only used for an upper bound for calculating the optimal\n    # number of pairings below.\n    maximum_number_of_pairings = (gas_benchmark_value - base_cost) // pairing_cost\n\n    # Discover the optimal number of pairings balancing two dimensions:\n    # 1. Amortize the precompile base cost as much as possible.\n    # 2. The cost of the memory expansion.\n    max_pairings = 0\n    optimal_per_call_num_pairings = 0\n    for i in range(1, maximum_number_of_pairings + 1):\n        # We'll pass all pairing arguments via calldata.\n        available_gas_after_intrinsic = gas_benchmark_value - intrinsic_gas_calculator(\n            calldata=[0xFF] * size_per_pairing * i  # 0xFF is to indicate non-\n            # zero bytes.\n        )\n        available_gas_after_expansion = max(\n            0,\n            available_gas_after_intrinsic - mem_exp_gas_calculator(new_bytes=i * size_per_pairing),\n        )\n\n        # This is ignoring \"glue\" opcodes, but helps to have a rough idea of\n        # the right cutting point.\n        approx_gas_cost_per_call = gsc.G_WARM_ACCOUNT_ACCESS + base_cost + i * pairing_cost\n\n        num_precompile_calls = available_gas_after_expansion // approx_gas_cost_per_call\n        num_pairings_done = num_precompile_calls * i  # Each precompile call\n        # does i pairings.\n\n        if num_pairings_done > max_pairings:\n            max_pairings = num_pairings_done\n            optimal_per_call_num_pairings = i\n\n    setup = Op.CALLDATACOPY(size=Op.CALLDATASIZE)\n    attack_block = Op.POP(Op.STATICCALL(Op.GAS, 0x08, 0, Op.CALLDATASIZE, 0, 0))\n\n    benchmark_test(\n        code_generator=JumpLoopGenerator(\n            setup=setup,\n            attack_block=attack_block,\n            tx_kwargs={\"data\": _generate_bn128_pairs(optimal_per_call_num_pairings, 42)},\n        ),\n    )\n\n\ndef _generate_bn128_pairs(n: int, seed: int = 0) -> Bytes:\n    rng = random.Random(seed)\n    calldata = Bytes()\n\n    for _ in range(n):\n        priv_key_g1 = rng.randint(1, 2**32 - 1)\n        priv_key_g2 = rng.randint(1, 2**32 - 1)\n\n        point_x_affine = multiply(G1, priv_key_g1)\n        point_y_affine = multiply(G2, priv_key_g2)\n\n        assert point_x_affine is not None, \"G1 multiplication resulted in point at infinity\"\n        assert point_y_affine is not None, \"G2 multiplication resulted in point at infinity\"\n\n        g1_x_bytes = point_x_affine[0].n.to_bytes(32, \"big\")\n        g1_y_bytes = point_x_affine[1].n.to_bytes(32, \"big\")\n        g1_serialized = g1_x_bytes + g1_y_bytes\n\n        g2_x_c1_bytes = point_y_affine[0].coeffs[1].n.to_bytes(32, \"big\")  # type: ignore\n        g2_x_c0_bytes = point_y_affine[0].coeffs[0].n.to_bytes(32, \"big\")  # type: ignore\n        g2_y_c1_bytes = point_y_affine[1].coeffs[1].n.to_bytes(32, \"big\")  # type: ignore\n        g2_y_c0_bytes = point_y_affine[1].coeffs[0].n.to_bytes(32, \"big\")  # type: ignore\n        g2_serialized = g2_x_c1_bytes + g2_x_c0_bytes + g2_y_c1_bytes + g2_y_c0_bytes\n\n        pair_calldata = g1_serialized + g2_serialized\n        calldata = Bytes(calldata + pair_calldata)\n\n    return calldata\n\n\n@pytest.mark.parametrize(\n    \"calldata\",\n    [\n        pytest.param(b\"\", id=\"empty\"),\n        pytest.param(b\"\\x00\", id=\"zero-loop\"),\n        pytest.param(b\"\\x00\" * 31 + b\"\\x20\", id=\"one-loop\"),\n    ],\n)\ndef test_worst_calldataload(\n    benchmark_test: BenchmarkTestFiller,\n    calldata: bytes,\n) -> None:\n    \"\"\"Test running a block with as many CALLDATALOAD as possible.\"\"\"\n    benchmark_test(\n        code_generator=JumpLoopGenerator(\n            setup=Op.PUSH0,\n            attack_block=Op.CALLDATALOAD,\n            tx_kwargs={\"data\": calldata},\n        ),\n    )\n\n\n@pytest.mark.parametrize(\n    \"opcode\",\n    [\n        Op.SWAP1,\n        Op.SWAP2,\n        Op.SWAP3,\n        Op.SWAP4,\n        Op.SWAP5,\n        Op.SWAP6,\n        Op.SWAP7,\n        Op.SWAP8,\n        Op.SWAP9,\n        Op.SWAP10,\n        Op.SWAP11,\n        Op.SWAP12,\n        Op.SWAP13,\n        Op.SWAP14,\n        Op.SWAP15,\n        Op.SWAP16,\n    ],\n)\ndef test_worst_swap(\n    benchmark_test: BenchmarkTestFiller,\n    opcode: Opcode,\n) -> None:\n    \"\"\"Test running a block with as many SWAP as possible.\"\"\"\n    benchmark_test(\n        code_generator=JumpLoopGenerator(\n            attack_block=opcode, setup=Op.PUSH0 * opcode.min_stack_height\n        ),\n    )\n\n\n@pytest.mark.parametrize(\n    \"opcode\",\n    [\n        pytest.param(Op.DUP1),\n        pytest.param(Op.DUP2),\n        pytest.param(Op.DUP3),\n        pytest.param(Op.DUP4),\n        pytest.param(Op.DUP5),\n        pytest.param(Op.DUP6),\n        pytest.param(Op.DUP7),\n        pytest.param(Op.DUP8),\n        pytest.param(Op.DUP9),\n        pytest.param(Op.DUP10),\n        pytest.param(Op.DUP11),\n        pytest.param(Op.DUP12),\n        pytest.param(Op.DUP13),\n        pytest.param(Op.DUP14),\n        pytest.param(Op.DUP15),\n        pytest.param(Op.DUP16),\n    ],\n)\ndef test_worst_dup(\n    benchmark_test: BenchmarkTestFiller,\n    pre: Alloc,\n    fork: Fork,\n    opcode: Op,\n) -> None:\n    \"\"\"Test running a block with as many DUP as possible.\"\"\"\n    max_stack_height = fork.max_stack_height()\n\n    min_stack_height = opcode.min_stack_height\n    code = Op.PUSH0 * min_stack_height + opcode * (max_stack_height - min_stack_height)\n    target_contract_address = pre.deploy_contract(code=code)\n\n    attack_block = Op.POP(Op.STATICCALL(Op.GAS, target_contract_address, 0, 0, 0, 0))\n\n    benchmark_test(\n        code_generator=JumpLoopGenerator(attack_block=attack_block),\n    )\n\n\n@pytest.mark.parametrize(\n    \"opcode\",\n    [\n        pytest.param(Op.PUSH0),\n        pytest.param(Op.PUSH1),\n        pytest.param(Op.PUSH2),\n        pytest.param(Op.PUSH3),\n        pytest.param(Op.PUSH4),\n        pytest.param(Op.PUSH5),\n        pytest.param(Op.PUSH6),\n        pytest.param(Op.PUSH7),\n        pytest.param(Op.PUSH8),\n        pytest.param(Op.PUSH9),\n        pytest.param(Op.PUSH10),\n        pytest.param(Op.PUSH11),\n        pytest.param(Op.PUSH12),\n        pytest.param(Op.PUSH13),\n        pytest.param(Op.PUSH14),\n        pytest.param(Op.PUSH15),\n        pytest.param(Op.PUSH16),\n        pytest.param(Op.PUSH17),\n        pytest.param(Op.PUSH18),\n        pytest.param(Op.PUSH19),\n        pytest.param(Op.PUSH20),\n        pytest.param(Op.PUSH21),\n        pytest.param(Op.PUSH22),\n        pytest.param(Op.PUSH23),\n        pytest.param(Op.PUSH24),\n        pytest.param(Op.PUSH25),\n        pytest.param(Op.PUSH26),\n        pytest.param(Op.PUSH27),\n        pytest.param(Op.PUSH28),\n        pytest.param(Op.PUSH29),\n        pytest.param(Op.PUSH30),\n        pytest.param(Op.PUSH31),\n        pytest.param(Op.PUSH32),\n    ],\n)\ndef test_worst_push(\n    benchmark_test: BenchmarkTestFiller,\n    opcode: Op,\n) -> None:\n    \"\"\"Test running a block with as many PUSH as possible.\"\"\"\n    benchmark_test(\n        code_generator=ExtCallGenerator(\n            attack_block=opcode[1] if opcode.has_data_portion() else opcode\n        ),\n    )\n\n\n@pytest.mark.parametrize(\n    \"opcode\",\n    [Op.RETURN, Op.REVERT],\n)\n@pytest.mark.parametrize(\n    \"return_size, return_non_zero_data\",\n    [\n        pytest.param(0, False, id=\"empty\"),\n        pytest.param(1024, True, id=\"1KiB of non-zero data\"),\n        pytest.param(1024, False, id=\"1KiB of zero data\"),\n        pytest.param(1024 * 1024, True, id=\"1MiB of non-zero data\"),\n        pytest.param(1024 * 1024, False, id=\"1MiB of zero data\"),\n    ],\n)\ndef test_worst_return_revert(\n    benchmark_test: BenchmarkTestFiller,\n    pre: Alloc,\n    fork: Fork,\n    opcode: Op,\n    return_size: int,\n    return_non_zero_data: bool,\n) -> None:\n    \"\"\"Test running a block with as many RETURN or REVERT as possible.\"\"\"\n    max_code_size = fork.max_code_size()\n\n    # Create the contract that will be called repeatedly.\n    # The bytecode of the contract is:\n    # ```\n    # [CODECOPY(returned_size) -- Conditional if return_non_zero_data]\n    # opcode(returned_size)\n    # <Fill with INVALID opcodes up to the max contract size>\n    # ```\n    # Filling the contract up to the max size is a cheap way of leveraging\n    # CODECOPY to return non-zero bytes if requested. Note that since this\n    # is a pre-deploy this cost isn't\n    # relevant for the benchmark.\n    mem_preparation = Op.CODECOPY(size=return_size) if return_non_zero_data else Bytecode()\n    executable_code = mem_preparation + opcode(size=return_size)\n    code = executable_code\n    if return_non_zero_data:\n        code += Op.INVALID * (max_code_size - len(executable_code))\n    target_contract_address = pre.deploy_contract(code=code)\n\n    attack_block = Op.POP(Op.STATICCALL(address=target_contract_address))\n\n    benchmark_test(\n        code_generator=JumpLoopGenerator(attack_block=attack_block),\n    )\n\n\n@pytest.mark.valid_from(\"Osaka\")\ndef test_worst_clz_same_input(benchmark_test: BenchmarkTestFiller) -> None:\n    \"\"\"Test running a block with as many CLZ with same input as possible.\"\"\"\n    magic_value = 248  # CLZ(248) = 248\n    benchmark_test(\n        code_generator=JumpLoopGenerator(setup=Op.PUSH1(magic_value), attack_block=Op.CLZ),\n    )\n\n\n@pytest.mark.valid_from(\"Osaka\")\ndef test_worst_clz_diff_input(\n    benchmark_test: BenchmarkTestFiller,\n    pre: Alloc,\n    fork: Fork,\n) -> None:\n    \"\"\"\n    Test running a block with as many CLZ with different input as\n    possible.\n    \"\"\"\n    max_code_size = fork.max_code_size()\n\n    code_prefix = Op.JUMPDEST\n    code_suffix = Op.PUSH0 + Op.JUMP\n\n    available_code_size = max_code_size - len(code_prefix) - len(code_suffix)\n\n    code_seq = Bytecode()\n\n    for i in range(available_code_size):\n        value = (2**256 - 1) >> (i % 256)\n        clz_op = Op.CLZ(value) + Op.POP\n        if len(code_seq) + len(clz_op) > available_code_size:\n            break\n        code_seq += clz_op\n\n    attack_code = code_prefix + code_seq + code_suffix\n    assert len(attack_code) <= max_code_size\n\n    tx = Transaction(\n        to=pre.deploy_contract(code=attack_code),\n        sender=pre.fund_eoa(),\n    )\n\n    benchmark_test(tx=tx)\n"
  },
  {
    "path": "tests/benchmark/test_worst_memory.py",
    "content": "\"\"\"\nTests that benchmark EVMs in the worst-case memory opcodes.\n\"\"\"\n\nfrom enum import auto\n\nimport pytest\n\nfrom ethereum_test_base_types.base_types import Bytes\nfrom ethereum_test_benchmark.benchmark_code_generator import JumpLoopGenerator\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    Alloc,\n    BenchmarkTestFiller,\n    Bytecode,\n    Transaction,\n)\nfrom ethereum_test_vm import Opcodes as Op\n\nREFERENCE_SPEC_GIT_PATH = \"TODO\"\nREFERENCE_SPEC_VERSION = \"TODO\"\n\n\nclass CallDataOrigin:\n    \"\"\"Enum for calldata origins.\"\"\"\n\n    TRANSACTION = auto()\n    CALL = auto()\n\n\n@pytest.mark.parametrize(\n    \"origin\",\n    [\n        pytest.param(CallDataOrigin.TRANSACTION, id=\"transaction\"),\n        pytest.param(CallDataOrigin.CALL, id=\"call\"),\n    ],\n)\n@pytest.mark.parametrize(\n    \"size\",\n    [\n        pytest.param(0, id=\"0 bytes\"),\n        pytest.param(100, id=\"100 bytes\"),\n        pytest.param(10 * 1024, id=\"10KiB\"),\n        pytest.param(1024 * 1024, id=\"1MiB\"),\n    ],\n)\n@pytest.mark.parametrize(\n    \"fixed_src_dst\",\n    [\n        True,\n        False,\n    ],\n)\n@pytest.mark.parametrize(\n    \"non_zero_data\",\n    [\n        True,\n        False,\n    ],\n)\ndef test_worst_calldatacopy(\n    benchmark_test: BenchmarkTestFiller,\n    pre: Alloc,\n    fork: Fork,\n    origin: CallDataOrigin,\n    size: int,\n    fixed_src_dst: bool,\n    non_zero_data: bool,\n    gas_benchmark_value: int,\n) -> None:\n    \"\"\"Test running a block filled with CALLDATACOPY executions.\"\"\"\n    if size == 0 and non_zero_data:\n        pytest.skip(\"Non-zero data with size 0 is not applicable.\")\n\n    # If `non_zero_data` is True, we fill the calldata with deterministic\n    # random data. Note that if `size == 0` and `non_zero_data` is a skipped\n    # case.\n    data = Bytes([i % 256 for i in range(size)]) if non_zero_data else Bytes()\n\n    intrinsic_gas_calculator = fork.transaction_intrinsic_cost_calculator()\n    min_gas = intrinsic_gas_calculator(calldata=data)\n    if min_gas > gas_benchmark_value:\n        pytest.skip(\"Minimum gas required for calldata ({min_gas}) is greater than the gas limit\")\n\n    # We create the contract that will be doing the CALLDATACOPY multiple\n    # times.\n    #\n    # If `non_zero_data` is True, we leverage CALLDATASIZE for the copy\n    # length. Otherwise, since we\n    # don't send zero data explicitly via calldata, PUSH the target size and\n    # use DUP1 to copy it.\n    setup = Bytecode() if non_zero_data or size == 0 else Op.PUSH3(size)\n    src_dst = 0 if fixed_src_dst else Op.MOD(Op.GAS, 7)\n    attack_block = Op.CALLDATACOPY(\n        src_dst, src_dst, Op.CALLDATASIZE if non_zero_data or size == 0 else Op.DUP1\n    )\n\n    code_address = JumpLoopGenerator(setup=setup, attack_block=attack_block).deploy_contracts(\n        pre=pre, fork=fork\n    )\n\n    tx_target = code_address\n\n    # If the origin is CALL, we need to create a contract that will call the\n    # target contract with the calldata.\n    if origin == CallDataOrigin.CALL:\n        # If `non_zero_data` is False we leverage just using zeroed memory.\n        # Otherwise, we copy the calldata received from the transaction.\n        setup = (\n            Op.CALLDATACOPY(Op.PUSH0, Op.PUSH0, Op.CALLDATASIZE) if non_zero_data else Bytecode()\n        ) + Op.JUMPDEST\n        arg_size = Op.CALLDATASIZE if non_zero_data else size\n        attack_block = Op.STATICCALL(\n            address=code_address, args_offset=Op.PUSH0, args_size=arg_size\n        )\n\n        tx_target = JumpLoopGenerator(setup=setup, attack_block=attack_block).deploy_contracts(\n            pre=pre, fork=fork\n        )\n\n    tx = Transaction(\n        to=tx_target,\n        gas_limit=gas_benchmark_value,\n        data=data,\n        sender=pre.fund_eoa(),\n    )\n\n    benchmark_test(tx=tx)\n\n\n@pytest.mark.parametrize(\n    \"max_code_size_ratio\",\n    [\n        pytest.param(0, id=\"0 bytes\"),\n        pytest.param(0.25, id=\"0.25x max code size\"),\n        pytest.param(0.50, id=\"0.50x max code size\"),\n        pytest.param(0.75, id=\"0.75x max code size\"),\n        pytest.param(1.00, id=\"max code size\"),\n    ],\n)\n@pytest.mark.parametrize(\n    \"fixed_src_dst\",\n    [\n        True,\n        False,\n    ],\n)\ndef test_worst_codecopy(\n    benchmark_test: BenchmarkTestFiller,\n    pre: Alloc,\n    fork: Fork,\n    max_code_size_ratio: float,\n    fixed_src_dst: bool,\n) -> None:\n    \"\"\"Test running a block filled with CODECOPY executions.\"\"\"\n    max_code_size = fork.max_code_size()\n\n    size = int(max_code_size * max_code_size_ratio)\n\n    setup = Op.PUSH32(size)\n    src_dst = 0 if fixed_src_dst else Op.MOD(Op.GAS, 7)\n    attack_block = Op.CODECOPY(src_dst, src_dst, Op.DUP1)  # DUP1 copies size.\n\n    code = JumpLoopGenerator(setup=setup, attack_block=attack_block).generate_repeated_code(\n        repeated_code=attack_block, setup=setup, fork=fork\n    )\n\n    # The code generated above is not guaranteed to be of max_code_size, so\n    # we pad it since\n    # a test parameter targets CODECOPYing a contract with max code size.\n    # Padded bytecode values\n    # are not relevant.\n    code += Op.INVALID * (max_code_size - len(code))\n    assert len(code) == max_code_size, (\n        f\"Code size {len(code)} is not equal to max code size {max_code_size}.\"\n    )\n\n    tx = Transaction(\n        to=pre.deploy_contract(code=code),\n        sender=pre.fund_eoa(),\n    )\n\n    benchmark_test(tx=tx)\n\n\n@pytest.mark.parametrize(\n    \"size\",\n    [\n        pytest.param(0, id=\"0 bytes\"),\n        pytest.param(100, id=\"100 bytes\"),\n        pytest.param(10 * 1024, id=\"10KiB\"),\n        pytest.param(1024 * 1024, id=\"1MiB\"),\n    ],\n)\n@pytest.mark.parametrize(\n    \"fixed_dst\",\n    [\n        True,\n        False,\n    ],\n)\ndef test_worst_returndatacopy(\n    benchmark_test: BenchmarkTestFiller,\n    pre: Alloc,\n    size: int,\n    fixed_dst: bool,\n) -> None:\n    \"\"\"Test running a block filled with RETURNDATACOPY executions.\"\"\"\n    # Create the contract that will RETURN the data that will be used for\n    # RETURNDATACOPY.\n    # Random-ish data is injected at different points in memory to avoid\n    # making the content\n    # predictable. If `size` is 0, this helper contract won't be used.\n    code = (\n        Op.MSTORE8(0, Op.GAS)\n        + Op.MSTORE8(size // 2, Op.GAS)\n        + Op.MSTORE8(size - 1, Op.GAS)\n        + Op.RETURN(0, size)\n    )\n    helper_contract = pre.deploy_contract(code=code)\n\n    returndata_gen = Op.STATICCALL(address=helper_contract) if size > 0 else Bytecode()\n    dst = 0 if fixed_dst else Op.MOD(Op.GAS, 7)\n\n    # We create the contract that will be doing the RETURNDATACOPY multiple\n    # times.\n    returndata_gen = Op.STATICCALL(address=helper_contract) if size > 0 else Bytecode()\n    attack_block = Op.RETURNDATACOPY(dst, Op.PUSH0, Op.RETURNDATASIZE)\n\n    # The attack loop is constructed as:\n    # ```\n    # JUMPDEST(#)\n    # RETURNDATACOPY(...)\n    # RETURNDATACOPY(...)\n    # ...\n    # STATICCALL(address=helper_contract)\n    # JUMP(#)\n    # ```\n    # The goal is that once per (big) loop iteration, the helper contract is\n    # called to\n    # generate fresh returndata to continue calling RETURNDATACOPY.\n\n    benchmark_test(\n        code_generator=JumpLoopGenerator(\n            setup=returndata_gen, attack_block=attack_block, cleanup=returndata_gen\n        ),\n    )\n\n\n@pytest.mark.parametrize(\n    \"size\",\n    [\n        pytest.param(0, id=\"0 bytes\"),\n        pytest.param(100, id=\"100 bytes\"),\n        pytest.param(10 * 1024, id=\"10KiB\"),\n        pytest.param(1024 * 1024, id=\"1MiB\"),\n    ],\n)\n@pytest.mark.parametrize(\n    \"fixed_src_dst\",\n    [\n        True,\n        False,\n    ],\n)\ndef test_worst_mcopy(\n    benchmark_test: BenchmarkTestFiller,\n    size: int,\n    fixed_src_dst: bool,\n) -> None:\n    \"\"\"Test running a block filled with MCOPY executions.\"\"\"\n    src_dst = 0 if fixed_src_dst else Op.MOD(Op.GAS, 7)\n    attack_block = Op.MCOPY(src_dst, src_dst, size)\n\n    mem_touch = (\n        Op.MSTORE8(0, Op.GAS) + Op.MSTORE8(size // 2, Op.GAS) + Op.MSTORE8(size - 1, Op.GAS)\n        if size > 0\n        else Bytecode()\n    )\n    benchmark_test(\n        code_generator=JumpLoopGenerator(\n            setup=mem_touch, attack_block=attack_block, cleanup=mem_touch\n        ),\n    )\n"
  },
  {
    "path": "tests/benchmark/test_worst_opcode.py",
    "content": "\"\"\"\nTests benchmark worst-case opcode scenarios.\n\"\"\"\n\nimport pytest\n\nfrom ethereum_test_benchmark.benchmark_code_generator import JumpLoopGenerator\nfrom ethereum_test_tools import (\n    BenchmarkTestFiller,\n    Bytecode,\n)\nfrom ethereum_test_vm import Opcode\nfrom ethereum_test_vm import Opcodes as Op\n\n\n@pytest.mark.parametrize(\n    \"opcode\",\n    [\n        pytest.param(Op.LOG0, id=\"log0\"),\n        pytest.param(Op.LOG1, id=\"log1\"),\n        pytest.param(Op.LOG2, id=\"log2\"),\n        pytest.param(Op.LOG3, id=\"log3\"),\n        pytest.param(Op.LOG4, id=\"log4\"),\n    ],\n)\n@pytest.mark.parametrize(\n    \"size,non_zero_data\",\n    [\n        pytest.param(0, False, id=\"0_bytes_data\"),\n        pytest.param(1024 * 1024, False, id=\"1_MiB_zeros_data\"),  # 1 MiB\n        pytest.param(1024 * 1024, True, id=\"1_MiB_non_zero_data\"),  # 1 MiB\n    ],\n)\n@pytest.mark.parametrize(\n    \"zeros_topic\", [pytest.param(True, id=\"zeros_topic\"), pytest.param(False, id=\"non_zero_topic\")]\n)\n@pytest.mark.parametrize(\"fixed_offset\", [True, False])\ndef test_worst_log_opcodes(\n    benchmark_test: BenchmarkTestFiller,\n    opcode: Opcode,\n    zeros_topic: bool,\n    size: int,\n    fixed_offset: bool,\n    non_zero_data: bool,\n) -> None:\n    \"\"\"Test running a block with as many LOG opcodes as possible.\"\"\"\n    setup = Bytecode()\n\n    # For non-zero data, load  into memory.\n    if non_zero_data:\n        setup += Op.CODECOPY(dest_offset=0, offset=0, size=Op.CODESIZE)\n\n    # Push the size value onto the stack and access it using the DUP opcode.\n    setup += Op.PUSH3(size)\n\n    # For non-zeros topic, push a non-zero value for topic.\n    setup += Op.PUSH0 if zeros_topic else Op.PUSH32(2**256 - 1)\n\n    topic_count = len(opcode.kwargs or []) - 2\n    offset = Op.PUSH0 if fixed_offset else Op.MOD(Op.GAS, 7)\n\n    # Calculate the appropriate DUP opcode based on topic count\n    # 0 topics -> DUP1, 1 topic -> DUP2, N topics -> DUP(N+1)\n    size_op = getattr(Op, f\"DUP{topic_count + 2}\")\n\n    attack_block = Op.DUP1 * topic_count + size_op + offset + opcode\n\n    benchmark_test(\n        code_generator=JumpLoopGenerator(setup=setup, attack_block=attack_block),\n    )\n"
  },
  {
    "path": "tests/benchmark/test_worst_stateful_opcodes.py",
    "content": "\"\"\"\nTests that benchmark EVMs for worst-case stateful opcodes.\n\"\"\"\n\nimport math\nfrom enum import auto\n\nimport pytest\n\nfrom ethereum_test_benchmark.benchmark_code_generator import ExtCallGenerator, JumpLoopGenerator\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_specs import StateTestFiller\nfrom ethereum_test_specs.benchmark import BenchmarkTestFiller\nfrom ethereum_test_tools import (\n    Account,\n    Address,\n    Alloc,\n    Block,\n    Bytecode,\n    Environment,\n    Hash,\n    Transaction,\n    While,\n    compute_create2_address,\n    compute_create_address,\n)\nfrom ethereum_test_types import TestPhaseManager\nfrom ethereum_test_vm import Opcodes as Op\n\nREFERENCE_SPEC_GIT_PATH = \"TODO\"\nREFERENCE_SPEC_VERSION = \"TODO\"\n\n\n@pytest.mark.parametrize(\n    \"opcode\",\n    [\n        Op.BALANCE,\n    ],\n)\n@pytest.mark.parametrize(\n    \"absent_accounts\",\n    [\n        True,\n        False,\n    ],\n)\ndef test_worst_address_state_cold(\n    benchmark_test: BenchmarkTestFiller,\n    pre: Alloc,\n    fork: Fork,\n    opcode: Op,\n    absent_accounts: bool,\n    env: Environment,\n    gas_benchmark_value: int,\n) -> None:\n    \"\"\"\n    Test running a block with as many stateful opcodes accessing cold accounts.\n    \"\"\"\n    attack_gas_limit = gas_benchmark_value\n\n    gas_costs = fork.gas_costs()\n    intrinsic_gas_cost_calc = fork.transaction_intrinsic_cost_calculator()\n    # For calculation robustness, the calculation below ignores \"glue\" opcodes\n    # like  PUSH and POP. It should be considered a worst-case number of\n    # accounts, and a few of them might not be targeted before the attacking\n    # transaction runs out of gas.\n    num_target_accounts = (\n        attack_gas_limit - intrinsic_gas_cost_calc()\n    ) // gas_costs.G_COLD_ACCOUNT_ACCESS\n\n    blocks = []\n    post = {}\n\n    # Setup The target addresses are going to be constructed (in the case of\n    # absent=False) and called as addr_offset + i, where i is the index of the\n    # account. This is to avoid collisions with the addresses indirectly\n    # created by the testing framework.\n    addr_offset = int.from_bytes(pre.fund_eoa(amount=0))\n\n    if not absent_accounts:\n        factory_code = Op.PUSH4(num_target_accounts) + While(\n            body=Op.POP(Op.CALL(address=Op.ADD(addr_offset, Op.DUP6), value=10)),\n            condition=Op.PUSH1(1) + Op.SWAP1 + Op.SUB + Op.DUP1 + Op.ISZERO + Op.ISZERO,\n        )\n        factory_address = pre.deploy_contract(code=factory_code, balance=10**18)\n\n        setup_tx = Transaction(\n            to=factory_address,\n            gas_limit=env.gas_limit,\n            sender=pre.fund_eoa(),\n        )\n        blocks.append(Block(txs=[setup_tx]))\n\n        for i in range(num_target_accounts):\n            addr = Address(i + addr_offset + 1)\n            post[addr] = Account(balance=10)\n\n    # Execution\n    op_code = Op.PUSH4(num_target_accounts) + While(\n        body=Op.POP(opcode(Op.ADD(addr_offset, Op.DUP1))),\n        condition=Op.PUSH1(1) + Op.SWAP1 + Op.SUB + Op.DUP1 + Op.ISZERO + Op.ISZERO,\n    )\n    op_address = pre.deploy_contract(code=op_code)\n    op_tx = Transaction(\n        to=op_address,\n        gas_limit=attack_gas_limit,\n        sender=pre.fund_eoa(),\n    )\n    blocks.append(Block(txs=[op_tx]))\n\n    benchmark_test(\n        post=post,\n        blocks=blocks,\n    )\n\n\n@pytest.mark.parametrize(\n    \"opcode\",\n    [\n        Op.BALANCE,\n        Op.EXTCODESIZE,\n        Op.EXTCODEHASH,\n        Op.CALL,\n        Op.CALLCODE,\n        Op.DELEGATECALL,\n        Op.STATICCALL,\n    ],\n)\n@pytest.mark.parametrize(\n    \"absent_target\",\n    [\n        True,\n        False,\n    ],\n)\ndef test_worst_address_state_warm(\n    benchmark_test: BenchmarkTestFiller,\n    pre: Alloc,\n    opcode: Op,\n    absent_target: bool,\n) -> None:\n    \"\"\"\n    Test running a block with as many stateful opcodes doing warm access\n    for an account.\n    \"\"\"\n    # Setup\n    target_addr = Address(100_000)\n    post = {}\n    if not absent_target:\n        code = Op.STOP + Op.JUMPDEST * 100\n        target_addr = pre.deploy_contract(balance=100, code=code)\n        post[target_addr] = Account(balance=100, code=code)\n\n    # Execution\n    setup = Op.MSTORE(0, target_addr)\n    attack_block = Op.POP(opcode(address=Op.MLOAD(0)))\n    benchmark_test(\n        post=post,\n        code_generator=JumpLoopGenerator(setup=setup, attack_block=attack_block),\n    )\n\n\nclass StorageAction:\n    \"\"\"Enum for storage actions.\"\"\"\n\n    READ = auto()\n    WRITE_SAME_VALUE = auto()\n    WRITE_NEW_VALUE = auto()\n\n\nclass TransactionResult:\n    \"\"\"Enum for the possible transaction outcomes.\"\"\"\n\n    SUCCESS = auto()\n    OUT_OF_GAS = auto()\n    REVERT = auto()\n\n\n@pytest.mark.parametrize(\n    \"storage_action,tx_result\",\n    [\n        pytest.param(\n            StorageAction.READ,\n            TransactionResult.SUCCESS,\n            id=\"SSLOAD\",\n        ),\n        pytest.param(\n            StorageAction.WRITE_SAME_VALUE,\n            TransactionResult.SUCCESS,\n            id=\"SSTORE same value\",\n        ),\n        pytest.param(\n            StorageAction.WRITE_SAME_VALUE,\n            TransactionResult.REVERT,\n            id=\"SSTORE same value, revert\",\n        ),\n        pytest.param(\n            StorageAction.WRITE_SAME_VALUE,\n            TransactionResult.OUT_OF_GAS,\n            id=\"SSTORE same value, out of gas\",\n        ),\n        pytest.param(\n            StorageAction.WRITE_NEW_VALUE,\n            TransactionResult.SUCCESS,\n            id=\"SSTORE new value\",\n        ),\n        pytest.param(\n            StorageAction.WRITE_NEW_VALUE,\n            TransactionResult.REVERT,\n            id=\"SSTORE new value, revert\",\n        ),\n        pytest.param(\n            StorageAction.WRITE_NEW_VALUE,\n            TransactionResult.OUT_OF_GAS,\n            id=\"SSTORE new value, out of gas\",\n        ),\n    ],\n)\n@pytest.mark.parametrize(\n    \"absent_slots\",\n    [\n        True,\n        False,\n    ],\n)\ndef test_worst_storage_access_cold(\n    benchmark_test: BenchmarkTestFiller,\n    pre: Alloc,\n    fork: Fork,\n    storage_action: StorageAction,\n    absent_slots: bool,\n    env: Environment,\n    gas_benchmark_value: int,\n    tx_result: TransactionResult,\n) -> None:\n    \"\"\"\n    Test running a block with as many cold storage slot accesses as possible.\n    \"\"\"\n    gas_costs = fork.gas_costs()\n    intrinsic_gas_cost_calc = fork.transaction_intrinsic_cost_calculator()\n\n    loop_cost = gas_costs.G_COLD_SLOAD  # All accesses are always cold\n    if storage_action == StorageAction.WRITE_NEW_VALUE:\n        if not absent_slots:\n            loop_cost += gas_costs.G_STORAGE_RESET\n        else:\n            loop_cost += gas_costs.G_STORAGE_SET\n    elif storage_action == StorageAction.WRITE_SAME_VALUE:\n        if absent_slots:\n            loop_cost += gas_costs.G_STORAGE_SET\n        else:\n            loop_cost += gas_costs.G_WARM_SLOAD\n    elif storage_action == StorageAction.READ:\n        loop_cost += 0  # Only G_COLD_SLOAD is charged\n\n    # Contract code\n    execution_code_body = Bytecode()\n    if storage_action == StorageAction.WRITE_SAME_VALUE:\n        # All the storage slots in the contract are initialized to their index.\n        # That is, storage slot `i` is initialized to `i`.\n        execution_code_body = Op.SSTORE(Op.DUP1, Op.DUP1)\n        loop_cost += gas_costs.G_VERY_LOW * 2\n    elif storage_action == StorageAction.WRITE_NEW_VALUE:\n        # The new value 2^256-1 is guaranteed to be different from the initial\n        # value.\n        execution_code_body = Op.SSTORE(Op.DUP2, Op.NOT(0))\n        loop_cost += gas_costs.G_VERY_LOW * 3\n    elif storage_action == StorageAction.READ:\n        execution_code_body = Op.POP(Op.SLOAD(Op.DUP1))\n        loop_cost += gas_costs.G_VERY_LOW + gas_costs.G_BASE\n\n    # Add costs jump-logic costs\n    loop_cost += (\n        gas_costs.G_JUMPDEST  # Prefix Jumpdest\n        + gas_costs.G_VERY_LOW * 7  # ISZEROs, PUSHs, SWAPs, SUB, DUP\n        + gas_costs.G_HIGH  # JUMPI\n    )\n\n    prefix_cost = (\n        gas_costs.G_VERY_LOW  # Target slots push\n    )\n\n    suffix_cost = 0\n    if tx_result == TransactionResult.REVERT:\n        suffix_cost = (\n            gas_costs.G_VERY_LOW * 2  # Revert PUSHs\n        )\n\n    num_target_slots = (\n        gas_benchmark_value - intrinsic_gas_cost_calc() - prefix_cost - suffix_cost\n    ) // loop_cost\n    if tx_result == TransactionResult.OUT_OF_GAS:\n        # Add an extra slot to make it run out-of-gas\n        num_target_slots += 1\n\n    code_prefix = Op.PUSH4(num_target_slots) + Op.JUMPDEST\n    code_loop = execution_code_body + Op.JUMPI(\n        len(code_prefix) - 1, Op.PUSH1(1) + Op.SWAP1 + Op.SUB + Op.DUP1 + Op.ISZERO + Op.ISZERO\n    )\n    execution_code = code_prefix + code_loop\n\n    if tx_result == TransactionResult.REVERT:\n        execution_code += Op.REVERT(0, 0)\n    else:\n        execution_code += Op.STOP\n\n    execution_code_address = pre.deploy_contract(code=execution_code)\n\n    total_gas_used = (\n        num_target_slots * loop_cost + intrinsic_gas_cost_calc() + prefix_cost + suffix_cost\n    )\n\n    # Contract creation\n    slots_init = Bytecode()\n    if not absent_slots:\n        slots_init = Op.PUSH4(num_target_slots) + While(\n            body=Op.SSTORE(Op.DUP1, Op.DUP1),\n            condition=Op.PUSH1(1) + Op.SWAP1 + Op.SUB + Op.DUP1 + Op.ISZERO + Op.ISZERO,\n        )\n\n    # To create the contract, we apply the slots_init code to initialize the\n    # storage slots (int the case of absent_slots=False) and then copy the\n    # execution code to the contract.\n    creation_code = (\n        slots_init\n        + Op.EXTCODECOPY(\n            address=execution_code_address,\n            dest_offset=0,\n            offset=0,\n            size=Op.EXTCODESIZE(execution_code_address),\n        )\n        + Op.RETURN(0, Op.MSIZE)\n    )\n    sender_addr = pre.fund_eoa()\n    setup_tx = Transaction(\n        to=None,\n        gas_limit=env.gas_limit,\n        data=creation_code,\n        sender=sender_addr,\n    )\n\n    blocks = [Block(txs=[setup_tx])]\n\n    contract_address = compute_create_address(address=sender_addr, nonce=0)\n\n    op_tx = Transaction(\n        to=contract_address,\n        gas_limit=gas_benchmark_value,\n        sender=pre.fund_eoa(),\n    )\n    blocks.append(Block(txs=[op_tx]))\n\n    benchmark_test(\n        blocks=blocks,\n        expected_benchmark_gas_used=(\n            total_gas_used if tx_result != TransactionResult.OUT_OF_GAS else gas_benchmark_value\n        ),\n    )\n\n\n@pytest.mark.parametrize(\n    \"storage_action\",\n    [\n        pytest.param(StorageAction.READ, id=\"SLOAD\"),\n        pytest.param(StorageAction.WRITE_SAME_VALUE, id=\"SSTORE same value\"),\n        pytest.param(StorageAction.WRITE_NEW_VALUE, id=\"SSTORE new value\"),\n    ],\n)\ndef test_worst_storage_access_warm(\n    benchmark_test: BenchmarkTestFiller,\n    pre: Alloc,\n    storage_action: StorageAction,\n    gas_benchmark_value: int,\n    env: Environment,\n) -> None:\n    \"\"\"\n    Test running a block with as many warm storage slot accesses as\n    possible.\n    \"\"\"\n    blocks = []\n\n    # The target storage slot for the warm access is storage slot 0.\n    storage_slot_initial_value = 10\n\n    # Contract code\n    execution_code_body = Bytecode()\n    if storage_action == StorageAction.WRITE_SAME_VALUE:\n        execution_code_body = Op.SSTORE(0, Op.DUP1)\n    elif storage_action == StorageAction.WRITE_NEW_VALUE:\n        execution_code_body = Op.PUSH1(1) + Op.ADD + Op.SSTORE(0, Op.DUP1)\n    elif storage_action == StorageAction.READ:\n        execution_code_body = Op.POP(Op.SLOAD(0))\n\n    execution_code = Op.PUSH1(storage_slot_initial_value) + While(\n        body=execution_code_body,\n    )\n    execution_code_address = pre.deploy_contract(code=execution_code)\n\n    creation_code = (\n        Op.SSTORE(0, storage_slot_initial_value)\n        + Op.EXTCODECOPY(\n            address=execution_code_address,\n            dest_offset=0,\n            offset=0,\n            size=Op.EXTCODESIZE(execution_code_address),\n        )\n        + Op.RETURN(0, Op.MSIZE)\n    )\n\n    with TestPhaseManager.setup():\n        sender_addr = pre.fund_eoa()\n        setup_tx = Transaction(\n            to=None,\n            gas_limit=env.gas_limit,\n            data=creation_code,\n            sender=sender_addr,\n        )\n        blocks.append(Block(txs=[setup_tx]))\n\n    contract_address = compute_create_address(address=sender_addr, nonce=0)\n\n    with TestPhaseManager.execution():\n        op_tx = Transaction(\n            to=contract_address,\n            gas_limit=gas_benchmark_value,\n            sender=pre.fund_eoa(),\n        )\n        blocks.append(Block(txs=[op_tx]))\n\n    benchmark_test(blocks=blocks)\n\n\ndef test_worst_blockhash(\n    benchmark_test: BenchmarkTestFiller,\n    pre: Alloc,\n    fork: Fork,\n    gas_benchmark_value: int,\n    tx_gas_limit_cap: int,\n) -> None:\n    \"\"\"\n    Test running a block with as many blockhash accessing oldest allowed block\n    as possible.\n    \"\"\"\n    # Create 256 dummy blocks to fill the blockhash window.\n    blocks = [Block()] * 256\n\n    benchmark_test(\n        setup_blocks=blocks,\n        code_generator=ExtCallGenerator(attack_block=Op.BLOCKHASH(1)),\n        expected_benchmark_gas_used=gas_benchmark_value,\n    )\n\n\n@pytest.mark.parametrize(\"contract_balance\", [0, 1])\ndef test_worst_selfbalance(\n    benchmark_test: BenchmarkTestFiller,\n    contract_balance: int,\n) -> None:\n    \"\"\"Test running a block with as many SELFBALANCE opcodes as possible.\"\"\"\n    benchmark_test(\n        code_generator=ExtCallGenerator(\n            attack_block=Op.SELFBALANCE,\n            contract_balance=contract_balance,\n        ),\n    )\n\n\n@pytest.mark.parametrize(\n    \"copied_size\",\n    [\n        pytest.param(512, id=\"512\"),\n        pytest.param(1024, id=\"1KiB\"),\n        pytest.param(5 * 1024, id=\"5KiB\"),\n    ],\n)\ndef test_worst_extcodecopy_warm(\n    benchmark_test: BenchmarkTestFiller,\n    pre: Alloc,\n    copied_size: int,\n    gas_benchmark_value: int,\n) -> None:\n    \"\"\"Test running a block with as many wamr EXTCODECOPY work as possible.\"\"\"\n    copied_contract_address = pre.deploy_contract(\n        code=Op.JUMPDEST * copied_size,\n    )\n\n    execution_code = (\n        Op.PUSH10(copied_size)\n        + Op.PUSH20(copied_contract_address)\n        + While(\n            body=Op.EXTCODECOPY(Op.DUP4, 0, 0, Op.DUP2),\n        )\n    )\n    execution_code_address = pre.deploy_contract(code=execution_code)\n    tx = Transaction(\n        to=execution_code_address,\n        gas_limit=gas_benchmark_value,\n        sender=pre.fund_eoa(),\n    )\n\n    benchmark_test(tx=tx)\n\n\n@pytest.mark.parametrize(\"value_bearing\", [True, False])\ndef test_worst_selfdestruct_existing(\n    benchmark_test: BenchmarkTestFiller,\n    fork: Fork,\n    pre: Alloc,\n    value_bearing: bool,\n    env: Environment,\n    gas_benchmark_value: int,\n) -> None:\n    \"\"\"\n    Test running a block with as many SELFDESTRUCTs as possible for existing\n    contracts.\n    \"\"\"\n    attack_gas_limit = gas_benchmark_value\n    fee_recipient = pre.fund_eoa(amount=1)\n\n    # Template code that will be used to deploy a large number of contracts.\n    selfdestructable_contract_addr = pre.deploy_contract(code=Op.SELFDESTRUCT(Op.COINBASE))\n    initcode = Op.EXTCODECOPY(\n        address=selfdestructable_contract_addr,\n        dest_offset=0,\n        offset=0,\n        size=Op.EXTCODESIZE(selfdestructable_contract_addr),\n    ) + Op.RETURN(0, Op.EXTCODESIZE(selfdestructable_contract_addr))\n    initcode_address = pre.deploy_contract(code=initcode)\n\n    # Calculate the number of contracts that can be deployed with the available\n    # gas.\n    gas_costs = fork.gas_costs()\n    intrinsic_gas_cost_calc = fork.transaction_intrinsic_cost_calculator()\n    loop_cost = (\n        gas_costs.G_KECCAK_256  # KECCAK static cost\n        + math.ceil(85 / 32) * gas_costs.G_KECCAK_256_WORD  # KECCAK dynamic\n        # cost for CREATE2\n        + gas_costs.G_VERY_LOW * 3  # ~MSTOREs+ADDs\n        + gas_costs.G_COLD_ACCOUNT_ACCESS  # CALL to self-destructing contract\n        + gas_costs.G_SELF_DESTRUCT\n        + 63  # ~Gluing opcodes\n    )\n    final_storage_gas = (\n        gas_costs.G_STORAGE_RESET + gas_costs.G_COLD_SLOAD + (gas_costs.G_VERY_LOW * 2)\n    )\n    memory_expansion_cost = fork().memory_expansion_gas_calculator()(new_bytes=96)\n    base_costs = (\n        intrinsic_gas_cost_calc()\n        + (gas_costs.G_VERY_LOW * 12)  # 8 PUSHs + 4 MSTOREs\n        + final_storage_gas\n        + memory_expansion_cost\n    )\n    num_contracts = (attack_gas_limit - base_costs) // loop_cost\n    expected_benchmark_gas_used = num_contracts * loop_cost + base_costs\n\n    # Create a factory that deployes a new SELFDESTRUCT contract instance pre-\n    # funded depending on the value_bearing parameter. We use CREATE2 so the\n    # caller contract can easily reproduce the addresses in a loop for CALLs.\n    factory_code = (\n        Op.EXTCODECOPY(\n            address=initcode_address,\n            dest_offset=0,\n            offset=0,\n            size=Op.EXTCODESIZE(initcode_address),\n        )\n        + Op.MSTORE(\n            0,\n            Op.CREATE2(\n                value=1 if value_bearing else 0,\n                offset=0,\n                size=Op.EXTCODESIZE(initcode_address),\n                salt=Op.SLOAD(0),\n            ),\n        )\n        + Op.SSTORE(0, Op.ADD(Op.SLOAD(0), 1))\n        + Op.RETURN(0, 32)\n    )\n\n    required_balance = num_contracts if value_bearing else 0  # 1 wei per\n    # contract\n    factory_address = pre.deploy_contract(code=factory_code, balance=required_balance)\n\n    factory_caller_code = Op.CALLDATALOAD(0) + While(\n        body=Op.POP(Op.CALL(address=factory_address)),\n        condition=Op.PUSH1(1) + Op.SWAP1 + Op.SUB + Op.DUP1 + Op.ISZERO + Op.ISZERO,\n    )\n    factory_caller_address = pre.deploy_contract(code=factory_caller_code)\n\n    contracts_deployment_tx = Transaction(\n        to=factory_caller_address,\n        gas_limit=env.gas_limit,\n        data=Hash(num_contracts),\n        sender=pre.fund_eoa(),\n    )\n\n    code = (\n        # Setup memory for later CREATE2 address generation loop.\n        # 0xFF+[Address(20bytes)]+[seed(32bytes)]+[initcode keccak(32bytes)]\n        Op.MSTORE(0, factory_address)\n        + Op.MSTORE8(32 - 20 - 1, 0xFF)\n        + Op.MSTORE(32, 0)\n        + Op.MSTORE(64, initcode.keccak256())\n        # Main loop\n        + While(\n            body=Op.POP(Op.CALL(address=Op.SHA3(32 - 20 - 1, 85)))\n            + Op.MSTORE(32, Op.ADD(Op.MLOAD(32), 1)),\n            # Only loop if we have enough gas to cover another iteration plus\n            # the final storage gas.\n            condition=Op.GT(Op.GAS, final_storage_gas + loop_cost),\n        )\n        + Op.SSTORE(0, 42)  # Done for successful tx execution assertion below.\n    )\n    assert len(code) <= fork.max_code_size()\n\n    # The 0 storage slot is initialize to avoid creation costs in SSTORE above.\n    code_addr = pre.deploy_contract(code=code, storage={0: 1})\n    opcode_tx = Transaction(\n        to=code_addr,\n        gas_limit=attack_gas_limit,\n        sender=pre.fund_eoa(),\n    )\n\n    post = {\n        factory_address: Account(storage={0: num_contracts}),\n        code_addr: Account(storage={0: 42}),  # Check for successful execution.\n    }\n    deployed_contract_addresses = []\n    for i in range(num_contracts):\n        deployed_contract_address = compute_create2_address(\n            address=factory_address,\n            salt=i,\n            initcode=initcode,\n        )\n        post[deployed_contract_address] = Account(nonce=1)\n        deployed_contract_addresses.append(deployed_contract_address)\n\n    benchmark_test(\n        post=post,\n        blocks=[\n            Block(txs=[contracts_deployment_tx]),\n            Block(txs=[opcode_tx], fee_recipient=fee_recipient),\n        ],\n        expected_benchmark_gas_used=expected_benchmark_gas_used,\n    )\n\n\n@pytest.mark.parametrize(\"value_bearing\", [True, False])\ndef test_worst_selfdestruct_created(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    value_bearing: bool,\n    fork: Fork,\n    env: Environment,\n    gas_benchmark_value: int,\n) -> None:\n    \"\"\"\n    Test running a block with as many SELFDESTRUCTs as possible for deployed\n    contracts in the same transaction.\n    \"\"\"\n    fee_recipient = pre.fund_eoa(amount=1)\n    env.fee_recipient = fee_recipient\n\n    # SELFDESTRUCT(COINBASE) contract deployment\n    initcode = (\n        Op.MSTORE8(0, Op.COINBASE.int()) + Op.MSTORE8(1, Op.SELFDESTRUCT.int()) + Op.RETURN(0, 2)\n    )\n    gas_costs = fork.gas_costs()\n    memory_expansion_calc = fork().memory_expansion_gas_calculator()\n    intrinsic_gas_cost_calc = fork.transaction_intrinsic_cost_calculator()\n\n    initcode_costs = (\n        gas_costs.G_VERY_LOW * 8  # MSTOREs, PUSHs\n        + memory_expansion_calc(new_bytes=2)  # return into memory\n    )\n    create_costs = (\n        initcode_costs\n        + gas_costs.G_CREATE\n        + gas_costs.G_VERY_LOW * 3  # Create Parameter PUSHs\n        + gas_costs.G_CODE_DEPOSIT_BYTE * 2\n        + gas_costs.G_INITCODE_WORD\n    )\n    call_costs = (\n        gas_costs.G_WARM_ACCOUNT_ACCESS\n        + gas_costs.G_BASE  # COINBASE\n        + gas_costs.G_SELF_DESTRUCT\n        + gas_costs.G_VERY_LOW * 5  # CALL Parameter PUSHs\n        + gas_costs.G_BASE  #  Parameter GAS\n    )\n    extra_costs = (\n        gas_costs.G_BASE  # POP\n        + gas_costs.G_VERY_LOW * 6  # PUSHs, ADD, DUP, GT\n        + gas_costs.G_HIGH  # JUMPI\n        + gas_costs.G_JUMPDEST\n    )\n    loop_cost = create_costs + call_costs + extra_costs\n\n    prefix_cost = gas_costs.G_VERY_LOW * 3 + gas_costs.G_BASE + memory_expansion_calc(new_bytes=32)\n    suffix_cost = gas_costs.G_COLD_SLOAD + gas_costs.G_STORAGE_RESET + (gas_costs.G_VERY_LOW * 2)\n\n    base_costs = prefix_cost + suffix_cost + intrinsic_gas_cost_calc()\n\n    iterations = (gas_benchmark_value - base_costs) // loop_cost\n\n    code_prefix = Op.MSTORE(0, initcode.hex()) + Op.PUSH0 + Op.JUMPDEST\n    code_suffix = (\n        Op.SSTORE(0, 42)  # Done for successful tx execution assertion below.\n        + Op.STOP\n    )\n    loop_body = (\n        Op.POP(\n            Op.CALL(\n                address=Op.CREATE(\n                    value=1 if value_bearing else 0,\n                    offset=32 - len(initcode),\n                    size=len(initcode),\n                )\n            )\n        )\n        + Op.PUSH1[1]\n        + Op.ADD\n        + Op.JUMPI(len(code_prefix) - 1, Op.GT(iterations, Op.DUP1))\n    )\n    code = code_prefix + loop_body + code_suffix\n    # The 0 storage slot is initialize to avoid creation costs in SSTORE above.\n    code_addr = pre.deploy_contract(\n        code=code,\n        balance=iterations if value_bearing else 0,\n        storage={0: 1},\n    )\n    code_tx = Transaction(\n        to=code_addr,\n        gas_limit=gas_benchmark_value,\n        sender=pre.fund_eoa(),\n    )\n\n    post = {code_addr: Account(storage={0: 42})}  # Check for successful\n    # execution.\n    state_test(\n        pre=pre,\n        post=post,\n        tx=code_tx,\n        expected_benchmark_gas_used=iterations * loop_cost + base_costs,\n    )\n\n\n@pytest.mark.parametrize(\"value_bearing\", [True, False])\ndef test_worst_selfdestruct_initcode(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    value_bearing: bool,\n    fork: Fork,\n    env: Environment,\n    gas_benchmark_value: int,\n) -> None:\n    \"\"\"\n    Test running a block with as many SELFDESTRUCTs as possible executed in\n    initcode.\n    \"\"\"\n    fee_recipient = pre.fund_eoa(amount=1)\n    env.fee_recipient = fee_recipient\n\n    gas_costs = fork.gas_costs()\n    memory_expansion_calc = fork().memory_expansion_gas_calculator()\n    intrinsic_gas_cost_calc = fork.transaction_intrinsic_cost_calculator()\n\n    initcode_costs = (\n        gas_costs.G_BASE  # COINBASE\n        + gas_costs.G_SELF_DESTRUCT\n    )\n    create_costs = (\n        initcode_costs\n        + gas_costs.G_CREATE\n        + gas_costs.G_VERY_LOW * 3  # Create Parameter PUSHs\n        + gas_costs.G_INITCODE_WORD\n    )\n    extra_costs = (\n        gas_costs.G_BASE  # POP\n        + gas_costs.G_VERY_LOW * 6  # PUSHs, ADD, DUP, GT\n        + gas_costs.G_HIGH  # JUMPI\n        + gas_costs.G_JUMPDEST\n    )\n    loop_cost = create_costs + extra_costs\n\n    prefix_cost = gas_costs.G_VERY_LOW * 3 + gas_costs.G_BASE + memory_expansion_calc(new_bytes=32)\n    suffix_cost = gas_costs.G_COLD_SLOAD + gas_costs.G_STORAGE_RESET + (gas_costs.G_VERY_LOW * 2)\n\n    base_costs = prefix_cost + suffix_cost + intrinsic_gas_cost_calc()\n\n    iterations = (gas_benchmark_value - base_costs) // loop_cost\n\n    initcode = Op.SELFDESTRUCT(Op.COINBASE)\n    code_prefix = Op.MSTORE(0, initcode.hex()) + Op.PUSH0 + Op.JUMPDEST\n    code_suffix = (\n        Op.SSTORE(0, 42)  # Done for successful tx execution assertion below.\n        + Op.STOP\n    )\n\n    loop_body = (\n        Op.POP(\n            Op.CREATE(\n                value=1 if value_bearing else 0,\n                offset=32 - len(initcode),\n                size=len(initcode),\n            )\n        )\n        + Op.PUSH1[1]\n        + Op.ADD\n        + Op.JUMPI(len(code_prefix) - 1, Op.GT(iterations, Op.DUP1))\n    )\n    code = code_prefix + loop_body + code_suffix\n\n    # The 0 storage slot is initialize to avoid creation costs in SSTORE above.\n    code_addr = pre.deploy_contract(code=code, balance=100_000, storage={0: 1})\n    code_tx = Transaction(\n        to=code_addr,\n        gas_limit=gas_benchmark_value,\n        gas_price=10,\n        sender=pre.fund_eoa(),\n    )\n\n    post = {code_addr: Account(storage={0: 42})}  # Check for successful\n    # execution.\n    state_test(\n        pre=pre,\n        post=post,\n        tx=code_tx,\n        expected_benchmark_gas_used=iterations * loop_cost + base_costs,\n    )\n"
  },
  {
    "path": "tests/berlin/__init__.py",
    "content": "\"\"\"Test cases for EVM functionality introduced in Berlin.\"\"\"\n"
  },
  {
    "path": "tests/berlin/eip2929_gas_cost_increases/__init__.py",
    "content": "\"\"\"\nTests for [EIP-2929: Gas cost increases for state access opcodes](https://eips.ethereum.org/EIPS/eip-2929).\n\"\"\"\n"
  },
  {
    "path": "tests/berlin/eip2929_gas_cost_increases/test_call.py",
    "content": "\"\"\"Test the CALL opcode after EIP-2929.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    Account,\n    Alloc,\n    CodeGasMeasure,\n    Environment,\n    StateTestFiller,\n    Transaction,\n)\nfrom ethereum_test_vm import Opcodes as Op\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-2929.md\"\nREFERENCE_SPEC_VERSION = \"0e11417265a623adb680c527b15d0cb6701b870b\"\n\n\n@pytest.mark.valid_from(\"Berlin\")\ndef test_call_insufficient_balance(\n    state_test: StateTestFiller, pre: Alloc, env: Environment, fork: Fork\n) -> None:\n    \"\"\"\n    Test a regular CALL to see if it warms the destination with insufficient\n    balance.\n    \"\"\"\n    gas_costs = fork.gas_costs()\n    destination = pre.fund_eoa(1)\n    contract_address = pre.deploy_contract(\n        # Perform the aborted external calls\n        Op.SSTORE(\n            0,\n            Op.CALL(\n                gas=Op.GAS,\n                address=destination,\n                value=1,\n                args_offset=0,\n                args_size=0,\n                ret_offset=0,\n                ret_size=0,\n            ),\n        )\n        # Measure the gas cost for BALANCE operation\n        + CodeGasMeasure(\n            code=Op.BALANCE(destination),\n            overhead_cost=gas_costs.G_VERY_LOW,  # PUSH20 costs 3 gas\n            extra_stack_items=1,  # BALANCE puts balance on stack\n            sstore_key=1,\n        ),\n        balance=0,\n    )\n\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=100_000,\n        sender=pre.fund_eoa(),\n    )\n\n    post = {\n        destination: Account(\n            balance=1,\n        ),\n        contract_address: Account(\n            storage={\n                0: 0,  # The CALL is aborted\n                1: gas_costs.G_WARM_ACCOUNT_ACCESS,  # Warm access cost\n            },\n        ),\n    }\n    state_test(env=env, pre=pre, post=post, tx=tx)\n"
  },
  {
    "path": "tests/berlin/eip2929_gas_cost_increases/test_precompile_warming.py",
    "content": "\"\"\"\nTests EIP-2929 precompile warming behavior.\n\nTests precompile warming behavior across fork transitions from\n[EIP-2929: Gas cost increases for state access opcodes]\n    (https://eips.ethereum.org/EIPS/eip-2929).\n\"\"\"\n\nfrom typing import Iterator, Tuple\n\nimport pytest\n\nfrom ethereum_test_checklists import EIPChecklist\nfrom ethereum_test_forks import (\n    Fork,\n    get_transition_fork_predecessor,\n    get_transition_fork_successor,\n)\nfrom ethereum_test_tools import (\n    Account,\n    Address,\n    Alloc,\n    Block,\n    BlockchainTestFiller,\n    Transaction,\n)\nfrom ethereum_test_vm import Opcodes as Op\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-2929.md\"\nREFERENCE_SPEC_VERSION = \"0e11417265a623adb680c527b15d0cb6701b870b\"\n\n\ndef precompile_addresses_in_predecessor_successor(\n    fork: Fork,\n) -> Iterator[Tuple[Address, bool, bool]]:\n    \"\"\"\n    Yield the addresses of precompiled contracts and whether they existed in\n    the parent fork.\n\n    Args:\n        fork (Fork): The transition fork instance containing precompiled\n            contract information.\n\n    Yields:\n        Iterator[Tuple[str, bool]]: A tuple containing the address in\n            hexadecimal format and a boolean indicating whether the address\n            has existed in the predecessor.\n\n    \"\"\"\n    precompile_range = range(0x01, 0x100)\n    predecessor_precompiles = set(get_transition_fork_predecessor(fork).precompiles())\n    successor_precompiles = set(get_transition_fork_successor(fork).precompiles())\n    all_precompiles = successor_precompiles | predecessor_precompiles\n\n    precompiles_in_range = {\n        addr\n        for addr in all_precompiles\n        if int.from_bytes(addr, byteorder=\"big\") in precompile_range\n    }\n\n    highest_in_range = max(int.from_bytes(addr, byteorder=\"big\") for addr in precompiles_in_range)\n    highest_overall = max(int.from_bytes(addr, byteorder=\"big\") for addr in all_precompiles)\n    extra_range = 32\n    extra_precompiles = {\n        Address(i) for i in range(highest_in_range + 1, highest_in_range + extra_range)\n    }\n    extra_precompiles_outside_range = {Address(highest_overall + 1)}\n\n    all_precompiles = all_precompiles | extra_precompiles | extra_precompiles_outside_range\n\n    for address in sorted(all_precompiles):\n        yield address, address in successor_precompiles, address in predecessor_precompiles\n\n\n@pytest.mark.valid_at_transition_to(\"Paris\", subsequent_forks=True)\n@pytest.mark.parametrize_by_fork(\n    \"address,precompile_in_successor,precompile_in_predecessor\",\n    precompile_addresses_in_predecessor_successor,\n)\n@EIPChecklist.Precompile.Test.ForkTransition.Before.Cold(eip=[7951])\n@EIPChecklist.Precompile.Test.ForkTransition.After.Warm(eip=[7951])\n@pytest.mark.slow()\ndef test_precompile_warming(\n    blockchain_test: BlockchainTestFiller,\n    fork: Fork,\n    address: Address,\n    precompile_in_successor: bool,\n    precompile_in_predecessor: bool,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    Call BALANCE of a precompile addresses before and after a fork.\n\n    According to EIP-2929, when a transaction begins, accessed_addresses is\n    initialized to include:\n    - tx.sender, tx.to\n    - and the set of all precompiles\n\n    This test verifies that:\n    1. Precompiles that exist in the predecessor fork are always \"warm\" (lower\n        gas cost).\n    2. New precompiles added in a fork are \"cold\" before the fork and become\n        \"warm\" after.\n    \"\"\"\n    sender = pre.fund_eoa()\n    call_cost_slot = 0\n\n    code = (\n        Op.GAS\n        + Op.BALANCE(address)\n        + Op.POP\n        + Op.SSTORE(call_cost_slot, Op.SUB(Op.SWAP1, Op.GAS))\n        + Op.STOP\n    )\n    before = pre.deploy_contract(code, storage={call_cost_slot: 0xDEADBEEF})\n    after = pre.deploy_contract(code, storage={call_cost_slot: 0xDEADBEEF})\n\n    # Block before fork\n    blocks = [\n        Block(\n            timestamp=10_000,\n            txs=[\n                Transaction(\n                    sender=sender,\n                    to=before,\n                    gas_limit=1_000_000,\n                )\n            ],\n        )\n    ]\n\n    # Block after fork\n    blocks += [\n        Block(\n            timestamp=20_000,\n            txs=[\n                Transaction(\n                    sender=sender,\n                    to=after,\n                    gas_limit=1_000_000,\n                )\n            ],\n        )\n    ]\n\n    predecessor = get_transition_fork_predecessor(fork)\n    successor = get_transition_fork_successor(fork)\n\n    def get_expected_gas(precompile_present: bool, fork: Fork) -> int:\n        gas_costs = fork.gas_costs()\n        warm_access_cost = gas_costs.G_WARM_ACCOUNT_ACCESS\n        cold_access_cost = gas_costs.G_COLD_ACCOUNT_ACCESS\n        extra_cost = gas_costs.G_BASE * 2 + gas_costs.G_VERY_LOW\n        if precompile_present:\n            return warm_access_cost + extra_cost\n        else:\n            return cold_access_cost + extra_cost\n\n    expected_gas_before = get_expected_gas(precompile_in_predecessor, predecessor)\n    expected_gas_after = get_expected_gas(precompile_in_successor, successor)\n\n    post = {\n        before: Account(storage={call_cost_slot: expected_gas_before}),\n        after: Account(storage={call_cost_slot: expected_gas_after}),\n    }\n\n    blockchain_test(\n        pre=pre,\n        post=post,\n        blocks=blocks,\n    )\n"
  },
  {
    "path": "tests/berlin/eip2930_access_list/__init__.py",
    "content": "\"\"\"\nTests for [EIP-2930: Optional access lists](https://eips.ethereum.org/EIPS/eip-2930).\n\"\"\"\n"
  },
  {
    "path": "tests/berlin/eip2930_access_list/spec.py",
    "content": "\"\"\"Defines EIP-2930 specification constants and functions.\"\"\"\n\nfrom dataclasses import dataclass\n\n\n@dataclass(frozen=True)\nclass ReferenceSpec:\n    \"\"\"Defines the reference spec version and git path.\"\"\"\n\n    git_path: str\n    version: str\n\n\nref_spec_2930 = ReferenceSpec(\"EIPS/eip-2930.md\", \"c9db53a936c5c9cbe2db32ba0d1b86c4c6e73534\")\n\n\n# Constants\n@dataclass(frozen=True)\nclass Spec:\n    \"\"\"\n    Parameters from the EIP-2930 specifications as defined at\n    https://eips.ethereum.org/EIPS/eip-2930#specification.\n    \"\"\"\n\n    ACCESS_LIST_ADDRESS_COST = 2400\n    ACCESS_LIST_STORAGE_KEY_COST = 1900\n\n    \"\"\"From EIP-2028\"\"\"\n    TX_BASE_INTRINSIC_GAS = 21_000\n    TX_DATA_ZERO_BYTE_GAS = 4\n    TX_DATA_NON_ZERO_BYTE_GAS = 16\n"
  },
  {
    "path": "tests/berlin/eip2930_access_list/test_acl.py",
    "content": "\"\"\"Test ACL Transaction Source Code Examples.\"\"\"\n\nfrom typing import List\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    AccessList,\n    Account,\n    Address,\n    Alloc,\n    CodeGasMeasure,\n    Environment,\n    Hash,\n    StateTestFiller,\n    Transaction,\n    TransactionException,\n)\nfrom ethereum_test_tools import Opcodes as Op\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-2930.md\"\nREFERENCE_SPEC_VERSION = \"c9db53a936c5c9cbe2db32ba0d1b86c4c6e73534\"\n\npytestmark = pytest.mark.valid_from(\"Berlin\")\n\n\n@pytest.mark.parametrize(\n    \"account_warm,storage_key_warm\",\n    [\n        (True, True),\n        (True, False),\n        # (False, True),  Not possible\n        (False, False),\n    ],\n)\ndef test_account_storage_warm_cold_state(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    fork: Fork,\n    account_warm: bool,\n    storage_key_warm: bool,\n) -> None:\n    \"\"\"Test type 1 transaction.\"\"\"\n    env = Environment()\n    gas_costs = fork.gas_costs()\n\n    storage_reader_contract = pre.deploy_contract(Op.SLOAD(1) + Op.STOP)\n    overhead_cost = (\n        gas_costs.G_VERY_LOW * (Op.CALL.popped_stack_items - 1)  # Call stack items\n        + gas_costs.G_BASE  # Call gas\n        + gas_costs.G_VERY_LOW  # SLOAD Push\n    )\n    contract_address = pre.deploy_contract(\n        CodeGasMeasure(\n            code=Op.CALL(address=storage_reader_contract),\n            overhead_cost=overhead_cost,\n            extra_stack_items=1,\n            sstore_key=0,\n        )\n    )\n    expected_gas_cost = 0\n    access_list_address = Address(0)\n    access_list_storage_key = Hash(0)\n    if account_warm:\n        expected_gas_cost += gas_costs.G_WARM_ACCOUNT_ACCESS\n        access_list_address = storage_reader_contract\n    else:\n        expected_gas_cost += gas_costs.G_COLD_ACCOUNT_ACCESS\n    if storage_key_warm:\n        expected_gas_cost += gas_costs.G_WARM_SLOAD\n        access_list_storage_key = Hash(1)\n    else:\n        expected_gas_cost += gas_costs.G_COLD_SLOAD\n\n    access_lists: List[AccessList] = [\n        AccessList(\n            address=access_list_address,\n            storage_keys=[access_list_storage_key],\n        ),\n    ]\n\n    sender = pre.fund_eoa()\n\n    contract_creation = False\n    tx_data = b\"\"\n\n    intrinsic_gas_calculator = fork.transaction_intrinsic_cost_calculator()\n\n    tx_gas_limit = (\n        intrinsic_gas_calculator(\n            calldata=tx_data,\n            contract_creation=contract_creation,\n            access_list=access_lists,\n        )\n        + 100_000\n    )\n\n    tx = Transaction(\n        ty=1,\n        data=tx_data,\n        to=contract_address,\n        gas_limit=tx_gas_limit,\n        access_list=access_lists,\n        sender=sender,\n    )\n\n    post = {\n        contract_address: Account(\n            nonce=1,\n            storage={0: expected_gas_cost},\n        ),\n    }\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.parametrize(\n    \"access_lists\",\n    [\n        pytest.param(\n            [],\n            id=\"empty_access_list\",\n        ),\n        pytest.param(\n            [AccessList(address=Address(0), storage_keys=[])],\n            id=\"single_address_multiple_no_storage_keys\",\n        ),\n        pytest.param(\n            [AccessList(address=Address(0), storage_keys=[Hash(0)])],\n            id=\"single_address_single_storage_key\",\n        ),\n        pytest.param(\n            [AccessList(address=Address(0), storage_keys=[Hash(0), Hash(1)])],\n            id=\"single_address_multiple_storage_keys\",\n        ),\n        pytest.param(\n            [\n                AccessList(address=Address(0), storage_keys=[Hash(0), Hash(1)]),\n                AccessList(address=Address(1), storage_keys=[]),\n            ],\n            id=\"multiple_addresses_second_address_no_storage_keys\",\n        ),\n        pytest.param(\n            [\n                AccessList(address=Address(0), storage_keys=[Hash(0), Hash(1)]),\n                AccessList(address=Address(1), storage_keys=[Hash(0)]),\n            ],\n            id=\"multiple_addresses_second_address_single_storage_key\",\n        ),\n        pytest.param(\n            [\n                AccessList(address=Address(0), storage_keys=[Hash(0), Hash(1)]),\n                AccessList(address=Address(1), storage_keys=[Hash(0), Hash(1)]),\n            ],\n            id=\"multiple_addresses_second_address_multiple_storage_keys\",\n        ),\n        pytest.param(\n            [\n                AccessList(address=Address(0), storage_keys=[]),\n                AccessList(address=Address(1), storage_keys=[Hash(0), Hash(1)]),\n            ],\n            id=\"multiple_addresses_first_address_no_storage_keys\",\n        ),\n        pytest.param(\n            [\n                AccessList(address=Address(0), storage_keys=[Hash(0)]),\n                AccessList(address=Address(1), storage_keys=[Hash(0), Hash(1)]),\n            ],\n            id=\"multiple_addresses_first_address_single_storage_key\",\n        ),\n        pytest.param(\n            [\n                AccessList(address=Address(0), storage_keys=[]),\n                AccessList(address=Address(1), storage_keys=[]),\n            ],\n            id=\"repeated_address_no_storage_keys\",\n        ),\n        pytest.param(\n            [\n                AccessList(address=Address(0), storage_keys=[Hash(0)]),\n                AccessList(address=Address(0), storage_keys=[Hash(1)]),\n            ],\n            id=\"repeated_address_single_storage_key\",\n        ),\n        pytest.param(\n            [\n                AccessList(address=Address(0), storage_keys=[Hash(0), Hash(1)]),\n                AccessList(address=Address(0), storage_keys=[Hash(0), Hash(1)]),\n            ],\n            id=\"repeated_address_multiple_storage_keys\",\n        ),\n    ],\n)\n@pytest.mark.parametrize(\n    \"enough_gas\",\n    [\n        pytest.param(True, id=\"enough_gas\"),\n        pytest.param(False, id=\"not_enough_gas\", marks=pytest.mark.exception_test),\n    ],\n)\ndef test_transaction_intrinsic_gas_cost(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    fork: Fork,\n    access_lists: List[AccessList],\n    enough_gas: bool,\n) -> None:\n    \"\"\"Test type 1 transaction.\"\"\"\n    env = Environment()\n\n    contract_start_balance = 3\n    contract_address = pre.deploy_contract(\n        Op.STOP,\n        balance=contract_start_balance,\n    )\n    sender = pre.fund_eoa()\n    tx_value = 1\n    pre.fund_address(sender, tx_value)\n\n    contract_creation = False\n    tx_data = b\"\"\n\n    intrinsic_gas_calculator = fork.transaction_intrinsic_cost_calculator()\n\n    tx_exception = None\n    tx_gas_limit = intrinsic_gas_calculator(\n        calldata=tx_data,\n        contract_creation=contract_creation,\n        access_list=access_lists,\n    )\n    if not enough_gas:\n        tx_gas_limit -= 1\n        tx_exception = TransactionException.INTRINSIC_GAS_TOO_LOW\n\n    tx = Transaction(\n        ty=1,\n        data=tx_data,\n        to=contract_address,\n        value=tx_value,\n        gas_limit=tx_gas_limit,\n        access_list=access_lists,\n        sender=sender,\n        error=tx_exception,\n    )\n\n    post = {\n        contract_address: Account(\n            balance=contract_start_balance + 1 if enough_gas else contract_start_balance,\n            nonce=1,\n        ),\n        sender: Account(\n            nonce=1 if enough_gas else 0,\n        ),\n    }\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\ndef test_repeated_address_acl(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    fork: Fork,\n) -> None:\n    \"\"\"\n    Tests that slots are warmed correctly in an access list that has the same\n    address repeated more than once, each time with different slots.\n\n    Difference with other ACL tests is that we actually try to\n    access both slots at runtime. We also measure the gas cost\n    of each access in order to make debugging easier.\n    \"\"\"\n    sender = pre.fund_eoa()\n    gsc = fork.gas_costs()\n\n    sload0_measure = CodeGasMeasure(\n        code=Op.SLOAD(0),\n        overhead_cost=gsc.G_VERY_LOW * len(Op.SLOAD.kwargs),  # Cost of pushing SLOAD args\n        extra_stack_items=1,  # SLOAD pushes 1 item to the stack\n        sstore_key=0,\n        stop=False,  # Because it's the first CodeGasMeasure\n    )\n\n    sload1_measure = CodeGasMeasure(\n        code=Op.SLOAD(1),\n        overhead_cost=gsc.G_VERY_LOW * len(Op.SLOAD.kwargs),  # Cost of pushing SLOAD args\n        extra_stack_items=1,  # SLOAD pushes 1 item to the stack\n        sstore_key=1,\n    )\n\n    contract = pre.deploy_contract(sload0_measure + sload1_measure)\n\n    tx = Transaction(\n        gas_limit=500_000,\n        to=contract,\n        value=0,\n        sender=sender,\n        access_list=[\n            AccessList(\n                address=contract,\n                storage_keys=[0],\n            ),\n            AccessList(\n                address=contract,\n                storage_keys=[1],\n            ),\n        ],\n    )\n\n    sload_cost = gsc.G_WARM_ACCOUNT_ACCESS\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            contract: Account(\n                storage={0: sload_cost, 1: sload_cost},\n            )\n        },\n    )\n"
  },
  {
    "path": "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py",
    "content": "\"\"\"\nTests [EIP-2930: Access list transaction](https://eips.ethereum.org/EIPS/eip-2930).\n\nOriginal test by Ori:\nhttps://github.com/ethereum/tests/blob/v15.0/src/GeneralStateTestsFiller/stEIP1559/intrinsicGen.js.\n\"\"\"\n\nfrom typing import List\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    AccessList,\n    Address,\n    Alloc,\n    Bytes,\n    Environment,\n    StateTestFiller,\n    Transaction,\n    TransactionException,\n)\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom .spec import ref_spec_2930\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_2930.git_path\nREFERENCE_SPEC_VERSION = ref_spec_2930.version\n\npytestmark = pytest.mark.valid_from(\"Berlin\")\n\ntx_intrinsic_gas_data_vectors = [\n    pytest.param(Bytes(b\"\"), id=\"data_empty\"),\n    pytest.param(Bytes(b\"0x00\"), id=\"data_1_zero_byte\"),\n    pytest.param(Bytes(b\"0x00000000\"), id=\"data_4_zero_byte\"),\n    pytest.param(Bytes(b\"0xFF\"), id=\"data_1_non_zero_byte\"),\n    pytest.param(Bytes(b\"0x00FF\"), id=\"data_1_zero_byte_1_non_zero_byte\"),\n    pytest.param(Bytes(b\"0xFE00\"), id=\"data_1_zero_byte_1_non_zero_byte_reversed\"),\n    pytest.param(Bytes(b\"0x0102030405060708090A0B0C0D0E0F10\"), id=\"data_set_1\"),\n    pytest.param(\n        Bytes(b\"0x00010203040506000708090A0B0C0D0E0F10111200131415161718191a1b1c1d1e1f\"),\n        id=\"data_set_2\",\n    ),\n    pytest.param(\n        Bytes(b\"0x0102030405060708090A0B0C0D0E0F101112131415161718191a1b1c1d1e1f20\"),\n        id=\"data_set_3\",\n    ),\n    pytest.param(\n        Bytes(b\"0x01020304050607080910111213141516171819202122232425262728293031\"),\n        id=\"data_set_31_bytes\",\n    ),\n    pytest.param(\n        Bytes(b\"0x000102030405060708090A0B0C0D0E0F101112131415161718191a1b1c1d1e1f\"),\n        id=\"data_set_32_bytes\",\n    ),\n    pytest.param(\n        Bytes(b\"0x010203040506070809101112131415161718192021222324252627282930313233\"),\n        id=\"data_set_33_bytes\",\n    ),\n    pytest.param(\n        Bytes(b\"0x000000000000000000000000000000000000000000000000000000000000000000\"),\n        id=\"data_set_33_empty_bytes\",\n    ),\n    pytest.param(\n        Bytes(\n            b\"0x000000000000000000000000000000000000000000000000000000000000000000010203040506070809101112131415161718192021222324252627282930313233\"\n        ),\n        id=\"data_set_66_bytes_half_zeros\",\n    ),\n]\n\ntx_intrinsic_gas_access_list_vectors = [\n    pytest.param([], id=\"access_list_empty\"),\n    pytest.param(\n        [AccessList(address=1, storage_keys=[])],\n        id=\"access_list_1_address_empty_keys\",\n    ),\n    pytest.param(\n        [AccessList(address=1, storage_keys=[0x60A7])],\n        id=\"access_list_1_address_1_keys\",\n    ),\n    pytest.param(\n        [AccessList(address=1, storage_keys=[0x60A7, 0x60A8])],\n        id=\"access_list_1_address_2_keys\",\n    ),\n    pytest.param(\n        [\n            AccessList(address=1, storage_keys=[]),\n            AccessList(address=2, storage_keys=[]),\n        ],\n        id=\"access_list_2_address_empty_keys\",\n    ),\n    pytest.param(\n        [\n            AccessList(address=1, storage_keys=[]),\n            AccessList(address=2, storage_keys=[0x60A7]),\n        ],\n        id=\"access_list_2_address_1_keys\",\n    ),\n    pytest.param(\n        [\n            AccessList(address=1, storage_keys=[0x60A7]),\n            AccessList(address=2, storage_keys=[0x60A8]),\n        ],\n        id=\"access_list_2_address_2_keys\",\n    ),\n    pytest.param(\n        [\n            AccessList(address=1, storage_keys=[0x60A7, 0x60A8]),\n            AccessList(address=2, storage_keys=[]),\n        ],\n        id=\"access_list_2_address_2_keys_inversion\",\n    ),\n    pytest.param(\n        [\n            AccessList(address=1, storage_keys=[0xCE11]),\n            AccessList(address=2, storage_keys=[0x60A7]),\n            *[\n                AccessList(\n                    address=Address(i),\n                    storage_keys=[0x600D, 0x0BAD, 0x60A7, 0xBEEF],\n                )\n                for i in range(3, 13)  # 3 to 12 inclusive (10 entries)\n            ],\n        ],\n        id=\"access_list_12_address_42_keys\",\n    ),\n]\n\n\n@pytest.mark.ported_from(\n    [\n        \"https://github.com/ethereum/tests/blob/v13.3/src/GeneralStateTestsFiller/stEIP1559/intrinsicGen.js\",\n        \"https://github.com/ethereum/tests/blob/v13.3/src/GeneralStateTestsFiller/stEIP1559/intrinsicFiller.yml\",\n    ],\n    pr=[\"https://github.com/ethereum/execution-spec-tests/pull/1535\"],\n)\n@pytest.mark.parametrize(\"data\", tx_intrinsic_gas_data_vectors)\n@pytest.mark.parametrize(\"access_list\", tx_intrinsic_gas_access_list_vectors)\n@pytest.mark.parametrize(\n    \"below_intrinsic\",\n    [\n        pytest.param(False),\n        pytest.param(True, marks=pytest.mark.exception_test),\n    ],\n)\n@pytest.mark.with_all_tx_types(selector=lambda tx_type: tx_type in [1, 2])\n@pytest.mark.slow()\ndef test_tx_intrinsic_gas(\n    state_test: StateTestFiller,\n    tx_type: int,\n    pre: Alloc,\n    fork: Fork,\n    data: Bytes,\n    access_list: List[AccessList],\n    below_intrinsic: bool,\n) -> None:\n    \"\"\"Transaction intrinsic gas calculation on EIP2930.\"\"\"\n    intrinsic_gas_cost_calculator = fork.transaction_intrinsic_cost_calculator()\n    intrinsic_gas_cost = intrinsic_gas_cost_calculator(calldata=data, access_list=access_list)\n\n    exception: List[TransactionException] | TransactionException | None = None\n    if below_intrinsic:\n        data_floor_gas_cost_calculator = fork.transaction_data_floor_cost_calculator()\n        data_floor_gas_cost = data_floor_gas_cost_calculator(data=data)\n        if data_floor_gas_cost > intrinsic_gas_cost:\n            exception = TransactionException.INTRINSIC_GAS_BELOW_FLOOR_GAS_COST\n        elif data_floor_gas_cost == intrinsic_gas_cost:\n            # Depending on the implementation, client might raise either\n            # exception.\n            exception = [\n                TransactionException.INTRINSIC_GAS_TOO_LOW,\n                TransactionException.INTRINSIC_GAS_BELOW_FLOOR_GAS_COST,\n            ]\n        else:\n            exception = TransactionException.INTRINSIC_GAS_TOO_LOW\n\n    tx = Transaction(\n        ty=tx_type,\n        sender=pre.fund_eoa(),\n        to=pre.deploy_contract(code=Op.SSTORE(0, Op.ADD(1, 1))),\n        data=data,\n        access_list=access_list,\n        gas_limit=intrinsic_gas_cost + (-1 if below_intrinsic else 0),\n        error=exception,\n        protected=True,\n    )\n\n    state_test(env=Environment(), pre=pre, post={}, tx=tx)\n"
  },
  {
    "path": "tests/byzantium/__init__.py",
    "content": "\"\"\"Test cases for EVM functionality introduced in Byzantium.\"\"\"\n"
  },
  {
    "path": "tests/byzantium/eip198_modexp_precompile/__init__.py",
    "content": "\"\"\"Test for precompiles introduced in Byzantium.\"\"\"\n"
  },
  {
    "path": "tests/byzantium/eip198_modexp_precompile/helpers.py",
    "content": "\"\"\"\nHelper functions for the EIP-198 ModExp precompile tests.\n\"\"\"\n\nfrom typing import Tuple\n\nfrom pydantic import Field\n\nfrom ethereum_test_tools import Bytes, TestParameterGroup\n\n\nclass ModExpInput(TestParameterGroup):\n    \"\"\"\n    Helper class that defines the MODEXP precompile inputs and creates the call\n    data from them.\n\n    Attributes:\n        base (str): The base value for the MODEXP precompile.\n        exponent (str): The exponent value for the MODEXP precompile.\n        modulus (str): The modulus value for the MODEXP precompile.\n        extra_data (str): Defines extra padded data to be added at the end of\n                          the calldata to the precompile.\n                          Defaults to an empty string.\n\n    \"\"\"\n\n    base: Bytes\n    exponent: Bytes\n    modulus: Bytes\n    extra_data: Bytes = Field(default_factory=Bytes)\n    raw_input: Bytes | None = None\n    declared_base_length: int | None = None\n    declared_exponent_length: int | None = None\n    declared_modulus_length: int | None = None\n\n    @property\n    def length_base(self) -> Bytes:\n        \"\"\"Return the length of the base.\"\"\"\n        length = (\n            self.declared_base_length if self.declared_base_length is not None else len(self.base)\n        )\n        return Bytes(length.to_bytes(32, \"big\"))\n\n    @property\n    def length_exponent(self) -> Bytes:\n        \"\"\"Return the length of the exponent.\"\"\"\n        length = (\n            self.declared_exponent_length\n            if self.declared_exponent_length is not None\n            else len(self.exponent)\n        )\n        return Bytes(length.to_bytes(32, \"big\"))\n\n    @property\n    def length_modulus(self) -> Bytes:\n        \"\"\"Return the length of the modulus.\"\"\"\n        length = (\n            self.declared_modulus_length\n            if self.declared_modulus_length is not None\n            else len(self.modulus)\n        )\n        return Bytes(length.to_bytes(32, \"big\"))\n\n    def __bytes__(self) -> bytes:\n        \"\"\"Generate input for the MODEXP precompile.\"\"\"\n        if self.raw_input is not None:\n            return self.raw_input\n        return (\n            self.length_base\n            + self.length_exponent\n            + self.length_modulus\n            + self.base\n            + self.exponent\n            + self.modulus\n            + self.extra_data\n        )\n\n    @classmethod\n    def from_bytes(cls, input_data: Bytes | str) -> \"ModExpInput\":\n        \"\"\"\n        Create a ModExpInput from a bytes object.\n\n        Assumes correct formatting of the input data.\n        \"\"\"\n        if isinstance(input_data, str):\n            input_data = Bytes(input_data)\n        assert not isinstance(input_data, str)\n        padded_input_data = input_data\n        if len(padded_input_data) < 96:\n            padded_input_data = Bytes(padded_input_data.ljust(96, b\"\\0\"))\n        base_length = int.from_bytes(padded_input_data[0:32], byteorder=\"big\")\n        exponent_length = int.from_bytes(padded_input_data[32:64], byteorder=\"big\")\n        modulus_length = int.from_bytes(padded_input_data[64:96], byteorder=\"big\")\n\n        total_required_length = 96 + base_length + exponent_length + modulus_length\n        if len(padded_input_data) < total_required_length:\n            padded_input_data = Bytes(padded_input_data.ljust(total_required_length, b\"\\0\"))\n\n        current_index = 96\n        base = padded_input_data[current_index : current_index + base_length]\n        current_index += base_length\n\n        exponent = padded_input_data[current_index : current_index + exponent_length]\n        current_index += exponent_length\n\n        modulus = padded_input_data[current_index : current_index + modulus_length]\n\n        return cls(base=base, exponent=exponent, modulus=modulus, raw_input=input_data)\n\n    def get_declared_lengths(self) -> Tuple[int, int, int]:\n        \"\"\"Extract declared lengths from the raw input bytes.\"\"\"\n        raw = self.raw_input if self.raw_input is not None else bytes(self)\n        if len(raw) < 96:\n            raw = raw.ljust(96, b\"\\0\")\n        base_length = int.from_bytes(raw[0:32], byteorder=\"big\")\n        exponent_length = int.from_bytes(raw[32:64], byteorder=\"big\")\n        modulus_length = int.from_bytes(raw[64:96], byteorder=\"big\")\n        return base_length, exponent_length, modulus_length\n\n    def get_exponent_head(self) -> int:\n        \"\"\"Get the first 32 bytes of the exponent as an integer.\"\"\"\n        raw = self.raw_input if self.raw_input is not None else bytes(self)\n        base_length, exponent_length, _ = self.get_declared_lengths()\n        exp_start = 96 + base_length\n\n        # Extract up to 32 bytes of exponent data\n        exp_head_bytes = raw[exp_start : exp_start + min(32, exponent_length)]\n\n        # Pad with zeros if less than 32 bytes\n        exp_head_bytes = exp_head_bytes.rjust(32, b\"\\0\")\n\n        return int.from_bytes(exp_head_bytes[:32], byteorder=\"big\")\n\n\nclass ModExpOutput(TestParameterGroup):\n    \"\"\"\n    Expected test result.\n\n    Attributes:\n      call_success (bool): The return_code from CALL, 0 indicates\n                           unsuccessful call (out-of-gas), 1 indicates call\n                           succeeded.\n      returned_data(str): The output returnData is the expected\n                          output of the call.\n\n    \"\"\"\n\n    call_success: bool = True\n    returned_data: Bytes\n"
  },
  {
    "path": "tests/byzantium/eip198_modexp_precompile/test_modexp.py",
    "content": "\"\"\"\nTest [EIP-198: MODEXP Precompile](https://eips.ethereum.org/EIPS/eip-198).\n\nTests the MODEXP precompile, located at address 0x0000..0005. Test cases\nfrom the EIP are labelled with `EIP-198-caseX` in the test id.\n\"\"\"\n\nimport pytest\n\nfrom ethereum_test_tools import (\n    Account,\n    Alloc,\n    Bytes,\n    Environment,\n    StateTestFiller,\n    Transaction,\n    compute_create_address,\n)\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .helpers import ModExpInput, ModExpOutput\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-198.md\"\nREFERENCE_SPEC_VERSION = \"5c8f066acb210c704ef80c1033a941aa5374aac5\"\n\n\n@pytest.mark.valid_from(\"Byzantium\")\n@pytest.mark.parametrize(\n    [\"mod_exp_input\", \"output\"],\n    [\n        (\n            ModExpInput(base=\"\", exponent=\"\", modulus=\"02\"),\n            ModExpOutput(returned_data=\"0x01\"),\n        ),\n        (\n            ModExpInput(base=\"\", exponent=\"\", modulus=\"0002\"),\n            ModExpOutput(returned_data=\"0x0001\"),\n        ),\n        (\n            ModExpInput(base=\"00\", exponent=\"00\", modulus=\"02\"),\n            ModExpOutput(returned_data=\"0x01\"),\n        ),\n        (\n            ModExpInput(base=\"\", exponent=\"01\", modulus=\"02\"),\n            ModExpOutput(returned_data=\"0x00\"),\n        ),\n        (\n            ModExpInput(base=\"01\", exponent=\"01\", modulus=\"02\"),\n            ModExpOutput(returned_data=\"0x01\"),\n        ),\n        (\n            ModExpInput(base=\"02\", exponent=\"01\", modulus=\"03\"),\n            ModExpOutput(returned_data=\"0x02\"),\n        ),\n        (\n            ModExpInput(base=\"02\", exponent=\"02\", modulus=\"05\"),\n            ModExpOutput(returned_data=\"0x04\"),\n        ),\n        (\n            ModExpInput(base=\"\", exponent=\"\", modulus=\"\"),\n            ModExpOutput(returned_data=\"0x\"),\n        ),\n        (\n            ModExpInput(base=\"\", exponent=\"\", modulus=\"00\"),\n            ModExpOutput(returned_data=\"0x00\"),\n        ),\n        (\n            ModExpInput(base=\"\", exponent=\"\", modulus=\"01\"),\n            ModExpOutput(returned_data=\"0x00\"),\n        ),\n        (\n            ModExpInput(base=\"\", exponent=\"\", modulus=\"0001\"),\n            ModExpOutput(returned_data=\"0x0000\"),\n        ),\n        (\n            ModExpInput(\n                base=\"\",\n                exponent=\"\",\n                modulus=\"\",\n                declared_exponent_length=2**32,\n                declared_modulus_length=1,\n            ),\n            ModExpOutput(returned_data=\"0x00\", call_success=False),\n        ),\n        # Test cases from EIP 198.\n        pytest.param(\n            ModExpInput(\n                base=\"03\",\n                exponent=\"fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2e\",\n                modulus=\"fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f\",\n            ),\n            ModExpOutput(\n                returned_data=\"0000000000000000000000000000000000000000000000000000000000000001\",\n            ),\n            id=\"EIP-198-case1\",\n        ),\n        pytest.param(\n            ModExpInput(\n                base=\"\",\n                exponent=\"fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2e\",\n                modulus=\"fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f\",\n            ),\n            ModExpOutput(\n                returned_data=\"0000000000000000000000000000000000000000000000000000000000000000\",\n            ),\n            id=\"EIP-198-case2\",\n        ),\n        pytest.param(  # Note: This is the only test case which goes out-of-\n            # gas.\n            Bytes(\n                \"0000000000000000000000000000000000000000000000000000000000000000\"\n                \"0000000000000000000000000000000000000000000000000000000000000020\"\n                \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n                \"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\"\n                \"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd\"\n            ),\n            ModExpOutput(\n                call_success=False,\n                returned_data=\"0000000000000000000000000000000000000000000000000000000000000000\",\n            ),\n            id=\"EIP-198-case3-raw-input-out-of-gas\",\n        ),\n        pytest.param(\n            ModExpInput(\n                base=\"03\",\n                exponent=\"ffff\",\n                modulus=\"8000000000000000000000000000000000000000000000000000000000000000\",\n                extra_data=\"07\",\n            ),\n            ModExpOutput(\n                returned_data=\"0x3b01b01ac41f2d6e917c6d6a221ce793802469026d9ab7578fa2e79e4da6aaab\",\n            ),\n            id=\"EIP-198-case4-extra-data_07\",\n        ),\n        pytest.param(\n            Bytes(\n                \"0000000000000000000000000000000000000000000000000000000000000001\"\n                \"0000000000000000000000000000000000000000000000000000000000000002\"\n                \"0000000000000000000000000000000000000000000000000000000000000020\"\n                \"03\"\n                \"ffff\"\n                \"80\"\n            ),\n            ModExpOutput(\n                returned_data=\"0x3b01b01ac41f2d6e917c6d6a221ce793802469026d9ab7578fa2e79e4da6aaab\",\n            ),\n            id=\"EIP-198-case5-raw-input\",\n        ),\n        pytest.param(\n            Bytes(\n                \"0000000000000000000000000000000000000000000000000000000000000001\"\n                \"0000000000000000000000000000000000000000000000008000000000000020\"\n                \"0000000000000000000000000000000000000000000000000000000000000001\"\n                \"80\"\n            ),\n            ModExpOutput(\n                call_success=False,\n                returned_data=\"0000000000000000000000000000000000000000000000000000000000000000\",\n            ),\n            id=\"large-exponent-length-0x80000000-out-of-gas\",\n        ),\n        pytest.param(\n            Bytes(\n                \"0000000000000000000000000000000000000000000000000000000000000001\"\n                \"0000000000000000000000000000000000000000000000004000000000000020\"\n                \"0000000000000000000000000000000000000000000000000000000000000001\"\n                \"80\"\n            ),\n            ModExpOutput(\n                call_success=False,\n                returned_data=\"0000000000000000000000000000000000000000000000000000000000000000\",\n            ),\n            id=\"large-exponent-length-0x40000000-out-of-gas\",\n        ),\n        pytest.param(\n            Bytes(\n                \"0000000000000000000000000000000000000000000000000000000000000001\"\n                \"0000000000000000000000000000000000000000000000002000000000000020\"\n                \"0000000000000000000000000000000000000000000000000000000000000001\"\n                \"80\"\n            ),\n            ModExpOutput(\n                call_success=False,\n                returned_data=\"0000000000000000000000000000000000000000000000000000000000000000\",\n            ),\n            id=\"large-exponent-length-0x20000000-out-of-gas\",\n        ),\n        pytest.param(\n            Bytes(\n                \"0000000000000000000000000000000000000000000000000000000000000001\"\n                \"0000000000000000000000000000000000000000000000001000000000000020\"\n                \"0000000000000000000000000000000000000000000000000000000000000001\"\n                \"80\"\n            ),\n            ModExpOutput(\n                call_success=False,\n                returned_data=\"0000000000000000000000000000000000000000000000000000000000000000\",\n            ),\n            id=\"large-exponent-length-0x10000000-out-of-gas\",\n        ),\n        pytest.param(\n            Bytes(\n                \"0000000000000000000000000000000000000000000000000000000000000001\"\n                \"0000000000000000000000000000000000000000000000000000000080000020\"\n                \"0000000000000000000000000000000000000000000000000000000000000001\"\n                \"80\"\n            ),\n            ModExpOutput(\n                call_success=False,\n                returned_data=\"0000000000000000000000000000000000000000000000000000000000000000\",\n            ),\n            id=\"large-modulus-length-0x80000020-out-of-gas\",\n        ),\n        pytest.param(\n            Bytes(\n                \"0000000000000000000000000000000000000000000000000000000000000001\"\n                \"0000000000000000000000000000000000000000000000000000000040000020\"\n                \"0000000000000000000000000000000000000000000000000000000000000001\"\n                \"80\"\n            ),\n            ModExpOutput(\n                call_success=False,\n                returned_data=\"0000000000000000000000000000000000000000000000000000000000000000\",\n            ),\n            id=\"large-modulus-length-0x40000020-out-of-gas\",\n        ),\n        pytest.param(\n            Bytes(\n                \"0000000000000000000000000000000000000000000000000000000000000001\"\n                \"0000000000000000000000000000000000000000000000000000000020000020\"\n                \"0000000000000000000000000000000000000000000000000000000000000001\"\n                \"80\"\n            ),\n            ModExpOutput(\n                call_success=False,\n                returned_data=\"0000000000000000000000000000000000000000000000000000000000000000\",\n            ),\n            id=\"large-modulus-length-0x20000020-out-of-gas\",\n        ),\n        pytest.param(\n            Bytes(\n                \"0000000000000000000000000000000000000000000000000000000000000001\"\n                \"0000000000000000000000000000000000000000000000000000000000000040\"\n                \"00000000000000000000000000000000000000000000000000000000ffffffff\"\n                \"80\"\n            ),\n            ModExpOutput(\n                call_success=False,\n                returned_data=\"0000000000000000000000000000000000000000000000000000000000000000\",\n            ),\n            id=\"large-modulus-length-0xffffffff-out-of-gas\",\n        ),\n        pytest.param(\n            Bytes(\n                \"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9\"\n                \"0000000000000000000000000000000000000000000000000000000000000001\"\n                \"0000000000000000000000000000000000000000000000000000000000000001\"\n            ),\n            ModExpOutput(\n                call_success=False,\n                returned_data=\"0000000000000000000000000000000000000000000000000000000000000000\",\n            ),\n            # FIXME\n            marks=pytest.mark.skip(\n                reason=(\n                    \"EELS bug: U256 overflow in modexp pointer arithmetic \"\n                    \"before Osaka - see github.com/ethereum/execution-specs/issues/1465\"\n                )\n            ),\n            id=\"max-base-length-overflow-out-of-gas\",\n        ),\n        pytest.param(\n            Bytes(\"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0\"),\n            ModExpOutput(\n                call_success=False,\n                returned_data=\"0000000000000000000000000000000000000000000000000000000000000000\",\n            ),\n            # FIXME\n            marks=pytest.mark.skip(\n                reason=(\n                    \"EELS bug: U256 overflow in modexp pointer arithmetic \"\n                    \"before Osaka - see github.com/ethereum/execution-specs/issues/1465\"\n                )\n            ),\n            id=\"immunefi-38958-by-omik-overflow\",\n        ),\n    ],\n    ids=lambda param: param.__repr__(),  # only required to remove parameter\n    # names (input/output)\n)\ndef test_modexp(\n    state_test: StateTestFiller,\n    mod_exp_input: ModExpInput | Bytes,\n    output: ModExpOutput,\n    pre: Alloc,\n) -> None:\n    \"\"\"Test the MODEXP precompile.\"\"\"\n    env = Environment()\n    sender = pre.fund_eoa()\n\n    account = pre.deploy_contract(\n        # Store all CALLDATA into memory (offset 0)\n        Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE())\n        # Store the returned CALL status (success = 1, fail = 0) into slot 0:\n        + Op.SSTORE(\n            0,\n            # Setup stack to CALL into ModExp with the CALLDATA and CALL into\n            # it (+ pop value)\n            Op.CALL(Op.GAS(), 0x05, 0, 0, Op.CALLDATASIZE(), 0, 0),\n        )\n        # Store contract deployment code to deploy the returned data from\n        # ModExp as contract code (16 bytes)\n        + Op.MSTORE(\n            0,\n            (\n                # Need to `ljust` this PUSH32 in order to ensure the code\n                # starts in memory at offset 0 (memory right-aligns stack items\n                # which are not 32 bytes)\n                Op.PUSH32(\n                    bytes(\n                        Op.CODECOPY(0, 16, Op.SUB(Op.CODESIZE(), 16))\n                        + Op.RETURN(0, Op.SUB(Op.CODESIZE, 16))\n                    ).ljust(32, bytes(1))\n                )\n            ),\n        )\n        # RETURNDATACOPY the returned data from ModExp into memory (offset 16\n        # bytes)\n        + Op.RETURNDATACOPY(16, 0, Op.RETURNDATASIZE())\n        # CREATE contract with the deployment code + the returned data from\n        # ModExp\n        + Op.CREATE(0, 0, Op.ADD(16, Op.RETURNDATASIZE()))\n        # STOP (handy for tracing)\n        + Op.STOP(),\n    )\n\n    tx = Transaction(\n        ty=0x0,\n        to=account,\n        data=mod_exp_input,\n        gas_limit=500_000,\n        protected=True,\n        sender=sender,\n    )\n\n    post = {}\n    if output.call_success:\n        contract_address = compute_create_address(address=account, nonce=1)\n        post[contract_address] = Account(code=output.returned_data)\n    post[account] = Account(storage={0: output.call_success})\n\n    state_test(env=env, pre=pre, post=post, tx=tx)\n"
  },
  {
    "path": "tests/cancun/__init__.py",
    "content": "\"\"\"\nTest cases for EVM functionality introduced in Cancun.\n\nSee [EIP-7659: Hardfork Meta - Dencun](https://eips.ethereum.org/EIPS/eip-7569)\nfor a list of EIPS included in Dencun (Deneb/Cancun).\n\"\"\"\n"
  },
  {
    "path": "tests/cancun/eip1153_tstore/__init__.py",
    "content": "\"\"\"\n[EIP-1153](https://eips.ethereum.org/EIPS/eip-1153) Tests.\n\"\"\"\n\nfrom enum import Enum, unique\nfrom pprint import pprint\nfrom typing import Any, List\n\nimport pytest\n\nfrom ethereum_test_tools import Opcodes as Op\n\n\nclass PytestParameterEnum(Enum):\n    \"\"\"\n    Helper class for defining Pytest parameters used in test cases.\n\n    This class helps define enum `value`s as `pytest.param` objects that then\n    can be used to create a parametrize decorator that can be applied to tests,\n    for example,\n\n    ```python\n    @TStorageCallContextTestCases.parametrize()\n    def test_function(test_value):\n        pass\n    ```\n\n    Classes which derive from this class must define each test case as a\n    different enum field with a dictionary as value.\n\n    The dictionary must contain:\n      i. A `description` key with a string value describing the test case.\n      ii. (Optional) A `pytest_marks` key with a single mark or list of pytest\n                     marks to apply to the test case. For example:\n        ```\n        pytest_marks=pytest.mark.xfail\n        ```\n        or\n        ```\n        pytest_marks=[pytest.mark.xfail, pytest.mark.skipif]\n        ```\n      iii. (Optional) An `id` key with the name of the test.\n\n    The rest of the keys in the dictionary are the parameters of the test case.\n\n    The test case ID is set as the enum name converted to lowercase.\n    \"\"\"\n\n    def __init__(self, value: dict[str, Any]) -> None:\n        \"\"\"Initialize the enum value.\"\"\"\n        assert isinstance(value, dict)\n        assert \"description\" in value\n        self._value_ = value\n\n    def param(self, names: List[str]) -> Any:\n        \"\"\"Return the `pytest.param` value for this test case.\"\"\"\n        value = self._value_\n        if \"pytest_marks\" in value:\n            marks = {\"marks\": value[\"pytest_marks\"]}\n        else:\n            marks = {}\n        if \"pytest_id\" in value:\n            pytest_id = value[\"pytest_id\"]\n        else:\n            pytest_id = self.name.lower()\n        return pytest.param(*[value[name] for name in names], id=pytest_id, **marks)\n\n    @classmethod\n    def special_keywords(cls) -> List[str]:\n        \"\"\"\n        Return the special dictionary keywords that are not test parameters.\n        \"\"\"\n        return [\"description\", \"pytest_marks\", \"pytest_id\"]\n\n    def names(self) -> List[str]:\n        \"\"\"\n        Return the names of all the parameters included in the enum value dict.\n        \"\"\"\n        return sorted([k for k in self._value_.keys() if k not in self.special_keywords()])\n\n    @property\n    def description(self) -> str:\n        \"\"\"Returns the description of this test case.\"\"\"\n        return self._value_[\"description\"]\n\n    @classmethod\n    def parametrize(cls) -> Any:\n        \"\"\"Return decorator to parametrize a test with this enum.\"\"\"\n        names = None\n        for test_case_names in [test_case.names() for test_case in cls]:\n            if names is None:\n                names = test_case_names\n            else:\n                if set(names) != set(test_case_names):\n                    pprint(names)\n                    pprint(test_case_names)\n                assert set(names) == set(test_case_names), (\n                    \"All test cases must have the same parameter names.\"\n                )\n        assert names is not None, \"Enum must have at least one test case.\"\n\n        return pytest.mark.parametrize(names, [test_case.param(names) for test_case in cls])\n\n\n@unique\nclass CreateOpcodeParams(PytestParameterEnum):\n    \"\"\"\n    Helper enum class to parametrize tests with different contract creation\n    opcodes: CREATE and CREATE2.\n    \"\"\"\n\n    CREATE = {\"opcode\": Op.CREATE, \"description\": \"Test CREATE opcode.\"}\n    CREATE2 = {\"opcode\": Op.CREATE2, \"description\": \"Test CREATE2 opcode.\"}\n"
  },
  {
    "path": "tests/cancun/eip1153_tstore/spec.py",
    "content": "\"\"\"Defines EIP-1153 specification constants and functions.\"\"\"\n\nfrom dataclasses import dataclass\n\n\n@dataclass(frozen=True)\nclass ReferenceSpec:\n    \"\"\"Defines the reference spec version and git path.\"\"\"\n\n    git_path: str\n    version: str\n\n\nref_spec_1153 = ReferenceSpec(\"EIPS/eip-1153.md\", \"1eb863b534a5a3e19e9c196ab2a7f3db4bb9da17\")\n\n\n@dataclass(frozen=True)\nclass Spec:\n    \"\"\"\n    Parameters from the EIP-1153 specifications as defined at\n    https://eips.ethereum.org/EIPS/eip-1153.\n    \"\"\"\n\n    TLOAD_OPCODE_BYTE = 0x5C\n    TSTORE_OPCODE_BYTE = 0x5D\n    TLOAD_GAS_COST = 100\n    TSTORE_GAS_COST = 100\n"
  },
  {
    "path": "tests/cancun/eip1153_tstore/test_basic_tload.py",
    "content": "\"\"\"\nEthereum Transient Storage EIP Tests\nhttps://eips.ethereum.org/EIPS/eip-1153.\n\"\"\"\n\nfrom typing import Dict, Union\n\nimport pytest\n\nfrom ethereum_test_tools import Account, Address, Alloc, Environment, StateTestFiller, Transaction\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .spec import Spec, ref_spec_1153\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_1153.git_path\nREFERENCE_SPEC_VERSION = ref_spec_1153.version\n\n\n@pytest.mark.ported_from(\n    [\n        \"https://github.com/ethereum/tests/blob/v13.3/src/GeneralStateTestsFiller/Cancun/stEIP1153-transientStorage/01_tloadBeginningTxnFiller.yml\",\n    ],\n    pr=[\"https://github.com/ethereum/execution-spec-tests/pull/440\"],\n)\n@pytest.mark.valid_from(\"Cancun\")\ndef test_basic_tload_transaction_begin(\n    state_test: StateTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    Ported .json vectors.\n\n    (01_tloadBeginningTxnFiller.yml)\n    load arbitrary value is 0 at beginning of transaction\n    \"\"\"\n    slot_tload_at_transaction_begin_result = 1\n    slot_code_worked = 2\n\n    address_to = pre.deploy_contract(\n        code=Op.JUMPDEST()\n        # 01 test\n        + Op.SSTORE(slot_tload_at_transaction_begin_result, Op.TLOAD(0))\n        + Op.SSTORE(slot_code_worked, 1),\n        storage={\n            slot_tload_at_transaction_begin_result: 0xFF,\n        },\n    )\n\n    post = {\n        address_to: Account(\n            storage={\n                slot_tload_at_transaction_begin_result: 0x00,\n                slot_code_worked: 0x01,\n            }\n        )\n    }\n\n    tx = Transaction(\n        sender=pre.fund_eoa(7_000_000_000_000_000_000),\n        to=address_to,\n        gas_price=10,\n        data=b\"\",\n        gas_limit=5000000,\n        value=0,\n    )\n\n    state_test(env=Environment(), pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.ported_from(\n    [\n        \"https://github.com/ethereum/tests/blob/v13.3/src/GeneralStateTestsFiller/Cancun/stEIP1153-transientStorage/02_tloadAfterTstoreFiller.yml\",\n    ],\n    pr=[\"https://github.com/ethereum/execution-spec-tests/pull/440\"],\n)\n@pytest.mark.valid_from(\"Cancun\")\ndef test_basic_tload_works(\n    state_test: StateTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    Ported .json vectors.\n\n    (02_tloadAfterTstoreFiller.yml)\n    tload from same slot after tstore returns correct value\n    \"\"\"\n    tstore_value = 88\n\n    slot_tload_after_tstore_result = 0\n    slot_tload_after_tstore_result_second_time = 1\n    slot_code_worked = 2\n\n    address_to = pre.deploy_contract(\n        code=Op.JUMPDEST()\n        # 02 test\n        + Op.TSTORE(2, tstore_value)\n        + Op.SSTORE(slot_tload_after_tstore_result, Op.TLOAD(2))\n        + Op.SSTORE(slot_tload_after_tstore_result_second_time, Op.TLOAD(2))\n        + Op.SSTORE(slot_code_worked, 1),\n        storage={\n            slot_tload_after_tstore_result: 0xFF,\n            slot_tload_after_tstore_result_second_time: 0xFF,\n        },\n    )\n\n    post = {\n        address_to: Account(\n            storage={\n                slot_tload_after_tstore_result: tstore_value,\n                slot_tload_after_tstore_result_second_time: tstore_value,\n                slot_code_worked: 0x01,\n            }\n        )\n    }\n\n    tx = Transaction(\n        sender=pre.fund_eoa(7_000_000_000_000_000_000),\n        to=address_to,\n        gas_price=10,\n        data=b\"\",\n        gas_limit=5000000,\n        value=0,\n    )\n\n    state_test(env=Environment(), pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.ported_from(\n    [\n        \"https://github.com/ethereum/tests/blob/v13.3/src/GeneralStateTestsFiller/Cancun/stEIP1153-transientStorage/03_tloadAfterStoreIs0Filler.yml\",\n    ],\n    pr=[\"https://github.com/ethereum/execution-spec-tests/pull/440\"],\n)\n@pytest.mark.valid_from(\"Cancun\")\ndef test_basic_tload_other_after_tstore(\n    state_test: StateTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    Ported .json vectors.\n\n    (03_tloadAfterStoreIs0Filler.yml)\n    Loading any other slot after storing to a slot returns 0.\n    \"\"\"\n    tstore_value = 88\n\n    slot_tload_untouched_slot_after_tstore_result = 1\n    slot_code_worked = 2\n\n    address_to = pre.deploy_contract(\n        code=Op.JUMPDEST()\n        # 03 test\n        + Op.TSTORE(3, tstore_value)\n        + Op.SSTORE(slot_tload_untouched_slot_after_tstore_result, Op.TLOAD(0))\n        + Op.SSTORE(slot_code_worked, 1),\n        storage={\n            slot_tload_untouched_slot_after_tstore_result: 0xFF,\n        },\n    )\n\n    post = {\n        address_to: Account(\n            storage={\n                slot_tload_untouched_slot_after_tstore_result: 0x00,\n                slot_code_worked: 0x01,\n            }\n        )\n    }\n\n    tx = Transaction(\n        sender=pre.fund_eoa(7_000_000_000_000_000_000),\n        to=address_to,\n        gas_price=10,\n        data=b\"\",\n        gas_limit=5000000,\n        value=0,\n    )\n\n    state_test(env=Environment(), pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.ported_from(\n    [\n        \"https://github.com/ethereum/tests/blob/v13.3/src/GeneralStateTestsFiller/Cancun/stEIP1153-transientStorage/16_tloadGasFiller.yml\",\n    ],\n    pr=[\"https://github.com/ethereum/execution-spec-tests/pull/440\"],\n)\n@pytest.mark.valid_from(\"Cancun\")\ndef test_basic_tload_gasprice(\n    state_test: StateTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    Ported .json vectors.\n\n    (16_tloadGasFiller.yml)\n    tload costs 100 gas same as a warm sload\n    \"\"\"\n    slot_tload_nonzero_gas_price_result = 1\n    slot_tload_zero_gas_price_result = 2\n    slot_code_worked = 3\n\n    \"\"\"\n    N         OPNAME       GAS_COST  TOTAL_GAS REMAINING_GAS     STACK\n    28-1         MSTORE         2     20748   4958252    2:[4ba82f,0,]\n                 MSTORE [0] = 4958255\n    29-1          PUSH1         3     20754   4958246\n    30-1          TLOAD       100     20757   4958243    1:[10,]\n    31-1            GAS         2     20857   4958143    1:[2,]\n    32-1          PUSH1         3     20859   4958141    2:[2,4ba7bd,]\n    33-1         MSTORE         6     20862   4958138    3:[2,4ba7bd,20,]\n                 MSTORE [32] = 4958141\n    \"\"\"\n    extra_opcode_gas = 11  # mstore(3), push1(3),gas(2),push1(3)\n\n    address_to = pre.deploy_contract(\n        code=Op.JUMPDEST()\n        # 16 test\n        + Op.TSTORE(16, 2)\n        + Op.MSTORE(0, Op.GAS())  # hot load the memory to make the extra_opcode_gas be 11\n        + Op.MSTORE(0, Op.GAS())\n        + Op.TLOAD(16)\n        + Op.MSTORE(32, Op.GAS())\n        + Op.SSTORE(slot_tload_nonzero_gas_price_result, Op.SUB(Op.MLOAD(0), Op.MLOAD(32)))\n        + Op.SSTORE(\n            slot_tload_nonzero_gas_price_result,\n            Op.SUB(Op.SLOAD(slot_tload_nonzero_gas_price_result), extra_opcode_gas),\n        )\n        + Op.MSTORE(0, Op.GAS())\n        + Op.TLOAD(5)  # tload slot at 5 is 0\n        + Op.MSTORE(32, Op.GAS())\n        + Op.SSTORE(slot_tload_zero_gas_price_result, Op.SUB(Op.MLOAD(0), Op.MLOAD(32)))\n        + Op.SSTORE(\n            slot_tload_zero_gas_price_result,\n            Op.SUB(Op.SLOAD(slot_tload_zero_gas_price_result), extra_opcode_gas),\n        )\n        + Op.SSTORE(slot_code_worked, 1),\n        storage={\n            slot_tload_nonzero_gas_price_result: 0xFF,\n            slot_tload_zero_gas_price_result: 0xFF,\n        },\n    )\n\n    post = {\n        address_to: Account(\n            storage={\n                slot_tload_nonzero_gas_price_result: Spec.TLOAD_GAS_COST,\n                slot_tload_zero_gas_price_result: Spec.TLOAD_GAS_COST,\n                slot_code_worked: 0x01,\n            }\n        )\n    }\n\n    tx = Transaction(\n        sender=pre.fund_eoa(7_000_000_000_000_000_000),\n        to=address_to,\n        gas_price=10,\n        data=b\"\",\n        gas_limit=5000000,\n        value=0,\n    )\n\n    state_test(env=Environment(), pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.ported_from(\n    [\n        \"https://github.com/ethereum/tests/blob/v13.3/src/GeneralStateTestsFiller/Cancun/stEIP1153-transientStorage/18_tloadAfterStoreFiller.yml\",\n    ],\n    pr=[\"https://github.com/ethereum/execution-spec-tests/pull/440\"],\n)\n@pytest.mark.valid_from(\"Cancun\")\ndef test_basic_tload_after_store(\n    state_test: StateTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    Ported .json vectors.\n\n    (18_tloadAfterStoreFiller.yml)\n    tload from same slot after store returns 0\n    \"\"\"\n    slot_tload_from_sstore_result = 1\n    slot_code_worked = 2\n\n    address_to = pre.deploy_contract(\n        code=Op.JUMPDEST()\n        # 18 test\n        + Op.SSTORE(slot_tload_from_sstore_result, 22)\n        + Op.SSTORE(slot_tload_from_sstore_result, Op.TLOAD(slot_tload_from_sstore_result))\n        + Op.SSTORE(slot_code_worked, 1),\n        storage={\n            slot_tload_from_sstore_result: 0xFF,\n        },\n    )\n\n    post: Dict[Address, Union[Account, object]] = {}\n    post[address_to] = Account(\n        storage={\n            slot_tload_from_sstore_result: 0x00,\n            slot_code_worked: 0x01,\n        }\n    )\n\n    tx = Transaction(\n        sender=pre.fund_eoa(7_000_000_000_000_000_000),\n        to=address_to,\n        gas_price=10,\n        data=b\"\",\n        gas_limit=5000000,\n        value=0,\n    )\n\n    state_test(env=Environment(), pre=pre, post=post, tx=tx)\n"
  },
  {
    "path": "tests/cancun/eip1153_tstore/test_tload_calls.py",
    "content": "\"\"\"\n[EIP-1153](https://eips.ethereum.org/EIPS/eip-1153) Transient Storage tests.\n\"\"\"\n\nimport pytest\n\nfrom ethereum_test_tools import Account, Address, Alloc, Environment, StateTestFiller, Transaction\nfrom ethereum_test_vm import Bytecode\nfrom ethereum_test_vm import Opcodes as Op\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-1153.md\"\nREFERENCE_SPEC_VERSION = \"1eb863b534a5a3e19e9c196ab2a7f3db4bb9da17\"\n\n\n@pytest.mark.ported_from(\n    [\n        \"https://github.com/ethereum/tests/blob/v13.3/src/GeneralStateTestsFiller/Cancun/stEIP1153-transientStorage/04_tloadAfterCallFiller.yml\",\n        \"https://github.com/ethereum/tests/blob/v13.3/src/GeneralStateTestsFiller/Cancun/stEIP1153-transientStorage/12_tloadDelegateCallFiller.yml\",\n    ],\n    pr=[\"https://github.com/ethereum/execution-spec-tests/pull/440\"],\n)\n@pytest.mark.valid_from(\"Cancun\")\n@pytest.mark.parametrize(\"call_type\", [Op.CALL, Op.CALLCODE, Op.DELEGATECALL])\ndef test_tload_calls(state_test: StateTestFiller, pre: Alloc, call_type: Op) -> None:\n    \"\"\"\n    Ported .json vectors.\n\n    (04_tloadAfterCallFiller.yml) Loading a slot after a call to another\n    contract is 0.\n\n    (12_tloadDelegateCallFiller.yml) delegatecall reads transient storage in\n    the context of the current address\n    \"\"\"\n    # Storage variables\n    slot_a_tload_after_subcall_result = 0\n    slot_a_subcall_result = 1\n    slot_b_subcall_tload_result = 2\n    slot_b_subcall_updated_tload_result = 3\n\n    def make_call(call_type: Op, address: Address) -> Bytecode:\n        if call_type == Op.DELEGATECALL or call_type == Op.STATICCALL:\n            return call_type(Op.GAS(), address, 0, 32, 0, 0)\n        else:\n            return call_type(Op.GAS(), address, 0, 0, 32, 0, 0)\n\n    address_call = pre.deploy_contract(\n        balance=1_000_000_000_000_000_000,\n        code=Op.JUMPDEST()\n        + Op.SSTORE(slot_b_subcall_tload_result, Op.TLOAD(0))\n        + Op.TSTORE(0, 20)\n        + Op.SSTORE(slot_b_subcall_updated_tload_result, Op.TLOAD(0)),\n        storage={\n            slot_b_subcall_tload_result: 0xFF,\n            slot_b_subcall_updated_tload_result: 0xFF,\n        },\n    )\n\n    address_to = pre.deploy_contract(\n        balance=1_000_000_000_000_000_000,\n        code=Op.JUMPDEST()\n        + Op.TSTORE(0, 10)\n        + Op.SSTORE(slot_a_subcall_result, make_call(call_type, address_call))\n        + Op.SSTORE(slot_a_tload_after_subcall_result, Op.TLOAD(0)),\n        storage={\n            slot_a_subcall_result: 0xFF,\n            slot_a_tload_after_subcall_result: 0xFF,\n        },\n    )\n\n    post = {\n        address_to: Account(\n            storage={\n                # other calls don't change context, there for tload updated in\n                # this account\n                slot_a_tload_after_subcall_result: 10 if call_type == Op.CALL else 20,\n                slot_a_subcall_result: 1,\n                # since context unchanged the subcall works as if continued\n                # execution\n                slot_b_subcall_tload_result: 0 if call_type == Op.CALL else 10,\n                slot_b_subcall_updated_tload_result: 0 if call_type == Op.CALL else 20,\n            }\n        ),\n        address_call: Account(\n            storage={\n                slot_b_subcall_tload_result: 0 if call_type == Op.CALL else 0xFF,\n                slot_b_subcall_updated_tload_result: 20 if call_type == Op.CALL else 0xFF,\n            }\n        ),\n    }\n\n    tx = Transaction(\n        sender=pre.fund_eoa(7_000_000_000_000_000_000),\n        to=address_to,\n        gas_price=10,\n        data=b\"\",\n        gas_limit=5000000,\n        value=0,\n    )\n\n    state_test(env=Environment(), pre=pre, post=post, tx=tx)\n"
  },
  {
    "path": "tests/cancun/eip1153_tstore/test_tload_reentrancy.py",
    "content": "\"\"\"\n[EIP-1153](https://eips.ethereum.org/EIPS/eip-1153) Transient Storage tests.\n\"\"\"\n\nfrom enum import Enum\n\nimport pytest\n\nfrom ethereum_test_tools import (\n    Account,\n    Address,\n    Alloc,\n    Case,\n    Environment,\n    Hash,\n    StateTestFiller,\n    Switch,\n    Transaction,\n)\nfrom ethereum_test_vm import Bytecode\nfrom ethereum_test_vm import Macros as Om\nfrom ethereum_test_vm import Opcodes as Op\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-1153.md\"\nREFERENCE_SPEC_VERSION = \"1eb863b534a5a3e19e9c196ab2a7f3db4bb9da17\"\n\n\nclass CallDestType(Enum):\n    \"\"\"Call dest type.\"\"\"\n\n    REENTRANCY = 1\n    EXTERNAL_CALL = 2\n\n\n@pytest.mark.ported_from(\n    [\n        \"https://github.com/ethereum/tests/blob/v13.3/src/GeneralStateTestsFiller/Cancun/stEIP1153-transientStorage/05_tloadReentrancyFiller.yml\",\n    ],\n    pr=[\"https://github.com/ethereum/execution-spec-tests/pull/440\"],\n)\n@pytest.mark.valid_from(\"Cancun\")\n@pytest.mark.parametrize(\"call_type\", [Op.CALL, Op.CALLCODE, Op.DELEGATECALL, Op.STATICCALL])\n@pytest.mark.parametrize(\"call_return\", [Op.RETURN, Op.REVERT, Om.OOG])\n@pytest.mark.parametrize(\"call_dest_type\", [CallDestType.REENTRANCY, CallDestType.EXTERNAL_CALL])\ndef test_tload_reentrancy(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    call_type: Op,\n    call_return: Op,\n    call_dest_type: CallDestType,\n) -> None:\n    \"\"\"\n    Ported .json vectors.\n\n    (05_tloadReentrancyFiller.yml) Reentrant calls access the same transient\n    storage\n    \"\"\"\n    tload_value = 44\n    empty_value = 0\n\n    # Storage variables\n    slot_tload_in_subcall_result = 1\n    slot_tload_after_subcall_result = 2\n    slot_subcall_worked = 3\n    slot_code_worked = 4\n\n    # Function names\n    do_load = 1\n    do_reenter = 2\n    call_dest_address: Bytecode | Address\n    call_dest_address = Op.ADDRESS()\n\n    def make_call(call_type: Op) -> Bytecode:\n        if call_type == Op.DELEGATECALL or call_type == Op.STATICCALL:\n            return call_type(Op.GAS(), call_dest_address, 0, 32, 32, 32)\n        else:\n            return call_type(Op.GAS(), call_dest_address, 0, 0, 32, 32, 32)\n\n    subcall_code = Op.MSTORE(0, Op.TLOAD(0)) + call_return(0, 32)\n\n    address_code = pre.deploy_contract(\n        balance=0,\n        code=subcall_code,\n        storage={},\n    )\n    if call_dest_type == CallDestType.EXTERNAL_CALL:\n        call_dest_address = address_code\n\n    address_to = pre.deploy_contract(\n        balance=1_000_000_000_000_000_000,\n        code=Switch(\n            cases=[\n                Case(\n                    condition=Op.EQ(Op.CALLDATALOAD(0), do_load),\n                    action=subcall_code,\n                ),\n                Case(\n                    condition=Op.EQ(Op.CALLDATALOAD(0), do_reenter),\n                    action=Op.TSTORE(0, tload_value)\n                    + Op.MSTORE(0, do_load)\n                    + Op.MSTORE(32, 0xFF)\n                    + Op.SSTORE(slot_subcall_worked, make_call(call_type))\n                    + Op.SSTORE(slot_tload_in_subcall_result, Op.MLOAD(32))\n                    + Op.SSTORE(slot_tload_after_subcall_result, Op.TLOAD(0))\n                    + Op.SSTORE(slot_code_worked, 1),\n                ),\n            ],\n            default_action=None,\n        ),\n        storage={\n            slot_tload_in_subcall_result: 0xFF,\n            slot_tload_after_subcall_result: 0xFF,\n            slot_subcall_worked: 0xFF,\n            slot_code_worked: 0xFF,\n        },\n    )\n\n    if call_dest_type == CallDestType.REENTRANCY:\n        post = {\n            address_to: Account(\n                storage={\n                    slot_code_worked: 1,\n                    # if call OOG, we fail to obtain the result\n                    slot_tload_in_subcall_result: 0xFF if call_return == Om.OOG else tload_value,\n                    slot_tload_after_subcall_result: tload_value,\n                    slot_subcall_worked: (\n                        0 if call_return == Op.REVERT or call_return == Om.OOG else 1\n                    ),\n                }\n            )\n        }\n    else:\n        post = {\n            address_to: Account(\n                storage={\n                    slot_code_worked: 1,\n                    slot_tload_in_subcall_result: (\n                        0xFF  # if call OOG, we fail to obtain the result\n                        if call_return == Om.OOG\n                        # else delegate and callcode are working in the same\n                        # context so tload works\n                        else (\n                            tload_value\n                            if call_type == Op.DELEGATECALL or call_type == Op.CALLCODE\n                            else empty_value\n                        )\n                    ),\n                    # no subcall errors can change the tload result\n                    slot_tload_after_subcall_result: 44,\n                    slot_subcall_worked: (\n                        0 if call_return == Op.REVERT or call_return == Om.OOG else 1\n                    ),\n                }\n            )\n        }\n\n    tx = Transaction(\n        sender=pre.fund_eoa(7_000_000_000_000_000_000),\n        to=address_to,\n        gas_price=10,\n        data=Hash(do_reenter),\n        gas_limit=5000000,\n        value=0,\n    )\n\n    state_test(env=Environment(), pre=pre, post=post, tx=tx)\n"
  },
  {
    "path": "tests/cancun/eip1153_tstore/test_tstorage.py",
    "content": "\"\"\"\nEIP-1153 Transient Storage opcode tests.\n\nPorts and extends some tests from\n[ethereum/tests/src/EIPTestsFiller/StateTests/stEIP1153-transientStorage/](https://github.com/ethereum/tests/blob/9b00b68593f5869eb51a6659e1cc983e875e616b/src/EIPTestsFiller/StateTests/stEIP1153-transientStorage).\n\"\"\"\n\nfrom enum import unique\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    Account,\n    Alloc,\n    Bytecode,\n    CodeGasMeasure,\n    Environment,\n    StateTestFiller,\n    Transaction,\n)\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom . import PytestParameterEnum\nfrom .spec import Spec, ref_spec_1153\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_1153.git_path\nREFERENCE_SPEC_VERSION = ref_spec_1153.version\n\npytestmark = [pytest.mark.valid_from(\"Cancun\")]\n\ncode_address = 0x100\n\n\ndef test_transient_storage_unset_values(state_test: StateTestFiller, pre: Alloc) -> None:\n    \"\"\"\n    Test that tload returns zero for unset values. Loading an arbitrary value\n    is 0 at beginning of transaction: TLOAD(x) is 0.\n\n    Based on\n    [ethereum/tests/.../01_tloadBeginningTxnFiller.yml]\n    (https://github.com/ethereum/tests/blob/\n    9b00b68593f5869eb51a6659e1cc983e875e616b/src/EIPTestsFiller/StateTests/\n    stEIP1153-transientStorage/01_tloadBeginningTxnFiller.yml)\",\n    \"\"\"\n    env = Environment()\n\n    slots_under_test = [0, 1, 2, 2**128, 2**256 - 1]\n    code = sum(Op.SSTORE(slot, Op.TLOAD(slot)) for slot in slots_under_test)\n\n    code_address = pre.deploy_contract(\n        code=code,  # type: ignore\n        storage=dict.fromkeys(slots_under_test, 1),\n    )\n\n    tx = Transaction(\n        sender=pre.fund_eoa(),\n        to=code_address,\n        gas_limit=1_000_000,\n    )\n\n    post = {code_address: Account(storage=dict.fromkeys(slots_under_test, 0))}\n\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\ndef test_tload_after_tstore(state_test: StateTestFiller, pre: Alloc) -> None:\n    \"\"\"\n    Loading after storing returns the stored value: TSTORE(x, y), TLOAD(x)\n    returns y.\n\n    Based on\n    [ethereum/tests/.../02_tloadAfterTstoreFiller.yml]\n    (https://github.com/ethereum/tests/blob/\n    9b00b68593f5869eb51a6659e1cc983e875e616b/src/EIPTestsFiller/StateTests/\n    stEIP1153-transientStorage/02_tloadAfterTstoreFiller.yml)\",\n    \"\"\"\n    env = Environment()\n\n    slots_under_test = [0, 1, 2, 2**128, 2**256 - 1]\n    code = sum(\n        Op.TSTORE(slot, slot) + Op.SSTORE(slot, Op.TLOAD(slot)) for slot in slots_under_test\n    )\n    code_address = pre.deploy_contract(\n        code=code,  # type: ignore\n        storage=dict.fromkeys(slots_under_test, 0xFF),\n    )\n\n    tx = Transaction(\n        sender=pre.fund_eoa(),\n        to=code_address,\n        gas_limit=1_000_000,\n    )\n\n    post = {code_address: Account(storage={slot: slot for slot in slots_under_test})}\n\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\ndef test_tload_after_sstore(state_test: StateTestFiller, pre: Alloc) -> None:\n    \"\"\"\n    Loading after storing returns the stored value: TSTORE(x, y), TLOAD(x)\n    returns y.\n\n    Based on\n    [ethereum/tests/.../18_tloadAfterStoreFiller.yml]\n    (https://github.com/ethereum/tests/blob/\n    9b00b68593f5869eb51a6659e1cc983e875e616b/src/\n    EIPTestsFiller/StateTests/stEIP1153-transientStorage/\n    18_tloadAfterStoreFiller.yml)\",\n    \"\"\"\n    env = Environment()\n\n    slots_under_test = [1, 3, 2**128, 2**256 - 1]\n    code = sum(\n        Op.SSTORE(slot - 1, 0xFF) + Op.SSTORE(slot, Op.TLOAD(slot - 1))\n        for slot in slots_under_test\n    )\n    code_address = pre.deploy_contract(\n        code=code,  # type: ignore\n        storage=dict.fromkeys(slots_under_test, 1),\n    )\n\n    tx = Transaction(\n        sender=pre.fund_eoa(),\n        to=code_address,\n        gas_limit=1_000_000,\n    )\n\n    post = {\n        code_address: Account(\n            code=code,\n            storage={slot - 1: 0xFF for slot in slots_under_test}\n            | dict.fromkeys(slots_under_test, 0),\n        )\n    }\n\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\ndef test_tload_after_tstore_is_zero(state_test: StateTestFiller, pre: Alloc) -> None:\n    \"\"\"\n    Test that tload returns zero after tstore is called with zero.\n\n    Based on [ethereum/tests/.../03_tloadAfterStoreIs0Filler.yml]\n    (https://github.com/ethereum/tests/blob/\n    9b00b68593f5869eb51a6659e1cc983e875e616b/src/\n    EIPTestsFiller/StateTests/\n    stEIP1153-transientStorage/03_tloadAfterStoreIs0Filler.yml)\",\n    \"\"\"\n    env = Environment()\n\n    slots_to_write = [1, 4, 2**128, 2**256 - 2]\n    slots_to_read = [slot - 1 for slot in slots_to_write] + [slot + 1 for slot in slots_to_write]\n    assert set.intersection(set(slots_to_write), set(slots_to_read)) == set()\n\n    code = sum(Op.TSTORE(slot, 1234) for slot in slots_to_write) + sum(\n        Op.SSTORE(slot, Op.TLOAD(slot)) for slot in slots_to_read\n    )\n\n    code_address = pre.deploy_contract(\n        code=code,  # type: ignore\n        storage=dict.fromkeys(slots_to_write + slots_to_read, 0xFFFF),\n    )\n\n    tx = Transaction(\n        sender=pre.fund_eoa(),\n        to=code_address,\n        gas_limit=1_000_000,\n    )\n\n    post = {\n        code_address: Account(\n            storage=dict.fromkeys(slots_to_read, 0) | dict.fromkeys(slots_to_write, 0xFFFF)\n        )\n    }\n\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\n@unique\nclass GasMeasureTestCases(PytestParameterEnum):\n    \"\"\"Test cases for gas measurement.\"\"\"\n\n    TLOAD = {\n        \"description\": \"Test that tload() of an empty slot consumes the expected gas.\",\n        \"bytecode\": Op.TLOAD(10),\n        \"overhead_cost\": 3,  # 1 x PUSH1\n        \"extra_stack_items\": 1,\n        \"expected_gas\": Spec.TLOAD_GAS_COST,\n    }\n    TSTORE_TLOAD = {\n        \"description\": \"Test that tload() of a used slot consumes the expected gas.\",\n        \"bytecode\": Op.TSTORE(10, 10) + Op.TLOAD(10),\n        \"overhead_cost\": 3 * 3,  # 3 x PUSH1\n        \"extra_stack_items\": 1,\n        \"expected_gas\": Spec.TSTORE_GAS_COST + Spec.TLOAD_GAS_COST,\n    }\n    TSTORE_COLD = {\n        \"description\": \"Test that tstore() of a previously unused slot consumes the expected gas.\",\n        \"bytecode\": Op.TSTORE(10, 10),\n        \"overhead_cost\": 2 * 3,  # 2 x PUSH1\n        \"extra_stack_items\": 0,\n        \"expected_gas\": Spec.TSTORE_GAS_COST,\n    }\n    TSTORE_WARM = {\n        \"description\": \"Test that tstore() of a previously used slot consumes the expected gas.\",\n        \"bytecode\": Op.TSTORE(10, 10) + Op.TSTORE(10, 11),\n        \"overhead_cost\": 4 * 3,  # 4 x PUSH1\n        \"extra_stack_items\": 0,\n        \"expected_gas\": 2 * Spec.TSTORE_GAS_COST,\n    }\n\n\n@GasMeasureTestCases.parametrize()\ndef test_gas_usage(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    bytecode: Bytecode,\n    expected_gas: int,\n    overhead_cost: int,\n    extra_stack_items: int,\n) -> None:\n    \"\"\"Test that tstore and tload consume the expected gas.\"\"\"\n    gas_measure_bytecode = CodeGasMeasure(\n        code=bytecode, overhead_cost=overhead_cost, extra_stack_items=extra_stack_items\n    )\n\n    env = Environment()\n    code_address = pre.deploy_contract(code=gas_measure_bytecode)\n    tx = Transaction(\n        sender=pre.fund_eoa(),\n        to=code_address,\n        gas_limit=1_000_000,\n    )\n    post = {\n        code_address: Account(code=gas_measure_bytecode, storage={0: expected_gas}),\n    }\n    state_test(env=env, pre=pre, tx=tx, post=post)\n\n\n@unique\nclass LoopRunUntilOutOfGasCases(PytestParameterEnum):\n    \"\"\"Test cases to run until out of gas.\"\"\"\n\n    TSTORE = {\n        \"description\": \"Run tstore in loop until out of gas\",\n        \"repeat_bytecode\": Op.TSTORE(Op.GAS, Op.GAS),\n        \"bytecode_repeat_times\": 1000,\n    }\n    TSTORE_WIDE_ADDRESS_SPACE = {\n        \"description\": \"Run tstore in loop until out of gas, using a wide address space\",\n        \"repeat_bytecode\": Op.TSTORE(Op.ADD(Op.SHL(Op.PC, 1), Op.GAS), Op.GAS),\n        \"bytecode_repeat_times\": 32,\n    }\n    TSTORE_TLOAD = {\n        \"description\": \"Run tstore and tload in loop until out of gas\",\n        \"repeat_bytecode\": Op.GAS + Op.DUP1 + Op.DUP1 + Op.TSTORE + Op.TLOAD + Op.POP,\n        \"bytecode_repeat_times\": 1000,\n    }\n\n\ndef max_tx_gas_limit(fork: Fork) -> list[int]:\n    \"\"\"Return the maximum transaction gas limit for the given fork.\"\"\"\n    tx_limit = fork.transaction_gas_limit_cap()\n    return [tx_limit if tx_limit is not None else Environment().gas_limit]\n\n\n@LoopRunUntilOutOfGasCases.parametrize()\n@pytest.mark.slow()\n@pytest.mark.parametrize_by_fork(\"tx_gas_limit\", max_tx_gas_limit)\ndef test_run_until_out_of_gas(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    tx_gas_limit: int,\n    repeat_bytecode: Bytecode,\n    bytecode_repeat_times: int,\n) -> None:\n    \"\"\"Use TSTORE over and over to different keys until we run out of gas.\"\"\"\n    bytecode = Op.JUMPDEST + repeat_bytecode * bytecode_repeat_times + Op.JUMP(Op.PUSH0)\n    code_address = pre.deploy_contract(code=bytecode)\n    tx = Transaction(sender=pre.fund_eoa(), to=code_address, gas_limit=tx_gas_limit)\n    post = {\n        code_address: Account(code=bytecode, storage={}),\n    }\n    state_test(pre=pre, tx=tx, post=post)\n"
  },
  {
    "path": "tests/cancun/eip1153_tstore/test_tstorage_clear_after_tx.py",
    "content": "\"\"\"EIP-1153 Transient Storage tests.\"\"\"\n\nfrom typing import Optional\n\nimport pytest\n\nfrom ethereum_test_tools import (\n    Account,\n    Alloc,\n    Block,\n    BlockchainTestFiller,\n    Environment,\n    EVMCodeType,\n    Initcode,\n    Transaction,\n)\nfrom ethereum_test_types.eof.v1 import Container\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .spec import ref_spec_1153\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_1153.git_path\nREFERENCE_SPEC_VERSION = ref_spec_1153.version\n\n\n@pytest.mark.valid_from(\"Cancun\")\n@pytest.mark.with_all_evm_code_types\ndef test_tstore_clear_after_deployment_tx(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    evm_code_type: EVMCodeType,\n) -> None:\n    \"\"\"\n    First creates a contract, which TSTOREs a value 1 in slot 1. After creating\n    the contract, a new tx will call this contract, storing TLOAD(1) into slot\n    1. The transient storage should be cleared after creating the contract (at\n    tx-level), so the storage should stay empty.\n    \"\"\"\n    env = Environment()\n\n    init_code = Op.TSTORE(1, 1)\n    deploy_code = Op.SSTORE(1, Op.TLOAD(1))\n\n    code: Optional[Container | Initcode] = None\n    if evm_code_type == EVMCodeType.EOF_V1:\n        code = Container.Init(\n            deploy_container=Container.Code(deploy_code + Op.STOP), initcode_prefix=init_code\n        )\n    else:\n        code = Initcode(deploy_code=deploy_code, initcode_prefix=init_code)\n\n    sender = pre.fund_eoa()\n\n    deployment_tx = Transaction(\n        gas_limit=100000,\n        data=code,\n        to=None,\n        sender=sender,\n    )\n\n    address = deployment_tx.created_contract\n\n    invoke_contract_tx = Transaction(gas_limit=100000, to=address, sender=sender)\n\n    txs = [deployment_tx, invoke_contract_tx]\n\n    post = {\n        address: Account(storage={0x01: 0x00}),\n    }\n\n    blockchain_test(genesis_environment=env, pre=pre, post=post, blocks=[Block(txs=txs)])\n\n\n@pytest.mark.valid_from(\"Cancun\")\n@pytest.mark.with_all_evm_code_types\ndef test_tstore_clear_after_tx(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    First SSTOREs the TLOAD value of key 1 in slot 1. Then, it TSTOREs 1 in\n    slot 1. The second tx will re-call the contract. The storage should stay\n    empty, because the transient storage is cleared after the transaction.\n    \"\"\"\n    env = Environment()\n\n    code = Op.SSTORE(1, Op.TLOAD(1)) + Op.TSTORE(1, 1)\n    account = pre.deploy_contract(code)\n\n    sender = pre.fund_eoa()\n\n    poke_tstore_tx = Transaction(\n        gas_limit=100000,\n        to=account,\n        sender=sender,\n    )\n\n    re_poke_tstore_tx = Transaction(gas_limit=100000, to=account, sender=sender)\n\n    txs = [poke_tstore_tx, re_poke_tstore_tx]\n\n    post = {\n        account: Account(storage={0x01: 0x00}),\n    }\n\n    blockchain_test(genesis_environment=env, pre=pre, post=post, blocks=[Block(txs=txs)])\n"
  },
  {
    "path": "tests/cancun/eip1153_tstore/test_tstorage_create_contexts.py",
    "content": "\"\"\"\nTest transient storage in contract creation contexts.\n\"\"\"\n\nfrom enum import unique\n\nimport pytest\n\nfrom ethereum_test_tools import (\n    Account,\n    Address,\n    Alloc,\n    Bytecode,\n    Environment,\n    Initcode,\n    StateTestFiller,\n    Transaction,\n    compute_create_address,\n)\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom . import CreateOpcodeParams, PytestParameterEnum\nfrom .spec import ref_spec_1153\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_1153.git_path\nREFERENCE_SPEC_VERSION = ref_spec_1153.version\n\npytestmark = [pytest.mark.valid_from(\"Cancun\")]\n\n\n@unique\nclass InitcodeTestCases(PytestParameterEnum):\n    \"\"\"\n    Defines test cases for transient storage opcode usage in contract\n    constructor and deployed code.\n    \"\"\"\n\n    ONLY_CONSTRUCTOR_CODE = {\n        \"description\": (\n            \"Test TLOAD and TSTORE behavior in contract constructor without deployed code\"\n        ),\n        \"constructor_code\": (\n            # test creator's transient storage inaccessible from constructor\n            # code\n            Op.SSTORE(0, Op.TLOAD(0))\n            # test constructor code can use its own transient storage & creator\n            # storage unaffected\n            + Op.TSTORE(0, 1)\n            + Op.SSTORE(1, Op.TLOAD(0))\n        ),\n        \"deploy_code\": Bytecode(),\n        \"expected_storage\": {0: 0x0000, 1: 0x0001},\n    }\n    IN_CONSTRUCTOR_AND_DEPLOYED_CODE = {\n        \"description\": \"Test TLOAD and TSTORE behavior in contract constructor and deployed code\",\n        \"constructor_code\": (\n            # test creator's transient storage inaccessible from constructor\n            # code\n            Op.SSTORE(0, Op.TLOAD(0))\n        ),\n        \"deploy_code\": (\n            # test creator's transient storage inaccessible from deployed code\n            Op.SSTORE(1, Op.TLOAD(0))\n            # test deploy code can use its own transient storage & creator\n            # storage unaffected\n            + Op.TSTORE(1, 1)\n            + Op.SSTORE(2, Op.TLOAD(1))\n        ),\n        \"expected_storage\": {0: 0x0000, 1: 0x0000, 2: 0x0001},\n    }\n    ACROSS_CONSTRUCTOR_AND_DEPLOYED_CODE_V0 = {\n        \"description\": (\"Test TSTORE behavior across contract constructor and deploy code. \"),\n        \"constructor_code\": (\n            # constructor code should be able to store its own transient\n            # storage\n            Op.TSTORE(1, 1)\n        ),\n        \"deploy_code\": (\n            # test creator's transient storage inaccessible from deployed code\n            Op.SSTORE(0, Op.TLOAD(0))\n            # test deploy code can use its own transient storage stored from\n            # constructor code\n            + Op.SSTORE(1, Op.TLOAD(1))\n            # test deploy code can use its own transient storage stored from\n            # deployed code\n            + Op.TSTORE(2, 1)\n            + Op.SSTORE(2, Op.TLOAD(2))\n        ),\n        \"expected_storage\": {0: 0x0000, 1: 0x0001, 2: 0x0001},\n    }\n    ACROSS_CONSTRUCTOR_AND_DEPLOYED_CODE_V1 = {\n        \"description\": (\n            \"Test TSTORE and TLOAD behavior across contract constructor and deploy code\",\n        ),\n        \"constructor_code\": (\n            # test creator's transient storage inaccessible from constructor\n            Op.SSTORE(0, Op.TLOAD(0))\n            # constructor code should be able to use its own transient storage\n            # / creator storage unaffected\n            + Op.TSTORE(1, 1)\n            + Op.SSTORE(1, Op.TLOAD(1))\n        ),\n        \"deploy_code\": (\n            # test creator's transient storage inaccessible from deployed code\n            Op.SSTORE(2, Op.TLOAD(0))\n            # test deploy code can use its own transient storage stored from\n            # constructor code\n            + Op.SSTORE(3, Op.TLOAD(1))\n            # test deploy code can use its own transient storage stored from\n            # deployed code\n            + Op.TSTORE(2, 1)\n            + Op.SSTORE(4, Op.TLOAD(2))\n        ),\n        \"expected_storage\": {0: 0x0000, 1: 0x0001, 2: 0x0000, 3: 0x0001, 4: 0x0001},\n    }\n    NO_CONSTRUCTOR_CODE = {\n        \"description\": (\n            \"Test TLOAD and TSTORE behavior in contract deployed code with no constructor code\"\n        ),\n        \"constructor_code\": Bytecode(),\n        \"deploy_code\": (\n            # test creator's transient storage inaccessible from deployed code\n            Op.SSTORE(0, Op.TLOAD(0))\n            # test deployed code can use its own transient storage & creator\n            # storage unaffected\n            + Op.TSTORE(0, 1)\n            + Op.SSTORE(1, Op.TLOAD(0))\n        ),\n        \"expected_storage\": {0: 0x0000, 1: 0x0001},\n    }\n\n\n@CreateOpcodeParams.parametrize()\n@InitcodeTestCases.parametrize()\nclass TestTransientStorageInContractCreation:\n    \"\"\"\n    Test transient storage in contract creation contexts.\n    - TSTORE/TLOAD in initcode should not be able to access the creator's\n      transient storage.\n    - TSTORE/TLOAD in initcode should be able to access the created contract's\n      transient storage.\n    - TSTORE/TLOAD in creator contract should be able to use its own\n      transient storage.\n    \"\"\"\n\n    @pytest.fixture()\n    def create2_salt(self) -> int:  # noqa: D102\n        return 0xDEADBEEF\n\n    @pytest.fixture()\n    def initcode(  # noqa: D102\n        self,\n        deploy_code: Bytecode,\n        constructor_code: Bytecode,\n    ) -> Initcode:\n        return Initcode(deploy_code=deploy_code, initcode_prefix=constructor_code)\n\n    @pytest.fixture()\n    def creator_contract_code(  # noqa: D102\n        self,\n        opcode: Op,\n        create2_salt: int,\n    ) -> Bytecode:\n        return (\n            Op.TSTORE(0, 0x0100)\n            + Op.TSTORE(1, 0x0200)\n            + Op.TSTORE(2, 0x0300)\n            + Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE)\n            + Op.SSTORE(\n                4,\n                Op.CALL(\n                    address=(\n                        opcode(size=Op.CALLDATASIZE, salt=create2_salt)\n                        if opcode == Op.CREATE2\n                        else opcode(size=Op.CALLDATASIZE)\n                    )\n                ),\n            )\n            # Save the state of transient storage following call to storage;\n            # the transient storage should not have been overwritten\n            + Op.SSTORE(0, Op.TLOAD(0))\n            + Op.SSTORE(1, Op.TLOAD(1))\n            + Op.SSTORE(2, Op.TLOAD(2))\n        )\n\n    @pytest.fixture()\n    def creator_address(self, pre: Alloc, creator_contract_code: Bytecode) -> Address:\n        \"\"\"Address that creates the contract with create/create2.\"\"\"\n        return pre.deploy_contract(creator_contract_code)\n\n    @pytest.fixture()\n    def expected_creator_storage(self) -> dict:  # noqa: D102\n        return {0: 0x0100, 1: 0x0200, 2: 0x0300, 4: 0x0001}\n\n    @pytest.fixture()\n    def created_contract_address(  # noqa: D102\n        self, creator_address: Address, opcode: Op, create2_salt: int, initcode: Initcode\n    ) -> Address:\n        return compute_create_address(\n            address=creator_address,\n            nonce=1,\n            salt=create2_salt,\n            initcode=initcode,\n            opcode=opcode,\n        )\n\n    def test_contract_creation(\n        self,\n        state_test: StateTestFiller,\n        pre: Alloc,\n        creator_address: Address,\n        created_contract_address: Address,\n        initcode: Initcode,\n        deploy_code: Bytecode,\n        expected_creator_storage: dict,\n        expected_storage: dict,\n    ) -> None:\n        \"\"\"Test transient storage in contract creation contexts.\"\"\"\n        sender = pre.fund_eoa()\n\n        tx = Transaction(\n            sender=sender,\n            to=creator_address,\n            data=initcode,\n            gas_limit=1_000_000,\n        )\n\n        post = {\n            creator_address: Account(\n                nonce=2,\n                storage=expected_creator_storage,\n            ),\n            created_contract_address: Account(\n                nonce=1,\n                code=deploy_code,\n                storage=expected_storage,\n            ),\n        }\n\n        state_test(\n            env=Environment(),\n            pre=pre,\n            post=post,\n            tx=tx,\n        )\n"
  },
  {
    "path": "tests/cancun/eip1153_tstore/test_tstorage_execution_contexts.py",
    "content": "\"\"\"\nTest EIP-1153 Transient Storage in execution contexts.\n\"\"\"\n\nfrom enum import EnumMeta, unique\nfrom typing import Any, Dict, Mapping\n\nimport pytest\n\nfrom ethereum_test_tools import (\n    Account,\n    Address,\n    Alloc,\n    Bytecode,\n    Environment,\n    Hash,\n    StateTestFiller,\n    Transaction,\n)\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom . import PytestParameterEnum\nfrom .spec import Spec, ref_spec_1153\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_1153.git_path\nREFERENCE_SPEC_VERSION = ref_spec_1153.version\n\npytestmark = [pytest.mark.valid_from(\"Cancun\")]\n\nPUSH_OPCODE_COST = 3\n\n\nclass DynamicCallContextTestCases(EnumMeta):\n    \"\"\"\n    Create dynamic transient storage test cases for contract sub-calls using\n    CALLCODE and DELEGATECALL (these opcodes share the same signatures and test\n    cases).\n    \"\"\"\n\n    def __new__(cls, name: str, bases: tuple[type, ...], classdict: Any) -> Any:  # noqa: D102\n        for call_opcode in [Op.CALLCODE, Op.DELEGATECALL]:\n            contract_call = call_opcode(address=Op.CALLDATALOAD(0))\n            classdict[call_opcode._name_] = {\n                \"description\": (\n                    \"Caller and callee contracts share transient storage when callee is \"\n                    f\"called via {call_opcode._name_}.\"\n                ),\n                \"caller_bytecode\": (\n                    Op.TSTORE(0, 420)\n                    + Op.SSTORE(0, contract_call)\n                    + Op.SSTORE(1, Op.TLOAD(0))\n                    + Op.SSTORE(4, Op.TLOAD(1))\n                    + Op.STOP\n                ),\n                \"callee_bytecode\": (\n                    Op.SSTORE(2, Op.TLOAD(0))\n                    + Op.TSTORE(1, 69)\n                    + Op.SSTORE(3, Op.TLOAD(1))\n                    + Op.STOP\n                ),\n                \"expected_caller_storage\": {0: 1, 1: 420, 2: 420, 3: 69, 4: 69},\n                \"expected_callee_storage\": {},\n            }\n\n        for call_opcode in [Op.CALL, Op.CALLCODE, Op.DELEGATECALL]:\n            contract_call = call_opcode(address=Op.CALLDATALOAD(0))\n            classdict[f\"{call_opcode._name_}_WITH_REVERT\"] = {\n                \"description\": (\n                    \"Transient storage usage is discarded from sub-call with \"\n                    f\"{call_opcode._name_} upon REVERT.\"\n                ),\n                \"caller_bytecode\": (\n                    Op.TSTORE(0, 420)\n                    + Op.TSTORE(1, 420)\n                    + Op.SSTORE(0, contract_call)\n                    + Op.SSTORE(1, Op.TLOAD(0))\n                    + Op.SSTORE(2, Op.TLOAD(1))\n                    + Op.STOP\n                ),\n                \"callee_bytecode\": Op.TSTORE(1, 69) + Op.REVERT(0, 0),\n                \"expected_caller_storage\": {0: 0, 1: 420, 2: 420},\n                \"expected_callee_storage\": {},\n            }\n\n            contract_call = call_opcode(gas=0xFF, address=Op.CALLDATALOAD(0))\n            classdict[f\"{call_opcode._name_}_WITH_INVALID\"] = {\n                \"description\": (\n                    \"Transient storage usage is discarded from sub-call with \"\n                    f\"{call_opcode._name_} upon REVERT. Note: Gas passed to sub-call is capped.\"\n                ),\n                \"caller_bytecode\": (\n                    Op.TSTORE(0, 420)\n                    + Op.TSTORE(1, 420)\n                    + Op.SSTORE(0, contract_call)\n                    + Op.SSTORE(1, Op.TLOAD(0))\n                    + Op.SSTORE(2, Op.TLOAD(1))\n                    + Op.STOP\n                ),\n                \"callee_bytecode\": Op.TSTORE(1, 69) + Op.INVALID(),\n                \"expected_caller_storage\": {0: 0, 1: 420, 2: 420},\n                \"expected_callee_storage\": {},\n            }\n\n            contract_call = call_opcode(gas=0xFFFF, address=Op.CALLDATALOAD(0))\n            classdict[f\"{call_opcode._name_}_WITH_STACK_OVERFLOW\"] = {\n                \"description\": (\n                    \"Transient storage usage is discarded from sub-call with \"\n                    f\"{call_opcode._name_} upon stack overflow.\"\n                ),\n                \"caller_bytecode\": (\n                    Op.TSTORE(0, 420)\n                    + Op.TSTORE(1, 420)\n                    + Op.SSTORE(0, contract_call)\n                    + Op.SSTORE(1, Op.TLOAD(0))\n                    + Op.SSTORE(2, Op.TLOAD(1))\n                    + Op.STOP\n                ),\n                \"callee_bytecode\": Op.TSTORE(1, 69) + Op.PUSH0() * 1025 + Op.STOP,\n                \"expected_caller_storage\": {0: 0, 1: 420, 2: 420},\n                \"expected_callee_storage\": {},\n            }\n            classdict[f\"{call_opcode._name_}_WITH_TSTORE_STACK_UNDERFLOW\"] = {\n                \"description\": (\n                    \"Transient storage usage is discarded from sub-call with \"\n                    f\"{call_opcode._name_} upon stack underflow because of TSTORE parameters (1).\"\n                ),\n                \"caller_bytecode\": (\n                    Op.TSTORE(0, 420)\n                    + Op.TSTORE(1, 420)\n                    + Op.SSTORE(0, contract_call)\n                    + Op.SSTORE(1, Op.TLOAD(0))\n                    + Op.SSTORE(2, Op.TLOAD(1))\n                    + Op.STOP\n                ),\n                \"callee_bytecode\": Op.TSTORE(1, unchecked=True) + Op.STOP,\n                \"expected_caller_storage\": {0: 0, 1: 420, 2: 420},\n                \"expected_callee_storage\": {},\n            }\n            classdict[f\"{call_opcode._name_}_WITH_TSTORE_STACK_UNDERFLOW_2\"] = {\n                \"description\": (\n                    \"Transient storage usage is discarded from sub-call with \"\n                    f\"{call_opcode._name_} upon stack underflow because of TSTORE parameters (0).\"\n                ),\n                \"caller_bytecode\": (\n                    Op.TSTORE(0, 420)\n                    + Op.TSTORE(1, 420)\n                    + Op.SSTORE(0, contract_call)\n                    + Op.SSTORE(1, Op.TLOAD(0))\n                    + Op.SSTORE(2, Op.TLOAD(1))\n                    + Op.STOP\n                ),\n                \"callee_bytecode\": Op.TSTORE + Op.STOP,\n                \"expected_caller_storage\": {0: 0, 1: 420, 2: 420},\n                \"expected_callee_storage\": {},\n            }\n            classdict[f\"{call_opcode._name_}_WITH_TLOAD_STACK_UNDERFLOW\"] = {\n                \"description\": (\n                    \"Transient storage usage is discarded from sub-call with \"\n                    f\"{call_opcode._name_} upon stack underflow because of TLOAD parameters (0).\"\n                ),\n                \"caller_bytecode\": (\n                    Op.TSTORE(0, 420)\n                    + Op.TSTORE(1, 420)\n                    + Op.SSTORE(0, contract_call)\n                    + Op.SSTORE(1, Op.TLOAD(0))\n                    + Op.SSTORE(2, Op.TLOAD(1))\n                    + Op.STOP\n                ),\n                \"callee_bytecode\": Op.TLOAD + Op.TSTORE(0, 1) + Op.STOP,\n                \"expected_caller_storage\": {0: 0, 1: 420, 2: 420},\n                \"expected_callee_storage\": {},\n            }\n\n            gas_limit = Spec.TSTORE_GAS_COST + (PUSH_OPCODE_COST * 2) - 1\n            contract_call = call_opcode(gas=gas_limit, address=Op.CALLDATALOAD(0))\n            classdict[f\"{call_opcode._name_}_WITH_OUT_OF_GAS\"] = {\n                \"description\": (\n                    \"Transient storage usage is discarded from sub-call with \"\n                    f\"{call_opcode._name_} upon out of gas during TSTORE. \"\n                    \"Note: Gas passed to sub-call is capped.\"\n                ),\n                \"caller_bytecode\": (\n                    Op.TSTORE(0, 420)\n                    + Op.TSTORE(1, 420)\n                    + Op.SSTORE(0, contract_call)\n                    + Op.SSTORE(1, Op.TLOAD(0))\n                    + Op.SSTORE(2, Op.TLOAD(1))\n                    + Op.STOP\n                ),\n                \"callee_bytecode\": Op.TSTORE(1, 69) + Op.STOP,\n                \"expected_caller_storage\": {0: 0, 1: 420, 2: 420},\n                \"expected_callee_storage\": {},\n            }\n\n            contract_call = call_opcode(gas=0xFF, address=Op.CALLDATALOAD(0))\n            classdict[f\"{call_opcode._name_}_WITH_OUT_OF_GAS_2\"] = {\n                \"description\": (\n                    \"Transient storage usage is discarded from sub-call with \"\n                    f\"{call_opcode._name_} upon out of gas after TSTORE. \"\n                    \"Note: Gas passed to sub-call is capped.\"\n                ),\n                \"caller_bytecode\": (\n                    Op.TSTORE(0, 420)\n                    + Op.TSTORE(1, 420)\n                    + Op.SSTORE(0, contract_call)\n                    + Op.SSTORE(1, Op.TLOAD(0))\n                    + Op.SSTORE(2, Op.TLOAD(1))\n                    + Op.STOP\n                ),\n                \"callee_bytecode\": Op.TSTORE(1, 69) + (Op.PUSH0() + Op.POP) * 512 + Op.STOP,\n                \"expected_caller_storage\": {0: 0, 1: 420, 2: 420},\n                \"expected_callee_storage\": {},\n            }\n\n        return super().__new__(cls, name, bases, classdict)\n\n\n@unique\nclass CallContextTestCases(PytestParameterEnum, metaclass=DynamicCallContextTestCases):\n    \"\"\"Transient storage test cases for different contract subcall contexts.\"\"\"\n\n    CALL = {\n        \"description\": (\n            \"Caller and callee contracts use their own transient storage when callee \"\n            \"is called via CALL.\"\n        ),\n        \"caller_bytecode\": (\n            Op.TSTORE(0, 420)\n            + Op.SSTORE(0, Op.CALL(address=Op.CALLDATALOAD(0)))\n            + Op.SSTORE(1, Op.TLOAD(0))\n            + Op.SSTORE(2, Op.TLOAD(1))\n            + Op.STOP\n        ),\n        \"callee_bytecode\": (\n            Op.SSTORE(0, Op.TLOAD(0)) + Op.TSTORE(1, 69) + Op.SSTORE(1, Op.TLOAD(1)) + Op.STOP\n        ),\n        \"expected_caller_storage\": {0: 1, 1: 420, 2: 0},\n        \"expected_callee_storage\": {0: 0, 1: 69},\n    }\n    STATICCALL_CANT_CALL_TSTORE = {\n        \"description\": (\"TA STATICCALL callee can not use transient storage.\"),\n        \"caller_bytecode\": (\n            Op.TSTORE(0, 420)\n            + Op.SSTORE(0, Op.STATICCALL(gas=0xFFFF, address=Op.CALLDATALOAD(0)))  # limit gas\n            + Op.SSTORE(1, Op.TLOAD(0))\n            + Op.STOP\n        ),\n        \"callee_bytecode\": Op.TSTORE(0, 69) + Op.STOP,  # calling tstore fails\n        \"expected_caller_storage\": {0: 0, 1: 420},\n        \"expected_callee_storage\": {},\n    }\n    STATICCALL_CANT_CALL_TSTORE_WITH_STACK_UNDERFLOW = {\n        \"description\": (\"TA STATICCALL callee can not use transient storage.\"),\n        \"caller_bytecode\": (\n            Op.TSTORE(0, 420)\n            + Op.SSTORE(0, Op.STATICCALL(gas=0xFFFF, address=Op.CALLDATALOAD(0)))  # limit gas\n            + Op.SSTORE(1, Op.TLOAD(0))\n            + Op.STOP\n        ),\n        # calling with stack underflow still fails\n        \"callee_bytecode\": Op.TSTORE(0, unchecked=True) + Op.STOP,\n        \"expected_caller_storage\": {0: 0, 1: 420},\n        \"expected_callee_storage\": {},\n    }\n    STATICCALL_CAN_CALL_TLOAD = {\n        # TODO: Not a very useful test; consider removing after implementing\n        # ethereum/tests staticcall tests\n        \"pytest_id\": \"staticcalled_context_can_call_tload\",\n        \"description\": (\"A STATICCALL callee can not use transient storage.\"),\n        \"caller_bytecode\": (\n            Op.TSTORE(0, 420)\n            + Op.SSTORE(0, Op.STATICCALL(address=Op.CALLDATALOAD(0)))\n            + Op.SSTORE(1, Op.TLOAD(0))\n            + Op.STOP\n        ),\n        # calling tload does not cause the call to fail\n        \"callee_bytecode\": Op.TLOAD(0) + Op.STOP,\n        \"expected_caller_storage\": {0: 1, 1: 420},\n        \"expected_callee_storage\": {},\n    }\n\n    def __init__(self, value: dict[str, Any]) -> None:\n        \"\"\"Initialize the test case with the given value.\"\"\"\n        value = {\n            \"env\": Environment(),\n            \"caller_bytecode\": value[\"caller_bytecode\"],\n            \"callee_bytecode\": value[\"callee_bytecode\"],\n            \"expected_caller_storage\": value[\"expected_caller_storage\"],\n            \"expected_callee_storage\": value[\"expected_callee_storage\"],\n        } | {k: value[k] for k in value.keys() if k in self.special_keywords()}\n        super().__init__(value)\n\n\n@pytest.fixture()\ndef caller_address(pre: Alloc, caller_bytecode: Bytecode) -> Address:\n    \"\"\"Address used to call the test bytecode on every test case.\"\"\"\n    return pre.deploy_contract(caller_bytecode)\n\n\n@pytest.fixture()\ndef callee_address(pre: Alloc, callee_bytecode: Bytecode) -> Address:\n    \"\"\"Address called by the test bytecode on every test case.\"\"\"\n    return pre.deploy_contract(callee_bytecode)\n\n\n@pytest.fixture()\ndef tx(pre: Alloc, caller_address: Address, callee_address: Address) -> Transaction:  # noqa: D103\n    return Transaction(\n        sender=pre.fund_eoa(),\n        to=caller_address,\n        data=Hash(callee_address, left_padding=True),\n        gas_limit=1_000_000,\n    )\n\n\n@pytest.fixture()\ndef post(  # noqa: D103\n    caller_address: Address,\n    callee_address: Address,\n    expected_caller_storage: Dict,\n    expected_callee_storage: Dict,\n) -> Dict:\n    return {\n        caller_address: Account(storage=expected_caller_storage),\n        callee_address: Account(storage=expected_callee_storage),\n    }\n\n\n@CallContextTestCases.parametrize()\ndef test_subcall(\n    state_test: StateTestFiller,\n    env: Environment,\n    pre: Alloc,\n    tx: Transaction,\n    post: Mapping,\n) -> None:\n    \"\"\"\n    Test transient storage with a subcall using the following opcodes.\n\n    - `CALL`\n    - `CALLCODE`\n    - `DELEGATECALL`\n    - `STATICCALL`\n    \"\"\"\n    state_test(env=env, pre=pre, post=post, tx=tx)\n"
  },
  {
    "path": "tests/cancun/eip1153_tstore/test_tstorage_reentrancy_contexts.py",
    "content": "\"\"\"\nTests transient storage in reentrancy contexts.\n\"\"\"\n\nfrom enum import EnumMeta, unique\nfrom typing import Any, Dict\n\nimport pytest\n\nfrom ethereum_test_tools import (\n    Account,\n    Alloc,\n    Bytecode,\n    CalldataCase,\n    Conditional,\n    Environment,\n    Hash,\n    StateTestFiller,\n    Switch,\n    Transaction,\n)\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom . import PytestParameterEnum\nfrom .spec import ref_spec_1153\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_1153.git_path\nREFERENCE_SPEC_VERSION = ref_spec_1153.version\n\npytestmark = [pytest.mark.valid_from(\"Cancun\")]\n\nSETUP_CONDITION: Bytecode = Op.EQ(Op.CALLDATALOAD(0), 0x01)\nREENTRANT_CALL: Bytecode = Op.MSTORE(0, 2) + Op.SSTORE(\n    0, Op.CALL(address=Op.ADDRESS, args_size=32)\n)\n\n\nclass DynamicReentrancyTestCases(EnumMeta):\n    \"\"\"\n    Create dynamic transient storage test cases which REVERT or receive INVALID\n    (these opcodes should share the same behavior).\n    \"\"\"\n\n    def __new__(cls, name: str, bases: tuple[type, ...], classdict: Any) -> Any:  # noqa: D102\n        for opcode in [Op.REVERT, Op.INVALID]:\n            if opcode == Op.REVERT:\n                opcode_call = Op.REVERT(0, 0)\n                subcall_gas = Op.GAS()\n            elif opcode == Op.INVALID:\n                opcode_call = Op.INVALID()\n                subcall_gas = Op.PUSH2(0xFFFF)\n            else:\n                raise ValueError(f\"Unknown opcode: {opcode}.\")\n\n            reentrant_call = Op.MSTORE(0, 2) + Op.SSTORE(\n                0, Op.CALL(gas=subcall_gas, address=Op.ADDRESS, args_size=32)\n            )\n\n            classdict[f\"TSTORE_BEFORE_{opcode._name_}_HAS_NO_EFFECT\"] = {\n                \"description\": (\n                    f\"{opcode._name_} undoes the transient storage write \"\n                    \"from the failed call: \"\n                    \"TSTORE(x, y), CALL(self, ...), TSTORE(x, z), \"\n                    f\"{opcode._name_}, TLOAD(x) returns y.\",\n                    \"Based on [ethereum/tests/.../08_revertUndoes\"\n                    \"TransientStoreFiller.yml](https://github.com/ethereum/\"\n                    \"tests/blob/9b00b68593f5869eb51a6659e1cc983e875e616b/src\"\n                    \"/EIPTestsFiller/StateTests/stEIP1153-transientStorage/\"\n                    \"08_revertUndoesTransientStoreFiller.yml)\",\n                ),\n                \"bytecode\": Conditional(\n                    condition=SETUP_CONDITION,\n                    # setup\n                    if_true=(\n                        Op.TSTORE(0xFF, 0x100)\n                        + Op.SSTORE(1, Op.TLOAD(0xFF))\n                        + reentrant_call\n                        + Op.SSTORE(\n                            2, Op.TLOAD(0xFF)\n                        )  # test value not updated during reentrant call\n                    ),\n                    # reenter\n                    if_false=Op.TSTORE(0xFF, 0x101) + opcode_call,\n                ),\n                \"expected_storage\": {0: 0x00, 1: 0x100, 2: 0x100},\n            }\n\n            classdict[f\"{opcode._name_}_UNDOES_ALL\"] = {\n                \"description\": (\n                    f\"{opcode._name_} undoes all the transient storage writes \"\n                    \"to the same key from a failed call. \"\n                    \"TSTORE(x, y), CALL(self, ...), TSTORE(x, z), \"\n                    f\"TSTORE(x, z + 1) {opcode._name_}, TLOAD(x) returns y.\"\n                    \"\",\n                    \"Based on \"\n                    \"[ethereum/tests/.../09_revertUndoesAllFiller.yml](https://github.com/ethereum/tests/blob/9b00b68593f5869eb51a6659e1cc983e875e616b/src/EIPTestsFiller/StateTests/stEIP1153-transientStorage/09_revertUndoesAllFiller.yml).\",\n                ),\n                \"bytecode\": Conditional(\n                    condition=SETUP_CONDITION,\n                    # setup\n                    if_true=(\n                        Op.TSTORE(0xFE, 0x100)\n                        + Op.TSTORE(0xFF, 0x101)\n                        + reentrant_call\n                        + Op.SSTORE(\n                            1, Op.TLOAD(0xFE)\n                        )  # test value not updated during reentrant call\n                        + Op.SSTORE(\n                            2, Op.TLOAD(0xFF)\n                        )  # test value not updated during reentrant call\n                    ),\n                    # reenter\n                    if_false=(\n                        # store twice and revert/invalid; none of the stores\n                        # should take effect\n                        Op.TSTORE(0xFE, 0x201)\n                        + Op.TSTORE(0xFE, 0x202)\n                        + Op.TSTORE(0xFF, 0x201)\n                        + Op.TSTORE(0xFF, 0x202)\n                        + opcode_call\n                    ),\n                ),\n                \"expected_storage\": {0: 0x00, 1: 0x100, 2: 0x101},\n            }\n\n            if opcode == Op.REVERT:\n                opcode_call = Op.REVERT(0, 32)\n                second_call_return_value = 1\n            elif opcode == Op.INVALID:\n                opcode_call = Op.INVALID()\n                second_call_return_value = 0\n            else:\n                raise ValueError(f\"Unknown opcode: {opcode}.\")\n\n            classdict[f\"{opcode._name_}_UNDOES_TSTORAGE_AFTER_SUCCESSFUL_CALL\"] = {\n                \"description\": (\n                    f\"{opcode._name_} undoes transient storage writes from \"\n                    \"inner calls that successfully returned. \"\n                    \"TSTORE(x, y), CALL(self, ...), CALL(self, ...), \"\n                    f\"TSTORE(x, y + 1), RETURN, {opcode._name_}, TLOAD(x) \"\n                    \"returns y.\",\n                    \"Based on [ethereum/tests/.../\"\n                    \"10_revertUndoesStoreAfterReturnFiller.yml]\"\n                    \"(https://github.com/ethereum/tests/blob/\"\n                    \"9b00b68593f5869eb51a6659e1cc983e875e616b/src/\"\n                    \"EIPTestsFiller/StateTests/stEIP1153-transientStorage/\"\n                    \"10_revertUndoesStoreAfterReturnFiller.yml).\",\n                ),\n                \"bytecode\": Switch(\n                    default_action=(  # setup; make first reentrant sub-call\n                        Op.TSTORE(0xFF, 0x100)\n                        + Op.SSTORE(2, Op.TLOAD(0xFF))\n                        + Op.MSTORE(0, 2)\n                        + Op.SSTORE(\n                            0,\n                            Op.CALL(\n                                gas=subcall_gas,\n                                address=Op.ADDRESS,\n                                args_size=32,\n                                ret_offset=32,\n                                ret_size=32,\n                            ),\n                        )\n                        + Op.SSTORE(1, Op.MLOAD(32))  # should be 1 (successful\n                        # call)\n                        + Op.SSTORE(3, Op.TLOAD(0xFF))\n                    ),\n                    cases=[\n                        # the first, reentrant call, which reverts/receives\n                        # invalid\n                        CalldataCase(\n                            value=2,\n                            action=(\n                                Op.MSTORE(0, 3)\n                                + Op.MSTORE(0, Op.CALL(address=Op.ADDRESS, args_size=32))\n                                + opcode_call\n                            ),\n                        ),\n                        # the second, reentrant call, which returns\n                        # successfully\n                        CalldataCase(\n                            value=3,\n                            action=Op.TSTORE(0xFF, 0x101),\n                        ),\n                    ],\n                ),\n                \"expected_storage\": {0: 0x00, 1: second_call_return_value, 2: 0x100, 3: 0x100},\n            }\n\n        return super().__new__(cls, name, bases, classdict)\n\n\n@unique\nclass ReentrancyTestCases(PytestParameterEnum, metaclass=DynamicReentrancyTestCases):\n    \"\"\"Transient storage test cases for different reentrancy call contexts.\"\"\"\n\n    TSTORE_IN_REENTRANT_CALL = {\n        \"description\": (\n            \"Reentrant calls access the same transient storage: \"\n            \"TSTORE(x, y), CALL(self, ...), TLOAD(x) returns y.\"\n            \"\"\n            \"Based on [ethereum/tests/.../05_tloadReentrancyFiller.yml]\"\n            \"(https://github.com/ethereum/tests/tree/\"\n            \"9b00b68593f5869eb51a6659e1cc983e875e616b/src/\"\n            \"EIPTestsFiller/StateTests/stEIP1153-transientStorage).\",\n        ),\n        \"bytecode\": Conditional(\n            condition=SETUP_CONDITION,\n            # setup\n            if_true=(Op.TSTORE(0, 0x100) + REENTRANT_CALL + Op.SSTORE(2, Op.TLOAD(0))),\n            # reenter\n            if_false=Op.SSTORE(1, Op.TLOAD(0)),\n        ),\n        \"expected_storage\": {0: 0x01, 1: 0x100, 2: 0x100},\n    }\n    TLOAD_AFTER_REENTRANT_TSTORE = {\n        \"description\": (\n            \"Successfully returned calls do not revert transient \"\n            \"storage writes: \"\n            \"TSTORE(x, y), CALL(self, ...), TSTORE(x, z), RETURN, TLOAD(x) \"\n            \"returns z.\"\n            \"Based on [ethereum/tests/.../\"\n            \"07_tloadAfterReentrancyStoreFiller.yml](https://github.com/\"\n            \"ethereum/tests/blob/\"\n            \"9b00b68593f5869eb51a6659e1cc983e875e616b/src/\"\n            \"EIPTestsFiller/StateTests/stEIP1153-transientStorage/\"\n            \"07_tloadAfterReentrancyStoreFiller.yml).\",\n        ),\n        \"bytecode\": Conditional(\n            condition=SETUP_CONDITION,\n            # setup\n            if_true=(\n                Op.TSTORE(0xFF, 0x100)\n                + Op.SSTORE(1, Op.TLOAD(0xFF))\n                + REENTRANT_CALL\n                + Op.SSTORE(2, Op.TLOAD(0xFF))  # test value updated during\n                # reentrant call\n            ),\n            # reenter\n            if_false=Op.TSTORE(0xFF, 0x101),\n        ),\n        \"expected_storage\": {0: 0x01, 1: 0x100, 2: 0x101},\n    }\n    MANIPULATE_IN_REENTRANT_CALL = {\n        \"description\": (\n            \"Reentrant calls can manipulate the same transient storage: \"\n            \"TSTORE(x, y), CALL(self, ...), TSTORE(x, z), TLOAD(x) returns z.\"\n            \"\"\n            \"Based on [ethereum/tests/.../06_tstoreInReentrancyCallFiller.yml]\"\n            \"(https://github.com/ethereum/tests/blob/\"\n            \"9b00b68593f5869eb51a6659e1cc983e875e616b/src/\"\n            \"EIPTestsFiller/StateTests/stEIP1153-transientStorage/\"\n            \"06_tstoreInReentrancyCallFiller.yml).\",\n        ),\n        \"bytecode\": Conditional(\n            condition=SETUP_CONDITION,\n            # setup\n            if_true=(\n                Op.TSTORE(0xFF, 0x100)\n                + Op.SSTORE(1, Op.TLOAD(0xFF))\n                + REENTRANT_CALL\n                + Op.SSTORE(3, Op.TLOAD(0xFF))  # test value updated during\n                # reentrant call\n            ),\n            # reenter\n            if_false=Op.TSTORE(0xFF, 0x101) + Op.SSTORE(2, Op.TLOAD(0xFF)),\n        ),\n        \"expected_storage\": {0: 0x01, 1: 0x100, 2: 0x101, 3: 0x101},\n    }\n    TSTORE_IN_CALL_THEN_TLOAD_RETURN_IN_STATICCALL = {\n        \"description\": (\n            \"A reentrant call followed by a reentrant subcall can \"\n            \"call tload correctly: \"\n            \"TSTORE(x, y), CALL(self, ...), STATICCALL(self, ...), \"\n            \"TLOAD(x), RETURN returns y.\"\n            \"Based on [ethereum/tests/.../\"\n            \"10_revertUndoesStoreAfterReturnFiller.yml]\"\n            \"(https://github.com/ethereum/tests/blob/\"\n            \"9b00b68593f5869eb51a6659e1cc983e875e616b/src/\"\n            \"EIPTestsFiller/StateTests/stEIP1153-transientStorage/\"\n            \"10_revertUndoesStoreAfterReturnFiller.yml).\",\n        ),\n        \"bytecode\": Switch(\n            default_action=(  # setup; make first reentrant sub-call\n                Op.TSTORE(0xFF, 0x100)\n                + Op.SSTORE(2, Op.TLOAD(0xFF))\n                + Op.MSTORE(0, 2)\n                + Op.SSTORE(0, Op.CALL(address=Op.ADDRESS, args_size=32))\n                + Op.SSTORE(4, Op.TLOAD(0xFE))\n            ),\n            cases=[\n                # the first, reentrant call which calls tstore and a further\n                # reentrant staticcall\n                CalldataCase(\n                    value=2,\n                    action=(\n                        Op.TSTORE(0xFE, 0x101)\n                        + Op.MSTORE(0, 3)\n                        + Op.SSTORE(\n                            1, Op.STATICCALL(address=Op.ADDRESS, args_size=32, ret_size=32)\n                        )\n                        + Op.SSTORE(3, Op.MLOAD(0))\n                    ),\n                ),\n                # the second, reentrant call, which calls tload and return\n                # returns successfully\n                CalldataCase(\n                    value=3,\n                    action=Op.MSTORE(0, Op.TLOAD(0xFE)) + Op.RETURN(0, 32),\n                ),\n            ],\n        ),\n        \"expected_storage\": {0: 0x01, 1: 0x01, 2: 0x100, 3: 0x101, 4: 0x101},\n    }\n\n\n@ReentrancyTestCases.parametrize()\ndef test_reentrant_call(\n    state_test: StateTestFiller, pre: Alloc, bytecode: Bytecode, expected_storage: Dict\n) -> None:\n    \"\"\"Test transient storage in different reentrancy contexts.\"\"\"\n    env = Environment()\n\n    callee_address = pre.deploy_contract(bytecode)\n\n    tx = Transaction(\n        sender=pre.fund_eoa(),\n        to=callee_address,\n        data=Hash(1),\n        gas_limit=1_000_000,\n    )\n\n    post = {callee_address: Account(code=bytecode, storage=expected_storage)}\n\n    state_test(env=env, pre=pre, post=post, tx=tx)\n"
  },
  {
    "path": "tests/cancun/eip1153_tstore/test_tstorage_selfdestruct.py",
    "content": "\"\"\"\nEIP-1153 Transient Storage with selfdestruct tests.\n\nTest cases for `TSTORE` and `TLOAD` opcode calls in reentrancy after\nself-destruct, taking into account the changes in EIP-6780.\n\"\"\"\n\nfrom enum import unique\nfrom typing import Dict\n\nimport pytest\n\nfrom ethereum_test_tools import (\n    Account,\n    Alloc,\n    Bytecode,\n    CalldataCase,\n    Environment,\n    Hash,\n    Initcode,\n    StateTestFiller,\n    Switch,\n    Transaction,\n    compute_create_address,\n)\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom . import PytestParameterEnum\nfrom .spec import ref_spec_1153\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_1153.git_path\nREFERENCE_SPEC_VERSION = ref_spec_1153.version\n\npytestmark = [pytest.mark.valid_from(\"Cancun\")]\n\nCREATE_CODE = Op.CALLDATACOPY(size=Op.CALLDATASIZE) + Op.CREATE(size=Op.CALLDATASIZE)\n\n\ndef call_option(option_number: int) -> Bytecode:\n    \"\"\"\n    Return the bytecode for a call to the callee contract with the given option\n    number.\n    \"\"\"\n    return Op.MSTORE(value=option_number) + Op.CALL(\n        address=Op.SLOAD(0),\n        args_offset=0,\n        args_size=32,\n        ret_offset=0,\n        ret_size=32,\n    )\n\n\n@unique\nclass SelfDestructCases(PytestParameterEnum):\n    \"\"\"\n    Transient storage test cases for different reentrancy calls which involve\n    the contract self-destructing.\n    \"\"\"\n\n    TLOAD_AFTER_SELFDESTRUCT_PRE_EXISTING_CONTRACT = {\n        \"description\": (\n            \"Use TSTORE to store a transient value and self-destruct in a contract that was\"\n            \"deployed in a transaction prior to the one currently executing.\"\n            \"Then re-enter the contract and attempt to TLOAD the transient value.\",\n        ),\n        \"pre_existing_contract\": True,\n        \"caller_bytecode\": Op.SSTORE(0, Op.CALLDATALOAD(0))\n        + Op.SSTORE(1, call_option(1))\n        + Op.SSTORE(2, call_option(2))\n        + Op.SSTORE(3, Op.MLOAD(0)),\n        \"callee_bytecode\": Switch(\n            cases=[\n                CalldataCase(value=1, action=Op.TSTORE(0xFF, 0x100) + Op.SELFDESTRUCT(0)),\n                CalldataCase(value=2, action=Op.MSTORE(0, Op.TLOAD(0xFF)) + Op.RETURN(0, 32)),\n            ],\n        ),\n        \"expected_storage\": {\n            1: 0x01,\n            2: 0x01,\n            3: 0x100,\n        },\n    }\n\n    TLOAD_AFTER_SELFDESTRUCT_NEW_CONTRACT = {\n        \"description\": (\n            \"Use TSTORE to store a transient value and self-destruct in a contract that was\"\n            \"deployed in the current transaction.\"\n            \"Then re-enter the contract and attempt to TLOAD the transient value.\",\n        ),\n        \"pre_existing_contract\": False,\n        \"caller_bytecode\": Op.SSTORE(0, CREATE_CODE)\n        + Op.SSTORE(1, call_option(1))\n        + Op.SSTORE(2, call_option(2))\n        + Op.SSTORE(3, Op.MLOAD(0)),\n        \"callee_bytecode\": Switch(\n            cases=[\n                CalldataCase(value=1, action=Op.TSTORE(0xFF, 0x100) + Op.SELFDESTRUCT(0)),\n                CalldataCase(value=2, action=Op.MSTORE(0, Op.TLOAD(0xFF)) + Op.RETURN(0, 32)),\n            ],\n        ),\n        \"expected_storage\": {\n            1: 0x01,\n            2: 0x01,\n            3: 0x100,\n        },\n    }\n\n    TLOAD_AFTER_INNER_SELFDESTRUCT_PRE_EXISTING_CONTRACT = {\n        \"description\": (\n            \"Use TSTORE to store a transient value and then call for re-entry and self-destruct,\"\n            \"and use TLOAD upon return from the inner self-destructing call.\",\n        ),\n        \"pre_existing_contract\": True,\n        \"caller_bytecode\": Op.SSTORE(0, Op.CALLDATALOAD(0))\n        + Op.SSTORE(1, call_option(1))\n        + Op.SSTORE(2, Op.MLOAD(0)),\n        \"callee_bytecode\": Switch(\n            cases=[\n                CalldataCase(\n                    value=1,\n                    action=Op.TSTORE(0xFF, 0x100)\n                    + call_option(2)\n                    + Op.MSTORE(0, Op.TLOAD(0xFF))\n                    + Op.RETURN(0, 32),\n                ),\n                CalldataCase(value=2, action=Op.SELFDESTRUCT(0)),\n            ],\n        ),\n        \"expected_storage\": {\n            1: 0x01,\n            2: 0x100,\n        },\n    }\n\n    TLOAD_AFTER_INNER_SELFDESTRUCT_NEW_CONTRACT = {\n        \"description\": (\n            \"In a newly created contract, use TSTORE to store a transient value and then call \"\n            \"for re-entry and self-destruct, and use TLOAD upon return from the inner \"\n            \"self-destructing call.\",\n        ),\n        \"pre_existing_contract\": False,\n        \"caller_bytecode\": (\n            Op.SSTORE(0, CREATE_CODE) + Op.SSTORE(1, call_option(1)) + Op.SSTORE(2, Op.MLOAD(0))\n        ),\n        \"callee_bytecode\": Switch(\n            cases=[\n                CalldataCase(\n                    value=1,\n                    action=Op.TSTORE(0xFF, 0x100)\n                    + Op.MSTORE(value=2)\n                    + Op.CALL(\n                        address=Op.ADDRESS,\n                        args_offset=0,\n                        args_size=32,\n                        ret_offset=0,\n                        ret_size=32,\n                    )\n                    + Op.MSTORE(0, Op.TLOAD(0xFF))\n                    + Op.RETURN(0, 32),\n                ),\n                CalldataCase(value=2, action=Op.SELFDESTRUCT(0)),\n            ],\n        ),\n        \"expected_storage\": {\n            1: 0x01,\n            2: 0x100,\n        },\n    }\n\n    TSTORE_AFTER_SELFDESTRUCT_PRE_EXISTING_CONTRACT = {\n        \"description\": (\n            \"Use self-destruct in a pre-existing contract and then use TSTORE upon a re-entry.\"\n            \"Lastly use TLOAD on another re-entry\",\n        ),\n        \"pre_existing_contract\": True,\n        \"caller_bytecode\": Op.SSTORE(0, Op.CALLDATALOAD(0))\n        + Op.SSTORE(1, call_option(1))\n        + Op.SSTORE(2, call_option(2))\n        + Op.SSTORE(3, call_option(3))\n        + Op.SSTORE(4, Op.MLOAD(0)),\n        \"callee_bytecode\": Switch(\n            cases=[\n                CalldataCase(value=1, action=Op.SELFDESTRUCT(0)),\n                CalldataCase(value=2, action=Op.TSTORE(0xFF, 0x100)),\n                CalldataCase(value=3, action=Op.MSTORE(0, Op.TLOAD(0xFF)) + Op.RETURN(0, 32)),\n            ],\n        ),\n        \"expected_storage\": {\n            1: 0x01,\n            2: 0x01,\n            3: 0x01,\n            4: 0x100,\n        },\n    }\n\n    TSTORE_AFTER_SELFDESTRUCT_NEW_CONTRACT = {\n        \"description\": (\n            \"Use self-destruct in a newly created contract and then use TSTORE upon a re-entry.\"\n            \"Lastly use TLOAD on another re-entry\",\n        ),\n        \"pre_existing_contract\": False,\n        \"caller_bytecode\": Op.SSTORE(0, CREATE_CODE)\n        + Op.SSTORE(1, call_option(1))\n        + Op.SSTORE(2, call_option(2))\n        + Op.SSTORE(3, call_option(3))\n        + Op.SSTORE(4, Op.MLOAD(0)),\n        \"callee_bytecode\": Switch(\n            cases=[\n                CalldataCase(value=1, action=Op.SELFDESTRUCT(0)),\n                CalldataCase(value=2, action=Op.TSTORE(0xFF, 0x100)),\n                CalldataCase(value=3, action=Op.MSTORE(0, Op.TLOAD(0xFF)) + Op.RETURN(0, 32)),\n            ],\n        ),\n        \"expected_storage\": {\n            1: 0x01,\n            2: 0x01,\n            3: 0x01,\n            4: 0x100,\n        },\n    }\n\n\n@SelfDestructCases.parametrize()\ndef test_reentrant_selfdestructing_call(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    pre_existing_contract: bool,\n    caller_bytecode: Bytecode,\n    callee_bytecode: Bytecode,\n    expected_storage: Dict,\n) -> None:\n    \"\"\"\n    Test transient storage in different reentrancy contexts after\n    selfdestructing.\n    \"\"\"\n    env = Environment()\n\n    caller_address = pre.deploy_contract(code=caller_bytecode)\n\n    data: bytes | Bytecode\n    if pre_existing_contract:\n        callee_address = pre.deploy_contract(code=callee_bytecode)\n        data = Hash(callee_address, left_padding=True)\n    else:\n        callee_address = compute_create_address(address=caller_address, nonce=1)\n        data = Initcode(deploy_code=callee_bytecode)\n\n    tx = Transaction(\n        sender=pre.fund_eoa(),\n        to=caller_address,\n        gas_limit=1_000_000,\n        data=data,\n    )\n\n    expected_storage[0] = callee_address\n\n    post: Dict = {caller_address: Account(storage=expected_storage)}\n\n    if pre_existing_contract:\n        post[callee_address] = Account(code=callee_bytecode)\n    else:\n        post[callee_address] = Account.NONEXISTENT\n\n    state_test(env=env, pre=pre, post=post, tx=tx)\n"
  },
  {
    "path": "tests/cancun/eip1153_tstore/test_tstore_reentrancy.py",
    "content": "\"\"\"EIP-1153 Transient Storage tests.\"\"\"\n\nfrom enum import Enum\n\nimport pytest\n\nfrom ethereum_test_tools import (\n    Account,\n    Address,\n    Alloc,\n    Case,\n    Environment,\n    Hash,\n    StateTestFiller,\n    Switch,\n    Transaction,\n)\nfrom ethereum_test_vm import Bytecode\nfrom ethereum_test_vm import Macros as Om\nfrom ethereum_test_vm import Opcodes as Op\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-1153.md\"\nREFERENCE_SPEC_VERSION = \"1eb863b534a5a3e19e9c196ab2a7f3db4bb9da17\"\n\n\nclass CallDestType(Enum):\n    \"\"\"Call dest type.\"\"\"\n\n    REENTRANCY = 1\n    EXTERNAL_CALL = 2\n\n\n@pytest.mark.ported_from(\n    [\n        \"https://github.com/ethereum/tests/blob/v13.3/src/GeneralStateTestsFiller/Cancun/stEIP1153-transientStorage/06_tstoreInReentrancyCallFiller.yml\",\n        \"https://github.com/ethereum/tests/blob/v13.3/src/GeneralStateTestsFiller/Cancun/stEIP1153-transientStorage/07_tloadAfterReentrancyStoreFiller.yml\",\n        \"https://github.com/ethereum/tests/blob/v13.3/src/GeneralStateTestsFiller/Cancun/stEIP1153-transientStorage/08_revertUndoesTransientStoreFiller.yml\",\n        \"https://github.com/ethereum/tests/blob/v13.3/src/GeneralStateTestsFiller/Cancun/stEIP1153-transientStorage/09_revertUndoesAllFiller.yml\",\n        \"https://github.com/ethereum/tests/blob/v13.3/src/GeneralStateTestsFiller/Cancun/stEIP1153-transientStorage/11_tstoreDelegateCallFiller.yml\",\n        \"https://github.com/ethereum/tests/blob/v13.3/src/GeneralStateTestsFiller/Cancun/stEIP1153-transientStorage/13_tloadStaticCallFiller.yml\",\n        \"https://github.com/ethereum/tests/blob/v13.3/src/GeneralStateTestsFiller/Cancun/stEIP1153-transientStorage/20_oogUndoesTransientStoreInCallFiller.yml\",\n    ],\n    pr=[\"https://github.com/ethereum/execution-spec-tests/pull/440\"],\n)\n@pytest.mark.valid_from(\"Cancun\")\n@pytest.mark.parametrize(\"call_type\", [Op.CALL, Op.CALLCODE, Op.DELEGATECALL, Op.STATICCALL])\n@pytest.mark.parametrize(\"call_return\", [Op.RETURN, Op.REVERT, Om.OOG])\n@pytest.mark.parametrize(\"call_dest_type\", [CallDestType.REENTRANCY, CallDestType.EXTERNAL_CALL])\ndef test_tstore_reentrancy(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    call_type: Op,\n    call_return: Op,\n    call_dest_type: CallDestType,\n) -> None:\n    \"\"\"\n    Ported .json vectors.\n\n    (06_tstoreInReentrancyCallFiller.yml)\n    Reentrant calls access the same transient storage\n\n    (07_tloadAfterReentrancyStoreFiller.yml)\n    Successfully returned calls do not revert transient storage writes\n\n    (08_revertUndoesTransientStoreFiller.yml)\n    Revert undoes the transient storage writes from a call.\n\n    (09_revertUndoesAllFiller.yml)\n    Revert undoes all the transient storage writes to the same key\n    from the failed call.\n\n    (11_tstoreDelegateCallFiller.yml)\n    delegatecall manipulates transient storage in the context of\n    the current address.\n\n    (13_tloadStaticCallFiller.yml)\n    Transient storage cannot be manipulated in a static context, tstore reverts\n\n    (20_oogUndoesTransientStoreInCallFiller.yml)\n    Out of gas undoes the transient storage writes from a call.\n    \"\"\"\n    tload_value_set_before_call = 80\n    tload_value_set_in_call = 90\n\n    # Storage cells\n    slot_tload_before_call = 0\n    slot_tload_in_subcall_result = 1\n    slot_tload_after_call = 2\n    slot_subcall_worked = 3\n    slot_tload_1_after_call = 4\n    slot_tstore_overwrite = 5\n    slot_code_worked = 6\n\n    # Function names\n    do_tstore = 1\n    do_reenter = 2\n    call_dest_address: Bytecode | Address\n    call_dest_address = Op.ADDRESS()\n\n    def make_call(call_type: Op) -> Bytecode:\n        if call_type == Op.DELEGATECALL or call_type == Op.STATICCALL:\n            return call_type(Op.GAS(), call_dest_address, 0, 32, 32, 32)\n        else:\n            return call_type(Op.GAS(), call_dest_address, 0, 0, 32, 32, 32)\n\n    subcall_code = (\n        Op.TSTORE(0, 89)\n        + Op.TSTORE(0, tload_value_set_in_call)\n        + Op.TSTORE(1, 11)\n        + Op.TSTORE(1, 12)\n        + Op.MSTORE(0, Op.TLOAD(0))\n        + call_return(0, 32)\n    )\n\n    address_code = pre.deploy_contract(\n        balance=0,\n        code=subcall_code,\n        storage={},\n    )\n    if call_dest_type == CallDestType.EXTERNAL_CALL:\n        call_dest_address = address_code\n\n    address_to = pre.deploy_contract(\n        balance=1_000_000_000_000_000_000,\n        code=Switch(\n            cases=[\n                Case(\n                    condition=Op.EQ(Op.CALLDATALOAD(0), do_tstore),\n                    action=subcall_code,\n                ),\n                Case(\n                    condition=Op.EQ(Op.CALLDATALOAD(0), do_reenter),\n                    action=Op.TSTORE(0, tload_value_set_before_call)\n                    + Op.SSTORE(slot_tload_before_call, Op.TLOAD(0))\n                    + Op.MSTORE(0, do_tstore)\n                    + Op.MSTORE(32, 0xFF)\n                    + Op.SSTORE(slot_subcall_worked, make_call(call_type))\n                    + Op.SSTORE(slot_tload_in_subcall_result, Op.MLOAD(32))\n                    + Op.SSTORE(slot_tload_after_call, Op.TLOAD(0))\n                    + Op.SSTORE(slot_tload_1_after_call, Op.TLOAD(1))\n                    + Op.TSTORE(0, 50)\n                    + Op.SSTORE(slot_tstore_overwrite, Op.TLOAD(0))\n                    + Op.SSTORE(slot_code_worked, 1),\n                ),\n            ],\n            default_action=None,\n        ),\n        storage={\n            slot_tload_before_call: 0xFF,\n            slot_tload_in_subcall_result: 0xFF,\n            slot_tload_after_call: 0xFF,\n            slot_subcall_worked: 0xFF,\n            slot_tload_1_after_call: 0xFF,\n            slot_tstore_overwrite: 0xFF,\n            slot_code_worked: 0xFF,\n        },\n    )\n\n    on_failing_calls = call_type == Op.STATICCALL or call_return in [Op.REVERT, Om.OOG]\n    on_successful_delegate_or_callcode = call_type in [\n        Op.DELEGATECALL,\n        Op.CALLCODE,\n    ] and call_return not in [Op.REVERT, Om.OOG]\n\n    if call_dest_type == CallDestType.REENTRANCY:\n        post = {\n            address_to: Account(\n                storage={\n                    slot_code_worked: 1,\n                    slot_tload_before_call: tload_value_set_before_call,\n                    slot_tload_in_subcall_result: (\n                        # we fail to obtain in call result if it fails\n                        0xFF\n                        if call_type == Op.STATICCALL or call_return == Om.OOG\n                        else tload_value_set_in_call\n                    ),\n                    # reentrant tstore overrides value in upper level\n                    slot_tload_after_call: (\n                        tload_value_set_before_call\n                        if on_failing_calls\n                        else tload_value_set_in_call\n                    ),\n                    slot_tload_1_after_call: 0 if on_failing_calls else 12,\n                    slot_tstore_overwrite: 50,\n                    # tstore in static call not allowed\n                    slot_subcall_worked: 0 if on_failing_calls else 1,\n                }\n            )\n        }\n    else:\n        post = {\n            address_to: Account(\n                storage={\n                    slot_code_worked: 1,\n                    slot_tload_before_call: tload_value_set_before_call,\n                    slot_tload_in_subcall_result: (\n                        # we fail to obtain in call result if it fails\n                        0xFF\n                        if call_type == Op.STATICCALL or call_return == Om.OOG\n                        else tload_value_set_in_call\n                    ),\n                    # external tstore overrides value in upper level only in\n                    # delegate and callcode\n                    slot_tload_after_call: (\n                        tload_value_set_in_call\n                        if on_successful_delegate_or_callcode\n                        else tload_value_set_before_call\n                    ),\n                    slot_tload_1_after_call: 12 if on_successful_delegate_or_callcode else 0,\n                    slot_tstore_overwrite: 50,\n                    # tstore in static call not allowed, reentrancy means\n                    # external call here\n                    slot_subcall_worked: 0 if on_failing_calls else 1,\n                }\n            )\n        }\n\n    tx = Transaction(\n        sender=pre.fund_eoa(7_000_000_000_000_000_000),\n        to=address_to,\n        gas_price=10,\n        data=Hash(do_reenter),\n        gas_limit=5000000,\n        value=0,\n    )\n\n    state_test(env=Environment(), pre=pre, post=post, tx=tx)\n"
  },
  {
    "path": "tests/cancun/eip4788_beacon_root/__init__.py",
    "content": "\"\"\"Cross-client EIP-4788 Tests.\"\"\"\n"
  },
  {
    "path": "tests/cancun/eip4788_beacon_root/conftest.py",
    "content": "\"\"\"Shared pytest definitions local to EIP-4788 tests.\"\"\"\n\nfrom itertools import count\nfrom typing import Dict, Iterator, List\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    AccessList,\n    Account,\n    Address,\n    Alloc,\n    AuthorizationTuple,\n    Bytecode,\n    Environment,\n    Hash,\n    Storage,\n    Transaction,\n    add_kzg_version,\n    keccak256,\n)\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom .spec import Spec, SpecHelpers\n\nBLOB_COMMITMENT_VERSION_KZG = 1\n\n\n@pytest.fixture\ndef timestamp() -> int:  # noqa: D103\n    return 12\n\n\n@pytest.fixture\ndef beacon_roots() -> Iterator[bytes]:\n    \"\"\"\n    By default, return an iterator that returns the keccak of an internal\n    counter.\n    \"\"\"\n\n    class BeaconRoots:\n        def __init__(self) -> None:\n            self._counter = count(1)\n\n        def __iter__(self) -> \"BeaconRoots\":\n            # Create a fresh iterator with a new counter each time\n            return BeaconRoots()\n\n        def __next__(self) -> bytes:\n            return keccak256(int.to_bytes(next(self._counter), length=8, byteorder=\"big\"))\n\n    return BeaconRoots()\n\n\n@pytest.fixture\ndef beacon_root(request: pytest.FixtureRequest, beacon_roots: Iterator[bytes]) -> bytes:  # noqa: D103\n    return Hash(request.param) if hasattr(request, \"param\") else next(beacon_roots)\n\n\n@pytest.fixture\ndef env(timestamp: int, beacon_root: bytes) -> Environment:  # noqa: D103\n    return Environment(\n        timestamp=timestamp,\n        parent_beacon_block_root=beacon_root,\n    )\n\n\n@pytest.fixture\ndef call_beacon_root_contract() -> bool:\n    \"\"\"By default, do not directly call the beacon root contract.\"\"\"\n    return False\n\n\n@pytest.fixture\ndef call_type() -> Op:  # noqa: D103\n    return Op.CALL\n\n\n@pytest.fixture\ndef call_value() -> int:  # noqa: D103\n    return 0\n\n\n@pytest.fixture\ndef call_gas() -> int:  # noqa: D103\n    return Spec.BEACON_ROOTS_CALL_GAS\n\n\n@pytest.fixture\ndef caller_address(pre: Alloc, contract_call_code: Bytecode) -> Address:  # noqa: D103\n    return pre.deploy_contract(contract_call_code, balance=0x10**10)\n\n\n@pytest.fixture\ndef contract_call_code(call_type: Op, call_value: int, call_gas: int) -> Bytecode:\n    \"\"\"Code to call the beacon root contract.\"\"\"\n    args_start, args_length, return_start, return_length = 0x20, Op.CALLDATASIZE, 0x00, 0x20\n    contract_call_code = Op.CALLDATACOPY(args_start, 0x00, args_length)\n    if call_type == Op.CALL or call_type == Op.CALLCODE:\n        contract_call_code += Op.SSTORE(\n            0x00,  # store the result of the contract call in storage[0]\n            # https://github.com/ethereum/execution-spec-tests/issues/348\n            call_type(\n                call_gas,\n                Spec.BEACON_ROOTS_ADDRESS,\n                call_value,\n                args_start,\n                args_length,\n                return_start,\n                return_length,\n            ),\n        )\n    elif call_type == Op.DELEGATECALL or call_type == Op.STATICCALL:\n        # delegatecall and staticcall use one less argument\n        contract_call_code += Op.SSTORE(\n            0x00,\n            # https://github.com/ethereum/execution-spec-tests/issues/348\n            call_type(\n                call_gas,\n                Spec.BEACON_ROOTS_ADDRESS,\n                args_start,\n                args_length,\n                return_start,\n                return_length,\n            ),\n        )\n    contract_call_code += (\n        Op.SSTORE(  # Save the return value of the contract call\n            0x01,\n            Op.MLOAD(return_start),\n        )\n        + Op.SSTORE(  # Save the length of the return value of the contract call\n            0x02,\n            Op.RETURNDATASIZE,\n        )\n        + Op.RETURNDATACOPY(\n            return_start,\n            0x00,\n            Op.RETURNDATASIZE,\n        )\n        + Op.SSTORE(\n            0x03,\n            Op.MLOAD(return_start),\n        )\n    )\n    return contract_call_code\n\n\n@pytest.fixture\ndef valid_call() -> bool:\n    \"\"\"Beacon root contract call validity: defaults to True.\"\"\"\n    return True\n\n\n@pytest.fixture\ndef valid_input() -> bool:\n    \"\"\"Timestamp input to contract call validity: defaults to True.\"\"\"\n    return True\n\n\n@pytest.fixture\ndef system_address_balance() -> int:\n    \"\"\"Balance of the system address.\"\"\"\n    return 0\n\n\n@pytest.fixture(autouse=True)\ndef pre_fund_system_address(pre: Alloc, system_address_balance: int) -> None:\n    \"\"\"Whether to fund the system address.\"\"\"\n    if system_address_balance > 0:\n        pre.fund_address(Address(Spec.SYSTEM_ADDRESS), system_address_balance)\n\n\n@pytest.fixture\ndef tx_to_address(caller_address: Address) -> Address:\n    \"\"\"Specify the address for the `Transaction`'s `to` field.\"\"\"\n    return caller_address\n\n\n@pytest.fixture\ndef auto_access_list() -> bool:\n    \"\"\"Whether to append the accessed storage keys to the transaction.\"\"\"\n    return False\n\n\n@pytest.fixture\ndef access_list(auto_access_list: bool, timestamp: int) -> List[AccessList]:\n    \"\"\"\n    Access list included in the transaction to call the beacon root contract.\n    \"\"\"\n    if auto_access_list:\n        return [\n            AccessList(\n                address=Spec.BEACON_ROOTS_ADDRESS,\n                storage_keys=[\n                    timestamp,\n                    timestamp + Spec.HISTORY_BUFFER_LENGTH,\n                ],\n            ),\n        ]\n    return []\n\n\n@pytest.fixture\ndef tx_data(timestamp: int) -> bytes:\n    \"\"\"Tx data included in the to call the beacon root contract.\"\"\"\n    return Hash(timestamp)\n\n\n@pytest.fixture\ndef tx_type() -> int:\n    \"\"\"\n    Transaction type to call the caller contract or the beacon root contract\n    directly.\n\n    By default use a type 2 transaction.\n    \"\"\"\n    return 2\n\n\n@pytest.fixture\ndef tx(\n    pre: Alloc,\n    fork: Fork,\n    tx_to_address: Address,\n    tx_data: bytes,\n    tx_type: int,\n    access_list: List[AccessList],\n    call_beacon_root_contract: bool,\n) -> Transaction:\n    \"\"\"Prepare transaction to call the beacon root contract caller account.\"\"\"\n    to = Spec.BEACON_ROOTS_ADDRESS if call_beacon_root_contract else tx_to_address\n    kwargs: Dict = {\n        \"ty\": tx_type,\n        \"sender\": pre.fund_eoa(),\n        \"data\": tx_data,\n        \"to\": to,\n        \"gas_limit\": 1_000_000,\n    }\n\n    if tx_type > 0:\n        kwargs[\"access_list\"] = access_list\n\n    if tx_type == 3:\n        kwargs[\"max_fee_per_blob_gas\"] = fork.min_base_fee_per_blob_gas()\n        kwargs[\"blob_versioned_hashes\"] = add_kzg_version([0], BLOB_COMMITMENT_VERSION_KZG)\n\n    if tx_type == 4:\n        signer = pre.fund_eoa(amount=0)\n        kwargs[\"authorization_list\"] = [\n            AuthorizationTuple(\n                signer=signer,\n                address=Address(0),\n                nonce=0,\n            )\n        ]\n\n    if tx_type > 4:\n        raise Exception(f\"Unexpected transaction type: '{tx_type}'. Test requires update.\")\n\n    return Transaction(**kwargs)\n\n\n@pytest.fixture\ndef post(\n    caller_address: Address,\n    beacon_root: bytes,\n    valid_call: bool,\n    valid_input: bool,\n    call_beacon_root_contract: bool,\n) -> Dict:\n    \"\"\"\n    Prepare expected post state for a single contract call based upon the\n    success or failure of the call, and the validity of the timestamp input.\n    \"\"\"\n    storage = Storage()\n    if not call_beacon_root_contract:\n        storage = SpecHelpers.expected_storage(\n            beacon_root=beacon_root,\n            valid_call=valid_call,\n            valid_input=valid_input,\n        )\n    return {\n        caller_address: Account(\n            storage=storage,\n        ),\n    }\n"
  },
  {
    "path": "tests/cancun/eip4788_beacon_root/spec.py",
    "content": "\"\"\"Defines EIP-4788 specification constants and functions.\"\"\"\n\nfrom dataclasses import dataclass\n\nfrom ethereum_test_tools import Storage\n\n\n@dataclass(frozen=True)\nclass ReferenceSpec:\n    \"\"\"Defines the reference spec version and git path.\"\"\"\n\n    git_path: str\n    version: str\n\n\nref_spec_4788 = ReferenceSpec(\"EIPS/eip-4788.md\", \"efcac43ef9aadd87dd4e0a2fbd14d5d1317eddf3\")\n\n\n# Constants\n@dataclass(frozen=True)\nclass Spec:\n    \"\"\"\n    Parameters from the EIP-4788 specifications as defined at\n    https://eips.ethereum.org/EIPS/eip-4788#specification.\n    \"\"\"\n\n    BEACON_ROOTS_ADDRESS = 0x000F3DF6D732807EF1319FB7B8BB8522D0BEAC02\n    BEACON_ROOTS_CALL_GAS = 100_000\n    BEACON_ROOTS_DEPLOYER_ADDRESS = 0x0B799C86A49DEEB90402691F1041AA3AF2D3C875\n    HISTORY_BUFFER_LENGTH = 8_191\n    SYSTEM_ADDRESS = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE\n    FORK_TIMESTAMP = 15_000  # ShanghaiToCancun timestamp\n\n\n@dataclass(frozen=True)\nclass SpecHelpers:\n    \"\"\"Helper functions closely related to the EIP-4788 specification.\"\"\"\n\n    def timestamp_index(self, timestamp: int) -> int:\n        \"\"\"Derive the timestamp index into the timestamp ring buffer.\"\"\"\n        return timestamp % Spec.HISTORY_BUFFER_LENGTH\n\n    def root_index(self, timestamp: int) -> int:\n        \"\"\"Derive the root index into the root ring buffer.\"\"\"\n        return self.timestamp_index(timestamp) + Spec.HISTORY_BUFFER_LENGTH\n\n    @staticmethod\n    def expected_storage(\n        *,\n        beacon_root: bytes,\n        valid_call: bool,\n        valid_input: bool,\n    ) -> Storage:\n        \"\"\"\n        Derive expected storage for a given beacon root contract call\n        dependent on:\n        - success or failure of the call\n        - validity of the timestamp input used within the call.\n        \"\"\"\n        # By default assume the call is unsuccessful and all keys are zero\n        storage = Storage(dict.fromkeys(range(4), 0))  # type: ignore\n        if valid_call and valid_input:\n            # beacon root contract call is successful\n            storage[0] = 1\n            storage[1] = beacon_root\n            storage[2] = 32\n            storage[3] = beacon_root\n\n        return storage\n"
  },
  {
    "path": "tests/cancun/eip4788_beacon_root/test_beacon_root_contract.py",
    "content": "\"\"\"\nTests beacon block root for [EIP-4788: Beacon block root in the EVM](https://eips.ethereum.org/EIPS/eip-4788).\n\nNote: To add a new test, add a function that is named `test_<test_name>`.\n\nIt must take at least the following arguments:\n\n- `state_test`\n- `env`\n- `pre`\n- `tx`\n- `post`\n- `valid_call`\n\nAll other `pytest.fixtures` can be parametrized to generate new\ncombinations and test cases.\n\"\"\"\n\nfrom itertools import count\nfrom typing import Callable, Dict, Iterator, List\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    Account,\n    Address,\n    Alloc,\n    Block,\n    BlockchainTestFiller,\n    Bytecode,\n    Hash,\n    Storage,\n    Transaction,\n    Withdrawal,\n)\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .spec import Spec, ref_spec_4788\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_4788.git_path\nREFERENCE_SPEC_VERSION = ref_spec_4788.version\n\n\ndef count_factory(start: int, step: int = 1) -> Callable[[], Iterator[int]]:\n    \"\"\"\n    Create a factory that returns fresh count iterators to avoid state\n    persistence.\n    \"\"\"\n    return lambda: count(start, step)\n\n\npytestmark = pytest.mark.pre_alloc_group(\n    \"beacon_root_tests\", reason=\"Tests beacon root contract functionality using system contract\"\n)\n\n\n@pytest.mark.parametrize(\n    \"call_gas, valid_call\",\n    [\n        pytest.param(Spec.BEACON_ROOTS_CALL_GAS, True),\n        pytest.param(int(Spec.BEACON_ROOTS_CALL_GAS / 100), False),\n    ],\n)\n@pytest.mark.parametrize(\n    \"call_type,call_value,valid_input\",\n    [\n        (Op.CALL, 1, True),\n        (Op.CALL, 0, True),\n        (Op.CALLCODE, 0, False),\n        (Op.DELEGATECALL, 0, False),\n        (Op.STATICCALL, 0, True),\n    ],\n)\n@pytest.mark.valid_from(\"Cancun\")\ndef test_beacon_root_contract_calls(\n    blockchain_test: BlockchainTestFiller,\n    beacon_root: bytes,\n    timestamp: int,\n    pre: Alloc,\n    tx: Transaction,\n    post: Dict,\n) -> None:\n    \"\"\"\n    Test calling the beacon root contract in various call contexts.\n\n    These call contexts are tested:\n    - `CALL`\n    - `DELEGATECALL`\n    - `CALLCODE`\n    - `STATICCALL`\n    for different call gas amounts:\n    - exact gas (valid call)\n    - extra gas (valid call)\n    - insufficient gas (invalid call).\n\n    The expected result is that the contract call will be executed if the gas\n    amount is met and return the correct`parent_beacon_block_root`. Otherwise\n    the call will be invalid, and not be executed. This is highlighted within\n    storage by storing the return value of each call context.\n    \"\"\"\n    blockchain_test(\n        pre=pre,\n        blocks=[Block(txs=[tx], parent_beacon_block_root=beacon_root, timestamp=timestamp)],\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"timestamp, valid_input\",\n    [\n        (0x0C, True),  # twelve\n        (2**32, True),  # arbitrary\n        (2**64 - 2, True),  # near-max\n        (2**64 - 1, True),  # max\n        # TODO: Update t8n to un marshal > 64-bit int\n        # Exception: failed to evaluate: ERROR(10): failed un marshaling stdin\n        # (2**64, False),  # overflow\n        # Exception: failed to evaluate: ERROR(10): failed un marshaling stdin\n        # (2**64 + 1, False),  # overflow+1\n    ],\n)\n@pytest.mark.parametrize(\"auto_access_list\", [False, True])\n@pytest.mark.parametrize(\n    \"system_address_balance\",\n    [\n        pytest.param(\n            0,\n            id=\"empty_system_address\",\n            marks=pytest.mark.pre_alloc_group(\n                \"beacon_root_empty_system\", reason=\"Tests with empty system address balance\"\n            ),\n        ),\n        pytest.param(\n            1,\n            id=\"one_wei_system_address\",\n            marks=pytest.mark.pre_alloc_group(\n                \"beacon_root_one_wei_system\", reason=\"Tests with 1 wei system address balance\"\n            ),\n        ),\n        pytest.param(\n            int(1e18),\n            id=\"one_eth_system_address\",\n            marks=pytest.mark.pre_alloc_group(\n                \"beacon_root_one_eth_system\", reason=\"Tests with 1 ETH system address balance\"\n            ),\n        ),\n    ],\n)\n@pytest.mark.valid_from(\"Cancun\")\ndef test_beacon_root_contract_timestamps(\n    blockchain_test: BlockchainTestFiller,\n    beacon_root: bytes,\n    timestamp: int,\n    pre: Alloc,\n    tx: Transaction,\n    post: Dict,\n) -> None:\n    \"\"\"\n    Tests the beacon root contract call across for various valid and invalid\n    timestamps.\n\n    The expected result is that the contract call will return the correct\n    `parent_beacon_block_root` for a valid input timestamp and return the\n    zero'd 32 bytes value for an invalid input timestamp.\n    \"\"\"\n    blockchain_test(\n        pre=pre,\n        blocks=[Block(txs=[tx], parent_beacon_block_root=beacon_root, timestamp=timestamp)],\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"tx_data\",\n    [\n        pytest.param(bytes(), id=\"empty_calldata\"),\n        pytest.param(int.to_bytes(12, length=1, byteorder=\"big\"), id=\"one_byte\"),\n        pytest.param(int.to_bytes(12, length=31, byteorder=\"big\"), id=\"31_bytes\"),\n        pytest.param(int.to_bytes(12, length=33, byteorder=\"big\"), id=\"33_bytes\"),\n        pytest.param(int.to_bytes(12, length=1024, byteorder=\"big\"), id=\"1024_bytes\"),\n    ],\n)\n@pytest.mark.parametrize(\"valid_call,valid_input\", [(False, False)])\n@pytest.mark.parametrize(\"timestamp\", [12])\n@pytest.mark.valid_from(\"Cancun\")\ndef test_calldata_lengths(\n    blockchain_test: BlockchainTestFiller,\n    beacon_root: bytes,\n    timestamp: int,\n    pre: Alloc,\n    tx: Transaction,\n    post: Dict,\n) -> None:\n    \"\"\"\n    Tests the beacon root contract call using multiple invalid input lengths.\n    \"\"\"\n    blockchain_test(\n        pre=pre,\n        blocks=[Block(txs=[tx], parent_beacon_block_root=beacon_root, timestamp=timestamp)],\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"beacon_root, timestamp\",\n    [\n        (12, 12),  # twelve\n        (2**32, 2**32),  # arbitrary\n        (2**64 - 2, 2**64 - 2),  # near-max\n        (2**64 - 1, 2**64 - 1),  # max\n    ],\n    indirect=[\"beacon_root\"],\n)\n@pytest.mark.parametrize(\"auto_access_list\", [False, True])\n@pytest.mark.valid_from(\"Cancun\")\ndef test_beacon_root_equal_to_timestamp(\n    blockchain_test: BlockchainTestFiller,\n    beacon_root: bytes,\n    timestamp: int,\n    pre: Alloc,\n    tx: Transaction,\n    post: Dict,\n) -> None:\n    \"\"\"\n    Tests the beacon root contract call where the beacon root is equal to the\n    timestamp.\n\n    The expected result is that the contract call will return the\n    `parent_beacon_block_root`, as all timestamps used are valid.\n    \"\"\"\n    blockchain_test(\n        pre=pre,\n        blocks=[Block(txs=[tx], parent_beacon_block_root=beacon_root, timestamp=timestamp)],\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\"auto_access_list\", [False, True])\n@pytest.mark.parametrize(\"call_beacon_root_contract\", [True])\n@pytest.mark.with_all_tx_types\n@pytest.mark.valid_from(\"Cancun\")\ndef test_tx_to_beacon_root_contract(\n    blockchain_test: BlockchainTestFiller,\n    beacon_root: bytes,\n    timestamp: int,\n    pre: Alloc,\n    tx: Transaction,\n    post: Dict,\n) -> None:\n    \"\"\"\n    Tests the beacon root contract using a transaction with different types and\n    data lengths.\n    \"\"\"\n    blockchain_test(\n        pre=pre,\n        blocks=[Block(txs=[tx], parent_beacon_block_root=beacon_root, timestamp=timestamp)],\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"tx_data\",\n    [\n        pytest.param(int.to_bytes(0, length=32, byteorder=\"big\"), id=\"zero_calldata\"),\n    ],\n)\n@pytest.mark.parametrize(\"valid_call,valid_input\", [(False, False)])\n@pytest.mark.parametrize(\"timestamp\", [12])\n@pytest.mark.valid_from(\"Cancun\")\ndef test_invalid_beacon_root_calldata_value(\n    blockchain_test: BlockchainTestFiller,\n    beacon_root: bytes,\n    timestamp: int,\n    pre: Alloc,\n    tx: Transaction,\n    post: Dict,\n) -> None:\n    \"\"\"\n    Tests the beacon root contract call using invalid input values:\n    - zero calldata.\n\n    Contract should revert.\n    \"\"\"\n    blockchain_test(\n        pre=pre,\n        blocks=[Block(txs=[tx], parent_beacon_block_root=beacon_root, timestamp=timestamp)],\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\"timestamp\", [12])\n@pytest.mark.valid_from(\"Cancun\")\ndef test_beacon_root_selfdestruct(\n    blockchain_test: BlockchainTestFiller,\n    beacon_root: bytes,\n    timestamp: int,\n    pre: Alloc,\n    tx: Transaction,\n    post: Dict,\n) -> None:\n    \"\"\"\n    Tests that self destructing the beacon root address transfers actors\n    balance correctly.\n    \"\"\"\n    # self destruct actor\n    self_destruct_actor_address = pre.deploy_contract(\n        Op.SELFDESTRUCT(Spec.BEACON_ROOTS_ADDRESS),\n        balance=0xBA1,\n    )\n    # self destruct caller\n    self_destruct_caller_address = pre.deploy_contract(\n        Op.CALL(gas=100_000, address=self_destruct_actor_address)\n        + Op.SSTORE(0, Op.BALANCE(Spec.BEACON_ROOTS_ADDRESS))\n    )\n    post = {\n        self_destruct_caller_address: Account(\n            storage=Storage({0: 0xBA1}),  # type: ignore\n        )\n    }\n    blockchain_test(\n        pre=pre,\n        blocks=[\n            Block(\n                txs=[\n                    Transaction(\n                        sender=pre.fund_eoa(),\n                        to=self_destruct_caller_address,\n                        gas_limit=100_000,\n                    )\n                ]\n            )\n        ],\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"timestamps_factory\",\n    [\n        pytest.param(\n            count_factory(\n                start=Spec.HISTORY_BUFFER_LENGTH - 5,\n                step=1,\n            ),\n            id=\"buffer_wraparound\",\n        ),\n        pytest.param(\n            count_factory(\n                start=12,\n                step=Spec.HISTORY_BUFFER_LENGTH,\n            ),\n            id=\"buffer_wraparound_overwrite\",\n        ),\n        pytest.param(\n            count_factory(\n                start=2**32,\n                step=Spec.HISTORY_BUFFER_LENGTH,\n            ),\n            id=\"buffer_wraparound_overwrite_high_timestamp\",\n        ),\n        pytest.param(\n            count_factory(\n                start=5,\n                step=Spec.HISTORY_BUFFER_LENGTH - 1,\n            ),\n            id=\"buffer_wraparound_no_overwrite\",\n        ),\n        pytest.param(\n            count_factory(\n                start=Spec.HISTORY_BUFFER_LENGTH - 3,\n                step=Spec.HISTORY_BUFFER_LENGTH + 1,\n            ),\n            id=\"buffer_wraparound_no_overwrite_2\",\n        ),\n    ],\n)\n@pytest.mark.parametrize(\"block_count\", [10])  # All tests use 10 blocks\n@pytest.mark.valid_from(\"Cancun\")\ndef test_multi_block_beacon_root_timestamp_calls(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    timestamps_factory: Callable[[], Iterator[int]],\n    beacon_roots: Iterator[bytes],\n    block_count: int,\n    call_gas: int,\n    call_value: int,\n) -> None:\n    \"\"\"\n    Tests multiple blocks where each block writes a timestamp to storage and\n    contains one transaction that calls the beacon root contract multiple\n    times.\n\n    The blocks might overwrite the historical roots buffer, or not, depending\n    on the `timestamps`, and whether they increment in multiples of\n    `Spec.HISTORY_BUFFER_LENGTH` or not.\n\n    By default, the beacon roots are the keccak of the block number.\n\n    Each transaction checks the current timestamp and also all previous\n    timestamps, and verifies that the beacon root is correct for all of them if\n    the timestamp is supposed to be in the buffer, which might have been\n    overwritten by a later block.\n    \"\"\"\n    # Create fresh iterator to avoid state persistence between test phases\n    timestamps = timestamps_factory()\n\n    blocks: List[Block] = []\n    post = {}\n\n    timestamps_storage: Dict[int, int] = {}\n    roots_storage: Dict[int, bytes] = {}\n\n    all_timestamps: List[int] = []\n\n    sender = pre.fund_eoa()\n\n    for timestamp, beacon_root, _i in zip(\n        timestamps,\n        beacon_roots,\n        range(block_count),\n        strict=False,\n    ):\n        timestamp_index = timestamp % Spec.HISTORY_BUFFER_LENGTH\n        timestamps_storage[timestamp_index] = timestamp\n        roots_storage[timestamp_index] = beacon_root\n\n        all_timestamps.append(timestamp)\n\n        withdraw_index = count(0)\n\n        current_call_account_code = Bytecode()\n        current_call_account_expected_storage = Storage()\n\n        # We are going to call the beacon roots contract once for every\n        # timestamp of the current and all previous blocks, and check that the\n        # returned beacon root is still correct only if it was not overwritten.\n        for t in all_timestamps:\n            current_call_account_code += Op.MSTORE(0, t)\n            call_valid = (\n                timestamp_index in timestamps_storage\n                and timestamps_storage[t % Spec.HISTORY_BUFFER_LENGTH] == t\n            )\n            current_call_account_code += Op.SSTORE(\n                current_call_account_expected_storage.store_next(0x01 if call_valid else 0x00),\n                Op.CALL(\n                    call_gas,\n                    Spec.BEACON_ROOTS_ADDRESS,\n                    call_value,\n                    0x00,\n                    0x20,\n                    0x20,\n                    0x20,\n                ),\n            )\n\n            current_call_account_code += Op.SSTORE(\n                current_call_account_expected_storage.store_next(\n                    roots_storage[t % Spec.HISTORY_BUFFER_LENGTH] if call_valid else 0x00\n                ),\n                Op.MLOAD(0x20),\n            )\n\n        current_call_account_address = pre.deploy_contract(current_call_account_code)\n\n        post[current_call_account_address] = Account(\n            storage=current_call_account_expected_storage,\n        )\n        blocks.append(\n            Block(\n                txs=[\n                    Transaction(\n                        sender=sender,\n                        to=current_call_account_address,\n                        data=Hash(timestamp),\n                        gas_limit=1_000_000,\n                    )\n                ],\n                parent_beacon_block_root=beacon_root,\n                timestamp=timestamp,\n                withdrawals=[\n                    # Also withdraw to the beacon root contract and the system\n                    # address\n                    Withdrawal(\n                        address=Spec.BEACON_ROOTS_ADDRESS,\n                        amount=1,\n                        index=next(withdraw_index),\n                        validator_index=0,\n                    ),\n                    Withdrawal(\n                        address=Spec.SYSTEM_ADDRESS,\n                        amount=1,\n                        index=next(withdraw_index),\n                        validator_index=1,\n                    ),\n                ],\n            )\n        )\n\n    blockchain_test(\n        pre=pre,\n        blocks=blocks,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"timestamps_factory\",\n    [pytest.param(count_factory(start=1000, step=1000), id=\"fork_transition\")],\n)\n@pytest.mark.parametrize(\"block_count\", [20])\n@pytest.mark.valid_at_transition_to(\"Cancun\")\ndef test_beacon_root_transition(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    timestamps_factory: Callable[[], Iterator[int]],\n    beacon_roots: Iterator[bytes],\n    block_count: int,\n    call_gas: int,\n    call_value: int,\n    fork: Fork,\n) -> None:\n    \"\"\"\n    Tests the fork transition to cancun and verifies that blocks with timestamp\n    lower than the transition timestamp do not contain beacon roots in the\n    pre-deployed contract.\n    \"\"\"\n    # Create fresh iterator to avoid state persistence between test phases\n    timestamps = timestamps_factory()\n\n    blocks: List[Block] = []\n    post = {}\n\n    timestamps_storage: Dict[int, int] = {}\n    roots_storage: Dict[int, bytes] = {}\n\n    all_timestamps: List[int] = []\n    timestamps_in_beacon_root_contract: List[int] = []\n\n    sender = pre.fund_eoa()\n\n    for timestamp, beacon_root, i in zip(\n        timestamps, beacon_roots, range(block_count), strict=False\n    ):\n        timestamp_index = timestamp % Spec.HISTORY_BUFFER_LENGTH\n\n        transitioned = fork.header_beacon_root_required(block_number=i, timestamp=timestamp)\n        if transitioned:\n            # We've transitioned, the current timestamp must contain a value in\n            # the contract\n            timestamps_in_beacon_root_contract.append(timestamp)\n            timestamps_storage[timestamp_index] = timestamp\n            roots_storage[timestamp_index] = beacon_root\n\n        all_timestamps.append(timestamp)\n\n        withdraw_index = count(0)\n\n        current_call_account_code = Bytecode()\n        current_call_account_expected_storage = Storage()\n\n        # We are going to call the beacon roots contract once for every\n        # timestamp of the current and all previous blocks, and check that the\n        # returned beacon root is correct only if it was after the transition\n        # timestamp.\n        for t in all_timestamps:\n            current_call_account_code += Op.MSTORE(0, t)\n            call_valid = (\n                t in timestamps_in_beacon_root_contract\n                and timestamp_index in timestamps_storage\n                and timestamps_storage[t % Spec.HISTORY_BUFFER_LENGTH] == t\n            )\n            current_call_account_code += Op.SSTORE(\n                current_call_account_expected_storage.store_next(0x01 if call_valid else 0x00),\n                Op.CALL(\n                    call_gas,\n                    Spec.BEACON_ROOTS_ADDRESS,\n                    call_value,\n                    0x00,\n                    0x20,\n                    0x20,\n                    0x20,\n                ),\n            )\n\n            current_call_account_code += Op.SSTORE(\n                current_call_account_expected_storage.store_next(\n                    roots_storage[t % Spec.HISTORY_BUFFER_LENGTH] if call_valid else 0x00\n                ),\n                Op.MLOAD(0x20),\n            )\n\n        current_call_account_address = pre.deploy_contract(current_call_account_code)\n        post[current_call_account_address] = Account(\n            storage=current_call_account_expected_storage,\n        )\n        blocks.append(\n            Block(\n                txs=[\n                    Transaction(\n                        sender=sender,\n                        to=current_call_account_address,\n                        data=Hash(timestamp),\n                        gas_limit=1_000_000,\n                    )\n                ],\n                parent_beacon_block_root=beacon_root if transitioned else None,\n                timestamp=timestamp,\n                withdrawals=[\n                    # Also withdraw to the beacon root contract and the system\n                    # address\n                    Withdrawal(\n                        address=Spec.BEACON_ROOTS_ADDRESS,\n                        amount=1,\n                        index=next(withdraw_index),\n                        validator_index=0,\n                    ),\n                    Withdrawal(\n                        address=Spec.SYSTEM_ADDRESS,\n                        amount=1,\n                        index=next(withdraw_index),\n                        validator_index=1,\n                    ),\n                ],\n            )\n        )\n\n    blockchain_test(\n        pre=pre,\n        blocks=blocks,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\"timestamp\", [15_000])\n@pytest.mark.valid_at_transition_to(\"Cancun\")\n@pytest.mark.pre_alloc_group(\n    \"beacon_root_no_contract\", reason=\"This test removes the beacon root system contract\"\n)\ndef test_no_beacon_root_contract_at_transition(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    beacon_roots: Iterator[bytes],\n    tx: Transaction,\n    timestamp: int,\n    caller_address: Address,\n    fork: Fork,\n) -> None:\n    \"\"\"\n    Tests the fork transition to cancun in the case where the beacon root\n    pre-deploy was not deployed in time for the fork.\n    \"\"\"\n    assert fork.header_beacon_root_required(block_number=1, timestamp=timestamp)\n    blocks: List[Block] = [\n        Block(\n            txs=[tx],\n            parent_beacon_block_root=next(beacon_roots),\n            timestamp=timestamp,\n            withdrawals=[\n                # Also withdraw to the beacon root contract and the system\n                # address\n                Withdrawal(\n                    address=Spec.BEACON_ROOTS_ADDRESS,\n                    amount=1,\n                    index=0,\n                    validator_index=0,\n                ),\n                Withdrawal(\n                    address=Spec.SYSTEM_ADDRESS,\n                    amount=1,\n                    index=1,\n                    validator_index=1,\n                ),\n            ],\n        )\n    ]\n    pre[Spec.BEACON_ROOTS_ADDRESS] = Account(\n        code=b\"\",  # Remove the code that is automatically allocated on Cancun\n        # fork\n        nonce=0,\n        balance=0,\n    )\n    post = {\n        Spec.BEACON_ROOTS_ADDRESS: Account(\n            storage={\n                timestamp % Spec.HISTORY_BUFFER_LENGTH: 0,\n                (timestamp % Spec.HISTORY_BUFFER_LENGTH) + Spec.HISTORY_BUFFER_LENGTH: 0,\n            },\n            code=b\"\",\n            nonce=0,\n            balance=int(1e9),\n        ),\n        caller_address: Account(\n            storage={0: 1},  # Successful call because the contract is not there, but\n            # nothing else is stored\n        ),\n    }\n    blockchain_test(\n        pre=pre,\n        blocks=blocks,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"timestamp\",\n    [\n        pytest.param(15_000, id=\"deploy_on_shanghai\"),\n        pytest.param(30_000, id=\"deploy_on_cancun\"),\n    ],\n)\n@pytest.mark.valid_at_transition_to(\"Cancun\")\n@pytest.mark.pre_alloc_group(\n    \"beacon_root_deploy_contract\",\n    reason=(\n        \"This test is parametrized with a hard-coded address (the beacon root contract deployer \"\n        \"address); they can't be in the same pre alloc group.\"\n    ),\n)\ndef test_beacon_root_contract_deploy(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    beacon_root: bytes,\n    tx: Transaction,\n    timestamp: int,\n    post: Dict,\n    fork: Fork,\n) -> None:\n    \"\"\"\n    Tests the fork transition to cancun deploying the contract during Shanghai\n    and verifying the code deployed and its functionality after Cancun.\n    \"\"\"\n    assert fork.header_beacon_root_required(block_number=1, timestamp=timestamp)\n    tx_gas_limit = 0x3D090\n    tx_gas_price = 0xE8D4A51000\n    deployer_required_balance = tx_gas_limit * tx_gas_price\n    deploy_tx = Transaction(\n        ty=0,\n        nonce=0,\n        to=None,\n        gas_limit=tx_gas_limit,\n        gas_price=tx_gas_price,\n        value=0,\n        data=bytes.fromhex(\n            \"60618060095f395ff33373fffffffffffffffffffffffffffffffffffffffe14604d576020361460\"\n            \"24575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f526020\"\n            \"5ff35b5f5ffd5b62001fff42064281555f359062001fff015500\"\n        ),\n        v=0x1B,\n        r=0x539,\n        s=0x1B9B6EB1F0,\n        protected=False,\n    ).with_signature_and_sender()\n    deployer_address = deploy_tx.sender\n    assert deployer_address is not None\n    assert Address(deployer_address) == Spec.BEACON_ROOTS_DEPLOYER_ADDRESS\n    blocks: List[Block] = []\n\n    beacon_root_contract_storage: Dict = {}\n    for i, current_timestamp in enumerate(range(timestamp // 2, timestamp + 1, timestamp // 2)):\n        if i == 0:\n            blocks.append(\n                Block(  # Deployment block\n                    txs=[deploy_tx],\n                    parent_beacon_block_root=(\n                        beacon_root\n                        if fork.header_beacon_root_required(\n                            block_number=1, timestamp=current_timestamp\n                        )\n                        else None\n                    ),\n                    timestamp=timestamp // 2,\n                    withdrawals=[\n                        # Also withdraw to the beacon root contract and the\n                        # system address\n                        Withdrawal(\n                            address=Spec.BEACON_ROOTS_ADDRESS,\n                            amount=1,\n                            index=0,\n                            validator_index=0,\n                        ),\n                        Withdrawal(\n                            address=Spec.SYSTEM_ADDRESS,\n                            amount=1,\n                            index=1,\n                            validator_index=1,\n                        ),\n                    ],\n                )\n            )\n            beacon_root_contract_storage[current_timestamp % Spec.HISTORY_BUFFER_LENGTH] = 0\n            beacon_root_contract_storage[\n                (current_timestamp % Spec.HISTORY_BUFFER_LENGTH) + Spec.HISTORY_BUFFER_LENGTH\n            ] = 0\n        elif i == 1:\n            blocks.append(\n                Block(  # Contract already deployed\n                    txs=[tx],\n                    parent_beacon_block_root=beacon_root,\n                    timestamp=timestamp,\n                    withdrawals=[\n                        # Also withdraw to the beacon root contract and the\n                        # system address\n                        Withdrawal(\n                            address=Spec.BEACON_ROOTS_ADDRESS,\n                            amount=1,\n                            index=2,\n                            validator_index=0,\n                        ),\n                        Withdrawal(\n                            address=Spec.SYSTEM_ADDRESS,\n                            amount=1,\n                            index=3,\n                            validator_index=1,\n                        ),\n                    ],\n                ),\n            )\n            beacon_root_contract_storage[current_timestamp % Spec.HISTORY_BUFFER_LENGTH] = (\n                current_timestamp\n            )\n            beacon_root_contract_storage[\n                (current_timestamp % Spec.HISTORY_BUFFER_LENGTH) + Spec.HISTORY_BUFFER_LENGTH\n            ] = beacon_root\n        else:\n            raise AssertionError(\"This test should only have two blocks\")\n\n    expected_code = fork.pre_allocation_blockchain()[Spec.BEACON_ROOTS_ADDRESS][\"code\"]\n    pre[Spec.BEACON_ROOTS_ADDRESS] = Account(\n        code=b\"\",  # Remove the code that is automatically allocated on Cancun\n        # fork\n        nonce=0,\n        balance=0,\n    )\n    pre[deployer_address] = Account(\n        balance=deployer_required_balance,\n    )\n\n    post[Spec.BEACON_ROOTS_ADDRESS] = Account(\n        storage=beacon_root_contract_storage,\n        code=expected_code,\n        nonce=1,\n        balance=int(2e9),\n    )\n    post[Spec.SYSTEM_ADDRESS] = Account(\n        storage={},\n        code=b\"\",\n        nonce=0,\n        balance=int(2e9),\n    )\n    post[deployer_address] = Account(\n        balance=175916000000000000,  # It doesn't consume all the balance :(\n        nonce=1,\n    )\n    blockchain_test(\n        pre=pre,\n        blocks=blocks,\n        post=post,\n    )\n"
  },
  {
    "path": "tests/cancun/eip4844_blobs/__init__.py",
    "content": "\"\"\"Cross-client EIP-4844 Tests.\"\"\"\n"
  },
  {
    "path": "tests/cancun/eip4844_blobs/common.py",
    "content": "\"\"\"Common constants, classes & functions local to EIP-4844 tests.\"\"\"\n\nfrom typing import Literal\n\nINF_POINT = (0xC0 << 376).to_bytes(48, byteorder=\"big\")\nZ = 0x623CE31CF9759A5C8DAF3A357992F9F3DD7F9339D8998BC8E68373E54F00B75E\nZ_Y_INVALID_ENDIANNESS: Literal[\"little\", \"big\"] = \"little\"\nZ_Y_VALID_ENDIANNESS: Literal[\"little\", \"big\"] = \"big\"\n"
  },
  {
    "path": "tests/cancun/eip4844_blobs/conftest.py",
    "content": "\"\"\"Pytest (plugin) definitions local to EIP-4844 tests.\"\"\"\n\nfrom typing import Iterable\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import Alloc, Block, Environment, Hash, Transaction, add_kzg_version\n\nfrom .spec import Spec\n\n\n@pytest.fixture\ndef block_base_fee_per_gas() -> int:\n    \"\"\"Return default max fee per gas for transactions sent during test.\"\"\"\n    return 7\n\n\n@pytest.fixture\ndef target_blobs_per_block(fork: Fork) -> int:\n    \"\"\"Return default number of blobs to be included in the block.\"\"\"\n    return fork.target_blobs_per_block()\n\n\n@pytest.fixture\ndef max_blobs_per_block(fork: Fork) -> int:\n    \"\"\"Return default number of blobs to be included in the block.\"\"\"\n    return fork.max_blobs_per_block()\n\n\n@pytest.fixture\ndef max_blobs_per_tx(fork: Fork) -> int:\n    \"\"\"Return max number of blobs per transaction.\"\"\"\n    return fork.max_blobs_per_tx()\n\n\n@pytest.fixture\ndef blob_gas_per_blob(fork: Fork) -> int:\n    \"\"\"Return default blob gas cost per blob.\"\"\"\n    return fork.blob_gas_per_blob()\n\n\n@pytest.fixture(autouse=True)\ndef parent_excess_blobs() -> int | None:\n    \"\"\"\n    Return default excess blobs of the parent block.\n\n    Can be overloaded by a test case to provide a custom parent excess blob\n    count.\n    \"\"\"\n    return 10  # Defaults to a blob gas price of 1.\n\n\n@pytest.fixture(autouse=True)\ndef parent_blobs() -> int | None:\n    \"\"\"\n    Return default data blobs of the parent blob.\n\n    Can be overloaded by a test case to provide a custom parent blob count.\n    \"\"\"\n    return 0\n\n\n@pytest.fixture\ndef parent_excess_blob_gas(\n    parent_excess_blobs: int | None,\n    blob_gas_per_blob: int,\n) -> int | None:\n    \"\"\"\n    Calculate the excess blob gas of the parent block from the excess blobs.\n    \"\"\"\n    if parent_excess_blobs is None:\n        return None\n    assert parent_excess_blobs >= 0\n    return parent_excess_blobs * blob_gas_per_blob\n\n\n@pytest.fixture\ndef excess_blob_gas(\n    fork: Fork,\n    parent_excess_blobs: int | None,\n    parent_blobs: int | None,\n    block_base_fee_per_gas: int,\n) -> int | None:\n    \"\"\"\n    Calculate the excess blob gas of the block under test from the parent\n    block.\n\n    Value can be overloaded by a test case to provide a custom excess blob gas.\n    \"\"\"\n    if parent_excess_blobs is None or parent_blobs is None:\n        return None\n    return fork.excess_blob_gas_calculator()(\n        parent_excess_blobs=parent_excess_blobs,\n        parent_blob_count=parent_blobs,\n        parent_base_fee_per_gas=block_base_fee_per_gas,\n    )\n\n\n@pytest.fixture\ndef correct_excess_blob_gas(\n    fork: Fork,\n    parent_excess_blobs: int | None,\n    parent_blobs: int | None,\n    block_base_fee_per_gas: int,\n) -> int:\n    \"\"\"\n    Calculate the correct excess blob gas of the block under test from the\n    parent block.\n\n    Should not be overloaded by a test case.\n    \"\"\"\n    if parent_excess_blobs is None or parent_blobs is None:\n        return 0\n    return fork.excess_blob_gas_calculator()(\n        parent_excess_blobs=parent_excess_blobs,\n        parent_blob_count=parent_blobs,\n        parent_base_fee_per_gas=block_base_fee_per_gas,\n    )\n\n\n@pytest.fixture\ndef block_fee_per_blob_gas(\n    fork: Fork,\n    correct_excess_blob_gas: int,\n) -> int:\n    \"\"\"Calculate the blob gas price for the current block.\"\"\"\n    get_blob_gas_price = fork.blob_gas_price_calculator()\n    return get_blob_gas_price(excess_blob_gas=correct_excess_blob_gas)\n\n\n@pytest.fixture\ndef blob_gas_price(\n    fork: Fork,\n    excess_blob_gas: int | None,\n) -> int | None:\n    \"\"\"Return blob gas price for the block of the test.\"\"\"\n    if excess_blob_gas is None:\n        return None\n\n    get_blob_gas_price = fork.blob_gas_price_calculator()\n    return get_blob_gas_price(\n        excess_blob_gas=excess_blob_gas,\n    )\n\n\n@pytest.fixture\ndef genesis_excess_blob_gas(\n    parent_excess_blob_gas: int | None,\n    parent_blobs: int,\n    target_blobs_per_block: int,\n    blob_gas_per_blob: int,\n) -> int:\n    \"\"\"Return default excess blob gas for the genesis block.\"\"\"\n    excess_blob_gas = parent_excess_blob_gas if parent_excess_blob_gas else 0\n    if parent_blobs:\n        # We increase the excess blob gas of the genesis because\n        # we cannot include blobs in the genesis, so the\n        # test blobs are actually in block 1.\n        excess_blob_gas += target_blobs_per_block * blob_gas_per_blob\n    return excess_blob_gas\n\n\n@pytest.fixture\ndef env(\n    block_base_fee_per_gas: int,\n    genesis_excess_blob_gas: int,\n) -> Environment:\n    \"\"\"\n    Prepare the environment of the genesis block for all blockchain tests.\n    \"\"\"\n    return Environment(\n        excess_blob_gas=genesis_excess_blob_gas,\n        blob_gas_used=0,\n        base_fee_per_gas=block_base_fee_per_gas,\n    )\n\n\n@pytest.fixture\ndef tx_value() -> int:\n    \"\"\"\n    Return default value contained by the transactions sent during test.\n\n    Can be overloaded by a test case to provide a custom transaction value.\n    \"\"\"\n    return 1\n\n\n@pytest.fixture\ndef tx_calldata() -> bytes:\n    \"\"\"Return default calldata in transactions sent during test.\"\"\"\n    return b\"\"\n\n\n@pytest.fixture(autouse=True)\ndef tx_max_fee_per_gas(\n    block_base_fee_per_gas: int,\n) -> int:\n    \"\"\"\n    Max fee per gas value used by all transactions sent during test.\n\n    By default the max fee per gas is the same as the block fee per gas.\n\n    Can be overloaded by a test case to test rejection of transactions where\n    the max fee per gas is insufficient.\n    \"\"\"\n    return block_base_fee_per_gas\n\n\n@pytest.fixture\ndef tx_max_priority_fee_per_gas() -> int:\n    \"\"\"\n    Return default max priority fee per gas for transactions sent during test.\n\n    Can be overloaded by a test case to provide a custom max priority fee per\n    gas.\n    \"\"\"\n    return 0\n\n\n@pytest.fixture\ndef tx_max_fee_per_blob_gas_multiplier() -> int:\n    \"\"\"\n    Return default max fee per blob gas multiplier for transactions sent during\n    test.\n\n    Can be overloaded by a test case to provide a custom max fee per blob gas\n    multiplier.\n    \"\"\"\n    return 1\n\n\n@pytest.fixture\ndef tx_max_fee_per_blob_gas_delta() -> int:\n    \"\"\"\n    Return default max fee per blob gas delta for transactions sent during\n    test.\n\n    Can be overloaded by a test case to provide a custom max fee per blob gas\n    delta.\n    \"\"\"\n    return 0\n\n\n@pytest.fixture\ndef tx_max_fee_per_blob_gas(  # noqa: D103\n    blob_gas_price: int | None,\n    tx_max_fee_per_blob_gas_multiplier: int,\n    tx_max_fee_per_blob_gas_delta: int,\n) -> int:\n    \"\"\"\n    Return default max fee per blob gas for transactions sent during test.\n\n    By default, it is set to the blob gas price of the block.\n\n    Can be overloaded by a test case to test rejection of transactions where\n    the max fee per blob gas is insufficient.\n    \"\"\"\n    if blob_gas_price is None:\n        # When fork transitioning, the default blob gas price is 1.\n        return 1\n    return (blob_gas_price * tx_max_fee_per_blob_gas_multiplier) + tx_max_fee_per_blob_gas_delta\n\n\n@pytest.fixture\ndef non_zero_blob_gas_used_genesis_block(\n    pre: Alloc,\n    parent_blobs: int,\n    fork: Fork,\n    genesis_excess_blob_gas: int,\n    parent_excess_blob_gas: int,\n    tx_max_fee_per_gas: int,\n    block_base_fee_per_gas: int,\n) -> Block | None:\n    \"\"\"\n    For test cases with a non-zero blobGasUsed field in the original genesis\n    block header we must instead utilize an intermediate block to act on its\n    behalf.\n\n    Genesis blocks with a non-zero blobGasUsed field are invalid as they do not\n    have any blob txs.\n\n    For the intermediate block to align with default genesis values, we must\n    add TARGET_BLOB_GAS_PER_BLOCK to the excessBlobGas of the genesis value,\n    expecting an appropriate drop to the intermediate block. Similarly, we must\n    add parent_blobs to the intermediate block within a blob tx such that an\n    equivalent blobGasUsed field is wrote.\n\n    For forks >= Osaka where the MAX_BLOBS_PER_TX is introduced, we split the\n    blobs across multiple transactions to respect the MAX_BLOBS_PER_TX limit.\n    \"\"\"\n    if parent_blobs == 0:\n        return None\n\n    excess_blob_gas_calculator = fork.excess_blob_gas_calculator(block_number=1)\n    calculated_excess_blob_gas = excess_blob_gas_calculator(\n        parent_excess_blob_gas=genesis_excess_blob_gas,\n        parent_blob_count=0,\n        parent_base_fee_per_gas=block_base_fee_per_gas,\n    )\n\n    assert parent_excess_blob_gas == calculated_excess_blob_gas, (\n        f\"parent excess blob gas mismatch: expected {parent_excess_blob_gas}, \"\n        f\"got {calculated_excess_blob_gas} for {parent_blobs} blobs \"\n        f\"with base_fee_per_gas {block_base_fee_per_gas}\"\n    )\n\n    sender = pre.fund_eoa(10**27)\n    empty_account_destination = pre.fund_eoa(0)\n    blob_gas_price_calculator = fork.blob_gas_price_calculator(block_number=1)\n\n    # Split blobs into chunks when MAX_BLOBS_PER_TX < MAX_BLOBS_PER_BLOCK to\n    # respect per-tx limits. Allows us to keep single txs for forks where per-\n    # tx and per-block limits are equal, hitting coverage for block level blob\n    # gas validation when parent_blobs > MAX_BLOBS_PER_BLOCK.\n    max_blobs_per_tx = (\n        fork.max_blobs_per_tx()\n        if fork.max_blobs_per_tx() < fork.max_blobs_per_block()\n        else parent_blobs\n    )\n    blob_chunks = [\n        range(i, min(i + max_blobs_per_tx, parent_blobs))\n        for i in range(0, parent_blobs, max_blobs_per_tx)\n    ]\n\n    def create_blob_transaction(blob_range: Iterable[int]) -> Transaction:\n        return Transaction(\n            ty=Spec.BLOB_TX_TYPE,\n            sender=sender,\n            to=empty_account_destination,\n            value=1,\n            gas_limit=21_000,\n            max_fee_per_gas=tx_max_fee_per_gas,\n            max_priority_fee_per_gas=0,\n            max_fee_per_blob_gas=blob_gas_price_calculator(\n                excess_blob_gas=parent_excess_blob_gas,\n            ),\n            access_list=[],\n            blob_versioned_hashes=add_kzg_version(\n                [Hash(x) for x in blob_range],\n                Spec.BLOB_COMMITMENT_VERSION_KZG,\n            ),\n        )\n\n    txs = [create_blob_transaction(chunk) for chunk in blob_chunks]\n\n    return Block(txs=txs)\n"
  },
  {
    "path": "tests/cancun/eip4844_blobs/point_evaluation_vectors/README.md",
    "content": "# KZG Point Evaluation Test Vectors\n\nThis directory contains test vectors for the KZG point evaluation algorithm that are loaded and used throughout different tests.\n\nEach file must contain a JSON list of objects, each with the following fields:\n\n- `name`: a string describing the test case\n- `input`: object containing `commitment`, `proof`, `z` and `y`\n- `output`: expected output of the evaluation, true, false or null.\n\n## Generating The Test Vectors (used in v1.0.6 and on)\n\nFrom execution-spec-tests release v1.0.6 and on, the point evaluation test vectors were generated using commit [63aa303c](https://github.com/ethereum/consensus-specs/tree/63aa303c5a2cf46ea98edbf3f82286079651bb78) from the [official-kzg](https://github.com/ethereum/consensus-specs/commits/official-kzg) [consensus-specs](https://github.com/ethereum/consensus-specs) branch.\n\nThe test vectors were generated as following:\n\n1. In the consensus-specs repo:\n\n    ```console\n    cd tests/generators/kzg_4844/\n    rm -rf /tmp/kzg_4844_output\n    mkdir /tmp/kzg_4844_output\n    python -m main --output /tmp/kzg_4844_output\n    ```\n\n2. In the execution-spec-tests repo:\n\n    ```console\n    cd tests/cancun/4844_blobs/point_evaluation_vectors/\n    pip install -r requirements.txt\n    python concat_kzg_vectors_to_json.py \\\n        --input /tmp/kzg_4844_output/general/deneb/kzg/verify_kzg_proof/kzg-mainnet/\n        --output go_kzg_4844_verify_kzg_proof.json\n    ```\n\n## Previous Versions of the Test Vectors (used up to v1.0.5)\n\nThe test vectors up and including execution-spec-tests [release v1.0.5](https://github.com/ethereum/execution-spec-tests/releases/tag/v1.0.5) were:\n- `go_kzg_4844_verify_kzg_proof.json`: test vectors from the [go-kzg-4844](https://github.com/crate-crypto/go-kzg-4844) repository."
  },
  {
    "path": "tests/cancun/eip4844_blobs/point_evaluation_vectors/concat_kzg_vectors_to_json.py",
    "content": "\"\"\"\nHelper script to concatenate all the point evaluation test data.yaml files in\na directory into a single JSON file for easier consumption in tests.\n\"\"\"\n\nimport argparse\nimport json\nfrom pathlib import Path\n\nimport yaml\n\n\ndef gather_yaml_data(directory: Path) -> list[dict[str, str]]:  # noqa: D103\n    all_data = []\n\n    # Loop through each directory in the main directory\n    for sub_dir in sorted(directory.iterdir()):\n        if sub_dir.is_dir():\n            yaml_file_path = sub_dir / \"data.yaml\"\n\n            # Check if data.yaml exists in the directory\n            if yaml_file_path.exists():\n                with yaml_file_path.open(\"r\") as yaml_file:\n                    yaml_data = yaml.safe_load(yaml_file)\n                    # Append the data along with the directory name\n                    all_data.append(\n                        {\n                            \"input\": yaml_data[\"input\"],\n                            \"output\": yaml_data[\"output\"],\n                            \"name\": sub_dir.name,\n                        }\n                    )\n    return all_data\n\n\ndef main() -> None:  # noqa: D103\n    parser = argparse.ArgumentParser(\n        description=\"Concatenate the data from multiple data.yaml files into one JSON file.\"\n    )\n    parser.add_argument(\n        \"-i\",\n        \"--input\",\n        type=Path,\n        required=True,\n        help=\"Input directory containing the YAML files.\",\n    )\n    parser.add_argument(\n        \"-o\", \"--output\", type=Path, required=True, help=\"Path to the output JSON file.\"\n    )\n\n    args = parser.parse_args()\n    data = gather_yaml_data(args.input)\n    with args.output.open(\"w\") as json_file:\n        json.dump(data, json_file, indent=2)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "tests/cancun/eip4844_blobs/point_evaluation_vectors/go_kzg_4844_verify_kzg_proof.json",
    "content": "[\n  {\n    \"input\": {\n      \"commitment\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n      \"y\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n      \"proof\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_02e696ada7d4631d\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xa572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e\",\n      \"z\": \"0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306\",\n      \"y\": \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n      \"proof\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_05c1f3685f3393f0\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xb7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb\",\n      \"z\": \"0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000\",\n      \"y\": \"0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000\",\n      \"proof\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_08f9e2f1cb3d39db\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n      \"z\": \"0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62\",\n      \"y\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n      \"proof\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_0cf79b17cb5f4ea2\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xa572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e\",\n      \"z\": \"0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62\",\n      \"y\": \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n      \"proof\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_177b58dc7a46b08f\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0x93efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556\",\n      \"z\": \"0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000\",\n      \"y\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n      \"proof\": \"0x92c51ff81dd71dab71cefecd79e8274b4b7ba36a0f40e2dc086bc4061c7f63249877db23297212991fd63e07b7ebc348\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_1ce8e4f69d5df899\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0x93efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n      \"y\": \"0x73e66878b46ae3705eb6a46a89213de7d3686828bfce5c19400fffff00100001\",\n      \"proof\": \"0xb82ded761997f2c6f1bb3db1e1dada2ef06d936551667c82f659b75f99d2da2068b81340823ee4e829a93c9fbed7810d\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_26b753dec0560daa\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xa572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n      \"y\": \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n      \"proof\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_2b76dc9e3abf42f3\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0x8f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7\",\n      \"z\": \"0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000\",\n      \"y\": \"0x1522a4a7f34e1ea350ae07c29c96c7e79655aa926122e95fe69fcbd932ca49e9\",\n      \"proof\": \"0xa62ad71d14c5719385c0686f1871430475bf3a00f0aa3f7b8dd99a9abc2160744faf0070725e00b60ad9a026a15b1a8c\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_31ebd010e6098750\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n      \"z\": \"0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306\",\n      \"y\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n      \"proof\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_3208425794224c3f\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xb7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n      \"y\": \"0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000\",\n      \"proof\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_36817bfd67de97a8\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xa421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06\",\n      \"z\": \"0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000\",\n      \"y\": \"0x304962b3598a0adf33189fdfd9789feab1096ff40006900400000003fffffffc\",\n      \"proof\": \"0xaa86c458b3065e7ec244033a2ade91a7499561f482419a3a372c42a636dad98262a2ce926d142fd7cfe26ca148efe8b4\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_392169c16a2e5ef6\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xa572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e\",\n      \"z\": \"0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000\",\n      \"y\": \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n      \"proof\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_395cf6d697d1a743\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n      \"z\": \"0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000\",\n      \"y\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n      \"proof\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_3ac8dc31e9aa6a70\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xa421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n      \"y\": \"0x50625ad853cc21ba40594f79591e5d35c445ecf9453014da6524c0cf6367c359\",\n      \"proof\": \"0xb72d80393dc39beea3857cb3719277138876b2b207f1d5e54dd62a14e3242d123b5a6db066181ff01a51c26c9d2f400b\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_3c1e8b38219e3e12\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xa421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06\",\n      \"z\": \"0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306\",\n      \"y\": \"0x6d928e13fe443e957d82e3e71d48cb65d51028eb4483e719bf8efcdf12f7c321\",\n      \"proof\": \"0xa444d6bb5aadc3ceb615b50d6606bd54bfe529f59247987cd1ab848d19de599a9052f1835fb0d0d44cf70183e19a68c9\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_3c87ec986c2656c2\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xb7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n      \"y\": \"0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000\",\n      \"proof\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_3cd183d0bab85fb7\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xa421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n      \"y\": \"0x2bf4e1f980eb94661a21affc4d7e6e56f214fe3e7dc4d20b98c66ffd43cabeb0\",\n      \"proof\": \"0x89012990b0ca02775bd9df8145f6c936444b83f54df1f5f274fb4312800a6505dd000ee8ec7b0ea6d72092a3daf0bffb\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_420f2a187ce77035\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xb49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193a\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n      \"y\": \"0x443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51\",\n      \"proof\": \"0xa060b350ad63d61979b80b25258e7cc6caf781080222e0209b4a0b074decca874afc5c41de3313d8ed217d905e6ada43\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_444b73ff54a19b44\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xb7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb\",\n      \"z\": \"0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306\",\n      \"y\": \"0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000\",\n      \"proof\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_53a9bdf4f75196da\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xa572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n      \"y\": \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n      \"proof\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_585454b31673dd62\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xb49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193a\",\n      \"z\": \"0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000\",\n      \"y\": \"0x58cdc98c4c44791bb8ba7e58a80324ef8c021c79c68e253c430fa2663188f7f2\",\n      \"proof\": \"0x9506a8dc7f3f720a592a79a4e711e28d8596854bac66b9cb2d6d361704f1735442d47ea09fda5e0984f0928ce7d2f5f6\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_7db4f140a955dd1a\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xa421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n      \"y\": \"0x1824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe\",\n      \"proof\": \"0xb0c829a8d2d3405304fecbea193e6c67f7c3912a6adc7c3737ad3f8a3b750425c1531a7426f03033a3994bc82a10609f\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_83e53423a2dd93fe\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0x93efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n      \"y\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n      \"proof\": \"0xb9241c6816af6388d1014cd4d7dd21662a6e3d47f96c0257bce642b70e8e375839a880864638669c6a709b414ab8bffc\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_9b24f8997145435c\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xb7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n      \"y\": \"0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000\",\n      \"proof\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_9b754afb690c47e1\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xa572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n      \"y\": \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n      \"proof\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_a0be66af9a97ea52\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xb49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193a\",\n      \"z\": \"0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306\",\n      \"y\": \"0x6c28d6edfea2f5e1638cb1a8be8197549d52e133fa9dae87e52abb45f7b192dd\",\n      \"proof\": \"0x8a46b67dcba4e3aa66f9952be69e1ecbc24e21d42b1df2bfe1c8e28431c6221a3f1d09808042f5624e857710cb24fb69\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_af669445747d2585\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0x93efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n      \"y\": \"0x64d3b6baf69395bde2abd1d43f99be66bc64581234fd363e2ae3a0d419cfc3fc\",\n      \"proof\": \"0x893acd46552b81cc9e5ff6ca03dad873588f2c61031781367cfea2a2be4ef3090035623338711b3cf7eff4b4524df742\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_af8b75f664ed7d43\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xb49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193a\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n      \"y\": \"0x6a75e4fe63e5e148c853462a680c3e3ccedea34719d28f19bf1b35ae4eea37d6\",\n      \"proof\": \"0xa38758fca85407078c0a7e5fd6d38b34340c809baa0e1fed9deaabb11aa503062acbbe23fcbe620a21b40a83bfa71b89\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_b6cb6698327d9835\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0x93efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556\",\n      \"z\": \"0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306\",\n      \"y\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n      \"proof\": \"0xa256a681861974cdf6b116467044aa75c85b01076423a92c3335b93d10bf2fcb99b943a53adc1ab8feb6b475c4688948\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_b6ec3736f9ff2c62\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xb7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb\",\n      \"z\": \"0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62\",\n      \"y\": \"0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000\",\n      \"proof\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_becf2e1641bbd4e6\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n      \"y\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n      \"proof\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_c3d4322ec17fe7cd\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0x8f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7\",\n      \"z\": \"0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306\",\n      \"y\": \"0x24d25032e67a7e6a4910df5834b8fe70e6bcfeeac0352434196bdf4b2485d5a1\",\n      \"proof\": \"0x873033e038326e87ed3e1276fd140253fa08e9fc25fb2d9a98527fc22a2c9612fbeafdad446cbc7bcdbdcd780af2c16a\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_c5e1490d672d026d\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xb49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193a\",\n      \"z\": \"0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62\",\n      \"y\": \"0x2c9ae4f1d6d08558d7027df9cc6b248c21290075d2c0df8a4084d02090b3fa14\",\n      \"proof\": \"0xb059c60125debbbf29d041bac20fd853951b64b5f31bfe2fa825e18ff49a259953e734b3d57119ae66f7bd79de3027f6\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_cae5d3491190b777\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0x8f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7\",\n      \"z\": \"0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62\",\n      \"y\": \"0x4882cf0609af8c7cd4c256e63a35838c95a9ebbf6122540ab344b42fd66d32e1\",\n      \"proof\": \"0x987ea6df69bbe97c23e0dd948cf2d4490824ba7fea5af812721b2393354b0810a9dba2c231ea7ae30f26c412c7ea6e3a\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_d0992bc0387790a4\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0x93efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556\",\n      \"z\": \"0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62\",\n      \"y\": \"0x5fd58150b731b4facfcdd89c0e393ff842f5f2071303eff99b51e103161cd233\",\n      \"proof\": \"0x94425f5cf336685a6a4e806ad4601f4b0d3707a655718f968c57e225f0e4b8d5fd61878234f25ec59d090c07ea725cf4\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_d736268229bd87ec\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0x8f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n      \"y\": \"0x549345dd3612e36fab0ab7baffe3faa5b820d56b71348c89ecaf63f7c4f85370\",\n      \"proof\": \"0xa35c4f136a09a33c6437c26dc0c617ce6548a14bc4af7127690a411f5e1cde2f73157365212dbcea6432e0e7869cb006\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_e68d7111a2364a49\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xa421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06\",\n      \"z\": \"0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62\",\n      \"y\": \"0x5ee1e9a4a06a02ca6ea14b0ca73415a8ba0fba888f18dde56df499b480d4b9e0\",\n      \"proof\": \"0xa1fcd37a924af9ec04143b44853c26f6b0738f6e15a3e0755057e7d5460406c7e148adb0e2d608982140d0ae42fe0b3b\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_ed6b180ec759bcf6\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xb49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193a\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n      \"y\": \"0x1ed7d14d1b3fb1a1890d67b81715531553ad798df2009b4311d9fe2bea6cb964\",\n      \"proof\": \"0xa71f21ca51b443ad35bb8a26d274223a690d88d9629927dc80b0856093e08a372820248df5b8a43b6d98fd52a62fa376\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_f0ed3dc11cdeb130\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0x8f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n      \"y\": \"0x60f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec9\",\n      \"proof\": \"0xb30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_f47eb9fc139f6bfd\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0x8f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n      \"y\": \"0x61157104410181bdc6eac224aa9436ac268bdcfeecb6badf71d228adda820af3\",\n      \"proof\": \"0x809adfa8b078b0921cdb8696ca017a0cc2d5337109016f36a766886eade28d32f205311ff5def247c3ddba91896fae97\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_f7f44e1e864aa967\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n      \"y\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n      \"proof\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_ffa6e97b97146517\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xa572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e\",\n      \"z\": \"0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306\",\n      \"y\": \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n      \"proof\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_point_at_infinity_for_twos_poly_05c1f3685f3393f0\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xa572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e\",\n      \"z\": \"0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62\",\n      \"y\": \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n      \"proof\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_point_at_infinity_for_twos_poly_177b58dc7a46b08f\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xa572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n      \"y\": \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n      \"proof\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_point_at_infinity_for_twos_poly_2b76dc9e3abf42f3\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xa572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e\",\n      \"z\": \"0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000\",\n      \"y\": \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n      \"proof\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_point_at_infinity_for_twos_poly_395cf6d697d1a743\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xa572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n      \"y\": \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n      \"proof\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_point_at_infinity_for_twos_poly_585454b31673dd62\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xa572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n      \"y\": \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n      \"proof\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_point_at_infinity_for_twos_poly_a0be66af9a97ea52\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n      \"y\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n      \"proof\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_point_at_infinity_for_zero_poly_02e696ada7d4631d\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n      \"z\": \"0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62\",\n      \"y\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n      \"proof\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_point_at_infinity_for_zero_poly_0cf79b17cb5f4ea2\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n      \"z\": \"0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306\",\n      \"y\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n      \"proof\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_point_at_infinity_for_zero_poly_3208425794224c3f\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n      \"z\": \"0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000\",\n      \"y\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n      \"proof\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_point_at_infinity_for_zero_poly_3ac8dc31e9aa6a70\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n      \"y\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n      \"proof\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_point_at_infinity_for_zero_poly_c3d4322ec17fe7cd\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n      \"y\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n      \"proof\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n    },\n    \"output\": true,\n    \"name\": \"verify_kzg_proof_case_correct_proof_point_at_infinity_for_zero_poly_ffa6e97b97146517\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n      \"y\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n      \"proof\": \"0x97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb\"\n    },\n    \"output\": false,\n    \"name\": \"verify_kzg_proof_case_incorrect_proof_02e696ada7d4631d\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xa572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e\",\n      \"z\": \"0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306\",\n      \"y\": \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n      \"proof\": \"0x97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb\"\n    },\n    \"output\": false,\n    \"name\": \"verify_kzg_proof_case_incorrect_proof_05c1f3685f3393f0\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xb7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb\",\n      \"z\": \"0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000\",\n      \"y\": \"0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000\",\n      \"proof\": \"0x97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb\"\n    },\n    \"output\": false,\n    \"name\": \"verify_kzg_proof_case_incorrect_proof_08f9e2f1cb3d39db\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n      \"z\": \"0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62\",\n      \"y\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n      \"proof\": \"0x97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb\"\n    },\n    \"output\": false,\n    \"name\": \"verify_kzg_proof_case_incorrect_proof_0cf79b17cb5f4ea2\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xa572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e\",\n      \"z\": \"0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62\",\n      \"y\": \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n      \"proof\": \"0x97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb\"\n    },\n    \"output\": false,\n    \"name\": \"verify_kzg_proof_case_incorrect_proof_177b58dc7a46b08f\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0x93efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556\",\n      \"z\": \"0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000\",\n      \"y\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n      \"proof\": \"0x9779b8337f00de6aeac881256198bd2db2fe95bc3127ad9e6440d9e4d1e785b455f55fcfe80a3434dc40f8e6df85be88\"\n    },\n    \"output\": false,\n    \"name\": \"verify_kzg_proof_case_incorrect_proof_1ce8e4f69d5df899\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0x93efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n      \"y\": \"0x73e66878b46ae3705eb6a46a89213de7d3686828bfce5c19400fffff00100001\",\n      \"proof\": \"0x90f53a4837bbde6ab0838fef0c0be5339ab03a78342c221cf6b2d6e465d01a3d47585a808c9d8d25dee885007deeb107\"\n    },\n    \"output\": false,\n    \"name\": \"verify_kzg_proof_case_incorrect_proof_26b753dec0560daa\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xa572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n      \"y\": \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n      \"proof\": \"0x97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb\"\n    },\n    \"output\": false,\n    \"name\": \"verify_kzg_proof_case_incorrect_proof_2b76dc9e3abf42f3\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0x8f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7\",\n      \"z\": \"0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000\",\n      \"y\": \"0x1522a4a7f34e1ea350ae07c29c96c7e79655aa926122e95fe69fcbd932ca49e9\",\n      \"proof\": \"0xb9b65c2ebc89e669cf19e82fb178f0d1e9c958edbebe9ead62e97e95e2dcdc4972729fb9661f0cae3532b71b2664a8c1\"\n    },\n    \"output\": false,\n    \"name\": \"verify_kzg_proof_case_incorrect_proof_31ebd010e6098750\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n      \"z\": \"0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306\",\n      \"y\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n      \"proof\": \"0x97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb\"\n    },\n    \"output\": false,\n    \"name\": \"verify_kzg_proof_case_incorrect_proof_3208425794224c3f\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xb7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n      \"y\": \"0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000\",\n      \"proof\": \"0x97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb\"\n    },\n    \"output\": false,\n    \"name\": \"verify_kzg_proof_case_incorrect_proof_36817bfd67de97a8\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xa421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06\",\n      \"z\": \"0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000\",\n      \"y\": \"0x304962b3598a0adf33189fdfd9789feab1096ff40006900400000003fffffffc\",\n      \"proof\": \"0xb08a5afbb1717334e08e05576b07bff58e8851d8cfd9ea71da1ab4233ad4217cffabd669dfa89c3ebf4c44f91694a2f4\"\n    },\n    \"output\": false,\n    \"name\": \"verify_kzg_proof_case_incorrect_proof_392169c16a2e5ef6\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xa572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e\",\n      \"z\": \"0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000\",\n      \"y\": \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n      \"proof\": \"0x97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb\"\n    },\n    \"output\": false,\n    \"name\": \"verify_kzg_proof_case_incorrect_proof_395cf6d697d1a743\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n      \"z\": \"0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000\",\n      \"y\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n      \"proof\": \"0x97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb\"\n    },\n    \"output\": false,\n    \"name\": \"verify_kzg_proof_case_incorrect_proof_3ac8dc31e9aa6a70\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xa421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n      \"y\": \"0x50625ad853cc21ba40594f79591e5d35c445ecf9453014da6524c0cf6367c359\",\n      \"proof\": \"0x90559bfd8e58f5d144588a1a959c93aba58607777e09893f088e404eb2dc47c0269ed8e47c1be79ea07ae726abd921a8\"\n    },\n    \"output\": false,\n    \"name\": \"verify_kzg_proof_case_incorrect_proof_3c1e8b38219e3e12\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xa421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06\",\n      \"z\": \"0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306\",\n      \"y\": \"0x6d928e13fe443e957d82e3e71d48cb65d51028eb4483e719bf8efcdf12f7c321\",\n      \"proof\": \"0x8d72dc4eec977090f452b412a6b0a3cdced2ea6b622ebb6e289c7e05d85cc715b93eca244123c84a60b3ecbf33373903\"\n    },\n    \"output\": false,\n    \"name\": \"verify_kzg_proof_case_incorrect_proof_3c87ec986c2656c2\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xb7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n      \"y\": \"0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000\",\n      \"proof\": \"0x97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb\"\n    },\n    \"output\": false,\n    \"name\": \"verify_kzg_proof_case_incorrect_proof_3cd183d0bab85fb7\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xa421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n      \"y\": \"0x2bf4e1f980eb94661a21affc4d7e6e56f214fe3e7dc4d20b98c66ffd43cabeb0\",\n      \"proof\": \"0x99c282db3a79a9ec1553306515e6a71dc43df1ddbd1dbd9d5b71f3c1798ef482f5e1fd84500b0e47c82f72a189ecd526\"\n    },\n    \"output\": false,\n    \"name\": \"verify_kzg_proof_case_incorrect_proof_420f2a187ce77035\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xb49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193a\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n      \"y\": \"0x443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51\",\n      \"proof\": \"0xa7de1e32bb336b85e42ff5028167042188317299333f091dd88675e84a550577bfa564b2f57cd2498e2acf875e0aaa40\"\n    },\n    \"output\": false,\n    \"name\": \"verify_kzg_proof_case_incorrect_proof_444b73ff54a19b44\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xb7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb\",\n      \"z\": \"0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306\",\n      \"y\": \"0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000\",\n      \"proof\": \"0x97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb\"\n    },\n    \"output\": false,\n    \"name\": \"verify_kzg_proof_case_incorrect_proof_53a9bdf4f75196da\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xa572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n      \"y\": \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n      \"proof\": \"0x97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb\"\n    },\n    \"output\": false,\n    \"name\": \"verify_kzg_proof_case_incorrect_proof_585454b31673dd62\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xb49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193a\",\n      \"z\": \"0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000\",\n      \"y\": \"0x58cdc98c4c44791bb8ba7e58a80324ef8c021c79c68e253c430fa2663188f7f2\",\n      \"proof\": \"0xb0ac600174134691bf9d91fee448b4d58c127356567da1c456b9c38468909d4effe6b7faa11177e1f96ee5d2834df001\"\n    },\n    \"output\": false,\n    \"name\": \"verify_kzg_proof_case_incorrect_proof_7db4f140a955dd1a\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xa421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n      \"y\": \"0x1824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe\",\n      \"proof\": \"0x8e3069b19e6e71aed9b7dc8fbba13e4217d91cfc59be47cfaa7d09ef626242517541992c0f76091ddabf271682cc7c2c\"\n    },\n    \"output\": false,\n    \"name\": \"verify_kzg_proof_case_incorrect_proof_83e53423a2dd93fe\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0x93efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n      \"y\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n      \"proof\": \"0xafc13cef6ed41f7abe142d32d7b5354e5664bd4b6d52080460dd404dc2cb26269c24826d2bcd0152d0b55ee0a9e90289\"\n    },\n    \"output\": false,\n    \"name\": \"verify_kzg_proof_case_incorrect_proof_9b24f8997145435c\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xb7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n      \"y\": \"0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000\",\n      \"proof\": \"0x97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb\"\n    },\n    \"output\": false,\n    \"name\": \"verify_kzg_proof_case_incorrect_proof_9b754afb690c47e1\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xa572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n      \"y\": \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n      \"proof\": \"0x97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb\"\n    },\n    \"output\": false,\n    \"name\": \"verify_kzg_proof_case_incorrect_proof_a0be66af9a97ea52\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xb49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193a\",\n      \"z\": \"0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306\",\n      \"y\": \"0x6c28d6edfea2f5e1638cb1a8be8197549d52e133fa9dae87e52abb45f7b192dd\",\n      \"proof\": \"0xa88d68fe3ad0d09b07f4605b1364c8d4804bf7096dae003d821cc01c3b7d35c6d1fdae14e2db3c05e1cdcea7c7b7f262\"\n    },\n    \"output\": false,\n    \"name\": \"verify_kzg_proof_case_incorrect_proof_af669445747d2585\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0x93efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n      \"y\": \"0x64d3b6baf69395bde2abd1d43f99be66bc64581234fd363e2ae3a0d419cfc3fc\",\n      \"proof\": \"0xaf08cbca9deec336f2a56ca0b202995830f238fc3cb2ecdbdc0bbb6419e3e60507e823ff7dcbd17394cea55bc514716c\"\n    },\n    \"output\": false,\n    \"name\": \"verify_kzg_proof_case_incorrect_proof_af8b75f664ed7d43\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xb49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193a\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n      \"y\": \"0x6a75e4fe63e5e148c853462a680c3e3ccedea34719d28f19bf1b35ae4eea37d6\",\n      \"proof\": \"0x861a2aef7aa82db033bfa125b9f756afecaf1db28384925d5007bcf7dff1a53b72bdf522610303075aeecab41685d720\"\n    },\n    \"output\": false,\n    \"name\": \"verify_kzg_proof_case_incorrect_proof_b6cb6698327d9835\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0x93efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556\",\n      \"z\": \"0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306\",\n      \"y\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n      \"proof\": \"0x82f1cd05471ab6ff21bcfd5c3369cba05b03a872a10829236d184fe1872767c391c2aa7e3b85babb1e6093b7224e7732\"\n    },\n    \"output\": false,\n    \"name\": \"verify_kzg_proof_case_incorrect_proof_b6ec3736f9ff2c62\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xb7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb\",\n      \"z\": \"0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62\",\n      \"y\": \"0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000\",\n      \"proof\": \"0x97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb\"\n    },\n    \"output\": false,\n    \"name\": \"verify_kzg_proof_case_incorrect_proof_becf2e1641bbd4e6\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n      \"y\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n      \"proof\": \"0x97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb\"\n    },\n    \"output\": false,\n    \"name\": \"verify_kzg_proof_case_incorrect_proof_c3d4322ec17fe7cd\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0x8f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7\",\n      \"z\": \"0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306\",\n      \"y\": \"0x24d25032e67a7e6a4910df5834b8fe70e6bcfeeac0352434196bdf4b2485d5a1\",\n      \"proof\": \"0xacd56791e0ab0d1b3802021862013418993da2646e87140e12631e2914d9e6c676466aa3adfc91b61f84255544cab544\"\n    },\n    \"output\": false,\n    \"name\": \"verify_kzg_proof_case_incorrect_proof_c5e1490d672d026d\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xb49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193a\",\n      \"z\": \"0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62\",\n      \"y\": \"0x2c9ae4f1d6d08558d7027df9cc6b248c21290075d2c0df8a4084d02090b3fa14\",\n      \"proof\": \"0xa4cc8c419ade0cf043cbf30f43c8f7ee6da3ab8d2c15070f323e5a13a8178fe07c8f89686e5fd16565247b520028251b\"\n    },\n    \"output\": false,\n    \"name\": \"verify_kzg_proof_case_incorrect_proof_cae5d3491190b777\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0x8f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7\",\n      \"z\": \"0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62\",\n      \"y\": \"0x4882cf0609af8c7cd4c256e63a35838c95a9ebbf6122540ab344b42fd66d32e1\",\n      \"proof\": \"0xb8f731ba6a52e419ffc843c50d2947d30e933e3a881b208de54149714ece74a599503f84c6249b5fd8a7c70189882a6b\"\n    },\n    \"output\": false,\n    \"name\": \"verify_kzg_proof_case_incorrect_proof_d0992bc0387790a4\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0x93efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556\",\n      \"z\": \"0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62\",\n      \"y\": \"0x5fd58150b731b4facfcdd89c0e393ff842f5f2071303eff99b51e103161cd233\",\n      \"proof\": \"0x84c349506215a2d55f9d06f475b8229c6dedc08fd467f41fabae6bb042c2d0dbdbcd5f7532c475e479588eec5820fd37\"\n    },\n    \"output\": false,\n    \"name\": \"verify_kzg_proof_case_incorrect_proof_d736268229bd87ec\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0x8f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n      \"y\": \"0x549345dd3612e36fab0ab7baffe3faa5b820d56b71348c89ecaf63f7c4f85370\",\n      \"proof\": \"0x94fce36bf7e9f0ed981728fcd829013de96f7d25f8b4fe885059ec24af36f801ffbf68ec4604ef6e5f5f800f5cf31238\"\n    },\n    \"output\": false,\n    \"name\": \"verify_kzg_proof_case_incorrect_proof_e68d7111a2364a49\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xa421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06\",\n      \"z\": \"0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62\",\n      \"y\": \"0x5ee1e9a4a06a02ca6ea14b0ca73415a8ba0fba888f18dde56df499b480d4b9e0\",\n      \"proof\": \"0xb3477fc9a5bfab5fdb5523251818ee5a6d52613c59502a3d2df58217f4e366cd9ef37dee55bf2c705a2b08e7808b6fa0\"\n    },\n    \"output\": false,\n    \"name\": \"verify_kzg_proof_case_incorrect_proof_ed6b180ec759bcf6\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xb49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193a\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n      \"y\": \"0x1ed7d14d1b3fb1a1890d67b81715531553ad798df2009b4311d9fe2bea6cb964\",\n      \"proof\": \"0x98e15cbf800b69b90bfcaf1d907a9889c7743f7e5a19ee4b557471c005600f56d78e3dd887b2f5b87d76405b80dd2115\"\n    },\n    \"output\": false,\n    \"name\": \"verify_kzg_proof_case_incorrect_proof_f0ed3dc11cdeb130\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0x8f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n      \"y\": \"0x60f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec9\",\n      \"proof\": \"0x98613e9e1b1ed52fc2fdc54e945b863ff52870e6565307ff9e32327196d7a03c428fc51a9abedc97de2a68daa1274b50\"\n    },\n    \"output\": false,\n    \"name\": \"verify_kzg_proof_case_incorrect_proof_f47eb9fc139f6bfd\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0x8f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n      \"y\": \"0x61157104410181bdc6eac224aa9436ac268bdcfeecb6badf71d228adda820af3\",\n      \"proof\": \"0xa1d8f2a5ab22acdfc1a9492ee2e1c2cbde681b51b312bf718821937e5088cd8ee002b718264027d10c5c5855dabe0353\"\n    },\n    \"output\": false,\n    \"name\": \"verify_kzg_proof_case_incorrect_proof_f7f44e1e864aa967\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n      \"y\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n      \"proof\": \"0x97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb\"\n    },\n    \"output\": false,\n    \"name\": \"verify_kzg_proof_case_incorrect_proof_ffa6e97b97146517\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xa421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06\",\n      \"z\": \"0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000\",\n      \"y\": \"0x304962b3598a0adf33189fdfd9789feab1096ff40006900400000003fffffffc\",\n      \"proof\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n    },\n    \"output\": false,\n    \"name\": \"verify_kzg_proof_case_incorrect_proof_point_at_infinity_392169c16a2e5ef6\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xa421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n      \"y\": \"0x50625ad853cc21ba40594f79591e5d35c445ecf9453014da6524c0cf6367c359\",\n      \"proof\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n    },\n    \"output\": false,\n    \"name\": \"verify_kzg_proof_case_incorrect_proof_point_at_infinity_3c1e8b38219e3e12\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xa421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06\",\n      \"z\": \"0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306\",\n      \"y\": \"0x6d928e13fe443e957d82e3e71d48cb65d51028eb4483e719bf8efcdf12f7c321\",\n      \"proof\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n    },\n    \"output\": false,\n    \"name\": \"verify_kzg_proof_case_incorrect_proof_point_at_infinity_3c87ec986c2656c2\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xa421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n      \"y\": \"0x2bf4e1f980eb94661a21affc4d7e6e56f214fe3e7dc4d20b98c66ffd43cabeb0\",\n      \"proof\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n    },\n    \"output\": false,\n    \"name\": \"verify_kzg_proof_case_incorrect_proof_point_at_infinity_420f2a187ce77035\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xa421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n      \"y\": \"0x1824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe\",\n      \"proof\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n    },\n    \"output\": false,\n    \"name\": \"verify_kzg_proof_case_incorrect_proof_point_at_infinity_83e53423a2dd93fe\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xa421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06\",\n      \"z\": \"0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62\",\n      \"y\": \"0x5ee1e9a4a06a02ca6ea14b0ca73415a8ba0fba888f18dde56df499b480d4b9e0\",\n      \"proof\": \"0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n    },\n    \"output\": false,\n    \"name\": \"verify_kzg_proof_case_incorrect_proof_point_at_infinity_ed6b180ec759bcf6\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0x97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n      \"y\": \"0x1824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe\",\n      \"proof\": \"0xb0c829a8d2d3405304fecbea193e6c67f7c3912a6adc7c3737ad3f8a3b750425c1531a7426f03033a3994bc82a10609f\"\n    },\n    \"output\": null,\n    \"name\": \"verify_kzg_proof_case_invalid_commitment_1b44e341d56c757d\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0x8123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n      \"y\": \"0x1824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe\",\n      \"proof\": \"0xb0c829a8d2d3405304fecbea193e6c67f7c3912a6adc7c3737ad3f8a3b750425c1531a7426f03033a3994bc82a10609f\"\n    },\n    \"output\": null,\n    \"name\": \"verify_kzg_proof_case_invalid_commitment_32afa9561a4b3b91\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0x97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb00\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n      \"y\": \"0x1824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe\",\n      \"proof\": \"0xb0c829a8d2d3405304fecbea193e6c67f7c3912a6adc7c3737ad3f8a3b750425c1531a7426f03033a3994bc82a10609f\"\n    },\n    \"output\": null,\n    \"name\": \"verify_kzg_proof_case_invalid_commitment_3e55802a5ed3c757\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0x8123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde0\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n      \"y\": \"0x1824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe\",\n      \"proof\": \"0xb0c829a8d2d3405304fecbea193e6c67f7c3912a6adc7c3737ad3f8a3b750425c1531a7426f03033a3994bc82a10609f\"\n    },\n    \"output\": null,\n    \"name\": \"verify_kzg_proof_case_invalid_commitment_e9d3e9ec16fbc15f\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xa421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n      \"y\": \"0x1824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe\",\n      \"proof\": \"0x97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6\"\n    },\n    \"output\": null,\n    \"name\": \"verify_kzg_proof_case_invalid_proof_1b44e341d56c757d\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xa421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n      \"y\": \"0x1824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe\",\n      \"proof\": \"0x8123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef\"\n    },\n    \"output\": null,\n    \"name\": \"verify_kzg_proof_case_invalid_proof_32afa9561a4b3b91\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xa421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n      \"y\": \"0x1824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe\",\n      \"proof\": \"0x97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb00\"\n    },\n    \"output\": null,\n    \"name\": \"verify_kzg_proof_case_invalid_proof_3e55802a5ed3c757\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0xa421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n      \"y\": \"0x1824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe\",\n      \"proof\": \"0x8123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde0\"\n    },\n    \"output\": null,\n    \"name\": \"verify_kzg_proof_case_invalid_proof_e9d3e9ec16fbc15f\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0x8f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n      \"y\": \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n      \"proof\": \"0xb30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43\"\n    },\n    \"output\": null,\n    \"name\": \"verify_kzg_proof_case_invalid_y_35d08d612aad2197\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0x8f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n      \"y\": \"0xffffffffffffffffffffffffffffffff00000000000000000000000000000000\",\n      \"proof\": \"0xb30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43\"\n    },\n    \"output\": null,\n    \"name\": \"verify_kzg_proof_case_invalid_y_4aa6def8c35c9097\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0x8f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n      \"y\": \"0x00000000000000000000000000000000000000000000000000000000000000\",\n      \"proof\": \"0xb30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43\"\n    },\n    \"output\": null,\n    \"name\": \"verify_kzg_proof_case_invalid_y_4e51cef08a61606f\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0x8f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n      \"y\": \"0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000002\",\n      \"proof\": \"0xb30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43\"\n    },\n    \"output\": null,\n    \"name\": \"verify_kzg_proof_case_invalid_y_64b9ff2b8f7dddee\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0x8f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n      \"y\": \"0x000000000000000000000000000000000000000000000000000000000000000000\",\n      \"proof\": \"0xb30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43\"\n    },\n    \"output\": null,\n    \"name\": \"verify_kzg_proof_case_invalid_y_b358a2e763727b70\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0x8f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7\",\n      \"z\": \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n      \"y\": \"0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001\",\n      \"proof\": \"0xb30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43\"\n    },\n    \"output\": null,\n    \"name\": \"verify_kzg_proof_case_invalid_y_eb0601fec84cc5e9\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0x8f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7\",\n      \"z\": \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n      \"y\": \"0x60f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec9\",\n      \"proof\": \"0xb30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43\"\n    },\n    \"output\": null,\n    \"name\": \"verify_kzg_proof_case_invalid_z_35d08d612aad2197\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0x8f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7\",\n      \"z\": \"0xffffffffffffffffffffffffffffffff00000000000000000000000000000000\",\n      \"y\": \"0x60f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec9\",\n      \"proof\": \"0xb30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43\"\n    },\n    \"output\": null,\n    \"name\": \"verify_kzg_proof_case_invalid_z_4aa6def8c35c9097\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0x8f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7\",\n      \"z\": \"0x00000000000000000000000000000000000000000000000000000000000000\",\n      \"y\": \"0x60f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec9\",\n      \"proof\": \"0xb30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43\"\n    },\n    \"output\": null,\n    \"name\": \"verify_kzg_proof_case_invalid_z_4e51cef08a61606f\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0x8f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7\",\n      \"z\": \"0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000002\",\n      \"y\": \"0x60f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec9\",\n      \"proof\": \"0xb30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43\"\n    },\n    \"output\": null,\n    \"name\": \"verify_kzg_proof_case_invalid_z_64b9ff2b8f7dddee\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0x8f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7\",\n      \"z\": \"0x000000000000000000000000000000000000000000000000000000000000000000\",\n      \"y\": \"0x60f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec9\",\n      \"proof\": \"0xb30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43\"\n    },\n    \"output\": null,\n    \"name\": \"verify_kzg_proof_case_invalid_z_b358a2e763727b70\"\n  },\n  {\n    \"input\": {\n      \"commitment\": \"0x8f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7\",\n      \"z\": \"0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001\",\n      \"y\": \"0x60f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec9\",\n      \"proof\": \"0xb30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43\"\n    },\n    \"output\": null,\n    \"name\": \"verify_kzg_proof_case_invalid_z_eb0601fec84cc5e9\"\n  }\n]"
  },
  {
    "path": "tests/cancun/eip4844_blobs/point_evaluation_vectors/requirements.txt",
    "content": "# additional requirements for concat_kzg_vectors_to_json.py\nPyYAML"
  },
  {
    "path": "tests/cancun/eip4844_blobs/spec.py",
    "content": "\"\"\"Defines EIP-4844 specification constants and functions.\"\"\"\n\nimport itertools\nfrom dataclasses import dataclass\nfrom hashlib import sha256\nfrom typing import List, Optional, Tuple\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import Transaction\n\n\n@dataclass(frozen=True)\nclass ReferenceSpec:\n    \"\"\"Defines the reference spec version and git path.\"\"\"\n\n    git_path: str\n    version: str\n\n\nref_spec_4844 = ReferenceSpec(\"EIPS/eip-4844.md\", \"de2e4a46ad93fc04e6fe3174dc6e90a3307bdb5f\")\n\n\n# Constants\n@dataclass(frozen=True)\nclass Spec:\n    \"\"\"\n    Parameters from the EIP-4844 specifications as defined at\n    https://eips.ethereum.org/EIPS/eip-4844#parameters.\n\n    If the parameter is not currently used within the tests, it is commented\n    out.\n    \"\"\"\n\n    BLOB_TX_TYPE = 0x03\n    FIELD_ELEMENTS_PER_BLOB = 4096\n    BLS_MODULUS = 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFF00000001\n    BLOB_COMMITMENT_VERSION_KZG = 1\n    POINT_EVALUATION_PRECOMPILE_ADDRESS = 10\n    POINT_EVALUATION_PRECOMPILE_GAS = 50_000\n    # MAX_VERSIONED_HASHES_LIST_SIZE = 2**24\n    # MAX_CALLDATA_SIZE = 2**24\n    # MAX_ACCESS_LIST_SIZE = 2**24\n    # MAX_ACCESS_LIST_STORAGE_KEYS = 2**24\n    # MAX_TX_WRAP_COMMITMENTS = 2**12\n    # LIMIT_BLOBS_PER_TX = 2**12\n    HASH_OPCODE_BYTE = 0x49\n    HASH_GAS_COST = 3\n    GAS_PER_BLOB = 2**17\n\n    @classmethod\n    def kzg_to_versioned_hash(\n        cls,\n        kzg_commitment: bytes | int,  # 48 bytes\n        blob_commitment_version_kzg: Optional[bytes | int] = None,\n    ) -> bytes:\n        \"\"\"Calculate versioned hash for a given KZG commitment.\"\"\"\n        if blob_commitment_version_kzg is None:\n            blob_commitment_version_kzg = cls.BLOB_COMMITMENT_VERSION_KZG\n        if isinstance(kzg_commitment, int):\n            kzg_commitment = kzg_commitment.to_bytes(48, \"big\")\n        if isinstance(blob_commitment_version_kzg, int):\n            blob_commitment_version_kzg = blob_commitment_version_kzg.to_bytes(1, \"big\")\n        return blob_commitment_version_kzg + sha256(kzg_commitment).digest()[1:]\n\n    @classmethod\n    def get_total_blob_gas(cls, *, tx: Transaction, blob_gas_per_blob: int) -> int:\n        \"\"\"Calculate the total blob gas for a transaction.\"\"\"\n        if tx.blob_versioned_hashes is None:\n            return 0\n        return blob_gas_per_blob * len(tx.blob_versioned_hashes)\n\n\n@dataclass(frozen=True)\nclass SpecHelpers:\n    \"\"\"\n    Define parameters and helper functions that are tightly coupled to the 4844\n    spec but not strictly part of it.\n    \"\"\"\n\n    BYTES_PER_FIELD_ELEMENT = 32\n\n    @classmethod\n    def get_min_excess_blob_gas_for_blob_gas_price(\n        cls,\n        *,\n        fork: Fork,\n        blob_gas_price: int,\n    ) -> int:\n        \"\"\"\n        Get the minimum required excess blob gas value to get a given blob gas\n        cost in a block.\n        \"\"\"\n        current_excess_blob_gas = 0\n        current_blob_gas_price = 1\n        get_blob_gas_price = fork.blob_gas_price_calculator()\n        gas_per_blob = fork.blob_gas_per_blob()\n        while current_blob_gas_price < blob_gas_price:\n            current_excess_blob_gas += gas_per_blob\n            current_blob_gas_price = get_blob_gas_price(excess_blob_gas=current_excess_blob_gas)\n        return current_excess_blob_gas\n\n    @classmethod\n    def get_min_excess_blobs_for_blob_gas_price(\n        cls,\n        *,\n        fork: Fork,\n        blob_gas_price: int,\n    ) -> int:\n        \"\"\"\n        Get the minimum required excess blobs to get a given blob gas cost in a\n        block.\n        \"\"\"\n        gas_per_blob = fork.blob_gas_per_blob()\n        return (\n            cls.get_min_excess_blob_gas_for_blob_gas_price(\n                fork=fork,\n                blob_gas_price=blob_gas_price,\n            )\n            // gas_per_blob\n        )\n\n    @classmethod\n    def get_blob_combinations(\n        cls,\n        blob_count: int,\n        max_blobs_per_tx: int,\n    ) -> List[Tuple[int, ...]]:\n        \"\"\"\n        Get all possible combinations of blobs that result in a given blob\n        count.\n        \"\"\"\n        combinations = [\n            seq\n            for i in range(\n                blob_count + 1, 0, -1\n            )  # We can have from 1 to at most MAX_BLOBS_PER_BLOCK blobs per\n            # block\n            for seq in itertools.combinations_with_replacement(\n                range(1, min(blob_count + 1, max_blobs_per_tx) + 1), i\n            )  # We iterate through all possible combinations\n            # And we only keep the ones that match the expected blob count\n            if sum(seq) == blob_count and all(tx_blobs <= max_blobs_per_tx for tx_blobs in seq)\n            # Validate each tx\n        ]\n\n        # We also add the reversed version of each combination, only if it's\n        # not already in the list. E.g. (4, 1) is added from (1, 4) but not (1,\n        # 1, 1, 1, 1) because its reversed version is identical.\n        combinations += [\n            tuple(reversed(x)) for x in combinations if tuple(reversed(x)) not in combinations\n        ]\n        return combinations\n\n    @classmethod\n    def all_valid_blob_combinations(cls, fork: Fork) -> List[Tuple[int, ...]]:\n        \"\"\"\n        Return all valid blob tx combinations for a given block, assuming the\n        given MAX_BLOBS_PER_BLOCK, whilst respecting MAX_BLOBS_PER_TX.\n        \"\"\"\n        max_blobs_per_block = fork.max_blobs_per_block()\n        max_blobs_per_tx = fork.max_blobs_per_tx()\n\n        combinations: List[Tuple[int, ...]] = []\n        for i in range(1, max_blobs_per_block + 1):\n            combinations += cls.get_blob_combinations(i, max_blobs_per_tx)\n        return combinations\n\n    @classmethod\n    def invalid_blob_combinations(cls, fork: Fork) -> List[Tuple[int, ...]]:\n        \"\"\"\n        Return invalid blob tx combinations for a given block that use up to\n        MAX_BLOBS_PER_BLOCK+1 blobs.\n        \"\"\"\n        max_blobs_per_block = fork.max_blobs_per_block()\n        max_blobs_per_tx = fork.max_blobs_per_tx()\n        invalid_combinations = cls.get_blob_combinations(\n            max_blobs_per_block + 1,\n            max_blobs_per_tx,\n        )\n        invalid_combinations.append((max_blobs_per_block + 1,))\n        return invalid_combinations\n"
  },
  {
    "path": "tests/cancun/eip4844_blobs/test_blob_txs.py",
    "content": "\"\"\"\nTests blob type transactions for [EIP-4844: Shard Blob Transactions](https://eips.ethereum.org/EIPS/eip-4844).\n\nNote: To add a new test, add a function that is named `test_<test_name>`.\n\nIt must at least use the following arguments:\n\n- `blockchain_test` or `state_test`\n- `pre`\n- `env`\n- `block` or `txs`.\n\nAll other `pytest.fixture` fixtures can be parametrized to generate new\ncombinations and test cases.\n\"\"\"\n\nfrom typing import List, Optional, Tuple\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    EOA,\n    AccessList,\n    Account,\n    Address,\n    Alloc,\n    Block,\n    BlockchainTestFiller,\n    BlockException,\n    Bytecode,\n    EngineAPIError,\n    Environment,\n    Hash,\n    Header,\n    Removable,\n    StateTestFiller,\n    Storage,\n    Transaction,\n    TransactionException,\n    add_kzg_version,\n)\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom .spec import Spec, SpecHelpers, ref_spec_4844\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_4844.git_path\nREFERENCE_SPEC_VERSION = ref_spec_4844.version\n\n\n@pytest.fixture\ndef destination_account_code() -> Bytecode | None:\n    \"\"\"Code in the destination account for the blob transactions.\"\"\"\n    return None\n\n\n@pytest.fixture\ndef destination_account_balance() -> int:\n    \"\"\"Balance in the destination account for the blob transactions.\"\"\"\n    return 0\n\n\n@pytest.fixture\ndef destination_account(\n    pre: Alloc, destination_account_code: Bytecode | None, destination_account_balance: int\n) -> Address:\n    \"\"\"Destination account for the blob transactions.\"\"\"\n    if destination_account_code is not None:\n        return pre.deploy_contract(\n            code=destination_account_code,\n            balance=destination_account_balance,\n        )\n    return pre.fund_eoa(destination_account_balance)\n\n\n@pytest.fixture\ndef tx_gas(\n    fork: Fork,\n    tx_calldata: bytes,\n    tx_access_list: List[AccessList],\n) -> int:\n    \"\"\"Gas allocated to transactions sent during test.\"\"\"\n    tx_intrinsic_cost_calculator = fork.transaction_intrinsic_cost_calculator()\n    return tx_intrinsic_cost_calculator(calldata=tx_calldata, access_list=tx_access_list)\n\n\n@pytest.fixture\ndef blobs_per_tx() -> List[int]:\n    \"\"\"\n    Return list of integers that each represent the number of blobs in each\n    transaction in the block of the test.\n\n    Used to automatically generate a list of correctly versioned blob hashes.\n\n    Default is to have one transaction with one blob.\n\n    Can be overloaded by a test case to provide a custom list of blob counts.\n    \"\"\"\n    return [1]\n\n\n@pytest.fixture\ndef blob_hashes_per_tx(blobs_per_tx: List[int]) -> List[List[Hash]]:\n    \"\"\"\n    Produce the list of blob hashes that are sent during the test.\n\n    Can be overloaded by a test case to provide a custom list of blob hashes.\n    \"\"\"\n    return [\n        add_kzg_version(\n            [Hash(x) for x in range(blob_count)],\n            Spec.BLOB_COMMITMENT_VERSION_KZG,\n        )\n        for blob_count in blobs_per_tx\n    ]\n\n\n@pytest.fixture\ndef total_account_minimum_balance(  # noqa: D103\n    blob_gas_per_blob: int,\n    tx_gas: int,\n    tx_value: int,\n    tx_max_fee_per_gas: int,\n    tx_max_fee_per_blob_gas: int,\n    blob_hashes_per_tx: List[List[bytes]],\n) -> int:\n    \"\"\"\n    Calculate minimum balance required for the account to be able to send the\n    transactions in the block of the test.\n    \"\"\"\n    minimum_cost = 0\n    for tx_blob_count in [len(x) for x in blob_hashes_per_tx]:\n        blob_cost = tx_max_fee_per_blob_gas * blob_gas_per_blob * tx_blob_count\n        minimum_cost += (tx_gas * tx_max_fee_per_gas) + tx_value + blob_cost\n    return minimum_cost\n\n\n@pytest.fixture\ndef total_account_transactions_fee(  # noqa: D103\n    tx_gas: int,\n    tx_value: int,\n    blob_gas_price: int,\n    block_base_fee_per_gas: int,\n    blob_gas_per_blob: int,\n    tx_max_fee_per_gas: int,\n    tx_max_priority_fee_per_gas: int,\n    blob_hashes_per_tx: List[List[bytes]],\n) -> int:\n    \"\"\"\n    Calculate actual fee for the blob transactions in the block of the test.\n    \"\"\"\n    total_cost = 0\n    for tx_blob_count in [len(x) for x in blob_hashes_per_tx]:\n        blob_cost = blob_gas_price * blob_gas_per_blob * tx_blob_count\n        block_producer_fee = (\n            tx_max_fee_per_gas - block_base_fee_per_gas if tx_max_priority_fee_per_gas else 0\n        )\n        total_cost += (\n            (tx_gas * (block_base_fee_per_gas + block_producer_fee)) + tx_value + blob_cost\n        )\n    return total_cost\n\n\n@pytest.fixture\ndef tx_access_list() -> List[AccessList]:\n    \"\"\"\n    Access list for transactions sent during test.\n\n    Can be overloaded by a test case to provide a custom access list.\n    \"\"\"\n    return []\n\n\n@pytest.fixture\ndef tx_error() -> Optional[TransactionException]:\n    \"\"\"\n    Error produced by the block transactions (no error).\n\n    Can be overloaded on test cases where the transactions are expected to\n    fail.\n    \"\"\"\n    return None\n\n\n@pytest.fixture\ndef sender_initial_balance(  # noqa: D103\n    total_account_minimum_balance: int, account_balance_modifier: int\n) -> int:\n    return total_account_minimum_balance + account_balance_modifier\n\n\n@pytest.fixture\ndef sender(pre: Alloc, sender_initial_balance: int) -> Address:  # noqa: D103\n    return pre.fund_eoa(sender_initial_balance)\n\n\n@pytest.fixture\ndef txs(  # noqa: D103\n    sender: EOA,\n    destination_account: Optional[Address],\n    tx_gas: int,\n    tx_value: int,\n    tx_calldata: bytes,\n    tx_max_fee_per_gas: int,\n    tx_max_fee_per_blob_gas: int,\n    tx_max_priority_fee_per_gas: int,\n    tx_access_list: List[AccessList],\n    blob_hashes_per_tx: List[List[bytes]],\n    tx_error: Optional[TransactionException],\n) -> List[Transaction]:\n    \"\"\"Prepare the list of transactions that are sent during the test.\"\"\"\n    return [\n        Transaction(\n            ty=Spec.BLOB_TX_TYPE,\n            sender=sender,\n            to=destination_account,\n            value=tx_value,\n            gas_limit=tx_gas,\n            data=tx_calldata,\n            max_fee_per_gas=tx_max_fee_per_gas,\n            max_priority_fee_per_gas=tx_max_priority_fee_per_gas,\n            max_fee_per_blob_gas=tx_max_fee_per_blob_gas,\n            access_list=tx_access_list,\n            blob_versioned_hashes=blob_hashes,\n            error=tx_error if tx_i == (len(blob_hashes_per_tx) - 1) else None,\n        )\n        for tx_i, blob_hashes in enumerate(blob_hashes_per_tx)\n    ]\n\n\n@pytest.fixture\ndef account_balance_modifier() -> int:\n    \"\"\"\n    Account balance modifier for the source account of all tests. See `pre`\n    fixture.\n    \"\"\"\n    return 0\n\n\n@pytest.fixture\ndef state_env(\n    excess_blob_gas: Optional[int],\n) -> Environment:\n    \"\"\"\n    Prepare the environment for all state test cases.\n\n    Main difference is that the excess blob gas is not increased by the target,\n    as there is no genesis block -> block 1 transition, and therefore the\n    excess blob gas is not decreased by the target.\n    \"\"\"\n    return Environment(\n        excess_blob_gas=excess_blob_gas if excess_blob_gas else 0,\n    )\n\n\n@pytest.fixture\ndef engine_api_error_code() -> Optional[EngineAPIError]:\n    \"\"\"\n    Engine API error code to be returned by the client on consumption of the\n    erroneous block in hive.\n    \"\"\"\n    return None\n\n\n@pytest.fixture\ndef block_error(\n    tx_error: Optional[TransactionException],\n) -> Optional[TransactionException | BlockException]:\n    \"\"\"\n    Error produced by the block transactions (no error).\n\n    Can be overloaded on test cases where the transactions are expected to\n    fail.\n    \"\"\"\n    return tx_error\n\n\n@pytest.fixture\ndef block_number() -> int:\n    \"\"\"First block number.\"\"\"\n    return 1\n\n\n@pytest.fixture\ndef block_timestamp() -> int:\n    \"\"\"Timestamp of the first block.\"\"\"\n    return 1\n\n\n@pytest.fixture\ndef expected_blob_gas_used(\n    fork: Fork,\n    txs: List[Transaction],\n    block_number: int,\n    block_timestamp: int,\n) -> Optional[int | Removable]:\n    \"\"\"Calculate blob gas used by the test block.\"\"\"\n    if not fork.header_blob_gas_used_required(\n        block_number=block_number, timestamp=block_timestamp\n    ):\n        return Header.EMPTY_FIELD\n    blob_gas_per_blob = fork.blob_gas_per_blob(\n        block_number=block_number,\n        timestamp=block_timestamp,\n    )\n    return sum([Spec.get_total_blob_gas(tx=tx, blob_gas_per_blob=blob_gas_per_blob) for tx in txs])\n\n\n@pytest.fixture\ndef expected_excess_blob_gas(\n    fork: Fork,\n    parent_excess_blobs: Optional[int],\n    parent_blobs: Optional[int],\n    block_number: int,\n    block_timestamp: int,\n    block_base_fee_per_gas: int,\n) -> Optional[int | Removable]:\n    \"\"\"Calculate blob gas used by the test block.\"\"\"\n    if not fork.header_excess_blob_gas_required(\n        block_number=block_number, timestamp=block_timestamp\n    ):\n        return Header.EMPTY_FIELD\n    excess_blob_gas = fork.excess_blob_gas_calculator()\n    return excess_blob_gas(\n        parent_excess_blobs=parent_excess_blobs if parent_excess_blobs else 0,\n        parent_blob_count=parent_blobs if parent_blobs else 0,\n        parent_base_fee_per_gas=block_base_fee_per_gas,\n    )\n\n\n@pytest.fixture\ndef header_verify(\n    txs: List[Transaction],\n    expected_blob_gas_used: Optional[int | Removable],\n    expected_excess_blob_gas: Optional[int | Removable],\n) -> Header:\n    \"\"\"Header fields to verify from the transition tool.\"\"\"\n    header_verify = Header(\n        blob_gas_used=expected_blob_gas_used,\n        excess_blob_gas=expected_excess_blob_gas,\n        gas_used=0 if len([tx for tx in txs if not tx.error]) == 0 else None,\n    )\n    return header_verify\n\n\n@pytest.fixture\ndef rlp_modifier(\n    expected_blob_gas_used: Optional[int | Removable],\n) -> Optional[Header]:\n    \"\"\"Header fields to modify on the output block in the BlockchainTest.\"\"\"\n    if expected_blob_gas_used == Header.EMPTY_FIELD:\n        return None\n    return Header(\n        blob_gas_used=expected_blob_gas_used,\n    )\n\n\n@pytest.fixture\ndef block(\n    txs: List[Transaction],\n    block_error: Optional[TransactionException | BlockException],\n    engine_api_error_code: Optional[EngineAPIError],\n    header_verify: Optional[Header],\n    rlp_modifier: Optional[Header],\n) -> Block:\n    \"\"\"Test block for all blockchain test cases.\"\"\"\n    return Block(\n        txs=txs,\n        exception=block_error,\n        engine_api_error_code=engine_api_error_code,\n        header_verify=header_verify,\n        rlp_modifier=rlp_modifier,\n    )\n\n\n@pytest.mark.parametrize_by_fork(\n    \"blobs_per_tx\",\n    SpecHelpers.all_valid_blob_combinations,\n)\n@pytest.mark.parametrize(\"block_base_fee_per_gas\", [7, 100])\n@pytest.mark.valid_from(\"Cancun\")\ndef test_valid_blob_tx_combinations(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    env: Environment,\n    block: Block,\n) -> None:\n    \"\"\"\n    Test all valid blob combinations in a single block, assuming a given value\n    of `MAX_BLOBS_PER_BLOCK`.\n\n    This assumes a block can include from 1 and up to `MAX_BLOBS_PER_BLOCK`\n    transactions where all transactions contain at least 1 blob, and the sum of\n    all blobs in a block is at most `MAX_BLOBS_PER_BLOCK`.\n\n    This test is parametrized with all valid blob transaction combinations for\n    a given block, and therefore if value of `MAX_BLOBS_PER_BLOCK` changes,\n    this test is automatically updated.\n    \"\"\"\n    blockchain_test(\n        pre=pre,\n        post={},\n        blocks=[block],\n        genesis_environment=env,\n    )\n\n\ndef generate_invalid_tx_max_fee_per_blob_gas_tests(\n    fork: Fork,\n) -> List:\n    \"\"\"\n    Return a list of tests for invalid blob transactions due to insufficient\n    max fee per blob gas parametrized for each different fork.\n    \"\"\"\n    min_base_fee_per_blob_gas = fork.min_base_fee_per_blob_gas()\n    minimum_excess_blobs_for_first_increment = SpecHelpers.get_min_excess_blobs_for_blob_gas_price(\n        fork=fork,\n        blob_gas_price=min_base_fee_per_blob_gas + 1,\n    )\n    next_base_fee_per_blob_gas = fork.blob_gas_price_calculator()(\n        excess_blob_gas=minimum_excess_blobs_for_first_increment,\n    )\n\n    tests = []\n    tests.append(\n        pytest.param(\n            # blob gas price is 1\n            minimum_excess_blobs_for_first_increment - 1,\n            # blob gas cost increases to above the minimum\n            fork.target_blobs_per_block() + 1,\n            # tx max_blob_gas_cost is the minimum\n            min_base_fee_per_blob_gas,\n            TransactionException.INSUFFICIENT_MAX_FEE_PER_BLOB_GAS,\n            id=\"insufficient_max_fee_per_blob_gas\",\n            marks=pytest.mark.exception_test,\n        )\n    )\n    if (next_base_fee_per_blob_gas - min_base_fee_per_blob_gas) > 1:\n        tests.append(\n            pytest.param(\n                # blob gas price is one less than the minimum\n                minimum_excess_blobs_for_first_increment - 1,\n                # blob gas cost increases to above the minimum\n                fork.target_blobs_per_block() + 1,\n                # tx max_blob_gas_cost is one less than the minimum\n                next_base_fee_per_blob_gas - 1,\n                TransactionException.INSUFFICIENT_MAX_FEE_PER_BLOB_GAS,\n                id=\"insufficient_max_fee_per_blob_gas_one_less_than_next\",\n                marks=pytest.mark.exception_test,\n            )\n        )\n    if min_base_fee_per_blob_gas > 1:\n        tests.append(\n            pytest.param(\n                0,  # blob gas price is the minimum\n                0,  # blob gas cost stays put at 1\n                # tx max_blob_gas_cost is one less than the minimum\n                min_base_fee_per_blob_gas - 1,\n                TransactionException.INSUFFICIENT_MAX_FEE_PER_BLOB_GAS,\n                id=\"insufficient_max_fee_per_blob_gas_one_less_than_min\",\n                marks=pytest.mark.exception_test,\n            )\n        )\n\n    tests.append(\n        pytest.param(\n            0,  # blob gas price is the minimum\n            0,  # blob gas cost stays put at 1\n            0,  # tx max_blob_gas_cost is 0\n            TransactionException.INSUFFICIENT_MAX_FEE_PER_BLOB_GAS,\n            id=\"invalid_max_fee_per_blob_gas\",\n            marks=pytest.mark.exception_test,\n        )\n    )\n    return tests\n\n\n@pytest.mark.parametrize_by_fork(\n    \"parent_excess_blobs,parent_blobs,tx_max_fee_per_blob_gas,tx_error\",\n    generate_invalid_tx_max_fee_per_blob_gas_tests,\n)\n@pytest.mark.parametrize(\n    \"account_balance_modifier\",\n    [1_000_000_000],\n)  # Extra balance to cover block blob gas cost\n@pytest.mark.valid_from(\"Cancun\")\ndef test_invalid_tx_max_fee_per_blob_gas(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    env: Environment,\n    block: Block,\n    non_zero_blob_gas_used_genesis_block: Optional[Block],\n) -> None:\n    \"\"\"\n    Reject blocks with invalid blob txs.\n\n    - tx max_fee_per_blob_gas is barely not enough\n    - tx max_fee_per_blob_gas is zero\n    \"\"\"\n    if non_zero_blob_gas_used_genesis_block is not None:\n        blocks = [non_zero_blob_gas_used_genesis_block, block]\n    else:\n        blocks = [block]\n    blockchain_test(\n        pre=pre,\n        post={},\n        blocks=blocks,\n        genesis_environment=env,\n    )\n\n\n@pytest.mark.parametrize_by_fork(\n    \"parent_excess_blobs,parent_blobs,tx_max_fee_per_blob_gas,tx_error\",\n    generate_invalid_tx_max_fee_per_blob_gas_tests,\n)\n@pytest.mark.state_test_only\n@pytest.mark.valid_from(\"Cancun\")\ndef test_invalid_tx_max_fee_per_blob_gas_state(\n    state_test: StateTestFiller,\n    state_env: Environment,\n    pre: Alloc,\n    txs: List[Transaction],\n) -> None:\n    \"\"\"\n    Reject an invalid blob transaction.\n\n    - tx max_fee_per_blob_gas is barely not enough\n    - tx max_fee_per_blob_gas is zero\n    \"\"\"\n    assert len(txs) == 1\n    state_test(\n        pre=pre,\n        post={},\n        tx=txs[0],\n        env=state_env,\n    )\n\n\n@pytest.mark.parametrize(\n    \"tx_max_fee_per_gas,tx_error\",\n    [\n        # max blob gas is ok, but max fee per gas is less than base fee per gas\n        (\n            6,\n            TransactionException.INSUFFICIENT_MAX_FEE_PER_GAS,\n        ),\n    ],\n    ids=[\"insufficient_max_fee_per_gas\"],\n)\n@pytest.mark.exception_test\n@pytest.mark.valid_from(\"Cancun\")\ndef test_invalid_normal_gas(\n    state_test: StateTestFiller,\n    state_env: Environment,\n    pre: Alloc,\n    txs: List[Transaction],\n    header_verify: Optional[Header],\n    rlp_modifier: Optional[Header],\n) -> None:\n    \"\"\"\n    Reject an invalid blob transaction.\n\n    - Sufficient max fee per blob gas, but insufficient max fee per gas\n    \"\"\"\n    assert len(txs) == 1\n    state_test(\n        pre=pre,\n        post={},\n        tx=txs[0],\n        env=state_env,\n        blockchain_test_header_verify=header_verify,\n        blockchain_test_rlp_modifier=rlp_modifier,\n    )\n\n\n@pytest.mark.parametrize_by_fork(\n    \"blobs_per_tx\",\n    SpecHelpers.invalid_blob_combinations,\n)\n@pytest.mark.parametrize(\n    \"tx_error\",\n    [\n        [\n            TransactionException.TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED,\n            TransactionException.TYPE_3_TX_BLOB_COUNT_EXCEEDED,\n        ]\n    ],\n    ids=[\"\"],\n)\n@pytest.mark.exception_test\n@pytest.mark.valid_from(\"Cancun\")\ndef test_invalid_block_blob_count(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    env: Environment,\n    block: Block,\n) -> None:\n    \"\"\"\n    Test all invalid blob combinations in a single block, where the sum of all\n    blobs in a block is at `MAX_BLOBS_PER_BLOCK + 1`.\n\n    This test is parametrized with all blob transaction combinations exceeding\n    `MAX_BLOBS_PER_BLOCK` by one for a given block, and therefore if value of\n    `MAX_BLOBS_PER_BLOCK` changes, this test is automatically updated.\n    \"\"\"\n    blockchain_test(\n        pre=pre,\n        post={},\n        blocks=[block],\n        genesis_environment=env,\n    )\n\n\n@pytest.mark.parametrize(\n    \"tx_access_list\",\n    [[], [AccessList(address=100, storage_keys=[100, 200])]],\n    ids=[\"no_access_list\", \"access_list\"],\n)\n@pytest.mark.parametrize(\"tx_max_fee_per_gas\", [7, 14])\n@pytest.mark.parametrize(\"tx_max_priority_fee_per_gas\", [0, 7])\n@pytest.mark.parametrize(\"tx_value\", [0, 1])\n@pytest.mark.parametrize(\n    \"tx_calldata\",\n    [b\"\", b\"\\x00\", b\"\\x01\"],\n    ids=[\"no_calldata\", \"single_zero_calldata\", \"single_one_calldata\"],\n)\n@pytest.mark.parametrize(\"tx_max_fee_per_blob_gas_multiplier\", [1, 100, 10000])\n@pytest.mark.parametrize(\"account_balance_modifier\", [-1], ids=[\"exact_balance_minus_1\"])\n@pytest.mark.parametrize(\"tx_error\", [TransactionException.INSUFFICIENT_ACCOUNT_FUNDS], ids=[\"\"])\n@pytest.mark.exception_test\n@pytest.mark.valid_from(\"Cancun\")\n@pytest.mark.slow()\ndef test_insufficient_balance_blob_tx(\n    state_test: StateTestFiller,\n    state_env: Environment,\n    pre: Alloc,\n    txs: List[Transaction],\n) -> None:\n    \"\"\"\n    Reject blocks where user cannot afford the blob gas specified (but\n    max_fee_per_gas would be enough for current block).\n\n    - Transactions with max fee equal or higher than current block base fee\n    - Transactions with and without priority fee\n    - Transactions with and without value\n    - Transactions with and without calldata\n    - Transactions with max fee per blob gas lower or higher than the priority\n        fee\n    \"\"\"\n    assert len(txs) == 1\n    state_test(\n        pre=pre,\n        post={},\n        tx=txs[0],\n        env=state_env,\n    )\n\n\n@pytest.mark.parametrize_by_fork(\n    \"blobs_per_tx\",\n    lambda fork: [\n        pytest.param([1], id=\"single_blob\"),\n        pytest.param([fork.max_blobs_per_tx()], id=\"max_blobs\"),\n    ],\n)\n@pytest.mark.parametrize(\n    \"tx_access_list\",\n    [[], [AccessList(address=100, storage_keys=[100, 200])]],\n    ids=[\"no_access_list\", \"access_list\"],\n)\n@pytest.mark.parametrize(\"tx_max_fee_per_gas\", [7, 14])\n@pytest.mark.parametrize(\"tx_max_priority_fee_per_gas\", [0, 7])\n@pytest.mark.parametrize(\"tx_value\", [0, 1])\n@pytest.mark.parametrize(\n    \"tx_calldata\",\n    [b\"\", b\"\\x00\", b\"\\x01\"],\n    ids=[\"no_calldata\", \"single_zero_calldata\", \"single_one_calldata\"],\n)\n@pytest.mark.parametrize(\"block_base_fee_per_gas\", [7, 100])\n@pytest.mark.parametrize(\"tx_max_fee_per_blob_gas_multiplier\", [1, 100, 10000])\n@pytest.mark.valid_from(\"Cancun\")\ndef test_sufficient_balance_blob_tx(\n    state_test: StateTestFiller,\n    state_env: Environment,\n    pre: Alloc,\n    txs: List[Transaction],\n) -> None:\n    \"\"\"\n    Check that transaction is accepted when user can exactly afford the blob\n    gas specified (and max_fee_per_gas would be enough for current block).\n\n    - Transactions with max fee equal or higher than current block base fee\n    - Transactions with and without priority fee\n    - Transactions with and without value\n    - Transactions with and without calldata\n    - Transactions with max fee per blob gas lower or higher than the priority\n        fee\n    \"\"\"\n    assert len(txs) == 1\n    state_test(\n        pre=pre,\n        post={},\n        tx=txs[0],\n        env=state_env,\n    )\n\n\n@pytest.mark.parametrize_by_fork(\n    \"blobs_per_tx\",\n    lambda fork: [\n        pytest.param([1], id=\"single_blob\"),\n        pytest.param([fork.max_blobs_per_tx()], id=\"max_blobs\"),\n    ],\n)\n@pytest.mark.parametrize(\n    \"tx_access_list\",\n    [[], [AccessList(address=100, storage_keys=[100, 200])]],\n    ids=[\"no_access_list\", \"access_list\"],\n)\n@pytest.mark.parametrize(\"tx_max_fee_per_gas\", [7, 14])\n@pytest.mark.parametrize(\"tx_max_priority_fee_per_gas\", [0, 7])\n@pytest.mark.parametrize(\"tx_value\", [0, 1])\n@pytest.mark.parametrize(\n    \"tx_calldata\",\n    [b\"\", b\"\\x00\", b\"\\x01\"],\n    ids=[\"no_calldata\", \"single_zero_calldata\", \"single_one_calldata\"],\n)\n@pytest.mark.parametrize(\"tx_max_fee_per_blob_gas_multiplier\", [1, 100, 10000])\n@pytest.mark.parametrize(\"sender_initial_balance\", [0])\n@pytest.mark.valid_from(\"Cancun\")\ndef test_sufficient_balance_blob_tx_pre_fund_tx(\n    blockchain_test: BlockchainTestFiller,\n    total_account_minimum_balance: int,\n    sender: EOA,\n    env: Environment,\n    pre: Alloc,\n    txs: List[Transaction],\n    header_verify: Optional[Header],\n) -> None:\n    \"\"\"\n    Check that transaction is accepted when user can exactly afford the blob\n    gas specified (and max_fee_per_gas would be enough for current block)\n    because a funding transaction is prepended in the same block.\n\n    - Transactions with max fee equal or higher than current block base fee\n    - Transactions with and without priority fee\n    - Transactions with and without value\n    - Transactions with and without calldata\n    - Transactions with max fee per blob gas lower or higher than the priority\n        fee\n    \"\"\"\n    pre_funding_sender = pre.fund_eoa(amount=(21_000 * 100) + total_account_minimum_balance)\n    txs = [\n        Transaction(\n            sender=pre_funding_sender,\n            to=sender,\n            value=total_account_minimum_balance,\n            gas_limit=21_000,\n        )\n    ] + txs\n    blockchain_test(\n        pre=pre,\n        post={},\n        blocks=[\n            Block(\n                txs=txs,\n                header_verify=header_verify,\n            )\n        ],\n        genesis_environment=env,\n    )\n\n\n@pytest.mark.parametrize_by_fork(\n    \"blobs_per_tx\",\n    lambda fork: [\n        pytest.param([1], id=\"single_blob\"),\n        pytest.param([fork.max_blobs_per_tx()], id=\"max_blobs\"),\n    ],\n)\n@pytest.mark.parametrize(\n    \"tx_access_list\",\n    [[], [AccessList(address=100, storage_keys=[100, 200])]],\n    ids=[\"no_access_list\", \"access_list\"],\n)\n@pytest.mark.parametrize(\"tx_max_fee_per_gas\", [7, 14])\n@pytest.mark.parametrize(\"tx_max_priority_fee_per_gas\", [0, 7])\n@pytest.mark.parametrize(\"tx_value\", [0, 1])\n@pytest.mark.parametrize(\n    \"tx_calldata\",\n    [b\"\", b\"\\x01\"],\n    ids=[\"no_calldata\", \"single_non_zero_byte_calldata\"],\n)\n@pytest.mark.parametrize(\"tx_max_fee_per_blob_gas_multiplier\", [1, 100])\n@pytest.mark.parametrize(\n    \"tx_gas\", [500_000], ids=[\"\"]\n)  # Increase gas to account for contract code\n@pytest.mark.parametrize(\n    \"destination_account_balance\", [100], ids=[\"100_wei_mid_execution\"]\n)  # Amount sent by the contract to the sender mid execution\n@pytest.mark.parametrize(\n    \"destination_account_code\",\n    [\n        Op.SSTORE(0, Op.BALANCE(Op.ORIGIN))\n        + Op.CALL(Op.GAS, Op.ORIGIN, Op.SUB(Op.SELFBALANCE, Op.CALLVALUE), 0, 0, 0, 0)\n        + Op.SSTORE(1, Op.BALANCE(Op.ORIGIN))\n    ],\n    ids=[\"\"],\n)  # Amount sent by the contract to the sender mid execution\n@pytest.mark.valid_from(\"Cancun\")\ndef test_blob_gas_subtraction_tx(\n    state_test: StateTestFiller,\n    state_env: Environment,\n    pre: Alloc,\n    sender_initial_balance: int,\n    txs: List[Transaction],\n    destination_account: Address,\n    destination_account_balance: int,\n    total_account_transactions_fee: int,\n) -> None:\n    \"\"\"\n    Check that the blob gas fee for a transaction is subtracted from the sender\n    balance before the transaction is executed.\n\n    - Transactions with max fee equal or higher than current block base fee\n    - Transactions with and without value\n    - Transactions with and without calldata\n    - Transactions with max fee per blob gas lower or higher than the priority\n        fee\n    - Transactions where an externally owned account sends funds to the sender\n        mid execution\n    \"\"\"\n    assert len(txs) == 1\n    post = {\n        destination_account: Account(\n            storage={\n                0: sender_initial_balance - total_account_transactions_fee,\n                1: sender_initial_balance\n                - total_account_transactions_fee\n                + destination_account_balance,\n            }\n        )\n    }\n    state_test(\n        pre=pre,\n        post=post,\n        tx=txs[0],\n        env=state_env,\n    )\n\n\n@pytest.mark.parametrize_by_fork(\n    \"blobs_per_tx\",\n    SpecHelpers.all_valid_blob_combinations,\n)\n@pytest.mark.parametrize(\"account_balance_modifier\", [-1], ids=[\"exact_balance_minus_1\"])\n@pytest.mark.parametrize(\"tx_error\", [TransactionException.INSUFFICIENT_ACCOUNT_FUNDS], ids=[\"\"])\n@pytest.mark.exception_test\n@pytest.mark.valid_from(\"Cancun\")\ndef test_insufficient_balance_blob_tx_combinations(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    env: Environment,\n    block: Block,\n) -> None:\n    \"\"\"\n    Reject all valid blob transaction combinations in a block, but block is\n    invalid.\n\n    - The amount of blobs is correct but the user cannot afford the transaction\n       total cost\n    \"\"\"\n    blockchain_test(\n        pre=pre,\n        post={},\n        blocks=[block],\n        genesis_environment=env,\n    )\n\n\ndef generate_invalid_tx_blob_count_tests(\n    fork: Fork,\n) -> List:\n    \"\"\"\n    Return a list of tests for invalid blob transactions due to invalid blob\n    counts.\n    \"\"\"\n    return [\n        pytest.param(\n            [0],\n            TransactionException.TYPE_3_TX_ZERO_BLOBS,\n            id=\"too_few_blobs\",\n        ),\n        pytest.param(\n            [fork.max_blobs_per_tx() + 1],\n            [\n                TransactionException.TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED,\n                TransactionException.TYPE_3_TX_BLOB_COUNT_EXCEEDED,\n            ],\n            id=\"too_many_blobs\",\n        ),\n    ]\n\n\n@pytest.mark.parametrize_by_fork(\n    \"blobs_per_tx,tx_error\",\n    generate_invalid_tx_blob_count_tests,\n)\n@pytest.mark.exception_test\n@pytest.mark.valid_from(\"Cancun\")\ndef test_invalid_tx_blob_count(\n    state_test: StateTestFiller,\n    state_env: Environment,\n    pre: Alloc,\n    txs: List[Transaction],\n    header_verify: Optional[Header],\n    rlp_modifier: Optional[Header],\n) -> None:\n    \"\"\"\n    Reject blocks that include blob transactions with invalid blob counts.\n\n    - `blob count == 0` in type 3 transaction\n    - `blob count > MAX_BLOBS_PER_BLOCK` in type 3 transaction\n    \"\"\"\n    assert len(txs) == 1\n    state_test(\n        pre=pre,\n        post={},\n        tx=txs[0],\n        env=state_env,\n        blockchain_test_header_verify=header_verify,\n        blockchain_test_rlp_modifier=rlp_modifier,\n    )\n\n\n@pytest.mark.parametrize(\n    \"blob_hashes_per_tx\",\n    [\n        [[Hash(1)]],\n        [[Hash(x) for x in range(2)]],\n        [add_kzg_version([Hash(1)], Spec.BLOB_COMMITMENT_VERSION_KZG) + [Hash(2)]],\n        [[Hash(1)] + add_kzg_version([Hash(2)], Spec.BLOB_COMMITMENT_VERSION_KZG)],\n    ],\n    ids=[\n        \"single_blob\",\n        \"multiple_blobs\",\n        \"multiple_blobs_single_bad_hash_1\",\n        \"multiple_blobs_single_bad_hash_2\",\n    ],\n)\n@pytest.mark.parametrize(\n    \"tx_error\", [TransactionException.TYPE_3_TX_INVALID_BLOB_VERSIONED_HASH], ids=[\"\"]\n)\n@pytest.mark.exception_test\n@pytest.mark.valid_from(\"Cancun\")\ndef test_invalid_blob_hash_versioning_single_tx(\n    state_test: StateTestFiller,\n    state_env: Environment,\n    pre: Alloc,\n    txs: List[Transaction],\n    header_verify: Optional[Header],\n    rlp_modifier: Optional[Header],\n) -> None:\n    \"\"\"\n    Reject blob transactions with invalid blob hash version.\n\n    - Transaction with single blob with invalid version\n    - Transaction with multiple blobs all with invalid version\n    - Transaction with multiple blobs either with invalid version\n    \"\"\"\n    assert len(txs) == 1\n    state_test(\n        pre=pre,\n        post={},\n        tx=txs[0],\n        env=state_env,\n        blockchain_test_header_verify=header_verify,\n        blockchain_test_rlp_modifier=rlp_modifier,\n    )\n\n\n@pytest.mark.parametrize(\n    \"blob_hashes_per_tx\",\n    [\n        [\n            add_kzg_version([Hash(1)], Spec.BLOB_COMMITMENT_VERSION_KZG),\n            [Hash(2)],\n        ],\n        [\n            add_kzg_version([Hash(1)], Spec.BLOB_COMMITMENT_VERSION_KZG),\n            [Hash(x) for x in range(1, 3)],\n        ],\n        [\n            add_kzg_version([Hash(1)], Spec.BLOB_COMMITMENT_VERSION_KZG),\n            [Hash(2)] + add_kzg_version([Hash(3)], Spec.BLOB_COMMITMENT_VERSION_KZG),\n        ],\n        [\n            add_kzg_version([Hash(1)], Spec.BLOB_COMMITMENT_VERSION_KZG),\n            add_kzg_version([Hash(2)], Spec.BLOB_COMMITMENT_VERSION_KZG),\n            [Hash(3)],\n        ],\n    ],\n    ids=[\n        \"single_blob\",\n        \"multiple_blobs\",\n        \"multiple_blobs_single_bad_hash_1\",\n        \"multiple_blobs_single_bad_hash_2\",\n    ],\n)\n@pytest.mark.parametrize(\n    \"tx_error\", [TransactionException.TYPE_3_TX_INVALID_BLOB_VERSIONED_HASH], ids=[\"\"]\n)\n@pytest.mark.exception_test\n@pytest.mark.valid_from(\"Cancun\")\ndef test_invalid_blob_hash_versioning_multiple_txs(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    env: Environment,\n    block: Block,\n) -> None:\n    \"\"\"\n    Reject blocks that include blob transactions with invalid blob hash\n    version.\n\n    - Multiple blob transactions with single blob all with invalid version\n    - Multiple blob transactions with multiple blobs all with invalid version\n    - Multiple blob transactions with multiple blobs only one with invalid\n        version\n    \"\"\"\n    blockchain_test(\n        pre=pre,\n        post={},\n        blocks=[block],\n        genesis_environment=env,\n    )\n\n\n@pytest.mark.parametrize(\n    \"tx_gas\", [500_000], ids=[\"\"]\n)  # Increase gas to account for contract creation\n@pytest.mark.exception_test\n@pytest.mark.valid_from(\"Cancun\")\ndef test_invalid_blob_tx_contract_creation(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    env: Environment,\n    txs: List[Transaction],\n    header_verify: Optional[Header],\n) -> None:\n    \"\"\"\n    Reject blocks that include blob transactions that have nil to value\n    (contract creating).\n    \"\"\"\n    assert len(txs) == 1\n    assert txs[0].blob_versioned_hashes is not None and len(txs[0].blob_versioned_hashes) == 1\n    # Replace the transaction with a contract creating one, only in the RLP\n    # version\n    contract_creating_tx = txs[0].copy(to=None).with_signature_and_sender()\n    txs[0].rlp_override = contract_creating_tx.rlp()\n    blockchain_test(\n        pre=pre,\n        post={},\n        blocks=[\n            Block(\n                txs=txs,\n                exception=[\n                    BlockException.RLP_STRUCTURES_ENCODING,\n                    TransactionException.TYPE_3_TX_CONTRACT_CREATION,\n                ],\n                header_verify=header_verify,\n                # Skipped due to the T8N not receiving the invalid transaction,\n                # instead we are passing a valid transaction to T8N and then\n                # the transaction is replaced directly in the block RLP.\n                skip_exception_verification=True,\n            )\n        ],\n        genesis_environment=env,\n    )\n\n\n# # ----------------------------------------\n# # Opcode Tests in Blob Transaction Context\n# # ----------------------------------------\n\n\n@pytest.fixture\ndef opcode(\n    request: pytest.FixtureRequest,\n    sender: EOA,\n    tx_calldata: bytes,\n    block_base_fee_per_gas: int,\n    tx_max_fee_per_gas: int,\n    tx_max_priority_fee_per_gas: int,\n    tx_value: int,\n) -> Tuple[Bytecode, Storage.StorageDictType]:\n    \"\"\"\n    Build bytecode and post to test each opcode that accesses transaction\n    information.\n    \"\"\"\n    if request.param == Op.ORIGIN:\n        return (\n            Op.SSTORE(0, Op.ORIGIN),\n            {0: sender},\n        )\n    elif request.param == Op.CALLER:\n        return (\n            Op.SSTORE(0, Op.CALLER),\n            {0: sender},\n        )\n    elif request.param == Op.CALLVALUE:\n        return (\n            Op.SSTORE(0, Op.CALLVALUE),\n            {0: tx_value},\n        )\n    elif request.param == Op.CALLDATALOAD:\n        return (\n            Op.SSTORE(0, Op.CALLDATALOAD(0)),\n            {0: tx_calldata.ljust(32, b\"\\x00\")},\n        )\n    elif request.param == Op.CALLDATASIZE:\n        return (\n            Op.SSTORE(0, Op.CALLDATASIZE),\n            {0: len(tx_calldata)},\n        )\n    elif request.param == Op.CALLDATACOPY:\n        return (\n            Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE) + Op.SSTORE(0, Op.MLOAD(0)),\n            {0: tx_calldata.ljust(32, b\"\\x00\")},\n        )\n    elif request.param == Op.GASPRICE:\n        assert tx_max_fee_per_gas >= block_base_fee_per_gas\n        return (\n            Op.SSTORE(0, Op.GASPRICE),\n            {\n                0: min(tx_max_priority_fee_per_gas, tx_max_fee_per_gas - block_base_fee_per_gas)\n                + block_base_fee_per_gas\n            },\n        )\n    raise Exception(\"Unknown opcode\")\n\n\n@pytest.mark.parametrize(\n    \"opcode\",\n    [Op.ORIGIN, Op.CALLER],\n    indirect=[\"opcode\"],\n)\n@pytest.mark.parametrize(\"tx_gas\", [500_000])\n@pytest.mark.valid_from(\"Cancun\")\ndef test_blob_tx_attribute_opcodes(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    sender: EOA,\n    tx_value: int,\n    tx_gas: int,\n    tx_calldata: bytes,\n    tx_max_fee_per_gas: int,\n    tx_max_fee_per_blob_gas: int,\n    tx_max_priority_fee_per_gas: int,\n    tx_access_list: List[AccessList],\n    blob_hashes_per_tx: List[List[bytes]],\n    opcode: Tuple[Bytecode, Storage.StorageDictType],\n    state_env: Environment,\n) -> None:\n    \"\"\"\n    Test opcodes that read transaction attributes work properly for blob type\n    transactions.\n\n    - ORIGIN\n    - CALLER\n    \"\"\"\n    code, storage = opcode\n    destination_account = pre.deploy_contract(code=code)\n    tx = Transaction(\n        ty=Spec.BLOB_TX_TYPE,\n        sender=sender,\n        to=destination_account,\n        value=tx_value,\n        gas_limit=tx_gas,\n        data=tx_calldata,\n        max_fee_per_gas=tx_max_fee_per_gas,\n        max_priority_fee_per_gas=tx_max_priority_fee_per_gas,\n        max_fee_per_blob_gas=tx_max_fee_per_blob_gas,\n        access_list=tx_access_list,\n        blob_versioned_hashes=blob_hashes_per_tx[0],\n    )\n    post = {\n        destination_account: Account(\n            storage=storage,\n        )\n    }\n    state_test(\n        pre=pre,\n        post=post,\n        tx=tx,\n        env=state_env,\n    )\n\n\n@pytest.mark.parametrize(\"opcode\", [Op.CALLVALUE], indirect=[\"opcode\"])\n@pytest.mark.parametrize(\"tx_value\", [0, 1, int(1e18)])\n@pytest.mark.parametrize(\"tx_gas\", [500_000])\n@pytest.mark.valid_from(\"Cancun\")\ndef test_blob_tx_attribute_value_opcode(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    sender: EOA,\n    tx_value: int,\n    tx_gas: int,\n    tx_calldata: bytes,\n    tx_max_fee_per_gas: int,\n    tx_max_fee_per_blob_gas: int,\n    tx_max_priority_fee_per_gas: int,\n    tx_access_list: List[AccessList],\n    blob_hashes_per_tx: List[List[bytes]],\n    opcode: Tuple[Bytecode, Storage.StorageDictType],\n    state_env: Environment,\n) -> None:\n    \"\"\"\n    Test the VALUE opcode with different blob type transaction value amounts.\n    \"\"\"\n    code, storage = opcode\n    destination_account = pre.deploy_contract(code=code)\n    tx = Transaction(\n        ty=Spec.BLOB_TX_TYPE,\n        sender=sender,\n        to=destination_account,\n        value=tx_value,\n        gas_limit=tx_gas,\n        data=tx_calldata,\n        max_fee_per_gas=tx_max_fee_per_gas,\n        max_priority_fee_per_gas=tx_max_priority_fee_per_gas,\n        max_fee_per_blob_gas=tx_max_fee_per_blob_gas,\n        access_list=tx_access_list,\n        blob_versioned_hashes=blob_hashes_per_tx[0],\n    )\n    post = {\n        destination_account: Account(\n            storage=storage,\n            balance=tx_value,\n        )\n    }\n    state_test(\n        pre=pre,\n        post=post,\n        tx=tx,\n        env=state_env,\n    )\n\n\n@pytest.mark.parametrize(\n    \"opcode\",\n    [\n        Op.CALLDATALOAD,\n        Op.CALLDATASIZE,\n        Op.CALLDATACOPY,\n    ],\n    indirect=True,\n)\n@pytest.mark.parametrize(\n    \"tx_calldata\",\n    [\n        b\"\",\n        b\"\\x01\",\n        b\"\\x00\\x01\" * 16,\n    ],\n    ids=[\"empty\", \"single_byte\", \"word\"],\n)\n@pytest.mark.parametrize(\"tx_gas\", [500_000])\n@pytest.mark.valid_from(\"Cancun\")\ndef test_blob_tx_attribute_calldata_opcodes(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    sender: EOA,\n    tx_value: int,\n    tx_gas: int,\n    tx_calldata: bytes,\n    tx_max_fee_per_gas: int,\n    tx_max_fee_per_blob_gas: int,\n    tx_max_priority_fee_per_gas: int,\n    tx_access_list: List[AccessList],\n    blob_hashes_per_tx: List[List[bytes]],\n    opcode: Tuple[Bytecode, Storage.StorageDictType],\n    state_env: Environment,\n) -> None:\n    \"\"\"\n    Test calldata related opcodes to verify their behavior is not affected by\n    blobs.\n\n    - CALLDATALOAD\n    - CALLDATASIZE\n    - CALLDATACOPY\n    \"\"\"\n    code, storage = opcode\n    destination_account = pre.deploy_contract(code=code)\n    tx = Transaction(\n        ty=Spec.BLOB_TX_TYPE,\n        sender=sender,\n        to=destination_account,\n        value=tx_value,\n        gas_limit=tx_gas,\n        data=tx_calldata,\n        max_fee_per_gas=tx_max_fee_per_gas,\n        max_priority_fee_per_gas=tx_max_priority_fee_per_gas,\n        max_fee_per_blob_gas=tx_max_fee_per_blob_gas,\n        access_list=tx_access_list,\n        blob_versioned_hashes=blob_hashes_per_tx[0],\n    )\n    post = {\n        destination_account: Account(\n            storage=storage,\n        )\n    }\n    state_test(\n        pre=pre,\n        post=post,\n        tx=tx,\n        env=state_env,\n    )\n\n\n# always below data fee:\n@pytest.mark.parametrize(\"tx_max_priority_fee_per_gas\", [0, 2])\n# normal and above priority fee:\n@pytest.mark.parametrize(\"tx_max_fee_per_blob_gas_delta\", [0, 1])\n# always above priority fee (FOR CANCUN)\n@pytest.mark.parametrize(\"tx_max_fee_per_gas\", [100])\n@pytest.mark.parametrize(\"opcode\", [Op.GASPRICE], indirect=True)\n@pytest.mark.parametrize(\"tx_gas\", [500_000])\n@pytest.mark.valid_from(\"Cancun\")\ndef test_blob_tx_attribute_gasprice_opcode(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    sender: EOA,\n    tx_value: int,\n    tx_gas: int,\n    tx_calldata: bytes,\n    tx_max_fee_per_gas: int,\n    tx_max_fee_per_blob_gas: int,\n    tx_max_priority_fee_per_gas: int,\n    tx_access_list: List[AccessList],\n    blob_hashes_per_tx: List[List[bytes]],\n    opcode: Tuple[Bytecode, Storage.StorageDictType],\n    state_env: Environment,\n) -> None:\n    \"\"\"\n    Test GASPRICE opcode to sanity check that the blob gas fee does not affect\n    its calculation.\n\n    - No priority fee\n    - Priority fee below data fee\n    - Priority fee above data fee\n    \"\"\"\n    code, storage = opcode\n    destination_account = pre.deploy_contract(code=code)\n    tx = Transaction(\n        ty=Spec.BLOB_TX_TYPE,\n        sender=sender,\n        to=destination_account,\n        value=tx_value,\n        gas_limit=tx_gas,\n        data=tx_calldata,\n        max_fee_per_gas=tx_max_fee_per_gas,\n        max_priority_fee_per_gas=tx_max_priority_fee_per_gas,\n        max_fee_per_blob_gas=tx_max_fee_per_blob_gas,\n        access_list=tx_access_list,\n        blob_versioned_hashes=blob_hashes_per_tx[0],\n    )\n    post = {\n        destination_account: Account(\n            storage=storage,\n        )\n    }\n    state_test(\n        pre=pre,\n        post=post,\n        tx=tx,\n        env=state_env,\n    )\n\n\n@pytest.mark.parametrize(\n    [\n        \"blobs_per_tx\",\n        \"parent_excess_blobs\",\n        \"tx_max_fee_per_blob_gas\",\n        \"tx_error\",\n        \"block_error\",\n    ],\n    [\n        (\n            [0],\n            None,\n            1,\n            [TransactionException.TYPE_3_TX_PRE_FORK, TransactionException.TYPE_3_TX_ZERO_BLOBS],\n            [TransactionException.TYPE_3_TX_PRE_FORK, TransactionException.TYPE_3_TX_ZERO_BLOBS],\n        ),\n        (\n            [1],\n            None,\n            1,\n            TransactionException.TYPE_3_TX_PRE_FORK,\n            [TransactionException.TYPE_3_TX_PRE_FORK, BlockException.INVALID_VERSIONED_HASHES],\n        ),\n    ],\n    ids=[\"no_blob_tx\", \"one_blob_tx\"],\n)\n@pytest.mark.exception_test\n@pytest.mark.valid_at_transition_to(\"Cancun\")\n@pytest.mark.slow()\ndef test_blob_type_tx_pre_fork(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    txs: List[Transaction],\n    block_error: Optional[TransactionException | BlockException],\n) -> None:\n    \"\"\"\n    Reject blocks with blob type transactions before Cancun fork.\n\n    Blocks sent by NewPayloadV2 (Shanghai) that contain blob type transactions,\n    furthermore blobs field within NewPayloadV2 method must be computed as\n    INVALID, due to an invalid block hash.\n    \"\"\"\n    assert len(txs) == 1\n    state_test(\n        pre=pre,\n        post={},\n        tx=txs[0],\n        env=Environment(),  # `env` fixture has blob fields\n        block_exception=block_error,\n    )\n"
  },
  {
    "path": "tests/cancun/eip4844_blobs/test_blob_txs_full.py",
    "content": "\"\"\"Tests full blob type transactions for [EIP-4844: Shard Blob Transactions](https://eips.ethereum.org/EIPS/eip-4844).\"\"\"\n\nfrom typing import List, Optional\n\nimport pytest\n\nfrom ethereum_test_base_types.base_types import Hash\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    Address,\n    Alloc,\n    Blob,\n    Block,\n    BlockchainTestFiller,\n    BlockException,\n    Environment,\n    Header,\n    NetworkWrappedTransaction,\n    Transaction,\n    TransactionException,\n)\n\nfrom .spec import Spec, ref_spec_4844\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_4844.git_path\nREFERENCE_SPEC_VERSION = ref_spec_4844.version\n\n\n@pytest.fixture\ndef destination_account() -> Address:\n    \"\"\"Destination account for the blob transactions.\"\"\"\n    return Address(0x100)\n\n\n@pytest.fixture\ndef tx_value() -> int:\n    \"\"\"\n    Value contained by the transactions sent during test.\n\n    Can be overloaded by a test case to provide a custom transaction value.\n    \"\"\"\n    return 1\n\n\n@pytest.fixture\ndef tx_gas() -> int:\n    \"\"\"Gas allocated to transactions sent during test.\"\"\"\n    return 21_000\n\n\n@pytest.fixture\ndef tx_calldata() -> bytes:\n    \"\"\"Calldata in transactions sent during test.\"\"\"\n    return b\"\"\n\n\n@pytest.fixture(autouse=True)\ndef parent_excess_blobs() -> int:\n    \"\"\"\n    Excess blobs of the parent block.\n\n    Can be overloaded by a test case to provide a custom parent excess blob\n    count.\n    \"\"\"\n    return 10  # Defaults to a blob gas price of 1.\n\n\n@pytest.fixture(autouse=True)\ndef parent_blobs() -> int:\n    \"\"\"\n    Blobs of the parent blob.\n\n    Can be overloaded by a test case to provide a custom parent blob count.\n    \"\"\"\n    return 0\n\n\n@pytest.fixture\ndef tx_max_priority_fee_per_gas() -> int:\n    \"\"\"\n    Max priority fee per gas for transactions sent during test.\n\n    Can be overloaded by a test case to provide a custom max priority fee per\n    gas.\n    \"\"\"\n    return 0\n\n\n@pytest.fixture\ndef txs_versioned_hashes(txs_blobs: List[List[Blob]]) -> List[List[Hash]]:\n    \"\"\"List of blob versioned hashes derived from the blobs.\"\"\"\n    version_hashes: List[List[Hash]] = [\n        [blob.versioned_hash for blob in blob_tx] for blob_tx in txs_blobs\n    ]\n    return version_hashes\n\n\n@pytest.fixture(autouse=True)\ndef tx_max_fee_per_gas(\n    block_base_fee_per_gas: int,\n) -> int:\n    \"\"\"\n    Max fee per gas value used by all transactions sent during test.\n\n    By default the max fee per gas is the same as the block fee per gas.\n\n    Can be overloaded by a test case to test rejection of transactions where\n    the max fee per gas is insufficient.\n    \"\"\"\n    return block_base_fee_per_gas\n\n\n@pytest.fixture\ndef tx_max_fee_per_blob_gas(  # noqa: D103\n    blob_gas_price: Optional[int],\n) -> int:\n    \"\"\"\n    Max fee per blob gas for transactions sent during test.\n\n    By default, it is set to the blob gas price of the block.\n\n    Can be overloaded by a test case to test rejection of transactions where\n    the max fee per blob gas is insufficient.\n    \"\"\"\n    if blob_gas_price is None:\n        # When fork transitioning, the default blob gas price is 1.\n        return 1\n    return blob_gas_price\n\n\n@pytest.fixture\ndef tx_error() -> Optional[TransactionException]:\n    \"\"\"\n    Even though the final block we are producing in each of these tests is\n    invalid, and some of the transactions will be invalid due to the format in\n    the final block, none of the transactions should be rejected by the\n    transition tool because they are being sent to it with the correct format.\n    \"\"\"\n    return None\n\n\n@pytest.fixture(autouse=True)\ndef txs(  # noqa: D103\n    pre: Alloc,\n    destination_account: Optional[Address],\n    tx_gas: int,\n    tx_value: int,\n    tx_calldata: bytes,\n    tx_max_fee_per_gas: int,\n    tx_max_fee_per_blob_gas: int,\n    tx_max_priority_fee_per_gas: int,\n    txs_versioned_hashes: List[List[Hash]],\n    tx_error: Optional[TransactionException],\n    txs_blobs: List[List[Blob]],\n    txs_wrapped_blobs: List[bool],\n    fork: Fork,\n) -> List[Transaction]:\n    \"\"\"Prepare the list of transactions that are sent during the test.\"\"\"\n    if len(txs_blobs) != len(txs_versioned_hashes) or len(txs_blobs) != len(txs_wrapped_blobs):\n        raise ValueError(\"txs_blobs and txs_versioned_hashes should have the same length\")\n    txs: List[Transaction] = []\n    sender = pre.fund_eoa()\n    for tx_blobs, tx_versioned_hashes, tx_wrapped_blobs in zip(\n        txs_blobs, txs_versioned_hashes, txs_wrapped_blobs, strict=False\n    ):\n        tx = Transaction(\n            ty=Spec.BLOB_TX_TYPE,\n            sender=sender,\n            to=destination_account,\n            value=tx_value,\n            gas_limit=tx_gas,\n            data=tx_calldata,\n            max_fee_per_gas=tx_max_fee_per_gas,\n            max_priority_fee_per_gas=tx_max_priority_fee_per_gas,\n            max_fee_per_blob_gas=tx_max_fee_per_blob_gas,\n            access_list=[],\n            blob_versioned_hashes=tx_versioned_hashes,\n            error=tx_error,\n            wrapped_blob_transaction=tx_wrapped_blobs,\n        )\n        if tx_wrapped_blobs:\n            network_wrapped_tx = NetworkWrappedTransaction(\n                tx=tx,\n                blob_objects=tx_blobs,\n                wrapper_version=fork.full_blob_tx_wrapper_version(),\n            )\n            tx.rlp_override = network_wrapped_tx.rlp()\n        txs.append(tx)\n    return txs\n\n\n@pytest.fixture\ndef env(\n    parent_excess_blob_gas: int,\n) -> Environment:\n    \"\"\"Prepare the environment for all test cases.\"\"\"\n    return Environment(\n        excess_blob_gas=parent_excess_blob_gas,\n        blob_gas_used=0,\n    )\n\n\n@pytest.fixture\ndef blocks(\n    txs: List[Transaction],\n    txs_wrapped_blobs: List[bool],\n    blob_gas_per_blob: int,\n) -> List[Block]:\n    \"\"\"Prepare the list of blocks for all test cases.\"\"\"\n    header_blob_gas_used = 0\n    block_error = None\n    if any(txs_wrapped_blobs):\n        # This is a block exception because the invalid block is only created\n        # in the RLP version, not in the transition tool.\n        block_error = [\n            BlockException.RLP_STRUCTURES_ENCODING,\n            TransactionException.TYPE_3_TX_WITH_FULL_BLOBS,\n        ]\n    if len(txs) > 0:\n        header_blob_gas_used = (\n            sum(\n                [\n                    len(tx.blob_versioned_hashes)\n                    for tx in txs\n                    if tx.blob_versioned_hashes is not None\n                ]\n            )\n            * blob_gas_per_blob\n        )\n    return [\n        Block(\n            txs=txs, exception=block_error, rlp_modifier=Header(blob_gas_used=header_blob_gas_used)\n        )\n    ]\n\n\ndef generate_full_blob_tests(\n    fork: Fork,\n) -> List:\n    \"\"\"Return a list of test cases for full blob transactions.\"\"\"\n    max_blobs = fork.max_blobs_per_tx()\n    return [\n        pytest.param(\n            [  # Txs\n                [  # Blobs per transaction\n                    Blob.from_fork(fork),\n                ]\n            ],\n            [True],\n            id=\"one_full_blob_one_tx\",\n        ),\n        pytest.param(\n            [  # Txs\n                [  # Blobs per transaction\n                    Blob.from_fork(fork, s),\n                ]\n                for s in range(max_blobs)\n            ],\n            [True] + ([False] * (max_blobs - 1)),\n            id=\"one_full_blob_max_txs\",\n        ),\n        pytest.param(\n            [  # Txs\n                [  # Blobs per transaction\n                    Blob.from_fork(fork, s),\n                ]\n                for s in range(max_blobs)\n            ],\n            ([False] * (max_blobs - 1)) + [True],\n            id=\"one_full_blob_at_the_end_max_txs\",\n        ),\n    ]\n\n\n@pytest.mark.parametrize_by_fork(\n    \"txs_blobs,txs_wrapped_blobs\",\n    generate_full_blob_tests,\n)\n@pytest.mark.exception_test\n@pytest.mark.valid_from(\"Cancun\")\ndef test_reject_valid_full_blob_in_block_rlp(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    env: Environment,\n    blocks: List[Block],\n) -> None:\n    \"\"\"\n    Test valid blob combinations where one or more txs in the block serialized\n    version contain a full blob (network version) tx.\n    \"\"\"\n    blockchain_test(\n        pre=pre,\n        post={},\n        blocks=blocks,\n        genesis_environment=env,\n    )\n"
  },
  {
    "path": "tests/cancun/eip4844_blobs/test_blobhash_opcode.py",
    "content": "\"\"\"\nTests `BLOBHASH` opcode in [EIP-4844: Shard Blob Transactions](https://eips.ethereum.org/EIPS/eip-4844).\n\nNote: Adding a new test Add a function that is named `test_<test_name>` and\ntakes at least the following arguments.\n\nRequired arguments:\n- `blockchain_test`\n- `pre`\n- `tx`\n- `post`\n\nAdditional custom `pytest.fixture` fixtures can be added and parametrized\nfor\nnew test cases.\n\nThere is no specific structure to follow within this test module.\n\"\"\"\n\nfrom typing import List\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    Account,\n    Address,\n    Alloc,\n    AuthorizationTuple,\n    Block,\n    BlockchainTestFiller,\n    Bytecode,\n    CodeGasMeasure,\n    Environment,\n    Hash,\n    StateTestFiller,\n    Transaction,\n    add_kzg_version,\n)\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom .spec import Spec, ref_spec_4844\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_4844.git_path\nREFERENCE_SPEC_VERSION = ref_spec_4844.version\n\npytestmark = pytest.mark.valid_from(\"Cancun\")\n\n\n# Blobhash index values for test_blobhash_gas_cost\nblobhash_index_values = [\n    0x00,\n    0x01,\n    0x02,\n    0x03,\n    0x04,\n    2**256 - 1,\n    0xA12C8B6A8B11410C7D98D790E1098F1ED6D93CB7A64711481AAAB1848E13212F,\n]\n\n# Random fixed list of blob versioned hashes\nrandom_blob_hashes = add_kzg_version(\n    [\n        \"0x00b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4f\",\n        \"0x005b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6df\",\n        \"0x00878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d\",\n        \"0x004eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834\",\n        \"0x00a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bb\",\n        \"0x00a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4ed\",\n        \"0x0071c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7\",\n        \"0x002c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212f\",\n        \"0x00d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3d\",\n        \"0x00c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a4\",\n    ],\n    Spec.BLOB_COMMITMENT_VERSION_KZG,\n)\n\n\nclass BlobhashScenario:\n    \"\"\"A utility class for generating blobhash calls.\"\"\"\n\n    @staticmethod\n    def create_blob_hashes_list(length: int, max_blobs_per_tx: int) -> List[List[Hash]]:\n        \"\"\"\n        Create list of MAX_BLOBS_PER_TX blob hashes using `random_blob_hashes`.\n\n        Cycle over random_blob_hashes to get a large list of length:\n        MAX_BLOBS_PER_TX * length\n        -> [0x01, 0x02, 0x03, 0x04, ..., 0x0A, 0x0B, 0x0C, 0x0D]\n\n        Then split list into smaller chunks of MAX_BLOBS_PER_TX\n        -> [[0x01, 0x02, 0x03, 0x04], ..., [0x0a, 0x0b, 0x0c, 0x0d]]\n        \"\"\"\n        b_hashes = [\n            random_blob_hashes[i % len(random_blob_hashes)]\n            for i in range(max_blobs_per_tx * length)\n        ]\n        return [\n            b_hashes[i : i + max_blobs_per_tx] for i in range(0, len(b_hashes), max_blobs_per_tx)\n        ]\n\n    @staticmethod\n    def blobhash_sstore(index: int, max_blobs_per_tx: int) -> Bytecode:\n        \"\"\"\n        Return BLOBHASH sstore to the given index.\n\n        If the index is out of the valid bounds, 0x01 is written in storage, as\n        we later check it is overwritten by the BLOBHASH sstore.\n        \"\"\"\n        invalidity_check = Op.SSTORE(index, 0x01)\n        if index < 0 or index >= max_blobs_per_tx:\n            return invalidity_check + Op.SSTORE(index, Op.BLOBHASH(index))\n        return Op.SSTORE(index, Op.BLOBHASH(index))\n\n    @classmethod\n    def generate_blobhash_bytecode(cls, scenario_name: str, max_blobs_per_tx: int) -> Bytecode:\n        \"\"\"Return BLOBHASH bytecode for the given scenario.\"\"\"\n        scenarios = {\n            \"single_valid\": sum(\n                (cls.blobhash_sstore(i, max_blobs_per_tx) for i in range(max_blobs_per_tx)),\n                Bytecode(),\n            ),\n            \"repeated_valid\": sum(\n                (\n                    sum((cls.blobhash_sstore(i, max_blobs_per_tx) for _ in range(10)), Bytecode())\n                    for i in range(max_blobs_per_tx)\n                ),\n                Bytecode(),\n            ),\n            \"valid_invalid\": sum(\n                (\n                    cls.blobhash_sstore(i, max_blobs_per_tx)\n                    + cls.blobhash_sstore(max_blobs_per_tx, max_blobs_per_tx)\n                    + cls.blobhash_sstore(i, max_blobs_per_tx)\n                    for i in range(max_blobs_per_tx)\n                ),\n                Bytecode(),\n            ),\n            \"varied_valid\": sum(\n                (\n                    cls.blobhash_sstore(i, max_blobs_per_tx)\n                    + cls.blobhash_sstore(i + 1, max_blobs_per_tx)\n                    + cls.blobhash_sstore(i, max_blobs_per_tx)\n                    for i in range(max_blobs_per_tx - 1)\n                ),\n                Bytecode(),\n            ),\n            \"invalid_calls\": sum(\n                (\n                    cls.blobhash_sstore(i, max_blobs_per_tx)\n                    for i in range(-5, max_blobs_per_tx + 5)\n                ),\n                Bytecode(),\n            ),\n        }\n        scenario = scenarios.get(scenario_name)\n        if scenario is None:\n            raise ValueError(f\"Invalid scenario: {scenario_name}\")\n        return scenario\n\n\n@pytest.mark.parametrize(\"blobhash_index\", blobhash_index_values)\n@pytest.mark.with_all_tx_types\ndef test_blobhash_gas_cost(\n    pre: Alloc,\n    fork: Fork,\n    tx_type: int,\n    blobhash_index: int,\n    state_test: StateTestFiller,\n) -> None:\n    \"\"\"\n    Tests `BLOBHASH` opcode gas cost using a variety of indexes.\n\n    Asserts that the gas consumption of the `BLOBHASH` opcode is correct by\n    ensuring it matches `HASH_OPCODE_GAS = 3`. Includes both valid and invalid\n    random index sizes from the range `[0, 2**256-1]`, for tx types 2 and 3.\n    \"\"\"\n    gas_measure_code = CodeGasMeasure(\n        code=Op.BLOBHASH(blobhash_index),\n        overhead_cost=3,\n        extra_stack_items=1,\n    )\n\n    address = pre.deploy_contract(gas_measure_code)\n    sender = pre.fund_eoa()\n\n    tx_kwargs = {\n        \"ty\": tx_type,\n        \"sender\": sender,\n        \"to\": address,\n        \"data\": Hash(0),\n        \"gas_limit\": 500_000,\n        \"max_fee_per_blob_gas\": (fork.min_base_fee_per_blob_gas() * 10) if tx_type == 3 else None,\n        \"blob_versioned_hashes\": random_blob_hashes[0 : fork.max_blobs_per_tx()]\n        if tx_type == 3\n        else None,\n    }\n    if tx_type == 4:\n        signer = pre.fund_eoa(amount=0)\n        tx_kwargs[\"authorization_list\"] = [\n            AuthorizationTuple(\n                signer=signer,\n                address=Address(0),\n                nonce=0,\n            )\n        ]\n\n    tx = Transaction(**tx_kwargs)\n    post = {address: Account(storage={0: Spec.HASH_GAS_COST})}\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"scenario\",\n    [\n        \"single_valid\",\n        \"repeated_valid\",\n        \"valid_invalid\",\n        \"varied_valid\",\n    ],\n)\ndef test_blobhash_scenarios(\n    pre: Alloc,\n    fork: Fork,\n    scenario: str,\n    blockchain_test: BlockchainTestFiller,\n    max_blobs_per_tx: int,\n) -> None:\n    \"\"\"\n    Tests that the `BLOBHASH` opcode returns the correct versioned hash for\n    various valid indexes.\n\n    Covers various scenarios with random `blob_versioned_hash` values within\n    the valid range `[0, 2**256-1]`.\n    \"\"\"\n    total_blocks = 5\n    b_hashes_list = BlobhashScenario.create_blob_hashes_list(\n        length=total_blocks, max_blobs_per_tx=max_blobs_per_tx\n    )\n    blobhash_calls = BlobhashScenario.generate_blobhash_bytecode(\n        scenario_name=scenario, max_blobs_per_tx=max_blobs_per_tx\n    )\n    sender = pre.fund_eoa()\n\n    blocks: List[Block] = []\n    post = {}\n    for i in range(total_blocks):\n        address = pre.deploy_contract(blobhash_calls)\n        blocks.append(\n            Block(\n                txs=[\n                    Transaction(\n                        ty=Spec.BLOB_TX_TYPE,\n                        sender=sender,\n                        to=address,\n                        data=Hash(0),\n                        gas_limit=500_000,\n                        access_list=[],\n                        max_fee_per_blob_gas=(fork.min_base_fee_per_blob_gas() * 10),\n                        blob_versioned_hashes=b_hashes_list[i],\n                    )\n                ]\n            )\n        )\n        post[address] = Account(\n            storage={index: b_hashes_list[i][index] for index in range(max_blobs_per_tx)}\n        )\n    blockchain_test(\n        pre=pre,\n        blocks=blocks,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"scenario\",\n    [\n        \"invalid_calls\",\n    ],\n)\ndef test_blobhash_invalid_blob_index(\n    pre: Alloc,\n    fork: Fork,\n    blockchain_test: BlockchainTestFiller,\n    scenario: str,\n    max_blobs_per_tx: int,\n) -> None:\n    \"\"\"\n    Tests that the `BLOBHASH` opcode returns a zeroed `bytes32` value for\n    invalid indexes.\n\n    Includes cases where the index is negative (`index < 0`) or exceeds the\n    maximum number of `blob_versioned_hash` values stored:\n    (`index >= len(tx.message.blob_versioned_hashes)`).\n\n    It confirms that the returned value is a zeroed `bytes32` for each case.\n    \"\"\"\n    total_blocks = 5\n    blobhash_calls = BlobhashScenario.generate_blobhash_bytecode(\n        scenario_name=scenario, max_blobs_per_tx=max_blobs_per_tx\n    )\n    sender = pre.fund_eoa()\n    blocks: List[Block] = []\n    post = {}\n    for i in range(total_blocks):\n        address = pre.deploy_contract(blobhash_calls)\n        blob_per_block = (i % max_blobs_per_tx) + 1\n        blobs = [random_blob_hashes[blob] for blob in range(blob_per_block)]\n        blocks.append(\n            Block(\n                txs=[\n                    Transaction(\n                        ty=Spec.BLOB_TX_TYPE,\n                        sender=sender,\n                        to=address,\n                        gas_limit=500_000,\n                        data=Hash(0),\n                        access_list=[],\n                        max_fee_per_blob_gas=(fork.min_base_fee_per_blob_gas() * 10),\n                        blob_versioned_hashes=blobs,\n                    )\n                ]\n            )\n        )\n        post[address] = Account(\n            storage={\n                index: (0 if index < 0 or index >= blob_per_block else blobs[index])\n                for index in range(\n                    -total_blocks,\n                    blob_per_block + (total_blocks - (i % max_blobs_per_tx)),\n                )\n            }\n        )\n    blockchain_test(\n        pre=pre,\n        blocks=blocks,\n        post=post,\n    )\n\n\ndef test_blobhash_multiple_txs_in_block(\n    pre: Alloc,\n    fork: Fork,\n    blockchain_test: BlockchainTestFiller,\n    max_blobs_per_tx: int,\n) -> None:\n    \"\"\"\n    Tests that the `BLOBHASH` opcode returns the appropriate values when there\n    is more than 1 blob tx type within a block (for tx types 2 and 3).\n\n    Scenarios involve tx type 3 followed by tx type 2 running the same code\n    within a block, including the opposite.\n    \"\"\"\n    blobhash_bytecode = BlobhashScenario.generate_blobhash_bytecode(\n        scenario_name=\"single_valid\", max_blobs_per_tx=max_blobs_per_tx\n    )\n    addresses = [pre.deploy_contract(blobhash_bytecode) for _ in range(4)]\n    sender = pre.fund_eoa()\n\n    def blob_tx(address: Address, tx_type: int) -> Transaction:\n        return Transaction(\n            ty=tx_type,\n            sender=sender,\n            to=address,\n            data=Hash(0),\n            gas_limit=500_000,\n            access_list=[] if tx_type >= 1 else None,\n            max_fee_per_blob_gas=(fork.min_base_fee_per_blob_gas() * 10) if tx_type >= 3 else None,\n            blob_versioned_hashes=random_blob_hashes[0:max_blobs_per_tx] if tx_type >= 3 else None,\n        )\n\n    blocks = [\n        Block(\n            txs=[\n                blob_tx(address=addresses[0], tx_type=3),\n                blob_tx(address=addresses[0], tx_type=2),\n            ]\n        ),\n        Block(\n            txs=[\n                blob_tx(address=addresses[1], tx_type=2),\n                blob_tx(address=addresses[1], tx_type=3),\n            ]\n        ),\n        Block(\n            txs=[\n                blob_tx(address=addresses[2], tx_type=2),\n                blob_tx(address=addresses[3], tx_type=3),\n            ],\n        ),\n    ]\n    post = {\n        Address(address): Account(\n            storage={i: random_blob_hashes[i] for i in range(max_blobs_per_tx)}\n        )\n        if address in (addresses[1], addresses[3])\n        else Account(storage=dict.fromkeys(range(max_blobs_per_tx), 0))\n        for address in addresses\n    }\n    blockchain_test(\n        pre=pre,\n        blocks=blocks,\n        post=post,\n    )\n"
  },
  {
    "path": "tests/cancun/eip4844_blobs/test_blobhash_opcode_contexts.py",
    "content": "\"\"\"\nTests `BLOBHASH` opcode in [EIP-4844: Shard Blob Transactions](https://eips.ethereum.org/EIPS/eip-4844).\n\"\"\"\n\nfrom enum import Enum\nfrom typing import Iterable, List\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    Account,\n    Address,\n    Alloc,\n    AuthorizationTuple,\n    Bytecode,\n    Hash,\n    StateTestFiller,\n    Transaction,\n    add_kzg_version,\n    compute_create_address,\n)\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom .spec import Spec, ref_spec_4844\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_4844.git_path\nREFERENCE_SPEC_VERSION = ref_spec_4844.version\n\npytestmark = pytest.mark.valid_from(\"Cancun\")\n\n\nclass BlobhashContext(Enum):\n    \"\"\"\n    A utility class for mapping common EVM opcodes in different contexts to\n    specific bytecode (with BLOBHASH), addresses and contracts.\n    \"\"\"\n\n    BLOBHASH_SSTORE = \"blobhash_sstore\"\n    BLOBHASH_RETURN = \"blobhash_return\"\n    CALL = \"call\"\n    DELEGATECALL = \"delegatecall\"\n    CALLCODE = \"callcode\"\n    STATICCALL = \"staticcall\"\n    CREATE = \"create\"\n    CREATE2 = \"create2\"\n    INITCODE = \"initcode\"\n\n    def code(self, *, indexes: Iterable[int]) -> Bytecode:\n        \"\"\"\n        Map opcode context to bytecode that utilizes the BLOBHASH opcode.\n\n        Args: indexes: The indexes to request using the BLOBHASH opcode\n        \"\"\"\n        match self:\n            case BlobhashContext.BLOBHASH_SSTORE:\n                return (\n                    sum(Op.SSTORE(index, Op.BLOBHASH(index=index)) for index in indexes) + Op.STOP\n                )\n            case BlobhashContext.BLOBHASH_RETURN:\n                return Op.MSTORE(\n                    offset=0, value=Op.BLOBHASH(index=Op.CALLDATALOAD(offset=0))\n                ) + Op.RETURN(offset=0, size=32)\n            case BlobhashContext.INITCODE:\n                return (\n                    sum(Op.SSTORE(index, Op.BLOBHASH(index=index)) for index in indexes) + Op.STOP\n                )\n            case _:\n                raise ValueError(f\"Invalid context: {self}\")\n\n    def deploy_contract(\n        self,\n        *,\n        pre: Alloc,\n        indexes: Iterable[int],\n    ) -> Address:\n        \"\"\"\n        Deploy a contract with the given context and indexes.\n\n        Args:\n          pre: The pre state to deploy the contract on\n          indexes: The indexes to request using the BLOBHASH opcode\n\n        \"\"\"\n        match self:\n            case BlobhashContext.BLOBHASH_SSTORE | BlobhashContext.BLOBHASH_RETURN:\n                return pre.deploy_contract(self.code(indexes=indexes))\n            case BlobhashContext.CALL | BlobhashContext.CALLCODE | BlobhashContext.STATICCALL:\n                blobhash_return_address = BlobhashContext.BLOBHASH_RETURN.deploy_contract(\n                    pre=pre, indexes=indexes\n                )\n                call_opcode = (\n                    Op.CALL\n                    if self == BlobhashContext.CALL\n                    else (Op.CALLCODE if self == BlobhashContext.CALLCODE else Op.STATICCALL)\n                )\n                bytecode = (\n                    sum(\n                        Op.MSTORE(offset=0, value=index)\n                        + Op.POP(\n                            call_opcode(\n                                address=blobhash_return_address,\n                                args_offset=0,\n                                args_size=32,\n                                ret_offset=32,\n                                ret_size=32,\n                            )\n                        )\n                        + Op.SSTORE(index, Op.MLOAD(offset=32))\n                        for index in indexes\n                    )\n                    + Op.STOP\n                )\n                return pre.deploy_contract(bytecode)\n            case BlobhashContext.DELEGATECALL:\n                blobhash_sstore_address = pre.deploy_contract(\n                    BlobhashContext.BLOBHASH_SSTORE.code(indexes=indexes)\n                )\n                bytecode = Op.POP(\n                    Op.DELEGATECALL(\n                        address=blobhash_sstore_address, args_offset=0, args_size=Op.CALLDATASIZE()\n                    )\n                )\n                return pre.deploy_contract(bytecode)\n            case BlobhashContext.CREATE | BlobhashContext.CREATE2:\n                initcode = BlobhashContext.INITCODE.code(indexes=indexes)\n                initcode_address = pre.deploy_contract(initcode)\n                create_opcode = Op.CREATE if self == BlobhashContext.CREATE else Op.CREATE2\n                create_bytecode = Op.EXTCODECOPY(\n                    address=initcode_address, dest_offset=0, offset=0, size=len(initcode)\n                ) + Op.POP(\n                    create_opcode(value=0, offset=0, size=len(initcode), salt=0)\n                    if create_opcode == Op.CREATE2\n                    else create_opcode(value=0, offset=0, size=len(initcode))\n                )\n                return pre.deploy_contract(create_bytecode)\n\n            case _:\n                raise ValueError(f\"Invalid context: {self}\")\n\n\n@pytest.fixture()\ndef simple_blob_hashes(\n    max_blobs_per_tx: int,\n) -> List[Hash]:\n    \"\"\"\n    Return a simple list of blob versioned hashes ranging from bytes32(1 to 4).\n    \"\"\"\n    return add_kzg_version(\n        [(1 << x) for x in range(max_blobs_per_tx)],\n        Spec.BLOB_COMMITMENT_VERSION_KZG,\n    )\n\n\n@pytest.mark.parametrize(\n    \"test_case\",\n    [\n        \"on_top_level_call_stack\",\n        \"on_max_value\",\n        \"on_CALL\",\n        \"on_DELEGATECALL\",\n        \"on_STATICCALL\",\n        \"on_CALLCODE\",\n        \"on_CREATE\",\n        \"on_CREATE2\",\n    ],\n    ids=lambda x: x,\n)\ndef test_blobhash_opcode_contexts(\n    pre: Alloc,\n    test_case: str,\n    max_blobs_per_tx: int,\n    simple_blob_hashes: List[bytes],\n    fork: Fork,\n    state_test: StateTestFiller,\n) -> None:\n    \"\"\"\n    Tests that the `BLOBHASH` opcode functions correctly when called in\n    different contexts.\n\n    - `BLOBHASH` opcode on the top level of the call stack.\n    - `BLOBHASH` opcode on the max value.\n    - `BLOBHASH` opcode on `CALL`, `DELEGATECALL`, `STATICCALL`, and\n        `CALLCODE`.\n    - `BLOBHASH` opcode on Initcode.\n    - `BLOBHASH` opcode on `CREATE` and `CREATE2`.\n    - `BLOBHASH` opcode on transaction types 0, 1 and 2.\n    \"\"\"\n    tx_to: Address\n    post: dict[Address, Account]\n\n    match test_case:\n        case \"on_top_level_call_stack\":\n            blobhash_sstore_address = BlobhashContext.BLOBHASH_SSTORE.deploy_contract(\n                pre=pre, indexes=range(max_blobs_per_tx + 1)\n            )\n            tx_to = blobhash_sstore_address\n            post = {\n                blobhash_sstore_address: Account(\n                    storage=dict(\n                        zip(\n                            range(len(simple_blob_hashes)),\n                            simple_blob_hashes,\n                            strict=False,\n                        )\n                    )\n                ),\n            }\n        case \"on_max_value\":\n            blobhash_sstore_address = BlobhashContext.BLOBHASH_SSTORE.deploy_contract(\n                pre=pre, indexes=[2**256 - 1]\n            )\n            tx_to = blobhash_sstore_address\n            post = {\n                blobhash_sstore_address: Account(storage={}),\n            }\n        case \"on_CALL\" | \"on_DELEGATECALL\" | \"on_STATICCALL\" | \"on_CALLCODE\":\n            call_context: BlobhashContext\n            match test_case:\n                case \"on_CALL\":\n                    call_context = BlobhashContext.CALL\n                case \"on_DELEGATECALL\":\n                    call_context = BlobhashContext.DELEGATECALL\n                case \"on_STATICCALL\":\n                    call_context = BlobhashContext.STATICCALL\n                case \"on_CALLCODE\":\n                    call_context = BlobhashContext.CALLCODE\n            call_address = call_context.deploy_contract(\n                pre=pre, indexes=range(max_blobs_per_tx + 1)\n            )\n            tx_to = call_address\n            post = {\n                call_address: Account(\n                    storage=dict(\n                        zip(\n                            range(len(simple_blob_hashes)),\n                            simple_blob_hashes,\n                            strict=False,\n                        )\n                    )\n                ),\n            }\n        case \"on_CREATE\" | \"on_CREATE2\":\n            create_context: BlobhashContext\n            opcode: Op\n            match test_case:\n                case \"on_CREATE\":\n                    create_context = BlobhashContext.CREATE\n                    opcode = Op.CREATE\n                case \"on_CREATE2\":\n                    create_context = BlobhashContext.CREATE2\n                    opcode = Op.CREATE2\n            factory_address = create_context.deploy_contract(\n                pre=pre, indexes=range(max_blobs_per_tx + 1)\n            )\n            created_contract_address = compute_create_address(\n                address=factory_address,\n                nonce=1,  # the create contract will have nonce 1 for its first create\n                salt=0,\n                initcode=BlobhashContext.INITCODE.code(indexes=range(max_blobs_per_tx + 1)),\n                opcode=opcode,\n            )\n            tx_to = factory_address\n            post = {\n                created_contract_address: Account(\n                    storage=dict(\n                        zip(range(len(simple_blob_hashes)), simple_blob_hashes, strict=False)\n                    )\n                ),\n            }\n        case _:\n            raise Exception(f\"Unknown test case {test_case}\")\n\n    state_test(\n        pre=pre,\n        tx=Transaction(\n            ty=Spec.BLOB_TX_TYPE,\n            to=tx_to,\n            gas_limit=500_000,\n            max_fee_per_blob_gas=fork.min_base_fee_per_blob_gas() * 10,\n            blob_versioned_hashes=simple_blob_hashes,\n            sender=pre.fund_eoa(),\n        ),\n        post=post,\n    )\n\n\n@pytest.mark.with_all_tx_types(selector=lambda x: x != 3)\ndef test_blobhash_opcode_contexts_tx_types(\n    pre: Alloc,\n    tx_type: int,\n    state_test: StateTestFiller,\n) -> None:\n    \"\"\"\n    Tests that the `BLOBHASH` opcode functions correctly when called in\n    different contexts.\n\n    - `BLOBHASH` opcode on the top level of the call stack.\n    - `BLOBHASH` opcode on the max value.\n    - `BLOBHASH` opcode on `CALL`, `DELEGATECALL`, `STATICCALL`, and\n        `CALLCODE`.\n    - `BLOBHASH` opcode on Initcode.\n    - `BLOBHASH` opcode on `CREATE` and `CREATE2`.\n    - `BLOBHASH` opcode on transaction types 0, 1 and 2.\n    \"\"\"\n    blobhash_sstore_address = BlobhashContext.BLOBHASH_SSTORE.deploy_contract(pre=pre, indexes=[0])\n    tx_kwargs = {\n        \"ty\": tx_type,\n        \"to\": blobhash_sstore_address,\n        \"sender\": pre.fund_eoa(),\n        \"gas_limit\": 500_000,\n    }\n    if tx_type == 4:\n        signer = pre.fund_eoa(amount=0)\n        tx_kwargs[\"authorization_list\"] = [\n            AuthorizationTuple(\n                signer=signer,\n                address=Address(0),\n                nonce=0,\n            )\n        ]\n\n    state_test(\n        pre=pre,\n        tx=Transaction(**tx_kwargs),\n        post={\n            blobhash_sstore_address: Account(storage={0: 0}),\n        },\n    )\n"
  },
  {
    "path": "tests/cancun/eip4844_blobs/test_excess_blob_gas.py",
    "content": "\"\"\"\nTests `excessBlobGas` and `blobGasUsed` block fields for EIP-4844.\n\nTests `excessBlobGas` and `blobGasUsed` block fields for\n[EIP-4844: Shard Blob Transactions](https://eips.ethereum.org/EIPS/eip-4844)\nNote: Adding a new test Add a function that is named `test_<test_name>` and\ntakes at least the following arguments.\n\nRequired arguments:\n- `blockchain_test`\n- `env`\n- `pre`\n- `blocks`\n- `post`\n- `correct_excess_blob_gas`\n\nThe following arguments can be parametrized to generate new combinations\nand\ntest cases:\n\n- new_blobs: Number of blobs in the block (automatically split across\ntransactions as needed)\n\nAll other `pytest.fixture` fixtures can be parametrized to generate new\ncombinations and test cases.\n\"\"\"\n\nimport itertools\nfrom typing import Callable, Dict, Iterator, List, Mapping, Optional, Tuple\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    EOA,\n    Account,\n    Address,\n    Alloc,\n    Block,\n    BlockchainTestFiller,\n    BlockException,\n    Bytecode,\n    Environment,\n    Hash,\n    Header,\n    Transaction,\n    add_kzg_version,\n)\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom .spec import Spec, SpecHelpers, ref_spec_4844\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_4844.git_path\nREFERENCE_SPEC_VERSION = ref_spec_4844.version\n\n# All tests run from Cancun fork\npytestmark = pytest.mark.valid_from(\"Cancun\")\n\n\n@pytest.fixture\ndef parent_excess_blobs(fork: Fork) -> int:  # noqa: D103\n    \"\"\"\n    By default we start with an intermediate value between the target and max.\n    \"\"\"\n    return (fork.max_blobs_per_block() + fork.target_blobs_per_block()) // 2 + 1\n\n\n@pytest.fixture\ndef header_excess_blobs_delta() -> Optional[int]:  # noqa: D103\n    return None\n\n\n@pytest.fixture\ndef header_excess_blob_gas_delta() -> Optional[int]:  # noqa: D103\n    return None\n\n\n@pytest.fixture\ndef header_excess_blob_gas(  # noqa: D103\n    correct_excess_blob_gas: int,\n    header_excess_blobs_delta: Optional[int],\n    header_excess_blob_gas_delta: Optional[int],\n    blob_gas_per_blob: int,\n) -> Optional[int]:\n    if header_excess_blobs_delta is not None:\n        modified_excess_blob_gas = correct_excess_blob_gas + (\n            header_excess_blobs_delta * blob_gas_per_blob\n        )\n        if modified_excess_blob_gas < 0:\n            modified_excess_blob_gas = 2**64 + (modified_excess_blob_gas)\n        return modified_excess_blob_gas\n    if header_excess_blob_gas_delta is not None:\n        return correct_excess_blob_gas + header_excess_blob_gas_delta\n    return None\n\n\n@pytest.fixture\ndef tx_blob_data_cost(\n    tx_max_fee_per_blob_gas: int,\n    new_blobs: int,\n    blob_gas_per_blob: int,\n) -> int:\n    \"\"\"Calculate total blob data cost for all blobs in block.\"\"\"\n    return tx_max_fee_per_blob_gas * blob_gas_per_blob * new_blobs\n\n\n@pytest.fixture\ndef tx_gas_limit() -> int:  # noqa: D103\n    return 45000\n\n\n@pytest.fixture\ndef tx_exact_cost(\n    tx_value: int,\n    tx_max_fee_per_gas: int,\n    tx_blob_data_cost: int,\n    tx_gas_limit: int,\n    new_blobs: int,\n    fork: Fork,\n) -> int:\n    \"\"\"Calculate exact cost for all transactions.\"\"\"\n    if new_blobs == 0:\n        num_transactions = 1\n    else:\n        num_transactions = (new_blobs + fork.max_blobs_per_tx() - 1) // fork.max_blobs_per_tx()\n    base_cost_per_tx = (tx_gas_limit * tx_max_fee_per_gas) + tx_value\n    total_base_cost = base_cost_per_tx * num_transactions\n    return total_base_cost + tx_blob_data_cost\n\n\n@pytest.fixture\ndef destination_account_bytecode() -> Bytecode:  # noqa: D103\n    # Verify that the BLOBBASEFEE opcode reflects the current blob gas cost\n    return Op.SSTORE(0, Op.BLOBBASEFEE)\n\n\n@pytest.fixture\ndef destination_account(  # noqa: D103\n    pre: Alloc,\n    destination_account_bytecode: Bytecode,\n) -> Address:\n    return pre.deploy_contract(destination_account_bytecode)\n\n\n@pytest.fixture\ndef sender(pre: Alloc, tx_exact_cost: int) -> Address:  # noqa: D103\n    return pre.fund_eoa(tx_exact_cost)\n\n\n@pytest.fixture\ndef txs(  # noqa: D103\n    sender: EOA,\n    new_blobs: int,\n    tx_max_fee_per_gas: int,\n    tx_max_fee_per_blob_gas: int,\n    tx_gas_limit: int,\n    destination_account: Address,\n    fork: Fork,\n) -> List[Transaction]:\n    if new_blobs == 0:\n        # Send a normal type two tx instead\n        return [\n            Transaction(\n                ty=2,\n                sender=sender,\n                to=destination_account,\n                value=1,\n                gas_limit=tx_gas_limit,\n                max_fee_per_gas=tx_max_fee_per_gas,\n                max_priority_fee_per_gas=0,\n                access_list=[],\n            )\n        ]\n\n    # Split into multi txs for forks where max per tx < max per block\n    txs = []\n    blob_index = 0\n    remaining_blobs = new_blobs\n    while remaining_blobs > 0:\n        tx_blobs = min(remaining_blobs, fork.max_blobs_per_tx())\n        txs.append(\n            Transaction(\n                ty=Spec.BLOB_TX_TYPE,\n                sender=sender,\n                to=destination_account,\n                value=1,\n                gas_limit=tx_gas_limit,\n                max_fee_per_gas=tx_max_fee_per_gas,\n                max_priority_fee_per_gas=0,\n                max_fee_per_blob_gas=tx_max_fee_per_blob_gas,\n                access_list=[],\n                blob_versioned_hashes=add_kzg_version(\n                    [Hash(blob_index + x) for x in range(tx_blobs)],\n                    Spec.BLOB_COMMITMENT_VERSION_KZG,\n                ),\n            )\n        )\n        blob_index += tx_blobs\n        remaining_blobs -= tx_blobs\n\n    return txs\n\n\n@pytest.fixture\ndef header_blob_gas_used() -> Optional[int]:  # noqa: D103\n    return None\n\n\n@pytest.fixture\ndef correct_blob_gas_used(\n    txs: List[Transaction],\n    blob_gas_per_blob: int,\n) -> int:\n    \"\"\"Calculate the correct `blobGasUsed` for all txs.\"\"\"\n    total_blob_gas = 0\n    for tx in txs:\n        total_blob_gas += Spec.get_total_blob_gas(tx=tx, blob_gas_per_blob=blob_gas_per_blob)\n    return total_blob_gas\n\n\n@pytest.fixture\ndef blocks(  # noqa: D103\n    txs: List[Transaction],\n    header_excess_blob_gas: Optional[int],\n    header_blob_gas_used: Optional[int],\n    correct_excess_blob_gas: int,\n    correct_blob_gas_used: int,\n    non_zero_blob_gas_used_genesis_block: Block,\n    max_blobs_per_block: int,\n    blob_gas_per_blob: int,\n) -> List[Block]:\n    blocks = (\n        []\n        if non_zero_blob_gas_used_genesis_block is None\n        else [non_zero_blob_gas_used_genesis_block]\n    )\n\n    def add_block(\n        header_modifier: Optional[Dict] = None,\n        exception_message: Optional[BlockException | List[BlockException]] = None,\n    ) -> None:\n        \"\"\"Add a block to the blocks list.\"\"\"\n        blocks.append(\n            Block(\n                txs=txs,\n                rlp_modifier=Header(**header_modifier) if header_modifier else None,\n                header_verify=Header(\n                    excess_blob_gas=correct_excess_blob_gas,\n                    blob_gas_used=correct_blob_gas_used,\n                ),\n                exception=exception_message,\n            )\n        )\n\n    if header_excess_blob_gas is not None:\n        add_block(\n            header_modifier={\"excess_blob_gas\": header_excess_blob_gas},\n            exception_message=BlockException.INCORRECT_EXCESS_BLOB_GAS,\n        )\n    elif header_blob_gas_used is not None:\n        if header_blob_gas_used > (max_blobs_per_block * blob_gas_per_blob):\n            add_block(\n                header_modifier={\"blob_gas_used\": header_blob_gas_used},\n                exception_message=[\n                    BlockException.BLOB_GAS_USED_ABOVE_LIMIT,\n                    BlockException.INCORRECT_BLOB_GAS_USED,\n                ],\n            )\n        else:\n            add_block(\n                header_modifier={\"blob_gas_used\": header_blob_gas_used},\n                exception_message=BlockException.INCORRECT_BLOB_GAS_USED,\n            )\n    else:\n        add_block()\n\n    return blocks\n\n\n@pytest.fixture\ndef post(  # noqa: D103\n    destination_account: Address,\n    tx_value: int,\n    blob_gas_price: int,\n    txs: List[Transaction],\n) -> Mapping[Address, Account]:\n    return {\n        destination_account: Account(\n            storage={0: blob_gas_price},\n            balance=tx_value * len(txs),\n        ),\n    }\n\n\n@pytest.mark.parametrize_by_fork(\n    \"parent_blobs\",\n    lambda fork: range(0, fork.max_blobs_per_block() + 1),\n)\n@pytest.mark.parametrize_by_fork(\n    \"parent_excess_blobs\",\n    lambda fork: range(0, fork.target_blobs_per_block() + 1),\n)\n@pytest.mark.parametrize(\"new_blobs\", [1])\ndef test_correct_excess_blob_gas_calculation(\n    blockchain_test: BlockchainTestFiller,\n    env: Environment,\n    pre: Mapping[Address, Account],\n    blocks: List[Block],\n    post: Mapping[Address, Account],\n    correct_excess_blob_gas: int,\n) -> None:\n    \"\"\"\n    Test calculation of the `excessBlobGas` increase/decrease across multiple\n    blocks with and without blobs.\n\n    - With parent block containing `[0, MAX_BLOBS_PER_BLOCK]` blobs\n\n    - With parent block containing `[0, TARGET_BLOBS_PER_BLOCK]` equivalent\n    value of excess blob gas\n    \"\"\"\n    blockchain_test(\n        pre=pre,\n        post=post,\n        blocks=blocks,\n        genesis_environment=env,\n        tag=f\"expected_excess_blob_gas:{hex(correct_excess_blob_gas)}\",\n    )\n\n\ndef generate_blob_gas_cost_increases_tests(delta: int) -> Callable[[Fork], List[int]]:\n    \"\"\"\n    Generate a list of block excess blob gas values where the blob gas price\n    increases based on fork properties.\n    \"\"\"\n\n    def generator_function(fork: Fork) -> List[int]:\n        gas_per_blob = fork.blob_gas_per_blob()\n        return [\n            SpecHelpers.get_min_excess_blobs_for_blob_gas_price(\n                fork=fork, blob_gas_price=blob_gas_price\n            )\n            + delta\n            for blob_gas_price in [\n                2,  # First blob gas cost increase\n                2**32 // gas_per_blob,  # Data tx wei cost 2^32\n                2**32,  # blob gas cost 2^32\n                2**64 // gas_per_blob,  # Data tx wei cost 2^64\n                2**64,  # blob gas cost 2^64\n                (\n                    120_000_000 * (10**18) // gas_per_blob\n                ),  # Data tx wei is current total Ether supply\n            ]\n        ]\n\n    return generator_function\n\n\n@pytest.mark.parametrize_by_fork(\n    \"parent_excess_blobs\",\n    generate_blob_gas_cost_increases_tests(-1),\n)\n@pytest.mark.parametrize_by_fork(\n    \"parent_blobs\",\n    lambda fork: [fork.target_blobs_per_block() + 1],\n)\n@pytest.mark.parametrize(\"new_blobs\", [1])\ndef test_correct_increasing_blob_gas_costs(\n    blockchain_test: BlockchainTestFiller,\n    env: Environment,\n    pre: Mapping[Address, Account],\n    blocks: List[Block],\n    post: Mapping[Address, Account],\n    correct_excess_blob_gas: int,\n) -> None:\n    \"\"\"\n    Test calculation of the `excessBlobGas` and blob gas tx costs at value\n    points where the cost increases to interesting amounts.\n\n    - At the first blob gas cost increase (1 to 2)\n    - At total transaction data cost increase to `> 2^32`\n    - At blob gas wei cost increase to `> 2^32`\n    - At total transaction data cost increase to `> 2^64`\n    - At blob gas wei cost increase to `> 2^64`\n    - At blob gas wei cost increase of around current total Ether supply\n    \"\"\"\n    blockchain_test(\n        pre=pre,\n        post=post,\n        blocks=blocks,\n        genesis_environment=env,\n        tag=f\"expected_excess_blob_gas:{hex(correct_excess_blob_gas)}\",\n    )\n\n\n@pytest.mark.parametrize_by_fork(\n    \"parent_excess_blobs\",\n    generate_blob_gas_cost_increases_tests(0),\n)\n@pytest.mark.parametrize_by_fork(\n    \"parent_blobs\",\n    lambda fork: [fork.target_blobs_per_block() - 1],\n)\n@pytest.mark.parametrize(\"new_blobs\", [1])\ndef test_correct_decreasing_blob_gas_costs(\n    blockchain_test: BlockchainTestFiller,\n    env: Environment,\n    pre: Mapping[Address, Account],\n    blocks: List[Block],\n    post: Mapping[Address, Account],\n    correct_excess_blob_gas: int,\n) -> None:\n    \"\"\"\n    Test calculation of the `excessBlobGas` and blob gas tx costs at value\n    points where the cost decreases to interesting amounts.\n\n    See test_correct_increasing_blob_gas_costs.\n    \"\"\"\n    blockchain_test(\n        pre=pre,\n        post=post,\n        blocks=blocks,\n        genesis_environment=env,\n        tag=f\"expected_excess_blob_gas:{hex(correct_excess_blob_gas)}\",\n    )\n\n\n@pytest.mark.parametrize(\"header_excess_blob_gas\", [0])\n@pytest.mark.parametrize(\"new_blobs\", [0, 1])\n@pytest.mark.parametrize_by_fork(\n    \"parent_blobs\",\n    lambda fork: range(0, fork.max_blobs_per_block() + 1),\n)\n@pytest.mark.exception_test\ndef test_invalid_zero_excess_blob_gas_in_header(\n    blockchain_test: BlockchainTestFiller,\n    env: Environment,\n    pre: Mapping[Address, Account],\n    blocks: List[Block],\n    correct_excess_blob_gas: int,\n    header_excess_blob_gas: Optional[int],\n) -> None:\n    \"\"\"\n    Test rejection of blocks where the `excessBlobGas` in the header drops to\n    zero in a block with or without data blobs, but the excess blobs in the\n    parent are greater than target.\n    \"\"\"\n    if header_excess_blob_gas is None:\n        raise Exception(\"test case is badly formatted\")\n\n    if header_excess_blob_gas == correct_excess_blob_gas:\n        raise Exception(\"invalid test case\")\n\n    blockchain_test(\n        pre=pre,\n        post={},\n        blocks=blocks,\n        genesis_environment=env,\n        tag=\"-\".join(\n            [\n                f\"correct:{hex(correct_excess_blob_gas)}\",\n                f\"header:{hex(header_excess_blob_gas)}\",\n            ]\n        ),\n    )\n\n\ndef all_invalid_blob_gas_used_combinations(fork: Fork) -> Iterator[Tuple[int, int]]:\n    \"\"\"Return all invalid blob gas used combinations.\"\"\"\n    gas_per_blob = fork.blob_gas_per_blob()\n    for new_blobs in range(0, fork.max_blobs_per_block() + 1):\n        for header_blob_gas_used in range(0, fork.max_blobs_per_block() + 1):\n            if new_blobs != header_blob_gas_used:\n                yield (new_blobs, header_blob_gas_used * gas_per_blob)\n        yield (new_blobs, 2**64 - 1)\n\n\n@pytest.mark.parametrize_by_fork(\n    \"new_blobs,header_blob_gas_used\",\n    all_invalid_blob_gas_used_combinations,\n)\n@pytest.mark.parametrize(\"parent_blobs\", [0])\n@pytest.mark.exception_test\n@pytest.mark.slow()\ndef test_invalid_blob_gas_used_in_header(\n    blockchain_test: BlockchainTestFiller,\n    env: Environment,\n    pre: Mapping[Address, Account],\n    blocks: List[Block],\n    new_blobs: int,\n    header_blob_gas_used: Optional[int],\n    blob_gas_per_blob: int,\n) -> None:\n    \"\"\"\n    Test rejection of blocks where the `blobGasUsed` in the header is invalid.\n\n    - `blobGasUsed` is not equal to the number of data blobs in the block\n    - `blobGasUsed` is the max uint64 value\n    \"\"\"\n    if header_blob_gas_used is None:\n        raise Exception(\"test case is badly formatted\")\n\n    blockchain_test(\n        pre=pre,\n        post={},\n        blocks=blocks,\n        genesis_environment=env,\n        tag=\"-\".join(\n            [\n                f\"correct:{hex(new_blobs * blob_gas_per_blob)}\",\n                f\"header:{hex(header_blob_gas_used)}\",\n            ]\n        ),\n    )\n\n\ndef generate_invalid_excess_blob_gas_above_target_change_tests(fork: Fork) -> List:\n    \"\"\"Return all invalid excess blob gas above target change tests.\"\"\"\n    return [\n        pytest.param(-1, 0, id=\"zero_blobs_decrease_more_than_expected\"),\n        pytest.param(+1, fork.max_blobs_per_block(), id=\"max_blobs_increase_more_than_expected\"),\n    ]\n\n\n@pytest.mark.parametrize_by_fork(\n    \"header_excess_blobs_delta,parent_blobs\",\n    generate_invalid_excess_blob_gas_above_target_change_tests,\n)\n@pytest.mark.parametrize(\"new_blobs\", [1])\n@pytest.mark.exception_test\ndef test_invalid_excess_blob_gas_above_target_change(\n    blockchain_test: BlockchainTestFiller,\n    env: Environment,\n    pre: Mapping[Address, Account],\n    blocks: List[Block],\n    correct_excess_blob_gas: int,\n    header_excess_blob_gas: Optional[int],\n) -> None:\n    \"\"\"\n    Test rejection of blocks where the `excessBlobGas`.\n\n    - decreases more than `TARGET_BLOB_GAS_PER_BLOCK` in a single block\n        with zero blobs.\n    - increases more than `TARGET_BLOB_GAS_PER_BLOCK` in a single block\n        with max blobs.\n    \"\"\"\n    if header_excess_blob_gas is None:\n        raise Exception(\"test case is badly formatted\")\n\n    if header_excess_blob_gas == correct_excess_blob_gas:\n        raise Exception(\"invalid test case\")\n\n    blockchain_test(\n        pre=pre,\n        post={},\n        blocks=blocks,\n        genesis_environment=env,\n        tag=\"-\".join(\n            [\n                f\"correct:{hex(correct_excess_blob_gas)}\",\n                f\"header:{hex(header_excess_blob_gas)}\",\n            ]\n        ),\n    )\n\n\n@pytest.mark.parametrize_by_fork(\n    \"parent_blobs\",\n    lambda fork: [\n        b for b in range(0, fork.max_blobs_per_block() + 1) if b != fork.target_blobs_per_block()\n    ],\n)\n@pytest.mark.parametrize_by_fork(\n    \"parent_excess_blobs\", lambda fork: [1, fork.target_blobs_per_block()]\n)\n@pytest.mark.parametrize(\"new_blobs\", [1])\n@pytest.mark.exception_test\ndef test_invalid_static_excess_blob_gas(\n    blockchain_test: BlockchainTestFiller,\n    env: Environment,\n    pre: Mapping[Address, Account],\n    blocks: List[Block],\n    correct_excess_blob_gas: int,\n    parent_excess_blob_gas: int,\n) -> None:\n    \"\"\"\n    Test rejection of blocks where the `excessBlobGas` remains unchanged but\n    the parent blobs included are not `TARGET_BLOBS_PER_BLOCK`.\n\n    Test is parametrized to `MAX_BLOBS_PER_BLOCK` and `TARGET_BLOBS_PER_BLOCK`.\n    \"\"\"\n    blocks[-1].rlp_modifier = Header(excess_blob_gas=parent_excess_blob_gas)\n    blocks[-1].header_verify = None\n    blocks[-1].exception = BlockException.INCORRECT_EXCESS_BLOB_GAS\n    blockchain_test(\n        pre=pre,\n        post={},\n        blocks=blocks,\n        genesis_environment=env,\n        tag=\"-\".join(\n            [\n                f\"correct:{hex(correct_excess_blob_gas)}\",\n                f\"header:{hex(parent_excess_blob_gas)}\",\n            ]\n        ),\n    )\n\n\n@pytest.mark.parametrize_by_fork(\n    \"header_excess_blobs_delta\",\n    lambda fork: range(1, fork.max_blobs_per_block()),\n)\n@pytest.mark.parametrize_by_fork(\n    \"parent_blobs\",\n    lambda fork: range(0, fork.target_blobs_per_block() + 1),\n)\n@pytest.mark.parametrize(\"parent_excess_blobs\", [0])  # Start at 0\n@pytest.mark.parametrize(\"new_blobs\", [1])\n@pytest.mark.exception_test\ndef test_invalid_excess_blob_gas_target_blobs_increase_from_zero(\n    blockchain_test: BlockchainTestFiller,\n    env: Environment,\n    pre: Mapping[Address, Account],\n    blocks: List[Block],\n    correct_excess_blob_gas: int,\n    header_excess_blob_gas: Optional[int],\n) -> None:\n    \"\"\"\n    Test rejection of blocks where the `excessBlobGas` increases from zero,\n    even when the included blobs are on or below target.\n\n    Test is parametrized according to `[0, TARGET_BLOBS_PER_BLOCK` new blobs.\n    \"\"\"\n    if header_excess_blob_gas is None:\n        raise Exception(\"test case is badly formatted\")\n\n    if header_excess_blob_gas == correct_excess_blob_gas:\n        raise Exception(\"invalid test case\")\n\n    blockchain_test(\n        pre=pre,\n        post={},\n        blocks=blocks,\n        genesis_environment=env,\n        tag=\"-\".join(\n            [\n                f\"correct:{hex(correct_excess_blob_gas)}\",\n                f\"header:{hex(header_excess_blob_gas)}\",\n            ]\n        ),\n    )\n\n\n@pytest.mark.parametrize(\"header_excess_blob_gas\", [0])\n@pytest.mark.parametrize_by_fork(\n    \"parent_blobs\",\n    lambda fork: range(fork.target_blobs_per_block() + 1, fork.max_blobs_per_block() + 1),\n)\n@pytest.mark.parametrize(\"parent_excess_blobs\", [0])  # Start at 0\n@pytest.mark.parametrize(\"new_blobs\", [1])\n@pytest.mark.exception_test\ndef test_invalid_static_excess_blob_gas_from_zero_on_blobs_above_target(\n    blockchain_test: BlockchainTestFiller,\n    env: Environment,\n    pre: Mapping[Address, Account],\n    blocks: List[Block],\n    correct_excess_blob_gas: int,\n    header_excess_blob_gas: Optional[int],\n) -> None:\n    \"\"\"\n    Test rejection of blocks where the `excessBlobGas` does not increase from\n    zero, even when the included blobs is above target.\n\n    Test is parametrized to `[TARGET_BLOBS_PER_BLOCK+1, MAX_BLOBS_PER_BLOCK]`\n    new blobs.\n    \"\"\"\n    if header_excess_blob_gas is None:\n        raise Exception(\"test case is badly formatted\")\n\n    if header_excess_blob_gas == correct_excess_blob_gas:\n        raise Exception(\"invalid test case\")\n\n    blockchain_test(\n        pre=pre,\n        post={},\n        blocks=blocks,\n        genesis_environment=env,\n        tag=\"-\".join(\n            [\n                f\"correct:{hex(correct_excess_blob_gas)}\",\n                f\"header:{hex(header_excess_blob_gas)}\",\n            ]\n        ),\n    )\n\n\n@pytest.mark.parametrize_by_fork(\n    \"parent_blobs,header_excess_blobs_delta\",\n    lambda fork: itertools.product(\n        # parent_blobs\n        range(0, fork.max_blobs_per_block() + 1),\n        # header_excess_blobs_delta (from correct value)\n        [\n            x\n            for x in range(-fork.target_blobs_per_block(), fork.target_blobs_per_block() + 1)\n            if x != 0\n        ],\n    ),\n)\n@pytest.mark.parametrize(\"new_blobs\", [1])\n@pytest.mark.exception_test\ndef test_invalid_excess_blob_gas_change(\n    blockchain_test: BlockchainTestFiller,\n    env: Environment,\n    pre: Mapping[Address, Account],\n    blocks: List[Block],\n    correct_excess_blob_gas: int,\n    header_excess_blob_gas: Optional[int],\n) -> None:\n    \"\"\"\n    Test rejection of blocks where the `excessBlobGas` changes to an invalid\n    value.\n\n    Given a parent block containing `[0, MAX_BLOBS_PER_BLOCK]` blobs, test an\n    invalid `excessBlobGas` value by changing it by `[-TARGET_BLOBS_PER_BLOCK,\n    TARGET_BLOBS_PER_BLOCK]` from the correct value.\n    \"\"\"\n    if header_excess_blob_gas is None:\n        raise Exception(\"test case is badly formatted\")\n\n    if header_excess_blob_gas == correct_excess_blob_gas:\n        raise Exception(\"invalid test case\")\n\n    blockchain_test(\n        pre=pre,\n        post={},\n        blocks=blocks,\n        genesis_environment=env,\n        tag=\"-\".join(\n            [\n                f\"correct:{hex(correct_excess_blob_gas)}\",\n                f\"header:{hex(header_excess_blob_gas)}\",\n            ]\n        ),\n    )\n\n\n@pytest.mark.parametrize_by_fork(\n    \"header_excess_blob_gas\",\n    lambda fork: [\n        (2**64 + (x * fork.blob_gas_per_blob())) for x in range(-fork.target_blobs_per_block(), 0)\n    ],\n)\n@pytest.mark.parametrize_by_fork(\n    \"parent_blobs\",\n    lambda fork: range(fork.target_blobs_per_block()),\n)\n@pytest.mark.parametrize(\"new_blobs\", [1])\n@pytest.mark.parametrize_by_fork(\n    \"parent_excess_blobs\",\n    lambda fork: range(fork.target_blobs_per_block()),\n)\n@pytest.mark.exception_test\n@pytest.mark.slow()\ndef test_invalid_negative_excess_blob_gas(\n    blockchain_test: BlockchainTestFiller,\n    env: Environment,\n    pre: Mapping[Address, Account],\n    blocks: List[Block],\n    correct_excess_blob_gas: int,\n    header_excess_blob_gas: Optional[int],\n) -> None:\n    \"\"\"\n    Test rejection of blocks where the `excessBlobGas` changes to the two's\n    complement equivalent of the negative value after subtracting target blobs.\n\n    Reasoning is that the `excessBlobGas` is a `uint64`, so it cannot be\n    negative, and we test for a potential underflow here.\n    \"\"\"\n    if header_excess_blob_gas is None:\n        raise Exception(\"test case is badly formatted\")\n\n    if header_excess_blob_gas == correct_excess_blob_gas:\n        raise Exception(\"invalid test case\")\n\n    blockchain_test(\n        pre=pre,\n        post={},\n        blocks=blocks,\n        genesis_environment=env,\n        tag=\"-\".join(\n            [\n                f\"correct:{hex(correct_excess_blob_gas)}\",\n                f\"header:{hex(header_excess_blob_gas)}\",\n            ]\n        ),\n    )\n\n\n@pytest.mark.parametrize_by_fork(\n    \"parent_blobs,header_excess_blob_gas_delta\",\n    lambda fork: [\n        (fork.target_blobs_per_block() + 1, 1),\n        (fork.target_blobs_per_block() + 1, fork.blob_gas_per_blob() - 1),\n        (fork.target_blobs_per_block() - 1, -1),\n        (fork.target_blobs_per_block() - 1, -(fork.blob_gas_per_blob() - 1)),\n    ],\n)\n@pytest.mark.parametrize(\"new_blobs\", [1])\n@pytest.mark.parametrize_by_fork(\n    \"parent_excess_blobs\",\n    lambda fork: [fork.target_blobs_per_block() + 1],\n)\n@pytest.mark.exception_test\n@pytest.mark.slow()\ndef test_invalid_non_multiple_excess_blob_gas(\n    blockchain_test: BlockchainTestFiller,\n    env: Environment,\n    pre: Mapping[Address, Account],\n    blocks: List[Block],\n    correct_excess_blob_gas: int,\n    header_excess_blob_gas: Optional[int],\n) -> None:\n    \"\"\"\n    Test rejection of blocks where the `excessBlobGas` changes to a value that\n    is not a multiple of Spec.GAS_PER_BLOB`.\n\n    - Parent block contains `TARGET_BLOBS_PER_BLOCK + 1` blobs, but\n       `excessBlobGas` is off by +/-1\n    - Parent block contains `TARGET_BLOBS_PER_BLOCK - 1` blobs, but\n       `excessBlobGas` is off by +/-1\n    \"\"\"\n    if header_excess_blob_gas is None:\n        raise Exception(\"test case is badly formatted\")\n\n    if header_excess_blob_gas == correct_excess_blob_gas:\n        raise Exception(\"invalid test case\")\n\n    blockchain_test(\n        pre=pre,\n        post={},\n        blocks=blocks,\n        genesis_environment=env,\n        tag=\"-\".join(\n            [\n                f\"correct:{hex(correct_excess_blob_gas)}\",\n                f\"header:{hex(header_excess_blob_gas)}\",\n            ]\n        ),\n    )\n"
  },
  {
    "path": "tests/cancun/eip4844_blobs/test_excess_blob_gas_fork_transition.py",
    "content": "\"\"\"\nTest `excessBlobGas` & `blobGasUsed` block fields at fork transition.\n\nTests for [EIP-4844: Shard Blob Transactions](https://eips.ethereum.org/EIPS/eip-4844).\n\"\"\"\n\nfrom typing import List, Mapping\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    EOA,\n    Account,\n    Address,\n    Alloc,\n    Block,\n    BlockchainTestFiller,\n    BlockException,\n    EngineAPIError,\n    Environment,\n    Hash,\n    Header,\n    Transaction,\n    add_kzg_version,\n)\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom .spec import Spec, SpecHelpers, ref_spec_4844\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_4844.git_path\nREFERENCE_SPEC_VERSION = ref_spec_4844.version\n\n# Timestamp of the fork\nFORK_TIMESTAMP = 15_000\nBASE_FEE_MAX_CHANGE_DENOMINATOR = 8\n\n\n@pytest.fixture\ndef block_gas_limit(fork: Fork) -> int:  # noqa: D103\n    gas_limit = int(Environment().gas_limit)\n    tx_gas_limit_cap = fork.transaction_gas_limit_cap()\n    if tx_gas_limit_cap is not None:\n        # Below transaction gas limit cap to reach gas limit easily\n        gas_limit = min(gas_limit, tx_gas_limit_cap * 2)\n    return gas_limit\n\n\n@pytest.fixture\ndef genesis_environment(block_gas_limit: int, block_base_fee_per_gas: int) -> Environment:\n    \"\"\"\n    Genesis environment that enables existing transition tests to be used of\n    BPO forks. Compatible with all fork transitions.\n    \"\"\"\n    return Environment(\n        base_fee_per_gas=(block_base_fee_per_gas * BASE_FEE_MAX_CHANGE_DENOMINATOR) // 7,\n        gas_limit=block_gas_limit,\n    )\n\n\n@pytest.fixture\ndef pre_fork_blobs_per_block(fork: Fork) -> int:\n    \"\"\"Amount of blobs to produce with the pre-fork rules.\"\"\"\n    if fork.supports_blobs(timestamp=0):\n        return fork.max_blobs_per_block(timestamp=0)\n    return 0\n\n\n@pytest.fixture\ndef post_fork_blobs_per_block(fork: Fork) -> int:\n    \"\"\"Amount of blobs to produce with the post-fork rules.\"\"\"\n    return fork.target_blobs_per_block(timestamp=FORK_TIMESTAMP) + 1\n\n\n@pytest.fixture\ndef pre_fork_blocks(\n    pre_fork_blobs_per_block: int,\n    destination_account: Address,\n    gas_spender_account: Address,\n    sender: EOA,\n    fork: Fork,\n    block_base_fee_per_gas: int,\n    block_gas_limit: int,\n) -> List[Block]:\n    \"\"\"Generate blocks to reach the fork.\"\"\"\n    blocks = []\n\n    for t in range(999, FORK_TIMESTAMP, 1_000):\n        remaining_gas = block_gas_limit // 2\n        if pre_fork_blobs_per_block == 0:\n            blocks.append(\n                Block(\n                    txs=[\n                        Transaction(\n                            to=gas_spender_account,\n                            value=0,\n                            gas_limit=remaining_gas,\n                            max_fee_per_gas=1_000_000,\n                            max_priority_fee_per_gas=10,\n                            sender=sender,\n                        )\n                    ],\n                    timestamp=t,\n                )\n            )\n            continue\n\n        # Split into multi txs for forks where max per tx < max per block\n        txs = []\n        blob_index = 0\n        remaining_blobs = pre_fork_blobs_per_block\n        max_blobs_per_tx = fork.max_blobs_per_tx(timestamp=0)\n\n        while remaining_blobs > 0:\n            tx_blobs = min(remaining_blobs, max_blobs_per_tx)\n            blob_tx_gas_limit = 21_000\n            txs.append(\n                Transaction(\n                    ty=Spec.BLOB_TX_TYPE,\n                    to=destination_account,\n                    value=1,\n                    gas_limit=blob_tx_gas_limit,\n                    max_fee_per_gas=1_000_000,\n                    max_priority_fee_per_gas=10,\n                    max_fee_per_blob_gas=100,\n                    access_list=[],\n                    blob_versioned_hashes=add_kzg_version(\n                        [Hash(blob_index + x) for x in range(tx_blobs)],\n                        Spec.BLOB_COMMITMENT_VERSION_KZG,\n                    ),\n                    sender=sender,\n                )\n            )\n            remaining_gas -= blob_tx_gas_limit\n            blob_index += tx_blobs\n            remaining_blobs -= tx_blobs\n        txs.append(\n            Transaction(\n                to=gas_spender_account,\n                value=0,\n                gas_limit=remaining_gas,\n                max_fee_per_gas=1_000_000,\n                max_priority_fee_per_gas=10,\n                sender=sender,\n            )\n        )\n        block = Block(\n            txs=txs, timestamp=t, header_verify=Header(base_fee_per_gas=block_base_fee_per_gas)\n        )\n        blocks.append(block)\n    return blocks\n\n\n@pytest.fixture\ndef pre_fork_excess_blobs(\n    fork: Fork,\n    pre_fork_blobs_per_block: int,\n    pre_fork_blocks: List[Block],\n) -> int:\n    \"\"\"\n    Return the cumulative excess blobs up until the fork given the\n    pre_fork_blobs_per_block and the target blobs in the fork prior.\n    \"\"\"\n    if not fork.supports_blobs(timestamp=0):\n        return 0\n\n    target_blobs = fork.target_blobs_per_block(timestamp=0)\n    if pre_fork_blobs_per_block > target_blobs:\n        return (pre_fork_blobs_per_block - target_blobs) * (len(pre_fork_blocks) - 1)\n    return 0\n\n\n@pytest.fixture\ndef post_fork_block_count(fork: Fork) -> int:\n    \"\"\"Amount of blocks to produce with the post-fork rules.\"\"\"\n    return SpecHelpers.get_min_excess_blobs_for_blob_gas_price(fork=fork, blob_gas_price=2) // (\n        fork.max_blobs_per_block(timestamp=FORK_TIMESTAMP)\n        - fork.target_blobs_per_block(timestamp=FORK_TIMESTAMP)\n    )\n\n\n@pytest.fixture\ndef destination_account(pre: Alloc) -> Address:  # noqa: D103\n    # Empty account to receive the blobs\n    return pre.fund_eoa(amount=0)\n\n\n@pytest.fixture\ndef gas_spender_account(pre: Alloc) -> Address:  # noqa: D103\n    # Account that when called consumes the entirety of the transaction's gas\n    return pre.deploy_contract(code=Op.INVALID)\n\n\n@pytest.fixture\ndef fork_block_excess_blob_gas(\n    fork: Fork,\n    pre_fork_excess_blobs: int,\n    pre_fork_blobs_per_block: int,\n    block_base_fee_per_gas: int,\n) -> int:\n    \"\"\"Calculate the expected excess blob gas for the fork block.\"\"\"\n    if pre_fork_blobs_per_block == 0:\n        return 0\n    calc_excess_blob_gas_post_fork = fork.excess_blob_gas_calculator(timestamp=FORK_TIMESTAMP)\n    return calc_excess_blob_gas_post_fork(\n        parent_excess_blobs=pre_fork_excess_blobs,\n        parent_blob_count=pre_fork_blobs_per_block,\n        parent_base_fee_per_gas=block_base_fee_per_gas,\n    )\n\n\n@pytest.fixture\ndef post_fork_blocks(\n    destination_account: Address,\n    post_fork_block_count: int,\n    post_fork_blobs_per_block: int,\n    fork_block_excess_blob_gas: int,\n    sender: EOA,\n    pre_fork_blocks: List[Block],\n    fork: Fork,\n) -> list[Block]:\n    \"\"\"Generate blocks after the fork.\"\"\"\n    blocks = []\n\n    for i in range(post_fork_block_count):\n        if post_fork_blobs_per_block == 0:\n            if i == 0:\n                blocks.append(\n                    Block(\n                        txs=[],\n                        header_verify=Header(\n                            excess_blob_gas=fork_block_excess_blob_gas,\n                        ),\n                    )\n                )\n            else:\n                blocks.append(Block(txs=[]))\n            continue\n\n        # Split into multi txs for forks where max per tx < max per block\n        txs = []\n        blob_index = 0\n        remaining_blobs = post_fork_blobs_per_block\n        max_blobs_per_tx = fork.max_blobs_per_tx(timestamp=FORK_TIMESTAMP)\n        while remaining_blobs > 0:\n            tx_blobs = min(remaining_blobs, max_blobs_per_tx)\n            txs.append(\n                Transaction(\n                    ty=Spec.BLOB_TX_TYPE,\n                    to=destination_account,\n                    value=1,\n                    gas_limit=100_000,\n                    max_fee_per_gas=1_000_000,\n                    max_priority_fee_per_gas=10,\n                    max_fee_per_blob_gas=100,\n                    blob_versioned_hashes=add_kzg_version(\n                        [Hash(blob_index + x) for x in range(tx_blobs)],\n                        Spec.BLOB_COMMITMENT_VERSION_KZG,\n                    ),\n                    sender=sender,\n                )\n            )\n            blob_index += tx_blobs\n            remaining_blobs -= tx_blobs\n\n        if i == 0:\n            blocks.append(\n                Block(\n                    txs=txs,\n                    header_verify=Header(\n                        excess_blob_gas=fork_block_excess_blob_gas,\n                    ),\n                )\n            )\n        else:\n            blocks.append(Block(txs=txs))\n\n    return blocks\n\n\n@pytest.fixture\ndef post(  # noqa: D103\n    pre_fork_blocks: List[Block],\n    pre_fork_blobs_per_block: int,\n    post_fork_block_count: int,\n    post_fork_blobs_per_block: int,\n    destination_account: Address,\n    fork: Fork,\n) -> Mapping[Address, Account]:\n    pre_fork_tx_count_per_block = 0\n    if pre_fork_blobs_per_block > 0:\n        max_blobs_per_tx_pre = fork.max_blobs_per_tx(timestamp=0)\n        pre_fork_tx_count_per_block = (\n            pre_fork_blobs_per_block + max_blobs_per_tx_pre - 1\n        ) // max_blobs_per_tx_pre\n\n    post_fork_tx_count_per_block = 0\n    if post_fork_blobs_per_block > 0:\n        max_blobs_per_tx_post = fork.max_blobs_per_tx(timestamp=FORK_TIMESTAMP)\n        post_fork_tx_count_per_block = (\n            post_fork_blobs_per_block + max_blobs_per_tx_post - 1\n        ) // max_blobs_per_tx_post\n\n    pre_fork_value = len(pre_fork_blocks) * pre_fork_tx_count_per_block\n    post_fork_value = post_fork_block_count * post_fork_tx_count_per_block\n    total_value = pre_fork_value + post_fork_value\n\n    if total_value == 0:\n        return {}\n    return {\n        destination_account: Account(balance=total_value),\n    }\n\n\n@pytest.mark.valid_at_transition_to(\"Cancun\", subsequent_forks=False)\n@pytest.mark.parametrize(\n    \"excess_blob_gas_present,blob_gas_used_present\",\n    [\n        (True, False),\n        (False, True),\n        (True, True),\n    ],\n)\n@pytest.mark.exception_test\ndef test_invalid_pre_fork_block_with_blob_fields(\n    blockchain_test: BlockchainTestFiller,\n    genesis_environment: Environment,\n    pre: Alloc,\n    pre_fork_blocks: List[Block],\n    excess_blob_gas_present: bool,\n    blob_gas_used_present: bool,\n) -> None:\n    \"\"\"\n    Test block rejection when `excessBlobGas` and/or `blobGasUsed` fields are\n    present on a pre-fork block.\n\n    Blocks sent by NewPayloadV2 (Shanghai) that contain `excessBlobGas` and\n    `blobGasUsed` fields must be rejected with the appropriate\n    `EngineAPIError.InvalidParams` error error.\n    \"\"\"\n    header_modifier = Header(\n        excess_blob_gas=0 if excess_blob_gas_present else None,\n        blob_gas_used=0 if blob_gas_used_present else None,\n    )\n    blockchain_test(\n        pre=pre,\n        post={},\n        blocks=pre_fork_blocks[:-1]\n        + [\n            Block(\n                timestamp=(FORK_TIMESTAMP - 1),\n                rlp_modifier=header_modifier,\n                exception=BlockException.INCORRECT_BLOCK_FORMAT,\n                engine_api_error_code=EngineAPIError.InvalidParams,\n            )\n        ],\n        genesis_environment=genesis_environment,\n    )\n\n\n@pytest.mark.valid_at_transition_to(\"Cancun\", subsequent_forks=False)\n@pytest.mark.parametrize(\n    \"excess_blob_gas_missing,blob_gas_used_missing\",\n    [\n        (True, False),\n        (False, True),\n        (True, True),\n    ],\n)\n@pytest.mark.exception_test\ndef test_invalid_post_fork_block_without_blob_fields(\n    blockchain_test: BlockchainTestFiller,\n    genesis_environment: Environment,\n    pre: Alloc,\n    pre_fork_blocks: List[Block],\n    excess_blob_gas_missing: bool,\n    blob_gas_used_missing: bool,\n) -> None:\n    \"\"\"\n    Test block rejection when `excessBlobGas` and/or `blobGasUsed` fields are\n    missing on a post-fork block.\n\n    Blocks sent by NewPayloadV3 (Cancun) without `excessBlobGas` and\n    `blobGasUsed` fields must be rejected with the appropriate\n    `EngineAPIError.InvalidParams` error.\n    \"\"\"\n    header_modifier = Header()\n    if excess_blob_gas_missing:\n        header_modifier.excess_blob_gas = Header.REMOVE_FIELD\n    if blob_gas_used_missing:\n        header_modifier.blob_gas_used = Header.REMOVE_FIELD\n    blockchain_test(\n        pre=pre,\n        post={},\n        blocks=pre_fork_blocks\n        + [\n            Block(\n                timestamp=FORK_TIMESTAMP,\n                rlp_modifier=header_modifier,\n                exception=BlockException.INCORRECT_BLOCK_FORMAT,\n                engine_api_error_code=EngineAPIError.InvalidParams,\n            )\n        ],\n        genesis_environment=genesis_environment,\n    )\n\n\n@pytest.mark.valid_at_transition_to(\"Cancun\", subsequent_forks=False)\n@pytest.mark.parametrize_by_fork(\n    \"post_fork_block_count,post_fork_blobs_per_block\",\n    lambda fork: [\n        pytest.param(\n            SpecHelpers.get_min_excess_blobs_for_blob_gas_price(fork=fork, blob_gas_price=2)\n            // (\n                fork.max_blobs_per_block(timestamp=FORK_TIMESTAMP)\n                - fork.target_blobs_per_block(timestamp=FORK_TIMESTAMP)\n            )\n            + 2,\n            fork.max_blobs_per_block(timestamp=FORK_TIMESTAMP),\n            id=\"max_blobs\",\n        ),\n        pytest.param(10, 0, id=\"no_blobs\"),\n        pytest.param(10, fork.target_blobs_per_block(timestamp=FORK_TIMESTAMP), id=\"target_blobs\"),\n    ],\n)\ndef test_fork_transition_excess_blob_gas_at_blob_genesis(\n    blockchain_test: BlockchainTestFiller,\n    genesis_environment: Environment,\n    pre: Alloc,\n    pre_fork_blocks: List[Block],\n    post_fork_blocks: List[Block],\n    post: Mapping[Address, Account],\n) -> None:\n    \"\"\"\n    Test `excessBlobGas` calculation in the header when the fork is activated.\n\n    Also produce enough blocks to test the blob gas price increase when the\n    block is full with `SpecHelpers.max_blobs_per_block()` blobs.\n    \"\"\"\n    blockchain_test(\n        pre=pre,\n        post=post,\n        blocks=pre_fork_blocks + post_fork_blocks,\n        genesis_environment=genesis_environment,\n    )\n\n\n@pytest.mark.valid_at_transition_to(\"Prague\", subsequent_forks=True)\n@pytest.mark.parametrize_by_fork(\n    \"post_fork_block_count,pre_fork_blobs_per_block,post_fork_blobs_per_block\",\n    lambda fork: [\n        pytest.param(\n            SpecHelpers.get_min_excess_blobs_for_blob_gas_price(fork=fork, blob_gas_price=2)\n            // (\n                fork.max_blobs_per_block(timestamp=FORK_TIMESTAMP)\n                - fork.target_blobs_per_block(timestamp=FORK_TIMESTAMP)\n            )\n            + 2,\n            fork.max_blobs_per_block(timestamp=0),\n            fork.max_blobs_per_block(timestamp=FORK_TIMESTAMP),\n            id=\"max_blobs_before_and_after\",\n        ),\n        pytest.param(\n            10,\n            0,\n            fork.max_blobs_per_block(timestamp=FORK_TIMESTAMP),\n            id=\"no_blobs_before_and_max_blobs_after\",\n        ),\n        pytest.param(\n            10,\n            fork.max_blobs_per_block(timestamp=0),\n            0,\n            id=\"max_blobs_before_and_no_blobs_after\",\n        ),\n        pytest.param(\n            10,\n            fork.target_blobs_per_block(timestamp=0),\n            fork.target_blobs_per_block(timestamp=FORK_TIMESTAMP),\n            id=\"target_blobs_before_and_after\",\n        ),\n        pytest.param(\n            10,\n            1,\n            fork.max_blobs_per_block(timestamp=FORK_TIMESTAMP),\n            id=\"single_blob_before_and_max_blobs_after\",\n        ),\n        pytest.param(\n            10,\n            fork.max_blobs_per_block(timestamp=0),\n            1,\n            id=\"max_blobs_before_and_single_blob_after\",\n        ),\n    ],\n)\n@pytest.mark.parametrize(\"block_base_fee_per_gas\", [7, 16, 23])\ndef test_fork_transition_excess_blob_gas_post_blob_genesis(\n    blockchain_test: BlockchainTestFiller,\n    genesis_environment: Environment,\n    pre: Alloc,\n    pre_fork_blocks: List[Block],\n    post_fork_blocks: List[Block],\n    post: Mapping[Address, Account],\n) -> None:\n    \"\"\"\n    Test `excessBlobGas` calculation in the header when the fork is activated.\n    \"\"\"\n    blockchain_test(\n        pre=pre,\n        post=post,\n        blocks=pre_fork_blocks + post_fork_blocks,\n        genesis_environment=genesis_environment,\n    )\n"
  },
  {
    "path": "tests/cancun/eip4844_blobs/test_point_evaluation_precompile.py",
    "content": "\"\"\"\nTests point evaluation precompile for [EIP-4844: Shard Blob Transactions](https://eips.ethereum.org/EIPS/eip-4844).\n\nNote: Adding a new test Add a function that is named `test_<test_name>` and\ntakes at least the following arguments.\n\nRequired arguments:\n- `blockchain_test` or `state_test`\n- `pre`\n- `tx`\n- `post`\n\nThe following arguments *need* to be parametrized or the test will not be\ngenerated:\n\n- `versioned_hash`\n- `kzg_commitment`\n- `z`\n- `y`\n- `kzg_proof`\n- `result`\n\nThese values correspond to a single call of the precompile, and `result`\nrefers to whether the call should succeed or fail.\n\nAll other `pytest.fixture` fixtures can be parametrized to generate new\ncombinations and test cases.\n\"\"\"\n\nimport glob\nimport json\nimport os\nfrom enum import Enum\nfrom itertools import count\nfrom typing import Any, Dict, List, Optional\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    EOA,\n    AccessList,\n    Account,\n    Address,\n    Alloc,\n    Block,\n    BlockchainTestFiller,\n    Bytecode,\n    Environment,\n    StateTestFiller,\n    Storage,\n    Transaction,\n    TransactionReceipt,\n    call_return_code,\n)\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .common import INF_POINT, Z_Y_VALID_ENDIANNESS, Z\nfrom .spec import Spec, ref_spec_4844\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_4844.git_path\nREFERENCE_SPEC_VERSION = ref_spec_4844.version\n\n\nclass Result(str, Enum):\n    \"\"\"Result of the point evaluation precompile.\"\"\"\n\n    SUCCESS = \"success\"\n    FAILURE = \"failure\"\n    OUT_OF_GAS = \"out_of_gas\"\n\n\n@pytest.fixture\ndef precompile_input(\n    versioned_hash: Optional[bytes | int],\n    kzg_commitment: bytes | int,\n    z: bytes | int,\n    y: bytes | int,\n    kzg_proof: bytes | int,\n) -> bytes:\n    \"\"\"Format the input for the point evaluation precompile.\"\"\"\n    if isinstance(z, int):\n        z = z.to_bytes(32, Z_Y_VALID_ENDIANNESS)\n    if isinstance(y, int):\n        y = y.to_bytes(32, Z_Y_VALID_ENDIANNESS)\n    if isinstance(kzg_commitment, int):\n        kzg_commitment = kzg_commitment.to_bytes(48, \"big\")\n    if isinstance(kzg_proof, int):\n        kzg_proof = kzg_proof.to_bytes(48, \"big\")\n    if versioned_hash is None:\n        versioned_hash = Spec.kzg_to_versioned_hash(kzg_commitment)\n    elif isinstance(versioned_hash, int):\n        versioned_hash = versioned_hash.to_bytes(32, \"big\")\n\n    return versioned_hash + z + y + kzg_commitment + kzg_proof\n\n\n@pytest.fixture\ndef call_opcode() -> Op:\n    \"\"\"\n    Type of call to use to call the precompile.\n\n    Defaults to Op.CALL, but can be parametrized to use other opcode types.\n    \"\"\"\n    return Op.CALL\n\n\n@pytest.fixture\ndef call_gas() -> int:\n    \"\"\"\n    Amount of gas to pass to the precompile.\n\n    Defaults to Spec.POINT_EVALUATION_PRECOMPILE_GAS, but can be parametrized\n    to test different amounts.\n    \"\"\"\n    return Spec.POINT_EVALUATION_PRECOMPILE_GAS\n\n\nprecompile_caller_storage_keys = count()\nkey_call_return_code = next(precompile_caller_storage_keys)\nkey_return_1 = next(precompile_caller_storage_keys)\nkey_return_2 = next(precompile_caller_storage_keys)\nkey_return_length = next(precompile_caller_storage_keys)\nkey_return_copy_1 = next(precompile_caller_storage_keys)\nkey_return_copy_2 = next(precompile_caller_storage_keys)\n\n\n@pytest.fixture\ndef precompile_caller_storage() -> Storage.StorageDictType:\n    \"\"\"Storage for the precompile caller contract.\"\"\"\n    return {\n        key_call_return_code: 0xBA5E,\n        key_return_1: 0xBA5E,\n        key_return_2: 0xBA5E,\n        key_return_length: 0xBA5E,\n        key_return_copy_1: 0xBA5E,\n        key_return_copy_2: 0xBA5E,\n    }\n\n\n@pytest.fixture\ndef precompile_caller_code(call_opcode: Op, call_gas: int) -> Bytecode:\n    \"\"\"Code to call the point evaluation precompile.\"\"\"\n    precompile_caller_code = Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE)\n    precompile_caller_code += Op.SSTORE(\n        key_call_return_code,\n        # https://github.com/ethereum/execution-spec-tests/issues/348\n        call_opcode(\n            gas=call_gas,\n            address=Spec.POINT_EVALUATION_PRECOMPILE_ADDRESS,\n            args_offset=0x00,\n            args_size=Op.CALLDATASIZE,\n            ret_offset=0x00,\n            ret_size=0x40,\n        ),\n    )  # Store the result of the precompile call in storage slot 0\n    precompile_caller_code += (\n        # Save the returned values into storage\n        Op.SSTORE(key_return_1, Op.MLOAD(0x00))\n        + Op.SSTORE(key_return_2, Op.MLOAD(0x20))\n        # Save the returned data length into storage\n        + Op.SSTORE(key_return_length, Op.RETURNDATASIZE)\n        # Save the returned data using RETURNDATACOPY into storage\n        + Op.RETURNDATACOPY(0, 0, Op.RETURNDATASIZE)\n        + Op.SSTORE(key_return_copy_1, Op.MLOAD(0x00))\n        + Op.SSTORE(key_return_copy_2, Op.MLOAD(0x20))\n        + Op.STOP\n    )\n    return precompile_caller_code\n\n\n@pytest.fixture\ndef precompile_caller_balance() -> int:\n    \"\"\"Storage for the precompile caller contract.\"\"\"\n    return 0\n\n\n@pytest.fixture\ndef precompile_caller_address(\n    pre: Alloc,\n    precompile_caller_code: Bytecode,\n    precompile_caller_storage: Storage.StorageDictType,\n    precompile_caller_balance: int,\n) -> Address:\n    \"\"\"Address of the code to call the point evaluation precompile.\"\"\"\n    return pre.deploy_contract(\n        precompile_caller_code,\n        storage=precompile_caller_storage,\n        balance=precompile_caller_balance,\n    )\n\n\n@pytest.fixture\ndef tx(\n    precompile_caller_address: Address,\n    precompile_input: bytes,\n    sender: EOA,\n) -> Transaction:\n    \"\"\"Prepare transaction used to call the precompile caller account.\"\"\"\n    return Transaction(\n        sender=sender,\n        data=precompile_input,\n        to=precompile_caller_address,\n        gas_limit=Spec.POINT_EVALUATION_PRECOMPILE_GAS * 100,\n    )\n\n\n@pytest.fixture\ndef success(\n    result: Result,\n    call_opcode: Op,\n) -> bool:\n    \"\"\"Prepare expected success or failure for each test.\"\"\"\n    if call_opcode == Op.EXTDELEGATECALL:\n        return False\n    if result == Result.OUT_OF_GAS and call_opcode in [Op.EXTCALL, Op.EXTSTATICCALL]:\n        return True\n\n    return result == Result.SUCCESS\n\n\n@pytest.fixture\ndef post(\n    success: bool,\n    call_opcode: Op,\n    precompile_caller_address: Address,\n    precompile_input: bytes,\n) -> Dict:\n    \"\"\"\n    Prepare expected post for each test, depending on the success or failure of\n    the precompile call.\n    \"\"\"\n    expected_storage: Storage.StorageDictType = {}\n    # CALL operation return code\n    expected_storage[key_call_return_code] = call_return_code(\n        call_opcode, success, revert=call_opcode == Op.EXTDELEGATECALL\n    )\n    if success:\n        # Success return values\n        expected_storage[key_return_1] = Spec.FIELD_ELEMENTS_PER_BLOB\n        expected_storage[key_return_2] = Spec.BLS_MODULUS\n        # Success return values size\n        expected_storage[key_return_length] = 64\n        # Success return values from RETURNDATACOPY\n        expected_storage[key_return_copy_1] = Spec.FIELD_ELEMENTS_PER_BLOB\n        expected_storage[key_return_copy_2] = Spec.BLS_MODULUS\n\n    else:\n        # Failure returns zero values\n        expected_storage[key_return_length] = 0\n\n        # Input parameters were not overwritten since the CALL failed\n        expected_storage[key_return_1] = precompile_input[0:32]\n        expected_storage[key_return_2] = precompile_input[32:64]\n        expected_storage[key_return_copy_1] = expected_storage[1]\n        expected_storage[key_return_copy_2] = expected_storage[2]\n    if call_opcode in [Op.EXTCALL, Op.EXTSTATICCALL, Op.EXTDELEGATECALL]:\n        # Input parameters were not overwritten\n        expected_storage[key_return_1] = precompile_input[0:32]\n        expected_storage[key_return_2] = precompile_input[32:64]\n    return {\n        precompile_caller_address: Account(\n            storage=expected_storage,\n        ),\n    }\n\n\n@pytest.mark.parametrize(\n    \"z,y,kzg_commitment,kzg_proof,versioned_hash\",\n    [\n        pytest.param(Spec.BLS_MODULUS - 1, 0, INF_POINT, INF_POINT, None, id=\"in_bounds_z\"),\n        pytest.param(\n            # Example valid input from a Mainnet transaction\n            # https://etherscan.io/tx/0xcb3dc8f3b14f1cda0c16a619a112102a8ec70dce1b3f1b28272227cf8d5fbb0e\n            0x019123BCB9D06356701F7BE08B4494625B87A7B02EDC566126FB81F6306E915F,\n            0x6C2EB1E94C2532935B8465351BA1BD88EABE2B3FA1AADFF7D1CD816E8315BD38,\n            0xA9546D41993E10DF2A7429B8490394EA9EE62807BAE6F326D1044A51581306F58D4B9DFD5931E044688855280FF3799E,\n            0xA2EA83D9391E0EE42E0C650ACC7A1F842A7D385189485DDB4FD54ADE3D9FD50D608167DCA6C776AAD4B8AD5C20691BFE,\n            0x018156B94FE9735E573BAB36DAD05D60FEB720D424CCD20AAF719343C31E4246,\n            id=\"mainnet_1\",\n        ),\n    ],\n)\n@pytest.mark.parametrize(\"result\", [Result.SUCCESS])\n@pytest.mark.valid_from(\"Cancun\")\ndef test_valid_inputs(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    tx: Transaction,\n    post: Dict,\n) -> None:\n    \"\"\"\n    Test valid sanity precompile calls that are expected to succeed.\n\n    - `kzg_commitment` and `kzg_proof` are set to values such that `p(z)==0`\n        for all values of `z`, hence `y` is tested to be zero, and call to be\n        successful.\n    \"\"\"\n    state_test(\n        env=Environment(),\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\n@pytest.mark.parametrize(\n    \"z,y,kzg_commitment,kzg_proof,versioned_hash\",\n    [\n        (Spec.BLS_MODULUS, 0, INF_POINT, INF_POINT, None),\n        (0, Spec.BLS_MODULUS, INF_POINT, INF_POINT, None),\n        (Z, 0, INF_POINT, INF_POINT[:-1], None),\n        (Z, 0, INF_POINT, INF_POINT[0:1], None),\n        (Z, 0, INF_POINT, INF_POINT + bytes([0]), None),\n        (Z, 0, INF_POINT, INF_POINT + bytes([0] * 1023), None),\n        (bytes(), bytes(), bytes(), bytes(), bytes()),\n        (0, 0, 0, 0, 0),\n        (0, 0, 0, 0, None),\n        (Z, 0, INF_POINT, INF_POINT, Spec.kzg_to_versioned_hash(0xC0 << 376, 0x00)),\n        (Z, 0, INF_POINT, INF_POINT, Spec.kzg_to_versioned_hash(0xC0 << 376, 0x02)),\n        (Z, 0, INF_POINT, INF_POINT, Spec.kzg_to_versioned_hash(0xC0 << 376, 0xFF)),\n    ],\n    ids=[\n        \"out_of_bounds_z\",\n        \"out_of_bounds_y\",\n        \"correct_proof_1_input_too_short\",\n        \"correct_proof_1_input_too_short_2\",\n        \"correct_proof_1_input_too_long\",\n        \"correct_proof_1_input_extra_long\",\n        \"null_inputs\",\n        \"zeros_inputs\",\n        \"zeros_inputs_correct_versioned_hash\",\n        \"correct_proof_1_incorrect_versioned_hash_version_0x00\",\n        \"correct_proof_1_incorrect_versioned_hash_version_0x02\",\n        \"correct_proof_1_incorrect_versioned_hash_version_0xff\",\n    ],\n)\n@pytest.mark.parametrize(\"result\", [Result.FAILURE])\n@pytest.mark.valid_from(\"Cancun\")\ndef test_invalid_inputs(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    tx: Transaction,\n    post: Dict,\n) -> None:\n    \"\"\"\n    Test invalid precompile calls.\n\n    - Out of bounds inputs `z` and `y`\n    - Correct proof, commitment, z and y, but incorrect lengths\n    - Null inputs\n    - Zero inputs\n    - Correct proof, commitment, z and y, but incorrect version versioned\n       hash\n    \"\"\"\n    state_test(\n        env=Environment(),\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\ndef kzg_point_evaluation_vector_from_dict(data: dict) -> Any:\n    \"\"\"Create a KZGPointEvaluation from a dictionary.\"\"\"\n    if \"input\" not in data:\n        raise ValueError(\"Missing 'input' key in data\")\n    if \"output\" not in data:\n        raise ValueError(\"Missing 'output' key in data\")\n    output = data[\"output\"]\n    if isinstance(output, bool):\n        result = Result.SUCCESS if output else Result.FAILURE\n    else:\n        result = Result.FAILURE\n    input_value = data[\"input\"]\n    if \"commitment\" not in input_value or not isinstance(input_value[\"commitment\"], str):\n        raise ValueError(\"Missing 'commitment' key in data['input']\")\n    commitment = bytes.fromhex(input_value[\"commitment\"][2:])\n    if \"proof\" not in input_value or not isinstance(input_value[\"proof\"], str):\n        raise ValueError(\"Missing 'proof' key in data['input']\")\n    proof = bytes.fromhex(input_value[\"proof\"][2:])\n    if \"z\" not in input_value or not isinstance(input_value[\"z\"], str):\n        raise ValueError(\"Missing 'z' key in data['input']\")\n    z = bytes.fromhex(input_value[\"z\"][2:])\n    if \"y\" not in input_value or not isinstance(input_value[\"y\"], str):\n        raise ValueError(\"Missing 'y' key in data['input']\")\n    y = bytes.fromhex(input_value[\"y\"][2:])\n\n    name = data[\"name\"] if \"name\" in data else \"\"\n    return pytest.param(\n        z,\n        y,\n        commitment,\n        proof,\n        result,\n        id=name,\n    )\n\n\ndef load_kzg_point_evaluation_test_vectors_from_file(\n    file_path: str,\n) -> List:\n    \"\"\"Load KZG Point Evaluations from a directory.\"\"\"\n    test_vectors = []\n\n    # Load the json file as a dictionary\n    with open(file_path, \"r\") as file:\n        data = json.load(file)\n        if not isinstance(data, list):\n            raise ValueError(\"Expected a list of point evaluations\")\n        for item in data:\n            if not isinstance(item, dict):\n                continue\n            test_vectors.append(kzg_point_evaluation_vector_from_dict(item))\n\n    return test_vectors\n\n\ndef current_python_script_directory() -> str:\n    \"\"\"Get the current Python script directory.\"\"\"\n    return os.path.dirname(os.path.realpath(__file__))\n\n\ndef get_point_evaluation_test_files_in_directory(path: str) -> list[str]:\n    \"\"\"Get the point evaluation files in a directory.\"\"\"\n    return glob.glob(os.path.join(path, \"*.json\"))\n\n\ndef all_external_vectors() -> List:\n    \"\"\"\n    Test for the Point Evaluation Precompile from external sources, contained\n    in ./point_evaluation_vectors/.\n    \"\"\"\n    test_cases = []\n\n    for test_file in get_point_evaluation_test_files_in_directory(\n        os.path.join(current_python_script_directory(), \"point_evaluation_vectors\")\n    ):\n        file_loaded_tests = load_kzg_point_evaluation_test_vectors_from_file(test_file)\n        assert len(file_loaded_tests) > 0\n        test_cases += file_loaded_tests\n\n    return test_cases\n\n\n@pytest.mark.parametrize(\n    \"z,y,kzg_commitment,kzg_proof,result\",\n    all_external_vectors(),\n)\n@pytest.mark.parametrize(\"versioned_hash\", [None])\n@pytest.mark.valid_from(\"Cancun\")\n@pytest.mark.slow()\ndef test_external_vectors(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    tx: Transaction,\n    post: Dict,\n) -> None:\n    \"\"\"\n    Test precompile calls using external test vectors compiled from different\n    sources.\n\n    - `go_kzg_4844_verify_kzg_proof.json`: test vectors from the\n    [go-kzg-4844](https://github.com/crate-crypto/go-kzg-4844) repository.\n    \"\"\"\n    state_test(\n        env=Environment(),\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\n@pytest.mark.parametrize(\n    \"call_gas,y,result\",\n    [\n        (Spec.POINT_EVALUATION_PRECOMPILE_GAS, 0, Result.SUCCESS),\n        (Spec.POINT_EVALUATION_PRECOMPILE_GAS, 1, Result.FAILURE),\n        (Spec.POINT_EVALUATION_PRECOMPILE_GAS - 1, 0, Result.OUT_OF_GAS),\n    ],\n    ids=[\"correct\", \"incorrect\", \"insufficient_gas\"],\n)\n@pytest.mark.with_all_call_opcodes\n@pytest.mark.parametrize(\n    \"z,kzg_commitment,kzg_proof,versioned_hash\",\n    [[Z, INF_POINT, INF_POINT, None]],\n    ids=[\"\"],\n)\n@pytest.mark.valid_from(\"Cancun\")\ndef test_call_opcode_types(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    tx: Transaction,\n    post: Dict,\n) -> None:\n    \"\"\"\n    Test calling the Point Evaluation Precompile with different call types, gas\n    and parameter configuration.\n\n    - Using CALL, DELEGATECALL, CALLCODE and STATICCALL.\n    - Using correct and incorrect proofs\n    - Using barely insufficient gas\n    \"\"\"\n    state_test(\n        env=Environment(),\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\n@pytest.mark.parametrize(\n    \"call_gas\",\n    [\n        (Spec.POINT_EVALUATION_PRECOMPILE_GAS),\n        (Spec.POINT_EVALUATION_PRECOMPILE_GAS + 1),\n        (Spec.POINT_EVALUATION_PRECOMPILE_GAS - 1),\n    ],\n    ids=[\"exact_gas\", \"extra_gas\", \"insufficient_gas\"],\n)\n@pytest.mark.parametrize(\n    \"z,y,kzg_commitment,kzg_proof,versioned_hash,proof_correct\",\n    [\n        [Z, 0, INF_POINT, INF_POINT, None, True],\n        [Z, 1, INF_POINT, INF_POINT, None, False],\n    ],\n    ids=[\"correct_proof\", \"incorrect_proof\"],\n)\n@pytest.mark.valid_from(\"Cancun\")\ndef test_tx_entry_point(\n    fork: Fork,\n    state_test: StateTestFiller,\n    precompile_input: bytes,\n    call_gas: int,\n    pre: Alloc,\n    proof_correct: bool,\n) -> None:\n    \"\"\"\n    Test calling the Point Evaluation Precompile directly as transaction entry\n    point, and measure the gas consumption.\n\n    - Using `gas_limit` with exact necessary gas, insufficient gas and extra\n        gas.\n    - Using correct and incorrect proofs\n    \"\"\"\n    sender = pre.fund_eoa()\n\n    # Starting from EIP-7623, we need to use an access list to raise the\n    # intrinsic gas cost to be above the floor data cost.\n    access_list = [AccessList(address=Address(i), storage_keys=[]) for i in range(1, 10)]\n\n    # Gas is appended the intrinsic gas cost of the transaction\n    tx_intrinsic_gas_cost_calculator = fork.transaction_intrinsic_cost_calculator()\n    intrinsic_gas_cost = tx_intrinsic_gas_cost_calculator(\n        calldata=precompile_input, access_list=access_list\n    )\n\n    # Consumed gas will only be the precompile gas if the proof is correct and\n    # the call gas is sufficient.\n    # Otherwise, the call gas will be consumed in full.\n    consumed_gas = (\n        Spec.POINT_EVALUATION_PRECOMPILE_GAS\n        if call_gas >= Spec.POINT_EVALUATION_PRECOMPILE_GAS and proof_correct\n        else call_gas\n    ) + tx_intrinsic_gas_cost_calculator(\n        calldata=precompile_input,\n        access_list=access_list,\n        return_cost_deducted_prior_execution=True,\n    )\n\n    tx = Transaction(\n        sender=sender,\n        data=precompile_input,\n        access_list=access_list,\n        to=Address(Spec.POINT_EVALUATION_PRECOMPILE_ADDRESS),\n        gas_limit=call_gas + intrinsic_gas_cost,\n        expected_receipt=TransactionReceipt(gas_used=consumed_gas),\n    )\n\n    post = {\n        sender: Account(\n            nonce=1,\n        )\n    }\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\n@pytest.mark.parametrize(\n    \"z,y,kzg_commitment,kzg_proof,versioned_hash\",\n    [[Z, 0, INF_POINT, INF_POINT, None]],\n    ids=[\"correct_proof\"],\n)\n@pytest.mark.parametrize(\"precompile_caller_storage\", [{}], ids=[\"\"])\n@pytest.mark.parametrize(\"precompile_caller_balance\", [1], ids=[\"\"])\n@pytest.mark.parametrize(\n    \"precompile_caller_code\",\n    [\n        Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE)\n        + Op.SSTORE(\n            Op.NUMBER,\n            Op.CALL(\n                address=Spec.POINT_EVALUATION_PRECOMPILE_ADDRESS,\n                value=1,\n                args_size=Op.CALLDATASIZE,\n            ),\n        )\n    ],\n    ids=[\"\"],\n)\n@pytest.mark.valid_at_transition_to(\"Cancun\")\ndef test_precompile_before_fork(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    tx: Transaction,\n    precompile_caller_address: Address,\n) -> None:\n    \"\"\"\n    Test calling the Point Evaluation Precompile before the appropriate fork.\n    \"\"\"\n    post = {\n        precompile_caller_address: Account(\n            storage={1: 1},\n            # The call succeeds because precompile is not there yet\n        ),\n        Address(Spec.POINT_EVALUATION_PRECOMPILE_ADDRESS): Account(\n            balance=1,\n        ),\n    }\n\n    state_test(\n        pre=pre,\n        env=Environment(timestamp=7_500),\n        post=post,\n        tx=tx,\n    )\n\n\nFORK_TIMESTAMP = 15_000\nPRE_FORK_BLOCK_RANGE = range(999, FORK_TIMESTAMP, 1_000)\n\n\n@pytest.mark.parametrize(\n    \"z,y,kzg_commitment,kzg_proof,versioned_hash\",\n    [[Z, 0, INF_POINT, INF_POINT, None]],\n    ids=[\"correct_proof\"],\n)\n@pytest.mark.parametrize(\"precompile_caller_storage\", [{}], ids=[\"\"])\n@pytest.mark.parametrize(\"precompile_caller_balance\", [len(PRE_FORK_BLOCK_RANGE)], ids=[\"\"])\n@pytest.mark.parametrize(\n    \"precompile_caller_code\",\n    [\n        Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE)\n        + Op.SSTORE(\n            Op.NUMBER,\n            Op.CALL(\n                address=Spec.POINT_EVALUATION_PRECOMPILE_ADDRESS,\n                value=1,\n                args_size=Op.CALLDATASIZE,\n            ),\n        )\n    ],\n    ids=[\"\"],\n)\n@pytest.mark.valid_at_transition_to(\"Cancun\")\ndef test_precompile_during_fork(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    precompile_caller_address: Address,\n    precompile_input: bytes,\n    sender: EOA,\n) -> None:\n    \"\"\"\n    Test calling the Point Evaluation Precompile during the appropriate fork.\n    \"\"\"\n    # Blocks before fork\n    blocks = [\n        Block(\n            timestamp=t,\n            txs=[\n                Transaction(\n                    sender=sender,\n                    data=precompile_input,\n                    to=precompile_caller_address,\n                    gas_limit=Spec.POINT_EVALUATION_PRECOMPILE_GAS * 100,\n                )\n            ],\n        )\n        for t in PRE_FORK_BLOCK_RANGE\n    ]\n    # Block after fork\n    blocks += [\n        Block(\n            timestamp=FORK_TIMESTAMP,\n            txs=[\n                Transaction(\n                    sender=sender,\n                    data=precompile_input,\n                    to=precompile_caller_address,\n                    gas_limit=Spec.POINT_EVALUATION_PRECOMPILE_GAS * 100,\n                )\n            ],\n        )\n    ]\n\n    post = {\n        precompile_caller_address: Account(\n            storage=dict.fromkeys(range(1, len(PRE_FORK_BLOCK_RANGE) + 1), 1),\n            # Only the call in the last block's tx fails; storage 0 by default.\n        ),\n        Address(Spec.POINT_EVALUATION_PRECOMPILE_ADDRESS): Account(\n            balance=len(PRE_FORK_BLOCK_RANGE),\n        ),\n    }\n\n    blockchain_test(\n        pre=pre,\n        post=post,\n        blocks=blocks,\n    )\n"
  },
  {
    "path": "tests/cancun/eip4844_blobs/test_point_evaluation_precompile_gas.py",
    "content": "\"\"\"\nTests gas usage on point evaluation precompile for EIP-4844.\n\nTests gas usage on point evaluation precompile for\n[EIP-4844: Shard Blob Transactions](https://eips.ethereum.org/EIPS/eip-4844).\n\"\"\"\n\nfrom typing import Dict, Literal\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    Account,\n    Address,\n    Alloc,\n    Bytecode,\n    CodeGasMeasure,\n    Environment,\n    StateTestFiller,\n    Transaction,\n    ceiling_division,\n)\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .common import INF_POINT, Z\nfrom .spec import Spec, ref_spec_4844\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_4844.git_path\nREFERENCE_SPEC_VERSION = ref_spec_4844.version\n\n\n@pytest.fixture\ndef precompile_input(proof: Literal[\"correct\", \"incorrect\"]) -> bytes:\n    \"\"\"Format depending on whether we want a correct proof or not.\"\"\"\n    kzg_commitment = INF_POINT\n    kzg_proof = INF_POINT\n    z = Z\n    # INF_POINT commitment and proof evaluate to 0 on all z values\n    y = 0 if proof == \"correct\" else 1\n\n    versioned_hash = Spec.kzg_to_versioned_hash(kzg_commitment)\n    return (\n        versioned_hash\n        + z.to_bytes(32, \"little\")\n        + y.to_bytes(32, \"little\")\n        + kzg_commitment\n        + kzg_proof\n    )\n\n\n@pytest.fixture\ndef call_type() -> Op:\n    \"\"\"\n    Type of call to use to call the precompile.\n\n    Defaults to Op.CALL, but can be parametrized to use other opcode types.\n    \"\"\"\n    return Op.CALL\n\n\n@pytest.fixture\ndef call_gas() -> int:\n    \"\"\"\n    Amount of gas to pass to the precompile.\n\n    Defaults to POINT_EVALUATION_PRECOMPILE_GAS, but can be parametrized to\n    test different amounts.\n    \"\"\"\n    return Spec.POINT_EVALUATION_PRECOMPILE_GAS\n\n\ndef copy_opcode_cost(fork: Fork, length: int) -> int:\n    \"\"\"\n    Calculate the cost of the COPY opcodes, assuming memory expansion from\n    empty memory, based on the costs specified in the yellow paper.\n    https://ethereum.github.io/yellowpaper/paper.pdf.\n    \"\"\"\n    cost_memory_bytes = fork.memory_expansion_gas_calculator()\n    return (\n        3\n        + (ceiling_division(length, 32) * 3)\n        + cost_memory_bytes(new_bytes=length, previous_bytes=0)\n    )\n\n\n@pytest.fixture\ndef precompile_caller_code(\n    fork: Fork,\n    call_type: Op,\n    call_gas: int,\n    precompile_input: bytes,\n) -> Bytecode:\n    \"\"\"Code to call the point evaluation precompile and evaluate gas usage.\"\"\"\n    calldatasize_cost = 2\n    push_operations_cost = 3\n    warm_storage_read_cost = 100\n\n    precompile_caller_code = Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE)\n    overhead_cost = (\n        warm_storage_read_cost\n        + (calldatasize_cost * 1)\n        + (push_operations_cost * 2)\n        + copy_opcode_cost(fork, len(precompile_input))\n    )\n    if call_type == Op.CALL or call_type == Op.CALLCODE:\n        # https://github.com/ethereum/execution-spec-tests/issues/348\n        precompile_caller_code += call_type(\n            call_gas,\n            Spec.POINT_EVALUATION_PRECOMPILE_ADDRESS,\n            0x00,\n            0x00,\n            Op.CALLDATASIZE,\n            0x00,\n            0x00,\n        )\n        overhead_cost += (push_operations_cost * 6) + (calldatasize_cost * 1)\n    elif call_type == Op.DELEGATECALL or call_type == Op.STATICCALL:\n        # Delegatecall and staticcall use one less argument\n        # https://github.com/ethereum/execution-spec-tests/issues/348\n        precompile_caller_code += call_type(\n            call_gas,\n            Spec.POINT_EVALUATION_PRECOMPILE_ADDRESS,\n            0x00,\n            Op.CALLDATASIZE,\n            0x00,\n            0x00,\n        )\n        overhead_cost += (push_operations_cost * 5) + (calldatasize_cost * 1)\n\n    gas_measure_code = CodeGasMeasure(\n        code=precompile_caller_code,\n        overhead_cost=overhead_cost,\n        extra_stack_items=1,\n    )\n\n    return gas_measure_code\n\n\n@pytest.fixture\ndef precompile_caller_address(pre: Alloc, precompile_caller_code: Bytecode) -> Address:\n    \"\"\"Address of the precompile caller account.\"\"\"\n    return pre.deploy_contract(precompile_caller_code)\n\n\n@pytest.fixture\ndef tx(\n    pre: Alloc,\n    precompile_caller_address: Address,\n    precompile_input: bytes,\n) -> Transaction:\n    \"\"\"Prepare transaction used to call the precompile caller account.\"\"\"\n    return Transaction(\n        sender=pre.fund_eoa(),\n        data=precompile_input,\n        to=precompile_caller_address,\n        value=0,\n        gas_limit=Spec.POINT_EVALUATION_PRECOMPILE_GAS * 20,\n    )\n\n\n@pytest.fixture\ndef post(\n    precompile_caller_address: Address,\n    proof: Literal[\"correct\", \"incorrect\"],\n    call_gas: int,\n) -> Dict:\n    \"\"\"\n    Prepare expected post for each test, depending on the success or failure of\n    the precompile call and the gas usage.\n    \"\"\"\n    if proof == \"correct\":\n        expected_gas_usage = (\n            call_gas\n            if call_gas < Spec.POINT_EVALUATION_PRECOMPILE_GAS\n            else Spec.POINT_EVALUATION_PRECOMPILE_GAS\n        )\n    else:\n        expected_gas_usage = call_gas\n    return {\n        precompile_caller_address: Account(\n            storage={\n                0: expected_gas_usage,\n            },\n        ),\n    }\n\n\n@pytest.mark.parametrize(\n    \"call_type\",\n    [Op.CALL, Op.DELEGATECALL, Op.CALLCODE, Op.STATICCALL],\n)\n@pytest.mark.parametrize(\n    \"call_gas\",\n    [\n        Spec.POINT_EVALUATION_PRECOMPILE_GAS,\n        Spec.POINT_EVALUATION_PRECOMPILE_GAS - 1,\n        Spec.POINT_EVALUATION_PRECOMPILE_GAS + 1,\n    ],\n    ids=[\"exact_gas\", \"insufficient_gas\", \"extra_gas\"],\n)\n@pytest.mark.parametrize(\"proof\", [\"correct\", \"incorrect\"])\n@pytest.mark.valid_from(\"Cancun\")\ndef test_point_evaluation_precompile_gas_usage(\n    state_test: StateTestFiller,\n    pre: Dict,\n    tx: Transaction,\n    post: Dict,\n) -> None:\n    \"\"\"\n    Test point evaluation precompile gas usage under different call contexts\n    and gas limits.\n\n    - Test using all call types (CALL, DELEGATECALL, CALLCODE, STATICCALL) -\n    Test using different gas limits (exact gas, insufficient gas, extra gas) -\n    Test using correct and incorrect proofs\n    \"\"\"\n    state_test(\n        env=Environment(),\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n"
  },
  {
    "path": "tests/cancun/eip5656_mcopy/__init__.py",
    "content": "\"\"\"Cross-client EIP-5656 Tests.\"\"\"\n"
  },
  {
    "path": "tests/cancun/eip5656_mcopy/common.py",
    "content": "\"\"\"\nCommon procedures to test [EIP-5656: MCOPY - Memory copying\ninstruction](https://eips.ethereum.org/EIPS/eip-5656).\n\"\"\"\n\nfrom copy import copy\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-5656.md\"\nREFERENCE_SPEC_VERSION = \"d0cd8902e2243b66e2b9a858b691bc106cebddfc\"\n\n\ndef mcopy(*, src: int, dest: int, length: int, memory: bytes) -> bytes:\n    \"\"\"Perform the mcopy routine as the EVM would do it.\"\"\"\n    if length == 0:\n        return memory\n\n    res = bytearray(copy(memory))\n\n    # If the destination or source are larger than the memory, we need to\n    # extend the memory\n    max_byte_index = max(src, dest) + length\n    if max_byte_index > len(memory):\n        res.extend(b\"\\x00\" * (max_byte_index - len(memory)))\n\n    for i in range(length):\n        if (src + i) >= len(memory):\n            src_b = 0\n        else:\n            src_b = memory[src + i]\n\n        res[dest + i] = src_b\n    return bytes(res)\n"
  },
  {
    "path": "tests/cancun/eip5656_mcopy/test_mcopy.py",
    "content": "\"\"\"\nTests [EIP-5656: MCOPY - Memory copying instruction](https://eips.ethereum.org/EIPS/eip-5656).\n\"\"\"\n\nfrom typing import Mapping\n\nimport pytest\n\nfrom ethereum_test_tools import (\n    Account,\n    Address,\n    Alloc,\n    Bytecode,\n    Environment,\n    Hash,\n    StateTestFiller,\n    Storage,\n    Transaction,\n    ceiling_division,\n    keccak256,\n)\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom .common import REFERENCE_SPEC_GIT_PATH, REFERENCE_SPEC_VERSION, mcopy\n\nREFERENCE_SPEC_GIT_PATH = REFERENCE_SPEC_GIT_PATH\nREFERENCE_SPEC_VERSION = REFERENCE_SPEC_VERSION\n\n\n@pytest.fixture\ndef initial_memory() -> bytes:\n    \"\"\"Init memory for the test.\"\"\"\n    return bytes(range(0x00, 0x100))\n\n\n@pytest.fixture\ndef final_memory(*, dest: int, src: int, length: int, initial_memory: bytes) -> bytes:\n    \"\"\"Memory after the MCOPY operation.\"\"\"\n    return mcopy(dest=dest, src=src, length=length, memory=initial_memory)\n\n\n@pytest.fixture\ndef code_storage() -> Storage:\n    \"\"\"Storage for the code contract.\"\"\"\n    return Storage()\n\n\n@pytest.fixture\ndef code_bytecode(\n    initial_memory: bytes,\n    final_memory: bytes,\n    code_storage: Storage,\n) -> Bytecode:\n    \"\"\"\n    Prepare bytecode and storage for the test, based on the starting memory and\n    the final memory that resulted from the copy.\n    \"\"\"\n    bytecode = Bytecode()\n\n    # Fill memory with initial values\n    for i in range(0, len(initial_memory), 0x20):\n        bytecode += Op.MSTORE(i, Op.PUSH32(initial_memory[i : i + 0x20]))\n\n    # Perform the MCOPY according to calldata values\n    bytecode += Op.MCOPY(\n        Op.CALLDATALOAD(0x00),\n        Op.CALLDATALOAD(0x20),\n        Op.CALLDATALOAD(0x40),\n    )\n\n    final_byte_length = ceiling_division(len(final_memory), 0x20) * 0x20\n    # First save msize\n    bytecode += Op.SSTORE(\n        code_storage.store_next(final_byte_length),\n        Op.MSIZE,\n    )\n\n    # Then save the hash of the entire memory\n    bytecode += Op.SSTORE(\n        code_storage.store_next(keccak256(final_memory.ljust(final_byte_length, b\"\\x00\"))),\n        Op.SHA3(0, Op.MSIZE),\n    )\n\n    # Store all memory in the initial range to verify the MCOPY\n    for w in range(0, len(initial_memory) // 0x20):\n        bytecode += Op.SSTORE(\n            code_storage.store_next(final_memory[w * 0x20 : w * 0x20 + 0x20]),\n            Op.MLOAD(w * 0x20),\n        )\n\n    # If the memory was extended beyond the initial range, store the last word\n    # of the resulting memory into storage too\n    if len(final_memory) > len(initial_memory):\n        last_word = ceiling_division(len(final_memory), 0x20) - 1\n        bytecode += Op.SSTORE(\n            code_storage.store_next(\n                final_memory[last_word * 0x20 : (last_word + 1) * 0x20].ljust(32, b\"\\x00\")\n            ),\n            Op.MLOAD(last_word * 0x20),\n        )\n\n    return bytecode\n\n\n@pytest.fixture\ndef code_address(pre: Alloc, code_bytecode: Bytecode) -> Address:\n    \"\"\"Address of the contract that is going to perform the MCOPY operation.\"\"\"\n    return pre.deploy_contract(code_bytecode)\n\n\n@pytest.fixture\ndef tx(  # noqa: D103\n    pre: Alloc, code_address: Address, dest: int, src: int, length: int\n) -> Transaction:\n    return Transaction(\n        sender=pre.fund_eoa(),\n        to=code_address,\n        data=Hash(dest) + Hash(src) + Hash(length),\n        gas_limit=1_000_000,\n    )\n\n\n@pytest.fixture\ndef post(code_address: Address, code_storage: Storage) -> Mapping:  # noqa: D103\n    return {\n        code_address: Account(storage=code_storage),\n    }\n\n\n@pytest.mark.parametrize(\n    \"dest,src,length\",\n    [\n        (0x00, 0x00, 0x00),\n        (2**256 - 1, 0x00, 0x00),\n        (0x00, 0x00, 0x01),\n        (0x00, 0x00, 0x20),\n        (0x01, 0x00, 0x01),\n        (0x01, 0x00, 0x20),\n        (0x11, 0x11, 0x01),\n        (0x11, 0x11, 0x20),\n        (0x11, 0x11, 0x40),\n        (0x10, 0x00, 0x40),\n        (0x00, 0x10, 0x40),\n        (0x0F, 0x10, 0x40),\n        (0x100, 0x01, 0x01),\n        (0x100, 0x01, 0x20),\n        (0x100, 0x01, 0x1F),\n        (0x100, 0x01, 0x21),\n        (0x00, 0x00, 0x100),\n        (0x100, 0x00, 0x100),\n        (0x200, 0x00, 0x100),\n        (0x00, 0x100, 0x100),\n        (0x100, 0x100, 0x01),\n    ],\n    ids=[\n        \"zero_inputs\",\n        \"zero_length_out_of_bounds_destination\",\n        \"single_byte_rewrite\",\n        \"full_word_rewrite\",\n        \"single_byte_forward_overwrite\",\n        \"full_word_forward_overwrite\",\n        \"mid_word_single_byte_rewrite\",\n        \"mid_word_single_word_rewrite\",\n        \"mid_word_multi_word_rewrite\",\n        \"two_words_forward_overwrite\",\n        \"two_words_backward_overwrite\",\n        \"two_words_backward_overwrite_single_byte_offset\",\n        \"single_byte_memory_extension\",\n        \"single_word_memory_extension\",\n        \"single_word_minus_one_byte_memory_extension\",\n        \"single_word_plus_one_byte_memory_extension\",\n        \"full_memory_rewrite\",\n        \"full_memory_copy\",\n        \"full_memory_copy_offset\",\n        \"full_memory_clean\",\n        \"out_of_bounds_memory_extension\",\n    ],\n)\n@pytest.mark.with_all_evm_code_types\n@pytest.mark.valid_from(\"Cancun\")\ndef test_valid_mcopy_operations(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    post: Mapping[str, Account],\n    tx: Transaction,\n) -> None:\n    \"\"\"\n    Perform MCOPY operations using different offsets and lengths.\n\n      - Zero inputs\n      - Memory rewrites (copy from and to the same location)\n      - Memory overwrites (copy from and to different locations)\n      - Memory extensions (copy to a location that is out of bounds)\n      - Memory clear (copy from a location that is out of bounds).\n    \"\"\"\n    state_test(\n        env=Environment(),\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\n@pytest.mark.parametrize(\"dest\", [0x00, 0x20])\n@pytest.mark.parametrize(\"src\", [0x00, 0x20])\n@pytest.mark.parametrize(\"length\", [0x00, 0x01])\n@pytest.mark.parametrize(\"initial_memory\", [bytes()], ids=[\"empty_memory\"])\n@pytest.mark.with_all_evm_code_types\n@pytest.mark.valid_from(\"Cancun\")\ndef test_mcopy_on_empty_memory(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    post: Mapping[str, Account],\n    tx: Transaction,\n) -> None:\n    \"\"\"\n    Perform MCOPY operations on an empty memory, using different offsets and\n    lengths.\n    \"\"\"\n    state_test(\n        env=Environment(),\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n"
  },
  {
    "path": "tests/cancun/eip5656_mcopy/test_mcopy_contexts.py",
    "content": "\"\"\"\nTest memory copy under different call contexts.\n\nTests for [EIP-5656: MCOPY - Memory copying instruction](https://eips.ethereum.org/EIPS/eip-5656).\n\"\"\"\n\nfrom itertools import cycle, islice\nfrom typing import Mapping\n\nimport pytest\n\nfrom ethereum_test_tools import (\n    Account,\n    Address,\n    Alloc,\n    Bytecode,\n    Environment,\n    StateTestFiller,\n    Storage,\n    Transaction,\n    ceiling_division,\n)\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom .common import REFERENCE_SPEC_GIT_PATH, REFERENCE_SPEC_VERSION\n\nREFERENCE_SPEC_GIT_PATH = REFERENCE_SPEC_GIT_PATH\nREFERENCE_SPEC_VERSION = REFERENCE_SPEC_VERSION\n\n\n@pytest.fixture\ndef initial_memory_length() -> int:  # noqa: D103\n    return 0x400\n\n\n@pytest.fixture\ndef callee_bytecode(\n    initial_memory_length: int,\n    call_opcode: Op,\n) -> Bytecode:\n    \"\"\"\n    Callee simply performs mcopy operations that should not have any effect on\n    the caller context.\n    \"\"\"\n    bytecode = Bytecode()\n\n    # Perform some copy operations\n    bytecode += Op.MCOPY(0x00, 0x01, 0x01)\n    bytecode += Op.MCOPY(0x01, 0x00, 0x01)\n    bytecode += Op.MCOPY(0x01, 0x00, 0x20)\n    # And a potential memory cleanup\n    bytecode += Op.MCOPY(0x00, initial_memory_length, initial_memory_length)\n    # Also try to expand the memory\n    bytecode += Op.MCOPY(0x00, initial_memory_length * 2, 1)\n    bytecode += Op.MCOPY(initial_memory_length * 2, 0x00, 1)\n\n    if call_opcode != Op.STATICCALL and call_opcode != Op.EXTSTATICCALL:\n        # Simple sstore to make sure we actually ran the code\n        bytecode += Op.SSTORE(200_000, 1)\n\n    # In case of initcode, return empty code\n    bytecode += Op.RETURN(0x00, 0x00)\n\n    return bytecode\n\n\n@pytest.fixture\ndef initial_memory(\n    callee_bytecode: Bytecode,\n    initial_memory_length: int,\n    call_opcode: Op,\n) -> bytes:\n    \"\"\"Init memory for the test.\"\"\"\n    assert len(callee_bytecode) <= initial_memory_length\n\n    ret = bytes(list(islice(cycle(range(0x01, 0x100)), initial_memory_length)))\n\n    if call_opcode in [Op.CREATE, Op.CREATE2]:\n        # We also need to put the callee_bytecode as initcode in memory for\n        # create operations\n        ret = bytes(callee_bytecode) + ret[len(callee_bytecode) :]\n\n    assert len(ret) == initial_memory_length\n    return ret\n\n\n@pytest.fixture\ndef caller_storage() -> Storage:  # noqa: D103\n    return Storage()\n\n\n@pytest.fixture\ndef caller_bytecode(\n    initial_memory: bytes,\n    callee_address: Address,\n    callee_bytecode: Bytecode,\n    call_opcode: Op,\n    caller_storage: Storage,\n) -> Bytecode:\n    \"\"\"\n    Prepare bytecode and storage for the test, based on the starting memory and\n    the final memory that resulted from the copy.\n    \"\"\"\n    bytecode = Bytecode()\n\n    # Fill memory with initial values\n    for i in range(0, len(initial_memory), 0x20):\n        bytecode += Op.MSTORE(i, Op.PUSH32(initial_memory[i : i + 0x20]))\n\n    # Perform the call to the contract that is going to perform mcopy\n    if call_opcode in [Op.CREATE, Op.CREATE2]:\n        bytecode += call_opcode(size=len(callee_bytecode))\n    else:\n        bytecode += call_opcode(address=callee_address)\n\n    # First save msize\n    bytecode += Op.SSTORE(100_000, Op.MSIZE())\n    caller_storage[100_000] = ceiling_division(len(initial_memory), 0x20) * 0x20\n\n    # Store all memory in the initial range to verify the MCOPY in the subcall\n    # did not affect this level's memory\n    for w in range(0, len(initial_memory) // 0x20):\n        bytecode += Op.SSTORE(w, Op.MLOAD(w * 0x20))\n        caller_storage[w] = initial_memory[w * 0x20 : w * 0x20 + 0x20]\n\n    return bytecode\n\n\n@pytest.fixture\ndef caller_address(pre: Alloc, caller_bytecode: Bytecode) -> Address:  # noqa: D103\n    return pre.deploy_contract(caller_bytecode)\n\n\n@pytest.fixture\ndef callee_address(pre: Alloc, callee_bytecode: Bytecode) -> Address:  # noqa: D103\n    return pre.deploy_contract(callee_bytecode)\n\n\n@pytest.fixture\ndef tx(pre: Alloc, caller_address: Address) -> Transaction:  # noqa: D103\n    return Transaction(\n        sender=pre.fund_eoa(),\n        to=caller_address,\n        gas_limit=1_000_000,\n    )\n\n\n@pytest.fixture\ndef post(  # noqa: D103\n    caller_address: Address,\n    caller_storage: Storage,\n    callee_address: Address,\n    call_opcode: Op,\n) -> Mapping:\n    callee_storage: Storage.StorageDictType = {}\n    if call_opcode in [Op.DELEGATECALL, Op.CALLCODE, Op.EXTDELEGATECALL]:\n        caller_storage[200_000] = 1\n    elif call_opcode in [Op.CALL, Op.EXTCALL]:\n        callee_storage[200_000] = 1\n    return {\n        caller_address: Account(storage=caller_storage),\n        callee_address: Account(storage=callee_storage),\n    }\n\n\n@pytest.mark.with_all_call_opcodes\n@pytest.mark.valid_from(\"Cancun\")\ndef test_no_memory_corruption_on_upper_call_stack_levels(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    post: Mapping[str, Account],\n    tx: Transaction,\n) -> None:\n    \"\"\"\n    Perform a subcall with any of the following opcodes, which uses MCOPY\n    during its execution, and verify that the caller's memory is unaffected.\n    \"\"\"\n    state_test(\n        env=Environment(),\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\n@pytest.mark.parametrize(\n    \"call_opcode\",\n    [\n        Op.CREATE,\n        Op.CREATE2,\n    ],\n)\n@pytest.mark.valid_from(\"Cancun\")\ndef test_no_memory_corruption_on_upper_create_stack_levels(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    post: Mapping[str, Account],\n    tx: Transaction,\n) -> None:\n    \"\"\"\n    Perform a subcall with any of the following opcodes, which uses MCOPY\n    during its execution, and verify that the caller's memory is unaffected:\n      - `CREATE`\n      - `CREATE2`.\n\n    TODO: [EOF] Add EOFCREATE opcode\n    \"\"\"\n    state_test(\n        env=Environment(),\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n"
  },
  {
    "path": "tests/cancun/eip5656_mcopy/test_mcopy_memory_expansion.py",
    "content": "\"\"\"\nTest MCOPY with memory expansion and potential OOG errors.\n\nTest copy operations of [EIP-5656: MCOPY - Memory copying\ninstruction](https://eips.ethereum.org/EIPS/eip-5656) that produce\na memory expansion, and potentially an out-of-gas error.\n\"\"\"\n\nimport itertools\nfrom typing import List, Mapping\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    AccessList,\n    Account,\n    Address,\n    Alloc,\n    Bytecode,\n    Environment,\n    StateTestFiller,\n    Transaction,\n    TransactionReceipt,\n)\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom .common import REFERENCE_SPEC_GIT_PATH, REFERENCE_SPEC_VERSION\n\nREFERENCE_SPEC_GIT_PATH = REFERENCE_SPEC_GIT_PATH\nREFERENCE_SPEC_VERSION = REFERENCE_SPEC_VERSION\n\n\"\"\"Storage addresses for common testing fields\"\"\"\n_slot = itertools.count(1)\nslot_code_worked = next(_slot)\nslot_last_slot = next(_slot)\n\n\"\"\"Storage values for common testing fields\"\"\"\nvalue_code_worked = 0x2015\n\n\n@pytest.fixture\ndef callee_bytecode(dest: int, src: int, length: int) -> Bytecode:\n    \"\"\"Callee performs a single mcopy operation and then returns.\"\"\"\n    bytecode = Bytecode()\n\n    # Copy the initial memory\n    bytecode += Op.CALLDATACOPY(0x00, 0x00, Op.CALLDATASIZE())\n\n    # Pushes for the return operation\n    bytecode += Op.PUSH1(0x00) + Op.PUSH1(0x00)\n\n    bytecode += Op.SSTORE(slot_code_worked, value_code_worked)\n\n    # Perform the mcopy operation\n    bytecode += Op.MCOPY(dest, src, length)\n\n    bytecode += Op.RETURN\n\n    return bytecode\n\n\n@pytest.fixture\ndef tx_access_list() -> List[AccessList]:\n    \"\"\"Access list for the transaction.\"\"\"\n    return [AccessList(address=Address(i), storage_keys=[]) for i in range(1, 10)]\n\n\n@pytest.fixture\ndef call_exact_cost(\n    fork: Fork,\n    initial_memory: bytes,\n    dest: int,\n    length: int,\n    tx_access_list: List[AccessList],\n) -> int:\n    \"\"\"\n    Return the exact cost of the subcall, based on the initial memory and the\n    length of the copy.\n    \"\"\"\n    # Starting from EIP-7623, we need to use an access list to raise the\n    # intrinsic gas cost to be above the floor data cost.\n    cost_memory_bytes = fork.memory_expansion_gas_calculator()\n    gas_costs = fork.gas_costs()\n    tx_intrinsic_gas_cost_calculator = fork.transaction_intrinsic_cost_calculator()\n\n    mcopy_cost = 3\n    mcopy_cost += 3 * ((length + 31) // 32)\n    if length > 0 and dest + length > len(initial_memory):\n        mcopy_cost += cost_memory_bytes(\n            new_bytes=dest + length, previous_bytes=len(initial_memory)\n        )\n\n    calldatacopy_cost = 3\n    calldatacopy_cost += 3 * ((len(initial_memory) + 31) // 32)\n    calldatacopy_cost += cost_memory_bytes(new_bytes=len(initial_memory))\n\n    pushes_cost = gas_costs.G_VERY_LOW * 9\n    calldatasize_cost = gas_costs.G_BASE\n\n    sstore_cost = 22100\n    return (\n        tx_intrinsic_gas_cost_calculator(calldata=initial_memory, access_list=tx_access_list)\n        + mcopy_cost\n        + calldatacopy_cost\n        + pushes_cost\n        + calldatasize_cost\n        + sstore_cost\n    )\n\n\n@pytest.fixture\ndef block_gas_limit() -> int:  # noqa: D103\n    return 100_000_000\n\n\n@pytest.fixture\ndef tx_gas_limit(  # noqa: D103\n    fork: Fork,\n    call_exact_cost: int,\n    block_gas_limit: int,\n    successful: bool,\n) -> int:\n    return min(\n        call_exact_cost - (0 if successful else 1),\n        # If the transaction gas limit cap is not set (pre-osaka),\n        # use the block gas limit\n        fork.transaction_gas_limit_cap() or block_gas_limit,\n    )\n\n\n@pytest.fixture\ndef env(  # noqa: D103\n    block_gas_limit: int,\n) -> Environment:\n    return Environment(gas_limit=block_gas_limit)\n\n\n@pytest.fixture\ndef caller_address(pre: Alloc, callee_bytecode: bytes) -> Address:  # noqa: D103\n    return pre.deploy_contract(code=callee_bytecode)\n\n\n@pytest.fixture\ndef tx(  # noqa: D103\n    sender: Address,\n    caller_address: Address,\n    initial_memory: bytes,\n    tx_gas_limit: int,\n    tx_access_list: List[AccessList],\n) -> Transaction:\n    return Transaction(\n        sender=sender,\n        to=caller_address,\n        access_list=tx_access_list,\n        data=initial_memory,\n        gas_limit=tx_gas_limit,\n        expected_receipt=TransactionReceipt(gas_used=tx_gas_limit),\n    )\n\n\n@pytest.fixture\ndef post(  # noqa: D103\n    caller_address: Address,\n    successful: bool,\n) -> Mapping:\n    return {\n        caller_address: Account(\n            storage={slot_code_worked: value_code_worked} if successful else {}\n        )\n    }\n\n\n@pytest.mark.parametrize(\n    \"dest,src,length\",\n    [\n        (0x00, 0x00, 0x01),\n        (0x100, 0x00, 0x01),\n        (0x1F, 0x00, 0x01),\n        (0x20, 0x00, 0x01),\n        (0x1000, 0x00, 0x01),\n        (0x1000, 0x00, 0x40),\n        (0x00, 0x00, 0x00),\n        (2**256 - 1, 0x00, 0x00),\n        (0x00, 2**256 - 1, 0x00),\n        (2**256 - 1, 2**256 - 1, 0x00),\n    ],\n    ids=[\n        \"single_byte_expansion\",\n        \"single_byte_expansion_2\",\n        \"single_byte_expansion_word_boundary\",\n        \"single_byte_expansion_word_boundary_2\",\n        \"multi_word_expansion\",\n        \"multi_word_expansion_2\",\n        \"zero_length_expansion\",\n        \"huge_dest_zero_length\",\n        \"huge_src_zero_length\",\n        \"huge_dest_huge_src_zero_length\",\n    ],\n)\n@pytest.mark.parametrize(\"successful\", [True, False])\n@pytest.mark.parametrize(\n    \"initial_memory\",\n    [\n        bytes(range(0x00, 0x100)),\n        bytes(),\n    ],\n    ids=[\n        \"from_existent_memory\",\n        \"from_empty_memory\",\n    ],\n)\n@pytest.mark.with_all_evm_code_types\n@pytest.mark.valid_from(\"Cancun\")\ndef test_mcopy_memory_expansion(\n    state_test: StateTestFiller,\n    env: Environment,\n    pre: Alloc,\n    post: Mapping[str, Account],\n    tx: Transaction,\n) -> None:\n    \"\"\"\n    Perform MCOPY operations that expand the memory, and verify the gas it\n    costs to do so.\n    \"\"\"\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\n@pytest.mark.parametrize(\n    \"dest,src,length\",\n    [\n        (2**256 - 1, 0x00, 0x01),\n        (2**256 - 2, 0x00, 0x01),\n        (2**255 - 1, 0x00, 0x01),\n        (0x00, 2**256 - 1, 0x01),\n        (0x00, 2**256 - 2, 0x01),\n        (0x00, 2**255 - 1, 0x01),\n        (0x00, 0x00, 2**256 - 1),\n        (0x00, 0x00, 2**256 - 2),\n        (0x00, 0x00, 2**255 - 1),\n    ],\n    ids=[\n        \"max_dest_single_byte_expansion\",\n        \"max_dest_minus_one_single_byte_expansion\",\n        \"half_max_dest_single_byte_expansion\",\n        \"max_src_single_byte_expansion\",\n        \"max_src_minus_one_single_byte_expansion\",\n        \"half_max_src_single_byte_expansion\",\n        \"max_length_expansion\",\n        \"max_length_minus_one_expansion\",\n        \"half_max_length_expansion\",\n    ],\n)\n@pytest.mark.parametrize(\n    \"call_exact_cost\",\n    [2**128 - 1],\n    ids=[\"\"],\n)  # Limit subcall gas, otherwise it would be impossibly large\n@pytest.mark.parametrize(\"successful\", [False])\n@pytest.mark.parametrize(\n    \"initial_memory\",\n    [\n        bytes(range(0x00, 0x100)),\n        bytes(),\n    ],\n    ids=[\n        \"from_existent_memory\",\n        \"from_empty_memory\",\n    ],\n)\n@pytest.mark.with_all_evm_code_types\n@pytest.mark.valid_from(\"Cancun\")\ndef test_mcopy_huge_memory_expansion(\n    state_test: StateTestFiller,\n    env: Environment,\n    pre: Mapping[str, Account],\n    post: Mapping[str, Account],\n    tx: Transaction,\n) -> None:\n    \"\"\"\n    Perform MCOPY operations that expand the memory by huge amounts, and verify\n    that it correctly runs out of gas.\n    \"\"\"\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n"
  },
  {
    "path": "tests/cancun/eip6780_selfdestruct/__init__.py",
    "content": "\"\"\"Tests for EIP-6780: SELFDESTRUCT only in same transaction.\"\"\"\n"
  },
  {
    "path": "tests/cancun/eip6780_selfdestruct/conftest.py",
    "content": "\"\"\"Pytest (plugin) definitions local to EIP-6780 tests.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_tools import Address, Alloc, Environment\n\n\n@pytest.fixture\ndef env() -> Environment:\n    \"\"\"Environment for all tests.\"\"\"\n    return Environment()\n\n\n@pytest.fixture\ndef selfdestruct_recipient_address(pre: Alloc) -> Address:\n    \"\"\"Address that can receive a SELFDESTRUCT operation.\"\"\"\n    return pre.fund_eoa(amount=0)\n"
  },
  {
    "path": "tests/cancun/eip6780_selfdestruct/test_dynamic_create2_selfdestruct_collision.py",
    "content": "\"\"\"\nSuicide scenario requested test\nhttps://github.com/ethereum/execution-spec-tests/issues/381.\n\"\"\"\n\nfrom typing import Dict, Union\n\nimport pytest\n\nfrom ethereum_test_forks import Cancun, Fork\nfrom ethereum_test_tools import (\n    Account,\n    Address,\n    Alloc,\n    Block,\n    BlockchainTestFiller,\n    Bytecode,\n    Conditional,\n    Initcode,\n    StateTestFiller,\n    Transaction,\n    compute_create2_address,\n)\nfrom ethereum_test_vm import Opcodes as Op\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-6780.md\"\nREFERENCE_SPEC_VERSION = \"1b6a0e94cc47e859b9866e570391cf37dc55059a\"\n\n\n@pytest.mark.valid_from(\"Paris\")\n@pytest.mark.parametrize(\n    \"create2_dest_already_in_state\",\n    (pytest.param(True, marks=pytest.mark.execute(pytest.mark.skip(\"Modifies pre\"))), False),\n)\n@pytest.mark.parametrize(\n    \"call_create2_contract_in_between,call_create2_contract_at_the_end\",\n    [\n        (True, True),\n        (True, False),\n        (False, True),\n    ],\n)\ndef test_dynamic_create2_selfdestruct_collision(\n    fork: Fork,\n    create2_dest_already_in_state: bool,\n    call_create2_contract_in_between: bool,\n    call_create2_contract_at_the_end: bool,\n    pre: Alloc,\n    state_test: StateTestFiller,\n) -> None:\n    \"\"\"\n    Dynamic Create2->Suicide->Create2 collision scenario.\n\n    Perform a CREATE2, make sure that the initcode sets at least a couple of\n    storage keys, then on a different call, in the same tx, perform a\n    self-destruct.\n    Then:\n      a) on the same tx, attempt to recreate the contract\n         -> Covered in this test\n           1) and create2 contract already in the state\n           2) and create2 contract is not in the state\n      b) on a different tx, attempt to recreate the contract\n\n    Perform a CREATE2, make sure that the initcode sets at least a couple\n    of storage keys, then in a different tx, perform a self-destruct.\n\n    Then:\n      a) on the same tx, attempt to recreate the contract\n      b) on a different tx, attempt to recreate the contract\n\n    Check the test case described in\n    https://lf-hyperledger.atlassian.net/wiki/spaces/BESU/pages/\n    22156575/2024-01-06+Mainnet+Halting+Event\n    \"\"\"\n    assert call_create2_contract_in_between or call_create2_contract_at_the_end, \"invalid test\"\n\n    # Storage locations\n    create2_constructor_worked = 1\n    first_create2_result = 2\n    second_create2_result = 3\n    code_worked = 4\n\n    # Constants\n    address_zero = Address(0x00)\n    create2_salt = 1\n\n    # Create EOA for sendall destination (receives selfdestruct funds)\n    sendall_destination = pre.fund_eoa(0)  # Will be funded by selfdestruct\n    # calls\n\n    # Create storage contract that will be called during initialization\n    address_create2_storage = pre.deploy_contract(\n        code=Op.SSTORE(1, 1),\n        balance=7000000000000000000,\n    )\n\n    # CREATE2 Initcode\n    deploy_code = Op.SELFDESTRUCT(sendall_destination)\n    initcode = Initcode(\n        deploy_code=deploy_code,\n        initcode_prefix=Op.SSTORE(create2_constructor_worked, 1)\n        + Op.CALL(Op.GAS(), address_create2_storage, 0, 0, 0, 0, 0),\n    )\n\n    # Create the contract that performs CREATE2 operations\n    address_code = pre.deploy_contract(\n        code=Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE())\n        + Op.MSTORE(\n            0,\n            Op.CREATE2(Op.SELFBALANCE(), 0, Op.CALLDATASIZE(), create2_salt),\n        )\n        + Op.RETURN(0, 32),\n    )\n\n    # Created addresses - now we can compute create2_address\n    create2_address = compute_create2_address(address_code, create2_salt, initcode)\n    call_address_in_between = create2_address if call_create2_contract_in_between else address_zero\n    call_address_in_the_end = create2_address if call_create2_contract_at_the_end else address_zero\n\n    # Values\n    pre_existing_create2_balance = 1\n    first_create2_value = 10\n    first_call_value = 100\n    second_create2_value = 1000\n    second_call_value = 10000\n\n    # Create the main contract that orchestrates the test\n    address_to = pre.deploy_contract(\n        code=Op.JUMPDEST()\n        # Make a subcall that do CREATE2 and returns its the result\n        + Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE())\n        + Op.CALL(100000, address_code, first_create2_value, 0, Op.CALLDATASIZE(), 0, 32)\n        + Op.SSTORE(\n            first_create2_result,\n            Op.MLOAD(0),\n        )\n        # In case the create2 didn't work, flush account balance\n        + Op.CALL(100000, address_code, 0, 0, 0, 0, 0)\n        # Call to the created account to trigger selfdestruct\n        + Op.CALL(100000, call_address_in_between, first_call_value, 0, 0, 0, 0)\n        # Make a subcall that do CREATE2 collision and returns its address as\n        # the result\n        + Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE())\n        + Op.CALL(100000, address_code, second_create2_value, 0, Op.CALLDATASIZE(), 0, 32)\n        + Op.SSTORE(\n            second_create2_result,\n            Op.MLOAD(0),\n        )\n        # Call to the created account to trigger selfdestruct\n        + Op.CALL(100000, call_address_in_the_end, second_call_value, 0, 0, 0, 0)\n        + Op.SSTORE(code_worked, 1),\n        balance=100000000,\n        storage={first_create2_result: 0xFF, second_create2_result: 0xFF},\n    )\n\n    # Create the sender EOA\n    sender = pre.fund_eoa(7000000000000000000)\n\n    if create2_dest_already_in_state:\n        # Create2 address already in the state, e.g. deployed in a previous\n        # block\n        pre[create2_address] = Account(\n            balance=pre_existing_create2_balance,\n            nonce=1,\n            code=deploy_code,\n            storage={},\n        )\n\n    post: Dict[Address, Union[Account, object]] = {}\n\n    # Create2 address only exists if it was pre-existing and after cancun\n    post[create2_address] = (\n        Account(balance=0, nonce=1, code=deploy_code, storage={create2_constructor_worked: 0x00})\n        if create2_dest_already_in_state and fork >= Cancun\n        else Account.NONEXISTENT\n    )\n\n    # Create2 initcode is only executed if the contract did not already exist\n    post[address_create2_storage] = Account(\n        storage={create2_constructor_worked: int(not create2_dest_already_in_state)}\n    )\n\n    # Entry code that makes the calls to the create2 contract creator\n    post[address_to] = Account(\n        storage={\n            code_worked: 0x01,\n            # First create2 only works if the contract was not preexisting\n            first_create2_result: 0x00 if create2_dest_already_in_state else create2_address,\n            # Second create2 must never work\n            second_create2_result: 0x00,\n        }\n    )\n\n    # Calculate the destination account expected balance for the\n    # selfdestruct/sendall calls\n    sendall_destination_balance = (\n        pre_existing_create2_balance if create2_dest_already_in_state else first_create2_value\n    )\n\n    if call_create2_contract_in_between:\n        sendall_destination_balance += first_call_value\n\n    if call_create2_contract_at_the_end:\n        sendall_destination_balance += second_call_value\n\n    post[sendall_destination] = Account(balance=sendall_destination_balance)\n\n    tx = Transaction(\n        to=address_to,\n        data=initcode,\n        gas_limit=5_000_000,\n        sender=sender,\n    )\n\n    state_test(pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.valid_from(\"Paris\")\n@pytest.mark.parametrize(\n    \"create2_dest_already_in_state\",\n    (pytest.param(True, marks=pytest.mark.execute(pytest.mark.skip(\"Modifies pre\"))), False),\n)\n@pytest.mark.parametrize(\n    \"call_create2_contract_at_the_end\",\n    (True, False),\n)\ndef test_dynamic_create2_selfdestruct_collision_two_different_transactions(\n    fork: Fork,\n    create2_dest_already_in_state: bool,\n    call_create2_contract_at_the_end: bool,\n    pre: Alloc,\n    blockchain_test: BlockchainTestFiller,\n) -> None:\n    \"\"\"\n    Dynamic Create2->Suicide->Create2 collision scenario.\n\n    Perform a CREATE2, make sure that the initcode sets at least a couple of\n    storage keys, then on a different call, in the same tx, perform a\n    self-destruct.\n\n    Then:\n      a) on the same tx, attempt to recreate the contract\n        1) and create2 contract already in the state\n        2) and create2 contract is not in the state\n      b) on a different tx, attempt to recreate the contract\n         -> Covered in this test\n\n    Perform a CREATE2, make sure that the initcode sets at\n    least a couple of storage keys, then in a different tx, perform a\n    self-destruct.\n\n    Then:\n      a) on the same tx, attempt to recreate the contract\n      b) on a different tx, attempt to recreate the contract\n\n    Check the test case described in\n    https://lf-hyperledger.atlassian.net/wiki/spaces/BESU/pages/22156575/2024-01-06\n    +Mainnet+Halting+Event\n    \"\"\"\n    # assert call_create2_contract_at_the_end, \"invalid test\"\n\n    # Storage locations\n    create2_constructor_worked = 1\n    first_create2_result = 2\n    second_create2_result = 3\n    code_worked = 4\n\n    # Constants\n    address_zero = Address(0x00)\n    create2_salt = 1\n\n    # Create EOA for sendall destination (receives selfdestruct funds)\n    sendall_destination = pre.fund_eoa(0)  # Will be funded by selfdestruct\n    # calls\n\n    # Create storage contract that will be called during initialization\n    address_create2_storage = pre.deploy_contract(\n        code=Op.SSTORE(1, 1),\n        balance=7000000000000000000,\n    )\n\n    # CREATE2 Initcode\n    deploy_code = Op.SELFDESTRUCT(sendall_destination)\n    initcode = Initcode(\n        deploy_code=deploy_code,\n        initcode_prefix=Op.SSTORE(create2_constructor_worked, 1)\n        + Op.CALL(Op.GAS(), address_create2_storage, 0, 0, 0, 0, 0),\n    )\n\n    # Create the contract that performs CREATE2 operations\n    address_code = pre.deploy_contract(\n        code=Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE())\n        + Op.MSTORE(\n            0,\n            Op.CREATE2(Op.SELFBALANCE(), 0, Op.CALLDATASIZE(), create2_salt),\n        )\n        + Op.RETURN(0, 32),\n    )\n\n    # Created addresses\n    create2_address = compute_create2_address(address_code, create2_salt, initcode)\n    call_address_in_the_end = create2_address if call_create2_contract_at_the_end else address_zero\n\n    # Values\n    pre_existing_create2_balance = 1\n    first_create2_value = 10\n    first_call_value = 100\n    second_create2_value = 1000\n    second_call_value = 10000\n\n    # Create the first contract that performs the first transaction\n    address_to = pre.deploy_contract(\n        code=Op.JUMPDEST()\n        # Make a subcall that do CREATE2 and returns its the result\n        + Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE())\n        + Op.CALL(100000, address_code, first_create2_value, 0, Op.CALLDATASIZE(), 0, 32)\n        + Op.SSTORE(\n            first_create2_result,\n            Op.MLOAD(0),\n        )\n        # In case the create2 didn't work, flush account balance\n        + Op.CALL(100000, address_code, 0, 0, 0, 0, 0)\n        # Call to the created account to trigger selfdestruct\n        + Op.CALL(100000, create2_address, first_call_value, 0, 0, 0, 0)\n        + Op.SSTORE(code_worked, 1),\n        balance=100000000,\n        storage={first_create2_result: 0xFF},\n    )\n\n    # Create the second contract that performs the second transaction\n    address_to_second = pre.deploy_contract(\n        code=Op.JUMPDEST()\n        # Make a subcall that do CREATE2 collision and returns its address as\n        # the result\n        + Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE())\n        + Op.CALL(100000, address_code, second_create2_value, 0, Op.CALLDATASIZE(), 0, 32)\n        + Op.SSTORE(\n            second_create2_result,\n            Op.MLOAD(0),\n        )\n        # Call to the created account to trigger selfdestruct\n        + Op.CALL(200000, call_address_in_the_end, second_call_value, 0, 0, 0, 0)\n        + Op.SSTORE(code_worked, 1),\n        balance=100000000,\n        storage={second_create2_result: 0xFF},\n    )\n\n    # Create the sender EOA\n    sender = pre.fund_eoa(7000000000000000000)\n\n    if create2_dest_already_in_state:\n        # Create2 address already in the state, e.g. deployed in a previous\n        # block\n        pre[create2_address] = Account(\n            balance=pre_existing_create2_balance,\n            nonce=1,\n            code=deploy_code,\n            storage={},\n        )\n\n    post: Dict[Address, Union[Account, object]] = {}\n\n    # Create2 address only exists if it was pre-existing and after cancun\n    post[create2_address] = (\n        Account(balance=0, nonce=1, code=deploy_code, storage={create2_constructor_worked: 0x00})\n        if create2_dest_already_in_state and fork >= Cancun\n        else (\n            Account.NONEXISTENT\n            if call_create2_contract_at_the_end\n            else Account(balance=1000, nonce=1, code=deploy_code)\n        )\n    )\n\n    # after Cancun Create2 initcode is only executed if the contract did not\n    # already exist and before it will always be executed as the first tx\n    # deletes the account\n    post[address_create2_storage] = Account(\n        storage={\n            create2_constructor_worked: int(fork < Cancun or not create2_dest_already_in_state)\n        }\n    )\n\n    # Entry code that makes the calls to the create2 contract creator\n    post[address_to] = Account(\n        storage={\n            code_worked: 0x01,\n            # First create2 only works if the contract was not preexisting\n            first_create2_result: 0x00 if create2_dest_already_in_state else create2_address,\n        }\n    )\n    post[address_to_second] = Account(\n        storage={\n            code_worked: 0x01,\n            # Second create2 will not collide before Cancun as the first tx\n            # calls selfdestruct\n            #\n            # After cancun it will collide only if\n            # create2_dest_already_in_state otherwise the first tx creates and\n            # deletes it\n            second_create2_result: (\n                (0x00 if create2_dest_already_in_state else create2_address)\n                if fork >= Cancun\n                else create2_address\n            ),\n        }\n    )\n\n    # Calculate the destination account expected balance for the\n    # selfdestruct/sendall calls\n    sendall_destination_balance = 0\n\n    if create2_dest_already_in_state:\n        sendall_destination_balance += pre_existing_create2_balance\n        if fork >= Cancun:\n            # first create2 fails, but first calls ok. the account is not\n            # removed on cancun therefore with the second create2 it is not\n            # successful\n            sendall_destination_balance += first_call_value\n        else:\n            # first create2 fails, first calls totally removes the account\n            # in the second transaction second create2 is successful\n            sendall_destination_balance += first_call_value\n            if call_create2_contract_at_the_end:\n                sendall_destination_balance += second_create2_value\n    else:\n        # if no account in the state, first create2 successful, first call\n        # successful and removes because it is removed in the next transaction\n        # second create2 successful\n        sendall_destination_balance = first_create2_value + first_call_value\n        if call_create2_contract_at_the_end:\n            sendall_destination_balance += second_create2_value\n\n    if call_create2_contract_at_the_end:\n        sendall_destination_balance += second_call_value\n\n    post[sendall_destination] = Account(balance=sendall_destination_balance)\n\n    blockchain_test(\n        pre=pre,\n        post=post,\n        blocks=[\n            Block(\n                txs=[\n                    Transaction(\n                        to=address_to,\n                        data=initcode,\n                        gas_limit=5_000_000,\n                        sender=sender,\n                    ),\n                    Transaction(\n                        to=address_to_second,\n                        data=initcode,\n                        gas_limit=5_000_000,\n                        sender=sender,\n                    ),\n                ]\n            )\n        ],\n    )\n\n\n@pytest.mark.valid_from(\"Paris\")\n@pytest.mark.parametrize(\n    \"selfdestruct_on_first_tx,recreate_on_first_tx\",\n    [\n        (False, False),\n        (True, False),\n        (True, True),\n    ],\n)\ndef test_dynamic_create2_selfdestruct_collision_multi_tx(\n    fork: Fork,\n    selfdestruct_on_first_tx: bool,\n    recreate_on_first_tx: bool,\n    pre: Alloc,\n    blockchain_test: BlockchainTestFiller,\n) -> None:\n    \"\"\"\n    Dynamic Create2->Suicide->Create2 collision scenario over multiple\n    transactions.\n\n    Perform a CREATE2, make sure that the initcode sets at least a couple of\n    storage keys, then on a different call, in the same or different tx but\n    same block, perform a self-destruct.\n    Then:\n      a) on the same tx, attempt to recreate the contract\n      b) on a different tx, attempt to recreate the contract\n\n    Perform a CREATE2, make sure that the initcode sets at least a\n    couple of storage keys, then in a different tx, perform a self-destruct.\n\n    Then:\n      a) on the same tx, attempt to recreate the contract\n         -> Covered in this test\n      b) on a different tx, attempt to recreate the contract\n         -> Covered in this test\n\n    Check the test case described in\n    https://lf-hyperledger.atlassian.net/wiki/spaces/BESU/pages/22156575/2024-01-06\n    +Mainnet+Halting+Event\n    \"\"\"\n    if recreate_on_first_tx:\n        assert selfdestruct_on_first_tx, \"invalid test\"\n\n    # Storage locations\n    create2_constructor_worked = 1\n    first_create2_result = 2\n    second_create2_result = 3\n    part_1_worked = 4\n    part_2_worked = 5\n\n    # Constants\n    create2_salt = 1\n\n    # Create EOA for sendall destination (receives selfdestruct funds)\n    sendall_destination = pre.fund_eoa(0)  # Will be funded by selfdestruct\n    # calls\n\n    # Create storage contract that will be called during initialization\n    address_create2_storage = pre.deploy_contract(\n        code=Op.SSTORE(1, 1),\n        balance=7000000000000000000,\n    )\n\n    # CREATE2 Initcode\n    deploy_code = Op.SELFDESTRUCT(sendall_destination)\n    initcode = Initcode(\n        deploy_code=deploy_code,\n        initcode_prefix=Op.SSTORE(create2_constructor_worked, 1)\n        + Op.CALL(Op.GAS(), address_create2_storage, 0, 0, 0, 0, 0),\n    )\n\n    # Create the contract that performs CREATE2 operations\n    address_code = pre.deploy_contract(\n        code=Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE())\n        + Op.MSTORE(\n            0,\n            Op.CREATE2(Op.SELFBALANCE(), 0, Op.CALLDATASIZE(), create2_salt),\n        )\n        + Op.RETURN(0, 32),\n    )\n\n    # Created addresses\n    create2_address = compute_create2_address(address_code, create2_salt, initcode)\n\n    # Values\n    first_create2_value = 3\n    first_call_value = 5\n    second_create2_value = 7\n    second_call_value = 11\n\n    # Code is divided in two transactions part of the same block\n    first_tx_code = Bytecode()\n    second_tx_code = Bytecode()\n\n    first_tx_code += (\n        Op.JUMPDEST()\n        # Make a subcall that do CREATE2 and returns its the result\n        + Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE())\n        + Op.CALL(100000, address_code, first_create2_value, 0, Op.CALLDATASIZE(), 0, 32)\n        + Op.SSTORE(\n            first_create2_result,\n            Op.MLOAD(0),\n        )\n    )\n\n    if selfdestruct_on_first_tx:\n        first_tx_code += (\n            # Call to the created account to trigger selfdestruct\n            Op.CALL(100000, create2_address, first_call_value, 0, 0, 0, 0)\n        )\n    else:\n        second_tx_code += (\n            # Call to the created account to trigger selfdestruct\n            Op.CALL(100000, create2_address, first_call_value, 0, 0, 0, 0)\n        )\n\n    if recreate_on_first_tx:\n        first_tx_code += (\n            # Make a subcall that do CREATE2 collision and returns its address\n            # as the result\n            Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE())\n            + Op.CALL(100000, address_code, second_create2_value, 0, Op.CALLDATASIZE(), 0, 32)\n            + Op.SSTORE(\n                second_create2_result,\n                Op.MLOAD(0),\n            )\n        )\n\n    else:\n        second_tx_code += (\n            # Make a subcall that do CREATE2 collision and returns its address\n            # as the result\n            Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE())\n            + Op.CALL(100000, address_code, second_create2_value, 0, Op.CALLDATASIZE(), 0, 32)\n            + Op.SSTORE(\n                second_create2_result,\n                Op.MLOAD(0),\n            )\n        )\n\n    # Second tx code always calls the create2 contract at the end\n    second_tx_code += Op.CALL(100000, create2_address, second_call_value, 0, 0, 0, 0)\n\n    first_tx_code += Op.SSTORE(part_1_worked, 1)\n    second_tx_code += Op.SSTORE(part_2_worked, 1)\n\n    # Create the main contract that uses conditional logic to handle both\n    # transactions\n    address_to = pre.deploy_contract(\n        code=Conditional(\n            # Depending on the tx, execute the first or second tx code\n            condition=Op.EQ(Op.SLOAD(part_1_worked), 0),\n            if_true=first_tx_code,\n            if_false=second_tx_code,\n        ),\n        balance=100000000,\n        storage={first_create2_result: 0xFF, second_create2_result: 0xFF},\n    )\n\n    # Create the sender EOA\n    sender = pre.fund_eoa(7000000000000000000)\n\n    post: Dict[Address, Union[Account, object]] = {}\n\n    # Create2 address only exists if it was pre-existing and after cancun\n    account_will_exist_with_code = not selfdestruct_on_first_tx and fork >= Cancun\n    # If the contract is self-destructed and we also attempt to recreate it on\n    # the first tx, the second call on the second tx will only place balance in\n    # the account\n    account_will_exist_with_balance = selfdestruct_on_first_tx and recreate_on_first_tx\n\n    post[create2_address] = (\n        Account(balance=0, nonce=1, code=deploy_code, storage={create2_constructor_worked: 0x01})\n        if account_will_exist_with_code\n        else (\n            Account(balance=second_call_value, nonce=0)\n            if account_will_exist_with_balance\n            else Account.NONEXISTENT\n        )\n    )\n\n    # Create2 initcode saves storage unconditionally\n    post[address_create2_storage] = Account(storage={create2_constructor_worked: 0x01})\n\n    # Entry code that makes the calls to the create2 contract creator\n    post[address_to] = Account(\n        storage={\n            part_1_worked: 0x01,\n            part_2_worked: 0x01,\n            # First create2 always works\n            first_create2_result: create2_address,\n            # Second create2 only works if we successfully self-destructed on\n            # the first tx\n            second_create2_result: (\n                create2_address if selfdestruct_on_first_tx and not recreate_on_first_tx else 0x00\n            ),\n        }\n    )\n\n    # Calculate the destination account expected balance for the\n    # selfdestruct/sendall calls\n    sendall_destination_balance = first_create2_value + first_call_value\n\n    if not account_will_exist_with_balance:\n        sendall_destination_balance += second_call_value\n\n    if selfdestruct_on_first_tx and not recreate_on_first_tx:\n        sendall_destination_balance += second_create2_value\n\n    post[sendall_destination] = Account(balance=sendall_destination_balance)\n\n    blockchain_test(\n        pre=pre,\n        post=post,\n        blocks=[\n            Block(\n                txs=[\n                    Transaction(\n                        to=address_to,\n                        data=initcode,\n                        gas_limit=5_000_000,\n                        sender=sender,\n                    ),\n                    Transaction(\n                        to=address_to,\n                        data=initcode,\n                        gas_limit=5_000_000,\n                        sender=sender,\n                    ),\n                ]\n            )\n        ],\n    )\n"
  },
  {
    "path": "tests/cancun/eip6780_selfdestruct/test_reentrancy_selfdestruct_revert.py",
    "content": "\"\"\"Suicide scenario requested test https://github.com/ethereum/tests/issues/1325.\"\"\"\n\nfrom typing import SupportsBytes\n\nimport pytest\n\nfrom ethereum_test_forks import Cancun, Fork\nfrom ethereum_test_tools import (\n    EOA,\n    Account,\n    Address,\n    Alloc,\n    Bytecode,\n    Environment,\n    StateTestFiller,\n    Transaction,\n)\nfrom ethereum_test_vm import Opcodes as Op\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-6780.md\"\nREFERENCE_SPEC_VERSION = \"1b6a0e94cc47e859b9866e570391cf37dc55059a\"\n\n\n@pytest.fixture\ndef selfdestruct_contract_bytecode(selfdestruct_recipient_address: Address) -> Bytecode:\n    \"\"\"Contract code that performs a SELFDESTRUCT operation.\"\"\"\n    return Op.SELFDESTRUCT(selfdestruct_recipient_address)\n\n\n@pytest.fixture\ndef selfdestruct_contract_init_balance() -> int:  # noqa: D103\n    return 300_000\n\n\n@pytest.fixture\ndef selfdestruct_contract_address(\n    pre: Alloc, selfdestruct_contract_bytecode: Bytecode, selfdestruct_contract_init_balance: int\n) -> Address:\n    \"\"\"Address of the selfdestruct contract.\"\"\"\n    return pre.deploy_contract(\n        code=selfdestruct_contract_bytecode, balance=selfdestruct_contract_init_balance\n    )\n\n\n@pytest.fixture\ndef executor_contract_bytecode(\n    first_suicide: Op,\n    revert_contract_address: Address,\n    selfdestruct_contract_address: Address,\n) -> Bytecode:\n    \"\"\"Contract code that performs a selfdestruct call then revert.\"\"\"\n    return (\n        Op.SSTORE(\n            1,\n            (\n                first_suicide(address=selfdestruct_contract_address, value=0)\n                if first_suicide in [Op.CALL, Op.CALLCODE]\n                else first_suicide(address=selfdestruct_contract_address)\n            ),\n        )\n        + Op.SSTORE(2, Op.CALL(address=revert_contract_address))\n        + Op.RETURNDATACOPY(0, 0, Op.RETURNDATASIZE())\n        + Op.SSTORE(3, Op.MLOAD(0))\n    )\n\n\n@pytest.fixture\ndef executor_contract_init_storage() -> (  # noqa: D103\n    dict[str | bytes | SupportsBytes | int, str | bytes | SupportsBytes | int]\n):\n    return {0x01: 0x0100, 0x02: 0x0100, 0x03: 0x0100}\n\n\n@pytest.fixture\ndef executor_contract_init_balance() -> int:  # noqa: D103\n    return 100_000\n\n\n@pytest.fixture\ndef executor_contract_address(\n    pre: Alloc,\n    executor_contract_bytecode: Bytecode,\n    executor_contract_init_balance: int,\n    executor_contract_init_storage: dict[\n        str | bytes | SupportsBytes | int, str | bytes | SupportsBytes | int\n    ],\n) -> Address:\n    \"\"\"Address of the executor contract.\"\"\"\n    return pre.deploy_contract(\n        executor_contract_bytecode,\n        balance=executor_contract_init_balance,\n        storage=executor_contract_init_storage,\n    )\n\n\n@pytest.fixture\ndef revert_contract_bytecode(\n    second_suicide: Op,\n    selfdestruct_contract_address: Address,\n) -> Bytecode:\n    \"\"\"Contract code that performs a call and then reverts.\"\"\"\n    call_op = (\n        second_suicide(address=selfdestruct_contract_address, value=100)\n        if second_suicide in [Op.CALL, Op.CALLCODE]\n        else second_suicide(address=selfdestruct_contract_address)\n    )\n    return Op.MSTORE(0, Op.ADD(15, call_op)) + Op.REVERT(0, 32)\n\n\n@pytest.fixture\ndef revert_contract_init_balance() -> int:  # noqa: D103\n    return 500_000\n\n\n@pytest.fixture\ndef revert_contract_address(\n    pre: Alloc,\n    revert_contract_bytecode: Bytecode,\n    revert_contract_init_balance: int,\n) -> Address:\n    \"\"\"Address of the revert contract.\"\"\"\n    return pre.deploy_contract(revert_contract_bytecode, balance=revert_contract_init_balance)\n\n\n@pytest.mark.valid_from(\"Paris\")\n@pytest.mark.parametrize(\"first_suicide\", [Op.CALL, Op.CALLCODE, Op.DELEGATECALL])\n@pytest.mark.parametrize(\"second_suicide\", [Op.CALL, Op.CALLCODE, Op.DELEGATECALL])\ndef test_reentrancy_selfdestruct_revert(\n    pre: Alloc,\n    env: Environment,\n    sender: EOA,\n    fork: Fork,\n    first_suicide: Op,\n    second_suicide: Op,\n    state_test: StateTestFiller,\n    selfdestruct_contract_bytecode: Bytecode,\n    selfdestruct_contract_address: Address,\n    selfdestruct_contract_init_balance: int,\n    revert_contract_address: Address,\n    revert_contract_init_balance: int,\n    executor_contract_address: Address,\n    executor_contract_init_balance: int,\n    selfdestruct_recipient_address: Address,\n) -> None:\n    \"\"\"\n    Suicide reentrancy scenario.\n\n    Call|Callcode|Delegatecall the contract S.\n    S self destructs.\n    Call the revert proxy contract R.\n    R Calls|Callcode|Delegatecall S.\n    S self destructs (for the second time).\n    R reverts (including the effects of the second selfdestruct).\n    It is expected the S is self destructed after the transaction.\n    \"\"\"\n    post = {\n        # Second caller unchanged as call gets reverted\n        revert_contract_address: Account(balance=revert_contract_init_balance, storage={}),\n    }\n\n    if first_suicide in [Op.CALLCODE, Op.DELEGATECALL]:\n        if fork >= Cancun:\n            # On Cancun even callcode/delegatecall does not remove the account,\n            # so the value remain\n            post[executor_contract_address] = Account(\n                storage={\n                    0x01: 0x01,  # First call to contract S->suicide success\n                    0x02: 0x00,  # Second call to contract S->suicide reverted\n                    0x03: 16,  # Reverted value to check that revert really\n                    # worked\n                },\n            )\n        else:\n            # Callcode executed first suicide from sender. sender is deleted\n            post[executor_contract_address] = Account.NONEXISTENT  # type: ignore\n\n        # Original suicide account remains in state\n        post[selfdestruct_contract_address] = Account(\n            balance=selfdestruct_contract_init_balance, storage={}\n        )\n        # Suicide destination\n        post[selfdestruct_recipient_address] = Account(\n            balance=executor_contract_init_balance,\n        )\n\n    # On Cancun suicide no longer destroys the account from state, just cleans\n    # the balance\n    if first_suicide in [Op.CALL]:\n        post[executor_contract_address] = Account(\n            storage={\n                0x01: 0x01,  # First call to contract S->suicide success\n                0x02: 0x00,  # Second call to contract S->suicide reverted\n                0x03: 16,  # Reverted value to check that revert really worked\n            },\n        )\n        if fork >= Cancun:\n            # On Cancun suicide does not remove the account, just sends the\n            # balance\n            post[selfdestruct_contract_address] = Account(\n                balance=0, code=selfdestruct_contract_bytecode, storage={}\n            )\n        else:\n            post[selfdestruct_contract_address] = Account.NONEXISTENT  # type: ignore\n\n        # Suicide destination\n        post[selfdestruct_recipient_address] = Account(\n            balance=selfdestruct_contract_init_balance,\n        )\n\n    tx = Transaction(\n        sender=sender,\n        to=executor_contract_address,\n        gas_limit=500_000,\n        value=0,\n    )\n\n    state_test(env=env, pre=pre, post=post, tx=tx)\n"
  },
  {
    "path": "tests/cancun/eip6780_selfdestruct/test_selfdestruct.py",
    "content": "\"\"\"\nSELFDESTRUCT only in same transaction tests.\n\nTests for [EIP-6780: SELFDESTRUCT only in same transaction](https://eips.ethereum.org/EIPS/eip-6780).\n\"\"\"\n\nfrom itertools import cycle\nfrom typing import Dict, List\n\nimport pytest\n\nfrom ethereum_test_forks import Cancun, Fork\nfrom ethereum_test_tools import (\n    EOA,\n    Account,\n    Address,\n    Alloc,\n    Block,\n    BlockchainTestFiller,\n    Bytecode,\n    Conditional,\n    Hash,\n    Initcode,\n    StateTestFiller,\n    Storage,\n    Transaction,\n    compute_create_address,\n)\nfrom ethereum_test_vm import Opcodes as Op\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-6780.md\"\nREFERENCE_SPEC_VERSION = \"1b6a0e94cc47e859b9866e570391cf37dc55059a\"\n\nSELFDESTRUCT_DISABLE_FORK = Cancun\n\n\"\"\"\nAddress of a pre-existing contract that self-destructs.\n\"\"\"\n\n# Sentinel value to indicate that the self-destructing contract address should\n# be used, only for use in `pytest.mark.parametrize`, not for use within the\n# test method itself.\nSELF_ADDRESS = Address(0x01)\n# Sentinel value to indicate that the contract should not self-destruct.\nNO_SELFDESTRUCT = Address(0x00)\n\nPRE_DEPLOY_CONTRACT_1 = \"pre_deploy_contract_1\"\nPRE_DEPLOY_CONTRACT_2 = \"pre_deploy_contract_2\"\nPRE_DEPLOY_CONTRACT_3 = \"pre_deploy_contract_3\"\n\n\n@pytest.fixture\ndef eip_enabled(fork: Fork) -> bool:\n    \"\"\"Whether the EIP is enabled or not.\"\"\"\n    return fork >= SELFDESTRUCT_DISABLE_FORK\n\n\n@pytest.fixture\ndef sendall_recipient_addresses(request: pytest.FixtureRequest, pre: Alloc) -> List[Address]:\n    \"\"\"\n    List of addresses that receive the SENDALL operation in any test.\n\n    If the test case requires a pre-existing contract, it will be deployed\n    here.\n\n    By default the list is a single pre-deployed contract that unconditionally\n    sets storage.\n    \"\"\"\n    address_list = getattr(request, \"param\", [PRE_DEPLOY_CONTRACT_1])\n    deployed_contracts: Dict[str, Address] = {}\n    return_list = []\n    for sendall_recipient in address_list:\n        if type(sendall_recipient) is str:\n            if sendall_recipient not in deployed_contracts:\n                deployed_contracts[sendall_recipient] = pre.deploy_contract(\n                    code=Op.SSTORE(0, 0),\n                    storage={0: 1},\n                )\n            return_list.append(deployed_contracts[sendall_recipient])\n        else:\n            return_list.append(sendall_recipient)\n    return return_list\n\n\ndef selfdestruct_code_preset(\n    *,\n    sendall_recipient_addresses: List[Address],\n) -> Bytecode:\n    \"\"\"Return a bytecode that self-destructs.\"\"\"\n    # First we register entry into the contract\n    bytecode = Op.SSTORE(0, Op.ADD(Op.SLOAD(0), 1))\n\n    if len(sendall_recipient_addresses) != 1:\n        # Load the recipient address from calldata, each test case needs to\n        # pass the addresses as calldata\n        bytecode += Conditional(\n            # We avoid having the caller to give us our own address by checking\n            # against a constant that is a magic number\n            condition=Op.EQ(Op.CALLDATALOAD(0), SELF_ADDRESS),\n            if_true=Op.MSTORE(0, Op.ADDRESS()),\n            if_false=Op.MSTORE(0, Op.CALLDATALOAD(0)),\n        )\n        bytecode += Conditional(\n            condition=Op.EQ(Op.MLOAD(0), NO_SELFDESTRUCT),\n            if_true=Op.STOP,\n            if_false=Op.SELFDESTRUCT(Op.MLOAD(0)),\n        )\n    else:\n        # Hard-code the single only possible recipient address\n        sendall_recipient = sendall_recipient_addresses[0]\n        assert sendall_recipient != NO_SELFDESTRUCT, \"test error\"\n        if sendall_recipient == SELF_ADDRESS:\n            bytecode += Op.SELFDESTRUCT(Op.ADDRESS)\n        else:\n            bytecode += Op.SELFDESTRUCT(sendall_recipient_addresses[0])\n        bytecode += Op.SSTORE(0, 0)\n    return bytecode + Op.STOP\n\n\n@pytest.fixture\ndef selfdestruct_code(\n    sendall_recipient_addresses: List[Address],\n) -> Bytecode:\n    \"\"\"\n    Create default self-destructing bytecode, which can be modified by each\n    test if necessary.\n    \"\"\"\n    return selfdestruct_code_preset(sendall_recipient_addresses=sendall_recipient_addresses)\n\n\n@pytest.mark.parametrize(\"create_opcode\", [Op.CREATE, Op.CREATE2])\n@pytest.mark.parametrize(\n    \"call_times,sendall_recipient_addresses\",\n    [\n        pytest.param(\n            1,\n            [PRE_DEPLOY_CONTRACT_1],\n            id=\"single_call\",\n        ),\n        pytest.param(\n            1,\n            [SELF_ADDRESS],\n            id=\"single_call_self\",\n        ),\n        pytest.param(\n            2,\n            [PRE_DEPLOY_CONTRACT_1],\n            id=\"multiple_calls_single_sendall_recipient\",\n        ),\n        pytest.param(\n            2,\n            [SELF_ADDRESS],\n            id=\"multiple_calls_single_self_recipient\",\n        ),\n        pytest.param(\n            3,\n            [PRE_DEPLOY_CONTRACT_1, PRE_DEPLOY_CONTRACT_2, PRE_DEPLOY_CONTRACT_3],\n            id=\"multiple_calls_multiple_sendall_recipients\",\n        ),\n        pytest.param(\n            3,\n            [SELF_ADDRESS, PRE_DEPLOY_CONTRACT_2, PRE_DEPLOY_CONTRACT_3],\n            id=\"multiple_calls_multiple_sendall_recipients_including_self\",\n        ),\n        pytest.param(\n            3,\n            [PRE_DEPLOY_CONTRACT_1, PRE_DEPLOY_CONTRACT_2, SELF_ADDRESS],\n            id=\"multiple_calls_multiple_sendall_recipients_including_self_last\",\n        ),\n        pytest.param(\n            6,\n            [SELF_ADDRESS, PRE_DEPLOY_CONTRACT_2, PRE_DEPLOY_CONTRACT_3],\n            id=\"multiple_calls_multiple_repeating_sendall_recipients_including_self\",\n        ),\n        pytest.param(\n            6,\n            [PRE_DEPLOY_CONTRACT_1, PRE_DEPLOY_CONTRACT_2, SELF_ADDRESS],\n            id=\"multiple_calls_multiple_repeating_sendall_recipients_including_self_last\",\n        ),\n    ],\n    indirect=[\"sendall_recipient_addresses\"],\n)\n@pytest.mark.parametrize(\"selfdestruct_contract_initial_balance\", [0, 100_000])\n@pytest.mark.valid_from(\"Shanghai\")\ndef test_create_selfdestruct_same_tx(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    sender: EOA,\n    selfdestruct_code: Bytecode,\n    sendall_recipient_addresses: List[Address],\n    create_opcode: Op,\n    call_times: int,\n    selfdestruct_contract_initial_balance: int,\n) -> None:\n    \"\"\"\n    Use CREATE or CREATE2 to create a self-destructing contract, and call it in\n    the same transaction.\n\n    Behavior should be the same before and after EIP-6780.\n\n    Test using:\n        - Different send-all recipient addresses: single, multiple,\n           including self\n        - Different initial balances for the self-destructing contract\n        - Different opcodes: CREATE, CREATE2\n    \"\"\"\n    selfdestruct_contract_initcode = Initcode(deploy_code=selfdestruct_code)\n    initcode_copy_from_address = pre.deploy_contract(selfdestruct_contract_initcode)\n    # Our entry point is an initcode that in turn creates a self-destructing\n    # contract\n    entry_code_storage = Storage()\n\n    # Bytecode used to create the contract, can be CREATE or CREATE2\n    create_bytecode = create_opcode(size=len(selfdestruct_contract_initcode))\n    selfdestruct_contract_address = compute_create_address(\n        address=compute_create_address(address=sender, nonce=0),\n        nonce=1,\n        initcode=selfdestruct_contract_initcode,\n        opcode=create_opcode,\n    )\n    for i in range(len(sendall_recipient_addresses)):\n        if sendall_recipient_addresses[i] == SELF_ADDRESS:\n            sendall_recipient_addresses[i] = selfdestruct_contract_address\n    if selfdestruct_contract_initial_balance > 0:\n        pre.fund_address(selfdestruct_contract_address, selfdestruct_contract_initial_balance)\n\n    # Create a dict to record the expected final balances\n    sendall_final_balances = dict(\n        zip(sendall_recipient_addresses, [0] * len(sendall_recipient_addresses), strict=False)\n    )\n    selfdestruct_contract_current_balance = selfdestruct_contract_initial_balance\n\n    # Entry code that will be executed, creates the contract and then calls it\n    # in the same tx\n    entry_code = (\n        # Initcode is already deployed at `initcode_copy_from_address`, so just\n        # copy it\n        Op.EXTCODECOPY(\n            initcode_copy_from_address,\n            0,\n            0,\n            len(selfdestruct_contract_initcode),\n        )\n        # And we store the created address for verification purposes\n        + Op.SSTORE(\n            entry_code_storage.store_next(selfdestruct_contract_address),\n            create_bytecode,\n        )\n    )\n\n    # Store the EXTCODE* properties of the created address\n    entry_code += Op.SSTORE(\n        entry_code_storage.store_next(len(selfdestruct_code)),\n        Op.EXTCODESIZE(selfdestruct_contract_address),\n    )\n\n    entry_code += Op.SSTORE(\n        entry_code_storage.store_next(selfdestruct_code.keccak256()),\n        Op.EXTCODEHASH(selfdestruct_contract_address),\n    )\n\n    # Call the self-destructing contract multiple times as required, increasing\n    # the wei sent each time\n    entry_code_balance = 0\n    for i, sendall_recipient in zip(range(call_times), cycle(sendall_recipient_addresses)):\n        entry_code += Op.MSTORE(0, sendall_recipient)\n        entry_code += Op.SSTORE(\n            entry_code_storage.store_next(1),\n            Op.CALL(\n                Op.GASLIMIT,  # Gas\n                selfdestruct_contract_address,  # Address\n                i,  # Value\n                0,\n                32,\n                0,\n                0,\n            ),\n        )\n        entry_code_balance += i\n        selfdestruct_contract_current_balance += i\n\n        # Balance is always sent to other contracts\n        if sendall_recipient != selfdestruct_contract_address:\n            sendall_final_balances[sendall_recipient] += selfdestruct_contract_current_balance\n\n        # Self-destructing contract must always have zero balance after the\n        # call because the self-destruct always happens in the same transaction\n        # in this test\n        selfdestruct_contract_current_balance = 0\n\n        entry_code += Op.SSTORE(\n            entry_code_storage.store_next(0),\n            Op.BALANCE(selfdestruct_contract_address),\n        )\n\n    # Check the EXTCODE* properties of the self-destructing contract again\n    entry_code += Op.SSTORE(\n        entry_code_storage.store_next(len(selfdestruct_code)),\n        Op.EXTCODESIZE(selfdestruct_contract_address),\n    )\n\n    entry_code += Op.SSTORE(\n        entry_code_storage.store_next(selfdestruct_code.keccak256()),\n        Op.EXTCODEHASH(selfdestruct_contract_address),\n    )\n\n    # Lastly return zero so the entry point contract is created and we can\n    # retain the stored values for verification.\n    entry_code += Op.RETURN(max(len(selfdestruct_contract_initcode), 32), 1)\n\n    tx = Transaction(\n        value=entry_code_balance,\n        data=entry_code,\n        sender=sender,\n        to=None,\n        gas_limit=500_000,\n    )\n\n    entry_code_address = tx.created_contract\n\n    post: Dict[Address, Account] = {\n        entry_code_address: Account(\n            storage=entry_code_storage,\n        ),\n    }\n\n    # Check the balances of the sendall recipients\n    for address, balance in sendall_final_balances.items():\n        post[address] = Account(balance=balance, storage={0: 1})\n\n    post[selfdestruct_contract_address] = Account.NONEXISTENT  # type: ignore\n\n    state_test(pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.parametrize(\"create_opcode\", [Op.CREATE, Op.CREATE2])\n@pytest.mark.parametrize(\"call_times\", [0, 1])\n@pytest.mark.parametrize(\"selfdestruct_contract_initial_balance\", [0, 100_000])\n@pytest.mark.valid_from(\"Shanghai\")\ndef test_self_destructing_initcode(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    sender: EOA,\n    selfdestruct_code: Bytecode,\n    sendall_recipient_addresses: List[Address],\n    create_opcode: Op,\n    call_times: int,  # Number of times to call the self-destructing contract\n    # in the same tx\n    selfdestruct_contract_initial_balance: int,\n) -> None:\n    \"\"\"\n    Test that a contract can self-destruct in its initcode.\n\n    Behavior is the same before and after EIP-6780.\n\n    Test using:\n        - Different initial balances for the self-destructing contract\n        - Different opcodes: CREATE, CREATE2\n        - Different number of calls to the self-destructing contract in\n           the same tx\n    \"\"\"\n    initcode_copy_from_address = pre.deploy_contract(selfdestruct_code)\n    # Our entry point is an initcode that in turn creates a self-destructing\n    # contract\n    entry_code_storage = Storage()\n    sendall_amount = 0\n\n    # Bytecode used to create the contract, can be CREATE or CREATE2\n    create_bytecode = create_opcode(size=len(selfdestruct_code))\n\n    selfdestruct_contract_address = compute_create_address(\n        address=compute_create_address(address=sender, nonce=0),\n        nonce=1,\n        initcode=selfdestruct_code,\n        opcode=create_opcode,\n    )\n\n    # Entry code that will be executed, creates the contract and then calls it\n    # in the same tx\n    entry_code = (\n        # Initcode is already deployed at `initcode_copy_from_address`, so just\n        # copy it\n        Op.EXTCODECOPY(\n            initcode_copy_from_address,\n            0,\n            0,\n            len(selfdestruct_code),\n        )\n        # And we store the created address for verification purposes\n        + Op.SSTORE(\n            entry_code_storage.store_next(selfdestruct_contract_address),\n            create_bytecode,\n        )\n    )\n\n    # Store the EXTCODE* properties of the created address\n    entry_code += Op.SSTORE(\n        entry_code_storage.store_next(0),\n        Op.EXTCODESIZE(selfdestruct_contract_address),\n    )\n\n    entry_code += Op.SSTORE(\n        entry_code_storage.store_next(Bytecode().keccak256()),\n        Op.EXTCODEHASH(selfdestruct_contract_address),\n    )\n\n    # Call the self-destructing contract multiple times as required, increasing\n    # the wei sent each time\n    entry_code_balance = 0\n    for i in range(call_times):\n        entry_code += Op.SSTORE(\n            entry_code_storage.store_next(1),\n            Op.CALL(\n                Op.GASLIMIT,  # Gas\n                selfdestruct_contract_address,  # Address\n                i,  # Value\n                0,\n                0,\n                0,\n                0,\n            ),\n        )\n        entry_code_balance += i\n\n        entry_code += Op.SSTORE(\n            entry_code_storage.store_next(0),\n            Op.BALANCE(selfdestruct_contract_address),\n        )\n\n    # Lastly return zero so the entry point contract is created and we can\n    # retain the stored values for verification.\n    entry_code += Op.RETURN(max(len(selfdestruct_code), 32), 1)\n\n    if selfdestruct_contract_initial_balance > 0:\n        # Address where the contract is created already had some balance,\n        # which must be included in the send-all operation\n        sendall_amount += selfdestruct_contract_initial_balance\n        pre.fund_address(selfdestruct_contract_address, selfdestruct_contract_initial_balance)\n\n    tx = Transaction(\n        value=entry_code_balance,\n        data=entry_code,\n        sender=sender,\n        to=None,\n        gas_limit=500_000,\n    )\n\n    entry_code_address = tx.created_contract\n\n    post: Dict[Address, Account] = {\n        entry_code_address: Account(\n            storage=entry_code_storage,\n        ),\n        selfdestruct_contract_address: Account.NONEXISTENT,  # type: ignore\n        sendall_recipient_addresses[0]: Account(balance=sendall_amount, storage={0: 1}),\n    }\n\n    state_test(pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.parametrize(\"tx_value\", [0, 100_000])\n@pytest.mark.parametrize(\"selfdestruct_contract_initial_balance\", [0, 100_000])\n@pytest.mark.valid_from(\"Shanghai\")\ndef test_self_destructing_initcode_create_tx(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    sender: EOA,\n    tx_value: int,\n    selfdestruct_code: Bytecode,\n    sendall_recipient_addresses: List[Address],\n    selfdestruct_contract_initial_balance: int,\n) -> None:\n    \"\"\"\n    Use a Create Transaction to execute a self-destructing initcode.\n\n    Behavior should be the same before and after EIP-6780.\n\n    Test using:\n      - Different initial balances for the self-destructing contract\n      - Different transaction value amounts\n    \"\"\"\n    tx = Transaction(\n        sender=sender,\n        value=tx_value,\n        data=selfdestruct_code,\n        to=None,\n        gas_limit=500_000,\n    )\n    selfdestruct_contract_address = tx.created_contract\n    pre.fund_address(selfdestruct_contract_address, selfdestruct_contract_initial_balance)\n\n    # Our entry point is an initcode that in turn creates a self-destructing\n    # contract\n    sendall_amount = selfdestruct_contract_initial_balance + tx_value\n\n    post: Dict[Address, Account] = {\n        selfdestruct_contract_address: Account.NONEXISTENT,  # type: ignore\n        sendall_recipient_addresses[0]: Account(balance=sendall_amount, storage={0: 1}),\n    }\n\n    state_test(pre=pre, post=post, tx=tx)\n\n\n# Can only recreate using CREATE2\n@pytest.mark.parametrize(\"create_opcode\", [Op.CREATE2])\n@pytest.mark.parametrize(\n    \"sendall_recipient_addresses\",\n    [\n        pytest.param(\n            [PRE_DEPLOY_CONTRACT_1],\n            id=\"selfdestruct_other_address\",\n        ),\n        pytest.param(\n            [SELF_ADDRESS],\n            id=\"selfdestruct_to_self\",\n        ),\n    ],\n    indirect=[\"sendall_recipient_addresses\"],\n)\n@pytest.mark.parametrize(\"selfdestruct_contract_initial_balance\", [0, 100_000])\n@pytest.mark.parametrize(\"recreate_times\", [1])\n@pytest.mark.parametrize(\"call_times\", [1])\n@pytest.mark.valid_from(\"Shanghai\")\ndef test_recreate_self_destructed_contract_different_txs(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    sender: EOA,\n    selfdestruct_code: Bytecode,\n    selfdestruct_contract_initial_balance: int,\n    sendall_recipient_addresses: List[Address],\n    create_opcode: Op,\n    # Number of times to recreate the contract in different transactions\n    recreate_times: int,\n    # Number of times to call the self-destructing contract in the same tx\n    call_times: int,\n) -> None:\n    \"\"\"\n    Test that a contract can be recreated after it has self-destructed, over\n    the lapse of multiple transactions.\n\n    Behavior should be the same before and after EIP-6780.\n\n    Test using:\n      - Different initial balances for the self-destructing contract\n      - Contract creating opcodes that are not CREATE\n    \"\"\"\n    selfdestruct_contract_initcode = Initcode(deploy_code=selfdestruct_code)\n    initcode_copy_from_address = pre.deploy_contract(selfdestruct_contract_initcode)\n    entry_code_storage = Storage()\n    sendall_amount = selfdestruct_contract_initial_balance\n\n    # Bytecode used to create the contract\n    assert create_opcode != Op.CREATE, \"cannot recreate contract using CREATE opcode\"\n    create_bytecode = create_opcode(size=len(selfdestruct_contract_initcode))\n\n    # Entry code that will be executed, creates the contract and then calls it\n    entry_code = (\n        # Initcode is already deployed at initcode_copy_from_address, so just\n        # copy it\n        Op.EXTCODECOPY(\n            initcode_copy_from_address,\n            0,\n            0,\n            len(selfdestruct_contract_initcode),\n        )\n        + Op.MSTORE(0, create_bytecode)\n        + Op.SSTORE(\n            Op.CALLDATALOAD(0),\n            Op.MLOAD(0),\n        )\n    )\n\n    for i in range(call_times):\n        entry_code += Op.CALL(\n            Op.GASLIMIT,\n            Op.MLOAD(0),\n            i,\n            0,\n            0,\n            0,\n            0,\n        )\n        sendall_amount += i\n\n    entry_code += Op.STOP\n\n    entry_code_address = pre.deploy_contract(code=entry_code)\n    selfdestruct_contract_address = compute_create_address(\n        address=entry_code_address, initcode=selfdestruct_contract_initcode, opcode=create_opcode\n    )\n    pre.fund_address(selfdestruct_contract_address, selfdestruct_contract_initial_balance)\n    for i in range(len(sendall_recipient_addresses)):\n        if sendall_recipient_addresses[i] == SELF_ADDRESS:\n            sendall_recipient_addresses[i] = selfdestruct_contract_address\n\n    txs: List[Transaction] = []\n    for i in range(recreate_times + 1):\n        txs.append(\n            Transaction(\n                data=Hash(i),\n                sender=sender,\n                to=entry_code_address,\n                gas_limit=500_000,\n            )\n        )\n        entry_code_storage[i] = selfdestruct_contract_address\n\n    post: Dict[Address, Account] = {\n        entry_code_address: Account(\n            storage=entry_code_storage,\n        ),\n        selfdestruct_contract_address: Account.NONEXISTENT,  # type: ignore\n    }\n    if sendall_recipient_addresses[0] != selfdestruct_contract_address:\n        post[sendall_recipient_addresses[0]] = Account(balance=sendall_amount, storage={0: 1})\n\n    blockchain_test(pre=pre, post=post, blocks=[Block(txs=txs)])\n\n\n@pytest.mark.parametrize(\n    \"call_times,sendall_recipient_addresses\",\n    [\n        pytest.param(\n            1,\n            [PRE_DEPLOY_CONTRACT_1],\n            id=\"single_call\",\n        ),\n        pytest.param(\n            1,\n            [SELF_ADDRESS],\n            id=\"single_call_self\",\n        ),\n        pytest.param(\n            2,\n            [PRE_DEPLOY_CONTRACT_1],\n            id=\"multiple_calls_single_sendall_recipient\",\n        ),\n        pytest.param(\n            2,\n            [SELF_ADDRESS],\n            id=\"multiple_calls_single_self_recipient\",\n        ),\n        pytest.param(\n            3,\n            [PRE_DEPLOY_CONTRACT_1, PRE_DEPLOY_CONTRACT_2, PRE_DEPLOY_CONTRACT_3],\n            id=\"multiple_calls_multiple_sendall_recipients\",\n        ),\n        pytest.param(\n            3,\n            [SELF_ADDRESS, PRE_DEPLOY_CONTRACT_2, PRE_DEPLOY_CONTRACT_3],\n            id=\"multiple_calls_multiple_sendall_recipients_including_self\",\n        ),\n        pytest.param(\n            3,\n            [PRE_DEPLOY_CONTRACT_1, PRE_DEPLOY_CONTRACT_2, SELF_ADDRESS],\n            id=\"multiple_calls_multiple_sendall_recipients_including_self_last\",\n        ),\n        pytest.param(\n            6,\n            [SELF_ADDRESS, PRE_DEPLOY_CONTRACT_2, PRE_DEPLOY_CONTRACT_3],\n            id=\"multiple_calls_multiple_repeating_sendall_recipients_including_self\",\n        ),\n        pytest.param(\n            6,\n            [PRE_DEPLOY_CONTRACT_1, PRE_DEPLOY_CONTRACT_2, SELF_ADDRESS],\n            id=\"multiple_calls_multiple_repeating_sendall_recipients_including_self_last\",\n        ),\n    ],\n    indirect=[\"sendall_recipient_addresses\"],\n)\n@pytest.mark.parametrize(\"selfdestruct_contract_initial_balance\", [0, 100_000])\n@pytest.mark.valid_from(\"Shanghai\")\ndef test_selfdestruct_pre_existing(\n    state_test: StateTestFiller,\n    eip_enabled: bool,\n    pre: Alloc,\n    sender: EOA,\n    selfdestruct_code: Bytecode,\n    selfdestruct_contract_initial_balance: int,\n    sendall_recipient_addresses: List[Address],\n    call_times: int,\n) -> None:\n    \"\"\"\n    Test calling a previously created account that contains a selfdestruct, and\n    verify its balance is sent to the destination address.\n\n    After EIP-6780, the balance should be sent to the send-all recipient\n    address, similar to the behavior before the EIP, but the account is not\n    deleted.\n\n    Test using:\n    - Different send-all recipient addresses: single, multiple,\n       including self\n    - Different initial balances for the self-destructing contract\n    \"\"\"\n    selfdestruct_contract_address = pre.deploy_contract(\n        selfdestruct_code, balance=selfdestruct_contract_initial_balance\n    )\n    entry_code_storage = Storage()\n\n    for i in range(len(sendall_recipient_addresses)):\n        if sendall_recipient_addresses[i] == SELF_ADDRESS:\n            sendall_recipient_addresses[i] = selfdestruct_contract_address\n\n    # Create a dict to record the expected final balances\n    sendall_final_balances = dict(\n        zip(sendall_recipient_addresses, [0] * len(sendall_recipient_addresses), strict=False)\n    )\n    selfdestruct_contract_current_balance = selfdestruct_contract_initial_balance\n\n    # Entry code in this case will simply call the pre-existing self-\n    # destructing contract, as many times as required\n    entry_code = Bytecode()\n\n    # Call the self-destructing contract multiple times as required, increasing\n    # the wei sent each time\n    entry_code_balance = 0\n    for i, sendall_recipient in zip(range(call_times), cycle(sendall_recipient_addresses)):\n        entry_code += Op.MSTORE(0, sendall_recipient)\n        entry_code += Op.SSTORE(\n            entry_code_storage.store_next(1),\n            Op.CALL(\n                Op.GASLIMIT,  # Gas\n                selfdestruct_contract_address,  # Address\n                i,  # Value\n                0,\n                32,\n                0,\n                0,\n            ),\n        )\n        entry_code_balance += i\n        selfdestruct_contract_current_balance += i\n\n        # Balance is always sent to other contracts\n        if sendall_recipient != selfdestruct_contract_address:\n            sendall_final_balances[sendall_recipient] += selfdestruct_contract_current_balance\n\n        # Balance is only kept by the self-destructing contract if we are\n        # sending to self and the EIP is activated, otherwise the balance is\n        # destroyed\n        if sendall_recipient != selfdestruct_contract_address or not eip_enabled:\n            selfdestruct_contract_current_balance = 0\n\n        entry_code += Op.SSTORE(\n            entry_code_storage.store_next(selfdestruct_contract_current_balance),\n            Op.BALANCE(selfdestruct_contract_address),\n        )\n\n    # Check the EXTCODE* properties of the self-destructing contract\n    entry_code += Op.SSTORE(\n        entry_code_storage.store_next(len(selfdestruct_code)),\n        Op.EXTCODESIZE(selfdestruct_contract_address),\n    )\n\n    entry_code += Op.SSTORE(\n        entry_code_storage.store_next(selfdestruct_code.keccak256()),\n        Op.EXTCODEHASH(selfdestruct_contract_address),\n    )\n\n    # Lastly return zero so the entry point contract is created and we can\n    # retain the stored values for verification.\n    entry_code += Op.RETURN(32, 1)\n\n    tx = Transaction(\n        value=entry_code_balance,\n        data=entry_code,\n        sender=sender,\n        to=None,\n        gas_limit=500_000,\n    )\n\n    entry_code_address = tx.created_contract\n\n    post: Dict[Address, Account] = {\n        entry_code_address: Account(\n            storage=entry_code_storage,\n        ),\n    }\n\n    # Check the balances of the sendall recipients\n    for address, balance in sendall_final_balances.items():\n        if address != selfdestruct_contract_address:\n            post[address] = Account(balance=balance, storage={0: 1})\n\n    if eip_enabled:\n        balance = selfdestruct_contract_current_balance\n        post[selfdestruct_contract_address] = Account(\n            balance=balance,\n            storage={0: call_times},\n        )\n    else:\n        post[selfdestruct_contract_address] = Account.NONEXISTENT  # type: ignore\n\n    state_test(pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.parametrize(\"selfdestruct_contract_initial_balance\", [0, 1])\n@pytest.mark.parametrize(\"call_times\", [1, 10])\n@pytest.mark.valid_from(\"Shanghai\")\ndef test_selfdestruct_created_same_block_different_tx(\n    blockchain_test: BlockchainTestFiller,\n    eip_enabled: bool,\n    pre: Alloc,\n    sender: EOA,\n    selfdestruct_contract_initial_balance: int,\n    sendall_recipient_addresses: List[Address],\n    call_times: int,\n) -> None:\n    \"\"\"\n    Test that if an account created in the same block that contains a\n    selfdestruct is called, its balance is sent to the send-all address, but\n    the account is not deleted.\n    \"\"\"\n    selfdestruct_code = selfdestruct_code_preset(\n        sendall_recipient_addresses=sendall_recipient_addresses,\n    )\n    selfdestruct_contract_initcode = Initcode(deploy_code=selfdestruct_code)\n    selfdestruct_contract_address = compute_create_address(address=sender, nonce=0)\n    entry_code_address = compute_create_address(address=sender, nonce=1)\n    entry_code_storage = Storage()\n    sendall_amount = selfdestruct_contract_initial_balance\n    entry_code = Bytecode()\n\n    # Entry code in this case will simply call the pre-existing self-\n    # destructing contract, as many times as required\n\n    # Call the self-destructing contract multiple times as required, increasing\n    # the wei sent each time\n    entry_code_balance = 0\n    for i in range(call_times):\n        entry_code += Op.SSTORE(\n            entry_code_storage.store_next(1),\n            Op.CALL(\n                Op.GASLIMIT,  # Gas\n                selfdestruct_contract_address,  # Address\n                i,  # Value\n                0,\n                0,\n                0,\n                0,\n            ),\n        )\n        entry_code_balance += i\n        sendall_amount += i\n\n        entry_code += Op.SSTORE(\n            entry_code_storage.store_next(0),\n            Op.BALANCE(selfdestruct_contract_address),\n        )\n\n    # Check the EXTCODE* properties of the self-destructing contract\n    entry_code += Op.SSTORE(\n        entry_code_storage.store_next(len(selfdestruct_code)),\n        Op.EXTCODESIZE(selfdestruct_contract_address),\n    )\n\n    entry_code += Op.SSTORE(\n        entry_code_storage.store_next(selfdestruct_code.keccak256()),\n        Op.EXTCODEHASH(selfdestruct_contract_address),\n    )\n\n    # Lastly return zero so the entry point contract is created and we can\n    # retain the stored values for verification.\n    entry_code += Op.RETURN(32, 1)\n\n    post: Dict[Address, Account] = {\n        entry_code_address: Account(\n            storage=entry_code_storage,\n        ),\n        sendall_recipient_addresses[0]: Account(balance=sendall_amount, storage={0: 1}),\n    }\n\n    if eip_enabled:\n        post[selfdestruct_contract_address] = Account(balance=0, storage={0: call_times})\n    else:\n        post[selfdestruct_contract_address] = Account.NONEXISTENT  # type: ignore\n\n    txs = [\n        Transaction(\n            value=selfdestruct_contract_initial_balance,\n            data=selfdestruct_contract_initcode,\n            sender=sender,\n            to=None,\n            gas_limit=500_000,\n        ),\n        Transaction(\n            value=entry_code_balance,\n            data=entry_code,\n            sender=sender,\n            to=None,\n            gas_limit=500_000,\n        ),\n    ]\n\n    blockchain_test(pre=pre, post=post, blocks=[Block(txs=txs)])\n\n\n@pytest.mark.parametrize(\"call_times\", [1])\n@pytest.mark.parametrize(\"selfdestruct_contract_initial_balance\", [0, 1])\n@pytest.mark.parametrize(\"call_opcode\", [Op.DELEGATECALL, Op.CALLCODE])\n@pytest.mark.parametrize(\"create_opcode\", [Op.CREATE])\n@pytest.mark.valid_from(\"Shanghai\")\ndef test_calling_from_new_contract_to_pre_existing_contract(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    sender: EOA,\n    sendall_recipient_addresses: List[Address],\n    create_opcode: Op,\n    call_opcode: Op,\n    call_times: int,\n    selfdestruct_contract_initial_balance: int,\n) -> None:\n    \"\"\"\n    Test that if an account created in the current transaction delegate-call a\n    previously created account that executes self-destruct, the calling account\n    is deleted.\n    \"\"\"\n    pre_existing_selfdestruct_address = pre.deploy_contract(\n        selfdestruct_code_preset(\n            sendall_recipient_addresses=sendall_recipient_addresses,\n        ),\n    )\n    # Our entry point is an initcode that in turn creates a self-destructing\n    # contract\n    entry_code_storage = Storage()\n    sendall_amount = 0\n\n    entry_code_address = compute_create_address(address=sender, nonce=0)\n    selfdestruct_contract_address = compute_create_address(address=entry_code_address, nonce=1)\n\n    pre.fund_address(selfdestruct_contract_address, selfdestruct_contract_initial_balance)\n\n    # self-destructing call\n    selfdestruct_code = call_opcode(address=pre_existing_selfdestruct_address)\n    selfdestruct_contract_initcode = Initcode(deploy_code=selfdestruct_code)\n    initcode_copy_from_address = pre.deploy_contract(selfdestruct_contract_initcode)\n\n    # Bytecode used to create the contract, can be CREATE or CREATE2\n    create_bytecode = create_opcode(size=len(selfdestruct_contract_initcode))\n\n    # Entry code that will be executed, creates the contract and then calls it\n    # in the same tx\n    entry_code = (\n        # Initcode is already deployed at `initcode_copy_from_address`, so just\n        # copy it\n        Op.EXTCODECOPY(\n            initcode_copy_from_address,\n            0,\n            0,\n            len(selfdestruct_contract_initcode),\n        )\n        # And we store the created address for verification purposes\n        + Op.SSTORE(\n            entry_code_storage.store_next(selfdestruct_contract_address),\n            create_bytecode,\n        )\n    )\n\n    # Store the EXTCODE* properties of the created address\n    entry_code += Op.SSTORE(\n        entry_code_storage.store_next(len(selfdestruct_code)),\n        Op.EXTCODESIZE(selfdestruct_contract_address),\n    )\n\n    entry_code += Op.SSTORE(\n        entry_code_storage.store_next(selfdestruct_code.keccak256()),\n        Op.EXTCODEHASH(selfdestruct_contract_address),\n    )\n\n    # Call the self-destructing contract multiple times as required, increasing\n    # the wei sent each time\n    entry_code_balance = 0\n    for i in range(call_times):\n        entry_code += Op.SSTORE(\n            entry_code_storage.store_next(1),\n            Op.CALL(\n                Op.GASLIMIT,  # Gas\n                selfdestruct_contract_address,  # Address\n                i,  # Value\n                0,\n                0,\n                0,\n                0,\n            ),\n        )\n        entry_code_balance += i\n        sendall_amount += i\n\n        entry_code += Op.SSTORE(\n            entry_code_storage.store_next(0),\n            Op.BALANCE(selfdestruct_contract_address),\n        )\n\n    # Check the EXTCODE* properties of the self-destructing contract again\n    entry_code += Op.SSTORE(\n        entry_code_storage.store_next(len(selfdestruct_code)),\n        Op.EXTCODESIZE(selfdestruct_contract_address),\n    )\n\n    entry_code += Op.SSTORE(\n        entry_code_storage.store_next(selfdestruct_code.keccak256()),\n        Op.EXTCODEHASH(selfdestruct_contract_address),\n    )\n\n    # Lastly return zero so the entry point contract is created and we can\n    # retain the stored values for verification.\n    entry_code += Op.RETURN(max(len(selfdestruct_contract_initcode), 32), 1)\n\n    if selfdestruct_contract_initial_balance > 0:\n        # Address where the contract is created already had some balance,\n        # which must be included in the send-all operation\n        sendall_amount += selfdestruct_contract_initial_balance\n\n    post: Dict[Address, Account] = {\n        entry_code_address: Account(\n            storage=entry_code_storage,\n        ),\n        selfdestruct_contract_address: Account.NONEXISTENT,  # type: ignore\n        sendall_recipient_addresses[0]: Account(balance=sendall_amount, storage={0: 1}),\n    }\n\n    tx = Transaction(\n        value=entry_code_balance,\n        data=entry_code,\n        sender=sender,\n        to=None,\n        gas_limit=500_000,\n    )\n\n    state_test(pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.parametrize(\"create_opcode\", [Op.CREATE, Op.CREATE2])\n@pytest.mark.parametrize(\"call_opcode\", [Op.DELEGATECALL, Op.CALLCODE])\n@pytest.mark.parametrize(\"call_times\", [1])\n@pytest.mark.parametrize(\"selfdestruct_contract_initial_balance\", [0, 1])\n@pytest.mark.parametrize(\"pre_existing_contract_initial_balance\", [0, 1])\n@pytest.mark.valid_from(\"Shanghai\")\ndef test_calling_from_pre_existing_contract_to_new_contract(\n    state_test: StateTestFiller,\n    eip_enabled: bool,\n    pre: Alloc,\n    sender: EOA,\n    selfdestruct_code: Bytecode,\n    sendall_recipient_addresses: List[Address],\n    call_opcode: Op,\n    create_opcode: Op,\n    call_times: int,\n    selfdestruct_contract_initial_balance: int,\n    pre_existing_contract_initial_balance: int,\n) -> None:\n    \"\"\"\n    Test that if an account created in the current transaction contains a\n    self-destruct and is delegate-called by an account created before the\n    current transaction, the calling account is not deleted.\n    \"\"\"\n    selfdestruct_contract_initcode = Initcode(deploy_code=selfdestruct_code)\n    initcode_copy_from_address = pre.deploy_contract(\n        selfdestruct_contract_initcode,\n    )\n\n    selfdestruct_contract_address = compute_create_address(\n        address=compute_create_address(address=sender, nonce=0),\n        nonce=1,\n        salt=0,\n        initcode=selfdestruct_contract_initcode,\n        opcode=create_opcode,\n    )\n\n    # Add the contract that delegate calls to the newly created contract\n    caller_code = Op.SSTORE(1, Op.ADD(Op.SLOAD(1), 1)) + call_opcode(\n        address=selfdestruct_contract_address\n    )\n    caller_address = pre.deploy_contract(\n        caller_code,\n        balance=pre_existing_contract_initial_balance,\n    )\n\n    # Our entry point is an initcode that in turn creates a self-destructing\n    # contract\n    entry_code_storage = Storage()\n    sendall_amount = pre_existing_contract_initial_balance\n\n    # Entry code that will be executed, creates the contract and then calls it\n    # in the same tx\n    entry_code = (\n        # Initcode is already deployed at `initcode_copy_from_address`, so just\n        # copy it\n        Op.EXTCODECOPY(\n            initcode_copy_from_address,\n            0,\n            0,\n            len(selfdestruct_contract_initcode),\n        )\n        # And we store the created address for verification purposes\n        + Op.SSTORE(\n            entry_code_storage.store_next(selfdestruct_contract_address),\n            create_opcode(\n                value=selfdestruct_contract_initial_balance,\n                size=len(selfdestruct_contract_initcode),\n            ),\n        )\n    )\n\n    # Store the EXTCODE* properties of the pre-existing address\n    entry_code += Op.SSTORE(\n        entry_code_storage.store_next(len(caller_code)),\n        Op.EXTCODESIZE(caller_address),\n    )\n\n    entry_code += Op.SSTORE(\n        entry_code_storage.store_next(caller_code.keccak256()),\n        Op.EXTCODEHASH(caller_address),\n    )\n\n    # Now instead of calling the newly created contract directly, we delegate\n    # call to it from a pre-existing contract, and the contract must not self-\n    # destruct\n    entry_code_balance = selfdestruct_contract_initial_balance\n    for i in range(call_times):\n        entry_code += Op.SSTORE(\n            entry_code_storage.store_next(1),\n            Op.CALL(\n                Op.GASLIMIT,  # Gas\n                caller_address,  # Address\n                i,  # Value\n                0,\n                0,\n                0,\n                0,\n            ),\n        )\n        entry_code_balance += i\n        sendall_amount += i\n\n        entry_code += Op.SSTORE(\n            entry_code_storage.store_next(0),\n            Op.BALANCE(caller_address),\n        )\n\n    # Check the EXTCODE* properties of the pre-existing address again\n    entry_code += Op.SSTORE(\n        entry_code_storage.store_next(len(caller_code)),\n        Op.EXTCODESIZE(caller_address),\n    )\n\n    entry_code += Op.SSTORE(\n        entry_code_storage.store_next(caller_code.keccak256()),\n        Op.EXTCODEHASH(caller_address),\n    )\n\n    # Lastly return zero so the entry point contract is created and we can\n    # retain the stored values for verification.\n    entry_code += Op.RETURN(max(len(selfdestruct_contract_initcode), 32), 1)\n\n    tx = Transaction(\n        value=entry_code_balance,\n        data=entry_code,\n        sender=sender,\n        to=None,\n        gas_limit=500_000,\n    )\n\n    entry_code_address = tx.created_contract\n\n    post: Dict[Address, Account] = {\n        entry_code_address: Account(\n            storage=entry_code_storage,\n        ),\n        sendall_recipient_addresses[0]: Account(balance=sendall_amount, storage={0: 1}),\n    }\n\n    if eip_enabled:\n        post[caller_address] = Account(\n            storage={\n                0: call_times,\n                1: call_times,\n            },\n            balance=0,\n        )\n    else:\n        post[caller_address] = Account.NONEXISTENT  # type: ignore\n\n    state_test(pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.parametrize(\"create_opcode\", [Op.CREATE, Op.CREATE2])\n@pytest.mark.parametrize(\"selfdestruct_contract_initial_balance\", [0, 100_000])\n@pytest.mark.parametrize(\n    \"call_times,sendall_recipient_addresses\",\n    [\n        pytest.param(1, [PRE_DEPLOY_CONTRACT_1], id=\"single_call\"),\n        pytest.param(5, [PRE_DEPLOY_CONTRACT_1], id=\"multiple_calls_single beneficiary\"),\n    ],\n    indirect=[\"sendall_recipient_addresses\"],\n)\n@pytest.mark.valid_from(\"Shanghai\")\ndef test_create_selfdestruct_same_tx_increased_nonce(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    sender: EOA,\n    selfdestruct_code: Bytecode,\n    sendall_recipient_addresses: List[Address],\n    create_opcode: Op,\n    call_times: int,\n    selfdestruct_contract_initial_balance: int,\n) -> None:\n    \"\"\"\n    Verify that a contract can self-destruct if it was created in the same\n    transaction, even when its nonce has been increased due to contract\n    creation.\n    \"\"\"\n    initcode = Op.RETURN(0, 1)\n    selfdestruct_pre_bytecode = Op.MSTORE(0, Op.PUSH32(bytes(initcode))) + Op.POP(\n        Op.CREATE(offset=32 - len(initcode), size=len(initcode))\n    )\n    selfdestruct_code = selfdestruct_pre_bytecode + selfdestruct_code\n    selfdestruct_contract_initcode = Initcode(deploy_code=selfdestruct_code)\n    initcode_copy_from_address = pre.deploy_contract(selfdestruct_contract_initcode)\n\n    selfdestruct_contract_address = compute_create_address(\n        address=compute_create_address(address=sender, nonce=0),\n        nonce=1,\n        initcode=selfdestruct_contract_initcode,\n        opcode=create_opcode,\n    )\n    if selfdestruct_contract_initial_balance > 0:\n        pre.fund_address(selfdestruct_contract_address, selfdestruct_contract_initial_balance)\n    # Our entry point is an initcode that in turn creates a self-destructing\n    # contract\n    entry_code_storage = Storage()\n\n    # Create a dict to record the expected final balances\n    sendall_final_balances = dict(\n        zip(sendall_recipient_addresses, [0] * len(sendall_recipient_addresses), strict=False)\n    )\n    selfdestruct_contract_current_balance = selfdestruct_contract_initial_balance\n\n    # Bytecode used to create the contract, can be CREATE or CREATE2\n    create_bytecode = create_opcode(size=len(selfdestruct_contract_initcode))\n\n    # Entry code that will be executed, creates the contract and then calls it\n    # in the same tx\n    entry_code = (\n        # Initcode is already deployed at `initcode_copy_from_address`, so just\n        # copy it\n        Op.EXTCODECOPY(\n            initcode_copy_from_address,\n            0,\n            0,\n            len(selfdestruct_contract_initcode),\n        )\n        # And we store the created address for verification purposes\n        + Op.SSTORE(\n            entry_code_storage.store_next(selfdestruct_contract_address),\n            create_bytecode,\n        )\n    )\n\n    # Store the EXTCODE* properties of the created address\n    entry_code += Op.SSTORE(\n        entry_code_storage.store_next(len(selfdestruct_code)),\n        Op.EXTCODESIZE(selfdestruct_contract_address),\n    )\n\n    entry_code += Op.SSTORE(\n        entry_code_storage.store_next(selfdestruct_code.keccak256()),\n        Op.EXTCODEHASH(selfdestruct_contract_address),\n    )\n\n    # Call the self-destructing contract multiple times as required, increasing\n    # the wei sent each time\n    entry_code_balance = 0\n    for i, sendall_recipient in zip(range(call_times), cycle(sendall_recipient_addresses)):\n        entry_code += Op.MSTORE(0, sendall_recipient)\n        entry_code += Op.SSTORE(\n            entry_code_storage.store_next(1),\n            Op.CALL(\n                Op.GASLIMIT,  # Gas\n                selfdestruct_contract_address,  # Address\n                i,  # Value\n                0,\n                32,\n                0,\n                0,\n            ),\n        )\n        entry_code_balance += i\n        selfdestruct_contract_current_balance += i\n\n        # Balance is always sent to other contracts\n        if sendall_recipient != selfdestruct_contract_address:\n            sendall_final_balances[sendall_recipient] += selfdestruct_contract_current_balance\n\n        # Self-destructing contract must always have zero balance after the\n        # call because the self-destruct always happens in the same transaction\n        # in this test\n        selfdestruct_contract_current_balance = 0\n\n        entry_code += Op.SSTORE(\n            entry_code_storage.store_next(0),\n            Op.BALANCE(selfdestruct_contract_address),\n        )\n\n    # Check the EXTCODE* properties of the self-destructing contract again\n    entry_code += Op.SSTORE(\n        entry_code_storage.store_next(len(selfdestruct_code)),\n        Op.EXTCODESIZE(selfdestruct_contract_address),\n    )\n\n    entry_code += Op.SSTORE(\n        entry_code_storage.store_next(selfdestruct_code.keccak256()),\n        Op.EXTCODEHASH(selfdestruct_contract_address),\n    )\n\n    # Lastly return zero so the entry point contract is created and we can\n    # retain the stored values for verification.\n    entry_code += Op.RETURN(max(len(selfdestruct_contract_initcode), 32), 1)\n\n    tx = Transaction(\n        value=entry_code_balance,\n        data=entry_code,\n        sender=sender,\n        to=None,\n        gas_limit=1_000_000,\n    )\n\n    entry_code_address = tx.created_contract\n\n    post: Dict[Address, Account] = {\n        entry_code_address: Account(\n            code=\"0x00\",\n            storage=entry_code_storage,\n        ),\n        initcode_copy_from_address: Account(\n            code=selfdestruct_contract_initcode,\n        ),\n    }\n\n    # Check the balances of the sendall recipients\n    for address, balance in sendall_final_balances.items():\n        post[address] = Account(balance=balance, storage={0: 1})\n\n    # Check the new contracts created from the self-destructing contract were\n    # correctly created.\n    for address in [\n        compute_create_address(address=selfdestruct_contract_address, nonce=i + 1)\n        for i in range(call_times)\n    ]:\n        post[address] = Account(\n            code=b\"\\x00\",\n        )\n\n    post[selfdestruct_contract_address] = Account.NONEXISTENT  # type: ignore\n\n    state_test(pre=pre, post=post, tx=tx)\n"
  },
  {
    "path": "tests/cancun/eip6780_selfdestruct/test_selfdestruct_revert.py",
    "content": "\"\"\"Tests for selfdestruct interaction with revert.\"\"\"\n\nfrom typing import Dict\n\nimport pytest\n\nfrom ethereum_test_forks import Cancun\nfrom ethereum_test_tools import (\n    EOA,\n    Account,\n    Address,\n    Alloc,\n    Bytecode,\n    Environment,\n    Initcode,\n    StateTestFiller,\n    Storage,\n    Transaction,\n    compute_create_address,\n)\nfrom ethereum_test_tools import Opcodes as Op\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-6780.md\"\nREFERENCE_SPEC_VERSION = \"1b6a0e94cc47e859b9866e570391cf37dc55059a\"\n\nSELFDESTRUCT_ENABLE_FORK = Cancun\n\n\n@pytest.fixture\ndef entry_code_address(sender: EOA) -> Address:\n    \"\"\"Address where the entry code will run.\"\"\"\n    return compute_create_address(address=sender, nonce=0)\n\n\n@pytest.fixture\ndef recursive_revert_contract_address_init_balance() -> int:\n    \"\"\"Return initial balance for recursive_revert_contract_address.\"\"\"\n    return 3\n\n\n@pytest.fixture\ndef recursive_revert_contract_address(\n    pre: Alloc,\n    recursive_revert_contract_code: Bytecode,\n    recursive_revert_contract_address_init_balance: int,\n) -> Address:\n    \"\"\"Address where the recursive revert contract address exists.\"\"\"\n    return pre.deploy_contract(\n        code=recursive_revert_contract_code,\n        balance=recursive_revert_contract_address_init_balance,\n    )\n\n\n@pytest.fixture\ndef selfdestruct_on_outer_call() -> int:\n    \"\"\"Whether to selfdestruct the target contract in the outer call scope.\"\"\"\n    return 0\n\n\n@pytest.fixture\ndef recursive_revert_contract_code(\n    selfdestruct_on_outer_call: int,\n    selfdestruct_with_transfer_contract_address: Address,\n) -> Bytecode:\n    \"\"\"\n    Contract code that:\n      Given selfdestructable contract A, transfer value to A\n      and call A.selfdestruct.\n      Then, recurse into a new call which transfers value to A,\n      call A.selfdestruct, and reverts.\n    \"\"\"\n    # Common prefix for all three cases:\n    #   case 1: selfdestruct_on_outer_call=1\n    #   case 2: selfdestruct_on_outer_call=2\n    #   case 3: selfdestruct_on_outer_call has a different value\n    common_prefix = (\n        Op.PUSH0\n        + Op.CALLDATALOAD\n        + Op.PUSH1(0x1)\n        + Op.PUSH20(selfdestruct_with_transfer_contract_address)\n        + Op.SWAP2\n        + Op.SWAP1\n        + Op.DUP2\n        + Op.PUSH0\n        + Op.EQ\n        + Op.PUSH1(0x3A)\n        + Op.JUMPI\n        + Op.POP\n        + Op.PUSH1(0x1)\n        + Op.EQ\n        + Op.PUSH1(0x29)\n        + Op.JUMPI\n        + Op.STOP\n        + Op.JUMPDEST\n        + Op.PUSH0\n        + Op.PUSH1(0x20)\n        + Op.DUP2\n        + Op.PUSH1(0x1)\n        + Op.DUP2\n        + Op.SWAP5\n        + Op.DUP2\n        + Op.DUP4\n        + Op.MSTORE\n        + Op.GASLIMIT\n        + Op.CALL\n        + Op.PUSH0\n        + Op.DUP1\n        + Op.REVERT\n        + Op.JUMPDEST\n    )\n\n    if selfdestruct_on_outer_call == 1:\n        suffix = (\n            Op.SWAP1\n            + Op.POP\n            + Op.PUSH1(0x1)\n            + Op.PUSH0\n            + Op.MSTORE\n            + Op.PUSH0\n            + Op.DUP1\n            + Op.PUSH1(0x20)\n            + Op.DUP2\n            + Op.PUSH1(0x1)\n            + Op.DUP7\n            + Op.GASLIMIT\n            + Op.CALL\n            + Op.POP\n            + Op.PUSH0\n            + Op.DUP1\n            + Op.MSTORE\n            + Op.PUSH0\n            + Op.DUP1\n            + Op.PUSH1(0x20)\n            + Op.DUP2\n            + Op.PUSH1(0x1)\n            + Op.DUP7\n            + Op.GASLIMIT\n            + Op.CALL\n            + Op.POP\n            + Op.PUSH0\n            + Op.MSTORE\n            + Op.PUSH0\n            + Op.DUP1\n            + Op.PUSH1(0x20)\n            + Op.DUP2\n            + Op.DUP1\n            + Op.ADDRESS\n            + Op.GASLIMIT\n            + Op.CALL\n            + Op.POP\n            + Op.BALANCE\n            + Op.PUSH1(0x1)\n            + Op.SSTORE\n            + Op.PUSH0\n            + Op.DUP1\n            + Op.RETURN\n        )\n    elif selfdestruct_on_outer_call == 2:\n        suffix = (\n            Op.PUSH0\n            + Op.PUSH1(0x20)\n            + Op.DUP2\n            + Op.PUSH1(0x1)\n            + Op.DUP7\n            + Op.DUP3\n            + Op.SWAP6\n            + Op.DUP4\n            + Op.DUP1\n            + Op.MSTORE\n            + Op.DUP4\n            + Op.DUP1\n            + Op.DUP7\n            + Op.DUP2\n            + Op.DUP7\n            + Op.DUP7\n            + Op.GASLIMIT\n            + Op.CALL\n            + Op.POP\n            + Op.DUP4\n            + Op.MSTORE\n            + Op.DUP3\n            + Op.DUP1\n            + Op.DUP6\n            + Op.DUP2\n            + Op.DUP1\n            + Op.ADDRESS\n            + Op.GASLIMIT\n            + Op.CALL\n            + Op.POP\n            + Op.DUP1\n            + Op.BALANCE\n            + Op.DUP3\n            + Op.SSTORE\n            + Op.DUP2\n            + Op.DUP4\n            + Op.MSTORE\n            + Op.GASLIMIT\n            + Op.CALL\n            + Op.PUSH0\n            + Op.DUP1\n            + Op.RETURN\n        )\n    else:  # selfdestruct_on_outer_call is neither 1 nor 2\n        suffix = (\n            Op.SWAP1\n            + Op.POP\n            + Op.PUSH0\n            + Op.DUP1\n            + Op.MSTORE\n            + Op.PUSH0\n            + Op.DUP1\n            + Op.PUSH1(0x20)\n            + Op.DUP2\n            + Op.PUSH1(0x1)\n            + Op.DUP7\n            + Op.GASLIMIT\n            + Op.CALL\n            + Op.POP\n            + Op.PUSH0\n            + Op.MSTORE\n            + Op.PUSH0\n            + Op.DUP1\n            + Op.PUSH1(0x20)\n            + Op.DUP2\n            + Op.DUP1\n            + Op.ADDRESS\n            + Op.GASLIMIT\n            + Op.CALL\n            + Op.POP\n            + Op.BALANCE\n            + Op.PUSH1(0x1)\n            + Op.SSTORE\n            + Op.PUSH0\n            + Op.DUP1\n            + Op.RETURN\n        )\n\n    return common_prefix + suffix\n\n\n@pytest.fixture\ndef selfdestruct_with_transfer_contract_address(\n    pre: Alloc,\n    entry_code_address: Address,\n    selfdestruct_with_transfer_contract_code: Bytecode,\n    same_tx: bool,\n) -> Address:\n    \"\"\"\n    Contract address for contract that can selfdestruct and receive value.\n    \"\"\"\n    if same_tx:\n        return compute_create_address(address=entry_code_address, nonce=1)\n    # We need to deploy the contract before.\n    return pre.deploy_contract(selfdestruct_with_transfer_contract_code)\n\n\n@pytest.fixture\ndef selfdestruct_with_transfer_contract_code(selfdestruct_recipient_address: Address) -> Bytecode:\n    \"\"\"Contract that can selfdestruct and receive value.\"\"\"\n    code: Bytecode = (\n        Op.PUSH0\n        + Op.CALLDATALOAD\n        + Op.PUSH20(selfdestruct_recipient_address)\n        + Op.SWAP1\n        + Op.EQ(Op.PUSH0, Op.DUP1)\n        + Op.PUSH1(0x2F)\n        + Op.JUMPI\n        + Op.PUSH1(0x1)\n        + Op.EQ\n        + Op.PUSH1(0x25)\n        + Op.JUMPI\n        + Op.STOP\n        + Op.JUMPDEST\n        + Op.PUSH1(0x1)\n        + Op.DUP1\n        + Op.SLOAD\n        + Op.ADD\n        + Op.PUSH1(0x1)\n        + Op.SSTORE\n        + Op.SELFDESTRUCT\n        + Op.JUMPDEST\n        + Op.PUSH1(0x1)\n        + Op.PUSH0\n        + Op.SLOAD\n        + Op.ADD\n        + Op.PUSH0\n        + Op.SSTORE\n        + Op.PUSH0\n        + Op.DUP1\n        + Op.RETURN\n    )\n\n    return code\n\n\n@pytest.fixture\ndef selfdestruct_with_transfer_contract_initcode(\n    selfdestruct_with_transfer_contract_code: Bytecode,\n) -> Bytecode:\n    \"\"\"Initcode for selfdestruct_with_transfer_contract_code.\"\"\"\n    return Initcode(deploy_code=selfdestruct_with_transfer_contract_code)\n\n\n@pytest.fixture\ndef selfdestruct_with_transfer_initcode_copy_from_address(\n    pre: Alloc,\n    selfdestruct_with_transfer_contract_initcode: Bytecode,\n) -> Address:\n    \"\"\"\n    Address of a pre-existing contract we use to simply copy initcode from.\n    \"\"\"\n    addr = pre.deploy_contract(selfdestruct_with_transfer_contract_initcode)\n    return addr\n\n\n@pytest.mark.parametrize(\n    \"same_tx\",\n    [True],\n    ids=[\"same_tx\"],\n)\n@pytest.mark.parametrize(\n    \"selfdestruct_on_outer_call\",\n    [0, 1, 2],\n    ids=[\n        \"no_outer_selfdestruct\",\n        \"outer_selfdestruct_before_inner_call\",\n        \"outer_selfdestruct_after_inner_call\",\n    ],\n)\n@pytest.mark.valid_from(\"Cancun\")\ndef test_selfdestruct_created_in_same_tx_with_revert(  # noqa SC200\n    state_test: StateTestFiller,\n    sender: EOA,\n    env: Environment,\n    pre: Alloc,\n    entry_code_address: Address,\n    selfdestruct_on_outer_call: int,\n    selfdestruct_with_transfer_contract_code: Bytecode,\n    selfdestruct_with_transfer_contract_initcode: Bytecode,\n    selfdestruct_with_transfer_contract_address: Address,\n    selfdestruct_recipient_address: Address,\n    selfdestruct_with_transfer_initcode_copy_from_address: Address,\n    recursive_revert_contract_address: Address,\n    recursive_revert_contract_code: Bytecode,\n) -> None:\n    \"\"\"\n    Given:\n      Contract A which has methods to receive balance and selfdestruct,\n      and was created in current tx.\n\n    Test the following call sequence:\n      Transfer value to A and call A.selfdestruct. Recurse into a new call\n      from transfers value to A, calls A.selfdestruct, and reverts.\n    \"\"\"\n    entry_code = Op.EXTCODECOPY(\n        selfdestruct_with_transfer_initcode_copy_from_address,\n        0,\n        0,\n        len(bytes(selfdestruct_with_transfer_contract_initcode)),\n    )\n\n    entry_code += Op.SSTORE(\n        0,\n        Op.CREATE(\n            0,\n            0,\n            # Value Offset\n            len(bytes(selfdestruct_with_transfer_contract_initcode)),\n        ),\n    )\n\n    entry_code += Op.CALL(\n        Op.GASLIMIT(),\n        recursive_revert_contract_address,\n        0,  # value\n        0,  # arg offset\n        0,  # arg length\n        0,  # ret offset\n        0,  # ret length\n    )\n\n    post: Dict[Address, Account] = {\n        entry_code_address: Account(\n            code=\"0x\",\n            storage=Storage(\n                {\n                    0: selfdestruct_with_transfer_contract_address,  # type: ignore\n                }\n            ),\n        ),\n        selfdestruct_with_transfer_initcode_copy_from_address: Account(\n            code=selfdestruct_with_transfer_contract_initcode,\n        ),\n        recursive_revert_contract_address: Account(\n            code=recursive_revert_contract_code,\n            storage=Storage({1: 1}),  # type: ignore\n        ),\n    }\n\n    if selfdestruct_on_outer_call > 0:\n        post[selfdestruct_with_transfer_contract_address] = Account.NONEXISTENT  # type: ignore\n        post[selfdestruct_recipient_address] = Account(\n            balance=1 if selfdestruct_on_outer_call == 1 else 2,\n        )\n    else:\n        post[selfdestruct_with_transfer_contract_address] = Account(\n            balance=1,\n            code=selfdestruct_with_transfer_contract_code,\n            storage=Storage(\n                {\n                    # 2 value transfers (1 in outer call, 1 in reverted inner\n                    # call)\n                    0: 1,  # type: ignore\n                    # 1 selfdestruct in reverted inner call\n                    1: 0,  # type: ignore\n                }\n            ),\n        )\n        post[selfdestruct_recipient_address] = Account.NONEXISTENT  # type: ignore\n\n    tx = Transaction(\n        value=0,\n        data=entry_code,\n        sender=sender,\n        to=None,\n        gas_limit=500_000,\n    )\n\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.parametrize(\n    \"recursive_revert_contract_address_init_balance\",\n    [2],\n    ids=[\"init_balance_2\"],\n)\n@pytest.mark.parametrize(\n    \"same_tx\",\n    [False],\n    ids=[\"not_same_tx\"],\n)\n@pytest.mark.parametrize(\n    \"selfdestruct_on_outer_call\",\n    [0, 1, 2],\n    ids=[\n        \"no_outer_selfdestruct\",\n        \"outer_selfdestruct_before_inner_call\",\n        \"outer_selfdestruct_after_inner_call\",\n    ],\n)\n@pytest.mark.valid_from(\"Cancun\")\ndef test_selfdestruct_not_created_in_same_tx_with_revert(\n    state_test: StateTestFiller,\n    sender: EOA,\n    env: Environment,\n    entry_code_address: Address,\n    pre: Alloc,\n    selfdestruct_on_outer_call: int,\n    selfdestruct_with_transfer_contract_code: Bytecode,\n    selfdestruct_with_transfer_contract_address: Address,\n    selfdestruct_recipient_address: Address,\n    recursive_revert_contract_address: Address,\n    recursive_revert_contract_code: Bytecode,\n) -> None:\n    \"\"\"\n    Same test as selfdestruct_created_in_same_tx_with_revert except\n    selfdestructable contract is pre-existing.\n    \"\"\"\n    entry_code = Op.CALL(\n        Op.GASLIMIT(),\n        recursive_revert_contract_address,\n        0,  # value\n        0,  # arg offset\n        0,  # arg length\n        0,  # ret offset\n        0,  # ret length\n    )\n\n    post: Dict[Address, Account] = {\n        entry_code_address: Account(code=\"0x\"),\n    }\n\n    if selfdestruct_on_outer_call > 0:\n        post[selfdestruct_with_transfer_contract_address] = Account(\n            balance=1 if selfdestruct_on_outer_call == 1 else 0,\n            code=selfdestruct_with_transfer_contract_code,\n            storage=Storage(\n                {\n                    # 2 value transfers: 1 in outer call, 1 in reverted inner\n                    # call\n                    0: 1,  # type: ignore\n                    # 1 selfdestruct in reverted inner call\n                    1: 1,  # type: ignore\n                }\n            ),\n        )\n        post[selfdestruct_recipient_address] = Account(\n            balance=1 if selfdestruct_on_outer_call == 1 else 2\n        )\n    else:\n        post[selfdestruct_with_transfer_contract_address] = Account(\n            balance=1,\n            code=selfdestruct_with_transfer_contract_code,\n            storage=Storage(\n                {\n                    # 2 value transfers:\n                    #   1 in outer call, 1 in reverted inner call\n                    0: 1,  # type: ignore\n                    # 2 selfdestructs:\n                    #   1 in outer call, 1 in reverted inner call\n                    1: 0,  # type: ignore\n                }\n            ),\n        )\n        post[selfdestruct_recipient_address] = Account.NONEXISTENT  # type: ignore\n\n    tx = Transaction(\n        value=0,\n        data=entry_code,\n        sender=sender,\n        to=None,\n        gas_limit=500_000,\n    )\n\n    state_test(env=env, pre=pre, post=post, tx=tx)\n"
  },
  {
    "path": "tests/cancun/eip7516_blobgasfee/__init__.py",
    "content": "\"\"\"Tests for EIP-7516: BLOBBASEFEE opcode.\"\"\"\n"
  },
  {
    "path": "tests/cancun/eip7516_blobgasfee/test_blobgasfee_opcode.py",
    "content": "\"\"\"\nBLOBBASEFEE opcode tests.\n\nTests for [EIP-7516: BLOBBASEFEE opcode](https://eips.ethereum.org/EIPS/eip-7516).\n\"\"\"\n\nfrom itertools import count\n\nimport pytest\n\nfrom ethereum_test_tools import (\n    Account,\n    Address,\n    Alloc,\n    Block,\n    BlockchainTestFiller,\n    Bytecode,\n    Environment,\n    StateTestFiller,\n    Storage,\n    Transaction,\n)\nfrom ethereum_test_tools import Opcodes as Op\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-7516.md\"\nREFERENCE_SPEC_VERSION = \"dcd2f4ede58a6ed908acd3cc2c198e9f605cbf3b\"\n\nBLOBBASEFEE_GAS = 2\n\n\n@pytest.fixture\ndef call_gas() -> int:\n    \"\"\"Amount of gas to use when calling the callee code.\"\"\"\n    return 0xFFFF\n\n\n@pytest.fixture\ndef callee_code() -> Bytecode:\n    \"\"\"Bytecode under test, by default, only call the BLOBBASEFEE opcode.\"\"\"\n    return Op.BLOBBASEFEE + Op.STOP\n\n\n@pytest.fixture\ndef callee_address(pre: Alloc, callee_code: Bytecode) -> Address:\n    \"\"\"Address of the account containing the bytecode under test.\"\"\"\n    return pre.deploy_contract(callee_code)\n\n\n@pytest.fixture\ndef caller_code(\n    call_gas: int,\n    callee_address: Address,\n) -> Bytecode:\n    \"\"\"Bytecode used to call the bytecode containing the BLOBBASEFEE opcode.\"\"\"\n    return Op.SSTORE(Op.SELFBALANCE, Op.CALL(gas=call_gas, address=callee_address))\n\n\n@pytest.fixture\ndef caller_pre_storage() -> Storage:\n    \"\"\"\n    Storage of the account containing the bytecode that calls the test\n    contract.\n    \"\"\"\n    return Storage()\n\n\n@pytest.fixture\ndef caller_address(pre: Alloc, caller_code: Bytecode, caller_pre_storage: Storage) -> Address:\n    \"\"\"\n    Address of the account containing the bytecode that calls the test\n    contract.\n    \"\"\"\n    return pre.deploy_contract(caller_code)\n\n\n@pytest.fixture\ndef tx(pre: Alloc, caller_address: Address) -> Transaction:\n    \"\"\"\n    Prepare test transaction, by setting the destination account, the\n    transaction value, the transaction gas limit, and the transaction data.\n    \"\"\"\n    return Transaction(\n        sender=pre.fund_eoa(),\n        gas_limit=1_000_000,\n        to=caller_address,\n        value=1,\n    )\n\n\n@pytest.mark.parametrize(\n    \"callee_code,call_fails\",\n    [\n        pytest.param(Op.BLOBBASEFEE * 1024, False, id=\"no_stack_overflow\"),\n        pytest.param(Op.BLOBBASEFEE * 1025, True, id=\"stack_overflow\"),\n    ],\n)\n@pytest.mark.valid_from(\"Cancun\")\ndef test_blobbasefee_stack_overflow(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    caller_address: Address,\n    callee_address: Address,\n    tx: Transaction,\n    call_fails: bool,\n) -> None:\n    \"\"\"\n    Tests that the BLOBBASEFEE opcode produces a stack overflow by using it\n    repeatedly.\n    \"\"\"\n    post = {\n        caller_address: Account(\n            storage={1: 0 if call_fails else 1},\n        ),\n        callee_address: Account(\n            balance=0,\n        ),\n    }\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"call_gas,call_fails\",\n    [\n        pytest.param(BLOBBASEFEE_GAS, False, id=\"enough_gas\"),\n        pytest.param(BLOBBASEFEE_GAS - 1, True, id=\"out_of_gas\"),\n    ],\n)\n@pytest.mark.valid_from(\"Cancun\")\ndef test_blobbasefee_out_of_gas(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    caller_address: Address,\n    callee_address: Address,\n    tx: Transaction,\n    call_fails: bool,\n) -> None:\n    \"\"\"Tests that the BLOBBASEFEE opcode fails with insufficient gas.\"\"\"\n    post = {\n        caller_address: Account(\n            storage={1: 0 if call_fails else 1},\n        ),\n        callee_address: Account(\n            balance=0,\n        ),\n    }\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\"caller_pre_storage\", [{1: 1}], ids=[\"\"])\n@pytest.mark.valid_at_transition_to(\"Cancun\")\ndef test_blobbasefee_before_fork(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    caller_address: Address,\n    callee_address: Address,\n    tx: Transaction,\n) -> None:\n    \"\"\"\n    Tests that the BLOBBASEFEE opcode results on exception when called before\n    the fork.\n    \"\"\"\n    # Fork happens at timestamp 15_000\n    timestamp = 7_500\n    post = {\n        caller_address: Account(\n            storage={1: 0},\n        ),\n        callee_address: Account(\n            balance=0,\n        ),\n    }\n    state_test(\n        env=Environment(\n            timestamp=timestamp,\n        ),\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\ntimestamps = [7_500, 14_999, 15_000]\n\n\n@pytest.mark.parametrize(\n    \"caller_pre_storage\",\n    [{block_number: 0xFF for block_number, _ in enumerate(timestamps, start=1)}],\n    ids=[\"\"],\n)\n@pytest.mark.valid_at_transition_to(\"Cancun\")\ndef test_blobbasefee_during_fork(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    caller_address: Address,\n    callee_address: Address,\n    tx: Transaction,\n) -> None:\n    \"\"\"\n    Tests that the BLOBBASEFEE opcode results on exception when called before\n    the fork and succeeds when called after the fork.\n    \"\"\"\n    code_caller_post_storage = Storage()\n\n    nonce = count(0)\n\n    blocks = []\n\n    for block_number, timestamp in enumerate(timestamps, start=1):\n        blocks.append(\n            Block(\n                txs=[tx.with_nonce(next(nonce))],\n                timestamp=timestamp,\n            ),\n        )\n        # pre-set storage just to make sure we detect the change\n        code_caller_post_storage[block_number] = 0 if timestamp < 15_000 else 1\n\n    post = {\n        caller_address: Account(\n            storage=code_caller_post_storage,\n        ),\n        callee_address: Account(\n            balance=0,\n        ),\n    }\n    blockchain_test(\n        genesis_environment=Environment(),\n        pre=pre,\n        blocks=blocks,\n        post=post,\n    )\n"
  },
  {
    "path": "tests/constantinople/__init__.py",
    "content": "\"\"\"Test cases for EVM functionality introduced in Constantinople.\"\"\"\n"
  },
  {
    "path": "tests/constantinople/eip1014_create2/__init__.py",
    "content": "\"\"\"\nTests for [EIP-1014: Skinny CREATE2](https://eips.ethereum.org/EIPS/eip-1014).\n\"\"\"\n"
  },
  {
    "path": "tests/constantinople/eip1014_create2/spec.py",
    "content": "\"\"\"Defines EIP-1014 specification constants and functions.\"\"\"\n\nfrom dataclasses import dataclass\n\n\n@dataclass(frozen=True)\nclass ReferenceSpec:\n    \"\"\"Defines the reference spec version and git path.\"\"\"\n\n    git_path: str\n    version: str\n\n\nref_spec_1014 = ReferenceSpec(\"EIPS/eip-1014.md\", \"31d4d62ec1dfc9f2bb26ca648f05d4cc2f47da09\")\n\n\n@dataclass(frozen=True)\nclass Spec:\n    \"\"\"\n    Parameters from the EIP-1014 specifications as defined at\n    https://eips.ethereum.org/EIPS/eip-1014.\n    \"\"\"\n"
  },
  {
    "path": "tests/constantinople/eip1014_create2/test_create_returndata.py",
    "content": "\"\"\"\nReturn data management around create2 Port\ncall_outsize_then_create2_successful_then_returndatasizeFiller.json test Port\ncall_then_create2_successful_then_returndatasizeFiller.json test.\n\"\"\"\n\nimport pytest\n\nfrom ethereum_test_tools import Account, Alloc, StateTestFiller, Transaction, keccak256\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom .spec import ref_spec_1014\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_1014.git_path\nREFERENCE_SPEC_VERSION = ref_spec_1014.version\n\n\n@pytest.mark.ported_from(\n    [\n        \"https://github.com/ethereum/tests/blob/v13.3/src/GeneralStateTestsFiller/stCreate2/call_outsize_then_create2_successful_then_returndatasizeFiller.json\",\n        \"https://github.com/ethereum/tests/blob/v13.3/src/GeneralStateTestsFiller/stCreate2/call_then_create2_successful_then_returndatasizeFiller.json\",\n    ],\n    pr=[\"https://github.com/ethereum/execution-spec-tests/pull/497\"],\n    coverage_missed_reason=\"coinbase is deleted in original test (tx.gas_price==env.base_fee)\",\n)\n@pytest.mark.valid_from(\"Istanbul\")\n@pytest.mark.parametrize(\"call_return_size\", [35, 32, 0])\n@pytest.mark.parametrize(\"create_type\", [Op.CREATE, Op.CREATE2])\n@pytest.mark.parametrize(\"return_type\", [Op.RETURN, Op.REVERT])\n@pytest.mark.parametrize(\"return_type_in_create\", [Op.RETURN, Op.REVERT])\n@pytest.mark.slow()\ndef test_create2_return_data(\n    call_return_size: int,\n    create_type: Op,\n    return_type: Op,\n    return_type_in_create: Op,\n    pre: Alloc,\n    state_test: StateTestFiller,\n) -> None:\n    \"\"\"\n    Validate that create2 return data does not interfere with previously\n    existing memory.\n    \"\"\"\n    # Storage vars\n    slot_returndatasize_before_create = 0\n    slot_returndatasize_after_create = 1\n    slot_return_data_hash_before_create = 2\n    slot_return_data_hash_after_create = 3\n    slot_code_worked = 4\n    slot_returndatacopy_before_create = 5\n    slot_returndatacopy_before_create_2 = 6\n    slot_returndatacopy_after_create = 7\n    slot_begin_memory_after_create = 8\n\n    # CREATE2 Initcode\n    return_data_in_create = 0xFFFAFB\n    initcode = Op.MSTORE(0, return_data_in_create) + return_type_in_create(0, 32)\n    call_return_data_value = 0x1122334455667788991011121314151617181920212223242526272829303132\n    expected_call_return_data = int.to_bytes(call_return_data_value, 32, byteorder=\"big\").ljust(\n        call_return_size, b\"\\0\"\n    )[0:call_return_size]\n    expected_returndatacopy = expected_call_return_data[0:32]\n    empty_data = b\"\"\n\n    address_call = pre.deploy_contract(\n        code=Op.MSTORE(0, call_return_data_value)\n        + Op.MSTORE(32, 0xFFFFFFFF)\n        + return_type(0, call_return_size),\n        storage={},\n    )\n    address_to = pre.deploy_contract(\n        balance=100_000_000,\n        code=Op.JUMPDEST()\n        + Op.MSTORE(0x100, Op.CALLDATALOAD(0))\n        + Op.CALL(0x0900000000, address_call, 0, 0, 0, 0, call_return_size)\n        #\n        #\n        + Op.SSTORE(slot_returndatasize_before_create, Op.RETURNDATASIZE())\n        + Op.RETURNDATACOPY(0x200, 0, call_return_size)\n        + Op.SSTORE(slot_returndatacopy_before_create, Op.MLOAD(0x200))\n        + Op.SSTORE(slot_returndatacopy_before_create_2, Op.MLOAD(0x220))\n        + Op.SSTORE(slot_return_data_hash_before_create, Op.SHA3(0, call_return_size))\n        #\n        #\n        + create_type(offset=0x100, size=Op.CALLDATASIZE())\n        + Op.SSTORE(slot_returndatasize_after_create, Op.RETURNDATASIZE())\n        + Op.RETURNDATACOPY(0x300, 0, Op.RETURNDATASIZE())\n        + Op.SSTORE(slot_returndatacopy_after_create, Op.MLOAD(0x300))\n        + Op.SSTORE(slot_return_data_hash_after_create, Op.SHA3(0x300, Op.RETURNDATASIZE()))\n        + Op.SSTORE(slot_begin_memory_after_create, Op.MLOAD(0))\n        + Op.SSTORE(slot_code_worked, 1)\n        + Op.STOP(),\n        storage={\n            slot_returndatasize_before_create: 0xFF,\n            slot_returndatasize_after_create: 0xFF,\n            slot_return_data_hash_before_create: 0xFF,\n            slot_return_data_hash_after_create: 0xFF,\n            slot_returndatacopy_before_create: 0xFF,\n            slot_returndatacopy_before_create_2: 0xFF,\n            slot_begin_memory_after_create: 0xFF,\n        },\n    )\n\n    post = {\n        address_to: Account(\n            storage={\n                slot_code_worked: 1,\n                slot_returndatacopy_before_create: expected_returndatacopy,\n                slot_returndatacopy_before_create_2: 0,\n                #\n                # the actual bytes returned by returndatacopy opcode after\n                # create\n                slot_returndatacopy_after_create: (\n                    return_data_in_create if return_type_in_create == Op.REVERT else 0\n                ),\n                slot_returndatasize_before_create: call_return_size,\n                #\n                # return datasize value after create\n                slot_returndatasize_after_create: (\n                    0x20 if return_type_in_create == Op.REVERT else 0\n                ),\n                #\n                slot_return_data_hash_before_create: keccak256(expected_call_return_data),\n                slot_return_data_hash_after_create: (\n                    keccak256(empty_data)\n                    if return_type_in_create == Op.RETURN\n                    else keccak256(int.to_bytes(return_data_in_create, 32, byteorder=\"big\"))\n                ),\n                #\n                # check that create 2 didn't mess up with initial memory space\n                # declared for return\n                slot_begin_memory_after_create: expected_returndatacopy,\n            }\n        )\n    }\n\n    tx = Transaction(\n        sender=pre.fund_eoa(),\n        to=address_to,\n        protected=False,\n        data=initcode,\n        gas_limit=500_000,\n        value=0,\n    )\n\n    state_test(pre=pre, post=post, tx=tx)\n"
  },
  {
    "path": "tests/constantinople/eip1014_create2/test_recreate.py",
    "content": "\"\"\"Test Account Self-destruction and Re-creation.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    Account,\n    Alloc,\n    Block,\n    BlockchainTestFiller,\n    Initcode,\n    Transaction,\n    compute_create2_address,\n)\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom .spec import ref_spec_1014\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_1014.git_path\nREFERENCE_SPEC_VERSION = ref_spec_1014.version\n\n\n@pytest.mark.parametrize(\"recreate_on_separate_block\", [True, False])\n@pytest.mark.valid_from(\"Constantinople\")\n@pytest.mark.valid_until(\"Shanghai\")\ndef test_recreate(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    fork: Fork,\n    recreate_on_separate_block: bool,\n) -> None:\n    \"\"\"\n    Test that the storage is cleared when a contract is first destructed then\n    re-created using CREATE2.\n    \"\"\"\n    creator_contract_code = Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE) + Op.CREATE2(\n        0, 0, Op.CALLDATASIZE, 0\n    )\n    creator_address = pre.deploy_contract(creator_contract_code)\n    sender = pre.fund_eoa()\n\n    deploy_code = (\n        Op.EQ(0, Op.CALLVALUE)\n        + Op.PUSH1(0xC)\n        + Op.JUMPI\n        + Op.SSTORE(0, Op.CALLVALUE)\n        + Op.STOP\n        + Op.JUMPDEST\n        + Op.PUSH1(0x0)\n        + Op.SELFDESTRUCT\n    )\n\n    initcode = Initcode(deploy_code=deploy_code)\n\n    create_tx = Transaction(\n        gas_limit=100_000,\n        to=creator_address,\n        data=initcode,\n        sender=sender,\n    )\n\n    created_contract_address = compute_create2_address(\n        address=creator_address, salt=0, initcode=initcode\n    )\n\n    set_storage_tx = Transaction(\n        gas_limit=100_000,\n        to=created_contract_address,\n        value=1,\n        sender=sender,\n    )\n\n    blocks = [Block(txs=[create_tx, set_storage_tx])]\n\n    destruct_tx = Transaction(\n        gas_limit=100_000,\n        to=created_contract_address,\n        value=0,\n        sender=sender,\n    )\n\n    balance = 1\n    send_funds_tx = Transaction(\n        gas_limit=100_000,\n        to=created_contract_address,\n        value=balance,\n        sender=sender,\n    )\n\n    re_create_tx = Transaction(\n        gas_limit=100_000,\n        to=creator_address,\n        data=initcode,\n        sender=sender,\n    )\n\n    if recreate_on_separate_block:\n        blocks.append(Block(txs=[destruct_tx, send_funds_tx]))\n        blocks.append(Block(txs=[re_create_tx]))\n    else:\n        blocks.append(Block(txs=[destruct_tx, send_funds_tx, re_create_tx]))\n\n    post = {\n        created_contract_address: Account(\n            nonce=1,\n            balance=balance,\n            code=deploy_code,\n            storage={},\n        ),\n    }\n\n    blockchain_test(pre=pre, post=post, blocks=blocks)\n"
  },
  {
    "path": "tests/constantinople/eip145_bitwise_shift/__init__.py",
    "content": "\"\"\"\nTest [EIP-145: Bitwise shifting instructions in EVM](https://eips.ethereum.org/EIPS/eip-145).\n\"\"\"\n"
  },
  {
    "path": "tests/constantinople/eip145_bitwise_shift/spec.py",
    "content": "\"\"\"Defines EIP-145 specification constants and functions.\"\"\"\n\nfrom dataclasses import dataclass\n\n\n@dataclass(frozen=True)\nclass ReferenceSpec:\n    \"\"\"Defines the reference spec version and git path.\"\"\"\n\n    git_path: str\n    version: str\n\n\nref_spec_145 = ReferenceSpec(\"EIPS/eip-145.md\", \"be0aca3e57f1eeb8ae265e58da6e2dffc5b67f81\")\n\n\n@dataclass(frozen=True)\nclass Spec:\n    \"\"\"\n    Parameters from the EIP-145 specifications as defined at\n    https://eips.ethereum.org/EIPS/eip-145.\n    \"\"\"\n\n    # Below are GPT o4-mini-high implementation of shift functions It can\n    # contain bugs, treat it with caution and refer to EVM implementations\n    @staticmethod\n    def sar(shift: int, value: int) -> int:\n        \"\"\"\n        Simulate the EVM SAR (Signed Arithmetic Right shift) operation.\n\n        Parameters\n        ----------\n        shift : int\n            Number of bits to shift to the right (interpreted as full unsigned;\n            no low-8-bit truncation here).\n        value : int\n            The 256-bit value to shift, interpreted as a signed integer.\n\n        Returns\n        -------\n        int\n            The result of the arithmetic right shift, pushed as an unsigned\n            256-bit integer on the EVM stack.\n\n        \"\"\"\n        mask256 = (1 << 256) - 1  # Clamp value to 256 bits\n\n        # Interpret as signed\n        v = value & mask256\n        if v >> 255:\n            v_signed = v - (1 << 256)\n        else:\n            v_signed = v\n\n        # If shift >= 256, spec says:\n        #   • result = 0   if v_signed >= 0\n        #   • result = -1  if v_signed <  0\n        if shift >= 256:\n            result_signed = -1 if v_signed < 0 else 0\n        else:\n            # Normal arithmetic right shift\n            result_signed = v_signed >> shift\n\n        # Wrap back to unsigned 256-bit\n        return result_signed & mask256\n\n    @staticmethod\n    def shl(shift: int, value: int) -> int:\n        \"\"\"\n        Simulate the EVM SHL (Logical Left shift) operation.\n\n        Parameters\n        ----------\n        shift : int\n            Number of bits to shift to the left.\n        value : int\n            The 256-bit value to shift, interpreted as an unsigned integer.\n\n        Returns\n        -------\n        int\n            The result of the logical left shift, pushed as an unsigned\n            256-bit integer on the EVM stack.\n\n        \"\"\"\n        mask256 = (1 << 256) - 1\n        # Clamp input to 256 bits\n        v = value & mask256\n\n        # If shift >= 256, spec returns 0\n        if shift >= 256:\n            return 0\n\n        # Logical left shift and wrap to 256 bits\n        return (v << shift) & mask256\n\n    @staticmethod\n    def shr(shift: int, value: int) -> int:\n        \"\"\"\n        Simulate the EVM SHR (Logical Right shift) operation.\n\n        Parameters\n        ----------\n        shift : int\n            Number of bits to shift to the right.\n        value : int\n            The 256-bit value to shift, interpreted as an unsigned integer.\n\n        Returns\n        -------\n        int\n            The result of the logical right shift, pushed as an unsigned\n            256-bit integer on the EVM stack.\n\n        \"\"\"\n        mask256 = (1 << 256) - 1\n        # Clamp input to 256 bits\n        v = value & mask256\n\n        # If shift >= 256, the EVM spec returns 0\n        if shift >= 256:\n            return 0\n\n        # Logical right shift and mask back to 256 bits\n        return (v >> shift) & mask256\n"
  },
  {
    "path": "tests/constantinople/eip145_bitwise_shift/test_shift_combinations.py",
    "content": "\"\"\"Test bitwise shift opcodes in different combinations.\"\"\"\n\nimport itertools\nfrom typing import Callable\n\nimport pytest\n\nfrom ethereum_test_tools import (\n    Account,\n    Alloc,\n    StateTestFiller,\n    Storage,\n    Transaction,\n)\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom .spec import Spec, ref_spec_145\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_145.git_path\nREFERENCE_SPEC_VERSION = ref_spec_145.version\n\nlist_of_args = [\n    0,\n    1,\n    2,\n    5,\n    0xFE,\n    0xFF,\n    0x100,\n    0x101,\n    0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF,\n    0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE,\n    0x8000000000000000000000000000000000000000000000000000000000000000,\n    0xA000000000000000000000000000000000000000000000000000000000000000,\n    0x5555555555555555555555555555555555555555555555555555555555555555,\n    0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA,\n    0x0000000000000000000000000000000000000000000000000000000000000080,\n    0x0000000000000000000000000000000000000000000000000000000000008000,\n    0x0000000000000000000000000000000000000000000000000000000080000000,\n    0x0000000000000000000000000000000000000000000000008000000000000000,\n    0x0000000000000000000000000000000080000000000000000000000000000000,\n    0x8000000000000000000000000000000000000000000000000000000000000000,\n]\ncombinations = list(itertools.product(list_of_args, repeat=2))\n\n\n@pytest.mark.parametrize(\n    \"opcode,operation\",\n    [\n        pytest.param(Op.SAR, Spec.sar, id=\"sar\"),\n        pytest.param(Op.SHL, Spec.shl, id=\"shl\"),\n        pytest.param(Op.SHR, Spec.shr, id=\"shr\"),\n    ],\n)\n@pytest.mark.valid_from(\"Constantinople\")\n@pytest.mark.ported_from(\n    [\n        \"https://github.com/ethereum/tests/blob/v13.3/src/GeneralStateTestsFiller/stShift/shiftCombinationsFiller.yml\",\n        \"https://github.com/ethereum/tests/blob/v13.3/src/GeneralStateTestsFiller/stShift/shiftSignedCombinationsFiller.yml\",\n    ],\n    pr=[\"https://github.com/ethereum/execution-spec-tests/pull/1683\"],\n)\ndef test_combinations(\n    state_test: StateTestFiller, pre: Alloc, opcode: Op, operation: Callable\n) -> None:\n    \"\"\"Test bitwise shift combinations.\"\"\"\n    result = Storage()\n    address_to = pre.deploy_contract(\n        code=sum(\n            Op.SSTORE(\n                result.store_next(operation(shift=a, value=b), f\"{str(opcode).lower()}({a}, {b})\"),\n                opcode(a, b),\n            )\n            for a, b in combinations\n        )\n        + Op.SSTORE(result.store_next(1, \"code_finished\"), 1)\n        + Op.STOP,\n    )\n\n    tx = Transaction(\n        sender=pre.fund_eoa(),\n        to=address_to,\n        gas_limit=5_000_000,\n    )\n\n    state_test(pre=pre, post={address_to: Account(storage=result)}, tx=tx)\n"
  },
  {
    "path": "tests/frontier/__init__.py",
    "content": "\"\"\"Test cases for EVM functionality introduced in Frontier.\"\"\"\n"
  },
  {
    "path": "tests/frontier/create/__init__.py",
    "content": "\"\"\"Test examples, patterns, templates to use in .py tests.\"\"\"\n"
  },
  {
    "path": "tests/frontier/create/test_create_one_byte.py",
    "content": "\"\"\"\nThe test calls CREATE in a loop deploying 1-byte contracts with all possible\nbyte values, records in storage the values that failed to deploy.\n\"\"\"\n\nimport pytest\n\nfrom ethereum_test_forks import Byzantium, Fork, London\nfrom ethereum_test_tools import (\n    Account,\n    Address,\n    Alloc,\n    Bytecode,\n    Environment,\n    StateTestFiller,\n    Storage,\n    Transaction,\n)\nfrom ethereum_test_tools import Opcodes as Op\nfrom ethereum_test_types import compute_create_address\n\n\n@pytest.mark.ported_from(\n    [\n        \"https://github.com/ethereum/tests/blob/v13.3/src/GeneralStateTestsFiller/stCreateTest/CREATE_FirstByte_loopFiller.yml\",\n    ],\n    pr=[\"https://github.com/ethereum/execution-spec-tests/pull/1615\"],\n    coverage_missed_reason=(\n        \"coinbase is deleted in original test (tx.gas_price==env.base_fee), \"\n        \"opcodes lt, iszero, jump are no longer used\"\n    ),\n)\n@pytest.mark.valid_from(\"Frontier\")\n@pytest.mark.with_all_create_opcodes\ndef test_create_one_byte(\n    state_test: StateTestFiller,\n    fork: Fork,\n    pre: Alloc,\n    create_opcode: Op,\n) -> None:\n    \"\"\"Run create deploys with single bytes for each byte.\"\"\"\n    initcode: dict[int, Bytecode] = {}\n    for byte in range(256):\n        initcode[byte] = Op.MSTORE8(0, byte) + Op.RETURN(0, 1)\n    initcode_length = 10\n\n    sender = pre.fund_eoa()\n    expect_post = Storage()\n\n    # make a subcontract that deploys code, because deploy 0xef eats ALL gas\n    create_contract = pre.deploy_contract(\n        code=Op.MSTORE(0, Op.CALLDATALOAD(0))\n        + Op.MSTORE(32, create_opcode(offset=32 - initcode_length, size=initcode_length))\n        + Op.RETURN(32, 32)\n    )\n    code = pre.deploy_contract(\n        nonce=1,\n        code=Op.MSTORE(0, Op.PUSH32(bytes(initcode[0])))\n        + sum(\n            [\n                Op.MSTORE8(23, opcode)  # correct the deploy byte\n                + Op.CALL(\n                    gas=50_000,\n                    address=create_contract,\n                    args_size=32,\n                    ret_offset=32,\n                    ret_size=32,\n                )\n                + Op.POP  # remove call result from stack for vm trace files\n                + Op.SSTORE(\n                    opcode,\n                    Op.MLOAD(32),\n                )\n                for opcode, _ in initcode.items()\n            ],\n        )\n        + Op.SSTORE(256, 1),\n    )\n\n    created_accounts: dict[int, Address] = {}\n    for opcode, opcode_init in initcode.items():\n        ef_exception = opcode == 239 and fork >= London\n        created_accounts[opcode] = compute_create_address(\n            address=create_contract,\n            salt=0,\n            nonce=opcode + 1,\n            initcode=opcode_init,\n            opcode=create_opcode,\n        )\n        if not ef_exception:\n            expect_post[opcode] = created_accounts[opcode]\n    expect_post[256] = 1\n\n    tx = Transaction(\n        gas_limit=14_000_000,\n        to=code,\n        data=b\"\",\n        nonce=0,\n        sender=sender,\n        protected=fork >= Byzantium,\n    )\n\n    post = {\n        code: Account(storage=expect_post),\n    }\n    for opcode, _ in initcode.items():\n        ef_exception = opcode == 239 and fork >= London\n        if not ef_exception:\n            post[created_accounts[opcode]] = Account(code=bytes.fromhex(f\"{opcode:02x}\"))\n\n    state_test(env=Environment(), pre=pre, post=post, tx=tx)\n"
  },
  {
    "path": "tests/frontier/create/test_create_suicide_during_init.py",
    "content": "\"\"\"Deploy contract that calls selfdestruct in it's initcode.\"\"\"\n\nfrom enum import Enum\n\nimport pytest\n\nfrom ethereum_test_forks import Byzantium, Fork\nfrom ethereum_test_tools import (\n    Account,\n    Alloc,\n    Environment,\n    Initcode,\n    StateTestFiller,\n    Transaction,\n    compute_create_address,\n)\nfrom ethereum_test_tools import Opcodes as Op\n\n\nclass Operation(Enum):\n    \"\"\"Enum for created contract actions.\"\"\"\n\n    SUICIDE = 1\n    SUICIDE_TO_ITSELF = 2\n\n    def __int__(self) -> int:\n        \"\"\"Convert to int.\"\"\"\n        return int(self.value)\n\n\n@pytest.mark.ported_from(\n    [\n        \"https://github.com/ethereum/tests/blob/v13.3/src/GeneralStateTestsFiller/stCreateTest/CREATE_ContractSuicideDuringInit_ThenStoreThenReturnFiller.json\",\n        \"https://github.com/ethereum/tests/blob/v13.3/src/GeneralStateTestsFiller/stCreateTest/CREATE_ContractSuicideDuringInit_WithValueFiller.json\",\n        \"https://github.com/ethereum/tests/blob/v13.3/src/GeneralStateTestsFiller/stCreateTest/CREATE_ContractSuicideDuringInit_WithValueToItselfFiller.json\",\n        \"https://github.com/ethereum/tests/blob/v13.3/src/GeneralStateTestsFiller/stCreateTest/CREATE_ContractSuicideDuringInitFiller.json\",\n    ],\n    pr=[\"https://github.com/ethereum/execution-spec-tests/pull/1871\"],\n    coverage_missed_reason=\"Tip to coinbase, original test contains empty account.\",\n)\n@pytest.mark.valid_from(\"Frontier\")\n@pytest.mark.with_all_create_opcodes\n@pytest.mark.parametrize(\"transaction_create\", [False, True])\n@pytest.mark.parametrize(\n    \"operation\",\n    [Operation.SUICIDE, Operation.SUICIDE_TO_ITSELF],\n)\ndef test_create_suicide_during_transaction_create(\n    state_test: StateTestFiller,\n    fork: Fork,\n    pre: Alloc,\n    create_opcode: Op,\n    operation: Operation,\n    transaction_create: bool,\n) -> None:\n    \"\"\"Contract init code calls suicide then measures different metrics.\"\"\"\n    if create_opcode != Op.CREATE and transaction_create:\n        pytest.skip(f\"Excluded: {create_opcode} with transaction_create=True\")\n\n    sender = pre.fund_eoa()\n    contract_deploy = pre.deploy_contract(\n        code=Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE)\n        + create_opcode(size=Op.CALLDATASIZE(), value=Op.CALLVALUE())\n    )\n    contract_success = pre.deploy_contract(code=Op.SSTORE(1, 1))\n    self_destruct_destination = pre.deploy_contract(code=Op.STOP)\n    contract_after_suicide = pre.deploy_contract(code=Op.SSTORE(1, 1))\n\n    contract_initcode = Initcode(\n        initcode_prefix=Op.CALL(address=contract_success, gas=Op.SUB(Op.GAS, 100_000))\n        + Op.SELFDESTRUCT(\n            Op.ADDRESS if operation == Operation.SUICIDE_TO_ITSELF else self_destruct_destination\n        )\n        + Op.CALL(address=contract_after_suicide, gas=Op.SUB(Op.GAS, 100_000)),\n        deploy_code=Op.SSTORE(0, 1),\n    )\n\n    expected_create_address = compute_create_address(\n        address=sender if transaction_create else contract_deploy,\n        nonce=1 if transaction_create else 0,\n        initcode=contract_initcode,\n        opcode=create_opcode,\n    )\n\n    tx_value = 100\n    tx = Transaction(\n        gas_limit=1_000_000,\n        to=None if transaction_create else contract_deploy,\n        data=contract_initcode,\n        value=tx_value,\n        sender=sender,\n        protected=fork >= Byzantium,\n    )\n\n    post = {\n        contract_success: Account(storage={1: 1}),\n        self_destruct_destination: Account(\n            balance=0 if operation == Operation.SUICIDE_TO_ITSELF else tx_value\n        ),\n        contract_deploy: Account(storage={0: 0}),\n        contract_after_suicide: Account(storage={1: 0}),  # suicide eats all gas\n        expected_create_address: Account.NONEXISTENT,\n    }\n    state_test(env=Environment(), pre=pre, post=post, tx=tx)\n"
  },
  {
    "path": "tests/frontier/create/test_create_suicide_store.py",
    "content": "\"\"\"\nTest dynamically created address is still callable and perform storage\noperations after being called for self destruct in a call.\n\"\"\"\n\nfrom enum import IntEnum\n\nimport pytest\n\nfrom ethereum_test_forks import Byzantium, Fork\nfrom ethereum_test_tools import (\n    Account,\n    Alloc,\n    CalldataCase,\n    Initcode,\n    StateTestFiller,\n    Storage,\n    Switch,\n    Transaction,\n    compute_create_address,\n)\nfrom ethereum_test_tools import Opcodes as Op\n\n\nclass Operation(IntEnum):\n    \"\"\"Enum for created contract actions.\"\"\"\n\n    SUICIDE = 1\n    ADD_STORAGE = 2\n    GET_STORAGE = 3\n\n\n@pytest.mark.ported_from(\n    [\n        \"https://github.com/ethereum/tests/blob/v13.3/src/GeneralStateTestsFiller/stCreateTest/CREATE_AcreateB_BSuicide_BStoreFiller.json\",\n    ],\n    pr=[\"https://github.com/ethereum/execution-spec-tests/pull/1867\"],\n    coverage_missed_reason=\"Converting solidity code result in following opcode not being used:\"\n    \"PUSH29, DUP4, DUP8, SWAP2, ISZERO, AND, MUL, DIV, CALLVALUE, EXTCODESIZE.\"\n    \"Changed 0x11 address to new address (no check for precompile).\",\n)\n@pytest.mark.valid_from(\"Frontier\")\n@pytest.mark.with_all_create_opcodes\ndef test_create_suicide_store(\n    state_test: StateTestFiller,\n    fork: Fork,\n    pre: Alloc,\n    create_opcode: Op,\n) -> None:\n    \"\"\"\n    Create dynamic contract that suicides, then called to push some storage\n    and then called to return that storage value.\n    \"\"\"\n    tload_support = fork.valid_opcodes().count(Op.TLOAD)\n    subcall_storage = 0x12\n    suicide_initcode: Initcode = Initcode(\n        deploy_code=Switch(\n            cases=[\n                CalldataCase(\n                    value=Operation.SUICIDE,\n                    action=Op.SELFDESTRUCT(pre.empty_account()),\n                ),\n                CalldataCase(\n                    value=Operation.ADD_STORAGE,\n                    action=Op.SSTORE(1, Op.ADD(Op.SLOAD(1), subcall_storage))\n                    + (\n                        Op.TSTORE(1, Op.ADD(Op.TLOAD(1), subcall_storage))\n                        if tload_support\n                        else Op.STOP\n                    ),\n                ),\n                CalldataCase(\n                    value=Operation.GET_STORAGE,\n                    action=(\n                        Op.MSTORE(0, Op.ADD(Op.SLOAD(1), Op.TLOAD(1)))\n                        if tload_support\n                        else Op.MSTORE(0, Op.SLOAD(1))\n                    )\n                    + Op.RETURN(0, 32),\n                ),\n            ],\n            default_action=None,\n        )\n    )\n\n    sender = pre.fund_eoa()\n    expect_post = Storage()\n\n    slot_create_result = 0\n    slot_after_suicide_sstore_return = 1\n    slot_program_success = 2\n    create_contract = pre.deploy_contract(\n        code=Op.CALLDATACOPY(size=Op.CALLDATASIZE())\n        + Op.SSTORE(slot_create_result, create_opcode(size=Op.CALLDATASIZE()))\n        # Put some storage before suicide\n        + Op.MSTORE(64, Operation.ADD_STORAGE)\n        + Op.CALL(\n            gas=Op.SUB(Op.GAS, 300_000),\n            address=Op.SLOAD(slot_create_result),\n            args_offset=64,\n            args_size=32,\n        )\n        + Op.MSTORE(64, Operation.SUICIDE)\n        + Op.CALL(\n            gas=Op.SUB(Op.GAS, 300_000),\n            address=Op.SLOAD(slot_create_result),\n            args_offset=64,\n            args_size=32,\n        )\n        # Put some storage after suicide\n        + Op.MSTORE(64, Operation.ADD_STORAGE)\n        + Op.CALL(\n            gas=Op.SUB(Op.GAS, 300_000),\n            address=Op.SLOAD(slot_create_result),\n            args_offset=64,\n            args_size=32,\n        )\n        + Op.MSTORE(64, Operation.GET_STORAGE)\n        + Op.CALL(\n            gas=Op.SUB(Op.GAS, 300_000),\n            address=Op.SLOAD(0),\n            args_offset=64,\n            args_size=32,\n            ret_offset=100,\n            ret_size=32,\n        )\n        + Op.SSTORE(slot_after_suicide_sstore_return, Op.MLOAD(100))\n        + Op.SSTORE(slot_program_success, 1)\n    )\n\n    expected_create_address = compute_create_address(\n        address=create_contract, nonce=1, initcode=suicide_initcode, opcode=create_opcode\n    )\n    expect_post[slot_create_result] = expected_create_address\n    expect_post[slot_after_suicide_sstore_return] = (\n        subcall_storage * 2  # added value before and after suicide\n        + (subcall_storage * 2 if tload_support else 0)  # tload value added\n    )\n    expect_post[slot_program_success] = 1\n\n    tx = Transaction(\n        gas_limit=1_000_000,\n        to=create_contract,\n        data=suicide_initcode,\n        sender=sender,\n        protected=fork >= Byzantium,\n    )\n\n    post = {\n        create_contract: Account(storage=expect_post),\n        expected_create_address: Account.NONEXISTENT,\n    }\n    state_test(pre=pre, post=post, tx=tx)\n"
  },
  {
    "path": "tests/frontier/examples/__init__.py",
    "content": "\"\"\"Test examples, patterns, templates to use in .py tests.\"\"\"\n"
  },
  {
    "path": "tests/frontier/examples/test_block_intermediate_state.py",
    "content": "\"\"\"Test the SELFDESTRUCT opcode.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_tools import (\n    Account,\n    Alloc,\n    Block,\n    BlockchainTestFiller,\n    Environment,\n    Transaction,\n)\n\n\n@pytest.mark.valid_from(\"Frontier\")\n@pytest.mark.valid_until(\"Homestead\")\ndef test_block_intermediate_state(blockchain_test: BlockchainTestFiller, pre: Alloc) -> None:\n    \"\"\"Verify intermediate block states.\"\"\"\n    env = Environment()\n    sender = pre.fund_eoa()\n\n    tx = Transaction(gas_limit=100_000, to=None, data=b\"\", sender=sender, protected=False)\n    tx_2 = Transaction(gas_limit=100_000, to=None, data=b\"\", sender=sender, protected=False)\n\n    block_1 = Block(\n        txs=[tx],\n        expected_post_state={\n            sender: Account(\n                nonce=1,\n            ),\n        },\n    )\n\n    block_2 = Block(txs=[])\n\n    block_3 = Block(\n        txs=[tx_2],\n        expected_post_state={\n            sender: Account(\n                nonce=2,\n            ),\n        },\n    )\n\n    blockchain_test(\n        genesis_environment=env,\n        pre=pre,\n        post=block_3.expected_post_state,\n        blocks=[block_1, block_2, block_3],\n    )\n"
  },
  {
    "path": "tests/frontier/identity_precompile/__init__.py",
    "content": "\"\"\"Test for precompiles that apply for all forks starting from Frontier.\"\"\"\n"
  },
  {
    "path": "tests/frontier/identity_precompile/common.py",
    "content": "\"\"\"Common utilities for the Identity Precompile tests.\"\"\"\n\nfrom dataclasses import dataclass\nfrom typing import Tuple\n\nfrom pydantic import BaseModel\n\nfrom ethereum_test_base_types.composite_types import Storage\nfrom ethereum_test_tools import (\n    Bytecode,\n)\nfrom ethereum_test_tools import Opcodes as Op\n\n\n@dataclass(frozen=True)\nclass Constants:\n    \"\"\"Constants for the Identity Precompile.\"\"\"\n\n    IDENTITY_PRECOMPILE_ADDRESS = 0x04\n\n\nclass CallArgs(BaseModel):\n    \"\"\"Defines inputs to CALL for the Identity precompile.\"\"\"\n\n    address: int = Constants.IDENTITY_PRECOMPILE_ADDRESS\n    gas: int = 0x1F4\n    value: int = 0x0\n    args_offset: int = 0x0\n    args_size: int = 0x20\n    ret_offset: int = 0x0\n    ret_size: int = 0x20\n\n\ndef generate_identity_call_bytecode(\n    storage: Storage,\n    call_type: Op,\n    memory_values: Tuple[int, ...],\n    call_args: CallArgs,\n    call_succeeds: bool,\n) -> Bytecode:\n    \"\"\"\n    Generate bytecode for calling the identity precompile with given memory\n    values.\n\n    Args:\n      storage (Storage): The storage object to use for storing values.\n      call_type (Op): The type of call opcode (CALL or CALLCODE).\n      memory_values(Tuple[int, ...]): Values to store in memory before\n                                      the call.\n      call_args(CallArgs): Arguments for the CALL opcode.\n      call_succeeds (bool): Whether the call should succeed or not.\n\n    Returns: Bytecode: The generated bytecode for the identity precompile call.\n\n    \"\"\"\n    code = Bytecode()\n\n    # Store provided values in memory\n    mstore_count = len(memory_values) if memory_values else 0\n    mstore_offset = 0\n    mstore_value = 0\n    if mstore_count:\n        for i, value in enumerate(memory_values):\n            mstore_value = value\n            code += Op.MSTORE(mstore_offset, mstore_value)\n            if mstore_count > i + 1:\n                mstore_offset += 0x20\n\n    # Call the identity precompile, then check that the last value in memory\n    # has not changed\n    code += (\n        Op.SSTORE(\n            storage.store_next(call_succeeds),\n            call_type(**call_args.model_dump()),\n        )\n        + Op.SSTORE(storage.store_next(mstore_value), Op.MLOAD(mstore_offset))\n        + Op.STOP\n    )\n\n    return code\n"
  },
  {
    "path": "tests/frontier/identity_precompile/conftest.py",
    "content": "\"\"\"Pytest (plugin) definitions local to Identity precompile tests.\"\"\"\n\nimport pytest\n\n\n@pytest.fixture\ndef tx_gas_limit() -> int:\n    \"\"\"Return the gas limit for transactions.\"\"\"\n    return 365_224\n"
  },
  {
    "path": "tests/frontier/identity_precompile/test_identity.py",
    "content": "\"\"\"Test identity precompile output size.\"\"\"\n\nfrom typing import Tuple\n\nimport pytest\n\nfrom ethereum_test_base_types.composite_types import Storage\nfrom ethereum_test_tools import (\n    Account,\n    Alloc,\n    Environment,\n    StateTestFiller,\n    Transaction,\n)\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom .common import CallArgs, generate_identity_call_bytecode\n\n\n@pytest.mark.ported_from(\n    [\n        \"https://github.com/ethereum/tests/blob/v17.1/src/GeneralStateTestsFiller/stPreCompiledContracts2/CALLCODEIdentitiy_0Filler.json\",\n        \"https://github.com/ethereum/tests/blob/v17.1/src/GeneralStateTestsFiller/stPreCompiledContracts2/CALLCODEIdentitiy_1Filler.json\",\n        \"https://github.com/ethereum/tests/blob/v17.1/src/GeneralStateTestsFiller/stPreCompiledContracts2/CALLCODEIdentity_1_nonzeroValueFiller.json\",\n        \"https://github.com/ethereum/tests/blob/v17.1/src/GeneralStateTestsFiller/stPreCompiledContracts2/CALLCODEIdentity_2Filler.json\",\n        \"https://github.com/ethereum/tests/blob/v17.1/src/GeneralStateTestsFiller/stPreCompiledContracts2/CALLCODEIdentity_3Filler.json\",\n        \"https://github.com/ethereum/tests/blob/v17.1/src/GeneralStateTestsFiller/stPreCompiledContracts2/CALLCODEIdentity_4Filler.json\",\n        \"https://github.com/ethereum/tests/blob/v17.1/src/GeneralStateTestsFiller/stPreCompiledContracts2/CALLCODEIdentity_4_gas17Filler.json\",\n        \"https://github.com/ethereum/tests/blob/v17.1/src/GeneralStateTestsFiller/stPreCompiledContracts2/CALLCODEIdentity_4_gas18Filler.json\",\n        \"https://github.com/ethereum/tests/blob/v17.1/src/GeneralStateTestsFiller/stPreCompiledContracts2/CallIdentitiy_0Filler.json\",\n        \"https://github.com/ethereum/tests/blob/v17.1/src/GeneralStateTestsFiller/stPreCompiledContracts2/CallIdentitiy_1Filler.json\",\n        \"https://github.com/ethereum/tests/blob/v17.1/src/GeneralStateTestsFiller/stPreCompiledContracts2/CallIdentity_1_nonzeroValueFiller.json\",\n        \"https://github.com/ethereum/tests/blob/v17.1/src/GeneralStateTestsFiller/stPreCompiledContracts2/CallIdentity_2Filler.json\",\n        \"https://github.com/ethereum/tests/blob/v17.1/src/GeneralStateTestsFiller/stPreCompiledContracts2/CallIdentity_3Filler.json\",\n        \"https://github.com/ethereum/tests/blob/v17.1/src/GeneralStateTestsFiller/stPreCompiledContracts2/CallIdentity_4Filler.json\",\n        \"https://github.com/ethereum/tests/blob/v17.1/src/GeneralStateTestsFiller/stPreCompiledContracts2/CallIdentity_4_gas17Filler.json\",\n        \"https://github.com/ethereum/tests/blob/v17.1/src/GeneralStateTestsFiller/stPreCompiledContracts2/CallIdentity_4_gas18Filler.json\",\n    ],\n    pr=[\"https://github.com/ethereum/execution-spec-tests/pull/1344\"],\n    coverage_missed_reason=\"MPT related coverage lost, not relevant to this test\",\n)\n@pytest.mark.valid_from(\"Byzantium\")\n@pytest.mark.parametrize(\"call_type\", [Op.CALL, Op.CALLCODE])\n@pytest.mark.parametrize(\n    [\n        \"call_args\",\n        \"memory_values\",\n        \"contract_balance\",\n        \"call_succeeds\",\n    ],\n    [\n        pytest.param(CallArgs(gas=0xFF), (0x1,), 0x0, True, id=\"identity_0\"),\n        pytest.param(\n            CallArgs(args_size=0x0),\n            (0x0,),\n            0x0,\n            True,\n            id=\"identity_1\",\n        ),\n        pytest.param(\n            CallArgs(gas=0x30D40, value=0x1, args_size=0x0),\n            (0x1,),\n            0x1,\n            True,\n            id=\"identity_1_nonzerovalue\",\n        ),\n        pytest.param(\n            CallArgs(gas=0x30D40, value=0x1, args_size=0x0),\n            None,\n            0x0,\n            False,\n            id=\"identity_1_nonzerovalue_insufficient_balance\",\n        ),\n        pytest.param(\n            CallArgs(args_size=0x25),\n            (0xF34578907F,),\n            0x0,\n            True,\n            id=\"identity_2\",\n        ),\n        pytest.param(\n            CallArgs(args_size=0x25),\n            (0xF34578907F,),\n            0x0,\n            True,\n            id=\"identity_3\",\n        ),\n        pytest.param(\n            CallArgs(gas=0x64),\n            (0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF,),\n            0x0,\n            True,\n            id=\"identity_4\",\n        ),\n        pytest.param(\n            CallArgs(gas=0x11),\n            (0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF,),\n            0x0,\n            False,\n            id=\"identity_4_insufficient_gas\",\n        ),\n        pytest.param(\n            CallArgs(gas=0x12),\n            (0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF,),\n            0x0,\n            True,\n            id=\"identity_4_exact_gas\",\n        ),\n    ],\n)\ndef test_call_identity_precompile(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    call_type: Op,\n    call_args: CallArgs,\n    memory_values: Tuple[int, ...],\n    call_succeeds: bool,\n    tx_gas_limit: int,\n    contract_balance: int,\n) -> None:\n    \"\"\"\n    Test identity precompile RETURNDATA is sized correctly based on the input\n    size.\n    \"\"\"\n    env = Environment()\n    storage = Storage()\n\n    contract_bytecode = generate_identity_call_bytecode(\n        storage,\n        call_type,\n        memory_values,\n        call_args,\n        call_succeeds,\n    )\n\n    account = pre.deploy_contract(\n        contract_bytecode,\n        storage=storage.canary(),\n        balance=contract_balance,\n    )\n\n    tx = Transaction(\n        to=account,\n        sender=pre.fund_eoa(),\n        gas_limit=tx_gas_limit,\n    )\n\n    post = {account: Account(storage=storage)}\n\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.ported_from(\n    [\n        \"https://github.com/ethereum/tests/blob/v17.1/src/GeneralStateTestsFiller/stPreCompiledContracts2/CALLCODEIdentity_5Filler.json\",\n        \"https://github.com/ethereum/tests/blob/v17.1/src/GeneralStateTestsFiller/stPreCompiledContracts2/CallIdentity_5Filler.json\",\n    ],\n    pr=[\"https://github.com/ethereum/execution-spec-tests/pull/1344\"],\n    coverage_missed_reason=\"MPT related coverage lost, not relevant to this test\",\n)\n@pytest.mark.valid_from(\"Byzantium\")\n@pytest.mark.parametrize(\"call_type\", [Op.CALL, Op.CALLCODE])\n@pytest.mark.parametrize(\n    [\n        \"call_args\",\n        \"memory_values\",\n        \"call_succeeds\",\n    ],\n    [\n        pytest.param(\n            CallArgs(gas=0x258, args_size=0xF4240),\n            (0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF,),\n            False,\n            id=\"identity_5\",\n        ),\n        pytest.param(\n            CallArgs(gas=0x258, ret_size=0x40),\n            (\n                0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF,\n                0x1234,\n            ),\n            True,\n            id=\"identity_6\",\n        ),\n    ],\n)\n@pytest.mark.parametrize(\"tx_gas_limit\", [10_000_000])\ndef test_call_identity_precompile_large_params(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    call_type: Op,\n    call_args: CallArgs,\n    memory_values: Tuple[int, ...],\n    call_succeeds: bool,\n    tx_gas_limit: int,\n) -> None:\n    \"\"\"Test identity precompile when out of gas occurs.\"\"\"\n    env = Environment()\n    storage = Storage()\n\n    contract_bytecode = generate_identity_call_bytecode(\n        storage,\n        call_type,\n        memory_values,\n        call_args,\n        call_succeeds,\n    )\n\n    account = pre.deploy_contract(\n        contract_bytecode,\n        storage=storage.canary(),\n    )\n\n    tx = Transaction(\n        to=account,\n        sender=pre.fund_eoa(),\n        gas_limit=tx_gas_limit,\n    )\n\n    post = {account: Account(storage=storage)}\n\n    state_test(env=env, pre=pre, post=post, tx=tx)\n"
  },
  {
    "path": "tests/frontier/identity_precompile/test_identity_returndatasize.py",
    "content": "\"\"\"Test identity precompile output size.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_base_types.composite_types import Storage\nfrom ethereum_test_tools import (\n    Account,\n    Alloc,\n    Environment,\n    StateTestFiller,\n    Transaction,\n)\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom .common import Constants\n\n\n@pytest.mark.ported_from(\n    [\n        \"https://github.com/ethereum/tests/blob/v17.1/src/GeneralStateTestsFiller/stPreCompiledContracts/identity_to_biggerFiller.json\",\n        \"https://github.com/ethereum/tests/blob/v17.1/src/GeneralStateTestsFiller/stPreCompiledContracts/identity_to_smallerFiller.json\",\n    ],\n    pr=[\"https://github.com/ethereum/execution-spec-tests/pull/1344\"],\n)\n@pytest.mark.valid_from(\"Byzantium\")\n@pytest.mark.parametrize(\n    [\"args_size\", \"output_size\", \"expected_returndatasize\"],\n    [\n        pytest.param(16, 32, 16, id=\"output_size_greater_than_input\"),\n        pytest.param(32, 16, 32, id=\"output_size_less_than_input\"),\n    ],\n)\ndef test_identity_precompile_returndata(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    args_size: int,\n    output_size: int,\n    expected_returndatasize: int,\n) -> None:\n    \"\"\"\n    Test identity precompile RETURNDATA is sized correctly based on the input\n    size.\n    \"\"\"\n    env = Environment()\n    storage = Storage()\n\n    account = pre.deploy_contract(\n        Op.MSTORE(0, 0)\n        + Op.GAS\n        + Op.MSTORE(0, 0x112233445566778899AABBCCDDEEFF00112233445566778899AABBCCDDEEFF00)\n        + Op.POP(\n            Op.CALL(\n                address=Constants.IDENTITY_PRECOMPILE_ADDRESS,\n                args_offset=0,\n                args_size=args_size,\n                ret_offset=0x10,\n                ret_size=output_size,\n            )\n        )\n        + Op.SSTORE(storage.store_next(expected_returndatasize), Op.RETURNDATASIZE)\n        + Op.STOP,\n        storage=storage.canary(),\n    )\n\n    tx = Transaction(\n        to=account,\n        sender=pre.fund_eoa(),\n        gas_limit=200_000,\n        protected=True,\n    )\n\n    post = {account: Account(storage=storage)}\n\n    state_test(env=env, pre=pre, post=post, tx=tx)\n"
  },
  {
    "path": "tests/frontier/opcodes/__init__.py",
    "content": "\"\"\"Test for opcodes introduced in Frontier.\"\"\"\n"
  },
  {
    "path": "tests/frontier/opcodes/test_all_opcodes.py",
    "content": "\"\"\"\nCall every possible opcode and test that the subcall is successful if the\nopcode is supported by the fork supports and fails otherwise.\n\"\"\"\n\nfrom typing import Dict\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    Account,\n    Address,\n    Alloc,\n    Bytecode,\n    Environment,\n    StateTestFiller,\n    Transaction,\n)\nfrom ethereum_test_vm import Opcode, UndefinedOpcodes\nfrom ethereum_test_vm import Opcodes as Op\n\nREFERENCE_SPEC_GIT_PATH = \"N/A\"\nREFERENCE_SPEC_VERSION = \"N/A\"\n\n\ndef prepare_stack(opcode: Opcode) -> Bytecode:\n    \"\"\"Prepare valid stack for opcode.\"\"\"\n    if opcode == Op.CREATE:\n        return Op.MSTORE(0, 0x6001600155) + Op.PUSH1(5) + Op.PUSH1(27) + Op.PUSH1(5)\n    if opcode == Op.CREATE2:\n        return Op.MSTORE(0, 0x6001600155) + Op.PUSH1(1) + Op.PUSH1(5) + Op.PUSH1(27) + Op.PUSH1(5)\n    if opcode == Op.JUMPI:\n        return Op.PUSH1(1) + Op.PUSH1(5)\n    if opcode == Op.JUMP:\n        return Op.PUSH1(3)\n    if opcode == Op.RETURNDATACOPY:\n        return Op.PUSH1(0) * 3\n    return Op.PUSH1(0x01) * 32\n\n\ndef prepare_suffix(opcode: Opcode) -> Bytecode:\n    \"\"\"Prepare after opcode instructions.\"\"\"\n    if opcode == Op.JUMPI or opcode == Op.JUMP:\n        return Op.JUMPDEST\n    return Op.STOP\n\n\n@pytest.mark.ported_from(\n    [\n        \"https://github.com/ethereum/tests/blob/v13.3/src/GeneralStateTestsFiller/stBadOpcode/badOpcodesFiller.json\",\n        \"https://github.com/ethereum/tests/blob/v13.3/src/GeneralStateTestsFiller/stBugs/evmBytecodeFiller.json\",\n    ],\n    pr=[\"https://github.com/ethereum/execution-spec-tests/pull/748\"],\n)\n@pytest.mark.valid_from(\"Frontier\")\ndef test_all_opcodes(state_test: StateTestFiller, pre: Alloc, fork: Fork) -> None:\n    \"\"\"\n    Test each possible opcode on the fork with a single contract that calls\n    each opcode in succession. Check that each subcall passes if the opcode is\n    supported and fails otherwise.\n    \"\"\"\n    code_worked = 1000\n\n    code_contract: Dict[Opcode, Address] = {}\n    for opcode in sorted(set(Op) | set(UndefinedOpcodes)):\n        code_contract[opcode] = pre.deploy_contract(\n            balance=10,\n            code=prepare_stack(opcode) + opcode + prepare_suffix(opcode),\n            storage={},\n        )\n\n    # EVM code to make the call and store the result\n    contract_address = pre.deploy_contract(\n        code=sum(\n            Op.SSTORE(\n                Op.PUSH1(opcode.int()),\n                # Limit gas to limit the gas consumed by the exceptional aborts\n                # in each subcall that uses an undefined opcode.\n                Op.CALL(35_000, opcode_address, 0, 0, 0, 0, 0),\n            )\n            for opcode, opcode_address in code_contract.items()\n        )\n        + Op.SSTORE(code_worked, 1)\n        + Op.STOP,\n    )\n\n    post = {\n        contract_address: Account(\n            storage={\n                **{\n                    opcode.int(): 1 if opcode != Op.REVERT else 0\n                    for opcode in fork.valid_opcodes()\n                },\n                code_worked: 1,\n            }\n        ),\n    }\n\n    tx = Transaction(\n        sender=pre.fund_eoa(),\n        gas_limit=9_000_000,\n        to=contract_address,\n        data=b\"\",\n        value=0,\n        protected=False,\n    )\n\n    state_test(pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.valid_from(\"Cancun\")\ndef test_cover_revert(state_test: StateTestFiller, pre: Alloc) -> None:\n    \"\"\"Cover state revert from original tests for the coverage script.\"\"\"\n    tx = Transaction(\n        sender=pre.fund_eoa(),\n        gas_limit=1_000_000,\n        data=Op.SSTORE(1, 1) + Op.REVERT(0, 0),\n        to=None,\n        value=0,\n        protected=False,\n    )\n\n    state_test(env=Environment(), pre=pre, post={}, tx=tx)\n"
  },
  {
    "path": "tests/frontier/opcodes/test_blockhash.py",
    "content": "\"\"\"Tests for BLOCKHASH opcode.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_tools import (\n    Account,\n    Alloc,\n    Block,\n    BlockchainTestFiller,\n    Storage,\n    Transaction,\n)\nfrom ethereum_test_tools import Opcodes as Op\n\n\n@pytest.mark.valid_from(\"Frontier\")\ndef test_genesis_hash_available(blockchain_test: BlockchainTestFiller, pre: Alloc) -> None:\n    \"\"\"\n    Verify BLOCKHASH returns genesis and block 1 hashes.\n\n    Regression test: Blockchain test infrastructure must populate block hashes\n    before execution. Without this, BLOCKHASH returns 0, breaking dynamic\n    address computations like BLOCKHASH(0) | TIMESTAMP.\n\n    Tests both genesis (block 0) and first executed block (block 1) hash\n    insertion by calling the contract in block 2.\n\n    Bug context: revm blockchaintest runner wasn't inserting block_hashes,\n    causing failures in tests with BLOCKHASH-derived addresses.\n    \"\"\"\n    storage = Storage()\n\n    # Store ISZERO(BLOCKHASH(0)) and ISZERO(BLOCKHASH(1))\n    # Both should be 0 (false) if hashes exist\n    code = Op.SSTORE(storage.store_next(0), Op.ISZERO(Op.BLOCKHASH(0))) + Op.SSTORE(\n        storage.store_next(0), Op.ISZERO(Op.BLOCKHASH(1))\n    )\n\n    contract = pre.deploy_contract(code=code)\n    sender = pre.fund_eoa()\n\n    blocks = [\n        Block(\n            txs=[\n                Transaction(\n                    sender=sender,\n                    to=contract,\n                    gas_limit=100_000,\n                    protected=False,\n                )\n            ]\n        ),\n        Block(\n            txs=[\n                Transaction(\n                    sender=sender,\n                    to=contract,\n                    gas_limit=100_000,\n                    protected=False,\n                )\n            ]\n        ),\n    ]\n\n    post = {\n        contract: Account(\n            storage={\n                0: 0,  # ISZERO(BLOCKHASH(0)) = 0 (genesis hash exists)\n                1: 0,  # ISZERO(BLOCKHASH(1)) = 0 (block 1 hash exists)\n            }\n        )\n    }\n\n    blockchain_test(pre=pre, post=post, blocks=blocks)\n"
  },
  {
    "path": "tests/frontier/opcodes/test_call.py",
    "content": "\"\"\"test `CALL` opcode.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    Account,\n    Alloc,\n    CodeGasMeasure,\n    Environment,\n    StateTestFiller,\n    Transaction,\n)\nfrom ethereum_test_vm import Opcodes as Op\n\n\n# TODO: There's an issue with gas definitions on forks previous to Berlin,\n# remove this when fixed. https://github.com/ethereum/execution-spec-\n# tests/pull/1952#discussion_r2237634275\n@pytest.mark.valid_from(\"Berlin\")\ndef test_call_large_offset_mstore(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    fork: Fork,\n) -> None:\n    \"\"\"\n    CALL with ret_offset larger than memory size and ret_size zero Then do an\n    MSTORE in that offset to see if memory was expanded in CALL.\n\n    This is for bug in a faulty EVM implementation where memory is expanded\n    when it shouldn't.\n    \"\"\"\n    sender = pre.fund_eoa()\n\n    gsc = fork.gas_costs()\n    mem_offset = 128  # arbitrary number\n\n    call_measure = CodeGasMeasure(\n        code=Op.CALL(gas=0, ret_offset=mem_offset, ret_size=0),\n        # Cost of pushing CALL args\n        overhead_cost=gsc.G_VERY_LOW * len(Op.CALL.kwargs),\n        extra_stack_items=1,  # Because CALL pushes 1 item to the stack\n        sstore_key=0,\n        stop=False,  # Because it's the first CodeGasMeasure\n    )\n    mstore_measure = CodeGasMeasure(\n        code=Op.MSTORE(offset=mem_offset, value=1),\n        # Cost of pushing MSTORE args\n        overhead_cost=gsc.G_VERY_LOW * len(Op.MSTORE.kwargs),\n        extra_stack_items=0,\n        sstore_key=1,\n    )\n\n    contract = pre.deploy_contract(call_measure + mstore_measure)\n\n    tx = Transaction(\n        gas_limit=500_000,\n        to=contract,\n        value=0,\n        sender=sender,\n    )\n\n    # this call cost is just the address_access_cost\n    call_cost = gsc.G_COLD_ACCOUNT_ACCESS\n\n    memory_expansion_gas_calc = fork.memory_expansion_gas_calculator()\n    # mstore cost: base cost + expansion cost\n    mstore_cost = gsc.G_MEMORY + memory_expansion_gas_calc(new_bytes=mem_offset + 1)\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            contract: Account(\n                storage={\n                    0: call_cost,\n                    1: mstore_cost,\n                },\n            )\n        },\n    )\n\n\n# TODO: There's an issue with gas definitions on forks previous to Berlin,\n# remove this when fixed. https://github.com/ethereum/execution-spec-\n# tests/pull/1952#discussion_r2237634275\n@pytest.mark.valid_from(\"Berlin\")\ndef test_call_memory_expands_on_early_revert(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    fork: Fork,\n) -> None:\n    \"\"\"\n    When CALL reverts early (e.g. because of not enough balance by the sender),\n    memory should be expanded anyway. We check this with an MSTORE.\n\n    This is for a bug in an EVM implementation where memory is expanded after\n    executing a CALL, but not when an early revert happens.\n    \"\"\"\n    sender = pre.fund_eoa()\n\n    gsc = fork.gas_costs()\n    # arbitrary number, greater than memory size to trigger an expansion\n    ret_size = 128\n\n    call_measure = CodeGasMeasure(\n        # CALL with value\n        code=Op.CALL(gas=0, value=100, ret_size=ret_size),\n        # Cost of pushing CALL args\n        overhead_cost=gsc.G_VERY_LOW * len(Op.CALL.kwargs),\n        # Because CALL pushes 1 item to the stack\n        extra_stack_items=1,\n        sstore_key=0,\n        # Because it's the first CodeGasMeasure\n        stop=False,\n    )\n    mstore_measure = CodeGasMeasure(\n        # Low offset for not expanding memory\n        code=Op.MSTORE(offset=ret_size // 2, value=1),\n        # Cost of pushing MSTORE args\n        overhead_cost=gsc.G_VERY_LOW * len(Op.MSTORE.kwargs),\n        extra_stack_items=0,\n        sstore_key=1,\n    )\n\n    # Contract without enough balance to send value transfer\n    contract = pre.deploy_contract(code=call_measure + mstore_measure, balance=0)\n\n    tx = Transaction(\n        gas_limit=500_000,\n        to=contract,\n        value=0,\n        sender=sender,\n    )\n\n    memory_expansion_gas_calc = fork.memory_expansion_gas_calculator()\n    # call cost:\n    #   address_access_cost+new_acc_cost+memory_expansion_cost+value-stipend\n    call_cost = (\n        gsc.G_COLD_ACCOUNT_ACCESS\n        + gsc.G_NEW_ACCOUNT\n        + memory_expansion_gas_calc(new_bytes=ret_size)\n        + gsc.G_CALL_VALUE\n        - gsc.G_CALL_STIPEND\n    )\n\n    # mstore cost: base cost. No memory expansion cost needed, it was expanded\n    # on CALL.\n    mstore_cost = gsc.G_MEMORY\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            contract: Account(\n                storage={\n                    0: call_cost,\n                    1: mstore_cost,\n                },\n            )\n        },\n    )\n\n\n# TODO: There's an issue with gas definitions on forks previous to Berlin,\n# remove this when fixed. https://github.com/ethereum/execution-spec-\n# tests/pull/1952#discussion_r2237634275\n@pytest.mark.with_all_call_opcodes\n@pytest.mark.valid_from(\"Berlin\")\ndef test_call_large_args_offset_size_zero(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    fork: Fork,\n    call_opcode: Op,\n) -> None:\n    \"\"\"\n    Test xCALL with an extremely large args_offset and args_size set to zero.\n    Since the size is zero, the large offset should not cause a revert.\n    \"\"\"\n    sender = pre.fund_eoa()\n\n    gsc = fork.gas_costs()\n    very_large_offset = 2**100\n\n    call_measure = CodeGasMeasure(\n        code=call_opcode(gas=0, args_offset=very_large_offset, args_size=0),\n        # Cost of pushing xCALL args\n        overhead_cost=gsc.G_VERY_LOW * len(call_opcode.kwargs),\n        extra_stack_items=1,  # Because xCALL pushes 1 item to the stack\n        sstore_key=0,\n    )\n\n    contract = pre.deploy_contract(call_measure)\n\n    tx = Transaction(\n        gas_limit=500_000,\n        to=contract,\n        value=0,\n        sender=sender,\n    )\n\n    # this call cost is just the address_access_cost\n    call_cost = gsc.G_COLD_ACCOUNT_ACCESS\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            contract: Account(\n                storage={\n                    0: call_cost,\n                },\n            )\n        },\n    )\n"
  },
  {
    "path": "tests/frontier/opcodes/test_call_and_callcode_gas_calculation.py",
    "content": "\"\"\"\nTests nested CALL/CALLCODE gas usage with positive value transfer.\n\nThis test investigates an issue identified in EthereumJS, as reported in:\nhttps://github.com/ethereumjs/ethereumjs-monorepo/issues/3194.\n\nThe issue pertains to the incorrect gas calculation for CALL/CALLCODE\noperations with a positive value transfer, due to the pre-addition of the\ngas stipend (2300) to the currently available gas instead of adding it to\nthe new call frame. This bug was specific to the case where insufficient\ngas was provided for the CALL/CALLCODE operation. Due to the pre-addition\nof the stipend to the currently available gas, the case for insufficient\ngas was not properly failing with an out-of-gas error.\n\nTest setup:\n\nGiven two smart contract accounts, 0x0A (caller) and 0x0B (callee):\n1. An arbitrary transaction calls into the contract 0x0A.\n2. Contract 0x0A executes a CALL to contract 0x0B with a specific gas limit\n(X).\n3. Contract 0x0B then attempts a CALL/CALLCODE to a non-existent contract\n0x0C, with a positive value transfer (activating the gas stipend).\n4. If the gas X provided by contract 0x0A to 0x0B is sufficient, contract\n0x0B will push 0x01 onto the stack after returning to the call frame in\n0x0A. Otherwise, it should push 0x00, indicating the insufficiency of\ngas X (for the bug in EthereumJS, the CALL/CALLCODE operation would\nreturn 0x01 due to the pre-addition of the gas stipend).\n5. The resulting stack value is saved into contract 0x0A's storage,\nallowing us to verify whether the provided gas was sufficient or\ninsufficient.\n\"\"\"\n\nfrom typing import Dict\n\nimport pytest\n\nfrom ethereum_test_tools import (\n    EOA,\n    Account,\n    Address,\n    Alloc,\n    Bytecode,\n    Environment,\n    StateTestFiller,\n    Transaction,\n)\nfrom ethereum_test_vm import Opcodes as Op\n\n\"\"\"\nPUSH opcode cost is 3, GAS opcode cost is 2.\nWe need 6 PUSH's and one GAS to fill the stack for both CALL & CALLCODE,\nin the callee contract.\n\"\"\"\nCALLEE_INIT_STACK_GAS = 6 * 3 + 2\n\n\"\"\"\nCALL gas breakdowns: (https://www.evm.codes/#f1)\nmemory_exp_cost + code_exec_cost + address_access_cost +\npositive_value_cost + empty_account_cost\n= 0 + 0 + 2600 + 9000 + 25000 = 36600\n\"\"\"\nCALL_GAS = 36600\nCALL_SUFFICIENT_GAS = CALL_GAS + CALLEE_INIT_STACK_GAS\n\n\"\"\"\nCALLCODE gas breakdowns: (https://www.evm.codes/#f2)\nmemory_exp_cost + code_exec_cost + address_access_cost +\npositive_value_cost = 0 + 0 + 2600 + 9000 = 11600\n\"\"\"\nCALLCODE_GAS = 11600\nCALLCODE_SUFFICIENT_GAS = CALLCODE_GAS + CALLEE_INIT_STACK_GAS\n\n\n@pytest.fixture\ndef callee_code(pre: Alloc, callee_opcode: Op) -> Bytecode:\n    \"\"\"\n    Code called by the caller contract:\n      PUSH1 0x00 * 4\n      PUSH1 0x01 <- for positive value transfer\n      PUSH2 Contract.nonexistent\n      GAS <- value doesn't matter\n      CALL/CALLCODE.\n    \"\"\"\n    # The address needs to be empty and different for each execution of the\n    # fixture, otherwise the calculations (empty_account_cost) are incorrect.\n    return callee_opcode(Op.GAS(), pre.empty_account(), 1, 0, 0, 0, 0)\n\n\n@pytest.fixture\ndef sender(pre: Alloc) -> EOA:\n    \"\"\"Sender for all transactions.\"\"\"\n    return pre.fund_eoa()\n\n\n@pytest.fixture\ndef callee_address(pre: Alloc, callee_code: Bytecode) -> Address:\n    \"\"\"Address of the callee.\"\"\"\n    return pre.deploy_contract(callee_code, balance=0x03)\n\n\n@pytest.fixture\ndef caller_code(caller_gas_limit: int, callee_address: Address) -> Bytecode:\n    \"\"\"\n    Code to CALL the callee contract:\n      PUSH1 0x00 * 5\n      PUSH2 Contract.callee\n      PUSH2 caller_gas <- gas limit set for CALL to callee contract\n      CALL\n      PUSH1 0x00\n      SSTORE.\n    \"\"\"\n    return Op.SSTORE(0, Op.CALL(caller_gas_limit, callee_address, 0, 0, 0, 0, 0))\n\n\n@pytest.fixture\ndef caller_address(pre: Alloc, caller_code: Bytecode) -> Address:\n    \"\"\"\n    Code to CALL the callee contract:\n      PUSH1 0x00 * 5\n      PUSH2 Contract.callee\n      PUSH2 caller_gas <- gas limit set for CALL to callee contract\n      CALL\n      PUSH1 0x00\n      SSTORE.\n    \"\"\"\n    return pre.deploy_contract(caller_code, balance=0x03)\n\n\n@pytest.fixture\ndef caller_tx(sender: EOA, caller_address: Address) -> Transaction:\n    \"\"\"Transaction that performs the call to the caller contract.\"\"\"\n    return Transaction(\n        to=caller_address,\n        value=1,\n        gas_limit=500_000,\n        sender=sender,\n    )\n\n\n@pytest.fixture\ndef post(caller_address: Address, is_sufficient_gas: bool) -> Dict[Address, Account]:  # noqa: D103\n    return {\n        caller_address: Account(storage={0x00: 0x01 if is_sufficient_gas else 0x00}),\n    }\n\n\n@pytest.mark.parametrize(\n    \"callee_opcode, caller_gas_limit, is_sufficient_gas\",\n    [\n        (Op.CALL, CALL_SUFFICIENT_GAS, True),\n        (Op.CALL, CALL_SUFFICIENT_GAS - 1, False),\n        (Op.CALLCODE, CALLCODE_SUFFICIENT_GAS, True),\n        (Op.CALLCODE, CALLCODE_SUFFICIENT_GAS - 1, False),\n    ],\n)\n@pytest.mark.valid_from(\"London\")\ndef test_value_transfer_gas_calculation(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    caller_tx: Transaction,\n    post: Dict[str, Account],\n) -> None:\n    \"\"\"\n    Tests the nested CALL/CALLCODE opcode gas consumption with a positive value\n    transfer.\n    \"\"\"\n    state_test(env=Environment(), pre=pre, post=post, tx=caller_tx)\n"
  },
  {
    "path": "tests/frontier/opcodes/test_calldatacopy.py",
    "content": "\"\"\"test `CALLDATACOPY` opcode.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_forks import Byzantium, Fork\nfrom ethereum_test_tools import Account, Alloc, Bytecode, StateTestFiller, Transaction\nfrom ethereum_test_vm import Opcodes as Op\n\n\n@pytest.mark.ported_from(\n    [\n        \"https://github.com/ethereum/tests/blob/v13.3/src/GeneralStateTestsFiller/VMTests/vmTests/calldatacopyFiller.yml\",\n    ],\n    pr=[\"https://github.com/ethereum/execution-spec-tests/pull/1056\"],\n)\n@pytest.mark.parametrize(\n    \"code,tx_data,code_address_storage,to_address_storage\",\n    [\n        (\n            (\n                Op.CALLDATACOPY(dest_offset=0, offset=1, size=2)\n                + Op.SSTORE(key=0x0, value=Op.MLOAD(offset=0))\n                + Op.RETURN(offset=0, size=Op.MSIZE)\n            ),\n            b\"\\x00\",\n            Account(\n                storage={0x00: 0x3456000000000000000000000000000000000000000000000000000000000000}\n            ),\n            Account(\n                storage={0x00: 0x3456000000000000000000000000000000000000000000000000000000000000}\n            ),\n        ),\n        (\n            (\n                Op.CALLDATACOPY(dest_offset=0, offset=1, size=1)\n                + Op.SSTORE(key=0x0, value=Op.MLOAD(offset=0))\n                + Op.RETURN(offset=0, size=Op.MSIZE)\n            ),\n            b\"\\x01\",\n            Account(\n                storage={0x00: 0x3400000000000000000000000000000000000000000000000000000000000000},\n            ),\n            Account(\n                storage={0x00: 0x3400000000000000000000000000000000000000000000000000000000000000},\n            ),\n        ),\n        (\n            (\n                Op.CALLDATACOPY(dest_offset=0, offset=1, size=0)\n                + Op.SSTORE(key=0x0, value=Op.MLOAD(offset=0))\n                + Op.RETURN(offset=0, size=Op.MSIZE)\n            ),\n            b\"\\x02\",\n            Account(\n                storage={0x00: 0x00},\n            ),\n            Account(\n                storage={0x00: 0x00},\n            ),\n        ),\n        (\n            (\n                Op.CALLDATACOPY(dest_offset=0, offset=0, size=0)\n                + Op.SSTORE(key=0x0, value=Op.MLOAD(offset=0))\n                + Op.RETURN(offset=0, size=Op.MSIZE)\n            ),\n            b\"\\x03\",\n            Account(\n                storage={0x00: 0x00},\n            ),\n            Account(\n                storage={0x00: 0x00},\n            ),\n        ),\n        (\n            (\n                Op.CALLDATACOPY(\n                    dest_offset=0,\n                    offset=0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA,\n                    size=0xFF,\n                )\n                + Op.SSTORE(key=0x0, value=Op.MLOAD(offset=0))\n                + Op.RETURN(offset=0, size=Op.MSIZE)\n            ),\n            b\"\\x04\",\n            Account(storage={0x00: 0x00}),\n            Account(storage={0x00: 0x00}),\n        ),\n        (\n            (\n                Op.CALLDATACOPY(\n                    dest_offset=0,\n                    offset=0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA,\n                    size=0x9,\n                )\n                + Op.SSTORE(key=0x0, value=Op.MLOAD(offset=0))\n                + Op.RETURN(offset=0, size=Op.MSIZE)\n            ),\n            b\"\\x05\",\n            Account(storage={0x00: 0x00}),\n            Account(storage={0x00: 0x00}),\n        ),\n        (\n            (Op.SSTORE(key=0x1, value=0x1) + Op.PUSH1[0x1] + Op.PUSH1[0x2] + Op.CALLDATACOPY),\n            b\"\\x10\",\n            Account(storage={0x01: 0x00}),\n            None,\n        ),\n        (\n            (\n                Op.JUMP(pc=0x5)\n                + Op.JUMPDEST\n                + Op.STOP\n                + Op.JUMPDEST\n                + Op.MSTORE8(offset=0x1F, value=0x42)\n                + Op.CALLDATACOPY(dest_offset=0x1F, offset=0x0, size=0x103)\n                + Op.MLOAD(offset=0x0)\n                + Op.DUP1\n                + Op.PUSH1[0x60]\n                + Op.JUMPI(pc=0x3, condition=Op.EQ)\n                + Op.SSTORE(key=0xFF, value=0xBADC0FFEE)\n            ),\n            b\"\\x11\",\n            Account(storage={0xFF: 0xBADC0FFEE}),\n            None,\n        ),\n    ],\n    ids=[\n        \"cdc 0 1 2\",\n        \"cdc 0 1 1\",\n        \"cdc 0 1 0\",\n        \"cdc 0 0 0\",\n        \"cdc 0 neg6 ff\",\n        \"cdc 0 neg6 9\",\n        \"underflow\",\n        \"sec\",\n    ],\n)\ndef test_calldatacopy(\n    state_test: StateTestFiller,\n    code: Bytecode,\n    fork: Fork,\n    tx_data: bytes,\n    pre: Alloc,\n    code_address_storage: Account,\n    to_address_storage: Account | None,\n) -> None:\n    \"\"\"\n    Test `CALLDATACOPY` opcode.\n\n    Based on https://github.com/ethereum/tests/blob/ae4791077e8fcf716136e70fe8392f1a1f1495fb/src/GeneralStateTestsFiller/VMTests/vmTests/calldatacopyFiller.yml\n    \"\"\"\n    code_address = pre.deploy_contract(code)\n    to = pre.deploy_contract(\n        code=(\n            Op.MSTORE(offset=0x0, value=0x1234567890ABCDEF01234567890ABCDEF0)\n            + Op.CALL(\n                gas=Op.SUB(Op.GAS(), 0x100),\n                address=code_address,\n                value=0x0,\n                args_offset=0xF,\n                args_size=0x10,\n                ret_offset=0x20,\n                ret_size=0x40,\n            )\n            + Op.POP\n            + Op.SSTORE(key=0x0, value=Op.MLOAD(offset=0x20))\n            + Op.SSTORE(key=0x1, value=Op.MLOAD(offset=0x40))\n            + Op.STOP\n        ),\n    )\n\n    tx = Transaction(\n        data=tx_data,\n        gas_limit=100_000,\n        gas_price=0x0A,\n        protected=fork >= Byzantium,\n        sender=pre.fund_eoa(),\n        to=to,\n        value=0x01,\n    )\n    if to_address_storage:\n        post = {code_address: code_address_storage, to: to_address_storage}\n    else:\n        post = {code_address: code_address_storage}\n    state_test(pre=pre, post=post, tx=tx)\n"
  },
  {
    "path": "tests/frontier/opcodes/test_calldataload.py",
    "content": "\"\"\"test `CALLDATALOAD` opcode.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_forks import Byzantium, Fork\nfrom ethereum_test_tools import Account, Alloc, StateTestFiller, Transaction\nfrom ethereum_test_tools import Macros as Om\nfrom ethereum_test_vm import Opcodes as Op\n\n\n@pytest.mark.ported_from(\n    [\n        \"https://github.com/ethereum/tests/blob/v13.3/src/GeneralStateTestsFiller/VMTests/vmTests/calldataloadFiller.yml\",\n    ],\n    pr=[\"https://github.com/ethereum/execution-spec-tests/pull/1236\"],\n)\n@pytest.mark.parametrize(\n    \"calldata,calldata_offset,expected_storage\",\n    [\n        (\n            b\"\\x25\\x60\",\n            0x0,\n            0x2560000000000000000000000000000000000000000000000000000000000000,\n        ),\n        (\n            b\"\\xff\" * 32 + b\"\\x23\",\n            0x1,\n            0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23,\n        ),\n        (\n            bytes.fromhex(\"123456789ABCDEF00000000000000000000000000000000000000000000000000024\"),\n            0x5,\n            0xBCDEF00000000000000000000000000000000000000000000000000024000000,\n        ),\n    ],\n    ids=[\n        \"two_bytes\",\n        \"word_n_byte\",\n        \"34_bytes\",\n    ],\n)\n@pytest.mark.parametrize(\"calldata_source\", [\"contract\", \"tx\"])\ndef test_calldataload(\n    state_test: StateTestFiller,\n    calldata: bytes,\n    calldata_offset: int,\n    fork: Fork,\n    pre: Alloc,\n    expected_storage: Account,\n    calldata_source: str,\n) -> None:\n    \"\"\"\n    Test `CALLDATALOAD` opcode.\n\n    Tests two scenarios:\n    - calldata_source is \"contract\": CALLDATALOAD reads from calldata\n                                     passed by another contract\n    - calldata_source is \"tx\": CALLDATALOAD reads directly from\n                               transaction calldata\n\n    Based on\n    https://github.com/ethereum/tests/blob/\n    ae4791077e8fcf716136e70fe8392f1a1f1495fb/src/\n    GeneralStateTestsFiller/VMTests/vmTests/calldatacopyFiller.yml\n    \"\"\"\n    contract_address = pre.deploy_contract(\n        Op.SSTORE(0, Op.CALLDATALOAD(offset=calldata_offset)) + Op.STOP,\n    )\n\n    if calldata_source == \"contract\":\n        to = pre.deploy_contract(\n            Om.MSTORE(calldata, 0x0)\n            + Op.CALL(\n                gas=Op.SUB(Op.GAS(), 0x100),\n                address=contract_address,\n                value=0x0,\n                args_offset=0x0,\n                args_size=len(calldata),\n                ret_offset=0x0,\n                ret_size=0x0,\n            )\n            + Op.STOP\n        )\n\n        tx = Transaction(\n            data=calldata,\n            gas_limit=100_000,\n            protected=fork >= Byzantium,\n            sender=pre.fund_eoa(),\n            to=to,\n        )\n\n    else:\n        tx = Transaction(\n            data=calldata,\n            gas_limit=100_000,\n            protected=fork >= Byzantium,\n            sender=pre.fund_eoa(),\n            to=contract_address,\n        )\n\n    post = {contract_address: Account(storage={0x00: expected_storage})}\n    state_test(pre=pre, post=post, tx=tx)\n"
  },
  {
    "path": "tests/frontier/opcodes/test_calldatasize.py",
    "content": "\"\"\"test `CALLDATASIZE` opcode.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_forks import Byzantium, Fork\nfrom ethereum_test_tools import Account, Alloc, StateTestFiller, Transaction\nfrom ethereum_test_tools import Macros as Om\nfrom ethereum_test_vm import Opcodes as Op\n\n\n@pytest.mark.ported_from(\n    [\n        \"https://github.com/ethereum/tests/blob/v13.3/src/GeneralStateTestsFiller/VMTests/vmTests/calldatasizeFiller.yml\",\n    ],\n    pr=[\"https://github.com/ethereum/execution-spec-tests/pull/1236\"],\n)\n@pytest.mark.parametrize(\n    \"args_size\",\n    [0, 2, 16, 33, 257],\n)\n@pytest.mark.parametrize(\"calldata_source\", [\"contract\", \"tx\"])\n@pytest.mark.slow()\ndef test_calldatasize(\n    state_test: StateTestFiller,\n    fork: Fork,\n    args_size: int,\n    pre: Alloc,\n    calldata_source: str,\n) -> None:\n    \"\"\"\n    Test `CALLDATASIZE` opcode.\n\n    Tests two scenarios:\n    - calldata_source is \"contract\": CALLDATASIZE reads from calldata\n                                     passed by another contract\n    - calldata_source is \"tx\": CALLDATASIZE reads directly from\n                               transaction calldata\n\n    Based on\n    https://github.com/ethereum/tests/blob/\n    81862e4848585a438d64f911a19b3825f0f4cd95/src/\n    GeneralStateTestsFiller/VMTests/vmTests/calldatasizeFiller.yml\n    \"\"\"\n    contract_address = pre.deploy_contract(Op.SSTORE(key=0x0, value=Op.CALLDATASIZE))\n    calldata = b\"\\x01\" * args_size\n\n    if calldata_source == \"contract\":\n        to = pre.deploy_contract(\n            code=(\n                Om.MSTORE(calldata, 0x0)\n                + Op.CALL(\n                    gas=Op.SUB(Op.GAS(), 0x100),\n                    address=contract_address,\n                    value=0x0,\n                    args_offset=0x0,\n                    args_size=args_size,\n                    ret_offset=0x0,\n                    ret_size=0x0,\n                )\n            )\n        )\n\n        tx = Transaction(\n            gas_limit=100_000,\n            protected=fork >= Byzantium,\n            sender=pre.fund_eoa(),\n            to=to,\n        )\n\n    else:\n        tx = Transaction(\n            data=calldata,\n            gas_limit=100_000,\n            protected=fork >= Byzantium,\n            sender=pre.fund_eoa(),\n            to=contract_address,\n        )\n\n    post = {contract_address: Account(storage={0x00: args_size})}\n    state_test(pre=pre, post=post, tx=tx)\n"
  },
  {
    "path": "tests/frontier/opcodes/test_dup.py",
    "content": "\"\"\"Test DUP Test the DUP opcodes.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_forks import Frontier, Homestead\nfrom ethereum_test_tools import Account, Alloc, Environment, StateTestFiller, Storage, Transaction\nfrom ethereum_test_tools import Opcodes as Op\n\n\n@pytest.mark.parametrize(\n    \"dup_opcode\",\n    [\n        Op.DUP1,\n        Op.DUP2,\n        Op.DUP3,\n        Op.DUP4,\n        Op.DUP5,\n        Op.DUP6,\n        Op.DUP7,\n        Op.DUP8,\n        Op.DUP9,\n        Op.DUP10,\n        Op.DUP11,\n        Op.DUP12,\n        Op.DUP13,\n        Op.DUP14,\n        Op.DUP15,\n        Op.DUP16,\n    ],\n    ids=lambda op: str(op),\n)\n@pytest.mark.with_all_evm_code_types\ndef test_dup(\n    state_test: StateTestFiller,\n    fork: str,\n    dup_opcode: Op,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    Test the DUP1-DUP16 opcodes.\n\n    Note: Test case ported from\n    [ethereum/tests](https://github.com/ethereum/tests).\n\n    Test ported from [ethereum/tests/GeneralStateTests/VMTests/\n    vmTests/dup.json](https://github.com/ethereum/tests/blob/\n    v14.0/GeneralStateTests/VMTests/vmTests/dup.json) by Ori Pomerantz.\n    \"\"\"\n    env = Environment()\n    sender = pre.fund_eoa()\n    post = {}\n\n    # Push 0x00 - 0x10 onto the stack\n    account_code = sum(Op.PUSH1(i) for i in range(0x11))\n\n    # Use the DUP opcode\n    account_code += dup_opcode\n\n    # Save each stack value into different keys in storage\n    account_code += sum(Op.PUSH1(i) + Op.SSTORE for i in range(0x11))\n\n    account = pre.deploy_contract(account_code)\n\n    tx = Transaction(\n        ty=0x0,\n        nonce=0,\n        to=account,\n        gas_limit=500000,\n        gas_price=10,\n        protected=False if fork in [Frontier, Homestead] else True,\n        data=\"\",\n        sender=sender,\n    )\n\n    \"\"\"\n    Storage will be structured as follows:\n\n    0x00: 0x10-0x01 (Depending on DUP opcode)\n    0x01: 0x10\n    0x02: 0x0F\n    0x03: 0x0E\n    0x04: 0x0D\n    0x05: 0x0C\n    0x06: 0x0B\n    0x07: 0x0A\n    0x08: 0x09\n    0x09: 0x08\n    0x0A: 0x07\n    0x0B: 0x06\n    0x0C: 0x05\n    0x0D: 0x04\n    0x0E: 0x03\n    0x0F: 0x02\n    0x10: 0x01\n\n    DUP1 copies the first element of the stack (0x10).\n    DUP16 copies the 16th element of the stack (0x01).\n    \"\"\"\n    s: Storage.StorageDictType = dict(zip(range(1, 17), range(16, 0, -1), strict=False))\n    s[0] = 16 - (dup_opcode.int() - 0x80)\n\n    post[account] = Account(storage=s)\n\n    state_test(env=env, pre=pre, post=post, tx=tx)\n"
  },
  {
    "path": "tests/frontier/opcodes/test_push.py",
    "content": "\"\"\"\nA State test for the set of `PUSH*` opcodes.\n\nPorted from:\nhttps://github.com/ethereum/tests/blob/\n4f65a0a7cbecf4442415c226c65e089acaaf6a8b/src/\nGeneralStateTestsFiller/VMTests/vmTests/pushFiller.yml.\n\"\"\"\n\nimport pytest\n\nfrom ethereum_test_forks import Fork, Frontier, Homestead\nfrom ethereum_test_tools import Account, Alloc, Environment, StateTestFiller, Transaction\nfrom ethereum_test_tools import Opcodes as Op\nfrom ethereum_test_vm import Bytecode\n\n\ndef get_input_for_push_opcode(opcode: Op) -> bytes:\n    \"\"\"\n    Get a sample input for the `PUSH*` opcode.\n\n    The input is a portion of an excerpt from the Ethereum yellow paper.\n    \"\"\"\n    ethereum_state_machine = b\"Ethereum is a transaction-based state machine.\"\n    input_size = opcode.data_portion_length\n    return ethereum_state_machine[0:input_size]\n\n\n@pytest.mark.ported_from(\n    [\n        \"https://github.com/ethereum/tests/blob/v13.3/src/GeneralStateTestsFiller/VMTests/vmTests/pushFiller.yml\",\n    ],\n    pr=[\"https://github.com/ethereum/execution-spec-tests/pull/975\"],\n)\n@pytest.mark.parametrize(\n    \"push_opcode\",\n    # Dynamically parametrize PUSH opcodes\n    [getattr(Op, f\"PUSH{i}\") for i in range(1, 33)],\n    ids=lambda op: str(op),\n)\n@pytest.mark.valid_from(\"Frontier\")\ndef test_push(state_test: StateTestFiller, fork: Fork, pre: Alloc, push_opcode: Op) -> None:\n    \"\"\"\n    The set of `PUSH*` opcodes pushes data onto the stack.\n\n    In this test, we ensure that the set of `PUSH*` opcodes writes a portion of\n    an excerpt from the Ethereum yellow paper to storage.\n    \"\"\"\n    # Input used to test the `PUSH*` opcode.\n    excerpt = get_input_for_push_opcode(push_opcode)\n\n    env = Environment()\n\n    \"\"\"\n     **               Bytecode explanation              **\n     +---------------------------------------------------+\n     | Bytecode      | Stack        | Storage            |\n     |---------------------------------------------------|\n     | PUSH* excerpt | excerpt      |                    |\n     | PUSH1 0       | 0 excerpt    |                    |\n     | SSTORE        |              | [0]: excerpt       |\n     +---------------------------------------------------+\n    \"\"\"\n\n    contract_code = push_opcode(excerpt) + Op.PUSH1(0) + Op.SSTORE\n    contract = pre.deploy_contract(contract_code)\n\n    tx = Transaction(\n        sender=pre.fund_eoa(),\n        to=contract,\n        gas_limit=500_000,\n        protected=False if fork in [Frontier, Homestead] else True,\n    )\n\n    post = {}\n    post[contract] = Account(storage={0: int.from_bytes(excerpt, byteorder=\"big\")})\n\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.ported_from(\n    [\n        \"https://github.com/ethereum/tests/blob/v13.3/src/GeneralStateTestsFiller/VMTests/vmTests/pushFiller.yml\",\n    ],\n    pr=[\"https://github.com/ethereum/execution-spec-tests/pull/975\"],\n)\n@pytest.mark.parametrize(\n    \"push_opcode\",\n    [getattr(Op, f\"PUSH{i}\") for i in range(1, 33)],\n    ids=lambda op: str(op),\n)\n@pytest.mark.parametrize(\"stack_height\", range(1024, 1026))\n@pytest.mark.valid_from(\"Frontier\")\n@pytest.mark.slow()\ndef test_stack_overflow(\n    state_test: StateTestFiller, fork: Fork, pre: Alloc, push_opcode: Op, stack_height: int\n) -> None:\n    \"\"\"\n    A test the stack overflows when the stack limit of 1024 is exceeded.\n    \"\"\"\n    env = Environment()\n\n    # Input used to test the `PUSH*` opcode.\n    excerpt = get_input_for_push_opcode(push_opcode)\n\n    \"\"\"\n\n\n    Essentially write a n-byte message to storage by pushing [1024,1025] times\n    to stack. This simulates a \"jump\" over the stack limit of 1024.\n\n    The message is UTF-8 encoding of excerpt (say 0x45 for PUSH1). Within the\n    stack limit, the message is written to the to the storage at the same\n    offset (0x45 for PUSH1). The last iteration will overflow the stack and the\n    storage slot will be empty.\n\n     **               Bytecode explanation              **\n     +---------------------------------------------------+\n     | Bytecode      | Stack        | Storage            |\n     |---------------------------------------------------|\n     | PUSH* excerpt | excerpt      |                    |\n     | PUSH1 0       | 0 excerpt    |                    |\n     | SSTORE        |              | [0]: excerpt       |\n     +---------------------------------------------------+\n    \"\"\"\n    contract_code: Bytecode = Bytecode()\n    for _ in range(stack_height - 2):\n        # mostly push 0 to avoid contract size limit exceeded\n        contract_code += Op.PUSH1(0)\n    contract_code += push_opcode(excerpt) * 2 + Op.SSTORE\n\n    contract = pre.deploy_contract(contract_code)\n\n    tx = Transaction(\n        sender=pre.fund_eoa(),\n        to=contract,\n        gas_limit=500_000,\n        protected=False if fork in [Frontier, Homestead] else True,\n    )\n\n    post = {}\n    key = int.from_bytes(excerpt, \"big\")\n\n    # Storage should ONLY have the message if stack does not overflow.\n    value = key if stack_height <= 1024 else 0\n\n    post[contract] = Account(storage={key: value})\n\n    state_test(env=env, pre=pre, post=post, tx=tx)\n"
  },
  {
    "path": "tests/frontier/opcodes/test_selfdestruct.py",
    "content": "\"\"\"Test the SELFDESTRUCT opcode.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_tools import Account, Alloc, Block, BlockchainTestFiller, Initcode, Transaction\nfrom ethereum_test_tools import Opcodes as Op\n\n\n@pytest.mark.valid_from(\"Frontier\")\n@pytest.mark.valid_until(\"Homestead\")\ndef test_double_kill(blockchain_test: BlockchainTestFiller, pre: Alloc) -> None:\n    \"\"\"\n    Test that when two transactions attempt to destruct a contract, the second\n    transaction actually resurrects the contract as an empty account (prior to\n    Spurious Dragon).\n    \"\"\"\n    sender = pre.fund_eoa()\n\n    deploy_code = Op.SELFDESTRUCT(Op.ADDRESS)\n\n    initcode = Initcode(deploy_code=deploy_code)\n\n    create_tx = Transaction(\n        gas_limit=100_000,\n        protected=False,\n        to=None,\n        data=initcode,\n        sender=sender,\n    )\n\n    block_1 = Block(txs=[create_tx])\n\n    first_kill = Transaction(\n        gas_limit=100_000,\n        protected=False,\n        to=create_tx.created_contract,\n        sender=sender,\n    )\n\n    second_kill = Transaction(\n        gas_limit=100_000,\n        protected=False,\n        to=create_tx.created_contract,\n        sender=sender,\n    )\n\n    block_2 = Block(txs=[first_kill, second_kill])\n\n    post = {\n        create_tx.created_contract: Account(\n            nonce=0,\n            balance=0,\n            code=b\"\",\n            storage={},\n        ),\n    }\n\n    blockchain_test(pre=pre, post=post, blocks=[block_1, block_2])\n"
  },
  {
    "path": "tests/frontier/opcodes/test_swap.py",
    "content": "\"\"\"\nA State test for the set of `SWAP*` opcodes.\nPorted from: https://github.com/ethereum/tests/\nblob/develop/src/GeneralStateTestsFiller/VMTests/vmTests/swapFiller.yml.\n\"\"\"\n\nimport pytest  # noqa: I001\n\nfrom ethereum_test_forks import Fork, Frontier, Homestead\nfrom ethereum_test_tools import Account, Alloc, Bytecode, Environment\nfrom ethereum_test_tools import Opcodes as Op\nfrom ethereum_test_tools import StateTestFiller, Storage, Transaction\n\n\n@pytest.mark.ported_from(\n    [\n        \"https://github.com/ethereum/tests/blob/v13.3/src/GeneralStateTestsFiller/VMTests/vmTests/swapFiller.yml\"\n    ],\n    pr=[\"https://github.com/ethereum/execution-spec-tests/pull/1163\"],\n    coverage_missed_reason=(\n        \"Test isolation (1 contract per execution) reduces evmone state \"\n        \"comparisons vs old dispatcher pattern (16 contracts per execution)\"\n    ),\n)\n@pytest.mark.parametrize(\n    \"swap_opcode\",\n    [getattr(Op, f\"SWAP{i}\") for i in range(1, 17)],\n    ids=lambda op: str(op),\n)\n@pytest.mark.valid_from(\"Frontier\")\ndef test_swap(state_test: StateTestFiller, fork: Fork, pre: Alloc, swap_opcode: Op) -> None:\n    \"\"\"\n    The set of `SWAP*` opcodes swaps the top of the stack with a specific\n    element.\n\n    In this test, we ensure that the set of `SWAP*` opcodes correctly swaps\n    the top element with the nth element and stores the result in storage.\n    \"\"\"\n    env = Environment()\n\n    # Calculate which position we're swapping with (1-based index)\n    swap_pos = swap_opcode.int() - 0x90 + 1\n\n    # Generate stack values\n    stack_values = list(range(swap_pos + 16))\n\n    # Push the stack values onto the stack (in reverse order).\n    contract_code = Bytecode()\n    for value in reversed(stack_values):\n        contract_code += Op.PUSH1(value)\n\n    # Perform the SWAP operation.\n    contract_code += swap_opcode\n\n    # Store multiple values to storage.\n    for slot in range(16):\n        contract_code += Op.PUSH1(slot) + Op.SSTORE\n\n    # Deploy the contract with the generated bytecode.\n    contract_address = pre.deploy_contract(contract_code)\n\n    # Create a transaction to execute the contract.\n    tx = Transaction(\n        sender=pre.fund_eoa(),\n        to=contract_address,\n        gas_limit=500_000,\n        protected=False if fork in [Frontier, Homestead] else True,\n    )\n\n    # Calculate expected storage values after SWAP and storage operations\n    # Initial stack (after pushes, before swap): [0, 1, 2, ..., swap_pos+15]\n    # (top is index 0)\n    # After SWAP at position swap_pos: top and position swap_pos are swapped\n    # Then we do: PUSH1(slot) SSTORE 16 times, which pops values from stack\n\n    # Build the stack state after SWAP\n    stack_after_swap = stack_values.copy()\n    stack_after_swap[0], stack_after_swap[swap_pos] = (\n        stack_after_swap[swap_pos],\n        stack_after_swap[0],\n    )\n\n    # Store the first 16 values from the post-swap stack\n    storage = Storage()\n    for value in stack_after_swap[:16]:\n        storage.store_next(value)\n\n    post = {contract_address: Account(storage=storage)}\n\n    # Run the state test.\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.parametrize(\n    \"swap_opcode\",\n    [getattr(Op, f\"SWAP{i}\") for i in range(1, 17)],\n    ids=lambda op: str(op),\n)\n@pytest.mark.valid_from(\"Frontier\")\ndef test_stack_underflow(\n    state_test: StateTestFiller,\n    fork: Fork,\n    pre: Alloc,\n    swap_opcode: Op,\n) -> None:\n    \"\"\"\n    A test to ensure that the stack underflow when there are not enough\n    elements for the `SWAP*` opcode to operate.\n\n    For each SWAPn operation, we push exactly (n-1) elements to cause an\n    underflow when trying to swap with the nth element.\n    \"\"\"\n    env = Environment()\n\n    # Calculate which position we're swapping with (1-based index)\n    swap_pos = swap_opcode.int() - 0x90 + 1\n\n    # Push exactly (n-1) elements for SWAPn to cause underflow\n    contract_code = Bytecode()\n    for i in range(swap_pos - 1):\n        contract_code += Op.PUSH1(i % 256)\n\n    # Attempt to perform the SWAP operation\n    contract_code += swap_opcode\n\n    # Store the top of the stack in storage slot 0\n    contract_code += Op.PUSH1(0) + Op.SSTORE\n\n    # Deploy the contract with the generated bytecode.\n    contract = pre.deploy_contract(contract_code)\n\n    # Create a transaction to execute the contract.\n    tx = Transaction(\n        sender=pre.fund_eoa(),\n        to=contract,\n        gas_limit=500_000,\n        protected=False if fork in [Frontier, Homestead] else True,\n    )\n\n    # Define the expected post-state.\n    post = {}\n    storage = Storage()\n    storage.store_next(0, f\"SWAP{swap_pos} failed due to stack underflow\")\n    post[contract] = Account(storage=storage)\n\n    # Run the state test.\n    state_test(env=env, pre=pre, post=post, tx=tx)\n"
  },
  {
    "path": "tests/frontier/precompiles/__init__.py",
    "content": "\"\"\"Test for precompiles that apply for all forks starting from Frontier.\"\"\"\n"
  },
  {
    "path": "tests/frontier/precompiles/test_precompile_absence.py",
    "content": "\"\"\"Test Calling Precompile Range (close to zero).\"\"\"\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    Account,\n    Address,\n    Alloc,\n    Bytecode,\n    StateTestFiller,\n    Storage,\n    Transaction,\n)\nfrom ethereum_test_tools import Opcodes as Op\n\nUPPER_BOUND = 0x101\nRETURNDATASIZE_OFFSET = 0x10000000000000000  # Must be greater than UPPER_BOUND\n\n\n@pytest.mark.parametrize(\n    \"calldata_size\",\n    [\n        pytest.param(0, id=\"empty_calldata\"),\n        pytest.param(31, id=\"31_bytes\"),\n        pytest.param(32, id=\"32_bytes\"),\n    ],\n)\n@pytest.mark.valid_from(\"Byzantium\")\ndef test_precompile_absence(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    fork: Fork,\n    calldata_size: int,\n) -> None:\n    \"\"\"\n    Test that addresses close to zero are not precompiles unless active in the\n    fork.\n    \"\"\"\n    active_precompiles = fork.precompiles()\n    storage = Storage()\n    call_code = Bytecode()\n    for address in range(1, UPPER_BOUND + 1):\n        if Address(address) in active_precompiles:\n            continue\n        call_code += Op.SSTORE(\n            address,\n            Op.CALL(gas=0, address=address, args_size=calldata_size),\n        )\n        storage[address] = 1\n        if Op.RETURNDATASIZE in fork.valid_opcodes():\n            call_code += Op.SSTORE(\n                address + RETURNDATASIZE_OFFSET,\n                Op.RETURNDATASIZE,\n            )\n            storage[address + RETURNDATASIZE_OFFSET] = 0\n\n    call_code += Op.STOP\n\n    entry_point_address = pre.deploy_contract(call_code, storage=storage.canary())\n\n    tx = Transaction(\n        to=entry_point_address,\n        gas_limit=10_000_000,\n        sender=pre.fund_eoa(),\n        protected=True,\n    )\n\n    state_test(\n        pre=pre,\n        tx=tx,\n        post={\n            entry_point_address: Account(\n                storage=storage,\n            )\n        },\n    )\n"
  },
  {
    "path": "tests/frontier/precompiles/test_precompiles.py",
    "content": "\"\"\"Tests supported precompiled contracts.\"\"\"\n\nfrom typing import Iterator, Tuple\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    Account,\n    Address,\n    Alloc,\n    Environment,\n    StateTestFiller,\n    Transaction,\n)\nfrom ethereum_test_vm import Opcodes as Op\n\n\ndef precompile_addresses(fork: Fork) -> Iterator[Tuple[Address, bool]]:\n    \"\"\"\n    Yield the addresses of precompiled contracts and their support status for a\n    given fork.\n\n    Args:\n      fork (Fork): The fork instance containing precompiled\n                   contract information.\n\n    Yields: Iterator[Tuple[str, bool]]: A tuple containing the address in\n    hexadecimal format and a boolean indicating whether the address is a\n    supported precompile.\n\n    \"\"\"\n    supported_precompiles = fork.precompiles()\n\n    for address in supported_precompiles:\n        address_int = int.from_bytes(address, byteorder=\"big\")\n        yield (address, True)\n        if address_int > 0 and (address_int - 1) not in supported_precompiles:\n            yield (Address(address_int - 1), False)\n        if (address_int + 1) not in supported_precompiles:\n            yield (Address(address_int + 1), False)\n\n\n@pytest.mark.ported_from(\n    [\n        \"https://github.com/ethereum/tests/blob/v13.3/src/GeneralStateTestsFiller/stPreCompiledContracts/idPrecompsFiller.yml\"\n    ],\n    pr=[\"https://github.com/ethereum/execution-spec-tests/pull/1120\"],\n    coverage_missed_reason=(\n        \"Original test saves variables to memory, loads from storage, uses calldataload to get \"\n        \"the precompile address to call, uses lt and gt to compare the gas differences, \"\n        \"sends non-zero data and value with the transaction, uses conditional jumps to save \"\n        \"different values to storage.\"\n    ),\n)\n@pytest.mark.valid_from(\"Berlin\")\n@pytest.mark.parametrize_by_fork(\"address,precompile_exists\", precompile_addresses)\ndef test_precompiles(\n    state_test: StateTestFiller, address: Address, precompile_exists: bool, pre: Alloc\n) -> None:\n    \"\"\"\n    Tests the behavior of precompiled contracts in the Ethereum state test.\n\n    Args:\n      state_test (StateTestFiller): The state test filler object used to\n                                    run the test.\n      address (str): The address of the precompiled contract to test.\n      precompile_exists (bool): A flag indicating whether the precompiled\n                                contract exists at the given address.\n      pre (Alloc): The allocation object used to deploy the contract and\n                   set up the initial state.\n\n    This test deploys a contract that performs two CALL operations to the\n    specified address and a fixed address (0x10000), measuring the gas used for\n    each call. It then stores the difference in gas usage in storage slot 0.\n    The test verifies the expected storage value based on whether the\n    precompiled contract exists at the given address.\n\n    \"\"\"\n    env = Environment()\n\n    # Empty account to serve as reference\n    empty_account = pre.fund_eoa(amount=0)\n\n    # Memory\n    args_offset = 0\n    ret_offset = 32\n    length = 32\n\n    account = pre.deploy_contract(\n        Op.MSTORE(args_offset, 0xFF)  # Pre-expand the memory and setup inputs for pre-compiles\n        + Op.MSTORE(ret_offset, 0xFF)\n        + Op.MSTORE8(args_offset, 0xFF)\n        + Op.MSTORE8(ret_offset, 0xFF)\n        + Op.POP(Op.BALANCE(empty_account))  # Warm the accounts\n        + Op.POP(Op.BALANCE(address))\n        + Op.GAS\n        + Op.CALL(\n            gas=50_000,\n            address=address,\n            args_offset=args_offset,\n            args_size=length,\n            ret_offset=ret_offset,\n            ret_size=length,\n        )\n        + Op.POP\n        + Op.SUB(Op.SWAP1, Op.GAS)\n        + Op.GAS\n        + Op.CALL(\n            gas=50_000,\n            address=empty_account,\n            args_offset=args_offset,\n            args_size=length,\n            ret_offset=ret_offset,\n            ret_size=length,\n        )\n        + Op.POP\n        + Op.SUB(Op.SWAP1, Op.GAS)\n        + Op.SWAP1\n        + Op.SUB\n        + Op.SSTORE(0, Op.ISZERO)\n        + Op.STOP,\n        storage={0: 0xDEADBEEF},\n    )\n\n    tx = Transaction(\n        to=account,\n        sender=pre.fund_eoa(),\n        gas_limit=1_000_000,\n        protected=True,\n    )\n\n    # A high gas cost will result from calling a precompile\n    # Expect 0x00 when a precompile exists at the address, 0x01 otherwise\n    post = {account: Account(storage={0: 0 if precompile_exists else 1})}\n\n    state_test(env=env, pre=pre, post=post, tx=tx)\n"
  },
  {
    "path": "tests/frontier/scenarios/__init__.py",
    "content": "\"\"\"Scenarios common import.\"\"\"\n"
  },
  {
    "path": "tests/frontier/scenarios/common.py",
    "content": "\"\"\"Define Scenario structures and helpers for test_scenarios test.\"\"\"\n\nfrom abc import abstractmethod\nfrom dataclasses import dataclass\nfrom enum import Enum\n\nfrom ethereum_test_forks import Fork, Frontier\nfrom ethereum_test_tools import Address, Alloc, Bytecode, Conditional, MemoryVariable\nfrom ethereum_test_vm import Opcodes as Op\n\n\nclass ScenarioExpectOpcode(Enum):\n    \"\"\"Opcodes that are replaced to real values computed by the scenario.\"\"\"\n\n    TX_ORIGIN = 1\n    CODE_ADDRESS = 2\n    CODE_CALLER = 3\n    SELFBALANCE = 4\n    CALL_VALUE = 6\n    CALL_DATALOAD_0 = 7\n    CALL_DATASIZE = 8\n    GASPRICE = 9\n    BLOCKHASH_0 = 10\n    COINBASE = 11\n    TIMESTAMP = 12\n    NUMBER = 13\n    GASLIMIT = 14\n\n\n@dataclass\nclass ScenarioEnvironment:\n    \"\"\"\n    Scenario evm environment Each scenario must define an environment on which\n    program is executed This is so post state verification could check results\n    of evm opcodes.\n    \"\"\"\n\n    code_address: Address  # Op.ADDRESS, address scope for program\n    code_caller: Address  # Op.CALLER, caller of the program\n    selfbalance: int  # Op.SELFBALANCE, balance of the environment of the program\n    call_value: int  # Op.CALLVALUE of call that is done to the program\n    call_dataload_0: int  # Op.CALLDATALOAD(0) expected result\n    call_datasize: int  # Op.CALLDATASIZE expected result\n    has_static: bool = False  # Weather scenario execution context is static\n\n\n@dataclass\nclass ExecutionEnvironment:\n    \"\"\"Scenario execution environment which is determined by test.\"\"\"\n\n    fork: Fork\n    gasprice: int\n    origin: Address\n    coinbase: Address\n    timestamp: int\n    number: int\n    gaslimit: int\n\n\n@dataclass\nclass ProgramResult:\n    \"\"\"\n    Describe expected result of a program.\n\n    Attributes:\n      result (int | ScenarioExpectOpcode): The result of the program\n      from_fork (Fork): The result is only valid from this fork\n                        (default: Frontier)\n      static_support (bool): Can be verified in static context (default: True)\n\n    \"\"\"\n\n    result: int | ScenarioExpectOpcode\n\n    \"\"\"The result is only valid from this fork\"\"\"\n    from_fork: Fork = Frontier\n    static_support: bool = True\n\n    def translate_result(\n        self, env: ScenarioEnvironment, exec_env: ExecutionEnvironment\n    ) -> int | Address:\n        \"\"\"\n        Translate expected program result code into concrete value, given the\n        scenario evm environment and test execution environment.\n        \"\"\"\n        if exec_env.fork < self.from_fork:\n            return 0\n        if not self.static_support and env.has_static:\n            return 0\n        if isinstance(self.result, ScenarioExpectOpcode):\n            if self.result == ScenarioExpectOpcode.TX_ORIGIN:\n                return exec_env.origin\n            if self.result == ScenarioExpectOpcode.CODE_ADDRESS:\n                return env.code_address\n            if self.result == ScenarioExpectOpcode.CODE_CALLER:\n                return env.code_caller\n            if self.result == ScenarioExpectOpcode.CALL_VALUE:\n                return int(env.call_value)\n            if self.result == ScenarioExpectOpcode.CALL_DATALOAD_0:\n                return env.call_dataload_0\n            if self.result == ScenarioExpectOpcode.CALL_DATASIZE:\n                return env.call_datasize\n            if self.result == ScenarioExpectOpcode.GASPRICE:\n                return exec_env.gasprice\n            if self.result == ScenarioExpectOpcode.COINBASE:\n                return exec_env.coinbase\n            if self.result == ScenarioExpectOpcode.TIMESTAMP:\n                return exec_env.timestamp\n            if self.result == ScenarioExpectOpcode.NUMBER:\n                return exec_env.number\n            if self.result == ScenarioExpectOpcode.GASLIMIT:\n                return exec_env.gaslimit\n            if self.result == ScenarioExpectOpcode.SELFBALANCE:\n                return int(env.selfbalance)\n        else:\n            return self.result\n        return 0\n\n\nclass ScenarioTestProgram:\n    \"\"\"Base class for deploying test code that will be used in scenarios.\"\"\"\n\n    @abstractmethod\n    def make_test_code(self, pre: Alloc, fork: Fork) -> Bytecode:\n        \"\"\"Test code to be deployed.\"\"\"\n        pass\n\n    @property\n    @abstractmethod\n    def id(self) -> str:\n        \"\"\"Test program pytest id.\"\"\"\n        pass\n\n    @abstractmethod\n    def result(self) -> ProgramResult:\n        \"\"\"Test program result.\"\"\"\n        pass\n\n    def __str__(self) -> str:\n        \"\"\"Return the ID (for use as pytest test name).\"\"\"\n        return self.id\n\n\n@dataclass\nclass ScenarioDebug:\n    \"\"\"Debug selector for the development.\"\"\"\n\n    program_id: str\n    scenario_name: str\n\n\n@dataclass\nclass ScenarioGeneratorInput:\n    \"\"\"\n    Parameters for the scenario generator function.\n\n    Attributes:\n      fork (Fork): Fork for which we ask to generate scenarios\n      pre(Alloc): Access to the state to be able to deploy contracts into pre\n      operation (Bytecode): Evm bytecode program that will be tested\n      external_address (Address): Static external address for ext opcodes\n\n    \"\"\"\n\n    fork: Fork\n    pre: Alloc\n    operation_code: Bytecode\n\n\n@dataclass\nclass Scenario:\n    \"\"\"\n    Describe test scenario that will be run in test for each program.\n\n    Attributes:\n      category (str): Scenario category name\n      name (str): Scenario name for the test vector\n      code (Address): Address that is an entry point for scenario code\n      env (ScenarioEnvironment): Evm values for ScenarioExpectAddress map\n      reverting (bool): If scenario reverts program execution,\n                        making result 0 (default: False)\n\n    \"\"\"\n\n    category: str\n    name: str\n    code: Address\n    env: ScenarioEnvironment\n    halts: bool = False\n\n\ndef make_gas_hash_contract(pre: Alloc) -> Address:\n    \"\"\"\n    Contract that spends unique amount of gas based on input.\n    Used for the values we can't predict, can be gas consuming on high values.\n    So that if we can't check exact value in expect section, we at least\n    could spend unique gas amount.\n    \"\"\"\n    # EVM memory variables\n    byte_offset = MemoryVariable(0)\n    current_byte = MemoryVariable(32)\n\n    # Code for memory initialization\n    initialize_code = byte_offset.set(0)\n    calldata_copy = Op.JUMPDEST + Op.CALLDATACOPY(\n        dest_offset=current_byte.offset + 32 - 1,\n        offset=byte_offset,\n        size=1,\n    )\n\n    # Code offsets\n    offset_calldata_copy = len(initialize_code)\n    offset_conditional = offset_calldata_copy + len(calldata_copy)\n\n    # Deploy contract\n    gas_hash_address = pre.deploy_contract(\n        code=initialize_code\n        + calldata_copy  # offset_calldata_copy\n        + Op.JUMPDEST  # offset_conditional\n        + Conditional(\n            condition=Op.ISZERO(current_byte),\n            if_true=(\n                # Increase the calldata byte offset, and if it's greater than\n                # the calldata size, return, otherwise jump to the calldata\n                # copy code and read the next byte.\n                byte_offset.add(1)\n                + Conditional(\n                    condition=Op.GT(byte_offset, Op.CALLDATASIZE()),\n                    if_true=Op.RETURN(offset=0, size=0),\n                    if_false=Op.JUMP(offset_calldata_copy),\n                )\n            ),\n            if_false=(current_byte.sub(1) + Op.JUMP(offset_conditional)),\n        )\n    )\n    return gas_hash_address\n\n\ndef make_invalid_opcode_contract(pre: Alloc, fork: Fork) -> Address:\n    \"\"\"\n    Deploy a contract that will execute any asked byte as an opcode from\n    calldataload Deploy 20 empty stack elements. Jump to opcode instruction. if\n    worked, return 0.\n    \"\"\"\n    invalid_opcode_caller = pre.deploy_contract(\n        code=Op.PUSH1(0) * 20\n        + Op.JUMP(Op.ADD(Op.MUL(7, Op.CALLDATALOAD(0)), 20 * 2 + 10))\n        + sum(\n            [\n                Op.JUMPDEST\n                + Bytecode(bytes([opcode]), popped_stack_items=0, pushed_stack_items=0)\n                + Op.RETURN(0, 0)\n                for opcode in range(0x00, 0xFF)\n            ],\n        )\n    )\n\n    invalid_opcodes = []\n    valid_opcode_values = [opcode.int() for opcode in fork.valid_opcodes()]\n\n    for op in range(0x00, 0xFF):\n        if op not in valid_opcode_values:\n            invalid_opcodes.append(op)\n\n    results_sum = MemoryVariable(0)\n    current_opcode = MemoryVariable(32)\n\n    code = Bytecode(\n        sum(\n            current_opcode.set(opcode)\n            + results_sum.add(\n                Op.CALL(\n                    gas=50000,\n                    address=invalid_opcode_caller,\n                    args_offset=current_opcode.offset,\n                    args_size=32,\n                ),\n            )\n            for opcode in invalid_opcodes\n        )\n        # If any of invalid instructions works, mstore[0] will be > 1\n        + results_sum.add(1)\n        + results_sum.return_value()\n    )\n\n    return pre.deploy_contract(code=code)\n"
  },
  {
    "path": "tests/frontier/scenarios/programs/__init__.py",
    "content": "\"\"\"Scenarios common import.\"\"\"\n"
  },
  {
    "path": "tests/frontier/scenarios/programs/all_frontier_opcodes.py",
    "content": "\"\"\"\nDefine a program for scenario test that executes all frontier opcodes and\nentangles it's result.\n\"\"\"\n\nfrom functools import cached_property\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import Alloc, Bytecode, Conditional\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom ..common import ProgramResult, ScenarioTestProgram\n\n# Opcodes that are not in Frontier\n# 1b - SHL\n# 1c - SHR\n# 1d - SAR\n\n\ndef make_all_opcode_program() -> Bytecode:\n    \"\"\"\n    Make a program that call each Frontier opcode and verifies it's result.\n    \"\"\"\n    code: Bytecode = (\n        # Test opcode 01 - ADD\n        Conditional(\n            condition=Op.EQ(Op.ADD(1, 1), 2),\n            if_true=Op.MSTORE(0, 2),\n            if_false=Op.MSTORE(0, 0) + Op.RETURN(0, 32),\n        )\n        # Test opcode 02 - MUL\n        + Conditional(\n            condition=Op.EQ(\n                Op.MUL(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 2),\n                0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE,\n            ),\n            if_true=Op.JUMPDEST,\n            if_false=Op.MSTORE(0, 2) + Op.RETURN(0, 32),\n        )\n        # Test 03 - SUB\n        + Conditional(\n            condition=Op.EQ(\n                Op.SUB(0, 1),\n                0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF,\n            ),\n            if_true=Op.JUMPDEST,\n            if_false=Op.MSTORE(0, 3) + Op.RETURN(0, 32),\n        )\n        # Test 04 - DIV\n        + Conditional(\n            condition=Op.AND(Op.EQ(Op.DIV(1, 2), 0), Op.EQ(Op.DIV(10, 2), 5)),\n            if_true=Op.JUMPDEST,\n            if_false=Op.MSTORE(0, 4) + Op.RETURN(0, 32),\n        )\n        # Test 05 - SDIV\n        + Conditional(\n            condition=Op.EQ(\n                Op.SDIV(\n                    0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE,\n                    0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF,\n                ),\n                2,\n            ),\n            if_true=Op.JUMPDEST,\n            if_false=Op.MSTORE(0, 5) + Op.RETURN(0, 32),\n        )\n        # Test 06 - MOD\n        + Conditional(\n            condition=Op.AND(\n                Op.EQ(Op.MOD(10, 3), 1),\n                Op.EQ(\n                    Op.MOD(\n                        0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8,\n                        0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD,\n                    ),\n                    0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8,\n                ),\n            ),\n            if_true=Op.JUMPDEST,\n            if_false=Op.MSTORE(0, 6) + Op.RETURN(0, 32),\n        )\n        # Test 07 - SMOD\n        + Conditional(\n            condition=Op.AND(\n                Op.EQ(Op.SMOD(10, 3), 1),\n                Op.EQ(\n                    Op.SMOD(\n                        0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8,\n                        0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD,\n                    ),\n                    0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE,\n                ),\n            ),\n            if_true=Op.JUMPDEST,\n            if_false=Op.MSTORE(0, 7) + Op.RETURN(0, 32),\n        )\n        # Test 08 - ADDMOD\n        + Conditional(\n            condition=Op.AND(\n                Op.EQ(Op.ADDMOD(10, 10, 8), 4),\n                Op.EQ(\n                    Op.ADDMOD(\n                        0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF,\n                        2,\n                        2,\n                    ),\n                    1,\n                ),\n            ),\n            if_true=Op.JUMPDEST,\n            if_false=Op.MSTORE(0, 8) + Op.RETURN(0, 32),\n        )\n        # Test 09 - MULMOD\n        + Conditional(\n            condition=Op.AND(\n                Op.EQ(Op.MULMOD(10, 10, 8), 4),\n                Op.EQ(\n                    Op.MULMOD(\n                        0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF,\n                        0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF,\n                        12,\n                    ),\n                    9,\n                ),\n            ),\n            if_true=Op.JUMPDEST,\n            if_false=Op.MSTORE(0, 9) + Op.RETURN(0, 32),\n        )\n        # Test 0A - EXP\n        + Conditional(\n            condition=Op.AND(\n                Op.EQ(Op.EXP(10, 2), 100),\n                Op.EQ(\n                    Op.EXP(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD, 2),\n                    9,\n                ),\n            ),\n            if_true=Op.JUMPDEST,\n            if_false=Op.MSTORE(0, 10) + Op.RETURN(0, 32),\n        )\n        # Test 0B - SIGNEXTEND\n        + Conditional(\n            condition=Op.AND(\n                Op.EQ(\n                    Op.SIGNEXTEND(0, 0xFF),\n                    0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF,\n                ),\n                Op.EQ(\n                    Op.SIGNEXTEND(0, 0x7F),\n                    0x7F,\n                ),\n            ),\n            if_true=Op.JUMPDEST,\n            if_false=Op.MSTORE(0, 11) + Op.RETURN(0, 32),\n        )\n        # Test 10 - LT\n        + Conditional(\n            condition=Op.AND(\n                Op.EQ(\n                    Op.LT(9, 10),\n                    1,\n                ),\n                Op.EQ(\n                    Op.LT(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0),\n                    0,\n                ),\n            ),\n            if_true=Op.JUMPDEST,\n            if_false=Op.MSTORE(0, 0x10) + Op.RETURN(0, 32),\n        )\n        # Test 11 - GT\n        + Conditional(\n            condition=Op.AND(\n                Op.EQ(\n                    Op.GT(9, 10),\n                    0,\n                ),\n                Op.EQ(\n                    Op.GT(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0),\n                    1,\n                ),\n            ),\n            if_true=Op.JUMPDEST,\n            if_false=Op.MSTORE(0, 0x11) + Op.RETURN(0, 32),\n        )\n        # Test 12 - SLT\n        + Conditional(\n            condition=Op.AND(\n                Op.EQ(\n                    Op.SLT(9, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF),\n                    0,\n                ),\n                Op.EQ(\n                    Op.SLT(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0),\n                    1,\n                ),\n            ),\n            if_true=Op.JUMPDEST,\n            if_false=Op.MSTORE(0, 0x12) + Op.RETURN(0, 32),\n        )\n        # Test 13 - SGT\n        + Conditional(\n            condition=Op.AND(\n                Op.EQ(\n                    Op.SGT(10, 10),\n                    0,\n                ),\n                Op.EQ(\n                    Op.SGT(0, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF),\n                    1,\n                ),\n            ),\n            if_true=Op.JUMPDEST,\n            if_false=Op.MSTORE(0, 0x13) + Op.RETURN(0, 32),\n        )\n        # Test 14 - EQ Skip\n        # Test 15 - ISZero\n        + Conditional(\n            condition=Op.AND(\n                Op.EQ(Op.ISZERO(10), 0),\n                Op.EQ(Op.ISZERO(0), 1),\n            ),\n            if_true=Op.JUMPDEST,\n            if_false=Op.MSTORE(0, 0x15) + Op.RETURN(0, 32),\n        )\n        # Test 16 - AND Skip\n        # Test 17 - OR\n        + Conditional(\n            condition=Op.AND(\n                Op.EQ(Op.OR(0xF0, 0xF), 0xFF),\n                Op.EQ(Op.OR(0xFF, 0xFF), 0xFF),\n            ),\n            if_true=Op.JUMPDEST,\n            if_false=Op.MSTORE(0, 0x17) + Op.RETURN(0, 32),\n        )\n        # Test 18 - XOR\n        + Conditional(\n            condition=Op.AND(\n                Op.EQ(Op.XOR(0xF0, 0xF), 0xFF),\n                Op.EQ(Op.XOR(0xFF, 0xFF), 0),\n            ),\n            if_true=Op.JUMPDEST,\n            if_false=Op.MSTORE(0, 0x18) + Op.RETURN(0, 32),\n        )\n        # Test 19 - NOT\n        + Conditional(\n            condition=Op.AND(\n                Op.EQ(\n                    Op.NOT(0), 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\n                ),\n                Op.EQ(\n                    Op.NOT(0xFFFFFFFFFFFF),\n                    0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000,\n                ),\n            ),\n            if_true=Op.JUMPDEST,\n            if_false=Op.MSTORE(0, 0x19) + Op.RETURN(0, 32),\n        )\n        # Test 1A - BYTE\n        + Conditional(\n            condition=Op.AND(\n                Op.EQ(Op.BYTE(31, 0xFF), 0xFF),\n                Op.EQ(Op.BYTE(30, 0xFF00), 0xFF),\n            ),\n            if_true=Op.JUMPDEST,\n            if_false=Op.MSTORE(0, 0x1A) + Op.RETURN(0, 32),\n        )\n        # Test 20 - SHA3\n        + Op.MSTORE(0, 0xFFFFFFFF)\n        + Conditional(\n            condition=Op.EQ(\n                Op.SHA3(28, 4),\n                0x29045A592007D0C246EF02C2223570DA9522D0CF0F73282C79A1BC8F0BB2C238,\n            ),\n            if_true=Op.JUMPDEST,\n            if_false=Op.MSTORE(0, 0x20) + Op.RETURN(0, 32),\n        )\n        # 50 POP\n        # 51 MLOAD\n        # 52 MSTORE\n        # 53 MSTORE8\n        + Op.MSTORE(0, 0)\n        + Op.MSTORE8(0, 0xFFFF)\n        + Conditional(\n            condition=Op.EQ(\n                Op.MLOAD(0),\n                0xFF00000000000000000000000000000000000000000000000000000000000000,\n            ),\n            if_true=Op.JUMPDEST,\n            if_false=Op.MSTORE(0, 0x53) + Op.RETURN(0, 32),\n        )\n        # 54 SLOAD\n        + Conditional(\n            condition=Op.EQ(Op.SLOAD(0), 0),\n            if_true=Op.JUMPDEST,\n            if_false=Op.MSTORE(0, 0x54) + Op.RETURN(0, 32),\n        )\n        # 55 SSTORE # can't use because of static contexts\n        # 56 JUMP\n        # 57 JUMPI\n        # 58 PC\n        + Conditional(\n            condition=Op.EQ(Op.PC, 1660),\n            if_true=Op.JUMPDEST,\n            if_false=Op.MSTORE(0, 0x58) + Op.RETURN(0, 32),\n        )\n        # 59 MSIZE\n        + Op.MSTORE(64, 123)\n        + Conditional(\n            condition=Op.EQ(Op.MSIZE, 96),\n            if_true=Op.JUMPDEST,\n            if_false=Op.MSTORE(0, 0x59) + Op.RETURN(0, 32),\n        )\n        # 5A GAS\n        # 5B JUMPDEST\n        # 5C TLOAD\n        # 5D TSTORE # can't use because of static contexts\n        # 5E MCOPY\n        # 5F PUSH0\n        # 60 - 7F  PUSH X\n        + Op.PUSH1(0xFF)\n        + Op.PUSH2(0xFFFF)\n        + Op.ADD\n        + Op.PUSH3(0xFFFFFF)\n        + Op.ADD\n        + Op.PUSH4(0xFFFFFFFF)\n        + Op.ADD\n        + Op.PUSH5(0xFFFFFFFFFF)\n        + Op.ADD\n        + Op.PUSH6(0xFFFFFFFFFFFF)\n        + Op.ADD\n        + Op.PUSH7(0xFFFFFFFFFFFFFF)\n        + Op.ADD\n        + Op.PUSH8(0xFFFFFFFFFFFFFFFF)\n        + Op.ADD\n        + Op.PUSH9(0xFFFFFFFFFFFFFFFFFF)\n        + Op.ADD\n        + Op.PUSH10(0xFFFFFFFFFFFFFFFFFFFF)\n        + Op.ADD\n        + Op.PUSH11(0xFFFFFFFFFFFFFFFFFFFFFF)\n        + Op.ADD\n        + Op.PUSH12(0xFFFFFFFFFFFFFFFFFFFFFFFF)\n        + Op.ADD\n        + Op.PUSH13(0xFFFFFFFFFFFFFFFFFFFFFFFFFF)\n        + Op.ADD\n        + Op.PUSH14(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF)\n        + Op.ADD\n        + Op.PUSH15(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)\n        + Op.ADD\n        + Op.PUSH16(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)\n        + Op.ADD\n        + Op.PUSH17(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)\n        + Op.ADD\n        + Op.PUSH18(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)\n        + Op.ADD\n        + Op.PUSH19(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)\n        + Op.ADD\n        + Op.PUSH20(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)\n        + Op.ADD\n        + Op.PUSH21(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)\n        + Op.ADD\n        + Op.PUSH22(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)\n        + Op.ADD\n        + Op.PUSH23(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)\n        + Op.ADD\n        + Op.PUSH24(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)\n        + Op.ADD\n        + Op.PUSH25(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)\n        + Op.ADD\n        + Op.PUSH26(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)\n        + Op.ADD\n        + Op.PUSH27(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)\n        + Op.ADD\n        + Op.PUSH28(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)\n        + Op.ADD\n        + Op.PUSH29(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)\n        + Op.ADD\n        + Op.PUSH30(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)\n        + Op.ADD\n        + Op.PUSH31(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)\n        + Op.ADD\n        + Op.PUSH32(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)\n        + Op.ADD\n        + Op.PUSH1(0)\n        + Op.MSTORE\n        + Conditional(\n            condition=Op.EQ(\n                Op.MLOAD(0), 0x1010101010101010101010101010101010101010101010101010101010100E0\n            ),\n            if_true=Op.JUMPDEST,\n            if_false=Op.MSTORE(0, 60) + Op.RETURN(0, 32),\n        )\n        # 80 - 8F  DUP X\n        + Op.PUSH1(1)\n        + Op.DUP1\n        + Op.DUP2\n        + Op.DUP3\n        + Op.DUP4\n        + Op.DUP5\n        + Op.DUP6\n        + Op.DUP7\n        + Op.DUP8\n        + Op.DUP9\n        + Op.DUP10\n        + Op.DUP11\n        + Op.DUP12\n        + Op.DUP13\n        + Op.DUP14\n        + Op.DUP15\n        + Op.DUP16\n        + Op.ADD * 16\n        + Op.PUSH1(0)\n        + Op.MSTORE\n        + Conditional(\n            condition=Op.EQ(Op.MLOAD(0), 17),\n            if_true=Op.JUMPDEST,\n            if_false=Op.MSTORE(0, 0x80) + Op.RETURN(0, 32),\n        )\n        # 90 - 9F SWAP X\n        + Op.PUSH1(3)\n        + Op.PUSH1(5)\n        + Op.SWAP1\n        + Op.PUSH1(7)\n        + Op.SWAP2\n        + Op.PUSH1(11)\n        + Op.SWAP3\n        + Op.PUSH1(13)\n        + Op.SWAP4\n        + Op.PUSH1(17)\n        + Op.SWAP5\n        + Op.PUSH1(19)\n        + Op.SWAP6\n        + Op.PUSH1(23)\n        + Op.SWAP7\n        + Op.PUSH1(29)\n        + Op.SWAP8\n        + Op.PUSH1(31)\n        + Op.SWAP9\n        + Op.PUSH1(37)\n        + Op.SWAP10\n        + Op.PUSH1(41)\n        + Op.SWAP11\n        + Op.PUSH1(43)\n        + Op.SWAP12\n        + Op.PUSH1(47)\n        + Op.SWAP13\n        + Op.PUSH1(53)\n        + Op.SWAP14\n        + Op.PUSH1(59)\n        + Op.SWAP15\n        + Op.PUSH1(61)\n        + Op.SWAP16\n        + Op.PUSH1(0)\n        + Op.MSTORE\n        + Conditional(\n            condition=Op.EQ(Op.MLOAD(0), 59),\n            if_true=Op.JUMPDEST,\n            if_false=Op.MSTORE(0, 0x90) + Op.RETURN(0, 32),\n        )\n        # A0 - A4 LOG X - can't use because non static\n        # F0 CREATE\n        # F1 CALL\n        # F2 CALLCODE\n        # F3 RETURN\n        # F4 DELEGATECALL\n        # F5 CREATE2\n        # FA STATICCALL\n        # FD REVERT\n        # FE INVALID\n        # FF SELFDESTRUCT\n        + Op.MSTORE(0, 1)\n        + Op.RETURN(0, 32)\n    )\n    return code\n\n\nclass ProgramAllFrontierOpcodes(ScenarioTestProgram):\n    \"\"\"Check every frontier opcode functions.\"\"\"\n\n    def make_test_code(self, pre: Alloc, fork: Fork) -> Bytecode:\n        \"\"\"Test code.\"\"\"\n        del pre, fork\n        return make_all_opcode_program()\n\n    @cached_property\n    def id(self) -> str:\n        \"\"\"Id.\"\"\"\n        return \"program_ALL_FRONTIER_OPCODES\"\n\n    def result(self) -> ProgramResult:\n        \"\"\"Test result.\"\"\"\n        return ProgramResult(result=1)\n"
  },
  {
    "path": "tests/frontier/scenarios/programs/context_calls.py",
    "content": "\"\"\"Define programs that will run all context opcodes for test scenarios.\"\"\"\n\nfrom functools import cached_property\n\nfrom ethereum_test_forks import Byzantium, Cancun, Constantinople, Fork, Istanbul, London, Shanghai\nfrom ethereum_test_tools import Alloc, Bytecode\nfrom ethereum_test_types import ChainConfigDefaults\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom ..common import (\n    ProgramResult,\n    ScenarioExpectOpcode,\n    ScenarioTestProgram,\n    make_gas_hash_contract,\n)\n\n\nclass ProgramAddress(ScenarioTestProgram):\n    \"\"\"\n    Check that ADDRESS is really the code execution address in all scenarios.\n    \"\"\"\n\n    def make_test_code(self, pre: Alloc, fork: Fork) -> Bytecode:\n        \"\"\"Test code.\"\"\"\n        del pre, fork\n        return Op.MSTORE(0, Op.ADDRESS) + Op.RETURN(0, 32)\n\n    @cached_property\n    def id(self) -> str:\n        \"\"\"Id.\"\"\"\n        return \"program_ADDRESS\"\n\n    def result(self) -> ProgramResult:\n        \"\"\"Test result.\"\"\"\n        return ProgramResult(result=ScenarioExpectOpcode.CODE_ADDRESS)\n\n\nclass ProgramBalance(ScenarioTestProgram):\n    \"\"\"Check the BALANCE in all execution contexts.\"\"\"\n\n    external_balance: int = 123\n\n    def make_test_code(self, pre: Alloc, fork: Fork) -> Bytecode:\n        \"\"\"Test code.\"\"\"\n        del fork\n        external_address = pre.deploy_contract(code=Op.ADD(1, 1), balance=self.external_balance)\n        return Op.MSTORE(0, Op.BALANCE(external_address)) + Op.RETURN(0, 32)\n\n    @cached_property\n    def id(self) -> str:\n        \"\"\"Id.\"\"\"\n        return \"program_BALANCE\"\n\n    def result(self) -> ProgramResult:\n        \"\"\"Test result.\"\"\"\n        return ProgramResult(result=self.external_balance)\n\n\nclass ProgramOrigin(ScenarioTestProgram):\n    \"\"\"Check that ORIGIN stays the same in all contexts.\"\"\"\n\n    def make_test_code(self, pre: Alloc, fork: Fork) -> Bytecode:\n        \"\"\"Test code.\"\"\"\n        del pre, fork\n        return Op.MSTORE(0, Op.ORIGIN) + Op.RETURN(0, 32)\n\n    @cached_property\n    def id(self) -> str:\n        \"\"\"Id.\"\"\"\n        return \"program_ORIGIN\"\n\n    def result(self) -> ProgramResult:\n        \"\"\"Test result.\"\"\"\n        return ProgramResult(result=ScenarioExpectOpcode.TX_ORIGIN)\n\n\nclass ProgramCaller(ScenarioTestProgram):\n    \"\"\"Check the CALLER in all execution contexts.\"\"\"\n\n    def make_test_code(self, pre: Alloc, fork: Fork) -> Bytecode:\n        \"\"\"Test code.\"\"\"\n        del pre, fork\n        return Op.MSTORE(0, Op.CALLER) + Op.RETURN(0, 32)\n\n    @cached_property\n    def id(self) -> str:\n        \"\"\"Id.\"\"\"\n        return \"program_CALLER\"\n\n    def result(self) -> ProgramResult:\n        \"\"\"Test result.\"\"\"\n        return ProgramResult(result=ScenarioExpectOpcode.CODE_CALLER)\n\n\nclass ProgramCallValue(ScenarioTestProgram):\n    \"\"\"Check the CALLVALUE in all execution contexts.\"\"\"\n\n    def make_test_code(self, pre: Alloc, fork: Fork) -> Bytecode:\n        \"\"\"Test code.\"\"\"\n        del pre, fork\n        return Op.MSTORE(0, Op.CALLVALUE) + Op.RETURN(0, 32)\n\n    @cached_property\n    def id(self) -> str:\n        \"\"\"Id.\"\"\"\n        return \"program_CALLVALUE\"\n\n    def result(self) -> ProgramResult:\n        \"\"\"Test result.\"\"\"\n        return ProgramResult(result=ScenarioExpectOpcode.CALL_VALUE)\n\n\nclass ProgramCallDataLoad(ScenarioTestProgram):\n    \"\"\"Check the CALLDATALOAD in all execution contexts.\"\"\"\n\n    def make_test_code(self, pre: Alloc, fork: Fork) -> Bytecode:\n        \"\"\"Test code.\"\"\"\n        del pre, fork\n        return Op.MSTORE(0, Op.CALLDATALOAD(0)) + Op.RETURN(0, 32)\n\n    @cached_property\n    def id(self) -> str:\n        \"\"\"Id.\"\"\"\n        return \"program_CALLDATALOAD\"\n\n    def result(self) -> ProgramResult:\n        \"\"\"Test result.\"\"\"\n        return ProgramResult(result=ScenarioExpectOpcode.CALL_DATALOAD_0)\n\n\nclass ProgramCallDataSize(ScenarioTestProgram):\n    \"\"\"Check the CALLDATASIZE in all execution contexts.\"\"\"\n\n    def make_test_code(self, pre: Alloc, fork: Fork) -> Bytecode:\n        \"\"\"Test code.\"\"\"\n        del pre, fork\n        return Op.MSTORE(0, Op.CALLDATASIZE) + Op.RETURN(0, 32)\n\n    @cached_property\n    def id(self) -> str:\n        \"\"\"Id.\"\"\"\n        return \"program_CALLDATASIZE\"\n\n    def result(self) -> ProgramResult:\n        \"\"\"Test result.\"\"\"\n        return ProgramResult(result=ScenarioExpectOpcode.CALL_DATASIZE)\n\n\nclass ProgramCallDataCopy(ScenarioTestProgram):\n    \"\"\"Check the CALLDATACOPY in all execution contexts.\"\"\"\n\n    def make_test_code(self, pre: Alloc, fork: Fork) -> Bytecode:\n        \"\"\"Test code.\"\"\"\n        del pre, fork\n        return Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE) + Op.RETURN(0, 32)\n\n    @cached_property\n    def id(self) -> str:\n        \"\"\"Id.\"\"\"\n        return \"program_CALLDATACOPY\"\n\n    def result(self) -> ProgramResult:\n        \"\"\"Test result.\"\"\"\n        return ProgramResult(result=ScenarioExpectOpcode.CALL_DATALOAD_0)\n\n\nclass ProgramCodeCopyCodeSize(ScenarioTestProgram):\n    \"\"\"Check that codecopy and codesize stays the same in all contexts.\"\"\"\n\n    def make_test_code(self, pre: Alloc, fork: Fork) -> Bytecode:\n        \"\"\"Test code.\"\"\"\n        del pre, fork\n        return Op.MSTORE(0, Op.CODESIZE) + Op.CODECOPY(0, 0, 30) + Op.RETURN(0, 32)\n\n    @cached_property\n    def id(self) -> str:\n        \"\"\"Id.\"\"\"\n        return \"program_CODECOPY_CODESIZE\"\n\n    def result(self) -> ProgramResult:\n        \"\"\"Test result.\"\"\"\n        return ProgramResult(\n            result=0x38600052601E600060003960206000F300000000000000000000000000000010\n        )\n\n\nclass ProgramGasPrice(ScenarioTestProgram):\n    \"\"\"Check that gasprice stays the same in all contexts.\"\"\"\n\n    def make_test_code(self, pre: Alloc, fork: Fork) -> Bytecode:\n        \"\"\"Test code.\"\"\"\n        del fork\n        gas_hash = make_gas_hash_contract(pre)\n\n        return (\n            Op.MSTORE(64, Op.GASPRICE)\n            + Op.CALL(Op.SUB(Op.GAS, 200000), gas_hash, 0, 64, 32, 0, 0)\n            + Op.MSTORE(0, 1)\n            + Op.RETURN(0, 32)\n        )\n\n    @cached_property\n    def id(self) -> str:\n        \"\"\"Id.\"\"\"\n        return \"program_GASPRICE\"\n\n    def result(self) -> ProgramResult:\n        \"\"\"Test result.\"\"\"\n        return ProgramResult(result=1)\n\n\nclass ProgramExtCodeCopyExtCodeSize(ScenarioTestProgram):\n    \"\"\"Check that gasprice stays the same in all contexts.\"\"\"\n\n    external_balance: int = 123\n\n    def make_test_code(self, pre: Alloc, fork: Fork) -> Bytecode:\n        \"\"\"Test code.\"\"\"\n        del fork\n\n        external_address = pre.deploy_contract(code=Op.ADD(1, 1), balance=self.external_balance)\n        return (\n            Op.MSTORE(0, Op.EXTCODESIZE(external_address))\n            + Op.EXTCODECOPY(external_address, 0, 0, 30)\n            + Op.RETURN(0, 32)\n        )\n\n    @cached_property\n    def id(self) -> str:\n        \"\"\"Id.\"\"\"\n        return \"program_EXTCODECOPY_EXTCODESIZE\"\n\n    def result(self) -> ProgramResult:\n        \"\"\"Test result.\"\"\"\n        return ProgramResult(\n            result=0x6001600101000000000000000000000000000000000000000000000000000005\n        )\n\n\nclass ProgramReturnDataSize(ScenarioTestProgram):\n    \"\"\"Check that returndatasize stays the same in all contexts.\"\"\"\n\n    def make_test_code(self, pre: Alloc, fork: Fork) -> Bytecode:\n        \"\"\"Test code.\"\"\"\n        del pre, fork\n        return (\n            Op.MSTORE(0, Op.RETURNDATASIZE)\n            + Op.CALL(100000, 2, 0, 0, 10, 32, 20)\n            + Op.MSTORE(0, Op.ADD(Op.MLOAD(0), Op.RETURNDATASIZE))\n            + Op.RETURN(0, 32)\n        )\n\n    @cached_property\n    def id(self) -> str:\n        \"\"\"Id.\"\"\"\n        return \"program_RETURNDATASIZE\"\n\n    def result(self) -> ProgramResult:\n        \"\"\"Test result.\"\"\"\n        return ProgramResult(result=32, from_fork=Byzantium)\n\n\nclass ProgramReturnDataCopy(ScenarioTestProgram):\n    \"\"\"Check that returndatacopy stays the same in all contexts.\"\"\"\n\n    def make_test_code(self, pre: Alloc, fork: Fork) -> Bytecode:\n        \"\"\"Test code.\"\"\"\n        del pre, fork\n        return (\n            Op.CALL(100000, 2, 0, 0, 10, 32, 20) + Op.RETURNDATACOPY(0, 0, 32) + Op.RETURN(0, 32)\n        )\n\n    @cached_property\n    def id(self) -> str:\n        \"\"\"Id.\"\"\"\n        return \"program_RETURNDATACOPY\"\n\n    def result(self) -> ProgramResult:\n        \"\"\"Test result.\"\"\"\n        return ProgramResult(\n            result=0x1D448AFD928065458CF670B60F5A594D735AF0172C8D67F22A81680132681CA,\n            from_fork=Byzantium,\n        )\n\n\nclass ProgramExtCodehash(ScenarioTestProgram):\n    \"\"\"Check that extcodehash stays the same in all contexts.\"\"\"\n\n    def make_test_code(self, pre: Alloc, fork: Fork) -> Bytecode:\n        \"\"\"Test code.\"\"\"\n        del fork\n\n        external_address = pre.deploy_contract(code=Op.ADD(1, 1), balance=123)\n        return Op.MSTORE(0, Op.EXTCODEHASH(external_address)) + Op.RETURN(0, 32)\n\n    @cached_property\n    def id(self) -> str:\n        \"\"\"Id.\"\"\"\n        return \"program_EXTCODEHASH\"\n\n    def result(self) -> ProgramResult:\n        \"\"\"Test result.\"\"\"\n        return ProgramResult(\n            result=0x8C634A8B28DD46F5DCB9A9F5DA1FAED26D0FB5ED98F3873A29AD27AAAFFDE0E4,\n            from_fork=Constantinople,\n        )\n\n\nclass ProgramBlockhash(ScenarioTestProgram):\n    \"\"\"Check that blockhash stays the same in all contexts.\"\"\"\n\n    # Need a way to pre calculate at least hash of block 0\n\n    def make_test_code(self, pre: Alloc, fork: Fork) -> Bytecode:\n        \"\"\"Test code.\"\"\"\n        del fork\n\n        # Calculate gas hash of Op.BLOCKHASH(0) value\n        gas_hash = make_gas_hash_contract(pre)\n\n        return (\n            Op.MSTORE(64, Op.BLOCKHASH(0))\n            + Op.CALL(Op.SUB(Op.GAS, 200000), gas_hash, 0, 64, 32, 0, 0)\n            + Op.MSTORE(0, 1)\n            + Op.RETURN(0, 32)\n        )\n\n    @cached_property\n    def id(self) -> str:\n        \"\"\"Id.\"\"\"\n        return \"program_BLOCKHASH\"\n\n    def result(self) -> ProgramResult:\n        \"\"\"Test result.\"\"\"\n        return ProgramResult(result=1)\n\n\nclass ProgramCoinbase(ScenarioTestProgram):\n    \"\"\"Check that coinbase stays the same in all contexts.\"\"\"\n\n    def make_test_code(self, pre: Alloc, fork: Fork) -> Bytecode:\n        \"\"\"Test code.\"\"\"\n        del pre, fork\n        return Op.MSTORE(0, Op.COINBASE) + Op.RETURN(0, 32)\n\n    @cached_property\n    def id(self) -> str:\n        \"\"\"Id.\"\"\"\n        return \"program_COINBASE\"\n\n    def result(self) -> ProgramResult:\n        \"\"\"Test result.\"\"\"\n        return ProgramResult(result=ScenarioExpectOpcode.COINBASE)\n\n\nclass ProgramTimestamp(ScenarioTestProgram):\n    \"\"\"Check that timestamp stays the same in all contexts.\"\"\"\n\n    def make_test_code(self, pre: Alloc, fork: Fork) -> Bytecode:\n        \"\"\"Test code.\"\"\"\n        del fork\n\n        gas_hash = make_gas_hash_contract(pre)\n        return (\n            Op.MSTORE(64, Op.TIMESTAMP)\n            + Op.CALL(Op.SUB(Op.GAS, 200000), gas_hash, 0, 64, 32, 0, 0)\n            + Op.MSTORE(0, 1)\n            + Op.RETURN(0, 32)\n        )\n\n    @cached_property\n    def id(self) -> str:\n        \"\"\"Id.\"\"\"\n        return \"program_TIMESTAMP\"\n\n    def result(self) -> ProgramResult:\n        \"\"\"Test result.\"\"\"\n        return ProgramResult(result=1)\n\n\nclass ProgramNumber(ScenarioTestProgram):\n    \"\"\"Check that block number stays the same in all contexts.\"\"\"\n\n    def make_test_code(self, pre: Alloc, fork: Fork) -> Bytecode:\n        \"\"\"Test code.\"\"\"\n        del pre, fork\n        return Op.MSTORE(0, Op.NUMBER) + Op.RETURN(0, 32)\n\n    @cached_property\n    def id(self) -> str:\n        \"\"\"Id.\"\"\"\n        return \"program_NUMBER\"\n\n    def result(self) -> ProgramResult:\n        \"\"\"Test result.\"\"\"\n        return ProgramResult(result=ScenarioExpectOpcode.NUMBER)\n\n\nclass ProgramDifficultyRandao(ScenarioTestProgram):\n    \"\"\"Check that difficulty/randao stays the same in all contexts.\"\"\"\n\n    def make_test_code(self, pre: Alloc, fork: Fork) -> Bytecode:\n        \"\"\"Test code.\"\"\"\n        del fork\n\n        # Calculate gas hash of DIFFICULTY value\n        gas_hash = make_gas_hash_contract(pre)\n        return (\n            Op.MSTORE(0, Op.PREVRANDAO)\n            + Op.MSTORE(64, Op.PREVRANDAO)\n            + Op.CALL(Op.SUB(Op.GAS, 200000), gas_hash, 0, 64, 32, 0, 0)\n            + Op.MSTORE(0, 1)\n            + Op.RETURN(0, 32)\n        )\n\n    @cached_property\n    def id(self) -> str:\n        \"\"\"Id.\"\"\"\n        return \"program_DIFFICULTY\"\n\n    def result(self) -> ProgramResult:\n        \"\"\"Test result.\"\"\"\n        return ProgramResult(result=1)\n\n\nclass ProgramGasLimit(ScenarioTestProgram):\n    \"\"\"Check that gaslimit stays the same in all contexts.\"\"\"\n\n    def make_test_code(self, pre: Alloc, fork: Fork) -> Bytecode:\n        \"\"\"Test code.\"\"\"\n        del pre, fork\n        return Op.MSTORE(0, Op.GASLIMIT) + Op.RETURN(0, 32)\n\n    @cached_property\n    def id(self) -> str:\n        \"\"\"Id.\"\"\"\n        return \"program_GASLIMIT\"\n\n    def result(self) -> ProgramResult:\n        \"\"\"Test result.\"\"\"\n        return ProgramResult(result=ScenarioExpectOpcode.GASLIMIT)\n\n\nclass ProgramChainid(ScenarioTestProgram):\n    \"\"\"Check that chainid stays the same in all contexts.\"\"\"\n\n    def make_test_code(self, pre: Alloc, fork: Fork) -> Bytecode:\n        \"\"\"Test code.\"\"\"\n        del pre, fork\n        return Op.MSTORE(0, Op.CHAINID) + Op.RETURN(0, 32)\n\n    @cached_property\n    def id(self) -> str:\n        \"\"\"Id.\"\"\"\n        return \"program_CHAINID\"\n\n    def result(self) -> ProgramResult:\n        \"\"\"Test result.\"\"\"\n        # TODO: use `chain_config` fixture instead.\n        chain_id = ChainConfigDefaults.chain_id\n\n        return ProgramResult(result=chain_id, from_fork=Istanbul)\n\n\nclass ProgramSelfbalance(ScenarioTestProgram):\n    \"\"\"Check the SELFBALANCE in all execution contexts.\"\"\"\n\n    def make_test_code(self, pre: Alloc, fork: Fork) -> Bytecode:\n        \"\"\"Test code.\"\"\"\n        del pre, fork\n        return Op.MSTORE(0, Op.SELFBALANCE) + Op.RETURN(0, 32)\n\n    @cached_property\n    def id(self) -> str:\n        \"\"\"Id.\"\"\"\n        return \"program_SELFBALANCE\"\n\n    def result(self) -> ProgramResult:\n        \"\"\"Test result.\"\"\"\n        return ProgramResult(result=ScenarioExpectOpcode.SELFBALANCE, from_fork=Istanbul)\n\n\nclass ProgramBasefee(ScenarioTestProgram):\n    \"\"\"Check the BASEFEE in all execution contexts.\"\"\"\n\n    def make_test_code(self, pre: Alloc, fork: Fork) -> Bytecode:\n        \"\"\"Test code.\"\"\"\n        del fork\n\n        gas_hash = make_gas_hash_contract(pre)\n        return (\n            Op.MSTORE(64, Op.BASEFEE)\n            + Op.CALL(Op.SUB(Op.GAS, 200000), gas_hash, 0, 64, 32, 0, 0)\n            + Op.MSTORE(0, 1)\n            + Op.RETURN(0, 32)\n        )\n\n    @cached_property\n    def id(self) -> str:\n        \"\"\"Id.\"\"\"\n        return \"program_BASEFEE\"\n\n    def result(self) -> ProgramResult:\n        \"\"\"Test result.\"\"\"\n        return ProgramResult(result=1, from_fork=London)\n\n\nclass ProgramBlobhash(ScenarioTestProgram):\n    \"\"\"Check the blobhash in all execution contexts.\"\"\"\n\n    def make_test_code(self, pre: Alloc, fork: Fork) -> Bytecode:\n        \"\"\"Test code.\"\"\"\n        del pre, fork\n        return Op.MSTORE(0, Op.BLOBHASH(0)) + Op.RETURN(0, 32)\n\n    @cached_property\n    def id(self) -> str:\n        \"\"\"Id.\"\"\"\n        return \"program_BLOBHASH\"\n\n    def result(self) -> ProgramResult:\n        \"\"\"Test result.\"\"\"\n        return ProgramResult(result=0, from_fork=Cancun)\n\n\nclass ProgramBlobBaseFee(ScenarioTestProgram):\n    \"\"\"Check the blob basefee in all execution contexts.\"\"\"\n\n    def make_test_code(self, pre: Alloc, fork: Fork) -> Bytecode:\n        \"\"\"Test code.\"\"\"\n        del fork\n\n        gas_hash = make_gas_hash_contract(pre)\n        return (\n            Op.MSTORE(64, Op.BLOBBASEFEE)\n            + Op.CALL(Op.SUB(Op.GAS, 200000), gas_hash, 0, 64, 32, 0, 0)\n            + Op.MSTORE(0, 1)\n            + Op.RETURN(0, 32)\n        )\n\n    @cached_property\n    def id(self) -> str:\n        \"\"\"Id.\"\"\"\n        return \"program_BLOBBASEFEE\"\n\n    def result(self) -> ProgramResult:\n        \"\"\"Test result.\"\"\"\n        return ProgramResult(result=1, from_fork=Cancun)\n\n\nclass ProgramTload(ScenarioTestProgram):\n    \"\"\"Check the tload in all execution contexts.\"\"\"\n\n    def make_test_code(self, pre: Alloc, fork: Fork) -> Bytecode:\n        \"\"\"Test code.\"\"\"\n        del pre, fork\n        return Op.MSTORE(0, Op.TLOAD(0)) + Op.RETURN(0, 32)\n\n    @cached_property\n    def id(self) -> str:\n        \"\"\"Id.\"\"\"\n        return \"program_TLOAD\"\n\n    def result(self) -> ProgramResult:\n        \"\"\"Test result.\"\"\"\n        return ProgramResult(result=0, from_fork=Cancun)\n\n\nclass ProgramMcopy(ScenarioTestProgram):\n    \"\"\"Check the mcopy in all execution contexts.\"\"\"\n\n    def make_test_code(self, pre: Alloc, fork: Fork) -> Bytecode:\n        \"\"\"Test code.\"\"\"\n        del pre, fork\n        return (\n            Op.MSTORE(0, 0)\n            + Op.MSTORE(32, 0x000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F)\n            + Op.MCOPY(0, 32, 32)\n            + Op.RETURN(0, 32)\n        )\n\n    @cached_property\n    def id(self) -> str:\n        \"\"\"Id.\"\"\"\n        return \"program_MCOPY\"\n\n    def result(self) -> ProgramResult:\n        \"\"\"Test result.\"\"\"\n        return ProgramResult(\n            result=0x000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F,\n            from_fork=Cancun,\n        )\n\n\nclass ProgramPush0(ScenarioTestProgram):\n    \"\"\"Check the push0 in all execution contexts.\"\"\"\n\n    def make_test_code(self, pre: Alloc, fork: Fork) -> Bytecode:\n        \"\"\"Test code.\"\"\"\n        del pre, fork\n        return Op.PUSH1(10) + Op.PUSH0 + Op.MSTORE + Op.RETURN(0, 32)\n\n    @cached_property\n    def id(self) -> str:\n        \"\"\"Id.\"\"\"\n        return \"program_PUSH0\"\n\n    def result(self) -> ProgramResult:\n        \"\"\"Test result.\"\"\"\n        return ProgramResult(result=10, from_fork=Shanghai)\n"
  },
  {
    "path": "tests/frontier/scenarios/programs/invalid_opcodes.py",
    "content": "\"\"\"Define programs that can not be run in static context.\"\"\"\n\nfrom functools import cached_property\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import Alloc, Bytecode\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom ..common import ProgramResult, ScenarioTestProgram, make_invalid_opcode_contract\n\n\nclass ProgramInvalidOpcode(ScenarioTestProgram):\n    \"\"\"Test each invalid opcode.\"\"\"\n\n    def make_test_code(self, pre: Alloc, fork: Fork) -> Bytecode:\n        \"\"\"Test code.\"\"\"\n        contract = make_invalid_opcode_contract(pre, fork)\n        return Op.MSTORE(\n            0,\n            Op.CALL(Op.SUB(Op.GAS, 200000), contract, 0, 64, 32, 100, 32),\n        ) + Op.RETURN(100, 32)\n\n    @cached_property\n    def id(self) -> str:\n        \"\"\"Id.\"\"\"\n        return \"program_INVALID\"\n\n    def result(self) -> ProgramResult:\n        \"\"\"Test result.\"\"\"\n        return ProgramResult(result=1)\n"
  },
  {
    "path": "tests/frontier/scenarios/programs/static_violation.py",
    "content": "\"\"\"Define programs that can not be run in static context.\"\"\"\n\nfrom functools import cached_property\n\nfrom ethereum_test_forks import Cancun, Fork\nfrom ethereum_test_tools import Alloc, Bytecode\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom ..common import ProgramResult, ScenarioTestProgram\n\n\nclass ProgramSstoreSload(ScenarioTestProgram):\n    \"\"\"Test sstore, sload working.\"\"\"\n\n    def make_test_code(self, pre: Alloc, fork: Fork) -> Bytecode:\n        \"\"\"Test code.\"\"\"\n        del pre, fork\n        return (\n            Op.SSTORE(0, 11)\n            + Op.MSTORE(0, Op.ADD(Op.MLOAD(0), Op.SLOAD(0)))\n            + Op.SSTORE(0, 5)\n            + Op.MSTORE(0, Op.ADD(Op.MLOAD(0), Op.SLOAD(0)))\n            + Op.RETURN(0, 32)\n        )\n\n    @cached_property\n    def id(self) -> str:\n        \"\"\"Id.\"\"\"\n        return \"program_SSTORE_SLOAD\"\n\n    def result(self) -> ProgramResult:\n        \"\"\"Test result.\"\"\"\n        return ProgramResult(result=16, static_support=False)\n\n\nclass ProgramTstoreTload(ScenarioTestProgram):\n    \"\"\"Test sstore, sload working.\"\"\"\n\n    def make_test_code(self, pre: Alloc, fork: Fork) -> Bytecode:\n        \"\"\"Test code.\"\"\"\n        del pre, fork\n        return Op.TSTORE(0, 11) + Op.MSTORE(0, Op.TLOAD(0)) + Op.RETURN(0, 32)\n\n    @cached_property\n    def id(self) -> str:\n        \"\"\"Id.\"\"\"\n        return \"program_TSTORE_TLOAD\"\n\n    def result(self) -> ProgramResult:\n        \"\"\"Test result.\"\"\"\n        return ProgramResult(result=11, static_support=False, from_fork=Cancun)\n\n\nclass ProgramLogs(ScenarioTestProgram):\n    \"\"\"Test Logs.\"\"\"\n\n    def make_test_code(self, pre: Alloc, fork: Fork) -> Bytecode:\n        \"\"\"Test code.\"\"\"\n        del pre, fork\n        return (\n            Op.MSTORE(0, 0x1122334455667788991011121314151617181920212223242526272829303132)\n            + Op.LOG0(0, 1)\n            + Op.LOG1(1, 1, 0x1000)\n            + Op.LOG2(2, 1, 0x2000, 0x2001)\n            + Op.LOG3(3, 1, 0x3000, 0x3001, 0x3002)\n            + Op.LOG4(4, 1, 0x4000, 0x4001, 0x4002, 0x4003)\n            + Op.MSTORE(0, 1)\n            + Op.RETURN(0, 32)\n        )\n\n    @cached_property\n    def id(self) -> str:\n        \"\"\"Id.\"\"\"\n        return \"program_LOGS\"\n\n    def result(self) -> ProgramResult:\n        \"\"\"Test result.\"\"\"\n        return ProgramResult(result=1, static_support=False)\n\n\nclass ProgramSuicide(ScenarioTestProgram):\n    \"\"\"Test Suicide.\"\"\"\n\n    def make_test_code(self, pre: Alloc, fork: Fork) -> Bytecode:\n        \"\"\"Test code.\"\"\"\n        del pre, fork\n        return Op.MSTORE(0, 1) + Op.SELFDESTRUCT(0) + Op.RETURN(0, 32)\n\n    @cached_property\n    def id(self) -> str:\n        \"\"\"Id.\"\"\"\n        return \"program_SUICIDE\"\n\n    def result(self) -> ProgramResult:\n        \"\"\"Test result.\"\"\"\n        return ProgramResult(result=0, static_support=False)\n"
  },
  {
    "path": "tests/frontier/scenarios/scenarios/__init__.py",
    "content": "\"\"\"Scenarios common import.\"\"\"\n"
  },
  {
    "path": "tests/frontier/scenarios/scenarios/call_combinations.py",
    "content": "\"\"\"Define Scenario that will put a given program in all call contexts.\"\"\"\n\nfrom dataclasses import dataclass\nfrom typing import List\n\nfrom ethereum_test_tools import Address, Alloc\nfrom ethereum_test_vm import EVMCodeType, Opcode\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom ..common import Scenario, ScenarioEnvironment, ScenarioGeneratorInput\n\n\nclass ScenariosCallCombinations:\n    \"\"\"Class that would generate scenarios for all call combinations.\"\"\"\n\n    @dataclass\n    class AddressBalance:\n        \"\"\"Definition of values we use to put in contract balances and call.\"\"\"\n\n        root_call_value = 1\n        first_call_value = 3\n        second_call_value = 5\n\n        root_contract_balance = 105\n        scenario_contract_balance = 107\n        sub_contract_balance = 111\n        program_selfbalance = 113\n\n    \"\"\"The gas we keep before calling an address\"\"\"\n    keep_gas = 100000\n\n    \"\"\"Possible calls list to make as a first call\"\"\"\n    first_call_opcodes: List[Opcode] = []\n\n    \"\"\"Possible calls list to make as a second call\"\"\"\n    second_call_opcodes: List[Opcode] = []\n\n    \"\"\"Balance map that we put in different accounts\"\"\"\n    balance: AddressBalance\n    scenario_input: ScenarioGeneratorInput\n\n    env: ScenarioEnvironment\n\n    def __init__(self, scenario_input: ScenarioGeneratorInput):\n        \"\"\"Define possible call combinations given the fork.\"\"\"\n        self.first_call_opcodes = [\n            callcode\n            for callcode, evm_type in scenario_input.fork.call_opcodes()\n            if evm_type == EVMCodeType.LEGACY\n        ]\n        self.second_call_opcodes = self.first_call_opcodes[:]\n        self.second_call_opcodes.append(Op.NOOP)\n        self.scenario_input = scenario_input\n        self.balance = self.AddressBalance()\n\n    def generate(self) -> List[Scenario]:\n        \"\"\"\n        Generate Scenarios for call combinations We take code that we want to\n        test at scenario_input.operation_contract and put it in the context of\n        call combinations.\n\n        Example:\n        root_contract -> call -> scenario_contract -> first_call ->\n        sub_contract sub_contact -> second_call -> code\n\n        We assume that code always returns its result.\n        That we pass as return value in scenario_contract for the\n        post state verification.\n\n        \"\"\"\n        scenarios_list: List[Scenario] = []\n\n        for first_call in self.first_call_opcodes:\n            for second_call in self.second_call_opcodes:\n                if second_call == Op.NOOP:\n                    scenarios_list.append(self._generate_one_call_scenario(first_call))\n                else:\n                    scenarios_list.append(\n                        self._generate_two_call_scenario(first_call, second_call)\n                    )\n        return scenarios_list\n\n    def _generate_one_call_scenario(self, first_call: Opcode) -> Scenario:\n        \"\"\"\n        Generate scenario for only one call root_contract -(CALL)->\n        scenario_contract -(first_call)-> operation_contract.\n        \"\"\"\n        scenario_input: ScenarioGeneratorInput = self.scenario_input\n        pre: Alloc = scenario_input.pre\n        balance = self.balance\n        operation_contract = pre.deploy_contract(\n            code=scenario_input.operation_code, balance=balance.program_selfbalance\n        )\n\n        scenario_contract = pre.deploy_contract(\n            code=Op.MSTORE(32, 1122334455)\n            + (\n                first_call(\n                    gas=Op.SUB(Op.GAS, self.keep_gas),\n                    address=operation_contract,\n                    args_offset=32,\n                    args_size=40,\n                    ret_size=32,\n                    value=balance.first_call_value,\n                )\n                if first_call not in [Op.DELEGATECALL, Op.STATICCALL]\n                else first_call(\n                    gas=Op.SUB(Op.GAS, self.keep_gas),\n                    address=operation_contract,\n                    args_offset=32,\n                    args_size=40,\n                    ret_size=32,\n                )\n            )\n            + Op.RETURN(0, 32),\n            balance=balance.scenario_contract_balance,\n        )\n\n        root_contract = pre.deploy_contract(\n            code=Op.CALL(\n                gas=Op.SUB(Op.GAS, self.keep_gas),\n                address=scenario_contract,\n                ret_size=32,\n            )\n            + Op.RETURN(0, 32),\n            balance=balance.root_contract_balance,\n        )\n\n        return Scenario(\n            category=\"call_combinations\",\n            name=f\"scenario_{first_call}\",\n            code=root_contract,\n            env=ScenarioEnvironment(\n                # Define address on which behalf program is executed\n                code_address=(\n                    scenario_contract\n                    if first_call == Op.CALLCODE or first_call == Op.DELEGATECALL\n                    else operation_contract\n                ),\n                # Define code_caller for Op.CALLER\n                code_caller=(\n                    root_contract if first_call == Op.DELEGATECALL else scenario_contract\n                ),\n                # Define balance for Op.BALANCE\n                selfbalance=(\n                    balance.scenario_contract_balance\n                    if first_call in [Op.DELEGATECALL, Op.CALLCODE]\n                    else (\n                        balance.program_selfbalance\n                        if first_call == Op.STATICCALL\n                        else balance.first_call_value + balance.program_selfbalance\n                    )\n                ),\n                call_value=(\n                    0\n                    if first_call in [Op.STATICCALL, Op.DELEGATECALL]\n                    else balance.first_call_value\n                ),\n                call_dataload_0=1122334455,\n                call_datasize=40,\n                has_static=True if first_call == Op.STATICCALL else False,\n            ),\n        )\n\n    def _generate_two_call_scenario(self, first_call: Opcode, second_call: Opcode) -> Scenario:\n        \"\"\"\n        Generate scenario for two types of calls combination root_contract\n        -(CALL)-> scenario_contract -(first_call)-> sub_contract sub_contract\n        -(second_call) -> operation_contract.\n        \"\"\"\n\n        def _compute_code_caller() -> Address:\n            \"\"\"\n            Calculate who is the code caller in program_contract's code in\n            given sequence root -CALL-> scenario_contract -(first_call)\n            -> sub_contract -(second_call)-> program.\n            \"\"\"\n            code_caller: Address = root_contract\n            if first_call == Op.DELEGATECALL:\n                code_caller = scenario_contract\n                if second_call == Op.DELEGATECALL:\n                    code_caller = root_contract\n            else:\n                if second_call == Op.DELEGATECALL:\n                    code_caller = scenario_contract\n                else:\n                    code_caller = sub_contract\n            if first_call == Op.CALLCODE:\n                code_caller = scenario_contract\n            return code_caller\n\n        def _compute_selfbalance() -> int:\n            \"\"\"\n            Calculate the result of Op.SELFBALANCE in program scope in given\n            sequence root -CALL-> scenario_contract -(first_call)->\n            sub_contract -(second_call)-> program.\n            \"\"\"\n            selfbalance: int = 0\n            if second_call in [Op.CALL]:\n                selfbalance = second_call_value + balance.program_selfbalance\n                return selfbalance\n            if second_call in [Op.STATICCALL]:\n                selfbalance = balance.program_selfbalance\n                return selfbalance\n            if first_call == Op.STATICCALL and second_call in [Op.DELEGATECALL, Op.CALLCODE]:\n                selfbalance = balance.sub_contract_balance\n            if first_call in [Op.CALLCODE, Op.DELEGATECALL] and second_call in [\n                Op.DELEGATECALL,\n                Op.CALLCODE,\n            ]:\n                selfbalance = balance.scenario_contract_balance + balance.root_call_value\n            if first_call == Op.CALL and second_call in [Op.DELEGATECALL, Op.CALLCODE]:\n                selfbalance = balance.sub_contract_balance + balance.first_call_value\n            if first_call == Op.STATICCALL and second_call == Op.STATICCALL:\n                selfbalance = balance.program_selfbalance\n            return selfbalance\n\n        def _compute_callvalue() -> int:\n            \"\"\"\n            Calculate the expected callvalue in program scope given sequence:\n            root -CALL-> scenario_contract -(first_call)-> sub_contract\n            -(second_call)-> program.\n            \"\"\"\n            if second_call == Op.STATICCALL:\n                return 0\n            if second_call == Op.DELEGATECALL:\n                if first_call == Op.STATICCALL:\n                    return 0\n                else:\n                    if first_call == Op.DELEGATECALL:\n                        return balance.root_call_value\n                    else:\n                        return balance.first_call_value\n            else:\n                return second_call_value\n\n        scenario_input = self.scenario_input\n        pre: Alloc = scenario_input.pre\n        balance = self.balance\n        second_call_value = balance.second_call_value if first_call != Op.STATICCALL else 0\n\n        operation_contract = pre.deploy_contract(\n            code=scenario_input.operation_code, balance=balance.program_selfbalance\n        )\n        sub_contract = pre.deploy_contract(\n            code=Op.MSTORE(32, 1122334455)\n            + (\n                second_call(\n                    gas=Op.SUB(Op.GAS, self.keep_gas),\n                    address=operation_contract,\n                    args_size=40,\n                    args_offset=32,\n                    ret_size=32,\n                    value=second_call_value,\n                )\n                if second_call not in [Op.DELEGATECALL, Op.STATICCALL]\n                else second_call(\n                    gas=Op.SUB(Op.GAS, self.keep_gas),\n                    address=operation_contract,\n                    args_size=40,\n                    args_offset=32,\n                    ret_size=32,\n                )\n            )\n            + Op.RETURN(0, 32),\n            balance=balance.sub_contract_balance,\n        )\n        scenario_contract = pre.deploy_contract(\n            code=(\n                first_call(\n                    gas=Op.SUB(Op.GAS, self.keep_gas),\n                    address=sub_contract,\n                    ret_size=32,\n                    value=balance.first_call_value,\n                )\n                if first_call not in [Op.DELEGATECALL, Op.STATICCALL]\n                else first_call(\n                    gas=Op.SUB(Op.GAS, self.keep_gas),\n                    address=sub_contract,\n                    ret_size=32,\n                )\n            )\n            + Op.RETURN(0, 32),\n            balance=balance.scenario_contract_balance,\n        )\n\n        root_contract = pre.deploy_contract(\n            balance=balance.root_contract_balance,\n            code=Op.CALL(\n                gas=Op.SUB(Op.GAS, self.keep_gas),\n                address=scenario_contract,\n                ret_size=32,\n                value=balance.root_call_value,\n            )\n            + Op.RETURN(0, 32),\n        )\n\n        return Scenario(\n            category=\"call_combinations\",\n            name=f\"scenario_{first_call}_{second_call}\",\n            code=root_contract,\n            env=ScenarioEnvironment(\n                # Define address on which behalf program is executed\n                code_address=(\n                    operation_contract\n                    if second_call not in [Op.CALLCODE, Op.DELEGATECALL]\n                    else (\n                        sub_contract\n                        if first_call not in [Op.CALLCODE, Op.DELEGATECALL]\n                        else scenario_contract\n                    )\n                ),\n                # Define code_caller for Op.CALLER\n                code_caller=_compute_code_caller(),\n                selfbalance=_compute_selfbalance(),\n                call_value=_compute_callvalue(),\n                call_dataload_0=1122334455,\n                call_datasize=40,\n                has_static=(\n                    True if first_call == Op.STATICCALL or second_call == Op.STATICCALL else False\n                ),\n            ),\n        )\n"
  },
  {
    "path": "tests/frontier/scenarios/scenarios/create_combinations.py",
    "content": "\"\"\"Define Scenario that will put a given program in create contexts.\"\"\"\n\nfrom dataclasses import dataclass\nfrom typing import List\n\nfrom ethereum_test_tools import Alloc, Bytecode\nfrom ethereum_test_types import compute_create_address\nfrom ethereum_test_vm import EVMCodeType, Opcode\nfrom ethereum_test_vm import Macros as Om\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom ..common import Scenario, ScenarioEnvironment, ScenarioGeneratorInput\n\n\n@dataclass\nclass AddressBalance:\n    \"\"\"Definition of values we use to put in contract balances and call.\"\"\"\n\n    root_call_value = 1\n    create_value = 3\n    call_value = 5\n    root_contract_balance = 100\n    scenario_contract_balance = 200\n\n\ndef scenarios_create_combinations(scenario_input: ScenarioGeneratorInput) -> List[Scenario]:\n    \"\"\"Generate Scenarios for create combinations.\"\"\"\n\n    def _compute_selfbalance() -> int:\n        \"\"\"\n        Compute selfbalance opcode for root -> call -> scenario ->\n        create | [call*] -> program.\n        \"\"\"\n        if call in [Op.DELEGATECALL, Op.CALLCODE]:\n            return (\n                balance.scenario_contract_balance + balance.root_call_value - balance.create_value\n            )\n        if call == Op.CALL:\n            return balance.create_value + balance.call_value\n        return balance.create_value\n\n    scenarios_list: List[Scenario] = []\n    keep_gas = 100000\n    create_types: List[Opcode] = [\n        create_code\n        for create_code, evm_type in scenario_input.fork.create_opcodes()\n        if evm_type == EVMCodeType.LEGACY\n    ]\n    env: ScenarioEnvironment\n    balance: AddressBalance = AddressBalance()\n\n    # run code in create constructor\n    for create in create_types:\n        salt = [0] if create == Op.CREATE2 else []\n        operation_contract = scenario_input.pre.deploy_contract(code=scenario_input.operation_code)\n\n        # the code result in init code will be actually code of a deployed\n        # contract\n        scenario_contract = scenario_input.pre.deploy_contract(\n            balance=3,\n            code=Op.EXTCODECOPY(operation_contract, 0, 0, Op.EXTCODESIZE(operation_contract))\n            + Op.MSTORE(0, create(3, 0, Op.EXTCODESIZE(operation_contract), *salt))\n            + Op.EXTCODECOPY(Op.MLOAD(0), 0, 0, 32)\n            + Op.RETURN(0, 32),\n        )\n\n        created_address = compute_create_address(\n            address=scenario_contract,\n            nonce=1,\n            initcode=scenario_input.operation_code,\n            opcode=Op.CREATE if create == Op.CREATE else Op.CREATE2,\n        )\n\n        env = ScenarioEnvironment(\n            # Define address on which behalf program is executed\n            code_address=created_address,\n            code_caller=scenario_contract,\n            selfbalance=3,\n            call_value=3,\n            call_dataload_0=0,\n            call_datasize=0,\n        )\n        scenarios_list.append(\n            Scenario(\n                category=\"create_constructor_combinations\",\n                name=f\"scenario_{create}_constructor\",\n                code=scenario_contract,\n                env=env,\n            )\n        )\n\n    # create a contract with test code and call it\n    deploy_code = Bytecode(\n        Op.EXTCODECOPY(operation_contract, 0, 0, Op.EXTCODESIZE(operation_contract))\n        + Op.RETURN(0, Op.EXTCODESIZE(operation_contract))\n    )\n    deploy_code_size: int = int(len(deploy_code.hex()) / 2)\n    call_types: List[Opcode] = [\n        callcode\n        for callcode, evm_type in scenario_input.fork.call_opcodes()\n        if evm_type == EVMCodeType.LEGACY\n    ]\n\n    pre: Alloc = scenario_input.pre\n    for create in create_types:\n        for call in call_types:\n            salt = [0] if create == Op.CREATE2 else []\n\n            scenario_contract = pre.deploy_contract(\n                balance=balance.scenario_contract_balance,\n                code=Om.MSTORE(deploy_code, 0)\n                + Op.MSTORE(32, create(balance.create_value, 0, deploy_code_size, *salt))\n                + Op.MSTORE(0, 0)\n                + Op.MSTORE(64, 1122334455)\n                + (\n                    call(\n                        gas=Op.SUB(Op.GAS, keep_gas),\n                        address=Op.MLOAD(32),\n                        args_offset=64,\n                        args_size=40,\n                        ret_offset=0,\n                        ret_size=32,\n                        value=balance.call_value,\n                    )\n                    if call not in [Op.DELEGATECALL, Op.STATICCALL]\n                    else call(\n                        gas=Op.SUB(Op.GAS, keep_gas),\n                        address=Op.MLOAD(32),\n                        args_offset=64,\n                        args_size=40,\n                        ret_offset=0,\n                        ret_size=32,\n                    )\n                )\n                + Op.RETURN(0, 32),\n            )\n\n            root_contract = pre.deploy_contract(\n                balance=balance.root_contract_balance,\n                code=Op.CALL(\n                    gas=Op.SUB(Op.GAS, keep_gas),\n                    address=scenario_contract,\n                    ret_size=32,\n                    value=balance.root_call_value,\n                )\n                + Op.RETURN(0, 32),\n            )\n\n            created_address = compute_create_address(\n                address=scenario_contract,\n                nonce=1,\n                initcode=deploy_code,\n                opcode=Op.CREATE if create == Op.CREATE else Op.CREATE2,\n            )\n\n            env = ScenarioEnvironment(\n                # Define address on which behalf program is executed\n                code_address=(\n                    scenario_contract\n                    if call in [Op.CALLCODE, Op.DELEGATECALL]\n                    else created_address\n                ),\n                code_caller=root_contract if call == Op.DELEGATECALL else scenario_contract,\n                selfbalance=_compute_selfbalance(),\n                call_value=(\n                    0\n                    if call in [Op.STATICCALL]\n                    else (\n                        balance.root_call_value\n                        if call in [Op.DELEGATECALL]\n                        else balance.call_value\n                    )\n                ),\n                call_dataload_0=1122334455,\n                call_datasize=40,\n                has_static=True if call == Op.STATICCALL else False,\n            )\n            scenarios_list.append(\n                Scenario(\n                    category=\"create_call_combinations\",\n                    name=f\"scenario_{create}_then_{call}\",\n                    code=root_contract,\n                    env=env,\n                )\n            )\n\n    return scenarios_list\n"
  },
  {
    "path": "tests/frontier/scenarios/scenarios/double_call_combinations.py",
    "content": "\"\"\"Define Scenario that will run a given program and then revert.\"\"\"\n\nfrom typing import List\n\nfrom ethereum_test_tools import Bytecode, Conditional\nfrom ethereum_test_tools import Macros as Om\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom ..common import Scenario, ScenarioEnvironment, ScenarioGeneratorInput\n\n\ndef scenarios_double_call_combinations(scenario_input: ScenarioGeneratorInput) -> List[Scenario]:\n    \"\"\"\n    Generate Scenarios for double call combinations.\n    First call the operation normally.\n    Then do a subcall that will [OOG,REVERT,RETURN].\n    Second call the operation normally.\n    Compare the results of first call with the second operation call.\n    \"\"\"\n    scenarios_list: List[Scenario] = []\n    keep_gas = 300000\n    revert_types: List[Bytecode] = [Op.STOP(), Om.OOG(), Op.RETURN(offset=0, size=32)]\n    if Op.REVERT in scenario_input.fork.valid_opcodes():\n        revert_types.append(Op.REVERT(offset=0, size=32))\n    for revert in revert_types:\n        operation_contract = scenario_input.pre.deploy_contract(code=scenario_input.operation_code)\n        subcall_contract = scenario_input.pre.deploy_contract(\n            code=Op.MSTORE(0, 0x1122334455667788991011121314151617181920212223242526272829303132)\n            + revert\n        )\n        scenario_contract = scenario_input.pre.deploy_contract(\n            code=Op.CALL(gas=Op.SUB(Op.GAS, keep_gas), address=operation_contract, ret_size=32)\n            + Op.MSTORE(100, Op.MLOAD(0))\n            + Op.MSTORE(0, 0)\n            + Op.CALL(gas=50_000, address=subcall_contract)\n            + Op.CALL(gas=Op.SUB(Op.GAS, keep_gas), address=operation_contract, ret_size=32)\n            + Op.MSTORE(200, Op.MLOAD(0))\n            + Conditional(\n                condition=Op.EQ(Op.MLOAD(100), Op.MLOAD(200)),\n                if_true=Op.RETURN(100, 32),\n                if_false=Op.MSTORE(0, 0) + Op.RETURN(0, 32),\n            )\n        )\n        env: ScenarioEnvironment = ScenarioEnvironment(\n            code_address=operation_contract,\n            code_caller=scenario_contract,\n            selfbalance=0,\n            call_value=0,\n            call_dataload_0=0,\n            call_datasize=0,\n        )\n        scenarios_list.append(\n            Scenario(\n                category=\"double_call_combinations\",\n                name=f\"scenario_call_then_{revert}_in_subcall_then_call\",\n                code=scenario_contract,\n                env=env,\n                halts=False,\n            )\n        )\n\n    return scenarios_list\n"
  },
  {
    "path": "tests/frontier/scenarios/scenarios/revert_combinations.py",
    "content": "\"\"\"Define Scenario that will run a given program and then revert.\"\"\"\n\nfrom typing import List\n\nfrom ethereum_test_vm import Macro, Opcode\nfrom ethereum_test_vm import Macros as Om\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom ..common import Scenario, ScenarioEnvironment, ScenarioGeneratorInput\n\n\ndef scenarios_revert_combinations(scenario_input: ScenarioGeneratorInput) -> List[Scenario]:\n    \"\"\"Generate Scenarios for revert combinations.\"\"\"\n    scenarios_list: List[Scenario] = []\n    keep_gas = 100000\n    # TODO stack underflow cause\n    revert_types: List[Opcode | Macro] = [Op.STOP, Om.OOG]\n    if Op.REVERT in scenario_input.fork.valid_opcodes():\n        revert_types.append(Op.REVERT)\n    for revert in revert_types:\n        operation_contract = scenario_input.pre.deploy_contract(code=scenario_input.operation_code)\n        scenario_contract = scenario_input.pre.deploy_contract(\n            code=Op.CALLCODE(gas=Op.SUB(Op.GAS, keep_gas), address=operation_contract, ret_size=32)\n            + revert(0, 32, unchecked=True)\n            + Op.RETURN(0, 32)\n        )\n        env: ScenarioEnvironment = ScenarioEnvironment(\n            code_address=scenario_contract,\n            code_caller=scenario_contract,\n            selfbalance=0,\n            call_value=0,\n            call_dataload_0=0,\n            call_datasize=0,\n        )\n        scenarios_list.append(\n            Scenario(\n                category=\"revert_combinations\",\n                name=f\"scenario_revert_by_{revert}\",\n                code=scenario_contract,\n                env=env,\n                halts=False if revert == Op.REVERT else True,\n            )\n        )\n\n    return scenarios_list\n"
  },
  {
    "path": "tests/frontier/scenarios/test_scenarios.py",
    "content": "\"\"\"\nCall every possible opcode and test that the subcall is successful if the\nopcode is supported by the fork and fails otherwise.\n\"\"\"\n\nfrom typing import List\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    Account,\n    Address,\n    Alloc,\n    Block,\n    BlockchainTestFiller,\n    Environment,\n    Storage,\n    Transaction,\n)\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .common import (\n    ExecutionEnvironment,\n    Scenario,\n    ScenarioDebug,\n    ScenarioGeneratorInput,\n    ScenarioTestProgram,\n)\nfrom .programs.all_frontier_opcodes import ProgramAllFrontierOpcodes\nfrom .programs.context_calls import (\n    ProgramAddress,\n    ProgramBalance,\n    ProgramBasefee,\n    ProgramBlobBaseFee,\n    ProgramBlobhash,\n    ProgramBlockhash,\n    ProgramCallDataCopy,\n    ProgramCallDataLoad,\n    ProgramCallDataSize,\n    ProgramCaller,\n    ProgramCallValue,\n    ProgramChainid,\n    ProgramCodeCopyCodeSize,\n    ProgramCoinbase,\n    ProgramDifficultyRandao,\n    ProgramExtCodeCopyExtCodeSize,\n    ProgramExtCodehash,\n    ProgramGasLimit,\n    ProgramGasPrice,\n    ProgramMcopy,\n    ProgramNumber,\n    ProgramOrigin,\n    ProgramPush0,\n    ProgramReturnDataCopy,\n    ProgramReturnDataSize,\n    ProgramSelfbalance,\n    ProgramTimestamp,\n    ProgramTload,\n)\nfrom .programs.invalid_opcodes import ProgramInvalidOpcode\nfrom .programs.static_violation import (\n    ProgramLogs,\n    ProgramSstoreSload,\n    ProgramSuicide,\n    ProgramTstoreTload,\n)\nfrom .scenarios.call_combinations import ScenariosCallCombinations\nfrom .scenarios.create_combinations import scenarios_create_combinations\nfrom .scenarios.double_call_combinations import scenarios_double_call_combinations\nfrom .scenarios.revert_combinations import scenarios_revert_combinations\n\nREFERENCE_SPEC_GIT_PATH = \"N/A\"\nREFERENCE_SPEC_VERSION = \"N/A\"\n\n\n@pytest.fixture\ndef scenarios(fork: Fork, pre: Alloc, test_program: ScenarioTestProgram) -> List[Scenario]:\n    \"\"\"\n    Define fixture vectors of all possible scenarios, given the current pre\n    state input.\n    \"\"\"\n    scenarios_list: List[Scenario] = []\n\n    scenario_input = ScenarioGeneratorInput(\n        fork=fork,\n        pre=pre,\n        operation_code=test_program.make_test_code(pre, fork),\n    )\n\n    call_combinations = ScenariosCallCombinations(scenario_input).generate()\n    for combination in call_combinations:\n        scenarios_list.append(combination)\n\n    call_combinations = scenarios_create_combinations(scenario_input)\n    for combination in call_combinations:\n        scenarios_list.append(combination)\n\n    revert_combinations = scenarios_revert_combinations(scenario_input)\n    for combination in revert_combinations:\n        scenarios_list.append(combination)\n\n    double_call_combinations = scenarios_double_call_combinations(scenario_input)\n    for combination in double_call_combinations:\n        scenarios_list.append(combination)\n\n    return scenarios_list\n\n\n@pytest.mark.ported_from(\n    [\n        \"https://github.com/ethereum/tests/blob/v13.3/src/Templates/DiffPlaces/templateGen.js\",\n        \"https://github.com/ethereum/tests/blob/v13.3/src/Templates/DiffPlaces/createDiffPlacesTests.sh\",\n        \"https://github.com/ethereum/tests/blob/v13.3/src/Templates/DiffPlaces/createBadOpcodeTest.sh\",\n        \"https://github.com/ethereum/tests/blob/v13.3/src/Templates/DiffPlaces/createAllBadOpcodeTests.sh\",\n        \"https://github.com/ethereum/tests/blob/v13.3/src/GeneralStateTestsFiller/stSelfBalance/diffPlacesFiller.yml\",\n    ],\n    pr=[\"https://github.com/ethereum/execution-spec-tests/pull/808\"],\n    coverage_missed_reason=(\"Original test pre-sets storage of some of the deployed accounts.\"),\n)\n@pytest.mark.valid_from(\"Frontier\")\n@pytest.mark.parametrize(\n    # select program to debug (\"program_id\",\"scenario_name\")\n    # program=\"\"\n    # select all programs scenario_name=\"\"\n    # select all scenarios\n    #\n    # Example:\n    # [ScenarioDebug(program_id=ProgramSstoreSload().id,\n    # scenario_name=\"scenario_CALL_CALL\")]\n    \"debug\",\n    [\n        ScenarioDebug(\n            program_id=\"\",\n            scenario_name=\"\",\n        )\n    ],\n    ids=[\"debug\"],\n)\n@pytest.mark.parametrize(\n    \"test_program\",\n    [\n        ProgramSstoreSload(),\n        ProgramTstoreTload(),\n        ProgramLogs(),\n        ProgramSuicide(),\n        ProgramInvalidOpcode(),\n        ProgramAddress(),\n        ProgramBalance(),\n        ProgramOrigin(),\n        ProgramCaller(),\n        ProgramCallValue(),\n        ProgramCallDataLoad(),\n        ProgramCallDataSize(),\n        ProgramCallDataCopy(),\n        ProgramCodeCopyCodeSize(),\n        ProgramGasPrice(),\n        ProgramExtCodeCopyExtCodeSize(),\n        ProgramReturnDataSize(),\n        ProgramReturnDataCopy(),\n        ProgramExtCodehash(),\n        ProgramBlockhash(),\n        ProgramCoinbase(),\n        ProgramTimestamp(),\n        ProgramNumber(),\n        ProgramDifficultyRandao(),\n        ProgramGasLimit(),\n        ProgramChainid(),\n        ProgramSelfbalance(),\n        ProgramBasefee(),\n        ProgramBlobhash(),\n        ProgramBlobBaseFee(),\n        ProgramTload(),\n        ProgramMcopy(),\n        ProgramPush0(),\n        ProgramAllFrontierOpcodes(),\n    ],\n)\n@pytest.mark.slow()\ndef test_scenarios(\n    blockchain_test: BlockchainTestFiller,\n    fork: Fork,\n    pre: Alloc,\n    debug: ScenarioDebug,\n    test_program: ScenarioTestProgram,\n    scenarios: List[Scenario],\n) -> None:\n    \"\"\"\n    Test given operation in different scenarios Verify that it's return value\n    equal to expected result on every scenario, that is valid for the given\n    fork.\n\n    Note: Don't use pytest parametrize for scenario production, because\n    scenarios will be complex Generate one test file for [each operation] *\n    [each scenario] to save space As well as operations will be complex too\n    \"\"\"\n    tx_env = Environment()\n    tx_origin: Address = pre.fund_eoa()\n\n    tests: int = 0\n    blocks: List[Block] = []\n    post: dict = {}\n    for scenario in scenarios:\n        if debug.scenario_name and scenario.name != debug.scenario_name:\n            continue\n\n        if debug.program_id:\n            if test_program.id != debug.program_id:\n                continue\n        tests = tests + 1\n\n        post_storage = Storage()\n        result_slot = post_storage.store_next(1, hint=f\"runner result {scenario.name}\")\n\n        tx_max_gas = 7_000_000 if test_program.id == ProgramInvalidOpcode().id else 1_000_000\n        if scenario.category == \"double_call_combinations\":\n            tx_max_gas *= 2\n\n        tx_gasprice: int = 10\n        exec_env = ExecutionEnvironment(\n            fork=fork,\n            origin=tx_origin,\n            gasprice=tx_gasprice,\n            timestamp=tx_env.timestamp,  # we can't know timestamp before head,\n            # use gas hash\n            number=len(blocks) + 1,\n            gaslimit=tx_env.gas_limit,\n            coinbase=tx_env.fee_recipient,\n        )\n\n        def make_result(scenario: Scenario, exec_env: ExecutionEnvironment, post: Storage) -> int:\n            \"\"\"Make Scenario post result.\"\"\"\n            if scenario.halts:\n                return post.store_next(0, hint=scenario.name)\n            else:\n                return post.store_next(\n                    test_program.result().translate_result(scenario.env, exec_env),\n                    hint=scenario.name,\n                )\n\n        runner_contract = pre.deploy_contract(\n            code=Op.MSTORE(0, 0)\n            + Op.CALL(tx_max_gas, scenario.code, 0, 0, 0, 0, 32)\n            + Op.SSTORE(make_result(scenario, exec_env, post_storage), Op.MLOAD(0))\n            + Op.SSTORE(result_slot, 1),\n            storage={\n                result_slot: 0xFFFF,\n            },\n        )\n\n        tx = Transaction(\n            sender=tx_origin,\n            gas_limit=tx_max_gas + 100_000,\n            gas_price=tx_gasprice,\n            to=runner_contract,\n            data=bytes.fromhex(\"11223344\"),\n            value=0,\n            protected=False,\n        )\n\n        post[runner_contract] = Account(storage=post_storage)\n        blocks.append(Block(txs=[tx], post=post))\n\n    if tests > 0:\n        blockchain_test(\n            pre=pre,\n            blocks=blocks,\n            post=post,\n        )\n"
  },
  {
    "path": "tests/homestead/__init__.py",
    "content": "\"\"\"Test cases for EVM functionality introduced in Homestead.\"\"\"\n"
  },
  {
    "path": "tests/homestead/coverage/__init__.py",
    "content": "\"\"\"Tests that fill coverage gaps when porting over from `ethereum/tests`.\"\"\"\n"
  },
  {
    "path": "tests/homestead/coverage/test_coverage.py",
    "content": "\"\"\"\nTests that address coverage gaps that result from updating `ethereum/tests`\ninto EEST tests.\n\"\"\"\n\nimport pytest\n\nfrom ethereum_test_forks import Cancun, Fork\nfrom ethereum_test_tools import Alloc, Environment, StateTestFiller, Transaction\nfrom ethereum_test_vm import Opcodes as Op\n\nREFERENCE_SPEC_GIT_PATH = \"N/A\"\nREFERENCE_SPEC_VERSION = \"N/A\"\n\n\n@pytest.mark.valid_from(\"Homestead\")\ndef test_coverage(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    fork: Fork,\n) -> None:\n    \"\"\"\n    Cover gaps that result from transforming Yul code into our Python opcode\n    wrapper bytecode.\n\n    E.g. Yul tends to optimize stack items by using `SWAP1` and `DUP1` opcodes,\n    which are not regularly used in python code.\n\n    Modify this test to cover more Yul code if required in the future.\n    \"\"\"\n    missed_coverage = pre.deploy_contract(\n        balance=0,\n        code=Op.SHL(0x0000000000000000000000000000000000000000000000000000000000000001, 0x00)\n        + Op.SHR(0x0000000000000000000000000000000000000000000000000000000000000001, 0x00)\n        + Op.PUSH1(0x0A)\n        + Op.PUSH1(0x0B)\n        + Op.PUSH1(0x0C)\n        + Op.PUSH1(0x0D)\n        + Op.PUSH1(0x0E)\n        + Op.SWAP1()\n        + Op.DUP1()\n        + Op.DUP2()\n        + Op.PUSH0()\n        + Op.PUSH2(0x0102)\n        + Op.PUSH3(0x010203)\n        + Op.PUSH4(0x01020304)\n        + Op.PUSH32(0x0101010101010101010101010101010101010101010101010101010101010101)\n        + Op.MSTORE8(0x00, 0x01)\n        + Op.ADD(0x02, 0x03)\n        + Op.POP(0x01)\n        # lllc tests insert codecopy when using lll(seq())\n        + Op.CODECOPY(0, 16, 4),\n        storage={},\n    )\n    address_to = pre.deploy_contract(\n        balance=1_000_000_000_000_000_000,\n        code=Op.MSTORE(0, Op.CALL(Op.GAS, missed_coverage, 0, 0, 0, 0, 0)) + Op.RETURN(0, 32),\n    )\n\n    if fork >= Cancun:\n        tx = Transaction(\n            sender=pre.fund_eoa(7_000_000_000_000_000_000),\n            gas_limit=100000,\n            to=address_to,\n            data=b\"\",\n            value=0,\n            protected=False,\n            access_list=[],\n            max_fee_per_gas=10,\n            max_priority_fee_per_gas=5,\n        )\n    else:\n        tx = Transaction(\n            sender=pre.fund_eoa(7_000_000_000_000_000_000),\n            gas_limit=100000,\n            to=address_to,\n            data=b\"\",\n            value=0,\n            protected=False,\n        )\n\n    state_test(env=Environment(), pre=pre, post={}, tx=tx)\n"
  },
  {
    "path": "tests/homestead/identity_precompile/__init__.py",
    "content": "\"\"\"abstract: EIP-2: Homestead Precompile Identity Test Cases.\"\"\"\n"
  },
  {
    "path": "tests/homestead/identity_precompile/test_identity.py",
    "content": "\"\"\"abstract: EIP-2: Homestead Identity Precompile Test Cases.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_tools import (\n    Account,\n    Alloc,\n    Environment,\n    StateTestFiller,\n    Transaction,\n    keccak256,\n)\nfrom ethereum_test_tools import Opcodes as Op\n\n\n@pytest.mark.with_all_call_opcodes()\n@pytest.mark.valid_from(\"Byzantium\")\ndef test_identity_return_overwrite(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    call_opcode: Op,\n) -> None:\n    \"\"\"\n    Test the return data of the identity precompile overwriting its input.\n    \"\"\"\n    code = (\n        sum(Op.MSTORE8(offset=i, value=(i + 1)) for i in range(4))  # memory = [1, 2, 3, 4]\n        + call_opcode(\n            address=4,\n            args_offset=0,\n            args_size=4,  # args = [1, 2, 3, 4]\n            ret_offset=1,\n            ret_size=4,\n        )  # memory = [1, 1, 2, 3, 4]\n        + Op.RETURNDATACOPY(\n            dest_offset=0, offset=0, size=Op.RETURNDATASIZE()\n        )  # memory correct = [1, 2, 3, 4, 4], corrupt = [1, 1, 2, 3, 4]\n        + Op.SSTORE(1, Op.SHA3(offset=0, size=Op.MSIZE))\n    )\n    contract_address = pre.deploy_contract(\n        code=code,\n    )\n    tx = Transaction(\n        sender=pre.fund_eoa(),\n        to=contract_address,\n        gas_limit=100_000,\n    )\n\n    post = {\n        contract_address: Account(\n            storage={\n                1: keccak256(bytes([1, 2, 3, 4, 4]).ljust(32, b\"\\0\")),\n            },\n        ),\n    }\n\n    state_test(pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.with_all_call_opcodes()\n@pytest.mark.valid_from(\"Byzantium\")\ndef test_identity_return_buffer_modify(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    call_opcode: Op,\n) -> None:\n    \"\"\"\n    Test the modification of the input range to attempt to modify the return\n    buffer.\n    \"\"\"\n    env = Environment()\n    code = (\n        sum(Op.MSTORE8(offset=i, value=(i + 1)) for i in range(4))  # memory = [1, 2, 3, 4]\n        + call_opcode(\n            address=4,\n            args_offset=0,\n            args_size=4,  # args = [1, 2, 3, 4]\n        )  # memory = [1, 2, 3, 4]\n        + Op.MSTORE8(offset=0, value=5)  # memory = [5, 2, 3, 4]\n        + Op.MSTORE8(offset=4, value=5)  # memory = [5, 2, 3, 4, 5]\n        + Op.RETURNDATACOPY(\n            dest_offset=0, offset=0, size=Op.RETURNDATASIZE()\n        )  # memory correct = [1, 2, 3, 4, 5], corrupt = [5, 2, 3, 4, 5]\n        + Op.SSTORE(1, Op.SHA3(offset=0, size=Op.MSIZE))\n    )\n    contract_address = pre.deploy_contract(\n        code=code,\n    )\n    tx = Transaction(\n        sender=pre.fund_eoa(),\n        to=contract_address,\n        gas_limit=100_000,\n    )\n\n    post = {\n        contract_address: Account(\n            storage={\n                1: keccak256(bytes([1, 2, 3, 4, 5]).ljust(32, b\"\\0\")),\n            },\n        ),\n    }\n\n    state_test(env=env, pre=pre, post=post, tx=tx)\n"
  },
  {
    "path": "tests/homestead/yul/__init__.py",
    "content": "\"\"\"Tests using Yul source for contracts.\"\"\"\n"
  },
  {
    "path": "tests/istanbul/__init__.py",
    "content": "\"\"\"Test cases for EVM functionality introduced in Istanbul.\"\"\"\n"
  },
  {
    "path": "tests/istanbul/eip1344_chainid/__init__.py",
    "content": "\"\"\"\nTests for [EIP-1344: ChainID Opcode](https://eips.ethereum.org/EIPS/eip-1344).\n\"\"\"\n"
  },
  {
    "path": "tests/istanbul/eip1344_chainid/test_chainid.py",
    "content": "\"\"\"\nTests [EIP-1344: CHAINID opcode](https://eips.ethereum.org/EIPS/eip-1344).\n\"\"\"\n\nimport pytest\n\nfrom ethereum_test_tools import Account, Alloc, ChainConfig, StateTestFiller, Transaction\nfrom ethereum_test_vm import Opcodes as Op\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-1344.md\"\nREFERENCE_SPEC_VERSION = \"02e46aebc80e6e5006ab4d2daa41876139f9a9e2\"\n\n\n@pytest.mark.with_all_typed_transactions(\n    marks=lambda tx_type: pytest.mark.execute(\n        pytest.mark.skip(reason=\"type 3 transactions aren't supported in execute mode\")\n    )\n    if tx_type == 3\n    else None\n)\n@pytest.mark.valid_from(\"Istanbul\")\ndef test_chainid(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    chain_config: ChainConfig,\n    typed_transaction: Transaction,\n) -> None:\n    \"\"\"Test CHAINID opcode.\"\"\"\n    chain_id = chain_config.chain_id\n    contract_address = pre.deploy_contract(Op.SSTORE(1, Op.CHAINID) + Op.STOP)\n\n    tx = typed_transaction.copy(\n        chain_id=chain_id,\n        to=contract_address,\n    )\n\n    post = {\n        contract_address: Account(storage={1: chain_id}),\n    }\n\n    state_test(pre=pre, post=post, tx=tx)\n"
  },
  {
    "path": "tests/istanbul/eip152_blake2/__init__.py",
    "content": "\"\"\"\nTests [EIP-152: BLAKE2 compression precompile](https://eips.ethereum.org/EIPS/eip-152).\n\"\"\"\n"
  },
  {
    "path": "tests/istanbul/eip152_blake2/common.py",
    "content": "\"\"\"Common classes used in the BLAKE2b precompile tests.\"\"\"\n\nfrom dataclasses import dataclass\n\nfrom ethereum_test_base_types import Bytes\nfrom ethereum_test_types.helpers import TestParameterGroup\n\nfrom .spec import Spec, SpecTestVectors\n\n\nclass Blake2bInput(TestParameterGroup):\n    \"\"\"\n    Helper class that defines the BLAKE2b precompile inputs and creates the\n    call data from them. Returns all inputs encoded as bytes.\n\n    Attributes:\n      rounds_length (int): An optional integer representing the bytes\n                           length for the number of rounds.\n                           Defaults to the expected length of 4.\n      rounds (int | str): A hex string or integer value representing the number\n                          of rounds.\n      h (str): A hex string that represents the state vector.\n      m (str): A hex string that represents the message block vector.\n      t_0 (int | str): A hex string or integer value that represents\n                       the first offset counter.\n      t_1(int | str): A hex string or integer value that represents the second\n                      offset counter.\n      f (bool): An optional boolean that represents the final block indicator\n                flag. Defaults to True.\n\n    \"\"\"\n\n    rounds_length: int = Spec.BLAKE2_PRECOMPILE_ROUNDS_LENGTH\n    rounds: int = Spec.BLAKE2B_PRECOMPILE_ROUNDS\n    h: Bytes = SpecTestVectors.BLAKE2_STATE_VECTOR  # type: ignore\n    m: Bytes = SpecTestVectors.BLAKE2_MESSAGE_BLOCK_VECTOR  # type: ignore\n    t_0: int | Bytes = SpecTestVectors.BLAKE2_OFFSET_COUNTER_0\n    t_1: int | Bytes = SpecTestVectors.BLAKE2_OFFSET_COUNTER_1\n    f: bool | int = True\n\n    def create_blake2b_tx_data(self) -> bytes:\n        \"\"\"Generate input for the BLAKE2b precompile.\"\"\"\n        _rounds = self.rounds.to_bytes(length=self.rounds_length, byteorder=\"big\")\n        _t_0 = (\n            self.t_0\n            if isinstance(self.t_0, bytes)\n            else self.t_0.to_bytes(length=Spec.BLAKE2_PRECOMPILE_T_0_LENGTH, byteorder=\"little\")\n        )\n        _t_1 = (\n            self.t_1\n            if isinstance(self.t_1, bytes)\n            else self.t_1.to_bytes(length=Spec.BLAKE2_PRECOMPILE_T_1_LENGTH, byteorder=\"little\")\n        )\n        _f = int(self.f).to_bytes(length=Spec.BLAKE2_PRECOMPILE_F_LENGTH, byteorder=\"big\")\n\n        return _rounds + self.h + self.m + _t_0 + _t_1 + _f\n\n\n@dataclass(kw_only=True, frozen=True, repr=False)\nclass ExpectedOutput(TestParameterGroup):\n    \"\"\"\n    Expected test result.\n\n    Attributes:\n      call_succeeds (str | bool): A hex string or boolean to indicate\n                                  whether the call was successful or not.\n      data_1 (str): String value of the first updated state vector.\n      data_2 (str): String value of the second updated state vector.\n\n    \"\"\"\n\n    call_succeeds: str | bool\n    data_1: str\n    data_2: str\n"
  },
  {
    "path": "tests/istanbul/eip152_blake2/conftest.py",
    "content": "\"\"\"pytest fixtures for testing the BLAKE2b precompile.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_vm import Bytecode\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .spec import Spec\n\n\n@pytest.fixture\ndef blake2b_contract_bytecode(call_opcode: Op) -> Bytecode:\n    \"\"\"\n    Contract code that performs the provided opcode (CALL or CALLCODE) to the\n    BLAKE2b precompile and stores the result.\n    \"\"\"\n    return (\n        Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE())\n        + Op.SSTORE(\n            0,\n            call_opcode(\n                address=Spec.BLAKE2_PRECOMPILE_ADDRESS,\n                args_offset=0,\n                args_size=Op.CALLDATASIZE(),\n                ret_offset=0x200,\n                ret_size=0x40,\n            ),\n        )\n        + Op.SSTORE(1, Op.MLOAD(0x200))\n        + Op.SSTORE(2, Op.MLOAD(0x220))\n        + Op.STOP()\n    )\n"
  },
  {
    "path": "tests/istanbul/eip152_blake2/spec.py",
    "content": "\"\"\"Defines EIP-152 specification constants and functions.\"\"\"\n\nfrom dataclasses import dataclass\n\n\n@dataclass(frozen=True)\nclass ReferenceSpec:\n    \"\"\"Defines the reference spec version and git path.\"\"\"\n\n    git_path: str\n    version: str\n\n\nref_spec_152 = ReferenceSpec(\"EIPS/eip-152.md\", \"2762bfcff3e549ef263342e5239ef03ac2b07400\")\n\n\n# Constants\n@dataclass(frozen=True)\nclass Spec:\n    \"\"\"\n    Parameters from the EIP-152 specifications as defined at\n    https://eips.ethereum.org/EIPS/eip-152#specification.\n\n    If the parameter is not currently used within the tests, it is commented\n    out.\n    \"\"\"\n\n    BLAKE2_PRECOMPILE_ADDRESS = 0x09\n\n    # The following constants are used to define the bytes length of the\n    # parameters passed to the BLAKE2 precompile.\n    BLAKE2_PRECOMPILE_ROUNDS_LENGTH = 4\n    # BLAKE2_PRECOMPILE_M_LENGTH = 128\n    BLAKE2_PRECOMPILE_T_0_LENGTH = 8\n    BLAKE2_PRECOMPILE_T_1_LENGTH = 8\n    BLAKE2_PRECOMPILE_F_LENGTH = 1\n\n    # Constants for BLAKE2b and BLAKE2s spec defined at\n    # https://datatracker.ietf.org/doc/html/rfc7693#section-3.2\n    BLAKE2B_PRECOMPILE_ROUNDS = 12\n    BLAKE2B_PRECOMPILE_H_LENGTH = 64\n\n    # BLAKE2S_PRECOMPILE_ROUNDS = 10\n    # BLAKE2S_PRECOMPILE_H_LENGTH = 32\n\n\nclass SpecTestVectors:\n    \"\"\"Defines common test parameters for the BLAKE2b precompile.\"\"\"\n\n    # The following constants are used to define common test parameters\n    # Origin of vectors defined at\n    # https://datatracker.ietf.org/doc/html/rfc7693.html#appendix-A\n    BLAKE2_STATE_VECTOR = (\n        \"48c9bdf267e6096a3ba7ca8485ae67bb2bf894fe72f36e3cf1\"\n        \"361d5f3af54fa5d182e6ad7f520e511f6c3e2b8c68059b6bbd41fbabd9831f\"\n        \"79217e1319cde05b\"\n    )\n    BLAKE2_MESSAGE_BLOCK_VECTOR = (\n        \"616263000000000000000000000000000000000\"\n        \"00000000000000000000000000000000000000000000000000000000000000000\"\n        \"00000000000000000000000000000000000000000000000000000000000000000\"\n        \"00000000000000000000000000000000000000000000000000000000000000000\"\n        \"0000000000000000000000\"\n    )\n    BLAKE2_OFFSET_COUNTER_0 = 3\n    BLAKE2_OFFSET_COUNTER_1 = 0\n"
  },
  {
    "path": "tests/istanbul/eip152_blake2/test_blake2.py",
    "content": "\"\"\"\nTests [EIP-152: BLAKE2b compression precompile](https://eips.ethereum.org/EIPS/eip-152).\n\"\"\"\n\nfrom typing import List\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    Account,\n    Alloc,\n    Bytecode,\n    Environment,\n    StateTestFiller,\n    Transaction,\n)\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .common import Blake2bInput, ExpectedOutput\nfrom .spec import SpecTestVectors, ref_spec_152\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_152.git_path\nREFERENCE_SPEC_VERSION = ref_spec_152.version\n\npytestmark = pytest.mark.ported_from(\n    [\n        \"https://github.com/ethereum/tests/blob/v13.3/src/GeneralStateTestsFiller/stPreCompiledContracts/blake2BFiller.yml\",\n        \"https://github.com/ethereum/tests/blob/v13.3/src/GeneralStateTestsFiller/stPreCompiledContracts2/CALLBlake2fFiller.json\",\n        \"https://github.com/ethereum/tests/blob/v13.3/src/GeneralStateTestsFiller/stPreCompiledContracts2/CALLCODEBlake2fFiller.json\",\n        \"https://github.com/ethereum/tests/blob/v13.3/src/GeneralStateTestsFiller/stPreCompiledContracts/delegatecall09UndefinedFiller.yml\",\n    ],\n    pr=[\n        \"https://github.com/ethereum/execution-spec-tests/pull/1244\",\n        \"https://github.com/ethereum/execution-spec-tests/pull/1067\",\n    ],\n    coverage_missed_reason=(\n        \"No longer used opcodes, SUB, GT, ISZERO, AND, CODESIZE, JUMP, some PUSH opcodes.\"\n        \"Original test calls Blake2b in ConstantinopleFix (activation test), \"\n        \"which results in empty account code being triggered.\"\n    ),\n)\n\n\n@pytest.mark.valid_from(\"Istanbul\")\n@pytest.mark.parametrize(\"call_opcode\", [Op.CALL])\n@pytest.mark.parametrize(\n    [\"data\", \"output\"],\n    [\n        pytest.param(\n            Blake2bInput(\n                rounds=0,\n                rounds_length=0,\n                h=\"\",\n                m=\"\",\n                t_0=\"\",\n                t_1=\"\",\n            ),\n            ExpectedOutput(\n                call_succeeds=False,\n                data_1=\"0x00\",\n                data_2=\"0x00\",\n            ),\n            id=\"empty-input\",\n        ),\n        pytest.param(\n            Blake2bInput(\n                rounds_length=3,\n            ),\n            ExpectedOutput(\n                call_succeeds=False,\n                data_1=\"0x00\",\n                data_2=\"0x00\",\n            ),\n            id=\"invalid-rounds-length-short\",\n        ),\n        pytest.param(\n            Blake2bInput(\n                rounds_length=5,\n            ),\n            ExpectedOutput(\n                call_succeeds=False,\n                data_1=\"0x00\",\n                data_2=\"0x00\",\n            ),\n            id=\"invalid-rounds-length-long\",\n        ),\n        pytest.param(\n            Blake2bInput(\n                f=2,\n            ),\n            ExpectedOutput(\n                call_succeeds=False,\n                data_1=\"0x00\",\n                data_2=\"0x00\",\n            ),\n            id=\"invalid-final-block-flag-value-0x02\",\n        ),\n        pytest.param(\n            Blake2bInput(\n                rounds=0,\n            ),\n            ExpectedOutput(\n                call_succeeds=True,\n                data_1=\"0x08c9bcf367e6096a3ba7ca8485ae67bb2bf894fe72f36e3cf1361d5f3af54fa5\",\n                data_2=\"0xd282e6ad7f520e511f6c3e2b8c68059b9442be0454267ce079217e1319cde05b\",\n            ),\n            id=\"valid-rounds-0\",\n        ),\n        pytest.param(\n            Blake2bInput(),\n            ExpectedOutput(\n                call_succeeds=True,\n                data_1=\"0xba80a53f981c4d0d6a2797b69f12f6e94c212f14685ac4b74b12bb6fdbffa2d1\",\n                data_2=\"0x7d87c5392aab792dc252d5de4533cc9518d38aa8dbf1925ab92386edd4009923\",\n            ),\n            id=\"valid-rounds-12\",\n        ),\n        pytest.param(\n            Blake2bInput(\n                f=False,\n            ),\n            ExpectedOutput(\n                call_succeeds=True,\n                data_1=\"0x75ab69d3190a562c51aef8d88f1c2775876944407270c42c9844252c26d28752\",\n                data_2=\"0x98743e7f6d5ea2f2d3e8d226039cd31b4e426ac4f2d3d666a610c2116fde4735\",\n            ),\n            id=\"valid-false-final-block-flag\",\n        ),\n        pytest.param(\n            Blake2bInput(\n                rounds=1,\n            ),\n            ExpectedOutput(\n                call_succeeds=True,\n                data_1=\"0xb63a380cb2897d521994a85234ee2c181b5f844d2c624c002677e9703449d2fb\",\n                data_2=\"0xa551b3a8333bcdf5f2f7e08993d53923de3d64fcc68c034e717b9293fed7a421\",\n            ),\n            id=\"valid-rounds-1\",\n        ),\n        # Excessive number of rounds expects to run out of gas\n        pytest.param(\n            Blake2bInput(\n                rounds=4294967295,\n            ),\n            ExpectedOutput(\n                call_succeeds=False,\n                data_1=\"0x0\",\n                data_2=\"0x0\",\n            ),\n            id=\"oog-rounds-4294967295\",\n        ),\n        # Case from https://github.com/ethereum/tests/pull/948#issuecomment-925964632\n        pytest.param(\n            Blake2bInput(\n                m=\"6162636465000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n                t_0=5,\n            ),\n            ExpectedOutput(\n                call_succeeds=True,\n                data_1=\"0xf3e89a60ec4b0b1854744984e421d22b82f181bd4601fb9b1726b2662da61c29\",\n                data_2=\"0xdff09e75814acb2639fd79e56616e55fc135f8476f0302b3dc8d44e082eb83a8\",\n            ),\n            id=\"valid-different-message-offset-0x05\",\n        ),\n        pytest.param(\n            Blake2bInput(\n                rounds=16,\n            ),\n            ExpectedOutput(\n                call_succeeds=True,\n                data_1=\"0xa8ef8236e5f48a74af375df15681d128457891c1cc4706f30747b2d40300b2f4\",\n                data_2=\"0x9d19f80fbd0945fd87736e1fc1ff10a80fd85a7aa5125154f3aaa3789ddff673\",\n            ),\n            id=\"valid-rounds-16\",\n        ),\n        pytest.param(\n            Blake2bInput(\n                rounds=32,\n            ),\n            ExpectedOutput(\n                call_succeeds=True,\n                data_1=\"0xbc5e888ed71b546da7b1506179bdd6c184a6410c40de33f9c330207417797889\",\n                data_2=\"0x5dbe74144468aefe5c2afce693c62dbca99e5e076dd467fe90a41278b16d691e\",\n            ),\n            id=\"valid-rounds-32\",\n        ),\n        pytest.param(\n            Blake2bInput(\n                rounds=64,\n            ),\n            ExpectedOutput(\n                call_succeeds=True,\n                data_1=\"0x74097ae7b16ffd18c742aee5c55dc89d54b6f1a8a19e6139ccfb38afba56b6b0\",\n                data_2=\"0x2cc35c441c19c21194fefb6841e72202f7c9d05eb9c3cfd8f94c67aa77d473c1\",\n            ),\n            id=\"valid-rounds-64\",\n        ),\n        pytest.param(\n            Blake2bInput(\n                rounds=128,\n            ),\n            ExpectedOutput(\n                call_succeeds=True,\n                data_1=\"0xd82c6a670dc90af9d7f77644eacbeddfed91b760c65c927871784abceaab3f81\",\n                data_2=\"0x3759733a1736254fb1cfc515dbfee467930955af56e27ee435f836fc3e65969f\",\n            ),\n            id=\"valid-rounds-128\",\n        ),\n        pytest.param(\n            Blake2bInput(\n                rounds=256,\n            ),\n            ExpectedOutput(\n                call_succeeds=True,\n                data_1=\"0x5d6ff04d5ebaee5687d634613ab21e9a7d36f782033c74f91d562669aaf9d592\",\n                data_2=\"0xc86346cb2df390243a952834306b389e656876a67934e2c023bce4918a016d4e\",\n            ),\n            id=\"valid-rounds-256\",\n        ),\n        pytest.param(\n            Blake2bInput(\n                rounds=512,\n            ),\n            ExpectedOutput(\n                call_succeeds=True,\n                data_1=\"0xa2c1eb780a6e1249156fe0751e5d4687ea9357b0651c78df660ab004cb477363\",\n                data_2=\"0x6298bbbc683e4a0261574b6d857a6a99e06b2eea50b16f86343d2625ff222b98\",\n            ),\n            id=\"valid-rounds-512\",\n        ),\n        pytest.param(\n            Blake2bInput(\n                rounds=1024,\n            ),\n            ExpectedOutput(\n                call_succeeds=True,\n                data_1=\"0x689419d2bf32b5a9901a2c733b9946727026a60d8773117eabb35f04a52cdcf1\",\n                data_2=\"0xb8fb4473454cf03d46c36a10b3f784aae4dc80a24424960e66a8ad5a8c2bfb30\",\n            ),\n            id=\"valid-rounds-1024\",\n        ),\n        pytest.param(\n            Blake2bInput(\n                rounds=16,\n                m=\"6162636465666768696a6b6c6d6e6f7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n                t_0=16,\n            ),\n            ExpectedOutput(\n                call_succeeds=True,\n                data_1=\"0x4ab6df9d1f57140bbd27b5e164f42102d9e2b0bf4d53da501273f81a37e505c7\",\n                data_2=\"0xf6e136f9ca4b693aa6e990b04c6412296dc09540c23c395f183011a0c5d7392e\",\n            ),\n            id=\"valid-rounds-16-offset-0x10\",\n        ),\n        pytest.param(\n            Blake2bInput(\n                rounds=32,\n                m=\"6162636465666768696a6b6c6d6e6f7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n                t_0=16,\n            ),\n            ExpectedOutput(\n                call_succeeds=True,\n                data_1=\"0x7af9b4f9c25ba3e3fd4fcb957e703b7b2e648990fe8e24c6ca2a2dfac4ce76e6\",\n                data_2=\"0x18acffc26913d6759843362adeb4c95299777baaa977b5d94dd219d1777e4cb\",\n            ),\n            id=\"valid-rounds-32-offset-0x10\",\n        ),\n        pytest.param(\n            Blake2bInput(\n                rounds=64,\n                m=\"6162636465666768696a6b6c6d6e6f7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n                t_0=16,\n            ),\n            ExpectedOutput(\n                call_succeeds=True,\n                data_1=\"0x97eb79f7abc085a3da64d6e8643d196cbf522a51985ba2cc6a7ca14289b59df0\",\n                data_2=\"0x73366eb68e41966eb8b33ab5bd6078d0de2fa4edc986b1d2afc4c92f2fc30cda\",\n            ),\n            id=\"valid-rounds-64-offset-0x10\",\n        ),\n        pytest.param(\n            Blake2bInput(\n                rounds=128,\n                m=\"6162636465666768696a6b6c6d6e6f7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n                t_0=16,\n            ),\n            ExpectedOutput(\n                call_succeeds=True,\n                data_1=\"0x5ef3d6ee148936390a9053e91ab5a92f4de4dfc62ebb95d71485be26d9b78c8d\",\n                data_2=\"0x8989dfe319f2fb5f11784174db63a7bcfc50de04e13fad57bea159e46e8811df\",\n            ),\n            id=\"valid-rounds-128-offset-0x10\",\n        ),\n        pytest.param(\n            Blake2bInput(\n                rounds=256,\n                m=\"6162636465666768696a6b6c6d6e6f7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n                t_0=16,\n            ),\n            ExpectedOutput(\n                call_succeeds=True,\n                data_1=\"0xa36be13275fec9a91779f0c9b06b1b40d8c8a13ab0786d0764c2eb708cc8eb81\",\n                data_2=\"0xf1acb2a3c7abd2ff5a9fdfe88b81f6f56288dc5260a9c810f023ae83b9b64a1a\",\n            ),\n            id=\"valid-rounds-256-offset-0x10\",\n        ),\n        pytest.param(\n            Blake2bInput(\n                rounds=512,\n                m=\"6162636465666768696a6b6c6d6e6f7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n                t_0=16,\n            ),\n            ExpectedOutput(\n                call_succeeds=True,\n                data_1=\"0xc987e560e3f90833c0d10ae1282bd9d35a7ba06d8abaa13a994d0962ed2bbaa9\",\n                data_2=\"0xf69c1e1e7c9aedb75e72d1b46e9f1b2ad8f8c2f7f858a04ed8aec16f964a96da\",\n            ),\n            id=\"valid-rounds-512-offset-0x10\",\n        ),\n        pytest.param(\n            Blake2bInput(\n                rounds=1024,\n                m=\"6162636465666768696a6b6c6d6e6f7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n                t_0=16,\n            ),\n            ExpectedOutput(\n                call_succeeds=True,\n                data_1=\"0x224138a6afa847230ff09c23e2ca66522e22d26884b09d7740e2dd127cb61057\",\n                data_2=\"0x90cecbd4de6a52a733ca4a59583c064ad6ec7653d5d457b681de332f16f3d45\",\n            ),\n            id=\"valid-rounds-1024-offset-0x10\",\n        ),\n        pytest.param(\n            Blake2bInput(\n                rounds=16,\n                m=\"6162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d900000000000000\",\n                t_0=120,\n            ),\n            ExpectedOutput(\n                call_succeeds=True,\n                data_1=\"0xabcd200f2962ede252fc455ea70d12b236ad2f4046b91e17558a7741d9da39a2\",\n                data_2=\"0x548083b610bb8591ca50418eabd15b6489a936b178a435b4c182ffa475eba4d8\",\n            ),\n            id=\"valid-rounds-16-offset-0x78\",\n        ),\n        pytest.param(\n            Blake2bInput(\n                rounds=32,\n                m=\"6162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d900000000000000\",\n                t_0=120,\n            ),\n            ExpectedOutput(\n                call_succeeds=True,\n                data_1=\"0x39fc2077154fba422b3d628d10908c596beebea8dfd90f14566aec4f60bdb2bc\",\n                data_2=\"0xa75d73ab2b224d58c3568cbc7fc8905cc849f10745f00addef02384032d53729\",\n            ),\n            id=\"valid-rounds-32-offset-0x78\",\n        ),\n        pytest.param(\n            Blake2bInput(\n                rounds=64,\n                m=\"6162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d900000000000000\",\n                t_0=120,\n            ),\n            ExpectedOutput(\n                call_succeeds=True,\n                data_1=\"0x5bb981381beb687d5fdbe5e7c096fbd1ce193b780948c1d74ebbb7c58db364c7\",\n                data_2=\"0xb7695d32f918444dbdcbdcff476fc70a926e228c4cbb7d05473711d3b56e5b33\",\n            ),\n            id=\"valid-rounds-64-offset-0x78\",\n        ),\n        pytest.param(\n            Blake2bInput(\n                rounds=0,\n                rounds_length=0,\n                h=\"00\",\n                m=\"00\",\n                t_0=0,\n                t_1=SpecTestVectors.BLAKE2_OFFSET_COUNTER_1,\n                f=0,\n            ),\n            ExpectedOutput(\n                call_succeeds=False,\n                data_1=\"0x00\",\n                data_2=\"0x00\",\n            ),\n            id=\"EIP-152-RFC-7693-zero-input\",\n        ),\n    ],\n)\n@pytest.mark.slow()\ndef test_blake2b(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    call_opcode: Op,\n    blake2b_contract_bytecode: Bytecode,\n    data: Blake2bInput | str | bytes,\n    output: ExpectedOutput,\n) -> None:\n    \"\"\"Test BLAKE2b precompile.\"\"\"\n    env = Environment()\n\n    account = pre.deploy_contract(blake2b_contract_bytecode, storage={0: 0xDEADBEEF})\n    sender = pre.fund_eoa()\n\n    if isinstance(data, Blake2bInput):\n        data = data.create_blake2b_tx_data()\n    elif isinstance(data, str):\n        data = bytes.fromhex(data)\n\n    if isinstance(data, Blake2bInput):\n        data = data.create_blake2b_tx_data()\n    elif isinstance(data, str):\n        data = bytes.fromhex(data)\n\n    tx = Transaction(\n        ty=0x0,\n        to=account,\n        data=data,\n        gas_limit=1_000_000,\n        protected=True,\n        sender=sender,\n        value=100000,\n    )\n\n    post = {\n        account: Account(\n            storage={\n                0: 0x1 if output.call_succeeds else 0x0,\n                1: output.data_1,\n                2: output.data_2,\n            }\n        )\n    }\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.valid_from(\"Istanbul\")\n@pytest.mark.parametrize(\"call_opcode\", [Op.CALL, Op.CALLCODE])\n@pytest.mark.parametrize(\"gas_limit\", [90_000, 110_000, 200_000])\n@pytest.mark.parametrize(\n    [\"data\", \"output\"],\n    [\n        pytest.param(\n            b\"\",\n            ExpectedOutput(\n                call_succeeds=False,\n                data_1=\"0x00\",\n                data_2=\"0x00\",\n            ),\n            id=\"EIP-152-case1-data0-invalid-low-gas\",\n        ),\n        pytest.param(\n            Blake2bInput(\n                rounds_length=3,\n            ),\n            ExpectedOutput(\n                call_succeeds=False,\n                data_1=\"0x00\",\n                data_2=\"0x00\",\n            ),\n            id=\"EIP-152-case1-data1-invalid-low-gas\",\n        ),\n        pytest.param(\n            Blake2bInput(\n                rounds_length=5,\n            ),\n            ExpectedOutput(\n                call_succeeds=False,\n                data_1=\"0x00\",\n                data_2=\"0x00\",\n            ),\n            id=\"EIP-152-case1-data2-invalid-low-gas\",\n        ),\n        pytest.param(\n            Blake2bInput(\n                f=2,\n            ),\n            ExpectedOutput(\n                call_succeeds=False,\n                data_1=\"0x00\",\n                data_2=\"0x00\",\n            ),\n            id=\"EIP-152-case1-data3-invalid-low-gas\",\n        ),\n        pytest.param(\n            Blake2bInput(\n                rounds=8000000,\n            ),\n            ExpectedOutput(\n                call_succeeds=False,\n                data_1=\"0x00\",\n                data_2=\"0x00\",\n            ),\n            id=\"EIP-152-case1-data9-invalid-low-gas\",\n        ),\n        pytest.param(\n            \"000c\",\n            ExpectedOutput(\n                call_succeeds=False,\n                data_1=\"0x00\",\n                data_2=\"0x00\",\n            ),\n            id=\"EIP-152-case1-data10-invalid-low-gas\",\n        ),\n    ],\n)\ndef test_blake2b_invalid_gas(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    call_opcode: Op,\n    blake2b_contract_bytecode: Bytecode,\n    gas_limit: int,\n    data: Blake2bInput | str | bytes,\n    output: ExpectedOutput,\n) -> None:\n    \"\"\"Test BLAKE2b precompile invalid calls using different gas limits.\"\"\"\n    env = Environment()\n\n    account = pre.deploy_contract(blake2b_contract_bytecode, storage={0: 0xDEADBEEF})\n    sender = pre.fund_eoa()\n\n    if isinstance(data, Blake2bInput):\n        data = data.create_blake2b_tx_data()\n    elif isinstance(data, str):\n        data = bytes.fromhex(data)\n\n    tx = Transaction(\n        ty=0x0,\n        to=account,\n        data=data,\n        gas_limit=gas_limit,\n        protected=True,\n        sender=sender,\n        value=0,\n    )\n\n    post = {\n        account: Account(\n            storage={\n                0: 0xDEADBEEF,\n                1: output.data_1,\n                2: output.data_2,\n            },\n            nonce=0x1,\n        )\n    }\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\ndef max_tx_gas_limit(fork: Fork) -> int:\n    \"\"\"Maximum gas limit for a transaction (fork agnostic).\"\"\"\n    tx_limit = fork.transaction_gas_limit_cap()\n    if tx_limit is not None:\n        return tx_limit\n    return Environment().gas_limit\n\n\ndef tx_gas_limits(fork: Fork) -> List[int]:\n    \"\"\"List of tx gas limits.\"\"\"\n    return [max_tx_gas_limit(fork), 90_000, 110_000, 200_000]\n\n\n@pytest.mark.valid_from(\"Istanbul\")\n@pytest.mark.parametrize(\"call_opcode\", [Op.CALL, Op.CALLCODE])\n@pytest.mark.parametrize_by_fork(\"gas_limit\", tx_gas_limits)\n@pytest.mark.parametrize(\n    [\"data\", \"output\"],\n    [\n        pytest.param(\n            Blake2bInput(\n                rounds=0,\n            ),\n            ExpectedOutput(\n                call_succeeds=True,\n                data_1=\"0x08c9bcf367e6096a3ba7ca8485ae67bb2bf894fe72f36e3cf1361d5f3af54fa5\",\n                data_2=\"0xd282e6ad7f520e511f6c3e2b8c68059b9442be0454267ce079217e1319cde05b\",\n            ),\n            id=\"EIP-152-case3-data4-gas-limit\",\n        ),\n        pytest.param(\n            Blake2bInput(),\n            ExpectedOutput(\n                call_succeeds=True,\n                data_1=\"0xba80a53f981c4d0d6a2797b69f12f6e94c212f14685ac4b74b12bb6fdbffa2d1\",\n                data_2=\"0x7d87c5392aab792dc252d5de4533cc9518d38aa8dbf1925ab92386edd4009923\",\n            ),\n            id=\"EIP-152-case4-data5-gas-limit\",\n        ),\n        pytest.param(\n            Blake2bInput(\n                f=False,\n            ),\n            ExpectedOutput(\n                call_succeeds=True,\n                data_1=\"0x75ab69d3190a562c51aef8d88f1c2775876944407270c42c9844252c26d28752\",\n                data_2=\"0x98743e7f6d5ea2f2d3e8d226039cd31b4e426ac4f2d3d666a610c2116fde4735\",\n            ),\n            id=\"EIP-152-case5-data6-gas-limit\",\n        ),\n        pytest.param(\n            Blake2bInput(\n                rounds=1,\n            ),\n            ExpectedOutput(\n                call_succeeds=True,\n                data_1=\"0xb63a380cb2897d521994a85234ee2c181b5f844d2c624c002677e9703449d2fb\",\n                data_2=\"0xa551b3a8333bcdf5f2f7e08993d53923de3d64fcc68c034e717b9293fed7a421\",\n            ),\n            id=\"EIP-152-case6-data7-gas-limit\",\n        ),\n        pytest.param(\n            Blake2bInput(\n                rounds=0,\n                h=\"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n                m=\"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n                t_0=0,\n                t_1=SpecTestVectors.BLAKE2_OFFSET_COUNTER_1,\n                f=0,\n            ),\n            ExpectedOutput(\n                call_succeeds=True,\n                data_1=\"0x08c9bcf367e6096a3ba7ca8485ae67bb2bf894fe72f36e3cf1361d5f3af54fa5\",\n                data_2=\"0xd182e6ad7f520e511f6c3e2b8c68059b6bbd41fbabd9831f79217e1319cde05b\",\n            ),\n            id=\"EIP-152-case7-data8-gas-limit\",\n        ),\n    ],\n)\ndef test_blake2b_gas_limit(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    call_opcode: Op,\n    blake2b_contract_bytecode: Bytecode,\n    gas_limit: int,\n    data: Blake2bInput | str | bytes,\n    output: ExpectedOutput,\n) -> None:\n    \"\"\"Test BLAKE2b precompile with different gas limits.\"\"\"\n    account = pre.deploy_contract(blake2b_contract_bytecode, storage={0: 0xDEADBEEF})\n    sender = pre.fund_eoa()\n\n    if isinstance(data, Blake2bInput):\n        data = data.create_blake2b_tx_data()\n    elif isinstance(data, str):\n        data = bytes.fromhex(data)\n\n    tx = Transaction(\n        ty=0x0,\n        to=account,\n        data=data,\n        gas_limit=gas_limit,\n        protected=True,\n        sender=sender,\n        value=0,\n    )\n\n    post = {\n        account: Account(\n            storage={\n                0: 0x1 if output.call_succeeds else 0x0,\n                1: output.data_1,\n                2: output.data_2,\n            }\n        )\n    }\n    state_test(\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\n@pytest.mark.valid_from(\"Istanbul\")\n@pytest.mark.parametrize(\"call_opcode\", [Op.CALL, Op.CALLCODE])\n@pytest.mark.parametrize_by_fork(\"gas_limit\", lambda fork: [max_tx_gas_limit(fork)])\n@pytest.mark.parametrize(\n    [\"data\", \"output\"],\n    [\n        pytest.param(\n            b\"\",\n            ExpectedOutput(\n                call_succeeds=False,\n                data_1=\"0x00\",\n                data_2=\"0x00\",\n            ),\n            id=\"EIP-152-case0-data0-large-gas-limit\",\n        ),\n        pytest.param(\n            Blake2bInput(\n                rounds_length=3,\n            ),\n            ExpectedOutput(\n                call_succeeds=False,\n                data_1=\"0x00\",\n                data_2=\"0x00\",\n            ),\n            id=\"EIP-152-case2-data1-large-gas-limit\",\n        ),\n        pytest.param(\n            Blake2bInput(\n                rounds_length=5,\n            ),\n            ExpectedOutput(\n                call_succeeds=False,\n                data_1=\"0x00\",\n                data_2=\"0x00\",\n            ),\n            id=\"EIP-152-case2-data2-large-gas-limit\",\n        ),\n        pytest.param(\n            Blake2bInput(\n                f=2,\n            ),\n            ExpectedOutput(\n                call_succeeds=False,\n                data_1=\"0x00\",\n                data_2=\"0x00\",\n            ),\n            id=\"EIP-152-case2-data3-large-gas-limit\",\n        ),\n        pytest.param(\n            Blake2bInput(\n                rounds=100_000,\n            ),\n            ExpectedOutput(\n                call_succeeds=True,\n                data_1=\"0x165da71a32e91bca2623bfaeab079f7e6edfba2259028cc854ec497f9fb0fe75\",\n                data_2=\"0xd37f63034b83f4a0a07cd238483874862921ef0c40630826a76e41bf3b02ffe3\",\n            ),\n            id=\"EIP-152-modified-case8-data9-large-gas-limit\",\n        ),\n        pytest.param(\n            Blake2bInput(\n                rounds=8000000,\n            ),\n            ExpectedOutput(\n                call_succeeds=True,\n                data_1=\"0x6d2ce9e534d50e18ff866ae92d70cceba79bbcd14c63819fe48752c8aca87a4b\",\n                data_2=\"0xb7dcc230d22a4047f0486cfcfb50a17b24b2899eb8fca370f22240adb5170189\",\n            ),\n            id=\"EIP-152-case8-data9-large-gas-limit\",\n            marks=pytest.mark.skip(\"Times-out during fill\"),\n        ),\n        pytest.param(\n            \"000c\",\n            ExpectedOutput(\n                call_succeeds=False,\n                data_1=\"0x00\",\n                data_2=\"0x00\",\n            ),\n            id=\"EIP-152-case9-data10-large-gas-limit\",\n        ),\n    ],\n)\n@pytest.mark.slow()\ndef test_blake2b_large_gas_limit(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    call_opcode: Op,\n    gas_limit: int,\n    blake2b_contract_bytecode: Bytecode,\n    data: Blake2bInput | str | bytes,\n    output: ExpectedOutput,\n) -> None:\n    \"\"\"Test BLAKE2b precompile with large gas limit.\"\"\"\n    account = pre.deploy_contract(blake2b_contract_bytecode, storage={0: 0xDEADBEEF})\n    sender = pre.fund_eoa()\n\n    if isinstance(data, Blake2bInput):\n        data = data.create_blake2b_tx_data()\n    elif isinstance(data, str):\n        data = bytes.fromhex(data)\n\n    tx = Transaction(\n        ty=0x0,\n        to=account,\n        data=data,\n        gas_limit=gas_limit,\n        protected=True,\n        sender=sender,\n        value=0,\n    )\n\n    post = {\n        account: Account(\n            storage={\n                0: 0x1 if output.call_succeeds else 0x0,\n                1: output.data_1,\n                2: output.data_2,\n            }\n        )\n    }\n    state_test(pre=pre, post=post, tx=tx)\n"
  },
  {
    "path": "tests/istanbul/eip152_blake2/test_blake2_delegatecall.py",
    "content": "\"\"\"\nTest delegatecall to Blake2B Precompile before and after added.\n\"\"\"\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_forks.forks.forks import Istanbul\nfrom ethereum_test_tools import (\n    Account,\n    Alloc,\n    Environment,\n    StateTestFiller,\n    Transaction,\n)\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom .spec import Spec\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-152.md\"\nREFERENCE_SPEC_VERSION = \"2762bfcff3e549ef263342e5239ef03ac2b07400\"\n\n\n@pytest.mark.valid_from(\"ConstantinopleFix\")\ndef test_blake2_precompile_delegatecall(\n    state_test: StateTestFiller, pre: Alloc, fork: Fork\n) -> None:\n    \"\"\"\n    Test delegatecall consumes specified gas for the Blake2B precompile when it\n    exists.\n    \"\"\"\n    env = Environment()\n\n    account = pre.deploy_contract(\n        Op.SSTORE(\n            0,\n            Op.DELEGATECALL(\n                gas=1,\n                address=Spec.BLAKE2_PRECOMPILE_ADDRESS,\n            ),\n        )\n        + Op.STOP,\n        storage={0: 0xDEADBEEF},\n    )\n\n    tx = Transaction(\n        to=account,\n        sender=pre.fund_eoa(),\n        gas_limit=90_000,\n        protected=True,\n    )\n\n    # If precompile exists, DELEGATECALL will fail, otherwise DELEGATECALL will\n    # succeed\n    post = {\n        account: Account(\n            storage={\n                0: \"0x00\" if fork >= Istanbul else \"0x01\",\n            }\n        )\n    }\n\n    state_test(env=env, pre=pre, post=post, tx=tx)\n"
  },
  {
    "path": "tests/osaka/__init__.py",
    "content": "\"\"\"\nTest cases for EVM functionality introduced in Osaka, [EIP-7607: Hardfork Meta\n- Fusaka](https://eip.directory/eips/eip-7607).\n\"\"\"\n"
  },
  {
    "path": "tests/osaka/eip7594_peerdas/__init__.py",
    "content": "\"\"\"\nTest suite for\n[EIP-7594: PeerDAS - Peer Data Availability\nSampling](https://eips.ethereum.org/EIPS/eip-7594).\n\"\"\"\n"
  },
  {
    "path": "tests/osaka/eip7594_peerdas/spec.py",
    "content": "\"\"\"Defines EIP-7594 specification constants and functions.\"\"\"\n\nfrom dataclasses import dataclass\n\n\n@dataclass(frozen=True)\nclass ReferenceSpec:\n    \"\"\"Defines the reference spec version and git path.\"\"\"\n\n    git_path: str\n    version: str\n\n\nref_spec_7594 = ReferenceSpec(\"EIPS/eip-7594.md\", \"45d03a84a8ad0160ed3fb03af52c49bd39e802ba\")\n\n\n@dataclass(frozen=True)\nclass Spec:\n    \"\"\"\n    Parameters from the EIP-7594 specifications as defined at\n    https://eips.ethereum.org/EIPS/eip-7594.\n    \"\"\"\n\n    MAX_BLOBS_PER_TX = 6\n    BLOB_COMMITMENT_VERSION_KZG = 1\n"
  },
  {
    "path": "tests/osaka/eip7594_peerdas/test_get_blobs.py",
    "content": "\"\"\"\nGet blobs engine endpoint tests.\n\nTests for get blobs engine endpoint in [EIP-7594: PeerDAS - Peer Data\nAvailability Sampling](https://eips.ethereum.org/EIPS/eip-7594).\n\"\"\"\n\nfrom hashlib import sha256\nfrom typing import List, Optional\n\nimport pytest\n\nfrom ethereum_test_base_types.base_types import Hash\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    Address,\n    Alloc,\n    Blob,\n    BlobsTestFiller,\n    NetworkWrappedTransaction,\n    Transaction,\n    TransactionException,\n)\nfrom pytest_plugins.custom_logging import get_logger\n\nfrom .spec import ref_spec_7594\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_7594.git_path\nREFERENCE_SPEC_VERSION = ref_spec_7594.version\n\nlogger = get_logger(__name__)\n\n\n@pytest.fixture\ndef destination_account(pre: Alloc) -> Address:\n    \"\"\"Destination account for the blob transactions.\"\"\"\n    return pre.fund_eoa(amount=0)\n\n\n@pytest.fixture\ndef tx_value() -> int:\n    \"\"\"\n    Value contained by the transactions sent during test.\n\n    Can be overloaded by a test case to provide a custom transaction value.\n    \"\"\"\n    return 1\n\n\n@pytest.fixture\ndef tx_gas() -> int:\n    \"\"\"Gas allocated to transactions sent during test.\"\"\"\n    return 21_000\n\n\n@pytest.fixture\ndef block_base_fee_per_gas() -> int:\n    \"\"\"Return default max fee per gas for transactions sent during test.\"\"\"\n    return 7\n\n\n@pytest.fixture\ndef tx_calldata() -> bytes:\n    \"\"\"Calldata in transactions sent during test.\"\"\"\n    return b\"\"\n\n\n@pytest.fixture(autouse=True)\ndef parent_excess_blobs() -> int:\n    \"\"\"\n    Excess blobs of the parent block.\n\n    Can be overloaded by a test case to provide a custom parent excess blob\n    count.\n    \"\"\"\n    return 10  # Defaults to a blob gas price of 1.\n\n\n@pytest.fixture(autouse=True)\ndef parent_blobs() -> int:\n    \"\"\"\n    Blobs of the parent blob.\n\n    Can be overloaded by a test case to provide a custom parent blob count.\n    \"\"\"\n    return 0\n\n\n@pytest.fixture\ndef excess_blob_gas(\n    fork: Fork,\n    parent_excess_blobs: int | None,\n    parent_blobs: int | None,\n    block_base_fee_per_gas: int,\n) -> int | None:\n    \"\"\"\n    Calculate the excess blob gas of the block under test from the parent\n    block.\n\n    Value can be overloaded by a test case to provide a custom excess blob gas.\n    \"\"\"\n    if parent_excess_blobs is None or parent_blobs is None:\n        return None\n    excess_blob_gas = fork.excess_blob_gas_calculator()\n    return excess_blob_gas(\n        parent_excess_blobs=parent_excess_blobs,\n        parent_blob_count=parent_blobs,\n        parent_base_fee_per_gas=block_base_fee_per_gas,\n    )\n\n\n@pytest.fixture\ndef blob_gas_price(\n    fork: Fork,\n    excess_blob_gas: int | None,\n) -> int | None:\n    \"\"\"Return blob gas price for the block of the test.\"\"\"\n    if excess_blob_gas is None:\n        return None\n\n    get_blob_gas_price = fork.blob_gas_price_calculator()\n    return get_blob_gas_price(\n        excess_blob_gas=excess_blob_gas,\n    )\n\n\n@pytest.fixture\ndef txs_versioned_hashes(txs_blobs: List[List[Blob]]) -> List[List[bytes]]:\n    \"\"\"List of blob versioned hashes derived from the blobs.\"\"\"\n    return [[blob.versioned_hash for blob in blob_tx] for blob_tx in txs_blobs]\n\n\n@pytest.fixture\ndef tx_max_fee_per_blob_gas(  # noqa: D103\n    blob_gas_price: Optional[int],\n) -> int:\n    \"\"\"\n    Max fee per blob gas for transactions sent during test.\n\n    By default, it is set to the blob gas price of the block.\n\n    Can be overloaded by a test case to test rejection of transactions where\n    the max fee per blob gas is insufficient.\n    \"\"\"\n    if blob_gas_price is None:\n        # When fork transitioning, the default blob gas price is 1.\n        return 1\n    return blob_gas_price\n\n\n@pytest.fixture\ndef tx_error() -> Optional[TransactionException]:\n    \"\"\"\n    Even though the final block we are producing in each of these tests is\n    invalid, and some of the transactions will be invalid due to the format in\n    the final block, none of the transactions should be rejected by the\n    transition tool because they are being sent to it with the correct format.\n    \"\"\"\n    return None\n\n\n@pytest.fixture(autouse=True)\ndef txs(  # noqa: D103\n    pre: Alloc,\n    destination_account: Optional[Address],\n    tx_gas: int,\n    tx_value: int,\n    tx_calldata: bytes,\n    tx_max_fee_per_blob_gas: int,\n    txs_versioned_hashes: List[List[bytes]],\n    tx_error: Optional[TransactionException],\n    txs_blobs: List[List[Blob]],\n    fork: Fork,\n) -> List[NetworkWrappedTransaction | Transaction]:\n    \"\"\"Prepare the list of transactions that are sent during the test.\"\"\"\n    if len(txs_blobs) != len(txs_versioned_hashes):\n        raise ValueError(\"txs_blobs and txs_versioned_hashes should have the same length\")\n    txs: List[NetworkWrappedTransaction | Transaction] = []\n    for tx_blobs, tx_versioned_hashes in zip(txs_blobs, txs_versioned_hashes, strict=False):\n        tx = Transaction(\n            # type=3,\n            sender=pre.fund_eoa(),\n            to=destination_account,\n            value=tx_value,\n            gas_limit=tx_gas,\n            data=tx_calldata,\n            max_fee_per_blob_gas=tx_max_fee_per_blob_gas,\n            access_list=[],\n            blob_versioned_hashes=tx_versioned_hashes,\n            error=tx_error,\n        )\n        network_wrapped_tx = NetworkWrappedTransaction(\n            tx=tx,\n            blob_objects=tx_blobs,\n            wrapper_version=fork.full_blob_tx_wrapper_version(),\n        )\n        txs.append(network_wrapped_tx)\n    return txs\n\n\ndef generate_valid_blob_tests(\n    fork: Fork,\n) -> List:\n    \"\"\"\n    Return a list of the 8 most important tests for valid blob transactions\n    parametrized for each different fork.\n    \"\"\"\n    max_blobs_per_block = fork.max_blobs_per_block()\n    max_blobs_per_tx = fork.max_blobs_per_tx()\n    target_blobs_per_block = fork.target_blobs_per_block()\n\n    logger.debug(f\"MAX_BLOBS_PER_BLOCK value for fork {fork}: {max_blobs_per_block}\")\n    logger.debug(f\"MAX_BLOBS_PER_TX value for fork {fork}: {max_blobs_per_tx}\")\n    logger.debug(f\"TARGET_BLOBS_PER_BLOCK value for fork {fork}: {target_blobs_per_block}\")\n\n    # Calculate ascending pattern that fits within target_blobs_per_block\n    ascending_txs = []\n    total_blobs = 0\n    blob_offset = 0\n\n    for tx_size in range(1, max_blobs_per_tx + 1):\n        if total_blobs + tx_size <= target_blobs_per_block:\n            ascending_txs.append([Blob.from_fork(fork, blob_offset + j) for j in range(tx_size)])\n            total_blobs += tx_size\n            blob_offset += tx_size\n        else:\n            break\n\n    return [\n        # Basic single blob transaction\n        pytest.param(\n            [  # Txs\n                [  # Blobs per transaction\n                    Blob.from_fork(fork),\n                ]\n            ],\n            id=\"single_blob_transaction\",\n        ),\n        # Max blobs per transaction (single tx with max blobs)\n        pytest.param(\n            [[Blob.from_fork(fork, s) for s in range(max_blobs_per_tx)]],\n            id=\"max_blobs_per_tx\",\n        ),\n        # Max blobs per block distributed across multiple txs\n        pytest.param(\n            [\n                [\n                    Blob.from_fork(fork, s),\n                ]\n                for s in range(max_blobs_per_block)\n            ],\n            id=\"max_blobs_per_block\",\n        ),\n        # Target blobs per block distributed across multiple txs\n        pytest.param(\n            [\n                [\n                    Blob.from_fork(fork, s),\n                ]\n                for s in range(target_blobs_per_block)\n            ],\n            id=\"target_blobs_per_block\",\n        ),\n        # Two transactions with equal blob distribution\n        pytest.param(\n            [\n                [Blob.from_fork(fork, s) for s in range(target_blobs_per_block // 2)],\n                [\n                    Blob.from_fork(fork, s + target_blobs_per_block // 2)\n                    for s in range(target_blobs_per_block // 2)\n                ],\n            ],\n            id=\"two_tx_equal_blobs\",\n        ),\n        # Three transactions with equal blob distribution\n        pytest.param(\n            [\n                [Blob.from_fork(fork, s) for s in range(target_blobs_per_block // 3)],\n                [\n                    Blob.from_fork(fork, s + target_blobs_per_block // 3)\n                    for s in range(target_blobs_per_block // 3)\n                ],\n                [\n                    Blob.from_fork(fork, s + 2 * (target_blobs_per_block // 3))\n                    for s in range(target_blobs_per_block // 3)\n                ],\n            ],\n            id=\"three_tx_equal_blobs\",\n        ),\n        # Mixed distribution: one max tx + remaining as singles\n        pytest.param(\n            [  # Txs\n                [  # First tx with max blobs\n                    Blob.from_fork(fork, s) for s in range(max_blobs_per_tx)\n                ]\n            ]\n            + [\n                [  # Remaining txs with 1 blob each\n                    Blob.from_fork(fork, max_blobs_per_tx + s),\n                ]\n                for s in range(max_blobs_per_block - max_blobs_per_tx)\n            ],\n            id=\"mixed_max_tx_plus_singles\",\n        ),\n        # Ascending pattern: 1, 2, 3... blobs per tx\n        pytest.param(\n            ascending_txs,\n            id=\"ascending_blob_pattern\",\n        ),\n    ]\n\n\n@pytest.mark.parametrize_by_fork(\n    \"txs_blobs\",\n    generate_valid_blob_tests,\n)\n@pytest.mark.exception_test\n@pytest.mark.valid_from(\"Cancun\")\ndef test_get_blobs(\n    blobs_test: BlobsTestFiller,\n    pre: Alloc,\n    txs: List[NetworkWrappedTransaction | Transaction],\n) -> None:\n    \"\"\"\n    Test valid blob combinations where one or more txs in the block serialized\n    version contain a full blob (network version) tx.\n    \"\"\"\n    blobs_test(pre=pre, txs=txs)\n\n\n@pytest.mark.parametrize_by_fork(\n    \"txs_blobs\",\n    generate_valid_blob_tests,\n)\n@pytest.mark.exception_test\n@pytest.mark.valid_from(\"Cancun\")\ndef test_get_blobs_nonexisting(\n    blobs_test: BlobsTestFiller,\n    pre: Alloc,\n    txs: List[NetworkWrappedTransaction | Transaction],\n) -> None:\n    \"\"\"\n    Test that ensures clients respond with 'null' when at least one requested\n    blob is not available.\n    \"\"\"\n    nonexisting_blob_hashes = [Hash(sha256(str(i).encode()).digest()) for i in range(5)]\n    blobs_test(pre=pre, txs=txs, nonexisting_blob_hashes=nonexisting_blob_hashes)\n"
  },
  {
    "path": "tests/osaka/eip7594_peerdas/test_max_blob_per_tx.py",
    "content": "\"\"\"\nMAX_BLOBS_PER_TX limit tests.\n\nTests for `MAX_BLOBS_PER_TX` limit in [EIP-7594: PeerDAS - Peer Data\nAvailability Sampling](https://eips.ethereum.org/EIPS/eip-7594).\n\"\"\"\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    Address,\n    Alloc,\n    Block,\n    BlockchainTestFiller,\n    Environment,\n    Hash,\n    StateTestFiller,\n    Transaction,\n    TransactionException,\n    add_kzg_version,\n)\n\nfrom .spec import Spec, ref_spec_7594\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_7594.git_path\nREFERENCE_SPEC_VERSION = ref_spec_7594.version\n\nFORK_TIMESTAMP = 15_000\n\n\n@pytest.fixture\ndef env() -> Environment:\n    \"\"\"Environment fixture.\"\"\"\n    return Environment()\n\n\n@pytest.fixture\ndef sender(pre: Alloc) -> Address:\n    \"\"\"Sender account with sufficient balance for blob transactions.\"\"\"\n    return pre.fund_eoa(amount=10**18)\n\n\n@pytest.fixture\ndef destination(pre: Alloc) -> Address:\n    \"\"\"Destination account for blob transactions.\"\"\"\n    return pre.fund_eoa(amount=0)\n\n\n@pytest.fixture\ndef blob_gas_price(fork: Fork) -> int:\n    \"\"\"Blob gas price for transactions.\"\"\"\n    return fork.min_base_fee_per_blob_gas()\n\n\n@pytest.fixture\ndef tx(\n    sender: Address,\n    destination: Address,\n    blob_gas_price: int,\n    blob_count: int,\n) -> Transaction:\n    \"\"\"Blob transaction fixture.\"\"\"\n    return Transaction(\n        ty=3,\n        sender=sender,\n        to=destination,\n        value=1,\n        gas_limit=21_000,\n        max_fee_per_gas=10,\n        max_priority_fee_per_gas=1,\n        max_fee_per_blob_gas=blob_gas_price,\n        access_list=[],\n        blob_versioned_hashes=add_kzg_version(\n            [Hash(i) for i in range(0, blob_count)],\n            Spec.BLOB_COMMITMENT_VERSION_KZG,\n        ),\n    )\n\n\n@pytest.mark.parametrize_by_fork(\n    \"blob_count\",\n    lambda fork: list(range(1, fork.max_blobs_per_tx() + 1)),\n)\n@pytest.mark.valid_from(\"Osaka\")\ndef test_valid_max_blobs_per_tx(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    env: Environment,\n    tx: Transaction,\n) -> None:\n    \"\"\"\n    Test that transactions with blob count from 1 to MAX_BLOBS_PER_TX are\n    accepted. Verifies that individual transactions can contain up to the\n    maximum allowed number of blobs per transaction.\n    \"\"\"\n    state_test(\n        env=env,\n        pre=pre,\n        tx=tx,\n        post={},\n    )\n\n\n@pytest.mark.parametrize_by_fork(\n    \"blob_count\",\n    lambda fork: [\n        fork.max_blobs_per_tx() + 1,\n        fork.max_blobs_per_tx() + 2,\n        fork.max_blobs_per_block(),\n        fork.max_blobs_per_block() + 1,\n    ],\n)\n@pytest.mark.valid_from(\"Osaka\")\n@pytest.mark.exception_test\ndef test_invalid_max_blobs_per_tx(\n    fork: Fork,\n    state_test: StateTestFiller,\n    pre: Alloc,\n    env: Environment,\n    tx: Transaction,\n    blob_count: int,\n) -> None:\n    \"\"\"\n    Test that transactions exceeding MAX_BLOBS_PER_TX are rejected. Verifies\n    that individual transactions cannot contain more than the maximum allowed\n    number of blobs per transaction, even if the total would be within the\n    block limit.\n    \"\"\"\n    state_test(\n        env=env,\n        pre=pre,\n        tx=tx.with_error(\n            TransactionException.TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED\n            if blob_count > fork.max_blobs_per_block()\n            else TransactionException.TYPE_3_TX_BLOB_COUNT_EXCEEDED\n        ),\n        post={},\n    )\n\n\n@pytest.mark.parametrize_by_fork(\n    \"blob_count\",\n    lambda fork: [\n        fork.max_blobs_per_tx(timestamp=FORK_TIMESTAMP) + 1,\n        fork.max_blobs_per_block(timestamp=FORK_TIMESTAMP) + 1,\n    ],\n)\n@pytest.mark.valid_at_transition_to(\"Osaka\")\n@pytest.mark.exception_test\ndef test_max_blobs_per_tx_fork_transition(\n    fork: Fork,\n    blockchain_test: BlockchainTestFiller,\n    env: Environment,\n    pre: Alloc,\n    tx: Transaction,\n    blob_count: int,\n) -> None:\n    \"\"\"Test `MAX_BLOBS_PER_TX` limit enforcement across fork transition.\"\"\"\n    expected_exception = (\n        TransactionException.TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED\n        if blob_count > fork.max_blobs_per_block(timestamp=FORK_TIMESTAMP)\n        else TransactionException.TYPE_3_TX_BLOB_COUNT_EXCEEDED\n    )\n    pre_fork_block = Block(\n        txs=[\n            tx\n            if blob_count < fork.max_blobs_per_block(timestamp=FORK_TIMESTAMP - 1)\n            else tx.with_error(expected_exception)\n        ],\n        timestamp=FORK_TIMESTAMP - 1,\n        exception=None\n        if blob_count < fork.max_blobs_per_block(timestamp=FORK_TIMESTAMP - 1)\n        else [expected_exception],\n    )\n    fork_block = Block(\n        txs=[tx.with_nonce(1).with_error(expected_exception)],\n        timestamp=FORK_TIMESTAMP,\n        exception=[expected_exception],\n    )\n    post_fork_block = Block(\n        txs=[tx.with_nonce(1).with_error(expected_exception)],\n        timestamp=FORK_TIMESTAMP + 1,\n        exception=[expected_exception],\n    )\n    blockchain_test(\n        pre=pre,\n        post={},\n        blocks=[pre_fork_block, fork_block, post_fork_block],\n        genesis_environment=env,\n    )\n"
  },
  {
    "path": "tests/osaka/eip7823_modexp_upper_bounds/__init__.py",
    "content": "\"\"\"\nTests [EIP-7823: Set upper bounds for MODEXP](https://eips.ethereum.org/EIPS/eip-7823).\n\nTest cases for EIP-7823: Set upper bounds for MODEXP.\n\"\"\"\n"
  },
  {
    "path": "tests/osaka/eip7823_modexp_upper_bounds/conftest.py",
    "content": "\"\"\"Conftest for EIP-7823 tests.\"\"\"\n\nfrom typing import Dict\n\nimport pytest\n\nfrom ethereum_test_forks import Fork, Osaka\nfrom ethereum_test_tools import Account, Address, Alloc, Storage, Transaction, keccak256\nfrom ethereum_test_types import Environment\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom ...byzantium.eip198_modexp_precompile.helpers import ModExpInput\nfrom ..eip7883_modexp_gas_increase.spec import Spec, Spec7883\n\n\n@pytest.fixture\ndef call_contract_post_storage() -> Storage:\n    \"\"\"\n    Storage of the test contract after the transaction is executed. Note:\n    Fixture `call_contract_code` fills the actual expected storage values.\n    \"\"\"\n    return Storage()\n\n\n@pytest.fixture\ndef call_succeeds(\n    total_gas_used: int, fork: Fork, env: Environment, modexp_input: ModExpInput\n) -> bool:\n    \"\"\"\n    By default, depending on the expected output, we can deduce if the call is\n    expected to succeed or fail.\n    \"\"\"\n    # Transaction gas limit exceeded\n    tx_gas_limit_cap = fork.transaction_gas_limit_cap() or env.gas_limit\n    if total_gas_used > tx_gas_limit_cap:\n        return False\n\n    # Input length exceeded\n    base_length, exp_length, mod_length = modexp_input.get_declared_lengths()\n    if (\n        base_length > Spec.MAX_LENGTH_BYTES\n        or exp_length > Spec.MAX_LENGTH_BYTES\n        or mod_length > Spec.MAX_LENGTH_BYTES\n    ) and fork >= Osaka:\n        return False\n\n    return True\n\n\n@pytest.fixture\ndef gas_measure_contract(\n    pre: Alloc,\n    fork: Fork,\n    modexp_expected: bytes,\n    precompile_gas: int,\n    call_contract_post_storage: Storage,\n    call_succeeds: bool,\n) -> Address:\n    \"\"\"\n    Deploys a contract that measures ModExp gas consumption and execution\n    result.\n\n    Always stored:\n      storage[0]: precompile call success\n      storage[1]: return data length from precompile\n    Only if the precompile call succeeds:\n      storage[2]: gas consumed by precompile\n      storage[3]: hash of return data from precompile\n    \"\"\"\n    call_code = Op.CALL(\n        precompile_gas,\n        Spec.MODEXP_ADDRESS,\n        0,\n        0,\n        Op.CALLDATASIZE(),\n        0,\n        0,\n    )\n\n    gas_costs = fork.gas_costs()\n    extra_gas = (\n        gas_costs.G_WARM_ACCOUNT_ACCESS\n        + (gas_costs.G_VERY_LOW * (len(Op.CALL.kwargs) - 1))\n        + gas_costs.G_BASE  # CALLDATASIZE\n        + gas_costs.G_BASE  # GAS\n    )\n\n    # Build the gas measurement contract code\n    # Stack operations:\n    # [gas_start]\n    # [gas_start, call_result]\n    # [gas_start, call_result, gas_end]\n    # [gas_start, gas_end, call_result]\n    call_result_measurement = Op.GAS + call_code + Op.GAS + Op.SWAP1\n\n    # Calculate gas consumed: gas_start - (gas_end + extra_gas)\n    # Stack Operation:\n    # [gas_start, gas_end]\n    # [gas_start, gas_end, extra_gas]\n    # [gas_start, gas_end + extra_gas]\n    # [gas_end + extra_gas, gas_start]\n    # [gas_consumed]\n    gas_calculation = Op.PUSH2[extra_gas] + Op.ADD + Op.SWAP1 + Op.SUB\n\n    code = (\n        Op.CALLDATACOPY(dest_offset=0, offset=0, size=Op.CALLDATASIZE)\n        + Op.SSTORE(call_contract_post_storage.store_next(call_succeeds), call_result_measurement)\n        + Op.SSTORE(\n            call_contract_post_storage.store_next(len(modexp_expected) if call_succeeds else 0),\n            Op.RETURNDATASIZE(),\n        )\n    )\n\n    if call_succeeds:\n        code += Op.SSTORE(call_contract_post_storage.store_next(precompile_gas), gas_calculation)\n        code += Op.RETURNDATACOPY(dest_offset=0, offset=0, size=Op.RETURNDATASIZE())\n        code += Op.SSTORE(\n            call_contract_post_storage.store_next(keccak256(bytes(modexp_expected))),\n            Op.SHA3(0, Op.RETURNDATASIZE()),\n        )\n    return pre.deploy_contract(code)\n\n\n@pytest.fixture\ndef precompile_gas(fork: Fork, modexp_input: ModExpInput) -> int:\n    \"\"\"\n    Calculate gas cost for the ModExp precompile and verify it matches expected\n    gas.\n    \"\"\"\n    spec = Spec if fork < Osaka else Spec7883\n    try:\n        calculated_gas = spec.calculate_gas_cost(modexp_input)\n        return calculated_gas\n    except Exception:\n        # Used for `test_modexp_invalid_inputs` we expect the call to not\n        # succeed. Return is for completeness.\n        return 500 if fork >= Osaka else 200\n\n\n@pytest.fixture\ndef tx(\n    pre: Alloc,\n    gas_measure_contract: Address,\n    modexp_input: ModExpInput,\n    tx_gas_limit: int,\n) -> Transaction:\n    \"\"\"Transaction to measure gas consumption of the ModExp precompile.\"\"\"\n    return Transaction(\n        sender=pre.fund_eoa(),\n        to=gas_measure_contract,\n        data=bytes(modexp_input),\n        gas_limit=tx_gas_limit,\n    )\n\n\n@pytest.fixture\ndef total_gas_used(\n    fork: Fork, modexp_expected: bytes, modexp_input: ModExpInput, precompile_gas: int\n) -> int:\n    \"\"\"\n    Transaction gas limit used for the test (Can be overridden in the test).\n    \"\"\"\n    intrinsic_gas_cost_calculator = fork.transaction_intrinsic_cost_calculator()\n    memory_expansion_gas_calculator = fork.memory_expansion_gas_calculator()\n    extra_gas = 500_000\n\n    total_gas = (\n        extra_gas\n        + intrinsic_gas_cost_calculator(calldata=bytes(modexp_input))\n        + memory_expansion_gas_calculator(new_bytes=len(bytes(modexp_input)))\n        + precompile_gas\n    )\n\n    return total_gas\n\n\n@pytest.fixture\ndef tx_gas_limit(total_gas_used: int, fork: Fork, env: Environment) -> int:\n    \"\"\"\n    Transaction gas limit used for the test (Can be overridden in the test).\n    \"\"\"\n    tx_gas_limit_cap = fork.transaction_gas_limit_cap() or env.gas_limit\n    return min(tx_gas_limit_cap, total_gas_used)\n\n\n@pytest.fixture\ndef post(\n    gas_measure_contract: Address,\n    call_contract_post_storage: Storage,\n) -> Dict[Address, Account]:\n    \"\"\"Return expected post state with gas consumption check.\"\"\"\n    return {\n        gas_measure_contract: Account(storage=call_contract_post_storage),\n    }\n"
  },
  {
    "path": "tests/osaka/eip7823_modexp_upper_bounds/eip_checklist_external_coverage.txt",
    "content": "precompile/test/call_contexts/set_code = Covered in EIP-7702 cases\nprecompile/test/call_contexts/normal = Covered in osaka/eip7883_modexp_gas_increase\nprecompile/test/call_contexts/delegate = Covered in osaka/eip7883_modexp_gas_increase\nprecompile/test/call_contexts/static = Covered in osaka/eip7883_modexp_gas_increase\nprecompile/test/call_contexts/callcode = Covered in osaka/eip7883_modexp_gas_increase\nprecompile/test/call_contexts/tx_entry = Covered in osaka/eip7883_modexp_gas_increase\nprecompile/test/call_contexts/initcode/CREATE = Covered in osaka/eip7883_modexp_gas_increase\nprecompile/test/call_contexts/initcode/tx = Covered in osaka/eip7883_modexp_gas_increase\nprecompile/test/call_contexts/set_code = Covered in osaka/eip7883_modexp_gas_increase\nprecompile/test/inputs/valid = Covered in osaka/eip7883_modexp_gas_increase\nprecompile/test/inputs/valid/boundary = Covered in osaka/eip7883_modexp_gas_increase\nprecompile/test/inputs/all_zeros = Covered in osaka/eip7883_modexp_gas_increase\nprecompile/test/inputs/invalid = Covered in osaka/eip7883_modexp_gas_increase\nprecompile/test/inputs/invalid/crypto = Covered in osaka/eip7883_modexp_gas_increase\nprecompile/test/inputs/invalid/corrupted = Covered in osaka/eip7883_modexp_gas_increase\nprecompile/test/value_transfer/no_fee = Covered in osaka/eip7883_modexp_gas_increase\nprecompile/test/out_of_bounds/max_plus_one = Covered in osaka/eip7883_modexp_gas_increase\nprecompile/test/input_lengths/zero = Covered in osaka/eip7883_modexp_gas_increase\nprecompile/test/input_lengths/dynamic/valid = Covered in osaka/eip7883_modexp_gas_increase\nprecompile/test/input_lengths/dynamic/too_long = Covered in osaka/eip7883_modexp_gas_increase\nprecompile/test/gas_usage/dynamic/exact = Covered in osaka/eip7883_modexp_gas_increase\nprecompile/test/gas_usage/dynamic/oog = Covered in osaka/eip7883_modexp_gas_increase\nprecompile/test/excessive_gas_usage = Covered in osaka/eip7883_modexp_gas_increase\nprecompile/test/fork_transition/after/warm = Covered in osaka/eip7883_modexp_gas_increase\ngas_cost_changes/test/gas_updates_measurement = Covered in osaka/eip7883_modexp_gas_increase\ngas_cost_changes/test/fork_transition/before = Covered in osaka/eip7883_modexp_gas_increase\ngas_cost_changes/test/fork_transition/after = Covered in osaka/eip7883_modexp_gas_increase"
  },
  {
    "path": "tests/osaka/eip7823_modexp_upper_bounds/eip_checklist_not_applicable.txt",
    "content": "precompile/test/value_transfer/fee/under = No value is required\nprecompile/test/value_transfer/fee/exact = No value is required\nprecompile/test/value_transfer/fee/over = No value is required\nprecompile/test/input_lengths/static/correct = The Modexp input length is not static\nprecompile/test/input_lengths/static/too_short = The Modexp input length is not static\nprecompile/test/input_lengths/static/too_long = The Modexp input length is not static\nprecompile/test/input_lengths/dynamic/too_short = there would be no padding for precompile\nprecompile/test/gas_usage/constant/oog = The Modexp gas cost is dynamic\nprecompile/test/gas_usage/constant/exact = The Modexp gas cost is dynamic\nprecompile/test/fork_transition/before/invalid_input = Modexp is not new precompile, it is still valid befork fork activation\nprecompile/test/fork_transition/before/zero_gas = Modexp is not new precompile, it is still valid befork fork activation\nprecompile/test/fork_transition/before/cold = Modexp is not new precompile, it is still valid befork fork activation\ngas_cost_changes/test/out_of_gas = No Out-of-gas scenario in Modexp\nsystem_contract = EIP does not include a new system contract\nopcode = EIP does not introduce a new opcode\nremoved_precompile = EIP does not remove a precompile\ntransaction_type = EIP does not introduce a new transaction type\nblock_header_field = EIP does not add any new block header fields\ngas_refunds_changes = EIP does not introduce any gas refund changes\nblob_count_changes = EIP does not introduce any blob count changes\nexecution_layer_request = EIP does not introduce an execution layer request\nnew_transaction_validity_constraint = EIP does not introduce a new transaction validity constraint\nmodified_transaction_validity_constraint = EIP does not introduce a modified transaction validity constraint\nblock_body_field = EIP does not add any new block body fields"
  },
  {
    "path": "tests/osaka/eip7823_modexp_upper_bounds/spec.py",
    "content": "\"\"\"Defines EIP-7823 specification constants and functions.\"\"\"\n\nfrom dataclasses import dataclass\n\n\n@dataclass(frozen=True)\nclass ReferenceSpec:\n    \"\"\"Defines the reference spec version and git path.\"\"\"\n\n    git_path: str\n    version: str\n\n\nref_spec_7823 = ReferenceSpec(\"EIPS/eip-7823.md\", \"c8321494fdfbfda52ad46c3515a7ca5dc86b857c\")\n"
  },
  {
    "path": "tests/osaka/eip7823_modexp_upper_bounds/test_modexp_upper_bounds.py",
    "content": "\"\"\"\nTest [EIP-7823: Set upper bounds for MODEXP](https://eips.ethereum.org/EIPS/eip-7823).\n\"\"\"\n\nfrom typing import Dict\n\nimport pytest\n\nfrom ethereum_test_checklists import EIPChecklist\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    Account,\n    Alloc,\n    Block,\n    BlockchainTestFiller,\n    Bytes,\n    StateTestFiller,\n    Transaction,\n    keccak256,\n)\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom ...byzantium.eip198_modexp_precompile.helpers import ModExpInput\nfrom ..eip7883_modexp_gas_increase.spec import Spec\nfrom .spec import ref_spec_7823\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_7823.git_path\nREFERENCE_SPEC_VERSION = ref_spec_7823.version\n\n\n@pytest.mark.valid_from(\"Osaka\")\n@pytest.mark.parametrize(\n    \"modexp_input,modexp_expected,call_succeeds\",\n    [\n        pytest.param(\n            ModExpInput(\n                base=b\"\\0\" * (Spec.MAX_LENGTH_BYTES + 1),\n                exponent=b\"\\0\",\n                modulus=b\"\\2\",\n            ),\n            Spec.modexp_error,\n            False,\n            id=\"excess_length_base\",\n        ),\n        pytest.param(\n            ModExpInput(\n                base=b\"\\0\",\n                exponent=b\"\\0\" * (Spec.MAX_LENGTH_BYTES + 1),\n                modulus=b\"\\2\",\n            ),\n            Spec.modexp_error,\n            False,\n            id=\"excess_length_exponent\",\n        ),\n        pytest.param(\n            ModExpInput(\n                base=b\"\\0\",\n                exponent=b\"\\0\",\n                modulus=b\"\\0\" * (Spec.MAX_LENGTH_BYTES) + b\"\\2\",\n            ),\n            Spec.modexp_error,\n            False,\n            id=\"excess_length_modulus\",\n        ),\n        pytest.param(\n            ModExpInput(\n                base=b\"\",\n                exponent=b\"\\0\" * (Spec.MAX_LENGTH_BYTES + 1),\n                modulus=b\"\",\n            ),\n            Spec.modexp_error,\n            False,\n            id=\"exp_1025_base_0_mod_0\",\n        ),\n        pytest.param(\n            ModExpInput(\n                base=b\"\",\n                # Non-zero exponent is cancelled with zero multiplication\n                # complexity pre EIP-7823.\n                exponent=b\"\\xff\" * (Spec.MAX_LENGTH_BYTES + 1),\n                modulus=b\"\",\n            ),\n            Spec.modexp_error,\n            False,\n            id=\"expFF_1025_base_0_mod_0\",\n        ),\n        pytest.param(\n            ModExpInput(\n                base=b\"\\0\" * Spec.MAX_LENGTH_BYTES,\n                exponent=b\"\\xff\" * (Spec.MAX_LENGTH_BYTES + 1),\n                modulus=b\"\",\n            ),\n            Spec.modexp_error,\n            False,\n            id=\"expFF_1025_base_1024_mod_0\",\n        ),\n        pytest.param(\n            ModExpInput(\n                base=b\"\\0\" * (Spec.MAX_LENGTH_BYTES + 1),\n                exponent=b\"\\xff\" * (Spec.MAX_LENGTH_BYTES + 1),\n                modulus=b\"\",\n            ),\n            Spec.modexp_error,\n            False,\n            id=\"expFF_1025_base_1025_mod_0\",\n        ),\n        pytest.param(\n            ModExpInput(\n                base=b\"\\0\" * (Spec.MAX_LENGTH_BYTES + 1),\n                exponent=b\"\",\n                modulus=b\"\",\n            ),\n            Spec.modexp_error,\n            False,\n            id=\"exp_0_base_1025_mod_0\",\n        ),\n        pytest.param(\n            ModExpInput(\n                base=b\"\\0\" * (Spec.MAX_LENGTH_BYTES + 1),\n                exponent=b\"\",\n                modulus=b\"\\2\",\n            ),\n            Spec.modexp_error,\n            False,\n            id=\"exp_0_base_1025_mod_1\",\n        ),\n        pytest.param(\n            ModExpInput(\n                base=b\"\",\n                exponent=b\"\",\n                modulus=b\"\\0\" * (Spec.MAX_LENGTH_BYTES + 1),\n            ),\n            Spec.modexp_error,\n            False,\n            id=\"exp_0_base_0_mod_1025\",\n        ),\n        pytest.param(\n            ModExpInput(\n                base=b\"\\1\",\n                exponent=b\"\",\n                modulus=b\"\\0\" * (Spec.MAX_LENGTH_BYTES + 1),\n            ),\n            Spec.modexp_error,\n            False,\n            id=\"exp_0_base_1_mod_1025\",\n        ),\n        pytest.param(\n            ModExpInput(\n                base=b\"\",\n                exponent=Bytes(\"80\"),\n                modulus=b\"\",\n                declared_exponent_length=2**64,\n            ),\n            Spec.modexp_error,\n            False,\n            id=\"exp_2_pow_64_base_0_mod_0\",\n        ),\n        # Implementation coverage tests\n        pytest.param(\n            ModExpInput(\n                base=b\"\\xff\" * (Spec.MAX_LENGTH_BYTES + 1),\n                exponent=b\"\\xff\" * (Spec.MAX_LENGTH_BYTES + 1),\n                modulus=b\"\\xff\" * (Spec.MAX_LENGTH_BYTES + 1),\n            ),\n            Spec.modexp_error,\n            False,\n            id=\"all_exceed_check_ordering\",\n        ),\n        pytest.param(\n            ModExpInput(\n                base=b\"\\x00\" * Spec.MAX_LENGTH_BYTES,\n                exponent=b\"\\xff\" * (Spec.MAX_LENGTH_BYTES + 1),\n                modulus=b\"\\xff\" * (Spec.MAX_LENGTH_BYTES + 1),\n            ),\n            Spec.modexp_error,\n            False,\n            id=\"exp_mod_exceed_base_ok\",\n        ),\n        pytest.param(\n            ModExpInput(\n                # Bitwise pattern for Nethermind optimization\n                base=b\"\\xaa\" * (Spec.MAX_LENGTH_BYTES + 1),\n                exponent=b\"\\x55\" * Spec.MAX_LENGTH_BYTES,\n                modulus=b\"\\xff\" * Spec.MAX_LENGTH_BYTES,\n            ),\n            Spec.modexp_error,\n            False,\n            id=\"bitwise_pattern_base_exceed\",\n        ),\n        pytest.param(\n            ModExpInput(\n                base=b\"\",\n                exponent=b\"\",\n                modulus=b\"\",\n                # Near max uint64 for revm conversion test\n                declared_base_length=2**63 - 1,\n                declared_exponent_length=1,\n                declared_modulus_length=1,\n            ),\n            Spec.modexp_error,\n            False,\n            id=\"near_uint64_max_base\",\n        ),\n        pytest.param(\n            ModExpInput(\n                base=b\"\\x01\" * Spec.MAX_LENGTH_BYTES,\n                exponent=b\"\",\n                modulus=b\"\\x02\" * (Spec.MAX_LENGTH_BYTES + 1),\n                declared_exponent_length=0,\n            ),\n            Spec.modexp_error,\n            False,\n            id=\"zero_exp_mod_exceed\",\n        ),\n        pytest.param(\n            ModExpInput(\n                base=b\"\\x01\" * Spec.MAX_LENGTH_BYTES,\n                exponent=b\"\\x00\",\n                modulus=b\"\\x02\",\n            ),\n            b\"\\x01\",\n            True,\n            id=\"base_boundary\",\n        ),\n        pytest.param(\n            ModExpInput(\n                base=b\"\\x01\",\n                exponent=b\"\\x00\" * Spec.MAX_LENGTH_BYTES,\n                modulus=b\"\\x02\",\n            ),\n            b\"\\x01\",\n            True,\n            id=\"exp_boundary\",\n        ),\n        pytest.param(\n            ModExpInput(\n                base=b\"\\x01\",\n                exponent=b\"\\x00\",\n                modulus=b\"\\x02\" * Spec.MAX_LENGTH_BYTES,\n            ),\n            b\"\\x01\".rjust(Spec.MAX_LENGTH_BYTES, b\"\\x00\"),\n            True,\n            id=\"mod_boundary\",\n        ),\n        pytest.param(\n            ModExpInput(\n                base=b\"\\x01\" * Spec.MAX_LENGTH_BYTES,\n                exponent=b\"\\x00\",\n                modulus=b\"\\x02\" * Spec.MAX_LENGTH_BYTES,\n            ),\n            b\"\\x01\".rjust(Spec.MAX_LENGTH_BYTES, b\"\\x00\"),\n            True,\n            id=\"base_mod_boundary\",\n        ),\n    ],\n)\n@EIPChecklist.Precompile.Test.Inputs.MaxValues\n@EIPChecklist.Precompile.Test.OutOfBounds.Max\ndef test_modexp_upper_bounds(\n    state_test: StateTestFiller,\n    modexp_input: ModExpInput,\n    modexp_expected: bytes,\n    precompile_gas: int,\n    fork: Fork,\n    tx: Transaction,\n    post: Dict,\n    pre: Alloc,\n) -> None:\n    \"\"\"Test the MODEXP precompile input bounds.\"\"\"\n    state_test(pre=pre, tx=tx, post=post)\n\n\n@pytest.mark.parametrize(\n    \"modexp_input,modexp_expected\",\n    [\n        pytest.param(\n            ModExpInput(\n                base=b\"\\1\" * (Spec.MAX_LENGTH_BYTES + 1),\n                exponent=b\"\\0\",\n                modulus=b\"\\2\",\n            ),\n            b\"\\1\",\n            id=\"base_1_exp_0_mod_2\",\n        ),\n    ],\n)\n@pytest.mark.valid_at_transition_to(\"Osaka\", subsequent_forks=True)\ndef test_modexp_upper_bounds_fork_transition(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    fork: Fork,\n    precompile_gas: int,\n    modexp_input: ModExpInput,\n    modexp_expected: bytes,\n) -> None:\n    \"\"\"\n    Test MODEXP upper bounds enforcement transition from before to after Osaka\n    hard fork.\n    \"\"\"\n    call_code = Op.CALL(\n        address=Spec.MODEXP_ADDRESS,\n        args_size=Op.CALLDATASIZE,\n    )\n\n    code = (\n        Op.CALLDATACOPY(size=Op.CALLDATASIZE)\n        + Op.SSTORE(\n            Op.TIMESTAMP,\n            call_code,\n        )\n        + Op.RETURNDATACOPY(size=Op.RETURNDATASIZE())\n        + Op.SSTORE(\n            Op.AND(Op.TIMESTAMP, 0xFF),\n            Op.SHA3(0, Op.RETURNDATASIZE()),\n        )\n    )\n\n    senders = [pre.fund_eoa() for _ in range(3)]\n    contracts = [pre.deploy_contract(code) for _ in range(3)]\n    timestamps = [14_999, 15_000, 15_001]  # Before, at, and after transition\n    expected_results = [True, False, False]\n\n    blocks = [\n        Block(\n            timestamp=ts,\n            txs=[\n                Transaction(\n                    to=contract,\n                    data=bytes(modexp_input),\n                    sender=sender,\n                    gas_limit=6_000_000,\n                )\n            ],\n        )\n        for ts, contract, sender in zip(timestamps, contracts, senders, strict=False)\n    ]\n\n    post = {\n        contract: Account(\n            storage={\n                ts: expected,\n                ts & 0xFF: keccak256(modexp_expected)\n                if expected\n                else keccak256(Spec.modexp_error),\n            }\n        )\n        for contract, ts, expected in zip(contracts, timestamps, expected_results, strict=False)\n    }\n\n    blockchain_test(\n        pre=pre,\n        blocks=blocks,\n        post=post,\n    )\n"
  },
  {
    "path": "tests/osaka/eip7825_transaction_gas_limit_cap/__init__.py",
    "content": "\"\"\"\nTests [EIP-7825: Transaction Gas Limit Cap](https://eips.ethereum.org/EIPS/eip-7825).\n\"\"\"\n"
  },
  {
    "path": "tests/osaka/eip7825_transaction_gas_limit_cap/eip_checklist_external_coverage.txt",
    "content": "general/code_coverage/eels = Please check https://app.codecov.io/gh/ethereum/execution-specs/pull/1388/blob/src/ethereum/osaka/vm/instructions/bitwise.py#L243 for relevant test coverage\ngeneral/code_coverage/test_coverage = Please run the test with `--cov` flag for final coverage"
  },
  {
    "path": "tests/osaka/eip7825_transaction_gas_limit_cap/eip_checklist_not_applicable.txt",
    "content": "system_contract = EIP does not introduce a new system contract\nopcode = EIP does not introduce a new opcode\nprecompile = EIP does not introduce a new precompile\nremoved_precompile = EIP does not remove a precompile\ntransaction_type = EIP does not introduce a new transaction type\nblock_header_field = EIP does not add any new block header fields\nblock_body_field = EIP does not add any new block body fields\ngas_cost_changes = EIP does not modify existing gas costs, only introduces new opcode with fixed cost\ngas_refunds_changes = EIP does not introduce any gas refund changes\nblob_count_changes = EIP does not introduce any blob count changes\nexecution_layer_request = EIP does not introduce an execution layer request\nnew_transaction_validity_constraint = EIP does not introduce a new transaction validity constraint\n"
  },
  {
    "path": "tests/osaka/eip7825_transaction_gas_limit_cap/spec.py",
    "content": "\"\"\"Defines EIP-7825 specification constants and functions.\"\"\"\n\nfrom dataclasses import dataclass\n\n\n@dataclass(frozen=True)\nclass ReferenceSpec:\n    \"\"\"Defines the reference spec version and git path.\"\"\"\n\n    git_path: str\n    version: str\n\n\n# EIP-7825 reference specification\nref_spec_7825 = ReferenceSpec(\"EIPS/eip-7825.md\", \"1ed95cbac750539c2aac67c8cbbcc2d77974231c\")\n\n\n@dataclass(frozen=True)\nclass Spec:\n    \"\"\"\n    Constants and helpers for the EIP-7825 Transaction Gas Limit Cap tests.\n    \"\"\"\n\n    # Gas limit constants\n    tx_gas_limit_cap = 2**24  # 16,777,216\n\n    # Blob transaction constants\n    blob_commitment_version_kzg = 1\n"
  },
  {
    "path": "tests/osaka/eip7825_transaction_gas_limit_cap/test_tx_gas_limit.py",
    "content": "\"\"\"\nTransaction gas limit cap tests.\n\nTests for transaction gas limit cap in [EIP-7825: Transaction Gas Limit\nCap](https://eips.ethereum.org/EIPS/eip-7825).\n\"\"\"\n\nfrom typing import List\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    AccessList,\n    Account,\n    Address,\n    Alloc,\n    AuthorizationTuple,\n    Block,\n    BlockchainTestFiller,\n    Bytecode,\n    Environment,\n    Hash,\n    StateTestFiller,\n    Storage,\n    Transaction,\n    TransactionException,\n    add_kzg_version,\n)\nfrom ethereum_test_tools.utility.pytest import ParameterSet\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .spec import Spec, ref_spec_7825\n\n# Update reference spec constants\nREFERENCE_SPEC_GIT_PATH = ref_spec_7825.git_path\nREFERENCE_SPEC_VERSION = ref_spec_7825.version\n\n\ndef tx_gas_limit_cap_tests(fork: Fork) -> List[ParameterSet]:\n    \"\"\"\n    Return a list of tests for transaction gas limit cap parametrized for each\n    different fork.\n    \"\"\"\n    fork_tx_gas_limit_cap = fork.transaction_gas_limit_cap()\n    if fork_tx_gas_limit_cap is None:\n        # Use a default value for forks that don't have a transaction gas limit\n        # cap\n        return [\n            pytest.param(Spec.tx_gas_limit_cap + 1, None, id=\"tx_gas_limit_cap_none\"),\n        ]\n\n    return [\n        pytest.param(\n            fork_tx_gas_limit_cap + 1,\n            TransactionException.GAS_LIMIT_EXCEEDS_MAXIMUM,\n            id=\"tx_gas_limit_cap_exceeds_maximum\",\n            marks=pytest.mark.exception_test,\n        ),\n        pytest.param(fork_tx_gas_limit_cap, None, id=\"tx_gas_limit_cap_over\"),\n    ]\n\n\n@pytest.mark.parametrize_by_fork(\"tx_gas_limit,error\", tx_gas_limit_cap_tests)\n@pytest.mark.with_all_tx_types\n@pytest.mark.valid_from(\"Prague\")\ndef test_transaction_gas_limit_cap(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    fork: Fork,\n    tx_gas_limit: int,\n    error: TransactionException | None,\n    tx_type: int,\n) -> None:\n    \"\"\"\n    Test the transaction gas limit cap behavior for all transaction types.\n    \"\"\"\n    env = Environment()\n\n    sender = pre.fund_eoa()\n    storage = Storage()\n    contract_address = pre.deploy_contract(\n        code=Op.SSTORE(storage.store_next(1), 1) + Op.STOP,\n    )\n\n    tx_kwargs = {\n        \"ty\": tx_type,\n        \"to\": contract_address,\n        \"gas_limit\": tx_gas_limit,\n        \"data\": b\"\",\n        \"value\": 0,\n        \"sender\": sender,\n        \"error\": error,\n    }\n\n    # Add extra required fields based on transaction type\n    if tx_type >= 1:\n        # Type 1: EIP-2930 Access List Transaction\n        tx_kwargs[\"access_list\"] = [\n            {\n                \"address\": contract_address,\n                \"storage_keys\": [0],\n            }\n        ]\n    if tx_type == 3:\n        # Type 3: EIP-4844 Blob Transaction\n        tx_kwargs[\"max_fee_per_blob_gas\"] = fork.min_base_fee_per_blob_gas()\n        tx_kwargs[\"blob_versioned_hashes\"] = add_kzg_version([0], Spec.blob_commitment_version_kzg)\n    elif tx_type == 4:\n        # Type 4: EIP-7702 Set Code Transaction\n        signer = pre.fund_eoa(amount=0)\n        tx_kwargs[\"authorization_list\"] = [\n            AuthorizationTuple(\n                signer=signer,\n                address=Address(0),\n                nonce=0,\n            )\n        ]\n\n    tx = Transaction(**tx_kwargs)\n    post = {contract_address: Account(storage=storage if error is None else {})}\n\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.parametrize(\n    \"opcode\",\n    [\n        pytest.param(Op.CALL),\n        pytest.param(Op.DELEGATECALL),\n        pytest.param(Op.CALLCODE),\n        pytest.param(Op.STATICCALL),\n    ],\n)\n@pytest.mark.valid_from(\"Osaka\")\ndef test_tx_gas_limit_cap_subcall_context(\n    state_test: StateTestFiller, pre: Alloc, opcode: Op, fork: Fork, env: Environment\n) -> None:\n    \"\"\"Test the transaction gas limit cap behavior for subcall context.\"\"\"\n    tx_gas_limit_cap = fork.transaction_gas_limit_cap()\n    assert tx_gas_limit_cap is not None, \"Fork does not have a transaction gas limit cap\"\n\n    caller_address = pre.deploy_contract(\n        code=Op.SSTORE(\n            0,\n            opcode(\n                gas=tx_gas_limit_cap + 1,\n                address=pre.deploy_contract(code=Op.MSTORE(0, Op.GAS) + Op.RETURN(0, 0x20)),\n                ret_offset=0,\n                ret_size=0,\n            ),\n        )\n    )\n\n    # Passing tx limit cap as the gas parameter to *CALL operations\n    # All tests should pass and the *CALL operations should succeed\n    # Gas forwarded = min(remaining gas, specified gas parameter)\n\n    tx = Transaction(\n        to=caller_address,\n        sender=pre.fund_eoa(),\n        gas_limit=tx_gas_limit_cap,\n    )\n\n    post = {\n        caller_address: Account(storage={\"0x00\": 1}),\n    }\n\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.parametrize(\n    \"exceed_block_gas_limit\",\n    [\n        pytest.param(True, marks=pytest.mark.exception_test),\n        pytest.param(False),\n    ],\n)\n@pytest.mark.valid_from(\"Osaka\")\ndef test_tx_gas_larger_than_block_gas_limit(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    env: Environment,\n    fork: Fork,\n    exceed_block_gas_limit: bool,\n) -> None:\n    \"\"\"\n    Test multiple transactions with total gas larger than the block gas limit.\n    \"\"\"\n    tx_gas_limit_cap = fork.transaction_gas_limit_cap()\n    assert tx_gas_limit_cap is not None, \"Fork does not have a transaction gas limit cap\"\n\n    tx_count = env.gas_limit // tx_gas_limit_cap\n\n    gas_spender_contract = pre.deploy_contract(code=Op.INVALID)\n    block = Block(\n        txs=[\n            Transaction(\n                to=gas_spender_contract,\n                sender=pre.fund_eoa(),\n                gas_limit=tx_gas_limit_cap,\n                error=TransactionException.GAS_ALLOWANCE_EXCEEDED if i >= tx_count else None,\n            )\n            for i in range(tx_count + int(exceed_block_gas_limit))\n        ],\n        exception=TransactionException.GAS_ALLOWANCE_EXCEEDED if exceed_block_gas_limit else None,\n    )\n\n    blockchain_test(pre=pre, post={}, blocks=[block])\n\n\n@pytest.mark.parametrize(\n    \"exceed_gas_refund_limit\",\n    [\n        pytest.param(True),\n        pytest.param(False),\n    ],\n)\n@pytest.mark.valid_from(\"Osaka\")\ndef test_maximum_gas_refund(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    fork: Fork,\n    exceed_gas_refund_limit: bool,\n) -> None:\n    \"\"\"Test the maximum gas refund behavior according to EIP-3529.\"\"\"\n    gas_costs = fork.gas_costs()\n    tx_gas_limit_cap = fork.transaction_gas_limit_cap()\n    assert tx_gas_limit_cap is not None, \"Fork does not have a transaction gas limit cap\"\n    max_refund_quotient = fork.max_refund_quotient()\n\n    storage = Storage()\n\n    # Base Operation: SSTORE(slot, 0)\n    iteration_cost = gas_costs.G_STORAGE_RESET + gas_costs.G_BASE + gas_costs.G_VERY_LOW\n    gas_refund = gas_costs.R_STORAGE_CLEAR\n\n    # EIP-3529: Reduction in refunds\n    storage_count = tx_gas_limit_cap // iteration_cost\n    gas_used = storage_count * iteration_cost\n\n    maximum_gas_refund = gas_used // max_refund_quotient\n    gas_refund_count = maximum_gas_refund // gas_refund\n\n    # Base case: operations that fit within the refund limit\n    iteration_count = min(storage_count, gas_refund_count + int(exceed_gas_refund_limit))\n\n    assert iteration_cost * iteration_count <= tx_gas_limit_cap, (\n        \"Iteration cost exceeds tx gas limit cap\"\n    )\n\n    opcode = sum(\n        (Op.SSTORE(storage.store_next(0), Op.PUSH0) for _ in range(iteration_count)),\n        Bytecode(),\n    )\n    assert len(opcode) <= fork.max_code_size(), \"code size exceeds max code size\"\n\n    contract = pre.deploy_contract(\n        code=opcode,\n        storage={Hash(i): Hash(1) for i in range(iteration_count)},\n    )\n\n    tx = Transaction(\n        to=contract,\n        sender=pre.fund_eoa(),\n        gas_limit=tx_gas_limit_cap,\n    )\n\n    post = {contract: Account(storage=storage)}\n\n    state_test(pre=pre, post=post, tx=tx)\n\n\n@pytest.fixture\ndef total_cost_floor_per_token(fork: Fork) -> int:\n    \"\"\"Total cost floor per token.\"\"\"\n    gas_costs = fork.gas_costs()\n    return gas_costs.G_TX_DATA_FLOOR_TOKEN_COST\n\n\n@pytest.mark.xdist_group(name=\"bigmem\")\n@pytest.mark.parametrize(\n    \"exceed_tx_gas_limit,correct_intrinsic_cost_in_transaction_gas_limit\",\n    [\n        pytest.param(True, False, marks=pytest.mark.exception_test),\n        pytest.param(True, True, marks=pytest.mark.exception_test),\n        pytest.param(False, True),\n    ],\n)\n@pytest.mark.parametrize(\"zero_byte\", [True, False])\n@pytest.mark.valid_from(\"Osaka\")\ndef test_tx_gas_limit_cap_full_calldata(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    zero_byte: bool,\n    total_cost_floor_per_token: int,\n    exceed_tx_gas_limit: bool,\n    correct_intrinsic_cost_in_transaction_gas_limit: bool,\n    fork: Fork,\n) -> None:\n    \"\"\"Test the transaction gas limit cap behavior for full calldata.\"\"\"\n    intrinsic_cost = fork.transaction_intrinsic_cost_calculator()\n    tx_gas_limit_cap = fork.transaction_gas_limit_cap()\n    assert tx_gas_limit_cap is not None, \"Fork does not have a transaction gas limit cap\"\n    gas_available = tx_gas_limit_cap - intrinsic_cost()\n\n    max_tokens_in_calldata = gas_available // total_cost_floor_per_token\n    num_of_bytes = max_tokens_in_calldata if zero_byte else max_tokens_in_calldata // 4\n\n    num_of_bytes += int(exceed_tx_gas_limit)\n\n    # Gas cost calculation based on EIP-7623:\n    # (https://eips.ethereum.org/EIPS/eip-7623)\n    #\n    # Simplified in this test case:\n    # - No execution gas used (no opcodes are executed)\n    # - Not a contract creation (no initcode)\n    #\n    # Token accounting:\n    #   tokens_in_calldata = zero_bytes + 4 * non_zero_bytes\n\n    byte_data = b\"\\x00\" if zero_byte else b\"\\xff\"\n\n    correct_intrinsic_cost = intrinsic_cost(calldata=byte_data * num_of_bytes)\n    if exceed_tx_gas_limit:\n        assert correct_intrinsic_cost > tx_gas_limit_cap, (\n            \"Correct intrinsic cost should exceed the tx gas limit cap\"\n        )\n    else:\n        assert correct_intrinsic_cost <= tx_gas_limit_cap, (\n            \"Correct intrinsic cost should be less than or equal to the tx gas limit cap\"\n        )\n\n    tx_gas_limit = (\n        correct_intrinsic_cost\n        if correct_intrinsic_cost_in_transaction_gas_limit\n        else tx_gas_limit_cap\n    )\n\n    tx = Transaction(\n        to=pre.fund_eoa(),\n        data=byte_data * num_of_bytes,\n        gas_limit=tx_gas_limit,\n        sender=pre.fund_eoa(),\n        error=TransactionException.GAS_LIMIT_EXCEEDS_MAXIMUM\n        if correct_intrinsic_cost_in_transaction_gas_limit and exceed_tx_gas_limit\n        else TransactionException.INTRINSIC_GAS_BELOW_FLOOR_GAS_COST\n        if exceed_tx_gas_limit\n        else None,\n    )\n\n    state_test(\n        pre=pre,\n        post={},\n        tx=tx,\n    )\n\n\n@pytest.mark.parametrize(\n    \"exceed_tx_gas_limit\",\n    [\n        pytest.param(True),\n        pytest.param(False),\n    ],\n)\n@pytest.mark.valid_from(\"Osaka\")\ndef test_tx_gas_limit_cap_contract_creation(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    total_cost_floor_per_token: int,\n    exceed_tx_gas_limit: bool,\n    fork: Fork,\n) -> None:\n    \"\"\"Test the transaction gas limit cap behavior for contract creation.\"\"\"\n    intrinsic_cost = fork.transaction_intrinsic_cost_calculator()\n    tx_gas_limit_cap = fork.transaction_gas_limit_cap()\n    assert tx_gas_limit_cap is not None, \"Fork does not have a transaction gas limit cap\"\n    gas_available = tx_gas_limit_cap - intrinsic_cost(contract_creation=True)\n\n    max_tokens_in_calldata = gas_available // total_cost_floor_per_token\n    num_of_bytes = (max_tokens_in_calldata // 4) + int(exceed_tx_gas_limit)\n\n    # Cannot exceed max contract code size\n    num_of_bytes = min(num_of_bytes, fork.max_code_size())\n\n    code = Op.JUMPDEST * num_of_bytes\n\n    # Craft a contract creation transaction that exceeds the transaction gas\n    # limit cap\n    #\n    # Total cost =\n    # intrinsic cost (base tx cost + contract creation cost)\n    # + calldata cost + init code execution cost\n    #\n    # The contract body is filled with JUMPDEST instructions, so:\n    # total cost = intrinsic cost + calldata cost + (num_of_jumpdest * 1 gas)\n    #\n    # If the total cost exceeds the tx limit cap, the transaction should fail\n\n    total_cost = intrinsic_cost(contract_creation=True, calldata=code) + num_of_bytes\n\n    tx = Transaction(\n        to=None,\n        data=code,\n        gas_limit=tx_gas_limit_cap,\n        sender=pre.fund_eoa(),\n        error=TransactionException.INTRINSIC_GAS_BELOW_FLOOR_GAS_COST\n        if total_cost > tx_gas_limit_cap\n        else None,\n    )\n\n    state_test(\n        pre=pre,\n        post={},\n        tx=tx,\n    )\n\n\n@pytest.mark.parametrize(\n    \"exceed_tx_gas_limit,correct_intrinsic_cost_in_transaction_gas_limit\",\n    [\n        pytest.param(True, False, marks=pytest.mark.exception_test),\n        pytest.param(True, True, marks=pytest.mark.exception_test),\n        pytest.param(False, True),\n    ],\n)\n@pytest.mark.valid_from(\"Osaka\")\ndef test_tx_gas_limit_cap_access_list_with_diff_keys(\n    state_test: StateTestFiller,\n    exceed_tx_gas_limit: bool,\n    correct_intrinsic_cost_in_transaction_gas_limit: bool,\n    pre: Alloc,\n    fork: Fork,\n) -> None:\n    \"\"\"\n    Test the transaction gas limit cap behavior for access list with different\n    storage keys.\n    \"\"\"\n    intrinsic_cost = fork.transaction_intrinsic_cost_calculator()\n    tx_gas_limit_cap = fork.transaction_gas_limit_cap()\n    assert tx_gas_limit_cap is not None, \"Fork does not have a transaction gas limit cap\"\n    gas_available = tx_gas_limit_cap - intrinsic_cost()\n\n    gas_costs = fork.gas_costs()\n    gas_per_address = gas_costs.G_ACCESS_LIST_ADDRESS\n    gas_per_storage_key = gas_costs.G_ACCESS_LIST_STORAGE\n\n    gas_after_address = gas_available - gas_per_address\n    num_storage_keys = gas_after_address // gas_per_storage_key + int(exceed_tx_gas_limit)\n\n    access_address = Address(\"0x1234567890123456789012345678901234567890\")\n    storage_keys = []\n    for i in range(num_storage_keys):\n        storage_keys.append(Hash(i))\n\n    access_list = [\n        AccessList(\n            address=access_address,\n            storage_keys=storage_keys,\n        )\n    ]\n\n    correct_intrinsic_cost = intrinsic_cost(access_list=access_list)\n    if exceed_tx_gas_limit:\n        assert correct_intrinsic_cost > tx_gas_limit_cap, (\n            \"Correct intrinsic cost should exceed the tx gas limit cap\"\n        )\n    else:\n        assert correct_intrinsic_cost <= tx_gas_limit_cap, (\n            \"Correct intrinsic cost should be less than or equal to the tx gas limit cap\"\n        )\n\n    tx_gas_limit = (\n        correct_intrinsic_cost\n        if correct_intrinsic_cost_in_transaction_gas_limit\n        else tx_gas_limit_cap\n    )\n\n    tx = Transaction(\n        to=pre.fund_eoa(),\n        gas_limit=tx_gas_limit,\n        sender=pre.fund_eoa(),\n        access_list=access_list,\n        error=TransactionException.GAS_LIMIT_EXCEEDS_MAXIMUM\n        if correct_intrinsic_cost_in_transaction_gas_limit and exceed_tx_gas_limit\n        else TransactionException.INTRINSIC_GAS_TOO_LOW\n        if exceed_tx_gas_limit\n        else None,\n    )\n\n    state_test(\n        pre=pre,\n        post={},\n        tx=tx,\n    )\n\n\n@pytest.mark.parametrize(\n    \"exceed_tx_gas_limit,correct_intrinsic_cost_in_transaction_gas_limit\",\n    [\n        pytest.param(True, False, marks=pytest.mark.exception_test),\n        pytest.param(True, True, marks=pytest.mark.exception_test),\n        pytest.param(False, True),\n    ],\n)\n@pytest.mark.valid_from(\"Osaka\")\ndef test_tx_gas_limit_cap_access_list_with_diff_addr(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    fork: Fork,\n    exceed_tx_gas_limit: bool,\n    correct_intrinsic_cost_in_transaction_gas_limit: bool,\n) -> None:\n    \"\"\"\n    Test the transaction gas limit cap behavior for access list with different\n    addresses.\n    \"\"\"\n    intrinsic_cost = fork.transaction_intrinsic_cost_calculator()\n    tx_gas_limit_cap = fork.transaction_gas_limit_cap()\n    assert tx_gas_limit_cap is not None, \"Fork does not have a transaction gas limit cap\"\n    gas_available = tx_gas_limit_cap - intrinsic_cost()\n\n    gas_costs = fork.gas_costs()\n    gas_per_address = gas_costs.G_ACCESS_LIST_ADDRESS\n    gas_per_storage_key = gas_costs.G_ACCESS_LIST_STORAGE\n\n    account_num = gas_available // (gas_per_address + gas_per_storage_key) + int(\n        exceed_tx_gas_limit\n    )\n\n    access_list = [\n        AccessList(\n            address=pre.fund_eoa(),\n            storage_keys=[Hash(i)],\n        )\n        for i in range(account_num)\n    ]\n\n    correct_intrinsic_cost = intrinsic_cost(access_list=access_list)\n    if exceed_tx_gas_limit:\n        assert correct_intrinsic_cost > tx_gas_limit_cap, (\n            \"Correct intrinsic cost should exceed the tx gas limit cap\"\n        )\n    else:\n        assert correct_intrinsic_cost <= tx_gas_limit_cap, (\n            \"Correct intrinsic cost should be less than or equal to the tx gas limit cap\"\n        )\n\n    tx_gas_limit = (\n        correct_intrinsic_cost\n        if correct_intrinsic_cost_in_transaction_gas_limit\n        else tx_gas_limit_cap\n    )\n\n    tx = Transaction(\n        to=pre.fund_eoa(),\n        gas_limit=tx_gas_limit,\n        sender=pre.fund_eoa(),\n        access_list=access_list,\n        error=TransactionException.GAS_LIMIT_EXCEEDS_MAXIMUM\n        if correct_intrinsic_cost_in_transaction_gas_limit and exceed_tx_gas_limit\n        else TransactionException.INTRINSIC_GAS_TOO_LOW\n        if exceed_tx_gas_limit\n        else None,\n    )\n\n    state_test(\n        pre=pre,\n        post={},\n        tx=tx,\n    )\n\n\n@pytest.mark.parametrize(\n    \"exceed_tx_gas_limit,correct_intrinsic_cost_in_transaction_gas_limit\",\n    [\n        pytest.param(True, False, marks=pytest.mark.exception_test),\n        pytest.param(True, True, marks=pytest.mark.exception_test),\n        pytest.param(False, True),\n    ],\n)\n@pytest.mark.valid_from(\"Osaka\")\ndef test_tx_gas_limit_cap_authorized_tx(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    fork: Fork,\n    exceed_tx_gas_limit: bool,\n    correct_intrinsic_cost_in_transaction_gas_limit: bool,\n) -> None:\n    \"\"\"Test a transaction limit cap with authorized tx.\"\"\"\n    intrinsic_cost = fork.transaction_intrinsic_cost_calculator()\n    tx_gas_limit_cap = fork.transaction_gas_limit_cap()\n    assert tx_gas_limit_cap is not None, \"Fork does not have a transaction gas limit cap\"\n    gas_available = tx_gas_limit_cap - intrinsic_cost()\n\n    gas_costs = fork.gas_costs()\n    gas_per_address = gas_costs.G_ACCESS_LIST_ADDRESS\n\n    per_empty_account_cost = 25_000\n    auth_list_length = gas_available // (gas_per_address + per_empty_account_cost) + int(\n        exceed_tx_gas_limit\n    )\n\n    # EIP-7702 authorization transaction cost:\n    # 21000 + 16 * non-zero calldata bytes + 4 * zero calldata bytes + 1900 *\n    # access list storage key count + 2400 * access list address count +\n    # PER_EMPTY_ACCOUNT_COST * authorization list length\n    #\n    # There is no calldata and no storage keys in this test case and the access\n    # address list count is equal to the authorization list length\n    #\n    # total cost = 21000 + (2400 + 25_000) * auth_list_length\n\n    auth_address = pre.deploy_contract(code=Op.STOP)\n\n    auth_signers = [pre.fund_eoa() for _ in range(auth_list_length)]\n\n    access_list = [\n        AccessList(\n            address=addr,\n            storage_keys=[],\n        )\n        for addr in auth_signers\n    ]\n\n    auth_tuples = [\n        AuthorizationTuple(\n            signer=signer,\n            address=auth_address,\n            nonce=signer.nonce,\n        )\n        for signer in auth_signers\n    ]\n\n    correct_intrinsic_cost = intrinsic_cost(\n        access_list=access_list, authorization_list_or_count=auth_list_length\n    )\n    if exceed_tx_gas_limit:\n        assert correct_intrinsic_cost > tx_gas_limit_cap, (\n            \"Correct intrinsic cost should exceed the tx gas limit cap\"\n        )\n    else:\n        assert correct_intrinsic_cost <= tx_gas_limit_cap, (\n            \"Correct intrinsic cost should be less than or equal to the tx gas limit cap\"\n        )\n\n    tx_gas_limit = (\n        correct_intrinsic_cost\n        if correct_intrinsic_cost_in_transaction_gas_limit\n        else tx_gas_limit_cap\n    )\n\n    tx = Transaction(\n        to=pre.fund_eoa(),\n        gas_limit=tx_gas_limit,\n        sender=pre.fund_eoa(),\n        access_list=access_list,\n        authorization_list=auth_tuples,\n        error=TransactionException.GAS_LIMIT_EXCEEDS_MAXIMUM\n        if correct_intrinsic_cost_in_transaction_gas_limit and exceed_tx_gas_limit\n        else TransactionException.INTRINSIC_GAS_TOO_LOW\n        if exceed_tx_gas_limit\n        else None,\n    )\n\n    state_test(\n        pre=pre,\n        post={},\n        tx=tx,\n    )\n"
  },
  {
    "path": "tests/osaka/eip7825_transaction_gas_limit_cap/test_tx_gas_limit_transition_fork.py",
    "content": "\"\"\"\nTransaction gas limit cap fork transition tests.\n\nTests for fork transition behavior in [EIP-7825: Transaction Gas Limit\nCap](https://eips.ethereum.org/EIPS/eip-7825).\n\"\"\"\n\nimport pytest\n\nfrom ethereum_test_checklists import EIPChecklist\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    Account,\n    Alloc,\n    Block,\n    BlockchainTestFiller,\n    Transaction,\n    TransactionException,\n)\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .spec import ref_spec_7825\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_7825.git_path\nREFERENCE_SPEC_VERSION = ref_spec_7825.version\n\n\n@EIPChecklist.ModifiedTransactionValidityConstraint.Test.ForkTransition.AcceptedBeforeFork()\n@EIPChecklist.ModifiedTransactionValidityConstraint.Test.ForkTransition.RejectedBeforeFork()\n@EIPChecklist.ModifiedTransactionValidityConstraint.Test.ForkTransition.AcceptedAfterFork()\n@EIPChecklist.ModifiedTransactionValidityConstraint.Test.ForkTransition.RejectedAfterFork()\n@pytest.mark.valid_at_transition_to(\"Osaka\", subsequent_forks=True)\n@pytest.mark.parametrize(\n    \"transaction_at_cap\",\n    [\n        pytest.param(True, id=\"at_cap\"),\n        pytest.param(False, marks=pytest.mark.exception_test, id=\"above_cap\"),\n    ],\n)\ndef test_transaction_gas_limit_cap_at_transition(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    fork: Fork,\n    transaction_at_cap: bool,\n) -> None:\n    \"\"\"\n    Test transaction gas limit cap behavior at the Osaka transition.\n\n    Before timestamp 15000: No gas limit cap (transactions with gas > 2^24 are\n    valid) At/after timestamp 15000: Gas limit cap of 2^24 is enforced\n    \"\"\"\n    contract_address = pre.deploy_contract(\n        code=Op.SSTORE(Op.TIMESTAMP, Op.ADD(Op.SLOAD(Op.TIMESTAMP), 1)) + Op.STOP,\n    )\n\n    # Get the gas limit cap at fork activation\n    tx_gas_cap = fork.transaction_gas_limit_cap(timestamp=15_000)\n    assert tx_gas_cap is not None, \"Gas limit cap should not be None after fork activation\"\n\n    # Test boundary: cap + 1 should fail after fork activation\n    above_cap = tx_gas_cap + 1\n\n    # Before fork activation: both cap and above_cap transactions should\n    # succeed\n    at_cap_tx_before_fork = Transaction(\n        ty=0,  # Legacy transaction\n        to=contract_address,\n        gas_limit=tx_gas_cap,\n        sender=pre.fund_eoa(),\n    )\n\n    above_cap_tx_before_fork = Transaction(\n        ty=0,  # Legacy transaction\n        to=contract_address,\n        gas_limit=above_cap,\n        sender=pre.fund_eoa(),\n    )\n\n    post_cap_tx_error = TransactionException.GAS_LIMIT_EXCEEDS_MAXIMUM\n\n    # After fork activation: test at cap vs above cap\n    transition_tx = Transaction(\n        ty=0,  # Legacy transaction\n        to=contract_address,\n        gas_limit=tx_gas_cap if transaction_at_cap else above_cap,\n        sender=pre.fund_eoa(),\n        error=None if transaction_at_cap else post_cap_tx_error,\n    )\n\n    blocks = []\n\n    # Before transition (timestamp < 15000): both cap and above_cap\n    # transactions should succeed\n    blocks.append(\n        Block(\n            timestamp=14_999,\n            txs=[above_cap_tx_before_fork, at_cap_tx_before_fork],\n        )\n    )\n\n    # At transition (timestamp = 15000):\n    # - transaction at cap should succeed\n    # - transaction above cap (cap + 1) should fail\n    blocks.append(\n        Block(\n            timestamp=15_000,\n            txs=[transition_tx],\n            exception=post_cap_tx_error if not transaction_at_cap else None,\n        )\n    )\n\n    # Post state: storage should be updated by successful transactions\n    post = {\n        contract_address: Account(\n            storage={\n                # Set by both transactions in first block (before transition):\n                14_999: 2,\n                # After transition:\n                # - Set by transaction at cap (should succeed)\n                # - Not set by transaction above cap (should fail)\n                15_000: 1 if transaction_at_cap else 0,\n            }\n        )\n    }\n\n    blockchain_test(pre=pre, blocks=blocks, post=post)\n"
  },
  {
    "path": "tests/osaka/eip7883_modexp_gas_increase/__init__.py",
    "content": "\"\"\"\nTests for [EIP-7883: ModExp Gas Cost Increase](https://eips.ethereum.org/EIPS/eip-7883).\n\"\"\"\n"
  },
  {
    "path": "tests/osaka/eip7883_modexp_gas_increase/conftest.py",
    "content": "\"\"\"Shared pytest definitions for EIP-7883 tests.\"\"\"\n\nfrom typing import Dict\n\nimport pytest\n\nfrom ethereum_test_forks import Fork, Osaka\nfrom ethereum_test_tools import (\n    Account,\n    Address,\n    Alloc,\n    Bytes,\n    Environment,\n    Storage,\n    Transaction,\n    keccak256,\n)\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom ...byzantium.eip198_modexp_precompile.helpers import ModExpInput\nfrom .spec import Spec, Spec7883\n\n\n@pytest.fixture\ndef gas_old() -> int | None:\n    \"\"\"Get old gas cost from the test vector if any.\"\"\"\n    return None\n\n\n@pytest.fixture\ndef gas_new() -> int | None:\n    \"\"\"Get new gas cost from the test vector if any.\"\"\"\n    return None\n\n\n@pytest.fixture\ndef call_opcode() -> Op:\n    \"\"\"Return call operation used to call the precompile.\"\"\"\n    return Op.CALL\n\n\n@pytest.fixture\ndef call_contract_post_storage() -> Storage:\n    \"\"\"\n    Storage of the test contract after the transaction is executed. Note:\n    Fixture `call_contract_code` fills the actual expected storage values.\n    \"\"\"\n    return Storage()\n\n\n@pytest.fixture\ndef total_tx_gas_needed(\n    fork: Fork, modexp_expected: bytes, modexp_input: ModExpInput, precompile_gas: int\n) -> int:\n    \"\"\"Calculate total tx gas needed for the transaction.\"\"\"\n    intrinsic_gas_cost_calculator = fork.transaction_intrinsic_cost_calculator()\n    memory_expansion_gas_calculator = fork.memory_expansion_gas_calculator()\n    sstore_gas = fork.gas_costs().G_STORAGE_SET * (len(modexp_expected) // 32)\n    extra_gas = 100_000\n\n    return (\n        extra_gas\n        + intrinsic_gas_cost_calculator(calldata=bytes(modexp_input))\n        + memory_expansion_gas_calculator(new_bytes=len(bytes(modexp_input)))\n        + precompile_gas\n        + sstore_gas\n    )\n\n\n@pytest.fixture\ndef exceeds_tx_gas_cap(total_tx_gas_needed: int, fork: Fork, env: Environment) -> bool:\n    \"\"\"Determine if total gas requirements exceed transaction gas cap.\"\"\"\n    tx_gas_limit_cap = fork.transaction_gas_limit_cap() or env.gas_limit\n    return total_tx_gas_needed > tx_gas_limit_cap\n\n\n@pytest.fixture\ndef expected_tx_cap_fail() -> bool:\n    \"\"\"Whether this test is expected to fail due to transaction gas cap.\"\"\"\n    return False\n\n\n@pytest.fixture\ndef call_succeeds(exceeds_tx_gas_cap: bool, expected_tx_cap_fail: bool) -> bool:\n    \"\"\"\n    Determine whether the ModExp precompile call should succeed or fail. By\n    default, depending on the expected output, we assume it succeeds. Under\n    EIP-7825, transactions requiring more gas than the cap should fail only if\n    unexpected.\n    \"\"\"\n    if exceeds_tx_gas_cap and not expected_tx_cap_fail:\n        pytest.fail(\n            \"Test unexpectedly exceeds tx gas cap. \"\n            \"Either mark with `expected_tx_cap_fail=True` or adjust inputs.\"\n        )\n    return not exceeds_tx_gas_cap\n\n\n@pytest.fixture\ndef gas_measure_contract(\n    pre: Alloc,\n    call_opcode: Op,\n    fork: Fork,\n    modexp_expected: bytes,\n    precompile_gas: int,\n    precompile_gas_modifier: int,\n    call_contract_post_storage: Storage,\n    call_succeeds: bool,\n) -> Address:\n    \"\"\"\n    Deploys a contract that measures ModExp gas consumption and execution\n    result.\n\n    Always stored:\n      storage[0]: precompile call success\n      storage[1]: return data length from precompile\n\n    Only if the precompile call succeeds:\n      storage[2]: gas consumed by precompile\n      storage[3]: hash of return data from precompile\n    \"\"\"\n    assert call_opcode in [Op.CALL, Op.CALLCODE, Op.DELEGATECALL, Op.STATICCALL]\n    value = [0] if call_opcode in [Op.CALL, Op.CALLCODE] else []\n\n    gas_used = (\n        precompile_gas + precompile_gas_modifier\n        if precompile_gas_modifier != float(\"inf\")\n        else Environment().gas_limit\n    )\n\n    call_code = call_opcode(\n        gas_used,\n        Spec.MODEXP_ADDRESS,\n        *value,\n        0,\n        Op.CALLDATASIZE(),\n        0,\n        0,\n    )\n\n    gas_costs = fork.gas_costs()\n    extra_gas = (\n        gas_costs.G_WARM_ACCOUNT_ACCESS\n        + (gas_costs.G_VERY_LOW * (len(call_opcode.kwargs) - 1))\n        + gas_costs.G_BASE  # CALLDATASIZE\n        + gas_costs.G_BASE  # GAS\n    )\n\n    # Build the gas measurement contract code\n    # Stack operations:\n    # [gas_start]\n    # [gas_start, call_result]\n    # [gas_start, call_result, gas_end]\n    # [gas_start, gas_end, call_result]\n    call_result_measurement = Op.GAS + call_code + Op.GAS + Op.SWAP1\n\n    # Calculate gas consumed: gas_start - (gas_end + extra_gas)\n    # Stack Operation:\n    # [gas_start, gas_end]\n    # [gas_start, gas_end, extra_gas]\n    # [gas_start, gas_end + extra_gas]\n    # [gas_end + extra_gas, gas_start]\n    # [gas_consumed]\n    gas_calculation = Op.PUSH2[extra_gas] + Op.ADD + Op.SWAP1 + Op.SUB\n\n    code = (\n        Op.CALLDATACOPY(dest_offset=0, offset=0, size=Op.CALLDATASIZE)\n        + Op.SSTORE(call_contract_post_storage.store_next(call_succeeds), call_result_measurement)\n        + Op.SSTORE(\n            call_contract_post_storage.store_next(len(modexp_expected) if call_succeeds else 0),\n            Op.RETURNDATASIZE(),\n        )\n    )\n\n    if call_succeeds:\n        code += Op.SSTORE(call_contract_post_storage.store_next(precompile_gas), gas_calculation)\n        code += Op.RETURNDATACOPY(dest_offset=0, offset=0, size=Op.RETURNDATASIZE())\n        code += Op.SSTORE(\n            call_contract_post_storage.store_next(keccak256(Bytes(modexp_expected))),\n            Op.SHA3(0, Op.RETURNDATASIZE()),\n        )\n    return pre.deploy_contract(code)\n\n\n@pytest.fixture\ndef precompile_gas(\n    fork: Fork, modexp_input: ModExpInput, gas_old: int | None, gas_new: int | None\n) -> int:\n    \"\"\"\n    Calculate gas cost for the ModExp precompile and verify it matches expected\n    gas.\n    \"\"\"\n    spec = Spec if fork < Osaka else Spec7883\n    try:\n        calculated_gas = spec.calculate_gas_cost(modexp_input)\n        if gas_old is not None and gas_new is not None:\n            expected_gas = gas_old if fork < Osaka else gas_new\n            assert calculated_gas == expected_gas, (\n                f\"Calculated gas {calculated_gas} != Vector gas {expected_gas}\\n\"\n                f\"Lengths: base: {hex(len(modexp_input.base))} ({len(modexp_input.base)}), \"\n                f\"exponent: {hex(len(modexp_input.exponent))} ({len(modexp_input.exponent)}), \"\n                f\"modulus: {hex(len(modexp_input.modulus))} ({len(modexp_input.modulus)})\\n\"\n                f\"Exponent: {modexp_input.exponent} \"\n                f\"({int.from_bytes(modexp_input.exponent, byteorder='big')})\"\n            )\n        return calculated_gas\n    except Exception:\n        # Used for `test_modexp_invalid_inputs` we expect the call to not\n        # succeed. Return is for completeness.\n        return 500 if fork >= Osaka else 200\n\n\n@pytest.fixture\ndef precompile_gas_modifier() -> int:\n    \"\"\"Return the gas modifier for the ModExp precompile.\"\"\"\n    return 0\n\n\n@pytest.fixture\ndef tx(\n    pre: Alloc,\n    gas_measure_contract: Address,\n    modexp_input: ModExpInput,\n    tx_gas_limit: int,\n) -> Transaction:\n    \"\"\"Transaction to measure gas consumption of the ModExp precompile.\"\"\"\n    return Transaction(\n        sender=pre.fund_eoa(),\n        to=gas_measure_contract,\n        data=bytes(modexp_input),\n        gas_limit=tx_gas_limit,\n    )\n\n\n@pytest.fixture\ndef tx_gas_limit(total_tx_gas_needed: int, fork: Fork, env: Environment) -> int:\n    \"\"\"\n    Transaction gas limit used for the test (Can be overridden in the test).\n    \"\"\"\n    tx_gas_limit_cap = fork.transaction_gas_limit_cap() or env.gas_limit\n    return min(tx_gas_limit_cap, total_tx_gas_needed)\n\n\n@pytest.fixture\ndef post(\n    gas_measure_contract: Address,\n    call_contract_post_storage: Storage,\n) -> Dict[Address, Account]:\n    \"\"\"Return expected post state with gas consumption check.\"\"\"\n    return {\n        gas_measure_contract: Account(storage=call_contract_post_storage),\n    }\n"
  },
  {
    "path": "tests/osaka/eip7883_modexp_gas_increase/eip_checklist_external_coverage.txt",
    "content": "precompile/test/call_contexts/set_code = Covered in EIP-7702 cases\nprecompile/test/inputs/max_values = Covered in osaka/eip7823_modexp_upper_bounds\nprecompile/test/out_of_bounds/max = Covered in osaka/eip7823_modexp_upper_bounds"
  },
  {
    "path": "tests/osaka/eip7883_modexp_gas_increase/eip_checklist_not_applicable.txt",
    "content": "precompile/test/value_transfer/fee/under = No value is required\nprecompile/test/value_transfer/fee/exact = No value is required\nprecompile/test/value_transfer/fee/over = No value is required\nprecompile/test/input_lengths/static/correct = The Modexp input length is not static\nprecompile/test/input_lengths/static/too_short = The Modexp input length is not static\nprecompile/test/input_lengths/static/too_long = The Modexp input length is not static\nprecompile/test/input_lengths/dynamic/too_short = there would be no padding for precompile\nprecompile/test/gas_usage/constant/oog = The Modexp gas cost is dynamic\nprecompile/test/gas_usage/constant/exact = The Modexp gas cost is dynamic\nprecompile/test/fork_transition/before/invalid_input = Modexp is not new precompile, it is still valid befork fork activation\nprecompile/test/fork_transition/before/zero_gas = Modexp is not new precompile, it is still valid befork fork activation\nprecompile/test/fork_transition/before/cold = Modexp is not new precompile, it is still valid befork fork activation\ngas_cost_changes/test/out_of_gas = No Out-of-gas scenario in Modexp\nsystem_contract = EIP does not include a new system contract\nopcode = EIP does not introduce a new opcode\nremoved_precompile = EIP does not remove a precompile\ntransaction_type = EIP does not introduce a new transaction type\nblock_header_field = EIP does not add any new block header fields\ngas_refunds_changes = EIP does not introduce any gas refund changes\nblob_count_changes = EIP does not introduce any blob count changes\nexecution_layer_request = EIP does not introduce an execution layer request\nnew_transaction_validity_constraint = EIP does not introduce a new transaction validity constraint\nmodified_transaction_validity_constraint = EIP does not introduce a modified transaction validity constraint\nblock_body_field = EIP does not add any new block body fields\n"
  },
  {
    "path": "tests/osaka/eip7883_modexp_gas_increase/helpers.py",
    "content": "\"\"\"Helper functions for the EIP-7883 ModExp gas cost increase tests.\"\"\"\n\nimport os\nfrom typing import Annotated, Any, List\n\nimport pytest\nfrom pydantic import BaseModel, ConfigDict, Field, PlainValidator, RootModel, TypeAdapter\nfrom pydantic.alias_generators import to_pascal\n\nfrom ethereum_test_tools import Bytes\n\nfrom ...byzantium.eip198_modexp_precompile.helpers import ModExpInput\n\n\ndef current_python_script_directory(*args: str) -> str:\n    \"\"\"Get the current Python script directory.\"\"\"\n    return os.path.join(os.path.dirname(os.path.realpath(__file__)), *args)\n\n\nclass Vector(BaseModel):\n    \"\"\"A vector for the ModExp gas cost increase tests.\"\"\"\n\n    modexp_input: Annotated[ModExpInput, PlainValidator(ModExpInput.from_bytes)] = Field(\n        ..., alias=\"Input\"\n    )\n    modexp_expected: Bytes = Field(..., alias=\"Expected\")\n    name: str = Field(..., alias=\"Name\")\n    gas_old: int | None = Field(default=None, alias=\"GasOld\")\n    gas_new: int | None = Field(default=None, alias=\"GasNew\")\n\n    model_config = ConfigDict(alias_generator=to_pascal)\n\n    def to_pytest_param(self) -> Any:\n        \"\"\"\n        Convert the test vector to a tuple that can be used as a parameter in a\n        pytest test.\n        \"\"\"\n        return pytest.param(\n            self.modexp_input, self.modexp_expected, self.gas_old, self.gas_new, id=self.name\n        )\n\n\nclass VectorList(RootModel):\n    \"\"\"A list of test vectors for the ModExp gas cost increase tests.\"\"\"\n\n    root: List[Vector]\n\n\nVectorListAdapter = TypeAdapter(VectorList)\n\n\ndef vectors_from_file(filename: str) -> List:\n    \"\"\"Load test vectors from a file.\"\"\"\n    with open(\n        current_python_script_directory(\n            \"vector\",\n            filename,\n        ),\n        \"rb\",\n    ) as f:\n        return [v.to_pytest_param() for v in VectorListAdapter.validate_json(f.read()).root]\n"
  },
  {
    "path": "tests/osaka/eip7883_modexp_gas_increase/spec.py",
    "content": "\"\"\"Defines EIP-7883 specification constants and functions.\"\"\"\n\nfrom dataclasses import dataclass\n\nfrom ...byzantium.eip198_modexp_precompile.helpers import ModExpInput\n\n\n@dataclass(frozen=True)\nclass ReferenceSpec:\n    \"\"\"Defines the reference spec version and git path.\"\"\"\n\n    git_path: str\n    version: str\n\n\nref_spec_7883 = ReferenceSpec(\"EIPS/eip-7883.md\", \"13aa65810336d4f243d4563a828d5afe36035d23\")\n\n\ndef ceiling_division(a: int, b: int) -> int:\n    \"\"\"\n    Calculate the ceil without using floating point. Used by many of the EVM's\n    formulas.\n    \"\"\"\n    return -(a // -b)\n\n\n@dataclass(frozen=True)\nclass Spec:\n    \"\"\"Constants and helpers for the ModExp gas cost calculation.\"\"\"\n\n    MODEXP_ADDRESS = 0x05\n    MIN_GAS = 200\n\n    LARGE_BASE_MODULUS_MULTIPLIER = 1\n    MAX_LENGTH_THRESHOLD = 32\n    EXPONENT_BYTE_MULTIPLIER = 8\n    MAX_LENGTH_BYTES = 1024\n\n    WORD_SIZE = 8\n    EXPONENT_THRESHOLD = 32\n    GAS_DIVISOR = 3\n\n    # Arbitrary Test Constants\n    modexp_input = ModExpInput(\n        base=\"e8e77626586f73b955364c7b4bbf0bb7f7685ebd40e852b164633a4acbd3244c0001020304050607\",\n        exponent=\"01ffffff\",\n        modulus=\"f01681d2220bfea4bb888a5543db8c0916274ddb1ea93b144c042c01d8164c950001020304050607\",\n    )\n    modexp_expected = bytes.fromhex(\n        \"1abce71dc2205cce4eb6934397a88136f94641342e283cbcd30e929e85605c6718ed67f475192ffd\"\n    )\n    modexp_error = bytes()\n\n    @classmethod\n    def calculate_multiplication_complexity(cls, base_length: int, modulus_length: int) -> int:\n        \"\"\"Calculate the multiplication complexity of the ModExp precompile.\"\"\"\n        max_length = max(base_length, modulus_length)\n        words = ceiling_division(max_length, cls.WORD_SIZE)\n        if max_length <= cls.MAX_LENGTH_THRESHOLD:\n            return words**2\n        return cls.LARGE_BASE_MODULUS_MULTIPLIER * words**2\n\n    @classmethod\n    def calculate_iteration_count(cls, modexp_input: ModExpInput) -> int:\n        \"\"\"\n        Calculate the iteration count of the ModExp precompile. This handles\n        length mismatch cases by using declared lengths from the raw input and\n        only the first 32 bytes of exponent data for iteration calculation.\n        \"\"\"\n        _, exponent_length, _ = modexp_input.get_declared_lengths()\n        exponent_head = modexp_input.get_exponent_head()\n        if exponent_length <= cls.EXPONENT_THRESHOLD and exponent_head == 0:\n            iteration_count = 0\n        elif exponent_length <= cls.EXPONENT_THRESHOLD:\n            iteration_count = exponent_head.bit_length() - 1 if exponent_head > 0 else 0\n        else:\n            # For large exponents: length_part + bits from first 32 bytes\n            length_part = cls.EXPONENT_BYTE_MULTIPLIER * (exponent_length - 32)\n            bits_part = exponent_head.bit_length() - 1 if exponent_head > 0 else 0\n            iteration_count = length_part + bits_part\n        return max(iteration_count, 1)\n\n    @classmethod\n    def calculate_gas_cost(cls, modexp_input: ModExpInput) -> int:\n        \"\"\"\n        Calculate the ModExp gas cost according to EIP-2565 specification,\n        overridden by the constants within `Spec7883` when calculating for the\n        EIP-7883 specification.\n        \"\"\"\n        base_length, _, modulus_length = modexp_input.get_declared_lengths()\n        multiplication_complexity = cls.calculate_multiplication_complexity(\n            base_length, modulus_length\n        )\n        iteration_count = cls.calculate_iteration_count(modexp_input)\n        return max(cls.MIN_GAS, (multiplication_complexity * iteration_count // cls.GAS_DIVISOR))\n\n\n@dataclass(frozen=True)\nclass Spec7883(Spec):\n    \"\"\"\n    Constants and helpers for the ModExp gas cost increase EIP. These override\n    the original Spec class variables for EIP-7883.\n    \"\"\"\n\n    MODEXP_ADDRESS = 0x05\n    MIN_GAS = 500\n\n    LARGE_BASE_MODULUS_MULTIPLIER = 2\n    EXPONENT_BYTE_MULTIPLIER = 16\n    GAS_DIVISOR = 1  # Overrides the original Spec class GAS_DIVISOR\n\n    @classmethod\n    def calculate_multiplication_complexity(cls, base_length: int, modulus_length: int) -> int:\n        \"\"\"\n        Calculate the multiplication complexity of the ModExp precompile for\n        EIP-7883.\n        \"\"\"\n        max_length = max(base_length, modulus_length)\n        words = ceiling_division(max_length, cls.WORD_SIZE)\n        complexity = 16\n        if max_length > cls.MAX_LENGTH_THRESHOLD:\n            complexity = cls.LARGE_BASE_MODULUS_MULTIPLIER * words**2\n        return complexity\n"
  },
  {
    "path": "tests/osaka/eip7883_modexp_gas_increase/test_modexp_thresholds.py",
    "content": "\"\"\"\nEIP-7883 ModExp gas cost increase tests.\n\nTests for ModExp gas cost increase in\n[EIP-7883: ModExp Gas Cost Increase](https://eips.ethereum.org/EIPS/eip-7883).\n\"\"\"\n\nfrom typing import Dict, Generator\n\nimport pytest\n\nfrom ethereum_test_checklists import EIPChecklist\nfrom ethereum_test_forks import Fork, Osaka\nfrom ethereum_test_tools import (\n    Alloc,\n    Environment,\n    StateTestFiller,\n    Storage,\n    Transaction,\n    keccak256,\n)\nfrom ethereum_test_types.helpers import compute_create_address\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom ...byzantium.eip198_modexp_precompile.helpers import ModExpInput\nfrom .helpers import vectors_from_file\nfrom .spec import Spec, ref_spec_7883\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_7883.git_path\nREFERENCE_SPEC_VERSION = ref_spec_7883.version\n\n\n@pytest.mark.parametrize(\n    \"modexp_input,modexp_expected,gas_old,gas_new\",\n    vectors_from_file(\"vectors.json\"),\n    ids=lambda v: v.name,\n)\n@EIPChecklist.Precompile.Test.Inputs.Valid()\n@EIPChecklist.Precompile.Test.InputLengths.Dynamic.Valid()\n@EIPChecklist.GasCostChanges.Test.GasUpdatesMeasurement()\n@pytest.mark.valid_from(\"Berlin\")\n@pytest.mark.slow()\ndef test_vectors_from_eip(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    tx: Transaction,\n    post: Dict,\n) -> None:\n    \"\"\"Test ModExp gas cost using the test vectors from EIP-7883.\"\"\"\n    state_test(\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"modexp_input,modexp_expected,gas_old,gas_new\",\n    vectors_from_file(\"legacy.json\"),\n    ids=lambda v: v.name,\n)\n@EIPChecklist.Precompile.Test.Inputs.Invalid()\n@pytest.mark.valid_from(\"Berlin\")\ndef test_vectors_from_legacy_tests(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    tx: Transaction,\n    post: Dict,\n) -> None:\n    \"\"\"Test ModExp gas cost using the test vectors from legacy tests.\"\"\"\n    state_test(\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"modexp_input,\",\n    [\n        # These invalid inputs are from EIP-7823. Ref:\n        # https://github.com/ethereum/EIPs/blob/master/EIPS/eip-7823.md#analysis\n        pytest.param(\n            bytes.fromhex(\"9e5faafc\"),\n            id=\"invalid-case-1\",\n        ),\n        pytest.param(\n            bytes.fromhex(\"85474728\"),\n            id=\"invalid-case-2\",\n        ),\n        pytest.param(\n            bytes.fromhex(\"9e281a98\" + \"00\" * 54 + \"021e19e0c9bab2400000\"),\n            id=\"invalid-case-3\",\n        ),\n    ],\n)\n@pytest.mark.parametrize(\n    \"modexp_expected,call_succeeds\",\n    [\n        pytest.param(bytes(), False),\n    ],\n    ids=[\"\"],\n)\n@EIPChecklist.Precompile.Test.Inputs.AllZeros\n@pytest.mark.valid_from(\"Berlin\")\ndef test_modexp_invalid_inputs(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    tx: Transaction,\n    post: Dict,\n) -> None:\n    \"\"\"Test ModExp gas cost with invalid inputs.\"\"\"\n    state_test(\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"modexp_input,modexp_expected,call_succeeds\",\n    [\n        pytest.param(\n            ModExpInput(\n                base=\"FF\" * (Spec.MAX_LENGTH_BYTES + 1),\n                exponent=\"FF\",\n                modulus=\"FF\",\n            ),\n            Spec.modexp_error,\n            False,\n            id=\"base-too-long\",\n        ),\n        pytest.param(\n            ModExpInput(\n                base=\"FF\",\n                exponent=\"FF\" * (Spec.MAX_LENGTH_BYTES + 1),\n                modulus=\"FF\",\n            ),\n            Spec.modexp_error,\n            False,\n            id=\"exponent-too-long\",\n        ),\n        pytest.param(\n            ModExpInput(\n                base=\"FF\",\n                exponent=\"FF\",\n                modulus=\"FF\" * (Spec.MAX_LENGTH_BYTES + 1),\n            ),\n            Spec.modexp_error,\n            False,\n            id=\"modulus-too-long\",\n        ),\n        pytest.param(\n            ModExpInput(\n                base=\"FF\" * (Spec.MAX_LENGTH_BYTES + 1),\n                exponent=\"FF\",\n                modulus=\"FF\" * (Spec.MAX_LENGTH_BYTES + 1),\n            ),\n            Spec.modexp_error,\n            False,\n            id=\"base-modulus-too-long\",\n        ),\n    ],\n)\n@EIPChecklist.Precompile.Test.OutOfBounds.MaxPlusOne()\n@EIPChecklist.Precompile.Test.Inputs.Invalid.Corrupted()\n@EIPChecklist.Precompile.Test.Inputs.Invalid()\n@EIPChecklist.Precompile.Test.InputLengths.Dynamic.TooLong()\n@pytest.mark.valid_from(\"Osaka\")\ndef test_modexp_boundary_inputs(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    tx: Transaction,\n    post: Dict,\n) -> None:\n    \"\"\"Test ModExp boundary inputs.\"\"\"\n    state_test(\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"call_opcode\",\n    [\n        Op.CALL,\n        Op.STATICCALL,\n        Op.DELEGATECALL,\n        Op.CALLCODE,\n    ],\n)\n@pytest.mark.parametrize(\n    \"modexp_input,modexp_expected\",\n    [\n        pytest.param(Spec.modexp_input, Spec.modexp_expected, id=\"base-heavy\"),\n    ],\n)\n@EIPChecklist.Precompile.Test.CallContexts.Static()\n@EIPChecklist.Precompile.Test.CallContexts.Delegate()\n@EIPChecklist.Precompile.Test.CallContexts.Callcode()\n@EIPChecklist.Precompile.Test.CallContexts.Normal()\n@pytest.mark.valid_from(\"Berlin\")\ndef test_modexp_call_operations(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    tx: Transaction,\n    post: Dict,\n) -> None:\n    \"\"\"Test ModExp call related operations with EIP-7883.\"\"\"\n    state_test(\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"modexp_input,modexp_expected,precompile_gas_modifier,call_succeeds\",\n    [\n        pytest.param(\n            Spec.modexp_input,\n            Spec.modexp_expected,\n            1,\n            True,\n            id=\"extra_gas\",\n        ),\n        pytest.param(\n            Spec.modexp_input,\n            Spec.modexp_expected,\n            0,\n            True,\n            id=\"exact_gas\",\n        ),\n        pytest.param(\n            Spec.modexp_input,\n            Spec.modexp_error,\n            -1,\n            False,\n            id=\"insufficient_gas\",\n        ),\n        pytest.param(\n            Spec.modexp_input,\n            Spec.modexp_expected,\n            float(\"inf\"),\n            True,\n            id=\"excessive_gas\",\n        ),\n    ],\n)\n@EIPChecklist.Precompile.Test.GasUsage.Dynamic()\n@EIPChecklist.Precompile.Test.ExcessiveGasUsage()\n@pytest.mark.valid_from(\"Berlin\")\ndef test_modexp_gas_usage_contract_wrapper(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    tx: Transaction,\n    post: Dict,\n) -> None:\n    \"\"\"\n    Test ModExp gas cost with different gas modifiers using contract wrapper\n    calls.\n    \"\"\"\n    state_test(pre=pre, tx=tx, post=post)\n\n\n@pytest.mark.parametrize(\n    \"modexp_input,modexp_expected,precompile_gas_modifier,call_values,call_succeeds\",\n    [\n        pytest.param(\n            Spec.modexp_input,\n            Spec.modexp_expected,\n            1,\n            0,\n            True,\n            id=\"extra_gas\",\n        ),\n        pytest.param(\n            Spec.modexp_input,\n            Spec.modexp_expected,\n            0,\n            0,\n            True,\n            id=\"exact_gas\",\n        ),\n        pytest.param(\n            Spec.modexp_input,\n            Spec.modexp_expected,\n            0,\n            1000,\n            True,\n            id=\"extra_value\",\n        ),\n        pytest.param(\n            Spec.modexp_input,\n            Spec.modexp_error,\n            -1,\n            0,\n            False,\n            id=\"insufficient_gas\",\n        ),\n    ],\n)\n@EIPChecklist.Precompile.Test.CallContexts.TxEntry()\n@EIPChecklist.Precompile.Test.ValueTransfer.NoFee()\n@pytest.mark.valid_from(\"Berlin\")\ndef test_modexp_used_in_transaction_entry_points(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    tx: Transaction,\n    modexp_input: bytes,\n    tx_gas_limit: int,\n    call_values: int,\n) -> None:\n    \"\"\"\n    Test ModExp using in transaction entry points with different precompile gas\n    modifiers.\n    \"\"\"\n    tx = Transaction(\n        to=Spec.MODEXP_ADDRESS,\n        sender=pre.fund_eoa(),\n        data=bytes(modexp_input),\n        gas_limit=tx_gas_limit,\n        value=call_values,\n    )\n    state_test(pre=pre, tx=tx, post={})\n\n\n@pytest.mark.parametrize(\n    \"modexp_input,modexp_expected\",\n    [\n        pytest.param(\n            Spec.modexp_input,\n            Spec.modexp_expected,\n            id=\"valid_input\",\n        )\n    ],\n)\n@EIPChecklist.Precompile.Test.CallContexts.Initcode()\n@pytest.mark.valid_from(\"Berlin\")\ndef test_contract_creation_transaction(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n    modexp_input: bytes,\n    modexp_expected: bytes,\n) -> None:\n    \"\"\"Test the contract creation for the ModExp precompile.\"\"\"\n    sender = pre.fund_eoa()\n\n    storage = Storage()\n\n    contract_address = compute_create_address(address=sender, nonce=0)\n    contract_bytecode = (\n        Op.CODECOPY(0, Op.SUB(Op.CODESIZE, len(bytes(modexp_input))), len(bytes(modexp_input)))\n        + Op.CALL(\n            gas=1_000_000,\n            address=Spec.MODEXP_ADDRESS,\n            value=0,\n            args_offset=0,\n            args_size=len(bytes(modexp_input)),\n            ret_offset=0,\n            ret_size=len(bytes(modexp_expected)),\n        )\n        + Op.SSTORE(storage.store_next(True), Op.DUP1())\n        + Op.SSTORE(\n            storage.store_next(keccak256(bytes(modexp_expected))), Op.SHA3(0, Op.RETURNDATASIZE())\n        )\n        + Op.SSTORE(storage.store_next(len(bytes(modexp_expected))), Op.RETURNDATASIZE())\n        + Op.STOP\n    )\n\n    tx = Transaction(\n        sender=sender,\n        gas_limit=1_000_000,\n        to=None,\n        value=0,\n        data=contract_bytecode + bytes(modexp_input),\n    )\n\n    post = {\n        contract_address: {\n            \"storage\": storage,\n        }\n    }\n\n    state_test(env=Environment(), pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.parametrize(\n    \"modexp_input,modexp_expected\",\n    [\n        pytest.param(\n            Spec.modexp_input,\n            Spec.modexp_expected,\n            id=\"valid_input\",\n        ),\n    ],\n)\n@pytest.mark.parametrize(\"opcode\", [Op.CREATE, Op.CREATE2])\n@EIPChecklist.Precompile.Test.CallContexts.Initcode.CREATE()\n@pytest.mark.valid_from(\"Berlin\")\ndef test_contract_initcode(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n    modexp_input: bytes,\n    modexp_expected: bytes,\n    opcode: Op,\n) -> None:\n    \"\"\"Test ModExp behavior from contract creation.\"\"\"\n    sender = pre.fund_eoa()\n\n    storage = Storage()\n\n    call_modexp_bytecode = (\n        Op.CODECOPY(0, Op.SUB(Op.CODESIZE, len(bytes(modexp_input))), len(bytes(modexp_input)))\n        + Op.CALL(\n            gas=200_000,\n            address=Spec.MODEXP_ADDRESS,\n            value=0,\n            args_offset=0,\n            args_size=len(bytes(modexp_input)),\n            ret_offset=0,\n            ret_size=len(bytes(modexp_expected)),\n        )\n        + Op.SSTORE(storage.store_next(True), Op.DUP1())\n        + Op.SSTORE(\n            storage.store_next(keccak256(bytes(modexp_expected))), Op.SHA3(0, Op.RETURNDATASIZE())\n        )\n        + Op.SSTORE(storage.store_next(len(bytes(modexp_expected))), Op.RETURNDATASIZE())\n        + Op.STOP\n    )\n    full_initcode = call_modexp_bytecode + bytes(modexp_input)\n    total_bytecode_length = len(call_modexp_bytecode) + len(bytes(modexp_input))\n\n    create_contract = (\n        Op.CALLDATACOPY(offset=0, size=total_bytecode_length)\n        + opcode(offset=0, size=total_bytecode_length)\n        + Op.STOP\n    )\n\n    factory_contract_address = pre.deploy_contract(code=create_contract)\n    contract_address = compute_create_address(\n        address=factory_contract_address, nonce=1, initcode=full_initcode, opcode=opcode\n    )\n\n    tx = Transaction(\n        sender=sender,\n        gas_limit=200_000,\n        to=factory_contract_address,\n        value=0,\n        data=call_modexp_bytecode + bytes(modexp_input),\n    )\n\n    post = {\n        contract_address: {\n            \"storage\": storage,\n        }\n    }\n\n    state_test(env=Environment(), pre=pre, post=post, tx=tx)\n\n\ndef create_modexp_variable_gas_test_cases() -> Generator:\n    \"\"\"\n    Create test cases for ModExp variable gas cost testing.\n\n    Returns: List of pytest.param objects for the test cases\n    \"\"\"\n    # Test case definitions: (base, exponent, modulus, expected_result,\n    # gas_usage, test_id)\n    test_cases = [\n        (\"\", \"\", \"\", \"\", 500, \"Z0\"),\n        (\"01\" * 32, \"00\" * 32, \"\", \"\", 500, \"Z1\"),\n        (\"01\" * 1024, \"00\" * 32, \"\", \"\", 32768, \"Z2\"),\n        (\"01\" * 32, \"00\" * 1024, \"\", \"\", 253952, \"Z3\"),\n        (\"01\" * 32, \"00\" * 1023 + \"01\", \"\", \"\", 253952, \"Z4\"),\n        (\"\", \"\", \"01\" * 32, \"00\" * 31 + \"01\", 500, \"Z5\"),\n        (\"\", \"01\" * 32, \"01\" * 32, \"00\" * 32, 3968, \"Z6\"),\n        (\"\", \"00\" * 31 + \"01\", \"01\" * 1024, \"00\" * 1024, 32768, \"Z7\"),\n        (\"01\" * 16, \"00\" * 16, \"02\" * 16, \"00\" * 15 + \"01\", 500, \"S0\"),\n        (\"01\" * 16, \"00\" * 15 + \"03\", \"02\" * 16, \"01\" * 16, 500, \"S1\"),\n        (\"01\" * 32, \"FF\" * 32, \"02\" * 32, \"01\" * 32, 4080, \"S2\"),\n        (\"01\" * 16, \"00\" * 40, \"02\" * 16, \"00\" * 15 + \"01\", 2048, \"S3\"),\n        (\"01\" * 16, \"00\" * 39 + \"01\", \"02\" * 16, \"01\" * 16, 2048, \"S4\"),\n        (\"01\" * 24, \"00\", \"02\" * 8, \"00\" * 7 + \"01\", 500, \"S5\"),\n        (\"01\" * 8, \"01\", \"02\" * 24, \"00\" * 16 + \"01\" * 8, 500, \"S6\"),\n        (\"01\" * 40, \"00\" * 16, \"02\" * 40, \"00\" * 39 + \"01\", 500, \"L0\"),\n        (\"01\" * 40, \"FF\" * 32, \"02\" * 40, \"01\" * 40, 12750, \"L1\"),\n        (\"01\" * 40, \"00\" * 40, \"02\" * 40, \"00\" * 39 + \"01\", 6400, \"L2\"),\n        (\"01\" * 40, \"00\" * 39 + \"01\", \"02\" * 40, \"01\" * 40, 6400, \"L3\"),\n        (\"01\" * 48, \"01\", \"02\" * 16, \"01\" * 16, 500, \"L4\"),\n        (\"01\" * 16, \"00\" * 40, \"02\" * 48, \"00\" * 47 + \"01\", 9216, \"L5\"),\n        # Critical 32-byte boundary cases\n        (\"01\" * 31, \"01\", \"02\" * 33, \"00\" * 2 + \"01\" * 31, 500, \"B1\"),\n        (\"01\" * 33, \"01\", \"02\" * 31, \"00\" * 29 + \"01\" * 2, 500, \"B2\"),\n        (\"01\" * 33, \"01\", \"02\" * 33, \"01\" * 33, 500, \"B4\"),\n        # Zero value edge cases\n        (\"00\" * 32, \"00\" * 32, \"01\" * 32, \"00\" * 31 + \"01\", 500, \"Z8\"),\n        (\"01\" * 32, \"00\" * 32, \"00\" * 32, \"00\" * 32, 500, \"Z9\"),\n        (\"00\" * 32, \"01\" * 32, \"02\" * 32, \"00\" * 32, 3968, \"Z10\"),\n        (\"00\" * 32, \"00\" * 33, \"01\" * 32, \"00\" * 31 + \"01\", 500, \"Z11\"),\n        (\"00\" * 32, \"00\" * 1024, \"01\" * 32, \"00\" * 31 + \"01\", 253952, \"Z12\"),\n        (\"00\" * 1024, \"00\" * 32, \"01\" * 32, \"00\" * 31 + \"01\", 32768, \"Z13\"),\n        (\"01\" * 32, \"00\" * 1024, \"00\" * 32, \"00\" * 32, 253952, \"Z14\"),\n        (\"01\" * 32, \"00\" * 31 + \"01\", \"00\" * 1024, \"00\" * 1024, 32768, \"Z15\"),\n        # Maximum value stress tests\n        (\"FF\" * 64, \"FF\" * 64, \"FF\" * 64, \"00\" * 64, 98176, \"M1\"),\n        (\"FF\" * 32, \"01\", \"FF\" * 32, \"00\" * 32, 500, \"M2\"),\n        (\"01\", \"FF\" * 64, \"FF\" * 64, \"00\" * 63 + \"01\", 98176, \"M3\"),\n        # Tiny maximum values\n        (\"FF\", \"FE\", \"FD\", \"47\", 500, \"T2\"),\n        # Bit pattern cases\n        (\"01\" * 32, \"80\" * 32, \"02\" * 32, \"01\" * 32, 4080, \"P2\"),\n        (\"01\" * 33, \"00\" * 31 + \"80\" + \"00\", \"02\" * 33, \"01\" * 33, 1150, \"P3\"),\n        # Asymmetric length cases\n        (\"01\", \"00\" * 64, \"02\" * 64, \"00\" * 63 + \"01\", 65536, \"A1\"),\n        (\"01\" * 64, \"01\", \"02\", \"01\", 500, \"A2\"),\n        (\"01\" * 64, \"00\" * 64, \"02\", \"01\", 65536, \"A3\"),\n        # Word boundary case\n        (\"01\" * 8, \"01\", \"02\" * 8, \"0101010101010101\", 500, \"W2\"),\n        # Exponent edge cases\n        (\"01\" * 16, \"00\" * 32 + \"01\", \"02\" * 16, \"01\" * 16, 500, \"E1\"),\n        (\"01\" * 16, \"80\" + \"00\" * 31, \"02\" * 16, \"01\" * 16, 4080, \"E2\"),\n        (\"01\" * 16, \"00\" * 31 + \"80\", \"02\" * 16, \"01\" * 16, 500, \"E3\"),\n        (\"01\" * 16, \"7F\" + \"FF\" * 31, \"02\" * 16, \"01\" * 16, 4064, \"E4\"),\n        # Implementation coverage cases\n        # IC1: Bit shift vs multiplication at 33-byte boundary\n        (\"FF\" * 33, \"01\", \"FF\" * 33, \"00\" * 33, 500, \"IC1\"),\n        # IC3: Ceiling division at 7 bytes\n        (\"01\" * 7, \"01\", \"02\" * 7, \"01\" * 7, 500, \"IC3\"),\n        # IC4: Ceiling division at 9 bytes\n        (\"01\" * 9, \"01\", \"02\" * 9, \"01\" * 9, 500, \"IC4\"),\n        # IC5: Bit counting in middle of exponent\n        (\"01\", \"00\" * 15 + \"80\" + \"00\" * 16, \"02\", \"01\", 2160, \"IC5\"),\n        # IC6: Native library even byte optimization\n        (\"01\" * 31 + \"00\", \"01\", \"01\" * 31 + \"00\", \"00\" * 32, 500, \"IC6\"),\n        # IC7: Vector optimization 128-bit boundary\n        (\"00\" * 15 + \"01\" * 17, \"01\", \"00\" * 15 + \"01\" * 17, \"00\" * 32, 500, \"IC7\"),\n        # IC9: Zero modulus with large inputs\n        (\"FF\" * 32, \"FF\" * 32, \"\", \"\", None, \"IC9\"),  # N/A case\n        # IC10: Power-of-2 boundary with high bit\n        (\"01\" * 32, \"80\" + \"00\" * 31, \"02\" * 32, \"01\" * 32, 4080, \"IC10\"),\n    ]\n\n    # Gas calculation parameters:\n    #\n    # Please refer to EIP-7883 for details of each function in the gas\n    # calculation.\n    # Link: https://eips.ethereum.org/EIPS/eip-7883\n    #\n    # - calculate_multiplication_complexity:\n    #   - Comp: if max_length <= 32 bytes, it is Small (S), otherwise it is\n    #       Large (L)\n    #   - Rel (Length Relation): base < modulus (<), base = modulus (=),\n    #       base > modulus (>)\n    #\n    # - calculate_iteration_count\n    #   - Iter (Iteration Case):\n    #     - A: exp≤32 and exp=0\n    #     - B: exp≤32 and exp≠0\n    #     - C: exp>32 and low256=0\n    #     - D: exp>32 and low256≠0\n    #\n    # - calculate_gas_cost\n    #   - Clamp: True if raw gas < 500 (clamped to 500), False if raw gas ≥ 500\n    #       (no clamping)\n\n    \"\"\"\n    Test case coverage table:\n\n    ┌─────┬──────┬─────┬──────┬───────┬─────────┬───────────────────────────────────────────────┐\n    │ ID  │ Comp │ Rel │ Iter │ Clamp │   Gas   │ Description                                   │\n    ├─────┼──────┼─────┼──────┼───────┼─────────┼───────────────────────────────────────────────┤\n    │ Z0  │  -   │  -  │  -   │  -    │   500   │ Zero case – empty inputs                      │\n    │ Z1  │  S   │  -  │  A   │ True  │   500   │ Non-zero base, zero exp, empty modulus        │\n    │ Z2  │  L   │  -  │  A   │ False │ 32768   │ Large base (1024B), zero exp, empty modulus   │\n    │ Z3  │  S   │  -  │  C   │ False |253952   │ Base, large zero exp (1024B), empty modulus   │\n    │ Z4  │  S   │  -  │  D   │ False │253952   │ Base, large exp (last byte=1), empty modulus  │\n    │ Z5  │  S   │  <  │  A   │ True  │   500   │ Empty base/exp, non-zero modulus only         │\n    │ Z6  │  S   │  <  │  B   │ False │  3968   │ Empty base, non-zero exp and modulus          │\n    │ Z7  │  L   │  <  │  B   │ False │ 32768   │ Empty base, small exp, large modulus          │\n    │ S0  │  S   │  =  │  A   │ True  │   500   │ Small, equal, zero exp, clamped               │\n    │ S1  │  S   │  =  │  B   │ True  │   500   │ Small, equal, small exp, clamped              │\n    │ S2  │  S   │  =  │  B   │ False │  4080   │ Small, equal, large exp, unclamped            │\n    │ S3  │  S   │  =  │  C   │ False │  2048   │ Small, equal, large exp + zero low256         │\n    │ S4  │  S   │  =  │  D   │ False │  2048   │ Small, equal, large exp + non-zero low256     │\n    │ S5  │  S   │  >  │  A   │ True  │   500   │ Small, base > mod, zero exp, clamped          │\n    │ S6  │  S   │  <  │  B   │ True  │   500   │ Small, base < mod, small exp, clamped         │\n    │ L0  │  L   │  =  │  A   │ True  │   500   │ Large, equal, zero exp, clamped               │\n    │ L1  │  L   │  =  │  B   │ False │ 12750   │ Large, equal, large exp, unclamped            │\n    │ L2  │  L   │  =  │  C   │ False │  6400   │ Large, equal, large exp + zero low256         │\n    │ L3  │  L   │  =  │  D   │ False │  6400   │ Large, equal, large exp + non-zero low256     │\n    │ L4  │  L   │  >  │  B   │ True  │   500   │ Large, base > mod, small exp, clamped         │\n    │ L5  │  L   │  <  │  C   │ False │  9216   │ Large, base < mod, large exp + zero low256    │\n    │ B1  │  L   │  <  │  B   │ True  │   500   │ Cross 32-byte boundary (31/33)                │\n    │ B2  │  L   │  >  │  B   │ True  │   500   │ Cross 32-byte boundary (33/31)                │\n    │ B4  │  L   │  =  │  B   │ True  │   500   │ Just over 32-byte boundary                    │\n    │ Z8  │  S   │  =  │  A   │ True  │   500   │ All zeros except modulus                      │\n    │ Z9  │  S   │  =  │  A   │ True  │   500   │ Zero modulus special case                     │\n    │ Z10 │  S   │  =  │  B   │ False │  3968   │ Zero base, large exponent                     │\n    │ Z11 │  S   │  =  │  C   │ True  │   500   │ Zero base, 33B zero exp, non-zero modulus     │\n    │ Z12 │  S   │  =  │  C   │ False |253952   │ Zero base, large zero exp, non-zero modulus   │\n    │ Z13 │  L   │  >  │  A   │ False │ 32768   │ Large zero base, zero exp, non-zero modulus   │\n    │ Z14 │  S   │  =  │  C   │ False |253952   │ Base, large zero exp, zero modulus            │\n    │ Z15 │  L   │  <  │  B   │ False │ 32768   │ Base, small exp, large zero modulus           │\n    │ Z16 │  L   │  <  │  C   │ False │520060928│ Zero base, zero exp, large modulus (gas cap)  |\n    │ M1  │  L   │  =  │  D   │ False │ 98176   │ Maximum values stress test                    │\n    │ M2  │  S   │  =  │  B   │ True  │   500   │ Max base/mod, small exponent                  │\n    │ M3  │  L   │  <  │  D   │ False │ 98176   │ Small base, max exponent/mod                  │\n    │ T2  │  S   │  =  │  B   │ True  │   500   │ Tiny maximum values                           │\n    │ P2  │  S   │  =  │  B   │ False │  4080   │ High bit in exponent                          │\n    │ P3  │  L   │  =  │  D   │ False │  1150   │ Specific bit pattern in large exponent        │\n    │ A1  │  L   │  <  │  C   │ False │ 65536   │ Asymmetric: tiny base, large exp/mod          │\n    │ A2  │  L   │  >  │  B   │ True  │   500   │ Asymmetric: large base, tiny exp/mod          │\n    │ A3  │  L   │  >  │  C   │ False │ 65536   │ Asymmetric: large base/exp, tiny modulus      │\n    │ W2  │  S   │  =  │  B   │ True  │   500   │ Exactly 8-byte words                          │\n    │ E1  │  S   │  =  │  D   │ True  │   500   │ Exponent exactly 33 bytes                     │\n    │ E2  │  S   │  =  │  B   │ False │  4080   │ High bit in exponent first byte               │\n    │ E3  │  S   │  =  │  B   │ True  │   500   │ High bit in exponent last byte                │\n    │ E4  │  S   │  =  │  B   │ False │  4064   │ Maximum 32-byte exponent                      │\n    │ IC1 │  L   │  =  │  B   │ True  │   500   │ Bit shift vs multiplication @ 33 bytes        │\n    │ IC3 │  S   │  =  │  B   │ True  │   500   │ Ceiling division at 7 bytes                   │\n    │ IC4 │  S   │  =  │  B   │ True  │   500   │ Ceiling division at 9 bytes                   │\n    │ IC5 │  S   │  =  │  B   │ False │  2160   │ Bit counting in middle of exponent            │\n    │ IC6 │  L   │  =  │  B   │ True  │   500   │ Native library even byte optimization         │\n    │ IC7 │  L   │  =  │  B   │ True  │   500   │ Vector optimization 128-bit boundary          │\n    │ IC9 │  S   │  =  │  B   │  N/A  │   N/A   │ Zero modulus handling                         │\n    │ IC10│  S   │  =  │  B   │ False │  4080   │ Power-of-2 boundary with high bit             │\n    └─────┴──────┴─────┴──────┴───────┴─────────┴───────────────────────────────────────────────┘\n    \"\"\"  # noqa: W505\n    for base, exponent, modulus, expected_result, gas_usage, test_id in test_cases:\n        yield pytest.param(\n            ModExpInput(base=base, exponent=exponent, modulus=modulus),\n            bytes.fromhex(expected_result),\n            gas_usage,\n            id=test_id,\n        )\n\n\n@pytest.mark.parametrize(\n    \"modexp_input,modexp_expected,gas_usage\",\n    create_modexp_variable_gas_test_cases(),\n)\n@EIPChecklist.Precompile.Test.InputLengths.Zero()\n@EIPChecklist.GasCostChanges.Test.GasUpdatesMeasurement()\n@pytest.mark.valid_from(\"Berlin\")\ndef test_modexp_variable_gas_cost(\n    state_test: StateTestFiller,\n    precompile_gas: int,\n    gas_usage: int,\n    pre: Alloc,\n    tx: Transaction,\n    fork: Fork,\n    post: Dict,\n) -> None:\n    \"\"\"Test ModExp variable gas cost.\"\"\"\n    if fork >= Osaka:  # Check that gas used defined in table is accurate\n        assert (gas_usage is None) or (precompile_gas >= gas_usage), \"inconsistent gas usage\"\n    state_test(pre=pre, tx=tx, post=post)\n\n\n@pytest.mark.parametrize(\n    \"modexp_input,modexp_expected,expected_tx_cap_fail\",\n    [\n        pytest.param(\n            ModExpInput(base=\"00\" * 32, exponent=\"00\" * 1024, modulus=\"01\" * 1024),\n            bytes.fromhex(\"00\" * 1023 + \"01\"),\n            True,\n            id=\"Z16-gas-cap-test\",\n        ),\n    ],\n)\n@pytest.mark.valid_from(\"Berlin\")\ndef test_modexp_variable_gas_cost_exceed_tx_gas_cap(\n    state_test: StateTestFiller, pre: Alloc, tx: Transaction, post: Dict\n) -> None:\n    \"\"\"\n    Test ModExp variable gas cost. Inputs with an expected gas cost over the\n    EIP-7825 tx gas cap.\n\n    Test case coverage table (gas cap):\n    ┌─────┬──────┬─────┬──────┬───────┬─────────┬───────────────────────────────────────────────┐\n    │ ID  │ Comp │ Rel │ Iter │ Clamp │   Gas   │ Description                                   │\n    ├─────┼──────┼─────┼──────┼───────┼─────────┼───────────────────────────────────────────────┤\n    │ Z16 │  L   │  <  │  C   │ False │520060928│ Zero base, zero exp, large modulus (gas cap)  |\n    └─────┴──────┴─────┴──────┴───────┴─────────┴───────────────────────────────────────────────┘\n    \"\"\"  # noqa: W505\n    state_test(pre=pre, tx=tx, post=post)\n"
  },
  {
    "path": "tests/osaka/eip7883_modexp_gas_increase/test_modexp_thresholds_transition.py",
    "content": "\"\"\"\nTest ModExp gas cost transition from EIP-7883 before & after the Osaka fork.\n\"\"\"\n\nimport pytest\n\nfrom ethereum_test_checklists import EIPChecklist\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import Account, Alloc, Block, BlockchainTestFiller, Transaction, keccak256\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom ...byzantium.eip198_modexp_precompile.helpers import ModExpInput\nfrom .spec import Spec, ref_spec_7883\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_7883.git_path\nREFERENCE_SPEC_VERSION = ref_spec_7883.version\n\npytestmark = pytest.mark.valid_at_transition_to(\"Osaka\", subsequent_forks=True)\n\n\n@pytest.mark.parametrize(\n    \"modexp_input,modexp_expected,gas_old,gas_new\",\n    [\n        pytest.param(Spec.modexp_input, Spec.modexp_expected, 200, 1200),\n    ],\n    ids=[\"\"],\n)\n@EIPChecklist.GasCostChanges.Test.ForkTransition.Before()\n@EIPChecklist.GasCostChanges.Test.ForkTransition.After()\n@EIPChecklist.Precompile.Test.ForkTransition.After.Warm()\n@EIPChecklist.GasCostChanges.Test.ForkTransition.Before()\n@EIPChecklist.GasCostChanges.Test.ForkTransition.After()\ndef test_modexp_fork_transition(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    fork: Fork,\n    gas_old: int,\n    gas_new: int,\n    tx_gas_limit: int,\n    modexp_input: ModExpInput,\n    modexp_expected: bytes,\n) -> None:\n    \"\"\"\n    Test ModExp gas cost transition from EIP-7883 before and after the Osaka\n    hard fork.\n    \"\"\"\n    call_code = Op.CALL(\n        address=Spec.MODEXP_ADDRESS,\n        args_size=Op.CALLDATASIZE,\n    )\n\n    gas_costs = fork.gas_costs()\n    extra_gas = (\n        gas_costs.G_WARM_ACCOUNT_ACCESS\n        + (gas_costs.G_VERY_LOW * (len(Op.CALL.kwargs) - 2))\n        + (gas_costs.G_BASE * 3)\n    )\n    code = (\n        Op.CALLDATACOPY(dest_offset=0, offset=0, size=Op.CALLDATASIZE)\n        + Op.GAS  # [gas_start]\n        + call_code  # [gas_start, call_result]\n        + Op.GAS  # [gas_start, call_result, gas_end]\n        + Op.SWAP1  # [gas_start, gas_end, call_result]\n        + Op.POP  # [gas_start, gas_end]\n        + Op.PUSH2[extra_gas]  # [gas_start, gas_end, extra_gas]\n        + Op.ADD  # [gas_start, gas_end + extra_gas]\n        + Op.SWAP1  # [gas_end + extra_gas, gas_start]\n        + Op.SUB  # [gas_start - (gas_end + extra_gas)]\n        + Op.TIMESTAMP  # [gas_start - (gas_end + extra_gas), TIMESTAMP]\n        + Op.SSTORE  # []\n    )\n\n    # Verification the precompile call result\n    code += Op.RETURNDATACOPY(dest_offset=0, offset=0, size=Op.RETURNDATASIZE()) + Op.SSTORE(\n        Op.AND(Op.TIMESTAMP, 0xFF),\n        Op.SHA3(0, Op.RETURNDATASIZE()),\n    )\n\n    senders = [pre.fund_eoa() for _ in range(3)]\n    contracts = [pre.deploy_contract(code) for _ in range(3)]\n    timestamps = [14_999, 15_000, 15_001]\n    gas_values = [gas_old, gas_new, gas_new]\n\n    blocks = [\n        Block(\n            timestamp=ts,\n            txs=[\n                Transaction(\n                    to=contract,\n                    data=modexp_input,\n                    sender=sender,\n                    gas_limit=tx_gas_limit,\n                )\n            ],\n        )\n        for ts, contract, sender in zip(timestamps, contracts, senders, strict=False)\n    ]\n\n    post = {\n        contract: Account(storage={ts: gas, ts & 0xFF: keccak256(bytes(modexp_expected))})\n        for contract, ts, gas in zip(contracts, timestamps, gas_values, strict=False)\n    }\n\n    blockchain_test(\n        pre=pre,\n        blocks=blocks,\n        post=post,\n    )\n"
  },
  {
    "path": "tests/osaka/eip7883_modexp_gas_increase/vector/legacy.json",
    "content": "[\n    {\n        \"Input\": \"00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002003fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2efffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f\",\n        \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n        \"Name\": \"legacy-case-0\"\n    },\n    {\n        \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2efffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f\",\n        \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000\",\n        \"Name\": \"legacy-case-1\"\n    },\n    {\n        \"Input\": \"00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002003ffff800000000000000000000000000000000000000000000000000000000000000007\",\n        \"Expected\": \"3b01b01ac41f2d6e917c6d6a221ce793802469026d9ab7578fa2e79e4da6aaab\",\n        \"Name\": \"legacy-case-3\"\n    },\n    {\n        \"Input\": \"00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002003ffff80\",\n        \"Expected\": \"3b01b01ac41f2d6e917c6d6a221ce793802469026d9ab7578fa2e79e4da6aaab\",\n        \"Name\": \"legacy-case-4\"\n    },\n    {\n        \"Input\": \"00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002003\",\n        \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000\",\n        \"Name\": \"legacy-case-5\"\n    },\n    {\n        \"Input\": \"000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020038000000000000000000000000000000000000000000000000000000000000000\",\n        \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n        \"Name\": \"legacy-case-6\"\n    },\n    {\n        \"Input\": \"000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000080\",\n        \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n        \"Name\": \"legacy-case-7\"\n    },\n    {\n        \"Input\": \"000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000\",\n        \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000\",\n        \"Name\": \"legacy-case-8\"\n    },\n    {\n        \"Input\": \"0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000101\",\n        \"Expected\": \"\",\n        \"Name\": \"legacy-case-9\"\n    },\n    {\n        \"Input\": \"000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000304\",\n        \"Expected\": \"00\",\n        \"Name\": \"legacy-case-10\"\n    },\n    {\n        \"Input\": \"000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001020004\",\n        \"Expected\": \"01\",\n        \"Name\": \"legacy-case-11\"\n    },\n    {\n        \"Input\": \"000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001020300\",\n        \"Expected\": \"00\",\n        \"Name\": \"legacy-case-12\"\n    },\n    {\n        \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010304\",\n        \"Expected\": \"00\",\n        \"Name\": \"legacy-case-13\"\n    },\n    {\n        \"Input\": \"0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010204\",\n        \"Expected\": \"01\",\n        \"Name\": \"legacy-case-14\"\n    },\n    {\n        \"Input\": \"0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000203\",\n        \"Expected\": \"\",\n        \"Name\": \"legacy-case-15\"\n    },\n    {\n        \"Input\": \"00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000202030006\",\n        \"Expected\": \"0002\",\n        \"Name\": \"legacy-case-16\"\n    },\n    {\n        \"Input\": \"000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001020306\",\n        \"Expected\": \"02\",\n        \"Name\": \"legacy-case-17\"\n    },\n    {\n        \"Input\": \"000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002020300\",\n        \"Expected\": \"0000\",\n        \"Name\": \"legacy-case-18\"\n    },\n    {\n        \"Input\": \"00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000202030000\",\n        \"Expected\": \"0000\",\n        \"Name\": \"legacy-case-19\"\n    },\n    {\n        \"Input\": \"0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020203\",\n        \"Expected\": \"0000\",\n        \"Name\": \"legacy-case-20\"\n    },\n    {\n        \"Input\": \"000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002023003\",\n        \"Expected\": \"0000\",\n        \"Name\": \"legacy-case-21\"\n    },\n    {\n        \"Input\": \"0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020230\",\n        \"Expected\": \"0000\",\n        \"Name\": \"legacy-case-22\"\n    },\n    {\n        \"Input\": \"00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000202\",\n        \"Expected\": \"0000\",\n        \"Name\": \"legacy-case-23\"\n    },\n    {\n        \"Input\": \"0x000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002\",\n        \"Expected\": \"0000\",\n        \"Name\": \"legacy-case-24\"\n    },\n    {\n        \"Input\": \"000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001001001010010\",\n        \"Expected\": \"01\",\n        \"Name\": \"legacy-case-25\"\n    },\n    {\n        \"Input\": \"000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000064\",\n        \"Expected\": \"01\",\n        \"Name\": \"legacy-case-26\"\n    },\n    {\n        \"Input\": \"0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000010100000000000000000000000000000000000000000000000000000000000000020200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030006\",\n        \"Expected\": \"0002\",\n        \"Name\": \"legacy-case-27\"\n    },\n    {\n        \"Input\": \"000000000000000000000000000000000000000000000000000000000000002100000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010035ee4e488f45e64d2f07becd54646357381d32f30b74c299a8c25d5202c04938ef6c4764a04f10fc908b78c4486886000f6d290251a79681a83b950c7e5c37351\",\n        \"Expected\": \"00000000000000000000000000000001\",\n        \"Name\": \"legacy-case-31\"\n    },\n    {\n        \"Input\": \"0000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000cd935b43e42204fcbfb734a6e27735e8e90204fcc1fd2727bb040f9eecb\",\n        \"Expected\": \"000000000000000000000001\",\n        \"Name\": \"legacy-case-32\"\n    },\n    {\n        \"Input\": \"0000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000060846813a8d2d451387340fa0597c6545ae63\",\n        \"Expected\": \"000000000001\",\n        \"Name\": \"legacy-case-33\"\n    },\n    {\n        \"Input\": \"0000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000d000000000000000000000000000000000000000000000000000000000000000d02534f82b1013f20d9c7d18d62cd95674d2e013f20d9c7d18d62cd95674d2f\",\n        \"Expected\": \"00000000000000000000000001\",\n        \"Name\": \"legacy-case-34\"\n    },\n    {\n        \"Input\": \"0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000120785e45de3d6be050ba3c4d33ff0bb2d010ace3b1dfe9c49f4c7a8075102fa19a86c010ace3b1dfe9c49f4c7a8075102fa19a86d\",\n        \"Expected\": \"000000000000000000000000000000000001\",\n        \"Name\": \"legacy-case-35\"\n    }\n]"
  },
  {
    "path": "tests/osaka/eip7883_modexp_gas_increase/vector/vectors.json",
    "content": "[\n    {\n        \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000002100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002\",\n        \"Expected\": \"000000000000000000000000000000000000000000000000000000000000000001\",\n        \"Name\": \"geth-fail-length\",\n        \"GasOld\": 200,\n        \"GasNew\": 1600\n    },\n    {\n        \"Input\": \"000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040e09ad9675465c53a109fac66a445c91b292d2bb2c5268addb30cd82f80fcb0033ff97c80a5fc6f39193ae969c6ede6710a6b7ac27078a06d90ef1c72e5c85fb502fc9e1f6beb81516545975218075ec2af118cd8798df6e08a147c60fd6095ac2bb02c2908cf4dd7c81f11c289e4bce98f3553768f392a80ce22bf5c4f4a248c6b\",\n        \"Expected\": \"60008f1614cc01dcfb6bfb09c625cf90b47d4468db81b5f8b7a39d42f332eab9b2da8f2d95311648a8f243f4bb13cfb3d8f7f2a3c014122ebb3ed41b02783adc\",\n        \"Name\": \"nagydani-1-square\",\n        \"GasOld\": 200,\n        \"GasNew\": 500\n    },\n    {\n        \"Input\": \"000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040e09ad9675465c53a109fac66a445c91b292d2bb2c5268addb30cd82f80fcb0033ff97c80a5fc6f39193ae969c6ede6710a6b7ac27078a06d90ef1c72e5c85fb503fc9e1f6beb81516545975218075ec2af118cd8798df6e08a147c60fd6095ac2bb02c2908cf4dd7c81f11c289e4bce98f3553768f392a80ce22bf5c4f4a248c6b\",\n        \"Expected\": \"4834a46ba565db27903b1c720c9d593e84e4cbd6ad2e64b31885d944f68cd801f92225a8961c952ddf2797fa4701b330c85c4b363798100b921a1a22a46a7fec\",\n        \"Name\": \"nagydani-1-qube\",\n        \"GasOld\": 200,\n        \"GasNew\": 500\n    },\n    {\n        \"Input\": \"000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000040e09ad9675465c53a109fac66a445c91b292d2bb2c5268addb30cd82f80fcb0033ff97c80a5fc6f39193ae969c6ede6710a6b7ac27078a06d90ef1c72e5c85fb5010001fc9e1f6beb81516545975218075ec2af118cd8798df6e08a147c60fd6095ac2bb02c2908cf4dd7c81f11c289e4bce98f3553768f392a80ce22bf5c4f4a248c6b\",\n        \"Expected\": \"c36d804180c35d4426b57b50c5bfcca5c01856d104564cd513b461d3c8b8409128a5573e416d0ebe38f5f736766d9dc27143e4da981dfa4d67f7dc474cbee6d2\",\n        \"Name\": \"nagydani-1-pow0x10001\",\n        \"GasOld\": 341,\n        \"GasNew\": 2048\n    },\n    {\n        \"Input\": \"000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080cad7d991a00047dd54d3399b6b0b937c718abddef7917c75b6681f40cc15e2be0003657d8d4c34167b2f0bbbca0ccaa407c2a6a07d50f1517a8f22979ce12a81dcaf707cc0cebfc0ce2ee84ee7f77c38b9281b9822a8d3de62784c089c9b18dcb9a2a5eecbede90ea788a862a9ddd9d609c2c52972d63e289e28f6a590ffbf5102e6d893b80aeed5e6e9ce9afa8a5d5675c93a32ac05554cb20e9951b2c140e3ef4e433068cf0fb73bc9f33af1853f64aa27a0028cbf570d7ac9048eae5dc7b28c87c31e5810f1e7fa2cda6adf9f1076dbc1ec1238560071e7efc4e9565c49be9e7656951985860a558a754594115830bcdb421f741408346dd5997bb01c287087\",\n        \"Expected\": \"981dd99c3b113fae3e3eaa9435c0dc96779a23c12a53d1084b4f67b0b053a27560f627b873e3f16ad78f28c94f14b6392def26e4d8896c5e3c984e50fa0b3aa44f1da78b913187c6128baa9340b1e9c9a0fd02cb78885e72576da4a8f7e5a113e173a7a2889fde9d407bd9f06eb05bc8fc7b4229377a32941a02bf4edcc06d70\",\n        \"Name\": \"nagydani-2-square\",\n        \"GasOld\": 200,\n        \"GasNew\": 512\n    },\n    {\n        \"Input\": \"000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080cad7d991a00047dd54d3399b6b0b937c718abddef7917c75b6681f40cc15e2be0003657d8d4c34167b2f0bbbca0ccaa407c2a6a07d50f1517a8f22979ce12a81dcaf707cc0cebfc0ce2ee84ee7f77c38b9281b9822a8d3de62784c089c9b18dcb9a2a5eecbede90ea788a862a9ddd9d609c2c52972d63e289e28f6a590ffbf5103e6d893b80aeed5e6e9ce9afa8a5d5675c93a32ac05554cb20e9951b2c140e3ef4e433068cf0fb73bc9f33af1853f64aa27a0028cbf570d7ac9048eae5dc7b28c87c31e5810f1e7fa2cda6adf9f1076dbc1ec1238560071e7efc4e9565c49be9e7656951985860a558a754594115830bcdb421f741408346dd5997bb01c287087\",\n        \"Expected\": \"d89ceb68c32da4f6364978d62aaa40d7b09b59ec61eb3c0159c87ec3a91037f7dc6967594e530a69d049b64adfa39c8fa208ea970cfe4b7bcd359d345744405afe1cbf761647e32b3184c7fbe87cee8c6c7ff3b378faba6c68b83b6889cb40f1603ee68c56b4c03d48c595c826c041112dc941878f8c5be828154afd4a16311f\",\n        \"Name\": \"nagydani-2-qube\",\n        \"GasOld\": 200,\n        \"GasNew\": 512\n    },\n    {\n        \"Input\": \"000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000080cad7d991a00047dd54d3399b6b0b937c718abddef7917c75b6681f40cc15e2be0003657d8d4c34167b2f0bbbca0ccaa407c2a6a07d50f1517a8f22979ce12a81dcaf707cc0cebfc0ce2ee84ee7f77c38b9281b9822a8d3de62784c089c9b18dcb9a2a5eecbede90ea788a862a9ddd9d609c2c52972d63e289e28f6a590ffbf51010001e6d893b80aeed5e6e9ce9afa8a5d5675c93a32ac05554cb20e9951b2c140e3ef4e433068cf0fb73bc9f33af1853f64aa27a0028cbf570d7ac9048eae5dc7b28c87c31e5810f1e7fa2cda6adf9f1076dbc1ec1238560071e7efc4e9565c49be9e7656951985860a558a754594115830bcdb421f741408346dd5997bb01c287087\",\n        \"Expected\": \"ad85e8ef13fd1dd46eae44af8b91ad1ccae5b7a1c92944f92a19f21b0b658139e0cabe9c1f679507c2de354bf2c91ebd965d1e633978a830d517d2f6f8dd5fd58065d58559de7e2334a878f8ec6992d9b9e77430d4764e863d77c0f87beede8f2f7f2ab2e7222f85cc9d98b8467f4bb72e87ef2882423ebdb6daf02dddac6db2\",\n        \"Name\": \"nagydani-2-pow0x10001\",\n        \"GasOld\": 1365,\n        \"GasNew\": 8192\n    },\n    {\n        \"Input\": \"000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000100c9130579f243e12451760976261416413742bd7c91d39ae087f46794062b8c239f2a74abf3918605a0e046a7890e049475ba7fbb78f5de6490bd22a710cc04d30088179a919d86c2da62cf37f59d8f258d2310d94c24891be2d7eeafaa32a8cb4b0cfe5f475ed778f45907dc8916a73f03635f233f7a77a00a3ec9ca6761a5bbd558a2318ecd0caa1c5016691523e7e1fa267dd35e70c66e84380bdcf7c0582f540174e572c41f81e93da0b757dff0b0fe23eb03aa19af0bdec3afb474216febaacb8d0381e631802683182b0fe72c28392539850650b70509f54980241dc175191a35d967288b532a7a8223ce2440d010615f70df269501944d4ec16fe4a3cb02d7a85909174757835187cb52e71934e6c07ef43b4c46fc30bbcd0bc72913068267c54a4aabebb493922492820babdeb7dc9b1558fcf7bd82c37c82d3147e455b623ab0efa752fe0b3a67ca6e4d126639e645a0bf417568adbb2a6a4eef62fa1fa29b2a5a43bebea1f82193a7dd98eb483d09bb595af1fa9c97c7f41f5649d976aee3e5e59e2329b43b13bea228d4a93f16ba139ccb511de521ffe747aa2eca664f7c9e33da59075cc335afcd2bf3ae09765f01ab5a7c3e3938ec168b74724b5074247d200d9970382f683d6059b94dbc336603d1dfee714e4b447ac2fa1d99ecb4961da2854e03795ed758220312d101e1e3d87d5313a6d052aebde75110363d\",\n        \"Expected\": \"affc7507ea6d84751ec6b3f0d7b99dbcc263f33330e450d1b3ff0bc3d0874320bf4edd57debd587306988157958cb3cfd369cc0c9c198706f635c9e0f15d047df5cb44d03e2727f26b083c4ad8485080e1293f171c1ed52aef5993a5815c35108e848c951cf1e334490b4a539a139e57b68f44fee583306f5b85ffa57206b3ee5660458858534e5386b9584af3c7f67806e84c189d695e5eb96e1272d06ec2df5dc5fabc6e94b793718c60c36be0a4d031fc84cd658aa72294b2e16fc240aef70cb9e591248e38bd49c5a554d1afa01f38dab72733092f7555334bbef6c8c430119840492380aa95fa025dcf699f0a39669d812b0c6946b6091e6e235337b6f8\",\n        \"Name\": \"nagydani-3-square\",\n        \"GasOld\": 341,\n        \"GasNew\": 2048\n    },\n    {\n        \"Input\": \"000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000100c9130579f243e12451760976261416413742bd7c91d39ae087f46794062b8c239f2a74abf3918605a0e046a7890e049475ba7fbb78f5de6490bd22a710cc04d30088179a919d86c2da62cf37f59d8f258d2310d94c24891be2d7eeafaa32a8cb4b0cfe5f475ed778f45907dc8916a73f03635f233f7a77a00a3ec9ca6761a5bbd558a2318ecd0caa1c5016691523e7e1fa267dd35e70c66e84380bdcf7c0582f540174e572c41f81e93da0b757dff0b0fe23eb03aa19af0bdec3afb474216febaacb8d0381e631802683182b0fe72c28392539850650b70509f54980241dc175191a35d967288b532a7a8223ce2440d010615f70df269501944d4ec16fe4a3cb03d7a85909174757835187cb52e71934e6c07ef43b4c46fc30bbcd0bc72913068267c54a4aabebb493922492820babdeb7dc9b1558fcf7bd82c37c82d3147e455b623ab0efa752fe0b3a67ca6e4d126639e645a0bf417568adbb2a6a4eef62fa1fa29b2a5a43bebea1f82193a7dd98eb483d09bb595af1fa9c97c7f41f5649d976aee3e5e59e2329b43b13bea228d4a93f16ba139ccb511de521ffe747aa2eca664f7c9e33da59075cc335afcd2bf3ae09765f01ab5a7c3e3938ec168b74724b5074247d200d9970382f683d6059b94dbc336603d1dfee714e4b447ac2fa1d99ecb4961da2854e03795ed758220312d101e1e3d87d5313a6d052aebde75110363d\",\n        \"Expected\": \"1b280ecd6a6bf906b806d527c2a831e23b238f89da48449003a88ac3ac7150d6a5e9e6b3be4054c7da11dd1e470ec29a606f5115801b5bf53bc1900271d7c3ff3cd5ed790d1c219a9800437a689f2388ba1a11d68f6a8e5b74e9a3b1fac6ee85fc6afbac599f93c391f5dc82a759e3c6c0ab45ce3f5d25d9b0c1bf94cf701ea6466fc9a478dacc5754e593172b5111eeba88557048bceae401337cd4c1182ad9f700852bc8c99933a193f0b94cf1aedbefc48be3bc93ef5cb276d7c2d5462ac8bb0c8fe8923a1db2afe1c6b90d59c534994a6a633f0ead1d638fdc293486bb634ff2c8ec9e7297c04241a61c37e3ae95b11d53343d4ba2b4cc33d2cfa7eb705e\",\n        \"Name\": \"nagydani-3-qube\",\n        \"GasOld\": 341,\n        \"GasNew\": 2048\n    },\n    {\n        \"Input\": \"000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000100c9130579f243e12451760976261416413742bd7c91d39ae087f46794062b8c239f2a74abf3918605a0e046a7890e049475ba7fbb78f5de6490bd22a710cc04d30088179a919d86c2da62cf37f59d8f258d2310d94c24891be2d7eeafaa32a8cb4b0cfe5f475ed778f45907dc8916a73f03635f233f7a77a00a3ec9ca6761a5bbd558a2318ecd0caa1c5016691523e7e1fa267dd35e70c66e84380bdcf7c0582f540174e572c41f81e93da0b757dff0b0fe23eb03aa19af0bdec3afb474216febaacb8d0381e631802683182b0fe72c28392539850650b70509f54980241dc175191a35d967288b532a7a8223ce2440d010615f70df269501944d4ec16fe4a3cb010001d7a85909174757835187cb52e71934e6c07ef43b4c46fc30bbcd0bc72913068267c54a4aabebb493922492820babdeb7dc9b1558fcf7bd82c37c82d3147e455b623ab0efa752fe0b3a67ca6e4d126639e645a0bf417568adbb2a6a4eef62fa1fa29b2a5a43bebea1f82193a7dd98eb483d09bb595af1fa9c97c7f41f5649d976aee3e5e59e2329b43b13bea228d4a93f16ba139ccb511de521ffe747aa2eca664f7c9e33da59075cc335afcd2bf3ae09765f01ab5a7c3e3938ec168b74724b5074247d200d9970382f683d6059b94dbc336603d1dfee714e4b447ac2fa1d99ecb4961da2854e03795ed758220312d101e1e3d87d5313a6d052aebde75110363d\",\n        \"Expected\": \"37843d7c67920b5f177372fa56e2a09117df585f81df8b300fba245b1175f488c99476019857198ed459ed8d9799c377330e49f4180c4bf8e8f66240c64f65ede93d601f957b95b83efdee1e1bfde74169ff77002eaf078c71815a9220c80b2e3b3ff22c2f358111d816ebf83c2999026b6de50bfc711ff68705d2f40b753424aefc9f70f08d908b5a20276ad613b4ab4309a3ea72f0c17ea9df6b3367d44fb3acab11c333909e02e81ea2ed404a712d3ea96bba87461720e2d98723e7acd0520ac1a5212dbedcd8dc0c1abf61d4719e319ff4758a774790b8d463cdfe131d1b2dcfee52d002694e98e720cb6ae7ccea353bc503269ba35f0f63bf8d7b672a76\",\n        \"Name\": \"nagydani-3-pow0x10001\",\n        \"GasOld\": 5461,\n        \"GasNew\": 32768\n    },\n    {\n        \"Input\": \"000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000200db34d0e438249c0ed685c949cc28776a05094e1c48691dc3f2dca5fc3356d2a0663bd376e4712839917eb9a19c670407e2c377a2de385a3ff3b52104f7f1f4e0c7bf7717fb913896693dc5edbb65b760ef1b00e42e9d8f9af17352385e1cd742c9b006c0f669995cb0bb21d28c0aced2892267637b6470d8cee0ab27fc5d42658f6e88240c31d6774aa60a7ebd25cd48b56d0da11209f1928e61005c6eb709f3e8e0aaf8d9b10f7d7e296d772264dc76897ccdddadc91efa91c1903b7232a9e4c3b941917b99a3bc0c26497dedc897c25750af60237aa67934a26a2bc491db3dcc677491944bc1f51d3e5d76b8d846a62db03dedd61ff508f91a56d71028125035c3a44cbb041497c83bf3e4ae2a9613a401cc721c547a2afa3b16a2969933d3626ed6d8a7428648f74122fd3f2a02a20758f7f693892c8fd798b39abac01d18506c45e71432639e9f9505719ee822f62ccbf47f6850f096ff77b5afaf4be7d772025791717dbe5abf9b3f40cff7d7aab6f67e38f62faf510747276e20a42127e7500c444f9ed92baf65ade9e836845e39c4316d9dce5f8e2c8083e2c0acbb95296e05e51aab13b6b8f53f06c9c4276e12b0671133218cc3ea907da3bd9a367096d9202128d14846cc2e20d56fc8473ecb07cecbfb8086919f3971926e7045b853d85a69d026195c70f9f7a823536e2a8f4b3e12e94d9b53a934353451094b8102df3143a0057457d75e8c708b6337a6f5a4fd1a06727acf9fb93e2993c62f3378b37d56c85e7b1e00f0145ebf8e4095bd723166293c60b6ac1252291ef65823c9e040ddad14969b3b340a4ef714db093a587c37766d68b8d6b5016e741587e7e6bf7e763b44f0247e64bae30f994d248bfd20541a333e5b225ef6a61199e301738b1e688f70ec1d7fb892c183c95dc543c3e12adf8a5e8b9ca9d04f9445cced3ab256f29e998e69efaa633a7b60e1db5a867924ccab0a171d9d6e1098dfa15acde9553de599eaa56490c8f411e4985111f3d40bddfc5e301edb01547b01a886550a61158f7e2033c59707789bf7c854181d0c2e2a42a93cf09209747d7082e147eb8544de25c3eb14f2e35559ea0c0f5877f2f3fc92132c0ae9da4e45b2f6c866a224ea6d1f28c05320e287750fbc647368d41116e528014cc1852e5531d53e4af938374daba6cee4baa821ed07117253bb3601ddd00d59a3d7fb2ef1f5a2fbba7c429f0cf9a5b3462410fd833a69118f8be9c559b1000cc608fd877fb43f8e65c2d1302622b944462579056874b387208d90623fcdaf93920ca7a9e4ba64ea208758222ad868501cc2c345e2d3a5ea2a17e5069248138c8a79c0251185d29ee73e5afab5354769142d2bf0cb6712727aa6bf84a6245fcdae66e4938d84d1b9dd09a884818622080ff5f98942fb20acd7e0c916c2d5ea7ce6f7e173315384518f\",\n        \"Expected\": \"8a5aea5f50dcc03dc7a7a272b5aeebc040554dbc1ffe36753c4fc75f7ed5f6c2cc0de3a922bf96c78bf0643a73025ad21f45a4a5cadd717612c511ab2bff1190fe5f1ae05ba9f8fe3624de1de2a817da6072ddcdb933b50216811dbe6a9ca79d3a3c6b3a476b079fd0d05f04fb154e2dd3e5cb83b148a006f2bcbf0042efb2ae7b916ea81b27aac25c3bf9a8b6d35440062ad8eae34a83f3ffa2cc7b40346b62174a4422584f72f95316f6b2bee9ff232ba9739301c97c99a9ded26c45d72676eb856ad6ecc81d36a6de36d7f9dafafee11baa43a4b0d5e4ecffa7b9b7dcefd58c397dd373e6db4acd2b2c02717712e6289bed7c813b670c4a0c6735aa7f3b0f1ce556eae9fcc94b501b2c8781ba50a8c6220e8246371c3c7359fe4ef9da786ca7d98256754ca4e496be0a9174bedbecb384bdf470779186d6a833f068d2838a88d90ef3ad48ff963b67c39cc5a3ee123baf7bf3125f64e77af7f30e105d72c4b9b5b237ed251e4c122c6d8c1405e736299c3afd6db16a28c6a9cfa68241e53de4cd388271fe534a6a9b0dbea6171d170db1b89858468885d08fecbd54c8e471c3e25d48e97ba450b96d0d87e00ac732aaa0d3ce4309c1064bd8a4c0808a97e0143e43a24cfa847635125cd41c13e0574487963e9d725c01375db99c31da67b4cf65eff555f0c0ac416c727ff8d438ad7c42030551d68c2e7adda0abb1ca7c10\",\n        \"Name\": \"nagydani-4-square\",\n        \"GasOld\": 1365,\n        \"GasNew\": 8192\n    },\n    {\n        \"Input\": \"000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000200db34d0e438249c0ed685c949cc28776a05094e1c48691dc3f2dca5fc3356d2a0663bd376e4712839917eb9a19c670407e2c377a2de385a3ff3b52104f7f1f4e0c7bf7717fb913896693dc5edbb65b760ef1b00e42e9d8f9af17352385e1cd742c9b006c0f669995cb0bb21d28c0aced2892267637b6470d8cee0ab27fc5d42658f6e88240c31d6774aa60a7ebd25cd48b56d0da11209f1928e61005c6eb709f3e8e0aaf8d9b10f7d7e296d772264dc76897ccdddadc91efa91c1903b7232a9e4c3b941917b99a3bc0c26497dedc897c25750af60237aa67934a26a2bc491db3dcc677491944bc1f51d3e5d76b8d846a62db03dedd61ff508f91a56d71028125035c3a44cbb041497c83bf3e4ae2a9613a401cc721c547a2afa3b16a2969933d3626ed6d8a7428648f74122fd3f2a02a20758f7f693892c8fd798b39abac01d18506c45e71432639e9f9505719ee822f62ccbf47f6850f096ff77b5afaf4be7d772025791717dbe5abf9b3f40cff7d7aab6f67e38f62faf510747276e20a42127e7500c444f9ed92baf65ade9e836845e39c4316d9dce5f8e2c8083e2c0acbb95296e05e51aab13b6b8f53f06c9c4276e12b0671133218cc3ea907da3bd9a367096d9202128d14846cc2e20d56fc8473ecb07cecbfb8086919f3971926e7045b853d85a69d026195c70f9f7a823536e2a8f4b3e12e94d9b53a934353451094b8103df3143a0057457d75e8c708b6337a6f5a4fd1a06727acf9fb93e2993c62f3378b37d56c85e7b1e00f0145ebf8e4095bd723166293c60b6ac1252291ef65823c9e040ddad14969b3b340a4ef714db093a587c37766d68b8d6b5016e741587e7e6bf7e763b44f0247e64bae30f994d248bfd20541a333e5b225ef6a61199e301738b1e688f70ec1d7fb892c183c95dc543c3e12adf8a5e8b9ca9d04f9445cced3ab256f29e998e69efaa633a7b60e1db5a867924ccab0a171d9d6e1098dfa15acde9553de599eaa56490c8f411e4985111f3d40bddfc5e301edb01547b01a886550a61158f7e2033c59707789bf7c854181d0c2e2a42a93cf09209747d7082e147eb8544de25c3eb14f2e35559ea0c0f5877f2f3fc92132c0ae9da4e45b2f6c866a224ea6d1f28c05320e287750fbc647368d41116e528014cc1852e5531d53e4af938374daba6cee4baa821ed07117253bb3601ddd00d59a3d7fb2ef1f5a2fbba7c429f0cf9a5b3462410fd833a69118f8be9c559b1000cc608fd877fb43f8e65c2d1302622b944462579056874b387208d90623fcdaf93920ca7a9e4ba64ea208758222ad868501cc2c345e2d3a5ea2a17e5069248138c8a79c0251185d29ee73e5afab5354769142d2bf0cb6712727aa6bf84a6245fcdae66e4938d84d1b9dd09a884818622080ff5f98942fb20acd7e0c916c2d5ea7ce6f7e173315384518f\",\n        \"Expected\": \"5a2664252aba2d6e19d9600da582cdd1f09d7a890ac48e6b8da15ae7c6ff1856fc67a841ac2314d283ffa3ca81a0ecf7c27d89ef91a5a893297928f5da0245c99645676b481b7e20a566ee6a4f2481942bee191deec5544600bb2441fd0fb19e2ee7d801ad8911c6b7750affec367a4b29a22942c0f5f4744a4e77a8b654da2a82571037099e9c6d930794efe5cdca73c7b6c0844e386bdca8ea01b3d7807146bb81365e2cdc6475f8c23e0ff84463126189dc9789f72bbce2e3d2d114d728a272f1345122de23df54c922ec7a16e5c2a8f84da8871482bd258c20a7c09bbcd64c7a96a51029bbfe848736a6ba7bf9d931a9b7de0bcaf3635034d4958b20ae9ab3a95a147b0421dd5f7ebff46c971010ebfc4adbbe0ad94d5498c853e7142c450d8c71de4b2f84edbf8acd2e16d00c8115b150b1c30e553dbb82635e781379fe2a56360420ff7e9f70cc64c00aba7e26ed13c7c19622865ae07248daced36416080f35f8cc157a857ed70ea4f347f17d1bee80fa038abd6e39b1ba06b97264388b21364f7c56e192d4b62d9b161405f32ab1e2594e86243e56fcf2cb30d21adef15b9940f91af681da24328c883d892670c6aa47940867a81830a82b82716895db810df1b834640abefb7db2092dd92912cb9a735175bc447be40a503cf22dfe565b4ed7a3293ca0dfd63a507430b323ee248ec82e843b673c97ad730728cebc\",\n        \"Name\": \"nagydani-4-qube\",\n        \"GasOld\": 1365,\n        \"GasNew\": 8192\n    },\n    {\n        \"Input\": \"000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000200db34d0e438249c0ed685c949cc28776a05094e1c48691dc3f2dca5fc3356d2a0663bd376e4712839917eb9a19c670407e2c377a2de385a3ff3b52104f7f1f4e0c7bf7717fb913896693dc5edbb65b760ef1b00e42e9d8f9af17352385e1cd742c9b006c0f669995cb0bb21d28c0aced2892267637b6470d8cee0ab27fc5d42658f6e88240c31d6774aa60a7ebd25cd48b56d0da11209f1928e61005c6eb709f3e8e0aaf8d9b10f7d7e296d772264dc76897ccdddadc91efa91c1903b7232a9e4c3b941917b99a3bc0c26497dedc897c25750af60237aa67934a26a2bc491db3dcc677491944bc1f51d3e5d76b8d846a62db03dedd61ff508f91a56d71028125035c3a44cbb041497c83bf3e4ae2a9613a401cc721c547a2afa3b16a2969933d3626ed6d8a7428648f74122fd3f2a02a20758f7f693892c8fd798b39abac01d18506c45e71432639e9f9505719ee822f62ccbf47f6850f096ff77b5afaf4be7d772025791717dbe5abf9b3f40cff7d7aab6f67e38f62faf510747276e20a42127e7500c444f9ed92baf65ade9e836845e39c4316d9dce5f8e2c8083e2c0acbb95296e05e51aab13b6b8f53f06c9c4276e12b0671133218cc3ea907da3bd9a367096d9202128d14846cc2e20d56fc8473ecb07cecbfb8086919f3971926e7045b853d85a69d026195c70f9f7a823536e2a8f4b3e12e94d9b53a934353451094b81010001df3143a0057457d75e8c708b6337a6f5a4fd1a06727acf9fb93e2993c62f3378b37d56c85e7b1e00f0145ebf8e4095bd723166293c60b6ac1252291ef65823c9e040ddad14969b3b340a4ef714db093a587c37766d68b8d6b5016e741587e7e6bf7e763b44f0247e64bae30f994d248bfd20541a333e5b225ef6a61199e301738b1e688f70ec1d7fb892c183c95dc543c3e12adf8a5e8b9ca9d04f9445cced3ab256f29e998e69efaa633a7b60e1db5a867924ccab0a171d9d6e1098dfa15acde9553de599eaa56490c8f411e4985111f3d40bddfc5e301edb01547b01a886550a61158f7e2033c59707789bf7c854181d0c2e2a42a93cf09209747d7082e147eb8544de25c3eb14f2e35559ea0c0f5877f2f3fc92132c0ae9da4e45b2f6c866a224ea6d1f28c05320e287750fbc647368d41116e528014cc1852e5531d53e4af938374daba6cee4baa821ed07117253bb3601ddd00d59a3d7fb2ef1f5a2fbba7c429f0cf9a5b3462410fd833a69118f8be9c559b1000cc608fd877fb43f8e65c2d1302622b944462579056874b387208d90623fcdaf93920ca7a9e4ba64ea208758222ad868501cc2c345e2d3a5ea2a17e5069248138c8a79c0251185d29ee73e5afab5354769142d2bf0cb6712727aa6bf84a6245fcdae66e4938d84d1b9dd09a884818622080ff5f98942fb20acd7e0c916c2d5ea7ce6f7e173315384518f\",\n        \"Expected\": \"bed8b970c4a34849fc6926b08e40e20b21c15ed68d18f228904878d4370b56322d0da5789da0318768a374758e6375bfe4641fca5285ec7171828922160f48f5ca7efbfee4d5148612c38ad683ae4e3c3a053d2b7c098cf2b34f2cb19146eadd53c86b2d7ccf3d83b2c370bfb840913ee3879b1057a6b4e07e110b6bcd5e958bc71a14798c91d518cc70abee264b0d25a4110962a764b364ac0b0dd1ee8abc8426d775ec0f22b7e47b32576afaf1b5a48f64573ed1c5c29f50ab412188d9685307323d990802b81dacc06c6e05a1e901830ba9fcc67688dc29c5e27bde0a6e845ca925f5454b6fb3747edfaa2a5820838fb759eadf57f7cb5cec57fc213ddd8a4298fa079c3c0f472b07fb15aa6a7f0a3780bd296ff6a62e58ef443870b02260bd4fd2bbc98255674b8e1f1f9f8d33c7170b0ebbea4523b695911abbf26e41885344823bd0587115fdd83b721a4e8457a31c9a84b3d3520a07e0e35df7f48e5a9d534d0ec7feef1ff74de6a11e7f93eab95175b6ce22c68d78a642ad642837897ec11349205d8593ac19300207572c38d29ca5dfa03bc14cdbc32153c80e5cc3e739403d34c75915e49beb43094cc6dcafb3665b305ddec9286934ae66ec6b777ca528728c851318eb0f207b39f1caaf96db6eeead6b55ed08f451939314577d42bcc9f97c0b52d0234f88fd07e4c1d7780fdebc025cfffcb572cb27a8c33963\",\n        \"Name\": \"nagydani-4-pow0x10001\",\n        \"GasOld\": 21845,\n        \"GasNew\": 131072\n    },\n    {\n        \"Input\": \"000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000400c5a1611f8be90071a43db23cc2fe01871cc4c0e8ab5743f6378e4fef77f7f6db0095c0727e20225beb665645403453e325ad5f9aeb9ba99bf3c148f63f9c07cf4fe8847ad5242d6b7d4499f93bd47056ddab8f7dee878fc2314f344dbee2a7c41a5d3db91eff372c730c2fdd3a141a4b61999e36d549b9870cf2f4e632c4d5df5f024f81c028000073a0ed8847cfb0593d36a47142f578f05ccbe28c0c06aeb1b1da027794c48db880278f79ba78ae64eedfea3c07d10e0562668d839749dc95f40467d15cf65b9cfc52c7c4bcef1cda3596dd52631aac942f146c7cebd46065131699ce8385b0db1874336747ee020a5698a3d1a1082665721e769567f579830f9d259cec1a836845109c21cf6b25da572512bf3c42fd4b96e43895589042ab60dd41f497db96aec102087fe784165bb45f942859268fd2ff6c012d9d00c02ba83eace047cc5f7b2c392c2955c58a49f0338d6fc58749c9db2155522ac17914ec216ad87f12e0ee95574613942fa615898c4d9e8a3be68cd6afa4e7a003dedbdf8edfee31162b174f965b20ae752ad89c967b3068b6f722c16b354456ba8e280f987c08e0a52d40a2e8f3a59b94d590aeef01879eb7a90b3ee7d772c839c85519cbeaddc0c193ec4874a463b53fcaea3271d80ebfb39b33489365fc039ae549a17a9ff898eea2f4cb27b8dbee4c17b998438575b2b8d107e4a0d66ba7fca85b41a58a8d51f191a35c856dfbe8aef2b00048a694bbccff832d23c8ca7a7ff0b6c0b3011d00b97c86c0628444d267c951d9e4fb8f83e154b8f74fb51aa16535e498235c5597dac9606ed0be3173a3836baa4e7d756ffe1e2879b415d3846bccd538c05b847785699aefde3e305decb600cd8fb0e7d8de5efc26971a6ad4e6d7a2d91474f1023a0ac4b78dc937da0ce607a45974d2cac1c33a2631ff7fe6144a3b2e5cf98b531a9627dea92c1dc82204d09db0439b6a11dd64b484e1263aa45fd9539b6020b55e3baece3986a8bffc1003406348f5c61265099ed43a766ee4f93f5f9c5abbc32a0fd3ac2b35b87f9ec26037d88275bd7dd0a54474995ee34ed3727f3f97c48db544b1980193a4b76a8a3ddab3591ce527f16d91882e67f0103b5cda53f7da54d489fc4ac08b6ab358a5a04aa9daa16219d50bd672a7cb804ed769d218807544e5993f1c27427104b349906a0b654df0bf69328afd3013fbe430155339c39f236df5557bf92f1ded7ff609a8502f49064ec3d1dbfb6c15d3a4c11a4f8acd12278cbf68acd5709463d12e3338a6eddb8c112f199645e23154a8e60879d2a654e3ed9296aa28f134168619691cd2c6b9e2eba4438381676173fc63c2588a3c5910dc149cf3760f0aa9fa9c3f5faa9162b0bf1aac9dd32b706a60ef53cbdb394b6b40222b5bc80eea82ba8958386672564cae3794f977871ab62337cf02e30049201ec12937e7ce79d0f55d9c810e20acf52212aca1d3888949e0e4830aad88d804161230eb89d4d329cc83570fe257217d2119134048dd2ed167646975fc7d77136919a049ea74cf08ddd2b896890bb24a0ba18094a22baa351bf29ad96c66bbb1a598f2ca391749620e62d61c3561a7d3653ccc8892c7b99baaf76bf836e2991cb06d6bc0514568ff0d1ec8bb4b3d6984f5eaefb17d3ea2893722375d3ddb8e389a8eef7d7d198f8e687d6a513983df906099f9a2d23f4f9dec6f8ef2f11fc0a21fac45353b94e00486f5e17d386af42502d09db33cf0cf28310e049c07e88682aeeb00cb833c5174266e62407a57583f1f88b304b7c6e0c84bbe1c0fd423072d37a5bd0aacf764229e5c7cd02473460ba3645cd8e8ae144065bf02d0dd238593d8e230354f67e0b2f23012c23274f80e3ee31e35e2606a4a3f31d94ab755e6d163cff52cbb36b6d0cc67ffc512aeed1dce4d7a0d70ce82f2baba12e8d514dc92a056f994adfb17b5b9712bd5186f27a2fda1f7039c5df2c8587fdc62f5627580c13234b55be4df3056050e2d1ef3218f0dd66cb05265fe1acfb0989d8213f2c19d1735a7cf3fa65d88dad5af52dc2bba22b7abf46c3bc77b5091baab9e8f0ddc4d5e581037de91a9f8dcbc69309be29cc815cf19a20a7585b8b3073edf51fc9baeb3e509b97fa4ecfd621e0fd57bd61cac1b895c03248ff12bdbc57509250df3517e8a3fe1d776836b34ab352b973d932ef708b14f7418f9eceb1d87667e61e3e758649cb083f01b133d37ab2f5afa96d6c84bcacf4efc3851ad308c1e7d9113624fce29fab460ab9d2a48d92cdb281103a5250ad44cb2ff6e67ac670c02fdafb3e0f1353953d6d7d5646ca1568dea55275a050ec501b7c6250444f7219f1ba7521ba3b93d089727ca5f3bbe0d6c1300b423377004954c5628fdb65770b18ced5c9b23a4a5a6d6ef25fe01b4ce278de0bcc4ed86e28a0a68818ffa40970128cf2c38740e80037984428c1bd5113f40ff47512ee6f4e4d8f9b8e8e1b3040d2928d003bd1c1329dc885302fbce9fa81c23b4dc49c7c82d29b52957847898676c89aa5d32b5b0e1c0d5a2b79a19d67562f407f19425687971a957375879d90c5f57c857136c17106c9ab1b99d80e69c8c954ed386493368884b55c939b8d64d26f643e800c56f90c01079d7c534e3b2b7ae352cefd3016da55f6a85eb803b85e2304915fd2001f77c74e28746293c46e4f5f0fd49cf988aafd0026b8e7a3bab2da5cdce1ea26c2e29ec03f4807fac432662b2d6c060be1c7be0e5489de69d0a6e03a4b9117f9244b34a0f1ecba89884f781c6320412413a00c4980287409a2a78c2cd7e65cecebbe4ec1c28cac4dd95f6998e78fc6f1392384331c9436aa10e10e2bf8ad2c4eafbcf276aa7bae64b74428911b3269c749338b0fc5075ad\",\n        \"Expected\": \"d61fe4e3f32ac260915b5b03b78a86d11bfc41d973fce5b0cc59035cf8289a8a2e3878ea15fa46565b0d806e2f85b53873ea20ed653869b688adf83f3ef444535bf91598ff7e80f334fb782539b92f39f55310cc4b35349ab7b278346eda9bc37c0d8acd3557fae38197f412f8d9e57ce6a76b7205c23564cab06e5615be7c6f05c3d05ec690cba91da5e89d55b152ff8dd2157dc5458190025cf94b1ad98f7cbe64e9482faba95e6b33844afc640892872b44a9932096508f4a782a4805323808f23e54b6ff9b841dbfa87db3505ae4f687972c18ea0f0d0af89d36c1c2a5b14560c153c3fee406f5cf15cfd1c0bb45d767426d465f2f14c158495069d0c5955a00150707862ecaae30624ebacdd8ac33e4e6aab3ff90b6ba445a84689386b9e945d01823a65874444316e83767290fcff630d2477f49d5d8ffdd200e08ee1274270f86ed14c687895f6caf5ce528bd970c20d2408a9ba66216324c6a011ac4999098362dbd98a038129a2d40c8da6ab88318aa3046cb660327cc44236d9e5d2163bd0959062195c51ed93d0088b6f92051fc99050ece2538749165976233697ab4b610385366e5ce0b02ad6b61c168ecfbedcdf74278a38de340fd7a5fead8e588e294795f9b011e2e60377a89e25c90e145397cdeabc60fd32444a6b7642a611a83c464d8b8976666351b4865c37b02e6dc21dbcdf5f930341707b618cc0f03c3122646b3385c9df9f2ec730eec9d49e7dfc9153b6e6289da8c4f0ebea9ccc1b751948e3bb7171c9e4d57423b0eeeb79095c030cb52677b3f7e0b45c30f645391f3f9c957afa549c4e0b2465b03c67993cd200b1af01035962edbc4c9e89b31c82ac121987d6529dafdeef67a132dc04b6dc68e77f22862040b75e2ceb9ff16da0fca534e6db7bd12fa7b7f51b6c08c1e23dfcdb7acbd2da0b51c87ffbced065a612e9b1c8bba9b7e2d8d7a2f04fcc4aaf355b60d764879a76b5e16762d5f2f55d585d0c8e82df6940960cddfb72c91dfa71f6b4e1c6ca25dfc39a878e998a663c04fe29d5e83b9586d047b4d7ff70a9f0d44f127e7d741685ca75f11629128d916a0ffef4be586a30c4b70389cc746e84ebf177c01ee8a4511cfbb9d1ecf7f7b33c7dd8177896e10bbc82f838dcd6db7ac67de62bf46b6a640fb580c5d1d2708f3862e3d2b645d0d18e49ef088053e3a220adc0e033c2afcfe61c90e32151152eb3caaf746c5e377d541cafc6cbb0cc0fa48b5caf1728f2e1957f5addfc234f1a9d89e40d49356c9172d0561a695fce6dab1d412321bbf407f63766ffd7b6b3d79bcfa07991c5a9709849c1008689e3b47c50d613980bec239fb64185249d055b30375ccb4354d71fe4d05648fbf6c80634dfc3575f2f24abb714c1e4c95e8896763bf4316e954c7ad19e5780ab7a040ca6fb9271f90a8b22ae738daf6cb\",\n        \"Name\": \"nagydani-5-square\",\n        \"GasOld\": 5461,\n        \"GasNew\": 32768\n    },\n    {\n        \"Input\": \"000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000400c5a1611f8be90071a43db23cc2fe01871cc4c0e8ab5743f6378e4fef77f7f6db0095c0727e20225beb665645403453e325ad5f9aeb9ba99bf3c148f63f9c07cf4fe8847ad5242d6b7d4499f93bd47056ddab8f7dee878fc2314f344dbee2a7c41a5d3db91eff372c730c2fdd3a141a4b61999e36d549b9870cf2f4e632c4d5df5f024f81c028000073a0ed8847cfb0593d36a47142f578f05ccbe28c0c06aeb1b1da027794c48db880278f79ba78ae64eedfea3c07d10e0562668d839749dc95f40467d15cf65b9cfc52c7c4bcef1cda3596dd52631aac942f146c7cebd46065131699ce8385b0db1874336747ee020a5698a3d1a1082665721e769567f579830f9d259cec1a836845109c21cf6b25da572512bf3c42fd4b96e43895589042ab60dd41f497db96aec102087fe784165bb45f942859268fd2ff6c012d9d00c02ba83eace047cc5f7b2c392c2955c58a49f0338d6fc58749c9db2155522ac17914ec216ad87f12e0ee95574613942fa615898c4d9e8a3be68cd6afa4e7a003dedbdf8edfee31162b174f965b20ae752ad89c967b3068b6f722c16b354456ba8e280f987c08e0a52d40a2e8f3a59b94d590aeef01879eb7a90b3ee7d772c839c85519cbeaddc0c193ec4874a463b53fcaea3271d80ebfb39b33489365fc039ae549a17a9ff898eea2f4cb27b8dbee4c17b998438575b2b8d107e4a0d66ba7fca85b41a58a8d51f191a35c856dfbe8aef2b00048a694bbccff832d23c8ca7a7ff0b6c0b3011d00b97c86c0628444d267c951d9e4fb8f83e154b8f74fb51aa16535e498235c5597dac9606ed0be3173a3836baa4e7d756ffe1e2879b415d3846bccd538c05b847785699aefde3e305decb600cd8fb0e7d8de5efc26971a6ad4e6d7a2d91474f1023a0ac4b78dc937da0ce607a45974d2cac1c33a2631ff7fe6144a3b2e5cf98b531a9627dea92c1dc82204d09db0439b6a11dd64b484e1263aa45fd9539b6020b55e3baece3986a8bffc1003406348f5c61265099ed43a766ee4f93f5f9c5abbc32a0fd3ac2b35b87f9ec26037d88275bd7dd0a54474995ee34ed3727f3f97c48db544b1980193a4b76a8a3ddab3591ce527f16d91882e67f0103b5cda53f7da54d489fc4ac08b6ab358a5a04aa9daa16219d50bd672a7cb804ed769d218807544e5993f1c27427104b349906a0b654df0bf69328afd3013fbe430155339c39f236df5557bf92f1ded7ff609a8502f49064ec3d1dbfb6c15d3a4c11a4f8acd12278cbf68acd5709463d12e3338a6eddb8c112f199645e23154a8e60879d2a654e3ed9296aa28f134168619691cd2c6b9e2eba4438381676173fc63c2588a3c5910dc149cf3760f0aa9fa9c3f5faa9162b0bf1aac9dd32b706a60ef53cbdb394b6b40222b5bc80eea82ba8958386672564cae3794f977871ab62337cf03e30049201ec12937e7ce79d0f55d9c810e20acf52212aca1d3888949e0e4830aad88d804161230eb89d4d329cc83570fe257217d2119134048dd2ed167646975fc7d77136919a049ea74cf08ddd2b896890bb24a0ba18094a22baa351bf29ad96c66bbb1a598f2ca391749620e62d61c3561a7d3653ccc8892c7b99baaf76bf836e2991cb06d6bc0514568ff0d1ec8bb4b3d6984f5eaefb17d3ea2893722375d3ddb8e389a8eef7d7d198f8e687d6a513983df906099f9a2d23f4f9dec6f8ef2f11fc0a21fac45353b94e00486f5e17d386af42502d09db33cf0cf28310e049c07e88682aeeb00cb833c5174266e62407a57583f1f88b304b7c6e0c84bbe1c0fd423072d37a5bd0aacf764229e5c7cd02473460ba3645cd8e8ae144065bf02d0dd238593d8e230354f67e0b2f23012c23274f80e3ee31e35e2606a4a3f31d94ab755e6d163cff52cbb36b6d0cc67ffc512aeed1dce4d7a0d70ce82f2baba12e8d514dc92a056f994adfb17b5b9712bd5186f27a2fda1f7039c5df2c8587fdc62f5627580c13234b55be4df3056050e2d1ef3218f0dd66cb05265fe1acfb0989d8213f2c19d1735a7cf3fa65d88dad5af52dc2bba22b7abf46c3bc77b5091baab9e8f0ddc4d5e581037de91a9f8dcbc69309be29cc815cf19a20a7585b8b3073edf51fc9baeb3e509b97fa4ecfd621e0fd57bd61cac1b895c03248ff12bdbc57509250df3517e8a3fe1d776836b34ab352b973d932ef708b14f7418f9eceb1d87667e61e3e758649cb083f01b133d37ab2f5afa96d6c84bcacf4efc3851ad308c1e7d9113624fce29fab460ab9d2a48d92cdb281103a5250ad44cb2ff6e67ac670c02fdafb3e0f1353953d6d7d5646ca1568dea55275a050ec501b7c6250444f7219f1ba7521ba3b93d089727ca5f3bbe0d6c1300b423377004954c5628fdb65770b18ced5c9b23a4a5a6d6ef25fe01b4ce278de0bcc4ed86e28a0a68818ffa40970128cf2c38740e80037984428c1bd5113f40ff47512ee6f4e4d8f9b8e8e1b3040d2928d003bd1c1329dc885302fbce9fa81c23b4dc49c7c82d29b52957847898676c89aa5d32b5b0e1c0d5a2b79a19d67562f407f19425687971a957375879d90c5f57c857136c17106c9ab1b99d80e69c8c954ed386493368884b55c939b8d64d26f643e800c56f90c01079d7c534e3b2b7ae352cefd3016da55f6a85eb803b85e2304915fd2001f77c74e28746293c46e4f5f0fd49cf988aafd0026b8e7a3bab2da5cdce1ea26c2e29ec03f4807fac432662b2d6c060be1c7be0e5489de69d0a6e03a4b9117f9244b34a0f1ecba89884f781c6320412413a00c4980287409a2a78c2cd7e65cecebbe4ec1c28cac4dd95f6998e78fc6f1392384331c9436aa10e10e2bf8ad2c4eafbcf276aa7bae64b74428911b3269c749338b0fc5075ad\",\n        \"Expected\": \"5f9c70ec884926a89461056ad20ac4c30155e817f807e4d3f5bb743d789c83386762435c3627773fa77da5144451f2a8aad8adba88e0b669f5377c5e9bad70e45c86fe952b613f015a9953b8a5de5eaee4566acf98d41e327d93a35bd5cef4607d025e58951167957df4ff9b1627649d3943805472e5e293d3efb687cfd1e503faafeb2840a3e3b3f85d016051a58e1c9498aab72e63b748d834b31eb05d85dcde65e27834e266b85c75cc4ec0135135e0601cb93eeeb6e0010c8ceb65c4c319623c5e573a2c8c9fbbf7df68a930beb412d3f4dfd146175484f45d7afaa0d2e60684af9b34730f7c8438465ad3e1d0c3237336722f2aa51095bd5759f4b8ab4dda111b684aa3dac62a761722e7ae43495b7709933512c81c4e3c9133a51f7ce9f2b51fcec064f65779666960b4e45df3900f54311f5613e8012dd1b8efd359eda31a778264c72aa8bb419d862734d769076bce2810011989a45374e5c5d8729fec21427f0bf397eacbb4220f603cf463a4b0c94efd858ffd9768cd60d6ce68d755e0fbad007ce5c2223d70c7018345a102e4ab3c60a13a9e7794303156d4c2063e919f2153c13961fb324c80b240742f47773a7a8e25b3e3fb19b00ce839346c6eb3c732fbc6b888df0b1fe0a3d07b053a2e9402c267b2d62f794d8a2840526e3ade15ce2264496ccd7519571dfde47f7a4bb16292241c20b2be59f3f8fb4f6383f232d838c5a22d8c95b6834d9d2ca493f5a505ebe8899503b0e8f9b19e6e2dd81c1628b80016d02097e0134de51054c4e7674824d4d758760fc52377d2cad145e259aa2ffaf54139e1a66b1e0c1c191e32ac59474c6b526f5b3ba07d3e5ec286eddf531fcd5292869be58c9f22ef91026159f7cf9d05ef66b4299f4da48cc1635bf2243051d342d378a22c83390553e873713c0454ce5f3234397111ac3fe3207b86f0ed9fc025c81903e1748103692074f83824fda6341be4f95ff00b0a9a208c267e12fa01825054cc0513629bf3dbb56dc5b90d4316f87654a8be18227978ea0a8a522760cad620d0d14fd38920fb7321314062914275a5f99f677145a6979b156bd82ecd36f23f8e1273cc2759ecc0b2c69d94dad5211d1bed939dd87ed9e07b91d49713a6e16ade0a98aea789f04994e318e4ff2c8a188cd8d43aeb52c6daa3bc29b4af50ea82a247c5cd67b573b34cbadcc0a376d3bbd530d50367b42705d870f2e27a8197ef46070528bfe408360faa2ebb8bf76e9f388572842bcb119f4d84ee34ae31f5cc594f23705a49197b181fb78ed1ec99499c690f843a4d0cf2e226d118e9372271054fbabdcc5c92ae9fefaef0589cd0e722eaf30c1703ec4289c7fd81beaa8a455ccee5298e31e2080c10c366a6fcf56f7d13582ad0bcad037c612b710fc595b70fbefaaca23623b60c6c39b11beb8e5843b6b3dac60f\",\n        \"Name\": \"nagydani-5-qube\",\n        \"GasOld\": 5461,\n        \"GasNew\": 32768\n    },\n    {\n        \"Input\": \"000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000400c5a1611f8be90071a43db23cc2fe01871cc4c0e8ab5743f6378e4fef77f7f6db0095c0727e20225beb665645403453e325ad5f9aeb9ba99bf3c148f63f9c07cf4fe8847ad5242d6b7d4499f93bd47056ddab8f7dee878fc2314f344dbee2a7c41a5d3db91eff372c730c2fdd3a141a4b61999e36d549b9870cf2f4e632c4d5df5f024f81c028000073a0ed8847cfb0593d36a47142f578f05ccbe28c0c06aeb1b1da027794c48db880278f79ba78ae64eedfea3c07d10e0562668d839749dc95f40467d15cf65b9cfc52c7c4bcef1cda3596dd52631aac942f146c7cebd46065131699ce8385b0db1874336747ee020a5698a3d1a1082665721e769567f579830f9d259cec1a836845109c21cf6b25da572512bf3c42fd4b96e43895589042ab60dd41f497db96aec102087fe784165bb45f942859268fd2ff6c012d9d00c02ba83eace047cc5f7b2c392c2955c58a49f0338d6fc58749c9db2155522ac17914ec216ad87f12e0ee95574613942fa615898c4d9e8a3be68cd6afa4e7a003dedbdf8edfee31162b174f965b20ae752ad89c967b3068b6f722c16b354456ba8e280f987c08e0a52d40a2e8f3a59b94d590aeef01879eb7a90b3ee7d772c839c85519cbeaddc0c193ec4874a463b53fcaea3271d80ebfb39b33489365fc039ae549a17a9ff898eea2f4cb27b8dbee4c17b998438575b2b8d107e4a0d66ba7fca85b41a58a8d51f191a35c856dfbe8aef2b00048a694bbccff832d23c8ca7a7ff0b6c0b3011d00b97c86c0628444d267c951d9e4fb8f83e154b8f74fb51aa16535e498235c5597dac9606ed0be3173a3836baa4e7d756ffe1e2879b415d3846bccd538c05b847785699aefde3e305decb600cd8fb0e7d8de5efc26971a6ad4e6d7a2d91474f1023a0ac4b78dc937da0ce607a45974d2cac1c33a2631ff7fe6144a3b2e5cf98b531a9627dea92c1dc82204d09db0439b6a11dd64b484e1263aa45fd9539b6020b55e3baece3986a8bffc1003406348f5c61265099ed43a766ee4f93f5f9c5abbc32a0fd3ac2b35b87f9ec26037d88275bd7dd0a54474995ee34ed3727f3f97c48db544b1980193a4b76a8a3ddab3591ce527f16d91882e67f0103b5cda53f7da54d489fc4ac08b6ab358a5a04aa9daa16219d50bd672a7cb804ed769d218807544e5993f1c27427104b349906a0b654df0bf69328afd3013fbe430155339c39f236df5557bf92f1ded7ff609a8502f49064ec3d1dbfb6c15d3a4c11a4f8acd12278cbf68acd5709463d12e3338a6eddb8c112f199645e23154a8e60879d2a654e3ed9296aa28f134168619691cd2c6b9e2eba4438381676173fc63c2588a3c5910dc149cf3760f0aa9fa9c3f5faa9162b0bf1aac9dd32b706a60ef53cbdb394b6b40222b5bc80eea82ba8958386672564cae3794f977871ab62337cf010001e30049201ec12937e7ce79d0f55d9c810e20acf52212aca1d3888949e0e4830aad88d804161230eb89d4d329cc83570fe257217d2119134048dd2ed167646975fc7d77136919a049ea74cf08ddd2b896890bb24a0ba18094a22baa351bf29ad96c66bbb1a598f2ca391749620e62d61c3561a7d3653ccc8892c7b99baaf76bf836e2991cb06d6bc0514568ff0d1ec8bb4b3d6984f5eaefb17d3ea2893722375d3ddb8e389a8eef7d7d198f8e687d6a513983df906099f9a2d23f4f9dec6f8ef2f11fc0a21fac45353b94e00486f5e17d386af42502d09db33cf0cf28310e049c07e88682aeeb00cb833c5174266e62407a57583f1f88b304b7c6e0c84bbe1c0fd423072d37a5bd0aacf764229e5c7cd02473460ba3645cd8e8ae144065bf02d0dd238593d8e230354f67e0b2f23012c23274f80e3ee31e35e2606a4a3f31d94ab755e6d163cff52cbb36b6d0cc67ffc512aeed1dce4d7a0d70ce82f2baba12e8d514dc92a056f994adfb17b5b9712bd5186f27a2fda1f7039c5df2c8587fdc62f5627580c13234b55be4df3056050e2d1ef3218f0dd66cb05265fe1acfb0989d8213f2c19d1735a7cf3fa65d88dad5af52dc2bba22b7abf46c3bc77b5091baab9e8f0ddc4d5e581037de91a9f8dcbc69309be29cc815cf19a20a7585b8b3073edf51fc9baeb3e509b97fa4ecfd621e0fd57bd61cac1b895c03248ff12bdbc57509250df3517e8a3fe1d776836b34ab352b973d932ef708b14f7418f9eceb1d87667e61e3e758649cb083f01b133d37ab2f5afa96d6c84bcacf4efc3851ad308c1e7d9113624fce29fab460ab9d2a48d92cdb281103a5250ad44cb2ff6e67ac670c02fdafb3e0f1353953d6d7d5646ca1568dea55275a050ec501b7c6250444f7219f1ba7521ba3b93d089727ca5f3bbe0d6c1300b423377004954c5628fdb65770b18ced5c9b23a4a5a6d6ef25fe01b4ce278de0bcc4ed86e28a0a68818ffa40970128cf2c38740e80037984428c1bd5113f40ff47512ee6f4e4d8f9b8e8e1b3040d2928d003bd1c1329dc885302fbce9fa81c23b4dc49c7c82d29b52957847898676c89aa5d32b5b0e1c0d5a2b79a19d67562f407f19425687971a957375879d90c5f57c857136c17106c9ab1b99d80e69c8c954ed386493368884b55c939b8d64d26f643e800c56f90c01079d7c534e3b2b7ae352cefd3016da55f6a85eb803b85e2304915fd2001f77c74e28746293c46e4f5f0fd49cf988aafd0026b8e7a3bab2da5cdce1ea26c2e29ec03f4807fac432662b2d6c060be1c7be0e5489de69d0a6e03a4b9117f9244b34a0f1ecba89884f781c6320412413a00c4980287409a2a78c2cd7e65cecebbe4ec1c28cac4dd95f6998e78fc6f1392384331c9436aa10e10e2bf8ad2c4eafbcf276aa7bae64b74428911b3269c749338b0fc5075ad\",\n        \"Expected\": \"5a0eb2bdf0ac1cae8e586689fa16cd4b07dfdedaec8a110ea1fdb059dd5253231b6132987598dfc6e11f86780428982d50cf68f67ae452622c3b336b537ef3298ca645e8f89ee39a26758206a5a3f6409afc709582f95274b57b71fae5c6b74619ae6f089a5393c5b79235d9caf699d23d88fb873f78379690ad8405e34c19f5257d596580c7a6a7206a3712825afe630c76b31cdb4a23e7f0632e10f14f4e282c81a66451a26f8df2a352b5b9f607a7198449d1b926e27036810368e691a74b91c61afa73d9d3b99453e7c8b50fd4f09c039a2f2feb5c419206694c31b92df1d9586140cb3417b38d0c503c7b508cc2ed12e813a1c795e9829eb39ee78eeaf360a169b491a1d4e419574e712402de9d48d54c1ae5e03739b7156615e8267e1fb0a897f067afd11fb33f6e24182d7aaaaa18fe5bc1982f20d6b871e5a398f0f6f718181d31ec225cfa9a0a70124ed9a70031bdf0c1c7829f708b6e17d50419ef361cf77d99c85f44607186c8d683106b8bd38a49b5d0fb503b397a83388c5678dcfcc737499d84512690701ed621a6f0172aecf037184ddf0f2453e4053024018e5ab2e30d6d5363b56e8b41509317c99042f517247474ab3abc848e00a07f69c254f46f2a05cf6ed84e5cc906a518fdcfdf2c61ce731f24c5264f1a25fc04934dc28aec112134dd523f70115074ca34e3807aa4cb925147f3a0ce152d323bd8c675ace446d0fd1ae30c4b57f0eb2c23884bc18f0964c0114796c5b6d080c3d89175665fbf63a6381a6a9da39ad070b645c8bb1779506da14439a9f5b5d481954764ea114fac688930bc68534d403cff4210673b6a6ff7ae416b7cd41404c3d3f282fcd193b86d0f54d0006c2a503b40d5c3930da980565b8f9630e9493a79d1c03e74e5f93ac8e4dc1a901ec5e3b3e57049124c7b72ea345aa359e782285d9e6a5c144a378111dd02c40855ff9c2be9b48425cb0b2fd62dc8678fd151121cf26a65e917d65d8e0dacfae108eb5508b601fb8ffa370be1f9a8b749a2d12eeab81f41079de87e2d777994fa4d28188c579ad327f9957fb7bdecec5c680844dd43cb57cf87aeb763c003e65011f73f8c63442df39a92b946a6bd968a1c1e4d5fa7d88476a68bd8e20e5b70a99259c7d3f85fb1b65cd2e93972e6264e74ebf289b8b6979b9b68a85cd5b360c1987f87235c3c845d62489e33acf85d53fa3561fe3a3aee18924588d9c6eba4edb7a4d106b31173e42929f6f0c48c80ce6a72d54eca7c0fe870068b7a7c89c63cdda593f5b32d3cb4ea8a32c39f00ab449155757172d66763ed9527019d6de6c9f2416aa6203f4d11c9ebee1e1d3845099e55504446448027212616167eb36035726daa7698b075286f5379cd3e93cb3e0cf4f9cb8d017facbb5550ed32d5ec5400ae57e47e2bf78d1eaeff9480cc765ceff39db500\",\n        \"Name\": \"nagydani-5-pow0x10001\",\n        \"GasOld\": 87381,\n        \"GasNew\": 524288\n    },\n    {\n        \"Input\": \"000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000c1000000000000000000000000000000000000000000000000000000000000000cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe000007d7d7d83828282348286877d7d827d407d797d7d7d7d7d7d7d7d7d7d7d5b00000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000021000000000000000000000000000000000000000000000000000000000000000cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4000007d7d7d83828282348286877d7d82\",\n        \"Expected\": \"36a385a417859b5e178d3ab9\",\n        \"Name\": \"marius-1-even\",\n        \"GasOld\": 2057,\n        \"GasNew\": 45296\n    },\n    {\n        \"Input\": \"000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000d80000000000000000000000000000000000000000000000000000000000000010ffffffffffffffff76ffffffffffffff1cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c76ec7c7c7c7ffffffffffffffc7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7ffffffffffffc7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c76ec7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7ffffffffff3f000000000000000000000000\",\n        \"Expected\": \"c3745de81615f80088ffffffffffffff\",\n        \"Name\": \"guido-1-even\",\n        \"GasOld\": 2298,\n        \"GasNew\": 51136\n    },\n    {\n        \"Input\": \"000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000d80000000000000000000000000000000000000000000000000000000000000010e0060000a921212121212121ff0000212b212121ffff1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f00feffff212121212121ffffffff1fe1e0e0e01e1f1f169f1f1f1f490afcefffffffffffffffff82828282828282828282828282828282828282828200ffff28ff2b212121ffff1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1fffffffffff0afceffffff7ffffffffff7c8282828282a1828282828282828282828282828200ffff28ff2b212121ffff1f1f1f1f1f1fd11f1f1f1f1f1f1f1f1f1f1fffffffffffffffff21212121212121fb2121212121ffff1f1f1f1f1f1f1f1fffaf82828282828200ffff28ff2b21828200\",\n        \"Expected\": \"458ef0af2549d46d24c89079499479e1\",\n        \"Name\": \"guido-2-even\",\n        \"GasOld\": 2300,\n        \"GasNew\": 51152\n    },\n    {\n        \"Input\": \"00000000000000000000000000000000000000000000000000000000000001e7000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002cb0193585a48e18aad777e9c1b54221a0f58140392e4f091cd5f42b2e8644a9384fbd58ae1edec2477ebf7edbf7c0a3f8bd21d1890ee87646feab3c47be716f842cc3da9b940af312dc54450a960e3fc0b86e56abddd154068e10571a96fff6259431632bc15695c6c8679057e66c2c25c127e97e64ee5de6ea1fc0a4a0e431343fed1daafa072c238a45841da86a9806680bc9f298411173210790359209cd454b5af7b4d5688b4403924e5f863d97e2c5349e1a04b54fcf385b1e9d7714bab8fbf5835f6ff9ed575e77dff7af5cbb641db5d537933bae1fa6555d6c12d6fb31ca27b57771f4aebfbe0bf95e8990c0108ffe7cbdaf370be52cf3ade594543af75ad9329d2d11a402270b5b9a6bf4b83307506e118fca4862749d04e916fc7a039f0d13f2a02e0eedb800199ec95df15b4ccd8669b52586879624d51219e72102fad810b5909b1e372ddf33888fb9beb09b416e4164966edbabd89e4a286be36277fc576ed519a15643dac602e92b63d0b9121f0491da5b16ef793a967f096d80b6c81ecaaffad7e3f06a4a5ac2796f1ed9f68e6a0fd5cf191f0c5c2eec338952ff8d31abc68bf760febeb57e088995ba1d7726a2fdd6d8ca28a181378b8b4ab699bfd4b696739bbf17a9eb2df6251143046137fdbbfacac312ebf67a67da9741b596000000000000419a2917c61722b0713d3b00a2f0e1dd5aebbbe09615de424700eea3c3020fe6e9ea5de9fa1ace781df28b21f746d2ab61d0da496e08473c90ff7dfe25b43bcde76f4bafb82e0975bea75f5a0591dba80ba2fff80a07d8853bea5be13ab326ba70c57b153acc646151948d1cf061ca31b02d4719fac710e7c723ca44f5b1737824b7ccc74ba5bff980aabdbf267621cafc3d6dcc29d0ca9c16839a92ed34de136da7900aa3ee43d21aa57498981124357cf0ca9b86f9a8d3f9c604ca00c726e48f7a9945021ea6dfff92d6b2d6514693169ca133e993541bfa4c4c191de806aa80c48109bcfc9901eccfdeb2395ab75fe63c67de900829d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n        \"Expected\": \"1194e971c875bb45f030316793bc6916343335b18670dfad7a4646fba99749b30283b78b818836de7400ff1a68ddad1a2dd850ec0f227441e2d4d13f5ee4b5d7a856db0a9ad1f86987e1f117d70f9e6a1a2b8d083fa82653aa16f1773b6deb2ed8a1f9e7f3a5db121c4a0c91cb954e2ec53e63422efe86c7984d79cd0e7b5e3eb8ca4980551d63f302c7d72500a84baf12c82fc7bd9b5c2ab8b9c33baf1df28b2031c58a8b2928a42c9f456e98874e22fe13cf17aa5915b11bb108b6ae40842d434604ccddcb4f64324c67b2dde32e6cd759d964f17d9cdf0046cd0ed3588e1fc4b88f67a5d4f3a870aad1cba89ead265d6ad327c8ea7ff54fe4b5e7dbe87c5c59c468543eab3675751111bfa1d6c51daf789d41dc21fd8ba9e05490f881a973a3c1567ff3129a49aa6658cf06f0a79530a7256ce5a07c2a77b4306383d538866bba376d90621c4f82d1f5f32304ee2b7170805d42418fc6967642e5648d8c64fe9c0fdff2d7c114a47add7767c8fccb8808de8c3c6e1a8880c05e16fafc1513fded8eba222dcaaa809bdb36999cc27ab8d0055009e9690e8a35b859df865dc510d25c7812d8eebbb35607ad595573f0fabd1b57970a2bc113ac6f0ca01e985032b9c2c139316ac099ed1632d2bc0fcc341343d303db2a9c3cf2ad572c6c43084b08d458bf822e92da16079f39cdb0dd10ef47f87ecae404117fc72660372cee9ea42266e7f8d973e7f6b09930ca5f96e04976bf23b9d356bbd2429597b04b7663e0e1a1228f4dfda3b854233e4888dc60c6886c1e0e8aec1705f681027b1e0b3017337557f107ef5cd272df5fd31dfec2bdffe163a8369895ffe124c0aa0ee00ca0fe1db4d5cf37b4af0e49bd73a89d88ced3d88f8e6f00d8e61ad09946d0e72cd3e25bc688a021a83758b5023daae7c269a6cbbd447aba5da7629b75801e1654ce85b8e21ccb9865654f8662e538625d75fea31000000000000000000000000000000000000000000000\",\n        \"Name\": \"guido-3-even\",\n        \"GasOld\": 5400,\n        \"GasNew\": 32400\n    },\n    {\n        \"Input\": \"00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000181000000000000000000000000000000000000000000000000000000000000000801ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2cffffffffffffffffffffffffffffffffffffffffffffffffffffffff3b10000000006c01ffffffffffffffffffffffffffffffffffffffffffffffdffffb97ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3bffffffffffffffffffffffffffffffffffffffffffffffffffffffffebafd93b37ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc5bb6affffffff3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2a\",\n        \"Expected\": \"0000000000000001\",\n        \"Name\": \"guido-4-even\",\n        \"GasOld\": 1026,\n        \"GasNew\": 94448\n    },\n    {\n        \"Input\": \"00000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000c0e8e77626586f73b955364c7b4bbf0bb7f7685ebd40e852b164633a4acbd3244c51f81bcdfc324a0dff2b5bec9d92e21cbebc4d5e29d3a3d30de3e03fbeab8d7f2ee5f854d076701c8753d72779187e404f9b2fb705c495137d78551250314a463ef5a213fe22de1cea28d60f518364ff95fe0b73660793e3efcfbe31bda68aeccc21cc9477a6aea5df8cae73422b700c47e54d892691e099167e77befc94780a920ae4155769cd69c30626f054134b5f003772473f57f84837402df6d166e66303f01681d2220bfea4bb888a5543db8c0916274ddb1ea93b144c042c01d8164c954b27ac388a17c8e9a7ba12a968f288f3308d6fe7bcdf28e685e9a2e00d8be1af19726b7662016d6404f9336493ad633777feb88c9d02a1d2428e566ac38f42c0bb66d2962ec349088ce0d03b35bf27f6114414ef558c87ad8e543754a352f7dffcaca429690688595ab1d1b349d9295b480a82f43ac5c9112fe40720545cc78501cd8b42f3605212fe06a835c9cbc0328e07e94aedb2ac11f6d6649e7fcd8c43\",\n        \"Expected\": \"120cf297dbe810911c7d060e109e03699ccefa00a257d296c5a14b4180776c5f7c0d7f1cd789c694807689729af267b53f00373f395dee264a3daba11fcac1fa8875aee0950acd8fa656f1fc58077a7549d794dd160506ecea1acc9c0cda13795749c94f9973b683ce2162866e8d6b5b1165a4c7fa4234964d394d6ec4e0113698b89d173e24a962dd7a41a1819b0fef188ef64e7ee264595dce0d76fbc3ba42d5de833b143c8744366effede8bc8197e8f747ff8cdbc0bf1a93560bec960ca9\",\n        \"Name\": \"marcin-1-base-heavy\",\n        \"GasOld\": 200,\n        \"GasNew\": 1152\n    },\n    {\n        \"Input\": \"0000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000005100000000000000000000000000000000000000000000000000000000000000080001020304050607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001020304050607\",\n        \"Expected\": \"0000000000000000\",\n        \"Name\": \"marcin-1-exp-heavy\",\n        \"GasOld\": 215,\n        \"GasNew\": 16624\n    },\n    {\n        \"Input\": \"000000000000000000000000000000000000000000000000000000000000002800000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000028e8e77626586f73b955364c7b4bbf0bb7f7685ebd40e852b164633a4acbd3244c000102030405060701fffffff01681d2220bfea4bb888a5543db8c0916274ddb1ea93b144c042c01d8164c950001020304050607\",\n        \"Expected\": \"1abce71dc2205cce4eb6934397a88136f94641342e283cbcd30e929e85605c6718ed67f475192ffd\",\n        \"Name\": \"marcin-1-balanced\",\n        \"GasOld\": 200,\n        \"GasNew\": 1200\n    },\n    {\n        \"Input\": \"000000000000000000000000000000000000000000000000000000000000019800000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000198e8e77626586f73b955364c7b4bbf0bb7f7685ebd40e852b164633a4acbd3244c51f81bcdfc324a0dff2b5bec9d92e21cbebc4d5e29d3a3d30de3e03fbeab8d7f2ee5f854d076701c8753d72779187e404f9b2fb705c495137d78551250314a463ef5a213fe22de1cea28d60f518364ff95fe0b73660793e3efcfbe31bda68aeccc21cc9477a6aea5df8cae73422b700c47e54d892691e099167e77befc94780a920ae4155769cd69c30626f054134b5f003772473f57f84837402df6d166e663c29021b0e084f7dc16f6ec88cc597f1aea9f8e0b9501e0f7a546805d2a20eeda0bf080aeb3ed7ea6f9174d804bd242f0b31ff1ea24800344abb580cd87f61ca75a013a87733553966400242399dee3760877fead2cd87287747155e47a854acb50fe07922f57ae3b4553201bfd7c11aca85e1541f91db8e62dca9c418dc5feae086c9487350539c884510044efce5e3f2aaffca4215c12b9044506375097fecd9b22e2ef46f01f1af8aff742aebf96bdcaf55a341600971dc62555376b9e98a8000102030405060708090a0b0c0d0e0f101112131415161703f01681d2220bfea4bb888a5543db8c0916274ddb1ea93b144c042c01d8164c954b27ac388a17c8e9a7ba12a968f288f3308d6fe7bcdf28e685e9a2e00d8be1af19726b7662016d6404f9336493ad633777feb88c9d02a1d2428e566ac38f42c0bb66d2962ec349088ce0d03b35bf27f6114414ef558c87ad8e543754a352f7dffcaca429690688595ab1d1b349d9295b480a82f43ac5c9112fe40720545cc78501cd8b42f3605212fe06a835c9cbc0328e07e94aedb2ac11f6d6649e7fcd8c43ddce2bd0cdc6c22c4dcd345735040d5bfe3f09b7c61362089f728e2222db96cab2f2c2ccf43574f9e119f4860fd0f1b6036a43ad9db8a428ea09a4ee385112f3fe9c6656ea2cec604cbb5a9227526653bfa7035e4ae80010b1ba16a76608d5dde0a62bc019e9047b5ec05b1005fd017366130a4ba555e7be654561ee3f539c93cb2c9988fca71bf0ad9c4a426b924641a28e1e4adb93609bfa5b2bc81714cbba1110208b86d7b87be28bdf63a62e33ae81dbcc43de9192bd192c40e85faab539000102030405060708090a0b0c0d0e0f1011121314151617\",\n        \"Expected\": \"817d05c4d540ace3f250fd082e2deb8c2097410fcfe4ce40862cfa015b7f62a7bb72ec1af2915cad66294447b45d177fe759eb80370b0dbd3c0e1c448d54db81eadc11e40c19e394d066a5c019c443798a98d4afd116fc220593d42fbf191b6af0ae75410badb641187ba24a0b968f742a75e2822853f137151d9ea972fd1f36b7c7cc4e71355ecf50648aec094b864cfae9316c0a7be3ddb8ab2d0050b2a029ee956c2366d49430c8f889f29ab514aea8e5b8dec40ba1b49432e30aee32ec45e96dd548205a79d8f8f918eed46acb2115c59086b1011b1d2b093cea723535c3d95efc8e51a7da43b80586d69eb7f213dfb06f7a8e789a9472392bd224411b50f8ca6f2862bcd63431912d1ff99c8d76408245da9e4bea649f0eb930b32922f2d0a345a206160be44d418f1a6c74bd49c4618392ef9350b264a461dfc684c7343211e27675b027054f1cb3d4a5b1a066d3a3ea2eed9caf13251d8be936818f15274e8e3d7539b7c5f216cef327a270fd2a886fbf679c163fb5806249f2c74da5ee0e3ffe9ad1fde2634b29b35da6da6d184ab6ae70199229\",\n        \"Name\": \"marcin-2-base-heavy\",\n        \"GasOld\": 867,\n        \"GasNew\": 5202\n    },\n    {\n        \"Input\": \"000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000010000102030405060708090a0b0c0d0e0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000102030405060708090a0b0c0d0e0f\",\n        \"Expected\": \"00000000000000000000000000000000\",\n        \"Name\": \"marcin-2-exp-heavy\",\n        \"GasOld\": 852,\n        \"GasNew\": 16368\n    },\n    {\n        \"Input\": \"000000000000000000000000000000000000000000000000000000000000003800000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000038e8e77626586f73b955364c7b4bbf0bb7f7685ebd40e852b164633a4acbd3244c000102030405060708090a0b0c0d0e0f10111213141516172bfffffffffffffff01681d2220bfea4bb888a5543db8c0916274ddb1ea93b144c042c01d8164c95000102030405060708090a0b0c0d0e0f1011121314151617\",\n        \"Expected\": \"86bef3367fc7117c8a6b825cadebe80f3e94c321dda73e9e240b98188a1d5c071c60a195097c8d1fb85ce03a2e1b6964846edee5aa2c3f46\",\n        \"Name\": \"marcin-2-balanced\",\n        \"GasOld\": 996,\n        \"GasNew\": 5978\n    },\n    {\n        \"Input\": \"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020e8e77626586f73b955364c7b4bbf0bb7f7685ebd40e852b164633a4acbd3244cfffffffffffffffffffffffffffffffff01681d2220bfea4bb888a5543db8c0916274ddb1ea93b144c042c01d8164c95\",\n        \"Expected\": \"4004762c491606a5132134da6086284f74cc8e14b08f18b90fc09f31bca3d78f\",\n        \"Name\": \"marcin-3-base-heavy\",\n        \"GasOld\": 677,\n        \"GasNew\": 2032\n    },\n    {\n        \"Input\": \"000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000018000102030405060708090a0b0c0d0e0f1011121314151617ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000102030405060708090a0b0c0d0e0f1011121314151617\",\n        \"Expected\": \"000000000000000000000000000000000000000000000000\",\n        \"Name\": \"marcin-3-exp-heavy\",\n        \"GasOld\": 765,\n        \"GasNew\": 4080\n    },\n    {\n        \"Input\": \"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020e8e77626586f73b955364c7b4bbf0bb7f7685ebd40e852b164633a4acbd3244cfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01681d2220bfea4bb888a5543db8c0916274ddb1ea93b144c042c01d8164c95\",\n        \"Expected\": \"2d3feee20d394af68dd6744b86a8aca6a4a0b7f01bbcd3c3eec768245ca6acee\",\n        \"Name\": \"marcin-3-balanced\",\n        \"GasOld\": 1360,\n        \"GasNew\": 4080\n    },\n    {\n        \"Input\": \"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020fd10e29482419533334ff25031f487f1fc0d2d179acc9e2cb7719f4e95f71e430000000000000000000000000000000000000000000000000000000000000000b5d3354acc9731339fb0e64d666aa79675619ea5f5b66b70c5e92640568c51c6\",\n        \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n        \"Name\": \"zero-exponent-32bytes\",\n        \"GasOld\": 200,\n        \"GasNew\": 500\n    },\n    {\n        \"Input\": \"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000208d74b1229cc36912165d7ed62334d5ce0683ad12dbade86cdbd705f46693d6c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008f70e8f94c5ad28ed971e258ea3854ebf57131ae4c842e5cafe1c70db8272caf\",\n        \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n        \"Name\": \"zero-exponent-64bytes\",\n        \"GasOld\": 1365,\n        \"GasNew\": 8192\n    },\n    {\n        \"Input\": \"0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000309a06db9abffebe2e2b14531c3b729b4c9f74a890a1b86e4e8ee728507536b4d20dd5982acdfd508a8c4549fd0622e6266d59d0ad387eaa9163aeb746c8a37aed45f17f97015c19a1e086c28caa1d0a499bb63b3e0d4e1cff87319d07e3195581\",\n        \"Expected\": \"348b4411d0bf6337d3061169eca6114b54c5c22adbc453834b11e16fc54c73d9c7f34047b0585ab6a11609104235dd91\",\n        \"Name\": \"unequal-base-mod-lengths\",\n        \"GasOld\": 3060,\n        \"GasNew\": 18360\n    },\n    {\n        \"Input\": \"00000000000000000000000000000000000000000000000000000000000000070000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000702c06a45e159cb4c7741ec7533282f\",\n        \"Expected\": \"291e7f48fc3b41\",\n        \"Name\": \"word-boundary-7bytes\",\n        \"GasOld\": 200,\n        \"GasNew\": 500\n    },\n    {\n        \"Input\": \"000000000000000000000000000000000000000000000000000000000000000900000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000009c38b617604d927dd7ecadecd1b21bdb6022001\",\n        \"Expected\": \"c63e1e2b3d44e3dedf\",\n        \"Name\": \"word-boundary-9bytes\",\n        \"GasOld\": 200,\n        \"GasNew\": 500\n    },\n    {\n        \"Input\": \"000000000000000000000000000000000000000000000000000000000000001f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000021425057b404526baca2d46d743728f0a9d2f5ec451e8c5691448e7815a83c2becd8153b299c4e0a3341c06ead40d6a9c989be6e08f11479f09412293da072e793d3470e7620e29e0445590c8d7659ed58b69ec6e9dfa4c1fc15c4654a91f398fd\",\n        \"Expected\": \"5b2936884b205b7f53cef1d677b23e435564ddc25d8601b1a93c822f8b5a657e6b\",\n        \"Name\": \"32byte-boundary-31-32-33\",\n        \"GasOld\": 2125,\n        \"GasNew\": 12750\n    },\n    {\n        \"Input\": \"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000204d459c333fe2e1ac503a3659b33931c9193190863d27df62003adf014222d472b32aad8de34175ecfe566893f02ae529bc6285c4b4722107f5342f29cfe9fdfe151b6c13559b559685d1eb88a452b457e0f91e6879fe8e3faf52c1cc0cea8bda134318d8e5779c9fb294ec35adc1c9af69d1fc2d091cfbdb3d39a31822b4446ecb02b8e3ae81b97ca7651d50a7c4f09f\",\n        \"Expected\": \"28daf00293ae1dabe2a1a3caefc6fe0f1581bae146c0ad0d7f9650f7c4faf0f0\",\n        \"Name\": \"large-exponent-80bytes\",\n        \"GasOld\": 3408,\n        \"GasNew\": 16368\n    },\n    {\n        \"Input\": \"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000206ea6c150792130fbfb05b72aacba79157f9b86e05c975cb1585e68fb663801da000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffff148f0b9e252c56e138f8c65a832ebca75241a386a918c14f466fb84a22f8b771\",\n        \"Expected\": \"08d8fab720b60be2e3af8437e15e467c625cd8704c2382449e7a50437355c6be\",\n        \"Name\": \"large-exponent-128bytes-lsb\",\n        \"GasOld\": 4096,\n        \"GasNew\": 24576\n    },\n    {\n        \"Input\": \"00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000111d87c\",\n        \"Expected\": \"65\",\n        \"Name\": \"minimal-1byte-all\",\n        \"GasOld\": 200,\n        \"GasNew\": 500\n    },\n    {\n        \"Input\": \"00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000004071ec16921dffa0fb375c10cad75c7f4a750fd9562208d5d4d47ac008bafca749f7d9291e15b3515643deecc89abe8f4da3a388bff32cfac6cf53128409376bb998af5c2279288e00890b4e04d043ff8d8ddf14ce4b96ecc8ba20a352fb39fbaa4fb870e26b2e4492efcdc6854b8ccf92a307b7cb6afef227a3d238280d7214368f\",\n        \"Expected\": \"2529b7fe039758e47401e0bb63feab7155d7345437e24fad6f6fb4a7fe6670ded943ba45fed2473921f1e7b6f04212413195b4aa38ac56cd7f9ed037bec0d586\",\n        \"Name\": \"64byte-base-1byte-exp\",\n        \"GasOld\": 200,\n        \"GasNew\": 896\n    },\n    {\n        \"Input\": \"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000480000000000000000000000000000000000000000000000000000000000000020bfdcc8e5f778ddba5192ab872af34da969f048590a5d4eb7ae02c005de33d5c90000000000000000000000000000000000000000000000000000000000000000ff000000000000000000000000000000000000000000000000000000000000000000000000000000cf0d1b6669e951fa915414d3da69a8c9d25c35b641c0067dd7b9ace41c7e9053\",\n        \"Expected\": \"7d059d490060260b9f2722e928155843abe4845078a0669bcbfc7675a10ebc87\",\n        \"Name\": \"exponent-72bytes-msb-at-33\",\n        \"GasOld\": 1706,\n        \"GasNew\": 10240\n    },\n    {\n        \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000660bfd6246b7f481d4a9955bb2bd9ee970e21063193ae484c413aea066fc949d\",\n        \"Expected\": \"\",\n        \"Name\": \"zero-length-base-mod\",\n        \"GasOld\": 200,\n        \"GasNew\": 4064\n    },\n    {\n        \"Input\": \"000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100e6c494fcb8039d05cc2133c7aa6ef221e1f27633e99a022941d84fa0bbe764b01ac4d2c86e2fc1f8d59368bd3a0c279f562cedb4b5621ede72f7cb4acd5e3878225427a80c932f22958aaa902ba4d39d4d9ef9609da7f5c9cdc788871d85f2498237741e96d864be6f055c883054274e97e28a137578c1ed1cf5e4eb5a1a549c97315b3fed5e9dfbc9a8ceee6b125eb182667abb5ed57c336bd55c04c002e0b184ef337466696c8cab404f4aa2170c9907e2be22e118720e47856e6115294912f8ca46769892cc4d0df67ffcc5e723a9a8798fe4c504d756f58f7cb6800414006431168ce6c2f86ec70d51ad73947c42834ce176770de3134099f1b51aacebb2f9b95c74aeee4ee9cbaeb6cbc8dd7fb90f178ba9b7ae19ad5599db229b868ed0432e8ed31b556a22197b23a39e93fba545efef6de3f11b9d537e082e273c64a5344622ddfd96cd27a874c44bb96f2be16d683284fa083339937e6429706375dff7c393abcd26e67cddbf8aa43ceb092dd12d0e4c472e4479697d6184ff4dde6e65a19ace7d712c186ffaf8dd3ca3052cd5725b37ed5147331a66608a114f642d6173bd58a8cb28c6b7a8e90b976ca83bd8fc83bba936b4cf0e82d192f66d3c526bf390d5dcd5b1e3a139867e43e01a6e67394b33419acb8a4bab77081a2ce91bcd65bc5bad08de86862670cae78ec2064c09371aa6a477a948950020b145d3e4230b81bd7d96be5869b335afc3cc4b3197aff99f9441090fb050c925003f39ce7c227f5038cda2a37cd9e856435058fb2edbdf34ad9137e71913522a5858023833729dbe7ae1e1b445f01f749599b7827fabf0f4c2e92c60c6f870d827cc154d7cc9c95bf6b2eef4a21b1caef80b425bfd1f21cb30836dba58fb34a75aaecf03acd14c74d600df979673421dcd3f122e4b348a944983b51a83e61ea50dbd7f188df94b97340b949b196cf226264254215bbb53f25ad584c70855579f3fb8f705297bf6a68e2cadc32eb3933b6bb6e4e3efaa6e518a2b7426eb56c4744060bb8c9be50c8213966c0227e9507d74be224673bfe56c44856d9361d681a645812538\",\n        \"Expected\": \"20000c5a76d926aa5a60f13bab4c8c232de4ad42c4d09f01b04ac0beccbea8a24939911b065f62800527fdcfbb0ee843c2bf5e8d02c5141cb173fbb607b3f3845085c1c3f0f301c72cc8d7db666555ba628ee33694bceb859c1e1953995d85474c069e26f849365c833f2b97b3274a0fdd4bc21cbfc4d00b202afed29aa192e03aa635651087404cf8370f16fd355804da06a22716b09f7a94a39f98126237882b01a13d7de25b5a0196d620a1269b240ac908ab125276e7ed4038d63b1812820a71a867f8280d193ca9f13f012893015ae92d9677778000247828526383550c13ba9f3be4b9ca2a5d9ecdc77c6047fcb1bd11a995f3296becf16f67dcf77a60\",\n        \"Name\": \"256byte-all-params\",\n        \"GasOld\": 698709,\n        \"GasNew\": 7862272\n    },\n    {\n        \"Input\": \"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000021000000000000000000000000000000000000000000000000000000000000002014fadab683b091c9cbde019f7a0bdc68a433530323e969b1b258d622c620f84900000000000000000000000000000000000000000000000000000000000000ffffa99f6f95feb7ac53b4ff1bfed874e4f0855076c182570be582a570356f70e930\",\n        \"Expected\": \"5ae98cd73052457257f43b007755e469d1867fbafa6abfd1db32fd8f0851c3d9\",\n        \"Name\": \"33byte-exponent-last-2bytes-ff\",\n        \"GasOld\": 200,\n        \"GasNew\": 500\n    },\n    {\n        \"Input\": \"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000203fdb9a1dfe54fd10fe2793c41f01be9cdfb3d7ed8c252b441207212bc7c05ee600000000000000000000000000000000000000000000000000000000000000006bd85245a361e3ecd601fa587bc62be2b605cebacc1a1042efba2f80dfe66ed94d529957835bd5f953006f7760cdb6b98157a6ea8cca39fdb5cd7e4fbb5b3c20\",\n        \"Expected\": \"17c21dbded148914b96f2f554df601ae737e5f98ca0fd3f0b84141be20888220\",\n        \"Name\": \"exponent-with-leading-zeros\",\n        \"GasOld\": 1365,\n        \"GasNew\": 8192\n    },\n    {\n        \"Input\": \"00000000000000000000000000000000000000000000000000000000000000210000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002134f975ffeb77c28b5c561b98cb0cba5bb73a9c179e70be3a6ba7dcac9a0369ae4d25957a159e10f428d2a88aad5bea4332ddecd2ed4d2347c958870a8a20ced5a8be2a6057d92c114c29f3c5b4e8add0cd12ac795dc02fe71483c21c797c9c099c38\",\n        \"Expected\": \"3b62ede56212bdf5c8f67a4e10a7786cf5ea6aeae81cfa3069c7c0d0b9a88a7c81\",\n        \"Name\": \"33byte-base-32byte-exp-33byte-mod\",\n        \"GasOld\": 2108,\n        \"GasNew\": 12650\n    }\n]"
  },
  {
    "path": "tests/osaka/eip7918_blob_reserve_price/__init__.py",
    "content": "\"\"\"Cross-client EIP-7918 Tests.\"\"\"\n"
  },
  {
    "path": "tests/osaka/eip7918_blob_reserve_price/conftest.py",
    "content": "\"\"\"\nPytest (plugin) definitions local to EIP-7918 tests.\n\nMostly a copy of `tests/cancun/eip4844_blobs/conftest.py`.\n\"\"\"\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import Environment\n\nfrom .spec import Spec\n\n\n@pytest.fixture\ndef target_blobs_per_block(fork: Fork) -> int:\n    \"\"\"Return default number of target blobs per block.\"\"\"\n    return fork.target_blobs_per_block()\n\n\n@pytest.fixture\ndef max_blobs_per_block(fork: Fork) -> int:\n    \"\"\"Return default number of max blobs per block.\"\"\"\n    return fork.max_blobs_per_block()\n\n\n@pytest.fixture\ndef blob_gas_per_blob(fork: Fork) -> int:\n    \"\"\"Return default blob gas cost per blob.\"\"\"\n    return fork.blob_gas_per_blob()\n\n\n@pytest.fixture(autouse=True)\ndef parent_excess_blobs() -> int | None:\n    \"\"\"\n    Return default excess blobs of the parent block.\n\n    Can be overloaded by a test case to provide a custom parent excess blob\n    count.\n    \"\"\"\n    return 10  # Defaults to a blob gas price of 1.\n\n\n@pytest.fixture(autouse=True)\ndef parent_blobs() -> int | None:\n    \"\"\"\n    Return default data blobs of the parent block.\n\n    Can be overloaded by a test case to provide a custom parent blob count.\n    \"\"\"\n    return 0\n\n\n@pytest.fixture\ndef parent_excess_blob_gas(\n    parent_excess_blobs: int | None,\n    blob_gas_per_blob: int,\n) -> int | None:\n    \"\"\"\n    Calculate the excess blob gas of the parent block from the excess blobs.\n    \"\"\"\n    if parent_excess_blobs is None:\n        return None\n    assert parent_excess_blobs >= 0\n    return parent_excess_blobs * blob_gas_per_blob\n\n\n@pytest.fixture\ndef blobs_per_tx() -> int:\n    \"\"\"\n    Total number of blobs per transaction.\n\n    Can be overloaded by a test case to provide a custom blobs per transaction\n    count.\n    \"\"\"\n    return 1\n\n\n@pytest.fixture\ndef block_base_fee_per_gas_delta() -> int:\n    \"\"\"Delta to add to the block base fee. Default is 0.\"\"\"\n    return 0\n\n\n@pytest.fixture\ndef block_base_fee_per_gas(\n    fork: Fork,\n    parent_excess_blobs: int | None,\n    block_base_fee_per_gas_delta: int,\n) -> int:\n    \"\"\"\n    Block base fee per gas. Default is 7 unless a delta is provided or\n    overloaded.\n    \"\"\"\n    if block_base_fee_per_gas_delta != 0:\n        if parent_excess_blobs is None:\n            blob_base_fee = 1\n        else:\n            excess_blob_gas = parent_excess_blobs * fork.blob_gas_per_blob()\n            blob_gas_price_calculator = fork.blob_gas_price_calculator()\n            blob_base_fee = blob_gas_price_calculator(excess_blob_gas=excess_blob_gas)\n        boundary_base_fee = 8 * blob_base_fee\n        return boundary_base_fee + block_base_fee_per_gas_delta\n    return 7\n\n\n@pytest.fixture\ndef excess_blob_gas(\n    fork: Fork,\n    parent_excess_blobs: int | None,\n    parent_blobs: int | None,\n    block_base_fee_per_gas: int,\n) -> int | None:\n    \"\"\"\n    Calculate the excess blob gas of the block under test from the parent\n    block.\n\n    Value can be overloaded by a test case to provide a custom excess blob gas.\n    \"\"\"\n    if parent_excess_blobs is None or parent_blobs is None:\n        return None\n    return fork.excess_blob_gas_calculator()(\n        parent_excess_blobs=parent_excess_blobs,\n        parent_blob_count=parent_blobs,\n        parent_base_fee_per_gas=block_base_fee_per_gas,\n    )\n\n\n@pytest.fixture\ndef correct_excess_blob_gas(\n    fork: Fork,\n    parent_excess_blobs: int | None,\n    parent_blobs: int | None,\n    block_base_fee_per_gas: int,\n) -> int:\n    \"\"\"\n    Calculate the correct excess blob gas of the block under test from the\n    parent block.\n\n    Should not be overloaded by a test case.\n    \"\"\"\n    if parent_excess_blobs is None or parent_blobs is None:\n        return 0\n    return fork.excess_blob_gas_calculator()(\n        parent_excess_blobs=parent_excess_blobs,\n        parent_blob_count=parent_blobs,\n        parent_base_fee_per_gas=block_base_fee_per_gas,\n    )\n\n\n@pytest.fixture\ndef blob_gas_price(\n    fork: Fork,\n    excess_blob_gas: int | None,\n) -> int | None:\n    \"\"\"Return blob gas price for the block of the test.\"\"\"\n    if excess_blob_gas is None:\n        return None\n    get_blob_gas_price = fork.blob_gas_price_calculator()\n    return get_blob_gas_price(\n        excess_blob_gas=excess_blob_gas,\n    )\n\n\n@pytest.fixture\ndef correct_blob_gas_used(\n    fork: Fork,\n    blobs_per_tx: int,\n) -> int:\n    \"\"\"Correct blob gas used by the test transaction.\"\"\"\n    return fork.blob_gas_per_blob() * blobs_per_tx\n\n\n@pytest.fixture\ndef reserve_price(\n    block_base_fee_per_gas: int,\n) -> int:\n    \"\"\"Calculate the blob base fee reserve price for the current base fee.\"\"\"\n    return Spec.get_reserve_price(block_base_fee_per_gas)\n\n\n@pytest.fixture\ndef is_reserve_price_active(\n    block_base_fee_per_gas: int,\n    blob_gas_price: int,\n) -> bool:\n    \"\"\"Check if the reserve price mechanism should be active.\"\"\"\n    return Spec.is_reserve_price_active(block_base_fee_per_gas, blob_gas_price)\n\n\n@pytest.fixture\ndef genesis_excess_blob_gas(\n    parent_excess_blob_gas: int | None,\n) -> int:\n    \"\"\"Return default excess blob gas for the genesis block.\"\"\"\n    return parent_excess_blob_gas if parent_excess_blob_gas else 0\n\n\n@pytest.fixture\ndef env(\n    block_base_fee_per_gas: int,\n    genesis_excess_blob_gas: int,\n) -> Environment:\n    \"\"\"\n    Prepare the environment of the genesis block for all blockchain tests.\n    \"\"\"\n    return Environment(\n        excess_blob_gas=genesis_excess_blob_gas,\n        blob_gas_used=0,\n        base_fee_per_gas=block_base_fee_per_gas,\n    )\n\n\n@pytest.fixture\ndef tx_max_fee_per_blob_gas(blob_gas_price: int | None) -> int:\n    \"\"\"Max fee per blob gas based on actual blob gas price.\"\"\"\n    if blob_gas_price is None:\n        return 1\n    return blob_gas_price\n"
  },
  {
    "path": "tests/osaka/eip7918_blob_reserve_price/spec.py",
    "content": "\"\"\"Defines EIP-7918 specification constants and functions.\"\"\"\n\nfrom dataclasses import dataclass\n\n# Base the spec on EIP-4844 which EIP-7918 extends\nfrom ...cancun.eip4844_blobs.spec import Spec as EIP4844Spec\n\n\n@dataclass(frozen=True)\nclass ReferenceSpec:\n    \"\"\"Defines the reference spec version and git path.\"\"\"\n\n    git_path: str\n    version: str\n\n\nref_spec_7918 = ReferenceSpec(\"EIPS/eip-7918.md\", \"be1dbefafcb40879e3f6d231fad206c62f5b371b\")\n\n\n@dataclass(frozen=True)\nclass Spec(EIP4844Spec):\n    \"\"\"\n    Parameters from the EIP-7918 specifications. Extends EIP-4844 spec with the\n    new reserve price constant and functionality.\n    \"\"\"\n\n    BLOB_BASE_COST = 2**13\n\n    @classmethod\n    def get_reserve_price(\n        cls,\n        base_fee_per_gas: int,\n    ) -> int:\n        \"\"\"Calculate the reserve price for blob gas given the blob base fee.\"\"\"\n        return (cls.BLOB_BASE_COST * base_fee_per_gas) // cls.GAS_PER_BLOB\n\n    @classmethod\n    def is_reserve_price_active(\n        cls,\n        base_fee_per_gas: int,\n        blob_base_fee: int,\n    ) -> bool:\n        \"\"\"Check if the reserve price mechanism should be active.\"\"\"\n        reserve_price = cls.get_reserve_price(base_fee_per_gas)\n        return reserve_price > blob_base_fee\n\n    @classmethod\n    def calc_effective_blob_base_fee(\n        cls,\n        base_fee_per_gas: int,\n        blob_base_fee: int,\n    ) -> int:\n        \"\"\"\n        Calculate the effective blob base fee considering the reserve price.\n        \"\"\"\n        reserve_price = cls.get_reserve_price(base_fee_per_gas)\n        return max(reserve_price, blob_base_fee)\n"
  },
  {
    "path": "tests/osaka/eip7918_blob_reserve_price/test_blob_base_fee.py",
    "content": "\"\"\"\n [EIP-7918: Blob base fee bounded by execution cost](https://eips.ethereum.org/EIPS/eip-7918).\n\nTest the blob base fee reserve price mechanism for\n[EIP-7918: Blob base fee bounded by execution cost](https://eips.ethereum.org/EIPS/eip-7918).\n\"\"\"\n\nfrom typing import Dict, List\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    Account,\n    Address,\n    Alloc,\n    Block,\n    BlockchainTestFiller,\n    Environment,\n    Hash,\n    Header,\n    Transaction,\n    add_kzg_version,\n)\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom .spec import Spec, ref_spec_7918\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_7918.git_path\nREFERENCE_SPEC_VERSION = ref_spec_7918.version\n\npytestmark = pytest.mark.valid_from(\"Osaka\")\n\n\n@pytest.fixture\ndef sender(pre: Alloc) -> Address:\n    \"\"\"Sender account with enough balance for tests.\"\"\"\n    return pre.fund_eoa(10**18)\n\n\n@pytest.fixture\ndef destination_account(pre: Alloc) -> Address:\n    \"\"\"Contract that stores the blob base fee for verification.\"\"\"\n    code = Op.SSTORE(0, Op.BLOBBASEFEE)\n    return pre.deploy_contract(code)\n\n\n@pytest.fixture\ndef tx_gas() -> int:\n    \"\"\"Gas limit for transactions sent during test.\"\"\"\n    return 100_000\n\n\n@pytest.fixture\ndef tx_value() -> int:\n    \"\"\"Value for transactions sent during test.\"\"\"\n    return 1\n\n\n@pytest.fixture\ndef blob_hashes_per_tx(blobs_per_tx: int) -> List[Hash]:\n    \"\"\"Blob hashes for the transaction.\"\"\"\n    return add_kzg_version(\n        [Hash(x) for x in range(blobs_per_tx)],\n        Spec.BLOB_COMMITMENT_VERSION_KZG,\n    )\n\n\n@pytest.fixture\ndef tx(\n    sender: Address,\n    destination_account: Address,\n    tx_gas: int,\n    tx_value: int,\n    blob_hashes_per_tx: List[Hash],\n    block_base_fee_per_gas: int,\n    tx_max_fee_per_blob_gas: int,\n) -> Transaction:\n    \"\"\"Blob transaction for the block.\"\"\"\n    return Transaction(\n        ty=Spec.BLOB_TX_TYPE,\n        sender=sender,\n        to=destination_account,\n        value=tx_value,\n        gas_limit=tx_gas,\n        max_fee_per_gas=block_base_fee_per_gas,\n        max_priority_fee_per_gas=0,\n        max_fee_per_blob_gas=tx_max_fee_per_blob_gas,\n        access_list=[],\n        blob_versioned_hashes=blob_hashes_per_tx,\n    )\n\n\n@pytest.fixture\ndef block(\n    tx: Transaction,\n    fork: Fork,\n    parent_excess_blobs: int,\n    block_base_fee_per_gas: int,\n    blob_gas_per_blob: int,\n) -> Block:\n    \"\"\"Single block fixture.\"\"\"\n    blob_count = len(tx.blob_versioned_hashes) if tx.blob_versioned_hashes else 0\n    excess_blob_gas_calculator = fork.excess_blob_gas_calculator()\n    expected_excess_blob_gas = excess_blob_gas_calculator(\n        parent_excess_blobs=parent_excess_blobs,\n        parent_blob_count=0,\n        parent_base_fee_per_gas=block_base_fee_per_gas,\n    )\n    return Block(\n        txs=[tx],\n        header_verify=Header(\n            excess_blob_gas=expected_excess_blob_gas,\n            blob_gas_used=blob_count * blob_gas_per_blob,\n        ),\n    )\n\n\n@pytest.fixture\ndef post(\n    destination_account: Address,\n    blob_gas_price: int,\n    tx_value: int,\n) -> Dict[Address, Account]:\n    \"\"\"Post state storing the effective blob base fee.\"\"\"\n    return {\n        destination_account: Account(\n            storage={0: blob_gas_price},\n            balance=tx_value,\n        )\n    }\n\n\n@pytest.mark.parametrize(\n    \"block_base_fee_per_gas\",\n    [1, 7, 15, 16, 17, 100, 1000, 10000],\n)\n@pytest.mark.parametrize_by_fork(\n    \"parent_excess_blobs\",\n    lambda fork: range(0, fork.target_blobs_per_block() + 1),\n)\ndef test_reserve_price_various_base_fee_scenarios(\n    blockchain_test: BlockchainTestFiller,\n    env: Environment,\n    pre: Alloc,\n    block: Block,\n    post: Dict[Address, Account],\n) -> None:\n    \"\"\"\n    Test reserve price mechanism across various block base fee and excess blob\n    gas scenarios.\n    \"\"\"\n    blockchain_test(\n        pre=pre,\n        post=post,\n        blocks=[block],\n        genesis_environment=env,\n    )\n\n\n@pytest.mark.parametrize_by_fork(\n    \"parent_excess_blobs\",\n    # Keep max assuming this will be greater than 20 in the future, to test a\n    # blob fee of > 1 :)\n    lambda fork: [0, 3, fork.target_blobs_per_block(), fork.max_blobs_per_block()],\n)\n@pytest.mark.parametrize(\"block_base_fee_per_gas_delta\", [-2, -1, 0, 1, 10, 100])\ndef test_reserve_price_boundary(\n    blockchain_test: BlockchainTestFiller,\n    env: Environment,\n    pre: Alloc,\n    block: Block,\n    post: Dict[Address, Account],\n) -> None:\n    \"\"\"\n    Tests the reserve price boundary mechanism. Note the default block base fee\n    per gas is 7 (delta is 0). With a non zero delta the block base fee per gas\n    is set to (boundary * blob base fee) + delta.\n\n    Example scenarios from parametrization:\n    Assume\n      parent_excess_blobs = 3:\n      delta=-2:\n      blob_base_fee=1,\n      boundary=8,\n      block_base_fee_per_gas=8+(-2)=6, 6 < 8,\n      reserve inactive,\n      effective_fee=1 delta=0:\n      blob_base_fee=1, boundary=8,\n      block_base_fee_per_gas=7, 7 < 8,\n      reserve inactive, effective_fee=1\n      delta=100: blob_base_fee=1,\n      boundary=8, block_base_fee_per_gas=8+100=108, 108 > 8,\n      reserve active, effective_fee=max(108/8, 1)=13\n\n    All values give a blob base_ fee of 1 because we need a much higher excess\n    blob gas to increase the blob fee. This only increases to 2 at 20 excess\n    blobs.\n    \"\"\"\n    blockchain_test(\n        genesis_environment=env,\n        pre=pre,\n        blocks=[block],\n        post=post,\n    )\n"
  },
  {
    "path": "tests/osaka/eip7918_blob_reserve_price/test_blob_reserve_price_with_bpo.py",
    "content": "\"\"\"\n [EIP-7918: Blob base fee bounded by execution\ncost](https://eips.ethereum.org/EIPS/eip-7918).\n\"\"\"\n\nimport pytest\n\nfrom ethereum_test_tools import (\n    Alloc,\n    Block,\n    BlockchainTestFiller,\n    Environment,\n)\n\nfrom .spec import ref_spec_7918\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_7918.git_path\nREFERENCE_SPEC_VERSION = ref_spec_7918.version\n\n\n@pytest.mark.valid_at_transition_to(\"BPO1\")\n@pytest.mark.valid_for_bpo_forks()\n@pytest.mark.parametrize(\"parent_excess_blobs\", [27])\n@pytest.mark.parametrize(\"block_base_fee_per_gas\", [17])\ndef test_blob_base_fee_with_bpo_transition(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    env: Environment,\n) -> None:\n    \"\"\"Test BPO1 transition with EIP-7918 reserve mechanism.\"\"\"\n    blockchain_test(\n        genesis_environment=env,\n        pre=pre,\n        blocks=[Block(timestamp=15_000)],\n        post={},\n    )\n"
  },
  {
    "path": "tests/osaka/eip7918_blob_reserve_price/test_blob_reserve_price_with_bpo_transitions.py",
    "content": "\"\"\"Tests EIP-7918 on BPO fork transitions.\"\"\"\n\nfrom dataclasses import dataclass\nfrom typing import Iterator, List\n\nimport pytest\n\nfrom ethereum_test_forks import BPO2ToBPO3AtTime15k, Fork\nfrom ethereum_test_tools import (\n    EOA,\n    Address,\n    Alloc,\n    Block,\n    BlockchainTestFiller,\n    Environment,\n    Hash,\n    Header,\n    Transaction,\n    add_kzg_version,\n)\nfrom ethereum_test_tools import Opcodes as Op\nfrom ethereum_test_tools.utility.pytest import ParameterSet\n\nfrom .spec import Spec, ref_spec_7918\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_7918.git_path\nREFERENCE_SPEC_VERSION = ref_spec_7918.version\n\nMIN_BLOB_GASPRICE = 1\n\n\n@pytest.fixture\ndef sender(pre: Alloc) -> EOA:\n    \"\"\"Sender account with enough balance for tests.\"\"\"\n    return pre.fund_eoa()\n\n\n@pytest.fixture\ndef destination_account(pre: Alloc) -> Address:\n    \"\"\"Contract recipient of blobs.\"\"\"\n    code = Op.STOP\n    return pre.deploy_contract(code)\n\n\n@pytest.fixture\ndef gas_spender_contract(pre: Alloc) -> Address:\n    \"\"\"Contract that exhausts the gas limit of a tx.\"\"\"\n    code = Op.INVALID\n    return pre.deploy_contract(code)\n\n\n@pytest.fixture\ndef tx_gas() -> int:\n    \"\"\"Gas limit for blob transactions sent during test.\"\"\"\n    return 21_000\n\n\n@pytest.fixture\ndef tx_value() -> int:\n    \"\"\"Value for blob transactions sent during test.\"\"\"\n    return 0\n\n\ndef blob_hashes_per_tx(blobs_per_tx: int) -> List[Hash]:\n    \"\"\"Blob hashes for the transaction.\"\"\"\n    return add_kzg_version(\n        [Hash(x) for x in range(blobs_per_tx)],\n        Spec.BLOB_COMMITMENT_VERSION_KZG,\n    )\n\n\n@pytest.fixture\ndef source_fork_target_blobs(fork: Fork) -> int:\n    \"\"\"Transition-from fork target blobs.\"\"\"\n    return fork.target_blobs_per_block(timestamp=0)\n\n\n@pytest.fixture\ndef source_fork_gas_per_blob(fork: Fork) -> int:\n    \"\"\"Transition-from fork gas per blob.\"\"\"\n    return fork.blob_gas_per_blob(timestamp=0)\n\n\n@pytest.fixture\ndef transition_fork_target_blobs(fork: Fork) -> int:\n    \"\"\"Transition-to fork target blobs.\"\"\"\n    return fork.target_blobs_per_block(timestamp=15_000)\n\n\n@pytest.fixture\ndef transition_fork_gas_per_blob(fork: Fork) -> int:\n    \"\"\"Transition-to fork gas per blob.\"\"\"\n    return fork.blob_gas_per_blob(timestamp=15_000)\n\n\n@pytest.fixture\ndef genesis_base_fee_per_gas(\n    fork: Fork,\n    parent_base_fee_per_gas: int,\n) -> int:\n    \"\"\"Genesis base fee per gas.\"\"\"\n    # Base fee always drops from genesis to block 1 because the genesis block\n    # never uses any tx gas.\n    return (parent_base_fee_per_gas * fork.base_fee_max_change_denominator()) // 7\n\n\n@pytest.fixture\ndef genesis_excess_blob_gas(\n    fork: Fork,\n    genesis_base_fee_per_gas: int,\n    parent_excess_blob_gas: int,\n    source_fork_target_blobs: int,\n    source_fork_gas_per_blob: int,\n) -> int:\n    \"\"\"Genesis excess blob gas.\"\"\"\n    genesis_excess_blob_gas = parent_excess_blob_gas + (\n        source_fork_target_blobs * source_fork_gas_per_blob\n    )\n    excess_blob_gas_calculator = fork.excess_blob_gas_calculator(timestamp=0)\n    current_excess_blob_gas = excess_blob_gas_calculator(\n        parent_excess_blob_gas=genesis_excess_blob_gas,\n        parent_blob_count=0,\n        parent_base_fee_per_gas=genesis_base_fee_per_gas,\n    )\n    if current_excess_blob_gas == parent_excess_blob_gas:\n        return genesis_excess_blob_gas\n\n    if current_excess_blob_gas > parent_excess_blob_gas:\n        minimum = 0\n        maximum = genesis_excess_blob_gas\n        while minimum < maximum:\n            mid = (minimum + maximum) // 2\n            next_excess_blob_gas = excess_blob_gas_calculator(\n                parent_excess_blob_gas=mid,\n                parent_blob_count=0,\n                parent_base_fee_per_gas=genesis_base_fee_per_gas,\n            )\n            if next_excess_blob_gas == parent_excess_blob_gas:\n                return mid\n            if next_excess_blob_gas > parent_excess_blob_gas:\n                maximum = mid - 1\n            else:\n                minimum = mid + 1\n    raise ValueError(\"No excess blob gas found\")\n\n\n@pytest.fixture\ndef env(\n    genesis_excess_blob_gas: int,\n    genesis_base_fee_per_gas: int,\n) -> Environment:\n    \"\"\"Environment for the test.\"\"\"\n    return Environment(\n        # Excess blob gas always drops from genesis to block 1 because genesis\n        # uses no blob gas.\n        excess_blob_gas=genesis_excess_blob_gas,\n        base_fee_per_gas=genesis_base_fee_per_gas,\n        gas_limit=16_000_000,  # To make it easier to reach the requirement\n        # with a single tx\n    )\n\n\ndef get_blob_transactions(\n    *,\n    blob_count: int,\n    blob_cap_per_transaction: int | None,\n    sender: EOA,\n    destination_account: Address,\n    tx_gas: int,\n    tx_value: int,\n    block_base_fee_per_gas: int,\n    tx_max_fee_per_blob_gas: int,\n) -> List[Transaction]:\n    \"\"\"Return a list of transactions with the given blobs.\"\"\"\n    txs = []\n    if blob_cap_per_transaction is None:\n        blob_cap_per_transaction = blob_count\n    for _ in range(blob_count // blob_cap_per_transaction):\n        tx = Transaction(\n            ty=Spec.BLOB_TX_TYPE,\n            sender=sender,\n            to=destination_account,\n            value=tx_value,\n            gas_limit=tx_gas,\n            max_fee_per_gas=block_base_fee_per_gas,\n            max_priority_fee_per_gas=0,\n            max_fee_per_blob_gas=tx_max_fee_per_blob_gas,\n            access_list=[],\n            blob_versioned_hashes=blob_hashes_per_tx(blob_cap_per_transaction),\n        )\n        txs.append(tx)\n    if blob_count % blob_cap_per_transaction != 0:\n        tx = Transaction(\n            ty=Spec.BLOB_TX_TYPE,\n            sender=sender,\n            to=destination_account,\n            value=tx_value,\n            gas_limit=tx_gas,\n            max_fee_per_gas=block_base_fee_per_gas,\n            max_priority_fee_per_gas=0,\n            max_fee_per_blob_gas=tx_max_fee_per_blob_gas,\n            access_list=[],\n            blob_versioned_hashes=blob_hashes_per_tx(blob_count % blob_cap_per_transaction),\n        )\n        txs.append(tx)\n    return txs\n\n\n@pytest.fixture\ndef tx_max_fee_per_blob_gas() -> int:\n    \"\"\"Max fee per blob gas to be used by all transactions in the test.\"\"\"\n    return 0x1000\n\n\n@pytest.fixture\ndef blob_cap_per_transaction(fork: Fork) -> int:\n    \"\"\"Max blobs that a single transaction can contain.\"\"\"\n    return fork.max_blobs_per_tx()\n\n\n@pytest.fixture\ndef parent_block_txs(\n    fork: Fork,\n    sender: EOA,\n    destination_account: Address,\n    gas_spender_contract: Address,\n    env: Environment,\n    tx_gas: int,\n    tx_value: int,\n    parent_blob_count: int,\n    parent_base_fee_per_gas: int,\n    tx_max_fee_per_blob_gas: int,\n    transition_block_base_fee_per_gas: int,\n    blob_cap_per_transaction: int,\n) -> List[Transaction]:\n    \"\"\"\n    Transactions included in the block prior to the fork transition fork.\n\n    Includes blob transactions to raise the `parent_blob_gas_used` and normal\n    transactions to raise/lower the base fee per gas.\n    \"\"\"\n    parent_block_blob_txs = get_blob_transactions(\n        blob_count=parent_blob_count,\n        blob_cap_per_transaction=blob_cap_per_transaction,\n        sender=sender,\n        destination_account=destination_account,\n        tx_gas=tx_gas,\n        tx_value=tx_value,\n        block_base_fee_per_gas=parent_base_fee_per_gas * 10,\n        tx_max_fee_per_blob_gas=tx_max_fee_per_blob_gas,\n    )\n    required_gas_used = fork.base_fee_change_calculator()(\n        parent_gas_limit=env.gas_limit,\n        parent_base_fee_per_gas=parent_base_fee_per_gas,\n        required_base_fee_per_gas=transition_block_base_fee_per_gas,\n    )\n    blob_txs_execution_gas = sum(tx.gas_limit for tx in parent_block_blob_txs)\n    assert blob_txs_execution_gas <= required_gas_used\n    extra_tx_gas_limit = required_gas_used - blob_txs_execution_gas\n    assert extra_tx_gas_limit >= 21_000\n\n    extra_tx = Transaction(\n        sender=sender,\n        to=gas_spender_contract,\n        gas_limit=extra_tx_gas_limit,\n        max_fee_per_gas=parent_base_fee_per_gas,\n        max_priority_fee_per_gas=0,\n        access_list=[],\n    )\n    return parent_block_blob_txs + [extra_tx]\n\n\n@pytest.fixture\ndef parent_block(\n    parent_block_txs: List[Transaction],\n    parent_excess_blob_gas: int,\n    parent_blob_count: int,\n    parent_base_fee_per_gas: int,\n    blob_gas_per_blob: int,\n) -> Block:\n    \"\"\"Parent block to satisfy the pre-fork conditions of the test.\"\"\"\n    return Block(\n        txs=parent_block_txs,\n        timestamp=14_999,\n        header_verify=Header(\n            excess_blob_gas=parent_excess_blob_gas,\n            blob_gas_used=parent_blob_count * blob_gas_per_blob,\n            base_fee_per_gas=parent_base_fee_per_gas,\n        ),\n    )\n\n\n@pytest.fixture\ndef transition_block_txs(\n    sender: EOA,\n    destination_account: Address,\n    tx_gas: int,\n    tx_value: int,\n    transition_block_blob_count: int,\n    blob_cap_per_transaction: int,\n    tx_max_fee_per_blob_gas: int,\n    transition_block_base_fee_per_gas: int,\n) -> List[Transaction]:\n    \"\"\"\n    Transactions included in the first block of the new fork.\n\n    Includes blob transactions only.\n    \"\"\"\n    return get_blob_transactions(\n        blob_count=transition_block_blob_count,\n        blob_cap_per_transaction=blob_cap_per_transaction,\n        sender=sender,\n        destination_account=destination_account,\n        tx_gas=tx_gas,\n        tx_value=tx_value,\n        block_base_fee_per_gas=transition_block_base_fee_per_gas * 10,\n        tx_max_fee_per_blob_gas=tx_max_fee_per_blob_gas,\n    )\n\n\n@pytest.fixture\ndef transition_block(\n    transition_block_txs: List[Transaction],\n    transition_block_expected_excess_blob_gas: int | None,\n    transition_block_blob_count: int,\n    transition_block_base_fee_per_gas: int,\n    blob_gas_per_blob: int,\n) -> Block:\n    \"\"\"Parent block to satisfy the pre-fork conditions of the test.\"\"\"\n    return Block(\n        txs=transition_block_txs,\n        timestamp=15_000,\n        header_verify=Header(\n            excess_blob_gas=transition_block_expected_excess_blob_gas,\n            blob_gas_used=transition_block_blob_count * blob_gas_per_blob,\n            base_fee_per_gas=transition_block_base_fee_per_gas,\n        ),\n    )\n\n\n@dataclass(kw_only=True)\nclass ParentHeader:\n    \"\"\"Parent block header information.\"\"\"\n\n    excess_blob_gas: int\n    blob_gas_used: int\n    base_fee_per_gas: int\n\n\n@dataclass(kw_only=True)\nclass BlobSchedule:\n    \"\"\"Blob schedule for a fork.\"\"\"\n\n    fork: Fork\n    timestamp: int\n\n    @property\n    def max(self) -> int:\n        \"\"\"Return the max blobs per block.\"\"\"\n        return self.fork.max_blobs_per_block(timestamp=self.timestamp)\n\n    @property\n    def target(self) -> int:\n        \"\"\"Return the target blobs per block.\"\"\"\n        return self.fork.target_blobs_per_block(timestamp=self.timestamp)\n\n    @property\n    def base_fee_update_fraction(self) -> int:\n        \"\"\"Return the base fee update fraction.\"\"\"\n        return self.fork.blob_base_fee_update_fraction(timestamp=self.timestamp)\n\n    @property\n    def blob_gas_per_blob(self) -> int:\n        \"\"\"Return the blob gas per blob.\"\"\"\n        return self.fork.blob_gas_per_blob(timestamp=self.timestamp)\n\n    @property\n    def blob_base_cost(self) -> int | None:\n        \"\"\"Return the blob base cost.\"\"\"\n        if self.fork.blob_reserve_price_active(timestamp=self.timestamp):\n            return self.fork.blob_base_cost(timestamp=self.timestamp)\n        return None\n\n    @property\n    def target_blob_gas_per_block(self) -> int:\n        \"\"\"Return the target blob gas per block.\"\"\"\n        return self.target * self.blob_gas_per_blob\n\n    def calculate_excess_blob_gas(self, parent_header: ParentHeader) -> int:\n        \"\"\"\n        Calculate the excess blob gas for the current block based on the gas\n        used in the parent block.\n        \"\"\"\n        excess_blob_gas_calculator = self.fork.excess_blob_gas_calculator(timestamp=self.timestamp)\n        return excess_blob_gas_calculator(\n            parent_excess_blob_gas=parent_header.excess_blob_gas,\n            parent_blob_count=parent_header.blob_gas_used,\n            parent_base_fee_per_gas=parent_header.base_fee_per_gas,\n        )\n\n    def execution_base_fee_threshold_from_excess_blob_gas(\n        self, excess_blob_gas: int\n    ) -> int | None:\n        \"\"\"\n        Return the minimum base fee required to trigger the reserve mechanism,\n        or None for blob schedules that don't have a reserve price mechanism.\n        \"\"\"\n        if self.blob_base_cost is None:\n            return None\n        target_blob_gas_price = self.blob_gas_per_blob\n        blob_gas_price_calculator = self.fork.blob_gas_price_calculator(timestamp=self.timestamp)\n        target_blob_gas_price *= blob_gas_price_calculator(excess_blob_gas=excess_blob_gas)\n        base_blob_tx_price = target_blob_gas_price\n        return (base_blob_tx_price // self.blob_base_cost) + 1\n\n\ndef get_fork_scenarios(fork: Fork) -> Iterator[ParameterSet]:\n    \"\"\"\n    Return the list of scenarios at the fork boundary depending on the source\n    fork and transition fork properties.\n    \"\"\"\n    source_blob_schedule = BlobSchedule(fork=fork, timestamp=0)\n    transition_blob_schedule = BlobSchedule(fork=fork, timestamp=15_000)\n\n    excess_blobs_combinations = [0, 1, 10, 100]\n\n    for parent_excess_blobs in excess_blobs_combinations:\n        parent_excess_blob_gas = parent_excess_blobs * source_blob_schedule.blob_gas_per_blob\n\n        source_execution_threshold = (\n            source_blob_schedule.execution_base_fee_threshold_from_excess_blob_gas(\n                parent_excess_blob_gas\n            )\n        )\n        transition_execution_threshold = (\n            transition_blob_schedule.execution_base_fee_threshold_from_excess_blob_gas(\n                parent_excess_blob_gas\n            )\n        )\n        if (\n            source_execution_threshold != transition_execution_threshold\n            and transition_execution_threshold is not None\n        ):\n            # The source base fee reserve threshold is different from the\n            # transition one given the excess blob gas. We can verify that the\n            # BPO is activated correctly by using the a setup block with\n            # transition_execution_threshold to trigger the reserve.\n            for source_blob_count in [0, source_blob_schedule.target, source_blob_schedule.max]:\n                # Scenario 1: Parent base fee per gas is below the threshold at\n                # the parent of the transition block, so even though the base\n                # fee increases on the transition block to reach the value\n                # required to activate the reserve, since the base fee per gas\n                # of the parent is used, the reserve must not be activated.\n                parent_base_fee = transition_execution_threshold - 1\n                transition_base_fee = transition_execution_threshold\n                parent_header = ParentHeader(\n                    excess_blob_gas=parent_excess_blob_gas,\n                    blob_gas_used=source_blob_count,\n                    base_fee_per_gas=parent_base_fee,\n                )\n                target_excess_blob_gas = transition_blob_schedule.calculate_excess_blob_gas(\n                    parent_header\n                )\n                source_excess_blob_gas = source_blob_schedule.calculate_excess_blob_gas(\n                    parent_header\n                )\n                if source_excess_blob_gas != target_excess_blob_gas:\n                    yield pytest.param(\n                        parent_base_fee,\n                        parent_excess_blob_gas,\n                        source_blob_count,\n                        transition_base_fee,\n                        transition_blob_schedule.target,\n                        None,\n                        id=(\n                            \"below_reserve_base_fee_threshold-\"\n                            f\"parent_excess_blobs_{parent_excess_blobs}-\"\n                            f\"parent_blobs_{source_blob_count}\"\n                        ),\n                    )\n\n                # Scenario 2: Parent base fee per gas is at the threshold, so\n                # the reserve is activated even though the base fee per gas\n                # decreases below the threshold on the transition block.\n                parent_base_fee = transition_execution_threshold\n                transition_base_fee = transition_execution_threshold - 1\n                parent_header = ParentHeader(\n                    excess_blob_gas=parent_excess_blob_gas,\n                    blob_gas_used=source_blob_count,\n                    base_fee_per_gas=parent_base_fee,\n                )\n                target_excess_blob_gas = transition_blob_schedule.calculate_excess_blob_gas(\n                    parent_header\n                )\n                source_excess_blob_gas = source_blob_schedule.calculate_excess_blob_gas(\n                    parent_header\n                )\n                if source_excess_blob_gas != target_excess_blob_gas:\n                    yield pytest.param(\n                        parent_base_fee,\n                        parent_excess_blob_gas,\n                        source_blob_count,\n                        transition_base_fee,\n                        transition_blob_schedule.target,\n                        None,\n                        id=(\n                            \"at_reserve_base_fee_threshold-\"\n                            f\"parent_excess_blobs_{parent_excess_blobs}-\"\n                            f\"parent_blobs_{source_blob_count}\"\n                        ),\n                    )\n\n    if fork == BPO2ToBPO3AtTime15k:\n        # Explicitly add the exact scenario that triggered the Fusaka Devnet-4\n        # fork.\n        yield pytest.param(\n            0x32,\n            0x125BF5F,\n            19,\n            0x33,\n            9,\n            0x132CF5F,\n            id=\"devnet-4-fork-scenario\",\n        )\n\n\n@pytest.mark.parametrize_by_fork(\n    [\n        \"parent_base_fee_per_gas\",\n        \"parent_excess_blob_gas\",\n        \"parent_blob_count\",\n        \"transition_block_base_fee_per_gas\",\n        \"transition_block_blob_count\",\n        \"transition_block_expected_excess_blob_gas\",\n    ],\n    get_fork_scenarios,\n)\n@pytest.mark.valid_at_transition_to(\"Osaka\", subsequent_forks=True)\n@pytest.mark.valid_for_bpo_forks()\ndef test_reserve_price_at_transition(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    parent_block: Block,\n    transition_block: Block,\n    env: Environment,\n) -> None:\n    \"\"\"\n    Test reserve price mechanism across various block base fee and excess blob\n    gas scenarios.\n    \"\"\"\n    blockchain_test(\n        pre=pre,\n        post={},\n        blocks=[parent_block, transition_block],\n        genesis_environment=env,\n    )\n"
  },
  {
    "path": "tests/osaka/eip7934_block_rlp_limit/__init__.py",
    "content": "\"\"\"\nTests for [EIP-7934: RLP Execution Block Size Limit](https://eips.ethereum.org/EIPS/eip-7934).\n\"\"\"\n"
  },
  {
    "path": "tests/osaka/eip7934_block_rlp_limit/conftest.py",
    "content": "\"\"\"Fixtures for the EIP-7934 RLP block size limit tests.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_tools import (\n    Address,\n    Alloc,\n)\nfrom ethereum_test_types import Environment\nfrom ethereum_test_vm import Opcodes as Op\n\n\n@pytest.fixture\ndef post() -> Alloc:\n    \"\"\"Post state allocation fixture.\"\"\"\n    return Alloc()\n\n\n@pytest.fixture\ndef env() -> Environment:\n    \"\"\"Environment fixture with a specified gas limit.\"\"\"\n    return Environment(gas_limit=100_000_000)\n\n\n@pytest.fixture\ndef contract_recipient(pre: Alloc) -> Address:\n    \"\"\"Deploy a simple contract that can receive large calldata.\"\"\"\n    contract_code = Op.SSTORE(0, Op.CALLDATASIZE) + Op.STOP\n    return pre.deploy_contract(contract_code)\n"
  },
  {
    "path": "tests/osaka/eip7934_block_rlp_limit/eip_checklist_external_coverage.txt",
    "content": "general/code_coverage/eels = Test coverage should be verified in EELS implementation\ngeneral/code_coverage/test_coverage = Run tests with --cov flag to verify test coverage\ngeneral/code_coverage/second_client = Tests marked with verify_sync marker verify block syncing to other clients"
  },
  {
    "path": "tests/osaka/eip7934_block_rlp_limit/eip_checklist_not_applicable.txt",
    "content": "opcode = EIP-7934 does not introduce a new opcode\nprecompile = EIP-7934 does not introduce a new precompile\nremoved_precompile = EIP-7934 does not remove a precompile\nsystem_contract = EIP-7934 does not introduce a new system contract\ntransaction_type = EIP-7934 does not introduce a new transaction type\nblock_header_field = EIP-7934 does not add any new block header fields\nblock_body_field = EIP-7934 does not add any new block body fields\ngas_cost_changes = EIP-7934 does not modify existing gas costs\ngas_refunds_changes = EIP-7934 does not introduce any gas refund changes\nblob_count_changes = EIP-7934 does not introduce any blob count changes\nexecution_layer_request = EIP-7934 does not introduce an execution layer request\nnew_transaction_validity_constraint = EIP-7934 introduces a block-level constraint, not a transaction-level constraint\nmodified_transaction_validity_constraint = EIP-7934 introduces a block-level constraint, not a transaction-level constraint\nblock_level_constraint/test/content/receipts = Receipts are not part of the block RLP encoding - only the receipts root hash is included in the block header. Therefore, varying receipt sizes do not affect the block RLP size limit."
  },
  {
    "path": "tests/osaka/eip7934_block_rlp_limit/spec.py",
    "content": "\"\"\"Defines EIP-7934 specification constants and functions.\"\"\"\n\nfrom dataclasses import dataclass\n\n\n@dataclass(frozen=True)\nclass ReferenceSpec:\n    \"\"\"Defines the reference spec version and git path.\"\"\"\n\n    git_path: str\n    version: str\n\n\nref_spec_7934 = ReferenceSpec(\"EIPS/eip-7934.md\", \"2e5cc824089bab8d04aee598708e21c0e06857ef\")\n\n\n@dataclass(frozen=True)\nclass Spec:\n    \"\"\"\n    Parameters from the EIP-7934 specifications as defined at\n    https://eips.ethereum.org/EIPS/eip-7934#specification.\n    \"\"\"\n\n    MAX_BLOCK_SIZE = 10_485_760  # 10 MiB\n    SAFETY_MARGIN = 2_097_152  # 2 MiB\n    MAX_RLP_BLOCK_SIZE = MAX_BLOCK_SIZE - SAFETY_MARGIN  # 8_388_608 bytes\n    BLOB_COMMITMENT_VERSION_KZG = 1\n\n    @staticmethod\n    def exceed_max_rlp_block_size(rlp_encoded_block: bytes) -> bool:\n        \"\"\"Check if an RLP encoded block exceeds the maximum allowed size.\"\"\"\n        return len(rlp_encoded_block) > Spec.MAX_RLP_BLOCK_SIZE\n"
  },
  {
    "path": "tests/osaka/eip7934_block_rlp_limit/test_max_block_rlp_size.py",
    "content": "\"\"\"\nTests for [EIP-7934: RLP Execution Block Size Limit](https://eips.ethereum.org/EIPS/eip-7934).\n\"\"\"\n\nfrom functools import lru_cache\nfrom typing import List, Tuple\n\nimport pytest\n\nfrom ethereum_test_base_types import Address, HexNumber, ZeroPaddedHexNumber\nfrom ethereum_test_checklists import EIPChecklist\nfrom ethereum_test_fixtures.blockchain import (\n    FixtureBlockBase,\n    FixtureHeader,\n    FixtureWithdrawal,\n)\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    Alloc,\n    Block,\n    BlockchainTestFiller,\n    BlockException,\n    Bytes,\n    Transaction,\n    Withdrawal,\n)\nfrom ethereum_test_tools import Opcodes as Op\nfrom ethereum_test_types import EOA, Environment\n\nfrom .spec import Spec, ref_spec_7934\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_7934.git_path\nREFERENCE_SPEC_VERSION = ref_spec_7934.version\n\npytestmark = [\n    pytest.mark.pre_alloc_group(\n        \"block_rlp_limit_tests\",\n        reason=\"Block RLP size tests require exact calculations\",\n    ),\n    pytest.mark.xdist_group(name=\"bigmem\"),\n]\n\n\nHEADER_TIMESTAMP = 123456789\nEXTRA_DATA_AT_LIMIT = b\"\\x00\\x00\\x00\"\nBLOCK_GAS_LIMIT = 100_000_000\n\n\n@pytest.fixture\ndef block_size_limit(fork: Fork) -> int:\n    \"\"\"Get the fork-specific block RLP size limit.\"\"\"\n    limit = fork.block_rlp_size_limit()\n    if limit is None:\n        raise ValueError(\"Fork does not implement block RLP size limit\")\n    assert limit == Spec.MAX_RLP_BLOCK_SIZE, (\n        f\"Expected block RLP size limit to be {Spec.MAX_RLP_BLOCK_SIZE}, \"\n        f\"but got {limit} for fork {fork.name}\"\n    )\n    return limit\n\n\n@pytest.fixture\ndef block_errors() -> List[BlockException]:\n    \"\"\"\n    Block exceptions expected for blocks that exceed the `MAX_RLP_BLOCK_SIZE`.\n    \"\"\"\n    return [BlockException.RLP_BLOCK_LIMIT_EXCEEDED]\n\n\ndef create_test_header(gas_used: int) -> FixtureHeader:\n    \"\"\"Create a standard test header for RLP size calculations.\"\"\"\n    return FixtureHeader(\n        difficulty=\"0x0\",\n        number=\"0x1\",\n        gas_limit=hex(BLOCK_GAS_LIMIT),\n        timestamp=hex(HEADER_TIMESTAMP),\n        coinbase=\"0x\" + \"00\" * 20,\n        parent_hash=\"0x\" + \"00\" * 32,\n        uncle_hash=\"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347\",\n        state_root=\"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421\",\n        transactions_trie=\"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421\",\n        receiptTrie=\"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421\",\n        bloom=\"0x\" + \"00\" * 256,\n        gas_used=hex(gas_used),\n        extra_data=EXTRA_DATA_AT_LIMIT.hex(),\n        mix_hash=\"0x\" + \"00\" * 32,\n        nonce=\"0x0000000000000042\",\n        base_fee_per_gas=\"0x0\",\n        withdrawals_root=\"0x\" + \"00\" * 32,\n        blob_gas_used=\"0x0\",\n        excess_blob_gas=\"0x0\",\n        parent_beacon_block_root=\"0x\" + \"00\" * 32,\n        requests_hash=\"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n    )\n\n\ndef get_block_rlp_size(\n    transactions: List[Transaction], gas_used: int, withdrawals: List[Withdrawal] | None = None\n) -> int:\n    \"\"\"\n    Calculate the RLP size of a block with given transactions\n    and withdrawals.\n    \"\"\"\n    header = create_test_header(gas_used)\n    total_gas = sum((tx.gas_limit or 21000) for tx in transactions)\n    header.gas_used = ZeroPaddedHexNumber(total_gas)\n\n    # Calculate blob gas used if there are blob transactions\n    blob_gas_used = 0\n    for tx in transactions:\n        if hasattr(tx, \"blob_versioned_hashes\") and tx.blob_versioned_hashes:\n            blob_gas_used += len(tx.blob_versioned_hashes) * (2**17)\n\n    if blob_gas_used > 0:\n        header.blob_gas_used = ZeroPaddedHexNumber(blob_gas_used)\n\n    # Convert withdrawals to FixtureWithdrawal if provided\n    block_withdrawals = []\n    if withdrawals is not None:\n        block_withdrawals = [\n            FixtureWithdrawal(\n                index=w.index,\n                validator_index=w.validator_index,\n                address=w.address,\n                amount=w.amount,\n            )\n            for w in withdrawals\n        ]\n    test_block = FixtureBlockBase(blockHeader=header, withdrawals=block_withdrawals)\n    return len(test_block.with_rlp(txs=transactions).rlp)\n\n\ndef exact_size_transactions(\n    sender: EOA,\n    block_size_limit: int,\n    fork: Fork,\n    pre: Alloc,\n    gas_limit: int,\n    emit_logs: bool = False,\n    specific_transaction_to_include: Transaction | None = None,\n    withdrawals: List[Withdrawal] | None = None,\n) -> Tuple[List[Transaction], int]:\n    \"\"\"\n    Generate transactions that fill a block to exactly the RLP size limit.\n\n    The calculation uses caching to avoid recalculating the same block rlp for\n    each fork. Calculate the block and fill with real sender for testing.\n\n    Args:\n        sender: The sender account\n        block_size_limit: The target block RLP size limit\n        fork: The fork to generate transactions for\n        pre: Required if emit_logs is True, used to deploy the log contract\n        gas_limit: The gas limit for the block\n        emit_logs: If True, transactions will call a contract that emits logs\n        specific_transaction_to_include: If provided, this transaction will\n            be included\n        withdrawals: Optional list of withdrawals to include in the block\n\n    \"\"\"\n    log_contract = None\n    if emit_logs:\n        if pre is None:\n            raise ValueError(\"pre is required when emit_logs is True\")\n        # Deploy a contract that emits logs\n        log_contract_code = Op.SSTORE(1, 1)\n        # Emit multiple LOG4 events with maximum data and topics\n        for _ in range(3):\n            log_contract_code += Op.PUSH32(\n                0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\n            )  # topic 4\n            log_contract_code += Op.PUSH32(\n                0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE\n            )  # topic 3\n            log_contract_code += Op.PUSH32(\n                0xDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD\n            )  # topic 2\n            log_contract_code += Op.PUSH32(\n                0xCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC\n            )  # topic 1\n            log_contract_code += Op.PUSH1(32)  # size\n            log_contract_code += Op.PUSH1(0)  # offset\n            log_contract_code += Op.LOG4\n        log_contract = pre.deploy_contract(log_contract_code)\n\n    if not specific_transaction_to_include and not withdrawals:\n        # use cached version when possible for performance\n        transactions, gas_used = _exact_size_transactions_cached(\n            block_size_limit,\n            fork,\n            gas_limit,\n            sender,\n            emit_logs_contract=log_contract,\n        )\n    else:\n        # Direct calculation, no cache, since `Transaction` / `Withdrawal`\n        # are not hashable\n        transactions, gas_used = _exact_size_transactions_impl(\n            block_size_limit,\n            fork,\n            gas_limit,\n            sender,\n            specific_transaction_to_include=specific_transaction_to_include,\n            emit_logs_contract=log_contract,\n            withdrawals=withdrawals,\n        )\n\n    return transactions, gas_used\n\n\n@lru_cache(maxsize=128)\ndef _exact_size_transactions_cached(\n    block_size_limit: int,\n    fork: Fork,\n    gas_limit: int,\n    sender: EOA,\n    emit_logs_contract: Address | None = None,\n) -> Tuple[List[Transaction], int]:\n    \"\"\"\n    Generate transactions that fill a block to exactly the RLP size limit.\n    Abstracted with hashable arguments for caching block calculations.\n    \"\"\"\n    return _exact_size_transactions_impl(\n        block_size_limit,\n        fork,\n        gas_limit,\n        sender,\n        None,\n        emit_logs_contract,\n        None,\n    )\n\n\ndef _exact_size_transactions_impl(\n    block_size_limit: int,\n    fork: Fork,\n    block_gas_limit: int,\n    sender: EOA,\n    specific_transaction_to_include: Transaction | None = None,\n    emit_logs_contract: Address | None = None,\n    withdrawals: List[Withdrawal] | None = None,\n) -> Tuple[List[Transaction], int]:\n    \"\"\"\n    Calculate the exact size of transactions to be included. Shared by both\n    cached and non-cached paths.\n    \"\"\"\n    transactions = []\n    nonce = 0\n    total_gas_used = 0\n\n    calculator = fork.transaction_intrinsic_cost_calculator()\n\n    data_large = Bytes(b\"\\x00\" * 500_000)\n    gas_limit_large = calculator(calldata=data_large)\n\n    # block with 16 transactions + large calldata remains safely below the\n    # limit add 15 generic transactions to fill the block and one typed\n    # transaction if tx_type is specified, otherwise just add 16 generic\n    # transactions\n    not_all_generic_txs = any(\n        kwarg is not None for kwarg in [specific_transaction_to_include, emit_logs_contract]\n    )\n\n    generic_tx_num = 15 if not_all_generic_txs else 16\n    for _ in range(generic_tx_num):\n        tx = Transaction(\n            sender=sender,\n            nonce=nonce,\n            max_fee_per_gas=10**11,\n            max_priority_fee_per_gas=10**11,\n            gas_limit=gas_limit_large,\n            data=data_large,\n        )\n        transactions.append(tx)\n        total_gas_used += gas_limit_large\n        nonce += 1\n\n    # append a typed transaction to fill the block\n    if not_all_generic_txs:\n        if specific_transaction_to_include is not None:\n            tx_dict = specific_transaction_to_include.model_dump(exclude_unset=True)\n            data = Bytes(b\"\\x00\" * 200_000)\n            gas_limit = HexNumber(\n                calculator(\n                    calldata=data,\n                    access_list=specific_transaction_to_include.access_list,\n                    authorization_list_or_count=len(tx_dict.get(\"authorization_list\", [])),\n                )\n            )\n            tx_dict[\"sender\"] = sender\n            tx_dict[\"nonce\"] = nonce\n            tx_dict[\"data\"] = data\n            tx_dict[\"gas_limit\"] = gas_limit\n            last_tx = Transaction(**tx_dict)\n        elif emit_logs_contract is not None:\n            last_tx = Transaction(\n                sender=sender,\n                nonce=nonce,\n                max_fee_per_gas=10**11,\n                max_priority_fee_per_gas=10**11,\n                gas_limit=calculator(calldata=b\"\"),\n                to=emit_logs_contract,\n            )\n        else:\n            raise ValueError(\n                \"Either specific_transaction_to_include or emit_logs_contract must be provided.\"\n            )\n\n        transactions.append(last_tx)\n        nonce += 1\n        total_gas_used += last_tx.gas_limit\n\n    current_size = get_block_rlp_size(\n        transactions, gas_used=total_gas_used, withdrawals=withdrawals\n    )\n    remaining_bytes = block_size_limit - current_size\n    remaining_gas = block_gas_limit - total_gas_used\n\n    if remaining_bytes > 0 and remaining_gas > 50_000:\n        # create an empty transaction to measure base contribution\n        empty_tx = Transaction(\n            sender=sender,\n            nonce=nonce,\n            max_fee_per_gas=10**11,\n            max_priority_fee_per_gas=10**11,\n            gas_limit=calculator(calldata=b\"\"),\n            data=b\"\",\n        )\n\n        empty_block_size = get_block_rlp_size(\n            transactions + [empty_tx],\n            gas_used=total_gas_used + empty_tx.gas_limit,\n            withdrawals=withdrawals,\n        )\n        empty_contribution = empty_block_size - current_size\n\n        calldata_bytes_needed = remaining_bytes - empty_contribution\n        estimated_calldata = max(0, calldata_bytes_needed - 5)\n\n        target_calldata = b\"\\x00\" * estimated_calldata\n        target_gas = calculator(calldata=target_calldata)\n\n        if target_gas <= remaining_gas:\n            test_tx = Transaction(\n                sender=sender,\n                nonce=nonce,\n                max_fee_per_gas=10**11,\n                max_priority_fee_per_gas=10**11,\n                gas_limit=target_gas,\n                data=target_calldata,\n            )\n\n            test_size = get_block_rlp_size(\n                transactions + [test_tx],\n                gas_used=total_gas_used + target_gas,\n                withdrawals=withdrawals,\n            )\n\n            if test_size == block_size_limit:\n                # if exact match, use the transaction\n                transactions.append(test_tx)\n            else:\n                # search for the best adjustment\n                diff = block_size_limit - test_size\n                best_diff = abs(diff)\n\n                search_range = min(abs(diff) + 50, 1000)\n\n                for adjustment in range(-search_range, search_range + 1):\n                    adjusted_size = estimated_calldata + adjustment\n                    if adjusted_size < 0:\n                        continue\n\n                    adjusted_calldata = b\"\\x00\" * adjusted_size\n                    adjusted_gas = calculator(calldata=adjusted_calldata)\n\n                    if adjusted_gas <= remaining_gas:\n                        adjusted_tx = Transaction(\n                            sender=sender,\n                            nonce=nonce,\n                            max_fee_per_gas=10**11,\n                            max_priority_fee_per_gas=10**11,\n                            gas_limit=adjusted_gas,\n                            data=adjusted_calldata,\n                        )\n\n                        adjusted_test_size = get_block_rlp_size(\n                            transactions + [adjusted_tx],\n                            gas_used=total_gas_used + adjusted_gas,\n                            withdrawals=withdrawals,\n                        )\n\n                        if adjusted_test_size == block_size_limit:\n                            # exact match\n                            transactions.append(adjusted_tx)\n                            break\n\n                        adjusted_diff = abs(block_size_limit - adjusted_test_size)\n                        if adjusted_diff < best_diff:\n                            best_diff = adjusted_diff\n                else:\n                    raise RuntimeError(\n                        \"Failed to find a transaction that matches the target size.\"\n                    )\n        else:\n            transactions.append(empty_tx)\n\n    final_size = get_block_rlp_size(\n        transactions, gas_used=sum(tx.gas_limit for tx in transactions), withdrawals=withdrawals\n    )\n    final_gas = sum(tx.gas_limit for tx in transactions)\n\n    assert final_size == block_size_limit, (\n        f\"Size mismatch: got {final_size}, \"\n        f\"expected {block_size_limit} \"\n        f\"({final_size - block_size_limit} bytes diff)\"\n    )\n    return transactions, final_gas\n\n\n@EIPChecklist.BlockLevelConstraint.Test.Boundary.Under()\n@EIPChecklist.BlockLevelConstraint.Test.Boundary.Exact()\n@EIPChecklist.BlockLevelConstraint.Test.Boundary.Over()\n@pytest.mark.parametrize(\n    \"delta\",\n    [\n        pytest.param(-1, id=\"max_rlp_size_minus_1_byte\", marks=pytest.mark.verify_sync),\n        pytest.param(0, id=\"max_rlp_size\", marks=pytest.mark.verify_sync),\n        pytest.param(1, id=\"max_rlp_size_plus_1_byte\", marks=pytest.mark.exception_test),\n    ],\n)\n@pytest.mark.valid_from(\"Osaka\")\ndef test_block_at_rlp_size_limit_boundary(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    post: Alloc,\n    env: Environment,\n    sender: EOA,\n    fork: Fork,\n    block_size_limit: int,\n    delta: int,\n) -> None:\n    \"\"\"\n    Test the block rlp size limit.\n\n    - At the limit - 1 byte, the block is valid\n    - At the limit, the block is valid\n    - At the limit + 1 byte, the block is invalid\n    \"\"\"\n    transactions, gas_used = exact_size_transactions(\n        sender,\n        block_size_limit,\n        fork,\n        pre,\n        env.gas_limit,\n    )\n    block_rlp_size = get_block_rlp_size(transactions, gas_used=gas_used)\n    assert block_rlp_size == block_size_limit, (\n        f\"Block RLP size {block_rlp_size} does not exactly match limit {block_size_limit}, \"\n        f\"difference: {block_rlp_size - block_size_limit} bytes\"\n    )\n\n    block = Block(\n        txs=transactions,\n        exception=BlockException.RLP_BLOCK_LIMIT_EXCEEDED if delta > 0 else None,\n    )\n\n    if delta < 0:\n        block.extra_data = Bytes(EXTRA_DATA_AT_LIMIT[: -abs(delta)])\n    elif delta == 0:\n        block.extra_data = Bytes(EXTRA_DATA_AT_LIMIT)\n    else:  # delta > 0\n        block.extra_data = Bytes(EXTRA_DATA_AT_LIMIT + b\"\\x00\" * delta)\n\n    block.timestamp = ZeroPaddedHexNumber(HEADER_TIMESTAMP)\n    blockchain_test(\n        genesis_environment=env,\n        pre=pre,\n        post=post,\n        blocks=[block],\n    )\n\n\n@EIPChecklist.BlockLevelConstraint.Test.Content.TransactionTypes()\n@pytest.mark.with_all_typed_transactions\n@pytest.mark.verify_sync\n@pytest.mark.valid_from(\"Osaka\")\ndef test_block_rlp_size_at_limit_with_all_typed_transactions(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    post: Alloc,\n    fork: Fork,\n    sender: EOA,\n    block_size_limit: int,\n    env: Environment,\n    typed_transaction: Transaction,\n) -> None:\n    \"\"\"Test the block RLP size limit with all transaction types.\"\"\"\n    transactions, gas_used = exact_size_transactions(\n        sender,\n        block_size_limit,\n        fork,\n        pre,\n        env.gas_limit,\n        specific_transaction_to_include=typed_transaction,\n    )\n    block_rlp_size = get_block_rlp_size(transactions, gas_used=gas_used)\n    assert block_rlp_size == block_size_limit, (\n        f\"Block RLP size {block_rlp_size} does not exactly match limit {block_size_limit}, \"\n        f\"difference: {block_rlp_size - block_size_limit} bytes\"\n    )\n\n    block = Block(txs=transactions)\n    block.extra_data = Bytes(EXTRA_DATA_AT_LIMIT)\n    block.timestamp = ZeroPaddedHexNumber(HEADER_TIMESTAMP)\n\n    blockchain_test(\n        genesis_environment=env,\n        pre=pre,\n        post=post,\n        blocks=[block],\n    )\n\n\n@EIPChecklist.BlockLevelConstraint.Test.Content.Logs()\n@pytest.mark.verify_sync\n@pytest.mark.valid_from(\"Osaka\")\ndef test_block_at_rlp_limit_with_logs(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    post: Alloc,\n    env: Environment,\n    sender: EOA,\n    fork: Fork,\n    block_size_limit: int,\n) -> None:\n    \"\"\"\n    Test that a block at the RLP size limit is valid even when transactions\n    emit logs.\n    \"\"\"\n    transactions, gas_used = exact_size_transactions(\n        sender,\n        block_size_limit,\n        fork,\n        pre,\n        env.gas_limit,\n        emit_logs=True,\n    )\n\n    block_rlp_size = get_block_rlp_size(transactions, gas_used=gas_used)\n    assert block_rlp_size == block_size_limit, (\n        f\"Block RLP size {block_rlp_size} does not exactly match limit {block_size_limit}, \"\n        f\"difference: {block_rlp_size - block_size_limit} bytes\"\n    )\n\n    block = Block(txs=transactions)\n    block.extra_data = Bytes(EXTRA_DATA_AT_LIMIT)\n    block.timestamp = ZeroPaddedHexNumber(HEADER_TIMESTAMP)\n\n    blockchain_test(\n        genesis_environment=env,\n        pre=pre,\n        post=post,\n        blocks=[block],\n    )\n\n\n@EIPChecklist.BlockLevelConstraint.Test.Content.Withdrawals()\n@pytest.mark.verify_sync\n@pytest.mark.valid_from(\"Osaka\")\ndef test_block_at_rlp_limit_with_withdrawals(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    post: Alloc,\n    env: Environment,\n    sender: EOA,\n    fork: Fork,\n    block_size_limit: int,\n) -> None:\n    \"\"\"\n    Test that a block at the RLP size limit is valid even when the block\n    contains withdrawals.\n    \"\"\"\n    withdrawals = [\n        Withdrawal(\n            index=0,\n            validator_index=0,\n            address=pre.fund_eoa(),\n            amount=1,\n        ),\n        Withdrawal(\n            index=1,\n            validator_index=1,\n            address=pre.fund_eoa(),\n            amount=1,\n        ),\n    ]\n\n    transactions, gas_used = exact_size_transactions(\n        sender,\n        block_size_limit,\n        fork,\n        pre,\n        env.gas_limit,\n        withdrawals=withdrawals,\n    )\n\n    block_rlp_size = get_block_rlp_size(transactions, gas_used=gas_used, withdrawals=withdrawals)\n    assert block_rlp_size == block_size_limit, (\n        f\"Block RLP size {block_rlp_size} does not exactly match limit {block_size_limit}, \"\n        f\"difference: {block_rlp_size - block_size_limit} bytes\"\n    )\n\n    block = Block(\n        txs=transactions,\n        withdrawals=withdrawals,\n        extra_data=Bytes(EXTRA_DATA_AT_LIMIT),\n        timestamp=ZeroPaddedHexNumber(HEADER_TIMESTAMP),\n    )\n\n    blockchain_test(\n        genesis_environment=env,\n        pre=pre,\n        post=post,\n        blocks=[block],\n    )\n\n\n@EIPChecklist.BlockLevelConstraint.Test.ForkTransition.AcceptedBeforeFork()\n@EIPChecklist.BlockLevelConstraint.Test.ForkTransition.AcceptedAfterFork()\n@EIPChecklist.BlockLevelConstraint.Test.ForkTransition.RejectedAfterFork()\n@pytest.mark.parametrize(\n    \"exceeds_limit_at_fork\",\n    [\n        pytest.param(False, id=\"at_fork_within_limit\"),\n        pytest.param(True, marks=pytest.mark.exception_test, id=\"at_fork_exceeds_limit\"),\n    ],\n)\n@pytest.mark.valid_at_transition_to(\"Osaka\")\ndef test_fork_transition_block_rlp_limit(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    env: Environment,\n    fork: Fork,\n    exceeds_limit_at_fork: bool,\n    block_size_limit: int,\n) -> None:\n    \"\"\"\n    Test block RLP size limit at fork transition boundary.\n\n    - Before fork (timestamp 14999): Block at limit +1 should be accepted\n    - At fork (timestamp 15000): Block at limit should be accepted\n    - At fork (timestamp 15000): Block at limit +1 should be rejected\n    \"\"\"\n    sender_before_fork = pre.fund_eoa()\n    sender_at_fork = pre.fund_eoa()\n\n    transactions_before, gas_used_before = exact_size_transactions(\n        sender_before_fork,\n        block_size_limit,\n        fork,\n        pre,\n        env.gas_limit,\n    )\n\n    transactions_at_fork, gas_used_at_fork = exact_size_transactions(\n        sender_at_fork,\n        block_size_limit,\n        fork,\n        pre,\n        env.gas_limit,\n    )\n\n    for fork_block_rlp_size in [\n        get_block_rlp_size(transactions_before, gas_used=gas_used_before),\n        get_block_rlp_size(transactions_at_fork, gas_used=gas_used_at_fork),\n    ]:\n        assert fork_block_rlp_size == block_size_limit, (\n            f\"Block RLP size {fork_block_rlp_size} does not exactly match \"\n            f\"limit {block_size_limit}, difference: \"\n            f\"{fork_block_rlp_size - block_size_limit} bytes\"\n        )\n\n    # HEADER_TIMESTAMP (123456789) used in calculation takes 4 bytes in RLP\n    # encoding. Transition timestamps (14_999 and 15_000) take 2 bytes\n    # Re-define `_extradata_at_limit` accounting for this difference\n    timestamp_byte_savings = 2\n    _extradata_at_limit = EXTRA_DATA_AT_LIMIT + (b\"\\x00\" * timestamp_byte_savings)\n\n    blocks = [\n        # before fork, block at limit +1 should be accepted\n        Block(\n            timestamp=14_999,\n            txs=transactions_before,\n            # +1 to exceed limit\n            extra_data=Bytes(_extradata_at_limit + b\"\\x00\"),\n        )\n    ]\n\n    # At fork (timestamp 15000): Test behavior with and without exceeding limit\n    if exceeds_limit_at_fork:\n        blocks.append(\n            Block(\n                timestamp=15_000,\n                txs=transactions_at_fork,\n                # +1 to exceed limit, should be rejected\n                extra_data=Bytes(_extradata_at_limit + b\"\\x00\"),\n                exception=BlockException.RLP_BLOCK_LIMIT_EXCEEDED,\n            )\n        )\n    else:\n        blocks.append(\n            Block(\n                timestamp=15_000,\n                txs=transactions_at_fork,\n                # exact limit should be accepted\n                extra_data=Bytes(EXTRA_DATA_AT_LIMIT),\n            )\n        )\n\n    blockchain_test(\n        genesis_environment=env,\n        pre=pre,\n        post={},\n        blocks=blocks,\n    )\n"
  },
  {
    "path": "tests/osaka/eip7939_count_leading_zeros/__init__.py",
    "content": "\"\"\"\nTests [EIP-7939: Count leading zeros (CLZ) opcode](https://eips.ethereum.org/EIPS/eip-7939).\n\"\"\"\n"
  },
  {
    "path": "tests/osaka/eip7939_count_leading_zeros/eip_checklist_external_coverage.txt",
    "content": "general/code_coverage/eels = Please check https://app.codecov.io/gh/ethereum/execution-specs/pull/1388/blob/src/ethereum/osaka/vm/instructions/bitwise.py#L243 for relevant test coverage\ngeneral/code_coverage/test_coverage = Please run the test with `--cov` flag for final coverage"
  },
  {
    "path": "tests/osaka/eip7939_count_leading_zeros/eip_checklist_not_applicable.txt",
    "content": "system_contract = EIP does not introduce a new system contract\nprecompile = EIP does not introduce a new precompile\nremoved_precompile = EIP does not remove a precompile\ntransaction_type = EIP does not introduce a new transaction type\nblock_header_field = EIP does not add any new block header fields\nblock_body_field = EIP does not add any new block body fields\ngas_cost_changes = EIP does not modify existing gas costs, only introduces new opcode with fixed cost\ngas_refunds_changes = EIP does not introduce any gas refund changes\nblob_count_changes = EIP does not introduce any blob count changes\nexecution_layer_request = EIP does not introduce an execution layer request\nnew_transaction_validity_constraint = EIP does not introduce a new transaction validity constraint\nmodified_transaction_validity_constraint = EIP does not introduce a modified transaction validity constraint\nopcode/test/mem_exp = CLZ does not read/write to memory component\nopcode/test/stack_overflow = CLZ takes one args and pushes one args to stack, not increasing stack element, hence no overflow issue\nopcode/test/stack_complex_operations/data_portion_variables = there is no data portion for CLZ\nopcode/test/execution_context/delegatecall/code = CLZ does not modify code\nopcode/test/execution_context/tx_context = CLZ does not change behavior depending on transaction property\nopcode/test/execution_context/block_context = CLZ does not change behavior depending on block property\nopcode/test/execution_context/initcode/reentry = CLZ is not a stateful opcode\nopcode/test/gas_usage/memory_expansion = no memory read/write for CLZ\nopcode/test/gas_usage/out_of_gas_memory = no memory read/write for CLZ\nopcode/test/gas_usage/order_of_operations = the order will not affect result of CLZ\nopcode/test/return_data = although we could verify the return buffer is not affected, but it is more like testing memory write operation, as CLZ does not write to memory directly\nopcode/test/terminating = not such opcode\nopcode/test/terminating/rollback = CLZ is not a terminating opcode, so no rollback behavior\nopcode/test/out_of_bounds = takes one element from stack, no specific boundary\nopcode/test/exceptional_abort = underflow is the only exceptional abort scenario and it is included already\nopcode/test/data_portion = no data portion\nopcode/test/contract_creation = no contract created in execution"
  },
  {
    "path": "tests/osaka/eip7939_count_leading_zeros/spec.py",
    "content": "\"\"\"Defines EIP-7939 specification constants and functions.\"\"\"\n\nfrom dataclasses import dataclass\n\n\n@dataclass(frozen=True)\nclass ReferenceSpec:\n    \"\"\"Defines the reference spec version and git path.\"\"\"\n\n    git_path: str\n    version: str\n\n\nref_spec_7939 = ReferenceSpec(\"EIPS/eip-7939.md\", \"c8321494fdfbfda52ad46c3515a7ca5dc86b857c\")\n\n\n@dataclass(frozen=True)\nclass Spec:\n    \"\"\"Constants and helpers for the CLZ opcode.\"\"\"\n\n    CLZ = 0x1E\n    CLZ_GAS_COST = 5\n\n    @classmethod\n    def calculate_clz(cls, value: int) -> int:\n        \"\"\"Calculate the count of leading zeros for a 256-bit value.\"\"\"\n        if value == 0:\n            return 256\n        return 256 - value.bit_length()\n"
  },
  {
    "path": "tests/osaka/eip7939_count_leading_zeros/test_count_leading_zeros.py",
    "content": "\"\"\"\nTests [EIP-7939: Count leading zeros (CLZ)](https://eips.ethereum.org/EIPS/eip-7939).\n\"\"\"\n\nimport pytest\n\nfrom ethereum_test_base_types import Storage\nfrom ethereum_test_checklists import EIPChecklist\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    Account,\n    Alloc,\n    AuthorizationTuple,\n    Block,\n    BlockchainTestFiller,\n    Bytecode,\n    CodeGasMeasure,\n    Environment,\n    StateTestFiller,\n    Transaction,\n    compute_create_address,\n)\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom ...prague.eip7702_set_code_tx.spec import Spec as Spec7702\nfrom .spec import Spec, ref_spec_7939\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_7939.git_path\nREFERENCE_SPEC_VERSION = ref_spec_7939.version\n\n\ndef clz_parameters() -> list:\n    \"\"\"Generate all test case parameters.\"\"\"\n    test_cases = []\n\n    # Format 0x000...000: all zeros\n    test_cases.append((\"zero\", 0, 256))\n\n    # Format 0xb000...111: leading zeros followed by ones\n    for bits in range(257):\n        value = (2**256 - 1) >> bits\n        expected_clz = bits\n        assert expected_clz == Spec.calculate_clz(value), (\n            f\"CLZ calculation mismatch for leading_zeros_{bits}: \"\n            f\"manual={expected_clz}, spec={Spec.calculate_clz(value)}, value={hex(value)}\"\n        )\n        test_cases.append((f\"leading_zeros_{bits}\", value, expected_clz))\n\n    # Format 0xb010...000: single bit set (1 << N for N = 1…256)\n    for bits in range(1, 257):\n        if bits == 256:\n            # Special case: 1 << 256 = 0 in 256-bit arithmetic (overflow)\n            value = 0\n            expected_clz = 256\n        else:\n            value = 1 << bits\n            expected_clz = 255 - bits\n        assert expected_clz == Spec.calculate_clz(value), (\n            f\"CLZ calculation mismatch for single_bit_{bits}: \"\n            f\"manual={expected_clz}, spec={Spec.calculate_clz(value)}, value={hex(value)}\"\n        )\n        test_cases.append((f\"single_bit_{bits}\", value, expected_clz))\n\n    # Arbitrary edge cases\n    arbitrary_values = [\n        0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0,\n        0x00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF,\n        0x0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F,\n        0xDEADBEEFCAFEBABE0123456789ABCDEF,\n        0x0123456789ABCDEF,\n        (1 << 128) + 1,\n        (1 << 200) + (1 << 100),\n        2**255 - 1,\n    ]\n    for i, value in enumerate(arbitrary_values):\n        expected_clz = Spec.calculate_clz(value)\n        test_cases.append((f\"arbitrary_{i}\", value, expected_clz))\n\n    return test_cases\n\n\n@pytest.mark.valid_from(\"Osaka\")\n@pytest.mark.parametrize(\n    \"test_id,value,expected_clz\",\n    clz_parameters(),\n    ids=[f\"{test_data[0]}-expected_clz_{test_data[2]}\" for test_data in clz_parameters()],\n)\ndef test_clz_opcode_scenarios(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    test_id: str,\n    value: int,\n    expected_clz: int,\n) -> None:\n    \"\"\"\n    Test CLZ opcode functionality.\n\n    Cases:\n    - Format 0xb000...111: leading zeros followed by ones\n       (2**256 - 1 >> bits)\n    - Format 0xb010...000: single bit set at position (1 << bits)\n\n    Test coverage:\n    - Leading zeros pattern: 0b000...111 (0 to 256 leading zeros)\n    - Single bit pattern: 0b010...000 (bit at each possible position)\n    - Edge cases: CLZ(0) = 256, CLZ(2^256-1) = 0\n    \"\"\"\n    sender = pre.fund_eoa()\n    contract_address = pre.deploy_contract(\n        code=Op.SSTORE(0, Op.CLZ(value)),\n        storage={\"0x00\": \"0xdeadbeef\"},\n    )\n    tx = Transaction(\n        to=contract_address,\n        sender=sender,\n        gas_limit=200_000,\n    )\n    post = {\n        contract_address: Account(storage={\"0x00\": expected_clz}),\n    }\n    state_test(pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.valid_from(\"Osaka\")\ndef test_clz_gas_cost(state_test: StateTestFiller, pre: Alloc, fork: Fork) -> None:\n    \"\"\"Test CLZ opcode gas cost.\"\"\"\n    contract_address = pre.deploy_contract(\n        Op.SSTORE(\n            0,\n            CodeGasMeasure(\n                code=Op.CLZ(Op.PUSH1(1)),\n                extra_stack_items=1,\n                overhead_cost=fork.gas_costs().G_VERY_LOW,\n            ),\n        ),\n        storage={\"0x00\": \"0xdeadbeef\"},\n    )\n    sender = pre.fund_eoa()\n    tx = Transaction(to=contract_address, sender=sender, gas_limit=200_000)\n    post = {\n        contract_address: Account(  # Cost measured is CLZ + PUSH1\n            storage={\"0x00\": fork.gas_costs().G_LOW}\n        ),\n    }\n    state_test(pre=pre, post=post, tx=tx)\n\n\n@EIPChecklist.Opcode.Test.GasUsage.Normal()\n@EIPChecklist.Opcode.Test.GasUsage.OutOfGasExecution()\n@EIPChecklist.Opcode.Test.GasUsage.ExtraGas()\n@pytest.mark.valid_from(\"Osaka\")\n@pytest.mark.parametrize(\"bits\", [0, 64, 128, 255])\n@pytest.mark.parametrize(\"gas_cost_delta\", [-2, -1, 0, 1, 2])\ndef test_clz_gas_cost_boundary(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    fork: Fork,\n    bits: int,\n    gas_cost_delta: int,\n) -> None:\n    \"\"\"Test CLZ opcode gas cost boundary.\"\"\"\n    code = Op.PUSH32(1 << bits) + Op.CLZ\n\n    contract_address = pre.deploy_contract(code=code)\n\n    call_code = Op.SSTORE(\n        0,\n        Op.CALL(\n            gas=fork.gas_costs().G_VERY_LOW + Spec.CLZ_GAS_COST + gas_cost_delta,\n            address=contract_address,\n        ),\n    )\n    call_address = pre.deploy_contract(\n        code=call_code,\n        storage={\"0x00\": \"0xdeadbeef\"},\n    )\n\n    tx = Transaction(to=call_address, sender=pre.fund_eoa(), gas_limit=200_000)\n\n    post = {call_address: Account(storage={\"0x00\": 0 if gas_cost_delta < 0 else 1})}\n\n    state_test(pre=pre, post=post, tx=tx)\n\n\n@EIPChecklist.Opcode.Test.StackUnderflow()\n@EIPChecklist.Opcode.Test.StackComplexOperations.StackHeights.Zero()\n@pytest.mark.valid_from(\"Osaka\")\ndef test_clz_stack_underflow(state_test: StateTestFiller, pre: Alloc) -> None:\n    \"\"\"\n    Test CLZ opcode with empty stack (should revert due to stack underflow).\n    \"\"\"\n    sender = pre.fund_eoa()\n    callee_address = pre.deploy_contract(\n        code=Op.CLZ + Op.STOP,  # No stack items, should underflow\n    )\n    caller_address = pre.deploy_contract(\n        code=Op.SSTORE(0, Op.CALL(gas=0xFFFF, address=callee_address)),\n        storage={\"0x00\": \"0xdeadbeef\"},\n    )\n    tx = Transaction(\n        to=caller_address,\n        sender=sender,\n        gas_limit=200_000,\n    )\n    post = {\n        caller_address: Account(\n            storage={\"0x00\": 0}  # Call failed due to stack underflow\n        ),\n    }\n    state_test(pre=pre, post=post, tx=tx)\n\n\n@EIPChecklist.Opcode.Test.StackComplexOperations.StackHeights.Odd()\n@EIPChecklist.Opcode.Test.StackComplexOperations.StackHeights.Even()\n@pytest.mark.valid_from(\"Osaka\")\ndef test_clz_stack_not_overflow(state_test: StateTestFiller, pre: Alloc, fork: Fork) -> None:\n    \"\"\"Test CLZ opcode never causes stack overflow.\"\"\"\n    max_stack_items = fork.max_stack_height()\n\n    code = Bytecode()\n    post = {}\n\n    code += Op.PUSH0 * (max_stack_items - 2)\n\n    for i in range(256):\n        code += Op.PUSH1(i) + Op.CLZ(1 << i) + Op.SWAP1 + Op.SSTORE\n\n    code_address = pre.deploy_contract(code=code)\n\n    post[code_address] = Account(storage={i: 255 - i for i in range(256)})\n\n    tx = Transaction(\n        to=code_address,\n        sender=pre.fund_eoa(),\n        gas_limit=6_000_000,\n    )\n\n    state_test(pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.valid_from(\"Osaka\")\ndef test_clz_push_operation_same_value(state_test: StateTestFiller, pre: Alloc) -> None:\n    \"\"\"Test CLZ opcode returns the same value via different push operations.\"\"\"\n    storage = {}\n\n    code = Op.SSTORE(0, Op.CLZ(Op.PUSH0))\n    storage[0x00] = 256\n\n    for bit in range(1, 33):  # PUSH value\n        for push_n in range(bit, 33):  # PUSHn opcode\n            op = getattr(Op, f\"PUSH{push_n}\")\n            key = 100 * bit + push_n\n            code += Op.SSTORE(key, Op.CLZ(op[1 << bit]))\n            storage[key] = 255 - bit\n\n    code_address = pre.deploy_contract(code=code)\n\n    tx = Transaction(\n        to=code_address,\n        sender=pre.fund_eoa(),\n        gas_limit=12_000_000,\n    )\n\n    post = {\n        code_address: Account(\n            storage=storage,\n        )\n    }\n\n    state_test(pre=pre, post=post, tx=tx)\n\n\n@EIPChecklist.Opcode.Test.ForkTransition.Invalid()\n@EIPChecklist.Opcode.Test.ForkTransition.At()\n@pytest.mark.valid_at_transition_to(\"Osaka\", subsequent_forks=True)\ndef test_clz_fork_transition(blockchain_test: BlockchainTestFiller, pre: Alloc) -> None:\n    \"\"\"Test CLZ opcode behavior at fork transition.\"\"\"\n    sender = pre.fund_eoa()\n    callee_address = pre.deploy_contract(\n        code=Op.SSTORE(Op.TIMESTAMP, Op.CLZ(1 << 100)) + Op.STOP,\n        storage={14_999: \"0xdeadbeef\"},\n    )\n    caller_address = pre.deploy_contract(\n        code=Op.SSTORE(Op.TIMESTAMP, Op.CALL(gas=0xFFFF, address=callee_address)),\n        storage={14_999: \"0xdeadbeef\"},\n    )\n    blocks = [\n        Block(\n            timestamp=14_999,\n            txs=[\n                Transaction(\n                    to=caller_address,\n                    sender=sender,\n                    nonce=0,\n                    gas_limit=200_000,\n                )\n            ],\n        ),\n        Block(\n            timestamp=15_000,\n            txs=[\n                Transaction(\n                    to=caller_address,\n                    sender=sender,\n                    nonce=1,\n                    gas_limit=200_000,\n                )\n            ],\n        ),\n        Block(\n            timestamp=15_001,\n            txs=[\n                Transaction(\n                    to=caller_address,\n                    sender=sender,\n                    nonce=2,\n                    gas_limit=200_000,\n                )\n            ],\n        ),\n    ]\n    blockchain_test(\n        pre=pre,\n        blocks=blocks,\n        post={\n            caller_address: Account(\n                storage={\n                    14_999: 0,  # Call fails as opcode not valid before Osaka\n                    15_000: 1,  # Call succeeds on fork transition block\n                    15_001: 1,  # Call continues to succeed after transition\n                }\n            ),\n            callee_address: Account(\n                storage={\n                    # CLZ not valid before fork, storage unchanged\n                    14_999: \"0xdeadbeef\",\n                    # CLZ valid on transition block, CLZ(1 << 100) = 155\n                    15_000: 155,\n                    # CLZ continues to be valid after transition\n                    15_001: 155,\n                }\n            ),\n        },\n    )\n\n\n@pytest.mark.valid_from(\"Osaka\")\n@pytest.mark.parametrize(\"opcode\", [Op.JUMPI, Op.JUMP])\n@pytest.mark.parametrize(\"valid_jump\", [True, False])\n@pytest.mark.parametrize(\"jumpi_condition\", [True, False])\n@pytest.mark.parametrize(\"bits\", [0, 16, 64, 128, 255])\ndef test_clz_jump_operation(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    opcode: Op,\n    valid_jump: bool,\n    jumpi_condition: bool,\n    bits: int,\n) -> None:\n    \"\"\"Test CLZ opcode with valid and invalid jump.\"\"\"\n    if opcode == Op.JUMP and not jumpi_condition:\n        pytest.skip(\"Duplicate case for JUMP.\")\n\n    code = Op.PUSH32(1 << bits)\n\n    if opcode == Op.JUMPI:\n        code += Op.PUSH1(jumpi_condition)\n\n    code += Op.PUSH1(len(code) + 3) + opcode\n\n    if valid_jump:\n        code += Op.JUMPDEST\n\n    code += Op.CLZ + Op.PUSH0 + Op.SSTORE + Op.RETURN(0, 0)\n\n    callee_address = pre.deploy_contract(code=code)\n\n    caller_address = pre.deploy_contract(\n        code=Op.SSTORE(0, Op.CALL(gas=0xFFFF, address=callee_address)),\n        storage={\"0x00\": \"0xdeadbeef\"},\n    )\n\n    tx = Transaction(\n        to=caller_address,\n        sender=pre.fund_eoa(),\n        gas_limit=200_000,\n    )\n\n    expected_clz = 255 - bits\n\n    post = {\n        caller_address: Account(storage={\"0x00\": 1 if valid_jump or not jumpi_condition else 0}),\n    }\n\n    if valid_jump or not jumpi_condition:\n        post[callee_address] = Account(storage={\"0x00\": expected_clz})\n\n    state_test(pre=pre, post=post, tx=tx)\n\n\nauth_account_start_balance = 0\n\n\n@EIPChecklist.Opcode.Test.ExecutionContext.SetCode()\n@pytest.mark.valid_from(\"Osaka\")\ndef test_clz_from_set_code(\n    state_test: StateTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"Test the address opcode in a set-code transaction.\"\"\"\n    storage = Storage()\n    auth_signer = pre.fund_eoa(auth_account_start_balance)\n\n    set_code = Bytecode()\n    for bits in [0, 1, 128, 255]:\n        expected_clz = 255 - bits\n        set_code += Op.SSTORE(storage.store_next(expected_clz), Op.CLZ(1 << bits))\n    set_code += Op.STOP\n\n    set_code_to_address = pre.deploy_contract(set_code)\n\n    tx = Transaction(\n        gas_limit=200_000,\n        to=auth_signer,\n        value=0,\n        authorization_list=[\n            AuthorizationTuple(\n                address=set_code_to_address,\n                nonce=0,\n                signer=auth_signer,\n            ),\n        ],\n        sender=pre.fund_eoa(),\n    )\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            set_code_to_address: Account(storage={}),\n            auth_signer: Account(\n                nonce=1,\n                code=Spec7702.delegation_designation(set_code_to_address),\n                storage=storage,\n            ),\n        },\n    )\n\n\n@pytest.mark.valid_from(\"Osaka\")\n@pytest.mark.parametrize(\"bits\", [0, 64, 255])\n@pytest.mark.parametrize(\"opcode\", [Op.CODECOPY, Op.EXTCODECOPY])\ndef test_clz_code_copy_operation(\n    state_test: StateTestFiller, pre: Alloc, bits: int, opcode: Op\n) -> None:\n    \"\"\"Test CLZ opcode with code copy operation.\"\"\"\n    storage = Storage()\n\n    expected_value = 255 - bits\n    clz_code_offset = len(Op.CLZ(1 << bits)) - 1  # Offset to CLZ opcode\n\n    mload_value = Spec.CLZ << 248  # CLZ opcode in MSB position (0x1E000...000)\n\n    target_address = pre.deploy_contract(code=Op.CLZ(1 << bits))\n\n    clz_contract_address = pre.deploy_contract(\n        code=(\n            Op.CLZ(1 << bits)  # Calculate CLZ of the value\n            + Op.SSTORE(storage.store_next(expected_value), Op.CLZ(1 << bits))  # Store CLZ result\n            + (  # Load CLZ byte from code with CODECOPY or EXTCODECOPY\n                Op.CODECOPY(dest_offset=0, offset=clz_code_offset, size=1)\n                if opcode == Op.CODECOPY\n                else Op.EXTCODECOPY(\n                    address=target_address, dest_offset=0, offset=clz_code_offset, size=1\n                )\n            )\n            # Store loaded CLZ byte\n            + Op.SSTORE(storage.store_next(mload_value), Op.MLOAD(0))\n        ),\n        storage={\"0x00\": \"0xdeadbeef\"},\n    )\n\n    post = {\n        clz_contract_address: Account(\n            storage={\n                \"0x00\": expected_value,\n                \"0x01\": mload_value,\n            }\n        )\n    }\n    tx = Transaction(\n        to=clz_contract_address,\n        sender=pre.fund_eoa(),\n        gas_limit=200_000,\n    )\n\n    state_test(pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.valid_from(\"Osaka\")\n@pytest.mark.parametrize(\"bits\", [0, 64, 255])\n@pytest.mark.parametrize(\"opcode\", [Op.CODECOPY, Op.EXTCODECOPY])\ndef test_clz_with_memory_operation(\n    state_test: StateTestFiller, pre: Alloc, bits: int, opcode: Op\n) -> None:\n    \"\"\"Test CLZ opcode with memory operation.\"\"\"\n    storage = Storage()\n\n    expected_value = 255 - bits\n\n    # Target code pattern:\n    #   PUSH32 (1 << bits)\n    #   PUSH0\n    #   MSTORE\n    #\n    # This sequence stores a 32-byte value in memory.\n    # Later, we copy the immediate value from the PUSH32 instruction into\n    # memory using CODECOPY or EXTCODECOPY, and then load it with MLOAD for\n    # the CLZ test.\n    target_code = Op.PUSH32(1 << bits)\n    offset = 1\n\n    target_address = pre.deploy_contract(code=target_code)\n\n    clz_contract_address = pre.deploy_contract(\n        code=(\n            target_code\n            + Op.SSTORE(storage.store_next(expected_value), Op.CLZ(1 << bits))  # Store CLZ result\n            + (\n                Op.CODECOPY(dest_offset=0, offset=offset, size=0x20)\n                if opcode == Op.CODECOPY\n                else Op.EXTCODECOPY(\n                    address=target_address, dest_offset=0, offset=offset, size=0x20\n                )\n            )\n            + Op.SSTORE(storage.store_next(expected_value), Op.CLZ(Op.MLOAD(0)))\n        ),\n        storage={\"0x00\": \"0xdeadbeef\"},\n    )\n\n    post = {\n        clz_contract_address: Account(storage={\"0x00\": expected_value, \"0x01\": expected_value}),\n    }\n\n    tx = Transaction(\n        to=clz_contract_address,\n        sender=pre.fund_eoa(),\n        gas_limit=200_000,\n    )\n\n    state_test(pre=pre, post=post, tx=tx)\n\n\n@EIPChecklist.Opcode.Test.ExecutionContext.Initcode.Behavior.Tx()\n@pytest.mark.valid_from(\"Osaka\")\ndef test_clz_initcode_context(state_test: StateTestFiller, pre: Alloc) -> None:\n    \"\"\"Test CLZ opcode behavior when creating a contract.\"\"\"\n    bits = [0, 1, 64, 128, 255]\n\n    storage = Storage()\n\n    init_code = Bytecode()\n    for bit in bits:\n        init_code += Op.SSTORE(storage.store_next(255 - bit), Op.CLZ(1 << bit))\n\n    sender_address = pre.fund_eoa()\n\n    contract_address = compute_create_address(address=sender_address, nonce=0)\n\n    tx = Transaction(\n        to=None,\n        gas_limit=6_000_000,\n        data=init_code,\n        sender=sender_address,\n    )\n\n    post = {\n        contract_address: Account(storage=storage),\n    }\n\n    state_test(pre=pre, post=post, tx=tx)\n\n\n@EIPChecklist.Opcode.Test.ExecutionContext.Initcode.Behavior.Opcode()\n@pytest.mark.valid_from(\"Osaka\")\n@pytest.mark.parametrize(\"opcode\", [Op.CREATE, Op.CREATE2])\ndef test_clz_initcode_create(state_test: StateTestFiller, pre: Alloc, opcode: Op) -> None:\n    \"\"\"Test CLZ opcode behavior when creating a contract.\"\"\"\n    bits = [0, 1, 64, 128, 255]  # expected values: [255, 254, 191, 127, 0]\n\n    storage = Storage()\n    ext_code = Bytecode()\n\n    for bit in bits:\n        ext_code += Op.SSTORE(storage.store_next(255 - bit), Op.CLZ(1 << bit))\n\n    sender_address = pre.fund_eoa()\n\n    create_contract = (\n        Op.CALLDATACOPY(offset=0, size=len(ext_code))\n        + opcode(offset=0, size=len(ext_code))\n        + Op.STOP\n    )\n\n    factory_contract_address = pre.deploy_contract(code=create_contract)\n\n    created_contract_address = compute_create_address(\n        address=factory_contract_address, nonce=1, initcode=ext_code, opcode=opcode\n    )\n\n    tx = Transaction(\n        to=factory_contract_address,\n        gas_limit=200_000,\n        data=ext_code,\n        sender=sender_address,\n    )\n\n    post = {\n        created_contract_address: Account(\n            storage=storage,\n        ),\n    }\n\n    state_test(pre=pre, post=post, tx=tx)\n\n\nclass CallingContext:\n    \"\"\"Context for calling operations.\"\"\"\n\n    callee_context = 1  # CALL\n    caller_context = 2  # DELEGATECALL\n    no_context = 3  # STATICCALL\n\n\n@EIPChecklist.Opcode.Test.ExecutionContext.Call()\n@EIPChecklist.Opcode.Test.ExecutionContext.Delegatecall()\n@EIPChecklist.Opcode.Test.ExecutionContext.Callcode()\n@EIPChecklist.Opcode.Test.ExecutionContext.Staticcall()\n@pytest.mark.valid_from(\"Osaka\")\n@pytest.mark.parametrize(\n    \"opcode,context\",\n    [\n        pytest.param(Op.CALL, CallingContext.callee_context, id=\"call\"),\n        pytest.param(Op.DELEGATECALL, CallingContext.caller_context, id=\"delegatecall\"),\n        pytest.param(Op.CALLCODE, CallingContext.caller_context, id=\"callcode\"),\n        pytest.param(Op.STATICCALL, CallingContext.no_context, id=\"staticcall\"),\n    ],\n)\ndef test_clz_call_operation(\n    state_test: StateTestFiller, pre: Alloc, opcode: Op, context: CallingContext\n) -> None:\n    \"\"\"Test CLZ opcode with call operation.\"\"\"\n    test_cases = [0, 64, 255]\n\n    # Storage Layout\n    callee_storage = Storage()\n    caller_storage = Storage()\n\n    callee_code = Bytecode()\n\n    for bits in reversed(test_cases):\n        callee_code += Op.CLZ(1 << bits)\n\n    if context != CallingContext.no_context:\n        for bits in test_cases:\n            callee_code += Op.SSTORE(callee_storage.store_next(255 - bits), Op.CLZ(1 << bits))\n\n    for i in range(len(test_cases)):\n        callee_code += Op.PUSH32(i * 0x20) + Op.MSTORE\n\n    callee_code += Op.RETURN(0, len(test_cases) * 0x20)\n\n    callee_address = pre.deploy_contract(code=callee_code)\n\n    caller_code = opcode(\n        gas=0xFFFF, address=callee_address, ret_offset=0, ret_size=len(test_cases) * 0x20\n    )\n\n    for i, bits in enumerate(test_cases):\n        caller_code += Op.SSTORE(caller_storage.store_next(255 - bits), Op.MLOAD(i * 0x20))\n\n    caller_address = pre.deploy_contract(code=caller_code)\n\n    tx = Transaction(\n        to=caller_address,\n        sender=pre.fund_eoa(),\n        gas_limit=200_000,\n    )\n\n    post = {}\n\n    if context == CallingContext.caller_context:\n        post[caller_address] = Account(storage=callee_storage)\n    elif context == CallingContext.callee_context:\n        post[callee_address] = Account(storage=callee_storage)\n        post[caller_address] = Account(storage=caller_storage)\n    elif context == CallingContext.no_context:\n        post[caller_address] = Account(storage=caller_storage)\n\n    state_test(pre=pre, post=post, tx=tx)\n"
  },
  {
    "path": "tests/osaka/eip7951_p256verify_precompiles/__init__.py",
    "content": "\"\"\"\nTests [EIP-7951: Precompile for secp256r1 Curve Support](https://eips.ethereum.org/EIPS/eip-7951).\n\"\"\"\n"
  },
  {
    "path": "tests/osaka/eip7951_p256verify_precompiles/conftest.py",
    "content": "\"\"\"Shared pytest definitions local to EIP-7951 tests.\"\"\"\n\nfrom typing import SupportsBytes\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import EOA, Address, Alloc, Bytecode, Storage, Transaction, keccak256\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom .spec import Spec\n\n\n@pytest.fixture\ndef vector_gas_value() -> int | None:\n    \"\"\"\n    Gas value from the test vector if any.\n\n    If `None` it means that the test scenario did not come from a file, so no\n    comparison is needed.\n\n    The `vectors_from_file` function reads the gas value from the file and\n    overwrites this fixture.\n    \"\"\"\n    return None\n\n\n@pytest.fixture\ndef precompile_gas(vector_gas_value: int | None) -> int:\n    \"\"\"Gas cost for the precompile.\"\"\"\n    if vector_gas_value is not None:\n        assert vector_gas_value == Spec.P256VERIFY_GAS, (\n            f\"Calculated gas {vector_gas_value} != Vector gas {Spec.P256VERIFY_GAS}\"\n        )\n    return Spec.P256VERIFY_GAS\n\n\n@pytest.fixture\ndef precompile_gas_modifier() -> int:\n    \"\"\"\n    Modify the gas passed to the precompile, for testing purposes.\n\n    By default the call is made with the exact gas amount required for the\n    given opcode, but when this fixture is overridden, the gas amount can be\n    modified to, e.g., test a lower amount and test if the precompile call\n    fails.\n    \"\"\"\n    return 0\n\n\n@pytest.fixture\ndef call_opcode() -> Op:\n    \"\"\"\n    Type of call used to call the precompile.\n\n    By default it is Op.CALL, but it can be overridden in the test.\n    \"\"\"\n    return Op.CALL\n\n\n@pytest.fixture\ndef call_contract_post_storage() -> Storage:\n    \"\"\"\n    Storage of the test contract after the transaction is executed.\n\n    Note:\n    Fixture `call_contract_code` fills the actual expected storage values.\n\n    \"\"\"\n    return Storage()\n\n\n@pytest.fixture\ndef call_succeeds() -> bool:\n    \"\"\"\n    By default, depending on the expected output, we can deduce if the call is\n    expected to succeed or fail.\n    \"\"\"\n    return True\n\n\n@pytest.fixture\ndef call_contract_code(\n    precompile_address: int,\n    precompile_gas: int,\n    precompile_gas_modifier: int,\n    expected_output: bytes | SupportsBytes,\n    call_succeeds: bool,\n    call_opcode: Op,\n    call_contract_post_storage: Storage,\n) -> Bytecode:\n    \"\"\"Code of the test contract.\"\"\"\n    expected_output = bytes(expected_output)\n    assert call_opcode in [Op.CALL, Op.CALLCODE, Op.DELEGATECALL, Op.STATICCALL]\n    value = [0] if call_opcode in [Op.CALL, Op.CALLCODE] else []\n\n    code = Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE()) + Op.SSTORE(\n        call_contract_post_storage.store_next(call_succeeds),\n        call_opcode(\n            precompile_gas + precompile_gas_modifier,\n            precompile_address,\n            *value,\n            0,\n            Op.CALLDATASIZE(),\n            0,\n            0,\n        )\n        + Op.SSTORE(\n            call_contract_post_storage.store_next(len(expected_output)), Op.RETURNDATASIZE()\n        ),\n    )\n    if call_succeeds:\n        # Add integrity check only if the call is expected to succeed.\n        code += Op.RETURNDATACOPY(0, 0, Op.RETURNDATASIZE()) + Op.SSTORE(\n            call_contract_post_storage.store_next(keccak256(expected_output)),\n            Op.SHA3(0, Op.RETURNDATASIZE()),\n        )\n    return code\n\n\n@pytest.fixture\ndef call_contract_address(pre: Alloc, call_contract_code: Bytecode) -> Address:\n    \"\"\"Address where the test contract will be deployed.\"\"\"\n    return pre.deploy_contract(call_contract_code)\n\n\n@pytest.fixture\ndef post(call_contract_address: Address, call_contract_post_storage: Storage) -> dict:\n    \"\"\"Test expected post outcome.\"\"\"\n    return {\n        call_contract_address: {\n            \"storage\": call_contract_post_storage,\n        },\n    }\n\n\n@pytest.fixture\ndef tx_gas_limit(fork: Fork, input_data: bytes, precompile_gas: int) -> int:\n    \"\"\"\n    Transaction gas limit used for the test (Can be overridden in the test).\n    \"\"\"\n    intrinsic_gas_cost_calculator = fork.transaction_intrinsic_cost_calculator()\n    memory_expansion_gas_calculator = fork.memory_expansion_gas_calculator()\n    extra_gas = 100_000\n    return (\n        extra_gas\n        + intrinsic_gas_cost_calculator(calldata=input_data)\n        + memory_expansion_gas_calculator(new_bytes=len(input_data))\n        + precompile_gas\n    )\n\n\n@pytest.fixture\ndef tx(\n    input_data: bytes,\n    tx_gas_limit: int,\n    call_contract_address: Address,\n    sender: EOA,\n) -> Transaction:\n    \"\"\"Transaction for the test.\"\"\"\n    return Transaction(\n        gas_limit=tx_gas_limit, data=input_data, to=call_contract_address, sender=sender\n    )\n"
  },
  {
    "path": "tests/osaka/eip7951_p256verify_precompiles/eip_checklist_external_coverage.txt",
    "content": "general/code_coverage/eels = Covered in EELS\ngeneral/code_coverage/test_coverage = Run locally"
  },
  {
    "path": "tests/osaka/eip7951_p256verify_precompiles/eip_checklist_not_applicable.txt",
    "content": "general/code_coverage/second_client = Optional\nsystem_contract = EIP does not include a new system contract\nopcode = EIP does not introduce a new opcode\nremoved_precompile = EIP does not remove a precompile\nprecompile/test/gas_usage/dynamic = EIP uses a constant amount of gas\nprecompile/test/input_lengths/dynamic = EIP input is a constant length\nprecompile/test/value_transfer/fee = EIP does not require a minimum value to execute\ntransaction_type = EIP does not introduce a new transaction type\nblock_header_field = EIP does not add any new block header fields\ngas_cost_changes = EIP does not introduce any gas cost changes\ngas_refunds_changes = EIP does not introduce any gas refund changes\nblob_count_changes = EIP does not introduce any blob count changes\nexecution_layer_request = EIP does not introduce an execution layer request\nnew_transaction_validity_constraint = EIP does not introduce a new transaction validity constraint\nmodified_transaction_validity_constraint = EIP does not introduce a modified transaction validity constraint\nblock_body_field = EIP does not add any new block body fields"
  },
  {
    "path": "tests/osaka/eip7951_p256verify_precompiles/helpers.py",
    "content": "\"\"\"Helper functions for the EIP-7951 P256VERIFY precompiles tests.\"\"\"\n\nimport os\nfrom typing import Annotated, Any, List\n\nimport pytest\nfrom pydantic import BaseModel, BeforeValidator, ConfigDict, RootModel, TypeAdapter\nfrom pydantic.alias_generators import to_pascal\n\n\ndef current_python_script_directory(*args: str) -> str:\n    \"\"\"\n    Get the current Python script directory, optionally appending additional\n    path components.\n    \"\"\"\n    return os.path.join(os.path.dirname(os.path.realpath(__file__)), *args)\n\n\nclass Vector(BaseModel):\n    \"\"\"Test vector for the secp256r1 precompile.\"\"\"\n\n    input: Annotated[bytes, BeforeValidator(bytes.fromhex)]\n    expected: Annotated[bytes, BeforeValidator(bytes.fromhex)]\n    gas: int\n    name: str\n\n    model_config = ConfigDict(alias_generator=to_pascal)\n\n    def to_pytest_param(self) -> Any:\n        \"\"\"\n        Convert the test vector to a tuple that can be used as a parameter in a\n        pytest test.\n        \"\"\"\n        return pytest.param(self.input, self.expected, self.gas, id=self.name)\n\n\nclass FailVector(BaseModel):\n    \"\"\"Test vector for the BLS12-381 precompiles.\"\"\"\n\n    input: Annotated[bytes, BeforeValidator(bytes.fromhex)]\n    expected_error: str\n    name: str\n\n    model_config = ConfigDict(alias_generator=to_pascal)\n\n    def to_pytest_param(self) -> Any:\n        \"\"\"\n        Convert the test vector to a tuple that can be used as a parameter in a\n        pytest test.\n        \"\"\"\n        return pytest.param(self.input, id=self.name)\n\n\nclass VectorList(RootModel):\n    \"\"\"List of test vectors for the secp256r1 precompile.\"\"\"\n\n    root: List[Vector | FailVector]\n\n\nVectorListAdapter = TypeAdapter(VectorList)\n\n\ndef vectors_from_file(filename: str) -> List:\n    \"\"\"Load test vectors from a file.\"\"\"\n    with open(\n        current_python_script_directory(\n            \"vectors\",\n            filename,\n        ),\n        \"rb\",\n    ) as f:\n        vectors_list = VectorListAdapter.validate_json(f.read())\n        all_inputs = set()\n        for vector in vectors_list.root:\n            if vector.input in all_inputs:\n                raise ValueError(f\"Duplicate input: {vector.input.hex()}\")\n            all_inputs.add(vector.input)\n        return [v.to_pytest_param() for v in vectors_list.root]\n"
  },
  {
    "path": "tests/osaka/eip7951_p256verify_precompiles/scripts/find_low_p256_points.sage",
    "content": "# Find points on P256 with low x or y coordinates by solving the curve equation\n# independently for range of low x and y values.\n#\n# Can be executed online: https://sagecell.sagemath.org/?q=pmqnkn\n#\n# Test cases generated:\n#\n# x_0_y_positive:\n#   (0x0000000000000000000000000000000000000000000000000000000000000000, 0x66485c780e2f83d72433bd5d84a06bb6541c2af31dae871728bf856a174f93f4)\n# x_0_y_negative:\n#   (0x0000000000000000000000000000000000000000000000000000000000000000, 0x99b7a386f1d07c29dbcc42a27b5f9449abe3d50de25178e8d7407a95e8b06c0b)\n# x_5_y_positive:\n# x_P_plus_5_y_positive:\n#   (0x0000000000000000000000000000000000000000000000000000000000000005, 0x459243b9aa581806fe913bce99817ade11ca503c64d9a3c533415c083248fbcc)\n# x_5_y_negative:\n# x_P_plus_5_y_negative:\n#   (0x0000000000000000000000000000000000000000000000000000000000000005, 0xba6dbc4555a7e7fa016ec431667e8521ee35afc49b265c3accbea3f7cdb70433)\n# y_1:\n# y_P_plus_1:\n#   (0x09e78d4ef60d05f750f6636209092bc43cbdd6b47e11a9de20a9feb2a50bb96c, 0x0000000000000000000000000000000000000000000000000000000000000001)\n\n\np = 0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff\na = -3\nb = 0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b\n\nF = GF(p)\naF = F(a)\nbF = F(b)\n\nM = 11\n\nfor x_int in range(0, M):\n    print(f\"x = {x_int}:\")\n    xF = F(x_int)\n    rhs = xF**3 + aF*xF + bF\n\n    if rhs.is_square():\n        y = rhs.sqrt()\n        for yF in [y, -y]:\n            print(f\"  (0x{int(xF):064x}, 0x{int(yF):064x})\")\n\nR.<x> = PolynomialRing(F)\nfor y_int in range(0, M):\n    yF = F(y_int)\n    # Solve x^3 + a*x + (b - y^2) == 0 over F_p\n    c = bF - yF * yF\n    f = x^3 + aF * x + c\n\n    roots = [r for (r, mult) in f.roots()]  # distinct roots over F_p\n\n    print(f\"y = {y_int}:\")\n    for xF in sorted(roots):\n        print(f\"  (0x{int(xF):064x}, 0x{y_int:064x})\")\n"
  },
  {
    "path": "tests/osaka/eip7951_p256verify_precompiles/spec.py",
    "content": "\"\"\"Defines EIP-7951 specification constants and functions.\"\"\"\n\nfrom dataclasses import dataclass\nfrom typing import Sized, SupportsBytes\n\nfrom ethereum_test_tools import Address, Bytes\n\n\n@dataclass(frozen=True)\nclass ReferenceSpec:\n    \"\"\"Defines the reference spec version and git path.\"\"\"\n\n    git_path: str\n    version: str\n\n\nref_spec_7951 = ReferenceSpec(\"EIPS/eip-7951.md\", \"06aadd458ee04ede80498db55927b052eb5bef38\")\n\n\nclass BytesConcatenation(SupportsBytes, Sized):\n    \"\"\"A class that can be concatenated with bytes.\"\"\"\n\n    def __len__(self) -> int:\n        \"\"\"Return length of the object when converted to bytes.\"\"\"\n        return len(bytes(self))\n\n    def __add__(self, other: bytes | SupportsBytes) -> bytes:\n        \"\"\"Concatenates the object with another bytes object.\"\"\"\n        return bytes(self) + bytes(other)\n\n    def __radd__(self, other: bytes | SupportsBytes) -> bytes:\n        \"\"\"Concatenates the object with another bytes object.\"\"\"\n        return bytes(other) + bytes(self)\n\n\n@dataclass(frozen=True)\nclass FieldElement(BytesConcatenation):\n    \"\"\"Dataclass that defines a single field element.\"\"\"\n\n    value: int = 0\n\n    def __bytes__(self) -> bytes:\n        \"\"\"Convert field element to bytes.\"\"\"\n        return self.value.to_bytes(32, byteorder=\"big\")\n\n\n# Specific field element classes\n@dataclass(frozen=True)\nclass R(FieldElement):\n    \"\"\"Dataclass that defines a R component of the signature.\"\"\"\n\n    pass\n\n\n@dataclass(frozen=True)\nclass S(FieldElement):\n    \"\"\"Dataclass that defines a S component of the signature.\"\"\"\n\n    pass\n\n\n@dataclass(frozen=True)\nclass X(FieldElement):\n    \"\"\"Dataclass that defines a X coordinate value.\"\"\"\n\n    pass\n\n\n@dataclass(frozen=True)\nclass Y(FieldElement):\n    \"\"\"Dataclass that defines a Y coordinate value.\"\"\"\n\n    pass\n\n\n@dataclass(frozen=True)\nclass H(FieldElement):\n    \"\"\"Dataclass that defines a Message Hash value.\"\"\"\n\n    pass\n\n\n@dataclass(frozen=True)\nclass Spec:\n    \"\"\"\n    Parameters from the EIP-7951 specifications as defined at\n    https://eips.ethereum.org/EIPS/eip-7951.\n    \"\"\"\n\n    # Address\n    P256VERIFY = 0x100\n\n    # Gas constants\n    P256VERIFY_GAS = 6900\n\n    # Curve Parameters\n    P = 0xFFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF  ## Base field modulus\n    A = 0xFFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFC  ## Curve Coefficient\n    B = 0x5AC635D8AA3A93E7B3EBBD55769886BC651D06B0CC53B0F63BCE3C3E27D2604B  ## Curve Coefficient\n    N = 0xFFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632551  ## Subgroup Order\n\n    Gx = 0x6B17D1F2E12C4247F8BCE6E563A440F277037D812DEB33A0F4A13945D898C296  ## Generator Point X\n    Gy = 0x4FE342E2FE1A7F9B8EE7EB4A7C0F9E162BCE33576B315ECECBB6406837BF51F5  ## Generator Point Y\n\n    # Other constants\n    SUCCESS_RETURN_VALUE = b\"\\x01\".rjust(32, b\"\\x00\")\n    INVALID_RETURN_VALUE = b\"\"\n    DELEGATION_DESIGNATION = Bytes(\"ef0100\")\n\n    # Test constants, from:\n    # https://github.com/C2SP/wycheproof/blob/4a6c2bf5dc4c0b67c770233ad33961ee653996a0/testvectors/ecdsa_secp256r1_sha256_test.json#L35\n    H0 = H(0xBB5A52F42F9C9261ED4361F59422A1E30036E7C32B270C8807A419FECA605023)\n    R0 = R(0x2BA3A8BE6B94D5EC80A6D9D1190A436EFFE50D85A1EEE859B8CC6AF9BD5C2E18)\n    S0 = S(0x4CD60B855D442F5B3C7B11EB6C4E0AE7525FE710FAB9AA7C77A67F79E6FADD76)\n    X0 = X(0x2927B10512BAE3EDDCFE467828128BAD2903269919F7086069C8C4DF6C732838)\n    Y0 = Y(0xC7787964EAAC00E5921FB1498A60F4606766B3D9685001558D1A974E7341513E)\n\n    # Test constants from:\n    # https://github.com/C2SP/wycheproof/blob/4a6c2bf5dc4c0b67c770233ad33961ee653996a0/testvectors/ecdsa_webcrypto_test.json#L1064\n    # k*G has a large x-coordinate which also gives very small r.\n    H1 = H(0x532EAABD9574880DBF76B9B8CC00832C20A6EC113D682299550D7A6E0F345E25)\n    R1 = R(0x000000000000000000000000000000004319055358E8617B0C46353D039CDAAB)\n    S1 = S(0xFFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC63254E)\n    X1 = X(0xD705D16F80987E2D9B1A6957D29CE22FEBF7D10FA515153182415C8361BAACA4)\n    Y1 = Y(0xB1FC105EE5CE80D514EC1238BEAE2037A6F83625593620D460819E8682160926)\n\n    @staticmethod\n    def delegation_designation(address: Address) -> Bytes:\n        \"\"\"Return delegation designation for the given address.\"\"\"\n        return Bytes(Spec.DELEGATION_DESIGNATION + bytes(address))\n"
  },
  {
    "path": "tests/osaka/eip7951_p256verify_precompiles/test_p256verify.py",
    "content": "\"\"\"\nTests for [EIP-7951: Precompile for secp256r1 Curve Support](https://eips.ethereum.org/EIPS/eip-7951).\n\"\"\"\n\nimport pytest\n\nfrom ethereum_test_checklists import EIPChecklist\nfrom ethereum_test_tools import (\n    Address,\n    Alloc,\n    Environment,\n    StateTestFiller,\n    Storage,\n    Transaction,\n    compute_create_address,\n)\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom .helpers import vectors_from_file\nfrom .spec import H, R, S, Spec, X, Y, ref_spec_7951\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_7951.git_path\nREFERENCE_SPEC_VERSION = ref_spec_7951.version\n\npytestmark = [\n    pytest.mark.valid_from(\"Osaka\"),\n]\n\n\n@pytest.mark.parametrize(\n    \"input_data,expected_output,vector_gas_value\",\n    vectors_from_file(\"secp256r1_signature_specific.json\")\n    + vectors_from_file(\"secp256r1_shamir_multiplication.json\")\n    + vectors_from_file(\"secp256r1_special_case_hash.json\")\n    + vectors_from_file(\"secp256r1_u1_u2.json\")\n    + vectors_from_file(\"secp256r1_k_and_s.json\")\n    + vectors_from_file(\"secp256r1_public_key.json\"),\n    # Test vectors generated from Wycheproof's ECDSA secp256r1 SHA-256 test\n    # suite, valid cases are from this source:\n    # https://github.com/C2SP/wycheproof/blob/main/testvectors/ecdsa_secp256r1_sha256_test.json\n)\n@pytest.mark.parametrize(\"precompile_address\", [Spec.P256VERIFY], ids=[\"\"])\n@EIPChecklist.Precompile.Test.CallContexts.Normal()\n@EIPChecklist.Precompile.Test.Inputs.Valid()\n@EIPChecklist.Precompile.Test.Inputs.MaxValues()\ndef test_wycheproof_valid(\n    state_test: StateTestFiller, pre: Alloc, post: dict, tx: Transaction\n) -> None:\n    \"\"\"Test P256Verify precompile with Wycheproof test suite (valid cases).\"\"\"\n    state_test(env=Environment(), pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.parametrize(\n    \"input_data,expected_output,vector_gas_value\",\n    vectors_from_file(\"secp256r1_special_case_r_s.json\")\n    + vectors_from_file(\"secp256r1_modified_r_s.json\"),\n    # Test vectors generated from Wycheproof's ECDSA secp256r1 SHA-256\n    # test suite, invalid cases\n    # Source: https://github.com/C2SP/wycheproof/blob/main/\n    # testvectors/ecdsa_secp256r1_sha256_test.json\n)\n@pytest.mark.parametrize(\"precompile_address\", [Spec.P256VERIFY], ids=[\"\"])\n@EIPChecklist.Precompile.Test.CallContexts.Normal()\n@EIPChecklist.Precompile.Test.Inputs.Invalid()\n@EIPChecklist.Precompile.Test.Inputs.MaxValues()\ndef test_wycheproof_invalid(\n    state_test: StateTestFiller, pre: Alloc, post: dict, tx: Transaction\n) -> None:\n    \"\"\"\n    Test P256Verify precompile with Wycheproof test suite\n    (invalid cases).\n    \"\"\"\n    state_test(env=Environment(), pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.parametrize(\n    \"input_data,expected_output,vector_gas_value\",\n    vectors_from_file(\"secp256r1_small_large_r_s.json\")\n    + vectors_from_file(\"secp256r1_special_points.json\"),\n    # Test vectors generated from Wycheproof's ECDSA secp256r1 SHA-256\n    # test suite, valid/invalid cases\n    # Source: https://github.com/C2SP/wycheproof/blob/main/\n    # testvectors/ecdsa_secp256r1_sha256_test.json\n)\n@pytest.mark.parametrize(\"precompile_address\", [Spec.P256VERIFY], ids=[\"\"])\n@EIPChecklist.Precompile.Test.CallContexts.Normal()\n@EIPChecklist.Precompile.Test.Inputs.MaxValues()\ndef test_wycheproof_extra(\n    state_test: StateTestFiller, pre: Alloc, post: dict, tx: Transaction\n) -> None:\n    \"\"\"\n    Test P256Verify precompile with Wycheproof test suite\n    (mixed valid/invalid cases).\n    \"\"\"\n    state_test(env=Environment(), pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.parametrize(\n    \"input_data\",\n    [\n        pytest.param(\n            H(0) + R(Spec.Gx) + S(Spec.Gx) + X(Spec.Gx) + Y(Spec.Gy),\n            id=\"hash_0\",\n        ),\n        pytest.param(\n            H(Spec.N - 1) + R(Spec.Gx) + S(Spec.Gx - 1) + X(Spec.Gx) + Y(Spec.Gy),\n            id=\"hash_N_minus_1\",\n        ),\n        pytest.param(\n            H(Spec.N) + R(Spec.Gx) + S(Spec.Gx) + X(Spec.Gx) + Y(Spec.Gy),\n            id=\"hash_N\",\n        ),\n        pytest.param(\n            H(Spec.P - 1)\n            + R(Spec.Gx)\n            + S(Spec.Gx + Spec.P - 1 - Spec.N)\n            + X(Spec.Gx)\n            + Y(Spec.Gy),\n            id=\"hash_P_minus_1\",\n        ),\n        pytest.param(\n            H(Spec.P) + R(Spec.Gx) + S(Spec.Gx + Spec.P - Spec.N) + X(Spec.Gx) + Y(Spec.Gy),\n            id=\"hash_P\",\n        ),\n        pytest.param(\n            H(2**256 - 1)\n            + R(Spec.Gx)\n            + S(Spec.Gx + 2**256 - 1 - Spec.N)\n            + X(Spec.Gx)\n            + Y(Spec.Gy),\n            id=\"hash_max\",\n        ),\n        pytest.param(\n            H(Spec.N + 1 - Spec.Gx) + R(Spec.Gx) + S(1) + X(Spec.Gx) + Y(Spec.Gy),\n            id=\"s_1\",\n        ),\n        pytest.param(\n            H(Spec.N - 1 - Spec.Gx) + R(Spec.Gx) + S(Spec.N - 1) + X(Spec.Gx) + Y(Spec.Gy),\n            id=\"s_N_minus_1\",\n        ),\n        pytest.param(\n            H(((2**256 - 1) % Spec.N) - Spec.Gx + Spec.N)\n            + R(Spec.Gx)\n            + S((2**256 - 1) % Spec.N)\n            + X(Spec.Gx)\n            + Y(Spec.Gy),\n            id=\"s_max_mod_N\",\n        ),\n        pytest.param(\n            H(0xC3D3BE9EB3577F217AE0AB360529A30B18ADC751AEC886328593D7D6FE042809)\n            + R(0x3A4E97B44CBF88B90E6205A45BA957E520F63F3C6072B53C244653278A1819D8)\n            + S(0x6A184AA037688A5EBD25081FD2C0B10BB64FA558B671BD81955CA86E09D9D722)\n            + X(0)\n            + Y(0x66485C780E2F83D72433BD5D84A06BB6541C2AF31DAE871728BF856A174F93F4),\n            id=\"x_0_y_positive\",\n        ),\n        pytest.param(\n            H(0xF98A88895CB0866C5BAD58CF03000DDF9D21CB9407892FF54D637E6A046AFBB3)\n            + R(0x81DC074973D3222F3930981AD98D022517C91063FFB83CFD620E29B86DC30A8F)\n            + S(0x365E4CD085617A265765062A2D9954ED86309DFA33CF5AE1464FE119419FC34A)\n            + X(0)\n            + Y(0x99B7A386F1D07C29DBCC42A27B5F9449ABE3D50DE25178E8D7407A95E8B06C0B),\n            id=\"x_0_y_negative\",\n        ),\n        pytest.param(\n            H(0x5F95DCD6E41662D1E0AEFCCDB7877877C1FD88C9E67FC3CDA0D1D520FA8A3AC2)\n            + R(0xAF5DFDDB7EDC789D7C9C42A44AFBBF13C8F1D77D576B6EE5F11FEA4F33E2CB39)\n            + S(0xA28F8C5625AD622950F2FCE9672784B287EF9E032ADE8C23BA218413A1CF6522)\n            + X(5)\n            + Y(0x459243B9AA581806FE913BCE99817ADE11CA503C64D9A3C533415C083248FBCC),\n            id=\"x_5_y_positive\",\n        ),\n        pytest.param(\n            H(0x31CE0B00FA8DD61EF28C7DC5F839C78CF70D60E625E0670BF9C9FCE25E89D99F)\n            + R(0x0FA19CBE154513BA348F2DB951AFB6E135BAC5BD8891282781A032103C3F1289)\n            + S(0xD9ABF5C4E61098A6E653F265770BDBA36ECC8073CEF99548D89FE2C39A7AFA9B)\n            + X(5)\n            + Y(0xBA6DBC4555A7E7FA016EC431667E8521EE35AFC49B265C3ACCBEA3F7CDB70433),\n            id=\"x_5_y_negative\",\n        ),\n        pytest.param(\n            H(0x65B0E03E7A27E6F9F4989C72486FCAF0A3ECF3EF60D14F1C11FB5BF071A8FD1B)\n            + R(0x0B0CC9E314E4180FE18D205010DD1C4410632D472CC4E7AB56CBC04091ABE006)\n            + S(0x8D12C4F19AC41D7877705453A247AB96394E7C093F57EC073A9D150CDE6B68C6)\n            + X(0x09E78D4EF60D05F750F6636209092BC43CBDD6B47E11A9DE20A9FEB2A50BB96C)\n            + Y(1),\n            id=\"y_1\",\n        ),\n        pytest.param(\n            H(0x744084AD41EE67ED1802A6868ACE7815FD6FC0585A3479FF68E69ADB8DD2B420)\n            + R(0xB481C7650CBE85BCD15565811966DA2DA4E4E2931F0892D911520B6A06C340D8)\n            + S(0xE4C2D9FB9A4E3E29B7414F0408B2EBC4421D5BC8ADDCCF864AFF9E7E10DA31BB)\n            + X(0x09E78D4EF60D05F750F6636209092BC43CBDD6B47E11A9DE20A9FEB2A50BB96C)\n            + Y(Spec.P - 1),\n            id=\"y_P_minus_1\",\n        ),\n        # Test case for u1==u2 and Q==G.\n        # This test case is important because u1*G + u2*Q is point doubling.\n        pytest.param(\n            H(0x7CF27B188D034F7E8A52380304B51AC3C08969E277F21B35A60B48FC47669978)\n            + R(0x7CF27B188D034F7E8A52380304B51AC3C08969E277F21B35A60B48FC47669978)\n            + S(0x830D84E672FCB08275ADC7FCFB4AE53BFC5D90CB2F25834F4DAE81C6B4FC8BD9)\n            + X(Spec.Gx)\n            + Y(Spec.Gy),\n            id=\"u1_eq_u2_and_Q_eq_G\",\n        ),\n        # Test case for u1==u2 and Q!=G.\n        pytest.param(\n            H(0x65FB4407BCB2A33AE2E486366BAA79B3A8A17A83DDE0FED6F09014A8AC6F78A1)\n            + R(0x65FB4407BCB2A33AE2E486366BAA79B3A8A17A83DDE0FED6F09014A8AC6F78A1)\n            + S(0x65FB4407BCB2A33AE2E486366BAA79B3A8A17A83DDE0FED6F09014A8AC6F78A1)\n            + Spec.X0\n            + Spec.Y0,\n            id=\"u1_eq_u2_and_Q_ne_G\",\n        ),\n    ],\n)\n@pytest.mark.parametrize(\"expected_output\", [Spec.SUCCESS_RETURN_VALUE], ids=[\"\"])\n@pytest.mark.parametrize(\"precompile_address\", [Spec.P256VERIFY], ids=[\"\"])\ndef test_valid(state_test: StateTestFiller, pre: Alloc, post: dict, tx: Transaction) -> None:\n    \"\"\"Positive tests for the P256VERIFY precompile.\"\"\"\n    state_test(env=Environment(), pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.parametrize(\n    \"input_data\",\n    [\n        pytest.param(b\"\", id=\"zero_length_input\"),\n        pytest.param(\n            b\"\\x00\" + Spec.H0 + Spec.R0 + Spec.S0 + Spec.X0 + Spec.Y0,\n            id=\"input_too_long\",\n        ),\n        pytest.param(\n            (Spec.H0 + Spec.R0 + Spec.S0 + Spec.X0 + Spec.Y0)[:-1],\n            id=\"input_too_short\",\n        ),\n        pytest.param(\n            H(0) + R(0) + S(0) + X(0) + Y(0),\n            id=\"input_all_zeros\",\n        ),\n        pytest.param(\n            H(0) + Spec.R0 + Spec.S0 + Spec.X0 + Spec.Y0,\n            id=\"hash_0\",\n        ),\n        pytest.param(\n            H(Spec.N - 1) + Spec.R0 + Spec.S0 + Spec.X0 + Spec.Y0,\n            id=\"hash_N_minus_1\",\n        ),\n        pytest.param(\n            H(Spec.N) + Spec.R0 + Spec.S0 + Spec.X0 + Spec.Y0,\n            id=\"hash_N\",\n        ),\n        pytest.param(\n            H(Spec.P - 1) + Spec.R0 + Spec.S0 + Spec.X0 + Spec.Y0,\n            id=\"hash_P_minus_1\",\n        ),\n        pytest.param(\n            H(Spec.P) + Spec.R0 + Spec.S0 + Spec.X0 + Spec.Y0,\n            id=\"hash_P\",\n        ),\n        pytest.param(\n            H(2**256 - 1) + Spec.R0 + Spec.S0 + Spec.X0 + Spec.Y0,\n            id=\"hash_max\",\n        ),\n        pytest.param(\n            Spec.H0 + R(0) + Spec.S0 + Spec.X0 + Spec.Y0,\n            id=\"r_eq_to_zero\",\n        ),\n        pytest.param(\n            Spec.H0 + R(Spec.N) + Spec.S0 + Spec.X0 + Spec.Y0,\n            id=\"r_eq_to_n\",\n        ),\n        pytest.param(\n            Spec.H1 + R(Spec.R1.value + Spec.N) + Spec.S1 + Spec.X1 + Spec.Y1,\n            id=\"r_above_n\",\n        ),\n        pytest.param(\n            Spec.H0 + R(2**256 - 1) + Spec.S0 + Spec.X0 + Spec.Y0,\n            id=\"r_max\",\n        ),\n        pytest.param(\n            Spec.H0 + Spec.R0 + S(0) + Spec.X0 + Spec.Y0,\n            id=\"s_eq_to_zero\",\n        ),\n        pytest.param(\n            Spec.H0 + Spec.R0 + S(Spec.N) + Spec.X0 + Spec.Y0,\n            id=\"s_eq_to_n\",\n        ),\n        # If checks for r, s, and point-at-infinity are missing, the s=0 zeros\n        # both u1 and u2, so the computed R is the point at infinity,\n        # and the signature may be considered valid in such implementation.\n        pytest.param(\n            Spec.H0 + R(0) + S(0) + X(Spec.Gx) + Y(Spec.Gy),\n            id=\"r_0_s_0\",\n        ),\n        pytest.param(\n            Spec.H0 + R(0) + S(Spec.N) + X(Spec.Gx) + Y(Spec.Gy),\n            id=\"r_0_s_N\",\n        ),\n        pytest.param(\n            Spec.H0 + R(Spec.N) + S(0) + X(Spec.Gx) + Y(Spec.Gy),\n            id=\"r_N_s_0\",\n        ),\n        pytest.param(\n            Spec.H0 + R(Spec.N) + S(Spec.N) + X(Spec.Gx) + Y(Spec.Gy),\n            id=\"r_N_s_N\",\n        ),\n        # If checks for r and point-at-infinity are missing, the h=0 and r=0\n        # zero both u1 and u2, so the computed R is the point at infinity,\n        # and the signature may be considered valid in such implementation.\n        pytest.param(\n            H(0) + R(0) + Spec.S0 + X(Spec.Gx) + Y(Spec.Gy),\n            id=\"hash_0_r_0\",\n        ),\n        pytest.param(\n            H(0) + R(Spec.N) + Spec.S0 + X(Spec.Gx) + Y(Spec.Gy),\n            id=\"hash_0_r_N\",\n        ),\n        pytest.param(\n            H(Spec.N) + R(0) + Spec.S0 + X(Spec.Gx) + Y(Spec.Gy),\n            id=\"hash_N_r_0\",\n        ),\n        pytest.param(\n            H(Spec.N) + R(Spec.N) + Spec.S0 + X(Spec.Gx) + Y(Spec.Gy),\n            id=\"hash_N_r_N\",\n        ),\n        pytest.param(\n            Spec.H0 + R(Spec.Gx) + S((2**256 - 1) % Spec.N) + X(Spec.Gx) + Y(Spec.Gy),\n            id=\"s_max_mod_N\",\n        ),\n        pytest.param(\n            H(Spec.N + 1 - Spec.Gx) + R(Spec.Gx) + S(Spec.N + 1) + X(Spec.Gx) + Y(Spec.Gy),\n            id=\"s_N_plus_1\",\n        ),\n        pytest.param(\n            H(((2**256 - 1) % Spec.N) - Spec.Gx + Spec.N)\n            + R(Spec.Gx)\n            + S(2**256 - 1)\n            + X(Spec.Gx)\n            + Y(Spec.Gy),\n            id=\"s_max\",\n        ),\n        pytest.param(\n            Spec.H0 + Spec.R0 + Spec.S0 + X(Spec.P) + Spec.Y0,\n            id=\"x_eq_to_p\",\n        ),\n        pytest.param(\n            Spec.H0 + Spec.R0 + Spec.S0 + Spec.X0 + Y(Spec.P),\n            id=\"y_eq_to_p\",\n        ),\n        pytest.param(\n            Spec.H0 + Spec.R0 + Spec.S0 + X(0) + Y(0),\n            id=\"point_at_infinity\",\n        ),\n        # Test case with Q at infinity. If the implementation misses the check\n        # that Q is not the point at infinity, the signature should verify.\n        pytest.param(\n            Spec.H0\n            + R(0x2DD5CBB0E37BAEC8D1460909B206CA2C87E50CA43B8F31E46168027A7F0AEEC6)\n            + Spec.S0\n            + X(0)\n            + Y(0),\n            id=\"point_at_infinity_v2\",\n        ),\n        pytest.param(\n            Spec.H0 + Spec.R0 + Spec.S0 + X(Spec.X0.value + 1) + Spec.Y0,\n            id=\"point_not_on_curve_x\",\n        ),\n        pytest.param(\n            Spec.H0 + Spec.R0 + Spec.S0 + Spec.X0 + Y(Spec.Y0.value + 1),\n            id=\"point_not_on_curve_y\",\n        ),\n        pytest.param(\n            Spec.H0 + Spec.R0 + Spec.S0 + Spec.Y0 + Spec.X0,\n            id=\"x_and_y_reversed\",\n        ),\n        pytest.param(\n            Spec.H0 + Spec.R0 + Spec.S0 + Spec.X0 + Y(Spec.P + 1),\n            id=\"y_greater_than_p\",\n        ),\n        pytest.param(\n            Spec.H0 + Spec.R0 + Spec.S0 + X(Spec.P + 1) + Spec.Y0,\n            id=\"x_greater_than_p\",\n        ),\n        pytest.param(\n            H(0xC3D3BE9EB3577F217AE0AB360529A30B18ADC751AEC886328593D7D6FE042809)\n            + R(0x3A4E97B44CBF88B90E6205A45BA957E520F63F3C6072B53C244653278A1819D8)\n            + S(0x6A184AA037688A5EBD25081FD2C0B10BB64FA558B671BD81955CA86E09D9D722)\n            + X(Spec.P)  # Valid for X(0)\n            + Y(0x66485C780E2F83D72433BD5D84A06BB6541C2AF31DAE871728BF856A174F93F4),\n            id=\"x_P_y_positive\",\n        ),\n        pytest.param(\n            H(0xF98A88895CB0866C5BAD58CF03000DDF9D21CB9407892FF54D637E6A046AFBB3)\n            + R(0x81DC074973D3222F3930981AD98D022517C91063FFB83CFD620E29B86DC30A8F)\n            + S(0x365E4CD085617A265765062A2D9954ED86309DFA33CF5AE1464FE119419FC34A)\n            + X(Spec.P)  # Valid for X(0)\n            + Y(0x99B7A386F1D07C29DBCC42A27B5F9449ABE3D50DE25178E8D7407A95E8B06C0B),\n            id=\"x_P_y_negative\",\n        ),\n        pytest.param(\n            H(0x5F95DCD6E41662D1E0AEFCCDB7877877C1FD88C9E67FC3CDA0D1D520FA8A3AC2)\n            + R(0xAF5DFDDB7EDC789D7C9C42A44AFBBF13C8F1D77D576B6EE5F11FEA4F33E2CB39)\n            + S(0xA28F8C5625AD622950F2FCE9672784B287EF9E032ADE8C23BA218413A1CF6522)\n            + X(Spec.P + 5)  # Valid for X(5)\n            + Y(0x459243B9AA581806FE913BCE99817ADE11CA503C64D9A3C533415C083248FBCC),\n            id=\"x_P_plus_5_y_positive\",\n        ),\n        pytest.param(\n            H(0x31CE0B00FA8DD61EF28C7DC5F839C78CF70D60E625E0670BF9C9FCE25E89D99F)\n            + R(0x0FA19CBE154513BA348F2DB951AFB6E135BAC5BD8891282781A032103C3F1289)\n            + S(0xD9ABF5C4E61098A6E653F265770BDBA36ECC8073CEF99548D89FE2C39A7AFA9B)\n            + X(Spec.P + 5)  # Valid for X(5)\n            + Y(0xBA6DBC4555A7E7FA016EC431667E8521EE35AFC49B265C3ACCBEA3F7CDB70433),\n            id=\"x_P_plus_5_y_negative\",\n        ),\n        pytest.param(\n            H(0x65B0E03E7A27E6F9F4989C72486FCAF0A3ECF3EF60D14F1C11FB5BF071A8FD1B)\n            + R(0x0B0CC9E314E4180FE18D205010DD1C4410632D472CC4E7AB56CBC04091ABE006)\n            + S(0x8D12C4F19AC41D7877705453A247AB96394E7C093F57EC073A9D150CDE6B68C6)\n            + X(0x09E78D4EF60D05F750F6636209092BC43CBDD6B47E11A9DE20A9FEB2A50BB96C)\n            + Y(Spec.P + 1),  # Valid for Y(1)\n            id=\"y_P_plus_1\",\n        ),\n        # Test case produces the point R at infinity: (R0/S0)*G + (R0/S0)*(-G).\n        pytest.param(\n            H(Spec.R0.value) + Spec.R0 + Spec.S0 + X(Spec.Gx) + Y(Spec.P - Spec.Gy),\n            id=\"R_at_infinity_v1\",\n        ),\n        # Test case produces the point R at infinity: (1/1)*G + (1/1)*(-G).\n        pytest.param(\n            H(1) + R(1) + S(1) + X(Spec.Gx) + Y(Spec.P - Spec.Gy),\n            id=\"R_at_infinity_v2\",\n        ),\n        pytest.param(\n            Spec.H0\n            + R(0x813EF79CCEFA9A56F7BA805F0E478584FE5F0DD5F567BC09B5123CCBC9832365)\n            + S(0x900E75AD233FCC908509DBFF5922647DB37C21F4AFD3203AE8DC4AE7794B0F87)\n            + X(0xB838FF44E5BC177BF21189D0766082FC9D843226887FC9760371100B7EE20A6F)\n            + Y(0xF0C9D75BFBA7B31A6BCA1974496EEB56DE357071955D83C4B1BADAA0B21832E9),\n            id=\"valid_secp256k1_inputs\",\n        ),\n        pytest.param(\n            H(0x235060CAFE19A407880C272BC3E73600E3A12294F56143ED61929C2FF4525ABB)\n            + R(0x182E5CBDF96ACCB859E8EEA1850DE5FF6E430A19D1D9A680ECD5946BBEA8A32B)\n            + S(0x76DDFAE6797FA6777CAAB9FA10E75F52E70A4E6CEB117B3C5B2F445D850BD64C)\n            + X(0x3828736CDFC4C8696008F71999260329AD8B12287846FEDCEDE3BA1205B12729)\n            + Y(0x3E5141734E971A8D55015068D9B3666760F4608A49B11F92E500ACEA647978C7),\n            id=\"wrong_endianness\",\n        ),\n        pytest.param(\n            H(Spec.P - 1)\n            + R(Spec.N - 2)\n            + S((Spec.N - 1) // 2)\n            + X(Spec.P - 3)\n            + Y(0x19719BEBF6AEA13F25C96DFD7C71F5225D4C8FC09EB5A0AB9F39E9178E55C121),\n            id=\"near_field_boundary_p_minus_3\",\n        ),\n        pytest.param(\n            # Invalid curve attack: This point satisfies y² = x³ - 3x + 1 (mod\n            # p) instead of the correct P-256 equation y² = x³ - 3x + b where\n            # b = 0x5AC635D8AA3A93E7B3EBBD55769886BC651D06B0CC53...\n            # ...B0F63BCE3C3E27D2604B\n            #\n            # This tests that the implementation properly validates the curve\n            # equation and rejects points on different curves (CVE-2020-0601\n            # class vulnerability)\n            Spec.H0\n            + Spec.R0\n            + Spec.S0\n            + X(0x4)\n            + Y(0x872A856D521EED42D28A60CCC2EAE42E1572F33BE2BF616DC9A762D51C459E2A),\n            id=\"invalid_curve_attack_b_equals_one\",\n        ),\n        pytest.param(\n            # Invalid curve attack: Singular curve with b = 0\n            # Point satisfies y² = x³ - 3x (mod p) - a singular/degenerate\n            #                                        curve\n            # Singular curves have discriminant = 0 and provide no security\n            # guarantees.\n            # This tests rejection of points on curves with catastrophic\n            # security failures\n            Spec.H0\n            + Spec.R0\n            + Spec.S0\n            + X(0x2)\n            + Y(0x507442007322AA895340CBA4ABC2D730BFD0B16C2C79A46815F8780D2C55A2DD),\n            id=\"invalid_curve_attack_singular_b_zero\",\n        ),\n        pytest.param(\n            # Invalid curve attack: Boundary value b = p-1\n            # Point satisfies y² = x³ - 3x + (p-1) (mod p)\n            #\n            # Tests proper parameter validation at\n            # modular arithmetic boundaries.\n            # Ensures implementations handle field arithmetic edge cases\n            # correctly.\n            Spec.H0\n            + Spec.R0\n            + Spec.S0\n            + X(0x1)\n            + Y(0x6522AED9EA48F2623B8EEAE3E213B99DA32E74C9421835804D374CE28FCCA662),\n            id=\"invalid_curve_attack_b_equals_p_minus_1\",\n        ),\n        pytest.param(\n            # Invalid curve attack: Small discriminant curve with b = 2\n            # Point satisfies y² = x³ - 3x + 2 (mod p)\n            #\n            # Curves with small discriminants are vulnerable to specialized\n            # attacks.\n            #\n            # Tests rejection of cryptographically weak curve parameters.\n            Spec.H0 + Spec.R0 + Spec.S0 + X(0x1) + Y(0x0),\n            id=\"invalid_curve_attack_small_discriminant\",\n        ),\n        pytest.param(\n            # Invalid curve attack: Composite order curve with b = 7\n            # Point satisfies y² = x³ - 3x + 7 (mod p)\n            # Curve order has small factors enabling Pohlig-Hellman attacks\n            # Tests protection against small subgroup confinement attacks\n            Spec.H0\n            + Spec.R0\n            + Spec.S0\n            + X(0x1)\n            + Y(0x85EC5A4AF40176B63189069AEFFCB229C96D3E046E0283ED2F9DAC21B15AD3C),\n            id=\"invalid_curve_attack_composite_order\",\n        ),\n        pytest.param(\n            # Invalid curve attack: Composite order curve with b = -Spec.B\n            # Random point which satisfies y² = x³ - 3x - Spec.B (mod p)\n            # Without the curve check in the implementation,\n            # the signature checks out.\n            H(0xC223E1538C4D7B5BBD3EF932736826FD64F4E8B5C80250D9E07A728689D13C38)\n            + R(0x0C7CB59EF6BE7539397CC979AD9A87A3B73A0DD268BBA4990A3378C6391512D5)\n            + S(0xF8C943685BCFE7864C0F8485CACD732D3A9F167531CAF26B67A3CB10B641F92C)\n            + X(0xF1F2ADE681DB5699741B1F9FF080E9A08DCFF48F48A5048C4D90EC89440C3EFB)\n            + Y(0xBFFE372E7BBDBD60E4DF885E17A37878461AE13B6491E7863020305962F2C6B6),\n            id=\"invalid_curve_attack_bneg_1\",\n        ),\n        pytest.param(\n            # Invalid curve attack: Composite order curve with b = -Spec.B\n            # Random point which satisfies y² = x³ - 3x - Spec.B (mod p)\n            # Without the curve check in the implementation,\n            # the signature checks out.\n            H(0x982D25BF8E0E81FF41AC3C8033604C78ED5EF17C6EDDA977072EAB6821A7AD0A)\n            + R(0x7C1996FA0EC911E4739AE7340B5345823272F494DFA32034A4FE5642C3DB91F2)\n            + S(0x1E4D6CCF1AFB675D18BD27274770C8B84028D272D1D2641E70B30E1DF17AF3DC)\n            + X(0xC9124B6AB12F08790A2712AEC74A1B71FA997CA7DE1E9117BC18D07DCBFE7C91)\n            + Y(0xADD1E9DF40A47ADD6B2191C05D0C1B4AF1BAEEAA0C0A97E7B3D06FFAE543D096),\n            id=\"invalid_curve_attack_bneg_2\",\n        ),\n        pytest.param(\n            # Invalid curve attack: random point bytes.\n            # Without the curve check in the implementation,\n            # the signature checks out.\n            H(0)\n            + R(0xD21697149F598FEAE9A750DCA86AE6D5EFA654680BA748D2DF7053115101C129)\n            + S(0xEF3FD943AD1F126B3EBA1A5900D79886755DB6DAFCB6B0117D86364340CE36CC)\n            + X(0x687216395BD2F58E5A6D91964AE67E766DF2A2FB8E623795A5852507927C70C2)\n            + Y(0xF40E19B93BEB5C0678EDE25AB3654E08C0C6EF6A143CEC9865F3A447C6EB84E3),\n            id=\"invalid_curve_attack_h0_random1\",\n        ),\n        pytest.param(\n            # Invalid curve attack: random point bytes.\n            # Without the curve check in the implementation,\n            # the signature checks out.\n            H(0)\n            + R(0x52E47C5D6AAB66AB6A18A694359EB86FDD40F10E79EF5493C5469EC88BA03334)\n            + S(0x7584C5BF3CA2869C7E383B1603A935EEB79D990B7F7152E055EC562E87FD715E)\n            + X(0x0000000000000002000000000000000000000000000000000000000000000000)\n            + Y(0x000000000000000000000000000000000000000000000000FE00000000000000),\n            id=\"invalid_curve_attack_h0_random2\",\n        ),\n        pytest.param(\n            # Invalid curve attack: random point bytes.\n            # Without the curve check in the implementation,\n            # the signature checks out.\n            H(0)\n            + R(0x81333B13B13F362253BD536D17563A72EB575F1993F55ED40E633E503F60B864)\n            + S(0xE2208C4045F5241ECCF08F825399224C4B78595A10433EC33799DCAD7B0E1F4A)\n            + X(0xCE9C1088B4BCC71223A187410BB05819A6D32D2F1A1024B83557E51833AB23DC)\n            + Y(0x00FB64209538D1143A88E8B91D2DA46095AF852D7DD494BE6AF26C29D545F856),\n            id=\"invalid_curve_attack_h0_random3\",\n        ),\n        pytest.param(\n            # Invalid curve attack: random point bytes.\n            # Without the curve check in the implementation,\n            # the signature checks out.\n            H(0)\n            + R(0x3C593B5857D1D0EB83923D73E76A7A53EF191BB210267D8C0BE17A4E34AB2E73)\n            + S(0xD022359310067882F713AFBECECE71CB80E4857368F46AB0346362DB033ED298)\n            + X(0x358DF65C0D732CCAB431D4CAB7F98E9F9279BD71D64635FAB21EA87EF254C5D1)\n            + Y(0x82909FF2E230433D000000000000000000000000000000000000000000000000),\n            id=\"invalid_curve_attack_h0_random4\",\n        ),\n        pytest.param(\n            # Invalid curve attack: random point bytes.\n            # Without the curve check in the implementation,\n            # the signature checks out.\n            H(0)\n            + R(0x425CFFCA652791CABFC81B1E4B7712DBA196599FABCE16978E06E6AF486B1FEC)\n            + S(0x58B864B5A41CD17524E4773EC353C9590D792F601DA075AD9B3F40E8E7070E8A)\n            + X(0x00000000000000000000000000000000000000000000000000007FFFFFFFFFFF)\n            + Y(0xFFFF000000000000000000000000000000000000000000000000000000000000),\n            id=\"invalid_curve_attack_h0_random5\",\n        ),\n        pytest.param(\n            # Invalid curve attack: random point bytes.\n            # Without the curve check in the implementation,\n            # the signature checks out.\n            H(0x2DA0A74BE3122AEAEF5704D0EB27881FBFB918B4A5252B660935263D0569BA92)\n            + R(0x5543729CBCFD99EE6C3B422D7F245903E7177B3A6A4E3C20C0DC5F5E109795AE)\n            + S(0x96403D5BB253EBD7DEF44BCBC062FCD4EA5E358B19B67C13E625EFDF6B977597)\n            + X(0x996CADC001622FB5E363B421A08854096569397B3BDCB8C3DEC907392F7CC59B)\n            + Y(0xD34A4E0F08C6FC549F7FAFFBCAF610D7F6C467B7B27072720E81079FB6595B52),\n            id=\"invalid_curve_attack_random6\",\n        ),\n        pytest.param(\n            # Invalid curve attack: random point bytes.\n            # Without the curve check in the implementation,\n            # the signature checks out.\n            H(0x1F9D9B26DB42380C85F075174DDAF158F9DE4CD10C3104190D7AF96938DD8ECD)\n            + R(0x159946DBC4F1DE68CD4096862A5B10E5986ACB32229D6E68884DC83DAB70A307)\n            + S(0x63D80724A4074421F7DD255630794E3AEBE635B756D72B24652AAC07D01B289C)\n            + X(0x9CA2F39CC3536861000000000000000000000000000000000000000000000000)\n            + Y(0x000000000000B100000000000000000000000000000000000000000000000000),\n            id=\"invalid_curve_attack_random7\",\n        ),\n        pytest.param(\n            # Invalid curve attack: random point bytes.\n            # Without the curve check in the implementation,\n            # the signature checks out.\n            H(0xD380DA9251F1FB809ED48C70DC8F81E91C471F0E81BC95E7611C653278A5B6B4)\n            + R(0xFF197EB72A9E531B17B872525247E6564B786CC014ED28B6849CE7D8C976BDF2)\n            + S(0x7B0B2EFF9BB5409052B35FD3FF81DCE77D95A1F75C46989817045120DA5C3C9C)\n            + X(0xBA7695481956A6269DD646ADDD4AFE6D9763637D76AD780299E51201384A8403)\n            + Y(0xA62443DD4AFE6D9763637D76AD780299E51201384AE4FEDD3CDAC9F461600D53),\n            id=\"invalid_curve_attack_random8\",\n        ),\n        pytest.param(\n            # Invalid curve attack: random point bytes.\n            # Without the curve check in the implementation,\n            # the signature checks out.\n            H(0x4B082B60497ED87FFE570612D521E73A2CD6C832744EF8E4E2E329E30D3D5879)\n            + R(0x6665A88CB3FF30D339A1975FD46CF5EF480A68A093AB778550073D3528C3B609)\n            + S(0xAEAADDB235E4AC6097356DB96161E27849EA8EDF1E971F74EB51E19A1CC950A1)\n            + X(0x0000000000000002000000000000000000000000000000000000000000000000)\n            + Y(0x000000000000000000000000000000000000000000000000FE00000000000000),\n            id=\"invalid_curve_attack_random9\",\n        ),\n        pytest.param(\n            # Invalid curve attack: random point bytes.\n            # Without the curve check in the implementation,\n            # the signature checks out.\n            H(0x6CC2B605CFBDB22B9E7B55EFE8C1DA0F1C5A0EC1AA8D82EEDFB5EA70E9846E88)\n            + R(0x3C593B5857D1D0EB83923D73E76A7A53EF191BB210267D8C0BE17A4E34AB2E73)\n            + S(0xD022359310067882F713AFBECECE71CB80E4857368F46AB0346362DB033ED298)\n            + X(0x358DF65C0D732CCAB431D4CAB7F98E9F9279BD71D64635FAB21EA87EF254C5D1)\n            + Y(0x82909FF2E230433D000000000000000000000000000000000000000000000000),\n            id=\"invalid_curve_attack_random10\",\n        ),\n        pytest.param(\n            # Invalid curve attack: random point bytes.\n            # Without the curve check in the implementation,\n            # the signature checks out.\n            H(0x810C1D53EA96A700C93F6AF1C183197B040EA6FEAE10564877A1C78EC6074FF1)\n            + R(0x34D0F0C8E14D39002B5DEA00808957963E849503DDFD626323433047D696C7C4)\n            + S(0x6A7FE39C046304317F799FB900877073F2AE3C798DD4414795551A833ABCBA85)\n            + X(0x0000000000F90000000067923073C067015B601D94F262F0E82B9DA2D33A6A32)\n            + Y(0xFC3D71CB490CF346ED31DC37405FB0069F4A7ED188381DC049ABAB66E9F80080),\n            id=\"invalid_curve_attack_random_11\",\n        ),\n    ],\n)\n@pytest.mark.parametrize(\"expected_output\", [Spec.INVALID_RETURN_VALUE], ids=[\"\"])\n@pytest.mark.parametrize(\"precompile_address\", [Spec.P256VERIFY], ids=[\"\"])\n@EIPChecklist.Precompile.Test.Inputs.AllZeros()\n@EIPChecklist.Precompile.Test.Inputs.Invalid()\n@EIPChecklist.Precompile.Test.Inputs.Invalid.Crypto()\n@EIPChecklist.Precompile.Test.Inputs.Invalid.Corrupted()\n@EIPChecklist.Precompile.Test.InputLengths.Zero()\n@EIPChecklist.Precompile.Test.InputLengths.Static.Correct()\n@EIPChecklist.Precompile.Test.InputLengths.Static.TooShort()\n@EIPChecklist.Precompile.Test.InputLengths.Static.TooLong()\n@EIPChecklist.Precompile.Test.OutOfBounds.Max()\n@EIPChecklist.Precompile.Test.OutOfBounds.MaxPlusOne()\ndef test_invalid(state_test: StateTestFiller, pre: Alloc, post: dict, tx: Transaction) -> None:\n    \"\"\"Negative tests for the P256VERIFY precompile.\"\"\"\n    state_test(env=Environment(), pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.parametrize(\n    \"input_data,expected_output,precompile_gas_modifier,call_succeeds\",\n    [\n        pytest.param(\n            Spec.H0 + Spec.R0 + Spec.S0 + Spec.X0 + Spec.Y0,\n            Spec.SUCCESS_RETURN_VALUE,\n            1,\n            True,\n            id=\"extra_gas\",\n        ),\n        pytest.param(\n            Spec.H0 + Spec.R0 + Spec.S0 + Spec.X0 + Spec.Y0,\n            Spec.INVALID_RETURN_VALUE,\n            -1,\n            False,\n            id=\"insufficient_gas\",\n        ),\n        pytest.param(\n            Spec.H0 + Spec.R0 + Spec.S0 + Spec.X0 + Spec.Y0,\n            Spec.INVALID_RETURN_VALUE,\n            -6900,\n            False,\n            id=\"zero_gas\",\n        ),\n        pytest.param(\n            Spec.H0 + Spec.R0 + Spec.S0 + Spec.X0 + Spec.Y0,\n            Spec.INVALID_RETURN_VALUE,\n            -3450,\n            False,\n            id=\"3450_gas\",\n        ),\n    ],\n)\n@pytest.mark.parametrize(\"precompile_address\", [Spec.P256VERIFY], ids=[\"\"])\n@EIPChecklist.Precompile.Test.GasUsage.Constant.Exact()\n@EIPChecklist.Precompile.Test.GasUsage.Constant.Oog()\ndef test_gas(state_test: StateTestFiller, pre: Alloc, post: dict, tx: Transaction) -> None:\n    \"\"\"Test P256Verify precompile gas requirements.\"\"\"\n    state_test(env=Environment(), pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.parametrize(\n    \"call_opcode\",\n    [\n        Op.STATICCALL,\n        Op.DELEGATECALL,\n        Op.CALLCODE,\n    ],\n)\n@pytest.mark.parametrize(\n    \"input_data,expected_output\",\n    [\n        pytest.param(\n            Spec.H0 + Spec.R0 + Spec.S0 + Spec.X0 + Spec.Y0,\n            Spec.SUCCESS_RETURN_VALUE,\n            id=\"valid_call\",\n        ),\n    ],\n)\n@pytest.mark.parametrize(\"precompile_address\", [Spec.P256VERIFY], ids=[\"\"])\n@EIPChecklist.Precompile.Test.CallContexts.Delegate()\n@EIPChecklist.Precompile.Test.CallContexts.Static()\n@EIPChecklist.Precompile.Test.CallContexts.Callcode()\ndef test_call_types(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"Test P256Verify precompile using different call types.\"\"\"\n    state_test(env=Environment(), pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.parametrize(\n    \"input_data,call_contract_address,post\",\n    [\n        pytest.param(\n            Spec.H0 + Spec.R0 + Spec.S0 + Spec.X0 + Spec.Y0,\n            Spec.P256VERIFY,\n            {},\n            id=\"valid_entry_point\",\n        ),\n    ],\n)\n@EIPChecklist.Precompile.Test.CallContexts.TxEntry()\ndef test_precompile_as_tx_entry_point(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"Test P256Verify precompile entry point.\"\"\"\n    state_test(env=Environment(), pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.parametrize(\n    \"input_data,precompile_address,expected_output\",\n    [\n        pytest.param(\n            Spec.H0 + Spec.R0 + Spec.S0 + Spec.X0 + Spec.Y0,\n            Spec.P256VERIFY,\n            Spec.SUCCESS_RETURN_VALUE,\n            id=\"valid_input_with_value_transfer\",\n        ),\n    ],\n)\n@EIPChecklist.Precompile.Test.ValueTransfer.NoFee()\ndef test_precompile_will_return_success_with_tx_value(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    input_data: bytes,\n    expected_output: bytes,\n    precompile_address: Address,\n) -> None:\n    \"\"\"Test P256Verify precompile will not fail if value is sent.\"\"\"\n    sender = pre.fund_eoa()\n    storage = Storage()\n\n    call_256verify_bytecode = (\n        Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE())\n        + Op.CALL(\n            gas=Spec.P256VERIFY_GAS,\n            address=Spec.P256VERIFY,\n            value=Op.CALLVALUE(),\n            args_offset=0,\n            args_size=Op.CALLDATASIZE(),\n            ret_offset=0,\n            ret_size=32,\n        )\n        + Op.SSTORE(storage.store_next(True), Op.DUP1())\n        + Op.SSTORE(storage.store_next(expected_output), Op.MLOAD(0))\n        + Op.SSTORE(storage.store_next(len(expected_output)), Op.RETURNDATASIZE())\n        + Op.STOP\n    )\n\n    contract_address = pre.deploy_contract(call_256verify_bytecode)\n    tx = Transaction(\n        sender=sender,\n        gas_limit=1000000,\n        to=contract_address,\n        value=1000,\n        data=input_data,\n    )\n    post = {contract_address: {\"storage\": storage}}\n    state_test(env=Environment(), pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.parametrize(\n    \"input_data,expected_output\",\n    [\n        # Test case where computed x-coordinate exceeds curve order N\n        # This tests the modular comparison: r' ≡ r (mod N)\n        pytest.param(\n            Spec.H0\n            # R: A value that when used in ECDSA verification produces an\n            # x-coordinate > N\n            + R(0x000000000000000000000000000000004319055358E8617B0C46353D039CDAAB)\n            + S(0xFFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC63254E)\n            # X, Y: Public key coordinates that will produce x-coordinate > N\n            # during verification\n            + X(0x0AD99500288D466940031D72A9F5445A4D43784640855BF0A69874D2DE5FE103)\n            + Y(0xC5011E6EF2C42DCD50D5D3D29F99AE6EBA2C80C9244F4C5422F0979FF0C3BA5E),\n            Spec.SUCCESS_RETURN_VALUE,\n            id=\"x_coordinate_exceeds_n\",\n        ),\n        pytest.param(\n            Spec.H1 + Spec.R1 + Spec.S1 + Spec.X1 + Spec.Y1,\n            Spec.SUCCESS_RETURN_VALUE,\n            id=\"x_coordinate_exceeds_n_v2\",\n        ),\n        # Test cases where compute x-coordinate exceeds curve order N,\n        # but the signature is invalid.\n        # This is a modification of the above test by taking -h, -r, -s\n        # what gives the same u1 and u2 and in the result the same point R.\n        pytest.param(\n            H(Spec.N - Spec.H1.value)\n            + R(Spec.N - Spec.R1.value)\n            + S(Spec.N - Spec.S1.value)\n            + Spec.X1\n            + Spec.Y1,\n            Spec.INVALID_RETURN_VALUE,\n            id=\"invalid_x_coordinate_exceeds_n\",\n        ),\n        pytest.param(\n            Spec.H0\n            + R(Spec.N + 1)  # R = N + 1 ≡ 1 (mod N)\n            + Spec.S0\n            + Spec.X0\n            + Spec.Y0,\n            Spec.INVALID_RETURN_VALUE,  # Should fail because R = 1 is not a\n            # valid signature\n            id=\"r_equals_n_plus_one\",\n        ),\n        pytest.param(\n            Spec.H0\n            + R(Spec.N + 2)  # R = N + 2 ≡ 2 (mod N)\n            + Spec.S0\n            + Spec.X0\n            + Spec.Y0,\n            Spec.INVALID_RETURN_VALUE,  # Should fail because R = 2 is not a\n            # valid signature\n            id=\"r_equals_n_plus_two\",\n        ),\n    ],\n)\n@pytest.mark.parametrize(\"precompile_address\", [Spec.P256VERIFY], ids=[\"\"])\n@EIPChecklist.Precompile.Test.Inputs.Valid()\n@EIPChecklist.Precompile.Test.Inputs.Invalid.Crypto()\ndef test_modular_comparison(\n    state_test: StateTestFiller, pre: Alloc, post: dict, tx: Transaction\n) -> None:\n    \"\"\"\n    Test the modular comparison condition for secp256r1 precompile.\n\n    This tests that when the x-coordinate of R' exceeds the curve order N, the\n    verification should use modular arithmetic: r' ≡ r (mod N) instead of\n    direct equality r' == r.\n    \"\"\"\n    state_test(env=Environment(), pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.parametrize(\n    \"input_data,expected_output\",\n    [\n        pytest.param(\n            Spec.H0 + Spec.R0 + Spec.S0 + Spec.X0 + Spec.Y0,\n            Spec.SUCCESS_RETURN_VALUE,\n            id=\"valid_input\",\n        ),\n        pytest.param(\n            b\"\\x00\" * 160,\n            Spec.INVALID_RETURN_VALUE,\n            id=\"invalid_input\",\n        ),\n    ],\n)\n@pytest.mark.parametrize(\"precompile_address\", [Spec.P256VERIFY], ids=[\"\"])\n@EIPChecklist.Precompile.Test.CallContexts.Initcode.Tx()\ndef test_contract_creation_transaction(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    tx: Transaction,\n    input_data: bytes,\n    expected_output: bytes,\n) -> None:\n    \"\"\"Test the contract creation for the P256VERIFY precompile.\"\"\"\n    sender = pre.fund_eoa()\n\n    storage = Storage()\n    contract_address = compute_create_address(address=sender, nonce=0)\n    contract_bytecode = (\n        Op.CODECOPY(0, Op.SUB(Op.CODESIZE, len(input_data)), len(input_data))\n        + Op.CALL(\n            gas=Spec.P256VERIFY_GAS,\n            address=Spec.P256VERIFY,\n            value=0,\n            args_offset=0,\n            args_size=len(input_data),\n            ret_offset=0,\n            ret_size=32,\n        )\n        + Op.SSTORE(storage.store_next(True), Op.DUP1())\n        + Op.SSTORE(storage.store_next(expected_output), Op.MLOAD(0))\n        + Op.SSTORE(storage.store_next(len(expected_output)), Op.RETURNDATASIZE())\n        + Op.STOP\n    )\n\n    tx = Transaction(\n        sender=sender,\n        gas_limit=1000000,\n        to=None,\n        value=0,\n        data=contract_bytecode + input_data,\n    )\n\n    post = {\n        contract_address: {\n            \"storage\": storage,\n        }\n    }\n    state_test(env=Environment(), pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.parametrize(\n    \"input_data,expected_output\",\n    [\n        pytest.param(\n            Spec.H0 + Spec.R0 + Spec.S0 + Spec.X0 + Spec.Y0,\n            Spec.SUCCESS_RETURN_VALUE,\n            id=\"valid_input\",\n        ),\n        pytest.param(\n            b\"\\x00\" * 160,\n            Spec.INVALID_RETURN_VALUE,\n            id=\"invalid_input\",\n        ),\n    ],\n)\n@pytest.mark.parametrize(\"precompile_address\", [Spec.P256VERIFY], ids=[\"\"])\n@pytest.mark.parametrize(\"opcode\", [Op.CREATE, Op.CREATE2])\n@EIPChecklist.Precompile.Test.CallContexts.Initcode.CREATE()\ndef test_contract_initcode(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    tx: Transaction,\n    input_data: bytes,\n    expected_output: bytes,\n    opcode: Op,\n) -> None:\n    \"\"\"Test P256VERIFY behavior from contract creation.\"\"\"\n    sender = pre.fund_eoa()\n\n    storage = Storage()\n\n    call_256verify_bytecode = (\n        Op.CODECOPY(0, Op.SUB(Op.CODESIZE, len(input_data)), len(input_data))\n        + Op.CALL(\n            gas=Spec.P256VERIFY_GAS,\n            address=Spec.P256VERIFY,\n            value=0,\n            args_offset=0,\n            args_size=len(input_data),\n            ret_offset=0,\n            ret_size=32,\n        )\n        + Op.SSTORE(storage.store_next(True), Op.DUP1())\n        + Op.SSTORE(storage.store_next(expected_output), Op.MLOAD(0))\n        + Op.SSTORE(storage.store_next(len(expected_output)), Op.RETURNDATASIZE())\n        + Op.STOP\n    )\n    full_initcode = call_256verify_bytecode + input_data\n    total_bytecode_length = len(call_256verify_bytecode) + len(input_data)\n\n    create_contract = (\n        Op.CALLDATACOPY(offset=0, size=total_bytecode_length)\n        + opcode(offset=0, size=total_bytecode_length)\n        + Op.STOP\n    )\n\n    factory_contract_address = pre.deploy_contract(code=create_contract)\n    contract_address = compute_create_address(\n        address=factory_contract_address, nonce=1, initcode=full_initcode, opcode=opcode\n    )\n\n    tx = Transaction(\n        sender=sender,\n        gas_limit=200_000,\n        to=factory_contract_address,\n        value=0,\n        data=call_256verify_bytecode + input_data,\n    )\n\n    post = {\n        contract_address: {\n            \"storage\": storage,\n        }\n    }\n\n    state_test(env=Environment(), pre=pre, post=post, tx=tx)\n"
  },
  {
    "path": "tests/osaka/eip7951_p256verify_precompiles/test_p256verify_before_fork.py",
    "content": "\"\"\"\nTests P256VERIFY precompiles of [EIP-7951: Precompile for secp256r1\nCurve Support](https://eips.ethereum.org/EIPS/eip-7951).\n\nTests P256VERIFY\nprecompiles of [EIP-7951: Precompile for secp256r1 Curve\nSupport](https://eips.ethereum.org/EIPS/eip-7951) before the Osaka hard fork is\nactive.\n\"\"\"\n\nimport pytest\n\nfrom ethereum_test_checklists import EIPChecklist\nfrom ethereum_test_tools import Alloc, Block, BlockchainTestFiller, Transaction\n\nfrom .spec import Spec, ref_spec_7951\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_7951.git_path\nREFERENCE_SPEC_VERSION = ref_spec_7951.version\n\npytestmark = pytest.mark.valid_at_transition_to(\"Osaka\")\n\n\n@pytest.mark.parametrize(\n    \"precompile_address,input_data,precompile_gas_modifier\",\n    [\n        pytest.param(\n            Spec.P256VERIFY,\n            Spec.H0 + Spec.R0 + Spec.S0 + Spec.X0 + Spec.Y0,\n            0,\n            id=\"P256VERIFY_valid_input_6900_gas\",\n        ),\n        pytest.param(\n            Spec.P256VERIFY,\n            Spec.H0 + Spec.R0 + Spec.S0 + Spec.X0 + Spec.X0,\n            0,\n            id=\"P256VERIFY_invalid_input\",\n        ),\n        pytest.param(\n            Spec.P256VERIFY,\n            Spec.H0 + Spec.R0 + Spec.S0 + Spec.X0 + Spec.Y0,\n            -6900,\n            id=\"P256VERIFY_valid_input_zero_gas\",\n        ),\n    ],\n)\n@pytest.mark.parametrize(\n    \"expected_output,call_succeeds\",\n    [pytest.param(Spec.INVALID_RETURN_VALUE, True, id=pytest.HIDDEN_PARAM)],\n)\n@EIPChecklist.Precompile.Test.ForkTransition.Before.InvalidInput()\n@EIPChecklist.Precompile.Test.ForkTransition.Before.ZeroGas()\ndef test_precompile_before_fork(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"\n    Test P256VERIFY precompiles before the Osaka hard fork is active.\n\n    The call must succeed but the output must be empty.\n    \"\"\"\n    blockchain_test(\n        pre=pre,\n        blocks=[Block(txs=[tx])],\n        post=post,\n    )\n"
  },
  {
    "path": "tests/osaka/eip7951_p256verify_precompiles/vectors/secp256r1_k_and_s.json",
    "content": "[\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050237cf27b188d034f7e8a52380304b51ac3c08969e277f21b35a60b48fc47669978555555550000000055555555555555553ef7a8e48d07df81a693439654210c704fea55b32cb32aca0c12c4cd0abfb4e64b0f5a516e578c016591a93f5a0fbcc5d7d3fd10b2be668c547b212f6bb14c88f0fecd38a8a4b2c785ed3be62ce4b280\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #176: extreme value for k and edgecase s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050237cf27b188d034f7e8a52380304b51ac3c08969e277f21b35a60b48fc47669978b6db6db6249249254924924924924924625bd7a09bec4ca81bcdd9f8fd6b63ccc6a771527024227792170a6f8eee735bf32b7f98af669ead299802e32d7c3107bc3b4b5e65ab887bbd343572b3e5619261fe3a073e2ffd78412f726867db589e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #177: extreme value for k and s^-1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050237cf27b188d034f7e8a52380304b51ac3c08969e277f21b35a60b48fc47669978cccccccc00000000cccccccccccccccc971f2ef152794b9d8fc7d568c9e8eaa7851c2bbad08e54ec7a9af99f49f03644d6ec6d59b207fec98de85a7d15b956efcee9960283045075684b410be8d0f7494b91aa2379f60727319f10ddeb0fe9d6\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #178: extreme value for k and s^-1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050237cf27b188d034f7e8a52380304b51ac3c08969e277f21b35a60b48fc476699783333333300000000333333333333333325c7cbbc549e52e763f1f55a327a3aaaf6417c8a670584e388676949e53da7fc55911ff68318d1bf3061205acb19c48f8f2b743df34ad0f72674acb7505929784779cd9ac916c3669ead43026ab6d43f\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #179: extreme value for k and s^-1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050237cf27b188d034f7e8a52380304b51ac3c08969e277f21b35a60b48fc4766997849249248db6db6dbb6db6db6db6db6db5a8b230d0b2b51dcd7ebf0c9fef7c185501421277be45a5eefec6c639930d636032565af420cf3373f557faa7f8a06438673d6cb6076e1cfcdc7dfe7384c8e5cac08d74501f2ae6e89cad195d0aa1371\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #180: extreme value for k and s^-1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050237cf27b188d034f7e8a52380304b51ac3c08969e277f21b35a60b48fc4766997816a4502e2781e11ac82cbc9d1edd8c981584d13e18411e2f6e0478c34416e3bb0d935bf9ffc115a527735f729ca8a4ca23ee01a4894adf0e3415ac84e808bb343195a3762fea29ed38912bd9ea6c4fde70c3050893a4375850ce61d82eba33c5\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #181: extreme value for k\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050236b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296555555550000000055555555555555553ef7a8e48d07df81a693439654210c705e59f50708646be8a589355014308e60b668fb670196206c41e748e64e4dca215de37fee5c97bcaf7144d5b459982f52eeeafbdf03aacbafef38e213624a01de\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #182: extreme value for k and edgecase s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050236b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296b6db6db6249249254924924924924924625bd7a09bec4ca81bcdd9f8fd6b63cc169fb797325843faff2f7a5b5445da9e2fd6226f7ef90ef0bfe924104b02db8e7bbb8de662c7b9b1cf9b22f7a2e582bd46d581d68878efb2b861b131d8a1d667\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #183: extreme value for k and s^-1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050236b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296cccccccc00000000cccccccccccccccc971f2ef152794b9d8fc7d568c9e8eaa7271cd89c000143096b62d4e9e4ca885aef2f7023d18affdaf8b7b548981487540a1c6e954e32108435b55fa385b0f76481a609b9149ccb4b02b2ca47fe8e4da5\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #184: extreme value for k and s^-1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050236b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2963333333300000000333333333333333325c7cbbc549e52e763f1f55a327a3aaa3d0bc7ed8f09d2cb7ddb46ebc1ed799ab1563a9ab84bf524587a220afe499c12e22dc3b3c103824a4f378d96adb0a408abf19ce7d68aa6244f78cb216fa3f8df\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #185: extreme value for k and s^-1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050236b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c29649249248db6db6dbb6db6db6db6db6db5a8b230d0b2b51dcd7ebf0c9fef7c185a6c885ade1a4c566f9bb010d066974abb281797fa701288c721bcbd23663a9b72e424b690957168d193a6096fc77a2b004a9c7d467e007e1f2058458f98af316\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #186: extreme value for k and s^-1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050236b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c29616a4502e2781e11ac82cbc9d1edd8c981584d13e18411e2f6e0478c34416e3bb8d3c2c2c3b765ba8289e6ac3812572a25bf75df62d87ab7330c3bdbad9ebfa5c4c6845442d66935b238578d43aec54f7caa1621d1af241d4632e0b780c423f5d\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #187: extreme value for k\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e257cf27b188d034f7e8a52380304b51ac3c08969e277f21b35a60b48fc47669978555555550000000055555555555555553ef7a8e48d07df81a693439654210c70961691a5e960d07a301dbbad4d86247ec27d7089faeb3ddd1add395efff1e0fe7254622cc371866cdf990d2c5377790e37d1f1519817f09a231bd260a9e78aeb\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #694: extreme value for k and edgecase s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e257cf27b188d034f7e8a52380304b51ac3c08969e277f21b35a60b48fc47669978b6db6db6249249254924924924924924625bd7a09bec4ca81bcdd9f8fd6b63cc5d283e13ce8ca60da868e3b0fb33e6b4f1074793274e2928250e71e2aca63e9c214dc74fa25371fb4d9e506d418ed9a1bfd6d0c8bb6591d3e0f44505a84886ce\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #695: extreme value for k and s^-1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e257cf27b188d034f7e8a52380304b51ac3c08969e277f21b35a60b48fc47669978cccccccc00000000cccccccccccccccc971f2ef152794b9d8fc7d568c9e8eaa70fc351da038ae0803bd1d86514ae0462f9f8216551d9315aa9d297f792eef6a341c74eed786f2d33da35360ca7aa925e753f00d6077a1e9e5fc339d634019c73\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #696: extreme value for k and s^-1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e257cf27b188d034f7e8a52380304b51ac3c08969e277f21b35a60b48fc476699783333333300000000333333333333333325c7cbbc549e52e763f1f55a327a3aaaa1e34c8f16d138673fee55c080547c2bfd4de7550065f638322bba9430ce4b60662be9bb512663aa4d7df8ab3f3b4181c5d44a7bdf42436620b7d8a6b81ac936\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #697: extreme value for k and s^-1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e257cf27b188d034f7e8a52380304b51ac3c08969e277f21b35a60b48fc4766997849249248db6db6dbb6db6db6db6db6db5a8b230d0b2b51dcd7ebf0c9fef7c1857e1a8a8338d7fd8cf41d322a302d2078a87a23c7186150ed7cda6e52817c1bdfd0a9135a89d21ce821e29014b2898349254d748272b2d4eb8d59ee34c615377f\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #698: extreme value for k and s^-1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e257cf27b188d034f7e8a52380304b51ac3c08969e277f21b35a60b48fc4766997816a4502e2781e11ac82cbc9d1edd8c981584d13e18411e2f6e0478c34416e3bb5c19fe227a61abc65c61ee7a018cc9571b2c6f663ea33583f76a686f64be078b7b4a0d734940f613d52bc48673b457c2cf78492490a5cc5606c0541d17b24ddb\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #699: extreme value for k\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e256b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296555555550000000055555555555555553ef7a8e48d07df81a693439654210c70db02d1f3421d600e9d9ef9e47419dba3208eed08c2d4189a5db63abeb2739666e0ed26967b9ada9ed7ffe480827f90a0d210d5fd8ec628e31715e6b24125512a\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #700: extreme value for k and edgecase s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e256b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296b6db6db6249249254924924924924924625bd7a09bec4ca81bcdd9f8fd6b63cc6222d1962655501893c29e441395b6c05711bd3ed5a0ef72cfab338b88229c4baaae079cb44a1af070362aaa520ee24cac2626423b0bf81af1c54311d8e2fd23\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #701: extreme value for k and s^-1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e256b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296cccccccc00000000cccccccccccccccc971f2ef152794b9d8fc7d568c9e8eaa74ccfa24c67f3def7fa81bc99c70bb0419c0952ba599f4c03361da184b04cdca5db76b797f7f41d9c729a2219478a7e629728df870800be8cf6ca7a0a82153bfa\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #702: extreme value for k and s^-1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e256b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2963333333300000000333333333333333325c7cbbc549e52e763f1f55a327a3aaaea1c72c91034036bac71402b6e9ecc4af3dbde7a99dc574061e99fefff9d84dab7dd057e75b78ac6f56e34eb048f0a9d29d5d055408c90d02bc2ea918c18cb63\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #703: extreme value for k and s^-1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e256b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c29649249248db6db6dbb6db6db6db6db6db5a8b230d0b2b51dcd7ebf0c9fef7c185c2879a66d86cb20b820b7795da2da62b38924f7817d1cd350d936988e90e79bc5431a7268ff6931c7a759de024eff90bcb0177216db6fd1f3aaaa11fa3b6a083\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #704: extreme value for k and s^-1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e256b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c29616a4502e2781e11ac82cbc9d1edd8c981584d13e18411e2f6e0478c34416e3bbab1c0f273f74abc2b848c75006f2ef3c54c26df27711b06558f455079aee0ba3df510f2ecef6d9a05997c776f14ad6456c179f0a13af1771e4d6c37fa48b47f2\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #705: extreme value for k\",\n    \"NoBenchmark\": false\n  }\n]"
  },
  {
    "path": "tests/osaka/eip7951_p256verify_precompiles/vectors/secp256r1_modified_r_s.json",
    "content": "[\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023d45c5740946b2a147f59262ee6f5bc90bd01ed280528b62b3aed5fc93f06f739b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db2927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #3: Modified r or s, e.g. by adding or subtracting the order of the group\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023d45c5741946b2a137f59262ee6f5bc91001af27a5e1117a64733950642a3d1e8b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db2927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #5: Modified r or s, e.g. by adding or subtracting the order of the group\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050232ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e184cd60b865d442f5a3c7b11eb6c4e0ae79578ec6353a20bf783ecb4b6ea97b8252927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #8: Modified r or s, e.g. by adding or subtracting the order of the group\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca60502329a3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db2927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_test.json EcdsaVerify SHA-256 #118: modify first byte of integer\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050232ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e98b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db2927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_test.json EcdsaVerify SHA-256 #120: modify last byte of integer\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050232ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b491568475b2927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_test.json EcdsaVerify SHA-256 #121: modify last byte of integer\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050232ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e1800b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b491568472927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_test.json EcdsaVerify SHA-256 #124: truncated integer\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050232ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18b329f47aa2bbd0a4c384ee1493b1f518ada018ef05465583885980861905228a2927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_test.json EcdsaVerify SHA-256 #139: Modified r or s, e.g. by adding or subtracting the order of the group\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25ffffffff00000001000000000000000000000000fffffffffffffffffffffffcffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254ed705d16f80987e2d9b1a6957d29ce22febf7d10fa515153182415c8361baaca4b1fc105ee5ce80d514ec1238beae2037a6f83625593620d460819e8682160926\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #636: r too large\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254e3cd8d2f81d6953b0844c09d7b560d527cd2ef67056893eadafa52c8501387d59ee41fdb4d10402ce7a0c5e3b747adfa3a490b62a6b7719068903485c0bb6dc2d\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #637: r,s are large\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e257ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd909135bdb6799286170f5ead2de4f6511453fe50914f3df2de54a36383df8dd48240cd81edd91cb6936133508c3915100e81f332c4545d41189b481196851378e05b06e72d4a1bff80ea5db514aa2f93ea6dd6d9c0ae27b7837dc432f9ce89d9\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #638: r and s^-1 have a large Hamming weight\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e257ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd27b4577ca009376f71303fd5dd227dcef5deb773ad5f5a84360644669ca249a5b062947356748b0fc17f1704c65aa1dca6e1bfe6779756fa616d91eaad13df2c0b38c17f3d0672e7409cfc5992a99fff12b84a4f8432293b431113f1b2fb579d\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #639: r and s^-1 have a large Hamming weight\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324d5555555550000000055555555555555553ef7a8e48d07df81a693439654210c707a736d8e326a9ca62bbe25a34ea4e3633b499a96afa7aaa3fcf3fd88f8e07edeb3e45879d8622b93e818443a686e869eeda7bf9ae46aa3eafcc48a5934864627\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #651: r and s^-1 are close to n\",\n    \"NoBenchmark\": false\n  }\n]"
  },
  {
    "path": "tests/osaka/eip7951_p256verify_precompiles/vectors/secp256r1_public_key.json",
    "content": "[\n  {\n    \"Input\": \"2f77668a9dfbf8d5848b9eeb4a7145ca94c6ed9236e4a773f6dcafa5132b2f91d434e262a49eab7781e353a3565e482550dd0fd5defa013c7f29745eff3569f19b0c0a93f267fb6052fd8077be769c2b98953195d7bc10de844218305c6ba17a4f337ccfd67726a805e4f1600ae2849df3807eca117380239fbd816900000000ed9dea124cc8c396416411e988c30f427eb504af43a3146cd5df7ea60666d685\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #196: x-coordinate of the public key has many trailing 0's\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"2f77668a9dfbf8d5848b9eeb4a7145ca94c6ed9236e4a773f6dcafa5132b2f910fe774355c04d060f76d79fd7a772e421463489221bf0a33add0be9b1979110b500dcba1c69a8fbd43fa4f57f743ce124ca8b91a1f325f3fac6181175df557374f337ccfd67726a805e4f1600ae2849df3807eca117380239fbd816900000000ed9dea124cc8c396416411e988c30f427eb504af43a3146cd5df7ea60666d685\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #197: x-coordinate of the public key has many trailing 0's\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"2f77668a9dfbf8d5848b9eeb4a7145ca94c6ed9236e4a773f6dcafa5132b2f91bb40bf217bed3fb3950c7d39f03d36dc8e3b2cd79693f125bfd06595ee1135e3541bf3532351ebb032710bdb6a1bf1bfc89a1e291ac692b3fa4780745bb556774f337ccfd67726a805e4f1600ae2849df3807eca117380239fbd816900000000ed9dea124cc8c396416411e988c30f427eb504af43a3146cd5df7ea60666d685\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #198: x-coordinate of the public key has many trailing 0's\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"2f77668a9dfbf8d5848b9eeb4a7145ca94c6ed9236e4a773f6dcafa5132b2f91664eb7ee6db84a34df3c86ea31389a5405badd5ca99231ff556d3e75a233e73a59f3c752e52eca46137642490a51560ce0badc678754b8f72e51a2901426a1bd3cf03d614d8939cfd499a07873fac281618f06b8ff87e8015c3f49726500493584fa174d791c72bf2ce3880a8960dd2a7c7a1338a82f85a9e59cdbde80000000\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #199: y-coordinate of the public key has many trailing 0's\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"2f77668a9dfbf8d5848b9eeb4a7145ca94c6ed9236e4a773f6dcafa5132b2f914cd0429bbabd2827009d6fcd843d4ce39c3e42e2d1631fd001985a79d1fd8b439638bf12dd682f60be7ef1d0e0d98f08b7bca77a1a2b869ae466189d2acdabe33cf03d614d8939cfd499a07873fac281618f06b8ff87e8015c3f49726500493584fa174d791c72bf2ce3880a8960dd2a7c7a1338a82f85a9e59cdbde80000000\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #200: y-coordinate of the public key has many trailing 0's\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"2f77668a9dfbf8d5848b9eeb4a7145ca94c6ed9236e4a773f6dcafa5132b2f91e56c6ea2d1b017091c44d8b6cb62b9f460e3ce9aed5e5fd41e8added97c56c04a308ec31f281e955be20b457e463440b4fcf2b80258078207fc1378180f89b553cf03d614d8939cfd499a07873fac281618f06b8ff87e8015c3f49726500493584fa174d791c72bf2ce3880a8960dd2a7c7a1338a82f85a9e59cdbde80000000\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #201: y-coordinate of the public key has many trailing 0's\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"2f77668a9dfbf8d5848b9eeb4a7145ca94c6ed9236e4a773f6dcafa5132b2f911158a08d291500b4cabed3346d891eee57c176356a2624fb011f8fbbf3466830228a8c486a736006e082325b85290c5bc91f378b75d487dda46798c18f2855193cf03d614d8939cfd499a07873fac281618f06b8ff87e8015c3f4972650049357b05e8b186e38d41d31c77f5769f22d58385ecc857d07a561a6324217fffffff\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #202: y-coordinate of the public key has many trailing 1's\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"2f77668a9dfbf8d5848b9eeb4a7145ca94c6ed9236e4a773f6dcafa5132b2f91b1db9289649f59410ea36b0c0fc8d6aa2687b29176939dd23e0dde56d309fa9d3e1535e4280559015b0dbd987366dcf43a6d1af5c23c7d584e1c3f48a12513363cf03d614d8939cfd499a07873fac281618f06b8ff87e8015c3f4972650049357b05e8b186e38d41d31c77f5769f22d58385ecc857d07a561a6324217fffffff\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #203: y-coordinate of the public key has many trailing 1's\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"2f77668a9dfbf8d5848b9eeb4a7145ca94c6ed9236e4a773f6dcafa5132b2f91b7b16e762286cb96446aa8d4e6e7578b0a341a79f2dd1a220ac6f0ca4e24ed86ddc60a700a139b04661c547d07bbb0721780146df799ccf55e55234ecb8f12bc3cf03d614d8939cfd499a07873fac281618f06b8ff87e8015c3f4972650049357b05e8b186e38d41d31c77f5769f22d58385ecc857d07a561a6324217fffffff\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #204: y-coordinate of the public key has many trailing 1's\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"2f77668a9dfbf8d5848b9eeb4a7145ca94c6ed9236e4a773f6dcafa5132b2f91d82a7c2717261187c8e00d8df963ff35d796edad36bc6e6bd1c91c670d9105b43dcabddaf8fcaa61f4603e7cbac0f3c0351ecd5988efb23f680d07debd1399292829c31faa2e400e344ed94bca3fcd0545956ebcfe8ad0f6dfa5ff8effffffffa01aafaf000e52585855afa7676ade284113099052df57e7eb3bd37ebeb9222e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #205: x-coordinate of the public key has many trailing 1's\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"2f77668a9dfbf8d5848b9eeb4a7145ca94c6ed9236e4a773f6dcafa5132b2f915eb9c8845de68eb13d5befe719f462d77787802baff30ce96a5cba063254af782c026ae9be2e2a5e7ca0ff9bbd92fb6e44972186228ee9a62b87ddbe2ef66fb52829c31faa2e400e344ed94bca3fcd0545956ebcfe8ad0f6dfa5ff8effffffffa01aafaf000e52585855afa7676ade284113099052df57e7eb3bd37ebeb9222e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #206: x-coordinate of the public key has many trailing 1's\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"2f77668a9dfbf8d5848b9eeb4a7145ca94c6ed9236e4a773f6dcafa5132b2f9196843dd03c22abd2f3b782b170239f90f277921becc117d0404a8e4e36230c28f2be378f526f74a543f67165976de9ed9a31214eb4d7e6db19e1ede123dd991d2829c31faa2e400e344ed94bca3fcd0545956ebcfe8ad0f6dfa5ff8effffffffa01aafaf000e52585855afa7676ade284113099052df57e7eb3bd37ebeb9222e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #207: x-coordinate of the public key has many trailing 1's\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"2f77668a9dfbf8d5848b9eeb4a7145ca94c6ed9236e4a773f6dcafa5132b2f91766456dce1857c906f9996af729339464d27e9d98edc2d0e3b760297067421f6402385ecadae0d8081dccaf5d19037ec4e55376eced699e93646bfbbf19d0b41fffffff948081e6a0458dd8f9e738f2665ff9059ad6aac0708318c4ca9a7a4f55a8abcba2dda8474311ee54149b973cae0c0fb89557ad0bf78e6529a1663bd73\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #208: x-coordinate of the public key is large\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"2f77668a9dfbf8d5848b9eeb4a7145ca94c6ed9236e4a773f6dcafa5132b2f91c605c4b2edeab20419e6518a11b2dbc2b97ed8b07cced0b19c34f777de7b9fd9edf0f612c5f46e03c719647bc8af1b29b2cde2eda700fb1cff5e159d47326dbafffffff948081e6a0458dd8f9e738f2665ff9059ad6aac0708318c4ca9a7a4f55a8abcba2dda8474311ee54149b973cae0c0fb89557ad0bf78e6529a1663bd73\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #209: x-coordinate of the public key is large\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"2f77668a9dfbf8d5848b9eeb4a7145ca94c6ed9236e4a773f6dcafa5132b2f91d48b68e6cabfe03cf6141c9ac54141f210e64485d9929ad7b732bfe3b7eb8a84feedae50c61bd00e19dc26f9b7e2265e4508c389109ad2f208f0772315b6c941fffffff948081e6a0458dd8f9e738f2665ff9059ad6aac0708318c4ca9a7a4f55a8abcba2dda8474311ee54149b973cae0c0fb89557ad0bf78e6529a1663bd73\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #210: x-coordinate of the public key is large\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"2f77668a9dfbf8d5848b9eeb4a7145ca94c6ed9236e4a773f6dcafa5132b2f91b7c81457d4aeb6aa65957098569f0479710ad7f6595d5874c35a93d12a5dd4c7b7961a0b652878c2d568069a432ca18a1a9199f2ca574dad4b9e3a05c0a1cdb300000003fa15f963949d5f03a6f5c7f86f9e0015eeb23aebbff1173937ba748e1099872070e8e87c555fa13659cca5d7fadcfcb0023ea889548ca48af2ba7e71\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #211: x-coordinate of the public key is small\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"2f77668a9dfbf8d5848b9eeb4a7145ca94c6ed9236e4a773f6dcafa5132b2f916b01332ddb6edfa9a30a1321d5858e1ee3cf97e263e669f8de5e9652e76ff3f75939545fced457309a6a04ace2bd0f70139c8f7d86b02cb1cc58f9e69e96cd5a00000003fa15f963949d5f03a6f5c7f86f9e0015eeb23aebbff1173937ba748e1099872070e8e87c555fa13659cca5d7fadcfcb0023ea889548ca48af2ba7e71\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #212: x-coordinate of the public key is small\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"2f77668a9dfbf8d5848b9eeb4a7145ca94c6ed9236e4a773f6dcafa5132b2f91efdb884720eaeadc349f9fc356b6c0344101cd2fd8436b7d0e6a4fb93f106361f24bee6ad5dc05f7613975473aadf3aacba9e77de7d69b6ce48cb60d8113385d00000003fa15f963949d5f03a6f5c7f86f9e0015eeb23aebbff1173937ba748e1099872070e8e87c555fa13659cca5d7fadcfcb0023ea889548ca48af2ba7e71\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #213: x-coordinate of the public key is small\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"2f77668a9dfbf8d5848b9eeb4a7145ca94c6ed9236e4a773f6dcafa5132b2f9131230428405560dcb88fb5a646836aea9b23a23dd973dcbe8014c87b8b20eb070f9344d6e812ce166646747694a41b0aaf97374e19f3c5fb8bd7ae3d9bd0beffbcbb2914c79f045eaa6ecbbc612816b3be5d2d6796707d8125e9f851c18af015000000001352bb4a0fa2ea4cceb9ab63dd684ade5a1127bcf300a698a7193bc2\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #214: y-coordinate of the public key is small\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"2f77668a9dfbf8d5848b9eeb4a7145ca94c6ed9236e4a773f6dcafa5132b2f91caa797da65b320ab0d5c470cda0b36b294359c7db9841d679174db34c4855743cf543a62f23e212745391aaf7505f345123d2685ee3b941d3de6d9b36242e5a0bcbb2914c79f045eaa6ecbbc612816b3be5d2d6796707d8125e9f851c18af015000000001352bb4a0fa2ea4cceb9ab63dd684ade5a1127bcf300a698a7193bc2\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #215: y-coordinate of the public key is small\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"2f77668a9dfbf8d5848b9eeb4a7145ca94c6ed9236e4a773f6dcafa5132b2f917e5f0ab5d900d3d3d7867657e5d6d36519bc54084536e7d21c336ed8001859459450c07f201faec94b82dfb322e5ac676688294aad35aa72e727ff0b19b646aabcbb2914c79f045eaa6ecbbc612816b3be5d2d6796707d8125e9f851c18af015000000001352bb4a0fa2ea4cceb9ab63dd684ade5a1127bcf300a698a7193bc2\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #216: y-coordinate of the public key is small\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"2f77668a9dfbf8d5848b9eeb4a7145ca94c6ed9236e4a773f6dcafa5132b2f91d7d70c581ae9e3f66dc6a480bf037ae23f8a1e4a2136fe4b03aa69f0ca25b35689c460f8a5a5c2bbba962c8a3ee833a413e85658e62a59e2af41d9127cc47224bcbb2914c79f045eaa6ecbbc612816b3be5d2d6796707d8125e9f851c18af015fffffffeecad44b6f05d15b33146549c2297b522a5eed8430cff596758e6c43d\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #217: y-coordinate of the public key is large\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"2f77668a9dfbf8d5848b9eeb4a7145ca94c6ed9236e4a773f6dcafa5132b2f91341c1b9ff3c83dd5e0dfa0bf68bcdf4bb7aa20c625975e5eeee34bb396266b3472b69f061b750fd5121b22b11366fad549c634e77765a017902a67099e0a4469bcbb2914c79f045eaa6ecbbc612816b3be5d2d6796707d8125e9f851c18af015fffffffeecad44b6f05d15b33146549c2297b522a5eed8430cff596758e6c43d\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #218: y-coordinate of the public key is large\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"2f77668a9dfbf8d5848b9eeb4a7145ca94c6ed9236e4a773f6dcafa5132b2f9170bebe684cdcb5ca72a42f0d873879359bd1781a591809947628d313a3814f67aec03aca8f5587a4d535fa31027bbe9cc0e464b1c3577f4c2dcde6b2094798a9bcbb2914c79f045eaa6ecbbc612816b3be5d2d6796707d8125e9f851c18af015fffffffeecad44b6f05d15b33146549c2297b522a5eed8430cff596758e6c43d\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #219: y-coordinate of the public key is large\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e250000000000000000000000000000000000000000000000000000000000000001555555550000000055555555555555553ef7a8e48d07df81a693439654210c7038a084ffccc4ae2f8204be2abca9fb8ad4ab283b2aa50f13b6bb2347adabc69ca699799b77b1cc6dad271e88b899c12931986e958e1f5cf5653dddf7389365e2\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_webcrypto_test.json EcdsaP1363Verify SHA-256 #173: point with x-coordinate 0\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"2f77668a9dfbf8d5848b9eeb4a7145ca94c6ed9236e4a773f6dcafa5132b2f9170bebe684cdcb5ca72a42f0d873879359bd1781a591809947628d313a3814f67aec03aca8f5587a4d535fa31027bbe9cc0e464b1c3577f4c2dcde6b2094798a90000000000000000000000000000000000000000000000000000000000000000fffffffeecad44b6f05d15b33146549c2297b522a5eed8430cff596758e6c43d\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"invalid public key x param errors\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"2f77668a9dfbf8d5848b9eeb4a7145ca94c6ed9236e4a773f6dcafa5132b2f9170bebe684cdcb5ca72a42f0d873879359bd1781a591809947628d313a3814f67aec03aca8f5587a4d535fa31027bbe9cc0e464b1c3577f4c2dcde6b2094798a9bcbb2914c79f045eaa6ecbbc612816b3be5d2d6796707d8125e9f851c18af0150000000000000000000000000000000000000000000000000000000000000000\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"invalid public key y param errors\",\n    \"NoBenchmark\": false\n  }\n]"
  },
  {
    "path": "tests/osaka/eip7951_p256verify_precompiles/vectors/secp256r1_shamir_multiplication.json",
    "content": "[\n  {\n    \"Input\": \"70239dd877f7c944c422f44dea4ed1a52f2627416faf2f072fa50c772ed6f80764a1aab5000d0e804f3e2fc02bdee9be8ff312334e2ba16d11547c97711c898e6af015971cc30be6d1a206d4e013e0997772a2f91d73286ffd683b9bb2cf4f1b2927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #58: Edge case for Shamir multiplication\",\n    \"NoBenchmark\": false\n  }\n]"
  },
  {
    "path": "tests/osaka/eip7951_p256verify_precompiles/vectors/secp256r1_signature_specific.json",
    "content": "[\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050232ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e184cd60b855d442f5b3c7b11eb6c4e0ae7525fe710fab9aa7c77a67f79e6fadd762927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #1: signature malleability\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050237fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192a97fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192a8f50d371b91bfb1d7d14e1323523bc3aa8cbf2c57f9e284de628c8b4536787b86f94ad887ac94d527247cd2e7d0c8b1291c553c9730405380b14cbb209f5fa2dd\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #137: edge case for signature malleability\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050237fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192a97fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192a968ec6e298eafe16539156ce57a14b04a7047c221bafc3a582eaeb0d857c4d94697bed1af17850117fdb39b2324f220a5698ed16c426a27335bb385ac8ca6fb30\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #138: edge case for signature malleability\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855b292a619339f6e567a305c951c0dcbcc42d16e47f219f9e98e76e09d8770b34a0177e60492c5a8242f76f07bfe3661bde59ec2a17ce5bd2dab2abebdf89a62e204aaec73635726f213fb8a9e64da3b8632e41495a944d0045b522eba7240fad587d9315798aaa3a5ba01775787ced05eaaf7b4e09fc81d6d1aa546e8365d525d\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #192: pseudorandom signature\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"dc1921946f4af96a2856e7be399007c9e807bdf4c5332f19f59ec9dd1bb8c7b3530bd6b0c9af2d69ba897f6b5fb59695cfbf33afe66dbadcf5b8d2a2a6538e23d85e489cb7a161fd55ededcedbf4cc0c0987e3e3f0f242cae934c72caa3f43e904aaec73635726f213fb8a9e64da3b8632e41495a944d0045b522eba7240fad587d9315798aaa3a5ba01775787ced05eaaf7b4e09fc81d6d1aa546e8365d525d\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #193: pseudorandom signature\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023a8ea150cb80125d7381c4c1f1da8e9de2711f9917060406a73d7904519e51388f3ab9fa68bd47973a73b2d40480c2ba50c22c9d76ec217257288293285449b8604aaec73635726f213fb8a9e64da3b8632e41495a944d0045b522eba7240fad587d9315798aaa3a5ba01775787ced05eaaf7b4e09fc81d6d1aa546e8365d525d\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #194: pseudorandom signature\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"de47c9b27eb8d300dbb5f2c353e632c393262cf06340c4fa7f1b40c4cbd36f90986e65933ef2ed4ee5aada139f52b70539aaf63f00a91f29c69178490d57fb713dafedfb8da6189d372308cbf1489bbbdabf0c0217d1c0ff0f701aaa7a694b9c04aaec73635726f213fb8a9e64da3b8632e41495a944d0045b522eba7240fad587d9315798aaa3a5ba01775787ced05eaaf7b4e09fc81d6d1aa546e8365d525d\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #195: pseudorandom signature\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e257fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192a97fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192a878d844dc7f16b73b1f2a39730da5d8cd99fe2e70a18482384e37dcd2bfea02e1ed6572e01eb7a8d113d02c666c45ef22d3b9a6a6dea99aa43a8183c26e75d336\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #655: edge case for signature malleability\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e257fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192a97fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192a9dec6c8257dde94110eacc8c09d2e5789cc5beb81a958b02b4d62da9599a7401466fae1614174be63970b83f6524421067b06dd6f4e9c56baca4e344fdd690f1d\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #656: edge case for signature malleability\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e2530e782f964b2e2ff065a051bc7adc20615d8c43a1365713c88268822c253bcce5b16df652aa1ecb2dc8b46c515f9604e2e84cacfa7c6eec30428d2d3f4e08ed504aaec73635726f213fb8a9e64da3b8632e41495a944d0045b522eba7240fad587d9315798aaa3a5ba01775787ced05eaaf7b4e09fc81d6d1aa546e8365d525d\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #1211: pseudorandom signature\",\n    \"NoBenchmark\": false\n  }\n]"
  },
  {
    "path": "tests/osaka/eip7951_p256verify_precompiles/vectors/secp256r1_small_large_r_s.json",
    "content": "[\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023000000000000000000000000000000004319055358e8617b0c46353d039cdaabffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254e0ad99500288d466940031d72a9f5445a4d43784640855bf0a69874d2de5fe103c5011e6ef2c42dcd50d5d3d29f99ae6eba2c80c9244f4c5422f0979ff0c3ba5e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #113: k*G has a large x-coordinate\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023ffffffff00000001000000000000000000000000fffffffffffffffffffffffcffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254e0ad99500288d466940031d72a9f5445a4d43784640855bf0a69874d2de5fe103c5011e6ef2c42dcd50d5d3d29f99ae6eba2c80c9244f4c5422f0979ff0c3ba5e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #114: r too large\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254eab05fd9d0de26b9ce6f4819652d9fc69193d0aa398f0fba8013e09c58220455419235271228c786759095d12b75af0692dd4103f19f6a8c32f49435a1e9b8d45\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #115: r,s are large\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050237ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd909135bdb6799286170f5ead2de4f6511453fe50914f3df2de54a36383df8dd480984f39a1ff38a86a68aa4201b6be5dfbfecf876219710b07badf6fdd4c6c5611feb97390d9826e7a06dfb41871c940d74415ed3cac2089f1445019bb55ed95\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #116: r and s^-1 have a large Hamming weight\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050237ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd27b4577ca009376f71303fd5dd227dcef5deb773ad5f5a84360644669ca249a54201b4272944201c3294f5baa9a3232b6dd687495fcc19a70a95bc602b4f7c0595c37eba9ee8171c1bb5ac6feaf753bc36f463e3aef16629572c0c0a8fb0800e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #117: r and s^-1 have a large Hamming weight\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca60502300000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000001a71af64de5126a4a4e02b7922d66ce9415ce88a4c9d25514d91082c8725ac9575d47723c8fbe580bb369fec9c2665d8e30a435b9932645482e7c9f11e872296b\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #118: small r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000036627cec4f0731ea23fc2931f90ebe5b7572f597d20df08fc2b31ee8ef16b15726170ed77d8d0a14fc5c9c3c4c9be7f0d3ee18f709bb275eaf2073e258fe694a5\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #120: small r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000055a7c8825e85691cce1f5e7544c54e73f14afc010cb731343262ca7ec5a77f5bfef6edf62a4497c1bd7b147fb6c3d22af3c39bfce95f30e13a16d3d7b2812f813\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #122: small r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca60502300000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000006cbe0c29132cd738364fedd603152990c048e5e2fff996d883fa6caca7978c73770af6a8ce44cb41224b2603606f4c04d188e80bff7cc31ad5189d4ab0d70e8c1\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #124: small r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325560000000000000000000000000000000000000000000000000000000000000006cbe0c29132cd738364fedd603152990c048e5e2fff996d883fa6caca7978c73770af6a8ce44cb41224b2603606f4c04d188e80bff7cc31ad5189d4ab0d70e8c1\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #126: r is larger than n\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050230000000000000000000000000000000000000000000000000000000000000005ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc75fbd84be4178097002f0deab68f0d9a130e0ed33a6795d02a20796db83444b037e13920f13051e0eecdcfce4dacea0f50d1f247caa669f193c1b4075b51ae296d2d56\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #127: s is larger than n\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca60502300000000000000000000000000000000000000000000000000000000000001008f1e3c7862c58b16bb76eddbb76eddbb516af4f63f2d74d76e0d28c9bb75ea88d0f73792203716afd4be4329faa48d269f15313ebbba379d7783c97bf3e890d9971f4a3206605bec21782bf5e275c714417e8f566549e6bc68690d2363c89cc1\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #128: small r and s^-1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023000000000000000000000000000000000000000000000000002d9b4d347952d6ef3043e7329581dbb3974497710ab11505ee1c87ff907beebadd195a0ffe6d7a4838b2be35a6276a80ef9e228140f9d9b96ce83b7a254f71ccdebbb8054ce05ffa9cbc123c919b19e00238198d04069043bd660a828814051fcb8aac738a6c6b\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #129: smallish r and s^-1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023000000000000000000000000000000000000001033e67e37b32b445580bf4eff8b748b74000000008b748b748b748b7466e769ad4a16d3dcd87129b8e91d1b4d7393983ca30a520bbc4783dc9960746aab444ef520c0a8e771119aa4e74b0f64e9d7be1ab01a0bf626e709863e6a486dbaf32793afccf774e2c6cd27b1857526\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #130: 100-bit r and small s^-1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050230000000000000000000000000000000000000000000000000000000000000100ef9f6ba4d97c09d03178fa20b4aaad83be3cf9cb824a879fec3270fc4b81ef5b5ac331a1103fe966697379f356a937f350588a05477e308851b8a502d5dfcdc5fe9993df4b57939b2b8da095bf6d794265204cfe03be995a02e65d408c871c0b\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #131: small r and 100 bit s^-1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca60502300000000000000000000000000000000000000062522bbd3ecbe7c39e93e7c25ef9f6ba4d97c09d03178fa20b4aaad83be3cf9cb824a879fec3270fc4b81ef5b1d209be8de2de877095a399d3904c74cc458d926e27bb8e58e5eae5767c41509dd59e04c214f7b18dce351fc2a549893a6860e80163f38cc60a4f2c9d040d8c9\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #132: 100-bit r and s^-1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324d5555555550000000055555555555555553ef7a8e48d07df81a693439654210c70083539fbee44625e3acaafa2fcb41349392cef0633a1b8fabecee0c133b10e99915c1ebe7bf00df8535196770a58047ae2a402f26326bb7d41d4d7616337911e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #133: r and s^-1 are close to n\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023555555550000000055555555555555553ef7a8e48d07df81a693439654210c7000000000000000000000000000000000000000000000000000000000000000018aeb368a7027a4d64abdea37390c0c1d6a26f399e2d9734de1eb3d0e1937387405bd13834715e1dbae9b875cf07bd55e1b6691c7f7536aef3b19bf7a4adf576d\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #134: s == 1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023555555550000000055555555555555553ef7a8e48d07df81a693439654210c7000000000000000000000000000000000000000000000000000000000000000008aeb368a7027a4d64abdea37390c0c1d6a26f399e2d9734de1eb3d0e1937387405bd13834715e1dbae9b875cf07bd55e1b6691c7f7536aef3b19bf7a4adf576d\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #135: s == 0\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25000000000000000000000000000000004319055358e8617b0c46353d039cdaabffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254ed705d16f80987e2d9b1a6957d29ce22febf7d10fa515153182415c8361baaca4b1fc105ee5ce80d514ec1238beae2037a6f83625593620d460819e8682160926\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_webcrypto_test.json EcdsaP1363Verify SHA-256 #113: k*G has a large x-coordinate\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000014a03ef9f92eb268cafa601072489a56380fa0dc43171d7712813b3a19a1eb5e53e213e28a608ce9a2f4a17fd830c6654018a79b3e0263d91a8ba90622df6f2f0\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_webcrypto_test.json EcdsaP1363Verify SHA-256 #118: small r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e2500000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000003091194c1cba17f34e286b4833701606a41cef26177ada8850b601ea1f859e70127242fcec708828758403ce2fe501983a7984e6209f4d6b95db9ad77767f55eb\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_webcrypto_test.json EcdsaP1363Verify SHA-256 #120: small r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e2500000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000005103c6ecceff59e71ea8f56fee3a4b2b148e81c2bdbdd39c195812c96dcfb41a72303a193dc591be150b883d770ec51ebb4ebce8b09042c2ecb16c448d8e57bf5\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_webcrypto_test.json EcdsaP1363Verify SHA-256 #122: small r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000063b66b829fe604638bcb2bfe8c22228be67390c20111bd2b451468927e87fb6eabc8e59c009361758b274ba2cad36b58fde485a3ed09dade76712fa9e9c4ac212\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_webcrypto_test.json EcdsaP1363Verify SHA-256 #124: small r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255600000000000000000000000000000000000000000000000000000000000000063b66b829fe604638bcb2bfe8c22228be67390c20111bd2b451468927e87fb6eabc8e59c009361758b274ba2cad36b58fde485a3ed09dade76712fa9e9c4ac212\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_webcrypto_test.json EcdsaP1363Verify SHA-256 #126: r is larger than n\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e250000000000000000000000000000000000000000000000000000000000000005ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc75fbd84ff2f6c24e4a33cd71c09fdcbc74a6233961b874b8c8e0eb94582092cbc50c3084fa9547afda5c66335f3f937d4c79afa120486b534139d59ae82d61ead26420\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_webcrypto_test.json EcdsaP1363Verify SHA-256 #127: s is larger than n\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e2500000000000000000000000000000000000000000000000000000000000001008f1e3c7862c58b16bb76eddbb76eddbb516af4f63f2d74d76e0d28c9bb75ea8884b959080bb30859cd53c2fb973cf14d60cdaa8ee00587889b5bc657ac588175a02ce5c1e53cb196113c78b4cb8dc7d360e5ea7850b0f6650b0c45af2c3cd7ca\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_webcrypto_test.json EcdsaP1363Verify SHA-256 #128: small r and s^-1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25000000000000000000000000000000000000000000000000002d9b4d347952d6ef3043e7329581dbb3974497710ab11505ee1c87ff907beebadd195a0ffe6d7adf4083bd6ecbda5a77ae578e5d835fa7f74a07ebb91e0570e1ff32a563354e9925af80b09a167d9ef647df28e2d9acd0d4bc4f2deec5723818edaf9071e311f8\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_webcrypto_test.json EcdsaP1363Verify SHA-256 #129: smallish r and s^-1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25000000000000000000000000000000000000001033e67e37b32b445580bf4eff8b748b74000000008b748b748b748b7466e769ad4a16d3dcd87129b8e91d1b4dc2569a3c9bf8c1838ca821f7ba6f000cc8679d278f3736b414a34a7c956a03770387ea85bc4f28804b4a91c9b7d65bc6434c975806795ab7d441a4e9683aeb09\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_webcrypto_test.json EcdsaP1363Verify SHA-256 #130: 100-bit r and small s^-1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e250000000000000000000000000000000000000000000000000000000000000100ef9f6ba4d97c09d03178fa20b4aaad83be3cf9cb824a879fec3270fc4b81ef5b4a9f7da2a6c359a16540c271774a6bf1c586357c978256f44a6496d80670968ac496e73a44563f8d56fbd7bb9e4e3ae304c86f2c508eb777b03924755beb40d4\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_webcrypto_test.json EcdsaP1363Verify SHA-256 #131: small r and 100 bit s^-1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e2500000000000000000000000000000000000000062522bbd3ecbe7c39e93e7c25ef9f6ba4d97c09d03178fa20b4aaad83be3cf9cb824a879fec3270fc4b81ef5b874146432b3cd2c9e26204c0a34136996067d466dde4917a8ff23a8e95ca106b709b3d50976ef8b385a813bc35f3a20710bdc6edd465e6f43ac4866703a6608c\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_webcrypto_test.json EcdsaP1363Verify SHA-256 #132: 100-bit r and s^-1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25555555550000000055555555555555553ef7a8e48d07df81a693439654210c700000000000000000000000000000000000000000000000000000000000000001e84d9b232e971a43382630f99725e423ec1ecb41e55172e9c69748a03f0d5988618b15b427ad83363bd041ff75fac98ef2ee923714e7d1dfe31753793c7588d4\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_webcrypto_test.json EcdsaP1363Verify SHA-256 #134: s == 1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25555555550000000055555555555555553ef7a8e48d07df81a693439654210c700000000000000000000000000000000000000000000000000000000000000000e84d9b232e971a43382630f99725e423ec1ecb41e55172e9c69748a03f0d5988618b15b427ad83363bd041ff75fac98ef2ee923714e7d1dfe31753793c7588d4\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_webcrypto_test.json EcdsaP1363Verify SHA-256 #135: s == 0\",\n    \"NoBenchmark\": false\n  }\n]"
  },
  {
    "path": "tests/osaka/eip7951_p256verify_precompiles/vectors/secp256r1_special_case_hash.json",
    "content": "[\n  {\n    \"Input\": \"00000000690ed426ccf17803ebe2bd0884bcd58a1bb5e7477ead3645f356e7a916aea964a2f6506d6f78c81c91fc7e8bded7d397738448de1e19a0ec580bf266252cd762130c6667cfe8b7bc47d27d78391e8e80c578d1cd38c3ff033be928e92927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #59: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"7300000000213f2a525c6035725235c2f696ad3ebb5ee47f140697ad25770d919cc98be2347d469bf476dfc26b9b733df2d26d6ef524af917c665baccb23c882093496459effe2d8d70727b82462f61d0ec1b7847929d10ea631dacb16b56c322927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #60: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"ddf2000000005e0be0635b245f0b97978afd25daadeb3edb4a0161c27fe0604573b3c90ecd390028058164524dde892703dce3dea0d53fa8093999f07ab8aa432f67b0b8e20636695bb7d8bf0a651c802ed25a395387b5f4188c0c4075c886342927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #61: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"67ab1900000000784769c4ecb9e164d6642b8499588b89855be1ec355d0841a0bfab3098252847b328fadf2f89b95c851a7f0eb390763378f37e90119d5ba3ddbdd64e234e832b1067c2d058ccb44d978195ccebb65c2aaf1e2da9b8b4987e3b2927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #62: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"a2bf09460000000076d7dbeffe125eaf02095dff252ee905e296b6350fc311cf204a9784074b246d8bf8bf04a4ceb1c1f1c9aaab168b1596d17093c5cd21d2cd51cce41670636783dc06a759c8847868a406c2506fe17975582fe648d1d88b522927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #63: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"3554e827c700000000e1e75e624a06b3a0a353171160858129e15c544e4f0e65ed66dc34f551ac82f63d4aa4f81fe2cb0031a91d1314f835027bca0f1ceeaa0399ca123aa09b13cd194a422e18d5fda167623c3f6e5d4d6abb8953d67c0c48c72927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #64: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"9b6cd3b812610000000026941a0f0bb53255ea4c9fd0cb3426e3a54b9fc6965c060b700bef665c68899d44f2356a578d126b062023ccc3c056bf0f60a237012b8d186c027832965f4fcc78a3366ca95dedbb410cbef3f26d6be5d581c11d36102927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #65: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"883ae39f50bf0100000000e7561c26fc82a52baa51c71ca877162f93c4ae01869f6adfe8d5eb5b2c24d7aa7934b6cf29c93ea76cd313c9132bb0c8e38c96831db26a9c9e40e55ee0890c944cf271756c906a33e66b5bd15e051593883b5e99022927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #66: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"a1ce5d6e5ecaf28b0000000000fa7cd010540f420fb4ff7401fe9fce011d0ba6a1af03ca91677b673ad2f33615e56174a1abf6da168cebfa8868f4ba273f16b720aa73ffe48afa6435cd258b173d0c2377d69022e7d098d75caf24c8c5e06b1c2927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #67: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"8ea5f645f373f580930000000038345397330012a8ee836c5494cdffd5ee8054fdc70602766f8eed11a6c99a71c973d5659355507b843da6e327a28c11893db93df5349688a085b137b1eacf456a9e9e0f6d15ec0078ca60a7f83f2b10d213502927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #68: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"660570d323e9f75fa734000000008792d65ce93eabb7d60d8d9c1bbdcb5ef305b516a314f2fce530d6537f6a6c49966c23456f63c643cf8e0dc738f7b876e675d39ffd033c92b6d717dd536fbc5efdf1967c4bd80954479ba66b0120cd16fff22927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #69: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"d0462673154cce587dde8800000000e98d35f1f45cf9c3bf46ada2de4c568c343b2cbf046eac45842ecb7984d475831582717bebb6492fd0a485c101e29ff0a84c9b7b47a98b0f82de512bc9313aaf51701099cac5f76e68c8595fc1c1d992582927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #70: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bd90640269a7822680cedfef000000000caef15a6171059ab83e7b4418d7278f30c87d35e636f540841f14af54e2f9edd79d0312cfa1ab656c3fb15bfde48dcf47c15a5a82d24b75c85a692bd6ecafeb71409ede23efd08e0db9abf6340677ed2927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #71: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"33239a52d72f1311512e41222a00000000d2dcceb301c54b4beae8e284788a7338686ff0fda2cef6bc43b58cfe6647b9e2e8176d168dec3c68ff262113760f52067ec3b651f422669601662167fa8717e976e2db5e6a4cf7c2ddabb3fde9d67d2927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #72: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"b8d64fbcd4a1c10f1365d4e6d95c000000007ee4a21a1cbe1dc84c2d941ffaf144a3e23bf314f2b344fc25c7f2de8b6af3e17d27f5ee844b225985ab6e2775cf2d48e223205e98041ddc87be532abed584f0411f5729500493c9cc3f4dd15e862927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #73: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"01603d3982bf77d7a3fef3183ed092000000003a227420db4088b20fe0e9d84a2ded5b7ec8e90e7bf11f967a3d95110c41b99db3b5aa8d330eb9d638781688e97d5792c53628155e1bfc46fb1a67e3088de049c328ae1f44ec69238a009808f92927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #74: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"9ea6994f1e0384c8599aa02e6cf66d9c000000004d89ef50b7e9eb0cfbff7363bdae7bcb580bf335efd3bc3d31870f923eaccafcd40ec2f605976f15137d8b8ff6dfa12f19e525270b0106eecfe257499f373a4fb318994f24838122ce7ec3c72927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #75: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"d03215a8401bcf16693979371a01068a4700000000e2fa5bf692bc670905b18c50f9c4f0cd6940e162720957ffff513799209b78596956d21ece251c2401f1c6d7033a0a787d338e889defaaabb106b95a4355e411a59c32aa5167dfab2447262927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #76: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"307bfaaffb650c889c84bf83f0300e5dc87e000000008408fd5f64b582e3bb14f612820687604fa01906066a378d67540982e29575d019aabe90924ead5c860d3f9367702dd7dd4f75ea98afd20e328a1a99f4857b316525328230ce294b0fef2927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #77: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bab5c4f4df540d7b33324d36bb0c157551527c00000000e4af574bb4d54ea6b89505e407657d6e8bc93db5da7aa6f5081f61980c1949f56b0f2f507da5782a7ac60d31904e3669738ffbeccab6c3656c08e0ed5cb92b3cfa5e7f71784f9c50212927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #78: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"d4ba47f6ae28f274e4f58d8036f9c36ec2456f5b00000000c3b869197ef5e15ebbd16fbbb656b6d0d83e6a7787cd691b08735aed371732723e1c68a40404517d9d8e35dba96028b7787d91315be675877d2d097be5e8ee34560e3e7fd25c0f002927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #79: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"79fd19c7235ea212f29f1fa00984342afe0f10aafd00000000801e47f8c184e12ec9760122db98fd06ea76848d35a6da442d2ceef7559a30cf57c61e92df327e7ab271da90859479701fccf86e462ee3393fb6814c27b760c4963625c0a198782927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #80: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"8c291e8eeaa45adbaf9aba5c0583462d79cbeb7ac97300000000a37ea6700cda54e76b7683b6650baa6a7fc49b1c51eed9ba9dd463221f7a4f1005a89fe00c592ea076886c773eb937ec1cc8374b7915cfd11b1c1ae1166152f2f7806a31c8fd2927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #81: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0eaae8641084fa979803efbfb8140732f4cdcf66c3f78a000000003c278a6b215291deaf24659ffbbce6e3c26f6021097a74abdbb69be4fb10419c0c496c946665d6fcf336d27cc7cdb982bb4e4ecef5827f84742f29f10abf83469270a03dc32927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #82: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"e02716d01fb23a5a0068399bf01bab42ef17c6d96e13846c00000000afc0f89d207a3241812d75d947419dc58efb05e8003b33fc17eb50f9d15166a88479f107cdee749f2e492b213ce80b32d0574f62f1c5d70793cf55e382d5caadf75927672927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #83: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"9eb0bf583a1a6b9a194e9a16bc7dab2a9061768af89d00659a00000000fc7de16554e49f82a855204328ac94913bf01bbe84437a355a0a37c0dee3cf81aa7728aea00de2507ddaf5c94e1e126980d3df16250a2eaebc8be486effe7f22b4f9292927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #84: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"62aac98818b3b84a2c214f0d5e72ef286e1030cb53d9a82b690e00000000cd15a54c5062648339d2bff06f71c88216c26c6e19b4d80a8c602990ac82707efdfce99bbe7fcfafae3e69fd016777517aa01056317f467ad09aff09be73c9731b0d2927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #85: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"3760a7f37cf96218f29ae43732e513efd2b6f552ea4b6895464b9300000000c8975bd7157a8d363b309f1f444012b1a1d23096593133e71b4ca8b059cff37eaf7faa7a28b1c822baa241793f2abc930bd4c69840fe090f2aacc46786bf9196222927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #86: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0da0a1d2851d33023834f2098c0880096b4320bea836cd9cbb6ff6c8000000005694a6f84b8f875c276afd2ebcfe4d61de9ec90305afb1357b95b3e0da43885e0dffad9ffd0b757d8051dec02ebdf70d8ee2dc5c7870c0823b6ccc7c679cbaa42927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #87: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"ffffffff293886d3086fd567aafd598f0fe975f735887194a764a231e82d289aa0c30e8026fdb2b4b4968a27d16a6d08f7098f1a98d21620d7454ba9790f1ba65e470453a8a399f15baf463f9deceb53acc5ca64459149688bd2760c654243392927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #88: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"7bffffffff2376d1e3c03445a072e24326acdc4ce127ec2e0e8d9ca99527e7b7614ea84acf736527dd73602cd4bb4eea1dfebebd5ad8aca52aa0228cf7b99a88737cc85f5f2d2f60d1b8183f3ed490e4de14368e96a9482c2a4dd193195c902f2927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #89: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"a2b5ffffffffebb251b085377605a224bc80872602a6e467fd016807e97fa395bead6734ebe44b810d3fb2ea00b1732945377338febfd439a8d74dfbd0f942fa6bb18eae36616a7d3cad35919fd21a8af4bbe7a10f73b3e036a46b103ef56e2a2927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #90: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"641227ffffffff6f1b96fa5f097fcf3cc1a3c256870d45a67b83d0967d4b20c0499625479e161dacd4db9d9ce64854c98d922cbf212703e9654fae182df9bad242c177cf37b8193a0131108d97819edd9439936028864ac195b64fca76d9d6932927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #91: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"958415d8ffffffffabad03e2fc662dc3ba203521177502298df56f36600e0f8b08f16b8093a8fb4d66a2c8065b541b3d31e3bfe694f6b89c50fb1aaa6ff6c9b29d6455e2d5d1779748573b611cb95d4a21f967410399b39b535ba3e5af81ca2e2927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #92: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"f1d8de4858ffffffff1281093536f47fe13deb04e1fbe8fb954521b6975420f8be26231b6191658a19dd72ddb99ed8f8c579b6938d19bce8eed8dc2b338cb5f8e1d9a32ee56cffed37f0f22b2dcb57d5c943c14f79694a03b9c5e96952575c892927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #93: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0927895f2802ffffffff10782dd14a3b32dc5d47c05ef6f1876b95c81fc31def15e76880898316b16204ac920a02d58045f36a229d4aa4f812638c455abe0443e74d357d3fcb5c8c5337bd6aba4178b455ca10e226e13f9638196506a19391232927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #94: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"60907984aa7e8effffffff4f332862a10a57c3063fb5a30624cf6a0c3ac80589352ecb53f8df2c503a45f9846fc28d1d31e6307d3ddbffc1132315cc07f16dad1348dfa9c482c558e1d05c5242ca1c39436726ecd28258b1899792887dd0a3c62927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #95: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"c6ff198484939170ffffffff0af42cda50f9a5f50636ea6942d6b9b8cd6ae1e24a40801a7e606ba78a0da9882ab23c7677b8642349ed3d652c5bfa5f2a9558fb3a49b64848d682ef7f605f2832f7384bdc24ed2925825bf8ea77dc59817257822927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #96: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"de030419345ca15c75ffffffff8074799b9e0956cc43135d16dfbe4d27d7e68deacc5e1a8304a74d2be412b078924b3bb3511bac855c05c9e5e9e44df3d61e967451cd8e18d6ed1885dd827714847f96ec4bb0ed4c36ce9808db8f714204f6d12927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #97: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"6f0e3eeaf42b28132b88fffffffff6c8665604d34acb19037e1ab78caaaac6ff2f7a5e9e5771d424f30f67fdab61e8ce4f8cd1214882adb65f7de94c31577052ac4e69808345809b44acb0b2bd889175fb75dd050c5a449ab9528f8f78daa10c2927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #98: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"cdb549f773b3e62b3708d1ffffffffbe48f7c0591ddcae7d2cb222d1f8017ab9ffcda40f792ce4d93e7e0f0e95e1a2147dddd7f6487621c30a03d710b330021979938b55f8a17f7ed7ba9ade8f2065a1fa77618f0b67add8d58c422c2453a49a2927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #99: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"2c3f26f96a3ac0051df4989bffffffff9fd64886c1dc4f9924d8fd6f0edb048481f2359c4faba6b53d3e8c8c3fcc16a948350f7ab3a588b28c17603a431e39a8cd6f6a5cc3b55ead0ff695d06c6860b509e46d99fccefb9f7f9e101857f743002927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #100: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"ac18f8418c55a2502cb7d53f9affffffff5c31d89fda6a6b8476397c04edf411dfc8bf520445cbb8ee1596fb073ea283ea130251a6fdffa5c3f5f2aaf75ca808048e33efce147c9dd92823640e338e68bfd7d0dc7a4905b3a7ac711e577e90e72927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #101: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"4f9618f98e2d3a15b24094f72bb5ffffffffa2fd3e2893683e5a6ab8cf0ee610ad019f74c6941d20efda70b46c53db166503a0e393e932f688227688ba6a576293320eb7ca0710255346bdbb3102cdcf7964ef2e0988e712bc05efe16c1993452927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #102: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"422e82a3d56ed10a9cc21d31d37a25ffffffff67edf7c40204caae73ab0bc75aac8096842e8add68c34e78ce11dd71e4b54316bd3ebf7fffdeb7bd5a3ebc1883f5ca2f4f23d674502d4caf85d187215d36e3ce9f0ce219709f21a3aac003b7a82927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #103: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"7075d245ccc3281b6e7b329ff738fbb417a5ffffffffa0842d9890b5cf95d018677b2d3a59b18a5ff939b70ea002250889ddcd7b7b9d776854b4943693fb92f76b4ba856ade7677bf30307b21f3ccda35d2f63aee81efd0bab6972cc0795db552927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #104: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"3c80de54cd9226989443d593fa4fd6597e280ebeffffffffc1847eb76c217a95479e1ded14bcaed0379ba8e1b73d3115d84d31d4b7c30e1f05e1fc0d5957cfb0918f79e35b3d89487cf634a4f05b2e0c30857ca879f97c771e877027355b24432927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #105: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"de21754e29b85601980bef3d697ea2770ce891a8cdffffffffc7906aa794b39b43dfccd0edb9e280d9a58f01164d55c3d711e14b12ac5cf3b64840ead512a0a31dbe33fa8ba84533cd5c4934365b3442ca1174899b78ef9a3199f495843897722927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #106: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"8f65d92927cfb86a84dd59623fb531bb599e4d5f7289ffffffff2f1f2f57881c5b09ab637bd4caf0f4c7c7e4bca592fea20e9087c259d26a38bb4085f0bbff1145b7eb467b6748af618e9d80d6fdcd6aa24964e5a13f885bca8101de08eb0d752927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #107: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"6b63e9a74e092120160bea3877dace8a2cc7cd0e8426cbfffffffffafc8c3ca85e9b1c5a028070df5728c5c8af9b74e0667afa570a6cfa0114a5039ed15ee06fb1360907e2d9785ead362bb8d7bd661b6c29eeffd3c5037744edaeb9ad990c202927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #108: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"fc28259702a03845b6d75219444e8b43d094586e249c8699ffffffffe852512e0671a0a85c2b72d54a2fb0990e34538b4890050f5a5712f6d1a7a5fb8578f32edb1846bab6b7361479ab9c3285ca41291808f27fd5bd4fdac720e5854713694c2927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #109: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"1273b4502ea4e3bccee044ee8e8db7f774ecbcd52e8ceb571757ffffffffe20a7673f8526748446477dbbb0590a45492c5d7d69859d301abbaedb35b2095103a3dc70ddf9c6b524d886bed9e6af02e0e4dec0d417a414fed3807ef4422913d7c2927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #110: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"08fb565610a79baa0c566c66228d81814f8c53a15b96e602fb49ffffffffff6e7f085441070ecd2bb21285089ebb1aa6450d1a06c36d3ff39dfd657a796d12b5249712012029870a2459d18d47da9aa492a5e6cb4b2d8dafa9e4c5c54a2b9a8b2927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #111: special case hash\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"d59291cc2cf89f3087715fcb1aa4e79aa2403f748e97d7cd28ecaefeffffffff914c67fb61dd1e27c867398ea7322d5ab76df04bc5aa6683a8e0f30a5d287348fa07474031481dda4953e3ac1959ee8cea7e66ec412b38d6c96d28f6d37304ea2927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #112: special case hash\",\n    \"NoBenchmark\": false\n  }\n]"
  },
  {
    "path": "tests/osaka/eip7951_p256verify_precompiles/vectors/secp256r1_special_case_r_s.json",
    "content": "[\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #9: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #10: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050230000000000000000000000000000000000000000000000000000000000000000ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325512927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #11: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050230000000000000000000000000000000000000000000000000000000000000000ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325502927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #12: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050230000000000000000000000000000000000000000000000000000000000000000ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325522927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #13: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050230000000000000000000000000000000000000000000000000000000000000000ffffffff00000001000000000000000000000000ffffffffffffffffffffffff2927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #14: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050230000000000000000000000000000000000000000000000000000000000000000ffffffff000000010000000000000000000000010000000000000000000000002927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #15: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000002927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #16: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #17: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050230000000000000000000000000000000000000000000000000000000000000001ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325512927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #18: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050230000000000000000000000000000000000000000000000000000000000000001ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325502927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #19: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050230000000000000000000000000000000000000000000000000000000000000001ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325522927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #20: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050230000000000000000000000000000000000000000000000000000000000000001ffffffff00000001000000000000000000000000ffffffffffffffffffffffff2927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #21: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050230000000000000000000000000000000000000000000000000000000000000001ffffffff000000010000000000000000000000010000000000000000000000002927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #22: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255100000000000000000000000000000000000000000000000000000000000000002927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #23: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255100000000000000000000000000000000000000000000000000000000000000012927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #24: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325512927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #25: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325502927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #26: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325522927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #27: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551ffffffff00000001000000000000000000000000ffffffffffffffffffffffff2927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #28: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551ffffffff000000010000000000000000000000010000000000000000000000002927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #29: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255000000000000000000000000000000000000000000000000000000000000000002927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #30: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255000000000000000000000000000000000000000000000000000000000000000012927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #31: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325512927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #32: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325502927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #33: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325522927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #34: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550ffffffff00000001000000000000000000000000ffffffffffffffffffffffff2927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #35: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550ffffffff000000010000000000000000000000010000000000000000000000002927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #36: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255200000000000000000000000000000000000000000000000000000000000000002927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #37: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255200000000000000000000000000000000000000000000000000000000000000012927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #38: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325512927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #39: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325502927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #40: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325522927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #41: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552ffffffff00000001000000000000000000000000ffffffffffffffffffffffff2927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #42: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552ffffffff000000010000000000000000000000010000000000000000000000002927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #43: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023ffffffff00000001000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000002927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #44: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023ffffffff00000001000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000012927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #45: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023ffffffff00000001000000000000000000000000ffffffffffffffffffffffffffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325512927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #46: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023ffffffff00000001000000000000000000000000ffffffffffffffffffffffffffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325502927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #47: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023ffffffff00000001000000000000000000000000ffffffffffffffffffffffffffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325522927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #48: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023ffffffff00000001000000000000000000000000ffffffffffffffffffffffffffffffff00000001000000000000000000000000ffffffffffffffffffffffff2927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #49: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023ffffffff00000001000000000000000000000000ffffffffffffffffffffffffffffffff000000010000000000000000000000010000000000000000000000002927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #50: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023ffffffff0000000100000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000002927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #51: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023ffffffff0000000100000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000012927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #52: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023ffffffff00000001000000000000000000000001000000000000000000000000ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325512927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #53: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023ffffffff00000001000000000000000000000001000000000000000000000000ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325502927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #54: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023ffffffff00000001000000000000000000000001000000000000000000000000ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325522927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #55: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023ffffffff00000001000000000000000000000001000000000000000000000000ffffffff00000001000000000000000000000000ffffffffffffffffffffffff2927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #56: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023ffffffff00000001000000000000000000000001000000000000000000000000ffffffff000000010000000000000000000000010000000000000000000000002927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #57: Signature with special case values for r and s\",\n    \"NoBenchmark\": false\n  }\n]"
  },
  {
    "path": "tests/osaka/eip7951_p256verify_precompiles/vectors/secp256r1_special_points.json",
    "content": "[\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050232ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db2927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_test.json EcdsaVerify SHA-256 #3: valid\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050237fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192a8555555550000000055555555555555553ef7a8e48d07df81a693439654210c70b533d4695dd5b8c5e07757e55e6e516f7e2c88fa0239e23f60e8ec07dd70f2871b134ee58cc583278456863f33c3a85d881f7d4a39850143e29d4eaf009afe47\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #136: point at infinity during verify\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050236f2347cab7dd76858fe0555ac3bc99048c4aacafdfb6bcbe05ea6c42c4934569bb726660235793aa9957a61e76e00c2c435109cf9a15dd624d53f4301047856b5b812fd521aafa69835a849cce6fbdeb6983b442d2444fe70e134c027fc46963838a40f2a36092e9004e92d8d940cf5638550ce672ce8b8d4e15eba5499249e9\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #171: point duplication during verification\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050236f2347cab7dd76858fe0555ac3bc99048c4aacafdfb6bcbe05ea6c42c4934569bb726660235793aa9957a61e76e00c2c435109cf9a15dd624d53f4301047856b5b812fd521aafa69835a849cce6fbdeb6983b442d2444fe70e134c027fc469637c75bf0c5c9f6d17ffb16d2726bf30a9c7aaf31a8d317472b1ea145ab66db616\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #172: duplication bug\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050230000000000000000000000000000000000000000000000000000000000000001555555550000000055555555555555553ef7a8e48d07df81a693439654210c706adda82b90261b0f319faa0d878665a6b6da497f09c903176222c34acfef72a647e6f50dcc40ad5d9b59f7602bb222fad71a41bf5e1f9df4959a364c62e488d9\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #173: point with x-coordinate 0\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023555555550000000055555555555555553ef7a8e48d07df81a693439654210c703333333300000000333333333333333325c7cbbc549e52e763f1f55a327a3aa9dd86d3b5f4a13e8511083b78002081c53ff467f11ebd98a51a633db76665d25045d5c8200c89f2fa10d849349226d21d8dfaed6ff8d5cb3e1b7e17474ebc18f7\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #175: comparison with point at infinity \",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023249249246db6db6ddb6db6db6db6db6dad4591868595a8ee6bf5f864ff7be0c26b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2964fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #188: testing point duplication\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca60502344a5ad0ad0636d9f12bc9e0a6bdd5e1cbcb012ea7bf091fcec15b0c43202d52e249249246db6db6ddb6db6db6db6db6dad4591868595a8ee6bf5f864ff7be0c26b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2964fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #189: testing point duplication\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023249249246db6db6ddb6db6db6db6db6dad4591868595a8ee6bf5f864ff7be0c26b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296b01cbd1c01e58065711814b583f061e9d431cca994cea1313449bf97c840ae0a\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #190: testing point duplication\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca60502344a5ad0ad0636d9f12bc9e0a6bdd5e1cbcb012ea7bf091fcec15b0c43202d52e249249246db6db6ddb6db6db6db6db6dad4591868595a8ee6bf5f864ff7be0c26b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296b01cbd1c01e58065711814b583f061e9d431cca994cea1313449bf97c840ae0a\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #191: testing point duplication\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e257fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192a8555555550000000055555555555555553ef7a8e48d07df81a693439654210c700203736fcb198b15d8d7a0c80f66dddd15259240aa78d08aae67c467de04503434383438d5041ea9a387ee8e4d4e84b4471b160c6bcf2568b072f8f20e87a996\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #654: point at infinity during verify\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e256f2347cab7dd76858fe0555ac3bc99048c4aacafdfb6bcbe05ea6c42c4934569f21d907e3890916dc4fa1f4703c1e50d3f54ddf7383e44023a41de562aa18ed80158137755b901f797a90d4ca8887e023cb2ef63b2ba2c0d455edaef42cf237e2a964fc00d377a8592b8b61aafa7a4aaa7c7b9fd2b41d6e0e17bd1ba5677edcd\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #689: point duplication during verification\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e256f2347cab7dd76858fe0555ac3bc99048c4aacafdfb6bcbe05ea6c42c4934569f21d907e3890916dc4fa1f4703c1e50d3f54ddf7383e44023a41de562aa18ed80158137755b901f797a90d4ca8887e023cb2ef63b2ba2c0d455edaef42cf237ed569b03ef2c8857b6d4749e550585b5558384603d4be291f1e842e45a9881232\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #690: duplication bug\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25555555550000000055555555555555553ef7a8e48d07df81a693439654210c703333333300000000333333333333333325c7cbbc549e52e763f1f55a327a3aa9664ce273320d918d8bdb2e61201b4549b36b7cdc54e33b84adb6f2c10aac831e49e68831f18bda2973ac3d76bfbc8c5ee1cceed2dd862e2dc7c915c736cef1f4\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #693: comparison with point at infinity \",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25249249246db6db6ddb6db6db6db6db6dad4591868595a8ee6bf5f864ff7be0c26b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2964fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #706: testing point duplication\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25acd155416a8b77f34089464733ff7cd39c400e9c69af7beb9eac5054ed2ec72c249249246db6db6ddb6db6db6db6db6dad4591868595a8ee6bf5f864ff7be0c26b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2964fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #707: testing point duplication\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25249249246db6db6ddb6db6db6db6db6dad4591868595a8ee6bf5f864ff7be0c26b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296b01cbd1c01e58065711814b583f061e9d431cca994cea1313449bf97c840ae0a\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #708: testing point duplication\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25acd155416a8b77f34089464733ff7cd39c400e9c69af7beb9eac5054ed2ec72c249249246db6db6ddb6db6db6db6db6dad4591868595a8ee6bf5f864ff7be0c26b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296b01cbd1c01e58065711814b583f061e9d431cca994cea1313449bf97c840ae0a\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #709: testing point duplication\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"2f77668a9dfbf8d5848b9eeb4a7145ca94c6ed9236e4a773f6dcafa5132b2f9170bebe684cdcb5ca72a42f0d873879359bd1781a591809947628d313a3814f67aec03aca8f5587a4d535fa31027bbe9cc0e464b1c3577f4c2dcde6b2094798a900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Expected\": \"\",\n    \"Gas\": 6900,\n    \"Name\": \"reference point errors\",\n    \"NoBenchmark\": false\n  }\n]"
  },
  {
    "path": "tests/osaka/eip7951_p256verify_precompiles/vectors/secp256r1_u1_u2.json",
    "content": "[\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023555555550000000055555555555555553ef7a8e48d07df81a693439654210c70bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca60502369da0364734d2e530fece94019265fefb781a0f1b08f6c8897bdf6557927c8b866d2d3c7dcd518b23d726960f069ad71a933d86ef8abbcce8b20f71e2a847002\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #139: u1 == 1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023555555550000000055555555555555553ef7a8e48d07df81a693439654210c7044a5ad0ad0636d9f12bc9e0a6bdd5e1cbcb012ea7bf091fcec15b0c43202d52ed8adc00023a8edc02576e2b63e3e30621a471e2b2320620187bf067a1ac1ff3233e2b50ec09807accb36131fff95ed12a09a86b4ea9690aa32861576ba2362e1\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #140: u1 == n - 1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023555555550000000055555555555555553ef7a8e48d07df81a693439654210c70555555550000000055555555555555553ef7a8e48d07df81a693439654210c703623ac973ced0a56fa6d882f03a7d5c7edca02cfc7b2401fab3690dbe75ab7858db06908e64b28613da7257e737f39793da8e713ba0643b92e9bb3252be7f8fe\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #141: u2 == 1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023555555550000000055555555555555553ef7a8e48d07df81a693439654210c70aaaaaaaa00000000aaaaaaaaaaaaaaaa7def51c91a0fbf034d26872ca84218e1cf04ea77e9622523d894b93ff52dc3027b31959503b6fa3890e5e04263f922f1e8528fb7c006b3983c8b8400e57b4ed71740c2f3975438821199bedeaecab2e9\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #142: u2 == n - 1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050237ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffde91e1ba60fdedb76a46bcb51dc0b8b4b7e019f0a28721885fa5d3a8196623397db7a2c8a1ab573e5929dc24077b508d7e683d49227996bda3e9f78dbeff773504f417f3bc9a88075c2e0aadd5a13311730cf7cc76a82f11a36eaf08a6c99a206\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #143: edge case for u1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050237ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdea5843ffeb73af94313ba4831b53fe24f799e525b1e8e8c87b59b95b430ad9dead11c7a5b396862f21974dc4752fadeff994efe9bbd05ab413765ea80b6e1f1de3f0640e8ac6edcf89cff53c40e265bb94078a343736df07aa0318fc7fe1ff\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #144: edge case for u1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050237ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd03ffcabf2f1b4d2a65190db1680d62bb994e41c5251cd73b3c3dfc5e5bafc035d0bc472e0d7c81ebaed3a6ef96c18613bb1fea6f994326fbe80e00dfde67c7e9986c723ea4843d48389b946f64ad56c83ad70ff17ba85335667d1bb9fa619efd\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #145: edge case for u1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050237ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd4dfbc401f971cd304b33dfdb17d0fed0fe4c1a88ae648e0d2847f74977534989a0a44ca947d66a2acb736008b9c08d1ab2ad03776e02640f78495d458dd51c326337fe5cf8c4604b1f1c409dc2d872d4294a4762420df43a30a2392e40426add\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #146: edge case for u1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050237ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdbc4024761cd2ffd43dfdb17d0fed112b988977055cd3a8e54971eba9cda5ca71c9c2115290d008b45fb65fad0f602389298c25420b775019d42b62c3ce8a96b73877d25a8080dc02d987ca730f0405c2c9dbefac46f9e601cc3f06e9713973fd\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #147: edge case for u1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050237ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd788048ed39a5ffa77bfb62fa1fda2257742bf35d128fb3459f2a0c909ee86f915eca1ef4c287dddc66b8bccf1b88e8a24c0018962f3c5e7efa83bc1a5ff6033e5e79c4cb2c245b8c45abdce8a8e4da758d92a607c32cd407ecaef22f1c934a71\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #148: edge case for u1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050237ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd476d9131fd381bd917d0fed112bc9e0a5924b5ed5b11167edd8b23582b3cb15e5caaa030e7fdf0e4936bc7ab5a96353e0a01e4130c3f8bf22d473e317029a47adeb6adc462f7058f2a20d371e9702254e9b201642005b3ceda926b42b178bef9\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #149: edge case for u1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050237ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8374253e3e21bd154448d0a8f640fe46fafa8b19ce78d538f6cc0a19662d3601c2fd20bac06e555bb8ac0ce69eb1ea20f83a1fc3501c8a66469b1a31f619b0986237050779f52b615bd7b8d76a25fc95ca2ed32525c75f27ffc87ac397e6cbaf\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #150: edge case for u1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050237ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd357cfd3be4d01d413c5b9ede36cba5452c11ee7fe14879e749ae6a2d897a52d63fd6a1ca7f77fb3b0bbe726c372010068426e11ea6ae78ce17bedae4bba86ced03ce5516406bf8cfaab8745eac1cd69018ad6f50b5461872ddfc56e0db3c8ff4\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #151: edge case for u1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050237ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd29798c5c0ee287d4a5e8e6b799fd86b8df5225298e6ffc807cd2f2bc27a0a6d89cb8e51e27a5ae3b624a60d6dc32734e4989db20e9bca3ede1edf7b086911114b4c104ab3c677e4b36d6556e8ad5f523410a19f2e277aa895fc57322b4427544\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #152: edge case for u1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050237ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0b70f22c781092452dca1a5711fa3a5a1f72add1bf52c2ff7cae4820b30078dda3e52c156dcaf10502620b7955bc2b40bc78ef3d569e1223c262512d8f49602a4a2039f31c1097024ad3cc86e57321de032355463486164cf192944977df147f\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #153: edge case for u1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050237ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd16e1e458f021248a5b9434ae23f474b43ee55ba37ea585fef95c90416600f1baf19b78928720d5bee8e670fb90010fb15c37bf91b58a5157c3f3c059b2655e88cf701ec962fb4a11dcf273f5dc357e58468560c7cfeb942d074abd4329260509\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #154: edge case for u1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050237ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd2252d6856831b6cf895e4f0535eeaf0e5e5809753df848fe760ad86219016a9783a744459ecdfb01a5cf52b27a05bb7337482d242f235d7b4cb89345545c90a8c05d49337b9649813287de9ffe90355fd905df5f3c32945828121f37cc50de6e\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #155: edge case for u1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050237ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd81ffe55f178da695b28c86d8b406b15dab1a9e39661a3ae017fbe390ac0972c3dd13c6b34c56982ddae124f039dfd23f4b19bbe88cee8e528ae51e5d6f3a21d7bfad4c2e6f263fe5eb59ca974d039fc0e4c3345692fb5320bdae4bd3b42a45ff\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #156: edge case for u1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050237ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7fffffffaaaaaaaaffffffffffffffffe9a2538f37b28a2c513dee40fecbb71a67e6f659cdde869a2f65f094e94e5b4dfad636bbf95192feeed01b0f3deb7460a37e0a51f258b7aeb51dfe592f5cfd5685bbe58712c8d9233c62886437c38ba0\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #157: edge case for u2\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050237ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdb62f26b5f2a2b26f6de86d42ad8a13da3ab3cccd0459b201de009e526adf21f22eb6412505aec05c6545f029932087e490d05511e8ec1f599617bb367f9ecaaf805f51efcc4803403f9b1ae0124890f06a43fedcddb31830f6669af292895cb0\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #158: edge case for u2\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050237ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdbb1d9ac949dd748cd02bbbe749bd351cd57b38bb61403d700686aa7b4c90851e84db645868eab35e3a9fd80e056e2e855435e3a6b68d75a50a854625fe0d7f356d2589ac655edc9a11ef3e075eddda9abf92e72171570ef7bf43a2ee39338cfe\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #159: edge case for u2\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050237ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd66755a00638cdaec1c732513ca0234ece52545dac11f816e818f725b4f60aaf291b9e47c56278662d75c0983b22ca8ea6aa5059b7a2ff7637eb2975e386ad66349aa8ff283d0f77c18d6d11dc062165fd13c3c0310679c1408302a16854ecfbd\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #160: edge case for u2\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050237ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd55a00c9fcdaebb6032513ca0234ecfffe98ebe492fdf02e48ca48e982beb3669f3ec2f13caf04d0192b47fb4c5311fb6d4dc6b0a9e802e5327f7ec5ee8e4834df97e3e468b7d0db867d6ecfe81e2b0f9531df87efdb47c1338ac321fefe5a432\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #161: edge case for u2\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050237ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdab40193f9b5d76c064a27940469d9fffd31d7c925fbe05c919491d3057d66cd2d92b200aefcab6ac7dafd9acaf2fa10b3180235b8f46b4503e4693c670fccc885ef2f3aebf5b317475336256768f7c19efb7352d27e4cccadc85b6b8ab922c72\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #162: edge case for u2\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050237ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdca0234ebb5fdcb13ca0234ecffffffffcb0dadbbc7f549f8a26b4408d0dc86000a88361eb92ecca2625b38e5f98bbabb96bf179b3d76fc48140a3bcd881523cde6bdf56033f84a5054035597375d90866aa2c96b86a41ccf6edebf47298ad489\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #163: edge case for u2\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050237ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdbfffffff3ea3677e082b9310572620ae19933a9e65b285598711c77298815ad3d0fb17ccd8fafe827e0c1afc5d8d80366e2b20e7f14a563a2ba50469d84375e868612569d39e2bb9f554355564646de99ac602cc6349cf8c1e236a7de7637d93\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #164: edge case for u2\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050237ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd266666663bbbbbbbe6666666666666665b37902e023fab7c8f055d86e5cc41f4836f33bbc1dc0d3d3abbcef0d91f11e2ac4181076c9af0a22b1e4309d3edb2769ab443ff6f901e30c773867582997c2bec2b0cb8120d760236f3a95bbe881f75\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #165: edge case for u2\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050237ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdbfffffff36db6db7a492492492492492146c573f4c6dfc8d08a443e258970b0992f99fbe973ed4a299719baee4b432741237034dec8d72ba5103cb33e55feeb8033dd0e91134c734174889f3ebcf1b7a1ac05767289280ee7a794cebd6e69697\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #166: edge case for u2\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050237ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdbfffffff2aaaaaab7fffffffffffffffc815d0e60b3e596ecb1ad3a27cfd49c4d35ba58da30197d378e618ec0fa7e2e2d12cffd73ebbb2049d130bba434af09eff83986e6875e41ea432b7585a49b3a6c77cbb3c47919f8e82874c794635c1d2\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #167: edge case for u2\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050237ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7fffffff55555555ffffffffffffffffd344a71e6f651458a27bdc81fd976e378651ce490f1b46d73f3ff475149be29136697334a519d7ddab0725c8d0793224e11c65bd8ca92dc8bc9ae82911f0b52751ce21dd9003ae60900bd825f590cc28\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #168: edge case for u2\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050237ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd3fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192aa6d8e1b12c831a0da8795650ff95f101ed921d9e2f72b15b1cdaca9826b9cfc6def6d63e2bc5c089570394a4bc9f892d5e6c7a6a637b20469a58c106ad486bf37\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #169: edge case for u2\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050237ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd5d8ecd64a4eeba466815ddf3a4de9a8e6abd9c5db0a01eb80343553da648428f0ae580bae933b4ef2997cbdbb0922328ca9a410f627a0f7dff24cb4d920e15428911e7f8cc365a8a88eb81421a361ccc2b99e309d8dcd9a98ba83c3949d893e3\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_secp256r1_sha256_p1363_test.json EcdsaP1363Verify SHA-256 #170: edge case for u2\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25555555550000000055555555555555553ef7a8e48d07df81a693439654210c70532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25a17f5b75a35ed64623ca5cbf1f91951292db0c23f0c2ea24c3d0cad0988cabc083a7a618625c228940730b4fa3ee64faecbb2fc20fdde7c58b3a3f6300424dc6\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #657: u1 == 1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25555555550000000055555555555555553ef7a8e48d07df81a693439654210c70acd155416a8b77f34089464733ff7cd39c400e9c69af7beb9eac5054ed2ec72c04ba0cba291a37db13f33bf90dab628c04ec8393a0200419e9eaa1ebcc9fb5c31f3a0a0e6823a49b625ad57b12a32d4047970fc3428f0f0049ecf4265dc12f62\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #658: u1 == n - 1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25555555550000000055555555555555553ef7a8e48d07df81a693439654210c70555555550000000055555555555555553ef7a8e48d07df81a693439654210c70692b6c828e0feed63d8aeaa2b7322f9ccbe8723a1ed39f229f204a434b8900efa1f6f6abcb38ea3b8fde38b98c7c271f274af56a8c5628dc3329069ae4dd5716\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #659: u2 == 1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25555555550000000055555555555555553ef7a8e48d07df81a693439654210c70aaaaaaaa00000000aaaaaaaaaaaaaaaa7def51c91a0fbf034d26872ca84218e100cefd9162d13e64cb93687a9cd8f9755ebb5a3ef7632f800f84871874ccef09543ecbeaf7e8044ef721be2fb5f549e4b8480d2587404ebf7dbbef2c54bc0cb1\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #660: u2 == n - 1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e257ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd710f8e3edc7c2d5a3fd23de844002bb949d9f794f6d5405f6d97c1bb03dd2bd2b975183b42551cf52f291d5c1921fd5e12f50c8c85a4beb9de03efa3f0f244862243018e6866df922dc313612020311ff21e242ce3fb15bc78c406b25ab43091\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #661: edge case for u1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e257ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdedffbc270f722c243069a7e5f40335a61a58525c7b4db2e7a8e269274ffe4e1bc25f1d166f3e211cdf042a26f8abf6094d48b8d17191d74ed71714927446699965d06dd6a88abfa49e8b4c5da6bb922851969adf9604b5accfb52a114e77ccdb\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #662: edge case for u1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e257ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffda25adcae105ed7ff4f95d2344e24ee523314c3e178525d007904b68919ba4d538fe5e88243a76e41a004236218a3c3a2d6eee398a23c3a0b008d7f0164cbc0ca98a20d1bdcf573513c7cfd9b83c63e3a82d40127c897697c86b8cb387af7f240\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #663: edge case for u1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e257ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd2e4348c645707dce6760d773de3f3e87346924b2f64bd3dd0297e766b5805ebb02148256b530fbc470c7b341970b38243ecee6d5a840a37beca2efb37e8dff2cc0adbea0882482a7489ca703a399864ba987eeb6ddb738af53a83573473cb30d\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #664: edge case for u1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e257ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd348c673b07dce3920d773de3f3e87408869e916dbcf797d8f9684fb67753d1dca34db012ce6eda1e9c7375c5fcf3e54ed698e19615124273b3a621d021c76f8e777458d6f55a364c221e39e1205d5510bb4fbb7ddf08d8d8fdde13d1d6df7f14\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #665: edge case for u1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e257ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd6918ce760fb9c7241aee7bc7e7d0e8110d3d22db79ef2fb1f2d09f6ceea7a3b8b97af3fe78be15f2912b6271dd8a43badb6dd2a1b315b2ce7ae37b4e7778041d930d71ee1992d2466495c42102d08e81154c305307d1dcd52d0fa4c479b278e7\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #666: edge case for u1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e257ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd73b3c694391d8eadde3f3e874089464715ac20e4c126bbf6d864d648969f5b5a81e7198a3c3f23901cedc7a1d6eff6e9bf81108e6c35cd8559139af3135dbcbb9ef1568530291a8061b90c9f4285eefcba990d4570a4e3b7b737525b5d580034\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #667: edge case for u1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e257ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdbb07ac7a86948c2c2989a16db1930ef1b89ce112595197656877e53c41457f28ab4d792ca121d1dba39cb9de645149c2ab573e8becc6ddff3cc9960f188ddf737f90ba23664153e93262ff73355415195858d7be1315a69456386de68285a3c8\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #668: edge case for u1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e257ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd27e4d82cb6c061dd9337c69bf9332ed3d198662d6f2299443f62c861187db648518412b69af43aae084476a68d59bbde51fbfa9e5be80563f587c9c2652f88ef2d3b90d25baa6bdb7b0c55e5240a3a98fbc24afed8523edec1c70503fc10f233\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #669: edge case for u1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e257ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffde7c5cf3aac2e88923b77850515fff6a12d13b356dfe9ec275c3dd81ae94609a4a08f14a644b9a935dffea4761ebaf592d1f66fe6cd373aa7f5d370af34f8352da54b5bc4025cf335900a914c2934ec2fec7a396d0a7affcad732a5741c7aaaf5\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #670: edge case for u1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e257ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc77838df91c1e953e016e10bddffea2317f9fee32bacfe553cede9e57a748f68ccf2296a6a89b62b90739d38af4ae3a20e9f45715b90044639241061e33f8f8caace0046491eeaa1c6e9a472b96d88f4af83e7ff1bb84438c7e058034412ae08\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #671: edge case for u1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e257ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8ef071c02383d2a6c02dc217bbffd446730d0318b0425e2586220907f885f97f94b0fc1525bcabf82b1f34895e5819a06c02b23e04002276e165f962c86e3927be7c2ab4d0b25303204fb32a1f8292902792225e16a6d2dbfb29fbc89a9c3376\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #672: edge case for u1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e257ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd5668aaa0b545bbf9a044a32399ffbe69ce20074e34d7bdf5cf56282a769763965351f37e1de0c88c508527d89882d183ccdcf2efca407edb0627cadfd16de6ec44b4b57cdf960d32ebcc4c97847eed218425853b5b675eb781b766a1a1300349\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #673: edge case for u1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e257ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdd12d6e56882f6c0027cae91a27127728f7fddf478fb4fdc2b65f40a60b0eb952748bbafc320e6735cb64019710a269c6c2b5d147bdc831325cb2fb276ac971a69d655e9a755bc9d800ad21ee3fd4d980d93a7a49a8c5ccd37005177578f51163\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #674: edge case for u1\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e257ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7fffffffaaaaaaaaffffffffffffffffe9a2538f37b28a2c513dee40fecbb71a14b3bbd75c5e1c0c36535a934d4ab85112410b3b90fa97a31c33038964fd85cc112f7d837f8f9c36b460d636c965a5f818f2b50c5d00fb3f9705561dd6631883\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #675: edge case for u2\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e257ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdb62f26b5f2a2b26f6de86d42ad8a13da3ab3cccd0459b201de009e526adf21f2d823533c04cd8edc6d6f950a8e08ade04a9bafa2f14a590356935671ae9305bf43178d1f88b6a57a96924c265f0ddb75b58312907b195acb59d7797303123775\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #676: edge case for u2\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e257ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdbb1d9ac949dd748cd02bbbe749bd351cd57b38bb61403d700686aa7b4c90851edb2b3408b3167d91030624c6328e8ce3ec108c105575c2f3d209b92e654bab69c34318139c50b0802c6e612f0fd3189d800df7c996d5d7b7c3d6be82836fa258\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #677: edge case for u2\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e257ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd66755a00638cdaec1c732513ca0234ece52545dac11f816e818f725b4f60aaf209179ce7c59225392216453b2ac1e9d178c24837dfae26bc1dd7ab60638527425556b42e330289f3b826b2db7a86d19d45c2860a59f2be1ddcc3b691f95a9255\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #678: edge case for u2\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e257ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd55a00c9fcdaebb6032513ca0234ecfffe98ebe492fdf02e48ca48e982beb366901959fb8deda56e5467b7e4b214ea4c2d0c2fb29d70ff19b6b1eccebd6568d7ed9dbd77a918297fd970bff01e1343f6925167db5a14d098a211c39cc3a413398\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #679: edge case for u2\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e257ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdab40193f9b5d76c064a27940469d9fffd31d7c925fbe05c919491d3057d66cd2567f1fdc387e5350c852b4e8f8ba9d6d947e1c5dd7ccc61a5938245dd6bcab3a9960bebaf919514f9535c22eaaf0b5812857970e26662267b1f3eb1011130a11\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #680: edge case for u2\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e257ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdca0234ebb5fdcb13ca0234ecffffffffcb0dadbbc7f549f8a26b4408d0dc86003499f974ff4ca6bbb2f51682fd5f51762f9dd6dd2855262660b36d46d3e4bec2f498fae2487807e220119152f0122476c64d4fa46ddce85c4546630f0d5c5e81\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #681: edge case for u2\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e257ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdbfffffff3ea3677e082b9310572620ae19933a9e65b285598711c77298815ad32c5c01662cf00c1929596257db13b26ecf30d0f3ec4b9f0351b0f27094473426e986a086060d086eee822ddd2fc744247a0154b57f7a69c51d9fdafa484e4ac7\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #682: edge case for u2\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e257ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd266666663bbbbbbbe6666666666666665b37902e023fab7c8f055d86e5cc41f491d4cba813a04d86dbae94c23be6f52c15774183be7ba5b2d9f3cf010b160501900b8adfea6491019a9ac080d516025a541bf4b952b0ad7be4b1874b02fd544a\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #683: edge case for u2\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e257ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdbfffffff36db6db7a492492492492492146c573f4c6dfc8d08a443e258970b09ef7fd0a3a36386638330ecad41e1a3b302af36960831d0210c614b948e8aa124ef0d6d800e4047d6d3c1be0fdeaf11fcd8cab5ab59c730eb34116e35a8c7d098\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #684: edge case for u2\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e257ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdbfffffff2aaaaaab7fffffffffffffffc815d0e60b3e596ecb1ad3a27cfd49c4a521dab13cc9152d8ca77035a607fea06c55cc3ca5dbeb868cea92eafe93df2a7bfb9b28531996635e6a5ccaa2826a406ce1111bdb9c2e0ca36500418a2f43de\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #685: edge case for u2\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e257ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7fffffff55555555ffffffffffffffffd344a71e6f651458a27bdc81fd976e37474d58a4eec16e0d565f2187fe11d4e8e7a2683a12f38b4fc01d1237a81a10976e55f73bb7cdda46bdb67ef77f6fd2969df2b67920fb5945fde3a517a6ded4cd\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #686: edge case for u2\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e257ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd3fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192aa692da5cd4309d9a6e5cb525c37da8fa0879f7b57208cdabbf47d223a5b23a62140e0daa78cfdd207a7389aaed61738b17fc5fc3e6a5ed3397d2902e9125e6ab4\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #687: edge case for u2\",\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e257ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd5d8ecd64a4eeba466815ddf3a4de9a8e6abd9c5db0a01eb80343553da648428f85689b3e0775c7718a90279f14a8082cfcd4d1f1679274f4e9b8805c570a0670167fcc5ca734552e09afa3640f4a034e15b9b7ca661ec7ff70d3f240ebe705b1\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 6900,\n    \"Name\": \"wycheproof/ecdsa_test.json EcdsaVerify SHA-256 #688: edge case for u2\",\n    \"NoBenchmark\": false\n  }\n]"
  },
  {
    "path": "tests/paris/__init__.py",
    "content": "\"\"\"Test cases for EVM functionality introduced in Paris (Merge).\"\"\"\n"
  },
  {
    "path": "tests/paris/eip7610_create_collision/__init__.py",
    "content": "\"\"\"Cross-client Create Collision Tests.\"\"\"\n"
  },
  {
    "path": "tests/paris/eip7610_create_collision/test_initcollision.py",
    "content": "\"\"\"\nTest collision in CREATE/CREATE2 account creation, where the existing account\nonly has a non-zero storage slot set.\n\"\"\"\n\nimport pytest\n\nfrom ethereum_test_tools import (\n    Account,\n    Alloc,\n    Bytecode,\n    Initcode,\n    StateTestFiller,\n    Transaction,\n    compute_create_address,\n)\nfrom ethereum_test_tools import Opcodes as Op\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-7610.md\"\nREFERENCE_SPEC_VERSION = \"80ef48d0bbb5a4939ade51caaaac57b5df6acd4e\"\n\npytestmark = [\n    pytest.mark.valid_from(\"Paris\"),\n    pytest.mark.ported_from(\n        [\n            \"https://github.com/ethereum/tests/blob/v13.3/src/GeneralStateTestsFiller/stSStoreTest/InitCollisionFiller.json\",\n            \"https://github.com/ethereum/tests/blob/v13.3/src/GeneralStateTestsFiller/stSStoreTest/InitCollisionNonZeroNonceFiller.json\",\n            \"https://github.com/ethereum/tests/blob/v13.3/src/GeneralStateTestsFiller/stSStoreTest/InitCollisionParisFiller.json\",\n        ],\n        pr=[\"https://github.com/ethereum/execution-spec-tests/pull/636\"],\n    ),\n    pytest.mark.parametrize(\n        \"collision_nonce,collision_balance,collision_code\",\n        [\n            pytest.param(0, 0, b\"\\0\", id=\"non-empty-code\"),\n            pytest.param(0, 1, b\"\", id=\"non-empty-balance\"),\n            pytest.param(1, 0, b\"\", id=\"non-empty-nonce\"),\n        ],\n    ),\n    pytest.mark.parametrize(\n        \"initcode\",\n        [\n            pytest.param(\n                Initcode(\n                    deploy_code=Op.STOP,\n                    initcode_prefix=Op.SSTORE(0, 1) + Op.SSTORE(1, 0),\n                ),\n                id=\"correct-initcode\",\n            ),\n            pytest.param(Op.REVERT(0, 0), id=\"revert-initcode\"),\n            pytest.param(Op.MSTORE(0xFFFFFFFFFFFFFFFFFFFFFFFFFFF, 1), id=\"oog-initcode\"),\n        ],\n    ),\n    pytest.mark.pre_alloc_modify,  # We need to modify the pre-alloc to include the collision\n]\n\n\n@pytest.mark.with_all_contract_creating_tx_types\ndef test_init_collision_create_tx(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    tx_type: int,\n    collision_nonce: int,\n    collision_balance: int,\n    collision_code: bytes,\n    initcode: Bytecode,\n) -> None:\n    \"\"\"\n    Test that a contract creation transaction exceptionally aborts when\n    the target address has a non-empty storage, balance, nonce, or code.\n    \"\"\"\n    tx = Transaction(\n        sender=pre.fund_eoa(),\n        type=tx_type,\n        to=None,\n        data=initcode,\n        gas_limit=200_000,\n    )\n\n    created_contract_address = tx.created_contract\n\n    # This is the collision\n    pre[created_contract_address] = Account(\n        storage={0x01: 0x01},\n        nonce=collision_nonce,\n        balance=collision_balance,\n        code=collision_code,\n    )\n\n    state_test(\n        pre=pre,\n        post={\n            created_contract_address: Account(\n                storage={0x01: 0x01},\n            ),\n        },\n        tx=tx,\n    )\n\n\n@pytest.mark.parametrize(\"opcode\", [Op.CREATE, Op.CREATE2])\ndef test_init_collision_create_opcode(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    opcode: Op,\n    collision_nonce: int,\n    collision_balance: int,\n    collision_code: bytes,\n    initcode: Bytecode,\n) -> None:\n    \"\"\"\n    Test that a contract creation opcode exceptionally aborts when the target\n    address has a non-empty storage, balance, nonce, or code.\n    \"\"\"\n    assert len(initcode) <= 32\n    contract_creator_code = (\n        Op.MSTORE(0, Op.PUSH32(bytes(initcode).ljust(32, b\"\\0\")))\n        + Op.SSTORE(0x01, opcode(value=0, offset=0, size=len(initcode)))\n        + Op.STOP\n    )\n    contract_creator_address = pre.deploy_contract(\n        contract_creator_code,\n        storage={0x01: 0x01},\n    )\n    created_contract_address = compute_create_address(\n        address=contract_creator_address,\n        nonce=1,\n        salt=0,\n        initcode=initcode,\n        opcode=opcode,\n    )\n\n    tx = Transaction(\n        sender=pre.fund_eoa(),\n        to=contract_creator_address,\n        data=initcode,\n        gas_limit=2_000_000,\n    )\n\n    pre[created_contract_address] = Account(\n        storage={0x01: 0x01},\n        nonce=collision_nonce,\n        balance=collision_balance,\n        code=collision_code,\n    )\n\n    state_test(\n        pre=pre,\n        post={\n            created_contract_address: Account(\n                storage={0x01: 0x01},\n            ),\n            contract_creator_address: Account(storage={0x01: 0x00}),\n        },\n        tx=tx,\n    )\n"
  },
  {
    "path": "tests/paris/security/__init__.py",
    "content": "\"\"\"Ethereum execution client tests related to security issues.\"\"\"\n"
  },
  {
    "path": "tests/paris/security/test_selfdestruct_balance_bug.py",
    "content": "\"\"\"\nTests the Consensus Flaw During Block Processing related to SELFDESTRUCT.\n\nTests the consensus-vulnerability reported in\n[go-ethereum/security/advisories/GHSA-xw37-57qp-9mm4](https://github.com/ethere\num/go-ethereum/security/advisories/GHSA-xw37-57qp-9mm4).\n\nTo reproduce the issue with this test case:\n\n1. Fill the test with the most recent geth evm version.\n2. Run the fixture output within a vulnerable geth version:\n    v1.9.20 > geth >= v1.9.4.\n\"\"\"\n\nimport pytest\n\nfrom ethereum_test_tools import (\n    Account,\n    Alloc,\n    Block,\n    BlockchainTestFiller,\n    CalldataCase,\n    Initcode,\n    Switch,\n    Transaction,\n    compute_create_address,\n)\nfrom ethereum_test_vm import Opcodes as Op\n\n\n@pytest.mark.valid_from(\"Constantinople\")\ndef test_tx_selfdestruct_balance_bug(blockchain_test: BlockchainTestFiller, pre: Alloc) -> None:\n    \"\"\"\n    Test that the vulnerability is not present by checking the balance of the\n    `0xaa` contract after executing specific transactions.\n\n    1. Start with contract `0xaa` which has initial balance of 3 wei.\n    `0xaa` contract code simply performs a self-destruct to itself.\n\n    2. Send a transaction (tx 1) to invoke caller contract `0xcc` (which has a\n    balance of 1 wei), which in turn invokes `0xaa` with a 1 wei call.\n\n    3. Store the balance of `0xaa` after the first transaction is processed.\n    `0xaa` self-destructed. Expected outcome: 0 wei.\n\n    4. Send another transaction (tx 2) to call 0xaa with 5 wei.\n\n    5. Store the balance of `0xaa` after the second transaction is processed.\n    No self-destruct. Expected outcome: 5 wei.\n\n    6. Verify that:\n        - Call within tx 1 is successful, i.e `0xaa` self-destructed.\n        - The balances of `0xaa` after each tx are correct.\n        - During tx 2, code in `0xaa` does not execute,\n            hence self-destruct mechanism does not trigger.\n\n    TODO: EOF - This test could be parametrized for EOFCREATE\n    \"\"\"\n    deploy_code = Switch(\n        default_action=Op.REVERT(0, 0),\n        cases=[\n            CalldataCase(\n                value=0,\n                action=Op.SELFDESTRUCT(Op.ADDRESS),\n            ),\n            CalldataCase(\n                value=1,\n                action=Op.SSTORE(0, Op.SELFBALANCE),\n            ),\n        ],\n    )\n    aa_code = Initcode(\n        deploy_code=deploy_code,\n    )\n    cc_code = (\n        Op.CALLDATACOPY(size=Op.CALLDATASIZE)\n        + Op.MSTORE(\n            0,\n            Op.CREATE(\n                value=3,  # Initial balance of 3 wei\n                offset=0,\n                size=Op.CALLDATASIZE,\n            ),\n        )\n        + Op.SSTORE(0xCA1101, Op.CALL(gas=100000, address=Op.MLOAD(0), value=0))\n        + Op.CALL(gas=100000, address=Op.MLOAD(0), value=1)\n    )\n\n    cc_address = pre.deploy_contract(cc_code, balance=1000000000)\n    aa_location = compute_create_address(address=cc_address, nonce=1)\n    balance_code = Op.SSTORE(0xBA1AA, Op.BALANCE(aa_location))\n    balance_address_1 = pre.deploy_contract(balance_code)\n    balance_address_2 = pre.deploy_contract(balance_code)\n\n    sender = pre.fund_eoa()\n\n    blocks = [\n        Block(\n            txs=[\n                # Sender invokes caller, caller invokes 0xaa:\n                # calling with 1 wei call\n                Transaction(\n                    sender=sender,\n                    to=cc_address,\n                    data=aa_code,\n                    gas_limit=1000000,\n                ),\n                # Dummy tx to store balance of 0xaa after first TX.\n                Transaction(\n                    sender=sender,\n                    to=balance_address_1,\n                    gas_limit=100000,\n                ),\n                # Sender calls 0xaa with 5 wei.\n                Transaction(\n                    sender=sender,\n                    to=aa_location,\n                    gas_limit=100000,\n                    value=5,\n                ),\n                # Dummy tx to store balance of 0xaa after second TX.\n                Transaction(\n                    sender=sender,\n                    to=balance_address_2,\n                    gas_limit=100000,\n                ),\n            ],\n        ),\n    ]\n\n    post = {\n        # Check call from caller has succeeded.\n        cc_address: Account(nonce=2, storage={0xCA1101: 1}),\n        # Check balance of 0xaa after tx 1 is 0 wei, i.e self-destructed.\n        # Vulnerable versions should return 1 wei.\n        balance_address_1: Account(storage={0xBA1AA: 0}),\n        # Check that 0xaa exists and balance after tx 2 is 5 wei.\n        # Vulnerable versions should return 6 wei.\n        balance_address_2: Account(storage={0xBA1AA: 5}),\n        aa_location: Account(storage={0: 0}),\n    }\n\n    blockchain_test(pre=pre, post=post, blocks=blocks)\n"
  },
  {
    "path": "tests/prague/__init__.py",
    "content": "\"\"\"\nTest cases for EVM functionality introduced in Prague, [EIP-7600: Hardfork Meta\n- Pectra](https://eip.directory/eips/eip-7600).\n\nDevnet Specifications:\n\n- [ethpandaops/pectra-devnet-5](https://notes.ethereum.org/@ethpandaops/pectra-devnet-5).\n- [ethpandaops/pectra-devnet-4](https://notes.ethereum.org/@ethpandaops/pectra-devnet-4).\n- [ethpandaops/pectra-devnet-3](https://notes.ethereum.org/@ethpandaops/pectra-devnet-3).\n- [ethpandaops/pectra-devnet-2](https://notes.ethereum.org/@ethpandaops/pectra-devnet-2).\n- [ethpandaops/pectra-devnet-1](https://notes.ethereum.org/@ethpandaops/pectra-devnet-1).\n\"\"\"\n"
  },
  {
    "path": "tests/prague/eip2537_bls_12_381_precompiles/__init__.py",
    "content": "\"\"\"\nTests [EIP-2537: Precompile for BLS12-381 curve operations](https://eips.ethereum.org/EIPS/eip-2537).\n\"\"\"\n"
  },
  {
    "path": "tests/prague/eip2537_bls_12_381_precompiles/conftest.py",
    "content": "\"\"\"Shared pytest definitions local to EIP-2537 tests.\"\"\"\n\nfrom typing import SupportsBytes\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import EOA, Address, Alloc, Bytecode, Storage, Transaction, keccak256\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom .helpers import BLSPointGenerator\nfrom .spec import GAS_CALCULATION_FUNCTION_MAP\n\n\n@pytest.fixture\ndef vector_gas_value() -> int | None:\n    \"\"\"\n    Gas value from the test vector if any.\n\n    If `None` it means that the test scenario did not come from a file, so no\n    comparison is needed.\n\n    The `vectors_from_file` function reads the gas value from the file and\n    overwrites this fixture.\n    \"\"\"\n    return None\n\n\n@pytest.fixture\ndef precompile_gas(\n    precompile_address: int, input_data: bytes, vector_gas_value: int | None\n) -> int:\n    \"\"\"Gas cost for the precompile.\"\"\"\n    calculated_gas = GAS_CALCULATION_FUNCTION_MAP[precompile_address](len(input_data))\n    if vector_gas_value is not None:\n        assert calculated_gas == vector_gas_value, (\n            f\"Calculated gas {calculated_gas} != Vector gas {vector_gas_value}\"\n        )\n    return calculated_gas\n\n\n@pytest.fixture\ndef precompile_gas_modifier() -> int:\n    \"\"\"\n    Modify the gas passed to the precompile, for testing purposes.\n\n    By default the call is made with the exact gas amount required for the\n    given opcode, but when this fixture is overridden, the gas amount can be\n    modified to, e.g., test a lower amount and test if the precompile call\n    fails.\n    \"\"\"\n    return 0\n\n\n@pytest.fixture\ndef call_opcode() -> Op:\n    \"\"\"\n    Type of call used to call the precompile.\n\n    By default it is Op.CALL, but it can be overridden in the test.\n    \"\"\"\n    return Op.CALL\n\n\n@pytest.fixture\ndef call_contract_post_storage() -> Storage:\n    \"\"\"\n    Storage of the test contract after the transaction is executed.\n\n    Note:\n    Fixture `call_contract_code` fills the actual expected storage values.\n\n    \"\"\"\n    return Storage()\n\n\n@pytest.fixture\ndef call_succeeds(\n    expected_output: bytes | SupportsBytes,\n) -> bool:\n    \"\"\"\n    By default, depending on the expected output, we can deduce if the call is\n    expected to succeed or fail.\n    \"\"\"\n    return len(bytes(expected_output)) > 0\n\n\n@pytest.fixture\ndef call_contract_code(\n    precompile_address: int,\n    precompile_gas: int | None,\n    precompile_gas_modifier: int,\n    expected_output: bytes | SupportsBytes,\n    call_succeeds: bool,\n    call_opcode: Op,\n    call_contract_post_storage: Storage,\n) -> Bytecode:\n    \"\"\"\n    Code of the test contract.\n\n    Args:\n      precompile_address: Address of the precompile to call.\n      precompile_gas: Gas cost for the precompile, which is automatically\n                      calculated by the `precompile_gas` fixture, but can\n                      be overridden in the test.\n      precompile_gas_modifier: Gas cost modifier for the precompile, which\n                               is automatically set to zero by the\n                               `precompile_gas_modifier` fixture, but\n                               can be overridden in the test.\n      expected_output: Expected output of the precompile call.\n                       This value is used to determine if the call is\n                       expected to succeed or fail.\n      call_succeeds: Boolean that indicates if the call is expected to\n                     succeed or fail.\n      call_opcode: Type of call used to call the precompile (Op.CALL,\n                   Op.CALLCODE, Op.DELEGATECALL, Op.STATICCALL).\n      call_contract_post_storage: Storage of the test contract after the\n                                  transaction is executed.\n\n    \"\"\"\n    expected_output = bytes(expected_output)\n\n    assert call_opcode in [Op.CALL, Op.CALLCODE, Op.DELEGATECALL, Op.STATICCALL]\n    value = [0] if call_opcode in [Op.CALL, Op.CALLCODE] else []\n\n    precompile_gas_value_opcode: int | Op\n    if precompile_gas is None:\n        precompile_gas_value_opcode = Op.GAS\n    else:\n        precompile_gas_value_opcode = precompile_gas + precompile_gas_modifier\n\n    code = (\n        Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE())\n        + Op.SSTORE(\n            call_contract_post_storage.store_next(call_succeeds),\n            call_opcode(\n                precompile_gas_value_opcode,\n                precompile_address,\n                *value,  # Optional, only used for CALL and CALLCODE.\n                0,\n                Op.CALLDATASIZE(),\n                0,\n                0,\n            ),\n        )\n        + Op.SSTORE(\n            call_contract_post_storage.store_next(len(expected_output)),\n            Op.RETURNDATASIZE(),\n        )\n    )\n    if call_succeeds:\n        # Add integrity check only if the call is expected to succeed.\n        code += Op.RETURNDATACOPY(0, 0, Op.RETURNDATASIZE()) + Op.SSTORE(\n            call_contract_post_storage.store_next(keccak256(expected_output)),\n            Op.SHA3(0, Op.RETURNDATASIZE()),\n        )\n\n    return code\n\n\n@pytest.fixture\ndef call_contract_address(pre: Alloc, call_contract_code: Bytecode) -> Address:\n    \"\"\"Address where the test contract will be deployed.\"\"\"\n    return pre.deploy_contract(call_contract_code)\n\n\n@pytest.fixture\ndef sender(pre: Alloc) -> EOA:\n    \"\"\"Sender of the transaction.\"\"\"\n    return pre.fund_eoa()\n\n\n@pytest.fixture\ndef post(call_contract_address: Address, call_contract_post_storage: Storage) -> dict:\n    \"\"\"Test expected post outcome.\"\"\"\n    return {\n        call_contract_address: {\n            \"storage\": call_contract_post_storage,\n        },\n    }\n\n\n@pytest.fixture\ndef tx_gas_limit(fork: Fork, input_data: bytes, precompile_gas: int) -> int:\n    \"\"\"\n    Transaction gas limit used for the test (Can be overridden in the test).\n    \"\"\"\n    intrinsic_gas_cost_calculator = fork.transaction_intrinsic_cost_calculator()\n    memory_expansion_gas_calculator = fork.memory_expansion_gas_calculator()\n    extra_gas = 100_000\n    return (\n        extra_gas\n        + intrinsic_gas_cost_calculator(calldata=input_data)\n        + memory_expansion_gas_calculator(new_bytes=len(input_data))\n        + precompile_gas\n    )\n\n\n@pytest.fixture\ndef tx(\n    input_data: bytes,\n    tx_gas_limit: int,\n    call_contract_address: Address,\n    sender: EOA,\n) -> Transaction:\n    \"\"\"Transaction for the test.\"\"\"\n    return Transaction(\n        gas_limit=tx_gas_limit,\n        data=input_data,\n        to=call_contract_address,\n        sender=sender,\n    )\n\n\nNUM_TEST_POINTS = 5\n\n# Random points not in the subgroup (fast to generate)\nG1_POINTS_NOT_IN_SUBGROUP = [\n    BLSPointGenerator.generate_random_g1_point_not_in_subgroup(seed=i)\n    for i in range(NUM_TEST_POINTS)\n]\nG2_POINTS_NOT_IN_SUBGROUP = [\n    BLSPointGenerator.generate_random_g2_point_not_in_subgroup(seed=i)\n    for i in range(NUM_TEST_POINTS)\n]\n# Field points that maps to the identity point using `BLS12_MAP_FP_TO_G1`\nG1_FIELD_POINTS_MAP_TO_IDENTITY = BLSPointGenerator.generate_g1_map_isogeny_kernel_points()\n\n# Random points not on the curve (fast to generate)\nG1_POINTS_NOT_ON_CURVE = [\n    BLSPointGenerator.generate_random_g1_point_not_on_curve(seed=i) for i in range(NUM_TEST_POINTS)\n]\nG2_POINTS_NOT_ON_CURVE = [\n    BLSPointGenerator.generate_random_g2_point_not_on_curve(seed=i) for i in range(NUM_TEST_POINTS)\n]\n\n# Field points that maps to the identity point using `BLS12_MAP_FP_TO_G2`\nG2_FIELD_POINTS_MAP_TO_IDENTITY = BLSPointGenerator.generate_g2_map_isogeny_kernel_points()\n"
  },
  {
    "path": "tests/prague/eip2537_bls_12_381_precompiles/helpers.py",
    "content": "\"\"\"Helper functions for the EIP-2537 BLS12-381 precompiles tests.\"\"\"\n\nimport hashlib\nimport os\nfrom typing import Annotated, Any, List, Optional\n\nimport pytest\nfrom joblib import Memory\nfrom py_ecc.bls12_381 import FQ, FQ2, add, field_modulus, multiply\nfrom pydantic import BaseModel, BeforeValidator, ConfigDict, RootModel, TypeAdapter\nfrom pydantic.alias_generators import to_pascal\n\nfrom .spec import FP, FP2, PointG1, PointG2, Spec\n\n\ndef current_python_script_directory(*args: str) -> str:\n    \"\"\"\n    Get the current Python script directory, optionally appending additional\n    path components.\n    \"\"\"\n    return os.path.join(os.path.dirname(os.path.realpath(__file__)), *args)\n\n\nclass Vector(BaseModel):\n    \"\"\"Test vector for the BLS12-381 precompiles.\"\"\"\n\n    input: Annotated[bytes, BeforeValidator(bytes.fromhex)]\n    expected: Annotated[bytes, BeforeValidator(bytes.fromhex)]\n    gas: int\n    name: str\n\n    model_config = ConfigDict(alias_generator=to_pascal)\n\n    def to_pytest_param(self) -> Any:\n        \"\"\"\n        Convert the test vector to a tuple that can be used as a parameter in a\n        pytest test.\n        \"\"\"\n        return pytest.param(self.input, self.expected, self.gas, id=self.name)\n\n\nclass FailVector(BaseModel):\n    \"\"\"Test vector for the BLS12-381 precompiles.\"\"\"\n\n    input: Annotated[bytes, BeforeValidator(bytes.fromhex)]\n    expected_error: str\n    name: str\n\n    model_config = ConfigDict(alias_generator=to_pascal)\n\n    def to_pytest_param(self) -> Any:\n        \"\"\"\n        Convert the test vector to a tuple that can be used as a parameter in a\n        pytest test.\n        \"\"\"\n        return pytest.param(self.input, id=self.name)\n\n\nclass VectorList(RootModel):\n    \"\"\"List of test vectors for the BLS12-381 precompiles.\"\"\"\n\n    root: List[Vector | FailVector]\n\n\nVectorListAdapter = TypeAdapter(VectorList)\n\n\ndef vectors_from_file(filename: str) -> List:\n    \"\"\"Load test vectors from a file.\"\"\"\n    with open(\n        current_python_script_directory(\n            \"vectors\",\n            filename,\n        ),\n        \"rb\",\n    ) as f:\n        return [v.to_pytest_param() for v in VectorListAdapter.validate_json(f.read()).root]\n\n\ndef add_points_g1(point_a: PointG1, point_b: PointG1) -> PointG1:\n    \"\"\"\n    Add two points in G1 using standard formulas.\n\n    For points P = (x, y) and Q = (u, v), compute R = P + Q.\n    \"\"\"\n    if point_a.x == 0 and point_a.y == 0:\n        return point_b\n    if point_b.x == 0 and point_b.y == 0:\n        return point_a\n    py_ecc_point_a = (FQ(point_a.x), FQ(point_a.y))\n    py_ecc_point_b = (FQ(point_b.x), FQ(point_b.y))\n    result = add(py_ecc_point_a, py_ecc_point_b)\n    if result is None:\n        return Spec.INF_G1\n    return PointG1(int(result[0]), int(result[1]))\n\n\ndef add_points_g2(point_a: PointG2, point_b: PointG2) -> PointG2:\n    \"\"\"\n    Add two points in G2 using standard formulas.\n\n    For points P = ((x_0, x_1), (y_0, y_1)) and\n    Q = ((u_0, u_1), (v_0, v_1)), compute R = P + Q.\n    \"\"\"\n    if point_a.x == (0, 0) and point_a.y == (0, 0):\n        return point_b\n    if point_b.x == (0, 0) and point_b.y == (0, 0):\n        return point_a\n    py_ecc_point_a = (FQ2(point_a.x), FQ2(point_a.y))\n    py_ecc_point_b = (FQ2(point_b.x), FQ2(point_b.y))\n    result = add(py_ecc_point_a, py_ecc_point_b)\n    if result is None:\n        return Spec.INF_G2\n    new_x = (int(result[0].coeffs[0]), int(result[0].coeffs[1]))\n    new_y = (int(result[1].coeffs[0]), int(result[1].coeffs[1]))\n    return PointG2(new_x, new_y)\n\n\nclass BLSPointGenerator:\n    \"\"\"\n    Generator for points on the BLS12-381 curve with various properties.\n\n    Provides methods to generate points with specific properties:\n        - on the standard curve\n        - in the correct r-order subgroup or not\n        - on the curve or not\n        - on an isomorphic curve (not standard curve) but in the correct\n            r-order subgroup\n\n    Additional resource that helped the class implementation:\n    https://hackmd.io/@benjaminion/bls12-381\n    \"\"\"\n\n    # Constants for G1 curve equations\n    # The b-coefficient in the elliptic curve equation y^2 = x^3 + b\n\n    # Standard BLS12-381 G1 curve uses b=4\n    # This is a known parameter of the BLS12-381 curve specification\n    STANDARD_B_G1 = Spec.B_COEFFICIENT\n\n    # Isomorphic G1 curve uses b=24 (can be any b value for an isomorphic\n    # curve)\n    ISOMORPHIC_B_G1 = 24  # Isomorphic curve: y^2 = x^3 + 24\n\n    # Constants for G2 curve equations\n    # Standard BLS12-381 G2 curve uses b=(4,4)\n    STANDARD_B_G2 = (Spec.B_COEFFICIENT, Spec.B_COEFFICIENT)\n\n    # Isomorphic G2 curve uses b=(24,24)\n    ISOMORPHIC_B_G2 = (24, 24)\n\n    # Cofactors for G1 and G2\n    # These are known constants for the BLS12-381 curve.\n\n    # G1 cofactor h₁: (x-1)²/3 where x is the BLS parameter\n    G1_COFACTOR = 0x396C8C005555E1568C00AAAB0000AAAB\n\n    # G2 cofactor h₂: (x⁸ - 4x⁷ + 5x⁶ - 4x⁴ + 6x³ - 4x² - 4x + 13)/9\n    G2_COFACTOR = 0x5D543A95414E7F1091D50792876A202CD91DE4547085ABAA68A205B2E5A7DDFA628F1CB4D9E82EF21537E293A6691AE1616EC6E786F0C70CF1C38E31C7238E5  # noqa: E501\n\n    # Memory cache for expensive functions\n    memory = Memory(location=\".cache\", verbose=0)\n\n    @staticmethod\n    def is_on_curve_g1(x: int, y: int) -> bool:\n        \"\"\"Check if point (x,y) is on the BLS12-381 G1 curve.\"\"\"\n        x_fq = FQ(x)\n        y_fq = FQ(y)\n        return y_fq * y_fq == x_fq * x_fq * x_fq + FQ(Spec.B_COEFFICIENT)\n\n    @staticmethod\n    def is_on_curve_g2(x: tuple, y: tuple) -> bool:\n        \"\"\"Check if point (x,y) is on the BLS12-381 G2 curve.\"\"\"\n        x_fq2 = FQ2(x)\n        y_fq2 = FQ2(y)\n        return y_fq2 * y_fq2 == x_fq2 * x_fq2 * x_fq2 + FQ2(\n            (Spec.B_COEFFICIENT, Spec.B_COEFFICIENT)\n        )\n\n    @staticmethod\n    def check_in_g1_subgroup(point: PointG1) -> bool:\n        \"\"\"Check if a G1 point is in the correct r-order subgroup.\"\"\"\n        try:\n            # Check q*P = O where q is the subgroup order\n            x = FQ(point.x)\n            y = FQ(point.y)\n            result = multiply((x, y), Spec.Q)\n            # If point is in the subgroup, q*P should be infinity\n            return result is None\n        except Exception:\n            return False\n\n    @staticmethod\n    def check_in_g2_subgroup(point: PointG2) -> bool:\n        \"\"\"Check if a G2 point is in the correct r-order subgroup.\"\"\"\n        try:\n            # Check q*P = O where q is the subgroup order\n            x = FQ2(point.x)\n            y = FQ2(point.y)\n            result = multiply((x, y), Spec.Q)\n            # If point is in the subgroup, q*P should be infinity\n            return result is None\n        except Exception:\n            return False\n\n    @staticmethod\n    def sqrt_fq(a: FQ) -> Optional[FQ]:\n        \"\"\"\n        Compute smallest square root of FQ element (if it exists). Used when\n        finding valid y-coordinates for a given x-coordinate on the G1 curve.\n        \"\"\"\n        assert field_modulus % 4 == 3, \"This sqrt method requires p % 4 == 3\"\n        candidate = a ** ((field_modulus + 1) // 4)\n        if candidate * candidate == a:\n            if int(candidate) > field_modulus // 2:\n                return -candidate\n            return candidate\n        return None\n\n    @staticmethod\n    def sqrt_fq2(a: FQ2) -> Optional[FQ2]:\n        \"\"\"\n        Compute square root of FQ2 element (if it exists). Used when finding\n        valid y-coordinates for a given x-coordinate on the G2 curve.\n        \"\"\"\n        if a == FQ2([0, 0]):\n            return FQ2([0, 0])\n        candidate = a ** ((field_modulus**2 + 7) // 16)\n        if candidate * candidate == a:\n            int_c0, int_c1 = int(candidate.coeffs[0]), int(candidate.coeffs[1])\n            if int_c1 > 0 or (int_c1 == 0 and int_c0 > field_modulus // 2):\n                return -candidate\n            return candidate\n        return None\n\n    @classmethod\n    def multiply_by_cofactor(cls, point: Any, is_g2: bool = False) -> Any:\n        \"\"\"\n        Multiply a point by the cofactor to ensure it's in the correct r-order\n        subgroup. Used for creating points in the correct r-order subgroup when\n        using isomorphic curves.\n        \"\"\"\n        cofactor = cls.G2_COFACTOR if is_g2 else cls.G1_COFACTOR\n        try:\n            if is_g2:\n                # For G2, the point is given in this form: ((x0, x1), (y0, y1))\n                x = FQ2([point[0][0], point[0][1]])\n                y = FQ2([point[1][0], point[1][1]])\n                base_point = (x, y)\n                result = multiply(base_point, cofactor)\n                return (\n                    (int(result[0].coeffs[0]), int(result[0].coeffs[1])),  # type: ignore\n                    (int(result[1].coeffs[0]), int(result[1].coeffs[1])),  # type: ignore\n                )\n            else:\n                # For G1, the point is given as (x, y).\n                x = FQ(point[0])  # type: ignore\n                y = FQ(point[1])  # type: ignore\n                base_point = (x, y)\n                result = multiply(base_point, cofactor)\n                return (int(result[0]), int(result[1]))  # type: ignore\n        except Exception as e:\n            raise ValueError(\"Failed to multiply point by cofactor\") from e\n\n    @classmethod\n    @memory.cache\n    def find_g1_point_by_x(cls, x_value: int, in_subgroup: bool, on_curve: bool = True) -> PointG1:\n        \"\"\"\n        Find a G1 point with x-coordinate at or near the given value, with the\n        specified subgroup membership and curve membership.\n        \"\"\"\n        max_offset = 5000\n        isomorphic_b = cls.ISOMORPHIC_B_G1\n\n        for offset in range(max_offset + 1):\n            for direction in [1, -1]:\n                if offset == 0 and direction == -1:\n                    continue\n\n                try_x = (x_value + direction * offset) % Spec.P\n\n                try:\n                    x = FQ(try_x)\n\n                    # Calculate y² = x³ + b (standard curve or isomorphic\n                    # curve)\n                    b_value = cls.STANDARD_B_G1 if on_curve else isomorphic_b\n                    y_squared = x**3 + FQ(b_value)\n\n                    # Try to find y such that y² = x³ + b\n                    y = cls.sqrt_fq(y_squared)\n                    if y is None:\n                        continue  # No valid y exists for this x\n\n                    # Create the initial points on either curve\n                    raw_point = (int(x), int(y))\n                    raw_point2 = (int(x), Spec.P - int(y))\n\n                    # For isomorphic curve points in subgroup, apply cofactor\n                    # multiplication\n                    if not on_curve and in_subgroup:\n                        try:\n                            subgroup_point = cls.multiply_by_cofactor(raw_point, is_g2=False)\n                            point1 = PointG1(subgroup_point[0], subgroup_point[1])\n                        except ValueError:\n                            continue  # Skip if fails\n                    else:\n                        point1 = PointG1(int(x), int(y))\n                    if not on_curve and in_subgroup:\n                        try:\n                            subgroup_point2 = cls.multiply_by_cofactor(raw_point2, is_g2=False)\n                            point2 = PointG1(subgroup_point2[0], subgroup_point2[1])\n                        except ValueError:\n                            continue  # Skip if fails\n                    else:\n                        point2 = PointG1(int(x), Spec.P - int(y))\n\n                    # Verify points have the required properties\n                    point1_on_curve = cls.is_on_curve_g1(point1.x, point1.y)\n                    point2_on_curve = cls.is_on_curve_g1(point2.x, point2.y)\n                    point1_in_subgroup = cls.check_in_g1_subgroup(point1)\n                    point2_in_subgroup = cls.check_in_g1_subgroup(point2)\n\n                    # Return required point if found based on properties\n                    if on_curve == point1_on_curve and in_subgroup == point1_in_subgroup:\n                        return point1\n                    if on_curve == point2_on_curve and in_subgroup == point2_in_subgroup:\n                        return point2\n\n                except Exception:\n                    continue\n\n        raise ValueError(\n            (\n                f\"Failed to find G1 point by x={x_value},\",\n                \"in_subgroup={in_subgroup},\",\n                \"on_curve={on_curve}\",\n            )\n        )\n\n    @classmethod\n    @memory.cache\n    def find_g2_point_by_x(\n        cls, x_value: tuple, in_subgroup: bool, on_curve: bool = True\n    ) -> PointG2:\n        \"\"\"\n        Find a G2 point with x-coordinate at or near the given value, with the\n        specified subgroup membership and curve membership.\n        \"\"\"\n        max_offset = 5000\n        isomorphic_b = cls.ISOMORPHIC_B_G2\n\n        for offset in range(max_offset + 1):\n            for direction in [1, -1]:\n                if offset == 0 and direction == -1:\n                    continue\n\n                try_x0 = (x_value[0] + direction * offset) % Spec.P\n                try_x = (try_x0, x_value[1])  # Keep x1 the same\n\n                try:\n                    x = FQ2(try_x)\n\n                    # Calculate y² = x³ + b (standard curve or isomorphic\n                    # curve)\n                    b_value = cls.STANDARD_B_G2 if on_curve else isomorphic_b\n                    y_squared = x**3 + FQ2(b_value)\n\n                    # Try to find y such that y² = x³ + b\n                    y = cls.sqrt_fq2(y_squared)\n                    if y is None:\n                        continue  # No valid y exists for this x\n\n                    # Create the initial points on either curve\n                    raw_point = (\n                        (int(x.coeffs[0]), int(x.coeffs[1])),\n                        (int(y.coeffs[0]), int(y.coeffs[1])),\n                    )\n                    raw_point2 = (\n                        (int(x.coeffs[0]), int(x.coeffs[1])),\n                        (Spec.P - int(y.coeffs[0]), Spec.P - int(y.coeffs[1])),\n                    )\n\n                    # For isomorphic curve points in subgroup, apply cofactor\n                    # multiplication\n                    if not on_curve and in_subgroup:\n                        try:\n                            subgroup_point = cls.multiply_by_cofactor(raw_point, is_g2=True)\n                            point1 = PointG2(subgroup_point[0], subgroup_point[1])\n                        except ValueError:\n                            continue  # Skip if fails\n                    else:\n                        point1 = PointG2(\n                            (int(x.coeffs[0]), int(x.coeffs[1])),\n                            (int(y.coeffs[0]), int(y.coeffs[1])),\n                        )\n                    if not on_curve and in_subgroup:\n                        try:\n                            subgroup_point2 = cls.multiply_by_cofactor(raw_point2, is_g2=True)\n                            point2 = PointG2(subgroup_point2[0], subgroup_point2[1])\n                        except ValueError:\n                            continue  # Skip if fails\n                    else:\n                        point2 = PointG2(\n                            (int(x.coeffs[0]), int(x.coeffs[1])),\n                            (Spec.P - int(y.coeffs[0]), Spec.P - int(y.coeffs[1])),\n                        )\n\n                    # Verify points have the required properties\n                    point1_on_curve = cls.is_on_curve_g2(point1.x, point1.y)\n                    point2_on_curve = cls.is_on_curve_g2(point2.x, point2.y)\n                    point1_in_subgroup = cls.check_in_g2_subgroup(point1)\n                    point2_in_subgroup = cls.check_in_g2_subgroup(point2)\n\n                    # Return required point if found based on properties\n                    if on_curve == point1_on_curve and in_subgroup == point1_in_subgroup:\n                        return point1\n                    if on_curve == point2_on_curve and in_subgroup == point2_in_subgroup:\n                        return point2\n\n                except Exception:\n                    continue\n\n        raise ValueError(\n            (\n                f\"Failed to find G2 point by x={x_value},\",\n                \"in_subgroup={in_subgroup},\",\n                \"on_curve={on_curve}\",\n            )\n        )\n\n    # G1 points by x coordinate (near or on the x value)\n    @classmethod\n    def generate_g1_point_in_subgroup_by_x(cls, x_value: int) -> PointG1:\n        \"\"\"\n        G1 point that is in the r-order subgroup with x-coordinate by/on the\n        given value.\n        \"\"\"\n        return cls.find_g1_point_by_x(x_value, in_subgroup=True, on_curve=True)\n\n    @classmethod\n    def generate_g1_point_not_in_subgroup_by_x(cls, x_value: int) -> PointG1:\n        \"\"\"\n        G1 point that is NOT in the r-order subgroup with x-coordinate by/on\n        the given value.\n        \"\"\"\n        return cls.find_g1_point_by_x(x_value, in_subgroup=False, on_curve=True)\n\n    @classmethod\n    def generate_g1_point_not_on_curve_by_x(cls, x_value: int) -> PointG1:\n        \"\"\"\n        G1 point that is NOT on the curve with x-coordinate by/on the given\n        value.\n        \"\"\"\n        return cls.find_g1_point_by_x(x_value, in_subgroup=False, on_curve=False)\n\n    @classmethod\n    def generate_g1_point_on_isomorphic_curve_by_x(cls, x_value: int) -> PointG1:\n        \"\"\"\n        G1 point that is on an isomorphic curve (not standard curve) but in the\n        r-order subgroup with x-coordinate by/on the given value.\n\n        Uses cofactor multiplication to ensure the point is in the correct\n        subgroup.\n        \"\"\"\n        return cls.find_g1_point_by_x(x_value, in_subgroup=True, on_curve=False)\n\n    # G1 random points required to be generated with a seed\n    @classmethod\n    def generate_random_g1_point_in_subgroup(cls, seed: int) -> PointG1:\n        \"\"\"Generate a random G1 point that is in the r-order subgroup.\"\"\"\n        seed_bytes = seed.to_bytes(32, \"big\")\n        hash_output = hashlib.sha384(seed_bytes + b\"in_subgroup\").digest()\n        x_value = int.from_bytes(hash_output, \"big\") % Spec.P\n        return cls.generate_g1_point_in_subgroup_by_x(x_value)\n\n    @classmethod\n    def generate_random_g1_point_not_in_subgroup(cls, seed: int) -> PointG1:\n        \"\"\"Generate a random G1 point that is NOT in the r-order subgroup.\"\"\"\n        seed_bytes = seed.to_bytes(32, \"big\")\n        hash_output = hashlib.sha384(seed_bytes + b\"not_in_subgroup\").digest()\n        x_value = int.from_bytes(hash_output, \"big\") % Spec.P\n        return cls.generate_g1_point_not_in_subgroup_by_x(x_value)\n\n    @classmethod\n    def generate_random_g1_point_not_on_curve(cls, seed: int) -> PointG1:\n        \"\"\"Generate a random G1 point that is NOT on the curve.\"\"\"\n        seed_bytes = seed.to_bytes(32, \"big\")\n        hash_output = hashlib.sha384(seed_bytes + b\"not_on_curve\").digest()\n        x_value = int.from_bytes(hash_output, \"big\") % Spec.P\n        return cls.generate_g1_point_not_on_curve_by_x(x_value)\n\n    @classmethod\n    def generate_random_g1_point_on_isomorphic_curve(cls, seed: int) -> PointG1:\n        \"\"\"\n        Generate a random G1 point that is on an isomorphic curve (not standard\n        curve) but in the r-order subgroup.\n\n        Uses cofactor multiplication to ensure the point is in the correct\n        subgroup.\n        \"\"\"\n        seed_bytes = seed.to_bytes(32, \"big\")\n        hash_output = hashlib.sha384(seed_bytes + b\"on_isomorphic_curve\").digest()\n        x_value = int.from_bytes(hash_output, \"big\") % Spec.P\n        return cls.generate_g1_point_on_isomorphic_curve_by_x(x_value)\n\n    # G2 point generators - by x coordinate (near or on the x value)\n    @classmethod\n    def generate_g2_point_in_subgroup_by_x(cls, x_value: tuple) -> PointG2:\n        \"\"\"\n        G2 point that is in the r-order subgroup with x-coordinate by/on the\n        given value.\n        \"\"\"\n        return cls.find_g2_point_by_x(x_value, in_subgroup=True, on_curve=True)\n\n    @classmethod\n    def generate_g2_point_not_in_subgroup_by_x(cls, x_value: tuple) -> PointG2:\n        \"\"\"\n        G2 point that is NOT in the r-order subgroup with x-coordinate by/on\n        the given value.\n        \"\"\"\n        return cls.find_g2_point_by_x(x_value, in_subgroup=False, on_curve=True)\n\n    @classmethod\n    def generate_g2_point_not_on_curve_by_x(cls, x_value: tuple) -> PointG2:\n        \"\"\"\n        G2 point that is NOT on the curve with x-coordinate by/on the given\n        value.\n        \"\"\"\n        return cls.find_g2_point_by_x(x_value, in_subgroup=False, on_curve=False)\n\n    @classmethod\n    def generate_g2_point_on_isomorphic_curve_by_x(cls, x_value: tuple) -> PointG2:\n        \"\"\"\n        G2 point that is on an isomorphic curve (not standard curve) but in the\n        r-order subgroup with x-coordinate near the given value.\n\n        Uses cofactor multiplication to ensure the point is in the correct\n        subgroup.\n        \"\"\"\n        return cls.find_g2_point_by_x(x_value, in_subgroup=True, on_curve=False)\n\n    # G2 random points required to be generated with a seed\n    @classmethod\n    def generate_random_g2_point_in_subgroup(cls, seed: int) -> PointG2:\n        \"\"\"Generate a random G2 point that is in the r-order subgroup.\"\"\"\n        seed_bytes = seed.to_bytes(32, \"big\")\n        hash_output = hashlib.sha384(seed_bytes + b\"g2_in_subgroup\").digest()\n        hash_len = len(hash_output)\n        half_len = hash_len // 2\n        x0 = int.from_bytes(hash_output[:half_len], \"big\") % Spec.P\n        x1 = int.from_bytes(hash_output[half_len:], \"big\") % Spec.P\n        return cls.generate_g2_point_in_subgroup_by_x((x0, x1))\n\n    @classmethod\n    def generate_random_g2_point_not_in_subgroup(cls, seed: int) -> PointG2:\n        \"\"\"Generate a random G2 point that is NOT in the r-order subgroup.\"\"\"\n        seed_bytes = seed.to_bytes(32, \"big\")\n        hash_output = hashlib.sha384(seed_bytes + b\"g2_not_in_subgroup\").digest()\n        hash_len = len(hash_output)\n        half_len = hash_len // 2\n        x0 = int.from_bytes(hash_output[:half_len], \"big\") % Spec.P\n        x1 = int.from_bytes(hash_output[half_len:], \"big\") % Spec.P\n        return cls.generate_g2_point_not_in_subgroup_by_x((x0, x1))\n\n    @classmethod\n    def generate_random_g2_point_not_on_curve(cls, seed: int) -> PointG2:\n        \"\"\"Generate a random G2 point that is NOT on the curve.\"\"\"\n        seed_bytes = seed.to_bytes(32, \"big\")\n        hash_output = hashlib.sha384(seed_bytes + b\"g2_not_on_curve\").digest()\n        hash_len = len(hash_output)\n        half_len = hash_len // 2\n        x0 = int.from_bytes(hash_output[:half_len], \"big\") % Spec.P\n        x1 = int.from_bytes(hash_output[half_len:], \"big\") % Spec.P\n        return cls.generate_g2_point_not_on_curve_by_x((x0, x1))\n\n    @classmethod\n    def generate_random_g2_point_on_isomorphic_curve(cls, seed: int) -> PointG2:\n        \"\"\"\n        Generate a random G2 point that is on an isomorphic curve (not standard\n        curve) but in the r-order subgroup. Uses cofactor multiplication to\n        ensure the point is in the correct subgroup.\n        \"\"\"\n        seed_bytes = seed.to_bytes(32, \"big\")\n        hash_output = hashlib.sha384(seed_bytes + b\"g2_on_isomorphic_curve\").digest()\n        hash_len = len(hash_output)\n        half_len = hash_len // 2\n        x0 = int.from_bytes(hash_output[:half_len], \"big\") % Spec.P\n        x1 = int.from_bytes(hash_output[half_len:], \"big\") % Spec.P\n        return cls.generate_g2_point_on_isomorphic_curve_by_x((x0, x1))\n\n    # G1 map to curve 11-isogeny kernel point generator\n    @classmethod\n    def generate_g1_map_isogeny_kernel_points(cls) -> List[FP]:\n        \"\"\"\n        Return precomputed kernel points for the BLS12-381 G1 map to curve\n        function. These map to the G1 identity point `Spec.INF_G1`. They are\n        generated using sage math externally with the following script as its\n        significantly faster than using `py_ecc` (200-1000x faster).\n\n        For reference we can imagine the map to curve function as a simple 2\n        step process, where an input t value is mapped to a point on the\n        auxiliary curve via a SWU map, and then that point is mapped to the BLS\n        curve via an 11-isogeny. For reference:\n        https://eips.ethereum.org/assets/eip-2537/field_to_curve\n\n        Note we cannot use sage math directly within EEST as it is not a pure\n        python library and requires an external dependency to be installed on\n        the system machine.\n\n        Thanks to @petertdavies (Peter Miller) for the sage math script to\n        generate these points: ```sage\n        q = 0x1A0111EA397FE69A4B1BA7B6434BACD764774B84F3\n        8512BF6730D2A0F6B0F6241EABFFFEB153FFFFB9FEFFFFFFFFAAAB\n\n        Fq = GF(q)\n        E1 = EllipticCurve(Fq, (0, 4)) # BLS12-381 curve\n\n        ISO_11_A = Fq(0x144698A3B8E9433D693A02C96D4982B0EA985383EE66A8D8E\n        8981AEFD881AC98936F8DA0E0F97F5CF428082D584C1D)\n\n        ISO_11_B = Fq(0x12E2908D11688030018B12E8753EEE3B2016C1F0F24F4070A0B\n        9C14FCEF35EF55A23215A316CEAA5D1CC48E98E172BE0)\n\n        ISO_11_Z = Fq(11)\n\n        Ei = EllipticCurve(Fq, (ISO_11_A, ISO_11_B))\n\n        iso = EllipticCurveIsogeny(\n          E=E1,\n          kernel=None,\n          codomain=Ei,\n          degree=11).dual()\n\n        for (x, _) in iso.kernel_polynomial().roots():\n            discriminant = 1 - 4 / (ISO_11_A / ISO_11_B * x + 1)\n            if not discriminant.is_square():\n                continue\n\n            for sign in [1, -1]:\n                zt2 = (-1 + sign * discriminant.sqrt()) / 2\n\n                t2 = zt2 / ISO_11_Z\n\n                if t2.is_square():\n                    t = t2.sqrt()\n                    assert x == -ISO_11_B / ISO_11_A * (1 + 1 / (ISO_11_Z**2 *\n                    t**4 + ISO_11_Z * t**2))\n\n                    print(t)\n        ```\n\n        To reproduce, add the script contents to a file called `points.sage`,\n        then run `sage points.sage`!\n\n        Please see the sage math installation guide to replicate: -\n        https://doc.sagemath.org/html/en/installation/index.html\n\n        As G1 uses an 11-degree isogeny, its kernel contains exactly 11 points\n        on the auxiliary curve that maps to the point at infinity on the BLS\n        curve. This includes the point at infinity (doesn't concern us as the\n        initial SWU map can never output infinity from any int t) and 10 other\n        unique kernel points.\n\n        These 10 other kernel points correspond to 5 x-coords on the curve\n        (since each x-coord yields two points with y and -y). However, not all\n        of these kernel points can be reached by the SWU map, which is why we\n        only have 4 unique t values below.\n\n        The kernel polynomial has 5 roots (x-coords), and each root can\n        potentially yield two t values that map to kernel points via the SWU\n        function. Analysis shows that only 2 of these roots yield valid t\n        values because the other 3 roots fail either the discriminant square\n        check or the t^2 square check in the SWU inverse calculation. From\n        these 2 valid roots, we get the 4 unique t values listed below.\n\n        The roots and their properties are as follows:\n        - Root 1\n        (x=3447232547282837364692125741875673748077489238391001187748258\n        124039623697289612052402753422028380156396811587142615):\n          Fails because its discriminant is not a square.\n\n        - Root 2\n        (x=3086251397349454634226049654186198282625136597600255705376316\n        455943570106637401671127489553534256598630507009270951):\n          Fails because its discriminant is not a square.\n\n        - Root 3\n        (x=2512099095366387796245759085729510986367032014959769672734622\n        752070562589059815523018960565849753051338812932816014):\n          Has a square discriminant, but both sign options yield t^2 values\n          that are not squares.\n\n        - Root 4\n        (x=2077344747421819657086473418925078480898358265217674456436079\n        722467637536216749299440611432676849905020722484031356):\n          Yields two valid t values:\n          - 173108157456581746932131744927527835530698278615407257619875\n            8675751495027640363897075486577327802192163339186341827\n          and\n          - 861410691052762088300790587394810074303505896628048305535645\n            284922135116676755956131724844456716837983264353875219\n\n        - Root 5\n        (x=1629023065307570116876483814580399609058797608540074345321518\n        03806422383239905014872915974221245198317567396330740):\n          Yields two valid t values:\n          - 100604475543156059528179355793117172998496451568296191191139\n            8807521437683216171091013202870577238485832047490326971\n          - 15620013383368772677174003254551890147802280979855962\n            77514975439801739125527323838522116502949589758528550231396418\n\n        Additionally we also have the additive inverses of these t values,\n        which are also valid kernel (non-unique) points. These are generated\n        using the relationship: `(-t) mod p === (p - t) mod p`\n        \"\"\"\n        unique_kernel_ts = [\n            1731081574565817469321317449275278355306982786154072576198758675751495027640363897075486577327802192163339186341827,\n            861410691052762088300790587394810074303505896628048305535645284922135116676755956131724844456716837983264353875219,\n            1006044755431560595281793557931171729984964515682961911911398807521437683216171091013202870577238485832047490326971,\n            1562001338336877267717400325455189014780228097985596277514975439801739125527323838522116502949589758528550231396418,\n        ]\n        additive_inverses = [(Spec.P - t) % Spec.P for t in unique_kernel_ts]\n        return [FP(t) for t in (unique_kernel_ts + additive_inverses)]\n\n    # G2 map to curve 3-isogeny kernel point generator\n    @classmethod\n    def generate_g2_map_isogeny_kernel_points(cls) -> List[FP2]:\n        \"\"\"\n        Return precomputed kernel points for the BLS12-381 G2 map to curve\n        function. These map to the G2 identity point `Spec.INF_G2`. They are\n        generated using sage math externally with the following script as its\n        significantly faster than using `py_ecc` (200-1000x faster).\n\n        For reference we can imagine the map to curve function as a simple 2\n        step process, where an input t value is mapped to a point on the\n        auxiliary curve via a SWU map, and then that point is mapped to the\n        BLS curve via a 3-isogeny. For reference:\n        - https://eips.ethereum.org/assets/eip-2537/field_to_curve\n\n        Note we cannot use sage math directly within EEST as it is not a pure\n        python library and requires an external dependency to be installed on\n        the system machine.\n\n        ```sage\n        q = 0x1A0111EA397FE69A4B1BA7B6434BACD764774B84F38512BF6730D2A0F6B0F6241EABFFFEB153FFFFB9FEFFFFFFFFAAAB\n        Fp = GF(q)\n        R.<x> = PolynomialRing(Fp)\n        Fp2.<u> = Fp.extension(x^2 + 1)\n        E2 = EllipticCurve(Fp2, [0, 4*(1+u)])\n        ISO_3_A = 240 * u\n        ISO_3_B = 1012 * (1 + u)\n        ISO_3_Z = -(2 + u)\n        Ei = EllipticCurve(Fp2, [ISO_3_A, ISO_3_B])\n        iso = EllipticCurveIsogeny(E=E2, kernel=None, codomain=Ei, degree=3).dual()\n        x_den_k0 = 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa63 * u\n        x_den_k1 = 0xc + 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa9f * u\n        for (x, _) in iso.kernel_polynomial().roots():\n            y_squared = x^3 + ISO_3_A * x + ISO_3_B\n            is_on_curve = y_squared.is_square()\n            print(\"Root is on curve:\" if is_on_curve else \"Warning: Root is not on the curve\")\n            inv_factor = (x * ISO_3_A / -ISO_3_B) - 1\n            if inv_factor == 0:\n                continue\n            discriminant = 1 + 4 / inv_factor\n            if not discriminant.is_square():\n                continue\n            for sign in [1, -1]:\n                zt2 = (-1 + sign * discriminant.sqrt()) / 2\n                t2 = zt2 / ISO_3_Z\n                if t2.is_square():\n                    t = t2.sqrt()\n                    # Perform the proper SWU mapping\n                    tv1_num = ISO_3_Z^2 * t^4 + ISO_3_Z * t^2\n                    tv1 = 1 / tv1_num\n                    x1 = (-ISO_3_B / ISO_3_A) * (1 + tv1)\n                    gx1 = x1^3 + ISO_3_A * x1 + ISO_3_B\n                    x2 = ISO_3_Z * t^2 * x1\n                    swu_x = x1 if gx1.is_square() else x2\n                    x_den_value = swu_x^2 + x_den_k1 * swu_x + x_den_k0\n                    is_kernel_point = (x_den_value == 0)\n                    print(\"Is a kernel point:\", is_kernel_point)\n                    print(t)\n        ```\n\n        Add the script contents to a file called `points.sage`, run `sage\n        points.sage`!\n\n        Please see the sage math installation guide to replicate:\n            - https://doc.sagemath.org/html/en/installation/index.html\n\n        As G2 uses an 3-degree isogeny, its kernel contains exactly 3 points on\n        the auxiliary curve that maps to the point at infinity on the BLS\n        curve. This includes the point at infinity (doesn't concern us as the\n        initial SWU map can never output infinity from any int t) and 2 other\n        kernel points.\n\n        These 2 other kernel points correspond to 1 x-coord on the curve (since\n        each x-coord yields two points with y and -y). Note that this root\n        yields two equal t values due to specific properties of the isogeny in\n        Fp2.\n\n        However, the G2 case is different from G1 and requires additional\n        verification for y, we must check that the computed y^2 actually has a\n        square root in Fp2. Unlike G1, the G2 singular isogeny kernel\n        polynomial root does not correspond to a valid point on the auxiliary\n        curve due to the failure of the additional check.\n\n        - Root 1 (x=6*u +\n        4002409555221667393417789825735904156556882819939007885332058136124031650490837\n        864442687629129015664037894272559781): Fails because its y^2 is not a\n        square in Fp2.\n\n        Due to the failure of the first root, we have no valid kernel points in\n        G2 that map to the point at infinity on the BLS curve. This is why we\n        return an empty list here. It is kept for consistency with the G1 case,\n        and documentation purposes.\n        \"\"\"  # noqa: E501, W505\n        return []\n"
  },
  {
    "path": "tests/prague/eip2537_bls_12_381_precompiles/spec.py",
    "content": "\"\"\"Defines EIP-2537 specification constants and functions.\"\"\"\n\nfrom dataclasses import dataclass\nfrom enum import Enum, auto\nfrom typing import Callable, Sized, SupportsBytes, Tuple\n\n\n@dataclass(frozen=True)\nclass ReferenceSpec:\n    \"\"\"Defines the reference spec version and git path.\"\"\"\n\n    git_path: str\n    version: str\n\n\nref_spec_2537 = ReferenceSpec(\"EIPS/eip-2537.md\", \"c561ec1426fe5ec470eade499a0bd4174f270583\")\n\n\nclass BytesConcatenation(SupportsBytes, Sized):\n    \"\"\"A class that can be concatenated with bytes.\"\"\"\n\n    def __len__(self) -> int:\n        \"\"\"Return length of the object when converted to bytes.\"\"\"\n        return len(bytes(self))\n\n    def __add__(self, other: bytes | SupportsBytes) -> bytes:\n        \"\"\"Concatenates the object with another bytes object.\"\"\"\n        return bytes(self) + bytes(other)\n\n    def __radd__(self, other: bytes | SupportsBytes) -> bytes:\n        \"\"\"Concatenates the object with another bytes object.\"\"\"\n        return bytes(other) + bytes(self)\n\n\n@dataclass(frozen=True)\nclass FP(BytesConcatenation):\n    \"\"\"Dataclass that defines a single element of Fp.\"\"\"\n\n    x: int = 0\n\n    def __bytes__(self) -> bytes:\n        \"\"\"Convert field element to bytes.\"\"\"\n        return self.x.to_bytes(64, byteorder=\"big\")\n\n\n@dataclass(frozen=True)\nclass PointG1(BytesConcatenation):\n    \"\"\"Dataclass that defines a single point in G1.\"\"\"\n\n    x: int = 0\n    y: int = 0\n\n    def __bytes__(self) -> bytes:\n        \"\"\"Convert point to bytes.\"\"\"\n        return self.x.to_bytes(64, byteorder=\"big\") + self.y.to_bytes(64, byteorder=\"big\")\n\n    def __neg__(self) -> \"PointG1\":\n        \"\"\"Negates the point.\"\"\"\n        return PointG1(self.x, Spec.P - self.y)\n\n\n@dataclass(frozen=True)\nclass FP2(BytesConcatenation):\n    \"\"\"Dataclass that defines a single element of Fp2.\"\"\"\n\n    x: Tuple[int, int] = (0, 0)\n\n    def __bytes__(self) -> bytes:\n        \"\"\"Convert field element to bytes.\"\"\"\n        return self.x[0].to_bytes(64, byteorder=\"big\") + self.x[1].to_bytes(64, byteorder=\"big\")\n\n\n@dataclass(frozen=True)\nclass PointG2(BytesConcatenation):\n    \"\"\"Dataclass that defines a single point in G2.\"\"\"\n\n    x: Tuple[int, int] = (0, 0)\n    y: Tuple[int, int] = (0, 0)\n\n    def __bytes__(self) -> bytes:\n        \"\"\"Convert point to bytes.\"\"\"\n        return (\n            self.x[0].to_bytes(64, byteorder=\"big\")\n            + self.x[1].to_bytes(64, byteorder=\"big\")\n            + self.y[0].to_bytes(64, byteorder=\"big\")\n            + self.y[1].to_bytes(64, byteorder=\"big\")\n        )\n\n    def __neg__(self) -> \"PointG2\":\n        \"\"\"Negates the point.\"\"\"\n        return PointG2(self.x, (Spec.P - self.y[0], Spec.P - self.y[1]))\n\n\n@dataclass(frozen=True)\nclass Scalar(BytesConcatenation):\n    \"\"\"Dataclass that defines a single scalar.\"\"\"\n\n    x: int = 0\n\n    def __bytes__(self) -> bytes:\n        \"\"\"Convert scalar to bytes.\"\"\"\n        return self.x.to_bytes(32, byteorder=\"big\")\n\n\n@dataclass(frozen=True)\nclass Spec:\n    \"\"\"\n    Parameters from the EIP-2537 specifications as defined at\n    https://eips.ethereum.org/EIPS/eip-2537.\n    \"\"\"\n\n    # Addresses\n    G1ADD = 0x0B\n    G1MSM = 0x0C\n    G2ADD = 0x0D\n    G2MSM = 0x0E\n    PAIRING = 0x0F\n    MAP_FP_TO_G1 = 0x10\n    MAP_FP2_TO_G2 = 0x11\n\n    # Gas constants\n    G1ADD_GAS = 375\n    G1MUL_GAS = 12_000\n    G2ADD_GAS = 600\n    G2MUL_GAS = 22_500\n    MAP_FP_TO_G1_GAS = 5_500\n    MAP_FP2_TO_G2_GAS = 23_800\n    PAIRING_BASE_GAS = 37_700\n    PAIRING_PER_PAIR_GAS = 32_600\n\n    # Other constants\n    B_COEFFICIENT = 0x04\n    X = -0xD201000000010000\n    Q = X**4 - X**2 + 1\n    P = (X - 1) ** 2 * Q // 3 + X\n    LEN_PER_PAIR = len(PointG1() + PointG2())\n    MSM_MULTIPLIER = 1_000\n    MAX_FP_BIT_SET = 1 << (48 * 8)\n    # fmt: off\n    G1MSM_DISCOUNT_TABLE = [\n        0,\n        1000, 949, 848, 797, 764, 750, 738, 728, 719, 712, 705, 698, 692, 687, 682, 677, 673, 669,\n        665, 661, 658, 654, 651, 648, 645, 642, 640, 637, 635, 632, 630, 627, 625, 623, 621, 619,\n        617, 615, 613, 611, 609, 608, 606, 604, 603, 601, 599, 598, 596, 595, 593, 592, 591, 589,\n        588, 586, 585, 584, 582, 581, 580, 579, 577, 576, 575, 574, 573, 572, 570, 569, 568, 567,\n        566, 565, 564, 563, 562, 561, 560, 559, 558, 557, 556, 555, 554, 553, 552, 551, 550, 549,\n        548, 547, 547, 546, 545, 544, 543, 542, 541, 540, 540, 539, 538, 537, 536, 536, 535, 534,\n        533, 532, 532, 531, 530, 529, 528, 528, 527, 526, 525, 525, 524, 523, 522, 522, 521, 520,\n        520, 519\n    ]\n    G2MSM_DISCOUNT_TABLE = [\n        0,\n        1000, 1000, 923, 884, 855, 832, 812, 796, 782, 770, 759, 749, 740, 732, 724, 717, 711, 704,\n        699, 693, 688, 683, 679, 674, 670, 666, 663, 659, 655, 652, 649, 646, 643, 640, 637, 634,\n        632, 629, 627, 624, 622, 620, 618, 615, 613, 611, 609, 607, 606, 604, 602, 600, 598, 597,\n        595, 593, 592, 590, 589, 587, 586, 584, 583, 582, 580, 579, 578, 576, 575, 574, 573, 571,\n        570, 569, 568, 567, 566, 565, 563, 562, 561, 560, 559, 558, 557, 556, 555, 554, 553, 552,\n        552, 551, 550, 549, 548, 547, 546, 545, 545, 544, 543, 542, 541, 541, 540, 539, 538, 537,\n        537, 536, 535, 535, 534, 533, 532, 532, 531, 530, 530, 529, 528, 528, 527, 526, 526, 525,\n        524, 524\n    ]\n    # fmt: on\n\n    # Test constants from\n    # https://github.com/ethereum/bls12-381-tests/tree/eip-2537\n    P1 = PointG1(  # random point in G1\n        0x112B98340EEE2777CC3C14163DEA3EC97977AC3DC5C70DA32E6E87578F44912E902CCEF9EFE28D4A78B8999DFBCA9426,\n        0x186B28D92356C4DFEC4B5201AD099DBDEDE3781F8998DDF929B4CD7756192185CA7B8F4EF7088F813270AC3D48868A21,\n    )\n    G1 = PointG1(\n        0x17F1D3A73197D7942695638C4FA9AC0FC3688C4F9774B905A14E3A3F171BAC586C55E83FF97A1AEFFB3AF00ADB22C6BB,\n        0x8B3F481E3AAA0F1A09E30ED741D8AE4FCF5E095D5D00AF600DB18CB2C04B3EDD03CC744A2888AE40CAA232946C5E7E1,\n    )\n    # point at infinity in G1\n    INF_G1 = PointG1(0, 0)\n    # random point in G2\n    P2 = PointG2(\n        (\n            0x103121A2CEAAE586D240843A398967325F8EB5A93E8FEA99B62B9F88D8556C80DD726A4B30E84A36EEABAF3592937F27,\n            0x86B990F3DA2AEAC0A36143B7D7C824428215140DB1BB859338764CB58458F081D92664F9053B50B3FBD2E4723121B68,\n        ),\n        (\n            0xF9E7BA9A86A8F7624AA2B42DCC8772E1AF4AE115685E60ABC2C9B90242167ACEF3D0BE4050BF935EED7C3B6FC7BA77E,\n            0xD22C3652D0DC6F0FC9316E14268477C2049EF772E852108D269D9C38DBA1D4802E8DAE479818184C08F9A569D878451,\n        ),\n    )\n    G2 = PointG2(\n        (\n            0x24AA2B2F08F0A91260805272DC51051C6E47AD4FA403B02B4510B647AE3D1770BAC0326A805BBEFD48056C8C121BDB8,\n            0x13E02B6052719F607DACD3A088274F65596BD0D09920B61AB5DA61BBDC7F5049334CF11213945D57E5AC7D055D042B7E,\n        ),\n        (\n            0xCE5D527727D6E118CC9CDC6DA2E351AADFD9BAA8CBDD3A76D429A695160D12C923AC9CC3BACA289E193548608B82801,\n            0x606C4A02EA734CC32ACD2B02BC28B99CB3E287E85A763AF267492AB572E99AB3F370D275CEC1DA1AAA9075FF05F79BE,\n        ),\n    )\n    # point at infinity in G2\n    INF_G2 = PointG2((0, 0), (0, 0))\n\n    # Other test constants\n    # point not in subgroup in curve Fp\n    P1_NOT_IN_SUBGROUP = PointG1(0, 2)\n    P1_NOT_IN_SUBGROUP_TIMES_2 = PointG1(0, P - 2)\n    # point not in subgroup in curve Fp2\n    P2_NOT_IN_SUBGROUP = PointG2(\n        (1, 1),\n        (\n            0x17FAA6201231304F270B858DAD9462089F2A5B83388E4B10773ABC1EEF6D193B9FCE4E8EA2D9D28E3C3A315AA7DE14CA,\n            0xCC12449BE6AC4E7F367E7242250427C4FB4C39325D3164AD397C1837A90F0EA1A534757DF374DD6569345EB41ED76E,\n        ),\n    )\n    P2_NOT_IN_SUBGROUP_TIMES_2 = PointG2(\n        (\n            0x919F97860ECC3E933E3477FCAC0E2E4FCC35A6E886E935C97511685232456263DEF6665F143CCCCB44C733333331553,\n            0x18B4376B50398178FA8D78ED2654B0FFD2A487BE4DBE6B69086E61B283F4E9D58389CCCB8EDC99995718A66666661555,\n        ),\n        (\n            0x26898F699C4B07A405AB4183A10B47F923D1C0FDA1018682DD2CCC88968C1B90D44534D6B9270CF57F8DC6D4891678A,\n            0x3270414330EAD5EC92219A03A24DFA059DBCBE610868BE1851CC13DAC447F60B40D41113FD007D3307B19ADD4B0F061,\n        ),\n    )\n\n    # Pairing precompile results\n    PAIRING_TRUE = int.to_bytes(1, length=32, byteorder=\"big\")\n    PAIRING_FALSE = int.to_bytes(0, length=32, byteorder=\"big\")\n\n    # Returned on precompile failure\n    INVALID = b\"\"\n\n\nclass BLS12Group(Enum):\n    \"\"\"Helper enum to specify the BLS12 group in discount table helpers.\"\"\"\n\n    G1 = auto()\n    G2 = auto()\n\n\ndef msm_discount(group: BLS12Group, k: int) -> int:\n    \"\"\"Return the discount for the G1MSM and G2MSM precompiles.\"\"\"\n    assert k >= 1, \"k must be greater than or equal to 1\"\n    match group:\n        case BLS12Group.G1:\n            return Spec.G1MSM_DISCOUNT_TABLE[min(k, 128)]\n        case BLS12Group.G2:\n            return Spec.G2MSM_DISCOUNT_TABLE[min(k, 128)]\n        case _:\n            raise ValueError(f\"Unsupported group: {group}\")\n\n\ndef msm_gas_func_gen(\n    group: BLS12Group, len_per_pair: int, multiplication_cost: int\n) -> Callable[[int], int]:\n    \"\"\"\n    Generate a function that calculates the gas cost for the G1MSM and G2MSM\n    precompiles.\n    \"\"\"\n\n    def msm_gas(input_length: int) -> int:\n        \"\"\"Calculate gas cost for the G1MSM and G2MSM precompiles.\"\"\"\n        k = input_length // len_per_pair\n        if k == 0:\n            return 0\n\n        gas_cost = k * multiplication_cost * msm_discount(group, k) // Spec.MSM_MULTIPLIER\n\n        return gas_cost\n\n    return msm_gas\n\n\ndef pairing_gas(input_length: int) -> int:\n    \"\"\"Calculate gas cost for the PAIRING precompile.\"\"\"\n    k = input_length // Spec.LEN_PER_PAIR\n    return (Spec.PAIRING_PER_PAIR_GAS * k) + Spec.PAIRING_BASE_GAS\n\n\nGAS_CALCULATION_FUNCTION_MAP = {\n    Spec.G1ADD: lambda _: Spec.G1ADD_GAS,\n    Spec.G1MSM: msm_gas_func_gen(BLS12Group.G1, len(PointG1() + Scalar()), Spec.G1MUL_GAS),\n    Spec.G2ADD: lambda _: Spec.G2ADD_GAS,\n    Spec.G2MSM: msm_gas_func_gen(BLS12Group.G2, len(PointG2() + Scalar()), Spec.G2MUL_GAS),\n    Spec.PAIRING: pairing_gas,\n    Spec.MAP_FP_TO_G1: lambda _: Spec.MAP_FP_TO_G1_GAS,\n    Spec.MAP_FP2_TO_G2: lambda _: Spec.MAP_FP2_TO_G2_GAS,\n}\n"
  },
  {
    "path": "tests/prague/eip2537_bls_12_381_precompiles/test_bls12_g1add.py",
    "content": "\"\"\"\nTests BLS12_G1ADD precompile.\n\nTests the BLS12_G1ADD precompile implementation from [EIP-2537:\nPrecompile for BLS12-381 curve operations]\n(https://eips.ethereum.org/EIPS/eip-2537).\n\"\"\"\n\nimport pytest\n\nfrom ethereum_test_tools import Alloc, Environment, StateTestFiller, Transaction\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom .conftest import G1_POINTS_NOT_IN_SUBGROUP, G1_POINTS_NOT_ON_CURVE\nfrom .helpers import add_points_g1, vectors_from_file\nfrom .spec import PointG1, Spec, ref_spec_2537\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_2537.git_path\nREFERENCE_SPEC_VERSION = ref_spec_2537.version\n\npytestmark = [\n    pytest.mark.valid_from(\"Prague\"),\n    pytest.mark.parametrize(\"precompile_address\", [Spec.G1ADD], ids=[\"\"]),\n]\n\n\n@pytest.mark.parametrize(\n    \"input_data,expected_output,vector_gas_value\",\n    # Test vectors from the reference spec (from the cryptography team)\n    vectors_from_file(\"add_G1_bls.json\")\n    + [\n        # Identity (infinity) element test cases. Checks that any point added\n        # to the identity element (INF) equals itself.\n        pytest.param(\n            Spec.G1 + Spec.INF_G1,\n            Spec.G1,\n            None,\n            id=\"generator_plus_inf\",\n        ),\n        pytest.param(\n            Spec.INF_G1 + Spec.G1,\n            Spec.G1,\n            None,\n            id=\"inf_plus_generator\",\n        ),\n        pytest.param(\n            Spec.INF_G1 + Spec.INF_G1,\n            Spec.INF_G1,\n            None,\n            id=\"inf_plus_inf\",\n        ),\n        pytest.param(\n            Spec.INF_G1 + Spec.P1,\n            Spec.P1,\n            None,\n            id=\"inf_plus_point\",\n        ),\n        # Basic arithmetic properties test cases.\n        # Checks fundamental properties of the BLS12-381 curve.\n        pytest.param(\n            Spec.P1 + (-Spec.P1),\n            Spec.INF_G1,\n            None,\n            id=\"point_plus_neg_point\",\n        ),\n        pytest.param(\n            Spec.G1 + (-Spec.G1),\n            Spec.INF_G1,\n            None,\n            id=\"generator_plus_neg_point\",\n        ),\n        pytest.param(\n            Spec.P1 + Spec.G1,\n            add_points_g1(Spec.G1, Spec.P1),\n            None,\n            id=\"commutative_check_a\",\n        ),\n        pytest.param(\n            Spec.G1 + Spec.P1,\n            add_points_g1(Spec.P1, Spec.G1),\n            None,\n            id=\"commutative_check_b\",\n        ),\n        pytest.param(\n            Spec.P1 + Spec.P1,\n            add_points_g1(Spec.P1, Spec.P1),\n            None,\n            id=\"point_doubling\",\n        ),\n        pytest.param(  # (P + G) + P = P + (G + P)\n            add_points_g1(Spec.P1, Spec.G1) + Spec.P1,\n            add_points_g1(Spec.P1, add_points_g1(Spec.G1, Spec.P1)),\n            None,\n            id=\"associativity_check\",\n        ),\n        pytest.param(  # -(P+G) = (-P)+(-G)\n            (-(add_points_g1(Spec.P1, Spec.G1))) + Spec.INF_G1,\n            add_points_g1((-Spec.P1), (-Spec.G1)),\n            None,\n            id=\"negation_of_sum\",\n        ),\n        pytest.param(\n            add_points_g1(Spec.G1, Spec.G1) + add_points_g1(Spec.P1, Spec.P1),\n            add_points_g1(add_points_g1(Spec.G1, Spec.G1), add_points_g1(Spec.P1, Spec.P1)),\n            None,\n            id=\"double_generator_plus_double_point\",\n        ),\n        pytest.param(\n            add_points_g1(Spec.G1, Spec.G1) + add_points_g1(Spec.G1, Spec.G1),\n            add_points_g1(add_points_g1(Spec.G1, Spec.G1), add_points_g1(Spec.G1, Spec.G1)),\n            None,\n            id=\"double_generator_plus_double_generator\",\n        ),\n        pytest.param(  # (x,y) + (x,-y) = INF\n            PointG1(Spec.P1.x, Spec.P1.y) + PointG1(Spec.P1.x, Spec.P - Spec.P1.y),\n            Spec.INF_G1,\n            None,\n            id=\"point_plus_reflected_point\",\n        ),\n        # Not in the r-order subgroup test cases. Checks that any point on the\n        # curve but not in the subgroup is used for operations.\n        pytest.param(\n            Spec.P1_NOT_IN_SUBGROUP + Spec.P1_NOT_IN_SUBGROUP,\n            Spec.P1_NOT_IN_SUBGROUP_TIMES_2,\n            None,\n            id=\"non_sub_plus_non_sub\",\n        ),\n        pytest.param(  # `P1_NOT_IN_SUBGROUP` has an small order subgroup of 3:\n            # 3P = INF.\n            Spec.P1_NOT_IN_SUBGROUP + Spec.P1_NOT_IN_SUBGROUP_TIMES_2,\n            Spec.INF_G1,\n            None,\n            id=\"non_sub_order_3_to_inf\",\n        ),\n        pytest.param(\n            Spec.P1_NOT_IN_SUBGROUP + Spec.INF_G1,\n            Spec.P1_NOT_IN_SUBGROUP,\n            None,\n            id=\"non_sub_plus_inf\",\n        ),\n        pytest.param(\n            Spec.G1 + Spec.P1_NOT_IN_SUBGROUP,\n            add_points_g1(Spec.G1, Spec.P1_NOT_IN_SUBGROUP),\n            None,\n            id=\"generator_plus_non_sub\",\n        ),\n        pytest.param(\n            Spec.P1_NOT_IN_SUBGROUP + (-Spec.P1_NOT_IN_SUBGROUP),\n            Spec.INF_G1,\n            None,\n            id=\"non_sub_plus_neg_non_sub\",\n        ),\n        pytest.param(\n            Spec.P1 + Spec.P1_NOT_IN_SUBGROUP,\n            add_points_g1(Spec.P1, Spec.P1_NOT_IN_SUBGROUP),\n            None,\n            id=\"in_sub_plus_non_sub\",\n        ),\n        pytest.param(\n            Spec.P1_NOT_IN_SUBGROUP_TIMES_2 + Spec.P1,\n            add_points_g1(Spec.P1_NOT_IN_SUBGROUP_TIMES_2, Spec.P1),\n            None,\n            id=\"doubled_non_sub_plus_in_sub\",\n        ),\n        pytest.param(\n            Spec.P1_NOT_IN_SUBGROUP_TIMES_2 + (-Spec.P1_NOT_IN_SUBGROUP),\n            Spec.P1_NOT_IN_SUBGROUP,\n            None,\n            id=\"doubled_non_sub_plus_neg\",\n        ),\n        # More not in the r-order subgroup test cases, but using random\n        # generated points.\n        pytest.param(\n            G1_POINTS_NOT_IN_SUBGROUP[0] + Spec.P1,\n            add_points_g1(G1_POINTS_NOT_IN_SUBGROUP[0], Spec.P1),\n            None,\n            id=\"rand_not_in_subgroup_0_plus_point\",\n        ),\n        pytest.param(\n            G1_POINTS_NOT_IN_SUBGROUP[1] + Spec.G1,\n            add_points_g1(G1_POINTS_NOT_IN_SUBGROUP[1], Spec.G1),\n            None,\n            id=\"rand_not_in_subgroup_1_plus_generator\",\n        ),\n        pytest.param(\n            G1_POINTS_NOT_IN_SUBGROUP[2] + Spec.INF_G1,\n            G1_POINTS_NOT_IN_SUBGROUP[2],\n            None,\n            id=\"rand_not_in_subgroup_2_plus_inf\",\n        ),\n        pytest.param(\n            G1_POINTS_NOT_IN_SUBGROUP[3] + (-G1_POINTS_NOT_IN_SUBGROUP[3]),\n            Spec.INF_G1,\n            None,\n            id=\"rand_not_in_subgroup_3_plus_neg_self\",\n        ),\n        pytest.param(\n            G1_POINTS_NOT_IN_SUBGROUP[4] + G1_POINTS_NOT_IN_SUBGROUP[0],\n            add_points_g1(G1_POINTS_NOT_IN_SUBGROUP[4], G1_POINTS_NOT_IN_SUBGROUP[0]),\n            None,\n            id=\"rand_not_in_subgroup_4_plus_0\",\n        ),\n    ],\n)\ndef test_valid(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"Test the BLS12_G1ADD precompile.\"\"\"\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"input_data\",\n    # Test vectors from the reference spec (from the cryptography team)\n    vectors_from_file(\"fail-add_G1_bls.json\")\n    + [\n        pytest.param(\n            PointG1(0, 1) + Spec.INF_G1,\n            id=\"invalid_point_a_1\",\n        ),\n        pytest.param(\n            PointG1(Spec.P1.x, Spec.P1.y - 1) + Spec.INF_G1,\n            id=\"invalid_point_a_2\",\n        ),\n        pytest.param(\n            PointG1(Spec.P1.x, Spec.P1.y + 1) + Spec.INF_G1,\n            id=\"invalid_point_a_3\",\n        ),\n        pytest.param(\n            PointG1(Spec.P1.x, Spec.P1.x) + Spec.INF_G1,\n            id=\"invalid_point_a_4\",\n        ),\n        pytest.param(\n            PointG1(Spec.P1.x, Spec.P1.y - 1) + Spec.P1,\n            id=\"invalid_point_a_5\",\n        ),\n        pytest.param(\n            Spec.INF_G1 + PointG1(0, 1),\n            id=\"invalid_point_b_1\",\n        ),\n        pytest.param(\n            Spec.INF_G1 + PointG1(Spec.P1.x, Spec.P1.y - 1),\n            id=\"invalid_point_b_2\",\n        ),\n        pytest.param(\n            Spec.INF_G1 + PointG1(Spec.P1.x, Spec.P1.y + 1),\n            id=\"invalid_point_b_3\",\n        ),\n        pytest.param(\n            Spec.INF_G1 + PointG1(Spec.P1.x, Spec.P1.x),\n            id=\"invalid_point_b_4\",\n        ),\n        pytest.param(\n            Spec.P1 + PointG1(Spec.P1.x, Spec.P1.y - 1),\n            id=\"invalid_point_b_5\",\n        ),\n        pytest.param(\n            PointG1(Spec.P, 0) + Spec.INF_G1,\n            id=\"a_x_equal_to_p\",\n        ),\n        pytest.param(\n            Spec.INF_G1 + PointG1(Spec.P, 0),\n            id=\"b_x_equal_to_p\",\n        ),\n        pytest.param(\n            PointG1(0, Spec.P) + Spec.INF_G1,\n            id=\"a_y_equal_to_p\",\n        ),\n        pytest.param(\n            Spec.INF_G1 + PointG1(0, Spec.P),\n            id=\"b_y_equal_to_p\",\n        ),\n        pytest.param(\n            PointG1(Spec.P1.x + Spec.P, Spec.P1.y) + Spec.G1,\n            id=\"a_x_above_p\",\n        ),\n        pytest.param(\n            PointG1(Spec.P1.x, Spec.P1.y + Spec.P) + Spec.G1,\n            id=\"a_y_above_p\",\n        ),\n        pytest.param(\n            Spec.P1 + PointG1(Spec.G1.x + Spec.P, Spec.G1.y),\n            id=\"b_x_above_p\",\n        ),\n        pytest.param(\n            Spec.P1 + PointG1(Spec.G1.x, Spec.G1.y + Spec.P),\n            id=\"b_y_above_p\",\n        ),\n        pytest.param(\n            b\"\\x80\" + bytes(Spec.INF_G1)[1:] + Spec.INF_G1,\n            id=\"invalid_encoding_a\",\n        ),\n        pytest.param(\n            Spec.INF_G1 + b\"\\x80\" + bytes(Spec.INF_G1)[1:],\n            id=\"invalid_encoding_b\",\n        ),\n        pytest.param(\n            (Spec.INF_G1 + PointG1(Spec.P1.x, Spec.P1.x))[:-1],\n            id=\"input_too_short\",\n        ),\n        pytest.param(\n            b\"\\x00\" + (Spec.INF_G1 + PointG1(Spec.P1.x, Spec.P1.x)),\n            id=\"input_too_long\",\n        ),\n        pytest.param(\n            b\"\",\n            id=\"zero_length_input\",\n        ),\n        pytest.param(\n            Spec.G1,\n            id=\"only_one_point\",\n        ),\n        pytest.param(\n            Spec.G2 + Spec.G2,\n            id=\"g2_points\",\n        ),\n        pytest.param(\n            PointG1(Spec.P + 1, 0) + Spec.INF_G1,\n            id=\"x_above_modulus\",\n        ),\n        pytest.param(  # Point on curve y^2 = x^3 + 5.\n            PointG1(0x01, 0x07) + Spec.INF_G1,\n            id=\"point_on_wrong_curve_b=5\",\n        ),\n        pytest.param(\n            PointG1(Spec.P1.y, Spec.P1.x) + Spec.INF_G1,\n            id=\"swapped_coordinates\",\n        ),\n        pytest.param(\n            b\"\\x00\" * 96,\n            id=\"all_zero_96_bytes\",\n        ),\n        pytest.param(\n            b\"\\xff\" + b\"\\x00\" * 47 + b\"\\xff\" + b\"\\x00\" * 47,\n            id=\"bad_inf_flag\",\n        ),\n        pytest.param(\n            b\"\\xc0\" + b\"\\x00\" * 47 + b\"\\xc0\" + b\"\\x00\" * 47,\n            id=\"comp_instead_of_uncomp\",\n        ),\n        pytest.param(\n            PointG1(Spec.P1.x | Spec.MAX_FP_BIT_SET, Spec.P1.y) + Spec.P1,\n            id=\"non_zero_byte_16_boundary_violation_x\",\n        ),\n        pytest.param(\n            PointG1(Spec.P1.x, Spec.P1.y | Spec.MAX_FP_BIT_SET) + Spec.P1,\n            id=\"non_zero_byte_16_boundary_violation_y\",\n        ),\n        # Not on the curve cases using random generated points.\n        pytest.param(\n            G1_POINTS_NOT_ON_CURVE[0] + Spec.INF_G1,\n            id=\"rand_not_on_curve_0_plus_inf\",\n        ),\n        pytest.param(\n            G1_POINTS_NOT_ON_CURVE[1] + Spec.P1,\n            id=\"rand_not_on_curve_1_plus_point\",\n        ),\n        pytest.param(\n            G1_POINTS_NOT_ON_CURVE[2] + G1_POINTS_NOT_IN_SUBGROUP[0],\n            id=\"rand_not_on_curve_2_plus_not_in_subgroup_0\",\n        ),\n        pytest.param(\n            G1_POINTS_NOT_ON_CURVE[3] + G1_POINTS_NOT_ON_CURVE[4],\n            id=\"rand_not_on_curve_3_plus_4\",\n        ),\n        pytest.param(\n            Spec.INF_G1 + G1_POINTS_NOT_ON_CURVE[0],\n            id=\"inf_plus_rand_not_on_curve_0\",\n        ),\n        pytest.param(\n            Spec.P1 + G1_POINTS_NOT_ON_CURVE[1],\n            id=\"point_plus_rand_not_on_curve_1\",\n        ),\n        pytest.param(\n            G1_POINTS_NOT_IN_SUBGROUP[2] + G1_POINTS_NOT_ON_CURVE[2],\n            id=\"rand_not_in_subgroup_2_plus_rand_not_on_curve_2\",\n        ),\n    ],\n)\n@pytest.mark.parametrize(\"expected_output\", [Spec.INVALID], ids=[\"\"])\n@pytest.mark.slow()\ndef test_invalid(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"Negative tests for the BLS12_G1ADD precompile.\"\"\"\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"input_data,expected_output,precompile_gas_modifier\",\n    [\n        pytest.param(\n            Spec.INF_G1 + Spec.INF_G1,\n            Spec.INF_G1,\n            1,\n            id=\"extra_gas\",\n        ),\n        pytest.param(\n            Spec.INF_G1 + Spec.INF_G1,\n            Spec.INVALID,\n            -1,\n            id=\"insufficient_gas\",\n        ),\n    ],\n)\ndef test_gas(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"Test the BLS12_G1ADD precompile gas requirements.\"\"\"\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"call_opcode\",  # Note `Op.CALL` is used for all the `test_valid` cases.\n    [\n        Op.STATICCALL,\n        Op.DELEGATECALL,\n        Op.CALLCODE,\n    ],\n)\n@pytest.mark.parametrize(\n    \"input_data,expected_output\",\n    [\n        pytest.param(\n            Spec.INF_G1 + Spec.INF_G1,\n            Spec.INF_G1,\n            id=\"inf_plus_inf\",\n        ),\n        pytest.param(\n            Spec.INF_G1 + Spec.G1,\n            Spec.G1,\n            id=\"inf_plus_generator\",\n        ),\n    ],\n)\ndef test_call_types(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"Test the BLS12_G1ADD precompile using different call types.\"\"\"\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n"
  },
  {
    "path": "tests/prague/eip2537_bls_12_381_precompiles/test_bls12_g1msm.py",
    "content": "\"\"\"\nTest the BLS12_G1MSM precompile.\n\nTest the BLS12_G1MSM precompile introduced in\n[EIP-2537: Precompile for BLS12-381 curve operations](https://eips.ethereum.org/EIPS/eip-2537).\n\"\"\"\n\nimport pytest\n\nfrom ethereum_test_tools import Alloc, Environment, StateTestFiller, Transaction\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom .conftest import G1_POINTS_NOT_IN_SUBGROUP, G1_POINTS_NOT_ON_CURVE\nfrom .helpers import PointG1, vectors_from_file\nfrom .spec import Scalar, Spec, ref_spec_2537\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_2537.git_path\nREFERENCE_SPEC_VERSION = ref_spec_2537.version\n\npytestmark = [\n    pytest.mark.valid_from(\"Prague\"),\n    pytest.mark.parametrize(\"precompile_address\", [Spec.G1MSM], ids=[\"\"]),\n]\n\n\n@pytest.mark.parametrize(\n    \"input_data,expected_output,vector_gas_value\",\n    # Test vectors from the reference spec (from the cryptography team)\n    vectors_from_file(\"msm_G1_bls.json\")\n    + [\n        # Multiple pair scalar multiplication cases.\n        pytest.param(\n            Spec.G1 + Scalar(1) + Spec.INF_G1 + Scalar(1),\n            Spec.G1,\n            None,\n            id=\"g1_plus_inf\",\n        ),\n        pytest.param(\n            Spec.G1 + Scalar(0) + Spec.P1 + Scalar(0) + Spec.INF_G1 + Scalar(0),\n            Spec.INF_G1,\n            None,\n            id=\"all_zero_scalars\",\n        ),\n        pytest.param(\n            Spec.G1 + Scalar(1) + (-Spec.G1) + Scalar(1),\n            Spec.INF_G1,\n            None,\n            id=\"sum_to_identity_opposite\",\n        ),\n        pytest.param(\n            Spec.G1 + Scalar(Spec.Q - 1) + Spec.G1 + Scalar(1),\n            Spec.INF_G1,\n            None,\n            id=\"scalars_sum_to_q\",\n        ),\n        pytest.param(\n            Spec.G1 + Scalar(1) + Spec.G1 + Scalar(0) + Spec.INF_G1 + Scalar(5),\n            Spec.G1,\n            None,\n            id=\"combined_basic_cases\",\n        ),\n        pytest.param(\n            Spec.G1 + Scalar(1) + Spec.INF_G1 + Scalar(500),\n            Spec.G1,\n            None,\n            id=\"identity_with_large_scalar\",\n        ),\n        pytest.param(\n            Spec.G1 + Scalar(0) + Spec.P1 + Scalar(0) + (-Spec.G1) + Scalar(0),\n            Spec.INF_G1,\n            None,\n            id=\"multiple_points_zero_scalar\",\n        ),\n        # Cases with maximum discount table (test vector for gas cost\n        # calculation)\n        pytest.param(\n            (Spec.P1 + Scalar(Spec.Q)) * (len(Spec.G1MSM_DISCOUNT_TABLE) - 1),\n            Spec.INF_G1,\n            None,\n            id=\"max_discount\",\n        ),\n        pytest.param(\n            (Spec.P1 + Scalar(Spec.Q)) * len(Spec.G1MSM_DISCOUNT_TABLE),\n            Spec.INF_G1,\n            None,\n            id=\"max_discount_plus_1\",\n        ),\n    ],\n)\n@pytest.mark.slow()\ndef test_valid(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"Test valid calls to the BLS12_G1MSM precompile.\"\"\"\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"input_data\",\n    # Test vectors from the reference spec (from the cryptography team)\n    vectors_from_file(\"fail-msm_G1_bls.json\")\n    + [\n        pytest.param(\n            Spec.P1_NOT_IN_SUBGROUP + Scalar(Spec.Q),\n            id=\"not_in_subgroup_1_pos_0\",\n        ),\n        pytest.param(\n            Spec.P1_NOT_IN_SUBGROUP_TIMES_2 + Scalar(Spec.Q),\n            id=\"not_in_subgroup_2_pos_0\",\n        ),\n        pytest.param(\n            Spec.G1 + Scalar(1) + Spec.P1_NOT_IN_SUBGROUP + Scalar(Spec.Q),\n            id=\"not_in_subgroup_1_pos_1\",\n        ),\n        pytest.param(\n            Spec.G1 + Scalar(1) + Spec.P1_NOT_IN_SUBGROUP_TIMES_2 + Scalar(Spec.Q),\n            id=\"not_in_subgroup_2_pos_1\",\n        ),\n        pytest.param(\n            Spec.G1,\n            id=\"bls_g1_truncated_input\",\n        ),\n        pytest.param(\n            G1_POINTS_NOT_IN_SUBGROUP[0] + Scalar(0),\n            id=\"rand_not_in_subgroup_0_pos_0\",\n        ),\n        pytest.param(\n            G1_POINTS_NOT_IN_SUBGROUP[1] + Scalar(1),\n            id=\"rand_not_in_subgroup_1_pos_0\",\n        ),\n        pytest.param(\n            Spec.G1 + Scalar(1) + G1_POINTS_NOT_IN_SUBGROUP[0] + Scalar(0),\n            id=\"rand_not_in_subgroup_0_pos_1\",\n        ),\n        pytest.param(\n            Spec.G1 + Scalar(1) + G1_POINTS_NOT_IN_SUBGROUP[1] + Scalar(1),\n            id=\"rand_not_in_subgroup_1_pos_1\",\n        ),\n        pytest.param(\n            G1_POINTS_NOT_ON_CURVE[0] + Scalar(0),\n            id=\"not_on_curve_0_pos_0\",\n        ),\n        pytest.param(\n            G1_POINTS_NOT_ON_CURVE[1] + Scalar(1),\n            id=\"not_on_curve_1_pos_0\",\n        ),\n        pytest.param(\n            Spec.G1 + Scalar(1) + G1_POINTS_NOT_ON_CURVE[0] + Scalar(0),\n            id=\"not_on_curve_0_pos_1\",\n        ),\n        pytest.param(\n            Spec.G1 + Scalar(1) + G1_POINTS_NOT_ON_CURVE[1] + Scalar(1),\n            id=\"not_on_curve_1_pos_1\",\n        ),\n        pytest.param(\n            Spec.G1 + Scalar(1) + Spec.G1,\n            id=\"incomplete_input_missing_scalar\",\n        ),\n        pytest.param(\n            Spec.G1 + Scalar(1) + bytes([0]),\n            id=\"incomplete_input_extra_byte\",\n        ),\n        pytest.param(\n            Spec.G1 + Scalar(1) + Spec.G2 + Scalar(1),\n            id=\"mixing_g1_with_g2\",\n        ),\n        pytest.param(\n            Spec.G1 + (b\"\\x01\" + b\"\\x00\" * 32),  # Scalar > UINT256_MAX\n            id=\"scalar_too_large\",\n        ),\n        pytest.param(\n            # Invalid scalar length\n            Spec.G1 + Scalar(1).x.to_bytes(16, byteorder=\"big\"),\n            id=\"scalar_too_short\",\n        ),\n        pytest.param(\n            bytes([0]) * 159,  # Just under minimum valid length\n            id=\"input_too_short_by_1\",\n        ),\n        # Coordinates above modulus p cases.\n        pytest.param(\n            PointG1(Spec.P1.x + Spec.P, Spec.P1.y) + Scalar(1),\n            id=\"x_above_p_pos_0\",\n        ),\n        pytest.param(\n            PointG1(Spec.P1.x, Spec.P1.y + Spec.P) + Scalar(1),\n            id=\"y_above_p_pos_0\",\n        ),\n        pytest.param(\n            Spec.G1 + Scalar(1) + PointG1(Spec.P1.x + Spec.P, Spec.P1.y) + Scalar(0),\n            id=\"x_above_p_pos_1\",\n        ),\n        pytest.param(\n            Spec.G1 + Scalar(1) + PointG1(Spec.P1.x, Spec.P1.y + Spec.P) + Scalar(0),\n            id=\"y_above_p_pos_1\",\n        ),\n    ],\n    # Input length tests can be found in\n    # ./test_bls12_variable_length_input_contracts.py\n)\n@pytest.mark.parametrize(\n    \"precompile_gas_modifier\", [100_000], ids=[\"\"]\n)  # Add gas so that won't be the cause of failure\n@pytest.mark.parametrize(\"expected_output\", [Spec.INVALID], ids=[\"\"])\ndef test_invalid(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"Test invalid calls to the BLS12_G1MSM precompile.\"\"\"\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"call_opcode\",  # Note `Op.CALL` is used for all the `test_valid` cases.\n    [\n        Op.STATICCALL,\n        Op.DELEGATECALL,\n        Op.CALLCODE,\n    ],\n)\n@pytest.mark.parametrize(\n    \"input_data,expected_output\",\n    [\n        pytest.param(\n            Spec.INF_G1 + Scalar(0),\n            Spec.INF_G1,\n            id=\"single_inf_times_zero\",\n        ),\n        pytest.param(\n            (Spec.P1 + Scalar(Spec.Q)) * (len(Spec.G1MSM_DISCOUNT_TABLE) - 1),\n            Spec.INF_G1,\n            id=\"max_discount\",\n        ),\n    ],\n)\n@pytest.mark.slow()\ndef test_call_types(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"Test the BLS12_G1MSM precompile using different call types.\"\"\"\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n"
  },
  {
    "path": "tests/prague/eip2537_bls_12_381_precompiles/test_bls12_g1mul.py",
    "content": "\"\"\"\nTests BLS12_G1MUL precompile.\n\nTests the BLS12_G1MUL precompile implementation from [EIP-2537:\nPrecompile for BLS12-381 curve operations]\n(https://eips.ethereum.org/EIPS/eip-2537).\n\"\"\"\n\nimport pytest\n\nfrom ethereum_test_tools import Alloc, Environment, StateTestFiller, Transaction\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom .conftest import G1_POINTS_NOT_IN_SUBGROUP, G1_POINTS_NOT_ON_CURVE\nfrom .helpers import vectors_from_file\nfrom .spec import PointG1, Scalar, Spec, ref_spec_2537\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_2537.git_path\nREFERENCE_SPEC_VERSION = ref_spec_2537.version\n\npytestmark = [\n    pytest.mark.valid_from(\"Prague\"),\n    pytest.mark.parametrize(\"precompile_address\", [Spec.G1MSM], ids=[\"\"]),\n]\n\n\n@pytest.mark.parametrize(\n    \"input_data,expected_output,vector_gas_value\",\n    # Test vectors from the reference spec (from the cryptography team)\n    vectors_from_file(\"mul_G1_bls.json\")\n    + [\n        # Basic multiplication test cases.\n        pytest.param(\n            Spec.INF_G1 + Scalar(0),\n            Spec.INF_G1,\n            None,\n            id=\"zero_times_inf\",\n        ),\n        pytest.param(\n            Spec.INF_G1 + Scalar(1),\n            Spec.INF_G1,\n            None,\n            id=\"one_times_inf\",\n        ),\n        pytest.param(\n            Spec.INF_G1 + Scalar(2),\n            Spec.INF_G1,\n            None,\n            id=\"two_times_inf\",\n        ),\n        pytest.param(\n            Spec.INF_G1 + Scalar(Spec.Q),\n            Spec.INF_G1,\n            None,\n            id=\"q_times_inf\",\n        ),\n        pytest.param(\n            Spec.INF_G1 + Scalar(2**256 - 1),\n            Spec.INF_G1,\n            None,\n            id=\"max_scalar_times_inf\",\n        ),\n        pytest.param(\n            Spec.G1 + Scalar(0),\n            Spec.INF_G1,\n            None,\n            id=\"zero_times_generator\",\n        ),\n        pytest.param(\n            Spec.P1 + Scalar(0),\n            Spec.INF_G1,\n            None,\n            id=\"zero_times_point\",\n        ),\n        pytest.param(\n            Spec.G1 + Scalar(1),\n            Spec.G1,\n            None,\n            id=\"one_times_generator\",\n        ),\n        pytest.param(\n            Spec.P1 + Scalar(1),\n            Spec.P1,\n            None,\n            id=\"one_times_point\",\n        ),\n        pytest.param(\n            Spec.P1 + Scalar(2**256 - 1),\n            PointG1(\n                0x3DA1F13DDEF2B8B5A46CD543CE56C0A90B8B3B0D6D43DEC95836A5FD2BACD6AA8F692601F870CF22E05DDA5E83F460B,\n                0x18D64F3C0E9785365CBDB375795454A8A4FA26F30B9C4F6E33CA078EB5C29B7AEA478B076C619BC1ED22B14C95569B2D,\n            ),\n            None,\n            id=\"max_scalar_times_point\",\n        ),\n        # Subgroup related test cases.\n        pytest.param(\n            Spec.P1 + Scalar(Spec.Q - 1),\n            -Spec.P1,  # negated P1\n            None,\n            id=\"q_minus_1_times_point\",\n        ),\n        pytest.param(\n            Spec.P1 + Scalar(Spec.Q),\n            Spec.INF_G1,\n            None,\n            id=\"q_times_point\",\n        ),\n        pytest.param(\n            Spec.G1 + Scalar(Spec.Q),\n            Spec.INF_G1,\n            None,\n            id=\"q_times_generator\",\n        ),\n        pytest.param(\n            Spec.P1 + Scalar(Spec.Q + 1),\n            Spec.P1,\n            None,\n            id=\"q_plus_1_times_point\",\n        ),\n        pytest.param(\n            Spec.P1 + Scalar(2 * Spec.Q),\n            Spec.INF_G1,\n            None,\n            id=\"2q_times_point\",\n        ),\n        pytest.param(\n            Spec.P1 + Scalar((2**256 // Spec.Q) * Spec.Q),\n            Spec.INF_G1,\n            None,\n            id=\"large_multiple_of_q_times_point\",\n        ),\n    ],\n)\ndef test_valid(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"Test the BLS12_G1MUL precompile.\"\"\"\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"input_data\",\n    # Test vectors from the reference spec (from the cryptography team)\n    vectors_from_file(\"fail-mul_G1_bls.json\")\n    + [\n        pytest.param(\n            PointG1(0, 1) + Scalar(0),\n            id=\"invalid_point_1\",\n        ),\n        pytest.param(\n            PointG1(Spec.P1.x, Spec.P1.y - 1) + Scalar(0),\n            id=\"invalid_point_2\",\n        ),\n        pytest.param(\n            PointG1(Spec.P1.x, Spec.P1.y + 1) + Scalar(0),\n            id=\"invalid_point_3\",\n        ),\n        pytest.param(\n            PointG1(Spec.P1.x, Spec.P1.x) + Scalar(0),\n            id=\"invalid_point_4\",\n        ),\n        pytest.param(\n            PointG1(Spec.P, 0) + Scalar(0),\n            id=\"x_equal_to_p_times_0\",\n        ),\n        pytest.param(\n            PointG1(0, Spec.P) + Scalar(0),\n            id=\"y_equal_to_p_times_0\",\n        ),\n        pytest.param(\n            PointG1(Spec.P + 1, 0) + Scalar(0),\n            id=\"x_above_modulus_times_0\",\n        ),\n        pytest.param(\n            PointG1(Spec.P1.y, Spec.P1.x) + Scalar(0),\n            id=\"swapped_coordinates_times_0\",\n        ),\n        pytest.param(\n            # Point on wrong curve y^2 = x^3 + 5\n            PointG1(0x01, 0x07) + Scalar(0),\n            id=\"point_on_wrong_curve_times_0\",\n        ),\n        pytest.param(\n            b\"\\x80\" + bytes(Spec.INF_G1)[1:] + Scalar(0),\n            id=\"invalid_encoding\",\n        ),\n        pytest.param(\n            (Spec.INF_G1 + Scalar(0))[:-1],\n            id=\"input_too_short\",\n        ),\n        pytest.param(\n            b\"\\x00\" + (Spec.INF_G1 + Scalar(0)),\n            id=\"input_too_long\",\n        ),\n        pytest.param(\n            b\"\",\n            id=\"zero_length_input\",\n        ),\n        pytest.param(\n            b\"\\x00\" * 96,\n            id=\"all_zero_96_bytes\",\n        ),\n        pytest.param(\n            b\"\\xff\" + b\"\\x00\" * 47 + b\"\\xff\" + b\"\\x00\" * 31,\n            id=\"bad_inf_flag_with_scalar\",\n        ),\n        pytest.param(\n            b\"\\xc0\" + b\"\\x00\" * 47 + b\"\\x00\" * 32,\n            id=\"comp_instead_of_uncomp_with_scalar\",\n        ),\n        pytest.param(\n            Spec.G1 + Spec.G1,\n            id=\"g1_input_invalid_length\",\n        ),\n        pytest.param(\n            Spec.G2 + Spec.G2,\n            id=\"g2_input_invalid_length\",\n        ),\n        pytest.param(\n            Spec.G1,\n            id=\"g1_truncated_input\",\n        ),\n        pytest.param(\n            Spec.INF_G1 + Scalar(0).x.to_bytes(30, byteorder=\"big\"),\n            id=\"inf_with_short_scalar\",\n        ),\n        pytest.param(\n            Spec.INF_G1 + Scalar(0).x.to_bytes(34, byteorder=\"big\"),\n            id=\"inf_with_long_scalar\",\n        ),\n        pytest.param(\n            Spec.INF_G1 + (b\"\\x01\" + b\"\\x00\" * 32),\n            id=\"scalar_too_large_bytes\",\n        ),\n        pytest.param(\n            Spec.P1 + (b\"\\x01\" + b\"\\x00\" * 32),\n            id=\"scalar_too_large_bytes_with_point\",\n        ),\n        pytest.param(\n            Spec.G1 + (b\"\\x01\\x23\\x45\"),\n            id=\"scalar_too_small_bytes\",\n        ),\n        pytest.param(\n            Scalar(1) + Scalar(1),\n            id=\"two_scalars\",\n        ),\n        pytest.param(\n            PointG1(Spec.P1.x | Spec.MAX_FP_BIT_SET, Spec.P1.y) + Scalar(1),\n            id=\"non_zero_byte_16_boundary_violation_x\",\n        ),\n        pytest.param(\n            PointG1(Spec.P1.x, Spec.P1.y | Spec.MAX_FP_BIT_SET) + Scalar(1),\n            id=\"non_zero_byte_16_boundary_violation_y\",\n        ),\n        # Not in the r-order subgroup test cases.\n        pytest.param(\n            Spec.P1_NOT_IN_SUBGROUP + Scalar(1),\n            id=\"not_in_subgroup_times_1\",\n        ),\n        pytest.param(\n            Spec.P1_NOT_IN_SUBGROUP + Scalar(2),\n            id=\"not_in_subgroup_times_2\",\n        ),\n        pytest.param(\n            Spec.P1_NOT_IN_SUBGROUP + Scalar(3),\n            id=\"not_in_subgroup_times_3\",\n        ),\n        pytest.param(\n            Spec.P1_NOT_IN_SUBGROUP + Scalar(0),\n            id=\"not_in_subgroup_times_0\",\n        ),\n        pytest.param(\n            Spec.P1_NOT_IN_SUBGROUP_TIMES_2 + Scalar(1),\n            id=\"doubled_not_in_subgroup_times_1\",\n        ),\n        pytest.param(\n            Scalar(Spec.Q) + Spec.P1_NOT_IN_SUBGROUP,\n            id=\"q_times_not_in_subgroup\",\n        ),\n        pytest.param(\n            Spec.P1_NOT_IN_SUBGROUP + Scalar(Spec.Q - 1),\n            id=\"not_in_subgroup_times_q_minus_1\",\n        ),\n        pytest.param(\n            Spec.P1_NOT_IN_SUBGROUP_TIMES_2 + Scalar(Spec.Q),\n            id=\"doubled_not_in_subgroup_times_q\",\n        ),\n        pytest.param(\n            Spec.P1_NOT_IN_SUBGROUP + Scalar(Spec.Q + 1),\n            id=\"not_in_subgroup_times_q_plus_1\",\n        ),\n        # More not in the r-order subgroup test cases, but using random\n        # generated points.\n        pytest.param(\n            G1_POINTS_NOT_IN_SUBGROUP[0] + Scalar(1),\n            id=\"rand_not_in_subgroup_0_times_1\",\n        ),\n        pytest.param(\n            Scalar(2) + G1_POINTS_NOT_IN_SUBGROUP[1],\n            id=\"2_times_rand_not_in_subgroup_1\",\n        ),\n        pytest.param(\n            G1_POINTS_NOT_IN_SUBGROUP[2] + Scalar(Spec.Q),\n            id=\"rand_not_in_subgroup_2_times_q\",\n        ),\n        pytest.param(\n            Scalar(0) + G1_POINTS_NOT_IN_SUBGROUP[3],\n            id=\"0_times_rand_not_in_subgroup_3\",\n        ),\n        pytest.param(\n            G1_POINTS_NOT_IN_SUBGROUP[4] + Scalar(2**255 - 1),\n            id=\"rand_not_in_subgroup_4_times_large_scalar\",\n        ),\n        # Not on the curve cases using random generated points.\n        pytest.param(\n            G1_POINTS_NOT_ON_CURVE[0] + Scalar(1),\n            id=\"rand_not_on_curve_0_times_1\",\n        ),\n        pytest.param(\n            G1_POINTS_NOT_ON_CURVE[1] + Scalar(2),\n            id=\"rand_not_on_curve_1_times_2\",\n        ),\n        pytest.param(\n            G1_POINTS_NOT_ON_CURVE[2] + Scalar(Spec.Q),\n            id=\"rand_not_on_curve_2_times_q\",\n        ),\n        pytest.param(\n            G1_POINTS_NOT_ON_CURVE[3] + Scalar(0),\n            id=\"rand_not_on_curve_3_times_0\",\n        ),\n        pytest.param(\n            G1_POINTS_NOT_ON_CURVE[4] + Scalar(Spec.Q - 1),\n            id=\"rand_not_on_curve_4_times_q_minus_1\",\n        ),\n    ],\n)\n@pytest.mark.parametrize(\"expected_output\", [Spec.INVALID], ids=[\"\"])\ndef test_invalid(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"Negative tests for the BLS12_G1MUL precompile.\"\"\"\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"input_data,expected_output,precompile_gas_modifier\",\n    [\n        pytest.param(\n            Spec.INF_G1 + Scalar(0),\n            Spec.INF_G1,\n            1,\n            id=\"extra_gas\",\n        ),\n        pytest.param(\n            Spec.INF_G1 + Scalar(0),\n            Spec.INVALID,\n            -1,\n            id=\"insufficient_gas\",\n        ),\n    ],\n)\ndef test_gas(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"Test the BLS12_G1MUL precompile gas requirements.\"\"\"\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"call_opcode\",  # Note `Op.CALL` is used for all the `test_valid` cases.\n    [\n        Op.STATICCALL,\n        Op.DELEGATECALL,\n        Op.CALLCODE,\n    ],\n)\n@pytest.mark.parametrize(\n    \"input_data,expected_output\",\n    [\n        pytest.param(\n            Spec.INF_G1 + Scalar(0),\n            Spec.INF_G1,\n            id=\"zero_times_inf\",\n        ),\n        pytest.param(\n            Spec.INF_G1 + Scalar(2),\n            Spec.INF_G1,\n            id=\"two_times_inf\",\n        ),\n    ],\n)\ndef test_call_types(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"Test the BLS12_G1MUL precompile using different call types.\"\"\"\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n"
  },
  {
    "path": "tests/prague/eip2537_bls_12_381_precompiles/test_bls12_g2add.py",
    "content": "\"\"\"\nTests BLS12_G2ADD precompile.\n\nTests the BLS12_G2ADD precompile implementation from [EIP-2537:\nPrecompile for BLS12-381 curve operations]\n(https://eips.ethereum.org/EIPS/eip-2537).\n\"\"\"\n\nimport pytest\n\nfrom ethereum_test_tools import Alloc, Environment, StateTestFiller, Transaction\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom .conftest import G2_POINTS_NOT_IN_SUBGROUP, G2_POINTS_NOT_ON_CURVE\nfrom .helpers import add_points_g2, vectors_from_file\nfrom .spec import PointG2, Spec, ref_spec_2537\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_2537.git_path\nREFERENCE_SPEC_VERSION = ref_spec_2537.version\n\npytestmark = [\n    pytest.mark.valid_from(\"Prague\"),\n    pytest.mark.parametrize(\"precompile_address\", [Spec.G2ADD], ids=[\"\"]),\n]\n\n\n@pytest.mark.parametrize(\n    \"input_data,expected_output,vector_gas_value\",\n    # Test vectors from the reference spec (from the cryptography team)\n    vectors_from_file(\"add_G2_bls.json\")\n    + [\n        # Identity (infinity) element test cases. Checks that any point added\n        # to the identity element (INF) equals itself.\n        pytest.param(\n            Spec.G2 + Spec.INF_G2,\n            Spec.G2,\n            None,\n            id=\"generator_plus_inf\",\n        ),\n        pytest.param(\n            Spec.INF_G2 + Spec.G2,\n            Spec.G2,\n            None,\n            id=\"inf_plus_generator\",\n        ),\n        pytest.param(\n            Spec.INF_G2 + Spec.INF_G2,\n            Spec.INF_G2,\n            None,\n            id=\"inf_plus_inf\",\n        ),\n        pytest.param(\n            Spec.INF_G2 + Spec.P2,\n            Spec.P2,\n            None,\n            id=\"inf_plus_point\",\n        ),\n        # Basic arithmetic properties test cases.\n        # Checks fundamental properties of the BLS12-381 curve.\n        pytest.param(\n            Spec.P2 + (-Spec.P2),\n            Spec.INF_G2,\n            None,\n            id=\"point_plus_neg_point\",\n        ),\n        pytest.param(\n            Spec.G2 + (-Spec.G2),\n            Spec.INF_G2,\n            None,\n            id=\"generator_plus_neg_point\",\n        ),\n        pytest.param(\n            Spec.P2 + Spec.G2,\n            add_points_g2(Spec.G2, Spec.P2),\n            None,\n            id=\"commutative_check_a\",\n        ),\n        pytest.param(\n            Spec.G2 + Spec.P2,\n            add_points_g2(Spec.P2, Spec.G2),\n            None,\n            id=\"commutative_check_b\",\n        ),\n        pytest.param(\n            Spec.P2 + Spec.P2,\n            add_points_g2(Spec.P2, Spec.P2),\n            None,\n            id=\"point_doubling\",\n        ),\n        pytest.param(  # (P + G) + P = P + (G + P)\n            add_points_g2(Spec.P2, Spec.G2) + Spec.P2,\n            add_points_g2(Spec.P2, add_points_g2(Spec.G2, Spec.P2)),\n            None,\n            id=\"associativity_check\",\n        ),\n        pytest.param(  # -(P+G) = (-P)+(-G)\n            (-(add_points_g2(Spec.P2, Spec.G2))) + Spec.INF_G2,\n            add_points_g2((-Spec.P2), (-Spec.G2)),\n            None,\n            id=\"negation_of_sum\",\n        ),\n        pytest.param(\n            add_points_g2(Spec.G2, Spec.G2) + add_points_g2(Spec.P2, Spec.P2),\n            add_points_g2(add_points_g2(Spec.G2, Spec.G2), add_points_g2(Spec.P2, Spec.P2)),\n            None,\n            id=\"double_generator_plus_double_point\",\n        ),\n        pytest.param(\n            add_points_g2(Spec.G2, Spec.G2) + add_points_g2(Spec.G2, Spec.G2),\n            add_points_g2(add_points_g2(Spec.G2, Spec.G2), add_points_g2(Spec.G2, Spec.G2)),\n            None,\n            id=\"double_generator_plus_double_generator\",\n        ),\n        pytest.param(  # (x,y) + (x,-y) = INF\n            PointG2(Spec.P2.x, Spec.P2.y)\n            + PointG2(Spec.P2.x, (-Spec.P2.y[0] % Spec.P, -Spec.P2.y[1] % Spec.P)),\n            Spec.INF_G2,\n            None,\n            id=\"point_plus_reflected_point\",\n        ),\n        # Not in the r-order subgroup test cases. Checks that any point on the\n        # curve but not in the subgroup is used for operations.\n        pytest.param(\n            Spec.P2_NOT_IN_SUBGROUP + Spec.P2_NOT_IN_SUBGROUP,\n            Spec.P2_NOT_IN_SUBGROUP_TIMES_2,\n            None,\n            id=\"non_sub_plus_non_sub\",\n        ),\n        pytest.param(\n            Spec.P2_NOT_IN_SUBGROUP + Spec.P2_NOT_IN_SUBGROUP_TIMES_2,\n            add_points_g2(Spec.P2_NOT_IN_SUBGROUP, Spec.P2_NOT_IN_SUBGROUP_TIMES_2),\n            None,\n            id=\"non_sub_plus_doubled_non_sub\",\n        ),\n        pytest.param(\n            Spec.P2_NOT_IN_SUBGROUP + Spec.INF_G2,\n            Spec.P2_NOT_IN_SUBGROUP,\n            None,\n            id=\"non_sub_plus_inf\",\n        ),\n        pytest.param(\n            Spec.G2 + Spec.P2_NOT_IN_SUBGROUP,\n            add_points_g2(Spec.G2, Spec.P2_NOT_IN_SUBGROUP),\n            None,\n            id=\"generator_plus_non_sub\",\n        ),\n        pytest.param(\n            Spec.P2_NOT_IN_SUBGROUP + (-Spec.P2_NOT_IN_SUBGROUP),\n            Spec.INF_G2,\n            None,\n            id=\"non_sub_plus_neg_non_sub\",\n        ),\n        pytest.param(\n            Spec.P2 + Spec.P2_NOT_IN_SUBGROUP,\n            add_points_g2(Spec.P2, Spec.P2_NOT_IN_SUBGROUP),\n            None,\n            id=\"in_sub_plus_non_sub\",\n        ),\n        pytest.param(\n            Spec.P2_NOT_IN_SUBGROUP_TIMES_2 + Spec.P2,\n            add_points_g2(Spec.P2_NOT_IN_SUBGROUP_TIMES_2, Spec.P2),\n            None,\n            id=\"doubled_non_sub_plus_in_sub\",\n        ),\n        pytest.param(\n            Spec.P2_NOT_IN_SUBGROUP_TIMES_2 + (-Spec.P2_NOT_IN_SUBGROUP),\n            Spec.P2_NOT_IN_SUBGROUP,\n            None,\n            id=\"doubled_non_sub_plus_neg\",\n        ),\n        # More not in the r-order subgroup test cases, but using random\n        # generated points.\n        pytest.param(\n            G2_POINTS_NOT_IN_SUBGROUP[0] + Spec.P2,\n            add_points_g2(G2_POINTS_NOT_IN_SUBGROUP[0], Spec.P2),\n            None,\n            id=\"rand_not_in_subgroup_0_plus_point\",\n        ),\n        pytest.param(\n            G2_POINTS_NOT_IN_SUBGROUP[1] + Spec.G2,\n            add_points_g2(G2_POINTS_NOT_IN_SUBGROUP[1], Spec.G2),\n            None,\n            id=\"rand_not_in_subgroup_1_plus_generator\",\n        ),\n        pytest.param(\n            G2_POINTS_NOT_IN_SUBGROUP[2] + Spec.INF_G2,\n            G2_POINTS_NOT_IN_SUBGROUP[2],\n            None,\n            id=\"rand_not_in_subgroup_2_plus_inf\",\n        ),\n        pytest.param(\n            G2_POINTS_NOT_IN_SUBGROUP[3] + (-G2_POINTS_NOT_IN_SUBGROUP[3]),\n            Spec.INF_G2,\n            None,\n            id=\"rand_not_in_subgroup_3_plus_neg_self\",\n        ),\n        pytest.param(\n            G2_POINTS_NOT_IN_SUBGROUP[4] + G2_POINTS_NOT_IN_SUBGROUP[0],\n            add_points_g2(G2_POINTS_NOT_IN_SUBGROUP[4], G2_POINTS_NOT_IN_SUBGROUP[0]),\n            None,\n            id=\"rand_not_in_subgroup_4_plus_0\",\n        ),\n    ],\n)\ndef test_valid(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"Test the BLS12_G2ADD precompile.\"\"\"\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"input_data\",\n    vectors_from_file(\"fail-add_G2_bls.json\")\n    + [\n        pytest.param(\n            PointG2((1, 0), (0, 0)) + Spec.INF_G2,\n            id=\"invalid_point_a_1\",\n        ),\n        pytest.param(\n            PointG2((0, 0), (1, 0)) + Spec.INF_G2,\n            id=\"invalid_point_a_2\",\n        ),\n        pytest.param(\n            PointG2((0, 1), (0, 0)) + Spec.INF_G2,\n            id=\"invalid_point_a_3\",\n        ),\n        pytest.param(\n            PointG2((0, 0), (0, 1)) + Spec.INF_G2,\n            id=\"invalid_point_a_4\",\n        ),\n        pytest.param(\n            PointG2(Spec.P2.x, (Spec.P2.y[0], Spec.P2.y[1] - 1)) + Spec.P2,\n            id=\"invalid_point_a_5\",\n        ),\n        pytest.param(\n            Spec.INF_G2 + PointG2((1, 0), (0, 0)),\n            id=\"invalid_point_b_1\",\n        ),\n        pytest.param(\n            Spec.INF_G2 + PointG2((0, 0), (1, 0)),\n            id=\"invalid_point_b_2\",\n        ),\n        pytest.param(\n            Spec.INF_G2 + PointG2((0, 1), (0, 0)),\n            id=\"invalid_point_b_3\",\n        ),\n        pytest.param(\n            Spec.INF_G2 + PointG2((0, 0), (0, 1)),\n            id=\"invalid_point_b_4\",\n        ),\n        pytest.param(\n            Spec.P2 + PointG2(Spec.P2.x, (Spec.P2.y[0], Spec.P2.y[1] - 1)),\n            id=\"invalid_point_b_5\",\n        ),\n        pytest.param(\n            PointG2((Spec.P, 0), (0, 0)) + Spec.INF_G2,\n            id=\"a_x_1_equal_to_p\",\n        ),\n        pytest.param(\n            PointG2((0, Spec.P), (0, 0)) + Spec.INF_G2,\n            id=\"a_x_2_equal_to_p\",\n        ),\n        pytest.param(\n            PointG2((0, 0), (Spec.P, 0)) + Spec.INF_G2,\n            id=\"a_y_1_equal_to_p\",\n        ),\n        pytest.param(\n            PointG2((0, 0), (0, Spec.P)) + Spec.INF_G2,\n            id=\"a_y_2_equal_to_p\",\n        ),\n        pytest.param(\n            Spec.INF_G2 + PointG2((Spec.P, 0), (0, 0)),\n            id=\"b_x_1_equal_to_p\",\n        ),\n        pytest.param(\n            Spec.INF_G2 + PointG2((0, Spec.P), (0, 0)),\n            id=\"b_x_2_equal_to_p\",\n        ),\n        pytest.param(\n            Spec.INF_G2 + PointG2((0, 0), (Spec.P, 0)),\n            id=\"b_y_1_equal_to_p\",\n        ),\n        pytest.param(\n            Spec.INF_G2 + PointG2((0, 0), (0, Spec.P)),\n            id=\"b_y_2_equal_to_p\",\n        ),\n        pytest.param(\n            PointG2((Spec.P2.x[0] + Spec.P, Spec.P2.x[1]), Spec.P2.y) + Spec.G2,\n            id=\"a_x_1_above_p\",\n        ),\n        pytest.param(\n            PointG2((Spec.P2.x[0], Spec.P2.x[1] + Spec.P), Spec.P2.y) + Spec.G2,\n            id=\"a_x_2_above_p\",\n        ),\n        pytest.param(\n            PointG2(Spec.P2.x, (Spec.P2.y[0] + Spec.P, Spec.P2.y[1])) + Spec.G2,\n            id=\"a_y_1_above_p\",\n        ),\n        pytest.param(\n            PointG2(Spec.P2.x, (Spec.P2.y[0], Spec.P2.y[1] + Spec.P)) + Spec.G2,\n            id=\"a_y_2_above_p\",\n        ),\n        pytest.param(\n            Spec.P2 + PointG2((Spec.G2.x[0] + Spec.P, Spec.G2.x[1]), Spec.G2.y),\n            id=\"b_x_1_above_p\",\n        ),\n        pytest.param(\n            Spec.P2 + PointG2((Spec.G2.x[0], Spec.G2.x[1] + Spec.P), Spec.G2.y),\n            id=\"b_x_2_above_p\",\n        ),\n        pytest.param(\n            Spec.P2 + PointG2(Spec.G2.x, (Spec.G2.y[0] + Spec.P, Spec.G2.y[1])),\n            id=\"b_y_1_above_p\",\n        ),\n        pytest.param(\n            Spec.P2 + PointG2(Spec.G2.x, (Spec.G2.y[0], Spec.G2.y[1] + Spec.P)),\n            id=\"b_y_2_above_p\",\n        ),\n        pytest.param(\n            b\"\\x80\" + bytes(Spec.INF_G2)[1:] + Spec.INF_G2,\n            id=\"invalid_encoding_a\",\n        ),\n        pytest.param(\n            Spec.INF_G2 + b\"\\x80\" + bytes(Spec.INF_G2)[1:],\n            id=\"invalid_encoding_b\",\n        ),\n        pytest.param(\n            (Spec.INF_G2 + Spec.INF_G2)[:-1],\n            id=\"input_too_short\",\n        ),\n        pytest.param(\n            b\"\\x00\" + (Spec.INF_G2 + Spec.INF_G2),\n            id=\"input_too_long\",\n        ),\n        pytest.param(\n            b\"\",\n            id=\"zero_length_input\",\n        ),\n        pytest.param(\n            Spec.G2,\n            id=\"only_one_point\",\n        ),\n        pytest.param(\n            Spec.G1 + Spec.G1,\n            id=\"g1_points\",\n        ),\n        pytest.param(\n            PointG2((Spec.P + 1, 0), (0, 0)) + Spec.INF_G2,\n            id=\"x1_above_modulus\",\n        ),\n        pytest.param(\n            PointG2(\n                (0x01, 0),  # x coordinate in Fp2 (1 + 0i)\n                (0x07, 0),  # y coordinate satisfying y^2 = x^3 + 5 in Fp2\n            )\n            + Spec.INF_G2,\n            id=\"point_on_wrong_curve_b=5\",\n        ),\n        pytest.param(\n            bytes(Spec.G2) + bytes(Spec.G2)[128:],\n            id=\"mixed_g1_g2_points\",\n        ),\n        pytest.param(\n            PointG2((Spec.P2.x[0] | Spec.MAX_FP_BIT_SET, Spec.P2.x[1]), Spec.P2.y) + Spec.P2,\n            id=\"non_zero_byte_16_boundary_violation_x1\",\n        ),\n        pytest.param(\n            PointG2((Spec.P2.x[0], Spec.P2.x[1] | Spec.MAX_FP_BIT_SET), Spec.P2.y) + Spec.P2,\n            id=\"non_zero_byte_16_boundary_violation_x2\",\n        ),\n        pytest.param(\n            PointG2(Spec.P2.x, (Spec.P2.y[0] | Spec.MAX_FP_BIT_SET, Spec.P2.y[1])) + Spec.P2,\n            id=\"non_zero_byte_16_boundary_violation_y1\",\n        ),\n        pytest.param(\n            PointG2(Spec.P2.x, (Spec.P2.y[0], Spec.P2.y[1] | Spec.MAX_FP_BIT_SET)) + Spec.P2,\n            id=\"non_zero_byte_16_boundary_violation_y2\",\n        ),\n        # Not on the curve cases using random generated points.\n        pytest.param(\n            G2_POINTS_NOT_ON_CURVE[0] + Spec.INF_G2,\n            id=\"rand_not_on_curve_0_plus_inf\",\n        ),\n        pytest.param(\n            G2_POINTS_NOT_ON_CURVE[1] + Spec.P2,\n            id=\"rand_not_on_curve_1_plus_point\",\n        ),\n        pytest.param(\n            G2_POINTS_NOT_ON_CURVE[2] + G2_POINTS_NOT_IN_SUBGROUP[0],\n            id=\"rand_not_on_curve_2_plus_not_in_subgroup_0\",\n        ),\n        pytest.param(\n            G2_POINTS_NOT_ON_CURVE[3] + G2_POINTS_NOT_ON_CURVE[4],\n            id=\"rand_not_on_curve_3_plus_4\",\n        ),\n        pytest.param(\n            Spec.INF_G2 + G2_POINTS_NOT_ON_CURVE[0],\n            id=\"inf_plus_rand_not_on_curve_0\",\n        ),\n        pytest.param(\n            Spec.P2 + G2_POINTS_NOT_ON_CURVE[1],\n            id=\"point_plus_rand_not_on_curve_1\",\n        ),\n        pytest.param(\n            G2_POINTS_NOT_IN_SUBGROUP[2] + G2_POINTS_NOT_ON_CURVE[2],\n            id=\"rand_not_in_subgroup_2_plus_rand_not_on_curve_2\",\n        ),\n    ],\n)\n@pytest.mark.parametrize(\"expected_output\", [Spec.INVALID], ids=[\"\"])\ndef test_invalid(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"Negative tests for the BLS12_G2ADD precompile.\"\"\"\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"input_data,expected_output,precompile_gas_modifier\",\n    [\n        pytest.param(\n            Spec.INF_G2 + Spec.INF_G2,\n            Spec.INF_G2,\n            1,\n            id=\"extra_gas\",\n        ),\n        pytest.param(\n            Spec.INF_G2 + Spec.INF_G2,\n            Spec.INVALID,\n            -1,\n            id=\"insufficient_gas\",\n        ),\n    ],\n)\ndef test_gas(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"Test the BLS12_G2ADD precompile gas requirements.\"\"\"\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"call_opcode\",  # Note `Op.CALL` is used for all the `test_valid` cases.\n    [\n        Op.STATICCALL,\n        Op.DELEGATECALL,\n        Op.CALLCODE,\n    ],\n)\n@pytest.mark.parametrize(\n    \"input_data,expected_output\",\n    [\n        pytest.param(\n            Spec.INF_G2 + Spec.INF_G2,\n            Spec.INF_G2,\n            id=\"inf_plus_inf\",\n        ),\n        pytest.param(\n            Spec.INF_G2 + Spec.G2,\n            Spec.G2,\n            id=\"inf_plus_generator\",\n        ),\n    ],\n)\ndef test_call_types(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"Test the BLS12_G2ADD precompile using different call types.\"\"\"\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n"
  },
  {
    "path": "tests/prague/eip2537_bls_12_381_precompiles/test_bls12_g2msm.py",
    "content": "\"\"\"\nTest the BLS12_G2MSM precompile.\n\nTest the BLS12_G2MSM precompile introduced in\n[EIP-2537: Precompile for BLS12-381 curve operations](https://eips.ethereum.org/EIPS/eip-2537).\n\"\"\"\n\nimport pytest\n\nfrom ethereum_test_tools import Alloc, Environment, StateTestFiller, Transaction\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom .conftest import G2_POINTS_NOT_IN_SUBGROUP, G2_POINTS_NOT_ON_CURVE\nfrom .helpers import PointG2, vectors_from_file\nfrom .spec import Scalar, Spec, ref_spec_2537\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_2537.git_path\nREFERENCE_SPEC_VERSION = ref_spec_2537.version\n\npytestmark = [\n    pytest.mark.valid_from(\"Prague\"),\n    pytest.mark.parametrize(\"precompile_address\", [Spec.G2MSM], ids=[\"\"]),\n]\n\n\n@pytest.mark.parametrize(\n    \"input_data,expected_output,vector_gas_value\",\n    # Test vectors from the reference spec (from the cryptography team)\n    vectors_from_file(\"msm_G2_bls.json\")\n    + [\n        # Multiple pair scalar multiplication cases.\n        pytest.param(\n            Spec.G2 + Scalar(1) + Spec.INF_G2 + Scalar(1),\n            Spec.G2,\n            None,\n            id=\"g2_plus_inf\",\n        ),\n        pytest.param(\n            Spec.G2 + Scalar(0) + Spec.P2 + Scalar(0) + Spec.INF_G2 + Scalar(0),\n            Spec.INF_G2,\n            None,\n            id=\"all_zero_scalars\",\n        ),\n        pytest.param(\n            Spec.G2 + Scalar(1) + (-Spec.G2) + Scalar(1),\n            Spec.INF_G2,\n            None,\n            id=\"sum_to_identity_opposite\",\n        ),\n        pytest.param(\n            Spec.G2 + Scalar(Spec.Q - 1) + Spec.G2 + Scalar(1),\n            Spec.INF_G2,\n            None,\n            id=\"scalars_sum_to_q\",\n        ),\n        pytest.param(\n            Spec.G2 + Scalar(1) + Spec.G2 + Scalar(0) + Spec.INF_G2 + Scalar(5),\n            Spec.G2,\n            None,\n            id=\"combined_basic_cases\",\n        ),\n        pytest.param(\n            Spec.G2 + Scalar(1) + Spec.INF_G2 + Scalar(500),\n            Spec.G2,\n            None,\n            id=\"identity_with_large_scalar\",\n        ),\n        pytest.param(\n            Spec.G2 + Scalar(0) + Spec.P2 + Scalar(0) + (-Spec.G2) + Scalar(0),\n            Spec.INF_G2,\n            None,\n            id=\"multiple_points_zero_scalar\",\n        ),\n        # Cases with maximum discount table (test vector for gas cost\n        # calculation)\n        pytest.param(\n            (Spec.P2 + Scalar(Spec.Q)) * (len(Spec.G2MSM_DISCOUNT_TABLE) - 1),\n            Spec.INF_G2,\n            None,\n            id=\"max_discount\",\n            marks=pytest.mark.slow,\n        ),\n        pytest.param(\n            (Spec.P2 + Scalar(Spec.Q)) * len(Spec.G2MSM_DISCOUNT_TABLE),\n            Spec.INF_G2,\n            None,\n            id=\"max_discount_plus_1\",\n            marks=pytest.mark.slow,\n        ),\n    ],\n)\n@pytest.mark.slow()\ndef test_valid(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"Test valid calls to the BLS12_G2MSM precompile.\"\"\"\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"input_data\",\n    # Test vectors from the reference spec (from the cryptography team)\n    vectors_from_file(\"fail-msm_G2_bls.json\")\n    + [\n        pytest.param(\n            Spec.P2_NOT_IN_SUBGROUP + Scalar(1),\n            id=\"not_in_subgroup_1_pos_0\",\n        ),\n        pytest.param(\n            Spec.P2_NOT_IN_SUBGROUP_TIMES_2 + Scalar(1),\n            id=\"not_in_subgroup_2_pos_0\",\n        ),\n        pytest.param(\n            Spec.G2 + Scalar(1) + Spec.P2_NOT_IN_SUBGROUP + Scalar(1),\n            id=\"not_in_subgroup_1_pos_1\",\n        ),\n        pytest.param(\n            Spec.G2 + Scalar(1) + Spec.P2_NOT_IN_SUBGROUP_TIMES_2 + Scalar(1),\n            id=\"not_in_subgroup_2_pos_1\",\n        ),\n        pytest.param(\n            G2_POINTS_NOT_IN_SUBGROUP[0] + Scalar(1),\n            id=\"rand_not_in_subgroup_0_pos_0\",\n        ),\n        pytest.param(\n            G2_POINTS_NOT_IN_SUBGROUP[1] + Scalar(1),\n            id=\"rand_not_in_subgroup_1_pos_0\",\n        ),\n        pytest.param(\n            Spec.G2 + Scalar(1) + G2_POINTS_NOT_IN_SUBGROUP[0] + Scalar(1),\n            id=\"rand_not_in_subgroup_0_pos_1\",\n        ),\n        pytest.param(\n            Spec.G2 + Scalar(1) + G2_POINTS_NOT_IN_SUBGROUP[1] + Scalar(1),\n            id=\"rand_not_in_subgroup_1_pos_1\",\n        ),\n        pytest.param(\n            G2_POINTS_NOT_ON_CURVE[0] + Scalar(0),\n            id=\"not_on_curve_0_pos_0\",\n        ),\n        pytest.param(\n            G2_POINTS_NOT_ON_CURVE[1] + Scalar(1),\n            id=\"not_on_curve_1_pos_0\",\n        ),\n        pytest.param(\n            Spec.G2 + Scalar(1) + G2_POINTS_NOT_ON_CURVE[0] + Scalar(0),\n            id=\"not_on_curve_0_pos_1\",\n        ),\n        pytest.param(\n            Spec.G2 + Scalar(1) + G2_POINTS_NOT_ON_CURVE[1] + Scalar(1),\n            id=\"not_on_curve_1_pos_1\",\n        ),\n        pytest.param(\n            Spec.G2 + Scalar(1) + Spec.G2,\n            id=\"incomplete_input_missing_scalar\",\n        ),\n        pytest.param(\n            Spec.G2 + Scalar(1) + bytes([0]),\n            id=\"incomplete_input_extra_byte\",\n        ),\n        pytest.param(\n            Spec.G2 + Scalar(1) + Spec.G1 + Scalar(1),\n            id=\"mixing_g2_with_g1\",\n        ),\n        pytest.param(\n            Spec.G2 + (b\"\\x01\" + b\"\\x00\" * 32),  # Scalar > UINT256_MAX\n            id=\"scalar_too_large\",\n        ),\n        pytest.param(\n            # Invalid scalar length\n            Spec.G2 + Scalar(1).x.to_bytes(16, byteorder=\"big\"),\n            id=\"scalar_too_short\",\n        ),\n        pytest.param(\n            bytes([0]) * 287,  # Just under minimum valid length\n            id=\"input_too_short_by_1\",\n        ),\n        # Coordinates above modulus p cases.\n        pytest.param(\n            PointG2((Spec.P2.x[0] + Spec.P, Spec.P2.x[1]), Spec.P2.y) + Scalar(1),\n            id=\"x_c0_above_p_pos_0\",\n        ),\n        pytest.param(\n            PointG2((Spec.P2.x[0], Spec.P2.x[1] + Spec.P), Spec.P2.y) + Scalar(1),\n            id=\"x_c1_above_p_pos_0\",\n        ),\n        pytest.param(\n            PointG2(Spec.P2.x, (Spec.P2.y[0] + Spec.P, Spec.P2.y[1])) + Scalar(1),\n            id=\"y_c0_above_p_pos_0\",\n        ),\n        pytest.param(\n            PointG2(Spec.P2.x, (Spec.P2.y[0], Spec.P2.y[1] + Spec.P)) + Scalar(1),\n            id=\"y_c1_above_p_pos_0\",\n        ),\n        pytest.param(\n            Spec.G2\n            + Scalar(1)\n            + PointG2((Spec.P2.x[0] + Spec.P, Spec.P2.x[1]), Spec.P2.y)\n            + Scalar(0),\n            id=\"x_c0_above_p_pos_1\",\n        ),\n        pytest.param(\n            Spec.G2\n            + Scalar(1)\n            + PointG2((Spec.P2.x[0], Spec.P2.x[1] + Spec.P), Spec.P2.y)\n            + Scalar(0),\n            id=\"x_c1_above_p_pos_1\",\n        ),\n        pytest.param(\n            Spec.G2\n            + Scalar(1)\n            + PointG2(Spec.P2.x, (Spec.P2.y[0] + Spec.P, Spec.P2.y[1]))\n            + Scalar(0),\n            id=\"y_c0_above_p_pos_1\",\n        ),\n        pytest.param(\n            Spec.G2\n            + Scalar(1)\n            + PointG2(Spec.P2.x, (Spec.P2.y[0], Spec.P2.y[1] + Spec.P))\n            + Scalar(0),\n            id=\"y_c1_above_p_pos_1\",\n        ),\n    ],\n    # Input length tests can be found in\n    # ./test_bls12_variable_length_input_contracts.py\n)\n@pytest.mark.parametrize(\n    \"precompile_gas_modifier\", [100_000], ids=[\"\"]\n)  # Add gas so that won't be the cause of failure\n@pytest.mark.parametrize(\"expected_output\", [Spec.INVALID], ids=[\"\"])\ndef test_invalid(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"Test invalid calls to the BLS12_G2MSM precompile.\"\"\"\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"call_opcode\",  # Note `Op.CALL` is used for all the `test_valid` cases.\n    [\n        Op.STATICCALL,\n        Op.DELEGATECALL,\n        Op.CALLCODE,\n    ],\n)\n@pytest.mark.parametrize(\n    \"input_data,expected_output\",\n    [\n        pytest.param(\n            Spec.INF_G2 + Scalar(0),\n            Spec.INF_G2,\n            id=\"single_inf_times_zero\",\n        ),\n        pytest.param(\n            Spec.G2 + Scalar(0) + Spec.INF_G2 + Scalar(0),\n            Spec.INF_G2,\n            id=\"msm_all_zeros_different_call_types\",\n        ),\n    ],\n)\ndef test_call_types(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"Test the BLS12_G2MSM precompile using different call types.\"\"\"\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n"
  },
  {
    "path": "tests/prague/eip2537_bls_12_381_precompiles/test_bls12_g2mul.py",
    "content": "\"\"\"\nTest the BLS12_G2MUL precompile.\n\nTest the BLS12_G2MUL precompile introduced in\n[EIP-2537: Precompile for BLS12-381 curve operations](https://eips.ethereum.org/EIPS/eip-2537).\n\"\"\"\n\nimport pytest\n\nfrom ethereum_test_tools import Alloc, Environment, StateTestFiller, Transaction\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom .conftest import G2_POINTS_NOT_IN_SUBGROUP, G2_POINTS_NOT_ON_CURVE\nfrom .helpers import vectors_from_file\nfrom .spec import PointG2, Scalar, Spec, ref_spec_2537\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_2537.git_path\nREFERENCE_SPEC_VERSION = ref_spec_2537.version\n\npytestmark = [\n    pytest.mark.valid_from(\"Prague\"),\n    pytest.mark.parametrize(\"precompile_address\", [Spec.G2MSM], ids=[\"\"]),\n]\n\n\n@pytest.mark.parametrize(\n    \"input_data,expected_output,vector_gas_value\",\n    # Test vectors from the reference spec (from the cryptography team)\n    vectors_from_file(\"mul_G2_bls.json\")\n    + [\n        # Basic multiplication test cases.\n        pytest.param(\n            Spec.INF_G2 + Scalar(0),\n            Spec.INF_G2,\n            None,\n            id=\"zero_times_inf\",\n        ),\n        pytest.param(\n            Spec.INF_G2 + Scalar(1),\n            Spec.INF_G2,\n            None,\n            id=\"one_times_inf\",\n        ),\n        pytest.param(\n            Spec.INF_G2 + Scalar(2),\n            Spec.INF_G2,\n            None,\n            id=\"two_times_inf\",\n        ),\n        pytest.param(\n            Spec.INF_G2 + Scalar(Spec.Q),\n            Spec.INF_G2,\n            None,\n            id=\"q_times_inf\",\n        ),\n        pytest.param(\n            Spec.INF_G2 + Scalar(2**256 - 1),\n            Spec.INF_G2,\n            None,\n            id=\"max_scalar_times_inf\",\n        ),\n        pytest.param(\n            Spec.G2 + Scalar(0),\n            Spec.INF_G2,\n            None,\n            id=\"zero_times_generator\",\n        ),\n        pytest.param(\n            Spec.P2 + Scalar(0),\n            Spec.INF_G2,\n            None,\n            id=\"zero_times_point\",\n        ),\n        pytest.param(\n            Spec.G2 + Scalar(1),\n            Spec.G2,\n            None,\n            id=\"one_times_generator\",\n        ),\n        pytest.param(\n            Spec.P2 + Scalar(1),\n            Spec.P2,\n            None,\n            id=\"one_times_point\",\n        ),\n        pytest.param(\n            Spec.P2 + Scalar(2**256 - 1),\n            PointG2(\n                (\n                    0x2663E1C3431E174CA80E5A84489569462E13B52DA27E7720AF5567941603475F1F9BC0102E13B92A0A21D96B94E9B22,\n                    0x6A80D056486365020A6B53E2680B2D72D8A93561FC2F72B960936BB16F509C1A39C4E4174A7C9219E3D7EF130317C05,\n                ),\n                (\n                    0xC49EAD39E9EB7E36E8BC25824299661D5B6D0E200BBC527ECCB946134726BF5DBD861E8E6EC946260B82ED26AFE15FB,\n                    0x5397DAD1357CF8333189821B737172B18099ECF7EE8BDB4B3F05EBCCDF40E1782A6C71436D5ACE0843D7F361CBC6DB2,\n                ),\n            ),\n            None,\n            id=\"max_scalar_times_point\",\n        ),\n        # Subgroup related test cases.\n        pytest.param(\n            Spec.P2 + Scalar(Spec.Q - 1),\n            -Spec.P2,  # negated P2\n            None,\n            id=\"q_minus_1_times_point\",\n        ),\n        pytest.param(\n            Spec.P2 + Scalar(Spec.Q),\n            Spec.INF_G2,\n            None,\n            id=\"q_times_point\",\n        ),\n        pytest.param(\n            Spec.G2 + Scalar(Spec.Q),\n            Spec.INF_G2,\n            None,\n            id=\"q_times_generator\",\n        ),\n        pytest.param(\n            Spec.P2 + Scalar(Spec.Q + 1),\n            Spec.P2,\n            None,\n            id=\"q_plus_1_times_point\",\n        ),\n        pytest.param(\n            Spec.P2 + Scalar(2 * Spec.Q),\n            Spec.INF_G2,\n            None,\n            id=\"2q_times_point\",\n        ),\n        pytest.param(\n            Spec.P2 + Scalar((2**256 // Spec.Q) * Spec.Q),\n            Spec.INF_G2,\n            None,\n            id=\"large_multiple_of_q_times_point\",\n        ),\n    ],\n)\ndef test_valid(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"Test the BLS12_G2MUL precompile.\"\"\"\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"input_data\",\n    # Test vectors from the reference spec (from the cryptography team)\n    vectors_from_file(\"fail-mul_G2_bls.json\")\n    + [\n        pytest.param(\n            PointG2((1, 0), (0, 0)) + Scalar(0),\n            id=\"invalid_point_a_1\",\n        ),\n        pytest.param(\n            PointG2((0, 1), (0, 0)) + Scalar(0),\n            id=\"invalid_point_a_2\",\n        ),\n        pytest.param(\n            PointG2((0, 0), (1, 0)) + Scalar(0),\n            id=\"invalid_point_a_3\",\n        ),\n        pytest.param(\n            PointG2((0, 0), (0, 1)) + Scalar(0),\n            id=\"invalid_point_a_4\",\n        ),\n        pytest.param(\n            PointG2((Spec.P, 0), (0, 0)) + Scalar(0),\n            id=\"x_1_equal_to_p_times_0\",\n        ),\n        pytest.param(\n            PointG2((0, Spec.P), (0, 0)) + Scalar(0),\n            id=\"x_2_equal_to_p_times_0\",\n        ),\n        pytest.param(\n            PointG2((0, 0), (Spec.P, 0)) + Scalar(0),\n            id=\"y_1_equal_to_p_times_0\",\n        ),\n        pytest.param(\n            PointG2((0, 0), (0, Spec.P)) + Scalar(0),\n            id=\"y_2_equal_to_p_times_0\",\n        ),\n        pytest.param(\n            PointG2((Spec.P + 1, 0), (0, 0)) + Scalar(0),\n            id=\"x1_above_modulus_times_0\",\n        ),\n        pytest.param(\n            PointG2(\n                (0x01, 0),  # x coordinate in Fp2 (1 + 0i)\n                (0x07, 0),  # y coordinate satisfying y^2 = x^3 + 5 in Fp2\n            )\n            + Scalar(0),\n            id=\"point_on_wrong_curve_times_0\",\n        ),\n        pytest.param(\n            b\"\\x80\" + bytes(Spec.INF_G2)[1:] + Scalar(0),\n            id=\"invalid_encoding\",\n        ),\n        pytest.param(\n            (Spec.INF_G2 + Scalar(0))[:-1],\n            id=\"input_too_short\",\n        ),\n        pytest.param(\n            b\"\\x00\" + (Spec.INF_G2 + Scalar(0)),\n            id=\"input_too_long\",\n        ),\n        pytest.param(\n            b\"\",\n            id=\"zero_length_input\",\n        ),\n        pytest.param(\n            b\"\\x00\" * 160,\n            id=\"all_zero_160_bytes\",\n        ),\n        pytest.param(\n            b\"\\xff\" + b\"\\x00\" * 127 + b\"\\xff\" + b\"\\x00\" * 31,\n            id=\"bad_inf_flag_with_scalar\",\n        ),\n        pytest.param(\n            b\"\\xc0\" + b\"\\x00\" * 127 + b\"\\x00\" * 32,\n            id=\"comp_instead_of_uncomp_with_scalar\",\n        ),\n        pytest.param(\n            Spec.G1 + Spec.G1,\n            id=\"g1_input_invalid_length\",\n        ),\n        pytest.param(\n            Spec.G2 + Spec.G2,\n            id=\"g2_input_invalid_length\",\n        ),\n        pytest.param(\n            Spec.G2,\n            id=\"g2_truncated_input\",\n        ),\n        pytest.param(\n            Spec.INF_G2 + Scalar(0).x.to_bytes(30, byteorder=\"big\"),\n            id=\"inf_with_short_scalar\",\n        ),\n        pytest.param(\n            Spec.INF_G2 + Scalar(0).x.to_bytes(34, byteorder=\"big\"),\n            id=\"inf_with_long_scalar\",\n        ),\n        pytest.param(\n            Spec.INF_G2 + (b\"\\x01\" + b\"\\x00\" * 32),\n            id=\"scalar_too_large_bytes\",\n        ),\n        pytest.param(\n            Spec.P2 + (b\"\\x01\" + b\"\\x00\" * 32),\n            id=\"scalar_too_large_bytes_with_point\",\n        ),\n        pytest.param(\n            Spec.G2 + (b\"\\x01\\x23\\x45\"),\n            id=\"scalar_too_small_bytes\",\n        ),\n        pytest.param(\n            Scalar(1) + Scalar(1),\n            id=\"two_scalars\",\n        ),\n        pytest.param(\n            bytes(Spec.G2) + bytes(Scalar(0))[128:],\n            id=\"mixed_g2_scalar_truncated\",\n        ),\n        pytest.param(\n            PointG2((Spec.P2.x[0] | Spec.MAX_FP_BIT_SET, Spec.P2.x[1]), Spec.P2.y) + Scalar(1),\n            id=\"non_zero_byte_16_boundary_violation_x1\",\n        ),\n        pytest.param(\n            PointG2((Spec.P2.x[0], Spec.P2.x[1] | Spec.MAX_FP_BIT_SET), Spec.P2.y) + Scalar(1),\n            id=\"non_zero_byte_16_boundary_violation_x2\",\n        ),\n        pytest.param(\n            PointG2(Spec.P2.x, (Spec.P2.y[0] | Spec.MAX_FP_BIT_SET, Spec.P2.y[1])) + Scalar(1),\n            id=\"non_zero_byte_16_boundary_violation_y1\",\n        ),\n        pytest.param(\n            PointG2(Spec.P2.x, (Spec.P2.y[0], Spec.P2.y[1] | Spec.MAX_FP_BIT_SET)) + Scalar(1),\n            id=\"non_zero_byte_16_boundary_violation_y2\",\n        ),\n        # Not in the r-order subgroup test cases.\n        pytest.param(\n            Spec.P2_NOT_IN_SUBGROUP + Scalar(0),\n            id=\"not_in_subgroup_times_0\",\n        ),\n        pytest.param(\n            Spec.P2_NOT_IN_SUBGROUP + Scalar(1),\n            id=\"not_in_subgroup_times_1\",\n        ),\n        pytest.param(\n            Spec.P2_NOT_IN_SUBGROUP + Scalar(2),\n            id=\"not_in_subgroup_times_2\",\n        ),\n        pytest.param(\n            Spec.P2_NOT_IN_SUBGROUP + Scalar(3),\n            id=\"not_in_subgroup_times_3\",\n        ),\n        pytest.param(\n            Scalar(Spec.Q) + Spec.P2_NOT_IN_SUBGROUP,\n            id=\"q_times_not_in_subgroup\",\n        ),\n        pytest.param(\n            Spec.P2_NOT_IN_SUBGROUP + Scalar(Spec.Q - 1),\n            id=\"not_in_subgroup_times_q_minus_1\",\n        ),\n        pytest.param(\n            Spec.P2_NOT_IN_SUBGROUP + Scalar(Spec.Q + 1),\n            id=\"not_in_subgroup_times_q_plus_1\",\n        ),\n        # More not in the r-order subgroup test cases, but using random\n        # generated points.\n        pytest.param(\n            G2_POINTS_NOT_IN_SUBGROUP[0] + Scalar(1),\n            id=\"rand_not_in_subgroup_0_times_1\",\n        ),\n        pytest.param(\n            Scalar(2) + G2_POINTS_NOT_IN_SUBGROUP[1],\n            id=\"2_times_rand_not_in_subgroup_1\",\n        ),\n        pytest.param(\n            G2_POINTS_NOT_IN_SUBGROUP[2] + Scalar(Spec.Q),\n            id=\"rand_not_in_subgroup_2_times_q\",\n        ),\n        pytest.param(\n            Scalar(0) + G2_POINTS_NOT_IN_SUBGROUP[3],\n            id=\"0_times_rand_not_in_subgroup_3\",\n        ),\n        pytest.param(\n            G2_POINTS_NOT_IN_SUBGROUP[4] + Scalar(2**255 - 1),\n            id=\"rand_not_in_subgroup_4_times_large_scalar\",\n        ),\n        # Not on the curve cases using random generated points.\n        pytest.param(\n            G2_POINTS_NOT_ON_CURVE[0] + Scalar(1),\n            id=\"rand_not_on_curve_0_times_1\",\n        ),\n        pytest.param(\n            G2_POINTS_NOT_ON_CURVE[1] + Scalar(2),\n            id=\"rand_not_on_curve_1_times_2\",\n        ),\n        pytest.param(\n            G2_POINTS_NOT_ON_CURVE[2] + Scalar(Spec.Q),\n            id=\"rand_not_on_curve_2_times_q\",\n        ),\n        pytest.param(\n            G2_POINTS_NOT_ON_CURVE[3] + Scalar(0),\n            id=\"rand_not_on_curve_3_times_0\",\n        ),\n        pytest.param(\n            G2_POINTS_NOT_ON_CURVE[4] + Scalar(Spec.Q - 1),\n            id=\"rand_not_on_curve_4_times_q_minus_1\",\n        ),\n    ],\n)\n@pytest.mark.parametrize(\"expected_output\", [Spec.INVALID], ids=[\"\"])\ndef test_invalid(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"Negative tests for the BLS12_G2MUL precompile.\"\"\"\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"input_data,expected_output,precompile_gas_modifier\",\n    [\n        pytest.param(\n            Spec.INF_G2 + Scalar(0),\n            Spec.INF_G2,\n            1,\n            id=\"extra_gas\",\n        ),\n        pytest.param(\n            Spec.INF_G2 + Scalar(0),\n            Spec.INVALID,\n            -1,\n            id=\"insufficient_gas\",\n        ),\n    ],\n)\ndef test_gas(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"Test the BLS12_G2MUL precompile gas requirements.\"\"\"\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"call_opcode\",  # Note `Op.CALL` is used for all the `test_valid` cases.\n    [\n        Op.STATICCALL,\n        Op.DELEGATECALL,\n        Op.CALLCODE,\n    ],\n)\n@pytest.mark.parametrize(\n    \"input_data,expected_output\",\n    [\n        pytest.param(\n            Spec.INF_G2 + Scalar(0),\n            Spec.INF_G2,\n            id=\"zero_times_inf\",\n        ),\n        pytest.param(\n            Spec.INF_G2 + Scalar(2),\n            Spec.INF_G2,\n            id=\"two_times_inf\",\n        ),\n    ],\n)\ndef test_call_types(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"Test the BLS12_G2MUL precompile using different call types.\"\"\"\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n"
  },
  {
    "path": "tests/prague/eip2537_bls_12_381_precompiles/test_bls12_map_fp2_to_g2.py",
    "content": "\"\"\"\nTest the BLS12_MAP_FP2_TO_G2 precompile.\n\nTest the BLS12_MAP_FP2_TO_G2 precompile introduced in\n[EIP-2537: Precompile for BLS12-381 curve operations](https://eips.ethereum.org/EIPS/eip-2537).\n\"\"\"\n\nimport pytest\n\nfrom ethereum_test_tools import Alloc, Environment, StateTestFiller, Transaction\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom .conftest import G2_FIELD_POINTS_MAP_TO_IDENTITY\nfrom .helpers import vectors_from_file\nfrom .spec import FP2, PointG2, Spec, ref_spec_2537\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_2537.git_path\nREFERENCE_SPEC_VERSION = ref_spec_2537.version\n\npytestmark = [\n    pytest.mark.valid_from(\"Prague\"),\n    pytest.mark.parametrize(\"precompile_address\", [Spec.MAP_FP2_TO_G2], ids=[\"\"]),\n]\n\nG2_POINT_ZERO_FP = PointG2(\n    (\n        0x18320896EC9EEF9D5E619848DC29CE266F413D02DD31D9B9D44EC0C79CD61F18B075DDBA6D7BD20B7FF27A4B324BFCE,\n        0xA67D12118B5A35BB02D2E86B3EBFA7E23410DB93DE39FB06D7025FA95E96FFA428A7A27C3AE4DD4B40BD251AC658892,\n    ),\n    (\n        0x260E03644D1A2C321256B3246BAD2B895CAD13890CBE6F85DF55106A0D334604FB143C7A042D878006271865BC35941,\n        0x4C69777A43F0BDA07679D5805E63F18CF4E0E7C6112AC7F70266D199B4F76AE27C6269A3CEEBDAE30806E9A76AADF5C,\n    ),\n)\n\n\n@pytest.mark.parametrize(\n    \"input_data,expected_output,vector_gas_value\",\n    # Test vectors from the reference spec (from the cryptography team)\n    vectors_from_file(\"map_fp2_to_G2_bls.json\")\n    + [\n        pytest.param(\n            FP2((0, 0)),\n            G2_POINT_ZERO_FP,\n            None,\n            id=\"fp_0\",\n        ),\n        pytest.param(\n            FP2((Spec.P - 1, Spec.P - 1)),\n            PointG2(\n                (\n                    0x9BF1B857D8C15F317F649ACCFA7023EF21CFC03059936B83B487DB476FF9D2FE64C6147140A5F0A436B875F51FFDF07,\n                    0xBB10E09BDF236CB2951BD7BCC044E1B9A6BB5FD4B2019DCC20FFDE851D52D4F0D1A32382AF9D7DA2C5BA27E0F1C69E6,\n                ),\n                (\n                    0xDD416A927AB1C15490AB753C973FD377387B12EFCBE6BED2BF768B9DC95A0CA04D1A8F0F30DBC078A2350A1F823CFD3,\n                    0x171565CE4FCD047B35EA6BCEE4EF6FDBFEC8CC73B7ACDB3A1EC97A776E13ACDFEFFC21ED6648E3F0EEC53DDB6C20FB61,\n                ),\n            ),\n            None,\n            id=\"fp_p_minus_1\",\n        ),\n        pytest.param(\n            FP2(\n                (\n                    3510328712861478240121438855244276237335901234329585006107499559909114695366216070652508985150831181717984778988906,\n                    2924545590598115509050131525615277284817672420174395176262156166974132393611647670391999011900253695923948997972401,\n                )\n            ),\n            Spec.INF_G2,\n            None,\n            id=\"fp_map_to_inf\",\n        ),\n    ],\n)\ndef test_valid(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"Test the BLS12_MAP_FP2_TO_G2 precompile.\"\"\"\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\"expected_output\", [Spec.INF_G2], ids=[\"\"])\n@pytest.mark.parametrize(\n    \"input_data,vector_gas_value\",\n    [\n        pytest.param(t, None, id=f\"isogeny_kernel_{i}\")\n        for i, t in enumerate(G2_FIELD_POINTS_MAP_TO_IDENTITY)\n    ],\n)\ndef test_isogeny_kernel_values(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"\n    Test the BLS12_MAP_FP2_TO_G2 precompile with isogeny kernel values. Note\n    this test only exists to align with the G1 test.\n    `G2_FIELD_POINTS_MAP_TO_IDENTITY` is empty so there are no cases.\n\n    The isogeny kernel is simply the set of special field values, that after\n    the two step mapping (first SWU onto an auxiliary curve, then a 3-degree\n    isogeny back to G2), collapse exactly to the identity point.\n\n    For the G2 case the only kernel element is the point at infinity, and SWU\n    never produces the identity point from a finite input t. Hence\n    `G2_FIELD_POINTS_MAP_TO_IDENTITY` is empty. Please proceed to the generator\n    in `helpers.py` for more details.\n    \"\"\"\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"input_data\",\n    # Test vectors from the reference spec (from the cryptography team)\n    vectors_from_file(\"fail-map_fp2_to_G2_bls.json\")\n    + [\n        pytest.param(b\"\\x80\" + bytes(FP2((0, 0)))[1:], id=\"invalid_encoding\"),\n        pytest.param(bytes(FP2((0, 0)))[1:], id=\"input_too_short\"),\n        pytest.param(b\"\\x00\" + FP2((0, 0)), id=\"input_too_long\"),\n        pytest.param(b\"\", id=\"zero_length_input\"),\n        pytest.param(FP2((Spec.P, 0)), id=\"fq_eq_q\"),\n        pytest.param(FP2((0, Spec.P)), id=\"fq_eq_q_2\"),\n        pytest.param(FP2((2**512 - 1, 0)), id=\"fq_eq_2_512_minus_1\"),\n        pytest.param(FP2((0, 2**512 - 1)), id=\"fq_eq_2_512_minus_1_2\"),\n        pytest.param(Spec.G2, id=\"g2_input\"),\n        pytest.param(FP2((Spec.P + 1, 0)), id=\"fp2_above_modulus_c0\"),\n        pytest.param(FP2((0, Spec.P + 1)), id=\"fp2_above_modulus_c1\"),\n        pytest.param(FP2((2**384, 0)), id=\"fp2_large_power_of_2_c0\"),\n        pytest.param(FP2((0, 2**384)), id=\"fp2_large_power_of_2_c1\"),\n        pytest.param(bytes(FP2((0, 0))) + bytes([0x00]), id=\"fp2_with_extra_byte\"),\n        pytest.param(bytes(FP2((0, 0)))[:95], id=\"fp2_one_byte_short\"),\n        pytest.param(bytes([0xFF]) + bytes(FP2((0, 0)))[1:], id=\"fp2_invalid_first_byte\"),\n        pytest.param(Spec.INF_G2, id=\"g2_inf_input\"),\n        pytest.param(\n            FP2(((Spec.P - 1) | Spec.MAX_FP_BIT_SET, Spec.P - 1)),\n            id=\"non_zero_byte_16_boundary_violation_c0\",\n        ),\n        pytest.param(\n            FP2((Spec.P - 1, (Spec.P - 1) | Spec.MAX_FP_BIT_SET)),\n            id=\"non_zero_byte_16_boundary_violation_c1\",\n        ),\n    ],\n)\n@pytest.mark.parametrize(\"expected_output\", [Spec.INVALID], ids=[\"\"])\ndef test_invalid(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"Negative tests for the BLS12_MAP_FP_TO_G2 precompile.\"\"\"\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"input_data,expected_output,precompile_gas_modifier\",\n    [\n        pytest.param(\n            FP2((0, 0)),\n            G2_POINT_ZERO_FP,\n            1,\n            id=\"extra_gas\",\n        ),\n        pytest.param(\n            FP2((0, 0)),\n            Spec.INVALID,\n            -1,\n            id=\"insufficient_gas\",\n        ),\n    ],\n)\ndef test_gas(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"Test the BLS12_MAP_FP_TO_G2 precompile gas requirements.\"\"\"\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"call_opcode\",  # Note `Op.CALL` is used for all the `test_valid` cases.\n    [\n        Op.STATICCALL,\n        Op.DELEGATECALL,\n        Op.CALLCODE,\n    ],\n)\n@pytest.mark.parametrize(\n    \"input_data,expected_output\",\n    [\n        pytest.param(\n            FP2((0, 0)),\n            G2_POINT_ZERO_FP,\n            id=\"fp_0\",\n        ),\n    ],\n)\ndef test_call_types(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"Test the BLS12_MAP_FP_TO_G2 precompile using different call types.\"\"\"\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n"
  },
  {
    "path": "tests/prague/eip2537_bls_12_381_precompiles/test_bls12_map_fp_to_g1.py",
    "content": "\"\"\"\nTests BLS12_MAP_FP_TO_G1 precompile.\n\nTests the BLS12_MAP_FP_TO_G1 precompile implementation from\n[EIP-2537: Precompile for BLS12-381 curve operations](https://eips.ethereum.org/EIPS/eip-2537).\n\"\"\"\n\nimport pytest\n\nfrom ethereum_test_tools import Alloc, Environment, StateTestFiller, Transaction\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom .conftest import G1_FIELD_POINTS_MAP_TO_IDENTITY\nfrom .helpers import vectors_from_file\nfrom .spec import FP, PointG1, Spec, ref_spec_2537\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_2537.git_path\nREFERENCE_SPEC_VERSION = ref_spec_2537.version\n\npytestmark = [\n    pytest.mark.valid_from(\"Prague\"),\n    pytest.mark.parametrize(\"precompile_address\", [Spec.MAP_FP_TO_G1], ids=[\"\"]),\n]\n\nG1_POINT_ZERO_FP = PointG1(\n    0x11A9A0372B8F332D5C30DE9AD14E50372A73FA4C45D5F2FA5097F2D6FB93BCAC592F2E1711AC43DB0519870C7D0EA415,\n    0x92C0F994164A0719F51C24BA3788DE240FF926B55F58C445116E8BC6A47CD63392FD4E8E22BDF9FEAA96EE773222133,\n)\n\n\n@pytest.mark.parametrize(\n    \"input_data,expected_output,vector_gas_value\",\n    # Test vectors from the reference spec (from the cryptography team)\n    vectors_from_file(\"map_fp_to_G1_bls.json\")\n    + [\n        pytest.param(\n            FP(0),\n            G1_POINT_ZERO_FP,\n            None,\n            id=\"fp_0\",\n        ),\n        pytest.param(\n            FP(Spec.P - 1),\n            PointG1(\n                0x1073311196F8EF19477219CCEE3A48035FF432295AA9419EED45D186027D88B90832E14C4F0E2AA4D15F54D1C3ED0F93,\n                0x16B3A3B2E3DDDF6A11459DDAF657FDE21C4F10282A56029D9B55AB3CE1F41E1CF39AD27E0EA35823C7D3250E81FF3D66,\n            ),\n            None,\n            id=\"fp_p_minus_1\",\n        ),\n        pytest.param(\n            FP(\n                799950832265136997107648781861994410980648980263584507133499364313075404851459407870655748616451882783569609925573\n            ),\n            Spec.INF_G1,\n            None,\n            id=\"fp_map_to_inf\",\n        ),\n    ],\n)\ndef test_valid(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"Test the BLS12_MAP_FP_TO_G1 precompile.\"\"\"\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\"expected_output\", [Spec.INF_G1], ids=[\"\"])\n@pytest.mark.parametrize(\n    \"input_data,vector_gas_value\",\n    [\n        pytest.param(t, None, id=f\"isogeny_kernel_{i}\")\n        for i, t in enumerate(G1_FIELD_POINTS_MAP_TO_IDENTITY)\n    ],\n)\ndef test_isogeny_kernel_values(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"\n    Test the BLS12_MAP_FP_TO_G1 precompile with isogeny kernel inputs.\n\n    The isogeny kernel is simply the set of special field values, that after\n    the two step mapping (first SWU onto an auxiliary curve, then an 11-degree\n    isogeny back to G1), collapse exactly to the identity point.\n\n    Please proceed to the generator in `helpers.py` to see how the isogeny\n    kernel values are generated.\n    \"\"\"\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"input_data\",\n    # Test vectors from the reference spec (from the cryptography team)\n    vectors_from_file(\"fail-map_fp_to_G1_bls.json\")\n    + [\n        pytest.param(b\"\\x80\" + bytes(FP(0))[1:], id=\"invalid_encoding\"),\n        pytest.param(bytes(FP(0))[1:], id=\"input_too_short\"),\n        pytest.param(b\"\\x00\" + FP(0), id=\"input_too_long\"),\n        pytest.param(b\"\", id=\"zero_length_input\"),\n        pytest.param(FP(Spec.P), id=\"fq_eq_q\"),\n        pytest.param(FP(2**512 - 1), id=\"fq_eq_2_512_minus_1\"),\n        pytest.param(Spec.G1, id=\"g1_input\"),\n        pytest.param(FP(Spec.P + 1), id=\"fp_above_modulus\"),\n        pytest.param(FP(2**384), id=\"fp_large_power_of_2\"),\n        pytest.param(bytes(FP(0)) + bytes([0x00]), id=\"fp_with_extra_byte\"),\n        pytest.param(bytes(FP(0))[:47], id=\"fp_one_byte_short\"),\n        pytest.param(bytes([0xFF]) + bytes(FP(0))[1:], id=\"fp_invalid_first_byte\"),\n        pytest.param(Spec.INF_G1, id=\"g1_inf_input\"),\n        pytest.param(\n            FP((Spec.P - 1) | Spec.MAX_FP_BIT_SET), id=\"non_zero_byte_16_boundary_violation\"\n        ),\n    ],\n)\n@pytest.mark.parametrize(\"expected_output\", [Spec.INVALID], ids=[\"\"])\ndef test_invalid(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"Negative tests for the BLS12_MAP_FP_TO_G1 precompile.\"\"\"\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"input_data,expected_output,precompile_gas_modifier\",\n    [\n        pytest.param(\n            FP(0),\n            G1_POINT_ZERO_FP,\n            1,\n            id=\"extra_gas\",\n        ),\n        pytest.param(\n            FP(0),\n            Spec.INVALID,\n            -1,\n            id=\"insufficient_gas\",\n        ),\n    ],\n)\ndef test_gas(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"Test the BLS12_MAP_FP_TO_G1 precompile gas requirements.\"\"\"\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"call_opcode\",  # Note `Op.CALL` is used for all the `test_valid` cases.\n    [\n        Op.STATICCALL,\n        Op.DELEGATECALL,\n        Op.CALLCODE,\n    ],\n)\n@pytest.mark.parametrize(\n    \"input_data,expected_output\",\n    [\n        pytest.param(\n            FP(0),\n            G1_POINT_ZERO_FP,\n            id=\"fp_0\",\n        ),\n    ],\n)\ndef test_call_types(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"Test the BLS12_MAP_FP_TO_G1 precompile using different call types.\"\"\"\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n"
  },
  {
    "path": "tests/prague/eip2537_bls_12_381_precompiles/test_bls12_pairing.py",
    "content": "\"\"\"\nTests BLS12_PAIRING precompile.\n\nTests the BLS12_PAIRING precompile implementation from\n[EIP-2537: Precompile for BLS12-381 curve operations](https://eips.ethereum.org/EIPS/eip-2537).\n\"\"\"\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    EOA,\n    Address,\n    Alloc,\n    Environment,\n    StateTestFiller,\n    Transaction,\n)\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom .conftest import (\n    G1_POINTS_NOT_IN_SUBGROUP,\n    G1_POINTS_NOT_ON_CURVE,\n    G2_POINTS_NOT_IN_SUBGROUP,\n    G2_POINTS_NOT_ON_CURVE,\n)\nfrom .helpers import vectors_from_file\nfrom .spec import PointG1, PointG2, Spec, pairing_gas, ref_spec_2537\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_2537.git_path\nREFERENCE_SPEC_VERSION = ref_spec_2537.version\n\npytestmark = [\n    pytest.mark.valid_from(\"Prague\"),\n    pytest.mark.parametrize(\"precompile_address\", [Spec.PAIRING], ids=[\"\"]),\n]\n\n\n@pytest.mark.parametrize(\n    \"input_data,expected_output,vector_gas_value\",\n    # Test vectors from the reference spec (from the cryptography team)\n    vectors_from_file(\"pairing_check_bls.json\")\n    + [\n        pytest.param(\n            Spec.G1 + Spec.INF_G2,\n            Spec.PAIRING_TRUE,\n            None,\n            id=\"generator_with_inf_g2\",\n        ),\n        pytest.param(\n            Spec.INF_G1 + Spec.G2,\n            Spec.PAIRING_TRUE,\n            None,\n            id=\"inf_g1_with_generator\",\n        ),\n        pytest.param(  # e(inf, inf) == 1\n            Spec.INF_G1 + Spec.INF_G2,\n            Spec.PAIRING_TRUE,\n            None,\n            id=\"inf_pair\",\n        ),\n        pytest.param(  # e(P, Q) . e(P, −Q) == 1 (inverse pair, factors cancel)\n            Spec.G1 + Spec.G2 + Spec.G1 + (-Spec.G2),\n            Spec.PAIRING_TRUE,\n            None,\n            id=\"g1_g2_and_inverse\",\n        ),\n        pytest.param(  # e(P,Q) · e(P,−Q) · e(−P,Q) · e(−P,−Q) == 1 (full sign cancellation)\n            Spec.G1\n            + Spec.G2\n            + Spec.G1\n            + (-Spec.G2)\n            + (-Spec.G1)\n            + Spec.G2\n            + (-Spec.G1)\n            + (-Spec.G2),\n            Spec.PAIRING_TRUE,\n            None,\n            id=\"full_sign_cancellation\",\n        ),\n        pytest.param(  # 127 × e(inf, inf) . e(P, Q) + e(P, −Q) == 1\n            (Spec.INF_G1 + Spec.INF_G2) * 127 + Spec.G1 + Spec.G2 + Spec.G1 + (-Spec.G2),\n            Spec.PAIRING_TRUE,\n            None,\n            id=\"large_input_with_cancellation\",\n        ),\n        pytest.param(  # e(P, Q) . e(−P, −Q) =  e(P, Q)^2\n            Spec.G1 + Spec.G2 + (-Spec.G1) + (-Spec.G2),\n            Spec.PAIRING_FALSE,\n            None,\n            id=\"negated_both_pairs\",\n        ),\n        pytest.param(  # e(inf, inf) . e(P, −Q)\n            (Spec.INF_G1 + Spec.INF_G2) + (Spec.G1 + (-Spec.G2)),\n            Spec.PAIRING_FALSE,\n            None,\n            id=\"multi_inf_g1_neg_g2\",\n        ),\n        pytest.param(\n            (Spec.G1 + (-Spec.G2)) + (Spec.INF_G1 + Spec.INF_G2),\n            Spec.PAIRING_FALSE,\n            None,\n            id=\"g1_neg_g2_multi_inf\",\n        ),\n        pytest.param(\n            Spec.G1 + Spec.G2,\n            Spec.PAIRING_FALSE,\n            None,\n            id=\"single_generator_pair\",\n        ),\n        pytest.param(\n            (Spec.INF_G1 + Spec.INF_G2) + (Spec.G1 + Spec.G2),\n            Spec.PAIRING_FALSE,\n            None,\n            id=\"inf_plus_generator_pair\",\n        ),\n        pytest.param(  # e(P, Q) . e(P, −Q) . e(−P, Q)\n            Spec.G1 + Spec.G2 + Spec.G1 + (-Spec.G2) + (-Spec.G1) + Spec.G2,\n            Spec.PAIRING_FALSE,\n            None,\n            id=\"partial_sign_cancellation\",\n        ),\n    ],\n)\ndef test_valid(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"Test the BLS12_PAIRING precompile.\"\"\"\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.slow\n@pytest.mark.parametrize(\"precompile_gas\", [None], ids=[\"\"])\n@pytest.mark.parametrize(\"expected_output\", [Spec.PAIRING_TRUE], ids=[\"\"])\ndef test_valid_multi_inf(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    call_contract_address: Address,\n    sender: EOA,\n    fork: Fork,\n    post: dict,\n) -> None:\n    \"\"\"\n    Test maximum input given the current environment gas limit for the\n    BLS12_PAIRING precompile.\n    \"\"\"\n    intrinsic_gas_cost_calculator = fork.transaction_intrinsic_cost_calculator()\n    memory_expansion_gas_calculator = fork.memory_expansion_gas_calculator()\n    extra_gas = 100_000\n\n    tx_gas_limit_cap = fork.transaction_gas_limit_cap()\n    max_gas_limit = Environment().gas_limit if tx_gas_limit_cap is None else tx_gas_limit_cap\n\n    inf_data = Spec.INF_G1 + Spec.INF_G2\n    input_data = inf_data\n\n    while True:\n        precompile_gas = pairing_gas(len(input_data + inf_data))\n        new_tx_gas_limit = (\n            extra_gas\n            + intrinsic_gas_cost_calculator(calldata=input_data + inf_data)\n            + memory_expansion_gas_calculator(new_bytes=len(input_data + inf_data))\n            + precompile_gas\n        )\n        if new_tx_gas_limit > max_gas_limit:\n            break\n        tx_gas_limit = new_tx_gas_limit\n        input_data += inf_data\n\n    tx = Transaction(\n        gas_limit=tx_gas_limit,\n        data=input_data,\n        to=call_contract_address,\n        sender=sender,\n    )\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"input_data\",\n    # Test vectors from the reference spec (from the cryptography team)\n    vectors_from_file(\"fail-pairing_check_bls.json\")\n    + [\n        # Coordinate equal to p (modulus) in G1\n        pytest.param(\n            PointG1(Spec.P, 0) + Spec.INF_G2,\n            id=\"g1_p_g2_inf_1\",\n        ),\n        pytest.param(\n            PointG1(0, Spec.P) + Spec.INF_G2,\n            id=\"g1_p_g2_inf_2\",\n        ),\n        # Coordinate equal to p (modulus) in G2\n        pytest.param(\n            Spec.INF_G1 + PointG2((Spec.P, 0), (0, 0)),\n            id=\"g1_inf_g2_p_1\",\n        ),\n        pytest.param(\n            Spec.INF_G1 + PointG2((0, Spec.P), (0, 0)),\n            id=\"g1_inf_g2_p_2\",\n        ),\n        pytest.param(\n            Spec.INF_G1 + PointG2((0, 0), (Spec.P, 0)),\n            id=\"g1_inf_g2_p_3\",\n        ),\n        pytest.param(\n            Spec.INF_G1 + PointG2((0, 0), (0, Spec.P)),\n            id=\"g1_inf_g2_p_4\",\n        ),\n        pytest.param(\n            b\"\\x80\" + bytes(Spec.INF_G1)[1:] + Spec.INF_G2,\n            id=\"invalid_encoding_g1\",\n        ),\n        pytest.param(\n            Spec.INF_G1 + b\"\\x80\" + bytes(Spec.INF_G2)[1:],\n            id=\"invalid_encoding_g2\",\n        ),\n        pytest.param(\n            Spec.P1_NOT_IN_SUBGROUP + Spec.INF_G2,\n            id=\"p1_not_in_subgroup\",\n        ),\n        pytest.param(\n            Spec.INF_G1 + Spec.P2_NOT_IN_SUBGROUP,\n            id=\"p2_not_in_subgroup\",\n        ),\n        # Points not in the subgroup or not on the curve randomly generated.\n        pytest.param(\n            G1_POINTS_NOT_ON_CURVE[0] + Spec.INF_G2,\n            id=\"rand_not_on_curve_g1_0_plus_inf\",\n        ),\n        pytest.param(\n            G1_POINTS_NOT_ON_CURVE[1] + Spec.G2,\n            id=\"rand_not_on_curve_g1_1_plus_g2\",\n        ),\n        pytest.param(\n            G1_POINTS_NOT_IN_SUBGROUP[0] + Spec.G2,\n            id=\"rand_not_in_subgroup_g1_0_plus_g2\",\n        ),\n        pytest.param(\n            G1_POINTS_NOT_IN_SUBGROUP[1] + Spec.INF_G2,\n            id=\"rand_not_in_subgroup_g1_1_plus_inf\",\n        ),\n        pytest.param(\n            Spec.INF_G1 + G2_POINTS_NOT_ON_CURVE[0],\n            id=\"inf_plus_rand_not_on_curve_g2_0\",\n        ),\n        pytest.param(\n            Spec.G1 + G2_POINTS_NOT_ON_CURVE[1],\n            id=\"g1_plus_rand_not_on_curve_g2_1\",\n        ),\n        pytest.param(\n            Spec.INF_G1 + G2_POINTS_NOT_IN_SUBGROUP[0],\n            id=\"inf_plus_rand_not_in_subgroup_g2_0\",\n        ),\n        pytest.param(\n            Spec.G1 + G2_POINTS_NOT_IN_SUBGROUP[1],\n            id=\"g1_plus_rand_not_in_subgroup_g2_1\",\n        ),\n        # Coordinates above modulus p cases.\n        pytest.param(\n            PointG1(Spec.P1.x + Spec.P, Spec.P1.y) + Spec.INF_G2,\n            id=\"g1_x_above_p_with_inf_g2\",\n        ),\n        pytest.param(\n            PointG1(Spec.P1.x, Spec.P1.y + Spec.P) + Spec.INF_G2,\n            id=\"g1_y_above_p_with_inf_g2\",\n        ),\n        pytest.param(\n            Spec.INF_G1 + PointG2((Spec.P2.x[0] + Spec.P, Spec.P2.x[1]), Spec.P2.y),\n            id=\"inf_g1_with_g2_x_c0_above_p\",\n        ),\n        pytest.param(\n            Spec.INF_G1 + PointG2((Spec.P2.x[0], Spec.P2.x[1] + Spec.P), Spec.P2.y),\n            id=\"inf_g1_with_g2_x_c1_above_p\",\n        ),\n        pytest.param(\n            Spec.INF_G1 + PointG2(Spec.P2.x, (Spec.P2.y[0] + Spec.P, Spec.P2.y[1])),\n            id=\"inf_g1_with_g2_y_c0_above_p\",\n        ),\n        pytest.param(\n            Spec.INF_G1 + PointG2(Spec.P2.x, (Spec.P2.y[0], Spec.P2.y[1] + Spec.P)),\n            id=\"inf_g1_with_g2_y_c1_above_p\",\n        ),\n        # Non-zero byte 16 boundary violation test cases.\n        pytest.param(\n            PointG1(Spec.G1.x | Spec.MAX_FP_BIT_SET, Spec.G1.y) + Spec.INF_G2,\n            id=\"non_zero_byte_16_boundary_violation_g1_x\",\n        ),\n        pytest.param(\n            PointG1(Spec.G1.x, Spec.G1.y | Spec.MAX_FP_BIT_SET) + Spec.INF_G2,\n            id=\"non_zero_byte_16_boundary_violation_g1_y\",\n        ),\n        pytest.param(\n            Spec.INF_G1 + PointG2((Spec.G2.x[0] | Spec.MAX_FP_BIT_SET, Spec.G2.x[1]), Spec.G2.y),\n            id=\"non_zero_byte_16_boundary_violation_g1_x1\",\n        ),\n        pytest.param(\n            Spec.INF_G1 + PointG2((Spec.G2.x[0], Spec.G2.x[1] | Spec.MAX_FP_BIT_SET), Spec.G2.y),\n            id=\"non_zero_byte_16_boundary_violation_g1_x2\",\n        ),\n        pytest.param(\n            Spec.INF_G1 + PointG2(Spec.G2.x, (Spec.G2.y[0] | Spec.MAX_FP_BIT_SET, Spec.G2.y[1])),\n            id=\"non_zero_byte_16_boundary_violation_g1_y1\",\n        ),\n        pytest.param(\n            Spec.INF_G1 + PointG2(Spec.G2.x, (Spec.G2.y[0], Spec.G2.y[1] | Spec.MAX_FP_BIT_SET)),\n            id=\"non_zero_byte_16_boundary_violation_g1_y2\",\n        ),\n    ],\n)\n@pytest.mark.parametrize(\"expected_output\", [Spec.INVALID], ids=[\"\"])\ndef test_invalid(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"Negative tests for the BLS12_PAIRING precompile.\"\"\"\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.slow\n@pytest.mark.parametrize(\"precompile_gas\", [None], ids=[\"\"])\n@pytest.mark.parametrize(\"expected_output\", [Spec.INVALID], ids=[\"\"])\ndef test_invalid_multi_inf(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    call_contract_address: Address,\n    sender: EOA,\n    fork: Fork,\n    post: dict,\n) -> None:\n    \"\"\"\n    Test maximum input given the current environment gas limit for the\n    BLS12_PAIRING precompile and an invalid tail.\n    \"\"\"\n    intrinsic_gas_cost_calculator = fork.transaction_intrinsic_cost_calculator()\n    memory_expansion_gas_calculator = fork.memory_expansion_gas_calculator()\n    extra_gas = 100_000\n\n    tx_gas_limit_cap = fork.transaction_gas_limit_cap()\n    max_gas_limit = Environment().gas_limit if tx_gas_limit_cap is None else tx_gas_limit_cap\n\n    inf_data = Spec.INF_G1 + Spec.INF_G2\n    input_data = PointG1(Spec.P, 0) + Spec.INF_G2\n\n    while True:\n        precompile_gas = pairing_gas(len(input_data + inf_data))\n        new_tx_gas_limit = (\n            extra_gas\n            + intrinsic_gas_cost_calculator(calldata=input_data + inf_data)\n            + memory_expansion_gas_calculator(new_bytes=len(input_data + inf_data))\n            + precompile_gas\n        )\n        if new_tx_gas_limit > max_gas_limit:\n            break\n        tx_gas_limit = new_tx_gas_limit\n        input_data = inf_data + input_data\n\n    tx = Transaction(\n        gas_limit=tx_gas_limit,\n        data=input_data,\n        to=call_contract_address,\n        sender=sender,\n    )\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"input_data,expected_output,precompile_gas_modifier\",\n    [\n        pytest.param(\n            Spec.INF_G1 + Spec.INF_G2,\n            Spec.PAIRING_TRUE,\n            1,\n            id=\"extra_gas\",\n        ),\n        pytest.param(\n            Spec.INF_G1 + Spec.INF_G2,\n            Spec.INVALID,\n            -1,\n            id=\"insufficient_gas\",\n        ),\n    ],\n)\ndef test_gas(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"Test the BLS12_PAIRING precompile gas requirements.\"\"\"\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"call_opcode\",  # Note `Op.CALL` is used for all the `test_valid` cases.\n    [\n        Op.STATICCALL,\n        Op.DELEGATECALL,\n        Op.CALLCODE,\n    ],\n)\n@pytest.mark.parametrize(\n    \"input_data,expected_output\",\n    [\n        pytest.param(\n            Spec.INF_G1 + Spec.INF_G2,\n            Spec.PAIRING_TRUE,\n            id=\"inf_pair\",\n        ),\n    ],\n)\ndef test_call_types(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"Test the BLS12_PAIRING precompile using different call types.\"\"\"\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n"
  },
  {
    "path": "tests/prague/eip2537_bls_12_381_precompiles/test_bls12_precompiles_before_fork.py",
    "content": "\"\"\"\nTests BLS12 precompiles before fork activation.\n\nTests the BLS12 precompiles behavior before fork activation from\n[EIP-2537: Precompile for BLS12-381 curve operations]\n(https://eips.ethereum.org/EIPS/eip-2537).\n\"\"\"\n\nimport pytest\n\nfrom ethereum_test_tools import Alloc, Environment, StateTestFiller, Transaction\n\nfrom .spec import FP, FP2, Scalar, Spec, ref_spec_2537\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_2537.git_path\nREFERENCE_SPEC_VERSION = ref_spec_2537.version\n\npytestmark = pytest.mark.valid_at_transition_to(\"Prague\")\n\n\n@pytest.mark.parametrize(\n    \"precompile_address,input_data\",\n    [\n        pytest.param(\n            Spec.G1ADD,\n            Spec.INF_G1 + Spec.INF_G1,\n            id=\"G1ADD\",\n        ),\n        pytest.param(\n            Spec.G1MSM,\n            Spec.INF_G1 + Scalar(0),\n            id=\"G1MSM\",\n        ),\n        pytest.param(\n            Spec.G2ADD,\n            Spec.INF_G2 + Spec.INF_G2,\n            id=\"G2ADD\",\n        ),\n        pytest.param(\n            Spec.G2MSM,\n            Spec.INF_G2 + Scalar(0),\n            id=\"G2MSM\",\n        ),\n        pytest.param(\n            Spec.PAIRING,\n            Spec.INF_G1 + Spec.INF_G2,\n            id=\"PAIRING\",\n        ),\n        pytest.param(\n            Spec.MAP_FP_TO_G1,\n            FP(0),\n            id=\"MAP_FP_TO_G1\",\n        ),\n        pytest.param(\n            Spec.MAP_FP2_TO_G2,\n            FP2((0, 0)),\n            id=\"MAP_FP2_TO_G2\",\n        ),\n    ],\n)\n@pytest.mark.parametrize(\"expected_output,call_succeeds\", [pytest.param(b\"\", True, id=\"\")])\ndef test_precompile_before_fork(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"\n    Test all BLS12 precompiles before the Prague hard fork is active.\n\n    The call must succeed but the output must be empty.\n    \"\"\"\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n"
  },
  {
    "path": "tests/prague/eip2537_bls_12_381_precompiles/test_bls12_variable_length_input_contracts.py",
    "content": "\"\"\"\nTests minimum gas and input length for BLS12 precompiles.\n\nTests minimum gas and input length requirements for BLS12_G1MSM,\nBLS12_G2MSM, and BLS12_PAIRING precompiles from [EIP-2537: Precompile\nfor BLS12-381 curve operations]\n(https://eips.ethereum.org/EIPS/eip-2537).\n\"\"\"\n\nfrom typing import Callable, List, SupportsBytes\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import Alloc, Bytecode, Environment, StateTestFiller, Storage, Transaction\nfrom ethereum_test_tools import Opcodes as Op\nfrom ethereum_test_tools.utility.pytest import ParameterSet\n\nfrom .spec import GAS_CALCULATION_FUNCTION_MAP, PointG1, PointG2, Scalar, Spec, ref_spec_2537\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_2537.git_path\nREFERENCE_SPEC_VERSION = ref_spec_2537.version\n\npytestmark = pytest.mark.valid_from(\"Prague\")\n\nG1_MSM_K_INPUT_LENGTH = len(PointG1() + Scalar())\nG2_MSM_K_INPUT_LENGTH = len(PointG2() + Scalar())\nG1_GAS = GAS_CALCULATION_FUNCTION_MAP[Spec.G1MSM]\nG2_GAS = GAS_CALCULATION_FUNCTION_MAP[Spec.G2MSM]\nPAIRING_GAS = GAS_CALCULATION_FUNCTION_MAP[Spec.PAIRING]\nPAIRINGS_TO_TEST = 20\n\n\n@pytest.fixture\ndef input_data() -> bytes:\n    \"\"\"\n    Calldata of the transaction is empty because all input in these tests is\n    zero.\n    \"\"\"\n    return b\"\"\n\n\n@pytest.fixture\ndef gas_modifier() -> int:\n    \"\"\"Gas modifier to apply to each element of the precompile_gas_list.\"\"\"\n    return 0\n\n\n@pytest.fixture\ndef input_length_modifier() -> int:\n    \"\"\"\n    Input length modifier to apply to each element of the precompile_gas_list.\n    \"\"\"\n    return 0\n\n\n@pytest.fixture\ndef env(fork: Fork, tx: Transaction) -> Environment:\n    \"\"\"Environment used for all tests.\"\"\"\n    env = Environment()\n    tx_gas_limit_cap = fork.transaction_gas_limit_cap()\n    if tx_gas_limit_cap is not None:\n        assert tx.gas_limit <= tx_gas_limit_cap, (\n            f\"tx exceeds gas limit cap: {int(tx.gas_limit)} > {tx_gas_limit_cap}\"\n        )\n    if tx.gas_limit > env.gas_limit:\n        env = Environment(gas_limit=tx.gas_limit)\n    return env\n\n\n@pytest.fixture\ndef call_contract_code(\n    precompile_address: int,\n    precompile_gas_list: List[int],\n    precompile_data_length_list: List[int],\n    gas_modifier: int,\n    input_length_modifier: int,\n    expected_output: bytes | SupportsBytes,\n    call_opcode: Op,\n    call_contract_post_storage: Storage,\n) -> Bytecode:\n    \"\"\"\n    Code of the test contract to validate minimum expected gas in precompiles,\n    as well as expected input lengths on all variable-length input precompiles.\n\n    Code differs from the one used in all other tests in this file, because it\n    accepts a list of precompile gas values and a list of precompile data\n    lengths, and for each pair of values, it calls the precompile with the\n    given gas and data length, data being passed to the precompile is all\n    zeros.\n\n    Args:\n      precompile_address: Address of the precompile to call.\n      precompile_gas_list: List of gas values to be used to call the\n                           precompile, one for each call.\n      precompile_data_length_list: List of data lengths to be used to call\n                                   the precompile, one for each call.\n      gas_modifier: Integer to add to the gas passed to the precompile.\n      input_length_modifier: Integer to add to the length of the input\n                             passed to the precompile.\n      expected_output: Expected output of the contract, it is only used to\n                       determine if the call is expected to succeed or fail.\n      call_opcode: Type of call used to call the precompile (Op.CALL,\n                   Op.CALLCODE, Op.DELEGATECALL, Op.STATICCALL).\n      call_contract_post_storage: Storage of the test contract after the\n                                  transaction is executed.\n\n    \"\"\"\n    expected_output = bytes(expected_output)\n\n    # Depending on the expected output, we can deduce if the call is expected\n    # to succeed or fail.\n    call_succeeds = len(expected_output) > 0\n\n    assert len(precompile_gas_list) == len(precompile_data_length_list)\n\n    assert call_opcode in [Op.CALL, Op.CALLCODE, Op.DELEGATECALL, Op.STATICCALL]\n    value = [0] if call_opcode in [Op.CALL, Op.CALLCODE] else []\n\n    code = Bytecode()\n    for precompile_gas, precompile_args_length in zip(\n        precompile_gas_list, precompile_data_length_list, strict=False\n    ):\n        # For each given precompile gas value, and given arguments length, call\n        # the precompile with the given gas and call data (all zeros) and\n        # compare the result.\n        code += Op.SSTORE(\n            call_contract_post_storage.store_next(1 if call_succeeds else 0),\n            Op.CALL(\n                precompile_gas + gas_modifier,\n                precompile_address,\n                *value,  # Optional, only used for CALL and CALLCODE.\n                0,\n                precompile_args_length\n                + input_length_modifier,  # Memory is empty, so we pass zeros.\n                0,\n                0,\n            ),\n        )\n    return code\n\n\ndef tx_gas_limit_calculator(\n    fork: Fork, precompile_gas_list: List[int], max_precompile_input_length: int\n) -> int:\n    \"\"\"\n    Calculate the gas used to execute the transaction with the given precompile\n    gas list.\n    \"\"\"\n    intrinsic_gas_cost_calculator = fork.transaction_intrinsic_cost_calculator()\n    memory_expansion_gas_calculator = fork.memory_expansion_gas_calculator()\n    extra_gas = 22_500 * len(precompile_gas_list)\n    return (\n        extra_gas\n        + intrinsic_gas_cost_calculator()\n        + memory_expansion_gas_calculator(new_bytes=max_precompile_input_length)\n        + sum(precompile_gas_list)\n    )\n\n\n@pytest.fixture\ndef tx_gas_limit(\n    fork: Fork,\n    input_data: bytes,\n    precompile_gas_list: List[int],\n    precompile_data_length_list: List[int],\n) -> int:\n    \"\"\"\n    Transaction gas limit used for the test (Can be overridden in the test).\n    \"\"\"\n    assert len(input_data) == 0, \"Expected empty data in the transaction.\"\n    return tx_gas_limit_calculator(fork, precompile_gas_list, max(precompile_data_length_list))\n\n\ndef get_split_discount_table_by_fork(\n    gas_fn: Callable, discount_table_length: int, element_length: int\n) -> Callable[[Fork], List[ParameterSet]]:\n    \"\"\"\n    Get the number of test cases needed to cover the given discount table\n    adjusted for the fork transaction gas limit cap.\n\n    The function will return the full discount table as a single test case if\n    the fork has no transaction gas limit cap, otherwise it will iterate to\n    determine the splits required to fit the full discount table across\n    multiple test cases.\n    \"\"\"\n\n    def parametrize_by_fork(fork: Fork) -> List[ParameterSet]:\n        tx_gas_limit_cap = fork.transaction_gas_limit_cap()\n        if tx_gas_limit_cap is None:\n            return [\n                pytest.param(\n                    [gas_fn(i * element_length) for i in range(1, discount_table_length + 1)],\n                    [i * element_length for i in range(1, discount_table_length + 1)],\n                    id=\"full_discount_table\",\n                )\n            ]\n        else:\n\n            def gas_list_from_range(min_index: int, max_index: int) -> List[int]:\n                return [gas_fn(i * element_length) for i in range(min_index, max_index)]\n\n            def get_range_cost(min_index: int, max_index: int) -> int:\n                return tx_gas_limit_calculator(\n                    fork,\n                    gas_list_from_range(min_index, max_index),\n                    max_index * element_length,\n                )\n\n            g1_msm_discount_table_ranges = []\n            current_min = 1\n            for current_max in range(2, discount_table_length + 1):\n                range_cost = get_range_cost(current_min, current_max + 1)\n                if range_cost > tx_gas_limit_cap:\n                    new_range = (current_min, current_max)\n                    g1_msm_discount_table_ranges.append(new_range)\n                    current_min = current_max\n                elif current_max == discount_table_length:\n                    new_range = (current_min, current_max + 1)\n                    g1_msm_discount_table_ranges.append(new_range)\n\n            g1_msm_discount_table_splits = [\n                [\n                    [gas_fn(i * element_length) for i in range(r[0], r[1])],\n                    [i * element_length for i in range(r[0], r[1])],\n                ]\n                for r in g1_msm_discount_table_ranges\n            ]\n            assert (\n                sum(len(split[0]) for split in g1_msm_discount_table_splits)\n                == discount_table_length\n            )\n            assert (\n                sum(len(split[1]) for split in g1_msm_discount_table_splits)\n                == discount_table_length\n            )\n            return [\n                pytest.param(\n                    *split,\n                    id=f\"discount_table_{idx + 1}_of_{len(g1_msm_discount_table_splits)}\",\n                )\n                for idx, split in enumerate(g1_msm_discount_table_splits)\n            ]\n\n    return parametrize_by_fork\n\n\n@pytest.mark.parametrize_by_fork(\n    \"precompile_gas_list,precompile_data_length_list\",\n    get_split_discount_table_by_fork(\n        G1_GAS, len(Spec.G1MSM_DISCOUNT_TABLE), G1_MSM_K_INPUT_LENGTH\n    ),\n)\n@pytest.mark.parametrize(\"gas_modifier\", [pytest.param(0, id=\"exact_gas\")])\n@pytest.mark.parametrize(\"expected_output\", [PointG1()], ids=[\"\"])\n@pytest.mark.parametrize(\"precompile_address\", [Spec.G1MSM])\n@pytest.mark.slow()\ndef test_valid_gas_g1msm(\n    state_test: StateTestFiller,\n    env: Environment,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"\n    Test the BLS12_G1MSM discount gas table in full, by expecting the call to\n    succeed for all possible input lengths because the appropriate amount of\n    gas is provided.\n\n    If any of the calls fail, the test will fail.\n    \"\"\"\n    state_test(\n        env=env,\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"precompile_gas_list,precompile_data_length_list\",\n    [\n        pytest.param(\n            [0],\n            [G1_MSM_K_INPUT_LENGTH],\n            id=\"zero_gas_passed\",\n        ),\n    ],\n)\n@pytest.mark.parametrize(\"expected_output\", [Spec.INVALID], ids=[\"\"])\n@pytest.mark.parametrize(\"precompile_address\", [Spec.G1MSM])\ndef test_invalid_zero_gas_g1msm(\n    state_test: StateTestFiller,\n    env: Environment,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"Test the BLS12_G1MSM precompile calling it with zero gas.\"\"\"\n    state_test(\n        env=env,\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize_by_fork(\n    \"precompile_gas_list,precompile_data_length_list\",\n    get_split_discount_table_by_fork(\n        G1_GAS, len(Spec.G1MSM_DISCOUNT_TABLE), G1_MSM_K_INPUT_LENGTH\n    ),\n)\n@pytest.mark.parametrize(\"gas_modifier\", [pytest.param(-1, id=\"insufficient_gas\")])\n@pytest.mark.parametrize(\"expected_output\", [Spec.INVALID], ids=[\"\"])\n@pytest.mark.parametrize(\"precompile_address\", [Spec.G1MSM])\ndef test_invalid_gas_g1msm(\n    state_test: StateTestFiller,\n    env: Environment,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"\n    Test the BLS12_G1MSM discount gas table in full, by expecting the call to\n    fail for all possible input lengths because the appropriate amount of gas\n    is not provided.\n\n    If any of the calls succeeds, the test will fail.\n    \"\"\"\n    state_test(\n        env=env,\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"precompile_gas_list,precompile_data_length_list\",\n    [\n        pytest.param(\n            [G1_GAS(G1_MSM_K_INPUT_LENGTH)],\n            [0],\n            id=\"zero_length_input\",\n        ),\n    ],\n)\n@pytest.mark.parametrize(\"expected_output\", [Spec.INVALID], ids=[\"\"])\n@pytest.mark.parametrize(\"precompile_address\", [Spec.G1MSM])\ndef test_invalid_zero_length_g1msm(\n    state_test: StateTestFiller,\n    env: Environment,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"Test the BLS12_G1MSM precompile by passing an input with zero length.\"\"\"\n    state_test(\n        env=env,\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize_by_fork(\n    \"precompile_gas_list,precompile_data_length_list\",\n    get_split_discount_table_by_fork(\n        G1_GAS, len(Spec.G1MSM_DISCOUNT_TABLE), G1_MSM_K_INPUT_LENGTH\n    ),\n)\n@pytest.mark.parametrize(\n    \"input_length_modifier\",\n    [\n        pytest.param(-1, id=\"input_one_byte_too_short\"),\n        pytest.param(1, id=\"input_one_byte_too_long\"),\n    ],\n)\n@pytest.mark.parametrize(\"expected_output\", [Spec.INVALID], ids=[\"\"])\n@pytest.mark.parametrize(\"precompile_address\", [Spec.G1MSM])\ndef test_invalid_length_g1msm(\n    state_test: StateTestFiller,\n    env: Environment,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"\n    Test the BLS12_G1MSM discount gas table in full, by expecting the call to\n    fail for all possible input lengths provided because they are too long or\n    short, or zero length.\n\n    If any of the calls succeeds, the test will fail.\n    \"\"\"\n    state_test(\n        env=env,\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize_by_fork(\n    \"precompile_gas_list,precompile_data_length_list\",\n    get_split_discount_table_by_fork(\n        G2_GAS, len(Spec.G2MSM_DISCOUNT_TABLE), G2_MSM_K_INPUT_LENGTH\n    ),\n)\n@pytest.mark.parametrize(\"gas_modifier\", [pytest.param(0, id=\"exact_gas\")])\n@pytest.mark.parametrize(\"expected_output\", [PointG2()], ids=[\"\"])\n@pytest.mark.parametrize(\"precompile_address\", [Spec.G2MSM])\n@pytest.mark.slow()\ndef test_valid_gas_g2msm(\n    state_test: StateTestFiller,\n    env: Environment,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"\n    Test the BLS12_G2MSM discount gas table in full, by expecting the call to\n    succeed for all possible input lengths because the appropriate amount of\n    gas is provided.\n\n    If any of the calls fail, the test will fail.\n    \"\"\"\n    state_test(\n        env=env,\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"precompile_gas_list,precompile_data_length_list\",\n    [\n        pytest.param(\n            [0],\n            [G2_MSM_K_INPUT_LENGTH],\n            id=\"zero_gas_passed\",\n        ),\n    ],\n)\n@pytest.mark.parametrize(\"expected_output\", [Spec.INVALID], ids=[\"\"])\n@pytest.mark.parametrize(\"precompile_address\", [Spec.G2MSM])\ndef test_invalid_zero_gas_g2msm(\n    state_test: StateTestFiller,\n    env: Environment,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"Test the BLS12_G2MSM precompile calling it with zero gas.\"\"\"\n    state_test(\n        env=env,\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize_by_fork(\n    \"precompile_gas_list,precompile_data_length_list\",\n    get_split_discount_table_by_fork(\n        G2_GAS, len(Spec.G2MSM_DISCOUNT_TABLE), G2_MSM_K_INPUT_LENGTH\n    ),\n)\n@pytest.mark.parametrize(\"gas_modifier\", [pytest.param(-1, id=\"insufficient_gas\")])\n@pytest.mark.parametrize(\"expected_output\", [Spec.INVALID], ids=[\"\"])\n@pytest.mark.parametrize(\"precompile_address\", [Spec.G2MSM])\ndef test_invalid_gas_g2msm(\n    state_test: StateTestFiller,\n    env: Environment,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"\n    Test the BLS12_G2MSM discount gas table in full, by expecting the call to\n    fail for all possible input lengths because the appropriate amount of gas\n    is not provided.\n\n    If any of the calls succeeds, the test will fail.\n    \"\"\"\n    state_test(\n        env=env,\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"precompile_gas_list,precompile_data_length_list\",\n    [\n        pytest.param(\n            [G2_GAS(G2_MSM_K_INPUT_LENGTH)],\n            [0],\n            id=\"zero_length_input\",\n        ),\n    ],\n)\n@pytest.mark.parametrize(\"expected_output\", [Spec.INVALID], ids=[\"\"])\n@pytest.mark.parametrize(\"precompile_address\", [Spec.G2MSM])\ndef test_invalid_zero_length_g2msm(\n    state_test: StateTestFiller,\n    env: Environment,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"Test the BLS12_G2MSM precompile by passing an input with zero length.\"\"\"\n    state_test(\n        env=env,\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize_by_fork(\n    \"precompile_gas_list,precompile_data_length_list\",\n    get_split_discount_table_by_fork(\n        G2_GAS, len(Spec.G2MSM_DISCOUNT_TABLE), G2_MSM_K_INPUT_LENGTH\n    ),\n)\n@pytest.mark.parametrize(\n    \"input_length_modifier\",\n    [\n        pytest.param(-1, id=\"input_one_byte_too_short\"),\n        pytest.param(1, id=\"input_one_byte_too_long\"),\n    ],\n)\n@pytest.mark.parametrize(\"expected_output\", [Spec.INVALID], ids=[\"\"])\n@pytest.mark.parametrize(\"precompile_address\", [Spec.G2MSM])\ndef test_invalid_length_g2msm(\n    state_test: StateTestFiller,\n    env: Environment,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"\n    Test the BLS12_G2MSM discount gas table in full, by expecting the call to\n    fail for all possible input lengths provided because they are too long or\n    short, or zero length.\n\n    If any of the calls succeeds, the test will fail.\n    \"\"\"\n    state_test(\n        env=env,\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize_by_fork(\n    \"precompile_gas_list,precompile_data_length_list\",\n    get_split_discount_table_by_fork(PAIRING_GAS, PAIRINGS_TO_TEST, Spec.LEN_PER_PAIR),\n)\n@pytest.mark.parametrize(\"gas_modifier\", [pytest.param(0, id=\"exact_gas\")])\n@pytest.mark.parametrize(\"expected_output\", [Spec.PAIRING_TRUE], ids=[\"\"])\n@pytest.mark.parametrize(\"precompile_address\", [Spec.PAIRING])\n@pytest.mark.slow()\ndef test_valid_gas_pairing(\n    state_test: StateTestFiller,\n    env: Environment,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"\n    Test the BLS12_PAIRING precompile, by expecting the call to succeed for all\n    possible input lengths (up to k == PAIRINGS_TO_TEST).\n\n    If any of the calls fails, the test will fail.\n    \"\"\"\n    state_test(\n        env=env,\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"precompile_gas_list,precompile_data_length_list\",\n    [\n        pytest.param(\n            [0],\n            [Spec.LEN_PER_PAIR],\n            id=\"zero_gas_passed\",\n        ),\n    ],\n)\n@pytest.mark.parametrize(\"expected_output\", [Spec.INVALID], ids=[\"\"])\n@pytest.mark.parametrize(\"precompile_address\", [Spec.PAIRING])\ndef test_invalid_zero_gas_pairing(\n    state_test: StateTestFiller,\n    env: Environment,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"Test the BLS12_PAIRING precompile calling it with zero gas.\"\"\"\n    state_test(\n        env=env,\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize_by_fork(\n    \"precompile_gas_list,precompile_data_length_list\",\n    get_split_discount_table_by_fork(PAIRING_GAS, PAIRINGS_TO_TEST, Spec.LEN_PER_PAIR),\n)\n@pytest.mark.parametrize(\"gas_modifier\", [pytest.param(-1, id=\"insufficient_gas\")])\n@pytest.mark.parametrize(\"expected_output\", [Spec.INVALID], ids=[\"\"])\n@pytest.mark.parametrize(\"precompile_address\", [Spec.PAIRING])\ndef test_invalid_gas_pairing(\n    state_test: StateTestFiller,\n    env: Environment,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"\n    Test the BLS12_PAIRING precompile, by expecting the call to fail for all\n    possible input lengths (up to k == PAIRINGS_TO_TEST) because the\n    appropriate amount of gas is not provided.\n\n    If any of the calls succeeds, the test will fail.\n    \"\"\"\n    state_test(\n        env=env,\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"precompile_gas_list,precompile_data_length_list\",\n    [\n        pytest.param(\n            [PAIRING_GAS(Spec.LEN_PER_PAIR)],\n            [0],\n            id=\"zero_length\",\n        ),\n    ],\n)\n@pytest.mark.parametrize(\"expected_output\", [Spec.INVALID], ids=[\"\"])\n@pytest.mark.parametrize(\"precompile_address\", [Spec.PAIRING])\ndef test_invalid_zero_length_pairing(\n    state_test: StateTestFiller,\n    env: Environment,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"\n    Test the BLS12_PAIRING precompile by passing an input with zero length.\n    \"\"\"\n    state_test(\n        env=env,\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize_by_fork(\n    \"precompile_gas_list,precompile_data_length_list\",\n    get_split_discount_table_by_fork(PAIRING_GAS, PAIRINGS_TO_TEST, Spec.LEN_PER_PAIR),\n)\n@pytest.mark.parametrize(\n    \"input_length_modifier\",\n    [\n        pytest.param(-1, id=\"input_one_byte_too_short\"),\n        pytest.param(1, id=\"input_one_byte_too_long\"),\n    ],\n)\n@pytest.mark.parametrize(\"expected_output\", [Spec.INVALID], ids=[\"\"])\n@pytest.mark.parametrize(\"precompile_address\", [Spec.PAIRING])\ndef test_invalid_length_pairing(\n    state_test: StateTestFiller,\n    env: Environment,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"\n    Test the BLS12_PAIRING precompile, by expecting the call to fail for all\n    possible input lengths (up to k == PAIRINGS_TO_TEST) because the incorrect\n    input length was used.\n\n    If any of the calls succeeds, the test will fail.\n    \"\"\"\n    state_test(\n        env=env,\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n"
  },
  {
    "path": "tests/prague/eip2537_bls_12_381_precompiles/test_eip_mainnet.py",
    "content": "\"\"\"\nabstract: Crafted tests for mainnet of\n[EIP-2537: Precompile for BLS12-381 curve operations](https://eips.ethereum.org/EIPS/eip-2537).\n\"\"\"  # noqa: E501\n\nimport pytest\n\nfrom ethereum_test_tools import Alloc, StateTestFiller, Transaction\n\nfrom .spec import FP, FP2, Scalar, Spec, ref_spec_2537\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_2537.git_path\nREFERENCE_SPEC_VERSION = ref_spec_2537.version\n\npytestmark = [pytest.mark.valid_at(\"Prague\"), pytest.mark.mainnet]\n\n\n@pytest.mark.parametrize(\n    \"precompile_address,input_data,expected_output,vector_gas_value\",\n    [\n        pytest.param(\n            Spec.G1ADD,\n            Spec.G1 + Spec.INF_G1,\n            Spec.G1,\n            None,\n            id=\"G1ADD\",\n        ),\n        pytest.param(\n            Spec.G1MSM,\n            Spec.G1 + Scalar(1) + Spec.INF_G1 + Scalar(1),\n            Spec.G1,\n            None,\n            id=\"G1MSM\",\n        ),\n        pytest.param(\n            Spec.G2ADD,\n            Spec.G2 + Spec.INF_G2,\n            Spec.G2,\n            None,\n            id=\"G2ADD\",\n        ),\n        pytest.param(\n            Spec.G2MSM,\n            Spec.G2 + Scalar(1) + Spec.INF_G2 + Scalar(1),\n            Spec.G2,\n            None,\n            id=\"G2MSM\",\n        ),\n        pytest.param(\n            Spec.PAIRING,\n            Spec.G1 + Spec.INF_G2,\n            Spec.PAIRING_TRUE,\n            None,\n            id=\"PAIRING\",\n        ),\n        pytest.param(\n            Spec.MAP_FP_TO_G1,\n            FP(\n                799950832265136997107648781861994410980648980263584507133499364313075404851459407870655748616451882783569609925573  # noqa: E501\n            ),\n            Spec.INF_G1,\n            None,\n            id=\"fp_map_to_inf\",\n        ),\n        pytest.param(\n            Spec.MAP_FP2_TO_G2,\n            FP2(\n                (\n                    3510328712861478240121438855244276237335901234329585006107499559909114695366216070652508985150831181717984778988906,  # noqa: E501\n                    2924545590598115509050131525615277284817672420174395176262156166974132393611647670391999011900253695923948997972401,  # noqa: E501\n                )\n            ),\n            Spec.INF_G2,\n            None,\n            id=\"fp_map_to_inf\",\n        ),\n    ],\n)\ndef test_eip_2537(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    post: dict,\n    tx: Transaction,\n) -> None:\n    \"\"\"Test the all precompiles of EIP-2537.\"\"\"\n    state_test(\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n"
  },
  {
    "path": "tests/prague/eip2537_bls_12_381_precompiles/vectors/add_G1_bls.json",
    "content": "[\n  {\n    \"Input\": \"0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e100000000000000000000000000000000112b98340eee2777cc3c14163dea3ec97977ac3dc5c70da32e6e87578f44912e902ccef9efe28d4a78b8999dfbca942600000000000000000000000000000000186b28d92356c4dfec4b5201ad099dbdede3781f8998ddf929b4cd7756192185ca7b8f4ef7088f813270ac3d48868a21\",\n    \"Name\": \"bls_g1add_g1+p1\",\n    \"Expected\": \"000000000000000000000000000000000a40300ce2dec9888b60690e9a41d3004fda4886854573974fab73b046d3147ba5b7a5bde85279ffede1b45b3918d82d0000000000000000000000000000000006d3d887e9f53b9ec4eb6cedf5607226754b07c01ace7834f57f3e7315faefb739e59018e22c492006190fba4a870025\",\n    \"Gas\": 375,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000112b98340eee2777cc3c14163dea3ec97977ac3dc5c70da32e6e87578f44912e902ccef9efe28d4a78b8999dfbca942600000000000000000000000000000000186b28d92356c4dfec4b5201ad099dbdede3781f8998ddf929b4cd7756192185ca7b8f4ef7088f813270ac3d48868a210000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e1\",\n    \"Name\": \"bls_g1add_p1+g1\",\n    \"Expected\": \"000000000000000000000000000000000a40300ce2dec9888b60690e9a41d3004fda4886854573974fab73b046d3147ba5b7a5bde85279ffede1b45b3918d82d0000000000000000000000000000000006d3d887e9f53b9ec4eb6cedf5607226754b07c01ace7834f57f3e7315faefb739e59018e22c492006190fba4a870025\",\n    \"Gas\": 375,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef00000000000000000000000000000000193fb7cedb32b2c3adc06ec11a96bc0d661869316f5e4a577a9f7c179593987beb4fb2ee424dbb2f5dd891e228b46c4a0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e1\",\n    \"Name\": \"bls_g1add_g1_wrong_order+g1\",\n    \"Expected\": \"000000000000000000000000000000000abe7ae4ae2b092a5cc1779b1f5605d904fa6ec59b0f084907d1f5e4d2663e117a3810e027210a72186159a21271df3e0000000000000000000000000000000001e1669f00e10205f2e2f1195d65c21022f6a9a6de21f329756309815281a4434b2864d34ebcbc1d7e7cfaaee3feeea2\",\n    \"Gas\": 375,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1add_(g1+0=g1)\",\n    \"Expected\": \"0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e1\",\n    \"Gas\": 375,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000112b98340eee2777cc3c14163dea3ec97977ac3dc5c70da32e6e87578f44912e902ccef9efe28d4a78b8999dfbca942600000000000000000000000000000000186b28d92356c4dfec4b5201ad099dbdede3781f8998ddf929b4cd7756192185ca7b8f4ef7088f813270ac3d48868a210000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1add_(p1+0=p1)\",\n    \"Expected\": \"00000000000000000000000000000000112b98340eee2777cc3c14163dea3ec97977ac3dc5c70da32e6e87578f44912e902ccef9efe28d4a78b8999dfbca942600000000000000000000000000000000186b28d92356c4dfec4b5201ad099dbdede3781f8998ddf929b4cd7756192185ca7b8f4ef7088f813270ac3d48868a21\",\n    \"Gas\": 375,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e10000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb00000000000000000000000000000000114d1d6855d545a8aa7d76c8cf2e21f267816aef1db507c96655b9d5caac42364e6f38ba0ecb751bad54dcd6b939c2ca\",\n    \"Name\": \"bls_g1add_(g1-g1=0)\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 375,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000112b98340eee2777cc3c14163dea3ec97977ac3dc5c70da32e6e87578f44912e902ccef9efe28d4a78b8999dfbca942600000000000000000000000000000000186b28d92356c4dfec4b5201ad099dbdede3781f8998ddf929b4cd7756192185ca7b8f4ef7088f813270ac3d48868a2100000000000000000000000000000000112b98340eee2777cc3c14163dea3ec97977ac3dc5c70da32e6e87578f44912e902ccef9efe28d4a78b8999dfbca9426000000000000000000000000000000000195e911162921ba5ed055b496420f197693d36569ec34c63d7c0529a097d49e543070afba4b707e878e53c2b779208a\",\n    \"Name\": \"bls_g1add_(p1-p1=0)\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 375,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e10000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e1\",\n    \"Name\": \"bls_g1add_(g1+g1=2*g1)\",\n    \"Expected\": \"000000000000000000000000000000000572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e00000000000000000000000000000000166a9d8cabc673a322fda673779d8e3822ba3ecb8670e461f73bb9021d5fd76a4c56d9d4cd16bd1bba86881979749d28\",\n    \"Gas\": 375,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000112b98340eee2777cc3c14163dea3ec97977ac3dc5c70da32e6e87578f44912e902ccef9efe28d4a78b8999dfbca942600000000000000000000000000000000186b28d92356c4dfec4b5201ad099dbdede3781f8998ddf929b4cd7756192185ca7b8f4ef7088f813270ac3d48868a2100000000000000000000000000000000112b98340eee2777cc3c14163dea3ec97977ac3dc5c70da32e6e87578f44912e902ccef9efe28d4a78b8999dfbca942600000000000000000000000000000000186b28d92356c4dfec4b5201ad099dbdede3781f8998ddf929b4cd7756192185ca7b8f4ef7088f813270ac3d48868a21\",\n    \"Name\": \"bls_g1add_(p1+p1=2*p1)\",\n    \"Expected\": \"0000000000000000000000000000000015222cddbabdd764c4bee0b3720322a65ff4712c86fc4b1588d0c209210a0884fa9468e855d261c483091b2bf7de6a630000000000000000000000000000000009f9edb99bc3b75d7489735c98b16ab78b9386c5f7a1f76c7e96ac6eb5bbde30dbca31a74ec6e0f0b12229eecea33c39\",\n    \"Gas\": 375,\n    \"NoBenchmark\": false\n  }\n]\n"
  },
  {
    "path": "tests/prague/eip2537_bls_12_381_precompiles/vectors/add_G2_bls.json",
    "content": "[\n  {\n    \"Input\": \"00000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be00000000000000000000000000000000103121a2ceaae586d240843a398967325f8eb5a93e8fea99b62b9f88d8556c80dd726a4b30e84a36eeabaf3592937f2700000000000000000000000000000000086b990f3da2aeac0a36143b7d7c824428215140db1bb859338764cb58458f081d92664f9053b50b3fbd2e4723121b68000000000000000000000000000000000f9e7ba9a86a8f7624aa2b42dcc8772e1af4ae115685e60abc2c9b90242167acef3d0be4050bf935eed7c3b6fc7ba77e000000000000000000000000000000000d22c3652d0dc6f0fc9316e14268477c2049ef772e852108d269d9c38dba1d4802e8dae479818184c08f9a569d878451\",\n    \"Name\": \"bls_g2add_g2+p2\",\n    \"Expected\": \"000000000000000000000000000000000b54a8a7b08bd6827ed9a797de216b8c9057b3a9ca93e2f88e7f04f19accc42da90d883632b9ca4dc38d013f71ede4db00000000000000000000000000000000077eba4eecf0bd764dce8ed5f45040dd8f3b3427cb35230509482c14651713282946306247866dfe39a8e33016fcbe520000000000000000000000000000000014e60a76a29ef85cbd69f251b9f29147b67cfe3ed2823d3f9776b3a0efd2731941d47436dc6d2b58d9e65f8438bad073000000000000000000000000000000001586c3c910d95754fef7a732df78e279c3d37431c6a2b77e67a00c7c130a8fcd4d19f159cbeb997a178108fffffcbd20\",\n    \"Gas\": 600,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000103121a2ceaae586d240843a398967325f8eb5a93e8fea99b62b9f88d8556c80dd726a4b30e84a36eeabaf3592937f2700000000000000000000000000000000086b990f3da2aeac0a36143b7d7c824428215140db1bb859338764cb58458f081d92664f9053b50b3fbd2e4723121b68000000000000000000000000000000000f9e7ba9a86a8f7624aa2b42dcc8772e1af4ae115685e60abc2c9b90242167acef3d0be4050bf935eed7c3b6fc7ba77e000000000000000000000000000000000d22c3652d0dc6f0fc9316e14268477c2049ef772e852108d269d9c38dba1d4802e8dae479818184c08f9a569d87845100000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be\",\n    \"Name\": \"bls_g2add_p2+g2\",\n    \"Expected\": \"000000000000000000000000000000000b54a8a7b08bd6827ed9a797de216b8c9057b3a9ca93e2f88e7f04f19accc42da90d883632b9ca4dc38d013f71ede4db00000000000000000000000000000000077eba4eecf0bd764dce8ed5f45040dd8f3b3427cb35230509482c14651713282946306247866dfe39a8e33016fcbe520000000000000000000000000000000014e60a76a29ef85cbd69f251b9f29147b67cfe3ed2823d3f9776b3a0efd2731941d47436dc6d2b58d9e65f8438bad073000000000000000000000000000000001586c3c910d95754fef7a732df78e279c3d37431c6a2b77e67a00c7c130a8fcd4d19f159cbeb997a178108fffffcbd20\",\n    \"Gas\": 600,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000197bfd0342bbc8bee2beced2f173e1a87be576379b343e93232d6cef98d84b1d696e5612ff283ce2cfdccb2cfb65fa0c00000000000000000000000000000000184e811f55e6f9d84d77d2f79102fd7ea7422f4759df5bf7f6331d550245e3f1bcf6a30e3b29110d85e0ca16f9f6ae7a000000000000000000000000000000000f10e1eb3c1e53d2ad9cf2d398b2dc22c5842fab0a74b174f691a7e914975da3564d835cd7d2982815b8ac57f507348f000000000000000000000000000000000767d1c453890f1b9110fda82f5815c27281aba3f026ee868e4176a0654feea41a96575e0c4d58a14dbfbcc05b5010b100000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be\",\n    \"Name\": \"bls_g2add_g2_wrong_order+g2\",\n    \"Expected\": \"0000000000000000000000000000000011f00077935238fc57086414804303b20fab5880bc29f35ebda22c13dd44e586c8a889fe2ba799082c8458d861ac10cf0000000000000000000000000000000007318be09b19be000fe5df77f6e664a8286887ad8373005d7f7a203fcc458c28004042780146d3e43fa542d921c69512000000000000000000000000000000001287eab085d6f8a29f1f1aedb5ad9e8546963f0b11865e05454d86b9720c281db567682a233631f63a2794432a5596ae0000000000000000000000000000000012ec87cea1bacb75aa97728bcd64b27c7a42dd2319a2e17fe3837a05f85d089c5ebbfb73c1d08b7007e2b59ec9c8e065\",\n    \"Gas\": 600,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2add_(g2+0=g2)\",\n    \"Expected\": \"00000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be\",\n    \"Gas\": 600,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000103121a2ceaae586d240843a398967325f8eb5a93e8fea99b62b9f88d8556c80dd726a4b30e84a36eeabaf3592937f2700000000000000000000000000000000086b990f3da2aeac0a36143b7d7c824428215140db1bb859338764cb58458f081d92664f9053b50b3fbd2e4723121b68000000000000000000000000000000000f9e7ba9a86a8f7624aa2b42dcc8772e1af4ae115685e60abc2c9b90242167acef3d0be4050bf935eed7c3b6fc7ba77e000000000000000000000000000000000d22c3652d0dc6f0fc9316e14268477c2049ef772e852108d269d9c38dba1d4802e8dae479818184c08f9a569d87845100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2add_(p2+0=p2)\",\n    \"Expected\": \"00000000000000000000000000000000103121a2ceaae586d240843a398967325f8eb5a93e8fea99b62b9f88d8556c80dd726a4b30e84a36eeabaf3592937f2700000000000000000000000000000000086b990f3da2aeac0a36143b7d7c824428215140db1bb859338764cb58458f081d92664f9053b50b3fbd2e4723121b68000000000000000000000000000000000f9e7ba9a86a8f7624aa2b42dcc8772e1af4ae115685e60abc2c9b90242167acef3d0be4050bf935eed7c3b6fc7ba77e000000000000000000000000000000000d22c3652d0dc6f0fc9316e14268477c2049ef772e852108d269d9c38dba1d4802e8dae479818184c08f9a569d878451\",\n    \"Gas\": 600,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be00000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000d1b3cc2c7027888be51d9ef691d77bcb679afda66c73f17f9ee3837a55024f78c71363275a75d75d86bab79f74782aa0000000000000000000000000000000013fa4d4a0ad8b1ce186ed5061789213d993923066dddaf1040bc3ff59f825c78df74f2d75467e25e0f55f8a00fa030ed\",\n    \"Name\": \"bls_g2add_(g2-g2=0)\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 600,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000103121a2ceaae586d240843a398967325f8eb5a93e8fea99b62b9f88d8556c80dd726a4b30e84a36eeabaf3592937f2700000000000000000000000000000000086b990f3da2aeac0a36143b7d7c824428215140db1bb859338764cb58458f081d92664f9053b50b3fbd2e4723121b68000000000000000000000000000000000f9e7ba9a86a8f7624aa2b42dcc8772e1af4ae115685e60abc2c9b90242167acef3d0be4050bf935eed7c3b6fc7ba77e000000000000000000000000000000000d22c3652d0dc6f0fc9316e14268477c2049ef772e852108d269d9c38dba1d4802e8dae479818184c08f9a569d87845100000000000000000000000000000000103121a2ceaae586d240843a398967325f8eb5a93e8fea99b62b9f88d8556c80dd726a4b30e84a36eeabaf3592937f2700000000000000000000000000000000086b990f3da2aeac0a36143b7d7c824428215140db1bb859338764cb58458f081d92664f9053b50b3fbd2e4723121b68000000000000000000000000000000000a6296409115572426717c73668335a949829d739cff2cb4ab043710d28f8e772f6ef41aac4806c9cb273c490384032d000000000000000000000000000000000cde4e850c721fa94e8890d500e3655b442d5c0dc4fff1b694c6f8dd68f6d8dc1bc3251a37d27e7af96f65a96278265a\",\n    \"Name\": \"bls_g2add_(p2-p2=0)\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 600,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be00000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be\",\n    \"Name\": \"bls_g2add_(g2+g2=2*g2)\",\n    \"Expected\": \"000000000000000000000000000000001638533957d540a9d2370f17cc7ed5863bc0b995b8825e0ee1ea1e1e4d00dbae81f14b0bf3611b78c952aacab827a053000000000000000000000000000000000a4edef9c1ed7f729f520e47730a124fd70662a904ba1074728114d1031e1572c6c886f6b57ec72a6178288c47c33577000000000000000000000000000000000468fb440d82b0630aeb8dca2b5256789a66da69bf91009cbfe6bd221e47aa8ae88dece9764bf3bd999d95d71e4c9899000000000000000000000000000000000f6d4552fa65dd2638b361543f887136a43253d9c66c411697003f7a13c308f5422e1aa0a59c8967acdefd8b6e36ccf3\",\n    \"Gas\": 600,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000103121a2ceaae586d240843a398967325f8eb5a93e8fea99b62b9f88d8556c80dd726a4b30e84a36eeabaf3592937f2700000000000000000000000000000000086b990f3da2aeac0a36143b7d7c824428215140db1bb859338764cb58458f081d92664f9053b50b3fbd2e4723121b68000000000000000000000000000000000f9e7ba9a86a8f7624aa2b42dcc8772e1af4ae115685e60abc2c9b90242167acef3d0be4050bf935eed7c3b6fc7ba77e000000000000000000000000000000000d22c3652d0dc6f0fc9316e14268477c2049ef772e852108d269d9c38dba1d4802e8dae479818184c08f9a569d87845100000000000000000000000000000000103121a2ceaae586d240843a398967325f8eb5a93e8fea99b62b9f88d8556c80dd726a4b30e84a36eeabaf3592937f2700000000000000000000000000000000086b990f3da2aeac0a36143b7d7c824428215140db1bb859338764cb58458f081d92664f9053b50b3fbd2e4723121b68000000000000000000000000000000000f9e7ba9a86a8f7624aa2b42dcc8772e1af4ae115685e60abc2c9b90242167acef3d0be4050bf935eed7c3b6fc7ba77e000000000000000000000000000000000d22c3652d0dc6f0fc9316e14268477c2049ef772e852108d269d9c38dba1d4802e8dae479818184c08f9a569d878451\",\n    \"Name\": \"bls_g2add_(p2+p2=2*p2)\",\n    \"Expected\": \"000000000000000000000000000000000b76fcbb604082a4f2d19858a7befd6053fa181c5119a612dfec83832537f644e02454f2b70d40985ebb08042d1620d40000000000000000000000000000000019a4a02c0ae51365d964c73be7babb719db1c69e0ddbf9a8a335b5bed3b0a4b070d2d5df01d2da4a3f1e56aae2ec106d000000000000000000000000000000000d18322f821ac72d3ca92f92b000483cf5b7d9e5d06873a44071c4e7e81efd904f210208fe0b9b4824f01c65bc7e62080000000000000000000000000000000004e563d53609a2d1e216aaaee5fbc14ef460160db8d1fdc5e1bd4e8b54cd2f39abf6f925969fa405efb9e700b01c7085\",\n    \"Gas\": 600,\n    \"NoBenchmark\": false\n  }\n]\n"
  },
  {
    "path": "tests/prague/eip2537_bls_12_381_precompiles/vectors/fail-add_G1_bls.json",
    "content": "[\n  {\n    \"Input\": \"\",\n    \"ExpectedError\": \"invalid input length\",\n    \"Name\": \"bls_g1add_empty_input\"\n  },\n  {\n    \"Input\": \"00000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e100000000000000000000000000000000112b98340eee2777cc3c14163dea3ec97977ac3dc5c70da32e6e87578f44912e902ccef9efe28d4a78b8999dfbca942600000000000000000000000000000000186b28d92356c4dfec4b5201ad099dbdede3781f8998ddf929b4cd7756192185ca7b8f4ef7088f813270ac3d48868a21\",\n    \"ExpectedError\": \"invalid input length\",\n    \"Name\": \"bls_g1add_short_input\"\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e100000000000000000000000000000000112b98340eee2777cc3c14163dea3ec97977ac3dc5c70da32e6e87578f44912e902ccef9efe28d4a78b8999dfbca942600000000000000000000000000000000186b28d92356c4dfec4b5201ad099dbdede3781f8998ddf929b4cd7756192185ca7b8f4ef7088f813270ac3d48868a21\",\n    \"ExpectedError\": \"invalid input length\",\n    \"Name\": \"bls_g1add_large_input\"\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb00000000000000000000000000000000186b28d92356c4dfec4b5201ad099dbdede3781f8998ddf929b4cd7756192185ca7b8f4ef7088f813270ac3d48868a2100000000000000000000000000000000112b98340eee2777cc3c14163dea3ec97977ac3dc5c70da32e6e87578f44912e902ccef9efe28d4a78b8999dfbca942600000000000000000000000000000000186b28d92356c4dfec4b5201ad099dbdede3781f8998ddf929b4cd7756192185ca7b8f4ef7088f813270ac3d48868a21\",\n    \"ExpectedError\": \"invalid point: not on curve\",\n    \"Name\": \"bls_g1add_point_not_on_curve\"\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000031f2e5916b17be2e71b10b4292f558e727dfd7d48af9cbc5087f0ce00dcca27c8b01e83eaace1aefb539f00adb2271660000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e100000000000000000000000000000000112b98340eee2777cc3c14163dea3ec97977ac3dc5c70da32e6e87578f44912e902ccef9efe28d4a78b8999dfbca942600000000000000000000000000000000186b28d92356c4dfec4b5201ad099dbdede3781f8998ddf929b4cd7756192185ca7b8f4ef7088f813270ac3d48868a21\",\n    \"ExpectedError\": \"invalid fp.Element encoding\",\n    \"Name\": \"bls_g2add_invalid_field_element\"\n  },\n  {\n    \"Input\": \"1000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e100000000000000000000000000000000112b98340eee2777cc3c14163dea3ec97977ac3dc5c70da32e6e87578f44912e902ccef9efe28d4a78b8999dfbca942600000000000000000000000000000000186b28d92356c4dfec4b5201ad099dbdede3781f8998ddf929b4cd7756192185ca7b8f4ef7088f813270ac3d48868a21\",\n    \"ExpectedError\": \"invalid field element top bytes\",\n    \"Name\": \"bls_g1add_violate_top_bytes\"\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000108b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e10000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e1\",\n    \"ExpectedError\": \"invalid field element top bytes\",\n    \"Name\": \"bls_g1add_top16_bytes_boundary_violation\"\n  }\n]\n"
  },
  {
    "path": "tests/prague/eip2537_bls_12_381_precompiles/vectors/fail-add_G2_bls.json",
    "content": "[\n  {\n    \"Input\": \"\",\n    \"ExpectedError\": \"invalid input length\",\n    \"Name\": \"bls_g2add_empty_input\"\n  },\n  {\n    \"Input\": \"000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be00000000000000000000000000000000103121a2ceaae586d240843a398967325f8eb5a93e8fea99b62b9f88d8556c80dd726a4b30e84a36eeabaf3592937f2700000000000000000000000000000000086b990f3da2aeac0a36143b7d7c824428215140db1bb859338764cb58458f081d92664f9053b50b3fbd2e4723121b68000000000000000000000000000000000f9e7ba9a86a8f7624aa2b42dcc8772e1af4ae115685e60abc2c9b90242167acef3d0be4050bf935eed7c3b6fc7ba77e000000000000000000000000000000000d22c3652d0dc6f0fc9316e14268477c2049ef772e852108d269d9c38dba1d4802e8dae479818184c08f9a569d878451\",\n    \"ExpectedError\": \"invalid input length\",\n    \"Name\": \"bls_g2add_short_input\"\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be00000000000000000000000000000000103121a2ceaae586d240843a398967325f8eb5a93e8fea99b62b9f88d8556c80dd726a4b30e84a36eeabaf3592937f2700000000000000000000000000000000086b990f3da2aeac0a36143b7d7c824428215140db1bb859338764cb58458f081d92664f9053b50b3fbd2e4723121b68000000000000000000000000000000000f9e7ba9a86a8f7624aa2b42dcc8772e1af4ae115685e60abc2c9b90242167acef3d0be4050bf935eed7c3b6fc7ba77e000000000000000000000000000000000d22c3652d0dc6f0fc9316e14268477c2049ef772e852108d269d9c38dba1d4802e8dae479818184c08f9a569d878451\",\n    \"ExpectedError\": \"invalid input length\",\n    \"Name\": \"bls_g2add_long_input\"\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb800000000000000000000000000000000086b990f3da2aeac0a36143b7d7c824428215140db1bb859338764cb58458f081d92664f9053b50b3fbd2e4723121b68000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be00000000000000000000000000000000103121a2ceaae586d240843a398967325f8eb5a93e8fea99b62b9f88d8556c80dd726a4b30e84a36eeabaf3592937f2700000000000000000000000000000000086b990f3da2aeac0a36143b7d7c824428215140db1bb859338764cb58458f081d92664f9053b50b3fbd2e4723121b68000000000000000000000000000000000f9e7ba9a86a8f7624aa2b42dcc8772e1af4ae115685e60abc2c9b90242167acef3d0be4050bf935eed7c3b6fc7ba77e000000000000000000000000000000000d22c3652d0dc6f0fc9316e14268477c2049ef772e852108d269d9c38dba1d4802e8dae479818184c08f9a569d878451\",\n    \"ExpectedError\": \"invalid point: not on curve\",\n    \"Name\": \"bls_g2add_point_not_on_curve\"\n  },\n  {\n    \"Input\": \"000000000000000000000000000000001c4bb49d2a0ef12b7123acdd7110bd292b5bc659edc54dc21b81de057194c79b2a5803255959bbef8e7f56c8c12168630000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be00000000000000000000000000000000103121a2ceaae586d240843a398967325f8eb5a93e8fea99b62b9f88d8556c80dd726a4b30e84a36eeabaf3592937f2700000000000000000000000000000000086b990f3da2aeac0a36143b7d7c824428215140db1bb859338764cb58458f081d92664f9053b50b3fbd2e4723121b68000000000000000000000000000000000f9e7ba9a86a8f7624aa2b42dcc8772e1af4ae115685e60abc2c9b90242167acef3d0be4050bf935eed7c3b6fc7ba77e000000000000000000000000000000000d22c3652d0dc6f0fc9316e14268477c2049ef772e852108d269d9c38dba1d4802e8dae479818184c08f9a569d878451\",\n    \"ExpectedError\": \"invalid fp.Element encoding\",\n    \"Name\": \"bls_g2add_invalid_field_element\"\n  },\n  {\n    \"Input\": \"10000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be00000000000000000000000000000000103121a2ceaae586d240843a398967325f8eb5a93e8fea99b62b9f88d8556c80dd726a4b30e84a36eeabaf3592937f2700000000000000000000000000000000086b990f3da2aeac0a36143b7d7c824428215140db1bb859338764cb58458f081d92664f9053b50b3fbd2e4723121b68000000000000000000000000000000000f9e7ba9a86a8f7624aa2b42dcc8772e1af4ae115685e60abc2c9b90242167acef3d0be4050bf935eed7c3b6fc7ba77e000000000000000000000000000000000d22c3652d0dc6f0fc9316e14268477c2049ef772e852108d269d9c38dba1d4802e8dae479818184c08f9a569d878451\",\n    \"ExpectedError\": \"invalid field element top bytes\",\n    \"Name\": \"bls_g2add_violate_top_bytes\"\n  }\n]\n"
  },
  {
    "path": "tests/prague/eip2537_bls_12_381_precompiles/vectors/fail-map_fp2_to_G2_bls.json",
    "content": "[\n  {\n    \"Input\": \"\",\n    \"ExpectedError\": \"invalid input length\",\n    \"Name\": \"bls_mapg2_empty_input\"\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000007355d25caf6e7f2f0cb2812ca0e513bd026ed09dda65b177500fa31714e09ea0ded3a078b526bed3307f804d4b93b040000000000000000000000000000000002829ce3c021339ccb5caf3e187f6370e1e2a311dec9b75363117063ab2015603ff52c3d3b98f19c2f65575e99e8b7\",\n    \"ExpectedError\": \"invalid input length\",\n    \"Name\": \"bls_mapg2_short_input\"\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000007355d25caf6e7f2f0cb2812ca0e513bd026ed09dda65b177500fa31714e09ea0ded3a078b526bed3307f804d4b93b040000000000000000000000000000000002829ce3c021339ccb5caf3e187f6370e1e2a311dec9b75363117063ab2015603ff52c3d3b98f19c2f65575e99e8b78c\",\n    \"ExpectedError\": \"invalid input length\",\n    \"Name\": \"bls_mapg2_long_input\"\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000007355d25caf6e7f2f0cb2812ca0e513bd026ed09dda65b177500fa31714e09ea0ded3a078b526bed3307f804d4b93b040000000000000000000000000000000002829ce3c021339ccb5caf3e187f6370e1e2a311dec9b75363117063ab2015603ff52c3d3b98f19c2f65575e99e8b7\",\n    \"ExpectedError\": \"invalid field element top bytes\",\n    \"Name\": \"bls_mapg2_top_bytes\"\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000021366f100476ce8d3be6cfc90d59fe13349e388ed12b6dd6dc31ccd267ff000e2c993a063ca66beced06f804d4b8e5af0000000000000000000000000000000002829ce3c021339ccb5caf3e187f6370e1e2a311dec9b75363117063ab2015603ff52c3d3b98f19c2f65575e99e8b78c\",\n    \"ExpectedError\": \"invalid fp.Element encoding\",\n    \"Name\": \"bls_mapg2_invalid_fq_element\"\n  }\n]\n"
  },
  {
    "path": "tests/prague/eip2537_bls_12_381_precompiles/vectors/fail-map_fp_to_G1_bls.json",
    "content": "[\n  {\n    \"Input\": \"\",\n    \"ExpectedError\": \"invalid input length\",\n    \"Name\": \"bls_mapg1_empty_input\"\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000156c8a6a2c184569d69a76be144b5cdc5141d2d2ca4fe341f011e25e3969c55ad9e9b9ce2eb833c81a908e5fa4ac5f\",\n    \"ExpectedError\": \"invalid input length\",\n    \"Name\": \"bls_mapg1_short_input\"\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000156c8a6a2c184569d69a76be144b5cdc5141d2d2ca4fe341f011e25e3969c55ad9e9b9ce2eb833c81a908e5fa4ac5f03\",\n    \"ExpectedError\": \"invalid input length\",\n    \"Name\": \"bls_mapg1_large_input\"\n  },\n  {\n    \"Input\": \"1000000000000000000000000000000000156c8a6a2c184569d69a76be144b5cdc5141d2d2ca4fe341f011e25e3969c55ad9e9b9ce2eb833c81a908e5fa4ac5f\",\n    \"ExpectedError\": \"invalid field element top bytes\",\n    \"Name\": \"bls_mapg1_top_bytes\"\n  },\n  {\n    \"Input\": \"000000000000000000000000000000002f6d9c5465982c0421b61e74579709b3b5b91e57bdd4f6015742b4ff301abb7ef895b9cce00c33c7d48f8e5fa4ac09ae\",\n    \"ExpectedError\": \"invalid fp.Element encoding\",\n    \"Name\": \"bls_invalid_fq_element\"\n  }\n]\n"
  },
  {
    "path": "tests/prague/eip2537_bls_12_381_precompiles/vectors/fail-msm_G1_bls.json",
    "content": "[\n  {\n    \"Input\": \"\",\n    \"ExpectedError\": \"invalid input length\",\n    \"Name\": \"bls_g1msm_empty_input\"\n  },\n  {\n    \"Input\": \"00000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e1000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000112b98340eee2777cc3c14163dea3ec97977ac3dc5c70da32e6e87578f44912e902ccef9efe28d4a78b8999dfbca942600000000000000000000000000000000186b28d92356c4dfec4b5201ad099dbdede3781f8998ddf929b4cd7756192185ca7b8f4ef7088f813270ac3d48868a210000000000000000000000000000000000000000000000000000000000000002\",\n    \"ExpectedError\": \"invalid input length\",\n    \"Name\": \"bls_g1msm_short_input\"\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e1000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000112b98340eee2777cc3c14163dea3ec97977ac3dc5c70da32e6e87578f44912e902ccef9efe28d4a78b8999dfbca942600000000000000000000000000000000186b28d92356c4dfec4b5201ad099dbdede3781f8998ddf929b4cd7756192185ca7b8f4ef7088f813270ac3d48868a210000000000000000000000000000000000000000000000000000000000000002\",\n    \"ExpectedError\": \"invalid input length\",\n    \"Name\": \"bls_g1msm_long_input\"\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000031f2e5916b17be2e71b10b4292f558e727dfd7d48af9cbc5087f0ce00dcca27c8b01e83eaace1aefb539f00adb2271660000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e1000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000112b98340eee2777cc3c14163dea3ec97977ac3dc5c70da32e6e87578f44912e902ccef9efe28d4a78b8999dfbca942600000000000000000000000000000000186b28d92356c4dfec4b5201ad099dbdede3781f8998ddf929b4cd7756192185ca7b8f4ef7088f813270ac3d48868a210000000000000000000000000000000000000000000000000000000000000002\",\n    \"ExpectedError\": \"invalid fp.Element encoding\",\n    \"Name\": \"bls_g1msm_invalid_field_element\"\n  },\n  {\n    \"Input\": \"1000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e1000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000112b98340eee2777cc3c14163dea3ec97977ac3dc5c70da32e6e87578f44912e902ccef9efe28d4a78b8999dfbca942600000000000000000000000000000000186b28d92356c4dfec4b5201ad099dbdede3781f8998ddf929b4cd7756192185ca7b8f4ef7088f813270ac3d48868a210000000000000000000000000000000000000000000000000000000000000002\",\n    \"ExpectedError\": \"invalid field element top bytes\",\n    \"Name\": \"bls_g1msm_violate_top_bytes\"\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb00000000000000000000000000000000186b28d92356c4dfec4b5201ad099dbdede3781f8998ddf929b4cd7756192185ca7b8f4ef7088f813270ac3d48868a21000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000112b98340eee2777cc3c14163dea3ec97977ac3dc5c70da32e6e87578f44912e902ccef9efe28d4a78b8999dfbca942600000000000000000000000000000000186b28d92356c4dfec4b5201ad099dbdede3781f8998ddf929b4cd7756192185ca7b8f4ef7088f813270ac3d48868a210000000000000000000000000000000000000000000000000000000000000002\",\n    \"ExpectedError\": \"invalid point: not on curve\",\n    \"Name\": \"bls_g1msm_point_not_on_curve\"\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef00000000000000000000000000000000193fb7cedb32b2c3adc06ec11a96bc0d661869316f5e4a577a9f7c179593987beb4fb2ee424dbb2f5dd891e228b46c4a000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000112b98340eee2777cc3c14163dea3ec97977ac3dc5c70da32e6e87578f44912e902ccef9efe28d4a78b8999dfbca942600000000000000000000000000000000186b28d92356c4dfec4b5201ad099dbdede3781f8998ddf929b4cd7756192185ca7b8f4ef7088f813270ac3d48868a210000000000000000000000000000000000000000000000000000000000000002\",\n    \"ExpectedError\": \"g1 point is not in the correct subgroup\",\n    \"Name\": \"bls_g1msm_g1_not_in_correct_subgroup\"\n  }\n]\n"
  },
  {
    "path": "tests/prague/eip2537_bls_12_381_precompiles/vectors/fail-msm_G2_bls.json",
    "content": "[\n  {\n    \"Input\": \"\",\n    \"ExpectedError\": \"invalid input length\",\n    \"Name\": \"bls_g2msm_empty_input\"\n  },\n  {\n    \"Input\": \"000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000103121a2ceaae586d240843a398967325f8eb5a93e8fea99b62b9f88d8556c80dd726a4b30e84a36eeabaf3592937f2700000000000000000000000000000000086b990f3da2aeac0a36143b7d7c824428215140db1bb859338764cb58458f081d92664f9053b50b3fbd2e4723121b68000000000000000000000000000000000f9e7ba9a86a8f7624aa2b42dcc8772e1af4ae115685e60abc2c9b90242167acef3d0be4050bf935eed7c3b6fc7ba77e000000000000000000000000000000000d22c3652d0dc6f0fc9316e14268477c2049ef772e852108d269d9c38dba1d4802e8dae479818184c08f9a569d8784510000000000000000000000000000000000000000000000000000000000000002\",\n    \"ExpectedError\": \"invalid input length\",\n    \"Name\": \"bls_g2msm_short_input\"\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000103121a2ceaae586d240843a398967325f8eb5a93e8fea99b62b9f88d8556c80dd726a4b30e84a36eeabaf3592937f2700000000000000000000000000000000086b990f3da2aeac0a36143b7d7c824428215140db1bb859338764cb58458f081d92664f9053b50b3fbd2e4723121b68000000000000000000000000000000000f9e7ba9a86a8f7624aa2b42dcc8772e1af4ae115685e60abc2c9b90242167acef3d0be4050bf935eed7c3b6fc7ba77e000000000000000000000000000000000d22c3652d0dc6f0fc9316e14268477c2049ef772e852108d269d9c38dba1d4802e8dae479818184c08f9a569d8784510000000000000000000000000000000000000000000000000000000000000002\",\n    \"ExpectedError\": \"invalid input length\",\n    \"Name\": \"bls_g2msm_long_input\"\n  },\n  {\n    \"Input\": \"10000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000103121a2ceaae586d240843a398967325f8eb5a93e8fea99b62b9f88d8556c80dd726a4b30e84a36eeabaf3592937f2700000000000000000000000000000000086b990f3da2aeac0a36143b7d7c824428215140db1bb859338764cb58458f081d92664f9053b50b3fbd2e4723121b68000000000000000000000000000000000f9e7ba9a86a8f7624aa2b42dcc8772e1af4ae115685e60abc2c9b90242167acef3d0be4050bf935eed7c3b6fc7ba77e000000000000000000000000000000000d22c3652d0dc6f0fc9316e14268477c2049ef772e852108d269d9c38dba1d4802e8dae479818184c08f9a569d8784510000000000000000000000000000000000000000000000000000000000000002\",\n    \"ExpectedError\": \"invalid field element top bytes\",\n    \"Name\": \"bls_g2msm_violate_top_bytes\"\n  },\n  {\n    \"Input\": \"000000000000000000000000000000001c4bb49d2a0ef12b7123acdd7110bd292b5bc659edc54dc21b81de057194c79b2a5803255959bbef8e7f56c8c12168630000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000103121a2ceaae586d240843a398967325f8eb5a93e8fea99b62b9f88d8556c80dd726a4b30e84a36eeabaf3592937f2700000000000000000000000000000000086b990f3da2aeac0a36143b7d7c824428215140db1bb859338764cb58458f081d92664f9053b50b3fbd2e4723121b68000000000000000000000000000000000f9e7ba9a86a8f7624aa2b42dcc8772e1af4ae115685e60abc2c9b90242167acef3d0be4050bf935eed7c3b6fc7ba77e000000000000000000000000000000000d22c3652d0dc6f0fc9316e14268477c2049ef772e852108d269d9c38dba1d4802e8dae479818184c08f9a569d8784510000000000000000000000000000000000000000000000000000000000000002\",\n    \"ExpectedError\": \"invalid fp.Element encoding\",\n    \"Name\": \"bls_g2msm_invalid_field_element\"\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb800000000000000000000000000000000086b990f3da2aeac0a36143b7d7c824428215140db1bb859338764cb58458f081d92664f9053b50b3fbd2e4723121b68000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000103121a2ceaae586d240843a398967325f8eb5a93e8fea99b62b9f88d8556c80dd726a4b30e84a36eeabaf3592937f2700000000000000000000000000000000086b990f3da2aeac0a36143b7d7c824428215140db1bb859338764cb58458f081d92664f9053b50b3fbd2e4723121b68000000000000000000000000000000000f9e7ba9a86a8f7624aa2b42dcc8772e1af4ae115685e60abc2c9b90242167acef3d0be4050bf935eed7c3b6fc7ba77e000000000000000000000000000000000d22c3652d0dc6f0fc9316e14268477c2049ef772e852108d269d9c38dba1d4802e8dae479818184c08f9a569d8784510000000000000000000000000000000000000000000000000000000000000002\",\n    \"ExpectedError\": \"invalid point: not on curve\",\n    \"Name\": \"bls_g2msm_point_not_on_curve\"\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000197bfd0342bbc8bee2beced2f173e1a87be576379b343e93232d6cef98d84b1d696e5612ff283ce2cfdccb2cfb65fa0c00000000000000000000000000000000184e811f55e6f9d84d77d2f79102fd7ea7422f4759df5bf7f6331d550245e3f1bcf6a30e3b29110d85e0ca16f9f6ae7a000000000000000000000000000000000f10e1eb3c1e53d2ad9cf2d398b2dc22c5842fab0a74b174f691a7e914975da3564d835cd7d2982815b8ac57f507348f000000000000000000000000000000000767d1c453890f1b9110fda82f5815c27281aba3f026ee868e4176a0654feea41a96575e0c4d58a14dbfbcc05b5010b1000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000103121a2ceaae586d240843a398967325f8eb5a93e8fea99b62b9f88d8556c80dd726a4b30e84a36eeabaf3592937f2700000000000000000000000000000000086b990f3da2aeac0a36143b7d7c824428215140db1bb859338764cb58458f081d92664f9053b50b3fbd2e4723121b68000000000000000000000000000000000f9e7ba9a86a8f7624aa2b42dcc8772e1af4ae115685e60abc2c9b90242167acef3d0be4050bf935eed7c3b6fc7ba77e000000000000000000000000000000000d22c3652d0dc6f0fc9316e14268477c2049ef772e852108d269d9c38dba1d4802e8dae479818184c08f9a569d8784510000000000000000000000000000000000000000000000000000000000000002\",\n    \"ExpectedError\": \"g2 point is not in the correct subgroup\",\n    \"Name\": \"bls_pairing_g2_not_in_correct_subgroup\"\n  }\n]\n"
  },
  {
    "path": "tests/prague/eip2537_bls_12_381_precompiles/vectors/fail-mul_G1_bls.json",
    "content": "[\n  {\n    \"Input\": \"\",\n    \"ExpectedError\": \"invalid input length\",\n    \"Name\": \"bls_g1mul_empty_input\"\n  },\n  {\n    \"Input\": \"00000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e10000000000000000000000000000000000000000000000000000000000000002\",\n    \"ExpectedError\": \"invalid input length\",\n    \"Name\": \"bls_g1mul_short_input\"\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e10000000000000000000000000000000000000000000000000000000000000002\",\n    \"ExpectedError\": \"invalid input length\",\n    \"Name\": \"bls_g1mul_large_input\"\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000031f2e5916b17be2e71b10b4292f558e727dfd7d48af9cbc5087f0ce00dcca27c8b01e83eaace1aefb539f00adb2271660000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e10000000000000000000000000000000000000000000000000000000000000002\",\n    \"ExpectedError\": \"invalid fp.Element encoding\",\n    \"Name\": \"bls_g1mul_invalid_field_element\"\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb00000000000000000000000000000000186b28d92356c4dfec4b5201ad099dbdede3781f8998ddf929b4cd7756192185ca7b8f4ef7088f813270ac3d48868a210000000000000000000000000000000000000000000000000000000000000002\",\n    \"ExpectedError\": \"invalid point: not on curve\",\n    \"Name\": \"bls_g1mul_point_not_on_curve\"\n  },\n  {\n    \"Input\": \"1000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e10000000000000000000000000000000000000000000000000000000000000002\",\n    \"ExpectedError\": \"invalid field element top bytes\",\n    \"Name\": \"bls_g1mul_violate_top_bytes\"\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef00000000000000000000000000000000193fb7cedb32b2c3adc06ec11a96bc0d661869316f5e4a577a9f7c179593987beb4fb2ee424dbb2f5dd891e228b46c4a0000000000000000000000000000000000000000000000000000000000000002\",\n    \"ExpectedError\": \"g1 point is not in the correct subgroup\",\n    \"Name\": \"bls_g1mul_g1_not_in_correct_subgroup\"\n  }\n]\n"
  },
  {
    "path": "tests/prague/eip2537_bls_12_381_precompiles/vectors/fail-mul_G2_bls.json",
    "content": "[\n  {\n    \"Input\": \"\",\n    \"ExpectedError\": \"invalid input length\",\n    \"Name\": \"bls_g2mul_empty_input\"\n  },\n  {\n    \"Input\": \"000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be0000000000000000000000000000000000000000000000000000000000000002\",\n    \"ExpectedError\": \"invalid input length\",\n    \"Name\": \"bls_g2mul_short_input\"\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be0000000000000000000000000000000000000000000000000000000000000002\",\n    \"ExpectedError\": \"invalid input length\",\n    \"Name\": \"bls_g2mul_large_input\"\n  },\n  {\n    \"Input\": \"000000000000000000000000000000001c4bb49d2a0ef12b7123acdd7110bd292b5bc659edc54dc21b81de057194c79b2a5803255959bbef8e7f56c8c12168630000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be0000000000000000000000000000000000000000000000000000000000000002\",\n    \"ExpectedError\": \"invalid fp.Element encoding\",\n    \"Name\": \"bls_g2mul_invalid_field_element\"\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb800000000000000000000000000000000086b990f3da2aeac0a36143b7d7c824428215140db1bb859338764cb58458f081d92664f9053b50b3fbd2e4723121b68000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be0000000000000000000000000000000000000000000000000000000000000002\",\n    \"ExpectedError\": \"invalid point: not on curve\",\n    \"Name\": \"bls_g2mul_point_not_on_curve\"\n  },\n  {\n    \"Input\": \"10000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be0000000000000000000000000000000000000000000000000000000000000002\",\n    \"ExpectedError\": \"invalid field element top bytes\",\n    \"Name\": \"bls_g2mul_violate_top_bytes\"\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000197bfd0342bbc8bee2beced2f173e1a87be576379b343e93232d6cef98d84b1d696e5612ff283ce2cfdccb2cfb65fa0c00000000000000000000000000000000184e811f55e6f9d84d77d2f79102fd7ea7422f4759df5bf7f6331d550245e3f1bcf6a30e3b29110d85e0ca16f9f6ae7a000000000000000000000000000000000f10e1eb3c1e53d2ad9cf2d398b2dc22c5842fab0a74b174f691a7e914975da3564d835cd7d2982815b8ac57f507348f000000000000000000000000000000000767d1c453890f1b9110fda82f5815c27281aba3f026ee868e4176a0654feea41a96575e0c4d58a14dbfbcc05b5010b10000000000000000000000000000000000000000000000000000000000000002\",\n    \"ExpectedError\": \"g2 point is not in the correct subgroup\",\n    \"Name\": \"bls_g2mul_g2_not_in_correct_subgroup\"\n  }\n]\n"
  },
  {
    "path": "tests/prague/eip2537_bls_12_381_precompiles/vectors/fail-pairing_check_bls.json",
    "content": "[\n  {\n    \"Input\": \"\",\n    \"ExpectedError\": \"invalid input length\",\n    \"Name\": \"bls_pairing_empty_input\"\n  },\n  {\n    \"Input\": \"00000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e100000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e100000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000d1b3cc2c7027888be51d9ef691d77bcb679afda66c73f17f9ee3837a55024f78c71363275a75d75d86bab79f74782aa0000000000000000000000000000000013fa4d4a0ad8b1ce186ed5061789213d993923066dddaf1040bc3ff59f825c78df74f2d75467e25e0f55f8a00fa030ed\",\n    \"ExpectedError\": \"invalid input length\",\n    \"Name\": \"bls_pairing_missing_data\"\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e100000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e100000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000d1b3cc2c7027888be51d9ef691d77bcb679afda66c73f17f9ee3837a55024f78c71363275a75d75d86bab79f74782aa0000000000000000000000000000000013fa4d4a0ad8b1ce186ed5061789213d993923066dddaf1040bc3ff59f825c78df74f2d75467e25e0f55f8a00fa030ed\",\n    \"ExpectedError\": \"invalid input length\",\n    \"Name\": \"bls_pairing_extra_data\"\n  },\n  {\n    \"Input\": \"1000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e100000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e100000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000d1b3cc2c7027888be51d9ef691d77bcb679afda66c73f17f9ee3837a55024f78c71363275a75d75d86bab79f74782aa0000000000000000000000000000000013fa4d4a0ad8b1ce186ed5061789213d993923066dddaf1040bc3ff59f825c78df74f2d75467e25e0f55f8a00fa030ed\",\n    \"ExpectedError\": \"invalid field element top bytes\",\n    \"Name\": \"bls_pairing_top_bytes\"\n  },\n  {\n    \"Input\": \"000000000000000000000000000000001a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e100000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be\",\n    \"ExpectedError\": \"invalid fp.Element encoding\",\n    \"Name\": \"bls_pairing_e(G1_field_element_equal_to_modulus,G2)\"\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000031f2e5916b17be2e71b10b4292f558e727dfd7d48af9cbc5087f0ce00dcca27c8b01e83eaace1aefb539f00adb2271660000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"ExpectedError\": \"invalid fp.Element encoding\",\n    \"Name\": \"bls_pairing_e(G1_invalid_field_element,0)\"\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c4bb49d2a0ef12b7123acdd7110bd292b5bc659edc54dc21b81de057194c79b2a5803255959bbef8e7f56c8c12168630000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be\",\n    \"ExpectedError\": \"invalid fp.Element encoding\",\n    \"Name\": \"bls_pairing_e(0,G2_invalid_field_element)\"\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000031f2e5916b17be2e71b10b4292f558e727dfd7d48af9cbc5087f0ce00dcca27c8b01e83eaace1aefb539f00adb2271660000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e100000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be\",\n    \"ExpectedError\": \"invalid fp.Element encoding\",\n    \"Name\": \"bls_pairing_e(G1_invalid_field_element,G2)\"\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e1000000000000000000000000000000001c4bb49d2a0ef12b7123acdd7110bd292b5bc659edc54dc21b81de057194c79b2a5803255959bbef8e7f56c8c12168630000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be\",\n    \"ExpectedError\": \"invalid fp.Element encoding\",\n    \"Name\": \"bls_pairing_e(G1,G2_invalid_field_element)\"\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000031f2e5916b17be2e71b10b4292f558e727dfd7d48af9cbc5087f0ce00dcca27c8b01e83eaace1aefb539f00adb2271660000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e100000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e100000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000d1b3cc2c7027888be51d9ef691d77bcb679afda66c73f17f9ee3837a55024f78c71363275a75d75d86bab79f74782aa0000000000000000000000000000000013fa4d4a0ad8b1ce186ed5061789213d993923066dddaf1040bc3ff59f825c78df74f2d75467e25e0f55f8a00fa030ed\",\n    \"ExpectedError\": \"invalid fp.Element encoding\",\n    \"Name\": \"bls_pairing_e(G1_invalid_field_element,-G2)=e(-G1,G2)\"\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e1000000000000000000000000000000001c4bb49d2a0ef12b7123acdd7110bd292b5bc659edc54dc21b81de057194c79b2a5803255959bbef8e7f56c8c12168630000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e100000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000d1b3cc2c7027888be51d9ef691d77bcb679afda66c73f17f9ee3837a55024f78c71363275a75d75d86bab79f74782aa0000000000000000000000000000000013fa4d4a0ad8b1ce186ed5061789213d993923066dddaf1040bc3ff59f825c78df74f2d75467e25e0f55f8a00fa030ed\",\n    \"ExpectedError\": \"invalid fp.Element encoding\",\n    \"Name\": \"bls_pairing_e(G1,G2_invalid_field_element)=e(-G1,G2)\"\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000112b98340eee2777cc3c14163dea3ec97977ac3dc5c70da32e6e87578f44912e902ccef9efe28d4a78b8999dfbca94260000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"ExpectedError\": \"invalid point: not on curve\",\n    \"Name\": \"bls_pairing_e(G1_not_on_curve,0)\"\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000103121a2ceaae586d240843a398967325f8eb5a93e8fea99b62b9f88d8556c80dd726a4b30e84a36eeabaf3592937f270000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be\",\n    \"ExpectedError\": \"invalid point: not on curve\",\n    \"Name\": \"bls_pairing_e(0,G2_not_on_curve)\"\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000112b98340eee2777cc3c14163dea3ec97977ac3dc5c70da32e6e87578f44912e902ccef9efe28d4a78b8999dfbca94260000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e100000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be\",\n    \"ExpectedError\": \"invalid point: not on curve\",\n    \"Name\": \"bls_pairing_e(G1_not_on_curve,G2)\"\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e100000000000000000000000000000000103121a2ceaae586d240843a398967325f8eb5a93e8fea99b62b9f88d8556c80dd726a4b30e84a36eeabaf3592937f270000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be\",\n    \"ExpectedError\": \"invalid point: not on curve\",\n    \"Name\": \"bls_pairing_e(G1,G2_not_on_curve)\"\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb00000000000000000000000000000000186b28d92356c4dfec4b5201ad099dbdede3781f8998ddf929b4cd7756192185ca7b8f4ef7088f813270ac3d48868a2100000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e100000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000d1b3cc2c7027888be51d9ef691d77bcb679afda66c73f17f9ee3837a55024f78c71363275a75d75d86bab79f74782aa0000000000000000000000000000000013fa4d4a0ad8b1ce186ed5061789213d993923066dddaf1040bc3ff59f825c78df74f2d75467e25e0f55f8a00fa030ed\",\n    \"ExpectedError\": \"invalid point: not on curve\",\n    \"Name\": \"bls_pairing_e(G1_not_on_curve,-G2)=e(-G1,G2)\"\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e100000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb800000000000000000000000000000000086b990f3da2aeac0a36143b7d7c824428215140db1bb859338764cb58458f081d92664f9053b50b3fbd2e4723121b68000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e100000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000d1b3cc2c7027888be51d9ef691d77bcb679afda66c73f17f9ee3837a55024f78c71363275a75d75d86bab79f74782aa0000000000000000000000000000000013fa4d4a0ad8b1ce186ed5061789213d993923066dddaf1040bc3ff59f825c78df74f2d75467e25e0f55f8a00fa030ed\",\n    \"ExpectedError\": \"invalid point: not on curve\",\n    \"Name\": \"bls_pairing_e(G1,G2_not_on_curve)=e(-G1,G2)\"\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef00000000000000000000000000000000193fb7cedb32b2c3adc06ec11a96bc0d661869316f5e4a577a9f7c179593987beb4fb2ee424dbb2f5dd891e228b46c4a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"ExpectedError\": \"g1 point is not in the correct subgroup\",\n    \"Name\": \"bls_pairing_e(G1_not_in_correct_subgroup,0)\"\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000197bfd0342bbc8bee2beced2f173e1a87be576379b343e93232d6cef98d84b1d696e5612ff283ce2cfdccb2cfb65fa0c00000000000000000000000000000000184e811f55e6f9d84d77d2f79102fd7ea7422f4759df5bf7f6331d550245e3f1bcf6a30e3b29110d85e0ca16f9f6ae7a000000000000000000000000000000000f10e1eb3c1e53d2ad9cf2d398b2dc22c5842fab0a74b174f691a7e914975da3564d835cd7d2982815b8ac57f507348f000000000000000000000000000000000767d1c453890f1b9110fda82f5815c27281aba3f026ee868e4176a0654feea41a96575e0c4d58a14dbfbcc05b5010b1\",\n    \"ExpectedError\": \"g2 point is not in the correct subgroup\",\n    \"Name\": \"bls_pairing_e(0,G2_not_in_correct_subgroup)\"\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef00000000000000000000000000000000193fb7cedb32b2c3adc06ec11a96bc0d661869316f5e4a577a9f7c179593987beb4fb2ee424dbb2f5dd891e228b46c4a00000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be\",\n    \"ExpectedError\": \"g1 point is not in the correct subgroup\",\n    \"Name\": \"bls_pairing_e(G1_not_in_correct_subgroup,G2)\"\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e100000000000000000000000000000000197bfd0342bbc8bee2beced2f173e1a87be576379b343e93232d6cef98d84b1d696e5612ff283ce2cfdccb2cfb65fa0c00000000000000000000000000000000184e811f55e6f9d84d77d2f79102fd7ea7422f4759df5bf7f6331d550245e3f1bcf6a30e3b29110d85e0ca16f9f6ae7a000000000000000000000000000000000f10e1eb3c1e53d2ad9cf2d398b2dc22c5842fab0a74b174f691a7e914975da3564d835cd7d2982815b8ac57f507348f000000000000000000000000000000000767d1c453890f1b9110fda82f5815c27281aba3f026ee868e4176a0654feea41a96575e0c4d58a14dbfbcc05b5010b1\",\n    \"ExpectedError\": \"g2 point is not in the correct subgroup\",\n    \"Name\": \"bls_pairing_e(G1,G2_not_in_correct_subgroup)\"\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef00000000000000000000000000000000193fb7cedb32b2c3adc06ec11a96bc0d661869316f5e4a577a9f7c179593987beb4fb2ee424dbb2f5dd891e228b46c4a00000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e100000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000d1b3cc2c7027888be51d9ef691d77bcb679afda66c73f17f9ee3837a55024f78c71363275a75d75d86bab79f74782aa0000000000000000000000000000000013fa4d4a0ad8b1ce186ed5061789213d993923066dddaf1040bc3ff59f825c78df74f2d75467e25e0f55f8a00fa030ed\",\n    \"ExpectedError\": \"g1 point is not in the correct subgroup\",\n    \"Name\": \"bls_pairing_e(G1_not_in_correct_subgroup,-G2)=e(-G1,G2)\"\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e100000000000000000000000000000000197bfd0342bbc8bee2beced2f173e1a87be576379b343e93232d6cef98d84b1d696e5612ff283ce2cfdccb2cfb65fa0c00000000000000000000000000000000184e811f55e6f9d84d77d2f79102fd7ea7422f4759df5bf7f6331d550245e3f1bcf6a30e3b29110d85e0ca16f9f6ae7a000000000000000000000000000000000f10e1eb3c1e53d2ad9cf2d398b2dc22c5842fab0a74b174f691a7e914975da3564d835cd7d2982815b8ac57f507348f000000000000000000000000000000000767d1c453890f1b9110fda82f5815c27281aba3f026ee868e4176a0654feea41a96575e0c4d58a14dbfbcc05b5010b10000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e100000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000d1b3cc2c7027888be51d9ef691d77bcb679afda66c73f17f9ee3837a55024f78c71363275a75d75d86bab79f74782aa0000000000000000000000000000000013fa4d4a0ad8b1ce186ed5061789213d993923066dddaf1040bc3ff59f825c78df74f2d75467e25e0f55f8a00fa030ed\",\n    \"ExpectedError\": \"g2 point is not in the correct subgroup\",\n    \"Name\": \"bls_pairing_e(G1,G2_not_in_correct_subgroup)=e(-G1,G2)\"\n  }\n]\n"
  },
  {
    "path": "tests/prague/eip2537_bls_12_381_precompiles/vectors/map_fp2_to_G2_bls.json",
    "content": "[\n  {\n    \"Input\": \"0000000000000000000000000000000007355d25caf6e7f2f0cb2812ca0e513bd026ed09dda65b177500fa31714e09ea0ded3a078b526bed3307f804d4b93b040000000000000000000000000000000002829ce3c021339ccb5caf3e187f6370e1e2a311dec9b75363117063ab2015603ff52c3d3b98f19c2f65575e99e8b78c\",\n    \"Name\": \"bls_g2map_\",\n    \"Expected\": \"0000000000000000000000000000000000e7f4568a82b4b7dc1f14c6aaa055edf51502319c723c4dc2688c7fe5944c213f510328082396515734b6612c4e7bb700000000000000000000000000000000126b855e9e69b1f691f816e48ac6977664d24d99f8724868a184186469ddfd4617367e94527d4b74fc86413483afb35b000000000000000000000000000000000caead0fd7b6176c01436833c79d305c78be307da5f6af6c133c47311def6ff1e0babf57a0fb5539fce7ee12407b0a42000000000000000000000000000000001498aadcf7ae2b345243e281ae076df6de84455d766ab6fcdaad71fab60abb2e8b980a440043cd305db09d283c895e3d\",\n    \"Gas\": 23800,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000138879a9559e24cecee8697b8b4ad32cced053138ab913b99872772dc753a2967ed50aabc907937aefb2439ba06cc50c000000000000000000000000000000000a1ae7999ea9bab1dcc9ef8887a6cb6e8f1e22566015428d220b7eec90ffa70ad1f624018a9ad11e78d588bd3617f9f2\",\n    \"Name\": \"bls_g2map_616263\",\n    \"Expected\": \"00000000000000000000000000000000108ed59fd9fae381abfd1d6bce2fd2fa220990f0f837fa30e0f27914ed6e1454db0d1ee957b219f61da6ff8be0d6441f000000000000000000000000000000000296238ea82c6d4adb3c838ee3cb2346049c90b96d602d7bb1b469b905c9228be25c627bffee872def773d5b2a2eb57d00000000000000000000000000000000033f90f6057aadacae7963b0a0b379dd46750c1c94a6357c99b65f63b79e321ff50fe3053330911c56b6ceea08fee65600000000000000000000000000000000153606c417e59fb331b7ae6bce4fbf7c5190c33ce9402b5ebe2b70e44fca614f3f1382a3625ed5493843d0b0a652fc3f\",\n    \"Gas\": 23800,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000018c16fe362b7dbdfa102e42bdfd3e2f4e6191d479437a59db4eb716986bf08ee1f42634db66bde97d6c16bbfd342b3b8000000000000000000000000000000000e37812ce1b146d998d5f92bdd5ada2a31bfd63dfe18311aa91637b5f279dd045763166aa1615e46a50d8d8f475f184e\",\n    \"Name\": \"bls_g2map_6162636465663031\",\n    \"Expected\": \"00000000000000000000000000000000038af300ef34c7759a6caaa4e69363cafeed218a1f207e93b2c70d91a1263d375d6730bd6b6509dcac3ba5b567e85bf3000000000000000000000000000000000da75be60fb6aa0e9e3143e40c42796edf15685cafe0279afd2a67c3dff1c82341f17effd402e4f1af240ea90f4b659b0000000000000000000000000000000019b148cbdf163cf0894f29660d2e7bfb2b68e37d54cc83fd4e6e62c020eaa48709302ef8e746736c0e19342cc1ce3df4000000000000000000000000000000000492f4fed741b073e5a82580f7c663f9b79e036b70ab3e51162359cec4e77c78086fe879b65ca7a47d34374c8315ac5e\",\n    \"Gas\": 23800,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000008d4a0997b9d52fecf99427abb721f0fa779479963315fe21c6445250de7183e3f63bfdf86570da8929489e421d4ee950000000000000000000000000000000016cb4ccad91ec95aab070f22043916cd6a59c4ca94097f7f510043d48515526dc8eaaea27e586f09151ae613688d5a89\",\n    \"Name\": \"bls_g2map_713132385f717171\",\n    \"Expected\": \"000000000000000000000000000000000c5ae723be00e6c3f0efe184fdc0702b64588fe77dda152ab13099a3bacd3876767fa7bbad6d6fd90b3642e902b208f90000000000000000000000000000000012c8c05c1d5fc7bfa847f4d7d81e294e66b9a78bc9953990c358945e1f042eedafce608b67fdd3ab0cb2e6e263b9b1ad0000000000000000000000000000000004e77ddb3ede41b5ec4396b7421dd916efc68a358a0d7425bddd253547f2fb4830522358491827265dfc5bcc1928a5690000000000000000000000000000000011c624c56dbe154d759d021eec60fab3d8b852395a89de497e48504366feedd4662d023af447d66926a28076813dd646\",\n    \"Gas\": 23800,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000003f80ce4ff0ca2f576d797a3660e3f65b274285c054feccc3215c879e2c0589d376e83ede13f93c32f05da0f68fd6a1000000000000000000000000000000000006488a837c5413746d868d1efb7232724da10eca410b07d8b505b9363bdccf0a1fc0029bad07d65b15ccfe6dd25e20d\",\n    \"Name\": \"bls_g2map_613531325f616161\",\n    \"Expected\": \"000000000000000000000000000000000ea4e7c33d43e17cc516a72f76437c4bf81d8f4eac69ac355d3bf9b71b8138d55dc10fd458be115afa798b55dac34be1000000000000000000000000000000001565c2f625032d232f13121d3cfb476f45275c303a037faa255f9da62000c2c864ea881e2bcddd111edc4a3c0da3e88d00000000000000000000000000000000043b6f5fe4e52c839148dc66f2b3751e69a0f6ebb3d056d6465d50d4108543ecd956e10fa1640dfd9bc0030cc2558d28000000000000000000000000000000000f8991d2a1ad662e7b6f58ab787947f1fa607fce12dde171bc17903b012091b657e15333e11701edcf5b63ba2a561247\",\n    \"Gas\": 23800,\n    \"NoBenchmark\": false\n  }\n]\n"
  },
  {
    "path": "tests/prague/eip2537_bls_12_381_precompiles/vectors/map_fp_to_G1_bls.json",
    "content": "[\n  {\n    \"Input\": \"00000000000000000000000000000000156c8a6a2c184569d69a76be144b5cdc5141d2d2ca4fe341f011e25e3969c55ad9e9b9ce2eb833c81a908e5fa4ac5f03\",\n    \"Name\": \"bls_g1map_\",\n    \"Expected\": \"00000000000000000000000000000000184bb665c37ff561a89ec2122dd343f20e0f4cbcaec84e3c3052ea81d1834e192c426074b02ed3dca4e7676ce4ce48ba0000000000000000000000000000000004407b8d35af4dacc809927071fc0405218f1401a6d15af775810e4e460064bcc9468beeba82fdc751be70476c888bf3\",\n    \"Gas\": 5500,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000147e1ed29f06e4c5079b9d14fc89d2820d32419b990c1c7bb7dbea2a36a045124b31ffbde7c99329c05c559af1c6cc82\",\n    \"Name\": \"bls_g1map_616263\",\n    \"Expected\": \"00000000000000000000000000000000009769f3ab59bfd551d53a5f846b9984c59b97d6842b20a2c565baa167945e3d026a3755b6345df8ec7e6acb6868ae6d000000000000000000000000000000001532c00cf61aa3d0ce3e5aa20c3b531a2abd2c770a790a2613818303c6b830ffc0ecf6c357af3317b9575c567f11cd2c\",\n    \"Gas\": 5500,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000004090815ad598a06897dd89bcda860f25837d54e897298ce31e6947378134d3761dc59a572154963e8c954919ecfa82d\",\n    \"Name\": \"bls_g1map_6162636465663031\",\n    \"Expected\": \"000000000000000000000000000000001974dbb8e6b5d20b84df7e625e2fbfecb2cdb5f77d5eae5fb2955e5ce7313cae8364bc2fff520a6c25619739c6bdcb6a0000000000000000000000000000000015f9897e11c6441eaa676de141c8d83c37aab8667173cbe1dfd6de74d11861b961dccebcd9d289ac633455dfcc7013a3\",\n    \"Gas\": 5500,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000008dccd088ca55b8bfbc96fb50bb25c592faa867a8bb78d4e94a8cc2c92306190244532e91feba2b7fed977e3c3bb5a1f\",\n    \"Name\": \"bls_g1map_713132385f717171\",\n    \"Expected\": \"000000000000000000000000000000000a7a047c4a8397b3446450642c2ac64d7239b61872c9ae7a59707a8f4f950f101e766afe58223b3bff3a19a7f754027c000000000000000000000000000000001383aebba1e4327ccff7cf9912bda0dbc77de048b71ef8c8a81111d71dc33c5e3aa6edee9cf6f5fe525d50cc50b77cc9\",\n    \"Gas\": 5500,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000dd824886d2123a96447f6c56e3a3fa992fbfefdba17b6673f9f630ff19e4d326529db37e1c1be43f905bf9202e0278d\",\n    \"Name\": \"bls_g1map_613531325f616161\",\n    \"Expected\": \"000000000000000000000000000000000e7a16a975904f131682edbb03d9560d3e48214c9986bd50417a77108d13dc957500edf96462a3d01e62dc6cd468ef11000000000000000000000000000000000ae89e677711d05c30a48d6d75e76ca9fb70fe06c6dd6ff988683d89ccde29ac7d46c53bb97a59b1901abf1db66052db\",\n    \"Gas\": 5500,\n    \"NoBenchmark\": false\n  }\n]\n"
  },
  {
    "path": "tests/prague/eip2537_bls_12_381_precompiles/vectors/msm_G1_bls.json",
    "content": "[\n  {\n    \"Input\": \"0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e10000000000000000000000000000000000000000000000000000000000000002\",\n    \"Name\": \"bls_g1msm_(g1+g1=2*g1)\",\n    \"Expected\": \"000000000000000000000000000000000572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e00000000000000000000000000000000166a9d8cabc673a322fda673779d8e3822ba3ecb8670e461f73bb9021d5fd76a4c56d9d4cd16bd1bba86881979749d28\",\n    \"Gas\": 12000,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000112b98340eee2777cc3c14163dea3ec97977ac3dc5c70da32e6e87578f44912e902ccef9efe28d4a78b8999dfbca942600000000000000000000000000000000186b28d92356c4dfec4b5201ad099dbdede3781f8998ddf929b4cd7756192185ca7b8f4ef7088f813270ac3d48868a210000000000000000000000000000000000000000000000000000000000000002\",\n    \"Name\": \"bls_g1msm_(p1+p1=2*p1)\",\n    \"Expected\": \"0000000000000000000000000000000015222cddbabdd764c4bee0b3720322a65ff4712c86fc4b1588d0c209210a0884fa9468e855d261c483091b2bf7de6a630000000000000000000000000000000009f9edb99bc3b75d7489735c98b16ab78b9386c5f7a1f76c7e96ac6eb5bbde30dbca31a74ec6e0f0b12229eecea33c39\",\n    \"Gas\": 12000,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e10000000000000000000000000000000000000000000000000000000000000001\",\n    \"Name\": \"bls_g1msm_(1*g1=g1)\",\n    \"Expected\": \"0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e1\",\n    \"Gas\": 12000,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000112b98340eee2777cc3c14163dea3ec97977ac3dc5c70da32e6e87578f44912e902ccef9efe28d4a78b8999dfbca942600000000000000000000000000000000186b28d92356c4dfec4b5201ad099dbdede3781f8998ddf929b4cd7756192185ca7b8f4ef7088f813270ac3d48868a210000000000000000000000000000000000000000000000000000000000000001\",\n    \"Name\": \"bls_g1msm_(1*p1=p1)\",\n    \"Expected\": \"00000000000000000000000000000000112b98340eee2777cc3c14163dea3ec97977ac3dc5c70da32e6e87578f44912e902ccef9efe28d4a78b8999dfbca942600000000000000000000000000000000186b28d92356c4dfec4b5201ad099dbdede3781f8998ddf929b4cd7756192185ca7b8f4ef7088f813270ac3d48868a21\",\n    \"Gas\": 12000,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e10000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_(0*g1=inf)\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 12000,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000112b98340eee2777cc3c14163dea3ec97977ac3dc5c70da32e6e87578f44912e902ccef9efe28d4a78b8999dfbca942600000000000000000000000000000000186b28d92356c4dfec4b5201ad099dbdede3781f8998ddf929b4cd7756192185ca7b8f4ef7088f813270ac3d48868a210000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_(0*p1=inf)\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 12000,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011\",\n    \"Name\": \"bls_g1msm_(x*inf=inf)\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 12000,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e10000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_(2g1+inf)\",\n    \"Expected\": \"000000000000000000000000000000000572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e00000000000000000000000000000000166a9d8cabc673a322fda673779d8e3822ba3ecb8670e461f73bb9021d5fd76a4c56d9d4cd16bd1bba86881979749d28\",\n    \"Gas\": 22776,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e10000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_(inf+inf)\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 22776,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e1000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000112b98340eee2777cc3c14163dea3ec97977ac3dc5c70da32e6e87578f44912e902ccef9efe28d4a78b8999dfbca942600000000000000000000000000000000186b28d92356c4dfec4b5201ad099dbdede3781f8998ddf929b4cd7756192185ca7b8f4ef7088f813270ac3d48868a210000000000000000000000000000000000000000000000000000000000000002\",\n    \"Name\": \"bls_g1msm_(2g1+2p1)\",\n    \"Expected\": \"00000000000000000000000000000000148f92dced907361b4782ab542a75281d4b6f71f65c8abf94a5a9082388c64662d30fd6a01ced724feef3e284752038c0000000000000000000000000000000015c3634c3b67bc18e19150e12bfd8a1769306ed010f59be645a0823acb5b38f39e8e0d86e59b6353fdafc59ca971b769\",\n    \"Gas\": 22776,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e1263dbd792f5b1be47ed85f8938c0f29586af0d3ac7b977f21c278fe1462040e300000000000000000000000000000000112b98340eee2777cc3c14163dea3ec97977ac3dc5c70da32e6e87578f44912e902ccef9efe28d4a78b8999dfbca942600000000000000000000000000000000186b28d92356c4dfec4b5201ad099dbdede3781f8998ddf929b4cd7756192185ca7b8f4ef7088f813270ac3d48868a2147b8192d77bf871b62e87859d653922725724a5c031afeabc60bcef5ff66513800000000000000000000000000000000184bb665c37ff561a89ec2122dd343f20e0f4cbcaec84e3c3052ea81d1834e192c426074b02ed3dca4e7676ce4ce48ba0000000000000000000000000000000004407b8d35af4dacc809927071fc0405218f1401a6d15af775810e4e460064bcc9468beeba82fdc751be70476c888bf3328388aff0d4a5b7dc9205abd374e7e98f3cd9f3418edb4eafda5fb16473d21600000000000000000000000000000000009769f3ab59bfd551d53a5f846b9984c59b97d6842b20a2c565baa167945e3d026a3755b6345df8ec7e6acb6868ae6d000000000000000000000000000000001532c00cf61aa3d0ce3e5aa20c3b531a2abd2c770a790a2613818303c6b830ffc0ecf6c357af3317b9575c567f11cd2c263dbd792f5b1be47ed85f8938c0f29586af0d3ac7b977f21c278fe1462040e2000000000000000000000000000000001974dbb8e6b5d20b84df7e625e2fbfecb2cdb5f77d5eae5fb2955e5ce7313cae8364bc2fff520a6c25619739c6bdcb6a0000000000000000000000000000000015f9897e11c6441eaa676de141c8d83c37aab8667173cbe1dfd6de74d11861b961dccebcd9d289ac633455dfcc7013a347b8192d77bf871b62e87859d653922725724a5c031afeabc60bcef5ff665131000000000000000000000000000000000a7a047c4a8397b3446450642c2ac64d7239b61872c9ae7a59707a8f4f950f101e766afe58223b3bff3a19a7f754027c000000000000000000000000000000001383aebba1e4327ccff7cf9912bda0dbc77de048b71ef8c8a81111d71dc33c5e3aa6edee9cf6f5fe525d50cc50b77cc9328388aff0d4a5b7dc9205abd374e7e98f3cd9f3418edb4eafda5fb16473d211000000000000000000000000000000000e7a16a975904f131682edbb03d9560d3e48214c9986bd50417a77108d13dc957500edf96462a3d01e62dc6cd468ef11000000000000000000000000000000000ae89e677711d05c30a48d6d75e76ca9fb70fe06c6dd6ff988683d89ccde29ac7d46c53bb97a59b1901abf1db66052db55b53c4669f19f0fc7431929bc0363d7d8fb432435fcde2635fdba334424e9f5\",\n    \"Name\": \"bls_g1msm_multiple\",\n    \"Expected\": \"00000000000000000000000000000000053fbdb09b6b5faa08bfe7b7069454247ad4d8bd57e90e2d2ebaa04003dcf110aa83072c07f480ab2107cca2ccff6091000000000000000000000000000000001654537b7c96fe64d13906066679c3d45808cb666452b55d1b909c230cc4b423c3f932c58754b9b762dc49fcc825522c\",\n    \"Gas\": 61992,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e19a2b64cc58f8992cb21237914262ca9ada6cb13dc7b7d3f11c278fe0462040e4\",\n    \"Name\": \"bls_g1msm_random*g1_unnormalized_scalar\",\n    \"Expected\": \"000000000000000000000000000000000491d1b0ecd9bb917989f0e74f0dea0422eac4a873e5e2644f368dffb9a6e20fd6e10c1b77654d067c0618f6e5a7f79a0000000000000000000000000000000017cd7061575d3e8034fcea62adaa1a3bc38dca4b50e4c5c01d04dd78037c9cee914e17944ea99e7ad84278e5d49f36c4\",\n    \"Gas\": 12000,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000112b98340eee2777cc3c14163dea3ec97977ac3dc5c70da32e6e87578f44912e902ccef9efe28d4a78b8999dfbca942600000000000000000000000000000000186b28d92356c4dfec4b5201ad099dbdede3781f8998ddf929b4cd7756192185ca7b8f4ef7088f813270ac3d48868a219a2b64cc58f8992cb21237914262ca9ada6cb13dc7b7d3f11c278fe0462040e4\",\n    \"Name\": \"bls_g1msm_random*p1_unnormalized_scalar\",\n    \"Expected\": \"0000000000000000000000000000000006ee9c9331228753bcb148d0ca8623447701bb0aa6eafb0340aa7f81543923474e00f2a225de65c62dd1d8303270220c0000000000000000000000000000000018dd7be47eb4e80985d7a0d2cc96c8b004250b36a5c3ec0217705d453d3ecc6d0d3d1588722da51b40728baba1e93804\",\n    \"Gas\": 12000,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e1263dbd792f5b1be47ed85f8938c0f29586af0d3ac7b977f21c278fe1462040e300000000000000000000000000000000112b98340eee2777cc3c14163dea3ec97977ac3dc5c70da32e6e87578f44912e902ccef9efe28d4a78b8999dfbca942600000000000000000000000000000000186b28d92356c4dfec4b5201ad099dbdede3781f8998ddf929b4cd7756192185ca7b8f4ef7088f813270ac3d48868a2147b8192d77bf871b62e87859d653922725724a5c031afeabc60bcef5ff66513800000000000000000000000000000000184bb665c37ff561a89ec2122dd343f20e0f4cbcaec84e3c3052ea81d1834e192c426074b02ed3dca4e7676ce4ce48ba0000000000000000000000000000000004407b8d35af4dacc809927071fc0405218f1401a6d15af775810e4e460064bcc9468beeba82fdc751be70476c888bf3328388aff0d4a5b7dc9205abd374e7e98f3cd9f3418edb4eafda5fb16473d21600000000000000000000000000000000009769f3ab59bfd551d53a5f846b9984c59b97d6842b20a2c565baa167945e3d026a3755b6345df8ec7e6acb6868ae6d000000000000000000000000000000001532c00cf61aa3d0ce3e5aa20c3b531a2abd2c770a790a2613818303c6b830ffc0ecf6c357af3317b9575c567f11cd2c263dbd792f5b1be47ed85f8938c0f29586af0d3ac7b977f21c278fe1462040e2000000000000000000000000000000001974dbb8e6b5d20b84df7e625e2fbfecb2cdb5f77d5eae5fb2955e5ce7313cae8364bc2fff520a6c25619739c6bdcb6a0000000000000000000000000000000015f9897e11c6441eaa676de141c8d83c37aab8667173cbe1dfd6de74d11861b961dccebcd9d289ac633455dfcc7013a347b8192d77bf871b62e87859d653922725724a5c031afeabc60bcef5ff665131000000000000000000000000000000000a7a047c4a8397b3446450642c2ac64d7239b61872c9ae7a59707a8f4f950f101e766afe58223b3bff3a19a7f754027c000000000000000000000000000000001383aebba1e4327ccff7cf9912bda0dbc77de048b71ef8c8a81111d71dc33c5e3aa6edee9cf6f5fe525d50cc50b77cc9328388aff0d4a5b7dc9205abd374e7e98f3cd9f3418edb4eafda5fb16473d21100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7a16a975904f131682edbb03d9560d3e48214c9986bd50417a77108d13dc957500edf96462a3d01e62dc6cd468ef11000000000000000000000000000000000ae89e677711d05c30a48d6d75e76ca9fb70fe06c6dd6ff988683d89ccde29ac7d46c53bb97a59b1901abf1db66052db55b53c4669f19f0fc7431929bc0363d7d8fb432435fcde2635fdba334424e9f5\",\n    \"Name\": \"bls_g1msm_multiple_with_point_at_infinity\",\n    \"Expected\": \"00000000000000000000000000000000053fbdb09b6b5faa08bfe7b7069454247ad4d8bd57e90e2d2ebaa04003dcf110aa83072c07f480ab2107cca2ccff6091000000000000000000000000000000001654537b7c96fe64d13906066679c3d45808cb666452b55d1b909c230cc4b423c3f932c58754b9b762dc49fcc825522c\",\n    \"Gas\": 69888,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_1\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 12000,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_2\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 22776,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_3\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 30528,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_4\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 38256,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_5\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 45840,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_6\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 54000,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_7\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 61992,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_8\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 69888,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_9\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 77652,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_10\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 85440,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_11\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 93060,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_12\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 100512,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_13\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 107952,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_14\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 115416,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_15\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 122760,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_16\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 129984,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_17\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 137292,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_18\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 144504,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_19\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 151620,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_20\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 158640,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_21\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 165816,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_22\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 172656,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_23\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 179676,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_24\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 186624,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_25\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 193500,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_26\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 200304,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_27\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 207360,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_28\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 214032,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_29\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 220980,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_30\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 227520,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_31\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 234360,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_32\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 240768,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_33\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 247500,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_34\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 254184,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_35\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 260820,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_36\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 267408,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_37\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 273948,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_38\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 280440,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_39\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 286884,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_40\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 293280,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_41\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 299628,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_42\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 306432,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_43\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 312696,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_44\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 318912,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_45\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 325620,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_46\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 331752,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_47\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 337836,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_48\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 344448,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_49\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 350448,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_50\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 357000,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_51\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 362916,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_52\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 369408,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_53\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 375876,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_54\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 381672,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_55\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 388080,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_56\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 393792,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_57\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 400140,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_58\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 406464,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_59\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 412056,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_60\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 418320,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_61\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 424560,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_62\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 430776,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_63\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 436212,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_64\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 442368,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_65\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 448500,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_66\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 454608,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_67\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 460692,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_68\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 466752,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_69\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 471960,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_70\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 477960,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_71\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 483936,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_72\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 489888,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_73\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 495816,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_74\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 501720,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_75\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 507600,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_76\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 513456,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_77\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 519288,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_78\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 525096,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_79\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 530880,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_80\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 536640,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_81\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 542376,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_82\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 548088,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_83\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 553776,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_84\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 559440,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_85\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 565080,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_86\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 570696,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_87\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 576288,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_88\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 581856,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_89\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 587400,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_90\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 592920,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_91\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 598416,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_92\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 603888,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_93\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 610452,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_94\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 615888,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_95\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 621300,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_96\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 626688,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_97\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 632052,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_98\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 637392,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_99\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 642708,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_100\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 648000,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_101\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 654480,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_102\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 659736,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_103\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 664968,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_104\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 670176,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_105\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 675360,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_106\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 681792,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_107\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 686940,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_108\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 692064,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_109\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 697164,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_110\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 702240,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_111\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 708624,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_112\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 713664,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_113\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 718680,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_114\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 723672,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_115\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 728640,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_116\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 734976,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_117\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 739908,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_118\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 744816,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_119\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 749700,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_120\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 756000,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_121\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 760848,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_122\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 765672,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_123\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 770472,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_124\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 776736,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_125\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 781500,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_126\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 786240,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_127\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 792480,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_128\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 797184,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_129\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 803412,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_130\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 809640,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_131\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 815868,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_132\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 822096,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_133\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 828324,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_134\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 834552,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_135\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 840780,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_136\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 847008,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_137\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 853236,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_138\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 859464,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_139\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 865692,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_140\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 871920,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_141\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 878148,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_142\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 884376,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_143\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 890604,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_144\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 896832,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_145\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 903060,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_146\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 909288,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_147\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 915516,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_148\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 921744,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_discount_table_149\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 927972,\n    \"NoBenchmark\": false\n  }\n]\n"
  },
  {
    "path": "tests/prague/eip2537_bls_12_381_precompiles/vectors/msm_G2_bls.json",
    "content": "[\n  {\n    \"Input\": \"00000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be0000000000000000000000000000000000000000000000000000000000000002\",\n    \"Name\": \"bls_g2msm_(g2+g2=2*g2)\",\n    \"Expected\": \"000000000000000000000000000000001638533957d540a9d2370f17cc7ed5863bc0b995b8825e0ee1ea1e1e4d00dbae81f14b0bf3611b78c952aacab827a053000000000000000000000000000000000a4edef9c1ed7f729f520e47730a124fd70662a904ba1074728114d1031e1572c6c886f6b57ec72a6178288c47c33577000000000000000000000000000000000468fb440d82b0630aeb8dca2b5256789a66da69bf91009cbfe6bd221e47aa8ae88dece9764bf3bd999d95d71e4c9899000000000000000000000000000000000f6d4552fa65dd2638b361543f887136a43253d9c66c411697003f7a13c308f5422e1aa0a59c8967acdefd8b6e36ccf3\",\n    \"Gas\": 22500,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000103121a2ceaae586d240843a398967325f8eb5a93e8fea99b62b9f88d8556c80dd726a4b30e84a36eeabaf3592937f2700000000000000000000000000000000086b990f3da2aeac0a36143b7d7c824428215140db1bb859338764cb58458f081d92664f9053b50b3fbd2e4723121b68000000000000000000000000000000000f9e7ba9a86a8f7624aa2b42dcc8772e1af4ae115685e60abc2c9b90242167acef3d0be4050bf935eed7c3b6fc7ba77e000000000000000000000000000000000d22c3652d0dc6f0fc9316e14268477c2049ef772e852108d269d9c38dba1d4802e8dae479818184c08f9a569d8784510000000000000000000000000000000000000000000000000000000000000002\",\n    \"Name\": \"bls_g2msm_(p2+p2=2*p2)\",\n    \"Expected\": \"000000000000000000000000000000000b76fcbb604082a4f2d19858a7befd6053fa181c5119a612dfec83832537f644e02454f2b70d40985ebb08042d1620d40000000000000000000000000000000019a4a02c0ae51365d964c73be7babb719db1c69e0ddbf9a8a335b5bed3b0a4b070d2d5df01d2da4a3f1e56aae2ec106d000000000000000000000000000000000d18322f821ac72d3ca92f92b000483cf5b7d9e5d06873a44071c4e7e81efd904f210208fe0b9b4824f01c65bc7e62080000000000000000000000000000000004e563d53609a2d1e216aaaee5fbc14ef460160db8d1fdc5e1bd4e8b54cd2f39abf6f925969fa405efb9e700b01c7085\",\n    \"Gas\": 22500,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Name\": \"bls_g2msm_(1*g2=g2)\",\n    \"Expected\": \"00000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be\",\n    \"Gas\": 22500,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000103121a2ceaae586d240843a398967325f8eb5a93e8fea99b62b9f88d8556c80dd726a4b30e84a36eeabaf3592937f2700000000000000000000000000000000086b990f3da2aeac0a36143b7d7c824428215140db1bb859338764cb58458f081d92664f9053b50b3fbd2e4723121b68000000000000000000000000000000000f9e7ba9a86a8f7624aa2b42dcc8772e1af4ae115685e60abc2c9b90242167acef3d0be4050bf935eed7c3b6fc7ba77e000000000000000000000000000000000d22c3652d0dc6f0fc9316e14268477c2049ef772e852108d269d9c38dba1d4802e8dae479818184c08f9a569d8784510000000000000000000000000000000000000000000000000000000000000001\",\n    \"Name\": \"bls_g2msm_(1*p2=p2)\",\n    \"Expected\": \"00000000000000000000000000000000103121a2ceaae586d240843a398967325f8eb5a93e8fea99b62b9f88d8556c80dd726a4b30e84a36eeabaf3592937f2700000000000000000000000000000000086b990f3da2aeac0a36143b7d7c824428215140db1bb859338764cb58458f081d92664f9053b50b3fbd2e4723121b68000000000000000000000000000000000f9e7ba9a86a8f7624aa2b42dcc8772e1af4ae115685e60abc2c9b90242167acef3d0be4050bf935eed7c3b6fc7ba77e000000000000000000000000000000000d22c3652d0dc6f0fc9316e14268477c2049ef772e852108d269d9c38dba1d4802e8dae479818184c08f9a569d878451\",\n    \"Gas\": 22500,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be0000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_(0*g2=inf)\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 22500,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000103121a2ceaae586d240843a398967325f8eb5a93e8fea99b62b9f88d8556c80dd726a4b30e84a36eeabaf3592937f2700000000000000000000000000000000086b990f3da2aeac0a36143b7d7c824428215140db1bb859338764cb58458f081d92664f9053b50b3fbd2e4723121b68000000000000000000000000000000000f9e7ba9a86a8f7624aa2b42dcc8772e1af4ae115685e60abc2c9b90242167acef3d0be4050bf935eed7c3b6fc7ba77e000000000000000000000000000000000d22c3652d0dc6f0fc9316e14268477c2049ef772e852108d269d9c38dba1d4802e8dae479818184c08f9a569d8784510000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_(0*p2=inf)\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 22500,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011\",\n    \"Name\": \"bls_g2msm_(x*inf=inf)\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 22500,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002\",\n    \"Name\": \"bls_g2msm_(2g2+inf)\",\n    \"Expected\": \"000000000000000000000000000000001638533957d540a9d2370f17cc7ed5863bc0b995b8825e0ee1ea1e1e4d00dbae81f14b0bf3611b78c952aacab827a053000000000000000000000000000000000a4edef9c1ed7f729f520e47730a124fd70662a904ba1074728114d1031e1572c6c886f6b57ec72a6178288c47c33577000000000000000000000000000000000468fb440d82b0630aeb8dca2b5256789a66da69bf91009cbfe6bd221e47aa8ae88dece9764bf3bd999d95d71e4c9899000000000000000000000000000000000f6d4552fa65dd2638b361543f887136a43253d9c66c411697003f7a13c308f5422e1aa0a59c8967acdefd8b6e36ccf3\",\n    \"Gas\": 45000,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000103121a2ceaae586d240843a398967325f8eb5a93e8fea99b62b9f88d8556c80dd726a4b30e84a36eeabaf3592937f2700000000000000000000000000000000086b990f3da2aeac0a36143b7d7c824428215140db1bb859338764cb58458f081d92664f9053b50b3fbd2e4723121b68000000000000000000000000000000000f9e7ba9a86a8f7624aa2b42dcc8772e1af4ae115685e60abc2c9b90242167acef3d0be4050bf935eed7c3b6fc7ba77e000000000000000000000000000000000d22c3652d0dc6f0fc9316e14268477c2049ef772e852108d269d9c38dba1d4802e8dae479818184c08f9a569d8784510000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002\",\n    \"Name\": \"bls_g2msm_(2p2+inf)\",\n    \"Expected\": \"000000000000000000000000000000000b76fcbb604082a4f2d19858a7befd6053fa181c5119a612dfec83832537f644e02454f2b70d40985ebb08042d1620d40000000000000000000000000000000019a4a02c0ae51365d964c73be7babb719db1c69e0ddbf9a8a335b5bed3b0a4b070d2d5df01d2da4a3f1e56aae2ec106d000000000000000000000000000000000d18322f821ac72d3ca92f92b000483cf5b7d9e5d06873a44071c4e7e81efd904f210208fe0b9b4824f01c65bc7e62080000000000000000000000000000000004e563d53609a2d1e216aaaee5fbc14ef460160db8d1fdc5e1bd4e8b54cd2f39abf6f925969fa405efb9e700b01c7085\",\n    \"Gas\": 45000,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000103121a2ceaae586d240843a398967325f8eb5a93e8fea99b62b9f88d8556c80dd726a4b30e84a36eeabaf3592937f2700000000000000000000000000000000086b990f3da2aeac0a36143b7d7c824428215140db1bb859338764cb58458f081d92664f9053b50b3fbd2e4723121b68000000000000000000000000000000000f9e7ba9a86a8f7624aa2b42dcc8772e1af4ae115685e60abc2c9b90242167acef3d0be4050bf935eed7c3b6fc7ba77e000000000000000000000000000000000d22c3652d0dc6f0fc9316e14268477c2049ef772e852108d269d9c38dba1d4802e8dae479818184c08f9a569d878451000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000103121a2ceaae586d240843a398967325f8eb5a93e8fea99b62b9f88d8556c80dd726a4b30e84a36eeabaf3592937f2700000000000000000000000000000000086b990f3da2aeac0a36143b7d7c824428215140db1bb859338764cb58458f081d92664f9053b50b3fbd2e4723121b68000000000000000000000000000000000f9e7ba9a86a8f7624aa2b42dcc8772e1af4ae115685e60abc2c9b90242167acef3d0be4050bf935eed7c3b6fc7ba77e000000000000000000000000000000000d22c3652d0dc6f0fc9316e14268477c2049ef772e852108d269d9c38dba1d4802e8dae479818184c08f9a569d8784510000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1msm_(inf+inf)\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 45000,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000103121a2ceaae586d240843a398967325f8eb5a93e8fea99b62b9f88d8556c80dd726a4b30e84a36eeabaf3592937f2700000000000000000000000000000000086b990f3da2aeac0a36143b7d7c824428215140db1bb859338764cb58458f081d92664f9053b50b3fbd2e4723121b68000000000000000000000000000000000f9e7ba9a86a8f7624aa2b42dcc8772e1af4ae115685e60abc2c9b90242167acef3d0be4050bf935eed7c3b6fc7ba77e000000000000000000000000000000000d22c3652d0dc6f0fc9316e14268477c2049ef772e852108d269d9c38dba1d4802e8dae479818184c08f9a569d8784510000000000000000000000000000000000000000000000000000000000000002\",\n    \"Name\": \"bls_g2msm_(2g2+2p2)\",\n    \"Expected\": \"00000000000000000000000000000000009cc9ed6635623ba19b340cbc1b0eb05c3a58770623986bb7e041645175b0a38d663d929afb9a949f7524656043bccc000000000000000000000000000000000c0fb19d3f083fd5641d22a861a11979da258003f888c59c33005cb4a2df4df9e5a2868832063ac289dfa3e997f21f8a00000000000000000000000000000000168bf7d87cef37cf1707849e0a6708cb856846f5392d205ae7418dd94d94ef6c8aa5b424af2e99d957567654b9dae1d90000000000000000000000000000000017e0fa3c3b2665d52c26c7d4cea9f35443f4f9007840384163d3aa3c7d4d18b21b65ff4380cf3f3b48e94b5eecb221dd\",\n    \"Gas\": 45000,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be263dbd792f5b1be47ed85f8938c0f29586af0d3ac7b977f21c278fe1462040e300000000000000000000000000000000103121a2ceaae586d240843a398967325f8eb5a93e8fea99b62b9f88d8556c80dd726a4b30e84a36eeabaf3592937f2700000000000000000000000000000000086b990f3da2aeac0a36143b7d7c824428215140db1bb859338764cb58458f081d92664f9053b50b3fbd2e4723121b68000000000000000000000000000000000f9e7ba9a86a8f7624aa2b42dcc8772e1af4ae115685e60abc2c9b90242167acef3d0be4050bf935eed7c3b6fc7ba77e000000000000000000000000000000000d22c3652d0dc6f0fc9316e14268477c2049ef772e852108d269d9c38dba1d4802e8dae479818184c08f9a569d87845147b8192d77bf871b62e87859d653922725724a5c031afeabc60bcef5ff66513800000000000000000000000000000000108ed59fd9fae381abfd1d6bce2fd2fa220990f0f837fa30e0f27914ed6e1454db0d1ee957b219f61da6ff8be0d6441f000000000000000000000000000000000296238ea82c6d4adb3c838ee3cb2346049c90b96d602d7bb1b469b905c9228be25c627bffee872def773d5b2a2eb57d00000000000000000000000000000000033f90f6057aadacae7963b0a0b379dd46750c1c94a6357c99b65f63b79e321ff50fe3053330911c56b6ceea08fee65600000000000000000000000000000000153606c417e59fb331b7ae6bce4fbf7c5190c33ce9402b5ebe2b70e44fca614f3f1382a3625ed5493843d0b0a652fc3f328388aff0d4a5b7dc9205abd374e7e98f3cd9f3418edb4eafda5fb16473d21600000000000000000000000000000000038af300ef34c7759a6caaa4e69363cafeed218a1f207e93b2c70d91a1263d375d6730bd6b6509dcac3ba5b567e85bf3000000000000000000000000000000000da75be60fb6aa0e9e3143e40c42796edf15685cafe0279afd2a67c3dff1c82341f17effd402e4f1af240ea90f4b659b0000000000000000000000000000000019b148cbdf163cf0894f29660d2e7bfb2b68e37d54cc83fd4e6e62c020eaa48709302ef8e746736c0e19342cc1ce3df4000000000000000000000000000000000492f4fed741b073e5a82580f7c663f9b79e036b70ab3e51162359cec4e77c78086fe879b65ca7a47d34374c8315ac5e263dbd792f5b1be47ed85f8938c0f29586af0d3ac7b977f21c278fe1462040e2000000000000000000000000000000000c5ae723be00e6c3f0efe184fdc0702b64588fe77dda152ab13099a3bacd3876767fa7bbad6d6fd90b3642e902b208f90000000000000000000000000000000012c8c05c1d5fc7bfa847f4d7d81e294e66b9a78bc9953990c358945e1f042eedafce608b67fdd3ab0cb2e6e263b9b1ad0000000000000000000000000000000004e77ddb3ede41b5ec4396b7421dd916efc68a358a0d7425bddd253547f2fb4830522358491827265dfc5bcc1928a5690000000000000000000000000000000011c624c56dbe154d759d021eec60fab3d8b852395a89de497e48504366feedd4662d023af447d66926a28076813dd64647b8192d77bf871b62e87859d653922725724a5c031afeabc60bcef5ff665131000000000000000000000000000000000ea4e7c33d43e17cc516a72f76437c4bf81d8f4eac69ac355d3bf9b71b8138d55dc10fd458be115afa798b55dac34be1000000000000000000000000000000001565c2f625032d232f13121d3cfb476f45275c303a037faa255f9da62000c2c864ea881e2bcddd111edc4a3c0da3e88d00000000000000000000000000000000043b6f5fe4e52c839148dc66f2b3751e69a0f6ebb3d056d6465d50d4108543ecd956e10fa1640dfd9bc0030cc2558d28000000000000000000000000000000000f8991d2a1ad662e7b6f58ab787947f1fa607fce12dde171bc17903b012091b657e15333e11701edcf5b63ba2a561247328388aff0d4a5b7dc9205abd374e7e98f3cd9f3418edb4eafda5fb16473d211\",\n    \"Name\": \"bls_g2msm_multiple\",\n    \"Expected\": \"0000000000000000000000000000000016cf5fd2c2f1b2e01cc48a6d03e8e6d7f3ad754d6c7d4000f806c18c28d8d559cf529dd159c74946a7713d1906894718000000000000000000000000000000000628d42142df8d620d1f3709ac01f382ba950eaf14c12863885af5838067deec4bb363ffda427fcbdd2b8ec6cc5784ae0000000000000000000000000000000018168dec2441ef462e9a769c782f81acdc7fa49dffebb996764ba9fa96b9200ceb5edd9e96b33c383bd042b4e6af191a000000000000000000000000000000001065aaea2c4aa1d2bee7f1e82a2138ae7016dbbade8383ad912d81eca5fb260086238f95f8cef8f2f491969d4cefa2c3\",\n    \"Gas\": 112320,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be9a2b64cc58f8992cb21237914262ca9ada6cb13dc7b7d3f11c278fe0462040e4\",\n    \"Name\": \"bls_g2msm_random*g2_unnormalized_scalar\",\n    \"Expected\": \"0000000000000000000000000000000014856c22d8cdb2967c720e963eedc999e738373b14172f06fc915769d3cc5ab7ae0a1b9c38f48b5585fb09d4bd2733bb000000000000000000000000000000000c400b70f6f8cd35648f5c126cce5417f3be4d8eefbd42ceb4286a14df7e03135313fe5845e3a575faab3e8b949d248800000000000000000000000000000000149a0aacc34beba2beb2f2a19a440166e76e373194714f108e4ab1c3fd331e80f4e73e6b9ea65fe3ec96d7136de81544000000000000000000000000000000000e4622fef26bdb9b1e8ef6591a7cc99f5b73164500c1ee224b6a761e676b8799b09a3fd4fa7e242645cc1a34708285e4\",\n    \"Gas\": 22500,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000103121a2ceaae586d240843a398967325f8eb5a93e8fea99b62b9f88d8556c80dd726a4b30e84a36eeabaf3592937f2700000000000000000000000000000000086b990f3da2aeac0a36143b7d7c824428215140db1bb859338764cb58458f081d92664f9053b50b3fbd2e4723121b68000000000000000000000000000000000f9e7ba9a86a8f7624aa2b42dcc8772e1af4ae115685e60abc2c9b90242167acef3d0be4050bf935eed7c3b6fc7ba77e000000000000000000000000000000000d22c3652d0dc6f0fc9316e14268477c2049ef772e852108d269d9c38dba1d4802e8dae479818184c08f9a569d8784519a2b64cc58f8992cb21237914262ca9ada6cb13dc7b7d3f11c278fe0462040e4\",\n    \"Name\": \"bls_g2msm_random*p2_unnormalized_scalar\",\n    \"Expected\": \"00000000000000000000000000000000036074dcbbd0e987531bfe0e45ddfbe09fd015665990ee0c352e8e403fe6af971d8f42141970d9ab14b4dd04874409e600000000000000000000000000000000019705637f24ba2f398f32c3a3e20d6a1cd0fd63e6f8f071cf603a8334f255744927e7bfdfdb18519e019c49ff6e914500000000000000000000000000000000008e74fcff4c4278c9accfb60809ed69bbcbe3d6213ef2304e078d15ec7d6decb4f462b24b8e7cc38cc11b6f2c9e0486000000000000000000000000000000001331d40100f38c1070afd832445881b47cf4d63894666d9907c85ac66604aab5ad329980938cc3c167ccc5b6bc1b8f30\",\n    \"Gas\": 22500,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be263dbd792f5b1be47ed85f8938c0f29586af0d3ac7b977f21c278fe1462040e300000000000000000000000000000000103121a2ceaae586d240843a398967325f8eb5a93e8fea99b62b9f88d8556c80dd726a4b30e84a36eeabaf3592937f2700000000000000000000000000000000086b990f3da2aeac0a36143b7d7c824428215140db1bb859338764cb58458f081d92664f9053b50b3fbd2e4723121b68000000000000000000000000000000000f9e7ba9a86a8f7624aa2b42dcc8772e1af4ae115685e60abc2c9b90242167acef3d0be4050bf935eed7c3b6fc7ba77e000000000000000000000000000000000d22c3652d0dc6f0fc9316e14268477c2049ef772e852108d269d9c38dba1d4802e8dae479818184c08f9a569d87845147b8192d77bf871b62e87859d653922725724a5c031afeabc60bcef5ff66513800000000000000000000000000000000108ed59fd9fae381abfd1d6bce2fd2fa220990f0f837fa30e0f27914ed6e1454db0d1ee957b219f61da6ff8be0d6441f000000000000000000000000000000000296238ea82c6d4adb3c838ee3cb2346049c90b96d602d7bb1b469b905c9228be25c627bffee872def773d5b2a2eb57d00000000000000000000000000000000033f90f6057aadacae7963b0a0b379dd46750c1c94a6357c99b65f63b79e321ff50fe3053330911c56b6ceea08fee65600000000000000000000000000000000153606c417e59fb331b7ae6bce4fbf7c5190c33ce9402b5ebe2b70e44fca614f3f1382a3625ed5493843d0b0a652fc3f328388aff0d4a5b7dc9205abd374e7e98f3cd9f3418edb4eafda5fb16473d21600000000000000000000000000000000038af300ef34c7759a6caaa4e69363cafeed218a1f207e93b2c70d91a1263d375d6730bd6b6509dcac3ba5b567e85bf3000000000000000000000000000000000da75be60fb6aa0e9e3143e40c42796edf15685cafe0279afd2a67c3dff1c82341f17effd402e4f1af240ea90f4b659b0000000000000000000000000000000019b148cbdf163cf0894f29660d2e7bfb2b68e37d54cc83fd4e6e62c020eaa48709302ef8e746736c0e19342cc1ce3df4000000000000000000000000000000000492f4fed741b073e5a82580f7c663f9b79e036b70ab3e51162359cec4e77c78086fe879b65ca7a47d34374c8315ac5e263dbd792f5b1be47ed85f8938c0f29586af0d3ac7b977f21c278fe1462040e2000000000000000000000000000000000c5ae723be00e6c3f0efe184fdc0702b64588fe77dda152ab13099a3bacd3876767fa7bbad6d6fd90b3642e902b208f90000000000000000000000000000000012c8c05c1d5fc7bfa847f4d7d81e294e66b9a78bc9953990c358945e1f042eedafce608b67fdd3ab0cb2e6e263b9b1ad0000000000000000000000000000000004e77ddb3ede41b5ec4396b7421dd916efc68a358a0d7425bddd253547f2fb4830522358491827265dfc5bcc1928a5690000000000000000000000000000000011c624c56dbe154d759d021eec60fab3d8b852395a89de497e48504366feedd4662d023af447d66926a28076813dd64647b8192d77bf871b62e87859d653922725724a5c031afeabc60bcef5ff665131000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ea4e7c33d43e17cc516a72f76437c4bf81d8f4eac69ac355d3bf9b71b8138d55dc10fd458be115afa798b55dac34be1000000000000000000000000000000001565c2f625032d232f13121d3cfb476f45275c303a037faa255f9da62000c2c864ea881e2bcddd111edc4a3c0da3e88d00000000000000000000000000000000043b6f5fe4e52c839148dc66f2b3751e69a0f6ebb3d056d6465d50d4108543ecd956e10fa1640dfd9bc0030cc2558d28000000000000000000000000000000000f8991d2a1ad662e7b6f58ab787947f1fa607fce12dde171bc17903b012091b657e15333e11701edcf5b63ba2a561247328388aff0d4a5b7dc9205abd374e7e98f3cd9f3418edb4eafda5fb16473d211\",\n    \"Name\": \"bls_g2msm_multiple_with_point_at_infinity\",\n    \"Expected\": \"0000000000000000000000000000000016cf5fd2c2f1b2e01cc48a6d03e8e6d7f3ad754d6c7d4000f806c18c28d8d559cf529dd159c74946a7713d1906894718000000000000000000000000000000000628d42142df8d620d1f3709ac01f382ba950eaf14c12863885af5838067deec4bb363ffda427fcbdd2b8ec6cc5784ae0000000000000000000000000000000018168dec2441ef462e9a769c782f81acdc7fa49dffebb996764ba9fa96b9200ceb5edd9e96b33c383bd042b4e6af191a000000000000000000000000000000001065aaea2c4aa1d2bee7f1e82a2138ae7016dbbade8383ad912d81eca5fb260086238f95f8cef8f2f491969d4cefa2c3\",\n    \"Gas\": 127890,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_1\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 22500,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_2\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 45000,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_3\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 62302,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_4\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 79560,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_5\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 96187,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_6\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 112320,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_7\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 127890,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_8\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 143280,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_9\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 158355,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_10\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 173250,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_11\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 187852,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_12\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 202230,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_13\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 216450,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_14\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 230580,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_15\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 244350,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_16\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 258120,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_17\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 271957,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_18\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 285120,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_19\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 298822,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_20\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 311850,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_21\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 325080,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_22\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 338085,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_23\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 351382,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_24\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 363960,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_25\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 376875,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_26\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 389610,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_27\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 402772,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_28\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 415170,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_29\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 427387,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_30\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 440100,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_31\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 452677,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_32\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 465120,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_33\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 477427,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_34\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 489600,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_35\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 501637,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_36\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 513540,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_37\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 526140,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_38\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 537795,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_39\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 550192,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_40\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 561600,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_41\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 573795,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_42\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 585900,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_43\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 597915,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_44\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 608850,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_45\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 620662,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_46\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 632385,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_47\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 644017,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_48\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 655560,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_49\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 668115,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_50\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 679500,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_51\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 690795,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_52\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 702000,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_53\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 713115,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_54\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 725355,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_55\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 736312,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_56\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 747180,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_57\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 759240,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_58\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 769950,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_59\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 781897,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_60\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 792450,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_61\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 804285,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_62\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 814680,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_63\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 826402,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_64\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 838080,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_65\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 848250,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_66\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 859815,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_67\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 871335,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_68\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 881280,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_69\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 892687,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_70\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 904050,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_71\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 915367,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_72\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 925020,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_73\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 936225,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_74\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 947385,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_75\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 958500,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_76\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 969570,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_77\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 980595,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_78\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 991575,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_79\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1000732,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_80\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1011600,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_81\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1022422,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_82\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1033200,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_83\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1043932,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_84\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1054620,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_85\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1065262,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_86\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1075860,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_87\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1086412,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_88\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1096920,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_89\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1107382,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_90\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1117800,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_91\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1130220,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_92\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1140570,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_93\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1150875,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_94\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1161135,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_95\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1171350,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_96\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1181520,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_97\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1191645,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_98\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1201725,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_99\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1213987,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_100\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1224000,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_101\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1233967,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_102\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1243890,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_103\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1253767,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_104\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1265940,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_105\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1275750,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_106\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1285515,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_107\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1295235,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_108\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1304910,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_109\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1316992,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_110\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1326600,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_111\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1336162,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_112\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1348200,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_113\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1357695,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_114\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1367145,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_115\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1376550,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_116\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1388520,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_117\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1397857,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_118\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1407150,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_119\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1419075,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_120\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1428300,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_121\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1437480,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_122\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1449360,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_123\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1458472,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_124\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1467540,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_125\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1479375,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_126\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1488375,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_127\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1497330,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_128\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1509120,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_129\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1520910,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_130\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1532700,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_131\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1544490,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_132\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1556280,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_133\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1568070,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_134\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1579860,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_135\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1591650,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_136\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1603440,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_137\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1615230,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_138\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1627020,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_139\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1638810,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_140\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1650600,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_141\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1662390,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_142\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1674180,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_143\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1685970,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_144\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1697760,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_145\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1709550,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_146\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1721340,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_147\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1733130,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_148\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1744920,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2msm_discount_table_149\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 1756710,\n    \"NoBenchmark\": false\n  }\n]\n"
  },
  {
    "path": "tests/prague/eip2537_bls_12_381_precompiles/vectors/mul_G1_bls.json",
    "content": "[\n  {\n    \"Input\": \"0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e10000000000000000000000000000000000000000000000000000000000000002\",\n    \"Name\": \"bls_g1mul_(g1+g1=2*g1)\",\n    \"Expected\": \"000000000000000000000000000000000572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e00000000000000000000000000000000166a9d8cabc673a322fda673779d8e3822ba3ecb8670e461f73bb9021d5fd76a4c56d9d4cd16bd1bba86881979749d28\",\n    \"Gas\": 12000,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000112b98340eee2777cc3c14163dea3ec97977ac3dc5c70da32e6e87578f44912e902ccef9efe28d4a78b8999dfbca942600000000000000000000000000000000186b28d92356c4dfec4b5201ad099dbdede3781f8998ddf929b4cd7756192185ca7b8f4ef7088f813270ac3d48868a210000000000000000000000000000000000000000000000000000000000000002\",\n    \"Name\": \"bls_g1mul_(p1+p1=2*p1)\",\n    \"Expected\": \"0000000000000000000000000000000015222cddbabdd764c4bee0b3720322a65ff4712c86fc4b1588d0c209210a0884fa9468e855d261c483091b2bf7de6a630000000000000000000000000000000009f9edb99bc3b75d7489735c98b16ab78b9386c5f7a1f76c7e96ac6eb5bbde30dbca31a74ec6e0f0b12229eecea33c39\",\n    \"Gas\": 12000,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e10000000000000000000000000000000000000000000000000000000000000001\",\n    \"Name\": \"bls_g1mul_(1*g1=g1)\",\n    \"Expected\": \"0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e1\",\n    \"Gas\": 12000,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000112b98340eee2777cc3c14163dea3ec97977ac3dc5c70da32e6e87578f44912e902ccef9efe28d4a78b8999dfbca942600000000000000000000000000000000186b28d92356c4dfec4b5201ad099dbdede3781f8998ddf929b4cd7756192185ca7b8f4ef7088f813270ac3d48868a210000000000000000000000000000000000000000000000000000000000000001\",\n    \"Name\": \"bls_g1mul_(1*p1=p1)\",\n    \"Expected\": \"00000000000000000000000000000000112b98340eee2777cc3c14163dea3ec97977ac3dc5c70da32e6e87578f44912e902ccef9efe28d4a78b8999dfbca942600000000000000000000000000000000186b28d92356c4dfec4b5201ad099dbdede3781f8998ddf929b4cd7756192185ca7b8f4ef7088f813270ac3d48868a21\",\n    \"Gas\": 12000,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e10000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1mul_(0*g1=inf)\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 12000,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000112b98340eee2777cc3c14163dea3ec97977ac3dc5c70da32e6e87578f44912e902ccef9efe28d4a78b8999dfbca942600000000000000000000000000000000186b28d92356c4dfec4b5201ad099dbdede3781f8998ddf929b4cd7756192185ca7b8f4ef7088f813270ac3d48868a210000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g1mul_(0*p1=inf)\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 12000,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011\",\n    \"Name\": \"bls_g1mul_(x*inf=inf)\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 12000,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e1263dbd792f5b1be47ed85f8938c0f29586af0d3ac7b977f21c278fe1462040e3\",\n    \"Name\": \"bls_g1mul_random*g1\",\n    \"Expected\": \"000000000000000000000000000000000491d1b0ecd9bb917989f0e74f0dea0422eac4a873e5e2644f368dffb9a6e20fd6e10c1b77654d067c0618f6e5a7f79a0000000000000000000000000000000017cd7061575d3e8034fcea62adaa1a3bc38dca4b50e4c5c01d04dd78037c9cee914e17944ea99e7ad84278e5d49f36c4\",\n    \"Gas\": 12000,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000112b98340eee2777cc3c14163dea3ec97977ac3dc5c70da32e6e87578f44912e902ccef9efe28d4a78b8999dfbca942600000000000000000000000000000000186b28d92356c4dfec4b5201ad099dbdede3781f8998ddf929b4cd7756192185ca7b8f4ef7088f813270ac3d48868a21263dbd792f5b1be47ed85f8938c0f29586af0d3ac7b977f21c278fe1462040e3\",\n    \"Name\": \"bls_g1mul_random*p1\",\n    \"Expected\": \"0000000000000000000000000000000006ee9c9331228753bcb148d0ca8623447701bb0aa6eafb0340aa7f81543923474e00f2a225de65c62dd1d8303270220c0000000000000000000000000000000018dd7be47eb4e80985d7a0d2cc96c8b004250b36a5c3ec0217705d453d3ecc6d0d3d1588722da51b40728baba1e93804\",\n    \"Gas\": 12000,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e19a2b64cc58f8992cb21237914262ca9ada6cb13dc7b7d3f11c278fe0462040e4\",\n    \"Name\": \"bls_g1mul_random*g1_unnormalized_scalar\",\n    \"Expected\": \"000000000000000000000000000000000491d1b0ecd9bb917989f0e74f0dea0422eac4a873e5e2644f368dffb9a6e20fd6e10c1b77654d067c0618f6e5a7f79a0000000000000000000000000000000017cd7061575d3e8034fcea62adaa1a3bc38dca4b50e4c5c01d04dd78037c9cee914e17944ea99e7ad84278e5d49f36c4\",\n    \"Gas\": 12000,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000112b98340eee2777cc3c14163dea3ec97977ac3dc5c70da32e6e87578f44912e902ccef9efe28d4a78b8999dfbca942600000000000000000000000000000000186b28d92356c4dfec4b5201ad099dbdede3781f8998ddf929b4cd7756192185ca7b8f4ef7088f813270ac3d48868a219a2b64cc58f8992cb21237914262ca9ada6cb13dc7b7d3f11c278fe0462040e4\",\n    \"Name\": \"bls_g1mul_random*p1_unnormalized_scalar\",\n    \"Expected\": \"0000000000000000000000000000000006ee9c9331228753bcb148d0ca8623447701bb0aa6eafb0340aa7f81543923474e00f2a225de65c62dd1d8303270220c0000000000000000000000000000000018dd7be47eb4e80985d7a0d2cc96c8b004250b36a5c3ec0217705d453d3ecc6d0d3d1588722da51b40728baba1e93804\",\n    \"Gas\": 12000,\n    \"NoBenchmark\": false\n  }\n]\n"
  },
  {
    "path": "tests/prague/eip2537_bls_12_381_precompiles/vectors/mul_G2_bls.json",
    "content": "[\n  {\n    \"Input\": \"00000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be0000000000000000000000000000000000000000000000000000000000000002\",\n    \"Name\": \"bls_g2mul_(g2+g2=2*g2)\",\n    \"Expected\": \"000000000000000000000000000000001638533957d540a9d2370f17cc7ed5863bc0b995b8825e0ee1ea1e1e4d00dbae81f14b0bf3611b78c952aacab827a053000000000000000000000000000000000a4edef9c1ed7f729f520e47730a124fd70662a904ba1074728114d1031e1572c6c886f6b57ec72a6178288c47c33577000000000000000000000000000000000468fb440d82b0630aeb8dca2b5256789a66da69bf91009cbfe6bd221e47aa8ae88dece9764bf3bd999d95d71e4c9899000000000000000000000000000000000f6d4552fa65dd2638b361543f887136a43253d9c66c411697003f7a13c308f5422e1aa0a59c8967acdefd8b6e36ccf3\",\n    \"Gas\": 22500,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000103121a2ceaae586d240843a398967325f8eb5a93e8fea99b62b9f88d8556c80dd726a4b30e84a36eeabaf3592937f2700000000000000000000000000000000086b990f3da2aeac0a36143b7d7c824428215140db1bb859338764cb58458f081d92664f9053b50b3fbd2e4723121b68000000000000000000000000000000000f9e7ba9a86a8f7624aa2b42dcc8772e1af4ae115685e60abc2c9b90242167acef3d0be4050bf935eed7c3b6fc7ba77e000000000000000000000000000000000d22c3652d0dc6f0fc9316e14268477c2049ef772e852108d269d9c38dba1d4802e8dae479818184c08f9a569d8784510000000000000000000000000000000000000000000000000000000000000002\",\n    \"Name\": \"bls_g2mul_(p2+p2=2*p2)\",\n    \"Expected\": \"000000000000000000000000000000000b76fcbb604082a4f2d19858a7befd6053fa181c5119a612dfec83832537f644e02454f2b70d40985ebb08042d1620d40000000000000000000000000000000019a4a02c0ae51365d964c73be7babb719db1c69e0ddbf9a8a335b5bed3b0a4b070d2d5df01d2da4a3f1e56aae2ec106d000000000000000000000000000000000d18322f821ac72d3ca92f92b000483cf5b7d9e5d06873a44071c4e7e81efd904f210208fe0b9b4824f01c65bc7e62080000000000000000000000000000000004e563d53609a2d1e216aaaee5fbc14ef460160db8d1fdc5e1bd4e8b54cd2f39abf6f925969fa405efb9e700b01c7085\",\n    \"Gas\": 22500,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Name\": \"bls_g2mul_(1*g2=g2)\",\n    \"Expected\": \"00000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be\",\n    \"Gas\": 22500,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000103121a2ceaae586d240843a398967325f8eb5a93e8fea99b62b9f88d8556c80dd726a4b30e84a36eeabaf3592937f2700000000000000000000000000000000086b990f3da2aeac0a36143b7d7c824428215140db1bb859338764cb58458f081d92664f9053b50b3fbd2e4723121b68000000000000000000000000000000000f9e7ba9a86a8f7624aa2b42dcc8772e1af4ae115685e60abc2c9b90242167acef3d0be4050bf935eed7c3b6fc7ba77e000000000000000000000000000000000d22c3652d0dc6f0fc9316e14268477c2049ef772e852108d269d9c38dba1d4802e8dae479818184c08f9a569d8784510000000000000000000000000000000000000000000000000000000000000001\",\n    \"Name\": \"bls_g2mul_(1*p2=p2)\",\n    \"Expected\": \"00000000000000000000000000000000103121a2ceaae586d240843a398967325f8eb5a93e8fea99b62b9f88d8556c80dd726a4b30e84a36eeabaf3592937f2700000000000000000000000000000000086b990f3da2aeac0a36143b7d7c824428215140db1bb859338764cb58458f081d92664f9053b50b3fbd2e4723121b68000000000000000000000000000000000f9e7ba9a86a8f7624aa2b42dcc8772e1af4ae115685e60abc2c9b90242167acef3d0be4050bf935eed7c3b6fc7ba77e000000000000000000000000000000000d22c3652d0dc6f0fc9316e14268477c2049ef772e852108d269d9c38dba1d4802e8dae479818184c08f9a569d878451\",\n    \"Gas\": 22500,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be0000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2mul_(0*g2=inf)\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 22500,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000103121a2ceaae586d240843a398967325f8eb5a93e8fea99b62b9f88d8556c80dd726a4b30e84a36eeabaf3592937f2700000000000000000000000000000000086b990f3da2aeac0a36143b7d7c824428215140db1bb859338764cb58458f081d92664f9053b50b3fbd2e4723121b68000000000000000000000000000000000f9e7ba9a86a8f7624aa2b42dcc8772e1af4ae115685e60abc2c9b90242167acef3d0be4050bf935eed7c3b6fc7ba77e000000000000000000000000000000000d22c3652d0dc6f0fc9316e14268477c2049ef772e852108d269d9c38dba1d4802e8dae479818184c08f9a569d8784510000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_g2mul_(0*p2=inf)\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 22500,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011\",\n    \"Name\": \"bls_g2mul_(x*inf=inf)\",\n    \"Expected\": \"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 22500,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be263dbd792f5b1be47ed85f8938c0f29586af0d3ac7b977f21c278fe1462040e3\",\n    \"Name\": \"bls_g2mul_random*g2\",\n    \"Expected\": \"0000000000000000000000000000000014856c22d8cdb2967c720e963eedc999e738373b14172f06fc915769d3cc5ab7ae0a1b9c38f48b5585fb09d4bd2733bb000000000000000000000000000000000c400b70f6f8cd35648f5c126cce5417f3be4d8eefbd42ceb4286a14df7e03135313fe5845e3a575faab3e8b949d248800000000000000000000000000000000149a0aacc34beba2beb2f2a19a440166e76e373194714f108e4ab1c3fd331e80f4e73e6b9ea65fe3ec96d7136de81544000000000000000000000000000000000e4622fef26bdb9b1e8ef6591a7cc99f5b73164500c1ee224b6a761e676b8799b09a3fd4fa7e242645cc1a34708285e4\",\n    \"Gas\": 22500,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000103121a2ceaae586d240843a398967325f8eb5a93e8fea99b62b9f88d8556c80dd726a4b30e84a36eeabaf3592937f2700000000000000000000000000000000086b990f3da2aeac0a36143b7d7c824428215140db1bb859338764cb58458f081d92664f9053b50b3fbd2e4723121b68000000000000000000000000000000000f9e7ba9a86a8f7624aa2b42dcc8772e1af4ae115685e60abc2c9b90242167acef3d0be4050bf935eed7c3b6fc7ba77e000000000000000000000000000000000d22c3652d0dc6f0fc9316e14268477c2049ef772e852108d269d9c38dba1d4802e8dae479818184c08f9a569d878451263dbd792f5b1be47ed85f8938c0f29586af0d3ac7b977f21c278fe1462040e3\",\n    \"Name\": \"bls_g2mul_random*p2\",\n    \"Expected\": \"00000000000000000000000000000000036074dcbbd0e987531bfe0e45ddfbe09fd015665990ee0c352e8e403fe6af971d8f42141970d9ab14b4dd04874409e600000000000000000000000000000000019705637f24ba2f398f32c3a3e20d6a1cd0fd63e6f8f071cf603a8334f255744927e7bfdfdb18519e019c49ff6e914500000000000000000000000000000000008e74fcff4c4278c9accfb60809ed69bbcbe3d6213ef2304e078d15ec7d6decb4f462b24b8e7cc38cc11b6f2c9e0486000000000000000000000000000000001331d40100f38c1070afd832445881b47cf4d63894666d9907c85ac66604aab5ad329980938cc3c167ccc5b6bc1b8f30\",\n    \"Gas\": 22500,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be9a2b64cc58f8992cb21237914262ca9ada6cb13dc7b7d3f11c278fe0462040e4\",\n    \"Name\": \"bls_g2mul_random*g2_unnormalized_scalar\",\n    \"Expected\": \"0000000000000000000000000000000014856c22d8cdb2967c720e963eedc999e738373b14172f06fc915769d3cc5ab7ae0a1b9c38f48b5585fb09d4bd2733bb000000000000000000000000000000000c400b70f6f8cd35648f5c126cce5417f3be4d8eefbd42ceb4286a14df7e03135313fe5845e3a575faab3e8b949d248800000000000000000000000000000000149a0aacc34beba2beb2f2a19a440166e76e373194714f108e4ab1c3fd331e80f4e73e6b9ea65fe3ec96d7136de81544000000000000000000000000000000000e4622fef26bdb9b1e8ef6591a7cc99f5b73164500c1ee224b6a761e676b8799b09a3fd4fa7e242645cc1a34708285e4\",\n    \"Gas\": 22500,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"00000000000000000000000000000000103121a2ceaae586d240843a398967325f8eb5a93e8fea99b62b9f88d8556c80dd726a4b30e84a36eeabaf3592937f2700000000000000000000000000000000086b990f3da2aeac0a36143b7d7c824428215140db1bb859338764cb58458f081d92664f9053b50b3fbd2e4723121b68000000000000000000000000000000000f9e7ba9a86a8f7624aa2b42dcc8772e1af4ae115685e60abc2c9b90242167acef3d0be4050bf935eed7c3b6fc7ba77e000000000000000000000000000000000d22c3652d0dc6f0fc9316e14268477c2049ef772e852108d269d9c38dba1d4802e8dae479818184c08f9a569d8784519a2b64cc58f8992cb21237914262ca9ada6cb13dc7b7d3f11c278fe0462040e4\",\n    \"Name\": \"bls_g2mul_random*p2_unnormalized_scalar\",\n    \"Expected\": \"00000000000000000000000000000000036074dcbbd0e987531bfe0e45ddfbe09fd015665990ee0c352e8e403fe6af971d8f42141970d9ab14b4dd04874409e600000000000000000000000000000000019705637f24ba2f398f32c3a3e20d6a1cd0fd63e6f8f071cf603a8334f255744927e7bfdfdb18519e019c49ff6e914500000000000000000000000000000000008e74fcff4c4278c9accfb60809ed69bbcbe3d6213ef2304e078d15ec7d6decb4f462b24b8e7cc38cc11b6f2c9e0486000000000000000000000000000000001331d40100f38c1070afd832445881b47cf4d63894666d9907c85ac66604aab5ad329980938cc3c167ccc5b6bc1b8f30\",\n    \"Gas\": 22500,\n    \"NoBenchmark\": false\n  }\n]\n"
  },
  {
    "path": "tests/prague/eip2537_bls_12_381_precompiles/vectors/pairing_check_bls.json",
    "content": "[\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_pairing_e(0,0)\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 70300,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_pairing_e(0,0)=e(0,0)\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 102900,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be\",\n    \"Name\": \"bls_pairing_e(0,G2)\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 70300,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n    \"Name\": \"bls_pairing_e(G1,0)\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 70300,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e100000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000d1b3cc2c7027888be51d9ef691d77bcb679afda66c73f17f9ee3837a55024f78c71363275a75d75d86bab79f74782aa0000000000000000000000000000000013fa4d4a0ad8b1ce186ed5061789213d993923066dddaf1040bc3ff59f825c78df74f2d75467e25e0f55f8a00fa030ed\",\n    \"Name\": \"bls_pairing_e(0,-G2)!=e(-G1,G2)\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 102900,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e100000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000d1b3cc2c7027888be51d9ef691d77bcb679afda66c73f17f9ee3837a55024f78c71363275a75d75d86bab79f74782aa0000000000000000000000000000000013fa4d4a0ad8b1ce186ed5061789213d993923066dddaf1040bc3ff59f825c78df74f2d75467e25e0f55f8a00fa030ed\",\n    \"Name\": \"bls_pairing_e(G1,0)!=e(-G1,G2)\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 102900,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be\",\n    \"Name\": \"bls_pairing_e(G1,0)=e(0,G2)\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 102900,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e100000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be\",\n    \"Name\": \"bls_pairing_non-degeneracy_e(P,Q)!= 1\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 70300,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e100000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be00000000000000000000000000000000112b98340eee2777cc3c14163dea3ec97977ac3dc5c70da32e6e87578f44912e902ccef9efe28d4a78b8999dfbca942600000000000000000000000000000000186b28d92356c4dfec4b5201ad099dbdede3781f8998ddf929b4cd7756192185ca7b8f4ef7088f813270ac3d48868a2100000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be000000000000000000000000000000000a40300ce2dec9888b60690e9a41d3004fda4886854573974fab73b046d3147ba5b7a5bde85279ffede1b45b3918d82d0000000000000000000000000000000006d3d887e9f53b9ec4eb6cedf5607226754b07c01ace7834f57f3e7315faefb739e59018e22c492006190fba4a87002500000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000d1b3cc2c7027888be51d9ef691d77bcb679afda66c73f17f9ee3837a55024f78c71363275a75d75d86bab79f74782aa0000000000000000000000000000000013fa4d4a0ad8b1ce186ed5061789213d993923066dddaf1040bc3ff59f825c78df74f2d75467e25e0f55f8a00fa030ed\",\n    \"Name\": \"bls_pairing_bilinearity_e(G1,G2)*e(P1,G2)*e(P1+G1,-G2)=1\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 135500,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e100000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e100000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000d1b3cc2c7027888be51d9ef691d77bcb679afda66c73f17f9ee3837a55024f78c71363275a75d75d86bab79f74782aa0000000000000000000000000000000013fa4d4a0ad8b1ce186ed5061789213d993923066dddaf1040bc3ff59f825c78df74f2d75467e25e0f55f8a00fa030ed\",\n    \"Name\": \"bls_pairing_e(G1,G2)*e(G1,-G2)=1\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 102900,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000491d1b0ecd9bb917989f0e74f0dea0422eac4a873e5e2644f368dffb9a6e20fd6e10c1b77654d067c0618f6e5a7f79a0000000000000000000000000000000017cd7061575d3e8034fcea62adaa1a3bc38dca4b50e4c5c01d04dd78037c9cee914e17944ea99e7ad84278e5d49f36c4000000000000000000000000000000000bc2357c6782bbb6a078d9e171fc7a81f7bd8ca73eb485e76317359908bb09bd372fd362a637512a9d48019b383e54890000000000000000000000000000000004b8f49c3bac0247a09487049492b0ed99cf90c56263141daa35f011330d3ced3f3ad78d252c51a3bb42fc7d8f182594000000000000000000000000000000000982d17b17404ac198a0ff5f2dffa56a328d95ec4732d9cca9da420ec7cf716dc63d56d0f5179a8b1ec71fe0328fe88200000000000000000000000000000000147c92cb19e43943bb20c5360a6c4347411eb8ffb3d6f19cc428a8dc0cb3fd1eb3ad02b1c21e21c78f65a7691ee63de90000000000000000000000000000000016cae74dc6523e5273dbd2d9d25c53f1e2c453e6d9ba3f605021cfb514fa0bdf721b05f2200f32591d733e739fabf438000000000000000000000000000000001405df65fb71b738510b3a2fc31c33ef3d884ccc84efb1017341a368bf40727b7ad8cdc8e3fd6b0eb94102488c5cb77000000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000d1b3cc2c7027888be51d9ef691d77bcb679afda66c73f17f9ee3837a55024f78c71363275a75d75d86bab79f74782aa0000000000000000000000000000000013fa4d4a0ad8b1ce186ed5061789213d993923066dddaf1040bc3ff59f825c78df74f2d75467e25e0f55f8a00fa030ed\",\n    \"Name\": \"bls_pairing_e(aG1,bG2)=e(abG1,G2)\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 102900,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000491d1b0ecd9bb917989f0e74f0dea0422eac4a873e5e2644f368dffb9a6e20fd6e10c1b77654d067c0618f6e5a7f79a0000000000000000000000000000000017cd7061575d3e8034fcea62adaa1a3bc38dca4b50e4c5c01d04dd78037c9cee914e17944ea99e7ad84278e5d49f36c4000000000000000000000000000000000bc2357c6782bbb6a078d9e171fc7a81f7bd8ca73eb485e76317359908bb09bd372fd362a637512a9d48019b383e54890000000000000000000000000000000004b8f49c3bac0247a09487049492b0ed99cf90c56263141daa35f011330d3ced3f3ad78d252c51a3bb42fc7d8f182594000000000000000000000000000000000982d17b17404ac198a0ff5f2dffa56a328d95ec4732d9cca9da420ec7cf716dc63d56d0f5179a8b1ec71fe0328fe88200000000000000000000000000000000147c92cb19e43943bb20c5360a6c4347411eb8ffb3d6f19cc428a8dc0cb3fd1eb3ad02b1c21e21c78f65a7691ee63de90000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb00000000000000000000000000000000114d1d6855d545a8aa7d76c8cf2e21f267816aef1db507c96655b9d5caac42364e6f38ba0ecb751bad54dcd6b939c2ca00000000000000000000000000000000166335679f3b3e2617b70c22c48e820e2c6a35149c4f96293035c1494a1ce4591f7a44bce94e9d76def50a71c9e7fa41000000000000000000000000000000000ef11c636091748476331159c8259c064da712ffec033c89299384b4c11b801893026726d992aacdc8e0a28db1a3ab82000000000000000000000000000000000fd8d4944030f480f44ce0d2d4fb67ff6264d30a0f3193cc218b062e5114cf9e4ce847489f7be94b0d4a9fc0c550fdc60000000000000000000000000000000000edba2c166be3d673ea77016163ae5cdf7b3c9bd480e733eb5c08a5f1c798793d339cb503005f5a9e586ea5aabf9695\",\n    \"Name\": \"bls_pairing_e(aG1,bG2)=e(G1,abG2)\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 102900,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"000000000000000000000000000000000491d1b0ecd9bb917989f0e74f0dea0422eac4a873e5e2644f368dffb9a6e20fd6e10c1b77654d067c0618f6e5a7f79a0000000000000000000000000000000017cd7061575d3e8034fcea62adaa1a3bc38dca4b50e4c5c01d04dd78037c9cee914e17944ea99e7ad84278e5d49f36c4000000000000000000000000000000000bc2357c6782bbb6a078d9e171fc7a81f7bd8ca73eb485e76317359908bb09bd372fd362a637512a9d48019b383e54890000000000000000000000000000000004b8f49c3bac0247a09487049492b0ed99cf90c56263141daa35f011330d3ced3f3ad78d252c51a3bb42fc7d8f182594000000000000000000000000000000000982d17b17404ac198a0ff5f2dffa56a328d95ec4732d9cca9da420ec7cf716dc63d56d0f5179a8b1ec71fe0328fe88200000000000000000000000000000000147c92cb19e43943bb20c5360a6c4347411eb8ffb3d6f19cc428a8dc0cb3fd1eb3ad02b1c21e21c78f65a7691ee63de90000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb00000000000000000000000000000000114d1d6855d545a8aa7d76c8cf2e21f267816aef1db507c96655b9d5caac42364e6f38ba0ecb751bad54dcd6b939c2ca00000000000000000000000000000000166335679f3b3e2617b70c22c48e820e2c6a35149c4f96293035c1494a1ce4591f7a44bce94e9d76def50a71c9e7fa41000000000000000000000000000000000ef11c636091748476331159c8259c064da712ffec033c89299384b4c11b801893026726d992aacdc8e0a28db1a3ab82000000000000000000000000000000000fd8d4944030f480f44ce0d2d4fb67ff6264d30a0f3193cc218b062e5114cf9e4ce847489f7be94b0d4a9fc0c550fdc60000000000000000000000000000000000edba2c166be3d673ea77016163ae5cdf7b3c9bd480e733eb5c08a5f1c798793d339cb503005f5a9e586ea5aabf9695\",\n    \"Name\": \"bls_pairing_e(aG1,bG2)=3De(G1,abG2)\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 102900,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e100000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e100000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000d1b3cc2c7027888be51d9ef691d77bcb679afda66c73f17f9ee3837a55024f78c71363275a75d75d86bab79f74782aa0000000000000000000000000000000013fa4d4a0ad8b1ce186ed5061789213d993923066dddaf1040bc3ff59f825c78df74f2d75467e25e0f55f8a00fa030ed\",\n    \"Name\": \"bls_pairing_e(G1,G2)*e(0,0)*e(G1,-G2)=1\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000001\",\n    \"Gas\": 135500,\n    \"NoBenchmark\": false\n  },\n  {\n    \"Input\": \"0000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e100000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb0000000000000000000000000000000008b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e100000000000000000000000000000000024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80000000000000000000000000000000013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e000000000000000000000000000000000ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801000000000000000000000000000000000606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be\",\n    \"Name\": \"bls_pairing_e(G1,G2)*e(0,0)*e(G1,G2)=0\",\n    \"Expected\": \"0000000000000000000000000000000000000000000000000000000000000000\",\n    \"Gas\": 135500,\n    \"NoBenchmark\": false\n  }\n]\n"
  },
  {
    "path": "tests/prague/eip2537_bls_12_381_precompiles/vectors/test-vectors.md",
    "content": "# Test Vectors for EIP-2537 - Precompiles for BLS12-381 curve operations\n\nThe JSON test vector files in this directory originated from the assets attached to EIP-2537 as of ethereum/EIPs#9217 (unmerged as of time of writing) which were generated using these [BLS 12-381 tests](https://github.com/ethereum/bls12-381-tests/tree/eip-2537).\n"
  },
  {
    "path": "tests/prague/eip2935_historical_block_hashes_from_state/__init__.py",
    "content": "\"\"\"Cross-client EIP-2935 Tests.\"\"\"\n"
  },
  {
    "path": "tests/prague/eip2935_historical_block_hashes_from_state/contract_deploy_tx.json",
    "content": "{\n  \"type\": \"0x0\",\n  \"nonce\": \"0x0\",\n  \"to\": null,\n  \"gas\": \"0x3d090\",\n  \"gasPrice\": \"0xe8d4a51000\",\n  \"maxPriorityFeePerGas\": null,\n  \"maxFeePerGas\": null,\n  \"value\": \"0x0\",\n  \"input\": \"0x60538060095f395ff33373fffffffffffffffffffffffffffffffffffffffe14604657602036036042575f35600143038111604257611fff81430311604257611fff9006545f5260205ff35b5f5ffd5b5f35611fff60014303065500\",\n  \"v\": \"0x1b\",\n  \"r\": \"0x539\",\n  \"s\": \"0x0aa12693182426612186309f02cfe8a80a0000\",\n  \"hash\": \"0x67139a552b0d3fffc30c0fa7d0c20d42144138c8fe07fc5691f09c1cce632e15\",\n  \"sender\": \"0x3462413Af4609098e1E27A490f554f260213D685\"\n}"
  },
  {
    "path": "tests/prague/eip2935_historical_block_hashes_from_state/spec.py",
    "content": "\"\"\"Defines EIP-2935 specification constants and functions.\"\"\"\n\nfrom dataclasses import dataclass\n\n\n@dataclass(frozen=True)\nclass ReferenceSpec:\n    \"\"\"Defines the reference spec version and git path.\"\"\"\n\n    git_path: str\n    version: str\n\n\nref_spec_2935 = ReferenceSpec(\"EIPS/eip-2935.md\", \"06aadd458ee04ede80498db55927b052eb5bef38\")\n\n\n@dataclass(frozen=True)\nclass Spec:\n    \"\"\"\n    Parameters from the EIP-2935 specifications as defined at\n    https://eips.ethereum.org/EIPS/eip-2935.\n    \"\"\"\n\n    FORK_TIMESTAMP = 15_000\n    HISTORY_STORAGE_ADDRESS = 0x0000F90827F1C53A10CB7A02335B175320002935\n    HISTORY_SERVE_WINDOW = 8191\n    BLOCKHASH_OLD_WINDOW = 256\n"
  },
  {
    "path": "tests/prague/eip2935_historical_block_hashes_from_state/test_block_hashes.py",
    "content": "\"\"\"\nTests [EIP-2935: Serve historical block hashes from state](https://eips.ethereum.org/EIPS/eip-2935).\n\"\"\"\n\nfrom typing import Dict, List\n\nimport pytest\n\nfrom ethereum_test_tools import (\n    Account,\n    Address,\n    Alloc,\n    Block,\n    BlockchainTestFiller,\n    Bytecode,\n    Storage,\n    Transaction,\n)\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom .spec import Spec, ref_spec_2935\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_2935.git_path\nREFERENCE_SPEC_VERSION = ref_spec_2935.version\n\n\ndef generate_block_check_code(\n    check_block_number: int,\n    current_block_number: int,\n    fork_block_number: int,\n    storage: Storage,\n    check_contract_first: bool = False,\n) -> Bytecode:\n    \"\"\"\n    Generate EVM code to check that the block hashes are correctly stored in\n    the state.\n\n    Args:\n      check_block_number (int): The block number to check.\n      current_block_number (int): The current block number where the check is\n                                  taking place.\n      fork_block_number (int): The block number of the fork transition.\n      storage (Storage): The storage object to use.\n      check_contract_first (bool): Whether to check the contract first,\n                                   for slot warming checks.\n\n    \"\"\"\n    contract_ret_offset = 32\n\n    if check_block_number < 0:\n        # Block number outside of range, nothing to check\n        return Bytecode()\n\n    populated_blockhash = (\n        current_block_number - check_block_number <= Spec.BLOCKHASH_OLD_WINDOW\n        and check_block_number < current_block_number\n    )\n    populated_history_storage_contract = (\n        check_block_number >= fork_block_number - 1\n        and current_block_number - check_block_number <= Spec.HISTORY_SERVE_WINDOW\n        and check_block_number < current_block_number\n    )\n\n    blockhash_key = storage.store_next(not populated_blockhash)\n    contract_key = storage.store_next(not populated_history_storage_contract)\n\n    check_blockhash = Op.SSTORE(blockhash_key, Op.ISZERO(Op.BLOCKHASH(check_block_number)))\n    check_contract = (\n        Op.MSTORE(0, check_block_number)\n        + Op.POP(Op.CALL(Op.GAS, Spec.HISTORY_STORAGE_ADDRESS, 0, 0, 32, contract_ret_offset, 32))\n        + Op.SSTORE(contract_key, Op.ISZERO(Op.MLOAD(contract_ret_offset)))\n    )\n\n    if check_contract_first:\n        code = check_contract + check_blockhash\n    else:\n        code = check_blockhash + check_contract\n\n    if populated_history_storage_contract and populated_blockhash:\n        # Both values must be equal\n        store_equal_key = storage.store_next(True)\n        code += Op.SSTORE(\n            store_equal_key, Op.EQ(Op.MLOAD(contract_ret_offset), Op.BLOCKHASH(check_block_number))\n        )\n\n    # Reset the contract return value\n    code += Op.MSTORE(contract_ret_offset, 0)\n\n    return code\n\n\n# TODO: Test at transition: `BLOCKHASH_OLD_WINDOW + 1` blocks before transition\n# TODO: Test post fork: `HISTORY_SERVE_WINDOW` + 1 blocks after transition\n\n\n@pytest.mark.parametrize(\n    \"blocks_before_fork, blocks_after_fork\",\n    [\n        [1, 2],\n        [Spec.BLOCKHASH_OLD_WINDOW + 1, 10],\n        [1, Spec.BLOCKHASH_OLD_WINDOW + 1],\n    ],\n)\n@pytest.mark.slow()\n@pytest.mark.valid_at_transition_to(\"Prague\")\ndef test_block_hashes_history_at_transition(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    blocks_before_fork: int,\n    blocks_after_fork: int,\n) -> None:\n    \"\"\"\n    Tests that block hashes are stored correctly at the system contract address\n    after the fork transition. Block hashes are stored incrementally at the\n    transition until the `HISTORY_SERVE_WINDOW` ring buffer is full. Afterwards\n    the oldest block hash is replaced by the new one.\n\n    Note: The block hashes before the fork are no longer stored in the contract\n    at the moment of the transition.\n    \"\"\"\n    blocks: List[Block] = []\n    assert blocks_before_fork >= 1 and blocks_before_fork < Spec.FORK_TIMESTAMP\n\n    sender = pre.fund_eoa(10_000_000_000)\n    post: Dict[Address, Account] = {}\n    current_block_number = 1\n    fork_block_number = current_block_number + blocks_before_fork\n\n    for i in range(blocks_before_fork):\n        txs: List[Transaction] = []\n        if i == blocks_before_fork - 1:\n            # On the last block before the fork, `BLOCKHASH` must return values\n            # for the last 256 blocks but not for the blocks before that. And\n            # `HISTORY_STORAGE_ADDRESS` should be empty.\n            code = Bytecode()\n            storage = Storage()\n\n            # Check the last block before blockhash the window\n            code += generate_block_check_code(\n                check_block_number=current_block_number - Spec.BLOCKHASH_OLD_WINDOW - 1,\n                current_block_number=current_block_number,\n                fork_block_number=fork_block_number,\n                storage=storage,\n            )\n\n            # Check the first block inside blockhash the window\n            code += generate_block_check_code(\n                check_block_number=(\n                    current_block_number - Spec.BLOCKHASH_OLD_WINDOW\n                    if current_block_number > Spec.BLOCKHASH_OLD_WINDOW\n                    else 0  # Entire chain is inside the window, check genesis\n                ),\n                current_block_number=current_block_number,\n                fork_block_number=fork_block_number,\n                storage=storage,\n            )\n\n            check_blocks_before_fork_address = pre.deploy_contract(code)\n            txs.append(\n                Transaction(\n                    to=check_blocks_before_fork_address,\n                    gas_limit=10_000_000,\n                    sender=sender,\n                )\n            )\n            post[check_blocks_before_fork_address] = Account(storage=storage)\n        blocks.append(Block(timestamp=current_block_number, txs=txs))\n        current_block_number += 1\n\n    # Add blocks after the fork transition to gradually fill up the\n    # `HISTORY_SERVE_WINDOW`\n    for i in range(blocks_after_fork):\n        txs = []\n        # On these blocks, `BLOCKHASH` will still return values for the last\n        # 256 blocks, and `HISTORY_STORAGE_ADDRESS` should now serve values for\n        # the previous blocks in the new fork.\n        code = Bytecode()\n        storage = Storage()\n\n        # Check that each block can return previous blockhashes if\n        # `BLOCKHASH_OLD_WINDOW` and or `HISTORY_SERVE_WINDOW`.\n        for j in range(current_block_number):\n            code += generate_block_check_code(\n                check_block_number=j,\n                current_block_number=current_block_number,\n                fork_block_number=fork_block_number,\n                storage=storage,\n            )\n\n        check_blocks_after_fork_address = pre.deploy_contract(code)\n        txs.append(\n            Transaction(\n                to=check_blocks_after_fork_address,\n                gas_limit=10_000_000,\n                sender=sender,\n            )\n        )\n        post[check_blocks_after_fork_address] = Account(storage=storage)\n\n        blocks.append(Block(timestamp=Spec.FORK_TIMESTAMP + i, txs=txs))\n        current_block_number += 1\n\n    blockchain_test(\n        pre=pre,\n        blocks=blocks,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"block_count,check_contract_first\",\n    [\n        pytest.param(1, False, id=\"single_block_check_blockhash_first\"),\n        pytest.param(1, True, id=\"single_block_check_contract_first\"),\n        pytest.param(2, False, id=\"two_blocks_check_blockhash_first\"),\n        pytest.param(2, True, id=\"two_blocks_check_contract_first\"),\n        pytest.param(\n            Spec.HISTORY_SERVE_WINDOW + 1,\n            False,\n            marks=[pytest.mark.skip(\"Slow test not relevant anymore\"), pytest.mark.slow],\n            id=\"full_history_plus_one_check_blockhash_first\",\n        ),\n    ],\n)\n@pytest.mark.valid_from(\"Prague\")\ndef test_block_hashes_history(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    block_count: int,\n    check_contract_first: bool,\n) -> None:\n    \"\"\"\n    Tests that block hashes are stored correctly at the system contract address\n    after the fork transition. Block hashes are stored incrementally at the\n    transition until the `HISTORY_SERVE_WINDOW` ring buffer is full. Afterwards\n    the oldest block hash is replaced by the new one.\n    \"\"\"\n    blocks: List[Block] = []\n\n    sender = pre.fund_eoa(10_000_000_000)\n    post: Dict[Address, Account] = {}\n    current_block_number = 1\n    fork_block_number = 0  # We fork at genesis\n\n    for _ in range(block_count - 1):\n        # Generate empty blocks after the fork.\n        blocks.append(Block())\n        current_block_number += 1\n\n    txs = []\n    # On these blocks, `BLOCKHASH` will still return values for the last 256\n    # blocks, and `HISTORY_STORAGE_ADDRESS` should now serve values for the\n    # previous blocks in the new fork.\n    code = Bytecode()\n    storage = Storage()\n\n    # Check the first block outside of the window if any\n    code += generate_block_check_code(\n        check_block_number=current_block_number - Spec.HISTORY_SERVE_WINDOW - 1,\n        current_block_number=current_block_number,\n        fork_block_number=fork_block_number,\n        storage=storage,\n        check_contract_first=check_contract_first,\n    )\n\n    # Check the first block inside the window\n    code += generate_block_check_code(\n        check_block_number=current_block_number - Spec.HISTORY_SERVE_WINDOW,\n        current_block_number=current_block_number,\n        fork_block_number=fork_block_number,\n        storage=storage,\n        check_contract_first=check_contract_first,\n    )\n\n    # Check the first block outside the BLOCKHASH window\n    code += generate_block_check_code(\n        check_block_number=current_block_number - Spec.BLOCKHASH_OLD_WINDOW - 1,\n        current_block_number=current_block_number,\n        fork_block_number=fork_block_number,\n        storage=storage,\n        check_contract_first=check_contract_first,\n    )\n\n    # Check the first block inside the BLOCKHASH window\n    code += generate_block_check_code(\n        check_block_number=current_block_number - Spec.BLOCKHASH_OLD_WINDOW,\n        current_block_number=current_block_number,\n        fork_block_number=fork_block_number,\n        storage=storage,\n        check_contract_first=check_contract_first,\n    )\n\n    # Check the previous block\n    code += generate_block_check_code(\n        check_block_number=current_block_number - 1,\n        current_block_number=current_block_number,\n        fork_block_number=fork_block_number,\n        storage=storage,\n        check_contract_first=check_contract_first,\n    )\n\n    check_blocks_after_fork_address = pre.deploy_contract(code)\n    txs.append(\n        Transaction(\n            to=check_blocks_after_fork_address,\n            gas_limit=10_000_000,\n            sender=sender,\n        )\n    )\n    post[check_blocks_after_fork_address] = Account(storage=storage)\n\n    blocks.append(Block(txs=txs))\n    current_block_number += 1\n\n    blockchain_test(\n        pre=pre,\n        blocks=blocks,\n        post=post,\n    )\n\n\n@pytest.mark.valid_from(\"Prague\")\n@pytest.mark.with_all_call_opcodes\ndef test_block_hashes_call_opcodes(\n    blockchain_test: BlockchainTestFiller, pre: Alloc, call_opcode: Op\n) -> None:\n    \"\"\"\n    Test that the call opcodes can be used to call the history contract and get\n    the block hashes.\n    \"\"\"\n    blocks = []\n    blocks.append(Block())\n\n    storage = Storage()\n    return_code_slot = storage.store_next(0x1)\n    blockhash_value_slot = storage.store_next(\n        True if call_opcode in [Op.DELEGATECALL, Op.CALLCODE] else False\n    )\n\n    code = (\n        Op.MSTORE(0, 1)\n        + Op.SSTORE(\n            return_code_slot,\n            call_opcode(\n                address=Spec.HISTORY_STORAGE_ADDRESS,\n                args_offset=0,\n                args_size=32,\n                ret_offset=32,\n                ret_size=32,\n            ),\n        )\n        + Op.SSTORE(blockhash_value_slot, Op.ISZERO(Op.MLOAD(32)))\n    )\n\n    contract_address = pre.deploy_contract(code, storage=storage.canary())\n    blocks.append(\n        Block(\n            txs=[\n                Transaction(\n                    to=contract_address,\n                    gas_limit=10_000_000,\n                    sender=pre.fund_eoa(),\n                )\n            ]\n        )\n    )\n    blockchain_test(\n        pre=pre,\n        blocks=blocks,\n        post={contract_address: Account(storage=storage)},\n    )\n\n\n@pytest.mark.parametrize(\n    \"block_number,reverts\",\n    [\n        pytest.param(1, True, id=\"current_block\"),\n        pytest.param(2, True, id=\"future_block\"),\n        pytest.param(2**64 - 1, True, id=\"2**64-1\"),\n        pytest.param(2**64, True, id=\"2**64\"),\n    ],\n)\n@pytest.mark.valid_from(\"Prague\")\ndef test_invalid_history_contract_calls(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    block_number: int,\n    reverts: bool,\n) -> None:\n    \"\"\"\n    Test calling the history contract with invalid block numbers, such as\n    blocks from the future or overflowing block numbers.\n\n    Also test the BLOCKHASH opcode with the same block numbers, which should\n    not affect the behavior of the opcode, even after verkle.\n    \"\"\"\n    storage = Storage()\n\n    return_code_slot = storage.store_next(not reverts)\n    returned_block_hash_slot = storage.store_next(0)\n    block_hash_opcode_slot = storage.store_next(0)\n\n    return_offset = 64\n    return_size = 32\n    args_size = 32\n\n    # Check the first block outside of the window if any\n    code = (\n        Op.MSTORE(0, block_number)\n        + Op.SSTORE(\n            return_code_slot,\n            Op.CALL(\n                address=Spec.HISTORY_STORAGE_ADDRESS,\n                args_offset=0,\n                args_size=args_size,\n                ret_offset=return_offset,\n                ret_size=return_size,\n            ),\n        )\n        + Op.SSTORE(returned_block_hash_slot, Op.MLOAD(return_offset))\n        + Op.SSTORE(block_hash_opcode_slot, Op.BLOCKHASH(block_number))\n    )\n    check_contract_address = pre.deploy_contract(code, storage=storage.canary())\n\n    txs = [\n        Transaction(\n            to=check_contract_address,\n            gas_limit=10_000_000,\n            sender=pre.fund_eoa(),\n        )\n    ]\n    post = {check_contract_address: Account(storage=storage)}\n\n    blocks = [Block(txs=txs)]\n    blockchain_test(\n        pre=pre,\n        blocks=blocks,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"args_size,reverts\",\n    [\n        pytest.param(0, True, id=\"zero_size\"),\n        pytest.param(33, True, id=\"too_large\"),\n        pytest.param(31, True, id=\"too_small\"),\n    ],\n)\n@pytest.mark.valid_from(\"Prague\")\ndef test_invalid_history_contract_calls_input_size(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    reverts: bool,\n    args_size: int,\n) -> None:\n    \"\"\"Test calling the history contract with invalid input sizes.\"\"\"\n    storage = Storage()\n\n    return_code_slot = storage.store_next(not reverts, \"history storage call result\")\n    returned_block_hash_slot = storage.store_next(0)\n\n    return_offset = 64\n    return_size = 32\n    block_number = 0\n\n    # Check the first block outside of the window if any\n    code = (\n        Op.MSTORE(0, block_number)\n        + Op.SSTORE(\n            return_code_slot,\n            Op.CALL(\n                address=Spec.HISTORY_STORAGE_ADDRESS,\n                args_offset=0,\n                args_size=args_size,\n                ret_offset=return_offset,\n                ret_size=return_size,\n            ),\n        )\n        + Op.SSTORE(returned_block_hash_slot, Op.MLOAD(return_offset))\n    )\n    check_contract_address = pre.deploy_contract(code, storage=storage.canary())\n\n    txs = [\n        Transaction(\n            to=check_contract_address,\n            gas_limit=10_000_000,\n            sender=pre.fund_eoa(),\n        )\n    ]\n    post = {check_contract_address: Account(storage=storage)}\n\n    blocks = [Block(txs=txs)]\n    blockchain_test(\n        pre=pre,\n        blocks=blocks,\n        post=post,\n    )\n"
  },
  {
    "path": "tests/prague/eip2935_historical_block_hashes_from_state/test_contract_deployment.py",
    "content": "\"\"\"\nTests [EIP-2935: Serve historical block hashes from state](https://eips.ethereum.org/EIPS/eip-2935).\n\"\"\"\n\nfrom os.path import realpath\nfrom pathlib import Path\nfrom typing import Any, Dict, Generator\n\nimport pytest\n\nfrom ethereum_test_forks import Prague\nfrom ethereum_test_tools import (\n    Account,\n    Address,\n    Alloc,\n    Block,\n    DeploymentTestType,\n    Transaction,\n    generate_system_contract_deploy_test,\n)\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom .spec import Spec, ref_spec_2935\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_2935.git_path\nREFERENCE_SPEC_VERSION = ref_spec_2935.version\n\n\n@pytest.mark.pre_alloc_group(\n    \"separate\", reason=\"Deploys history storage system contract at hardcoded predeploy address\"\n)\n@generate_system_contract_deploy_test(\n    fork=Prague,\n    tx_json_path=Path(realpath(__file__)).parent / \"contract_deploy_tx.json\",\n    expected_deploy_address=Address(Spec.HISTORY_STORAGE_ADDRESS),\n    fail_on_empty_code=False,\n)\ndef test_system_contract_deployment(\n    *,\n    pre: Alloc,\n    post: Alloc,\n    test_type: DeploymentTestType,\n    **kwargs: Any,\n) -> Generator[Block, None, None]:\n    \"\"\"Verify deployment of the block hashes system contract.\"\"\"\n    # Deploy a contract that calls the history contract and verifies the block\n    # hashes.\n    yield Block()  # Empty block just to have more history in the contract.\n\n    # We are going to query blocks even before contract deployment.\n    code = (\n        sum(\n            Op.MSTORE(0, block_number)\n            + Op.POP(\n                Op.CALL(\n                    address=Spec.HISTORY_STORAGE_ADDRESS,\n                    args_offset=0,\n                    args_size=32,\n                    ret_offset=32,\n                    ret_size=32,\n                ),\n            )\n            + Op.SSTORE(block_number, Op.ISZERO(Op.ISZERO(Op.MLOAD(32))))\n            for block_number in range(1, 4)\n        )\n        + Op.STOP\n    )\n    deployed_contract = pre.deploy_contract(code)\n\n    tx = Transaction(\n        to=deployed_contract,\n        gas_limit=10_000_000,\n        sender=pre.fund_eoa(),\n    )\n\n    yield Block(txs=[tx])\n\n    storage: Dict\n    if test_type == DeploymentTestType.DEPLOY_BEFORE_FORK:\n        # Fork happens at block 2, and the contract is already there, so from\n        # block number 1 and after, the block hashes should be there.\n        storage = {\n            1: 1,  # Block prior to the fork, it's the first hash saved.\n            2: 1,  # Fork block, hash should be there.\n            3: 1,  # Empty block added at the start of this function, hash\n            # should be there.\n        }\n    elif test_type == DeploymentTestType.DEPLOY_ON_FORK_BLOCK:\n        # The contract should have the block hashes after contract deployment.\n        storage = {\n            1: 1,  # Fork and deployment block, the first hash that gets added.\n            2: 1,  # Deployment block, hash should be there.\n            3: 1,  # Empty block added at the start of this function, hash\n            # should be there.\n        }\n    elif test_type == DeploymentTestType.DEPLOY_AFTER_FORK:\n        # The contract should have the block hashes after contract deployment.\n        storage = {\n            1: 0,  # Fork block, but contract is not there yet.\n            2: 1,  # Deployment block, this is the first hash that gets added\n            # because it's added on\n            # the next block.\n            3: 1,  # Empty block added at the start of this function, hash\n            # should be there.\n        }\n\n    post[deployed_contract] = Account(\n        balance=0,\n        storage=storage,\n    )\n"
  },
  {
    "path": "tests/prague/eip2935_historical_block_hashes_from_state/test_eip_mainnet.py",
    "content": "\"\"\"\nabstract: Crafted tests for mainnet of\n[EIP-2935: Serve historical block hashes from state](https://eips.ethereum.org/EIPS/eip-2935).\n\"\"\"  # noqa: E501\n\nimport pytest\n\nfrom ethereum_test_tools import Account, Alloc, Block, BlockchainTestFiller, Transaction\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom .spec import Spec, ref_spec_2935\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_2935.git_path\nREFERENCE_SPEC_VERSION = ref_spec_2935.version\n\npytestmark = [pytest.mark.valid_at(\"Prague\"), pytest.mark.mainnet]\n\n\ndef test_eip_2935(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"Test a simple block hash request from EIP-2935 system contract.\"\"\"\n    check_block_number = Op.SUB(Op.NUMBER, 1)  # Parent block number\n    check_contract_code = (\n        Op.MSTORE(0, check_block_number)\n        + Op.POP(\n            Op.CALL(\n                address=Spec.HISTORY_STORAGE_ADDRESS,\n                args_offset=0,\n                args_size=32,\n                ret_offset=32,\n                ret_size=32,\n            )\n        )\n        + Op.SSTORE(0, Op.EQ(Op.MLOAD(32), Op.BLOCKHASH(check_block_number)))\n    )\n    check_contract_address = pre.deploy_contract(check_contract_code)\n    tx = Transaction(\n        to=check_contract_address,\n        gas_limit=50_000,\n        sender=pre.fund_eoa(),\n    )\n    block = Block(txs=[tx])\n    blockchain_test(\n        pre=pre,\n        blocks=[block],\n        post={\n            check_contract_address: Account(storage={0: 1}),\n        },\n    )\n"
  },
  {
    "path": "tests/prague/eip6110_deposits/__init__.py",
    "content": "\"\"\"Cross-client EIP-6110 Tests.\"\"\"\n"
  },
  {
    "path": "tests/prague/eip6110_deposits/conftest.py",
    "content": "\"\"\"Fixtures for the EIP-6110 deposit tests.\"\"\"\n\nfrom typing import List\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import Alloc, Block, BlockException, Header, Requests, Transaction\n\nfrom .helpers import DepositInteractionBase, DepositRequest\n\n\n@pytest.fixture\ndef update_pre(pre: Alloc, requests: List[DepositInteractionBase]) -> None:\n    \"\"\"\n    Init state of the accounts. Every deposit transaction defines their own\n    pre-state requirements, and this fixture aggregates them all.\n    \"\"\"\n    for d in requests:\n        d.update_pre(pre)\n\n\n@pytest.fixture\ndef txs(\n    requests: List[DepositInteractionBase],\n    update_pre: None,  # Fixture is used for its side effects\n) -> List[Transaction]:\n    \"\"\"List of transactions to include in the block.\"\"\"\n    txs = []\n    for r in requests:\n        txs += r.transactions()\n    return txs\n\n\n@pytest.fixture\ndef block_body_override_requests() -> List[DepositRequest] | None:\n    \"\"\"\n    List of requests that overwrite the requests in the header. None by\n    default.\n    \"\"\"\n    return None\n\n\n@pytest.fixture\ndef exception() -> BlockException | None:\n    \"\"\"Block exception expected by the tests. None by default.\"\"\"\n    return None\n\n\n@pytest.fixture\ndef included_requests(\n    requests: List[DepositInteractionBase],\n) -> List[DepositRequest]:\n    \"\"\"\n    Return the list of deposit requests that should be included in each block.\n    \"\"\"\n    valid_requests: List[DepositRequest] = []\n\n    for d in requests:\n        valid_requests += d.valid_requests(10**18)\n\n    return valid_requests\n\n\n@pytest.fixture\ndef blocks(\n    fork: Fork,\n    included_requests: List[DepositRequest],\n    block_body_override_requests: List[DepositRequest] | None,\n    txs: List[Transaction],\n    exception: BlockException | None,\n) -> List[Block]:\n    \"\"\"List of blocks that comprise the test.\"\"\"\n    return [\n        Block(\n            txs=txs,\n            header_verify=Header(\n                requests_hash=Requests(\n                    *included_requests,\n                ),\n            ),\n            requests=Requests(\n                *block_body_override_requests,\n            ).requests_list\n            if block_body_override_requests is not None\n            else None,\n            exception=exception,\n        )\n    ]\n"
  },
  {
    "path": "tests/prague/eip6110_deposits/helpers.py",
    "content": "\"\"\"Helpers for the EIP-6110 deposit tests.\"\"\"\n\nfrom dataclasses import dataclass, field\nfrom functools import cached_property\nfrom hashlib import sha256 as sha256_hashlib\nfrom typing import Callable, ClassVar, List\n\nfrom ethereum_test_tools import EOA, Address, Alloc, Bytecode, Hash, Transaction\nfrom ethereum_test_tools import DepositRequest as DepositRequestBase\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom .spec import Spec\n\n\ndef sha256(*args: bytes) -> bytes:\n    \"\"\"Return sha256 hash of the input.\"\"\"\n    return sha256_hashlib(b\"\".join(args)).digest()\n\n\ndef create_deposit_log_bytes(\n    pubkey_size: int = 48,\n    pubkey_data: bytes = b\"\",\n    pubkey_offset: int = 160,\n    withdrawal_credentials_size: int = 32,\n    withdrawal_credentials_data: bytes = b\"\",\n    withdrawal_credentials_offset: int = 256,\n    amount_size: int = 8,\n    amount_data: bytes = b\"\",\n    amount_offset: int = 320,\n    signature_size: int = 96,\n    signature_data: bytes = b\"\",\n    signature_offset: int = 384,\n    index_size: int = 8,\n    index_data: bytes = b\"\",\n    index_offset: int = 512,\n) -> bytes:\n    \"\"\"Create the deposit log bytes.\"\"\"\n    result = bytearray(576)\n    offset = 0\n\n    def write_uint256(value: int) -> None:\n        nonlocal offset\n        result[offset : offset + 32] = value.to_bytes(32, byteorder=\"big\")\n        offset += 32\n\n    def write_bytes(data: bytes, size: int) -> None:\n        nonlocal offset\n        padded = data.ljust(size, b\"\\x00\")\n        result[offset : offset + size] = padded\n        offset += size\n\n    write_uint256(pubkey_offset)\n    write_uint256(withdrawal_credentials_offset)\n    write_uint256(amount_offset)\n    write_uint256(signature_offset)\n    write_uint256(index_offset)\n\n    write_uint256(pubkey_size)\n    write_bytes(pubkey_data, 64)\n\n    write_uint256(withdrawal_credentials_size)\n    write_bytes(withdrawal_credentials_data, 32)\n\n    write_uint256(amount_size)\n    write_bytes(amount_data, 32)\n\n    write_uint256(signature_size)\n    write_bytes(signature_data, 96)\n\n    write_uint256(index_size)\n    write_bytes(index_data, 32)\n\n    return bytes(result)\n\n\nclass DepositRequest(DepositRequestBase):\n    \"\"\"Deposit request descriptor.\"\"\"\n\n    valid: bool = True\n    \"\"\"Whether the deposit request is valid or not.\"\"\"\n    gas_limit: int = 1_000_000\n    \"\"\"Gas limit for the call.\"\"\"\n    calldata_modifier: Callable[[bytes], bytes] = lambda x: x\n    \"\"\"Calldata modifier function.\"\"\"\n    extra_wei: int = 0\n    \"\"\"\n    Extra amount in wei to be sent with the deposit. If this value modulo 10**9\n    is not zero, the deposit will be invalid. The value can be negative but if\n    the total value is negative, an exception will be raised.\n    \"\"\"\n\n    interaction_contract_address: ClassVar[Address] = Address(Spec.DEPOSIT_CONTRACT_ADDRESS)\n\n    @cached_property\n    def value(self) -> int:\n        \"\"\"\n        Return the value of the deposit transaction, equal to the amount in\n        gwei plus the extra amount in wei.\n        \"\"\"\n        value = (self.amount * 10**9) + self.extra_wei\n        if value < 0:\n            raise ValueError(\"Value cannot be negative\")\n        return value\n\n    @cached_property\n    def deposit_data_root(self) -> Hash:\n        \"\"\"Return the deposit data root of the deposit.\"\"\"\n        pubkey_root = sha256(self.pubkey, b\"\\x00\" * 16)\n        signature_root = sha256(\n            sha256(self.signature[:64]), sha256(self.signature[64:], b\"\\x00\" * 32)\n        )\n        pubkey_withdrawal_root = sha256(pubkey_root, self.withdrawal_credentials)\n        amount_bytes = (self.amount).to_bytes(32, byteorder=\"little\")\n        amount_signature_root = sha256(amount_bytes, signature_root)\n        return Hash(sha256(pubkey_withdrawal_root, amount_signature_root))\n\n    @cached_property\n    def calldata(self) -> bytes:\n        \"\"\"\n        Return the calldata needed to call the beacon chain deposit contract\n        and make the deposit.\n\n        deposit(\n          bytes calldata pubkey,\n          bytes calldata withdrawal_credentials,\n          bytes calldata signature,\n          bytes32 deposit_data_root\n        )\n        \"\"\"\n        offset_length = 32\n        pubkey_offset = offset_length * 3 + len(self.deposit_data_root)\n        withdrawal_offset = pubkey_offset + offset_length + len(self.pubkey)\n        signature_offset = withdrawal_offset + offset_length + len(self.withdrawal_credentials)\n        return self.calldata_modifier(\n            b\"\\x22\\x89\\x51\\x18\"\n            + pubkey_offset.to_bytes(offset_length, byteorder=\"big\")\n            + withdrawal_offset.to_bytes(offset_length, byteorder=\"big\")\n            + signature_offset.to_bytes(offset_length, byteorder=\"big\")\n            + self.deposit_data_root\n            + len(self.pubkey).to_bytes(offset_length, byteorder=\"big\")\n            + self.pubkey\n            + len(self.withdrawal_credentials).to_bytes(offset_length, byteorder=\"big\")\n            + self.withdrawal_credentials\n            + len(self.signature).to_bytes(offset_length, byteorder=\"big\")\n            + self.signature\n        )\n\n    def log(self, *, include_abi_encoding: bool = True) -> bytes:\n        \"\"\"\n        Return the log data for the deposit event.\n\n        event DepositEvent(\n          bytes pubkey,\n          bytes withdrawal_credentials,\n          bytes amount,\n          bytes signature,\n          bytes index\n        );\n        \"\"\"\n        data = bytearray(576)\n        if include_abi_encoding:\n            # Insert ABI encoding\n            data[30:32] = b\"\\x00\\xa0\"  # Offset: pubkey (160)\n            data[62:64] = b\"\\x01\\x00\"  # Offset: withdrawal_credentials (256)\n            data[94:96] = b\"\\x01\\x40\"  # Offset: amount (320)\n            data[126:128] = b\"\\x01\\x80\"  # Offset: signature (384)\n            data[158:160] = b\"\\x02\\x00\"  # Offset: index (512)\n            data[190:192] = b\"\\x00\\x30\"  # Size: pubkey (48)\n            data[286:288] = b\"\\x00\\x20\"  # Size: withdrawal_credentials (32)\n            data[350:352] = b\"\\x00\\x08\"  # Size: amount (8)\n            data[414:416] = b\"\\x00\\x60\"  # Size: signature (96)\n            data[542:544] = b\"\\x00\\x08\"  # Size: index (8)\n        offset = 192\n        data[offset : offset + len(self.pubkey)] = self.pubkey  # [192:240]\n        offset += 48 + len(self.pubkey)\n        data[offset : offset + len(self.withdrawal_credentials)] = (\n            self.withdrawal_credentials\n        )  # [288:320]\n        offset += 32 + len(self.withdrawal_credentials)\n        data[offset : offset + 8] = (self.amount).to_bytes(8, byteorder=\"little\")  # [352:360]\n        offset += 56 + 8\n        data[offset : offset + len(self.signature)] = self.signature  # [416:512]\n        offset += 32 + len(self.signature)\n        data[offset : offset + 8] = (self.index).to_bytes(8, byteorder=\"little\")  # [544:552]\n        return bytes(data)\n\n    def with_source_address(self, source_address: Address) -> \"DepositRequest\":\n        \"\"\"Return a copy.\"\"\"\n        del source_address\n        return self.copy()\n\n\n@dataclass(kw_only=True)\nclass DepositInteractionBase:\n    \"\"\"Base class for all types of deposit transactions we want to test.\"\"\"\n\n    sender_balance: int = 32_000_000_000_000_000_000 * 100\n    \"\"\"Balance of the account that sends the transaction.\"\"\"\n    sender_account: EOA | None = None\n    \"\"\"Account that sends the transaction.\"\"\"\n    requests: List[DepositRequest]\n    \"\"\"Deposit request to be included in the block.\"\"\"\n\n    def transactions(self) -> List[Transaction]:\n        \"\"\"Return a transaction for the deposit request.\"\"\"\n        raise NotImplementedError\n\n    def update_pre(self, pre: Alloc) -> None:\n        \"\"\"Return the pre-state of the account.\"\"\"\n        raise NotImplementedError\n\n    def valid_requests(self, current_minimum_fee: int) -> List[DepositRequest]:\n        \"\"\"\n        Return the list of deposit requests that should be included in the\n        block.\n        \"\"\"\n        raise NotImplementedError\n\n\n@dataclass(kw_only=True)\nclass DepositTransaction(DepositInteractionBase):\n    \"\"\"\n    Class used to describe a deposit originated from an externally owned\n    account.\n    \"\"\"\n\n    def transactions(self) -> List[Transaction]:\n        \"\"\"Return a transaction for the deposit request.\"\"\"\n        assert self.sender_account is not None, \"Sender account not initialized\"\n        return [\n            Transaction(\n                gas_limit=request.gas_limit,\n                gas_price=0x07,\n                to=request.interaction_contract_address,\n                value=request.value,\n                data=request.calldata,\n                sender=self.sender_account,\n            )\n            for request in self.requests\n        ]\n\n    def update_pre(self, pre: Alloc) -> None:\n        \"\"\"Return the pre-state of the account.\"\"\"\n        self.sender_account = pre.fund_eoa(self.sender_balance)\n\n    def valid_requests(self, current_minimum_fee: int) -> List[DepositRequest]:\n        \"\"\"\n        Return the list of deposit requests that should be included in the\n        block.\n        \"\"\"\n        return [\n            request\n            for request in self.requests\n            if request.valid and request.value >= current_minimum_fee\n        ]\n\n\n@dataclass(kw_only=True)\nclass DepositContract(DepositInteractionBase):\n    \"\"\"Class used to describe a deposit originated from a contract.\"\"\"\n\n    tx_gas_limit: int = 1_000_000\n    \"\"\"Gas limit for the transaction.\"\"\"\n    tx_value: int = 0\n    \"\"\"Value to send with the transaction.\"\"\"\n\n    contract_balance: int = 32_000_000_000_000_000_000 * 100\n    \"\"\"Balance of the contract that sends the deposit requests.\"\"\"\n    contract_address: Address | None = None\n    \"\"\"Address of the contract that sends the deposit requests.\"\"\"\n    entry_address: Address | None = None\n    \"\"\"Address to send the transaction to.\"\"\"\n\n    call_type: Op = field(default_factory=lambda: Op.CALL)\n    \"\"\"Type of call to be made to the deposit contract.\"\"\"\n    call_depth: int = 2\n    \"\"\"\n    Frame depth of the beacon chain deposit contract when it executes the\n    deposit requests.\n    \"\"\"\n    extra_code: Bytecode = field(default_factory=Bytecode)\n    \"\"\"\n    Extra code to be included in the contract that sends the deposit requests.\n    \"\"\"\n\n    @property\n    def contract_code(self) -> Bytecode:\n        \"\"\"Contract code used by the relay contract.\"\"\"\n        code = Bytecode()\n        current_offset = 0\n        for r in self.requests:\n            value_arg = [r.value] if self.call_type in (Op.CALL, Op.CALLCODE) else []\n            code += Op.CALLDATACOPY(0, current_offset, len(r.calldata)) + Op.POP(\n                self.call_type(\n                    Op.GAS if r.gas_limit == -1 else r.gas_limit,\n                    r.interaction_contract_address,\n                    *value_arg,\n                    0,\n                    len(r.calldata),\n                    0,\n                    0,\n                )\n            )\n            current_offset += len(r.calldata)\n        return code + self.extra_code\n\n    def transactions(self) -> List[Transaction]:\n        \"\"\"Return a transaction for the deposit request.\"\"\"\n        return [\n            Transaction(\n                gas_limit=self.tx_gas_limit,\n                gas_price=0x07,\n                to=self.entry_address,\n                value=self.tx_value,\n                data=b\"\".join(r.calldata for r in self.requests),\n                sender=self.sender_account,\n            )\n        ]\n\n    def update_pre(self, pre: Alloc) -> None:\n        \"\"\"Return the pre-state of the account.\"\"\"\n        required_balance = self.sender_balance\n        if self.tx_value > 0:\n            required_balance = max(required_balance, self.tx_value + self.tx_gas_limit * 7)\n        self.sender_account = pre.fund_eoa(required_balance)\n        self.contract_address = pre.deploy_contract(\n            code=self.contract_code, balance=self.contract_balance\n        )\n        self.entry_address = self.contract_address\n        if self.call_depth > 2:\n            for _ in range(1, self.call_depth - 1):\n                self.entry_address = pre.deploy_contract(\n                    code=Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE)\n                    + Op.POP(\n                        Op.CALL(\n                            Op.GAS,\n                            self.entry_address,\n                            0,\n                            0,\n                            Op.CALLDATASIZE,\n                            0,\n                            0,\n                        )\n                    ),\n                )\n\n    def valid_requests(self, current_minimum_fee: int) -> List[DepositRequest]:\n        \"\"\"\n        Return the list of deposit requests that should be included in the\n        block.\n        \"\"\"\n        return [d for d in self.requests if d.valid and d.value >= current_minimum_fee]\n"
  },
  {
    "path": "tests/prague/eip6110_deposits/spec.py",
    "content": "\"\"\"Defines EIP-6110 specification constants and functions.\"\"\"\n\nfrom dataclasses import dataclass\n\n\n@dataclass(frozen=True)\nclass ReferenceSpec:\n    \"\"\"Defines the reference spec version and git path.\"\"\"\n\n    git_path: str\n    version: str\n\n\nref_spec_6110 = ReferenceSpec(\"EIPS/eip-6110.md\", \"cbe8bf6a28fa1d096f9756af3513675849c4158e\")\n\n\n@dataclass(frozen=True)\nclass Spec:\n    \"\"\"\n    Parameters from the EIP-6110 specifications as defined at\n    https://eips.ethereum.org/EIPS/eip-6110.\n    \"\"\"\n\n    DEPOSIT_CONTRACT_ADDRESS = 0x00000000219AB540356CBB839CBE05303D7705FA  # Mainnet\n    DEPOSIT_EVENT_SIGNATURE_HASH = (\n        0x649BBC62D0E31342AFEA4E5CD82D4049E7E1EE912FC0889AA790803BE39038C5\n    )\n"
  },
  {
    "path": "tests/prague/eip6110_deposits/test_deposits.py",
    "content": "\"\"\"\nTests validator deposit functionality.\n\nTests the validator deposit functionality implementation from\n[EIP-6110: Supply validator deposits on chain](https://eips.ethereum.org/EIPS/eip-6110).\n\"\"\"\n\nfrom typing import List\n\nimport pytest\n\nfrom ethereum_test_tools import (\n    Alloc,\n    Block,\n    BlockchainTestFiller,\n    BlockException,\n    Environment,\n    Macros,\n)\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom .helpers import DepositContract, DepositRequest, DepositTransaction\nfrom .spec import ref_spec_6110\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_6110.git_path\nREFERENCE_SPEC_VERSION = ref_spec_6110.version\n\npytestmark = pytest.mark.valid_from(\"Prague\")\n\n\n@pytest.mark.parametrize(\n    \"requests\",\n    [\n        pytest.param(\n            [\n                DepositTransaction(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=32_000_000_000,\n                            signature=0x03,\n                            index=0x0,\n                        )\n                    ],\n                ),\n            ],\n            id=\"single_deposit_from_eoa\",\n        ),\n        pytest.param(\n            [\n                DepositTransaction(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=120_000_000_000_000_000,\n                            signature=0x03,\n                            index=0x0,\n                        )\n                    ],\n                    sender_balance=120_000_001_000_000_000 * 10**9,\n                ),\n            ],\n            id=\"single_deposit_from_eoa_huge_amount\",\n        ),\n        pytest.param(\n            [\n                DepositTransaction(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=32_000_000_000,\n                            signature=0x03,\n                            index=0x0,\n                        ),\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=32_000_000_000,\n                            signature=0x03,\n                            index=0x1,\n                        ),\n                    ],\n                ),\n            ],\n            id=\"multiple_deposit_from_same_eoa\",\n        ),\n        pytest.param(\n            [\n                DepositTransaction(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=1_000_000_000,\n                            signature=0x03,\n                            index=i,\n                        )\n                        for i in range(200)\n                    ],\n                )\n            ],\n            id=\"multiple_deposit_from_same_eoa_high_count\",\n        ),\n        pytest.param(\n            [\n                DepositTransaction(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=32_000_000_000,\n                            signature=0x03,\n                            index=0x0,\n                        )\n                    ],\n                ),\n                DepositTransaction(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=32_000_000_000,\n                            signature=0x03,\n                            index=0x1,\n                        )\n                    ],\n                ),\n            ],\n            id=\"multiple_deposit_from_different_eoa\",\n        ),\n        pytest.param(\n            [\n                DepositTransaction(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=999_999_999,\n                            signature=0x03,\n                            index=0x0,\n                        ),\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=32_000_000_000,\n                            signature=0x03,\n                            index=0x0,\n                        ),\n                    ],\n                ),\n            ],\n            id=\"multiple_deposit_from_same_eoa_first_reverts\",\n        ),\n        pytest.param(\n            [\n                DepositTransaction(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=32_000_000_000,\n                            signature=0x03,\n                            index=0x0,\n                        ),\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=999_999_999,\n                            signature=0x03,\n                            index=0x0,\n                        ),\n                    ],\n                ),\n            ],\n            id=\"multiple_deposit_from_same_eoa_last_reverts\",\n        ),\n        pytest.param(\n            [\n                DepositTransaction(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=32_000_000_000,\n                            signature=0x03,\n                            index=0x0,\n                            # From traces, gas used by the first tx is 82,718\n                            # so reduce by one here\n                            gas_limit=0x1431D,\n                            valid=False,\n                        ),\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=32_000_000_000,\n                            signature=0x03,\n                            index=0x0,\n                        ),\n                    ],\n                ),\n            ],\n            id=\"multiple_deposit_from_same_eoa_first_oog\",\n        ),\n        pytest.param(\n            [\n                DepositTransaction(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=32_000_000_000,\n                            signature=0x03,\n                            index=0x0,\n                        ),\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=32_000_000_000,\n                            signature=0x03,\n                            index=0x0,\n                            # From traces, gas used by the second tx is 68,594,\n                            # reduce by one here\n                            gas_limit=0x10BF1,\n                            valid=False,\n                        ),\n                    ],\n                ),\n            ],\n            id=\"multiple_deposit_from_same_eoa_last_oog\",\n        ),\n        pytest.param(\n            [\n                DepositTransaction(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=32_000_000_000,\n                            signature=0x03,\n                            index=0x0,\n                            calldata_modifier=lambda _: b\"\",\n                            valid=False,\n                        )\n                    ],\n                ),\n            ],\n            id=\"send_eth_from_eoa\",\n        ),\n        pytest.param(\n            [\n                DepositContract(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=32_000_000_000,\n                            signature=0x03,\n                            index=0x0,\n                            valid=False,\n                            calldata_modifier=lambda _: b\"\",\n                        )\n                    ],\n                ),\n            ],\n            # TODO: EIP-5920: Send using PAY opcode\n            id=\"send_eth_to_contract_no_deposit_data\",\n        ),\n        pytest.param(\n            [\n                DepositContract(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=32_000_000_000,\n                            signature=0x03,\n                            index=0x0,\n                        )\n                    ],\n                ),\n            ],\n            id=\"single_deposit_from_contract\",\n        ),\n        pytest.param(\n            [\n                DepositContract(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=32_000_000_000,\n                            signature=0x03,\n                            index=0x0,\n                        ),\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=1_000_000_000,\n                            signature=0x03,\n                            index=0x1,\n                        ),\n                    ],\n                ),\n            ],\n            id=\"multiple_deposits_from_contract\",\n        ),\n        pytest.param(\n            [\n                DepositContract(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=1_000_000_000,\n                            signature=0x03,\n                            index=i,\n                        )\n                        for i in range(450)\n                    ],\n                    tx_gas_limit=16_777_216,\n                ),\n            ],\n            id=\"many_deposits_from_contract\",\n            marks=pytest.mark.slow,\n        ),\n        pytest.param(\n            [\n                DepositContract(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=999_999_999,\n                            signature=0x03,\n                            index=0x0,\n                            valid=False,\n                        ),\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=1_000_000_000,\n                            signature=0x03,\n                            index=0x0,\n                        ),\n                    ],\n                ),\n            ],\n            id=\"multiple_deposits_from_contract_first_reverts\",\n        ),\n        pytest.param(\n            [\n                DepositContract(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=1_000_000_000,\n                            signature=0x03,\n                            index=0x0,\n                        ),\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=999_999_999,\n                            signature=0x03,\n                            index=0x1,\n                            valid=False,\n                        ),\n                    ],\n                ),\n            ],\n            id=\"multiple_deposits_from_contract_last_reverts\",\n        ),\n        pytest.param(\n            [\n                DepositContract(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=1_000_000_000,\n                            signature=0x03,\n                            gas_limit=100,\n                            index=0x0,\n                            valid=False,\n                        ),\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=1_000_000_000,\n                            signature=0x03,\n                            gas_limit=1_000_000,\n                            index=0x0,\n                        ),\n                    ],\n                ),\n            ],\n            id=\"multiple_deposits_from_contract_first_oog\",\n        ),\n        pytest.param(\n            [\n                DepositContract(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=1_000_000_000,\n                            signature=0x03,\n                            index=0x0,\n                            gas_limit=1_000_000,\n                        ),\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=1_000_000_000,\n                            signature=0x03,\n                            index=0x0,\n                            gas_limit=100,\n                            valid=False,\n                        ),\n                    ],\n                ),\n            ],\n            id=\"multiple_deposits_from_contract_last_oog\",\n        ),\n        pytest.param(\n            [\n                DepositContract(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=32_000_000_000,\n                            signature=0x03,\n                            index=0x0,\n                            valid=False,\n                        ),\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=1_000_000_000,\n                            signature=0x03,\n                            index=0x1,\n                            valid=False,\n                        ),\n                    ],\n                    extra_code=Op.REVERT(0, 0),\n                ),\n            ],\n            id=\"multiple_deposits_from_contract_caller_reverts\",\n        ),\n        pytest.param(\n            [\n                DepositContract(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=32_000_000_000,\n                            signature=0x03,\n                            index=0x0,\n                            valid=False,\n                        ),\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=1_000_000_000,\n                            signature=0x03,\n                            index=0x1,\n                            valid=False,\n                        ),\n                    ],\n                    extra_code=Macros.OOG(),\n                ),\n            ],\n            id=\"multiple_deposits_from_contract_caller_oog\",\n        ),\n        pytest.param(\n            [\n                DepositContract(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=1_000_000_000,\n                            signature=0x03,\n                            index=i,\n                            valid=False,\n                        )\n                        for i in range(450)\n                    ],\n                    tx_gas_limit=10_000_000,\n                ),\n            ],\n            id=\"many_deposits_from_contract_oog\",\n            marks=pytest.mark.slow,\n        ),\n        pytest.param(\n            [\n                DepositContract(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=32_000_000_000,\n                            signature=0x03,\n                            index=0x0,\n                        ),\n                    ],\n                ),\n                DepositTransaction(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=32_000_000_000,\n                            signature=0x03,\n                            index=0x1,\n                        )\n                    ],\n                ),\n            ],\n            id=\"single_deposit_from_contract_single_deposit_from_eoa\",\n        ),\n        pytest.param(\n            [\n                DepositTransaction(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=32_000_000_000,\n                            signature=0x03,\n                            index=0x0,\n                        )\n                    ],\n                ),\n                DepositContract(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=32_000_000_000,\n                            signature=0x03,\n                            index=0x1,\n                        ),\n                    ],\n                ),\n            ],\n            id=\"single_deposit_from_eoa_single_deposit_from_contract\",\n        ),\n        pytest.param(\n            [\n                DepositTransaction(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=32_000_000_000,\n                            signature=0x03,\n                            index=0x0,\n                        )\n                    ],\n                ),\n                DepositContract(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=32_000_000_000,\n                            signature=0x03,\n                            index=0x1,\n                        ),\n                    ],\n                ),\n                DepositTransaction(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=32_000_000_000,\n                            signature=0x03,\n                            index=0x2,\n                        )\n                    ],\n                ),\n            ],\n            id=\"single_deposit_from_contract_between_eoa_deposits\",\n        ),\n        pytest.param(\n            [\n                DepositContract(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=32_000_000_000,\n                            signature=0x03,\n                            index=0x0,\n                        ),\n                    ],\n                ),\n                DepositTransaction(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=32_000_000_000,\n                            signature=0x03,\n                            index=0x1,\n                        )\n                    ],\n                ),\n                DepositContract(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=32_000_000_000,\n                            signature=0x03,\n                            index=0x2,\n                        ),\n                    ],\n                ),\n            ],\n            id=\"single_deposit_from_eoa_between_contract_deposits\",\n        ),\n        pytest.param(\n            [\n                DepositContract(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=32_000_000_000,\n                            signature=0x03,\n                            index=0x0,\n                            valid=False,\n                        )\n                    ],\n                    call_type=Op.DELEGATECALL,\n                ),\n            ],\n            id=\"single_deposit_from_contract_delegatecall\",\n        ),\n        pytest.param(\n            [\n                DepositContract(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=32_000_000_000,\n                            signature=0x03,\n                            index=0x0,\n                            valid=False,\n                        )\n                    ],\n                    call_type=Op.STATICCALL,\n                ),\n            ],\n            id=\"single_deposit_from_contract_staticcall\",\n        ),\n        pytest.param(\n            [\n                DepositContract(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=32_000_000_000,\n                            signature=0x03,\n                            index=0x0,\n                            valid=False,\n                        )\n                    ],\n                    call_type=Op.CALLCODE,\n                ),\n            ],\n            id=\"single_deposit_from_contract_callcode\",\n        ),\n        pytest.param(\n            [\n                DepositContract(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=32_000_000_000,\n                            signature=0x03,\n                            index=0x0,\n                        )\n                    ],\n                    call_depth=3,\n                ),\n            ],\n            id=\"single_deposit_from_contract_call_depth_3\",\n        ),\n        pytest.param(\n            [\n                DepositContract(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=32_000_000_000,\n                            signature=0x03,\n                            index=0x0,\n                        )\n                    ],\n                    call_depth=271,\n                    tx_gas_limit=16_777_216,\n                ),\n            ],\n            id=\"single_deposit_from_contract_call_depth_high\",\n        ),\n        pytest.param(\n            [\n                DepositTransaction(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=1_000_000_001,\n                            signature=0x03,\n                            index=0x0,\n                        )\n                    ],\n                ),\n            ],\n            id=\"single_deposit_from_eoa_minimum_plus_one\",\n        ),\n        pytest.param(\n            [\n                DepositTransaction(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=1_000_000_000,\n                            signature=0x03,\n                            index=0x0,\n                            extra_wei=1,\n                            valid=False,\n                        )\n                    ],\n                ),\n            ],\n            id=\"single_deposit_from_eoa_minimum_plus_one_wei\",\n        ),\n        pytest.param(\n            [\n                DepositTransaction(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=1_000_000_000,\n                            signature=0x03,\n                            index=0x0,\n                            extra_wei=-1,\n                            valid=False,\n                        )\n                    ],\n                ),\n            ],\n            id=\"single_deposit_from_eoa_minimum_minus_one_wei\",\n        ),\n        pytest.param(\n            [\n                DepositContract(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=1_000_000_000,\n                            signature=0x03,\n                            index=0x0,\n                            extra_wei=1,\n                            valid=False,\n                        )\n                    ],\n                ),\n            ],\n            id=\"single_deposit_from_contract_minimum_plus_one_wei\",\n        ),\n        pytest.param(\n            [\n                DepositContract(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=1_000_000_000,\n                            signature=0x03,\n                            index=0x0,\n                            extra_wei=-1,\n                            valid=False,\n                        )\n                    ],\n                ),\n            ],\n            id=\"single_deposit_from_contract_minimum_minus_one_wei\",\n        ),\n        pytest.param(\n            [\n                DepositTransaction(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=1_000_000_001,\n                            signature=0x03,\n                            index=0x0,\n                        ),\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=999_999_999,\n                            signature=0x03,\n                            index=0x1,\n                            valid=False,\n                        ),\n                    ],\n                ),\n            ],\n            id=\"multiple_deposits_from_eoa_minimum_plus_one_minimum_minus_one\",\n        ),\n        pytest.param(\n            [\n                DepositContract(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=32_000_000_000,\n                            signature=0x03,\n                            index=0x0,\n                            valid=False,\n                        )\n                    ],\n                    # Send 32 ETH minus 1 wei to the contract, note\n                    # `DepositRequest.amount` is in gwei\n                    tx_value=32_000_000_000 * 10**9 - 1,\n                    contract_balance=0,\n                ),\n            ],\n            id=\"send_not_enough_eth_to_contract_with_zero_balance\",\n        ),\n        pytest.param(\n            [\n                DepositContract(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=999_999_999,\n                            signature=0x03,\n                            index=0x0,\n                            valid=False,\n                        )\n                    ],\n                    tx_value=1_000_000_000 * 10**9,\n                ),\n            ],\n            id=\"send_eth_to_contract_insufficient_deposit\",\n        ),\n        pytest.param(\n            [\n                DepositContract(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=32_000_000_000,\n                            signature=0x03,\n                            index=0x0,\n                        )\n                    ],\n                    # Send 32 ETH (in wei) to the contract\n                    tx_value=32_000_000_000 * 10**9,\n                    contract_balance=0,\n                ),\n            ],\n            id=\"send_exact_eth_amount_for_deposit\",\n        ),\n        pytest.param(\n            [\n                DepositContract(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=32_000_000_000,\n                            signature=0x03,\n                            index=0x0,\n                        ),\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=32_000_000_000,\n                            signature=0x03,\n                            index=0x1,\n                        ),\n                    ],\n                    # Send 64 ETH (in wei) to the contract\n                    tx_value=64_000_000_000 * 10**9,\n                    contract_balance=0,\n                ),\n            ],\n            id=\"send_exact_eth_amount_for_multiple_deposits\",\n        ),\n    ],\n)\n@pytest.mark.pre_alloc_group(\n    \"deposit_requests\", reason=\"Tests standard deposit request functionality using system contract\"\n)\ndef test_deposit(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    blocks: List[Block],\n) -> None:\n    \"\"\"Test making a deposit to the beacon chain deposit contract.\"\"\"\n    total_gas_limit = sum(tx.gas_limit for tx in blocks[0].txs)\n    env = Environment()\n    if total_gas_limit > env.gas_limit:\n        env = Environment(gas_limit=total_gas_limit)\n    blockchain_test(\n        genesis_environment=env,\n        pre=pre,\n        post={},\n        blocks=blocks,\n    )\n\n\n@pytest.mark.parametrize(\n    \"requests,block_body_override_requests,exception\",\n    [\n        pytest.param(\n            [],\n            [\n                DepositRequest(\n                    pubkey=0x01,\n                    withdrawal_credentials=0x02,\n                    amount=1_000_000_000,\n                    signature=0x03,\n                    index=0x0,\n                ),\n            ],\n            BlockException.INVALID_REQUESTS,\n            id=\"no_deposits_non_empty_requests_list\",\n        ),\n        pytest.param(\n            [\n                DepositTransaction(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=1_000_000_000,\n                            signature=0x03,\n                            index=0x0,\n                        )\n                    ],\n                ),\n            ],\n            [],\n            BlockException.INVALID_REQUESTS,\n            id=\"single_deposit_empty_requests_list\",\n        ),\n        pytest.param(\n            [\n                DepositTransaction(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=1_000_000_000,\n                            signature=0x03,\n                            index=0x0,\n                        )\n                    ],\n                ),\n            ],\n            [\n                DepositRequest(\n                    pubkey=0x02,\n                    withdrawal_credentials=0x02,\n                    amount=1_000_000_000,\n                    signature=0x03,\n                    index=0x0,\n                )\n            ],\n            BlockException.INVALID_REQUESTS,\n            id=\"single_deposit_pubkey_mismatch\",\n        ),\n        pytest.param(\n            [\n                DepositTransaction(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=1_000_000_000,\n                            signature=0x03,\n                            index=0x0,\n                        )\n                    ],\n                ),\n            ],\n            [\n                DepositRequest(\n                    pubkey=0x01,\n                    withdrawal_credentials=0x03,\n                    amount=1_000_000_000,\n                    signature=0x03,\n                    index=0x0,\n                )\n            ],\n            BlockException.INVALID_REQUESTS,\n            id=\"single_deposit_credentials_mismatch\",\n        ),\n        pytest.param(\n            [\n                DepositTransaction(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=1_000_000_000,\n                            signature=0x03,\n                            index=0x0,\n                        )\n                    ],\n                ),\n            ],\n            [\n                DepositRequest(\n                    pubkey=0x01,\n                    withdrawal_credentials=0x02,\n                    amount=2_000_000_000,\n                    signature=0x03,\n                    index=0x0,\n                )\n            ],\n            BlockException.INVALID_REQUESTS,\n            id=\"single_deposit_amount_mismatch\",\n        ),\n        pytest.param(\n            [\n                DepositTransaction(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=1_000_000_000,\n                            signature=0x03,\n                            index=0x0,\n                        )\n                    ],\n                ),\n            ],\n            [\n                DepositRequest(\n                    pubkey=0x01,\n                    withdrawal_credentials=0x02,\n                    amount=1_000_000_000,\n                    signature=0x04,\n                    index=0x0,\n                )\n            ],\n            BlockException.INVALID_REQUESTS,\n            id=\"single_deposit_signature_mismatch\",\n        ),\n        pytest.param(\n            [\n                DepositTransaction(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=1_000_000_000,\n                            signature=0x03,\n                            index=0x0,\n                        )\n                    ],\n                ),\n            ],\n            [\n                DepositRequest(\n                    pubkey=0x01,\n                    withdrawal_credentials=0x02,\n                    amount=1_000_000_000,\n                    signature=0x03,\n                    index=0x1,\n                )\n            ],\n            BlockException.INVALID_REQUESTS,\n            id=\"single_deposit_index_mismatch\",\n        ),\n        pytest.param(\n            [\n                DepositTransaction(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=1_000_000_000,\n                            signature=0x03,\n                            index=0x0,\n                        ),\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=1_000_000_000,\n                            signature=0x03,\n                            index=0x1,\n                        ),\n                    ],\n                ),\n            ],\n            [\n                DepositRequest(\n                    pubkey=0x01,\n                    withdrawal_credentials=0x02,\n                    amount=1_000_000_000,\n                    signature=0x03,\n                    index=0x1,\n                ),\n                DepositRequest(\n                    pubkey=0x01,\n                    withdrawal_credentials=0x02,\n                    amount=1_000_000_000,\n                    signature=0x03,\n                    index=0x0,\n                ),\n            ],\n            BlockException.INVALID_REQUESTS,\n            id=\"two_deposits_out_of_order\",\n        ),\n        pytest.param(\n            [\n                DepositTransaction(\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=1_000_000_000,\n                            signature=0x03,\n                            index=0x0,\n                        )\n                    ],\n                ),\n            ],\n            [\n                DepositRequest(\n                    pubkey=0x01,\n                    withdrawal_credentials=0x02,\n                    amount=1_000_000_000,\n                    signature=0x03,\n                    index=0x0,\n                ),\n                DepositRequest(\n                    pubkey=0x01,\n                    withdrawal_credentials=0x02,\n                    amount=1_000_000_000,\n                    signature=0x03,\n                    index=0x0,\n                ),\n            ],\n            BlockException.INVALID_REQUESTS,\n            id=\"single_deposit_duplicate_in_requests_list\",\n        ),\n    ],\n)\n@pytest.mark.exception_test\n@pytest.mark.pre_alloc_group(\n    \"deposit_requests\", reason=\"Tests standard deposit request functionality using system contract\"\n)\ndef test_deposit_negative(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    blocks: List[Block],\n) -> None:\n    \"\"\"\n    Test producing a block with the incorrect deposits in the body of the\n    block, and/or Engine API payload.\n    \"\"\"\n    blockchain_test(\n        pre=pre,\n        post={},\n        blocks=blocks,\n    )\n"
  },
  {
    "path": "tests/prague/eip6110_deposits/test_eip_mainnet.py",
    "content": "\"\"\"\nabstract: Crafted tests for mainnet of [EIP-6110: Supply validator deposits on chain](https://eips.ethereum.org/EIPS/eip-6110).\n\"\"\"  # noqa: E501\n\nfrom typing import List\n\nimport pytest\n\nfrom ethereum_test_tools import (\n    Alloc,\n    Block,\n    BlockchainTestFiller,\n)\n\nfrom .helpers import DepositRequest, DepositTransaction\nfrom .spec import ref_spec_6110\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_6110.git_path\nREFERENCE_SPEC_VERSION = ref_spec_6110.version\n\npytestmark = [pytest.mark.valid_at(\"Prague\"), pytest.mark.mainnet]\n\n\n@pytest.mark.parametrize(\n    \"requests\",\n    [\n        pytest.param(\n            [\n                DepositTransaction(\n                    # TODO: Use a real public key to allow recovery of\n                    #  the funds.\n                    requests=[\n                        DepositRequest(\n                            pubkey=0x01,\n                            withdrawal_credentials=0x02,\n                            amount=1_000_000_000,\n                            signature=0x03,\n                            index=0x0,\n                        )\n                    ],\n                ),\n            ],\n            id=\"single_deposit_from_eoa_minimum\",\n        ),\n    ],\n)\ndef test_eip_6110(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    blocks: List[Block],\n) -> None:\n    \"\"\"Test making a deposit to the beacon chain deposit contract.\"\"\"\n    blockchain_test(\n        pre=pre,\n        post={},\n        blocks=blocks,\n    )\n"
  },
  {
    "path": "tests/prague/eip6110_deposits/test_modified_contract.py",
    "content": "\"\"\"\nTest variants of the deposit contract which adheres the log-style as described\nin EIP-6110.\n\"\"\"\n\nimport pytest\n\nfrom ethereum_test_exceptions.exceptions import BlockException\nfrom ethereum_test_tools import (\n    Account,\n    Alloc,\n    Block,\n    BlockchainTestFiller,\n    Header,\n    Requests,\n    Transaction,\n)\nfrom ethereum_test_tools import Macros as Om\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom .helpers import DepositRequest, create_deposit_log_bytes\nfrom .spec import Spec, ref_spec_6110\n\npytestmark = [\n    pytest.mark.valid_from(\"Prague\"),\n    pytest.mark.execute(pytest.mark.skip(reason=\"modifies pre-alloc\")),\n]\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_6110.git_path\nREFERENCE_SPEC_VERSION = ref_spec_6110.version\n\nEVENT_ARGUMENTS_NAMES = [\"pubkey\", \"withdrawal_credentials\", \"amount\", \"signature\", \"index\"]\nEVENT_ARGUMENTS_LAYOUT_TYPE = [\"size\", \"offset\"]\nEVENT_ARGUMENTS = [\n    f\"{name}_{layout}\" for name in EVENT_ARGUMENTS_NAMES for layout in EVENT_ARGUMENTS_LAYOUT_TYPE\n]\nEVENT_ARGUMENT_VALUES = [\"zero\", \"max_uint256\"]\n\n\nDEFAULT_DEPOSIT_REQUEST = DepositRequest(\n    pubkey=0x01,\n    withdrawal_credentials=0x02,\n    amount=120_000_000_000_000_000,\n    signature=0x03,\n    index=0x0,\n)\nDEFAULT_DEPOSIT_REQUEST_LOG_DATA_DICT = {\n    \"pubkey_data\": bytes(DEFAULT_DEPOSIT_REQUEST.pubkey),\n    \"withdrawal_credentials_data\": bytes(DEFAULT_DEPOSIT_REQUEST.withdrawal_credentials),\n    # Note: after converting to bytes, it is converted to little-endian by\n    # `[::-1]` (This happens on-chain also, but this is done by the solidity\n    # contract)\n    \"amount_data\": bytes.fromhex(\"0\" + DEFAULT_DEPOSIT_REQUEST.amount.hex()[2:])[::-1],\n    \"signature_data\": bytes(DEFAULT_DEPOSIT_REQUEST.signature),\n    \"index_data\": bytes(DEFAULT_DEPOSIT_REQUEST.index),\n}\nDEFAULT_REQUEST_LOG = create_deposit_log_bytes(**DEFAULT_DEPOSIT_REQUEST_LOG_DATA_DICT)  # type: ignore\n\n\n@pytest.mark.parametrize(\n    \"include_deposit_event\",\n    [\n        pytest.param(\n            True,\n            marks=pytest.mark.pre_alloc_group(\n                \"deposit_extra_logs_with_event\",\n                reason=\"Deposit contract with Transfer log AND deposit event\",\n            ),\n        ),\n        pytest.param(\n            False,\n            marks=pytest.mark.pre_alloc_group(\n                \"deposit_extra_logs_no_event\",\n                reason=\"Deposit contract with Transfer log but NO deposit event\",\n            ),\n        ),\n    ],\n)\ndef test_extra_logs(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    include_deposit_event: bool,\n) -> None:\n    \"\"\"\n    Test deposit contract emitting more log event types than the ones in\n    mainnet.\n    \"\"\"\n    # Supplant mainnet contract with a variant that emits a `Transfer`` log If\n    # `include_deposit_event` is `True``, it will also emit a `DepositEvent`\n    # log`\n\n    # ERC20 token transfer log (Sepolia)\n    # https://sepolia.etherscan.io/tx/\n    #   0x2d71f3085a796a0539c9cc28acd9073a67cf862260a41475f000dd101279f94f\n    # JSON RPC: curl https://sepolia.infura.io/v3/APIKEY \\ -X POST \\ -H\n    # \"Content-Type: application/json\" \\ -d '{\"jsonrpc\": \"2.0\", \"method\":\n    # \"eth_getLogs\", \"params\": [{\"address\":\n    # \"0x7f02C3E3c98b133055B8B348B2Ac625669Ed295D\", \"blockHash\":\n    # \"0x8062a17fa791f5dbd59ea68891422e3299ca4e80885a89acf3fc706c8bceef53\"}],\n    # \"id\": 1}'\n\n    # {\"jsonrpc\":\"2.0\",\"id\":1,\"result\":\n    # [{\"removed\":false,\"logIndex\":\"0x80\",\"transactionIndex\":\"0x56\",\n    # \"transactionHash\":\n    #   \"0x2d71f3085a796a0539c9cc28acd9073a67cf862260a41475f000dd101279f94f\",\n    # \"blockHash\":\n    #   \"0x8062a17fa791f5dbd59ea68891422e3299ca4e80885a89acf3fc706c8bceef53\",\n    # \"blockNumber\":\"0x794fb5\",\n    # \"address\":\"0x7f02c3e3c98b133055b8b348b2ac625669ed295d\",\n    # \"data\":\n    #   \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n    # \"topics\":\n    #   [\"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef\",\n    # \"0x0000000000000000000000006885e36bfcb68cb383dfe90023a462c03bcb2ae5\",\n    # \"0x00000000000000000000000080b5dc88c98e528bf9cb4b7f0f076ac41da24651\"]\n\n    bytecode = Op.LOG3(\n        # ERC-20 token transfer log ERC-20 token transfers are LOG3, since the\n        # topic, the sender, and receiver are all topics (the sender and\n        # receiver are `indexed` in the solidity event)\n        0,\n        32,\n        0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF,\n        0x000000000000000000000000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA,\n        0x000000000000000000000000BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB,\n    )\n\n    requests = Requests()\n\n    if include_deposit_event:\n        bytecode += Om.MSTORE(DEFAULT_REQUEST_LOG) + Op.LOG1(\n            0,\n            len(DEFAULT_REQUEST_LOG),\n            Spec.DEPOSIT_EVENT_SIGNATURE_HASH,\n        )\n        requests = Requests(DEFAULT_DEPOSIT_REQUEST)\n    bytecode += Op.STOP\n\n    pre[Spec.DEPOSIT_CONTRACT_ADDRESS] = Account(\n        code=bytecode,\n        nonce=1,\n        balance=0,\n    )\n    sender = pre.fund_eoa()\n\n    tx = Transaction(\n        to=Spec.DEPOSIT_CONTRACT_ADDRESS,\n        sender=sender,\n        gas_limit=100_000,\n    )\n\n    blockchain_test(\n        pre=pre,\n        blocks=[\n            Block(\n                txs=[tx],\n                header_verify=Header(\n                    requests_hash=requests,\n                ),\n            ),\n        ],\n        post={},\n    )\n\n\n@pytest.mark.parametrize(\n    \"log_argument,value\",\n    [\n        pytest.param(\n            arg,\n            val,\n            marks=pytest.mark.pre_alloc_group(\n                f\"deposit_layout_{arg}_{val}\",\n                reason=f\"Deposit contract with invalid {arg} set to {val}\",\n            ),\n        )\n        for arg in EVENT_ARGUMENTS\n        for val in EVENT_ARGUMENT_VALUES\n    ],\n)\n@pytest.mark.exception_test\ndef test_invalid_layout(\n    blockchain_test: BlockchainTestFiller, pre: Alloc, log_argument: str, value: str\n) -> None:\n    \"\"\"\n    Test deposit contract emitting logs with invalid layouts (sizes/offsets).\n    \"\"\"\n    log_params = {**DEFAULT_DEPOSIT_REQUEST_LOG_DATA_DICT}\n    log_params[log_argument] = 0 if value == \"zero\" else 2**256 - 1  # type: ignore\n\n    deposit_request_log = create_deposit_log_bytes(**log_params)  # type: ignore\n\n    bytecode = Om.MSTORE(deposit_request_log) + Op.LOG1(\n        0,\n        len(deposit_request_log),\n        Spec.DEPOSIT_EVENT_SIGNATURE_HASH,\n    )\n    bytecode += Op.STOP\n\n    pre[Spec.DEPOSIT_CONTRACT_ADDRESS] = Account(\n        code=bytecode,\n        nonce=1,\n        balance=0,\n    )\n    sender = pre.fund_eoa()\n\n    tx = Transaction(\n        to=Spec.DEPOSIT_CONTRACT_ADDRESS,\n        sender=sender,\n        gas_limit=100_000,\n    )\n\n    blockchain_test(\n        pre=pre,\n        blocks=[\n            Block(\n                txs=[tx],\n                exception=[\n                    BlockException.INVALID_DEPOSIT_EVENT_LAYOUT,\n                ],\n            ),\n        ],\n        post={},\n    )\n\n\n@pytest.mark.parametrize(\n    \"slice_bytes\",\n    [\n        pytest.param(\n            True,\n            marks=pytest.mark.pre_alloc_group(\n                \"deposit_log_length_short\", reason=\"Deposit contract with shortened log data\"\n            ),\n        ),\n        pytest.param(\n            False,\n            marks=pytest.mark.pre_alloc_group(\n                \"deposit_log_length_long\", reason=\"Deposit contract with lengthened log data\"\n            ),\n        ),\n    ],\n)\n@pytest.mark.exception_test\ndef test_invalid_log_length(\n    blockchain_test: BlockchainTestFiller, pre: Alloc, slice_bytes: bool\n) -> None:\n    \"\"\"\n    Test deposit contract emitting logs with invalid log length (one byte more\n    or less).\n    \"\"\"\n    changed_log = DEFAULT_REQUEST_LOG[:-1] if slice_bytes else DEFAULT_REQUEST_LOG + b\"\\x00\"\n\n    bytecode = Om.MSTORE(changed_log) + Op.LOG1(\n        0,\n        len(changed_log),\n        Spec.DEPOSIT_EVENT_SIGNATURE_HASH,\n    )\n    bytecode += Op.STOP\n\n    pre[Spec.DEPOSIT_CONTRACT_ADDRESS] = Account(\n        code=bytecode,\n        nonce=1,\n        balance=0,\n    )\n    sender = pre.fund_eoa()\n\n    tx = Transaction(\n        to=Spec.DEPOSIT_CONTRACT_ADDRESS,\n        sender=sender,\n        gas_limit=100_000,\n    )\n\n    blockchain_test(\n        pre=pre,\n        blocks=[\n            Block(\n                txs=[tx],\n                exception=[\n                    BlockException.INVALID_DEPOSIT_EVENT_LAYOUT,\n                ],\n            ),\n        ],\n        post={},\n    )\n"
  },
  {
    "path": "tests/prague/eip7002_el_triggerable_withdrawals/__init__.py",
    "content": "\"\"\"Cross-client EIP-7002 Tests.\"\"\"\n"
  },
  {
    "path": "tests/prague/eip7002_el_triggerable_withdrawals/conftest.py",
    "content": "\"\"\"Fixtures for the EIP-7002 deposit tests.\"\"\"\n\nfrom itertools import zip_longest\nfrom typing import List\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import Alloc, Block, Header, Requests\n\nfrom .helpers import WithdrawalRequest, WithdrawalRequestInteractionBase\nfrom .spec import Spec\n\n\n@pytest.fixture\ndef update_pre(\n    pre: Alloc,\n    blocks_withdrawal_requests: List[List[WithdrawalRequestInteractionBase]],\n) -> None:\n    \"\"\"\n    Init state of the accounts. Every deposit transaction defines their own\n    pre-state requirements, and this fixture aggregates them all.\n    \"\"\"\n    for requests in blocks_withdrawal_requests:\n        for r in requests:\n            r.update_pre(pre)\n\n\n@pytest.fixture\ndef included_requests(\n    update_pre: None,  # Fixture is used for its side effects\n    blocks_withdrawal_requests: List[List[WithdrawalRequestInteractionBase]],\n) -> List[List[WithdrawalRequest]]:\n    \"\"\"\n    Return the list of withdrawal requests that should be included in each\n    block.\n    \"\"\"\n    excess_withdrawal_requests = 0\n    carry_over_requests: List[WithdrawalRequest] = []\n    per_block_included_requests: List[List[WithdrawalRequest]] = []\n    for block_withdrawal_requests in blocks_withdrawal_requests:\n        # Get fee for the current block\n        current_minimum_fee = Spec.get_fee(excess_withdrawal_requests)\n\n        # With the fee, get the valid withdrawal requests for the current block\n        current_block_requests = []\n        for w in block_withdrawal_requests:\n            current_block_requests += w.valid_requests(current_minimum_fee)\n\n        # Get the withdrawal requests that should be included in the block\n        pending_requests = carry_over_requests + current_block_requests\n        per_block_included_requests.append(\n            pending_requests[: Spec.MAX_WITHDRAWAL_REQUESTS_PER_BLOCK]\n        )\n        carry_over_requests = pending_requests[Spec.MAX_WITHDRAWAL_REQUESTS_PER_BLOCK :]\n\n        # Update the excess withdrawal requests\n        excess_withdrawal_requests = Spec.get_excess_withdrawal_requests(\n            excess_withdrawal_requests,\n            len(current_block_requests),\n        )\n    while carry_over_requests:\n        # Keep adding blocks until all withdrawal requests are included\n        per_block_included_requests.append(\n            carry_over_requests[: Spec.MAX_WITHDRAWAL_REQUESTS_PER_BLOCK]\n        )\n        carry_over_requests = carry_over_requests[Spec.MAX_WITHDRAWAL_REQUESTS_PER_BLOCK :]\n\n    return per_block_included_requests\n\n\n@pytest.fixture\ndef timestamp() -> int:\n    \"\"\"Return the timestamp for the first block.\"\"\"\n    return 1\n\n\n@pytest.fixture\ndef blocks(\n    fork: Fork,\n    update_pre: None,  # Fixture is used for its side effects\n    blocks_withdrawal_requests: List[List[WithdrawalRequestInteractionBase]],\n    included_requests: List[List[WithdrawalRequest]],\n    timestamp: int,\n) -> List[Block]:\n    \"\"\"Return the list of blocks that should be included in the test.\"\"\"\n    blocks: List[Block] = []\n\n    for block_requests, block_included_requests in zip_longest(  # type: ignore\n        blocks_withdrawal_requests,\n        included_requests,\n        fillvalue=[],\n    ):\n        header_verify: Header | None = None\n        if fork.header_requests_required(\n            block_number=len(blocks) + 1,\n            timestamp=timestamp,\n        ):\n            header_verify = Header(\n                requests_hash=Requests(\n                    *block_included_requests,\n                )\n            )\n        else:\n            assert not block_included_requests\n        blocks.append(\n            Block(\n                txs=sum((r.transactions() for r in block_requests), []),\n                header_verify=header_verify,\n                timestamp=timestamp,\n            )\n        )\n        timestamp += 1\n\n    return blocks + [\n        # Add an empty block at the end to verify that no more withdrawal\n        # requests are included\n        Block(\n            header_verify=Header(requests_hash=Requests()),\n            timestamp=timestamp,\n        )\n    ]\n"
  },
  {
    "path": "tests/prague/eip7002_el_triggerable_withdrawals/contract_deploy_tx.json",
    "content": "{\n    \"type\": \"0x0\",\n    \"nonce\": \"0x0\",\n    \"to\": null,\n    \"gasLimit\": \"0x3d090\",\n    \"gasPrice\": \"0xe8d4a51000\",\n    \"maxPriorityFeePerGas\": null,\n    \"maxFeePerGas\": null,\n    \"value\": \"0x0\",\n    \"input\": \"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5f556101f880602d5f395ff33373fffffffffffffffffffffffffffffffffffffffe1460cb5760115f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff146101f457600182026001905f5b5f82111560685781019083028483029004916001019190604d565b909390049250505036603814608857366101f457346101f4575f5260205ff35b34106101f457600154600101600155600354806003026004013381556001015f35815560010160203590553360601b5f5260385f601437604c5fa0600101600355005b6003546002548082038060101160df575060105b5f5b8181146101835782810160030260040181604c02815460601b8152601401816001015481526020019060020154807fffffffffffffffffffffffffffffffff00000000000000000000000000000000168252906010019060401c908160381c81600701538160301c81600601538160281c81600501538160201c81600401538160181c81600301538160101c81600201538160081c81600101535360010160e1565b910180921461019557906002556101a0565b90505f6002555f6003555b5f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14156101cd57505f5b6001546002828201116101e25750505f6101e8565b01600290035b5f555f600155604c025ff35b5f5ffd\",\n    \"v\": \"0x1b\",\n    \"r\": \"0x539\",\n    \"s\": \"0x5feeb084551e4e03a3581e269bc2ea2f8d0008\",\n    \"hash\": \"0x8ded54be89448d78d4bc97782c0187b099e45380ab681742f9d3754e405c2572\",\n    \"protected\": false,\n    \"sender\": \"0x8646861A7cF453dDD086874d622b0696dE5b9674\"\n  }"
  },
  {
    "path": "tests/prague/eip7002_el_triggerable_withdrawals/helpers.py",
    "content": "\"\"\"Helpers for the EIP-7002 deposit tests.\"\"\"\n\nfrom dataclasses import dataclass, field\nfrom functools import cached_property\nfrom itertools import count\nfrom typing import Callable, ClassVar, List\n\nfrom ethereum_test_tools import EOA, Address, Alloc, Bytecode, Transaction\nfrom ethereum_test_tools import Opcodes as Op\nfrom ethereum_test_tools import WithdrawalRequest as WithdrawalRequestBase\n\nfrom .spec import Spec\n\n\nclass WithdrawalRequest(WithdrawalRequestBase):\n    \"\"\"Class used to describe a withdrawal request in a test.\"\"\"\n\n    fee: int = 0\n    \"\"\"\n    Fee to be paid to the system contract for the withdrawal request. This is\n    different from `amount` which is the amount of gwei to be withdrawn on the\n    beacon chain.\n\n    \"\"\"\n    valid: bool = True\n    \"\"\"Whether the withdrawal request is valid or not.\"\"\"\n    gas_limit: int = 1_000_000\n    \"\"\"Gas limit for the call.\"\"\"\n    calldata_modifier: Callable[[bytes], bytes] = lambda x: x\n    \"\"\"Calldata modifier function.\"\"\"\n\n    interaction_contract_address: ClassVar[Address] = Address(\n        Spec.WITHDRAWAL_REQUEST_PREDEPLOY_ADDRESS\n    )\n\n    @property\n    def value(self) -> int:\n        \"\"\"\n        Return the value of the call to the withdrawal request contract, equal\n        to the fee to be paid.\n        \"\"\"\n        return self.fee\n\n    @cached_property\n    def calldata(self) -> bytes:\n        \"\"\"\n        Return the calldata needed to call the withdrawal request contract and\n        make the withdrawal.\n        \"\"\"\n        return self.calldata_modifier(\n            self.validator_pubkey + self.amount.to_bytes(8, byteorder=\"big\")\n        )\n\n    def with_source_address(self, source_address: Address) -> \"WithdrawalRequest\":\n        \"\"\"\n        Return a new instance of the withdrawal request with the source address\n        set.\n        \"\"\"\n        return self.copy(source_address=source_address)\n\n\n@dataclass(kw_only=True)\nclass WithdrawalRequestInteractionBase:\n    \"\"\"Base class for all types of withdrawal transactions we want to test.\"\"\"\n\n    sender_balance: int = 1_000_000_000_000_000_000\n    \"\"\"Balance of the account that sends the transaction.\"\"\"\n    sender_account: EOA | None = None\n    \"\"\"Account that will send the transaction.\"\"\"\n    requests: List[WithdrawalRequest]\n    \"\"\"Withdrawal request to be included in the block.\"\"\"\n\n    def transactions(self) -> List[Transaction]:\n        \"\"\"Return a transaction for the withdrawal request.\"\"\"\n        raise NotImplementedError\n\n    def update_pre(self, pre: Alloc) -> None:\n        \"\"\"Return the pre-state of the account.\"\"\"\n        raise NotImplementedError\n\n    def valid_requests(self, current_minimum_fee: int) -> List[WithdrawalRequest]:\n        \"\"\"\n        Return the list of withdrawal requests that should be valid in the\n        block.\n        \"\"\"\n        raise NotImplementedError\n\n\n@dataclass(kw_only=True)\nclass WithdrawalRequestTransaction(WithdrawalRequestInteractionBase):\n    \"\"\"\n    Class used to describe a withdrawal request originated from an externally\n    owned account.\n    \"\"\"\n\n    def transactions(self) -> List[Transaction]:\n        \"\"\"Return a transaction for the withdrawal request.\"\"\"\n        assert self.sender_account is not None, \"Sender account not initialized\"\n        return [\n            Transaction(\n                gas_limit=request.gas_limit,\n                gas_price=1_000_000_000,\n                to=request.interaction_contract_address,\n                value=request.value,\n                data=request.calldata,\n                sender=self.sender_account,\n            )\n            for request in self.requests\n        ]\n\n    def update_pre(self, pre: Alloc) -> None:\n        \"\"\"Return the pre-state of the account.\"\"\"\n        self.sender_account = pre.fund_eoa(self.sender_balance)\n\n    def valid_requests(self, current_minimum_fee: int) -> List[WithdrawalRequest]:\n        \"\"\"Return the list of withdrawal requests that are valid.\"\"\"\n        assert self.sender_account is not None, \"Sender account not initialized\"\n        return [\n            request.with_source_address(self.sender_account)\n            for request in self.requests\n            if request.valid and request.fee >= current_minimum_fee\n        ]\n\n\n@dataclass(kw_only=True)\nclass WithdrawalRequestContract(WithdrawalRequestInteractionBase):\n    \"\"\"Class used to describe a withdrawal originated from a contract.\"\"\"\n\n    tx_gas_limit: int = 1_000_000\n    \"\"\"Gas limit for the transaction.\"\"\"\n\n    contract_balance: int = 1_000_000_000_000_000_000\n    \"\"\"\n    Balance of the contract that will make the call to the pre-deploy contract.\n    \"\"\"\n    contract_address: Address | None = None\n    \"\"\"\n    Address of the contract that will make the call to the pre-deploy contract.\n    \"\"\"\n    entry_address: Address | None = None\n    \"\"\"Address to send the transaction to.\"\"\"\n\n    call_type: Op = field(default_factory=lambda: Op.CALL)\n    \"\"\"Type of call to be used to make the withdrawal request.\"\"\"\n    call_depth: int = 2\n    \"\"\"Frame depth of the pre-deploy contract when it executes the call.\"\"\"\n    extra_code: Bytecode = field(default_factory=Bytecode)\n    \"\"\"Extra code to be added to the contract code.\"\"\"\n\n    @property\n    def contract_code(self) -> Bytecode:\n        \"\"\"Contract code used by the relay contract.\"\"\"\n        code = Bytecode()\n        current_offset = 0\n        for r in self.requests:\n            value_arg = [r.value] if self.call_type in (Op.CALL, Op.CALLCODE) else []\n            code += Op.CALLDATACOPY(0, current_offset, len(r.calldata)) + Op.POP(\n                self.call_type(\n                    Op.GAS if r.gas_limit == -1 else r.gas_limit,\n                    r.interaction_contract_address,\n                    *value_arg,\n                    0,\n                    len(r.calldata),\n                    0,\n                    0,\n                )\n            )\n            current_offset += len(r.calldata)\n        return code + self.extra_code\n\n    def transactions(self) -> List[Transaction]:\n        \"\"\"Return a transaction for the withdrawal request.\"\"\"\n        assert self.entry_address is not None, \"Entry address not initialized\"\n        return [\n            Transaction(\n                gas_limit=self.tx_gas_limit,\n                gas_price=1_000_000_000,\n                to=self.entry_address,\n                value=0,\n                data=b\"\".join(r.calldata for r in self.requests),\n                sender=self.sender_account,\n            )\n        ]\n\n    def update_pre(self, pre: Alloc) -> None:\n        \"\"\"Return the pre-state of the account.\"\"\"\n        self.sender_account = pre.fund_eoa(self.sender_balance)\n        self.contract_address = pre.deploy_contract(\n            code=self.contract_code, balance=self.contract_balance\n        )\n        self.entry_address = self.contract_address\n        if self.call_depth > 2:\n            for _ in range(1, self.call_depth - 1):\n                self.entry_address = pre.deploy_contract(\n                    code=Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE)\n                    + Op.POP(\n                        Op.CALL(\n                            Op.GAS,\n                            self.entry_address,\n                            0,\n                            0,\n                            Op.CALLDATASIZE,\n                            0,\n                            0,\n                        )\n                    )\n                )\n\n    def valid_requests(self, current_minimum_fee: int) -> List[WithdrawalRequest]:\n        \"\"\"Return the list of withdrawal requests that are valid.\"\"\"\n        assert self.contract_address is not None, \"Contract address not initialized\"\n        return [\n            r.with_source_address(self.contract_address)\n            for r in self.requests\n            if r.valid and r.value >= current_minimum_fee\n        ]\n\n\ndef get_n_fee_increments(n: int) -> List[int]:\n    \"\"\"Get the first N excess withdrawal requests that increase the fee.\"\"\"\n    excess_withdrawal_requests_counts = []\n    last_fee = 1\n    for i in count(0):\n        if Spec.get_fee(i) > last_fee:\n            excess_withdrawal_requests_counts.append(i)\n            last_fee = Spec.get_fee(i)\n        if len(excess_withdrawal_requests_counts) == n:\n            break\n    return excess_withdrawal_requests_counts\n\n\ndef get_n_fee_increment_blocks(n: int) -> List[List[WithdrawalRequestContract]]:\n    \"\"\"\n    Return N blocks that should be included in the test such that each\n    subsequent block has an increasing fee for the withdrawal requests.\n\n    This is done by calculating the number of withdrawals required to reach the\n    next fee increment and creating a block with that number of withdrawal\n    requests plus the number of withdrawals required to reach the target.\n    \"\"\"\n    blocks = []\n    previous_excess = 0\n    withdrawal_index = 0\n    previous_fee = 0\n    for required_excess_withdrawals in get_n_fee_increments(n):\n        withdrawals_required = (\n            required_excess_withdrawals\n            + Spec.TARGET_WITHDRAWAL_REQUESTS_PER_BLOCK\n            - previous_excess\n        )\n        fee = Spec.get_fee(previous_excess)\n        assert fee > previous_fee\n        blocks.append(\n            [\n                WithdrawalRequestContract(\n                    requests=[\n                        WithdrawalRequest(\n                            validator_pubkey=i,\n                            amount=0,\n                            fee=fee,\n                        )\n                        for i in range(withdrawal_index, withdrawal_index + withdrawals_required)\n                    ],\n                )\n            ],\n        )\n        previous_fee = fee\n        withdrawal_index += withdrawals_required\n        previous_excess = required_excess_withdrawals\n\n    return blocks\n"
  },
  {
    "path": "tests/prague/eip7002_el_triggerable_withdrawals/spec.py",
    "content": "\"\"\"\nCommon procedures to test\n[EIP-7002: Execution layer triggerable\nwithdrawals](https://eips.ethereum.org/EIPS/eip-7002).\n\"\"\"\n\nfrom dataclasses import dataclass\n\nfrom ethereum_test_tools import Address\n\n\n@dataclass(frozen=True)\nclass ReferenceSpec:\n    \"\"\"Defines the reference spec version and git path.\"\"\"\n\n    git_path: str\n    version: str\n\n\nref_spec_7002 = ReferenceSpec(\"EIPS/eip-7002.md\", \"695ac757472b9bbbdcbc88a020ba15c1ac782869\")\n\n\n# Constants\n@dataclass(frozen=True)\nclass Spec:\n    \"\"\"\n    Parameters from the EIP-7002 specifications as defined at\n    https://eips.ethereum.org/EIPS/eip-7002#configuration.\n\n    If the parameter is not currently used within the tests, it is commented\n    out.\n    \"\"\"\n\n    WITHDRAWAL_REQUEST_PREDEPLOY_ADDRESS = 0x00000961EF480EB55E80D19AD83579A64C007002\n    WITHDRAWAL_REQUEST_PREDEPLOY_SENDER = Address(0x8646861A7CF453DDD086874D622B0696DE5B9674)\n    SYSTEM_ADDRESS = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE\n\n    SYSTEM_CALL_GAS_LIMIT = 30_000_000\n\n    EXCESS_WITHDRAWAL_REQUESTS_STORAGE_SLOT = 0\n    WITHDRAWAL_REQUEST_COUNT_STORAGE_SLOT = 1\n    WITHDRAWAL_REQUEST_QUEUE_HEAD_STORAGE_SLOT = (\n        2  # Pointer to head of the withdrawal request message queue\n    )\n    WITHDRAWAL_REQUEST_QUEUE_TAIL_STORAGE_SLOT = (\n        3  # Pointer to the tail of the withdrawal request message queue\n    )\n    WITHDRAWAL_REQUEST_QUEUE_STORAGE_OFFSET = (\n        4  # The start memory slot of the in-state withdrawal request message queue\n    )\n    MAX_WITHDRAWAL_REQUESTS_PER_BLOCK = (\n        16  # Maximum number of withdrawal requests that can be de-queued into a block\n    )\n    TARGET_WITHDRAWAL_REQUESTS_PER_BLOCK = 2\n    MIN_WITHDRAWAL_REQUEST_FEE = 1\n    WITHDRAWAL_REQUEST_FEE_UPDATE_FRACTION = 17\n    EXCESS_RETURN_GAS_STIPEND = 2300\n\n    MAX_AMOUNT = 2**64 - 1\n\n    @staticmethod\n    def fake_exponential(factor: int, numerator: int, denominator: int) -> int:\n        \"\"\"Calculate the withdrawal request fee.\"\"\"\n        i = 1\n        output = 0\n        numerator_accumulator = factor * denominator\n        while numerator_accumulator > 0:\n            output += numerator_accumulator\n            numerator_accumulator = (numerator_accumulator * numerator) // (denominator * i)\n            i += 1\n        return output // denominator\n\n    @staticmethod\n    def get_fee(excess_withdrawal_requests: int) -> int:\n        \"\"\"Calculate the fee for the excess withdrawal requests.\"\"\"\n        return Spec.fake_exponential(\n            Spec.MIN_WITHDRAWAL_REQUEST_FEE,\n            excess_withdrawal_requests,\n            Spec.WITHDRAWAL_REQUEST_FEE_UPDATE_FRACTION,\n        )\n\n    @staticmethod\n    def get_excess_withdrawal_requests(previous_excess: int, count: int) -> int:\n        \"\"\"Calculate the new excess withdrawal requests.\"\"\"\n        if previous_excess + count > Spec.TARGET_WITHDRAWAL_REQUESTS_PER_BLOCK:\n            return previous_excess + count - Spec.TARGET_WITHDRAWAL_REQUESTS_PER_BLOCK\n        return 0\n"
  },
  {
    "path": "tests/prague/eip7002_el_triggerable_withdrawals/test_contract_deployment.py",
    "content": "\"\"\"\nTests [EIP-7002: Execution layer triggerable withdrawals](https://eips.ethereum.org/EIPS/eip-7002).\n\"\"\"\n\nfrom os.path import realpath\nfrom pathlib import Path\nfrom typing import Any, Generator\n\nimport pytest\n\nfrom ethereum_test_forks import Fork, Prague\nfrom ethereum_test_tools import (\n    Address,\n    Alloc,\n    Block,\n    Header,\n    Requests,\n    Transaction,\n    generate_system_contract_deploy_test,\n)\n\nfrom .helpers import WithdrawalRequest\nfrom .spec import Spec, ref_spec_7002\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_7002.git_path\nREFERENCE_SPEC_VERSION = ref_spec_7002.version\n\n\n@pytest.mark.pre_alloc_group(\n    \"separate\", reason=\"Deploys withdrawal system contract at hardcoded predeploy address\"\n)\n@generate_system_contract_deploy_test(\n    fork=Prague,\n    tx_json_path=Path(realpath(__file__)).parent / \"contract_deploy_tx.json\",\n    expected_deploy_address=Address(Spec.WITHDRAWAL_REQUEST_PREDEPLOY_ADDRESS),\n    fail_on_empty_code=True,\n)\ndef test_system_contract_deployment(\n    *,\n    fork: Fork,\n    pre: Alloc,\n    **kwargs: Any,\n) -> Generator[Block, None, None]:\n    \"\"\"Verify calling the withdrawals system contract after deployment.\"\"\"\n    sender = pre.fund_eoa()\n    withdrawal_request = WithdrawalRequest(\n        validator_pubkey=0x01,\n        amount=1,\n        fee=Spec.get_fee(0),\n        source_address=sender,\n    )\n    pre.fund_address(sender, withdrawal_request.value)\n    intrinsic_gas_calculator = fork.transaction_intrinsic_cost_calculator()\n    test_transaction_gas = intrinsic_gas_calculator(calldata=withdrawal_request.calldata)\n\n    test_transaction = Transaction(\n        data=withdrawal_request.calldata,\n        gas_limit=test_transaction_gas * 10,\n        to=Spec.WITHDRAWAL_REQUEST_PREDEPLOY_ADDRESS,\n        sender=sender,\n        value=withdrawal_request.value,\n    )\n\n    yield Block(\n        txs=[test_transaction],\n        header=Header(\n            requests_hash=Requests(withdrawal_request),\n        ),\n    )\n"
  },
  {
    "path": "tests/prague/eip7002_el_triggerable_withdrawals/test_eip_mainnet.py",
    "content": "\"\"\"\nabstract: Crafted tests for mainnet of [EIP-7002: Execution layer triggerable withdrawals](https://eips.ethereum.org/EIPS/eip-7002).\n\"\"\"  # noqa: E501\n\nfrom typing import List\n\nimport pytest\n\nfrom ethereum_test_tools import (\n    Alloc,\n    Block,\n    BlockchainTestFiller,\n)\n\nfrom .helpers import WithdrawalRequest, WithdrawalRequestTransaction\nfrom .spec import Spec, ref_spec_7002\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_7002.git_path\nREFERENCE_SPEC_VERSION = ref_spec_7002.version\n\npytestmark = [pytest.mark.valid_at(\"Prague\"), pytest.mark.mainnet]\n\n\n@pytest.mark.parametrize(\n    \"blocks_withdrawal_requests\",\n    [\n        pytest.param(\n            [\n                [\n                    WithdrawalRequestTransaction(\n                        requests=[\n                            WithdrawalRequest(\n                                validator_pubkey=0x01,\n                                amount=0,\n                                fee=Spec.get_fee(0),\n                            )\n                        ],\n                    ),\n                ],\n            ],\n            id=\"single_withdrawal_request\",\n        ),\n    ],\n)\ndef test_eip_7002(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    blocks: List[Block],\n) -> None:\n    \"\"\"Test making a withdrawal request.\"\"\"\n    blockchain_test(\n        pre=pre,\n        post={},\n        blocks=blocks,\n    )\n"
  },
  {
    "path": "tests/prague/eip7002_el_triggerable_withdrawals/test_modified_withdrawal_contract.py",
    "content": "\"\"\"\nTests [EIP-7002: Execution layer triggerable withdrawals](https://eips.ethereum.org/EIPS/eip-7002).\n\"\"\"\n\nfrom typing import List\n\nimport pytest\n\nfrom ethereum_test_tools import (\n    Account,\n    Address,\n    Alloc,\n    Block,\n    BlockchainTestFiller,\n    Bytecode,\n    Transaction,\n    generate_system_contract_error_test,\n)\nfrom ethereum_test_tools import Macros as Om\nfrom ethereum_test_tools import Opcodes as Op\nfrom ethereum_test_types import Requests\n\nfrom .helpers import (\n    WithdrawalRequest,\n    WithdrawalRequestTransaction,\n)\nfrom .spec import Spec as Spec_EIP7002\nfrom .spec import ref_spec_7002\n\nREFERENCE_SPEC_GIT_PATH: str = ref_spec_7002.git_path\nREFERENCE_SPEC_VERSION: str = ref_spec_7002.version\n\npytestmark: pytest.MarkDecorator = pytest.mark.valid_from(\"Prague\")\n\n\ndef withdrawal_list_with_custom_fee(n: int) -> List[WithdrawalRequest]:  # noqa: D103\n    return [\n        WithdrawalRequest(\n            validator_pubkey=i + 1,\n            amount=0,\n            fee=Spec_EIP7002.get_fee(0),\n        )\n        for i in range(n)\n    ]\n\n\n@pytest.mark.parametrize(\n    \"requests_list\",\n    [\n        pytest.param(\n            [],\n            id=\"empty_request_list\",\n        ),\n        pytest.param(\n            [\n                *withdrawal_list_with_custom_fee(1),\n            ],\n            id=\"1_withdrawal_request\",\n        ),\n        pytest.param(\n            [\n                *withdrawal_list_with_custom_fee(15),\n            ],\n            id=\"15_withdrawal_requests\",\n        ),\n        pytest.param(\n            [\n                *withdrawal_list_with_custom_fee(16),\n            ],\n            id=\"16_withdrawal_requests\",\n        ),\n        pytest.param(\n            [\n                *withdrawal_list_with_custom_fee(17),\n            ],\n            id=\"17_withdrawal_requests\",\n        ),\n        pytest.param(\n            [\n                *withdrawal_list_with_custom_fee(18),\n            ],\n            id=\"18_withdrawal_requests\",\n        ),\n    ],\n)\n@pytest.mark.pre_alloc_group(\"separate\", reason=\"Deploys custom withdrawal contract bytecode\")\ndef test_extra_withdrawals(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    requests_list: List[WithdrawalRequest],\n) -> None:\n    \"\"\"\n    Test how clients were to behave when more than 16 withdrawals would be\n    allowed per block.\n    \"\"\"\n    modified_code: Bytecode = Bytecode()\n    memory_offset: int = 0\n    amount_of_requests: int = 0\n\n    for withdrawal_request in requests_list:\n        # update memory_offset with the correct value\n        withdrawal_request_bytes_amount: int = len(bytes(withdrawal_request))\n        assert withdrawal_request_bytes_amount == 76, (\n            \"Expected withdrawal request to be of size 76 but got size \"\n            f\"{withdrawal_request_bytes_amount}\"\n        )\n        memory_offset += withdrawal_request_bytes_amount\n\n        modified_code += Om.MSTORE(bytes(withdrawal_request), memory_offset)\n        amount_of_requests += 1\n\n    modified_code += Op.RETURN(0, Op.MSIZE())\n\n    pre[Spec_EIP7002.WITHDRAWAL_REQUEST_PREDEPLOY_ADDRESS] = Account(\n        code=modified_code,\n        nonce=1,\n        balance=0,\n    )\n\n    # given a list of withdrawal requests construct a withdrawal request\n    # transaction\n    withdrawal_request_transaction = WithdrawalRequestTransaction(requests=requests_list)\n    # prepare withdrawal senders\n    withdrawal_request_transaction.update_pre(pre=pre)\n    # get transaction list\n    txs: List[Transaction] = withdrawal_request_transaction.transactions()\n\n    blockchain_test(\n        pre=pre,\n        blocks=[\n            Block(\n                txs=txs,\n                requests_hash=Requests(*requests_list),\n            ),\n        ],\n        post={},\n    )\n\n\n@pytest.mark.parametrize(\n    \"system_contract\", [Address(Spec_EIP7002.WITHDRAWAL_REQUEST_PREDEPLOY_ADDRESS)]\n)\n@pytest.mark.pre_alloc_group(\"separate\", reason=\"Deploys custom withdrawal contract bytecode\")\n@generate_system_contract_error_test(  # type: ignore[arg-type]\n    max_gas_limit=Spec_EIP7002.SYSTEM_CALL_GAS_LIMIT,\n)\ndef test_system_contract_errors() -> None:\n    \"\"\"\n    Test system contract raising different errors when called by the system\n    account at the end of the block execution.\n\n    To see the list of generated tests, please refer to the\n    `generate_system_contract_error_test` decorator definition.\n    \"\"\"\n    pass\n"
  },
  {
    "path": "tests/prague/eip7002_el_triggerable_withdrawals/test_withdrawal_requests.py",
    "content": "\"\"\"\nTests [EIP-7002: Execution layer triggerable withdrawals](https://eips.ethereum.org/EIPS/eip-7002).\n\"\"\"\n\nfrom typing import List\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    Address,\n    Alloc,\n    Block,\n    BlockchainTestFiller,\n    BlockException,\n    Environment,\n    Header,\n    Macros,\n    Requests,\n    TestAddress,\n    TestAddress2,\n)\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom .helpers import (\n    WithdrawalRequest,\n    WithdrawalRequestContract,\n    WithdrawalRequestInteractionBase,\n    WithdrawalRequestTransaction,\n    get_n_fee_increment_blocks,\n)\nfrom .spec import Spec, ref_spec_7002\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_7002.git_path\nREFERENCE_SPEC_VERSION = ref_spec_7002.version\n\npytestmark = pytest.mark.valid_from(\"Prague\")\n\n\n@pytest.mark.parametrize(\n    \"blocks_withdrawal_requests\",\n    [\n        pytest.param(\n            [\n                [\n                    WithdrawalRequestTransaction(\n                        requests=[\n                            WithdrawalRequest(\n                                validator_pubkey=0x01,\n                                amount=0,\n                                fee=Spec.get_fee(0),\n                            )\n                        ],\n                    ),\n                ],\n            ],\n            id=\"single_block_single_withdrawal_request_from_eoa\",\n        ),\n        pytest.param(\n            [\n                [\n                    WithdrawalRequestTransaction(\n                        requests=[\n                            WithdrawalRequest(\n                                validator_pubkey=0x01,\n                                amount=0,\n                                fee=0,\n                                valid=False,\n                            )\n                        ],\n                    ),\n                ],\n            ],\n            id=\"single_block_single_withdrawal_request_from_eoa_insufficient_fee\",\n        ),\n        pytest.param(\n            [\n                [\n                    WithdrawalRequestTransaction(\n                        requests=[\n                            WithdrawalRequest(\n                                validator_pubkey=0x01,\n                                amount=0,\n                                fee=Spec.get_fee(0),\n                                calldata_modifier=lambda x: x[:-1],\n                                valid=False,\n                            )\n                        ],\n                    ),\n                ],\n            ],\n            id=\"single_block_single_withdrawal_request_from_eoa_input_too_short\",\n        ),\n        pytest.param(\n            [\n                [\n                    WithdrawalRequestTransaction(\n                        requests=[\n                            WithdrawalRequest(\n                                validator_pubkey=0x01,\n                                amount=0,\n                                fee=Spec.get_fee(0),\n                                calldata_modifier=lambda x: x + b\"\\x00\",\n                                valid=False,\n                            )\n                        ],\n                    ),\n                ],\n            ],\n            id=\"single_block_single_withdrawal_request_from_eoa_input_too_long\",\n        ),\n        pytest.param(\n            [\n                [\n                    WithdrawalRequestTransaction(\n                        requests=[\n                            WithdrawalRequest(\n                                validator_pubkey=0x01,\n                                amount=0,\n                                fee=Spec.get_fee(0),\n                            ),\n                            WithdrawalRequest(\n                                validator_pubkey=0x02,\n                                amount=Spec.MAX_AMOUNT - 1,\n                                fee=Spec.get_fee(0),\n                            ),\n                        ],\n                    ),\n                ],\n            ],\n            id=\"single_block_multiple_withdrawal_request_from_same_eoa\",\n        ),\n        pytest.param(\n            [\n                [\n                    WithdrawalRequestTransaction(\n                        requests=[\n                            WithdrawalRequest(\n                                validator_pubkey=0x01,\n                                amount=0,\n                                fee=Spec.get_fee(0),\n                            )\n                        ],\n                    ),\n                    WithdrawalRequestTransaction(\n                        requests=[\n                            WithdrawalRequest(\n                                validator_pubkey=0x02,\n                                amount=Spec.MAX_AMOUNT - 1,\n                                fee=Spec.get_fee(0),\n                            )\n                        ],\n                    ),\n                ],\n            ],\n            id=\"single_block_multiple_withdrawal_request_from_different_eoa\",\n        ),\n        pytest.param(\n            [\n                [\n                    WithdrawalRequestTransaction(\n                        requests=[\n                            WithdrawalRequest(\n                                validator_pubkey=i + 1,\n                                amount=0 if i % 2 == 0 else Spec.MAX_AMOUNT,\n                                fee=Spec.get_fee(0),\n                            )\n                            for i in range(Spec.MAX_WITHDRAWAL_REQUESTS_PER_BLOCK)\n                        ],\n                    )\n                ],\n            ],\n            id=\"single_block_max_withdrawal_requests_from_eoa\",\n        ),\n        pytest.param(\n            [\n                [\n                    WithdrawalRequestTransaction(\n                        requests=[\n                            WithdrawalRequest(\n                                validator_pubkey=0x01,\n                                amount=0,\n                                fee=0,\n                            ),\n                            WithdrawalRequest(\n                                validator_pubkey=0x02,\n                                amount=Spec.MAX_AMOUNT - 1,\n                                fee=Spec.get_fee(0),\n                            ),\n                        ]\n                    ),\n                ],\n            ],\n            id=\"single_block_multiple_withdrawal_request_first_reverts\",\n        ),\n        pytest.param(\n            [\n                [\n                    WithdrawalRequestTransaction(\n                        requests=[\n                            WithdrawalRequest(\n                                validator_pubkey=0x01,\n                                amount=0,\n                                fee=Spec.get_fee(0),\n                            ),\n                            WithdrawalRequest(\n                                validator_pubkey=0x02,\n                                amount=Spec.MAX_AMOUNT - 1,\n                                fee=0,\n                            ),\n                        ]\n                    ),\n                ],\n            ],\n            id=\"single_block_multiple_withdrawal_request_last_reverts\",\n        ),\n        pytest.param(\n            [\n                [\n                    WithdrawalRequestTransaction(\n                        requests=[\n                            WithdrawalRequest(\n                                validator_pubkey=0x01,\n                                amount=0,\n                                fee=Spec.get_fee(0),\n                                # Value obtained from trace minus one\n                                gas_limit=114_247 - 1,\n                                valid=False,\n                            ),\n                            WithdrawalRequest(\n                                validator_pubkey=0x02,\n                                amount=0,\n                                fee=Spec.get_fee(0),\n                            ),\n                        ]\n                    ),\n                ],\n            ],\n            id=\"single_block_multiple_withdrawal_request_first_oog\",\n        ),\n        pytest.param(\n            [\n                [\n                    WithdrawalRequestTransaction(\n                        requests=[\n                            WithdrawalRequest(\n                                validator_pubkey=0x01,\n                                amount=0,\n                                fee=Spec.get_fee(0),\n                            ),\n                            WithdrawalRequest(\n                                validator_pubkey=0x02,\n                                amount=0,\n                                fee=Spec.get_fee(0),\n                                # Value obtained from trace minus one\n                                gas_limit=80_047 - 1,\n                                valid=False,\n                            ),\n                        ]\n                    ),\n                ],\n            ],\n            id=\"single_block_multiple_withdrawal_request_last_oog\",\n        ),\n        pytest.param(\n            [\n                [\n                    WithdrawalRequestTransaction(\n                        requests=[\n                            WithdrawalRequest(\n                                validator_pubkey=i + 1,\n                                amount=0 if i % 2 == 0 else Spec.MAX_AMOUNT,\n                                fee=Spec.get_fee(0),\n                            )\n                            for i in range(Spec.MAX_WITHDRAWAL_REQUESTS_PER_BLOCK * 2)\n                        ]\n                    )\n                ],\n            ],\n            id=\"multiple_block_above_max_withdrawal_requests_from_eoa\",\n        ),\n        pytest.param(\n            [\n                [\n                    WithdrawalRequestContract(\n                        requests=[\n                            WithdrawalRequest(\n                                validator_pubkey=0x01,\n                                amount=0,\n                                fee=Spec.get_fee(0),\n                            ),\n                        ]\n                    ),\n                ],\n            ],\n            id=\"single_block_single_withdrawal_request_from_contract\",\n        ),\n        pytest.param(\n            [\n                [\n                    WithdrawalRequestContract(\n                        requests=[\n                            WithdrawalRequest(\n                                validator_pubkey=0x01,\n                                amount=0,\n                                fee=Spec.get_fee(0),\n                            ),\n                        ],\n                        call_depth=3,\n                    ),\n                ],\n            ],\n            id=\"single_block_single_withdrawal_request_from_contract_call_depth_3\",\n        ),\n        pytest.param(\n            [\n                [\n                    WithdrawalRequestContract(\n                        requests=[\n                            WithdrawalRequest(\n                                validator_pubkey=0x01,\n                                amount=0,\n                                fee=Spec.get_fee(0),\n                            ),\n                        ],\n                        call_depth=264,\n                        tx_gas_limit=16_777_216,\n                    ),\n                ],\n            ],\n            id=\"single_block_single_withdrawal_request_from_contract_call_depth_high\",\n        ),\n        pytest.param(\n            [\n                [\n                    WithdrawalRequestContract(\n                        requests=[\n                            WithdrawalRequest(\n                                validator_pubkey=i + 1,\n                                amount=Spec.MAX_AMOUNT - 1 if i % 2 == 0 else 0,\n                                fee=Spec.get_fee(0),\n                            )\n                            for i in range(Spec.MAX_WITHDRAWAL_REQUESTS_PER_BLOCK)\n                        ],\n                    ),\n                ],\n            ],\n            id=\"single_block_multiple_withdrawal_requests_from_contract\",\n        ),\n        pytest.param(\n            [\n                [\n                    WithdrawalRequestContract(\n                        requests=[\n                            WithdrawalRequest(\n                                validator_pubkey=1,\n                                amount=Spec.MAX_AMOUNT,\n                                fee=0,\n                            )\n                        ]\n                        + [\n                            WithdrawalRequest(\n                                validator_pubkey=i + 1,\n                                amount=Spec.MAX_AMOUNT - 1 if i % 2 == 0 else 0,\n                                fee=Spec.get_fee(0),\n                            )\n                            for i in range(1, Spec.MAX_WITHDRAWAL_REQUESTS_PER_BLOCK)\n                        ],\n                    ),\n                ],\n            ],\n            id=\"single_block_multiple_withdrawal_requests_from_contract_first_reverts\",\n        ),\n        pytest.param(\n            [\n                [\n                    WithdrawalRequestContract(\n                        requests=[\n                            WithdrawalRequest(\n                                validator_pubkey=i + 1,\n                                amount=Spec.MAX_AMOUNT - 1 if i % 2 == 0 else 0,\n                                fee=Spec.get_fee(0),\n                            )\n                            for i in range(Spec.MAX_WITHDRAWAL_REQUESTS_PER_BLOCK - 1)\n                        ]\n                        + [\n                            WithdrawalRequest(\n                                validator_pubkey=Spec.MAX_WITHDRAWAL_REQUESTS_PER_BLOCK,\n                                amount=(\n                                    Spec.MAX_AMOUNT - 1\n                                    if (Spec.MAX_WITHDRAWAL_REQUESTS_PER_BLOCK - 1) % 2 == 0\n                                    else 0\n                                ),\n                                fee=0,\n                            )\n                        ],\n                    ),\n                ],\n            ],\n            id=\"single_block_multiple_withdrawal_requests_from_contract_last_reverts\",\n        ),\n        pytest.param(\n            [\n                [\n                    WithdrawalRequestContract(\n                        requests=[\n                            WithdrawalRequest(\n                                validator_pubkey=1,\n                                amount=Spec.MAX_AMOUNT - 1,\n                                gas_limit=100,\n                                fee=Spec.get_fee(0),\n                                valid=False,\n                            )\n                        ]\n                        + [\n                            WithdrawalRequest(\n                                validator_pubkey=i + 1,\n                                amount=Spec.MAX_AMOUNT - 1 if i % 2 == 0 else 0,\n                                gas_limit=1_000_000,\n                                fee=Spec.get_fee(0),\n                                valid=True,\n                            )\n                            for i in range(1, Spec.MAX_WITHDRAWAL_REQUESTS_PER_BLOCK)\n                        ],\n                    ),\n                ],\n            ],\n            id=\"single_block_multiple_withdrawal_requests_from_contract_first_oog\",\n        ),\n        pytest.param(\n            [\n                [\n                    WithdrawalRequestContract(\n                        requests=[\n                            WithdrawalRequest(\n                                validator_pubkey=i + 1,\n                                amount=Spec.MAX_AMOUNT - 1 if i % 2 == 0 else 0,\n                                fee=Spec.get_fee(0),\n                                gas_limit=1_000_000,\n                                valid=True,\n                            )\n                            for i in range(Spec.MAX_WITHDRAWAL_REQUESTS_PER_BLOCK)\n                        ]\n                        + [\n                            WithdrawalRequest(\n                                validator_pubkey=Spec.MAX_WITHDRAWAL_REQUESTS_PER_BLOCK,\n                                amount=Spec.MAX_AMOUNT - 1,\n                                gas_limit=100,\n                                fee=Spec.get_fee(0),\n                                valid=False,\n                            )\n                        ],\n                    ),\n                ],\n            ],\n            id=\"single_block_multiple_withdrawal_requests_from_contract_last_oog\",\n        ),\n        pytest.param(\n            [\n                [\n                    WithdrawalRequestContract(\n                        requests=[\n                            WithdrawalRequest(\n                                validator_pubkey=i + 1,\n                                amount=Spec.MAX_AMOUNT - 1 if i % 2 == 0 else 0,\n                                fee=Spec.get_fee(0),\n                                valid=False,\n                            )\n                            for i in range(Spec.MAX_WITHDRAWAL_REQUESTS_PER_BLOCK)\n                        ],\n                        extra_code=Op.REVERT(0, 0),\n                    ),\n                ],\n            ],\n            id=\"single_block_multiple_withdrawal_requests_from_contract_caller_reverts\",\n        ),\n        pytest.param(\n            [\n                [\n                    WithdrawalRequestContract(\n                        requests=[\n                            WithdrawalRequest(\n                                validator_pubkey=i + 1,\n                                amount=Spec.MAX_AMOUNT - 1 if i % 2 == 0 else 0,\n                                fee=Spec.get_fee(0),\n                                valid=False,\n                            )\n                            for i in range(Spec.MAX_WITHDRAWAL_REQUESTS_PER_BLOCK)\n                        ],\n                        extra_code=Macros.OOG(),\n                    ),\n                ],\n            ],\n            id=\"single_block_multiple_withdrawal_requests_from_contract_caller_oog\",\n        ),\n        pytest.param(\n            # Test the first 50 fee increments\n            get_n_fee_increment_blocks(50),\n            id=\"multiple_block_fee_increments\",\n        ),\n        pytest.param(\n            [\n                [\n                    WithdrawalRequestContract(\n                        requests=[\n                            WithdrawalRequest(\n                                validator_pubkey=0x01,\n                                amount=0,\n                                fee=Spec.get_fee(0),\n                                valid=False,\n                            )\n                        ],\n                        call_type=Op.DELEGATECALL,\n                    ),\n                    WithdrawalRequestContract(\n                        requests=[\n                            WithdrawalRequest(\n                                validator_pubkey=0x01,\n                                amount=0,\n                                fee=Spec.get_fee(0),\n                                valid=False,\n                            )\n                        ],\n                        call_type=Op.STATICCALL,\n                    ),\n                    WithdrawalRequestContract(\n                        requests=[\n                            WithdrawalRequest(\n                                validator_pubkey=0x01,\n                                amount=0,\n                                fee=Spec.get_fee(0),\n                                valid=False,\n                            )\n                        ],\n                        call_type=Op.CALLCODE,\n                    ),\n                ],\n            ],\n            id=\"single_block_single_withdrawal_request_delegatecall_staticcall_callcode\",\n        ),\n        pytest.param(\n            [\n                [\n                    WithdrawalRequestContract(\n                        requests=[\n                            WithdrawalRequest(\n                                validator_pubkey=0x01,\n                                amount=0,\n                                fee=Spec.get_fee(0),\n                                valid=False,\n                            )\n                        ],\n                        call_type=Op.DELEGATECALL,\n                        call_depth=3,\n                    ),\n                    WithdrawalRequestContract(\n                        requests=[\n                            WithdrawalRequest(\n                                validator_pubkey=0x01,\n                                amount=0,\n                                fee=Spec.get_fee(0),\n                                valid=False,\n                            )\n                        ],\n                        call_type=Op.STATICCALL,\n                        call_depth=3,\n                    ),\n                    WithdrawalRequestContract(\n                        requests=[\n                            WithdrawalRequest(\n                                validator_pubkey=0x01,\n                                amount=0,\n                                fee=Spec.get_fee(0),\n                                valid=False,\n                            )\n                        ],\n                        call_type=Op.CALLCODE,\n                        call_depth=3,\n                    ),\n                ],\n            ],\n            id=\"single_block_single_withdrawal_request_delegatecall_staticcall_callcode_call_depth_3\",\n        ),\n        pytest.param(\n            [\n                [\n                    WithdrawalRequestContract(\n                        requests=[\n                            WithdrawalRequest(\n                                validator_pubkey=0x01,\n                                amount=0,\n                                fee=Spec.get_fee(0),\n                                valid=False,\n                            )\n                        ],\n                        call_type=Op.DELEGATECALL,\n                        call_depth=1024,\n                    ),\n                    WithdrawalRequestContract(\n                        requests=[\n                            WithdrawalRequest(\n                                validator_pubkey=0x01,\n                                amount=0,\n                                fee=Spec.get_fee(0),\n                                valid=False,\n                            )\n                        ],\n                        call_type=Op.STATICCALL,\n                        call_depth=1024,\n                    ),\n                    WithdrawalRequestContract(\n                        requests=[\n                            WithdrawalRequest(\n                                validator_pubkey=0x01,\n                                amount=0,\n                                fee=Spec.get_fee(0),\n                                valid=False,\n                            )\n                        ],\n                        call_type=Op.CALLCODE,\n                        call_depth=1024,\n                    ),\n                ],\n            ],\n            id=\"single_block_single_withdrawal_request_delegatecall_staticcall_callcode_call_depth_high\",\n        ),\n    ],\n)\n@pytest.mark.pre_alloc_group(\n    \"withdrawal_requests\", reason=\"Tests standard withdrawal request functionality\"\n)\ndef test_withdrawal_requests(\n    blockchain_test: BlockchainTestFiller,\n    blocks: List[Block],\n    pre: Alloc,\n) -> None:\n    \"\"\"Test making a withdrawal request to the beacon chain.\"\"\"\n    blockchain_test(\n        genesis_environment=Environment(),\n        pre=pre,\n        post={},\n        blocks=blocks,\n    )\n\n\n@pytest.mark.parametrize(\n    \"requests,block_body_override_requests,exception\",\n    [\n        pytest.param(\n            [],\n            [\n                WithdrawalRequest(\n                    validator_pubkey=0x01,\n                    amount=0,\n                    source_address=Address(0),\n                ),\n            ],\n            BlockException.INVALID_REQUESTS,\n            id=\"no_withdrawals_non_empty_requests_list\",\n        ),\n        pytest.param(\n            [\n                WithdrawalRequestTransaction(\n                    requests=[\n                        WithdrawalRequest(\n                            validator_pubkey=0x01,\n                            amount=0,\n                            fee=Spec.get_fee(0),\n                        ),\n                    ]\n                ),\n            ],\n            [],\n            BlockException.INVALID_REQUESTS,\n            id=\"single_withdrawal_request_empty_requests_list\",\n        ),\n        pytest.param(\n            [\n                WithdrawalRequestTransaction(\n                    requests=[\n                        WithdrawalRequest(\n                            validator_pubkey=0x01,\n                            amount=0,\n                            fee=Spec.get_fee(0),\n                        ),\n                    ]\n                ),\n            ],\n            [\n                WithdrawalRequest(\n                    validator_pubkey=0x02,\n                    amount=0,\n                    source_address=TestAddress,\n                )\n            ],\n            BlockException.INVALID_REQUESTS,\n            id=\"single_withdrawal_request_public_key_mismatch\",\n        ),\n        pytest.param(\n            [\n                WithdrawalRequestTransaction(\n                    requests=[\n                        WithdrawalRequest(\n                            validator_pubkey=0x01,\n                            amount=0,\n                            fee=Spec.get_fee(0),\n                        )\n                    ],\n                ),\n            ],\n            [\n                WithdrawalRequest(\n                    validator_pubkey=0x01,\n                    amount=1,\n                    source_address=TestAddress,\n                )\n            ],\n            BlockException.INVALID_REQUESTS,\n            id=\"single_withdrawal_request_amount_mismatch\",\n        ),\n        pytest.param(\n            [\n                WithdrawalRequestTransaction(\n                    requests=[\n                        WithdrawalRequest(\n                            validator_pubkey=0x01,\n                            amount=0,\n                            fee=Spec.get_fee(0),\n                        )\n                    ],\n                ),\n            ],\n            [\n                WithdrawalRequest(\n                    validator_pubkey=0x01,\n                    amount=0,\n                    source_address=TestAddress2,\n                )\n            ],\n            BlockException.INVALID_REQUESTS,\n            id=\"single_withdrawal_request_source_address_mismatch\",\n        ),\n        pytest.param(\n            [\n                WithdrawalRequestTransaction(\n                    requests=[\n                        WithdrawalRequest(\n                            validator_pubkey=0x01,\n                            amount=0,\n                            fee=Spec.get_fee(0),\n                        ),\n                        WithdrawalRequest(\n                            validator_pubkey=0x02,\n                            amount=0,\n                            fee=Spec.get_fee(0),\n                        ),\n                    ],\n                ),\n            ],\n            [\n                WithdrawalRequest(\n                    validator_pubkey=0x02,\n                    amount=0,\n                    source_address=TestAddress,\n                ),\n                WithdrawalRequest(\n                    validator_pubkey=0x01,\n                    amount=0,\n                    source_address=TestAddress,\n                ),\n            ],\n            BlockException.INVALID_REQUESTS,\n            id=\"two_withdrawal_requests_out_of_order\",\n        ),\n        pytest.param(\n            [\n                WithdrawalRequestTransaction(\n                    requests=[\n                        WithdrawalRequest(\n                            validator_pubkey=0x01,\n                            amount=0,\n                            fee=Spec.get_fee(0),\n                        )\n                    ],\n                ),\n            ],\n            [\n                WithdrawalRequest(\n                    validator_pubkey=0x01,\n                    amount=0,\n                    source_address=TestAddress,\n                ),\n                WithdrawalRequest(\n                    validator_pubkey=0x01,\n                    amount=0,\n                    source_address=TestAddress,\n                ),\n            ],\n            BlockException.INVALID_REQUESTS,\n            id=\"single_withdrawal_requests_duplicate_in_requests_list\",\n        ),\n    ],\n)\n@pytest.mark.exception_test\n@pytest.mark.pre_alloc_group(\n    \"withdrawal_requests\", reason=\"Tests standard withdrawal request functionality\"\n)\ndef test_withdrawal_requests_negative(\n    pre: Alloc,\n    fork: Fork,\n    blockchain_test: BlockchainTestFiller,\n    requests: List[WithdrawalRequestInteractionBase],\n    block_body_override_requests: List[WithdrawalRequest],\n    exception: BlockException,\n) -> None:\n    \"\"\"\n    Test blocks where the requests list and the actual withdrawal requests that\n    happened in the block's transactions do not match.\n    \"\"\"\n    for d in requests:\n        d.update_pre(pre)\n\n    # No previous block so fee is the base\n    fee = 1\n    current_block_requests = []\n    for w in requests:\n        current_block_requests += w.valid_requests(fee)\n    included_requests = current_block_requests[: Spec.MAX_WITHDRAWAL_REQUESTS_PER_BLOCK]\n\n    blockchain_test(\n        genesis_environment=Environment(),\n        pre=pre,\n        post={},\n        blocks=[\n            Block(\n                txs=sum((r.transactions() for r in requests), []),\n                header_verify=Header(\n                    requests_hash=Requests(\n                        *included_requests,\n                    ),\n                ),\n                requests=(\n                    Requests(\n                        *block_body_override_requests,\n                    ).requests_list\n                    if block_body_override_requests is not None\n                    else None\n                ),\n                exception=exception,\n            )\n        ],\n    )\n"
  },
  {
    "path": "tests/prague/eip7002_el_triggerable_withdrawals/test_withdrawal_requests_during_fork.py",
    "content": "\"\"\"\nTests [EIP-7002: Execution layer triggerable withdrawals](https://eips.ethereum.org/EIPS/eip-7002).\n\"\"\"\n\nfrom os.path import realpath\nfrom pathlib import Path\nfrom typing import List\n\nimport pytest\n\nfrom ethereum_test_tools import (\n    Account,\n    Address,\n    Alloc,\n    Block,\n    BlockchainTestFiller,\n    Environment,\n    Transaction,\n)\n\nfrom .helpers import WithdrawalRequest, WithdrawalRequestTransaction\nfrom .spec import Spec, ref_spec_7002\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_7002.git_path\nREFERENCE_SPEC_VERSION = ref_spec_7002.version\n\npytestmark = pytest.mark.valid_at_transition_to(\"Prague\")\n\nBLOCKS_BEFORE_FORK = 2\n\n\n@pytest.mark.parametrize(\n    \"blocks_withdrawal_requests\",\n    [\n        pytest.param(\n            [\n                [],  # No withdrawal requests, but we deploy the contract\n                [\n                    WithdrawalRequestTransaction(\n                        requests=[\n                            WithdrawalRequest(\n                                validator_pubkey=0x01,\n                                amount=0,\n                                fee=Spec.get_fee(10),\n                                # Pre-fork withdrawal request\n                                valid=False,\n                            )\n                        ],\n                    ),\n                ],\n                [\n                    WithdrawalRequestTransaction(\n                        requests=[\n                            WithdrawalRequest(\n                                validator_pubkey=0x02,\n                                amount=0,\n                                fee=Spec.get_fee(10),\n                                # First post-fork withdrawal request, will not\n                                # be included because the inhibitor is cleared\n                                # at the end of the block\n                                valid=False,\n                            )\n                        ],\n                    ),\n                ],\n                [\n                    WithdrawalRequestTransaction(\n                        requests=[\n                            WithdrawalRequest(\n                                validator_pubkey=0x03,\n                                amount=0,\n                                fee=Spec.get_fee(0),\n                                # First withdrawal that is valid\n                                valid=True,\n                            )\n                        ],\n                    ),\n                ],\n            ],\n            id=\"one_valid_request_second_block_after_fork\",\n        ),\n    ],\n)\n@pytest.mark.parametrize(\"timestamp\", [15_000 - BLOCKS_BEFORE_FORK], ids=[\"\"])\n@pytest.mark.pre_alloc_group(\n    \"separate\", reason=\"Deploys withdrawal system contract at fork transition\"\n)\ndef test_withdrawal_requests_during_fork(\n    blockchain_test: BlockchainTestFiller,\n    blocks: List[Block],\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    Test making a withdrawal request to the beacon chain at the time of the\n    fork.\n    \"\"\"\n    # We need to delete the deployed contract that comes by default in the pre\n    # state.\n    pre[Spec.WITHDRAWAL_REQUEST_PREDEPLOY_ADDRESS] = Account(\n        balance=0,\n        code=bytes(),\n        nonce=0,\n        storage={},\n    )\n\n    with open(Path(realpath(__file__)).parent / \"contract_deploy_tx.json\", mode=\"r\") as f:\n        deploy_tx = Transaction.model_validate_json(f.read()).with_signature_and_sender()\n\n    deployer_address = deploy_tx.sender\n    assert deployer_address is not None\n    assert Address(deployer_address) == Spec.WITHDRAWAL_REQUEST_PREDEPLOY_SENDER\n\n    tx_gas_price = deploy_tx.gas_price\n    assert tx_gas_price is not None\n    deployer_required_balance = deploy_tx.gas_limit * tx_gas_price\n\n    pre.fund_address(Spec.WITHDRAWAL_REQUEST_PREDEPLOY_SENDER, deployer_required_balance)\n\n    # Append the deployment transaction to the first block\n    blocks[0].txs.append(deploy_tx)\n\n    blockchain_test(\n        genesis_environment=Environment(),\n        pre=pre,\n        post={},\n        blocks=blocks,\n    )\n"
  },
  {
    "path": "tests/prague/eip7251_consolidations/__init__.py",
    "content": "\"\"\"Cross-client EIP-7251 Tests.\"\"\"\n"
  },
  {
    "path": "tests/prague/eip7251_consolidations/conftest.py",
    "content": "\"\"\"Fixtures for the EIP-7251 consolidations tests.\"\"\"\n\nfrom itertools import zip_longest\nfrom typing import List\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import Alloc, Block, Header, Requests\n\nfrom .helpers import ConsolidationRequest, ConsolidationRequestInteractionBase\nfrom .spec import Spec\n\n\n@pytest.fixture\ndef update_pre(\n    pre: Alloc,\n    blocks_consolidation_requests: List[List[ConsolidationRequestInteractionBase]],\n) -> None:\n    \"\"\"\n    Init state of the accounts. Every deposit transaction defines their own\n    pre-state requirements, and this fixture aggregates them all.\n    \"\"\"\n    for requests in blocks_consolidation_requests:\n        for r in requests:\n            r.update_pre(pre)\n\n\n@pytest.fixture\ndef included_requests(\n    update_pre: None,  # Fixture is used for its side effects\n    blocks_consolidation_requests: List[List[ConsolidationRequestInteractionBase]],\n) -> List[List[ConsolidationRequest]]:\n    \"\"\"\n    Return the list of consolidation requests that should be included in each\n    block.\n    \"\"\"\n    excess_consolidation_requests = 0\n    carry_over_requests: List[ConsolidationRequest] = []\n    per_block_included_requests: List[List[ConsolidationRequest]] = []\n    for block_consolidation_requests in blocks_consolidation_requests:\n        # Get fee for the current block\n        current_minimum_fee = Spec.get_fee(excess_consolidation_requests)\n\n        # With the fee, get the valid consolidation requests for the current\n        # block\n        current_block_requests = []\n        for w in block_consolidation_requests:\n            current_block_requests += w.valid_requests(current_minimum_fee)\n\n        # Get the consolidation requests that should be included in the block\n        pending_requests = carry_over_requests + current_block_requests\n        per_block_included_requests.append(\n            pending_requests[: Spec.MAX_CONSOLIDATION_REQUESTS_PER_BLOCK]\n        )\n        carry_over_requests = pending_requests[Spec.MAX_CONSOLIDATION_REQUESTS_PER_BLOCK :]\n\n        # Update the excess consolidation requests\n        excess_consolidation_requests = Spec.get_excess_consolidation_requests(\n            excess_consolidation_requests,\n            len(current_block_requests),\n        )\n\n    while carry_over_requests:\n        # Keep adding blocks until all consolidation requests are included\n        per_block_included_requests.append(\n            carry_over_requests[: Spec.MAX_CONSOLIDATION_REQUESTS_PER_BLOCK]\n        )\n        carry_over_requests = carry_over_requests[Spec.MAX_CONSOLIDATION_REQUESTS_PER_BLOCK :]\n\n    return per_block_included_requests\n\n\n@pytest.fixture\ndef timestamp() -> int:\n    \"\"\"Return the timestamp for the first block.\"\"\"\n    return 1\n\n\n@pytest.fixture\ndef blocks(\n    fork: Fork,\n    update_pre: None,  # Fixture is used for its side effects\n    blocks_consolidation_requests: List[List[ConsolidationRequestInteractionBase]],\n    included_requests: List[List[ConsolidationRequest]],\n    timestamp: int,\n) -> List[Block]:\n    \"\"\"Return the list of blocks that should be included in the test.\"\"\"\n    blocks: List[Block] = []\n\n    for block_requests, block_included_requests in zip_longest(  # type: ignore\n        blocks_consolidation_requests,\n        included_requests,\n        fillvalue=[],\n    ):\n        header_verify: Header | None = None\n        if fork.header_requests_required(\n            block_number=len(blocks) + 1,\n            timestamp=timestamp,\n        ):\n            header_verify = Header(requests_hash=Requests(*block_included_requests))\n        else:\n            assert not block_included_requests\n        blocks.append(\n            Block(\n                txs=sum((r.transactions() for r in block_requests), []),\n                header_verify=header_verify,\n                timestamp=timestamp,\n            )\n        )\n        timestamp += 1\n\n    return blocks + [\n        Block(\n            header_verify=Header(requests_hash=Requests()),\n            timestamp=timestamp,\n        )\n    ]  # Add an empty block at the end to verify that no more consolidation\n    # requests are included\n"
  },
  {
    "path": "tests/prague/eip7251_consolidations/contract_deploy_tx.json",
    "content": "{\n    \"type\": \"0x0\",\n    \"nonce\": \"0x0\",\n    \"to\": null,\n    \"gasLimit\": \"0x3d090\",\n    \"gasPrice\": \"0xe8d4a51000\",\n    \"maxPriorityFeePerGas\": null,\n    \"maxFeePerGas\": null,\n    \"value\": \"0x0\",\n    \"input\": \"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5f5561019e80602d5f395ff33373fffffffffffffffffffffffffffffffffffffffe1460d35760115f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1461019a57600182026001905f5b5f82111560685781019083028483029004916001019190604d565b9093900492505050366060146088573661019a573461019a575f5260205ff35b341061019a57600154600101600155600354806004026004013381556001015f358155600101602035815560010160403590553360601b5f5260605f60143760745fa0600101600355005b6003546002548082038060021160e7575060025b5f5b8181146101295782810160040260040181607402815460601b815260140181600101548152602001816002015481526020019060030154905260010160e9565b910180921461013b5790600255610146565b90505f6002555f6003555b5f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff141561017357505f5b6001546001828201116101885750505f61018e565b01600190035b5f555f6001556074025ff35b5f5ffd\",\n    \"v\": \"0x1b\",\n    \"r\": \"0x539\",\n    \"s\": \"0x0c0730f92dc275b663d377a7cbb141b6600052\",\n    \"hash\": \"0x379269d571beff3ed1d8eba3abb24076a7267b0eaf0cc66d728fb0544f5a690d\",\n    \"protected\": false,\n    \"sender\": \"0x13d1913d623E6a9D8811736359E50fD31Fe54fCA\"\n  }"
  },
  {
    "path": "tests/prague/eip7251_consolidations/helpers.py",
    "content": "\"\"\"Helpers for the EIP-7251 consolidation tests.\"\"\"\n\nfrom dataclasses import dataclass, field\nfrom functools import cached_property\nfrom itertools import count\nfrom typing import Callable, ClassVar, List\n\nfrom ethereum_test_tools import EOA, Address, Alloc, Bytecode, Transaction\nfrom ethereum_test_tools import ConsolidationRequest as ConsolidationRequestBase\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom .spec import Spec\n\n\nclass ConsolidationRequest(ConsolidationRequestBase):\n    \"\"\"Class used to describe a consolidation request in a test.\"\"\"\n\n    fee: int = 0\n    \"\"\"Fee to be paid to the system contract for the consolidation request.\"\"\"\n    valid: bool = True\n    \"\"\"Whether the consolidation request is valid or not.\"\"\"\n    gas_limit: int = 1_000_000\n    \"\"\"Gas limit for the call.\"\"\"\n    calldata_modifier: Callable[[bytes], bytes] = lambda x: x\n    \"\"\"Calldata modifier function.\"\"\"\n\n    interaction_contract_address: ClassVar[Address] = Address(\n        Spec.CONSOLIDATION_REQUEST_PREDEPLOY_ADDRESS\n    )\n\n    @property\n    def value(self) -> int:\n        \"\"\"\n        Return the value of the call to the consolidation request contract,\n        equal to the fee to be paid.\n        \"\"\"\n        return self.fee\n\n    @cached_property\n    def calldata(self) -> bytes:\n        \"\"\"\n        Return the calldata needed to call the consolidation request contract\n        and make the consolidation.\n        \"\"\"\n        return self.calldata_modifier(self.source_pubkey + self.target_pubkey)\n\n    def with_source_address(self, source_address: Address) -> \"ConsolidationRequest\":\n        \"\"\"\n        Return a new instance of the consolidation request with the source\n        address set.\n        \"\"\"\n        return self.copy(source_address=source_address)\n\n\n@dataclass(kw_only=True)\nclass ConsolidationRequestInteractionBase:\n    \"\"\"\n    Base class for all types of consolidation transactions we want to test.\n    \"\"\"\n\n    sender_balance: int = 1_000_000_000_000_000_000\n    \"\"\"Balance of the account that sends the transaction.\"\"\"\n    sender_account: EOA | None = None\n    \"\"\"Account that will send the transaction.\"\"\"\n    requests: List[ConsolidationRequest]\n    \"\"\"Consolidation requests to be included in the block.\"\"\"\n\n    def transactions(self) -> List[Transaction]:\n        \"\"\"Return a transaction for the consolidation request.\"\"\"\n        raise NotImplementedError\n\n    def update_pre(self, pre: Alloc) -> None:\n        \"\"\"Return the pre-state of the account.\"\"\"\n        raise NotImplementedError\n\n    def valid_requests(self, current_minimum_fee: int) -> List[ConsolidationRequest]:\n        \"\"\"\n        Return the list of consolidation requests that should be valid in the\n        block.\n        \"\"\"\n        raise NotImplementedError\n\n\n@dataclass(kw_only=True)\nclass ConsolidationRequestTransaction(ConsolidationRequestInteractionBase):\n    \"\"\"\n    Class to describe a consolidation request originated from an externally\n    owned account.\n    \"\"\"\n\n    def transactions(self) -> List[Transaction]:\n        \"\"\"Return a transaction for the consolidation request.\"\"\"\n        assert self.sender_account is not None, \"Sender account not initialized\"\n        return [\n            Transaction(\n                gas_limit=request.gas_limit,\n                gas_price=1_000_000_000,\n                to=request.interaction_contract_address,\n                value=request.value,\n                data=request.calldata,\n                sender=self.sender_account,\n            )\n            for request in self.requests\n        ]\n\n    def update_pre(self, pre: Alloc) -> None:\n        \"\"\"Return the pre-state of the account.\"\"\"\n        self.sender_account = pre.fund_eoa(self.sender_balance)\n\n    def valid_requests(self, current_minimum_fee: int) -> List[ConsolidationRequest]:\n        \"\"\"Return the list of consolidation requests that are valid.\"\"\"\n        assert self.sender_account is not None, \"Sender account not initialized\"\n        return [\n            request.with_source_address(self.sender_account)\n            for request in self.requests\n            if request.valid and request.fee >= current_minimum_fee\n        ]\n\n\n@dataclass(kw_only=True)\nclass ConsolidationRequestContract(ConsolidationRequestInteractionBase):\n    \"\"\"Class used to describe a consolidation originated from a contract.\"\"\"\n\n    tx_gas_limit: int = 10_000_000\n    \"\"\"Gas limit for the transaction.\"\"\"\n\n    contract_balance: int = 1_000_000_000_000_000_000\n    \"\"\"\n    Balance of the contract that will make the call to the pre-deploy contract.\n    \"\"\"\n    contract_address: Address | None = None\n    \"\"\"\n    Address of the contract that will make the call to the pre-deploy contract.\n    \"\"\"\n    entry_address: Address | None = None\n    \"\"\"Address to send the transaction to.\"\"\"\n\n    call_type: Op = field(default_factory=lambda: Op.CALL)\n    \"\"\"Type of call to be used to make the consolidation request.\"\"\"\n    call_depth: int = 2\n    \"\"\"Frame depth of the pre-deploy contract when it executes the call.\"\"\"\n    extra_code: Bytecode = field(default_factory=Bytecode)\n    \"\"\"Extra code to be added to the contract code.\"\"\"\n\n    @property\n    def contract_code(self) -> Bytecode:\n        \"\"\"Contract code used by the relay contract.\"\"\"\n        code = Bytecode()\n        current_offset = 0\n        for r in self.requests:\n            value_arg = [r.value] if self.call_type in (Op.CALL, Op.CALLCODE) else []\n            code += Op.CALLDATACOPY(0, current_offset, len(r.calldata)) + Op.POP(\n                self.call_type(\n                    Op.GAS if r.gas_limit == -1 else r.gas_limit,\n                    r.interaction_contract_address,\n                    *value_arg,\n                    0,\n                    len(r.calldata),\n                    0,\n                    0,\n                )\n            )\n            current_offset += len(r.calldata)\n        return code + self.extra_code\n\n    def transactions(self) -> List[Transaction]:\n        \"\"\"Return a transaction for the consolidation request.\"\"\"\n        assert self.entry_address is not None, \"Entry address not initialized\"\n        return [\n            Transaction(\n                gas_limit=self.tx_gas_limit,\n                gas_price=1_000_000_000,\n                to=self.entry_address,\n                value=0,\n                data=b\"\".join(r.calldata for r in self.requests),\n                sender=self.sender_account,\n            )\n        ]\n\n    def update_pre(self, pre: Alloc) -> None:\n        \"\"\"Return the pre-state of the account.\"\"\"\n        self.sender_account = pre.fund_eoa(self.sender_balance)\n        self.contract_address = pre.deploy_contract(\n            code=self.contract_code, balance=self.contract_balance\n        )\n        self.entry_address = self.contract_address\n        if self.call_depth > 2:\n            for _ in range(1, self.call_depth - 1):\n                self.entry_address = pre.deploy_contract(\n                    code=Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE)\n                    + Op.POP(\n                        Op.CALL(\n                            Op.GAS,\n                            self.entry_address,\n                            0,\n                            0,\n                            Op.CALLDATASIZE,\n                            0,\n                            0,\n                        )\n                    )\n                )\n\n    def valid_requests(self, current_minimum_fee: int) -> List[ConsolidationRequest]:\n        \"\"\"Return the list of consolidation requests that are valid.\"\"\"\n        assert self.contract_address is not None, \"Contract address not initialized\"\n        return [\n            r.with_source_address(self.contract_address)\n            for r in self.requests\n            if r.valid and r.value >= current_minimum_fee\n        ]\n\n\ndef get_n_fee_increments(n: int) -> List[int]:\n    \"\"\"Get the first N excess consolidation requests that increase the fee.\"\"\"\n    excess_consolidation_requests_counts = []\n    last_fee = 1\n    for i in count(0):\n        if Spec.get_fee(i) > last_fee:\n            excess_consolidation_requests_counts.append(i)\n            last_fee = Spec.get_fee(i)\n        if len(excess_consolidation_requests_counts) == n:\n            break\n    return excess_consolidation_requests_counts\n\n\ndef get_n_fee_increment_blocks(n: int) -> List[List[ConsolidationRequestContract]]:\n    \"\"\"\n    Return N blocks that should be included in the test such that each\n    subsequent block has an increasing fee for the consolidation requests.\n\n    This is done by calculating the number of consolidations required to reach\n    the next fee increment and creating a block with that number of\n    consolidation requests plus the number of consolidations required to reach\n    the target.\n    \"\"\"\n    blocks = []\n    previous_excess = 0\n    consolidation_index = 0\n    previous_fee = 0\n    for required_excess_consolidations in get_n_fee_increments(n):\n        consolidations_required = (\n            required_excess_consolidations\n            + Spec.TARGET_CONSOLIDATION_REQUESTS_PER_BLOCK\n            - previous_excess\n        )\n        fee = Spec.get_fee(previous_excess)\n        assert fee > previous_fee\n        blocks.append(\n            [\n                ConsolidationRequestContract(\n                    requests=[\n                        ConsolidationRequest(\n                            source_pubkey=i * 2,\n                            target_pubkey=i * 2 + 1,\n                            fee=fee,\n                        )\n                        for i in range(\n                            consolidation_index, consolidation_index + consolidations_required\n                        )\n                    ],\n                )\n            ],\n        )\n        previous_fee = fee\n        consolidation_index += consolidations_required\n        previous_excess = required_excess_consolidations\n\n    return blocks\n"
  },
  {
    "path": "tests/prague/eip7251_consolidations/spec.py",
    "content": "\"\"\"Defines EIP-7251 specification constants and functions.\"\"\"\n\nfrom dataclasses import dataclass\n\nfrom ethereum_test_tools import Address\n\n\n@dataclass(frozen=True)\nclass ReferenceSpec:\n    \"\"\"Defines the reference spec version and git path.\"\"\"\n\n    git_path: str\n    version: str\n\n\nref_spec_7251 = ReferenceSpec(\"EIPS/eip-7251.md\", \"f29c0eda1e7495c071ef5b25fbd850dc3ef6bfdf\")\n\n\n# Constants\n@dataclass(frozen=True)\nclass Spec:\n    \"\"\"\n    Parameters from the EIP-7251 specifications as defined at\n    https://eips.ethereum.org/EIPS/eip-7251#execution-layer.\n    \"\"\"\n\n    CONSOLIDATION_REQUEST_PREDEPLOY_ADDRESS = 0x0000BBDDC7CE488642FB579F8B00F3A590007251\n    CONSOLIDATION_REQUEST_PREDEPLOY_SENDER = Address(0x13D1913D623E6A9D8811736359E50FD31FE54FCA)\n    SYSTEM_ADDRESS = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE\n\n    SYSTEM_CALL_GAS_LIMIT = 30_000_000\n\n    EXCESS_CONSOLIDATION_REQUESTS_STORAGE_SLOT = 0\n    CONSOLIDATION_REQUEST_COUNT_STORAGE_SLOT = 1\n    CONSOLIDATION_REQUEST_QUEUE_HEAD_STORAGE_SLOT = (\n        2  # Pointer to head of the consolidation request message queue\n    )\n    CONSOLIDATION_REQUEST_QUEUE_TAIL_STORAGE_SLOT = (\n        3  # Pointer to the tail of the consolidation request message queue\n    )\n    CONSOLIDATION_REQUEST_QUEUE_STORAGE_OFFSET = (\n        4  # The start memory slot of the in-state consolidation request message queue\n    )\n    MAX_CONSOLIDATION_REQUESTS_PER_BLOCK = (\n        2  # Maximum number of consolidation requests that can be de-queued into a block\n    )\n    TARGET_CONSOLIDATION_REQUESTS_PER_BLOCK = 1\n    MIN_CONSOLIDATION_REQUEST_FEE = 1\n    CONSOLIDATION_REQUEST_FEE_UPDATE_FRACTION = 17\n    EXCESS_INHIBITOR = 1181\n\n    @staticmethod\n    def fake_exponential(factor: int, numerator: int, denominator: int) -> int:\n        \"\"\"Calculate the consolidation request fee.\"\"\"\n        i = 1\n        output = 0\n        numerator_accumulator = factor * denominator\n        while numerator_accumulator > 0:\n            output += numerator_accumulator\n            numerator_accumulator = (numerator_accumulator * numerator) // (denominator * i)\n            i += 1\n        return output // denominator\n\n    @staticmethod\n    def get_fee(excess_consolidation_requests: int) -> int:\n        \"\"\"Calculate the fee for the excess consolidation requests.\"\"\"\n        return Spec.fake_exponential(\n            Spec.MIN_CONSOLIDATION_REQUEST_FEE,\n            excess_consolidation_requests,\n            Spec.CONSOLIDATION_REQUEST_FEE_UPDATE_FRACTION,\n        )\n\n    @staticmethod\n    def get_excess_consolidation_requests(previous_excess: int, count: int) -> int:\n        \"\"\"Calculate the new excess consolidation requests.\"\"\"\n        if previous_excess + count > Spec.TARGET_CONSOLIDATION_REQUESTS_PER_BLOCK:\n            return previous_excess + count - Spec.TARGET_CONSOLIDATION_REQUESTS_PER_BLOCK\n        return 0\n"
  },
  {
    "path": "tests/prague/eip7251_consolidations/test_consolidations.py",
    "content": "\"\"\"\nTests [EIP-7251: Increase the MAX_EFFECTIVE_BALANCE](https://eips.ethereum.org/EIPS/eip-7251).\n\"\"\"\n\nfrom typing import List\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    Address,\n    Alloc,\n    Block,\n    BlockchainTestFiller,\n    BlockException,\n    Environment,\n    Header,\n    Macros,\n    Requests,\n    TestAddress,\n    TestAddress2,\n)\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom .helpers import (\n    ConsolidationRequest,\n    ConsolidationRequestContract,\n    ConsolidationRequestInteractionBase,\n    ConsolidationRequestTransaction,\n    get_n_fee_increment_blocks,\n)\nfrom .spec import Spec, ref_spec_7251\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_7251.git_path\nREFERENCE_SPEC_VERSION = ref_spec_7251.version\n\npytestmark = pytest.mark.valid_from(\"Prague\")\n\n\n@pytest.mark.parametrize(\n    \"blocks_consolidation_requests\",\n    [\n        pytest.param(\n            [\n                [\n                    ConsolidationRequestTransaction(\n                        requests=[\n                            ConsolidationRequest(\n                                source_pubkey=0x01,\n                                target_pubkey=0x02,\n                                fee=Spec.get_fee(0),\n                            )\n                        ],\n                    ),\n                ],\n            ],\n            id=\"single_block_single_consolidation_request_from_eoa\",\n        ),\n        pytest.param(\n            [\n                [\n                    ConsolidationRequestTransaction(\n                        requests=[\n                            ConsolidationRequest(\n                                source_pubkey=0x01,\n                                target_pubkey=0x01,\n                                fee=Spec.get_fee(0),\n                            )\n                        ],\n                    ),\n                ],\n            ],\n            id=\"single_block_single_consolidation_request_from_eoa_equal_pubkeys\",\n        ),\n        pytest.param(\n            [\n                [\n                    ConsolidationRequestTransaction(\n                        requests=[\n                            ConsolidationRequest(\n                                source_pubkey=-1,\n                                target_pubkey=-2,\n                                fee=Spec.get_fee(0),\n                            )\n                        ],\n                    ),\n                ],\n            ],\n            id=\"single_block_single_consolidation_request_from_eoa_max_pubkeys\",\n        ),\n        pytest.param(\n            [\n                [\n                    ConsolidationRequestTransaction(\n                        requests=[\n                            ConsolidationRequest(\n                                source_pubkey=0x01,\n                                target_pubkey=0x02,\n                                fee=0,\n                                valid=False,\n                            )\n                        ],\n                    ),\n                ],\n            ],\n            id=\"single_block_single_consolidation_request_from_eoa_insufficient_fee\",\n        ),\n        pytest.param(\n            [\n                [\n                    ConsolidationRequestTransaction(\n                        requests=[\n                            ConsolidationRequest(\n                                source_pubkey=0x01,\n                                target_pubkey=0x02,\n                                fee=Spec.get_fee(0),\n                                calldata_modifier=lambda x: x[:-1],\n                                valid=False,\n                            )\n                        ],\n                    ),\n                ],\n            ],\n            id=\"single_block_single_consolidation_request_from_eoa_input_too_short\",\n        ),\n        pytest.param(\n            [\n                [\n                    ConsolidationRequestTransaction(\n                        requests=[\n                            ConsolidationRequest(\n                                source_pubkey=0x01,\n                                target_pubkey=0x02,\n                                fee=Spec.get_fee(0),\n                                calldata_modifier=lambda x: x + b\"\\x00\",\n                                valid=False,\n                            )\n                        ],\n                    ),\n                ],\n            ],\n            id=\"single_block_single_consolidation_request_from_eoa_input_too_long\",\n        ),\n        pytest.param(\n            [\n                [\n                    ConsolidationRequestTransaction(\n                        requests=[\n                            ConsolidationRequest(\n                                source_pubkey=0x01,\n                                target_pubkey=0x02,\n                                fee=Spec.get_fee(0),\n                            ),\n                            ConsolidationRequest(\n                                source_pubkey=0x03,\n                                target_pubkey=0x04,\n                                fee=Spec.get_fee(0),\n                            ),\n                        ],\n                    ),\n                ],\n            ],\n            id=\"single_block_multiple_consolidation_request_from_same_eoa\",\n        ),\n        pytest.param(\n            [\n                [\n                    ConsolidationRequestTransaction(\n                        requests=[\n                            ConsolidationRequest(\n                                source_pubkey=0x01,\n                                target_pubkey=0x02,\n                                fee=Spec.get_fee(0),\n                            )\n                        ],\n                    ),\n                    ConsolidationRequestTransaction(\n                        requests=[\n                            ConsolidationRequest(\n                                source_pubkey=0x03,\n                                target_pubkey=0x04,\n                                fee=Spec.get_fee(0),\n                            )\n                        ],\n                    ),\n                ],\n            ],\n            id=\"single_block_multiple_consolidation_request_from_different_eoa\",\n        ),\n        pytest.param(\n            [\n                [\n                    ConsolidationRequestTransaction(\n                        requests=[\n                            ConsolidationRequest(\n                                source_pubkey=i * 2,\n                                target_pubkey=i * 2 + 1,\n                                fee=Spec.get_fee(0),\n                            )\n                            for i in range(Spec.MAX_CONSOLIDATION_REQUESTS_PER_BLOCK)\n                        ],\n                    )\n                ],\n            ],\n            id=\"single_block_max_consolidation_requests_from_eoa\",\n        ),\n        pytest.param(\n            [\n                [\n                    ConsolidationRequestTransaction(\n                        requests=[\n                            ConsolidationRequest(\n                                source_pubkey=0x01,\n                                target_pubkey=0x02,\n                                fee=0,\n                            ),\n                            ConsolidationRequest(\n                                source_pubkey=0x03,\n                                target_pubkey=0x04,\n                                fee=Spec.get_fee(0),\n                            ),\n                        ]\n                    ),\n                ],\n            ],\n            id=\"single_block_multiple_consolidation_request_first_reverts\",\n        ),\n        pytest.param(\n            [\n                [\n                    ConsolidationRequestTransaction(\n                        requests=[\n                            ConsolidationRequest(\n                                source_pubkey=0x01,\n                                target_pubkey=0x02,\n                                fee=Spec.get_fee(0),\n                            ),\n                            ConsolidationRequest(\n                                source_pubkey=0x03,\n                                target_pubkey=0x04,\n                                fee=0,\n                            ),\n                        ]\n                    ),\n                ],\n            ],\n            id=\"single_block_multiple_consolidation_request_last_reverts\",\n        ),\n        pytest.param(\n            [\n                [\n                    ConsolidationRequestTransaction(\n                        requests=[\n                            ConsolidationRequest(\n                                source_pubkey=0x01,\n                                target_pubkey=0x02,\n                                fee=Spec.get_fee(0),\n                                gas_limit=136_534 - 1,\n                                valid=False,\n                            ),\n                            ConsolidationRequest(\n                                source_pubkey=0x03,\n                                target_pubkey=0x04,\n                                fee=Spec.get_fee(0),\n                            ),\n                        ]\n                    ),\n                ],\n            ],\n            id=\"single_block_multiple_consolidation_request_first_oog\",\n        ),\n        pytest.param(\n            [\n                [\n                    ConsolidationRequestTransaction(\n                        requests=[\n                            ConsolidationRequest(\n                                source_pubkey=0x01,\n                                target_pubkey=0x02,\n                                fee=Spec.get_fee(0),\n                            ),\n                            ConsolidationRequest(\n                                source_pubkey=0x03,\n                                target_pubkey=0x04,\n                                fee=Spec.get_fee(0),\n                                gas_limit=102_334 - 1,\n                                valid=False,\n                            ),\n                        ]\n                    ),\n                ],\n            ],\n            id=\"single_block_multiple_consolidation_request_last_oog\",\n        ),\n        pytest.param(\n            [\n                [\n                    ConsolidationRequestTransaction(\n                        requests=[\n                            ConsolidationRequest(\n                                source_pubkey=i * 2,\n                                target_pubkey=i * 2 + 1,\n                                fee=Spec.get_fee(0),\n                            )\n                            for i in range(Spec.MAX_CONSOLIDATION_REQUESTS_PER_BLOCK * 5)\n                        ]\n                    )\n                ],\n            ],\n            id=\"multiple_block_above_max_consolidation_requests_from_eoa\",\n        ),\n        pytest.param(\n            [\n                [\n                    ConsolidationRequestContract(\n                        requests=[\n                            ConsolidationRequest(\n                                source_pubkey=0x01,\n                                target_pubkey=0x02,\n                                fee=Spec.get_fee(0),\n                            ),\n                        ]\n                    ),\n                ],\n            ],\n            id=\"single_block_single_consolidation_request_from_contract\",\n        ),\n        pytest.param(\n            [\n                [\n                    ConsolidationRequestContract(\n                        requests=[\n                            ConsolidationRequest(\n                                source_pubkey=i * 2,\n                                target_pubkey=i * 2 + 1,\n                                fee=Spec.get_fee(0),\n                            )\n                            for i in range(Spec.MAX_CONSOLIDATION_REQUESTS_PER_BLOCK * 5)\n                        ],\n                    ),\n                ],\n            ],\n            id=\"single_block_multiple_consolidation_requests_from_contract\",\n        ),\n        pytest.param(\n            [\n                [\n                    ConsolidationRequestContract(\n                        requests=[\n                            ConsolidationRequest(\n                                source_pubkey=i * 2,\n                                target_pubkey=i * 2 + 1,\n                                fee=Spec.get_fee(0),\n                            )\n                            for i in range(Spec.MAX_CONSOLIDATION_REQUESTS_PER_BLOCK * 5)\n                        ],\n                        call_depth=3,\n                    ),\n                ],\n            ],\n            id=\"single_block_multiple_consolidation_requests_from_contract_call_depth_3\",\n        ),\n        pytest.param(\n            [\n                [\n                    ConsolidationRequestContract(\n                        requests=[\n                            ConsolidationRequest(\n                                source_pubkey=i * 2,\n                                target_pubkey=i * 2 + 1,\n                                fee=Spec.get_fee(0),\n                                gas_limit=6_000_000,\n                            )\n                            for i in range(Spec.MAX_CONSOLIDATION_REQUESTS_PER_BLOCK * 5)\n                        ],\n                        call_depth=100,\n                    ),\n                ],\n            ],\n            id=\"single_block_multiple_consolidation_requests_from_contract_call_depth_high\",\n        ),\n        pytest.param(\n            [\n                [\n                    ConsolidationRequestContract(\n                        requests=[\n                            ConsolidationRequest(\n                                source_pubkey=0x00,\n                                target_pubkey=0x01,\n                                fee=0,\n                            )\n                        ]\n                        + [\n                            ConsolidationRequest(\n                                source_pubkey=i * 2,\n                                target_pubkey=i * 2 + 1,\n                                fee=Spec.get_fee(0),\n                            )\n                            for i in range(1, Spec.MAX_CONSOLIDATION_REQUESTS_PER_BLOCK * 5)\n                        ],\n                    ),\n                ],\n            ],\n            id=\"single_block_multiple_consolidation_requests_from_contract_first_reverts\",\n        ),\n        pytest.param(\n            [\n                [\n                    ConsolidationRequestContract(\n                        requests=[\n                            ConsolidationRequest(\n                                source_pubkey=i * 2,\n                                target_pubkey=i * 2 + 1,\n                                fee=Spec.get_fee(0),\n                            )\n                            for i in range(Spec.MAX_CONSOLIDATION_REQUESTS_PER_BLOCK * 5)\n                        ]\n                        + [\n                            ConsolidationRequest(\n                                source_pubkey=-1,\n                                target_pubkey=-2,\n                                fee=0,\n                            )\n                        ],\n                    ),\n                ],\n            ],\n            id=\"single_block_multiple_consolidation_requests_from_contract_last_reverts\",\n        ),\n        pytest.param(\n            [\n                [\n                    ConsolidationRequestContract(\n                        requests=[\n                            ConsolidationRequest(\n                                source_pubkey=-1,\n                                target_pubkey=-2,\n                                gas_limit=100,\n                                fee=Spec.get_fee(0),\n                                valid=False,\n                            )\n                        ]\n                        + [\n                            ConsolidationRequest(\n                                source_pubkey=i * 2,\n                                target_pubkey=i * 2 + 1,\n                                gas_limit=1_000_000,\n                                fee=Spec.get_fee(0),\n                                valid=True,\n                            )\n                            for i in range(1, Spec.MAX_CONSOLIDATION_REQUESTS_PER_BLOCK * 5)\n                        ],\n                    ),\n                ],\n            ],\n            id=\"single_block_multiple_consolidation_requests_from_contract_first_oog\",\n        ),\n        pytest.param(\n            [\n                [\n                    ConsolidationRequestContract(\n                        requests=[\n                            ConsolidationRequest(\n                                source_pubkey=i * 2,\n                                target_pubkey=i * 2 + 1,\n                                fee=Spec.get_fee(0),\n                                gas_limit=1_000_000,\n                                valid=True,\n                            )\n                            for i in range(Spec.MAX_CONSOLIDATION_REQUESTS_PER_BLOCK * 5)\n                        ]\n                        + [\n                            ConsolidationRequest(\n                                source_pubkey=-1,\n                                target_pubkey=-2,\n                                gas_limit=100,\n                                fee=Spec.get_fee(0),\n                                valid=False,\n                            )\n                        ],\n                    ),\n                ],\n            ],\n            id=\"single_block_multiple_consolidation_requests_from_contract_last_oog\",\n        ),\n        pytest.param(\n            [\n                [\n                    ConsolidationRequestContract(\n                        requests=[\n                            ConsolidationRequest(\n                                source_pubkey=i * 2,\n                                target_pubkey=i * 2 + 1,\n                                fee=Spec.get_fee(0),\n                                valid=False,\n                            )\n                            for i in range(Spec.MAX_CONSOLIDATION_REQUESTS_PER_BLOCK * 5)\n                        ],\n                        extra_code=Op.REVERT(0, 0),\n                    ),\n                ],\n            ],\n            id=\"single_block_multiple_consolidation_requests_from_contract_caller_reverts\",\n        ),\n        pytest.param(\n            [\n                [\n                    ConsolidationRequestContract(\n                        requests=[\n                            ConsolidationRequest(\n                                source_pubkey=i * 2,\n                                target_pubkey=i * 2 + 1,\n                                fee=Spec.get_fee(0),\n                                valid=False,\n                            )\n                            for i in range(Spec.MAX_CONSOLIDATION_REQUESTS_PER_BLOCK * 5)\n                        ],\n                        extra_code=Macros.OOG(),\n                    ),\n                ],\n            ],\n            id=\"single_block_multiple_consolidation_requests_from_contract_caller_oog\",\n        ),\n        pytest.param(\n            # Test the first 50 fee increments\n            get_n_fee_increment_blocks(50),\n            id=\"multiple_block_fee_increments\",\n        ),\n        pytest.param(\n            [\n                [\n                    ConsolidationRequestContract(\n                        requests=[\n                            ConsolidationRequest(\n                                source_pubkey=0x01,\n                                target_pubkey=0x02,\n                                fee=Spec.get_fee(0),\n                                valid=False,\n                            )\n                        ],\n                        call_type=Op.DELEGATECALL,\n                    ),\n                    ConsolidationRequestContract(\n                        requests=[\n                            ConsolidationRequest(\n                                source_pubkey=0x01,\n                                target_pubkey=0x02,\n                                fee=Spec.get_fee(0),\n                                valid=False,\n                            )\n                        ],\n                        call_type=Op.STATICCALL,\n                    ),\n                    ConsolidationRequestContract(\n                        requests=[\n                            ConsolidationRequest(\n                                source_pubkey=0x01,\n                                target_pubkey=0x02,\n                                fee=Spec.get_fee(0),\n                                valid=False,\n                            )\n                        ],\n                        call_type=Op.CALLCODE,\n                    ),\n                ],\n            ],\n            id=\"single_block_single_consolidation_request_delegatecall_staticcall_callcode\",\n        ),\n        pytest.param(\n            [\n                [\n                    ConsolidationRequestContract(\n                        requests=[\n                            ConsolidationRequest(\n                                source_pubkey=0x01,\n                                target_pubkey=0x02,\n                                fee=Spec.get_fee(0),\n                                valid=False,\n                            )\n                        ],\n                        call_type=Op.DELEGATECALL,\n                        call_depth=3,\n                    ),\n                    ConsolidationRequestContract(\n                        requests=[\n                            ConsolidationRequest(\n                                source_pubkey=0x01,\n                                target_pubkey=0x02,\n                                fee=Spec.get_fee(0),\n                                valid=False,\n                            )\n                        ],\n                        call_type=Op.STATICCALL,\n                        call_depth=3,\n                    ),\n                    ConsolidationRequestContract(\n                        requests=[\n                            ConsolidationRequest(\n                                source_pubkey=0x01,\n                                target_pubkey=0x02,\n                                fee=Spec.get_fee(0),\n                                valid=False,\n                            )\n                        ],\n                        call_type=Op.CALLCODE,\n                        call_depth=3,\n                    ),\n                ],\n            ],\n            id=\"single_block_single_consolidation_request_delegatecall_staticcall_callcode_call_depth_3\",\n        ),\n        pytest.param(\n            [\n                [\n                    ConsolidationRequestContract(\n                        requests=[\n                            ConsolidationRequest(\n                                source_pubkey=0x01,\n                                target_pubkey=0x02,\n                                fee=Spec.get_fee(0),\n                                valid=False,\n                            )\n                        ],\n                        call_type=Op.DELEGATECALL,\n                        call_depth=1024,\n                    ),\n                    ConsolidationRequestContract(\n                        requests=[\n                            ConsolidationRequest(\n                                source_pubkey=0x01,\n                                target_pubkey=0x02,\n                                fee=Spec.get_fee(0),\n                                valid=False,\n                            )\n                        ],\n                        call_type=Op.STATICCALL,\n                        call_depth=1024,\n                    ),\n                    ConsolidationRequestContract(\n                        requests=[\n                            ConsolidationRequest(\n                                source_pubkey=0x01,\n                                target_pubkey=0x02,\n                                fee=Spec.get_fee(0),\n                                valid=False,\n                            )\n                        ],\n                        call_type=Op.CALLCODE,\n                        call_depth=1024,\n                    ),\n                ],\n            ],\n            id=\"single_block_single_consolidation_request_delegatecall_staticcall_callcode_call_depth_high\",\n        ),\n    ],\n)\n@pytest.mark.pre_alloc_group(\n    \"consolidation_requests\", reason=\"Tests standard consolidation request functionality\"\n)\ndef test_consolidation_requests(\n    blockchain_test: BlockchainTestFiller,\n    blocks: List[Block],\n    pre: Alloc,\n) -> None:\n    \"\"\"Test making a consolidation request to the beacon chain.\"\"\"\n    blockchain_test(\n        genesis_environment=Environment(),\n        pre=pre,\n        post={},\n        blocks=blocks,\n    )\n\n\n@pytest.mark.parametrize(\n    \"requests,block_body_override_requests,exception\",\n    [\n        pytest.param(\n            [],\n            [\n                ConsolidationRequest(\n                    source_pubkey=0x01,\n                    target_pubkey=0x02,\n                    source_address=Address(0),\n                ),\n            ],\n            BlockException.INVALID_REQUESTS,\n            id=\"no_consolidations_non_empty_requests_list\",\n        ),\n        pytest.param(\n            [\n                ConsolidationRequestTransaction(\n                    requests=[\n                        ConsolidationRequest(\n                            source_pubkey=0x01,\n                            target_pubkey=0x02,\n                            fee=Spec.get_fee(0),\n                        ),\n                    ]\n                ),\n            ],\n            [],\n            BlockException.INVALID_REQUESTS,\n            id=\"single_consolidation_request_empty_requests_list\",\n        ),\n        pytest.param(\n            [\n                ConsolidationRequestTransaction(\n                    requests=[\n                        ConsolidationRequest(\n                            source_pubkey=0x01,\n                            target_pubkey=0x02,\n                            fee=Spec.get_fee(0),\n                        ),\n                    ]\n                ),\n            ],\n            [\n                ConsolidationRequest(\n                    source_pubkey=0x00,\n                    target_pubkey=0x02,\n                    source_address=TestAddress,\n                )\n            ],\n            BlockException.INVALID_REQUESTS,\n            id=\"single_consolidation_request_source_public_key_mismatch\",\n        ),\n        pytest.param(\n            [\n                ConsolidationRequestTransaction(\n                    requests=[\n                        ConsolidationRequest(\n                            source_pubkey=0x01,\n                            target_pubkey=0x02,\n                            fee=Spec.get_fee(0),\n                        ),\n                    ]\n                ),\n            ],\n            [\n                ConsolidationRequest(\n                    source_pubkey=0x01,\n                    target_pubkey=0x00,\n                    source_address=TestAddress,\n                )\n            ],\n            BlockException.INVALID_REQUESTS,\n            id=\"single_consolidation_request_target_public_key_mismatch\",\n        ),\n        pytest.param(\n            [\n                ConsolidationRequestTransaction(\n                    requests=[\n                        ConsolidationRequest(\n                            source_pubkey=0x01,\n                            target_pubkey=0x02,\n                            fee=Spec.get_fee(0),\n                        ),\n                    ]\n                ),\n            ],\n            [\n                ConsolidationRequest(\n                    source_pubkey=0x02,\n                    target_pubkey=0x01,\n                    source_address=TestAddress,\n                )\n            ],\n            BlockException.INVALID_REQUESTS,\n            id=\"single_consolidation_request_pubkeys_swapped\",\n        ),\n        pytest.param(\n            [\n                ConsolidationRequestTransaction(\n                    requests=[\n                        ConsolidationRequest(\n                            source_pubkey=0x01,\n                            target_pubkey=0x02,\n                            fee=Spec.get_fee(0),\n                        )\n                    ],\n                ),\n            ],\n            [\n                ConsolidationRequest(\n                    source_pubkey=0x01,\n                    target_pubkey=0x02,\n                    source_address=TestAddress2,\n                )\n            ],\n            BlockException.INVALID_REQUESTS,\n            id=\"single_consolidation_request_source_address_mismatch\",\n        ),\n        pytest.param(\n            [\n                ConsolidationRequestTransaction(\n                    requests=[\n                        ConsolidationRequest(\n                            source_pubkey=0x01,\n                            target_pubkey=0x02,\n                            fee=Spec.get_fee(0),\n                        ),\n                        ConsolidationRequest(\n                            source_pubkey=0x03,\n                            target_pubkey=0x04,\n                            fee=Spec.get_fee(0),\n                        ),\n                    ],\n                ),\n            ],\n            [\n                ConsolidationRequest(\n                    source_pubkey=0x03,\n                    target_pubkey=0x04,\n                    source_address=TestAddress,\n                ),\n                ConsolidationRequest(\n                    source_pubkey=0x01,\n                    target_pubkey=0x02,\n                    source_address=TestAddress,\n                ),\n            ],\n            BlockException.INVALID_REQUESTS,\n            id=\"two_consolidation_requests_out_of_order\",\n        ),\n        pytest.param(\n            [\n                ConsolidationRequestTransaction(\n                    requests=[\n                        ConsolidationRequest(\n                            source_pubkey=0x01,\n                            target_pubkey=0x02,\n                            fee=Spec.get_fee(0),\n                        )\n                    ],\n                ),\n            ],\n            [\n                ConsolidationRequest(\n                    source_pubkey=0x01,\n                    target_pubkey=0x02,\n                    source_address=TestAddress,\n                ),\n                ConsolidationRequest(\n                    source_pubkey=0x01,\n                    target_pubkey=0x02,\n                    source_address=TestAddress,\n                ),\n            ],\n            BlockException.INVALID_REQUESTS,\n            id=\"single_consolidation_requests_duplicate_in_requests_list\",\n        ),\n    ],\n)\n@pytest.mark.exception_test\n@pytest.mark.pre_alloc_group(\n    \"consolidation_requests\", reason=\"Tests standard consolidation request functionality\"\n)\ndef test_consolidation_requests_negative(\n    pre: Alloc,\n    fork: Fork,\n    blockchain_test: BlockchainTestFiller,\n    requests: List[ConsolidationRequestInteractionBase],\n    block_body_override_requests: List[ConsolidationRequest],\n    exception: BlockException,\n) -> None:\n    \"\"\"\n    Test blocks where the requests list and the actual consolidation requests\n    that happened in the block's transactions do not match.\n    \"\"\"\n    for d in requests:\n        d.update_pre(pre)\n\n    # No previous block so fee is the base\n    fee = 1\n    current_block_requests = []\n    for w in requests:\n        current_block_requests += w.valid_requests(fee)\n    included_requests = current_block_requests[: Spec.MAX_CONSOLIDATION_REQUESTS_PER_BLOCK]\n\n    blockchain_test(\n        genesis_environment=Environment(),\n        pre=pre,\n        post={},\n        blocks=[\n            Block(\n                txs=sum((r.transactions() for r in requests), []),\n                header_verify=Header(\n                    requests_hash=Requests(*included_requests),\n                ),\n                requests=(\n                    Requests(*block_body_override_requests).requests_list\n                    if block_body_override_requests is not None\n                    else None\n                ),\n                exception=exception,\n            )\n        ],\n    )\n"
  },
  {
    "path": "tests/prague/eip7251_consolidations/test_consolidations_during_fork.py",
    "content": "\"\"\"\nTests [EIP-7251: Increase the MAX_EFFECTIVE_BALANCE](https://eips.ethereum.org/EIPS/eip-7251).\n\"\"\"\n\nfrom os.path import realpath\nfrom pathlib import Path\nfrom typing import List\n\nimport pytest\n\nfrom ethereum_test_tools import (\n    Account,\n    Address,\n    Alloc,\n    Block,\n    BlockchainTestFiller,\n    Environment,\n    Transaction,\n)\n\nfrom .helpers import ConsolidationRequest, ConsolidationRequestTransaction\nfrom .spec import Spec, ref_spec_7251\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_7251.git_path\nREFERENCE_SPEC_VERSION = ref_spec_7251.version\n\npytestmark = pytest.mark.valid_at_transition_to(\"Prague\")\n\nBLOCKS_BEFORE_FORK = 2\n\n\n@pytest.mark.parametrize(\n    \"blocks_consolidation_requests\",\n    [\n        pytest.param(\n            [\n                [],  # No consolidation requests, but we deploy the contract\n                [\n                    ConsolidationRequestTransaction(\n                        requests=[\n                            ConsolidationRequest(\n                                source_pubkey=0x01,\n                                target_pubkey=0x02,\n                                fee=Spec.get_fee(10),\n                                # Pre-fork consolidation request\n                                valid=False,\n                            )\n                        ],\n                    ),\n                ],\n                [\n                    ConsolidationRequestTransaction(\n                        requests=[\n                            ConsolidationRequest(\n                                source_pubkey=0x03,\n                                target_pubkey=0x04,\n                                fee=Spec.get_fee(10),\n                                # First post-fork consolidation request, will\n                                # not be included because the inhibitor is\n                                # cleared at the end of the block\n                                valid=False,\n                            )\n                        ],\n                    ),\n                ],\n                [\n                    ConsolidationRequestTransaction(\n                        requests=[\n                            ConsolidationRequest(\n                                source_pubkey=0x05,\n                                target_pubkey=0x06,\n                                fee=Spec.get_fee(0),\n                                # First consolidation that is valid\n                                valid=True,\n                            )\n                        ],\n                    ),\n                ],\n            ],\n            id=\"one_valid_request_second_block_after_fork\",\n        ),\n    ],\n)\n@pytest.mark.parametrize(\"timestamp\", [15_000 - BLOCKS_BEFORE_FORK], ids=[\"\"])\n@pytest.mark.pre_alloc_group(\n    \"separate\", reason=\"Deploys consolidation system contract at fork transition\"\n)\ndef test_consolidation_requests_during_fork(\n    blockchain_test: BlockchainTestFiller,\n    blocks: List[Block],\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    Test making a consolidation request to the beacon chain at the time of the\n    fork.\n    \"\"\"\n    # We need to delete the deployed contract that comes by default in the pre\n    # state.\n    pre[Spec.CONSOLIDATION_REQUEST_PREDEPLOY_ADDRESS] = Account(\n        balance=0,\n        code=bytes(),\n        nonce=0,\n        storage={},\n    )\n\n    with open(Path(realpath(__file__)).parent / \"contract_deploy_tx.json\", mode=\"r\") as f:\n        deploy_tx = Transaction.model_validate_json(f.read()).with_signature_and_sender()\n\n    deployer_address = deploy_tx.sender\n    assert deployer_address is not None\n    assert Address(deployer_address) == Spec.CONSOLIDATION_REQUEST_PREDEPLOY_SENDER\n\n    tx_gas_price = deploy_tx.gas_price\n    assert tx_gas_price is not None\n    deployer_required_balance = deploy_tx.gas_limit * tx_gas_price\n\n    pre.fund_address(Spec.CONSOLIDATION_REQUEST_PREDEPLOY_SENDER, deployer_required_balance)\n\n    # Append the deployment transaction to the first block\n    blocks[0].txs.append(deploy_tx)\n\n    blockchain_test(\n        genesis_environment=Environment(),\n        pre=pre,\n        post={},\n        blocks=blocks,\n    )\n"
  },
  {
    "path": "tests/prague/eip7251_consolidations/test_contract_deployment.py",
    "content": "\"\"\"\nTests [EIP-7251: Increase the MAX_EFFECTIVE_BALANCE](https://eips.ethereum.org/EIPS/eip-7251).\n\"\"\"\n\nfrom os.path import realpath\nfrom pathlib import Path\nfrom typing import Any, Generator\n\nimport pytest\n\nfrom ethereum_test_forks import Fork, Prague\nfrom ethereum_test_tools import (\n    Address,\n    Alloc,\n    Block,\n    Header,\n    Requests,\n    Transaction,\n    generate_system_contract_deploy_test,\n)\n\nfrom .helpers import ConsolidationRequest\nfrom .spec import Spec, ref_spec_7251\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_7251.git_path\nREFERENCE_SPEC_VERSION = ref_spec_7251.version\n\n\n@pytest.mark.pre_alloc_group(\n    \"separate\", reason=\"Deploys consolidation system contract at hardcoded predeploy address\"\n)\n@generate_system_contract_deploy_test(\n    fork=Prague,\n    tx_json_path=Path(realpath(__file__)).parent / \"contract_deploy_tx.json\",\n    expected_deploy_address=Address(Spec.CONSOLIDATION_REQUEST_PREDEPLOY_ADDRESS),\n    fail_on_empty_code=True,\n)\ndef test_system_contract_deployment(\n    *,\n    fork: Fork,\n    pre: Alloc,\n    **kwargs: Any,\n) -> Generator[Block, None, None]:\n    \"\"\"Verify calling the consolidation system contract after deployment.\"\"\"\n    sender = pre.fund_eoa()\n    consolidation_request = ConsolidationRequest(\n        source_pubkey=0x01,\n        target_pubkey=0x02,\n        fee=Spec.get_fee(0),\n        source_address=sender,\n    )\n    pre.fund_address(sender, consolidation_request.value)\n    intrinsic_gas_calculator = fork.transaction_intrinsic_cost_calculator()\n    test_transaction_gas = intrinsic_gas_calculator(calldata=consolidation_request.calldata)\n\n    test_transaction = Transaction(\n        data=consolidation_request.calldata,\n        gas_limit=test_transaction_gas * 10,\n        to=Spec.CONSOLIDATION_REQUEST_PREDEPLOY_ADDRESS,\n        sender=sender,\n        value=consolidation_request.value,\n    )\n\n    yield Block(\n        txs=[test_transaction],\n        header=Header(\n            requests_hash=Requests(consolidation_request),\n        ),\n    )\n"
  },
  {
    "path": "tests/prague/eip7251_consolidations/test_eip_mainnet.py",
    "content": "\"\"\"\nabstract: Crafted tests for mainnet of [EIP-7251: Increase the MAX_EFFECTIVE_BALANCE](https://eips.ethereum.org/EIPS/eip-7251).\n\"\"\"  # noqa: E501\n\nfrom typing import List\n\nimport pytest\n\nfrom ethereum_test_tools import (\n    Alloc,\n    Block,\n    BlockchainTestFiller,\n)\n\nfrom .helpers import ConsolidationRequest, ConsolidationRequestTransaction\nfrom .spec import Spec, ref_spec_7251\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_7251.git_path\nREFERENCE_SPEC_VERSION = ref_spec_7251.version\n\npytestmark = [pytest.mark.valid_at(\"Prague\"), pytest.mark.mainnet]\n\n\n@pytest.mark.parametrize(\n    \"blocks_consolidation_requests\",\n    [\n        pytest.param(\n            [\n                [\n                    ConsolidationRequestTransaction(\n                        requests=[\n                            ConsolidationRequest(\n                                source_pubkey=0x01,\n                                target_pubkey=0x02,\n                                fee=Spec.get_fee(0),\n                            )\n                        ],\n                    ),\n                ],\n            ],\n            id=\"single_consolidation_request\",\n        ),\n    ],\n)\ndef test_eip_7251(\n    blockchain_test: BlockchainTestFiller,\n    blocks: List[Block],\n    pre: Alloc,\n) -> None:\n    \"\"\"Test making a consolidation request.\"\"\"\n    blockchain_test(\n        pre=pre,\n        post={},\n        blocks=blocks,\n    )\n"
  },
  {
    "path": "tests/prague/eip7251_consolidations/test_modified_consolidation_contract.py",
    "content": "\"\"\"\nTests [EIP-7251: Execution layer triggerable consolidation](https://eips.ethereum.org/EIPS/eip-7251).\n\"\"\"\n\nfrom typing import List\n\nimport pytest\n\nfrom ethereum_test_tools import (\n    Account,\n    Address,\n    Alloc,\n    Block,\n    BlockchainTestFiller,\n    Bytecode,\n    Transaction,\n    generate_system_contract_error_test,\n)\nfrom ethereum_test_tools import Macros as Om\nfrom ethereum_test_tools import Opcodes as Op\nfrom ethereum_test_types import Requests\n\nfrom .helpers import (\n    ConsolidationRequest,\n    ConsolidationRequestTransaction,\n)\nfrom .spec import Spec as Spec_EIP7251\nfrom .spec import ref_spec_7251\n\nREFERENCE_SPEC_GIT_PATH: str = ref_spec_7251.git_path\nREFERENCE_SPEC_VERSION: str = ref_spec_7251.version\n\npytestmark: pytest.MarkDecorator = pytest.mark.valid_from(\"Prague\")\n\n\ndef consolidation_list_with_custom_fee(n: int) -> List[ConsolidationRequest]:  # noqa: D103\n    return [\n        ConsolidationRequest(\n            source_pubkey=0x01,\n            target_pubkey=0x02,\n            fee=Spec_EIP7251.get_fee(10),\n        )\n        for i in range(n)\n    ]\n\n\n@pytest.mark.parametrize(\n    \"requests_list\",\n    [\n        pytest.param(\n            [],\n            id=\"empty_request_list\",\n        ),\n        pytest.param(\n            [\n                *consolidation_list_with_custom_fee(1),\n            ],\n            id=\"1_consolidation_request\",\n        ),\n        pytest.param(\n            [\n                *consolidation_list_with_custom_fee(2),\n            ],\n            id=\"2_consolidation_requests\",\n        ),\n        pytest.param(\n            [\n                *consolidation_list_with_custom_fee(3),\n            ],\n            id=\"3_consolidation_requests\",\n        ),\n        pytest.param(\n            [\n                *consolidation_list_with_custom_fee(4),\n            ],\n            id=\"4_consolidation_requests\",\n        ),\n        pytest.param(\n            [\n                *consolidation_list_with_custom_fee(5),\n            ],\n            id=\"5_consolidation_requests\",\n        ),\n    ],\n)\n@pytest.mark.pre_alloc_group(\"separate\", reason=\"Deploys custom consolidation contract bytecode\")\ndef test_extra_consolidations(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    requests_list: List[ConsolidationRequest],\n) -> None:\n    \"\"\"\n    Test how clients were to behave with more than 2 consolidations per block.\n    \"\"\"\n    modified_code: Bytecode = Bytecode()\n    memory_offset: int = 0\n    amount_of_requests: int = 0\n\n    for consolidation_request in requests_list:\n        # update memory_offset with the correct value\n        consolidation_request_bytes_amount: int = len(bytes(consolidation_request))\n        assert consolidation_request_bytes_amount == 116, (\n            \"Expected consolidation request to be of size 116 but got size \"\n            f\"{consolidation_request_bytes_amount}\"\n        )\n        memory_offset += consolidation_request_bytes_amount\n\n        modified_code += Om.MSTORE(bytes(consolidation_request), memory_offset)\n        amount_of_requests += 1\n\n    modified_code += Op.RETURN(0, Op.MSIZE())\n\n    pre[Spec_EIP7251.CONSOLIDATION_REQUEST_PREDEPLOY_ADDRESS] = Account(\n        code=modified_code,\n        nonce=1,\n        balance=0,\n    )\n\n    # given a list of consolidation requests construct a consolidation request\n    # transaction\n    consolidation_request_transaction = ConsolidationRequestTransaction(requests=requests_list)\n    # prepare consolidation senders\n    consolidation_request_transaction.update_pre(pre=pre)\n    # get transaction list\n    txs: List[Transaction] = consolidation_request_transaction.transactions()\n\n    blockchain_test(\n        pre=pre,\n        blocks=[\n            Block(\n                txs=txs,\n                requests_hash=Requests(*requests_list),\n            ),\n        ],\n        post={},\n    )\n\n\n@pytest.mark.parametrize(\n    \"system_contract\", [Address(Spec_EIP7251.CONSOLIDATION_REQUEST_PREDEPLOY_ADDRESS)]\n)\n@pytest.mark.pre_alloc_group(\"separate\", reason=\"Deploys custom consolidation contract bytecode\")\n@generate_system_contract_error_test(  # type: ignore[arg-type]\n    max_gas_limit=Spec_EIP7251.SYSTEM_CALL_GAS_LIMIT,\n)\ndef test_system_contract_errors() -> None:\n    \"\"\"\n    Test system contract raising different errors when called by the system\n    account at the end of the block execution.\n\n    To see the list of generated tests, please refer to the\n    `generate_system_contract_error_test` decorator definition.\n    \"\"\"\n    pass\n"
  },
  {
    "path": "tests/prague/eip7623_increase_calldata_cost/__init__.py",
    "content": "\"\"\"\nTest [EIP-7623: Increase calldata cost](https://eips.ethereum.org/EIPS/eip-7623).\n\"\"\"\n"
  },
  {
    "path": "tests/prague/eip7623_increase_calldata_cost/conftest.py",
    "content": "\"\"\"Fixtures for the EIP-7623 tests.\"\"\"\n\nfrom typing import List, Sequence\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    EOA,\n    AccessList,\n    Address,\n    Alloc,\n    AuthorizationTuple,\n    Bytecode,\n    Bytes,\n    Hash,\n    Transaction,\n    TransactionException,\n    add_kzg_version,\n)\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom ...cancun.eip4844_blobs.spec import Spec as EIP_4844_Spec\nfrom .helpers import DataTestType, find_floor_cost_threshold\n\n\n@pytest.fixture\ndef to(\n    request: pytest.FixtureRequest,\n    pre: Alloc,\n) -> Address | None:\n    \"\"\"Create the sender account.\"\"\"\n    if hasattr(request, \"param\"):\n        param = request.param\n    else:\n        param = Op.STOP\n\n    if param is None:\n        return None\n    if isinstance(param, str) and param == \"eoa\":\n        return pre.fund_eoa(amount=0)\n    if isinstance(param, Bytecode):\n        return pre.deploy_contract(param)\n\n    raise ValueError(f\"Invalid value for `to` fixture: {param}\")\n\n\n@pytest.fixture\ndef protected() -> bool:\n    \"\"\"\n    Return whether the transaction is protected or not. Only valid for type-0\n    transactions.\n    \"\"\"\n    return True\n\n\n@pytest.fixture\ndef access_list() -> List[AccessList] | None:\n    \"\"\"Access list for the transaction.\"\"\"\n    return None\n\n\n@pytest.fixture\ndef authorization_refund() -> bool:\n    \"\"\"\n    Return whether the transaction has an existing authority in the\n    authorization list.\n    \"\"\"\n    return False\n\n\n@pytest.fixture\ndef authorization_list(\n    request: pytest.FixtureRequest,\n    pre: Alloc,\n    authorization_refund: bool,\n) -> List[AuthorizationTuple] | None:\n    \"\"\"\n    Authorization-list for the transaction.\n\n    This fixture needs to be parametrized indirectly in order to generate the\n    authorizations with valid signers using `pre` in this function, and the\n    parametrized value should be a list of addresses.\n    \"\"\"\n    if not hasattr(request, \"param\"):\n        return None\n    if request.param is None:\n        return None\n    return [\n        AuthorizationTuple(signer=pre.fund_eoa(1 if authorization_refund else 0), address=address)\n        for address in request.param\n    ]\n\n\n@pytest.fixture\ndef blob_versioned_hashes(ty: int) -> Sequence[Hash] | None:\n    \"\"\"Versioned hashes for the transaction.\"\"\"\n    return (\n        add_kzg_version(\n            [Hash(1)],\n            EIP_4844_Spec.BLOB_COMMITMENT_VERSION_KZG,\n        )\n        if ty == 3\n        else None\n    )\n\n\n@pytest.fixture\ndef contract_creating_tx(to: Address | None) -> bool:\n    \"\"\"Return whether the transaction creates a contract or not.\"\"\"\n    return to is None\n\n\n@pytest.fixture\ndef intrinsic_gas_data_floor_minimum_delta() -> int:\n    \"\"\"\n    Induce a minimum delta between the transaction intrinsic gas cost and the\n    floor data gas cost.\n    \"\"\"\n    return 0\n\n\n@pytest.fixture\ndef tx_data(\n    fork: Fork,\n    data_test_type: DataTestType,\n    access_list: List[AccessList] | None,\n    authorization_list: List[AuthorizationTuple] | None,\n    contract_creating_tx: bool,\n    intrinsic_gas_data_floor_minimum_delta: int,\n) -> Bytes:\n    \"\"\"\n    All tests in this file use data that is generated dynamically depending on\n    the case and the attributes of the transaction in order to reach the edge\n    cases where the floor gas cost is equal or barely greater than the\n    intrinsic gas cost.\n\n    We have two different types of tests:\n\n    - FLOOR_GAS_COST_LESS_THAN_OR_EQUAL_TO_INTRINSIC_GAS: The floor gas cost is\n        less than or equal to the intrinsic gas cost, which means that the size\n        of the tokens in the data are not enough to trigger the floor gas cost.\n\n    - FLOOR_GAS_COST_GREATER_THAN_INTRINSIC_GAS: The floor gas cost is greater\n        than the intrinsic gas cost, which means that the size of the tokens in\n        the data are enough to trigger the floor gas cost.\n\n    E.g. Given a transaction with a single access list and a single storage\n    key, its intrinsic gas cost (as of Prague fork) can be calculated as:\n\n    - 21,000 gas for the transaction\n    - 2,400 gas for the access list\n    - 1,900 gas for the storage key\n    - 16 gas for each non-zero byte in the data\n    - 4 gas for each zero byte in the data\n\n    Its floor data gas cost can be calculated as:\n    - 21,000 gas for the transaction\n    - 40 gas for each non-zero byte in the data\n    - 10 gas for each zero byte in the data\n\n    Notice that the data included in the transaction affects both the intrinsic\n    gas cost and the floor data cost, but at different rates.\n\n    The purpose of this function is to find the exact amount of data where the\n    floor data gas cost starts exceeding the intrinsic gas cost.\n\n    After a binary search we find that adding 717 tokens of data (179 non-zero\n    bytes + 1 zero byte) triggers the floor gas cost.\n\n    Therefore, this function will return a Bytes object with 179 non-zero bytes\n    and 1 zero byte for `FLOOR_GAS_COST_GREATER_THAN_INTRINSIC_GAS` and a Bytes\n    object with 179 non-zero bytes and no zero bytes for\n    `FLOOR_GAS_COST_LESS_THAN_OR_EQUAL_TO_INTRINSIC_GAS`\n    \"\"\"\n\n    def tokens_to_data(tokens: int) -> Bytes:\n        return Bytes(b\"\\x01\" * (tokens // 4) + b\"\\x00\" * (tokens % 4))\n\n    fork_intrinsic_cost_calculator = fork.transaction_intrinsic_cost_calculator()\n\n    def transaction_intrinsic_cost_calculator(tokens: int) -> int:\n        return (\n            fork_intrinsic_cost_calculator(\n                calldata=tokens_to_data(tokens),\n                contract_creation=contract_creating_tx,\n                access_list=access_list,\n                authorization_list_or_count=authorization_list,\n                return_cost_deducted_prior_execution=True,\n            )\n            + intrinsic_gas_data_floor_minimum_delta\n        )\n\n    fork_data_floor_cost_calculator = fork.transaction_data_floor_cost_calculator()\n\n    def transaction_data_floor_cost_calculator(tokens: int) -> int:\n        return fork_data_floor_cost_calculator(data=tokens_to_data(tokens))\n\n    # Start with zero data and check the difference in the gas calculator\n    # between the intrinsic gas cost and the floor gas cost.\n    if transaction_data_floor_cost_calculator(0) >= transaction_intrinsic_cost_calculator(0):\n        # Special case which is a transaction with no extra intrinsic gas costs\n        # other than the data cost, any data will trigger the floor gas cost.\n        if data_test_type == DataTestType.FLOOR_GAS_COST_LESS_THAN_OR_EQUAL_TO_INTRINSIC_GAS:\n            return Bytes(b\"\")\n        else:\n            return Bytes(b\"\\0\")\n\n    tokens = find_floor_cost_threshold(\n        floor_data_gas_cost_calculator=transaction_data_floor_cost_calculator,\n        intrinsic_gas_cost_calculator=transaction_intrinsic_cost_calculator,\n    )\n\n    if data_test_type == DataTestType.FLOOR_GAS_COST_GREATER_THAN_INTRINSIC_GAS:\n        return tokens_to_data(tokens + 1)\n    return tokens_to_data(tokens)\n\n\n@pytest.fixture\ndef tx_gas_delta() -> int:\n    \"\"\"\n    Gas delta to modify the gas amount included with the transaction.\n\n    If negative, the transaction will be invalid because the intrinsic gas cost\n    is greater than the gas limit.\n\n    This value operates regardless of whether the floor data gas cost is\n    reached or not.\n\n    If the value is greater than zero, the transaction will also be valid and\n    the test will check that transaction processing does not consume more gas\n    than it should.\n    \"\"\"\n    return 0\n\n\n@pytest.fixture\ndef tx_intrinsic_gas_cost_before_execution(\n    fork: Fork,\n    tx_data: Bytes,\n    access_list: List[AccessList] | None,\n    authorization_list: List[AuthorizationTuple] | None,\n    contract_creating_tx: bool,\n) -> int:\n    \"\"\"\n    Return the intrinsic gas cost that is applied before the execution start.\n\n    This value never includes the floor data gas cost.\n    \"\"\"\n    intrinsic_gas_cost_calculator = fork.transaction_intrinsic_cost_calculator()\n    return intrinsic_gas_cost_calculator(\n        calldata=tx_data,\n        contract_creation=contract_creating_tx,\n        access_list=access_list,\n        authorization_list_or_count=authorization_list,\n        return_cost_deducted_prior_execution=True,\n    )\n\n\n@pytest.fixture\ndef tx_intrinsic_gas_cost_including_floor_data_cost(\n    fork: Fork,\n    tx_data: Bytes,\n    access_list: List[AccessList] | None,\n    authorization_list: List[AuthorizationTuple] | None,\n    contract_creating_tx: bool,\n) -> int:\n    \"\"\"\n    Transaction intrinsic gas cost.\n\n    The calculated value takes into account the normal intrinsic gas cost and\n    the floor data gas cost if it is greater than the intrinsic gas cost.\n\n    In other words, this is the value that is required for the transaction to\n    be valid.\n    \"\"\"\n    intrinsic_gas_cost_calculator = fork.transaction_intrinsic_cost_calculator()\n    return intrinsic_gas_cost_calculator(\n        calldata=tx_data,\n        contract_creation=contract_creating_tx,\n        access_list=access_list,\n        authorization_list_or_count=authorization_list,\n    )\n\n\n@pytest.fixture\ndef tx_floor_data_cost(\n    fork: Fork,\n    tx_data: Bytes,\n) -> int:\n    \"\"\"Floor data cost for the given transaction data.\"\"\"\n    fork_data_floor_cost_calculator = fork.transaction_data_floor_cost_calculator()\n    return fork_data_floor_cost_calculator(data=tx_data)\n\n\n@pytest.fixture\ndef tx_gas_limit(\n    tx_intrinsic_gas_cost_including_floor_data_cost: int,\n    tx_gas_delta: int,\n) -> int:\n    \"\"\"\n    Gas limit for the transaction.\n\n    The gas delta is added to the intrinsic gas cost to generate different test\n    scenarios.\n    \"\"\"\n    return tx_intrinsic_gas_cost_including_floor_data_cost + tx_gas_delta\n\n\n@pytest.fixture\ndef tx_error(tx_gas_delta: int, data_test_type: DataTestType) -> TransactionException | None:\n    \"\"\"Transaction error, only expected if the gas delta is negative.\"\"\"\n    if tx_gas_delta < 0:\n        if data_test_type == DataTestType.FLOOR_GAS_COST_GREATER_THAN_INTRINSIC_GAS:\n            return TransactionException.INTRINSIC_GAS_BELOW_FLOOR_GAS_COST\n        else:\n            return TransactionException.INTRINSIC_GAS_TOO_LOW\n    return None\n\n\n@pytest.fixture\ndef tx(\n    sender: EOA,\n    ty: int,\n    tx_data: Bytes,\n    to: Address | None,\n    protected: bool,\n    access_list: List[AccessList] | None,\n    authorization_list: List[AuthorizationTuple] | None,\n    blob_versioned_hashes: Sequence[Hash] | None,\n    tx_gas_limit: int,\n    tx_error: TransactionException | None,\n) -> Transaction:\n    \"\"\"Create the transaction used in each test.\"\"\"\n    return Transaction(\n        ty=ty,\n        sender=sender,\n        data=tx_data,\n        to=to,\n        protected=protected,\n        access_list=access_list,\n        authorization_list=authorization_list,\n        gas_limit=tx_gas_limit,\n        blob_versioned_hashes=blob_versioned_hashes,\n        error=tx_error,\n    )\n"
  },
  {
    "path": "tests/prague/eip7623_increase_calldata_cost/helpers.py",
    "content": "\"\"\"Helpers for testing EIP-7623.\"\"\"\n\nfrom enum import Enum, auto\nfrom typing import Callable\n\n\nclass DataTestType(Enum):\n    \"\"\"Enum for the different types of data tests.\"\"\"\n\n    FLOOR_GAS_COST_LESS_THAN_OR_EQUAL_TO_INTRINSIC_GAS = auto()\n    FLOOR_GAS_COST_GREATER_THAN_INTRINSIC_GAS = auto()\n\n\ndef find_floor_cost_threshold(\n    floor_data_gas_cost_calculator: Callable[[int], int],\n    intrinsic_gas_cost_calculator: Callable[[int], int],\n) -> int:\n    \"\"\"\n    Find the minimum amount of tokens that will trigger the floor gas cost, by\n    using a binary search and the intrinsic gas cost and floor data\n    calculators.\n    \"\"\"\n    # Start with 1000 tokens and if the intrinsic gas cost is greater than the\n    # floor gas cost, multiply the number of tokens by 2 until it's not.\n    tokens = 1000\n    while floor_data_gas_cost_calculator(tokens) < intrinsic_gas_cost_calculator(tokens):\n        tokens *= 2\n\n    # Binary search to find the minimum number of tokens that will trigger the\n    # floor gas cost.\n    left = 0\n    right = tokens\n    while left < right:\n        tokens = (left + right) // 2\n        if floor_data_gas_cost_calculator(tokens) < intrinsic_gas_cost_calculator(tokens):\n            left = tokens + 1\n        else:\n            right = tokens\n    tokens = left\n\n    if floor_data_gas_cost_calculator(tokens) > intrinsic_gas_cost_calculator(tokens):\n        tokens -= 1\n\n    # Verify that increasing the tokens by one would always trigger the floor\n    # gas cost.\n    assert (\n        floor_data_gas_cost_calculator(tokens) <= intrinsic_gas_cost_calculator(tokens)\n    ) and floor_data_gas_cost_calculator(tokens + 1) > intrinsic_gas_cost_calculator(tokens + 1), (\n        \"invalid case\"\n    )\n\n    return tokens\n"
  },
  {
    "path": "tests/prague/eip7623_increase_calldata_cost/spec.py",
    "content": "\"\"\"Defines EIP-7623 specification constants and functions.\"\"\"\n\nfrom dataclasses import dataclass\n\n\n@dataclass(frozen=True)\nclass ReferenceSpec:\n    \"\"\"Defines the reference spec version and git path.\"\"\"\n\n    git_path: str\n    version: str\n\n\nref_spec_7623 = ReferenceSpec(\"EIPS/eip-7623.md\", \"744f2075ba5deee9c1040eb089104d55bd89960d\")\n\n\n# Constants\n@dataclass(frozen=True)\nclass Spec:\n    \"\"\"\n    Parameters from the EIP-7623 specifications as defined at\n    https://eips.ethereum.org/EIPS/eip-7623.\n    \"\"\"\n\n    STANDARD_TOKEN_COST = 4\n    TOTAL_COST_FLOOR_PER_TOKEN = 10\n"
  },
  {
    "path": "tests/prague/eip7623_increase_calldata_cost/test_eip_mainnet.py",
    "content": "\"\"\"\nabstract: Crafted tests for mainnet of [EIP-7623: Increase calldata cost](https://eips.ethereum.org/EIPS/eip-7623).\n\"\"\"  # noqa: E501\n\nimport pytest\n\nfrom ethereum_test_tools import (\n    AccessList,\n    Address,\n    Alloc,\n    Hash,\n    StateTestFiller,\n    Transaction,\n    add_kzg_version,\n)\n\nfrom ...cancun.eip4844_blobs.spec import Spec as EIP_4844_Spec\nfrom .helpers import DataTestType\nfrom .spec import ref_spec_7623\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_7623.git_path\nREFERENCE_SPEC_VERSION = ref_spec_7623.version\n\npytestmark = [pytest.mark.valid_at(\"Prague\"), pytest.mark.mainnet]\n\n\n@pytest.mark.parametrize(\n    \"ty,protected,access_list,blob_versioned_hashes,authorization_list\",\n    [\n        pytest.param(0, True, None, None, None, id=\"type_0_protected\"),\n        pytest.param(0, False, None, None, None, id=\"type_0_unprotected\"),\n        pytest.param(\n            1,\n            True,\n            [AccessList(address=Address(1), storage_keys=[Hash(0)])],\n            None,\n            None,\n            id=\"type_1\",\n        ),\n        pytest.param(\n            2,\n            True,\n            [AccessList(address=Address(1), storage_keys=[Hash(0)])],\n            None,\n            None,\n            id=\"type_2\",\n        ),\n        pytest.param(\n            3,\n            True,\n            [AccessList(address=Address(1), storage_keys=[Hash(0)])],\n            add_kzg_version(\n                [Hash(x) for x in range(1)],\n                EIP_4844_Spec.BLOB_COMMITMENT_VERSION_KZG,\n            ),\n            None,\n            id=\"type_3\",\n            marks=pytest.mark.execute(\n                pytest.mark.skip(reason=\"Blob txs not supported by execute\")\n            ),\n        ),\n        pytest.param(\n            4,\n            True,\n            [AccessList(address=Address(1), storage_keys=[Hash(0)])],\n            None,\n            [Address(1)],\n            id=\"type_4\",\n        ),\n    ],\n    indirect=[\"authorization_list\"],\n)\n@pytest.mark.parametrize(\n    \"tx_gas_delta\",\n    [\n        pytest.param(0, id=\"\"),\n    ],\n)\n@pytest.mark.parametrize(\n    \"to\",\n    [\n        pytest.param(\"eoa\", id=\"\"),\n    ],\n    indirect=True,\n)\n@pytest.mark.parametrize(\n    \"data_test_type\",\n    [\n        pytest.param(\n            DataTestType.FLOOR_GAS_COST_GREATER_THAN_INTRINSIC_GAS,\n            id=\"\",\n        ),\n    ],\n)\ndef test_eip_7623(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    tx: Transaction,\n) -> None:\n    \"\"\"\n    Test transaction validity for transactions without access lists\n    and contract creation.\n    \"\"\"\n    state_test(\n        pre=pre,\n        post={},\n        tx=tx,\n    )\n"
  },
  {
    "path": "tests/prague/eip7623_increase_calldata_cost/test_execution_gas.py",
    "content": "\"\"\"\nTest [EIP-7623: Increase calldata cost](https://eips.ethereum.org/EIPS/eip-7623).\n\"\"\"\n\nfrom typing import List\n\nimport pytest\n\nfrom ethereum_test_forks import Fork, Prague\nfrom ethereum_test_tools import (\n    AccessList,\n    Address,\n    Alloc,\n    AuthorizationTuple,\n    Bytes,\n    StateTestFiller,\n    Transaction,\n    TransactionReceipt,\n)\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom .helpers import DataTestType\nfrom .spec import ref_spec_7623\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_7623.git_path\nREFERENCE_SPEC_VERSION = ref_spec_7623.version\n\nENABLE_FORK = Prague\npytestmark = [pytest.mark.valid_from(str(ENABLE_FORK))]\n\n\n@pytest.fixture\ndef data_test_type() -> DataTestType:\n    \"\"\"Return data test type.\"\"\"\n    return DataTestType.FLOOR_GAS_COST_GREATER_THAN_INTRINSIC_GAS\n\n\nclass TestGasConsumption:\n    \"\"\"Test gas consumption with EIP-7623 active.\"\"\"\n\n    @pytest.fixture\n    def intrinsic_gas_data_floor_minimum_delta(self) -> int:\n        \"\"\"\n        Force a minimum delta in order to have some gas to execute the invalid\n        opcode.\n        \"\"\"\n        return 50_000\n\n    @pytest.fixture\n    def to(\n        self,\n        pre: Alloc,\n    ) -> Address | None:\n        \"\"\"\n        Return a contract that consumes all gas when executed by calling an\n        invalid opcode.\n        \"\"\"\n        return pre.deploy_contract(Op.INVALID)\n\n    @pytest.mark.parametrize(\n        \"ty,protected,authorization_list\",\n        [\n            pytest.param(0, False, None, id=\"type_0_unprotected\"),\n            pytest.param(0, True, None, id=\"type_0_protected\"),\n            pytest.param(1, True, None, id=\"type_1\"),\n            pytest.param(2, True, None, id=\"type_2\"),\n            pytest.param(3, True, None, id=\"type_3\"),\n            pytest.param(4, True, [Address(1)], id=\"type_4\"),\n        ],\n        indirect=[\"authorization_list\"],\n    )\n    @pytest.mark.parametrize(\n        \"tx_gas_delta\",\n        [\n            # Test with exact gas and extra gas.\n            pytest.param(1, id=\"extra_gas\"),\n            pytest.param(0, id=\"exact_gas\"),\n        ],\n    )\n    def test_full_gas_consumption(\n        self,\n        state_test: StateTestFiller,\n        pre: Alloc,\n        tx: Transaction,\n    ) -> None:\n        \"\"\"\n        Test executing a transaction that fully consumes its execution gas\n        allocation.\n        \"\"\"\n        tx.expected_receipt = TransactionReceipt(gas_used=tx.gas_limit)\n        state_test(\n            pre=pre,\n            post={},\n            tx=tx,\n        )\n\n\nclass TestGasConsumptionBelowDataFloor:\n    \"\"\"Test gas consumption barely below the floor data cost (1 gas below).\"\"\"\n\n    @pytest.fixture\n    def contract_creating_tx(self) -> bool:\n        \"\"\"Use a constant in order to avoid circular fixture dependencies.\"\"\"\n        return False\n\n    @pytest.fixture\n    def to(\n        self,\n        pre: Alloc,\n        fork: Fork,\n        tx_data: Bytes,\n        access_list: List[AccessList] | None,\n        authorization_list: List[AuthorizationTuple] | None,\n        tx_floor_data_cost: int,\n    ) -> Address | None:\n        \"\"\"\n        Return a contract that consumes almost all the gas before reaching the\n        floor data cost.\n        \"\"\"\n        intrinsic_gas_cost_calculator = fork.transaction_intrinsic_cost_calculator()\n        execution_gas = tx_floor_data_cost - intrinsic_gas_cost_calculator(\n            calldata=tx_data,\n            contract_creation=False,\n            access_list=access_list,\n            authorization_list_or_count=authorization_list,\n            return_cost_deducted_prior_execution=True,\n        )\n        assert execution_gas > 0\n\n        return pre.deploy_contract((Op.JUMPDEST * (execution_gas - 1)) + Op.STOP)\n\n    @pytest.mark.parametrize(\n        \"ty,protected,authorization_list\",\n        [\n            pytest.param(0, False, None, id=\"type_0_unprotected\"),\n            pytest.param(0, True, None, id=\"type_0_protected\"),\n            pytest.param(1, True, None, id=\"type_1\"),\n            pytest.param(2, True, None, id=\"type_2\"),\n            pytest.param(3, True, None, id=\"type_3\"),\n            pytest.param(4, True, [Address(1)], id=\"type_4\"),\n        ],\n        indirect=[\"authorization_list\"],\n    )\n    @pytest.mark.parametrize(\n        \"tx_gas_delta\",\n        [\n            # Test with exact gas and extra gas, to verify that the refund is\n            # correctly applied to the full consumed execution gas.\n            pytest.param(0, id=\"exact_gas\"),\n        ],\n    )\n    def test_gas_consumption_below_data_floor(\n        self,\n        state_test: StateTestFiller,\n        pre: Alloc,\n        tx: Transaction,\n        tx_floor_data_cost: int,\n    ) -> None:\n        \"\"\"\n        Test executing a transaction that almost consumes the floor data cost.\n        \"\"\"\n        tx.expected_receipt = TransactionReceipt(gas_used=tx_floor_data_cost)\n        state_test(\n            pre=pre,\n            post={},\n            tx=tx,\n        )\n"
  },
  {
    "path": "tests/prague/eip7623_increase_calldata_cost/test_refunds.py",
    "content": "\"\"\"\nTest [EIP-7623: Increase calldata cost](https://eips.ethereum.org/EIPS/eip-7623).\n\"\"\"\n\nfrom enum import Enum, Flag, auto\nfrom typing import Dict, List\n\nimport pytest\n\nfrom ethereum_test_forks import Fork, Prague\nfrom ethereum_test_tools import (\n    Address,\n    Alloc,\n    AuthorizationTuple,\n    Bytecode,\n    StateTestFiller,\n    Transaction,\n    TransactionReceipt,\n)\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom .helpers import DataTestType\nfrom .spec import ref_spec_7623\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_7623.git_path\nREFERENCE_SPEC_VERSION = ref_spec_7623.version\n\nENABLE_FORK = Prague\npytestmark = [pytest.mark.valid_from(str(ENABLE_FORK))]\n\n\nclass RefundTestType(Enum):\n    \"\"\"Refund test type.\"\"\"\n\n    EXECUTION_GAS_MINUS_REFUND_GREATER_THAN_DATA_FLOOR = 0\n    \"\"\"\n    The execution gas minus the refund is greater than the data floor, hence\n    the execution gas cost is charged.\n    \"\"\"\n    EXECUTION_GAS_MINUS_REFUND_LESS_THAN_DATA_FLOOR = 1\n    \"\"\"\n    The execution gas minus the refund is less than the data floor, hence the\n    data floor cost is charged.\n    \"\"\"\n    EXECUTION_GAS_MINUS_REFUND_EQUAL_TO_DATA_FLOOR = 2\n    \"\"\"The execution gas minus the refund is equal to the data floor.\"\"\"\n\n\nclass RefundType(Flag):\n    \"\"\"Refund type.\"\"\"\n\n    STORAGE_CLEAR = auto()\n    \"\"\"The storage is cleared from a non-zero value.\"\"\"\n\n    AUTHORIZATION_EXISTING_AUTHORITY = auto()\n    \"\"\"\n    The authorization list contains an authorization where the authority exists\n    in the state.\n    \"\"\"\n\n\n@pytest.fixture\ndef data_test_type() -> DataTestType:\n    \"\"\"Return data test type.\"\"\"\n    return DataTestType.FLOOR_GAS_COST_GREATER_THAN_INTRINSIC_GAS\n\n\n@pytest.fixture\ndef authorization_list(pre: Alloc, refund_type: RefundType) -> List[AuthorizationTuple] | None:\n    \"\"\"\n    Modify fixture from conftest to automatically read the refund_type\n    information.\n    \"\"\"\n    if RefundType.AUTHORIZATION_EXISTING_AUTHORITY not in refund_type:\n        return None\n    return [AuthorizationTuple(signer=pre.fund_eoa(1), address=Address(1))]\n\n\n@pytest.fixture\ndef ty(refund_type: RefundType) -> int:\n    \"\"\"\n    Modify fixture from conftest to automatically read the refund_type\n    information.\n    \"\"\"\n    if RefundType.AUTHORIZATION_EXISTING_AUTHORITY in refund_type:\n        return 4\n    return 2\n\n\n@pytest.fixture\ndef max_refund(fork: Fork, refund_type: RefundType) -> int:\n    \"\"\"Return the max refund gas of the transaction.\"\"\"\n    gas_costs = fork.gas_costs()\n    max_refund = gas_costs.R_STORAGE_CLEAR if RefundType.STORAGE_CLEAR in refund_type else 0\n    max_refund += (\n        gas_costs.R_AUTHORIZATION_EXISTING_AUTHORITY\n        if RefundType.AUTHORIZATION_EXISTING_AUTHORITY in refund_type\n        else 0\n    )\n    return max_refund\n\n\n@pytest.fixture\ndef prefix_code_gas(fork: Fork, refund_type: RefundType) -> int:\n    \"\"\"Return the minimum execution gas cost due to the refund type.\"\"\"\n    if RefundType.STORAGE_CLEAR in refund_type:\n        # Minimum code to generate a storage clear is Op.SSTORE(0, 0).\n        gas_costs = fork.gas_costs()\n        return gas_costs.G_COLD_SLOAD + gas_costs.G_STORAGE_RESET + (gas_costs.G_VERY_LOW * 2)\n    return 0\n\n\n@pytest.fixture\ndef prefix_code(refund_type: RefundType) -> Bytecode:\n    \"\"\"Return the minimum execution gas cost due to the refund type.\"\"\"\n    if RefundType.STORAGE_CLEAR in refund_type:\n        # Clear the storage to trigger a refund.\n        return Op.SSTORE(0, 0)\n    return Bytecode()\n\n\n@pytest.fixture\ndef code_storage(refund_type: RefundType) -> Dict:\n    \"\"\"Return the minimum execution gas cost due to the refund type.\"\"\"\n    if RefundType.STORAGE_CLEAR in refund_type:\n        # Pre-set the storage to be cleared.\n        return {0: 1}\n    return {}\n\n\n@pytest.fixture\ndef contract_creating_tx() -> bool:\n    \"\"\"\n    Override fixture in order to avoid a circular fixture dependency since none\n    of these tests are contract creating transactions.\n    \"\"\"\n    return False\n\n\n@pytest.fixture\ndef intrinsic_gas_data_floor_minimum_delta() -> int:\n    \"\"\"\n    Induce a minimum delta between the transaction intrinsic gas cost and the\n    floor data gas cost.\n\n    Since at least one of the cases requires some execution gas expenditure\n    (SSTORE clearing), we need to introduce an increment of the floor data cost\n    above the transaction intrinsic gas cost, otherwise the floor data cost\n    would always be the below the execution gas cost even after the refund is\n    applied.\n\n    This value has been set as of Prague and should be adjusted if the gas\n    costs change.\n    \"\"\"\n    return 250\n\n\n@pytest.fixture\ndef execution_gas_used(\n    tx_intrinsic_gas_cost_before_execution: int,\n    tx_floor_data_cost: int,\n    max_refund: int,\n    prefix_code_gas: int,\n    refund_test_type: RefundTestType,\n) -> int:\n    \"\"\"\n    Return the amount of gas that needs to be consumed by the execution.\n\n    This gas amount is on top of the transaction intrinsic gas cost.\n\n    If this value were zero it would result in the refund being applied to the\n    execution gas cost and the resulting amount being always below the floor\n    data cost, hence we need to find a higher value in this function to ensure\n    we get both scenarios where the refund drives the execution cost below the\n    floor data cost and above the floor data cost.\n    \"\"\"\n\n    def execution_gas_cost(execution_gas: int) -> int:\n        total_gas_used = tx_intrinsic_gas_cost_before_execution + execution_gas\n        return total_gas_used - min(max_refund, total_gas_used // 5)\n\n    execution_gas = prefix_code_gas\n\n    assert execution_gas_cost(execution_gas) < tx_floor_data_cost, (\n        \"tx_floor_data_cost is too low, there might have been a gas cost change that caused this \"\n        \"test to fail. Try increasing the intrinsic_gas_data_floor_minimum_delta fixture.\"\n    )\n\n    # Dumb for-loop to find the execution gas cost that will result in the\n    # expected refund.\n    while execution_gas_cost(execution_gas) < tx_floor_data_cost:\n        execution_gas += 1\n    if refund_test_type == RefundTestType.EXECUTION_GAS_MINUS_REFUND_EQUAL_TO_DATA_FLOOR:\n        return execution_gas\n    elif refund_test_type == RefundTestType.EXECUTION_GAS_MINUS_REFUND_GREATER_THAN_DATA_FLOOR:\n        return execution_gas + 1\n    elif refund_test_type == RefundTestType.EXECUTION_GAS_MINUS_REFUND_LESS_THAN_DATA_FLOOR:\n        return execution_gas - 1\n\n    raise ValueError(\"Invalid refund test type\")\n\n\n@pytest.fixture\ndef refund(\n    tx_intrinsic_gas_cost_before_execution: int,\n    execution_gas_used: int,\n    max_refund: int,\n) -> int:\n    \"\"\"Return the refund gas of the transaction.\"\"\"\n    total_gas_used = tx_intrinsic_gas_cost_before_execution + execution_gas_used\n    return min(max_refund, total_gas_used // 5)\n\n\n@pytest.fixture\ndef to(\n    pre: Alloc,\n    execution_gas_used: int,\n    prefix_code: Bytecode,\n    prefix_code_gas: int,\n    code_storage: Dict,\n) -> Address | None:\n    \"\"\"\n    Return a contract that consumes the expected execution gas.\n\n    At the moment we naively use JUMPDEST to consume the gas, which can yield\n    very big contracts.\n\n    Ideally, we can use memory expansion to consume gas.\n    \"\"\"\n    extra_gas = execution_gas_used - prefix_code_gas\n    return pre.deploy_contract(\n        prefix_code + (Op.JUMPDEST * extra_gas) + Op.STOP,\n        storage=code_storage,\n    )\n\n\n@pytest.fixture\ndef tx_gas_limit(\n    tx_intrinsic_gas_cost_including_floor_data_cost: int,\n    tx_intrinsic_gas_cost_before_execution: int,\n    execution_gas_used: int,\n) -> int:\n    \"\"\"\n    Gas limit for the transaction.\n\n    The gas delta is added to the intrinsic gas cost to generate different test\n    scenarios.\n    \"\"\"\n    tx_gas_limit = tx_intrinsic_gas_cost_before_execution + execution_gas_used\n    assert tx_gas_limit >= tx_intrinsic_gas_cost_including_floor_data_cost\n    return tx_gas_limit\n\n\n@pytest.mark.parametrize(\n    \"refund_test_type\",\n    [\n        RefundTestType.EXECUTION_GAS_MINUS_REFUND_GREATER_THAN_DATA_FLOOR,\n        RefundTestType.EXECUTION_GAS_MINUS_REFUND_LESS_THAN_DATA_FLOOR,\n        RefundTestType.EXECUTION_GAS_MINUS_REFUND_EQUAL_TO_DATA_FLOOR,\n    ],\n)\n@pytest.mark.parametrize(\n    \"refund_type\",\n    [\n        RefundType.STORAGE_CLEAR,\n        RefundType.STORAGE_CLEAR | RefundType.AUTHORIZATION_EXISTING_AUTHORITY,\n        RefundType.AUTHORIZATION_EXISTING_AUTHORITY,\n    ],\n)\ndef test_gas_refunds_from_data_floor(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    tx: Transaction,\n    tx_floor_data_cost: int,\n    tx_intrinsic_gas_cost_before_execution: int,\n    execution_gas_used: int,\n    refund: int,\n    refund_test_type: RefundTestType,\n) -> None:\n    \"\"\"\n    Test gas refunds deducted from the execution gas cost and not the data\n    floor.\n    \"\"\"\n    gas_used = tx_intrinsic_gas_cost_before_execution + execution_gas_used - refund\n    if refund_test_type == RefundTestType.EXECUTION_GAS_MINUS_REFUND_LESS_THAN_DATA_FLOOR:\n        assert gas_used < tx_floor_data_cost\n    elif refund_test_type == RefundTestType.EXECUTION_GAS_MINUS_REFUND_GREATER_THAN_DATA_FLOOR:\n        assert gas_used > tx_floor_data_cost\n    elif refund_test_type == RefundTestType.EXECUTION_GAS_MINUS_REFUND_EQUAL_TO_DATA_FLOOR:\n        assert gas_used == tx_floor_data_cost\n    else:\n        raise ValueError(\"Invalid refund test type\")\n    if gas_used < tx_floor_data_cost:\n        gas_used = tx_floor_data_cost\n    # This is the actual test verification:\n    #   - During test filling, the receipt returned by the transition tool\n    #     (t8n) is verified against the expected receipt.\n    #   - During test consumption, this is reflected in the balance difference\n    #     and the state root.\n    tx.expected_receipt = TransactionReceipt(gas_used=gas_used)\n    state_test(\n        pre=pre,\n        post={\n            tx.to: {\n                # Verify that the storage was cleared (for storage clear\n                # refund). See `code_storage` fixture for more details.\n                \"storage\": {0: 0},\n            }\n        },\n        tx=tx,\n    )\n"
  },
  {
    "path": "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py",
    "content": "\"\"\"\nTest [EIP-7623: Increase calldata cost](https://eips.ethereum.org/EIPS/eip-7623).\n\"\"\"\n\nimport pytest\n\nfrom ethereum_test_forks import Prague\nfrom ethereum_test_tools import (\n    AccessList,\n    Address,\n    Alloc,\n    Hash,\n    StateTestFiller,\n    Transaction,\n    add_kzg_version,\n)\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom ...cancun.eip4844_blobs.spec import Spec as EIP_4844_Spec\nfrom .helpers import DataTestType\nfrom .spec import ref_spec_7623\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_7623.git_path\nREFERENCE_SPEC_VERSION = ref_spec_7623.version\n\nENABLE_FORK = Prague\npytestmark = [pytest.mark.valid_from(str(ENABLE_FORK))]\n\n\n# All tests in this file are parametrized with the following parameters:\npytestmark += [\n    pytest.mark.parametrize(\n        \"tx_gas_delta\",\n        [\n            # Test the case where the included gas is greater than the\n            # intrinsic gas to verify that the data floor does not consume more\n            # gas than it should.\n            pytest.param(1, id=\"extra_gas\"),\n            pytest.param(0, id=\"exact_gas\"),\n            pytest.param(-1, id=\"insufficient_gas\", marks=pytest.mark.exception_test),\n        ],\n    ),\n    pytest.mark.parametrize(\n        \"data_test_type\",\n        [\n            pytest.param(\n                DataTestType.FLOOR_GAS_COST_LESS_THAN_OR_EQUAL_TO_INTRINSIC_GAS,\n                id=\"floor_gas_less_than_or_equal_to_intrinsic_gas\",\n            ),\n            pytest.param(\n                DataTestType.FLOOR_GAS_COST_GREATER_THAN_INTRINSIC_GAS,\n                id=\"floor_gas_greater_than_intrinsic_gas\",\n            ),\n        ],\n    ),\n]\n\n\n@pytest.mark.parametrize(\n    \"protected\",\n    [\n        pytest.param(True, id=\"protected\"),\n        pytest.param(False, id=\"unprotected\"),\n    ],\n)\n@pytest.mark.parametrize(\n    \"ty\",\n    [pytest.param(0, id=\"type_0\")],\n)\n@pytest.mark.parametrize(\n    \"to\",\n    [\n        pytest.param(\"eoa\", id=\"to_eoa\"),\n        pytest.param(None, id=\"contract_creating\"),\n        pytest.param(Op.STOP, id=\"\"),\n    ],\n    indirect=True,\n)\ndef test_transaction_validity_type_0(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    tx: Transaction,\n) -> None:\n    \"\"\"\n    Test transaction validity for transactions without access lists and\n    contract creation.\n    \"\"\"\n    state_test(\n        pre=pre,\n        post={},\n        tx=tx,\n    )\n\n\n@pytest.mark.parametrize(\n    \"to\",\n    [\n        pytest.param(\"eoa\", id=\"to_eoa\"),\n        pytest.param(None, id=\"contract_creating\"),\n        pytest.param(Op.STOP, id=\"\"),\n    ],\n    indirect=True,\n)\n@pytest.mark.parametrize(\n    \"access_list\",\n    [\n        pytest.param(\n            None,\n            id=\"no_access_list\",\n        ),\n        pytest.param(\n            [AccessList(address=Address(1), storage_keys=[])],\n            id=\"single_access_list_no_storage_keys\",\n        ),\n        pytest.param(\n            [AccessList(address=Address(1), storage_keys=[Hash(0)])],\n            id=\"single_access_list_single_storage_key\",\n        ),\n        pytest.param(\n            [AccessList(address=Address(1), storage_keys=[Hash(k) for k in range(10)])],\n            id=\"single_access_list_multiple_storage_keys\",\n        ),\n        pytest.param(\n            [AccessList(address=Address(a), storage_keys=[]) for a in range(10)],\n            id=\"multiple_access_lists_no_storage_keys\",\n        ),\n        pytest.param(\n            [AccessList(address=Address(a), storage_keys=[Hash(0)]) for a in range(10)],\n            id=\"multiple_access_lists_single_storage_key\",\n        ),\n        pytest.param(\n            [\n                AccessList(address=Address(a), storage_keys=[Hash(k) for k in range(10)])\n                for a in range(10)\n            ],\n            id=\"multiple_access_lists_multiple_storage_keys\",\n        ),\n    ],\n)\n@pytest.mark.parametrize(\n    \"ty\",\n    [pytest.param(1, id=\"type_1\"), pytest.param(2, id=\"type_2\")],\n)\ndef test_transaction_validity_type_1_type_2(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    tx: Transaction,\n) -> None:\n    \"\"\"\n    Test transaction validity for transactions with access lists and contract\n    creation.\n    \"\"\"\n    state_test(\n        pre=pre,\n        post={},\n        tx=tx,\n    )\n\n\n@pytest.mark.parametrize(\n    \"access_list\",\n    [\n        pytest.param(\n            None,\n            id=\"no_access_list\",\n        ),\n        pytest.param(\n            [AccessList(address=Address(1), storage_keys=[])],\n            id=\"single_access_list_no_storage_keys\",\n        ),\n        pytest.param(\n            [AccessList(address=Address(1), storage_keys=[Hash(0)])],\n            id=\"single_access_list_single_storage_key\",\n        ),\n        pytest.param(\n            [AccessList(address=Address(1), storage_keys=[Hash(k) for k in range(10)])],\n            id=\"single_access_list_multiple_storage_keys\",\n        ),\n        pytest.param(\n            [AccessList(address=Address(a), storage_keys=[]) for a in range(10)],\n            id=\"multiple_access_lists_no_storage_keys\",\n        ),\n        pytest.param(\n            [AccessList(address=Address(a), storage_keys=[Hash(0)]) for a in range(10)],\n            id=\"multiple_access_lists_single_storage_key\",\n        ),\n        pytest.param(\n            [\n                AccessList(address=Address(a), storage_keys=[Hash(k) for k in range(10)])\n                for a in range(10)\n            ],\n            id=\"multiple_access_lists_multiple_storage_keys\",\n        ),\n    ],\n)\n@pytest.mark.parametrize(\n    # Blobs don't really have an effect because the blob gas does is not\n    # considered in the intrinsic gas calculation, but we still test it to make\n    # sure that the transaction is correctly processed.\n    \"blob_versioned_hashes\",\n    [\n        pytest.param(\n            add_kzg_version(\n                [Hash(x) for x in range(1)],\n                EIP_4844_Spec.BLOB_COMMITMENT_VERSION_KZG,\n            ),\n            id=\"single_blob\",\n        ),\n        pytest.param(\n            add_kzg_version(\n                [Hash(x) for x in range(6)],\n                EIP_4844_Spec.BLOB_COMMITMENT_VERSION_KZG,\n            ),\n            id=\"multiple_blobs\",\n        ),\n    ],\n)\n@pytest.mark.parametrize(\n    \"ty\",\n    [pytest.param(3, id=\"type_3\")],\n)\ndef test_transaction_validity_type_3(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    tx: Transaction,\n) -> None:\n    \"\"\"\n    Test transaction validity for transactions with access lists, blobs, but no\n    contract creation.\n    \"\"\"\n    state_test(\n        pre=pre,\n        post={},\n        tx=tx,\n    )\n\n\n@pytest.mark.parametrize(\n    \"access_list\",\n    [\n        pytest.param(\n            None,\n            id=\"no_access_list\",\n        ),\n        pytest.param(\n            [AccessList(address=Address(1), storage_keys=[])],\n            id=\"single_access_list_no_storage_keys\",\n        ),\n        pytest.param(\n            [AccessList(address=Address(1), storage_keys=[Hash(0)])],\n            id=\"single_access_list_single_storage_key\",\n        ),\n        pytest.param(\n            [AccessList(address=Address(1), storage_keys=[Hash(k) for k in range(10)])],\n            id=\"single_access_list_multiple_storage_keys\",\n        ),\n        pytest.param(\n            [AccessList(address=Address(a), storage_keys=[]) for a in range(10)],\n            id=\"multiple_access_lists_no_storage_keys\",\n        ),\n        pytest.param(\n            [AccessList(address=Address(a), storage_keys=[Hash(0)]) for a in range(10)],\n            id=\"multiple_access_lists_single_storage_key\",\n        ),\n        pytest.param(\n            [\n                AccessList(address=Address(a), storage_keys=[Hash(k) for k in range(10)])\n                for a in range(10)\n            ],\n            id=\"multiple_access_lists_multiple_storage_keys\",\n        ),\n    ],\n)\n@pytest.mark.parametrize(\n    \"authorization_list\",\n    [\n        pytest.param(\n            [Address(1)],\n            id=\"single_authorization\",\n        ),\n        pytest.param(\n            [Address(i + 1) for i in range(10)],\n            id=\"multiple_authorizations\",\n        ),\n    ],\n    indirect=True,\n)\n@pytest.mark.parametrize(\n    \"ty\",\n    [pytest.param(4, id=\"type_4\")],\n)\ndef test_transaction_validity_type_4(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    tx: Transaction,\n) -> None:\n    \"\"\"\n    Test transaction validity for transactions with access lists, authorization\n    lists, but no contract creation.\n    \"\"\"\n    state_test(\n        pre=pre,\n        post={},\n        tx=tx,\n    )\n"
  },
  {
    "path": "tests/prague/eip7685_general_purpose_el_requests/__init__.py",
    "content": "\"\"\"Cross-client EIP-7685 Tests.\"\"\"\n"
  },
  {
    "path": "tests/prague/eip7685_general_purpose_el_requests/conftest.py",
    "content": "\"\"\"Fixtures for the EIP-7685 deposit tests.\"\"\"\n\nfrom typing import List, SupportsBytes\n\nimport pytest\n\nfrom ethereum_test_tools import (\n    Alloc,\n    Block,\n    BlockException,\n    Bytes,\n    EngineAPIError,\n    Header,\n    Requests,\n)\n\nfrom ..eip6110_deposits.helpers import DepositInteractionBase, DepositRequest\nfrom ..eip7002_el_triggerable_withdrawals.helpers import (\n    WithdrawalRequest,\n    WithdrawalRequestInteractionBase,\n)\nfrom ..eip7251_consolidations.helpers import (\n    ConsolidationRequest,\n    ConsolidationRequestInteractionBase,\n)\n\n\n@pytest.fixture\ndef block_body_override_requests(\n    request: pytest.FixtureRequest,\n) -> List[DepositRequest | WithdrawalRequest | ConsolidationRequest] | None:\n    \"\"\"\n    List of requests that overwrite the requests in the header. None by\n    default.\n    \"\"\"\n    if hasattr(request, \"param\"):\n        return request.param\n    return None\n\n\n@pytest.fixture\ndef correct_requests_hash_in_header() -> bool:\n    \"\"\"\n    Whether to include the correct requests hash in the header so the\n    calculated block hash is correct, even though the requests in the new\n    payload parameters might be wrong.\n    \"\"\"\n    return False\n\n\n@pytest.fixture\ndef exception() -> BlockException | None:\n    \"\"\"Block exception expected by the tests. None by default.\"\"\"\n    return None\n\n\n@pytest.fixture\ndef engine_api_error_code(\n    block_body_override_requests: List[Bytes | SupportsBytes] | None,\n) -> EngineAPIError | None:\n    \"\"\"Engine API error code if any.\"\"\"\n    if block_body_override_requests is None:\n        return None\n    block_body_override_requests_bytes = [bytes(r) for r in block_body_override_requests]\n    if any(len(r) <= 1 for r in block_body_override_requests_bytes):\n        return EngineAPIError.InvalidParams\n\n    def is_monotonically_increasing(requests: List[bytes]) -> bool:\n        return all(x[0] < y[0] for x, y in zip(requests, requests[1:], strict=False))\n\n    if not is_monotonically_increasing(block_body_override_requests_bytes):\n        return EngineAPIError.InvalidParams\n\n    return None\n\n\n@pytest.fixture\ndef blocks(\n    pre: Alloc,\n    requests: List[\n        DepositInteractionBase\n        | WithdrawalRequestInteractionBase\n        | ConsolidationRequestInteractionBase\n    ],\n    block_body_override_requests: List[Bytes | SupportsBytes] | None,\n    correct_requests_hash_in_header: bool,\n    exception: BlockException | None,\n    engine_api_error_code: EngineAPIError | None,\n) -> List[Block]:\n    \"\"\"List of blocks that comprise the test.\"\"\"\n    valid_requests_list: List[DepositRequest | WithdrawalRequest | ConsolidationRequest] = []\n    # Single block therefore base fee\n    withdrawal_request_fee = 1\n    consolidation_request_fee = 1\n    for r in requests:\n        r.update_pre(pre)\n        if isinstance(r, DepositInteractionBase):\n            valid_requests_list += r.valid_requests(10**18)\n        elif isinstance(r, WithdrawalRequestInteractionBase):\n            valid_requests_list += r.valid_requests(withdrawal_request_fee)\n        elif isinstance(r, ConsolidationRequestInteractionBase):\n            valid_requests_list += r.valid_requests(consolidation_request_fee)\n\n    valid_requests = Requests(*valid_requests_list)\n\n    rlp_modifier: Header | None = None\n    if correct_requests_hash_in_header:\n        rlp_modifier = Header(\n            requests_hash=valid_requests,\n        )\n    return [\n        Block(\n            txs=sum((r.transactions() for r in requests), []),\n            header_verify=Header(requests_hash=valid_requests),\n            requests=block_body_override_requests,\n            exception=exception,\n            rlp_modifier=rlp_modifier,\n            engine_api_error_code=engine_api_error_code,\n        )\n    ]\n"
  },
  {
    "path": "tests/prague/eip7685_general_purpose_el_requests/spec.py",
    "content": "\"\"\"\nCommon procedures to test\n[EIP-7685: General purpose execution\nlayer requests](https://eips.ethereum.org/EIPS/eip-7685).\n\"\"\"\n\nfrom dataclasses import dataclass\n\n\n@dataclass(frozen=True)\nclass ReferenceSpec:\n    \"\"\"Defines the reference spec version and git path.\"\"\"\n\n    git_path: str\n    version: str\n\n\nref_spec_7685 = ReferenceSpec(\"EIPS/eip-7685.md\", \"67ecb425d78f1d40c4f1cb957f3214afd0ece945\")\n"
  },
  {
    "path": "tests/prague/eip7685_general_purpose_el_requests/test_multi_type_requests.py",
    "content": "\"\"\"\nTests EIP-7685 General purpose execution layer requests.\n\nCross testing for withdrawal and deposit request for\n[EIP-7685: General purpose execution layer requests](https://eips.ethereum.org/EIPS/eip-7685).\n\"\"\"\n\nfrom itertools import permutations\nfrom typing import Callable, Dict, Generator, List, Tuple\n\nimport pytest\n\nfrom ethereum_test_base_types.base_types import Address\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    Account,\n    Alloc,\n    Block,\n    BlockchainTestFiller,\n    BlockException,\n    Bytecode,\n    Bytes,\n    Environment,\n    Header,\n    Requests,\n    Storage,\n    TestAddress,\n    Transaction,\n)\nfrom ethereum_test_tools import Opcodes as Op\nfrom ethereum_test_tools.utility.pytest import ParameterSet\nfrom ethereum_test_types import EOA\n\nfrom ..eip6110_deposits.helpers import DepositContract, DepositRequest, DepositTransaction\nfrom ..eip6110_deposits.spec import Spec as Spec_EIP6110\nfrom ..eip7002_el_triggerable_withdrawals.helpers import (\n    WithdrawalRequest,\n    WithdrawalRequestContract,\n    WithdrawalRequestTransaction,\n)\nfrom ..eip7002_el_triggerable_withdrawals.spec import Spec as Spec_EIP7002\nfrom ..eip7251_consolidations.helpers import (\n    ConsolidationRequest,\n    ConsolidationRequestContract,\n    ConsolidationRequestTransaction,\n)\nfrom ..eip7251_consolidations.spec import Spec as Spec_EIP7251\nfrom .spec import ref_spec_7685\n\nREFERENCE_SPEC_GIT_PATH: str = ref_spec_7685.git_path\nREFERENCE_SPEC_VERSION: str = ref_spec_7685.version\n\npytestmark: pytest.MarkDecorator = pytest.mark.valid_from(\"Prague\")\n\n\ndef single_deposit(i: int) -> DepositRequest:  # noqa: D103\n    return DepositRequest(\n        pubkey=(i * 3),\n        withdrawal_credentials=(i * 3) + 1,\n        amount=32_000_000_000,\n        signature=(i * 3) + 2,\n        index=i,\n    )\n\n\ndef single_deposit_from_eoa(i: int) -> DepositTransaction:  # noqa: D103\n    return DepositTransaction(requests=[single_deposit(i)])\n\n\ndef single_deposit_from_contract(i: int) -> DepositContract:  # noqa: D103\n    return DepositContract(requests=[single_deposit(i)])\n\n\ndef single_withdrawal(i: int) -> WithdrawalRequest:  # noqa: D103\n    return WithdrawalRequest(\n        validator_pubkey=i + 1,\n        amount=0,\n        fee=1,\n    )\n\n\ndef single_withdrawal_from_eoa(i: int) -> WithdrawalRequestTransaction:  # noqa: D103\n    return WithdrawalRequestTransaction(requests=[single_withdrawal(i)])\n\n\ndef single_withdrawal_from_contract(i: int) -> WithdrawalRequestContract:  # noqa: D103\n    return WithdrawalRequestContract(requests=[single_withdrawal(i)])\n\n\ndef single_consolidation(i: int) -> ConsolidationRequest:  # noqa: D103\n    return ConsolidationRequest(\n        source_pubkey=(i * 2),\n        target_pubkey=(i * 2) + 1,\n        fee=1,\n    )\n\n\ndef single_consolidation_from_eoa(i: int) -> ConsolidationRequestTransaction:  # noqa: D103\n    return ConsolidationRequestTransaction(requests=[single_consolidation(i)])\n\n\ndef single_consolidation_from_contract(i: int) -> ConsolidationRequestContract:  # noqa: D103\n    return ConsolidationRequestContract(requests=[single_consolidation(i)])\n\n\ndef get_permutations(n: int = 3) -> Generator[ParameterSet, None, None]:\n    \"\"\"Return possible permutations of the requests from an EOA.\"\"\"\n    requests: list = [\n        (\n            \"deposit\",\n            single_deposit(0),\n        ),\n        (\n            \"withdrawal\",\n            single_withdrawal(0),\n        ),\n        (\n            \"consolidation\",\n            single_consolidation(0),\n        ),\n    ]\n    for perm in permutations(requests, n):\n        yield pytest.param([p[1] for p in perm], id=\"+\".join([p[0] for p in perm]))\n\n\ndef get_eoa_permutations(n: int = 3) -> Generator[ParameterSet, None, None]:\n    \"\"\"Return possible permutations of the requests from an EOA.\"\"\"\n    requests: list = [\n        (\n            \"deposit_from_eoa\",\n            single_deposit_from_eoa(0),\n        ),\n        (\n            \"withdrawal_from_eoa\",\n            single_withdrawal_from_eoa(0),\n        ),\n        (\n            \"consolidation_from_eoa\",\n            single_consolidation_from_eoa(0),\n        ),\n    ]\n    for perm in permutations(requests, n):\n        yield pytest.param([p[1] for p in perm], id=\"+\".join([p[0] for p in perm]))\n\n\ndef get_contract_permutations(n: int = 3) -> Generator[ParameterSet, None, None]:\n    \"\"\"Return possible permutations of the requests from a contract.\"\"\"\n    requests: list = [\n        (\n            \"deposit_from_contract\",\n            single_deposit_from_contract(0),\n        ),\n        (\n            \"withdrawal_from_contract\",\n            single_withdrawal_from_contract(0),\n        ),\n        (\n            \"consolidation_from_contract\",\n            single_consolidation_from_contract(0),\n        ),\n    ]\n    for perm in permutations(requests, n):\n        yield pytest.param([p[1] for p in perm], id=\"+\".join([p[0] for p in perm]))\n\n\n@pytest.mark.parametrize(\n    \"requests\",\n    [\n        *get_eoa_permutations(),\n        *get_contract_permutations(),\n        pytest.param(\n            [\n                single_deposit_from_eoa(0),\n                single_withdrawal_from_eoa(0),\n                single_deposit_from_contract(1),\n            ],\n            id=\"deposit_from_eoa+withdrawal_from_eoa+deposit_from_contract\",\n        ),\n        pytest.param(\n            [\n                single_deposit_from_eoa(0),\n                single_consolidation_from_eoa(0),\n                single_deposit_from_contract(1),\n            ],\n            id=\"deposit_from_eoa+consolidation_from_eoa+deposit_from_contract\",\n        ),\n        pytest.param(\n            [\n                single_consolidation_from_eoa(0),\n                single_deposit_from_eoa(0),\n                single_consolidation_from_contract(1),\n            ],\n            id=\"consolidation_from_eoa+deposit_from_eoa+consolidation_from_contract\",\n        ),\n        pytest.param(\n            [\n                single_consolidation_from_eoa(0),\n                single_withdrawal_from_eoa(0),\n                single_consolidation_from_contract(1),\n            ],\n            id=\"consolidation_from_eoa+withdrawal_from_eoa+consolidation_from_contract\",\n        ),\n        pytest.param(\n            [\n                single_withdrawal_from_eoa(0),\n                single_consolidation_from_eoa(0),\n                single_withdrawal_from_contract(1),\n            ],\n            id=\"withdrawal_from_eoa+consolidation_from_eoa+withdrawal_from_contract\",\n        ),\n        pytest.param(\n            [\n                single_withdrawal_from_eoa(0),\n                single_deposit_from_eoa(0),\n                single_withdrawal_from_contract(1),\n            ],\n            id=\"withdrawal_from_eoa+deposit_from_eoa+withdrawal_from_contract\",\n        ),\n        pytest.param(\n            [],\n            id=\"empty_requests\",\n        ),\n        # contract: consolidation + withdrawal\n        pytest.param(\n            [\n                single_withdrawal_from_eoa(0),\n                single_consolidation_from_contract(0),\n                single_withdrawal_from_contract(1),\n            ],\n            id=\"withdrawal_from_eoa+consolidation_from_contract+withdrawal_from_contract\",\n        ),\n        pytest.param(\n            [\n                single_deposit_from_eoa(0),\n                single_consolidation_from_contract(0),\n                single_withdrawal_from_contract(0),\n            ],\n            id=\"deposit_from_eoa+consolidation_from_contract+withdrawal_from_contract\",\n        ),\n        pytest.param(\n            [\n                single_consolidation_from_eoa(0),\n                single_consolidation_from_contract(1),\n                single_withdrawal_from_contract(0),\n            ],\n            id=\"consolidation_from_eoa+consolidation_from_contract+withdrawal_from_contract\",\n        ),\n        # contract: consolidation + deposit\n        pytest.param(\n            [\n                single_withdrawal_from_eoa(0),\n                single_consolidation_from_contract(0),\n                single_deposit_from_contract(0),\n            ],\n            id=\"withdrawal_from_eoa+consolidation_from_contract+deposit_from_contract\",\n        ),\n        pytest.param(\n            [\n                single_deposit_from_eoa(0),\n                single_consolidation_from_contract(0),\n                single_deposit_from_contract(1),\n            ],\n            id=\"deposit_from_eoa+consolidation_from_contract+deposit_from_contract\",\n        ),\n        pytest.param(\n            [\n                single_consolidation_from_eoa(0),\n                single_consolidation_from_contract(1),\n                single_deposit_from_contract(0),\n            ],\n            id=\"consolidation_from_eoa+consolidation_from_contract+deposit_from_contract\",\n        ),\n        # contract: withdrawal + deposit\n        pytest.param(\n            [\n                single_withdrawal_from_eoa(0),\n                single_withdrawal_from_contract(1),\n                single_deposit_from_contract(0),\n            ],\n            id=\"withdrawal_from_eoa+withdrawal_from_contract+deposit_from_contract\",\n        ),\n        pytest.param(\n            [\n                single_deposit_from_eoa(0),\n                single_withdrawal_from_contract(0),\n                single_deposit_from_contract(1),\n            ],\n            id=\"deposit_from_eoa+withdrawal_from_contract+deposit_from_contract\",\n        ),\n        pytest.param(\n            [\n                single_consolidation_from_eoa(0),\n                single_withdrawal_from_contract(0),\n                single_deposit_from_contract(0),\n            ],\n            id=\"consolidation_from_eoa+withdrawal_from_contract+deposit_from_contract\",\n        ),\n        # testing upper limits of each request type per slot if it exists\n        pytest.param(\n            [\n                single_consolidation_from_contract(0),\n                single_consolidation_from_contract(1),\n                # the following performs single_withdrawal_from_contract(0) to\n                # (16)\n                *[\n                    single_withdrawal_from_contract(i)\n                    for i in range(\n                        0,\n                        16,\n                    )\n                ],\n                # single_withdrawal_from_contract(16) not allowed cuz only 16\n                # MAX WITHDRAWALS PER BLOCK (EIP-7002)\n                # the following performs single_deposit_from_contract(0) to\n                # (18)\n                *[\n                    single_deposit_from_contract(i)\n                    for i in range(\n                        0,\n                        18,\n                    )\n                ],\n            ],\n            id=\"max_withdrawals_per_slot+max_consolidations_per_slot+unlimited_deposits_per_slot\",\n        ),\n    ],\n)\n@pytest.mark.pre_alloc_group(\n    \"multi_type_requests\", reason=\"Tests combinations of multiple request types\"\n)\ndef test_valid_multi_type_requests(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    blocks: List[Block],\n) -> None:\n    \"\"\"\n    Test making a deposit to the beacon chain deposit contract and a withdrawal\n    in the same block.\n    \"\"\"\n    blockchain_test(\n        genesis_environment=Environment(),\n        pre=pre,\n        post={},\n        blocks=blocks,\n    )\n\n\n@pytest.mark.parametrize(\"requests\", [*get_permutations()])\n@pytest.mark.pre_alloc_group(\n    \"multi_type_requests\", reason=\"Tests combinations of multiple request types\"\n)\ndef test_valid_multi_type_request_from_same_tx(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    requests: List[DepositRequest | WithdrawalRequest | ConsolidationRequest],\n    fork: Fork,\n) -> None:\n    \"\"\"\n    Test making a deposit to the beacon chain deposit contract and a withdrawal\n    in the same tx.\n    \"\"\"\n    withdrawal_request_fee: int = 1\n    consolidation_request_fee: int = 1\n\n    calldata: bytes = b\"\"\n    contract_code: Bytecode = Bytecode()\n    total_value: int = 0\n    storage: Storage = Storage()\n\n    for request in requests:\n        calldata_start: int = len(calldata)\n        current_calldata: bytes = request.calldata\n        calldata += current_calldata\n\n        contract_code += Op.CALLDATACOPY(0, calldata_start, len(current_calldata))\n\n        call_contract_address: int = 0\n        value: int = 0\n        if isinstance(request, DepositRequest):\n            call_contract_address = Spec_EIP6110.DEPOSIT_CONTRACT_ADDRESS\n            value = request.value\n        elif isinstance(request, WithdrawalRequest):\n            call_contract_address = Spec_EIP7002.WITHDRAWAL_REQUEST_PREDEPLOY_ADDRESS\n            value = withdrawal_request_fee\n        elif isinstance(request, ConsolidationRequest):\n            call_contract_address = Spec_EIP7251.CONSOLIDATION_REQUEST_PREDEPLOY_ADDRESS\n            value = consolidation_request_fee\n\n        total_value += value\n\n        contract_code += Op.SSTORE(\n            storage.store_next(1),\n            Op.CALL(\n                address=call_contract_address,\n                value=value,\n                args_offset=0,\n                args_size=len(current_calldata),\n            ),\n        )\n\n    sender: EOA = pre.fund_eoa()\n    contract_address: Address = pre.deploy_contract(\n        code=contract_code,\n    )\n\n    tx: Transaction = Transaction(\n        gas_limit=10_000_000,\n        to=contract_address,\n        value=total_value,\n        data=calldata,\n        sender=sender,\n    )\n\n    blockchain_test(\n        genesis_environment=Environment(),\n        pre=pre,\n        post={\n            contract_address: Account(\n                storage=storage,\n            )\n        },\n        blocks=[\n            Block(\n                txs=[tx],\n                header_verify=Header(\n                    requests_hash=Requests(\n                        *[\n                            request.with_source_address(contract_address)\n                            for request in sorted(requests, key=lambda r: r.type)\n                        ],\n                    )\n                ),\n            )\n        ],\n    )\n\n\ndef invalid_requests_block_combinations(\n    *,\n    correct_requests_hash_in_header: bool,\n) -> Callable[[Fork], List[ParameterSet]]:\n    \"\"\"\n    Return a list of invalid request combinations for the given fork.\n\n    In the event of a new request type, the `all_request_types` dictionary\n    should be updated with the new request type and its corresponding\n    request-generating transaction.\n\n    Returned parameters are: requests, block_body_override_requests, exception\n    \"\"\"\n\n    def func(fork: Fork) -> List[ParameterSet]:\n        assert fork.max_request_type() == 2, \"Test update is needed for new request types\"\n\n        all_request_types: Dict[\n            str,\n            Tuple[\n                DepositTransaction\n                | WithdrawalRequestTransaction\n                | ConsolidationRequestTransaction,\n                DepositRequest | WithdrawalRequest | ConsolidationRequest,\n            ],\n        ] = {\n            \"deposit\": (\n                single_deposit_from_eoa(0),  # eoa_request\n                single_deposit(0),  # block_request\n            ),\n            \"withdrawal\": (\n                single_withdrawal_from_eoa(0),  # eoa_request\n                single_withdrawal(0).with_source_address(TestAddress),  # block_request\n            ),\n            \"consolidation\": (\n                single_consolidation_from_eoa(0),  # eoa_request\n                single_consolidation(0).with_source_address(TestAddress),  # block_request\n            ),\n        }\n\n        expected_exceptions: List[BlockException] = [BlockException.INVALID_REQUESTS]\n        if correct_requests_hash_in_header:\n            # The client also might reject the block with an invalid-block-hash\n            # error because it might convert the requests in the new payload\n            # parameters to the requests hash in the header and compare it with\n            # the block hash.\n            expected_exceptions.append(BlockException.INVALID_BLOCK_HASH)\n\n        # - Empty requests list with invalid hash\n        combinations: List[ParameterSet] = [\n            pytest.param(\n                [],\n                [\n                    bytes([i]) for i in range(fork.max_request_type() + 1)\n                ],  # Using empty requests, calculate the hash using an invalid\n                # calculation method:\n                # sha256(sha256(b\"\\0\") ++ sha256(b\"\\1\") ++ sha256(b\"\\2\") ++\n                # ...)\n                expected_exceptions,\n                id=\"no_requests_and_invalid_hash_calculation_method\",\n            ),\n            pytest.param(\n                [],\n                [\n                    bytes([]) for _ in range(fork.max_request_type() + 1)\n                ],  # Using empty requests, calculate the hash using an invalid\n                # calculation method:\n                # sha256(sha256(b\"\") ++ sha256(b\"\") ++ sha256(b\"\") ++ ...)\n                expected_exceptions,\n                id=\"no_requests_and_invalid_hash_calculation_method_2\",\n            ),\n        ]\n\n        # - Missing request or request type byte tests\n        for request_type, (eoa_request, block_request) in all_request_types.items():\n            combinations.extend(\n                [\n                    pytest.param(\n                        [eoa_request],\n                        [block_request],  # The request type byte missing because we need to\n                        # use `Requests`\n                        expected_exceptions,\n                        id=f\"single_{request_type}_missing_type_byte\",\n                    ),\n                    pytest.param(\n                        [eoa_request],\n                        [],\n                        expected_exceptions,\n                        id=f\"single_{request_type}_empty_requests_list\",\n                    ),\n                ]\n            )\n\n        # - Incorrect order tests\n        correct_order: List[Bytes] = Requests(\n            *[r[1] for r in all_request_types.values()]\n        ).requests_list  # Requests automatically adds the type byte\n        correct_order_transactions: List[\n            DepositTransaction | WithdrawalRequestTransaction | ConsolidationRequestTransaction\n        ] = [r[0] for r in all_request_types.values()]\n\n        # Send first element to the end\n        combinations.append(\n            pytest.param(\n                correct_order_transactions[1:] + [correct_order_transactions[0]],\n                correct_order[1:] + [correct_order[0]],\n                expected_exceptions,\n                id=\"incorrect_order_first_request_at_end\",\n            ),\n        )\n\n        # Send second element to the end\n        combinations.append(\n            pytest.param(\n                [correct_order_transactions[0]]\n                + correct_order_transactions[2:]\n                + [correct_order_transactions[1]],\n                [correct_order[0]] + correct_order[2:] + [correct_order[1]],\n                expected_exceptions,\n                id=\"incorrect_order_second_request_at_end\",\n            ),\n        )\n\n        # Bring last element to the beginning\n        combinations.append(\n            pytest.param(\n                [correct_order_transactions[-1]] + correct_order_transactions[:-1],\n                [correct_order[-1]] + correct_order[:-1],\n                expected_exceptions,\n                id=\"incorrect_order_last_request_at_beginning\",\n            ),\n        )\n\n        # - Duplicate request tests\n        for request_type, (eoa_request, block_request) in all_request_types.items():\n            combinations.append(\n                pytest.param(\n                    [eoa_request],\n                    Requests(block_request).requests_list * 2,\n                    expected_exceptions,\n                    id=f\"duplicate_{request_type}_request\",\n                ),\n            )\n\n        # - Extra invalid request tests\n        combinations.append(\n            pytest.param(\n                correct_order_transactions,\n                correct_order + [b\"\"],\n                expected_exceptions,\n                id=\"extra_empty_request\",\n            ),\n        )\n        combinations.append(\n            pytest.param(\n                correct_order_transactions,\n                correct_order + [bytes([fork.max_request_type() + 1])],\n                expected_exceptions,\n                id=\"extra_invalid_type_request_with_no_data\",\n            ),\n        )\n        combinations.append(\n            pytest.param(\n                correct_order_transactions,\n                correct_order + [bytes([fork.max_request_type() + 1, 0x00])],\n                expected_exceptions,\n                id=\"extra_invalid_type_request_with_data_0x00\",\n            ),\n        )\n        combinations.append(\n            pytest.param(\n                correct_order_transactions,\n                correct_order + [bytes([fork.max_request_type() + 1, 0x01])],\n                expected_exceptions,\n                id=\"extra_invalid_type_request_with_data_0x01\",\n            ),\n        )\n        combinations.append(\n            pytest.param(\n                correct_order_transactions,\n                correct_order + [bytes([fork.max_request_type() + 1, 0xFF])],\n                expected_exceptions,\n                id=\"extra_invalid_type_request_with_data_0xff\",\n            ),\n        )\n\n        return combinations\n\n    return func\n\n\n@pytest.mark.parametrize_by_fork(\n    \"requests,block_body_override_requests,exception\",\n    invalid_requests_block_combinations(correct_requests_hash_in_header=False),\n)\n@pytest.mark.exception_test\n@pytest.mark.pre_alloc_group(\n    \"multi_type_requests\", reason=\"Tests combinations of multiple request types\"\n)\ndef test_invalid_multi_type_requests(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    blocks: List[Block],\n) -> None:\n    \"\"\"\n    Negative testing for all request types in the same block.\n\n    In these tests, the requests hash in the header reflects what's received in\n    the parameters portion of the `engine_newPayloadVX` call, so the block hash\n    calculation might pass if a client copies the info received verbatim, but\n    block validation must fail after the block is executed (via RLP or Engine\n    API).\n    \"\"\"\n    blockchain_test(\n        genesis_environment=Environment(),\n        pre=pre,\n        post={},\n        blocks=blocks,\n    )\n\n\n@pytest.mark.parametrize_by_fork(\n    \"requests,block_body_override_requests,exception\",\n    invalid_requests_block_combinations(correct_requests_hash_in_header=True),\n)\n@pytest.mark.parametrize(\"correct_requests_hash_in_header\", [True])\n@pytest.mark.blockchain_test_engine_only\n@pytest.mark.exception_test\n@pytest.mark.pre_alloc_group(\n    \"multi_type_requests\", reason=\"Tests combinations of multiple request types\"\n)\ndef test_invalid_multi_type_requests_engine(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    blocks: List[Block],\n) -> None:\n    \"\"\"\n    Negative testing for all request types in the same block with incorrect\n    parameters in the Engine API new payload parameters, but with the correct\n    requests hash in the header so the block hash is correct.\n\n    In these tests, the requests hash in the header reflects what's actually in\n    the executed block, so the block might execute properly if the client\n    ignores the requests in the new payload parameters.\n\n    Note that the only difference between the engine version produced by this\n    test and the ones produced by `test_invalid_multi_type_requests` is the\n    `blockHash` value in the new payloads, which is calculated using different\n    request hashes for each test, but since the request hash is not a value\n    that is included in the payload, it might not be immediately apparent.\n\n    Also these tests would not fail if the block is imported via RLP (syncing\n    from a peer), so we only generate the BlockchainTestEngine for them.\n\n    The client also might reject the block with an invalid-block-hash error\n    because it might convert the requests in the new payload parameters to the\n    requests hash in the header and compare it with the block hash.\n    \"\"\"\n    blockchain_test(\n        genesis_environment=Environment(),\n        pre=pre,\n        post={},\n        blocks=blocks,\n    )\n"
  },
  {
    "path": "tests/prague/eip7702_set_code_tx/__init__.py",
    "content": "\"\"\"Cross-client EIP-7702 Tests.\"\"\"\n"
  },
  {
    "path": "tests/prague/eip7702_set_code_tx/helpers.py",
    "content": "\"\"\"\nHelper types, functions and classes for testing EIP-7702 Set Code Transaction.\n\"\"\"\n\nfrom enum import Enum, auto\n\n\nclass AddressType(Enum):\n    \"\"\"\n    Different types of addresses used to specify the type of authority that\n    signs an authorization, and the type of address to which the authority\n    authorizes to set the code to.\n    \"\"\"\n\n    EMPTY_ACCOUNT = auto()\n    EOA = auto()\n    EOA_WITH_SET_CODE = auto()\n    CONTRACT = auto()\n\n\nclass ChainIDType(Enum):\n    \"\"\"Different types of chain IDs used in the authorization list.\"\"\"\n\n    GENERIC = auto()\n    CHAIN_SPECIFIC = auto()\n"
  },
  {
    "path": "tests/prague/eip7702_set_code_tx/spec.py",
    "content": "\"\"\"Defines EIP-7702 specification constants and functions.\"\"\"\n\nfrom dataclasses import dataclass\n\nfrom ethereum_test_base_types import Address, Bytes\n\n\n@dataclass(frozen=True)\nclass ReferenceSpec:\n    \"\"\"Defines the reference spec version and git path.\"\"\"\n\n    git_path: str\n    version: str\n\n\nref_spec_7702 = ReferenceSpec(\"EIPS/eip-7702.md\", \"99f1be49f37c034bdd5c082946f5968710dbfc87\")\n\n\n@dataclass(frozen=True)\nclass Spec:\n    \"\"\"\n    Parameters from the EIP-7702 specifications as defined at\n    https://eips.ethereum.org/EIPS/eip-7702.\n    \"\"\"\n\n    SET_CODE_TX_TYPE = 0x04\n    MAGIC = 0x05\n    PER_AUTH_BASE_COST = 12_500\n    PER_EMPTY_ACCOUNT_COST = 25_000\n    DELEGATION_DESIGNATION = Bytes(\"ef0100\")\n    RESET_DELEGATION_ADDRESS = Address(0)\n\n    MAX_AUTH_CHAIN_ID = 2**256 - 1\n    MAX_NONCE = 2**64 - 1\n\n    @staticmethod\n    def delegation_designation(address: Address) -> Bytes:\n        \"\"\"Return delegation designation for the given address.\"\"\"\n        return Bytes(Spec.DELEGATION_DESIGNATION + bytes(address))\n"
  },
  {
    "path": "tests/prague/eip7702_set_code_tx/test_calls.py",
    "content": "\"\"\"Test related to making calls to accounts having a delegation set on them.\"\"\"\n\nimport itertools\nfrom enum import Enum, auto, unique\n\nimport pytest\n\nfrom ethereum_test_tools import (\n    Account,\n    Address,\n    Alloc,\n    Environment,\n    StateTestFiller,\n    Transaction,\n)\nfrom ethereum_test_vm import Opcodes as Op\n\npytestmark = pytest.mark.valid_from(\"Prague\")\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-7702.md\"\nREFERENCE_SPEC_VERSION = \"99f1be49f37c034bdd5c082946f5968710dbfc87\"\n\nLEGACY_CALL_FAILURE = 0\nLEGACY_CALL_SUCCESS = 1\n\n\"\"\"Storage addresses for common testing fields\"\"\"\n_slot = itertools.count(1)\nslot_code_worked = next(_slot)\nslot_call_result = next(_slot)\nslot_returndata = next(_slot)\nslot_last_slot = next(_slot)\n\n\"\"\"Storage values for common testing fields\"\"\"\nvalue_code_worked = 0x2015\n\n\nidentity = Address(0x04)\n\n\n@unique\nclass TargetAccountType(Enum):\n    \"\"\"Kinds of target accounts for calls.\"\"\"\n\n    EMPTY = auto()\n    EOA = auto()\n    LEGACY_CONTRACT = auto()\n    LEGACY_CONTRACT_INVALID = auto()\n    LEGACY_CONTRACT_REVERT = auto()\n    IDENTITY_PRECOMPILE = auto()\n\n    def __str__(self) -> str:\n        \"\"\"Return string representation of the enum.\"\"\"\n        return f\"{self.name}\"\n\n\n@pytest.fixture\ndef target_address(pre: Alloc, target_account_type: TargetAccountType) -> Address:\n    \"\"\"Target address of the call depending on required type of account.\"\"\"\n    match target_account_type:\n        case TargetAccountType.EMPTY:\n            return pre.fund_eoa(amount=0)\n        case TargetAccountType.EOA:\n            return pre.fund_eoa()\n        case TargetAccountType.LEGACY_CONTRACT:\n            return pre.deploy_contract(\n                code=Op.STOP,\n            )\n        case TargetAccountType.LEGACY_CONTRACT_INVALID:\n            return pre.deploy_contract(\n                code=Op.INVALID,\n            )\n        case TargetAccountType.LEGACY_CONTRACT_REVERT:\n            return pre.deploy_contract(\n                code=Op.REVERT(0, 0),\n            )\n        case TargetAccountType.IDENTITY_PRECOMPILE:\n            return identity\n\n\n@pytest.mark.parametrize(\"target_account_type\", TargetAccountType)\n@pytest.mark.parametrize(\"delegate\", [True, False])\n@pytest.mark.parametrize(\"call_from_initcode\", [True, False])\ndef test_delegate_call_targets(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    target_account_type: TargetAccountType,\n    target_address: Address,\n    delegate: bool,\n    call_from_initcode: bool,\n) -> None:\n    \"\"\"\n    Test contracts doing delegatecall to various targets resolved via 7702\n    delegation.\n    \"\"\"\n    env = Environment()\n\n    if delegate:\n        target_address = pre.fund_eoa(0, delegation=target_address)\n\n    delegate_call_code = Op.SSTORE(\n        slot_call_result, Op.DELEGATECALL(address=target_address)\n    ) + Op.SSTORE(slot_code_worked, value_code_worked)\n\n    if call_from_initcode:\n        # Call from initcode\n        caller_contract = delegate_call_code + Op.RETURN(0, 0)\n        tx = Transaction(\n            sender=pre.fund_eoa(),\n            to=None,\n            data=caller_contract,\n            gas_limit=4_000_000,\n        )\n        calling_contract_address = tx.created_contract\n    else:\n        # Normal call from existing contract\n        caller_contract = delegate_call_code + Op.STOP\n        calling_contract_address = pre.deploy_contract(caller_contract)\n\n        tx = Transaction(\n            sender=pre.fund_eoa(),\n            to=calling_contract_address,\n            gas_limit=4_000_000,\n        )\n\n    calling_storage = {\n        slot_code_worked: value_code_worked,\n        slot_call_result: LEGACY_CALL_FAILURE\n        if target_account_type\n        in [TargetAccountType.LEGACY_CONTRACT_INVALID, TargetAccountType.LEGACY_CONTRACT_REVERT]\n        else LEGACY_CALL_SUCCESS,\n    }\n\n    post = {\n        calling_contract_address: Account(storage=calling_storage),\n    }\n\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n"
  },
  {
    "path": "tests/prague/eip7702_set_code_tx/test_eip_mainnet.py",
    "content": "\"\"\"\nabstract: Crafted tests for mainnet of [EIP-7702: Set EOA account code for one transaction](https://eips.ethereum.org/EIPS/eip-7702).\n\"\"\"  # noqa: E501\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    Account,\n    Alloc,\n    AuthorizationTuple,\n    StateTestFiller,\n    Storage,\n    Transaction,\n)\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom .spec import Spec, ref_spec_7702\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_7702.git_path\nREFERENCE_SPEC_VERSION = ref_spec_7702.version\n\npytestmark = [pytest.mark.valid_at(\"Prague\"), pytest.mark.mainnet]\n\n\ndef test_eip_7702(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    fork: Fork,\n) -> None:\n    \"\"\"Test the executing a simple SSTORE in a set-code transaction.\"\"\"\n    storage = Storage()\n    sender = pre.fund_eoa()\n    auth_signer = sender\n\n    tx_value = 1\n\n    set_code = (\n        Op.SSTORE(storage.store_next(sender), Op.ORIGIN)\n        + Op.SSTORE(storage.store_next(sender), Op.CALLER)\n        + Op.SSTORE(storage.store_next(tx_value), Op.CALLVALUE)\n        + Op.STOP\n    )\n    set_code_to_address = pre.deploy_contract(\n        set_code,\n    )\n    authorization_list = [\n        AuthorizationTuple(\n            address=set_code_to_address,\n            nonce=1,\n            signer=auth_signer,\n        ),\n    ]\n    gas_costs = fork.gas_costs()\n    intrinsic_gas_cost_calc = fork.transaction_intrinsic_cost_calculator()\n    intrinsic_gas_cost = intrinsic_gas_cost_calc(\n        access_list=[],\n        authorization_list_or_count=authorization_list,\n    )\n    execution_cost = (\n        (gas_costs.G_COLD_SLOAD + gas_costs.G_STORAGE_SET) * 3\n        + (gas_costs.G_VERY_LOW * 3)\n        + (gas_costs.G_BASE * 3)\n    )\n\n    tx = Transaction(\n        gas_limit=intrinsic_gas_cost + execution_cost,\n        to=auth_signer,\n        value=tx_value,\n        authorization_list=authorization_list,\n        sender=sender,\n    )\n\n    state_test(\n        pre=pre,\n        tx=tx,\n        post={\n            set_code_to_address: Account(\n                storage=dict.fromkeys(storage, 0),\n            ),\n            auth_signer: Account(\n                nonce=2,\n                code=Spec.delegation_designation(set_code_to_address),\n                storage=storage,\n            ),\n        },\n    )\n"
  },
  {
    "path": "tests/prague/eip7702_set_code_tx/test_gas.py",
    "content": "\"\"\"\nTests related to gas of set-code transactions from EIP-7702.\n\nTests related to gas of set-code transactions from\n[EIP-7702: Set EOA account code for one transaction](https://eips.ethereum.org/EIPS/eip-7702).\n\"\"\"\n\nfrom dataclasses import dataclass\nfrom enum import Enum, auto\nfrom itertools import cycle\nfrom typing import Dict, Generator, Iterator, List\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    EOA,\n    AccessList,\n    Account,\n    Address,\n    Alloc,\n    AuthorizationTuple,\n    Bytecode,\n    Bytes,\n    ChainConfig,\n    CodeGasMeasure,\n    StateTestFiller,\n    Storage,\n    Transaction,\n    TransactionException,\n    TransactionReceipt,\n    extend_with_defaults,\n)\nfrom ethereum_test_tools import Opcodes as Op\n\nfrom .helpers import AddressType, ChainIDType\nfrom .spec import Spec, ref_spec_7702\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_7702.git_path\nREFERENCE_SPEC_VERSION = ref_spec_7702.version\n\npytestmark = pytest.mark.valid_from(\"Prague\")\n\n# Enum classes used to parametrize the tests\n\n\nclass SignerType(Enum):\n    \"\"\"\n    Different cases of authorization lists for testing gas cost of set-code\n    transactions.\n    \"\"\"\n\n    SINGLE_SIGNER = auto()\n    MULTIPLE_SIGNERS = auto()\n\n\nclass AuthorizationInvalidityType(Enum):\n    \"\"\"Different types of invalidity for the authorization list.\"\"\"\n\n    INVALID_NONCE = auto()\n    REPEATED_NONCE = auto()\n    INVALID_CHAIN_ID = auto()\n    AUTHORITY_IS_CONTRACT = auto()\n\n\nclass AccessListType(Enum):\n    \"\"\"\n    Different cases of access lists for testing gas cost of set-code\n    transactions.\n    \"\"\"\n\n    EMPTY = auto()\n    CONTAINS_AUTHORITY = auto()\n    CONTAINS_SET_CODE_ADDRESS = auto()\n    CONTAINS_AUTHORITY_AND_SET_CODE_ADDRESS = auto()\n\n    def contains_authority(self) -> bool:\n        \"\"\"Return True if the access list contains the authority address.\"\"\"\n        return self in {\n            AccessListType.CONTAINS_AUTHORITY,\n            AccessListType.CONTAINS_AUTHORITY_AND_SET_CODE_ADDRESS,\n        }\n\n    def contains_set_code_address(self) -> bool:\n        \"\"\"\n        Return True if the access list contains the address to which the\n        authority authorizes to set the code to.\n        \"\"\"\n        return self in {\n            AccessListType.CONTAINS_SET_CODE_ADDRESS,\n            AccessListType.CONTAINS_AUTHORITY_AND_SET_CODE_ADDRESS,\n        }\n\n\n# Fixtures used to parametrize the tests\n\n\n@dataclass(kw_only=True)\nclass AuthorityWithProperties:\n    \"\"\"Dataclass to hold the properties of the authority address.\"\"\"\n\n    authority: EOA\n    \"\"\"The address of the authority to be used in the transaction.\"\"\"\n    address_type: AddressType\n    \"\"\"The type of the address the authority was before the authorization.\"\"\"\n    invalidity_type: AuthorizationInvalidityType | None\n    \"\"\"\n    Whether the authorization will be invalid and if so, which type of\n    invalidity it is.\n    \"\"\"\n\n    @property\n    def empty(self) -> bool:\n        \"\"\"\n        Return True if the authority address is an empty account before the\n        authorization.\n        \"\"\"\n        return self.address_type == AddressType.EMPTY_ACCOUNT\n\n\n@pytest.fixture()\ndef authority_iterator(\n    pre: Alloc,\n    sender: EOA,\n    authority_type: AddressType | List[AddressType],\n    authorize_to_address: Address,\n    self_sponsored: bool,\n) -> Iterator[AuthorityWithProperties]:\n    \"\"\"Fixture to return the generator for the authority addresses.\"\"\"\n    authority_type_iterator = (\n        cycle([authority_type])\n        if isinstance(authority_type, AddressType)\n        else cycle(authority_type)\n    )\n\n    def generator(\n        authority_type_iterator: Iterator[AddressType],\n    ) -> Generator[AuthorityWithProperties, None, None]:\n        for i, current_authority_type in enumerate(authority_type_iterator):\n            match current_authority_type:\n                case AddressType.EMPTY_ACCOUNT:\n                    assert not self_sponsored, (\n                        \"Self-sponsored empty-account authority is not supported\"\n                    )\n                    yield AuthorityWithProperties(\n                        authority=pre.fund_eoa(0),\n                        address_type=current_authority_type,\n                        invalidity_type=None,\n                    )\n                case AddressType.EOA:\n                    if i == 0 and self_sponsored:\n                        yield AuthorityWithProperties(\n                            authority=sender,\n                            address_type=current_authority_type,\n                            invalidity_type=None,\n                        )\n                    else:\n                        yield AuthorityWithProperties(\n                            authority=pre.fund_eoa(),\n                            address_type=current_authority_type,\n                            invalidity_type=None,\n                        )\n                case AddressType.EOA_WITH_SET_CODE:\n                    if i == 0 and self_sponsored:\n                        yield AuthorityWithProperties(\n                            authority=sender,\n                            address_type=current_authority_type,\n                            invalidity_type=None,\n                        )\n                    else:\n                        yield AuthorityWithProperties(\n                            authority=pre.fund_eoa(0, delegation=authorize_to_address),\n                            address_type=current_authority_type,\n                            invalidity_type=None,\n                        )\n                case AddressType.CONTRACT:\n                    assert not self_sponsored or i > 0, (\n                        \"Self-sponsored contract authority is not supported\"\n                    )\n                    authority = pre.fund_eoa()\n                    authority_account = pre[authority]\n                    assert authority_account is not None\n                    authority_account.code = Bytes(Op.STOP)\n                    yield AuthorityWithProperties(\n                        authority=authority,\n                        address_type=current_authority_type,\n                        invalidity_type=AuthorizationInvalidityType.AUTHORITY_IS_CONTRACT,\n                    )\n                case _:\n                    raise ValueError(f\"Unsupported authority type: {current_authority_type}\")\n\n    return generator(authority_type_iterator)\n\n\n@dataclass(kw_only=True)\nclass AuthorizationWithProperties:\n    \"\"\"Dataclass to hold the properties of the authorization list.\"\"\"\n\n    tuple: AuthorizationTuple\n    \"\"\"The authorization tuple to be used in the transaction.\"\"\"\n    invalidity_type: AuthorizationInvalidityType | None\n    \"\"\"\n    Whether the authorization is invalid and if so, which type of invalidity it\n    is.\n    \"\"\"\n    authority_type: AddressType\n    \"\"\"The type of the address the authority was before the authorization.\"\"\"\n    skip: bool\n    \"\"\"\n    Whether the authorization should be skipped and therefore not included in\n    the transaction.\n\n    Used for tests where the authorization was already in the state before the\n    transaction was created.\n    \"\"\"\n\n    @property\n    def empty(self) -> bool:\n        \"\"\"\n        Return True if the authority address is an empty account before the\n        authorization.\n        \"\"\"\n        return self.authority_type == AddressType.EMPTY_ACCOUNT\n\n\n@pytest.fixture\ndef authorization_list_with_properties(\n    chain_config: ChainConfig,\n    signer_type: SignerType,\n    authorization_invalidity_type: AuthorizationInvalidityType | None,\n    authorizations_count: int,\n    invalid_authorization_index: int,\n    chain_id_type: ChainIDType,\n    authority_iterator: Iterator[AuthorityWithProperties],\n    authorize_to_address: Address,\n    self_sponsored: bool,\n    re_authorize: bool,\n) -> List[AuthorizationWithProperties]:\n    \"\"\"\n    Fixture to return the authorization-list-with-properties for the given\n    case.\n    \"\"\"\n    authorization_list: List[AuthorizationWithProperties] = []\n    environment_chain_id = chain_config.chain_id\n    match signer_type:\n        case SignerType.SINGLE_SIGNER:\n            authority_with_properties = next(authority_iterator)\n            # We have to take into account the cases where the nonce has\n            # already been increased before the authorization is processed.\n            increased_nonce = (\n                self_sponsored\n                or authority_with_properties.address_type == AddressType.EOA_WITH_SET_CODE\n            )\n            for i in range(authorizations_count):\n                # Get the validity of this authorization\n                invalidity_type: AuthorizationInvalidityType | None\n                if authorization_invalidity_type is None or (\n                    authorization_invalidity_type == AuthorizationInvalidityType.REPEATED_NONCE\n                    and i == 0\n                ):\n                    invalidity_type = authority_with_properties.invalidity_type\n                else:\n                    if i == invalid_authorization_index or invalid_authorization_index == -1:\n                        invalidity_type = authorization_invalidity_type\n                    else:\n                        invalidity_type = authority_with_properties.invalidity_type\n\n                # Get the nonce of this authorization\n                match invalidity_type:\n                    case AuthorizationInvalidityType.INVALID_NONCE:\n                        nonce = 0 if increased_nonce else 1\n                    case AuthorizationInvalidityType.REPEATED_NONCE:\n                        nonce = 1 if increased_nonce else 0\n                    case _:\n                        nonce = i if not increased_nonce else i + 1\n                chain_id = 0 if chain_id_type == ChainIDType.GENERIC else environment_chain_id\n                if invalidity_type == AuthorizationInvalidityType.INVALID_CHAIN_ID:\n                    chain_id = environment_chain_id + 1\n\n                skip = (\n                    authority_with_properties.address_type == AddressType.EOA_WITH_SET_CODE\n                    and not re_authorize\n                )\n                authorization_list.append(\n                    AuthorizationWithProperties(\n                        tuple=AuthorizationTuple(\n                            chain_id=chain_id,\n                            address=authorize_to_address,\n                            nonce=nonce,\n                            signer=authority_with_properties.authority,\n                        ),\n                        invalidity_type=invalidity_type,\n                        authority_type=authority_with_properties.address_type,\n                        skip=skip,\n                    )\n                )\n            return authorization_list\n\n        case SignerType.MULTIPLE_SIGNERS:\n            if authorization_invalidity_type == AuthorizationInvalidityType.REPEATED_NONCE:\n                # Reuse the first two authorities for the repeated nonce case\n                authority_iterator = cycle([next(authority_iterator), next(authority_iterator)])\n\n            for i in range(authorizations_count):\n                authority_with_properties = next(authority_iterator)\n                # Get the validity of this authorization\n                if authorization_invalidity_type is None or (\n                    authorization_invalidity_type == AuthorizationInvalidityType.REPEATED_NONCE\n                    and i <= 1\n                ):\n                    invalidity_type = authority_with_properties.invalidity_type\n                else:\n                    if i == invalid_authorization_index or invalid_authorization_index == -1:\n                        invalidity_type = authorization_invalidity_type\n                    else:\n                        invalidity_type = authority_with_properties.invalidity_type\n\n                # Get the nonce of this authorization\n                increased_nonce = (\n                    self_sponsored and i == 0\n                ) or authority_with_properties.address_type == AddressType.EOA_WITH_SET_CODE\n                if increased_nonce:\n                    if invalidity_type == AuthorizationInvalidityType.INVALID_NONCE:\n                        nonce = 0\n                    else:\n                        nonce = 1\n                else:\n                    if invalidity_type == AuthorizationInvalidityType.INVALID_NONCE:\n                        nonce = 1\n                    else:\n                        nonce = 0\n\n                chain_id = 0 if chain_id_type == ChainIDType.GENERIC else environment_chain_id\n                if invalidity_type == AuthorizationInvalidityType.INVALID_CHAIN_ID:\n                    chain_id = environment_chain_id + 1\n\n                skip = False\n                if (\n                    authority_with_properties.address_type == AddressType.EOA_WITH_SET_CODE\n                    and not re_authorize\n                ):\n                    skip = True\n                authorization_list.append(\n                    AuthorizationWithProperties(\n                        tuple=AuthorizationTuple(\n                            chain_id=chain_id,\n                            address=authorize_to_address,\n                            nonce=nonce,\n                            signer=authority_with_properties.authority,\n                        ),\n                        invalidity_type=invalidity_type,\n                        authority_type=authority_with_properties.address_type,\n                        skip=skip,\n                    )\n                )\n            return authorization_list\n        case _:\n            raise ValueError(f\"Unsupported authorization list case: {signer_type}\")\n\n\n@pytest.fixture\ndef authorization_list(\n    authorization_list_with_properties: List[AuthorizationWithProperties],\n) -> List[AuthorizationTuple]:\n    \"\"\"Fixture to return the authorization list for the given case.\"\"\"\n    return [\n        authorization_tuple.tuple\n        for authorization_tuple in authorization_list_with_properties\n        if not authorization_tuple.skip\n    ]\n\n\n@pytest.fixture()\ndef authorize_to_address(request: pytest.FixtureRequest, pre: Alloc) -> Address:\n    \"\"\"\n    Fixture to return the address to which the authority authorizes to set the\n    code to.\n    \"\"\"\n    match request.param:\n        case AddressType.EMPTY_ACCOUNT:\n            return pre.fund_eoa(0)\n        case AddressType.EOA:\n            return pre.fund_eoa(1)\n        case AddressType.CONTRACT:\n            return pre.deploy_contract(Op.STOP)\n    raise ValueError(f\"Unsupported authorization address case: {request.param}\")\n\n\n@pytest.fixture()\ndef access_list(\n    access_list_case: AccessListType,\n    authorization_list: List[AuthorizationTuple],\n) -> List[AccessList]:\n    \"\"\"Fixture to return the access list for the given case.\"\"\"\n    access_list: List[AccessList] = []\n    if access_list_case == AccessListType.EMPTY:\n        return access_list\n\n    if access_list_case.contains_authority():\n        authority_set = {a.signer for a in authorization_list}\n        access_list.extend(\n            AccessList(address=authority, storage_keys=[0]) for authority in authority_set\n        )\n\n    if access_list_case.contains_set_code_address():\n        authorized_addresses = {a.address for a in authorization_list}\n        access_list.extend(\n            AccessList(address=address, storage_keys=[0]) for address in authorized_addresses\n        )\n\n    return access_list\n\n\n@pytest.fixture()\ndef sender(\n    pre: Alloc,\n    authority_type: AddressType | List[AddressType],\n    authorize_to_address: Address,\n    self_sponsored: bool,\n) -> EOA:\n    \"\"\"Fixture to return the sender address.\"\"\"\n    if self_sponsored and (\n        (isinstance(authority_type, list) and AddressType.EOA_WITH_SET_CODE in authority_type)\n        or (authority_type == AddressType.EOA_WITH_SET_CODE)\n    ):\n        return pre.fund_eoa(delegation=authorize_to_address)\n    return pre.fund_eoa()\n\n\n# Helper functions to parametrize the tests\n\n\ndef gas_test_parameter_args(\n    include_many: bool = True,\n    include_data: bool = True,\n    include_pre_authorized: bool = True,\n    execution_gas_allowance: bool = False,\n) -> dict:\n    \"\"\"\n    Return the parametrize decorator that can be used in all gas test\n    functions.\n    \"\"\"\n    multiple_authorizations_count = 2\n\n    defaults = {\n        \"signer_type\": SignerType.SINGLE_SIGNER,\n        \"authorization_invalidity_type\": None,\n        \"authorizations_count\": 1,\n        \"invalid_authorization_index\": -1,  # All authorizations are equally\n        # invalid\n        \"chain_id_type\": ChainIDType.GENERIC,\n        \"authorize_to_address\": AddressType.EMPTY_ACCOUNT,\n        \"access_list_case\": AccessListType.EMPTY,\n        \"self_sponsored\": False,\n        \"re_authorize\": False,\n        \"authority_type\": AddressType.EMPTY_ACCOUNT,\n        \"data\": b\"\",\n    }\n\n    cases = [\n        pytest.param(\n            {\n                \"signer_type\": SignerType.SINGLE_SIGNER,\n                \"authorizations_count\": 1,\n            },\n            id=\"single_valid_authorization_single_signer\",\n        ),\n        pytest.param(\n            {\n                \"signer_type\": SignerType.SINGLE_SIGNER,\n                \"authorizations_count\": 1,\n                \"chain_id_type\": ChainIDType.CHAIN_SPECIFIC,\n            },\n            id=\"single_valid_chain_specific_authorization_single_signer\",\n        ),\n        pytest.param(\n            {\n                \"signer_type\": SignerType.SINGLE_SIGNER,\n                \"authorizations_count\": multiple_authorizations_count,\n            },\n            id=\"multiple_valid_authorizations_single_signer\",\n        ),\n        pytest.param(\n            {\n                \"signer_type\": SignerType.SINGLE_SIGNER,\n                \"authorization_invalidity_type\": AuthorizationInvalidityType.INVALID_NONCE,\n                \"authorizations_count\": 1,\n            },\n            id=\"single_invalid_nonce_authorization_single_signer\",\n        ),\n        pytest.param(\n            {\n                \"signer_type\": SignerType.SINGLE_SIGNER,\n                \"authorization_invalidity_type\": AuthorizationInvalidityType.INVALID_CHAIN_ID,\n                \"authorizations_count\": 1,\n            },\n            id=\"single_invalid_authorization_invalid_chain_id_single_signer\",\n        ),\n        pytest.param(\n            {\n                \"authority_type\": AddressType.EOA_WITH_SET_CODE,\n                \"signer_type\": SignerType.MULTIPLE_SIGNERS,\n                \"re_authorize\": True,\n                \"authorization_invalidity_type\": AuthorizationInvalidityType.INVALID_NONCE,\n                \"authorizations_count\": multiple_authorizations_count,\n                \"invalid_authorization_index\": 0,\n            },\n            id=\"single_invalid_authorization_eoa_authority_multiple_signers_1\",\n        ),\n        pytest.param(\n            {\n                \"authority_type\": AddressType.EOA_WITH_SET_CODE,\n                \"signer_type\": SignerType.MULTIPLE_SIGNERS,\n                \"re_authorize\": True,\n                \"authorization_invalidity_type\": AuthorizationInvalidityType.INVALID_NONCE,\n                \"authorizations_count\": multiple_authorizations_count,\n                \"invalid_authorization_index\": multiple_authorizations_count - 1,\n            },\n            id=\"single_invalid_authorization_eoa_authority_multiple_signers_2\",\n        ),\n        pytest.param(\n            {\n                \"signer_type\": SignerType.SINGLE_SIGNER,\n                \"authorization_invalidity_type\": AuthorizationInvalidityType.INVALID_NONCE,\n                \"authorizations_count\": multiple_authorizations_count,\n            },\n            id=\"multiple_invalid_nonce_authorizations_single_signer\",\n        ),\n        pytest.param(\n            {\n                \"signer_type\": SignerType.MULTIPLE_SIGNERS,\n                \"authorization_invalidity_type\": AuthorizationInvalidityType.INVALID_NONCE,\n                \"authorizations_count\": multiple_authorizations_count,\n            },\n            id=\"multiple_invalid_nonce_authorizations_multiple_signers\",\n        ),\n        pytest.param(\n            {\n                \"signer_type\": SignerType.MULTIPLE_SIGNERS,\n                \"authority_type\": AddressType.EOA,\n                \"authorization_invalidity_type\": AuthorizationInvalidityType.INVALID_NONCE,\n                \"self_sponsored\": True,\n                \"authorizations_count\": multiple_authorizations_count,\n            },\n            id=\"multiple_invalid_nonce_authorizations_self_sponsored_multiple_signers\",\n        ),\n        pytest.param(\n            {\n                \"signer_type\": SignerType.SINGLE_SIGNER,\n                \"authorization_invalidity_type\": AuthorizationInvalidityType.INVALID_CHAIN_ID,\n                \"authorizations_count\": multiple_authorizations_count,\n            },\n            id=\"multiple_invalid_chain_id_authorizations_single_signer\",\n        ),\n        pytest.param(\n            {\n                \"signer_type\": SignerType.MULTIPLE_SIGNERS,\n                \"authorizations_count\": multiple_authorizations_count,\n            },\n            id=\"multiple_valid_authorizations_multiple_signers\",\n        ),\n        pytest.param(\n            {\n                \"signer_type\": SignerType.SINGLE_SIGNER,\n                \"authorization_invalidity_type\": AuthorizationInvalidityType.REPEATED_NONCE,\n                \"authorizations_count\": multiple_authorizations_count,\n            },\n            id=\"first_valid_then_single_repeated_nonce_authorization\",\n        ),\n        pytest.param(\n            {\n                \"signer_type\": SignerType.MULTIPLE_SIGNERS,\n                \"authorization_invalidity_type\": AuthorizationInvalidityType.REPEATED_NONCE,\n                \"authorizations_count\": multiple_authorizations_count * 2,\n            },\n            id=\"first_valid_then_single_repeated_nonce_authorizations_multiple_signers\",\n        ),\n        pytest.param(\n            {\n                \"authorize_to_address\": AddressType.EOA,\n            },\n            id=\"single_valid_authorization_to_eoa\",\n        ),\n        pytest.param(\n            {\n                \"authorize_to_address\": AddressType.CONTRACT,\n            },\n            id=\"single_valid_authorization_to_contract\",\n        ),\n        pytest.param(\n            {\n                \"access_list_case\": AccessListType.CONTAINS_AUTHORITY,\n            },\n            id=\"single_valid_authorization_with_authority_in_access_list\",\n        ),\n        pytest.param(\n            {\n                \"access_list_case\": AccessListType.CONTAINS_SET_CODE_ADDRESS,\n            },\n            id=\"single_valid_authorization_with_set_code_address_in_access_list\",\n        ),\n        pytest.param(\n            {\n                \"access_list_case\": AccessListType.CONTAINS_AUTHORITY_AND_SET_CODE_ADDRESS,\n            },\n            id=\"single_valid_authorization_with_authority_and_set_code_address_in_access_list\",\n        ),\n        pytest.param(\n            {\n                \"authority_type\": AddressType.EOA,\n            },\n            id=\"single_valid_authorization_eoa_authority\",\n        ),\n        pytest.param(\n            {\n                \"authority_type\": AddressType.EOA_WITH_SET_CODE,\n                \"re_authorize\": True,\n            },\n            id=\"single_valid_re_authorization_eoa_authority\",\n        ),\n        pytest.param(\n            {\n                \"authority_type\": AddressType.EOA,\n                \"authorizations_count\": multiple_authorizations_count,\n            },\n            id=\"multiple_valid_authorizations_eoa_authority\",\n        ),\n        pytest.param(\n            {\n                \"self_sponsored\": True,\n                \"authority_type\": AddressType.EOA,\n            },\n            id=\"single_valid_authorization_eoa_self_sponsored_authority\",\n        ),\n        pytest.param(\n            {\n                \"self_sponsored\": True,\n                \"authority_type\": AddressType.EOA,\n                \"authorizations_count\": multiple_authorizations_count,\n            },\n            id=\"multiple_valid_authorizations_eoa_self_sponsored_authority\",\n        ),\n        pytest.param(\n            {\n                \"authority_type\": AddressType.CONTRACT,\n            },\n            marks=pytest.mark.pre_alloc_modify,\n            id=\"single_valid_authorization_invalid_contract_authority\",\n        ),\n        pytest.param(\n            {\n                \"signer_type\": SignerType.MULTIPLE_SIGNERS,\n                \"authority_type\": [AddressType.EMPTY_ACCOUNT, AddressType.CONTRACT],\n                \"authorizations_count\": multiple_authorizations_count,\n            },\n            marks=pytest.mark.pre_alloc_modify,\n            id=\"multiple_authorizations_empty_account_then_contract_authority\",\n        ),\n        pytest.param(\n            {\n                \"signer_type\": SignerType.MULTIPLE_SIGNERS,\n                \"authority_type\": [AddressType.EOA, AddressType.CONTRACT],\n                \"authorizations_count\": multiple_authorizations_count,\n            },\n            marks=pytest.mark.pre_alloc_modify,\n            id=\"multiple_authorizations_eoa_then_contract_authority\",\n        ),\n        pytest.param(\n            {\n                \"self_sponsored\": True,\n                \"signer_type\": SignerType.MULTIPLE_SIGNERS,\n                \"authority_type\": [AddressType.EOA, AddressType.CONTRACT],\n                \"authorizations_count\": multiple_authorizations_count,\n            },\n            marks=pytest.mark.pre_alloc_modify,\n            id=\"multiple_authorizations_eoa_self_sponsored_then_contract_authority\",\n        ),\n    ]\n\n    if include_pre_authorized:\n        cases += [\n            pytest.param(\n                {\n                    \"authority_type\": AddressType.EOA_WITH_SET_CODE,\n                    \"re_authorize\": False,\n                },\n                id=\"pre_authorized_eoa_authority_no_re_authorization\",\n            ),\n            pytest.param(\n                {\n                    \"authority_type\": AddressType.EOA_WITH_SET_CODE,\n                    \"re_authorize\": False,\n                    \"self_sponsored\": True,\n                },\n                id=\"pre_authorized_eoa_authority_no_re_authorization_self_sponsored\",\n            ),\n        ]\n\n    if include_data:\n        cases += [\n            pytest.param(\n                {\n                    \"data\": b\"\\x01\",\n                },\n                id=\"single_valid_authorization_with_single_non_zero_byte_data\",\n            ),\n            pytest.param(\n                {\n                    \"data\": b\"\\x00\",\n                },\n                id=\"single_valid_authorization_with_single_zero_byte_data\",\n            ),\n        ]\n\n    if include_many:\n        # Fit as many authorizations as possible within the transaction gas\n        # limit.\n        max_gas = 16_777_216 - 21_000\n        if execution_gas_allowance:\n            # Leave some gas for the execution of the test code.\n            max_gas -= 1_000_000\n        many_authorizations_count = max_gas // Spec.PER_EMPTY_ACCOUNT_COST\n        cases += [\n            pytest.param(\n                {\n                    \"signer_type\": SignerType.SINGLE_SIGNER,\n                    \"authorizations_count\": many_authorizations_count,\n                },\n                id=\"many_valid_authorizations_single_signer\",\n            ),\n            pytest.param(\n                {\n                    \"signer_type\": SignerType.MULTIPLE_SIGNERS,\n                    \"authorizations_count\": many_authorizations_count,\n                },\n                id=\"many_valid_authorizations_multiple_signers\",\n            ),\n            pytest.param(\n                {\n                    \"signer_type\": SignerType.SINGLE_SIGNER,\n                    \"authorization_invalidity_type\": AuthorizationInvalidityType.REPEATED_NONCE,\n                    \"authorizations_count\": many_authorizations_count,\n                },\n                id=\"first_valid_then_many_duplicate_authorizations\",\n            ),\n        ]\n    return extend_with_defaults(cases=cases, defaults=defaults, indirect=[\"authorize_to_address\"])\n\n\n# Tests\n\n\n@pytest.mark.parametrize(\n    **gas_test_parameter_args(include_pre_authorized=False, execution_gas_allowance=True)\n)\n@pytest.mark.slow()\ndef test_gas_cost(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    fork: Fork,\n    authorization_list_with_properties: List[AuthorizationWithProperties],\n    authorization_list: List[AuthorizationTuple],\n    data: bytes,\n    access_list: List[AccessList],\n    sender: EOA,\n) -> None:\n    \"\"\"\n    Test gas at the execution start of a set-code transaction in multiple\n    scenarios.\n    \"\"\"\n    # Calculate the intrinsic gas cost of the authorizations, by default the\n    # full empty account cost is charged for each authorization.\n    intrinsic_gas = fork.transaction_intrinsic_cost_calculator()(\n        calldata=data,\n        access_list=access_list,\n        authorization_list_or_count=authorization_list,\n    )\n\n    discounted_authorizations = 0\n    seen_authority = set()\n    for authorization_with_properties in authorization_list_with_properties:\n        if authorization_with_properties.invalidity_type is None:\n            authority = authorization_with_properties.tuple.signer\n            if not authorization_with_properties.empty:\n                seen_authority.add(authority)\n            if authority in seen_authority:\n                discounted_authorizations += 1\n            else:\n                seen_authority.add(authority)\n\n    discount_gas = (\n        Spec.PER_EMPTY_ACCOUNT_COST - Spec.PER_AUTH_BASE_COST\n    ) * discounted_authorizations\n\n    # We calculate the exact gas required to execute the test code. We add\n    # SSTORE opcodes in order to make sure that the refund is less than one\n    # fifth (EIP-3529) of the total gas used, so we can see the full discount\n    # being reflected in most of the tests.\n    gas_costs = fork.gas_costs()\n    gas_opcode_cost = gas_costs.G_BASE\n    sstore_opcode_count = 10\n    push_opcode_count = (2 * (sstore_opcode_count)) - 1\n    push_opcode_cost = gas_costs.G_VERY_LOW * push_opcode_count\n    sstore_opcode_cost = gas_costs.G_STORAGE_SET * sstore_opcode_count\n    cold_storage_cost = gas_costs.G_COLD_SLOAD * sstore_opcode_count\n\n    execution_gas = gas_opcode_cost + push_opcode_cost + sstore_opcode_cost + cold_storage_cost\n\n    # The first opcode that executes in the code is the GAS opcode, which costs\n    # 2 gas, so we subtract that from the expected gas measure.\n    expected_gas_measure = execution_gas - gas_opcode_cost\n\n    test_code_storage = Storage()\n    test_code = (\n        Op.SSTORE(test_code_storage.store_next(expected_gas_measure), Op.GAS)\n        + sum(\n            Op.SSTORE(test_code_storage.store_next(1), 1) for _ in range(sstore_opcode_count - 1)\n        )\n        + Op.STOP\n    )\n    test_code_address = pre.deploy_contract(test_code)\n\n    tx_gas_limit = intrinsic_gas + execution_gas\n\n    # EIP-3529\n    max_discount = tx_gas_limit // 5\n\n    if discount_gas > max_discount:\n        # Only one test hits this condition, but it's ok to also test this\n        # case.\n        discount_gas = max_discount\n\n    gas_used = tx_gas_limit - discount_gas\n\n    sender_account = pre[sender]\n    assert sender_account is not None\n\n    tx = Transaction(\n        gas_limit=tx_gas_limit,\n        to=test_code_address,\n        value=0,\n        data=data,\n        authorization_list=authorization_list,\n        access_list=access_list,\n        sender=sender,\n        expected_receipt=TransactionReceipt(gas_used=gas_used),\n    )\n\n    state_test(\n        pre=pre,\n        tx=tx,\n        post={\n            test_code_address: Account(storage=test_code_storage),\n        },\n    )\n\n\n@pytest.mark.parametrize(\"check_delegated_account_first\", [True, False])\n@pytest.mark.parametrize(**gas_test_parameter_args(include_many=False, include_data=False))\ndef test_account_warming(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    authorization_list_with_properties: List[AuthorizationWithProperties],\n    authorization_list: List[AuthorizationTuple],\n    access_list: List[AccessList],\n    data: bytes,\n    sender: EOA,\n    check_delegated_account_first: bool,\n) -> None:\n    \"\"\"\n    Test warming of the authority and authorized accounts for set-code\n    transactions.\n    \"\"\"\n    # Overhead cost is the single push operation required for the address to\n    # check.\n    overhead_cost = 3 * len(Op.CALL.kwargs)\n\n    cold_account_cost = 2600\n    warm_account_cost = 100\n\n    access_list_addresses = {access_list.address for access_list in access_list}\n\n    # Dictionary to keep track of the addresses to check for warming, and the\n    # expected cost of accessing such account.\n    addresses_to_check: Dict[Address, int] = {}\n\n    for authorization_with_properties in authorization_list_with_properties:\n        authority = authorization_with_properties.tuple.signer\n        assert authority is not None, \"authority address is not set\"\n        delegated_account = authorization_with_properties.tuple.address\n\n        authority_contains_delegation_after_authorization = (\n            authorization_with_properties.invalidity_type is None\n            # If the authority already contained a delegation prior to the\n            # transaction, even if the authorization is invalid, there will be\n            # a delegation when we check the address.\n            or authorization_with_properties.authority_type == AddressType.EOA_WITH_SET_CODE\n        )\n\n        if check_delegated_account_first:\n            if delegated_account not in addresses_to_check:\n                addresses_to_check[delegated_account] = (\n                    warm_account_cost\n                    if delegated_account in access_list_addresses\n                    else cold_account_cost\n                )\n\n            if authority not in addresses_to_check:\n                if not authorization_with_properties.skip:\n                    if (\n                        authorization_with_properties.invalidity_type is None\n                        or (\n                            authorization_with_properties.invalidity_type\n                            != AuthorizationInvalidityType.INVALID_CHAIN_ID\n                        )\n                        or authority in access_list_addresses\n                    ):\n                        access_cost = warm_account_cost\n                    else:\n                        access_cost = cold_account_cost\n                else:\n                    access_cost = (\n                        cold_account_cost\n                        if Address(sender) != authorization_with_properties.tuple.signer\n                        else warm_account_cost\n                    )\n\n                if authority_contains_delegation_after_authorization:\n                    # The double charge for accessing the delegated account,\n                    # only if the account ends up with a delegation in its\n                    # code.\n                    access_cost += warm_account_cost\n\n                addresses_to_check[authority] = access_cost\n\n        else:\n            if authority not in addresses_to_check:\n                access_cost = (\n                    cold_account_cost\n                    if Address(sender) != authorization_with_properties.tuple.signer\n                    else warm_account_cost\n                )\n                if not authorization_with_properties.skip and (\n                    authorization_with_properties.invalidity_type is None\n                    or (\n                        authorization_with_properties.invalidity_type\n                        != AuthorizationInvalidityType.INVALID_CHAIN_ID\n                    )\n                    or authority in access_list_addresses\n                ):\n                    access_cost = warm_account_cost\n\n                if (\n                    # We can only charge the delegated account access cost if\n                    # the authorization went through\n                    authority_contains_delegation_after_authorization\n                ):\n                    if (\n                        delegated_account in addresses_to_check\n                        or delegated_account in access_list_addresses\n                    ):\n                        access_cost += warm_account_cost\n                    else:\n                        access_cost += cold_account_cost\n\n                addresses_to_check[authority] = access_cost\n\n            if delegated_account not in addresses_to_check:\n                if (\n                    authority_contains_delegation_after_authorization\n                    or delegated_account in access_list_addresses\n                ):\n                    access_cost = warm_account_cost\n                else:\n                    access_cost = cold_account_cost\n                addresses_to_check[delegated_account] = access_cost\n\n    callee_code: Bytecode = sum(  # type: ignore\n        (\n            CodeGasMeasure(\n                code=Op.CALL(gas=0, address=check_address),\n                overhead_cost=overhead_cost,\n                extra_stack_items=1,\n                sstore_key=check_address,\n                stop=False,\n            )\n            for check_address in addresses_to_check\n        )\n    )\n    callee_code += Op.STOP\n    callee_address = pre.deploy_contract(\n        callee_code,\n        storage=dict.fromkeys(addresses_to_check, 0xDEADBEEF),\n    )\n\n    tx = Transaction(\n        gas_limit=1_000_000,\n        to=callee_address,\n        authorization_list=authorization_list if authorization_list else None,\n        access_list=access_list,\n        sender=sender,\n        data=data,\n    )\n    post = {\n        callee_address: Account(\n            storage=addresses_to_check,\n        ),\n    }\n\n    state_test(\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(**gas_test_parameter_args(include_pre_authorized=False))\n@pytest.mark.parametrize(\n    \"valid\",\n    [True, pytest.param(False, marks=pytest.mark.exception_test)],\n)\ndef test_intrinsic_gas_cost(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    fork: Fork,\n    authorization_list: List[AuthorizationTuple],\n    data: bytes,\n    access_list: List[AccessList],\n    sender: EOA,\n    valid: bool,\n) -> None:\n    \"\"\"\n    Test sending a transaction with the exact intrinsic gas required and also\n    insufficient gas.\n    \"\"\"\n    # Calculate the intrinsic gas cost of the authorizations, by default the\n    # full empty account cost is charged for each authorization.\n    intrinsic_gas = fork.transaction_intrinsic_cost_calculator()(\n        calldata=data,\n        access_list=access_list,\n        authorization_list_or_count=authorization_list,\n    )\n\n    tx_gas = intrinsic_gas\n    if not valid:\n        tx_gas -= 1\n\n    test_code = Op.STOP\n    test_code_address = pre.deploy_contract(test_code)\n\n    tx = Transaction(\n        gas_limit=tx_gas,\n        to=test_code_address,\n        value=0,\n        data=data,\n        authorization_list=authorization_list,\n        access_list=access_list,\n        sender=sender,\n        error=TransactionException.INTRINSIC_GAS_TOO_LOW if not valid else None,\n    )\n\n    state_test(\n        pre=pre,\n        tx=tx,\n        post={},\n    )\n\n\n@pytest.mark.parametrize(\"pre_authorized\", [True, False])\ndef test_self_set_code_cost(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    pre_authorized: bool,\n) -> None:\n    \"\"\"Test set to code account access cost when it delegates to itself.\"\"\"\n    if pre_authorized:\n        auth_signer = pre.fund_eoa(0, delegation=\"Self\")\n    else:\n        auth_signer = pre.fund_eoa(0)\n\n    slot_call_cost = 1\n\n    overhead_cost = 3 * len(Op.CALL.kwargs)\n\n    callee_code = CodeGasMeasure(\n        code=Op.CALL(gas=0, address=auth_signer),\n        overhead_cost=overhead_cost,\n        extra_stack_items=1,\n        sstore_key=slot_call_cost,\n    )\n\n    callee_address = pre.deploy_contract(callee_code)\n    callee_storage = Storage()\n    callee_storage[slot_call_cost] = 200 if not pre_authorized else 2700\n\n    tx = Transaction(\n        gas_limit=1_000_000,\n        to=callee_address,\n        authorization_list=[\n            AuthorizationTuple(\n                address=auth_signer,\n                nonce=0,\n                signer=auth_signer,\n            ),\n        ]\n        if not pre_authorized\n        else None,\n        sender=pre.fund_eoa(),\n    )\n\n    state_test(\n        pre=pre,\n        tx=tx,\n        post={\n            callee_address: Account(storage=callee_storage),\n            auth_signer: Account(\n                nonce=1,\n                code=Spec.delegation_designation(auth_signer),\n            ),\n        },\n    )\n\n\n@pytest.mark.with_all_call_opcodes()\ndef test_call_to_pre_authorized_oog(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    fork: Fork,\n    call_opcode: Op,\n) -> None:\n    \"\"\"\n    Test additional cost of delegation contract access in call instructions.\n    \"\"\"\n    # Delegation contract. It should never be reached by a call.\n    delegation_code = Op.SSTORE(0, 1)\n    delegation = pre.deploy_contract(delegation_code)\n\n    # Delegate to the delegation contract.\n    auth_signer = pre.fund_eoa(0, delegation=delegation)\n\n    # Callee tries to call the auth_signer which delegates\n    # to the delegation contract. The call instruction should out-of-gas\n    # because of the addition cost of the delegation account access.\n    callee_code = Bytecode(\n        Op.SSTORE(0, call_opcode(gas=0, address=auth_signer)),\n    )\n    callee_storage = Storage()\n    callee_storage[0] = 0xFF  # Value other than 0 or 1. Should not be changed.\n    callee_address = pre.deploy_contract(callee_code, storage=callee_storage)\n\n    gas_costs = fork.gas_costs()\n    intrinsic_gas_cost_calculator = fork.transaction_intrinsic_cost_calculator()\n    tx_gas_limit = (\n        intrinsic_gas_cost_calculator()\n        + len(call_opcode.kwargs) * gas_costs.G_VERY_LOW\n        + (gas_costs.G_COLD_ACCOUNT_ACCESS * 2)\n        - 1\n    )\n    tx = Transaction(\n        gas_limit=tx_gas_limit,  # Specific gas to trigger CALL out-of-gas.\n        to=callee_address,\n        sender=pre.fund_eoa(),\n    )\n\n    state_test(\n        pre=pre,\n        tx=tx,\n        post={\n            callee_address: Account(storage=callee_storage),\n            auth_signer: Account(code=Spec.delegation_designation(delegation)),\n            delegation: Account(storage=Storage()),\n        },\n    )\n"
  },
  {
    "path": "tests/prague/eip7702_set_code_tx/test_invalid_tx.py",
    "content": "\"\"\"\nTests invalid set-code transactions from EIP-7702.\n\nTests invalid set-code transactions from\n[EIP-7702: Set EOA account code for one transaction](https://eips.ethereum.org/EIPS/eip-7702).\n\"\"\"\n\nfrom enum import Enum, auto\nfrom typing import List, Type\n\nimport pytest\n\nfrom ethereum_test_base_types import Bytes, FixedSizeBytes, HexNumber\nfrom ethereum_test_tools import (\n    Address,\n    Alloc,\n    AuthorizationTuple,\n    ChainConfig,\n    Transaction,\n    TransactionException,\n    TransactionTestFiller,\n)\n\nfrom .spec import Spec, ref_spec_7702\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_7702.git_path\nREFERENCE_SPEC_VERSION = ref_spec_7702.version\n\npytestmark = [pytest.mark.valid_from(\"Prague\"), pytest.mark.exception_test]\n\nauth_account_start_balance = 0\n\n\nclass OversizedInt(FixedSizeBytes[2]):  # type: ignore\n    \"\"\"\n    Oversized 2-byte int.\n\n    Will only fail if the int value is less than 2**8.\n    \"\"\"\n\n    pass\n\n\nclass OversizedAddress(FixedSizeBytes[21]):  # type: ignore\n    \"\"\"Oversized Address Type.\"\"\"\n\n    pass\n\n\nclass UndersizedAddress(FixedSizeBytes[19]):  # type: ignore\n    \"\"\"Undersized Address Type.\"\"\"\n\n    pass\n\n\nclass InvalidRLPMode(Enum):\n    \"\"\"Enum for invalid RLP modes.\"\"\"\n\n    TRUNCATED_RLP = auto()\n    EXTRA_BYTES = auto()\n\n\ndef test_empty_authorization_list(\n    transaction_test: TransactionTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"Test sending a transaction with an empty authorization list.\"\"\"\n    tx = Transaction(\n        gas_limit=100_000,\n        to=0,\n        value=0,\n        authorization_list=[],\n        error=TransactionException.TYPE_4_EMPTY_AUTHORIZATION_LIST,\n        sender=pre.fund_eoa(),\n    )\n    transaction_test(\n        pre=pre,\n        tx=tx,\n    )\n\n\n@pytest.mark.parametrize(\n    \"v,r,s\",\n    [\n        pytest.param(2**8, 1, 1, id=\"v=2**8\"),\n        pytest.param(1, 2**256, 1, id=\"r=2**256\"),\n        pytest.param(1, 1, 2**256, id=\"s=2**256\"),\n        pytest.param(2**8, 2**256, 2**256, id=\"v=2**8,r=s=2**256\"),\n    ],\n)\n@pytest.mark.parametrize(\n    \"delegate_address\",\n    [\n        pytest.param(Spec.RESET_DELEGATION_ADDRESS, id=\"reset_delegation_address\"),\n        pytest.param(Address(1), id=\"non_zero_address\"),\n    ],\n)\ndef test_invalid_auth_signature(\n    chain_config: ChainConfig,\n    transaction_test: TransactionTestFiller,\n    pre: Alloc,\n    v: int,\n    r: int,\n    s: int,\n    delegate_address: Address,\n) -> None:\n    \"\"\"\n    Test sending a transaction where one of the signature elements is out of\n    range.\n    \"\"\"\n    tx = Transaction(\n        gas_limit=100_000,\n        to=0,\n        value=0,\n        authorization_list=[\n            AuthorizationTuple(\n                address=delegate_address,\n                nonce=0,\n                chain_id=chain_config.chain_id,\n                v=v,\n                r=r,\n                s=s,\n            ),\n        ],\n        error=[\n            TransactionException.TYPE_4_INVALID_AUTHORITY_SIGNATURE,\n            TransactionException.TYPE_4_INVALID_AUTHORITY_SIGNATURE_S_TOO_HIGH,\n        ],\n        sender=pre.fund_eoa(),\n    )\n\n    transaction_test(\n        pre=pre,\n        tx=tx,\n    )\n\n\n@pytest.mark.parametrize(\n    \"auth_chain_id\",\n    [\n        pytest.param(Spec.MAX_AUTH_CHAIN_ID + 1, id=\"auth_chain_id=2**256\"),\n    ],\n)\n@pytest.mark.parametrize(\n    \"delegate_address\",\n    [\n        pytest.param(Spec.RESET_DELEGATION_ADDRESS, id=\"reset_delegation_address\"),\n        pytest.param(Address(1), id=\"non_zero_address\"),\n    ],\n)\ndef test_invalid_tx_invalid_auth_chain_id(\n    transaction_test: TransactionTestFiller,\n    pre: Alloc,\n    auth_chain_id: int,\n    delegate_address: Address,\n) -> None:\n    \"\"\"\n    Test sending a transaction where the chain id field of an authorization\n    overflows the maximum value.\n    \"\"\"\n    authorization = AuthorizationTuple(\n        address=delegate_address,\n        nonce=0,\n        chain_id=auth_chain_id,\n        signer=pre.fund_eoa(auth_account_start_balance),\n    )\n\n    tx = Transaction(\n        gas_limit=100_000,\n        to=0,\n        value=0,\n        authorization_list=[authorization],\n        error=TransactionException.TYPE_4_INVALID_AUTHORIZATION_FORMAT,\n        sender=pre.fund_eoa(),\n    )\n\n    transaction_test(\n        pre=pre,\n        tx=tx,\n    )\n\n\n@pytest.mark.parametrize(\n    \"auth_chain_id\",\n    [pytest.param(0), pytest.param(1)],\n)\n@pytest.mark.parametrize(\n    \"delegate_address\",\n    [\n        pytest.param(Spec.RESET_DELEGATION_ADDRESS, id=\"reset_delegation_address\"),\n        pytest.param(Address(1), id=\"non_zero_address\"),\n    ],\n)\ndef test_invalid_tx_invalid_auth_chain_id_encoding(\n    transaction_test: TransactionTestFiller,\n    pre: Alloc,\n    delegate_address: Address,\n    auth_chain_id: int,\n) -> None:\n    \"\"\"\n    Test sending a transaction where the chain id field of an authorization has\n    an incorrect encoding.\n    \"\"\"\n\n    class ModifiedAuthorizationTuple(AuthorizationTuple):\n        chain_id: OversizedInt  # type: ignore\n\n    authorization = ModifiedAuthorizationTuple(\n        address=delegate_address,\n        nonce=0,\n        chain_id=auth_chain_id,\n        signer=pre.fund_eoa(auth_account_start_balance),\n    )\n\n    tx = Transaction(\n        gas_limit=100_000,\n        to=0,\n        value=0,\n        authorization_list=[authorization],\n        error=TransactionException.TYPE_4_INVALID_AUTHORIZATION_FORMAT,\n        sender=pre.fund_eoa(),\n    )\n\n    transaction_test(\n        pre=pre,\n        tx=tx,\n    )\n\n\n@pytest.mark.parametrize(\n    \"nonce\",\n    [\n        pytest.param(Spec.MAX_NONCE + 1, id=\"nonce=2**64\"),\n        pytest.param(2**256, id=\"nonce=2**256\"),\n    ],\n)\n@pytest.mark.parametrize(\n    \"delegate_address\",\n    [\n        pytest.param(Spec.RESET_DELEGATION_ADDRESS, id=\"reset_delegation_address\"),\n        pytest.param(Address(1), id=\"non_zero_address\"),\n    ],\n)\ndef test_invalid_tx_invalid_nonce(\n    transaction_test: TransactionTestFiller,\n    pre: Alloc,\n    nonce: int,\n    delegate_address: Address,\n) -> None:\n    \"\"\"\n    Test sending a transaction where the nonce field of an authorization\n    overflows the maximum value.\n    \"\"\"\n    auth_signer = pre.fund_eoa()\n\n    tx = Transaction(\n        gas_limit=100_000,\n        to=0,\n        value=0,\n        authorization_list=[\n            AuthorizationTuple(\n                address=delegate_address,\n                nonce=nonce,\n                signer=auth_signer,\n            ),\n        ],\n        error=TransactionException.TYPE_4_INVALID_AUTHORIZATION_FORMAT,\n        sender=pre.fund_eoa(),\n    )\n\n    transaction_test(\n        pre=pre,\n        tx=tx,\n    )\n\n\n@pytest.mark.parametrize(\n    \"nonce\",\n    [\n        pytest.param([], id=\"nonce=empty-list\"),\n        pytest.param([0], id=\"nonce=non-empty-list\"),\n        pytest.param([0, 0], id=\"nonce=multi-element-list\"),\n    ],\n)\n@pytest.mark.parametrize(\n    \"delegate_address\",\n    [\n        pytest.param(Spec.RESET_DELEGATION_ADDRESS, id=\"reset_delegation_address\"),\n        pytest.param(Address(1), id=\"non_zero_address\"),\n    ],\n)\ndef test_invalid_tx_invalid_nonce_as_list(\n    transaction_test: TransactionTestFiller,\n    pre: Alloc,\n    nonce: List[int],\n    delegate_address: Address,\n) -> None:\n    \"\"\"\n    Test sending a transaction where the nonce field of an authorization\n    overflows the maximum value.\n    \"\"\"\n    auth_signer = pre.fund_eoa()\n\n    class AuthorizationTupleWithNonceAsList(AuthorizationTuple):\n        nonce: List[HexNumber]  # type: ignore\n\n    tx = Transaction(\n        gas_limit=100_000,\n        to=0,\n        value=0,\n        authorization_list=[\n            AuthorizationTupleWithNonceAsList(\n                address=delegate_address,\n                nonce=nonce,\n                signer=auth_signer,\n            ),\n        ],\n        error=TransactionException.TYPE_4_INVALID_AUTHORIZATION_FORMAT,\n        sender=pre.fund_eoa(),\n    )\n\n    transaction_test(\n        pre=pre,\n        tx=tx,\n    )\n\n\n@pytest.mark.parametrize(\n    \"delegate_address\",\n    [\n        pytest.param(Spec.RESET_DELEGATION_ADDRESS, id=\"reset_delegation_address\"),\n        pytest.param(Address(1), id=\"non_zero_address\"),\n    ],\n)\ndef test_invalid_tx_invalid_nonce_encoding(\n    transaction_test: TransactionTestFiller,\n    pre: Alloc,\n    delegate_address: Address,\n) -> None:\n    \"\"\"\n    Test sending a transaction where the chain id field of an authorization has\n    an incorrect encoding.\n    \"\"\"\n\n    class ModifiedAuthorizationTuple(AuthorizationTuple):\n        nonce: OversizedInt  # type: ignore\n\n    authorization = ModifiedAuthorizationTuple(\n        address=delegate_address,\n        nonce=0,\n        signer=pre.fund_eoa(auth_account_start_balance),\n    )\n\n    tx = Transaction(\n        gas_limit=100_000,\n        to=0,\n        value=0,\n        authorization_list=[authorization],\n        error=TransactionException.TYPE_4_INVALID_AUTHORIZATION_FORMAT,\n        sender=pre.fund_eoa(),\n    )\n\n    transaction_test(\n        pre=pre,\n        tx=tx,\n    )\n\n\n@pytest.mark.parametrize(\n    \"address_type\",\n    [\n        pytest.param(\n            OversizedAddress,\n            id=\"oversized\",\n        ),\n        pytest.param(\n            UndersizedAddress,\n            id=\"undersized\",\n        ),\n    ],\n)\n@pytest.mark.parametrize(\n    \"delegate_address\",\n    [\n        pytest.param(\n            int.from_bytes(Spec.RESET_DELEGATION_ADDRESS, byteorder=\"big\"),\n            id=\"reset_delegation_address\",\n        ),\n        pytest.param(1, id=\"non_zero_address\"),\n    ],\n)\ndef test_invalid_tx_invalid_address(\n    transaction_test: TransactionTestFiller,\n    pre: Alloc,\n    delegate_address: int,\n    address_type: Type[FixedSizeBytes],\n) -> None:\n    \"\"\"\n    Test sending a transaction where the address field of an authorization is\n    incorrectly serialized.\n    \"\"\"\n    auth_signer = pre.fund_eoa()\n\n    class ModifiedAuthorizationTuple(AuthorizationTuple):\n        address: address_type  # type: ignore\n\n    tx = Transaction(\n        gas_limit=100_000,\n        to=0,\n        value=0,\n        authorization_list=[\n            ModifiedAuthorizationTuple(\n                address=delegate_address,\n                nonce=0,\n                signer=auth_signer,\n            ),\n        ],\n        error=TransactionException.TYPE_4_INVALID_AUTHORIZATION_FORMAT,\n        sender=pre.fund_eoa(),\n    )\n\n    transaction_test(\n        pre=pre,\n        tx=tx,\n    )\n\n\n@pytest.mark.parametrize(\"extra_element_value\", [0, 1])\n@pytest.mark.parametrize(\n    \"delegate_address\",\n    [\n        pytest.param(Spec.RESET_DELEGATION_ADDRESS, id=\"reset_delegation_address\"),\n        pytest.param(Address(1), id=\"non_zero_address\"),\n    ],\n)\ndef test_invalid_tx_invalid_authorization_tuple_extra_element(\n    transaction_test: TransactionTestFiller,\n    pre: Alloc,\n    delegate_address: Address,\n    extra_element_value: int,\n) -> None:\n    \"\"\"\n    Test sending a transaction where the authorization tuple field of the\n    type-4 transaction is serialized to contain an extra element.\n    \"\"\"\n    auth_signer = pre.fund_eoa()\n\n    class ExtraElementAuthorizationTuple(AuthorizationTuple):\n        extra_element: HexNumber\n\n        def get_rlp_fields(self) -> List[str]:\n            \"\"\"\n            Append the extra field to the list of fields to be encoded in RLP.\n            \"\"\"\n            rlp_fields = super().get_rlp_fields()[:]\n            rlp_fields.append(\"extra_element\")\n            return rlp_fields\n\n    tx = Transaction(\n        gas_limit=100_000,\n        to=0,\n        value=0,\n        authorization_list=[\n            ExtraElementAuthorizationTuple(\n                address=delegate_address,\n                nonce=0,\n                signer=auth_signer,\n                extra_element=extra_element_value,\n            ),\n        ],\n        error=TransactionException.TYPE_4_INVALID_AUTHORIZATION_FORMAT,\n        sender=pre.fund_eoa(),\n    )\n\n    transaction_test(\n        pre=pre,\n        tx=tx,\n    )\n\n\n@pytest.mark.parametrize(\n    \"missing_index\",\n    [\n        pytest.param(0, id=\"missing_chain_id\"),\n        pytest.param(1, id=\"missing_address\"),\n        pytest.param(2, id=\"missing_nonce\"),\n        pytest.param(3, id=\"missing_signature_y_parity\"),\n        pytest.param(4, id=\"missing_signature_r\"),\n        pytest.param(5, id=\"missing_signature_s\"),\n    ],\n)\n@pytest.mark.parametrize(\n    \"delegate_address\",\n    [\n        pytest.param(Spec.RESET_DELEGATION_ADDRESS, id=\"reset_delegation_address\"),\n        pytest.param(Address(1), id=\"non_zero_address\"),\n    ],\n)\ndef test_invalid_tx_invalid_authorization_tuple_missing_element(\n    transaction_test: TransactionTestFiller,\n    pre: Alloc,\n    delegate_address: Address,\n    missing_index: int,\n) -> None:\n    \"\"\"\n    Test sending a transaction where the authorization tuple field of the\n    type-4 transaction is serialized to miss one element.\n    \"\"\"\n    auth_signer = pre.fund_eoa()\n\n    class MissingElementAuthorizationTuple(AuthorizationTuple):\n        missing_element_index: int\n\n        def get_rlp_fields(self) -> List[str]:\n            \"\"\"\n            Remove the field that is specified by the missing element index.\n            \"\"\"\n            rlp_fields = super().get_rlp_fields()[:]\n            rlp_fields.pop(self.missing_element_index)\n            return rlp_fields\n\n    tx = Transaction(\n        gas_limit=100_000,\n        to=0,\n        value=0,\n        authorization_list=[\n            MissingElementAuthorizationTuple(\n                address=delegate_address,\n                nonce=0,\n                signer=auth_signer,\n                missing_element_index=missing_index,\n            ),\n        ],\n        error=TransactionException.TYPE_4_INVALID_AUTHORIZATION_FORMAT,\n        sender=pre.fund_eoa(),\n    )\n\n    transaction_test(\n        pre=pre,\n        tx=tx,\n    )\n\n\n@pytest.mark.parametrize(\n    \"delegate_address\",\n    [\n        pytest.param(Spec.RESET_DELEGATION_ADDRESS, id=\"reset_delegation_address\"),\n        pytest.param(Address(1), id=\"non_zero_address\"),\n    ],\n)\ndef test_invalid_tx_invalid_authorization_tuple_encoded_as_bytes(\n    transaction_test: TransactionTestFiller,\n    pre: Alloc,\n    delegate_address: Address,\n) -> None:\n    \"\"\"\n    Test sending a transaction where the authorization tuple field of the\n    type-4 transaction is encoded in the outer element as bytes instead of a\n    list of elements.\n    \"\"\"\n\n    class ModifiedTransaction(Transaction):\n        authorization_list: List[Bytes] | None  # type: ignore\n\n    auth_signer = pre.fund_eoa()\n\n    authorization_list = AuthorizationTuple(\n        address=delegate_address,\n        nonce=0,\n        signer=auth_signer,\n    )\n    tx = ModifiedTransaction(\n        gas_limit=100_000,\n        to=0,\n        value=0,\n        authorization_list=[authorization_list.rlp()],\n        error=TransactionException.TYPE_4_INVALID_AUTHORIZATION_FORMAT,\n        sender=pre.fund_eoa(),\n    )\n\n    transaction_test(\n        pre=pre,\n        tx=tx,\n    )\n\n\n@pytest.mark.parametrize(\n    \"invalid_rlp_mode\",\n    [\n        pytest.param(InvalidRLPMode.TRUNCATED_RLP, id=\"truncated_rlp\"),\n        pytest.param(InvalidRLPMode.EXTRA_BYTES, id=\"extra_bytes\"),\n    ],\n)\n@pytest.mark.parametrize(\n    \"delegate_address\",\n    [\n        pytest.param(Spec.RESET_DELEGATION_ADDRESS, id=\"reset_delegation_address\"),\n        pytest.param(Address(1), id=\"non_zero_address\"),\n    ],\n)\ndef test_invalid_tx_invalid_rlp_encoding(\n    transaction_test: TransactionTestFiller,\n    pre: Alloc,\n    delegate_address: Address,\n    invalid_rlp_mode: InvalidRLPMode,\n) -> None:\n    \"\"\"\n    Test sending a transaction type-4 where the RLP encoding of the transaction\n    is invalid.\n    \"\"\"\n    auth_signer = pre.fund_eoa()\n\n    tx = Transaction(\n        gas_limit=100_000,\n        to=0,\n        value=0,\n        authorization_list=[\n            AuthorizationTuple(\n                address=delegate_address,\n                nonce=0,\n                signer=auth_signer,\n            )\n        ],\n        error=TransactionException.TYPE_4_INVALID_AUTHORIZATION_FORMAT,\n        sender=pre.fund_eoa(),\n    )\n\n    if invalid_rlp_mode == InvalidRLPMode.TRUNCATED_RLP:\n        # Truncate the last byte of the RLP encoding\n        tx.rlp_override = Bytes(tx.rlp()[:-1])\n    elif invalid_rlp_mode == InvalidRLPMode.EXTRA_BYTES:\n        # Add an extra byte to the end of the RLP encoding\n        tx.rlp_override = Bytes(tx.rlp() + b\"\\x00\")\n\n    transaction_test(\n        pre=pre,\n        tx=tx,\n    )\n"
  },
  {
    "path": "tests/prague/eip7702_set_code_tx/test_set_code_txs.py",
    "content": "\"\"\"\nTests use of set-code transactions from EIP-7702.\n\nTests use of set-code transactions from\n[EIP-7702: Set EOA account code for one transaction](https://eips.ethereum.org/EIPS/eip-7702).\n\"\"\"\n\nfrom enum import StrEnum\nfrom hashlib import sha256\nfrom itertools import count\nfrom typing import List\n\nimport pytest\n\nfrom ethereum_test_base_types import HexNumber\nfrom ethereum_test_checklists import EIPChecklist\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    AccessList,\n    Account,\n    Address,\n    Alloc,\n    AuthorizationTuple,\n    Block,\n    BlockchainTestFiller,\n    Bytecode,\n    Bytes,\n    ChainConfig,\n    CodeGasMeasure,\n    Conditional,\n    Environment,\n    EVMCodeType,\n    Hash,\n    Initcode,\n    Requests,\n    StateTestFiller,\n    Storage,\n    Transaction,\n    TransactionException,\n    add_kzg_version,\n    call_return_code,\n    compute_create_address,\n)\nfrom ethereum_test_tools import Macros as Om\nfrom ethereum_test_tools import Opcodes as Op\nfrom ethereum_test_types import TransactionReceipt\nfrom ethereum_test_types.eof.v1 import Container, Section\n\nfrom ...cancun.eip4844_blobs.spec import Spec as Spec4844\nfrom ..eip6110_deposits.helpers import DepositRequest\nfrom ..eip7002_el_triggerable_withdrawals.helpers import WithdrawalRequest\nfrom ..eip7251_consolidations.helpers import ConsolidationRequest\nfrom .helpers import AddressType\nfrom .spec import Spec, ref_spec_7702\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_7702.git_path\nREFERENCE_SPEC_VERSION = ref_spec_7702.version\n\npytestmark = [\n    pytest.mark.valid_from(\"Prague\"),\n    pytest.mark.pre_alloc_group(\n        \"set_code_tests\", reason=\"Tests EIP-7702 set code transactions with system contracts\"\n    ),\n]\n\nauth_account_start_balance = 0\n\n\n@pytest.mark.parametrize(\n    \"tx_value\",\n    [0, 1],\n)\n@pytest.mark.parametrize(\n    \"suffix,succeeds\",\n    [\n        pytest.param(Op.STOP, True, id=\"stop\"),\n        pytest.param(Op.RETURN(0, 0), True, id=\"return\"),\n        pytest.param(Op.REVERT, False, id=\"revert\"),\n        pytest.param(Op.INVALID, False, id=\"invalid\"),\n        pytest.param(Om.OOG, False, id=\"out-of-gas\"),\n    ],\n)\ndef test_self_sponsored_set_code(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    suffix: Bytecode,\n    succeeds: bool,\n    tx_value: int,\n) -> None:\n    \"\"\"\n    Test the executing a self-sponsored set-code transaction.\n\n    The transaction is sent to the sender, and the sender is the signer of the\n    only authorization tuple in the authorization list.\n\n    The authorization tuple has a nonce of 1 because the self-sponsored\n    transaction increases the nonce of the sender from zero to one first.\n\n    The expected nonce at the end of the transaction is 2.\n    \"\"\"\n    storage = Storage()\n    sender = pre.fund_eoa()\n\n    set_code = (\n        Op.SSTORE(storage.store_next(sender), Op.ORIGIN)\n        + Op.SSTORE(storage.store_next(sender), Op.CALLER)\n        + Op.SSTORE(storage.store_next(tx_value), Op.CALLVALUE)\n        + suffix\n    )\n    set_code_to_address = pre.deploy_contract(\n        set_code,\n    )\n\n    tx = Transaction(\n        gas_limit=10_000_000,\n        to=sender,\n        value=tx_value,\n        authorization_list=[\n            AuthorizationTuple(\n                address=set_code_to_address,\n                nonce=1,\n                signer=sender,\n            ),\n        ],\n        sender=sender,\n    )\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            set_code_to_address: Account(storage=dict.fromkeys(storage, 0)),\n            sender: Account(\n                nonce=2,\n                code=Spec.delegation_designation(set_code_to_address),\n                storage=storage if succeeds else {},\n            ),\n        },\n    )\n\n\n@pytest.mark.parametrize(\n    \"eoa_balance,self_sponsored\",\n    [\n        pytest.param(0, False, id=\"zero_balance_authority\"),\n        pytest.param(1, False, id=\"one_wei_balance_authority\"),\n        pytest.param(None, True, id=\"self_sponsored_tx\"),\n    ],\n)\n@pytest.mark.parametrize(\n    \"tx_value\",\n    [0, 1],\n)\n@pytest.mark.parametrize(\n    \"suffix,succeeds\",\n    [\n        pytest.param(Op.STOP, True, id=\"stop\"),\n        pytest.param(Op.RETURN(0, 0), True, id=\"return\"),\n        pytest.param(Op.REVERT(0, 0), False, id=\"revert\"),\n        pytest.param(Op.INVALID, False, id=\"invalid\"),\n        pytest.param(Om.OOG + Op.STOP, False, id=\"out-of-gas\"),\n    ],\n)\ndef test_set_code_to_sstore(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    suffix: Bytecode,\n    succeeds: bool,\n    tx_value: int,\n    eoa_balance: int,\n    self_sponsored: bool,\n) -> None:\n    \"\"\"Test the executing a simple SSTORE in a set-code transaction.\"\"\"\n    storage = Storage()\n    if self_sponsored:\n        sender = pre.fund_eoa()\n        auth_signer = sender\n    else:\n        auth_signer = pre.fund_eoa(eoa_balance)\n        sender = pre.fund_eoa()\n\n    set_code = (\n        Op.SSTORE(storage.store_next(sender), Op.ORIGIN)\n        + Op.SSTORE(storage.store_next(sender), Op.CALLER)\n        + Op.SSTORE(storage.store_next(tx_value), Op.CALLVALUE)\n        + suffix\n    )\n    set_code_to_address = pre.deploy_contract(\n        set_code,\n    )\n\n    tx = Transaction(\n        gas_limit=500_000,\n        to=auth_signer,\n        value=tx_value,\n        authorization_list=[\n            AuthorizationTuple(\n                address=set_code_to_address,\n                nonce=1 if self_sponsored else 0,\n                signer=auth_signer,\n            ),\n        ],\n        sender=sender,\n    )\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            set_code_to_address: Account(\n                storage=dict.fromkeys(storage, 0),\n            ),\n            auth_signer: Account(\n                nonce=2 if self_sponsored else 1,\n                code=Spec.delegation_designation(set_code_to_address),\n                storage=storage if succeeds else {},\n            ),\n        },\n    )\n\n\ndef test_set_code_to_non_empty_storage_non_zero_nonce(\n    state_test: StateTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"Test the setting the code to an account that has non-empty storage.\"\"\"\n    auth_signer = pre.fund_eoa(\n        amount=0,\n        storage=Storage({0: 1}),  # type: ignore\n    )\n    sender = pre.fund_eoa()\n\n    set_code = Op.SSTORE(0, Op.ADD(Op.SLOAD(0), 1)) + Op.STOP\n    set_code_to_address = pre.deploy_contract(\n        set_code,\n    )\n\n    tx = Transaction(\n        gas_limit=500_000,\n        to=auth_signer,\n        value=0,\n        authorization_list=[\n            AuthorizationTuple(\n                address=set_code_to_address,\n                nonce=auth_signer.nonce,\n                signer=auth_signer,\n            ),\n        ],\n        sender=sender,\n    )\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            set_code_to_address: Account(\n                storage={},\n            ),\n            auth_signer: Account(\n                storage={0: 2},\n            ),\n        },\n    )\n\n\n@pytest.mark.parametrize(\n    \"access_list_in_tx\",\n    [\n        pytest.param(None, id=\"\"),\n        pytest.param(\"sender\", id=\"sender_in_access_list\"),\n        pytest.param(\"auth_signer\", id=\"auth_signer_in_access_list\"),\n    ],\n)\ndef test_set_code_to_sstore_then_sload(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    access_list_in_tx: str | None,\n) -> None:\n    \"\"\"\n    Test the executing a simple SSTORE then SLOAD in two separate set-code\n    transactions.\n    \"\"\"\n    auth_signer = pre.fund_eoa(auth_account_start_balance)\n    sender = pre.fund_eoa()\n\n    storage_key_1 = 0x1\n    storage_key_2 = 0x2\n    storage_value = 0x1234\n\n    set_code_1 = Op.SSTORE(storage_key_1, storage_value) + Op.STOP\n    set_code_1_address = pre.deploy_contract(set_code_1)\n\n    set_code_2 = Op.SSTORE(storage_key_2, Op.ADD(Op.SLOAD(storage_key_1), 1)) + Op.STOP\n    set_code_2_address = pre.deploy_contract(set_code_2)\n\n    tx_1 = Transaction(\n        gas_limit=100_000,\n        to=auth_signer,\n        value=0,\n        authorization_list=[\n            AuthorizationTuple(\n                address=set_code_1_address,\n                nonce=0,\n                signer=auth_signer,\n            ),\n        ],\n        sender=sender,\n    )\n\n    access_list = (\n        [\n            AccessList(\n                address=sender if access_list_in_tx == \"sender\" else auth_signer,\n                storage_keys=[Hash(storage_key_1)],\n            )\n        ]\n        if access_list_in_tx\n        else []\n    )\n    tx_2 = Transaction(\n        gas_limit=100_000,\n        to=auth_signer,\n        value=0,\n        authorization_list=[\n            AuthorizationTuple(\n                address=set_code_2_address,\n                nonce=1,\n                signer=auth_signer,\n            ),\n        ],\n        access_list=access_list,\n        sender=sender,\n    )\n\n    block = Block(\n        txs=[tx_1, tx_2],\n    )\n\n    blockchain_test(\n        pre=pre,\n        post={\n            auth_signer: Account(\n                nonce=2,\n                code=Spec.delegation_designation(set_code_2_address),\n                storage={\n                    storage_key_1: storage_value,\n                    storage_key_2: storage_value + 1,\n                },\n            ),\n        },\n        blocks=[block],\n    )\n\n\n@pytest.mark.parametrize(\n    \"return_opcode\",\n    [\n        Op.RETURN,\n        Op.REVERT,\n    ],\n)\n@pytest.mark.with_all_call_opcodes\ndef test_set_code_to_tstore_reentry(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    call_opcode: Op,\n    return_opcode: Op,\n    evm_code_type: EVMCodeType,\n) -> None:\n    \"\"\"\n    Test the executing a simple TSTORE in a set-code transaction, which also\n    performs a re-entry to TLOAD the value.\n    \"\"\"\n    auth_signer = pre.fund_eoa(auth_account_start_balance)\n\n    tload_value = 0x1234\n    set_code = Conditional(\n        condition=Op.ISZERO(Op.TLOAD(1)),\n        if_true=Op.TSTORE(1, tload_value)\n        + call_opcode(address=Op.ADDRESS)\n        + Op.RETURNDATACOPY(0, 0, 32)\n        + Op.SSTORE(2, Op.MLOAD(0)),\n        if_false=Op.MSTORE(0, Op.TLOAD(1)) + return_opcode(size=32),\n        evm_code_type=evm_code_type,\n    )\n    set_code_to_address = pre.deploy_contract(set_code)\n\n    tx = Transaction(\n        gas_limit=100_000,\n        to=auth_signer,\n        value=0,\n        authorization_list=[\n            AuthorizationTuple(\n                address=set_code_to_address,\n                nonce=0,\n                signer=auth_signer,\n            ),\n        ],\n        sender=pre.fund_eoa(),\n    )\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            auth_signer: Account(\n                nonce=1,\n                code=Spec.delegation_designation(set_code_to_address),\n                storage={2: tload_value},\n            ),\n        },\n    )\n\n\n@pytest.mark.with_all_call_opcodes(\n    selector=lambda call_opcode: call_opcode\n    not in [Op.DELEGATECALL, Op.CALLCODE, Op.STATICCALL, Op.EXTDELEGATECALL, Op.EXTSTATICCALL]\n)\n@pytest.mark.parametrize(\"call_eoa_first\", [True, False])\ndef test_set_code_to_tstore_available_at_correct_address(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    call_opcode: Op,\n    call_eoa_first: bool,\n) -> None:\n    \"\"\"\n    Test TLOADing from slot 2 and then SSTORE this in slot 1, then TSTORE 3 in\n    slot 2. This is done both from the EOA which is delegated to account A, and\n    then A is called. The storage should stay empty on both the EOA and the\n    delegated account.\n    \"\"\"\n    auth_signer = pre.fund_eoa(auth_account_start_balance)\n\n    storage_slot = 1\n    tload_slot = 2\n    tstore_value = 3\n\n    tstore_check_code = Op.SSTORE(storage_slot, Op.TLOAD(tload_slot)) + Op.TSTORE(\n        tload_slot, tstore_value\n    )\n\n    set_code_to_address = pre.deploy_contract(tstore_check_code)\n\n    def make_call(call_type: Op, call_eoa: bool) -> Bytecode:\n        call_target = auth_signer if call_eoa else set_code_to_address\n        return call_type(address=call_target)\n\n    chain_code = make_call(call_type=call_opcode, call_eoa=call_eoa_first) + make_call(\n        call_type=call_opcode, call_eoa=not call_eoa_first\n    )\n\n    target_call_chain_address = pre.deploy_contract(chain_code)\n\n    tx = Transaction(\n        gas_limit=100_000,\n        to=target_call_chain_address,\n        value=0,\n        authorization_list=[\n            AuthorizationTuple(\n                address=set_code_to_address,\n                nonce=0,\n                signer=auth_signer,\n            ),\n        ],\n        sender=pre.fund_eoa(),\n    )\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            auth_signer: Account(\n                storage={storage_slot: 0},\n            ),\n            set_code_to_address: Account(\n                storage={storage_slot: 0},\n            ),\n        },\n    )\n\n\n@pytest.mark.parametrize(\n    \"external_sendall_recipient\",\n    [False, True],\n)\n@pytest.mark.parametrize(\n    \"balance\",\n    [0, 1],\n)\ndef test_set_code_to_self_destruct(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    external_sendall_recipient: bool,\n    balance: int,\n) -> None:\n    \"\"\"Test the executing self-destruct opcode in a set-code transaction.\"\"\"\n    auth_signer = pre.fund_eoa(balance)\n    if external_sendall_recipient:\n        recipient = pre.fund_eoa(0)\n    else:\n        recipient = auth_signer\n\n    set_code_to_address = pre.deploy_contract(Op.SSTORE(1, 1) + Op.SELFDESTRUCT(recipient))\n\n    tx = Transaction(\n        gas_limit=10_000_000,\n        to=auth_signer,\n        value=0,\n        authorization_list=[\n            AuthorizationTuple(\n                address=set_code_to_address,\n                nonce=0,\n                signer=auth_signer,\n            ),\n        ],\n        sender=pre.fund_eoa(),\n    )\n\n    post = {\n        auth_signer: Account(\n            nonce=1,\n            code=Spec.delegation_designation(set_code_to_address),\n            storage={1: 1},\n            balance=balance if not external_sendall_recipient else 0,\n        ),\n    }\n\n    if external_sendall_recipient and balance > 0:\n        post[recipient] = Account(balance=balance)\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.with_all_create_opcodes\n@pytest.mark.slow()\ndef test_set_code_to_contract_creator(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    create_opcode: Op,\n    evm_code_type: EVMCodeType,\n) -> None:\n    \"\"\"\n    Test the executing a contract-creating opcode in a set-code transaction.\n    \"\"\"\n    storage = Storage()\n    auth_signer = pre.fund_eoa(auth_account_start_balance)\n\n    deployed_code: Bytecode | Container = Op.STOP\n    initcode: Bytecode | Container\n\n    if evm_code_type == EVMCodeType.LEGACY:\n        initcode = Initcode(deploy_code=deployed_code)\n    elif evm_code_type == EVMCodeType.EOF_V1:\n        deployed_code = Container.Code(deployed_code)\n        initcode = Container.Init(deploy_container=deployed_code)\n    else:\n        raise ValueError(f\"Unsupported EVM code type: {evm_code_type}\")\n\n    deployed_contract_address = compute_create_address(\n        address=auth_signer,\n        nonce=1,\n        initcode=initcode,\n        opcode=create_opcode,\n    )\n\n    creator_code: Bytecode | Container\n    if evm_code_type == EVMCodeType.LEGACY:\n        creator_code = Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE) + Op.SSTORE(\n            storage.store_next(deployed_contract_address),\n            create_opcode(value=0, offset=0, size=Op.CALLDATASIZE),\n        )\n    elif evm_code_type == EVMCodeType.EOF_V1:\n        creator_code = Container(\n            sections=[\n                Section.Code(\n                    code=Op.EOFCREATE[0](0, 0, 0, 0) + Op.STOP(),\n                ),\n                Section.Container(\n                    container=initcode,\n                ),\n            ]\n        )\n    else:\n        raise ValueError(f\"Unsupported EVM code type: {evm_code_type}\")\n\n    creator_code_address = pre.deploy_contract(creator_code)\n\n    tx = Transaction(\n        gas_limit=10_000_000,\n        to=auth_signer,\n        value=0,\n        data=initcode if evm_code_type == EVMCodeType.LEGACY else b\"\",\n        authorization_list=[\n            AuthorizationTuple(\n                address=creator_code_address,\n                nonce=0,\n                signer=auth_signer,\n            ),\n        ],\n        sender=pre.fund_eoa(),\n    )\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            creator_code_address: Account(storage={}),\n            auth_signer: Account(\n                nonce=2,\n                code=Spec.delegation_designation(creator_code_address),\n                storage=storage,\n            ),\n            deployed_contract_address: Account(\n                code=deployed_code,\n                storage={},\n            ),\n        },\n    )\n\n\n@pytest.mark.parametrize(\n    \"value\",\n    [0, 1],\n)\n@pytest.mark.with_all_call_opcodes\ndef test_set_code_to_self_caller(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    call_opcode: Op,\n    value: int,\n    evm_code_type: EVMCodeType,\n) -> None:\n    \"\"\"Test the executing a self-call in a set-code transaction.\"\"\"\n    if \"value\" not in call_opcode.kwargs and value != 0:\n        pytest.skip(f\"Call opcode {call_opcode} does not support value\")\n\n    storage = Storage()\n    auth_signer = pre.fund_eoa(auth_account_start_balance)\n\n    static_call = call_opcode in [Op.STATICCALL, Op.EXTSTATICCALL]\n\n    first_entry_slot = storage.store_next(True)\n    re_entry_success_slot = storage.store_next(not static_call)\n    re_entry_call_return_code_slot = storage.store_next(\n        call_return_code(opcode=call_opcode, success=not static_call)\n    )\n    if \"value\" in call_opcode.kwargs:\n        call_bytecode = call_opcode(address=auth_signer, value=value)\n    else:\n        call_bytecode = call_opcode(address=auth_signer)\n    set_code = Conditional(\n        condition=Op.ISZERO(Op.SLOAD(first_entry_slot)),\n        if_true=Op.SSTORE(first_entry_slot, 1)\n        + Op.SSTORE(re_entry_call_return_code_slot, call_bytecode)\n        + Op.STOP,\n        if_false=Op.SSTORE(re_entry_success_slot, 1) + Op.STOP,\n        evm_code_type=evm_code_type,\n    )\n    set_code_to_address = pre.deploy_contract(set_code)\n\n    tx = Transaction(\n        gas_limit=10_000_000,\n        to=auth_signer,\n        value=value,\n        authorization_list=[\n            AuthorizationTuple(\n                address=set_code_to_address,\n                nonce=0,\n                signer=auth_signer,\n            ),\n        ],\n        sender=pre.fund_eoa(),\n    )\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            set_code_to_address: Account(storage={}),\n            auth_signer: Account(\n                nonce=1,\n                code=Spec.delegation_designation(set_code_to_address),\n                storage=storage,\n                balance=auth_account_start_balance + value,\n            ),\n        },\n    )\n\n\n@pytest.mark.execute(pytest.mark.skip(reason=\"excessive gas\"))\ndef test_set_code_max_depth_call_stack(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    fork: Fork,\n) -> None:\n    \"\"\"\n    Test re-entry to delegated account until the max call stack depth possible\n    in a transaction is reached.\n    \"\"\"\n    storage = Storage()\n    auth_signer = pre.fund_eoa(auth_account_start_balance)\n    tx_gas_limit_cap = fork.transaction_gas_limit_cap()\n    match tx_gas_limit_cap:\n        case None:\n            gas_limit = 100_000_000_000_000\n            max_depth = 1025\n        case 16_777_216:\n            gas_limit = tx_gas_limit_cap\n            max_depth = 389\n        case _:\n            raise NotImplementedError(f\"Unexpected transaction gas limit cap: {tx_gas_limit_cap}\")\n\n    set_code = Conditional(\n        condition=Op.ISZERO(Op.TLOAD(0)),\n        if_true=Op.TSTORE(0, 1)\n        + Op.CALL(address=auth_signer)\n        + Op.SSTORE(storage.store_next(max_depth), Op.TLOAD(0)),\n        if_false=Op.TSTORE(0, Op.ADD(1, Op.TLOAD(0))) + Op.CALL(address=auth_signer),\n    )\n    set_code_to_address = pre.deploy_contract(set_code)\n\n    tx = Transaction(\n        gas_limit=gas_limit,\n        to=auth_signer,\n        authorization_list=[\n            AuthorizationTuple(\n                address=set_code_to_address,\n                nonce=0,\n                signer=auth_signer,\n            ),\n        ],\n        sender=pre.fund_eoa(),\n    )\n\n    state_test(\n        env=Environment(gas_limit=tx.gas_limit),\n        pre=pre,\n        tx=tx,\n        post={\n            set_code_to_address: Account(storage={}),\n            auth_signer: Account(\n                nonce=1,\n                code=Spec.delegation_designation(set_code_to_address),\n                storage=storage,\n                balance=auth_account_start_balance,\n            ),\n        },\n    )\n\n\n@pytest.mark.with_all_call_opcodes\n@pytest.mark.parametrize(\n    \"value\",\n    [0, 1],\n)\ndef test_set_code_call_set_code(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    call_opcode: Op,\n    value: int,\n) -> None:\n    \"\"\"Test the calling a set-code account from another set-code account.\"\"\"\n    if \"value\" not in call_opcode.kwargs and value != 0:\n        pytest.skip(f\"Call opcode {call_opcode} does not support value\")\n\n    auth_signer_1 = pre.fund_eoa(auth_account_start_balance)\n    storage_1 = Storage()\n\n    static_call = call_opcode in [Op.STATICCALL, Op.EXTSTATICCALL]\n\n    set_code_1_call_result_slot = storage_1.store_next(\n        call_return_code(opcode=call_opcode, success=not static_call)\n    )\n    set_code_1_success = storage_1.store_next(True)\n\n    auth_signer_2 = pre.fund_eoa(auth_account_start_balance)\n    storage_2 = Storage().set_next_slot(storage_1.peek_slot())\n    set_code_2_success = storage_2.store_next(not static_call)\n\n    if \"value\" in call_opcode.kwargs:\n        call_bytecode = call_opcode(address=auth_signer_2, value=value)\n    else:\n        call_bytecode = call_opcode(address=auth_signer_2)\n\n    set_code_1 = (\n        Op.SSTORE(set_code_1_call_result_slot, call_bytecode)\n        + Op.SSTORE(set_code_1_success, 1)\n        + Op.STOP\n    )\n    set_code_to_address_1 = pre.deploy_contract(set_code_1)\n\n    set_code_2 = Op.SSTORE(set_code_2_success, 1) + Op.STOP\n    set_code_to_address_2 = pre.deploy_contract(set_code_2)\n\n    tx = Transaction(\n        gas_limit=10_000_000,\n        to=auth_signer_1,\n        value=value,\n        authorization_list=[\n            AuthorizationTuple(\n                address=set_code_to_address_1,\n                nonce=0,\n                signer=auth_signer_1,\n            ),\n            AuthorizationTuple(\n                address=set_code_to_address_2,\n                nonce=0,\n                signer=auth_signer_2,\n            ),\n        ],\n        sender=pre.fund_eoa(),\n    )\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            set_code_to_address_1: Account(storage=dict.fromkeys(storage_1, 0)),\n            set_code_to_address_2: Account(storage=dict.fromkeys(storage_2, 0)),\n            auth_signer_1: Account(\n                nonce=1,\n                code=Spec.delegation_designation(set_code_to_address_1),\n                storage=(\n                    storage_1\n                    if call_opcode in [Op.CALL, Op.STATICCALL, Op.EXTCALL, Op.EXTSTATICCALL]\n                    else storage_1 + storage_2\n                ),\n                balance=(0 if call_opcode in [Op.CALL, Op.EXTCALL] else value)\n                + auth_account_start_balance,\n            ),\n            auth_signer_2: Account(\n                nonce=1,\n                code=Spec.delegation_designation(set_code_to_address_2),\n                storage=storage_2 if call_opcode in [Op.CALL, Op.EXTCALL] else {},\n                balance=(value if call_opcode in [Op.CALL, Op.EXTCALL] else 0)\n                + auth_account_start_balance,\n            ),\n        },\n    )\n\n\ndef test_address_from_set_code(\n    state_test: StateTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"Test the address opcode in a set-code transaction.\"\"\"\n    storage = Storage()\n    auth_signer = pre.fund_eoa(auth_account_start_balance)\n\n    set_code = Op.SSTORE(storage.store_next(auth_signer), Op.ADDRESS) + Op.STOP\n    set_code_to_address = pre.deploy_contract(set_code)\n\n    tx = Transaction(\n        gas_limit=10_000_000,\n        to=auth_signer,\n        value=0,\n        authorization_list=[\n            AuthorizationTuple(\n                address=set_code_to_address,\n                nonce=0,\n                signer=auth_signer,\n            ),\n        ],\n        sender=pre.fund_eoa(),\n    )\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            set_code_to_address: Account(storage={}),\n            auth_signer: Account(\n                nonce=1,\n                code=Spec.delegation_designation(set_code_to_address),\n                storage=storage,\n            ),\n        },\n    )\n\n\ndef test_tx_into_self_delegating_set_code(\n    state_test: StateTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    Test a transaction that has entry-point into a set-code account that\n    delegates to itself.\n    \"\"\"\n    auth_signer = pre.fund_eoa(auth_account_start_balance)\n\n    tx = Transaction(\n        gas_limit=10_000_000,\n        to=auth_signer,\n        value=0,\n        authorization_list=[\n            AuthorizationTuple(\n                address=auth_signer,\n                nonce=0,\n                signer=auth_signer,\n            ),\n        ],\n        sender=pre.fund_eoa(),\n    )\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            auth_signer: Account(\n                nonce=1,\n                code=Spec.delegation_designation(auth_signer),\n            ),\n        },\n    )\n\n\ndef test_tx_into_chain_delegating_set_code(\n    state_test: StateTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    Test a transaction that has entry-point into a set-code account that\n    delegates to another set-code account.\n    \"\"\"\n    auth_signer_1 = pre.fund_eoa(auth_account_start_balance)\n    auth_signer_2 = pre.fund_eoa(auth_account_start_balance)\n\n    tx = Transaction(\n        gas_limit=10_000_000,\n        to=auth_signer_1,\n        value=0,\n        authorization_list=[\n            AuthorizationTuple(\n                address=auth_signer_2,\n                nonce=0,\n                signer=auth_signer_1,\n            ),\n            AuthorizationTuple(\n                address=auth_signer_1,\n                nonce=0,\n                signer=auth_signer_2,\n            ),\n        ],\n        sender=pre.fund_eoa(),\n    )\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            auth_signer_1: Account(nonce=1, code=Spec.delegation_designation(auth_signer_2)),\n            auth_signer_2: Account(nonce=1, code=Spec.delegation_designation(auth_signer_1)),\n        },\n    )\n\n\n@pytest.mark.with_all_call_opcodes\ndef test_call_into_self_delegating_set_code(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    call_opcode: Op,\n) -> None:\n    \"\"\"Test call into a set-code account that delegates to itself.\"\"\"\n    auth_signer = pre.fund_eoa(auth_account_start_balance)\n\n    storage = Storage()\n    entry_code = (\n        Op.SSTORE(\n            storage.store_next(\n                call_return_code(\n                    opcode=call_opcode,\n                    success=False,\n                    revert=(call_opcode == Op.EXTDELEGATECALL),\n                )\n            ),\n            call_opcode(address=auth_signer),\n        )\n        + Op.STOP\n    )\n    entry_address = pre.deploy_contract(entry_code)\n\n    tx = Transaction(\n        gas_limit=10_000_000,\n        to=entry_address,\n        value=0,\n        authorization_list=[\n            AuthorizationTuple(\n                address=auth_signer,\n                nonce=0,\n                signer=auth_signer,\n            ),\n        ],\n        sender=pre.fund_eoa(),\n    )\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            entry_address: Account(storage=storage),\n            auth_signer: Account(nonce=1, code=Spec.delegation_designation(auth_signer)),\n        },\n    )\n\n\n@pytest.mark.with_all_call_opcodes\ndef test_call_into_chain_delegating_set_code(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    call_opcode: Op,\n) -> None:\n    \"\"\"\n    Test call into a set-code account that delegates to another set-code\n    account.\n    \"\"\"\n    auth_signer_1 = pre.fund_eoa(auth_account_start_balance)\n    auth_signer_2 = pre.fund_eoa(auth_account_start_balance)\n\n    storage = Storage()\n    entry_code = (\n        Op.SSTORE(\n            storage.store_next(\n                call_return_code(\n                    opcode=call_opcode,\n                    success=False,\n                    revert=(call_opcode == Op.EXTDELEGATECALL),\n                )\n            ),\n            call_opcode(address=auth_signer_1),\n        )\n        + Op.STOP\n    )\n    entry_address = pre.deploy_contract(entry_code)\n\n    tx = Transaction(\n        gas_limit=10_000_000,\n        to=entry_address,\n        value=0,\n        authorization_list=[\n            AuthorizationTuple(\n                address=auth_signer_2,\n                nonce=0,\n                signer=auth_signer_1,\n            ),\n            AuthorizationTuple(\n                address=auth_signer_1,\n                nonce=0,\n                signer=auth_signer_2,\n            ),\n        ],\n        sender=pre.fund_eoa(),\n    )\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            entry_address: Account(storage=storage),\n            auth_signer_1: Account(nonce=1, code=Spec.delegation_designation(auth_signer_2)),\n            auth_signer_2: Account(nonce=1, code=Spec.delegation_designation(auth_signer_1)),\n        },\n    )\n\n\n@pytest.mark.parametrize(\n    \"balance\",\n    [0, 1],\n)\n@pytest.mark.parametrize(\n    \"set_code_type\",\n    list(AddressType),\n    ids=lambda address_type: address_type.name,\n)\ndef test_ext_code_on_set_code(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    balance: int,\n    set_code_type: AddressType,\n) -> None:\n    \"\"\"Test different ext*code operations on a set-code address.\"\"\"\n    auth_signer = pre.fund_eoa(balance)\n\n    slot = count(1)\n    slot_ext_code_size_result = next(slot)\n    slot_ext_code_hash_result = next(slot)\n    slot_ext_code_copy_result = next(slot)\n    slot_ext_balance_result = next(slot)\n\n    callee_code = (\n        Op.SSTORE(slot_ext_code_size_result, Op.EXTCODESIZE(auth_signer))\n        + Op.SSTORE(slot_ext_code_hash_result, Op.EXTCODEHASH(auth_signer))\n        + Op.EXTCODECOPY(auth_signer, 0, 0, Op.EXTCODESIZE(auth_signer))\n        + Op.SSTORE(slot_ext_code_copy_result, Op.MLOAD(0))\n        + Op.SSTORE(slot_ext_balance_result, Op.BALANCE(auth_signer))\n        + Op.STOP\n    )\n    callee_address = pre.deploy_contract(callee_code)\n\n    set_code_to_address: Address\n    set_code: Bytecode | Bytes\n    match set_code_type:\n        case AddressType.EMPTY_ACCOUNT:\n            set_code = Bytecode()\n            set_code_to_address = pre.fund_eoa(0)\n        case AddressType.EOA:\n            set_code = Bytecode()\n            set_code_to_address = pre.fund_eoa(1)\n        case AddressType.EOA_WITH_SET_CODE:\n            set_code_account = pre.fund_eoa(0)\n            set_code = Spec.delegation_designation(set_code_account)\n            set_code_to_address = pre.fund_eoa(1, delegation=set_code_account)\n        case AddressType.CONTRACT:\n            set_code = Op.STOP\n            set_code_to_address = pre.deploy_contract(set_code)\n        case _:\n            raise ValueError(f\"Unsupported set code type: {set_code_type}\")\n\n    callee_storage = Storage()\n    callee_storage[slot_ext_code_size_result] = len(\n        Spec.delegation_designation(set_code_to_address)\n    )\n    callee_storage[slot_ext_code_hash_result] = Spec.delegation_designation(\n        set_code_to_address\n    ).keccak256()\n    callee_storage[slot_ext_code_copy_result] = Hash(\n        Spec.delegation_designation(set_code_to_address), right_padding=True\n    )\n    callee_storage[slot_ext_balance_result] = balance\n\n    tx = Transaction(\n        gas_limit=10_000_000,\n        to=callee_address,\n        authorization_list=[\n            AuthorizationTuple(\n                address=set_code_to_address,\n                nonce=0,\n                signer=auth_signer,\n            ),\n        ],\n        sender=pre.fund_eoa(),\n    )\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            set_code_to_address: (\n                Account.NONEXISTENT\n                if set_code_type == AddressType.EMPTY_ACCOUNT\n                else Account(storage={})\n            ),\n            auth_signer: Account(\n                nonce=1,\n                code=Spec.delegation_designation(set_code_to_address),\n                balance=balance,\n            ),\n            callee_address: Account(storage=callee_storage),\n        },\n    )\n\n\n@pytest.mark.parametrize(\n    \"balance\",\n    [0, 1],\n)\ndef test_ext_code_on_self_set_code(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    balance: int,\n) -> None:\n    \"\"\"Test different ext*code operations on self set-code address.\"\"\"\n    auth_signer = pre.fund_eoa(balance)\n\n    slot = count(1)\n    slot_ext_code_size_result = next(slot)\n    slot_ext_code_hash_result = next(slot)\n    slot_ext_code_copy_result = next(slot)\n    slot_ext_balance_result = next(slot)\n\n    set_code = (\n        Op.SSTORE(slot_ext_code_size_result, Op.EXTCODESIZE(auth_signer))\n        + Op.SSTORE(slot_ext_code_hash_result, Op.EXTCODEHASH(auth_signer))\n        + Op.EXTCODECOPY(auth_signer, 0, 0, Op.EXTCODESIZE(auth_signer))\n        + Op.SSTORE(slot_ext_code_copy_result, Op.MLOAD(0))\n        + Op.SSTORE(slot_ext_balance_result, Op.BALANCE(auth_signer))\n        + Op.STOP\n    )\n    set_code_address = pre.deploy_contract(set_code)\n\n    set_code_storage = Storage()\n    set_code_storage[slot_ext_code_size_result] = len(\n        Spec.delegation_designation(set_code_address)\n    )\n    set_code_storage[slot_ext_code_hash_result] = Spec.delegation_designation(\n        set_code_address\n    ).keccak256()\n    set_code_storage[slot_ext_code_copy_result] = Hash(\n        Spec.delegation_designation(set_code_address), right_padding=True\n    )\n    set_code_storage[slot_ext_balance_result] = balance\n\n    tx = Transaction(\n        gas_limit=10_000_000,\n        to=auth_signer,\n        authorization_list=[\n            AuthorizationTuple(\n                address=set_code_address,\n                nonce=0,\n                signer=auth_signer,\n            ),\n        ],\n        sender=pre.fund_eoa(),\n    )\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            auth_signer: Account(storage=set_code_storage),\n        },\n    )\n\n\n@pytest.mark.with_all_evm_code_types()\n@pytest.mark.parametrize(\n    \"set_code_address_first\",\n    [\n        pytest.param(True, id=\"call_set_code_address_first_then_authority\"),\n        pytest.param(False, id=\"call_authority_first_then_set_code_address\"),\n    ],\n)\ndef test_set_code_address_and_authority_warm_state(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    set_code_address_first: bool,\n) -> None:\n    \"\"\"\n    Test set to code address and authority warm status after a call to\n    authority address, or vice-versa.\n    \"\"\"\n    auth_signer = pre.fund_eoa(auth_account_start_balance)\n\n    slot = count(1)\n    slot_call_success = next(slot)\n    slot_set_code_to_warm_state = next(slot)\n    slot_authority_warm_state = next(slot)\n\n    set_code = Op.STOP\n    set_code_to_address = pre.deploy_contract(set_code)\n\n    call_opcode = Op.CALL\n    overhead_cost = 3 * len(call_opcode.kwargs)\n    if call_opcode == Op.CALL:\n        overhead_cost -= 1  # GAS opcode is less expensive than a PUSH\n\n    code_gas_measure_set_code = CodeGasMeasure(\n        code=call_opcode(address=set_code_to_address),\n        overhead_cost=overhead_cost,\n        extra_stack_items=1,\n        sstore_key=slot_set_code_to_warm_state,\n        stop=False,\n    )\n    code_gas_measure_authority = CodeGasMeasure(\n        code=call_opcode(address=auth_signer),\n        overhead_cost=overhead_cost,\n        extra_stack_items=1,\n        sstore_key=slot_authority_warm_state,\n        stop=False,\n    )\n\n    callee_code = Bytecode()\n    if set_code_address_first:\n        callee_code += code_gas_measure_set_code + code_gas_measure_authority\n    else:\n        callee_code += code_gas_measure_authority + code_gas_measure_set_code\n    callee_code += Op.SSTORE(slot_call_success, 1) + Op.STOP\n\n    callee_address = pre.deploy_contract(callee_code, evm_code_type=EVMCodeType.LEGACY)\n    callee_storage = Storage()\n    callee_storage[slot_call_success] = 1\n    callee_storage[slot_set_code_to_warm_state] = 2_600 if set_code_address_first else 100\n    callee_storage[slot_authority_warm_state] = 200 if set_code_address_first else 2_700\n\n    tx = Transaction(\n        gas_limit=1_000_000,\n        to=callee_address,\n        authorization_list=[\n            AuthorizationTuple(\n                address=set_code_to_address,\n                nonce=0,\n                signer=auth_signer,\n            ),\n        ],\n        sender=pre.fund_eoa(),\n    )\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            callee_address: Account(storage=callee_storage),\n            auth_signer: Account(\n                nonce=1,\n                code=Spec.delegation_designation(set_code_to_address),\n                balance=auth_account_start_balance,\n            ),\n        },\n    )\n\n\n@pytest.mark.with_all_call_opcodes()\n@pytest.mark.parametrize(\n    \"set_code_address_first\",\n    [\n        pytest.param(True, id=\"call_set_code_address_first_then_authority\"),\n        pytest.param(False, id=\"call_authority_first_then_set_code_address\"),\n    ],\n)\ndef test_set_code_address_and_authority_warm_state_call_types(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    call_opcode: Op,\n    set_code_address_first: bool,\n) -> None:\n    \"\"\"\n    Test set to code address and authority warm status after a call to\n    authority address, or vice-versa, using all available call opcodes without\n    using `GAS` opcode (unavailable in EOF).\n    \"\"\"\n    auth_signer = pre.fund_eoa(auth_account_start_balance)\n\n    slot = count(1)\n    slot_call_return_code = next(slot)\n    slot_call_success = next(slot)\n\n    set_code = Op.STOP\n    set_code_to_address = pre.deploy_contract(set_code)\n\n    call_set_code_to_address = Op.SSTORE(\n        slot_call_return_code, call_opcode(address=set_code_to_address)\n    )\n    call_authority_address = Op.SSTORE(slot_call_return_code, call_opcode(address=auth_signer))\n\n    callee_code = Bytecode()\n    if set_code_address_first:\n        callee_code += call_set_code_to_address + call_authority_address\n    else:\n        callee_code += call_authority_address + call_set_code_to_address\n    callee_code += Op.SSTORE(slot_call_success, 1) + Op.STOP\n\n    callee_address = pre.deploy_contract(callee_code)\n    callee_storage = Storage()\n    callee_storage[slot_call_return_code] = call_return_code(opcode=call_opcode, success=True)\n    callee_storage[slot_call_success] = 1\n\n    tx = Transaction(\n        gas_limit=1_000_000,\n        to=callee_address,\n        authorization_list=[\n            AuthorizationTuple(\n                address=set_code_to_address,\n                nonce=0,\n                signer=auth_signer,\n            ),\n        ],\n        sender=pre.fund_eoa(),\n    )\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            callee_address: Account(storage=callee_storage),\n            auth_signer: Account(\n                nonce=1,\n                code=Spec.delegation_designation(set_code_to_address),\n                balance=auth_account_start_balance,\n            ),\n        },\n    )\n\n\n@pytest.mark.parametrize(\n    \"balance\",\n    [0, 1],\n)\ndef test_ext_code_on_self_delegating_set_code(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    balance: int,\n) -> None:\n    \"\"\"\n    Test different ext*code operations on a set-code address that delegates to\n    itself.\n    \"\"\"\n    auth_signer = pre.fund_eoa(balance)\n\n    slot = count(1)\n    slot_ext_code_size_result = next(slot)\n    slot_ext_code_hash_result = next(slot)\n    slot_ext_code_copy_result = next(slot)\n    slot_ext_balance_result = next(slot)\n\n    callee_code = (\n        Op.SSTORE(slot_ext_code_size_result, Op.EXTCODESIZE(auth_signer))\n        + Op.SSTORE(slot_ext_code_hash_result, Op.EXTCODEHASH(auth_signer))\n        + Op.EXTCODECOPY(auth_signer, 0, 0, Op.EXTCODESIZE(auth_signer))\n        + Op.SSTORE(slot_ext_code_copy_result, Op.MLOAD(0))\n        + Op.SSTORE(slot_ext_balance_result, Op.BALANCE(auth_signer))\n        + Op.STOP\n    )\n    callee_address = pre.deploy_contract(callee_code)\n    callee_storage = Storage()\n\n    callee_storage[slot_ext_code_size_result] = len(Spec.delegation_designation(auth_signer))\n    callee_storage[slot_ext_code_hash_result] = Spec.delegation_designation(\n        auth_signer\n    ).keccak256()\n    callee_storage[slot_ext_code_copy_result] = Hash(\n        Spec.delegation_designation(auth_signer), right_padding=True\n    )\n    callee_storage[slot_ext_balance_result] = balance\n\n    tx = Transaction(\n        gas_limit=10_000_000,\n        to=callee_address,\n        authorization_list=[\n            AuthorizationTuple(\n                address=auth_signer,\n                nonce=0,\n                signer=auth_signer,\n            ),\n        ],\n        sender=pre.fund_eoa(),  # TODO: Test with sender as auth_signer\n    )\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            auth_signer: Account(\n                nonce=1,\n                code=Spec.delegation_designation(auth_signer),\n                balance=balance,\n            ),\n            callee_address: Account(storage=callee_storage),\n        },\n    )\n\n\ndef test_ext_code_on_chain_delegating_set_code(\n    state_test: StateTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    Test different ext*code operations on a set-code address that references\n    another delegated address.\n    \"\"\"\n    auth_signer_1_balance = 1\n    auth_signer_2_balance = 0\n\n    auth_signer_1 = pre.fund_eoa(auth_signer_1_balance)\n    auth_signer_2 = pre.fund_eoa(auth_signer_2_balance)\n\n    slot = count(1)\n\n    slot_ext_code_size_result_1 = next(slot)\n    slot_ext_code_hash_result_1 = next(slot)\n    slot_ext_code_copy_result_1 = next(slot)\n    slot_ext_balance_result_1 = next(slot)\n\n    slot_ext_code_size_result_2 = next(slot)\n    slot_ext_code_hash_result_2 = next(slot)\n    slot_ext_code_copy_result_2 = next(slot)\n    slot_ext_balance_result_2 = next(slot)\n\n    callee_code = (\n        # Address 1\n        Op.SSTORE(slot_ext_code_size_result_1, Op.EXTCODESIZE(auth_signer_1))\n        + Op.SSTORE(slot_ext_code_hash_result_1, Op.EXTCODEHASH(auth_signer_1))\n        + Op.EXTCODECOPY(auth_signer_1, 0, 0, Op.EXTCODESIZE(auth_signer_1))\n        + Op.SSTORE(slot_ext_code_copy_result_1, Op.MLOAD(0))\n        + Op.SSTORE(slot_ext_balance_result_1, Op.BALANCE(auth_signer_1))\n        # Address 2\n        + Op.SSTORE(slot_ext_code_size_result_2, Op.EXTCODESIZE(auth_signer_2))\n        + Op.SSTORE(slot_ext_code_hash_result_2, Op.EXTCODEHASH(auth_signer_2))\n        + Op.EXTCODECOPY(auth_signer_2, 0, 0, Op.EXTCODESIZE(auth_signer_2))\n        + Op.SSTORE(slot_ext_code_copy_result_2, Op.MLOAD(0))\n        + Op.SSTORE(slot_ext_balance_result_2, Op.BALANCE(auth_signer_2))\n        + Op.STOP\n    )\n    callee_address = pre.deploy_contract(callee_code)\n    callee_storage = Storage()\n\n    callee_storage[slot_ext_code_size_result_1] = len(Spec.delegation_designation(auth_signer_2))\n    callee_storage[slot_ext_code_hash_result_1] = Spec.delegation_designation(\n        auth_signer_2\n    ).keccak256()\n    callee_storage[slot_ext_code_copy_result_1] = Hash(\n        Spec.delegation_designation(auth_signer_2), right_padding=True\n    )\n    callee_storage[slot_ext_balance_result_1] = auth_signer_1_balance\n\n    callee_storage[slot_ext_code_size_result_2] = len(Spec.delegation_designation(auth_signer_1))\n    callee_storage[slot_ext_code_hash_result_2] = Spec.delegation_designation(\n        auth_signer_1\n    ).keccak256()\n    callee_storage[slot_ext_code_copy_result_2] = Hash(\n        Spec.delegation_designation(auth_signer_1), right_padding=True\n    )\n    callee_storage[slot_ext_balance_result_2] = auth_signer_2_balance\n\n    tx = Transaction(\n        gas_limit=10_000_000,\n        to=callee_address,\n        authorization_list=[\n            AuthorizationTuple(\n                address=auth_signer_2,\n                nonce=0,\n                signer=auth_signer_1,\n            ),\n            AuthorizationTuple(\n                address=auth_signer_1,\n                nonce=0,\n                signer=auth_signer_2,\n            ),\n        ],\n        sender=pre.fund_eoa(),  # TODO: Test with sender as auth_signer\n    )\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            auth_signer_1: Account(\n                nonce=1,\n                code=Spec.delegation_designation(auth_signer_2),\n                balance=auth_signer_1_balance,\n            ),\n            auth_signer_2: Account(\n                nonce=1,\n                code=Spec.delegation_designation(auth_signer_1),\n                balance=auth_signer_2_balance,\n            ),\n            callee_address: Account(storage=callee_storage),\n        },\n    )\n\n\n@pytest.mark.parametrize(\n    \"balance\",\n    [0, 1],\n)\ndef test_self_code_on_set_code(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    balance: int,\n) -> None:\n    \"\"\"Test codesize and codecopy operations on a set-code address.\"\"\"\n    auth_signer = pre.fund_eoa(balance)\n\n    slot = count(1)\n    slot_code_size_result = next(slot)\n    slot_code_copy_result = next(slot)\n    slot_self_balance_result = next(slot)\n\n    set_code = (\n        Op.SSTORE(slot_code_size_result, Op.CODESIZE)\n        + Op.CODECOPY(0, 0, Op.CODESIZE)\n        + Op.SSTORE(slot_code_copy_result, Op.MLOAD(0))\n        + Op.SSTORE(slot_self_balance_result, Op.SELFBALANCE)\n        + Op.STOP\n    )\n    set_code_to_address = pre.deploy_contract(set_code)\n\n    storage = Storage()\n    storage[slot_code_size_result] = len(set_code)\n    storage[slot_code_copy_result] = bytes(set_code).ljust(32, b\"\\x00\")[:32]\n    storage[slot_self_balance_result] = balance\n\n    tx = Transaction(\n        gas_limit=10_000_000,\n        to=auth_signer,\n        authorization_list=[\n            AuthorizationTuple(\n                address=set_code_to_address,\n                nonce=0,\n                signer=auth_signer,\n            ),\n        ],\n        sender=pre.fund_eoa(),\n    )\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            set_code_to_address: Account(storage={}),\n            auth_signer: Account(\n                nonce=1,\n                code=Spec.delegation_designation(set_code_to_address),\n                storage=storage,\n                balance=balance,\n            ),\n        },\n    )\n\n\n@pytest.mark.with_all_create_opcodes\ndef test_set_code_to_account_deployed_in_same_tx(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    create_opcode: Op,\n    evm_code_type: EVMCodeType,\n) -> None:\n    \"\"\"\n    Test setting the code of an account to an address that is deployed in the\n    same transaction, and test calling the set-code address and the deployed\n    contract.\n    \"\"\"\n    auth_signer = pre.fund_eoa(auth_account_start_balance)\n\n    success_slot = 1\n\n    deployed_code: Bytecode | Container = Op.SSTORE(success_slot, 1) + Op.STOP\n    initcode: Bytecode | Container\n\n    if evm_code_type == EVMCodeType.LEGACY:\n        initcode = Initcode(deploy_code=deployed_code)\n    elif evm_code_type == EVMCodeType.EOF_V1:\n        deployed_code = Container.Code(deployed_code)\n        initcode = Container.Init(deploy_container=deployed_code)\n    else:\n        raise ValueError(f\"Unsupported EVM code type: {evm_code_type}\")\n\n    deployed_contract_address_slot = 1\n    signer_call_return_code_slot = 2\n    deployed_contract_call_return_code_slot = 3\n\n    call_opcode = Op.CALL if evm_code_type == EVMCodeType.LEGACY else Op.EXTCALL\n\n    if create_opcode == Op.EOFCREATE:\n        create_opcode = Op.EOFCREATE[0]  # type: ignore\n\n    contract_creator_code: Bytecode | Container = (\n        Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE)  # NOOP on EOF\n        + Op.SSTORE(\n            deployed_contract_address_slot,\n            create_opcode(offset=0, size=Op.CALLDATASIZE),\n        )\n        + Op.SSTORE(signer_call_return_code_slot, call_opcode(address=auth_signer))\n        + Op.SSTORE(\n            deployed_contract_call_return_code_slot,\n            call_opcode(address=Op.SLOAD(deployed_contract_address_slot)),\n        )\n        + Op.STOP()\n    )\n\n    if evm_code_type == EVMCodeType.EOF_V1:\n        contract_creator_code = Container(\n            sections=[\n                Section.Code(contract_creator_code),\n                Section.Container(container=initcode),\n            ],\n        )\n\n    contract_creator_address = pre.deploy_contract(contract_creator_code)\n\n    deployed_contract_address = compute_create_address(\n        address=contract_creator_address,\n        nonce=1,\n        salt=0,\n        initcode=initcode,\n        opcode=create_opcode,\n    )\n\n    tx = Transaction(\n        gas_limit=10_000_000,\n        to=contract_creator_address,\n        value=0,\n        data=initcode if evm_code_type == EVMCodeType.LEGACY else b\"\",\n        authorization_list=[\n            AuthorizationTuple(\n                address=deployed_contract_address,\n                nonce=0,\n                signer=auth_signer,\n            ),\n        ],\n        sender=pre.fund_eoa(),\n    )\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            deployed_contract_address: Account(\n                storage={success_slot: 1},\n            ),\n            auth_signer: Account(\n                nonce=1,\n                code=Spec.delegation_designation(deployed_contract_address),\n                storage={success_slot: 1},\n            ),\n            contract_creator_address: Account(\n                storage={\n                    deployed_contract_address_slot: deployed_contract_address,\n                    signer_call_return_code_slot: 1,\n                    deployed_contract_call_return_code_slot: 1,\n                }\n            ),\n        },\n    )\n\n\n@pytest.mark.parametrize(\n    \"external_sendall_recipient\",\n    [False, True],\n)\n@pytest.mark.parametrize(\n    \"balance\",\n    [0, 1],\n)\n@pytest.mark.parametrize(\"call_set_code_first\", [False, True])\n@pytest.mark.parametrize(\n    \"create_opcode\", [Op.CREATE, Op.CREATE2]\n)  # EOF code does not support SELFDESTRUCT\ndef test_set_code_to_self_destructing_account_deployed_in_same_tx(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    create_opcode: Op,\n    call_set_code_first: bool,\n    external_sendall_recipient: bool,\n    balance: int,\n) -> None:\n    \"\"\"\n    Test setting the code of an account to an account that contains the\n    SELFDESTRUCT opcode and was deployed in the same transaction, and test\n    calling the set-code address and the deployed in both sequence orders.\n    \"\"\"\n    auth_signer = pre.fund_eoa(balance)\n    if external_sendall_recipient:\n        recipient = pre.fund_eoa(0)\n    else:\n        recipient = auth_signer\n\n    success_slot = 1\n\n    deployed_code = Op.SSTORE(success_slot, 1) + Op.SELFDESTRUCT(recipient)\n    initcode = Initcode(deploy_code=deployed_code)\n\n    deployed_contract_address_slot = 1\n    signer_call_return_code_slot = 2\n    deployed_contract_call_return_code_slot = 3\n\n    call_opcode = Op.CALL\n\n    contract_creator_code: Bytecode = Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE) + Op.SSTORE(\n        deployed_contract_address_slot,\n        create_opcode(offset=0, size=Op.CALLDATASIZE),\n    )\n    if call_set_code_first:\n        contract_creator_code += Op.SSTORE(\n            signer_call_return_code_slot, call_opcode(address=auth_signer)\n        ) + Op.SSTORE(\n            deployed_contract_call_return_code_slot,\n            call_opcode(address=Op.SLOAD(deployed_contract_address_slot)),\n        )\n    else:\n        contract_creator_code += Op.SSTORE(\n            deployed_contract_call_return_code_slot,\n            call_opcode(address=Op.SLOAD(deployed_contract_address_slot)),\n        ) + Op.SSTORE(signer_call_return_code_slot, call_opcode(address=auth_signer))\n\n    contract_creator_code += Op.STOP\n\n    contract_creator_address = pre.deploy_contract(contract_creator_code)\n\n    deployed_contract_address = compute_create_address(\n        address=contract_creator_address,\n        nonce=1,\n        initcode=initcode,\n        opcode=create_opcode,\n    )\n\n    tx = Transaction(\n        gas_limit=10_000_000,\n        to=contract_creator_address,\n        value=0,\n        data=initcode,\n        authorization_list=[\n            AuthorizationTuple(\n                address=deployed_contract_address,\n                nonce=0,\n                signer=auth_signer,\n            ),\n        ],\n        sender=pre.fund_eoa(),\n    )\n\n    post = {\n        deployed_contract_address: Account.NONEXISTENT,\n        auth_signer: Account(\n            nonce=1,\n            code=Spec.delegation_designation(deployed_contract_address),\n            storage={success_slot: 1},\n            balance=balance if not external_sendall_recipient else 0,\n        ),\n        contract_creator_address: Account(\n            storage={\n                deployed_contract_address_slot: deployed_contract_address,\n                signer_call_return_code_slot: 1,\n                deployed_contract_call_return_code_slot: 1,\n            }\n        ),\n    }\n\n    if external_sendall_recipient and balance > 0:\n        post[recipient] = Account(balance=balance)\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.xdist_group(name=\"bigmem\")\ndef test_set_code_multiple_first_valid_authorization_tuples_same_signer(\n    state_test: StateTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    Test setting the code of an account with multiple authorization tuples from\n    the same signer.\n    \"\"\"\n    auth_signer = pre.fund_eoa(auth_account_start_balance)\n\n    tuple_count = 10\n\n    success_slot = 0\n\n    addresses = [pre.deploy_contract(Op.SSTORE(i, 1) + Op.STOP) for i in range(tuple_count)]\n\n    tx = Transaction(\n        gas_limit=10_000_000,\n        to=auth_signer,\n        value=0,\n        authorization_list=[\n            AuthorizationTuple(\n                address=address,\n                nonce=0,\n                signer=auth_signer,\n            )\n            for address in addresses\n        ],\n        sender=pre.fund_eoa(),\n    )\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            auth_signer: Account(\n                nonce=1,\n                code=Spec.delegation_designation(addresses[0]),\n                storage={\n                    success_slot: 1,\n                },\n            ),\n        },\n    )\n\n\n@pytest.mark.xdist_group(name=\"bigmem\")\ndef test_set_code_multiple_valid_authorization_tuples_same_signer_increasing_nonce(\n    state_test: StateTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    Test setting the code of an account with multiple authorization tuples from\n    the same signer and each authorization tuple has an increasing nonce,\n    therefore the last tuple is executed.\n    \"\"\"\n    auth_signer = pre.fund_eoa(auth_account_start_balance)\n\n    tuple_count = 10\n\n    success_slot = tuple_count - 1\n\n    addresses = [pre.deploy_contract(Op.SSTORE(i, 1) + Op.STOP) for i in range(tuple_count)]\n\n    tx = Transaction(\n        gas_limit=10_000_000,  # TODO: Reduce gas limit of all tests\n        to=auth_signer,\n        value=0,\n        authorization_list=[\n            AuthorizationTuple(\n                address=address,\n                nonce=i,\n                signer=auth_signer,\n            )\n            for i, address in enumerate(addresses)\n        ],\n        sender=pre.fund_eoa(),\n    )\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            auth_signer: Account(\n                nonce=10,\n                code=Spec.delegation_designation(addresses[success_slot]),\n                storage={\n                    success_slot: 1,\n                },\n            ),\n        },\n    )\n\n\n@pytest.mark.xdist_group(name=\"bigmem\")\ndef test_set_code_multiple_valid_authorization_tuples_same_signer_increasing_nonce_self_sponsored(\n    state_test: StateTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    Test setting the code of an account with multiple authorization tuples from\n    the same signer and each authorization tuple has an increasing nonce,\n    therefore the last tuple is executed, and the transaction is\n    self-sponsored.\n    \"\"\"\n    auth_signer = pre.fund_eoa()\n\n    tuple_count = 10\n\n    success_slot = tuple_count - 1\n\n    addresses = [pre.deploy_contract(Op.SSTORE(i, 1) + Op.STOP) for i in range(tuple_count)]\n\n    tx = Transaction(\n        gas_limit=10_000_000,  # TODO: Reduce gas limit of all tests\n        to=auth_signer,\n        value=0,\n        authorization_list=[\n            AuthorizationTuple(\n                address=address,\n                nonce=i + 1,\n                signer=auth_signer,\n            )\n            for i, address in enumerate(addresses)\n        ],\n        sender=auth_signer,\n    )\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            auth_signer: Account(\n                nonce=11,\n                code=Spec.delegation_designation(addresses[success_slot]),\n                storage={\n                    success_slot: 1,\n                },\n            ),\n        },\n    )\n\n\ndef test_set_code_multiple_valid_authorization_tuples_first_invalid_same_signer(\n    state_test: StateTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    Test setting the code of an account with multiple authorization tuples from\n    the same signer but the first tuple is invalid.\n    \"\"\"\n    auth_signer = pre.fund_eoa(auth_account_start_balance)\n\n    success_slot = 1\n\n    tuple_count = 10\n\n    addresses = [pre.deploy_contract(Op.SSTORE(i, 1) + Op.STOP) for i in range(tuple_count)]\n\n    tx = Transaction(\n        gas_limit=10_000_000,\n        to=auth_signer,\n        value=0,\n        authorization_list=[\n            AuthorizationTuple(\n                address=address,\n                nonce=1 if i == 0 else 0,\n                signer=auth_signer,\n            )\n            for i, address in enumerate(addresses)\n        ],\n        sender=pre.fund_eoa(),\n    )\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            auth_signer: Account(\n                nonce=1,\n                code=Spec.delegation_designation(addresses[1]),\n                storage={\n                    success_slot: 1,\n                },\n            ),\n        },\n    )\n\n\n@pytest.mark.xdist_group(name=\"bigmem\")\ndef test_set_code_all_invalid_authorization_tuples(\n    state_test: StateTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    Test setting the code of an account with multiple authorization tuples from\n    the same signer and all of them are invalid.\n    \"\"\"\n    auth_signer = pre.fund_eoa(auth_account_start_balance)\n\n    tuple_count = 10\n\n    addresses = [pre.deploy_contract(Op.SSTORE(i, 1) + Op.STOP) for i in range(tuple_count)]\n\n    tx = Transaction(\n        gas_limit=10_000_000,\n        to=auth_signer,\n        value=0,\n        authorization_list=[\n            AuthorizationTuple(\n                address=address,\n                nonce=1,\n                signer=auth_signer,\n            )\n            for _, address in enumerate(addresses)\n        ],\n        sender=pre.fund_eoa(),\n    )\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            auth_signer: Account.NONEXISTENT,\n        },\n    )\n\n\n@pytest.mark.xdist_group(name=\"bigmem\")\ndef test_set_code_using_chain_specific_id(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    chain_config: ChainConfig,\n) -> None:\n    \"\"\"\n    Test sending a transaction to set the code of an account using a\n    chain-specific ID.\n    \"\"\"\n    auth_signer = pre.fund_eoa(auth_account_start_balance)\n\n    success_slot = 1\n\n    set_code = Op.SSTORE(success_slot, 1) + Op.STOP\n    set_code_to_address = pre.deploy_contract(set_code)\n\n    tx = Transaction(\n        gas_limit=100_000,\n        to=auth_signer,\n        value=0,\n        authorization_list=[\n            AuthorizationTuple(\n                address=set_code_to_address,\n                nonce=0,\n                chain_id=chain_config.chain_id,\n                signer=auth_signer,\n            )\n        ],\n        sender=pre.fund_eoa(),\n    )\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            auth_signer: Account(\n                nonce=1,\n                code=Spec.delegation_designation(set_code_to_address),\n                storage={\n                    success_slot: 1,\n                },\n            ),\n        },\n    )\n\n\nSECP256K1N = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141\nSECP256K1N_OVER_2 = SECP256K1N // 2\n\n\n@pytest.mark.xdist_group(name=\"bigmem\")\n@pytest.mark.parametrize(\n    \"v,r,s\",\n    [\n        pytest.param(0, 1, 1, id=\"v=0,r=1,s=1\"),\n        pytest.param(1, 1, 1, id=\"v=1,r=1,s=1\"),\n        pytest.param(0, SECP256K1N - 2, 1, id=\"v=0,r=SECP256K1N-2,s=1\"),\n        pytest.param(1, SECP256K1N - 2, 1, id=\"v=1,r=SECP256K1N-2,s=1\"),\n        pytest.param(0, 1, SECP256K1N_OVER_2, id=\"v=0,r=1,s=SECP256K1N_OVER_2\"),\n        pytest.param(1, 1, SECP256K1N_OVER_2, id=\"v=1,r=1,s=SECP256K1N_OVER_2\"),\n    ],\n)\ndef test_set_code_using_valid_synthetic_signatures(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    chain_config: ChainConfig,\n    v: int,\n    r: int,\n    s: int,\n) -> None:\n    \"\"\"\n    Test sending a transaction to set the code of an account using synthetic\n    signatures.\n    \"\"\"\n    success_slot = 1\n\n    set_code = Op.SSTORE(success_slot, 1) + Op.STOP\n    set_code_to_address = pre.deploy_contract(set_code)\n\n    authorization_tuple = AuthorizationTuple(\n        address=set_code_to_address,\n        nonce=0,\n        chain_id=chain_config.chain_id,\n        v=v,\n        r=r,\n        s=s,\n    )\n\n    auth_signer = authorization_tuple.signer\n\n    tx = Transaction(\n        gas_limit=100_000,\n        to=auth_signer,\n        value=0,\n        authorization_list=[authorization_tuple],\n        sender=pre.fund_eoa(),\n    )\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            auth_signer: Account(\n                nonce=1,\n                code=Spec.delegation_designation(set_code_to_address),\n                storage={\n                    success_slot: 1,\n                },\n            ),\n        },\n    )\n\n\n@pytest.mark.xdist_group(name=\"bigmem\")\n@pytest.mark.parametrize(\n    \"v,r,s\",\n    [\n        # V\n        pytest.param(2, 1, 1, id=\"v=2\"),\n        pytest.param(27, 1, 1, id=\"v=27\"),  # Type-0 transaction valid value\n        pytest.param(28, 1, 1, id=\"v=28\"),  # Type-0 transaction valid value\n        pytest.param(35, 1, 1, id=\"v=35\"),  # Type-0 replay-protected\n        # transaction valid value\n        pytest.param(36, 1, 1, id=\"v=36\"),  # Type-0 replay-protected\n        # transaction valid value\n        pytest.param(2**8 - 1, 1, 1, id=\"v=2**8-1\"),\n        # R\n        pytest.param(1, 0, 1, id=\"r=0\"),\n        pytest.param(0, SECP256K1N - 1, 1, id=\"r=SECP256K1N-1\"),\n        pytest.param(0, SECP256K1N, 1, id=\"r=SECP256K1N\"),\n        pytest.param(0, SECP256K1N + 1, 1, id=\"r=SECP256K1N+1\"),\n        pytest.param(1, 2**256 - 1, 1, id=\"r=2**256-1\"),\n        # S\n        pytest.param(1, 1, 0, id=\"s=0\"),\n        pytest.param(0, 1, SECP256K1N_OVER_2 - 1, id=\"s=SECP256K1N_OVER_2-1\"),\n        pytest.param(0, 1, SECP256K1N_OVER_2, id=\"s=SECP256K1N_OVER_2\"),\n        pytest.param(0, 1, SECP256K1N_OVER_2 + 1, id=\"s=SECP256K1N_OVER_2+1\"),\n        pytest.param(0, 1, SECP256K1N - 1, id=\"s=SECP256K1N-1\"),\n        pytest.param(0, 1, SECP256K1N, id=\"s=SECP256K1N\"),\n        pytest.param(0, 1, SECP256K1N + 1, id=\"s=SECP256K1N+1\"),\n        pytest.param(0, 1, 2**256 - 1, id=\"s=2**256-1\"),\n        # All Values\n        pytest.param(0, 0, 0, id=\"v=r=s=0\"),\n        pytest.param(2**8 - 1, 2**256 - 1, 2**256 - 1, id=\"v=2**8-1,r=s=2**256-1\"),\n    ],\n)\ndef test_valid_tx_invalid_auth_signature(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    chain_config: ChainConfig,\n    v: int,\n    r: int,\n    s: int,\n) -> None:\n    \"\"\"\n    Test sending a transaction to set the code of an account using synthetic\n    signatures, the transaction is valid but the authorization should not go\n    through.\n    \"\"\"\n    success_slot = 1\n\n    callee_code = Op.SSTORE(success_slot, 1) + Op.STOP\n    callee_address = pre.deploy_contract(callee_code)\n\n    authorization_tuple = AuthorizationTuple(\n        address=0,\n        nonce=0,\n        chain_id=chain_config.chain_id,\n        v=v,\n        r=r,\n        s=s,\n    )\n\n    tx = Transaction(\n        gas_limit=100_000,\n        to=callee_address,\n        value=0,\n        authorization_list=[authorization_tuple],\n        sender=pre.fund_eoa(),\n    )\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            callee_address: Account(\n                storage={success_slot: 1},\n            ),\n        },\n    )\n\n\ndef test_signature_s_out_of_range(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    chain_config: ChainConfig,\n) -> None:\n    \"\"\"\n    Test sending a transaction with an authorization tuple where the signature\n    s value is out of range by modifying its value to be `SECP256K1N - S` and\n    flipping the v value.\n    \"\"\"\n    auth_signer = pre.fund_eoa(0)\n\n    set_code = Op.STOP\n    set_code_to_address = pre.deploy_contract(set_code)\n\n    authorization_tuple = AuthorizationTuple(\n        address=set_code_to_address,\n        nonce=0,\n        chain_id=chain_config.chain_id,\n        signer=auth_signer,\n    )\n\n    authorization_tuple.s = HexNumber(SECP256K1N - authorization_tuple.s)\n    authorization_tuple.v = HexNumber(1 - authorization_tuple.v)\n\n    assert authorization_tuple.s > SECP256K1N_OVER_2\n\n    success_slot = 1\n    entry_code = Op.SSTORE(success_slot, 1) + Op.STOP\n    entry_address = pre.deploy_contract(entry_code)\n\n    tx = Transaction(\n        gas_limit=100_000,\n        to=entry_address,\n        value=0,\n        authorization_list=[authorization_tuple],\n        sender=pre.fund_eoa(),\n    )\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            auth_signer: Account.NONEXISTENT,\n            entry_address: Account(\n                storage={success_slot: 1},\n            ),\n        },\n    )\n\n\nclass InvalidChainID(StrEnum):\n    \"\"\"Invalid chain IDs for the authorization tuple.\"\"\"\n\n    MAX_AUTH_CHAIN_ID = \"2**256-1\"\n    CORRECT_CHAIN_ID_PLUS_ONE = \"correct_chain_id+1\"\n    CORRECT_CHAIN_ID_MINUS_ONE = \"correct_chain_id-1\"\n\n\n@pytest.mark.parametrize(\n    \"invalid_chain_id_case\",\n    [\n        pytest.param(InvalidChainID.MAX_AUTH_CHAIN_ID, id=\"auth_chain_id=2**256-1\"),\n        pytest.param(\n            InvalidChainID.CORRECT_CHAIN_ID_PLUS_ONE, id=\"auth_chain_id=correct_chain_id+1\"\n        ),\n        pytest.param(\n            InvalidChainID.CORRECT_CHAIN_ID_MINUS_ONE, id=\"auth_chain_id=correct_chain_id-1\"\n        ),\n    ],\n)\ndef test_valid_tx_invalid_chain_id(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    chain_config: ChainConfig,\n    invalid_chain_id_case: InvalidChainID,\n) -> None:\n    \"\"\"\n    Test sending a transaction where the chain id field does not match the\n    current chain's id.\n    \"\"\"\n    auth_signer = pre.fund_eoa(auth_account_start_balance)\n\n    success_slot = 1\n    return_slot = 2\n\n    set_code = Op.RETURN(0, 1)\n    set_code_to_address = pre.deploy_contract(set_code)\n\n    if invalid_chain_id_case == InvalidChainID.MAX_AUTH_CHAIN_ID:\n        auth_chain_id = Spec.MAX_AUTH_CHAIN_ID\n    elif invalid_chain_id_case == InvalidChainID.CORRECT_CHAIN_ID_PLUS_ONE:\n        auth_chain_id = chain_config.chain_id + 1\n    elif invalid_chain_id_case == InvalidChainID.CORRECT_CHAIN_ID_MINUS_ONE:\n        auth_chain_id = chain_config.chain_id - 1\n        if auth_chain_id == 0:\n            pytest.skip(\"Cannot use correct_chain_id-1 as invalid chain ID\")\n    else:\n        raise ValueError(f\"Invalid chain ID case: {invalid_chain_id_case}\")\n\n    authorization = AuthorizationTuple(\n        address=set_code_to_address,\n        nonce=0,\n        chain_id=auth_chain_id,\n        signer=auth_signer,\n    )\n\n    entry_code = (\n        Op.SSTORE(success_slot, 1)\n        + Op.CALL(address=auth_signer)\n        + Op.SSTORE(return_slot, Op.RETURNDATASIZE)\n    )\n    entry_address = pre.deploy_contract(entry_code)\n\n    tx = Transaction(\n        gas_limit=100_000,\n        to=entry_address,\n        value=0,\n        authorization_list=[authorization],\n        error=None,\n        sender=pre.fund_eoa(),\n    )\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            auth_signer: Account.NONEXISTENT,\n            entry_address: Account(\n                storage={\n                    success_slot: 1,\n                    return_slot: 0,\n                },\n            ),\n        },\n    )\n\n\n@pytest.mark.parametrize(\n    \"account_nonce,authorization_nonce\",\n    [\n        pytest.param(\n            Spec.MAX_NONCE,\n            Spec.MAX_NONCE,\n            id=\"nonce=2**64-1\",\n            marks=pytest.mark.execute(pytest.mark.skip(reason=\"Impossible account nonce\")),\n        ),\n        pytest.param(\n            Spec.MAX_NONCE - 1,\n            Spec.MAX_NONCE - 1,\n            id=\"nonce=2**64-2\",\n            marks=pytest.mark.execute(pytest.mark.skip(reason=\"Impossible account nonce\")),\n        ),\n        pytest.param(\n            0,\n            1,\n            id=\"nonce=1,account_nonce=0\",\n        ),\n        pytest.param(\n            1,\n            0,\n            id=\"nonce=0,account_nonce=1\",\n        ),\n    ],\n)\n@pytest.mark.execute(pytest.mark.skip(reason=\"Non-zero nonce not supported\"))\ndef test_nonce_validity(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    account_nonce: int,\n    authorization_nonce: int,\n) -> None:\n    \"\"\"\n    Test sending a transaction where the nonce field of an authorization almost\n    overflows the maximum value.\n\n    Also test calling the account of the authorization signer in order to\n    verify that the account is not warm.\n    \"\"\"\n    auth_signer = pre.fund_eoa(auth_account_start_balance, nonce=account_nonce)\n\n    success_slot = 1\n    return_slot = 2\n\n    valid_authorization = authorization_nonce < 2**64 - 1 and account_nonce == authorization_nonce\n    set_code = Op.RETURN(0, 1)\n    set_code_to_address = pre.deploy_contract(set_code)\n\n    authorization = AuthorizationTuple(\n        address=set_code_to_address,\n        nonce=authorization_nonce,\n        signer=auth_signer,\n    )\n\n    entry_code = (\n        Op.SSTORE(success_slot, 1)\n        + Op.CALL(address=auth_signer)\n        + Op.SSTORE(return_slot, Op.RETURNDATASIZE)\n    )\n    entry_address = pre.deploy_contract(entry_code)\n\n    tx = Transaction(\n        gas_limit=100_000,\n        to=entry_address,\n        value=0,\n        authorization_list=[authorization],\n        sender=pre.fund_eoa(),\n    )\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            auth_signer: Account(\n                nonce=(account_nonce + 1) if valid_authorization else account_nonce,\n                code=Spec.delegation_designation(set_code_to_address)\n                if valid_authorization\n                else b\"\",\n            )\n            if authorization_nonce < 2**64 and account_nonce > 0\n            else Account.NONEXISTENT,\n            entry_address: Account(\n                storage={\n                    success_slot: 1,\n                    return_slot: 1 if valid_authorization else 0,\n                },\n            ),\n        },\n    )\n\n\n@pytest.mark.execute(pytest.mark.skip(reason=\"Impossible account nonce\"))\ndef test_nonce_overflow_after_first_authorization(\n    state_test: StateTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    Test sending a transaction with two authorization where the first one bumps\n    the nonce to 2**64-1 and the second would result in overflow.\n    \"\"\"\n    nonce = 2**64 - 2\n    auth_signer = pre.fund_eoa(auth_account_start_balance, nonce=nonce)\n\n    success_slot = 1\n    return_slot = 2\n\n    set_code_1 = Op.RETURN(0, 1)\n    set_code_to_address_1 = pre.deploy_contract(set_code_1)\n    set_code_2 = Op.RETURN(0, 2)\n    set_code_to_address_2 = pre.deploy_contract(set_code_2)\n\n    authorization_list = [\n        AuthorizationTuple(\n            address=set_code_to_address_1,\n            nonce=nonce,\n            signer=auth_signer,\n        ),\n        AuthorizationTuple(\n            address=set_code_to_address_2,\n            nonce=nonce + 1,\n            signer=auth_signer,\n        ),\n    ]\n\n    entry_code = (\n        Op.SSTORE(success_slot, 1)\n        + Op.CALL(address=auth_signer)\n        + Op.SSTORE(return_slot, Op.RETURNDATASIZE)\n    )\n    entry_address = pre.deploy_contract(entry_code)\n\n    tx = Transaction(\n        gas_limit=200_000,\n        to=entry_address,\n        value=0,\n        authorization_list=authorization_list,\n        sender=pre.fund_eoa(),\n    )\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            auth_signer: Account(\n                nonce=nonce + 1,\n                code=Spec.delegation_designation(set_code_to_address_1),\n            ),\n            entry_address: Account(\n                storage={\n                    success_slot: 1,\n                    return_slot: 1,\n                },\n            ),\n        },\n    )\n\n\n@pytest.mark.parametrize(\n    \"log_opcode\",\n    [\n        Op.LOG0,\n        Op.LOG1,\n        Op.LOG2,\n        Op.LOG3,\n        Op.LOG4,\n    ],\n)\n@pytest.mark.with_all_evm_code_types\ndef test_set_code_to_log(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    log_opcode: Op,\n) -> None:\n    \"\"\"\n    Test setting the code of an account to a contract that performs the log\n    operation.\n    \"\"\"\n    sender = pre.fund_eoa()\n\n    log_kwargs = {}\n    if \"topic_1\" in log_opcode.kwargs:\n        log_kwargs[\"topic_1\"] = 1\n    if \"topic_2\" in log_opcode.kwargs:\n        log_kwargs[\"topic_2\"] = 2\n    if \"topic_3\" in log_opcode.kwargs:\n        log_kwargs[\"topic_3\"] = 3\n    if \"topic_4\" in log_opcode.kwargs:\n        log_kwargs[\"topic_4\"] = 4\n\n    set_to_code = (\n        Op.MSTORE(0, 0x1234)\n        + log_opcode(size=32, **log_kwargs)  # type: ignore\n        + Op.STOP\n    )\n    set_to_address = pre.deploy_contract(set_to_code)\n\n    tx = Transaction(\n        gas_limit=10_000_000,\n        to=sender,\n        value=0,\n        authorization_list=[\n            AuthorizationTuple(\n                address=set_to_address,\n                nonce=1,\n                signer=sender,\n            ),\n        ],\n        sender=sender,\n    )\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            sender: Account(\n                nonce=2,\n                code=Spec.delegation_designation(set_to_address),\n            ),\n        },\n    )\n\n\n@pytest.mark.with_all_call_opcodes\n@pytest.mark.with_all_precompiles\n@EIPChecklist.Precompile.Test.CallContexts.SetCode(eip=[7951, 7883, 7823])\ndef test_set_code_to_precompile(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    precompile: int,\n    call_opcode: Op,\n) -> None:\n    \"\"\"\n    Test setting the code of an account to a pre-compile address and executing\n    all call opcodes.\n    \"\"\"\n    auth_signer = pre.fund_eoa(auth_account_start_balance)\n\n    if \"value\" in call_opcode.kwargs:\n        call_bytecode = call_opcode(address=auth_signer, gas=0, value=1)\n        value = 1\n    else:\n        call_bytecode = call_opcode(address=auth_signer, gas=0)\n        value = 0\n    caller_code_storage = Storage()\n    caller_code = (\n        Op.SSTORE(\n            caller_code_storage.store_next(call_return_code(opcode=call_opcode, success=True)),\n            call_bytecode,\n        )\n        + Op.SSTORE(caller_code_storage.store_next(0), Op.RETURNDATASIZE)\n        + Op.STOP\n    )\n    caller_code_address = pre.deploy_contract(caller_code, balance=value)\n\n    tx = Transaction(\n        sender=pre.fund_eoa(),\n        gas_limit=500_000,\n        to=caller_code_address,\n        authorization_list=[\n            AuthorizationTuple(\n                address=Address(precompile),\n                nonce=0,\n                signer=auth_signer,\n            ),\n        ],\n    )\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            auth_signer: Account(\n                nonce=1,\n                code=Spec.delegation_designation(Address(precompile)),\n            ),\n            caller_code_address: Account(\n                storage=caller_code_storage,\n            ),\n        },\n    )\n\n\n@pytest.mark.with_all_precompiles\ndef test_set_code_to_precompile_not_enough_gas_for_precompile_execution(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    fork: Fork,\n    precompile: int,\n) -> None:\n    \"\"\"\n    Test set code to precompile and making direct call in same transaction with\n    intrinsic gas only, no extra gas for precompile execution.\n    \"\"\"\n    auth_signer = pre.fund_eoa(amount=1)\n    auth = AuthorizationTuple(address=Address(precompile), nonce=0, signer=auth_signer)\n\n    intrinsic_gas = fork.transaction_intrinsic_cost_calculator()(\n        authorization_list_or_count=[auth],\n    )\n    discount = min(\n        Spec.PER_EMPTY_ACCOUNT_COST - Spec.PER_AUTH_BASE_COST,\n        intrinsic_gas // 5,  # max discount EIP-3529\n    )\n\n    tx = Transaction(\n        sender=pre.fund_eoa(),\n        to=auth_signer,\n        gas_limit=intrinsic_gas,\n        value=1,\n        authorization_list=[auth],\n        # explicitly check expected gas, no precompile code executed\n        expected_receipt=TransactionReceipt(gas_used=intrinsic_gas - discount),\n    )\n\n    state_test(\n        pre=pre,\n        tx=tx,\n        post={\n            auth_signer: Account(\n                # implicitly checks no OOG, successful tx transfers ``value=1``\n                balance=2,\n                code=Spec.delegation_designation(Address(precompile)),\n                nonce=1,\n            ),\n        },\n    )\n\n\ndef deposit_contract_initial_storage() -> Storage:\n    \"\"\"Return the initial storage of the deposit contract.\"\"\"\n    storage = Storage()\n    deposit_contract_tree_depth = 32\n    next_hash = sha256(b\"\\x00\" * 64).digest()\n    for i in range(deposit_contract_tree_depth + 2, deposit_contract_tree_depth * 2 + 1):\n        storage[i] = next_hash\n        next_hash = sha256(next_hash + next_hash).digest()\n    return storage\n\n\n@pytest.mark.with_all_call_opcodes(\n    selector=(\n        lambda opcode: opcode\n        not in [Op.STATICCALL, Op.CALLCODE, Op.DELEGATECALL, Op.EXTDELEGATECALL, Op.EXTSTATICCALL]\n    )\n)\n@pytest.mark.with_all_system_contracts\ndef test_set_code_to_system_contract(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    fork: Fork,\n    system_contract: int,\n    call_opcode: Op,\n) -> None:\n    \"\"\"Test setting the code of an account to a system contract.\"\"\"\n    caller_code_storage = Storage()\n    call_return_code_slot = caller_code_storage.store_next(\n        call_return_code(\n            opcode=call_opcode,\n            success=True,\n        )\n    )\n    call_return_data_size_slot = caller_code_storage.store_next(0)\n\n    call_value = 0\n\n    # Setup the initial storage of the account to mimic the system contract if\n    # required\n    match system_contract:\n        case Address(0x00000000219AB540356CBB839CBE05303D7705FA):  # EIP-6110\n            # Deposit contract needs specific storage values, so we set them on\n            # the account\n            auth_signer = pre.fund_eoa(\n                auth_account_start_balance, storage=deposit_contract_initial_storage()\n            )\n        case Address(0x000F3DF6D732807EF1319FB7B8BB8522D0BEAC02):  # EIP-4788\n            auth_signer = pre.fund_eoa(auth_account_start_balance, storage=Storage({1: 1}))\n        case _:\n            # Pre-fund without storage\n            auth_signer = pre.fund_eoa(auth_account_start_balance)\n\n    # Fabricate the payload for the system contract\n    match system_contract:\n        case Address(0x000F3DF6D732807EF1319FB7B8BB8522D0BEAC02):  # EIP-4788\n            caller_payload = Hash(1)\n            caller_code_storage[call_return_data_size_slot] = 32\n        case Address(0x00000000219AB540356CBB839CBE05303D7705FA):  # EIP-6110\n            # Fabricate a valid deposit request to the set-code account\n            deposit_request = DepositRequest(\n                pubkey=0x01,\n                withdrawal_credentials=0x02,\n                amount=1_000_000_000,\n                signature=0x03,\n                index=0x0,\n            )\n            caller_payload = deposit_request.calldata\n            call_value = deposit_request.value\n        case Address(0x00000961EF480EB55E80D19AD83579A64C007002):  # EIP-7002\n            # Fabricate a valid withdrawal request to the set-code account\n            withdrawal_request = WithdrawalRequest(\n                source_address=0x01,\n                validator_pubkey=0x02,\n                amount=0x03,\n                fee=0x01,\n            )\n            caller_payload = withdrawal_request.calldata\n            call_value = withdrawal_request.value\n        case Address(0x0000BBDDC7CE488642FB579F8B00F3A590007251):  # EIP-7251\n            # Fabricate a valid consolidation request to the set-code account\n            consolidation_request = ConsolidationRequest(\n                source_address=0x01,\n                source_pubkey=0x02,\n                target_pubkey=0x03,\n                fee=0x01,\n            )\n            caller_payload = consolidation_request.calldata\n            call_value = consolidation_request.value\n        case Address(0x0000F90827F1C53A10CB7A02335B175320002935):  # EIP-2935\n            # This payload is used to identify the number of blocks to be\n            # subtracted from the latest block number\n            caller_payload = Hash(1)\n            caller_code_storage[call_return_data_size_slot] = 32\n        case _:\n            raise ValueError(f\"Not implemented system contract: {system_contract}\")\n\n    # Setup the code to call the system contract\n    match system_contract:\n        case Address(0x0000F90827F1C53A10CB7A02335B175320002935):  # EIP-2935\n            # Do a trick here to get the block number of the penultimate block\n            # to ensure it is saved in the history contract\n            check_block_number = Op.SUB(Op.NUMBER, Op.CALLDATALOAD(0))\n            call_system_contract_code = Op.MSTORE(0, check_block_number) + Op.SSTORE(\n                call_return_code_slot,\n                call_opcode(address=auth_signer, value=call_value, args_size=32),\n            )\n        case _:\n            # Call another system contract with fabricated payload\n            call_system_contract_code = Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE) + Op.SSTORE(\n                call_return_code_slot,\n                call_opcode(address=auth_signer, value=call_value, args_size=Op.CALLDATASIZE),\n            )\n\n    caller_code = (\n        call_system_contract_code\n        + Op.SSTORE(call_return_data_size_slot, Op.RETURNDATASIZE)\n        + Op.STOP\n    )\n    caller_code_address = pre.deploy_contract(caller_code)\n    sender = pre.fund_eoa()\n    if call_value > 0:\n        pre.fund_address(sender, call_value)\n\n    txs = [\n        Transaction(\n            sender=sender,\n            gas_limit=500_000,\n            to=caller_code_address,\n            value=call_value,\n            data=caller_payload,\n            authorization_list=[\n                AuthorizationTuple(\n                    address=Address(system_contract),\n                    nonce=auth_signer.nonce,\n                    signer=auth_signer,\n                ),\n            ],\n        )\n    ]\n\n    blockchain_test(\n        pre=pre,\n        blocks=[\n            Block(\n                txs=txs,\n                requests_hash=Requests(),  # Verify nothing slipped into the\n                # requests trie\n            )\n        ],\n        post={\n            auth_signer: Account(\n                nonce=auth_signer.nonce + 1,\n                code=Spec.delegation_designation(Address(system_contract)),\n            ),\n            caller_code_address: Account(\n                storage=caller_code_storage,\n            ),\n        },\n    )\n\n\n@pytest.mark.with_all_evm_code_types\n@pytest.mark.with_all_tx_types(\n    selector=lambda tx_type: tx_type != 4,\n    marks=lambda tx_type: pytest.mark.execute(pytest.mark.skip(\"incompatible tx\"))\n    if tx_type in [0, 3]\n    else None,\n)\n@pytest.mark.parametrize(\n    \"same_block\",\n    [\n        pytest.param(\n            True,\n            marks=[pytest.mark.execute(pytest.mark.skip(\"duplicate scenario for execute\"))],\n            id=\"same_block\",\n        ),\n        pytest.param(False, id=\"different_block\"),\n    ],\n)\ndef test_eoa_tx_after_set_code(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    tx_type: int,\n    fork: Fork,\n    evm_code_type: EVMCodeType,\n    same_block: bool,\n) -> None:\n    \"\"\"\n    Test sending a transaction from an EOA after code has been set to the\n    account.\n    \"\"\"\n    auth_signer = pre.fund_eoa()\n\n    set_code = Op.SSTORE(1, Op.ADD(Op.SLOAD(1), 1)) + Op.STOP\n    set_code_to_address = pre.deploy_contract(set_code)\n\n    first_eoa_tx = Transaction(\n        sender=pre.fund_eoa(),\n        gas_limit=500_000,\n        to=auth_signer,\n        value=0,\n        authorization_list=[\n            AuthorizationTuple(\n                address=set_code_to_address,\n                nonce=0,\n                signer=auth_signer,\n            ),\n        ],\n    )\n    auth_signer.nonce += 1  # type: ignore\n\n    follow_up_eoa_txs: List[Transaction] = []\n    match tx_type:\n        case 0:\n            follow_up_eoa_txs.extend(\n                [\n                    Transaction(\n                        type=tx_type,\n                        sender=auth_signer,\n                        gas_limit=500_000,\n                        to=auth_signer,\n                        value=0,\n                        protected=True,\n                    ),\n                    Transaction(\n                        type=tx_type,\n                        sender=auth_signer,\n                        gas_limit=500_000,\n                        to=auth_signer,\n                        value=0,\n                        protected=False,\n                    ),\n                ]\n            )\n        case 1:\n            follow_up_eoa_txs.append(\n                Transaction(\n                    type=tx_type,\n                    sender=auth_signer,\n                    gas_limit=500_000,\n                    to=auth_signer,\n                    value=0,\n                    access_list=[\n                        AccessList(\n                            address=auth_signer,\n                            storage_keys=[1],\n                        )\n                    ],\n                )\n            )\n        case 2:\n            follow_up_eoa_txs.append(\n                Transaction(\n                    type=tx_type,\n                    sender=auth_signer,\n                    gas_limit=500_000,\n                    to=auth_signer,\n                    value=0,\n                    max_fee_per_gas=1_000,\n                    max_priority_fee_per_gas=1_000,\n                )\n            )\n        case 3:\n            follow_up_eoa_txs.append(\n                Transaction(\n                    type=tx_type,\n                    sender=auth_signer,\n                    gas_limit=500_000,\n                    to=auth_signer,\n                    value=0,\n                    max_fee_per_gas=1_000,\n                    max_priority_fee_per_gas=1_000,\n                    max_fee_per_blob_gas=fork.min_base_fee_per_blob_gas() * 10,\n                    blob_versioned_hashes=add_kzg_version(\n                        [Hash(1)],\n                        Spec4844.BLOB_COMMITMENT_VERSION_KZG,\n                    ),\n                )\n            )\n        case _:\n            raise ValueError(f\"Unsupported tx type: {tx_type}, test needs update\")\n\n    if same_block:\n        blocks = [Block(txs=[first_eoa_tx] + follow_up_eoa_txs)]\n    else:\n        blocks = [\n            Block(txs=[first_eoa_tx]),\n            Block(txs=follow_up_eoa_txs),\n        ]\n    blockchain_test(\n        pre=pre,\n        blocks=blocks,\n        post={\n            auth_signer: Account(\n                nonce=3 if tx_type == 0 else 2,\n                code=Spec.delegation_designation(set_code_to_address),\n                storage={1: 3 if tx_type == 0 else 2},\n            ),\n        },\n    )\n\n\n@pytest.mark.parametrize(\n    \"self_sponsored\",\n    [\n        pytest.param(False, id=\"not_self_sponsored\"),\n        pytest.param(True, id=\"self_sponsored\"),\n    ],\n)\ndef test_reset_code(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    self_sponsored: bool,\n) -> None:\n    \"\"\"\n    Test sending type-4 tx to reset the code of an account after code has been\n    set to the account.\n    \"\"\"\n    auth_signer = pre.fund_eoa()\n\n    set_code_1 = Op.SSTORE(1, Op.ADD(Op.SLOAD(1), 1)) + Op.STOP\n    set_code_1_address = pre.deploy_contract(set_code_1)\n\n    set_code_2 = Op.SSTORE(2, Op.ADD(Op.SLOAD(2), 1)) + Op.STOP\n    set_code_2_address = pre.deploy_contract(set_code_2)\n\n    sender = pre.fund_eoa()\n\n    txs = [\n        Transaction(\n            sender=sender,\n            gas_limit=500_000,\n            to=auth_signer,\n            value=0,\n            authorization_list=[\n                AuthorizationTuple(\n                    address=set_code_1_address,\n                    nonce=0,\n                    signer=auth_signer,\n                ),\n            ],\n        )\n    ]\n\n    auth_signer.nonce += 1  # type: ignore\n\n    if self_sponsored:\n        sender = auth_signer\n\n    txs.append(\n        Transaction(\n            sender=sender,\n            gas_limit=500_000,\n            to=auth_signer,\n            value=0,\n            authorization_list=[\n                AuthorizationTuple(\n                    address=set_code_2_address,\n                    nonce=auth_signer.nonce + 1 if self_sponsored else auth_signer.nonce,\n                    signer=auth_signer,\n                ),\n            ],\n        ),\n    )\n\n    blockchain_test(\n        pre=pre,\n        blocks=[Block(txs=txs)],\n        post={\n            auth_signer: Account(\n                nonce=3 if self_sponsored else 2,\n                code=Spec.delegation_designation(set_code_2_address),\n                storage={1: 1, 2: 1},\n            ),\n        },\n    )\n\n\n@pytest.mark.exception_test\ndef test_contract_create(\n    state_test: StateTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"Test sending type-4 tx as a create transaction.\"\"\"\n    authorization_tuple = AuthorizationTuple(\n        address=Address(0x01),\n        nonce=0,\n        signer=pre.fund_eoa(),\n    )\n    tx = Transaction(\n        gas_limit=100_000,\n        to=None,\n        value=0,\n        authorization_list=[authorization_tuple],\n        error=TransactionException.TYPE_4_TX_CONTRACT_CREATION,\n        sender=pre.fund_eoa(),\n    )\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={},\n    )\n\n\n@pytest.mark.exception_test\ndef test_empty_authorization_list(\n    state_test: StateTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"Test sending an invalid transaction with empty authorization list.\"\"\"\n    tx = Transaction(\n        gas_limit=100_000,\n        to=pre.deploy_contract(code=b\"\"),\n        value=0,\n        authorization_list=[],\n        error=TransactionException.TYPE_4_EMPTY_AUTHORIZATION_LIST,\n        sender=pre.fund_eoa(),\n    )\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={},\n    )\n\n\n@pytest.mark.parametrize(\n    \"self_sponsored\",\n    [\n        pytest.param(False, id=\"not_self_sponsored\"),\n        pytest.param(True, id=\"self_sponsored\"),\n    ],\n)\n@pytest.mark.parametrize(\n    \"pre_set_delegation_code\",\n    [\n        pytest.param(Op.RETURN(0, 1), id=\"delegated_account\"),\n        pytest.param(None, id=\"undelegated_account\"),\n    ],\n)\ndef test_delegation_clearing(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    pre_set_delegation_code: Bytecode | None,\n    self_sponsored: bool,\n) -> None:\n    \"\"\"\n    Test clearing the delegation of an account under a variety of\n    circumstances.\n\n    - pre_set_delegation_code: The code to set on the account before clearing\n                               delegation, or None if the account should not\n                               have any code set.\n    - self_sponsored: Whether the delegation clearing transaction is\n                      self-sponsored.\n    \"\"\"  # noqa: D417\n    pre_set_delegation_address: Address | None = None\n    if pre_set_delegation_code is not None:\n        pre_set_delegation_address = pre.deploy_contract(pre_set_delegation_code)\n\n    if self_sponsored:\n        auth_signer = pre.fund_eoa(delegation=pre_set_delegation_address)\n    else:\n        auth_signer = pre.fund_eoa(0, delegation=pre_set_delegation_address)\n\n    success_slot = 1\n    return_slot = 2\n    ext_code_size_slot = 3\n    ext_code_hash_slot = 4\n    ext_code_copy_slot = 5\n    entry_code = (\n        Op.SSTORE(success_slot, 1)\n        + Op.CALL(address=auth_signer)\n        + Op.SSTORE(return_slot, Op.RETURNDATASIZE)\n        + Op.SSTORE(ext_code_size_slot, Op.EXTCODESIZE(address=auth_signer))\n        + Op.SSTORE(ext_code_hash_slot, Op.EXTCODEHASH(address=auth_signer))\n        + Op.EXTCODECOPY(address=auth_signer, size=32)\n        + Op.SSTORE(ext_code_copy_slot, Op.MLOAD(0))\n        + Op.STOP\n    )\n    entry_address = pre.deploy_contract(entry_code)\n\n    authorization = AuthorizationTuple(\n        address=Spec.RESET_DELEGATION_ADDRESS,  # Reset\n        nonce=auth_signer.nonce + (1 if self_sponsored else 0),\n        signer=auth_signer,\n    )\n\n    tx = Transaction(\n        gas_limit=200_000,\n        to=entry_address,\n        value=0,\n        authorization_list=[authorization],\n        sender=pre.fund_eoa() if not self_sponsored else auth_signer,\n    )\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            auth_signer: Account(\n                nonce=auth_signer.nonce + 1,\n                code=b\"\",\n                storage={},\n            ),\n            entry_address: Account(\n                storage={\n                    success_slot: 1,\n                    return_slot: 0,\n                    ext_code_size_slot: 0,\n                    ext_code_hash_slot: Bytes().keccak256(),\n                    ext_code_copy_slot: 0,\n                },\n            ),\n        },\n    )\n\n\n@pytest.mark.parametrize(\n    \"self_sponsored\",\n    [\n        pytest.param(False, id=\"not_self_sponsored\"),\n        pytest.param(True, id=\"self_sponsored\"),\n    ],\n)\n@pytest.mark.parametrize(\n    \"pre_set_delegation_code\",\n    [\n        pytest.param(Op.RETURN(0, 1), id=\"delegated_account\"),\n        pytest.param(None, id=\"undelegated_account\"),\n    ],\n)\ndef test_delegation_clearing_tx_to(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    pre_set_delegation_code: Bytecode | None,\n    self_sponsored: bool,\n) -> None:\n    \"\"\"\n    Tests directly calling the account which delegation is being cleared.\n\n    - pre_set_delegation_code: The code to set on the account before clearing\n                               delegation, or None if the account should not\n                               have any code set.\n    - self_sponsored: Whether the delegation clearing transaction is\n                      self-sponsored.\n    \"\"\"  # noqa: D417\n    pre_set_delegation_address: Address | None = None\n    if pre_set_delegation_code is not None:\n        pre_set_delegation_address = pre.deploy_contract(pre_set_delegation_code)\n\n    if self_sponsored:\n        auth_signer = pre.fund_eoa(delegation=pre_set_delegation_address)\n    else:\n        auth_signer = pre.fund_eoa(0, delegation=pre_set_delegation_address)\n\n    sender = pre.fund_eoa() if not self_sponsored else auth_signer\n\n    tx = Transaction(\n        gas_limit=200_000,\n        to=auth_signer,\n        value=0,\n        authorization_list=[\n            AuthorizationTuple(\n                address=Spec.RESET_DELEGATION_ADDRESS,  # Reset\n                nonce=auth_signer.nonce + (1 if self_sponsored else 0),\n                signer=auth_signer,\n            ),\n        ],\n        sender=sender,\n    )\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            auth_signer: Account(\n                nonce=auth_signer.nonce + 1,\n                code=b\"\",\n                storage={},\n            ),\n        },\n    )\n\n\n@pytest.mark.parametrize(\n    \"pre_set_delegation_code\",\n    [\n        pytest.param(Op.RETURN(0, 1), id=\"delegated_account\"),\n        pytest.param(None, id=\"undelegated_account\"),\n    ],\n)\ndef test_delegation_clearing_and_set(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    pre_set_delegation_code: Bytecode | None,\n) -> None:\n    \"\"\"\n    Tests clearing and setting the delegation again in the same authorization\n    list.\n\n    - pre_set_delegation_code: The code to set on the account before clearing\n    delegation, or None if the account should not have any code set.\n    \"\"\"  # noqa: D417\n    pre_set_delegation_address: Address | None = None\n    if pre_set_delegation_code is not None:\n        pre_set_delegation_address = pre.deploy_contract(pre_set_delegation_code)\n\n    auth_signer = pre.fund_eoa(0, delegation=pre_set_delegation_address)\n\n    reset_code_address = pre.deploy_contract(\n        Op.CALL(address=Spec.RESET_DELEGATION_ADDRESS) + Op.SSTORE(0, 1) + Op.STOP\n    )\n\n    sender = pre.fund_eoa()\n\n    tx = Transaction(\n        gas_limit=200_000,\n        to=auth_signer,\n        value=0,\n        authorization_list=[\n            AuthorizationTuple(\n                address=Spec.RESET_DELEGATION_ADDRESS,  # Reset\n                nonce=auth_signer.nonce,\n                signer=auth_signer,\n            ),\n            AuthorizationTuple(\n                address=reset_code_address,\n                nonce=auth_signer.nonce + 1,\n                signer=auth_signer,\n            ),\n        ],\n        sender=sender,\n    )\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            auth_signer: Account(\n                nonce=auth_signer.nonce + 2,\n                code=Spec.delegation_designation(reset_code_address),\n                storage={\n                    0: 1,\n                },\n            ),\n        },\n    )\n\n\n@pytest.mark.parametrize(\n    \"entry_code\",\n    [\n        pytest.param(Om.OOG + Op.STOP, id=\"out_of_gas\"),\n        pytest.param(Op.INVALID, id=\"invalid_opcode\"),\n        pytest.param(Op.REVERT(0, 0), id=\"revert\"),\n    ],\n)\ndef test_delegation_clearing_failing_tx(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    entry_code: Bytecode,\n) -> None:\n    \"\"\"\n    Test clearing the delegation of an account in a transaction that fails,\n    OOGs or reverts.\n    \"\"\"  # noqa: D417\n    pre_set_delegation_code = Op.RETURN(0, 1)\n    pre_set_delegation_address = pre.deploy_contract(pre_set_delegation_code)\n\n    auth_signer = pre.fund_eoa(0, delegation=pre_set_delegation_address)\n\n    entry_address = pre.deploy_contract(entry_code)\n\n    authorization = AuthorizationTuple(\n        address=Spec.RESET_DELEGATION_ADDRESS,  # Reset\n        nonce=auth_signer.nonce,\n        signer=auth_signer,\n    )\n\n    tx = Transaction(\n        gas_limit=100_000,\n        to=entry_address,\n        value=0,\n        authorization_list=[authorization],\n        sender=pre.fund_eoa(),\n    )\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            auth_signer: Account(\n                nonce=auth_signer.nonce + 1,\n                code=b\"\",\n                storage={},\n            ),\n        },\n    )\n\n\n@pytest.mark.parametrize(\n    \"initcode_is_delegation_designation\",\n    [\n        pytest.param(True, id=\"initcode_deploys_delegation_designation\"),\n        pytest.param(False, id=\"initcode_is_delegation_designation\"),\n    ],\n)\ndef test_deploying_delegation_designation_contract(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    initcode_is_delegation_designation: bool,\n) -> None:\n    \"\"\"\n    Test attempting to deploy a contract that has the same format as a\n    delegation designation.\n    \"\"\"\n    sender = pre.fund_eoa()\n\n    set_to_code = Op.RETURN(0, 1)\n    set_to_address = pre.deploy_contract(set_to_code)\n\n    initcode: Bytes | Bytecode\n    if initcode_is_delegation_designation:\n        initcode = Spec.delegation_designation(set_to_address)\n    else:\n        initcode = Initcode(deploy_code=Spec.delegation_designation(set_to_address))\n\n    tx = Transaction(\n        sender=sender,\n        to=None,\n        gas_limit=100_000,\n        data=initcode,\n    )\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            sender: Account(\n                nonce=1,\n            ),\n            tx.created_contract: Account.NONEXISTENT,\n        },\n    )\n\n\n@pytest.mark.parametrize(\n    \"initcode_is_delegation_designation\",\n    [\n        pytest.param(True, id=\"initcode_deploys_delegation_designation\"),\n        pytest.param(False, id=\"initcode_is_delegation_designation\"),\n    ],\n)\n@pytest.mark.parametrize(\"create_opcode\", [Op.CREATE, Op.CREATE2])\ndef test_creating_delegation_designation_contract(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    create_opcode: Op,\n    initcode_is_delegation_designation: bool,\n) -> None:\n    \"\"\"\n    Tx -> create -> pointer bytecode.\n\n    Attempt to deploy contract with magic bytes result in no\n    contract being created.\n    \"\"\"\n    env = Environment()\n\n    storage: Storage = Storage()\n\n    sender = pre.fund_eoa()\n\n    # An attempt to deploy code starting with ef01 result in no\n    # contract being created as it is prohibited\n\n    create_init: Bytes | Bytecode\n    if initcode_is_delegation_designation:\n        create_init = Spec.delegation_designation(sender)\n    else:\n        create_init = Initcode(deploy_code=Spec.delegation_designation(sender))\n    contract_a = pre.deploy_contract(\n        balance=100,\n        code=Op.MSTORE(0, Op.CALLDATALOAD(0))\n        + Op.SSTORE(\n            storage.store_next(0, \"contract_a_create_result\"),\n            create_opcode(value=1, offset=0, size=Op.CALLDATASIZE()),\n        )\n        + Op.STOP,\n    )\n\n    tx = Transaction(\n        to=contract_a,\n        gas_limit=1_000_000,\n        data=create_init,\n        value=0,\n        sender=sender,\n    )\n\n    create_address = compute_create_address(\n        address=contract_a, nonce=1, initcode=create_init, opcode=create_opcode\n    )\n    post = {\n        contract_a: Account(balance=100, storage=storage),\n        create_address: Account.NONEXISTENT,\n    }\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.parametrize(\n    \"signer_balance\",\n    [\n        pytest.param(0, id=\"empty_balance\"),\n        pytest.param(\n            1,\n            id=\"non_empty_balance\",\n            marks=pytest.mark.execute(pytest.mark.skip(reason=\"excessive pre-fund txs\")),\n        ),\n    ],\n)\n@pytest.mark.slow()\ndef test_many_delegations(\n    state_test: StateTestFiller,\n    fork: Fork,\n    pre: Alloc,\n    signer_balance: int,\n) -> None:\n    \"\"\"\n    Perform as many delegations as possible in a transaction using the entire\n    block gas limit.\n\n    Every delegation comes from a different signer.\n\n    The account of can be empty or not depending on the `signer_balance`\n    parameter.\n\n    The transaction is expected to succeed and the state after the transaction\n    is expected to have the code of the entry contract set to 1.\n    \"\"\"\n    env = Environment()\n    tx_gas_limit_cap = fork.transaction_gas_limit_cap()\n    if tx_gas_limit_cap is not None:\n        max_gas = tx_gas_limit_cap\n    else:\n        max_gas = env.gas_limit\n    gas_for_delegations = max_gas - 21_000 - 20_000 - (3 * 2)\n\n    delegation_count = gas_for_delegations // Spec.PER_EMPTY_ACCOUNT_COST\n\n    success_slot = 1\n    entry_code = Op.SSTORE(success_slot, 1) + Op.STOP\n    entry_address = pre.deploy_contract(entry_code)\n\n    signers = [pre.fund_eoa(signer_balance) for _ in range(delegation_count)]\n\n    tx = Transaction(\n        gas_limit=max_gas,\n        to=entry_address,\n        value=0,\n        authorization_list=[\n            AuthorizationTuple(\n                address=Address(i + 1),\n                nonce=0,\n                signer=signer,\n            )\n            for (i, signer) in enumerate(signers)\n        ],\n        sender=pre.fund_eoa(),\n    )\n\n    post = {\n        entry_address: Account(\n            storage={success_slot: 1},\n        ),\n    } | {\n        signer: Account(\n            code=Spec.delegation_designation(Address(i + 1)),\n        )\n        for (i, signer) in enumerate(signers)\n    }\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.exception_test\ndef test_invalid_transaction_after_authorization(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    Test an invalid block due to a transaction reusing the same nonce as an\n    authorization included in a prior transaction.\n    \"\"\"\n    auth_signer = pre.fund_eoa()\n    recipient = pre.fund_eoa(amount=0)\n\n    txs = [\n        Transaction(\n            sender=pre.fund_eoa(),\n            gas_limit=500_000,\n            to=recipient,\n            value=0,\n            authorization_list=[\n                AuthorizationTuple(\n                    address=Address(1),\n                    nonce=0,\n                    signer=auth_signer,\n                ),\n            ],\n        ),\n        Transaction(\n            sender=auth_signer,\n            nonce=0,\n            gas_limit=21_000,\n            to=recipient,\n            value=1,\n            error=TransactionException.NONCE_MISMATCH_TOO_LOW,\n        ),\n    ]\n\n    blockchain_test(\n        pre=pre,\n        blocks=[\n            Block(\n                txs=txs,\n                exception=TransactionException.NONCE_MISMATCH_TOO_LOW,\n            )\n        ],\n        post={\n            recipient: None,\n        },\n    )\n\n\ndef test_authorization_reusing_nonce(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    Test an authorization reusing the same nonce as a prior transaction\n    included in the same block.\n    \"\"\"\n    auth_signer = pre.fund_eoa()\n    sender = pre.fund_eoa()\n    recipient = pre.fund_eoa(amount=0)\n    txs = [\n        Transaction(\n            sender=auth_signer,\n            nonce=0,\n            gas_limit=21_000,\n            to=recipient,\n            value=1,\n        ),\n        Transaction(\n            sender=sender,\n            gas_limit=500_000,\n            to=recipient,\n            value=0,\n            authorization_list=[\n                AuthorizationTuple(\n                    address=Address(1),\n                    nonce=0,\n                    signer=auth_signer,\n                ),\n            ],\n        ),\n    ]\n\n    blockchain_test(\n        pre=pre,\n        blocks=[Block(txs=txs)],\n        post={\n            recipient: Account(balance=1),\n            auth_signer: Account(nonce=1, code=b\"\"),\n            sender: Account(nonce=1),\n        },\n    )\n\n\n@pytest.mark.parametrize(\n    \"set_code_type\",\n    list(AddressType),\n    ids=lambda address_type: address_type.name,\n)\n@pytest.mark.parametrize(\n    \"self_sponsored\",\n    [True, False],\n)\n@pytest.mark.exception_test\n@pytest.mark.execute(pytest.mark.skip(reason=\"Requires contract-eoa address collision\"))\ndef test_set_code_from_account_with_non_delegating_code(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    set_code_type: AddressType,\n    self_sponsored: bool,\n) -> None:\n    \"\"\"\n    Test that a transaction is correctly rejected, if the sender account has a\n    non-delegating code set.\n\n    The auth transaction is sent from sender which has contract code (not\n    delegating) But at the same time it has auth tuple that will point this\n    sender account To be eoa, delegation, contract .. etc\n    \"\"\"\n    sender = pre.fund_eoa(nonce=1)\n    random_address = pre.fund_eoa(0)\n\n    set_code_to_address: Address\n    match set_code_type:\n        case AddressType.EMPTY_ACCOUNT:\n            set_code_to_address = pre.fund_eoa(0)\n        case AddressType.EOA:\n            set_code_to_address = pre.fund_eoa(1)\n        case AddressType.EOA_WITH_SET_CODE:\n            set_code_account = pre.fund_eoa(0)\n            set_code_to_address = pre.fund_eoa(1, delegation=set_code_account)\n        case AddressType.CONTRACT:\n            set_code_to_address = pre.deploy_contract(Op.STOP)\n        case _:\n            raise ValueError(f\"Unsupported set code type: {set_code_type}\")\n    callee_address = pre.deploy_contract(Op.SSTORE(0, 1) + Op.STOP)\n\n    # Set the sender account to have some code, that is specifically not a\n    # delegation.\n    sender_account = pre[sender]\n    assert sender_account is not None\n    sender_account.code = Bytes(Op.STOP)\n\n    tx = Transaction(\n        gas_limit=100_000,\n        to=callee_address,\n        authorization_list=[\n            AuthorizationTuple(\n                address=set_code_to_address,\n                nonce=1 if self_sponsored else 0,\n                signer=sender if self_sponsored else random_address,\n            ),\n        ],\n        sender=sender,\n        error=TransactionException.SENDER_NOT_EOA,\n    )\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            set_code_to_address: (\n                Account.NONEXISTENT\n                if set_code_type == AddressType.EMPTY_ACCOUNT\n                else Account(storage={})\n            ),\n            random_address: Account.NONEXISTENT,\n            sender: Account(nonce=1),\n            callee_address: Account(storage={0: 0}),\n        },\n    )\n\n\n@pytest.mark.parametrize(\n    \"max_fee_per_gas, max_priority_fee_per_gas, expected_error\",\n    [\n        pytest.param(\n            6,\n            0,\n            TransactionException.INSUFFICIENT_MAX_FEE_PER_GAS,\n            marks=pytest.mark.execute(pytest.mark.skip(reason=\"requires specific base fee\")),\n            id=\"insufficient_max_fee_per_gas\",\n        ),\n        pytest.param(\n            7,\n            8,\n            TransactionException.PRIORITY_GREATER_THAN_MAX_FEE_PER_GAS,\n            id=\"priority_greater_than_max_fee_per_gas\",\n        ),\n    ],\n)\n@pytest.mark.exception_test\n@pytest.mark.slow()\ndef test_set_code_transaction_fee_validations(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    max_fee_per_gas: int,\n    max_priority_fee_per_gas: int,\n    expected_error: TransactionException,\n) -> None:\n    \"\"\"\n    Test that a transaction with an insufficient max fee per gas is rejected.\n    \"\"\"\n    set_to_code = pre.deploy_contract(Op.STOP)\n    auth_signer = pre.fund_eoa(amount=0)\n    tx = Transaction(\n        sender=pre.fund_eoa(),\n        gas_limit=500_000,\n        to=auth_signer,\n        value=0,\n        max_fee_per_gas=max_fee_per_gas,\n        max_priority_fee_per_gas=max_priority_fee_per_gas,\n        authorization_list=[\n            AuthorizationTuple(\n                address=set_to_code,\n                nonce=0,\n                signer=auth_signer,\n            ),\n        ],\n        error=expected_error,\n    )\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={},\n    )\n"
  },
  {
    "path": "tests/prague/eip7702_set_code_tx/test_set_code_txs_2.py",
    "content": "\"\"\"\nA state test for [EIP-7702 SetCodeTX](https://eips.ethereum.org/EIPS/eip-7702).\n\"\"\"\n\nfrom enum import Enum, IntEnum\n\nimport pytest\n\nfrom ethereum_test_forks import Fork, GasCosts\nfrom ethereum_test_tools import (\n    AccessList,\n    Account,\n    Alloc,\n    AuthorizationTuple,\n    Block,\n    BlockchainTestFiller,\n    Bytes,\n    Case,\n    CodeGasMeasure,\n    Conditional,\n    Environment,\n    Hash,\n    StateTestFiller,\n    Storage,\n    Switch,\n    Transaction,\n    TransactionException,\n    compute_create_address,\n)\nfrom ethereum_test_types.eof.v1 import Container, Section\nfrom ethereum_test_vm import Macros\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .spec import Spec, ref_spec_7702\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_7702.git_path\nREFERENCE_SPEC_VERSION = ref_spec_7702.version\n\n\n@pytest.mark.valid_from(\"Prague\")\ndef test_pointer_contract_pointer_loop(state_test: StateTestFiller, pre: Alloc) -> None:\n    \"\"\"\n    Tx -> call -> pointer A -> contract A -> pointer B -> contract loop C.\n\n    Call pointer that goes more level of depth to call a contract loop.\n\n    Loop is created only if pointers are set with auth tuples.\n    \"\"\"\n    env = Environment()\n\n    sender = pre.fund_eoa()\n    pointer_a = pre.fund_eoa()\n    pointer_b = pre.fund_eoa()\n\n    storage: Storage = Storage()\n    contract_a = pre.deploy_contract(\n        code=Op.SSTORE(storage.store_next(1, \"contract_a_worked\"), 0x1)\n        + Op.CALL(gas=1_000_000, address=pointer_b)\n        + Op.STOP,\n    )\n\n    storage_loop: Storage = Storage()\n    contract_worked = storage_loop.store_next(112, \"contract_loop_worked\")\n    contract_loop = pre.deploy_contract(\n        code=Op.SSTORE(contract_worked, Op.ADD(1, Op.SLOAD(0)))\n        + Op.CALL(gas=1_000_000, address=pointer_a)\n        + Op.STOP,\n    )\n    tx = Transaction(\n        to=pointer_a,\n        gas_limit=1_000_000,\n        data=b\"\",\n        value=0,\n        sender=sender,\n        authorization_list=[\n            AuthorizationTuple(\n                address=contract_a,\n                nonce=0,\n                signer=pointer_a,\n            ),\n            AuthorizationTuple(\n                address=contract_loop,\n                nonce=0,\n                signer=pointer_b,\n            ),\n        ],\n    )\n\n    post = {\n        pointer_a: Account(storage=storage),\n        pointer_b: Account(storage=storage_loop),\n    }\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.valid_from(\"Prague\")\ndef test_pointer_to_pointer(state_test: StateTestFiller, pre: Alloc) -> None:\n    \"\"\"\n    Tx -> call -> pointer A -> pointer B.\n\n    Direct call from pointer to pointer is OOG\n    \"\"\"\n    env = Environment()\n\n    storage: Storage = Storage()\n\n    sender = pre.fund_eoa()\n    pointer_a = pre.fund_eoa()\n    pointer_b = pre.fund_eoa()\n\n    contract_a = pre.deploy_contract(\n        code=Op.SSTORE(storage.store_next(0, \"contract_a_worked\"), 0x1)\n        + Op.CALL(gas=1_000_000, address=pointer_b)\n        + Op.STOP,\n    )\n\n    tx = Transaction(\n        to=pointer_a,\n        gas_limit=1_000_000,\n        data=b\"\",\n        value=0,\n        sender=sender,\n        authorization_list=[\n            AuthorizationTuple(\n                address=pointer_b,\n                nonce=0,\n                signer=pointer_a,\n            ),\n            AuthorizationTuple(\n                address=contract_a,\n                nonce=0,\n                signer=pointer_b,\n            ),\n        ],\n    )\n    post = {pointer_a: Account(storage=storage)}\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.valid_from(\"Prague\")\ndef test_pointer_normal(blockchain_test: BlockchainTestFiller, pre: Alloc) -> None:\n    \"\"\"\n    Tx -> call -> pointer A -> contract.\n\n    Other normal tx can interact with\n    previously assigned pointers.\n    \"\"\"\n    env = Environment()\n\n    storage: Storage = Storage()\n\n    sender = pre.fund_eoa()\n    pointer_a = pre.fund_eoa()\n\n    slot_worked = storage.store_next(3, \"contract_a_worked\")\n    contract_a = pre.deploy_contract(\n        code=Op.SSTORE(slot_worked, Op.ADD(1, Op.SLOAD(slot_worked))) + Op.STOP,\n    )\n\n    tx = Transaction(\n        to=pointer_a,\n        gas_limit=1_000_000,\n        data=b\"\",\n        value=0,\n        sender=sender,\n        authorization_list=[\n            AuthorizationTuple(\n                address=contract_a,\n                nonce=0,\n                signer=pointer_a,\n            )\n        ],\n    )\n\n    # Other normal tx can interact with previously assigned pointers\n    tx_2 = Transaction(\n        to=pointer_a,\n        gas_limit=1_000_000,\n        data=b\"\",\n        value=0,\n        sender=sender,\n    )\n\n    # Event from another block\n    tx_3 = Transaction(\n        to=pointer_a,\n        gas_limit=1_000_000,\n        data=b\"\",\n        value=0,\n        sender=sender,\n    )\n\n    post = {pointer_a: Account(storage=storage)}\n    blockchain_test(\n        genesis_environment=env,\n        pre=pre,\n        post=post,\n        blocks=[Block(txs=[tx, tx_2]), Block(txs=[tx_3])],\n    )\n\n\n@pytest.mark.valid_from(\"Prague\")\ndef test_pointer_measurements(blockchain_test: BlockchainTestFiller, pre: Alloc) -> None:\n    \"\"\"\n    Check extcode* operations on pointer before and after pointer is set.\n\n    Check context opcode results when called under pointer call.\n\n    Opcodes have context of an original pointer account (balance, storage).\n    \"\"\"\n    env = Environment()\n\n    sender = pre.fund_eoa()\n    pointer = pre.fund_eoa(amount=100)\n\n    storage_normal: Storage = Storage()\n    storage_pointer: Storage = Storage()\n    storage_pointer_code: Storage = Storage()  # this storage will be applied\n    # to pointer address\n    pointer_code = pre.deploy_contract(\n        balance=200,\n        code=Op.SSTORE(storage_pointer_code.store_next(pointer, \"address\"), Op.ADDRESS())\n        + Op.SSTORE(storage_pointer_code.store_next(3, \"callvalue\"), Op.CALLVALUE())\n        + Op.CALL(gas=1000, address=0, value=3)\n        + Op.SSTORE(storage_pointer_code.store_next(100, \"selfbalance\"), Op.SELFBALANCE())\n        + Op.SSTORE(storage_pointer_code.store_next(sender, \"origin\"), Op.ORIGIN())\n        + Op.SSTORE(\n            storage_pointer_code.store_next(\n                \"0x1122334400000000000000000000000000000000000000000000000000000000\",\n                \"calldataload\",\n            ),\n            Op.CALLDATALOAD(0),\n        )\n        + Op.SSTORE(storage_pointer_code.store_next(4, \"calldatasize\"), Op.CALLDATASIZE())\n        + Op.CALLDATACOPY(0, 0, 32)\n        + Op.SSTORE(\n            storage_pointer_code.store_next(\n                \"0x1122334400000000000000000000000000000000000000000000000000000000\",\n                \"calldatacopy\",\n            ),\n            Op.MLOAD(0),\n        )\n        + Op.MSTORE(0, 0)\n        + Op.SSTORE(storage_pointer_code.store_next(83, \"codesize\"), Op.CODESIZE())\n        + Op.CODECOPY(0, 0, 32)\n        + Op.SSTORE(\n            storage_pointer_code.store_next(\n                \"0x30600055346001556000600060006000600360006103e8f14760025532600355\", \"codecopy\"\n            ),\n            Op.MLOAD(0),\n        )\n        + Op.SSTORE(storage_pointer_code.store_next(0, \"sload\"), Op.SLOAD(15)),\n        storage={15: 25},\n    )\n\n    contract_measurements = pre.deploy_contract(\n        code=Op.EXTCODECOPY(pointer, 0, 0, 32)\n        + Op.SSTORE(\n            storage_normal.store_next(Bytes().keccak256(), \"extcodehash\"),\n            Op.EXTCODEHASH(pointer),\n        )\n        + Op.SSTORE(storage_normal.store_next(0, \"extcodesize\"), Op.EXTCODESIZE(pointer))\n        + Op.SSTORE(storage_normal.store_next(0, \"extcodecopy\"), Op.MLOAD(0))\n        + Op.SSTORE(storage_normal.store_next(100, \"balance\"), Op.BALANCE(pointer))\n        + Op.STOP,\n    )\n    delegation_designation = Spec.delegation_designation(pointer_code)\n    contract_measurements_pointer = pre.deploy_contract(\n        code=Op.EXTCODECOPY(pointer, 0, 0, 32)\n        + Op.SSTORE(\n            storage_pointer.store_next(delegation_designation.keccak256(), \"extcodehash\"),\n            Op.EXTCODEHASH(pointer),\n        )\n        + Op.SSTORE(\n            storage_pointer.store_next(len(delegation_designation), \"extcodesize\"),\n            Op.EXTCODESIZE(pointer),\n        )\n        + Op.SSTORE(\n            storage_pointer.store_next(\n                Hash(delegation_designation, right_padding=True), \"extcodecopy\"\n            ),\n            Op.MLOAD(0),\n        )\n        + Op.SSTORE(storage_pointer.store_next(100, \"balance\"), Op.BALANCE(pointer))\n        + Op.STOP,\n    )\n\n    tx = Transaction(\n        to=contract_measurements,\n        gas_limit=1_000_000,\n        data=b\"\",\n        value=0,\n        sender=sender,\n    )\n\n    tx_pointer = Transaction(\n        to=contract_measurements_pointer,\n        gas_limit=1_000_000,\n        data=b\"\",\n        value=0,\n        sender=sender,\n        authorization_list=[\n            AuthorizationTuple(\n                address=pointer_code,\n                nonce=0,\n                signer=pointer,\n            )\n        ],\n    )\n\n    tx_pointer_call = Transaction(\n        to=pointer,\n        gas_limit=1_000_000,\n        data=bytes.fromhex(\"11223344\"),\n        value=3,\n        sender=sender,\n    )\n\n    post = {\n        contract_measurements: Account(storage=storage_normal),\n        contract_measurements_pointer: Account(storage=storage_pointer),\n        pointer: Account(storage=storage_pointer_code),\n    }\n    blockchain_test(\n        genesis_environment=env,\n        pre=pre,\n        post=post,\n        blocks=[Block(txs=[tx]), Block(txs=[tx_pointer, tx_pointer_call])],\n    )\n\n\n@pytest.mark.with_all_precompiles\n@pytest.mark.valid_from(\"Prague\")\ndef test_call_to_precompile_in_pointer_context(\n    state_test: StateTestFiller, pre: Alloc, precompile: int\n) -> None:\n    \"\"\"\n    Tx -> call -> pointer A -> precompile contract.\n\n    Make sure that gas consumed when calling precompiles in normal call\n    are the same As from inside the pointer context call.\n    \"\"\"\n    env = Environment()\n\n    storage: Storage = Storage()\n\n    sender = pre.fund_eoa()\n    pointer_a = pre.fund_eoa()\n\n    contract_test = pre.deploy_contract(\n        code=Op.MSTORE(1000, Op.GAS())\n        + Op.CALL(gas=100_000, address=precompile, args_size=Op.CALLDATASIZE())\n        + Op.MSTORE(0, Op.SUB(Op.MLOAD(1000), Op.GAS()))\n        + Op.RETURN(0, 32)\n    )\n    normal_call_gas = 2000\n    pointer_call_gas = 3000\n    contract_a = pre.deploy_contract(\n        code=Op.CALL(\n            gas=1_000_000,\n            address=contract_test,\n            args_size=Op.CALLDATASIZE(),\n            ret_offset=1000,\n            ret_size=32,\n        )\n        + Op.MSTORE(normal_call_gas, Op.MLOAD(1000))\n        + Op.CALL(\n            gas=1_000_000,\n            address=pointer_a,\n            args_size=Op.CALLDATASIZE(),\n            ret_offset=1000,\n            ret_size=32,\n        )\n        + Op.MSTORE(pointer_call_gas, Op.MLOAD(1000))\n        + Op.SSTORE(\n            storage.store_next(0, \"call_gas_diff\"),\n            Op.SUB(Op.MLOAD(normal_call_gas), Op.MLOAD(pointer_call_gas)),\n        )\n        + Op.SSTORE(storage.store_next(1, \"tx_worked\"), 1)\n    )\n\n    tx = Transaction(\n        to=contract_a,\n        gas_limit=3_000_000,\n        data=[0x11] * 256,\n        value=0,\n        sender=sender,\n        authorization_list=[\n            AuthorizationTuple(\n                address=contract_test,\n                nonce=0,\n                signer=pointer_a,\n            )\n        ],\n    )\n\n    post = {contract_a: Account(storage=storage)}\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\n@pytest.mark.with_all_precompiles\n@pytest.mark.valid_from(\"Prague\")\ndef test_pointer_to_precompile(state_test: StateTestFiller, pre: Alloc, precompile: int) -> None:\n    \"\"\"\n    Tx -> call -> pointer A -> precompile contract.\n\n    In case a delegation designator points to a precompile address, retrieved\n    code is considered empty and CALL, CALLCODE, STATICCALL, DELEGATECALL\n    instructions targeting this account will execute empty code, i.e. succeed\n    with no execution given enough gas.\n\n    So call to a pointer that points to a precompile is like call to an empty\n    account\n    \"\"\"\n    env = Environment()\n\n    storage: Storage = Storage()\n\n    sender = pre.fund_eoa()\n    pointer_a = pre.fund_eoa()\n\n    contract_test_normal = pre.deploy_contract(\n        code=Op.MSTORE(0, Op.CALL(gas=0, address=precompile, args_size=Op.CALLDATASIZE()))\n        + Op.RETURN(0, 32)\n    )\n\n    contract_test_pointer = pre.deploy_contract(\n        code=Op.MSTORE(0, Op.CALL(gas=0, address=pointer_a, args_size=Op.CALLDATASIZE()))\n        + Op.RETURN(0, 32)\n    )\n\n    contract_a = pre.deploy_contract(\n        code=Op.CALL(\n            gas=1_000_000,\n            address=contract_test_normal,\n            args_size=Op.CALLDATASIZE(),\n            ret_offset=1000,\n            ret_size=32,\n        )\n        # direct call to a precompile with 0 gas always return 0\n        + Op.SSTORE(storage.store_next(0, \"direct_call_result\"), Op.MLOAD(1000))\n        + Op.CALL(\n            gas=1_000_000,\n            address=contract_test_pointer,\n            args_size=Op.CALLDATASIZE(),\n            ret_offset=1000,\n            ret_size=32,\n        )\n        # pointer call to a precompile with 0 gas always return 1 as if calling\n        # empty address\n        + Op.SSTORE(storage.store_next(1, \"pointer_call_result\"), Op.MLOAD(1000))\n    )\n\n    tx = Transaction(\n        to=contract_a,\n        gas_limit=3_000_000,\n        data=[0x11] * 256,\n        value=0,\n        sender=sender,\n        authorization_list=[\n            AuthorizationTuple(\n                address=precompile,\n                nonce=0,\n                signer=pointer_a,\n            )\n        ],\n    )\n\n    post = {contract_a: Account(storage=storage)}\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\nclass AccessListCall(Enum):\n    \"\"\"Add addresses to access list.\"\"\"\n\n    NONE = 1\n    IN_NORMAL_TX_ONLY = 2\n    IN_POINTER_TX_ONLY = 3\n    IN_BOTH_TX = 4\n\n\nclass PointerDefinition(Enum):\n    \"\"\"Define pointer in transactions.\"\"\"\n\n    SEPARATE = 1\n    IN_NORMAL_TX_ONLY = 2\n    IN_POINTER_TX_ONLY = 3\n    IN_BOTH_TX = 4\n\n\nclass AccessListTo(Enum):\n    \"\"\"Define access list to.\"\"\"\n\n    POINTER_ADDRESS = 1\n    CONTRACT_ADDRESS = 2\n\n\n@pytest.mark.parametrize(\n    \"access_list_rule\",\n    [\n        AccessListCall.NONE,\n        AccessListCall.IN_BOTH_TX,\n        AccessListCall.IN_NORMAL_TX_ONLY,\n        AccessListCall.IN_POINTER_TX_ONLY,\n    ],\n)\n@pytest.mark.parametrize(\n    \"pointer_definition\",\n    [\n        PointerDefinition.SEPARATE,\n        PointerDefinition.IN_BOTH_TX,\n        PointerDefinition.IN_NORMAL_TX_ONLY,\n        PointerDefinition.IN_POINTER_TX_ONLY,\n    ],\n)\n@pytest.mark.parametrize(\n    \"access_list_to\",\n    [AccessListTo.POINTER_ADDRESS, AccessListTo.CONTRACT_ADDRESS],\n)\n@pytest.mark.valid_from(\"Prague\")\ndef test_gas_diff_pointer_vs_direct_call(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    fork: Fork,\n    access_list_rule: AccessListCall,\n    pointer_definition: PointerDefinition,\n    access_list_to: AccessListTo,\n) -> None:\n    \"\"\"\n    Check the gas difference when calling the contract directly vs as a pointer\n    Combine with AccessList and AuthTuple gas reductions scenarios.\n    \"\"\"\n    env = Environment()\n\n    sender = pre.fund_eoa()\n    pointer_a = pre.fund_eoa()\n    call_worked = 1\n    gas_costs: GasCosts = fork.gas_costs()\n\n    opcodes_price = 37\n    direct_call_gas: int = (\n        # 20_000 + 2_600 + 2_100 + 37 = 24737\n        gas_costs.G_STORAGE_SET\n        + (\n            # access account price\n            # If storage and account is declared in access list then discount\n            gas_costs.G_WARM_ACCOUNT_ACCESS + gas_costs.G_WARM_SLOAD\n            if access_list_rule in [AccessListCall.IN_NORMAL_TX_ONLY, AccessListCall.IN_BOTH_TX]\n            else gas_costs.G_COLD_ACCOUNT_ACCESS + gas_costs.G_COLD_SLOAD\n        )\n        + opcodes_price\n    )\n\n    pointer_call_gas: int = (\n        # sstore + addr + addr + sload + op\n        # no access list, no pointer, all accesses are hot\n        # 20_000 + 2_600 * 2 + 2_100 + 37 = 27_337\n        #\n        # access list for pointer, pointer is set\n        # additional 2_600 charged for access of contract\n        # 20_000 + 100 + 2_600 + 100 + 37 = 22_837\n        #\n        # no access list, pointer is set\n        # pointer access is hot, sload and contract are hot\n        # 20_000 + 100 + 2_600 + 2_100 + 37 = 24_837\n        #\n        # access list for contract, pointer is set\n        # contract call is hot, pointer call is call because pointer is set\n        # only sload is hot because access list is for contract\n        # 20_000 + 100 + 100 + 2100  + 37 = 22_337\n        gas_costs.G_STORAGE_SET\n        # pointer address access\n        + (\n            gas_costs.G_WARM_ACCOUNT_ACCESS\n            if (\n                pointer_definition\n                in [PointerDefinition.IN_BOTH_TX, PointerDefinition.IN_POINTER_TX_ONLY]\n                or access_list_rule\n                in [AccessListCall.IN_BOTH_TX, AccessListCall.IN_POINTER_TX_ONLY]\n                and access_list_to == AccessListTo.POINTER_ADDRESS\n            )\n            else gas_costs.G_COLD_ACCOUNT_ACCESS\n        )\n        # storage access\n        + (\n            gas_costs.G_WARM_SLOAD\n            if (\n                access_list_rule in [AccessListCall.IN_BOTH_TX, AccessListCall.IN_POINTER_TX_ONLY]\n                and access_list_to == AccessListTo.POINTER_ADDRESS\n            )\n            else gas_costs.G_COLD_SLOAD\n        )\n        # contract address access\n        + (\n            gas_costs.G_WARM_ACCOUNT_ACCESS\n            if (\n                access_list_rule in [AccessListCall.IN_BOTH_TX, AccessListCall.IN_POINTER_TX_ONLY]\n                and access_list_to == AccessListTo.CONTRACT_ADDRESS\n            )\n            else gas_costs.G_COLD_ACCOUNT_ACCESS\n        )\n        + opcodes_price\n    )\n\n    contract = pre.deploy_contract(code=Op.SSTORE(call_worked, Op.ADD(Op.SLOAD(call_worked), 1)))\n\n    # Op.CALLDATASIZE() does not work with kwargs\n    storage_normal: Storage = Storage()\n    contract_test_normal = pre.deploy_contract(\n        code=Op.GAS()\n        + Op.POP(Op.CALL(gas=100_000, address=contract))\n        + Op.SSTORE(\n            storage_normal.store_next(direct_call_gas, \"normal_call_price\"),\n            Op.SUB(Op.SWAP1(), Op.GAS()),\n        )\n    )\n\n    storage_pointer: Storage = Storage()\n    contract_test_pointer = pre.deploy_contract(\n        code=Op.GAS()\n        + Op.POP(Op.CALL(gas=100_000, address=pointer_a))\n        + Op.SSTORE(\n            storage_pointer.store_next(pointer_call_gas, \"pointer_call_price\"),\n            Op.SUB(Op.SWAP1(), Op.GAS()),\n        )\n    )\n\n    tx_0 = Transaction(\n        to=1,\n        gas_limit=3_000_000,\n        data=b\"\",\n        value=0,\n        sender=sender,\n        authorization_list=(\n            [\n                AuthorizationTuple(\n                    address=contract,\n                    nonce=0,\n                    signer=pointer_a,\n                )\n            ]\n            if pointer_definition == PointerDefinition.SEPARATE\n            else None\n        ),\n    )\n\n    tx = Transaction(\n        to=contract_test_normal,\n        gas_limit=3_000_000,\n        data=b\"\",\n        value=0,\n        sender=sender,\n        authorization_list=(\n            [\n                AuthorizationTuple(\n                    address=contract,\n                    nonce=0,\n                    signer=pointer_a,\n                )\n            ]\n            if pointer_definition == PointerDefinition.IN_BOTH_TX\n            or pointer_definition == PointerDefinition.IN_NORMAL_TX_ONLY\n            else None\n        ),\n        access_list=(\n            [\n                AccessList(\n                    address=contract,\n                    storage_keys=[call_worked],\n                )\n            ]\n            if access_list_rule == AccessListCall.IN_BOTH_TX\n            or access_list_rule == AccessListCall.IN_NORMAL_TX_ONLY\n            else None\n        ),\n    )\n    tx2 = Transaction(\n        to=contract_test_pointer,\n        gas_limit=3_000_000,\n        data=b\"\",\n        value=0,\n        sender=sender,\n        authorization_list=(\n            [\n                AuthorizationTuple(\n                    address=contract,\n                    nonce=0,\n                    signer=pointer_a,\n                )\n            ]\n            if pointer_definition == PointerDefinition.IN_BOTH_TX\n            or pointer_definition == PointerDefinition.IN_POINTER_TX_ONLY\n            else None\n        ),\n        access_list=(\n            [\n                AccessList(\n                    address=(\n                        pointer_a if access_list_to == AccessListTo.POINTER_ADDRESS else contract\n                    ),\n                    storage_keys=[call_worked],\n                )\n            ]\n            if access_list_rule == AccessListCall.IN_BOTH_TX\n            or access_list_rule == AccessListCall.IN_POINTER_TX_ONLY\n            else None\n        ),\n    )\n\n    post = {\n        contract: Account(storage={call_worked: 1}),\n        pointer_a: Account(storage={call_worked: 1}),\n        contract_test_normal: Account(storage=storage_normal),\n        contract_test_pointer: Account(storage=storage_pointer),\n    }\n    blockchain_test(\n        genesis_environment=env,\n        pre=pre,\n        post=post,\n        blocks=[Block(txs=[tx_0]), Block(txs=[tx]), Block(txs=[tx2])],\n    )\n\n\n@pytest.mark.valid_from(\"Prague\")\ndef test_pointer_call_followed_by_direct_call(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    fork: Fork,\n) -> None:\n    \"\"\"\n    If we first call by pointer then direct call, will the call/sload be hot\n    The direct call will warm because pointer access marks it warm But the\n    sload is still cold because storage marked hot from pointer's account in a\n    pointer call.\n    \"\"\"\n    env = Environment()\n\n    sender = pre.fund_eoa()\n    pointer_a = pre.fund_eoa()\n    gas_costs: GasCosts = fork.gas_costs()\n    call_worked = 1\n    opcodes_price: int = 37\n    pointer_call_gas = (\n        gas_costs.G_STORAGE_SET\n        + gas_costs.G_WARM_ACCOUNT_ACCESS  # pointer is warm\n        + gas_costs.G_COLD_ACCOUNT_ACCESS  # contract is cold\n        + gas_costs.G_COLD_SLOAD  # storage access under pointer call is cold\n        + opcodes_price\n    )\n    direct_call_gas = (\n        gas_costs.G_STORAGE_SET\n        + gas_costs.G_WARM_ACCOUNT_ACCESS  # since previous pointer call,\n        # contract is now warm\n        + gas_costs.G_COLD_SLOAD  # but storage is cold, because it's\n        # contract's direct\n        + opcodes_price\n    )\n\n    contract = pre.deploy_contract(code=Op.SSTORE(call_worked, Op.ADD(Op.SLOAD(call_worked), 1)))\n\n    storage_test_gas: Storage = Storage()\n    contract_test_gas = pre.deploy_contract(\n        code=Op.GAS()\n        + Op.POP(Op.CALL(gas=100_000, address=pointer_a))\n        + Op.SSTORE(\n            storage_test_gas.store_next(pointer_call_gas, \"pointer_call_price\"),\n            Op.SUB(Op.SWAP1(), Op.GAS()),\n        )\n        + Op.GAS()\n        + Op.POP(Op.CALL(gas=100_000, address=contract))\n        + Op.SSTORE(\n            storage_test_gas.store_next(direct_call_gas, \"direct_call_price\"),\n            Op.SUB(Op.SWAP1(), Op.GAS()),\n        )\n    )\n\n    tx = Transaction(\n        to=contract_test_gas,\n        gas_limit=3_000_000,\n        data=b\"\",\n        value=0,\n        sender=sender,\n        authorization_list=(\n            [\n                AuthorizationTuple(\n                    address=contract,\n                    nonce=0,\n                    signer=pointer_a,\n                )\n            ]\n        ),\n    )\n\n    post = {\n        contract: Account(storage={call_worked: 1}),\n        pointer_a: Account(storage={call_worked: 1}),\n        contract_test_gas: Account(storage=storage_test_gas),\n    }\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\n@pytest.mark.valid_from(\"Prague\")\ndef test_pointer_to_static(state_test: StateTestFiller, pre: Alloc) -> None:\n    \"\"\"\n    Tx -> call -> pointer A -> static -> static violation.\n\n    Verify that static context is active when called under pointer.\n    \"\"\"\n    env = Environment()\n    storage: Storage = Storage()\n    sender = pre.fund_eoa()\n    pointer_a = pre.fund_eoa()\n\n    contract_b = pre.deploy_contract(code=Op.SSTORE(0, 5))\n    contract_a = pre.deploy_contract(\n        code=Op.SSTORE(\n            storage.store_next(0, \"static_call\"),\n            Op.STATICCALL(\n                gas=1_000_000, address=contract_b, args_size=32, ret_offset=1000, ret_size=32\n            ),\n        )\n        + Op.SSTORE(storage.store_next(1, \"call_worked\"), 1)\n    )\n\n    tx = Transaction(\n        to=pointer_a,\n        gas_limit=3_000_000,\n        data=b\"\",\n        value=0,\n        sender=sender,\n        authorization_list=[\n            AuthorizationTuple(\n                address=contract_a,\n                nonce=0,\n                signer=pointer_a,\n            )\n        ],\n    )\n\n    post = {pointer_a: Account(storage=storage), contract_b: Account(storage={0: 0})}\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\n@pytest.mark.valid_from(\"Prague\")\ndef test_static_to_pointer(state_test: StateTestFiller, pre: Alloc) -> None:\n    \"\"\"\n    Tx -> staticcall -> pointer A -> static violation.\n\n    Verify that static context is active when make sub call to pointer.\n    \"\"\"\n    env = Environment()\n    storage: Storage = Storage()\n    sender = pre.fund_eoa()\n    pointer_a = pre.fund_eoa()\n\n    contract_b = pre.deploy_contract(code=Op.SSTORE(0, 5))\n    contract_a = pre.deploy_contract(\n        code=Op.SSTORE(\n            storage.store_next(0, \"static_call\"),\n            Op.STATICCALL(\n                gas=1_000_000, address=pointer_a, args_size=32, ret_offset=1000, ret_size=32\n            ),\n        )\n        + Op.SSTORE(storage.store_next(1, \"call_worked\"), 1)\n    )\n\n    tx = Transaction(\n        to=contract_a,\n        gas_limit=3_000_000,\n        data=b\"\",\n        value=0,\n        sender=sender,\n        authorization_list=[\n            AuthorizationTuple(\n                address=contract_b,\n                nonce=0,\n                signer=pointer_a,\n            )\n        ],\n    )\n\n    post = {contract_a: Account(storage=storage), pointer_a: Account(storage={0: 0})}\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\n@pytest.mark.valid_from(\"EOFv1\")\ndef test_pointer_to_eof(state_test: StateTestFiller, pre: Alloc) -> None:\n    \"\"\"\n    Tx -> call -> pointer A -> EOF.\n\n    Pointer to eof contract works.\n    \"\"\"\n    env = Environment()\n    storage: Storage = Storage()\n    sender = pre.fund_eoa()\n    pointer_a = pre.fund_eoa()\n\n    contract_a = pre.deploy_contract(\n        code=Container(\n            sections=[\n                Section.Code(\n                    code=Op.SSTORE(storage.store_next(5, \"eof_call_result\"), 5) + Op.STOP,\n                )\n            ]\n        )\n    )\n\n    tx = Transaction(\n        to=pointer_a,\n        gas_limit=3_000_000,\n        data=b\"\",\n        value=0,\n        sender=sender,\n        authorization_list=[\n            AuthorizationTuple(\n                address=contract_a,\n                nonce=0,\n                signer=pointer_a,\n            )\n        ],\n    )\n\n    post = {pointer_a: Account(storage=storage)}\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\n@pytest.mark.valid_from(\"Prague\")\ndef test_pointer_to_static_reentry(state_test: StateTestFiller, pre: Alloc) -> None:\n    \"\"\"\n    Tx call -> pointer A -> static -> code -> pointer A -> static violation\n    Verify that static context is active when called under pointer.\n    \"\"\"\n    env = Environment()\n    storage: Storage = Storage()\n    sender = pre.fund_eoa()\n    pointer_a = pre.fund_eoa()\n\n    contract_b = pre.deploy_contract(\n        code=Op.MSTORE(0, Op.ADD(1, Op.CALLDATALOAD(0)))\n        + Conditional(\n            condition=Op.EQ(Op.MLOAD(0), 2), if_true=Op.SSTORE(5, 5), if_false=Op.JUMPDEST()\n        )\n        + Op.CALL(gas=100_000, address=pointer_a, args_offset=0, args_size=Op.CALLDATASIZE())\n    )\n    contract_a = pre.deploy_contract(\n        code=Op.MSTORE(0, Op.CALLDATALOAD(0))\n        + Conditional(\n            condition=Op.EQ(Op.MLOAD(0), 0),\n            if_true=Op.SSTORE(\n                storage.store_next(1, \"static_call\"),\n                Op.STATICCALL(\n                    gas=1_000_000,\n                    address=contract_b,\n                    args_size=Op.CALLDATASIZE(),\n                    ret_offset=1000,\n                    ret_size=32,\n                ),\n            )\n            + Op.SSTORE(storage.store_next(1, \"call_worked\"), 1),\n            if_false=Op.CALL(\n                gas=1_000_000,\n                address=contract_b,\n                args_size=Op.CALLDATASIZE(),\n                ret_offset=1000,\n                ret_size=32,\n            ),\n        )\n    )\n\n    tx = Transaction(\n        to=pointer_a,\n        gas_limit=3_000_000,\n        data=[0x00] * 32,\n        value=0,\n        sender=sender,\n        authorization_list=[\n            AuthorizationTuple(\n                address=contract_a,\n                nonce=0,\n                signer=pointer_a,\n            )\n        ],\n    )\n\n    post = {pointer_a: Account(storage=storage)}\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\n@pytest.mark.valid_from(\"Prague\")\n@pytest.mark.parametrize(\n    \"call_type\",\n    [Op.CALL, Op.DELEGATECALL, Op.CALLCODE],\n)\ndef test_contract_storage_to_pointer_with_storage(\n    state_test: StateTestFiller, pre: Alloc, call_type: Op\n) -> None:\n    \"\"\"\n    Tx call -> contract with storage -> pointer A with storage ->\n    storage/tstorage modify.\n\n    Check storage/tstorage modifications when interacting with pointers.\n    \"\"\"\n    env = Environment()\n\n    sender = pre.fund_eoa()\n\n    # Pointer B\n    storage_pointer_b: Storage = Storage()\n    storage_pointer_b.store_next(\n        0 if call_type in [Op.DELEGATECALL, Op.CALLCODE] else 1, \"first_slot\"\n    )\n    storage_pointer_b.store_next(0, \"second_slot\")\n    storage_pointer_b.store_next(0, \"third_slot\")\n    pointer_b = pre.fund_eoa()\n\n    # Contract B\n    storage_b: Storage = Storage()\n    first_slot = storage_b.store_next(10, \"first_slot\")\n    second_slot = storage_b.store_next(20, \"second_slot\")\n    third_slot = storage_b.store_next(30, \"third_slot\")\n    fourth_slot = storage_b.store_next(0, \"fourth_slot\")\n    contract_b = pre.deploy_contract(\n        code=Conditional(\n            condition=Op.EQ(Op.CALLDATALOAD(0), 1),\n            if_true=Op.SSTORE(fourth_slot, Op.TLOAD(third_slot)),\n            if_false=Op.SSTORE(first_slot, Op.ADD(Op.SLOAD(first_slot), 1))\n            + Op.TSTORE(third_slot, Op.ADD(Op.TLOAD(third_slot), 1)),\n        ),\n        storage={\n            # Original contract storage is untouched\n            first_slot: 10,\n            second_slot: 20,\n            third_slot: 30,\n        },\n    )\n\n    # Contract A\n    storage_a: Storage = Storage()\n    contract_a = pre.deploy_contract(\n        code=Op.TSTORE(third_slot, 1)\n        + call_type(address=pointer_b, gas=500_000)\n        + Op.SSTORE(third_slot, Op.TLOAD(third_slot))\n        # Verify tstorage in contract after interacting with pointer, it must\n        # be 0\n        + Op.MSTORE(0, 1)\n        + Op.CALL(address=contract_b, gas=500_000, args_offset=0, args_size=32),\n        storage={\n            storage_a.store_next(\n                # caller storage is modified when calling pointer with delegate\n                # or callcode\n                6 if call_type in [Op.DELEGATECALL, Op.CALLCODE] else 5,\n                \"first_slot\",\n            ): 5,\n            storage_a.store_next(2, \"second_slot\"): 2,\n            storage_a.store_next(\n                # TSTORE is modified when calling pointer with delegate or\n                # callcode\n                2 if call_type in [Op.DELEGATECALL, Op.CALLCODE] else 1,\n                \"third_slot\",\n            ): 3,\n        },\n    )\n\n    tx = Transaction(\n        to=contract_a,\n        gas_limit=3_000_000,\n        data=b\"\",\n        value=0,\n        sender=sender,\n        authorization_list=[\n            AuthorizationTuple(\n                address=contract_b,\n                nonce=0,\n                signer=pointer_b,\n            )\n        ],\n    )\n\n    post = {\n        contract_a: Account(storage=storage_a),\n        contract_b: Account(storage=storage_b),\n        pointer_b: Account(storage=storage_pointer_b),\n    }\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\nclass ReentryAction(IntEnum):\n    \"\"\"Reentry logic action.\"\"\"\n\n    CALL_PROXY = 0\n    MEASURE_VALUES = 1\n    MEASURE_VALUES_CONTRACT = 2\n\n\n@pytest.mark.valid_from(\"Prague\")\ndef test_pointer_reentry(state_test: StateTestFiller, pre: Alloc) -> None:\n    \"\"\"\n    Check operations when reenter the pointer again.\n\n    TODO: feel free to extend the code checks under given scenarios in\n          switch case.\n    \"\"\"\n    env = Environment()\n    arg_contract = 0\n    arg_action = 32\n\n    storage_b = Storage()\n    storage_b.store_next(1, \"contract_calls\")\n    storage_b.store_next(1, \"tstore_slot\")\n    slot_reentry_address = storage_b.store_next(1, \"address\")\n\n    storage_pointer_b = Storage()\n    slot_calls = storage_pointer_b.store_next(2, \"pointer_calls\")\n    slot_tstore = storage_pointer_b.store_next(2, \"tstore_slot\")\n\n    sender = pre.fund_eoa()\n    pointer_b = pre.fund_eoa(amount=1000)\n    proxy = pre.deploy_contract(\n        code=Op.MSTORE(arg_contract, Op.CALLDATALOAD(arg_contract))\n        + Op.MSTORE(arg_action, Op.CALLDATALOAD(arg_action))\n        + Op.CALL(gas=400_000, address=pointer_b, args_offset=0, args_size=32 * 2)\n    )\n    contract_b = pre.deploy_contract(\n        balance=100,\n        code=Op.MSTORE(arg_contract, Op.CALLDATALOAD(arg_contract))\n        + Op.MSTORE(arg_action, Op.CALLDATALOAD(arg_action))\n        + Op.SSTORE(slot_calls, Op.ADD(Op.SLOAD(slot_calls), 1))\n        + Op.TSTORE(slot_tstore, Op.ADD(Op.TLOAD(slot_tstore), 1))\n        + Op.SSTORE(slot_tstore, Op.TLOAD(slot_tstore))\n        + Switch(\n            cases=[\n                Case(\n                    condition=Op.EQ(Op.MLOAD(arg_action), ReentryAction.CALL_PROXY),\n                    action=Op.MSTORE(arg_action, ReentryAction.MEASURE_VALUES)\n                    + Op.CALL(gas=500_000, address=proxy, args_offset=0, args_size=32 * 2)\n                    + Op.STOP(),\n                ),\n                Case(\n                    # This code is executed under pointer -> proxy -> pointer\n                    # context\n                    condition=Op.EQ(Op.MLOAD(arg_action), ReentryAction.MEASURE_VALUES),\n                    action=Op.SSTORE(storage_pointer_b.store_next(sender, \"origin\"), Op.ORIGIN())\n                    + Op.SSTORE(storage_pointer_b.store_next(pointer_b, \"address\"), Op.ADDRESS())\n                    + Op.SSTORE(\n                        storage_pointer_b.store_next(1000, \"selfbalance\"), Op.SELFBALANCE()\n                    )\n                    + Op.SSTORE(storage_pointer_b.store_next(proxy, \"caller\"), Op.CALLER())\n                    # now call contract which is pointer dest directly\n                    + Op.MSTORE(arg_action, ReentryAction.MEASURE_VALUES_CONTRACT)\n                    + Op.CALL(\n                        gas=500_000,\n                        address=Op.MLOAD(arg_contract),\n                        args_offset=0,\n                        args_size=32 * 2,\n                    ),\n                ),\n                Case(\n                    # This code is executed under\n                    # pointer -> proxy -> pointer -> contract\n                    # so pointer calling the code of it's dest\n                    # after reentry to itself\n                    condition=Op.EQ(Op.MLOAD(arg_action), ReentryAction.MEASURE_VALUES_CONTRACT),\n                    action=Op.SSTORE(storage_b.store_next(sender, \"origin\"), Op.ORIGIN())\n                    + Op.SSTORE(slot_reentry_address, Op.ADDRESS())\n                    + Op.SSTORE(storage_b.store_next(100, \"selfbalance\"), Op.SELFBALANCE())\n                    + Op.SSTORE(storage_b.store_next(pointer_b, \"caller\"), Op.CALLER()),\n                ),\n            ],\n            default_action=None,\n        ),\n    )\n\n    storage_b[slot_reentry_address] = contract_b\n\n    tx = Transaction(\n        to=pointer_b,\n        gas_limit=2_000_000,\n        data=Hash(contract_b, left_padding=True)\n        + Hash(ReentryAction.CALL_PROXY, left_padding=True),\n        value=0,\n        sender=sender,\n        authorization_list=[\n            AuthorizationTuple(\n                address=contract_b,\n                nonce=0,\n                signer=pointer_b,\n            )\n        ],\n    )\n    post = {\n        contract_b: Account(storage=storage_b),\n        pointer_b: Account(storage=storage_pointer_b),\n    }\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\n@pytest.mark.valid_from(\"Prague\")\ndef test_eoa_init_as_pointer(state_test: StateTestFiller, pre: Alloc) -> None:\n    \"\"\"\n    It was agreed before that senders don't have code.\n\n    And there were issues with tests sending transactions from account's\n    with code With EIP7702 it is again possible,\n    let's check the test runners are ok.\n    \"\"\"\n    env = Environment()\n    storage = Storage()\n    contract = pre.deploy_contract(code=Op.SSTORE(storage.store_next(1, \"code_worked\"), 1))\n    sender = pre.fund_eoa(delegation=contract)\n\n    tx = Transaction(\n        to=sender,\n        gas_limit=200_000,\n        data=b\"\",\n        value=0,\n        sender=sender,\n    )\n    post = {sender: Account(storage=storage)}\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\n@pytest.mark.valid_from(\"Prague\")\n@pytest.mark.parametrize(\"call_return\", [Op.RETURN, Op.REVERT, Macros.OOG])\ndef test_call_pointer_to_created_from_create_after_oog_call_again(\n    state_test: StateTestFiller, pre: Alloc, call_return: Op\n) -> None:\n    \"\"\"\n    Set pointer to account that we are about to create.\n\n    Pointer is set to create address that is yet not in the state.\n\n    During the call, address is created. pointer is called from init code\n    to do nothing.\n\n    Then after account is created it is called again to run created code\n\n    Then revert / no revert.\n\n    Call pointer again from the upper level to ensure it does not call reverted\n    code.\n    \"\"\"\n    env = Environment()\n\n    storage_pointer = Storage()\n    pointer = pre.fund_eoa()\n    sender = pre.fund_eoa()\n\n    storage_contract = Storage()\n    slot_create_res = storage_contract.store_next(1, \"create_result\")\n    contract = pre.deploy_contract(\n        code=Op.MSTORE(0, Op.CALLDATALOAD(0))\n        + Op.MSTORE(32, Op.CALLDATALOAD(32))\n        + Op.SSTORE(slot_create_res, Op.CREATE(0, 0, Op.CALLDATASIZE()))\n        + Op.CALL(address=pointer)\n        + call_return(0, 32)\n    )\n    contract_main = pre.deploy_contract(\n        code=Op.MSTORE(0, Op.CALLDATALOAD(0))\n        + Op.MSTORE(32, Op.CALLDATALOAD(32))\n        + Op.CALL(address=contract, args_size=Op.CALLDATASIZE())\n        + Op.CALL(address=pointer)\n    )\n    contract_create = compute_create_address(address=contract, nonce=1)\n    storage_contract[slot_create_res] = contract_create if call_return == Op.RETURN else 0\n\n    slot_pointer_calls = storage_pointer.store_next(\n        1 + 1 if call_return == Op.RETURN else 0, \"pointer_calls\"\n    )\n    deploy_code = Op.SSTORE(\n        slot_pointer_calls,\n        Op.ADD(1, Op.SLOAD(slot_pointer_calls)),\n    )\n    storage_create = Storage()\n    tx = Transaction(\n        to=contract_main,\n        gas_limit=800_000,\n        data=Op.SSTORE(storage_create.store_next(1, \"create_init_code\"), 1)\n        + Op.SSTORE(\n            storage_create.store_next(1, \"call_pointer_from_init\"), Op.CALL(address=pointer)\n        )\n        + Op.MSTORE(0, deploy_code.hex())\n        + Op.RETURN(32 - len(deploy_code), len(deploy_code)),\n        value=0,\n        sender=sender,\n        authorization_list=[\n            AuthorizationTuple(\n                address=contract_create,\n                nonce=0,\n                signer=pointer,\n            )\n        ],\n    )\n    post = {\n        contract_create: Account(storage=storage_create) if call_return == Op.RETURN else None,\n        contract: Account(storage=storage_contract),\n        pointer: Account(storage=storage_pointer),\n    }\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\n# Pointer Revert Contract Revert\n# pointer set its storage, contract set its storage\n# pointer set its storage, (contract set its storage, revert)\n# (pointer set its storage, revert), contract set its storage\n# (pointer set its storage, revert), (contract set its storage revert)\n# contract set its storage, pointer set its storage\n# contract set its storage, (pointer set its storage, revert)\n# (contract set its storage, revert), pointer set its storage\n# (contract set its storage, revert), (pointer set its storage revert)\n# (pointer set its storage, contract set its storage), revert\n# (contract set its storage, pointer set its storage), revert\nclass CallOrder(Enum):\n    \"\"\"Add addresses to access list.\"\"\"\n\n    POINTER_CONTRACT = 1\n    CONTRACT_POINTER = 2\n\n\nvalid_combinations = [\n    (True, True, False),\n    (True, False, False),\n    (False, True, False),\n    (False, False, False),\n    (False, False, True),\n]\n\n\n@pytest.mark.valid_from(\"Prague\")\n@pytest.mark.parametrize(\"first_revert, second_revert, final_revert\", valid_combinations)\n@pytest.mark.parametrize(\"call_order\", [CallOrder.CONTRACT_POINTER, CallOrder.POINTER_CONTRACT])\ndef test_pointer_reverts(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    first_revert: bool,\n    second_revert: bool,\n    final_revert: bool,\n    call_order: CallOrder,\n) -> None:\n    \"\"\"Pointer do operations then revert.\"\"\"\n    sender = pre.fund_eoa()\n    pointer = pre.fund_eoa()\n\n    contract_storage = Storage()\n    contract_calls = (\n        0\n        if (call_order == CallOrder.CONTRACT_POINTER and first_revert)\n        or (call_order == CallOrder.POINTER_CONTRACT and second_revert)\n        or final_revert\n        else 1\n    )\n    slot_storage = contract_storage.store_next(contract_calls, \"storage\")\n    slot_tstorage = contract_storage.store_next(contract_calls, \"tstorage\")\n\n    pointer_storage = Storage()\n    pointer_calls = (\n        0\n        if (call_order == CallOrder.POINTER_CONTRACT and first_revert)\n        or (call_order == CallOrder.CONTRACT_POINTER and second_revert)\n        or final_revert\n        else 1\n    )\n    pointer_storage.store_next(pointer_calls, \"storage\")\n    pointer_storage.store_next(pointer_calls, \"tstorage\")\n\n    contract = pre.deploy_contract(\n        code=Op.SSTORE(slot_storage, Op.ADD(1, Op.SLOAD(slot_storage)))\n        + Op.TSTORE(0, Op.ADD(1, Op.TLOAD(0)))\n        + Op.SSTORE(slot_tstorage, Op.TLOAD(0))\n        + Conditional(\n            condition=Op.EQ(Op.CALLDATALOAD(0), 1),\n            if_true=Op.REVERT(0, 32),\n            if_false=Op.RETURN(0, 32),\n        )\n    )\n    contract_main = pre.deploy_contract(\n        code=Op.MSTORE(0, 1 if first_revert else 0)\n        + Op.CALL(\n            address=pointer if call_order == CallOrder.POINTER_CONTRACT else contract, args_size=32\n        )\n        + Op.MSTORE(0, 1 if second_revert else 0)\n        + Op.CALL(\n            address=pointer if call_order == CallOrder.CONTRACT_POINTER else contract, args_size=32\n        )\n        + Conditional(\n            condition=Op.EQ(1, int(final_revert)),\n            if_true=Op.REVERT(0, 32),\n            if_false=Op.RETURN(0, 32),\n        )\n    )\n    tx = Transaction(\n        to=contract_main,\n        gas_limit=800_000,\n        data=b\"\",\n        value=0,\n        sender=sender,\n        authorization_list=[\n            AuthorizationTuple(\n                address=contract,\n                nonce=0,\n                signer=pointer,\n            )\n        ],\n    )\n    post = {pointer: Account(storage=pointer_storage), contract: Account(storage=contract_storage)}\n    state_test(\n        env=Environment(),\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\nclass DelegationTo(Enum):\n    \"\"\"Add addresses to access list.\"\"\"\n\n    CONTRACT_A = 1\n    CONTRACT_B = 2\n    RESET = 3\n\n\n@pytest.mark.xdist_group(name=\"bigmem\")\n@pytest.mark.valid_from(\"Prague\")\n@pytest.mark.parametrize(\n    \"first_delegation\", [DelegationTo.CONTRACT_A, DelegationTo.CONTRACT_B, DelegationTo.RESET]\n)\n@pytest.mark.parametrize(\n    \"second_delegation\", [DelegationTo.CONTRACT_A, DelegationTo.CONTRACT_B, DelegationTo.RESET]\n)\ndef test_double_auth(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    first_delegation: DelegationTo,\n    second_delegation: DelegationTo,\n) -> None:\n    \"\"\"Only the last auth works, but first auth still charges the gas.\"\"\"\n    env = Environment()\n    sender = pre.fund_eoa()\n    pointer = pre.fund_eoa()\n\n    storage = Storage()\n    contract_a = pre.deploy_contract(\n        code=Op.SSTORE(\n            storage.store_next(\n                1 if second_delegation == DelegationTo.CONTRACT_A else 0, \"code_a_worked\"\n            ),\n            1,\n        )\n    )\n    contract_b = pre.deploy_contract(\n        code=Op.SSTORE(\n            storage.store_next(\n                2 if second_delegation == DelegationTo.CONTRACT_B else 0, \"code_b_worked\"\n            ),\n            2,\n        )\n    )\n\n    main_storage = Storage()\n    contract_main = pre.deploy_contract(code=Op.CALL(address=pointer))\n\n    tx = Transaction(\n        to=contract_main,\n        gas_limit=200_000,\n        data=b\"\",\n        value=0,\n        sender=sender,\n        authorization_list=[\n            AuthorizationTuple(\n                address=(\n                    contract_a\n                    if first_delegation == DelegationTo.CONTRACT_A\n                    else contract_b\n                    if first_delegation == DelegationTo.CONTRACT_B\n                    else 0\n                ),\n                nonce=0,\n                signer=pointer,\n            ),\n            AuthorizationTuple(\n                address=(\n                    contract_a\n                    if second_delegation == DelegationTo.CONTRACT_A\n                    else contract_b\n                    if second_delegation == DelegationTo.CONTRACT_B\n                    else 0\n                ),\n                nonce=1,\n                signer=pointer,\n            ),\n        ],\n    )\n    post = {\n        pointer: (\n            Account(\n                storage=storage,\n                code=(\n                    Spec.delegation_designation(contract_a)\n                    if second_delegation == DelegationTo.CONTRACT_A\n                    else (\n                        Spec.delegation_designation(contract_b)\n                        if second_delegation == DelegationTo.CONTRACT_B\n                        else bytes()\n                    )\n                ),\n            )\n        ),\n        contract_main: Account(storage=main_storage),\n    }\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\n@pytest.mark.xdist_group(name=\"bigmem\")\n@pytest.mark.valid_from(\"Prague\")\ndef test_pointer_resets_an_empty_code_account_with_storage(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    So in Block1 we create a sender with empty code, but non empty storage\n    using pointers.\n\n    In Block2 we create account that perform suicide, then we\n    check that when calling a pointer, that points to newly created account and\n    runs suicide, is not deleted as well as its storage.\n\n    This one is a little messy.\n    \"\"\"\n    sender = pre.fund_eoa()\n    pointer = pre.fund_eoa(amount=0)\n    pointer_storage = Storage()\n    sender_storage = Storage()\n    sender_storage.store_next(1, \"slot1\")\n    sender_storage.store_next(2, \"slot2\")\n    contract_1 = pre.deploy_contract(\n        code=Op.SSTORE(pointer_storage.store_next(1, \"slot1\"), 1)\n        + Op.SSTORE(pointer_storage.store_next(2, \"slot2\"), 2)\n    )\n\n    tx_set_pointer_storage = Transaction(\n        to=pointer,\n        gas_limit=200_000,\n        data=b\"\",\n        value=0,\n        sender=sender,\n        authorization_list=[\n            AuthorizationTuple(\n                address=contract_1,\n                nonce=0,\n                signer=pointer,\n            ),\n        ],\n    )\n    tx_set_sender_storage = Transaction(\n        to=sender,\n        gas_limit=200_000,\n        data=b\"\",\n        value=0,\n        sender=sender,\n        authorization_list=[\n            AuthorizationTuple(\n                address=contract_1,\n                nonce=2,\n                signer=sender,\n            ),\n        ],\n    )\n\n    tx_reset_code = Transaction(\n        to=pointer,\n        gas_limit=200_000,\n        data=b\"\",\n        value=0,\n        nonce=3,\n        sender=sender,\n        authorization_list=[\n            AuthorizationTuple(\n                address=0,\n                nonce=1,\n                signer=pointer,\n            ),\n            AuthorizationTuple(\n                address=0,\n                nonce=4,\n                signer=sender,\n            ),\n        ],\n    )\n\n    contract_2 = pre.deploy_contract(code=Op.SSTORE(1, 1))\n    tx_send_from_empty_code_with_storage = Transaction(\n        to=contract_2,\n        gas_limit=200_000,\n        data=b\"\",\n        value=0,\n        nonce=5,\n        sender=sender,\n    )\n\n    # Block 2\n    # Sender with storage and pointer code calling selfdestruct on itself\n    #\n    # But it points to a newly created account, check that pointer\n    # storage is not deleted\n    suicide_dest = pre.fund_eoa(amount=0)\n    deploy_code = Op.SSTORE(5, 5) + Op.SELFDESTRUCT(suicide_dest)\n    sender_storage[5] = 5\n\n    another_pointer = pre.fund_eoa()\n\n    contract_create = pre.deploy_contract(\n        code=Op.MSTORE(0, Op.CALLDATALOAD(0))\n        + Op.MSTORE(32, Op.CALLDATALOAD(32))\n        + Op.SSTORE(1, Op.CREATE(0, 0, Op.CALLDATASIZE()))\n        + Op.CALL(address=sender)  # run suicide from pointer\n        + Op.CALL(address=Op.SLOAD(1))  # run suicide directly\n        + Op.CALL(address=another_pointer)  # run suicide from pointer that is\n        # not sender\n    )\n    newly_created_address = compute_create_address(address=contract_create, nonce=1)\n\n    tx_create_suicide_from_pointer = Transaction(\n        to=contract_create,\n        gas_limit=800_000,\n        data=Op.SSTORE(6, 6)\n        + Op.MSTORE(0, deploy_code.hex())\n        + Op.RETURN(32 - len(deploy_code), len(deploy_code)),\n        value=1000,\n        nonce=6,\n        sender=sender,\n        authorization_list=[\n            AuthorizationTuple(\n                address=newly_created_address,\n                nonce=7,\n                signer=sender,\n            ),\n            AuthorizationTuple(\n                address=newly_created_address,\n                nonce=0,\n                signer=another_pointer,\n            ),\n        ],\n    )\n\n    post = {\n        pointer: Account(nonce=2, balance=0, storage=pointer_storage, code=bytes()),\n        sender: Account(\n            storage=sender_storage, code=Spec.delegation_designation(newly_created_address)\n        ),\n        newly_created_address: Account.NONEXISTENT,\n        contract_create: Account(storage={1: newly_created_address}),\n        another_pointer: Account(balance=0, storage={5: 5}),\n    }\n    blockchain_test(\n        genesis_environment=Environment(),\n        pre=pre,\n        post=post,\n        blocks=[\n            # post = {\n            #       pointer: Account(nonce=2,\n            #                      balance=0,\n            #                      storage=pointer_storage,\n            #                      code=bytes()\n            #              ),\n            #       sender: Account(storage=pointer_storage, code=bytes())\n            #         }\n            Block(\n                txs=[\n                    tx_set_pointer_storage,\n                    tx_set_sender_storage,\n                    tx_reset_code,\n                    tx_send_from_empty_code_with_storage,\n                ]\n            ),\n            Block(txs=[tx_create_suicide_from_pointer]),\n        ],\n    )\n\n\n@pytest.mark.parametrize(\n    \"tx_value\",\n    [0, 1],\n)\n@pytest.mark.exception_test\n@pytest.mark.valid_at_transition_to(\"Prague\")\ndef test_set_code_type_tx_pre_fork(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    tx_value: int,\n) -> None:\n    \"\"\"\n    Reject blocks with set code type transactions before the Prague fork.\n\n    This test was based on:\n    tests/prague/eip7702_set_code_tx/test_set_code_txs.py::test_self_sponsored_set_\n    code\n    \"\"\"\n    storage = Storage()\n    sender = pre.fund_eoa()\n\n    set_code = (\n        Op.SSTORE(storage.store_next(sender), Op.ORIGIN)\n        + Op.SSTORE(storage.store_next(sender), Op.CALLER)\n        + Op.SSTORE(storage.store_next(tx_value), Op.CALLVALUE)\n        + Op.STOP\n    )\n    set_code_to_address = pre.deploy_contract(\n        set_code,\n    )\n\n    tx = Transaction(\n        gas_limit=10_000_000,\n        to=sender,\n        value=tx_value,\n        authorization_list=[\n            AuthorizationTuple(\n                address=set_code_to_address,\n                nonce=1,\n                signer=sender,\n            ),\n        ],\n        sender=sender,\n        error=TransactionException.TYPE_4_TX_PRE_FORK,\n    )\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            set_code_to_address: Account(storage=dict.fromkeys(storage, 0)),\n            sender: Account(\n                nonce=0,\n                code=\"\",\n                storage={},\n            ),\n        },\n    )\n\n\n@pytest.mark.valid_from(\"Prague\")\n@pytest.mark.xdist_group(name=\"bigmem\")\ndef test_delegation_replacement_call_previous_contract(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    fork: Fork,\n) -> None:\n    \"\"\"\n    Test setting the code of an EOA that already has delegation, calling the\n    previous delegated contract. Previous contract shouldn't be warm when doing\n    the CALL.\n    \"\"\"\n    pre_set_delegation_code = Op.STOP\n    pre_set_delegation_address = pre.deploy_contract(pre_set_delegation_code)\n\n    auth_signer = pre.fund_eoa(delegation=pre_set_delegation_address)\n    sender = pre.fund_eoa()\n\n    gsc = fork.gas_costs()\n    overhead_cost = gsc.G_VERY_LOW * len(Op.CALL.kwargs)\n    set_code = CodeGasMeasure(\n        code=Op.CALL(gas=0, address=pre_set_delegation_address),\n        overhead_cost=overhead_cost,\n        extra_stack_items=1,\n    )\n\n    set_code_to_address = pre.deploy_contract(\n        set_code,\n    )\n\n    tx = Transaction(\n        gas_limit=500_000,\n        to=auth_signer,\n        value=0,\n        authorization_list=[\n            AuthorizationTuple(\n                address=set_code_to_address,\n                nonce=auth_signer.nonce,\n                signer=auth_signer,\n            ),\n        ],\n        sender=sender,\n    )\n\n    state_test(\n        env=Environment(),\n        pre=pre,\n        tx=tx,\n        post={\n            auth_signer: Account(\n                storage={0: gsc.G_COLD_ACCOUNT_ACCESS},\n            )\n        },\n    )\n"
  },
  {
    "path": "tests/shanghai/__init__.py",
    "content": "\"\"\"Test cases for EVM functionality introduced in Shanghai.\"\"\"\n"
  },
  {
    "path": "tests/shanghai/eip3651_warm_coinbase/__init__.py",
    "content": "\"\"\"\nTests for [EIP-3651: Warm COINBASE](https://eips.ethereum.org/EIPS/eip-3651).\n\"\"\"\n"
  },
  {
    "path": "tests/shanghai/eip3651_warm_coinbase/conftest.py",
    "content": "\"\"\"Fixtures for the EIP-3651 warm coinbase tests.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_tools import Alloc, Environment\n\n\n@pytest.fixture\ndef env() -> Environment:\n    \"\"\"Environment fixture.\"\"\"\n    return Environment()\n\n\n@pytest.fixture\ndef post() -> Alloc:\n    \"\"\"Post state fixture.\"\"\"\n    return Alloc()\n"
  },
  {
    "path": "tests/shanghai/eip3651_warm_coinbase/spec.py",
    "content": "\"\"\"Defines EIP-3651 specification constants and functions.\"\"\"\n\nfrom dataclasses import dataclass\n\n\n@dataclass(frozen=True)\nclass ReferenceSpec:\n    \"\"\"Defines the reference spec version and git path.\"\"\"\n\n    git_path: str\n    version: str\n\n\nref_spec_3651 = ReferenceSpec(\"EIPS/eip-3651.md\", \"d94c694c6f12291bb6626669c3e8587eef3adff1\")\n"
  },
  {
    "path": "tests/shanghai/eip3651_warm_coinbase/test_warm_coinbase.py",
    "content": "\"\"\"\nTests [EIP-3651: Warm COINBASE](https://eips.ethereum.org/EIPS/eip-3651).\n\nTests ported from:\n[ethereum/tests/pull/1082](https://github.com/ethereum/tests/pull/1082).\n\"\"\"\n\nimport pytest\n\nfrom ethereum_test_forks import Fork, Shanghai\nfrom ethereum_test_tools import (\n    Account,\n    Address,\n    Alloc,\n    Bytecode,\n    CodeGasMeasure,\n    Environment,\n    StateTestFiller,\n    Transaction,\n)\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .spec import ref_spec_3651\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_3651.git_path\nREFERENCE_SPEC_VERSION = ref_spec_3651.version\n\n# Amount of gas required to make a call to a warm account.\n# Calling a cold account with this amount of gas results in exception.\nGAS_REQUIRED_CALL_WARM_ACCOUNT = 100\n\n\n@pytest.mark.valid_from(\"Shanghai\")\n@pytest.mark.parametrize(\n    \"use_sufficient_gas\",\n    [True, False],\n    ids=[\"sufficient_gas\", \"insufficient_gas\"],\n)\n@pytest.mark.parametrize(\n    \"opcode,contract_under_test_code,call_gas_exact\",\n    [\n        (\n            \"call\",\n            Op.POP(Op.CALL(0, Op.COINBASE, 0, 0, 0, 0, 0)),\n            # Extra gas: COINBASE + 4*PUSH1 + 2*DUP1 + POP\n            GAS_REQUIRED_CALL_WARM_ACCOUNT + 22,\n        ),\n        (\n            \"callcode\",\n            Op.POP(Op.CALLCODE(0, Op.COINBASE, 0, 0, 0, 0, 0)),\n            # Extra gas: COINBASE + 4*PUSH1 + 2*DUP1 + POP\n            GAS_REQUIRED_CALL_WARM_ACCOUNT + 22,\n        ),\n        (\n            \"delegatecall\",\n            Op.POP(Op.DELEGATECALL(0, Op.COINBASE, 0, 0, 0, 0)),\n            # Extra: COINBASE + 3*PUSH1 + 2*DUP1 + POP\n            GAS_REQUIRED_CALL_WARM_ACCOUNT + 19,\n        ),\n        (\n            \"staticcall\",\n            Op.POP(Op.STATICCALL(0, Op.COINBASE, 0, 0, 0, 0)),\n            # Extra: COINBASE + 3*PUSH1 + 2*DUP1 + POP\n            GAS_REQUIRED_CALL_WARM_ACCOUNT + 19,\n        ),\n    ],\n    ids=[\"CALL\", \"CALLCODE\", \"DELEGATECALL\", \"STATICCALL\"],\n)\ndef test_warm_coinbase_call_out_of_gas(\n    state_test: StateTestFiller,\n    env: Environment,\n    pre: Alloc,\n    post: Alloc,\n    sender: Address,\n    fork: Fork,\n    opcode: str,\n    contract_under_test_code: Bytecode,\n    call_gas_exact: int,\n    use_sufficient_gas: bool,\n) -> None:\n    \"\"\"\n    Test that the coinbase is warm by accessing the COINBASE with each\n    of the following opcodes.\n\n    - CALL\n    - CALLCODE\n    - DELEGATECALL\n    - STATICCALL\n    \"\"\"\n    contract_under_test_address = pre.deploy_contract(contract_under_test_code)\n\n    if not use_sufficient_gas:\n        call_gas_exact -= 1\n\n    caller_code = Op.SSTORE(\n        0,\n        Op.CALL(call_gas_exact, contract_under_test_address, 0, 0, 0, 0, 0),\n    )\n    caller_address = pre.deploy_contract(caller_code)\n\n    tx = Transaction(\n        to=caller_address,\n        gas_limit=100_000,\n        sender=sender,\n    )\n\n    if use_sufficient_gas and fork >= Shanghai:\n        post[caller_address] = Account(\n            storage={\n                # On shanghai and beyond, calls with only 100 gas to\n                # coinbase will succeed.\n                0: 1,\n            }\n        )\n    else:\n        post[caller_address] = Account(\n            storage={\n                # Before shanghai, calls with only 100 gas to\n                # coinbase will fail.\n                0: 0,\n            }\n        )\n\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n        tag=\"opcode_\" + opcode,\n    )\n\n\n# List of opcodes that are affected by EIP-3651\ngas_measured_opcodes = [\n    (\n        \"EXTCODESIZE\",\n        CodeGasMeasure(\n            code=Op.EXTCODESIZE(Op.COINBASE),\n            overhead_cost=2,\n            extra_stack_items=1,\n        ),\n    ),\n    (\n        \"EXTCODECOPY\",\n        CodeGasMeasure(\n            code=Op.EXTCODECOPY(Op.COINBASE, 0, 0, 0),\n            overhead_cost=2 + 3 + 3 + 3,\n        ),\n    ),\n    (\n        \"EXTCODEHASH\",\n        CodeGasMeasure(\n            code=Op.EXTCODEHASH(Op.COINBASE),\n            overhead_cost=2,\n            extra_stack_items=1,\n        ),\n    ),\n    (\n        \"BALANCE\",\n        CodeGasMeasure(\n            code=Op.BALANCE(Op.COINBASE),\n            overhead_cost=2,\n            extra_stack_items=1,\n        ),\n    ),\n    (\n        \"CALL\",\n        CodeGasMeasure(\n            code=Op.CALL(0xFF, Op.COINBASE, 0, 0, 0, 0, 0),\n            overhead_cost=3 + 2 + 3 + 3 + 3 + 3 + 3,\n            extra_stack_items=1,\n        ),\n    ),\n    (\n        \"CALLCODE\",\n        CodeGasMeasure(\n            code=Op.CALLCODE(0xFF, Op.COINBASE, 0, 0, 0, 0, 0),\n            overhead_cost=3 + 2 + 3 + 3 + 3 + 3 + 3,\n            extra_stack_items=1,\n        ),\n    ),\n    (\n        \"DELEGATECALL\",\n        CodeGasMeasure(\n            code=Op.DELEGATECALL(0xFF, Op.COINBASE, 0, 0, 0, 0),\n            overhead_cost=3 + 2 + 3 + 3 + 3 + 3,\n            extra_stack_items=1,\n        ),\n    ),\n    (\n        \"STATICCALL\",\n        CodeGasMeasure(\n            code=Op.STATICCALL(0xFF, Op.COINBASE, 0, 0, 0, 0),\n            overhead_cost=3 + 2 + 3 + 3 + 3 + 3,\n            extra_stack_items=1,\n        ),\n    ),\n]\n\n\n@pytest.mark.valid_from(\"Berlin\")  # these tests fill for fork >= Berlin\n@pytest.mark.parametrize(\n    \"opcode,code_gas_measure\",\n    gas_measured_opcodes,\n    ids=[i[0] for i in gas_measured_opcodes],\n)\ndef test_warm_coinbase_gas_usage(\n    state_test: StateTestFiller,\n    env: Environment,\n    pre: Alloc,\n    sender: Address,\n    fork: Fork,\n    opcode: str,\n    code_gas_measure: Bytecode,\n) -> None:\n    \"\"\"\n    Test the gas usage of opcodes affected by assuming a warm coinbase.\n\n    - EXTCODESIZE\n    - EXTCODECOPY\n    - EXTCODEHASH\n    - BALANCE\n    - CALL\n    - CALLCODE\n    - DELEGATECALL\n    - STATICCALL\n    \"\"\"\n    measure_address = pre.deploy_contract(\n        code=code_gas_measure,\n    )\n\n    if fork >= Shanghai:\n        expected_gas = GAS_REQUIRED_CALL_WARM_ACCOUNT  # Warm account access cost after EIP-3651\n    else:\n        expected_gas = 2600  # Cold account access cost before EIP-3651\n\n    tx = Transaction(\n        to=measure_address,\n        gas_limit=100_000,\n        sender=sender,\n    )\n\n    post = {\n        measure_address: Account(\n            storage={\n                0x00: expected_gas,\n            }\n        )\n    }\n\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n        tag=\"opcode_\" + opcode.lower(),\n    )\n"
  },
  {
    "path": "tests/shanghai/eip3855_push0/__init__.py",
    "content": "\"\"\"\nTests [EIP-3855: PUSH0 Instruction](https://eips.ethereum.org/EIPS/eip-3855).\n\"\"\"\n"
  },
  {
    "path": "tests/shanghai/eip3855_push0/conftest.py",
    "content": "\"\"\"Fixtures for the EIP-3855 PUSH0 tests.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_tools import Alloc, Environment\n\n\n@pytest.fixture\ndef env() -> Environment:\n    \"\"\"Environment fixture.\"\"\"\n    return Environment()\n\n\n@pytest.fixture\ndef post() -> Alloc:\n    \"\"\"Post state fixture.\"\"\"\n    return Alloc()\n"
  },
  {
    "path": "tests/shanghai/eip3855_push0/spec.py",
    "content": "\"\"\"Defines EIP-3855 specification constants and functions.\"\"\"\n\nfrom dataclasses import dataclass\n\n\n@dataclass(frozen=True)\nclass ReferenceSpec:\n    \"\"\"Defines the reference spec version and git path.\"\"\"\n\n    git_path: str\n    version: str\n\n\nref_spec_3855 = ReferenceSpec(\"EIPS/eip-3855.md\", \"6f85bd73336de4aacfad7ac3bb3a7e1ba2d68f51\")\n"
  },
  {
    "path": "tests/shanghai/eip3855_push0/test_push0.py",
    "content": "\"\"\"\nTests [EIP-3855: PUSH0 Instruction](https://eips.ethereum.org/EIPS/eip-3855).\n\nTests ported from:\n[ethereum/tests/pull/1033](https://github.com/ethereum/tests/pull/1033).\n\"\"\"\n\nimport pytest\n\nfrom ethereum_test_tools import (\n    EOA,\n    Account,\n    Address,\n    Alloc,\n    Bytecode,\n    CodeGasMeasure,\n    Environment,\n    StateTestFiller,\n    Transaction,\n)\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .spec import ref_spec_3855\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_3855.git_path\nREFERENCE_SPEC_VERSION = ref_spec_3855.version\n\npytestmark = pytest.mark.valid_from(\"Shanghai\")\n\n\n@pytest.mark.xdist_group(name=\"bigmem\")\n@pytest.mark.parametrize(\n    \"contract_code,expected_storage\",\n    [\n        # Use PUSH0 to set a key for SSTORE.\n        pytest.param(\n            Op.SSTORE(Op.PUSH0, 1),\n            Account(storage={0x00: 0x01}),\n            id=\"key_sstore\",\n        ),\n        # Fill stack with PUSH0, then OR all values and save using SSTORE.\n        pytest.param(\n            (Op.PUSH0 * 1024) + (Op.OR * 1023) + Op.SSTORE(Op.SWAP1, 1),\n            Account(storage={0x00: 0x01}),\n            id=\"fill_stack\",\n        ),\n        # Stack overflow by using PUSH0 1025 times.\n        pytest.param(\n            Op.SSTORE(Op.PUSH0, 1) + (Op.PUSH0 * 1025),\n            Account(storage={0x00: 0x00}),\n            id=\"stack_overflow\",\n        ),\n        # Update an already existing storage value.\n        pytest.param(\n            Op.SSTORE(Op.PUSH0, 2) + Op.SSTORE(1, Op.PUSH0),\n            Account(storage={0x00: 0x02, 0x01: 0x00}),\n            id=\"storage_overwrite\",\n        ),\n        # Jump to a JUMPDEST next to a PUSH0, must succeed.\n        pytest.param(\n            Op.PUSH1(4) + Op.JUMP + Op.PUSH0 + Op.JUMPDEST + Op.SSTORE(Op.PUSH0, 1) + Op.STOP,\n            Account(storage={0x00: 0x01}),\n            id=\"before_jumpdest\",\n        ),\n        # Test PUSH0 gas cost.\n        pytest.param(\n            CodeGasMeasure(\n                code=Op.PUSH0,\n                extra_stack_items=1,\n            ),\n            Account(storage={0x00: 0x02}),\n            id=\"gas_cost\",\n        ),\n    ],\n)\ndef test_push0_contracts(\n    state_test: StateTestFiller,\n    env: Environment,\n    pre: Alloc,\n    post: Alloc,\n    sender: EOA,\n    contract_code: Bytecode,\n    expected_storage: Account,\n) -> None:\n    \"\"\"Tests PUSH0 within various deployed contracts.\"\"\"\n    push0_contract = pre.deploy_contract(contract_code)\n    tx = Transaction(to=push0_contract, gas_limit=100_000, sender=sender)\n    post[push0_contract] = expected_storage\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\nclass TestPush0CallContext:\n    \"\"\"\n    Test the PUSH0 operation in various contract call contexts.\n\n    Test PUSH0 in the following contract call contexts:\n\n    - CALL,\n    - CALLCODE,\n    - DELEGATECALL,\n    - STATICCALL.\n    \"\"\"\n\n    @pytest.fixture\n    def push0_contract_callee(self, pre: Alloc) -> Address:\n        \"\"\"\n        Deploys a PUSH0 contract callee to the pre alloc returning its address.\n        \"\"\"\n        push0_contract = pre.deploy_contract(Op.MSTORE8(Op.PUSH0, 0xFF) + Op.RETURN(Op.PUSH0, 1))\n        return push0_contract\n\n    @pytest.fixture\n    def push0_contract_caller(\n        self, pre: Alloc, call_opcode: Op, push0_contract_callee: Address\n    ) -> Address:\n        \"\"\"\n        Deploy the contract that calls the callee PUSH0 contract into `pre`.\n\n        This fixture returns its address.\n        \"\"\"\n        call_code = (\n            Op.SSTORE(0, call_opcode(gas=100_000, address=push0_contract_callee))\n            + Op.SSTORE(0, 1)\n            + Op.RETURNDATACOPY(0x1F, 0, 1)\n            + Op.SSTORE(1, Op.MLOAD(0))\n        )\n        return pre.deploy_contract(call_code)\n\n    @pytest.mark.xdist_group(name=\"bigmem\")\n    @pytest.mark.parametrize(\n        \"call_opcode\",\n        [\n            Op.CALL,\n            Op.CALLCODE,\n            Op.DELEGATECALL,\n            Op.STATICCALL,\n        ],\n        ids=[\"call\", \"callcode\", \"delegatecall\", \"staticcall\"],\n    )\n    def test_push0_contract_during_call_contexts(\n        self,\n        state_test: StateTestFiller,\n        env: Environment,\n        pre: Alloc,\n        post: Alloc,\n        sender: EOA,\n        push0_contract_caller: Address,\n    ) -> None:\n        \"\"\"Test PUSH0 during various call contexts.\"\"\"\n        tx = Transaction(to=push0_contract_caller, gas_limit=100_000, sender=sender)\n        post[push0_contract_caller] = Account(storage={0x00: 0x01, 0x01: 0xFF})\n        state_test(env=env, pre=pre, post=post, tx=tx)\n"
  },
  {
    "path": "tests/shanghai/eip3860_initcode/__init__.py",
    "content": "\"\"\"\nTest [EIP-3860: Limit and meter initcode](https://eips.ethereum.org/EIPS/eip-3860).\n\"\"\"\n"
  },
  {
    "path": "tests/shanghai/eip3860_initcode/conftest.py",
    "content": "\"\"\"Fixtures for the EIP-3860 initcode tests.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_tools import Alloc, Environment\n\n\n@pytest.fixture\ndef env() -> Environment:\n    \"\"\"Environment fixture.\"\"\"\n    return Environment()\n\n\n@pytest.fixture\ndef post() -> Alloc:\n    \"\"\"Post state fixture.\"\"\"\n    return Alloc()\n"
  },
  {
    "path": "tests/shanghai/eip3860_initcode/helpers.py",
    "content": "\"\"\"Helpers for the EIP-3860 initcode tests.\"\"\"\n\nfrom ethereum_test_tools import Initcode\nfrom ethereum_test_vm import Opcodes as Op\n\nINITCODE_RESULTING_DEPLOYED_CODE = Op.STOP\n\n\ndef get_initcode_name(val: Initcode) -> str:\n    \"\"\"Return Initcode object's name to generate test ids.\"\"\"\n    return val._name_\n\n\ndef get_create_id(opcode: Op) -> str:\n    \"\"\"Return the opcode name for the test id.\"\"\"\n    return opcode._name_.lower()\n"
  },
  {
    "path": "tests/shanghai/eip3860_initcode/spec.py",
    "content": "\"\"\"Defines EIP-3860 specification constants and functions.\"\"\"\n\nfrom dataclasses import dataclass\n\n\n@dataclass(frozen=True)\nclass ReferenceSpec:\n    \"\"\"Defines the reference spec version and git path.\"\"\"\n\n    git_path: str\n    version: str\n\n\nref_spec_3860 = ReferenceSpec(\"EIPS/eip-3860.md\", \"9ee005834d488e381455cf86a56c741a2e854a17\")\n\n\n@dataclass(frozen=True)\nclass Spec:\n    \"\"\"\n    Define parameters from the EIP-3860 specifications.\n\n    These are the parameters defined at\n    https://eips.ethereum.org/EIPS/eip-3860#parameters.\n    \"\"\"\n\n    MAX_INITCODE_SIZE = 49152\n    INITCODE_WORD_COST = 2\n"
  },
  {
    "path": "tests/shanghai/eip3860_initcode/test_initcode.py",
    "content": "\"\"\"\nTest [EIP-3860: Limit and meter initcode](https://eips.ethereum.org/EIPS/eip-3860).\n\nTests ported from:\n- [ethereum/tests/pull/990](https://github.com/ethereum/tests/pull/990)\n- [ethereum/tests/pull/1012](https://github.com/ethereum/tests/pull/990)\n\"\"\"\n\nfrom typing import List\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    EOA,\n    AccessList,\n    Account,\n    Address,\n    Alloc,\n    Bytecode,\n    Environment,\n    Initcode,\n    StateTestFiller,\n    Transaction,\n    TransactionException,\n    TransactionReceipt,\n    ceiling_division,\n    compute_create_address,\n)\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .helpers import INITCODE_RESULTING_DEPLOYED_CODE, get_create_id, get_initcode_name\nfrom .spec import Spec, ref_spec_3860\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_3860.git_path\nREFERENCE_SPEC_VERSION = ref_spec_3860.version\n\npytestmark = pytest.mark.valid_from(\"Shanghai\")\n\n\n\"\"\"Initcode templates used throughout the tests\"\"\"\nINITCODE_ONES_MAX_LIMIT = Initcode(\n    deploy_code=INITCODE_RESULTING_DEPLOYED_CODE,\n    initcode_length=Spec.MAX_INITCODE_SIZE,\n    padding_byte=0x01,\n    name=\"max_size_ones\",\n)\n\nINITCODE_ZEROS_MAX_LIMIT = Initcode(\n    deploy_code=INITCODE_RESULTING_DEPLOYED_CODE,\n    initcode_length=Spec.MAX_INITCODE_SIZE,\n    padding_byte=0x00,\n    name=\"max_size_zeros\",\n)\n\nINITCODE_ONES_OVER_LIMIT = Initcode(\n    deploy_code=INITCODE_RESULTING_DEPLOYED_CODE,\n    initcode_length=Spec.MAX_INITCODE_SIZE + 1,\n    padding_byte=0x01,\n    name=\"over_limit_ones\",\n)\n\nINITCODE_ZEROS_OVER_LIMIT = Initcode(\n    deploy_code=INITCODE_RESULTING_DEPLOYED_CODE,\n    initcode_length=Spec.MAX_INITCODE_SIZE + 1,\n    padding_byte=0x00,\n    name=\"over_limit_zeros\",\n)\n\nINITCODE_ZEROS_32_BYTES = Initcode(\n    deploy_code=INITCODE_RESULTING_DEPLOYED_CODE,\n    initcode_length=32,\n    padding_byte=0x00,\n    name=\"32_bytes\",\n)\n\nINITCODE_ZEROS_33_BYTES = Initcode(\n    deploy_code=INITCODE_RESULTING_DEPLOYED_CODE,\n    initcode_length=33,\n    padding_byte=0x00,\n    name=\"33_bytes\",\n)\n\nINITCODE_ZEROS_49120_BYTES = Initcode(\n    deploy_code=INITCODE_RESULTING_DEPLOYED_CODE,\n    initcode_length=49120,\n    padding_byte=0x00,\n    name=\"49120_bytes\",\n)\n\nINITCODE_ZEROS_49121_BYTES = Initcode(\n    deploy_code=INITCODE_RESULTING_DEPLOYED_CODE,\n    initcode_length=49121,\n    padding_byte=0x00,\n    name=\"49121_bytes\",\n)\n\nEMPTY_INITCODE = Initcode(\n    name=\"empty\",\n)\nEMPTY_INITCODE._bytes_ = bytes()\nEMPTY_INITCODE.deployment_gas = 0\nEMPTY_INITCODE.execution_gas = 0\n\nSINGLE_BYTE_INITCODE = Initcode(\n    name=\"single_byte\",\n)\nSINGLE_BYTE_INITCODE._bytes_ = bytes(Op.STOP)\nSINGLE_BYTE_INITCODE.deployment_gas = 0\nSINGLE_BYTE_INITCODE.execution_gas = 0\n\n\"\"\"Test cases using a contract creating transaction\"\"\"\n\n\n@pytest.mark.xdist_group(name=\"bigmem\")\n@pytest.mark.parametrize(\n    \"initcode\",\n    [\n        INITCODE_ZEROS_MAX_LIMIT,\n        INITCODE_ONES_MAX_LIMIT,\n        pytest.param(INITCODE_ZEROS_OVER_LIMIT, marks=pytest.mark.exception_test),\n        pytest.param(INITCODE_ONES_OVER_LIMIT, marks=pytest.mark.exception_test),\n    ],\n    ids=get_initcode_name,\n)\ndef test_contract_creating_tx(\n    state_test: StateTestFiller,\n    env: Environment,\n    pre: Alloc,\n    post: Alloc,\n    sender: EOA,\n    initcode: Initcode,\n) -> None:\n    \"\"\"\n    Test creating a contract with initcode that is on/over the allowed limit.\n    \"\"\"\n    create_contract_address = compute_create_address(\n        address=sender,\n        nonce=0,\n    )\n\n    tx = Transaction(\n        nonce=0,\n        to=None,\n        data=initcode,\n        gas_limit=10000000,\n        gas_price=10,\n        sender=sender,\n    )\n\n    if len(initcode) > Spec.MAX_INITCODE_SIZE:\n        # Initcode is above the max size, tx inclusion in the block makes\n        # it invalid.\n        post[create_contract_address] = Account.NONEXISTENT\n        tx.error = TransactionException.INITCODE_SIZE_EXCEEDED\n    else:\n        # Initcode is at or below the max size, tx inclusion in the block\n        # is ok and the contract is successfully created.\n        post[create_contract_address] = Account(code=Op.STOP)\n\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\ndef valid_gas_test_case(initcode: Initcode, gas_test_case: str) -> bool:\n    \"\"\"Filter out invalid gas test case/initcode combinations.\"\"\"\n    if gas_test_case == \"too_little_execution_gas\":\n        return (initcode.deployment_gas + initcode.execution_gas) > 0\n    return True\n\n\n@pytest.mark.parametrize(\n    \"initcode,gas_test_case\",\n    [\n        pytest.param(\n            i,\n            g,\n            marks=([pytest.mark.exception_test] if g == \"too_little_intrinsic_gas\" else []),\n        )\n        for i in [\n            INITCODE_ZEROS_MAX_LIMIT,\n            INITCODE_ONES_MAX_LIMIT,\n            EMPTY_INITCODE,\n            SINGLE_BYTE_INITCODE,\n            INITCODE_ZEROS_32_BYTES,\n            INITCODE_ZEROS_33_BYTES,\n            INITCODE_ZEROS_49120_BYTES,\n            INITCODE_ZEROS_49121_BYTES,\n        ]\n        for g in [\n            \"too_little_intrinsic_gas\",\n            \"exact_intrinsic_gas\",\n            \"too_little_execution_gas\",\n            \"exact_execution_gas\",\n        ]\n        if valid_gas_test_case(i, g)\n    ],\n    ids=lambda x: f\"{get_initcode_name(x[0])}-{x[1]}\" if isinstance(x, tuple) else x,\n)\nclass TestContractCreationGasUsage:\n    \"\"\"\n    Test the gas cost behavior of a contract creating transaction.\n\n    The following scenarios are tested:\n\n    1. Test with exact intrinsic gas minus one, contract create fails and tx is\n        invalid.\n\n    2. Test with exact intrinsic gas, contract create fails, but tx is valid.\n\n    3. Test with exact execution gas minus one, contract create fails, but tx\n        is valid.\n\n    4. Test with exact execution gas, contract create succeeds.\n\n    Initcode must be within a valid EIP-3860 length.\n    \"\"\"\n\n    @pytest.fixture\n    def tx_access_list(self) -> List[AccessList]:\n        \"\"\"\n        Return an access list to raise the intrinsic gas cost.\n\n        Upon EIP-7623 activation, we need to use an access list to raise the\n        intrinsic gas cost to be above the floor data cost.\n        \"\"\"\n        return [AccessList(address=Address(i), storage_keys=[]) for i in range(1, 478)]\n\n    @pytest.fixture\n    def exact_intrinsic_gas(\n        self, fork: Fork, initcode: Initcode, tx_access_list: List[AccessList]\n    ) -> int:\n        \"\"\"\n        Calculate the intrinsic tx gas cost.\n        \"\"\"\n        tx_intrinsic_gas_cost_calculator = fork.transaction_intrinsic_cost_calculator()\n        assert tx_intrinsic_gas_cost_calculator(\n            calldata=initcode,\n            contract_creation=True,\n            access_list=tx_access_list,\n        ) == tx_intrinsic_gas_cost_calculator(\n            calldata=initcode,\n            contract_creation=True,\n            access_list=tx_access_list,\n            return_cost_deducted_prior_execution=True,\n        )\n        return tx_intrinsic_gas_cost_calculator(\n            calldata=initcode,\n            contract_creation=True,\n            access_list=tx_access_list,\n        )\n\n    @pytest.fixture\n    def exact_execution_gas(self, exact_intrinsic_gas: int, initcode: Initcode) -> int:\n        \"\"\"\n        Calculate total execution gas cost.\n        \"\"\"\n        return exact_intrinsic_gas + initcode.deployment_gas + initcode.execution_gas\n\n    @pytest.fixture\n    def tx_error(self, gas_test_case: str) -> TransactionException | None:\n        \"\"\"\n        Return the transaction exception, or None, as expected.\n\n        Check that the transaction is invalid if too little intrinsic gas is\n        specified, otherwise the tx is valid and succeeds.\n        \"\"\"\n        if gas_test_case == \"too_little_intrinsic_gas\":\n            return TransactionException.INTRINSIC_GAS_TOO_LOW\n        return None\n\n    @pytest.fixture\n    def tx(\n        self,\n        sender: EOA,\n        initcode: Initcode,\n        gas_test_case: str,\n        tx_access_list: List[AccessList],\n        tx_error: TransactionException | None,\n        exact_intrinsic_gas: int,\n        exact_execution_gas: int,\n    ) -> Transaction:\n        \"\"\"\n        Return a tx with `gas_limit` corresponding to the `gas_test_case`.\n\n        Implement the gas_test_case by setting the `gas_limit` of the tx\n        appropriately and test whether the tx succeeds or fails with\n        appropriate error.\n        \"\"\"\n        if gas_test_case == \"too_little_intrinsic_gas\":\n            gas_limit = exact_intrinsic_gas - 1\n        elif gas_test_case == \"exact_intrinsic_gas\":\n            gas_limit = exact_intrinsic_gas\n        elif gas_test_case == \"too_little_execution_gas\":\n            gas_limit = exact_execution_gas - 1\n        elif gas_test_case == \"exact_execution_gas\":\n            gas_limit = exact_execution_gas\n        else:\n            pytest.fail(\"Invalid gas test case provided.\")\n\n        return Transaction(\n            nonce=0,\n            to=None,\n            access_list=tx_access_list,\n            data=initcode,\n            gas_limit=gas_limit,\n            gas_price=10,\n            error=tx_error,\n            sender=sender,\n            # The entire gas limit is expected to be consumed.\n            expected_receipt=TransactionReceipt(gas_used=gas_limit),\n        )\n\n    @pytest.fixture\n    def post(\n        self,\n        sender: EOA,\n        initcode: Initcode,\n        gas_test_case: str,\n        exact_intrinsic_gas: int,\n        exact_execution_gas: int,\n    ) -> Alloc:\n        \"\"\"\n        Test contract creation fails unless enough execution gas is provided.\n        \"\"\"\n        create_contract_address = compute_create_address(\n            address=sender,\n            nonce=0,\n        )\n        if gas_test_case == \"exact_intrinsic_gas\" and exact_intrinsic_gas == exact_execution_gas:\n            # Special scenario where the execution of the initcode and\n            # gas cost to deploy are zero\n            return Alloc({create_contract_address: Account(code=initcode.deploy_code)})\n        elif gas_test_case == \"exact_execution_gas\":\n            return Alloc({create_contract_address: Account(code=initcode.deploy_code)})\n        return Alloc({create_contract_address: Account.NONEXISTENT})\n\n    @pytest.mark.slow()\n    def test_gas_usage(\n        self,\n        state_test: StateTestFiller,\n        env: Environment,\n        pre: Alloc,\n        post: Alloc,\n        tx: Transaction,\n    ) -> None:\n        \"\"\"\n        Test transaction and contract creation using different gas limits.\n        \"\"\"\n        state_test(\n            env=env,\n            pre=pre,\n            post=post,\n            tx=tx,\n        )\n\n\n@pytest.mark.parametrize(\n    \"initcode\",\n    [\n        INITCODE_ZEROS_MAX_LIMIT,\n        INITCODE_ONES_MAX_LIMIT,\n        INITCODE_ZEROS_OVER_LIMIT,\n        INITCODE_ONES_OVER_LIMIT,\n        EMPTY_INITCODE,\n        SINGLE_BYTE_INITCODE,\n        INITCODE_ZEROS_32_BYTES,\n        INITCODE_ZEROS_33_BYTES,\n        INITCODE_ZEROS_49120_BYTES,\n        INITCODE_ZEROS_49121_BYTES,\n    ],\n    ids=get_initcode_name,\n)\n@pytest.mark.parametrize(\"opcode\", [Op.CREATE, Op.CREATE2], ids=get_create_id)\nclass TestCreateInitcode:\n    \"\"\"\n    Test contract creation with valid and invalid initcode lengths.\n\n    Test contract creation via CREATE/CREATE2, parametrized by initcode that is\n    on/over the max allowed limit.\n    \"\"\"\n\n    @pytest.fixture\n    def create2_salt(self) -> int:\n        \"\"\"\n        Salt value used for CREATE2 contract creation.\n        \"\"\"\n        return 0xDEADBEEF\n\n    @pytest.fixture\n    def creator_code(self, opcode: Op, create2_salt: int) -> Bytecode:\n        \"\"\"\n        Generate code for the creator contract which calls CREATE/CREATE2.\n        \"\"\"\n        return (\n            Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE)\n            + Op.GAS\n            + (\n                opcode(size=Op.CALLDATASIZE, salt=create2_salt)\n                if opcode == Op.CREATE2\n                else opcode(size=Op.CALLDATASIZE)\n            )\n            + Op.GAS\n            # stack: [Gas 2, Call Result, Gas 1]\n            + Op.SWAP1\n            # stack: [Call Result, Gas 2, Gas 1]\n            + Op.SSTORE(0, unchecked=True)\n            # stack: [Gas 2, Gas 1]\n            + Op.SWAP1\n            # stack: [Gas 1, Gas 2]\n            + Op.SUB\n            # stack: [Gas 1 - Gas 2]\n            + Op.SSTORE(1, unchecked=True)\n        )\n\n    @pytest.fixture\n    def creator_contract_address(self, pre: Alloc, creator_code: Bytecode) -> Address:\n        \"\"\"Return address of creator contract.\"\"\"\n        return pre.deploy_contract(creator_code)\n\n    @pytest.fixture\n    def created_contract_address(  # noqa: D103\n        self,\n        opcode: Op,\n        create2_salt: int,\n        initcode: Initcode,\n        creator_contract_address: Address,\n    ) -> Address:\n        \"\"\"\n        Calculate address of the contract created by the creator contract.\n        \"\"\"\n        return compute_create_address(\n            address=creator_contract_address,\n            nonce=1,\n            salt=create2_salt,\n            initcode=initcode,\n            opcode=opcode,\n        )\n\n    @pytest.fixture\n    def caller_code(self, creator_contract_address: Address) -> Bytecode:\n        \"\"\"\n        Generate code for the caller contract that calls the creator contract.\n        \"\"\"\n        return Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE) + Op.SSTORE(\n            Op.CALL(5000000, creator_contract_address, 0, 0, Op.CALLDATASIZE, 0, 0), 1\n        )\n\n    @pytest.fixture\n    def caller_contract_address(self, pre: Alloc, caller_code: Bytecode) -> Address:\n        \"\"\"Return address of the caller contract.\"\"\"\n        return pre.deploy_contract(caller_code)\n\n    @pytest.fixture\n    def tx(self, caller_contract_address: Address, initcode: Initcode, sender: EOA) -> Transaction:\n        \"\"\"Generate transaction that executes the caller contract.\"\"\"\n        return Transaction(\n            nonce=0,\n            to=caller_contract_address,\n            data=initcode,\n            gas_limit=10000000,\n            gas_price=10,\n            sender=sender,\n        )\n\n    @pytest.fixture\n    def contract_creation_gas_cost(self, fork: Fork, opcode: Op) -> int:\n        \"\"\"Calculate gas cost of the contract creation operation.\"\"\"\n        gas_costs = fork.gas_costs()\n\n        create_contract_base_gas = gas_costs.G_CREATE\n        gas_opcode_gas = gas_costs.G_BASE\n        push_dup_opcode_gas = gas_costs.G_VERY_LOW\n        calldatasize_opcode_gas = gas_costs.G_BASE\n        contract_creation_gas_usage = (\n            create_contract_base_gas\n            + gas_opcode_gas\n            + (2 * push_dup_opcode_gas)\n            + calldatasize_opcode_gas\n        )\n        if opcode == Op.CREATE2:  # Extra push operation\n            contract_creation_gas_usage += push_dup_opcode_gas\n        return contract_creation_gas_usage\n\n    @pytest.fixture\n    def initcode_word_cost(self, fork: Fork, initcode: Initcode) -> int:\n        \"\"\"Calculate gas cost charged for the initcode length.\"\"\"\n        gas_costs = fork.gas_costs()\n        return ceiling_division(len(initcode), 32) * gas_costs.G_INITCODE_WORD\n\n    @pytest.fixture\n    def create2_word_cost(self, opcode: Op, fork: Fork, initcode: Initcode) -> int:\n        \"\"\"Calculate gas cost charged for the initcode length.\"\"\"\n        if opcode == Op.CREATE:\n            return 0\n\n        gas_costs = fork.gas_costs()\n        return ceiling_division(len(initcode), 32) * gas_costs.G_KECCAK_256_WORD\n\n    @pytest.mark.xdist_group(name=\"bigmem\")\n    @pytest.mark.slow()\n    def test_create_opcode_initcode(\n        self,\n        state_test: StateTestFiller,\n        env: Environment,\n        pre: Alloc,\n        post: Alloc,\n        tx: Transaction,\n        initcode: Initcode,\n        caller_contract_address: Address,\n        creator_contract_address: Address,\n        created_contract_address: Address,\n        contract_creation_gas_cost: int,\n        initcode_word_cost: int,\n        create2_word_cost: int,\n    ) -> None:\n        \"\"\"\n        Test contract creation with valid and invalid initcode lengths.\n\n        Test contract creation via CREATE/CREATE2, parametrized by initcode\n        that is on/over the max allowed limit.\n        \"\"\"\n        if len(initcode) > Spec.MAX_INITCODE_SIZE:\n            # Call returns 0 as out of gas s[0]==1\n            post[caller_contract_address] = Account(\n                nonce=1,\n                storage={\n                    0: 1,\n                    1: 0,\n                },\n            )\n\n            post[created_contract_address] = Account.NONEXISTENT\n            post[creator_contract_address] = Account(\n                nonce=1,\n                storage={\n                    0: 0,\n                    1: 0,\n                },\n            )\n\n        else:\n            expected_gas_usage = contract_creation_gas_cost\n            # The initcode is only executed if the length check succeeds\n            expected_gas_usage += initcode.execution_gas\n            # The code is only deployed if the length check succeeds\n            expected_gas_usage += initcode.deployment_gas\n\n            # CREATE2 hashing cost should only be deducted if the initcode\n            # does not exceed the max length\n            expected_gas_usage += create2_word_cost\n\n            # Initcode word cost is only deducted if the length check\n            # succeeds\n            expected_gas_usage += initcode_word_cost\n\n            # Call returns 1 as valid initcode length s[0]==1 && s[1]==1\n            post[caller_contract_address] = Account(\n                nonce=1,\n                storage={\n                    0: 0,\n                    1: 1,\n                },\n            )\n\n            post[created_contract_address] = Account(code=initcode.deploy_code)\n            post[creator_contract_address] = Account(\n                nonce=2,\n                storage={\n                    0: created_contract_address,\n                    1: expected_gas_usage,\n                },\n            )\n\n        state_test(\n            env=env,\n            pre=pre,\n            post=post,\n            tx=tx,\n        )\n"
  },
  {
    "path": "tests/shanghai/eip3860_initcode/test_with_eof.py",
    "content": "\"\"\"\nTest CREATE / CREATE2 and EOF interaction for EIP-3860 initcode limits.\n\"\"\"\n\nimport itertools\n\nimport pytest\n\nfrom ethereum_test_tools import (\n    Account,\n    Alloc,\n    Bytecode,\n    Environment,\n    Initcode,\n    StateTestFiller,\n    Transaction,\n    compute_create_address,\n)\nfrom ethereum_test_types.eof.v1.constants import MAX_BYTECODE_SIZE, MAX_INITCODE_SIZE\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .spec import ref_spec_3860\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_3860.git_path\nREFERENCE_SPEC_VERSION = ref_spec_3860.version\n\npytestmark = pytest.mark.valid_from(\"Shanghai\")\n\n_slot = itertools.count()\nnext(_slot)  # don't use slot 0\nslot_code_worked = next(_slot)\nslot_create_address = next(_slot)\nvalue_code_worked = 0x2015\n\n\n@pytest.mark.parametrize(\n    \"opcode\",\n    [\n        Op.CREATE,\n        Op.CREATE2,\n    ],\n)\n@pytest.mark.parametrize(\n    \"init_code\",\n    [\n        pytest.param(Bytecode(), id=\"empty_initcode\"),\n        pytest.param(Initcode(initcode_length=MAX_INITCODE_SIZE), id=\"max_initcode\"),\n        pytest.param(Initcode(deploy_code=Bytecode()), id=\"empty_code\"),\n        pytest.param(Initcode(deploy_code=Op.STOP * MAX_BYTECODE_SIZE), id=\"max_code\"),\n    ],\n)\ndef test_legacy_create_edge_code_size(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    opcode: Op,\n    init_code: Bytecode,\n) -> None:\n    \"\"\"\n    Test legacy initcode and deployed code edge cases with EOF enabled.\n\n    Verify that legacy initcode/deploycode having 0 or max size continues to\n    work in the fork where EOF is enabled. Handling of EOF magic prefix and\n    version interferes with the handling of legacy creation, so a specific test\n    was proposed to test behavior doesn't change.\n    \"\"\"\n    env = Environment()\n\n    salt_param = [0] if opcode == Op.CREATE2 else []\n    factory_code = (\n        Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE)\n        + Op.SSTORE(slot_create_address, opcode(0, 0, Op.CALLDATASIZE, *salt_param))\n        + Op.SSTORE(slot_code_worked, value_code_worked)\n    )\n\n    contract_address = pre.deploy_contract(code=factory_code)\n\n    new_address = compute_create_address(\n        address=contract_address, initcode=init_code, nonce=1, opcode=opcode\n    )\n\n    post = {\n        contract_address: Account(\n            storage={slot_create_address: new_address, slot_code_worked: value_code_worked}\n        )\n    }\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=10_000_000,\n        data=init_code,\n        sender=pre.fund_eoa(),\n    )\n\n    state_test(env=env, pre=pre, post=post, tx=tx)\n"
  },
  {
    "path": "tests/shanghai/eip4895_withdrawals/__init__.py",
    "content": "\"\"\"\nTests [EIP-4895: Beacon chain withdrawals](https://eips.ethereum.org/EIPS/eip-4895).\n\"\"\"\n"
  },
  {
    "path": "tests/shanghai/eip4895_withdrawals/conftest.py",
    "content": "\"\"\"Fixtures for the EIP-4895 withdrawals tests.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_tools import Alloc, Environment\n\n\n@pytest.fixture\ndef env() -> Environment:\n    \"\"\"Environment fixture.\"\"\"\n    return Environment()\n\n\n@pytest.fixture\ndef post() -> Alloc:\n    \"\"\"Post state fixture.\"\"\"\n    return Alloc()\n"
  },
  {
    "path": "tests/shanghai/eip4895_withdrawals/spec.py",
    "content": "\"\"\"Defines EIP-4895 specification constants and functions.\"\"\"\n\nfrom dataclasses import dataclass\n\n\n@dataclass(frozen=True)\nclass ReferenceSpec:\n    \"\"\"Defines the reference spec version and git path.\"\"\"\n\n    git_path: str\n    version: str\n\n\nref_spec_4895 = ReferenceSpec(\"EIPS/eip-4895.md\", \"81af3b60b632bc9c03513d1d137f25410e3f4d34\")\n"
  },
  {
    "path": "tests/shanghai/eip4895_withdrawals/test_withdrawals.py",
    "content": "\"\"\"\nTests for [EIP-4895: Beacon chain withdrawals](https://eips.ethereum.org/EIPS/eip-4895).\n\"\"\"\n\nfrom enum import Enum, unique\nfrom typing import Dict, List, Mapping\n\nimport pytest\n\nfrom ethereum_clis import TransitionTool\nfrom ethereum_test_forks import Cancun, Fork\nfrom ethereum_test_tools import (\n    EOA,\n    Account,\n    Address,\n    Alloc,\n    Block,\n    BlockchainTestFiller,\n    Hash,\n    Transaction,\n    TransactionException,\n    Withdrawal,\n)\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .spec import ref_spec_4895\n\nREFERENCE_SPEC_GIT_PATH = ref_spec_4895.git_path\nREFERENCE_SPEC_VERSION = ref_spec_4895.version\n\npytestmark = pytest.mark.valid_from(\"Shanghai\")\n\nONE_GWEI = 10**9\n\n\n@pytest.mark.parametrize(\n    \"test_case\",\n    [\n        pytest.param(\n            \"tx_in_withdrawals_block\",\n            id=\"tx_in_withdrawals_block\",\n            marks=pytest.mark.exception_test,\n        ),\n        pytest.param(\"tx_after_withdrawals_block\", id=\"tx_after_withdrawals_block\"),\n    ],\n)\nclass TestUseValueInTx:\n    \"\"\"\n    Test that the value from a withdrawal can be used in a transaction.\n\n    1. `tx_in_withdrawals_block`: Test that the withdrawal value can not be\n    used by a transaction in the same block as the withdrawal.\n\n    2. `tx_after_withdrawals_block`: Test that the withdrawal value can be used\n    by a transaction in the subsequent block.\n    \"\"\"\n\n    @pytest.fixture\n    def sender(self, pre: Alloc) -> EOA:\n        \"\"\"Funded EOA used for sending transactions.\"\"\"\n        return pre.fund_eoa(1)\n\n    @pytest.fixture\n    def recipient(self, pre: Alloc) -> EOA:\n        \"\"\"Funded EOA used for sending transactions.\"\"\"\n        return pre.fund_eoa(0)\n\n    @pytest.fixture\n    def tx(self, sender: EOA, recipient: EOA) -> Transaction:  # noqa: D102\n        # Transaction sent from the `sender`, which has 1 wei balance at start\n        return Transaction(\n            gas_price=ONE_GWEI,\n            gas_limit=21_000,\n            to=recipient,\n            sender=sender,\n        )\n\n    @pytest.fixture\n    def withdrawal(self, tx: Transaction, sender: EOA) -> Withdrawal:  # noqa: D102\n        return Withdrawal(\n            index=0,\n            validator_index=0,\n            address=sender,\n            amount=tx.gas_limit + 1,\n        )\n\n    @pytest.fixture\n    def blocks(self, tx: Transaction, withdrawal: Withdrawal, test_case: str) -> List[Block]:  # noqa: D102\n        if test_case == \"tx_in_withdrawals_block\":\n            return [\n                Block(\n                    txs=[tx.with_error(TransactionException.INSUFFICIENT_ACCOUNT_FUNDS)],\n                    withdrawals=[\n                        withdrawal,\n                    ],\n                    exception=TransactionException.INSUFFICIENT_ACCOUNT_FUNDS,\n                )\n            ]\n        if test_case == \"tx_after_withdrawals_block\":\n            return [\n                Block(\n                    txs=[],\n                    withdrawals=[\n                        withdrawal,\n                    ],\n                ),\n                Block(\n                    txs=[tx],\n                    withdrawals=[],\n                ),\n            ]\n        raise Exception(\"Invalid test case.\")\n\n    @pytest.fixture\n    def post(self, sender: EOA, test_case: str) -> Dict:  # noqa: D102\n        if test_case == \"tx_in_withdrawals_block\":\n            return {}\n        if test_case == \"tx_after_withdrawals_block\":\n            return {sender: Account(balance=ONE_GWEI + 1)}\n        raise Exception(\"Invalid test case.\")\n\n    def test_use_value_in_tx(\n        self,\n        pre: Alloc,\n        blockchain_test: BlockchainTestFiller,\n        post: dict,\n        blocks: List[Block],\n    ) -> None:\n        \"\"\"Test sending withdrawal value in a transaction.\"\"\"\n        blockchain_test(pre=pre, post=post, blocks=blocks)\n\n\ndef test_use_value_in_contract(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"Test sending value from contract that has not received a withdrawal.\"\"\"\n    sender = pre.fund_eoa()\n    recipient = pre.fund_eoa(1)\n\n    contract_address = pre.deploy_contract(\n        Op.SSTORE(\n            Op.NUMBER,\n            Op.CALL(address=recipient, value=1000000000),\n        )\n    )\n    (tx_0, tx_1) = (\n        Transaction(\n            sender=sender,\n            value=0,\n            gas_limit=100_000,\n            to=contract_address,\n        )\n        for _ in range(2)\n    )\n\n    withdrawal = Withdrawal(\n        index=0,\n        validator_index=0,\n        address=contract_address,\n        amount=1,\n    )\n\n    blocks = [\n        Block(\n            txs=[tx_0],\n            withdrawals=[withdrawal],\n        ),\n        Block(\n            txs=[tx_1],  # Same tx again, just increase nonce\n        ),\n    ]\n    post = {\n        contract_address: Account(\n            storage={\n                0x1: 0x0,  # Call fails on the first attempt\n                0x2: 0x1,  # Succeeds on the second attempt\n            }\n        ),\n        recipient: Account(\n            balance=ONE_GWEI + 1,\n        ),\n    }\n\n    blockchain_test(pre=pre, post=post, blocks=blocks)\n\n\ndef test_balance_within_block(blockchain_test: BlockchainTestFiller, pre: Alloc) -> None:\n    \"\"\"\n    Test withdrawal balance increase within the same block in a contract call.\n    \"\"\"\n    save_balance_on_block_number = Op.SSTORE(\n        Op.NUMBER,\n        Op.BALANCE(Op.CALLDATALOAD(0)),\n    )\n    sender = pre.fund_eoa()\n    recipient = pre.fund_eoa(ONE_GWEI)\n    contract_address = pre.deploy_contract(save_balance_on_block_number)\n\n    blocks = [\n        Block(\n            txs=[\n                Transaction(\n                    sender=sender,\n                    gas_limit=100000,\n                    to=contract_address,\n                    data=Hash(recipient, left_padding=True),\n                )\n            ],\n            withdrawals=[\n                Withdrawal(\n                    index=0,\n                    validator_index=0,\n                    address=recipient,\n                    amount=1,\n                )\n            ],\n        ),\n        Block(\n            txs=[\n                Transaction(\n                    sender=sender,\n                    gas_limit=100000,\n                    to=contract_address,\n                    data=Hash(recipient, left_padding=True),\n                )\n            ]\n        ),\n    ]\n\n    post = {\n        contract_address: Account(\n            storage={\n                1: ONE_GWEI,\n                2: 2 * ONE_GWEI,\n            }\n        )\n    }\n\n    blockchain_test(pre=pre, post=post, blocks=blocks)\n\n\n@pytest.mark.parametrize(\"test_case\", [\"single_block\", \"multiple_blocks\"])\nclass TestMultipleWithdrawalsSameAddress:\n    \"\"\"\n    Test that multiple withdrawals can be sent to the same address in.\n\n    1. A single block.\n\n    2. Multiple blocks.\n    \"\"\"\n\n    @pytest.fixture\n    def addresses(self, fork: Fork) -> List[Address]:  # noqa: D102\n        addresses = [Address(p) for p in fork.precompiles(block_number=0, timestamp=0)]\n        return addresses + [Address(2**160 - 1)]\n\n    @pytest.fixture\n    def blocks(self, addresses: Address, test_case: str) -> List[Block]:  # noqa: D102\n        if test_case == \"single_block\":\n            # Many repeating withdrawals of the same accounts in the same\n            # block.\n            return [\n                Block(\n                    withdrawals=[\n                        Withdrawal(\n                            index=i,\n                            validator_index=i,\n                            address=addresses[i % len(addresses)],\n                            amount=1,\n                        )\n                        for i in range(len(addresses) * 16)\n                    ],\n                ),\n            ]\n        if test_case == \"multiple_blocks\":\n            # Similar test but now use multiple blocks each with multiple\n            # withdrawals to the same withdrawal address.\n            return [\n                Block(\n                    withdrawals=[\n                        Withdrawal(\n                            index=i * 16 + j,\n                            validator_index=i,\n                            address=addresses[i],\n                            amount=1,\n                        )\n                        for j in range(16)\n                    ],\n                )\n                for i in range(len(addresses))\n            ]\n        raise Exception(\"Invalid test case.\")\n\n    def test_multiple_withdrawals_same_address(\n        self,\n        blockchain_test: BlockchainTestFiller,\n        test_case: str,\n        pre: Alloc,\n        addresses: List[Address],\n        blocks: List[Block],\n    ) -> None:\n        \"\"\"\n        Test withdrawals to the same address multiple times in the same block.\n        \"\"\"\n        # Expected post is the same for both test cases.\n        post = {}\n        for addr in addresses:\n            post[addr] = Account(\n                balance=16 * ONE_GWEI,\n                storage={},\n            )\n\n        blockchain_test(pre=pre, post=post, blocks=blocks, tag=test_case)\n\n\ndef test_many_withdrawals(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    Test an unexpected high number of withdrawals in a single block.\n    \"\"\"\n    n = 400\n    withdrawals = []\n    post = {}\n    for i in range(n):\n        addr = pre.deploy_contract(Op.SSTORE(Op.NUMBER, 1))\n        amount = i * 1\n        withdrawals.append(\n            Withdrawal(\n                index=i,\n                validator_index=i,\n                address=addr,\n                amount=amount,\n            )\n        )\n        post[addr] = Account(\n            code=Op.SSTORE(Op.NUMBER, 1),\n            balance=amount * ONE_GWEI,\n            storage={},\n        )\n\n    blocks = [\n        Block(\n            withdrawals=withdrawals,\n        ),\n    ]\n\n    blockchain_test(pre=pre, post=post, blocks=blocks)\n\n\ndef test_self_destructing_account(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    fork: Fork,\n) -> None:\n    \"\"\"\n    Test withdrawals can be done to self-destructed accounts.\n\n    Account `0x100` self-destructs and sends all its balance to `0x200`. Then,\n    a withdrawal is received at `0x100` with 99 wei.\n    \"\"\"\n    self_destruct_code = Op.SELFDESTRUCT(Op.CALLDATALOAD(0))\n    sender = pre.fund_eoa()\n    recipient = pre.fund_eoa(1)\n    self_destruct_contract_address = pre.deploy_contract(\n        self_destruct_code,\n        balance=100 * ONE_GWEI,\n    )\n\n    tx_1 = Transaction(\n        # Transaction sent from the `sender`, that calls a\n        # self-destructing contract.\n        sender=sender,\n        gas_limit=100000,\n        to=self_destruct_contract_address,\n        data=Hash(recipient, left_padding=True),\n    )\n\n    withdrawal = Withdrawal(\n        index=0,\n        validator_index=0,\n        address=self_destruct_contract_address,\n        amount=(99),\n    )\n\n    block = Block(\n        txs=[tx_1],\n        withdrawals=[withdrawal],\n    )\n\n    post = {\n        self_destruct_contract_address: Account(\n            code=self_destruct_code if fork >= Cancun else b\"\",\n            balance=(99 * ONE_GWEI),\n        ),\n        recipient: Account(\n            code=b\"\",\n            balance=(100 * ONE_GWEI) + 1,\n        ),\n    }\n\n    blockchain_test(pre=pre, post=post, blocks=[block])\n\n\n@pytest.mark.parametrize(\n    \"include_value_in_tx\",\n    [False, True],\n    ids=[\"without_tx_value\", \"with_tx_value\"],\n)\ndef test_newly_created_contract(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    include_value_in_tx: bool,\n) -> None:\n    \"\"\"Test withdrawing to a newly created contract.\"\"\"\n    sender = pre.fund_eoa()\n    initcode = Op.RETURN(0, 1)\n    tx = Transaction(\n        # Transaction sent from the `sender`, that creates a\n        # new contract.\n        sender=sender,\n        gas_limit=1000000,\n        to=None,\n        value=ONE_GWEI if include_value_in_tx else 0,\n        data=initcode,\n    )\n    created_contract = tx.created_contract\n\n    withdrawal = Withdrawal(\n        index=0,\n        validator_index=0,\n        address=created_contract,\n        amount=1,\n    )\n\n    created_contract_balance = ONE_GWEI\n    if include_value_in_tx:\n        created_contract_balance = 2 * ONE_GWEI\n\n    post = {\n        created_contract: Account(\n            code=Op.STOP,\n            balance=created_contract_balance,\n        ),\n    }\n\n    block = Block(\n        txs=[tx],\n        withdrawals=[withdrawal],\n    )\n\n    blockchain_test(pre=pre, post=post, blocks=[block])\n\n\ndef test_no_evm_execution(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"Test withdrawals don't trigger EVM execution.\"\"\"\n    sender = pre.fund_eoa()\n    contracts = [pre.deploy_contract(Op.SSTORE(Op.NUMBER, 1)) for _ in range(4)]\n    blocks = [\n        Block(\n            txs=[\n                Transaction(\n                    sender=sender,\n                    gas_limit=100000,\n                    to=contracts[2],\n                ),\n                Transaction(\n                    sender=sender,\n                    gas_limit=100000,\n                    to=contracts[3],\n                ),\n            ],\n            withdrawals=[\n                Withdrawal(\n                    index=0,\n                    validator_index=0,\n                    address=contracts[0],\n                    amount=1,\n                ),\n                Withdrawal(\n                    index=1,\n                    validator_index=1,\n                    address=contracts[1],\n                    amount=1,\n                ),\n            ],\n        ),\n        Block(\n            txs=[\n                Transaction(\n                    sender=sender,\n                    gas_limit=100000,\n                    to=contracts[0],\n                ),\n                Transaction(\n                    sender=sender,\n                    gas_limit=100000,\n                    to=contracts[1],\n                ),\n            ],\n            withdrawals=[\n                Withdrawal(\n                    index=0,\n                    validator_index=0,\n                    address=contracts[2],\n                    amount=1,\n                ),\n                Withdrawal(\n                    index=1,\n                    validator_index=1,\n                    address=contracts[3],\n                    amount=1,\n                ),\n            ],\n        ),\n    ]\n\n    post = {\n        contracts[0]: Account(storage={2: 1}),\n        contracts[1]: Account(storage={2: 1}),\n        contracts[2]: Account(storage={1: 1}),\n        contracts[3]: Account(storage={1: 1}),\n    }\n\n    blockchain_test(pre=pre, post=post, blocks=blocks)\n\n\n@unique\nclass ZeroAmountTestCases(Enum):  # noqa: D101\n    TWO_ZERO = \"two_withdrawals_no_value\"\n    THREE_ONE_WITH_VALUE = \"three_withdrawals_one_with_value\"\n    FOUR_ONE_WITH_MAX = \"four_withdrawals_one_with_value_one_with_max\"\n    FOUR_ONE_WITH_MAX_REVERSED = \"four_withdrawals_one_with_value_one_with_max_reversed_order\"\n\n\n@pytest.mark.parametrize(\n    \"test_case\",\n    list(ZeroAmountTestCases),\n    ids=[case.value for case in ZeroAmountTestCases],\n)\ndef test_zero_amount(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    test_case: ZeroAmountTestCases,\n) -> None:\n    \"\"\"\n    Test withdrawal scenarios with a zero amount in a single block.\n\n    All the withdrawals in the following scenarios are included in one block.\n\n    1. Two withdrawals of zero amount to two different addresses; one to an\n        untouched account, one to an account with a balance.\n\n    2. As 1., but with an additional withdrawal with positive value.\n\n    3. As 2., but with an additional withdrawal containing the maximum value\n       possible.\n\n    4. As 3., but with order of withdrawals in the block reversed.\n    \"\"\"\n    empty_accounts = [pre.fund_eoa(0) for _ in range(3)]\n    zero_balance_contract = pre.deploy_contract(Op.STOP)\n\n    all_withdrawals = [\n        # No value, untouched account\n        Withdrawal(\n            index=0,\n            validator_index=0,\n            address=empty_accounts[0],\n            amount=0,\n        ),\n        # No value, touched account\n        Withdrawal(\n            index=0,\n            validator_index=0,\n            address=zero_balance_contract,\n            amount=0,\n        ),\n        # Withdrawal with value\n        Withdrawal(\n            index=1,\n            validator_index=0,\n            address=empty_accounts[1],\n            amount=1,\n        ),\n        # Withdrawal with maximum amount\n        Withdrawal(\n            index=2,\n            validator_index=0,\n            address=empty_accounts[2],\n            amount=2**64 - 1,\n        ),\n    ]\n    all_post = {\n        empty_accounts[0]: Account.NONEXISTENT,\n        zero_balance_contract: Account(code=Op.STOP, balance=0),\n        empty_accounts[1]: Account(balance=ONE_GWEI),\n        empty_accounts[2]: Account(balance=(2**64 - 1) * ONE_GWEI),\n    }\n\n    withdrawals: List[Withdrawal] = []\n    post: Mapping[Address, Account | object] = {}\n    if test_case == ZeroAmountTestCases.TWO_ZERO:\n        withdrawals = all_withdrawals[0:2]\n        post = {\n            account: all_post[account]\n            for account in post\n            if account in [empty_accounts[0], zero_balance_contract]\n        }\n    elif test_case == ZeroAmountTestCases.THREE_ONE_WITH_VALUE:\n        withdrawals = all_withdrawals[0:3]\n        post = {\n            account: all_post[account]\n            for account in post\n            if account\n            in [\n                empty_accounts[0],\n                zero_balance_contract,\n                empty_accounts[1],\n            ]\n        }\n    elif test_case == ZeroAmountTestCases.FOUR_ONE_WITH_MAX:\n        withdrawals = all_withdrawals\n        post = all_post\n    elif test_case == ZeroAmountTestCases.FOUR_ONE_WITH_MAX_REVERSED:\n        for i, w in enumerate(reversed(all_withdrawals)):\n            withdrawals.append(\n                Withdrawal(\n                    index=i,\n                    validator_index=w.validator_index,\n                    address=w.address,\n                    amount=w.amount,\n                )\n            )\n        post = all_post\n\n    blockchain_test(\n        pre=pre,\n        # TODO: Fix in BlockchainTest? post: Mapping[str, Account | object]\n        # to allow for Account.NONEXISTENT\n        post=post,\n        blocks=[Block(withdrawals=withdrawals)],\n        tag=test_case.value,\n    )\n\n\n@pytest.mark.xdist_group(name=\"bigmem\")\ndef test_large_amount(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    Test withdrawals that have a large gwei amount.\n\n    Test such that that (gwei * 1e9) could overflow uint64 but not uint256.\n    \"\"\"\n    withdrawals: List[Withdrawal] = []\n    amounts: List[int] = [\n        (2**35),\n        (2**64) - 1,\n        (2**63) + 1,\n        (2**63),\n        (2**63) - 1,\n    ]\n\n    post = {}\n\n    for i, amount in enumerate(amounts):\n        addr = pre.fund_eoa(0)\n        withdrawals.append(\n            Withdrawal(\n                index=i,\n                validator_index=i,\n                address=addr,\n                amount=amount,\n            )\n        )\n        post[addr] = Account(balance=(amount * ONE_GWEI))\n\n    blocks = [\n        Block(\n            withdrawals=withdrawals,\n        )\n    ]\n    blockchain_test(pre=pre, post=post, blocks=blocks)\n\n\n@pytest.mark.xdist_group(name=\"bigmem\")\n@pytest.mark.parametrize(\"amount\", [0, 1])\n@pytest.mark.with_all_precompiles\n@pytest.mark.slow()\ndef test_withdrawing_to_precompiles(\n    blockchain_test: BlockchainTestFiller,\n    pre: Alloc,\n    precompile: int,\n    amount: int,\n    t8n: TransitionTool,\n) -> None:\n    \"\"\"Test withdrawing to all precompiles for a given fork.\"\"\"\n    sender = pre.fund_eoa()\n    post: Dict = {}\n\n    blocks = [\n        # First block performs the withdrawal\n        Block(\n            withdrawals=[\n                Withdrawal(\n                    index=0,\n                    validator_index=0,\n                    address=Address(precompile),\n                    amount=amount,\n                )\n            ]\n        ),\n        # Second block sends a transaction to the precompile\n        Block(\n            txs=[\n                Transaction(\n                    sender=sender,\n                    gas_limit=100000,\n                    to=Address(precompile),\n                ),\n            ],\n        ),\n    ]\n    blockchain_test(pre=pre, post=post, blocks=blocks)\n"
  },
  {
    "path": "tests/static/README.md",
    "content": "# Static Tests\n\nThis directory contains static test files that were originally located at [ethereum/tests](https://github.com/ethereum/tests/tree/develop/src). These files should not be modified directly.\n\n## Important Policy\n\nIf you find a test that is broken or needs updating:\n\n1. **DO NOT** modify the static test files directly.\n2. Instead, create or update the corresponding Python test in the appropriate `tests/<fork>` folder.\n3. Delete the original static test filler file(s).\n4. Open a PR containing the new tests and the static tests deletion, and make sure that there is no coverage drop.\n"
  },
  {
    "path": "tests/static/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/Cancun/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/Cancun/stEIP1153_transientStorage/10_revertUndoesStoreAfterReturnFiller.yml",
    "content": "# 10\n# Revert undoes transient storage writes from inner calls that successfully returned.\n# TSTORE(x, y), CALL(self, ...), CALL(self, ...), TSTORE(x, y + 1), RETURN, REVERT, TLOAD(x) returns y\n#\n# Expect slot 0 to have 5 from the first tstore & tload.\n# Expect slot 1 to have 0. Call was unsuccessful.\n# Expect slot 2 to have 1. Inner call was successful.\n# Expect slot 3 to have 5. Should load the value stored before the unsuccessful call.\n\n10_revertUndoesStoreAfterReturn:\n  _info:\n    comment: Revert undoes the transient storage writes after a successful call.\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentNumber: 1\n    currentTimestamp: 1000\n    currentGasLimit: 0x10000000000000\n    currentBaseFee: 10\n\n  pre:\n    <contract:target:0xa00000000000000000000000000000000000000a>:\n      balance: 1000000000000000000\n      nonce: 0\n      code: |\n        :yul {\n          switch selector()\n\n          case 0x70ac643e { // doFirstCall()\n            doFirstCall()\n          }\n\n          case 0x76b85d23 { // doCallThenRevert()\n            doCallThenRevert()\n          }\n\n          case 0x4ccca553 { // doSuccessfulStore()\n            doSuccessfulStore()\n          }\n\n          function doFirstCall() {\n            verbatim_2i_0o(hex\"5D\", 0, 5)\n\n            let v := verbatim_1i_1o(hex\"5C\", 0)\n            sstore(0, v)\n\n            mstore(0, hex\"76b85d23\") // calls doCallThenRevert()\n            let fail := call(gas(), address(), 0, 0, 32, 0, 32)\n\n            sstore(1, fail) // should be 0 (revert)\n            sstore(2, mload(0)) // load 1 (successful call)\n\n            let val := verbatim_1i_1o(hex\"5C\", 0)\n            sstore(3, val)\n          }\n\n          \n          function doCallThenRevert() {\n            mstore(0, hex\"4ccca553\") // calls doSuccessfulStore()\n            let s := call(gas(), address(), 0, 0, 32, 0, 0)\n            mstore(0, s)\n            revert(0, 32)\n          }\n\n          function doSuccessfulStore() {\n            verbatim_2i_0o(hex\"5D\", 0, 6)\n          }\n\n          function doReenter(fs) -> f {\n             mstore(0, fs)\n             f := call(gas(), address(), 0, 0, 32, 0, 0)\n           }\n\n          function selector() -> s {\n            let value := calldataload(0)\n            s := shr(224, value)\n          }\n        }\n      storage: { 0x01: 0xffff }\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: 1000000000000000000000\n      code: \"0x\"\n      nonce: 0\n      storage: {}\n\n  transaction:\n    data:\n      - data: :abi doFirstCall()\n        accessList: []\n    gasLimit:\n      - \"400000\"\n    nonce: 0\n    to: <contract:target:0xa00000000000000000000000000000000000000a>\n    value:\n      - 0\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    maxPriorityFeePerGas: 0\n    maxFeePerGas: 2000\n\n  expect:\n    - network:\n        - \">=Cancun\"\n      result:\n        <contract:target:0xa00000000000000000000000000000000000000a>:\n          storage:\n            0x00: 5\n            0x01: 0\n            0x02: 1\n            0x03: 5\n"
  },
  {
    "path": "tests/static/state_tests/Cancun/stEIP1153_transientStorage/14_revertAfterNestedStaticcallFiller.yml",
    "content": "# 14\n# Transient storage cannot be manipulated in a nested static context: TSTORE(x, y), STATICCALL(self, ...), CALL(self, ...), TSTORE(x, z) reverts\n#\n# Expect slot 0 to have 10 from the first tstore & tload.\n# Expect slot 1 to have 0 (for revert).\n# Expect slot 2 to have 1 (for success).\n# Expect slot 3 to have 10 (original value).\n\n14_revertAfterNestedStaticcall:\n  _info:\n    comment: Transient storage can't be manipulated from nested staticcall.\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentNumber: 1\n    currentTimestamp: 1000\n    currentGasLimit: 0x10000000000000\n    currentBaseFee: 10\n\n  pre:\n    <contract:target:0xa00000000000000000000000000000000000000a>:\n      balance: 1000000000000000000\n      nonce: 0\n      code: |\n        :yul {\n          switch selector()\n\n          case 0xf5f40590 { // doStoreAndStaticCall()\n            doStoreAndStaticCall()\n          }\n\n          case 0xf8dfc2d0 { // doCallToStore()\n            doCallToStore()\n          }\n\n          case 0x62fdb9be { // doStore()\n            doStore()\n          }\n\n          function doStoreAndStaticCall() {\n            verbatim_2i_0o(hex\"5D\", 0, 10)\n\n            let v := verbatim_1i_1o(hex\"5C\", 0)\n            sstore(0, v)\n\n            mstore(0, hex\"f8dfc2d0\") // doCallToStore()\n            let success := staticcall(0xffff, address(), 0, 32, 0, 32)\n            \n            sstore(1, mload(0)) // should be 0 from nested unsuccessful call\n            sstore(2, success) // should be 1\n\n            let val := verbatim_1i_1o(hex\"5C\", 0)\n            sstore(3, val)\n          }\n          \n          function doCallToStore() {\n            mstore(0, hex\"62fdb9be\") // doStore()\n            let f := call(gas(), address(), 0, 0, 32, 0, 0) // call with zero-value\n            mstore(0, f)\n            return(0, 32)\n          }\n\n          function doStore() {\n            verbatim_2i_0o(hex\"5D\", 0, 11) // will revert\n          }\n\n          function selector() -> s {\n            let value := calldataload(0)\n            s := shr(224, value)\n          }\n        }\n      storage: { 0x01: 0xffff }\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: 1000000000000000000000\n      code: \"0x\"\n      nonce: 0\n      storage: {}\n\n  transaction:\n    data:\n      - data: :abi doStoreAndStaticCall()\n        accessList: []\n    gasLimit:\n      - \"400000\"\n    nonce: 0\n    to: <contract:target:0xa00000000000000000000000000000000000000a>\n    value:\n      - 0\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    maxPriorityFeePerGas: 0\n    maxFeePerGas: 2000\n\n  expect:\n    - network:\n        - \">=Cancun\"\n      result:\n        <contract:target:0xa00000000000000000000000000000000000000a>:\n          storage:\n            0x00: 10\n            0x01: 0\n            0x02: 1\n            0x03: 10\n"
  },
  {
    "path": "tests/static/state_tests/Cancun/stEIP1153_transientStorage/15_tstoreCannotBeDosdFiller.yml",
    "content": "# 15\n# Transient storage cannot be DOS’d: CALL(self, ...), TSTORE(x, y), TSTORE(x + 1, y), TSTORE(x + 2, y), ... ,TSTORE(x + n, y), REVERT, TLOAD(x) returns 0 and runs in under 15 seconds\n#\n# Expect slot 0 to have 0. Call fails.\n# Expect slot 1 to have 0. Loading returns 0.\n\n15_tstoreCannotBeDosd:\n  _info:\n    comment: Transient storage cannot be DOS’d.\n    pytest_marks:\n      - skip  # Superseded by tests/benchmark/test_worst_compute.py::test_worst_tload, test_worst_tstore\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentNumber: 1\n    currentTimestamp: 1000\n    currentGasLimit: 0x10000000000000\n    currentBaseFee: 10\n\n  pre:\n    <contract:target:0xa00000000000000000000000000000000000000a>:\n      balance: 1000000000000000000\n      nonce: 0\n      code: |\n        :yul {\n          switch selector()\n\n          case 0x883264e8 { // doCall(uint)\n            let n:= calldataload(4)\n            doCall(n)\n          }\n\n          case 0xf7d6c0eb { // doNStores(n)\n            let n := calldataload(32)\n            doNStores(n)\n          }\n\n          function doCall(n) {\n            mstore(0, hex\"f7d6c0eb\") // doNStores(n)\n            mstore(32, n)\n            let t := call(gas(), address(), 0, 0, 64, 0, 32)\n            sstore(0, t) // should revert\n\n            sstore(2, mload(0))\n\n            let v := verbatim_1i_1o(hex\"5C\", 0)\n            sstore(1, v)\n          }\n\n          function doNStores(n) {\n            let i\n            for {i := 0 } lt(i, n) { i := add(i, 1) } {\n              verbatim_2i_0o(hex\"5D\", i, 48)\n            }\n            mstore(0, i)\n            revert(0, 32)\n          }\n\n          function selector() -> s {\n            let value := calldataload(0)\n            s := shr(224, value)\n          }\n        }\n      storage: { 0x00: 0xffff, 0x01: 0xffff }\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: 1000000000000000000000\n      code: \"0x\"\n      nonce: 0\n      storage: {}\n\n  transaction:\n    data:\n      - data: :abi doCall(uint) 0x249F0\n        accessList: []\n    gasLimit:\n      - \"16777216\"\n    nonce: 0\n    to: <contract:target:0xa00000000000000000000000000000000000000a>\n    value:\n      - 0\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    maxPriorityFeePerGas: 0\n    maxFeePerGas: 2000\n\n  expect:\n    - network:\n        - \">=Cancun\"\n      result:\n        <contract:target:0xa00000000000000000000000000000000000000a>:\n          storage:\n            0x00: 0\n            0x01: 0\n            0x02: 0x249F0\n"
  },
  {
    "path": "tests/static/state_tests/Cancun/stEIP1153_transientStorage/17_tstoreGasFiller.yml",
    "content": "# 17\n# Tstore arbitrary value in arbitrary slot costs 100 gas : TSTORE(x, y) costs 100 gas.\n#\n# Expect storage slot 1 to be 100. Cost of tstore.\n\n17_tstoreGas:\n  _info:\n    comment: Tstore arbitrary value in arbitrary slot costs 100 gas.\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentNumber: 1\n    currentTimestamp: 1000\n    currentGasLimit: 0x10000000000000\n    currentBaseFee: 10\n\n  pre:\n    <contract:target:0xa00000000000000000000000000000000000000a>:\n      balance: 1000000000000000000\n      nonce: 0\n      code: |\n        :yul {\n          let extraOpcodes := 7\n          \n          // calculate tstore gas\n          let g1 := gas()\n          verbatim_2i_0o(hex\"5D\", 0, 3)\n          let g2 := gas()\n          sstore(1, sub(sub(g1, g2), extraOpcodes))\n        }\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: 1000000000000000000000\n      code: \"0x\"\n      nonce: 0\n      storage: {}\n\n  transaction:\n    data:\n      - data: 0x\n        accessList: []\n    gasLimit:\n      - \"400000\"\n    nonce: 0\n    to: <contract:target:0xa00000000000000000000000000000000000000a>\n    value:\n      - 0\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    maxPriorityFeePerGas: 0\n    maxFeePerGas: 2000\n\n  expect:\n    - network:\n        - \">=Cancun\"\n      result:\n        <contract:target:0xa00000000000000000000000000000000000000a>:\n          storage:\n            0x01: 100\n"
  },
  {
    "path": "tests/static/state_tests/Cancun/stEIP1153_transientStorage/19_oogUndoesTransientStoreFiller.yml",
    "content": "# 19\n# Out of gas undoes the transient storage write from reentrant subcall: TSTORE(x, y), CALL(self, ...), TSTORE(x, z), where oog reverts subcall\n#\n# Expect slot 0 to have 0x4e from tstore.\n# Expect slot 1 to have 0x4e from the original tstore.\n# Expect slot 2 to have 0 for unsuccessful call.\n\n19_oogUndoesTransientStore:\n  _info:\n    comment: Out of gas undoes the transient storage writes from a call.\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentNumber: 1\n    currentTimestamp: 1000\n    currentGasLimit: 0x10000000000000\n    currentBaseFee: 10\n\n  pre:\n    <contract:target:0xa00000000000000000000000000000000000000a>:\n      balance: 1000000000000000000\n      nonce: 0\n      code: |\n        :yul {\n          switch selector()\n\n          case 0xe2da2eb0 { // doStoreAndRevert()\n            doStoreAndRevert()\n          }\n\n          case 0x3f371692 { // doReenter()\n            doReenter()\n          }\n\n          function doStoreAndRevert() {\n            verbatim_2i_0o(hex\"5D\", 0, 11)\n            let hash := keccak256(0, 0x2fffff)\n          }\n\n          function doReenter() {\n            verbatim_2i_0o(hex\"5D\", 0, 0x4e)\n            let v := verbatim_1i_1o(hex\"5C\", 0)\n            sstore(0, v)\n\n            mstore(0, hex\"e2da2eb0\") // doStoreAndRevert() runs out of gas\n            let fail := call(0xC350, address(), 0, 0, 32, 0, 0)\n            sstore(2, fail)\n\n            sstore(1, verbatim_1i_1o(hex\"5C\", 0))\n          }\n\n          function selector() -> s {\n            let value := calldataload(0)\n            s := shr(224, value)\n          }\n        }\n      storage: { 0x00: 0xffff, 0x01: 0xffff, 0x02: 0xffff }\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: 1000000000000000000000\n      code: \"0x\"\n      nonce: 0\n      storage: {}\n\n  transaction:\n    data:\n      - data: :abi doReenter()\n        accessList: []\n    gasLimit:\n      - \"400000\"\n    nonce: 0\n    to: <contract:target:0xa00000000000000000000000000000000000000a>\n    value:\n      - 0\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    maxPriorityFeePerGas: 0\n    maxFeePerGas: 2000\n\n  expect:\n    - network:\n        - \">=Cancun\"\n      result:\n        <contract:target:0xa00000000000000000000000000000000000000a>:\n          storage:\n            0x00: 0x4e\n            0x01: 0x4e\n            0x02: 0\n"
  },
  {
    "path": "tests/static/state_tests/Cancun/stEIP1153_transientStorage/21_tstoreCannotBeDosdOOOFiller.yml",
    "content": "# 21\n# Similar to 15. Transient storage cannot be DOS’d: CALL(self, ...), TSTORE(x, y), TSTORE(x + 1, y), TSTORE(x + 2, y), ... ,TSTORE(x + n, y), REVERT, TLOAD(x) returns 0 and runs in under 15 seconds\n# tstore in a non-monotonic order skipping some slots.\n#\n# Expect slot 0 to have 0. Call fails.\n# Expect slot 1 to have 0. Loading returns 0.\n\n21_tstoreCannotBeDosdOOO:\n  _info:\n    comment: Transient storage cannot be DOS’d.\n    pytest_marks:\n      - skip  # Superseded by tests/benchmark/test_worst_compute.py::test_worst_tload, test_worst_tstore\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentNumber: 1\n    currentTimestamp: 1000\n    currentGasLimit: 0x10000000000000\n    currentBaseFee: 10\n\n  pre:\n    <contract:target:0xa00000000000000000000000000000000000000a>:\n      balance: 1000000000000000000\n      nonce: 0\n      code: |\n        :yul {\n          switch selector()\n\n          case 0x883264e8 { // doCall(uint)\n            let n:= calldataload(4)\n            doCall(n)\n          }\n\n          case 0xf7d6c0eb { // doNStores(n)\n            let n := calldataload(32)\n            doNStores(n)\n          }\n\n          default {\n            sstore(0, 5)\n          }\n          \n          function doCall(n) {\n            mstore(0, hex\"f7d6c0eb\") // doNStores(n)\n            mstore(32, n)\n            let t := call(gas(), address(), 0, 0, 64, 0, 32)\n            sstore(0, t) // should revert\n\n            sstore(2, mload(0))\n\n            let v := verbatim_1i_1o(hex\"5C\", 0)\n            sstore(1, v)\n          }\n\n          function doNStores(n) {\n            let i\n            for {i := 0 } lt(i, n) { i := add(i, 1) } {\n              let even := mod(i, 2)\n              let index\n              switch even \n              case 0 {\n                index := i\n                verbatim_2i_0o(hex\"5D\", i, 600)\n              }\n              case 1 {\n                index := sub(0, i)\n                 verbatim_2i_0o(hex\"5D\", index, 600)\n               }\n            }\n            mstore(0, i)\n            revert(0, 32)\n          }\n\n          function selector() -> s {\n            let value := calldataload(0)\n            s := shr(224, value)\n          }\n        }\n      storage: { 0x00: 0xffff, 0x01: 0xffff, 0x02: 0xffff }\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: 1000000000000000000000\n      code: \"0x\"\n      nonce: 0\n      storage: {}\n\n  transaction:\n    data:\n      - data: :abi doCall(uint) 0x186A0\n        accessList: []\n    gasLimit:\n      - \"16777216\"\n    nonce: 0\n    to: <contract:target:0xa00000000000000000000000000000000000000a>\n    value:\n      - 0\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    maxPriorityFeePerGas: 0\n    maxFeePerGas: 2000\n\n  expect:\n    - network:\n        - \">=Cancun\"\n      result:\n        <contract:target:0xa00000000000000000000000000000000000000a>:\n          storage:\n            0x00: 0\n            0x01: 0\n            0x02: 0x186A0\n"
  },
  {
    "path": "tests/static/state_tests/Cancun/stEIP1153_transientStorage/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/Cancun/stEIP1153_transientStorage/transStorageOKFiller.yml",
    "content": "# Test successful uses of TLOAD and TSTORE\n# Tests:\n#\n# sumTo(uint)\n# 1. Forward avail: TSTORE affects future calls to the contract (when inside a nester call)\n# 2. Backward avail: TSTORE affects existing calls to the contract (when inside a nested call)\n#\n# callcodeSumTo(uint)\n# 3. Forward and backward avail when using CALLCODE\n#\n# delegateSumTo(uint)\n# 4. Forward and backward avail when using DELEGATECALL\n#\n# callbackSum(uint)\n# 5. Forward and backward avail not affected by having an intervening CALL contract between \n#    TSTORE and TLOAD\n# 6. The intervening CALL contract does not have access to the transient storage of the caller\n#\n# binTree(uint)\n# 7. Verify forward avail when the two calls are \"at the same level\". The same contract\n#    calls both, rather than forward avail from caller to callee.\n#\n# delegateBinTree(uint)\n# 8. Same as 7, but with CALLCODE and DELEGATECALL.\n#\n# inheritTrans()\n# 9. CALL does not inherit transient storage\n# 10. CALLCODE inherits transient storage\n# 11. DELEGATECALL inherits transient storage\n#\n# deepCall(uint)\n# 12. A deep stack of CALL, CALLCODE, and DELEGATECALL still preserves transient storage\n#\n# staticCall(uint)\n# 13. STATICCALL can read transient storage\n# 14. STATICCALL cannot write transient storage (even to the same value it has)\n\n\n# In general, the way these tests work is that the transaction calls 0xCCCCCC with\n# 36 bytes of data. Four bytes for a function signature and 32 for a parameter.\n# This is created using :abi funName(uint) <value>\n# \n# 0xCCC...CCC then calls the contract that actually runs the test. The contract's address\n# is, conveniently, the four bytes of the signature. \n#\n# Note that because of the nature of transient storage, in most cases the test contract\n# has to call itself (directly or indirectly). This means it has to effectively have\n# at least two entry points.\n\ntransStorageOK:\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: \"100000000\"\n    currentNumber: \"1\"\n    currentTimestamp: \"1000\"\n\n  pre:\n\n    # sumTo(uint)\n    # \n    # Add ints, 0+1+...+depth\n    # If called by itself, get depth from trans[0]\n    # If called by anybody else, get depth from calldata \n    #\n    # This checks two things:\n    # 1. Forward availability of transient storage. \n    #    The counter is changed and then the contract is called again, with the\n    #    new value in transient storage\n    # 2. Backward availability of transient storage.\n    #    The sum is updated and then the contract returns, and the new \n    #    value is available to the caller frame.\n    #\n    # Without the recursion, this code will look like this:\n    #\n    # for (Trans[0] = calldataload(4); Trans[0]!=0; Trans[0]--}\n    #     Trans[1] += Trans[0]\n    #\n\n    00000000000000000000000000000000ebd141d5:\n      balance: 0\n      nonce: 1\n      code: |\n        :yul {\n            // These two functions use transient storage.\n            // Once the relevant opcodes are added to Yul, simply remove\n            // them (from all contracts) and remove the _temp suffices.\n            function tload_temp(loc) -> val {\n              val := verbatim_1i_1o(hex\"5C\", loc)\n            }\n          \n            function tstore_temp(loc, val) {\n              verbatim_2i_0o(hex\"5D\", loc, val)\n            }\n\n            // If we are called by ourselves, this is part of the loop.\n            if eq(caller(), address()) {\n              let counter := tload_temp(0)\n\n              // If the counter is equal to zero, we're done - return.\n              if eq(counter,0) {\n                return(0,0)\n              }\n\n              // If counter isn't zero, add counter to Trans[1] and do recursion\n              tstore_temp(1, add(tload_temp(1), counter))\n\n              // Change the loop variable and call yourself\n              tstore_temp(0, sub(counter, 1))\n              let res := call(gas(), address(), 0, 0,0, 0,0)\n              if iszero(res) { // If the call failed, fail too\n                 revert(0,0)\n              }\n            }\n\n            // If called by a different address, we are the first call and need\n            // to setup Trans[0] before starting the loop. \n            //\n            // This first frame is also responsible for putting results in storage,\n            // so the test will be able to read them.\n            if iszero(eq(caller(), address())) { \n              let data := calldataload(0)\n              sstore(1, data)\n              tstore_temp(0, data)\n              sstore(2, call(gas(), address(), 0, 0,0,0,0))\n              sstore(3, tload_temp(1))\n            }\n        }\n      storage: {}\n\n\n\n\n    # callcodeSumTo(uint)\n    #\n    # Similar to sumTo, but uses callcode instead of call\n    #\n    # Without the recursion, this code will look like this:\n    #\n    # for (Trans[0] = calldataload(4); Trans[0]!=0; Trans[0]--}\n    #     Trans[1] += Trans[0]\n    #\n\n    000000000000000000000000000000006e3a7204:\n      balance: 0\n      nonce: 1\n      code: |\n        :yul {\n            function tload_temp(loc) -> val {\n              val := verbatim_1i_1o(hex\"5C\", loc)\n            }\n          \n            function tstore_temp(loc, val) {\n              verbatim_2i_0o(hex\"5D\", loc, val)\n            }\n\n            // If we are called by ourselves, this is part of the loop.\n            if eq(caller(), address()) {\n              let counter := tload_temp(0)\n\n              // Loop ended, return\n              if eq(counter,0) {\n                return(0,0)\n              }\n\n\n              // Change the loop variable and call yourself\n              tstore_temp(1, add(tload_temp(1), counter))\n              tstore_temp(0, sub(counter, 1))\n              let res := callcode(gas(), address(), 0, 0,0, 0,0)\n              if iszero(res) { // If the call failed, fail too\n                 revert(0,0)\n              }\n            }\n\n            // If called by a different address, we are the first call and need\n            // to setup Trans[0] before starting the loop. \n            //\n            // This first frame is also responsible for putting results in storage,\n            // so the test will be able to read them.\n            if iszero(eq(caller(), address())) { \n              let data := calldataload(0)\n              sstore(1, data)\n              tstore_temp(0, data)\n\n              // This needs to be call, so that the loop contracts will get the \n              // correct caller() (otherwise they'll get the contract that called up,\n              // 0xCCCC...CCCC)\n              sstore(2, call(gas(), address(), 0, 0,0,0,0))\n              sstore(3, tload_temp(1))\n            }\n        }\n      storage: {}\n\n\n\n    # delegateSumTo(uint)\n    #\n    # Similar to sumTo, but uses delegatecall instead of call\n    #\n    # Without the recursion, this code will look like this:\n    #\n    # for (Trans[0] = calldataload(4); Trans[0]!=0; Trans[0]--}\n    #     Trans[1] += Trans[0]\n    00000000000000000000000000000000c1c922f1:\n      balance: 0\n      nonce: 1\n      code: |\n        :yul {\n            function tload_temp(loc) -> val {\n              val := verbatim_1i_1o(hex\"5C\", loc)\n            }\n          \n            function tstore_temp(loc, val) {\n              verbatim_2i_0o(hex\"5D\", loc, val)\n            }\n\n            // If we are called by ourselves, this is part of the loop.\n            if eq(caller(), address()) {\n              let counter := tload_temp(0)\n\n              // If the counter is equal to zero, we're done - return.\n              if eq(counter,0) {\n                return(0,0)\n              }\n\n              // Change the loop variable and call yourself\n              tstore_temp(1, add(tload_temp(1), counter))\n              tstore_temp(0, sub(counter, 1))\n              let res := delegatecall(gas(), address(), 0,0, 0,0)\n              if iszero(res) { // If the call failed, fail too\n                 revert(0,0)\n              }\n            }\n\n\n            // If called by a different address, we are the first call and need\n            // to setup Trans[0] before starting the loop. \n            //\n            // This first frame is also responsible for putting results in storage,\n            // so the test will be able to read them.\n            if iszero(eq(caller(), address())) { \n              let data := calldataload(0)\n              sstore(1, data)\n              tstore_temp(0, data)\n\n              // This needs to be call, so that the loop contracts will get the \n              // correct caller() (otherwise they'll get the contract that called up,\n              // 0xCCCC...CCCC)\n              sstore(2, call(gas(), address(), 0, 0,0,0,0))\n              sstore(3, tload_temp(1))\n            }\n        }\n      storage: {}\n\n\n\n\n    # Call back the contract that called you.\n    # This shows that a contract between two frames\n    # of the same contract doesn't have access to the transient storage\n    #\n    # This contract implements this calling structure:\n    # <contract A> -> ca11bacc -> <contract A>\n    # This is important because transient storage is tied to the contract.\n    # This contract's transient storage should be empty, and the call \n    # to it should not affect contract A's transient storage.\n\n    00000000000000000000000000000000ca11bacc:\n      balance: 0\n      nonce: 1\n      code: |\n        :yul {\n            function tload_temp(loc) -> val {\n              val := verbatim_1i_1o(hex\"5C\", loc)\n            }\n          \n            function tstore_temp(loc, val) {\n              verbatim_2i_0o(hex\"5D\", loc, val)\n            }\n\n            // Write these values to storage (overwriting the 0x60A7's).\n            // If these values are not zero, there is a problem.\n            sstore(0, tload_temp(0))\n            sstore(1, tload_temp(1))\n            pop(call(gas(), caller(), 0, 0,0, 0,0))\n        }\n      storage:\n        0: 0x60A7\n        1: 0x60A7\n\n\n    # callbackSum(uint)\n    # \n    # Add ints, 0+1+...+depth\n    # If called by itself, get depth from trans[0]\n    # If called by anybody else, get depth from calldata \n    #\n    # When doing the recursion, go through 0xca11bacc. This \n    # verifies that changes propagate through a different contract\n    # without affecting that contract's transient storage\n    #\n    # Without the recursion, this code will look like this:\n    #\n    # for (Trans[0] = calldataload(4); Trans[0]!=0; Trans[0]--}\n    #     Trans[1] += Trans[0]\n    # \n    000000000000000000000000000000005114e2c8:\n      balance: 0\n      nonce: 1\n      code: |\n        :yul {\n            function tload_temp(loc) -> val {\n              val := verbatim_1i_1o(hex\"5C\", loc)\n            }\n          \n            function tstore_temp(loc, val) {\n              verbatim_2i_0o(hex\"5D\", loc, val)\n            }\n\n            // If we are called by 0xca11bacc, this is part of the loop\n            if eq(caller(), 0xca11bacc) {\n              let counter := tload_temp(0)\n\n              // If the counter is equal to zero, we're done - return.\n              if eq(counter,0) {\n                return(0,0)\n              }\n\n              // If counter isn't zero, add counter to Trans[1] and do recursion\n              tstore_temp(1, add(tload_temp(1), counter))\n\n              // Change the loop variable and call 0xca11bacc, which calls us back.\n              tstore_temp(0, sub(counter, 1))\n              let res := call(gas(), 0xca11bacc, 0, 0,0, 0,0)\n              if iszero(res) { // If the call failed, fail too\n                 revert(0,0)\n              }\n            }\n\n            // If called by a different address from 0xca11bacc, we are the first \n            // call and need to setup Trans[0] before starting the loop. \n            //\n            // This first frame is also responsible for putting results in storage,\n            // so the test will be able to read them.\n            if iszero(eq(caller(), 0xca11bacc)) { \n              let data := calldataload(0)\n              sstore(1, data)\n              tstore_temp(0, data)\n              sstore(2, call(gas(), 0xca11bacc, 0, 0,0,0,0))\n              sstore(3, tload_temp(1))\n            }\n        }\n      storage: {}\n\n\n    # binTree(uint)\n    #\n    # Calculate 2^depth-1\n    # \n    # If called by itself, get depth from Trans[0]\n    # If called by anybody else, get depth from calldata \n    #\n    # Check that even if we call the contract twice, transient storage works\n    # \n    # In JavaScript this would look like this:\n    # \n    # let Trans0 = 0\n    # let Trans1 = 0\n    #\n    # function binTree(caller) {\n    #    if(caller == \"binTree()\") {\n    #       counter = Trans0\n    #       if (counter == 0) \n    #           return\n    #       // Call yourself twice\n    #       Trans0 = counter-1\n    #       binTree(\"binTree()\")\n    #       Trans0 = counter-1\n    #       binTree(\"binTree()\")\n    #       Trans1 ++\n    #    } else\n    #       Trans0 = calldataload(0)\n    # }\n    00000000000000000000000000000000264bb86a:\n      balance: 0\n      nonce: 1\n      code: |\n        :yul {\n            function tload_temp(loc) -> val {\n              val := verbatim_1i_1o(hex\"5C\", loc)\n            }\n          \n            function tstore_temp(loc, val) {\n              verbatim_2i_0o(hex\"5D\", loc, val)\n            }\n\n            // We are inside the loop\n            if eq(caller(), address()) {\n              let counter := tload_temp(0)\n\n              // If counter is zero, we're at an end of the loop (a leaf of \n              // the tree), return.\n              if eq(counter,0) {\n                return(0,0)\n              }\n\n              // If counter isn't zero, call yourself with counter-1 twice and\n              // add one to Trans[1]\n              tstore_temp(0, sub(counter, 1))\n              let res := call(gas(), address(), 0, 0,0, 0,0)\n              if iszero(res) { // If the call failed, fail too\n                 revert(0,0)\n              }\n\n              // We need to repair Trans[0] because it got overwritten in\n              // the previous call\n              tstore_temp(0, sub(counter, 1))\n              res := call(gas(), address(), 0, 0,0, 0,0)\n              if iszero(res) { // If the call failed, fail too\n                 revert(0,0)\n              }\n\n              // Increment Trans[1]\n              tstore_temp(1, add(tload_temp(1), 1))\n            }\n\n            // If called by a different address, we are the first call and need\n            // to setup Trans[0] before starting the loop. \n            //\n            // This first frame is also responsible for putting results in storage,\n            // so the test will be able to read them.\n            if iszero(eq(caller(), address())) { \n              let data := calldataload(0)\n              sstore(1, data)\n              tstore_temp(0, data)\n              sstore(2, call(gas(), address(), 0, 0,0,0,0))\n              sstore(3, tload_temp(1))\n            }\n        }\n      storage: {}\n\n\n\n    # delegateBinTree(uint)\n    #\n    # Similar to binTree, but uses callcode and delegatecall instead of call\n    # Calculate 2^depth-1\n    # \n    # If called by itself, get depth from Trans[0]\n    # If called by anybody else, get depth from calldata \n    #\n    # Check that even if we call the contract twice, transient storage works\n    # \n    # In JavaScript this would look like this:\n    # \n    # let Trans0 = 0\n    # let Trans1 = 0\n    #\n    # function binTree(caller) {\n    #    if(caller == \"binTree()\") {\n    #       counter = Trans0\n    #       if (counter == 0) \n    #           return\n    #       // Call yourself twice\n    #       Trans0 = counter-1\n    #       binTree(\"binTree()\")\n    #       Trans0 = counter-1\n    #       binTree(\"binTree()\")\n    #       Trans1 ++\n    #    } else\n    #       Trans0 = calldataload(0)\n    # }\n    000000000000000000000000000000007074a486:\n      balance: 0\n      nonce: 1\n      code: |\n        :yul {\n            function tload_temp(loc) -> val {\n              val := verbatim_1i_1o(hex\"5C\", loc)\n            }\n          \n            function tstore_temp(loc, val) {\n              verbatim_2i_0o(hex\"5D\", loc, val)\n            }\n\n            // If we are in the loop\n            if eq(caller(), address()) {\n              let counter := tload_temp(0)\n\n              // If the counter is zero, we're at loop's end, return\n              if eq(counter,0) {\n                return(0,0)\n              }\n\n              // If counter isn't zero\n              // Call yourself with counter-1 twice then add 1 to Trans[1]\n              // Note that one call is callcode() and the other delegatecall().\n              // This way the same test checks both of them.\n\n              tstore_temp(0, sub(counter, 1))\n              let res := callcode(gas(), address(), 0, 0,0, 0,0)\n              if iszero(res) { // If the call failed, fail too\n                 revert(0,0)\n              }\n\n              // We need to repair Trans[0] because it got overwritten in\n              // the previous call\n              tstore_temp(0, sub(counter, 1))\n              res := delegatecall(gas(), address(), 0,0, 0,0)\n              if iszero(res) { // If the call failed, fail too\n                 revert(0,0)\n              }\n\n              // Increment Trans[1]\n              tstore_temp(1, add(tload_temp(1), 1))\n            }\n\n\n            // If called by a different address, we are the first call and need\n            // to setup Trans[0] before starting the loop. \n            //\n            // This first frame is also responsible for putting results in storage,\n            // so the test will be able to read them.\n            if iszero(eq(caller(), address())) { \n              let data := calldataload(0)\n              sstore(1, data)\n              tstore_temp(0, data)\n              sstore(2, call(gas(), address(), 0, 0,0,0,0))\n              sstore(3, tload_temp(1))\n            }\n        }\n      storage: {}\n\n\n    # Increment Trans[0]\n    #\n    # This is used by inheritTrans() below to show that \n    # 1. If you CALL a contract, it has separate transient storage\n    # 2. If you CALLCODE or DELEGATECALL a contract, it is the same transient storage\n    000000000000000000000000000000000000add1:\n      balance: 0\n      nonce: 1\n      code: |\n        :yul {\n            function tload_temp(loc) -> val {\n              val := verbatim_1i_1o(hex\"5C\", loc)\n            }\n\n            function tstore_temp(loc, val) {\n              verbatim_2i_0o(hex\"5D\", loc, val)\n            }\n\n            tstore_temp(0, add(tload_temp(0), 1))\n        }\n      storage: {}\n\n\n\n    # inheritTrans()\n    # \n    # Show that CALL doesn't inherit our transient storage, but CALLCODE and\n    # DELEGATECALL do\n    000000000000000000000000000000007f9317bd:\n      balance: 0\n      nonce: 1\n      code: |\n        :yul {\n            function tload_temp(loc) -> val {\n              val := verbatim_1i_1o(hex\"5C\", loc)\n            }\n          \n            function tstore_temp(loc, val) {\n              verbatim_2i_0o(hex\"5D\", loc, val)\n            }\n\n            // The initial value of the counter is zero\n            sstore(0, tload_temp(0))\n\n            // CALLCODE increments our Trans[0]\n            sstore(0x11, callcode(gas(), 0xadd1, 0, 0,0, 0,0))\n            sstore(1, tload_temp(0))\n\n            // DELEGATECALL increments our Trans[0]\n            sstore(0x12, delegatecall(gas(), 0xadd1, 0,0, 0,0))\n            sstore(2, tload_temp(0))\n\n            // CALL does not increment our Trans[0], it means a different\n            // transient storage\n            sstore(0x13, call(gas(), 0xadd1, 0, 0,0, 0,0))\n            sstore(3, tload_temp(0))\n        }\n      storage:\n        0: 0x60A7   # To show it gets overwritten by zero\n                    # The other storage cells get a different value\n                    # so we can keep them at the default of zero\n\n\n\n\n    # deepCall(uint)\n    #\n    # Show transients are preserved even after a stack of CALLCODEs,\n    # DELEGATECALLs, and CALLs\n    #\n    # The parameter to deepCall(uint) is a 32 bytes, each telling us what type of \n    # call to do next. The values are the same as opcode values: 0xF1, 0xF2, and 0xF4.\n    #\n    # The way this works is that the first (most significant byte) is the type of call\n    # to do now, and then we give that call input that includes all the input bytes \n    # except for that one.\n    #\n    # We increment Trans[0] in the first call and the last one.\n    00000000000000000000000000000000c54b5829:\n      balance: 0\n      nonce: 1\n      code: |\n        :yul {\n            function tload_temp(loc) -> val {\n              val := verbatim_1i_1o(hex\"5C\", loc)\n            }\n          \n            function tstore_temp(loc, val) {\n              verbatim_2i_0o(hex\"5D\", loc, val)\n            }\n\n            // If we are at the bottom of the call stack, increment\n            // the counter and return\n            if eq(calldatasize(), 0) {\n               tstore_temp(0, add(tload_temp(0),1))\n               return(0,0)\n            }\n\n            // If we are at the top of the stack (called by a different contract),\n            // set the counter to one\n            if iszero(eq(address(), caller())) {\n               tstore_temp(0, 1)\n            }\n\n            // Read the most significant byte of the input.\n            // Luckily for us the input is top justified - if the caller provided\n            // just n bytes (n<20), they will be the top n bytes of calldataload(0).\n            let callType := shr(\n                248,\n                calldataload(0)\n            )\n\n            // Prepare the data to send to the next call\n            mstore(0, calldataload(0))\n            let newSize := sub(calldatasize(), 1)\n            let newStart := 1\n  \n            // Mem[0x00] contains the most significant byte (the call type here)\n            // Mem[0x01] contains the second most significant (the next call type)\n            // Mem[calldatasize()-1) contains the final call type\n            //\n            // So we call ourselves with a buffer start of one, and a call data size\n            // of calldatasize()-1\n\n\n            // CALL, CALLCODE or DELEGATECALL, as requested\n            switch callType\n            case 0xF1 {    // CALL\n               pop(call(gas(), address(), 0, newStart,newSize, 0,0))\n            }\n            case 0xF2 {    // CALLCODE\n               pop(callcode(gas(), address(), 0, newStart,newSize, 0,0))\n            }\n            case 0xF4 {    // DELEGATECALL\n               pop(delegatecall(gas(), address(), newStart,newSize, 0,0))\n            }\n\n            // If we are at the top of the stack (called by a different contract),\n            // write up the result. Should be two\n            if iszero(eq(address(), caller())) {\n               sstore(0, tload_temp(0))\n            }\n\n          }\n      storage: {}\n\n\n\n    # This code is called to check that STATICCALL has access to transients\n    # (read only). When called, it checks if there is calldata. If there is,\n    # it writes to Trans[0]. Whether there is or not, it reads from Trans[0]\n    # and returns that (the only way that a static call can return data).\n    00000000000000000000000000000000000057A7:\n      balance: 0\n      nonce: 1\n      code: |\n        :yul {\n            function tload_temp(loc) -> val {\n              val := verbatim_1i_1o(hex\"5C\", loc)\n            }\n          \n            function tstore_temp(loc, val) {\n              verbatim_2i_0o(hex\"5D\", loc, val)\n            }\n\n            // There is calldata, so write to Trans[0]\n            if calldatasize() {\n               tstore_temp(0, 0x60A7)\n            }\n\n            // Return Trans[0]\n            // This happens whether we are called with data or not.\n            mstore(0, tload_temp(0))\n            return(0,32)            \n        }\n      storage: {}\n\n\n    # staticCall()\n    #\n    # This contract calls 0x57A7 three time. \n    # 1. Set up Trans[0]\n    # 2. STATICCALL, show you can read it\n    # 3. STATICCALL, shows you can't write it, even when the value is unchanged\n    000000000000000000000000000000005d7935df:\n      balance: 0\n      nonce: 1\n      code: |\n        :yul {\n            // Set up Trans[0] with a regular call. \n            sstore(0x10,call(gas(), 0x57A7, 0, 0,1, 0,32))\n            sstore(0, mload(0))\n\n            // Use staticcall to read Trans[0] of 0x0..57A7.\n            mstore(0,0)\n            sstore(0x11,staticcall(gas(), 0x57A7, 0,0, 0,32))\n            sstore(1, mload(0))\n\n            // Try to use staticall to write Trans[0]. This should fail.\n            mstore(0,0)\n            sstore(0x12,staticcall(gas(), 0x57A7, 0,1, 0,32))\n            sstore(2, mload(0))\n        }\n      storage:\n        # Values that should be overwritten by zero (because the tstore causes a revert)\n        0x02: 0x60A7\n        0x12: 0x60A7\n\n\n    # The contract called by the transaction\n    # Receives ABI calldata\n    # Bytes 0x00-0x03 (the function hash) is the address of the contract to call\n    # Bytes 0x04-0x23 are the first parameter\n    <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n      balance: 0\n      code: |\n        :yul {\n          let func := shr(224, calldataload(0))\n          let param := calldataload(4)\n          sstore(0, func)\n          mstore(0, param)\n          sstore(1, call(gas(), func, 0, 0,32, 0,0))\n        }\n      nonce: 1\n      storage: {}\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: 1\n      storage: {}\n\n\n  transaction:\n    data:\n    # Sum up the integers 1-16. \n    - :label sum_16 :abi sumTo(uint) 16\n    - :label callcode_sum_16 :abi callcodeSumTo(uint) 16\n    - :label delegate_sum_16 :abi delegateSumTo(uint) 16\n\n    # Sum up the integers 1-256.\n    - :label sum_256 :abi sumTo(uint) 256\n\n    # Sum up integers, while calling a different contract between each two calls to \n    # the function\n    - :label callback_sum_10 :abi callbackSum(uint) 10\n    - :label callback_sum_50 :abi callbackSum(uint) 50\n\n    # Calculate 2^6-1 by calling recursively the same contract twice.\n    - :label bin_tree_6 :abi binTree(uint) 6\n\n    # Calculate 2^6-1 by calling recursively the same contract twice.\n    # Both DELEGATECALL and CODECALL here \n    - :label delegate_bin_tree_6 :abi delegateBinTree(uint) 6\n\n    # Show that transient value is inherited through callcode and delegateall, \n    # but not a regular call.\n    - :label inherit_trans :abi inheritTrans()\n\n    # Show that transient storage is inherited through multiple calls, callcodes, and\n    # delegatecalls.\n    # Because of the way this is written, the call stack has to be exactly 32 bytes\n    - :label deep_call :abi deepCall(uint) 0xF1F2F4F1F2F4F1F2F4F1F2F4F1F2F4F1F2F4F1F2F4F1F2F4F1F2F4F1F2F4F1F1F1\n    - :label deep_call :abi deepCall(uint) 0xF1F1F1F1F2F2F2F2F4F4F4F4F1F1F1F1F2F2F2F2F4F4F4F4F1F1F1F1F2F2F2F2\n    - :label deep_call :abi deepCall(uint) 0xF1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1\n    - :label deep_call :abi deepCall(uint) 0xF1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1\n    - :label deep_call :abi deepCall(uint) 0xF2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2\n    - :label deep_call :abi deepCall(uint) 0xF4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4\n\n    # Show that a static call can read transient storage, but not write to it\n    # This test also shows that call and staticcall get to the same transient storage\n    - :label static_call :abi staticCall()\n\n    gasLimit:\n    - 16777216\n    gasPrice: 10\n    nonce: 1\n    to: <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>\n    value:\n    - '0'\n    secretKey: '<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>'\n\n\n\n  expect:\n    - indexes:\n        data: :label sum_16\n\n      network:\n        - \">=Cancun\"\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0: 0xebd141d5  # Call to sumTo(uint)\n            1: 1    # Call was successful\n        00000000000000000000000000000000ebd141d5:\n          storage:\n            1: 16    # Sum 1+2+3+...+16\n            2: 1     # Call successful\n            3: 136   # Resulting sum\n\n\n    - indexes:\n        data: :label callcode_sum_16\n\n      network:\n        - \">=Cancun\"\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0: 0x6e3a7204  # Call to callcodeSumTo(uint)\n            1: 1    # Call was successful\n        000000000000000000000000000000006e3a7204:\n          storage:\n            1: 16    # Sum 1+2+3+...+16\n            2: 1     # Call successful\n            3: 136   # Resulting sum\n\n\n\n    - indexes:\n        data: :label delegate_sum_16\n\n      network:\n        - \">=Cancun\"\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0: 0xc1c922f1  # Call to delegateSumTo(uint)\n            1: 1    # Call was successful\n        00000000000000000000000000000000c1c922f1:\n          storage:\n            1: 16    # Sum 1+2+3+...+16\n            2: 1     # Call successful\n            3: 136   # Resulting sum\n\n\n    - indexes:\n        data: :label sum_256\n\n      network:\n        - \">=Cancun\"\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0: 0xebd141d5  # Call to sumTo(uint)\n            1: 1    # Call was successful\n        00000000000000000000000000000000ebd141d5:\n          storage:\n            1: 256    # Sum 1+2+3+...+256\n            2: 1      # Call successful\n            3: 32896  # Resulting sum\n\n\n\n\n    - indexes:\n        data: :label callback_sum_10\n\n      network:\n        - \">=Cancun\"\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0: 0x5114e2c8  # Call to callbackSum(uint)\n            1: 1    # Call was successful\n\n        # Sum where there's an intervening contract\n        000000000000000000000000000000005114e2c8:\n          storage:\n            1: 10     # Sum 1+2+3+...+10\n            2: 1      # Call successful\n            3: 55     # Resulting sum\n\n        # The transient storage of the contract in the middle is untouched\n        00000000000000000000000000000000ca11bacc:\n          storage:\n            0: 0\n            1: 0\n\n\n\n    - indexes:\n        data: :label callback_sum_50\n\n      network:\n        - \">=Cancun\"\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0: 0x5114e2c8  # Call to callbackSum(uint)\n            1: 1    # Call was successful\n\n        # Sum where there's an intervening contract\n        000000000000000000000000000000005114e2c8:\n          storage:\n            1: 50     # Sum 1+2+3+...+50\n            2: 1      # Call successful\n            3: 1275   # Resulting sum\n\n        # The transient storage of the contract in the middle is untouched\n        00000000000000000000000000000000ca11bacc:\n          storage:\n            0: 0\n            1: 0\n\n\n\n    - indexes:\n        data: :label bin_tree_6\n\n      network:\n        - \">=Cancun\"\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0: 0x264bb86a  # Call to binTree(uint)\n            1: 1    # Call was successful\n\n\n        # Binary tree, showing that transients work correctly when there are two\n        # calls to the contract\n        00000000000000000000000000000000264bb86a:\n          storage:\n            1: 6      # Get 2^6\n            2: 1      # Call successful\n            3: 63     # Resulting power\n\n\n\n\n    - indexes:\n        data: :label delegate_bin_tree_6\n\n      network:\n        - \">=Cancun\"\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0: 0x7074a486  # Call to delegateBinTree(uint)\n            1: 1    # Call was successful\n\n\n        # Binary tree, showing that transients work correctly when there are two\n        # calls to the contract\n        000000000000000000000000000000007074a486:\n          storage:\n            1: 6      # Get 2^6\n            2: 1      # Call successful\n            3: 63     # Resulting power\n\n\n\n\n    - indexes:\n        data: :label inherit_trans\n\n      network:\n        - \">=Cancun\"\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0: 0x7f9317bd  # Call to inheritTrans()\n            1: 1    # Call was successful\n\n        # Show when transients are inherited and then they aren't\n        000000000000000000000000000000007f9317bd:\n          storage:\n            0x00: 0    # Initial value\n            0x01: 1    # CALLCODE increments\n            0x02: 2    # DELEGATECODE increments\n            0x03: 2    # CALL does not increment (or rather, it increments its own storage)\n            0x11: 1    # CALLCODE success\n            0x12: 1    # DELEGATECALL success\n            0x13: 1    # CALL success\n\n\n\n    - indexes:\n        data: :label deep_call\n\n      network:\n        - \">=Cancun\"\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0: 0xc54b5829  # Call to deepCall()\n            1: 1    # Call was successful\n\n        # Show transients are preserved even after a stack of CALLCODEs and\n        # DELEGATECALLs\n        00000000000000000000000000000000c54b5829:\n          storage:\n            0: 2   # Two updates, one at the top of the stack, one at the bottom\n\n\n\n    - indexes:\n        data: :label static_call\n\n      network:\n        - \">=Cancun\"\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0: 0x5d7935df  # Call to staticCall()\n            1: 1    # Call was successful\n\n\n        # Show that static calls have access to transient storage\n        000000000000000000000000000000005d7935df:\n          storage:\n            0x00: 0x60A7  # After regular call\n            0x01: 0x60A7  # After static call\n            0x02: 0       # After failed static call\n            0x10: 1 # Regular call successful\n            0x11: 1 # Static call successful\n            0x12: 0 # Static call that attempts to TSTORE fails\n"
  },
  {
    "path": "tests/static/state_tests/Cancun/stEIP1153_transientStorage/transStorageResetFiller.yml",
    "content": "# Test that TSTORE followed by a revert does not affect code run afterwards\n\n# In general, the way these tests work is that the transaction calls 0xCCCCCC with\n# 36 bytes of data. Four bytes for a function signature and 32 for a parameter.\n# This is created using :abi funName(uint) <value> \n# \n# 0xCCC....CCC then calls the contract that actually runs the test. The contract's address\n# is, conveniently, the four bytes of the signature. \n#\n# Note that because of the nature of transient storage, in most cases the test contract\n# has to call itself (directly or indirectly). This means it has to effectively have\n# at least two entry points.\n\ntransStorageReset:\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: \"100000000\"\n    currentNumber: \"1\"\n    currentTimestamp: \"1000\"\n\n  pre:\n\n    # Call reverter (the contract that called us) and then revert\n    #\n    # Byte 0: Type of call\n    #   0xF1 - CALL\n    #   0xF2 - CALLCODE\n    #   0xF4 - DELEGATECALL\n    #\n    # Byte 1: Type of revert\n    #    0x00 - RETURN (not a revert)\n    #    0xFD - REVERT \n    #    0xFE - Invalid \n    #    0xFF - SELFDESTRUCT\n    <contract:dead:0x000000000000000000000000000000000000dead>:\n      balance: 0\n      nonce: 1\n      code: |\n        :yul {\n            // These two functions use transient storage.\n            // Once the relevant opcodes are added to Yul, simply remove\n            // them (from all contracts) and remove the _temp suffices.\n            function tload_temp(loc) -> val {\n              val := verbatim_1i_1o(hex\"5C\", loc)\n            }\n          \n            function tstore_temp(loc, val) {\n              verbatim_2i_0o(hex\"5D\", loc, val)\n            }\n\n            let reverter := calldataload(0)\n            let dead     := calldataload(32)\n            mstore(0, reverter)\n            mstore(32, dead)\n\n            let callType := byte(0x1E, calldataload(64))\n            let failType := byte(0x1F, calldataload(64))\n\n            let callRes := 0x7E57\n\n            switch callType\n            // We cannot use caller() because if we were delegatecall()ed or \n            // callcode()ed caller() is still 0xCCC...CCC\n            case 0xF1 { callRes := call        (gas(), reverter, 0, 0,64, 0,0) }\n            case 0xF2 { callRes := callcode    (gas(), reverter, 0, 0,64, 0,0) }\n            case 0xF4 { callRes := delegatecall(gas(), reverter,    0,64, 0,0) }\n\n            // Don't call anything, just set Trans[0] here.\n            // Only meaningful with delegatecall() or callcode()\n            case 0x00 { tstore_temp(0,0xBAD0BEEF) }\n\n\n            // May end up in the reverter's storage (because of delegatecall / callcode)\n            sstore(0x10, callRes)\n\n            switch failType\n            case 0x00 { stop() }\n            case 0xFD { revert(0,0) }\n            case 0xFE { invalid() }\n            case 0xFF { selfdestruct(0x0) }\n        }\n      storage:\n        0x10: 0x60A7\n\n\n\n    # reverter(uint)\n    # \n    # Show that a TSTORE followed by a revert does not affect subsequent TLOADs.\n    # This works by calling 0x00..0dead, which itself calls back this contract\n    # and then reverts.\n    # \n    # The parameter includes three bytes:\n    # \n    # 0xAABBCC\n    #\n    # 0xAA - type of call between this contract and 0xDEAD\n    # 0xBB - the type of call between 0xDEAD and back to this contract\n    # 0xCC - the type of revert (or stop, invalid, etc.)\n    <contract:reverter:0x000000000000000000000000000000003f8390d5>:\n      balance: 0\n      nonce: 1\n      code: |\n        :yul {\n            function tload_temp(loc) -> val {\n              val := verbatim_1i_1o(hex\"5C\", loc)\n            }\n          \n            function tstore_temp(loc, val) {\n              verbatim_2i_0o(hex\"5D\", loc, val)\n            }\n\n            let reverter := calldataload(0)\n            let dead     := calldataload(32)\n            mstore(0, reverter)\n            mstore(32, dead)\n\n            // The type of call to use here\n            let callType := byte(0x1D, calldataload(64))\n\n\n            // Because we use DELEGATECALL in some cases, we cannot rely on caller()\n            // (in a DELEGATECALL the caller is the one who called the contract that \n            // has the storage.\n\n            // First invocation, called by  0xCCCCC...CCCC\n            if iszero(tload_temp(0)) {\n              tstore_temp(0, 0x60A7)\n              mstore(64, calldataload(64))\n              \n              let callRes := 0\n\n              // We only send half the gas because the call may spend all\n              // remaining gas and we don't want to revert\n              let callGas := div(gas(), 2)\n\n              switch callType\n              case 0xF1 { callRes := call        (callGas, dead, 0, 0,96, 0,0) }\n              case 0xF2 { callRes := callcode    (callGas, dead, 0, 0,96, 0,0) }\n              case 0xF4 { callRes := delegatecall(callGas, dead,    0,96, 0,0) }\n\n              // The result of the call to dead. Usually zero.\n              sstore(1, callRes)\n              sstore(0, tload_temp(0))\n\n              // We're done\n              stop()\n            }\n\n\n            // If Trans[0] has this value, this is the second call\n            if eq(tload_temp(0), 0x60A7) {\n              tstore_temp(0, 0xBEEF)\n            }\n        }\n      storage:\n        1: 0x60A7\n\n\n\n    # The contract called by the transaction\n    # Receives ABI calldata\n    # Bytes 0x00-0x03 (the function hash) is the address of the contract to call\n    # Bytes 0x04-0x23 are the parameter (assume we only need one)\n    <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n      balance: 0\n      code: |\n        :yul {\n          let reverter := calldataload(4)\n          let dead     := calldataload(36)\n          let param := calldataload(68)\n          sstore(0, reverter)\n          mstore(0, reverter)\n          mstore(32, dead)\n          mstore(64, param)\n          sstore(1, call(gas(), reverter, 0, 0, 96, 0, 0))\n        }\n      nonce: 1\n      storage: {}\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: 1\n      storage: {}\n\n\n  transaction:\n    data:\n    # Reverter calls <contract:dead:0x000000000000000000000000000000000000dead>, which calls back the reverter\n    - :label reverter-call-call-stop             :abi reverter(uint,uint,uint) <contract:reverter> <contract:dead> 0xF1F100\n    - :label reverter-call-call-revert           :abi reverter(uint,uint,uint) <contract:reverter> <contract:dead> 0xF1F1FD\n    - :label reverter-call-call-invalid          :abi reverter(uint,uint,uint) <contract:reverter> <contract:dead> 0xF1F1FE\n\n    # The reverter uses DELEGATECALL, and then <contract:dead:0x000000000000000000000000000000000000dead> uses CALL\n    - :label reverter-delegate-call-stop         :abi reverter(uint,uint,uint) <contract:reverter> <contract:dead> 0xF4F100\n    - :label reverter-delegate-call-revert       :abi reverter(uint,uint,uint) <contract:reverter> <contract:dead> 0xF4F1FD\n    - :label reverter-delegate-call-invalid      :abi reverter(uint,uint,uint) <contract:reverter> <contract:dead> 0xF4F1FE\n\n    # The reverter uses CALLCODE, and then <contract:dead:0x000000000000000000000000000000000000dead> uses CALL\n    - :label reverter-code-call-stop             :abi reverter(uint,uint,uint) <contract:reverter> <contract:dead> 0xF2F100\n    - :label reverter-code-call-revert           :abi reverter(uint,uint,uint) <contract:reverter> <contract:dead> 0xF2F1FD\n    - :label reverter-code-call-invalid          :abi reverter(uint,uint,uint) <contract:reverter> <contract:dead> 0xF2F1FE\n\n    # The reverter uses DELEGATECALL, and then <contract:dead:0x000000000000000000000000000000000000dead> uses DELEGATECALL\n    - :label reverter-delegate-delegate-stop     :abi reverter(uint,uint,uint) <contract:reverter> <contract:dead> 0xF4F400\n    - :label reverter-delegate-delegate-revert   :abi reverter(uint,uint,uint) <contract:reverter> <contract:dead> 0xF4F4FD\n    - :label reverter-delegate-delegate-invalid  :abi reverter(uint,uint,uint) <contract:reverter> <contract:dead> 0xF4F4FE\n\n    # The reverter uses DELEGATECALL, and then <contract:dead:0x000000000000000000000000000000000000dead> uses CALLCODE\n    - :label reverter-delegate-code-stop     :abi reverter(uint,uint,uint) <contract:reverter> <contract:dead> 0xF4F200\n    - :label reverter-delegate-code-revert   :abi reverter(uint,uint,uint) <contract:reverter> <contract:dead> 0xF4F2FD\n    - :label reverter-delegate-code-invalid  :abi reverter(uint,uint,uint) <contract:reverter> <contract:dead> 0xF4F2FE\n\n    # The reverter uses CALLCODE, and then <contract:dead:0x000000000000000000000000000000000000dead> uses DELEGATECALL\n    - :label reverter-code-delegate-stop     :abi reverter(uint,uint,uint) <contract:reverter> <contract:dead> 0xF2F400\n    - :label reverter-code-delegate-revert   :abi reverter(uint,uint,uint) <contract:reverter> <contract:dead> 0xF2F4FD\n    - :label reverter-code-delegate-invalid  :abi reverter(uint,uint,uint) <contract:reverter> <contract:dead> 0xF2F4FE\n\n    # The reverter uses CALLCODE, and then <contract:dead:0x000000000000000000000000000000000000dead> uses CALLCODE\n    - :label reverter-code-code-stop     :abi reverter(uint,uint,uint) <contract:reverter> <contract:dead> 0xF2F200\n    - :label reverter-code-code-revert   :abi reverter(uint,uint,uint) <contract:reverter> <contract:dead> 0xF2F2FD\n    - :label reverter-code-code-invalid  :abi reverter(uint,uint,uint) <contract:reverter> <contract:dead> 0xF2F2FE\n\n    # The reverter calls <contract:dead:0x000000000000000000000000000000000000dead>, which sets Trans[0] by itself\n    # A meaningless exercise, because it is different transient storage than\n    # the reverter\n    - :label reverter-call-nop-stop             :abi reverter(uint,uint,uint) <contract:reverter> <contract:dead> 0xF10000\n    - :label reverter-call-nop-revert           :abi reverter(uint,uint,uint) <contract:reverter> <contract:dead> 0xF100FD\n    - :label reverter-call-nop-invalid          :abi reverter(uint,uint,uint) <contract:reverter> <contract:dead> 0xF100FE\n\n    # The reverter delegatecall()s or callcode()s <contract:dead:0x000000000000000000000000000000000000dead>, so Trans[0] changes.\n    # Whether that change does anything or not depends on what happens afterwards\n    - :label reverter-delegate-nop-stop             :abi reverter(uint,uint,uint) <contract:reverter> <contract:dead> 0xF40000\n    - :label reverter-delegate-nop-revert           :abi reverter(uint,uint,uint) <contract:reverter> <contract:dead> 0xF400FD\n    - :label reverter-delegate-nop-invalid          :abi reverter(uint,uint,uint) <contract:reverter> <contract:dead> 0xF400FE\n    - :label reverter-code-nop-stop                 :abi reverter(uint,uint,uint) <contract:reverter> <contract:dead> 0xF20000\n    - :label reverter-code-nop-revert               :abi reverter(uint,uint,uint) <contract:reverter> <contract:dead> 0xF200FD\n    - :label reverter-code-nop-invalid              :abi reverter(uint,uint,uint) <contract:reverter> <contract:dead> 0xF200FE\n   \n\n\n    # In Cancun SELFDESTRUCT https://eips.ethereum.org/EIPS/eip-6780 acts like\n    # STOP except it sends all the contract's funds somewhere. Until I have a geth\n    # that supports this behavior, I can't write a test to check for it.\n    # - :label reverter-call-call-selfdestruct         :abi reverter(uint,uint,uint) <contract:reverter> <contract:dead> 0xF1F1FF\n    # - :label reverter-delegate-call-selfdestruct     :abi reverter(uint,uint,uint) <contract:reverter> <contract:dead> 0xF4F1FF\n    # - :label reverter-code-call-selfdestruct         :abi reverter(uint,uint,uint) <contract:reverter> <contract:dead> 0xF2F1FF\n    # - :label reverter-delegate-delegate-selfdestruct :abi reverter(uint,uint,uint) <contract:reverter> <contract:dead> 0xF4F4FF\n    # - :label reverter-delegate-code-selfdestruct     :abi reverter(uint,uint,uint) <contract:reverter> <contract:dead> 0xF4F2FF\n    # - :label reverter-code-delegate-selfdestruct     :abi reverter(uint,uint,uint) <contract:reverter> <contract:dead> 0xF2F4FF\n    # - :label reverter-code-code-selfdestruct         :abi reverter(uint,uint,uint) <contract:reverter> <contract:dead> 0xF2F2FF\n    # - :label reverter-call-nop-selfdestruct          :abi reverter(uint,uint,uint) <contract:reverter> <contract:dead> 0xF100FF\n    # - :label reverter-delegate-nop-selfdestruct      :abi reverter(uint,uint,uint) <contract:reverter> <contract:dead> 0xF400FF\n    # - :label reverter-code-nop-selfdestruct          :abi reverter(uint,uint,uint) <contract:reverter> <contract:dead> 0xF200FF\n\n\n    gasLimit:\n    - 16777216\n    gasPrice: 10\n    nonce: 1\n    to: <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>\n    value:\n    - '0'\n    secretKey: '<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>'\n\n\n\n  expect:\n    - indexes:\n        data:\n        - :label reverter-call-call-stop\n      network:\n        - \">=Cancun\"\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0: <contract:reverter> # Call to reverter(uint)\n            1: 1    # Call was successful\n        <contract:reverter>:\n          storage:\n            0x00: 0xBEEF # The call with tstore(0, 0xBEEF) was successful\n            0x01: 1      # The call was successful\n        <contract:dead:0x000000000000000000000000000000000000dead>:\n          storage:\n            0x10: 0x01   # call was successful\n\n\n    # Because the first call is CALLCODE or DELEGATECALL, the SSTORE in 0xDEAD \n    # Writes to the storage of 0x003f8390d5\n    - indexes:\n        data:\n        - :label reverter-delegate-call-stop\n        - :label reverter-code-call-stop\n        - :label reverter-delegate-delegate-stop\n        - :label reverter-delegate-code-stop\n        - :label reverter-code-delegate-stop\n        - :label reverter-code-code-stop\n      network:\n        - \">=Cancun\"\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0: <contract:reverter> # Call to reverter(uint)\n            1: 1    # Call was successful\n        <contract:reverter>:\n          storage:\n            0x00: 0xBEEF # The call with tstore(0, 0xBEEF) was successful\n            0x01: 1      # The call was successful\n            0x10: 0x01   # 0xDEAD's call was successful\n\n\n\n    - indexes:\n        data:\n        - :label reverter-delegate-nop-stop\n        - :label reverter-code-nop-stop\n      network:\n        - \">=Cancun\"\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0: <contract:reverter> # Call to reverter(uint)\n            1: 1    # Call was successful\n        <contract:reverter>:\n          storage:\n            0x00: 0xBAD0BEEF # The call with tstore(0, 0xBAD0BEEF) was successful\n            0x01: 1      # The call was successful\n            0x10: 0x7E57 # 0xDEAD didn't have any call, so the result stayed 0x7E57\n\n\n\n\n    # The main test. If 0xDEAD reverts, the call inside it that changed the transient\n    # storage does not have any effect.\n    - indexes:\n        data: \n        - :label reverter-call-call-revert\n        - :label reverter-call-call-invalid\n        - :label reverter-delegate-call-revert\n        - :label reverter-delegate-call-invalid\n        - :label reverter-code-call-revert\n        - :label reverter-code-call-invalid\n        - :label reverter-delegate-delegate-revert\n        - :label reverter-delegate-delegate-invalid\n        - :label reverter-delegate-code-revert\n        - :label reverter-delegate-code-invalid\n        - :label reverter-code-delegate-revert\n        - :label reverter-code-delegate-invalid\n        - :label reverter-code-code-revert\n        - :label reverter-code-code-invalid\n        - :label reverter-call-nop-revert\n        - :label reverter-call-nop-invalid\n        - :label reverter-delegate-nop-revert\n        - :label reverter-delegate-nop-invalid\n        - :label reverter-code-nop-revert\n        - :label reverter-code-nop-invalid\n\n\n      network:\n        - \">=Cancun\"\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0: <contract:reverter> # Call to reverter(uint)\n            1: 1    # Call was successful\n        <contract:reverter>:\n          storage:\n            0x00: 0x60A7 # The call with tstore(0, 0xBEEF) or tstore(0, 0xBAD0BEEF)\n                         #  reverted\n            0x01: 0      # The call failed\n        <contract:dead:0x000000000000000000000000000000000000dead>:\n          storage:\n            # Reverted call, storage unchanged\n            0x10: 0x60A7\n\n\n\n\n    # The reverter calls 0xDEAD, which then stops (no revert). However, \n    # because it was a CALL, 0xDEAD has different transient storage from \n    # the reverter.\n    - indexes:\n        data: \n        - :label reverter-call-nop-stop\n\n      network:\n        - \">=Cancun\"\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0: <contract:reverter> # Call to reverter(uint)\n            1: 1    # Call was successful\n        <contract:reverter>:\n          storage:\n            0x00: 0x60A7 # The call with tstore(0, 0xBAD0BEEF) was in a different Trans\n            0x01: 1      # The call was successful\n        <contract:dead:0x000000000000000000000000000000000000dead>:\n          storage:\n            # Nothing overwrites the return value\n            0x10: 0x7E57\n\n\n"
  },
  {
    "path": "tests/static/state_tests/Cancun/stEIP4844_blobtransactions/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/Cancun/stEIP4844_blobtransactions/createBlobhashTxFiller.yml",
    "content": "# nimbus blobhash test\ncreateBlobhashTx:\n  _info:\n    comment: BLOB002\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentNumber: 1\n    currentTimestamp: 1000\n    currentGasLimit: 0x1000000000\n    currentBaseFee: 7\n    currentExcessBlobGas: 0\n\n  expect:\n    - network:\n        - '>=Cancun'\n      result:\n        <contract:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n          storage:\n            0x00: 0\n      expectException:     \n        '>=Cancun': TransactionException.TYPE_3_TX_CONTRACT_CREATION\n\n  pre:\n    <contract:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: '1000000000000000000'\n      code: |\n          {\n             ; Can also add lll style comments here\n             [[0]] (BLOBHASH 0) \n          }\n      nonce: '0'\n      storage: {}\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n  transaction:\n    data:\n        - data: :raw 0x00\n          accessList:\n          - address: <contract:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n            storageKeys:\n            - 0x00\n            - 0x01\n\n    maxFeePerGas: '0x12A05F200'\n    maxPriorityFeePerGas: '2'\n    gasLimit:\n    - '4000000'\n    nonce: '0'\n    to: ''\n    value:\n    - '100000'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    maxFeePerBlobGas: '10'\n    blobVersionedHashes:\n        - \"0x01a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n    \n"
  },
  {
    "path": "tests/static/state_tests/Cancun/stEIP4844_blobtransactions/emptyBlobhashListFiller.yml",
    "content": "# nimbus blobhash test\nemptyBlobhashList:\n  _info:\n    comment: BLOB000\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentNumber: 1\n    currentTimestamp: 1000\n    currentGasLimit: 0x1000000000\n    currentBaseFee: 7\n    currentExcessBlobGas: 0\n\n  expect:\n    - network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n          storage:\n            0x00: 0\n      expectException:     \n        '>=Cancun': TransactionException.TYPE_3_TX_ZERO_BLOBS\n\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: '1000000000000000000'\n      code: |\n          {\n             ; Can also add lll style comments here\n             [[0]] (BLOBHASH 0) \n          }\n      nonce: '0'\n      storage: {}\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n  transaction:\n    data:\n        - data: :raw 0x00\n          accessList:\n          - address: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n            storageKeys:\n            - 0x00\n            - 0x01\n\n    maxFeePerGas: '0x12A05F200'\n    maxPriorityFeePerGas: '2'\n    gasLimit:\n    - '4000000'\n    nonce: '0'\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '100000'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    maxFeePerBlobGas: '10'\n    blobVersionedHashes: []\n    \n"
  },
  {
    "path": "tests/static/state_tests/Cancun/stEIP4844_blobtransactions/opcodeBlobhBoundsFiller.yml",
    "content": "# nimbus blobhash test\nopcodeBlobhBounds:\n  _info:\n    comment: BLOB005\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentNumber: 1\n    currentTimestamp: 1000\n    currentGasLimit: 0x1000000000\n    currentBaseFee: 1\n    currentExcessBlobGas: 0\n\n  expect:\n    - network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n          storage:\n            0x00: 0x01a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\n\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: '1000000000000000000'\n      code: |\n          {\n             ; Can also add lll style comments here\n             [[0]] (BLOBHASH 0)\n             [[1]] (BLOBHASH 10) \n             [[2]] (BLOBHASH 0xffffffff) ; 32\n             [[3]] (BLOBHASH 0xffffffffffffffff)  ; 64\n             [[4]] (BLOBHASH 0xffffffffffffffffffffffffffffffff) ; 128\n             [[5]] (BLOBHASH 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) ; 256\n          }\n      nonce: '0'\n      storage:\n        0x00: 0x01\n        0x01: 0x01\n        0x02: 0x01\n        0x03: 0x01\n        0x04: 0x01\n        0x05: 0x01\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n  transaction:\n    data:\n        - data: :raw 0x00\n          accessList:\n          - address: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n            storageKeys:\n            - 0x00\n            - 0x01\n\n    maxFeePerGas: '0x12A05F200'\n    maxPriorityFeePerGas: '2'\n    gasLimit:\n    - '4000000'\n    nonce: '0'\n    to: '<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>'\n    value:\n    - '100000'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    maxFeePerBlobGas: '10'\n    blobVersionedHashes:\n        - \"0x01a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n        - \"0x01a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n"
  },
  {
    "path": "tests/static/state_tests/Cancun/stEIP4844_blobtransactions/opcodeBlobhashOutOfRangeFiller.yml",
    "content": "# nimbus blobhash test\nopcodeBlobhashOutOfRange:\n  _info:\n    comment: BLOB003, BLOB004\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentNumber: 1\n    currentTimestamp: 1000\n    currentGasLimit: 0x1000000000\n    currentBaseFee: 7\n    currentExcessBlobGas: 0\n\n  expect:\n    - network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n          storage:\n            0x00: 0x01a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\n\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: '1000000000000000000'\n      code: |\n          {\n             ; Can also add lll style comments here\n             [[0]] (BLOBHASH 0)\n             [[1]] (BLOBHASH 10) \n          }\n      nonce: '0'\n      storage:\n        0x00: 0x01\n        0x01: 0x01\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n  transaction:\n    data:\n        - data: :raw 0x00\n          accessList:\n          - address: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n            storageKeys:\n            - 0x00\n            - 0x01\n\n    maxFeePerGas: '0x12A05F200'\n    maxPriorityFeePerGas: '2'\n    gasLimit:\n    - '4000000'\n    nonce: '0'\n    to: '<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>'\n    value:\n    - '100000'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    maxFeePerBlobGas: '10'\n    blobVersionedHashes:\n        - \"0x01a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n        - \"0x01a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n"
  },
  {
    "path": "tests/static/state_tests/Cancun/stEIP4844_blobtransactions/wrongBlobhashVersionFiller.yml",
    "content": "# nimbus blobhash test\nwrongBlobhashVersion:\n  _info:\n    comment: BLOB001\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentNumber: 1\n    currentTimestamp: 1000\n    currentGasLimit: 0x1000000000\n    currentBaseFee: 7\n    currentExcessBlobGas: 0\n\n  expect:\n    - network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n          storage:\n            0x00: 0\n      expectException:     \n        '>=Cancun': TransactionException.TYPE_3_TX_INVALID_BLOB_VERSIONED_HASH\n\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: '1000000000000000000'\n      code: |\n          {\n             ; Can also add lll style comments here\n             [[0]] (BLOBHASH 0) \n          }\n      nonce: '0'\n      storage: {}\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n  transaction:\n    data:\n        - data: :raw 0x00\n          accessList:\n          - address: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n            storageKeys:\n            - 0x00\n            - 0x01\n\n    maxFeePerGas: '0x12A05F200'\n    maxPriorityFeePerGas: '2'\n    gasLimit:\n    - '4000000'\n    nonce: '0'\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '100000'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    maxFeePerBlobGas: '10'\n    blobVersionedHashes:\n        - \"0x01a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n        - \"0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n    \n"
  },
  {
    "path": "tests/static/state_tests/Cancun/stEIP5656_MCOPY/MCOPYFiller.yml",
    "content": "MCOPY:\n\n  _info:\n    comment: MCOPY memory copy test cases\n\n  env:\n    currentNumber: 1\n    currentTimestamp: 1687174231\n    currentGasLimit: 1000000\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n\n  pre:\n\n    # Executed code (transaction destination)\n    <contract:target:0x000000000000000000000000000000000000c0de>:\n      balance: 0\n      nonce: 1\n      code: |\n        :yul {\n          function mcopy(dst, src, size) { verbatim_3i_0o(hex\"5e\", dst, src, size) }\n        \n          // Fill memory at [0-96] (3x32) with the pattern of unique bytes.\n          mstore( 0, 0xa0a1a2a3a4a5a6a7a8a9aAaBaCaDaEaFb0b1b2b3b4b5b6b7b8b9bAbBbCbDbEbF)\n          mstore(32, 0xc0c1c2c3c4c5c6c7c8c9cAcBcCcDcEcFd0d1d2d3d4d5d6d7d8d9dAdBdCdDdEdF)\n          mstore(64, 0xe0e1e2e3e4e5e6e7e8e9eAeBeCeDeEeFf0f1f2f3f4f5f6f7f8f9fAfBfCfDfEfF)\n        \n          // MCOPY using parameters from CALLDATA.\n          mcopy(calldataload(0), calldataload(32), calldataload(64))\n        \n          // Dump memory at [0-96] to 3 storage slots.\n          sstore(0, mload( 0))\n          sstore(1, mload(32))\n          sstore(2, mload(64))\n        }\n      storage: { }\n\n    # Transaction sender\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: 1000000000\n      nonce: 0\n      code: ''\n      storage: { }\n\n  transaction:\n    to: <contract:target:0x000000000000000000000000000000000000c0de>\n    nonce: 0\n    gasLimit:\n      - 1000000\n    gasPrice: 10\n    value:\n      - 0\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    data:\n      - >\n        :label forward_size0_0 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000002\n        0000000000000000000000000000000000000000000000000000000000000000\n        0000000000000000000000000000000000000000000000000000000000000000\n      - >\n        :label forward_size0_1 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000020\n        0000000000000000000000000000000000000000000000000000000000000001\n        0000000000000000000000000000000000000000000000000000000000000000\n      - >\n        :label backward_size0_0 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000000\n        0000000000000000000000000000000000000000000000000000000000000001\n        0000000000000000000000000000000000000000000000000000000000000000\n      - >\n        :label backward_size0_1 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000020\n        0000000000000000000000000000000000000000000000000000000000000021\n        0000000000000000000000000000000000000000000000000000000000000000\n      - >\n        :label inplace_size0_0 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000000\n        0000000000000000000000000000000000000000000000000000000000000000\n        0000000000000000000000000000000000000000000000000000000000000000\n      - >\n        :label inplace_size0_1 :raw 0x\n        000000000000000000000000000000000000000000000000000000000000001f\n        000000000000000000000000000000000000000000000000000000000000001f\n        0000000000000000000000000000000000000000000000000000000000000000\n      - >\n        :label forward_overlapped_0 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000001\n        0000000000000000000000000000000000000000000000000000000000000000\n        0000000000000000000000000000000000000000000000000000000000000002\n      - >\n        :label forward_overlapped_1 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000002\n        0000000000000000000000000000000000000000000000000000000000000001\n        000000000000000000000000000000000000000000000000000000000000001f\n      - >\n        :label forward_disjoint_0 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000020\n        0000000000000000000000000000000000000000000000000000000000000000\n        000000000000000000000000000000000000000000000000000000000000001f\n      - >\n        :label forward_disjoint_1 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000020\n        0000000000000000000000000000000000000000000000000000000000000001\n        0000000000000000000000000000000000000000000000000000000000000002\n      - >\n        :label forward_adjacent_0 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000002\n        0000000000000000000000000000000000000000000000000000000000000000\n        0000000000000000000000000000000000000000000000000000000000000002\n      - >\n        :label forward_adjacent_1 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000020\n        000000000000000000000000000000000000000000000000000000000000001f\n        0000000000000000000000000000000000000000000000000000000000000001\n      - >\n        :label backward_overlapped_0 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000000\n        000000000000000000000000000000000000000000000000000000000000001f\n        0000000000000000000000000000000000000000000000000000000000000021\n      - >\n        :label backward_overlapped_1 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000001\n        0000000000000000000000000000000000000000000000000000000000000002\n        0000000000000000000000000000000000000000000000000000000000000021\n      - >\n        :label backward_disjoint_0 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000000\n        0000000000000000000000000000000000000000000000000000000000000021\n        0000000000000000000000000000000000000000000000000000000000000020\n      - >\n        :label backward_disjoint_1 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000002\n        0000000000000000000000000000000000000000000000000000000000000021\n        0000000000000000000000000000000000000000000000000000000000000001\n      - >\n        :label backward_adjacent_0 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000000\n        0000000000000000000000000000000000000000000000000000000000000020\n        0000000000000000000000000000000000000000000000000000000000000020\n      - >\n        :label backward_adjacent_1 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000020\n        0000000000000000000000000000000000000000000000000000000000000021\n        0000000000000000000000000000000000000000000000000000000000000001\n      - >\n        :label inplace_0 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000000\n        0000000000000000000000000000000000000000000000000000000000000000\n        0000000000000000000000000000000000000000000000000000000000000001\n      - >\n        :label inplace_1 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000002\n        0000000000000000000000000000000000000000000000000000000000000002\n        0000000000000000000000000000000000000000000000000000000000000033\n\n  expect:\n\n    - indexes:\n        data:\n          - :label forward_size0_0\n          - :label forward_size0_1\n          - :label backward_size0_0\n          - :label backward_size0_1\n          - :label inplace_size0_0\n          - :label inplace_size0_1\n          - :label inplace_0\n          - :label inplace_1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x000000000000000000000000000000000000c0de>:\n          storage:\n            0: 0xa0a1a2a3a4a5a6a7a8a9aAaBaCaDaEaFb0b1b2b3b4b5b6b7b8b9bAbBbCbDbEbF\n            1: 0xc0c1c2c3c4c5c6c7c8c9cAcBcCcDcEcFd0d1d2d3d4d5d6d7d8d9dAdBdCdDdEdF\n            2: 0xe0e1e2e3e4e5e6e7e8e9eAeBeCeDeEeFf0f1f2f3f4f5f6f7f8f9fAfBfCfDfEfF\n\n    - indexes:\n        data:\n          - :label forward_overlapped_0\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x000000000000000000000000000000000000c0de>:\n          storage:\n            0: 0xa0a0a1a3a4a5a6a7a8a9aAaBaCaDaEaFb0b1b2b3b4b5b6b7b8b9bAbBbCbDbEbF\n            1: 0xc0c1c2c3c4c5c6c7c8c9cAcBcCcDcEcFd0d1d2d3d4d5d6d7d8d9dAdBdCdDdEdF\n            2: 0xe0e1e2e3e4e5e6e7e8e9eAeBeCeDeEeFf0f1f2f3f4f5f6f7f8f9fAfBfCfDfEfF\n\n    - indexes:\n        data:\n          - :label forward_overlapped_1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x000000000000000000000000000000000000c0de>:\n          storage:\n            0: 0xa0a1a1a2a3a4a5a6a7a8a9aAaBaCaDaEaFb0b1b2b3b4b5b6b7b8b9bAbBbCbDbE\n            1: 0xbFc1c2c3c4c5c6c7c8c9cAcBcCcDcEcFd0d1d2d3d4d5d6d7d8d9dAdBdCdDdEdF\n            2: 0xe0e1e2e3e4e5e6e7e8e9eAeBeCeDeEeFf0f1f2f3f4f5f6f7f8f9fAfBfCfDfEfF\n\n    - indexes:\n        data:\n          - :label forward_disjoint_0\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x000000000000000000000000000000000000c0de>:\n          storage:\n            0: 0xa0a1a2a3a4a5a6a7a8a9aAaBaCaDaEaFb0b1b2b3b4b5b6b7b8b9bAbBbCbDbEbF\n            1: 0xa0a1a2a3a4a5a6a7a8a9aAaBaCaDaEaFb0b1b2b3b4b5b6b7b8b9bAbBbCbDbEdF\n            2: 0xe0e1e2e3e4e5e6e7e8e9eAeBeCeDeEeFf0f1f2f3f4f5f6f7f8f9fAfBfCfDfEfF\n\n    - indexes:\n        data:\n          - :label forward_disjoint_1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x000000000000000000000000000000000000c0de>:\n          storage:\n            0: 0xa0a1a2a3a4a5a6a7a8a9aAaBaCaDaEaFb0b1b2b3b4b5b6b7b8b9bAbBbCbDbEbF\n            1: 0xa1a2c2c3c4c5c6c7c8c9cAcBcCcDcEcFd0d1d2d3d4d5d6d7d8d9dAdBdCdDdEdF\n            2: 0xe0e1e2e3e4e5e6e7e8e9eAeBeCeDeEeFf0f1f2f3f4f5f6f7f8f9fAfBfCfDfEfF\n\n    - indexes:\n        data:\n          - :label forward_adjacent_0\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x000000000000000000000000000000000000c0de>:\n          storage:\n            0: 0xa0a1a0a1a4a5a6a7a8a9aAaBaCaDaEaFb0b1b2b3b4b5b6b7b8b9bAbBbCbDbEbF\n            1: 0xc0c1c2c3c4c5c6c7c8c9cAcBcCcDcEcFd0d1d2d3d4d5d6d7d8d9dAdBdCdDdEdF\n            2: 0xe0e1e2e3e4e5e6e7e8e9eAeBeCeDeEeFf0f1f2f3f4f5f6f7f8f9fAfBfCfDfEfF\n\n    - indexes:\n        data:\n          - :label forward_adjacent_1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x000000000000000000000000000000000000c0de>:\n          storage:\n            0: 0xa0a1a2a3a4a5a6a7a8a9aAaBaCaDaEaFb0b1b2b3b4b5b6b7b8b9bAbBbCbDbEbF\n            1: 0xbFc1c2c3c4c5c6c7c8c9cAcBcCcDcEcFd0d1d2d3d4d5d6d7d8d9dAdBdCdDdEdF\n            2: 0xe0e1e2e3e4e5e6e7e8e9eAeBeCeDeEeFf0f1f2f3f4f5f6f7f8f9fAfBfCfDfEfF\n\n    - indexes:\n        data:\n          - :label backward_overlapped_0\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x000000000000000000000000000000000000c0de>:\n          storage:\n            0: 0xbFc0c1c2c3c4c5c6c7c8c9cAcBcCcDcEcFd0d1d2d3d4d5d6d7d8d9dAdBdCdDdE\n            1: 0xdFc1c2c3c4c5c6c7c8c9cAcBcCcDcEcFd0d1d2d3d4d5d6d7d8d9dAdBdCdDdEdF\n            2: 0xe0e1e2e3e4e5e6e7e8e9eAeBeCeDeEeFf0f1f2f3f4f5f6f7f8f9fAfBfCfDfEfF\n\n    - indexes:\n        data:\n          - :label backward_overlapped_1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x000000000000000000000000000000000000c0de>:\n          storage:\n            0: 0xa0a2a3a4a5a6a7a8a9aAaBaCaDaEaFb0b1b2b3b4b5b6b7b8b9bAbBbCbDbEbFc0\n            1: 0xc1c2c2c3c4c5c6c7c8c9cAcBcCcDcEcFd0d1d2d3d4d5d6d7d8d9dAdBdCdDdEdF\n            2: 0xe0e1e2e3e4e5e6e7e8e9eAeBeCeDeEeFf0f1f2f3f4f5f6f7f8f9fAfBfCfDfEfF\n\n    - indexes:\n        data:\n          - :label backward_disjoint_0\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x000000000000000000000000000000000000c0de>:\n          storage:\n            0: 0xc1c2c3c4c5c6c7c8c9cAcBcCcDcEcFd0d1d2d3d4d5d6d7d8d9dAdBdCdDdEdFe0\n            1: 0xc0c1c2c3c4c5c6c7c8c9cAcBcCcDcEcFd0d1d2d3d4d5d6d7d8d9dAdBdCdDdEdF\n            2: 0xe0e1e2e3e4e5e6e7e8e9eAeBeCeDeEeFf0f1f2f3f4f5f6f7f8f9fAfBfCfDfEfF\n\n    - indexes:\n        data:\n          - :label backward_disjoint_1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x000000000000000000000000000000000000c0de>:\n          storage:\n            0: 0xa0a1c1a3a4a5a6a7a8a9aAaBaCaDaEaFb0b1b2b3b4b5b6b7b8b9bAbBbCbDbEbF\n            1: 0xc0c1c2c3c4c5c6c7c8c9cAcBcCcDcEcFd0d1d2d3d4d5d6d7d8d9dAdBdCdDdEdF\n            2: 0xe0e1e2e3e4e5e6e7e8e9eAeBeCeDeEeFf0f1f2f3f4f5f6f7f8f9fAfBfCfDfEfF\n\n    - indexes:\n        data:\n          - :label backward_adjacent_0\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x000000000000000000000000000000000000c0de>:\n          storage:\n            0: 0xc0c1c2c3c4c5c6c7c8c9cAcBcCcDcEcFd0d1d2d3d4d5d6d7d8d9dAdBdCdDdEdF\n            1: 0xc0c1c2c3c4c5c6c7c8c9cAcBcCcDcEcFd0d1d2d3d4d5d6d7d8d9dAdBdCdDdEdF\n            2: 0xe0e1e2e3e4e5e6e7e8e9eAeBeCeDeEeFf0f1f2f3f4f5f6f7f8f9fAfBfCfDfEfF\n\n    - indexes:\n        data:\n          - :label backward_adjacent_1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x000000000000000000000000000000000000c0de>:\n          storage:\n            0: 0xa0a1a2a3a4a5a6a7a8a9aAaBaCaDaEaFb0b1b2b3b4b5b6b7b8b9bAbBbCbDbEbF\n            1: 0xc1c1c2c3c4c5c6c7c8c9cAcBcCcDcEcFd0d1d2d3d4d5d6d7d8d9dAdBdCdDdEdF\n            2: 0xe0e1e2e3e4e5e6e7e8e9eAeBeCeDeEeFf0f1f2f3f4f5f6f7f8f9fAfBfCfDfEfF\n"
  },
  {
    "path": "tests/static/state_tests/Cancun/stEIP5656_MCOPY/MCOPY_copy_costFiller.yml",
    "content": "MCOPY_copy_cost:\n\n  _info:\n    comment: Test cases for the cost of memory copy in the MCOPY instruction\n\n  env:\n    currentNumber: 1\n    currentTimestamp: 1687174231\n    currentGasLimit: 1000000\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n\n  pre:\n\n    # Executed code (transaction destination)\n    <contract:target:0x000000000000000000000000000000000000c0de>:\n      balance: 0\n      nonce: 1\n      code: |\n        :yul shanghai optimise {\n          function mcopy(dst, src, size) { verbatim_3i_0o(hex\"5e\", dst, src, size) }\n        \n          // Put a flag in storage indicating successful execution (will be reverted in case of OOG).\n          sstore(0, 1)\n        \n          // Expand memory to cover memory expansion cost before MCOPY.\n          // The test uses up to 1400 memory words.\n          mstore(44800, 1)\n        \n          // MCOPY using src and size from CALLDATA to 0 destination.\n          mcopy(0, calldataload(0), calldataload(32))\n        }\n      storage: { }\n\n    # Transaction sender\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: 1000000000\n      nonce: 0\n      code: ''\n      storage: { }\n\n  transaction:\n    to: <contract:target:0x000000000000000000000000000000000000c0de>\n    nonce: 0\n    gasLimit:\n      # Every test case should pass easily. The amount of gas consumed is reflected in the sender's balance update.\n      - 100000\n      # Cut-off point for the copy of size 44769 (1399*32+1) to go out-of-gas.\n      # This may be unstable because of yul compiler updates or gas cost changes in upgrades after Cancun.\n      # Also, the transaction data cost affects this, so the value has been tuned to src0 cases.\n      - 55697\n    gasPrice: 10\n    value:\n      - 0\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    data:\n      - >\n        :label src0_size0 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000000\n        0000000000000000000000000000000000000000000000000000000000000000\n      - >\n        :label src0_size1 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000000\n        0000000000000000000000000000000000000000000000000000000000000001\n      - >\n        :label src0_size31 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000000\n        000000000000000000000000000000000000000000000000000000000000001f\n      - >\n        :label src0_size32 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000000\n        0000000000000000000000000000000000000000000000000000000000000020\n      - >\n        :label src0_size33 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000000\n        0000000000000000000000000000000000000000000000000000000000000021\n      - >\n        :label src0_size44767 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000000\n        000000000000000000000000000000000000000000000000000000000000aedf\n      - >\n        :label src0_size44768 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000000\n        000000000000000000000000000000000000000000000000000000000000aee0\n      - >\n        :label src0_size44769 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000000\n        000000000000000000000000000000000000000000000000000000000000aee1\n      - >\n        :label src1_size0 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000001\n        0000000000000000000000000000000000000000000000000000000000000000\n      - >\n        :label src1_size1 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000001\n        0000000000000000000000000000000000000000000000000000000000000001\n      - >\n        :label src1_size31 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000001\n        000000000000000000000000000000000000000000000000000000000000001f\n      - >\n        :label src1_size32 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000001\n        0000000000000000000000000000000000000000000000000000000000000020\n      - >\n        :label src1_size33 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000001\n        0000000000000000000000000000000000000000000000000000000000000021\n      - >\n        :label src1_size44767 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000001\n        000000000000000000000000000000000000000000000000000000000000aedf\n      - >\n        :label src1_size44768 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000001\n        000000000000000000000000000000000000000000000000000000000000aee0\n      - >\n        :label src1_size44769 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000001\n        000000000000000000000000000000000000000000000000000000000000aee1\n      - >\n        :label src31_size0 :raw 0x\n        000000000000000000000000000000000000000000000000000000000000001f\n        0000000000000000000000000000000000000000000000000000000000000000\n      - >\n        :label src31_size1 :raw 0x\n        000000000000000000000000000000000000000000000000000000000000001f\n        0000000000000000000000000000000000000000000000000000000000000001\n      - >\n        :label src31_size31 :raw 0x\n        000000000000000000000000000000000000000000000000000000000000001f\n        000000000000000000000000000000000000000000000000000000000000001f\n      - >\n        :label src31_size32 :raw 0x\n        000000000000000000000000000000000000000000000000000000000000001f\n        0000000000000000000000000000000000000000000000000000000000000020\n      - >\n        :label src31_size33 :raw 0x\n        000000000000000000000000000000000000000000000000000000000000001f\n        0000000000000000000000000000000000000000000000000000000000000021\n      - >\n        :label src31_size44767 :raw 0x\n        000000000000000000000000000000000000000000000000000000000000001f\n        000000000000000000000000000000000000000000000000000000000000aedf\n      - >\n        :label src31_size44768 :raw 0x\n        000000000000000000000000000000000000000000000000000000000000001f\n        000000000000000000000000000000000000000000000000000000000000aee0\n      - >\n        :label src31_size44769 :raw 0x\n        000000000000000000000000000000000000000000000000000000000000001f\n        000000000000000000000000000000000000000000000000000000000000aee1\n      - >\n        :label src32_size0 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000020\n        0000000000000000000000000000000000000000000000000000000000000000\n      - >\n        :label src32_size1 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000020\n        0000000000000000000000000000000000000000000000000000000000000001\n      - >\n        :label src32_size31 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000020\n        000000000000000000000000000000000000000000000000000000000000001f\n      - >\n        :label src32_size32 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000020\n        0000000000000000000000000000000000000000000000000000000000000020\n      - >\n        :label src32_size33 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000020\n        0000000000000000000000000000000000000000000000000000000000000021\n      - >\n        :label src32_size44767 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000020\n        000000000000000000000000000000000000000000000000000000000000aedf\n      - >\n        :label src32_size44768 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000020\n        000000000000000000000000000000000000000000000000000000000000aee0\n      - >\n        :label src32_size44769 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000020\n        000000000000000000000000000000000000000000000000000000000000aee1\n\n  expect:\n\n    - indexes:\n        gas: !!int 0\n        data:\n          - :label src0_size0\n          - :label src0_size1\n          - :label src0_size31\n          - :label src0_size32\n          - :label src0_size33\n          - :label src0_size44767\n          - :label src0_size44768\n          - :label src0_size44769\n          - :label src1_size0\n          - :label src1_size1\n          - :label src1_size31\n          - :label src1_size32\n          - :label src1_size33\n          - :label src1_size44767\n          - :label src1_size44768\n          - :label src1_size44769\n          - :label src31_size0\n          - :label src31_size1\n          - :label src31_size31\n          - :label src31_size32\n          - :label src31_size33\n          - :label src31_size44767\n          - :label src31_size44768\n          - :label src31_size44769\n          - :label src32_size0\n          - :label src32_size1\n          - :label src32_size31\n          - :label src32_size32\n          - :label src32_size33\n          - :label src32_size44767\n          - :label src32_size44768\n          - :label src32_size44769\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x000000000000000000000000000000000000c0de>:\n          storage:\n            0: 1\n\n    - indexes:\n        gas: !!int 1\n        data:\n          - :label src0_size0\n          - :label src0_size1\n          - :label src0_size31\n          - :label src0_size32\n          - :label src0_size33\n          - :label src0_size44767\n          - :label src0_size44768\n          - :label src1_size0\n          - :label src1_size1\n          - :label src1_size31\n          - :label src1_size32\n          - :label src1_size33\n          - :label src31_size0\n          - :label src31_size1\n          - :label src31_size31\n          - :label src31_size32\n          - :label src31_size33\n          - :label src32_size0\n          - :label src32_size1\n          - :label src32_size31\n          - :label src32_size32\n          - :label src32_size33\n          - :label src0_size44769\n\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x000000000000000000000000000000000000c0de>:\n          storage:\n            0: 1\n\n    - indexes:\n        gas: !!int 1\n        data:\n          # Can't regenerate this vectors as failed, now all works\n          - :label src1_size44767\n          - :label src1_size44768\n          - :label src1_size44769\n          - :label src31_size44767\n          - :label src31_size44768\n          - :label src31_size44769\n          - :label src32_size44768\n          - :label src32_size44769\n          - :label src32_size44767\n\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x000000000000000000000000000000000000c0de>:\n          storage:\n            0: 0\n"
  },
  {
    "path": "tests/static/state_tests/Cancun/stEIP5656_MCOPY/MCOPY_memory_expansion_costFiller.yml",
    "content": "MCOPY_memory_expansion_cost:\n\n  _info:\n    comment: Test cases for the memory expansion cost in the MCOPY instruction\n\n  env:\n    currentNumber: 1\n    currentTimestamp: 1687174231\n    currentGasLimit: 1000000\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n\n  pre:\n\n    # Executed code (transaction destination)\n    <contract:target:0x000000000000000000000000000000000000c0de>:\n      balance: 0\n      nonce: 1\n      code: |\n        :yul {\n          function mcopy(dst, src, size) { verbatim_3i_0o(hex\"5e\", dst, src, size) }\n        \n          // Take most of the SSTORE cost before MCOPY. \n          sstore(0, 1)\n        \n          // MCOPY using parameters from CALLDATA.\n          mcopy(calldataload(0), calldataload(32), calldataload(64))\n        \n          // Put MSIZE in storage.\n          sstore(0, msize())\n        }\n      storage:\n        0: fa11ed  # Placeholder for final MSIZE value (memory size is a multiply of 32)\n\n    # Transaction sender\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: 1000000000\n      nonce: 0\n      code: ''\n      storage: { }\n\n  transaction:\n    to: <contract:target:0x000000000000000000000000000000000000c0de>\n    nonce: 0\n    gasLimit:\n      - 100000\n    gasPrice: 10\n    value:\n      - 0\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    data:\n      - >\n        :label dst0_src0_size0 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000000\n        0000000000000000000000000000000000000000000000000000000000000000\n        0000000000000000000000000000000000000000000000000000000000000000\n      - >\n        :label dst0_src31_size706 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000000\n        000000000000000000000000000000000000000000000000000000000000001f\n        00000000000000000000000000000000000000000000000000000000000002c2\n      - >\n        :label dst31_src0_size706 :raw 0x\n        000000000000000000000000000000000000000000000000000000000000001f\n        0000000000000000000000000000000000000000000000000000000000000000\n        00000000000000000000000000000000000000000000000000000000000002c2\n      - >\n        :label dst62_src31_size706 :raw 0x\n        000000000000000000000000000000000000000000000000000000000000003e\n        000000000000000000000000000000000000000000000000000000000000001f\n        00000000000000000000000000000000000000000000000000000000000002c2\n      - >\n        :label dst31_src62_size706 :raw 0x\n        000000000000000000000000000000000000000000000000000000000000001f\n        000000000000000000000000000000000000000000000000000000000000003e\n        00000000000000000000000000000000000000000000000000000000000002c2\n      - >\n        :label dst62_src62_size706 :raw 0x\n        000000000000000000000000000000000000000000000000000000000000003e\n        000000000000000000000000000000000000000000000000000000000000003e\n        00000000000000000000000000000000000000000000000000000000000002c2\n      - >\n        :label dst64_src0_size1344 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000040\n        0000000000000000000000000000000000000000000000000000000000000000\n        0000000000000000000000000000000000000000000000000000000000000540\n      - >\n        :label dst0_src64_size1344 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000000\n        0000000000000000000000000000000000000000000000000000000000000040\n        0000000000000000000000000000000000000000000000000000000000000540\n      - >\n        :label dst64_src33_size1344 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000040\n        0000000000000000000000000000000000000000000000000000000000000021\n        0000000000000000000000000000000000000000000000000000000000000540\n      - >\n        :label dst33_src64_size1344 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000021\n        0000000000000000000000000000000000000000000000000000000000000040\n        0000000000000000000000000000000000000000000000000000000000000540\n      - >\n        :label dst1_src33_size1344 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000001\n        0000000000000000000000000000000000000000000000000000000000000021\n        0000000000000000000000000000000000000000000000000000000000000540\n      - >\n        :label dst33_src1_size1344 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000021\n        0000000000000000000000000000000000000000000000000000000000000001\n        0000000000000000000000000000000000000000000000000000000000000540\n      - >\n        :label dst33_src33_size1344 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000021\n        0000000000000000000000000000000000000000000000000000000000000021\n        0000000000000000000000000000000000000000000000000000000000000540\n      - >\n        :label dst64_src64_size1344 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000040\n        0000000000000000000000000000000000000000000000000000000000000040\n        0000000000000000000000000000000000000000000000000000000000000540\n      - >\n        :label huge_size0 :raw 0x\n        ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n        ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n        0000000000000000000000000000000000000000000000000000000000000000\n      - >\n        :label huge_src0_size1 :raw 0x\n        ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n        0000000000000000000000000000000000000000000000000000000000000000\n        0000000000000000000000000000000000000000000000000000000000000001\n      - >\n        :label huge_dst0_size1 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000000\n        ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n        0000000000000000000000000000000000000000000000000000000000000001\n      - >\n        :label huge_size_n255 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000000\n        0000000000000000000000000000000000000000000000000000000000000000\n        8000000000000000000000000000000000000000000000000000000000000000\n      - >\n        :label huge_dst0_size_n256 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000000\n        0000000000000000000000000000000000000000000000000000000000000001\n        ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n      - >\n        :label huge_src0_size_n256 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000001\n        0000000000000000000000000000000000000000000000000000000000000000\n        ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n      - >\n        :label huge_size_n63 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000000\n        0000000000000000000000000000000000000000000000000000000000000000\n        0000000000000000000000000000000000000000000000008000000000000000\n      - >\n        :label huge_size_n64 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000000001\n        0000000000000000000000000000000000000000000000000000000000000001\n        000000000000000000000000000000000000000000000000ffffffffffffffff\n\n  expect:\n\n    - indexes:\n        data:\n          - :label dst0_src0_size0\n          - :label huge_size0\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x000000000000000000000000000000000000c0de>:\n          storage:\n            0: 0\n\n    - indexes:\n        data:\n          - :label dst0_src31_size706\n          - :label dst31_src0_size706\n          - :label dst62_src31_size706\n          - :label dst31_src62_size706\n          - :label dst62_src62_size706\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x000000000000000000000000000000000000c0de>:\n          storage:\n            0: 768\n\n    - indexes:\n        data:\n          - :label dst64_src0_size1344\n          - :label dst0_src64_size1344\n          - :label dst64_src33_size1344\n          - :label dst33_src64_size1344\n          - :label dst1_src33_size1344\n          - :label dst33_src1_size1344\n          - :label dst33_src33_size1344\n          - :label dst64_src64_size1344\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x000000000000000000000000000000000000c0de>:\n          storage:\n            0: 1408\n\n    - indexes:\n        data:\n          - :label huge_src0_size1\n          - :label huge_dst0_size1\n          - :label huge_size_n255\n          - :label huge_dst0_size_n256\n          - :label huge_src0_size_n256\n          - :label huge_size_n63\n          - :label huge_size_n64\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x000000000000000000000000000000000000c0de>:\n          storage:\n            0: fa11ed\n"
  },
  {
    "path": "tests/static/state_tests/Cancun/stEIP5656_MCOPY/MCOPY_memory_hashFiller.yml",
    "content": "MCOPY_memory_hash:\n\n  _info:\n    comment: Performs exact the same MCOPY twice and dumps the hash of all memory after each MCOPY\n\n  env:\n    currentNumber: 1\n    currentTimestamp: 1687174231\n    currentGasLimit: 1000000\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n\n  pre:\n\n    # Executed code (transaction destination)\n    <contract:target:0x000000000000000000000000000000000000c0de>:\n      balance: 0\n      nonce: 1\n      code: |\n        :yul {\n          function mcopy(dst, src, size) { verbatim_3i_0o(hex\"5e\", dst, src, size) }\n        \n          // Fill one word of memory at 0x1020 with the pattern of unique bytes.\n          mstore(0x1020, 0xa0a1a2a3a4a5a6a7a8a9aAaBaCaDaEaFb0b1b2b3b4b5b6b7b8b9bAbBbCbDbEbF)\n        \n          // MCOPY using parameters from CALLDATA.\n          mcopy(calldataload(0), calldataload(32), calldataload(64))\n        \n          // Dump the hash of full memory.\n          sstore(1, keccak256(0, msize()))\n        \n          // Do exact the same MCOPY once again.\n          mcopy(calldataload(0), calldataload(32), calldataload(64))\n        \n          // Dump the hash of full memory again.\n          sstore(2, keccak256(0, msize()))\n        }\n      storage: { }\n\n    # Transaction sender\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: 1000000000\n      nonce: 0\n      code: ''\n      storage: { }\n\n  transaction:\n    to: <contract:target:0x000000000000000000000000000000000000c0de>\n    nonce: 0\n    gasLimit:\n      - 1000000\n    gasPrice: 10\n    value:\n      - 0\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    data:\n      - >\n        :label clear_low_half_0 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000001010\n        0000000000000000000000000000000000000000000000000000000000000000\n        0000000000000000000000000000000000000000000000000000000000000020\n      - >\n        :label clear_low_half_1 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000001020\n        0000000000000000000000000000000000000000000000000000000000001010\n        0000000000000000000000000000000000000000000000000000000000000010\n      - >\n        :label clear_low_half_2 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000001020\n        0000000000000000000000000000000000000000000000000000000000001040\n        0000000000000000000000000000000000000000000000000000000000000010\n      - >\n        :label clear_high_half_0 :raw 0x\n        0000000000000000000000000000000000000000000000000000000000001030\n        0000000000000000000000000000000000000000000000000000000000000000\n        0000000000000000000000000000000000000000000000000000000000001020\n      - >\n        :label memmove_forward :raw 0x\n        0000000000000000000000000000000000000000000000000000000000001021\n        0000000000000000000000000000000000000000000000000000000000001020\n        0000000000000000000000000000000000000000000000000000000000000123\n      - >\n        :label memmove_backward :raw 0x\n        0000000000000000000000000000000000000000000000000000000000001020\n        0000000000000000000000000000000000000000000000000000000000001023\n        000000000000000000000000000000000000000000000000000000000000001d\n      \n\n  expect:\n\n    - indexes:\n        data:\n          - :label clear_low_half_0\n          - :label clear_low_half_1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x000000000000000000000000000000000000c0de>:\n          storage:\n            1: 0x1a75c0c32a7dc05e25e0f0280e8ee7456edc0092a13a86ed7d20c8edc87fcba9\n            2: 0x1a75c0c32a7dc05e25e0f0280e8ee7456edc0092a13a86ed7d20c8edc87fcba9\n\n    - indexes:\n        data:\n          - :label clear_low_half_2\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x000000000000000000000000000000000000c0de>:\n          storage:\n            1: 0x6a1cf6752c1b8df514452c3004a65c46b1afe7e52030e8100adfb036c180172e\n            2: 0x6a1cf6752c1b8df514452c3004a65c46b1afe7e52030e8100adfb036c180172e\n\n    - indexes:\n        data:\n          - :label clear_high_half_0\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x000000000000000000000000000000000000c0de>:\n          storage:\n            1: 0x6216fe67a1c972fc4bf45303ab3449e0e30c6964d2d458cb786233f9f2afe595\n            2: 0x6216fe67a1c972fc4bf45303ab3449e0e30c6964d2d458cb786233f9f2afe595\n\n    - indexes:\n        data:\n          - :label memmove_forward\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x000000000000000000000000000000000000c0de>:\n          storage:\n            1: 0xb04d651a3b0932c57cb624b7e0bbcc5bc5a546ec5805ebca5b95cec66f695def\n            2: 0xc10df02254713fafe8ed614f51f5e8fa111578a060ecc8bb28e56f4ece9a82ee\n\n    - indexes:\n        data:\n          - :label memmove_backward\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x000000000000000000000000000000000000c0de>:\n          storage:\n            1: 0xf6a2c41ad18ff89feebf7b54a7bac01e27eb1fb3c3ae8919e2fdb4b7c704ca70\n            2: 0xdedd31c55b058c4165ce1daec55b4811a781d716fc87e249a4c0b829196acc2f\n"
  },
  {
    "path": "tests/static/state_tests/Cancun/stEIP5656_MCOPY/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/README.md",
    "content": "# Static State Tests\n\nThis directory contains static state test files that were originally located at [GeneralStateTestsFiller](https://github.com/ethereum/tests/tree/7dc757ec132e372b6178a016b91f4c639f366c02/src/GeneralStateTestsFiller).\n"
  },
  {
    "path": "tests/static/state_tests/Shanghai/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/Shanghai/stEIP3651_warmcoinbase/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/Shanghai/stEIP3651_warmcoinbase/coinbaseWarmAccountCallGasFailFiller.yml",
    "content": "# Check the call is successful due to barely enough gas, only when coinbase is warm\n\ncoinbaseWarmAccountCallGasFail:\n\n  env:\n    currentCoinbase: <eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\n    currentDifficulty: '0x20000'\n    currentGasLimit: \"100000000\"\n    currentNumber: \"1\"\n    currentTimestamp: \"1000\"\n\n\n  pre:\n    <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        :yul berlin\n        {\n           // Depending on the called contract here, the subcall will perform\n           // another call/delegatecall/staticcall/callcode that will only succeed\n           // if coinbase is considered warm by default (post-Shanghai).\n           let calladdr := calldataload(4)\n\n           let callgas := 100\n           switch calladdr\n           case <contract:0x0000000000000000000000000000000000001000> {\n             // Extra: COINBASE + 6xPUSH1 + DUP6 + 2xPOP\n             callgas := add(callgas, 27)\n           }\n           case <contract:0x0000000000000000000000000000000000002000> {\n             // Extra: COINBASE + 6xPUSH1 + DUP6 + 2xPOP\n             callgas := add(callgas, 27)\n           }\n           case <contract:0x0000000000000000000000000000000000003000> {\n             // Extra: COINBASE + 5xPUSH1 + DUP6 + 2xPOP\n             callgas := add(callgas, 24)\n           }\n           case <contract:0x0000000000000000000000000000000000004000> {\n             // Extra: COINBASE + 5xPUSH1 + DUP6 + 2xPOP\n             callgas := add(callgas, 24)\n           }\n           // Call and save result\n           sstore(0, call(callgas, calladdr, 0, 0, 0, 0, 0))\n\n        }\n      nonce: 1\n      storage: {}\n    # Call\n    <contract:0x0000000000000000000000000000000000001000>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code:  |\n        :yul berlin\n        {\n           let cb := coinbase()\n           pop(call(0, cb, 0, 0, 0, 0, 0))\n        }\n      nonce: 1\n      storage: {}\n    # CallCode\n    <contract:0x0000000000000000000000000000000000002000>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code:  |\n        :yul berlin\n        {\n           let cb := coinbase()\n           pop(callcode(0, cb, 0, 0, 0, 0, 0))\n        }\n      nonce: 1\n      storage: {}\n    # DelegateCall\n    <contract:0x0000000000000000000000000000000000003000>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code:  |\n        :yul berlin\n        {\n           let cb := coinbase()\n           pop(delegatecall(0, cb, 0, 0, 0, 0))\n        }\n      nonce: 1\n      storage: {}\n    # StaticCall\n    <contract:0x0000000000000000000000000000000000004000>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code:  |\n        :yul berlin\n        {\n           let cb := coinbase()\n           pop(staticcall(0, cb, 0, 0, 0, 0))\n        }\n      nonce: 1\n      storage: {}\n    # This account is coinbase and will receive the call/staticcall/delegatecall/callcode\n    <eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: 0x\n      nonce: 1\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: 0x\n      nonce: 1\n      storage: {}\n\n\n  transaction:\n    data:\n    # CALL - WRMCB0009\n    - :abi f(uint) <contract:0x0000000000000000000000000000000000001000>\n    # CALLCODE - WRMCB0010\n    - :abi f(uint) <contract:0x0000000000000000000000000000000000002000>\n    # DELEGATECALL - WRMCB0011\n    - :abi f(uint) <contract:0x0000000000000000000000000000000000003000>\n    # STATICCALL - WRMCB0012\n    - :abi f(uint) <contract:0x0000000000000000000000000000000000004000>\n    gasLimit:\n    - 80000\n    gasPrice: 10\n    nonce: 1\n    to: <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>\n    value:\n    - 0\n    secretKey: '<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>'\n\n\n\n  expect:\n    - network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            # Coinbase access post-Shanghai is warm, hence subcall has enough gas and succeeds\n            0x0:  1\n"
  },
  {
    "path": "tests/static/state_tests/Shanghai/stEIP3651_warmcoinbase/coinbaseWarmAccountCallGasFiller.yml",
    "content": "# Check the gas cost of accessing the coinbase account using different opcodes\n\ncoinbaseWarmAccountCallGas:\n\n  env:\n    currentCoinbase: <eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\n    currentDifficulty: '0x20000'\n    currentGasLimit: \"100000000\"\n    currentNumber: \"1\"\n    currentTimestamp: \"1000\"\n\n\n  pre:\n    <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        :yul berlin\n        {\n           // Save the coinbase value \n           let cb := coinbase()\n           \n           // Minimum gas spent on the measurement, which changes depending on\n           // the tested opcode\n           //\n           // Note that this value can change (mostly down) when Yul rolls out new\n           // optimizations\n           let measureGas\n\n           let gas0, gas1\n           let retVal\n\n           // We can only check the gas of one opcode per transaction,\n           // because the first check adds the account to the\n           // 'accessed_addresses' list.\n           switch calldataload(4)\n           case 0 {\n             // EXTCODESIZE\n             measureGas := 8\n             gas0 := gas()\n             retVal := extcodesize(cb)\n             gas1 := gas()\n           }\n           case 1 {\n             // EXTCODECOPY\n             measureGas := 5\n             gas0 := gas()\n             extcodecopy(cb, 0, 0, 0)\n             gas1 := gas()\n           }\n           case 2 {\n             // EXTCODEHASH\n             measureGas := 8\n             gas0 := gas()\n             retVal := extcodehash(cb)\n             gas1 := gas()\n           }\n           case 3 {\n             // BALANCE\n             measureGas := 8\n             gas0 := gas()\n             retVal := balance(cb)\n             gas1 := gas()\n           }\n           case 4 {\n             // CALL\n             measureGas := 11\n             gas0 := gas()\n             retVal := call(10000, cb, 0, 0, 0, 0, 0)\n             gas1 := gas()\n           }\n           case 5 {\n             // CALLCODE\n             measureGas := 11\n             gas0 := gas()\n             retVal := callcode(10000, cb, 0, 0, 0, 0, 0)\n             gas1 := gas()\n           }\n           case 6 {\n             // DELEGATECALL\n             measureGas := 11\n             gas0 := gas()\n             retVal := delegatecall(10000, cb, 0, 0, 0, 0)\n             gas1 := gas()\n           }\n           case 7 {\n             // STATICCALL\n             measureGas := 11\n             gas0 := gas()\n             retVal := staticcall(10000, cb, 0, 0, 0, 0)\n             gas1 := gas()\n           }\n           default {\n             revert(0, 0)\n           }\n\n           // Save the measured gas\n           sstore(0, sub(sub(gas0, gas1), measureGas))\n           mstore(0, retVal)\n           return(0, 32)\n        }\n      nonce: 1\n      storage: {}\n    <eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>:\n      balance: 0x0ba1a9ce0ba1a9ce\n      code: 0x\n      nonce: 1\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: 0x0ba1a9ce0ba1a9ce\n      code: 0x\n      nonce: 1\n      storage: {}\n\n\n  transaction:\n    data:\n    # EXTCODESIZE - WRMCB0001\n    - :abi f(uint) 0\n    # EXTCODECOPY - WRMCB0002\n    - :abi f(uint) 1\n    # EXTCODEHASH - WRMCB0003\n    - :abi f(uint) 2\n    # BALANCE - WRMCB0004\n    - :abi f(uint) 3\n    # CALL - WRMCB0005\n    - :abi f(uint) 4\n    # CALLCODE - WRMCB0006\n    - :abi f(uint) 5\n    # DELEGATECALL - WRMCB0007\n    - :abi f(uint) 6\n    # STATICCALL - WRMCB0008\n    - :abi f(uint) 7\n    gasLimit:\n    - 80000\n    gasPrice: 10\n    nonce: 1\n    to: <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>\n    value:\n    - 0\n    secretKey: '<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>'\n\n\n\n  expect:\n    - network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            # Coinbase access post-Shanghai is warm\n            0x0:  100\n"
  },
  {
    "path": "tests/static/state_tests/Shanghai/stEIP3855_push0/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/Shanghai/stEIP3855_push0/push0Filler.yml",
    "content": "# EIP-3855: PUSH0 instruction\npush0:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x020000'\n    currentGasLimit: '89128960'\n    currentBaseFee: '10'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n\n  pre:\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: 0x100000000000\n      code: ''\n      nonce: '0'\n      storage: {}\n\n    b94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: 0\n      code: |\n        :yul berlin\n          {\n            sstore(0, call(100000, shr(96, calldataload(0)), 0, 0, 0, 0, 0))\n            sstore(1, 1)\n          }\n      nonce: 0\n      storage: {}\n\n    0000000000000000000000000000000000001000:\n      balance: 0\n      # push1(01) push0 sstore\n      code: ':raw 0x60015f55'\n      nonce: '0'\n      storage: {}\n\n    0000000000000000000000000000000000000200:\n      balance: 0\n      # 1024 push0's, 1023 or's, push1(01) swap1 sstore\n      code: \":raw 0x\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        17171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717\\\n        17171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717\\\n        17171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717\\\n        17171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717\\\n        17171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717\\\n        17171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717\\\n        17171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717\\\n        17171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717\\\n        17171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717\\\n        17171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717\\\n        17171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717\\\n        17171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717\\\n        17171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717\\\n        17171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717\\\n        17171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717\\\n        171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717\\\n        60019055\"\n      nonce: '0'\n      storage: {}\n\n    0000000000000000000000000000000000000300:\n      balance: 0\n      # 1025 push0's\n      code: \":raw 0x\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f\"\n      nonce: '0'\n      storage: {}\n\n    0000000000000000000000000000000000000400:\n      balance: 0\n      # Update already existing storage value\n      # push1(02) push0 sstore push1(00) push1(01) sstore\n      code: ':raw 0x60025f556000600155'\n      nonce: '0'\n      storage: {0: 0x0a, 1: 0x0a}\n\n    0000000000000000000000000000000000000500:\n      balance: 0\n      code: |\n        :yul berlin\n        {\n           sstore(0,\n             staticcall(100000, 0x0000000000000000000000000000000000000600, 0, 0, 0, 0))\n           sstore(1, 1)\n           returndatacopy(0x1f, 0x0, 0x1)\n           sstore(0x2, mload(0x00))\n        }\n      nonce: 0\n      storage: {}\n\n    0000000000000000000000000000000000000600:\n      balance: 0\n      # push1(0xff) push0 mstore8 push1(0x01) push1(0x00) return\n      code: ':raw 0x60ff5f5360016000f3'\n      nonce: 0\n      storage: {}\n    0000000000000000000000000000000000000700:\n      balance: 0\n      # Jumps to a JUMPDEST next to PUSH0\n      # push1(4) jump push0 jumpdest push1(1) push0 sstore stop\n      code: ':raw 0x6004565f5b60015f5500'\n      nonce: 0\n      storage: {}\n\n  transaction:\n    data:\n      - ':label single_push0 :raw 0x0000000000000000000000000000000000001000'\n      - ':label 1024_push0   :raw 0x0000000000000000000000000000000000000200'\n      - ':label 1025_push0   :raw 0x0000000000000000000000000000000000000300'\n      - ':label push0_upd_storage :raw 0x0000000000000000000000000000000000000400'\n      - ':label push0_upd_storage_sc :raw 0x0000000000000000000000000000000000000500'\n      - ':label jumpdest :raw 0x0000000000000000000000000000000000000700'\n    gasLimit:\n      - 700000\n    gasPrice: 10\n    nonce: 0\n    secretKey: 45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\n    to: 'b94f5374fce5edbc8e2a8697c15331677e6ebf0b'\n    value:\n    - 0\n\n  expect:\n    - indexes:\n        data: ':label single_push0'\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001000:\n          storage:\n            0x00: 0x01 # Contract executed correctly and saved data to storage\n        b94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          storage:\n            0x00: 0x01 # Call to contract containing opcode PUSH0 (0x0..100) succeeded\n            0x01: 0x01 # Key 1 is filled after the call, indicating contract 0xb94... continued executing\n    - indexes:\n        data: ':label 1024_push0'\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000000200:\n          storage:\n            0x00: 0x01 # Contract executed correctly and saved data to storage\n        b94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          storage:\n            0x00: 0x01 # Call to contract containing opcode PUSH0 (0x0..200) succeeded\n            0x01: 0x01 # Key 1 is filled after the call, indicating contract 0xb94... continued executing\n    # Same expectation, but for London execution fails on 5f opcode, for 3855 it fails with stack overflow\n    - indexes:\n        data: ':label 1025_push0'\n      network:\n        - '>=Cancun'\n      result:\n        b94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          storage:      # Key 0 remained empty, contract 0x0..300 failed\n            0x01: 0x01  # Key 1 filled after the call as the contract 0xb94... continued executing\n    - indexes:\n        data: ':label push0_upd_storage'\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000000400:\n          storage:     # Contract executed and changed initial storage\n            0x00: 0x02\n            0x01: 0x00\n        b94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          storage:\n            0x00: 0x01 # Call to contract 0x0..400 was successful\n            0x01: 0x01 # Filled after the call, indicating contract 0xb84 continued executing\n    - indexes:\n        data: ':label push0_upd_storage_sc'\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000000500:\n          storage:\n            0x00: 0x01 # Call to contract 0x0..0600 succeeded\n            0x01: 0x01 # Contract 0x0..500 continued executed and stored value 1.\n            0x02: 0xff # Value returned by contract 0x0..0600\n        0000000000000000000000000000000000000600:\n          storage: {}\n        b94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          storage:\n            0x00: 0x01 # Call to contract 0x0..500 succeeded\n            0x01: 0x01 # Contract 0xb94f... continued executing and stored value 1.\n    - indexes:\n        data: ':label jumpdest'\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000000700:\n          storage:\n            0x00: 0x01 # Contract 0x0..700 jumped to correct destination and stored value 1.\n        b94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          storage:\n            0x00: 0x01 # Call to contract 0x0..700 succeeded\n            0x01: 0x01 # Contract 0xb94f... continued executing and stored value 1.\n"
  },
  {
    "path": "tests/static/state_tests/Shanghai/stEIP3855_push0/push0Filler_test.yml",
    "content": "# EIP-3855: PUSH0 instruction\npush0:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x020000'\n    currentGasLimit: '89128960'\n    currentBaseFee: '10'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n\n  pre:\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: 0x100000000000\n      code: ''\n      nonce: '0'\n      storage: {}\n\n    <contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: 0\n      code: |\n        :yul berlin\n          {\n            sstore(0, call(100000, shr(96, calldataload(0)), 0, 0, 0, 0, 0))\n            sstore(1, 1)\n          }\n      nonce: 0\n      storage: {}\n\n    <contract:0x0000000000000000000000000000000000001000>:\n      balance: 0\n      # push1(01) push0 sstore\n      code: ':raw 0x60015f55'\n      nonce: '0'\n      storage: {}\n\n    <contract:0x0000000000000000000000000000000000000200>:\n      balance: 0\n      # 1024 push0's, 1023 or's, push1(01) swap1 sstore\n      code: \":raw 0x\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        17171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717\\\n        17171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717\\\n        17171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717\\\n        17171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717\\\n        17171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717\\\n        17171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717\\\n        17171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717\\\n        17171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717\\\n        17171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717\\\n        17171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717\\\n        17171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717\\\n        17171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717\\\n        17171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717\\\n        17171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717\\\n        17171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717\\\n        171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717\\\n        60019055\"\n      nonce: '0'\n      storage: {}\n\n    <contract:0x0000000000000000000000000000000000000300>:\n      balance: 0\n      # 1025 push0's\n      code: \":raw 0x\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\\\n        5f\"\n      nonce: '0'\n      storage: {}\n\n    <contract:0x0000000000000000000000000000000000000400>:\n      balance: 0\n      # Update already existing storage value\n      # push1(02) push0 sstore push1(00) push1(01) sstore\n      code: ':raw 0x60025f556000600155'\n      nonce: '0'\n      storage: {0: 0x0a, 1: 0x0a}\n\n    <contract:0x0000000000000000000000000000000000000500>:\n      balance: 0\n      code: |\n        :yul berlin\n        {\n           sstore(0,\n             staticcall(100000, <contract:0x0000000000000000000000000000000000000600>, 0, 0, 0, 0))\n           sstore(1, 1)\n           returndatacopy(0x1f, 0x0, 0x1)\n           sstore(0x2, mload(0x00))\n        }\n      nonce: 0\n      storage: {}\n\n    <contract:0x0000000000000000000000000000000000000600>:\n      balance: 0\n      # push1(0xff) push0 mstore8 push1(0x01) push1(0x00) return\n      code: ':raw 0x60ff5f5360016000f3'\n      nonce: 0\n      storage: {}\n    <contract:0x0000000000000000000000000000000000000700>:\n      balance: 0\n      # Jumps to a JUMPDEST next to PUSH0\n      # push1(4) jump push0 jumpdest push1(1) push0 sstore stop\n      code: ':raw 0x6004565f5b60015f5500'\n      nonce: 0\n      storage: {}\n\n  transaction:\n    data:\n      - ':label single_push0 :raw <contract:0x0000000000000000000000000000000000001000>'\n      - ':label 1024_push0   :raw <contract:0x0000000000000000000000000000000000000200>'\n      - ':label 1025_push0   :raw <contract:0x0000000000000000000000000000000000000300>'\n      - ':label push0_upd_storage :raw <contract:0x0000000000000000000000000000000000000400>'\n      - ':label push0_upd_storage_sc :raw <contract:0x0000000000000000000000000000000000000500>'\n      - ':label jumpdest :raw <contract:0x0000000000000000000000000000000000000700>'\n    gasLimit:\n      - 700000\n    gasPrice: 10\n    nonce: 0\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: '<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>'\n    value:\n    - 0\n\n  expect:\n    - indexes:\n        data: ':label single_push0'\n      network:\n        - '>=Cancun'\n      result:\n        <contract:0x0000000000000000000000000000000000001000>:\n          storage:\n            0x00: 0x01 # Contract executed correctly and saved data to storage\n        b94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          storage:\n            0x00: 0x01 # Call to contract containing opcode PUSH0 (0x0..100) succeeded\n            0x01: 0x01 # Key 1 is filled after the call, indicating contract 0xb94... continued executing\n    - indexes:\n        data: ':label 1024_push0'\n      network:\n        - '>=Cancun'\n      result:\n        <contract:0x0000000000000000000000000000000000000200>:\n          storage:\n            0x00: 0x01 # Contract executed correctly and saved data to storage\n        b94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          storage:\n            0x00: 0x01 # Call to contract containing opcode PUSH0 (0x0..200) succeeded\n            0x01: 0x01 # Key 1 is filled after the call, indicating contract 0xb94... continued executing\n    # Same expectation, but for London execution fails on 5f opcode, for 3855 it fails with stack overflow\n    - indexes:\n        data: ':label 1025_push0'\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n          storage:      # Key 0 remained empty, contract 0x0..300 failed\n            0x01: 0x01  # Key 1 filled after the call as the contract 0xb94... continued executing\n    - indexes:\n        data: ':label push0_upd_storage'\n      network:\n        - '>=Cancun'\n      result:\n        <contract:0x0000000000000000000000000000000000000400>:\n          storage:     # Contract executed and changed initial storage\n            0x00: 0x02\n            0x01: 0x00\n        b94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          storage:\n            0x00: 0x01 # Call to contract 0x0..400 was successful\n            0x01: 0x01 # Filled after the call, indicating contract 0xb84 continued executing\n    - indexes:\n        data: ':label push0_upd_storage_sc'\n      network:\n        - '>=Cancun'\n      result:\n        <contract:0x0000000000000000000000000000000000000500>:\n          storage:\n            0x00: 0x01 # Call to contract 0x0..0600 succeeded\n            0x01: 0x01 # Contract 0x0..500 continued executed and stored value 1.\n            0x02: 0xff # Value returned by contract 0x0..0600\n        0000000000000000000000000000000000000600:\n          storage: {}\n        <contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n          storage:\n            0x00: 0x01 # Call to contract 0x0..500 succeeded\n            0x01: 0x01 # Contract 0xb94f... continued executing and stored value 1.\n    - indexes:\n        data: ':label jumpdest'\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:0x0000000000000000000000000000000000000700>:\n          storage:\n            0x00: 0x01 # Contract 0x0..700 jumped to correct destination and stored value 1.\n        b94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          storage:\n            0x00: 0x01 # Call to contract 0x0..700 succeeded\n            0x01: 0x01 # Contract 0xb94f... continued executing and stored value 1.\n"
  },
  {
    "path": "tests/static/state_tests/Shanghai/stEIP3855_push0/push0Gas2Filler.yml",
    "content": "# EIP-3855: PUSH0 instruction - test for gas cost\npush0Gas2:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x020000'\n    currentGasLimit: '89128960'\n    currentBaseFee: '10'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n\n  pre:\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: 10000000\n      code: ''\n      nonce: '0'\n      storage: {}\n\n    b94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: 0\n      code: |\n        :yul berlin\n        {\n           sstore(0, call(100000, shr(96, calldataload(0)), 0, 0, 0, 0, 0))\n           sstore(1, 1)\n        }\n      nonce: 0\n      storage: {}\n\n    0000000000000000000000000000000000001000:\n      balance: 0\n      # Calculates the difference between initial gas and gas after using\n      # PUSH0, stores the result in storage key 0x00\n      # gas push0 gas swap1 swap2 sub swap1 sstore\n      code: ':raw 0x5a5f5a9091039055'\n      nonce: '0'\n      storage: {}\n\n    0000000000000000000000000000000000000200:\n      balance: 0\n      # Calculates the difference between initial gas and gas after using\n      # PUSH1(0), stores the result in storage key 0x00\n      # gas push1(0) gas swap1 swap2 sub swap1 sstore\n      code: ':raw 0x5a60005a9091039055'\n      nonce: '0'\n      storage: {}\n\n  transaction:\n    data:\n      - ':label use_push0 :raw 0x0000000000000000000000000000000000001000'\n      - ':label use_push1_00 :raw 0x0000000000000000000000000000000000000200'\n    gasLimit:\n      - 300000\n    gasPrice: 10\n    nonce: 0\n    secretKey: 45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\n    to: 'b94f5374fce5edbc8e2a8697c15331677e6ebf0b'\n    value:\n    - 0\n\n  expect:\n    - indexes:\n        data: ':label use_push0'\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001000:\n          balance: 0\n          storage:  # GAS PUSH0\n            0x00: 4 #  2 + 2\n        b94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          storage:\n            0x00: 1  #Subcall successful\n            0x01: 1\n\n    - indexes:\n        data: ':label use_push1_00'\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000000200:\n          balance: 0\n          storage:  # GAS   PUSH1(0)\n            0x00: 5 # 2   +   3\n        b94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          storage:\n            0x00: 1  #Subcall successful\n            0x01: 1\n"
  },
  {
    "path": "tests/static/state_tests/Shanghai/stEIP3855_push0/push0GasFiller.yml",
    "content": "# EIP-3855: PUSH0 instruction - test for gas price\npush0Gas:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x020000'\n    currentGasLimit: '89128960'\n    currentBaseFee: '10'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n\n  pre:\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: 10000000\n      code: ''\n      nonce: '0'\n      storage: {}\n\n    <contract:target:0x0000000000000000000000000000000000001000>:\n      balance: 0\n      # sstore(0, gas) push0 sstore(0, (sub(sload(0), gas))) stop\n      code: ':raw 0x5a6000555f5a6000540360015500'\n      nonce: '0'\n      storage: {}\n\n  transaction:\n    data:\n      - ''\n    gasLimit:\n      - 100000\n    gasPrice: 10\n    nonce: 0\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: '<contract:target:0x0000000000000000000000000000000000001000>'\n    value:\n    - 0\n\n  expect:\n    - network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x0000000000000000000000000000000000001000>:\n          # Initial gas: 100000\n          #                         Initial Gas     Intrinsic cost   GAS\n          # Initial EVM Gas: 78998 (100000          - 21000          - 2)\n          #                         PUSH1   SSTORE  PUSH0   GAS\n          # Gas Used :       21107 ( 3    + 22100   + 2    + 2  )\n          storage:\n            0: 78998\n            1: 22107\n"
  },
  {
    "path": "tests/static/state_tests/Shanghai/stEIP3860_limitmeterinitcode/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/Shanghai/stEIP3860_limitmeterinitcode/create2InitCodeSizeLimitFiller.yml",
    "content": "# CREATE2 with max allowed init code size\ncreate2InitCodeSizeLimit:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x020000'\n    currentGasLimit: '20000000'\n    currentBaseFee: '10'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n\n  pre:\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: 200000000\n      code: ''\n      nonce: 0\n      storage: {}\n    b94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: 0\n      code: |\n        :yul berlin \n        {\n          mstore(0, calldataload(0))\n          let call_result := call(10000000, 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b, 0, 0, calldatasize(), 0, 0)\n          sstore(0, call_result)\n          sstore(1, 1)\n        }\n      nonce: 0\n      storage: {}\n    c94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: 0\n      code: |\n        :yul berlin \n        {\n          // :yul { codecopy(0x00, 0x00, 0x0a) return(0x00, 0x0a) }\n          mstore(0, 0x600a80600080396000f300000000000000000000000000000000000000000000) \n          // get initcode size from calldata\n          let initcode_size := calldataload(0)\n          let gas_before := gas()\n          let create_result := create2(0, 0, initcode_size, 0xdeadbeef)\n          sstore(10, sub(gas_before, gas()))\n          sstore(0, create_result)\n        }\n      nonce: 0\n      storage: {}\n\n  transaction:\n    data: \n      # Valid initcode size = 49152 bytes\n      - ':label valid :raw 0x000000000000000000000000000000000000000000000000000000000000c000'\n      # Invalid initcode size = 49153 bytes\n      - ':label invalid :raw 0x000000000000000000000000000000000000000000000000000000000000c001'\n    gasLimit:\n      - 15000000\n    gasPrice: 10\n    nonce: 0\n    secretKey: 45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\n    to: 'b94f5374fce5edbc8e2a8697c15331677e6ebf0b'\n    value:\n    - 0\n\n  expect:\n    - indexes:\n       data: ':label valid'\n      network:\n        - '>=Cancun'\n      result:\n       a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 1\n       b94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          storage:\n              '0': 1 # subcall successful\n              '1': 1 # test successful, no OOG\n       c94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          storage:\n              '0': '9e7a3337d18c31fe4c1fe51ab2da6cfd3629923d' # created account\n               # Difference with Paris is the charge for initcode 49152 // 32 * 2 = 3072 gas\n              '10': 55539                                     # gas used by CREATE\n       9e7a3337d18c31fe4c1fe51ab2da6cfd3629923d:\n          balance: 0\n          code: '0x600a80600080396000f3'\n          nonce: 1\n          storage: {}\n\n    - indexes:\n       data: ':label invalid'\n      network:\n        - '>=Cancun'\n      result:\n       a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 1\n       b94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 0\n          storage:\n              '0': 0 # subcall aborted\n              '1': 1 # test successful, no OOG\n       c94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          storage: {}\n       67d49ae27e912b3b508d62ce1e463298db6edf32:\n          shouldnotexist: 1\n"
  },
  {
    "path": "tests/static/state_tests/Shanghai/stEIP3860_limitmeterinitcode/createInitCodeSizeLimitFiller.yml",
    "content": "# CREATE with max allowed init code size\ncreateInitCodeSizeLimit:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x020000'\n    currentGasLimit: '20000000'\n    currentBaseFee: '10'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n\n  pre:\n\n\n    a94f5374Fce5edBC8E2a8697C15331677e6EbF0B:\n      balance: 200000000\n      code: 0x\n      nonce: 1\n      storage: {}\n\n    bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb:\n      balance: 0\n      code: |\n        :yul berlin \n        {\n          mstore(0, calldataload(0))\n          let call_result := call(10000000, 0xc0de, 0, 0, calldatasize(), 0, 0)\n          sstore(0, call_result)\n          sstore(1, 1)\n        }\n      nonce: 1\n      storage: {}\n \n    000000000000000000000000000000000000c0de:\n      balance: 0\n      code: |\n        :yul berlin \n        {\n          // :yul { codecopy(0x00, 0x00, 0x0a) return(0x00, 0x0a) }\n          mstore(0, 0x600a80600080396000f300000000000000000000000000000000000000000000) \n          // get initcode size from calldata\n          let initcode_size := calldataload(0)\n          let gas_before := gas()\n          let create_result := create(0, 0, initcode_size)\n          sstore(10, sub(gas_before, gas()))\n          sstore(0, create_result)\n        }\n      nonce: 1\n      storage: {}\n\n  transaction:\n    data:\n      # Valid initcode size = 49152 bytes\n      - ':label valid :raw 0x000000000000000000000000000000000000000000000000000000000000c000'\n      # Invalid initcode size = 49153 bytes\n      - ':label invalid :raw 0x000000000000000000000000000000000000000000000000000000000000c001'\n    gasLimit:\n      - 15000000\n    gasPrice: 10\n    nonce: 1\n    secretKey: 45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\n    to: bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\n    value:\n    - 0\n\n  expect:\n\n    - indexes:\n       data: ':label valid'\n      network:\n        - '>=Cancun'\n      result:\n       a94f5374Fce5edBC8E2a8697C15331677e6EbF0B:\n          nonce: 2\n\n       bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb:\n          storage:\n              '0': 1 # subcall successful\n              '1': 1 # test successful, no OOG\n\n       000000000000000000000000000000000000c0de:\n          storage:\n              '0': 0x5f6baaeb5b7c97725f84d1569c4abc85135f4716 # created account\n               # Difference with Paris is the charge for initcode 49152 // 32 * 2 = 3072 gas\n              '10': 46323                                     # gas used by CREATE\n       5f6baaeb5b7c97725f84d1569c4abc85135f4716:\n          balance: 0\n          code: '0x600a80600080396000f3'\n          nonce: 1\n          storage: {}\n\n\n    - indexes:\n       data: ':label invalid'\n      network:\n        - '>=Cancun'\n      result:\n       a94f5374Fce5edBC8E2a8697C15331677e6EbF0B:\n          nonce: 2\n\n       bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb:\n          nonce: 1\n          storage:\n              '0': 0 # subcall aborted\n              '1': 1 # test successful, no OOG\n\n       000000000000000000000000000000000000c0de:\n          storage: {}\n\n\n       682327124c5d2dc0cd2158ba65d37ac3d2140c91:\n          shouldnotexist: 1\n"
  },
  {
    "path": "tests/static/state_tests/Shanghai/stEIP3860_limitmeterinitcode/creationTxInitCodeSizeLimitFiller.yml",
    "content": "# Creation transaction with max allowed initcode size (EIP-3860)\ncreationTxInitCodeSizeLimit:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x020000'\n    currentGasLimit: '20000000'\n    currentBaseFee: '10'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n\n  pre:\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: 200000000\n      code: ''\n      nonce: 0\n      storage: {}\n\n  transaction:\n    data: \n      # \"codecopy(0x00, 0x0b, 0x10) return(0x00, 0x10)\"\n      # initcode size = 49152\n      - ':label valid :raw 0x601080600b6000396000f360606040523615610074576000357c010000000000000000000000000000000000000000000000000000000090048063a3b9f3e514610079578063b50345b61461008d578063d4f639ea146100a1578063d9bb316f146100b5578063e22a5d5b146100c9578063f983c0fa146100dd57610074565b610002565b346100025761008b60048050506100f1565b005b346100025761009f6004805050611097565b005b34610002576100b3600480505061203d565b005b34610002576100c76004805050612fe3565b005b34610002576100db6004805050613f89565b005b34610002576100ef6004805050614f2f565b005b6000731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000019050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000002905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000390508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000049050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000005905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000690508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000079050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000008905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000000990508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000000109050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000101905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010290508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001039050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000104905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010590508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001069050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000107905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010890508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001099050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000110905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020190508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002029050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000203905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020490508050731000000000000000000000000000000000000205905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000206905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020790508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002089050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000209905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000021090508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003019050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000302905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030390508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003049050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000305905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030690508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003079050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000308905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000030990508050731000000000000000000000000000000000000310905080507310000000000000000000000000000000000003109050805073100000000000000000000000000000000000000190508050731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000029050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000003905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000490508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000059050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000006905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000790508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000089050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000009905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000001090508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000001019050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000102905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010390508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001049050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000105905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010690508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001079050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000108905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010990508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001109050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000201905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020290508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002039050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020590508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002069050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000207905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020890508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002099050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000210905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000030190508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003029050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000303905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030490508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003059050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000306905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030790508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003089050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000309905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000031090508050731000000000000000000000000000000000000310905080505b50565b6000731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000019050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000002905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000390508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000049050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000005905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000690508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000079050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000008905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000000990508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000000109050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000101905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010290508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001039050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000104905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010590508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001069050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000107905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010890508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001099050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000110905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020190508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002029050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000203905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020490508050731000000000000000000000000000000000000205905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000206905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020790508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002089050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000209905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000021090508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003019050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000302905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030390508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003049050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000305905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030690508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003079050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000308905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000030990508050731000000000000000000000000000000000000310905080507310000000000000000000000000000000000003109050805073100000000000000000000000000000000000000190508050731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000029050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000003905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000490508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000059050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000006905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000790508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000089050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000009905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000001090508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000001019050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000102905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010390508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001049050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000105905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010690508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001079050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000108905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010990508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001109050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000201905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020290508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002039050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020590508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002069050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000207905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020890508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002099050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000210905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000030190508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003029050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000303905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030490508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003059050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000306905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030790508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003089050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000309905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000031090508050731000000000000000000000000000000000000310905080505b50565b6000731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000019050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000002905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000390508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000049050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000005905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000690508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000079050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000008905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000000990508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000000109050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000101905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010290508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001039050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000104905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010590508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001069050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000107905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010890508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001099050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000110905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020190508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002029050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000203905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020490508050731000000000000000000000000000000000000205905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000206905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020790508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002089050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000209905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000021090508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003019050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000302905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030390508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003049050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000305905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030690508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003079050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000308905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000030990508050731000000000000000000000000000000000000310905080507310000000000000000000000000000000000003109050805073100000000000000000000000000000000000000190508050731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000029050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000003905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000490508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000059050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000006905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000790508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000089050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000009905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000001090508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000001019050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000102905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010390508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001049050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000105905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010690508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001079050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000108905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010990508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001109050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000201905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020290508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002039050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020590508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002069050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000207905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020890508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002099050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000210905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000030190508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003029050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000303905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030490508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003059050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000306905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030790508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003089050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000309905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000031090508050731000000000000000000000000000000000000310905080505b50565b6000731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000019050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000002905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000390508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000049050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000005905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000690508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000079050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000008905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000000990508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000000109050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000101905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010290508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001039050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000104905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010590508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001069050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000107905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010890508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001099050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000110905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020190508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002029050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000203905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020490508050731000000000000000000000000000000000000205905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000206905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020790508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002089050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000209905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000021090508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003019050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000302905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030390508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003049050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000305905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030690508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003079050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000308905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000030990508050731000000000000000000000000000000000000310905080507310000000000000000000000000000000000003109050805073100000000000000000000000000000000000000190508050731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000029050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000003905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000490508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000059050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000006905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000790508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000089050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000009905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000001090508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000001019050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000102905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010390508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001049050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000105905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010690508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001079050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000108905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010990508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001109050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000201905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020290508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002039050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020590508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002069050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000207905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020890508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002099050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000210905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000030190508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003029050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000303905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030490508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003059050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000306905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030790508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003089050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000309905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000031090508050731000000000000000000000000000000000000310905080505b50565b6000731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000019050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000002905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000390508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000049050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000005905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000690508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000079050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000008905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000000990508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000000109050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000101905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010290508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001039050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000104905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010590508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001069050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000107905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010890508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001099050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000110905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020190508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002029050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000203905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020490508050731000000000000000000000000000000000000205905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000206905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020790508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002089050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000209905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000021090508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003019050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000302905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030390508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003049050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000305905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030690508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003079050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000308905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000030990508050731000000000000000000000000000000000000310905080507310000000000000000000000000000000000003109050805073100000000000000000000000000000000000000190508050731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000029050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000003905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000490508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000059050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000006905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000790508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000089050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000009905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000001090508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000001019050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000102905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010390508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001049050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000105905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010690508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001079050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000108905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010990508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001109050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000201905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020290508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002039050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020590508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002069050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000207905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020890508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002099050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000210905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000030190508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003029050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000303905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030490508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003059050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000306905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030790508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003089050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000309905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000031090508050731000000000000000000000000000000000000310905080505b50565b6000731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000019050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000002905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000390508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000049050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000005905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000690508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000079050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000008905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000000990508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000000109050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000101905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010290508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001039050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000104905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010590508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001069050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000107905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010890508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001099050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000110905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020190508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002029050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000203905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020490508050731000000000000000000000000000000000000205905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000206905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020790508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002089050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000209905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000021090508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003019050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000302905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030390508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003049050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000305905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030690508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003079050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000308905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000030990508050731000000000000000000000000000000000000310905080507310000000000000000000000000000000000003109050805073100000000000000000000000000000000000000190508050731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000029050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000003905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000490508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000059050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000006905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000790508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000089050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000009905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000001090508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000001019050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000102905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010390508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001049050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000105905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010690508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001079050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000108905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010990508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001109050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000201905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020290508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002039050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020590508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002069050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000207905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020890508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002099050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000210905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000030190508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003029050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000303905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030490508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003059050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000306905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030790508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003089050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000309905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000031090508050731000000000000000000000000000000000000310905080505b505660606040523615610074576000357c010000000000000000000000000000000000000000000000000000000090048063a3b9f3e514610079578063b50345b61461008d578063d4f639ea146100a1578063d9bb316f146100b5578063e22a5d5b146100c9578063f983c0fa146100dd57610074565b610002565b346100025761008b60048050506100f1565b005b346100025761009f6004805050611097565b005b34610002576100b3600480505061203d565b005b34610002576100c76004805050612fe3565b005b34610002576100db6004805050613f89565b005b34610002576100ef6004805050614f2f565b005b6000731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000019050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000002905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000390508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000049050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000005905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000690508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000079050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000008905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000000990508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000000109050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000101905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010290508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001039050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000104905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010590508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001069050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000107905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010890508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001099050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000110905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020190508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002029050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000203905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020490508050731000000000000000000000000000000000000205905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000206905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020790508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002089050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000209905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000021090508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003019050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000302905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030390508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003049050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000305905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030690508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003079050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000308905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000030990508050731000000000000000000000000000000000000310905080507310000000000000000000000000000000000003109050805073100000000000000000000000000000000000000190508050731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000029050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000003905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000490508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000059050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000006905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000790508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000089050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000009905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000001090508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000001019050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000102905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010390508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001049050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000105905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010690508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001079050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000108905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010990508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001109050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000201905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020290508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002039050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020590508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002069050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000207905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020890508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002099050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000210905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000030190508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003029050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000303905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030490508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003059050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000306905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030790508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003089050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000309905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000031090508050731000000000000000000000000000000000000310905080505b50565b6000731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000019050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000002905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000390508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000049050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000005905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000690508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000079050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000008905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000000990508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000000109050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000101905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010290508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001039050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000104905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010590508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001069050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000107905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010890508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001099050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000110905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020190508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002029050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000203905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020490508050731000000000000000000000000000000000000205905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000206905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020790508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002089050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000209905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000021090508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003019050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000302905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030390508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003049050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000305905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030690508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003079050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000308905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000030990508050731000000000000000000000000000000000000310905080507310000000000000000000000000000000000003109050805073100000000000000000000000000000000000000190508050731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000029050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000003905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000490508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000059050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000006905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000790508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000089050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000009905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000001090508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000001019050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000102905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010390508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001049050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000105905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010690508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001079050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000108905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010990508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001109050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000201905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020290508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002039050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020590508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002069050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000207905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020890508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002099050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000210905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000030190508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003029050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000303905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030490508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003059050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000306905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030790508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003089050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000309905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000031090508050731000000000000000000000000000000000000310905080505b50565b6000731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000019050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000002905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000390508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000049050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000005905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000690508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000079050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000008905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000000990508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000000109050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000101905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010290508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001039050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000104905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010590508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001069050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000107905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010890508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001099050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000110905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020190508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002029050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000203905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020490508050731000000000000000000000000000000000000205905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000206905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020790508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002089050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000209905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000021090508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003019050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000302905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030390508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003049050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000305905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030690508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003079050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000308905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000030990508050731000000000000000000000000000000000000310905080507310000000000000000000000000000000000003109050805073100000000000000000000000000000000000000190508050731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000029050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000003905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000490508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000059050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000006905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000790508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000089050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000009905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000001090508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000001019050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000102905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010390508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001049050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000105905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010690508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001079050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000108905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010990508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001109050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000201905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020290508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002039050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020590508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002069050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000207905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020890508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002099050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000210905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000030190508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003029050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000303905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030490508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003059050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000306905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030790508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003089050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000309905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000031090508050731000000000000000000000000000000000000310905080505b50565b6000731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000019050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000002905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000390508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000049050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000005905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000690508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000079050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000008905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000000990508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000000109050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000101905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010290508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001039050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000104905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010590508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001069050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000107905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010890508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001099050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000110905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020190508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002029050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000203905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020490508050731000000000000000000000000000000000000205905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000206905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020790508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002089050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000209905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000021090508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003019050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000302905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030390508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003049050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000305905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030690508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003079050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000308905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000030990508050731000000000000000000000000000000000000310905080507310000000000000000000000000000000000003109050805073100000000000000000000000000000000000000190508050731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000029050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000003905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000490508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000059050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000006905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000790508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000089050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000009905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000001090508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000001019050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000102905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010390508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001049050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000105905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010690508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001079050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000108905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010990508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001109050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000201905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020290508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002039050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020590508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002069050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000207905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020890508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002099050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000210905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000030190508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003029050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000303905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030490508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003059050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000306905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030790508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003089050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000309905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000031090508050731000000000000000000000000000000000000310905080505b50565b6000731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000019050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000002905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000390508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000049050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000005905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000690508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000079050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000008905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000000990508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000000109050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000101905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010290508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001039050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000104905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010590508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001069050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000107905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010890508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001099050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000110905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020190508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002029050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000203905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020490508050731000000000000000000000000000000000000205905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000206905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020790508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002089050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000209905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000021090508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003019050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000302905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030390508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003049050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000305905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030690508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003079050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000308905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000030990508050731000000000000000000000000000000000000310905080507310000000000000000000000000000000000003109050805073100000000000000000000000000000000000000190508050731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000029050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000003905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000490508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000059050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000006905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000790508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000089050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000009905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000001090508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000001019050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000102905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010390508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001049050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000105905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010690508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001079050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000108905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010990508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001109050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000201905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020290508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002039050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020590508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002069050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000207905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020890508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002099050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000210905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000030190508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003029050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000303905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030490508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003059050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000306905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030790508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003089050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000309905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000031090508050731000000000000000000000000000000000000310905080505b50565b6000731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000019050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000002905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000390508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000049050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000005905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000690508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000079050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000008905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000000990508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000000109050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000101905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010290508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001039050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000104905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010590508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001069050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000107905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010890508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001099050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000110905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020190508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002029050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000203905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020490508050731000000000000000000000000000000000000205905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000206905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020790508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002089050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000209905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000021090508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003019050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000302905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030390508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003049050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000305905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030690508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003079050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000308905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000030990508050731000000000000000000000000000000000000310905080507310000000000000000000000000000000000003109050805073100000000000000000000000000000000000000190508050731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000029050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000003905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000490508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000059050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000006905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000790508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000089050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000009905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000001090508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000001019050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000102905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010390508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001049050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000105905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010690508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001079050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000108905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010990508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001109050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000201905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020290508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002039050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020590508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002069050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000207905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020890508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002099050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000210905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000030190508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003029050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000303905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030490508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003059050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000306905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030790508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003089050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000309905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000031090508050731000000000000000000000000000000000000310905080505b505660606040523615610074576000357c010000000000000000000000000000000000000000000000000000000090048063a3b9f3e514610079578063b50345b61461008d578063d4f639ea146100a1578063d9bb316f146100b5578063e22a5d5b146100c9578063f983c0fa146100dd57610074565b610002565b346100025761008b60048050506100f1565b005b346100025761009f6004805050611097565b005b34610002576100b3600480505061203d565b005b34610002576100c76004805050612fe3565b005b34610002576100db6004805050613f89565b005b34610002576100ef6004805050614f2f565b005b600073100000000000000000000000000000000000000190508050731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000029050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000003905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000490508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000059050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000006905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000790508050731000000000000000000000000000000000'\n      # initcode size = 49153 (valid only before EIP-3860)\n      - ':label invalid :raw 0x601080600b6000396000f360606040523615610074576000357c010000000000000000000000000000000000000000000000000000000090048063a3b9f3e514610079578063b50345b61461008d578063d4f639ea146100a1578063d9bb316f146100b5578063e22a5d5b146100c9578063f983c0fa146100dd57610074565b610002565b346100025761008b60048050506100f1565b005b346100025761009f6004805050611097565b005b34610002576100b3600480505061203d565b005b34610002576100c76004805050612fe3565b005b34610002576100db6004805050613f89565b005b34610002576100ef6004805050614f2f565b005b6000731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000019050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000002905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000390508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000049050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000005905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000690508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000079050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000008905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000000990508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000000109050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000101905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010290508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001039050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000104905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010590508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001069050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000107905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010890508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001099050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000110905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020190508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002029050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000203905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020490508050731000000000000000000000000000000000000205905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000206905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020790508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002089050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000209905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000021090508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003019050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000302905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030390508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003049050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000305905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030690508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003079050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000308905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000030990508050731000000000000000000000000000000000000310905080507310000000000000000000000000000000000003109050805073100000000000000000000000000000000000000190508050731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000029050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000003905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000490508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000059050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000006905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000790508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000089050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000009905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000001090508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000001019050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000102905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010390508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001049050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000105905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010690508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001079050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000108905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010990508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001109050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000201905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020290508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002039050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020590508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002069050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000207905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020890508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002099050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000210905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000030190508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003029050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000303905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030490508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003059050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000306905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030790508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003089050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000309905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000031090508050731000000000000000000000000000000000000310905080505b50565b6000731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000019050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000002905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000390508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000049050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000005905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000690508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000079050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000008905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000000990508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000000109050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000101905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010290508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001039050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000104905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010590508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001069050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000107905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010890508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001099050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000110905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020190508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002029050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000203905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020490508050731000000000000000000000000000000000000205905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000206905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020790508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002089050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000209905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000021090508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003019050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000302905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030390508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003049050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000305905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030690508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003079050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000308905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000030990508050731000000000000000000000000000000000000310905080507310000000000000000000000000000000000003109050805073100000000000000000000000000000000000000190508050731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000029050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000003905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000490508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000059050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000006905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000790508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000089050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000009905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000001090508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000001019050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000102905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010390508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001049050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000105905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010690508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001079050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000108905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010990508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001109050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000201905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020290508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002039050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020590508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002069050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000207905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020890508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002099050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000210905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000030190508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003029050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000303905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030490508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003059050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000306905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030790508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003089050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000309905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000031090508050731000000000000000000000000000000000000310905080505b50565b6000731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000019050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000002905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000390508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000049050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000005905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000690508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000079050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000008905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000000990508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000000109050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000101905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010290508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001039050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000104905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010590508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001069050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000107905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010890508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001099050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000110905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020190508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002029050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000203905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020490508050731000000000000000000000000000000000000205905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000206905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020790508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002089050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000209905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000021090508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003019050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000302905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030390508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003049050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000305905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030690508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003079050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000308905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000030990508050731000000000000000000000000000000000000310905080507310000000000000000000000000000000000003109050805073100000000000000000000000000000000000000190508050731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000029050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000003905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000490508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000059050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000006905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000790508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000089050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000009905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000001090508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000001019050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000102905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010390508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001049050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000105905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010690508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001079050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000108905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010990508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001109050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000201905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020290508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002039050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020590508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002069050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000207905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020890508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002099050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000210905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000030190508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003029050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000303905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030490508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003059050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000306905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030790508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003089050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000309905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000031090508050731000000000000000000000000000000000000310905080505b50565b6000731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000019050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000002905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000390508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000049050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000005905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000690508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000079050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000008905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000000990508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000000109050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000101905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010290508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001039050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000104905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010590508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001069050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000107905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010890508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001099050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000110905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020190508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002029050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000203905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020490508050731000000000000000000000000000000000000205905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000206905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020790508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002089050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000209905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000021090508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003019050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000302905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030390508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003049050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000305905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030690508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003079050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000308905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000030990508050731000000000000000000000000000000000000310905080507310000000000000000000000000000000000003109050805073100000000000000000000000000000000000000190508050731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000029050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000003905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000490508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000059050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000006905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000790508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000089050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000009905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000001090508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000001019050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000102905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010390508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001049050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000105905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010690508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001079050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000108905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010990508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001109050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000201905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020290508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002039050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020590508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002069050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000207905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020890508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002099050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000210905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000030190508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003029050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000303905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030490508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003059050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000306905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030790508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003089050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000309905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000031090508050731000000000000000000000000000000000000310905080505b50565b6000731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000019050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000002905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000390508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000049050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000005905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000690508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000079050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000008905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000000990508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000000109050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000101905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010290508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001039050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000104905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010590508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001069050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000107905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010890508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001099050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000110905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020190508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002029050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000203905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020490508050731000000000000000000000000000000000000205905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000206905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020790508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002089050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000209905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000021090508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003019050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000302905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030390508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003049050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000305905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030690508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003079050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000308905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000030990508050731000000000000000000000000000000000000310905080507310000000000000000000000000000000000003109050805073100000000000000000000000000000000000000190508050731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000029050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000003905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000490508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000059050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000006905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000790508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000089050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000009905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000001090508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000001019050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000102905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010390508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001049050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000105905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010690508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001079050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000108905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010990508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001109050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000201905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020290508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002039050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020590508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002069050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000207905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020890508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002099050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000210905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000030190508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003029050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000303905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030490508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003059050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000306905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030790508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003089050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000309905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000031090508050731000000000000000000000000000000000000310905080505b50565b6000731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000019050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000002905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000390508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000049050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000005905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000690508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000079050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000008905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000000990508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000000109050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000101905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010290508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001039050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000104905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010590508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001069050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000107905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010890508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001099050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000110905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020190508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002029050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000203905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020490508050731000000000000000000000000000000000000205905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000206905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020790508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002089050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000209905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000021090508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003019050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000302905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030390508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003049050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000305905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030690508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003079050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000308905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000030990508050731000000000000000000000000000000000000310905080507310000000000000000000000000000000000003109050805073100000000000000000000000000000000000000190508050731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000029050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000003905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000490508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000059050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000006905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000790508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000089050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000009905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000001090508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000001019050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000102905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010390508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001049050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000105905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010690508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001079050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000108905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010990508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001109050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000201905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020290508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002039050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020590508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002069050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000207905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020890508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002099050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000210905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000030190508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003029050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000303905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030490508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003059050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000306905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030790508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003089050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000309905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000031090508050731000000000000000000000000000000000000310905080505b505660606040523615610074576000357c010000000000000000000000000000000000000000000000000000000090048063a3b9f3e514610079578063b50345b61461008d578063d4f639ea146100a1578063d9bb316f146100b5578063e22a5d5b146100c9578063f983c0fa146100dd57610074565b610002565b346100025761008b60048050506100f1565b005b346100025761009f6004805050611097565b005b34610002576100b3600480505061203d565b005b34610002576100c76004805050612fe3565b005b34610002576100db6004805050613f89565b005b34610002576100ef6004805050614f2f565b005b6000731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000019050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000002905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000390508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000049050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000005905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000690508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000079050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000008905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000000990508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000000109050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000101905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010290508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001039050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000104905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010590508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001069050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000107905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010890508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001099050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000110905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020190508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002029050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000203905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020490508050731000000000000000000000000000000000000205905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000206905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020790508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002089050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000209905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000021090508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003019050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000302905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030390508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003049050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000305905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030690508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003079050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000308905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000030990508050731000000000000000000000000000000000000310905080507310000000000000000000000000000000000003109050805073100000000000000000000000000000000000000190508050731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000029050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000003905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000490508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000059050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000006905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000790508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000089050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000009905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000001090508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000001019050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000102905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010390508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001049050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000105905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010690508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001079050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000108905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010990508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001109050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000201905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020290508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002039050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020590508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002069050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000207905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020890508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002099050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000210905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000030190508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003029050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000303905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030490508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003059050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000306905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030790508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003089050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000309905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000031090508050731000000000000000000000000000000000000310905080505b50565b6000731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000019050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000002905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000390508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000049050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000005905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000690508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000079050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000008905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000000990508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000000109050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000101905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010290508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001039050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000104905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010590508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001069050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000107905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010890508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001099050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000110905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020190508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002029050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000203905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020490508050731000000000000000000000000000000000000205905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000206905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020790508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002089050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000209905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000021090508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003019050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000302905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030390508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003049050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000305905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030690508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003079050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000308905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000030990508050731000000000000000000000000000000000000310905080507310000000000000000000000000000000000003109050805073100000000000000000000000000000000000000190508050731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000029050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000003905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000490508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000059050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000006905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000790508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000089050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000009905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000001090508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000001019050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000102905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010390508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001049050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000105905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010690508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001079050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000108905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010990508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001109050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000201905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020290508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002039050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020590508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002069050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000207905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020890508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002099050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000210905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000030190508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003029050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000303905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030490508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003059050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000306905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030790508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003089050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000309905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000031090508050731000000000000000000000000000000000000310905080505b50565b6000731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000019050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000002905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000390508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000049050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000005905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000690508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000079050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000008905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000000990508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000000109050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000101905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010290508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001039050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000104905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010590508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001069050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000107905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010890508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001099050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000110905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020190508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002029050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000203905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020490508050731000000000000000000000000000000000000205905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000206905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020790508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002089050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000209905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000021090508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003019050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000302905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030390508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003049050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000305905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030690508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003079050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000308905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000030990508050731000000000000000000000000000000000000310905080507310000000000000000000000000000000000003109050805073100000000000000000000000000000000000000190508050731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000029050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000003905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000490508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000059050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000006905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000790508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000089050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000009905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000001090508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000001019050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000102905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010390508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001049050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000105905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010690508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001079050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000108905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010990508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001109050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000201905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020290508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002039050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020590508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002069050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000207905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020890508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002099050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000210905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000030190508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003029050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000303905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030490508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003059050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000306905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030790508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003089050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000309905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000031090508050731000000000000000000000000000000000000310905080505b50565b6000731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000019050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000002905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000390508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000049050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000005905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000690508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000079050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000008905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000000990508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000000109050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000101905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010290508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001039050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000104905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010590508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001069050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000107905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010890508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001099050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000110905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020190508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002029050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000203905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020490508050731000000000000000000000000000000000000205905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000206905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020790508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002089050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000209905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000021090508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003019050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000302905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030390508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003049050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000305905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030690508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003079050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000308905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000030990508050731000000000000000000000000000000000000310905080507310000000000000000000000000000000000003109050805073100000000000000000000000000000000000000190508050731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000029050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000003905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000490508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000059050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000006905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000790508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000089050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000009905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000001090508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000001019050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000102905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010390508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001049050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000105905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010690508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001079050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000108905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010990508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001109050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000201905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020290508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002039050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020590508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002069050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000207905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020890508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002099050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000210905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000030190508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003029050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000303905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030490508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003059050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000306905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030790508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003089050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000309905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000031090508050731000000000000000000000000000000000000310905080505b50565b6000731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000019050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000002905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000390508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000049050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000005905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000690508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000079050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000008905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000000990508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000000109050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000101905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010290508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001039050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000104905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010590508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001069050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000107905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010890508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001099050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000110905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020190508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002029050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000203905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020490508050731000000000000000000000000000000000000205905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000206905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020790508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002089050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000209905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000021090508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003019050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000302905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030390508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003049050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000305905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030690508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003079050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000308905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000030990508050731000000000000000000000000000000000000310905080507310000000000000000000000000000000000003109050805073100000000000000000000000000000000000000190508050731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000029050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000003905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000490508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000059050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000006905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000790508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000089050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000009905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000001090508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000001019050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000102905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010390508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001049050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000105905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010690508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001079050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000108905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010990508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001109050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000201905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020290508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002039050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020590508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002069050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000207905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020890508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002099050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000210905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000030190508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003029050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000303905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030490508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003059050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000306905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030790508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003089050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000309905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000031090508050731000000000000000000000000000000000000310905080505b50565b6000731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000019050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000002905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000390508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000049050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000005905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000690508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000079050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000008905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000000990508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000000109050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000101905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010290508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001039050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000104905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010590508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001069050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000107905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010890508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001099050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000110905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020190508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002029050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000203905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020490508050731000000000000000000000000000000000000205905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000206905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020790508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002089050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000209905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000021090508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003019050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000302905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030390508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003049050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000305905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030690508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003079050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000308905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000030990508050731000000000000000000000000000000000000310905080507310000000000000000000000000000000000003109050805073100000000000000000000000000000000000000190508050731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000029050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000003905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000490508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000059050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000006905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000790508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000089050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000009905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000001090508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000001019050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000102905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010390508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001049050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000105905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010690508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001079050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000108905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010990508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001109050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000201905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020290508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002039050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020590508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002069050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000207905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020890508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002099050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000210905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000030190508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003029050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000303905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030490508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003059050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000306905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030790508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003089050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000309905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000031090508050731000000000000000000000000000000000000310905080505b505660606040523615610074576000357c010000000000000000000000000000000000000000000000000000000090048063a3b9f3e514610079578063b50345b61461008d578063d4f639ea146100a1578063d9bb316f146100b5578063e22a5d5b146100c9578063f983c0fa146100dd57610074565b610002565b346100025761008b60048050506100f1565b005b346100025761009f6004805050611097565b005b34610002576100b3600480505061203d565b005b34610002576100c76004805050612fe3565b005b34610002576100db6004805050613f89565b005b34610002576100ef6004805050614f2f565b005b60007310000000000000000000000000000000000000019050805073100000000000000000000000000000000000000190508050731000000000000000000000000000000000000002905080507310000000000000000000000000000000000000029050805073100000000000000000000000000000000000000390508050731000000000000000000000000000000000000003905080507310000000000000000000000000000000000000049050805073100000000000000000000000000000000000000490508050731000000000000000000000000000000000000005905080507310000000000000000000000000000000000000059050805073100000000000000000000000000000000000000690508050731000000000000000000000000000000000000006905080507310000000000000000000000000000000000000079050805073100000000000000000000000000000000000'\n    gasLimit:\n      - 15000000\n    gasPrice: 10\n    nonce: 0\n    secretKey: 45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\n    to: ''\n    value:\n    - 0\n\n  expect:\n\n    - indexes:\n       data: ':label valid'\n      network:\n        - 'Cancun'\n      result:\n       a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          # Difference with Paris is the charge for initcode 49152 // 32 * 2 = 3072 gas\n          balance: 195569440\n          nonce: 1\n       6295ee1b4f6dd65047762f924ecd367c17eabf8f:\n          balance: 0\n          nonce: 1\n          code: '0x60606040523615610074576000357c01'\n          storage: {}\n          \n    - indexes:\n       data: ':label valid'\n      network:\n        - '>=Prague'\n      result:\n       a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          balance: 190196000\n          nonce: 1\n       6295ee1b4f6dd65047762f924ecd367c17eabf8f:\n          balance: 0\n          nonce: 1\n          code: '0x60606040523615610074576000357c01'\n          storage: {}\n\n    - indexes:\n       data: ':label invalid'\n      network:\n        - '>=Cancun'\n      expectException:\n        '>=Cancun' : 'TransactionException.INITCODE_SIZE_EXCEEDED'\n      result:\n       a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 0\n       6295ee1b4f6dd65047762f924ecd367c17eabf8f:\n          shouldnotexist: 1\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmArithmeticTest/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmArithmeticTest/addFiller.yml",
    "content": "add:\n\n  # This test deals with addition, mostly addition that causes an overflow.\n  # It is based on the fact that arithmetic in the evm is modulo 2^256.\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    0000000000000000000000000000000000001000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           ; -1+-1 = -2\n           ;\n           ; The big number is 256^2-1, the biggest number that the evm can hold,\n           ; and because evm math is done modulo 256^2, it's equivalent to -1\n           [[0]] (+ 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001001:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           ; -1 + 4 = -3\n           ; same big number (2^256-1) as above\n              [[0]] (+ 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 4)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001002:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           ; -1 + 1 = 0\n              [[0]] (+ 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001003:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n              [[0]] (+ 0 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001004:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n          ; 1 + -1 = 0\n              [[0]] (+ 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (call 0xffffff (+ 0x1000 $4) 0 0 0 0 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n# The transaction to check\n  transaction:\n    data:\n    - :label add_neg1_neg1 :abi f(uint) 0\n    - :label add_neg1_4    :abi f(uint) 1\n    - :label add_neg1_1    :abi f(uint) 2\n    - :label add_0_0       :abi f(uint) 3\n    - :label add_1_neg1    :abi f(uint) 4\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n  expect:\n    - indexes:\n        data: :label add_neg1_neg1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001000:\n          storage:\n            # -2\n            0: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\n\n\n    - indexes:\n        data: :label add_neg1_4\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001001:\n          storage:\n            0: 0x03\n\n\n    # We can group these three together because the return value is zero,\n    # and the default value for storage is also zero\n    - indexes:\n        data:\n        - :label add_neg1_1\n        - :label add_0_0\n        - :label add_1_neg1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001002:\n          storage:\n            0: 0x00\n        0000000000000000000000000000000000001003:\n          storage:\n            0: 0x00\n        0000000000000000000000000000000000001004:\n          storage:\n            0: 0x00\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmArithmeticTest/addmodFiller.yml",
    "content": "addmod:\n\n  # This test deals with the addmod opcode\n  # (addmod a b c) = (a + b) % c\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    0000000000000000000000000000000000001000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (addmod 1 2 2)\n        }\n      nonce: '0'\n      storage: {}\n\n    0000000000000000000000000000000000001001:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (addmod (- 0 1) (- 0 2) 2)\n        }\n      nonce: '0'\n      storage: {}\n\n    0000000000000000000000000000000000001002:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (addmod (- 0 6) 1 3)\n        }\n      nonce: '0'\n      storage: {}\n\n    0000000000000000000000000000000000001003:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (eq (smod (- 0 5) 3) (addmod (- 0 6) 1 3) )\n        }\n      nonce: '0'\n      storage: {}\n\n    0000000000000000000000000000000000001004:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (eq (mod  (- 0 5) 3) (addmod (- 0 6) 1 3) )\n        }\n      nonce: '0'\n      storage: {}\n\n    0000000000000000000000000000000000001005:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (addmod 4 1 (- 0 3) )\n        }\n      nonce: '0'\n      storage: {}\n\n    0000000000000000000000000000000000001006:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (eq (addmod 4 1 (- 0 3) ) 2 )\n        }\n      nonce: '0'\n      storage: {}\n\n    0000000000000000000000000000000000001007:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (addmod (- 0 1) 0 5)\n        }\n      nonce: '0'\n      storage: {}\n\n    0000000000000000000000000000000000001008:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (addmod (- 0 1) 1 5)\n        }\n      nonce: '0'\n      storage: {}\n\n    0000000000000000000000000000000000001009:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (addmod (- 0 1) 2 5)\n        }\n      nonce: '0'\n      storage: {}\n\n    000000000000000000000000000000000000100a:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (addmod (- 0 1) (- 0 2) 5)\n        }\n      nonce: '0'\n      storage: {}\n\n    000000000000000000000000000000000000100b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           ; ((2^160)-1 + 1) % 5\n           [[0]] (addmod 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1 5)\n        }\n      nonce: '0'\n      storage: {}\n\n    000000000000000000000000000000000000100c:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (addmod 4 1 0)\n        }\n      nonce: '0'\n      storage: {}\n\n    000000000000000000000000000000000000100d:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (addmod 0 1 0)\n        }\n      nonce: '0'\n      storage: {}\n\n    000000000000000000000000000000000000100e:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (addmod 1 0 0)\n        }\n      nonce: '0'\n      storage: {}\n\n    000000000000000000000000000000000000100f:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (- (addmod 0 0 0) 1)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (call 0xffffff (+ 0x1000 $4) 0 0 0 0 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n# The transaction to check\n  transaction:\n    data:\n    - :label addmod_1_2_2        :abi f(uint) 0x00\n    - :label addmod_neg1_neg2_2  :abi f(uint) 0x01\n    - :label addmod_neg6_1_3     :abi f(uint) 0x02\n    - :label addmod_eq_smod      :abi f(uint) 0x03\n    - :label addmod_eq_mod       :abi f(uint) 0x04\n    - :label addmod_4_1_neg3     :abi f(uint) 0x05\n    - :label addmod_4_1_neg3_eq  :abi f(uint) 0x06\n    - :label addmod_neg1_0_5     :abi f(uint) 0x07\n    - :label addmod_neg1_1_5     :abi f(uint) 0x08\n    - :label addmod_neg1_2_5     :abi f(uint) 0x09\n    - :label addmod_neg1_neg2_5  :abi f(uint) 0x0a\n\n    # ((2^160-1) + 1) % 5\n    - :label addmod_2_160_1_5    :abi f(uint) 0x0b\n    - :label addmod_4_1_0        :abi f(uint) 0x0c\n    - :label addmod_0_1_0        :abi f(uint) 0x0d\n    - :label addmod_1_0_0        :abi f(uint) 0x0e\n    - :label addmod_0_0_0_min_1  :abi f(uint) 0x0f\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n  expect:\n    - indexes:\n        data: :label addmod_1_2_2\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001000:\n          storage:\n            0: 0x01\n\n    - indexes:\n        data: :label addmod_neg1_neg2_2\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001001:\n          storage:\n            0: 0x01\n\n    - indexes:\n        data: :label addmod_neg6_1_3\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001002:\n          storage:\n            0: 0x02\n\n    - indexes:\n        data: :label addmod_eq_smod\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001003:\n          storage:\n            0: 0x00\n\n    - indexes:\n        data: :label addmod_eq_mod\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001004:\n          storage:\n            0: 0x01\n\n    - indexes:\n        data: :label addmod_4_1_neg3\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001005:\n          storage:\n            0: 0x05\n\n    - indexes:\n        data: :label addmod_4_1_neg3_eq\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001006:\n          storage:\n            0: 0x00\n\n    - indexes:\n        data: :label addmod_neg1_0_5\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001007:\n          storage:\n            0: 0x00\n\n    - indexes:\n        data: :label addmod_neg1_1_5\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001008:\n          storage:\n            0: 0x01\n\n    - indexes:\n        data: :label addmod_neg1_2_5\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001009:\n          storage:\n            0: 0x02\n\n    - indexes:\n        data: :label addmod_neg1_neg2_5\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        000000000000000000000000000000000000100a:\n          storage:\n            0: 0x04\n\n    - indexes:\n        data: :label addmod_2_160_1_5\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        000000000000000000000000000000000000100b:\n          storage:\n            0: 0x01\n\n    - indexes:\n        data: :label addmod_4_1_0\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        000000000000000000000000000000000000100c:\n          storage:\n            0: 0x00\n\n    - indexes:\n        data: :label addmod_0_1_0\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        000000000000000000000000000000000000100d:\n          storage:\n            0: 0x00\n\n    - indexes:\n        data: :label addmod_1_0_0\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        000000000000000000000000000000000000100e:\n          storage:\n            0: 0x00\n\n    - indexes:\n        data: :label addmod_0_0_0_min_1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        000000000000000000000000000000000000100f:\n          storage:\n            0: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmArithmeticTest/arithFiller.yml",
    "content": "arith:\n\n  # An extremely basic test\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n\n    <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n        # 00 PUSH1 1      6001                      1\n        # 02 PUSH1 1      6001                      1,1\n        # 04 SWAP1        90 \n        # 05 ADD          01                        2\n        # 06 PUSH1 7      6007                      7,2 \n        # 08 MUL          02                        14\n        # 09 PUSH1 5      6005                      5,14\n        # 0B ADD          01                        19\n        # 0C PUSH1 2      6002                      2,19\n        # 0E SWAP1        90                        19,2\n        # 0F DIV          04                        9\n        # 10 PUSH1 4      6004                      4,9\n        # 12 SWAP1        90                        9,4\n        # 13 PUSH1 0x21   6021                      33,9,4\n        # 15 SWAP1        90                        9,33,4\n        # 16 SDIV         05                        0,4\n        # 17 PUSH1 0x17   6017                      21,0,4\n        # 19 ADD          01                        21,4\n        # 1A PUSH1 3      6003                      3,21,4\n        # 1C MUL          02                        63,4\n        # 1D PUSH1 5      6005                      5,63,4\n        # 1F SWAP1        90                        63,5,4\n        # 20 SMOD         07                        3,4\n        # 21 PUSH1 3      6003                      3,3,4\n        # 23 SUB          03                        0,4\n        # 24 PUSH1 9      6009                      9,0,4\n        # 26 PUSH1 0x11   6011                      17,9,0,4                           \n        # 28 EXP          0A                        17^9,0,4                       \n        # 29 PUSH1 0      6000                      0,17^9,0,4\n        # 2B SSTORE       55 The original was MSTORE, but that's not testable\n        # 2C PUSH1 8      6008                      8,0,4\n        # 2E PUSH1 0      6000                      0,8,0,4\n        # 30 RETURN       F3\n      code: :raw 0x600160019001600702600501600290046004906021900560170160030260059007600303600960110A60005560086000F3\n      nonce: '0'\n      storage: {}\n\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n      \n# The transaction to check\n  transaction:\n    data:\n    - :raw 0x00\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>\n    value:\n    - '1'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    \n    \n  expect:\n\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            # 17^9\n            0: 0x1b9c636491\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmArithmeticTest/divByZeroFiller.yml",
    "content": "divByZero:\n\n  # A standard location for division by zero tests.\n  #\n  # Opcodes where this is relevant:\n  #   DIV\n  #   SDIV\n  #   MOD\n  #   SMOD\n  #   ADDMOD\n  #   MULMOD\n  #\n  # Any division or mod by zero returns zero.\n\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    # The first parameter is the opcode:\n    #  0 - DIV\n    #  1 - SDIV\n    #  2 - MOD\n    #  3 - SMOD\n    #  4 - ADDMOD\n    #  5 - MULMOD\n    #\n    # The other parameters are the parameters for the opcode\n    <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {  \n            (def 'NOP 0)\n            (def 'opcode $4)\n            (def 'a      $36)\n            (def 'b      $68)\n\n            (if (= opcode 0x04) [[0]] (div a 0) NOP)\n            (if (= opcode 0x05) [[0]] (sdiv a 0) NOP)\n            (if (= opcode 0x06) [[0]] (mod a 0) NOP)\n            (if (= opcode 0x07) [[0]] (smod a 0) NOP)\n            (if (= opcode 0x08) [[0]] (addmod a b 0) NOP)\n            (if (= opcode 0x09) [[0]] (mulmod a b 0) NOP)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n      \n\n\n\n  transaction:\n    data:\n\n    # DIV tests  (opcode 0x04)\n    - :label div_2_0       :abi f(uint,uint) 0x04 2\n    - :label div_1_0       :abi f(uint,uint) 0x04 1\n    - :label div_0_0       :abi f(uint,uint) 0x04 0\n    - :label div_neg1_0    :abi f(uint,uint) 0x04 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\n    - :label div_neg2_0    :abi f(uint,uint) 0x04 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE\n    - :label div_maxint_0  :abi f(uint,uint) 0x04 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\n    - :label div_minint_0  :abi f(uint,uint) 0x04 0x8000000000000000000000000000000000000000000000000000000000000000\n\n    # SDIV tests (opcode 0x05)\n    - :label sdiv_2_0      :abi f(uint,uint) 0x05 2\n    - :label sdiv_1_0      :abi f(uint,uint) 0x05 1\n    - :label sdiv_0_0      :abi f(uint,uint) 0x05 0\n    - :label sdiv_neg1_0   :abi f(uint,uint) 0x05 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\n    - :label sdiv_neg2_0   :abi f(uint,uint) 0x05 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE\n    - :label sdiv_maxint_0 :abi f(uint,uint) 0x05 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\n    - :label sdiv_minint_0 :abi f(uint,uint) 0x05 0x8000000000000000000000000000000000000000000000000000000000000000\n\n\n\n    # MOD tests  (opcode 0x06)\n    - :label mod_2_0       :abi f(uint,uint) 0x06 2\n    - :label mod_1_0       :abi f(uint,uint) 0x06 1\n    - :label mod_0_0       :abi f(uint,uint) 0x06 0\n    - :label mod_neg1_0    :abi f(uint,uint) 0x06 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\n    - :label mod_neg2_0    :abi f(uint,uint) 0x06 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE\n    - :label mod_maxint_0  :abi f(uint,uint) 0x06 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\n    - :label mod_minint_0  :abi f(uint,uint) 0x06 0x8000000000000000000000000000000000000000000000000000000000000000\n\n    # SMOD tests (opcode 0x07)\n    - :label smod_2_0      :abi f(uint,uint) 0x07 2\n    - :label smod_1_0      :abi f(uint,uint) 0x07 1\n    - :label smod_0_0      :abi f(uint,uint) 0x07 0\n    - :label smod_neg1_0   :abi f(uint,uint) 0x07 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\n    - :label smod_neg2_0   :abi f(uint,uint) 0x07 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE\n    - :label smod_maxint_0 :abi f(uint,uint) 0x07 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\n    - :label smod_minint_0 :abi f(uint,uint) 0x07 0x8000000000000000000000000000000000000000000000000000000000000000\n\n    # ADDMOD tests (opcode 0x08)\n    - :label addmod_0_0_0  :abi f(uint,uint,uint) 0x08 0 0\n    - :label addmod_0_1_0  :abi f(uint,uint,uint) 0x08 0 1\n    - :label addmod_1_0_0  :abi f(uint,uint,uint) 0x08 1 0\n    - :label addmod_1_1_0  :abi f(uint,uint,uint) 0x08 1 1\n\n    - :label addmod_0_2_0  :abi f(uint,uint,uint) 0x08 0 2\n    - :label addmod_2_0_0  :abi f(uint,uint,uint) 0x08 2 0\n    - :label addmod_2_2_0  :abi f(uint,uint,uint) 0x08 2 2\n\n    - :label addmod_1_2_0  :abi f(uint,uint,uint) 0x08 1 2\n    - :label addmod_2_1_0  :abi f(uint,uint,uint) 0x08 2 1\n\n    - :label addmod_0_0_0  :abi f(uint,uint,uint) 0x08 0 0\n    - :label addmod_0_1_0  :abi f(uint,uint,uint) 0x08 0 1\n    - :label addmod_1_0_0  :abi f(uint,uint,uint) 0x08 1 0\n    - :label addmod_1_1_0  :abi f(uint,uint,uint) 0x08 1 1\n\n    - :label addmod_0_neg1_0     :abi f(uint,uint,uint) 0x08 0 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\n    - :label addmod_neg1_0_0     :abi f(uint,uint,uint) 0x08 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 0\n    - :label addmod_neg1_neg1_0  :abi f(uint,uint,uint) 0x08 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\n\n    - :label addmod_0_neg2_0     :abi f(uint,uint,uint) 0x08 0 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE\n    - :label addmod_neg2_0_0     :abi f(uint,uint,uint) 0x08 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE 0\n    - :label addmod_neg2_neg2_0  :abi f(uint,uint,uint) 0x08 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE\n\n    - :label addmod_0_neg1_0     :abi f(uint,uint,uint) 0x08 0 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\n    - :label addmod_neg1_0_0     :abi f(uint,uint,uint) 0x08 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 0\n    - :label addmod_neg1_neg1_0  :abi f(uint,uint,uint) 0x08 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\n\n    - :label addmod_0_neg2_0     :abi f(uint,uint,uint) 0x08 0 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE\n    - :label addmod_neg2_0_0     :abi f(uint,uint,uint) 0x08 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE 0\n    - :label addmod_neg2_neg2_0  :abi f(uint,uint,uint) 0x08 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE\n\n    - :label addmod_1_neg1_0     :abi f(uint,uint,uint) 0x08 1 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\n    - :label addmod_neg1_1_0     :abi f(uint,uint,uint) 0x08 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 1\n\n    - :label addmod_1_neg2_0     :abi f(uint,uint,uint) 0x08 1 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE\n    - :label addmod_neg2_1_0     :abi f(uint,uint,uint) 0x08 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE 1\n\n    - :label addmod_1_neg1_0     :abi f(uint,uint,uint) 0x08 1 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\n    - :label addmod_neg1_1_0     :abi f(uint,uint,uint) 0x08 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 1\n\n    - :label addmod_2_neg2_0     :abi f(uint,uint,uint) 0x08 2 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE\n    - :label addmod_neg2_2_0     :abi f(uint,uint,uint) 0x08 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE 2\n\n    - :label addmod_neg1_neg2_0  :abi f(uint,uint,uint) 0x08 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE\n    - :label addmod_neg2_neg1_0  :abi f(uint,uint,uint) 0x08 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\n\n\n\n    # MULMOD tests (opcode 0x09)\n    - :label mulmod_0_0_0  :abi f(uint,uint,uint) 0x09 0 0\n    - :label mulmod_0_1_0  :abi f(uint,uint,uint) 0x09 0 1\n    - :label mulmod_1_0_0  :abi f(uint,uint,uint) 0x09 1 0\n    - :label mulmod_1_1_0  :abi f(uint,uint,uint) 0x09 1 1\n\n    - :label mulmod_0_2_0  :abi f(uint,uint,uint) 0x09 0 2\n    - :label mulmod_2_0_0  :abi f(uint,uint,uint) 0x09 2 0\n    - :label mulmod_2_2_0  :abi f(uint,uint,uint) 0x09 2 2\n\n    - :label mulmod_1_2_0  :abi f(uint,uint,uint) 0x09 1 2\n    - :label mulmod_2_1_0  :abi f(uint,uint,uint) 0x09 2 1\n\n    - :label mulmod_0_0_0  :abi f(uint,uint,uint) 0x09 0 0\n    - :label mulmod_0_1_0  :abi f(uint,uint,uint) 0x09 0 1\n    - :label mulmod_1_0_0  :abi f(uint,uint,uint) 0x09 1 0\n    - :label mulmod_1_1_0  :abi f(uint,uint,uint) 0x09 1 1\n\n    - :label mulmod_0_neg1_0     :abi f(uint,uint,uint) 0x09 0 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\n    - :label mulmod_neg1_0_0     :abi f(uint,uint,uint) 0x09 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 0\n    - :label mulmod_neg1_neg1_0  :abi f(uint,uint,uint) 0x09 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\n\n    - :label mulmod_0_neg2_0     :abi f(uint,uint,uint) 0x09 0 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE\n    - :label mulmod_neg2_0_0     :abi f(uint,uint,uint) 0x09 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE 0\n    - :label mulmod_neg2_neg2_0  :abi f(uint,uint,uint) 0x09 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE\n\n    - :label mulmod_0_neg1_0     :abi f(uint,uint,uint) 0x09 0 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\n    - :label mulmod_neg1_0_0     :abi f(uint,uint,uint) 0x09 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 0\n    - :label mulmod_neg1_neg1_0  :abi f(uint,uint,uint) 0x09 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\n\n    - :label mulmod_0_neg2_0     :abi f(uint,uint,uint) 0x09 0 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE\n    - :label mulmod_neg2_0_0     :abi f(uint,uint,uint) 0x09 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE 0\n    - :label mulmod_neg2_neg2_0  :abi f(uint,uint,uint) 0x09 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE\n\n    - :label mulmod_1_neg1_0     :abi f(uint,uint,uint) 0x09 1 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\n    - :label mulmod_neg1_1_0     :abi f(uint,uint,uint) 0x09 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 1\n\n    - :label mulmod_1_neg2_0     :abi f(uint,uint,uint) 0x09 1 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE\n    - :label mulmod_neg2_1_0     :abi f(uint,uint,uint) 0x09 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE 1\n\n    - :label mulmod_1_neg1_0     :abi f(uint,uint,uint) 0x09 1 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\n    - :label mulmod_neg1_1_0     :abi f(uint,uint,uint) 0x09 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 1\n\n    - :label mulmod_2_neg2_0     :abi f(uint,uint,uint) 0x09 2 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE\n    - :label mulmod_neg2_2_0     :abi f(uint,uint,uint) 0x09 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE 2\n\n    - :label mulmod_neg1_neg2_0  :abi f(uint,uint,uint) 0x09 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE\n    - :label mulmod_neg2_neg1_0  :abi f(uint,uint,uint) 0x09 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\n\n\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>\n    value:\n    - '1'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    \n    \n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result: \n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>: \n          storage:\n            0: 0x0\n\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmArithmeticTest/divFiller.yml",
    "content": "div:\n\n  # Division tests\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    0000000000000000000000000000000000001000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]]  (/ 0x02\n               0xfedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210)\n        }\n      nonce: '0'\n      storage: {}\n\n    0000000000000000000000000000000000001001:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           ; Verify the fix to the divBoostBug\n           [[0]] (/ 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA\n                     0x1DAE6076B981DAE6076B981DAE6076B981DAE6076B981DAE6076B981DAE6077)\n\n\n        }\n      nonce: '0'\n      storage: {}\n\n    0000000000000000000000000000000000001002:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]]  (/ 5 2)\n        }\n      nonce: '0'\n      storage: {}\n\n    0000000000000000000000000000000000001003:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]]  (/ 23 24)\n        }\n      nonce: '0'\n      storage: {}\n\n    0000000000000000000000000000000000001004:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]]  (/ 0 24)\n        }\n      nonce: '0'\n      storage: {}\n\n    0000000000000000000000000000000000001005:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]]  (/ 1 1)\n        }\n      nonce: '0'\n      storage: {}\n\n    0000000000000000000000000000000000001006:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           ; Divide by zero\n           [[0]]  (/ 2 0)\n        }\n      nonce: '0'\n      storage: {}\n\n    0000000000000000000000000000000000001007:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]]  (+ (/ 13 0) 7)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (call 0xffffff (+ 0x1000 $4) 0 0 0 0 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n# The transaction to check\n  transaction:\n    data:\n    - :label div_2_big     :abi f(uint) 0\n    - :label div_boost_bug :abi f(uint) 1\n    - :label div_5_2       :abi f(uint) 2\n    - :label div_23_24     :abi f(uint) 3\n    - :label div_0_24      :abi f(uint) 4\n    - :label div_1_0       :abi f(uint) 5\n    - :label div_2_0       :abi f(uint) 6\n    - :label div_0_add     :abi f(uint) 7\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n  expect:\n    # All the zero results can be in the same case because zero's the default\n    - indexes:\n        data:\n        - :label div_2_big\n        - :label div_23_24\n        - :label div_0_24\n        - :label div_2_0\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001000:\n          storage:\n            0: 0x00\n        0000000000000000000000000000000000001003:\n          storage:\n            0: 0x00\n        0000000000000000000000000000000000001004:\n          storage:\n            0: 0x00\n        0000000000000000000000000000000000001006:\n          storage:\n            0: 0x00\n\n\n    - indexes:\n        data: :label div_boost_bug\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001001:\n          storage:\n            0: 0x89\n\n    - indexes:\n        data: :label div_5_2\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001002:\n          storage:\n            0: 0x02\n\n    - indexes:\n        data: :label div_1_0\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001005:\n          storage:\n            0: 0x01\n\n    - indexes:\n        data: :label div_0_add\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001007:\n          storage:\n            0: 0x07\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmArithmeticTest/expFiller.yml",
    "content": "exp:\n\n  # Exponentiation\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    0000000000000000000000000000000000001000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (exp 2 2)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001001:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {  ; (-1)^(-2)\n           ; 2^256-1 = -1\n           ; 2^256-1 = -2\n           [[0]] (exp\n            0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n            0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\n          )\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001002:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {  ; just a big number to the power of itself\n           [[0]] (exp 2147483647 2147483647)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001003:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {  ; zero to the power of a big number\n           [[0]] (exp 0 2147483647)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001004:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {  ; big number to the power of zero\n           [[0]] (exp 2147483647 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001005:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {  ; 257^1\n           [[0]] (exp 257 1)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001006:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {  ; 1^257\n           [[0]] (exp 1 257)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001007:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {  ; 2^257 (which is zero mod 2^256)\n           [[0]] (exp 2 257)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001008:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {  ; 0^0 (that is 1 in evm arithmetic)\n           [[0]] (exp 0 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n\n    0000000000000000000000000000000000001009:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {  ; 2^big = 0\n           [[0]] (exp 2 0x0100000000000f)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    000000000000000000000000000000000000100a:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {  ; 2^15 = 0x8000\n           [[0]] (exp 2 15)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (call 0xffffff (+ 0x1000 $4) 0 0 0 0 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n\n# The transaction to check\n  transaction:\n    data:\n    - :label exp_2_2        :abi f(uint) 0\n    - :label exp_neg1_neg2  :abi f(uint) 1\n    - :label exp_big_big    :abi f(uint) 2\n    - :label exp_0_big      :abi f(uint) 3\n    - :label exp_big_0      :abi f(uint) 4\n    - :label exp_257_1      :abi f(uint) 5\n    - :label exp_1_257      :abi f(uint) 6\n    - :label exp_2_257      :abi f(uint) 7\n    - :label exp_0_0        :abi f(uint) 8\n    - :label exp_2_big      :abi f(uint) 9\n    - :label exp_2_15       :abi f(uint) 0x0a\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n\n\n\n  expect:\n\n    # All the zeros can go together\n    - indexes:\n        data:\n        - :label exp_0_big\n        - :label exp_2_257\n        - :label exp_2_big\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001003:\n          storage:\n            0: 0\n        0000000000000000000000000000000000001007:\n          storage:\n            0: 0\n        0000000000000000000000000000000000001009:\n          storage:\n            0: 0\n\n\n\n    - indexes:\n        data: :label exp_2_2\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001000:\n          storage:\n            0: 4\n\n\n\n    - indexes:\n        data: :label exp_neg1_neg2\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001001:\n          storage:\n            0: 1\n\n\n\n    - indexes:\n        data: :label exp_big_big\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001002:\n          storage:\n            0: 0xbc8cccccccc888888880000000aaaaaab00000000fffffffffffffff7fffffff\n\n\n\n    - indexes:\n        data: :label exp_big_0\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001004:\n          storage:\n            0: 0x01\n\n\n\n\n    - indexes:\n        data: :label exp_257_1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001005:\n          storage:\n            0: 0x0101\n\n\n\n\n    - indexes:\n        data: :label exp_1_257\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001006:\n          storage:\n            0: 0x01\n\n\n\n    - indexes:\n        data: :label exp_0_0\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001008:\n          storage:\n            0: 0x01\n\n\n\n    - indexes:\n        data: :label exp_2_15\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        000000000000000000000000000000000000100a:\n          storage:\n            0: 0x8000\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmArithmeticTest/expPower256Filler.yml",
    "content": "expPower256:\n\n  # Test the result of 255^n, 256^n, and 257^n, 0<=n<=33\n \n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n      \n\n    <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {  \n            (def 'storageJump 0x10)\n\n            (def 'calc (n) {\n                 [[(* storageJump n)]] (exp 256 n)\n                 [[(+ (* storageJump n) 1)]] (exp 255 n)\n                 [[(+ (* storageJump n) 2)]] (exp 257 n)\n              }\n            )\n\n            (calc 0)\n            (calc 1)\n            (calc 2)\n            (calc 3)\n            (calc 4)\n            (calc 5)\n            (calc 6)\n            (calc 7)\n            (calc 8)\n            (calc 9)\n            (calc 10)\n            (calc 11)\n            (calc 12)\n            (calc 13)\n            (calc 14)\n            (calc 15)\n            (calc 16)\n            (calc 17)\n            (calc 18)\n            (calc 19)\n            (calc 20)\n            (calc 21)\n            (calc 22)\n            (calc 23)\n            (calc 24)\n            (calc 25)\n            (calc 26)\n            (calc 27)\n            (calc 28)\n            (calc 29)\n            (calc 30)\n            (calc 31)\n            (calc 32)\n            (calc 33)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n      \n  transaction:\n    data:\n    - :abi f(uint) 0\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>\n    value:\n    - '1'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    \n    \n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            # 0x10*n:   256^n\n            # 0x10*n+1: 255^n\n            # 0x10*n+2: 257^n\n            0x00: 0x01\n            0x01: 0x01\n            0x02: 0x01\n            0x10: 0x0100\n            0x11: 0xFF\n            0x12: 0x0101\n            0x20: 0x010000\n            0x21: 0xFE01\n            0x22: 0x010201\n            0x30: 0x01000000\n            0x31: 0xFD02FF\n            0x32: 0x01030301\n            0x40: 0x0100000000\n            0x41: 0xFC05FC01\n            0x42: 0x0104060401\n            0x50: 0x010000000000\n            0x51: 0xFB09F604FF\n            0x52: 0x01050A0A0501\n            0x60: 0x01000000000000\n            0x61: 0xFA0EEC0EFA01\n            0x62: 0x01060F140F0601\n            0x70: 0x0100000000000000\n            0x71: 0xF914DD22EB06FF\n            0x72: 0x0107152323150701\n            0x80: 0x010000000000000000\n            0x81: 0xF81BC845C81BF801\n            0x82: 0x01081C3846381C0801\n            0x90: 0x01000000000000000000\n            0x91: 0xF723AC7D8253DC08FF\n            0x92: 0x010924547E7E54240901\n            0xa0: 0x0100000000000000000000\n            0xa1: 0xF62C88D104D1882CF601\n            0xa2: 0x010A2D78D2FCD2782D0A01\n            0xb0: 0x010000000000000000000000\n            0xb1: 0xF5365C4833CCB6A4C90AFF\n            0xb2: 0x010B37A64BCFCF4AA5370B01\n            0xc0: 0x01000000000000000000000000\n            0xc1: 0xF44125EBEB98E9EE2441F401\n            0xc2: 0x010C42DDF21B9F19EFDC420C01\n            0xd0: 0x0100000000000000000000000000\n            0xd1: 0xF34CE4C5FFAD5104361DB20CFF\n            0xd2: 0x010D4F20D00DBAB909CC1E4E0D01\n            0xe0: 0x010000000000000000000000000000\n            0xe1: 0xF25997E139ADA3B331E7945AF201\n            0xe2: 0x010E5C6FF0DDC873C2D5EA6C5B0E01\n            0xf0: 0x01000000000000000000000000000000\n            0xf1: 0xF1673E495873F60F7EB5ACC6970EFF\n            0xf2: 0x010F6ACC60CEA63C3698C056C7690F01\n            0x0100: 0x0100000000000000000000000000000000\n            0x0101: 0xF075D70B0F1B82196F36F719D077F001\n            0x0102: 0x01107A372D2F74E272CF59171E30781001\n            0x0110: 0x010000000000000000000000000000000000\n            0x0111: 0xEF856134040C669755C7C022B6A77810FF\n            0x0112: 0x01118AB1645CA45755422870354EA8881101\n            0x0120: 0x01000000000000000000000000000000000000\n            0x0121: 0xEE95DBD2D0085A30BE71F86293F0D098EE01\n            0x0122: 0x01129C3C15C100FBAC976A98A583F730991201\n            0x0130: 0x0100000000000000000000000000000000000000\n            0x0131: 0xEDA745F6FD3851D68DB3866A315CDFC85512FF\n            0x0132: 0x0113AED851D6C1FCA84402033E297B27C9AB1301\n            0x0140: 0x010000000000000000000000000000000000000000\n            0x0141: 0xECB99EB1063B1984B725D2E3C72B82E88CBDEC01\n            0x0142: 0x0114C2872A2898BEA4EC46054167A4A2F174BE1401\n            0x0150: 0x01000000000000000000000000000000000000000000\n            0x0151: 0xEBCCE5125534DE6B326EAD10E3645765A4312E14FF\n            0x0152: 0x0115D749B152C1576391324B46A90C47946632D21501\n            0x0160: 0x0100000000000000000000000000000000000000000000\n            0x0161: 0xEAE1182D42DFA98CC73C3E63D280F30E3E8CFCE6EA01\n            0x0162: 0x0116ED20FB041418BAF4C37D91EFB553DBFA9904E71601\n            0x0170: 0x010000000000000000000000000000000000000000000000\n            0x0171: 0xE9F63715159CC9E33A7502256EAE721B304E6FEA0316FF\n            0x0172: 0x0118040E1BFF182CD3AFB8410F81A5092FD6939DEBFD1701\n            0x0180: 0x01000000000000000000000000000000000000000000000000\n            0x0181: 0xE90C40DE00872D19573A8D23493FC3A9151E217A1913E801\n            0x0182: 0x01191C122A1B1745008367F9509126AE39066A3189E9141801\n            0x0190: 0x0100000000000000000000000000000000000000000000000000\n            0x0191: 0xE823349D2286A5EC3DE3529625F683E56C0903589EFAD418FF\n            0x0192: 0x011A352E3C45325C4583EB6149E1B7D4E73F709BBB72FD2C1901\n            0x01a0: 0x010000000000000000000000000000000000000000000000000000\n            0x01a1: 0xE73B116885641F4651A56F438FD08D61869CFA55465BD944E601\n            0x01a2: 0x011B4F636A81778EA1C96F4CAB2B998CBC26B00C572E7029451A01\n            0x01b0: 0x01000000000000000000000000000000000000000000000000000000\n            0x01b1: 0xE653D6571CDEBB270B53C9D44C40BCD425165D5AF1157D6BA11AFF\n            0x01b2: 0x011C6AB2CDEBF906306B38BBF7D6C52648E2D6BC63859E996E5F1B01\n            0x01c0: 0x0100000000000000000000000000000000000000000000000000000000\n            0x01c1: 0xE56D8280C5C1DC6BE448760A77F47C1750F146FD962467EE3579E401\n            0x01c2: 0x011D871D80B9E4FF369BA3F4B3CE9BEB6F2BB9931FE9243807CD7A1C01\n            0x01d0: 0x010000000000000000000000000000000000000000000000000000000000\n            0x01d1: 0xE48814FE44FC1A8F78642D946D7C879B39A055B6988E438647446A1CFF\n            0x01d2: 0x011EA4A49E3A9EE435D23F98A8826A875A9AE54CB3090D5C3FD547961D01\n            0x01e0: 0x01000000000000000000000000000000000000000000000000000000000000\n            0x01e1: 0xE3A38CE946B71E74E8EBC966D90F0B139E66B560E1F5B542C0FD25B2E201\n            0x01e2: 0x011FC34942D8D9831A0811D8412AECF1E1F58031FFBC16699C151CDDB31E01\n            0x01f0: 0x0100000000000000000000000000000000000000000000000000000000000000\n            0x01f1: 0xE2BFE95C5D7067567402DD9D7235FC088AC84EAB8113BF8D7E3C288D2F1EFF\n            0x01f2: 0x0120E30C8C1BB25C9D2219EA196C17DED3D775B231BBD28005B131FA90D11F01\n            0x0200: 0x0000000000000000000000000000000000000000000000000000000000000000\n            0x0201: 0xE1DD29730112F6EF1D8EDABFD4C3C60C823D865CD592ABCDF0BDEC64A1EFE001\n            0x0202: 0x2203EF98A7CE0EF9BF3C04038583F6B2AB4D27E3ED8E5285B6E32C8B61F02001\n            0x0210: 0x0000000000000000000000000000000000000000000000000000000000000000\n            0x0211: 0xfb4c498e11e3f82e714be514ef024675bb48d678bd192222cd2e783d4df020ff\n            0x0212: 0x25f3884075dd08b8fb400789097aa95df8750bd17be0d83c9a0fb7ed52102101\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmArithmeticTest/expPower256Of256Filler.yml",
    "content": "expPower256Of256:\n\n  # (255 to 257) ^ ((255 to 257)^n)\n  # 0 <= n <= 33\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n      \n\n    <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {  \n            (def 'storageJump 0x10)\n\n            (def 'calc (n) {\n\n                 [[(* storageJump n)]]       (exp 256 (exp 256 n))\n                 [[(+ (* storageJump n) 1)]] (exp 256 (exp 255 n))\n                 [[(+ (* storageJump n) 2)]] (exp 256 (exp 257 n))\n\n                 [[(+ (* storageJump n) 3)]] (exp 255 (exp 256 n))\n                 [[(+ (* storageJump n) 4)]] (exp 255 (exp 255 n))\n                 [[(+ (* storageJump n) 5)]] (exp 255 (exp 257 n))\n\n                 [[(+ (* storageJump n) 6)]] (exp 257 (exp 256 n))\n                 [[(+ (* storageJump n) 7)]] (exp 257 (exp 255 n))\n                 [[(+ (* storageJump n) 8)]] (exp 257 (exp 257 n))\n              }\n            )\n\n            (calc 0)\n            (calc 1)\n            (calc 2)\n            (calc 3)\n            (calc 4)\n            (calc 5)\n            (calc 6)\n            (calc 7)\n            (calc 8)\n            (calc 9)\n            (calc 10)\n            (calc 11)\n            (calc 12)\n            (calc 13)\n            (calc 14)\n            (calc 15)\n            (calc 16)\n            (calc 17)\n            (calc 18)\n            (calc 19)\n            (calc 20)\n            (calc 21)\n            (calc 22)\n            (calc 23)\n            (calc 24)\n            (calc 25)\n            (calc 26)\n            (calc 27)\n            (calc 28)\n            (calc 29)\n            (calc 30)\n            (calc 31)\n            (calc 32)\n            (calc 33)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n      \n  transaction:\n    data:\n    - :abi f(uint) 0\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>\n    value:\n    - '1'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    \n    \n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            # 0x10*n:   256^(256^n)\n            # 0x10*n+1: 256^(255^n)\n            # 0x10*n+2: 256^(257^n)\n            # 0x10*n+3: 255^(256^n)\n            # 0x10*n+4: 255^(255^n)\n            # 0x10*n+5: 255^(257^n)\n            # 0x10*n+6: 257^(256^n)\n            # 0x10*n+7: 257^(255^n)\n            # 0x10*n+8: 257^(257^n)\n            0x00: 0x0100\n            0x01: 0x0100\n            0x02: 0x0100\n            0x03: 0xff\n            0x04: 0xff\n            0x05: 0xff\n            0x06: 0x0101\n            0x07: 0x0101\n            0x08: 0x0101\n            0x13: 0x06c3acd330b959ad6efabce6d2d2125e73a88a65a9880d203dddf5957f7f0001\n            0x14: 0x8f965a06da0ac41dcb3a34f1d8ab7d8fee620a94faa42c395997756b007ffeff\n            0x15: 0xbce9265d88a053c18bc229ebff404c1534e1db43de85131da0179fe9ff8100ff\n            0x16: 0x02b5e9d7a094c19f5ebdd4f2e618f859ed15e4f1f0351f286bf849eb7f810001\n            0x17: 0xc73b7a6f68385c653a24993bb72eea0e4ba17470816ec658cf9c5bedfd81ff01\n            0x18: 0xb89fc178355660fe1c92c7d8ff11524702fad6e2255447946442356b00810101\n            0x23: 0x4ee4ceeaac565c81f55a87c43f82f7c889ef4fc7c679671e28d594ff7f000001\n            0x24: 0x82f46a1b4e34d66712910615d2571d75606ceac51fa8ca8c58cf6ca881fe00ff\n            0x25: 0x81c9fcefa5de158ae2007f25d35c0d11cd735342a48905955a5a6852800200ff\n            0x26: 0x666ac362902470ed850709e2a29969d10cba09debc03c38d172aeaff81000001\n            0x27: 0xeb30a3c678a01bde914548f98f3366dc0ffe9f85384ebf1111d03dad7ffe0101\n            0x28: 0x72d0a7939b6303ce1d46e6e3f1b8be303bfdb2b00f41ad8076b0975782020101\n            0x33: 0x109a00e1370d2d2922bf892e85becb54297354b2e5c75388d514ff7f00000001\n            0x34: 0x54a792f15e9aba7e4ad9e716bc169eea3a6e2e9c49bf9b335874613c8081feff\n            0x35: 0x5d24a14d8e5e039372cd0f6a0f31e9ed6b75adba9f16b1c5b3edd5ba818300ff\n            0x36: 0x298e2f316b4ccded5ebf515998d9ec20df69404b04a441782a6aff8100000001\n            0x37: 0x4335694e98f372183c62a2339fa4ad161e9b4c42240bdc9452abffd07783ff01\n            0x38: 0xf0f0820797315acd063056bba76f6a9c3e281cdb5197a233967ca94684830101\n            0x43: 0xe6540ce46eaf70da9d644015a661e0e245b13f307cb3885514ff7f0000000001\n            0x44: 0x6526b38b05a6325b80e1c84ab41dc934fd70f33f1bd0eab3d1f61a4707fc00ff\n            0x45: 0xe959516cd27e5d8fd487b72db2989b3ec2ba9fb7ead41554526fe5a3040400ff\n            0x46: 0xe7498a48c6ce2530bbe814ee3440c8c44fffab7ad8a277aa6aff810000000001\n            0x47: 0x2dffa3e901e5a392d15b79f4193d2168147d2aa7c55870b46c3a905d03fc0101\n            0x48: 0xe16ea721c96539edb4f7fb82de0dad8cccb1e7a6966a6777635f6fb908040101\n            0x53: 0xb581ac185aad71db2d177c286929c4c22809e5dcb3085514ff7f000000000001\n            0x54: 0x75789eb2a64bc971389fbd11a1e6d7abbf95ad25e23fb9aa25e73a0bfc83feff\n            0x55: 0xfc403fa42ceb6a0d0d3321bd9b2d8af25b1b667f87a04f496c78168d078500ff\n            0x56: 0xcec5ec213b9cb5811f6ae00428fd7b6ef5a1af39a1f7aa6aff81000000000001\n            0x57: 0x70ab32233202b98d382d17713fa0be391eaf74f85ba1740c9c3238c4ed85ff01\n            0x58: 0xb622672a213faa79b32185ff93a7b27a8499e48f7b032cdb4d1a70300c850101\n            0x63: 0x1948059de1def03c4ec35fc22c2bb8f2bf45dc33085514ff7f00000000000001\n            0x64: 0x41f818a8e24eb6d7bb7b193b4f2b5fdcf4bd0d453f2ac3499d8830d391fa00ff\n            0x65: 0xede6fe4a943dfb5d967a2b85d6728759d40d2ef0ae4bc28bbb1867f98c0600ff\n            0x66: 0x083c936cbaad5de592badc2e142fe4ebd6103921f7aa6aff8100000000000001\n            0x67: 0x57385019fe4e0939ca3f35c37cadfaf52fba5b1cdfb02def3866e8068bfa0101\n            0x68: 0x810ac878bd98428f6be8c6426ba9f9da09e3e33bf4fe10bfa3f8b12c92060101\n            0x73: 0x8bb02654111ad8c60ad8af132283a81f455c33085514ff7f0000000000000001\n            0x74: 0xa8f75c129dbb8466d6703a2a0b8212131b3248d70e2478862ac40fe17485feff\n            0x75: 0x5fd4d2de580383ee59f5e800ddb3f1717ceae03aede19d3dec5e5a69918700ff\n            0x76: 0xc8624230b524b85d6340da48a5db20370fb921f7aa6aff810000000000000001\n            0x77: 0x287b58a5a13cd7f454468ca616c181712f5ed25433a7d5a894b6ced35f87ff01\n            0x78: 0x09930d11ac2804fa977bf951593c8dff8498779cc0cdc5812a4fba2f98870101\n            0x83: 0x230041a0e7602d6e459609ed39081ec55c33085514ff7f000000000000000001\n            0x84: 0xc407d8a413ef9079ead457ed686a05ac81039c0cae0a7f6afd01e8461ff800ff\n            0x85: 0x67a397e0692385e4cd83853aabce220a94d449e885fa867e96d3ef5e180800ff\n            0x86: 0x70add926e753655d6d0ebe9c0f81368fb921f7aa6aff81000000000000000001\n            0x87: 0x0bdce80b8378e43f13d454b9d0a4c83cf311b8eaa45d5122cfd544a217f80101\n            0x88: 0x629c25790e1488998877a9ecdf0fb69637e77d8a4bdc1b46270093ba20080101\n            0x93: 0x53017d8eb210db2c8cd4a299079ec55c33085514ff7f00000000000000000001\n            0x94: 0x48be09b6c6ae2aa660f1972125cecbb1038b5d236ecf766ba786e2c4e887feff\n            0x95: 0x2e350d847ba73dc2099f83f532951c47269d9fd7e411b50bae00a9581f8900ff\n            0x96: 0x013ab9e1f0df89a184b4d07080b68fb921f7aa6aff8100000000000000000001\n            0x97: 0xf387ed41c1050f9da667f429a3e8fb30b61a55ede97d7b8acd797a03cd89ff01\n            0x98: 0x525696c22bb3ce00fd2e3f6bbb9b4ea1046a5e31fcff2fedf8f8c74d28890101\n            0xa3: 0xfe0f60957dc223578a0298879ec55c33085514ff7f0000000000000000000001\n            0xa4: 0xc1ea45f348b5d351c4d8fe5c77da979cadc33d866acc42e981278896b1f600ff\n            0xa5: 0x56ddb29bca94fb986ac0a40188b3b53f3216b3559bd8324a77ea8bd8a80a00ff\n            0xa6: 0x2d49ff6b0bbe177ae9317000b68fb921f7aa6aff810000000000000000000001\n            0xa7: 0x185fa9eab94cfe3016b69657e83b23fd24cc6960218254231c3db627a7f60101\n            0xa8: 0xa7a0223829f26d6c635368034320563df4aa5eb62efc87a42bb35f69b20a0101\n            0xb3: 0xe1440264b8ee0cea0218879ec55c33085514ff7f000000000000000000000001\n            0xb4: 0x29575fdce377b23043e489e358581474bc863187fa85f9945473a2be5889feff\n            0xb5: 0x3df8c030ec521fb109c4d887dbbc14c7c9c9921b27058e3503971b60b18b00ff\n            0xb6: 0x67799740340daf4a30f000b68fb921f7aa6aff81000000000000000000000001\n            0xb7: 0x540a4e4635b40585e09ff10b63ffe310dd717fca5c0a51570091e25e378bff01\n            0xb8: 0xdbbaef5c49ffee61b08cde6ebc8dba6e9a62d56c2355d1980cb9e790bc8b0101\n            0xc3: 0xb0e95b83a36ce98218879ec55c33085514ff7f00000000000000000000000001\n            0xc4: 0xc482ab56ec19186dc48c88f30861a850b2253b1ea6dc021589e569bd47f400ff\n            0xc5: 0xcf45c7f9af4bbe4a83055b55b97777ad5e0a3f08b129c9ae208c5d713c0c00ff\n            0xc6: 0xa5cbb62a421049b0f000b68fb921f7aa6aff8100000000000000000000000001\n            0xc7: 0x3bde6ca66dffe1bf5d727c3edea74c7a4af43b3912e6256d37705c8f3bf40101\n            0xc8: 0x3f49a1e40c5213aa4ffed57eb4c1ad2d181b2aaa289e9d59c2256c43480c0101\n            0xd3: 0xe02639036c698218879ec55c33085514ff7f0000000000000000000000000001\n            0xd4: 0x8be664bde946d939ce551b948b503787942d2a7734509288c1b62fd5c48bfeff\n            0xd5: 0xa923a28e7a75aef26c51580ffc686879e4a0b404b089bdbcd751d88b478d00ff\n            0xd6: 0x41ac5ea30fc9b0f000b68fb921f7aa6aff810000000000000000000000000001\n            0xd7: 0x0daa3a177ec975cb69bb4acf4a6e1be7bcc1ad33d1ffad97510f9fea9d8dff01\n            0xd8: 0x19e6822beb889be28310060f4fb9741bfd50a31fa81ec65de21f7b02548d0101\n            0xe3: 0xdb9902ec698218879ec55c33085514ff7f000000000000000000000000000001\n            0xe4: 0x83fab06c6c8fef761ebbb9534c06ac2a9d61820623008069062ff3b1e1f200ff\n            0xe5: 0x3f791dd183ed5b963bd86e0dba1a9dd5b8ceeb078f15c73062f1942fd40e00ff\n            0xe6: 0xe0bfa28fc9b0f000b68fb921f7aa6aff81000000000000000000000000000001\n            0xe7: 0x8133b760dfae27560eb490f235ddfa301f058dee4f01f3fe4b3567d0d3f20101\n            0xe8: 0xcd4cd0124e983af71620fb5f98275965c6a8bebc4b8adc288b63224ee20e0101\n            0xf3: 0x9882ec698218879ec55c33085514ff7f00000000000000000000000000000001\n            0xf4: 0x75c4915e18b96704209738f5ca765568bb4dc4113d56683977825a132c8dfeff\n            0xf5: 0x5c76839bf5a80b1da705dbdf43e4dd6770cd7501af11ff2dab7918dfe18f00ff\n            0xf6: 0xbf228fc9b0f000b68fb921f7aa6aff8100000000000000000000000000000001\n            0xf7: 0xc6a29131e7594004bc2aa79f0d2c402a1409c57c77d284c14b1a3ab0ff8fff01\n            0xf8: 0xe6b3e5cf6ec90e532fef7d08455ebf92a03e9e3f6e224ea0febdf1a9f08f0101\n            0x0103: 0x82ec698218879ec55c33085514ff7f0000000000000000000000000000000001\n            0x0104: 0x3122f4bcdf6dd8b265cd18eb6af28c879aed44a35e0bf59273e39e6c7ff000ff\n            0x0105: 0x6a2b3bc87a02c29b9d27757df43047ecd0f15485270fca27417a701c701000ff\n            0x0106: 0x228fc9b0f000b68fb921f7aa6aff810000000000000000000000000000000001\n            0x0107: 0x88e1259502eef93d46060aacc9e2ff506c734dade0b6714ab12d17e46ff00101\n            0x0108: 0x4a103813c12c12169b218296bb0a9eae80cf8d2b158aa70eb990f99480100101\n            0x0113: 0xec698218879ec55c33085514ff7f000000000000000000000000000000000001\n            0x0114: 0x722ad218eb1995a2d257c4c06d8de993c203cfc8e3512df7d633e17e908ffeff\n            0x0115: 0x8ac9b5ec08d74612cb29f941481d274b51721af2296207c0da8d24667f9100ff\n            0x0116: 0x8fc9b0f000b68fb921f7aa6aff81000000000000000000000000000000000001\n            0x0117: 0x81d5ff63680841482299f3eab616446dcd336f537c0c565aa4112ab95d91ff01\n            0x0118: 0x9c6ca90dac4e97dea02ac969e8649ee9e6232e0c3f4797411151cb8f90910101\n            0x0123: 0x698218879ec55c33085514ff7f00000000000000000000000000000000000001\n            0x0124: 0x8a2cbd9f40794e2205b13306f2aa0a43c60823c64b95d8601fa4f1e521ee00ff\n            0x0125: 0xc1b5a1e3a81da51b10d84e880f0113ff67b863ddad3faf1f4ecf413f101200ff\n            0x0126: 0xc9b0f000b68fb921f7aa6aff8100000000000000000000000000000000000001\n            0x0127: 0x410be68e49452a1fbcd863bf6e8d637f8eae4979c34c88d552afbcc20fee0101\n            0x0128: 0xf540cb714754b5b1eb0373833833bd7fb0ee925ce8b92962500b7a1c22120101\n            0x0133: 0x8218879ec55c33085514ff7f0000000000000000000000000000000000000001\n            0x0134: 0xb795ad7ac24cfbb7435cf53bd3584f3d4b2709935635c3ceb66e761ff091feff\n            0x0135: 0x1f0bb7be91a0ccd0cca93d75cf03de3e6b56fe8f1c54242617665327219300ff\n            0x0136: 0xb0f000b68fb921f7aa6aff810000000000000000000000000000000000000001\n            0x0137: 0xad571756ecbff1bfdef064861e5e92c5d897a9cc380e54bdbaabd80bb793ff01\n            0x0138: 0xd8b5b531989e689f700dcdb43ab90e79a49dfbbb5a13dbf751df98bb34930101\n            0x0143: 0x18879ec55c33085514ff7f000000000000000000000000000000000000000001\n            0x0144: 0x67e4797dc21f02ce4a7c52218c7dbea5d212e6c244e24f0ba4c08613c7ec00ff\n            0x0145: 0xa1ce1a085f258785846939cc1d2e8725ac94ad4dff8913234e00679fb41400ff\n            0x0146: 0xf000b68fb921f7aa6aff81000000000000000000000000000000000000000001\n            0x0147: 0xcce501857a1cb45473915a28082af950e0f78f7e2de68ce748adb661b3ec0101\n            0x0148: 0x3b2e28d274a16c08b58a23bad63bba6d7b09685769d1f68ca3873bedc8140101\n            0x0153: 0x879ec55c33085514ff7f00000000000000000000000000000000000000000001\n            0x0154: 0x7fd07055ff50cdfe4b4bd9a15133d72d3607d92eb7ac81bac93db7ff4c93feff\n            0x0155: 0x665ac5c769e87f61d5993abc26522fbfca2734d76a63216b2d550d29c79500ff\n            0x0156: 0xb68fb921f7aa6aff8100000000000000000000000000000000000000000001\n            0x0157: 0x1c93db67c9884bc694686d69a25a5d7ed089841d5ce147fdd7199ab00d95ff01\n            0x0158: 0x485053d8ff66be52036597520344fac87b6a305426a9e49221d3f934dc950101\n            0x0163: 0x9ec55c33085514ff7f0000000000000000000000000000000000000000000001\n            0x0164: 0xec447e662ac08957d7e290a421dbf54c0aaf43aadc9cc465ad0b02f071ea00ff\n            0x0165: 0xdc9178d3bab470096f01477c859b5f4173986640b659426412a653465c1600ff\n            0x0166: 0xb68fb921f7aa6aff810000000000000000000000000000000000000000000001\n            0x0167: 0xdcf0a770777610503596ae0311af46c171151ed45107d7e7bb8f74bb5bea0101\n            0x0168: 0x4d65773387993928c95c861274232d3fb6f6b7fe1b22e4e61a30e71172160101\n            0x0173: 0xc55c33085514ff7f000000000000000000000000000000000000000000000001\n            0x0174: 0x537ca0f03f974303005f1e6693b55b72315a166841732e42b8353724a495feff\n            0x0175: 0x86418797ec60058de6cca47dfdbee79923ac49d7801e01840041ca76719700ff\n            0x0176: 0x8fb921f7aa6aff81000000000000000000000000000000000000000000000001\n            0x0177: 0x56a55341ab8d4318f1cfb55d5f21e2ba35d7e070a72bac6b2b21baae5f97ff01\n            0x0178: 0x55ddd0ec77909de6d8311116cf520398e816f928b06fdd90ec239d0488970101\n            0x0183: 0x5c33085514ff7f00000000000000000000000000000000000000000000000001\n            0x0184: 0xd542e526003539ead104274aff2d78332366e29d328c2161f0c120731fe800ff\n            0x0185: 0xc706cb25e8384ce9bb5c9cb48415238ba03e16c448e292c0a101843b081800ff\n            0x0186: 0xb921f7aa6aff8100000000000000000000000000000000000000000000000001\n            0x0187: 0x4ca55f89202c524cb0f1cb3195d13c8d94a9f7a05c59e1d4031577c707e80101\n            0x0188: 0x8c4b0574e9156b80035f3ecdcf1fe79d273ed7559747a4322bcd338f20180101\n            0x0193: 0x33085514ff7f0000000000000000000000000000000000000000000000000001\n            0x0194: 0x7f510dd7198cac0a92ff7ea80451838c0dfa12114c41a0ef05907397f897feff\n            0x0195: 0x1275e752b6aee228ecba5e9b57ef1111deff3c651e2cfbf2cccd13151f9900ff\n            0x0196: 0x21f7aa6aff810000000000000000000000000000000000000000000000000001\n            0x0197: 0x6646340ad51a03bb710caf05756b685b33c7dad62ae68d369243700ead99ff01\n            0x0198: 0x29d80e8060ef2221929bb18215586c742686d6860e028ca0456b443238990101\n            0x01a3: 0x085514ff7f000000000000000000000000000000000000000000000000000001\n            0x01a4: 0x1d164db738eb6893868b361ad2803f97be35764456e82a837667a693d1e600ff\n            0x01a5: 0x8b92c24abebf376a5aab5ff4dfd3538a03d38a10bced2aae8e1a8a85b81a00ff\n            0x01a6: 0xf7aa6aff81000000000000000000000000000000000000000000000000000001\n            0x01a7: 0x6931bda98c70e860a1f6a5224940f1ec7e6734cd9456c95806384f7cb7e60101\n            0x01a8: 0x3402a9db66492dfc2a220715e76243469462f24edc56903ba1d8e96ed21a0101\n            0x01b3: 0x5514ff7f00000000000000000000000000000000000000000000000000000001\n            0x01b4: 0x178918ffbcb401d4efd2f7dfb4d01a897172267f0f491121ac52dd614899feff\n            0x01b5: 0x38ecff71480ca0b422f2ed6f780d5fead2ae234a49104b10a86f7f0dd19b00ff\n            0x01b6: 0xaa6aff8100000000000000000000000000000000000000000000000000000001\n            0x01b7: 0xd02811cb5dc1d80567e810532b235b7672f5c78cd6e89bb511d5e2d8f79bff01\n            0x01b8: 0x1b4e6404f474c18055d30bb8987672f59e97980d6f9de1764c0fbec5ec9b0101\n            0x01c3: 0x14ff7f0000000000000000000000000000000000000000000000000000000001\n            0x01c4: 0xffd368e44b3f85cb81ae394c9809ca9fa2db46a83d7880a912ab6d4a87e400ff\n            0x01c5: 0x0981ad53c19b15a94bcf0bf20235dd0da9df25f46ae635029fe2062e6c1c00ff\n            0x01c6: 0x6aff810000000000000000000000000000000000000000000000000000000001\n            0x01c7: 0x19df06ffa28250867006726405fbc05d43dc2f9d2f025006db089bd46be40101\n            0x01c8: 0x243fffe3a4f2982f45055c08f379648ab886da8027a7401117a8e0b8881c0101\n            0x01d3: 0xff7f000000000000000000000000000000000000000000000000000000000001\n            0x01d4: 0x41e065d46e0349cfe624c4e8a2034aea1f7edfff80e511cd8067d488949bfeff\n            0x01d5: 0xa84162ca6675a22c4c79dfc4ea15f760db5a04dbf04246764199b668879d00ff\n            0x01d6: 0xff81000000000000000000000000000000000000000000000000000000000001\n            0x01d7: 0x1226984faa6b05ebdbd45d8477fa4fd5b55bfd5061de03c319282b153d9dff01\n            0x01d8: 0x5cc9e6b0b749fd94541ad00364bdec2fca7816981ca3e38f485decc7a49d0101\n            0x01e3: 0x7f00000000000000000000000000000000000000000000000000000000000001\n            0x01e4: 0xe9772778f50fa0a69cd10fa019ac56d72ac7a7d7af26c4ba28415c8f41e200ff\n            0x01e5: 0x33f0385ef73feebdb952e5adb643dd0fa178fd9271578219ad50a73d241e00ff\n            0x01e6: 0x8100000000000000000000000000000000000000000000000000000000000001\n            0x01e7: 0xfd405cce8f73dffc04a6f0ff6ffc6bf7961876d09c5b4933a68f0cc623e20101\n            0x01e8: 0xc5a8f4566fd2e96e4ce3a8b3ec0863e7b20bc3b2f3dc5261ba8a0174421e0101\n            0x01f3: 0x01\n            0x01f4: 0xf9cb87f5b1ab58602f52a1e9d392e5675b86a59a53943a8d4ec2a915dc9dfeff\n            0x01f5: 0x893d729a64e318860ec5047e70e598da163eb41e71e74b04dfd4712d419f00ff\n            0x01f6: 0x01\n            0x01f7: 0xee5f2839c1b4f6ca05e6fdb04e2fb49c0f860b3765c27dc781a150cb7f9fff01\n            0x01f8: 0xb4c358e3c6bcddfb509ea487d733df0e1854f29c3b6bfd4a8caabe3f609f0101\n            0x0200: 0x01\n            0x0203: 0x01\n            0x0204: 0xb8247842bb5ce75c08d0c251669ed5870fa24a22952e5db3a7c66c59ffe000ff\n            0x0205: 0xee526e5a06f2a990b2bf6c951e5feabf0e07ee16877296e1be872db9e02000ff\n            0x0206: 0x01\n            0x0207: 0xeda7d024b6de40a9d3b966e71f10a4667edc5b71cab07aeabcac6249dfe00101\n            0x0208: 0x512ecfaeeb11205f0833e1054dcb1300488e0954be5af77a49e143aa00200101\n            0x0210: 0x01\n            0x0213: 0x01\n            0x0214: 0x8dcb65b5494eba78cd6756a6f9851f6e26d0f2bb9ecd7e9abd7e9b11209ffeff\n            0x0215: 0x6694bb31b20cd625f3756897dae6d738f2e64467b5b6f10fa3e07763ffa100ff\n            0x0216: 0x01\n            0x0217: 0xe678999aeffd1f1f45081f64de7f80ab083dd7df04721ed64ee04c03bda1ff01\n            0x0218: 0x39b68fb9898dd7568abd178397251ce8226a25c1d305a4e79573333520a10101\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmArithmeticTest/expPower2Filler.yml",
    "content": "expPower2:\n\n  # For n where n=2^m\n  # Test 2^n, 2^(n-1), 2^(n+1) \n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n      \n\n    <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {  \n            (def 'storageJump 0x10)\n\n            (def 'calc (m) {\n                 (def 'n (exp 2 m))\n\n                 [[(* storageJump m)]]       (exp 2 n)\n                 [[(+ (* storageJump m) 1)]] (exp 2 (- n 1))\n                 [[(+ (* storageJump m) 2)]] (exp 2 (+ n 1))\n              }\n            )\n\n            (calc 1)\n            (calc 2)\n            (calc 3)\n            (calc 4)\n            (calc 5)\n            (calc 6)\n            (calc 7)\n            (calc 8)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n      \n  transaction:\n    data:\n    - :abi f(uint) 0\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>\n    value:\n    - '1'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    \n    \n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            # 0x10*m:   2^(2^m)\n            # 0x10*m+1: 2^(2^m-1)\n            # 0x10*m+2: 2^(2^m+1)\n\n            # 2^2\n            0x10: 0x04\n            0x11: 0x02\n            0x12: 0x08\n\n            # 2^4\n            0x20: 0x10\n            0x21: 0x08\n            0x22: 0x20\n\n            # 2^8\n            0x30: 0x0100\n            0x31: 0x0080\n            0x32: 0x0200\n\n            # 2^16\n            0x40: 0x010000\n            0x41: 0x008000\n            0x42: 0x020000\n\n            # 2^32\n            0x50: 0x0100000000\n            0x51: 0x0080000000\n            0x52: 0x0200000000\n\n            # 2^64\n            0x60: 0x010000000000000000\n            0x61: 0x008000000000000000\n            0x62: 0x020000000000000000\n\n            # 2^128\n            0x70: 0x0100000000000000000000000000000000\n            0x71: 0x0080000000000000000000000000000000\n            0x72: 0x0200000000000000000000000000000000\n\n            # 2^256 = 0 in evm math\n            0x81: 0x8000000000000000000000000000000000000000000000000000000000000000\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmArithmeticTest/fibFiller.yml",
    "content": "fib:\n\n  # The Fibonnaci sequence\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n      \n\n    <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {  \n           (def 'fib (n) [[n]] (+ @@(- n 1) @@(- n 2)))\n           (fib  2)\n           (fib  3)\n           (fib  4)\n           (fib  5)\n           (fib  6)\n           (fib  7)\n           (fib  8)\n           (fib  9)\n           (fib 10)\n        }\n      nonce: '0'\n      storage:\n        0: 0x00\n        1: 0x01\n\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n      \n# The transaction to check\n  transaction:\n    data: \n    - :raw 0x01\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>\n    value:\n    - '1'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    \n    \n  expect:\n    - indexes:\n        data:  !!int -1\n        gas:   !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0:  0x00\n            1:  0x01\n            2:  0x01\n            3:  0x02\n            4:  0x03\n            5:  0x05\n            6:  0x08\n            7:  0x0D # 13\n            8:  0x15 # 21\n            9:  0x22 # 34\n            10: 0x37 # 55\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmArithmeticTest/modFiller.yml",
    "content": "mod:\n\n  # This test is for the MOD opcode\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    0000000000000000000000000000000000001000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (% 2 3)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001001:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           ; -1 % 2  (2^256-1 = -1 in evm arithmetic)\n           [[0]] (% 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 2)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001002:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           ; 0 % -1\n           [[0]] (% 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001003:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n              [[0]] (% 3 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001004:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n              ; The expected result is 2, which is counter\n              ; intuitive. The reason is that MOD uses unsigned\n              ; arithmetic. -2 % 3 is indeed 1, but 2^256 % 3 = 1\n              ; and therefore (2^256-2) % 3 = 2\n              ;\n              [[0]] (% (- 0 2) 3)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001005:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n              ; The original test was (3%0)-1, but since we're\n              ; already checking 3%0 (contract 0...0103), I decided\n              ; it would be better to check a different number\n              [[0]] (- (% 16 0) 1)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (call 0xffffff (+ 0x1000 $4) 0 0 0 0 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n# The transaction to check\n  transaction:\n    data:\n    - :label mod_2_3    :abi f(uint) 0\n    - :label mod_neg1_2 :abi f(uint) 1\n    - :label mod_0_neg1 :abi f(uint) 2\n    - :label mod_3_0    :abi f(uint) 3\n    - :label mod_neg2_3 :abi f(uint) 4\n    - :label mod_16_0   :abi f(uint) 5\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n  expect:\n    - indexes:\n        data: :label mod_2_3\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001000:\n          storage:\n            0: 0x02\n\n\n\n\n    - indexes:\n        data: :label mod_neg1_2\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001001:\n          storage:\n            0: 0x01\n\n\n\n    - indexes:\n        data:\n        - :label mod_0_neg1\n        - :label mod_3_0\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001002:\n          storage:\n            0: 0x00\n        0000000000000000000000000000000000001003:\n          storage:\n            0: 0x00\n\n\n\n    - indexes:\n        data: :label mod_neg2_3\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001004:\n          storage:\n            0: 0x02\n\n\n\n    - indexes:\n        data: :label mod_16_0\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001005:\n          storage:\n            # The expression is actually (16 % 0) - 1, so\n            # The result here is -1 = 256^2-1\n            0: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmArithmeticTest/mulFiller.yml",
    "content": "mul:\n\n  # Multiplication\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    0000000000000000000000000000000000001000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            [[0]] (* 2 3)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001001:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            ; -1 * -1\n            ; -1 = 2^256-1 in evm arithmetic\n            [[0]] (*\n                     0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n                     0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n                  )\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001002:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n             [[0]] (* 0 23)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001003:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n             [[0]] (* 23 1)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001004:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           ; 2^255 * -1 (the expected answer is 2^255,\n           ;             because -2^255 = 2^256-2^255 in evm arithmetic)\n           [[0]] (*\n               0x8000000000000000000000000000000000000000000000000000000000000000\n               0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n           )\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001005:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           ; 2^255 * 2^255\n           ;\n           ; the expected answer is 0, because 2^510 % 2^256 = 0\n           [[0]] (*\n               0x8000000000000000000000000000000000000000000000000000000000000000\n               0x8000000000000000000000000000000000000000000000000000000000000000\n           )\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001006:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           ; (2^255-1) * (2^255-1)\n           ;\n           ; = 2^510 - 2*2^255 + 1 = 2^510 - 2^256 + 1 = 1\n           [[0]] (*\n               0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n               0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n           )\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001007:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (* (*\n                 0x1234567890abcdef0fedcba0987654321\n                 0x1234567890abcdef0fedcba0987654321\n              )\n              0x1234567890abcdef0fedcba0987654321\n           )\n        }\n      nonce: '0'\n      storage: {}\n\n\n    # Do a mul underflow, see that the transaction is reverted\n    0000000000000000000000000000000000001008:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      # [[0]] 1   so the test will fail if there is no revert\n      # 00 PUSH1 01\n      # 02 PUSH1 00\n      # 04 SSTORE\n      #  Do a stack underflow\n      # 05 PUSH1 01\n      # 07 MUL\n      # 08 STOP\n      code: :raw 0x600160005560010200\n      nonce: '0'\n      storage: {}\n\n\n\n\n\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (call 0xffffff (+ 0x1000 $4) 0 0 0 0 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n# The transaction to check\n  transaction:\n    data:\n    - :label mul_2_3                     :abi f(uint) 0\n    - :label mul_neg1_neg1               :abi f(uint) 1\n    - :label mul_0_23                    :abi f(uint) 2\n    - :label mul_23_1                    :abi f(uint) 3\n    - :label mul_2pow255_neg1            :abi f(uint) 4\n    - :label mul_2pow255_2pow255         :abi f(uint) 5\n    - :label mul_2pow255min1_2pow255min1 :abi f(uint) 6\n    - :label big_pow_3                   :abi f(uint) 7\n    - :label stack_underflow             :abi f(uint) 8\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n  expect:\n    - indexes:\n        data:\n        - :label mul_0_23\n        - :label mul_2pow255_2pow255\n        - :label stack_underflow\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001002:\n          storage:\n             0: 0x00\n        0000000000000000000000000000000000001005:\n          storage:\n             0: 0x00\n        # It's 1 unless the transaction is reverted\n        0000000000000000000000000000000000001008:\n          storage:\n             0: 0x00\n\n\n\n    - indexes:\n        data: :label mul_2_3\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001000:\n          storage:\n             0: 0x06\n\n\n\n\n    - indexes:\n        data: :label mul_neg1_neg1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001001:\n          storage:\n             0: 0x01\n\n\n\n    - indexes:\n        data: :label mul_23_1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001003:\n          storage:\n             # 0x17 = 23\n             0: 0x17\n\n\n\n    - indexes:\n        data: :label mul_2pow255_neg1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001004:\n          storage:\n             # 2^255, which is equal to -2^255 in evm arithmetic\n             0: 0x8000000000000000000000000000000000000000000000000000000000000000\n\n\n\n    - indexes:\n        data: :label mul_2pow255min1_2pow255min1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001006:\n          storage:\n             # (2^255-1)*(2^255-1) = 2^510 - 2*255 + 1 = 2^510-2^256+1 = 1\n             0: 0x01\n\n\n\n    - indexes:\n        data: :label big_pow_3\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001007:\n          storage:\n             # Just a big number, multiplied by itself to raise it to the power\n             # of three\n             0: 0x47D0817E4167B1EB4F9FC722B133EF9D7D9A6FB4C2C1C442D000107A5E419561\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmArithmeticTest/mulmodFiller.yml",
    "content": "mulmod:\n\n  # Test modular multiplication\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    0000000000000000000000000000000000001000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           ; (1*2) % 2 is zero\n           [[0]] (mulmod 1 2 2)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001001:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           ; -a is actually 2^256-a\n           ;\n           ; 2^256 % 3 = 1\n           ; (2^256-1) % 3 = (1-1)%3 = 0\n           [[0]] (mulmod (- 0 1) (- 0 2) 3)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001002:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           ; -5 % 3 = (2^256 - 5) % 3 = (1-2)%3 = (-1) % 3 = 2\n           [[0]] (mulmod (- 0 5) 1 3)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001003:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           ; -3 is actually 2^256-3, which is much more than five\n           [[0]] (mulmod 5 1 (- 0 3))\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001004:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (mulmod 27 37 100)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001005:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           (def 'pow2_255 0x8000000000000000000000000000000000000000000000000000000000000000)\n\n           ; 2^255%5 = 3\n           ;     2%5 = 2\n           ;           6%5 = 1\n           [[0]] (mulmod pow2_255 2 5)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001006:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           ; (256^2-1) % 5 = 0\n           [[0]] (mulmod (- 0 1) 2 5)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001007:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           (def 'pow2_255 0x8000000000000000000000000000000000000000000000000000000000000000)\n\n           ; 2^255%5 = 3\n           ;     2%5 = 2\n           ; (3-1) * 2 = 4\n           [[0]] (mulmod (- pow2_255 1) 2 5)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001008:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           (def 'pow2_255 0x8000000000000000000000000000000000000000000000000000000000000000)\n\n           ; 2^255%5 = 3\n           ;     2%5 = 2\n           ; ((3+1) * 2) % 5 = 3\n           [[0]] (mulmod (+ pow2_255 1) 2 5)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001009:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           ; smod   is signed mod, -5%3 = -1\n           ; mulmod is unsigned mod, -5%3 = 2\n           ; -1 != 2\n           [[0]] (= (smod (- 0 5) 3) (mulmod (- 0 5) 1 3))\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    000000000000000000000000000000000000100a:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           ; mod and mulmod are both unsigned mod\n           ; equal\n           [[0]] (= (mod (- 0 5) 3) (mulmod (- 0 5) 1 3))\n        }\n      nonce: '0'\n      storage: {}\n\n\n    000000000000000000000000000000000000100b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           ; (mulmod a b -c) is usually a*b, because -c is\n           ; actually 2^256-c, which is huge\n           ; not equal\n           [[0]] (= (mulmod 5 1 (- 0 3)) 2)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    000000000000000000000000000000000000100c:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           ; (mulmod x y 0) is zero\n           [[0]] (mulmod 0 1 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    000000000000000000000000000000000000100d:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           ; (mulmod x y 0) is zero\n           [[0]] (mulmod 1 0 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    000000000000000000000000000000000000100e:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           ; (mulmod x y 0) is zero\n           [[0]] (- 1 (mulmod 0 0 0))\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n\n    000000000000000000000000000000000000100f:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           ; (mulmod x y 0) is zero\n           [[0]] (mulmod 5 1 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (call 0xffffff (+ 0x1000 $4) 0 0 0 0 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n  transaction:\n    data:\n    - :label mm_1_2_2             :abi f(uint) 0\n    - :label mm_neg1_neg2_3       :abi f(uint) 1\n    - :label mm_neg5_1_3          :abi f(uint) 2\n    - :label mm_5_1_neg3          :abi f(uint) 3\n    - :label mm_27_37_100         :abi f(uint) 4\n    - :label mm_2pow255_2_5       :abi f(uint) 5\n    - :label mm_neg1_2_5          :abi f(uint) 6\n    - :label mm_2pow255min1_2_5   :abi f(uint) 7\n    - :label mm_2pow255plus1_2_5  :abi f(uint) 8\n    - :label mulmod_vs_smod       :abi f(uint) 9\n    - :label mulmod_vs_mod        :abi f(uint) 0x0a\n    - :label mulmod_pos_pos_neg   :abi f(uint) 0x0b\n    - :label mm_0_1_0             :abi f(uint) 0x0c\n    - :label mm_1_0_0             :abi f(uint) 0x0d\n    - :label one_minus_mm_0_0_0   :abi f(uint) 0x0e\n    - :label mm_5_1_0             :abi f(uint) 0x0d\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n  expect:\n\n    # All zero results\n\n    - indexes:\n        data:\n        - :label mm_1_2_2\n        - :label mm_neg1_neg2_3\n        - :label mm_neg1_2_5\n        - :label mulmod_vs_smod\n        - :label mulmod_pos_pos_neg\n        - :label mm_0_1_0\n        - :label mm_1_0_0\n        - :label mm_5_1_0\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001000:\n          storage:\n            0: 0x00\n        0000000000000000000000000000000000001001:\n          storage:\n            0: 0x00\n        0000000000000000000000000000000000001006:\n          storage:\n            0: 0x00\n        0000000000000000000000000000000000001009:\n          storage:\n            0: 0x00\n        000000000000000000000000000000000000100b:\n          storage:\n            0: 0x00\n        000000000000000000000000000000000000100c:\n          storage:\n            0: 0x00\n        000000000000000000000000000000000000100d:\n          storage:\n            0: 0x00\n        000000000000000000000000000000000000100f:\n          storage:\n            0: 0x00\n\n\n\n\n\n    - indexes:\n        data:\n        - :label mm_neg5_1_3\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001002:\n          storage:\n            0: 0x02\n\n\n\n    - indexes:\n        data:\n        - :label mm_5_1_neg3\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001003:\n          storage:\n            0: 0x05\n\n\n\n\n    - indexes:\n        data:\n        - :label mm_27_37_100\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001004:\n          storage:\n            # 27x37 is 999, so mod 100 is 99 or 0x63\n            0: 0x63\n\n\n\n    - indexes:\n        data:\n        - :label mm_2pow255_2_5\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001005:\n          storage:\n            0: 0x01\n\n\n\n\n\n    - indexes:\n        data:\n        - :label mm_2pow255min1_2_5\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001007:\n          storage:\n            0: 0x04\n\n\n\n    - indexes:\n        data:\n        - :label mm_2pow255plus1_2_5\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001008:\n          storage:\n            0: 0x03\n\n\n\n\n    - indexes:\n        data:\n        - :label mulmod_vs_mod\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        000000000000000000000000000000000000100a:\n          storage:\n            0: 0x01\n\n\n    - indexes:\n        data:\n        - :label one_minus_mm_0_0_0\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        000000000000000000000000000000000000100e:\n          storage:\n            0: 0x01\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmArithmeticTest/notFiller.yml",
    "content": "not:\n\n  # Test the NOT operator\n  # note that the VMTest test has a bug that kills the result instead of\n  # returning it (it's written to memory, not storage)\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    0000000000000000000000000000000000001000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (not 0x0123456789abcdef)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (call 0xffffff (+ 0x1000 $4) 0 0 0 0 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n  transaction:\n    data:\n    - :abi f(uint) 0\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001000:\n          storage:\n            # The result of not 0x00...00123456789abcdef\n            0: 0xfffffffffffffffffffffffffffffffffffffffffffffffffedcba9876543210\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmArithmeticTest/sdivFiller.yml",
    "content": "sdiv:\n\n  # This test deals with addition, mostly addition that causes an overflow.\n  # It is based on the fact that arithmetic in the evm is modulo 2^256.\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    0000000000000000000000000000000000001000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {  ; (0 - (-1)) / (-1) = 1/(-1) = -1\n           ;\n           ; -1 = 2^256-1\n           (def 'neg1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n           [[0]] (sdiv (- 0 neg1) neg1)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n\n    0000000000000000000000000000000000001001:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {  ; (-1) / (0 - (-1)) = (-1)/1 = -1\n           ;\n           ; -1 = 2^256-1\n           (def 'neg1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n\n           [[0]] (sdiv neg1 (- 0 neg1))\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001002:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {  ; (-2) / (-4) = 0\n           ;\n           ; evm doesn't do fractions\n           [[0]] (sdiv (- 0 2) (- 0 4))\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001003:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {  ; 4 / (-2) = -2\n           ;\n           [[0]] (sdiv 4 (- 0 2))\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n\n    0000000000000000000000000000000000001004:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {  ; 5 / (-4) = -1\n           ;\n           ; evm doesn't do fractions\n           ;\n           [[0]] (sdiv 5 (- 0 4))\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n\n    0000000000000000000000000000000000001005:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {  ; (-2^255) / (-1) = 2^255\n           ; Because 2^255 = -2^255 in evm arithmetic\n           (def 'pow_2_255 0x8000000000000000000000000000000000000000000000000000000000000000)\n\n           [[0]] (sdiv (- 0 pow_2_255) (- 0 1))\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001006:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {  ; (-2^255) / 0 = 0\n           ; anything / 0 = 0 in evm\n           ;\n           (def 'pow_2_255 0x8000000000000000000000000000000000000000000000000000000000000000)\n\n           [[0]] (sdiv (- 0 pow_2_255) 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n\n    0000000000000000000000000000000000001007:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {  ; (-1)/25 = 0 (no fractions in evm)\n\n           [[0]] (sdiv (- 0 1) 25)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001008:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {  ; (-1)/(-1) = 1\n\n           [[0]] (sdiv (- 0 1) (- 0 1))\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001009:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {  ; (-1)/1 = -1\n\n           [[0]] (sdiv (- 0 1) 1)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    000000000000000000000000000000000000100a:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {  ; (-3)/0 = 0\n           ; x/0 = 0 in evm\n\n           [[0]] (sdiv (- 0 3) (- 0 0))\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    000000000000000000000000000000000000100b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {  ; (0-(-1))/0 = 0\n           ;\n           ; -1 = 2^256-1\n           (def 'neg1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n\n           [[0]] (sdiv (- 0 neg1) 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n\n    000000000000000000000000000000000000100c:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {  ; (0-(-1))/0 + 1 = 1\n           ;\n           ; -1 = 2^256-1\n           (def 'neg1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n\n           [[0]] (+ (sdiv (- 0 neg1) 0) 1)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    000000000000000000000000000000000000100d:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      # 00 PUSH1 05\n      # 02 PUSH1 09\n      # 04 PUSH1 00\n      # 06 SUB  (stack becomes -9, 5)\n      # 07 SDIV (-9/5 = -1, no fractions)\n      # 08 PUSH1 00\n      # 0A SSTORE\n      # 0B STOP\n      code: :raw 0x600560096000030560005500\n      nonce: '0'\n      storage: {}\n\n\n    000000000000000000000000000000000000100e:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           ; A negative number sdiv -1 is the absolute value of that number\n           (def 'pow2_255 0x8000000000000000000000000000000000000000000000000000000000000000)\n           (def 'pow2_255_min1 (- pow2_255 1))\n           [[0]] (sdiv (- 0 pow2_255_min1) (- 0 1))\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    000000000000000000000000000000000000100f:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           ; A negative number sdiv -1 is the absolute value of that number\n           (def 'pow2_255 0x8000000000000000000000000000000000000000000000000000000000000000)\n           [[0]] (sdiv (- 0 pow2_255) (- 0 1))\n           ; 2^255 = -2^255 in evm (modulo 2^256)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000000110:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           ; (- 0 maxint) is 0x80.....01, so -1 / -maxint is zero\n\n           (def 'neg1   0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n           (def 'maxint 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n           [[0]] (sdiv neg1 (- 0 maxint))\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (call 0xffffff (+ 0x1000 $4) 0 0 0 0 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n# The transaction to check\n  transaction:\n    data:\n    - :label sdiv_1_neg1       :abi f(uint) 0\n    - :label sdiv_neg1_1       :abi f(uint) 1\n    - :label sdiv_neg2_neg4    :abi f(uint) 2\n    - :label sdiv_4_neg2       :abi f(uint) 3\n    - :label sdiv_5_neg4       :abi f(uint) 4\n    - :label sdiv_2pow255_neg1 :abi f(uint) 5\n    - :label sdiv_2pow255_0    :abi f(uint) 6\n    - :label sdiv_neg1_25      :abi f(uint) 7\n    - :label sdiv_neg1_neg1    :abi f(uint) 8\n    - :label sdiv_neg1_1_2nd   :abi f(uint) 9\n    - :label sdiv_neg3_0       :abi f(uint) 0x0a\n    - :label sdiv_1_0          :abi f(uint) 0x0b\n    - :label sdiv_1_0_add1     :abi f(uint) 0x0c\n    - :label sdiv_neg9_5       :abi f(uint) 0x0d\n    - :label sdiv_2pow255_neg1_2nd :abi f(uint) 0x0f\n\n    # The minint here is (- 0 maxint), which is 0x80...001, which is\n    # one more than the real minint\n    - :label sdiv_minint_neg1  :abi f(uint) 0x0e\n    - :label sdiv_neg1_minint  :abi f(uint) 0x10\n\n\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n  expect:\n\n    - indexes:\n        data:\n        - :label sdiv_neg2_neg4\n        - :label sdiv_2pow255_0\n        - :label sdiv_neg1_25\n        - :label sdiv_neg3_0\n        - :label sdiv_1_0\n        - :label sdiv_neg1_minint\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001002:\n          storage:\n            # evm doesn't do fractions, so this is zero\n            0: 0x00\n        0000000000000000000000000000000000001006:\n          storage:\n            # anything / 0x00 in evm\n            0: 0x00\n        0000000000000000000000000000000000001007:\n          storage:\n            # evm doesn't do fractions, so this is zero\n            0: 0x00\n        000000000000000000000000000000000000100A:\n          storage:\n            # anything / 0x00 in evm\n            0: 0x00\n        000000000000000000000000000000000000100B:\n          storage:\n            # anything / 0x00 in evm\n            0: 0x00\n        0000000000000000000000000000000000000110:\n          storage:\n            0: 0x00\n\n\n\n    - indexes:\n        data: :label sdiv_1_neg1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001000:\n          storage:\n            # -1\n            0: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n\n\n    - indexes:\n        data: :label sdiv_neg1_1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001001:\n          storage:\n            # -1\n            0: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n\n\n\n\n\n\n    - indexes:\n        data: :label sdiv_4_neg2\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001003:\n          storage:\n            # -2\n            0: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\n\n\n\n    - indexes:\n        data: :label sdiv_5_neg4\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001004:\n          storage:\n            # -1\n            0: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n\n\n    - indexes:\n        data: :label sdiv_2pow255_neg1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001005:\n          storage:\n            # 2^255 = -2^255\n            0: 0x8000000000000000000000000000000000000000000000000000000000000000\n\n\n\n    - indexes:\n        data: :label sdiv_neg1_neg1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001008:\n          storage:\n            0: 0x01\n\n\n\n    - indexes:\n        data: :label sdiv_neg1_1_2nd\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001009:\n          storage:\n            # -1\n            0: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n\n\n    - indexes:\n        data: :label sdiv_1_0_add1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        000000000000000000000000000000000000100C:\n          storage:\n            # 1/0 + 1\n            0: 1\n\n\n\n\n    - indexes:\n        data: :label sdiv_neg9_5\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        000000000000000000000000000000000000100d:\n          storage:\n            # -9/5 = -1, no fractions\n            0: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n\n\n\n    - indexes:\n        data: :label sdiv_minint_neg1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        000000000000000000000000000000000000100e:\n          storage:\n            # minint is -0x8000...0001, which\n            # turns into 0x7fff...ffff\n            0: 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n\n\n    - indexes:\n        data: :label sdiv_2pow255_neg1_2nd\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        000000000000000000000000000000000000100f:\n          storage:\n            # 2^255 = -2^255 in evm arithmetic\n            0: 0x8000000000000000000000000000000000000000000000000000000000000000\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmArithmeticTest/signextendFiller.yml",
    "content": "signextend:\n\n  # sign extend tests\n  # This opcode takes two parameters, b and x.\n  #     b is the number of bytes of x that are filled.\n  # It then extends the sign by filling the rest of the bytes with the most significant bit of x\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n    # Invalid Byte Number\n    0000000000000000000000000000000000001000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (signextend 80 0x126af4)\n        }\n      nonce: '0'\n      storage: {}\n\n    # SIGNEXTEND 0 0\n    0000000000000000000000000000000000001001:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (signextend 0 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    # SIGNEXTEND 0 -1\n    0000000000000000000000000000000000001002:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           ; -1 = 2^256-1 in EVM arithmetic\n           [[0]] (signextend 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    # SIGNEXTEND -2 -2\n    0000000000000000000000000000000000001003:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           ; -2 = 2^256-2 in EVM arithmetic\n           [[0]] (signextend\n                    0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\n                    0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\n                 )\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    # SIGNEXTEND -1 -1\n    0000000000000000000000000000000000001004:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           ; -1 = 2^256-1 in EVM arithmetic\n           [[0]] (signextend\n                    0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n                    0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n                 )\n        }\n      nonce: '0'\n      storage: {}\n\n\n    # SIGNEXTEND <large number> 255\n    0000000000000000000000000000000000001005:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (signextend 0xf00000000000000001 0xff)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n\n    # SIGNEXTEND -1 0\n    0000000000000000000000000000000000001006:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (signextend\n                     ; -1 a.k.a. 2^256-1\n                     0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n                     0x00\n                 )\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    # SIGNEXTEND bit is not set\n    0000000000000000000000000000000000001007:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {  ; Extend the sign of 0x6a, which is a positive 8 bit number\n           [[0]] (signextend 0 0x122f6a)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    # SIGNEXTEND bit is not set in higher byte\n    0000000000000000000000000000000000001008:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {  ; Extend the sign of 0x6af4, which is a positive 16 bit number\n           [[0]] (signextend 1 0x126af4)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    # SIGNEXTEND bit is set in higher byte\n    0000000000000000000000000000000000001009:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {  ; The first two bytes are 0xfaf4, which is a negative 16 bit number\n           ; (-1292). The sign is extended from the first two bytes to the entire\n           ; value\n           [[0]] (signextend 1 0x12faf4)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    # SIGNEXTEND overflow the byte number value\n    # Called signextend_Overflow_dj42 in the VMTests\n    000000000000000000000000000000000000100A:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (signextend 0x010000000000000001 0x8000)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    # SIGNEXTEND, try to overflow the byte number value\n    # using a different value\n    000000000000000000000000000000000000100B:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (signextend 0xf0000000000001 0xFFFF)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    # SIGNEXTEND set bit (0, 0x<whatever>ff)\n    000000000000000000000000000000000000100C:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (signextend 0 0x122ff4)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    # SIGNEXTEND 31, positive value\n    000000000000000000000000000000000000100D:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (signextend 31 1)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    # SIGNEXTEND 31, negative value\n    000000000000000000000000000000000000100E:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (signextend 31 (sub 0 1))\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n\n\n\n\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (call 0xffffff (+ 0x1000 $4) 0 0 0 0 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n# The transaction to check\n  transaction:\n    data:\n    - :label invalid_byte        :abi f(uint) 0\n    - :label zero_zero           :abi f(uint) 1\n    - :label zero_neg1           :abi f(uint) 2\n    - :label neg2_neg2           :abi f(uint) 3\n    - :label neg1_neg1           :abi f(uint) 4\n    - :label large_ff            :abi f(uint) 5\n    - :label neg1_zero           :abi f(uint) 6\n    - :label bit_is_not_set      :abi f(uint) 7\n    - :label bit_is_not_set_high :abi f(uint) 8\n    - :label bit_is_set_high     :abi f(uint) 9\n    - :label overflow_bytenum    :abi f(uint) 0x0A\n    - :label overflow_bytenum2   :abi f(uint) 0x0B\n    - :label bit_is_set          :abi f(uint) 0x0C\n    - :label byte31_pos          :abi f(uint) 0x0D\n    - :label byte31_neg          :abi f(uint) 0x0E\n\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n  expect:\n\n    # All the tests where the result is zero\n    - indexes:\n        data:\n        - :label zero_zero\n        - :label neg1_zero\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001001:\n          storage:\n            0: 0x00\n        0000000000000000000000000000000000001006:\n          storage:\n            0: 0x00\n\n\n    - indexes:\n        data:\n        - :label invalid_byte\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001000:\n          storage:\n            0: 0x126af4\n\n\n    - indexes:\n        data:\n        - :label zero_neg1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001002:\n          storage:\n            #  -1 a.k.a. 2^256-1\n            0: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n\n\n    - indexes:\n        data:\n        - :label neg2_neg2\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001003:\n          storage:\n            #  -2, a.k.a 2^256-2\n            0: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\n\n\n\n    - indexes:\n        data:\n        - :label neg1_neg1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001004:\n          storage:\n            #  -1, a.k.a 2^256-1\n            0: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n\n\n\n    - indexes:\n        data:\n        - :label large_ff\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001005:\n          storage:\n            0: 0xff\n\n\n\n    - indexes:\n        data:\n        - :label bit_is_not_set\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001007:\n          storage:\n            0: 0x6a\n\n\n\n\n    - indexes:\n        data:\n        - :label bit_is_not_set_high\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001008:\n          storage:\n            0: 0x6af4\n\n\n\n    - indexes:\n        data:\n        - :label bit_is_set_high\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001009:\n          storage:\n            # -1292, the first two bytes are negative, and their sign is extended\n            0: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaf4\n\n\n\n    - indexes:\n        data:\n        - :label overflow_bytenum\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        000000000000000000000000000000000000100a:\n          storage:\n            # No sign extension with such a high value for the byte num\n            0: 0x8000\n\n\n\n    - indexes:\n        data:\n        - :label overflow_bytenum2\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        000000000000000000000000000000000000100b:\n          storage:\n            # No sign extension with such a high value for the byte num\n            0: 0xFFFF\n\n\n\n    - indexes:\n        data:\n        - :label bit_is_set\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        000000000000000000000000000000000000100c:\n          storage:\n            # Extend 0xf4, which is negative - so the result is negative\n            0: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4\n\n\n    - indexes:\n        data:\n        - :label byte31_pos\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        # signextend(31, <whatever>) doesn't do anything, because there is\n        # nowhere to extend to\n        000000000000000000000000000000000000100d:\n          storage:\n            0: 0x01\n\n\n    - indexes:\n        data:\n        - :label byte31_neg\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        # signextend(31, <whatever>) doesn't do anything, because there is\n        # nowhere to extend to\n        000000000000000000000000000000000000100e:\n          storage:\n            0: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmArithmeticTest/smodFiller.yml",
    "content": "smod:\n\n  # This test is for the MOD opcode\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    0000000000000000000000000000000000001000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (smod 2 3)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001001:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           ; -1 % 2  (2^256-1 = -1 in evm arithmetic)\n           [[0]] (smod 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 2)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001002:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           ; 0 % -1\n           [[0]] (smod 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001003:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n              [[0]] (smod 3 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001004:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n              [[0]] (smod (- 0 2) 3)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001005:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n              ; The original test was (3%0)-1, but since we're\n              ; already checking 3%0 (contract 0...0103), I decided\n              ; it would be better to check a different number\n              [[0]] (- (smod 16 0) 1)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (call 0xffffff (+ 0x1000 $4) 0 0 0 0 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n# The transaction to check\n  transaction:\n    data:\n    - :label smod_2_3    :abi f(uint) 0\n    - :label smod_neg1_2 :abi f(uint) 1\n    - :label smod_0_neg1 :abi f(uint) 2\n    - :label smod_3_0    :abi f(uint) 3\n    - :label smod_neg2_3 :abi f(uint) 4\n    - :label smod_16_0   :abi f(uint) 5\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n  expect:\n    - indexes:\n        data: :label smod_2_3\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001000:\n          storage:\n            0: 0x02\n\n\n\n\n    - indexes:\n        data: :label smod_neg1_2\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001001:\n          storage:\n            # -1\n            0: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n\n\n    - indexes:\n        data:\n        - :label smod_0_neg1\n        - :label smod_3_0\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001002:\n          storage:\n            0: 0x00\n        0000000000000000000000000000000000001003:\n          storage:\n            0: 0x00\n\n\n\n    - indexes:\n        data: :label smod_neg2_3\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001004:\n          storage:\n            # -2\n            0: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\n\n\n\n    - indexes:\n        data: :label smod_16_0\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001005:\n          storage:\n            # The expression is actually (16 % 0) - 1, so\n            # The result here is -1 = 256^2-1\n            0: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmArithmeticTest/subFiller.yml",
    "content": "sub:\n\n  # This test deals with addition, mostly addition that causes an overflow.\n  # It is based on the fact that arithmetic in the evm is modulo 2^256.\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    0000000000000000000000000000000000001000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (- 23 1)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001001:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (- 2 3)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001002:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (- 0 23)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001003:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           ; 0 - (-1)\n           [[0]] (-   0\n                    0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001004:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           ; (-1) - 0\n           ; evm arithmetic is mod 2^256, and the big number is 2^256-1\n          [[0]] (- 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n                     0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (call 0xffffff (+ 0x1000 $4) 0 0 0 0 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n# The transaction to check\n  transaction:\n    data:\n    - :label sub_23_1   :abi f(uint) 0\n    - :label sub_2_3    :abi f(uint) 1\n    - :label sub_0_23   :abi f(uint) 2\n    - :label sub_0_neg1 :abi f(uint) 3\n    - :label sub_neg1_0 :abi f(uint) 4\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n  expect:\n    - indexes:\n        data: :label sub_23_1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001000:\n          storage:\n            # 0x16 = 22, a.k.a. 23-1\n            0: 0x16\n\n\n    - indexes:\n        data: :label sub_2_3\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001001:\n          storage:\n            # -1\n            0: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n\n    - indexes:\n        data: :label sub_0_23\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001002:\n          storage:\n            # -23\n            0: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe9\n\n    - indexes:\n        data: :label sub_0_neg1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001003:\n          storage:\n            0: 0x01\n\n\n    - indexes:\n        data: :label sub_neg1_0\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001004:\n          storage:\n            # -1\n            0: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmArithmeticTest/twoOpsFiller.yml",
    "content": "\ntwoOps:\n  # Generated automatically by twoOpsGen.js\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n    # Calculate the results\n    <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n      code: |\n        {\n\n\n            [[0x11000100010000]] (ADD (ADD 2 1) 3)\n            [[0x11000100010001]] (ADD (ADD 2 1) 1)\n            [[0x11000100020000]] (ADD (MUL 2 1) 3)\n            [[0x11000100020001]] (ADD (MUL 2 1) 1)\n            [[0x11000100030000]] (ADD (SUB 2 1) 3)\n            [[0x11000100030001]] (ADD (SUB 2 1) 1)\n            [[0x11000100040000]] (ADD (DIV 2 1) 3)\n            [[0x11000100040001]] (ADD (DIV 2 1) 1)\n            [[0x11000100050000]] (ADD (SDIV 2 1) 3)\n            [[0x11000100050001]] (ADD (SDIV 2 1) 1)\n            [[0x11000100060000]] (ADD (MOD 2 1) 3)\n            [[0x11000100060001]] (ADD (MOD 2 1) 1)\n            [[0x11000100070000]] (ADD (SMOD 2 1) 3)\n            [[0x11000100070001]] (ADD (SMOD 2 1) 1)\n            [[0x11000100080000]] (ADD (ADDMOD 2 1 3) 3)\n            [[0x11000100080001]] (ADD (ADDMOD 2 1 3) 1)\n            [[0x11000100090000]] (ADD (MULMOD 2 1 3) 3)\n            [[0x11000100090001]] (ADD (MULMOD 2 1 3) 1)\n            [[0x110001000a0000]] (ADD (EXP 2 1) 3)\n            [[0x110001000a0001]] (ADD (EXP 2 1) 1)\n            [[0x11000100100000]] (ADD (LT 2 1) 3)\n            [[0x11000100100001]] (ADD (LT 2 1) 1)\n            [[0x11000100110000]] (ADD (GT 2 1) 3)\n            [[0x11000100110001]] (ADD (GT 2 1) 1)\n            [[0x11000100120000]] (ADD (SLT 2 1) 3)\n            [[0x11000100120001]] (ADD (SLT 2 1) 1)\n            [[0x11000100130000]] (ADD (SGT 2 1) 3)\n            [[0x11000100130001]] (ADD (SGT 2 1) 1)\n            [[0x11000100140000]] (ADD (EQ 2 1) 3)\n            [[0x11000100140001]] (ADD (EQ 2 1) 1)\n            [[0x11000100150000]] (ADD (ISZERO 2) 3)\n            [[0x11000100150001]] (ADD (ISZERO 2) 1)\n            [[0x11000100160000]] (ADD (AND 2 1) 3)\n            [[0x11000100160001]] (ADD (AND 2 1) 1)\n            [[0x11000100170000]] (ADD (OR 2 1) 3)\n            [[0x11000100170001]] (ADD (OR 2 1) 1)\n            [[0x11000100180000]] (ADD (XOR 2 1) 3)\n            [[0x11000100180001]] (ADD (XOR 2 1) 1)\n            [[0x11000100190000]] (ADD (NOT 2) 3)\n            [[0x11000100190001]] (ADD (NOT 2) 1)\n            [[0x110001001a0000]] (ADD (BYTE 2 1) 3)\n            [[0x110001001a0001]] (ADD (BYTE 2 1) 1)\n            [[0x110001001b0000]] (ADD (SHL 2 1) 3)\n            [[0x110001001b0001]] (ADD (SHL 2 1) 1)\n            [[0x110001001c0000]] (ADD (SHR 2 1) 3)\n            [[0x110001001c0001]] (ADD (SHR 2 1) 1)\n            [[0x110001001d0000]] (ADD (SAR 2 1) 3)\n            [[0x110001001d0001]] (ADD (SAR 2 1) 1)\n            [[0x11000200010000]] (MUL (ADD 2 1) 3)\n            [[0x11000200010001]] (MUL (ADD 2 1) 1)\n            [[0x11000200020000]] (MUL (MUL 2 1) 3)\n            [[0x11000200020001]] (MUL (MUL 2 1) 1)\n            [[0x11000200030000]] (MUL (SUB 2 1) 3)\n            [[0x11000200030001]] (MUL (SUB 2 1) 1)\n            [[0x11000200040000]] (MUL (DIV 2 1) 3)\n            [[0x11000200040001]] (MUL (DIV 2 1) 1)\n            [[0x11000200050000]] (MUL (SDIV 2 1) 3)\n            [[0x11000200050001]] (MUL (SDIV 2 1) 1)\n            [[0x11000200060000]] (MUL (MOD 2 1) 3)\n            [[0x11000200060001]] (MUL (MOD 2 1) 1)\n            [[0x11000200070000]] (MUL (SMOD 2 1) 3)\n            [[0x11000200070001]] (MUL (SMOD 2 1) 1)\n            [[0x11000200080000]] (MUL (ADDMOD 2 1 3) 3)\n            [[0x11000200080001]] (MUL (ADDMOD 2 1 3) 1)\n            [[0x11000200090000]] (MUL (MULMOD 2 1 3) 3)\n            [[0x11000200090001]] (MUL (MULMOD 2 1 3) 1)\n            [[0x110002000a0000]] (MUL (EXP 2 1) 3)\n            [[0x110002000a0001]] (MUL (EXP 2 1) 1)\n            [[0x11000200100000]] (MUL (LT 2 1) 3)\n            [[0x11000200100001]] (MUL (LT 2 1) 1)\n            [[0x11000200110000]] (MUL (GT 2 1) 3)\n            [[0x11000200110001]] (MUL (GT 2 1) 1)\n            [[0x11000200120000]] (MUL (SLT 2 1) 3)\n            [[0x11000200120001]] (MUL (SLT 2 1) 1)\n            [[0x11000200130000]] (MUL (SGT 2 1) 3)\n            [[0x11000200130001]] (MUL (SGT 2 1) 1)\n            [[0x11000200140000]] (MUL (EQ 2 1) 3)\n            [[0x11000200140001]] (MUL (EQ 2 1) 1)\n            [[0x11000200150000]] (MUL (ISZERO 2) 3)\n            [[0x11000200150001]] (MUL (ISZERO 2) 1)\n            [[0x11000200160000]] (MUL (AND 2 1) 3)\n            [[0x11000200160001]] (MUL (AND 2 1) 1)\n            [[0x11000200170000]] (MUL (OR 2 1) 3)\n            [[0x11000200170001]] (MUL (OR 2 1) 1)\n            [[0x11000200180000]] (MUL (XOR 2 1) 3)\n            [[0x11000200180001]] (MUL (XOR 2 1) 1)\n            [[0x11000200190000]] (MUL (NOT 2) 3)\n            [[0x11000200190001]] (MUL (NOT 2) 1)\n            [[0x110002001a0000]] (MUL (BYTE 2 1) 3)\n            [[0x110002001a0001]] (MUL (BYTE 2 1) 1)\n            [[0x110002001b0000]] (MUL (SHL 2 1) 3)\n            [[0x110002001b0001]] (MUL (SHL 2 1) 1)\n            [[0x110002001c0000]] (MUL (SHR 2 1) 3)\n            [[0x110002001c0001]] (MUL (SHR 2 1) 1)\n            [[0x110002001d0000]] (MUL (SAR 2 1) 3)\n            [[0x110002001d0001]] (MUL (SAR 2 1) 1)\n            [[0x11000300010000]] (SUB (ADD 2 1) 3)\n            [[0x11000300010001]] (SUB (ADD 2 1) 1)\n            [[0x11000300020000]] (SUB (MUL 2 1) 3)\n            [[0x11000300020001]] (SUB (MUL 2 1) 1)\n            [[0x11000300030000]] (SUB (SUB 2 1) 3)\n            [[0x11000300030001]] (SUB (SUB 2 1) 1)\n            [[0x11000300040000]] (SUB (DIV 2 1) 3)\n            [[0x11000300040001]] (SUB (DIV 2 1) 1)\n            [[0x11000300050000]] (SUB (SDIV 2 1) 3)\n            [[0x11000300050001]] (SUB (SDIV 2 1) 1)\n            [[0x11000300060000]] (SUB (MOD 2 1) 3)\n            [[0x11000300060001]] (SUB (MOD 2 1) 1)\n            [[0x11000300070000]] (SUB (SMOD 2 1) 3)\n            [[0x11000300070001]] (SUB (SMOD 2 1) 1)\n            [[0x11000300080000]] (SUB (ADDMOD 2 1 3) 3)\n            [[0x11000300080001]] (SUB (ADDMOD 2 1 3) 1)\n            [[0x11000300090000]] (SUB (MULMOD 2 1 3) 3)\n            [[0x11000300090001]] (SUB (MULMOD 2 1 3) 1)\n            [[0x110003000a0000]] (SUB (EXP 2 1) 3)\n            [[0x110003000a0001]] (SUB (EXP 2 1) 1)\n            [[0x11000300100000]] (SUB (LT 2 1) 3)\n            [[0x11000300100001]] (SUB (LT 2 1) 1)\n            [[0x11000300110000]] (SUB (GT 2 1) 3)\n            [[0x11000300110001]] (SUB (GT 2 1) 1)\n            [[0x11000300120000]] (SUB (SLT 2 1) 3)\n            [[0x11000300120001]] (SUB (SLT 2 1) 1)\n            [[0x11000300130000]] (SUB (SGT 2 1) 3)\n            [[0x11000300130001]] (SUB (SGT 2 1) 1)\n            [[0x11000300140000]] (SUB (EQ 2 1) 3)\n            [[0x11000300140001]] (SUB (EQ 2 1) 1)\n            [[0x11000300150000]] (SUB (ISZERO 2) 3)\n            [[0x11000300150001]] (SUB (ISZERO 2) 1)\n            [[0x11000300160000]] (SUB (AND 2 1) 3)\n            [[0x11000300160001]] (SUB (AND 2 1) 1)\n            [[0x11000300170000]] (SUB (OR 2 1) 3)\n            [[0x11000300170001]] (SUB (OR 2 1) 1)\n            [[0x11000300180000]] (SUB (XOR 2 1) 3)\n            [[0x11000300180001]] (SUB (XOR 2 1) 1)\n            [[0x11000300190000]] (SUB (NOT 2) 3)\n            [[0x11000300190001]] (SUB (NOT 2) 1)\n            [[0x110003001a0000]] (SUB (BYTE 2 1) 3)\n            [[0x110003001a0001]] (SUB (BYTE 2 1) 1)\n            [[0x110003001b0000]] (SUB (SHL 2 1) 3)\n            [[0x110003001b0001]] (SUB (SHL 2 1) 1)\n            [[0x110003001c0000]] (SUB (SHR 2 1) 3)\n            [[0x110003001c0001]] (SUB (SHR 2 1) 1)\n            [[0x110003001d0000]] (SUB (SAR 2 1) 3)\n            [[0x110003001d0001]] (SUB (SAR 2 1) 1)\n            [[0x11000400010000]] (DIV (ADD 2 1) 3)\n            [[0x11000400010001]] (DIV (ADD 2 1) 1)\n            [[0x11000400020000]] (DIV (MUL 2 1) 3)\n            [[0x11000400020001]] (DIV (MUL 2 1) 1)\n            [[0x11000400030000]] (DIV (SUB 2 1) 3)\n            [[0x11000400030001]] (DIV (SUB 2 1) 1)\n            [[0x11000400040000]] (DIV (DIV 2 1) 3)\n            [[0x11000400040001]] (DIV (DIV 2 1) 1)\n            [[0x11000400050000]] (DIV (SDIV 2 1) 3)\n            [[0x11000400050001]] (DIV (SDIV 2 1) 1)\n            [[0x11000400060000]] (DIV (MOD 2 1) 3)\n            [[0x11000400060001]] (DIV (MOD 2 1) 1)\n            [[0x11000400070000]] (DIV (SMOD 2 1) 3)\n            [[0x11000400070001]] (DIV (SMOD 2 1) 1)\n            [[0x11000400080000]] (DIV (ADDMOD 2 1 3) 3)\n            [[0x11000400080001]] (DIV (ADDMOD 2 1 3) 1)\n            [[0x11000400090000]] (DIV (MULMOD 2 1 3) 3)\n            [[0x11000400090001]] (DIV (MULMOD 2 1 3) 1)\n            [[0x110004000a0000]] (DIV (EXP 2 1) 3)\n            [[0x110004000a0001]] (DIV (EXP 2 1) 1)\n            [[0x11000400100000]] (DIV (LT 2 1) 3)\n            [[0x11000400100001]] (DIV (LT 2 1) 1)\n            [[0x11000400110000]] (DIV (GT 2 1) 3)\n            [[0x11000400110001]] (DIV (GT 2 1) 1)\n            [[0x11000400120000]] (DIV (SLT 2 1) 3)\n            [[0x11000400120001]] (DIV (SLT 2 1) 1)\n            [[0x11000400130000]] (DIV (SGT 2 1) 3)\n            [[0x11000400130001]] (DIV (SGT 2 1) 1)\n            [[0x11000400140000]] (DIV (EQ 2 1) 3)\n            [[0x11000400140001]] (DIV (EQ 2 1) 1)\n            [[0x11000400150000]] (DIV (ISZERO 2) 3)\n            [[0x11000400150001]] (DIV (ISZERO 2) 1)\n            [[0x11000400160000]] (DIV (AND 2 1) 3)\n            [[0x11000400160001]] (DIV (AND 2 1) 1)\n            [[0x11000400170000]] (DIV (OR 2 1) 3)\n            [[0x11000400170001]] (DIV (OR 2 1) 1)\n            [[0x11000400180000]] (DIV (XOR 2 1) 3)\n            [[0x11000400180001]] (DIV (XOR 2 1) 1)\n            [[0x11000400190000]] (DIV (NOT 2) 3)\n            [[0x11000400190001]] (DIV (NOT 2) 1)\n            [[0x110004001a0000]] (DIV (BYTE 2 1) 3)\n            [[0x110004001a0001]] (DIV (BYTE 2 1) 1)\n            [[0x110004001b0000]] (DIV (SHL 2 1) 3)\n            [[0x110004001b0001]] (DIV (SHL 2 1) 1)\n            [[0x110004001c0000]] (DIV (SHR 2 1) 3)\n            [[0x110004001c0001]] (DIV (SHR 2 1) 1)\n            [[0x110004001d0000]] (DIV (SAR 2 1) 3)\n            [[0x110004001d0001]] (DIV (SAR 2 1) 1)\n            [[0x11000500010000]] (SDIV (ADD 2 1) 3)\n            [[0x11000500010001]] (SDIV (ADD 2 1) 1)\n            [[0x11000500020000]] (SDIV (MUL 2 1) 3)\n            [[0x11000500020001]] (SDIV (MUL 2 1) 1)\n            [[0x11000500030000]] (SDIV (SUB 2 1) 3)\n            [[0x11000500030001]] (SDIV (SUB 2 1) 1)\n            [[0x11000500040000]] (SDIV (DIV 2 1) 3)\n            [[0x11000500040001]] (SDIV (DIV 2 1) 1)\n            [[0x11000500050000]] (SDIV (SDIV 2 1) 3)\n            [[0x11000500050001]] (SDIV (SDIV 2 1) 1)\n            [[0x11000500060000]] (SDIV (MOD 2 1) 3)\n            [[0x11000500060001]] (SDIV (MOD 2 1) 1)\n            [[0x11000500070000]] (SDIV (SMOD 2 1) 3)\n            [[0x11000500070001]] (SDIV (SMOD 2 1) 1)\n            [[0x11000500080000]] (SDIV (ADDMOD 2 1 3) 3)\n            [[0x11000500080001]] (SDIV (ADDMOD 2 1 3) 1)\n            [[0x11000500090000]] (SDIV (MULMOD 2 1 3) 3)\n            [[0x11000500090001]] (SDIV (MULMOD 2 1 3) 1)\n            [[0x110005000a0000]] (SDIV (EXP 2 1) 3)\n            [[0x110005000a0001]] (SDIV (EXP 2 1) 1)\n            [[0x11000500100000]] (SDIV (LT 2 1) 3)\n            [[0x11000500100001]] (SDIV (LT 2 1) 1)\n            [[0x11000500110000]] (SDIV (GT 2 1) 3)\n            [[0x11000500110001]] (SDIV (GT 2 1) 1)\n            [[0x11000500120000]] (SDIV (SLT 2 1) 3)\n            [[0x11000500120001]] (SDIV (SLT 2 1) 1)\n            [[0x11000500130000]] (SDIV (SGT 2 1) 3)\n            [[0x11000500130001]] (SDIV (SGT 2 1) 1)\n            [[0x11000500140000]] (SDIV (EQ 2 1) 3)\n            [[0x11000500140001]] (SDIV (EQ 2 1) 1)\n            [[0x11000500150000]] (SDIV (ISZERO 2) 3)\n            [[0x11000500150001]] (SDIV (ISZERO 2) 1)\n            [[0x11000500160000]] (SDIV (AND 2 1) 3)\n            [[0x11000500160001]] (SDIV (AND 2 1) 1)\n            [[0x11000500170000]] (SDIV (OR 2 1) 3)\n            [[0x11000500170001]] (SDIV (OR 2 1) 1)\n            [[0x11000500180000]] (SDIV (XOR 2 1) 3)\n            [[0x11000500180001]] (SDIV (XOR 2 1) 1)\n            [[0x11000500190000]] (SDIV (NOT 2) 3)\n            [[0x11000500190001]] (SDIV (NOT 2) 1)\n            [[0x110005001a0000]] (SDIV (BYTE 2 1) 3)\n            [[0x110005001a0001]] (SDIV (BYTE 2 1) 1)\n            [[0x110005001b0000]] (SDIV (SHL 2 1) 3)\n            [[0x110005001b0001]] (SDIV (SHL 2 1) 1)\n            [[0x110005001c0000]] (SDIV (SHR 2 1) 3)\n            [[0x110005001c0001]] (SDIV (SHR 2 1) 1)\n            [[0x110005001d0000]] (SDIV (SAR 2 1) 3)\n            [[0x110005001d0001]] (SDIV (SAR 2 1) 1)\n            [[0x11000600010000]] (MOD (ADD 2 1) 3)\n            [[0x11000600010001]] (MOD (ADD 2 1) 1)\n            [[0x11000600020000]] (MOD (MUL 2 1) 3)\n            [[0x11000600020001]] (MOD (MUL 2 1) 1)\n            [[0x11000600030000]] (MOD (SUB 2 1) 3)\n            [[0x11000600030001]] (MOD (SUB 2 1) 1)\n            [[0x11000600040000]] (MOD (DIV 2 1) 3)\n            [[0x11000600040001]] (MOD (DIV 2 1) 1)\n            [[0x11000600050000]] (MOD (SDIV 2 1) 3)\n            [[0x11000600050001]] (MOD (SDIV 2 1) 1)\n            [[0x11000600060000]] (MOD (MOD 2 1) 3)\n            [[0x11000600060001]] (MOD (MOD 2 1) 1)\n            [[0x11000600070000]] (MOD (SMOD 2 1) 3)\n            [[0x11000600070001]] (MOD (SMOD 2 1) 1)\n            [[0x11000600080000]] (MOD (ADDMOD 2 1 3) 3)\n            [[0x11000600080001]] (MOD (ADDMOD 2 1 3) 1)\n            [[0x11000600090000]] (MOD (MULMOD 2 1 3) 3)\n            [[0x11000600090001]] (MOD (MULMOD 2 1 3) 1)\n            [[0x110006000a0000]] (MOD (EXP 2 1) 3)\n            [[0x110006000a0001]] (MOD (EXP 2 1) 1)\n            [[0x11000600100000]] (MOD (LT 2 1) 3)\n            [[0x11000600100001]] (MOD (LT 2 1) 1)\n            [[0x11000600110000]] (MOD (GT 2 1) 3)\n            [[0x11000600110001]] (MOD (GT 2 1) 1)\n            [[0x11000600120000]] (MOD (SLT 2 1) 3)\n            [[0x11000600120001]] (MOD (SLT 2 1) 1)\n            [[0x11000600130000]] (MOD (SGT 2 1) 3)\n            [[0x11000600130001]] (MOD (SGT 2 1) 1)\n            [[0x11000600140000]] (MOD (EQ 2 1) 3)\n            [[0x11000600140001]] (MOD (EQ 2 1) 1)\n            [[0x11000600150000]] (MOD (ISZERO 2) 3)\n            [[0x11000600150001]] (MOD (ISZERO 2) 1)\n            [[0x11000600160000]] (MOD (AND 2 1) 3)\n            [[0x11000600160001]] (MOD (AND 2 1) 1)\n            [[0x11000600170000]] (MOD (OR 2 1) 3)\n            [[0x11000600170001]] (MOD (OR 2 1) 1)\n            [[0x11000600180000]] (MOD (XOR 2 1) 3)\n            [[0x11000600180001]] (MOD (XOR 2 1) 1)\n            [[0x11000600190000]] (MOD (NOT 2) 3)\n            [[0x11000600190001]] (MOD (NOT 2) 1)\n            [[0x110006001a0000]] (MOD (BYTE 2 1) 3)\n            [[0x110006001a0001]] (MOD (BYTE 2 1) 1)\n            [[0x110006001b0000]] (MOD (SHL 2 1) 3)\n            [[0x110006001b0001]] (MOD (SHL 2 1) 1)\n            [[0x110006001c0000]] (MOD (SHR 2 1) 3)\n            [[0x110006001c0001]] (MOD (SHR 2 1) 1)\n            [[0x110006001d0000]] (MOD (SAR 2 1) 3)\n            [[0x110006001d0001]] (MOD (SAR 2 1) 1)\n            [[0x11000700010000]] (SMOD (ADD 2 1) 3)\n            [[0x11000700010001]] (SMOD (ADD 2 1) 1)\n            [[0x11000700020000]] (SMOD (MUL 2 1) 3)\n            [[0x11000700020001]] (SMOD (MUL 2 1) 1)\n            [[0x11000700030000]] (SMOD (SUB 2 1) 3)\n            [[0x11000700030001]] (SMOD (SUB 2 1) 1)\n            [[0x11000700040000]] (SMOD (DIV 2 1) 3)\n            [[0x11000700040001]] (SMOD (DIV 2 1) 1)\n            [[0x11000700050000]] (SMOD (SDIV 2 1) 3)\n            [[0x11000700050001]] (SMOD (SDIV 2 1) 1)\n            [[0x11000700060000]] (SMOD (MOD 2 1) 3)\n            [[0x11000700060001]] (SMOD (MOD 2 1) 1)\n            [[0x11000700070000]] (SMOD (SMOD 2 1) 3)\n            [[0x11000700070001]] (SMOD (SMOD 2 1) 1)\n            [[0x11000700080000]] (SMOD (ADDMOD 2 1 3) 3)\n            [[0x11000700080001]] (SMOD (ADDMOD 2 1 3) 1)\n            [[0x11000700090000]] (SMOD (MULMOD 2 1 3) 3)\n            [[0x11000700090001]] (SMOD (MULMOD 2 1 3) 1)\n            [[0x110007000a0000]] (SMOD (EXP 2 1) 3)\n            [[0x110007000a0001]] (SMOD (EXP 2 1) 1)\n            [[0x11000700100000]] (SMOD (LT 2 1) 3)\n            [[0x11000700100001]] (SMOD (LT 2 1) 1)\n            [[0x11000700110000]] (SMOD (GT 2 1) 3)\n            [[0x11000700110001]] (SMOD (GT 2 1) 1)\n            [[0x11000700120000]] (SMOD (SLT 2 1) 3)\n            [[0x11000700120001]] (SMOD (SLT 2 1) 1)\n            [[0x11000700130000]] (SMOD (SGT 2 1) 3)\n            [[0x11000700130001]] (SMOD (SGT 2 1) 1)\n            [[0x11000700140000]] (SMOD (EQ 2 1) 3)\n            [[0x11000700140001]] (SMOD (EQ 2 1) 1)\n            [[0x11000700150000]] (SMOD (ISZERO 2) 3)\n            [[0x11000700150001]] (SMOD (ISZERO 2) 1)\n            [[0x11000700160000]] (SMOD (AND 2 1) 3)\n            [[0x11000700160001]] (SMOD (AND 2 1) 1)\n            [[0x11000700170000]] (SMOD (OR 2 1) 3)\n            [[0x11000700170001]] (SMOD (OR 2 1) 1)\n            [[0x11000700180000]] (SMOD (XOR 2 1) 3)\n            [[0x11000700180001]] (SMOD (XOR 2 1) 1)\n            [[0x11000700190000]] (SMOD (NOT 2) 3)\n            [[0x11000700190001]] (SMOD (NOT 2) 1)\n            [[0x110007001a0000]] (SMOD (BYTE 2 1) 3)\n            [[0x110007001a0001]] (SMOD (BYTE 2 1) 1)\n            [[0x110007001b0000]] (SMOD (SHL 2 1) 3)\n            [[0x110007001b0001]] (SMOD (SHL 2 1) 1)\n            [[0x110007001c0000]] (SMOD (SHR 2 1) 3)\n            [[0x110007001c0001]] (SMOD (SHR 2 1) 1)\n            [[0x110007001d0000]] (SMOD (SAR 2 1) 3)\n            [[0x110007001d0001]] (SMOD (SAR 2 1) 1)\n            [[0x11000800010000]] (ADDMOD (ADD 2 1) 3 2)\n            [[0x11000800010001]] (ADDMOD (ADD 2 1) 1 2)\n            [[0x11000800020000]] (ADDMOD (MUL 2 1) 3 2)\n            [[0x11000800020001]] (ADDMOD (MUL 2 1) 1 2)\n            [[0x11000800030000]] (ADDMOD (SUB 2 1) 3 2)\n            [[0x11000800030001]] (ADDMOD (SUB 2 1) 1 2)\n            [[0x11000800040000]] (ADDMOD (DIV 2 1) 3 2)\n            [[0x11000800040001]] (ADDMOD (DIV 2 1) 1 2)\n            [[0x11000800050000]] (ADDMOD (SDIV 2 1) 3 2)\n            [[0x11000800050001]] (ADDMOD (SDIV 2 1) 1 2)\n            [[0x11000800060000]] (ADDMOD (MOD 2 1) 3 2)\n            [[0x11000800060001]] (ADDMOD (MOD 2 1) 1 2)\n            [[0x11000800070000]] (ADDMOD (SMOD 2 1) 3 2)\n            [[0x11000800070001]] (ADDMOD (SMOD 2 1) 1 2)\n            [[0x11000800080000]] (ADDMOD (ADDMOD 2 1 3) 3 2)\n            [[0x11000800080001]] (ADDMOD (ADDMOD 2 1 3) 1 2)\n            [[0x11000800090000]] (ADDMOD (MULMOD 2 1 3) 3 2)\n            [[0x11000800090001]] (ADDMOD (MULMOD 2 1 3) 1 2)\n            [[0x110008000a0000]] (ADDMOD (EXP 2 1) 3 2)\n            [[0x110008000a0001]] (ADDMOD (EXP 2 1) 1 2)\n            [[0x11000800100000]] (ADDMOD (LT 2 1) 3 2)\n            [[0x11000800100001]] (ADDMOD (LT 2 1) 1 2)\n            [[0x11000800110000]] (ADDMOD (GT 2 1) 3 2)\n            [[0x11000800110001]] (ADDMOD (GT 2 1) 1 2)\n            [[0x11000800120000]] (ADDMOD (SLT 2 1) 3 2)\n            [[0x11000800120001]] (ADDMOD (SLT 2 1) 1 2)\n            [[0x11000800130000]] (ADDMOD (SGT 2 1) 3 2)\n            [[0x11000800130001]] (ADDMOD (SGT 2 1) 1 2)\n            [[0x11000800140000]] (ADDMOD (EQ 2 1) 3 2)\n            [[0x11000800140001]] (ADDMOD (EQ 2 1) 1 2)\n            [[0x11000800150000]] (ADDMOD (ISZERO 2) 3 2)\n            [[0x11000800150001]] (ADDMOD (ISZERO 2) 1 2)\n            [[0x11000800160000]] (ADDMOD (AND 2 1) 3 2)\n            [[0x11000800160001]] (ADDMOD (AND 2 1) 1 2)\n            [[0x11000800170000]] (ADDMOD (OR 2 1) 3 2)\n            [[0x11000800170001]] (ADDMOD (OR 2 1) 1 2)\n            [[0x11000800180000]] (ADDMOD (XOR 2 1) 3 2)\n            [[0x11000800180001]] (ADDMOD (XOR 2 1) 1 2)\n            [[0x11000800190000]] (ADDMOD (NOT 2) 3 2)\n            [[0x11000800190001]] (ADDMOD (NOT 2) 1 2)\n            [[0x110008001a0000]] (ADDMOD (BYTE 2 1) 3 2)\n            [[0x110008001a0001]] (ADDMOD (BYTE 2 1) 1 2)\n            [[0x110008001b0000]] (ADDMOD (SHL 2 1) 3 2)\n            [[0x110008001b0001]] (ADDMOD (SHL 2 1) 1 2)\n            [[0x110008001c0000]] (ADDMOD (SHR 2 1) 3 2)\n            [[0x110008001c0001]] (ADDMOD (SHR 2 1) 1 2)\n            [[0x110008001d0000]] (ADDMOD (SAR 2 1) 3 2)\n            [[0x110008001d0001]] (ADDMOD (SAR 2 1) 1 2)\n            [[0x11000900010000]] (MULMOD (ADD 2 1) 3 2)\n            [[0x11000900010001]] (MULMOD (ADD 2 1) 1 2)\n            [[0x11000900020000]] (MULMOD (MUL 2 1) 3 2)\n            [[0x11000900020001]] (MULMOD (MUL 2 1) 1 2)\n            [[0x11000900030000]] (MULMOD (SUB 2 1) 3 2)\n            [[0x11000900030001]] (MULMOD (SUB 2 1) 1 2)\n            [[0x11000900040000]] (MULMOD (DIV 2 1) 3 2)\n            [[0x11000900040001]] (MULMOD (DIV 2 1) 1 2)\n            [[0x11000900050000]] (MULMOD (SDIV 2 1) 3 2)\n            [[0x11000900050001]] (MULMOD (SDIV 2 1) 1 2)\n            [[0x11000900060000]] (MULMOD (MOD 2 1) 3 2)\n            [[0x11000900060001]] (MULMOD (MOD 2 1) 1 2)\n            [[0x11000900070000]] (MULMOD (SMOD 2 1) 3 2)\n            [[0x11000900070001]] (MULMOD (SMOD 2 1) 1 2)\n            [[0x11000900080000]] (MULMOD (ADDMOD 2 1 3) 3 2)\n            [[0x11000900080001]] (MULMOD (ADDMOD 2 1 3) 1 2)\n            [[0x11000900090000]] (MULMOD (MULMOD 2 1 3) 3 2)\n            [[0x11000900090001]] (MULMOD (MULMOD 2 1 3) 1 2)\n            [[0x110009000a0000]] (MULMOD (EXP 2 1) 3 2)\n            [[0x110009000a0001]] (MULMOD (EXP 2 1) 1 2)\n            [[0x11000900100000]] (MULMOD (LT 2 1) 3 2)\n            [[0x11000900100001]] (MULMOD (LT 2 1) 1 2)\n            [[0x11000900110000]] (MULMOD (GT 2 1) 3 2)\n            [[0x11000900110001]] (MULMOD (GT 2 1) 1 2)\n            [[0x11000900120000]] (MULMOD (SLT 2 1) 3 2)\n            [[0x11000900120001]] (MULMOD (SLT 2 1) 1 2)\n            [[0x11000900130000]] (MULMOD (SGT 2 1) 3 2)\n            [[0x11000900130001]] (MULMOD (SGT 2 1) 1 2)\n            [[0x11000900140000]] (MULMOD (EQ 2 1) 3 2)\n            [[0x11000900140001]] (MULMOD (EQ 2 1) 1 2)\n            [[0x11000900150000]] (MULMOD (ISZERO 2) 3 2)\n            [[0x11000900150001]] (MULMOD (ISZERO 2) 1 2)\n            [[0x11000900160000]] (MULMOD (AND 2 1) 3 2)\n            [[0x11000900160001]] (MULMOD (AND 2 1) 1 2)\n            [[0x11000900170000]] (MULMOD (OR 2 1) 3 2)\n            [[0x11000900170001]] (MULMOD (OR 2 1) 1 2)\n            [[0x11000900180000]] (MULMOD (XOR 2 1) 3 2)\n            [[0x11000900180001]] (MULMOD (XOR 2 1) 1 2)\n            [[0x11000900190000]] (MULMOD (NOT 2) 3 2)\n            [[0x11000900190001]] (MULMOD (NOT 2) 1 2)\n            [[0x110009001a0000]] (MULMOD (BYTE 2 1) 3 2)\n            [[0x110009001a0001]] (MULMOD (BYTE 2 1) 1 2)\n            [[0x110009001b0000]] (MULMOD (SHL 2 1) 3 2)\n            [[0x110009001b0001]] (MULMOD (SHL 2 1) 1 2)\n            [[0x110009001c0000]] (MULMOD (SHR 2 1) 3 2)\n            [[0x110009001c0001]] (MULMOD (SHR 2 1) 1 2)\n            [[0x110009001d0000]] (MULMOD (SAR 2 1) 3 2)\n            [[0x110009001d0001]] (MULMOD (SAR 2 1) 1 2)\n            [[0x11000a00010000]] (EXP (ADD 2 1) 3)\n            [[0x11000a00010001]] (EXP (ADD 2 1) 1)\n            [[0x11000a00020000]] (EXP (MUL 2 1) 3)\n            [[0x11000a00020001]] (EXP (MUL 2 1) 1)\n            [[0x11000a00030000]] (EXP (SUB 2 1) 3)\n            [[0x11000a00030001]] (EXP (SUB 2 1) 1)\n            [[0x11000a00040000]] (EXP (DIV 2 1) 3)\n            [[0x11000a00040001]] (EXP (DIV 2 1) 1)\n            [[0x11000a00050000]] (EXP (SDIV 2 1) 3)\n            [[0x11000a00050001]] (EXP (SDIV 2 1) 1)\n            [[0x11000a00060000]] (EXP (MOD 2 1) 3)\n            [[0x11000a00060001]] (EXP (MOD 2 1) 1)\n            [[0x11000a00070000]] (EXP (SMOD 2 1) 3)\n            [[0x11000a00070001]] (EXP (SMOD 2 1) 1)\n            [[0x11000a00080000]] (EXP (ADDMOD 2 1 3) 3)\n            [[0x11000a00080001]] (EXP (ADDMOD 2 1 3) 1)\n            [[0x11000a00090000]] (EXP (MULMOD 2 1 3) 3)\n            [[0x11000a00090001]] (EXP (MULMOD 2 1 3) 1)\n            [[0x11000a000a0000]] (EXP (EXP 2 1) 3)\n            [[0x11000a000a0001]] (EXP (EXP 2 1) 1)\n            [[0x11000a00100000]] (EXP (LT 2 1) 3)\n            [[0x11000a00100001]] (EXP (LT 2 1) 1)\n            [[0x11000a00110000]] (EXP (GT 2 1) 3)\n            [[0x11000a00110001]] (EXP (GT 2 1) 1)\n            [[0x11000a00120000]] (EXP (SLT 2 1) 3)\n            [[0x11000a00120001]] (EXP (SLT 2 1) 1)\n            [[0x11000a00130000]] (EXP (SGT 2 1) 3)\n            [[0x11000a00130001]] (EXP (SGT 2 1) 1)\n            [[0x11000a00140000]] (EXP (EQ 2 1) 3)\n            [[0x11000a00140001]] (EXP (EQ 2 1) 1)\n            [[0x11000a00150000]] (EXP (ISZERO 2) 3)\n            [[0x11000a00150001]] (EXP (ISZERO 2) 1)\n            [[0x11000a00160000]] (EXP (AND 2 1) 3)\n            [[0x11000a00160001]] (EXP (AND 2 1) 1)\n            [[0x11000a00170000]] (EXP (OR 2 1) 3)\n            [[0x11000a00170001]] (EXP (OR 2 1) 1)\n            [[0x11000a00180000]] (EXP (XOR 2 1) 3)\n            [[0x11000a00180001]] (EXP (XOR 2 1) 1)\n            [[0x11000a00190000]] (EXP (NOT 2) 3)\n            [[0x11000a00190001]] (EXP (NOT 2) 1)\n            [[0x11000a001a0000]] (EXP (BYTE 2 1) 3)\n            [[0x11000a001a0001]] (EXP (BYTE 2 1) 1)\n            [[0x11000a001b0000]] (EXP (SHL 2 1) 3)\n            [[0x11000a001b0001]] (EXP (SHL 2 1) 1)\n            [[0x11000a001c0000]] (EXP (SHR 2 1) 3)\n            [[0x11000a001c0001]] (EXP (SHR 2 1) 1)\n            [[0x11000a001d0000]] (EXP (SAR 2 1) 3)\n            [[0x11000a001d0001]] (EXP (SAR 2 1) 1)\n            [[0x11001000010000]] (LT (ADD 2 1) 3)\n            [[0x11001000010001]] (LT (ADD 2 1) 1)\n            [[0x11001000020000]] (LT (MUL 2 1) 3)\n            [[0x11001000020001]] (LT (MUL 2 1) 1)\n            [[0x11001000030000]] (LT (SUB 2 1) 3)\n            [[0x11001000030001]] (LT (SUB 2 1) 1)\n            [[0x11001000040000]] (LT (DIV 2 1) 3)\n            [[0x11001000040001]] (LT (DIV 2 1) 1)\n            [[0x11001000050000]] (LT (SDIV 2 1) 3)\n            [[0x11001000050001]] (LT (SDIV 2 1) 1)\n            [[0x11001000060000]] (LT (MOD 2 1) 3)\n            [[0x11001000060001]] (LT (MOD 2 1) 1)\n            [[0x11001000070000]] (LT (SMOD 2 1) 3)\n            [[0x11001000070001]] (LT (SMOD 2 1) 1)\n            [[0x11001000080000]] (LT (ADDMOD 2 1 3) 3)\n            [[0x11001000080001]] (LT (ADDMOD 2 1 3) 1)\n            [[0x11001000090000]] (LT (MULMOD 2 1 3) 3)\n            [[0x11001000090001]] (LT (MULMOD 2 1 3) 1)\n            [[0x110010000a0000]] (LT (EXP 2 1) 3)\n            [[0x110010000a0001]] (LT (EXP 2 1) 1)\n            [[0x11001000100000]] (LT (LT 2 1) 3)\n            [[0x11001000100001]] (LT (LT 2 1) 1)\n            [[0x11001000110000]] (LT (GT 2 1) 3)\n            [[0x11001000110001]] (LT (GT 2 1) 1)\n            [[0x11001000120000]] (LT (SLT 2 1) 3)\n            [[0x11001000120001]] (LT (SLT 2 1) 1)\n            [[0x11001000130000]] (LT (SGT 2 1) 3)\n            [[0x11001000130001]] (LT (SGT 2 1) 1)\n            [[0x11001000140000]] (LT (EQ 2 1) 3)\n            [[0x11001000140001]] (LT (EQ 2 1) 1)\n            [[0x11001000150000]] (LT (ISZERO 2) 3)\n            [[0x11001000150001]] (LT (ISZERO 2) 1)\n            [[0x11001000160000]] (LT (AND 2 1) 3)\n            [[0x11001000160001]] (LT (AND 2 1) 1)\n            [[0x11001000170000]] (LT (OR 2 1) 3)\n            [[0x11001000170001]] (LT (OR 2 1) 1)\n            [[0x11001000180000]] (LT (XOR 2 1) 3)\n            [[0x11001000180001]] (LT (XOR 2 1) 1)\n            [[0x11001000190000]] (LT (NOT 2) 3)\n            [[0x11001000190001]] (LT (NOT 2) 1)\n            [[0x110010001a0000]] (LT (BYTE 2 1) 3)\n            [[0x110010001a0001]] (LT (BYTE 2 1) 1)\n            [[0x110010001b0000]] (LT (SHL 2 1) 3)\n            [[0x110010001b0001]] (LT (SHL 2 1) 1)\n            [[0x110010001c0000]] (LT (SHR 2 1) 3)\n            [[0x110010001c0001]] (LT (SHR 2 1) 1)\n            [[0x110010001d0000]] (LT (SAR 2 1) 3)\n            [[0x110010001d0001]] (LT (SAR 2 1) 1)\n            [[0x11001100010000]] (GT (ADD 2 1) 3)\n            [[0x11001100010001]] (GT (ADD 2 1) 1)\n            [[0x11001100020000]] (GT (MUL 2 1) 3)\n            [[0x11001100020001]] (GT (MUL 2 1) 1)\n            [[0x11001100030000]] (GT (SUB 2 1) 3)\n            [[0x11001100030001]] (GT (SUB 2 1) 1)\n            [[0x11001100040000]] (GT (DIV 2 1) 3)\n            [[0x11001100040001]] (GT (DIV 2 1) 1)\n            [[0x11001100050000]] (GT (SDIV 2 1) 3)\n            [[0x11001100050001]] (GT (SDIV 2 1) 1)\n            [[0x11001100060000]] (GT (MOD 2 1) 3)\n            [[0x11001100060001]] (GT (MOD 2 1) 1)\n            [[0x11001100070000]] (GT (SMOD 2 1) 3)\n            [[0x11001100070001]] (GT (SMOD 2 1) 1)\n            [[0x11001100080000]] (GT (ADDMOD 2 1 3) 3)\n            [[0x11001100080001]] (GT (ADDMOD 2 1 3) 1)\n            [[0x11001100090000]] (GT (MULMOD 2 1 3) 3)\n            [[0x11001100090001]] (GT (MULMOD 2 1 3) 1)\n            [[0x110011000a0000]] (GT (EXP 2 1) 3)\n            [[0x110011000a0001]] (GT (EXP 2 1) 1)\n            [[0x11001100100000]] (GT (LT 2 1) 3)\n            [[0x11001100100001]] (GT (LT 2 1) 1)\n            [[0x11001100110000]] (GT (GT 2 1) 3)\n            [[0x11001100110001]] (GT (GT 2 1) 1)\n            [[0x11001100120000]] (GT (SLT 2 1) 3)\n            [[0x11001100120001]] (GT (SLT 2 1) 1)\n            [[0x11001100130000]] (GT (SGT 2 1) 3)\n            [[0x11001100130001]] (GT (SGT 2 1) 1)\n            [[0x11001100140000]] (GT (EQ 2 1) 3)\n            [[0x11001100140001]] (GT (EQ 2 1) 1)\n            [[0x11001100150000]] (GT (ISZERO 2) 3)\n            [[0x11001100150001]] (GT (ISZERO 2) 1)\n            [[0x11001100160000]] (GT (AND 2 1) 3)\n            [[0x11001100160001]] (GT (AND 2 1) 1)\n            [[0x11001100170000]] (GT (OR 2 1) 3)\n            [[0x11001100170001]] (GT (OR 2 1) 1)\n            [[0x11001100180000]] (GT (XOR 2 1) 3)\n            [[0x11001100180001]] (GT (XOR 2 1) 1)\n            [[0x11001100190000]] (GT (NOT 2) 3)\n            [[0x11001100190001]] (GT (NOT 2) 1)\n            [[0x110011001a0000]] (GT (BYTE 2 1) 3)\n            [[0x110011001a0001]] (GT (BYTE 2 1) 1)\n            [[0x110011001b0000]] (GT (SHL 2 1) 3)\n            [[0x110011001b0001]] (GT (SHL 2 1) 1)\n            [[0x110011001c0000]] (GT (SHR 2 1) 3)\n            [[0x110011001c0001]] (GT (SHR 2 1) 1)\n            [[0x110011001d0000]] (GT (SAR 2 1) 3)\n            [[0x110011001d0001]] (GT (SAR 2 1) 1)\n            [[0x11001200010000]] (SLT (ADD 2 1) 3)\n            [[0x11001200010001]] (SLT (ADD 2 1) 1)\n            [[0x11001200020000]] (SLT (MUL 2 1) 3)\n            [[0x11001200020001]] (SLT (MUL 2 1) 1)\n            [[0x11001200030000]] (SLT (SUB 2 1) 3)\n            [[0x11001200030001]] (SLT (SUB 2 1) 1)\n            [[0x11001200040000]] (SLT (DIV 2 1) 3)\n            [[0x11001200040001]] (SLT (DIV 2 1) 1)\n            [[0x11001200050000]] (SLT (SDIV 2 1) 3)\n            [[0x11001200050001]] (SLT (SDIV 2 1) 1)\n            [[0x11001200060000]] (SLT (MOD 2 1) 3)\n            [[0x11001200060001]] (SLT (MOD 2 1) 1)\n            [[0x11001200070000]] (SLT (SMOD 2 1) 3)\n            [[0x11001200070001]] (SLT (SMOD 2 1) 1)\n            [[0x11001200080000]] (SLT (ADDMOD 2 1 3) 3)\n            [[0x11001200080001]] (SLT (ADDMOD 2 1 3) 1)\n            [[0x11001200090000]] (SLT (MULMOD 2 1 3) 3)\n            [[0x11001200090001]] (SLT (MULMOD 2 1 3) 1)\n            [[0x110012000a0000]] (SLT (EXP 2 1) 3)\n            [[0x110012000a0001]] (SLT (EXP 2 1) 1)\n            [[0x11001200100000]] (SLT (LT 2 1) 3)\n            [[0x11001200100001]] (SLT (LT 2 1) 1)\n            [[0x11001200110000]] (SLT (GT 2 1) 3)\n            [[0x11001200110001]] (SLT (GT 2 1) 1)\n            [[0x11001200120000]] (SLT (SLT 2 1) 3)\n            [[0x11001200120001]] (SLT (SLT 2 1) 1)\n            [[0x11001200130000]] (SLT (SGT 2 1) 3)\n            [[0x11001200130001]] (SLT (SGT 2 1) 1)\n            [[0x11001200140000]] (SLT (EQ 2 1) 3)\n            [[0x11001200140001]] (SLT (EQ 2 1) 1)\n            [[0x11001200150000]] (SLT (ISZERO 2) 3)\n            [[0x11001200150001]] (SLT (ISZERO 2) 1)\n            [[0x11001200160000]] (SLT (AND 2 1) 3)\n            [[0x11001200160001]] (SLT (AND 2 1) 1)\n            [[0x11001200170000]] (SLT (OR 2 1) 3)\n            [[0x11001200170001]] (SLT (OR 2 1) 1)\n            [[0x11001200180000]] (SLT (XOR 2 1) 3)\n            [[0x11001200180001]] (SLT (XOR 2 1) 1)\n            [[0x11001200190000]] (SLT (NOT 2) 3)\n            [[0x11001200190001]] (SLT (NOT 2) 1)\n            [[0x110012001a0000]] (SLT (BYTE 2 1) 3)\n            [[0x110012001a0001]] (SLT (BYTE 2 1) 1)\n            [[0x110012001b0000]] (SLT (SHL 2 1) 3)\n            [[0x110012001b0001]] (SLT (SHL 2 1) 1)\n            [[0x110012001c0000]] (SLT (SHR 2 1) 3)\n            [[0x110012001c0001]] (SLT (SHR 2 1) 1)\n            [[0x110012001d0000]] (SLT (SAR 2 1) 3)\n            [[0x110012001d0001]] (SLT (SAR 2 1) 1)\n            [[0x11001300010000]] (SGT (ADD 2 1) 3)\n            [[0x11001300010001]] (SGT (ADD 2 1) 1)\n            [[0x11001300020000]] (SGT (MUL 2 1) 3)\n            [[0x11001300020001]] (SGT (MUL 2 1) 1)\n            [[0x11001300030000]] (SGT (SUB 2 1) 3)\n            [[0x11001300030001]] (SGT (SUB 2 1) 1)\n            [[0x11001300040000]] (SGT (DIV 2 1) 3)\n            [[0x11001300040001]] (SGT (DIV 2 1) 1)\n            [[0x11001300050000]] (SGT (SDIV 2 1) 3)\n            [[0x11001300050001]] (SGT (SDIV 2 1) 1)\n            [[0x11001300060000]] (SGT (MOD 2 1) 3)\n            [[0x11001300060001]] (SGT (MOD 2 1) 1)\n            [[0x11001300070000]] (SGT (SMOD 2 1) 3)\n            [[0x11001300070001]] (SGT (SMOD 2 1) 1)\n            [[0x11001300080000]] (SGT (ADDMOD 2 1 3) 3)\n            [[0x11001300080001]] (SGT (ADDMOD 2 1 3) 1)\n            [[0x11001300090000]] (SGT (MULMOD 2 1 3) 3)\n            [[0x11001300090001]] (SGT (MULMOD 2 1 3) 1)\n            [[0x110013000a0000]] (SGT (EXP 2 1) 3)\n            [[0x110013000a0001]] (SGT (EXP 2 1) 1)\n            [[0x11001300100000]] (SGT (LT 2 1) 3)\n            [[0x11001300100001]] (SGT (LT 2 1) 1)\n            [[0x11001300110000]] (SGT (GT 2 1) 3)\n            [[0x11001300110001]] (SGT (GT 2 1) 1)\n            [[0x11001300120000]] (SGT (SLT 2 1) 3)\n            [[0x11001300120001]] (SGT (SLT 2 1) 1)\n            [[0x11001300130000]] (SGT (SGT 2 1) 3)\n            [[0x11001300130001]] (SGT (SGT 2 1) 1)\n            [[0x11001300140000]] (SGT (EQ 2 1) 3)\n            [[0x11001300140001]] (SGT (EQ 2 1) 1)\n            [[0x11001300150000]] (SGT (ISZERO 2) 3)\n            [[0x11001300150001]] (SGT (ISZERO 2) 1)\n            [[0x11001300160000]] (SGT (AND 2 1) 3)\n            [[0x11001300160001]] (SGT (AND 2 1) 1)\n            [[0x11001300170000]] (SGT (OR 2 1) 3)\n            [[0x11001300170001]] (SGT (OR 2 1) 1)\n            [[0x11001300180000]] (SGT (XOR 2 1) 3)\n            [[0x11001300180001]] (SGT (XOR 2 1) 1)\n            [[0x11001300190000]] (SGT (NOT 2) 3)\n            [[0x11001300190001]] (SGT (NOT 2) 1)\n            [[0x110013001a0000]] (SGT (BYTE 2 1) 3)\n            [[0x110013001a0001]] (SGT (BYTE 2 1) 1)\n            [[0x110013001b0000]] (SGT (SHL 2 1) 3)\n            [[0x110013001b0001]] (SGT (SHL 2 1) 1)\n            [[0x110013001c0000]] (SGT (SHR 2 1) 3)\n            [[0x110013001c0001]] (SGT (SHR 2 1) 1)\n            [[0x110013001d0000]] (SGT (SAR 2 1) 3)\n            [[0x110013001d0001]] (SGT (SAR 2 1) 1)\n            [[0x11001400010000]] (EQ (ADD 2 1) 3)\n            [[0x11001400010001]] (EQ (ADD 2 1) 1)\n            [[0x11001400020000]] (EQ (MUL 2 1) 3)\n            [[0x11001400020001]] (EQ (MUL 2 1) 1)\n            [[0x11001400030000]] (EQ (SUB 2 1) 3)\n            [[0x11001400030001]] (EQ (SUB 2 1) 1)\n            [[0x11001400040000]] (EQ (DIV 2 1) 3)\n            [[0x11001400040001]] (EQ (DIV 2 1) 1)\n            [[0x11001400050000]] (EQ (SDIV 2 1) 3)\n            [[0x11001400050001]] (EQ (SDIV 2 1) 1)\n            [[0x11001400060000]] (EQ (MOD 2 1) 3)\n            [[0x11001400060001]] (EQ (MOD 2 1) 1)\n            [[0x11001400070000]] (EQ (SMOD 2 1) 3)\n            [[0x11001400070001]] (EQ (SMOD 2 1) 1)\n            [[0x11001400080000]] (EQ (ADDMOD 2 1 3) 3)\n            [[0x11001400080001]] (EQ (ADDMOD 2 1 3) 1)\n            [[0x11001400090000]] (EQ (MULMOD 2 1 3) 3)\n            [[0x11001400090001]] (EQ (MULMOD 2 1 3) 1)\n            [[0x110014000a0000]] (EQ (EXP 2 1) 3)\n            [[0x110014000a0001]] (EQ (EXP 2 1) 1)\n            [[0x11001400100000]] (EQ (LT 2 1) 3)\n            [[0x11001400100001]] (EQ (LT 2 1) 1)\n            [[0x11001400110000]] (EQ (GT 2 1) 3)\n            [[0x11001400110001]] (EQ (GT 2 1) 1)\n            [[0x11001400120000]] (EQ (SLT 2 1) 3)\n            [[0x11001400120001]] (EQ (SLT 2 1) 1)\n            [[0x11001400130000]] (EQ (SGT 2 1) 3)\n            [[0x11001400130001]] (EQ (SGT 2 1) 1)\n            [[0x11001400140000]] (EQ (EQ 2 1) 3)\n            [[0x11001400140001]] (EQ (EQ 2 1) 1)\n            [[0x11001400150000]] (EQ (ISZERO 2) 3)\n            [[0x11001400150001]] (EQ (ISZERO 2) 1)\n            [[0x11001400160000]] (EQ (AND 2 1) 3)\n            [[0x11001400160001]] (EQ (AND 2 1) 1)\n            [[0x11001400170000]] (EQ (OR 2 1) 3)\n            [[0x11001400170001]] (EQ (OR 2 1) 1)\n            [[0x11001400180000]] (EQ (XOR 2 1) 3)\n            [[0x11001400180001]] (EQ (XOR 2 1) 1)\n            [[0x11001400190000]] (EQ (NOT 2) 3)\n            [[0x11001400190001]] (EQ (NOT 2) 1)\n            [[0x110014001a0000]] (EQ (BYTE 2 1) 3)\n            [[0x110014001a0001]] (EQ (BYTE 2 1) 1)\n            [[0x110014001b0000]] (EQ (SHL 2 1) 3)\n            [[0x110014001b0001]] (EQ (SHL 2 1) 1)\n            [[0x110014001c0000]] (EQ (SHR 2 1) 3)\n            [[0x110014001c0001]] (EQ (SHR 2 1) 1)\n            [[0x110014001d0000]] (EQ (SAR 2 1) 3)\n            [[0x110014001d0001]] (EQ (SAR 2 1) 1)\n            [[0x11001500010000]] (ISZERO (ADD 2 1))\n            [[0x11001500010001]] (ISZERO (ADD 2 1))\n            [[0x11001500020000]] (ISZERO (MUL 2 1))\n            [[0x11001500020001]] (ISZERO (MUL 2 1))\n            [[0x11001500030000]] (ISZERO (SUB 2 1))\n            [[0x11001500030001]] (ISZERO (SUB 2 1))\n            [[0x11001500040000]] (ISZERO (DIV 2 1))\n            [[0x11001500040001]] (ISZERO (DIV 2 1))\n            [[0x11001500050000]] (ISZERO (SDIV 2 1))\n            [[0x11001500050001]] (ISZERO (SDIV 2 1))\n            [[0x11001500060000]] (ISZERO (MOD 2 1))\n            [[0x11001500060001]] (ISZERO (MOD 2 1))\n            [[0x11001500070000]] (ISZERO (SMOD 2 1))\n            [[0x11001500070001]] (ISZERO (SMOD 2 1))\n            [[0x11001500080000]] (ISZERO (ADDMOD 2 1 3))\n            [[0x11001500080001]] (ISZERO (ADDMOD 2 1 3))\n            [[0x11001500090000]] (ISZERO (MULMOD 2 1 3))\n            [[0x11001500090001]] (ISZERO (MULMOD 2 1 3))\n            [[0x110015000a0000]] (ISZERO (EXP 2 1))\n            [[0x110015000a0001]] (ISZERO (EXP 2 1))\n            [[0x11001500100000]] (ISZERO (LT 2 1))\n            [[0x11001500100001]] (ISZERO (LT 2 1))\n            [[0x11001500110000]] (ISZERO (GT 2 1))\n            [[0x11001500110001]] (ISZERO (GT 2 1))\n            [[0x11001500120000]] (ISZERO (SLT 2 1))\n            [[0x11001500120001]] (ISZERO (SLT 2 1))\n            [[0x11001500130000]] (ISZERO (SGT 2 1))\n            [[0x11001500130001]] (ISZERO (SGT 2 1))\n            [[0x11001500140000]] (ISZERO (EQ 2 1))\n            [[0x11001500140001]] (ISZERO (EQ 2 1))\n            [[0x11001500150000]] (ISZERO (ISZERO 2))\n            [[0x11001500150001]] (ISZERO (ISZERO 2))\n            [[0x11001500160000]] (ISZERO (AND 2 1))\n            [[0x11001500160001]] (ISZERO (AND 2 1))\n            [[0x11001500170000]] (ISZERO (OR 2 1))\n            [[0x11001500170001]] (ISZERO (OR 2 1))\n            [[0x11001500180000]] (ISZERO (XOR 2 1))\n            [[0x11001500180001]] (ISZERO (XOR 2 1))\n            [[0x11001500190000]] (ISZERO (NOT 2))\n            [[0x11001500190001]] (ISZERO (NOT 2))\n            [[0x110015001a0000]] (ISZERO (BYTE 2 1))\n            [[0x110015001a0001]] (ISZERO (BYTE 2 1))\n            [[0x110015001b0000]] (ISZERO (SHL 2 1))\n            [[0x110015001b0001]] (ISZERO (SHL 2 1))\n            [[0x110015001c0000]] (ISZERO (SHR 2 1))\n            [[0x110015001c0001]] (ISZERO (SHR 2 1))\n            [[0x110015001d0000]] (ISZERO (SAR 2 1))\n            [[0x110015001d0001]] (ISZERO (SAR 2 1))\n            [[0x11001600010000]] (AND (ADD 2 1) 3)\n            [[0x11001600010001]] (AND (ADD 2 1) 1)\n            [[0x11001600020000]] (AND (MUL 2 1) 3)\n            [[0x11001600020001]] (AND (MUL 2 1) 1)\n            [[0x11001600030000]] (AND (SUB 2 1) 3)\n            [[0x11001600030001]] (AND (SUB 2 1) 1)\n            [[0x11001600040000]] (AND (DIV 2 1) 3)\n            [[0x11001600040001]] (AND (DIV 2 1) 1)\n            [[0x11001600050000]] (AND (SDIV 2 1) 3)\n            [[0x11001600050001]] (AND (SDIV 2 1) 1)\n            [[0x11001600060000]] (AND (MOD 2 1) 3)\n            [[0x11001600060001]] (AND (MOD 2 1) 1)\n            [[0x11001600070000]] (AND (SMOD 2 1) 3)\n            [[0x11001600070001]] (AND (SMOD 2 1) 1)\n            [[0x11001600080000]] (AND (ADDMOD 2 1 3) 3)\n            [[0x11001600080001]] (AND (ADDMOD 2 1 3) 1)\n            [[0x11001600090000]] (AND (MULMOD 2 1 3) 3)\n            [[0x11001600090001]] (AND (MULMOD 2 1 3) 1)\n            [[0x110016000a0000]] (AND (EXP 2 1) 3)\n            [[0x110016000a0001]] (AND (EXP 2 1) 1)\n            [[0x11001600100000]] (AND (LT 2 1) 3)\n            [[0x11001600100001]] (AND (LT 2 1) 1)\n            [[0x11001600110000]] (AND (GT 2 1) 3)\n            [[0x11001600110001]] (AND (GT 2 1) 1)\n            [[0x11001600120000]] (AND (SLT 2 1) 3)\n            [[0x11001600120001]] (AND (SLT 2 1) 1)\n            [[0x11001600130000]] (AND (SGT 2 1) 3)\n            [[0x11001600130001]] (AND (SGT 2 1) 1)\n            [[0x11001600140000]] (AND (EQ 2 1) 3)\n            [[0x11001600140001]] (AND (EQ 2 1) 1)\n            [[0x11001600150000]] (AND (ISZERO 2) 3)\n            [[0x11001600150001]] (AND (ISZERO 2) 1)\n            [[0x11001600160000]] (AND (AND 2 1) 3)\n            [[0x11001600160001]] (AND (AND 2 1) 1)\n            [[0x11001600170000]] (AND (OR 2 1) 3)\n            [[0x11001600170001]] (AND (OR 2 1) 1)\n            [[0x11001600180000]] (AND (XOR 2 1) 3)\n            [[0x11001600180001]] (AND (XOR 2 1) 1)\n            [[0x11001600190000]] (AND (NOT 2) 3)\n            [[0x11001600190001]] (AND (NOT 2) 1)\n            [[0x110016001a0000]] (AND (BYTE 2 1) 3)\n            [[0x110016001a0001]] (AND (BYTE 2 1) 1)\n            [[0x110016001b0000]] (AND (SHL 2 1) 3)\n            [[0x110016001b0001]] (AND (SHL 2 1) 1)\n            [[0x110016001c0000]] (AND (SHR 2 1) 3)\n            [[0x110016001c0001]] (AND (SHR 2 1) 1)\n            [[0x110016001d0000]] (AND (SAR 2 1) 3)\n            [[0x110016001d0001]] (AND (SAR 2 1) 1)\n            [[0x11001700010000]] (OR (ADD 2 1) 3)\n            [[0x11001700010001]] (OR (ADD 2 1) 1)\n            [[0x11001700020000]] (OR (MUL 2 1) 3)\n            [[0x11001700020001]] (OR (MUL 2 1) 1)\n            [[0x11001700030000]] (OR (SUB 2 1) 3)\n            [[0x11001700030001]] (OR (SUB 2 1) 1)\n            [[0x11001700040000]] (OR (DIV 2 1) 3)\n            [[0x11001700040001]] (OR (DIV 2 1) 1)\n            [[0x11001700050000]] (OR (SDIV 2 1) 3)\n            [[0x11001700050001]] (OR (SDIV 2 1) 1)\n            [[0x11001700060000]] (OR (MOD 2 1) 3)\n            [[0x11001700060001]] (OR (MOD 2 1) 1)\n            [[0x11001700070000]] (OR (SMOD 2 1) 3)\n            [[0x11001700070001]] (OR (SMOD 2 1) 1)\n            [[0x11001700080000]] (OR (ADDMOD 2 1 3) 3)\n            [[0x11001700080001]] (OR (ADDMOD 2 1 3) 1)\n            [[0x11001700090000]] (OR (MULMOD 2 1 3) 3)\n            [[0x11001700090001]] (OR (MULMOD 2 1 3) 1)\n            [[0x110017000a0000]] (OR (EXP 2 1) 3)\n            [[0x110017000a0001]] (OR (EXP 2 1) 1)\n            [[0x11001700100000]] (OR (LT 2 1) 3)\n            [[0x11001700100001]] (OR (LT 2 1) 1)\n            [[0x11001700110000]] (OR (GT 2 1) 3)\n            [[0x11001700110001]] (OR (GT 2 1) 1)\n            [[0x11001700120000]] (OR (SLT 2 1) 3)\n            [[0x11001700120001]] (OR (SLT 2 1) 1)\n            [[0x11001700130000]] (OR (SGT 2 1) 3)\n            [[0x11001700130001]] (OR (SGT 2 1) 1)\n            [[0x11001700140000]] (OR (EQ 2 1) 3)\n            [[0x11001700140001]] (OR (EQ 2 1) 1)\n            [[0x11001700150000]] (OR (ISZERO 2) 3)\n            [[0x11001700150001]] (OR (ISZERO 2) 1)\n            [[0x11001700160000]] (OR (AND 2 1) 3)\n            [[0x11001700160001]] (OR (AND 2 1) 1)\n            [[0x11001700170000]] (OR (OR 2 1) 3)\n            [[0x11001700170001]] (OR (OR 2 1) 1)\n            [[0x11001700180000]] (OR (XOR 2 1) 3)\n            [[0x11001700180001]] (OR (XOR 2 1) 1)\n            [[0x11001700190000]] (OR (NOT 2) 3)\n            [[0x11001700190001]] (OR (NOT 2) 1)\n            [[0x110017001a0000]] (OR (BYTE 2 1) 3)\n            [[0x110017001a0001]] (OR (BYTE 2 1) 1)\n            [[0x110017001b0000]] (OR (SHL 2 1) 3)\n            [[0x110017001b0001]] (OR (SHL 2 1) 1)\n            [[0x110017001c0000]] (OR (SHR 2 1) 3)\n            [[0x110017001c0001]] (OR (SHR 2 1) 1)\n            [[0x110017001d0000]] (OR (SAR 2 1) 3)\n            [[0x110017001d0001]] (OR (SAR 2 1) 1)\n            [[0x11001800010000]] (XOR (ADD 2 1) 3)\n            [[0x11001800010001]] (XOR (ADD 2 1) 1)\n            [[0x11001800020000]] (XOR (MUL 2 1) 3)\n            [[0x11001800020001]] (XOR (MUL 2 1) 1)\n            [[0x11001800030000]] (XOR (SUB 2 1) 3)\n            [[0x11001800030001]] (XOR (SUB 2 1) 1)\n            [[0x11001800040000]] (XOR (DIV 2 1) 3)\n            [[0x11001800040001]] (XOR (DIV 2 1) 1)\n            [[0x11001800050000]] (XOR (SDIV 2 1) 3)\n            [[0x11001800050001]] (XOR (SDIV 2 1) 1)\n            [[0x11001800060000]] (XOR (MOD 2 1) 3)\n            [[0x11001800060001]] (XOR (MOD 2 1) 1)\n            [[0x11001800070000]] (XOR (SMOD 2 1) 3)\n            [[0x11001800070001]] (XOR (SMOD 2 1) 1)\n            [[0x11001800080000]] (XOR (ADDMOD 2 1 3) 3)\n            [[0x11001800080001]] (XOR (ADDMOD 2 1 3) 1)\n            [[0x11001800090000]] (XOR (MULMOD 2 1 3) 3)\n            [[0x11001800090001]] (XOR (MULMOD 2 1 3) 1)\n            [[0x110018000a0000]] (XOR (EXP 2 1) 3)\n            [[0x110018000a0001]] (XOR (EXP 2 1) 1)\n            [[0x11001800100000]] (XOR (LT 2 1) 3)\n            [[0x11001800100001]] (XOR (LT 2 1) 1)\n            [[0x11001800110000]] (XOR (GT 2 1) 3)\n            [[0x11001800110001]] (XOR (GT 2 1) 1)\n            [[0x11001800120000]] (XOR (SLT 2 1) 3)\n            [[0x11001800120001]] (XOR (SLT 2 1) 1)\n            [[0x11001800130000]] (XOR (SGT 2 1) 3)\n            [[0x11001800130001]] (XOR (SGT 2 1) 1)\n            [[0x11001800140000]] (XOR (EQ 2 1) 3)\n            [[0x11001800140001]] (XOR (EQ 2 1) 1)\n            [[0x11001800150000]] (XOR (ISZERO 2) 3)\n            [[0x11001800150001]] (XOR (ISZERO 2) 1)\n            [[0x11001800160000]] (XOR (AND 2 1) 3)\n            [[0x11001800160001]] (XOR (AND 2 1) 1)\n            [[0x11001800170000]] (XOR (OR 2 1) 3)\n            [[0x11001800170001]] (XOR (OR 2 1) 1)\n            [[0x11001800180000]] (XOR (XOR 2 1) 3)\n            [[0x11001800180001]] (XOR (XOR 2 1) 1)\n            [[0x11001800190000]] (XOR (NOT 2) 3)\n            [[0x11001800190001]] (XOR (NOT 2) 1)\n            [[0x110018001a0000]] (XOR (BYTE 2 1) 3)\n            [[0x110018001a0001]] (XOR (BYTE 2 1) 1)\n            [[0x110018001b0000]] (XOR (SHL 2 1) 3)\n            [[0x110018001b0001]] (XOR (SHL 2 1) 1)\n            [[0x110018001c0000]] (XOR (SHR 2 1) 3)\n            [[0x110018001c0001]] (XOR (SHR 2 1) 1)\n            [[0x110018001d0000]] (XOR (SAR 2 1) 3)\n            [[0x110018001d0001]] (XOR (SAR 2 1) 1)\n            [[0x11001900010000]] (NOT (ADD 2 1))\n            [[0x11001900010001]] (NOT (ADD 2 1))\n            [[0x11001900020000]] (NOT (MUL 2 1))\n            [[0x11001900020001]] (NOT (MUL 2 1))\n            [[0x11001900030000]] (NOT (SUB 2 1))\n            [[0x11001900030001]] (NOT (SUB 2 1))\n            [[0x11001900040000]] (NOT (DIV 2 1))\n            [[0x11001900040001]] (NOT (DIV 2 1))\n            [[0x11001900050000]] (NOT (SDIV 2 1))\n            [[0x11001900050001]] (NOT (SDIV 2 1))\n            [[0x11001900060000]] (NOT (MOD 2 1))\n            [[0x11001900060001]] (NOT (MOD 2 1))\n            [[0x11001900070000]] (NOT (SMOD 2 1))\n            [[0x11001900070001]] (NOT (SMOD 2 1))\n            [[0x11001900080000]] (NOT (ADDMOD 2 1 3))\n            [[0x11001900080001]] (NOT (ADDMOD 2 1 3))\n            [[0x11001900090000]] (NOT (MULMOD 2 1 3))\n            [[0x11001900090001]] (NOT (MULMOD 2 1 3))\n            [[0x110019000a0000]] (NOT (EXP 2 1))\n            [[0x110019000a0001]] (NOT (EXP 2 1))\n            [[0x11001900100000]] (NOT (LT 2 1))\n            [[0x11001900100001]] (NOT (LT 2 1))\n            [[0x11001900110000]] (NOT (GT 2 1))\n            [[0x11001900110001]] (NOT (GT 2 1))\n            [[0x11001900120000]] (NOT (SLT 2 1))\n            [[0x11001900120001]] (NOT (SLT 2 1))\n            [[0x11001900130000]] (NOT (SGT 2 1))\n            [[0x11001900130001]] (NOT (SGT 2 1))\n            [[0x11001900140000]] (NOT (EQ 2 1))\n            [[0x11001900140001]] (NOT (EQ 2 1))\n            [[0x11001900150000]] (NOT (ISZERO 2))\n            [[0x11001900150001]] (NOT (ISZERO 2))\n            [[0x11001900160000]] (NOT (AND 2 1))\n            [[0x11001900160001]] (NOT (AND 2 1))\n            [[0x11001900170000]] (NOT (OR 2 1))\n            [[0x11001900170001]] (NOT (OR 2 1))\n            [[0x11001900180000]] (NOT (XOR 2 1))\n            [[0x11001900180001]] (NOT (XOR 2 1))\n            [[0x11001900190000]] (NOT (NOT 2))\n            [[0x11001900190001]] (NOT (NOT 2))\n            [[0x110019001a0000]] (NOT (BYTE 2 1))\n            [[0x110019001a0001]] (NOT (BYTE 2 1))\n            [[0x110019001b0000]] (NOT (SHL 2 1))\n            [[0x110019001b0001]] (NOT (SHL 2 1))\n            [[0x110019001c0000]] (NOT (SHR 2 1))\n            [[0x110019001c0001]] (NOT (SHR 2 1))\n            [[0x110019001d0000]] (NOT (SAR 2 1))\n            [[0x110019001d0001]] (NOT (SAR 2 1))\n            [[0x11001a00010000]] (BYTE (ADD 2 1) 3)\n            [[0x11001a00010001]] (BYTE (ADD 2 1) 1)\n            [[0x11001a00020000]] (BYTE (MUL 2 1) 3)\n            [[0x11001a00020001]] (BYTE (MUL 2 1) 1)\n            [[0x11001a00030000]] (BYTE (SUB 2 1) 3)\n            [[0x11001a00030001]] (BYTE (SUB 2 1) 1)\n            [[0x11001a00040000]] (BYTE (DIV 2 1) 3)\n            [[0x11001a00040001]] (BYTE (DIV 2 1) 1)\n            [[0x11001a00050000]] (BYTE (SDIV 2 1) 3)\n            [[0x11001a00050001]] (BYTE (SDIV 2 1) 1)\n            [[0x11001a00060000]] (BYTE (MOD 2 1) 3)\n            [[0x11001a00060001]] (BYTE (MOD 2 1) 1)\n            [[0x11001a00070000]] (BYTE (SMOD 2 1) 3)\n            [[0x11001a00070001]] (BYTE (SMOD 2 1) 1)\n            [[0x11001a00080000]] (BYTE (ADDMOD 2 1 3) 3)\n            [[0x11001a00080001]] (BYTE (ADDMOD 2 1 3) 1)\n            [[0x11001a00090000]] (BYTE (MULMOD 2 1 3) 3)\n            [[0x11001a00090001]] (BYTE (MULMOD 2 1 3) 1)\n            [[0x11001a000a0000]] (BYTE (EXP 2 1) 3)\n            [[0x11001a000a0001]] (BYTE (EXP 2 1) 1)\n            [[0x11001a00100000]] (BYTE (LT 2 1) 3)\n            [[0x11001a00100001]] (BYTE (LT 2 1) 1)\n            [[0x11001a00110000]] (BYTE (GT 2 1) 3)\n            [[0x11001a00110001]] (BYTE (GT 2 1) 1)\n            [[0x11001a00120000]] (BYTE (SLT 2 1) 3)\n            [[0x11001a00120001]] (BYTE (SLT 2 1) 1)\n            [[0x11001a00130000]] (BYTE (SGT 2 1) 3)\n            [[0x11001a00130001]] (BYTE (SGT 2 1) 1)\n            [[0x11001a00140000]] (BYTE (EQ 2 1) 3)\n            [[0x11001a00140001]] (BYTE (EQ 2 1) 1)\n            [[0x11001a00150000]] (BYTE (ISZERO 2) 3)\n            [[0x11001a00150001]] (BYTE (ISZERO 2) 1)\n            [[0x11001a00160000]] (BYTE (AND 2 1) 3)\n            [[0x11001a00160001]] (BYTE (AND 2 1) 1)\n            [[0x11001a00170000]] (BYTE (OR 2 1) 3)\n            [[0x11001a00170001]] (BYTE (OR 2 1) 1)\n            [[0x11001a00180000]] (BYTE (XOR 2 1) 3)\n            [[0x11001a00180001]] (BYTE (XOR 2 1) 1)\n            [[0x11001a00190000]] (BYTE (NOT 2) 3)\n            [[0x11001a00190001]] (BYTE (NOT 2) 1)\n            [[0x11001a001a0000]] (BYTE (BYTE 2 1) 3)\n            [[0x11001a001a0001]] (BYTE (BYTE 2 1) 1)\n            [[0x11001a001b0000]] (BYTE (SHL 2 1) 3)\n            [[0x11001a001b0001]] (BYTE (SHL 2 1) 1)\n            [[0x11001a001c0000]] (BYTE (SHR 2 1) 3)\n            [[0x11001a001c0001]] (BYTE (SHR 2 1) 1)\n            [[0x11001a001d0000]] (BYTE (SAR 2 1) 3)\n            [[0x11001a001d0001]] (BYTE (SAR 2 1) 1)\n            [[0x11001b00010000]] (SHL (ADD 2 1) 3)\n            [[0x11001b00010001]] (SHL (ADD 2 1) 1)\n            [[0x11001b00020000]] (SHL (MUL 2 1) 3)\n            [[0x11001b00020001]] (SHL (MUL 2 1) 1)\n            [[0x11001b00030000]] (SHL (SUB 2 1) 3)\n            [[0x11001b00030001]] (SHL (SUB 2 1) 1)\n            [[0x11001b00040000]] (SHL (DIV 2 1) 3)\n            [[0x11001b00040001]] (SHL (DIV 2 1) 1)\n            [[0x11001b00050000]] (SHL (SDIV 2 1) 3)\n            [[0x11001b00050001]] (SHL (SDIV 2 1) 1)\n            [[0x11001b00060000]] (SHL (MOD 2 1) 3)\n            [[0x11001b00060001]] (SHL (MOD 2 1) 1)\n            [[0x11001b00070000]] (SHL (SMOD 2 1) 3)\n            [[0x11001b00070001]] (SHL (SMOD 2 1) 1)\n            [[0x11001b00080000]] (SHL (ADDMOD 2 1 3) 3)\n            [[0x11001b00080001]] (SHL (ADDMOD 2 1 3) 1)\n            [[0x11001b00090000]] (SHL (MULMOD 2 1 3) 3)\n            [[0x11001b00090001]] (SHL (MULMOD 2 1 3) 1)\n            [[0x11001b000a0000]] (SHL (EXP 2 1) 3)\n            [[0x11001b000a0001]] (SHL (EXP 2 1) 1)\n            [[0x11001b00100000]] (SHL (LT 2 1) 3)\n            [[0x11001b00100001]] (SHL (LT 2 1) 1)\n            [[0x11001b00110000]] (SHL (GT 2 1) 3)\n            [[0x11001b00110001]] (SHL (GT 2 1) 1)\n            [[0x11001b00120000]] (SHL (SLT 2 1) 3)\n            [[0x11001b00120001]] (SHL (SLT 2 1) 1)\n            [[0x11001b00130000]] (SHL (SGT 2 1) 3)\n            [[0x11001b00130001]] (SHL (SGT 2 1) 1)\n            [[0x11001b00140000]] (SHL (EQ 2 1) 3)\n            [[0x11001b00140001]] (SHL (EQ 2 1) 1)\n            [[0x11001b00150000]] (SHL (ISZERO 2) 3)\n            [[0x11001b00150001]] (SHL (ISZERO 2) 1)\n            [[0x11001b00160000]] (SHL (AND 2 1) 3)\n            [[0x11001b00160001]] (SHL (AND 2 1) 1)\n            [[0x11001b00170000]] (SHL (OR 2 1) 3)\n            [[0x11001b00170001]] (SHL (OR 2 1) 1)\n            [[0x11001b00180000]] (SHL (XOR 2 1) 3)\n            [[0x11001b00180001]] (SHL (XOR 2 1) 1)\n            [[0x11001b00190000]] (SHL (NOT 2) 3)\n            [[0x11001b00190001]] (SHL (NOT 2) 1)\n            [[0x11001b001a0000]] (SHL (BYTE 2 1) 3)\n            [[0x11001b001a0001]] (SHL (BYTE 2 1) 1)\n            [[0x11001b001b0000]] (SHL (SHL 2 1) 3)\n            [[0x11001b001b0001]] (SHL (SHL 2 1) 1)\n            [[0x11001b001c0000]] (SHL (SHR 2 1) 3)\n            [[0x11001b001c0001]] (SHL (SHR 2 1) 1)\n            [[0x11001b001d0000]] (SHL (SAR 2 1) 3)\n            [[0x11001b001d0001]] (SHL (SAR 2 1) 1)\n            [[0x11001c00010000]] (SHR (ADD 2 1) 3)\n            [[0x11001c00010001]] (SHR (ADD 2 1) 1)\n            [[0x11001c00020000]] (SHR (MUL 2 1) 3)\n            [[0x11001c00020001]] (SHR (MUL 2 1) 1)\n            [[0x11001c00030000]] (SHR (SUB 2 1) 3)\n            [[0x11001c00030001]] (SHR (SUB 2 1) 1)\n            [[0x11001c00040000]] (SHR (DIV 2 1) 3)\n            [[0x11001c00040001]] (SHR (DIV 2 1) 1)\n            [[0x11001c00050000]] (SHR (SDIV 2 1) 3)\n            [[0x11001c00050001]] (SHR (SDIV 2 1) 1)\n            [[0x11001c00060000]] (SHR (MOD 2 1) 3)\n            [[0x11001c00060001]] (SHR (MOD 2 1) 1)\n            [[0x11001c00070000]] (SHR (SMOD 2 1) 3)\n            [[0x11001c00070001]] (SHR (SMOD 2 1) 1)\n            [[0x11001c00080000]] (SHR (ADDMOD 2 1 3) 3)\n            [[0x11001c00080001]] (SHR (ADDMOD 2 1 3) 1)\n            [[0x11001c00090000]] (SHR (MULMOD 2 1 3) 3)\n            [[0x11001c00090001]] (SHR (MULMOD 2 1 3) 1)\n            [[0x11001c000a0000]] (SHR (EXP 2 1) 3)\n            [[0x11001c000a0001]] (SHR (EXP 2 1) 1)\n            [[0x11001c00100000]] (SHR (LT 2 1) 3)\n            [[0x11001c00100001]] (SHR (LT 2 1) 1)\n            [[0x11001c00110000]] (SHR (GT 2 1) 3)\n            [[0x11001c00110001]] (SHR (GT 2 1) 1)\n            [[0x11001c00120000]] (SHR (SLT 2 1) 3)\n            [[0x11001c00120001]] (SHR (SLT 2 1) 1)\n            [[0x11001c00130000]] (SHR (SGT 2 1) 3)\n            [[0x11001c00130001]] (SHR (SGT 2 1) 1)\n            [[0x11001c00140000]] (SHR (EQ 2 1) 3)\n            [[0x11001c00140001]] (SHR (EQ 2 1) 1)\n            [[0x11001c00150000]] (SHR (ISZERO 2) 3)\n            [[0x11001c00150001]] (SHR (ISZERO 2) 1)\n            [[0x11001c00160000]] (SHR (AND 2 1) 3)\n            [[0x11001c00160001]] (SHR (AND 2 1) 1)\n            [[0x11001c00170000]] (SHR (OR 2 1) 3)\n            [[0x11001c00170001]] (SHR (OR 2 1) 1)\n            [[0x11001c00180000]] (SHR (XOR 2 1) 3)\n            [[0x11001c00180001]] (SHR (XOR 2 1) 1)\n            [[0x11001c00190000]] (SHR (NOT 2) 3)\n            [[0x11001c00190001]] (SHR (NOT 2) 1)\n            [[0x11001c001a0000]] (SHR (BYTE 2 1) 3)\n            [[0x11001c001a0001]] (SHR (BYTE 2 1) 1)\n            [[0x11001c001b0000]] (SHR (SHL 2 1) 3)\n            [[0x11001c001b0001]] (SHR (SHL 2 1) 1)\n            [[0x11001c001c0000]] (SHR (SHR 2 1) 3)\n            [[0x11001c001c0001]] (SHR (SHR 2 1) 1)\n            [[0x11001c001d0000]] (SHR (SAR 2 1) 3)\n            [[0x11001c001d0001]] (SHR (SAR 2 1) 1)\n            [[0x11001d00010000]] (SAR (ADD 2 1) 3)\n            [[0x11001d00010001]] (SAR (ADD 2 1) 1)\n            [[0x11001d00020000]] (SAR (MUL 2 1) 3)\n            [[0x11001d00020001]] (SAR (MUL 2 1) 1)\n            [[0x11001d00030000]] (SAR (SUB 2 1) 3)\n            [[0x11001d00030001]] (SAR (SUB 2 1) 1)\n            [[0x11001d00040000]] (SAR (DIV 2 1) 3)\n            [[0x11001d00040001]] (SAR (DIV 2 1) 1)\n            [[0x11001d00050000]] (SAR (SDIV 2 1) 3)\n            [[0x11001d00050001]] (SAR (SDIV 2 1) 1)\n            [[0x11001d00060000]] (SAR (MOD 2 1) 3)\n            [[0x11001d00060001]] (SAR (MOD 2 1) 1)\n            [[0x11001d00070000]] (SAR (SMOD 2 1) 3)\n            [[0x11001d00070001]] (SAR (SMOD 2 1) 1)\n            [[0x11001d00080000]] (SAR (ADDMOD 2 1 3) 3)\n            [[0x11001d00080001]] (SAR (ADDMOD 2 1 3) 1)\n            [[0x11001d00090000]] (SAR (MULMOD 2 1 3) 3)\n            [[0x11001d00090001]] (SAR (MULMOD 2 1 3) 1)\n            [[0x11001d000a0000]] (SAR (EXP 2 1) 3)\n            [[0x11001d000a0001]] (SAR (EXP 2 1) 1)\n            [[0x11001d00100000]] (SAR (LT 2 1) 3)\n            [[0x11001d00100001]] (SAR (LT 2 1) 1)\n            [[0x11001d00110000]] (SAR (GT 2 1) 3)\n            [[0x11001d00110001]] (SAR (GT 2 1) 1)\n            [[0x11001d00120000]] (SAR (SLT 2 1) 3)\n            [[0x11001d00120001]] (SAR (SLT 2 1) 1)\n            [[0x11001d00130000]] (SAR (SGT 2 1) 3)\n            [[0x11001d00130001]] (SAR (SGT 2 1) 1)\n            [[0x11001d00140000]] (SAR (EQ 2 1) 3)\n            [[0x11001d00140001]] (SAR (EQ 2 1) 1)\n            [[0x11001d00150000]] (SAR (ISZERO 2) 3)\n            [[0x11001d00150001]] (SAR (ISZERO 2) 1)\n            [[0x11001d00160000]] (SAR (AND 2 1) 3)\n            [[0x11001d00160001]] (SAR (AND 2 1) 1)\n            [[0x11001d00170000]] (SAR (OR 2 1) 3)\n            [[0x11001d00170001]] (SAR (OR 2 1) 1)\n            [[0x11001d00180000]] (SAR (XOR 2 1) 3)\n            [[0x11001d00180001]] (SAR (XOR 2 1) 1)\n            [[0x11001d00190000]] (SAR (NOT 2) 3)\n            [[0x11001d00190001]] (SAR (NOT 2) 1)\n            [[0x11001d001a0000]] (SAR (BYTE 2 1) 3)\n            [[0x11001d001a0001]] (SAR (BYTE 2 1) 1)\n            [[0x11001d001b0000]] (SAR (SHL 2 1) 3)\n            [[0x11001d001b0001]] (SAR (SHL 2 1) 1)\n            [[0x11001d001c0000]] (SAR (SHR 2 1) 3)\n            [[0x11001d001c0001]] (SAR (SHR 2 1) 1)\n            [[0x11001d001d0000]] (SAR (SAR 2 1) 3)\n            [[0x11001d001d0001]] (SAR (SAR 2 1) 1)\n\n        }\n      nonce: 1\n      storage: {}\n      balance: 0\n\n\n\n  transaction:\n    data: \n    - :raw 0x00\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>\n    value:\n    - '1'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n\n\n  expect:\n   - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n     network:\n        - '>=Cancun'\n     result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n\n            0x11000100010000: 6\n            0x11000100010001: 4\n            0x11000100020000: 5\n            0x11000100020001: 3\n            0x11000100030000: 4\n            0x11000100030001: 2\n            0x11000100040000: 5\n            0x11000100040001: 3\n            0x11000100050000: 5\n            0x11000100050001: 3\n            0x11000100060000: 3\n            0x11000100060001: 1\n            0x11000100070000: 3\n            0x11000100070001: 1\n            0x11000100080000: 3\n            0x11000100080001: 1\n            0x11000100090000: 5\n            0x11000100090001: 3\n            0x110001000a0000: 5\n            0x110001000a0001: 3\n            0x11000100100000: 3\n            0x11000100100001: 1\n            0x11000100110000: 4\n            0x11000100110001: 2\n            0x11000100120000: 3\n            0x11000100120001: 1\n            0x11000100130000: 4\n            0x11000100130001: 2\n            0x11000100140000: 3\n            0x11000100140001: 1\n            0x11000100150000: 3\n            0x11000100150001: 1\n            0x11000100160000: 3\n            0x11000100160001: 1\n            0x11000100170000: 6\n            0x11000100170001: 4\n            0x11000100180000: 6\n            0x11000100180001: 4\n            0x11000100190000: 0\n            0x11000100190001: 115792089237316195423570985008687907853269984665640564039457584007913129639934\n            0x110001001a0000: 3\n            0x110001001a0001: 1\n            0x110001001b0000: 7\n            0x110001001b0001: 5\n            0x110001001c0000: 3\n            0x110001001c0001: 1\n            0x110001001d0000: 3\n            0x110001001d0001: 1\n            0x11000200010000: 9\n            0x11000200010001: 3\n            0x11000200020000: 6\n            0x11000200020001: 2\n            0x11000200030000: 3\n            0x11000200030001: 1\n            0x11000200040000: 6\n            0x11000200040001: 2\n            0x11000200050000: 6\n            0x11000200050001: 2\n            0x11000200060000: 0\n            0x11000200060001: 0\n            0x11000200070000: 0\n            0x11000200070001: 0\n            0x11000200080000: 0\n            0x11000200080001: 0\n            0x11000200090000: 6\n            0x11000200090001: 2\n            0x110002000a0000: 6\n            0x110002000a0001: 2\n            0x11000200100000: 0\n            0x11000200100001: 0\n            0x11000200110000: 3\n            0x11000200110001: 1\n            0x11000200120000: 0\n            0x11000200120001: 0\n            0x11000200130000: 3\n            0x11000200130001: 1\n            0x11000200140000: 0\n            0x11000200140001: 0\n            0x11000200150000: 0\n            0x11000200150001: 0\n            0x11000200160000: 0\n            0x11000200160001: 0\n            0x11000200170000: 9\n            0x11000200170001: 3\n            0x11000200180000: 9\n            0x11000200180001: 3\n            0x11000200190000: 115792089237316195423570985008687907853269984665640564039457584007913129639927\n            0x11000200190001: 115792089237316195423570985008687907853269984665640564039457584007913129639933\n            0x110002001a0000: 0\n            0x110002001a0001: 0\n            0x110002001b0000: 12\n            0x110002001b0001: 4\n            0x110002001c0000: 0\n            0x110002001c0001: 0\n            0x110002001d0000: 0\n            0x110002001d0001: 0\n            0x11000300010000: 0\n            0x11000300010001: 2\n            0x11000300020000: 115792089237316195423570985008687907853269984665640564039457584007913129639935\n            0x11000300020001: 1\n            0x11000300030000: 115792089237316195423570985008687907853269984665640564039457584007913129639934\n            0x11000300030001: 0\n            0x11000300040000: 115792089237316195423570985008687907853269984665640564039457584007913129639935\n            0x11000300040001: 1\n            0x11000300050000: 115792089237316195423570985008687907853269984665640564039457584007913129639935\n            0x11000300050001: 1\n            0x11000300060000: 115792089237316195423570985008687907853269984665640564039457584007913129639933\n            0x11000300060001: 115792089237316195423570985008687907853269984665640564039457584007913129639935\n            0x11000300070000: 115792089237316195423570985008687907853269984665640564039457584007913129639933\n            0x11000300070001: 115792089237316195423570985008687907853269984665640564039457584007913129639935\n            0x11000300080000: 115792089237316195423570985008687907853269984665640564039457584007913129639933\n            0x11000300080001: 115792089237316195423570985008687907853269984665640564039457584007913129639935\n            0x11000300090000: 115792089237316195423570985008687907853269984665640564039457584007913129639935\n            0x11000300090001: 1\n            0x110003000a0000: 115792089237316195423570985008687907853269984665640564039457584007913129639935\n            0x110003000a0001: 1\n            0x11000300100000: 115792089237316195423570985008687907853269984665640564039457584007913129639933\n            0x11000300100001: 115792089237316195423570985008687907853269984665640564039457584007913129639935\n            0x11000300110000: 115792089237316195423570985008687907853269984665640564039457584007913129639934\n            0x11000300110001: 0\n            0x11000300120000: 115792089237316195423570985008687907853269984665640564039457584007913129639933\n            0x11000300120001: 115792089237316195423570985008687907853269984665640564039457584007913129639935\n            0x11000300130000: 115792089237316195423570985008687907853269984665640564039457584007913129639934\n            0x11000300130001: 0\n            0x11000300140000: 115792089237316195423570985008687907853269984665640564039457584007913129639933\n            0x11000300140001: 115792089237316195423570985008687907853269984665640564039457584007913129639935\n            0x11000300150000: 115792089237316195423570985008687907853269984665640564039457584007913129639933\n            0x11000300150001: 115792089237316195423570985008687907853269984665640564039457584007913129639935\n            0x11000300160000: 115792089237316195423570985008687907853269984665640564039457584007913129639933\n            0x11000300160001: 115792089237316195423570985008687907853269984665640564039457584007913129639935\n            0x11000300170000: 0\n            0x11000300170001: 2\n            0x11000300180000: 0\n            0x11000300180001: 2\n            0x11000300190000: 115792089237316195423570985008687907853269984665640564039457584007913129639930\n            0x11000300190001: 115792089237316195423570985008687907853269984665640564039457584007913129639932\n            0x110003001a0000: 115792089237316195423570985008687907853269984665640564039457584007913129639933\n            0x110003001a0001: 115792089237316195423570985008687907853269984665640564039457584007913129639935\n            0x110003001b0000: 1\n            0x110003001b0001: 3\n            0x110003001c0000: 115792089237316195423570985008687907853269984665640564039457584007913129639933\n            0x110003001c0001: 115792089237316195423570985008687907853269984665640564039457584007913129639935\n            0x110003001d0000: 115792089237316195423570985008687907853269984665640564039457584007913129639933\n            0x110003001d0001: 115792089237316195423570985008687907853269984665640564039457584007913129639935\n            0x11000400010000: 1\n            0x11000400010001: 3\n            0x11000400020000: 0\n            0x11000400020001: 2\n            0x11000400030000: 0\n            0x11000400030001: 1\n            0x11000400040000: 0\n            0x11000400040001: 2\n            0x11000400050000: 0\n            0x11000400050001: 2\n            0x11000400060000: 0\n            0x11000400060001: 0\n            0x11000400070000: 0\n            0x11000400070001: 0\n            0x11000400080000: 0\n            0x11000400080001: 0\n            0x11000400090000: 0\n            0x11000400090001: 2\n            0x110004000a0000: 0\n            0x110004000a0001: 2\n            0x11000400100000: 0\n            0x11000400100001: 0\n            0x11000400110000: 0\n            0x11000400110001: 1\n            0x11000400120000: 0\n            0x11000400120001: 0\n            0x11000400130000: 0\n            0x11000400130001: 1\n            0x11000400140000: 0\n            0x11000400140001: 0\n            0x11000400150000: 0\n            0x11000400150001: 0\n            0x11000400160000: 0\n            0x11000400160001: 0\n            0x11000400170000: 1\n            0x11000400170001: 3\n            0x11000400180000: 1\n            0x11000400180001: 3\n            0x11000400190000: 38597363079105398474523661669562635951089994888546854679819194669304376546644\n            0x11000400190001: 115792089237316195423570985008687907853269984665640564039457584007913129639933\n            0x110004001a0000: 0\n            0x110004001a0001: 0\n            0x110004001b0000: 1\n            0x110004001b0001: 4\n            0x110004001c0000: 0\n            0x110004001c0001: 0\n            0x110004001d0000: 0\n            0x110004001d0001: 0\n            0x11000500010000: 1\n            0x11000500010001: 3\n            0x11000500020000: 0\n            0x11000500020001: 2\n            0x11000500030000: 0\n            0x11000500030001: 1\n            0x11000500040000: 0\n            0x11000500040001: 2\n            0x11000500050000: 0\n            0x11000500050001: 2\n            0x11000500060000: 0\n            0x11000500060001: 0\n            0x11000500070000: 0\n            0x11000500070001: 0\n            0x11000500080000: 0\n            0x11000500080001: 0\n            0x11000500090000: 0\n            0x11000500090001: 2\n            0x110005000a0000: 0\n            0x110005000a0001: 2\n            0x11000500100000: 0\n            0x11000500100001: 0\n            0x11000500110000: 0\n            0x11000500110001: 1\n            0x11000500120000: 0\n            0x11000500120001: 0\n            0x11000500130000: 0\n            0x11000500130001: 1\n            0x11000500140000: 0\n            0x11000500140001: 0\n            0x11000500150000: 0\n            0x11000500150001: 0\n            0x11000500160000: 0\n            0x11000500160001: 0\n            0x11000500170000: 1\n            0x11000500170001: 3\n            0x11000500180000: 1\n            0x11000500180001: 3\n            0x11000500190000: 115792089237316195423570985008687907853269984665640564039457584007913129639935\n            0x11000500190001: 115792089237316195423570985008687907853269984665640564039457584007913129639933\n            0x110005001a0000: 0\n            0x110005001a0001: 0\n            0x110005001b0000: 1\n            0x110005001b0001: 4\n            0x110005001c0000: 0\n            0x110005001c0001: 0\n            0x110005001d0000: 0\n            0x110005001d0001: 0\n            0x11000600010000: 0\n            0x11000600010001: 0\n            0x11000600020000: 2\n            0x11000600020001: 0\n            0x11000600030000: 1\n            0x11000600030001: 0\n            0x11000600040000: 2\n            0x11000600040001: 0\n            0x11000600050000: 2\n            0x11000600050001: 0\n            0x11000600060000: 0\n            0x11000600060001: 0\n            0x11000600070000: 0\n            0x11000600070001: 0\n            0x11000600080000: 0\n            0x11000600080001: 0\n            0x11000600090000: 2\n            0x11000600090001: 0\n            0x110006000a0000: 2\n            0x110006000a0001: 0\n            0x11000600100000: 0\n            0x11000600100001: 0\n            0x11000600110000: 1\n            0x11000600110001: 0\n            0x11000600120000: 0\n            0x11000600120001: 0\n            0x11000600130000: 1\n            0x11000600130001: 0\n            0x11000600140000: 0\n            0x11000600140001: 0\n            0x11000600150000: 0\n            0x11000600150001: 0\n            0x11000600160000: 0\n            0x11000600160001: 0\n            0x11000600170000: 0\n            0x11000600170001: 0\n            0x11000600180000: 0\n            0x11000600180001: 0\n            0x11000600190000: 1\n            0x11000600190001: 0\n            0x110006001a0000: 0\n            0x110006001a0001: 0\n            0x110006001b0000: 1\n            0x110006001b0001: 0\n            0x110006001c0000: 0\n            0x110006001c0001: 0\n            0x110006001d0000: 0\n            0x110006001d0001: 0\n            0x11000700010000: 0\n            0x11000700010001: 0\n            0x11000700020000: 2\n            0x11000700020001: 0\n            0x11000700030000: 1\n            0x11000700030001: 0\n            0x11000700040000: 2\n            0x11000700040001: 0\n            0x11000700050000: 2\n            0x11000700050001: 0\n            0x11000700060000: 0\n            0x11000700060001: 0\n            0x11000700070000: 0\n            0x11000700070001: 0\n            0x11000700080000: 0\n            0x11000700080001: 0\n            0x11000700090000: 2\n            0x11000700090001: 0\n            0x110007000a0000: 2\n            0x110007000a0001: 0\n            0x11000700100000: 0\n            0x11000700100001: 0\n            0x11000700110000: 1\n            0x11000700110001: 0\n            0x11000700120000: 0\n            0x11000700120001: 0\n            0x11000700130000: 1\n            0x11000700130001: 0\n            0x11000700140000: 0\n            0x11000700140001: 0\n            0x11000700150000: 0\n            0x11000700150001: 0\n            0x11000700160000: 0\n            0x11000700160001: 0\n            0x11000700170000: 0\n            0x11000700170001: 0\n            0x11000700180000: 0\n            0x11000700180001: 0\n            0x11000700190000: 0\n            0x11000700190001: 0\n            0x110007001a0000: 0\n            0x110007001a0001: 0\n            0x110007001b0000: 1\n            0x110007001b0001: 0\n            0x110007001c0000: 0\n            0x110007001c0001: 0\n            0x110007001d0000: 0\n            0x110007001d0001: 0\n            0x11000800010000: 0\n            0x11000800010001: 0\n            0x11000800020000: 1\n            0x11000800020001: 1\n            0x11000800030000: 0\n            0x11000800030001: 0\n            0x11000800040000: 1\n            0x11000800040001: 1\n            0x11000800050000: 1\n            0x11000800050001: 1\n            0x11000800060000: 1\n            0x11000800060001: 1\n            0x11000800070000: 1\n            0x11000800070001: 1\n            0x11000800080000: 1\n            0x11000800080001: 1\n            0x11000800090000: 1\n            0x11000800090001: 1\n            0x110008000a0000: 1\n            0x110008000a0001: 1\n            0x11000800100000: 1\n            0x11000800100001: 1\n            0x11000800110000: 0\n            0x11000800110001: 0\n            0x11000800120000: 1\n            0x11000800120001: 1\n            0x11000800130000: 0\n            0x11000800130001: 0\n            0x11000800140000: 1\n            0x11000800140001: 1\n            0x11000800150000: 1\n            0x11000800150001: 1\n            0x11000800160000: 1\n            0x11000800160001: 1\n            0x11000800170000: 0\n            0x11000800170001: 0\n            0x11000800180000: 0\n            0x11000800180001: 0\n            0x11000800190000: 0\n            0x11000800190001: 0\n            0x110008001a0000: 1\n            0x110008001a0001: 1\n            0x110008001b0000: 1\n            0x110008001b0001: 1\n            0x110008001c0000: 1\n            0x110008001c0001: 1\n            0x110008001d0000: 1\n            0x110008001d0001: 1\n            0x11000900010000: 1\n            0x11000900010001: 1\n            0x11000900020000: 0\n            0x11000900020001: 0\n            0x11000900030000: 1\n            0x11000900030001: 1\n            0x11000900040000: 0\n            0x11000900040001: 0\n            0x11000900050000: 0\n            0x11000900050001: 0\n            0x11000900060000: 0\n            0x11000900060001: 0\n            0x11000900070000: 0\n            0x11000900070001: 0\n            0x11000900080000: 0\n            0x11000900080001: 0\n            0x11000900090000: 0\n            0x11000900090001: 0\n            0x110009000a0000: 0\n            0x110009000a0001: 0\n            0x11000900100000: 0\n            0x11000900100001: 0\n            0x11000900110000: 1\n            0x11000900110001: 1\n            0x11000900120000: 0\n            0x11000900120001: 0\n            0x11000900130000: 1\n            0x11000900130001: 1\n            0x11000900140000: 0\n            0x11000900140001: 0\n            0x11000900150000: 0\n            0x11000900150001: 0\n            0x11000900160000: 0\n            0x11000900160001: 0\n            0x11000900170000: 1\n            0x11000900170001: 1\n            0x11000900180000: 1\n            0x11000900180001: 1\n            0x11000900190000: 1\n            0x11000900190001: 1\n            0x110009001a0000: 0\n            0x110009001a0001: 0\n            0x110009001b0000: 0\n            0x110009001b0001: 0\n            0x110009001c0000: 0\n            0x110009001c0001: 0\n            0x110009001d0000: 0\n            0x110009001d0001: 0\n            0x11000a00010000: 27\n            0x11000a00010001: 3\n            0x11000a00020000: 8\n            0x11000a00020001: 2\n            0x11000a00030000: 1\n            0x11000a00030001: 1\n            0x11000a00040000: 8\n            0x11000a00040001: 2\n            0x11000a00050000: 8\n            0x11000a00050001: 2\n            0x11000a00060000: 0\n            0x11000a00060001: 0\n            0x11000a00070000: 0\n            0x11000a00070001: 0\n            0x11000a00080000: 0\n            0x11000a00080001: 0\n            0x11000a00090000: 8\n            0x11000a00090001: 2\n            0x11000a000a0000: 8\n            0x11000a000a0001: 2\n            0x11000a00100000: 0\n            0x11000a00100001: 0\n            0x11000a00110000: 1\n            0x11000a00110001: 1\n            0x11000a00120000: 0\n            0x11000a00120001: 0\n            0x11000a00130000: 1\n            0x11000a00130001: 1\n            0x11000a00140000: 0\n            0x11000a00140001: 0\n            0x11000a00150000: 0\n            0x11000a00150001: 0\n            0x11000a00160000: 0\n            0x11000a00160001: 0\n            0x11000a00170000: 27\n            0x11000a00170001: 3\n            0x11000a00180000: 27\n            0x11000a00180001: 3\n            0x11000a00190000: 115792089237316195423570985008687907853269984665640564039457584007913129639909\n            0x11000a00190001: 115792089237316195423570985008687907853269984665640564039457584007913129639933\n            0x11000a001a0000: 0\n            0x11000a001a0001: 0\n            0x11000a001b0000: 64\n            0x11000a001b0001: 4\n            0x11000a001c0000: 0\n            0x11000a001c0001: 0\n            0x11000a001d0000: 0\n            0x11000a001d0001: 0\n            0x11001000010000: 0\n            0x11001000010001: 0\n            0x11001000020000: 1\n            0x11001000020001: 0\n            0x11001000030000: 1\n            0x11001000030001: 0\n            0x11001000040000: 1\n            0x11001000040001: 0\n            0x11001000050000: 1\n            0x11001000050001: 0\n            0x11001000060000: 1\n            0x11001000060001: 1\n            0x11001000070000: 1\n            0x11001000070001: 1\n            0x11001000080000: 1\n            0x11001000080001: 1\n            0x11001000090000: 1\n            0x11001000090001: 0\n            0x110010000a0000: 1\n            0x110010000a0001: 0\n            0x11001000100000: 1\n            0x11001000100001: 1\n            0x11001000110000: 1\n            0x11001000110001: 0\n            0x11001000120000: 1\n            0x11001000120001: 1\n            0x11001000130000: 1\n            0x11001000130001: 0\n            0x11001000140000: 1\n            0x11001000140001: 1\n            0x11001000150000: 1\n            0x11001000150001: 1\n            0x11001000160000: 1\n            0x11001000160001: 1\n            0x11001000170000: 0\n            0x11001000170001: 0\n            0x11001000180000: 0\n            0x11001000180001: 0\n            0x11001000190000: 0\n            0x11001000190001: 0\n            0x110010001a0000: 1\n            0x110010001a0001: 1\n            0x110010001b0000: 0\n            0x110010001b0001: 0\n            0x110010001c0000: 1\n            0x110010001c0001: 1\n            0x110010001d0000: 1\n            0x110010001d0001: 1\n            0x11001100010000: 0\n            0x11001100010001: 1\n            0x11001100020000: 0\n            0x11001100020001: 1\n            0x11001100030000: 0\n            0x11001100030001: 0\n            0x11001100040000: 0\n            0x11001100040001: 1\n            0x11001100050000: 0\n            0x11001100050001: 1\n            0x11001100060000: 0\n            0x11001100060001: 0\n            0x11001100070000: 0\n            0x11001100070001: 0\n            0x11001100080000: 0\n            0x11001100080001: 0\n            0x11001100090000: 0\n            0x11001100090001: 1\n            0x110011000a0000: 0\n            0x110011000a0001: 1\n            0x11001100100000: 0\n            0x11001100100001: 0\n            0x11001100110000: 0\n            0x11001100110001: 0\n            0x11001100120000: 0\n            0x11001100120001: 0\n            0x11001100130000: 0\n            0x11001100130001: 0\n            0x11001100140000: 0\n            0x11001100140001: 0\n            0x11001100150000: 0\n            0x11001100150001: 0\n            0x11001100160000: 0\n            0x11001100160001: 0\n            0x11001100170000: 0\n            0x11001100170001: 1\n            0x11001100180000: 0\n            0x11001100180001: 1\n            0x11001100190000: 1\n            0x11001100190001: 1\n            0x110011001a0000: 0\n            0x110011001a0001: 0\n            0x110011001b0000: 1\n            0x110011001b0001: 1\n            0x110011001c0000: 0\n            0x110011001c0001: 0\n            0x110011001d0000: 0\n            0x110011001d0001: 0\n            0x11001200010000: 0\n            0x11001200010001: 0\n            0x11001200020000: 1\n            0x11001200020001: 0\n            0x11001200030000: 1\n            0x11001200030001: 0\n            0x11001200040000: 1\n            0x11001200040001: 0\n            0x11001200050000: 1\n            0x11001200050001: 0\n            0x11001200060000: 1\n            0x11001200060001: 1\n            0x11001200070000: 1\n            0x11001200070001: 1\n            0x11001200080000: 1\n            0x11001200080001: 1\n            0x11001200090000: 1\n            0x11001200090001: 0\n            0x110012000a0000: 1\n            0x110012000a0001: 0\n            0x11001200100000: 1\n            0x11001200100001: 1\n            0x11001200110000: 1\n            0x11001200110001: 0\n            0x11001200120000: 1\n            0x11001200120001: 1\n            0x11001200130000: 1\n            0x11001200130001: 0\n            0x11001200140000: 1\n            0x11001200140001: 1\n            0x11001200150000: 1\n            0x11001200150001: 1\n            0x11001200160000: 1\n            0x11001200160001: 1\n            0x11001200170000: 0\n            0x11001200170001: 0\n            0x11001200180000: 0\n            0x11001200180001: 0\n            0x11001200190000: 1\n            0x11001200190001: 1\n            0x110012001a0000: 1\n            0x110012001a0001: 1\n            0x110012001b0000: 0\n            0x110012001b0001: 0\n            0x110012001c0000: 1\n            0x110012001c0001: 1\n            0x110012001d0000: 1\n            0x110012001d0001: 1\n            0x11001300010000: 0\n            0x11001300010001: 1\n            0x11001300020000: 0\n            0x11001300020001: 1\n            0x11001300030000: 0\n            0x11001300030001: 0\n            0x11001300040000: 0\n            0x11001300040001: 1\n            0x11001300050000: 0\n            0x11001300050001: 1\n            0x11001300060000: 0\n            0x11001300060001: 0\n            0x11001300070000: 0\n            0x11001300070001: 0\n            0x11001300080000: 0\n            0x11001300080001: 0\n            0x11001300090000: 0\n            0x11001300090001: 1\n            0x110013000a0000: 0\n            0x110013000a0001: 1\n            0x11001300100000: 0\n            0x11001300100001: 0\n            0x11001300110000: 0\n            0x11001300110001: 0\n            0x11001300120000: 0\n            0x11001300120001: 0\n            0x11001300130000: 0\n            0x11001300130001: 0\n            0x11001300140000: 0\n            0x11001300140001: 0\n            0x11001300150000: 0\n            0x11001300150001: 0\n            0x11001300160000: 0\n            0x11001300160001: 0\n            0x11001300170000: 0\n            0x11001300170001: 1\n            0x11001300180000: 0\n            0x11001300180001: 1\n            0x11001300190000: 0\n            0x11001300190001: 0\n            0x110013001a0000: 0\n            0x110013001a0001: 0\n            0x110013001b0000: 1\n            0x110013001b0001: 1\n            0x110013001c0000: 0\n            0x110013001c0001: 0\n            0x110013001d0000: 0\n            0x110013001d0001: 0\n            0x11001400010000: 1\n            0x11001400010001: 0\n            0x11001400020000: 0\n            0x11001400020001: 0\n            0x11001400030000: 0\n            0x11001400030001: 1\n            0x11001400040000: 0\n            0x11001400040001: 0\n            0x11001400050000: 0\n            0x11001400050001: 0\n            0x11001400060000: 0\n            0x11001400060001: 0\n            0x11001400070000: 0\n            0x11001400070001: 0\n            0x11001400080000: 0\n            0x11001400080001: 0\n            0x11001400090000: 0\n            0x11001400090001: 0\n            0x110014000a0000: 0\n            0x110014000a0001: 0\n            0x11001400100000: 0\n            0x11001400100001: 0\n            0x11001400110000: 0\n            0x11001400110001: 1\n            0x11001400120000: 0\n            0x11001400120001: 0\n            0x11001400130000: 0\n            0x11001400130001: 1\n            0x11001400140000: 0\n            0x11001400140001: 0\n            0x11001400150000: 0\n            0x11001400150001: 0\n            0x11001400160000: 0\n            0x11001400160001: 0\n            0x11001400170000: 1\n            0x11001400170001: 0\n            0x11001400180000: 1\n            0x11001400180001: 0\n            0x11001400190000: 0\n            0x11001400190001: 0\n            0x110014001a0000: 0\n            0x110014001a0001: 0\n            0x110014001b0000: 0\n            0x110014001b0001: 0\n            0x110014001c0000: 0\n            0x110014001c0001: 0\n            0x110014001d0000: 0\n            0x110014001d0001: 0\n            0x11001500010000: 0\n            0x11001500010001: 0\n            0x11001500020000: 0\n            0x11001500020001: 0\n            0x11001500030000: 0\n            0x11001500030001: 0\n            0x11001500040000: 0\n            0x11001500040001: 0\n            0x11001500050000: 0\n            0x11001500050001: 0\n            0x11001500060000: 1\n            0x11001500060001: 1\n            0x11001500070000: 1\n            0x11001500070001: 1\n            0x11001500080000: 1\n            0x11001500080001: 1\n            0x11001500090000: 0\n            0x11001500090001: 0\n            0x110015000a0000: 0\n            0x110015000a0001: 0\n            0x11001500100000: 1\n            0x11001500100001: 1\n            0x11001500110000: 0\n            0x11001500110001: 0\n            0x11001500120000: 1\n            0x11001500120001: 1\n            0x11001500130000: 0\n            0x11001500130001: 0\n            0x11001500140000: 1\n            0x11001500140001: 1\n            0x11001500150000: 1\n            0x11001500150001: 1\n            0x11001500160000: 1\n            0x11001500160001: 1\n            0x11001500170000: 0\n            0x11001500170001: 0\n            0x11001500180000: 0\n            0x11001500180001: 0\n            0x11001500190000: 0\n            0x11001500190001: 0\n            0x110015001a0000: 1\n            0x110015001a0001: 1\n            0x110015001b0000: 0\n            0x110015001b0001: 0\n            0x110015001c0000: 1\n            0x110015001c0001: 1\n            0x110015001d0000: 1\n            0x110015001d0001: 1\n            0x11001600010000: 3\n            0x11001600010001: 1\n            0x11001600020000: 2\n            0x11001600020001: 0\n            0x11001600030000: 1\n            0x11001600030001: 1\n            0x11001600040000: 2\n            0x11001600040001: 0\n            0x11001600050000: 2\n            0x11001600050001: 0\n            0x11001600060000: 0\n            0x11001600060001: 0\n            0x11001600070000: 0\n            0x11001600070001: 0\n            0x11001600080000: 0\n            0x11001600080001: 0\n            0x11001600090000: 2\n            0x11001600090001: 0\n            0x110016000a0000: 2\n            0x110016000a0001: 0\n            0x11001600100000: 0\n            0x11001600100001: 0\n            0x11001600110000: 1\n            0x11001600110001: 1\n            0x11001600120000: 0\n            0x11001600120001: 0\n            0x11001600130000: 1\n            0x11001600130001: 1\n            0x11001600140000: 0\n            0x11001600140001: 0\n            0x11001600150000: 0\n            0x11001600150001: 0\n            0x11001600160000: 0\n            0x11001600160001: 0\n            0x11001600170000: 3\n            0x11001600170001: 1\n            0x11001600180000: 3\n            0x11001600180001: 1\n            0x11001600190000: 1\n            0x11001600190001: 1\n            0x110016001a0000: 0\n            0x110016001a0001: 0\n            0x110016001b0000: 0\n            0x110016001b0001: 0\n            0x110016001c0000: 0\n            0x110016001c0001: 0\n            0x110016001d0000: 0\n            0x110016001d0001: 0\n            0x11001700010000: 3\n            0x11001700010001: 3\n            0x11001700020000: 3\n            0x11001700020001: 3\n            0x11001700030000: 3\n            0x11001700030001: 1\n            0x11001700040000: 3\n            0x11001700040001: 3\n            0x11001700050000: 3\n            0x11001700050001: 3\n            0x11001700060000: 3\n            0x11001700060001: 1\n            0x11001700070000: 3\n            0x11001700070001: 1\n            0x11001700080000: 3\n            0x11001700080001: 1\n            0x11001700090000: 3\n            0x11001700090001: 3\n            0x110017000a0000: 3\n            0x110017000a0001: 3\n            0x11001700100000: 3\n            0x11001700100001: 1\n            0x11001700110000: 3\n            0x11001700110001: 1\n            0x11001700120000: 3\n            0x11001700120001: 1\n            0x11001700130000: 3\n            0x11001700130001: 1\n            0x11001700140000: 3\n            0x11001700140001: 1\n            0x11001700150000: 3\n            0x11001700150001: 1\n            0x11001700160000: 3\n            0x11001700160001: 1\n            0x11001700170000: 3\n            0x11001700170001: 3\n            0x11001700180000: 3\n            0x11001700180001: 3\n            0x11001700190000: 115792089237316195423570985008687907853269984665640564039457584007913129639935\n            0x11001700190001: 115792089237316195423570985008687907853269984665640564039457584007913129639933\n            0x110017001a0000: 3\n            0x110017001a0001: 1\n            0x110017001b0000: 7\n            0x110017001b0001: 5\n            0x110017001c0000: 3\n            0x110017001c0001: 1\n            0x110017001d0000: 3\n            0x110017001d0001: 1\n            0x11001800010000: 0\n            0x11001800010001: 2\n            0x11001800020000: 1\n            0x11001800020001: 3\n            0x11001800030000: 2\n            0x11001800030001: 0\n            0x11001800040000: 1\n            0x11001800040001: 3\n            0x11001800050000: 1\n            0x11001800050001: 3\n            0x11001800060000: 3\n            0x11001800060001: 1\n            0x11001800070000: 3\n            0x11001800070001: 1\n            0x11001800080000: 3\n            0x11001800080001: 1\n            0x11001800090000: 1\n            0x11001800090001: 3\n            0x110018000a0000: 1\n            0x110018000a0001: 3\n            0x11001800100000: 3\n            0x11001800100001: 1\n            0x11001800110000: 2\n            0x11001800110001: 0\n            0x11001800120000: 3\n            0x11001800120001: 1\n            0x11001800130000: 2\n            0x11001800130001: 0\n            0x11001800140000: 3\n            0x11001800140001: 1\n            0x11001800150000: 3\n            0x11001800150001: 1\n            0x11001800160000: 3\n            0x11001800160001: 1\n            0x11001800170000: 0\n            0x11001800170001: 2\n            0x11001800180000: 0\n            0x11001800180001: 2\n            0x11001800190000: 115792089237316195423570985008687907853269984665640564039457584007913129639934\n            0x11001800190001: 115792089237316195423570985008687907853269984665640564039457584007913129639932\n            0x110018001a0000: 3\n            0x110018001a0001: 1\n            0x110018001b0000: 7\n            0x110018001b0001: 5\n            0x110018001c0000: 3\n            0x110018001c0001: 1\n            0x110018001d0000: 3\n            0x110018001d0001: 1\n            0x11001900010000: 115792089237316195423570985008687907853269984665640564039457584007913129639932\n            0x11001900010001: 115792089237316195423570985008687907853269984665640564039457584007913129639932\n            0x11001900020000: 115792089237316195423570985008687907853269984665640564039457584007913129639933\n            0x11001900020001: 115792089237316195423570985008687907853269984665640564039457584007913129639933\n            0x11001900030000: 115792089237316195423570985008687907853269984665640564039457584007913129639934\n            0x11001900030001: 115792089237316195423570985008687907853269984665640564039457584007913129639934\n            0x11001900040000: 115792089237316195423570985008687907853269984665640564039457584007913129639933\n            0x11001900040001: 115792089237316195423570985008687907853269984665640564039457584007913129639933\n            0x11001900050000: 115792089237316195423570985008687907853269984665640564039457584007913129639933\n            0x11001900050001: 115792089237316195423570985008687907853269984665640564039457584007913129639933\n            0x11001900060000: 115792089237316195423570985008687907853269984665640564039457584007913129639935\n            0x11001900060001: 115792089237316195423570985008687907853269984665640564039457584007913129639935\n            0x11001900070000: 115792089237316195423570985008687907853269984665640564039457584007913129639935\n            0x11001900070001: 115792089237316195423570985008687907853269984665640564039457584007913129639935\n            0x11001900080000: 115792089237316195423570985008687907853269984665640564039457584007913129639935\n            0x11001900080001: 115792089237316195423570985008687907853269984665640564039457584007913129639935\n            0x11001900090000: 115792089237316195423570985008687907853269984665640564039457584007913129639933\n            0x11001900090001: 115792089237316195423570985008687907853269984665640564039457584007913129639933\n            0x110019000a0000: 115792089237316195423570985008687907853269984665640564039457584007913129639933\n            0x110019000a0001: 115792089237316195423570985008687907853269984665640564039457584007913129639933\n            0x11001900100000: 115792089237316195423570985008687907853269984665640564039457584007913129639935\n            0x11001900100001: 115792089237316195423570985008687907853269984665640564039457584007913129639935\n            0x11001900110000: 115792089237316195423570985008687907853269984665640564039457584007913129639934\n            0x11001900110001: 115792089237316195423570985008687907853269984665640564039457584007913129639934\n            0x11001900120000: 115792089237316195423570985008687907853269984665640564039457584007913129639935\n            0x11001900120001: 115792089237316195423570985008687907853269984665640564039457584007913129639935\n            0x11001900130000: 115792089237316195423570985008687907853269984665640564039457584007913129639934\n            0x11001900130001: 115792089237316195423570985008687907853269984665640564039457584007913129639934\n            0x11001900140000: 115792089237316195423570985008687907853269984665640564039457584007913129639935\n            0x11001900140001: 115792089237316195423570985008687907853269984665640564039457584007913129639935\n            0x11001900150000: 115792089237316195423570985008687907853269984665640564039457584007913129639935\n            0x11001900150001: 115792089237316195423570985008687907853269984665640564039457584007913129639935\n            0x11001900160000: 115792089237316195423570985008687907853269984665640564039457584007913129639935\n            0x11001900160001: 115792089237316195423570985008687907853269984665640564039457584007913129639935\n            0x11001900170000: 115792089237316195423570985008687907853269984665640564039457584007913129639932\n            0x11001900170001: 115792089237316195423570985008687907853269984665640564039457584007913129639932\n            0x11001900180000: 115792089237316195423570985008687907853269984665640564039457584007913129639932\n            0x11001900180001: 115792089237316195423570985008687907853269984665640564039457584007913129639932\n            0x11001900190000: 2\n            0x11001900190001: 2\n            0x110019001a0000: 115792089237316195423570985008687907853269984665640564039457584007913129639935\n            0x110019001a0001: 115792089237316195423570985008687907853269984665640564039457584007913129639935\n            0x110019001b0000: 115792089237316195423570985008687907853269984665640564039457584007913129639931\n            0x110019001b0001: 115792089237316195423570985008687907853269984665640564039457584007913129639931\n            0x110019001c0000: 115792089237316195423570985008687907853269984665640564039457584007913129639935\n            0x110019001c0001: 115792089237316195423570985008687907853269984665640564039457584007913129639935\n            0x110019001d0000: 115792089237316195423570985008687907853269984665640564039457584007913129639935\n            0x110019001d0001: 115792089237316195423570985008687907853269984665640564039457584007913129639935\n            0x11001a00010000: 0\n            0x11001a00010001: 0\n            0x11001a00020000: 0\n            0x11001a00020001: 0\n            0x11001a00030000: 0\n            0x11001a00030001: 0\n            0x11001a00040000: 0\n            0x11001a00040001: 0\n            0x11001a00050000: 0\n            0x11001a00050001: 0\n            0x11001a00060000: 0\n            0x11001a00060001: 0\n            0x11001a00070000: 0\n            0x11001a00070001: 0\n            0x11001a00080000: 0\n            0x11001a00080001: 0\n            0x11001a00090000: 0\n            0x11001a00090001: 0\n            0x11001a000a0000: 0\n            0x11001a000a0001: 0\n            0x11001a00100000: 0\n            0x11001a00100001: 0\n            0x11001a00110000: 0\n            0x11001a00110001: 0\n            0x11001a00120000: 0\n            0x11001a00120001: 0\n            0x11001a00130000: 0\n            0x11001a00130001: 0\n            0x11001a00140000: 0\n            0x11001a00140001: 0\n            0x11001a00150000: 0\n            0x11001a00150001: 0\n            0x11001a00160000: 0\n            0x11001a00160001: 0\n            0x11001a00170000: 0\n            0x11001a00170001: 0\n            0x11001a00180000: 0\n            0x11001a00180001: 0\n            0x11001a00190000: 0\n            0x11001a00190001: 0\n            0x11001a001a0000: 0\n            0x11001a001a0001: 0\n            0x11001a001b0000: 0\n            0x11001a001b0001: 0\n            0x11001a001c0000: 0\n            0x11001a001c0001: 0\n            0x11001a001d0000: 0\n            0x11001a001d0001: 0\n            0x11001b00010000: 24\n            0x11001b00010001: 8\n            0x11001b00020000: 12\n            0x11001b00020001: 4\n            0x11001b00030000: 6\n            0x11001b00030001: 2\n            0x11001b00040000: 12\n            0x11001b00040001: 4\n            0x11001b00050000: 12\n            0x11001b00050001: 4\n            0x11001b00060000: 3\n            0x11001b00060001: 1\n            0x11001b00070000: 3\n            0x11001b00070001: 1\n            0x11001b00080000: 3\n            0x11001b00080001: 1\n            0x11001b00090000: 12\n            0x11001b00090001: 4\n            0x11001b000a0000: 12\n            0x11001b000a0001: 4\n            0x11001b00100000: 3\n            0x11001b00100001: 1\n            0x11001b00110000: 6\n            0x11001b00110001: 2\n            0x11001b00120000: 3\n            0x11001b00120001: 1\n            0x11001b00130000: 6\n            0x11001b00130001: 2\n            0x11001b00140000: 3\n            0x11001b00140001: 1\n            0x11001b00150000: 3\n            0x11001b00150001: 1\n            0x11001b00160000: 3\n            0x11001b00160001: 1\n            0x11001b00170000: 24\n            0x11001b00170001: 8\n            0x11001b00180000: 24\n            0x11001b00180001: 8\n            0x11001b00190000: 0\n            0x11001b00190001: 0\n            0x11001b001a0000: 3\n            0x11001b001a0001: 1\n            0x11001b001b0000: 48\n            0x11001b001b0001: 16\n            0x11001b001c0000: 3\n            0x11001b001c0001: 1\n            0x11001b001d0000: 3\n            0x11001b001d0001: 1\n            0x11001c00010000: 0\n            0x11001c00010001: 0\n            0x11001c00020000: 0\n            0x11001c00020001: 0\n            0x11001c00030000: 1\n            0x11001c00030001: 0\n            0x11001c00040000: 0\n            0x11001c00040001: 0\n            0x11001c00050000: 0\n            0x11001c00050001: 0\n            0x11001c00060000: 3\n            0x11001c00060001: 1\n            0x11001c00070000: 3\n            0x11001c00070001: 1\n            0x11001c00080000: 3\n            0x11001c00080001: 1\n            0x11001c00090000: 0\n            0x11001c00090001: 0\n            0x11001c000a0000: 0\n            0x11001c000a0001: 0\n            0x11001c00100000: 3\n            0x11001c00100001: 1\n            0x11001c00110000: 1\n            0x11001c00110001: 0\n            0x11001c00120000: 3\n            0x11001c00120001: 1\n            0x11001c00130000: 1\n            0x11001c00130001: 0\n            0x11001c00140000: 3\n            0x11001c00140001: 1\n            0x11001c00150000: 3\n            0x11001c00150001: 1\n            0x11001c00160000: 3\n            0x11001c00160001: 1\n            0x11001c00170000: 0\n            0x11001c00170001: 0\n            0x11001c00180000: 0\n            0x11001c00180001: 0\n            0x11001c00190000: 0\n            0x11001c00190001: 0\n            0x11001c001a0000: 3\n            0x11001c001a0001: 1\n            0x11001c001b0000: 0\n            0x11001c001b0001: 0\n            0x11001c001c0000: 3\n            0x11001c001c0001: 1\n            0x11001c001d0000: 3\n            0x11001c001d0001: 1\n            0x11001d00010000: 0\n            0x11001d00010001: 0\n            0x11001d00020000: 0\n            0x11001d00020001: 0\n            0x11001d00030000: 1\n            0x11001d00030001: 0\n            0x11001d00040000: 0\n            0x11001d00040001: 0\n            0x11001d00050000: 0\n            0x11001d00050001: 0\n            0x11001d00060000: 3\n            0x11001d00060001: 1\n            0x11001d00070000: 3\n            0x11001d00070001: 1\n            0x11001d00080000: 3\n            0x11001d00080001: 1\n            0x11001d00090000: 0\n            0x11001d00090001: 0\n            0x11001d000a0000: 0\n            0x11001d000a0001: 0\n            0x11001d00100000: 3\n            0x11001d00100001: 1\n            0x11001d00110000: 1\n            0x11001d00110001: 0\n            0x11001d00120000: 3\n            0x11001d00120001: 1\n            0x11001d00130000: 1\n            0x11001d00130001: 0\n            0x11001d00140000: 3\n            0x11001d00140001: 1\n            0x11001d00150000: 3\n            0x11001d00150001: 1\n            0x11001d00160000: 3\n            0x11001d00160001: 1\n            0x11001d00170000: 0\n            0x11001d00170001: 0\n            0x11001d00180000: 0\n            0x11001d00180001: 0\n            0x11001d00190000: 0\n            0x11001d00190001: 0\n            0x11001d001a0000: 3\n            0x11001d001a0001: 1\n            0x11001d001b0000: 0\n            0x11001d001b0001: 0\n            0x11001d001c0000: 3\n            0x11001d001c0001: 1\n            0x11001d001d0000: 3\n            0x11001d001d0001: 1\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmArithmeticTest/twoOpsGen.js",
    "content": "#! /usr/bin/node\n\n// Generate the vmArithmeticTest/twoOpsFiller.yml file\n//\n// Ori Pomerantz qbzzt1@gmail.com\n//\n// This test looks at the result of running two operations (numeric/bitwise)\n// There are 24 such operations, so 576 test cases.\n\n\n// Turn boolean values into the numbers the evm gives us\nconst bool2num = a => a ? 1n : 0n\n\n// The EVM is 256 bits, and uses 2's complement for negatives.\n// JavaScript BigInt, OTOH, can be a lot more (it seems to depend on the size of\n// the biggest operand).\n// In the few cases where the sign matters these functions convert between representations.\n\n// The unsigned value is always the least significant 256 bits\nconst makeUnsigned = a => a & (2n**256n-1n)\n\n// The signed value can be either positive (no change) or negative. If it's\n// negative, the most significant bit is on. In that case, use 2's complement\n// to figure the absolute value and then negate it.\nconst makeSigned =   a => (a & 2n**255n) ? -(makeUnsigned(~a)+1n) : a\n\n\n// The numeric/bitwise opcodes we test. For each we have:\n//\n// name\n// byte for the opcode (used for storage cells)\n// number of parameters it receives\n// Javascript function to implement it so we'll be able to know what result to expect\n\nvar opcodes = [\n    [\"ADD\",         '01', 2, (a,b) => a+b],\n    [\"MUL\",         '02', 2, (a,b) => a*b],\n    [\"SUB\",         '03', 2, (a,b) => a-b],\n    [\"DIV\",         '04', 2, (a,b) => a/b],\n    [\"SDIV\",        '05', 2, (a,b) => makeUnsigned(makeSigned(a)/makeSigned(b))],\n    [\"MOD\",         '06', 2, (a,b) => a % b],\n    [\"SMOD\",        '07', 2, (a,b) => makeUnsigned(makeSigned(a) % makeSigned(b))],\n    [\"ADDMOD\",      '08', 3, (a,b,c) => (a+b) % c],\n    [\"MULMOD\",      '09', 3, (a,b,c) => (a*b) % c],\n    [\"EXP\",         '0a', 2, (a,b) => a**b],\n    [\"LT\",          '10', 2, (a,b) => bool2num(a<b)],\n    [\"GT\",          '11', 2, (a,b) => bool2num(a>b)],\n    [\"SLT\",         '12', 2, (a,b) => bool2num(makeSigned(a)<makeSigned(b))],\n    [\"SGT\",         '13', 2, (a,b) => bool2num(makeSigned(a)>makeSigned(b))],\n    [\"EQ\",          '14', 2, (a,b) => bool2num(a==b)],\n    [\"ISZERO\",      '15', 1, a => bool2num(a == 0)],\n    [\"AND\",         '16', 2, (a,b) => a&b],\n    [\"OR\",          '17', 2, (a,b) => a|b],\n    [\"XOR\",         '18', 2, (a,b) => a^b],\n    [\"NOT\",         '19', 1, a => makeUnsigned(~a)],\n    [\"BYTE\",        '1a', 2, (i,x) => i > 32 ? 0 : (x >> (248n - i*8n)) & 255n],\n    [\"SHL\",         '1b', 2, (a,b) => (a > 255n) ? 0 : b << a],\n    [\"SHR\",         '1c', 2, (a,b) => b >> a],\n    [\"SAR\",         '1d', 2, (a,b) => b >> a],\n       ]\n\n\n\n// Turn an opcode line into LLL code with these values. a,b,c are code structures\n// Code structures contain two fields:\n// lll - the LLL code for the operation\n// val - the numeric result (as a BigInt)\nconst opcode2Code = (op, a, b, c) => {\n\n  // The result depends on the number of parameters the opcode accepts\n  switch(op[2]) {\n    case 1:\n      return { lll: `(${op[0]} ${a.lll})`, val: op[3](a.val) }\n      break;\n    case 2:\n      return { lll: `(${op[0]} ${a.lll} ${b.lll})`, val: op[3](a.val,b.val) }\n      break;\n    case 3:\n      return { lll: `(${op[0]} ${a.lll} ${b.lll} ${c.lll})`, val: op[3](a.val,b.val,c.val) }\n      break;\n  }    // switch(op[1])\n}   // opcode2Code\n\n\n// The values we use as operands\none = {lll: \"1\", val: BigInt(1)}\ntwo = {lll: \"2\", val: BigInt(2)}\nthree = {lll: \"3\", val: BigInt(3)}\n\n\nconst boilerPlate1 = `\ntwoOps:\n  # Generated automatically by twoOpsGen.js\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n    # Calculate the results\n    cccccccccccccccccccccccccccccccccccccccc:\n      code: |\n        {\n`\n\nconst boilerPlate2 = `\n        }\n      nonce: 1\n      storage: {}\n      balance: 0\n\n\n\n  transaction:\n    data: \n    - :raw 0x00\n    gasLimit:\n    - '80000000'\n    gasPrice: '1'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n  expect:\n   - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n     network:\n        - '>=Istanbul'\n     result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:`\n\n\n// Create the lines to test a specific combo\nconst createOpcodeTest = (op1, op2) => {\n    // The storage cell for the result\n    cell0 = `0x1100${op1[1]}00${op2[1]}0000`\n    cell1 = `0x1100${op1[1]}00${op2[1]}0001`\n\n\n    intermediate = opcode2Code(op2, two, one, three)\n    code0 = opcode2Code(op1, intermediate, three, two)\n    code1 = opcode2Code(op1, intermediate, one, two)\n\n\n    // This structure contains these fields:\n    // lll - the line to place into the cc..cc contract LLL\n    // res - the result to place into the expect section\n    return {\n      lll: `\n            [[${cell0}]] ${code0.lll}\n            [[${cell1}]] ${code1.lll}`,\n      res: `\n            ${cell0}: ${makeUnsigned(BigInt(code0.val))}\n            ${cell1}: ${makeUnsigned(BigInt(code1.val))}`\n    }   // return {}\n\n}        // createOpcodeTest\n\n\n// The variables that will collect the output\n// of createOpcodeTest\nvar lllCollector = \"\"\nvar resCollector = \"\"\n\n\n// For every opcode pair we can get from the list\nfor (var op1Num=0; op1Num<opcodes.length; op1Num++)\n    for (var op2Num=0; op2Num<opcodes.length; op2Num++) {\n      temp = createOpcodeTest(opcodes[op1Num], opcodes[op2Num])\n      lllCollector += temp.lll\n      resCollector += temp.res\n    }    // for every opcode pair\n\n\n\nconsole.log(boilerPlate1)\nconsole.log(lllCollector)\nconsole.log(boilerPlate2)\nconsole.log(resCollector)\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmBitwiseLogicOperation/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmBitwiseLogicOperation/andFiller.yml",
    "content": "and:\n\n  # A test of and bitwise logic\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    0000000000000000000000000000000000001000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            [[0]] (and 2 2)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001001:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            [[0]] (and 2 1)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001002:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            [[0]] (and 3 1)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001003:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            ; \"and 0xffffff\" doesn't do anything\n            [[0]] (and\n                     0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n                     0x0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef\n                  )\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n\n    0000000000000000000000000000000000001004:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            ; \"and 0xffffff\" doesn't do anything\n            [[0]] (and\n                     0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeefeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\n                     0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n                  )\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (call 0xffffff (+ 0x1000 $4) 0 0 0 0 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n  transaction:\n    data:\n    - :label and_2_2            :abi f(uint) 0\n    - :label and_2_1            :abi f(uint) 1\n    - :label and_3_1            :abi f(uint) 2\n    - :label and_allones_bignum :abi f(uint) 3\n    - :label and_allones_eefee  :abi f(uint) 4\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n  expect:\n    - indexes:\n        data: :label and_2_2\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001000:\n          storage:\n            0: 0x02\n\n\n\n    - indexes:\n        data: :label and_3_1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001002:\n          storage:\n            0: 0x01\n\n\n    - indexes:\n        data: :label and_allones_bignum\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001003:\n          storage:\n            0: 0x0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef\n\n\n\n\n    - indexes:\n        data: :label and_allones_eefee\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001004:\n          storage:\n            0: 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeefeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\n\n\n\n\n\n\n    - indexes:\n        data: :label and_2_1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001001:\n          storage:\n            0: 0x00\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmBitwiseLogicOperation/byteFiller.yml",
    "content": "byte:\n\n  # A test of the byte opcode\n  # (byte n a) gets the n'th byte of a,\n  # with n=0 being the most significant and n=31 the least\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    0000000000000000000000000000000000001000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (byte (- 31 0) 0x8040201008040201)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001001:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (byte (- 31 1) 0x8040201008040201)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001002:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (byte (- 31 2) 0x8040201008040201)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001003:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (byte (- 31 3) 0x8040201008040201)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001004:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (byte (- 31 4) 0x8040201008040201)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001005:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (byte (- 31 5) 0x8040201008040201)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001006:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (byte (- 31 6) 0x8040201008040201)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001007:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (byte (- 31 7) 0x8040201008040201)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001008:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (byte (- 31 31) 0x8040201008040201)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001009:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (byte (sdiv 31 32) 0x8040201008040201)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    000000000000000000000000000000000000100a:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      #  0 PUSH5 0x1234523456\n      #  6 PUSH1 0x1F   (a.k.a. 31 the least significant byte)\n      #  8 BYTE\n      #  9 DUP1\n      #  A ADD\n      #  B PUSH1 0x01\n      #  D SSTORE\n      code: :raw 0x641234523456601F1A8001600155\n      nonce: '0'\n      storage: {}\n\n\n    # Check all 32 options (0 - 31)\n    0000000000000000000000000000000000000200:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           (def 'i   0x0100)    ; index\n\n           ;   (byte <n> num) = n\n           (def 'num 0x000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f)\n\n           [i] 0x00\n\n           (while (< @i 0x20) {\n              [[@i]] (byte @i num)\n              [i] (+ @i 1)\n           })  ; while loop\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (call 0xffffff $4 0 0 0 0 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n  transaction:\n    data:\n    # The big number is 0x8040201008040201\n    - :label byte_31_big     :abi f(uint) 0x1000\n    - :label byte_30_big     :abi f(uint) 0x1001\n    - :label byte_29_big     :abi f(uint) 0x1002\n    - :label byte_28_big     :abi f(uint) 0x1003\n    - :label byte_27_big     :abi f(uint) 0x1004\n    - :label byte_26_big     :abi f(uint) 0x1005\n    - :label byte_25_big     :abi f(uint) 0x1006\n    - :label byte_24_big     :abi f(uint) 0x1007\n    - :label byte_00_big     :abi f(uint) 0x1008\n    - :label byte_00_big_2nd :abi f(uint) 0x1009\n\n    # A different test of the opcode, written in assembly\n    - :label byte_asm        :abi f(uint) 0x100a\n\n    # A test for all possible byte positions\n    - :label byte_all        :abi f(uint) 0x200\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n  expect:\n\n    - indexes:\n        data:\n        - :label byte_31_big\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001000:\n          storage:\n            0: 0x01\n\n\n    - indexes:\n        data:\n        - :label byte_30_big\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001001:\n          storage:\n            0: 0x02\n\n\n\n\n    - indexes:\n        data:\n        - :label byte_29_big\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001002:\n          storage:\n            0: 0x04\n\n\n\n    - indexes:\n        data:\n        - :label byte_28_big\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001003:\n          storage:\n            0: 0x08\n\n\n    - indexes:\n        data:\n        - :label byte_27_big\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001004:\n          storage:\n            0: 0x10\n\n\n\n\n    - indexes:\n        data:\n        - :label byte_26_big\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001005:\n          storage:\n            0: 0x20\n\n\n\n    - indexes:\n        data:\n        - :label byte_25_big\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001006:\n          storage:\n            0: 0x40\n\n\n    - indexes:\n        data:\n        - :label byte_24_big\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001007:\n          storage:\n            0: 0x80\n\n\n\n\n    - indexes:\n        data:\n        - :label byte_00_big\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001008:\n          storage:\n            0: 0x00\n\n\n\n\n\n    - indexes:\n        data:\n        - :label byte_00_big_2nd\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001009:\n          storage:\n            0: 0x00\n\n\n\n\n    - indexes:\n        data:\n        - :label byte_asm\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        000000000000000000000000000000000000100A:\n          storage:\n            1: 0xAC\n\n\n\n    - indexes:\n        data:\n        - :label byte_all\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000000200:\n          storage:\n            0x00: 0x00\n            0x01: 0x01\n            0x02: 0x02\n            0x03: 0x03\n            0x04: 0x04\n            0x05: 0x05\n            0x06: 0x06\n            0x07: 0x07\n            0x08: 0x08\n            0x09: 0x09\n            0x0a: 0x0a\n            0x0b: 0x0b\n            0x0c: 0x0c\n            0x0d: 0x0d\n            0x0e: 0x0e\n            0x0f: 0x0f\n            0x10: 0x10\n            0x11: 0x11\n            0x12: 0x12\n            0x13: 0x13\n            0x14: 0x14\n            0x15: 0x15\n            0x16: 0x16\n            0x17: 0x17\n            0x18: 0x18\n            0x19: 0x19\n            0x1a: 0x1a\n            0x1b: 0x1b\n            0x1c: 0x1c\n            0x1d: 0x1d\n            0x1e: 0x1e\n            0x1f: 0x1f\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmBitwiseLogicOperation/eqFiller.yml",
    "content": "eq:\n\n  # A test of equality\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    0000000000000000000000000000000000001000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (eq (- 0 5) (- 0 3))\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001001:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            [[0]] (eq 0 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001002:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (def 'pow_2_256_min1\n                 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n            [[0]] (eq pow_2_256_min1 pow_2_256_min1)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (call 0xffffff (+ 0x1000 $4) 0 0 0 0 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n  transaction:\n    data:\n    - :label eq_neg5_neg3   :abi f(uint) 0\n    - :label eq_0_0         :abi f(uint) 1\n    - :label eq_neg1_neg1   :abi f(uint) 2\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n  expect:\n\n    - indexes:\n        data:\n        - :label eq_neg5_neg3\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001000:\n          storage:\n            0: 0x00\n\n\n\n    - indexes:\n        data:\n        - :label eq_0_0\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001001:\n          storage:\n            0: 0x01\n\n\n\n\n    - indexes:\n        data:\n        - :label eq_neg1_neg1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001002:\n          storage:\n            0: 0x01\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmBitwiseLogicOperation/gtFiller.yml",
    "content": "gt:\n\n  # A test of unsigned greater than (gt)\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    0000000000000000000000000000000000001000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           ; (gt a b) is true iff a>b\n           ; it is unsigned, so negative numbers are 2^255 and above.\n           [[0]] (gt (- 0 2) 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001001:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            [[0]] (gt 0 (- 0 2))\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001002:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (def 'pow_2_256_min1\n                 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n            [[0]] (gt pow_2_256_min1 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001003:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (def 'pow_2_256_min1\n                 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n            [[0]] (gt 0 pow_2_256_min1)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (call 0xffffff (+ 0x1000 $4) 0 0 0 0 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n  transaction:\n    data:\n    - :label gt_neg2_0   :abi f(uint) 0\n    - :label gt_0_neg2   :abi f(uint) 1\n    - :label gt_neg1_0   :abi f(uint) 2\n    - :label gt_0_neg1   :abi f(uint) 3\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n  expect:\n\n    - indexes:\n        data:\n        - :label gt_neg2_0\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001000:\n          storage:\n            0: 0x01\n\n\n\n    - indexes:\n        data:\n        - :label gt_0_neg2\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001001:\n          storage:\n            0: 0x00\n\n\n\n\n    - indexes:\n        data:\n        - :label gt_neg1_0\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001002:\n          storage:\n            0: 0x01\n\n\n\n\n    - indexes:\n        data:\n        - :label gt_0_neg1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001003:\n          storage:\n            0: 0x00\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmBitwiseLogicOperation/iszeroFiller.yml",
    "content": "iszero:\n\n  # A test of equal to zero\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    0000000000000000000000000000000000001000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           (def 'pow_2_256_min1\n                0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n           [[0]] (iszero pow_2_256_min1)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001001:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            [[0]] (iszero 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001002:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            [[0]] (iszero (- 0 2))\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (call 0xffffff (+ 0x1000 $4) 0 0 0 0 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n  transaction:\n    data:\n    - :label iszero_neg1    :abi f(uint) 0\n    - :label iszero_0       :abi f(uint) 1\n    - :label iszero_neg2    :abi f(uint) 2\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n  expect:\n\n    - indexes:\n        data:\n        - :label iszero_neg1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001000:\n          storage:\n            0: 0x00\n\n\n\n    - indexes:\n        data:\n        - :label iszero_0\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001001:\n          storage:\n            0: 0x01\n\n\n\n\n    - indexes:\n        data:\n        - :label iszero_neg2\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001002:\n          storage:\n            0: 0x00\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmBitwiseLogicOperation/ltFiller.yml",
    "content": "lt:\n\n  # A test of unsigned lesser than (lt)\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    0000000000000000000000000000000000001000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           ; (lt a b) is true iff a<b\n           ; it is unsigned, so negative numbers are 2^255 and above.\n           [[0]] (lt (- 0 2) 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001001:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            [[0]] (lt 0 (- 0 2))\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001002:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (def 'pow_2_256_min1\n                 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n            [[0]] (lt pow_2_256_min1 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001003:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (def 'pow_2_256_min1\n                 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n            [[0]] (lt 0 pow_2_256_min1)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (call 0xffffff (+ 0x1000 $4) 0 0 0 0 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n  transaction:\n    data:\n    - :label lt_neg2_0   :abi f(uint) 0\n    - :label lt_0_neg2   :abi f(uint) 1\n    - :label lt_neg1_0   :abi f(uint) 2\n    - :label lt_0_neg1   :abi f(uint) 3\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n  expect:\n\n    - indexes:\n        data:\n        - :label lt_neg2_0\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001000:\n          storage:\n            0: 0x00\n\n\n\n    - indexes:\n        data:\n        - :label lt_0_neg2\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001001:\n          storage:\n            0: 0x01\n\n\n\n\n    - indexes:\n        data:\n        - :label lt_neg1_0\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001002:\n          storage:\n            0: 0x00\n\n\n\n\n    - indexes:\n        data:\n        - :label lt_0_neg1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001003:\n          storage:\n            0: 0x01\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmBitwiseLogicOperation/notFiller.yml",
    "content": "not:\n\n  # A test of not bitwise logic\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    0000000000000000000000000000000000001000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            [[0]] (not 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001001:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            [[0]] (not 2)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001002:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (def 'pow_2_256_min1\n              0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n            [[0]] (not pow_2_256_min1)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001003:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n          ; In evm arithmetic -2 = 256^2-2\n          ; 256^2-1 is in binary all ones\n          ; so 256^2-2 is all ones except for the least significant bit, which is 0\n          ; and  the not all zeros except for the least significant bit, which is 1\n          [[0]] (not (- 0 2))\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001004:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            ; -(2^256-1) = 1\n            ; not 1 is 0x ff...ffe\n            (def 'pow_2_256_min1\n              0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n            [[0]] (not (- 0 pow_2_256_min1))\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n\n    0000000000000000000000000000000000001005:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            ; not 00..00 is 11..11\n            [[0]] (not (- 0 0))\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (call 0xffffff (+ 0x1000 $4) 0 0 0 0 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n  transaction:\n    data:\n    - :label not_0             :abi f(uint) 0\n    - :label not_2             :abi f(uint) 1\n    - :label not_allones       :abi f(uint) 2\n    - :label not_neg2          :abi f(uint) 3\n    - :label not_neg_2_pow_256 :abi f(uint) 4\n    - :label not_neg0          :abi f(uint) 5\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n  expect:\n    - indexes:\n        data: :label not_0\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001000:\n          storage:\n            0: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n\n\n    - indexes:\n        data: :label not_2\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001001:\n          storage:\n            0: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd\n\n\n\n    - indexes:\n        data: :label not_allones\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001002:\n          storage:\n            0: 0x00\n\n\n\n    - indexes:\n        data: :label not_neg2\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001003:\n          storage:\n            0: 0x01\n\n\n\n    - indexes:\n        data: :label not_neg_2_pow_256\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001004:\n          storage:\n            0: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\n\n\n\n    - indexes:\n        data: :label not_neg0\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001005:\n          storage:\n            0: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmBitwiseLogicOperation/orFiller.yml",
    "content": "or:\n\n  # A test of or bitwise logic\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    0000000000000000000000000000000000001000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            [[0]] (or 2 2)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001001:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            [[0]] (or 2 1)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001002:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            [[0]] (or 3 1)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001003:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            ; \"or 0xfff..fff\" gives you 0xfff..fff\n            [[0]] (or\n                     0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n                     0x0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef\n                  )\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001004:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            ; \"or 0xfff..fff\" gives you 0xfff..fff\n            [[0]] (or\n                     0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\n                     0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n                  )\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001005:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            ; \"or 0xfff..fff\" gives you 0xfff..fff\n            [[0]] (or\n                     0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeefeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\n                     0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n                  )\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (call 0xffffff (+ 0x1000 $4) 0 0 0 0 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n  transaction:\n    data:\n    - :label or_2_2            :abi f(uint) 0\n    - :label or_2_1            :abi f(uint) 1\n    - :label or_3_1            :abi f(uint) 2\n    - :label or_allones_bignum :abi f(uint) 3\n    - :label or_allones_1110s  :abi f(uint) 4\n    - :label or_allones_eefee  :abi f(uint) 5\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n  expect:\n    - indexes:\n        data: :label or_2_2\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001000:\n          storage:\n            0: 0x02\n\n\n    - indexes:\n        data: :label or_2_1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001001:\n          storage:\n            0: 0x03\n\n\n    - indexes:\n        data: :label or_3_1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001002:\n          storage:\n            0: 0x03\n\n\n    - indexes:\n        data: :label or_allones_bignum\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001003:\n          storage:\n            0: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n\n    - indexes:\n        data: :label or_allones_1110s\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001004:\n          storage:\n            0: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n\n\n    - indexes:\n        data: :label or_allones_eefee\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001005:\n          storage:\n            0: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmBitwiseLogicOperation/sgtFiller.yml",
    "content": "sgt:\n\n  # A test of signed greater than (sgt)\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    0000000000000000000000000000000000001000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           ; (sgt a b) is true iff a>b\n           ; it is signed, so negative numbers are smaller than positive ones\n           [[0]] (sgt (- 0 2) 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001001:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            [[0]] (sgt 0 (- 0 2))\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001002:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (def 'pow_2_256_min1\n                 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n            [[0]] (sgt pow_2_256_min1 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001003:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (def 'pow_2_256_min1\n                 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n            [[0]] (sgt 0 pow_2_256_min1)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (call 0xffffff (+ 0x1000 $4) 0 0 0 0 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n  transaction:\n    data:\n    - :label sgt_neg2_0   :abi f(uint) 0\n    - :label sgt_0_neg2   :abi f(uint) 1\n    - :label sgt_neg1_0   :abi f(uint) 2\n    - :label sgt_0_neg1   :abi f(uint) 3\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n  expect:\n\n    - indexes:\n        data:\n        - :label sgt_neg2_0\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001000:\n          storage:\n            0: 0x00\n\n\n\n    - indexes:\n        data:\n        - :label sgt_0_neg2\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001001:\n          storage:\n            0: 0x01\n\n\n\n\n    - indexes:\n        data:\n        - :label sgt_neg1_0\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001002:\n          storage:\n            0: 0x00\n\n\n\n\n    - indexes:\n        data:\n        - :label sgt_0_neg1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001003:\n          storage:\n            0: 0x01\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmBitwiseLogicOperation/sltFiller.yml",
    "content": "slt:\n\n  # A test of signed lesser than (slt)\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    0000000000000000000000000000000000001000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           ; (slt a b) is true iff a<b\n           ; it is signed, so negative numbers are smaller than positive ones\n           [[0]] (slt (- 0 2) 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001001:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            [[0]] (slt 0 (- 0 2))\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001002:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (def 'pow_2_256_min1\n                 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n            [[0]] (slt pow_2_256_min1 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001003:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (def 'pow_2_256_min1\n                 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n            [[0]] (slt 0 pow_2_256_min1)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (call 0xffffff (+ 0x1000 $4) 0 0 0 0 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n  transaction:\n    data:\n    - :label slt_neg2_0   :abi f(uint) 0\n    - :label slt_0_neg2   :abi f(uint) 1\n    - :label slt_neg1_0   :abi f(uint) 2\n    - :label slt_0_neg1   :abi f(uint) 3\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n  expect:\n\n    - indexes:\n        data:\n        - :label slt_neg2_0\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001000:\n          storage:\n            0: 0x01\n\n\n\n    - indexes:\n        data:\n        - :label slt_0_neg2\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001001:\n          storage:\n            0: 0x00\n\n\n\n\n    - indexes:\n        data:\n        - :label slt_neg1_0\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001002:\n          storage:\n            0: 0x01\n\n\n\n\n    - indexes:\n        data:\n        - :label slt_0_neg1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001003:\n          storage:\n            0: 0x00\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmBitwiseLogicOperation/xorFiller.yml",
    "content": "xor:\n\n  # A test of xor bitwise logic\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    0000000000000000000000000000000000001000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            [[0]] (xor 2 2)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001001:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            [[0]] (xor 2 1)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001002:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            [[0]] (xor 3 1)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001003:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            ; \"xor 0xfff..fff\" is equivalent to not\n            [[0]] (xor\n                     0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n                     0x0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef\n                  )\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001004:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            ; \"or 0xfff..fff\" gives you 0xfff..fff\n            [[0]] (xor\n                     0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\n                     0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n                  )\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001005:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            ; \"or 0xfff..fff\" gives you 0xfff..fff\n            [[0]] (xor\n                     0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeefeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\n                     0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n                  )\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (call 0xffffff (+ 0x1000 $4) 0 0 0 0 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n  transaction:\n    data:\n    - :label xor_2_2            :abi f(uint) 0\n    - :label xor_2_1            :abi f(uint) 1\n    - :label xor_3_1            :abi f(uint) 2\n    - :label xor_allones_bignum :abi f(uint) 3\n    - :label xor_allones_1110s  :abi f(uint) 4\n    - :label xor_allones_eefee  :abi f(uint) 5\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n  expect:\n    - indexes:\n        data: :label xor_2_2\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001000:\n          storage:\n            0: 0x00\n\n\n    - indexes:\n        data: :label xor_2_1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001001:\n          storage:\n            0: 0x03\n\n\n    - indexes:\n        data: :label xor_3_1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001002:\n          storage:\n            0: 0x02\n\n\n    - indexes:\n        data: :label xor_allones_bignum\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001003:\n          storage:\n            0: 0xfedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210\n\n\n    - indexes:\n        data: :label xor_allones_1110s\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001004:\n          storage:\n            0: 0x1111111111111111111111111111111111111111111111111111111111111111\n\n\n\n    - indexes:\n        data: :label xor_allones_eefee\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001005:\n          storage:\n            0: 0x1111111111111111111111111111101111111111111111111111111111111111\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmIOandFlowOperations/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmIOandFlowOperations/codecopyFiller.yml",
    "content": "codecopy:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n\n    0000000000000000000000000000000000001000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           ; Copy our code into [[0]] and [[1]]\n           (codecopy 0 0 0x40)\n           [[0]] @0\n           [[1]] @0x20\n        }\n      nonce: '0'\n      storage: {}\n\n\n    # \"Infinite\" (-1 = 0xfff..ffff) buffer\n    0000000000000000000000000000000000001001:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           ; Copy our code into [[0]] and [[1]]\n           (codecopy 0 0 (- 0 1))\n           [[0]] @0\n           [[1]] @0x20\n        }\n      nonce: '0'\n      storage: {}\n\n\n    # Big but reasonable buffer\n    0000000000000000000000000000000000001002:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           ; Copy our code into [[0]] and [[1]]\n           (codecopy 0 0 0x1000)\n           [[0]] @0\n           [[1]] @0x20\n        }\n      nonce: '0'\n      storage: {}\n\n\n    # Do the copy in two buffer-loads\n    0000000000000000000000000000000000001003:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           ; Waste some space so we'll be over 0x20 bytes of code\n           [0x100] (+ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16)\n\n           ; Copy our code into [[0]] and [[1]]\n           (codecopy    0    0 0x20)\n           (codecopy 0x20 0x20 0x40)\n           [[0]] @0\n           [[1]] @0x20\n           [[2]] @0x40\n        }\n      nonce: '0'\n      storage: {}\n\n\n    # Check that CODECOPY works when there are special opcodes in the code\n    0000000000000000000000000000000000001004:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           ; Get our size\n           [[0xFF]] (codesize)\n\n           ; Copy our code to memory\n           (codecopy 0 0 @@0xFF)\n\n           ; Make it clear the storage we use gets overwritten\n           [[0]] 0x60A7\n           [[1]] 0x60A7\n           [[2]] 0x60A7\n\n           ; Copy the memory into storage\n           [[0]] @0x00\n           [[1]] @0x20\n           [[2]] @0x40\n           [[3]] @0x60\n           [[4]] @0x80\n           [[5]] @0xA0\n\n           ; Potentially problematic opcodes\n           (stop)\n           (selfdestruct 0xDEAD)\n           (return 0x0 @@0xFF)\n           (delegatecall 0xFF 0xEE 0xDD 0xCC 0xBB 0xAA)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (delegatecall 0xffffff (+ 0x1000 $4) 0 0 0 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n\n\n  transaction:\n    data:\n    - :label codecopy          :abi f(uint) 0\n\n    # \"Infinite\" (- 0 1) size buffer\n    - :label codecopy_infbuff  :abi f(uint) 1\n\n    # Big buffer\n    - :label codecopy_bigbuff  :abi f(uint) 2\n\n    # Copy the code in two steps\n    - :label codecopy_2buff    :abi f(uint) 3\n\n    # Prove we also copy the code for problematic opcodes\n    - :label codecopy_opcodes  :abi f(uint) 4\n\n\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n  expect:\n    - indexes:\n        data: :label codecopy\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n             0x00: 0x6040600060003960005160005560205160015500000000000000000000000000\n             0x01: 0x00\n\n\n\n\n    - indexes:\n        data: :label codecopy_bigbuff\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n             0x00: 0x6110006000600039600051600055602051600155000000000000000000000000\n             0x01: 0x00\n\n\n\n    - indexes:\n        data: :label codecopy_infbuff\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n             0x00: 0x00\n             0x01: 0x00\n\n\n\n    - indexes:\n        data: :label codecopy_2buff\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n             0x00: 0x6010600f600e600d600c600b600a600960086007600660056004600360026001\n             0x01: 0x0101010101010101010101010101016101005260206000600039604060206020\n             0x02: 0x3960005160005560205160015560405160025500000000000000000000000000\n\n\n\n    - indexes:\n        data: :label codecopy_opcodes\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n             0x00: 0x3860ff5560ff5460006000396160a76000556160a76001556160a76002556000\n             0x01: 0x5160005560205160015560405160025560605160035560805160045560a05160\n             0x02: 0x05550061deadff60ff546000f360aa60bb60cc60dd60ee60fff4000000000000\n             0xFF: 0x5b     # (codesize)\n\n             # You can use https://etherscan.io/opcode-tool\n             # to see this code includes the opcodes suspected by #130\n             # https://github.com/ethereum/tests/issues/130\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmIOandFlowOperations/gasFiller.yml",
    "content": "# Check the value of the program counter\n#\n# Note: The original tests also had gasOverFlow, but I didn't\n#       see it doing anything relevant, so I didn't copy it\n\ngas:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    0000000000000000000000000000000000001000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [0]  0xffffffffff\n           [90] 0xeeee\n           [[0]] (gas)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001001:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (gas)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    # Using DELEGATECALL lets us group results together, because everything\n    # is written to the same storage.\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (delegatecall (gas) (+ 0x1000 $4) 0 0 0 0)\n        }\n      nonce: '0'\n      storage:\n        0x00: 0x0BAD\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: 0x100000000000\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n\n\n  transaction:\n    data:\n    - :label gas1 :abi f(uint) 0\n    - :label gas2 :abi f(uint) 1\n    gasLimit:\n    - '80000000'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n  expect:\n    # gas1 has a different cost because the cost of memory access changed\n    # between Istanbul and Berlin\n    #\n    # The change in the cost of SSTORE doesn't matter, because it happens\n    # AFTER the (gas)\n\n    - indexes:\n        data:\n        - :label gas1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun<Osaka'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 0x04b1457b\n\n\n\n    - indexes:\n        data:\n        - :label gas2\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun<Osaka'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 0x04b1458d\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmIOandFlowOperations/jumpFiller.yml",
    "content": "# Various jumps\n\njump:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    # This should fail (jump to something that isn't a JUMPDEST)\n    0000000000000000000000000000000000001000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n          [[0]] 0x600D\n          (asm 0x10 0x20 mul jump jumpdest)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    # This should fail (jumpi to something that isn't a JUMPDEST)\n    0000000000000000000000000000000000001001:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n          [[0]] 0x600D\n          (asm 0x01 0x10 0x20 mul jumpi jumpdest)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    # Jump to after the STOP. Shouldn't be a problem\n    0000000000000000000000000000000000001002:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      # 0  PUSH1 0x04\n      # 2  JUMP\n      # 3  STOP\n      # 4  JUMPDEST\n      # 5  PUSH2 0x600D\n      # 8  PUSH1 0x00\n      # A  SSTORE\n      # B  STOP\n      code: :raw 0x600456005B61600D60005500\n      nonce: '0'\n      storage: {}\n\n\n    # This should fail (the old jumpHigh)\n    0000000000000000000000000000000000001003:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n          [[0]] 0x600D\n          (asm 0x0fffffff jump)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    # The old jump0_AfterJumpdest\n    0000000000000000000000000000000000001004:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      #  0  PUSH1 0x23\n      #  2  PUSH1 0x08\n      #  4  JUMP\n      #  5  PUSH1 0x01\n      #  7  JUMPDEST\n      #  8  PUSH1 0x02\n      #  A  SSTORE\n      code: :raw 0x602360085660015b600255\n      nonce: '0'\n      storage: {}\n\n\n    # Endless loop (well, endless until it runs out of gas, so mostly endless)\n    0000000000000000000000000000000000001005:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      #  0  PUSH2 0x600D\n      #  3  PUSH1 0x00\n      #  5  SSTORE\n      #  6  JUMPDEST\n      #  7  PUSH1 0x06\n      #  9  JUMP\n      code: :raw 0x61600D6000555B600656\n      nonce: '0'\n      storage: {}\n\n\n    # Skip an opcode with jump, see it doesn't run\n    0000000000000000000000000000000000001006:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      #  0  PUSH2 0x600D\n      #  3  PUSH1 0x08\n      #  5  JUMP\n      #  6  PUSH1 0xFF\n      #  8  JUMPDEST\n      #  9  PUSH1 0x00\n      #  B  SSTORE\n      code: :raw 0x61600D60085660FF5B600055\n      nonce: '0'\n      storage: {}\n\n\n\n    # Jump backwards, see that works too\n    0000000000000000000000000000000000001007:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      #  0  PUSH1 0x0B\n      #  2  JUMP\n      #  3  JUMPDEST\n      #  4  PUSH2 0x600D\n      #  7  PUSH1 0x00\n      #  9  SSTORE\n      #  A  STOP\n      #  B  JUMPDEST\n      #  C  PUSH1 0x03\n      #  E  JUMP\n      code: :raw 0x600B565B61600D600055005B600356\n      nonce: '0'\n      storage: {}\n\n\n\n    # Dynamic jump\n    0000000000000000000000000000000000001008:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      #  0  PUSH1 0x05\n      #  2  PUSH1 0x02\n      #  4  ADD\n      #  5  JUMP\n      #  6  STOP\n      #  7  JUMPDEST\n      #  8  PUSH2 0x600D\n      #  B  PUSH1 0x00\n      #  D  SSTORE\n      code: :raw 0x600260050156005B61600D600055\n      nonce: '0'\n      storage: {}\n\n\n    # Jump to the data of a push, when it just happens to be\n    # 0x5B (jumpdest)\n    #\n    # Amazingly, but correctly, this fails\n    0000000000000000000000000000000000001009:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      #  0  PUSH1 0x05\n      #  2  JUMP\n      #  3  STOP\n      #  4  PUSH1 0x5B\n      #  6  PUSH2 0x600D\n      #  9  PUSH1 0x00\n      #  B  SSTORE\n      code: :raw 0x60055600605B61600D600055\n      nonce: '0'\n      storage: {}\n\n\n\n    # Jump to the data of a push, when it isn't a 0x5B (JUMPDEST)\n    000000000000000000000000000000000000100A:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      #  0  PUSH1 0x05\n      #  2  JUMP\n      #  3  STOP\n      #  4  PUSH1 0x01\n      #  6  PUSH2 0x600D\n      #  9  PUSH1 0x00\n      #  B  SSTORE\n      code: :raw 0x60055600600161600D600055\n      nonce: '0'\n      storage: {}\n\n\n    # Jump one instruction after the JUMPDEST\n    000000000000000000000000000000000000100B:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      #  0  PUSH2 0x600D\n      #  3  PUSH1 0x00\n      #  5  SSTORE\n      #  6  PUSH1 0x0B\n      #  8  JUMP\n      #  9  GAS\n      #  A  JUMMPDEST\n      #  B  GAS\n      #  C  PUSH1 0x01\n      #  E  SSTORE\n      code: :raw 0x61600D600055600B565A5B5A600155\n      nonce: '0'\n      storage: {}\n\n\n    # Jump one instruction before the JUMPDEST\n    000000000000000000000000000000000000100C:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      #  0  PUSH2 0x600D\n      #  3  PUSH1 0x00\n      #  5  SSTORE\n      #  6  PUSH1 0x09\n      #  8  JUMP\n      #  9  GAS\n      #  A  JUMMPDEST\n      #  B  GAS\n      #  C  PUSH1 0x01\n      #  E  SSTORE\n      code: :raw 0x61600D6000556009565A5B5A600155\n      nonce: '0'\n      storage: {}\n\n\n    # Another jump into hyperspace\n    # The old jumpToUint64maxPlus1\n    000000000000000000000000000000000000100D:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      # [ 0] PUSH9 0x01000000000000000b\n      # [ A] JUMP\n      # [ B] JUMPDEST\n      # [ C] JUMPDEST\n      # [ D] PUSH1 0x01\n      # [ F] PUSH1 0x01\n      # [11] SSTORE\n      code: :raw 0x6801000000000000000b565b5b6001600155\n      nonce: '0'\n      storage: {}\n\n\n    # Another jump into hyperspace\n    # The old jumpToUintmaxPlus1\n    000000000000000000000000000000000000100E:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      # [ 0] PUSH5 0x0100000007\n      # [ 6] JUMP\n      # [ 7] JUMPDEST\n      # [ 8] JUMPDEST\n      # [ 9] PUSH1 0x01\n      # [ B] PUSH1 0x01\n      # [ D] SSTORE\n      code: :raw 0x640100000007565b5b6001600155\n      nonce: '0'\n      storage: {}\n\n\n    # The furthest into hyperspace jump imaginable: to -1\n    000000000000000000000000000000000000100F:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n          @0 (- 0 1)\n          (asm 0 mload jump 0x600D 0x00 sstore)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    # Jump into a big list of JUMPDESTs\n    0000000000000000000000000000000000001010:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      #  0 PUSH1 0x0e\n      #  2 JUMP\n      #  3 JUMPDEST\n      #  4 JUMPDEST\n      #  .\n      #  .\n      #  .\n      # 12 JUMPDEST\n      # 13 PUSH2 0x600D\n      # 16 PUSH1 0x00\n      # 18 SSTORE\n      code: :raw 0x600E565B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B61600D600055\n      nonce: '0'\n      storage: {}\n\n\n\n    # Using DELEGATECALL lets us group results together, because everything\n    # is written to the same storage.\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            ; limited gas because of the endless loop\n            (delegatecall 0x10000 (+ 0x1000 $4) 0 0 0 0)\n        }\n      nonce: '0'\n      storage:\n        0x00: 0x0BAD\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: 0x100000000000\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n\n\n  transaction:\n    data:\n    # The two old bad_indirect_jump tests\n    - :label jump-hyperspace    :abi f(uint) 0\n    - :label jump-hyperspace    :abi f(uint) 1\n\n    # The old jump to after the STOP\n    - :label jump-stop-dest     :abi f(uint) 2\n\n    # The old jumpHigh\n    - :label jump-hyperspace    :abi f(uint) 3\n\n    # The old jump0_AfterJumpdest\n    - :label jump-not-jumpdest  :abi f(uint) 4\n\n    # \"Endless\" loop  (not really endless, it just runs out of gas)\n    - :label endless-loop       :abi f(uint) 5\n\n\n    # Just checking JUMP / JUMPDEST is various ways\n    - :label jump-dest          :abi f(uint) 6\n    - :label jump-dest          :abi f(uint) 7\n\n    # A dynamic jump\n    - :label jump-dynamic       :abi f(uint) 8\n\n    # Jump into push (this fails, even if you jump to a 0x5B)\n    - :label jump-2-push        :abi f(uint) 9\n    - :label jump-2-push        :abi f(uint) 10\n\n    # JUMP one instruction before or after the JUMPDEST\n    - :label jump-not-jumpdest  :abi f(uint) 11\n    - :label jump-not-jumpdest  :abi f(uint) 12\n\n    # The old jumpToUint64maxPlus1\n    - :label jump-hyperspace    :abi f(uint) 13\n\n    # The old jumpToUintmaxPlus1\n    - :label jump-hyperspace    :abi f(uint) 14\n\n    # Jump to -1  (aka 0xfff...ffff)\n    - :label jump-hyperspace    :abi f(uint) 15\n\n    # Jump to the middle of a JUMPDEST list\n    - :label jump-to-list       :abi f(uint) 16\n\n\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n  expect:\n    - indexes:\n        data:\n        - :label jump-hyperspace\n        - :label jump-not-jumpdest\n        - :label endless-loop\n        - :label jump-2-push\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 0x0BAD\n\n\n\n    - indexes:\n        data:\n        - :label jump-stop-dest\n        - :label jump-dest\n        - :label jump-dynamic\n        - :label jump-to-list\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 0x600D\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmIOandFlowOperations/jumpToPushFiller.yml",
    "content": "# All boundary combinations for opcodes PUSH1-PUSH32 that attempt to\n# jump and execute into a portion of a push opcode data.\n\njumpToPush:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  pre:\n    \n    # PUSH1 - A: OK\n    000000000000000000000000000000000000001A:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x0A (JUMPDEST location)\n      #  07         JUMP\n      #  08-09      PUSH1 0x5B\n      #  0A         JUMPDEST\n      code: :raw 0x6001600055600A56605B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH1 - B: FAIL\n    000000000000000000000000000000000000001B:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x09 (PUSH data location)\n      #  07         JUMP\n      #  08-09      PUSH1 0x5B\n      #  0A         JUMPDEST\n      code: :raw 0x6001600055600956605B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH2 - A: OK\n    000000000000000000000000000000000000002A:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x0B (JUMPDEST location)\n      #  07         JUMP\n      #  08-0A      PUSH2 0x5B5B\n      #  0B         JUMPDEST\n      code: :raw 0x6001600055600B56615B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH2 - B: FAIL\n    000000000000000000000000000000000000002B:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x09 (Start of PUSH data location)\n      #  07         JUMP\n      #  08-0A      PUSH2 0x5B5B\n      #  0B         JUMPDEST\n      code: :raw 0x6001600055600956615B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH2 - C: FAIL\n    000000000000000000000000000000000000002C:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x0A (End of PUSH data location)\n      #  07         JUMP\n      #  08-0A      PUSH2 0x5B5B\n      #  0B         JUMPDEST\n      code: :raw 0x6001600055600A56615B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH3 - A: OK\n    000000000000000000000000000000000000003A:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x0C (JUMPDEST location)\n      #  07         JUMP\n      #  08-0B      PUSH3 0x5B5B5B\n      #  0C         JUMPDEST\n      code: :raw 0x6001600055600C56625B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH3 - B: FAIL\n    000000000000000000000000000000000000003B:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x09 (Start of PUSH data location)\n      #  07         JUMP\n      #  08-0B      PUSH3 0x5B5B5B\n      #  0C         JUMPDEST\n      code: :raw 0x6001600055600956625B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH3 - C: FAIL\n    000000000000000000000000000000000000003C:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x0B (End of PUSH data location)\n      #  07         JUMP\n      #  08-0B      PUSH3 0x5B5B5B\n      #  0C         JUMPDEST\n      code: :raw 0x6001600055600B56625B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH4 - A: OK\n    000000000000000000000000000000000000004A:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x0D (JUMPDEST location)\n      #  07         JUMP\n      #  08-0C      PUSH4 0x5B5B...5B\n      #  0D         JUMPDEST\n      code: :raw 0x6001600055600D56635B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH4 - B: FAIL\n    000000000000000000000000000000000000004B:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x09 (Start of PUSH data location)\n      #  07         JUMP\n      #  08-0C      PUSH4 0x5B5B...5B\n      #  0D         JUMPDEST\n      code: :raw 0x6001600055600956635B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH4 - C: FAIL\n    000000000000000000000000000000000000004C:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x0C (End of PUSH data location)\n      #  07         JUMP\n      #  08-0C      PUSH4 0x5B5B...5B\n      #  0D         JUMPDEST\n      code: :raw 0x6001600055600C56635B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH5 - A: OK\n    000000000000000000000000000000000000005A:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x0E (JUMPDEST location)\n      #  07         JUMP\n      #  08-0D      PUSH5 0x5B5B...5B\n      #  0E         JUMPDEST\n      code: :raw 0x6001600055600E56645B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH5 - B: FAIL\n    000000000000000000000000000000000000005B:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x09 (Start of PUSH data location)\n      #  07         JUMP\n      #  08-0D      PUSH5 0x5B5B...5B\n      #  0E         JUMPDEST\n      code: :raw 0x6001600055600956645B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH5 - C: FAIL\n    000000000000000000000000000000000000005C:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x0D (End of PUSH data location)\n      #  07         JUMP\n      #  08-0D      PUSH5 0x5B5B...5B\n      #  0E         JUMPDEST\n      code: :raw 0x6001600055600D56645B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH6 - A: OK\n    000000000000000000000000000000000000006A:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x0F (JUMPDEST location)\n      #  07         JUMP\n      #  08-0E      PUSH6 0x5B5B...5B\n      #  0F         JUMPDEST\n      code: :raw 0x6001600055600F56655B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH6 - B: FAIL\n    000000000000000000000000000000000000006B:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x09 (Start of PUSH data location)\n      #  07         JUMP\n      #  08-0E      PUSH6 0x5B5B...5B\n      #  0F         JUMPDEST\n      code: :raw 0x6001600055600956655B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH6 - C: FAIL\n    000000000000000000000000000000000000006C:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x0E (End of PUSH data location)\n      #  07         JUMP\n      #  08-0E      PUSH6 0x5B5B...5B\n      #  0F         JUMPDEST\n      code: :raw 0x6001600055600E56655B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH7 - A: OK\n    000000000000000000000000000000000000007A:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x10 (JUMPDEST location)\n      #  07         JUMP\n      #  08-0F      PUSH7 0x5B5B...5B\n      #  10         JUMPDEST\n      code: :raw 0x6001600055601056665B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH7 - B: FAIL\n    000000000000000000000000000000000000007B:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x09 (Start of PUSH data location)\n      #  07         JUMP\n      #  08-0F      PUSH7 0x5B5B...5B\n      #  10         JUMPDEST\n      code: :raw 0x6001600055600956665B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH7 - C: FAIL\n    000000000000000000000000000000000000007C:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x0F (End of PUSH data location)\n      #  07         JUMP\n      #  08-0F      PUSH7 0x5B5B...5B\n      #  10         JUMPDEST\n      code: :raw 0x6001600055600F56665B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH8 - A: OK\n    000000000000000000000000000000000000008A:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x11 (JUMPDEST location)\n      #  07         JUMP\n      #  08-10      PUSH8 0x5B5B...5B\n      #  11         JUMPDEST\n      code: :raw 0x6001600055601156675B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH8 - B: FAIL\n    000000000000000000000000000000000000008B:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x09 (Start of PUSH data location)\n      #  07         JUMP\n      #  08-10      PUSH8 0x5B5B...5B\n      #  11         JUMPDEST\n      code: :raw 0x6001600055600956675B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH8 - C: FAIL\n    000000000000000000000000000000000000008C:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x10 (End of PUSH data location)\n      #  07         JUMP\n      #  08-10      PUSH8 0x5B5B...5B\n      #  11         JUMPDEST\n      code: :raw 0x6001600055601056675B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH9 - A: OK\n    000000000000000000000000000000000000009A:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x12 (JUMPDEST location)\n      #  07         JUMP\n      #  08-11      PUSH9 0x5B5B...5B\n      #  12         JUMPDEST\n      code: :raw 0x6001600055601256685B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH9 - B: FAIL\n    000000000000000000000000000000000000009B:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x09 (Start of PUSH data location)\n      #  07         JUMP\n      #  08-11      PUSH9 0x5B5B...5B\n      #  12         JUMPDEST\n      code: :raw 0x6001600055600956685B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH9 - C: FAIL\n    000000000000000000000000000000000000009C:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x11 (End of PUSH data location)\n      #  07         JUMP\n      #  08-11      PUSH9 0x5B5B...5B\n      #  12         JUMPDEST\n      code: :raw 0x6001600055601156685B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH10 - A: OK\n    00000000000000000000000000000000000000AA:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x13 (JUMPDEST location)\n      #  07         JUMP\n      #  08-12      PUSH10 0x5B5B...5B\n      #  13         JUMPDEST\n      code: :raw 0x6001600055601356695B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH10 - B: FAIL\n    00000000000000000000000000000000000000AB:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x09 (Start of PUSH data location)\n      #  07         JUMP\n      #  08-12      PUSH10 0x5B5B...5B\n      #  13         JUMPDEST\n      code: :raw 0x6001600055600956695B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH10 - C: FAIL\n    00000000000000000000000000000000000000AC:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x12 (End of PUSH data location)\n      #  07         JUMP\n      #  08-12      PUSH10 0x5B5B...5B\n      #  13         JUMPDEST\n      code: :raw 0x6001600055601256695B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH11 - A: OK\n    00000000000000000000000000000000000000BA:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x14 (JUMPDEST location)\n      #  07         JUMP\n      #  08-13      PUSH11 0x5B5B...5B\n      #  14         JUMPDEST\n      code: :raw 0x60016000556014566A5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH11 - B: FAIL\n    00000000000000000000000000000000000000BB:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x09 (Start of PUSH data location)\n      #  07         JUMP\n      #  08-13      PUSH11 0x5B5B...5B\n      #  14         JUMPDEST\n      code: :raw 0x60016000556009566A5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH11 - C: FAIL\n    00000000000000000000000000000000000000BC:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x13 (End of PUSH data location)\n      #  07         JUMP\n      #  08-13      PUSH11 0x5B5B...5B\n      #  14         JUMPDEST\n      code: :raw 0x60016000556013566A5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH12 - A: OK\n    00000000000000000000000000000000000000CA:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x15 (JUMPDEST location)\n      #  07         JUMP\n      #  08-14      PUSH12 0x5B5B...5B\n      #  15         JUMPDEST\n      code: :raw 0x60016000556015566B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH12 - B: FAIL\n    00000000000000000000000000000000000000CB:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x09 (Start of PUSH data location)\n      #  07         JUMP\n      #  08-14      PUSH12 0x5B5B...5B\n      #  15         JUMPDEST\n      code: :raw 0x60016000556009566B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH12 - C: FAIL\n    00000000000000000000000000000000000000CC:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x14 (End of PUSH data location)\n      #  07         JUMP\n      #  08-14      PUSH12 0x5B5B...5B\n      #  15         JUMPDEST\n      code: :raw 0x60016000556014566B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH13 - A: OK\n    00000000000000000000000000000000000000DA:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x16 (JUMPDEST location)\n      #  07         JUMP\n      #  08-15      PUSH13 0x5B5B...5B\n      #  16         JUMPDEST\n      code: :raw 0x60016000556016566C5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH13 - B: FAIL\n    00000000000000000000000000000000000000DB:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x09 (Start of PUSH data location)\n      #  07         JUMP\n      #  08-15      PUSH13 0x5B5B...5B\n      #  16         JUMPDEST\n      code: :raw 0x60016000556009566C5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH13 - C: FAIL\n    00000000000000000000000000000000000000DC:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x15 (End of PUSH data location)\n      #  07         JUMP\n      #  08-15      PUSH13 0x5B5B...5B\n      #  16         JUMPDEST\n      code: :raw 0x60016000556015566C5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH14 - A: OK\n    00000000000000000000000000000000000000EA:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x17 (JUMPDEST location)\n      #  07         JUMP\n      #  08-16      PUSH14 0x5B5B...5B\n      #  17         JUMPDEST\n      code: :raw 0x60016000556017566D5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH14 - B: FAIL\n    00000000000000000000000000000000000000EB:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x09 (Start of PUSH data location)\n      #  07         JUMP\n      #  08-16      PUSH14 0x5B5B...5B\n      #  17         JUMPDEST\n      code: :raw 0x60016000556009566D5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH14 - C: FAIL\n    00000000000000000000000000000000000000EC:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x16 (End of PUSH data location)\n      #  07         JUMP\n      #  08-16      PUSH14 0x5B5B...5B\n      #  17         JUMPDEST\n      code: :raw 0x60016000556016566D5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH15 - A: OK\n    00000000000000000000000000000000000000FA:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x18 (JUMPDEST location)\n      #  07         JUMP\n      #  08-17      PUSH15 0x5B5B...5B\n      #  18         JUMPDEST\n      code: :raw 0x60016000556018566E5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH15 - B: FAIL\n    00000000000000000000000000000000000000FB:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x09 (Start of PUSH data location)\n      #  07         JUMP\n      #  08-17      PUSH15 0x5B5B...5B\n      #  18         JUMPDEST\n      code: :raw 0x60016000556009566E5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH15 - C: FAIL\n    00000000000000000000000000000000000000FC:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x17 (End of PUSH data location)\n      #  07         JUMP\n      #  08-17      PUSH15 0x5B5B...5B\n      #  18         JUMPDEST\n      code: :raw 0x60016000556017566E5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH16 - A: OK\n    000000000000000000000000000000000000010A:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x19 (JUMPDEST location)\n      #  07         JUMP\n      #  08-18      PUSH16 0x5B5B...5B\n      #  19         JUMPDEST\n      code: :raw 0x60016000556019566F5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH16 - B: FAIL\n    000000000000000000000000000000000000010B:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x09 (Start of PUSH data location)\n      #  07         JUMP\n      #  08-18      PUSH16 0x5B5B...5B\n      #  19         JUMPDEST\n      code: :raw 0x60016000556009566F5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH16 - C: FAIL\n    000000000000000000000000000000000000010C:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x18 (End of PUSH data location)\n      #  07         JUMP\n      #  08-18      PUSH16 0x5B5B...5B\n      #  19         JUMPDEST\n      code: :raw 0x60016000556018566F5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH17 - A: OK\n    000000000000000000000000000000000000011A:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x1A (JUMPDEST location)\n      #  07         JUMP\n      #  08-19      PUSH17 0x5B5B...5B\n      #  1A         JUMPDEST\n      code: :raw 0x6001600055601A56705B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH17 - B: FAIL\n    000000000000000000000000000000000000011B:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x09 (Start of PUSH data location)\n      #  07         JUMP\n      #  08-19      PUSH17 0x5B5B...5B\n      #  1A         JUMPDEST\n      code: :raw 0x6001600055600956705B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH17 - C: FAIL\n    000000000000000000000000000000000000011C:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x19 (End of PUSH data location)\n      #  07         JUMP\n      #  08-19      PUSH17 0x5B5B...5B\n      #  1A         JUMPDEST\n      code: :raw 0x6001600055601956705B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH18 - A: OK\n    000000000000000000000000000000000000012A:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x1B (JUMPDEST location)\n      #  07         JUMP\n      #  08-1A      PUSH18 0x5B5B...5B\n      #  1B         JUMPDEST\n      code: :raw 0x6001600055601B56715B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH18 - B: FAIL\n    000000000000000000000000000000000000012B:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x09 (Start of PUSH data location)\n      #  07         JUMP\n      #  08-1A      PUSH18 0x5B5B...5B\n      #  1B         JUMPDEST\n      code: :raw 0x6001600055600956715B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH18 - C: FAIL\n    000000000000000000000000000000000000012C:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x1A (End of PUSH data location)\n      #  07         JUMP\n      #  08-1A      PUSH18 0x5B5B...5B\n      #  1B         JUMPDEST\n      code: :raw 0x6001600055601A56715B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH19 - A: OK\n    000000000000000000000000000000000000013A:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x1C (JUMPDEST location)\n      #  07         JUMP\n      #  08-1B      PUSH19 0x5B5B...5B\n      #  1C         JUMPDEST\n      code: :raw 0x6001600055601C56725B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH19 - B: FAIL\n    000000000000000000000000000000000000013B:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x09 (Start of PUSH data location)\n      #  07         JUMP\n      #  08-1B      PUSH19 0x5B5B...5B\n      #  1C         JUMPDEST\n      code: :raw 0x6001600055600956725B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH19 - C: FAIL\n    000000000000000000000000000000000000013C:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x1B (End of PUSH data location)\n      #  07         JUMP\n      #  08-1B      PUSH19 0x5B5B...5B\n      #  1C         JUMPDEST\n      code: :raw 0x6001600055601B56725B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH20 - A: OK\n    000000000000000000000000000000000000014A:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x1D (JUMPDEST location)\n      #  07         JUMP\n      #  08-1C      PUSH20 0x5B5B...5B\n      #  1D         JUMPDEST\n      code: :raw 0x6001600055601D56735B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH20 - B: FAIL\n    000000000000000000000000000000000000014B:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x09 (Start of PUSH data location)\n      #  07         JUMP\n      #  08-1C      PUSH20 0x5B5B...5B\n      #  1D         JUMPDEST\n      code: :raw 0x6001600055600956735B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH20 - C: FAIL\n    000000000000000000000000000000000000014C:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x1C (End of PUSH data location)\n      #  07         JUMP\n      #  08-1C      PUSH20 0x5B5B...5B\n      #  1D         JUMPDEST\n      code: :raw 0x6001600055601C56735B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH21 - A: OK\n    000000000000000000000000000000000000015A:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x1E (JUMPDEST location)\n      #  07         JUMP\n      #  08-1D      PUSH21 0x5B5B...5B\n      #  1E         JUMPDEST\n      code: :raw 0x6001600055601E56745B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH21 - B: FAIL\n    000000000000000000000000000000000000015B:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x09 (Start of PUSH data location)\n      #  07         JUMP\n      #  08-1D      PUSH21 0x5B5B...5B\n      #  1E         JUMPDEST\n      code: :raw 0x6001600055600956745B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH21 - C: FAIL\n    000000000000000000000000000000000000015C:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x1D (End of PUSH data location)\n      #  07         JUMP\n      #  08-1D      PUSH21 0x5B5B...5B\n      #  1E         JUMPDEST\n      code: :raw 0x6001600055601D56745B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH22 - A: OK\n    000000000000000000000000000000000000016A:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x1F (JUMPDEST location)\n      #  07         JUMP\n      #  08-1E      PUSH22 0x5B5B...5B\n      #  1F         JUMPDEST\n      code: :raw 0x6001600055601F56755B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH22 - B: FAIL\n    000000000000000000000000000000000000016B:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x09 (Start of PUSH data location)\n      #  07         JUMP\n      #  08-1E      PUSH22 0x5B5B...5B\n      #  1F         JUMPDEST\n      code: :raw 0x6001600055600956755B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH22 - C: FAIL\n    000000000000000000000000000000000000016C:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x1E (End of PUSH data location)\n      #  07         JUMP\n      #  08-1E      PUSH22 0x5B5B...5B\n      #  1F         JUMPDEST\n      code: :raw 0x6001600055601E56755B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH23 - A: OK\n    000000000000000000000000000000000000017A:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x20 (JUMPDEST location)\n      #  07         JUMP\n      #  08-1F      PUSH23 0x5B5B...5B\n      #  20         JUMPDEST\n      code: :raw 0x6001600055602056765B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH23 - B: FAIL\n    000000000000000000000000000000000000017B:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x09 (Start of PUSH data location)\n      #  07         JUMP\n      #  08-1F      PUSH23 0x5B5B...5B\n      #  20         JUMPDEST\n      code: :raw 0x6001600055600956765B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH23 - C: FAIL\n    000000000000000000000000000000000000017C:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x1F (End of PUSH data location)\n      #  07         JUMP\n      #  08-1F      PUSH23 0x5B5B...5B\n      #  20         JUMPDEST\n      code: :raw 0x6001600055601F56765B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH24 - A: OK\n    000000000000000000000000000000000000018A:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x21 (JUMPDEST location)\n      #  07         JUMP\n      #  08-20      PUSH24 0x5B5B...5B\n      #  21         JUMPDEST\n      code: :raw 0x6001600055602156775B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH24 - B: FAIL\n    000000000000000000000000000000000000018B:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x09 (Start of PUSH data location)\n      #  07         JUMP\n      #  08-20      PUSH24 0x5B5B...5B\n      #  21         JUMPDEST\n      code: :raw 0x6001600055600956775B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH24 - C: FAIL\n    000000000000000000000000000000000000018C:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x20 (End of PUSH data location)\n      #  07         JUMP\n      #  08-20      PUSH24 0x5B5B...5B\n      #  21         JUMPDEST\n      code: :raw 0x6001600055602056775B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH25 - A: OK\n    000000000000000000000000000000000000019A:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x22 (JUMPDEST location)\n      #  07         JUMP\n      #  08-21      PUSH25 0x5B5B...5B\n      #  22         JUMPDEST\n      code: :raw 0x6001600055602256785B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH25 - B: FAIL\n    000000000000000000000000000000000000019B:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x09 (Start of PUSH data location)\n      #  07         JUMP\n      #  08-21      PUSH25 0x5B5B...5B\n      #  22         JUMPDEST\n      code: :raw 0x6001600055600956785B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH25 - C: FAIL\n    000000000000000000000000000000000000019C:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x21 (End of PUSH data location)\n      #  07         JUMP\n      #  08-21      PUSH25 0x5B5B...5B\n      #  22         JUMPDEST\n      code: :raw 0x6001600055602156785B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH26 - A: OK\n    00000000000000000000000000000000000001AA:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x23 (JUMPDEST location)\n      #  07         JUMP\n      #  08-22      PUSH26 0x5B5B...5B\n      #  23         JUMPDEST\n      code: :raw 0x6001600055602356795B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH26 - B: FAIL\n    00000000000000000000000000000000000001AB:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x09 (Start of PUSH data location)\n      #  07         JUMP\n      #  08-22      PUSH26 0x5B5B...5B\n      #  23         JUMPDEST\n      code: :raw 0x6001600055600956795B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH26 - C: FAIL\n    00000000000000000000000000000000000001AC:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x22 (End of PUSH data location)\n      #  07         JUMP\n      #  08-22      PUSH26 0x5B5B...5B\n      #  23         JUMPDEST\n      code: :raw 0x6001600055602256795B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH27 - A: OK\n    00000000000000000000000000000000000001BA:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x24 (JUMPDEST location)\n      #  07         JUMP\n      #  08-23      PUSH27 0x5B5B...5B\n      #  24         JUMPDEST\n      code: :raw 0x60016000556024567A5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH27 - B: FAIL\n    00000000000000000000000000000000000001BB:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x09 (Start of PUSH data location)\n      #  07         JUMP\n      #  08-23      PUSH27 0x5B5B...5B\n      #  24         JUMPDEST\n      code: :raw 0x60016000556009567A5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH27 - C: FAIL\n    00000000000000000000000000000000000001BC:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x23 (End of PUSH data location)\n      #  07         JUMP\n      #  08-23      PUSH27 0x5B5B...5B\n      #  24         JUMPDEST\n      code: :raw 0x60016000556023567A5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH28 - A: OK\n    00000000000000000000000000000000000001CA:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x25 (JUMPDEST location)\n      #  07         JUMP\n      #  08-24      PUSH28 0x5B5B...5B\n      #  25         JUMPDEST\n      code: :raw 0x60016000556025567B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH28 - B: FAIL\n    00000000000000000000000000000000000001CB:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x09 (Start of PUSH data location)\n      #  07         JUMP\n      #  08-24      PUSH28 0x5B5B...5B\n      #  25         JUMPDEST\n      code: :raw 0x60016000556009567B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH28 - C: FAIL\n    00000000000000000000000000000000000001CC:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x24 (End of PUSH data location)\n      #  07         JUMP\n      #  08-24      PUSH28 0x5B5B...5B\n      #  25         JUMPDEST\n      code: :raw 0x60016000556024567B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH29 - A: OK\n    00000000000000000000000000000000000001DA:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x26 (JUMPDEST location)\n      #  07         JUMP\n      #  08-25      PUSH29 0x5B5B...5B\n      #  26         JUMPDEST\n      code: :raw 0x60016000556026567C5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH29 - B: FAIL\n    00000000000000000000000000000000000001DB:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x09 (Start of PUSH data location)\n      #  07         JUMP\n      #  08-25      PUSH29 0x5B5B...5B\n      #  26         JUMPDEST\n      code: :raw 0x60016000556009567C5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH29 - C: FAIL\n    00000000000000000000000000000000000001DC:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x25 (End of PUSH data location)\n      #  07         JUMP\n      #  08-25      PUSH29 0x5B5B...5B\n      #  26         JUMPDEST\n      code: :raw 0x60016000556025567C5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH30 - A: OK\n    00000000000000000000000000000000000001EA:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x27 (JUMPDEST location)\n      #  07         JUMP\n      #  08-26      PUSH30 0x5B5B...5B\n      #  27         JUMPDEST\n      code: :raw 0x60016000556027567D5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH30 - B: FAIL\n    00000000000000000000000000000000000001EB:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x09 (Start of PUSH data location)\n      #  07         JUMP\n      #  08-26      PUSH30 0x5B5B...5B\n      #  27         JUMPDEST\n      code: :raw 0x60016000556009567D5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH30 - C: FAIL\n    00000000000000000000000000000000000001EC:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x26 (End of PUSH data location)\n      #  07         JUMP\n      #  08-26      PUSH30 0x5B5B...5B\n      #  27         JUMPDEST\n      code: :raw 0x60016000556026567D5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH31 - A: OK\n    00000000000000000000000000000000000001FA:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x28 (JUMPDEST location)\n      #  07         JUMP\n      #  08-27      PUSH31 0x5B5B...5B\n      #  28         JUMPDEST\n      code: :raw 0x60016000556028567E5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH31 - B: FAIL\n    00000000000000000000000000000000000001FB:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x09 (Start of PUSH data location)\n      #  07         JUMP\n      #  08-27      PUSH31 0x5B5B...5B\n      #  28         JUMPDEST\n      code: :raw 0x60016000556009567E5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH31 - C: FAIL\n    00000000000000000000000000000000000001FC:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x27 (End of PUSH data location)\n      #  07         JUMP\n      #  08-27      PUSH31 0x5B5B...5B\n      #  28         JUMPDEST\n      code: :raw 0x60016000556027567E5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH32 - A: OK\n    000000000000000000000000000000000000020A:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x29 (JUMPDEST location)\n      #  07         JUMP\n      #  08-28      PUSH32 0x5B5B...5B\n      #  29         JUMPDEST\n      code: :raw 0x60016000556029567F5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH32 - B: FAIL\n    000000000000000000000000000000000000020B:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x09 (Start of PUSH data location)\n      #  07         JUMP\n      #  08-28      PUSH32 0x5B5B...5B\n      #  29         JUMPDEST\n      code: :raw 0x60016000556009567F5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n    # PUSH32 - C: FAIL\n    000000000000000000000000000000000000020C:\n      balance: 0\n      #  Bytes      Opcode\n      #  Location\n      #  --------   ----------\n      #  00-01      PUSH1 0x01\n      #  02-03      PUSH1 0x00\n      #  04         SSTORE\n      #  05-06      PUSH1 0x28 (End of PUSH data location)\n      #  07         JUMP\n      #  08-28      PUSH32 0x5B5B...5B\n      #  29         JUMPDEST\n      code: :raw 0x60016000556028567F5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B\n      nonce: '0'\n      storage: {}\n\n\n\n    \n    # DelegateCall to the test contract\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: 0\n      code: |\n        :yul berlin {\n          let addr := calldataload(4)\n          pop(delegatecall(sub(gas(), 5000), addr, 0, 0, 0, 0))\n        }\n      # pop(delegatecall(gas(), addr, 0, 0, 0, 0))\n      nonce: '0'\n      storage:\n        0x00: 0x00\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: 0x100000000000\n      code: '0x'\n      nonce: '0'\n      storage: {}\n      \n\n  transaction:\n    data:\n    # All contracts ending with A will succeed:\n    # Jump right after the data portion ends.\n    - :label jump-ok      :abi f(uint) 0x01A\n    - :label jump-ok      :abi f(uint) 0x02A\n    - :label jump-ok      :abi f(uint) 0x03A\n    - :label jump-ok      :abi f(uint) 0x04A\n    - :label jump-ok      :abi f(uint) 0x05A\n    - :label jump-ok      :abi f(uint) 0x06A\n    - :label jump-ok      :abi f(uint) 0x07A\n    - :label jump-ok      :abi f(uint) 0x08A\n    - :label jump-ok      :abi f(uint) 0x09A\n    - :label jump-ok      :abi f(uint) 0x0AA\n    - :label jump-ok      :abi f(uint) 0x0BA\n    - :label jump-ok      :abi f(uint) 0x0CA\n    - :label jump-ok      :abi f(uint) 0x0DA\n    - :label jump-ok      :abi f(uint) 0x0EA\n    - :label jump-ok      :abi f(uint) 0x0FA\n    - :label jump-ok      :abi f(uint) 0x10A\n    - :label jump-ok      :abi f(uint) 0x11A\n    - :label jump-ok      :abi f(uint) 0x12A\n    - :label jump-ok      :abi f(uint) 0x13A\n    - :label jump-ok      :abi f(uint) 0x14A\n    - :label jump-ok      :abi f(uint) 0x15A\n    - :label jump-ok      :abi f(uint) 0x16A\n    - :label jump-ok      :abi f(uint) 0x17A\n    - :label jump-ok      :abi f(uint) 0x18A\n    - :label jump-ok      :abi f(uint) 0x19A\n    - :label jump-ok      :abi f(uint) 0x20A\n\n    # All contracts ending with B/C will produce exception\n    # B: Jump to the first byte of the data portion.\n    # C: Jump to the last byte of the data portion.\n    - :label jump-fail    :abi f(uint) 0x01C\n    - :label jump-fail    :abi f(uint) 0x02C\n    - :label jump-fail    :abi f(uint) 0x03C\n    - :label jump-fail    :abi f(uint) 0x04C\n    - :label jump-fail    :abi f(uint) 0x05C\n    - :label jump-fail    :abi f(uint) 0x06C\n    - :label jump-fail    :abi f(uint) 0x07C\n    - :label jump-fail    :abi f(uint) 0x08C\n    - :label jump-fail    :abi f(uint) 0x09C\n    - :label jump-fail    :abi f(uint) 0x0AC\n    - :label jump-fail    :abi f(uint) 0x0BC\n    - :label jump-fail    :abi f(uint) 0x0CC\n    - :label jump-fail    :abi f(uint) 0x0DC\n    - :label jump-fail    :abi f(uint) 0x0EC\n    - :label jump-fail    :abi f(uint) 0x0FC\n    - :label jump-fail    :abi f(uint) 0x10C\n    - :label jump-fail    :abi f(uint) 0x11C\n    - :label jump-fail    :abi f(uint) 0x12C\n    - :label jump-fail    :abi f(uint) 0x13C\n    - :label jump-fail    :abi f(uint) 0x14C\n    - :label jump-fail    :abi f(uint) 0x15C\n    - :label jump-fail    :abi f(uint) 0x16C\n    - :label jump-fail    :abi f(uint) 0x17C\n    - :label jump-fail    :abi f(uint) 0x18C\n    - :label jump-fail    :abi f(uint) 0x19C\n    - :label jump-fail    :abi f(uint) 0x20C\n\n    - :label jump-fail    :abi f(uint) 0x01C\n    - :label jump-fail    :abi f(uint) 0x02C\n    - :label jump-fail    :abi f(uint) 0x03C\n    - :label jump-fail    :abi f(uint) 0x04C\n    - :label jump-fail    :abi f(uint) 0x05C\n    - :label jump-fail    :abi f(uint) 0x06C\n    - :label jump-fail    :abi f(uint) 0x07C\n    - :label jump-fail    :abi f(uint) 0x08C\n    - :label jump-fail    :abi f(uint) 0x09C\n    - :label jump-fail    :abi f(uint) 0x0AC\n    - :label jump-fail    :abi f(uint) 0x0BC\n    - :label jump-fail    :abi f(uint) 0x0CC\n    - :label jump-fail    :abi f(uint) 0x0DC\n    - :label jump-fail    :abi f(uint) 0x0EC\n    - :label jump-fail    :abi f(uint) 0x0FC\n    - :label jump-fail    :abi f(uint) 0x10C\n    - :label jump-fail    :abi f(uint) 0x11C\n    - :label jump-fail    :abi f(uint) 0x12C\n    - :label jump-fail    :abi f(uint) 0x13C\n    - :label jump-fail    :abi f(uint) 0x14C\n    - :label jump-fail    :abi f(uint) 0x15C\n    - :label jump-fail    :abi f(uint) 0x16C\n    - :label jump-fail    :abi f(uint) 0x17C\n    - :label jump-fail    :abi f(uint) 0x18C\n    - :label jump-fail    :abi f(uint) 0x19C\n    - :label jump-fail    :abi f(uint) 0x20C\n\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n    \n    \n  expect:\n    - indexes:\n        data: \n        - :label jump-fail\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 0x00\n\n    - indexes:\n        data: \n        - :label jump-ok\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 0x01\n\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmIOandFlowOperations/jumpiFiller.yml",
    "content": "# Various JUMPIs (jump if...)\n#\n# The 000..1xx contracts are when the jump happens\n# The 000..2xx contracts are when it does not happen\n\njumpi:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    # This should fail (jump to something that isn't a JUMPDEST)\n    0000000000000000000000000000000000001000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n          [[0]] 0x600D\n          (asm 0x01 0x10 0x20 mul jumpi jumpdest)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    # This should fail (jumpi to something that isn't a JUMPDEST)\n    0000000000000000000000000000000000001001:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n          [[0]] 0x600D\n          (asm 0x01 0x10 0x20 mul jumpi jumpdest)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    # This should succeed (the jump doesn't happen)\n    0000000000000000000000000000000000000200:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n          [[0]] 0x600D\n          (asm 0x00 0x10 0x20 mul jumpi jumpdest)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    # This should succeed (the jump doesn't happen)\n    0000000000000000000000000000000000000201:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n          [[0]] 0x600D\n          (asm 0x00 0x10 0x20 mul jumpi jumpdest)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    # Jump to after the STOP. Shouldn't be a problem\n    0000000000000000000000000000000000001002:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      # 0  PUSH1 0x01\n      # 2  PUSH1 0x06\n      # 4  JUMPI\n      # 5  STOP\n      # 6  JUMPDEST\n      # 7  PUSH2 0x600D\n      # A  PUSH1 0x00\n      # C  SSTORE\n      # D  STOP\n      code: :raw 0x6001600657005B61600D60005500\n      nonce: '0'\n      storage: {}\n\n\n    # Don't jump to after the STOP.\n    0000000000000000000000000000000000000202:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      # 0  PUSH1 0x00\n      # 2  PUSH1 0x06\n      # 4  JUMPI\n      # 5  STOP\n      # 6  JUMPDEST\n      # 7  PUSH2 0x600D\n      # A  PUSH1 0x00\n      # C  SSTORE\n      # D  STOP\n      code: :raw 0x6000600657005B61600D60005500\n      nonce: '0'\n      storage: {}\n\n\n\n\n\n    # This should fail (the old jumpHigh)\n    0000000000000000000000000000000000001003:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n          [[0]] 0x600D\n          (asm 0xff 0x0fffffff jumpi)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    # This should work (the jump doesn't happen)\n    0000000000000000000000000000000000000203:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n          [[0]] 0x600D\n          (asm 0x00 0x0fffffff jumpi)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    # The old jump0_AfterJumpdest\n    0000000000000000000000000000000000001004:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      #  0  PUSH1 0x23\n      #  2  PUSH1 0x01\n      #  4  PUSH1 0x0A\n      #  6  JUMPI\n      #  7  PUSH1 0x01\n      #  9  JUMPDEST\n      #  A  PUSH1 0x02\n      #  C  SSTORE\n      code: :raw 0x6023600160085760015b600255\n      nonce: '0'\n      storage: {}\n\n\n    # Endless loop (well, endless until it runs out of gas, so mostly endless)\n    0000000000000000000000000000000000001005:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      #  0  PUSH2 0x600D\n      #  3  PUSH1 0x00\n      #  5  SSTORE\n      #  6  JUMPDEST\n      #  7  PUSH1 0x06\n      #  9  PUSH1 0x06\n      #  B  JUMPI\n      code: :raw 0x61600D6000555B6006600657\n      nonce: '0'\n      storage: {}\n\n\n    # Skip an opcode with jump, see it doesn't run\n    0000000000000000000000000000000000001006:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      #  0  PUSH2 0x600D\n      #  3  PUSH1 0x01\n      #  5  PUSH1 0x0A\n      #  7  JUMPI\n      #  8  PUSH1 0xFF\n      #  A  JUMPDEST\n      #  B  PUSH1 0x00\n      #  D  SSTORE\n      code: :raw 0x61600D6001600A5760FF5B600055\n      nonce: '0'\n      storage: {}\n\n\n\n    # Jump backwards, see that works too\n    0000000000000000000000000000000000001007:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      #  0  PUSH1 0x0B\n      #  2  JUMP\n      #  3  JUMPDEST\n      #  4  PUSH2 0x600D\n      #  7  PUSH1 0x00\n      #  9  SSTORE\n      #  A  STOP\n      #  B  JUMPDEST\n      #  C  PUSH1 0x01\n      #  E  PUSH1 0x03\n      # 10  JUMPI\n      code: :raw 0x600B565B61600D600055005B6001600357\n      nonce: '0'\n      storage: {}\n\n\n\n    # Dynamic jump\n    0000000000000000000000000000000000001008:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      #  0  PUSH1 0x01\n      #  2  PUSH1 0x04\n      #  4  PUSH1 0x05\n      #  6  ADD\n      #  7  JUMPI\n      #  8  STOP\n      #  9  JUMPDEST\n      #  A  PUSH2 0x600D\n      #  D  PUSH1 0x00\n      #  F  SSTORE\n      code: :raw 0x6001600460050157005B61600D600055\n      nonce: '0'\n      storage: {}\n\n\n    # Dynamic jump\n    0000000000000000000000000000000000000208:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      #  0  PUSH1 0x00\n      #  2  PUSH1 0x04\n      #  4  PUSH1 0x05\n      #  6  ADD\n      #  7  JUMPI\n      #  8  STOP\n      #  9  JUMPDEST\n      #  A  PUSH2 0x600D\n      #  D  PUSH1 0x00\n      #  F  SSTORE\n      code: :raw 0x6000600460050157005B61600D600055\n      nonce: '0'\n      storage: {}\n\n\n\n    # Jump to the data of a push, when it just happens to be\n    # 0x5B (jumpdest)\n    #\n    # Amazingly, but correctly, this fails\n    0000000000000000000000000000000000001009:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      #  0  PUSH1 0x01\n      #  2  PUSH1 0x07\n      #  4  JUMPI\n      #  5  STOP\n      #  6  PUSH1 0x5B\n      #  8  PUSH2 0x600D\n      #  B  PUSH1 0x00\n      #  D  SSTORE\n      code: :raw 0x600160075700605B61600D600055\n      nonce: '0'\n      storage: {}\n\n\n\n    # Jump to the data of a push, when it isn't a 0x5B (JUMPDEST)\n    000000000000000000000000000000000000100A:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      #  0  PUSH1 0xFF\n      #  2  PUSH1 0x09\n      #  4  JUMPI\n      #  5  STOP\n      #  6  PUSH1 0x01\n      #  8  PUSH2 0x600D\n      #  B  PUSH1 0x00\n      #  D  SSTORE\n      code: :raw 0x600160075700600161600D600055\n      nonce: '0'\n      storage: {}\n\n\n    # Jump one instruction after the JUMPDEST\n    000000000000000000000000000000000000100B:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      #  0  PUSH2 0x600D\n      #  3  PUSH1 0x00\n      #  5  SSTORE\n      #  6  PUSH1 0x01\n      #  8  PUSH1 0x0D\n      #  A  JUMPI\n      #  B  GAS\n      #  C  JUMMPDEST\n      #  D  GAS\n      #  E  PUSH1 0x01\n      # 10  SSTORE\n      code: :raw 0x61600D6000556001600D575A5B5A600155\n      nonce: '0'\n      storage: {}\n\n\n    # Jump one instruction before the JUMPDEST\n    000000000000000000000000000000000000100C:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      #  0  PUSH2 0x600D\n      #  3  PUSH1 0x00\n      #  5  SSTORE\n      #  6  PUSH1 0x01\n      #  8  PUSH1 0x0B\n      #  A  JUMPI\n      #  B  GAS\n      #  C  JUMMPDEST\n      #  D  GAS\n      #  E  PUSH1 0x01\n      # 10  SSTORE\n      code: :raw 0x61600D6000556001600B575A5B5A600155\n      nonce: '0'\n      storage: {}\n\n\n    # Another jump into hyperspace\n    # The old jumpToUint64maxPlus1\n    000000000000000000000000000000000000100D:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      # [ 0] PUSH1 0x11\n      # [ 2] PUSH9 0x01000000000000000d\n      # [ C] JUMPI\n      # [ D] JUMPDEST\n      # [ E] JUMPDEST\n      # [ F] PUSH1 0x01\n      # [11] PUSH1 0x01\n      # [13] SSTORE\n      code: :raw 0x60116801000000000000000D575b5b61600D600055\n      nonce: '0'\n      storage: {}\n\n\n    000000000000000000000000000000000000020D:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      # [ 0] PUSH1 0x00\n      # [ 2] PUSH9 0x01000000000000000d\n      # [ C] JUMPI\n      # [ D] JUMPDEST\n      # [ E] JUMPDEST\n      # [ F] PUSH2 0x600D\n      # [12] PUSH1 0x00\n      # [14] SSTORE\n      code: :raw 0x60006801000000000000000D575b5b61600D600055\n      nonce: '0'\n      storage: {}\n\n\n    # Another jump into hyperspace\n    # The old jumpToUintmaxPlus1\n    000000000000000000000000000000000000100E:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      # [ 0] PUSH1 0x11\n      # [ 2] PUSH5 0x0100000009\n      # [ 8] JUMPI\n      # [ 9] JUMPDEST\n      # [ A] JUMPDEST\n      # [ B] PUSH2 0x600D\n      # [ E] PUSH1 0x00\n      # [10] SSTORE\n      code: :raw 0x6011640100000009575b5b61600D600055\n      nonce: '0'\n      storage: {}\n\n\n\n    # Another jump into hyperspace\n    # The old jumpToUintmaxPlus1\n    000000000000000000000000000000000000020E:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      # [ 0] PUSH1 0x00\n      # [ 2] PUSH5 0x0100000009\n      # [ 8] JUMPI\n      # [ 9] JUMPDEST\n      # [ A] JUMPDEST\n      # [ B] PUSH2 0x600D\n      # [ E] PUSH1 0x00\n      # [10] SSTORE\n      code: :raw 0x6000640100000009575b5b61600D600055\n      nonce: '0'\n      storage: {}\n\n\n    # The furthest into hyperspace jump imaginable: to -1\n    000000000000000000000000000000000000100F:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n          @0 (- 0 1)\n          (asm 1 0 mload jumpi 0x600D 0x00 sstore)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    # The furthest into hyperspace jump imaginable: to -1\n    000000000000000000000000000000000000020F:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n          @0 (- 0 1)\n          (asm 0 0 mload jumpi 0x600D 0x00 sstore)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n\n    # Jumpi into a big list of JUMPDESTs\n    0000000000000000000000000000000000000110:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      #  0 PUSH1 0x01\n      #  2 PUSH1 0x0e\n      #  4 JUMPI\n      #  5 JUMPDEST\n      #  6 JUMPDEST\n      #  .\n      #  .\n      #  .\n      # 14 JUMPDEST\n      # 15 PUSH2 0x600D\n      # 18 PUSH1 0x00\n      # 1A SSTORE\n      code: :raw 0x6001600E575B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B61600D600055\n      nonce: '0'\n      storage: {}\n\n    # A loop that eventually ends\n    0000000000000000000000000000000000000111:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      # 00 PUSH2 0x600D\n      # 03 PUSH1 0x00\n      # 05 SSTORE\n      # 06 PUSH1 0x10\n      # 08 PUSH1 0x00\n      # 0A MSTORE\n      # 0B JUMPDEST\n      # 0C PUSH1 0x01\n      # 0E PUSH1 0x00\n      # 10 MLOAD\n      # 11 SUB\n      # 12 DUP1\n      # 13 PUSH1 0x00\n      # 15 MSTORE\n      # 16 PUSH1 0x0B\n      # 18 JUMPI\n      code: :raw 0x61600D60005560106000525B60016000510380600052600B57\n      #            00    03  0506  08  0A0B0C  0E  10111213  1516  18\n      nonce: '0'\n      storage: {}\n\n\n\n    # Using DELEGATECALL lets us group results together, because everything\n    # is written to the same storage.\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            ; limited gas because of the endless loop\n            (delegatecall 0x10000 $4 0 0 0 0)\n        }\n      nonce: '0'\n      storage:\n        0x00: 0x0BAD\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: 0x100000000000\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n\n\n  transaction:\n    data:\n    # The two old bad_indirect_jump tests\n    - :label jump-hyperspace    :abi f(uint) 0x1000\n    - :label jump-hyperspace    :abi f(uint) 0x1001\n\n    # The two old bad_indirect_jump tests, except without the jump\n    - :label not-jump-hyperspace    :abi f(uint) 0x0200\n    - :label not-jump-hyperspace    :abi f(uint) 0x0201\n\n    # The old jump to after the STOP\n    - :label jump-stop-dest      :abi f(uint) 0x1002\n    - :label not-jump-stop-dest  :abi f(uint) 0x0202\n\n    # The old jumpHigh\n    - :label jump-hyperspace      :abi f(uint) 0x1003\n    - :label not-jump-hyperspace  :abi f(uint) 0x0203\n\n\n    # The old jump0_AfterJumpdest\n    - :label jump-not-jumpdest  :abi f(uint) 0x1004\n\n    # \"Endless\" loop  (not really endless, it just runs out of gas)\n    - :label endless-loop       :abi f(uint) 0x1005\n\n\n    # Just checking JUMP / JUMPDEST is various ways\n    - :label jump-dest          :abi f(uint) 0x1006\n    - :label jump-dest          :abi f(uint) 0x1007\n\n\n    # A dynamic jump\n    - :label jump-dynamic       :abi f(uint) 0x1008\n    - :label not-jump-dynamic   :abi f(uint) 0x0208\n\n\n    # Jump into push (this fails, even if you jump to a 0x5B)\n    - :label jump-2-push        :abi f(uint) 0x1009\n    - :label jump-2-push        :abi f(uint) 0x100A\n\n\n    # JUMP one instruction before or after the JUMPDEST\n    - :label jump-not-jumpdest  :abi f(uint) 0x100B\n    - :label jump-not-jumpdest  :abi f(uint) 0x100C\n\n\n    # The old jumpToUint64maxPlus1\n    - :label jump-hyperspace      :abi f(uint) 0x100D\n    - :label not-jump-hyperspace  :abi f(uint) 0x020D\n\n\n    # The old jumpToUintmaxPlus1\n    - :label jump-hyperspace      :abi f(uint) 0x100E\n    - :label not-jump-hyperspace  :abi f(uint) 0x020E\n\n    # Jump to -1  (aka 0xfff...ffff)\n    - :label jump-hyperspace      :abi f(uint) 0x100F\n    - :label not-jump-hyperspace  :abi f(uint) 0x020F\n\n    # Jump to the middle of a JUMPDEST list\n    - :label jump-to-list       :abi f(uint) 0x0110\n\n    # A loop that ends eventually\n    - :label loop       :abi f(uint) 0x0111\n\n\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n  expect:\n    - indexes:\n        data:\n        - :label jump-hyperspace\n        - :label jump-not-jumpdest\n        - :label endless-loop\n        - :label jump-2-push\n        - :label not-jump-stop-dest\n        - :label not-jump-dynamic\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 0x0BAD\n\n\n\n    - indexes:\n        data:\n        - :label jump-stop-dest\n        - :label jump-dest\n        - :label jump-dynamic\n        - :label jump-to-list\n        - :label not-jump-hyperspace\n        - :label loop\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 0x600D\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmIOandFlowOperations/loop_stacklimitFiller.yml",
    "content": "\nloop_stacklimit:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    # loop_stacklimit_1021\n    <contract:0x0000000000000000000000000000000000001000>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           (asm 0 CALLVALUE JUMPDEST 1 SWAP1 SUB SWAP1 1 ADD DUP2 DUP1 3 JUMPI 0 MSTORE 1 MSTORE 0 MSIZE RETURN)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    # loop_stacklimit_1020\n    <contract:0x0000000000000000000000000000000000001001>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      # [1] PUSH1 0x00\n      # [2] CALLVALUE\n      # [3] JUMPDEST\n      # [5] PUSH1 0x01\n      # [6] SWAP1\n      # [7] SUB\n      # [8] SWAP1\n      # [10] PUSH1 0x01\n      # [11] ADD\n      # [12] DUP2\n      # [13] DUP1\n      # [15] PUSH1 0x03\n      # [16] JUMPI\n      # [18] PUSH1 0x00\n      # [19] MSTORE\n      # [21] PUSH1 0x01\n      # [22] MSTORE\n      # [24] PUSH1 0x00\n      # [25] MSIZE\n      # [26] RETURN\n      # [27] STOP\n      code: :raw 0x6000345b60019003906001018180600357600052600152600059f300\n      nonce: '0'\n      storage: {}\n\n\n\n\n    # Using DELEGATECALL lets us group results together, because everything\n    # is written to the same storage.\n    <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (delegatecall (gas) (+ 0x1000 $4) 0 0 0 0)\n        }\n      nonce: '0'\n      storage:\n        0x00: 0x00\n\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: 0x100000000000\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n\n\n  transaction:\n    data:\n    - :label loop_1021  :abi f(uint) 0\n    - :label loop_1020  :abi f(uint) 1\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>\n    value:\n    - '1'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n\n\n\n\n  expect:\n    - indexes:\n        data:\n        - :label loop_1020\n        - :label loop_1021\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x00\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmIOandFlowOperations/loopsConditionalsFiller.yml",
    "content": "# Check the LLL operations when, unless, if, while, until, and for\n#\n# Technically speaking we are checking here the LLL compiler rather than\n# the virtual machine, but considering a problem with the compiler will affect\n# almost all our tests, it's worth verifying.\n#\n# There were some tests in the old repository that didn't make sense so I\n# didn't transfer them:\n# stack_loop\n# stackjump1\nloopsConditionals:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    # when with a positive result\n    0000000000000000000000000000000000001000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (when (> 1 0) [[0]] 0x600D)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    # when with a negative result\n    0000000000000000000000000000000000001001:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (when (< 1 0) [[0]] 0x600D)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    # unless with a negative result\n    0000000000000000000000000000000000001002:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (unless (> 1 0) [[0]] 0x600D)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    # unless with a positive result\n    0000000000000000000000000000000000001003:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (unless (< 1 0) [[0]] 0x600D)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    # if with a positive result\n    0000000000000000000000000000000000001004:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            [[0]] (if (> 1 0) 0x600D 0x60A7)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    # if with a negative result\n    0000000000000000000000000000000000001005:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            [[0]] (if (< 1 0) 0x600D 0x60A7)\n        }\n      nonce: '0'\n      storage: {}\n\n    # while\n    0000000000000000000000000000000000001006:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            [[0]] 0x10\n            [[1]] 0x01\n\n            (while @@0 {\n               [[0]] (- @@0 1)\n               [[1]] (* @@1 2)\n            })  ; while loop\n        }\n      nonce: '0'\n      storage: {}\n\n\n    # until\n    0000000000000000000000000000000000001007:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            [[0]] 0x10\n            [[1]] 0x01\n\n            (until (= @@0 0) {\n               [[0]] (- @@0 1)\n               [[1]] (* @@1 2)\n            })  ; until loop\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    # for\n    0000000000000000000000000000000000001008:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (for\n              { [[0]] 0x10  [[1]] 0x01 }         ; initialization\n              (> @@0 0)                          ; predicate\n              [[0]] (- @@0 1)                    ; post\n              [[1]] (* @@1 2)                    ; body\n            )   ; for loop\n        }\n      nonce: '0'\n      storage: {}\n\n\n    # for_loop1 (from the original tests)\n    0000000000000000000000000000000000001009:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (def 'i 0x80)\n            (def 'j 0xA0)\n\n            (for [i] 10        ; init\n                 (> @i 0)      ; predicate\n                 [i] (- @i 1)  ; post\n                 [j] (+ @i @j) ; body\n            )    ; for loop\n\n            [[0]] @j\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n\n    # for_loop2 (from the original tests)\n    000000000000000000000000000000000000100A:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (def 'i 0x80)\n            (def 'j 0xA0)\n\n            (for [i] 0         ; init\n                 (<= @i 10)    ; predicate\n                 [i] (+ @i 1)  ; post\n                 [j] (+ @i @j) ; body\n            )    ; for loop\n\n            [[0]] @j\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n\n    # Using DELEGATECALL lets us group results together, because everything\n    # is written to the same storage.\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (delegatecall (gas) (+ 0x1000 $4) 0 0 0 0)\n        }\n      nonce: '0'\n      storage:\n        0x00: 0x0BAD\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: 0x100000000000\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n\n\n  transaction:\n    data:\n    - :label whenTrue    :abi f(uint) 0\n    - :label whenFalse   :abi f(uint) 1\n    - :label unlessTrue  :abi f(uint) 3\n    - :label unlessFalse :abi f(uint) 2\n    - :label ifTrue      :abi f(uint) 4\n    - :label ifFalse     :abi f(uint) 5\n    - :label while       :abi f(uint) 6\n    - :label until       :abi f(uint) 7\n    - :label for         :abi f(uint) 8\n    - :label for_loop1   :abi f(uint) 9\n    - :label for_loop2   :abi f(uint) 10\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n  expect:\n    - indexes:\n        data:\n        - :label whenTrue\n        - :label unlessTrue\n        - :label ifTrue\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 0x600D\n\n\n    - indexes:\n        data:\n        - :label whenFalse\n        - :label unlessFalse\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 0x0BAD\n\n\n\n    - indexes:\n        data:\n        - :label ifFalse\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 0x60A7\n\n\n\n    - indexes:\n        data:\n        - :label while\n        - :label until\n        - :label for\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 0x000000\n            0x01: 0x010000\n\n\n    - indexes:\n        data:\n        - :label for_loop1\n        - :label for_loop2\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 0x37   # 55, aka 1+2+3..+10\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmIOandFlowOperations/mloadFiller.yml",
    "content": "\nmload:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    # Normal, valid mload\n    0000000000000000000000000000000000001000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n             [0] 0x0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff\n             [[0]] (mload 0)\n\n        }\n      nonce: '0'\n      storage: {}\n\n\n    # A couple of OOG scenarios\n    0000000000000000000000000000000000001001:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n             [[0]] (mload 0x0fffffff)\n\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001002:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n             [[0]] (mload 7489573)\n\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n\n\n    # Using DELEGATECALL lets us group results together, because everything\n    # is written to the same storage.\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (delegatecall (gas) (+ 0x1000 $4) 0 0 0 0)\n        }\n      nonce: '0'\n      storage:\n        0x00: 0x0BAD\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: 0x100000000000\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n\n\n  transaction:\n    data:\n    - :label mload    :abi f(uint) 0\n    - :label mloadOOG :abi f(uint) 1\n    - :label mloadOOG :abi f(uint) 2\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n\n\n  expect:\n    - indexes:\n        data:\n        - :label mload\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 0x0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff\n\n    - indexes:\n        data:\n        - :label mloadOOG\n        - :label mloadOOG\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 0x0BAD\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmIOandFlowOperations/msizeFiller.yml",
    "content": "# Memory size tests\n\n\nmsize:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 0x100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    0000000000000000000000000000000000001000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            ; Store an entire 32 byte value\n            [0]  0xFF\n           [[0]] (msize)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001001:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            ; Store an entire 32 byte value\n            [0]  0xffffffffff\n           [[0]] (msize)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001002:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            ; Store two values\n           [0]    0xffffffffff\n           [0x20] 0xeeee\n           [[0]] (msize)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001003:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            ; Store two values\n           [0]    0xffffffffff\n           [0x5a] 0xeeee\n           [[0]] (msize)\n\n           ; The 0xEEEE value is stored 0x5a-0x79,\n           ; and memory is allocated in 0x20 byte chunks\n        }\n      nonce: '0'\n      storage: {}\n\n\n    # chunks\n    0000000000000000000000000000000000001004:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           ; Store at the very end of the first chunk\n           (mstore8 0x1F 1)\n           [[0]] (msize)\n\n           ; Store at the beginning of the second chuck\n           (mstore8 0x20 1)\n           [[1]] (msize)\n\n           ; Does it matter if we reset the memory?\n           ; Spoiler alert, it doesn't\n           (mstore8 0x20 0)\n           [[2]] (msize)\n\n        }\n      nonce: '0'\n      storage: {}\n\n\n    # farChunk\n    0000000000000000000000000000000000001005:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           ; Does the chunk size change in very high offsets?\n           ;\n           ; Note: It doesn't\n           (mstore8 0xB00000 1)\n           [[0]] (msize)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    # Using DELEGATECALL lets us group results together, because everything\n    # is written to the same storage.\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (delegatecall (gas) (+ 0x1000 $4) 0 0 0 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: 0x100000000000\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n\n\n  transaction:\n    data:\n    - :label msize0   :abi f(uint) 0\n    - :label msize1   :abi f(uint) 1\n    - :label msize2   :abi f(uint) 2\n    - :label msize3   :abi f(uint) 3\n    - :label chunks   :abi f(uint) 4\n\n    # Off in hyperspace, is the chunk size still 0x20?\n    - :label farChunk :abi f(uint) 5\n    gasLimit:\n    - 0x10000000\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n  expect:\n    - indexes:\n        data:\n        - :label msize0\n        - :label msize1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun<Osaka'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 0x20\n\n\n\n\n    - indexes:\n        data:\n        - :label msize2\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun<Osaka'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 0x40\n\n\n\n    - indexes:\n        data:\n        - :label msize3\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun<Osaka'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 0x80\n\n\n\n    - indexes:\n        data:\n        - :label chunks\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun<Osaka'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 0x20\n            0x01: 0x40\n            0x02: 0x40\n\n\n\n\n    - indexes:\n        data:\n        - :label farChunk\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun<Osaka'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 0xb00020\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmIOandFlowOperations/mstore8Filler.yml",
    "content": "# Verify the mstore8 (store just a single byte) opcode\n\nmstore8:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    0000000000000000000000000000000000001000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n             ; It ignores all but one byte, the least significant one\n             (mstore8 1 0x112233445566778899AABBCCDDEEFF)\n             [[0]] @1\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001001:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           (mstore8 1 0xFF)\n           (mstore8 2 0xEE)\n           [[0]] @0\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001002:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n             ; It ignores all but one byte, the least significant one\n             (mstore8 1 (- 0 1))\n             [[0]] @1\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n\n    # Using DELEGATECALL lets us group results together, because everything\n    # is written to the same storage.\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (delegatecall (gas) (+ 0x1000 $4) 0 0 0 0)\n        }\n      nonce: '0'\n      storage:\n        0x00: 0x0BAD\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: 0x100000000000\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n\n\n  transaction:\n    data:\n    - :label mstore8_onebyte   :abi f(uint) 0\n    - :label mstore8_twobytes  :abi f(uint) 1\n    - :label mstore8_neg1      :abi f(uint) 2\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n  expect:\n    - indexes:\n        data:\n        - :label mstore8_onebyte\n        - :label mstore8_neg1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 0xff00000000000000000000000000000000000000000000000000000000000000\n\n\n\n    - indexes:\n        data:\n        - :label mstore8_twobytes\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 0x00ffee0000000000000000000000000000000000000000000000000000000000\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmIOandFlowOperations/mstoreFiller.yml",
    "content": "# Verify the mstore opcode\n\nmstore:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    0000000000000000000000000000000000001000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n             (mstore 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n             [[0]] @1\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001001:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           (mstore 1 (+ 2 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) )\n           [[0]] @1\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001002:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n             (mstore 1 (- 0 1))\n             [[0]] @1\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    # Memory is addressed in bytes. Storage isn't.\n    #\n    # So after (mstore 1 n)\n    # @0 is n/256 (assuming byte 0 itself is zero)\n    0000000000000000000000000000000000001003:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n             (mstore 1 0xFF)\n             [[0]] @0\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001004:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n             (mstore 1 0xFF00)\n             [[0]] @0\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n\n    # Using DELEGATECALL lets us group results together, because everything\n    # is written to the same storage.\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (delegatecall (gas) (+ 0x1000 $4) 0 0 0 0)\n        }\n      nonce: '0'\n      storage:\n        0x00: 0x0BAD\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: 0x100000000000\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n\n\n  transaction:\n    data:\n    - :label mstore_allF      :abi f(uint) 0\n    - :label mstore_one       :abi f(uint) 1\n    - :label mstore_neg1      :abi f(uint) 2\n    - :label mstore_byte32    :abi f(uint) 3\n    - :label mstore_byte31    :abi f(uint) 4\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n  expect:\n    - indexes:\n        data:\n        - :label mstore_allF\n        - :label mstore_neg1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n\n\n    - indexes:\n        data:\n        - :label mstore_one\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 0x01\n\n\n    - indexes:\n        data:\n        - :label mstore_byte32\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 0x00\n\n\n    - indexes:\n        data:\n        - :label mstore_byte31\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 0xFF\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmIOandFlowOperations/pcFiller.yml",
    "content": "# Check the value of the program counter\n\npc:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    0000000000000000000000000000000000001000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (pc)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001001:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] 0xFF\n           [[1]] (pc)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    # Using DELEGATECALL lets us group results together, because everything\n    # is written to the same storage.\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (delegatecall (gas) (+ 0x1000 $4) 0 0 0 0)\n        }\n      nonce: '0'\n      storage:\n        0x00: 0x0BAD\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: 0x100000000000\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n\n\n  transaction:\n    data:\n    - :label pc1 :abi f(uint) 0\n    - :label pc2 :abi f(uint) 1\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n  expect:\n    - indexes:\n        data:\n        - :label pc1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 0x00   # first opcode of the program\n\n\n\n    - indexes:\n        data:\n        - :label pc2\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 0xff    # just a value\n            0x01: 0x05\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmIOandFlowOperations/popFiller.yml",
    "content": "# Run the POP opcode\n\npop:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    0000000000000000000000000000000000001000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: :raw 0x6002600360045055\n        # PUSH1 2\n        # PUSH1 3\n        # PUSH1 4\n        # POP\n        # SSTORE   ([[3]] 2)\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001001:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: :raw 0x5060026003600455\n        # POP    (which should abort, stack underflow)\n        # PUSH1 2\n        # PUSH1 3\n        # PUSH1 4\n        # SSTORE    ([[4]] 3, except we never get here)\n      nonce: '0'\n      storage: {}\n\n\n\n    # Using DELEGATECALL lets us group results together, because everything\n    # is written to the same storage.\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (delegatecall (gas) (+ 0x1000 $4) 0 0 0 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: 0x100000000000\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n\n\n  transaction:\n    data:\n    - :label pop1 :abi f(uint) 0\n    - :label pop2 :abi f(uint) 1\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n  expect:\n    - indexes:\n        data:\n        - :label pop1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x03: 0x02\n\n\n    - indexes:\n        data:\n        - :label pop2\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x04: 0x00\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmIOandFlowOperations/returnFiller.yml",
    "content": "return:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n\n    # Return a normal value\n    0000000000000000000000000000000000001000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [0] 0x0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef\n           [[0xFF]] 0x600D\n           (return 0x00 0x40)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    # \"Infinite\" (-1 = 0xfff..ffff) buffer\n    0000000000000000000000000000000000001001:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [0] 0x0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef\n           [[0xFF]] 0x600D\n           (return 0x00 (- 0 1))\n        }\n      nonce: '0'\n      storage: {}\n\n\n    # Big but reasonable buffer\n    0000000000000000000000000000000000001002:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [0] 0x0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef\n           [[0xFF]] 0x600D\n           (return 0x00 0x1000)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    # Return at an offset\n    0000000000000000000000000000000000001003:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [0] 0x0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef\n           [[0xFF]] 0x600D\n           (return 0x05 0x20)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    # The old return2\n    # This seems needlessly complicated to me, but it was part of the old\n    # test suite so we might as well keep it. Here's the disassembler (courtesy of\n    # Etherscan):\n    #[1] PUSH1 0x01\n    #[3] PUSH1 0x80\n    #[4] MSTORE\n    #[6] PUSH1 0x00\n    #[8] PUSH1 0x80\n    #[9] MLOAD\n    #[10] GT\n    #[12] PUSH1 0x1b\n    #[13] JUMPI\n    #[15] PUSH1 0x01\n    #[17] PUSH1 0x00\n    #[18] MSTORE\n    #[20] PUSH1 0x20\n    #[22] PUSH1 0x00\n    #[23] RETURN\n    #[25] PUSH1 0x2b\n    #[26] JUMP\n    #[27] JUMPDEST\n    #[29] PUSH1 0x27\n    #[31] PUSH1 0x00\n    #[32] MSTORE\n    #[34] PUSH1 0x20\n    #[36] PUSH1 0x00\n    #[37] RETURN\n    #[39] PUSH1 0x02\n    #[41] PUSH1 0x80\n    #[42] MSTORE\n    #[43] JUMPDEST\n    # [44] STOP\n    0000000000000000000000000000000000001004:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: :raw 0x6001608052600060805111601b57600160005260206000f3602b565b602760005260206000f360026080525b00\n      nonce: '0'\n      storage: {}\n\n\n\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            ; read 0x40 bytes of return data\n            (delegatecall 0xffffff (+ 0x1000 $4) 0 0 0x00 0x40)\n\n            [[0]] @0x00\n            [[1]] @0x20\n        }\n      nonce: '0'\n      storage:\n        0xFF: 0x0BAD\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n\n\n  transaction:\n    data:\n    - :label return        :abi f(uint) 0\n    - :label returnInfBuff :abi f(uint) 1\n    - :label returnBigBuff :abi f(uint) 2\n    - :label returnOffset  :abi f(uint) 3\n    - :label returnOld     :abi f(uint) 4\n\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n  expect:\n\n    - indexes:\n        data:\n        - :label return\n        - :label returnBigBuff\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 0x0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef\n            0x01: 0x00\n            0xFF: 0x600D\n\n\n    - indexes:\n        data:\n        - :label returnInfBuff\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0xFF: 0x0BAD\n\n\n    - indexes:\n        data:\n        - :label returnOffset\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            # Remember that the higher significant bytes come first in EVM\n            0x00: 0xabcdef0123456789abcdef0123456789abcdef0123456789abcdef0000000000\n            0x01: 0x00\n            0xFF: 0x600D\n\n\n    - indexes:\n        data:\n        - :label returnOld\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 0x0027\n            0xFF: 0x0BAD\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmIOandFlowOperations/sstore_sloadFiller.yml",
    "content": "# Verify the sstore and sload operations\n\nsstore_sload:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    0000000000000000000000000000000000001000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           (sstore 0 0xff)\n           (sstore 10 0xee)\n           [[ 20 ]] (sload 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001001:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           (sstore 0 0xff)\n           (sstore 10 0xee)\n           [[ 20 ]] (sload 100)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n\n    0000000000000000000000000000000000001002:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] 0xFF\n           [[1]] 0xEE\n           [[2]] 0xDD\n           [[10]] @@1\n           [[20]] @@2\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n\n    # Using DELEGATECALL lets us group results together, because everything\n    # is written to the same storage.\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (delegatecall (gas) (+ 0x1000 $4) 0 0 0 0)\n        }\n      nonce: '0'\n      storage:\n        0x00: 0x0BAD\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: 0x100000000000\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n\n\n  transaction:\n    data:\n    - :label sstore_sload_3      :abi f(uint) 0\n    - :label sstore_sload_noinit :abi f(uint) 1\n    - :label sstore_sload_4      :abi f(uint) 2\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n  expect:\n    - indexes:\n        data:\n        - :label sstore_sload_3\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 0xFF\n            0x0A: 0xEE\n            0x14: 0xFF\n\n\n\n\n\n    - indexes:\n        data:\n        - :label sstore_sload_noinit\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 0xFF\n            0x0A: 0xEE\n\n\n\n\n    - indexes:\n        data:\n        - :label sstore_sload_4\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 0xFF\n            0x01: 0xEE\n            0x02: 0xDD\n            0x0A: 0xEE\n            0x14: 0xDD\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmLogTest/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmLogTest/log0Filler.yml",
    "content": "log0:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    0000000000000000000000000000000000001000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {   ; emptyMem\n            (log0 0 0)\n\n            [[0]] 0x600D\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001001:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {      ; memStartTooHigh\n           [0]   0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd\n           (log0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1)\n           [[0]] 0x600D\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001002:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {        ; memSizeTooHigh\n           [0] 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd\n           (log0 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n           [[0]] 0x600D\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001003:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {        ; memSizeZero\n           [0] 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd\n           (log0 1 0)\n           [[0]] 0x600D\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001004:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {        ; nonEmptyMem\n           [0] 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n           (log0 0 32)\n           [[0]] 0x600D\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001005:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {        ; log_0_1\n           [0] 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd\n           (log0 0 1)\n           [[0]] 0x600D\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001006:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {        ; log_31_1\n           [0] 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd\n           (log0 31 1)\n           [[0]] 0x600D\n        }\n      nonce: '0'\n      storage: {}\n\n\n    000000000000000000000000000000000000100a:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {        ; logTwice\n           [0] 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd\n           (log0 0 32)\n           (log0 2 16)\n           [[0]] 0x600D\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (delegatecall (gas) (+ 0x1000 $4) 0 0 0 0)\n        }\n      nonce: '0'\n      storage:\n        0: 0x0BAD\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: 0x100000000000\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n\n\n  transaction:\n    data:\n    - :label emptyMem         :abi f(uint) 0\n    - :label memStartTooHigh  :abi f(uint) 1\n    - :label memSizeTooHigh   :abi f(uint) 2\n    - :label memSizeZero      :abi f(uint) 3\n    - :label nonEmptyMem      :abi f(uint) 4\n    - :label log_0_1          :abi f(uint) 5\n    - :label log_31_1         :abi f(uint) 6\n    - :label logTwice         :abi f(uint) 10\n\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n  # Log tests do two things that are visible to retesteth:\n  #\n  # 1. Cost gas\n  # 2. Abort or don't above the contract call\n  #\n  # This test checks the second one by having an SSTORE that either happens\n  # (success) or not (failure)\n  expect:\n\n\n  # All the successes\n    - indexes:\n        data:\n        - :label emptyMem\n        - :label memSizeZero\n        - :label nonEmptyMem\n        - :label log_0_1\n        - :label log_31_1\n        - :label logTwice\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n         CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC:\n           storage:\n             0: 0x600D\n\n\n\n  # All the failures\n    - indexes:\n        data:\n        - :label memStartTooHigh\n        - :label memSizeTooHigh\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n         CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC:\n           storage:\n             0: 0x0BAD\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmLogTest/log1Filler.yml",
    "content": "log1:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    0000000000000000000000000000000000001000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {   ; emptyMem\n            (log1 0 0 0)\n\n            [[0]] 0x600D\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001001:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {      ; memStartTooHigh\n           [0]   0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd\n           (log1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1 0)\n           [[0]] 0x600D\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001002:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {        ; memSizeTooHigh\n           [0] 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd\n           (log1 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0)\n           [[0]] 0x600D\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001003:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {        ; memSizeZero\n           [0] 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd\n           (log1 1 0 0)\n           [[0]] 0x600D\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001004:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {        ; nonEmptyMem\n           [0] 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n           (log1 0 32 0)\n           [[0]] 0x600D\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001005:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {        ; log_0_1\n           [0] 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd\n           (log1 0 1 0)\n           [[0]] 0x600D\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001006:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {        ; log_31_1\n           [0] 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd\n           (log1 31 1 0)\n           [[0]] 0x600D\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001007:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {        ; caller (as topic)\n           [0] 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd\n           (log1 0 32 (caller))\n           [[0]] 0x600D\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001008:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {        ; maxTopic\n           (def 'neg1 (- 0 1))\n\n           (mstore8 0 0xFF)\n           (log1 31 1 neg1)\n           [[0]] 0x600D\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (delegatecall (gas) (+ 0x1000 $4) 0 0 0 0)\n        }\n      nonce: '0'\n      storage:\n        0: 0x0BAD\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: 0x100000000000\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n\n\n  transaction:\n    data:\n    - :label emptyMem         :abi f(uint) 0\n    - :label memStartTooHigh  :abi f(uint) 1\n    - :label memSizeTooHigh   :abi f(uint) 2\n    - :label memSizeZero      :abi f(uint) 3\n    - :label nonEmptyMem      :abi f(uint) 4\n    - :label log_0_1          :abi f(uint) 5\n    - :label log_31_1         :abi f(uint) 6\n    - :label caller           :abi f(uint) 7\n    - :label maxTopic         :abi f(uint) 8\n\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n  # Log tests do two things that are visible to retesteth:\n  #\n  # 1. Cost gas\n  # 2. Abort or don't above the contract call\n  #\n  # This test checks the second one by having an SSTORE that either happens\n  # (success) or not (failure)\n  expect:\n\n\n  # All the successes\n    - indexes:\n        data:\n        - :label emptyMem\n        - :label memSizeZero\n        - :label nonEmptyMem\n        - :label log_0_1\n        - :label log_31_1\n        - :label caller\n        - :label maxTopic\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n         CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC:\n           storage:\n             0: 0x600D\n\n\n\n  # All the failures\n    - indexes:\n        data:\n        - :label memStartTooHigh\n        - :label memSizeTooHigh\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n         CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC:\n           storage:\n             0: 0x0BAD\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmLogTest/log2Filler.yml",
    "content": "log2:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    0000000000000000000000000000000000001000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {   ; emptyMem\n            (log2 0 0 0 0)\n\n            [[0]] 0x600D\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001001:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {      ; memStartTooHigh\n           (def 'neg1 (- 0 1))\n\n           [0]   0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd\n           (log2 neg1 1 0 0)\n           [[0]] 0x600D\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001002:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {        ; memSizeTooHigh\n           (def 'neg1 (- 0 1))\n\n           [0] 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd\n           (log2 1 neg1 0 0)\n           [[0]] 0x600D\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001003:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {        ; memSizeZero\n           [0] 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd\n           (log2 1 0 0 0)\n           [[0]] 0x600D\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001004:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {        ; nonEmptyMem\n           [0] 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n           (log2 0 32 0 0)\n           [[0]] 0x600D\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001005:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {        ; log_0_1\n           [0] 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd\n           (log2 0 1 0 0)\n           [[0]] 0x600D\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001006:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {        ; log_31_1\n           [0] 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd\n           (log2 31 1 0 0)\n           [[0]] 0x600D\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001007:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {        ; caller (as topic)\n           [0] 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd\n           (log2 0 32 0 (caller))\n           [[0]] 0x600D\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001008:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {        ; maxTopic\n           (def 'neg1 (- 0 1))\n\n           (mstore8 0 0xFF)\n           (log2 31 1 neg1 neg1)\n           [[0]] 0x600D\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (delegatecall (gas) (+ 0x1000 $4) 0 0 0 0)\n        }\n      nonce: '0'\n      storage:\n        0: 0x0BAD\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: 0x100000000000\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n\n\n  transaction:\n    data:\n    - :label emptyMem         :abi f(uint) 0\n    - :label memStartTooHigh  :abi f(uint) 1\n    - :label memSizeTooHigh   :abi f(uint) 2\n    - :label memSizeZero      :abi f(uint) 3\n    - :label nonEmptyMem      :abi f(uint) 4\n    - :label log_0_1          :abi f(uint) 5\n    - :label log_31_1         :abi f(uint) 6\n    - :label caller           :abi f(uint) 7\n    - :label maxTopic         :abi f(uint) 8\n\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n  # Log tests do two things that are visible to retesteth:\n  #\n  # 1. Cost gas\n  # 2. Abort or don't above the contract call\n  #\n  # This test checks the second one by having an SSTORE that either happens\n  # (success) or not (failure)\n  expect:\n\n\n  # All the successes\n    - indexes:\n        data:\n        - :label emptyMem\n        - :label memSizeZero\n        - :label nonEmptyMem\n        - :label log_0_1\n        - :label log_31_1\n        - :label caller\n        - :label maxTopic\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n         CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC:\n           storage:\n             0: 0x600D\n\n\n\n  # All the failures\n    - indexes:\n        data:\n        - :label memStartTooHigh\n        - :label memSizeTooHigh\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n         CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC:\n           storage:\n             0: 0x0BAD\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmLogTest/log3Filler.yml",
    "content": "log3:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    0000000000000000000000000000000000001000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {   ; emptyMem\n            (log3 0 0 0 0 0)\n\n            [[0]] 0x600D\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001001:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {      ; memStartTooHigh\n           (def 'neg1 (- 0 1))\n\n           [0]   0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd\n           (log3 neg1 1 0 0 0)\n           [[0]] 0x600D\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001002:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {        ; memSizeTooHigh\n           (def 'neg1 (- 0 1))\n\n           [0] 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd\n           (log3 1 neg1 0 0 0)\n           [[0]] 0x600D\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001003:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {        ; memSizeZero\n           [0] 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd\n           (log3 1 0 0 0 0)\n           [[0]] 0x600D\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001004:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {        ; nonEmptyMem\n           [0] 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n           (log3 0 32 0 0 0)\n           [[0]] 0x600D\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001005:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {        ; log_0_1\n           [0] 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd\n           (log3 0 1 0 0 0)\n           [[0]] 0x600D\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001006:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {        ; log_31_1\n           [0] 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd\n           (log3 31 1 0 0 0)\n           [[0]] 0x600D\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001007:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {        ; caller (as topic)\n           [0] 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd\n           (log3 0 32 0 0 (caller))\n           [[0]] 0x600D\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001008:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {        ; maxTopic\n           (def 'neg1 (- 0 1))\n\n           (mstore8 0 0xFF)\n           (log3 31 1 neg1 neg1 neg1)\n           [[0]] 0x600D\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001009:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {        ; pc\n           [0] 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd\n           (log3 31 1 (pc) (pc) (pc))\n           [[0]] 0x600D\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (delegatecall (gas) (+ 0x1000 $4) 0 0 0 0)\n        }\n      nonce: '0'\n      storage:\n        0: 0x0BAD\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: 0x100000000000\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n\n\n  transaction:\n    data:\n    - :label emptyMem         :abi f(uint) 0\n    - :label memStartTooHigh  :abi f(uint) 1\n    - :label memSizeTooHigh   :abi f(uint) 2\n    - :label memSizeZero      :abi f(uint) 3\n    - :label nonEmptyMem      :abi f(uint) 4\n    - :label log_0_1          :abi f(uint) 5\n    - :label log_31_1         :abi f(uint) 6\n    - :label caller           :abi f(uint) 7\n    - :label maxTopic         :abi f(uint) 8\n    - :label pc               :abi f(uint) 9\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n  # Log tests do two things that are visible to retesteth:\n  #\n  # 1. Cost gas\n  # 2. Abort or don't above the contract call\n  #\n  # This test checks the second one by having an SSTORE that either happens\n  # (success) or not (failure)\n  expect:\n\n\n  # All the successes\n    - indexes:\n        data:\n        - :label emptyMem\n        - :label memSizeZero\n        - :label nonEmptyMem\n        - :label log_0_1\n        - :label log_31_1\n        - :label caller\n        - :label maxTopic\n        - :label pc\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n         CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC:\n           storage:\n             0: 0x600D\n\n\n\n  # All the failures\n    - indexes:\n        data:\n        - :label memStartTooHigh\n        - :label memSizeTooHigh\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n         CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC:\n           storage:\n             0: 0x0BAD\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmLogTest/log4Filler.yml",
    "content": "log4:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    0000000000000000000000000000000000001000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {   ; emptyMem\n            (log4 0 0 0 0 0 0)\n\n            [[0]] 0x600D\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001001:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {      ; memStartTooHigh\n           (def 'neg1 (- 0 1))\n\n           [0]   0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd\n           (log4 neg1 1 0 0 0 0)\n           [[0]] 0x600D\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001002:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {        ; memSizeTooHigh\n           (def 'neg1 (- 0 1))\n\n           [0] 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd\n           (log4 1 neg1 0 0 0 0)\n           [[0]] 0x600D\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001003:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {        ; memSizeZero\n           [0] 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd\n           (log4 1 0 0 0 0 0)\n           [[0]] 0x600D\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001004:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {        ; nonEmptyMem\n           [0] 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n           (log4 0 32 0 0 0 0)\n           [[0]] 0x600D\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001005:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {        ; log_0_1\n           [0] 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd\n           (log4 0 1 0 0 0 0)\n           [[0]] 0x600D\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001006:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {        ; log_31_1\n           [0] 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd\n           (log4 31 1 0 0 0 0)\n           [[0]] 0x600D\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001007:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {        ; caller (as topic)\n           [0] 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd\n           (log4 0 32 0 0 0 (caller))\n           [[0]] 0x600D\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001008:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {        ; maxTopic\n           (def 'neg1 (- 0 1))\n\n           (mstore8 0 0xFF)\n           (log4 31 1 neg1 neg1 neg1 neg1)\n           [[0]] 0x600D\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001009:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {        ; pc\n           [0] 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd\n           (log4 31 1 (pc) (pc) (pc) (pc))\n           [[0]] 0x600D\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (delegatecall (gas) (+ 0x1000 $4) 0 0 0 0)\n        }\n      nonce: '0'\n      storage:\n        0: 0x0BAD\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: 0x100000000000\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n\n\n  transaction:\n    data:\n    - :label emptyMem         :abi f(uint) 0\n    - :label memStartTooHigh  :abi f(uint) 1\n    - :label memSizeTooHigh   :abi f(uint) 2\n    - :label memSizeZero      :abi f(uint) 3\n    - :label nonEmptyMem      :abi f(uint) 4\n    - :label log_0_1          :abi f(uint) 5\n    - :label log_31_1         :abi f(uint) 6\n    - :label caller           :abi f(uint) 7\n    - :label maxTopic         :abi f(uint) 8\n    - :label pc               :abi f(uint) 9\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n  # Log tests do two things that are visible to retesteth:\n  #\n  # 1. Cost gas\n  # 2. Abort or don't above the contract call\n  #\n  # This test checks the second one by having an SSTORE that either happens\n  # (success) or not (failure)\n  expect:\n\n\n  # All the successes\n    - indexes:\n        data:\n        - :label emptyMem\n        - :label memSizeZero\n        - :label nonEmptyMem\n        - :label log_0_1\n        - :label log_31_1\n        - :label caller\n        - :label maxTopic\n        - :label pc\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n         CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC:\n           storage:\n             0: 0x600D\n\n\n\n  # All the failures\n    - indexes:\n        data:\n        - :label memStartTooHigh\n        - :label memSizeTooHigh\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n         CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC:\n           storage:\n             0: 0x0BAD\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmTests/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmTests/blockInfoFiller.yml",
    "content": "blockInfo:\n\n  # Test the opcodes that read block information\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    0000000000000000000000000000000000001000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            [[0]] (coinbase)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001001:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n             [[0]] (difficulty)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001002:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (gaslimit)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001003:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {  ; The blocknumber\n              [[0]] (number)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001004:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n              [[0]] (timestamp)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (call 0xffffff (+ 0x1000 $4) 0 0 0 0 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n  transaction:\n    data:\n    - :label coinbase     :abi f(uint) 0\n    - :label difficulty   :abi f(uint) 1\n    - :label gaslimit     :abi f(uint) 2\n    - :label number       :abi f(uint) 3\n    - :label timestamp    :abi f(uint) 4\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n  expect:\n    - indexes:\n        data:\n        - :label coinbase\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001000:\n          storage:\n            0: 0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n\n\n    - indexes:\n        data:\n        - :label difficulty\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001001:\n          storage:\n            0: 0x20000\n\n\n    - indexes:\n        data:\n        - :label gaslimit\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001002:\n          storage:\n            0: 100000000\n\n\n\n\n    - indexes:\n        data:\n        - :label number\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001003:\n          storage:\n            0: 1\n\n\n\n\n    - indexes:\n        data:\n        - :label timestamp\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001004:\n          storage:\n            0: 1000\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmTests/envInfoFiller.yml",
    "content": "\nenvInfo:\n\n  # Opcodes that read the environment\n  #\n  # Except for CALLDATACOPY, CALLDATALOAD, and CALLDATASIZE\n  # because have lots of test cases each\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    0000000000000000000000000000000000001000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (address)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001001:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {   ; Copy first seven bytes of code to memory\n            ; and from there to storage\n           (codecopy 0 0 7)\n           [[0]] @0\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001002:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           ; codecopy zero bytes\n           (codecopy 0 0 0)\n           [[0]] @0\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001003:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           ; codecopy from unrealistically high in the code\n           ; segment (so high you wrap around)\n           (def 'neg6\n              0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa)\n           (codecopy 0 neg6 8)\n           [[0]] @0\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001004:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (caller)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001005:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (callvalue)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001006:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (codesize)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001007:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (gasprice)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    0000000000000000000000000000000000001008:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (origin)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001009:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] (calldatasize)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n\n\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (call 0xffffff (+ 0x1000 $4) 0x10 0 0 0 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n  transaction:\n    data:\n    - :label address             :abi f(uint) 0\n    - :label codecopy            :abi f(uint) 1\n    - :label codecopy_len0       :abi f(uint) 2\n    - :label codecopy_neg_offset :abi f(uint) 3\n    - :label caller              :abi f(uint) 4\n    - :label callvalue           :abi f(uint) 5\n    - :label codesize            :abi f(uint) 6\n    - :label gasprice            :abi f(uint) 7\n    - :label origin              :abi f(uint) 8\n    - :label calldatasize        :abi f(uint) 9\n    gasLimit:\n    - '16777216'\n    gasPrice: 0x1234\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n  expect:\n  - indexes:\n      data: :label address\n      gas:  !!int -1\n      value: !!int -1\n    network:\n      - '>=Cancun'\n    result:\n      0000000000000000000000000000000000001000:\n        storage:\n          0: 0x1000\n\n\n  - indexes:\n      data: :label codecopy\n      gas:  !!int -1\n      value: !!int -1\n    network:\n      - '>=Cancun'\n    result:\n      0000000000000000000000000000000000001001:\n        storage:\n          #  0 PUSH1 0x07\n          #  2 PUSH1 0x00\n          #  4 PUSH1 0x00\n          #  6 CODECOPY\n          0: 0x6007600060003900000000000000000000000000000000000000000000000000\n\n\n\n  - indexes:\n      data: :label codecopy_len0\n      gas:  !!int -1\n      value: !!int -1\n    network:\n      - '>=Cancun'\n    result:\n      0000000000000000000000000000000000001002:\n        storage:\n          0: 0x00\n\n\n  - indexes:\n      data: :label codecopy_neg_offset\n      gas:  !!int -1\n      value: !!int -1\n    network:\n      - '>=Cancun'\n    result:\n      0000000000000000000000000000000000001003:\n        storage:\n          0: 0x00\n\n\n\n  - indexes:\n      data: :label caller\n      gas:  !!int -1\n      value: !!int -1\n    network:\n      - '>=Cancun'\n    result:\n      0000000000000000000000000000000000001004:\n        storage:\n          0: 0xcccccccccccccccccccccccccccccccccccccccc\n\n\n\n  - indexes:\n      data: :label callvalue\n      gas:  !!int -1\n      value: !!int -1\n    network:\n      - '>=Cancun'\n    result:\n      0000000000000000000000000000000000001005:\n        storage:\n          0: 0x10\n\n\n\n\n  - indexes:\n      data: :label codesize\n      gas:  !!int -1\n      value: !!int -1\n    network:\n      - '>=Cancun'\n    result:\n      0000000000000000000000000000000000001006:\n        storage:\n          0: 0x05\n\n\n\n\n  - indexes:\n      data: :label gasprice\n      gas:  !!int -1\n      value: !!int -1\n    network:\n      - '>=Cancun'\n    result:\n      0000000000000000000000000000000000001007:\n        storage:\n          0: 0x1234\n\n\n\n  - indexes:\n      data: :label origin\n      gas:  !!int -1\n      value: !!int -1\n    network:\n      - '>=Cancun'\n    result:\n      0000000000000000000000000000000000001008:\n        storage:\n          0: 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\n\n\n\n  - indexes:\n      data: :label calldatasize\n      gas:  !!int -1\n      value: !!int -1\n    network:\n      - '>=Cancun'\n    result:\n      0000000000000000000000000000000000001009:\n        storage:\n          0: 0x00\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmTests/randomFiller.yml",
    "content": "# The old VMTests has some random tests. I'm not sure they are worth preserving, but\n# they might be useful for some EVM developers\n\nrandom:\n\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    # 201503102320PYTHON\n    <contract:0x0000000000000000000000000000000000001000>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: 0x434342444244454597\n      nonce: '0'\n      storage: {}\n\n\n    # 201503110206PYTHON\n    <contract:0x0000000000000000000000000000000000001001>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: 0x4045404145454441343987ff3735043055\n      nonce: '0'\n      storage: {}\n\n\n    # 201503110219PYTHON\n    <contract:0x0000000000000000000000000000000000001002>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: 0x4040459143404144809759886d608f\n      nonce: '0'\n      storage: {}\n\n\n    # 201503110346PYTHON_PUSH24\n    <contract:0x0000000000000000000000000000000000001003>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: 0x7745414245403745f31387900a8d55\n      nonce: '0'\n      storage: {}\n\n    # 201503111844PYTHON\n    <contract:0x0000000000000000000000000000000000001004>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: 0x65424555\n      nonce: '0'\n      storage: {}\n\n    # 201503112218PYTHON\n    <contract:0x0000000000000000000000000000000000001005>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: 0x4041\n      nonce: '0'\n      storage: {}\n\n\n\n    <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (call (gas) (+ 0x1000 $4) 0 0 0 0 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: 0x10000000000000\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n\n\n  transaction:\n    data:\n    - :label random0  :abi f(uint) 0\n    - :label random1  :abi f(uint) 1\n    - :label random2  :abi f(uint) 2\n    - :label random3  :abi f(uint) 3\n    - :label random4  :abi f(uint) 4\n    - :label random5  :abi f(uint) 5\n\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>\n    value:\n    - '1'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n\n\n  expect:\n    - indexes:\n        data: :label random0\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n          nonce: 1\n\n\n    - indexes:\n        data: :label random1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n          nonce: 1\n\n\n    - indexes:\n        data: :label random2\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n          nonce: 1\n\n\n    - indexes:\n        data: :label random3\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n          nonce: 1\n\n\n\n    - indexes:\n        data: :label random4\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n          nonce: 1\n\n\n\n    - indexes:\n        data: :label random5\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n          nonce: 1\n\n\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmTests/sha3Filler.yml",
    "content": "sha3:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n\n    0000000000000000000000000000000000001000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            [[0]] (sha3 0 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n\n    0000000000000000000000000000000000001001:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            [[0]] (sha3 4 5)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n\n    0000000000000000000000000000000000001002:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            [[0]] (sha3 10 10)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001003:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            [[0]] (sha3 1000 0xFFFFF)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001004:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            ; The result here is zero, because we run out of gas\n            [[0]] (sha3 0xfffffffff  100)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001005:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            ; The result here is zero, because we run out of gas\n            [[0]] (sha3 10000 0xfffffffff)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n\n\n    0000000000000000000000000000000000001006:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (def 'neg1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n            [[0]] (sha3 neg1 neg1)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n\n\n    0000000000000000000000000000000000001007:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (def 'neg1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n            [[0]] (sha3 neg1 2)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    0000000000000000000000000000000000001008:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            [[0]] (sha3 0x1000000 2)\n        }\n      nonce: '0'\n      storage: {}\n\n    # memSizeNoQuadraticCost31\n    0000000000000000000000000000000000001009:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n          [[ 0 ]] (sha3 960 1)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    # memSizeQuadraticCost32\n    000000000000000000000000000000000000100a:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n          [[ 0 ]] (sha3 992 1)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    # memSizeQuadraticCost33\n    000000000000000000000000000000000000100b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n          [[ 0 ]] (sha3 1024 1)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    # memSizeQuadraticCost63\n    000000000000000000000000000000000000100c:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n          [[ 0 ]] (sha3 1984 1)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    # memSizeQuadraticCost64\n    000000000000000000000000000000000000100d:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n          [[ 0 ]] (sha3 2016 1)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n\n    # memSizeQuadraticCost65\n    000000000000000000000000000000000000100e:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n          [[ 0 ]] (sha3 2048 1)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    # memSizeQuadraticCost32_zeroSize\n    000000000000000000000000000000000000100f:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n          [[ 0 ]] (sha3 1024 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    # memSizeQuadraticCost64_2\n    0000000000000000000000000000000000001010:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n          [[ 0 ]] (sha3 2016 32)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (call (- 0 1) (+ 0x1000 $4) 0\n               0x0F 0x10   ; arg offset and length to get the 0x1234...f0 value\n               0x20 0x40)  ; return offset and length\n        }\n      nonce: '0'\n      storage: {}\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: 0x100000000000\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n\n\n  transaction:\n    data:\n    - :label sha3_nodata      :abi f(uint) 0\n    - :label sha3_five_0s     :abi f(uint) 1\n    - :label sha3_ten_0s      :abi f(uint) 2\n    - :label sha3_0xFFFFF_0s  :abi f(uint) 3\n    - :label sha3_highmem     :abi f(uint) 4\n    - :label sha3_huge_buffer :abi f(uint) 5\n\n    # This is both sha3_bigSize and sha3_6\n    - :label sha3_neg1_neg1   :abi f(uint) 6\n\n    # sha3_bigOffset\n    - :label sha3_neg1_2      :abi f(uint) 7\n\n    # sha3_bigOffset2\n    - :label sha3_0x1000000_2 :abi f(uint) 8\n\n    # sha3_memSizeNoQuadraticCost31\n    - :label sha3_960_1       :abi f(uint) 9\n\n    # sha3_memSizeQuadraticCost32\n    - :label sha3_992_1       :abi f(uint) 0x0a\n\n    # sha3_memSizeQuadraticCost33\n    - :label sha3_1024_1      :abi f(uint) 0x0b\n\n    # sha3_memSizeQuadraticCost63\n    - :label sha3_1984_1      :abi f(uint) 0x0c\n\n\n\n    # The next two cases have the same cost:\n\n    # sha3_memSizeQuadraticCost64\n    - :label sha3_2016_1      :abi f(uint) 0x0d\n    # sha3_memSizeQuadraticCost64_2\n    - :label sha3_2016_32     :abi f(uint) 0x10\n\n\n\n    # sha3_memSizeQuadraticCost65\n    - :label sha3_2048_1      :abi f(uint) 0x0e\n\n\n    # Different cost than 1024_1\n    # sha3_memSizeQuadraticCost32_zeroSize\n    - :label sha3_1024_0      :abi f(uint) 0x0f\n\n\n\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n  expect:\n    - indexes:\n        data: :label sha3_nodata\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001000:\n          storage:\n            0: 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470\n\n\n\n    - indexes:\n        data: :label sha3_five_0s\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001001:\n          storage:\n            0: 0xc41589e7559804ea4a2080dad19d876a024ccb05117835447d72ce08c1d020ec\n\n\n    - indexes:\n        data: :label sha3_ten_0s\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001002:\n          storage:\n            0: 0x6bd2dd6bd408cbee33429358bf24fdc64612fbf8b1b4db604518f40ffd34b607\n\n\n\n\n    - indexes:\n        data: :label sha3_0xFFFFF_0s\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001003:\n          storage:\n            0: 0xbe6f1b42b34644f918560a07f959d23e532dea5338e4b9f63db0caeb608018fa\n\n\n\n\n    - indexes:\n        data: :label sha3_highmem\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001004:\n          storage:\n            # Because of the costs of accessing such high\n            # memory this operation runs out of gas\n            0: 0\n\n\n\n\n    - indexes:\n        data: :label sha3_huge_buffer\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001005:\n          storage:\n            # Run out of gas\n            0: 0\n\n\n\n\n    - indexes:\n        data: :label sha3_neg1_neg1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001006:\n          storage:\n            # Run out of gas\n            0: 0\n\n\n    - indexes:\n        data: :label sha3_neg1_2\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001007:\n          storage:\n            # Run out of gas\n            0: 0\n\n\n\n    - indexes:\n        data: :label sha3_0x1000000_2\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        # Run out of gas\n        0000000000000000000000000000000000001008:\n          storage:\n            0: 0\n\n\n\n    # These tests are to check the memory access costs, so\n    # they include the post transaction balance\n    - indexes:\n        data: :label sha3_960_1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001009:\n          storage:\n            0: 0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a\n\n\n    - indexes:\n        data: :label sha3_992_1\n        gas: !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        000000000000000000000000000000000000100a:\n          storage:\n            0: 0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a\n\n\n    - indexes:\n        data: :label sha3_1024_1\n        gas: !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        000000000000000000000000000000000000100b:\n          storage:\n            0: 0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a\n\n\n    - indexes:\n        data: :label sha3_1984_1\n        gas: !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        000000000000000000000000000000000000100c:\n          storage:\n            0: 0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a\n\n\n    - indexes:\n        data: :label sha3_2016_1\n        gas: !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        000000000000000000000000000000000000100d:\n          storage:\n            0: 0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a\n\n\n    - indexes:\n        data: :label sha3_2048_1\n        gas: !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        000000000000000000000000000000000000100e:\n          storage:\n            0: 0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a\n\n\n    # Different cost from sha3_1024_1\n    - indexes:\n        data: :label sha3_1024_0\n        gas: !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        000000000000000000000000000000000000100f:\n          storage:\n            0: 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470\n\n\n    # Same cost as sha3_2016_1\n    - indexes:\n        data: :label sha3_2016_32\n        gas: !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000001010:\n          storage:\n            0: 0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563\n"
  },
  {
    "path": "tests/static/state_tests/VMTests/vmTests/suicideFiller.yml",
    "content": "suicide:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    # suicide0, self balance to CALLER (the account\n    # that called us, not the source of the transaction)\n    0000000000000000000000000000000000001000:\n      balance: 0xFF000000000000\n      code: |\n        {\n           (selfdestruct (caller))\n        }\n      nonce: '0'\n      storage: {}\n\n\n    # suicideNotExisting\n    0000000000000000000000000000000000001001:\n      balance: 0x100000000000\n      code: |\n        {\n           (selfdestruct 0xdead)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    # suicideEtherToMe\n    0000000000000000000000000000000000001002:\n      balance: 0x100000000000\n      code: |\n        {\n           (selfdestruct (address))\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: 0x100000000000\n      code: |\n        {\n           (call (gas) $4 0 0 0 0 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '100000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n\n\n  transaction:\n    data:\n    - :label caller   :abi f(uint) 0x1000\n    - :label random   :abi f(uint) 0x1001\n    - :label myself   :abi f(uint) 0x1002\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - 0\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n  expect:\n    - indexes:\n        data: :label caller\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          balance: 99999999711710\n        cccccccccccccccccccccccccccccccccccccccc:\n          balance: 0xff100000000000\n\n\n    - indexes:\n        data: :label random\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        000000000000000000000000000000000000dead:\n          balance: 0x100000000000\n\n\n    - indexes:\n        data: :label myself\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          balance: 0x100000000000\n"
  },
  {
    "path": "tests/static/state_tests/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stArgsZeroOneBalance/README.md",
    "content": "This tests contain opcodes that has input arguments.But that arguments passed as output of another opcode. \nIn this case it's Balance opcode. Each test has 2 transactions: one makes balance to return 0, another one makes balance to return 1.\n\nThis is done so evmjit or other compiler would not define opcode arguments as constant, but as a variable rather. Because evmjit encountered some bugs for this kind of scenario.\n\n\nPseudo code description:\n\n```\nforeach opcodes as opcode\n{\n a = 0\n opcode (a,a, ...)\n\n a = 1\n opcode (a,a, ...)\n}\n```\n"
  },
  {
    "path": "tests/static/state_tests/stArgsZeroOneBalance/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stArgsZeroOneBalance/addNonConstFiller.yml",
    "content": "---\naddNonConst:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '1000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 0\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 1\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x02'\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: ''\n      code: '{ [[ 0 ]](ADD (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>)) }'\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '0'\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stArgsZeroOneBalance/addmodNonConstFiller.yml",
    "content": "---\naddmodNonConst:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '1000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 0\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 1\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: ''\n      code: '{ [[ 0 ]](ADDMOD (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>)) }'\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '0'\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stArgsZeroOneBalance/andNonConstFiller.yml",
    "content": "---\nandNonConst:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '1000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 0\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 1\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x01'\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: ''\n      code: '{ [[ 0 ]](AND (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>)) }'\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '0'\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stArgsZeroOneBalance/balanceNonConstFiller.yml",
    "content": "---\nbalanceNonConst:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '1000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 0\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 1\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: ''\n      code: '{ [[ 0 ]](BALANCE (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>)) }'\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '0'\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stArgsZeroOneBalance/byteNonConstFiller.yml",
    "content": "---\nbyteNonConst:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '1000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 0\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0'\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 1\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0'\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: ''\n      code: '{ [[ 0 ]](BYTE (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>)) }'\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '0'\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stArgsZeroOneBalance/callNonConstFiller.yml",
    "content": "---\ncallNonConst:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '1000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 0\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x01'\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 1\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0'\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: ''\n      code: '{ [[ 0 ]] (CALL (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>)) }'\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '0'\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stArgsZeroOneBalance/callcodeNonConstFiller.yml",
    "content": "---\ncallcodeNonConst:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '1000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 0\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x01'\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 1\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0'\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: ''\n      code: '{ [[ 0 ]] (CALLCODE (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>)) }'\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '0'\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stArgsZeroOneBalance/calldatacopyNonConstFiller.yml",
    "content": "---\ncalldatacopyNonConst:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '1000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 0\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0'\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 1\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0'\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: ''\n      code: '{ (CALLDATACOPY (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>)) }'\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    - ':raw 0x11223344'\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '0'\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stArgsZeroOneBalance/calldataloadNonConstFiller.yml",
    "content": "---\ncalldataloadNonConst:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '1000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int 1\n      gas: !!int -1\n      value: !!int 0\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x1122334400000000000000000000000000000000000000000000000000000000'\n  - indexes:\n      data: !!int 0\n      gas: !!int -1\n      value: !!int 0\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  - indexes:\n      data: !!int 1\n      gas: !!int -1\n      value: !!int 1\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x2233440000000000000000000000000000000000000000000000000000000000'\n  - indexes:\n      data: !!int 0\n      gas: !!int -1\n      value: !!int 1\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: ''\n      code: '{ [[ 0 ]](CALLDATALOAD (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>)) }'\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    - ':raw 0x11223344'\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '0'\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stArgsZeroOneBalance/codecopyNonConstFiller.yml",
    "content": "---\ncodecopyNonConst:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '1000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 0\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0'\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 1\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0'\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: ''\n      code: '{ (CODECOPY (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>)) }'\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '0'\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stArgsZeroOneBalance/createNonConstFiller.yml",
    "content": "---\ncreateNonConst:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '1000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 0\n    network:\n    - '>=Cancun'\n    result:\n      095e7baea6a6c7c4c2dfeb977efac326af552d87:\n        storage:\n          0x: '0xd2571607e241ecf590ed94b12d87c94babe36db6'\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 1\n    network:\n    - '>=Cancun'\n    result:\n      095e7baea6a6c7c4c2dfeb977efac326af552d87:\n        storage:\n          0x: '0xd2571607e241ecf590ed94b12d87c94babe36db6'\n  pre:\n    095e7baea6a6c7c4c2dfeb977efac326af552d87:\n      balance: ''\n      code: '{ [[ 0 ]] (CREATE (BALANCE 0x095e7baea6a6c7c4c2dfeb977efac326af552d87) (BALANCE 0x095e7baea6a6c7c4c2dfeb977efac326af552d87) (BALANCE 0x095e7baea6a6c7c4c2dfeb977efac326af552d87)) }'\n      nonce: '0'\n      storage: {}\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: 45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\n    to: 095e7baea6a6c7c4c2dfeb977efac326af552d87\n    value:\n    - '0'\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stArgsZeroOneBalance/delegatecallNonConstFiller.yml",
    "content": "---\ndelegatecallNonConst:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '1000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 0\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x01'\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 1\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0'\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: ''\n      code: '{ [[ 0 ]] (DELEGATECALL (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>)) }'\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '0'\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stArgsZeroOneBalance/divNonConstFiller.yml",
    "content": "---\ndivNonConst:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '1000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 0\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 1\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x01'\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: ''\n      code: '{ [[ 0 ]](DIV (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>)) }'\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '0'\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stArgsZeroOneBalance/eqNonConstFiller.yml",
    "content": "---\neqNonConst:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '1000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 0\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x01'\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 1\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x01'\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: ''\n      code: '{ [[ 0 ]](EQ (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>)) }'\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '0'\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stArgsZeroOneBalance/expNonConstFiller.yml",
    "content": "---\nexpNonConst:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '1000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 0\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x01'\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 1\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x01'\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: ''\n      code: '{ [[ 0 ]](EXP (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>)) }'\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '0'\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stArgsZeroOneBalance/extcodecopyNonConstFiller.yml",
    "content": "---\nextcodecopyNonConst:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '1000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 0\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0'\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 1\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0'\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: ''\n      code: '{ (EXTCODECOPY (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>)) }'\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '0'\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stArgsZeroOneBalance/extcodesizeNonConstFiller.yml",
    "content": "---\nextcodesizeNonConst:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '1000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 0\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 1\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: ''\n      code: '{ [[ 0 ]](EXTCODESIZE (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>)) }'\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '0'\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stArgsZeroOneBalance/gtNonConstFiller.yml",
    "content": "---\ngtNonConst:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '1000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 0\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 1\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: ''\n      code: '{ [[ 0 ]](GT (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>)) }'\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '0'\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stArgsZeroOneBalance/iszeroNonConstFiller.yml",
    "content": "---\niszeroNonConst:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '1000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 0\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x01'\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 1\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: ''\n      code: '{ [[ 0 ]](ISZERO (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>)) }'\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '0'\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stArgsZeroOneBalance/jumpNonConstFiller.yml",
    "content": "---\njumpNonConst:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '1000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 0\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          '0x01': '0x00'\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 1\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          '0x01': '0x00'\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: ''\n      code: '{ (JUMP (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>)) }'\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '0'\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stArgsZeroOneBalance/jumpiNonConstFiller.yml",
    "content": "---\njumpiNonConst:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '1000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 0\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          '0x01': '0x00'\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 1\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          '0x01': '0x00'\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: ''\n      code: '{ (JUMPI (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>)) }'\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '0'\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stArgsZeroOneBalance/log0NonConstFiller.yml",
    "content": "---\nlog0NonConst:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '1000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 0\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 1\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: ''\n      code: '{ (LOG0 (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>)) }'\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '0'\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stArgsZeroOneBalance/log1NonConstFiller.yml",
    "content": "---\nlog1NonConst:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '1000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 0\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 1\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: ''\n      code: '{ (LOG1 (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>)) }'\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '0'\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stArgsZeroOneBalance/log2NonConstFiller.yml",
    "content": "---\nlog2NonConst:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '1000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 0\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 1\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: ''\n      code: '{ (LOG2 (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>)) }'\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '0'\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stArgsZeroOneBalance/log3NonConstFiller.yml",
    "content": "---\nlog3NonConst:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '1000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 0\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 1\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: ''\n      code: '{ (LOG3 (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>)) }'\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '0'\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stArgsZeroOneBalance/ltNonConstFiller.yml",
    "content": "---\nltNonConst:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '1000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 0\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 1\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: ''\n      code: '{ [[ 0 ]](LT (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>)) }'\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '0'\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stArgsZeroOneBalance/mloadNonConstFiller.yml",
    "content": "---\nmloadNonConst:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '1000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 0\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 1\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: ''\n      code: '{ [[ 0 ]](MLOAD (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>)) }'\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '0'\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stArgsZeroOneBalance/modNonConstFiller.yml",
    "content": "---\nmodNonConst:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '1000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 0\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 1\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: ''\n      code: '{ [[ 0 ]](MOD (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>)) }'\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '0'\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stArgsZeroOneBalance/mstore8NonConstFiller.yml",
    "content": "---\nmstore8NonConst:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '1000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 0\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 1\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: ''\n      code: '{ (MSTORE8 (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>)) }'\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '0'\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stArgsZeroOneBalance/mstoreNonConstFiller.yml",
    "content": "---\nmstoreNonConst:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '1000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 0\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 1\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: ''\n      code: '{ (MSTORE (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>)) }'\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '0'\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stArgsZeroOneBalance/mulNonConstFiller.yml",
    "content": "---\nmulNonConst:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '1000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 0\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 1\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x01'\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: ''\n      code: '{ [[ 0 ]](MUL (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>)) }'\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '0'\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stArgsZeroOneBalance/mulmodNonConstFiller.yml",
    "content": "---\nmulmodNonConst:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '1000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 0\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 1\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: ''\n      code: '{ [[ 0 ]](MULMOD (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>)) }'\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '0'\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stArgsZeroOneBalance/notNonConstFiller.yml",
    "content": "---\nnotNonConst:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '1000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 0\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 1\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe'\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: ''\n      code: '{ [[ 0 ]](NOT (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>)) }'\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '0'\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stArgsZeroOneBalance/orNonConstFiller.yml",
    "content": "---\norNonConst:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '1000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 0\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 1\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x01'\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: ''\n      code: '{ [[ 0 ]](OR (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>)) }'\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '0'\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stArgsZeroOneBalance/returnNonConstFiller.yml",
    "content": "---\nreturnNonConst:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '1000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 0\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 1\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: ''\n      code: '{ (RETURN (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>)) }'\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '0'\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stArgsZeroOneBalance/sdivNonConstFiller.yml",
    "content": "---\nsdivNonConst:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '1000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 0\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 1\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x01'\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: ''\n      code: '{ [[ 0 ]](SDIV (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>)) }'\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '0'\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stArgsZeroOneBalance/sgtNonConstFiller.yml",
    "content": "---\nsgtNonConst:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '1000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 0\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 1\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: ''\n      code: '{ [[ 0 ]](SGT (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>)) }'\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '0'\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stArgsZeroOneBalance/sha3NonConstFiller.yml",
    "content": "---\nsha3NonConst:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '1000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 0\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470'\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 1\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a'\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: ''\n      code: '{ [[ 0 ]](KECCAK256 (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>)) }'\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '0'\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stArgsZeroOneBalance/signextNonConstFiller.yml",
    "content": "---\nsignextNonConst:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '1000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 0\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 1\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x01'\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: ''\n      code: '{ [[ 0 ]](SIGNEXTEND (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>)) }'\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '0'\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stArgsZeroOneBalance/sloadNonConstFiller.yml",
    "content": "---\nsloadNonConst:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '1000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 0\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          '0x03': '0x00'\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 1\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          '0x03': '0x00'\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: ''\n      code: '{ [[ 3 ]] (SLOAD (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>)) }'\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '0'\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stArgsZeroOneBalance/sltNonConstFiller.yml",
    "content": "---\nsltNonConst:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '1000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 0\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 1\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: ''\n      code: '{ [[ 0 ]](SLT (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>)) }'\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '0'\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stArgsZeroOneBalance/smodNonConstFiller.yml",
    "content": "---\nsmodNonConst:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '1000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 0\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 1\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: ''\n      code: '{ [[ 0 ]](SMOD (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>)) }'\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '0'\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stArgsZeroOneBalance/sstoreNonConstFiller.yml",
    "content": "---\nsstoreNonConst:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '1000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 0\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          '0x01': '0x00'\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 1\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          '0x01': '0x01'\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: ''\n      code: '{ (SSTORE (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>)) }'\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '0'\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stArgsZeroOneBalance/subNonConstFiller.yml",
    "content": "---\nsubNonConst:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '1000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 0\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 1\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: ''\n      code: '{ [[ 0 ]](SUB (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>)) }'\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '0'\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stArgsZeroOneBalance/suicideNonConstFiller.yml",
    "content": "---\nsuicideNonConst:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '1000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - '>=Cancun'\n    result:\n      095e7baea6a6c7c4c2dfeb977efac326af552d87:\n        balance: '0'\n        nonce: '0'\n        code: '0x73095e7baea6a6c7c4c2dfeb977efac326af552d8731ff00'\n        storage: {}\n            \n  pre:\n    095e7baea6a6c7c4c2dfeb977efac326af552d87:\n      balance: ''\n      code: '{ (SELFDESTRUCT (BALANCE 0x095e7baea6a6c7c4c2dfeb977efac326af552d87)) }'\n      nonce: '0'\n      storage: {}\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: 45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\n    to: 095e7baea6a6c7c4c2dfeb977efac326af552d87\n    value:\n    - '0'\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stArgsZeroOneBalance/xorNonConstFiller.yml",
    "content": "---\nxorNonConst:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '1000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 0\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int 1\n    network:\n    - '>=Cancun'\n    result:\n      <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n        storage:\n          0x: '0x00'\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: ''\n      code: '{ [[ 0 ]](XOR (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) (BALANCE <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>)) }'\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '0'\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stAttackTest/ContractCreationSpamFiller.json",
    "content": "{\n    \"ContractCreationSpam\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n            \"//comment\" : \"Running OOG on contract creation, eating ~10M gas\",\n\t        \"network\" : [ \">=Cancun\"],\n\t        \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n\t        \"result\" : {\n                        \"6a0a0fc761c612c340a0e98d33b37a75e5268472\" : {\n                            \"nonce\" : \"0x01\",\n                            \"storage\" : {\n                \t\t\t\t\"0x00\" : \"0x010c20\"\n                            }\n                        },\n                        \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                            \"nonce\" : \"0x01\",\n                            \"storage\" : {\n                            }\n                        },\n            \t\t\t\"0000000000000000000000000000000000000001\" : {\n                            \"shouldnotexist\" : \"1\"\n                        },\n                        \"0000000000000000000000000000000000000002\" : {\n                            \"shouldnotexist\" : \"1\"\n                        },\n                        \"0000000000000000000000000000000000000003\" : {\n                            \"shouldnotexist\" : \"1\"\n                        },\n                        \"0000000000000000000000000000000000000004\" : {\n                            \"shouldnotexist\" : \"1\"\n                        },\n                        \"0000000000000000000000000000000000000005\" : {\n                            \"shouldnotexist\" : \"1\"\n                        },\n                        \"0000000000000000000000000000000000000006\" : {\n                            \"shouldnotexist\" : \"1\"\n                        },\n                        \"0000000000000000000000000000000000000015\" : {\n                            \"shouldnotexist\" : \"1\"\n                        },\n                        \"000000000000000000000000000000000000006e\" : {\n                            \"shouldnotexist\" : \"1\"\n                        },\n                        \"0000000000000000000000000000000000002170\" : {\n                            \"shouldnotexist\" : \"1\"\n                        }\n               }\n            }\n        ],\n        \"pre\" : {\n            \"6a0a0fc761c612C340a0e98d33b37a75e5268472\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x7f6004600c60003960046000f3600035ff00000000000000000000000000000000600052602060006000f0600054805b6001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1505a616000106200002f57600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"6a0a0fc761c612C340a0e98d33b37a75e5268472\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stAttackTest/CrashingTransactionFiller.json",
    "content": "{\n    \"CrashingTransaction\" : {\n        \"_info\" : {\n            \"comment\" : \"https://ropsten.etherscan.io/tx/0x8ec445380649f6c75a042a438ea9256c2fab2a6a3437904c9e5a712fcbf8a54a\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"4712388\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"nonce\" : \"0x0cc7\"\n\t\t            },\n\t\t            \"0xecbf9aa676d9e0bbba7e517d1350c1b64f8c6779\" : {\n\t\t                \"balance\" : \"0x01\",\n\t\t                \"code\" : \"0x60606040526008565b00\",\n\t\t                \"nonce\" : \"0x7c\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"3270\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x60606040525b5b61c3505a1115602c576040516034806039833901809050604051809103906000f0506006565b5b600a80606d6000396000f360606040525b3373ffffffffffffffffffffffffffffffffffffffff16ff5b600a80602a6000396000f360606040526008565b0060606040526008565b00\"\n            ],\n            \"gasLimit\" : [\n                \"4657786\"\n            ],\n            \"gasPrice\" : \"11\",\n            \"nonce\" : \"3270\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stAttackTest/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stBadOpcode/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stBadOpcode/eip2315NotRemovedFiller.json",
    "content": "{\n  \"eip2315NotRemoved\" : {\n    \"env\" : {\n      \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n      \"currentDifficulty\" : \"0x020000\",\n      \"currentGasLimit\" : \"0x7fffffffffffffff\",\n      \"currentNumber\" : \"1\",\n      \"currentTimestamp\" : \"1000\"\n    },\n    \"expect\" : [\n      {\n        \"indexes\" : {\n          \"data\" : -1,\n          \"gas\" : -1,\n          \"value\" : -1\n        },\n        \"network\" : [\">=Cancun\"],\n        \"result\" : {\n          \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n             \"storage\": {}\n          }\n        }\n      }\n    ],\n    \"pre\" : {\n      \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n        \"balance\" : \"1000000000000000000\",\n        \"code\" : \":raw 0x60045e005c60016000555d\",\n        \"nonce\" : \"0\",\n        \"storage\" : {\n        }\n      },\n      \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n        \"balance\" : \"0x7fffffffffffffff\",\n        \"code\" : \"\",\n        \"nonce\" : \"0\",\n        \"storage\" : {\n        }\n      }\n    },\n    \"transaction\" : {\n      \"data\" : [\n        \"\"\n      ],\n      \"gasLimit\" : [\n        \"400000\"\n      ],\n      \"gasPrice\" : \"10\",\n      \"nonce\" : \"0\",\n      \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n      \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n      \"value\" : [\n        \"0\"\n      ]\n    }\n  }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stBadOpcode/invalidAddrFiller.yml",
    "content": "# Check that addresses over 2^160 are truncated so only the least significant \n# 160 bits are meaningful\n\ninvalidAddr:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    <contract:0x000000000000000000000000000000000000c0de>:\n      balance: 0x10000\n      code: |\n        {\n              [0] 0xDEADBEEF\n              (return 0 0x120)\n        }\n      nonce: 0\n      storage: {}\n\n    <contract:dead1:0x0000000000000000000000000000000000dead01>:\n      balance: 0x1000\n      code: |\n         {\n            (selfdestruct $0)\n         }\n      nonce: 0\n      storage: {}\n\n\n    <contract:dead2:0x0000000000000000000000000000000000dead02>:\n      balance: 0x1000\n      code: |\n         {\n            (selfdestruct $0)\n         }\n      nonce: 0\n      storage: {}\n\n\n \n    <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           ; Inputs\n           (def 'opcode $4)\n           (def 'addrBase $36)\n           (def 'addrType $68)\n\n           ; Constants\n           (def 'NOP 0)\n           (def 'two160 (shl 1 160))\n           (def 'two254 (shl 1 254))\n           (def 'two255 (shl 1 255))\n           (def 'word 0x20) ; 32 bytes per word\n\n           ; Variables           \n           (def 'addr1       0x2000)\n           (def 'res1        0x2020)\n           (def 'addr2       0x2040)\n           (def 'res2        0x2060)\n           (def 'resExpected 0x2080)\n           (def 'temp        0x20A0)\n\n           ; addrBase 1 is a normal valid address (<contract:0x000000000000000000000000000000000000c0de>)\n           ; addrBase 2 is a precompiled address  (0x00000002)\n           (if (= addrBase 1) [addr1] <contract:0x000000000000000000000000000000000000c0de> NOP)\n           (if (= addrBase 2) [addr1] 0x0002 NOP)\n\n           ; addrType  0 is to just use the base (twice, verify result is consistent)\n           ; addrType  1 is addr1 + 2^160\n           ; addrType  2 is addr1 + 2^254\n           ; addrType  3 is addr1 + 2^255\n           ; addrType  4 is addr1 - 2^160\n\n           (if (= addrType 0) [addr2] @addr1 NOP)\n           (if (= addrType 1) [addr2] (+ @addr1 two160) NOP)\n           (if (= addrType 2) [addr2] (+ @addr1 two254) NOP)\n           (if (= addrType 3) [addr2] (+ @addr1 two255) NOP)\n           (if (= addrType 4) [addr2] (- @addr1 two160) NOP)\n\n           ; Make sure res1 and res2 store different values to verify they are overwritten\n           [res1] 0xFF00FF00FF00FF00\n           [res2] 0x00FF00FF00FF00FF\n    \n           ; BALANCE\n           (if (= opcode 0x31) {\n             [res1] (balance @addr1)\n             [res2] (balance @addr2)\n             (if (= addrBase 1) [resExpected] 0x10000 [resExpected] 0x0)\n           } NOP)\n\n           ; EXTCODESIZE\n           (if (= opcode 0x3b) {\n             [res1] (extcodesize @addr1)\n             [res2] (extcodesize @addr2)\n             (if (= addrBase 1) [resExpected] 0x0F [resExpected] 0x0)\n           } NOP)\n\n\n           ; EXTCODECOPY\n           (if (= opcode 0x3c) {\n             (extcodecopy @addr1 res1 0 word)\n             (extcodecopy @addr2 res2 0 word)\n             (if (= addrBase 1) [resExpected] 0x63deadbeef6000526101206000f3000000000000000000000000000000000000\n                                [resExpected] 0x0)\n           } NOP)\n\n           ; EXTCODHASH\n           (if (= opcode 0x3f) {\n             [res1] (extcodehash @addr1)\n             [res2] (extcodehash @addr2)\n             (if (= addrBase 1) [resExpected] 0x85ab232a015279867a1f5b5da4f9688c6c92e555c122e9147f9d13bc53c03e92\n                                [resExpected] 0x0)           \n           } NOP)\n\n           ; CALL\n           (if (= opcode 0xf1) {\n             (call 0x1000 @addr1 0 0x2000 0x20 res1 word)\n             (call 0x1000 @addr2 0 0x2000 0x20 res2 word)\n             (if (= addrBase 1) [resExpected] 0xDEADBEEF \n                                [resExpected] 0x9267d3dbed802941483f1afa2a6bc68de5f653128aca9bf1461c5d0a3ad36ed2)\n            } NOP)\n\n\n           ; CALLCODE\n           (if (= opcode 0xf2) {\n             (callcode 0x1000 @addr1 0 0x2000 0x20 res1 word)\n             (callcode 0x1000 @addr2 0 0x2000 0x20 res2 word)\n             (if (= addrBase 1) [resExpected] 0xDEADBEEF \n                                [resExpected] 0x9267d3dbed802941483f1afa2a6bc68de5f653128aca9bf1461c5d0a3ad36ed2)\n            } NOP)\n\n\n           ; DELEGATECALL\n           (if (= opcode 0xf4) {\n             (delegatecall 0x1000 @addr1 0x2000 0x20 res1 word)\n             (delegatecall 0x1000 @addr2 0x2000 0x20 res2 word)\n             (if (= addrBase 1) [resExpected] 0xDEADBEEF \n                                [resExpected] 0x9267d3dbed802941483f1afa2a6bc68de5f653128aca9bf1461c5d0a3ad36ed2)\n            } NOP)\n\n\n           ; STATICCALL\n           (if (= opcode 0xfa) {\n             (staticcall 0x1000 @addr1 0x2000 0x20 res1 word)\n             (staticcall 0x1000 @addr2 0x2000 0x20 res2 word)\n             (if (= addrBase 1) [resExpected] 0xDEADBEEF \n                                [resExpected] 0x9267d3dbed802941483f1afa2a6bc68de5f653128aca9bf1461c5d0a3ad36ed2)\n\n            } NOP)\n\n\n           ; SELFDESTRUCT\n           (if (= opcode 0xff) {\n             ; Save the current balance\n             [temp] (balance @addr1)\n\n             ; Tell 0xdead01 to commit suicide, see how much is in @addr1\n             (call 0x10000000 <contract:dead1:0x0000000000000000000000000000000000dead01> 0 addr1 word 0 0)\n             [res1] (balance @addr1)\n\n             ; Tell 0xdead02 to commit suicide, see how much is in @addr1\n             (call 0x10000000 <contract:dead2:0x0000000000000000000000000000000000dead02> 0 addr2 word 0 0)\n             [res2] (balance @addr1)\n\n             ; Calculate differences\n             [res2] (- @res2 @res1)\n             [res1] (- @res1 @temp)\n\n             (if (= addrBase 1) [resExpected] 0x1000 [resExpected] 0x1000)\n            } NOP)\n\n\n           ; Verify res1, res2, and resExpected all contain the same value\n           [[0]] (- @res1 @res2)\n           [[1]] (- @res1 @resExpected)\n     \n           ; Kill the goat\n           [[0x100]] 0\n        }\n      nonce: '0'\n      storage:\n        # Sacrificial goat to tell reverts apart from successes\n        0x100: 0x60A7\n\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n  transaction:\n    data:\n    # Param #1: The opcode\n\n    # Param #2: addrBase\n    #    1 is a normal valid address (<contract:0x000000000000000000000000000000000000c0de>)\n    #    2 is a precompiled address  (0x00000002)\n\n    # Param #3: addrType\n    #  0 is to just use the base (twice, verify result is consistent)\n    #  1 is addr1 + 2^160\n    #  2 is addr1 + 2^254\n    #  3 is addr1 + 2^255\n    #  4 is addr1 - 2^160\n\n    # BALANCE\n    - :label ok   :abi f(uint,uint,uint) 0x31 1 0  \n    - :label ok   :abi f(uint,uint,uint) 0x31 2 0  \n    - :label ok   :abi f(uint,uint,uint) 0x31 1 1  \n    - :label ok   :abi f(uint,uint,uint) 0x31 2 1  \n    - :label ok   :abi f(uint,uint,uint) 0x31 1 2\n    - :label ok   :abi f(uint,uint,uint) 0x31 2 2 \n    - :label ok   :abi f(uint,uint,uint) 0x31 1 3 \n    - :label ok   :abi f(uint,uint,uint) 0x31 2 3 \n    - :label ok   :abi f(uint,uint,uint) 0x31 1 4 \n    - :label ok   :abi f(uint,uint,uint) 0x31 2 4 \n\n\n\n    # EXTCODESIZE  (10+)\n    - :label ok   :abi f(uint,uint,uint) 0x3b 1 0  \n    - :label ok   :abi f(uint,uint,uint) 0x3b 2 0  \n    - :label ok   :abi f(uint,uint,uint) 0x3b 1 1  \n    - :label ok   :abi f(uint,uint,uint) 0x3b 2 1  \n    - :label ok   :abi f(uint,uint,uint) 0x3b 1 2\n    - :label ok   :abi f(uint,uint,uint) 0x3b 2 2 \n    - :label ok   :abi f(uint,uint,uint) 0x3b 1 3 \n    - :label ok   :abi f(uint,uint,uint) 0x3b 2 3 \n    - :label ok   :abi f(uint,uint,uint) 0x3b 1 4 \n    - :label ok   :abi f(uint,uint,uint) 0x3b 2 4 \n\n    # EXTCODECOPY  (20+)\n    - :label ok   :abi f(uint,uint,uint) 0x3c 1 0  \n    - :label ok   :abi f(uint,uint,uint) 0x3c 2 0  \n    - :label ok   :abi f(uint,uint,uint) 0x3c 1 1  \n    - :label ok   :abi f(uint,uint,uint) 0x3c 2 1  \n    - :label ok   :abi f(uint,uint,uint) 0x3c 1 2\n    - :label ok   :abi f(uint,uint,uint) 0x3c 2 2 \n    - :label ok   :abi f(uint,uint,uint) 0x3c 1 3 \n    - :label ok   :abi f(uint,uint,uint) 0x3c 2 3 \n    - :label ok   :abi f(uint,uint,uint) 0x3c 1 4 \n    - :label ok   :abi f(uint,uint,uint) 0x3c 2 4 \n\n\n    # EXTCODEHASH  (30+)\n    - :label ok   :abi f(uint,uint,uint) 0x3f 1 0  \n    - :label ok   :abi f(uint,uint,uint) 0x3f 2 0  \n    - :label ok   :abi f(uint,uint,uint) 0x3f 1 1  \n    - :label ok   :abi f(uint,uint,uint) 0x3f 2 1  \n    - :label ok   :abi f(uint,uint,uint) 0x3f 1 2\n    - :label ok   :abi f(uint,uint,uint) 0x3f 2 2 \n    - :label ok   :abi f(uint,uint,uint) 0x3f 1 3 \n    - :label ok   :abi f(uint,uint,uint) 0x3f 2 3 \n    - :label ok   :abi f(uint,uint,uint) 0x3f 1 4 \n    - :label ok   :abi f(uint,uint,uint) 0x3f 2 4 \n\n\n    # CALL         (40+)\n    - :label ok   :abi f(uint,uint,uint) 0xf1 1 0  \n    - :label ok   :abi f(uint,uint,uint) 0xf1 2 0  \n    - :label ok   :abi f(uint,uint,uint) 0xf1 1 1  \n    - :label ok   :abi f(uint,uint,uint) 0xf1 2 1  \n    - :label ok   :abi f(uint,uint,uint) 0xf1 1 2\n    - :label ok   :abi f(uint,uint,uint) 0xf1 2 2 \n    - :label ok   :abi f(uint,uint,uint) 0xf1 1 3 \n    - :label ok   :abi f(uint,uint,uint) 0xf1 2 3 \n    - :label ok   :abi f(uint,uint,uint) 0xf1 1 4 \n    - :label ok   :abi f(uint,uint,uint) 0xf1 2 4\n\n \n    # CALLCODE     (50+)\n    - :label ok   :abi f(uint,uint,uint) 0xf2 1 0  \n    - :label ok   :abi f(uint,uint,uint) 0xf2 2 0  \n    - :label ok   :abi f(uint,uint,uint) 0xf2 1 1  \n    - :label ok   :abi f(uint,uint,uint) 0xf2 2 1  \n    - :label ok   :abi f(uint,uint,uint) 0xf2 1 2\n    - :label ok   :abi f(uint,uint,uint) 0xf2 2 2 \n    - :label ok   :abi f(uint,uint,uint) 0xf2 1 3 \n    - :label ok   :abi f(uint,uint,uint) 0xf2 2 3 \n    - :label ok   :abi f(uint,uint,uint) 0xf2 1 4 \n    - :label ok   :abi f(uint,uint,uint) 0xf2 2 4\n\n \n    # DELEGATECALL  (60+)\n    - :label ok   :abi f(uint,uint,uint) 0xf4 1 0  \n    - :label ok   :abi f(uint,uint,uint) 0xf4 2 0  \n    - :label ok   :abi f(uint,uint,uint) 0xf4 1 1  \n    - :label ok   :abi f(uint,uint,uint) 0xf4 2 1  \n    - :label ok   :abi f(uint,uint,uint) 0xf4 1 2\n    - :label ok   :abi f(uint,uint,uint) 0xf4 2 2 \n    - :label ok   :abi f(uint,uint,uint) 0xf4 1 3 \n    - :label ok   :abi f(uint,uint,uint) 0xf4 2 3 \n    - :label ok   :abi f(uint,uint,uint) 0xf4 1 4 \n    - :label ok   :abi f(uint,uint,uint) 0xf4 2 4 \n\n\n    # STATICCALL     (70+)\n    - :label ok   :abi f(uint,uint,uint) 0xfa 1 0  \n    - :label ok   :abi f(uint,uint,uint) 0xfa 2 0  \n    - :label ok   :abi f(uint,uint,uint) 0xfa 1 1  \n    - :label ok   :abi f(uint,uint,uint) 0xfa 2 1  \n    - :label ok   :abi f(uint,uint,uint) 0xfa 1 2\n    - :label ok   :abi f(uint,uint,uint) 0xfa 2 2 \n    - :label ok   :abi f(uint,uint,uint) 0xfa 1 3 \n    - :label ok   :abi f(uint,uint,uint) 0xfa 2 3 \n    - :label ok   :abi f(uint,uint,uint) 0xfa 1 4 \n    - :label ok   :abi f(uint,uint,uint) 0xfa 2 4 \n\n\n    # SELFDESTRUCT   (80+)\n    # Address type 2 is meaningless, we need to call a suicidal contract\n    - :label ok   :abi f(uint,uint,uint) 0xff 1 0  \n    - :label ok   :abi f(uint,uint,uint) 0xff 1 1  \n    - :label ok   :abi f(uint,uint,uint) 0xff 1 2\n    - :label ok   :abi f(uint,uint,uint) 0xff 1 3 \n    - :label ok   :abi f(uint,uint,uint) 0xff 1 4 \n\n\n\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>\n    value:\n    - '1'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n\n\n  expect:\n    # No revert, valid value\n    - indexes:\n        data: :label ok\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            # Difference between the two values\n            0x00: 0\n            0x01: 0\n            0x02: 0\n            0x03: 0\n            0x04: 0\n            0x05: 0\n            0x06: 0\n\n            # Dead goat\n            0x100: 0 \n\n"
  },
  {
    "path": "tests/static/state_tests/stBadOpcode/measureGasFiller.yml",
    "content": "# Measure the exact gas cost of various operations\n\n\nmeasureGas:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: \"100000000\"\n    currentNumber: \"1\"\n    currentTimestamp: \"1000\"\n\n  _info:\n    comment: Ori Pomerantz   qbzzt1@gmail.com\n\n\n  pre:\n\n    # The operations to run with different amounts of gas\n\n    # CREATE\n    0000000000000000000000000000000000C0DEF0:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin {\n          pop(create(0, 0, 0x200))\n       }        \n      nonce: 1\n      storage: {}\n\n\n    # CREATE2\n    0000000000000000000000000000000000C0DEF5:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin {\n          // SALT needs to be different each time\n          pop(create2(0, 0, 0x200, add(0x5A17, gas())))\n       }        \n      nonce: 1\n      storage: {}\n\n    # Contract to be called. It can't be an empty contract because\n    # then the first successful call adds it and therefore costs \n    # a lot more\n    000000000000000000000000000000000000CA11:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin {\n          stop()\n       }        \n      nonce: 1\n      storage: {}\n\n\n    # CALL\n    0000000000000000000000000000000000C0DEF1:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin {\n          let retval := call(gas(), 0xCA11, 0, 0, 0x100, 0, 0x100)\n       }        \n      nonce: 1\n      storage: {}\n\n\n\n\n    # CALLCODE\n    0000000000000000000000000000000000C0DEF2:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin {\n          let retval := callcode(gas(), 0xCA11, 0, 0, 0x100, 0, 0x100)\n       }        \n      nonce: 1\n      storage: {}\n\n\n    # DELEGATECALL\n    0000000000000000000000000000000000C0DEF4:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin {\n          let retval := delegatecall(gas(), 0xCA11, 0, 0x100, 0, 0x100)\n       }        \n      nonce: 1\n      storage: {}\n\n\n    # STATICCALL\n    0000000000000000000000000000000000C0DEFA:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin {\n          let retval := staticcall(gas(), 0xCA11, 0, 0x100, 0, 0x100)\n       }        \n      nonce: 1\n      storage: {}\n\n\n\n\n    # Memory access that expands the allocated memory\n    0000000000000000000000000000000000C0DE51:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin {\n          let useless := mload(0xB000)\n       }        \n      nonce: 1\n      storage: {}\n\n\n\n\n    0000000000000000000000000000000000C0DE52:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin {\n          mstore(0xB000, 0xFF)\n       }        \n      nonce: 1\n      storage: {}\n\n\n\n\n    0000000000000000000000000000000000C0DE53:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin {\n          mstore8(0xB000, 0xFF)\n       }        \n      nonce: 1\n      storage: {}\n\n\n    0000000000000000000000000000000000C0DE20:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin {\n          let useless := keccak256(0,0xBEEF)\n       }        \n      nonce: 1\n      storage: {}\n\n\n    # Access to external code\n    0000000000000000000000000000000000C0DE3B:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin {\n         let addr := 0xCA11\n         extcodecopy(addr, 0, 0, extcodesize(addr))\n       }        \n      nonce: 1\n      storage: {}\n\n\n\n\n\n\n\n\n\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin {\n         // Find the operation's cost in gas\n         let min :=     0\n         let max := 60000\n         let addr := add(0xC0DE00, calldataload(0x04))\n\n         for { } gt(sub(max,min), 1) { } { // Until we get the exact figure\n            let middle := div(add(min,max),2)\n            let result := call(middle, addr, 0, 0, 0, 0, 0)\n            if eq(result, 0) { min := middle }\n            if eq(result, 1) { max := middle }\n         }\n         sstore(0, max)\n       }        \n      nonce: 1\n      storage: {}\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: 0x\n      nonce: 1\n      storage: {}\n\n\n  transaction:\n    data:\n    - :label CREATE       :abi f(uint) 0xF0\n    - :label CREATE2      :abi f(uint) 0xF5\n\n    - :label CALL         :abi f(uint) 0xF1\n    - :label CALLCODE     :abi f(uint) 0xF2\n    - :label DELEGATECALL :abi f(uint) 0xF4\n    - :label STATICCALL   :abi f(uint) 0xFA\n\n    # Memory access that extends the allocated memory has multiple places to\n    # run out of gas\n    - :label MLOAD        :abi f(uint) 0x51\n    - :label MSTORE       :abi f(uint) 0x52\n    - :label MSTORE8      :abi f(uint) 0x53\n    - :label SHA3         :abi f(uint) 0x20\n\n    # Load and read external code\n    - :label EXTCODE      :abi f(uint) 0x3B\n\n    gasLimit:\n    - 16777216\n    gasPrice: 10\n    nonce: 1\n    to: cccccccccccccccccccccccccccccccccccccccc\n    # to: 0000000000000000000000000000000000C0DEF5\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n    value:\n    - 0\n\n  expect:\n\n    # CREATE\n    # Starting the Shanghai the cost of a CREATE[2] transaction \n    # includes a cost of 2 gas per initcode word (32 byte chunk)\n    - indexes:\n        data: \n        - :label CREATE\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0: 32089\n\n\n\n\n    # CREATE2\n    - indexes:\n        data: \n        - :label CREATE2\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0: 32193\n\n\n    - indexes:\n        data: \n        - :label CALL\n        - :label CALLCODE\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0: 144\n\n    # Slightly cheaper because there's one less PUSH (one less parameter)\n    - indexes:\n        data: \n        - :label DELEGATECALL\n        - :label STATICCALL\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0: 141\n\n    - indexes:\n        data: \n        - :label MLOAD\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0: 8110\n\n\n    - indexes:\n        data: \n        - :label MSTORE\n        - :label MSTORE8\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0: 8113\n\n    - indexes:\n        data: \n        - :label EXTCODE\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0: 221\n\n    - indexes:\n        data: :label SHA3\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0: 18348\n"
  },
  {
    "path": "tests/static/state_tests/stBadOpcode/operationDiffGasFiller.yml",
    "content": "# Run the same operations with different amounts of gas until it is successful\n# This lets it run out of gas in different points of the opcode, as requested\n# in https://github.com/ethereum/tests/issues/909\n\n\n\n\noperationDiffGas:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: \"100000000\"\n    currentNumber: \"1\"\n    currentTimestamp: \"1000\"\n\n  _info:\n    comment: Ori Pomerantz   qbzzt1@gmail.com\n\n\n  pre:\n\n    # The operations to run with different amounts of gas\n\n    # CREATE\n    0000000000000000000000000000000000C0DEF0:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin {\n          sstore(0,create(0, 0, 0x200))\n       }        \n      nonce: 1\n      storage: {}\n\n\n    # CREATE2\n    0000000000000000000000000000000000C0DEF5:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin {\n          sstore(0,create2(0, 0, 0x200, 0x5A17))\n       }        \n      nonce: 1\n      storage: {}\n\n\n    # CALL\n    0000000000000000000000000000000000C0DEF1:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin {\n          let retval := call(gas(), 0xCA11, 0, 0, 0x100, 0, 0x100)\n       }        \n      nonce: 1\n      storage: {}\n\n\n\n\n    # CALLCODE\n    0000000000000000000000000000000000C0DEF2:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin {\n          let retval := callcode(gas(), 0xCA11, 0, 0, 0x100, 0, 0x100)\n       }        \n      nonce: 1\n      storage: {}\n\n\n    # DELEGATECALL\n    0000000000000000000000000000000000C0DEF4:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin {\n          let retval := delegatecall(gas(), 0xCA11, 0, 0x100, 0, 0x100)\n       }        \n      nonce: 1\n      storage: {}\n\n\n    # STATICCALL\n    0000000000000000000000000000000000C0DEFA:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin {\n          let retval := staticcall(gas(), 0xCA11, 0, 0x100, 0, 0x100)\n       }        \n      nonce: 1\n      storage: {}\n\n\n    # Contract to the called\n    000000000000000000000000000000000000CA11:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin {\n          mstore(0, 0xDEADBEEF)\n          return(0, 0x100)\n       }        \n      nonce: 1\n      storage: {}\n\n\n\n    # Memory access that expands the allocated memory\n    0000000000000000000000000000000000C0DE51:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin {\n          let useless := mload(0xBEEF)\n       }        \n      nonce: 1\n      storage: {}\n\n\n\n\n    0000000000000000000000000000000000C0DE52:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin {\n          mstore(0xBEEF, 0xFF)\n       }        \n      nonce: 1\n      storage: {}\n\n\n\n\n    0000000000000000000000000000000000C0DE53:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin {\n          mstore8(0xBEEF, 0xFF)\n       }        \n      nonce: 1\n      storage: {}\n\n\n    0000000000000000000000000000000000C0DE20:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin {\n          let useless := keccak256(0,0xBEEF)\n       }        \n      nonce: 1\n      storage: {}\n\n\n    # Access to external code\n    0000000000000000000000000000000000C0DE3B:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin {\n         let addr := 0xCA11\n         extcodecopy(addr, 0, 0, extcodesize(addr))\n       }        \n      nonce: 1\n      storage: {}\n\n\n\n\n\n\n\n\n\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin {\n         // Run the operation with gasAmt, gasAmt+gasDiff, gasAmt+2*gasDiff, etc.\n         let gasAmt := calldataload(0x24)\n         let gasDiff := calldataload(0x44)\n         let addr := add(0xC0DE00, calldataload(0x04))\n         let result := 0\n\n         for { } eq(result, 0) { } {     // Until the operation is successful\n            result := call(gasAmt, addr, 0, 0, 0, 0, 0)\n            gasAmt := add(gasAmt, gasDiff)\n         }\n         sstore(0, sub(gasAmt, gasDiff))\n       }        \n      nonce: 1\n      storage: {}\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: 0x\n      nonce: 1\n      storage: {}\n\n\n  transaction:\n    data:\n    - :label CREATE       :abi f(uint,uint,uint) 0xF0 0 100\n    - :label CREATE2      :abi f(uint,uint,uint) 0xF5 0 100\n\n    - :label CALL         :abi f(uint,uint,uint) 0xF1 0 100\n    - :label CALLCODE     :abi f(uint,uint,uint) 0xF2 0 100\n    - :label DELEGATECALL :abi f(uint,uint,uint) 0xF4 0 100\n    - :label STATICCALL   :abi f(uint,uint,uint) 0xFA 0 100\n\n    # Memory access that extends the allocated memory has multiple places to\n    # run out of gas\n    - :label MLOAD        :abi f(uint,uint,uint) 0x51 0 100\n    - :label MSTORE       :abi f(uint,uint,uint) 0x52 0 100\n    - :label MSTORE8      :abi f(uint,uint,uint) 0x53 0 100\n    - :label SHA3         :abi f(uint,uint,uint) 0x20 0 100\n\n    # Load and read external code\n    - :label EXTCODE      :abi f(uint,uint,uint) 0x3B 0 100\n\n    gasLimit:\n    - 16777216\n    gasPrice: 10\n    nonce: 1\n    to: cccccccccccccccccccccccccccccccccccccccc\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n    value:\n    - 0\n\n  expect:\n    # CREATE\n    - indexes:\n        data: :label CREATE\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0: 54200\n\n\n    # CREATE2\n    - indexes:\n        data: :label CREATE2\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0: 54300\n\n\n    - indexes:\n        data: \n        - :label CALL\n        - :label CALLCODE\n        - :label DELEGATECALL\n        - :label STATICCALL\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0: 2700\n\n\n    - indexes:\n        data: \n        - :label MLOAD\n        - :label MSTORE\n        - :label MSTORE8\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0: 9200\n\n\n\n    - indexes:\n        data: \n        - :label EXTCODE\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0: 2800\n\n\n\n    - indexes:\n        data: :label SHA3\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0: 18400\n"
  },
  {
    "path": "tests/static/state_tests/stBadOpcode/undefinedOpcodeFirstByteFiller.yml",
    "content": "# Checks that behaviour of already deployed code, having invalid opcodes as the first byte.\n# Execution is expected to end with an exception.\nundefinedOpcodeFirstByte:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x020000'\n    currentGasLimit: '89128960'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n\n  pre:\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: 1000000000\n      code: ''\n      nonce: 0\n      storage: {}\n    b94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: 0\n      code: |\n        :yul berlin\n        { \n          for { let opcode := 0 } lt(opcode, 256) { opcode := add(opcode, 1) } \n          { \n            let addr := shl(152, opcode)\n            if call(10000, addr, 0, 0, 0, 0, 0) { sstore(opcode, 1) }\n          }\n          sstore(256, 1)\n        }\n      nonce: 0\n      storage: {}\n    0000000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x00'\n      nonce: 0\n      storage: {}\n    0100000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x01'\n      nonce: 0\n      storage: {}\n    0200000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x02'\n      nonce: 0\n      storage: {}\n    0300000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x03'\n      nonce: 0\n      storage: {}\n    0400000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x04'\n      nonce: 0\n      storage: {}\n    0500000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x05'\n      nonce: 0\n      storage: {}\n    0600000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x06'\n      nonce: 0\n      storage: {}\n    0700000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x07'\n      nonce: 0\n      storage: {}\n    0800000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x08'\n      nonce: 0\n      storage: {}\n    0900000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x09'\n      nonce: 0\n      storage: {}\n    0a00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x0a'\n      nonce: 0\n      storage: {}\n    0b00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x0b'\n      nonce: 0\n      storage: {}\n    0c00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x0c'\n      nonce: 0\n      storage: {}\n    0d00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x0d'\n      nonce: 0\n      storage: {}\n    0e00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x0e'\n      nonce: 0\n      storage: {}\n    0f00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x0f'\n      nonce: 0\n      storage: {}\n\n    1000000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x10'\n      nonce: 0\n      storage: {}\n    1100000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x11'\n      nonce: 0\n      storage: {}\n    1200000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x12'\n      nonce: 0\n      storage: {}\n    1300000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x13'\n      nonce: 0\n      storage: {}\n    1400000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x14'\n      nonce: 0\n      storage: {}\n    1500000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x15'\n      nonce: 0\n      storage: {}\n    1600000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x16'\n      nonce: 0\n      storage: {}\n    1700000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x17'\n      nonce: 0\n      storage: {}\n    1800000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x18'\n      nonce: 0\n      storage: {}\n    1900000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x19'\n      nonce: 0\n      storage: {}\n    1a00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x1a'\n      nonce: 0\n      storage: {}\n    1b00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x1b'\n      nonce: 0\n      storage: {}\n    1c00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x1c'\n      nonce: 0\n      storage: {}\n    1d00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x1d'\n      nonce: 0\n      storage: {}\n    1e00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x1e'\n      nonce: 0\n      storage: {}\n    1f00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x1f'\n      nonce: 0\n      storage: {}\n\n    2000000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x20'\n      nonce: 0\n      storage: {}\n    2100000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x21'\n      nonce: 0\n      storage: {}\n    2200000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x22'\n      nonce: 0\n      storage: {}\n    2300000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x23'\n      nonce: 0\n      storage: {}\n    2400000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x24'\n      nonce: 0\n      storage: {}\n    2500000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x25'\n      nonce: 0\n      storage: {}\n    2600000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x26'\n      nonce: 0\n      storage: {}\n    2700000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x27'\n      nonce: 0\n      storage: {}\n    2800000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x28'\n      nonce: 0\n      storage: {}\n    2900000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x29'\n      nonce: 0\n      storage: {}\n    2a00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x2a'\n      nonce: 0\n      storage: {}\n    2b00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x2b'\n      nonce: 0\n      storage: {}\n    2c00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x2c'\n      nonce: 0\n      storage: {}\n    2d00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x2d'\n      nonce: 0\n      storage: {}\n    2e00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x2e'\n      nonce: 0\n      storage: {}\n    2f00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x2f'\n      nonce: 0\n      storage: {}\n\n    3000000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x30'\n      nonce: 0\n      storage: {}\n    3100000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x31'\n      nonce: 0\n      storage: {}\n    3200000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x32'\n      nonce: 0\n      storage: {}\n    3300000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x33'\n      nonce: 0\n      storage: {}\n    3400000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x34'\n      nonce: 0\n      storage: {}\n    3500000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x35'\n      nonce: 0\n      storage: {}\n    3600000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x36'\n      nonce: 0\n      storage: {}\n    3700000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x37'\n      nonce: 0\n      storage: {}\n    3800000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x38'\n      nonce: 0\n      storage: {}\n    3900000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x39'\n      nonce: 0\n      storage: {}\n    3a00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x3a'\n      nonce: 0\n      storage: {}\n    3b00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x3b'\n      nonce: 0\n      storage: {}\n    3c00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x3c'\n      nonce: 0\n      storage: {}\n    3d00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x3d'\n      nonce: 0\n      storage: {}\n    3e00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x3e'\n      nonce: 0\n      storage: {}\n    3f00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x3f'\n      nonce: 0\n      storage: {}\n\n    4000000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x40'\n      nonce: 0\n      storage: {}\n    4100000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x41'\n      nonce: 0\n      storage: {}\n    4200000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x42'\n      nonce: 0\n      storage: {}\n    4300000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x43'\n      nonce: 0\n      storage: {}\n    4400000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x44'\n      nonce: 0\n      storage: {}\n    4500000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x45'\n      nonce: 0\n      storage: {}\n    4600000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x46'\n      nonce: 0\n      storage: {}\n    4700000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x47'\n      nonce: 0\n      storage: {}\n    4800000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x48'\n      nonce: 0\n      storage: {}\n    4900000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x49'\n      nonce: 0\n      storage: {}\n    4a00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x4a'\n      nonce: 0\n      storage: {}\n    4b00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x4b'\n      nonce: 0\n      storage: {}\n    4c00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x4c'\n      nonce: 0\n      storage: {}\n    4d00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x4d'\n      nonce: 0\n      storage: {}\n    4e00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x4e'\n      nonce: 0\n      storage: {}\n    4f00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x4f'\n      nonce: 0\n      storage: {}\n\n    5000000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x50'\n      nonce: 0\n      storage: {}\n    5100000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x51'\n      nonce: 0\n      storage: {}\n    5200000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x52'\n      nonce: 0\n      storage: {}\n    5300000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x53'\n      nonce: 0\n      storage: {}\n    5400000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x54'\n      nonce: 0\n      storage: {}\n    5500000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x55'\n      nonce: 0\n      storage: {}\n    5600000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x56'\n      nonce: 0\n      storage: {}\n    5700000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x57'\n      nonce: 0\n      storage: {}\n    5800000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x58'\n      nonce: 0\n      storage: {}\n    5900000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x59'\n      nonce: 0\n      storage: {}\n    5a00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x5a'\n      nonce: 0\n      storage: {}\n    5b00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x5b'\n      nonce: 0\n      storage: {}\n    5c00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x5c'\n      nonce: 0\n      storage: {}\n    5d00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x5d'\n      nonce: 0\n      storage: {}\n    5e00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x5e'\n      nonce: 0\n      storage: {}\n    5f00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x5f'\n      nonce: 0\n      storage: {}\n\n    6000000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x60'\n      nonce: 0\n      storage: {}\n    6100000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x61'\n      nonce: 0\n      storage: {}\n    6200000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x62'\n      nonce: 0\n      storage: {}\n    6300000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x63'\n      nonce: 0\n      storage: {}\n    6400000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x64'\n      nonce: 0\n      storage: {}\n    6500000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x65'\n      nonce: 0\n      storage: {}\n    6600000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x66'\n      nonce: 0\n      storage: {}\n    6700000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x67'\n      nonce: 0\n      storage: {}\n    6800000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x68'\n      nonce: 0\n      storage: {}\n    6900000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x69'\n      nonce: 0\n      storage: {}\n    6a00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x6a'\n      nonce: 0\n      storage: {}\n    6b00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x6b'\n      nonce: 0\n      storage: {}\n    6c00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x6c'\n      nonce: 0\n      storage: {}\n    6d00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x6d'\n      nonce: 0\n      storage: {}\n    6e00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x6e'\n      nonce: 0\n      storage: {}\n    6f00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x6f'\n      nonce: 0\n      storage: {}\n\n    7000000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x70'\n      nonce: 0\n      storage: {}\n    7100000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x71'\n      nonce: 0\n      storage: {}\n    7200000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x72'\n      nonce: 0\n      storage: {}\n    7300000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x73'\n      nonce: 0\n      storage: {}\n    7400000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x74'\n      nonce: 0\n      storage: {}\n    7500000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x75'\n      nonce: 0\n      storage: {}\n    7600000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x76'\n      nonce: 0\n      storage: {}\n    7700000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x77'\n      nonce: 0\n      storage: {}\n    7800000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x78'\n      nonce: 0\n      storage: {}\n    7900000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x79'\n      nonce: 0\n      storage: {}\n    7a00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x7a'\n      nonce: 0\n      storage: {}\n    7b00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x7b'\n      nonce: 0\n      storage: {}\n    7c00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x7c'\n      nonce: 0\n      storage: {}\n    7d00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x7d'\n      nonce: 0\n      storage: {}\n    7e00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x7e'\n      nonce: 0\n      storage: {}\n    7f00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x7f'\n      nonce: 0\n      storage: {}\n\n    8000000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x80'\n      nonce: 0\n      storage: {}\n    8100000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x81'\n      nonce: 0\n      storage: {}\n    8200000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x82'\n      nonce: 0\n      storage: {}\n    8300000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x83'\n      nonce: 0\n      storage: {}\n    8400000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x84'\n      nonce: 0\n      storage: {}\n    8500000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x85'\n      nonce: 0\n      storage: {}\n    8600000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x86'\n      nonce: 0\n      storage: {}\n    8700000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x87'\n      nonce: 0\n      storage: {}\n    8800000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x88'\n      nonce: 0\n      storage: {}\n    8900000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x89'\n      nonce: 0\n      storage: {}\n    8a00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x8a'\n      nonce: 0\n      storage: {}\n    8b00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x8b'\n      nonce: 0\n      storage: {}\n    8c00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x8c'\n      nonce: 0\n      storage: {}\n    8d00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x8d'\n      nonce: 0\n      storage: {}\n    8e00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x8e'\n      nonce: 0\n      storage: {}\n    8f00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x8f'\n      nonce: 0\n      storage: {}\n\n    9000000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x90'\n      nonce: 0\n      storage: {}\n    9100000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x91'\n      nonce: 0\n      storage: {}\n    9200000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x92'\n      nonce: 0\n      storage: {}\n    9300000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x93'\n      nonce: 0\n      storage: {}\n    9400000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x94'\n      nonce: 0\n      storage: {}\n    9500000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x95'\n      nonce: 0\n      storage: {}\n    9600000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x96'\n      nonce: 0\n      storage: {}\n    9700000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x97'\n      nonce: 0\n      storage: {}\n    9800000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x98'\n      nonce: 0\n      storage: {}\n    9900000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x99'\n      nonce: 0\n      storage: {}\n    9a00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x9a'\n      nonce: 0\n      storage: {}\n    9b00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x9b'\n      nonce: 0\n      storage: {}\n    9c00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x9c'\n      nonce: 0\n      storage: {}\n    9d00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x9d'\n      nonce: 0\n      storage: {}\n    9e00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x9e'\n      nonce: 0\n      storage: {}\n    9f00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0x9f'\n      nonce: 0\n      storage: {}\n\n\n    a000000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xa0'\n      nonce: 0\n      storage: {}\n    a100000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xa1'\n      nonce: 0\n      storage: {}\n    a200000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xa2'\n      nonce: 0\n      storage: {}\n    a300000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xa3'\n      nonce: 0\n      storage: {}\n    a400000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xa4'\n      nonce: 0\n      storage: {}\n    a500000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xa5'\n      nonce: 0\n      storage: {}\n    a600000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xa6'\n      nonce: 0\n      storage: {}\n    a700000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xa7'\n      nonce: 0\n      storage: {}\n    a800000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xa8'\n      nonce: 0\n      storage: {}\n    a900000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xa9'\n      nonce: 0\n      storage: {}\n    aa00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xaa'\n      nonce: 0\n      storage: {}\n    ab00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xab'\n      nonce: 0\n      storage: {}\n    ac00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xac'\n      nonce: 0\n      storage: {}\n    ad00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xad'\n      nonce: 0\n      storage: {}\n    ae00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xae'\n      nonce: 0\n      storage: {}\n    af00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xaf'\n      nonce: 0\n      storage: {}\n\n    b000000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xb0'\n      nonce: 0\n      storage: {}\n    b100000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xb1'\n      nonce: 0\n      storage: {}\n    b200000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xb2'\n      nonce: 0\n      storage: {}\n    b300000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xb3'\n      nonce: 0\n      storage: {}\n    b400000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xb4'\n      nonce: 0\n      storage: {}\n    b500000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xb5'\n      nonce: 0\n      storage: {}\n    b600000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xb6'\n      nonce: 0\n      storage: {}\n    b700000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xb7'\n      nonce: 0\n      storage: {}\n    b800000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xb8'\n      nonce: 0\n      storage: {}\n    b900000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xb9'\n      nonce: 0\n      storage: {}\n    ba00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xba'\n      nonce: 0\n      storage: {}\n    bb00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xbb'\n      nonce: 0\n      storage: {}\n    bc00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xbc'\n      nonce: 0\n      storage: {}\n    bd00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xbd'\n      nonce: 0\n      storage: {}\n    be00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xbe'\n      nonce: 0\n      storage: {}\n    bf00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xbf'\n      nonce: 0\n      storage: {}\n\n    c000000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xc0'\n      nonce: 0\n      storage: {}\n    c100000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xc1'\n      nonce: 0\n      storage: {}\n    c200000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xc2'\n      nonce: 0\n      storage: {}\n    c300000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xc3'\n      nonce: 0\n      storage: {}\n    c400000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xc4'\n      nonce: 0\n      storage: {}\n    c500000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xc5'\n      nonce: 0\n      storage: {}\n    c600000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xc6'\n      nonce: 0\n      storage: {}\n    c700000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xc7'\n      nonce: 0\n      storage: {}\n    c800000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xc8'\n      nonce: 0\n      storage: {}\n    c900000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xc9'\n      nonce: 0\n      storage: {}\n    ca00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xca'\n      nonce: 0\n      storage: {}\n    cb00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xcb'\n      nonce: 0\n      storage: {}\n    cc00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xcc'\n      nonce: 0\n      storage: {}\n    cd00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xcd'\n      nonce: 0\n      storage: {}\n    ce00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xce'\n      nonce: 0\n      storage: {}\n    cf00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xcf'\n      nonce: 0\n      storage: {}\n\n    d000000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xd0'\n      nonce: 0\n      storage: {}\n    d100000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xd1'\n      nonce: 0\n      storage: {}\n    d200000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xd2'\n      nonce: 0\n      storage: {}\n    d300000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xd3'\n      nonce: 0\n      storage: {}\n    d400000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xd4'\n      nonce: 0\n      storage: {}\n    d500000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xd5'\n      nonce: 0\n      storage: {}\n    d600000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xd6'\n      nonce: 0\n      storage: {}\n    d700000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xd7'\n      nonce: 0\n      storage: {}\n    d800000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xd8'\n      nonce: 0\n      storage: {}\n    d900000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xd9'\n      nonce: 0\n      storage: {}\n    da00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xda'\n      nonce: 0\n      storage: {}\n    db00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xdb'\n      nonce: 0\n      storage: {}\n    dc00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xdc'\n      nonce: 0\n      storage: {}\n    dd00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xdd'\n      nonce: 0\n      storage: {}\n    de00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xde'\n      nonce: 0\n      storage: {}\n    df00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xdf'\n      nonce: 0\n      storage: {}\n\n    e000000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xe0'\n      nonce: 0\n      storage: {}\n    e100000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xe1'\n      nonce: 0\n      storage: {}\n    e200000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xe2'\n      nonce: 0\n      storage: {}\n    e300000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xe3'\n      nonce: 0\n      storage: {}\n    e400000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xe4'\n      nonce: 0\n      storage: {}\n    e500000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xe5'\n      nonce: 0\n      storage: {}\n    e600000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xe6'\n      nonce: 0\n      storage: {}\n    e700000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xe7'\n      nonce: 0\n      storage: {}\n    e800000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xe8'\n      nonce: 0\n      storage: {}\n    e900000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xe9'\n      nonce: 0\n      storage: {}\n    ea00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xea'\n      nonce: 0\n      storage: {}\n    eb00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xeb'\n      nonce: 0\n      storage: {}\n    ec00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xec'\n      nonce: 0\n      storage: {}\n    ed00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xed'\n      nonce: 0\n      storage: {}\n    ee00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xee'\n      nonce: 0\n      storage: {}\n    ef00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xef'\n      nonce: 0\n      storage: {}\n\n    f000000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xf0'\n      nonce: 0\n      storage: {}\n    f100000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xf1'\n      nonce: 0\n      storage: {}\n    f200000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xf2'\n      nonce: 0\n      storage: {}\n    f300000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xf3'\n      nonce: 0\n      storage: {}\n    f400000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xf4'\n      nonce: 0\n      storage: {}\n    f500000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xf5'\n      nonce: 0\n      storage: {}\n    f600000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xf6'\n      nonce: 0\n      storage: {}\n    f700000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xf7'\n      nonce: 0\n      storage: {}\n    f800000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xf8'\n      nonce: 0\n      storage: {}\n    f900000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xf9'\n      nonce: 0\n      storage: {}\n    fa00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xfa'\n      nonce: 0\n      storage: {}\n    fb00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xfb'\n      nonce: 0\n      storage: {}\n    fc00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xfc'\n      nonce: 0\n      storage: {}\n    fd00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xfd'\n      nonce: 0\n      storage: {}\n    fe00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xfe'\n      nonce: 0\n      storage: {}\n    ff00000000000000000000000000000000000000:\n      balance: 0\n      code: ':raw 0xff'\n      nonce: 0\n      storage: {}\n\n\n  transaction:\n    data: \n      - ''\n    gasLimit:\n      - 16777216\n    gasPrice: 10\n    nonce: 0\n    secretKey: 45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\n    to: 'b94f5374fce5edbc8e2a8697c15331677e6ebf0b'\n    value:\n    - 0\n\n  expect:\n\n    - network:\n        - '>=Cancun'\n      result:\n       a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 1\n       b94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          storage:\n            '0x00': 1 # STOP\n            '0x30': 1 # ADDRESS\n            '0x32': 1 # ORIGIN\n            '0x33': 1 # CALLER\n            '0x34': 1 # CALLVALUE\n            '0x36': 1 # CALLDATASIZE\n            '0x38': 1 # CODESIZE\n            '0x3a': 1 # GASPRICE\n            '0x3d': 1 # RETURNDATASIZE\n            '0x41': 1 # COINBASE\n            '0x42': 1 # TIMESTAMP\n            '0x43': 1 # NUMBER\n            '0x44': 1 # DIFFICULTY\n            '0x45': 1 # GASLIMIT\n            '0x46': 1 # CHAINID\n            '0x47': 1 # SELFBALANCE\n            '0x48': 1 # BASEFEE\n            '0x4a': 1 # BEACON_ROOT\n            '0x58': 1 # PC\n            '0x59': 1 # MSIZE\n            '0x5A': 1 # GAS\n            '0x5B': 1 # JUMPDEST\n            \n            '0x5F': 1 # PUSH0\n            '0x60': 1 # PUSHx ...\n            '0x61': 1\n            '0x62': 1\n            '0x63': 1\n            '0x64': 1\n            '0x65': 1\n            '0x66': 1\n            '0x67': 1\n            '0x68': 1\n            '0x69': 1\n            '0x6a': 1\n            '0x6b': 1\n            '0x6c': 1\n            '0x6d': 1\n            '0x6e': 1\n            '0x6f': 1\n            '0x70': 1\n            '0x71': 1\n            '0x72': 1\n            '0x73': 1\n            '0x74': 1\n            '0x75': 1\n            '0x76': 1\n            '0x77': 1\n            '0x78': 1\n            '0x79': 1\n            '0x7a': 1\n            '0x7b': 1\n            '0x7c': 1\n            '0x7d': 1\n            '0x7e': 1\n            '0x7f': 1\n\n            '0x100': 1\n"
  },
  {
    "path": "tests/static/state_tests/stBugs/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stBugs/randomStatetestDEFAULT-Tue_07_58_41-15153-575192Filler.json",
    "content": "{\n  \"randomStatetestDEFAULT-Tue_07_58_41-15153-575192\": {\n    \"_info\": {\n      \"comment\": \"This is a canon example of a test found by fuzzing with EVMlab, demoing how a suicide-created-but-empty account has a non-zero codehash in geth\"\n    },\n    \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"code\" : \"0x61dead6000600060006000600061dead5af162abcdef3f600155\",\n                        \"nonce\" : \"0x1c\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"\",\n                        \"nonce\" : \"0x1d\",\n                        \"storage\" : {\n                        }\n                   }\n                }\n            }\n    ],\n    \"env\": {\n      \"currentCoinbase\": \"<contract:target:0x1000000000000000000000000000000000000000>\",\n      \"currentDifficulty\": \"0x20000\",\n      \"currentGasLimit\": \"0x1312D00\",\n      \"currentNumber\": \"1\",\n      \"currentTimestamp\": \"1000\"\n    },\n    \"pre\": {\n      \"<contract:0x000000000000000000000000000000000000dead>\": {\n        \"balance\": \"0x00\",\n        \"code\": \":raw 0x62abcdefff\",\n        \"nonce\": \"0x1c\",\n        \"storage\": {}\n      },\n      \"<contract:target:0x1000000000000000000000000000000000000000>\": {\n        \"balance\": \"0x00\",\n        \"code\" : \":raw 0x61dead6000600060006000600061dead5af162abcdef3f600155\",\n        \"nonce\": \"0x1c\",\n        \"storage\": {}\n      },\n      \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n        \"balance\": \"0x5d8fdd3ff54298b4\",\n        \"code\": \"0x\",\n        \"nonce\": \"0x1c\",\n        \"storage\": {}\n      }\n    },\n\n    \"transaction\": {\n      \"data\": [\n        \"0x\"\n      ],\n      \"gasLimit\": [\n        \"0x5fde07\"\n      ],\n      \"gasPrice\": \"0x0b\",\n      \"nonce\": \"0x1c\",\n      \"secretKey\": \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n      \"to\": \"<contract:target:0x1000000000000000000000000000000000000000>\",\n      \"value\": [\n        \"0x00\"\n      ]\n    }\n  }\n}\n\n"
  },
  {
    "path": "tests/static/state_tests/stBugs/randomStatetestDEFAULT-Tue_07_58_41-15153-575192_londonFiller.json",
    "content": "{\n  \"randomStatetestDEFAULT-Tue_07_58_41-15153-575192_london\": {\n    \"_info\": {\n      \"comment\": \"This is a canon example of a test found by fuzzing with EVMlab, demoing how a suicide-created-but-empty account has a non-zero codehash in geth\"\n    },\n    \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"code\" : \"0x61dead6000600060006000600061dead5af162abcdef3f600155\",\n                        \"nonce\" : \"0x1c\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"\",\n                        \"nonce\" : \"0x1d\",\n                        \"storage\" : {\n                        }\n                   }\n                }\n            }\n    ],\n    \"env\": {\n      \"currentCoinbase\": \"<contract:target:0x1000000000000000000000000000000000000000>\",\n      \"currentDifficulty\": \"0x20000\",\n      \"currentGasLimit\": \"0x1312D00\",\n      \"currentNumber\": \"1\",\n      \"currentTimestamp\": \"1000\"\n    },\n    \"pre\": {\n      \"<contract:0x000000000000000000000000000000000000dead>\": {\n        \"balance\": \"0x00\",\n        \"code\": \":raw 0x62abcdefff\",\n        \"nonce\": \"0x1c\",\n        \"storage\": {}\n      },\n      \"<contract:target:0x1000000000000000000000000000000000000000>\": {\n        \"balance\": \"0x00\",\n        \"code\" : \":raw 0x61dead6000600060006000600061dead5af162abcdef3f600155\",\n        \"nonce\": \"0x1c\",\n        \"storage\": {}\n      },\n      \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n        \"balance\": \"0x5d8fdd3ff54298b4\",\n        \"code\": \"0x\",\n        \"nonce\": \"0x1c\",\n        \"storage\": {}\n      }\n    },\n\n    \"transaction\": {\n      \"data\": [\n        \"0x\"\n      ],\n      \"gasLimit\": [\n        \"0x5fde07\"\n      ],\n      \"gasPrice\": \"0x0a\",\n      \"nonce\": \"0x1c\",\n      \"secretKey\": \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n      \"to\": \"<contract:target:0x1000000000000000000000000000000000000000>\",\n      \"value\": [\n        \"0x00\"\n      ]\n    }\n  }\n}\n\n"
  },
  {
    "path": "tests/static/state_tests/stBugs/returndatacopyPythonBug_Tue_03_48_41-1432Filler.json",
    "content": "{\n    \"returndatacopyPythonBug_Tue_03_48_41-1432\": {\n        \"_info\" : { \n            \"comment\" : \"Fuzzer generated bug. No code source.\"\n        },\n        \"env\": {\n            \"currentCoinbase\": \"0x1000000000000000000000000000000000000000\",\n            \"currentDifficulty\": \"0x20000\",\n            \"currentGasLimit\": \"0x54a60a4202e088\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"0x03e8\"\n        },\n        \"expect\" : [\n    \t\t{\n\t\t        \"indexes\" : {\n\t\t            \"data\" : -1,\n\t\t            \"gas\" : -1,\n\t\t            \"value\" : -1\n\t\t        },\n\t\t        \"network\" : [\">=Cancun\"],\n\t\t        \"result\" : {\n\t\t            \"<contract:target:0xffffffffffffffffffffffffffffffffffffffff>\" : {\n        \t\t\t\t\"storage\": {\n        \t\t\t\t    \"0x01\" : \"0x00\"\n        \t\t\t\t}\t\t\t\t\t\t\n    \t\t\t    },\n    \t\t\t    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n        \t\t\t\t\"nonce\": \"0x01\"\n    \t\t\t    }\n\t\t        }\n    \t\t}\n    \t],\n        \"pre\": {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n                \"balance\": \"0x38beec8feeca2598\",\n                \"code\": \"\",\n                \"nonce\": \"0x00\",\n                \"storage\": {}\n            },\n            \"<contract:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n                \"balance\": \"0x2ce99fc81ed55962\",\n                \"code\": \":raw 0x7b1db054ccc801c0666b34b3c6242bbfc5e98f20c14fb95e0118be9ad054326f33d50e215ff59297861847ea911a6a9d566103a560a860fb60cb6342a46f5073b94f5374fce5edbc8e2a8697c15331677e6ebf0b632c1e2816f26d135e2f826dc603850e0db21d105b778732a34b873c7d943050b8659794f0bd3e841d35a2231ef6027e97f8cde11728fa2051e87933cf858e4e5e91baa74fc1e9ffe4c7b15ba600e8678f095989dc68f47e67d704be2b41c7f8670a\",\n                \"nonce\": \"0x3f\",\n                \"storage\": {}\n            },\n            \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n                \"balance\": \"0x442f5872dd93b01a\",\n                \"code\": \":raw 0x610326610100fd79c940b5f2046740058558468f238b85db7f6bbe3f3d51e92a3e326102d85268b7f7c4147541c695f376705288410b81b217e80726fb9e4c5c7b4c49eca0c1b6b9137e117c16c26c9816459f38396ffc36da48d65defdc7d055cbc846c07e81cfab0607c6cbc968774d4de7df8e3236f581e688cc2081a96b1cad9e0fb6103ca601361019f6101016364b68c8e73ffffffffffffffffffffffffffffffffffffffff63200fbd63f16017610215610161610119635af7465b73000000000000000000000000000000000000000863792c6916f1799bf4fddda49ae97714e7d325ceab23acd5f4a15b52104741161261023f608ff360197021a04ff3f933b9ad91b735bfbfe41da7066b499c5d47b6de1fe398cb91fd68f681cbb8661dd457cf713cef75dabf5ea496d7012f4c56b9fee6c4208461022d61021661036e610200630277795a73ffffffffffffffffffffffffffffffffffffffff6333d3d55ff1644720e3ce666101ad526b874cead08499d57a5497d3776102fa60ff60f561014863202b2ea873d94f5374fce5edbc8e2a8697c15331677e6ebf0b6302e83dbef1327144ce205e051f296fb116fc9e5f3c280919af70f3c93c5d5cefff338db2b1165b4918f1780a73852663192a9579a68b50eefdc639ca0b62ab4d5230\",\n                \"nonce\": \"0x1c\",\n                \"storage\": {}\n            },\n            \"<contract:0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n                \"balance\": \"0x161150e7531f1933\",\n                \"code\": \":raw 0x6102dd6103e06103146052632318d76f7332f4d5419b41e6887cca98e0943f141a5c66df986347cfe65df16abd0c6d6c4cec6593afaa8c7de1769c96cd0751aa76a98c8196fa8c92e70d7bda1799c91c7f05de318110659b819438774667f9ec15a6e0233f75669e43360bd4e0a0764e9f395117afcd072774ce12d13dc73305858002a921407eb6508e3a3be377d4825dbf618a393c7c061e75a8a496a33afe0f017f2e3354789e321838b083d48893f23dced4592e9ea08fe3f80970d6334b626c6f1f6ede8bcc81d03a7ccc244231cb6606db986101d761010761031c61025673ffffffffffffffffffffffffffffffffffffffff6311ecd01bfa7aa6d0c1c5158ef0db6994192acbd4cac6abc8449d80fc2c3247194668e0d9606bd390266d7f78712766f4765076283ad67450d7ab4df6f3f6ee014ab802ec9d55727ed96dc0b9ce7bd14b193dc1f0d11ce19283c77ef651d4d2e7c180715ff7fcbc995ea8b27613cc516dad16d17f29a93220ce0d6edb0a65d3d474dbc39cba5bcb3d4fcf6a9fef19107dc04511df2752fb346103ce6101c163459d135bf0712ab2475fbb2ba0720711a903dbecfa0429bf6811e6e90cbb0f13d4ee61050c7052c865e0216b4096186fc604fb563fa59f761263ee91d55e407fdffe82ca1558f793f3a218dd9ba69084621fdea97de498f0b0e1874331115e31aaad4d87227362a9ec3e1c1be11cdb23097bbc600c64692eeadfa97f1616b8aec24564487dc74f8e17e6a133b5dbe576838697de73f856197203ef1a733a54f7edb0dbd60f9d52db6b5c1477169b77f0d86917ed731a20db4b9e5b836bd26bffefab084a31c4afda166f8156612f281da0be688e5bdb1f31ed7869bc62343a7665abad657369482449e68b3acfe820997d3ddf5785384d51aaa0612dab5ddbf2a9bf550736ad42293387d70693587d74f6ccfae5218d01559bac159497edb6a665eae52f52784975568a159c0cae9044d258c55b10f4d1008d29ab1df7fceb76b789e2a8cdbaa9c67c42cd1ebe81716ead0e94c721279d77d3a0b3de311596d547292878449ccce511e6991b3dc636a16278159a9f61014a6102216342ce224df06f3d9a062274cd9a67ccba17c2cb06de46628e0bf703610106602e636db4b55bf06102056102c9633ff89b31f0788e55af17e19973f2c3f5d4c21c169890b9a92491f91aa1e714605d526103a1601f609b6103ee73d94f5374fce5edbc8e2a8697c15331677e6ebf0b6335adeabdf46d26060d385ed594e21b02b23a6c4c157350e7ab6a3ef66f83a29845b4ba85c4fdfbd0054a620123ad6893eff4b525b0f4b08d73285f36f3bcac6a985b906c348472b7cbc5a02e61678666f0c50eecdc1167f20fc1dc41c2fd95856d7752e55ede4e56f4f536a04d436a7fd418a1ca44c0173c10f1806ba284f9c9c7c13670005de594dec538cd56c2743b66fdfa7683ae0df6917b8bbcb53461be606ef617322e6448e3e4124dbe061257a8f486529de36997f08ce92502957f85587a18082b5b5b49e36de5a83e8a270663088571bf2fdf8f5f29b949976b41e3859928a237f5e5df84c17d3c431e82328f9093e64defbdd07d74d84835800999791abc41260472d96f9362604d077b198e859adc806beae7200cf116d2b55e89ddd564abc3900e69a68b0f6f0e9e4f12998728815d01c42f3b109ed25561027b610132635f449586f06101726101ec631fe4bdc3f06101316101246103b33e60bd19610284610305fd6102db6102e4631ea09dc6f06b72a6cf13500241c2a5e5c4e1777ea9ed9b05ba9b57d70dd270ece76ecf21d3a41ad554f795167084dcab761d4c8437774cad4bb13b2bece16d40358df93ec0f49abe102cd44e475560476101f3fd605b61030a6328f7e2e9f032604a547db71c0237247865fa2add74c8b27041c5718a2554a72662720296dff5b3b5327d59df4558b8a5b2c9e7d15eb3947a70064f935c8fdf0a4e6f644aa31b42c17d0280e50ea92a366c3d060c12c6a16a75522fbeb3d7cca702807f521781ab6101b252639cceb9e27f37ee8fde4ed3a23d3ec8db334ac1caa7e06523b0132dd615cf3fc16140d34c19761617823c3af47c42bc36b69cb4385463595c7f6f9ea451396fe05303603e0cd401e13df744e2a67382774d943941551704ff14dfa8646efbb2d8abc4ac6e258e99240372924b8001f8f0650d66b37411d484b18f41e779702bd1c169fa52bbfc8af4a45f20acb0ef956edb2ecbc0d4eadbbbf6732f8bd33b367a33c0faf0cf1970bcd38093a50a44fd253b0e74f2706239c499217b7bdae332e21d5d5e7e795c998cceed14cf46977e7d3cbb3c79ef0530c36fa8ac3fd8d49f10bb0ae919fa149adead7f67dae0b9ba628e056e0e87e029b8e5f42821d775338e6774301ecb428b3938237c6ee22b0b5edf2ad6997869f427ba0672a7168614233e85f61dae5ed428643a53f605116d6dad586dce62833a62ca8c914c646b1f861a5b1c4ea7298a95029e63cb849fe08b6c943cb9d854c7d50ad04cfdfe64718e2868b8f2b53e55fe01a152c8496cbcc69956787447062b734cebde6c6452e9efc4aba5bf071cbff56208a52561a8ef635f52399b724f3369d988884f58166d734881774eff46d77b76b189c89c55b1c6591f178d2d21bf2b023adf9bc5b862127935e3346d98d56047a3f71241fd5a24abbb0cfc463fb8a5e67e327b055696fe51258dd07526ebd8439bcebb514ae26dc12d653a5c1263707c5109097ec5dcdb3918ab114985f709d3003b50e58fba91007825a6b80073f644eaa306051808460fc3b2d8e276b2187c583f7ef29ee0b0c34f9ee57bac9ebb996402e3300ddf06c760fc5f531f6b1e2beda77fa15c07f90f92422822e8d33c5d2409ea75197f7cd6d61770eddb078206cfc7c57b006cd0e9a9ec65fa4fc683da22cfaf6dfc995feb5f8386a052851fc58b7402f32e7ef9343d4633def4c0a4b9be12f2cd7c646073e14ca3fb977524f677714c3d994ea05f1997a246537d2fc0ab20ed2a5958f3712602bee2a270429abbd3ff3b9945f72f58dcf4f86eb344417a87dfa1ebd701a0ff381bb40b620bb8287cd7781d2ef7c0fd8695f705465fbadf99fdffef2afd94b0e76531b6ea0d537a23d2332d13c20368a0724e41bc1130a6b1ebc3464527e34c26a43751649f9dfe4f8e7957981a9fc08558c90d38079f1921b60fe6fa448171fec55c4c630575e811712211cf72f489a4e83a2f5427eab647b075a91064929de0a65517\",\n                \"nonce\": \"0x1d\",\n                \"storage\": {}\n            },\n            \"<contract:target:0xffffffffffffffffffffffffffffffffffffffff>\": {\n                \"balance\": \"0x16b3e0323b4f717d\",\n                \"code\": \":raw 0x7e4fc1426b49cd8e2c770339616ce9c501fb746715dd4a20219229d0673ac05575993bd089a6663f6dff488574195b848fbb357eb7be1f61026352605861011761027f60e373c94f5374fce5edbc8e2a8697c15331677e6ebf0b63748b4abbfa60e76101bc6103f33e60d861036a6315193f47f07aff076e997770d03b70288679871dc28aa5a1399b21c8afa8155ecd7e75dd05f9d7eb42fa3e79c6a2109dff2a1e53e612fbe000bed18eec8345f00574f537c72820d8b97350ae523a8f7467ae14a8bd9aae6be55862b685e32476cc67ae2c6a40cf55729540d111f44c63629458da68e7ad2a9b389ed3bb60682169ea8a7b3a1bcf92621919c062413cb5986101236103596101776103be73d94f5374fce5edbc8e2a8697c15331677e6ebf0b631f6d9dfffa6103716101f760163e76d609ca9a51645238e4f1f8268f973c3a01a0b67479a34563d1e70065610173525b64e6d218af5474c3d8045447d06c726801695cfa26fdfaa6460a868569cd662855a55716140ae07eb1e25aeaf04ae7cf54e8aa7a22206da5a6e52bdd3ef82ad40a4681d25811167f7b0a3f66a727652592924dc1291a6085d537c5da2d6272a54f882460bc76407d666361c40cc56bc8778a8bc9a9b45d44c78cfe4333fe0c49418dd61f183d41132f755340e48ababb825a26ebc0ca693a8b465121200fd21a727b4c365a65a3255278f6705e5ca0f6146fccd3766a6e5b9decfb6e50968851e829313a2cc9d5b518e2586166c31ba04ed3f5a377310bd9993aa534b007858d9545342410ce8c156d780a8cb477a65efed30aa9d6bd63c48a134c9cb0c677ecda48aacef0c17c91de37e3cfdae69153742406995ea81bbae6a201663b9b37a6a9f597ae8d5a634f40e44e517174ea92616bc228ced0d712c265c2925470326102f26102146101b13e601d6103a360726103ec73ffffffffffffffffffffffffffffffffffffffff6319628a1bf4740e5f285d15a08a263b0a444516266bd51fe7266771604469df3c080d07dd47c4eb9e7344a87541ddc5a6971632a021033eb3542b375cd06bd0dfb48f6acde07152794b556839563efff1afed3b0a857615166526175e7184b83cc2dedf61ec5d65d1eee66efcb87b4f2c73335db9fba49e3d40638cd7f462f1d3b315f18dc1f692a68b24036102c16101f36102f23e783d6331b166ee517c71a4ba159dd322b9fa5f3237dfb85d2594edd580948177bd72d2244f767352371e3428d28bc6356c553b18d00e6b3cf602061672c2abbd7763059f61940b0d19fde33f7b5a960861025b61021d6101d361035173b94f5374fce5edbc8e2a8697c15331677e6ebf0b635ba25f69f4790d251e9ae89c718dd41c3f57b0c304fbb83978de28d23499bdd1729c04301ff527ccc9f7ed74a8dbd906b468d4487ffba738f193e3047b02e40beb08b4f11707681ef103ec1b00585a85f27227a179917ef15e97a359268b06ff34bcee23a869974fbca6e201cb16179743ac0f8c9f867003d5e26a5aad5217ebfff31407169237230772efaab6cd87fbc9fd408d4ac5a048e43fb4e7a261037c6101f76103e13e\",\n                \"nonce\": \"0x1c\",\n                \"storage\": {}\n            }\n        },\n        \"transaction\": {\n            \"data\": [\":raw 0x79b94053bf1fb725756225cde415738a99e1a7690cbe409744b73761038f5277367dedc82e30635bc57e35fcb2038306d9a3a6e4ddcb9d306c879e470f5dd81e1148184f62bd6361ae97087aff61cee25c694a734342be5043b1fde117ba383682ba0d91e0db8b6a29c882a044d0c8bb4925a6796d8480df1b1ccc25641df94f43d5802aa8f44bf70a6817ed784e675725bdc7718a54d686307da5234286085240ba84575dac25d7fc32c59999a9d38fee0d25e7c23986006e9c5bb022f7d28a2cab01a4bb37dd4210608d6101bf6101606079637be1ae4373c94f5374fce5edbc8e2a8697c15331677e6ebf0b63627cbc7df161023161030a60213e60686102596102c861032b73b94f5374fce5edbc8e2a8697c15331677e6ebf0b630a549e50f461036761038161026c6103d1633aded16b73b94f5374fce5edbc8e2a8697c15331677e6ebf0b6320edf4a4f161ea427bd5141d55f5730cd82bf08bff3928aea77e7153bcc4a3a53996be367e77c98cb6fe85797e1d020284d4d302c8b4ebe6b28a9c64a9ae6b2ad6894716732f245e7fdc527443f79a0ae9b8d8900caa1c5796a2854ceddb00a82bfb724ec01b513ed61cce89400a06fe90a109bad6d57ae028143e7552930136347eb71a49db0072c87bd437b9cd7b2f7e6e609f653a85875c9ede69360f9d06d4c2e82caf2e6a87043c0bf5a235431acbb394775dcbfc7b86074b99c9e6f959d84184e5e40c854c280218c07fcd4e98dc3bc44f7d651d7191ead4be3aaa6657719af4fbf6b9741d3c2c1eca740b7c46e7b87ce36eb18a407fca527573156e83888dff152dc41fd0f98972d378a02f8465d755c426de2e81e23ed5b68990e3c73c65071b0c7b046cae8cdd18828c27f10a8ba8e3616103f76103786363763a4bf078faa8e34791ed3692f5784a35b7bbe3db838dcea84ce1955eec\"],\n            \"gasLimit\": [\"0x85edf4\", \"0x2dc6c0\"],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x00\",\n            \"secretKey\": \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\": \"<contract:target:0xffffffffffffffffffffffffffffffffffffffff>\",\n            \"value\": [\"0xa4759940\", \"0x00\"]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stBugs/staticcall_createfailsFiller.json",
    "content": "{\n    \"staticcall_createfails\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x1000000000000000000000000000000000000000\",\n            \"currentDifficulty\": \"0x20000\",\n            \"currentGasLimit\": \"0x54a60a4202e088\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"0x03e8\"\n        },\n        \"expect\" : [\n    \t\t{\n\t\t        \"indexes\" : {\n\t\t            \"data\" : -1,\n\t\t            \"gas\" : -1,\n\t\t            \"value\" : -1\n\t\t        },\n\t\t        \"network\" : [\">=Cancun\"],\n\t\t        \"result\" : {\n\t\t            \"0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n        \t\t\t\t\"storage\": {\n        \t\t\t\t    \"0x01\" : \"0x00\"\n        \t\t\t\t}\t\t\t\t\t\t\n    \t\t\t    },\n    \t\t\t    \"0x1d0384eb7c2b1a9d9862c8e180f9e4d1696a2a8e\" : {\n        \t\t\t\t\"shouldnotexist\" : \"1\"\t\t\t\t\t\t\n    \t\t\t    }\n\t\t        }\n    \t\t}\n    \t],\n        \"pre\": {\n            \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\": {\n                \"balance\": \"0x38beec8feeca2598\",\n                \"code\": \"\",\n                \"nonce\": \"0x00\",\n                \"storage\": {}\n            },\n            \"0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b\": {\n                \"balance\": \"0\",\n                \"code\": \"{ [[1]] (STATICCALL 70000 (CALLDATALOAD 0) 0 0 0 0) }\",\n                \"nonce\": \"0x3f\",\n                \"storage\": {\n    \t\t    \"0x01\" : \"0x01\"\n    \t\t}\n            },\n            \"0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b\": {\n                \"balance\": \"0\",\n        \t\t\"//comment\" : \"Create fails due to insufficient founds\",\n                \"code\": \"{ (MSTORE 1 1) [[2]] (CREATE 1 1 1) }\",\n                \"nonce\": \"0x3f\",\n                \"storage\": {}\n            },\n            \"0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b\": {\n                \"balance\": \"0\",\n        \t\t\"//comment\" : \"Create fails due to wrong stack\",\n                \"code\": \":raw 0x60006000f0\",\n                \"nonce\": \"0x3f\",\n                \"storage\": {}\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n\t\t        \":raw 0x000000000000000000000000c94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n\t\t        \":raw 0x000000000000000000000000d94f5374fce5edbc8e2a8697c15331677e6ebf0b\"\n    \t    ],\n            \"gasLimit\": [\"120000\"],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x00\",\n            \"secretKey\": \"0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\": \"0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\": [\"0x00\"]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/call_OOG_additionalGasCosts1Filler.json",
    "content": "{\n    \"call_OOG_additionalGasCosts1\" : {\n        \"_info\" : {\n            \"comment\" : \"call(oog during init) ->  code \"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"3000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t        {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n             \t\t \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n               \t\t    \"nonce\" : \"1\"\n            \t\t }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\" : {\n                \"balance\" : \"0\",\n                \"nonce\" : \"1\",\n                \"code\" : \"\",\n                \"storage\": {}\n            },\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{ (CALL 6000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"storage\": {}\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \":raw 0x6000\",\n                \"storage\": {}\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"\",\n                \"storage\": {}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"30000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/call_OOG_additionalGasCosts2Filler.json",
    "content": "{\n    \"call_OOG_additionalGasCosts2\" : {\n        \"_info\" : {\n            \"comment\" : \"call(oog during init) ->  code \"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"3000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n    \t    \t\t\"<contract:0x1000000000000000000000000000000000000001>\" : {\n               \t\t    \"balance\" : \"0\"\n            \t\t },\n               \t\t \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n               \t\t    \"storage\" : {\n                            \"0x00\" : \"0x02\"\n                        }\n            \t\t }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\" : {\n                \"balance\" : \"0\",\n                \"nonce\" : \"1\",\n                \"code\" : \"\",\n                \"storage\": {}\n            },\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{ [[0]] (CALL 6000 <contract:0x1000000000000000000000000000000000000001> 1 0 64 0 64 ) }\",\n                \"storage\": {\n                    \"0x00\" : \"0x02\"\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"\",\n                \"code\" : \":raw 0x6000\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"\",\n                \"storage\": {}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"30000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcall_00Filler.json",
    "content": "{\n    \"callcall_00\" : {\n        \"_info\" : {\n            \"comment\" : \"call -> call -> code, params check\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x01\",\n                            \"0x04\" : \"<contract:0x1000000000000000000000000000000000000001>\",\n                            \"0x07\" : \"0x02\",\n                            \"0xe6\" : \"<contract:0x1000000000000000000000000000000000000002>\",\n                            \"0xe8\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n                            \"0xec\" : \"0x40\",\n                            \"0xee\" : \"0x22\",\n                            \"0xf0\" : \"0x0a\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 350000 <contract:0x1000000000000000000000000000000000000001> 1 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALL 250000 <contract:0x1000000000000000000000000000000000000002> 2 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 2 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 230 (ADDRESS)) (SSTORE 232 (ORIGIN)) (SSTORE 236 (CALLDATASIZE)) (SSTORE 238 (CODESIZE)) (SSTORE 240 (GASPRICE))}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcall_00_OOGEFiller.json",
    "content": "{\n    \"callcall_00_OOGE\" : {\n        \"_info\" : {\n            \"comment\" : \"call -> call -> code oog \"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ [[ 1 ]] (CALL 20020 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 2 1) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcall_00_OOGE_valueTransferFiller.json",
    "content": "{\n    \"callcall_00_OOGE_valueTransfer\" : {\n        \"_info\" : {\n            \"comment\" : \"call -> call -> code oog \"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [  \n\t       {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                    \t\"storage\" : {\n\t\t\t                \"0x00\" : \"0x01\"\n                    \t}\n            \t     },\n            \t    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                   \t\t \"storage\" : {\n\t\t\t                \"0x0b\" : \"0x01\"\n            \t\t     }\n            \t    },\n            \t    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                    \t\"storage\" : {\n                    \t}\n            \t    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 800000 <contract:0x1000000000000000000000000000000000000001> 20 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ [[ 1 ]] (CALL 600000 <contract:0x1000000000000000000000000000000000000002> 10 0 64 0 64 )  [[11]] 1}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 2 1) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcall_00_SuicideEndFiller.json",
    "content": "{\n    \"callcall_00_SuicideEnd\" : {\n        \"_info\" : {\n            \"comment\" : \"call -> (call -> code) suicide \"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"1000000010000000000\"\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALL 50000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) (SELFDESTRUCT <contract:target:0x1000000000000000000000000000000000000000>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 2 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcallcall_000Filler.json",
    "content": "{\n    \"callcallcall_000\" : {\n        \"_info\" : {\n            \"comment\" : \"call -> call -> call -> code, params check\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                            \"0x014a\" : \"<contract:0x1000000000000000000000000000000000000003>\",\n                            \"0x014c\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n                            \"0x0150\" : \"0x40\",\n                            \"0x0152\" : \"0x27\",\n                            \"0x0154\" : \"0x0a\",\n                            \"0x03\" : \"0x01\",\n                            \"0x04\" : \"<contract:0x1000000000000000000000000000000000000002>\",\n                            \"0x07\" : \"0x03\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 350000 <contract:0x1000000000000000000000000000000000000001> 1 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALL 300000 <contract:0x1000000000000000000000000000000000000002> 2 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 2 ]] (CALL 250000 <contract:0x1000000000000000000000000000000000000003> 3 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE))}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcallcall_000_OOGEFiller.json",
    "content": "{\n    \"callcallcall_000_OOGE\" : {\n        \"_info\" : {\n            \"comment\" : \"call -> call -> call -> code oog \"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (CALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 2 ]] (CALL 400000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcallcall_000_OOGMAfterFiller.json",
    "content": "{\n    \"callcallcall_000_OOGMAfter\" : {\n        \"_info\" : {\n            \"comment\" : \"call -> (call -> call -> code) oog \"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t        {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) [[11]] 1}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (CALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 2 ]] (CALL 400000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcallcall_000_OOGMBeforeFiller.json",
    "content": "{\n    \"callcallcall_000_OOGMBefore\" : {\n        \"_info\" : {\n            \"comment\" : \"call -> call -> oog call -> code\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (CALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (KECCAK256 0x00 0x2fffff) [[ 2 ]] (CALL 400000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcallcall_000_SuicideEndFiller.json",
    "content": "{\n    \"callcallcall_000_SuicideEnd\" : {\n        \"_info\" : {\n            \"comment\" : \"call -> call -> (call -> code) suicide\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"balance\" : \"20000000000\"\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x03\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 2 ]] (CALL 50000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) (SELFDESTRUCT <contract:0x1000000000000000000000000000000000000001>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 3 1)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcallcall_000_SuicideMiddleFiller.json",
    "content": "{\n    \"callcallcall_000_SuicideMiddle\" : {\n        \"_info\" : {\n            \"comment\" : \"call -> call -> suicide, call -> code\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"1000000010000000000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{ (SELFDESTRUCT <contract:target:0x1000000000000000000000000000000000000000>) [[ 2 ]] (CALL 50000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcallcall_ABCB_RECURSIVEFiller.json",
    "content": "{\n    \"callcallcall_ABCB_RECURSIVE\" : {\n        \"_info\" : {\n            \"comment\" : \"call -> call <-> call\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"3000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t        {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 25000000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALL 1000000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 2 ]] (CALL 500000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcallcallcode_001Filler.json",
    "content": "{\n    \"callcallcallcode_001\" : {\n        \"_info\" : {\n            \"comment\" : \"call -> call -> callcode - > code, params check\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x014a\" : \"<contract:0x1000000000000000000000000000000000000002>\",\n                            \"0x014c\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n                            \"0x0150\" : \"0x40\",\n                            \"0x0152\" : \"0x27\",\n                            \"0x0154\" : \"0x0a\",\n                            \"0x02\" : \"0x01\",\n                            \"0x03\" : \"0x01\",\n                            \"0x04\" : \"<contract:0x1000000000000000000000000000000000000002>\",\n                            \"0x07\" : \"0x03\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 350000 <contract:0x1000000000000000000000000000000000000001> 1 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALL 300000 <contract:0x1000000000000000000000000000000000000002> 2 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 2 ]] (CALLCODE 250000 <contract:0x1000000000000000000000000000000000000003> 3 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcallcallcode_001_OOGEFiller.json",
    "content": "{\n    \"callcallcallcode_001_OOGE\" : {\n       \"_info\" : {\n            \"comment\" : \"call -> call -> callcode -> code oog\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n\t\t\t                \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x0b\" : \"1\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (CALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 2 ]] (CALLCODE 400000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcallcallcode_001_OOGMAfterFiller.json",
    "content": "{\n    \"callcallcallcode_001_OOGMAfter\" : {\n       \"_info\" : {\n            \"comment\" : \"call -> (call -> callcode -> code) oog\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t        {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (CALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ [[ 2 ]] (CALLCODE 400000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcallcallcode_001_OOGMBeforeFiller.json",
    "content": "{\n    \"callcallcallcode_001_OOGMBefore\" : {\n       \"_info\" : {\n            \"comment\" : \"call -> call -> oog callcode -> code \"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n            \t    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                       \t\"storage\" : {\n                       \t }\n            \t    },\n            \t    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                       \t\"storage\" : {\n               \t        }\n            \t    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (CALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (KECCAK256 0x00 0x2fffff) [[ 2 ]] (CALLCODE 400000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcallcallcode_001_SuicideEndFiller.json",
    "content": "{\n    \"callcallcallcode_001_SuicideEnd\" : {\n        \"_info\" : {\n            \"comment\" : \"call -> call -> ( callcode - > code ) suicide\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"balance\" : \"20000000000\"\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x03\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 2 ]] (CALLCODE 50000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) (SELFDESTRUCT <contract:0x1000000000000000000000000000000000000001>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcallcallcode_001_SuicideMiddleFiller.json",
    "content": "{\n    \"callcallcallcode_001_SuicideMiddle\" : {\n        \"_info\" : {\n            \"comment\" : \"call -> call -> (suicide) callcode - > code\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"1000000010000000000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SELFDESTRUCT <contract:target:0x1000000000000000000000000000000000000000>) [[ 2 ]] (CALLCODE 50000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcallcallcode_ABCB_RECURSIVEFiller.json",
    "content": "{\n    \"callcallcallcode_ABCB_RECURSIVE\" : {\n        \"_info\" : {\n            \"comment\" : \"call -> call  <-> callcode\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"3000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t        {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 25000000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALL 1000000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 2 ]] (CALLCODE 500000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcallcode_01Filler.json",
    "content": "{\n    \"callcallcode_01\" : {\n        \"_info\" : {\n            \"comment\" : \"call -> callcode  -> code, params check\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\",\n                            \"0x04\" : \"<contract:0x1000000000000000000000000000000000000001>\",\n                            \"0x07\" : \"0x02\",\n                            \"0xe6\" : \"<contract:0x1000000000000000000000000000000000000001>\",\n                            \"0xe8\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n                            \"0xec\" : \"0x40\",\n                            \"0xee\" : \"0x22\",\n                            \"0xf0\" : \"0x0a\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 350000 <contract:0x1000000000000000000000000000000000000001> 1 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 250000 <contract:0x1000000000000000000000000000000000000002> 2 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 2 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 230 (ADDRESS)) (SSTORE 232 (ORIGIN)) (SSTORE 236 (CALLDATASIZE)) (SSTORE 238 (CODESIZE)) (SSTORE 240 (GASPRICE)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcallcode_01_OOGEFiller.json",
    "content": "{\n    \"callcallcode_01_OOGE\" : {\n        \"_info\" : {\n            \"comment\" : \"call -> callcode -> code oog \"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t                \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                            \"storage\" : {\n        \t\t\t            \"0x00\" : \"0x01\"\n                            }\n                        },\n                        \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                            \"storage\" : {\n        \t\t\t            \"0x0b\" : \"0x01\"\n                            }\n                        },\n                        \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                            \"storage\" : {\n                            }\n                        }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 600000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 2 1) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcallcode_01_SuicideEndFiller.json",
    "content": "{\n    \"callcallcode_01_SuicideEnd\" : {\n        \"_info\" : {\n            \"comment\" : \"call -> (callcode  -> code) suicide\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"1000000010000000000\"\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 50000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) (SELFDESTRUCT <contract:target:0x1000000000000000000000000000000000000000>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 2 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcallcodecall_010Filler.json",
    "content": "{\n    \"callcallcodecall_010\" : {\n        \"_info\" : {\n            \"comment\" : \"call -> callcode -> call -> code, params check\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                            \"0x014a\" : \"<contract:0x1000000000000000000000000000000000000003>\",\n                            \"0x014c\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n                            \"0x0150\" : \"0x40\",\n                            \"0x0152\" : \"0x27\",\n                            \"0x0154\" : \"0x0a\",\n                            \"0x03\" : \"0x01\",\n                            \"0x04\" : \"<contract:0x1000000000000000000000000000000000000001>\",\n                            \"0x07\" : \"0x03\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 350000 <contract:0x1000000000000000000000000000000000000001> 1 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 300000 <contract:0x1000000000000000000000000000000000000002> 2 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 2 ]] (CALL 250000 <contract:0x1000000000000000000000000000000000000003> 3 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcallcodecall_010_OOGEFiller.json",
    "content": "{\n    \"callcallcodecall_010_OOGE\" : {\n       \"_info\" : {\n            \"comment\" : \"call -> callcode -> call -> code oog\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n            \t\t\t    \"0x01\" : \"0x01\",\n            \t\t\t    \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 600000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 2 ]] (CALL 400000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) [[ 11 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcallcodecall_010_OOGMAfterFiller.json",
    "content": "{\n    \"callcallcodecall_010_OOGMAfter\" : {\n       \"_info\" : {\n            \"comment\" : \"call -> (callcode -> call -> code) oog\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t        {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 600000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 2 ]] (CALL 400000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcallcodecall_010_OOGMBeforeFiller.json",
    "content": "{\n    \"callcallcodecall_010_OOGMBefore\" : {\n       \"_info\" : {\n            \"comment\" : \"call -> callcode -> oog call -> code \"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 600000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (KECCAK256 0x00 0x2fffff) [[ 2 ]] (CALL 400000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcallcodecall_010_SuicideEndFiller.json",
    "content": "{\n    \"callcallcodecall_010_SuicideEnd\" : {\n        \"_info\" : {\n            \"comment\" : \"call -> callcode -> (call -> code) (suicide)\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x03\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 100000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 2 ]] (CALL 50000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) (SELFDESTRUCT <contract:0x1000000000000000000000000000000000000001>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcallcodecall_010_SuicideMiddleFiller.json",
    "content": "{\n    \"callcallcodecall_010_SuicideMiddle\" : {\n        \"_info\" : {\n            \"comment\" : \"call -> callcode -> (suicide) call -> code\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"1000000010000000000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x03\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 100000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SELFDESTRUCT <contract:target:0x1000000000000000000000000000000000000000>) [[ 2 ]] (CALL 50000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcallcodecall_ABCB_RECURSIVEFiller.json",
    "content": "{\n    \"callcallcodecall_ABCB_RECURSIVE\" : {\n        \"_info\" : {\n            \"comment\" : \"call -> callcode <->  call\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"3000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t        {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 25000000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 1000000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 2 ]] (CALL 500000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcallcodecallcode_011Filler.json",
    "content": "{\n    \"callcallcodecallcode_011\" : {\n        \"_info\" : {\n            \"comment\" : \"call -> callcode ->  callcode -> code, check params\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x01\",\n                            \"0x014a\" : \"<contract:0x1000000000000000000000000000000000000001>\",\n                            \"0x014c\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n                            \"0x0150\" : \"0x40\",\n                            \"0x0152\" : \"0x27\",\n                            \"0x0154\" : \"0x0a\",\n                            \"0x02\" : \"0x01\",\n                            \"0x03\" : \"0x01\",\n                            \"0x04\" : \"<contract:0x1000000000000000000000000000000000000001>\",\n                            \"0x07\" : \"0x03\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 350000 <contract:0x1000000000000000000000000000000000000001> 1 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 300000 <contract:0x1000000000000000000000000000000000000002> 2 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 2 ]] (CALLCODE 250000 <contract:0x1000000000000000000000000000000000000003> 3 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE))}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcallcodecallcode_011_OOGEFiller.json",
    "content": "{\n    \"callcallcodecallcode_011_OOGE\" : {\n       \"_info\" : {\n            \"comment\" : \"call -> callcode -> callcode -> code oog\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x01\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 600000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 2 ]] (CALLCODE 400000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcallcodecallcode_011_OOGMAfterFiller.json",
    "content": "{\n    \"callcallcodecallcode_011_OOGMAfter\" : {\n        \"_info\" : { \n            \"comment\" : \"call -> callcode oog -> callcode -> code\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t        {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) [[ 11 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 600000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 2 ]] (CALLCODE 400000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcallcodecallcode_011_OOGMBeforeFiller.json",
    "content": "{\n    \"callcallcodecallcode_011_OOGMBefore\" : {\n        \"_info\" : {\n            \"comment\" : \"call -> callcode -> oog callcode -> code\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 600000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (KECCAK256 0x00 0x2fffff) [[ 2 ]] (CALLCODE 400000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcallcodecallcode_011_SuicideEndFiller.json",
    "content": "{\n    \"callcallcodecallcode_011_SuicideEnd\" : {\n        \"_info\" : {\n            \"comment\" : \"call -> callcode ->  (callcode -> code) (suicide)\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 100000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 2 ]] (CALLCODE 50000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) (SELFDESTRUCT <contract:0x1000000000000000000000000000000000000001>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcallcodecallcode_011_SuicideMiddleFiller.json",
    "content": "{\n    \"callcallcodecallcode_011_SuicideMiddle\" : {\n        \"_info\" : {\n            \"comment\" : \"call -> callcode -> (suicide) callcode -> code\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"1000000010000000000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x03\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 100000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{ (SELFDESTRUCT <contract:target:0x1000000000000000000000000000000000000000>) [[ 2 ]] (CALLCODE 50000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcallcodecallcode_ABCB_RECURSIVEFiller.json",
    "content": "{\n    \"callcallcodecallcode_ABCB_RECURSIVE\" : {\n        \"_info\" : {\n            \"comment\" : \"call -> callcode <-> callcode\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"3000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t        {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 25000000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 1000000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 2 ]] (CALLCODE 500000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcodeDynamicCode2SelfCallFiller.json",
    "content": "{\n    \"callcodeDynamicCode2SelfCall\" : {\n        \"_info\" : {\n            \"comment\" : \"callcode happen to a contract that is dynamically created from within the contract (to itself)\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"//comment\" : \"original test case\",\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"0x7db299e0885c85039f56fa504a13dd8ce8a56aa7\" : {\n                        \"balance\" : \"0x01\",\n                        \"storage\" : {\n                            \"0x0b\" : \"0x01\",\n                            \"0x0c\" : \"0xa000000000000000000000000000000000000000\"\n                        }\n                    }\n                }\n            },\n            {\n                \"//comment\" : \"Create1 creates account that callcodes to itself\",\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"0x1000000000000000000000000000000000000000\" : {\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x0a\" : \"0x13136008b64ff592819b2fa6d43f2835c452020e\",\n                            \"0x0b\" : \"0x01\",\n                            \"0x14\" : \"0x1000000000000000000000000000000000000000\",\n                            \"0x15\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x16\" : \"0x1000000000000000000000000000000000000000\"\n                        }\n                    },\n                    \"0x13136008b64ff592819b2fa6d43f2835c452020e\" : {\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                            \"0x7a\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"1100000000000000000000000000000000000000\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (CALL 800000 (CALLDATALOAD 0) 0 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a000000000000000000000000000000000000000\" : {\n                \"balance\" : \"10000\",\n                \"code\" : \"{  (MSTORE 0 0x604060006040600060007313136008b64ff592819b2fa6d43f2835c452020e62) (MSTORE 32 0x0186a0f2600b5533600c55000000000000000000000000000000000000000000)  (CREATE 1 0 64) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"1000000000000000000000000000000000000000\" : {\n                \"balance\" : \"10000\",\n                \"code\" : \"{(seq [[10]] (CREATE 0 0 (lll(seq  [[122]] (CALLCODE 100000 0x13136008b64ff592819b2fa6d43f2835c452020e 0 0 64 0 64)  (RETURN 0 (lll(seq [[0]] 1  [[20]] (ADDRESS) [[21]] (ORIGIN) [[22]] (CALLER)   )0) )  )0)   )  [[11]] (CALLCODE 100000 (SLOAD 10) 0 0 64 0 64)                   )}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"10000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000a000000000000000000000000000000000000000\",\n                \":raw 0x0000000000000000000000001000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\" : [\n                \"1453081\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"1100000000000000000000000000000000000000\",\n            \"value\" : [\n                \"\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcodeDynamicCodeFiller.json",
    "content": "{\n    \"callcodeDynamicCode\" : {\n        \"_info\" : {\n            \"comment\" : \"callcode to a contract that is being created in the same transaction\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t        {\n                \"//comment\" : \"CREATE an account.   callcode to that account\",\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"1000000000000000000000000000000000000000\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x0a\" : \"0x13136008b64ff592819b2fa6d43f2835c452020e\",\n                            \"0x0b\" : \"0x01\",\n                            \"0x14\" : \"0x1000000000000000000000000000000000000000\",\n                            \"0x15\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x16\" : \"0x1000000000000000000000000000000000000000\"\n                        }\n                    }\n                }\n            },\n\t        {\n                \"//comment\" : \"CREATE2 an account.   callcode to that account\",\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"2000000000000000000000000000000000000000\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x0a\" : \"0x2d39fad743351d4cf3f4717907d3dda5e0a689a7\",\n                            \"0x0b\" : \"0x01\",\n                            \"0x14\" : \"0x2000000000000000000000000000000000000000\",\n                            \"0x15\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x16\" : \"0x2000000000000000000000000000000000000000\"\n                        }\n                    }\n                }\n            },\n\t        {\n                \"//comment\" : \"CREATE an account.   callcode to that account.  DYNAMIC ALL\",\n                \"indexes\" : {\n                    \"data\" : 2,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                        \"0x4b86c4ed99b87f0f396bc0c76885453c343916ed\" : {\n                            \"balance\" : \"0x00\",\n                            \"code\" : \"0x\",\n                            \"nonce\" : \"0x02\",\n                            \"storage\" : {\n                                \"0x00\" : \"0x01\",\n                                \"0x0a\" : \"0xbf1676be6038ab86d66e00824c2e3577858040f6\",\n                                \"0x0b\" : \"0x01\",\n                                \"0x14\" : \"0x4b86c4ed99b87f0f396bc0c76885453c343916ed\",\n                                \"0x15\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                                \"0x16\" : \"0x4b86c4ed99b87f0f396bc0c76885453c343916ed\"\n                            }\n                        }\n                }\n            },\n\t        {\n                \"//comment\" : \"CREATE2 an account.   callcode to that account.  DYNAMIC ALL\",\n                \"indexes\" : {\n                    \"data\" : 3,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                        \"0xa51c188504a60578914fcae68f7a1f0dcbb856a9\" : {\n                            \"balance\" : \"0x00\",\n                            \"code\" : \"0x\",\n                            \"nonce\" : \"0x02\",\n                            \"storage\" : {\n                                \"0x00\" : \"0x01\",\n                                \"0x0a\" : \"0x0f2d6bf688fae45da62ab2dd4f36945bc924cc61\",\n                                \"0x0b\" : \"0x01\",\n                                \"0x14\" : \"0xa51c188504a60578914fcae68f7a1f0dcbb856a9\",\n                                \"0x15\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                                \"0x16\" : \"0xa51c188504a60578914fcae68f7a1f0dcbb856a9\"\n                            }\n                        }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"1100000000000000000000000000000000000000\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (CALL 800000 (CALLDATALOAD 0) 0 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"1000000000000000000000000000000000000000\" : {\n                \"balance\" : \"10000\",\n                \"code\" : \"{(seq [[10]] (CREATE 0 0 (lll(seq  (RETURN 0 (lll(seq [[0]] 1  [[20]] (ADDRESS) [[21]] (ORIGIN) [[22]] (CALLER)   )0) )  )0)   )  [[11]] (CALLCODE 100000 (SLOAD 10) 0 0 64 0 64)                   )}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"2000000000000000000000000000000000000000\" : {\n                \"balance\" : \"1000\",\n                \"code\" : \"{(seq [[10]] (CREATE2 0 0 (lll(seq  (RETURN 0 (lll(seq [[0]] 1  [[20]] (ADDRESS) [[21]] (ORIGIN) [[22]] (CALLER)  )0) )  )0)  0 )  [[11]] (CALLCODE 100000 (SLOAD 10) 0 0 64 0 64)                   )}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"3000000000000000000000000000000000000000\" : {\n                \"balance\" : \"10000\",\n                \"code\" : \"{(seq (CREATE 0 0 (lll(seq       [[10]] (CREATE 0 0 (lll(seq  (RETURN 0 (lll(seq [[0]] 1  [[20]] (ADDRESS)  [[21]] (ORIGIN) [[22]] (CALLER)  )0) )  )0)   )  [[11]] (CALLCODE 100000 (SLOAD 10) 0 0 64 0 64)            )0))       )}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"4000000000000000000000000000000000000000\" : {\n                \"balance\" : \"10000\",\n                \"code\" : \"{(seq (CREATE 0 0 (lll(seq       [[10]] (CREATE2 0 0 (lll(seq  (RETURN 0 (lll(seq [[0]] 1  [[20]] (ADDRESS)  [[21]] (ORIGIN) [[22]] (CALLER)  )0) )  )0)  0 )  [[11]] (CALLCODE 100000 (SLOAD 10) 0 0 64 0 64)            )0))       )}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"10000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x0000000000000000000000001000000000000000000000000000000000000000\",\n                \":raw 0x0000000000000000000000002000000000000000000000000000000000000000\",\n                \":raw 0x0000000000000000000000003000000000000000000000000000000000000000\",\n                \":raw 0x0000000000000000000000004000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"1100000000000000000000000000000000000000\",\n            \"value\" : [\n                \"\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcodeEmptycontractFiller.json",
    "content": "{\n    \"callcodeEmptycontract\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000\",\n                \"code\" : \"{ [[ 0 ]] (CALLCODE 50000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 1000 0 64 0 64 )}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"100000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1050440\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcodeInInitcodeToEmptyContractFiller.json",
    "content": "{\n    \"callcodeInInitcodeToEmptyContract\" : {\n        \"_info\" : {\n            \"comment\" : \"callcode inside create contract init to non-existent contract\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"13136008b64ff592819b2fa6d43f2835c452020e\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"0x9f9f2f99f78bfedcd1f32d936203bd1c0cb00853\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"1100000000000000000000000000000000000000\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (CALL 300000 (CALLDATALOAD 0) 0 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"1000000000000000000000000000000000000000\" : {\n                \"balance\" : \"10000\",\n                \"code\" : \"{(seq (CREATE 0 0 (lll (seq  [[1]] (CALLCODE 500000 0x1000000000000000000000000000000000000001 1 0 0 0 0)  [[2]] 1  ) 0)   )           )}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"2000000000000000000000000000000000000000\" : {\n                \"balance\" : \"10000\",\n                \"code\" : \"{(seq (CREATE2 0 0 (lll (seq  [[1]] (CALLCODE 500000 0x1000000000000000000000000000000000000001 1 0 0 0 0) [[2]] 1 ) 0)   0)           )}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"10000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x0000000000000000000000001000000000000000000000000000000000000000\",\n                \":raw 0x0000000000000000000000002000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\" : [\n                \"1453081\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"1100000000000000000000000000000000000000\",\n            \"value\" : [\n                \"\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcodeInInitcodeToExisContractWithVTransferNEMoneyFiller.json",
    "content": "{\n    \"callcodeInInitcodeToExisContractWithVTransferNEMoney\" : {\n        \"_info\" : {\n            \"comment\" : \"callcode inside create/create2 contract init to existing contract. callcode with value transfer but not enough balance\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"13136008b64ff592819b2fa6d43f2835c452020e\" : {\n                        \"balance\" : \"0x00\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"0xb0de090b1e01bd09ac6b1d9224229302ed48fd47\" : {\n                        \"balance\" : \"0x00\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"1100000000000000000000000000000000000000\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (CALL 300000 (CALLDATALOAD 0) 0 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"1000000000000000000000000000000000000000\" : {\n                \"balance\" : \"10000\",\n                \"code\" : \"{(seq (CREATE 0 0 (lll (seq  [[1]] (CALLCODE 500000 0x1000000000000000000000000000000000000001 1 0 0 0 0)) 0)   )           )}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"2000000000000000000000000000000000000000\" : {\n                \"balance\" : \"10000\",\n                \"code\" : \"{(seq (CREATE2 0 0 (lll (seq  [[1]] (CALLCODE 500000 0x1000000000000000000000000000000000000001 1 0 0 0 0)) 0)   0)           )}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"1000000000000000000000000000000000000001\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (SSTORE 2 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"10000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x0000000000000000000000001000000000000000000000000000000000000000\",\n                \":raw 0x0000000000000000000000002000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"1100000000000000000000000000000000000000\",\n            \"value\" : [\n                \"\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcodeInInitcodeToExistingContractFiller.json",
    "content": "{\n    \"callcodeInInitcodeToExistingContract\" : {\n        \"_info\" : {\n            \"comment\" : \"callcode inside create/create2 contract init to existing contract\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"13136008b64ff592819b2fa6d43f2835c452020e\" : {\n                        \"balance\" : \"0x01\",\n                        \"storage\" : {\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"0x11b62573be8f72b4085bafe5b675b3e7f08ed522\" : {\n                        \"balance\" : \"0x01\",\n                        \"storage\" : {\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"1100000000000000000000000000000000000000\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (CALL 300000 (CALLDATALOAD 0) 0 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"1000000000000000000000000000000000000000\" : {\n                \"balance\" : \"10000\",\n                \"code\" : \"{(seq (CREATE 1 0 (lll (seq  [[1]] (CALLCODE 50000 0x1000000000000000000000000000000000000001 1 0 0 0 0)) 0)   )           )}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"2000000000000000000000000000000000000000\" : {\n                \"balance\" : \"10000\",\n                \"code\" : \"{(seq (CREATE2 1 0 (lll (seq  [[1]] (CALLCODE 50000 0x1000000000000000000000000000000000000001 1 0 0 0 0)) 0)   0)           )}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"1000000000000000000000000000000000000001\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (SSTORE 2 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"10000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x0000000000000000000000001000000000000000000000000000000000000000\",\n                \":raw 0x0000000000000000000000002000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"1100000000000000000000000000000000000000\",\n            \"value\" : [\n                \"\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcodeInInitcodeToExistingContractWithValueTransferFiller.json",
    "content": "{\n    \"callcodeInInitcodeToExistingContractWithValueTransfer\" : {\n        \"_info\" : {\n            \"comment\" : \"callcode inside create/create2 contract init to existing contract\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"13136008b64ff592819b2fa6d43f2835c452020e\" : {\n                        \"balance\" : \"0x05\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"1000000000000000000000000000000000000000\" : {\n                \"balance\" : \"10000\",\n                \"code\" : \"{ (MSTORE 0 0x6040600060406000600573945304eb96065b2a98b57a48a06ae28d285a71b562) (MSTORE 32 0x0186a0f260005500000000000000000000000000000000000000000000000000) (CREATE 5 0 64) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (SSTORE 2 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"10000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"453081\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"1000000000000000000000000000000000000000\",\n            \"value\" : [\n                \"\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcode_checkPCFiller.json",
    "content": "{\n    \"callcode_checkPC\" : {\n        \"_info\" : {\n            \"comment\" : \"check the PC after doing call to a contract\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"3000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \t\"storage\" : {\n                  \t    \"0x03\" : \"0x25\"\n                \t}\n            \t     }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{ (CALL 1000000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) [[3]] (PC) }\",\n                \"storage\": {}\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{ [[0]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"\",\n                \"storage\": {}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcodecall_10Filler.json",
    "content": "{\n    \"callcodecall_10\" : {\n        \"_info\" : {\n            \"comment\" : \"callcode -> call -> code, params check \"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x01\",\n                            \"0x04\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n                            \"0x07\" : \"0x02\",\n                            \"0xe6\" : \"<contract:0x1000000000000000000000000000000000000002>\",\n                            \"0xe8\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n                            \"0xec\" : \"0x40\",\n                            \"0xee\" : \"0x22\",\n                            \"0xf0\" : \"0x0a\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 350000 <contract:0x1000000000000000000000000000000000000001> 1 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALL 250000 <contract:0x1000000000000000000000000000000000000002> 2 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 2 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 230 (ADDRESS)) (SSTORE 232 (ORIGIN)) (SSTORE 236 (CALLDATASIZE)) (SSTORE 238 (CODESIZE)) (SSTORE 240 (GASPRICE)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcodecall_10_OOGEFiller.json",
    "content": "{\n    \"callcodecall_10_OOGE\" : {\n        \"_info\" : {\n            \"comment\" : \"callcode -> call -> code oog \"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 800000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (CALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 2 1) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcodecall_10_SuicideEndFiller.json",
    "content": "{\n    \"callcodecall_10_SuicideEnd\" : {\n        \"_info\" : {\n            \"comment\" : \"CALLCODE -> (CALL -> code) (suicide)\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 150000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALL 50000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) (SELFDESTRUCT <contract:target:0x1000000000000000000000000000000000000000>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 2 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcodecallcall_100Filler.json",
    "content": "{\n    \"callcodecallcall_100\" : {\n        \"_info\" : {\n            \"comment\" : \"CALLCODE -> CALL -> CALL-> code, params check\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                            \"0x014a\" : \"<contract:0x1000000000000000000000000000000000000003>\",\n                            \"0x014c\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n                            \"0x0150\" : \"0x40\",\n                            \"0x0152\" : \"0x27\",\n                            \"0x0154\" : \"0x0a\",\n                            \"0x03\" : \"0x01\",\n                            \"0x04\" : \"<contract:0x1000000000000000000000000000000000000002>\",\n                            \"0x07\" : \"0x03\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 350000 <contract:0x1000000000000000000000000000000000000001> 1 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALL 300000 <contract:0x1000000000000000000000000000000000000002> 2 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 2 ]] (CALL 250000 <contract:0x1000000000000000000000000000000000000003> 3 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcodecallcall_100_OOGEFiller.json",
    "content": "{\n    \"callcodecallcall_100_OOGE\" : {\n       \"_info\" : {\n            \"comment\" : \"callcode -> call -> call -> code oog\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 800000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (CALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 2 ]] (CALL 400000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) [[ 11 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcodecallcall_100_OOGMAfterFiller.json",
    "content": "{\n    \"callcodecallcall_100_OOGMAfter\" : {\n       \"_info\" : {\n            \"comment\" : \"callcode -> (call -> call -> code) oog\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t       {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 800000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (CALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 2 ]] (CALL 400000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcodecallcall_100_OOGMBeforeFiller.json",
    "content": "{\n    \"callcodecallcall_100_OOGMBefore\" : {\n       \"_info\" : {\n            \"comment\" : \"callcode -> call -> oog call -> code \"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 800000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (CALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (KECCAK256 0x00 0x2fffff) [[ 2 ]] (CALL 400000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcodecallcall_100_SuicideEndFiller.json",
    "content": "{\n    \"callcodecallcall_100_SuicideEnd\" : {\n        \"_info\" : {\n            \"comment\" : \"CALLCODE -> CALL -> (CALL-> code) (suicide)\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"1000000000000000000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"balance\" : \"20000000000\",\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x03\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 150000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 2 ]] (CALL 50000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) (SELFDESTRUCT <contract:0x1000000000000000000000000000000000000001>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcodecallcall_100_SuicideMiddleFiller.json",
    "content": "{\n    \"callcodecallcall_100_SuicideMiddle\" : {\n        \"_info\" : {\n            \"comment\" : \"CALLCODE -> CALL -> (suicide) CALL-> code\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"1000000010000000000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x03\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 150000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SELFDESTRUCT <contract:target:0x1000000000000000000000000000000000000000>) [[ 2 ]] (CALL 50000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcodecallcall_ABCB_RECURSIVEFiller.json",
    "content": "{\n    \"callcodecallcall_ABCB_RECURSIVE\" : {\n\t    \"_info\" : {\n\t        \"comment\" : \"CALLCODE -> CALL <-> CALL\"\n\t    },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"3000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t        {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 25000000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALL 1000000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 2 ]] (CALL 500000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcodecallcallcode_101Filler.json",
    "content": "{\n    \"callcodecallcallcode_101\" : {\n        \"_info\" : {\n            \"comment\" : \"CALLCODE -> CALL -> CALLCODE -> code parameters check\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x014a\" : \"<contract:0x1000000000000000000000000000000000000002>\",\n                            \"0x014c\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n                            \"0x0150\" : \"0x40\",\n                            \"0x0152\" : \"0x27\",\n                            \"0x0154\" : \"0x0a\",\n                            \"0x02\" : \"0x01\",\n                            \"0x03\" : \"0x01\",\n                            \"0x04\" : \"<contract:0x1000000000000000000000000000000000000002>\",\n                            \"0x07\" : \"0x03\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 350000 <contract:0x1000000000000000000000000000000000000001> 1 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALL 300000 <contract:0x1000000000000000000000000000000000000002> 2 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 2 ]] (CALLCODE 250000 <contract:0x1000000000000000000000000000000000000003> 3 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE))}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcodecallcallcode_101_OOGEFiller.json",
    "content": "{\n    \"callcodecallcallcode_101_OOGE\" : {\n       \"_info\" : {\n            \"comment\" : \"callcode -> call -> callcode -> code oog\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                            \"0x03\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 800000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (CALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 2 ]] (CALLCODE 400000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) [[11]] 1}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcodecallcallcode_101_OOGMAfterFiller.json",
    "content": "{\n    \"callcodecallcallcode_101_OOGMAfter\" : {\n        \"_info\" : { \n            \"comment\" : \"callcode -> call oog -> callcode -> code\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 800000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (CALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 2 ]] (CALLCODE 400000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcodecallcallcode_101_OOGMBeforeFiller.json",
    "content": "{\n    \"callcodecallcallcode_101_OOGMBefore\" : {\n        \"_info\" : {\n            \"comment\" : \"callcode -> call -> oog callcode -> code\" \n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 800000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (CALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 )  [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (KECCAK256 0x00 0x2fffff) [[ 2 ]] (CALLCODE 400000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcodecallcallcode_101_SuicideEndFiller.json",
    "content": "{\n    \"callcodecallcallcode_101_SuicideEnd\" : {\n        \"_info\" : {\n            \"comment\" : \"CALLCODE -> CALL -> (CALLCODE -> code) (suicide)\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"balance\" : \"20000000000\",\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 150000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 2 ]] (CALLCODE 50000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) (SELFDESTRUCT <contract:0x1000000000000000000000000000000000000001>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcodecallcallcode_101_SuicideMiddleFiller.json",
    "content": "{\n    \"callcodecallcallcode_101_SuicideMiddle\" : {\n        \"_info\" : {\n            \"comment\" : \"CALLCODE -> CALL -> (suicide) CALLCODE -> code\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"1000000000000000000000000000000000000000\" : {\n                        \"balance\" : \"1000000010000000000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"1000000000000000000000000000000000000001\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"1000000000000000000000000000000000000003\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"1000000000000000000000000000000000000000\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"1000000000000000000000000000000000000001\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"1000000000000000000000000000000000000002\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (CALLCODE 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"1000000000000000000000000000000000000003\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"1000000000000000000000000000000000000000\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcodecallcallcode_ABCB_RECURSIVEFiller.json",
    "content": "{\n    \"callcodecallcallcode_ABCB_RECURSIVE\" : {\n        \"_info\" : {\n            \"comment\" : \"CALLCODE -> CALL <-> CALLCODE\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"3000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 25000000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALL 1000000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 2 ]] (CALLCODE 500000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcodecallcode_11Filler.json",
    "content": "{\n    \"callcodecallcode_11\" : {\n        \"_info\" : {\n            \"comment\" : \"CALLCODE -> CALLCODE -> code, check parameters\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\",\n                            \"0x04\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n                            \"0x07\" : \"0x02\",\n                            \"0xe6\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n                            \"0xe8\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n                            \"0xec\" : \"0x40\",\n                            \"0xee\" : \"0x22\",\n                            \"0xf0\" : \"0x0a\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 350000 <contract:0x1000000000000000000000000000000000000001> 1 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 250000 <contract:0x1000000000000000000000000000000000000002> 2 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 2 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 230 (ADDRESS)) (SSTORE 232 (ORIGIN)) (SSTORE 236 (CALLDATASIZE)) (SSTORE 238 (CODESIZE)) (SSTORE 240 (GASPRICE)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcodecallcode_11_OOGEFiller.json",
    "content": "{\n    \"callcodecallcode_11_OOGE\" : {\n       \"_info\" : {\n            \"comment\" : \"callcode -> callcode -> code oog\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 800000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 600000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 2 1) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcodecallcode_11_SuicideEndFiller.json",
    "content": "{\n    \"callcodecallcode_11_SuicideEnd\" : {\n        \"_info\" : {\n            \"comment\" : \"CALLCODE -> (CALLCODE -> code) selfdestruct\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 150000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 50000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) (SELFDESTRUCT <contract:target:0x1000000000000000000000000000000000000000>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 2 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcodecallcodecall_110Filler.json",
    "content": "{\n    \"callcodecallcodecall_110\" : {\n        \"_info\" : {\n            \"comment\" : \"CALLCODE -> CALLCODE -> CALL -> code, check parameters\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                            \"0x014a\" : \"<contract:0x1000000000000000000000000000000000000003>\",\n                            \"0x014c\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n                            \"0x0150\" : \"0x40\",\n                            \"0x0152\" : \"0x27\",\n                            \"0x0154\" : \"0x0a\",\n                            \"0x03\" : \"0x01\",\n                            \"0x04\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n                            \"0x07\" : \"0x03\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 350000 <contract:0x1000000000000000000000000000000000000001> 1 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 300000 <contract:0x1000000000000000000000000000000000000002> 2 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 2 ]] (CALL 250000 <contract:0x1000000000000000000000000000000000000003> 3 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE))}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcodecallcodecall_110_OOGEFiller.json",
    "content": "{\n    \"callcodecallcodecall_110_OOGE\" : {\n        \"_info\" : {\n            \"comment\" : \"callcode -> callcode -> call -> code oog\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 800000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 600000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 2 ]] (CALL 400000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 )  [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcodecallcodecall_110_OOGMAfterFiller.json",
    "content": "{\n    \"callcodecallcodecall_110_OOGMAfter\" : {\n        \"_info\" : { \n            \"comment\" : \"callcode -> callcode (oog) -> call -> code\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 800000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 600000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ [[ 2 ]] (CALL 400000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcodecallcodecall_110_OOGMBeforeFiller.json",
    "content": "{\n    \"callcodecallcodecall_110_OOGMBefore\" : {\n        \"_info\" : {\n            \"comment\" : \"callcode -> callcode -> (oog) call -> code\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 800000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 600000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (KECCAK256 0x00 0x2fffff) [[ 2 ]] (CALL 400000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcodecallcodecall_110_SuicideEndFiller.json",
    "content": "{\n    \"callcodecallcodecall_110_SuicideEnd\" : {\n        \"_info\" : {\n            \"comment\" : \"CALLCODE -> CALLCODE -> (CALL -> code) (suicide) \"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"balance\" : \"1000000010000000000\"\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x03\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 150000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 100000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 2 ]] (CALL 50000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) (SELFDESTRUCT <contract:0x1000000000000000000000000000000000000001>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcodecallcodecall_110_SuicideMiddleFiller.json",
    "content": "{\n    \"callcodecallcodecall_110_SuicideMiddle\" : {\n        \"_info\" : {\n            \"comment\" : \"CALLCODE -> CALLCODE -> (suicide) CALL -> code\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x03\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 150000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 100000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SELFDESTRUCT <contract:target:0x1000000000000000000000000000000000000000>) [[ 2 ]] (CALL 50000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcodecallcodecall_ABCB_RECURSIVEFiller.json",
    "content": "{\n    \"callcodecallcodecall_ABCB_RECURSIVE\" : {\n        \"_info\" : {\n            \"comment\" : \"CALLCODE -> CALLCODE <-> CALL \"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"3000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t        {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 25000000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 1000000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 2 ]] (CALL 500000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcodecallcodecallcode_111Filler.json",
    "content": "{\n    \"callcodecallcodecallcode_111\" : {\n        \"_info\" : {\n            \"comment\" : \"CALLCODE -> CALLCODE -> CALLCODE -> code check parameter opcodes\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x014a\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n                            \"0x014c\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n                            \"0x0150\" : \"0x40\",\n                            \"0x0152\" : \"0x27\",\n                            \"0x0154\" : \"0x0a\",\n                            \"0x02\" : \"0x01\",\n                            \"0x03\" : \"0x01\",\n                            \"0x04\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n                            \"0x07\" : \"0x03\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 350000 <contract:0x1000000000000000000000000000000000000001> 1 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 300000 <contract:0x1000000000000000000000000000000000000002> 2 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 2 ]] (CALLCODE 250000 <contract:0x1000000000000000000000000000000000000003> 3 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcodecallcodecallcode_111_OOGEFiller.json",
    "content": "{\n    \"callcodecallcodecallcode_111_OOGE\" : {\n        \"_info\" : {\n            \"comment\" : \"callcode -> callcode -> callcode -> code oog\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 800000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 600000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 2 ]] (CALLCODE 400000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcodecallcodecallcode_111_OOGMAfterFiller.json",
    "content": "{\n    \"callcodecallcodecallcode_111_OOGMAfter\" : {\n        \"_info\" : {\n            \"comment\" : \"callcode -> (callcode -> callcode -> code)  oog\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t        {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 800000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 600000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 2 ]] (CALLCODE 400000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcodecallcodecallcode_111_OOGMBeforeFiller.json",
    "content": "{\n    \"callcodecallcodecallcode_111_OOGMBefore\" : {\n        \"_info\" : {\n            \"comment\" : \"callcode -> callcode -> (OOG) callcode -> code\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 800000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 600000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) [[ 11 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (KECCAK256 0x00 0x2fffff) [[ 2 ]] (CALLCODE 400000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcodecallcodecallcode_111_SuicideEndFiller.json",
    "content": "{\n    \"callcodecallcodecallcode_111_SuicideEnd\" : {\n        \"_info\" : {\n            \"comment\" : \"CALLCODE -> CALLCODE -> (CALLCODE -> code) suicide\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"balance\" : \"1000000010000000000\"\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 150000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 100000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 2 ]] (CALLCODE 50000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) (SELFDESTRUCT <contract:0x1000000000000000000000000000000000000001>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcodecallcodecallcode_111_SuicideMiddleFiller.json",
    "content": "{\n    \"callcodecallcodecallcode_111_SuicideMiddle\" : {\n        \"_info\" : {\n            \"comment\" : \"CALLCODE -> CALLCODE -> (suicide) CALLCODE -> code\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 150000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 100000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SELFDESTRUCT <contract:target:0x1000000000000000000000000000000000000000>) [[ 2 ]] (CALLCODE 50000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCodes/callcodecallcodecallcode_ABCB_RECURSIVEFiller.json",
    "content": "{\n    \"callcodecallcodecallcode_ABCB_RECURSIVE\" : {\n\t    \"_info\" : {\n\t        \"comment\" : \"CALLCODE -> CALLCODE2 -> CALLCODE3 -> CALLCODE2 -> ...  the gas usage is auto checked\"\n\t    },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"3000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t        {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 25000000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 1000000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 2 ]] (CALLCODE 500000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCreateCallCodeTest/Call1024BalanceTooLowFiller.json",
    "content": "{\n    \"Call1024BalanceTooLow\" : {\n        \"_info\" : {\n            \"comment\" : \"calldepth with balance too low\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun<Osaka\" ],\n                \"result\" : {\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x0401\",\n            \t\t\t    \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"7000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1024\",\n                \"code\" : \"{ [[ 0 ]] (ADD @@0 1) [[ 1 ]] (CALL 0xfffffffffff <contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b> @@0 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"17592186099592\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCreateCallCodeTest/Call1024OOGFiller.json",
    "content": "{\n    \"Call1024OOG\" : {\n        \"_info\" : {\n            \"comment\" : \"calldepth with oog\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : 0, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x86\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x020b71\"\n                        }\n                    }\n                }\n            },\n\t        {\n                \"indexes\" : { \"data\" : -1, \"gas\" : 1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\" ],\n                \"result\" : {\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x71\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01b969\"\n                        }\n                    }\n                }\n            },\n\t        {\n                \"indexes\" : { \"data\" : -1, \"gas\" : 2, \"value\" : -1 },\n                \"network\" : [\">=Cancun\" ],\n                \"result\" : {\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x92\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x023a51\"\n                        }\n                    }\n                }\n            },\n\t        {\n                \"indexes\" : { \"data\" : -1, \"gas\" : 3, \"value\" : -1 },\n                \"network\" : [\">=Cancun\" ],\n                \"result\" : {\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x7c\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01e461\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"7000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1024\",\n                \"code\" : \"{ [[ 0 ]] (ADD @@0 1) [[ 1 ]] (CALL (MUL (SUB (GAS) 10000) (SUB 1 (DIV @@0 1025))) <contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) [[ 2 ]] (ADD 1(MUL @@0 1000)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"13120826\", \"9320826\", \"15720826\", \"11220826\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCreateCallCodeTest/Call1024PreCallsFiller.json",
    "content": "{\n    \"Call1024PreCalls\" : {\n        \"_info\" : {\n            \"comment\" : \"calldepth with subcall\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : { \"data\" : -1, \"gas\" : 0, \"value\" : -1 },\n                \"network\" : [ \">=Cancun<Osaka\" ],\n                \"result\" : {\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x0401\",\n            \t\t\t    \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            },\n\t\t\t{\n                \"indexes\" : { \"data\" : -1, \"gas\" : 1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun<Osaka\" ],\n                \"result\" : {\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x0401\",\n            \t\t\t    \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"7000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"2024\",\n                \"code\" : \"{ [[ 2 ]] (CALL 0xffff <eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b> 1 0 0 0 0) [[ 3 ]] (CALL 0xffff <eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b> 1 0 0 0 0)  [[ 0 ]] (ADD @@0 1) [[ 1 ]] (CALL 0xfffffffffff <contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"9214364837600034817\", \"11837600034817\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCreateCallCodeTest/CallLoseGasOOGFiller.json",
    "content": "{\n    \"CallLoseGasOOG\" : {\n        \"_info\" : {\n            \"comment\" : \"recursive call\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x02\" : \"0x03e9\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"7000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1024\",\n                \"code\" : \"{ [[ 0 ]] (ADD @@0 1) [[ 1 ]] (CALL (ADD 1(MUL @@0 100000)) <contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) [[ 2 ]] (ADD 1(MUL @@0 1000)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"200000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCreateCallCodeTest/CallRecursiveBombPreCallFiller.json",
    "content": "{\n    \"CallRecursiveBombPreCall\" : {\n        \"_info\" : {\n            \"comment\" : \"recursive call\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun<Osaka\" ],\n                \"result\" : {\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x0400\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0xfffffffffffffffffffffffffffffff\",\n                \"code\" : \"{ (CALL 100000 0xbad304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0 0 0)  (CALL 0x7ffffffffffffff <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 23 0 0 0 0)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (CALL (- (GAS) 224000) (ADDRESS) 0 0 0 0 0) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"9214364837600034817\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCreateCallCodeTest/Callcode1024BalanceTooLowFiller.json",
    "content": "{\n    \"Callcode1024BalanceTooLow\" : {\n        \"_info\" : {\n            \"comment\" : \"calldepth and balance\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun<Osaka\" ],\n                \"result\" : {\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x0401\",\n            \t\t\t    \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"7000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1024\",\n                \"code\" : \"{ [[ 0 ]] (ADD @@0 1) [[ 1 ]] (CALLCODE 0xfffffffffff <contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b> @@0 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x7f000fffffffffff\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCreateCallCodeTest/Callcode1024OOGFiller.json",
    "content": "{\n    \"Callcode1024OOG\" : {\n        \"_info\" : {\n            \"comment\" : \"calldepth and oog\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : { \"data\" : -1, \"gas\" : 0, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x92\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x023a51\"\n                        }\n                    }\n                }\n            },\n\t\t    {\n                \"indexes\" : { \"data\" : -1, \"gas\" : 1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x86\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x020b71\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"7000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1024\",\n                \"code\" : \"{ [[ 0 ]] (ADD @@0 1) [[ 1 ]] (CALLCODE (MUL (SUB (GAS) 10000) (SUB 1 (DIV @@0 1025))) <contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) [[ 2 ]] (ADD 1(MUL @@0 1000)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"15720826\", \"13120826\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCreateCallCodeTest/CallcodeLoseGasOOGFiller.json",
    "content": "{\n    \"CallcodeLoseGasOOG\" : {\n        \"_info\" : {\n            \"comment\" : \"recursive call\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t        {\n                \"indexes\" : { \"data\" : -1, \"gas\" : 0, \"value\" : -1 },\n                \"network\" : [\">=Cancun\" ],\n                \"result\" : {\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            },\n\t        {\n                \"indexes\" : { \"data\" : -1, \"gas\" : 1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\" ],\n                \"result\" : {\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            },\n\t\t\t{\n                \"indexes\" : { \"data\" : -1, \"gas\" : 2, \"value\" : -1 },\n                \"network\" : [\">=Cancun\" ],\n                \"result\" : {\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x02\" : \"0x03e9\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"7000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1024\",\n                \"code\" : \"{ [[ 0 ]] (ADD @@0 1) [[ 1 ]] (CALLCODE (ADD 1(MUL @@0 100000)) <contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) [[ 2 ]] (ADD 1(MUL @@0 1000)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"166262\", \"156262\", \"170000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCreateCallCodeTest/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stCallCreateCallCodeTest/callOutput1Filler.json",
    "content": "{\n    \"callOutput1\" : {\n        \"_info\" : {\n            \"comment\" : \"check the output memory after call\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n    \t\"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n        \t\t\t\"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \t    \"storage\" : {\n            \t\t\t\t\"0x00\" : \"0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6\"\n                \t    }\n            \t\t}\n            \t}\n    \t    }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (CALL 150000 <contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87> 0 0 0 0 0) [[ 0 ]] (MLOAD 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x6001600101600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCreateCallCodeTest/callOutput2Filler.json",
    "content": "{\n    \"callOutput2\" : {\n        \"_info\" : {\n            \"comment\" : \"check the output memory after call\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n    \t\"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n           \t\t\t\"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \t    \"storage\" : {\n        \t\t\t    \t\"0x00\" : \"0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6\"\n                \t    }\n            \t\t}\n            \t}\n\t        }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (CALL 150000 <contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87> 0 0 32 0 0) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x6001600101600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCreateCallCodeTest/callOutput3FailFiller.json",
    "content": "{\n    \"callOutput3Fail\" : {\n        \"_info\" : {\n            \"comment\" : \"check the output memory after call\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n    \t\"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n        \t\t\t\"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \t    \"storage\" : {\n            \t\t\t\t\"0x00\" : \"0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6\"\n                \t    }\n            \t\t}\n            \t}\n    \t    }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (CALL 50000 <contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87> 0 0 0 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x016001600101600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCreateCallCodeTest/callOutput3Filler.json",
    "content": "{\n    \"callOutput3\" : {\n        \"_info\" : {\n            \"comment\" : \"check the output memory after call\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n    \t\"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n        \t\t\t\"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \t    \"storage\" : {\n            \t\t\t\t\"0x00\" : \"0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6\"\n                \t    }\n            \t\t}\n            \t}\n    \t    }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (CALL 150000 <contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87> 0 0 0 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x6001600101600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCreateCallCodeTest/callOutput3partialFailFiller.json",
    "content": "{\n    \"callOutput3partialFail\" : {\n        \"_info\" : {\n            \"comment\" : \"check the output memory after call\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n      \t\"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n\t\t        \t\"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \t    \"storage\" : {\n\t\t            \t\t\"0x00\" : \"0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6\"\n                \t    }\n            \t\t}\n            \t}\n\t        }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (CALL 50000 <contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87> 0 0 0 0 10) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x016001600101600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCreateCallCodeTest/callOutput3partialFiller.json",
    "content": "{\n    \"callOutput3partial\" : {\n        \"_info\" : {\n            \"comment\" : \"check the output memory after call\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n    \t\"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n        \t\t\t\"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \t    \"storage\" : {\n            \t\t\t\t\"0x00\" : \"0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6\"\n                \t    }\n            \t\t}\n            \t}\n    \t    }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (CALL 150000 <contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87> 0 0 0 0 10) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x6001600101600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCreateCallCodeTest/callWithHighValueAndGasOOGFiller.json",
    "content": "{\n    \"callWithHighValueAndGasOOG\" : {\n        \"_info\" : {\n            \"comment\" : \"call with value. call takes more gas then tx has, and more value than account has. check returndata.\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : 0 },\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"1\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n                        }\n                    }\n                }\n            },\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : 1 },\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0\" : \"1\",\n                            \"1\" : \"0x3700ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALL 0xffffffffffffffffffffffff <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 100000000000000000000 0 64 0 2 ) [[1]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x05\"\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \":raw 0x6001600155603760005360026000f3\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"6000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\", \"100000000000000000000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCreateCallCodeTest/callWithHighValueAndOOGatTxLevelFiller.json",
    "content": "{\n    \"callWithHighValueAndOOGatTxLevel\" : {\n        \"_info\" : {\n            \"comment\" : \"call with value. call takes more gas then tx has, and more value than account has\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : 0 },\n                \"network\" : [   \">=Cancun\" ],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            },\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : 1 },\n                \"network\" : [   \">=Cancun\" ],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"1\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"1\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"100000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 3000001 <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 100001 0 0 0 0 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x05\"\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \":raw 0x6001600155603760005360026000f3\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0\", \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCreateCallCodeTest/callWithHighValueFiller.json",
    "content": "{\n    \"callWithHighValue\" : {\n        \"_info\" : {\n            \"comment\" : \"call with value and not enough value to send\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 150000 <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 1000000000000000001 0 64 0 2 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \"{ [[2]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCreateCallCodeTest/callWithHighValueOOGinCallFiller.json",
    "content": "{\n    \"callWithHighValueOOGinCall\" : {\n        \"_info\" : {\n            \"comment\" : \"call with value and oog happens inside\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n    \t    \t\t\"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000000001\",\n        \t\t\t    \"storage\" : {\n        \t\t    \t\t\"0x00\" : \"0x01\"\n        \t\t\t    }\n    \t    \t\t}, \n    \t    \t\t\"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n        \t\t\t    \"balance\" : \"0x17\"\n    \t    \t\t}\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000001\",\n                \"code\" : \"{  [[ 0 ]] (ADD (CALL 10000 <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 1000000000000000000 0 0 0 0 ) 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \":raw 0x6001600155603760005360026000f3\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCreateCallCodeTest/callcodeOutput1Filler.json",
    "content": "{\n    \"callcodeOutput1\" : {\n        \"_info\" : {\n            \"comment\" : \"check output memory after callcode\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n    \t\"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n           \t\t\t\"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \t    \"storage\" : {\n\t\t\t            \t\"0x00\" : \"0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6\"\n                \t    }\n            \t\t}\n            \t}\n\t        }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (CALLCODE 150000 <contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87> 0 0 0 0 0) [[ 0 ]] (MLOAD 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x6001600101600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCreateCallCodeTest/callcodeOutput2Filler.json",
    "content": "{\n    \"callcodeOutput2\" : {\n        \"_info\" : {\n            \"comment\" : \"check output memory after callcode\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n    \t\"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n        \t\t\t\"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \t    \"storage\" : {\n            \t\t\t\t\"0x00\" : \"0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6\"\n                \t    }\n            \t\t}\n            \t}\n    \t    }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (CALLCODE 50000 <contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87> 0 0 32 0 0) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x6001600101600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCreateCallCodeTest/callcodeOutput3FailFiller.json",
    "content": "{\n    \"callcodeOutput3Fail\" : {\n        \"_info\" : {\n            \"comment\" : \"check output memory after callcode. callcode fails with underflow\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n    \t\"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n        \t\t\t\"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \t    \"storage\" : {\n            \t\t\t\t\"0x00\" : \"0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6\"\n                \t    }\n            \t\t}\n            \t}\n    \t    }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (CALLCODE 50000 <contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87> 0 0 0 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x016001600101600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCreateCallCodeTest/callcodeOutput3Filler.json",
    "content": "{\n    \"callcodeOutput3\" : {\n        \"_info\" : {\n            \"comment\" : \"check output memory after callcode.\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n    \t\"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n        \t\t\t\"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \t    \"storage\" : {\n            \t\t\t\t\"0x00\" : \"0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6\"\n                \t    }\n            \t\t}\n            \t}\n    \t    }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (CALLCODE 150000 <contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87> 0 0 0 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x6001600101600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCreateCallCodeTest/callcodeOutput3partialFailFiller.json",
    "content": "{\n    \"callcodeOutput3partialFail\" : {\n        \"_info\" : {\n            \"comment\" : \"check output memory after callcode. callcode fails with underflow stack\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n    \t\"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n        \t\t\t\"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \t    \"storage\" : {\n            \t\t\t\t\"0x00\" : \"0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6\"\n                \t    }\n            \t\t}\n            \t}\n    \t    }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (CALLCODE 50000 <contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87> 0 0 0 0 10) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x016001600101600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCreateCallCodeTest/callcodeOutput3partialFiller.json",
    "content": "{\n    \"callcodeOutput3partial\" : {\n        \"_info\" : {\n            \"comment\" : \"check output memory after callcode\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n    \t\"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n        \t\t\t\"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \t    \"storage\" : {\n            \t\t\t\t\"0x00\" : \"0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6\"\n                \t    }\n            \t\t}\n            \t}\n    \t    }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (CALLCODE 150000 <contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87> 0 0 0 0 10) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x6001600101600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCreateCallCodeTest/callcodeWithHighValueAndGasOOGFiller.json",
    "content": "{\n    \"callcodeWithHighValueAndGasOOG\" : {\n        \"_info\" : {\n            \"comment\" : \"callcode with high value fails\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALLCODE 0xffffffffffffffffffffffff <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 100000000000000000000 0 64 0 2 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \":raw 0x6001600155603760005360026000f3\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCreateCallCodeTest/callcodeWithHighValueFiller.json",
    "content": "{\n    \"callcodeWithHighValue\" : {\n        \"_info\" : {\n            \"comment\" : \"callcode with high value fails\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 50000 <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 1000000000000000001 0 64 0 2 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \":raw 0x6001600155603760005360026000f3\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCreateCallCodeTest/contractCreationMakeCallThatAskMoreGasThenTransactionProvidedFiller.json",
    "content": "{\n    \"contractCreationMakeCallThatAskMoreGasThenTransactionProvided\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : [0],\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\": {\n                        \"balance\" : \"0\"\n                     },\n                    \"1000000000000000000000000000000000000001\": {\n                        \"storage\" : {\n                            \"0x01\" : \"0x01\"\n                            }\n                        } \n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : [1],\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\": {\n                        \"balance\" : \"0\"\n                     },\n                    \"1000000000000000000000000000000000000001\": {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\"\n                            }\n                        } \n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1100000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"100000\",\n                \"code\" : \"{(CALL 50000 0x1000000000000000000000000000000000000001 0 0 64 0 64)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"1000000000000000000000000000000000000001\" : {\n                \"balance\" : \"100000\",\n                \"code\" : \"{(SSTORE 1 1)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x6040600060406000600073100000000000000000000000000000000000000161c350f1\"\n            ],\n            \"gasLimit\" : [\n                \"96000\", \"60000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCreateCallCodeTest/createFailBalanceTooLowFiller.json",
    "content": "{\n    \"createFailBalanceTooLow\" : {\n        \"_info\" : {\n            \"comment\" : \"create fails because we try to send more wei to it that we have\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n    \t\"expect\" : [\n    \t    {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : 0 },\n                \"network\" : [\">=Cancun\" ],\n                \"result\" : {\n        \t\t\t\"0000000000000000000000000000000000000000\" : {\n                        \"storage\" : {}\n            \t\t},\n                    \"0xd2571607e241ecf590ed94b12d87c94babe36db6\" : {\n                        \"shouldnotexist\" : \"1\"\n                    }\n            \t}\n    \t    },\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : 1 },\n                \"network\" : [\">=Cancun\" ],\n                \"result\" : {\n        \t\t\t\"0000000000000000000000000000000000000000\" : {\n                        \"shouldnotexist\" : \"1\"\n            \t\t},\n                    \"0xd2571607e241ecf590ed94b12d87c94babe36db6\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n            \t}\n    \t    }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{(MSTORE 0 0x6001600255 ) (SELFDESTRUCT (CREATE 1000000000000000024 27 5)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"253021\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"23\", \"24\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCreateCallCodeTest/createInitFailBadJumpDestination2Filler.json",
    "content": "{\n    \"createInitFailBadJumpDestination2\" : {\n        \"_info\" : {\n            \"comment\" : \"create fails because init code has bad jump dest\" \n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n    \t\"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n        \t\t\t\"0000000000000000000000000000000000000000\" : {\n                \t    \"balance\" : \"0x0de0b6b3a76586a0\"\n            \t\t}\n            \t}\n    \t    }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{(MSTORE 0 0x61ffff56 ) (SELFDESTRUCT (CREATE 1 28 4)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"2200000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCreateCallCodeTest/createInitFailBadJumpDestinationFiller.json",
    "content": "{\n    \"createInitFailBadJumpDestination\" : {\n        \"_info\" : {\n            \"comment\" : \"create fails because init code has bad jump dest (underflow)\" \n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n    \t\"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n        \t\t\t\"0000000000000000000000000000000000000000\" : {\n                \t    \"balance\" : \"0x0de0b6b3a76586a0\"\n            \t\t}\n            \t}\n    \t    }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{(MSTORE8 0 0x56 ) (SELFDESTRUCT (CREATE 1 0 1)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"2200000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCreateCallCodeTest/createInitFailStackSizeLargerThan1024Filler.json",
    "content": "{\n    \"createInitFailStackSizeLargerThan1024\" : {\n        \"_info\" : {\n            \"comment\" : \"create fails because init code has stack size >1024\" \n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n    \t\"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n        \t\t\t\"0000000000000000000000000000000000000000\" : {\n                \t    \"balance\" : \"0x0de0b6b3a76586a0\"\n            \t\t}\n            \t}\n    \t    }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{(MSTORE 0 0x6103ff6000525b7f0102030405060708090a0102030405060708090a01020304) (MSTORE 32 0x05060708090a0102600160005103600052600051600657000000000000000000 ) (SELFDESTRUCT (CREATE 1 0 64)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"2200000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCreateCallCodeTest/createInitFailStackUnderflowFiller.json",
    "content": "{\n    \"createInitFailStackUnderflow\" : {\n        \"_info\" : {\n            \"comment\" : \"create fails because init code has stack underflow, trying to suicide to it\" \n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n    \t\"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n        \t\t\t\"0000000000000000000000000000000000000000\" : {\n                \t    \"balance\" : \"0x0de0b6b3a76586a0\"\n            \t\t}\n            \t}\n    \t    }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{(MSTORE8 0 0x01 ) (SELFDESTRUCT (CREATE 1 0 1)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"2200000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCreateCallCodeTest/createInitFailUndefinedInstruction2Filler.json",
    "content": "{\n    \"createInitFailUndefinedInstruction2\" : {\n        \"_info\" : {\n            \"comment\" : \"original test of createInitFailUndefinedInstruction, interesting expect section\" \n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n    \t\"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n        \t\t\t\"0000000000000000000000000000000000000000\" : {\n                \t    \"balance\" : \"0x0de0b6b3a76586a0\"\n            \t\t}\n            \t}\n    \t    }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{(MSTORE8 0 0xf4 ) (SELFDESTRUCT (CREATE 1 0 1)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"2200000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCreateCallCodeTest/createInitFailUndefinedInstructionFiller.json",
    "content": "{\n    \"createInitFailUndefinedInstruction\" : {\n        \"_info\" : {\n            \"comment\" : \"create fails because init code has undefined opcode, trying to suicide to it\" \n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n    \t\"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n        \t\t\t\"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \t    \"storage\" : {\n                            \"0x02\" : \"1\"\n                        }\n            \t\t}\n            \t}\n    \t    }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[0]] (CALL 400000 <contract:0x1000000000000000000000000000000000000000> 0 0 0 0 0) [[1]] (CALL 400000 <contract:0x2000000000000000000000000000000000000000> 0 0 0 0 0) [[2]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{(MSTORE8 0 0xf9 ) (SELFDESTRUCT (CREATE 1 0 1)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{(MSTORE8 0 0xf9 ) (SELFDESTRUCT (CREATE2 1 0 1 0)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"900000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCreateCallCodeTest/createInitFail_OOGduringInit2Filler.json",
    "content": "{\n    \"createInitFail_OOGduringInit2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"0xd2571607e241ecf590ed94b12d87c94babe36db6\" : {\n                        \"shouldnotexist\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{ (CREATE 1 0  (lll(seq [[1]] 1 (KECCAK256 0x00 0x2fffff) )0))   }\",\n                \"storage\": {}\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"\",\n                \"storage\": {}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCreateCallCodeTest/createInitFail_OOGduringInitFiller.json",
    "content": "{\n    \"createInitFail_OOGduringInit\" : {\n        \"_info\" : {\n            \"comment\" : \"create fails because init code has OOG\" \n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n    \t\"expect\" : [\n    \t    {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\" ],\n                \"result\" : {\n        \t\t\t\"0000000000000000000000000000000000000000\" : {\n                \t    \"shouldnotexist\" : \"1\"\n            \t\t}\n            \t}\n    \t    }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{(MSTORE8 0 0x5a ) (SELFDESTRUCT (CREATE 1 0 1)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"53021\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCreateCallCodeTest/createInitOOGforCREATEFiller.json",
    "content": "{\n    \"createInitOOGforCREATE\" : {\n        \"_info\" : {\n            \"comment\" : \"Suicide to a dynamic created contract, oog on create\" \n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n    \t\"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : 0, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n        \t\t\t\"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \t    \"nonce\" : \"0\"\n            \t\t}\n            \t}\n    \t    },\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : 1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n        \t\t\t\"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \t    \"nonce\" : \"1\",\n                        \"balance\" : \"0\"\n            \t\t},\n                    \"0xd2571607e241ecf590ed94b12d87c94babe36db6\" : {\n                        \"nonce\" : \"1\"\n                    }\n            \t}\n    \t    }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{(MSTORE8 0 0x5a ) (SELFDESTRUCT (CREATE 1 0 1)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"53020\", \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCreateCallCodeTest/createJS_ExampleContractFiller.json",
    "content": "{\n    \"createJS_ExampleContract\" : {\n        \"_info\" : {\n            \"comment\" : \"Deploy legacy contract normally\" \n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n    \t\"expect\" : [\n    \t    {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n            \t    \"<contract:0x6295ee1b4f6dd65047762f924ecd367c17eabf8f>\" : {\n            \t\t\t\"code\" : \"0x60003560e060020a9004806343d726d61461004257806391b7f5ed14610050578063d686f9ee14610061578063f5bade661461006f578063fcfff16f1461008057005b61004a6101de565b60006000f35b61005b6004356100bf565b60006000f35b610069610304565b60006000f35b61007a60043561008e565b60006000f35b6100886100f0565b60006000f35b600054600160a060020a031633600160a060020a031614156100af576100b4565b6100bc565b806001819055505b50565b600054600160a060020a031633600160a060020a031614156100e0576100e5565b6100ed565b806002819055505b50565b600054600160a060020a031633600160a060020a031614806101255750600354600160a060020a031633600160a060020a0316145b61012e57610161565b60016004819055507f59ebeb90bc63057b6515673c3ecf9438e5058bca0f92585014eced636878c9a560006000a16101dc565b60045460011480610173575060015434105b6101b85760016004819055507f59ebeb90bc63057b6515673c3ecf9438e5058bca0f92585014eced636878c9a560006000a142600581905550336003819055506101db565b33600160a060020a03166000346000600060006000848787f16101d757005b5050505b5b565b60006004546000146101ef576101f4565b610301565b600054600160a060020a031633600160a060020a031614801561022c5750600054600160a060020a0316600354600160a060020a0316145b61023557610242565b6000600481905550610301565b600354600160a060020a031633600160a060020a03161461026257610300565b600554420360025402905060015481116102c757600354600160a060020a0316600082600154036000600060006000848787f161029b57005b505050600054600160a060020a03166000826000600060006000848787f16102bf57005b5050506102ee565b600054600160a060020a031660006001546000600060006000848787f16102ea57005b5050505b60006004819055506000546003819055505b5b50565b6000600054600160a060020a031633600160a060020a031614156103275761032c565b61037e565b600554420360025402905060015481116103455761037d565b600054600160a060020a031660006001546000600060006000848787f161036857005b50505060006004819055506000546003819055505b5b5056\",\n                    \t\"storage\" : {\n                    \t    \"0x00\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n                    \t    \"0x01\" : \"0x42\",\n                    \t    \"0x02\" : \"0x23\",\n                    \t    \"0x03\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n                    \t    \"0x05\" : \"0x54c98c81\"\n                    \t}\n                    }\n            \t}\n    \t    }\n        ],\n        \"pre\" : {\n            \"<contract:0x6295ee1b4f6dd65047762f924ecd367c17eabf8f>\" : {\n                \"balance\" : \"100000\",\n                \"code\" : \":raw 0x60003560e060020a9004806343d726d61461004257806391b7f5ed14610050578063d686f9ee14610061578063f5bade661461006f578063fcfff16f1461008057005b61004a6101de565b60006000f35b61005b6004356100bf565b60006000f35b610069610304565b60006000f35b61007a60043561008e565b60006000f35b6100886100f0565b60006000f35b600054600160a060020a031633600160a060020a031614156100af576100b4565b6100bc565b806001819055505b50565b600054600160a060020a031633600160a060020a031614156100e0576100e5565b6100ed565b806002819055505b50565b600054600160a060020a031633600160a060020a031614806101255750600354600160a060020a031633600160a060020a0316145b61012e57610161565b60016004819055507f59ebeb90bc63057b6515673c3ecf9438e5058bca0f92585014eced636878c9a560006000a16101dc565b60045460011480610173575060015434105b6101b85760016004819055507f59ebeb90bc63057b6515673c3ecf9438e5058bca0f92585014eced636878c9a560006000a142600581905550336003819055506101db565b33600160a060020a03166000346000600060006000848787f16101d757005b5050505b5b565b60006004546000146101ef576101f4565b610301565b600054600160a060020a031633600160a060020a031614801561022c5750600054600160a060020a0316600354600160a060020a0316145b61023557610242565b6000600481905550610301565b600354600160a060020a031633600160a060020a03161461026257610300565b600554420360025402905060015481116102c757600354600160a060020a0316600082600154036000600060006000848787f161029b57005b505050600054600160a060020a03166000826000600060006000848787f16102bf57005b5050506102ee565b600054600160a060020a031660006001546000600060006000848787f16102ea57005b5050505b60006004819055506000546003819055505b5b50565b6000600054600160a060020a031633600160a060020a031614156103275761032c565b61037e565b600554420360025402905060015481116103455761037d565b600054600160a060020a031660006001546000600060006000848787f161036857005b50505060006004819055506000546003819055505b5b5056\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n                    \"0x01\" : \"0x42\",\n                    \"0x02\" : \"0x23\",\n                    \"0x03\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n                    \"0x05\" : \"0x54c98c81\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x60406103ca600439600451602451336000819055506000600481905550816001819055508060028190555042600581905550336003819055505050610381806100496000396000f30060003560e060020a9004806343d726d61461004257806391b7f5ed14610050578063d686f9ee14610061578063f5bade661461006f578063fcfff16f1461008057005b61004a6101de565b60006000f35b61005b6004356100bf565b60006000f35b610069610304565b60006000f35b61007a60043561008e565b60006000f35b6100886100f0565b60006000f35b600054600160a060020a031633600160a060020a031614156100af576100b4565b6100bc565b806001819055505b50565b600054600160a060020a031633600160a060020a031614156100e0576100e5565b6100ed565b806002819055505b50565b600054600160a060020a031633600160a060020a031614806101255750600354600160a060020a031633600160a060020a0316145b61012e57610161565b60016004819055507f59ebeb90bc63057b6515673c3ecf9438e5058bca0f92585014eced636878c9a560006000a16101dc565b60045460011480610173575060015434105b6101b85760016004819055507f59ebeb90bc63057b6515673c3ecf9438e5058bca0f92585014eced636878c9a560006000a142600581905550336003819055506101db565b33600160a060020a03166000346000600060006000848787f16101d757005b5050505b5b565b60006004546000146101ef576101f4565b610301565b600054600160a060020a031633600160a060020a031614801561022c5750600054600160a060020a0316600354600160a060020a0316145b61023557610242565b6000600481905550610301565b600354600160a060020a031633600160a060020a03161461026257610300565b600554420360025402905060015481116102c757600354600160a060020a0316600082600154036000600060006000848787f161029b57005b505050600054600160a060020a03166000826000600060006000848787f16102bf57005b5050506102ee565b600054600160a060020a031660006001546000600060006000848787f16102ea57005b5050505b60006004819055506000546003819055505b5b50565b6000600054600160a060020a031633600160a060020a031614156103275761032c565b61037e565b600554420360025402905060015481116103455761037d565b600054600160a060020a031660006001546000600060006000848787f161036857005b50505060006004819055506000546003819055505b5b505600000000000000000000000000000000000000000000000000000000000000420000000000000000000000000000000000000000000000000000000000000023\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCreateCallCodeTest/createJS_NoCollisionFiller.json",
    "content": "{\n    \"createJS_NoCollision\" : {\n        \"_info\" : {\n            \"comment\" : \"Deploy legacy contract normally\" \n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n    \t\"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n                \t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \t\"storage\" : {\n                        \t    \"0x00\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                        \t    \"0x01\" : \"0x42\",\n                        \t    \"0x02\" : \"0x23\",\n                        \t    \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                        \t    \"0x05\" : \"0x03e8\"\n                    \t}\n                     }\n            \t}\n    \t    }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"10000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x60406103ca600439600451602451336000819055506000600481905550816001819055508060028190555042600581905550336003819055505050610381806100496000396000f30060003560e060020a9004806343d726d61461004257806391b7f5ed14610050578063d686f9ee14610061578063f5bade661461006f578063fcfff16f1461008057005b61004a6101de565b60006000f35b61005b6004356100bf565b60006000f35b610069610304565b60006000f35b61007a60043561008e565b60006000f35b6100886100f0565b60006000f35b600054600160a060020a031633600160a060020a031614156100af576100b4565b6100bc565b806001819055505b50565b600054600160a060020a031633600160a060020a031614156100e0576100e5565b6100ed565b806002819055505b50565b600054600160a060020a031633600160a060020a031614806101255750600354600160a060020a031633600160a060020a0316145b61012e57610161565b60016004819055507f59ebeb90bc63057b6515673c3ecf9438e5058bca0f92585014eced636878c9a560006000a16101dc565b60045460011480610173575060015434105b6101b85760016004819055507f59ebeb90bc63057b6515673c3ecf9438e5058bca0f92585014eced636878c9a560006000a142600581905550336003819055506101db565b33600160a060020a03166000346000600060006000848787f16101d757005b5050505b5b565b60006004546000146101ef576101f4565b610301565b600054600160a060020a031633600160a060020a031614801561022c5750600054600160a060020a0316600354600160a060020a0316145b61023557610242565b6000600481905550610301565b600354600160a060020a031633600160a060020a03161461026257610300565b600554420360025402905060015481116102c757600354600160a060020a0316600082600154036000600060006000848787f161029b57005b505050600054600160a060020a03166000826000600060006000848787f16102bf57005b5050506102ee565b600054600160a060020a031660006001546000600060006000848787f16102ea57005b5050505b60006004819055506000546003819055505b5b50565b6000600054600160a060020a031633600160a060020a031614156103275761032c565b61037e565b600554420360025402905060015481116103455761037d565b600054600160a060020a031660006001546000600060006000848787f161036857005b50505060006004819055506000546003819055505b5b505600000000000000000000000000000000000000000000000000000000000000420000000000000000000000000000000000000000000000000000000000000023\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCreateCallCodeTest/createNameRegistratorPerTxsFiller.json",
    "content": "{\n    \"createNameRegistratorPerTxs\" : {\n        \"_info\" : {\n            \"comment\" : \"Legacy Test from Christoph. J\" \n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n\t    \"expect\" : [\n\t        {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t    \t        \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                    \t\"balance\" : \"0x0186a0\",\n                    \t\"code\" : \"0x396000f3006000355415600957005b60\",\n                    \t\"nonce\" : \"0x01\",\n                    \t\"storage\" : {\n                       \t    \"0x01\" : \"0x01\"\n                     \t}\n\t    \t         }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x6001600155601080600c6000396000f3006000355415600957005b60203560003555\"\n            ],\n            \"gasLimit\" : [\n                \"0x1314e0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCreateCallCodeTest/createNameRegistratorPerTxsNotEnoughGasFiller.json",
    "content": "{\n    \"createNameRegistratorPerTxsNotEnoughGas\" : {\n        \"_info\" : {\n            \"comment\" : \"Legacy Test from Christoph. J\" \n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n    \t\"expect\" : [\n    \t    {\n                \"indexes\" : { \"data\" : -1, \"gas\" : 0, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n\t        \t    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                    \t\"nonce\" : \"0x01\"\n\t        \t    },\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"shouldnotexist\" : \"1\"\n                    }\n                }\n            },\n    \t    {\n                \"indexes\" : { \"data\" : -1, \"gas\" : 1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n    \t    \t    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                    \t\"nonce\" : \"0x01\"\n    \t    \t    },\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"storage\" : {\n                             \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x6001600155601080600c6000396000f3006000355415600957005b60203560003555\"\n            ],\n            \"gasLimit\" : [\n                \"56157\",\n                \"86157\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCreateCallCodeTest/createNameRegistratorPreStore1NotEnoughGasFiller.json",
    "content": "{\n    \"createNameRegistratorPreStore1NotEnoughGas\" : {\n        \"_info\" : {\n            \"comment\" : \"Legacy Test from Christoph. J\" \n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"nonce\" : \"0x01\"\n                    },\n                    \"d2571607e241ecf590ed94b12d87c94babe36db6\" : {\n                        \"shouldnotexist\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{(MSTORE 0 0x6001600155601080600c6000396000f3006000355415600957005b6020356000 )  (MSTORE8 32 0x35) (MSTORE8 33 0x55) (CREATE 23 0 34) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"73071\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallCreateCallCodeTest/createNameRegistratorendowmentTooHighFiller.json",
    "content": "{\n    \"createNameRegistratorendowmentTooHigh\" : {\n        \"_info\" : {\n            \"comment\" : \"Legacy Test from Christoph. J\" \n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0x601080600c6000396000f3006000355415600957005b60203560003555) [[ 0 ]] (CREATE 1000000000000000001 3 29) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"300000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcallcallcode_001Filler.json",
    "content": "{\n    \"callcallcallcode_001\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x014a\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n                            \"0x014c\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n                            \"0x0150\" : \"0x40\",\n                            \"0x0152\" : \"0x27\",\n                            \"0x0154\" : \"0x0a\",\n                            \"0x02\" : \"0x01\",\n                            \"0x03\" : \"0x01\",\n                            \"0x04\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n                            \"0x05\" : \"0x02\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x03\" : \"0x00\",\n                            \"0x04\" : \"0x00\",\n                            \"0x05\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\",\n                            \"0x04\" : \"0x00\",\n                            \"0x05\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\",\n                            \"0x04\" : \"0x00\",\n                            \"0x05\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 350000 <contract:0x1000000000000000000000000000000000000001> 1 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 300000 <contract:0x1000000000000000000000000000000000000002> 2 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 2 ]] (DELEGATECALL 250000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 5 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcallcallcode_001_OOGEFiller.json",
    "content": "{\n    \"callcallcallcode_001_OOGE\" : {\n        \"_info\" : {\n            \"comment\" : \"CALLCODE -> CALLCODE -> DELEGATE -> CODE OOG\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 800000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 600000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 2 ]] (DELEGATECALL 400000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcallcallcode_001_OOGMAfterFiller.json",
    "content": "{\n    \"callcallcallcode_001_OOGMAfter\" : {\n        \"_info\" : {\n            \"comment\" : \"CALLCODE -> (CALLCODE -> DELEGATE -> CODE) OOG\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 800000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) [[11]] 1  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 600000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ [[ 2 ]] (DELEGATECALL 400000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcallcallcode_001_OOGMBeforeFiller.json",
    "content": "{\n    \"callcallcallcode_001_OOGMBefore\" : {\n        \"_info\" : {\n            \"comment\" : \"CALLCODE -> CALLCODE -> OOG DELEGATE -> CODE\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 800000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 600000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (KECCAK256 0x00 0x2fffff) [[ 2 ]] (DELEGATECALL 400000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcallcallcode_001_SuicideEndFiller.json",
    "content": "{\n    \"callcallcallcode_001_SuicideEnd\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"code\" : \"0x6040600060406000600073<contract:0x1000000000000000000000000000000000000001>620249f0f260005500\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\",\n                            \"0x03\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 150000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 100000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 2 ]] (DELEGATECALL 50000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) (SELFDESTRUCT <contract:0x1000000000000000000000000000000000000001>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcallcallcode_001_SuicideMiddleFiller.json",
    "content": "{\n    \"callcallcallcode_001_SuicideMiddle\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"1000000000000000000\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 150000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 100000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SELFDESTRUCT <contract:target:0x1000000000000000000000000000000000000000>) [[ 2 ]] (DELEGATECALL 50000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcallcallcode_ABCB_RECURSIVEFiller.json",
    "content": "{\n    \"callcallcallcode_ABCB_RECURSIVE\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"CALLCODE -> CALLCODE1 -> DELEGATECALL2 -> CALLCODE1 -> ...\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"3000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 25000000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 1000000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 2 ]] (DELEGATECALL 500000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcallcode_01Filler.json",
    "content": "{\n    \"callcallcode_01\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\",\n                            \"0x04\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n                            \"0x05\" : \"0x01\",\n                            \"0xe6\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n                            \"0xe8\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n                            \"0xec\" : \"0x40\",\n                            \"0xee\" : \"0x22\",\n                            \"0xf0\" : \"0x0a\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\",\n                            \"0x04\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x04\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 350000 <contract:0x1000000000000000000000000000000000000001> 1 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 250000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 2 1) (SSTORE 4 (CALLER)) (SSTORE 5 (CALLVALUE)) (SSTORE 230 (ADDRESS)) (SSTORE 232 (ORIGIN)) (SSTORE 236 (CALLDATASIZE)) (SSTORE 238 (CODESIZE)) (SSTORE 240 (GASPRICE)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcallcode_01_OOGEFiller.json",
    "content": "{\n    \"callcallcode_01_OOGE\" : {\n        \"_info\" : {\n            \"comment\" : \"CALLCODE -> DELEGATE -> CODE OOG\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 800000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 2 1) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcallcode_01_SuicideEndFiller.json",
    "content": "{\n    \"callcallcode_01_SuicideEnd\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"1000000000000000000\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 150000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 50000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (SELFDESTRUCT <contract:target:0x1000000000000000000000000000000000000000>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 2 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcallcodecall_010Filler.json",
    "content": "{\n    \"callcallcodecall_010\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x014a\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n                            \"0x014c\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n                            \"0x0150\" : \"0x40\",\n                            \"0x0152\" : \"0x27\",\n                            \"0x0154\" : \"0x0a\",\n                            \"0x02\" : \"0x01\",\n                            \"0x03\" : \"0x01\",\n                            \"0x04\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n                            \"0x05\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n                            \"0x06\" : \"0x02\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\",\n                            \"0x05\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                            \"0x03\" : \"0x00\",\n                            \"0x04\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 350000 <contract:0x1000000000000000000000000000000000000001> 1 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 300000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 2 ]] (CALLCODE 250000 <contract:0x1000000000000000000000000000000000000003> 2 0 64 0 64 ) (SSTORE 5 (CALLER))}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 6 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE))}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcallcodecall_010_OOGEFiller.json",
    "content": "{\n    \"callcallcodecall_010_OOGE\" : {\n        \"_info\" : {\n            \"comment\" : \"CALLCODE -> DELEGATE -> CALLCODE -> CODE OOG\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 800000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 2 ]] (CALLCODE 400000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcallcodecall_010_OOGMAfterFiller.json",
    "content": "{\n    \"callcallcodecall_010_OOGMAfter\" : {\n        \"_info\" : {\n            \"comment\" : \"CALLCODE -> (DELEGATE -> CALLCODE -> CODE) OOG\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 800000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 2 ]] (CALLCODE 400000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcallcodecall_010_OOGMBeforeFiller.json",
    "content": "{\n    \"callcallcodecall_010_OOGMBefore\" : {\n        \"_info\" : {\n            \"comment\" : \"CALLCODE -> DELEGATE -> OOG CALLCODE -> CODE\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 800000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (KECCAK256 0x00 0x2fffff) [[ 2 ]] (CALLCODE 400000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcallcodecall_010_SuicideEndFiller.json",
    "content": "{\n    \"callcallcodecall_010_SuicideEnd\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\",\n                            \"0x03\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 150000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 2 ]] (CALLCODE 50000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) (SELFDESTRUCT <contract:0x1000000000000000000000000000000000000001>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcallcodecall_010_SuicideMiddleFiller.json",
    "content": "{\n    \"callcallcodecall_010_SuicideMiddle\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 150000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SELFDESTRUCT <contract:target:0x1000000000000000000000000000000000000000>) [[ 2 ]] (CALLCODE 50000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcallcodecall_ABCB_RECURSIVEFiller.json",
    "content": "{\n    \"callcallcodecall_ABCB_RECURSIVE\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"CALLCODE -> DELEGATECALL -> CALLCODE2 -> DELEGATECALL -> CALLCODE2 -> ...\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"3000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 25000000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 1000000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 2 ]] (CALLCODE 500000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcallcodecallcode_011Filler.json",
    "content": "{\n    \"callcallcodecallcode_011\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x014a\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n                            \"0x014c\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n                            \"0x0150\" : \"0x40\",\n                            \"0x0152\" : \"0x27\",\n                            \"0x0154\" : \"0x0a\",\n                            \"0x02\" : \"0x01\",\n                            \"0x03\" : \"0x01\",\n                            \"0x04\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n                            \"0x06\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\",\n                            \"0x04\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 350000 <contract:0x1000000000000000000000000000000000000001> 1 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 300000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 2 ]] (DELEGATECALL 200000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 6 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE))}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcallcodecallcode_011_OOGEFiller.json",
    "content": "{\n    \"callcallcodecallcode_011_OOGE\" : {\n        \"_info\" : {\n            \"comment\" : \"CALLCODE -> DELEGATE -> DELEGATE -> CODE OOG\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 800000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 2 ]] (DELEGATECALL 400000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcallcodecallcode_011_OOGMAfterFiller.json",
    "content": "{\n    \"callcallcodecallcode_011_OOGMAfter\" : {\n        \"_info\" : {\n            \"comment\" : \"CALLCODE -> (DELEGATE -> DELEGATE -> CODE) OOG\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 800000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 2 ]] (DELEGATECALL 400000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcallcodecallcode_011_OOGMBeforeFiller.json",
    "content": "{\n    \"callcallcodecallcode_011_OOGMBefore\" : {\n        \"_info\" : {\n            \"comment\" : \"CALLCODE -> DELEGATE -> OOG DELEGATE -> CODE\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 150000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 40080 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (KECCAK256 0x00 0x2fffff) [[ 2 ]] (DELEGATECALL 20020 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"172000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcallcodecallcode_011_SuicideEndFiller.json",
    "content": "{\n    \"callcallcodecallcode_011_SuicideEnd\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\",\n                            \"0x03\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 150000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 2 ]] (DELEGATECALL 50000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) (SELFDESTRUCT <contract:0x1000000000000000000000000000000000000001>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcallcodecallcode_011_SuicideMiddleFiller.json",
    "content": "{\n    \"callcallcodecallcode_011_SuicideMiddle\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x03\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 150000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{ (SELFDESTRUCT <contract:target:0x1000000000000000000000000000000000000000>) [[ 2 ]] (DELEGATECALL 50000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcallcodecallcode_ABCB_RECURSIVEFiller.json",
    "content": "{\n    \"callcallcodecallcode_ABCB_RECURSIVE\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"CALLCODE -> DELEGATECALL1 -> DELEGATECALL2 -> DELEGATECALL1 -> ...\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"3000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 25000000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 1000000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 2 ]] (DELEGATECALL 500000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcodecall_10Filler.json",
    "content": "{\n    \"callcodecall_10\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\",\n                            \"0x04\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n                            \"0x05\" : \"0x02\",\n                            \"0xe6\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n                            \"0xe8\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n                            \"0xec\" : \"0x40\",\n                            \"0xee\" : \"0x22\",\n                            \"0xf0\" : \"0x0a\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\",\n                            \"0x04\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 350000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 250000 <contract:0x1000000000000000000000000000000000000002> 2 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 2 1) (SSTORE 4 (CALLER)) (SSTORE 5 (CALLVALUE)) (SSTORE 230 (ADDRESS)) (SSTORE 232 (ORIGIN)) (SSTORE 236 (CALLDATASIZE)) (SSTORE 238 (CODESIZE)) (SSTORE 240 (GASPRICE)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcodecall_10_OOGEFiller.json",
    "content": "{\n    \"callcodecall_10_OOGE\" : {\n        \"_info\" : {\n            \"comment\" : \"DELEGATE -> CALLCODE -> CODE OOG\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 600000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 2 1) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcodecall_10_SuicideEndFiller.json",
    "content": "{\n    \"callcodecall_10_SuicideEnd\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 50000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) (SELFDESTRUCT <contract:target:0x1000000000000000000000000000000000000000>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 2 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcodecallcall_100Filler.json",
    "content": "{\n    \"callcodecallcall_100\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x014a\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n                            \"0x014c\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n                            \"0x0150\" : \"0x40\",\n                            \"0x0152\" : \"0x27\",\n                            \"0x0154\" : \"0x0a\",\n                            \"0x02\" : \"0x01\",\n                            \"0x03\" : \"0x01\",\n                            \"0x04\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n                            \"0x05\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n                            \"0x06\" : \"0x02\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                            \"0x03\" : \"0x00\",\n                            \"0x04\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 350000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 300000 <contract:0x1000000000000000000000000000000000000002> 1 0 64 0 64 ) (SSTORE 5 (CALLER))}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 2 ]] (CALLCODE 250000 <contract:0x1000000000000000000000000000000000000003> 2 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 6 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcodecallcall_100_OOGEFiller.json",
    "content": "{\n    \"callcodecallcall_100_OOGE\" : {\n        \"_info\" : {\n            \"comment\" : \"DELEGATE -> CALLCODE -> CALLCODE -> CODE OOG\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 600000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 2 ]] (CALLCODE 400000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (KECCAK256 0x00 0x2fffff)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcodecallcall_100_OOGMAfterFiller.json",
    "content": "{\n    \"callcodecallcall_100_OOGMAfter\" : {\n        \"_info\" : {\n            \"comment\" : \"DELEGATE -> (CALLCODE -> CALLCODE -> CODE) OOG\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 600000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 2 ]] (CALLCODE 400000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcodecallcall_100_OOGMBeforeFiller.json",
    "content": "{\n    \"callcodecallcall_100_OOGMBefore\" : {\n        \"_info\" : {\n            \"comment\" : \"DELEGATE -> CALLCODE -> OOG CALLCODE -> CODE\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 600000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (KECCAK256 0x00 0x2fffff) [[ 2 ]] (CALLCODE 400000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcodecallcall_100_SuicideEndFiller.json",
    "content": "{\n    \"callcodecallcall_100_SuicideEnd\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\",\n                            \"0x03\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 100000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 2 ]] (CALLCODE 50000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) (SELFDESTRUCT <contract:0x1000000000000000000000000000000000000001>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcodecallcall_100_SuicideMiddleFiller.json",
    "content": "{\n    \"callcodecallcall_100_SuicideMiddle\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 100000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SELFDESTRUCT <contract:target:0x1000000000000000000000000000000000000000>) [[ 2 ]] (CALLCODE 50000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcodecallcall_ABCB_RECURSIVEFiller.json",
    "content": "{\n    \"callcodecallcall_ABCB_RECURSIVE\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"DELEGATE -> CALLCODE1 -> CALLCODE2  -> CALLCODE1 -> ...\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"3000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n            \t\t\t    \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 25000000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 1000000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 2 ]] (CALLCODE 500000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcodecallcallcode_101Filler.json",
    "content": "{\n    \"callcodecallcallcode_101\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n        \t\t\"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x014a\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n                            \"0x014c\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n                            \"0x0150\" : \"0x40\",\n                            \"0x0152\" : \"0x27\",\n                            \"0x0154\" : \"0x0a\",\n                            \"0x02\" : \"0x01\",\n                            \"0x03\" : \"0x01\",\n                            \"0x04\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n                            \"0x05\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n                            \"0x06\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n                            \"0x07\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\",\n                            \"0x04\" : \"0x00\",\n                            \"0x06\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 350000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 300000 <contract:0x1000000000000000000000000000000000000002> 1 0 64 0 64 ) (SSTORE 5 (CALLER)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 2 ]] (DELEGATECALL 250000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) (SSTORE 6 (CALLER)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcodecallcallcode_101_OOGEFiller.json",
    "content": "{\n    \"callcodecallcallcode_101_OOGE\" : {\n        \"_info\" : {\n            \"comment\" : \"DELEGATE -> CALLCODE -> CALLCODE -> CODE OOG\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 600000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 2 ]] (DELEGATECALL 400000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 )  [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcodecallcallcode_101_OOGMAfterFiller.json",
    "content": "{\n    \"callcodecallcallcode_101_OOGMAfter\" : {\n        \"_info\" : {\n            \"comment\" : \"DELEGATE -> (CALLCODE -> DELEGATE -> CODE) OOG\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[11]] 1}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 600000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 2 ]] (DELEGATECALL 400000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcodecallcallcode_101_OOGMBeforeFiller.json",
    "content": "{\n    \"callcodecallcallcode_101_OOGMBefore\" : {\n        \"_info\" : {\n            \"comment\" : \"DELEGATE -> CALLCODE -> OOG DELEGATE -> CODE\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 600000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (KECCAK256 0x00 0x2fffff) [[ 2 ]] (DELEGATECALL 400000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcodecallcallcode_101_SuicideEndFiller.json",
    "content": "{\n    \"callcodecallcallcode_101_SuicideEnd\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\",\n                            \"0x03\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 100000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 2 ]] (DELEGATECALL 50000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) (SELFDESTRUCT <contract:0x1000000000000000000000000000000000000001>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcodecallcallcode_101_SuicideMiddleFiller.json",
    "content": "{\n    \"callcodecallcallcode_101_SuicideMiddle\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"1000000000000000000000000000000000000000\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"1000000000000000000000000000000000000001\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\"\n                        }\n                    },\n                    \"1000000000000000000000000000000000000002\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"1000000000000000000000000000000000000003\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"1000000000000000000000000000000000000000\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"1000000000000000000000000000000000000001\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"1000000000000000000000000000000000000002\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (DELEGATECALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"1000000000000000000000000000000000000003\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"1000000000000000000000000000000000000000\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcodecallcallcode_ABCB_RECURSIVEFiller.json",
    "content": "{\n    \"callcodecallcallcode_ABCB_RECURSIVE\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"DELEGATECALL -> CALLCODE -> DELEGATECALL2 -> CALLCODE -> DELEGATECALL2 -> ...\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"3000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 25000000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALLCODE 1000000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 2 ]] (DELEGATECALL 500000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcodecallcode_11Filler.json",
    "content": "{\n    \"callcodecallcode_11\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\",\n                            \"0x04\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n                            \"0xe6\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n                            \"0xe8\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n                            \"0xec\" : \"0x40\",\n                            \"0xee\" : \"0x22\",\n                            \"0xf0\" : \"0x0a\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\",\n                            \"0x04\" : \"0x00\",\n                            \"0x05\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\",\n                            \"0x04\" : \"0x00\",\n                            \"0x05\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 350000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 250000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 2 1) (SSTORE 4 (CALLER)) (SSTORE 5 (CALLVALUE)) (SSTORE 230 (ADDRESS)) (SSTORE 232 (ORIGIN)) (SSTORE 236 (CALLDATASIZE)) (SSTORE 238 (CODESIZE)) (SSTORE 240 (GASPRICE)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcodecallcode_11_OOGEFiller.json",
    "content": "{\n    \"callcodecallcode_11_OOGE\" : {\n        \"_info\" : {\n            \"comment\" : \"DELEGATE -> DELEGATE -> CODE OOG\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) [[11]] 1}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 2 1) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcodecallcode_11_SuicideEndFiller.json",
    "content": "{\n    \"callcodecallcode_11_SuicideEnd\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 50000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (SELFDESTRUCT <contract:target:0x1000000000000000000000000000000000000000>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 2 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecall_110Filler.json",
    "content": "{\n    \"callcodecallcodecall_110\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x014a\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n                            \"0x014c\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n                            \"0x0150\" : \"0x40\",\n                            \"0x0152\" : \"0x27\",\n                            \"0x0154\" : \"0x0a\",\n                            \"0x02\" : \"0x01\",\n                            \"0x03\" : \"0x01\",\n                            \"0x04\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n                            \"0x05\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n                            \"0x06\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n                            \"0x07\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                            \"0x03\" : \"0x00\",\n                            \"0x04\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 350000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 300000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (SSTORE 5 (CALLER))}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 2 ]] (CALLCODE 250000 <contract:0x1000000000000000000000000000000000000003> 1 0 64 0 64 ) (SSTORE 6 (CALLER))}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecall_110_OOGEFiller.json",
    "content": "{\n    \"callcodecallcodecall_110_OOGE\" : {\n        \"_info\" : {\n            \"comment\" : \"DELEGATE -> DELEGATE -> CALLCODE -> CODE OOG\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 2 ]] (CALLCODE 400000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) [[11]] 1}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecall_110_OOGMAfterFiller.json",
    "content": "{\n    \"callcodecallcodecall_110_OOGMAfter\" : {\n        \"_info\" : {\n            \"comment\" : \"DELEGATE -> (DELEGATE -> CALLCODE -> CODE) OOG\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ [[ 2 ]] (CALLCODE 400000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecall_110_OOGMBeforeFiller.json",
    "content": "{\n    \"callcodecallcodecall_110_OOGMBefore\" : {\n        \"_info\" : {\n            \"comment\" : \"DELEGATE -> DELEGATE -> OOG CALLCODE -> CODE\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (KECCAK256 0x00 0x2fffff) [[ 2 ]] (CALLCODE 400000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecall_110_SuicideEndFiller.json",
    "content": "{\n    \"callcodecallcodecall_110_SuicideEnd\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\",\n                            \"0x03\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                            \"0x03\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 2 ]] (CALLCODE 50000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) (SELFDESTRUCT <contract:0x1000000000000000000000000000000000000001>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecall_110_SuicideMiddleFiller.json",
    "content": "{\n    \"callcodecallcodecall_110_SuicideMiddle\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x03\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SELFDESTRUCT <contract:target:0x1000000000000000000000000000000000000000>) [[ 2 ]] (CALLCODE 50000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecall_ABCB_RECURSIVEFiller.json",
    "content": "{\n    \"callcodecallcodecall_ABCB_RECURSIVE\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"DELEGATECALL -> DELEGATECALL2 -> CALLCODE -> DELEGATECALL2 -> ..\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"3000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 25000000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 1000000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 2 ]] (CALLCODE 500000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecallcode_111Filler.json",
    "content": "{\n    \"callcodecallcodecallcode_111\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x014a\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n                            \"0x014c\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n                            \"0x0150\" : \"0x40\",\n                            \"0x0152\" : \"0x27\",\n                            \"0x0154\" : \"0x0a\",\n                            \"0x02\" : \"0x01\",\n                            \"0x03\" : \"0x01\",\n                            \"0x04\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\",\n                            \"0x04\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 350000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 300000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 2 ]] (DELEGATECALL 250000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecallcode_111_OOGEFiller.json",
    "content": "{\n    \"callcodecallcodecallcode_111_OOGE\" : {\n        \"_info\" : {\n            \"comment\" : \"DELEGATE -> DELEGATE -> OOG DELEGATE -> CODE OOG\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 2 ]] (DELEGATECALL 400000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecallcode_111_OOGMAfterFiller.json",
    "content": "{\n    \"callcodecallcodecallcode_111_OOGMAfter\" : {\n        \"_info\" : {\n            \"comment\" : \"DELEGATE -> (DELEGATE -> OOG DELEGATE -> CODE) OOG\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 2 ]] (DELEGATECALL 400000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecallcode_111_OOGMBeforeFiller.json",
    "content": "{\n    \"callcodecallcodecallcode_111_OOGMBefore\" : {\n        \"_info\" : {\n            \"comment\" : \"DELEGATE -> DELEGATE -> OOG DELEGATE -> CODE\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (KECCAK256 0x00 0x2fffff) [[ 2 ]] (DELEGATECALL 400000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecallcode_111_SuicideEndFiller.json",
    "content": "{\n    \"callcodecallcodecallcode_111_SuicideEnd\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x01\",\n                            \"0x03\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALL 100000 <contract:0x1000000000000000000000000000000000000002> 1 0 64 0 64) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 2 ]] (CALLCODE 50000 <contract:0x1000000000000000000000000000000000000003> 2 0 64 0 64 ) (SELFDESTRUCT <contract:0x1000000000000000000000000000000000000001>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecallcode_111_SuicideMiddleFiller.json",
    "content": "{\n    \"callcodecallcodecallcode_111_SuicideMiddle\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"1000000000000000000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x03\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SELFDESTRUCT <contract:target:0x1000000000000000000000000000000000000000>) [[ 2 ]] (DELEGATECALL 50000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecallcode_ABCB_RECURSIVEFiller.json",
    "content": "{\n    \"callcodecallcodecallcode_ABCB_RECURSIVE\" : {\n\t    \"_info\" : {\n\t        \"comment\" : \"DELEGATECALL -> DELEGATECALL1 -> DELEGATECALL2 -> DELEGATECAL1 -> ...\"\n\t    },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"3000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 25000000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 1000000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 2 ]] (DELEGATECALL 500000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcallcallcode_001Filler.json",
    "content": "{\n    \"callcallcallcode_001\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x00\",\n                            \"0x03\" : \"0x00\",\n                            \"0x04\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x01\",\n                            \"0x03\" : \"0x00\",\n                            \"0x04\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x014a\" : \"<contract:0x1000000000000000000000000000000000000002>\",\n                            \"0x014c\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n                            \"0x0150\" : \"0x40\",\n                            \"0x0152\" : \"0x27\",\n                            \"0x0154\" : \"0x0a\",\n                            \"0x02\" : \"0x01\",\n                            \"0x03\" : \"0x01\",\n                            \"0x04\" : \"<contract:0x1000000000000000000000000000000000000001>\",\n                            \"0x07\" : \"0x02\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\",\n                            \"0x04\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 350000 <contract:0x1000000000000000000000000000000000000001> 1 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALL 300000 <contract:0x1000000000000000000000000000000000000002> 2 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 2 ]] (DELEGATECALL 250000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcallcallcode_001_OOGEFiller.json",
    "content": "{\n    \"callcallcallcode_001_OOGE\" : {\n        \"_info\" : {\n            \"comment\" : \"CALL -> CALL -> DELEGATE -> CODE OOG\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (CALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 2 ]] (DELEGATECALL 400000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcallcallcode_001_OOGMAfterFiller.json",
    "content": "{\n    \"callcallcallcode_001_OOGMAfter\" : {\n        \"_info\" : {\n            \"comment\" : \"CALL -> (CALL -> DELEGATE -> CODE) OOG\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) [[11]] 1  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (CALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ [[ 2 ]] (DELEGATECALL 400000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcallcallcode_001_OOGMBeforeFiller.json",
    "content": "{\n    \"callcallcallcode_001_OOGMBefore\" : {\n        \"_info\" : {\n            \"comment\" : \"CALL -> CALL -> OOG DELEGATE -> CODE \"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (CALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (KECCAK256 0x00 0x2fffff) [[ 2 ]] (DELEGATECALL 400000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcallcallcode_001_SuicideEndFiller.json",
    "content": "{\n    \"callcallcallcode_001_SuicideEnd\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x01\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"balance\" : \"0\",\n                        \"storage\" : {\n                            \"0x02\" : \"0x01\",\n                            \"0x03\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 2 ]] (DELEGATECALL 50000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) (SELFDESTRUCT <contract:0x1000000000000000000000000000000000000001>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcallcallcode_001_SuicideMiddleFiller.json",
    "content": "{\n    \"callcallcallcode_001_SuicideMiddle\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"code\" : \"0x73<contract:target:0x1000000000000000000000000000000000000000>ff604060006040600073<contract:0x1000000000000000000000000000000000000003>61c350f460025500\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"1000000010000000000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SELFDESTRUCT <contract:target:0x1000000000000000000000000000000000000000>) [[ 2 ]] (DELEGATECALL 50000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcallcallcode_ABCB_RECURSIVEFiller.json",
    "content": "{\n    \"callcallcallcode_ABCB_RECURSIVE\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"CALL -> CALL2 -> DELEGATECALL -> CALL2 -> ...\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"3000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 25000000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALL 1000000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 2 ]] (DELEGATECALL 500000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcallcode_01Filler.json",
    "content": "{\n    \"callcallcode_01\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\",\n                            \"0x04\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n                            \"0x07\" : \"0x01\",\n                            \"0xe6\" : \"<contract:0x1000000000000000000000000000000000000001>\",\n                            \"0xe8\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n                            \"0xec\" : \"0x40\",\n                            \"0xee\" : \"0x22\",\n                            \"0xf0\" : \"0x0a\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x04\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 350000 <contract:0x1000000000000000000000000000000000000001> 1 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 250000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 2 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 230 (ADDRESS)) (SSTORE 232 (ORIGIN)) (SSTORE 236 (CALLDATASIZE)) (SSTORE 238 (CODESIZE)) (SSTORE 240 (GASPRICE)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcallcode_01_OOGEFiller.json",
    "content": "{\n    \"callcallcode_01_OOGE\" : {\n        \"_info\" : {\n            \"comment\" : \"CALL -> DELEGATE -> CODE OOG\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) [[11]] 1  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 2 1) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcallcode_01_SuicideEndFiller.json",
    "content": "{\n    \"callcallcode_01_SuicideEnd\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 50000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (SELFDESTRUCT <contract:target:0x1000000000000000000000000000000000000000>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 2 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcallcodecall_010Filler.json",
    "content": "{\n    \"callcallcodecall_010\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\",\n                            \"0x05\" : \"<contract:target:0x1000000000000000000000000000000000000000>\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                            \"0x014a\" : \"<contract:0x1000000000000000000000000000000000000003>\",\n                            \"0x014c\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n                            \"0x0150\" : \"0x40\",\n                            \"0x0152\" : \"0x27\",\n                            \"0x0154\" : \"0x0a\",\n                            \"0x03\" : \"0x01\",\n                            \"0x04\" : \"<contract:0x1000000000000000000000000000000000000001>\",\n                            \"0x07\" : \"0x02\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 350000 <contract:0x1000000000000000000000000000000000000001> 1 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 300000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 2 ]] (CALL 250000 <contract:0x1000000000000000000000000000000000000003> 2 0 64 0 64 ) (SSTORE 5 (CALLER))}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcallcodecall_010_OOGEFiller.json",
    "content": "{\n    \"callcallcodecall_010_OOGE\" : {\n        \"_info\" : {\n            \"comment\" : \"CALL -> DELEGATE -> CALL -> CODE OOG\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x01\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 2 ]] (CALL 400000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcallcodecall_010_OOGMAfterFiller.json",
    "content": "{\n    \"callcallcodecall_010_OOGMAfter\" : {\n        \"_info\" : {\n            \"comment\" : \"CALL -> (DELEGATE -> CALL -> CODE) OOG\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 2 ]] (CALL 400000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcallcodecall_010_OOGMBeforeFiller.json",
    "content": "{\n    \"callcallcodecall_010_OOGMBefore\" : {\n        \"_info\" : {\n            \"comment\" : \"CALL -> DELEGATE -> OOG CALL -> CODE \"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 )  [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (KECCAK256 0x00 0x2fffff) [[ 2 ]] (CALL 400000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcallcodecall_010_SuicideEndFiller.json",
    "content": "{\n    \"callcallcodecall_010_SuicideEnd\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                            \"0x03\" : \"0x01\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 2 ]] (CALL 50000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) (SELFDESTRUCT <contract:0x1000000000000000000000000000000000000001>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcallcodecall_010_SuicideMiddleFiller.json",
    "content": "{\n    \"callcallcodecall_010_SuicideMiddle\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"1000000010000000000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"balance\" : \"0\",\n                        \"storage\" : {\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SELFDESTRUCT <contract:target:0x1000000000000000000000000000000000000000>) [[ 2 ]] (CALL 50000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcallcodecall_ABCB_RECURSIVEFiller.json",
    "content": "{\n    \"callcallcodecall_ABCB_RECURSIVE\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"CALL -> DELEGATECALL -> CALL2 -> DELEGATECALL -> ...\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"3000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 25000000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 1000000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 2 ]] (CALL 500000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcallcodecallcode_011Filler.json",
    "content": "{\n    \"callcallcodecallcode_011\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\",\n                            \"0x04\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x01\",\n                            \"0x014a\" : \"<contract:0x1000000000000000000000000000000000000001>\",\n                            \"0x014c\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n                            \"0x0150\" : \"0x40\",\n                            \"0x0152\" : \"0x27\",\n                            \"0x0154\" : \"0x0a\",\n                            \"0x02\" : \"0x01\",\n                            \"0x03\" : \"0x01\",\n                            \"0x04\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n                            \"0x07\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 350000 <contract:0x1000000000000000000000000000000000000001> 1 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 300000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 2 ]] (DELEGATECALL 250000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcallcodecallcode_011_OOGEFiller.json",
    "content": "{\n    \"callcallcodecallcode_011_OOGE\" : {\n        \"_info\" : {\n            \"comment\" : \"CALL -> DELEGATE -> DELEGATE -> CODE OOG\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x01\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 2 ]] (DELEGATECALL 400000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcallcodecallcode_011_OOGMAfterFiller.json",
    "content": "{\n    \"callcallcodecallcode_011_OOGMAfter\" : {\n        \"_info\" : {\n            \"comment\" : \"CALL -> (DELEGATE -> DELEGATE -> CODE) OOG\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 2 ]] (DELEGATECALL 400000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcallcodecallcode_011_OOGMBeforeFiller.json",
    "content": "{\n    \"callcallcodecallcode_011_OOGMBefore\" : {\n        \"_info\" : {\n            \"comment\" : \"CALL -> DELEGATE -> OOG DELEGATE -> CODE\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (KECCAK256 0x00 0x2fffff) [[ 2 ]] (DELEGATECALL 400000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcallcodecallcode_011_SuicideEndFiller.json",
    "content": "{\n    \"callcallcodecallcode_011_SuicideEnd\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\",\n                            \"0x03\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 2 ]] (DELEGATECALL 50000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) (SELFDESTRUCT <contract:0x1000000000000000000000000000000000000001>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcallcodecallcode_011_SuicideMiddleFiller.json",
    "content": "{\n    \"callcallcodecallcode_011_SuicideMiddle\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"balance\" : \"0\",\n                        \"storage\" : {\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x03\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{ (SELFDESTRUCT <contract:target:0x1000000000000000000000000000000000000000>) [[ 2 ]] (DELEGATECALL 50000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcallcodecallcode_ABCB_RECURSIVEFiller.json",
    "content": "{\n    \"callcallcodecallcode_ABCB_RECURSIVE\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"3000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 25000000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 1000000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 2 ]] (DELEGATECALL 500000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcodecall_10Filler.json",
    "content": "{\n    \"callcodecall_10\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x01\",\n                            \"0x04\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n                            \"0x07\" : \"0x01\",\n                            \"0xe6\" : \"<contract:0x1000000000000000000000000000000000000002>\",\n                            \"0xe8\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n                            \"0xec\" : \"0x40\",\n                            \"0xee\" : \"0x22\",\n                            \"0xf0\" : \"0x0a\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 350000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALL 250000 <contract:0x1000000000000000000000000000000000000002> 1 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 2 1) (SSTORE 4 (CALLER))  (SSTORE 7 (CALLVALUE)) (SSTORE 230 (ADDRESS)) (SSTORE 232 (ORIGIN)) (SSTORE 236 (CALLDATASIZE)) (SSTORE 238 (CODESIZE)) (SSTORE 240 (GASPRICE)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcodecall_10_OOGEFiller.json",
    "content": "{\n    \"callcodecall_10_OOGE\" : {\n        \"_info\" : {\n            \"comment\" : \"DELEGATE -> CALL -> CODE OOG\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (CALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 2 1) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcodecall_10_SuicideEndFiller.json",
    "content": "{\n    \"callcodecall_10_SuicideEnd\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"1000000000000000000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x01\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALL 50000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) (SELFDESTRUCT <contract:target:0x1000000000000000000000000000000000000000>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 2 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcodecallcall_100Filler.json",
    "content": "{\n    \"callcodecallcall_100\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x05\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                            \"0x014a\" : \"<contract:0x1000000000000000000000000000000000000003>\",\n                            \"0x014c\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n                            \"0x0150\" : \"0x40\",\n                            \"0x0152\" : \"0x27\",\n                            \"0x0154\" : \"0x0a\",\n                            \"0x03\" : \"0x01\",\n                            \"0x04\" : \"<contract:0x1000000000000000000000000000000000000002>\",\n                            \"0x07\" : \"0x02\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 350000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALL 300000 <contract:0x1000000000000000000000000000000000000002> 1 0 64 0 64 ) (SSTORE 5 (CALLER))}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 2 ]] (CALL 250000 <contract:0x1000000000000000000000000000000000000003> 2 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE))}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcodecallcall_100_OOGEFiller.json",
    "content": "{\n    \"callcodecallcall_100_OOGE\" : {\n        \"_info\" : {\n            \"comment\" : \"DELEGATE -> CALL -> CALL -> CODE OOG\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (CALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 2 ]] (CALL 400000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcodecallcall_100_OOGMAfterFiller.json",
    "content": "{\n    \"callcodecallcall_100_OOGMAfter\" : {\n        \"_info\" : {\n            \"comment\" : \"DELEGATE -> (CALL -> CALL -> CODE) OOG\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (CALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 2 ]] (CALL 400000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcodecallcall_100_OOGMBeforeFiller.json",
    "content": "{\n    \"callcodecallcall_100_OOGMBefore\" : {\n        \"_info\" : {\n            \"comment\" : \"DELEGATE -> CALL -> OOG CALL -> CODE \"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (CALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (KECCAK256 0x00 0x2fffff) [[ 2 ]] (CALL 400000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcodecallcall_100_SuicideEndFiller.json",
    "content": "{\n    \"callcodecallcall_100_SuicideEnd\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"balance\" : \"0\",\n                        \"storage\" : {\n                            \"0x02\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                            \"0x03\" : \"0x01\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 2 ]] (CALL 50000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) (SELFDESTRUCT <contract:0x1000000000000000000000000000000000000001>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcodecallcall_100_SuicideMiddleFiller.json",
    "content": "{\n    \"callcodecallcall_100_SuicideMiddle\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"1000000010000000000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"code\" : \"0x73<contract:target:0x1000000000000000000000000000000000000000>ff6040600060406000600073<contract:0x1000000000000000000000000000000000000003>61c350f160025500\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SELFDESTRUCT <contract:target:0x1000000000000000000000000000000000000000>) [[ 2 ]] (CALL 50000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcodecallcall_ABCB_RECURSIVEFiller.json",
    "content": "{\n    \"callcodecallcall_ABCB_RECURSIVE\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"DELEGATECALL -> CALL1 -> CALL2 -> CALL1 -> ...\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"3000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 25000000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALL 1000000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 2 ]] (CALL 500000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcodecallcallcode_101Filler.json",
    "content": "{\n    \"callcodecallcallcode_101\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x05\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x014a\" : \"<contract:0x1000000000000000000000000000000000000002>\",\n                            \"0x014c\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n                            \"0x0150\" : \"0x40\",\n                            \"0x0152\" : \"0x27\",\n                            \"0x0154\" : \"0x0a\",\n                            \"0x02\" : \"0x01\",\n                            \"0x03\" : \"0x01\",\n                            \"0x04\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n                            \"0x06\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n                            \"0x07\" : \"0x01\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 350000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALL 300000 <contract:0x1000000000000000000000000000000000000002> 1 0 64 0 64 ) (SSTORE 5 (CALLER)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 2 ]] (DELEGATECALL 250000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) (SSTORE 6 (CALLER)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE))}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcodecallcallcode_101_OOGEFiller.json",
    "content": "{\n    \"callcodecallcallcode_101_OOGE\" : {\n        \"_info\" : {\n            \"comment\" : \"DELEGATE -> CALL -> DELEGATE -> CODE OOG\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (CALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 2 ]] (DELEGATECALL 400000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcodecallcallcode_101_OOGMAfterFiller.json",
    "content": "{\n    \"callcodecallcallcode_101_OOGMAfter\" : {\n        \"_info\" : {\n            \"comment\" : \"DELEGATE -> (CALL -> DELEGATE -> CODE) OOG\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (CALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 2 ]] (DELEGATECALL 400000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcodecallcallcode_101_OOGMBeforeFiller.json",
    "content": "{\n    \"callcodecallcallcode_101_OOGMBefore\" : {\n        \"_info\" : {\n            \"comment\" : \"DELEGATE -> CALL -> OOG DELEGATE -> CODE\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (CALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (KECCAK256 0x00 0x2fffff)  [[ 2 ]] (DELEGATECALL 400000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcodecallcallcode_101_SuicideEndFiller.json",
    "content": "{\n    \"callcodecallcallcode_101_SuicideEnd\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"balance\" : \"0\",\n                        \"storage\" : {\n                            \"0x02\" : \"0x01\",\n                            \"0x03\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    }\n                }\n            }            \n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 2 ]] (DELEGATECALL 50000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) (SELFDESTRUCT <contract:0x1000000000000000000000000000000000000001>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcodecallcallcode_101_SuicideMiddleFiller.json",
    "content": "{\n    \"callcodecallcallcode_101_SuicideMiddle\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"1000000000000000000000000000000000000000\" : {\n                        \"balance\" : \"1000000010000000000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"1000000000000000000000000000000000000002\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"code\" : \"0x731000000000000000000000000000000000000000ff604060006040600073100000000000000000000000000000000000000361c350f460025500\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"1000000000000000000000000000000000000003\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"1000000000000000000000000000000000000000\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"1000000000000000000000000000000000000001\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"1000000000000000000000000000000000000002\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (DELEGATECALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"1000000000000000000000000000000000000003\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"1000000000000000000000000000000000000000\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcodecallcallcode_ABCB_RECURSIVEFiller.json",
    "content": "{\n    \"callcodecallcallcode_ABCB_RECURSIVE\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"DELEGATECALL -> CALL -> DELEGATECALL2 -> CALL -> ...\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"3000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 25000000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (CALL 1000000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 2 ]] (DELEGATECALL 500000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcodecallcode_11Filler.json",
    "content": "{\n    \"callcodecallcode_11\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\",\n                            \"0x04\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n                            \"0xe6\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n                            \"0xe8\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n                            \"0xec\" : \"0x40\",\n                            \"0xee\" : \"0x22\",\n                            \"0xf0\" : \"0x0a\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\",\n                            \"0x04\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\",\n                            \"0x04\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 350000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 250000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 2 1) (SSTORE 4 (CALLER))  (SSTORE 7 (CALLVALUE)) (SSTORE 230 (ADDRESS)) (SSTORE 232 (ORIGIN)) (SSTORE 236 (CALLDATASIZE)) (SSTORE 238 (CODESIZE)) (SSTORE 240 (GASPRICE)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcodecallcode_11_OOGEFiller.json",
    "content": "{\n    \"callcodecallcode_11_OOGE\" : {\n        \"_info\" : {\n            \"comment\" : \"DELEGATE -> DELEGATE -> CODE OOG\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) [[11]] 1}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 2 1) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcodecallcode_11_SuicideEndFiller.json",
    "content": "{\n    \"callcodecallcode_11_SuicideEnd\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"1000000000000000000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 50000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (SELFDESTRUCT <contract:target:0x1000000000000000000000000000000000000000>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 2 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcodecallcodecall_110Filler.json",
    "content": "{\n    \"callcodecallcodecall_110\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\",\n                            \"0x05\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n                            \"0x06\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                            \"0x014a\" : \"<contract:0x1000000000000000000000000000000000000003>\",\n                            \"0x014c\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n                            \"0x0150\" : \"0x40\",\n                            \"0x0152\" : \"0x27\",\n                            \"0x0154\" : \"0x0a\",\n                            \"0x03\" : \"0x01\",\n                            \"0x04\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n                            \"0x07\" : \"0x01\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 350000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 300000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (SSTORE 5 (CALLER))}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 2 ]] (CALL 250000 <contract:0x1000000000000000000000000000000000000003> 1 0 64 0 64 ) (SSTORE 6 (CALLER))}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcodecallcodecall_110_OOGEFiller.json",
    "content": "{\n    \"callcodecallcodecall_110_OOGE\" : {\n        \"_info\" : {\n            \"comment\" : \"DELEGATE -> DELEGATE -> CALL -> CODE OOG\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 2 ]] (CALL 400000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcodecallcodecall_110_OOGMAfterFiller.json",
    "content": "{\n    \"callcodecallcodecall_110_OOGMAfter\" : {\n        \"_info\" : {\n            \"comment\" : \"DELEGATE -> (DELEGATE -> CALL -> CODE) OOG\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ [[ 2 ]] (CALL 400000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcodecallcodecall_110_OOGMBeforeFiller.json",
    "content": "{\n    \"callcodecallcodecall_110_OOGMBefore\" : {\n        \"_info\" : {\n            \"comment\" : \"DELEGATE -> DELEGATE -> OOG CALL -> CODE\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (KECCAK256 0x00 0x2fffff) [[ 2 ]] (CALL 400000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcodecallcodecall_110_SuicideEndFiller.json",
    "content": "{\n    \"callcodecallcodecall_110_SuicideEnd\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                            \"0x03\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 2 ]] (CALL 50000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) (SELFDESTRUCT <contract:0x1000000000000000000000000000000000000001>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcodecallcodecall_110_SuicideMiddleFiller.json",
    "content": "{\n    \"callcodecallcodecall_110_SuicideMiddle\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"1000000000000000000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x03\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SELFDESTRUCT <contract:target:0x1000000000000000000000000000000000000000>) [[ 2 ]] (CALL 50000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcodecallcodecall_ABCB_RECURSIVEFiller.json",
    "content": "{\n    \"callcodecallcodecall_ABCB_RECURSIVE\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"DELEGATECALL -> DELEGATECALL2 -> CALL -> DELEGATECALL2 -> ...\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"3000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 25000000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 1000000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 2 ]] (CALL 500000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcodecallcodecallcode_111Filler.json",
    "content": "{\n    \"callcodecallcodecallcode_111\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x014a\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n                            \"0x014c\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n                            \"0x0150\" : \"0x40\",\n                            \"0x0152\" : \"0x27\",\n                            \"0x0154\" : \"0x0a\",\n                            \"0x02\" : \"0x01\",\n                            \"0x03\" : \"0x01\",\n                            \"0x04\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\",\n                            \"0x04\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 350000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 300000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 2 ]] (DELEGATECALL 250000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcodecallcodecallcode_111_OOGEFiller.json",
    "content": "{\n    \"callcodecallcodecallcode_111_OOGE\" : {\n        \"_info\" : {\n            \"comment\" : \"DELEGATE -> DELEGATE -> DELEGATE -> CODE OOG\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 2 ]] (DELEGATECALL 400000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcodecallcodecallcode_111_OOGMAfterFiller.json",
    "content": "{\n    \"callcodecallcodecallcode_111_OOGMAfter\" : {\n        \"_info\" : {\n            \"comment\" : \"DELEGATE -> (DELEGATE -> DELEGATE -> CODE) OOG\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 2 ]] (DELEGATECALL 400000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcodecallcodecallcode_111_OOGMBeforeFiller.json",
    "content": "{\n    \"callcodecallcodecallcode_111_OOGMBefore\" : {\n        \"_info\" : {\n            \"comment\" : \"DELEGATE -> DELEGATE -> OOG DELEGATE -> CODE\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n           \n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 600000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) [[11]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (KECCAK256 0x00 0x2fffff) [[ 2 ]] (DELEGATECALL 400000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcodecallcodecallcode_111_SuicideEndFiller.json",
    "content": "{\n    \"callcodecallcodecallcode_111_SuicideEnd\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\",\n                            \"0x03\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                            \"0x03\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 2 ]] (DELEGATECALL 50000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) (SELFDESTRUCT <contract:0x1000000000000000000000000000000000000001>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcodecallcodecallcode_111_SuicideMiddleFiller.json",
    "content": "{\n    \"callcodecallcodecallcode_111_SuicideMiddle\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"1000000000000000000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x03\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SELFDESTRUCT <contract:target:0x1000000000000000000000000000000000000000>) [[ 2 ]] (DELEGATECALL 50000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCallDelegateCodesHomestead/callcodecallcodecallcode_ABCB_RECURSIVEFiller.json",
    "content": "{\n    \"callcodecallcodecallcode_ABCB_RECURSIVE\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"DELEGATECALL -> DELEGATECALL2 -> DELEGATECALl3 -> DELEGATECALL2 -> ...\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"3000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 25000000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 1 ]] (DELEGATECALL 1000000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  [[ 2 ]] (DELEGATECALL 500000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stChainId/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stChainId/chainIdFiller.json",
    "content": "{\n  \"chainId\": {\n    \"env\": {\n      \"currentCoinbase\": \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n      \"currentDifficulty\": \"0x20000\",\n      \"currentGasLimit\": \"10000000000\",\n      \"currentNumber\": \"1\",\n      \"currentTimestamp\": \"1000\"\n    },\n    \"expect\": [\n      {\n        \"indexes\": {\n          \"data\": -1,\n          \"gas\": -1,\n          \"value\": -1\n        },\n        \"network\": [\">=Cancun\"],\n        \"result\": {\n          \"<contract:target:0x1000000000000000000000000000000000000000>\": {\n            \"storage\": {\n              \"0x01\": \"0x01\"\n            }\n          }\n        }\n      }\n    ],\n    \"pre\": {\n      \"<contract:target:0x1000000000000000000000000000000000000000>\": {\n        \"balance\": \"\",\n        \"code\": \"{ [[ 1 ]] (CHAINID) }\",\n        \"nonce\": \"0\",\n        \"storage\": {}\n      },\n      \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n        \"balance\": \"1000000000000000000000\",\n        \"code\": \"\",\n        \"nonce\": \"0\",\n        \"storage\": {}\n      }\n    },\n    \"transaction\": {\n      \"data\": [\"0x\"],\n      \"gasLimit\": [\"100000\"],\n      \"gasPrice\": \"10\",\n      \"nonce\": \"0\",\n      \"secretKey\": \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n      \"to\": \"<contract:target:0x1000000000000000000000000000000000000000>\",\n      \"value\": [\"0\"]\n    }\n  }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stChainId/chainIdGasCostFiller.json",
    "content": "{\n    \"chainIdGasCost\": {\n      \"env\": {\n        \"currentCoinbase\": \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n        \"currentDifficulty\": \"0x20000\",\n        \"currentGasLimit\": \"10000000000\",\n        \"currentNumber\": \"1\",\n        \"currentTimestamp\": \"1000\"\n      },\n      \"expect\": [\n        {\n          \"indexes\": {\n            \"data\": -1,\n            \"gas\": -1,\n            \"value\": -1\n          },\n          \"network\": [\">=Cancun\"],\n          \"result\": {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\": {\n              \"storage\": {\n                \"0x01\": \"2\"\n              }\n            }\n          }\n        }\n      ],\n      \"pre\": {\n        \"<contract:target:0x1000000000000000000000000000000000000000>\": {\n          \"balance\": \"\",\n          \"//code\": \"record the gas, run the operation, then record the gas again.  Drop output, subtract 2 for GAS, what is left is the cost of the operation, store in storage 0x01.\",\n          \"code\": \"(asm GAS CHAINID GAS SWAP1 POP SWAP1 SUB 2 SWAP1 SUB 0x01 SSTORE)\",\n          \"nonce\": \"0\",\n          \"storage\": {}\n        },\n        \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n          \"balance\": \"1000000000000000000000\",\n          \"code\": \"\",\n          \"nonce\": \"0\",\n          \"storage\": {}\n        }\n      },\n      \"transaction\": {\n        \"data\": [\"0x\"],\n        \"gasLimit\": [\"100000\"],\n        \"gasPrice\": \"10\",\n        \"nonce\": \"0\",\n        \"secretKey\": \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n        \"to\": \"<contract:target:0x1000000000000000000000000000000000000000>\",\n        \"value\": [\"0\"]\n      }\n    }\n  }\n  \n"
  },
  {
    "path": "tests/static/state_tests/stCodeCopyTest/ExtCodeCopyTargetRangeLongerThanCodeTestsFiller.json",
    "content": "{\n  \"ExtCodeCopyTargetRangeLongerThanCodeTests\": {\n    \"_info\" : {\n      \"comment\": \"Uses EXTCODECOPY to copy 32 bytes of code into a 64 byte range of memory and ensures that the last 32 bytes of the memory range are zeroed out\"\n    },\n    \"env\": {\n      \"currentCoinbase\": \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n      \"currentDifficulty\": \"0x020000\",\n      \"currentGasLimit\": \"0x7fffffffffffffff\",\n      \"currentNumber\": \"1\",\n      \"currentTimestamp\": \"1000\"\n    },\n    \"expect\": [\n      {\n        \"indexes\": {\n          \"data\": -1,\n          \"gas\": -1,\n          \"value\": -1\n        },\n        \"network\": [\n          \">=Cancun\"\n        ],\n        \"result\": {\n          \"<contract:target:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n            \"storage\": {\n              \"0x00\": \"0x1122334455667788991011121314151617181920212223242526272829303132\",\n              \"0x01\": \"0x00\",\n              \"0x02\": \"0x00\",\n              \"0x03\": \"0x00\"\n            }\n          }\n        }\n      }\n    ],\n    \"pre\": {\n      \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n        \"balance\": \"0xffffffffffffffffffffffffffffffff\",\n        \"code\": \"\",\n        \"nonce\": \"0\",\n        \"storage\": {\n        }\n      },\n      \"<contract:target:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n        \"balance\": \"7000\",\n        \"code\": \"{ (MSTORE 32 0x1234) (EXTCODECOPY <contract:0xeeef5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 64) [[0]] (MLOAD 0) [[1]] (MLOAD 32) (MSTORE 96 0x5678) (EXTCODECOPY <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b> 64 0 64) [[2]] (MLOAD 64) [[3]] (MLOAD 96)}\",\n        \"nonce\": \"0\",\n        \"storage\": {\n        }\n      },\n      \"<contract:0xeeef5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n        \"balance\": \"0\",\n        \"code\": \":raw 0x1122334455667788991011121314151617181920212223242526272829303132\",\n        \"nonce\": \"1\",\n        \"storage\": {\n        }\n      }\n    },\n    \"transaction\": {\n      \"data\": [\n        \"\"\n      ],\n      \"gasLimit\": [\n        \"400000\"\n      ],\n      \"gasPrice\": \"10\",\n      \"nonce\": \"0\",\n      \"secretKey\": \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n      \"to\": \"<contract:target:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n      \"value\": [\n        \"0\"\n      ]\n    }\n  }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCodeCopyTest/ExtCodeCopyTestsParisFiller.json",
    "content": "{\n    \"ExtCodeCopyTestsParis\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t    \"aaaf5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n        \t\t        \"storage\" : {\n        \t\t            \"0x02\" : \"0x00\",\n            \t\t\t    \"0x03\" : \"0x00\",\n            \t\t\t    \"0x04\" : \"0x00\",\n            \t\t\t    \"0x05\" : \"0x11120000000000000000000000000000000000000000000000000000000000\",\n            \t\t\t    \"0x06\" : \"0x11121314151617181920212223242526272829303132000000000000000000\"\n        \t\t        }\n        \t\t    },\n        \t\t    \"bbbf5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n        \t\t        \"shouldnotexist\" : \"1\"\n        \t\t    },\n        \t\t    \"cccf5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n        \t\t        \"balance\" : \"10\"\n        \t\t    },\n        \t\t    \"dddf5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n        \t\t        \"nonce\" : \"1\"\n        \t\t    } \n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"aaaf5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"7000\",\n                \"code\" : \"{ (EXTCODECOPY 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b 1 10 2) [[2]] (MLOAD 0) (EXTCODECOPY 0xcccf5374fce5edbc8e2a8697c15331677e6ebf0b 1 10 2) [[3]] (MLOAD 0) (EXTCODECOPY 0xdddf5374fce5edbc8e2a8697c15331677e6ebf0b 1 10 2) [[4]] (MLOAD 0) (EXTCODECOPY 0xeeef5374fce5edbc8e2a8697c15331677e6ebf0b 1 10 2) [[5]] (MLOAD 0) (EXTCODECOPY 0xeeef5374fce5edbc8e2a8697c15331677e6ebf0b 1 10 200) [[6]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t        \"cccf5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"10\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t        \"dddf5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"\",\n                \"nonce\" : \"1\",\n                \"storage\" : {\n                }\n            },\n\t        \"eeef5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x1122334455667788991011121314151617181920212223242526272829303132\",\n                \"nonce\" : \"1\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"aaaf5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCodeCopyTest/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stCodeSizeLimit/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stCodeSizeLimit/codesizeInitFiller.json",
    "content": "{\n    \"codesizeInit\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"20000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                  \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                    \"balance\" : \"0\",\n                    \"storage\": {\n                      \"0x01\": \"0x0a\",\n                      \"0x02\": \"0x00\"\n                    }\n            \t    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n              \"{(asm CODESIZE 0x01 SSTORE ADDRESS EXTCODESIZE 0x02 SSTORE)}\"\n            ],\n            \"gasLimit\" : [\n                \"15000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCodeSizeLimit/codesizeOOGInvalidSizeFiller.json",
    "content": "{\n    \"codesizeOOGInvalidSize\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"20000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n            \t\t\t\"shouldnotexist\" : \"1\"\n            \t    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":yul berlin {/* code size is 0x600d */ codecopy(0x00, 0x000d, 0x600d) return(0x00, 0x600d) }\",\n                \":yul berlin {/* code size is 0x6001 */ codecopy(0x00, 0x000d, 0x6001) return(0x00, 0x6001) }\"\n            ],\n            \"gasLimit\" : [\n                \"15000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCodeSizeLimit/codesizeValidFiller.json",
    "content": "{\n    \"codesizeValid\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"20000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t            \"balance\" : \"1\"\n            \t    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":yul berlin { /* code size is 0x59d5 */ codecopy(0x00, 0x000d, 0x5ed5) return(0x00, 0x5ed5) }\",\n                \":yul berlin { /* code size is 0x6000 - max allowed */ codecopy(0x00, 0x000d, 0x6000) return(0x00, 0x6000) }\"\n            ],\n            \"gasLimit\" : [\n                \"15000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCodeSizeLimit/create2CodeSizeLimitFiller.yml",
    "content": "# CREATE2 with max allowed deployed code size\ncreate2CodeSizeLimit:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x020000'\n    currentGasLimit: '20000000'\n    currentBaseFee: '10'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n\n  pre:\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: 200000000\n      code: ''\n      nonce: 0\n      storage: {}\n    b94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: 0\n      code: |\n        :yul berlin \n        {\n          mstore(0, calldataload(0)) \n          sstore(0, create2(0, 0, calldatasize(), 0))\n          sstore(1, 1)\n        }\n      nonce: 0\n      storage: {}\n\n  transaction:\n    data: \n      - ':label valid :yul berlin { return(0, 0x6000) }'\n      - ':label invalid :yul berlin { return(0, 0x6001) }'\n    gasLimit:\n      - 15000000\n    gasPrice: 10\n    nonce: 0\n    secretKey: 45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\n    to: 'b94f5374fce5edbc8e2a8697c15331677e6ebf0b'\n    value:\n    - 0\n\n  expect:\n    - indexes:\n       data: ':label valid'\n       gas: !!int -1\n       value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n       a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 1\n       b94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          storage:\n              '0': '81c305016ab9ca56033a07cc37e7a30fc3e079ac'\n              '1': 1\n       81c305016ab9ca56033a07cc37e7a30fc3e079ac:\n          balance: 0\n          nonce: 1\n          storage: {}\n\n    - indexes:\n       data: ':label invalid'\n       gas: !!int -1\n       value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n       a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 1\n       b94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          storage:\n              '0': '0'\n              '1': 1\n       81c305016ab9ca56033a07cc37e7a30fc3e079ac:\n          shouldnotexist: 1\n\n"
  },
  {
    "path": "tests/static/state_tests/stCodeSizeLimit/createCodeSizeLimitFiller.yml",
    "content": "# CREATE with max allowed deployed code size\ncreateCodeSizeLimit:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x020000'\n    currentGasLimit: '20000000'\n    currentBaseFee: '10'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n\n  pre:\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: 200000000\n      code: ''\n      nonce: 0\n      storage: {}\n    b94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: 0\n      code: |\n        :yul berlin \n        {\n          mstore(0, calldataload(0)) \n          sstore(0, create(0, 0, calldatasize()))\n          sstore(1, 1)\n        }\n      nonce: 0\n      storage: {}\n\n  transaction:\n    data: \n      - ':label valid :yul berlin { return(0, 0x6000) }'\n      - ':label invalid :yul berlin { return(0, 0x6001) }'\n    gasLimit:\n      - 15000000\n    gasPrice: 10\n    nonce: 0\n    secretKey: 45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\n    to: 'b94f5374fce5edbc8e2a8697c15331677e6ebf0b'\n    value:\n    - 0\n\n  expect:\n    - indexes:\n       data: ':label valid'\n       gas: !!int -1\n       value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n       a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 1\n       b94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          storage:\n              '0': 'f1ecf98489fa9ed60a664fc4998db699cfa39d40'\n              '1': 1\n       f1ecf98489fa9ed60a664fc4998db699cfa39d40:\n          balance: 0\n          nonce: 1\n          storage: {}\n\n    - indexes:\n       data: ':label invalid'\n       gas: !!int -1\n       value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n       a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 1\n       b94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          storage:\n              '0': '0'\n              '1': 1\n       f1ecf98489fa9ed60a664fc4998db699cfa39d40:\n          shouldnotexist: 1\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/CREATE2_Bounds2Filler.json",
    "content": "{\n    \"CREATE2_Bounds2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n\t        \"//currentGasLimit\" : \"2^63-1\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t    \t    \"1000000000000000000000000000000000000000\" : {\n                \t\"balance\" : \"100\"\n             \t    },\n\t    \t    \"13136008b64ff592819b2fa6d43f2835c452020e\" : {\n\t\t        \"shouldnotexist\" : \"1\"\n\t     \t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n\t    \"1000000000000000000000000000000000000000\" : {\n                \"balance\" : \"100\",\n                \"code\" : \"{  (MSTORE 0 0x6001600155601080600c6000396000f3006000355415600957005b6020356000 )  (MSTORE8 32 0x35) (MSTORE8 33 0x55) (CREATE2 1 0 0xffffffff 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"16777216\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"1000000000000000000000000000000000000000\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/CREATE2_Bounds3Filler.json",
    "content": "{\n    \"CREATE2_Bounds3\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"1000000000000000000000000000000000000000\" : {\n                        \"balance\" : \"100\"\n                    },\n                    \"13136008b64ff592819b2fa6d43f2835c452020e\" : {\n                        \"shouldnotexist\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"1000000000000000000000000000000000000000\" : {\n                \"balance\" : \"100\",\n                \"code\" : \"{  (MSTORE 0 0x6001600155601080600c6000396000f3006000355415600957005b6020356000 )  (MSTORE8 32 0x35) (MSTORE8 33 0x55) (CREATE2 1 0 0xffffffffffffffff 0) (CREATE2 1 0 0xffffffffffffffffffffffffffffffff 0) (CREATE2 1 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0) (CREATE2 1 0xfffffff 0 0) (CREATE2 1 0xffffffff 0 0) (CREATE2 1 0xffffffffffffffff 0 0) (CREATE2 1 0xffffffffffffffffffffffffffffffff 0 0) (CREATE2 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0 0) (CREATE2 1 0xfffffff 0xfffffff 0) (CREATE2 1 0xffffffff 0xffffffff 0) (CREATE2 1 0xffffffffffffffff 0xffffffffffffffff 0) (CREATE2 1 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0) (CREATE2 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"1000000\", \"16777216\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"1000000000000000000000000000000000000000\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/CREATE2_BoundsFiller.json",
    "content": "{\n    \"CREATE2_Bounds\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n    \t    \"//currentGasLimit\" : \"2^63-1\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t    \t    \"1000000000000000000000000000000000000000\" : {\n                \t\"balance\" : \"100\"\n             \t    },\n\t    \t    \"13136008b64ff592819b2fa6d43f2835c452020e\" : {\n\t\t        \"shouldnotexist\" : \"1\"\n\t     \t    },\n\t    \t    \"7c5a2c91b22d7a9226523d4ba717db6afb741ebd\" : {\n\t\t        \"shouldnotexist\" : \"1\"\n\t     \t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n\t    \"1000000000000000000000000000000000000000\" : {\n                \"balance\" : \"100\",\n                \"code\" : \"{  (MSTORE 0 0x6001600155601080600c6000396000f3006000355415600957005b6020356000 )  (MSTORE8 32 0x35) (MSTORE8 33 0x55) (CREATE2 1 0 0 0) (CREATE2 1 0 0xfffffff 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"16777216\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"1000000000000000000000000000000000000000\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/CREATE2_ContractSuicideDuringInit_ThenStoreThenReturnFiller.json",
    "content": "{\n    \"CREATE2_ContractSuicideDuringInit_ThenStoreThenReturn\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"0000000000000000000000000000000000000001\" : {\n\t\t\t\"balance\" : \"1\"\n\t\t    },\n\t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t\"storage\" : {\n\t\t\t    \"0x01\" : \"0x6000526005601bf36000526001ff000000000000000000000000000000000000\"\n\t\t\t}\n\t\t    },\n\t\t    \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t\"storage\" : {\n\t\t\t    \"0x00\" : \"11\"\n\t\t\t}\n\t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"{ (CALL 150000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 0 0 32) (SSTORE 1 (MLOAD 0)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n\t\t\"//code\" : \"(MSTORE 0 0x64600c6000556000526005601bf3) (SELFDESTRUCT 1)\",\n                \"code\" : \"{ (MSTORE 0 0x6d64600c6000556000526005601bf36000526001ff) (CREATE2 1 11 21 0) [[0]] 11 (RETURN 18 14) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n\t    \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/CREATE2_FirstByte_loopFiller.yml",
    "content": "# The test calls CREATE2 in a loop deploying 1-byte contracts with all possible byte values, records in storage the values that failed to deploy.\nCREATE2_FirstByte_loop:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x020000'\n    currentGasLimit: '89128960'\n    currentBaseFee: '10'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n\n  pre:\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: 1000000000\n      code: ''\n      nonce: 0\n      storage: {}\n    <contract:entry:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: 0\n      code: |\n        :yul berlin\n        {\n          let start := calldataload(4)\n          let end := calldataload(36)\n          // initcode: { mstore8(0, 0x00) return(0, 1) }\n          mstore(0, 0x600060005360016000f300000000000000000000000000000000000000000000)\n          for { let code := start } lt(code, end) { code := add(code, 1) } \n          { \n            mstore8(1, code) // change returned byte in initcode\n            if iszero(create2(0, 0, 10, 0)) { sstore(code, 1) }\n          }\n          sstore(256, 1)\n        }\n      nonce: 0\n      storage: {}\n\n  transaction:\n    data: \n      - :label firstHalf :abi f(uint,uint) 0 239\n      - :label invalidByte :abi f(uint,uint) 239 240\n      - :label secondHalf :abi f(uint,uint) 240 256\n    gasLimit:\n      - 16777216\n    gasPrice: 10\n    nonce: 0\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: '<contract:entry:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>'\n    value:\n    - 0\n\n  expect:\n    - indexes:\n        data: :label firstHalf\n      network:\n        - '>=Cancun'\n      result:\n       <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n          nonce: 1\n       <contract:entry:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n          nonce: 239\n          storage:\n            '256': 1\n       <create2:entry:0x00:0x600060005360016000f3>:\n          nonce: 1\n       <create2:entry:0x00:0x60ee60005360016000f3>:\n          nonce: 1\n    - indexes:\n        data: :label secondHalf\n      network:\n        - '>=Cancun'\n      result:\n       <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n          nonce: 1\n       <contract:entry:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n          nonce: 16\n          storage:\n            '256': 1\n       <create2:entry:0x00:0x60f060005360016000f3>:\n          nonce: 1\n       <create2:entry:0x00:0x60ff60005360016000f3>:\n          nonce: 1\n    - indexes:\n        data: :label invalidByte\n      network:\n        - '>=Cancun'\n      result:\n       <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n          nonce: 1\n       <contract:entry:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n          nonce: 1\n          storage:\n            'ef': '1'  # EIP-3541 forbids deploying contracts starting with 0xef\n            '256': 1\n       <create2:entry:0x00:0x60ef60005360016000f3>:\n          'shouldnotexist': '1'"
  },
  {
    "path": "tests/static/state_tests/stCreate2/CREATE2_HighNonceDelegatecallFiller.yml",
    "content": "CREATE2_HighNonceDelegatecall:\n  _info:\n    comment: \"Delegate calls CREATE/CREATE2 from an account with max allowed nonce/max allowed nonce - 1.\"\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x020000'\n    currentGasLimit: '89128960'\n    currentBaseFee: '10'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n\n  pre:\n    <eoa:sender>:\n      balance: 1000000000\n      code: ''\n      nonce: 0\n      storage: {}\n\n    <contract:max_nonce_minus_1>:\n      balance: 0\n      code: |\n        :yul berlin\n        {\n          let createtype    := calldataload(0)\n          let contextnonce  := sload(0xffff)\n\n          // initcode: { codecopy(0, 12, 5); return(0, 5); sstore(1, 1) }\n          mstore(0, 0x6005600c60003960056000f36001600155 )\n          let addr\n          if eq(createtype, 0) {\n            addr := create(0, sub(32, 17), 17)\n          }\n          if eq(createtype, 1) {\n            // We use the context nonce to mimic CREATE's nonce based address calculation and make verification easier\n            addr := create2(0, sub(32, 17), 17, contextnonce)\n          }\n          sstore(2, addr)\n          if gt(addr, 0) { sstore(0xffff, add(contextnonce, 1)) }\n          mstore(0, addr)\n          return(0, 32)\n        }\n      nonce: '0xfffffffffffffffe'\n      storage: {\n        '0xffff': '0xfffffffffffffffe'\n      }\n\n    <contract:max_nonce>:\n      balance: 0\n      code: |\n        :yul berlin\n        {\n          let createtype    := calldataload(0)\n          let contextnonce  := sload(0xffff)\n\n          // initcode: { codecopy(0, 12, 5); return(0, 5); sstore(1, 1) }\n          mstore(0, 0x6005600c60003960056000f36001600155)\n          let addr\n          if eq(createtype, 0) {\n            addr := create(0, sub(32, 17), 17)\n          }\n          if eq(createtype, 1) {\n            // We use the context nonce to mimic CREATE's nonce based address calculation and make verification easier\n            addr := create2(0, sub(32, 17), 17, contextnonce)\n          }\n          sstore(2, addr)\n          if gt(addr, 0) { sstore(0xffff, add(contextnonce, 1)) }\n          mstore(0, addr)\n          return(0, 32)\n        }\n      nonce: '0xffffffffffffffff'\n      storage: {\n        '0xffff': '0xffffffffffffffff'\n      }\n\n    <contract:entry>:\n      balance: 0\n      code: |\n        :yul berlin\n        {\n          let calltype      := calldataload(4)\n          let callernonce   := calldataload(36)\n          let destnonce     := calldataload(68)\n          let createtype    := calldataload(100)\n\n          for { let contextnonce := sload(0xffff) } lt(contextnonce, callernonce) { contextnonce := sload(0xffff) } {\n            // We have a lower nonce than required for the caller, create dummy contract to increase nonce\n            mstore(0, 0x60016000f3)\n            let addr := create(0, sub(32, 5), 5)\n            if gt(addr, 0) { sstore(0xffff, add(contextnonce, 1)) }\n          }\n\n          mstore(0, createtype)\n          if eq(calltype, 0) {\n            pop(delegatecall(sub(gas(), 1000), destnonce, 0, 32, 0, 32))\n          }\n          if eq(calltype, 1) {\n            pop(callcode(sub(gas(), 1000), destnonce, 0, 0, 32, 0, 32))\n          }\n          if eq(calltype, 2) {\n            pop(call(sub(gas(), 1000), destnonce, 0, 0, 32, 0, 32))\n          }\n          let result := mload(0)\n          sstore(1, result)\n          if gt(result, 0) {\n            pop(call(sub(gas(), 1000), result, 0, 0, 0, 0, 0))\n          }\n        }\n      nonce: '0xfffffffffffffffe'\n      storage: {\n        '0xffff': '0xfffffffffffffffe'\n      }\n\n  transaction:\n    data:\n    # Parameters:\n    #  1) Call type:\n    #       0 - delegateCall\n    #       1 - callCode\n    #       2 - call\n    #  2) Caller Nonce (A)\n    #  3) Destination nonce (B)\n    #  4) CREATE type:\n    #       0 - CREATE\n    #       1 - CREATE2\n\n    # CREATE + Caller (A) Max Nonce minus 1 Test Cases\n    # - Contract A (Nonce=0xfffffffffffffffe) delegate calls CREATE Contract B (Nonce=0xfffffffffffffffe), contract create succeeds\n      - ':label A_MaxNonceMinus1_DelegateCall_B_MaxNonceMinus1_Create :abi f(uint,uint,uint,uint) 0x00 0xfffffffffffffffe <contract:max_nonce_minus_1> 0x0'\n    # - Contract A (Nonce=0xfffffffffffffffe) delegate calls CREATE Contract B (Nonce=0xffffffffffffffff), contract create succeeds\n      - ':label A_MaxNonceMinus1_DelegateCall_B_MaxNonce_Create :abi f(uint,uint,uint,uint) 0x00 0xfffffffffffffffe <contract:max_nonce> 0x0'\n    # - Contract A (Nonce=0xfffffffffffffffe) code calls CREATE Contract B (Nonce=0xfffffffffffffffe), contract create succeeds\n      - ':label A_MaxNonceMinus1_CallCode_B_MaxNonceMinus1_Create :abi f(uint,uint,uint,uint) 0x01 0xfffffffffffffffe <contract:max_nonce_minus_1> 0x0'\n    # - Contract A (Nonce=0xfffffffffffffffe) code calls CREATE Contract B (Nonce=0xffffffffffffffff), contract create succeeds\n      - ':label A_MaxNonceMinus1_CallCode_B_MaxNonce_Create :abi f(uint,uint,uint,uint) 0x01 0xfffffffffffffffe <contract:max_nonce> 0x0'\n    # - Contract A (Nonce=0xfffffffffffffffe) calls CREATE Contract B (Nonce=0xfffffffffffffffe), contract create succeeds\n      - ':label A_MaxNonceMinus1_Call_B_MaxNonceMinus1_Create :abi f(uint,uint,uint,uint) 0x02 0xfffffffffffffffe <contract:max_nonce_minus_1> 0x0'\n    # - Contract A (Nonce=0xfffffffffffffffe) calls CREATE Contract B (Nonce=0xffffffffffffffff), contract create fails\n      - ':label A_MaxNonceMinus1_Call_B_MaxNonce_Create :abi f(uint,uint,uint,uint) 0x02 0xfffffffffffffffe <contract:max_nonce> 0x0'\n\n    # CREATE + Caller (A) Max Nonce Test Cases\n    # - Contract A (Nonce=0xffffffffffffffff) delegate calls CREATE Contract B (Nonce=0xfffffffffffffffe), contract create fails\n      - ':label A_MaxNonce_DelegateCall_B_MaxNonceMinus1_Create :abi f(uint,uint,uint,uint) 0x00 0xffffffffffffffff <contract:max_nonce_minus_1> 0x0'\n    # - Contract A (Nonce=0xffffffffffffffff) delegate calls CREATE Contract B (Nonce=0xffffffffffffffff), contract create fails\n      - ':label A_MaxNonce_DelegateCall_B_MaxNonce_Create :abi f(uint,uint,uint,uint) 0x00 0xffffffffffffffff <contract:max_nonce> 0x0'\n    # - Contract A (Nonce=0xffffffffffffffff) code calls CREATE Contract B (Nonce=0xfffffffffffffffe), contract create fails\n      - ':label A_MaxNonce_CallCode_B_MaxNonceMinus1_Create :abi f(uint,uint,uint,uint) 0x01 0xffffffffffffffff <contract:max_nonce_minus_1> 0x0'\n    # - Contract A (Nonce=0xffffffffffffffff) code calls CREATE Contract B (Nonce=0xffffffffffffffff), contract create fails\n      - ':label A_MaxNonce_CallCode_B_MaxNonce_Create :abi f(uint,uint,uint,uint) 0x01 0xffffffffffffffff <contract:max_nonce> 0x0'\n    # - Contract A (Nonce=0xffffffffffffffff) calls CREATE Contract B (Nonce=0xfffffffffffffffe), contract create succeeds\n      - ':label A_MaxNonce_Call_B_MaxNonceMinus1_Create :abi f(uint,uint,uint,uint) 0x02 0xffffffffffffffff <contract:max_nonce_minus_1> 0x0'\n    # - Contract A (Nonce=0xffffffffffffffff) calls CREATE Contract B (Nonce=0xffffffffffffffff), contract create fails\n      - ':label A_MaxNonce_Call_B_MaxNonce_Create :abi f(uint,uint,uint,uint) 0x02 0xffffffffffffffff <contract:max_nonce> 0x0'\n\n    # CREATE2 + Caller (A) Max Nonce minus 1 Test Cases\n    # - Contract A (Nonce=0xfffffffffffffffe) delegate calls CREATE2 Contract B (Nonce=0xfffffffffffffffe), contract create succeeds\n      - ':label A_MaxNonceMinus1_DelegateCall_B_MaxNonceMinus1_Create2 :abi f(uint,uint,uint,uint) 0x00 0xfffffffffffffffe <contract:max_nonce_minus_1> 0x1'\n    # - Contract A (Nonce=0xfffffffffffffffe) delegate calls CREATE2 Contract B (Nonce=0xffffffffffffffff), contract create succeeds\n      - ':label A_MaxNonceMinus1_DelegateCall_B_MaxNonce_Create2 :abi f(uint,uint,uint,uint) 0x00 0xfffffffffffffffe <contract:max_nonce> 0x1'\n    # - Contract A (Nonce=0xfffffffffffffffe) code calls CREATE2 Contract B (Nonce=0xfffffffffffffffe), contract create succeeds\n      - ':label A_MaxNonceMinus1_CallCode_B_MaxNonceMinus1_Create2 :abi f(uint,uint,uint,uint) 0x01 0xfffffffffffffffe <contract:max_nonce_minus_1> 0x1'\n    # - Contract A (Nonce=0xfffffffffffffffe) code calls CREATE2 Contract B (Nonce=0xffffffffffffffff), contract create succeeds\n      - ':label A_MaxNonceMinus1_CallCode_B_MaxNonce_Create2 :abi f(uint,uint,uint,uint) 0x01 0xfffffffffffffffe <contract:max_nonce> 0x1'\n    # - Contract A (Nonce=0xfffffffffffffffe) calls CREATE2 Contract B (Nonce=0xfffffffffffffffe), contract create succeeds\n      - ':label A_MaxNonceMinus1_Call_B_MaxNonceMinus1_Create2 :abi f(uint,uint,uint,uint) 0x02 0xfffffffffffffffe <contract:max_nonce_minus_1> 0x1'\n    # - Contract A (Nonce=0xfffffffffffffffe) calls CREATE2 Contract B (Nonce=0xffffffffffffffff), contract create fails\n      - ':label A_MaxNonceMinus1_Call_B_MaxNonce_Create2 :abi f(uint,uint,uint,uint) 0x02 0xfffffffffffffffe <contract:max_nonce> 0x1'\n\n    # CREATE2 + Caller (A) Max Nonce Test Cases\n    # - Contract A (Nonce=0xffffffffffffffff) delegate calls CREATE2 Contract B (Nonce=0xfffffffffffffffe), contract create fails\n      - ':label A_MaxNonce_DelegateCall_B_MaxNonceMinus1_Create2 :abi f(uint,uint,uint,uint) 0x00 0xffffffffffffffff <contract:max_nonce_minus_1> 0x1'\n    # - Contract A (Nonce=0xffffffffffffffff) delegate calls CREATE2 Contract B (Nonce=0xffffffffffffffff), contract create fails\n      - ':label A_MaxNonce_DelegateCall_B_MaxNonce_Create2 :abi f(uint,uint,uint,uint) 0x00 0xffffffffffffffff <contract:max_nonce> 0x1'\n    # - Contract A (Nonce=0xffffffffffffffff) code calls CREATE2 Contract B (Nonce=0xfffffffffffffffe), contract create fails\n      - ':label A_MaxNonce_CallCode_B_MaxNonceMinus1_Create2 :abi f(uint,uint,uint,uint) 0x01 0xffffffffffffffff <contract:max_nonce_minus_1> 0x1'\n    # - Contract A (Nonce=0xffffffffffffffff) code calls CREATE2 Contract B (Nonce=0xffffffffffffffff), contract create fails\n      - ':label A_MaxNonce_CallCode_B_MaxNonce_Create2 :abi f(uint,uint,uint,uint) 0x01 0xffffffffffffffff <contract:max_nonce> 0x1'\n    # - Contract A (Nonce=0xffffffffffffffff) calls CREATE2 Contract B (Nonce=0xfffffffffffffffe), contract create succeeds\n      - ':label A_MaxNonce_Call_B_MaxNonceMinus1_Create2 :abi f(uint,uint,uint,uint) 0x02 0xffffffffffffffff <contract:max_nonce_minus_1> 0x1'\n    # - Contract A (Nonce=0xffffffffffffffff) calls CREATE2 Contract B (Nonce=0xffffffffffffffff), contract create fails\n      - ':label A_MaxNonce_Call_B_MaxNonce_Create2 :abi f(uint,uint,uint,uint) 0x02 0xffffffffffffffff <contract:max_nonce> 0x1'\n\n    gasLimit:\n      - 16777216\n    gasPrice: 10\n    nonce: 0\n    secretKey: <eoa:sender>\n    to: '<contract:entry>'\n    value:\n    - 0\n\n  expect:\n    - indexes:\n       data:\n       - ':label A_MaxNonce_DelegateCall_B_MaxNonce_Create'\n       - ':label A_MaxNonce_DelegateCall_B_MaxNonceMinus1_Create'\n       - ':label A_MaxNonce_CallCode_B_MaxNonce_Create'\n       - ':label A_MaxNonce_CallCode_B_MaxNonceMinus1_Create'\n       gas: !!int -1\n       value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n       <eoa:sender>:\n          nonce: 1\n       # Contract A\n       <contract:entry>:\n          nonce: '0xffffffffffffffff'\n          storage:\n            '1': '0'\n            '2': '0'\n            '0xffff': '0xffffffffffffffff'\n       # Contract B, Max Nonce - 1\n       <contract:max_nonce_minus_1>:\n          nonce: '0xfffffffffffffffe'\n          storage:\n            '0xffff': '0xfffffffffffffffe'\n       # Contract B, Max Nonce\n       <contract:max_nonce>:\n          nonce: '0xffffffffffffffff'\n          storage:\n            '0xffff': '0xffffffffffffffff'\n       # Contracts if create from nonce=0xffffffffffffffff succeeded, should never exist\n       <create:entry:0xffffffffffffffff>:\n          'shouldnotexist': '1'\n       <create:max_nonce_minus_1:0xffffffffffffffff>:\n          'shouldnotexist': '1'\n       <create:max_nonce:0xffffffffffffffff>:\n          'shouldnotexist': '1'\n\n    - indexes:\n       data:\n       - ':label A_MaxNonce_Call_B_MaxNonceMinus1_Create'\n       gas: !!int -1\n       value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n       <eoa:sender>:\n          nonce: 1\n       # Contract A\n       <contract:entry>:\n          nonce: '0xffffffffffffffff'\n          storage:\n            '1': '<create:max_nonce_minus_1:0xfffffffffffffffe>'\n            '0xffff': '0xffffffffffffffff'\n       # Contract B, Max Nonce - 1\n       <contract:max_nonce_minus_1>:\n          nonce: '0xffffffffffffffff'\n          storage:\n            '2': '<create:max_nonce_minus_1:0xfffffffffffffffe>'\n            '0xffff': '0xffffffffffffffff'\n       # Contract B, Max Nonce\n       <contract:max_nonce>:\n          nonce: '0xffffffffffffffff'\n          storage:\n            '0xffff': '0xffffffffffffffff'\n       # Contract Created, keccak(address=0x000000000000000000000000fffffffffffffffe,\n       #                          nonce=0xfffffffffffffffe)\n       <create:max_nonce_minus_1:0xfffffffffffffffe>:\n          code: '0x6001600155'\n          storage:\n            '1': '1'\n       # Contracts if create from nonce=0xffffffffffffffff succeeded, should never exist\n       <create:entry:0xffffffffffffffff>:\n          'shouldnotexist': '1'\n       <create:max_nonce_minus_1:0xffffffffffffffff>:\n          'shouldnotexist': '1'\n       <create:max_nonce:0xffffffffffffffff>:\n          'shouldnotexist': '1'\n\n    - indexes:\n       data:\n       - ':label A_MaxNonce_Call_B_MaxNonce_Create'\n       gas: !!int -1\n       value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n       <eoa:sender>:\n          nonce: 1\n       # Contract A\n       <contract:entry>:\n          nonce: '0xffffffffffffffff'\n          storage:\n            '1': '0'\n            '0xffff': '0xffffffffffffffff'\n       # Contract B, Max Nonce - 1\n       <contract:max_nonce_minus_1>:\n          nonce: '0xfffffffffffffffe'\n          storage:\n            '0xffff': '0xfffffffffffffffe'\n       # Contract B, Max Nonce\n       <contract:max_nonce>:\n          nonce: '0xffffffffffffffff'\n          storage:\n            '2': '0'\n            '0xffff': '0xffffffffffffffff'\n       # Contracts if create from nonce=0xffffffffffffffff succeeded, should never exist\n       <create:entry:0xffffffffffffffff>:\n          'shouldnotexist': '1'\n       <create:max_nonce_minus_1:0xffffffffffffffff>:\n          'shouldnotexist': '1'\n       <create:max_nonce:0xffffffffffffffff>:\n          'shouldnotexist': '1'\n\n    - indexes:\n       data:\n       - ':label A_MaxNonceMinus1_DelegateCall_B_MaxNonce_Create'\n       - ':label A_MaxNonceMinus1_DelegateCall_B_MaxNonceMinus1_Create'\n       - ':label A_MaxNonceMinus1_CallCode_B_MaxNonce_Create'\n       - ':label A_MaxNonceMinus1_CallCode_B_MaxNonceMinus1_Create'\n       gas: !!int -1\n       value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n       <eoa:sender>:\n          nonce: 1\n       # Contract A\n       <contract:entry>:\n          nonce: '0xffffffffffffffff'\n          storage:\n            '1': '<create:entry:0xfffffffffffffffe>'\n            '2': '<create:entry:0xfffffffffffffffe>'\n            '0xffff': '0xffffffffffffffff'\n       # Contract B, Max Nonce - 1\n       <contract:max_nonce_minus_1>:\n          nonce: '0xfffffffffffffffe'\n          storage:\n            '0xffff': '0xfffffffffffffffe'\n       # Contract B, Max Nonce\n       <contract:max_nonce>:\n          nonce: '0xffffffffffffffff'\n          storage:\n            '0xffff': '0xffffffffffffffff'\n       # Contract Created, keccak(address=0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b,\n       #                          nonce=0xfffffffffffffffe)\n       <create:entry:0xfffffffffffffffe>:\n          code: '0x6001600155'\n          storage:\n            '1': '1'\n       # Contracts if create from nonce=0xffffffffffffffff succeeded, should never exist\n       <create:entry:0xffffffffffffffff>:\n          'shouldnotexist': '1'\n       <create:max_nonce_minus_1:0xffffffffffffffff>:\n          'shouldnotexist': '1'\n       <create:max_nonce:0xffffffffffffffff>:\n          'shouldnotexist': '1'\n\n    - indexes:\n       data:\n       - ':label A_MaxNonceMinus1_Call_B_MaxNonceMinus1_Create'\n       gas: !!int -1\n       value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n       <eoa:sender>:\n          nonce: 1\n       # Contract A\n       <contract:entry>:\n          nonce: '0xfffffffffffffffe'\n          storage:\n            '1': '<create:max_nonce_minus_1:0xfffffffffffffffe>'\n            '0xffff': '0xfffffffffffffffe'\n       # Contract B, Max Nonce - 1\n       <contract:max_nonce_minus_1>:\n          nonce: '0xffffffffffffffff'\n          storage:\n            '2': '<create:max_nonce_minus_1:0xfffffffffffffffe>'\n            '0xffff': '0xffffffffffffffff'\n       # Contract B, Max Nonce\n       <contract:max_nonce>:\n          nonce: '0xffffffffffffffff'\n          storage:\n            '0xffff': '0xffffffffffffffff'\n       # Contract Created, keccak(address=0x000000000000000000000000fffffffffffffffe,\n       #                          nonce=0xfffffffffffffffe)\n       <create:max_nonce_minus_1:0xfffffffffffffffe>:\n          code: '0x6001600155'\n          storage:\n            '1': '1'\n       # Contracts if create from nonce=0xffffffffffffffff succeeded, should never exist\n       <create:entry:0xffffffffffffffff>:\n          'shouldnotexist': '1'\n       <create:max_nonce_minus_1:0xffffffffffffffff>:\n          'shouldnotexist': '1'\n       <create:max_nonce:0xffffffffffffffff>:\n          'shouldnotexist': '1'\n\n    - indexes:\n       data:\n       - ':label A_MaxNonceMinus1_Call_B_MaxNonce_Create'\n       gas: !!int -1\n       value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n       <eoa:sender>:\n          nonce: 1\n       # Contract A\n       <contract:entry>:\n          nonce: '0xfffffffffffffffe'\n          storage:\n            '1': '0'\n            '0xffff': '0xfffffffffffffffe'\n       # Contract B, Max Nonce - 1\n       <contract:max_nonce_minus_1>:\n          nonce: '0xfffffffffffffffe'\n          storage:\n            '0xffff': '0xfffffffffffffffe'\n       # Contract B, Max Nonce\n       <contract:max_nonce>:\n          nonce: '0xffffffffffffffff'\n          storage:\n            '2': '0'\n            '0xffff': '0xffffffffffffffff'\n       # Contracts if create from nonce=0xffffffffffffffff succeeded, should never exist\n       <create:entry:0xffffffffffffffff>:\n          'shouldnotexist': '1'\n       <create:max_nonce_minus_1:0xffffffffffffffff>:\n          'shouldnotexist': '1'\n       <create:max_nonce:0xffffffffffffffff>:\n          'shouldnotexist': '1'\n\n    - indexes:\n       data:\n       - ':label A_MaxNonce_DelegateCall_B_MaxNonce_Create2'\n       - ':label A_MaxNonce_DelegateCall_B_MaxNonceMinus1_Create2'\n       - ':label A_MaxNonce_CallCode_B_MaxNonce_Create2'\n       - ':label A_MaxNonce_CallCode_B_MaxNonceMinus1_Create2'\n       gas: !!int -1\n       value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n       <eoa:sender>:\n          nonce: 1\n       # Contract A\n       <contract:entry>:\n          nonce: '0xffffffffffffffff'\n          storage:\n            '1': '0'\n            '2': '0'\n            '0xffff': '0xffffffffffffffff'\n       # Contract B, Max Nonce - 1\n       <contract:max_nonce_minus_1>:\n          nonce: '0xfffffffffffffffe'\n          storage:\n            '0xffff': '0xfffffffffffffffe'\n       # Contract B, Max Nonce\n       <contract:max_nonce>:\n          nonce: '0xffffffffffffffff'\n          storage:\n            '0xffff': '0xffffffffffffffff'\n       # Contracts if create from nonce=0xffffffffffffffff succeeded, should never exist\n       <create2:entry:0xffffffffffffffff:0x6005600c60003960056000f36001600155>:\n          'shouldnotexist': '1'\n       <create2:max_nonce_minus_1:0xffffffffffffffff:0x6005600c60003960056000f36001600155>:\n          'shouldnotexist': '1'\n       <create2:max_nonce:0xffffffffffffffff:0x6005600c60003960056000f36001600155>:\n          'shouldnotexist': '1'\n\n    - indexes:\n       data:\n       - ':label A_MaxNonce_Call_B_MaxNonceMinus1_Create2'\n       gas: !!int -1\n       value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n       <eoa:sender>:\n          nonce: 1\n       # Contract A\n       <contract:entry>:\n          nonce: '0xffffffffffffffff'\n          storage:\n            '1': '<create2:max_nonce_minus_1:0xfffffffffffffffe:0x6005600c60003960056000f36001600155>'\n            '0xffff': '0xffffffffffffffff'\n       # Contract B, Max Nonce - 1\n       <contract:max_nonce_minus_1>:\n          nonce: '0xffffffffffffffff'\n          storage:\n            '2': '<create2:max_nonce_minus_1:0xfffffffffffffffe:0x6005600c60003960056000f36001600155>'\n            '0xffff': '0xffffffffffffffff'\n       # Contract B, Max Nonce\n       <contract:max_nonce>:\n          nonce: '0xffffffffffffffff'\n          storage:\n            '0xffff': '0xffffffffffffffff'\n       # Contract Created, keccak(address=0x000000000000000000000000fffffffffffffffe,\n       #                          salt=0xfffffffffffffffe,\n       #                          init code=0x6005600c60003960056000f36001600155)\n       <create2:max_nonce_minus_1:0xfffffffffffffffe:0x6005600c60003960056000f36001600155>:\n          code: '0x6001600155'\n          storage:\n            '1': '1'\n       # Contracts if create from nonce=0xffffffffffffffff succeeded, should never exist\n       <create2:entry:0xffffffffffffffff:0x6005600c60003960056000f36001600155>:\n          'shouldnotexist': '1'\n       <create2:max_nonce_minus_1:0xffffffffffffffff:0x6005600c60003960056000f36001600155>:\n          'shouldnotexist': '1'\n       <create2:max_nonce:0xffffffffffffffff:0x6005600c60003960056000f36001600155>:\n          'shouldnotexist': '1'\n\n    - indexes:\n       data:\n       - ':label A_MaxNonce_Call_B_MaxNonce_Create2'\n       gas: !!int -1\n       value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n       <eoa:sender>:\n          nonce: 1\n       # Contract A\n       <contract:entry>:\n          nonce: '0xffffffffffffffff'\n          storage:\n            '1': '0'\n            '0xffff': '0xffffffffffffffff'\n       # Contract B, Max Nonce - 1\n       <contract:max_nonce_minus_1>:\n          nonce: '0xfffffffffffffffe'\n          storage:\n            '0xffff': '0xfffffffffffffffe'\n       # Contract B, Max Nonce\n       <contract:max_nonce>:\n          nonce: '0xffffffffffffffff'\n          storage:\n            '2': '0'\n            '0xffff': '0xffffffffffffffff'\n       # Contracts if create from nonce=0xffffffffffffffff succeeded, should never exist\n       <create2:entry:0xffffffffffffffff:0x6005600c60003960056000f36001600155>:\n          'shouldnotexist': '1'\n       <create2:max_nonce_minus_1:0xffffffffffffffff:0x6005600c60003960056000f36001600155>:\n          'shouldnotexist': '1'\n       <create2:max_nonce:0xffffffffffffffff:0x6005600c60003960056000f36001600155>:\n          'shouldnotexist': '1'\n    \n    - indexes:\n       data:\n       - ':label A_MaxNonceMinus1_DelegateCall_B_MaxNonce_Create2'\n       - ':label A_MaxNonceMinus1_DelegateCall_B_MaxNonceMinus1_Create2'\n       - ':label A_MaxNonceMinus1_CallCode_B_MaxNonce_Create2'\n       - ':label A_MaxNonceMinus1_CallCode_B_MaxNonceMinus1_Create2'\n       gas: !!int -1\n       value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n       <eoa:sender>:\n          nonce: 1\n       # Contract A\n       <contract:entry>:\n          nonce: '0xffffffffffffffff'\n          storage:\n            '1': '<create2:entry:0xfffffffffffffffe:0x6005600c60003960056000f36001600155>'\n            '2': '<create2:entry:0xfffffffffffffffe:0x6005600c60003960056000f36001600155>'\n            '0xffff': '0xffffffffffffffff'\n       # Contract B, Max Nonce - 1\n       <contract:max_nonce_minus_1>:\n          nonce: '0xfffffffffffffffe'\n          storage:\n            '0xffff': '0xfffffffffffffffe'\n       # Contract B, Max Nonce\n       <contract:max_nonce>:\n          nonce: '0xffffffffffffffff'\n          storage:\n            '0xffff': '0xffffffffffffffff'\n       # Contract Created, keccak(address=0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b,\n       #                          salt=0xfffffffffffffffe,\n       #                          init code=0x6005600c60003960056000f36001600155)\n       <create2:entry:0xfffffffffffffffe:0x6005600c60003960056000f36001600155>:\n          code: '0x6001600155'\n          storage:\n            '1': '1'\n       # Contracts if create from nonce=0xffffffffffffffff succeeded, should never exist\n       <create2:entry:0xffffffffffffffff:0x6005600c60003960056000f36001600155>:\n          'shouldnotexist': '1'\n       <create2:max_nonce_minus_1:0xffffffffffffffff:0x6005600c60003960056000f36001600155>:\n          'shouldnotexist': '1'\n       <create2:max_nonce:0xffffffffffffffff:0x6005600c60003960056000f36001600155>:\n          'shouldnotexist': '1'\n\n    - indexes:\n       data:\n       - ':label A_MaxNonceMinus1_Call_B_MaxNonceMinus1_Create2'\n       gas: !!int -1\n       value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n       <eoa:sender>:\n          nonce: 1\n       # Contract A\n       <contract:entry>:\n          nonce: '0xfffffffffffffffe'\n          storage:\n            '1': '<create2:max_nonce_minus_1:0xfffffffffffffffe:0x6005600c60003960056000f36001600155>'\n            '0xffff': '0xfffffffffffffffe'\n       # Contract B, Max Nonce - 1\n       <contract:max_nonce_minus_1>:\n          nonce: '0xffffffffffffffff'\n          storage:\n            '2': '<create2:max_nonce_minus_1:0xfffffffffffffffe:0x6005600c60003960056000f36001600155>'\n            '0xffff': '0xffffffffffffffff'\n       # Contract B, Max Nonce\n       <contract:max_nonce>:\n          nonce: '0xffffffffffffffff'\n          storage:\n            '0xffff': '0xffffffffffffffff'\n       # Contract Created, keccak(address=0x000000000000000000000000fffffffffffffffe,\n       #                          salt=0xfffffffffffffffe,\n       #                          init code=0x6005600c60003960056000f36001600155)\n       <create2:max_nonce_minus_1:0xfffffffffffffffe:0x6005600c60003960056000f36001600155>:\n          code: '0x6001600155'\n          storage:\n            '1': '1'\n       # Contracts if create from nonce=0xffffffffffffffff succeeded, should never exist\n       <create2:entry:0xffffffffffffffff:0x6005600c60003960056000f36001600155>:\n          'shouldnotexist': '1'\n       <create2:max_nonce_minus_1:0xffffffffffffffff:0x6005600c60003960056000f36001600155>:\n          'shouldnotexist': '1'\n       <create2:max_nonce:0xffffffffffffffff:0x6005600c60003960056000f36001600155>:\n          'shouldnotexist': '1'\n    \n    - indexes:\n       data:\n       - ':label A_MaxNonceMinus1_Call_B_MaxNonce_Create2'\n       gas: !!int -1\n       value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n       <eoa:sender>:\n          nonce: 1\n       # Contract A\n       <contract:entry>:\n          nonce: '0xfffffffffffffffe'\n          storage:\n            '1': '0'\n            '0xffff': '0xfffffffffffffffe'\n       # Contract B, Max Nonce - 1\n       <contract:max_nonce_minus_1>:\n          nonce: '0xfffffffffffffffe'\n          storage:\n            '0xffff': '0xfffffffffffffffe'\n       # Contract B, Max Nonce\n       <contract:max_nonce>:\n          nonce: '0xffffffffffffffff'\n          storage:\n            '2': '0'\n            '0xffff': '0xffffffffffffffff'\n       # Contracts if create from nonce=0xffffffffffffffff succeeded, should never exist\n       <create2:entry:0xffffffffffffffff:0x6005600c60003960056000f36001600155>:\n          'shouldnotexist': '1'\n       <create2:max_nonce_minus_1:0xffffffffffffffff:0x6005600c60003960056000f36001600155>:\n          'shouldnotexist': '1'\n       <create2:max_nonce:0xffffffffffffffff:0x6005600c60003960056000f36001600155>:\n          'shouldnotexist': '1'"
  },
  {
    "path": "tests/static/state_tests/stCreate2/CREATE2_HighNonceFiller.yml",
    "content": "# The test calls CREATE2 from an account with max allowed nonce.\nCREATE2_HighNonce:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x020000'\n    currentGasLimit: '89128960'\n    currentBaseFee: '10'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n\n  pre:\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: 1000000000\n      code: ''\n      nonce: 0\n      storage: {}\n    b94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: 0\n      code: |\n        :yul berlin\n        {\n          // initcode: { return(0, 1) }\n          mstore(0, 0x60016000f3000000000000000000000000000000000000000000000000000000)\n          sstore(0, create2(0, 0, 5, 0))\n          sstore(1, 1)\n        }\n      nonce: '0xffffffffffffffff'\n      storage: {}\n\n  transaction:\n    data: \n      - ''\n    gasLimit:\n      - 16777216\n    gasPrice: 10\n    nonce: 0\n    secretKey: 45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\n    to: 'b94f5374fce5edbc8e2a8697c15331677e6ebf0b'\n    value:\n    - 0\n\n  expect:\n    - indexes:\n       data: !!int -1\n       gas: !!int -1\n       value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n       a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 1\n       b94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: '0xffffffffffffffff'\n          storage:\n            '0': 0\n            '1': 1\n       77dd5d2a2b742ca01ee2cfff306445e3741ef744:\n          'shouldnotexist': '1'\n\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/CREATE2_HighNonceMinus1Filler.yml",
    "content": "# The test calls CREATE2 from an account with max allowed nonce - 1, nonce gets maximum value as a result.\nCREATE2_HighNonceMinus1:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x020000'\n    currentGasLimit: '89128960'\n    currentBaseFee: '10'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n\n  pre:\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: 1000000000\n      code: ''\n      nonce: 0\n      storage: {}\n    b94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: 0\n      code: |\n        :yul berlin\n        {\n          // initcode: { return(0, 1) }\n          mstore(0, 0x60016000f3000000000000000000000000000000000000000000000000000000)\n          sstore(0, create2(0, 0, 5, 0))\n          sstore(1, 1)\n        }\n      nonce: '0xfffffffffffffffe'\n      storage: {}\n\n  transaction:\n    data: \n      - ''\n    gasLimit:\n      - 16777216\n    gasPrice: 10\n    nonce: 0\n    secretKey: 45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\n    to: 'b94f5374fce5edbc8e2a8697c15331677e6ebf0b'\n    value:\n    - 0\n\n  expect:\n    - indexes:\n       data: !!int -1\n       gas: !!int -1\n       value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n       a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 1\n       b94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: '0xffffffffffffffff'\n          storage:\n            '0': '77dd5d2a2b742ca01ee2cfff306445e3741ef744'\n            '1': 1\n       77dd5d2a2b742ca01ee2cfff306445e3741ef744:\n          code: '0x00'\n\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/CREATE2_SuicideFiller.json",
    "content": "{\n    \"CREATE2_Suicide\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"CREATE2 suicide with/without value, CREATE2 suicide to itself   +  this cases during init of the CREATE2\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : [0,1],\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"0000000000000000000000000000000000000001\" : {\n\t\t\t\"shouldnotexist\" : \"1\"\n\t\t    },\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"nonce\" : \"2\"\n\t\t    },\n\t\t    \"5649527a8464a86cae579719d347065f6eb27279\" : {\n\t\t\t\"shouldnotexist\" : \"1\"\n\t\t    }\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : [2,3],\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"0000000000000000000000000000000000000001\" : {\n\t\t\t\"balance\" : \"1\"\n\t\t    },\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"nonce\" : \"2\"\n\t\t    },\n\t\t    \"5649527a8464a86cae579719d347065f6eb27279\" : {\n\t\t\t\"shouldnotexist\" : \"1\"\n\t\t    }\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : [4, 5],\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"nonce\" : \"2\"\n\t\t    },\n\t\t    \"6cd0e5133771823da00d4cb545ec8cdab0e38203\" : {\n\t\t\t\"shouldnotexist\" : \"1\"\n\t\t    }\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : [6, 7],\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"nonce\" : \"2\",\n\t\t\t\"balance\" : \"9\"\n\t\t    },\n\t\t    \"6cd0e5133771823da00d4cb545ec8cdab0e38203\" : {\n\t\t\t\"shouldnotexist\" : \"1\"\n\t\t    }\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : [8, 9],\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"nonce\" : \"2\"\n\t\t    },\n\t\t    \"0x5649527a8464a86cae579719d347065f6eb27279\" : {\n\t\t\t\"code\" : \"0x6001ff\"\n\t\t    }\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : [10, 11],\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"nonce\" : \"2\"\n\t\t    },\n\t\t    \"0x6cd0e5133771823da00d4cb545ec8cdab0e38203\" : {\n\t\t\t\"code\" : \"0x30ff\"\n\t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n\t    \"//data\" : [\n\t\t\"0 - Create2 suicide without value during the init code\",\n\t\t\"1 - Create2 suicide without value with the call\",\n\t\t\"2 - Create2 suicide with value during the init code\",\n\t\t\"3 - Create2 suicide with value with the call\",\n\t\t\"4 - Create2 suicide to itself without value during init\",\n\t\t\"5 - Create2 suicide to itself without value with the call\",\n\t\t\"6 - Create2 suicide to itself with value during init\",\n\t\t\"7 - Create2 suicide to itself with value with the call\",\n\t\t\"8 - Create2 suicide without value with the staticcall\",\n\t\t\"9 - Create2 suicide with value with the staticcall\",\n\t\t\"10 - Create2 suicide to itself without value with the staticcall\",\n\t\t\"11 - Create2 suicide to itself with value with the staticcall\"\n\t    ],\n\t    \"data\" : [\n                \"{ (MSTORE 0 0x6001ff) (CREATE2 0 29 3 0) }\",\n\t\t\"{ (MSTORE 0 0x626001ff6000526003601df3) (CREATE2 0 20 12 0) (CALL 150000 0x5649527a8464a86cae579719d347065f6eb27279 0 0 0 0 0) }\",\n\t\t\"{ (MSTORE 0 0x6001ff) (CREATE2 1 29 3 0) }\",\t\t\n\t\t\"{ (MSTORE 0 0x626001ff6000526003601df3) (CREATE2 1 20 12 0) (CALL 150000 0x5649527a8464a86cae579719d347065f6eb27279 0 0 0 0 0) }\",\n\t\t\"{ (MSTORE 0 0x30ff) (CREATE2 0 30 2 0)  }\",\n\t\t\"{ (MSTORE 0 0x6130ff6000526002601ef3) (CREATE2 0 21 11 0) (CALL 150000 0x6cd0e5133771823da00d4cb545ec8cdab0e38203 0 0 0 0 0 ) }\",\n\t\t\"{ (MSTORE 0 0x30ff) (CREATE2 1 30 2 0)  }\",\n\t\t\"{ (MSTORE 0 0x6130ff6000526002601ef3) (CREATE2 1 21 11 0) (CALL 150000 0x6cd0e5133771823da00d4cb545ec8cdab0e38203 0 0 0 0 0 ) }\",\n\t\t\"{ (MSTORE 0 0x626001ff6000526003601df3) (CREATE2 0 20 12 0) (STATICCALL 150000 0x5649527a8464a86cae579719d347065f6eb27279 0 0 0 0) }\",\n\t\t\"{ (MSTORE 0 0x626001ff6000526003601df3) (CREATE2 1 20 12 0) (STATICCALL 150000 0x5649527a8464a86cae579719d347065f6eb27279 0 0 0 0) }\",\n\t\t\"{ (MSTORE 0 0x6130ff6000526002601ef3) (CREATE2 0 21 11 0) (STATICCALL 150000 0x6cd0e5133771823da00d4cb545ec8cdab0e38203 0 0 0 0 ) }\",\n\t\t\"{ (MSTORE 0 0x6130ff6000526002601ef3) (CREATE2 1 21 11 0) (STATICCALL 150000 0x6cd0e5133771823da00d4cb545ec8cdab0e38203 0 0 0 0 ) }\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/Create2OOGFromCallRefundsFiller.yml",
    "content": "Create2OOGFromCallRefunds:\n  # Test that verifies the refunds are not applied on contract creation when the creation runs Out of Gas\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: 0x100000000\n    currentNumber: \"1\"\n    currentTimestamp: \"1000\"\n\n  pre:\n    #### MAIN CALLER\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x3d0900'\n      code: '0x'\n      nonce: '1'\n      storage: {}\n    \n    ### MAIN ENTRY CONTRACT: Code that extcode-copies and creates a contract using CREATE2\n    # Switches init code based on the first parameter's value\n    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          let init_addr := calldataload(4)\n          let init_length := extcodesize(init_addr)\n          extcodecopy(init_addr, 0, 0, init_length)\n          let created_addr := create2(0, 0, init_length, 0)\n          if eq(created_addr, 0) {\n            /* This invalid will deplete the remaining gas to make refund check deterministic */\n            invalid()\n          }\n        }\n      nonce: '1'\n      storage: {}\n    \n    ### INIT CODES: Used to create contracts with a variety of OOG init codes.\n    # Init codes: Sstore refund\n    000000000000000000000000000000000000001a:\n      # CREATE2 keccak = 0xcfb6834f84b9e726f5f8aef446d585b732abdd99\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          sstore(1, 1)\n          sstore(1, 0)\n          return(0, 1)\n        }\n      nonce: '0'\n      storage: {}\n\n    000000000000000000000000000000000000001b:\n      # CREATE2 keccak = 0x95e88628c53b5c0e40ff6de65a3cf8cdc3b477f7\n      # Need to double check this address with solc optimisations for expect section\n      # https://github.com/ethereum/go-ethereum/issues/28375\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          sstore(1, 1)\n          sstore(1, 0)\n          return(0, 5000)\n        }\n      nonce: '0'\n      storage: {}\n\n    000000000000000000000000000000000000001c:\n      # CREATE2 keccak = 0x66e1cc2616a273450621c8cc5e91d8cfd92494fa\n      # Need to double check this address with solc optimisations for expect section\n      # https://github.com/ethereum/go-ethereum/issues/28375\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          sstore(1, 1)\n          sstore(1, 0)\n          invalid()\n        }\n      nonce: '0'\n      storage: {}\n\n    # Init codes: Sstore refund, call\n    000000000000000000000000000000000000002a:\n      # CREATE2 keccak = 0xd615c5eaff84f487cff253b50dc18517fc8385b0\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          pop(call(gas(), 0x00000000000000000000000000000000000c0deA, 0, 0, 0, 0, 0))\n          return(0, 1)\n          let noOpt := msize()\n        }\n      nonce: '0'\n      storage: {}\n    \n    000000000000000000000000000000000000002b:\n      # CREATE2 keccak = 0x6175ba9976476425b1cda8e1da479768fb429542\n      # Need to double check this address with solc optimisations for expect section\n      # https://github.com/ethereum/go-ethereum/issues/28375\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          pop(call(gas(), 0x00000000000000000000000000000000000c0deA, 0, 0, 0, 0, 0))\n          return(0, 5000)\n        }\n      nonce: '0'\n      storage: {}\n\n    000000000000000000000000000000000000002c:\n      # CREATE2 keccak = 0x8dff0e448f1e078e9b8a7fcf0bf6c291f167aaef\n      # Need to double check this address with solc optimisations for expect section\n      # https://github.com/ethereum/go-ethereum/issues/28375\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          pop(call(gas(), 0x00000000000000000000000000000000000c0deA, 0, 0, 0, 0, 0))\n          invalid()\n        }\n      nonce: '0'\n      storage: {}\n\n    # Init codes: Sstore refund, delegatecall\n    000000000000000000000000000000000000003a:\n      # CREATE2 keccak = 0x0d44b2ad06c5c9f9a86c9edf8d13fb7d44fe756c\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          sstore(1, 1)\n          pop(delegatecall(gas(), 0x00000000000000000000000000000000000c0deA, 0, 0, 0, 0))\n          return(0, 1)\n          let noOpt := msize()\n        }\n      nonce: '0'\n      storage: {}\n    \n    000000000000000000000000000000000000003b:\n      # CREATE2 keccak = 0xa2c4270800a5dbeea48464e5f2420efb1747725a\n      # Need to double check this address with solc optimisations for expect section\n      # https://github.com/ethereum/go-ethereum/issues/28375\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          sstore(1, 1)\n          pop(delegatecall(gas(), 0x00000000000000000000000000000000000c0deA, 0, 0, 0, 0))\n          return(0, 5000)\n        }\n      nonce: '0'\n      storage: {}\n    \n    000000000000000000000000000000000000003c:\n      # CREATE2 keccak = 0x4d80f1150ee236adfaab47c70df90e757cef1141\n      # Need to double check this address with solc optimisations for expect section\n      # https://github.com/ethereum/go-ethereum/issues/28375\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          sstore(1, 1)\n          pop(delegatecall(gas(), 0x00000000000000000000000000000000000c0deA, 0, 0, 0, 0))\n          invalid()\n        }\n      nonce: '0'\n      storage: {}\n    \n    # Init codes: Sstore refund, callcode\n    000000000000000000000000000000000000004a:\n      # CREATE2 keccak = 0x858ec13538276b49d5ece2a408c8331ccb79ad89\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          sstore(1, 1)\n          pop(callcode(gas(), 0x00000000000000000000000000000000000c0deA, 0, 0, 0, 0, 0))\n          return(0, 1)\n          let noOpt := msize()\n        }\n      nonce: '0'\n      storage: {}\n    \n    000000000000000000000000000000000000004b:\n      # CREATE2 keccak = 0x0566dc8dabc80fad3ed9ab2b4309ebfd98894f44\n      # Need to double check this address with solc optimisations for expect section\n      # https://github.com/ethereum/go-ethereum/issues/28375\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          sstore(1, 1)\n          pop(callcode(gas(), 0x00000000000000000000000000000000000c0deA, 0, 0, 0, 0, 0))\n          return(0, 5000)\n        }\n      nonce: '0'\n      storage: {}\n    \n    000000000000000000000000000000000000004c:\n      # CREATE2 keccak = 0x55305cc46bdaf1e755a05a771d55cfec3fedef90\n      # Need to double check this address with solc optimisations for expect section\n      # https://github.com/ethereum/go-ethereum/issues/28375\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          sstore(1, 1)\n          pop(callcode(gas(), 0x00000000000000000000000000000000000c0deA, 0, 0, 0, 0, 0))\n          invalid()\n        }\n      nonce: '0'\n      storage: {}\n    \n    # Init codes: Call self-destruct\n    000000000000000000000000000000000000005a:\n      # CREATE2 keccak = 0xd83e541aa11c5ae1e9c847aa1728d5bc47d32faf\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          pop(call(gas(), 0x00000000000000000000000000000000000c0deD, 0, 0, 0, 0, 0))\n          return(0, 1)\n          let noOpt := msize()\n        }\n      nonce: '0'\n      storage: {}\n    \n    000000000000000000000000000000000000005b:\n      # CREATE2 keccak = 0x8f6e6c741ac95c1a9109850ea1a3ffc722dc3bf8\n      # Need to double check this address with solc optimisations for expect section\n      # https://github.com/ethereum/go-ethereum/issues/28375\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          pop(call(gas(), 0x00000000000000000000000000000000000c0deD, 0, 0, 0, 0, 0))\n          return(0, 5000)\n        }\n      nonce: '0'\n      storage: {}\n    \n    000000000000000000000000000000000000005c:\n      # CREATE2 keccak = 0x1f5d187bb3a48dbb2c011d0a6e731ac8131799ad\n      # Need to double check this address with solc optimisations for expect section\n      # https://github.com/ethereum/go-ethereum/issues/28375\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          pop(call(gas(), 0x00000000000000000000000000000000000c0deD, 0, 0, 0, 0, 0))\n          invalid()\n        }\n      nonce: '0'\n      storage: {}\n    \n    # Init codes: Log operations\n    000000000000000000000000000000000000006a:\n      # CREATE2 keccak = 0x2a2141ed764598d4c5a8b6e036987928d5ec6bea\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          pop(call(gas(), 0x00000000000000000000000000000000000c0de0, 0, 0, 0, 0, 0))\n          return(0, 1)\n          let noOpt := msize()\n        }\n      nonce: '0'\n      storage: {}\n    \n    000000000000000000000000000000000000006b:\n      # CREATE2 keccak = 0x74b39291dfc237c0d42fd15457754778f51c6de8\n      # Need to double check this address with solc optimisations for expect section\n      # https://github.com/ethereum/go-ethereum/issues/28375\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          pop(call(gas(), 0x00000000000000000000000000000000000c0de0, 0, 0, 0, 0, 0))\n          return(0, 5000)\n        }\n      nonce: '0'\n      storage: {}\n    \n    000000000000000000000000000000000000006c:\n      # CREATE2 keccak = 0x3399c78929eab89c673a8986ff7ca9ccc49db454\n      # Need to double check this address with solc optimisations for expect section\n      # https://github.com/ethereum/go-ethereum/issues/28375\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          pop(call(gas(), 0x00000000000000000000000000000000000c0de0, 0, 0, 0, 0, 0))\n          invalid()\n        }\n      nonce: '0'\n      storage: {}\n    \n    # Init codes: Create, refund\n    000000000000000000000000000000000000007a:\n      # CREATE2 keccak = 0xdeb7d920f2653a8eddcffca0a77f56fcd788c00a\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          sstore(1, 1)\n          sstore(1, 0)\n          let initcodeaddr := 0x00000000000000000000000000000000000c0de1\n          let initcodelength := extcodesize(initcodeaddr)\n          extcodecopy(initcodeaddr, 0, 0, initcodelength)\n          pop(create(0, 0, initcodelength))\n          return(add(initcodelength, 1), 1)\n          let noOptimization := msize()\n        }\n      nonce: '0'\n      storage: {}\n    \n    000000000000000000000000000000000000007b:\n      # CREATE2 keccak = 0xf922b2f70110c83f8ec7df512b41bac5627e8e59\n      # Need to double check this address with solc optimisations for expect section\n      # https://github.com/ethereum/go-ethereum/issues/28375\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          sstore(1, 1)\n          sstore(1, 0)\n          let initcodeaddr := 0x00000000000000000000000000000000000c0de1\n          let initcodelength := extcodesize(initcodeaddr)\n          extcodecopy(initcodeaddr, 0, 0, initcodelength)\n          pop(create(0, 0, initcodelength))\n          return(add(initcodelength, 1), 5000)\n        }\n      nonce: '0'\n      storage: {}\n    \n    000000000000000000000000000000000000007c:\n      # CREATE2 keccak = 0x2ca788d22e21134ab1909266ed3b6c352e2a07cb\n      # Need to double check this address with solc optimisations for expect section\n      # https://github.com/ethereum/go-ethereum/issues/28375\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          sstore(1, 1)\n          sstore(1, 0)\n          let initcodeaddr := 0x00000000000000000000000000000000000c0de1\n          let initcodelength := extcodesize(initcodeaddr)\n          extcodecopy(initcodeaddr, 0, 0, initcodelength)\n          pop(create(0, 0, initcodelength))\n          invalid()\n        }\n      nonce: '0'\n      storage: {}\n    \n    # Init codes: Create2, refund\n    000000000000000000000000000000000000008a:\n      # CREATE2 keccak = 0x5a2664b55822aa3c6d9d90fec18b4c87cde07d04\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          sstore(1, 1)\n          sstore(1, 0)\n          let initcodeaddr := 0x00000000000000000000000000000000000c0de1\n          let initcodelength := extcodesize(initcodeaddr)\n          extcodecopy(initcodeaddr, 0, 0, initcodelength)\n          pop(create2(0, 0, initcodelength, 0))\n          return(add(initcodelength, 1), 1)\n          let noOpt := msize()\n        }\n      nonce: '0'\n      storage: {}\n    \n    000000000000000000000000000000000000008b:\n      # CREATE2 keccak = 0xdd2c53bfcaf5c1d698a2b21c0908f15f7fbfd635\n      # Need to double check this address with solc optimisations for expect section\n      # https://github.com/ethereum/go-ethereum/issues/28375\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          sstore(1, 1)\n          sstore(1, 0)\n          let initcodeaddr := 0x00000000000000000000000000000000000c0de1\n          let initcodelength := extcodesize(initcodeaddr)\n          extcodecopy(initcodeaddr, 0, 0, initcodelength)\n          pop(create2(0, 0, initcodelength, 0))\n          return(add(initcodelength, 1), 5000)\n        }\n      nonce: '0'\n      storage: {}\n    \n    000000000000000000000000000000000000008c:\n      # CREATE2 keccak = 0x2d556bdbcc37c7a021879a21abe25d1850d4fd36\n      # Need to double check this address with solc optimisations for expect section\n      # https://github.com/ethereum/go-ethereum/issues/28375\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          sstore(1, 1)\n          sstore(1, 0)\n          let initcodeaddr := 0x00000000000000000000000000000000000c0de1\n          let initcodelength := extcodesize(initcodeaddr)\n          extcodecopy(initcodeaddr, 0, 0, initcodelength)\n          pop(create2(0, 0, initcodelength, 0))\n          invalid()\n        }\n      nonce: '0'\n      storage: {}\n    \n    ### HELPER CONTRACTS\n    # Simple contract to reset sstore and refund\n    00000000000000000000000000000000000c0deA:\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          // Simple SSTORE to zero to get a refund\n          sstore(1, 0)\n        }\n      nonce: '1'\n      storage: {\n        '1': '1'\n      }\n\n    # Simple contract that self-destructs to refund\n    00000000000000000000000000000000000c0deD:\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          selfdestruct(origin())\n        }\n      nonce: '1'\n      storage: {\n        '1': '1'\n      }\n    \n    # Simple contract that performs log operations\n    00000000000000000000000000000000000c0de0:\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          mstore(0, 0xff)\n          log0(0, 32)\n          log1(0, 32, 0xfa)\n          log2(0, 32, 0xfa, 0xfb)\n          log3(0, 32, 0xfa, 0xfb, 0xfc)\n          log4(0, 32, 0xfa, 0xfb, 0xfc, 0xfd)\n        }\n      nonce: '1'\n      storage: {\n        '1': '1'\n      }\n\n    # Init code that successfully creates contract but contains a refund\n    00000000000000000000000000000000000c0de1:\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          sstore(0, 0)\n          return(0, 1)\n        }\n      nonce: '1'\n      storage: {}\n\n\n  transaction:\n    data:\n    # Create from EOA, Sstore Refund in Init Code, no OoG\n    # 0\n    - :label SStore_Refund_NoOoG :abi f(uint) 0x1a\n\n    # Create from EOA, Sstore Refund in Init Code, OoG on Code Deposit\n    # 1\n    - :label SStore_Refund_OoG :abi f(uint) 0x1b\n\n    # Create from EOA, Sstore Refund in Init Code, OoG on Invalid opcode\n    # 2\n    - :label SStore_Refund_OoG :abi f(uint) 0x1c\n\n    # Create from EOA, Sstore Refund in Call, no OoG\n    # 3\n    - :label SStore_Call_Refund_NoOoG :abi f(uint) 0x2a\n\n    # Create from EOA, Sstore Refund in Call, OoG on Code Deposit\n    - :label SStore_Refund_OoG :abi f(uint) 0x2b\n\n    # Create from EOA, Sstore Refund in Call, OoG on Invalid opcode\n    - :label SStore_Refund_OoG :abi f(uint) 0x2c\n\n    # Create from EOA, Sstore Refund in DelegateCall, no OoG\n    - :label SStore_DelegateCall_Refund_NoOoG :abi f(uint) 0x3a\n\n    # Create from EOA, Sstore Refund in DelegateCall, OoG on Code Deposit\n    - :label SStore_Refund_OoG :abi f(uint) 0x3b\n\n    # Create from EOA, Sstore Refund in DelegateCall, OoG on Invalid opcode\n    - :label SStore_Refund_OoG :abi f(uint) 0x3c\n\n    # Create from EOA, Sstore Refund in CallCode, no OoG\n    - :label SStore_CallCode_Refund_NoOoG :abi f(uint) 0x4a\n\n    # Create from EOA, Sstore Refund in CallCode, OoG on Code Deposit\n    - :label SStore_Refund_OoG :abi f(uint) 0x4b\n\n    # Create from EOA, Sstore Refund in CallCode, OoG on Invalid opcode\n    - :label SStore_Refund_OoG :abi f(uint) 0x4c\n\n    # Create from EOA, Refund Self-destruct call, no OoG\n    - :label SelfDestruct_Refund_NoOoG :abi f(uint) 0x5a\n\n    # Create from EOA, Refund Self-destruct call, OoG on Code Deposit\n    - :label SelfDestruct_Refund_OoG :abi f(uint) 0x5b\n\n    # Create from EOA, Refund Self-destruct call, OoG on Invalid opcode\n    - :label SelfDestruct_Refund_OoG :abi f(uint) 0x5c\n    \n    # Create from EOA, Log operation in call, no OoG\n    - :label LogOp_NoOoG :abi f(uint) 0x6a\n\n    # Create from EOA, Log operation in call, OoG on Code Deposit\n    - :label LogOp_OoG :abi f(uint) 0x6b\n\n    # Create from EOA, Log operation in call, OoG on Invalid opcode\n    - :label LogOp_OoG :abi f(uint) 0x6c\n\n    # Create from EOA, Refund within CREATE, no OoG\n    - :label SStore_Create_Refund_NoOoG :abi f(uint) 0x7a\n\n    # Create from EOA, Refund within CREATE, OoG on Code Deposit\n    - :label SStore_Create_Refund_OoG :abi f(uint) 0x7b\n\n    # Create from EOA, Refund within CREATE, OoG on Invalid opcode\n    - :label SStore_Create_Refund_OoG :abi f(uint) 0x7c\n\n    # Create2 from EOA, Refund within CREATE2, no OoG\n    - :label SStore_Create2_Refund_NoOoG :abi f(uint) 0x8a\n\n    # Create2 from EOA, Refund within CREATE2, OoG on Code Deposit\n    - :label SStore_Create2_Refund_OoG :abi f(uint) 0x8b\n\n    # Create2 from EOA, Refund within CREATE2, OoG on Invalid opcode\n    - :label SStore_Create2_Refund_OoG :abi f(uint) 0x8c\n\n    gasLimit:\n    - 0x61a80\n    gasPrice: '10'\n    nonce: '1'\n    to: \"0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n    value:\n    - 0\n\n  expect:\n\n    - indexes:\n        data: \n        - :label SStore_Refund_NoOoG\n      network:\n        - '>=Cancun'\n      result:\n\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 2\n\n        cfb6834f84b9e726f5f8aef446d585b732abdd99:\n          nonce: 1\n          code: '0x00'\n          storage: {\n            '0': 1\n          }\n    - indexes:\n        data: \n        - :label SStore_Call_Refund_NoOoG\n      network:\n        - '>=Cancun'\n      result:\n\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 2\n\n        d615c5eaff84f487cff253b50dc18517fc8385b0:\n          nonce: 1\n          code: '0x00'\n          storage: {\n            '0': 1\n          }\n    - indexes:\n        data: \n        - :label SStore_DelegateCall_Refund_NoOoG\n      network:\n        - '>=Cancun'\n      result:\n\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 2\n\n        0d44b2ad06c5c9f9a86c9edf8d13fb7d44fe756c:\n          nonce: 1\n          code: '0x00'\n          storage: {\n            '0': 1\n          }\n    - indexes:\n        data: \n        - :label SStore_CallCode_Refund_NoOoG\n      network:\n        - '>=Cancun'\n      result:\n\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 2\n\n        858ec13538276b49d5ece2a408c8331ccb79ad89:\n          nonce: 1\n          code: '0x00'\n          storage: {\n            '0': 1\n          }\n    - indexes:\n        data: \n        - :label SStore_Refund_OoG\n      network:\n        - '>=Cancun'\n      result:\n\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          # When we OoG, we use up all the gas regardless of the refunds\n          balance: 0\n          nonce: 2\n\n        95e88628c53b5c0e40ff6de65a3cf8cdc3b477f7:\n          shouldnotexist: 1\n        66e1cc2616a273450621c8cc5e91d8cfd92494fa:\n          shouldnotexist: 1\n        6175ba9976476425b1cda8e1da479768fb429542:\n          shouldnotexist: 1\n        8dff0e448f1e078e9b8a7fcf0bf6c291f167aaef:\n          shouldnotexist: 1\n        a2c4270800a5dbeea48464e5f2420efb1747725a:\n          shouldnotexist: 1\n        4d80f1150ee236adfaab47c70df90e757cef1141:\n          shouldnotexist: 1\n        0566dc8dabc80fad3ed9ab2b4309ebfd98894f44:\n          shouldnotexist: 1\n        55305cc46bdaf1e755a05a771d55cfec3fedef90:\n          shouldnotexist: 1\n\n    - indexes:\n        data: \n        - :label SelfDestruct_Refund_NoOoG\n      network:\n        - '>=Cancun'\n      result:\n\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 2\n\n        d83e541aa11c5ae1e9c847aa1728d5bc47d32faf:\n          nonce: 1\n          code: '0x00'\n          storage: {\n            '0': 1\n          }\n        00000000000000000000000000000000000c0deD:   # Suicide in Cancun no longer deletes account\n          balance: 0\n          nonce: 1\n\n    - indexes:\n        data: \n        - :label SelfDestruct_Refund_OoG\n      network:\n        - '>=Cancun'\n      result:\n\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          # When we OoG, we use up all the gas regardless of the refunds\n          balance: 0\n          nonce: 2\n\n        8f6e6c741ac95c1a9109850ea1a3ffc722dc3bf8:\n          shouldnotexist: 1\n        1f5d187bb3a48dbb2c011d0a6e731ac8131799ad:\n          shouldnotexist: 1\n\n        00000000000000000000000000000000000c0deD:\n          code: '0x32FF'\n          nonce: '1'\n          storage: {\n            '1': '1'\n          }\n\n    - indexes:\n        data: \n        - :label LogOp_NoOoG\n      network:\n        - '>=Cancun'\n      result:\n\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 2\n\n        2a2141ed764598d4c5a8b6e036987928d5ec6bea:\n          nonce: 1\n          code: '0x00'\n          storage: {\n            '0': 1\n          }\n    - indexes:\n        data: \n        - :label LogOp_OoG\n      network:\n        - '>=Cancun'\n      result:\n\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          # When we OoG, we use up all the gas regardless of the refunds\n          balance: 0\n          nonce: 2\n\n        74b39291dfc237c0d42fd15457754778f51c6de8:\n          shouldnotexist: 1\n        3399c78929eab89c673a8986ff7ca9ccc49db454:\n          shouldnotexist: 1\n\n    - indexes:\n        data: \n        - :label SStore_Create_Refund_NoOoG\n      network:\n        - '>=Cancun'\n      result:\n\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 2\n\n        deb7d920f2653a8eddcffca0a77f56fcd788c00a:\n          nonce: 2\n          code: '0x00'\n          storage: {\n            '0': 1\n          }\n        8109d28de74bfac2f298ec019548b8c346e51310:\n          nonce: 1\n          code: '0x00'\n          storage: {}\n  \n    - indexes:\n        data: \n        - :label SStore_Create_Refund_OoG\n      network:\n        - '>=Cancun'\n      result:\n\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          # When we OoG, we use up all the gas regardless of the refunds\n          balance: 0\n          nonce: 2\n\n        f922b2f70110c83f8ec7df512b41bac5627e8e59:\n          shouldnotexist: 1\n        2ca788d22e21134ab1909266ed3b6c352e2a07cb:\n          shouldnotexist: 1\n        \n        398426e736801fe712df1ef078a3b6ca3c6f063b:\n          shouldnotexist: 1\n        b520686759ced3bc9d8898e02ee41623032ff47f:\n          shouldnotexist: 1\n\n    - indexes:\n        data: \n        - :label SStore_Create2_Refund_NoOoG\n      network:\n        - '>=Cancun'\n      result:\n\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 2\n\n        5a2664b55822aa3c6d9d90fec18b4c87cde07d04:\n          nonce: 2\n          code: '0x00'\n          storage: {\n            '0': 1\n          }\n        442ed1b502544d146e46b5d9849a476aebd3b8db:\n          nonce: 1\n          code: '0x00'\n          storage: {}\n\n    - indexes:\n        data: \n        - :label SStore_Create2_Refund_OoG\n      network:\n        - '>=Cancun'\n      result:\n\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          # When we OoG, we use up all the gas regardless of the refunds\n          balance: 0\n          nonce: 2\n\n        dd2c53bfcaf5c1d698a2b21c0908f15f7fbfd635:\n          shouldnotexist: 1\n        2d556bdbcc37c7a021879a21abe25d1850d4fd36:\n          shouldnotexist: 1\n        a99da4ea490335c986d52b0cc9e3f78b286ac5fc:\n          shouldnotexist: 1\n        b4ab8ab0d363765586925e35c715e342e4ae3c63:\n          shouldnotexist: 1\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/Create2OOGafterInitCodeFiller.json",
    "content": "{\n    \"Create2OOGafterInitCode\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t        \"storage\" : {\n\t\t            \"0x01\" : \"0\"\n\t\t        }\n\t\t    },\n\t\t    \"0x6878b140f875209c82ab4d5f083b55947299ef6b\" : {\n\t\t        \"shouldnotexist\" : \"1\"\n\t\t    }\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t        \"storage\" : {\n\t\t            \"0x01\" : \"0\"\n\t\t        }\n\t\t    },\n\t\t    \"0x6878b140f875209c82ab4d5f083b55947299ef6b\" : {\n\t\t        \"code\" : \"0x6001600155\"\n\t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n\t\t\"nonce\" : \"0\",\n\t\t\"//code\" : \"(SSTORE 1 1) RETURN\",\n\t\t\"code\" : \"{ (MSTORE 0 0x6460016001556000526005601bf3) (CREATE2 0 18 14 0) }\",\n\t\t\"storage\": {\n\t\t}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"54000\", \"55000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/Create2OOGafterInitCodeReturndata2Filler.json",
    "content": "{\n    \"Create2OOGafterInitCodeReturndata2\" : {\n\t\"_info\" :{\n\t    \"comment\" : \"Call RETURNDATASIZE and RETURNDATACOPY after CREATE2 deploy a contract. correct returndata copy.\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t        \"storage\" : {\n\t\t            \"0x01\" : \"2\",\n\t\t\t    \"0x02\" : \"0\"\n\t\t        }\n\t\t    },\n\t\t    \"0xf1ecf98489fa9ed60a664fc4998db699cfa39d40\" : {\n\t\t        \"shouldnotexist\" : \"1\"\n\t\t    }\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t        \"storage\" : {\n\t\t            \"0x01\" : \"0\",\n\t\t\t    \"0x02\" : \"0x6460016001556000526005601bf3\"\n\t\t        }\n\t\t    },\n\t\t    \"6878b140f875209c82ab4d5f083b55947299ef6b\" : {\n\t\t        \"code\" : \"0x6001600155\"\n\t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n\t\t\"nonce\" : \"0\",\n\t\t\"//code\" : \"(SSTORE 1 1) RETURN\",\n\t\t\"code\" : \"{ (MSTORE 0 0x6460016001556000526005601bf3) (CREATE2 0 18 14 0) [[ 1 ]] (RETURNDATASIZE) (RETURNDATACOPY 0 0 0) [[ 2 ]] (MLOAD 0) }\",\n\t\t\"storage\": {\n\t\t    \"0x01\" : \"0x02\"\n\t\t}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"54000\", \"95000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/Create2OOGafterInitCodeReturndata3Filler.json",
    "content": "{\n    \"Create2OOGafterInitCodeReturndata3\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"Calls a contract that runs CREATE2 which deploy a code. then OOG happens upon deployment of the actual code. check the RETURN data buffer in initial contract\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t        \"storage\" : {\n                                \"0x01\" : \"0x01\"\n                         }\n\t\t    },\n\t\t    \"0xf1ecf98489fa9ed60a664fc4998db699cfa39d40\" : {\n\t\t        \"shouldnotexist\" : \"1\"\n\t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n\t\t\"nonce\" : \"0\",\n\t\t\"code\" : \"{ (CALLCODE (GAS) 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 32) (RETURNDATACOPY 0 0 32) [[ 1 ]] (MLOAD 0) }\",\n\t\t\"storage\": {\n\t\t    \"0x01\" : \"0x01\"\n\t\t}\n            },\n\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n\t\t\"nonce\" : \"0\",\n\t\t\"//code\" : \"(SSTORE 1 1) RETURN\",\n\t\t\"code\" : \"{ (MSTORE 0 0x6460016001556000526005601bf3) (CREATE2 0 18 14 0) }\",\n\t\t\"storage\": {\n\t\t}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"55000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/Create2OOGafterInitCodeReturndataFiller.json",
    "content": "{\n    \"Create2OOGafterInitCodeReturndata\" : {\n\t\"_info\" :{\n\t    \"comment\" : \"Call RETURNDATASIZE and RETURNDATACOPY (BufferOverrun) after CREATE2 deploy a contract\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t        \"storage\" : {\n\t\t            \"0x01\" : \"1\",\n\t\t\t    \"0x02\" : \"1\"\n\t\t        }\n\t\t    },\n\t\t    \"0xf1ecf98489fa9ed60a664fc4998db699cfa39d40\" : {\n\t\t        \"shouldnotexist\" : \"1\"\n\t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n\t\t\"nonce\" : \"0\",\n\t\t\"//code\" : \"(SSTORE 1 1) RETURN\",\n\t\t\"code\" : \"{ (MSTORE 0 0x6460016001556000526005601bf3) (CREATE2 0 18 14 0) [[ 1 ]] (RETURNDATASIZE) (RETURNDATACOPY 0 0 32) [[ 2 ]] (MLOAD 0) }\",\n\t\t\"storage\": {\n\t\t    \"0x01\" : \"1\",\n\t\t    \"0x02\" : \"1\"\n\t\t}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"54000\", \"95000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/Create2OOGafterInitCodeReturndataSizeFiller.json",
    "content": "{\n    \"Create2OOGafterInitCodeReturndataSize\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"Calls a contract that runs CREATE2 which deploy a code. then OOG happens upon deployment of the actual code. check the RETURNDATASIZE after create. fails with OOG if RETURNDATASIZE != 0\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t        \"balance\" : \"1\"\n\t\t    },\n\t\t    \"0xf1ecf98489fa9ed60a664fc4998db699cfa39d40\" : {\n\t\t\t\"shouldnotexist\" : \"1\"\n\t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n\t\t\"nonce\" : \"0\",\n\t\t\"//code\" : \"{ (MSTORE 0 0x60016001556001600255) (RETURN 22 10) }\",\n\t\t\"//code\" : \"{ (SSTORE 1 1) (SSTORE 2 1) } \",\n\t\t\"code\" : \"{ (MSTORE 0 0x6960016001556001600255600052600a6016f3) (CREATE2 0 13 19 0) (EXP 2 (RETURNDATASIZE)) }\",\n\t\t\"storage\": {\n\t\t}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"55054\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/Create2OOGafterInitCodeRevert2Filler.json",
    "content": "{\n    \"Create2OOGafterInitCodeRevert2\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"Calls a contract that runs CREATE2 which deploy a code. then after deployment and exiting from CREATE a REVERT is called. check the REVERT data in this case equal to RETURN value of CREATE2. CREATE2 fails due to the deployment cost.\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t        \"storage\" : {\n                                \"0x01\" : \"0x6460016001556000526005601bf3\"\n                         }\n\t\t    },\n\t\t    \"0xf1ecf98489fa9ed60a664fc4998db699cfa39d40\" : {\n\t\t        \"shouldnotexist\" : \"1\"\n\t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n\t\t\"nonce\" : \"0\",\n\t\t\"code\" : \"{ (CALL 33000 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 32) [[ 1 ]] (MLOAD 0) }\",\n\t\t\"storage\": {\n\t\t    \"0x01\" : \"0x01\"\n\t\t}\n            },\n\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n\t\t\"nonce\" : \"0\",\n\t\t\"//code\" : \"(SSTORE 1 1) RETURN\",\n\t\t\"code\" : \"{ (MSTORE 0 0x6460016001556000526005601bf3) (CREATE2 0 18 14 0) (REVERT 0 32) }\",\n\t\t\"storage\": {\n\t\t}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"75000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/Create2OOGafterInitCodeRevertFiller.json",
    "content": "{\n    \"Create2OOGafterInitCodeRevert\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"Calls a contract that runs CREATE2 which deploy a code. then after deployment and exiting from CREATE a REVERT is called. check the REVERT data in this case equal to RETURN value of CREATE\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t        \"storage\" : {\n                                \"0x01\" : \"0x6460016001556000526005601bf3\"\n                         }\n\t\t    },\n\t\t    \"0xf1ecf98489fa9ed60a664fc4998db699cfa39d40\" : {\n\t\t        \"shouldnotexist\" : \"1\"\n\t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n\t\t\"nonce\" : \"0\",\n\t\t\"code\" : \"{ (CALL (GAS) 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 32) [[ 1 ]] (MLOAD 0) }\",\n\t\t\"storage\": {\n\t\t    \"0x01\" : \"0x01\"\n\t\t}\n            },\n\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n\t\t\"nonce\" : \"0\",\n\t\t\"//code\" : \"(SSTORE 1 1) RETURN\",\n\t\t\"code\" : \"{ (MSTORE 0 0x6460016001556000526005601bf3) (CREATE2 0 18 14 0) (REVERT 0 32) }\",\n\t\t\"storage\": {\n\t\t}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"75000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/Create2OnDepth1023Filler.json",
    "content": "{\n    \"Create2OnDepth1023\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"Create2OnDepth1023, 0x0400 indicates 1022 level.\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n        \"expect\" : [\n            {   \n\t\t\"indexes\" : {\n                   \"data\" : -1,\n                   \"gas\" : -1,\n                   \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                  \"0x4f05179f0987710f94f2cbde67c5357bc1815af3\" : {\n                     \"nonce\" : \"1\"\n                  },\n\t\t          \"0xa3da9580897e90044fa0de6969815406b3172e3a\" : {\n                             \"storage\" : {\n                               \"0x01\" : \"0x4f05179f0987710f94f2cbde67c5357bc1815af3\"\n                             }\n                          },\n\t\t          \"0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                             \"storage\" : {\n                               \"0x01\" : \"0xa3da9580897e90044fa0de6969815406b3172e3a\"\n                             }\n                          }\n               }\n            }\n        ],\n        \"pre\" : {\n            \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n        \t\t\"//codeinsidecreate2\" : \"{  [[1]] (CREATE2 0 0 0 0) } \",\n                \"code\" : \"{ (MSTORE 0 (CALLDATALOAD 0)) (MSTORE 0 (ADD 2 (MLOAD 0))) (if (EQ (MLOAD 0) 0x0400) (seq (MSTORE 32 0x6000600060006000f5600155) [[1]] (CREATE2 0 52 12 0))  (CALL (GAS) 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b (EQ (MLOAD 0) 0x0400) 0 32 0 0)) }\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (MSTORE 0 (CALLDATALOAD 0)) (CALL (GAS) 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 32 0 0) }\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x7effffffffffffff\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/Create2OnDepth1024Filler.json",
    "content": "{\n    \"Create2OnDepth1024\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"Create2OnDepth1024, 0x0400 indicates 1022 level.\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n        \"expect\" : [\n            {   \n\t\t\"indexes\" : {\n                   \"data\" : -1,\n                   \"gas\" : -1,\n                   \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                  \"0x436b8f99e8d953cdaf8f9472116add83ccd82a65\" : {\n        \t\t     \"//comment\" : \"this nonce would have been equal to 2 if create worked\",\n                     \"nonce\" : \"1\"\n                  },\n        \t\t  \"0xb250d8cdad4a7a81323be508f4ac44584dd27597\" : {\n                     \"storage\" : {\n                       \"0x01\" : \"0x436b8f99e8d953cdaf8f9472116add83ccd82a65\"\n                     }\n                  },\n        \t\t  \"0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                     \"storage\" : {\n                       \"0x01\" : \"0xb250d8cdad4a7a81323be508f4ac44584dd27597\"\n                     }\n                  }\n               }\n            }\n        ],\n        \"pre\" : {\n            \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n        \t\t\"//codeinsidecreate2\" : \"{  (MSTORE 0 0x6000600060006000f5) [[1]] (CREATE2 0 23 9 0) } \",\n                \"code\" : \"{ (MSTORE 0 (CALLDATALOAD 0)) (MSTORE 0 (ADD 2 (MLOAD 0))) (if (EQ (MLOAD 0) 0x0400) (seq (MSTORE 32 0x686000600060006000f56000526000600960176000f5600155) [[1]] (CREATE2 0 39 25 0))  (CALL (GAS) 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b (EQ (MLOAD 0) 0x0400) 0 32 0 0)) }\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (MSTORE 0 (CALLDATALOAD 0)) (CALL (GAS) 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 32 0 0) }\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x7effffffffffffff\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/Create2RecursiveFiller.json",
    "content": "{\n    \"Create2Recursive\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"Create2 inside Create2 inside Create2....\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n        \"expect\" : [\n            {   \n        \t\t\"indexes\" : {\n                   \"data\" : -1,\n                   \"gas\" : 0,\n                   \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                  \"0x4b17a07e119e86a0ff1fd21cdc9b4aba196ed3f8\" : {\n        \t\t     \"//comment\" : \"1024's address\",\n                     \"nonce\" : \"1\"\n                  }\n               }\n            },\n            {   \n        \t\t\"indexes\" : {\n                   \"data\" : -1,\n                   \"gas\" : 1,\n                   \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                  \"0x4b17a07e119e86a0ff1fd21cdc9b4aba196ed3f8\" : {\n        \t\t     \"shouldnotexist\" : \"1\"\n                  }\n               }\n            },\n    \t    {   \n        \t\t\"indexes\" : {\n                   \"data\" : -1,\n                   \"gas\" : 2,\n                   \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                  \"0x471a0e624a2ac11c82cf1ff843127f1c6aa98351\" : {\n        \t\t     \"//comment\" : \"1023's address\",\n                     \"nonce\" : \"1\"\n                  }\n               }\n            }\n        ],\n        \"pre\" : {\n            \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n                \"//code\" : \"{ (CODECOPY 0 0 100) (if (LT (GAS) 1000)  (GAS)  (CREATE2 0 0 100 0))   }\",\n                \"code\" : \"{ (MSTORE 0 0x606460006000396103e85a10601b576000606460006000f5601d565b5a5b)  (CREATE2 0 2 30 0) }\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x7effffffffffffff\", \"20070000000000\", \"20080000000000\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/CreateMessageRevertedFiller.json",
    "content": "{\n    \"CreateMessageReverted\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"CreateMessageReverted for CREATE2\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    },\n                    \"244fe9a7867edcc140245e775071fbfe6ebedbae\" : {\n                        \"shouldnotexist\" : \"1\"\n                    }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    },\n                    \"244fe9a7867edcc140245e775071fbfe6ebedbae\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"1\",\n\t\t\t            \"storage\" : {\n\t\t\t                \"0x00\" : \"0x0c\",\n\t\t\t                \"0x01\" : \"0x0d\"\n\t\t\t            }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"3000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{(MSTORE 0 0x600c600055600d600155) (CREATE2 0 22 10 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"80000\", \"150000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"100\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/CreateMessageRevertedOOGInInit2Filler.json",
    "content": "{\n    \"CreateMessageRevertedOOGInInit2\" : {\n\t    \"_info\" : {\n\t        \"comment\" : \"create2 oog during the init code, + when create2 is from transaction init code. but oog still in create2 init code\"\n\t    },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    },\n                    \"f3059e18a327c662766f6ba11808c400635847ef\" : {\n                        \"shouldnotexist\" : \"1\"\n                    }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    },\n                    \"f3059e18a327c662766f6ba11808c400635847ef\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"1\",\n\t\t\t            \"storage\" : {\n\t\t\t                \"0x00\" : \"0x0c\",\n\t\t\t                \"0x01\" : \"0x0d\"\n\t\t\t            }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"3000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"10\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"{(MSTORE 0 0x600c600055600d600155) (CREATE2 0 22 10 0)}\"\n            ],\n            \"gasLimit\" : [\n                \"110000\", \"150000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"100\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/RevertDepthCreate2OOGBerlinFiller.json",
    "content": "{\n    \"RevertDepthCreate2OOGBerlin\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"//comment\" : \"NO OOG\",\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"05a28fc366483258507bcf739658573cb47e4fad\" : {\n                    \t\"nonce\" : \"1\"\n                     },\n                    \"a000000000000000000000000000000000000000\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x04\" : \"0x0c\"\n                        }\n        \t\t    },\n        \t\t    \"b000000000000000000000000000000000000000\" : {\n        \t\t        \"storage\" : {\n            \t\t\t    \"0x02\" : \"0x08\",\n                            \"0x03\" : \"0x0c\"\n        \t\t        }\n        \t\t    }\n                }\n            },\n    \t    {\n                \"//comment\" : \"OOG in subcall\",\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"05a28fc366483258507bcf739658573cb47e4fad\" : {\n                        \"shouldnotexist\" : \"1\"\n                    },\n                    \"a000000000000000000000000000000000000000\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x04\" : \"0x0c\"\n                        }\n        \t\t    },\n        \t\t    \"b000000000000000000000000000000000000000\" : {\n        \t\t        \"storage\" : {\n        \t\t        }\n        \t\t    }\n                }\n            },\n    \t    {\n                \"//comment\" : \"OOG after subcall / double OOG\",\n                \"indexes\" : {\n                    \"data\" : [1, 0],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t    \"05a28fc366483258507bcf739658573cb47e4fad\" : {\n            \t\t\t\"shouldnotexist\" : \"1\"\n        \t\t    },\n        \t\t    \"a000000000000000000000000000000000000000\" : {\n        \t\t        \"storage\" : {\n                        }\n        \t\t    },\n        \t\t    \"b000000000000000000000000000000000000000\" : {\n        \t\t        \"storage\" : {\n        \t\t        }\n        \t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"a000000000000000000000000000000000000000\" : {\n                \"balance\" : \"5\",\n                \"code\" : \"{ [[0]] 1 [[1]] (CALL (CALLDATALOAD 0) 0xb000000000000000000000000000000000000000 0 0 0 0 0) [[4]] 12 }\",\n                \"nonce\" : \"54\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[2]] 8 (CREATE2 0 0 0 0) [[3]] 12}\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n    \t    \"//data\" : \"Call with value to address A, then another call X, in the call X CREATE of account A, OOG -> revert call X.\",\n    \t    \"// data\" : \"d0g0 - double OOG,  d0g1 - OOG inside subcall, d1g0 - OOG after subcall, d1g1 - no OOG\",\n            \"data\" : [\n        \t\t\":raw 0x000000000000000000000000000000000000000000000000000000000000ea60\", \n        \t\t\":raw 0x000000000000000000000000000000000000000000000000000000000001ea60\" \n            ],\n            \"gasLimit\" : [\n                \"110000\", \"170000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"a000000000000000000000000000000000000000\",\n            \"value\" : [\n                \"1\", \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/RevertDepthCreate2OOGFiller.json",
    "content": "{\n    \"RevertDepthCreate2OOG\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"//comment\" : \"NO OOG\",\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"05a28fc366483258507bcf739658573cb47e4fad\" : {\n                    \t\"nonce\" : \"1\"\n                     },\n                    \"a000000000000000000000000000000000000000\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x04\" : \"0x0c\"\n                        }\n        \t\t    },\n        \t\t    \"b000000000000000000000000000000000000000\" : {\n        \t\t        \"storage\" : {\n            \t\t\t    \"0x02\" : \"0x08\",\n                            \"0x03\" : \"0x0c\"\n        \t\t        }\n        \t\t    }\n                }\n            },\n    \t    {\n                \"//comment\" : \"OOG in subcall\",\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"05a28fc366483258507bcf739658573cb47e4fad\" : {\n                        \"shouldnotexist\" : \"1\"\n                    },\n                    \"a000000000000000000000000000000000000000\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x04\" : \"0x0c\"\n                        }\n        \t\t    },\n        \t\t    \"b000000000000000000000000000000000000000\" : {\n        \t\t        \"storage\" : {\n        \t\t        }\n        \t\t    }\n                }\n            },\n    \t    {\n                \"//comment\" : \"OOG after subcall / double OOG\",\n                \"indexes\" : {\n                    \"data\" : [1, 0],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t    \"05a28fc366483258507bcf739658573cb47e4fad\" : {\n            \t\t\t\"shouldnotexist\" : \"1\"\n        \t\t    },\n        \t\t    \"a000000000000000000000000000000000000000\" : {\n        \t\t        \"storage\" : {\n                        }\n        \t\t    },\n        \t\t    \"b000000000000000000000000000000000000000\" : {\n        \t\t        \"storage\" : {\n        \t\t        }\n        \t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"a000000000000000000000000000000000000000\" : {\n                \"balance\" : \"5\",\n                \"code\" : \"{ [[0]] 1 [[1]] (CALL (CALLDATALOAD 0) 0xb000000000000000000000000000000000000000 0 0 0 0 0) [[4]] 12 }\",\n                \"nonce\" : \"54\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[2]] 8 (CREATE2 0 0 0 0) [[3]] 12}\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n    \t    \"//data\" : \"Call with value to address A, then another call X, in the call X CREATE of account A, OOG -> revert call X.\",\n    \t    \"// data\" : \"d0g0 - double OOG,  d0g1 - OOG inside subcall, d1g0 - OOG after subcall, d1g1 - no OOG\",\n            \"data\" : [\n        \t\t\":raw 0x000000000000000000000000000000000000000000000000000000000000ea60\", \n        \t\t\":raw 0x000000000000000000000000000000000000000000000000000000000001ea60\" \n            ],\n            \"gasLimit\" : [\n                \"110000\", \"170000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"a000000000000000000000000000000000000000\",\n            \"value\" : [\n                \"1\", \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/RevertDepthCreateAddressCollisionBerlinFiller.json",
    "content": "{\n    \"RevertDepthCreateAddressCollisionBerlin\" : {\n\t    \"_info\" : {\n\t        \"comment\" : \"copy of this test for CREATE2\"\n\t    },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t\t\t    \"3e180b1862f9d158abb5e519a6d8605540c23682\" : {\n                        \"nonce\" : \"54\",\n                        \"storage\" : {\n\t\t\t\t\t\t    \"0x00\" : \"0x01\",\n\t\t\t\t\t\t    \"0x01\" : \"0x01\",\n\t\t\t\t\t\t    \"0x04\" : \"0x0c\"\n                        }\n\t\t\t\t    },\n\t\t\t\t    \"b000000000000000000000000000000000000000\" : {\n\t\t\t\t        \"storage\" : {\n\t\t\t\t\t\t    \"0x02\" : \"0x08\",\n\t\t\t\t\t\t    \"0x03\" : \"0x0c\"\n\t\t\t\t        }\n\t\t\t\t    }\n                }\n            },\n\t\t    {\n                \"//comment\" : \"OOG in subcall\",\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"3e180b1862f9d158abb5e519a6d8605540c23682\" : {\n                        \"nonce\" : \"54\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x04\" : \"0x0c\"\n                        }\n\t\t\t\t    },\n\t\t\t\t    \"b000000000000000000000000000000000000000\" : {\n\t\t\t\t        \"storage\" : {\n\t\t\t\t        }\n\t\t\t\t    }\n                }\n            },\n\t\t    {\n                \"//comment\" : \"OOG after subcall\",\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"3e180b1862f9d158abb5e519a6d8605540c23682\" : {\n                        \"balance\" : \"0x05\",\n                        \"code\" : \"0x60016000556000600060006000600073b000000000000000000000000000000000000000600035f1600155600c60045500\",\n                        \"nonce\" : \"54\",\n                        \"storage\" : {\n                        }\n\t\t\t\t    },\n\t\t\t\t    \"b000000000000000000000000000000000000000\" : {\n\t\t\t\t        \"storage\" : {\n\t\t\t\t        }\n\t\t\t\t    }\n                }\n            },\n\t    \t{\n                \"//comment\" : \"double OOG\",\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"3e180b1862f9d158abb5e519a6d8605540c23682\" : {\n                        \"code\" : \"0x60016000556000600060006000600073b000000000000000000000000000000000000000600035f1600155600c60045500\",\n                        \"nonce\" : \"54\",\n                        \"storage\" : {\n                        }\n\t\t    \t\t},\n\t\t    \t\t\"b000000000000000000000000000000000000000\" : {\n\t\t    \t\t    \"storage\" : {\n\t\t    \t\t    }\n\t\t    \t\t}\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"3e180b1862f9d158abb5e519a6d8605540c23682\" : {\n                \"balance\" : \"5\",\n                \"code\" : \"{ [[0]] 1 [[1]] (CALL (CALLDATALOAD 0) 0xb000000000000000000000000000000000000000 0 0 0 0 0) [[4]] 12 }\",\n                \"nonce\" : \"54\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[2]] 8 (CREATE2 0 0 0 0) [[3]] 12}\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n\t        \"//0 data\" : \"Call with value to address A, then another call X, in the call X CREATE of account A, OOG -> revert call X.\",\n\t        \"//1 data\" : \"d0g0 - double OOG,  d0g1 - OOG inside subcall, d1g0 - OOG after subcall, d1g1 - no OOG\",\n            \"data\" : [\n        \t\t\":raw 0x000000000000000000000000000000000000000000000000000000000000ea60\", \n        \t\t\":raw 0x000000000000000000000000000000000000000000000000000000000001ea60\" \n            ],\n            \"gasLimit\" : [\n                \"110000\", \"170000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"3e180b1862f9d158abb5e519a6d8605540c23682\",\n            \"value\" : [\n                \"1\", \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/RevertDepthCreateAddressCollisionFiller.json",
    "content": "{\n    \"RevertDepthCreateAddressCollision\" : {\n\t    \"_info\" : {\n\t        \"comment\" : \"copy of this test for CREATE2\"\n\t    },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t\t\t    \"3e180b1862f9d158abb5e519a6d8605540c23682\" : {\n                        \"nonce\" : \"54\",\n                        \"storage\" : {\n\t\t\t\t\t\t    \"0x00\" : \"0x01\",\n\t\t\t\t\t\t    \"0x01\" : \"0x01\",\n\t\t\t\t\t\t    \"0x04\" : \"0x0c\"\n                        }\n\t\t\t\t    },\n\t\t\t\t    \"b000000000000000000000000000000000000000\" : {\n\t\t\t\t        \"storage\" : {\n\t\t\t\t\t\t    \"0x02\" : \"0x08\",\n\t\t\t\t\t\t    \"0x03\" : \"0x0c\"\n\t\t\t\t        }\n\t\t\t\t    }\n                }\n            },\n\t\t    {\n                \"//comment\" : \"OOG in subcall\",\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"3e180b1862f9d158abb5e519a6d8605540c23682\" : {\n                        \"nonce\" : \"54\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x04\" : \"0x0c\"\n                        }\n\t\t\t\t    },\n\t\t\t\t    \"b000000000000000000000000000000000000000\" : {\n\t\t\t\t        \"storage\" : {\n\t\t\t\t        }\n\t\t\t\t    }\n                }\n            },\n\t\t    {\n                \"//comment\" : \"OOG after subcall\",\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"3e180b1862f9d158abb5e519a6d8605540c23682\" : {\n                        \"balance\" : \"0x05\",\n                        \"code\" : \"0x60016000556000600060006000600073b000000000000000000000000000000000000000600035f1600155600c60045500\",\n                        \"nonce\" : \"54\",\n                        \"storage\" : {\n                        }\n\t\t\t\t    },\n\t\t\t\t    \"b000000000000000000000000000000000000000\" : {\n\t\t\t\t        \"storage\" : {\n\t\t\t\t        }\n\t\t\t\t    }\n                }\n            },\n\t    \t{\n                \"//comment\" : \"double OOG\",\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"3e180b1862f9d158abb5e519a6d8605540c23682\" : {\n                        \"code\" : \"0x60016000556000600060006000600073b000000000000000000000000000000000000000600035f1600155600c60045500\",\n                        \"nonce\" : \"54\",\n                        \"storage\" : {\n                        }\n\t\t    \t\t},\n\t\t    \t\t\"b000000000000000000000000000000000000000\" : {\n\t\t    \t\t    \"storage\" : {\n\t\t    \t\t    }\n\t\t    \t\t}\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"3e180b1862f9d158abb5e519a6d8605540c23682\" : {\n                \"balance\" : \"5\",\n                \"code\" : \"{ [[0]] 1 [[1]] (CALL (CALLDATALOAD 0) 0xb000000000000000000000000000000000000000 0 0 0 0 0) [[4]] 12 }\",\n                \"nonce\" : \"54\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[2]] 8 (CREATE2 0 0 0 0) [[3]] 12}\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n\t    \"//0 data\" : \"Call with value to address A, then another call X, in the call X CREATE of account A, OOG -> revert call X.\",\n\t    \"//1 data\" : \"d0g0 - double OOG,  d0g1 - OOG inside subcall, d1g0 - OOG after subcall, d1g1 - no OOG\",\n            \"data\" : [\n        \t\t\":raw 0x000000000000000000000000000000000000000000000000000000000000ea60\", \n        \t\t\":raw 0x000000000000000000000000000000000000000000000000000000000001ea60\" \n            ],\n            \"gasLimit\" : [\n                \"110000\", \"170000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"3e180b1862f9d158abb5e519a6d8605540c23682\",\n            \"value\" : [\n                \"1\", \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/RevertInCreateInInitCreate2ParisFiller.json",
    "content": "{\n    \"RevertInCreateInInitCreate2Paris\" : {\n\t    \"_info\" : {\n\t        \"comment\" : \"RevertInCreateInInit for CREATE2\"\n\t    },\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x0b00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                  \"0x6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                     \"balance\" : \"10\",\n                     \"nonce\" : \"0\",\n                     \"storage\" : {\n                       \"0x00\" : \"0x01\"\n                     }\n                  }\n               }\n            }\n        ],\n        \"pre\" : {\n            \"0x6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                \"balance\" : \"10\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                  \"0x00\" : \"0x01\"\n                }\n            },\n            \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"{ (seq (address) [[2]] (CREATE2 0 0 (lll (seq (mstore 0 0x112233) (revert 0 32) (STOP)) 0) 0) (SSTORE 0 (RETURNDATASIZE)) (returndatacopy 0 0 32) (sstore 1 (mload 0)) (STOP) ) }\"\n            ],\n            \"gasLimit\" : [\n                \"0x0a00000000\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/RevertOpcodeCreateFiller.json",
    "content": "{\n    \"RevertOpcodeCreate\" : {\n\t    \"_info\" : {\n\t        \"comment\" : \"RevertOpcodeCreate for CREATE2\"\n\t    },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t            \t\"nonce\" : \"1\",\n\t\t            \t\"storage\" : {\n\t\t            \t    \"0x00\" : \"0x0c\",\n\t\t            \t    \"0x01\" : \"0x00\"\n                    \t}\n\t                 }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t            \t\"nonce\" : \"0\"\n\t\t             }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1\",\n        \t\t\"// code\" : \"{ [[0]] 1 (REVERT 0 1) [[1]] 12 }\",\n                \"code\" : \"{ (MSTORE 0 0x600160005560016000fd6011600155 ) [[1]](CREATE2 1 17 15 0) [[0]] 12 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n        \t\t\":raw 0x600160005560016000fe6011600155\"\n            ],\n            \"gasLimit\" : [\n                \"460000\", \"70000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/RevertOpcodeInCreateReturnsCreate2Filler.json",
    "content": "{\n    \"RevertOpcodeInCreateReturnsCreate2\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"RevertOpcodeInCreateReturns for CREATE2\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x0b00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n        \"expect\" : [\n            {   \"indexes\" : {\n                   \"data\" : -1,\n                   \"gas\" : -1,\n                   \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x20\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \"{ (seq (CREATE2 0 0 (lll (seq (mstore 0 0x112233) (revert 0 32) (STOP)) 0) 0) (SSTORE 0 (RETURNDATASIZE)) (STOP) )}\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\"\n                }\n            },\n            \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/call_outsize_then_create2_successful_then_returndatasizeFiller.json",
    "content": "{\n    \"call_outsize_then_create2_successful_then_returndatasize\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x0b00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n\t\"expect\": [\n\t    {\n\t        \"indexes\" : {\n\t\t    \"data\" : -1,\n\t\t    \"gas\" : -1,\n\t\t    \"value\" : -1\n\t         },\n\t\t\"network\" : [\">=Cancun\"],\n\t\t\"result\" : {\n\t \t    \"0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6\" : {\n                \t\"storage\" : {\n\t\t\t    \"0x00\" : \"0x00\"\n\t        \t}\n\t\t    }\n\t\t}\n\t    }\n\t],\n        \"pre\" : {\n            \"0x0aabbccdd5c57f15886f9b263e2f6d2d6c7b5ec6\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \"{ (seq (MSTORE 0 0x0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff) (RETURN 0 32)) }\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \"{ (seq (CALL 0x0900000000 0x0aabbccdd5c57f15886f9b263e2f6d2d6c7b5ec6 0 0 0 0 0x20) (CREATE2 0 0 (lll (seq (mstore 0 0x112233) (RETURN 0 32) (STOP) ) 0) 0) (SSTORE 0 (RETURNDATASIZE)) (STOP) )}\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\"\n                }\n            },\n            \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/call_then_create2_successful_then_returndatasizeFiller.json",
    "content": "{\n    \"call_then_create2_successful_then_returndatasize\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x0b00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n\t\"expect\": [\n\t    {\n\t        \"indexes\" : {\n\t\t    \"data\" : -1,\n\t\t    \"gas\" : -1,\n\t\t    \"value\" : -1\n\t         },\n\t\t\"network\" : [\">=Cancun\"],\n\t\t\"result\" : {\n\t\t    \"0xc0c06666fad9e52251740536e21fc0f3db0e0fa0\" : {\n\t\t\t\t\"code\" : \"0x0000000000000000000000000000000000000000000000000000000000112233\"\n\t\t    },\n\t \t    \"0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6\" : {\n                \t\"storage\" : {\n\t\t\t\t\t    \"0x00\" : \"0x00\"\n\t    \t    \t}\n\t\t    }\n\t\t}\n\t    }\n\t],\n        \"pre\" : {\n            \"0x0aabbccdd5c57f15886f9b263e2f6d2d6c7b5ec6\" : {\n        \t\"balance\" : \"0x00\",\n                \"code\" : \"{ (seq (MSTORE 0 0x0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff) (RETURN 0 32) (STOP) ) }\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \"{ (seq (CALL 0x0900000000 0x0aabbccdd5c57f15886f9b263e2f6d2d6c7b5ec6 0 0 0 0 0) (CREATE2 0 0 (lll (seq (mstore 0 0x112233) (RETURN 0 32) (STOP) ) 0) 0) (SSTORE 0 (RETURNDATASIZE)) (STOP) )}\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\"\n                }\n            },\n            \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/create2InitCodesFiller.json",
    "content": "{\n    \"create2InitCodes\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"testing different byte opcodes inside create2 init code\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"9ccb06046c674d1a423c968d7998235bc33d40c1\" : {\n                        \"nonce\" : \"1\"\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    },\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"storage\" : {\n\t\t\t    \"0x00\" : \"0x9ccb06046c674d1a423c968d7998235bc33d40c1\"\n\t\t\t}\n                    }\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : [1,2,3],\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"balance\" : \"1\",\n\t\t\t            \"nonce\" : \"2\"\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : [4],\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"d46f8d2a93844fb23d8a2803a615f3d00849b8ab\" : {\n                        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\",\n\t\t\t    \"0x02\" : \"0x01\"\n\t\t\t}\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : [5],\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"adf52aafb61364f699f9b15ee605ef82dca7f53d\" : {\n                    \t\"shouldnotexist\" : \"1\"\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    },\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"storage\" : {\n\t\t\t    \"0x00\" : \"0xadf52aafb61364f699f9b15ee605ef82dca7f53d\"\n\t\t\t}\n                    }\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : [6],\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"adf52aafb61364f699f9b15ee605ef82dca7f53d\" : {\n                    \t\"shouldnotexist\" : \"1\"\n                    },\n\t\t    \"0000000000000000000000000000000000000001\" : {\n                    \t\"balance\" : \"1\"\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    },\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"storage\" : {\n\t\t\t    \"0x00\" : \"0xadf52aafb61364f699f9b15ee605ef82dca7f53d\"\n\t\t\t}\n                    }\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : [7],\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"0x52b620d9a3fd03486496061138825a08b4da501f\" : {\n                    \t\"nonce\" : \"1\"\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    },\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"storage\" : {\n\t\t\t    \"0x00\" : \"0x52b620d9a3fd03486496061138825a08b4da501f\"\n\t\t\t}\n                    }\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : [8],\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"5210981ae8161a02a1b7e37452ae142aedc66ea3\" : {\n                    \t\"nonce\" : \"1\",\n\t\t\t\"balance\" : \"1\"\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    },\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"storage\" : {\n\t\t\t    \"0x00\" : \"0x5210981ae8161a02a1b7e37452ae142aedc66ea3\"\n\t\t\t}\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\"{ (MSTORE8 0 0x00 ) (SSTORE 0 (CREATE2 0 0 1 0)) }\",\n                \"{ (MSTORE8 0 0x56 ) (SSTORE 0 (CREATE2 0 0 1 0)) }\",\n\t\t\"{ (MSTORE8 0 0x01 ) (SSTORE 0 (CREATE2 0 0 1 0)) }\",\n\t\t\"{ (MSTORE8 0 0xf4 ) (SSTORE 0 (CREATE2 0 0 1 0)) }\",\n\t\t\"{ (MSTORE 0 0x6001600155600154600255 ) (SSTORE 0 (CREATE2 0 21 11 0)) }\",\n\t\t\"{ (MSTORE 0 0x6001ff ) (SSTORE 0 (CREATE2 0 29 3 0)) }\",\n\t\t\"{ (MSTORE 0 0x6001ff ) (SSTORE 0 (CREATE2 1 29 3 0)) }\",\n\t\t\"{ (SSTORE 0 (CREATE2 0 29 3 0)) }\",\n\t\t\"{ (MSTORE 0 0x60a9 ) (SSTORE 0 (CREATE2 1 30 2 0)) }\"\n            ],\n            \"gasLimit\" : [\n                \"800000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/create2SmartInitCodeFiller.json",
    "content": "{\n    \"create2SmartInitCode\" : {\n\t    \"_info\" : {\n\t        \"comment\" : \"create2SmartInitCode. create2 works different each time you call it\"\n\t    },\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x0b00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n        \"expect\" : [\n            {   \n        \t\t\"indexes\" : {\n                   \"data\" : 0,\n                   \"gas\" : -1,\n                   \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"0x0000000000000000000000000000000000000001\" : {\n                        \"balance\" : \"1\"\n                    },\n\t\t            \"0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6\" : {\n                        \"nonce\" : \"0x02\"                \n                    }\n                }\n            },\n\t    {   \n\t\t\"indexes\" : {\n                   \"data\" : 1,\n                   \"gas\" : -1,\n                   \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t    \"0x1f572e5295c57f15886f9b263e2f6d2d6c7b5ec6\" : {\n                        \"storage\" : {\n\t\t\t                \"0x01\" : \"0xd27e800c69122409ac5609fe4df903745f3988a0\",\n\t\t\t                \"0x02\" : \"0\"\n\t\t\t            }\n                    },\n\t\t            \"0xd27e800c69122409ac5609fe4df903745f3988a0\" : {\n\t\t\t            \"nonce\" : \"1\",\n\t\t\t            \"code\" : \"0x00000000000000000000\",\n                        \"storage\" : {\n\t\t\t                \"0x01\" : \"0x01\"\n\t\t\t            } \n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6\" : {\n                \"balance\" : \"100\",\n                \"//code\" : \"{ (if (EQ (SLOAD 1) 0) (seq (SSTORE 1 1) (SELFDESTRUCT 1))  (RETURN 0 10)  )  }\",\n\t\t        \"//code\" : \"          0x112233445566778899101112131415161718192021222324252627\",\n\t\t        \"code\" : \"{ (MSTORE 0 0x600060015414601157600a6000f3601a565b60016001556001ff5b) [[1]](CREATE2 1 5 27 0) [[2]](CREATE2 1 5 27 0) }\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n    \t    \"0x1f572e5295c57f15886f9b263e2f6d2d6c7b5ec6\" : {\n                \"balance\" : \"100\",\n                \"//code\" : \"{ (if (EQ (SLOAD 1) 0) (seq (SSTORE 1 1) (RETURN 0 10))  (RETURN 0 10)  )  }\",\n        \t\t\"//code\" : \"            0x1122334455667788991011121314151617181920212223242526272829\",\n        \t\t\"code\" : \"{ (MSTORE 0 0x600060015414601157600a6000f3601c565b6001600155600a6000f35b) [[1]](CREATE2 1 3 29 0) [[2]](CREATE2 1 5 27 0) }\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"{ (CALL (GAS) (CALLDATALOAD 0) 0 0 0 0 0) }\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n        \t\t\":raw 0x0000000000000000000000000f572e5295c57f15886f9b263e2f6d2d6c7b5ec6\",\n        \t\t\":raw 0x0000000000000000000000001f572e5295c57f15886f9b263e2f6d2d6c7b5ec6\"\n            ],\n            \"gasLimit\" : [\n                \"0x061a80\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/create2callPrecompilesFiller.json",
    "content": "{\n    \"create2callPrecompiles\" : {\n\t    \"_info\" : {\n\t        \"comment\" : \"CALL precompiles during init code of CREATE2 contract \"\n\t    },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    },\n                    \"0xf68e26002db0f9ca9b54367c57c25e474c581622\" : {\n                        \"storage\" : {\n\t\t\t\t\t\t    \"0x00\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\"\n\t\t\t\t\t\t}\n                    }\n                }\n            },\n\t\t    {\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    },\n                    \"0x3b9ea59b92545beb727022289665cf38fa462bae\" : {\n                        \"storage\" : {\n\t\t\t\t\t\t    \"0x00\" : \"0xcb39b3bde22925b2f931111130c774761d8895e0e08437c9b396c1e97d10f34d\",\n\t\t\t\t\t\t    \"0x02\" : \"0x01\"\n\t\t\t\t\t\t}\n                    }\n                }\n            },\n\t\t    {\n                \"indexes\" : {\n                    \"data\" : 2,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    },\n                    \"0x7525f19e2970539fd2897357777a4c275175bcf5\" : {\n                        \"storage\" : {\n\t\t\t\t\t\t    \"0x00\" : \"0x9c1185a5c5e9fc54612808977ee8f548b2258d31\",\n\t\t\t\t\t\t    \"0x02\" : \"0x01\"\n\t\t\t\t\t\t}\n                    }\n                }\n            },\n\t\t    {\n                \"indexes\" : {\n                    \"data\" : 3,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    },\n                    \"0x0ee431db7c48fc10a9a56c909bfefa87661442fb\" : {\n                        \"storage\" : {\n\t\t\t\t\t\t    \"0x00\" : \"0xf34578907f\",\n\t\t\t\t\t\t    \"0x02\" : \"0x01\"\n\t\t\t\t\t\t}\n                    }\n                }\n            },\n\t\t    {\n                \"indexes\" : {\n                    \"data\" : 4,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    },\n                    \"0xbbd394930b408da783ee071ced240ece997bc8b2\" : {\n                        \"storage\" : {\n\t\t\t\t\t\t    \"0x01\" : \"0x01\",\n\t\t\t\t\t\t    \"0x02\" : \"0x162ead82cadefaeaf6e9283248fdf2f2845f6396f6f17c4d5a39f820b6f6b5f9\"\n\t\t\t\t\t\t}\n                    }\n                }\n            },\n\t\t    {\n                \"indexes\" : {\n                    \"data\" : 5,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    },\n                    \"0x2e3ec33a50ed32c2fcbef07a1bab8643db4dc670\" : {\n                        \"storage\" : {\n\t\t\t\t\t\t    \"0x00\" : \"0x01\",\n\t\t\t\t\t\t    \"0x02\" : \"0x00\"\n\t\t\t\t\t\t}\n                    }\n                }\n            },\n\t\t    {\n                \"indexes\" : {\n                    \"data\" : 6,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    },\n                    \"0xaa0ab87aa0e27e22e21671040c11f3537cdc7b3e\" : {\n                        \"storage\" : {\n\t\t\t\t\t\t    \"0x00\" : \"0x01\",\n\t\t\t\t\t\t    \"0x01\" : \"0x1f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c49\",\n\t\t\t\t\t\t    \"0x02\" : \"0x018683193ae021a2f8920fed186cde5d9b1365116865281ccf884c1f28b1df8f\"\n\t\t\t\t\t\t}\n                    }\n                }\n            },\n\t\t    {\n                \"indexes\" : {\n                    \"data\" : 7,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    },\n                    \"0xab7cf4e4980432e892fa512ec2b9e8532c23ac15\" : {\n                        \"storage\" : {\n\t\t\t\t\t\t\t\"0x00\" : \"0x01\",\n\t\t\t\t\t\t\t\"0x01\" : \"0x01\",\n\t\t\t\t\t\t\t\"0x02\" : \"0x01\",\n\t\t\t\t\t\t\t\"0x03\" : \"0x01\",\n\t\t\t\t\t\t\t\"0x0a\" : \"0x1de49a4b0233273bba8146af82042d004f2085ec982397db0d97da17204cc286\",\n\t\t\t\t\t\t\t\"0x0b\" : \"0x0217327ffc463919bef80cc166d09c6172639d8589799928761bcd9f22c903d4\",\n\t\t\t\t\t\t\t\"0x14\" : \"0x1de49a4b0233273bba8146af82042d004f2085ec982397db0d97da17204cc286\",\n\t\t\t\t\t\t\t\"0x15\" : \"0x0217327ffc463919bef80cc166d09c6172639d8589799928761bcd9f22c903d4\"\n\t\t\t\t\t\t}\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"addf5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{(MSTORE 0 (CALLDATALOAD 0)) (MSTORE 32 (CALLDATALOAD 32)) (MSTORE 64 (CALLDATALOAD 64)) (MSTORE 96 (CALLDATALOAD 96)) [[0]](CALLCODE 500000 6 0 0 128 200 64)  [[1]] (MLOAD 200)  [[2]] (MLOAD 232) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"\",\n\t\t\"//code\" : \"ECMUl ChecK\", \n                \"code\" : \"{(MSTORE 0 (CALLDATALOAD 0)) (MSTORE 32 (CALLDATALOAD 32)) (MSTORE 64 (CALLDATALOAD 64)) (MSTORE 96 (CALLDATALOAD 96))  (MSTORE 128 (CALLDATALOAD 128)) (MSTORE 160 (CALLDATALOAD 160)) (MSTORE 192 (CALLDATALOAD 192)) [[0]](CALLCODE 500000 6 0 0 128 300 64)  [[1]](CALLCODE 500000 7 0 128 96 400 64) [[10]] (MLOAD 300)  [[11]] (MLOAD 332) [[20]] (MLOAD 400)  [[21]] (MLOAD 432) [[2]] (EQ (SLOAD 10) (SLOAD 20)) [[3]] (EQ (SLOAD 11) (SLOAD 21))}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n\t        \"//data\" : [\n\t\t        \"0 - call ecrevocer (1) from init code of create2\",\n\t\t        \"1 - call sha256 (2) from init code of create2\",\n\t\t        \"2 - call REMPID160\",\n\t\t        \"3 - call Identity\",\n\t\t        \"4 - call Modexp\",\n\t\t        \"5 - call paring\",\n\t\t        \"6 - call addition on ec\",\n\t\t        \"7 - call ecmul\"\n\t        ],\n            \"data\" : [\n                \"{ (CREATE2 0 0 (lll (seq (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALL 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) (STOP) ) 0) 0) (STOP) }\",\n\t\t        \"{ (CREATE2 0 0 (lll (seq (MSTORE 5 0xf34578907f) [[ 2 ]] (CALL 500 2 0 0 37 0 32) [[ 0 ]] (MLOAD 0) (STOP) ) 0) 0) (STOP) }\",\n\t\t        \"{ (CREATE2 0 0 (lll (seq  [[ 2 ]] (CALL 600 3 0 0 0 0 32) [[ 0 ]] (MLOAD 0) (STOP) ) 0) 0) (STOP) }\",\n\t\t        \"{ (CREATE2 0 0 (lll (seq (MSTORE 0 0xf34578907f) [[ 2 ]] (CALL 500 4 0 0 37 0 32) [[ 0 ]] (MLOAD 0) (STOP) ) 0) 0) (STOP) }\",\n\t\t        \"{ (CREATE2 0 0 (lll (seq (MSTORE 0 0x0000000000000000000000000000000000000000000000000000000000000001) (MSTORE 32 0x0000000000000000000000000000000000000000000000000000000000000020) (MSTORE 64 0x0000000000000000000000000000000000000000000000000000000000000020) (MSTORE 96 0x03fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc) (MSTORE 128 0x2efffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc) (MSTORE 150 0x2f00000000000000000000000000000000000000000000000000000000000000)[[ 1 ]] (CALLCODE (GAS) 5 0 0 151 1000 32) [[ 2 ]](MLOAD 1000) (STOP) ) 0) 0) (STOP) }\",\n\t\t        \"{ (CREATE2 0 0 (lll (seq (MSTORE 0 0x0000000000000000000000000000000000000000000000000000000000000001) [[ 2 ]](CALL 600000 6 0 0 256 0 32) [[ 0 ]] (MLOAD 0) (STOP) ) 0) 0)  (STOP) }\",\n\t\t        \"{ (CREATE2 0 0 (lll (seq (MSTORE 0 0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd2) (MSTORE 32 0x16da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba) (MSTORE 64 0x1de49a4b0233273bba8146af82042d004f2085ec982397db0d97da17204cc286) (MSTORE 96 0x0217327ffc463919bef80cc166d09c6172639d8589799928761bcd9f22c903d4) (CALLCODE 500000 0xaddf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 128 0 0) (STOP) ) 0) 0) (STOP) }\",\n\t\t        \"{ (CREATE2 0 0 (lll (seq (MSTORE 0 0x1de49a4b0233273bba8146af82042d004f2085ec982397db0d97da17204cc286) (MSTORE 32 0x0217327ffc463919bef80cc166d09c6172639d8589799928761bcd9f22c903d4) (MSTORE 64 0x0000000000000000000000000000000000000000000000000000000000000000) (MSTORE 96 0x0000000000000000000000000000000000000000000000000000000000000000) (MSTORE 128 0x1de49a4b0233273bba8146af82042d004f2085ec982397db0d97da17204cc286) (MSTORE 160 0x0217327ffc463919bef80cc166d09c6172639d8589799928761bcd9f22c903d4 ) (MSTORE 192 0x0000000000000000000000000000000000000000000000000000000000000001) (CALLCODE 500000 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 224 0 0) (STOP) ) 0) 0)  (STOP) }\"\n            ],\n            \"gasLimit\" : [\n                \"15000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/create2checkFieldsInInitcodeFiller.json",
    "content": "{\n    \"create2checkFieldsInInitcode\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"Check opcode values in create2 init code. Create2 called with different call types. CREATE2 inside CRETE2 inside CALL, CALLCODE, DELEGATECALL, STATICCALL << test values of  SENDER,address and so on.\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : [0,4],\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"0xdaf9f53e732f21fe517e624b6dfe92dc8d0e51e0\" : {\n                        \"balance\" : \"0\",\n\t\t\t\t\t\t\"nonce\" : \"1\",\n\t\t\t\t\t\t\"storage\" : {\n\t\t\t\t\t\t\t\"0x00\" : \"0xdaf9f53e732f21fe517e624b6dfe92dc8d0e51e0\",\n\t\t\t\t\t\t\t\"0x01\" : \"0\",\n\t\t\t\t\t\t\t\"0x02\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n\t\t\t\t\t\t\t\"0x03\" : \"0xf000000000000000000000000000000000000000\",\n\t\t\t\t\t\t\t\"0x04\" : \"0\",\n\t\t\t\t\t\t\t\"0x05\" : \"0\",\n\t\t\t\t\t\t\t\"0x06\" : \"0x23\",\n\t\t\t\t\t\t\t\"0x07\" : \"10\"\n\t\t\t\t\t\t}\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            },\n\t\t    {\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"0xdfad1c567f12d848fabb8d9d8872c42e7aa81e95\" : {\n                        \"balance\" : \"0\",\n\t\t\t\t\t\t\"nonce\" : \"1\",\n\t\t\t\t\t\t\"storage\" : {\n\t\t\t\t\t\t\t\"0x00\" : \"0xdfad1c567f12d848fabb8d9d8872c42e7aa81e95\",\n\t\t\t\t\t\t\t\"0x01\" : \"0\",\n\t\t\t\t\t\t\t\"0x02\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n\t\t\t\t\t\t\t\"0x03\" : \"0x2000000000000000000000000000000000000000\",\n\t\t\t\t\t\t\t\"0x04\" : \"0\",\n\t\t\t\t\t\t\t\"0x05\" : \"0\",\n\t\t\t\t\t\t\t\"0x06\" : \"0x23\",\n\t\t\t\t\t\t\t\"0x07\" : \"10\"\n\t\t\t\t\t\t}\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            },\n\t\t    {\n                \"indexes\" : {\n                    \"data\" : 2,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"0x3ff16480055c6ccc070257c61fa902448f4ae111\" : {\n                        \"balance\" : \"0\",\n\t\t\t\t\t\t\"nonce\" : \"1\",\n\t\t\t\t\t\t\"storage\" : {\n\t\t\t\t\t\t\t\"0x00\" : \"0x3ff16480055c6ccc070257c61fa902448f4ae111\",\n\t\t\t\t\t\t\t\"0x01\" : \"0\",\n\t\t\t\t\t\t\t\"0x02\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n\t\t\t\t\t\t\t\"0x03\" : \"0x3000000000000000000000000000000000000000\",\n\t\t\t\t\t\t\t\"0x04\" : \"0\",\n\t\t\t\t\t\t\t\"0x05\" : \"0\",\n\t\t\t\t\t\t\t\"0x06\" : \"0x23\",\n\t\t\t\t\t\t\t\"0x07\" : \"10\"\n\t\t\t\t\t\t}\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            },\n\t\t    {\n                \"indexes\" : {\n                    \"data\" : [3, 7],\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            },\n\t\t    {\n                \"indexes\" : {\n                    \"data\" : 5,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"0x7ce21e3c16d63738cbbb697c919555c910504278\" : {\n                        \"balance\" : \"0\",\n\t\t\t\t\t\t\"nonce\" : \"1\",\n\t\t\t\t\t\t\"storage\" : {\n\t\t\t\t\t\t\t\"0x00\" : \"0x7ce21e3c16d63738cbbb697c919555c910504278\",\n\t\t\t\t\t\t\t\"0x01\" : \"0\",\n\t\t\t\t\t\t\t\"0x02\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n\t\t\t\t\t\t\t\"0x03\" : \"0x9d25fbabdeb081b9ecd0645b9b6aba8c7eb3821d\",\n\t\t\t\t\t\t\t\"0x04\" : \"0\",\n\t\t\t\t\t\t\t\"0x05\" : \"0\",\n\t\t\t\t\t\t\t\"0x06\" : \"0x23\",\n\t\t\t\t\t\t\t\"0x07\" : \"10\"\n\t\t\t\t\t\t}\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            },\n\t\t    {\n                \"indexes\" : {\n                    \"data\" : 6,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"0xbb1b88ea45d33397f45583ca612adea3eb267318\" : {\n                        \"balance\" : \"0\",\n\t\t\t\t\t\t\"nonce\" : \"1\",\n\t\t\t\t\t\t\"storage\" : {\n\t\t\t\t\t\t\t\"0x00\" : \"0xbb1b88ea45d33397f45583ca612adea3eb267318\",\n\t\t\t\t\t\t\t\"0x01\" : \"0\",\n\t\t\t\t\t\t\t\"0x02\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n\t\t\t\t\t\t\t\"0x03\" : \"0x45dde7fbf9f1cf09e18c4e584ba93c82e83c8898\",\n\t\t\t\t\t\t\t\"0x04\" : \"0\",\n\t\t\t\t\t\t\t\"0x05\" : \"0\",\n\t\t\t\t\t\t\t\"0x06\" : \"0x23\",\n\t\t\t\t\t\t\t\"0x07\" : \"10\"\n\t\t\t\t\t\t}\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"100000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \"{ (CALL (GAS) (CALLDATALOAD 0) 0 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"1000000000000000000000000000000000000000\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \"{ (CALL (GAS) 0xf000000000000000000000000000000000000000 0 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"1100000000000000000000000000000000000000\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \"{ (CREATE2 0 0 (lll (seq (CALL (GAS) 0xf000000000000000000000000000000000000000 0 0 0 0 0) (STOP) ) 0) 0) (STOP) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"2000000000000000000000000000000000000000\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \"{ (CALLCODE (GAS) 0xf000000000000000000000000000000000000000 0 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"2200000000000000000000000000000000000000\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \"{ (CREATE2 0 0 (lll (seq (CALLCODE (GAS) 0xf000000000000000000000000000000000000000 0 0 0 0 0) (STOP) ) 0) 0)  (STOP) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"3000000000000000000000000000000000000000\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \"{ (DELEGATECALL (GAS) 0xf000000000000000000000000000000000000000 0 0 0 0) (STOP) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"3300000000000000000000000000000000000000\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \"{ (CREATE2 0 0 (lll (seq (DELEGATECALL (GAS) 0xf000000000000000000000000000000000000000 0 0 0 0) (STOP) ) 0) 0) (STOP) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"4000000000000000000000000000000000000000\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \"{ (STATICCALL (GAS) 0xf200000000000000000000000000000000000000 0 0 0 256) [[10]] (MLOAD 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"4400000000000000000000000000000000000000\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \"{ (CREATE2 0 0 (lll (seq (STATICCALL (GAS) 0xf200000000000000000000000000000000000000 0 0 0 256) [[10]] (MLOAD 0)  (STOP) ) 0) 0 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"f000000000000000000000000000000000000000\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \"{ (CREATE2 0 0 (lll (seq   [[0]] (ADDRESS) [[1]] (BALANCE (ADDRESS)) [[2]] (ORIGIN) [[3]] (CALLER) [[4]] (CALLVALUE) [[5]] (CALLDATASIZE) [[6]] (CODESIZE) [[7]] (GASPRICE) (STOP)   ) 0) 0) (STOP) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"f200000000000000000000000000000000000000\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \"{ (CREATE2 0 0 (lll (seq   [0] (ADDRESS) [32] (BALANCE (ADDRESS)) [64] (ORIGIN) [96] (CALLER) [128] (CALLVALUE) [160] (CALLDATASIZE) [192] (CODESIZE) [224] (GASPRICE) (RETURN 0 256)  (STOP)   ) 0) 0)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x0000000000000000000000001000000000000000000000000000000000000000\",\n                \":raw 0x0000000000000000000000002000000000000000000000000000000000000000\",\n                \":raw 0x0000000000000000000000003000000000000000000000000000000000000000\",\n                \":raw 0x0000000000000000000000004000000000000000000000000000000000000000\",\n        \t\t\":raw 0x0000000000000000000000001100000000000000000000000000000000000000\",\n        \t\t\":raw 0x0000000000000000000000002200000000000000000000000000000000000000\",\n        \t\t\":raw 0x0000000000000000000000003300000000000000000000000000000000000000\",\n        \t\t\":raw 0x0000000000000000000000004400000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/create2collisionBalanceFiller.json",
    "content": "{\n    \"create2collisionBalance\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"create2 generates an account that already exists and has balance != 0\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"e2b35478fdd26477cc576dd906e6277761246a3c\" : {\n                        \"balance\" : \"1\",\n\t\t\t\"nonce\" : \"1\"\n                    },\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"balance\" : \"1\",\n                        \"nonce\" : \"2\"\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"af3ecba2fe09a4f6c19f16a9d119e44e08c2da01\" : {\n                        \"balance\" : \"1\",\n\t\t\t\"nonce\" : \"1\",\n\t\t\t\"code\" : \"0x\",\n\t\t\t\"storage\" : {\n\t\t\t    \"0x01\" : \"1\"\n\t\t\t}\n                    },\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"balance\" : \"1\",\n                        \"nonce\" : \"2\"\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : 2,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"ec2c6832d00680ece8ff9254f81fdab0a5a2ac50\" : {\n                        \"balance\" : \"1\",\n\t\t\t\"nonce\" : \"1\",\n\t\t\t\"code\" : \"0x6001600155\",\n\t\t\t\"storage\" : {}\n                    },\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"balance\" : \"1\",\n                        \"nonce\" : \"2\"\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : 3,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"e2b35478fdd26477cc576dd906e6277761246a3c\" : {\n                        \"balance\" : \"2\",\n\t\t\t\"nonce\" : \"1\"\n                    },\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"2\"\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"e2b35478fdd26477cc576dd906e6277761246a3c\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"af3ecba2fe09a4f6c19f16a9d119e44e08c2da01\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"ec2c6832d00680ece8ff9254f81fdab0a5a2ac50\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"{ (CREATE2 0 0 0 0) }\",\n\t\t\"{ (MSTORE 0 0x6001600155) (CREATE2 0 27 5 0) }\",\n\t\t\"{ (MSTORE 0 0x6460016001556000526005601bf3) (CREATE2 0 18 14 0) }\",\n\t\t\"{ (CREATE2 1 0 0 0) }\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/create2collisionCode2Filler.json",
    "content": "{\n    \"create2collisionCode2\" : {\n\t    \"_info\" : {\n\t        \"comment\" : \"collision with the contract that already has the same init code that we are about to create\"\n\t    },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"fce41d047b4a1d4450382dcc29ec7e5fedc5f9a3\" : {\n                        \"balance\" : \"0\",\n\t\t\t\t\t\t\"nonce\" : \"1\",\n\t\t\t\t\t\t\"code\" : \"0x010203\"\n                    },\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"balance\" : \"1\",\n                        \"nonce\" : \"2\",\n\t\t\t\t\t\t\"code\" : \"\"\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"fce41d047b4a1d4450382dcc29ec7e5fedc5f9a3\" : {\n                        \"balance\" : \"0\",\n\t\t\t\t\t\t\"nonce\" : \"1\",\n\t\t\t\t\t\t\"code\" : \"0x010203\"\n                    },\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"balance\" : \"1\",\n                        \"nonce\" : \"2\",\n\t\t\t\t\t\t\"code\" : \"\"\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"0xfce41d047b4a1d4450382dcc29ec7e5fedc5f9a3\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x010203\",\n                \"nonce\" : \"0x01\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"{ (MSTORE 0 0x620102036000526003601df3) (CREATE2 0 20 12 0) }\",\n\t\t\t\t\"{ (MSTORE 0 0x620102036000526003601df3) (CREATE2 1 20 12 0) }\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/create2collisionCodeFiller.json",
    "content": "{\n    \"create2collisionCode\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"create2 generates an account that already exists and has not empty code\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"e2b35478fdd26477cc576dd906e6277761246a3c\" : {\n                        \"balance\" : \"0\",\n            \t\t\t\"nonce\" : \"0\",\n            \t\t\t\"code\" : \"0x010203\",\n            \t\t\t\"storage\" : {}\n                    },\n        \t\t    \"af3ecba2fe09a4f6c19f16a9d119e44e08c2da01\" : {\n                        \"balance\" : \"0\",\n            \t\t\t\"nonce\" : \"0\",\n            \t\t\t\"code\" : \"0x010203\",\n            \t\t\t\"storage\" : {}\n                    },\n        \t\t    \"ec2c6832d00680ece8ff9254f81fdab0a5a2ac50\" : {\n                        \"balance\" : \"0\",\n\t\t\t            \"nonce\" : \"0\",\n\t\t\t            \"code\" : \"0x010203\",\n\t\t\t            \"storage\" : {}\n                    },\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"balance\" : \"1\",\n                        \"nonce\" : \"2\",\n            \t\t\t\"code\" : \"\"\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"e2b35478fdd26477cc576dd906e6277761246a3c\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x010203\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"af3ecba2fe09a4f6c19f16a9d119e44e08c2da01\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x010203\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"ec2c6832d00680ece8ff9254f81fdab0a5a2ac50\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x010203\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"{ (CREATE2 0 0 0 0) }\",\n\t\t        \"{ (MSTORE 0 0x6001600155) (CREATE2 0 27 5 0) }\",\n\t\t        \"{ (MSTORE 0 0x6460016001556000526005601bf3) (CREATE2 0 18 14 0) }\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/create2collisionNonceFiller.json",
    "content": "{\n    \"create2collisionNonce\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"create2 generates an account that already exists and has nonce != 0\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"e2b35478fdd26477cc576dd906e6277761246a3c\" : {\n                        \"balance\" : \"0\",\n\t\t\t\"nonce\" : \"1\",\n\t\t\t\"code\" : \"\",\n\t\t\t\"storage\" : {}\n                    },\n\t\t    \"af3ecba2fe09a4f6c19f16a9d119e44e08c2da01\" : {\n                        \"balance\" : \"0\",\n\t\t\t\"nonce\" : \"1\",\n\t\t\t\"code\" : \"\",\n\t\t\t\"storage\" : {}\n                    },\n\t\t    \"ec2c6832d00680ece8ff9254f81fdab0a5a2ac50\" : {\n                        \"balance\" : \"0\",\n\t\t\t\"nonce\" : \"1\",\n\t\t\t\"code\" : \"\",\n\t\t\t\"storage\" : {}\n                    },\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"balance\" : \"1\",\n                        \"nonce\" : \"2\"\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"e2b35478fdd26477cc576dd906e6277761246a3c\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"1\",\n                \"storage\" : {\n                }\n            },\n\t    \"af3ecba2fe09a4f6c19f16a9d119e44e08c2da01\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"1\",\n                \"storage\" : {\n                }\n            },\n\t    \"ec2c6832d00680ece8ff9254f81fdab0a5a2ac50\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"1\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"{ (CREATE2 0 0 0 0) }\",\n\t\t\"{ (MSTORE 0 0x6001600155) (CREATE2 0 27 5 0) }\",\n\t\t\"{ (MSTORE 0 0x6460016001556000526005601bf3) (CREATE2 0 18 14 0) }\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/create2collisionSelfdestructed2Filler.json",
    "content": "{\n    \"create2collisionSelfdestructed2\" : {\n\t    \"_info\" : {\n\t        \"comment\" : \"A contract which performs SUICIDE, and is then attempted to be recreated (different code, same init-code) during the same transaction. This ought to fail, since the code is not cleaned out until after the transaction is ended.\"\n\t    },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : 0\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"fce41d047b4a1d4450382dcc29ec7e5fedc5f9a3\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"code\" : \"0x6010ff00\",\n                        \"storage\" : {}\n                    },\n        \t\t    \"0000000000000000000000000000000000000010\" : {\n            \t\t\t\"balance\" : \"0x01\"\n        \t\t    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : 1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"cff64f4c5df8f436c4f2c1af4b2e3f9e3004c779\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"1\"\n                    },\n        \t\t    \"0000000000000000000000000000000000000010\" : {\n            \t\t\t\"balance\" : \"0x01\"\n        \t\t    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"fce41d047b4a1d4450382dcc29ec7e5fedc5f9a3\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"{ (SELFDESTRUCT 0x10) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"0xcff64f4c5df8f436c4f2c1af4b2e3f9e3004c779\" : {\n                \"balance\" : \"1\",\n                \"code\" : \":raw 0x6010ff\",\n                \"nonce\" : \"0x01\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n    \t    \"//data\" : \"0 - different code,  1 - same code\",\n            \"data\" : [\n                \"{ (CALL 50000 0xfce41d047b4a1d4450382dcc29ec7e5fedc5f9a3 0 0 0 0 0) (MSTORE 0 0x620102036000526003601df3) (CREATE2 0 20 12 0) }\",\n        \t\t\"{ (CALL 50000 0xcff64f4c5df8f436c4f2c1af4b2e3f9e3004c779 0 0 0 0 0) (MSTORE 0 0x626010ff6000526003601df3) (CREATE2 0 20 12 0) }\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/create2collisionSelfdestructedFiller.json",
    "content": "{\n    \"create2collisionSelfdestructed\" : {\n\t    \"_info\" : {\n\t        \"comment\" : \"collision with address that has been selfdestructed in the same transaction\"\n\t    },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : 0\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"e2b35478fdd26477cc576dd906e6277761246a3c\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\"\n                    },\n    \t\t        \"0000000000000000000000000000000000000010\" : {\n        \t\t\t    \"balance\" : \"0x01\"\n    \t\t        },\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"balance\" : \"1\",\n                        \"nonce\" : \"2\",\n\t\t\t            \"storage\" : {\n\t\t\t                \"0x00\" : \"0x00\"\n\t\t\t            }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : 1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"af3ecba2fe09a4f6c19f16a9d119e44e08c2da01\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\"\n                    },\n\t\t            \"0000000000000000000000000000000000000010\" : {\n    \t\t\t        \"balance\" : \"0x01\"\n\t\t            },\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"balance\" : \"1\",\n                        \"nonce\" : \"2\",\n\t\t\t            \"storage\" : {\n\t\t\t                \"0x00\" : \"0x00\"\n\t\t\t            }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : 2\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"ec2c6832d00680ece8ff9254f81fdab0a5a2ac50\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\"\n                    },\n\t\t            \"0000000000000000000000000000000000000010\" : {\n    \t\t\t        \"balance\" : \"0x01\"\n\t\t            },\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"balance\" : \"1\",\n                        \"nonce\" : \"2\",\n\t\t\t            \"storage\" : {\n\t\t\t                \"0x00\" : \"0x00\"\n\t\t\t            }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"e2b35478fdd26477cc576dd906e6277761246a3c\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"{ (SELFDESTRUCT 0x10) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"af3ecba2fe09a4f6c19f16a9d119e44e08c2da01\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"{ (SELFDESTRUCT 0x10) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"ec2c6832d00680ece8ff9254f81fdab0a5a2ac50\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"{ (SELFDESTRUCT 0x10) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"{ (CALL 50000 0xe2b35478fdd26477cc576dd906e6277761246a3c 0 0 0 0 0) (CREATE2 0 0 0 0) }\",\n\t\t        \"{ (CALL 50000 0xaf3ecba2fe09a4f6c19f16a9d119e44e08c2da01 0 0 0 0 0) (MSTORE 0 0x6001600155) (CREATE2 0 27 5 0) }\",\n\t\t        \"{ (CALL 50000 0xec2c6832d00680ece8ff9254f81fdab0a5a2ac50 0 0 0 0 0) (MSTORE 0 0x6460016001556000526005601bf3) (CREATE2 0 18 14 0) }\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/create2collisionSelfdestructedOOGFiller.json",
    "content": "{\n    \"create2collisionSelfdestructedOOG\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"collision with address that has been selfdestructed in the same transaction but then OOG\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"e2b35478fdd26477cc576dd906e6277761246a3c\" : {\n                        \"balance\" : \"1\",\n\t\t\t\t\t\t\"code\" : \"0x6010ff00\"\n                    },\n\t\t\t\t    \"af3ecba2fe09a4f6c19f16a9d119e44e08c2da01\" : {\n                        \"balance\" : \"1\",\n\t\t\t\t\t\t\"code\" : \"0x6010ff00\"\n                    },\n\t\t\t\t    \"ec2c6832d00680ece8ff9254f81fdab0a5a2ac50\" : {\n                        \"balance\" : \"1\",\n\t\t\t\t\t\t\"code\" : \"0x6010ff00\"\n                    },\n\t\t\t\t    \"0000000000000000000000000000000000000010\" : {\n\t\t\t\t\t\t\"shouldnotexist\" : \"1\"\n\t\t\t\t    },\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"shouldnotexist\" : \"1\"\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"e2b35478fdd26477cc576dd906e6277761246a3c\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"{ (SELFDESTRUCT 0x10) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"af3ecba2fe09a4f6c19f16a9d119e44e08c2da01\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"{ (SELFDESTRUCT 0x10) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"ec2c6832d00680ece8ff9254f81fdab0a5a2ac50\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"{ (SELFDESTRUCT 0x10) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"{ (CALL 50000 0xe2b35478fdd26477cc576dd906e6277761246a3c 0 0 0 0 0) (CREATE2 0 0 0 0) (SSTORE 0 0x112233) }\",\n\t\t\"{ (CALL 50000 0xaf3ecba2fe09a4f6c19f16a9d119e44e08c2da01 0 0 0 0 0) (MSTORE 0 0x6001600155) (CREATE2 0 27 5 0) (SSTORE 0 0x112233)}\",\n\t\t\"{ (CALL 50000 0xec2c6832d00680ece8ff9254f81fdab0a5a2ac50 0 0 0 0 0) (MSTORE 0 0x6460016001556000526005601bf3) (CREATE2 0 18 14 0) (SSTORE 0 0x112233)}\"\n            ],\n            \"gasLimit\" : [\n                \"200000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/create2collisionSelfdestructedRevertFiller.json",
    "content": "{\n    \"create2collisionSelfdestructedRevert\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"collision with address that has been selfdestructed in the same transaction but then REVERT is called\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"e2b35478fdd26477cc576dd906e6277761246a3c\" : {\n                        \"balance\" : \"1\",\n\t\t\t\t\t\t\"code\" : \"0x6010ff00\"\n                    },\n\t\t\t\t    \"af3ecba2fe09a4f6c19f16a9d119e44e08c2da01\" : {\n                        \"balance\" : \"1\",\n\t\t\t\t\t\t\"code\" : \"0x6010ff00\"\n                    },\n\t\t\t\t    \"ec2c6832d00680ece8ff9254f81fdab0a5a2ac50\" : {\n                        \"balance\" : \"1\",\n\t\t\t\t\t\t\"code\" : \"0x6010ff00\"\n                    },\n\t\t\t\t    \"0000000000000000000000000000000000000010\" : {\n\t\t\t\t\t\t\"shouldnotexist\" : \"1\"\n\t\t\t\t    },\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"shouldnotexist\" : \"1\"\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"e2b35478fdd26477cc576dd906e6277761246a3c\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"{ (SELFDESTRUCT 0x10) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"af3ecba2fe09a4f6c19f16a9d119e44e08c2da01\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"{ (SELFDESTRUCT 0x10) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"ec2c6832d00680ece8ff9254f81fdab0a5a2ac50\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"{ (SELFDESTRUCT 0x10) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"{ (CALL 50000 0xe2b35478fdd26477cc576dd906e6277761246a3c 0 0 0 0 0) (CREATE2 0 0 0 0) (MSTORE 0 0x112233) (REVERT 29 3) }\",\n\t\t\"{ (CALL 50000 0xe2b35478fdd26477cc576dd906e6277761246a3c 0 0 0 0 0) (MSTORE 0 0x6001600155) (CREATE2 0 27 5 0) (MSTORE 0 0x112233) (REVERT 29 3) }\",\n\t\t\"{ (CALL 50000 0xe2b35478fdd26477cc576dd906e6277761246a3c 0 0 0 0 0) (MSTORE 0 0x6460016001556000526005601bf3) (CREATE2 0 18 14 0) (MSTORE 0 0x112233) (REVERT 29 3) }\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/create2collisionStorageParisFiller.json",
    "content": "{\n    \"create2collisionStorageParis\" : {\n\t    \"_info\" : {\n\t        \"comment\" : \"create2 generates an account that already exists and has storage != 0\"\n\t    },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"e2b35478fdd26477cc576dd906e6277761246a3c\" : {\n                        \"balance\" : \"10\",\n\t\t\t            \"nonce\" : \"0\",\n\t\t\t            \"storage\" : {\n                            \"0x00\" : \"0x01\"\n\t\t\t            }\n                    },\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"balance\" : \"1\",\n                        \"nonce\" : \"2\",\n\t\t\t            \"storage\" : {\n\t\t\t                \"0x00\" : \"0x00\"\n\t\t\t            }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"af3ecba2fe09a4f6c19f16a9d119e44e08c2da01\" : {\n                        \"balance\" : \"10\",\n\t\t\t            \"nonce\" : \"0\",\n\t\t\t            \"code\" : \"0x\",\n\t\t\t            \"storage\" : {\n\t\t\t                \"0x00\" : \"0x01\"\n\t\t\t            }\n                    },\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"balance\" : \"1\",\n                        \"nonce\" : \"2\",\n\t\t\t            \"storage\" : {\n\t\t\t                \"0x00\" : \"0x00\"\n\t\t\t            }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : 2,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"ec2c6832d00680ece8ff9254f81fdab0a5a2ac50\" : {\n                        \"balance\" : \"10\",\n\t\t\t            \"nonce\" : \"0\",\n\t\t\t            \"code\" : \"0x\",\n\t\t\t            \"storage\" : {\n\t\t\t                \"0x00\" : \"0x01\"\n\t\t\t            }\n                    },\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"balance\" : \"1\",\n                        \"nonce\" : \"2\",\n\t\t\t            \"storage\" : {\n\t\t\t                \"0x00\" : \"0x00\"\n\t\t\t            }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t        \"e2b35478fdd26477cc576dd906e6277761246a3c\" : {\n                    \"balance\" : \"10\",\n                    \"code\" : \"0x\",\n                    \"nonce\" : \"0\",\n                    \"storage\" : {\n            \t\t    \"0x00\" : \"0x01\"\n                    }\n                },\n\t        \"af3ecba2fe09a4f6c19f16a9d119e44e08c2da01\" : {\n                    \"balance\" : \"10\",\n                    \"code\" : \"0x\",\n                    \"nonce\" : \"0\",\n                    \"storage\" : {\n            \t\t    \"0x00\" : \"0x01\"\n                    }\n                },\n\t        \"ec2c6832d00680ece8ff9254f81fdab0a5a2ac50\" : {\n                    \"balance\" : \"10\",\n                    \"code\" : \"0x\",\n                    \"nonce\" : \"0\",\n                    \"storage\" : {\n            \t\t    \"0x00\" : \"0x01\"\n                    }\n                }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"{ (CREATE2 0 0 0 0) }\",\n\t\t        \"{ (MSTORE 0 0x6001600155) (CREATE2 0 27 5 0) }\",\n\t\t        \"{ (MSTORE 0 0x6460016001556000526005601bf3) (CREATE2 0 18 14 0) }\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/create2noCashFiller.json",
    "content": "{\n    \"create2noCash\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"create2 fails with not enough cash (endowment of a new account) + inside staticcall\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : [0,2],\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"e2b35478fdd26477cc576dd906e6277761246a3c\" : {\n                        \"balance\" : \"100\"\n                    },\n\t\t    \"12aaefbc0350a026228076e5369e6ce148ce67be\" : {\n                        \"shouldnotexist\" : \"1\"\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"e2b35478fdd26477cc576dd906e6277761246a3c\" : {\n                        \"balance\" : \"0\"\n                    },\n\t\t    \"12aaefbc0350a026228076e5369e6ce148ce67be\" : {\n                        \"balance\" : \"101\"\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"e2b35478fdd26477cc576dd906e6277761246a3c\" : {\n                \"balance\" : \"100\",\n                \"code\" : \"{ (CREATE2 101 0 0 0) }\",\n                \"nonce\" : \"0\",\n\t\t\"storage\" : {}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"{ (CALL 150000 0xe2b35478fdd26477cc576dd906e6277761246a3c 0 0 0 0 0) }\",\n\t\t\"{ (CALL 150000 0xe2b35478fdd26477cc576dd906e6277761246a3c 1 0 0 0 0) }\",\n\t\t\"{ (STATICCALL 150000 0xe2b35478fdd26477cc576dd906e6277761246a3c 0 0 0 0) }\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/returndatacopy_0_0_following_successful_createFiller.json",
    "content": "{\n    \"returndatacopy_0_0_following_successful_create\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x0b00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n        \"expect\" : [\n            {   \n\t\t\"indexes\" : {\n                   \"data\" : -1,\n                   \"gas\" : -1,\n                   \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    },\n                    \"0x75579e0e990d8361c48b86c1b57686589df3264a\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \"{ (create2 0 0 (lll (seq (SSTORE 0 1) (STOP) ) 0) 0) (RETURNDATACOPY 0 0 0) (SSTORE 0 0) (STOP) }\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\"\n                }\n            },\n            \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/returndatacopy_afterFailing_createFiller.json",
    "content": "{\n    \"returndatacopy_afterFailing_create\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"Returndatacopy after failing create case due to 0xfd code.\"\n\t}, \n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x0b00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n        \"expect\" : [\n            {   \"indexes\" : {\n                   \"data\" : -1,\n                   \"gas\" : -1,\n                   \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x20\",\n\t\t\t    \"0x01\" : \"0x02\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \"{ (MSTORE 0 0x600260005260206000fd) (create2 0 22 10 0) (SSTORE 0 (RETURNDATASIZE)) (RETURNDATACOPY 0 0 32) (SSTORE 1 (MLOAD 0)) }\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\"\n                }\n            },\n            \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/returndatacopy_following_createFiller.json",
    "content": "{\n    \"returndatacopy_following_create\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"Check that create2 does not fill returndata buffer with its return opcode.\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x0b00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n        \"expect\" : [\n            {   \n        \t\t\"indexes\" : {\n                   \"data\" : 0,\n                   \"gas\" : -1,\n                   \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            },\n    \t    {   \n\t\t        \"indexes\" : {\n                   \"data\" : 1,\n                   \"gas\" : -1,\n                   \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"0x1f572e5295c57f15886f9b263e2f6d2d6c7b5ec6\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n\t    \"1aabbccdd5c57f15886f9b263e2f6d2d6c7b5ec6\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \"{ (CALL (GAS) (CALLDATALOAD 0) 0 0 0 0 0) }\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \"{ (CREATE2 0 0 (lll (seq (MSTORE 0 0x0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff) (RETURN 0 32)) 0) 0) (RETURNDATACOPY 0 0 32) (SSTORE 0 (MLOAD 0)) }\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\"\n                }\n            },\n            \"1f572e5295c57f15886f9b263e2f6d2d6c7b5ec6\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \"{ (seq (create2 0 0 (lll (STOP) 0) 0) (RETURNDATACOPY 0 0 32) (SSTORE 0 (MLOAD 0)) )}\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\"\n                }\n            },\n            \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x0000000000000000000000000f572e5295c57f15886f9b263e2f6d2d6c7b5ec6\",\n        \t\t\":raw 0x0000000000000000000000001f572e5295c57f15886f9b263e2f6d2d6c7b5ec6\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"0x1aabbccdd5c57f15886f9b263e2f6d2d6c7b5ec6\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/returndatacopy_following_revert_in_createFiller.json",
    "content": "{\n    \"returndatacopy_following_revert_in_create\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"returndatacopy_following_revert_in_create for CREATE2\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x0b00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n        \"expect\" : [\n            {   \"indexes\" : {\n                   \"data\" : -1,\n                   \"gas\" : -1,\n                   \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x111122223333444455556666777788889999aaaabbbbccccddddeeeeffff\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6\" : {\n\t\t\"balance\" : \"0x00\",\n                \"code\" : \"{ (seq (CREATE2 0 0 (lll (seq (MSTORE 0 0x0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff) (REVERT 0 32) (STOP) ) 0) 0) (RETURNDATACOPY 0 0 32) (SSTORE 0 (MLOAD 0)) (STOP) )}\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\"\n                }\n            },\n            \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/returndatacopy_following_successful_createFiller.json",
    "content": "{\n    \"returndatacopy_following_successful_create\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"returndatacopy_following_successful_create for CREATE2\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x0c00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n        \"expect\" : [\n            {   \"indexes\" : {\n                   \"data\" : -1,\n                   \"gas\" : -1,\n                   \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x02\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \"{ (create2 0 0 (lll (seq (STOP)) 0) 0) (RETURNDATACOPY 0 1 32) (SSTORE 0 (MLOAD 0)) }\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x02\"\n                }\n            },\n            \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreate2/returndatasize_following_successful_createFiller.json",
    "content": "{\n    \"returndatasize_following_successful_create\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"returndatasize_following_successful_create for create2\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x0b00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n\t\"expect\": [\n\t    {\n\t        \"indexes\" : {\n\t\t    \"data\" : -1,\n\t\t    \"gas\" : -1,\n\t\t    \"value\" : -1\n\t         },\n\t\t\"network\" : [\">=Cancun\"],\n\t\t\"result\" : {\n\t \t    \"0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6\" : {\n                \t\"storage\" : {\n\t\t\t   \"0x00\" : \"0x00\"\n\t        \t}\n\t\t    }\n\t\t}\n\t    }\n\t],\n        \"pre\" : {\n            \"0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \"{ (seq (CREATE2 0 0 (lll (seq (mstore 0 0x112233) (RETURN 0 32)) 0) 0) (SSTORE 0 (RETURNDATASIZE)) (STOP) )}\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\"\n                }\n            },\n            \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreateTest/CREATE2_CallDataFiller.yml",
    "content": "CREATE2_CallData:\n  _info:\n    comment: |\n      Test if calldata is empty in initcode context.\n  env:\n    currentCoinbase: a94f5374fce5edbc8e2a8697c15331677e6ebf0b\n    currentDifficulty: 1\n    currentGasLimit: 1000000\n    currentNumber: 1\n    currentTimestamp: 1000\n  pre:\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      nonce: 0\n      balance: 100000000000000\n      storage: { }\n      code: ''\n\n    # Contract creator.\n    000000000000000000000000000000000c5ea705:\n      nonce: 0\n      balance: 0\n      storage: { }\n      code: |\n        :yul berlin object \"C\" {\n          code {\n            let s := datasize(\"initcode\")\n            let o := dataoffset(\"initcode\")\n            codecopy(0, o, s)\n            let r := create2(0, 0, s, 0)\n            sstore(0, r)\n            stop()\n          }\n        \n          object \"initcode\" {\n            code {\n              sstore(0, calldataload(0))\n              calldatacopy(0, 0, 64)\n              return(0, msize())\n            }\n          }\n        }\n\n  transaction:\n    data: [ '' ]\n    gasLimit: [ 100000 ]\n    gasPrice: 10\n    nonce: 0\n    secretKey: 45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\n    to: 000000000000000000000000000000000c5ea705\n    value: [ 0 ]\n  expect:\n    - network:\n        - \">=Cancun\"\n      result:\n        000000000000000000000000000000000c5ea705:\n          storage:\n            0: 7f8330ad7bc2afe0dffb2fdc76bbad8bc326296a\n        7f8330ad7bc2afe0dffb2fdc76bbad8bc326296a:\n          code: '0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'\n"
  },
  {
    "path": "tests/static/state_tests/stCreateTest/CREATE2_RefundEFFiller.yml",
    "content": "CREATE2_RefundEF:\n  _info:\n    comment: |\n      Test combination of gas refund and EF-prefixed CREATE2 failure.\n  env:\n    currentCoinbase: a94f5374fce5edbc8e2a8697c15331677e6ebf0b\n    currentDifficulty: 1\n    currentGasLimit: 1000000\n    currentNumber: 1\n    currentTimestamp: 1000\n  pre:\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      nonce: 0\n      balance: 100000000000000\n      storage: { }\n      code: ''\n\n    # Provides gas refund.\n    00000000000000000000000000000000005ef94d:\n      nonce: 0\n      balance: 0\n      storage:\n        0: 1\n      code: |\n        :yul london {\n          sstore(0,0)\n        }\n\n    # Contract creator.\n    000000000000000000000000000000000c5ea705:\n      nonce: 0\n      balance: 0\n      storage: { }\n      code: |\n        :yul london object \"C\" {\n          code {\n            let s := datasize(\"initcode\")\n            let o := dataoffset(\"initcode\")\n            codecopy(0, o, s)\n            let r := create2(0, 0, s, 0)\n            sstore(0, r)\n            stop()\n          }\n        \n          object \"initcode\" {\n            code {\n              // call gas refund provider\n              let r := call(50000, 0x5ef94d, 0, 0, 0, 0, 0)\n              // return 0xEF\n              mstore8(0,0xEF)\n              return(0,1)\n            }\n          }\n        }\n\n  transaction:\n    data: [ '' ]\n    gasLimit: [ 100000 ]\n    gasPrice: 10\n    nonce: 0\n    secretKey: 45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\n    to: 000000000000000000000000000000000c5ea705\n    value: [ 0 ]\n  expect:\n    - network:\n        - \">=Cancun\"\n      result:\n        00000000000000000000000000000000005ef94d:\n          storage:\n            0: 1\n        be8f87148d0767989cce2e6a6a5d91c7d0c840e0:\n          shouldnotexist: true\n"
  },
  {
    "path": "tests/static/state_tests/stCreateTest/CREATE_ContractRETURNBigOffsetFiller.yml",
    "content": "# Use return with big offset, causes BN error in ethereumjs-vm\n---\nCREATE_ContractRETURNBigOffset:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x020000'\n    currentGasLimit: '89128960'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n    - indexes:\n       data: !!int -1\n       gas: !!int -1\n       value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n       a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n         nonce: '1'\n       6295ee1b4f6dd65047762f924ecd367c17eabf8f:\n         shouldnotexist: '1'\n  pre:\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '10000000000000'\n      code: ''\n      nonce: ''\n      storage: {}\n  transaction:\n    data:\n    #- { (RETURN 0x074ac2 0x010000) }\n    #- { (RETURN 0x074ac2 0x051eb8) }\n    #- { (RETURN 0x074ac2 0x051eb9) }\n    #- { (RETURN 0x074ac2 0x0d15bc) }\n    - ':raw 0x6201000062074ac2f3'\n    - ':raw 0x62051eb862074ac2f3'\n    - ':raw 0x62051eb962074ac2f3'\n    - ':raw 0x620d15bc62074ac2f3'\n    gasLimit:\n    - '0x1000000'\n    gasPrice: '0x0a'\n    nonce: '0x00'\n    secretKey: 45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\n    to: ''\n    value:\n    - '0'\n\n"
  },
  {
    "path": "tests/static/state_tests/stCreateTest/CREATE_ContractSSTOREDuringInitFiller.json",
    "content": "{\n    \"CREATE_ContractSSTOREDuringInit\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"storage\": {\n                          \"0x00\": \"0xff\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"100000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"// data\" : \"{ (SSTORE 0 0xff) }\",\n            \"data\" : [\n                \":raw 0x60ff600055\"\n            ],\n            \"gasLimit\" : [\n                \"150000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreateTest/CREATE_EContractCreateEContractInInit_TrFiller.json",
    "content": "{\n    \"CREATE_EContractCreateEContractInInit_Tr\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"storage\" : {\n    \t\t\t            \"0x01\" : \"0x0c\"\n\t\t                }\n\t\t            },\n\t\t            \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n    \t\t\t        \"nonce\" : \"0x02\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n        \t\t\"// code\" : \"This indicates that a call from transaction was initiated\",\n                \"code\" : \"{[[1]]12}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n    \t    \"// data\" : \"{(CALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) (CREATE 0 0 32) }\",\n            \"data\" : [\n                \":raw 0x6000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f150602060006000f0\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreateTest/CREATE_EContractCreateNEContractInInitOOG_TrFiller.json",
    "content": "{\n    \"CREATE_EContractCreateNEContractInInitOOG_Tr\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t        {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x0c\"\n\t\t                }\n\t\t            },\n\t\t            \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n    \t\t\t        \"nonce\" : \"0x02\"\n\t\t            },\n\t\t            \"a42676447b7cedfa5fde894d1d3df24aab362701\" : {            \n\t\t                \"shouldnotexist\" : \"1\"\n\t\t            }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x00\"\n\t\t                }\n\t\t            },\n\t\t            \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n    \t\t\t        \"shouldnotexist\" : \"1\"\n\t\t            },\n\t\t            \"a42676447b7cedfa5fde894d1d3df24aab362701\" : {            \n\t\t                \"shouldnotexist\" : \"1\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n        \t\t\"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n        \t\t\"// code\" : \"This indicates that a call from transaction was initiated\",\n                \"code\" : \"{[[1]]12}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n    \t    \"// data\" : \"{(CALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) (MSTORE 0 0x64600c6000556000526005601bf3) (CREATE 0 18 14)}\",\n            \"data\" : [\n                \":raw 0x6000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f1506d64600c6000556000526005601bf3600052600e60126000f0\"\n            ],\n            \"gasLimit\" : [\n                \"160000\", \"60000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreateTest/CREATE_EContractCreateNEContractInInit_TrFiller.json",
    "content": "{\n    \"CREATE_EContractCreateNEContractInInit_Tr\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t        {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"storage\" : {\n    \t\t\t            \"0x01\" : \"0x0c\"\n\t\t                }\n\t\t            },\n\t\t            \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n    \t\t\t        \"nonce\" : \"0x02\"\n\t\t            },\n\t\t            \"64e2ebd6405af8cb348aec519084d3fff42ebba6\" : {            \n\t\t                \"code\" : \"0x600c600055\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n        \t\t\"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n        \t\t\"// code\" : \"This indicates that a call from transaction was initiated\",\n                \"code\" : \"{[[1]]12}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n    \t    \"// data\" : \"{(CALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) (MSTORE 0 0x64600c6000556000526005601bf3) (CREATE 0 18 14)}\",\n            \"data\" : [\n                \":raw 0x6000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f1506d64600c6000556000526005601bf3600052600e60126000f0\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreateTest/CREATE_EContract_ThenCALLToNonExistentAccFiller.json",
    "content": "{\n    \"CREATE_EContract_ThenCALLToNonExistentAcc\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x08d5b6\",\n\t\t                    \"0x01\" : \"0xf1ecf98489fa9ed60a664fc4998db699cfa39d40\",\n                            \"//comment\" : \"CREATE price changed in Shanghai\",\n\t\t                    \"0x02\" : \"0x07abf8\",\n\t\t                    \"0x03\" : \"0x01\",\n\t\t                    \"0x64\" : \"0x06f50b\"\n\t\t                }\n\t\t            },\n\t\t            \"f1ecf98489fa9ed60a664fc4998db699cfa39d40\" : {\n    \t\t\t        \"nonce\" : \"1\"\n\t\t            },\n\t\t            \"e1ecf98489fa9ed60a664fc4998db699cfa39d40\" : {\n    \t\t\t        \"shouldnotexist\" : \"1\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [[0]](GAS) [[1]] (CREATE 0 0 32) [[2]](GAS) [[3]] (CALL 60000 0xe1ecf98489fa9ed60a664fc4998db699cfa39d40 0 0 0 0 0) [[100]] (GAS) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreateTest/CREATE_EmptyContractAndCallIt_0weiFiller.json",
    "content": "{\n    \"CREATE_EmptyContractAndCallIt_0wei\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"storage\" : {\n    \t\t\t            \"0x00\" : \"0x08d5b6\",\n\t\t                    \"0x01\" : \"0xf1ecf98489fa9ed60a664fc4998db699cfa39d40\",\n\t\t                    \"0x02\" : \"0x07abf8\",\n\t\t                    \"0x03\" : \"0x01\",\n\t\t                    \"0x64\" : \"0x06fe6b\"\n\t\t                }\n\t\t            },\n\t\t            \"f1ecf98489fa9ed60a664fc4998db699cfa39d40\" : {\n    \t\t\t        \"nonce\" : \"1\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n\t\t\"nonce\" : \"0\",\n\t\t\"code\" : \"{ [[0]](GAS) [[1]] (CREATE 0 0 32) [[2]](GAS) [[3]] (CALL 60000 (SLOAD 1) 0 0 0 0 0) [[100]] (GAS) }\",\n\t\t\"storage\": {\n\t\t}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreateTest/CREATE_EmptyContractAndCallIt_1weiFiller.json",
    "content": "{\n    \"CREATE_EmptyContractAndCallIt_1wei\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"storage\" : {\n    \t\t\t            \"0x00\" : \"0x08d5b6\",\n\t\t                    \"0x01\" : \"0xf1ecf98489fa9ed60a664fc4998db699cfa39d40\",\n\t\t                    \"0x02\" : \"0x07abf8\",\n\t\t                    \"0x03\" : \"0x01\",\n\t\t                    \"0x64\" : \"0x06e43f\"\n\t\t                }\n\t\t            },\n\t\t            \"f1ecf98489fa9ed60a664fc4998db699cfa39d40\" : {\n\t\t                \"balance\" : \"0x01\",\n    \t\t\t        \"nonce\" : \"0x01\"\n\t\t             }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1\",\n\t\t\"nonce\" : \"0\",\n\t\t\"code\" : \"{ [[0]](GAS) [[1]] (CREATE 0 0 32) [[2]](GAS) [[3]](CALL 60000 (SLOAD 1) 1 0 0 0 0) [[100]] (GAS) }\",\n\t\t\"storage\": {\n\t\t}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreateTest/CREATE_EmptyContractFiller.json",
    "content": "{\n    \"CREATE_EmptyContract\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"f1ecf98489fa9ed60a664fc4998db699cfa39d40\" : {\n    \t\t\t        \"nonce\" : \"1\"\n\t\t            },\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t            \"storage\" : {\n\t\t\t                \"0x00\" : \"0x08d5b6\",\n\t\t\t                \"0x01\" : \"0xf1ecf98489fa9ed60a664fc4998db699cfa39d40\",\n                            \"//comment\" : \"CREATE price changed in Shanghai\",\n                            \"//comment\" : \"Due to eip-3860 (https://eips.ethereum.org/EIPS/eip-3860) pay extra 2 gas for each 32 bytes of initcode\",\n\t\t\t                \"0x64\" : \"0x07abf8\"\n\t\t\t            }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [[0]](GAS) [[1]] (CREATE 0 0 32) [[100]] (GAS) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreateTest/CREATE_EmptyContractWithBalanceFiller.json",
    "content": "{\n    \"CREATE_EmptyContractWithBalance\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x08d5b6\",\n\t\t                    \"0x01\" : \"0xf1ecf98489fa9ed60a664fc4998db699cfa39d40\",\n\t\t                    \"0x64\" : \"0x07abf8\"\n\t\t                }\n\t\t            },\n\t\t            \"f1ecf98489fa9ed60a664fc4998db699cfa39d40\" : {\n\t\t                \"balance\" : \"0x01\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1\",\n\t\t\"nonce\" : \"0\",\n\t\t\"code\" : \"{ [[0]](GAS) [[1]] (CREATE 1 0 32) [[100]] (GAS) }\",\n\t\t\"storage\": {\n\t\t}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreateTest/CREATE_EmptyContractWithStorageAndCallIt_0weiFiller.json",
    "content": "{\n    \"CREATE_EmptyContractWithStorageAndCallIt_0wei\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x08d5b6\",\n\t\t                    \"0x01\" : \"0xf1ecf98489fa9ed60a664fc4998db699cfa39d40\",\n\t\t                    \"0x02\" : \"0x06f4f0\",\n\t\t                    \"0x03\" : \"0x01\",\n\t\t                    \"0x64\" : \"0x064763\"\n\t\t                }\n\t\t            },\n\t\t            \"f1ecf98489fa9ed60a664fc4998db699cfa39d40\" : {\n\t\t                \"nonce\" : \"1\"\n\t\t            },\n\t\t            \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"storage\" : {\n    \t\t\t           \"0x01\" : \"0x0c\"\n    \t\t\t        }\n           \t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n\t\t\"nonce\" : \"0\",\n\t\t\"// code\" : \"{ [[0]]12 (CALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0)}\",\n\t\t\"code\" : \"{ [[0]](GAS) (MSTORE 0 0x600c6000556000600060006000600073c94f5374fce5edbc8e2a8697c1533167) (MSTORE 32 0x7e6ebf0b61ea60f1000000000000000000000000000000000000000000000000) [[1]] (CREATE 0 0 64) [[2]] (GAS) [[3]] (CALL 60000 (SLOAD 1) 0 0 0 0 0) [[100]] (GAS) }\",\n\t\t\"storage\": {\n\t\t}\n            },\n\t    \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n\t\t\"code\" : \"{[[1]]12}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreateTest/CREATE_EmptyContractWithStorageAndCallIt_1weiFiller.json",
    "content": "{\n    \"CREATE_EmptyContractWithStorageAndCallIt_1wei\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x08d5b6\",\n\t\t                    \"0x01\" : \"0xf1ecf98489fa9ed60a664fc4998db699cfa39d40\",\n\t\t                    \"0x02\" : \"0x06f4f0\",\n\t\t                    \"0x03\" : \"0x01\",\n\t\t                    \"0x64\" : \"0x062d37\"\n\t\t                }\n\t\t            },\n\t\t            \"f1ecf98489fa9ed60a664fc4998db699cfa39d40\" : {\n    \t\t\t        \"balance\" : \"0x01\",\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x0c\"\n\t\t                }\n\t\t            },\n\t\t            \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"storage\" : {\n    \t\t\t           \"0x01\" : \"0x0c\"\n    \t\t\t        }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1\",\n\t\t\"nonce\" : \"0\",\n\t\t\"// code\" : \"{ [[0]]12 (CALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0)}\",\n\t\t\"code\" : \"{ [[0]](GAS) (MSTORE 0 0x600c6000556000600060006000600073c94f5374fce5edbc8e2a8697c1533167) (MSTORE 32 0x7e6ebf0b61ea60f1000000000000000000000000000000000000000000000000) [[1]] (CREATE 0 0 64) [[2]] (GAS) [[3]] (CALL 60000 (SLOAD 1) 1 0 0 0 0) [[100]] (GAS) }\",\n\t\t\"storage\": {\n\t\t}\n            },\n\t    \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n\t\t\"code\" : \"{[[1]]12}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreateTest/CREATE_EmptyContractWithStorageFiller.json",
    "content": "{\n    \"CREATE_EmptyContractWithStorage\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x08d5b6\",\n\t\t                    \"0x01\" : \"0xf1ecf98489fa9ed60a664fc4998db699cfa39d40\",\n\t\t                    \"0x64\" : \"0x06f4f0\"\n\t\t                }\n\t\t            },\n\t\t            \"f1ecf98489fa9ed60a664fc4998db699cfa39d40\" : {\n\t\t                \"nonce\" : \"1\"\n\t\t            },\n\t\t            \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n    \t\t\t        \"storage\" : {\n    \t\t\t            \"0x01\" : \"0x0c\"\n    \t\t\t        }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n\t\t\"nonce\" : \"0\",\n\t\t\"// code\" : \"{ [[0]]12 (CALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0)}\",\n\t\t\"code\" : \"{ [[0]](GAS) (MSTORE 0 0x600c6000556000600060006000600073c94f5374fce5edbc8e2a8697c1533167) (MSTORE 32 0x7e6ebf0b61ea60f1000000000000000000000000000000000000000000000000) [[1]] (CREATE 0 0 64) [[100]] (GAS) }\",\n\t\t\"storage\": {\n\t\t}\n            },\n\t    \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n\t\t\"code\" : \"{[[1]]12}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreateTest/CREATE_HighNonceFiller.yml",
    "content": "# The test calls CREATE from an account with max allowed nonce.\nCREATE_HighNonce:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x020000'\n    currentGasLimit: '89128960'\n    currentBaseFee: '10'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n\n  pre:\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: 1000000000\n      code: ''\n      nonce: 0\n      storage: {}\n    b94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: 0\n      # use byzantium here because solc introduces SHL which is not supported on first evm revisions\n      code: |\n        :yul byzantium\n        {\n          // initcode: { return(0, 1) }\n          mstore(0, 0x60016000f3000000000000000000000000000000000000000000000000000000)\n          sstore(0, create(0, 0, 5))\n          sstore(1, 1)\n\n          let noOptimization := msize()\n        }\n      nonce: '0xffffffffffffffff'\n      storage: {}\n\n  transaction:\n    data: \n      - ''\n    gasLimit:\n      - 16777216\n    gasPrice: 10\n    nonce: 0\n    secretKey: 45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\n    to: 'b94f5374fce5edbc8e2a8697c15331677e6ebf0b'\n    value:\n    - 0\n\n  expect:\n    - indexes:\n       data: !!int -1\n       gas: !!int -1\n       value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n       a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 1\n       b94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: '0xffffffffffffffff'\n          storage:\n            '0': 0\n            '1': 1\n       04e9a8460199e670ffb592f93a2f74bdcb44b0bd:\n          'shouldnotexist': '1'\n"
  },
  {
    "path": "tests/static/state_tests/stCreateTest/CREATE_HighNonceMinus1Filler.yml",
    "content": "# The test calls CREATE from an account with max allowed nonce - 1, nonce gets maximum value as a result.\nCREATE_HighNonceMinus1:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x020000'\n    currentGasLimit: '89128960'\n    currentBaseFee: '10'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n\n  pre:\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: 1000000000\n      code: ''\n      nonce: 0\n      storage: {}\n    b94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: 0\n      # use byzantium here because solc introduces SHL which is not supported on first evm revisions\n      code: |\n        :yul byzantium\n        {\n          // initcode: { return(0, 1) }\n          mstore(0, 0x60016000f3000000000000000000000000000000000000000000000000000000)\n          sstore(0, create(0, 0, 5))\n          sstore(1, 1)\n\n          let noOptimization := msize()\n        }\n      nonce: '0xfffffffffffffffe'\n      storage: {}\n\n  transaction:\n    data: \n      - ''\n    gasLimit:\n      - 16777216\n    gasPrice: 10\n    nonce: 0\n    secretKey: 45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\n    to: 'b94f5374fce5edbc8e2a8697c15331677e6ebf0b'\n    value:\n    - 0\n\n  expect:\n    - indexes:\n       data: !!int -1\n       gas: !!int -1\n       value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n       a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 1\n       b94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: '0xffffffffffffffff'\n          storage:\n            '0': '0xd061b08a84ebc70fe797f9bd62f4269ef8274a13'\n            '1': 1\n       d061b08a84ebc70fe797f9bd62f4269ef8274a13:\n          code: '0x00'\n"
  },
  {
    "path": "tests/static/state_tests/stCreateTest/CREATE_empty000CreateinInitCode_TransactionFiller.json",
    "content": "{\n    \"CREATE_empty000CreateinInitCode_Transaction\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t        {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"storage\" : {\n    \t\t\t            \"0x01\" : \"0x0c\"\n\t\t                }\n\t\t            },\n\t\t            \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n    \t\t\t        \"nonce\" : \"0x02\"\n\t\t            },\n\t\t            \"a42676447b7cedfa5fde894d1d3df24aab362701\" : {            \n\t\t                \"shouldnotexist\" : \"1\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n        \t\t\"// code\" : \"This indicates that a call from transaction was initiated\",\n                \"code\" : \"{[[1]]12}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n    \t    \"// data\" : \"{(CALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) (CREATE 0 0 0) }\",\n            \"data\" : [\n                \":raw 0x6000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f150600060006000f0\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreateTest/CodeInConstructorFiller.yml",
    "content": "CodeInConstructor:\n\n  env:\n    currentCoinbase: ba5e0000ba5e0000ba5e0000ba5e0000ba5e0000\n    currentDifficulty: '0x20000'\n    currentGasLimit: 0x100000000\n    currentNumber: \"1\"\n    currentTimestamp: \"1000\"\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n\n  pre:\n\n    # Record information\n    000000000000000000000000000000000000da7a:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code:   | \n        {\n            (def 'counterLoc 0)\n            (def 'counterVal @@counterLoc)\n            [[counterVal]] $0\n            [[counterLoc]] (+ counterVal 1)\n        }\n      nonce: 0\n      storage:\n        0: 1\n\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code:   | \n        {\n          ; Variables are 0x20 bytes (= 256 bits) apart, except for\n          ; code buffers that get 0x100 (256 bytes)\n          (def 'constructorCode   0x000)\n          (def 'contractCode      0x100)\n          (def 'contractLength    0x200)\n          (def 'constructorLength 0x220)\n          (def 'addr              0x240)\n          (def 'dataLoc           0x260)\n          ; The type of CREATE to use\n          (def 'createType        $ 4)\n          ; Other constants\n          (def 'NOP 0)   ; No OPeration\n          ; Send data to 0x00da7a\n          (def 'sendData (data) {\n             [dataLoc] data\n             (call 0xFFFFFF 0xda7a 0 dataLoc 0x20 0 0)\n          })\n          ; Buffer length (use for constructor and contract)\n          (def 'bufLength     0x100)\n          ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n          ; Create the contract and a constructor to pass to CREATE[2]\n          ;\n          ; \n          [contractLength] \n            (lll\n              (sstore 0 0xFF)\n              contractCode\n            )\n          [constructorLength] \n            (lll {\n                   ; copy the contract from code to memory\n                   (codecopy contractCode contractCode bufLength)\n                   ; Send the data to 0x00da7a so we'll be able to\n                   ; check it in the expect: section\n                   ; [[2]] PC\n                   ; [[3]] address of new contract\n                   ; [[4]] codesize\n                   ; [[5]] extcodeize\n                   ; [[6]] first word from codecopy\n                   ; [[7]] first word from extcodecopy\n                   ; [[8]] PC\n                   (sendData (pc))\n                   (sendData (address))\n                   (sendData (codesize))\n                   (sendData (extcodesize (address)))\n                   (codecopy 0x100 0 0x20)\n                   (sendData @0x100)\n                   (extcodecopy (address) 0x100 0 0x20)\n                   (sendData @0x100)\n                   (sendData (pc))\n                   ; Return actual code\n                   (return contractCode (- (codesize) bufLength))\n                 } \n                 constructorCode            \n            )   \n          ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n          ; Actually create the contract\n          ;\n          ; The buffer size lets us send the contract code as part of the\n          ; constructor code\n          [addr] (if (= createType 1)\n             (create 0 constructorCode (+ bufLength @contractLength))\n             (create2 0 constructorCode (+ bufLength @contractLength) 0x5a17)\n                 )\n        }\n      nonce: '0'\n      storage: {}\n\n\n    # User account\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n  transaction:\n    data:\n    # Parameters:\n    # createType   1 - CREATE     2 - CREATE2\n    - :abi fun(uint) 1\n    - :abi fun(uint) 2\n    gasLimit:\n    - 0x900000\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n    value:\n    - 0\n\n  expect:\n\n    # CREATE\n    - indexes:\n        data: !!int 0\n        gas:  !!int 0\n        value: !!int 0\n      network:\n        - '>=Cancun'\n      result:\n        000000000000000000000000000000000000da7a:\n          storage:\n            0: 8\n\n            # PC before sending data\n            1: 0x0A\n\n            # ADDRESS of new contract\n            2: 0x8af6a7af30d840ba137e8f3f34d54cfb8beba6e2\n\n            # CODESIZE, size of constructor\n            3: 0x106\n\n            # EXTCODESIZE, zero\n            4: 0\n\n            # CODECOPY, gives constructor code (in this case, first word)\n            5: 0x610100610100610100395861026052600060006020610260600061da7a62ffff\n\n            # EXTCODECOPY, gives zero\n            6: 0\n\n            # PC after sending data\n            7: 0xB8\n\n\n\n    # CREATE2\n    - indexes:\n        data: !!int 1\n        gas:  !!int 0\n        value: !!int 0\n      network:\n        - '>=Cancun'\n      result:\n        000000000000000000000000000000000000da7a:\n          storage:\n            0: 8\n\n            # PC before sending data\n            1: 0x0A\n\n            # ADDRESS of new contract\n            2: 0x33c409678a4289f0184c95c627ba09da2daeaa46\n\n            # CODESIZE, size of constructor\n            3: 0x106\n\n            # EXTCODESIZE, zero\n            4: 0\n\n            # CODECOPY, gives constructor code (in this case, first word)\n            5: 0x610100610100610100395861026052600060006020610260600061da7a62ffff\n\n            # EXTCODECOPY, gives zero\n            6: 0\n\n            # PC after sending data\n            7: 0xB8\n\n"
  },
  {
    "path": "tests/static/state_tests/stCreateTest/CreateAddressWarmAfterFailFiller.yml",
    "content": "CreateAddressWarmAfterFail:\n  _info:\n    comment: |\n      Invokes failing CREATE (because initcode fails) and checks\n      if the create address is considered warm in the follow up call as required by EIP-2929.\n      Addresses taken from https://toolkit.abdk.consulting/ethereum#contract-address\n   \n      Written primarily by Paweł Bylica (@chfast). Somewhat modified by Ori (@qbzzt)\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 1\n    currentGasLimit: 3000000000\n    currentNumber: 1\n    currentTimestamp: 999\n\n  pre:\n    # Tx sender\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      nonce: 0\n      balance: 1000000000001\n      storage: {}\n      code: ''\n\n    00000000000000000000000000000000000c0deC:\n      nonce: 0\n      # Need extra gas to be able to send some to the \"random\" address\n      # And to send to the created address twice\n      balance: 0x1000\n      storage: {}\n      code: |\n        :yul london\n          object \"C\" {\n            code {\n              let failType := calldataload(4)\n              let initcode_size \n\n              // The return values of various actions. Done twice to see if there is a difference\n              let create_1 := 0\n              let call_created_1 := 2\n              let call_created_2 := 3\n              let call_empty_1 := 4\n              let call_empty_2 := 5\n\n              // The costs of those operations\n              let create_1_cost := 10\n              let call_created_1_cost := 12\n              let call_created_2_cost := 13\n              let call_empty_1_cost := 14\n              let call_empty_2_cost := 15\n\n              // Make the storage cells we use here are warm\n              sstore(create_1, 0xdead60A7)\n              sstore(call_created_1, 0xdead60A7)\n              sstore(call_created_2, 0xdead60A7)\n              sstore(call_empty_1, 0xdead60A7)\n              sstore(call_empty_2, 0xdead60A7)\n              sstore(call_created_1_cost, 0xdead60A7)\n              sstore(call_created_2_cost, 0xdead60A7)\n              sstore(call_empty_1_cost, 0xdead60A7)\n              sstore(call_empty_2_cost, 0xdead60A7)\n\n              let addrEmpty := 0xd4e7ae083132925a4927c1f5816238ba17b82a00\n\n              // The address where the contract should have been created had things worked out\n              // Can be calculated at https://toolkit.abdk.consulting/ethereum#contract-address\n              let addrCreated \n\n              switch failType\n              case 0 {    // REVERT inside the constructor\n                addrCreated := 0xd4e7ae083132925a4927c1f5816238ba17b82a65\n                initcode_size := datasize(\"revert-constructor\")\n                datacopy(0, dataoffset(\"revert-constructor\"), initcode_size)\n                sstore(create_1, create(0, 0, initcode_size))\n              }\n              case 10 {    // REVERT inside the constructor, CREATE2\n                addrCreated := 0x43255eE039968E0254887FC8c7172736983d878C\n                //initcode_size := datasize(\"revert-constructor\")\n                //datacopy(0, dataoffset(\"revert-constructor\"), initcode_size)\n\n                // comment protection from solc version changing the bytes\n                initcode_size := 5\n                mstore(0, 0x60006000fd000000000000000000000000000000000000000000000000000000)\n                sstore(create_1, create2(0, 0, initcode_size, 0))\n              }\n              case 1 {    // Constructor returns 0x6001 bytes, >max contract size\n                addrCreated := 0xd4e7ae083132925a4927c1f5816238ba17b82a65\n                initcode_size := datasize(\"code-too-big\")\n                datacopy(0, dataoffset(\"code-too-big\"), initcode_size)\n                sstore(create_1, create(0, 0, initcode_size))\n              }\n              case 11 {    // Constructor returns 0x6001 bytes, >max contract size\n                addrCreated := 0x014001fDbeDE82315F4B8C2a7D45E980A8a4A12e\n                initcode_size := datasize(\"code-too-big\")\n                datacopy(0, dataoffset(\"code-too-big\"), initcode_size)\n                sstore(create_1, create2(0, 0, initcode_size, 0))\n              }\n              case 2 {    // Invalid opcode in constructor\n                addrCreated := 0xd4e7ae083132925a4927c1f5816238ba17b82a65\n                initcode_size := datasize(\"invalid\")\n                datacopy(0, dataoffset(\"invalid\"), initcode_size)\n                sstore(create_1, create(0, 0, initcode_size))\n\n              }\n              case 12 {    // Invalid opcode in constructor\n                addrCreated := 0xA13d43586820E5D97a3Fd1960625d537c86DC4E7\n                //initcode_size := datasize(\"invalid\")\n                //datacopy(0, dataoffset(\"invalid\"), initcode_size)\n                //sstore(create_1, create2(0, 0, initcode_size, 0))\n\n                // comment protection from solc version changing the bytes\n                initcode_size := 6\n                mstore(0, 0xfe60106000f30000000000000000000000000000000000000000000000000000)\n                sstore(create_1, create2(0, 0, initcode_size, 0))\n              }\n              case 3 {    // Out of gas (due to constructor returning a huge contract) \n                          // We need it to be a called contract\n                          // so the transaction will be overall successful\n                addrCreated := 0xa5a6a95fd9554f15ab6986a57519092be2095125\n                          // gas amount calculated to cause the CREATE to fail\n                sstore(create_1, call(0x7000, 0xC0DE1006, 0, 0, 0, 0, 0))\n              }\n              case 4 {    // OOG after the CREATE\n                          // We need it to be a called contract\n                          // so the transaction will be overall successful\n                addrCreated := 0xa5a6a95fd9554f15ab6986a57519092be2095125\n                          // gas amount calculated to cause failure after the CREATE\n                sstore(create_1, call(0x10000, 0xC0DE1006, 0, 0, 0, 0, 0))\n              }\n              case 5 {    // Nonce too high to create another contract\n                addrCreated := 0xB2050fc27aB6d6D42dc0CE6f7C0BF9481a4c3Fc3\n                sstore(create_1, call(0x10000, 0xC0DEFFFF, 0, 0, 0, 0, 0))\n              }\n              case 13 {    // Out of gas (due to constructor returning a huge contract) \n                          // We need it to be a called contract\n                          // so the transaction will be overall successful\n                addrCreated := 0xd70dF326038a3c7cA8FAc785a99162BFe75CCc46\n                          // gas amount calculated to cause the CREATE to fail\n                sstore(create_1, call(0x7000, 0x20C0DE1006, 0, 0, 0, 0, 0))\n              }\n              case 14 {    // OOG after the CREATE2\n                           // We need it to be a called contract\n                           // so the transaction will be overall successful\n                addrCreated := 0xd70dF326038a3c7cA8FAc785a99162BFe75CCc46\n                          // gas amount calculated to cause failure after the CREATE\n                sstore(create_1, call(0x10000, 0x20C0DE1006, 0, 0, 0, 0, 0))\n              }\n              case 6 {    // Creating a contract that starts with 0xEF, which is not allowed EIP-3541\n                addrCreated := 0xd4e7ae083132925a4927c1f5816238ba17b82a65\n                initcode_size := datasize(\"start-ef\")\n                datacopy(0, dataoffset(\"start-ef\"), initcode_size)\n                sstore(create_1, create(0, 0, initcode_size))\n              }\n              case 16 {    // Create2 a contract that starts with 0xEF, which is not allowed EIP-3541\n                addrCreated := 0x562D97e3E4d6d3C6e791EA64bB73d820871Aa219\n                initcode_size := datasize(\"start-ef\")\n                datacopy(0, dataoffset(\"start-ef\"), initcode_size)\n                sstore(create_1, create2(0, 0, initcode_size, 0))\n\n              }\n              case 7 {   // Successful create.\n                addrCreated := 0xd4e7ae083132925a4927c1f5816238ba17b82a65\n                initcode_size := datasize(\"success\")\n                datacopy(0, dataoffset(\"success\"), initcode_size)\n                sstore(create_1, create(0, 0, initcode_size))\n              }\n\n              case 17 {  // Successfully CREATE2\n                addrCreated := 0xf7fef4b66b1570a057d7d5cec5c58846befa5b5c\n                initcode_size := datasize(\"success\")\n                datacopy(0, dataoffset(\"success\"), initcode_size)\n                sstore(create_1, create2(0, 0, initcode_size, 0x5A17))\n              }\n\n\n              default { revert(0,0) }   // Not supposed to ever happen\n      \n\n              // Call the create address and measure the gas cost\n              sstore(call_created_1_cost, gas())\n              sstore(call_created_1, call(0, addrCreated, callvalue(), 0, 0, 0, 0))\n              sstore(call_created_1_cost, sub(sload(call_created_1_cost), gas()))\n\n              // Call the create address a second time and measure the gas cost\n              sstore(call_created_2_cost, gas())\n              sstore(call_created_2, call(0, addrCreated, callvalue(), 0, 0, 0, 0))\n              sstore(call_created_2_cost, sub(sload(call_created_2_cost), gas()))\n\n              // Call a empty (cold) address and measure the gas cost\n              sstore(call_empty_1_cost, gas())\n              sstore(call_empty_1, call(0, addrEmpty, callvalue(), 0, 0, 0, 0))\n              sstore(call_empty_1_cost, sub(sload(call_empty_1_cost), gas()))\n\n              // Call the same address again\n              sstore(call_empty_2_cost, gas())\n              sstore(call_empty_2, call(0, addrEmpty, callvalue(), 0, 0, 0, 0))\n              sstore(call_empty_2_cost, sub(sload(call_empty_2_cost), gas()))\n\n              // Stop is necessary because otherwise we get into Yul object boundaries\n              stop()\n            }\n            object \"revert-constructor\" {   // Data 0, 10\n              code {\n                 revert(0, 0)\n              }\n            }\n            object \"code-too-big\" {   // Data 1, 11\n              code {\n                 return(0, 0x6001)\n              }\n            }\n            object \"invalid\" {        // Data 2, 12\n              code {\n                 invalid()\n                 return(0, 0x10)\n              }\n            }\n            object \"start-ef\" {        // Data 6, 16\n              code {\n                 mstore8(0, 0xEF)    // Cannot be the first byte as per https://eips.ethereum.org/EIPS/eip-3541\n                 return(0, 0x10)\n              }\n            }\n            object \"success\" {         // Data 7, 17\n              code {\n                return(0, 1)     // A zero, which makes it a STOP when it is called\n              }\n            }\n            object \"no-optimization\" {\n              code {\n                 let noOptimization := msize()\n              }\n            }\n          }\n\n\n\n    # Data 3 - Out of gas through a constructor that returns too much\n    # Data 4 - Out of gas later in the call (past the constructor)\n    00000000000000000000000000000000c0de1006:\n      nonce: 1\n      balance: 0x1000\n      storage: {}\n      code: |\n        :yul berlin\n          object \"C\" {\n            code {\n              datacopy(0, dataoffset(\"dummy\"), datasize(\"dummy\"))\n              sstore(0, create(0, 0, datasize(\"dummy\")))\n              stop()\n            }\n            object \"dummy\" {\n              code {\n                return(0,0x6000)\n            }\n          }\n         }  \n\n\n    # Data 13 - Out of gas through a constructor that returns too much\n    # Data 14 - Out of gas later in the call (past the constructor)\n    00000000000000000000000000000020c0de1006:\n      nonce: 1\n      balance: 0x1000\n      storage: {}\n      code: |\n        :yul berlin\n          object \"C\" {\n            code {\n              datacopy(0, dataoffset(\"dummy\"), datasize(\"dummy\"))\n              sstore(0, create2(0, 0, datasize(\"dummy\"), 0))\n              stop()\n            }\n            object \"dummy\" {\n              code {\n                return(0,0x6000)\n            }\n          }\n         }  \n\n\n\n\n    # Data 5 - Nonce too high to create another contract\n    00000000000000000000000000000000c0deFFFF:\n      nonce: 0xFFFFFFFFFFFFFFFF\n      balance: 0x1000\n      storage: {}\n      code: |\n        :yul berlin\n          object \"C\" {\n            code {\n              datacopy(0, dataoffset(\"dummy\"), datasize(\"dummy\"))\n              sstore(0, create(0, 0, datasize(\"dummy\")))\n              stop()\n            }\n            object \"dummy\" {\n              code {\n                return(0,0x20)\n            }\n          }\n         }  \n  \n  transaction:\n    data:\n      - :label create-contructor-revert  :abi fail(uint) 0   # Revert in the constructor\n      - :label create2-contructor-revert :abi fail(uint) 10  # Revert in the constructor\n      - :label create-code-too-big       :abi fail(uint) 1   # Code too big\n      - :label create2-code-too-big      :abi fail(uint) 11  # Code too big\n      - :label create-invalid-opcode     :abi fail(uint) 2   # Constructor has invalid opcode\n      - :label create2-invalid-opcode    :abi fail(uint) 12  # Constructor has invalid opcode\n      - :label create-oog-constructor    :abi fail(uint) 3   # Constructor OOG because it returns the max contract size\n      - :label create-oog-post-constr    :abi fail(uint) 4   # OOG after the constructor\n      - :label create2-oog-constructor   :abi fail(uint) 13  # Constructor OOG because it returns the max contract size\n      - :label create2-oog-post-constr   :abi fail(uint) 14  # OOG after the constructor\n      - :label create-high-nonce         :abi fail(uint) 5   # Nonce too high to create an account\n      - :label create-0xef               :abi fail(uint) 6   # Contract starts with 0xEF, which is not allowed\n      - :label create2-0xef              :abi fail(uint) 16  # Contract starts with 0xEF, which is not allowed\n      - :label create-ok                 :abi fail(uint) 7   # Successfully create the account\n      - :label create2-ok                :abi fail(uint) 17  # Successfully create2 the account\n    gasLimit:\n      - 16777216\n    gasPrice: 10\n    nonce: 0\n    to: \"00000000000000000000000000000000000c0deC\"\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n    value:\n      - 0\n      - 1\n\n  expect:\n\n    # CREATE executed directly by c0deC (and fails)\n    - indexes:\n        data: \n          - :label create-contructor-revert\n          - :label create-code-too-big\n          - :label create-invalid-opcode\n          - :label create-0xef\n        gas: !!int -1\n        value:\n          - !!int 0\n      network:\n        - \">=Cancun\"\n      result:\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 1\n        00000000000000000000000000000000000c0deC:\n          nonce: 1    # Create failed, but nonce is bumped.\n          storage:\n            0: 0    # Create failed\n            2: 1    # Call to create address successful\n            3: 1    # Call to create address successful\n            4: 1    # Call to random address successful\n            5: 1    # Call to random address successful\n            12:   328    # Gas cost of call to created address (warm address)\n            13:   316    # Gas cost of 2nd call to created address\n            14:  2828    # Gas cost of call to empty (cold) address\n            15:   316    # Gas cost of 2nd call to empty (now warm) address\n\n        d4e7ae083132925a4927c1f5816238ba17b82a65: # Create address\n          shouldnotexist: true\n\n\n\n    # CREATE executed directly by c0deC (and fails)\n    - indexes:\n        data: \n          - :label create-contructor-revert\n          - :label create-code-too-big\n          - :label create-invalid-opcode\n          - :label create-0xef\n        value:\n          - !!int 1\n      network:\n        - \">=Cancun\"\n      result:\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 1\n\n        00000000000000000000000000000000000c0deC:\n          nonce: 1    # Create failed, but nonce is bumped.\n          storage:\n            0: 0    # Create failed\n            2: 1    # Call to create address successful\n            3: 1    # Call to create address successful\n            4: 1    # Call to random address successful\n            5: 1    # Call to random address successful\n            # The first call is expensive because when sending eth to an empty address it has to be\n            # created, which is an extra cost\n            12: 32028    # Gas cost of call to created address (warm address)\n            13:  7016    # Gas cost of 2nd call to created address, much cheaper because \n            14: 34528    # Gas cost of call to empty random (cold) address\n            15:  7016    # Gas cost of second call to (now warm) address\n\n\n        # Create address, filled when ETH is sent to it\n        d4e7ae083132925a4927c1f5816238ba17b82a65:\n          nonce: 0\n          balance: 2   # Funded with two calls after failed create.\n          code: \"\"     # No code\n\n\n        # Empty address, filled when ETH is sent to it\n        d4e7ae083132925a4927c1f5816238ba17b82a00:\n          nonce: 0\n          balance: 2   # Funded with two calls\n          code: \"\"     # No code\n\n\n\n\n\n    # CREATE2 executed directly by c0deC (and fails because of REVERT)\n    - indexes:\n        data: \n          - :label create2-contructor-revert\n        gas: !!int -1\n        value:\n          - !!int 0\n      network:\n        - \">=Cancun\"\n      result:\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 1\n        00000000000000000000000000000000000c0deC:\n          nonce: 1    # Create failed, but nonce is bumped.\n          storage:\n            0: 0    # Create failed\n            2: 1    # Call to create address successful\n            3: 1    # Call to create address successful\n            4: 1    # Call to random address successful\n            5: 1    # Call to random address successful\n            12:   328    # Gas cost of call to created address (warm address)\n            13:   316    # Gas cost of 2nd call to created address\n            14:  2828    # Gas cost of call to empty (cold) address\n            15:   316    # Gas cost of 2nd call to empty (now warm) address\n\n        d4e7ae083132925a4927c1f5816238ba17b82a65: # Create address\n          shouldnotexist: true\n\n    # CREATE2 executed directly by c0deC (and fails because of REVERT)\n    - indexes:\n        data: \n          - :label create2-contructor-revert\n        value:\n          - !!int 1\n      network:\n        - \">=Cancun\"\n      result:\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 1\n\n        00000000000000000000000000000000000c0deC:\n          nonce: 1    # Create failed, but nonce is bumped.\n          storage:\n            0: 0    # Create failed\n            2: 1    # Call to create address successful\n            3: 1    # Call to create address successful\n            4: 1    # Call to random address successful\n            5: 1    # Call to random address successful\n            # The first call is expensive because when sending eth to an empty address it has to be\n            # created, which is an extra cost\n            12: 32028    # Gas cost of call to created address (warm address)\n            13:  7016    # Gas cost of 2nd call to created address, much cheaper because \n            14: 34528    # Gas cost of call to empty random (cold) address\n            15:  7016    # Gas cost of second call to (now warm) address\n\n\n        # Create address, filled when ETH is sent to it\n        43255eE039968E0254887FC8c7172736983d878C:\n          nonce: 0\n          balance: 2   # Funded with two calls after failed create.\n          code: \"\"     # No code\n\n\n        # Empty address, filled when ETH is sent to it\n        d4e7ae083132925a4927c1f5816238ba17b82a00:\n          nonce: 0\n          balance: 2   # Funded with two calls\n          code: \"\"     # No code\n\n\n\n\n\n    # CREATE2 executed directly by c0deC (and fails because the code starts with 0xEF)\n    - indexes:\n        data: \n          - :label create2-0xef\n        gas: !!int -1\n        value:\n          - !!int 0\n      network:\n        - \">=Cancun\"\n      result:\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 1\n        00000000000000000000000000000000000c0deC:\n          nonce: 1    # Create failed, but nonce is bumped.\n          storage:\n            0: 0    # Create failed\n            2: 1    # Call to create address successful\n            3: 1    # Call to create address successful\n            4: 1    # Call to random address successful\n            5: 1    # Call to random address successful\n            12:   328    # Gas cost of call to created address (warm address)\n            13:   316    # Gas cost of 2nd call to created address\n            14:  2828    # Gas cost of call to empty (cold) address\n            15:   316    # Gas cost of 2nd call to empty (now warm) address\n\n        562D97e3E4d6d3C6e791EA64bB73d820871Aa219: # Create address\n          shouldnotexist: true\n\n    # CREATE2 executed directly by c0deC (and fails because the code starts with 0xef)\n    - indexes:\n        data: \n          - :label create2-0xef\n        value:\n          - !!int 1\n      network:\n        - \">=Cancun\"\n      result:\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 1\n\n        00000000000000000000000000000000000c0deC:\n          nonce: 1    # Create failed, but nonce is bumped.\n          storage:\n            0: 0    # Create failed\n            2: 1    # Call to create address successful\n            3: 1    # Call to create address successful\n            4: 1    # Call to random address successful\n            5: 1    # Call to random address successful\n            # The first call is expensive because when sending eth to an empty address it has to be\n            # created, which is an extra cost\n            12: 32028    # Gas cost of call to created address (warm address)\n            13:  7016    # Gas cost of 2nd call to created address, much cheaper because \n            14: 34528    # Gas cost of call to empty random (cold) address\n            15:  7016    # Gas cost of second call to (now warm) address\n\n\n        # Create address, filled when ETH is sent to it\n        562D97e3E4d6d3C6e791EA64bB73d820871Aa219:\n          nonce: 0\n          balance: 2   # Funded with two calls after failed create.\n          code: \"\"     # No code\n\n\n        # Empty address, filled when ETH is sent to it\n        d4e7ae083132925a4927c1f5816238ba17b82a00:\n          nonce: 0\n          balance: 2   # Funded with two calls\n          code: \"\"     # No code\n\n\n\n\n    # CREATE2 executed directly by c0deC (and fails because code is too big)\n    - indexes:\n        data: \n          - :label create2-code-too-big\n        gas: !!int -1\n        value:\n          - !!int 0\n      network:\n        - \">=Cancun\"\n      result:\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 1\n        00000000000000000000000000000000000c0deC:\n          nonce: 1    # Create failed, but nonce is bumped.\n          storage:\n            0: 0    # Create failed\n            2: 1    # Call to create address successful\n            3: 1    # Call to create address successful\n            4: 1    # Call to random address successful\n            5: 1    # Call to random address successful\n            12:   328    # Gas cost of call to created address (warm address)\n            13:   316    # Gas cost of 2nd call to created address\n            14:  2828    # Gas cost of call to empty (cold) address\n            15:   316    # Gas cost of 2nd call to empty (now warm) address\n\n        014001fDbeDE82315F4B8C2a7D45E980A8a4A12e: # Create address\n          shouldnotexist: true\n\n    # CREATE2 executed directly by c0deC (and fails because the returned code is too big)\n    - indexes:\n        data: \n          - :label create2-code-too-big\n        value:\n          - !!int 1\n      network:\n        - \">=Cancun\"\n      result:\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 1\n\n        00000000000000000000000000000000000c0deC:\n          nonce: 1    # Create failed, but nonce is bumped.\n          storage:\n            0: 0    # Create failed\n            2: 1    # Call to create address successful\n            3: 1    # Call to create address successful\n            4: 1    # Call to random address successful\n            5: 1    # Call to random address successful\n            # The first call is expensive because when sending eth to an empty address it has to be\n            # created, which is an extra cost\n            12: 32028    # Gas cost of call to created address (warm address)\n            13:  7016    # Gas cost of 2nd call to created address, much cheaper because \n            14: 34528    # Gas cost of call to empty random (cold) address\n            15:  7016    # Gas cost of second call to (now warm) address\n\n\n        # Create address, filled when ETH is sent to it\n        014001fDbeDE82315F4B8C2a7D45E980A8a4A12e:\n          nonce: 0\n          balance: 2   # Funded with two calls after failed create.\n          code: \"\"     # No code\n\n\n        # Empty address, filled when ETH is sent to it\n        d4e7ae083132925a4927c1f5816238ba17b82a00:\n          nonce: 0\n          balance: 2   # Funded with two calls\n          code: \"\"     # No code\n\n\n\n\n\n    # CREATE2 executed directly by c0deC (and fails because of invalid opcode)\n    - indexes:\n        data: \n          - :label create2-invalid-opcode\n        gas: !!int -1\n        value:\n          - !!int 0\n      network:\n        - \">=Cancun\"\n      result:\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 1\n        00000000000000000000000000000000000c0deC:\n          nonce: 1    # Create failed, but nonce is bumped.\n          storage:\n            0: 0    # Create failed\n            2: 1    # Call to create address successful\n            3: 1    # Call to create address successful\n            4: 1    # Call to random address successful\n            5: 1    # Call to random address successful\n            12:   328    # Gas cost of call to created address (warm address)\n            13:   316    # Gas cost of 2nd call to created address\n            14:  2828    # Gas cost of call to empty (cold) address\n            15:   316    # Gas cost of 2nd call to empty (now warm) address\n\n        A13d43586820E5D97a3Fd1960625d537c86DC4E7: # Create address\n          shouldnotexist: true\n\n\n\n    # CREATE2 executed directly by c0deC (and fails because of invalid opcode)\n    - indexes:\n        data: \n          - :label create2-invalid-opcode\n        value:\n          - !!int 1\n      network:\n        - \">=Cancun\"\n      result:\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 1\n\n        00000000000000000000000000000000000c0deC:\n          nonce: 1    # Create failed, but nonce is bumped.\n          storage:\n            0: 0    # Create failed\n            2: 1    # Call to create address successful\n            3: 1    # Call to create address successful\n            4: 1    # Call to random address successful\n            5: 1    # Call to random address successful\n            # The first call is expensive because when sending eth to an empty address it has to be\n            # created, which is an extra cost\n            12: 32028    # Gas cost of call to created address (warm address)\n            13:  7016    # Gas cost of 2nd call to created address, much cheaper because \n            14: 34528    # Gas cost of call to empty random (cold) address\n            15:  7016    # Gas cost of second call to (now warm) address\n\n\n        # Create address, filled when ETH is sent to it\n        A13d43586820E5D97a3Fd1960625d537c86DC4E7:\n          nonce: 0\n          balance: 2   # Funded with two calls after failed create.\n          code: \"\"     # No code\n\n\n        # Empty address, filled when ETH is sent to it\n        d4e7ae083132925a4927c1f5816238ba17b82a00:\n          nonce: 0\n          balance: 2   # Funded with two calls\n          code: \"\"     # No code\n\n\n\n\n\n    # Call to a different account to do CREATE, which fails because of the extremely high nonce\n    - indexes:\n        data: \n          - :label create-high-nonce\n        gas: !!int -1\n        value:\n          - !!int 0\n      network:\n        - \">=Cancun\"\n      result:\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 1\n        00000000000000000000000000000000000c0deC:\n          nonce: 0    # No nonce bump\n          storage:\n            0: 1    # Call to creator contract successful\n            2: 1    # Call to create address successful\n            3: 1    # Call to create address successful\n            4: 1    # Call to random address successful\n            5: 1    # Call to random address successful\n            # When the contract that calls CREATE subsequently reverts, the\n            # warming up of the address created also doesn't happen\n            12:  2828    # Gas cost of call to created address (cold address)\n            13:   316    # Gas cost of 2nd call to created address\n            14:  2828    # Gas cost of call to empty (cold) address\n            15:   316    # Gas cost of 2nd call to empty (now warm) address\n\n\n        B2050fc27aB6d6D42dc0CE6f7C0BF9481a4c3Fc3:\n          shouldnotexist: true\n\n        # Empty address\n        d4e7ae083132925a4927c1f5816238ba17b82a00:\n          shouldnotexist: true\n\n\n\n    # Call to a different account to do CREATE, which fails because of the extremely high nonce\n    - indexes:\n        data: \n          - :label create-high-nonce\n        value:\n          - !!int 1\n      network:\n        - \">=Cancun\"\n      result:\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 1\n        00000000000000000000000000000000000c0deC:\n          nonce: 0   # No nonce bump\n          storage:\n            0: 1    # Creator account call is successful\n            2: 1    # Call to create address successful\n            3: 1    # Call to create address successful\n            4: 1    # Call to random address successful\n            5: 1    # Call to random address successful\n            # The first call is expensive because when sending eth to an empty address it has to be\n            # created, which is an extra cost\n            12: 34528    # Gas cost of call to created address (cold address)\n            13:  7016    # Gas cost of 2nd call to created address, much cheaper because \n            14: 34528    # Gas cost of call to empty random (cold) address\n            15:  7016    # Gas cost of second call to (now warm) address\n\n\n\n        # Empty address\n        d4e7ae083132925a4927c1f5816238ba17b82a00:\n          nonce: 0\n          balance: 2   # Funded with two calls\n          code: \"\"     # No code\n\n\n        # Address where smart contract should have been created\n        B2050fc27aB6d6D42dc0CE6f7C0BF9481a4c3Fc3:\n          nonce: 0\n          balance: 2   # Funded with two calls\n          code: \"\"     # No code\n\n\n\n\n\n\n    # Call to a different account to do CREATE[2], which reverts as out of gas\n    - indexes:\n        data: \n          - :label create-oog-constructor\n          - :label create-oog-post-constr   \n          - :label create2-oog-constructor\n          - :label create2-oog-post-constr   \n        gas: !!int -1\n        value:\n          - !!int 0\n      network:\n        - \">=Cancun\"\n      result:\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 1\n        00000000000000000000000000000000000c0deC:\n          nonce: 0    # No nonce bump\n          storage:\n            0: 0    # Call to creator contract reverted\n            2: 1    # Call to create address successful\n            3: 1    # Call to create address successful\n            4: 1    # Call to random address successful\n            5: 1    # Call to random address successful\n            # When the contract that calls CREATE subsequently reverts, the\n            # warming up of the address created also doesn't happen\n            12:  2828    # Gas cost of call to created address (cold address)\n            13:   316    # Gas cost of 2nd call to created address\n            14:  2828    # Gas cost of call to empty (cold) address\n            15:   316    # Gas cost of 2nd call to empty (now warm) address\n\n        d4e7ae083132925a4927c1f5816238ba17b82a65: # Create address\n          shouldnotexist: true\n\n\n\n    # Call to a different account to do CREATE[2], which reverts\n    - indexes:\n        data: \n          - :label create-oog-constructor\n          - :label create-oog-post-constr   \n          - :label create2-oog-constructor\n          - :label create2-oog-post-constr   \n        value:\n          - !!int 1\n      network:\n        - \">=Cancun\"\n      result:\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 1\n        00000000000000000000000000000000000c0deC:\n          nonce: 0   # No nonce bump\n          storage:\n            0: 0    # Call to creator contract reverted\n            2: 1    # Call to create address successful\n            3: 1    # Call to create address successful\n            4: 1    # Call to random address successful\n            5: 1    # Call to random address successful\n            # The first call is expensive because when sending eth to an empty address it has to be\n            # created, which is an extra cost\n            12: 34528    # Gas cost of call to created address (cold address)\n            13:  7016    # Gas cost of 2nd call to created address, much cheaper because \n            14: 34528    # Gas cost of call to empty random (cold) address\n            15:  7016    # Gas cost of second call to (now warm) address\n\n\n\n        # Empty address\n        d4e7ae083132925a4927c1f5816238ba17b82a00:\n          nonce: 0\n          balance: 2   # Funded with two calls\n          code: \"\"     # No code\n\n\n\n\n    # CREATE executed directly by c0deC (successfully)\n    - indexes:\n        data: \n          - :label create-ok\n        gas: !!int -1\n        value:\n          - !!int 0\n      network:\n        - \">=Cancun\"\n      result:\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 1\n        00000000000000000000000000000000000c0deC:\n          nonce: 1 \n          storage:\n            0: 0xd4e7ae083132925a4927c1f5816238ba17b82a65  # Create successful, created this address\n            2: 1    # Call to create address successful\n            3: 1    # Call to create address successful\n            4: 1    # Call to random address successful\n            5: 1    # Call to random address successful\n            12:   328    # Gas cost of call to created address (warm address)\n            13:   316    # Gas cost of 2nd call to created address\n            14:  2828    # Gas cost of call to empty (cold) address\n            15:   316    # Gas cost of 2nd call to empty (now warm) address\n\n        d4e7ae083132925a4927c1f5816238ba17b82a65: # Create address\n          code: 0x00\n\n    # CREATE executed directly by c0deC (successfully)\n    - indexes:\n        data: \n          - :label create-ok\n        value:\n          - !!int 1\n      network:\n        - \">=Cancun\"\n      result:\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 1\n\n        00000000000000000000000000000000000c0deC:\n          nonce: 1\n          storage:\n            0: 0xd4e7ae083132925a4927c1f5816238ba17b82a65  # Create successful, created this address\n            2: 1    # Call to create address successful\n            3: 1    # Call to create address successful\n            4: 1    # Call to random address successful\n            5: 1    # Call to random address successful\n            12:  7028    # Gas cost of call to created address, no need to create it\n            13:  7016    # Gas cost of 2nd call to created address, much cheaper because \n            14: 34528    # Gas cost of call to empty random (cold) address\n            15:  7016    # Gas cost of second call to (now warm) address\n\n\n        # Create address, nonce=1 because it really is created\n        d4e7ae083132925a4927c1f5816238ba17b82a65:\n          nonce: 1\n          balance: 2     # Funded with two calls after create.\n          code: 0x00     # One byte of code\n\n\n        # Empty address, filled when ETH is sent to it\n        d4e7ae083132925a4927c1f5816238ba17b82a00:\n          nonce: 0\n          balance: 2   # Funded with two calls\n          code: \"\"     # No code\n\n\n\n\n\n\n    # CREATE2 executed directly by c0deC (successfully)\n    - indexes:\n        data: \n          - :label create2-ok\n        gas: !!int -1\n        value:\n          - !!int 0\n      network:\n        - \">=Cancun\"\n      result:\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 1\n        00000000000000000000000000000000000c0deC:\n          nonce: 1 \n          storage:\n            0: 0xf7fef4b66b1570a057d7d5cec5c58846befa5b5c # Address created by CREATE2\n            2: 1    # Call to create address successful\n            3: 1    # Call to create address successful\n            4: 1    # Call to random address successful\n            5: 1    # Call to random address successful\n            12:   328    # Gas cost of call to created address (looks like it is cold)\n            13:   316    # Gas cost of 2nd call to created address\n            14:  2828    # Gas cost of call to empty (cold) address\n            15:   316    # Gas cost of 2nd call to empty (now warm) address\n\n        f7fef4b66b1570a057d7d5cec5c58846befa5b5c:  # Create2 address\n          code: 0x00\n          nonce: 1\n\n\n    # CREATE2 executed directly by c0deC (successfully)\n    - indexes:\n        data: \n          - :label create2-ok\n        value:\n          - !!int 1\n      network:\n        - \">=Cancun\"\n      result:\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 1\n\n        00000000000000000000000000000000000c0deC:\n          nonce: 1\n          storage:\n            0: 0xf7fef4b66b1570a057d7d5cec5c58846befa5b5c # Address created by CREATE2\n            2: 1    # Call to create address successful\n            3: 1    # Call to create address successful\n            4: 1    # Call to random address successful\n            5: 1    # Call to random address successful\n            12:  7028    # Gas cost of call to created address, no need to create it\n            13:  7016    # Gas cost of 2nd call to created address, much cheaper because \n            14: 34528    # Gas cost of call to empty random (cold) address\n            15:  7016    # Gas cost of second call to (now warm) address\n\n\n        # Create address, nonce=1 because it really is created\n        f7fef4b66b1570a057d7d5cec5c58846befa5b5c:  # Create2 address\n          code: 0x00\n          nonce: 1\n          balance: 2     # Funded with two calls after create.\n\n\n        # Empty address, filled when ETH is sent to it\n        d4e7ae083132925a4927c1f5816238ba17b82a00:\n          nonce: 0\n          balance: 2   # Funded with two calls\n          code: \"\"     # No code\n\n\n"
  },
  {
    "path": "tests/static/state_tests/stCreateTest/CreateCollisionResultsFiller.yml",
    "content": "CreateCollisionResults:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: 0x100000000\n    currentNumber: \"1\"\n    currentTimestamp: \"1000\"\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n\n  pre:\n\n    # Same address as CREATE creates. \n    8af6a7af30d840ba137e8f3f34d54cfb8beba6e2:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code:   | \n        {\n          [[0]] 0x001D\n        }\n      nonce: '0'\n      storage:\n        0x0: 0x60A7\n\n\n    # Same address as CREATE2 creates\n    40f1299359ea754ac29eb2662a1900752bf8275f:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code:   | \n        {\n          [[0]] 0x001D\n        }\n      nonce: '0'\n      storage:\n        0x0: 0x60A7\n\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code:   | \n        {\n          ; Variables are 0x20 bytes (= 256 bits) apart, except for\n          ; code buffers that get 0x100 (256 bytes)\n          (def 'creation          0x100)\n          (def 'contractCode      0x200)\n          (def 'constructorCode   0x300)\n          (def 'contractLength    0x520)\n          (def 'constructorLength 0x540)\n          (def 'addr1             0x600)\n          (def 'callRet           0x640)\n          (def 'buffer            0x660)\n          ; Addresses of the contracts (to check what code is there)\n          (def 'OrigAddr1 0x8af6a7af30d840ba137e8f3f34d54cfb8beba6e2)\n          (def 'OrigAddr2 0x40f1299359ea754ac29eb2662a1900752bf8275f)\n          ; Other constants\n          (def 'NOP 0)   ; No OPeration\n          ; Understand the input.\n          [creation]       (shr $ 0 248)\n          ; Code for created contract\n          (def 'contractMacro\n              (lll\n                 (sstore 0 0xFF)\n                 contractCode\n              )\n          )\n          ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n          ; Create the contract and a constructor to pass to CREATE[2]\n          ;\n          [constructorLength] \n            (lll\n               (return contractCode contractMacro)\n               constructorCode            \n            )   \n          [contractLength] contractMacro\n          ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n          ; Actually create the contract\n          ;\n          (if (= @creation 1)\n            [addr1] (create 0 constructorCode @constructorLength)\n            [addr1] (create2 0 constructorCode @constructorLength 0x5a17)\n          )\n          ; PC after contract creation\n          [[0x20]] (pc)\n          ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n          ; RETURNDATASIZE should be zero\n          ;\n          [[0x10]] (returndatasize)\n          [[0x11]] @addr1\n          ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n          ; CALL the address where the contract should have been created\n          [callRet] (call 0xFFFF \n                         0x8af6a7af30d840ba137e8f3f34d54cfb8beba6e2 0 0 0 0 0)\n          ; PC after contract call (CREATE)\n          [[0x21]] (pc)\n          [[0x12]] (- @callRet 1)\n          [[0x13]] (returndatasize)  \n          [callRet] (call 0xFFFF \n                         0x40f1299359ea754ac29eb2662a1900752bf8275f 0 0 0 0 0)\n          ; PC after contract call (CREATE2)\n          [[0x22]] (pc)\n          [[0x14]] (- @callRet 1)\n          [[0x15]] (returndatasize)  \n          ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n          ; Read code from contracts\n          ; The code CREATE attempted to overwrite\n          [[0x30]] (extcodesize OrigAddr1)\n          (extcodecopy OrigAddr1 buffer 0 @@0x30)\n          [[0x31]] @buffer\n          ; The code CREATE2 attempted to overwrite\n          [[0x32]] (extcodesize OrigAddr2)\n          (extcodecopy OrigAddr2 buffer 0 @@0x32)\n          [[0x33]] @buffer\n        }   ; end of LLL code\n      nonce: '0'\n      storage:\n        0x10: 0x60A7 # Return data size from CREATE[2]\n        0x11: 0x60A7 # Address of created contract\n        0x12: 0x60A7 # Return value of the first CALL minus 1 (0 if success)\n        0x13: 0x60A7 # Return data size from the first CALL\n        0x14: 0x60A7 # Return value of the second CALL minus 1 (0 if success)\n        0x15: 0x60A7 # Return data size from the second CALL\n        0x20: 0x60A7 # PC after CREATE[2]\n        0x21: 0x60A7 # PC after call for CREATE\n        0x22: 0x60A7 # PC after call for CREATE2\n\n\n    # User account\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n  transaction:\n    data:\n    # MSB\n    #\n    # Create type:    01 - CREATE  02 - CREATE2\n    #\n    # LSB  \n    - :raw 0x01\n    - :raw 0x02\n    gasLimit:\n    - 0x1000000\n\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n    value:\n    - 0\n\n  expect:\n\n    # All but static calls (which cannot change storage), with sufficient gas\n    - indexes:\n        data: !!int -1\n        gas:  !!int 0\n        value: !!int 0\n      network:\n        - '>=Cancun'\n      result:\n\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            # In the case of a collision CREATE[2] just pops the \n            # parameter values from the stack and returns zero, so the\n            # results should all be zero except for these:\n\n            # PC values at various locations\n            0x20: 0x59\n            0x21: 0x8f\n            0x22: 0xC8\n\n            # EXTCODE values\n            0x30: 0x06\n            0x31: 0x601d600055000000000000000000000000000000000000000000000000000000\n            0x32: 0x06\n            0x33: 0x601d600055000000000000000000000000000000000000000000000000000000\n\n        # The address CREATE would have chosen\n        8af6a7af30d840ba137e8f3f34d54cfb8beba6e2:\n          code: 0x601d60005500\n          storage:\n            0: 0x001D\n            # 0x60A7 - no contract ran\n            # 0x001D - the old contract ran\n            # 0x00FF - the new contract ran\n\n        # The address CREATE2 would have chosen\n        40f1299359ea754ac29eb2662a1900752bf8275f:\n          code: 0x601d60005500\n          storage:\n            0: 0x001D\n            # 0x60A7 - no contract ran\n            # 0x001D - the old contract ran\n            # 0x00FF - the new contract ran\n"
  },
  {
    "path": "tests/static/state_tests/stCreateTest/CreateCollisionToEmpty2Filler.json",
    "content": "{\n    \"CreateCollisionToEmpty2\" : {\n        \"_info\" : {\n            \"comment\" : \"data0 - create collision to empty, data1 - to empty but nonce, data2 - to contract with code\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"nonce\" : \"1\"\n\t\t            },\n\t\t            \"1000000000000000000000000000000000000000\" : {\n\t\t\t           \"nonce\" : \"0\",\n\t\t\t           \"storage\" : {}\n\t\t            },\n\t\t            \"13136008b64ff592819b2fa6d43f2835c452020e\" : {\n                        \"balance\" : \"10\",\n\t\t\t            \"nonce\" : \"0\",\n\t\t\t            \"code\" : \"\",\n\t\t\t            \"storage\" : {}\n\t\t            }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"nonce\" : \"1\"\n\t\t            },\n\t\t            \"1000000000000000000000000000000000000000\" : {\n    \t\t\t        \"nonce\" : \"1\",\n    \t\t\t        \"storage\" : {\n                            \"0x01\" : \"0x13136008b64ff592819b2fa6d43f2835c452020e\"\n                        }\n\t\t            },\n\t\t            \"13136008b64ff592819b2fa6d43f2835c452020e\" : {\n                        \"balance\" : \"10\",\n    \t\t\t        \"nonce\" : \"1\",\n    \t\t\t        \"code\" : \"\",\n    \t\t\t        \"storage\" : {\n                            \"0x01\" : \"0x01\"\n                        }\n\t\t            }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : [1,2],\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"nonce\" : \"1\"\n\t\t            },\n\t\t            \"2000000000000000000000000000000000000000\" : {\n    \t\t\t        \"nonce\" : \"0\",\n    \t\t\t        \"storage\" : {\n                            \"0x01\" : \"0x00\"\n                        }\n\t\t            },\n\t\t            \"0bf4c804e0579073baf54ec4ec37cd04f3455c65\" : {\n    \t\t\t        \"nonce\" : \"2\",\n    \t\t\t        \"code\" : \"\",\n    \t\t\t        \"storage\" : {\n                        }\n\t\t            }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun\"],\n                \"result\" : {\n\t\t            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"nonce\" : \"1\"\n\t\t            },\n\t\t            \"2000000000000000000000000000000000000000\" : {\n    \t\t\t        \"nonce\" : \"0\",\n    \t\t\t        \"storage\" : {\n                            \"0x01\" : \"0x00\"\n                        }\n\t\t            },\n\t\t            \"0bf4c804e0579073baf54ec4ec37cd04f3455c65\" : {\n    \t\t\t        \"nonce\" : \"2\",\n    \t\t\t        \"code\" : \"\",\n    \t\t\t        \"storage\" : {\n                        }\n\t\t            }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : 2,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun\"],\n                \"result\" : {\n\t\t            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"nonce\" : \"1\"\n\t\t            },\n\t\t            \"3000000000000000000000000000000000000000\" : {\n    \t\t\t        \"nonce\" : \"0\",\n    \t\t\t        \"storage\" : {\n                            \"0x01\" : \"0x00\"\n                        }\n\t\t            },\n\t\t            \"4b86c4ed99b87f0f396bc0c76885453c343916ed\" : {\n    \t\t\t        \"nonce\" : \"0\",\n    \t\t\t        \"code\" : \"0x1122334455\",\n    \t\t\t        \"storage\" : {\n                        }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"1a00000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ (CALL 80000 (CALLDATALOAD 0) 0 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"1000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ (MSTORE 0 0x6001600155) [[1]] (CREATE 0 27 5) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"2000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ (MSTORE 0 0x6001600155) [[1]] (CREATE 0 27 5) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"3000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ (MSTORE 0 0x6001600155) [[1]] (CREATE 0 27 5) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"0x13136008b64ff592819b2fa6d43f2835c452020e\" : {\n                \"balance\" : \"10\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"0x0bf4c804e0579073baf54ec4ec37cd04f3455c65\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"\",\n                \"nonce\" : \"2\",\n                \"storage\" : {\n                }\n            },\n            \"0x4b86c4ed99b87f0f396bc0c76885453c343916ed\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x1122334455\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n        \t\t\":raw 0x0000000000000000000000001000000000000000000000000000000000000000\",\n        \t\t\":raw 0x0000000000000000000000002000000000000000000000000000000000000000\",\n        \t\t\":raw 0x0000000000000000000000003000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\" : [\n                \"600000\", \"54000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"0x1a00000000000000000000000000000000000000\",\n            \"value\" : [\n                \"0\", \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreateTest/CreateOOGFromCallRefundsFiller.yml",
    "content": "CreateOOGFromCallRefunds:\n  # Test that verifies the refunds are not applied on contract creation when the creation runs Out of Gas\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: 0x100000000\n    currentNumber: \"1\"\n    currentTimestamp: \"1000\"\n\n  pre:\n    #### MAIN CALLER\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x3d0900'\n      code: '0x'\n      nonce: '1'\n      storage: {}\n    \n    ### MAIN ENTRY CONTRACT: Code that extcode-copies and creates a contract\n    # Switches init code based on the first parameter's value\n    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          let init_addr := calldataload(4)\n          let init_length := extcodesize(init_addr)\n          extcodecopy(init_addr, 0, 0, init_length)\n          let created_addr := create(0, 0, init_length)\n          if eq(created_addr, 0) {\n            /* This invalid will deplete the remaining gas to make refund check deterministic */\n            invalid()\n          }\n        }\n      nonce: '1'\n      storage: {}\n    \n    ### INIT CODES: Used to create contracts with a variety of OOG init codes.\n    # Init codes: Sstore refund\n    000000000000000000000000000000000000001a:\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          sstore(1, 1)\n          sstore(1, 0)\n          return(0, 1)\n        }\n      nonce: '0'\n      storage: {}\n\n    000000000000000000000000000000000000001b:\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          sstore(1, 1)\n          sstore(1, 0)\n          return(0, 5000)\n        }\n      nonce: '0'\n      storage: {}\n\n    000000000000000000000000000000000000001c:\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          sstore(1, 1)\n          sstore(1, 0)\n          invalid()\n        }\n      nonce: '0'\n      storage: {}\n\n    # Init codes: Sstore refund, call\n    000000000000000000000000000000000000002a:\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          pop(call(gas(), 0x00000000000000000000000000000000000c0deA, 0, 0, 0, 0, 0))\n          return(0, 1)\n        }\n      nonce: '0'\n      storage: {}\n    \n    000000000000000000000000000000000000002b:\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          pop(call(gas(), 0x00000000000000000000000000000000000c0deA, 0, 0, 0, 0, 0))\n          return(0, 5000)\n        }\n      nonce: '0'\n      storage: {}\n\n    000000000000000000000000000000000000002c:\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          pop(call(gas(), 0x00000000000000000000000000000000000c0deA, 0, 0, 0, 0, 0))\n          invalid()\n        }\n      nonce: '0'\n      storage: {}\n\n    # Init codes: Sstore refund, delegatecall\n    000000000000000000000000000000000000003a:\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          sstore(1, 1)\n          pop(delegatecall(gas(), 0x00000000000000000000000000000000000c0deA, 0, 0, 0, 0))\n          return(0, 1)\n        }\n      nonce: '0'\n      storage: {}\n    \n    000000000000000000000000000000000000003b:\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          sstore(1, 1)\n          pop(delegatecall(gas(), 0x00000000000000000000000000000000000c0deA, 0, 0, 0, 0))\n          return(0, 5000)\n        }\n      nonce: '0'\n      storage: {}\n    \n    000000000000000000000000000000000000003c:\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          sstore(1, 1)\n          pop(delegatecall(gas(), 0x00000000000000000000000000000000000c0deA, 0, 0, 0, 0))\n          invalid()\n        }\n      nonce: '0'\n      storage: {}\n    \n    # Init codes: Sstore refund, callcode\n    000000000000000000000000000000000000004a:\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          sstore(1, 1)\n          pop(callcode(gas(), 0x00000000000000000000000000000000000c0deA, 0, 0, 0, 0, 0))\n          return(0, 1)\n        }\n      nonce: '0'\n      storage: {}\n    \n    000000000000000000000000000000000000004b:\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          sstore(1, 1)\n          pop(callcode(gas(), 0x00000000000000000000000000000000000c0deA, 0, 0, 0, 0, 0))\n          return(0, 5000)\n        }\n      nonce: '0'\n      storage: {}\n    \n    000000000000000000000000000000000000004c:\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          sstore(1, 1)\n          pop(callcode(gas(), 0x00000000000000000000000000000000000c0deA, 0, 0, 0, 0, 0))\n          invalid()\n        }\n      nonce: '0'\n      storage: {}\n    \n    # Init codes: Call self-destruct\n    000000000000000000000000000000000000005a:\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          pop(call(gas(), 0x00000000000000000000000000000000000c0deD, 0, 0, 0, 0, 0))\n          return(0, 1)\n        }\n      nonce: '0'\n      storage: {}\n    \n    000000000000000000000000000000000000005b:\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          pop(call(gas(), 0x00000000000000000000000000000000000c0deD, 0, 0, 0, 0, 0))\n          return(0, 5000)\n        }\n      nonce: '0'\n      storage: {}\n    \n    000000000000000000000000000000000000005c:\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          pop(call(gas(), 0x00000000000000000000000000000000000c0deD, 0, 0, 0, 0, 0))\n          invalid()\n        }\n      nonce: '0'\n      storage: {}\n    \n    # Init codes: Log operations\n    000000000000000000000000000000000000006a:\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          pop(call(gas(), 0x00000000000000000000000000000000000c0de0, 0, 0, 0, 0, 0))\n          return(0, 1)\n        }\n      nonce: '0'\n      storage: {}\n    \n    000000000000000000000000000000000000006b:\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          pop(call(gas(), 0x00000000000000000000000000000000000c0de0, 0, 0, 0, 0, 0))\n          return(0, 5000)\n        }\n      nonce: '0'\n      storage: {}\n    \n    000000000000000000000000000000000000006c:\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          pop(call(gas(), 0x00000000000000000000000000000000000c0de0, 0, 0, 0, 0, 0))\n          invalid()\n        }\n      nonce: '0'\n      storage: {}\n    \n    # Init codes: Create, refund\n    000000000000000000000000000000000000007a:\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          sstore(1, 1)\n          sstore(1, 0)\n          let initcodeaddr := 0x00000000000000000000000000000000000c0de1\n          let initcodelength := extcodesize(initcodeaddr)\n          extcodecopy(initcodeaddr, 0, 0, initcodelength)\n          pop(create(0, 0, initcodelength))\n          return(add(initcodelength, 1), 1)\n        }\n      nonce: '0'\n      storage: {}\n    \n    000000000000000000000000000000000000007b:\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          sstore(1, 1)\n          sstore(1, 0)\n          let initcodeaddr := 0x00000000000000000000000000000000000c0de1\n          let initcodelength := extcodesize(initcodeaddr)\n          extcodecopy(initcodeaddr, 0, 0, initcodelength)\n          pop(create(0, 0, initcodelength))\n          return(add(initcodelength, 1), 5000)\n        }\n      nonce: '0'\n      storage: {}\n    \n    000000000000000000000000000000000000007c:\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          sstore(1, 1)\n          sstore(1, 0)\n          let initcodeaddr := 0x00000000000000000000000000000000000c0de1\n          let initcodelength := extcodesize(initcodeaddr)\n          extcodecopy(initcodeaddr, 0, 0, initcodelength)\n          pop(create(0, 0, initcodelength))\n          invalid()\n        }\n      nonce: '0'\n      storage: {}\n    \n    # Init codes: Create2, refund\n    000000000000000000000000000000000000008a:\n      balance: '0'\n      code: |\n        :yul berlin \n        {\n          sstore(0, 1)\n          sstore(1, 1)\n          sstore(1, 0)\n          let initcodeaddr := 0x00000000000000000000000000000000000c0de1\n          //let initcodelength := extcodesize(initcodeaddr)\n          //extcodecopy(initcodeaddr, 0, 0, initcodelength)\n\n          // protection from solc version changing init code            \n          let initcodelength := 15\n          mstore(0, 0x6001600055600060005560016000f30000000000000000000000000000000000)\n\n          pop(create2(0, 0, initcodelength, 0))\n          return(add(initcodelength, 1), 1)\n        }\n      nonce: '0'\n      storage: {}\n    \n    000000000000000000000000000000000000008b:\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          sstore(1, 1)\n          sstore(1, 0)\n          let initcodeaddr := 0x00000000000000000000000000000000000c0de1\n          let initcodelength := extcodesize(initcodeaddr)\n          extcodecopy(initcodeaddr, 0, 0, initcodelength)\n          pop(create2(0, 0, initcodelength, 0))\n          return(add(initcodelength, 1), 5000)\n        }\n      nonce: '0'\n      storage: {}\n    \n    000000000000000000000000000000000000008c:\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          sstore(1, 1)\n          sstore(1, 0)\n          let initcodeaddr := 0x00000000000000000000000000000000000c0de1\n          let initcodelength := extcodesize(initcodeaddr)\n          extcodecopy(initcodeaddr, 0, 0, initcodelength)\n          pop(create2(0, 0, initcodelength, 0))\n          invalid()\n        }\n      nonce: '0'\n      storage: {}\n    \n    ### HELPER CONTRACTS\n    # Simple contract to reset sstore and refund\n    00000000000000000000000000000000000c0deA:\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          // Simple SSTORE to zero to get a refund\n          sstore(1, 0)\n        }\n      nonce: '1'\n      storage: {\n        '1': '1'\n      }\n\n    # Simple contract that self-destructs to refund\n    00000000000000000000000000000000000c0deD:\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          selfdestruct(origin())\n        }\n      nonce: '1'\n      storage: {\n        '1': '1'\n      }\n    \n    # Simple contract that performs log operations\n    00000000000000000000000000000000000c0de0:\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          mstore(0, 0xff)\n          log0(0, 32)\n          log1(0, 32, 0xfa)\n          log2(0, 32, 0xfa, 0xfb)\n          log3(0, 32, 0xfa, 0xfb, 0xfc)\n          log4(0, 32, 0xfa, 0xfb, 0xfc, 0xfd)\n        }\n      nonce: '1'\n      storage: {\n        '1': '1'\n      }\n\n    # Init code that successfully creates contract but contains a refund\n    00000000000000000000000000000000000c0de1:\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          sstore(0, 0)\n          return(0, 1)\n        }\n      nonce: '1'\n      storage: {}\n\n\n  transaction:\n    data:\n    # Create from EOA, Sstore Refund in Init Code, no OoG\n    - :label SStore_Refund_NoOoG :abi f(uint) 0x1a\n\n    # Create from EOA, Sstore Refund in Init Code, OoG on Code Deposit\n    - :label SStore_Refund_OoG :abi f(uint) 0x1b\n\n    # Create from EOA, Sstore Refund in Init Code, OoG on Invalid opcode\n    - :label SStore_Refund_OoG :abi f(uint) 0x1c\n\n    # Create from EOA, Sstore Refund in Call, no OoG\n    - :label SStore_Refund_NoOoG :abi f(uint) 0x2a\n\n    # Create from EOA, Sstore Refund in Call, OoG on Code Deposit\n    - :label SStore_Refund_OoG :abi f(uint) 0x2b\n\n    # Create from EOA, Sstore Refund in Call, OoG on Invalid opcode\n    - :label SStore_Refund_OoG :abi f(uint) 0x2c\n\n    # Create from EOA, Sstore Refund in DelegateCall, no OoG\n    - :label SStore_Refund_NoOoG :abi f(uint) 0x3a\n\n    # Create from EOA, Sstore Refund in DelegateCall, OoG on Code Deposit\n    - :label SStore_Refund_OoG :abi f(uint) 0x3b\n\n    # Create from EOA, Sstore Refund in DelegateCall, OoG on Invalid opcode\n    - :label SStore_Refund_OoG :abi f(uint) 0x3c\n\n    # Create from EOA, Sstore Refund in CallCode, no OoG\n    - :label SStore_Refund_NoOoG :abi f(uint) 0x4a\n\n    # Create from EOA, Sstore Refund in CallCode, OoG on Code Deposit\n    - :label SStore_Refund_OoG :abi f(uint) 0x4b\n\n    # Create from EOA, Sstore Refund in CallCode, OoG on Invalid opcode\n    - :label SStore_Refund_OoG :abi f(uint) 0x4c\n\n    # Create from EOA, Refund Self-destruct call, no OoG\n    - :label SelfDestruct_Refund_NoOoG :abi f(uint) 0x5a\n\n    # Create from EOA, Refund Self-destruct call, OoG on Code Deposit\n    - :label SelfDestruct_Refund_OoG :abi f(uint) 0x5b\n\n    # Create from EOA, Refund Self-destruct call, OoG on Invalid opcode\n    - :label SelfDestruct_Refund_OoG :abi f(uint) 0x5c\n    \n    # Create from EOA, Log operation in call, no OoG\n    - :label LogOp_NoOoG :abi f(uint) 0x6a\n\n    # Create from EOA, Log operation in call, OoG on Code Deposit\n    - :label LogOp_OoG :abi f(uint) 0x6b\n\n    # Create from EOA, Log operation in call, OoG on Invalid opcode\n    - :label LogOp_OoG :abi f(uint) 0x6c\n\n    # Create from EOA, Refund within CREATE, no OoG\n    - :label SStore_Create_Refund_NoOoG :abi f(uint) 0x7a\n\n    # Create from EOA, Refund within CREATE, OoG on Code Deposit\n    - :label SStore_Create_Refund_OoG :abi f(uint) 0x7b\n\n    # Create from EOA, Refund within CREATE, OoG on Invalid opcode\n    - :label SStore_Create_Refund_OoG :abi f(uint) 0x7c\n\n    # Create2 from EOA, Refund within CREATE2, no OoG\n    - :label SStore_Create2_Refund_NoOoG :abi f(uint) 0x8a\n\n    # Create2 from EOA, Refund within CREATE2, OoG on Code Deposit\n    - :label SStore_Create2_Refund_OoG :abi f(uint) 0x8b\n\n    # Create2 from EOA, Refund within CREATE2, OoG on Invalid opcode\n    - :label SStore_Create2_Refund_OoG :abi f(uint) 0x8c\n\n    gasLimit:\n    - 0x61a80\n    gasPrice: '10'\n    nonce: '1'\n    to: \"0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n    value:\n    - 0\n\n  expect:\n\n    - indexes:\n        data: \n        - :label SStore_Refund_NoOoG\n      network:\n        - '>=Cancun'\n      result:\n\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 2\n\n        4501f8fa1e67827ebfb1f6d5510c606871c5a599:\n          nonce: 1\n          code: '0x00'\n          storage: {\n            '0': 1\n          }\n    - indexes:\n        data: \n        - :label SStore_Refund_OoG\n      network:\n        - '>=Cancun'\n      result:\n\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          # When we OoG, we use up all the gas regardless of the refunds\n          balance: 0\n          nonce: 2\n\n        4501f8fa1e67827ebfb1f6d5510c606871c5a599:\n          shouldnotexist: 1\n\n\n    - indexes:\n        data: \n        - :label SelfDestruct_Refund_NoOoG\n      network:\n        - '>=Cancun'\n      result:\n\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 2\n\n        4501f8fa1e67827ebfb1f6d5510c606871c5a599:\n          nonce: 1\n          code: '0x00'\n          storage: {\n            '0': 1\n          }\n        00000000000000000000000000000000000c0deD:\n          balance: 0\n          nonce: 1\n\n    - indexes:\n        data: \n        - :label SelfDestruct_Refund_OoG\n      network:\n        - '>=Cancun'\n      result:\n\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          # When we OoG, we use up all the gas regardless of the refunds\n          balance: 0\n          nonce: 2\n\n        4501f8fa1e67827ebfb1f6d5510c606871c5a599:\n          shouldnotexist: 1\n\n        00000000000000000000000000000000000c0deD:\n          code: '0x32FF'\n          nonce: '1'\n          storage: {\n            '1': '1'\n          }\n\n    - indexes:\n        data: \n        - :label LogOp_NoOoG\n      network:\n        - '>=Cancun'\n      result:\n\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 2\n\n        4501f8fa1e67827ebfb1f6d5510c606871c5a599:\n          nonce: 1\n          code: '0x00'\n          storage: {\n            '0': 1\n          }\n    - indexes:\n        data: \n        - :label LogOp_OoG\n      network:\n        - '>=Cancun'\n      result:\n\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          # When we OoG, we use up all the gas regardless of the refunds\n          balance: 0\n          nonce: 2\n\n        4501f8fa1e67827ebfb1f6d5510c606871c5a599:\n          shouldnotexist: 1\n\n    - indexes:\n        data: \n        - :label SStore_Create_Refund_NoOoG\n      network:\n        - '>=Cancun'\n      result:\n\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 2\n\n        4501f8fa1e67827ebfb1f6d5510c606871c5a599:\n          nonce: 2\n          code: '0x00'\n          storage: {\n            '0': 1\n          }\n        522c2e1c5da65010908ef9929e327fe8b6cc86da:\n          nonce: 1\n          code: '0x00'\n          storage: {}\n  \n    - indexes:\n        data: \n        - :label SStore_Create_Refund_OoG\n      network:\n        - '>=Cancun'\n      result:\n\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          # When we OoG, we use up all the gas regardless of the refunds\n          balance: 0\n          nonce: 2\n\n        4501f8fa1e67827ebfb1f6d5510c606871c5a599:\n          shouldnotexist: 1\n        522c2e1c5da65010908ef9929e327fe8b6cc86da:\n          shouldnotexist: 1\n\n    - indexes:\n        data: \n        - :label SStore_Create2_Refund_NoOoG\n      network:\n        - '>=Cancun'\n      result:\n\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 2\n\n        4501f8fa1e67827ebfb1f6d5510c606871c5a599:\n          nonce: 2\n          code: '0x00'\n          storage: {\n            '0': 1\n          }\n        06019547b6e360abdafeade158a9667cc6106c17:\n          nonce: 1\n          code: '0x00'\n          storage: {}\n\n    - indexes:\n        data: \n        - :label SStore_Create2_Refund_OoG\n      network:\n        - '>=Cancun'\n      result:\n\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          # When we OoG, we use up all the gas regardless of the refunds\n          balance: 0\n          nonce: 2\n\n        4501f8fa1e67827ebfb1f6d5510c606871c5a599:\n          shouldnotexist: 1\n        06019547b6e360abdafeade158a9667cc6106c17:\n          shouldnotexist: 1\n"
  },
  {
    "path": "tests/static/state_tests/stCreateTest/CreateOOGFromEOARefundsFiller.yml",
    "content": "CreateOOGFromEOARefunds:\n  # Test that verifies the refunds are not applied on contract creation when the creation runs Out of Gas\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: 0x100000000\n    currentNumber: \"1\"\n    currentTimestamp: \"1000\"\n\n  pre:\n    #### MAIN CALLER\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x3d0900'\n      code: '0x'\n      nonce: '1'\n      storage: {}\n    \n    ### HELPER CONTRACTS\n    # Simple contract to reset sstore and refund\n    00000000000000000000000000000000000c0deA:\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          // Simple SSTORE to zero to get a refund\n          sstore(1, 0)\n        }\n      nonce: '1'\n      storage: {\n        '1': '1'\n      }\n\n    # Simple contract that self-destructs to refund\n    00000000000000000000000000000000000c0deD:\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          selfdestruct(origin())\n        }\n      nonce: '1'\n      storage: {\n        '1': '1'\n      }\n    \n    # Simple contract that performs log operations\n    00000000000000000000000000000000000c0de0:\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          mstore(0, 0xff)\n          log0(0, 32)\n          log1(0, 32, 0xfa)\n          log2(0, 32, 0xfa, 0xfb)\n          log3(0, 32, 0xfa, 0xfb, 0xfc)\n          log4(0, 32, 0xfa, 0xfb, 0xfc, 0xfd)\n        }\n      nonce: '1'\n      storage: {\n        '1': '1'\n      }\n\n    # Init code that successfully creates contract but contains a refund\n    00000000000000000000000000000000000c0de1:\n      balance: '0'\n      code: |\n        :yul berlin\n        {\n          sstore(0, 1)\n          sstore(0, 0)\n          return(0, 1)\n        }\n      nonce: '1'\n      storage: {}\n\n\n  transaction:\n    data:\n    # Create from EOA, Sstore Refund in Init Code, no OoG\n    - :label SStore_Refund_NoOoG :yul berlin {\n        sstore(0, 1)\n        sstore(1, 1)\n        sstore(1, 0)\n        return(0, 1)\n      }\n\n    # Create from EOA, Sstore Refund in Init Code, OoG on Code Deposit\n    - :label SStore_Refund_OoG :yul berlin {\n        sstore(0, 1)\n        sstore(1, 1)\n        sstore(1, 0)\n        return(0, 5000)\n      }\n\n    # Create from EOA, Sstore Refund in Init Code, OoG on Invalid opcode\n    - :label SStore_Refund_OoG :yul berlin {\n        sstore(0, 1)\n        sstore(1, 1)\n        sstore(1, 0)\n        invalid()\n      }\n\n    # Create from EOA, Sstore Refund in Call, no OoG\n    - :label SStore_Refund_NoOoG :yul berlin {\n        sstore(0, 1)\n        pop(call(gas(), 0x00000000000000000000000000000000000c0deA, 0, 0, 0, 0, 0))\n        return(0, 1)\n      }\n\n    # Create from EOA, Sstore Refund in Call, OoG on Code Deposit\n    - :label SStore_Refund_OoG :yul berlin {\n        sstore(0, 1)\n        pop(call(gas(), 0x00000000000000000000000000000000000c0deA, 0, 0, 0, 0, 0))\n        return(0, 5000)\n      }\n\n    # Create from EOA, Sstore Refund in Call, OoG on Invalid opcode\n    - :label SStore_Refund_OoG :yul berlin {\n        sstore(0, 1)\n        pop(call(gas(), 0x00000000000000000000000000000000000c0deA, 0, 0, 0, 0, 0))\n        invalid()\n      }\n\n    # Create from EOA, Sstore Refund in DelegateCall, no OoG\n    - :label SStore_Refund_NoOoG :yul berlin {\n        sstore(0, 1)\n        sstore(1, 1)\n        pop(delegatecall(gas(), 0x00000000000000000000000000000000000c0deA, 0, 0, 0, 0))\n        return(0, 1)\n      }\n\n    # Create from EOA, Sstore Refund in DelegateCall, OoG on Code Deposit\n    - :label SStore_Refund_OoG :yul berlin {\n        sstore(0, 1)\n        sstore(1, 1)\n        pop(delegatecall(gas(), 0x00000000000000000000000000000000000c0deA, 0, 0, 0, 0))\n        return(0, 5000)\n      }\n\n    # Create from EOA, Sstore Refund in DelegateCall, OoG on Invalid opcode\n    - :label SStore_Refund_OoG :yul berlin {\n        sstore(0, 1)\n        sstore(1, 1)\n        pop(delegatecall(gas(), 0x00000000000000000000000000000000000c0deA, 0, 0, 0, 0))\n        invalid()\n      }\n\n    # Create from EOA, Sstore Refund in CallCode, no OoG\n    - :label SStore_Refund_NoOoG :yul berlin {\n        sstore(0, 1)\n        sstore(1, 1)\n        pop(callcode(gas(), 0x00000000000000000000000000000000000c0deA, 0, 0, 0, 0, 0))\n        return(0, 1)\n      }\n\n    # Create from EOA, Sstore Refund in CallCode, OoG on Code Deposit\n    - :label SStore_Refund_OoG :yul berlin {\n        sstore(0, 1)\n        sstore(1, 1)\n        pop(callcode(gas(), 0x00000000000000000000000000000000000c0deA, 0, 0, 0, 0, 0))\n        return(0, 5000)\n      }\n\n    # Create from EOA, Sstore Refund in CallCode, OoG on Invalid opcode\n    - :label SStore_Refund_OoG :yul berlin {\n        sstore(0, 1)\n        sstore(1, 1)\n        pop(callcode(gas(), 0x00000000000000000000000000000000000c0deA, 0, 0, 0, 0, 0))\n        invalid()\n      }\n\n    # Create from EOA, Refund Self-destruct call, no OoG\n    - :label SelfDestruct_Refund_NoOoG :yul berlin {\n        sstore(0, 1)\n        pop(call(gas(), 0x00000000000000000000000000000000000c0deD, 0, 0, 0, 0, 0))\n        return(0, 1)\n      }\n\n    # Create from EOA, Refund Self-destruct call, OoG on Code Deposit\n    - :label SelfDestruct_Refund_OoG :yul berlin {\n        sstore(0, 1)\n        pop(call(gas(), 0x00000000000000000000000000000000000c0deD, 0, 0, 0, 0, 0))\n        return(0, 5000)\n      }\n\n    # Create from EOA, Refund Self-destruct call, OoG on Invalid opcode\n    - :label SelfDestruct_Refund_OoG :yul berlin {\n        sstore(0, 1)\n        pop(call(gas(), 0x00000000000000000000000000000000000c0deD, 0, 0, 0, 0, 0))\n        invalid()\n      }\n    \n    # Create from EOA, Log operation in call, no OoG\n    - :label LogOp_NoOoG :yul berlin {\n        sstore(0, 1)\n        pop(call(gas(), 0x00000000000000000000000000000000000c0de0, 0, 0, 0, 0, 0))\n        return(0, 1)\n      }\n\n    # Create from EOA, Log operation in call, OoG on Code Deposit\n    - :label LogOp_OoG :yul berlin {\n        sstore(0, 1)\n        pop(call(gas(), 0x00000000000000000000000000000000000c0de0, 0, 0, 0, 0, 0))\n        return(0, 5000)\n      }\n\n    # Create from EOA, Log operation in call, OoG on Invalid opcode\n    - :label LogOp_OoG :yul berlin {\n        sstore(0, 1)\n        pop(call(gas(), 0x00000000000000000000000000000000000c0de0, 0, 0, 0, 0, 0))\n        invalid()\n      }\n\n    # Create from EOA, Refund within CREATE, no OoG\n    - :label SStore_Create_Refund_NoOoG :yul berlin {\n        sstore(0, 1)\n        sstore(1, 1)\n        sstore(1, 0)\n        let initcodeaddr := 0x00000000000000000000000000000000000c0de1\n        let initcodelength := extcodesize(initcodeaddr)\n        extcodecopy(initcodeaddr, 0, 0, initcodelength)\n        pop(create(0, 0, initcodelength))\n        return(add(initcodelength, 1), 1)\n      }\n\n    # Create from EOA, Refund within CREATE, OoG on Code Deposit\n    - :label SStore_Create_Refund_OoG :yul berlin {\n        sstore(0, 1)\n        sstore(1, 1)\n        sstore(1, 0)\n        let initcodeaddr := 0x00000000000000000000000000000000000c0de1\n        let initcodelength := extcodesize(initcodeaddr)\n        extcodecopy(initcodeaddr, 0, 0, initcodelength)\n        pop(create(0, 0, initcodelength))\n        return(add(initcodelength, 1), 5000)\n      }\n\n    # Create from EOA, Refund within CREATE, OoG on Invalid opcode\n    - :label SStore_Create_Refund_OoG :yul berlin {\n        sstore(0, 1)\n        sstore(1, 1)\n        sstore(1, 0)\n        let initcodeaddr := 0x00000000000000000000000000000000000c0de1\n        let initcodelength := extcodesize(initcodeaddr)\n        extcodecopy(initcodeaddr, 0, 0, initcodelength)\n        pop(create(0, 0, initcodelength))\n        invalid()\n      }\n\n    # Create2 from EOA, Refund within CREATE, no OoG\n    - :label SStore_Create2_Refund_NoOoG :yul berlin {\n        sstore(0, 1)\n        sstore(1, 1)\n        sstore(1, 0)\n        let initcodeaddr := 0x00000000000000000000000000000000000c0de1\n        //let initcodelength := extcodesize(initcodeaddr)\n        //extcodecopy(initcodeaddr, 0, 0, initcodelength)\n\n        //protection from solc version changing the init code\n\n        let initcodelength := 15\n        mstore(0, 0x6001600055600060005560016000f30000000000000000000000000000000000)\n\n        pop(create2(0, 0, initcodelength, 0))\n        return(add(initcodelength, 1), 1)\n      }\n\n    # Create2 from EOA, Refund within CREATE, OoG on Code Deposit\n    - :label SStore_Create2_Refund_OoG :yul berlin {\n        sstore(0, 1)\n        sstore(1, 1)\n        sstore(1, 0)\n        let initcodeaddr := 0x00000000000000000000000000000000000c0de1\n        let initcodelength := extcodesize(initcodeaddr)\n        extcodecopy(initcodeaddr, 0, 0, initcodelength)\n        pop(create2(0, 0, initcodelength, 0))\n        return(add(initcodelength, 1), 5000)\n      }\n\n    # Create2 from EOA, Refund within CREATE, OoG on Invalid opcode\n    - :label SStore_Create2_Refund_OoG :yul berlin {\n        sstore(0, 1)\n        sstore(1, 1)\n        sstore(1, 0)\n        let initcodeaddr := 0x00000000000000000000000000000000000c0de1\n        let initcodelength := extcodesize(initcodeaddr)\n        extcodecopy(initcodeaddr, 0, 0, initcodelength)\n        pop(create2(0, 0, initcodelength, 0))\n        invalid()\n      }\n\n    gasLimit:\n    - 0x61a80\n    gasPrice: '10'\n    nonce: '1'\n    to: \"\"\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n    value:\n    - 0\n\n  expect:\n\n    - indexes:\n        data: \n        - :label SStore_Refund_NoOoG\n      network:\n        - '>=Cancun'\n      result:\n\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 2\n\n        ec0e71ad0a90ffe1909d27dac207f7680abba42d:\n          nonce: 1\n          code: '0x00'\n          storage: {\n            '0': 1\n          }\n    - indexes:\n        data: \n        - :label SStore_Refund_OoG\n      network:\n        - '>=Cancun'\n      result:\n\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          # When we OoG, we use up all the gas regardless of the refunds\n          balance: 0\n          nonce: 2\n\n        ec0e71ad0a90ffe1909d27dac207f7680abba42d:\n          shouldnotexist: 1\n\n\n    - indexes:\n        data: \n        - :label SelfDestruct_Refund_NoOoG\n      network:\n        - '>=Cancun'\n      result:\n\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 2\n\n        ec0e71ad0a90ffe1909d27dac207f7680abba42d:\n          nonce: 1\n          code: '0x00'\n          storage: {\n            '0': 1\n          }\n        00000000000000000000000000000000000c0deD:\n          balance: 0\n          nonce: 1\n\n    - indexes:\n        data: \n        - :label SelfDestruct_Refund_OoG\n      network:\n        - '>=Cancun'\n      result:\n\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          # When we OoG, we use up all the gas regardless of the refunds\n          balance: 0\n          nonce: 2\n\n        ec0e71ad0a90ffe1909d27dac207f7680abba42d:\n          shouldnotexist: 1\n\n        00000000000000000000000000000000000c0deD:\n          code: '0x32FF'\n          nonce: '1'\n          storage: {\n            '1': '1'\n          }\n\n    - indexes:\n        data: \n        - :label LogOp_NoOoG\n      network:\n        - '>=Cancun'\n      result:\n\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 2\n\n        ec0e71ad0a90ffe1909d27dac207f7680abba42d:\n          nonce: 1\n          code: '0x00'\n          storage: {\n            '0': 1\n          }\n    - indexes:\n        data: \n        - :label LogOp_OoG\n      network:\n        - '>=Cancun'\n      result:\n\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          # When we OoG, we use up all the gas regardless of the refunds\n          balance: 0\n          nonce: 2\n\n        ec0e71ad0a90ffe1909d27dac207f7680abba42d:\n          shouldnotexist: 1\n\n    - indexes:\n        data: \n        - :label SStore_Create_Refund_NoOoG\n      network:\n        - '>=Cancun'\n      result:\n\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 2\n\n        ec0e71ad0a90ffe1909d27dac207f7680abba42d:\n          nonce: 2\n          code: '0x00'\n          storage: {\n            '0': 1\n          }\n        e3476106159f87477ad639e3ddcbb6b240efe459:\n          nonce: 1\n          code: '0x00'\n          storage: {}\n  \n    - indexes:\n        data: \n        - :label SStore_Create_Refund_OoG\n      network:\n        - '>=Cancun'\n      result:\n\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          # When we OoG, we use up all the gas regardless of the refunds\n          balance: 0\n          nonce: 2\n\n        ec0e71ad0a90ffe1909d27dac207f7680abba42d:\n          shouldnotexist: 1\n        e3476106159f87477ad639e3ddcbb6b240efe459:\n          shouldnotexist: 1\n\n    - indexes:\n        data: \n        - :label SStore_Create2_Refund_NoOoG\n      network:\n        - '>=Cancun'\n      result:\n\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 2\n\n        ec0e71ad0a90ffe1909d27dac207f7680abba42d:\n          nonce: 2\n          code: '0x00'\n          storage: {\n            '0': 1\n          }\n        1eeb9ca3824a07c140fc01aa562a3a896f44e790:\n          nonce: 1\n          code: '0x00'\n          storage: {}\n\n    - indexes:\n        data: \n        - :label SStore_Create2_Refund_OoG\n      network:\n        - '>=Cancun'\n      result:\n\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          # When we OoG, we use up all the gas regardless of the refunds\n          balance: 0\n          nonce: 2\n\n        ec0e71ad0a90ffe1909d27dac207f7680abba42d:\n          shouldnotexist: 1\n        1eeb9ca3824a07c140fc01aa562a3a896f44e790:\n          shouldnotexist: 1\n"
  },
  {
    "path": "tests/static/state_tests/stCreateTest/CreateOOGafterInitCodeFiller.json",
    "content": "{\n    \"CreateOOGafterInitCode\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0\"\n\t\t                }\n\t\t            },\n\t\t            \"0xf1ecf98489fa9ed60a664fc4998db699cfa39d40\" : {\n\t\t                \"shouldnotexist\" : \"1\"\n\t\t            }\n                }\n            },\n\t        {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0\"\n\t\t                }\n\t\t            },\n\t\t            \"0xf1ecf98489fa9ed60a664fc4998db699cfa39d40\" : {\n\t\t                \"code\" : \"0x6001600155\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n\t\t\"nonce\" : \"0\",\n\t\t\"//code\" : \"(SSTORE 1 1) RETURN\",\n\t\t\"code\" : \"{ (MSTORE 0 0x6460016001556000526005601bf3) (CREATE 0 18 14) }\",\n\t\t\"storage\": {\n\t\t}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"54000\", \"55000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreateTest/CreateOOGafterInitCodeReturndata2Filler.json",
    "content": "{\n    \"CreateOOGafterInitCodeReturndata2\" : {\n\t\"_info\" :{\n\t    \"comment\" : \"Call RETURNDATASIZE and RETURNDATACOPY after CREATE deploy a contract. correct returndata copy.\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0\"\n\t\t                }\n\t\t            },\n\t\t            \"0xf1ecf98489fa9ed60a664fc4998db699cfa39d40\" : {\n\t\t                \"shouldnotexist\" : \"1\"\n\t\t            }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0\",\n    \t\t\t            \"0x02\" : \"0x6460016001556000526005601bf3\"\n\t\t                }\n\t\t            },\n\t\t            \"0xf1ecf98489fa9ed60a664fc4998db699cfa39d40\" : {\n\t\t                \"code\" : \"0x6001600155\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n\t\t\"nonce\" : \"0\",\n\t\t\"//code\" : \"(SSTORE 1 1) RETURN\",\n\t\t\"code\" : \"{ (MSTORE 0 0x6460016001556000526005601bf3) (CREATE 0 18 14) [[ 1 ]] (RETURNDATASIZE) (RETURNDATACOPY 0 0 0) [[ 2 ]] (MLOAD 0) }\",\n\t\t\"storage\": {\n\t\t}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"54000\", \"95000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreateTest/CreateOOGafterInitCodeReturndata3Filler.json",
    "content": "{\n    \"CreateOOGafterInitCodeReturndata3\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"Calls a contract that runs CREATE which deploy a code. then OOG happens upon deployment of the actual code. check the RETURN data buffer in initial contract\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"storage\" : {\n                                        \"0x01\" : \"0x00\"\n                                 }\n\t\t            },\n\t\t            \"0xf1ecf98489fa9ed60a664fc4998db699cfa39d40\" : {\n\t\t                \"shouldnotexist\" : \"1\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n\t\t\"nonce\" : \"0\",\n\t\t\"code\" : \"{ (CALLCODE (GAS) 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 32) (RETURNDATACOPY 0 0 32) [[ 1 ]] (MLOAD 0) }\",\n\t\t\"storage\": {\n\t\t}\n            },\n\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n\t\t\"nonce\" : \"0\",\n\t\t\"//code\" : \"(SSTORE 1 1) RETURN\",\n\t\t\"code\" : \"{ (MSTORE 0 0x6460016001556000526005601bf3) (CREATE 0 18 14) }\",\n\t\t\"storage\": {\n\t\t}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"55000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreateTest/CreateOOGafterInitCodeReturndataFiller.json",
    "content": "{\n    \"CreateOOGafterInitCodeReturndata\" : {\n\t\"_info\" :{\n\t    \"comment\" : \"Call RETURNDATASIZE and RETURNDATACOPY after CREATE deploy a contract\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t        \"storage\" : {\n\t\t            \"0x01\" : \"0\"\n\t\t        }\n\t\t    },\n\t\t    \"0xf1ecf98489fa9ed60a664fc4998db699cfa39d40\" : {\n\t\t        \"shouldnotexist\" : \"1\"\n\t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n\t\t\"nonce\" : \"0\",\n\t\t\"//code\" : \"(SSTORE 1 1) RETURN\",\n\t\t\"code\" : \"{ (MSTORE 0 0x6460016001556000526005601bf3) (CREATE 0 18 14) [[ 1 ]] (RETURNDATASIZE) (RETURNDATACOPY 0 0 32) [[ 2 ]] (MLOAD 0) }\",\n\t\t\"storage\": {\n\t\t}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"54000\", \"95000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreateTest/CreateOOGafterInitCodeReturndataSizeFiller.json",
    "content": "{\n    \"CreateOOGafterInitCodeReturndataSize\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"Calls a contract that runs CREATE which deploy a code. then OOG happens upon deployment of the actual code. check the RETURNDATASIZE after create. fails with OOG if RETURNDATASIZE != 0\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t        \"balance\" : \"1\"\n\t\t    },\n\t\t    \"0xf1ecf98489fa9ed60a664fc4998db699cfa39d40\" : {\n\t\t\t\"shouldnotexist\" : \"1\"\n\t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n\t\t\"nonce\" : \"0\",\n\t\t\"//code\" : \"{ (MSTORE 0 0x60016001556001600255) (RETURN 22 10) }\",\n\t\t\"//code\" : \"{ (SSTORE 1 1) (SSTORE 2 1) } \",\n\t\t\"code\" : \"{ (MSTORE 0 0x6960016001556001600255600052600a6016f3) (CREATE 0 13 19) (EXP 2 (RETURNDATASIZE)) }\",\n\t\t\"storage\": {\n\t\t}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"55054\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreateTest/CreateOOGafterInitCodeRevert2Filler.json",
    "content": "{\n    \"CreateOOGafterInitCodeRevert2\" : {\n\t    \"_info\" : {\n\t        \"comment\" : \"Calls a contract that runs CREATE which deploy a code. then after deployment and exiting from CREATE a REVERT is called. check the REVERT data in this case equal to RETURN value of CREATE. CREATE fails due to the deployment cost.\"\n\t    },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t        {\n                \"//comment\" : \"NO OGG HAPPENS\",\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t    \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"storage\" : {\n                            \"0x01\" : \"0x6460016001556000526005601bf3\"\n                         }\n\t\t            },\n\t\t            \"0xf1ecf98489fa9ed60a664fc4998db699cfa39d40\" : {\n\t\t                \"shouldnotexist\" : \"1\"\n\t\t            }\n                }\n            },\n\t        {\n                \"//comment\" : \"OOG DURING CREATE\",\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t    \"d94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"storage\" : {\n                            \"0x01\" : \"0x00\"\n                         }\n\t\t            },\n\t\t            \"0xf1ecf98489fa9ed60a664fc4998db699cfa39d40\" : {\n\t\t                \"shouldnotexist\" : \"1\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"1000000000000000000000000000000000000000\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"{ (CALL (GAS) (CALLDATALOAD 0) 0 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (CALL 33000 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 32) [[ 1 ]] (MLOAD 0) }\",\n\t\t        \"storage\": {\n                    \"0x01\" : \"0xff\"\n\t\t        }\n            },\n    \t    \"d94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (CALL 23000 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 32) [[ 1 ]] (MLOAD 0) }\",\n\t\t        \"storage\": {\n                    \"0x01\" : \"0xff\"\n\t\t        }\n            },\n    \t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"//code\" : \"(SSTORE 1 1) RETURN\",\n\t\t        \"code\" : \"{ (MSTORE 0 0x6460016001556000526005601bf3) (CREATE 0 18 14) (REVERT 0 32) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000c94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                \":raw 0x000000000000000000000000d94f5374fce5edbc8e2a8697c15331677e6ebf0b\"\n            ],\n            \"gasLimit\" : [\n                \"175000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"1000000000000000000000000000000000000000\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreateTest/CreateOOGafterInitCodeRevertFiller.json",
    "content": "{\n    \"CreateOOGafterInitCodeRevert\" : {\n\t    \"_info\" : {\n\t        \"comment\" : \"Calls a contract that runs CREATE which deploy a code. then after deployment and exiting from CREATE a REVERT is called. check the REVERT data in this case equal to RETURN value of CREATE\"\n\t    },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t    \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n        \t\t        \"storage\" : {\n                            \"0x01\" : \"0x6460016001556000526005601bf3\"\n                         }\n        \t\t    },\n        \t\t    \"0xf1ecf98489fa9ed60a664fc4998db699cfa39d40\" : {\n        \t\t        \"shouldnotexist\" : \"1\"\n        \t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (CALL (GAS) 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 32) [[ 1 ]] (MLOAD 0) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n\t        \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"//code\" : \"(SSTORE 1 1) RETURN\",\n\t\t        \"code\" : \"{ (MSTORE 0 0x6460016001556000526005601bf3) (CREATE 0 18 14) (CALLCODE 10000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) (REVERT 0 32) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n            \"094f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n                \"code\" : \"{ (KECCAK256 0x00 0x2fffff) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"285000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreateTest/CreateOOGafterMaxCodesizeFiller.yml",
    "content": "CreateOOGafterMaxCodesize:\n  _info:\n    pytest_marks:\n      - slow\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: 0x100000000\n    currentNumber: \"1\"\n    currentTimestamp: \"1000\"\n\n  pre:\n    # Code that will end up in the created contracts\n    00000000000000000000000000000000000c0de0:\n      balance: 0\n      code: |\n        :yul berlin\n        {\n          // If calldata > 0, self-destruct, otherwise \n          sstore(0, codesize())\n          if gt(calldatasize(), 0) {\n            selfdestruct(0)\n          }\n        }\n      nonce: 0\n      storage: {}\n    # Init code that creates max codesize contracts with 00000000000000000000000000000000000c0de0 code\n    00000000000000000000000000000000000c0de1:\n      balance: 0\n      code: |\n        :yul berlin\n        {\n          // Init code that uses max codesize and can be called to selfdestruct\n          let code_addr := 0x00000000000000000000000000000000000c0de0\n          extcodecopy(code_addr, 0, 0, extcodesize(code_addr))\n          return(0, 0x6000)\n        }\n      nonce: 0\n      storage: {}\n    00000000000000000000000000000000000c0deb:\n      balance: 0\n      # The purpose of this contract is to create a given number of max-codesize-contracts, specified by the first argument of the call.\n      # The created contracts can self-destruct when called.\n      # The second parameter is used to determine if this call should OOG instead of returning,\n      # which should revert the creation of any contracts.\n      code: |\n        :yul berlin\n        {\n          sstore (1, 1)\n          let contract_count := calldataload(0)\n          let should_oog := calldataload(32)\n\n          // get the init code that returns max codesize from another contract\n          let initcode_addr := 0x00000000000000000000000000000000000c0de1\n          let initcode_size := extcodesize(initcode_addr)\n          extcodecopy(initcode_addr, 0, 0, initcode_size)\n\n          // create contracts with max codesize in loop\n          for { let i := 0 } lt(i, contract_count) { i := add(i, 1) }\n          {\n              let address_created := create(0, 0, initcode_size)\n              mstore( add(initcode_size, mul(i, 32)), address_created )\n          }\n          if gt(should_oog, 0) {\n            invalid()\n          }\n          return(initcode_size, mul(contract_count, 32))\n        }\n      nonce: 1\n      storage: {}\n\n    00000000000000000000000000000000000c0dea:\n      balance: 0\n      # This test contract performs 3 actions, which are configured by the parameters passed:\n      # First action is to delegate call 0xc0deb to create self-destructing contracts on 0xc0dea context without OOG'ing;\n      # this way we can create max-codesize-contracts that later can be self-destructed.\n      # Second action is to call 0xc0deb, in a call that creates several max-codesize-contracts and can OOG, to test the contract\n      # creation correctly reverts.\n      # Third action is to call the created contracts for self-destruct, which will test the max-codesize-contracts are\n      # correctly removed.\n      code: |\n        :yul berlin\n        {\n\n          // Get the amount of contracts to create on this level\n          let delegate_contract_count := calldataload(4)\n\n          // Get the amount of contracts to create on the sub level call\n          let subcall_contract_count := calldataload(36)\n\n          // Get whether the subcall should oog\n          let subcall_oog := calldataload(68)\n\n          // Get count of contracts to call to self-destruct\n          let selfdestruct_count := calldataload(100)\n\n          // Delegate call for contract creation\n          mstore(0, delegate_contract_count)\n          mstore(32, 0)\n          let returnStart := 64\n          let returnLength := mul(delegate_contract_count, 32)\n          let retcode := delegatecall(div(gas(), 2), 0x00000000000000000000000000000000000c0deb, 0, 64, returnStart, returnLength)\n\n          if eq(retcode, 0) {\n            // We oog'd, fail test\n            revert(0, 0)\n          }\n\n          // Call for OOG contract creation\n          mstore(0, subcall_contract_count)\n          mstore(32, subcall_oog)\n          returnStart := add(64, mul(delegate_contract_count, 32))\n          returnLength := mul(subcall_contract_count, 32)\n          retcode := call(div(gas(), 2), 0x00000000000000000000000000000000000c0deb, 0,\t0, 64, returnStart, returnLength)\n\n          if eq(retcode, 0) {\n            // We oog'd\n            if eq(subcall_oog, 0) {\n              // We shouldn't have\n              revert(0, 0)\n            }\n          }\n\n          let contract_created_count := delegate_contract_count\n          if eq(subcall_oog, 0) {\n            contract_created_count := add(delegate_contract_count, subcall_contract_count)\n          }\n          // Call all contracts so they sstore their codesize()\n          for { let i := 0 } lt(i, contract_created_count) { i := add(i, 1) }\n          {\n              let contract_addr := mload(add(64, mul(i, 32)))\n              pop(call(sub(gas(), 1000), contract_addr, 0, 0, 0, 0, 0))\n          }\n\n          // Self-destruct contracts\n          for { let i := 0 } lt(i, selfdestruct_count) { i := add(i, 1) }\n          {\n              let contract_addr := mload(add(64, mul(i, 32)))\n              pop(call(sub(gas(), 1000), contract_addr, 0, 0, 1, 0, 0))\n          }\n\n        }\n      nonce: 1\n      storage: {}\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n  transaction:\n    data:\n    # - Low number of contracts (10): Create 0 contracts at 0xc0dea, 10 contracts at 0xc0deb, OOG on 0xc0deb, call 0 contracts to self-destruct.\n    - :label LowContractCount_NoDelegateCreate_CallCreateOOG :abi f(uint,uint,bool,uint) 0x00 0x0a 0x01 0x00\n    # - Low number of contracts (10): Create 10 contracts at 0xc0dea, 10 contracts at 0xc0deb, OOG on 0xc0deb, call 0 contracts to self-destruct.\n    - :label LowContractCount_DelegateCreate_CallCreateOOG :abi f(uint,uint,bool,uint) 0x0a 0x0a 0x01 0x00\n    # - Low number of contracts (10): Create 10 contracts at 0xc0dea, 10 contracts at 0xc0deb, don't OOG on 0xc0deb, call 14 out of 20 contracts to self-destruct.\n    - :label LowContractCount_DelegateCreate_CallCreate_SelfDestruct :abi f(uint,uint,bool,uint) 0x0a 0x0a 0x00 0x0e\n    # - High number of contracts (250): Create 0 contracts at 0xc0dea, 250 contracts at 0xc0deb, OOG on 0xc0deb, call 0 contracts to self-destruct.\n    - :label HighContractCount_NoDelegateCreate_CallCreateOOG :abi f(uint,uint,bool,uint) 0x00 0xfa 0x01 0x00\n    # - High number of contracts (250): Create 250 contracts at 0xc0dea, 250 contracts at 0xc0deb, OOG on 0xc0deb, call 0 contracts to self-destruct.\n    - :label HighContractCount_DelegateCreate_CallCreateOOG :abi f(uint,uint,bool,uint) 0xfa 0xfa 0x01 0x00\n    # - High number of contracts (250): Create 250 contracts at 0xc0dea, 250 contracts at 0xc0deb, don't OOG on 0xc0deb, call 494 out of 500 contracts to self-destruct.\n    - :label HighContractCount_DelegateCreate_CallCreate_SelfDestruct :abi f(uint,uint,bool,uint) 0xfa 0xfa 0x00 0x01ee\n    gasLimit:\n    - 0x100000000\n    gasPrice: '10'\n    nonce: '0'\n    to: 00000000000000000000000000000000000c0dea\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n    value:\n    - 0\n\n  expect:\n\n    - indexes:\n        data: \n        - :label LowContractCount_NoDelegateCreate_CallCreateOOG\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun<Osaka'\n      result:\n\n        00000000000000000000000000000000000c0dea:\n          nonce: 1\n          storage:\n            0x1: 0x1\n\n        00000000000000000000000000000000000c0deb:\n          nonce: 1\n          storage: {}\n\n        # Call contracts (OOG'd):\n        # #1\n        76e2310dc9277b22ffceb40d49229131674ebe02:\n          shouldnotexist: 1\n        # #10\n        b3210b741a5dfbddc1636521965b3558defa3e60:\n          shouldnotexist: 1\n\n    - indexes:\n        data:\n        - :label LowContractCount_DelegateCreate_CallCreateOOG\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun<Osaka'\n      result:\n\n        00000000000000000000000000000000000c0dea:\n          nonce: 11\n          storage:\n            0x1: 0x1\n\n        00000000000000000000000000000000000c0deb:\n          nonce: 1\n          storage: {}\n\n        # Delegatecall contracts (No OOG):\n        # #1\n        396b47fae89161b1959b5a833acf816be526b860:\n          storage: {\n            '0': '0x6000'\n          }\n        # #10\n        bd205415c24eb289b6a275baae74527b92b49fe2:\n          storage: {\n            '0': '0x6000'\n          }\n        \n        # Call contracts (OOG'd):\n        # #1\n        76e2310dc9277b22ffceb40d49229131674ebe02:\n          shouldnotexist: 1\n        # #10\n        b3210b741a5dfbddc1636521965b3558defa3e60:\n          shouldnotexist: 1\n\n    - indexes:\n        data:\n        - :label LowContractCount_DelegateCreate_CallCreate_SelfDestruct\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun<Osaka'\n      result:\n\n        00000000000000000000000000000000000c0dea:\n          nonce: 11\n          storage:\n            0x1: 0x1\n\n        00000000000000000000000000000000000c0deb:\n          nonce: 11\n          storage:\n            0x1: 0x1\n\n        # Delegatecall contracts (No OOG, Self-destructed):\n        # #1\n        396b47fae89161b1959b5a833acf816be526b860:\n          shouldnotexist: 1\n        # #10\n        bd205415c24eb289b6a275baae74527b92b49fe2:\n          shouldnotexist: 1\n        \n        # Call contracts (No OOG, Self-destructed):\n        # #1\n        76e2310dc9277b22ffceb40d49229131674ebe02:\n          shouldnotexist: 1\n        # #4\n        936d5e529580a9cc92bc2b2963a9d0a99f437e89:\n          shouldnotexist: 1\n\n        # Call contracts (No OOG, Not Self-destructed):\n        # #5\n        2e5a5ec103443f6b299cf31a52c69cf222ae4e6b:\n          storage: {\n            '0': '0x6000'\n          }\n        # #6\n        bade62b355fe6b7117f4f7c913321b318ca3a4da:\n          storage: {\n            '0': '0x6000'\n          }\n        # #7\n        d8a8f3569a1d76027f9ece5010489576897014ea:\n          storage: {\n            '0': '0x6000'\n          }\n        # #8\n        fcdccc3b46b9fbe71221061091e8fe82b77e02f2:\n          storage: {\n            '0': '0x6000'\n          }\n        # #9\n        67262aa10552371ec665c2f90c56d9d65c16715e:\n          storage: {\n            '0': '0x6000'\n          }\n        # #10\n        b3210b741a5dfbddc1636521965b3558defa3e60:\n          storage: {\n            '0': '0x6000'\n          }\n\n    - indexes:\n        data:\n        - :label HighContractCount_NoDelegateCreate_CallCreateOOG\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun<Osaka'\n      result:\n\n        00000000000000000000000000000000000c0dea:\n          nonce: 1\n          storage:\n            0x1: 0x1\n\n        00000000000000000000000000000000000c0deb:\n          nonce: 1\n          storage: {}\n\n        # Call contracts (OOG'd):\n        # #1\n        76e2310dc9277b22ffceb40d49229131674ebe02:\n          shouldnotexist: 1\n        # #250\n        782f34ee13897680a5000838ce53d07b9558b5e2:\n          shouldnotexist: 1\n\n    - indexes:\n        data:\n        - :label HighContractCount_DelegateCreate_CallCreateOOG\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun<Osaka'\n      result:\n\n        00000000000000000000000000000000000c0dea:\n          nonce: 251\n          storage:\n            0x1: 0x1\n\n        00000000000000000000000000000000000c0deb:\n          nonce: 1\n          storage: {}\n\n        # Delegatecall contracts (No OOG):\n        # #1\n        396b47fae89161b1959b5a833acf816be526b860:\n          storage: {\n            '0': '0x6000'\n          }\n        # #250\n        336debb8ce5a3cf4b40be471ac04f77b51f2d2e1:\n          storage: {\n            '0': '0x6000'\n          }\n        \n        # Call contracts (OOG'd):\n        # #1\n        76e2310dc9277b22ffceb40d49229131674ebe02:\n          shouldnotexist: 1\n        # #250\n        782f34ee13897680a5000838ce53d07b9558b5e2:\n          shouldnotexist: 1\n\n    - indexes:\n        data:\n        - :label HighContractCount_DelegateCreate_CallCreate_SelfDestruct\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun<Osaka'\n      result:\n\n        00000000000000000000000000000000000c0dea:\n          nonce: 251\n          storage:\n            0x1: 0x1\n\n        00000000000000000000000000000000000c0deb:\n          nonce: 251\n          storage:\n            0x1: 0x1\n\n        # Delegatecall contracts (No OOG, Self-destructed):\n        # #1\n        396b47fae89161b1959b5a833acf816be526b860:\n          shouldnotexist: 1\n        # #250\n        336debb8ce5a3cf4b40be471ac04f77b51f2d2e1:\n          shouldnotexist: 1\n        \n        # Call contracts (No OOG, Self-destructed):\n        # #1\n        76e2310dc9277b22ffceb40d49229131674ebe02:\n          shouldnotexist: 1\n        # #244\n        638e1b782452eaf5270509651f665d2c00e599ff:\n          shouldnotexist: 1\n          \n        # Call contracts (No OOG, Not Self-destructed):\n        # #245\n        511c6c5591eacfc8b9bf2658916225418508f548:\n          storage: {\n            '0': '0x6000'\n          }\n        # #246\n        9ca6a1cfda677fc2679fce570dd47120686cb7c0:\n          storage: {\n            '0': '0x6000'\n          }\n        # #247\n        df7cd0b9839e4d93b98f09bf4c79366b9ffbe638:\n          storage: {\n            '0': '0x6000'\n          }\n        # #248\n        ee8b40edee25283a8c934b9c3a2ad8c848dc61b9:\n          storage: {\n            '0': '0x6000'\n          }\n        # #249\n        e0fad4310f169961f052ac02bb70707ebfa3ece2:\n          storage: {\n            '0': '0x6000'\n          }\n        # #250\n        782f34ee13897680a5000838ce53d07b9558b5e2:\n          storage: {\n            '0': '0x6000'\n          }\n"
  },
  {
    "path": "tests/static/state_tests/stCreateTest/CreateResultsFiller.yml",
    "content": "CreateResults:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: 0x100000000\n    currentNumber: \"1\"\n    currentTimestamp: \"1000\"\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n\n  pre:\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code:   | \n        {\n          ; Variables are 0x20 bytes (= 256 bits) apart, except for\n          ; code buffers that get 0x100 (256 bytes)\n          (def 'creation          0x100)\n          (def 'callType          0x120)\n          (def 'constructor       0x140)\n          (def 'contractCode      0x200)\n          (def 'constructorCode   0x300)\n          (def 'extCode           0x400)\n          (def 'contractLength    0x520)\n          (def 'constructorLength 0x540)\n          (def 'extLength         0x560)\n          (def 'addr1             0x600)\n          (def 'addr2             0x620)\n          (def 'callRet           0x640)\n          (def 'retData0          0x160)   ; storage for returned data\n          ; Other constants\n          (def 'NOP 0)   ; No OPeration\n          ; Understand the input.\n          [creation]       $0x04\n          [callType]       $0x24\n          [constructor]    $0x44\n          ; The contract code          \n          (def 'contractMacro\n                    (lll\n                       (call 0xFFFF 0x60A7 0 0 0 0 0)\n                       contractCode\n                    ) ; inner lll\n          )\n          ; I did not want to rely on knowing the address at which the contract\n          ; will get created, because the algorithm might change in the future\n          ; (for CREATE, anyway - CREATE2 is supposed to give fixed results). \n          ; So to know that the created contract has been called successfully it\n          ; calls the 0x60a7 account, and that account changes its storage in a\n          ; way that the expect: section can identify.\n          \n          ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n          ; Create the contract and a constructor to pass to CREATE[2]\n          ;\n          (if (or (= @constructor 0) (= @constructor 4))\n            [constructorLength] \n              (lll   ; successful constructor\n                 (return contractCode contractMacro)    \n                  constructorCode\n              )\n              NOP\n            )\n          (if (= @constructor 1) \n            [constructorLength] \n              (lll {   ; constructor if out of gas\n                 (KECCAK256 0x00 0x2fffff)\n                 (return contractCode contractMacro)    \n               }\n               constructorCode\n              )       ; outer lll, if out of gas\n              NOP\n            )\n          (if (= @constructor 2) \n            [constructorLength] \n              (lll {   ; constructor if revert (no data)\n                 (revert 0 0)\n                 (return contractCode contractMacro)    \n                } \n                constructorCode\n              )       ; outer lll, revert\n              NOP\n            )\n          (if (= @constructor 3) \n            [constructorLength] \n              (lll {   ; constructor if revert with data\n                 [0] 0x60A7\n                 (revert 0 0x20) \n                 (return contractCode contractMacro)    \n                } \n                constructorCode\n              )       ; outer lll, revert\n              NOP\n            )\n          (if (= @constructor 5) \n            [constructorLength] \n              (lll {   ; constructor if STOP\n                 [0] 0x60A7\n                 (stop) \n                 (return contractCode contractMacro)    \n                } \n                constructorCode\n              )       ; outer lll, revert\n              NOP\n            )\n          (if (= @constructor 6) \n            [constructorLength] \n              (lll {   ; constructor if SELFDESTRUCT\n                 [0] 0x60A7\n                 (selfdestruct 0)\n                 (return contractCode contractMacro)    \n                } \n                constructorCode\n              )       ; outer lll, revert\n              NOP\n            )\n          ; Write the contract to our own memory (as the 0xcc...cc contract)\n          [contractLength] contractMacro\n          ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n          ; Actually create the contract\n          ;\n          (if (= @creation 1)\n            [addr1] (create 0 constructorCode @constructorLength)\n            [addr1] (create2 0 constructorCode @constructorLength 0x5a17)\n          )\n          ; PC immediately after contract creation\n          [[0x20]] (pc)\n          ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n          ; RETURNDATASIZE should be zero, except in revert with data\n          ;\n          [[0x10]] (returndatasize)\n   \n          ; Either there is data or we want to see what happens when we\n          ; read data that isn't there\n          (if (or (returndatasize) (= @constructor 4))\n             {\n                  (returndatacopy retData0 0 0x20)\n                  [[0x11]] @retData0\n             }\n             NOP\n          )\n\n          ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n          ; EXTCODE should match what we sent in the constructor\n          ;\n\n          [extLength] (extcodesize @addr1)\n          (extcodecopy @addr1 extCode 0 @extLength)\n\n          [[0x12]] (- @contractLength @extLength)\n          [[0x13]] (- @contractCode   @extCode)\n\n          ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n          ; CALL the created contract\n\n          (if (= @callType 1)\n             [callRet] (call 0xFFFF @addr1 0 0 0 0 0)\n\n\n             NOP\n          )\n\n          (if (= @callType 2)\n             [callRet] (callcode 0xFFFF @addr1 0 0 0 0 0)\n             NOP\n          )\n\n          (if (= @callType 3)\n             [callRet] (delegatecall 0xFFFF @addr1 0 0 0 0)\n             NOP\n          )\n\n          (if (= @callType 4)\n             [callRet] (staticcall 0xFFFF @addr1 0 0 0 0)\n             NOP\n          )\n\n          [[0x21]] (pc)\n\n          (if (!= @callType 0) {\n            [[0x14]] (- @callRet 1)            \n            [[0x15]] (returndatasize)  \n          }  NOP)   ; callType not zero\n        }   ; end of LLL code\n      nonce: '0'\n      storage:\n        0x10: 0x60A7   # Return data size from contract creation (should be 0)\n        0x12: 0x60A7   # Difference between size of code we sent and code that\n                       # is in the contract (should be zero)\n        0x13: 0x60A7   # Difference between first 0x20 bytes of code we sent\n                       # and code in the contract (should be zero)\n        0x14: 0x60A7   # If call happened, replaced by <result of call> -1 \n                       # (so zero if call OK)\n        0x15: 0x60A7   # Size of the returned data from the call (0)\n        0x20: 0x60A7   # PC after the CREATE[2]\n        0x21: 0x60A7   # PC after the CALL / DELEGATECALL / etc.\n\n\n\n    00000000000000000000000000000000000060A7:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code:   | \n        {\n          [[0]] 0x60A7\n        }   ; end of LLL code\n      nonce: '0'\n      storage: {}\n\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n  transaction:\n    data:\n    # Create type:    01 - CREATE  02 - CREATE2\n\n    # Call   type:    01 - CALL    02 - CALLCODE    \n    #                 03 - DELEGATECALL  04 - STATIC\n    #                 00 - No call, the contract is not created anyway\n\n    # Constructor:    00 - SUCCESS (return data) 01 - Out of gas  \n    #                 02 - REVERT   03 - REVERT with Data\n    #                 04 - SUCCESS in the constructor, but then\n    #                      the main contract reverts\n    #                 05 - STOP\n    #                 06 - SELFDESTRUCT   \n\n    # SUCCESS, contract can be called (0-7)\n    - :abi f(uint,uint,uint) 1 1 0\n    - :abi f(uint,uint,uint) 1 2 0\n    - :abi f(uint,uint,uint) 1 3 0\n    - :abi f(uint,uint,uint) 1 4 0\n    - :abi f(uint,uint,uint) 2 1 0\n\n    # 5 \\/\n    - :abi f(uint,uint,uint) 2 2 0\n    - :abi f(uint,uint,uint) 2 3 0\n    - :abi f(uint,uint,uint) 2 4 0\n\n    # Constructor fails  (8-15)\n    # 1 - out of gas\n    # 2 - revert\n    # 5 - stop\n    # 6 - self destruct\n    - :abi f(uint,uint,uint) 1 0 1\n    - :abi f(uint,uint,uint) 2 0 1\n    # 10 \\/\n    - :abi f(uint,uint,uint) 1 0 2\n    - :abi f(uint,uint,uint) 2 0 2\n    - :abi f(uint,uint,uint) 1 0 5\n    - :abi f(uint,uint,uint) 2 0 5\n    - :abi f(uint,uint,uint) 1 0 6\n    # 15 \\/\n    - :abi f(uint,uint,uint) 2 0 6\n\n    # Constructor reverts with data (16-17)\n    - :abi f(uint,uint,uint) 1 0 3\n    - :abi f(uint,uint,uint) 2 0 3\n\n    # Constructor successful, called contract reverts (18-25)\n    - :abi f(uint,uint,uint) 1 1 4\n    - :abi f(uint,uint,uint) 1 2 4\n    # 20 \\/\n    - :abi f(uint,uint,uint) 1 3 4\n    - :abi f(uint,uint,uint) 1 4 4\n    - :abi f(uint,uint,uint) 2 1 4\n    - :abi f(uint,uint,uint) 2 2 4\n    - :abi f(uint,uint,uint) 2 3 4\n    # 25 \\/\n    - :abi f(uint,uint,uint) 2 4 4\n\n\n\n    gasLimit:\n    - 0x900000\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n    value:\n    - 0\n\n  expect:\n\n    # All but static calls (which cannot change storage), with sufficient gas\n    - indexes:\n        data:\n        - !!int 0\n        - !!int 1\n        - !!int 2\n        - !!int 4\n        - !!int 5\n        - !!int 6\n        gas:  !!int 0\n        value: !!int 0\n      network:\n        - '>=Cancun'\n      result:\n\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            # Zero if all goes well \n            # 0x10 - RETURNDATASIZE from the constructor\n            # 0x12 - external code size minus contract code size\n            # 0x13 - difference in first 0x20 bytes between \n            #        external code and contract code\n            # 0x14 - if the return value from the call isn't zero\n            # 0x15 - RETURNDATASIZE from the call\n            0x20: 0x0127    # PC after CREATE[2]\n            0x21: 0x0227    # PC after CALL/DELEGATECALL/etc\n\n\n        # Verify the created contract has been called\n        00000000000000000000000000000000000060A7:\n          storage:\n            0:    0x60A7 \n\n    # Static calls cannot change the goat's value, with sufficient gas\n    - indexes:\n        data: \n        - !!int 3\n        - !!int 7\n        gas:  !!int 0\n        value: !!int 0\n      network:\n        - '>=Cancun'\n      result:\n\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            # Zero if all goes well \n            # 0x10 - RETURNDATASIZE from the constructor\n            # 0x12 - external code size minus contract code size\n            # 0x13 - difference in first 0x20 bytes between \n            #        external code and contract code\n            # 0x14 - if the return value from the call isn't zero\n            # 0x15 - RETURNDATASIZE from the call\n            0x20: 0x0127    # PC after CREATE[2]\n            0x21: 0x0227    # PC after CALL/DELEGATECALL/etc\n\n\n    # If the constructor fails:\n    # 1. Out of gas\n    # 2. Revert (no data)\n    # 5. STOP (no data)\n    # 6. SELFDESTRUCT\n    - indexes:\n        data: \n        - !!int 8\n        - !!int 9\n        - !!int 10\n        - !!int 11\n        - !!int 12\n        - !!int 13\n        - !!int 14\n        - !!int 15\n        gas:  !!int 0\n        value: !!int 0\n      network:\n        - '>=Cancun'\n      result:\n\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            # Zero if all goes well \n            # 0x10 - RETURNDATASIZE from the constructor\n            # 0x13 - if the return value from the call isn't zero\n            # 0x14 - RETURNDATASIZE from the call\n\n\n            # 0x12 - external code size minus contract code size\n            0x12: 0x12\n\n            # 0x13 - difference in first 0x20 bytes between \n            #        external code and contract code\n            0x13: 0x600060006000600060006160a761fffff1000000000000000000000000000000\n\n            # Not modified by call type zero (no call)\n            0x14: 60A7\n            0x15: 60A7\n\n            0x20: 0x0127    # PC after CREATE[2]\n            0x21: 0x0227    # PC after CALL/DELEGATECALL/etc\n\n\n\n    # If the constructor reverts with data\n    - indexes:\n        data: \n        - !!int 16\n        - !!int 17\n        gas:  !!int 0\n        value: !!int 0\n      network:\n        - '>=Cancun'\n      result:\n\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n\n            # 0x10 - RETURNDATASIZE from the constructor\n            0x10: 0x20 \n\n            # 0x11 - Returned data (from the constructor at revert)\n            0x11: 0x60A7\n\n            # 0x12 - external code size minus contract code size\n            0x12: 0x12\n\n            # 0x13 - difference in first 0x20 bytes between \n            #        external code and contract code\n            0x13: 0x600060006000600060006160a761fffff1000000000000000000000000000000\n\n            # Not modified by call type zero\n            0x14: 60A7\n            0x15: 60A7\n\n\n            0x20: 0x0127    # PC after CREATE[2]\n            0x21: 0x0227    # PC after CALL/DELEGATECALL/etc\n\n\n\n\n\n\n\n    # If we trigger a revert on the main contract by reading unavailable data\n    - indexes:\n        data: \n        - !!int 18\n        - !!int 19\n        - !!int 20\n        - !!int 21\n        - !!int 22\n        - !!int 23\n        - !!int 24\n        - !!int 25\n        gas:  !!int 0\n        value: !!int 0\n      network:\n        - '>=Cancun'\n      result:\n\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            # 0x11 - Value we attempted to read (and failed)\n            0x11: 0\n\n            # Goats that don't get overwritten because we reverted\n            0x10: 0x60A7\n            0x12: 0x60A7\n            0x13: 0x60A7\n            0x14: 0x60A7\n            0x15: 0x60A7\n            0x20: 0x60A7\n            0x21: 0x60A7\n\n"
  },
  {
    "path": "tests/static/state_tests/stCreateTest/CreateTransactionCallDataFiller.yml",
    "content": "CreateTransactionCallData:\n  _info:\n    comment: |\n      Tests if CALLDATALOAD, CALLDATACOPY, CODECOPY and CODESIZE work correctly in initcode context:\n      call data is always empty in initcode context and \"code\" is initcode.\n  env:\n    currentCoinbase: a94f5374fce5edbc8e2a8697c15331677e6ebf0b\n    currentDifficulty: 1\n    currentGasLimit: 1000000\n    currentNumber: 1\n    currentTimestamp: 1000\n  pre:\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      nonce: 0\n      balance: 100000000000000\n      storage: { }\n      code: ''\n  transaction:\n    data:\n      - |\n        :label calldataload :yul berlin {\n          // calldata should be empty so all calldataload() should return 0.\n          sstore(0, calldataload(0))\n          sstore(1, calldataload(33))\n        }\n      - |\n        :label calldatacopy :yul berlin {\n          // calldata should be empty so all calldatacopy() should zero memory.\n          calldatacopy(0, 0, 1)\n          sstore(0, mload(0))\n          calldatacopy(0, 1, 32)\n          sstore(1, mload(0))\n        }\n      - |\n        :label codecopy :yul berlin {\n          // codecopy() should copy initcode.\n          codecopy(0, 0, codesize())\n          return(0, codesize())\n        }\n    gasLimit: [ 100000 ]\n    gasPrice: 10\n    nonce: 0\n    secretKey: 45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\n    to: ''\n    value: [ 0 ]\n  expect:\n    - indexes:\n        data:\n          - :label calldataload\n          - :label calldatacopy\n      network:\n        - \">=Cancun\"\n      result:\n        6295ee1b4f6dd65047762f924ecd367c17eabf8f:\n          code: ''\n          nonce: 1\n          storage: { }\n    - indexes:\n        data:\n          - :label codecopy\n      network:\n        - \">=Cancun\"\n      result:\n        6295ee1b4f6dd65047762f924ecd367c17eabf8f:\n          code: '0x3860008039386000f3'\n          nonce: 1\n          storage: { }\n"
  },
  {
    "path": "tests/static/state_tests/stCreateTest/CreateTransactionHighNonceFiller.yml",
    "content": "CreateTransactionHighNonce:\n  _info:\n    comment: |\n      The test check if the create transaction is reject if the origin's nonce is maximum value\n      (and would overflow if increased by 1).\n  env:\n    currentCoinbase: a94f5374fce5edbc8e2a8697c15331677e6ebf0b\n    currentDifficulty: 1\n    currentGasLimit: 1000000\n    currentNumber: 1\n    currentTimestamp: 1000\n  expect:\n    - indexes:\n        data: !!int -1\n      network:\n        - \">=Cancun\"\n      expectException:\n        \">=Cancun\": \"TransactionException.NONCE_IS_MAX\"\n      result: {}\n  pre:\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      nonce: '0xffffffffffffffff'\n      balance: 100000000000000\n      storage: {}\n      code: ''\n  transaction:\n    data:\n      - |\n        :yul berlin {\n          return(0, 1)\n        }\n    gasLimit:\n      - 90000\n    gasPrice: 10\n    nonce: '0xffffffffffffffff'\n    secretKey: 45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\n    to: ''\n    value:\n      - 0\n      - 1\n"
  },
  {
    "path": "tests/static/state_tests/stCreateTest/CreateTransactionRefundEFFiller.yml",
    "content": "CreateTransactionRefundEF:\n  _info:\n    comment: |\n      Test combination of gas refund and EF-prefixed create transaction failure.\n  env:\n    currentCoinbase: a94f5374fce5edbc8e2a8697c15331677e6ebf0b\n    currentDifficulty: 1\n    currentGasLimit: 1000000\n    currentNumber: 1\n    currentTimestamp: 1000\n  pre:\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      nonce: 0\n      balance: 100000000000000\n      storage: { }\n      code: ''\n\n    # Provides gas refund.\n    00000000000000000000000000000000005ef94d:\n      nonce: 0\n      balance: 0\n      storage:\n        0: 1\n      code: |\n        :yul berlin {\n          sstore(0,0)\n        }\n\n  transaction:\n    data:\n      - |\n        :label refund_EF :yul berlin {\n          // call gas refund provider\n          let r := call(50000, 0x5ef94d, 0, 0, 0, 0, 0)\n          // return 0xEF\n          mstore8(0,0xEF)\n          return(0,1)\n        }\n    gasLimit: [ 100000 ]\n    gasPrice: 10\n    nonce: 0\n    secretKey: 45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\n    to: ''\n    value: [ 0 ]\n  expect:\n\n    - indexes:\n        data:\n          - :label refund_EF\n      network:\n        - \">=Cancun\"\n      result:\n        00000000000000000000000000000000005ef94d:\n          storage:\n            0: 1\n        6295ee1b4f6dd65047762f924ecd367c17eabf8f:\n          shouldnotexist: true\n"
  },
  {
    "path": "tests/static/state_tests/stCreateTest/TransactionCollisionToEmpty2Filler.json",
    "content": "{\n    \"TransactionCollisionToEmpty2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : 0\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"nonce\" : \"1\"\n\t\t            },\n\t\t            \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"balance\" : \"10\",\n    \t\t\t        \"nonce\" : \"1\",\n    \t\t\t        \"storage\" : {\n                            \"0x01\" : \"0x01\"\n                        }\n\t\t            }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : 1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"nonce\" : \"1\"\n\t\t            },\n\t\t            \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"balance\" : \"11\",\n    \t\t\t        \"nonce\" : \"1\",\n    \t\t\t        \"storage\" : {\n                            \"0x01\" : \"0x01\"\n                        }\n\t\t            }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"nonce\" : \"1\"\n\t\t            },\n\t\t            \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"balance\" : \"10\",\n    \t\t\t        \"nonce\" : \"0\",\n    \t\t\t        \"storage\" : {\n                        }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n        \t\t\"balance\" : \"10\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n\t    }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x6001600155\"\n            ],\n            \"gasLimit\" : [\n                \"600000\", \"54000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"0\", \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreateTest/TransactionCollisionToEmptyButCodeFiller.json",
    "content": "{\n    \"TransactionCollisionToEmptyButCode\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"nonce\" : \"1\"\n\t\t            },\n\t\t            \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t            \"nonce\" : \"0\",\n\t\t\t            \"code\" : \"0x1122334455\",\n\t\t\t            \"storage\" : {\n                            \"0x01\" : \"0x00\"\n                        }\n\t\t            }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                    \"result\" : {\n\t\t                \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                    \"nonce\" : \"1\"\n\t\t                },\n    \t\t            \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n        \t\t\t        \"nonce\" : \"0\",\n        \t\t\t        \"code\" : \"0x1122334455\",\n        \t\t\t        \"storage\" : {\n                            }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n        \t\t\"balance\" : \"\",\n                \"code\" : \":raw 0x1122334455\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n    \t    }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x6001600155\"\n            ],\n            \"gasLimit\" : [\n                \"600000\", \"54000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"0\", \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreateTest/TransactionCollisionToEmptyButNonceFiller.json",
    "content": "{\n    \"TransactionCollisionToEmptyButNonce\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : [0,1],\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"nonce\" : \"1\"\n\t\t            },\n\t\t            \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n    \t\t\t        \"nonce\" : \"1\",\n    \t\t\t        \"storage\" : {\n                            \"0x01\" : \"0x00\"\n                        }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n            {\n                \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                    \"balance\" : \"1000000000000\",\n                    \"code\" : \"\",\n                    \"nonce\" : \"0\",\n                    \"storage\" : {\n                    }\n                },\n        \t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t            \t\"balance\" : \"\",\n                    \"code\" : \"\",\n                    \"nonce\" : \"1\",\n                    \"storage\" : {\n                    }\n\t        }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x6001600155\"\n            ],\n            \"gasLimit\" : [\n                \"600000\", \"54000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"0\", \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stCreateTest/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stCreateTest/createFailResultFiller.yml",
    "content": "# Run CREATE[2] operations with different amounts of gas so they'll go OOG,\n# REVERT, or be successful. This can create a return buffer with information\n# about the failure according to https://eips.ethereum.org/EIPS/eip-211:\n#\n# As an exception, CREATE and CREATE2 are considered to return the empty buffer \n# in the success case and the failure data in the failure case.\n#\n# Requested in issue #942\n\n\ncreateFailResult:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: \"100000000\"\n    currentNumber: \"1\"\n    currentTimestamp: \"1000\"\n\n  _info:\n    comment: Ori Pomerantz   qbzzt1@gmail.com\n\n\n  pre:\n    # Just return with some data to fill up the returndata buffer\n    000000000000000000000000000000000000DA7A:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin\n       {\n           mstore(0x00, 0xDEADBEEF)\n           mstore(0x20, 0x60A7)\n \n           // Return with two words of data\n           return(0, 0x40)\n       }        \n      nonce: 1\n      storage: {}\n\n\n    # Constructor code for BAD constructor (one that returns with REVERT)\n    0000000000000000000000000000000000000BAD:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin\n       {\n          mstore(0, 0x0BAD0BAD0BAD)\n          revert(0, 0x20)\n       }        \n      nonce: 1\n      storage: {}\n\n\n    # Constructor code for 600D constructor (one that returns with RETURN)\n    000000000000000000000000000000000000600D:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin\n       {\n          mstore(0, 0x600D)\n          return(0, 0x20)\n       }        \n      nonce: 1\n      storage: {}\n    \n\n\n\n    # CREATE\n    0000000000000000000000000000000000C0DEF0:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin\n       {\n          // Before the main call, call DA7A to fill up the return buffer\n          sstore(0x10, call(gas(), 0xDA7A, 0, 0, 0, 0x100, 0x40))\n          sstore(0x11, returndatasize())\n          sstore(0x12, mload(0x100))\n          sstore(0x13, mload(0x120))\n\n\n          // Read the constructor code from the appropriate contract\n          let srcAddr := calldataload(0)   // either 600D or BAD\n\n          let codeSize := extcodesize(srcAddr)      \n          extcodecopy(srcAddr, 0, 0, codeSize)\n\n          // Create\n          sstore(0,create(0, 0, codeSize))\n\n          // If we have a returned buffer, see what it is\n          sstore(1,returndatasize())\n          returndatacopy(0x200, 0, returndatasize())\n          sstore(2, mload(0x200))\n          sstore(3, mload(0x220))\n       }        \n      nonce: 1\n      storage: {}\n\n\n    # CREATE2\n    0000000000000000000000000000000000C0DEF5:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin\n       {\n          // Before the main call, call DA7A to fill up the return buffer\n          sstore(0x10, call(gas(), 0xDA7A, 0, 0, 0, 0x100, 0x40))\n          sstore(0x11, returndatasize())\n          sstore(0x12, mload(0x100))\n          sstore(0x13, mload(0x120))\n\n          // Read the constructor code from the appropriate contract\n          let srcAddr := calldataload(0)   // either 600D or BAD\n\n          let codeSize := extcodesize(srcAddr)      \n          extcodecopy(srcAddr, 0, 0, codeSize)\n\n          // Create\n          sstore(0,create2(0, 0, codeSize, 0x5A17))\n\n          // If we have a returned buffer, see what it is\n          sstore(1,returndatasize())\n          returndatacopy(0x200, 0, returndatasize())\n          sstore(2, mload(0x200))\n          sstore(3, mload(0x220))\n       }        \n      nonce: 1\n      storage: {}\n\n\n\n    # Also CREATE2, but fails due to collision\n    0000000000000000000000000000000000C0DEFF:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin\n       {\n          // Before the main call, call DA7A to fill up the return buffer\n          sstore(0x10, call(gas(), 0xDA7A, 0, 0, 0, 0x100, 0x40))\n          sstore(0x11, returndatasize())\n          sstore(0x12, mload(0x100))\n          sstore(0x13, mload(0x120))\n\n          // Read the constructor code from the appropriate contract\n          let srcAddr := calldataload(0)   // either 600D or BAD\n\n          let codeSize := extcodesize(srcAddr)      \n          extcodecopy(srcAddr, 0, 0, codeSize)\n\n          // Create\n          sstore(0,create2(0, 0, codeSize, 0xBAD05A17))\n\n          // If we have a returned buffer, see what it is\n          sstore(1,returndatasize())\n          returndatacopy(0x200, 0, returndatasize())\n          sstore(2, mload(0x200))\n          sstore(3, mload(0x220))\n       }        \n      nonce: 1\n      storage: {}\n\n\n    # The existing account CREATE2 collides with (600D)\n    bb0237ab04970e3cf3e813c02064662adc89336b:\n      balance: 0x600D\n      code: :raw 0x600100\n      nonce: 1\n      storage: {}\n\n\n    # The existing account CREATE2 collides with (BAD) \n    13c950f8740ffaea1869a88d70b029e8b0c9a8da:\n      balance: 0x600D\n      code: :raw 0x600100\n      nonce: 1\n      storage: {}\n\n\n    # Also CREATE, but fails due to collision\n    0000000000000000000000000000000000C0DEEE:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin\n       {\n          // Before the main call, call DA7A to fill up the return buffer\n          sstore(0x10, call(gas(), 0xDA7A, 0, 0, 0, 0x100, 0x40))\n          sstore(0x11, returndatasize())\n          sstore(0x12, mload(0x100))\n          sstore(0x13, mload(0x120))\n\n          // Read the constructor code from the appropriate contract\n          let srcAddr := calldataload(0)   // either 600D or BAD\n\n          let codeSize := extcodesize(srcAddr)      \n          extcodecopy(srcAddr, 0, 0, codeSize)\n\n          // Create\n          sstore(0,create(0, 0, codeSize))\n\n          // If we have a returned buffer, see what it is\n          sstore(1,returndatasize())\n          returndatacopy(0x200, 0, returndatasize())\n          sstore(2, mload(0x200))\n          sstore(3, mload(0x220))\n       }        \n      nonce: 1\n      storage: {}\n\n\n\n    # The existing account CREATE collides with\n    f9d1ea8eab6963659ee85b3e0b4d8a57e7edba2b:\n      balance: 0x600D\n      code: :raw 0x600100\n      nonce: 1\n      storage: {}\n\n\n    # The contract we call\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin\n       {\n         // The operation to run\n         // F0 - CREATE\n         // F5 - CREATE2\n         let oper := calldataload(0x04)\n\n         // The condition for it\n         // 0x0006 - OUT OF GAS\n         // 0x0BAD - REVERT with data\n         // 0x600D - Success\n         let cond := calldataload(0x24)\n         let addr := add(0xC0DE00, oper)\n\n\n\n         // Before the main call, call DA7A to fill up the return buffer\n         sstore(0x10, call(gas(), 0xDA7A, 0, 0, 0, 0x100, 0x40))\n         sstore(0x11, returndatasize())\n         sstore(0x12, mload(0x100))\n         sstore(0x13, mload(0x120))\n\n\n         let gasAmt := gas()\n\n         // Out Of Gas, CREATE[2] always costs more than 32k in gas\n         // but we need to also pay for the four SSTOREs that verify DA7A was\n         // called correctly\n         if eq(cond,0x0006) { gasAmt := add(30000,mul(22100,4)) }\n\n         // Send the condition to the contract we call so it'll know whether\n         // the construct needs to be end with RETURN or REVERT\n         mstore(0, cond)\n\n\n         let result := call(gasAmt, addr, 0, 0, 0x20, 0x200, 0x20)\n\n         sstore(0, result)\n         sstore(1, returndatasize())\n\n         // First word of the return data\n         sstore(2, mload(0x200))\n\n       }        \n      nonce: 1\n      storage: {}\n\n\n\n    # User account\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: 0x\n      nonce: 1\n      storage: {}\n\n\n  transaction:\n    data:\n    - :label CREATE--OOG      :abi f(uint,uint) 0xF0 0x0006\n    - :label CREATE2-OOG      :abi f(uint,uint) 0xF5 0x0006\n    - :label CREATE--GOOD     :abi f(uint,uint) 0xF0 0x600D\n    - :label CREATE2-GOOD     :abi f(uint,uint) 0xF5 0x600D\n    - :label CREATE--BAD      :abi f(uint,uint) 0xF0 0x0BAD\n    - :label CREATE2-BAD      :abi f(uint,uint) 0xF5 0x0BAD\n    - :label CREATE2-BOOM     :abi f(uint,uint) 0xFF 0x600D\n    - :label CREATE2-BAD-BOOM :abi f(uint,uint) 0xFF 0x0BAD\n    - :label CREATE--BOOM     :abi f(uint,uint) 0xEE 0x600D\n    - :label CREATE--BAD-BOOM :abi f(uint,uint) 0xEE 0x0BAD\n\n    gasLimit:\n    - 16777216\n    gasPrice: 10\n    nonce: 1\n    to: cccccccccccccccccccccccccccccccccccccccc\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n    value:\n    - 0\n\n  expect:\n    # CREATE[2] runs out of gas\n    - indexes:\n        data: \n        - :label CREATE--OOG\n        - :label CREATE2-OOG\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0: 0  # Return value of failed call\n            1: 0  # RETURNDATASIZE\n            2: 0  # First word of return data\n\n            ## Verify the DA7A call was OK\n            0x10:    1   # Return value of DA7A call\n            0x11: 0x40   # Length of output\n\n            # Output from DA7A\n            0x12: 0xDEADBEEF\n            0x13: 0x60A7\n\n\n    # CREATE is successful\n    - indexes:\n        data: \n        - :label CREATE--GOOD\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000c0def0:\n          storage:\n            # Address of newly created contract\n            0x00: 0xb44f2c88d3d4283cd1e54e418c4ff7e6a6c73202\n            0x01: 0  # No RETURNDATA\n            0x02: 0\n            0x03: 0\n\n            # Verify the DA7A call was OK\n            0x10:    1   # Return value of DA7A call\n            0x11: 0x40   # Length of output\n            0x12: 0xDEADBEEF\n            0x13: 0x60A7\n\n\n\n    # CREATE2 is successful\n    - indexes:\n        data: \n        - :label CREATE2-GOOD\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000c0def5:\n          storage:\n            # Address of newly created contract\n            0x00: 0x65ee26a034447b6ac64abdca1cccb7b747e4a231\n            0x01: 0  # No RETURNDATA\n            0x02: 0\n            0x03: 0\n\n            # Verify the DA7A call was OK\n            0x10:    1   # Return value of DA7A call\n            0x11: 0x40   # Length of output\n            0x12: 0xDEADBEEF\n            0x13: 0x60A7\n\n\n    # CREATE failed (REVERT)\n    - indexes:\n        data: \n        - :label CREATE--BAD\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000c0def0:\n          storage:\n            0x00: 0    # No newly created contract\n            0x01: 0x20 # There is returned data \n            0x02: 0x0bad0bad0bad  # Which just says how bad things are\n\n            # Verify the DA7A call was OK\n            0x10:    1   # Return value of DA7A call\n            0x11: 0x40   # Length of output\n            0x12: 0xDEADBEEF\n            0x13: 0x60A7\n\n\n\n    # CREATE2 failed (REVERT)\n    - indexes:\n        data: \n        - :label CREATE2-BAD\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000c0def5:\n          storage:\n            0x00: 0    # No newly created contract\n            0x01: 0x20 # There is returned data \n            0x02: 0x0bad0bad0bad  # Which just says how bad things are\n\n            # Verify the DA7A call was OK\n            0x10:    1   # Return value of DA7A call\n            0x11: 0x40   # Length of output\n            0x12: 0xDEADBEEF\n            0x13: 0x60A7\n\n\n\n    # CREATE2 failed due to collision\n    - indexes:\n        data: \n        - :label CREATE2-BOOM\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000c0deff:\n          storage:\n            0x00: 0    # No newly created contract\n            0x01: 0    # No returned data in case of collision\n\n            # Verify the DA7A call was OK\n            0x10:    1   # Return value of DA7A call\n            0x11: 0x40   # Length of output\n            0x12: 0xDEADBEEF\n            0x13: 0x60A7\n\n\n\n    # CREATE2 failed (REVERT, but it would have failed due to a collision anyway)\n    - indexes:\n        data: \n        - :label CREATE2-BAD-BOOM\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000c0deff:\n          storage:\n            0x00: 0    # No newly created contract\n            0x01: 0    # There is no returned data \n\n            # Verify the DA7A call was OK\n            0x10:    1   # Return value of DA7A call\n            0x11: 0x40   # Length of output\n            0x12: 0xDEADBEEF\n            0x13: 0x60A7\n\n\n\n\n\n\n\n    # CREATE failed due to collision\n    - indexes:\n        data: \n        - :label CREATE--BOOM\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000c0deee:\n          storage:\n            0x00: 0    # No newly created contract\n            0x01: 0    # No returned data in case of collision\n\n            # Verify the DA7A call was OK\n            0x10:    1   # Return value of DA7A call\n            0x11: 0x40   # Length of output\n            0x12: 0xDEADBEEF\n            0x13: 0x60A7\n\n\n\n    # CREATE failed (REVERT, but it would have failed due to a collision anyway)\n    - indexes:\n        data: \n        - :label CREATE--BAD-BOOM\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        0000000000000000000000000000000000c0deee:\n          storage:\n            0x00: 0    # No newly created contract\n            0x01: 0    # There is no returned data \n\n            # Verify the DA7A call was OK\n            0x10:    1   # Return value of DA7A call\n            0x11: 0x40   # Length of output\n            0x12: 0xDEADBEEF\n            0x13: 0x60A7\n\n\n\n"
  },
  {
    "path": "tests/static/state_tests/stCreateTest/createLargeResultFiller.yml",
    "content": "# What happens when the result of a CREATE is over the maximum contract size,\n# 24k.\n\n\ncreateLargeResult:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: \"100000000\"\n    currentNumber: \"1\"\n    currentTimestamp: \"1000\"\n\n  _info:\n    comment: Ori Pomerantz   qbzzt1@gmail.com\n\n\n  pre:\n    # Constructor code\n    000000000000000000000000000000000000C0DE:    \n      balance: 0\n      nonce: 1\n      storage: {}\n      code: |\n        :yul london\n        {\n           // Store some data\n           mstore(0, not(0))\n\n           // Copy the requested length from the constructor code\n           codecopy(0x100, 0x100, 0x20)\n           \n           // Return it as the new contract\n           return(0, mload(0x100))\n        }\n\n\n    # The contract we call\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul london\n       {\n         sstore(1, gas())\n\n         // The operation to run\n         // F0 - CREATE\n         // F5 - CREATE2\n         let operation := calldataload(0x04)\n\n         // The constructor ends with\n         // F3 - RETURN\n         // FD - REVERT\n         let constructorEnd := calldataload(0x24)\n\n         // The size of the contract getting created\n         let contractSize := calldataload(0x44)\n\n         // Create the constructor.\n         let codeSize := extcodesize(0xC0DE)\n         extcodecopy(0xC0DE, 0, 0, codeSize)\n\n         // Modify the last opcode\n         mstore8(sub(codeSize, 1), constructorEnd)\n\n         // Include the requested contract size\n         mstore(0x100, contractSize)\n\n         // Create the contract\n         let newAddr\n         switch operation\n         case 0xF0 { newAddr := create(0, 0, 0x120) }\n         case 0xF5 { newAddr := create2(0, 0, 0x120, 0x5A17) }\n\n         // Write the results\n         sstore(0, newAddr)\n         sstore(1, sub(sload(1), gas()))\n         sstore(2, extcodehash(newAddr))\n         \n         let noOptimization := msize()\n       }        \n      nonce: 1\n      storage:\n         0: 0x60A7\n         1: 0x60A7\n         2: 0x60A7\n\n\n\n    # User account\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: 0x\n      nonce: 1\n      storage: {}\n\n\n  transaction:\n    data:\n    # \"Normal\" contract (256 bytes)\n    - :label CREATE-RETURN    :abi f(uint,uint,uint) 0xF0 0xF3 0x100\n    - :label CREATE2-RETURN   :abi f(uint,uint,uint) 0xF5 0xF3 0x100\n    - :label CREATE-REVERT    :abi f(uint,uint,uint) 0xF0 0xFD 0x100\n    - :label CREATE2-REVERT   :abi f(uint,uint,uint) 0xF5 0xFD 0x100\n\n    # Maximum size for a legitimate contract (0x6000 = 24k)\n    - :label CREATE-RETURN-MAX       :abi f(uint,uint,uint) 0xF0 0xF3 0x6000\n    - :label CREATE2-RETURN-MAX      :abi f(uint,uint,uint) 0xF5 0xF3 0x6000\n    - :label CREATE-REVERT-MAX       :abi f(uint,uint,uint) 0xF0 0xFD 0x6000\n    - :label CREATE2-REVERT-MAX      :abi f(uint,uint,uint) 0xF5 0xFD 0x6000\n\n\n    # Maximum size for a legitimate contract, plus 1 (0x6000 = 24k)\n    - :label CREATE-RETURN-TOOBIG  :abi f(uint,uint,uint) 0xF0 0xF3 0x6001\n    - :label CREATE2-RETURN-TOOBIG :abi f(uint,uint,uint) 0xF5 0xF3 0x6001\n    - :label CREATE-REVERT-TOOBIG  :abi f(uint,uint,uint) 0xF0 0xFD 0x6001\n    - :label CREATE2-REVERT-TOOBIG :abi f(uint,uint,uint) 0xF5 0xFD 0x6001\n\n    # Double the size of a legitimate contract\n    - :label CREATE-RETURN-HUGE  :abi f(uint,uint,uint) 0xF0 0xF3 0xC000\n    - :label CREATE2-RETURN-HUGE :abi f(uint,uint,uint) 0xF5 0xF3 0xC000\n    - :label CREATE-REVERT-HUGE  :abi f(uint,uint,uint) 0xF0 0xFD 0xC000\n    - :label CREATE2-REVERT-HUGE :abi f(uint,uint,uint) 0xF5 0xFD 0xC000\n\n\n\n    gasLimit:\n    - 80000000\n    gasPrice: 10\n    nonce: 1\n    to: cccccccccccccccccccccccccccccccccccccccc\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n    value:\n    - 0\n\n  expect:\n    - indexes:\n        data: \n        - :label CREATE-RETURN\n      network:\n        - '>=Cancun<Osaka'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            # Address\n            0: 0x553e6c30af61e7a3576f31311ea8a620f80d047e \n            # Remaining gas\n            1: 0x01777f\n            # Hash of new contract code\n            2: 0xd956c0abd597440481902014a37b733358ee7685461eb1b5916eefd83381e6d9\n\n\n    - indexes:\n        data: \n        - :label CREATE2-RETURN\n      network:\n        - '>=Cancun<Osaka'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            # Address\n            0: 0x0595c5d0c272757cff0b3dca4ed60d60cd6e9f58\n            # Remaining gas //why check remaining gas it will affect the test on all future forks?\n            1: 0x0177c9\n            # Hash of new contract code\n            2: 0xd956c0abd597440481902014a37b733358ee7685461eb1b5916eefd83381e6d9\n\n\n    - indexes:\n        data: \n        - :label CREATE-REVERT\n      network:\n        - '>=Cancun<Osaka'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            # Address\n            0: 0x00\n            # Remaining gas\n            1: 0xaf7f\n            # Hash of non existent contract\n            2: 0\n\n\n    - indexes:\n        data: \n        - :label CREATE2-REVERT\n      network:\n        - '>=Cancun<Osaka'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            # Address\n            0: 0x00\n            # Remaining gas\n            1: 0xafc9\n            # Hash of non existent contract\n            2: 0\n\n\n\n\n    - indexes:\n        data: \n        - :label CREATE-RETURN-MAX\n      network:\n        - '>=Cancun<Osaka'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            # Address\n            0: 0x553e6c30af61e7a3576f31311ea8a620f80d047e \n            # Remaining gas\n            1: 0x4bbce4\n            # Hash of new contract code\n            2: 0xdcbcc213f0c91b71d38dedd06c95ccb99467b9b05f275bed536de1044f5f18fa\n\n\n    - indexes:\n        data: \n        - :label CREATE2-RETURN-MAX\n      network:\n        - '>=Cancun<Osaka'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            # Address\n            0: 0xa5dc71d47d0d8dcf5990e81c74e981baf24a8fa2\n            # Remaining gas\n            1: 0x4bbd2e\n            # Hash of new contract code\n            2: 0xdcbcc213f0c91b71d38dedd06c95ccb99467b9b05f275bed536de1044f5f18fa\n\n\n    - indexes:\n        data: \n        - :label CREATE-REVERT-MAX\n      network:\n        - '>=Cancun<Osaka'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            # Address\n            0: 0x00\n            # Remaining gas\n            1: 0xbce4\n            # Hash of non existent contract\n            2: 0\n\n\n    - indexes:\n        data: \n        - :label CREATE2-REVERT-MAX\n      network:\n        - '>=Cancun<Osaka'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            # Address\n            0: 0x00\n            # Remaining gas\n            1: 0xbd2e\n            # Hash of non existent contract\n            2: 0\n\n\n\n    - indexes:\n        data: \n        - :label CREATE-RETURN-TOOBIG\n      network:\n        - '>=Cancun<Osaka'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            # Address (REVERT, so nothing)\n            0: 0\n            # Remaining gas\n            1: 0x04b16491\n            # Hash when there is no contract\n            2: 0\n\n\n\n    - indexes:\n        data: \n        - :label CREATE2-RETURN-TOOBIG\n      network:\n        - '>=Cancun<Osaka'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            # Address (REVERT, so nothing)\n            0: 0\n            # Remaining gas\n            1: 0x04b16492\n            # Hash when there is no contract\n            2: 0\n\n\n    - indexes:\n        data: \n        - :label CREATE-REVERT-TOOBIG\n      network:\n        - '>=Cancun<Osaka'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            # Address (REVERT, so nothing)\n            0: 0\n            # Remaining gas\n            1: 0xbcea\n            # Hash when there is no contract\n            2: 0\n\n\n\n    - indexes:\n        data: \n        - :label CREATE2-REVERT-TOOBIG\n      network:\n        - '>=Cancun<Osaka'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            # Address (REVERT, so nothing)\n            0: 0\n            # Remaining gas\n            1: 0xbd34\n            # Hash when there is no contract\n            2: 0\n\n\n\n    - indexes:\n        data: \n        - :label CREATE-RETURN-HUGE\n      network:\n        - '>=Cancun<Osaka'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            # Address (REVERT, so nothing)\n            0: 0\n            # Remaining gas\n            1: 0x04b1649d\n            # Hash when there is no contract\n            2: 0\n\n\n\n    - indexes:\n        data: \n        - :label CREATE2-RETURN-HUGE\n      network:\n        - '>=Cancun<Osaka'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            # Address (REVERT, so nothing)\n            0: 0\n            # Remaining gas\n            1: 0x04b1649e\n            # Hash when there is no contract\n            2: 0\n\n\n\n\n    - indexes:\n        data: \n        - :label CREATE-REVERT-HUGE\n      network:\n        - '>=Cancun<Osaka'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            # Address (REVERT, so nothing)\n            0: 0\n            # Remaining gas\n            1: 0xd364\n            # Hash when there is no contract\n            2: 0\n\n\n\n    - indexes:\n        data: \n        - :label CREATE2-REVERT-HUGE\n      network:\n        - '>=Cancun<Osaka'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            # Address (REVERT, so nothing)\n            0: 0\n            # Remaining gas\n            1: 0xd3ae\n            # Hash when there is no contract\n            2: 0\n\n"
  },
  {
    "path": "tests/static/state_tests/stDelegatecallTestHomestead/Call1024BalanceTooLowFiller.json",
    "content": "{\n    \"Call1024BalanceTooLow\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x0401\",\n            \t\t\t    \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"7000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1024\",\n                \"code\" : \"{ [[ 0 ]] (ADD @@0 1) [[ 1 ]] (DELEGATECALL 0xfffffffffff <contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"17592186099592\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stDelegatecallTestHomestead/Call1024OOGFiller.json",
    "content": "{\n    \"Call1024OOG\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x86\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x020b71\"\n                        }\n                    }\n                }\n            },\n\t\t\t{\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x92\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x023a51\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"7000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1024\",\n                \"code\" : \"{ [[ 0 ]] (ADD @@0 1) [[ 1 ]] (DELEGATECALL (MUL (SUB (GAS) 10000) (SUB 1 (DIV @@0 1025))) <contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0) [[ 2 ]] (ADD 1(MUL @@0 1000)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"13120826\", \"15720826\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stDelegatecallTestHomestead/Call1024PreCallsFiller.json",
    "content": "{\n    \"Call1024PreCalls\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x0401\",\n            \t\t\t    \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 2,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x03dd\",\n            \t\t\t    \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\",\n                            \"0x03\" : \"0x01\"\n                        }\n                    }\n                }\n            },\n\t\t\t{\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x0401\",\n            \t\t\t    \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"7000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"2024\",\n                \"code\" : \"{ [[ 2 ]] (CALL 0xffff <eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b> 1 0 0 0 0) [[ 3 ]] (CALL 0xffff <eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b> 1 0 0 0 0)  [[ 0 ]] (ADD @@0 1) [[ 1 ]] (DELEGATECALL 0xfffffffffff <contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"11937600034817\", \"9214364837600034817\", \"9381323795670\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stDelegatecallTestHomestead/CallLoseGasOOGFiller.json",
    "content": "{\n    \"CallLoseGasOOG\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x02\" : \"0x03e9\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"7000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1024\",\n                \"code\" : \"{ [[ 0 ]] (ADD @@0 1) [[ 1 ]] (DELEGATECALL (ADD 1(MUL @@0 100000)) <contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0) [[ 2 ]] (ADD 1(MUL @@0 1000)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"200000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stDelegatecallTestHomestead/CallRecursiveBombPreCallFiller.json",
    "content": "{\n    \"CallRecursiveBombPreCall\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x03ff\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0xfffffffffffffffffffffffffffffff\",\n                \"code\" : \"{ (CALL 100000 0xbad304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0 0 0)  (DELEGATECALL 0x7ffffffffffffff <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 0 0 0 0)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (CALL (- (GAS) 224000) <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 0 0 0 0 0) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"9214364837600034817\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stDelegatecallTestHomestead/CallcodeLoseGasOOGFiller.json",
    "content": "{\n    \"CallcodeLoseGasOOG\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 2,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x02\" : \"0x03e9\"\n                        }\n                    }\n                }\n            },\n\t\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"7000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1024\",\n                \"code\" : \"{ [[ 0 ]] (ADD @@0 1) [[ 1 ]] (DELEGATECALL (ADD 1(MUL @@0 100000)) <contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0) [[ 2 ]] (ADD 1(MUL @@0 1000)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"166262\", \"156262\", \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stDelegatecallTestHomestead/Delegatecall1024Filler.json",
    "content": "{\n    \"Delegatecall1024\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x0401\",\n            \t\t\t    \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"7000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1024\",\n                \"code\" : \"{ [[ 0 ]] (ADD @@0 1) [[ 1 ]] (DELEGATECALL 0xfffffffffff <contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"9214364837600034817\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stDelegatecallTestHomestead/Delegatecall1024OOGFiller.json",
    "content": "{\n    \"Delegatecall1024OOG\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x92\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x023a51\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"7000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1024\",\n                \"code\" : \"{ [[ 0 ]] (ADD @@0 1) [[ 1 ]] (DELEGATECALL (MUL (SUB (GAS) 10000) (SUB 1 (DIV @@0 1025))) <contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0) [[ 2 ]] (ADD 1(MUL @@0 1000)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"15720826\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stDelegatecallTestHomestead/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stDelegatecallTestHomestead/callOutput1Filler.json",
    "content": "{\n    \"callOutput1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6\"\n                        }\n                    },\n                    \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (DELEGATECALL 50000 <contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87> 0 0 0 0) [[ 0 ]] (MLOAD 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x6001600101600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"900000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stDelegatecallTestHomestead/callOutput2Filler.json",
    "content": "{\n    \"callOutput2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6\"\n                        }\n                    },\n                    \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (DELEGATECALL 50000 <contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87> 0 32 0 0) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x6001600101600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"900000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stDelegatecallTestHomestead/callOutput3Filler.json",
    "content": "{\n    \"callOutput3\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6\"\n                        }\n                    },\n                    \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (DELEGATECALL 50000 <contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87> 0 0 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x6001600101600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"900000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stDelegatecallTestHomestead/callOutput3partialFailFiller.json",
    "content": "{\n    \"callOutput3partialFail\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6\"\n                        }\n                    },\n                    \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (DELEGATECALL 50000 <contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87> 0 0 0 10) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x016001600101600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"900000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stDelegatecallTestHomestead/callOutput3partialFiller.json",
    "content": "{\n    \"callOutput3partial\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6\"\n                        }\n                    },\n                    \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (DELEGATECALL 50000 <contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87> 0 0 0 10) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x6001600101600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"900000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stDelegatecallTestHomestead/callWithHighValueAndGasOOGFiller.json",
    "content": "{\n    \"callWithHighValueAndGasOOG\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n\t\t\t                \"0x00\" : \"0x01\",\n\t\t\t                \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (DELEGATECALL 0xffffffffffffffffffffffff <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 0 64 0 2 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \":raw 0x6001600155603760005360026000f3\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stDelegatecallTestHomestead/callcodeOutput3Filler.json",
    "content": "{\n    \"callcodeOutput3\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (DELEGATECALL 50000 <contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87> 0 0 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x6001600101600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"900000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stDelegatecallTestHomestead/callcodeWithHighValueAndGasOOGFiller.json",
    "content": "{\n    \"callcodeWithHighValueAndGasOOG\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n\t\t\t                \"0x00\" : \"0x01\",\n\t\t\t                \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (DELEGATECALL 0xffffffffffffffffffffffff <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 0 64 0 2 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \":raw 0x6001600155603760005360026000f3\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stDelegatecallTestHomestead/deleagateCallAfterValueTransferFiller.json",
    "content": "{\n    \"deleagateCallAfterValueTransfer\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1100000\",\n                \"code\" : \"{ (MSTORE 0 0x01) (DELEGATECALL 100000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ (SSTORE 0 (CALLVALUE)) (SSTORE 1 (CALLER)) (SSTORE 2 (CALLDATALOAD 0)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"453081\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stDelegatecallTestHomestead/delegatecallAndOOGatTxLevelFiller.json",
    "content": "{\n    \"delegatecallAndOOGatTxLevel\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n\t\t\t                \"0x00\" : \"0x01\",\n\t\t\t                \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"100000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 3000001 <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 0 0 0 0 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \":raw 0x6001600155603760005360026000f3\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stDelegatecallTestHomestead/delegatecallBasicFiller.json",
    "content": "{\n    \"delegatecallBasic\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 500000 <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 0 64 0 2 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \":raw 0x6001600155603760005360026000f3\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stDelegatecallTestHomestead/delegatecallEmptycontractFiller.json",
    "content": "{\n    \"delegatecallEmptycontract\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000\",\n                \"code\" : \"{ [[ 0 ]] (DELEGATECALL 50000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 64 0 64 )}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1100000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"105044\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stDelegatecallTestHomestead/delegatecallInInitcodeToEmptyContractFiller.json",
    "content": "{\n    \"delegatecallInInitcodeToEmptyContract\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"13136008b64ff592819b2fa6d43f2835c452020e\" : {\n                        \"balance\" : \"0x01\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"1000000000000000000000000000000000000000\" : {\n                \"balance\" : \"10000\",\n                \"code\" : \"{ (MSTORE 0 0x604060006040600073945304eb96065b2a98b57a48a06ae28d285a71b5620186) (MSTORE 32 0xa0f4600055000000000000000000000000000000000000000000000000000000) (CREATE 1 0 64) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"10000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"453081\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"1000000000000000000000000000000000000000\",\n            \"value\" : [\n                \"\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stDelegatecallTestHomestead/delegatecallInInitcodeToExistingContractFiller.json",
    "content": "{\n    \"delegatecallInInitcodeToExistingContract\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"13136008b64ff592819b2fa6d43f2835c452020e\" : {\n                        \"balance\" : \"0x01\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x1000000000000000000000000000000000000000\",\n                            \"0x02\" : \"0x01\",\n                            \"0x0b\" : \"0x1000000000000000000000000000000000000000\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"1000000000000000000000000000000000000000\" : {\n                \"balance\" : \"10000\",\n                \"code\" : \"{ (MSTORE 0 0x604060006040600073945304eb96065b2a98b57a48a06ae28d285a71b5620186) (MSTORE 32 0xa0f4600055336001550000000000000000000000000000000000000000000000) (CREATE 1 0 64) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"1000000000000000000000000000000000000001\" : {\n                \"balance\" : \"1000\",\n                \"code\" : \"{ (MSTORE 0 0x6001600055) (CREATE 1 27 5) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (SSTORE 2 1) [[ 11 ]] (CALLER) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"10000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"453081\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"1000000000000000000000000000000000000000\",\n            \"value\" : [\n                \"\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stDelegatecallTestHomestead/delegatecallInInitcodeToExistingContractOOGFiller.json",
    "content": "{\n    \"delegatecallInInitcodeToExistingContractOOG\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"13136008b64ff592819b2fa6d43f2835c452020e\" : {\n                        \"balance\" : \"5\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"1000000000000000000000000000000000000000\" : {\n                \"balance\" : \"10000\",\n                \"code\" : \"{ (MSTORE 0 0x604060006040600073945304eb96065b2a98b57a48a06ae28d285a71b5620186) (MSTORE 32 0xa0f4600a5533600b550000000000000000000000000000000000000000000000) (CREATE 5 0 64) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (SSTORE 2 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"10000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"153096\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"1000000000000000000000000000000000000000\",\n            \"value\" : [\n                \"\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stDelegatecallTestHomestead/delegatecallOOGinCallFiller.json",
    "content": "{\n    \"delegatecallOOGinCall\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"100000\",\n                \"code\" : \"{  [[ 0 ]] (ADD (DELEGATECALL 10000 <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 0 0 0 0 ) 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \":raw 0x6001600155603760005360026000f3\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stDelegatecallTestHomestead/delegatecallSenderCheckFiller.json",
    "content": "{\n    \"delegatecallSenderCheck\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 500000 <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 0 64 0 2 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \"{[[ 1 ]] (CALLER)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stDelegatecallTestHomestead/delegatecallValueCheckFiller.json",
    "content": "{\n    \"delegatecallValueCheck\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x17\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 500000 <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 0 64 0 2 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \"{[[ 1 ]] (CALLVALUE) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"23\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stDelegatecallTestHomestead/delegatecodeDynamicCode2SelfCallFiller.json",
    "content": "{\n    \"delegatecodeDynamicCode2SelfCall\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"13136008b64ff592819b2fa6d43f2835c452020e\" : {\n                        \"balance\" : \"0x01\",\n                        \"storage\" : {\n                            \"0x0b\" : \"0x01\",\n                            \"0x0c\" : \"0x1000000000000000000000000000000000000000\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"1000000000000000000000000000000000000000\" : {\n                \"balance\" : \"1100000\",\n                \"code\" : \" {(MSTORE 0 0x60406000604060007313136008b64ff592819b2fa6d43f2835c452020e620186) (MSTORE 32 0xa0f4600b5533600c550000000000000000000000000000000000000000000000) (CREATE 1 0 64) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"10000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"453081\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"1000000000000000000000000000000000000000\",\n            \"value\" : [\n                \"\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stDelegatecallTestHomestead/delegatecodeDynamicCodeFiller.json",
    "content": "{\n    \"delegatecodeDynamicCode\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"0xffe4ebd2a68c02d9dcb0a17283d13346beb2d8b6\" : {\n                        \"shouldnotexist\" : \"1\"\n                    },\n                    \"13136008b64ff592819b2fa6d43f2835c452020e\" : {\n                        \"balance\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x0a\" : \"0x568a95f77b047bece6aa68843d2019332c46a585\",\n                            \"0x0b\" : \"0x01\",\n                            \"0x14\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"1000000000000000000000000000000000000000\" : {\n                \"balance\" : \"10000\",\n                \"code\" : \"{ (MSTORE 0 0x716860016000553360145560005260096017f36000526012600e6001f0600a55) (MSTORE 32 0x604060006040600073ffe4ebd2a68c02d9dcb0a17283d13346beb2d8b6620186) (MSTORE 64 0xa0f4600b55000000000000000000000000000000000000000000000000000000) (CREATE 1 0 96) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"10000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"453081\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"1000000000000000000000000000000000000000\",\n            \"value\" : [\n                \"\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150Specific/CallAndCallcodeConsumeMoreGasThenTransactionHasFiller.json",
    "content": "{\n    \"CallAndCallcodeConsumeMoreGasThenTransactionHas\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t\t            \"storage\" : {\n\t\t                        \"0x00\" : \"0x12\",\n\t\t                        \"0x08\" : \"0x08d5b6\",\n\t\t                        \"0x09\" : \"0x01\",\n\t\t                        \"0x0a\" : \"0x01\"\n\t\t                    }\n\t\t                }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"// code\" : \"By new EIP150 rules this transaction would be executed even if call consumes more gas then transaction has.\",\n\t\t        \"code\" : \"{ (SSTORE 8 (GAS)) (SSTORE 9 (CALL 600000 <contract:0x1000000000000000000000000000000000000103> 0 0 0 0 0)) (SSTORE 10 (CALLCODE 600000 <contract:0x1000000000000000000000000000000000000103> 0 0 0 0 0)) } \",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:0x1000000000000000000000000000000000000103>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"// code\" : \"should be 12 in the post state\",\n\t\t        \"code\" : \"{ (SSTORE 0 0x12) } \",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150Specific/CallAskMoreGasOnDepth2ThenTransactionHasFiller.json",
    "content": "{\n    \"CallAskMoreGasOnDepth2ThenTransactionHas\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:0x1000000000000000000000000000000000000107>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x08\" : \"0x030d3e\",\n\t\t                    \"0x09\" : \"0x01\"\n\t\t                }\n\t\t            },\n\t\t            \"<contract:0x1000000000000000000000000000000000000108>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x08\" : \"0x02a1f6\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"// code\" : \"ordinal call should work but on second depth it has call that asks more gas than left\",\n\t\t        \"code\" : \"{ (SSTORE 8 (GAS)) (SSTORE 9 (CALL 200000 <contract:0x1000000000000000000000000000000000000107> 0 0 0 0 0)) } \",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:0x1000000000000000000000000000000000000107>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"// code\" : \"should work on EIP150\",\n\t\t        \"code\" : \"{ (SSTORE 8 (GAS)) (SSTORE 9 (CALL 600000 <contract:0x1000000000000000000000000000000000000108> 0 0 0 0 0)) } \",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:0x1000000000000000000000000000000000000108>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"// code\" : \"should be set in the post state\",\n\t\t        \"code\" : \"{ (SSTORE 8 (GAS))} \",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150Specific/CallGoesOOGOnSecondLevel2Filler.json",
    "content": "{\n    \"CallGoesOOGOnSecondLevel2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:0x1000000000000000000000000000000000000113>\" : {\n\t\t                \"storage\" : {\n\t\t                }\n\t\t            },\n\t\t            \"<contract:0x1000000000000000000000000000000000000114>\" : {\n\t\t                \"storage\" : {\n\t\t                }\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                }\n\t\t            } \n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"// code\" : \"OOG Call transaction has less gas then in example above\",\n\t\t        \"code\" : \"{ (SSTORE 8 (GAS)) (SSTORE 9 (CALL 600000 <contract:0x1000000000000000000000000000000000000113> 0 0 0 0 0)) } \",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:0x1000000000000000000000000000000000000113>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (SSTORE 8 (GAS)) (SSTORE 9 (CALL 600000 <contract:0x1000000000000000000000000000000000000114> 0 0 0 0 0)) } \",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:0x1000000000000000000000000000000000000114>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (SSTORE 8 (GAS)) (KECCAK256 0x00 0x2fffff) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"160000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150Specific/CallGoesOOGOnSecondLevelFiller.json",
    "content": "{\n    \"CallGoesOOGOnSecondLevel\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:0x1000000000000000000000000000000000000110>\" : {\n\t\t                \"storage\" : {\n                            \"12\" : \"1\",\n                            \"0x08\" : \"0x0927be\",\n                            \"0x0c\" : \"0x01\"\n\t\t                }\n\t\t            },\n\t\t            \"<contract:0x1000000000000000000000000000000000000111>\" : {\n\t\t                \"storage\" : {\n\t\t                }\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n                            \"0x08\" : \"0x213fb6\",\n                            \"0x09\" : \"0x01\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"// code\" : \"OOG Call because call goes OOG on second level\",\n\t\t        \"code\" : \"{ (SSTORE 8 (GAS)) (SSTORE 9 (CALL 600000 <contract:0x1000000000000000000000000000000000000110> 0 0 0 0 0)) } \",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:0x1000000000000000000000000000000000000110>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"// code\" : \"Inner CaLL goes OOG on EIP150\",\n\t\t        \"code\" : \"{ (SSTORE 8 (GAS)) (SSTORE 9 (CALL 300000 <contract:0x1000000000000000000000000000000000000111> 0 0 0 0 0)) [[12]] 1} \",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:0x1000000000000000000000000000000000000111>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (SSTORE 8 (GAS)) (KECCAK256 0x00 0x2fffff) (SSTORE 9 (GAS)) (SSTORE 10 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"2200000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150Specific/CreateAndGasInsideCreateFiller.json",
    "content": "{\n    \"CreateAndGasInsideCreate\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"//comment\" : \"CREATE price changed in Shanghai\",\n                    \"//comment\" : \"Due to eip-3860 (https://eips.ethereum.org/EIPS/eip-3860) pay extra 2 gas for each 32 bytes of initcode\",\n        \t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x09\" : \"0x0129db\",\n\t\t                    \"0x0b\" : \"0xf1ecf98489fa9ed60a664fc4998db699cfa39d40\"\n\t\t                }\n\t\t            },\n\t\t            \"f1ecf98489fa9ed60a664fc4998db699cfa39d40\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0xfd\" : \"0x083729\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n        \t\t\"nonce\" : \"0\",\n                \"// code\" : \"Test gas before Create, inside create and after\",\n\t\t        \"code\" : \"{ [100] (GAS) (MSTORE 0 0x5a60fd55) (SSTORE 11 (CREATE 0 28 4)) (SSTORE 9 (SUB @100 (GAS))) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150Specific/DelegateCallOnEIPFiller.json",
    "content": "{\n    \"DelegateCallOnEIP\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n        \t\t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t            \t\"storage\" : {\n\t\t                    \"0x00\" : \"0x12\",\n\t\t                    \"0x08\" : \"0xb6f9\",\n\t\t                    \"0x09\" : \"0x01\"\n\t\t                }\n\t\t            }  \n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"// code\" : \"should work on EIP150 rules\",\n\t\t        \"code\" : \"{ [8] (GAS) (SSTORE 9 (DELEGATECALL 600000 <contract:0x1000000000000000000000000000000000000105> 0 0 0 0)) [[8]] (SUB @8 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:0x1000000000000000000000000000000000000105>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"// code\" : \"should be 12 in the post state\",\n\t\t        \"code\" : \"{ (SSTORE 0 0x12) } \",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150Specific/ExecuteCallThatAskForeGasThenTrabsactionHasFiller.json",
    "content": "{\n    \"ExecuteCallThatAskForeGasThenTrabsactionHas\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x0c\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"100000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ [[1]] (CALL 600000 <contract:0x1000000000000000000000000000000000000001> 0 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"100000\",\n                \"code\" : \"{ [[1]] 12 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150Specific/NewGasPriceForCodesFiller.json",
    "content": "{\n    \"NewGasPriceForCodes\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t        {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x12\",\n\t\t                    \"0x01\" : \"0x20\",\n\t\t                    \"0x02\" : \"0x1122334455667788991011121314151617181920000000000000000000000000\",\n\t\t                    \"0x03\" : \"0xe8d4498280\",\n\t\t                    \"0x04\" : \"0x12\",\n\t\t                    \"0x07\" : \"0x01\",\n\t\t                    \"0x08\" : \"0x01\",\n\t\t                    \"0x0a\" : \"0x02cb0a\",\n\t\t                    \"0x64\" : \"0x11\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:0x1000000000000000000000000000000000000010>\" : {\n                \"balance\" : \"111\",\n                \"code\" : \":raw 0x1122334455667788991011121314151617181920212223242526272829303132\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t   \"<contract:0x1000000000000000000000000000000000000011>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (SSTORE 100 0x11) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n        \t\t\"nonce\" : \"0\",\n                \"// code\" : \"Test gasPrice of these codes after EIP150 transition\",\n\t\t        \"code\" : \"{ [999] (GAS) (SSTORE 1 (EXTCODESIZE <contract:0x1000000000000000000000000000000000000010>)) (EXTCODECOPY <contract:0x1000000000000000000000000000000000000010> 0 0 20) (SSTORE 2 (MLOAD 0)) (SSTORE 4 (SLOAD 0)) (SSTORE 5 (CALL 30000 <contract:0x1000000000000000000000000000000000000011> 1 0 0 0 0)) (SSTORE 6 (CALLCODE 30000 <contract:0x1000000000000000000000000000000000000011> 1 0 0 0 0)) (SSTORE 7 (DELEGATECALL 30000 <contract:0x1000000000000000000000000000000000000011> 0 0 0 0)) (SSTORE 8 (CALL 30000 0x1000000000000000000000000000000000000013 0 0 0 0 0)) (SSTORE 3 (BALANCE <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>)) (SSTORE 10 (SUB (MLOAD 999) (GAS))) }\",\n\t\t        \"storage\": {\n\t\t            \"0x00\" : \"0x12\"\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150Specific/SuicideToExistingContractFiller.json",
    "content": "{\n    \"SuicideToExistingContract\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:0x1000000000000000000000000000000000000118>\" : {\n                        \"balance\" : \"0\",\n\t\t                \"nonce\" : \"0\",\n                        \"code\" : \"0x73<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>ff00\",\n                        \"storage\" : {}\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x1dd5\"\n\t\t                }\n\t\t            } \n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"// code\" : \"check gas spent on suicide known contract on EIP150\",\n\t\t        \"code\" : \"{ [0] (GAS) (CALL 60000 <contract:0x1000000000000000000000000000000000000118> 0 0 0 0 0) [[1]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:0x1000000000000000000000000000000000000118>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"// code\" : \"Suicide to existing account\",\n\t\t        \"code\" : \"{ (SELFDESTRUCT <contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150Specific/SuicideToNotExistingContractFiller.json",
    "content": "{\n    \"SuicideToNotExistingContract\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:0x1000000000000000000000000000000000000116>\" : {\n\t\t                \"balance\" : \"0\",\n\t\t                \"nonce\" : \"0\",\n\t\t                \"code\" : \"0x732000000000000000000000000000000000000115ff00\",\n\t\t                \"storage\" : {}\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x27fd\"\n\t\t                }\n\t\t            } \n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"// code\" : \"check gas spent on suicide to unknown contract on EIP150\",\n\t\t        \"code\" : \"{ [0] (GAS) (CALL 60000 <contract:0x1000000000000000000000000000000000000116> 0 0 0 0 0) [[1]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:0x1000000000000000000000000000000000000116>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"// code\" : \"Suicide to not existing account\",\n\t\t        \"code\" : \"{ (SELFDESTRUCT 0x2000000000000000000000000000000000000115) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150Specific/Transaction64Rule_d64e0Filler.json",
    "content": "{\n    \"Transaction64Rule_d64e0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:0x1000000000000000000000000000000000000118>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x0c\"\n\t\t                }\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x02\" : \"0x60a4\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"// code\" : \"check gas spent on suicide known contract on EIP150\",\n\t\t        \"code\" : \"{ [0] (GAS) (CALL 160000 <contract:0x1000000000000000000000000000000000000118> 0 0 0 0 0) [[2]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:0x1000000000000000000000000000000000000118>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [[1]] 12 }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"160062\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150Specific/Transaction64Rule_d64m1Filler.json",
    "content": "{\n    \"Transaction64Rule_d64m1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:0x1000000000000000000000000000000000000118>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x0c\"\n\t\t                }\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x02\" : \"0x60a4\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"// code\" : \"check gas spent on suicide known contract on EIP150\",\n\t\t        \"code\" : \"{ [0] (GAS) (CALL 160000 <contract:0x1000000000000000000000000000000000000118> 0 0 0 0 0) [[2]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:0x1000000000000000000000000000000000000118>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [[1]] 12 }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"160061\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150Specific/Transaction64Rule_d64p1Filler.json",
    "content": "{\n    \"Transaction64Rule_d64p1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:0x1000000000000000000000000000000000000118>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x0c\"\n\t\t                }\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x02\" : \"0x60a4\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"// code\" : \"check gas spent on suicide known contract on EIP150\",\n\t\t        \"code\" : \"{ [0] (GAS) (CALL 160000 <contract:0x1000000000000000000000000000000000000118> 0 0 0 0 0) [[2]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:0x1000000000000000000000000000000000000118>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [[1]] 12 }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"160063\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150Specific/Transaction64Rule_integerBoundariesFiller.yml",
    "content": "Transaction64Rule_integerBoundaries:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  # Human readable information\n  _info:\n    comment: \"Danno Ferrin danno.ferrin@gmail.com\"\n\n  pre:\n\n    # End with a STOP\n    0000000000000000000000000000000000001000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: :raw 0x600060FF00\n        # 0 PUSH1 0\n        # 2 PUSH1 FF\n        # 4 STOP\n      nonce: 0\n      storage: {}\n\n    000000000000000000000000000000000000c0de:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        :yul berlin\n        {\n          let initialgas := gas()\n          let callgas := calldataload(0)\n\n          pop(call(callgas, 0x1000, 0, 0, 0, 0, 0x20))\n          sstore(0, lt(gas(), initialgas))\n\n          pop(callcode(callgas, 0x1000, 0, 0, 0, 0, 0x20))\n          sstore(1, lt(gas(), initialgas))\n\n          pop(delegatecall(callgas, 0x1000, 0, 0x20, 0, 0x20))\n          sstore(2, lt(gas(), initialgas))\n\n          pop(staticcall(callgas, 0x1000, 0, 0x20, 0, 0x20))\n          sstore(3, lt(gas(), initialgas))\n        }\n      nonce: '0'\n      storage: {}\n\n    0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: 0x10000000000000000\n      code: ''\n      nonce: '0x00'\n      storage: {}\n\n  transaction:\n    data:\n      - :label int8    :raw 0x000000000000000000000000000000000000000000000000000000000000007f\n      - :label uint8   :raw 0x000000000000000000000000000000000000000000000000000000000000008f\n      - :label int16   :raw 0x0000000000000000000000000000000000000000000000000000000000007fff\n      - :label uint16  :raw 0x0000000000000000000000000000000000000000000000000000000000008fff\n      - :label int32   :raw 0x000000000000000000000000000000000000000000000000000000007fffffff\n      - :label uint32  :raw 0x000000000000000000000000000000000000000000000000000000008fffffff\n      - :label int64   :raw 0x0000000000000000000000000000000000000000000000007fffffffffffffff\n      - :label uint64  :raw 0x0000000000000000000000000000000000000000000000008fffffffffffffff\n      - :label int128  :raw 0x000000000000000000000000000000007fffffffffffffffffffffffffffffff\n      - :label uint128 :raw 0x000000000000000000000000000000008fffffffffffffffffffffffffffffff\n      - :label int256  :raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n      - :label uint256 :raw 0x8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n    gasLimit:\n      - 800000\n    gasPrice: 10\n    nonce: 0\n    to: 000000000000000000000000000000000000c0de\n    value:\n      - 0\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        000000000000000000000000000000000000c0de:\n          storage:\n            0x00: 1\n            0x01: 1\n            0x02: 1\n            0x03: 1\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150Specific/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150singleCodeGasPrices/RawBalanceGasFiller.json",
    "content": "{\n    \"RawBalanceGas\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"116\"\n\t\t                }\n\t\t            } \n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [0] (GAS) (BALANCE <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>) [[1]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150singleCodeGasPrices/RawCallCodeGasAskFiller.json",
    "content": "{\n    \"RawCallCodeGasAsk\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                }\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x60a3\",\n\t\t                    \"0x02\" : \"0x0727bb\"\n\t\t                }\n\t\t            }  \n                }\n            }\n        ],\n        \"pre\" :\n        {\n\t    \"<contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[2]] (GAS) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [0] (GAS) (CALLCODE 3000000 <contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) [[1]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"500000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150singleCodeGasPrices/RawCallCodeGasFiller.json",
    "content": "{\n    \"RawCallCodeGas\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                }\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x60a3\",\n\t\t                    \"0x02\" : \"0x752e\"\n\t\t                }\n\t\t            } \n                }\n            }\n        ],\n        \"pre\" :\n        {\n\t    \"<contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[2]] (GAS) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t\"nonce\" : \"0\",\n\t\t\"code\" : \"{ [0] (GAS) (CALLCODE 30000 <contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) [[1]] (SUB @0 (GAS)) }\",\n\t\t\"storage\": {\n\t\t}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"500000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150singleCodeGasPrices/RawCallCodeGasMemoryAskFiller.json",
    "content": "{\n    \"RawCallCodeGasMemoryAsk\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                }\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x6408\",\n\t\t                    \"0x02\" : \"0x072464\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n\t    \"<contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[2]] (GAS) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [0] (GAS) (CALLCODE 3000000 <contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 8000 0 8000) [[1]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"500000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150singleCodeGasPrices/RawCallCodeGasMemoryFiller.json",
    "content": "{\n    \"RawCallCodeGasMemory\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                }\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x6408\",\n\t\t                    \"0x02\" : \"0x752e\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n\t    \"<contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[2]] (GAS) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [0] (GAS) (CALLCODE 30000 <contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 8000 0 8000) [[1]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"500000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150singleCodeGasPrices/RawCallCodeGasValueTransferAskFiller.json",
    "content": "{\n    \"RawCallCodeGasValueTransferAsk\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                }\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x7acf\",\n\t\t                    \"0x02\" : \"0x070e1c\"\n\t\t                }\n\t\t            } \n                 }\n            }\n        ],\n        \"pre\" :\n        {\n\t    \"<contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[2]] (GAS) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [0] (GAS) (CALLCODE 3000000 <contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b> 10 0 0 0 0) [[1]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"500000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150singleCodeGasPrices/RawCallCodeGasValueTransferFiller.json",
    "content": "{\n    \"RawCallCodeGasValueTransfer\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                }\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x7acf\",\n\t\t                    \"0x02\" : \"0x7e2a\"\n\t\t                }\n\t\t            } \n                }\n            }\n        ],\n        \"pre\" :\n        {\n\t    \"<contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[2]] (GAS) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [0] (GAS) (CALLCODE 30000 <contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b> 10 0 0 0 0) [[1]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"500000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150singleCodeGasPrices/RawCallCodeGasValueTransferMemoryAskFiller.json",
    "content": "{\n    \"RawCallCodeGasValueTransferMemoryAsk\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                }\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x7e34\",\n\t\t                    \"0x02\" : \"0x070ac4\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n\t    \"<contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[2]] (GAS) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [0] (GAS) (CALLCODE 3000000 <contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b> 10 0 8000 0 8000) [[1]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"500000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150singleCodeGasPrices/RawCallCodeGasValueTransferMemoryFiller.json",
    "content": "{\n    \"RawCallCodeGasValueTransferMemory\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                }\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x7e34\",\n\t\t                    \"0x02\" : \"0x7e2a\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n\t    \"<contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[2]] (GAS) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [0] (GAS) (CALLCODE 30000 <contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b> 10 0 8000 0 8000) [[1]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"500000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150singleCodeGasPrices/RawCallGasAskFiller.json",
    "content": "{\n    \"RawCallGasAsk\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x02\" : \"0x0727bb\"\n\t\t                }\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x60a3\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n\t    \"<contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[2]] (GAS) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [0] (GAS) (CALL 3000000 <contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) [[1]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"500000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150singleCodeGasPrices/RawCallGasFiller.json",
    "content": "{\n    \"RawCallGas\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x02\" : \"0x752e\"\n\t\t                }\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x60a3\"\n\t\t                }\n\t\t            } \n                }\n            }\n        ],\n        \"pre\" :\n        {\n\t    \"<contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[2]] (GAS) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [0] (GAS) (CALL 30000 <contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) [[1]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"500000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150singleCodeGasPrices/RawCallGasValueTransferAskFiller.json",
    "content": "{\n    \"RawCallGasValueTransferAsk\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x02\" : \"0x070e1c\"\n\t\t                }\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x7acf\"\n\t\t                }\n\t\t            } \n                }\n            }\n        ],\n        \"pre\" :\n        {\n\t    \"<contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[2]] (GAS) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [0] (GAS) (CALL 3000000 <contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b> 10 0 0 0 0) [[1]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"500000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150singleCodeGasPrices/RawCallGasValueTransferFiller.json",
    "content": "{\n    \"RawCallGasValueTransfer\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x02\" : \"0x7e2a\"\n\t\t                }\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x7acf\"\n\t\t                }\n\t\t            }  \n                }\n            }\n        ],\n        \"pre\" :\n        {\n\t    \"<contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[2]] (GAS) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [0] (GAS) (CALL 30000 <contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b> 10 0 0 0 0) [[1]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"500000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150singleCodeGasPrices/RawCallGasValueTransferMemoryAskFiller.json",
    "content": "{\n    \"RawCallGasValueTransferMemoryAsk\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x02\" : \"0x070ac4\"\n\t\t                }\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x7e34\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n\t    \"<contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[2]] (GAS) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [0] (GAS) (CALL 3000000 <contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b> 10 0 8000 0 8000) [[1]] (SUB @0  (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"500000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150singleCodeGasPrices/RawCallGasValueTransferMemoryFiller.json",
    "content": "{\n    \"RawCallGasValueTransferMemory\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x02\" : \"0x7e2a\"\n\t\t                }\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x7e34\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n\t    \"<contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[2]] (GAS) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [0] (GAS) (CALL 30000 <contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b> 10 0 8000 0 8000) [[1]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"500000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150singleCodeGasPrices/RawCallMemoryGasAskFiller.json",
    "content": "{\n    \"RawCallMemoryGasAsk\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x02\" : \"0x072464\"\n\t\t                }\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x6408\"\n\t\t                }\n\t\t            } \n                }\n            }\n        ],\n        \"pre\" :\n        {\n\t    \"<contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[2]] (GAS) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [0] (GAS) (CALL 3000000 <contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 8000 0 8000) [[1]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"500000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150singleCodeGasPrices/RawCallMemoryGasFiller.json",
    "content": "{\n    \"RawCallMemoryGas\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x02\" : \"0x752e\"\n\t\t                }\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x6408\"\n\t\t                }\n\t\t            } \n                }\n            }\n        ],\n        \"pre\" :\n        {\n\t    \"<contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[2]] (GAS) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [0] (GAS) (CALL 30000 <contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 8000 0 8000) [[1]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"500000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150singleCodeGasPrices/RawCreateFailGasValueTransfer2Filler.json",
    "content": "{\n    \"RawCreateFailGasValueTransfer2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"33391\"\n\t\t                }\n\t\t            },\n\t\t            \"f1ecf98489fa9ed60a664fc4998db699cfa39d40\" : {\n    \t\t\t        \"shouldnotexist\" : \"1\"\n\t\t            }  \n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [0] (GAS) (CREATE 11 0 8000) [[1]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"500000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150singleCodeGasPrices/RawCreateFailGasValueTransferFiller.json",
    "content": "{\n    \"RawCreateFailGasValueTransfer\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x7d16\"\n\t\t                }\n\t\t            },\n\t\t            \"f1ecf98489fa9ed60a664fc4998db699cfa39d40\" : {\n    \t\t\t        \"shouldnotexist\" : \"1\"\n\t\t            } \n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [0] (GAS) (CREATE 11 0 0) [[1]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"500000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150singleCodeGasPrices/RawCreateGasFiller.json",
    "content": "{\n    \"RawCreateGas\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x7d16\"\n\t\t                }\n\t\t            },\n\t\t            \"f1ecf98489fa9ed60a664fc4998db699cfa39d40\" : {\n    \t\t\t        \"balance\" : \"0\"\n\t\t            } \n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [0] (GAS) (CREATE 0 0 0) [[1]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"500000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150singleCodeGasPrices/RawCreateGasMemoryFiller.json",
    "content": "{\n    \"RawCreateGasMemory\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x826f\"\n\t\t                }\n\t\t            },\n\t\t            \"f1ecf98489fa9ed60a664fc4998db699cfa39d40\" : {\n\t\t\t        \"balance\" : \"0\"\n\t\t            } \n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [0] (GAS) (CREATE 0 0 8000) [[1]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"500000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150singleCodeGasPrices/RawCreateGasValueTransferFiller.json",
    "content": "{\n    \"RawCreateGasValueTransfer\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x7d16\"\n\t\t                }\n\t\t            },\n\t\t            \"f1ecf98489fa9ed60a664fc4998db699cfa39d40\" : {\n    \t\t\t        \"balance\" : \"10\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [0] (GAS) (CREATE 10 0 0) [[1]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"500000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150singleCodeGasPrices/RawCreateGasValueTransferMemoryFiller.json",
    "content": "{\n    \"RawCreateGasValueTransferMemory\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x826f\"\n\t\t                }\n\t\t            },\n\t\t            \"f1ecf98489fa9ed60a664fc4998db699cfa39d40\" : {\n    \t\t\t        \"balance\" : \"10\"\n\t\t            }  \n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [0] (GAS) (CREATE 10 0 8000) [[1]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"500000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150singleCodeGasPrices/RawDelegateCallGasAskFiller.json",
    "content": "{\n    \"RawDelegateCallGasAsk\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                }\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t\t        \"storage\" : {\n\t\t                    \"0x01\" : \"0x60a0\",\n\t\t                    \"0x02\" : \"0x0727be\"\n\t\t                }\n\t\t            } \n                }\n            }\n        ],\n        \"pre\" :\n        {\n\t    \"<contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[2]] (GAS) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [0] (GAS) (DELEGATECALL 3000000 <contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0) [[1]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"500000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150singleCodeGasPrices/RawDelegateCallGasFiller.json",
    "content": "{\n    \"RawDelegateCallGas\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                }\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t\t        \"storage\" : {\n\t\t                    \"0x01\" : \"0x60a0\",\n\t\t                    \"0x02\" : \"0x752e\"\n\t\t                }\n\t\t            }  \n                }\n            }\n        ],\n        \"pre\" :\n        {\n\t    \"<contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[2]] (GAS) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [0] (GAS) (DELEGATECALL 30000 <contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0) [[1]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"500000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150singleCodeGasPrices/RawDelegateCallGasMemoryAskFiller.json",
    "content": "{\n    \"RawDelegateCallGasMemoryAsk\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                }\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t\t        \"storage\" : {\n\t\t                    \"0x01\" : \"0x6405\",\n\t\t                    \"0x02\" : \"0x072467\"\n\t\t                }\n\t\t            }  \n                }\n            }\n        ],\n        \"pre\" :\n        {\n\t    \"<contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[2]] (GAS) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [0] (GAS) (DELEGATECALL 3000000 <contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 8000 0 8000) [[1]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"500000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150singleCodeGasPrices/RawDelegateCallGasMemoryFiller.json",
    "content": "{\n    \"RawDelegateCallGasMemory\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                }\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n    \t\t\t        \"storage\" : {\n\t\t                    \"0x01\" : \"0x6405\",\n\t\t                    \"0x02\" : \"0x752e\"\n\t\t                }\n\t\t            }  \n                }\n            }\n        ],\n        \"pre\" :\n        {\n\t    \"<contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[2]] (GAS) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [0] (GAS) (DELEGATECALL 30000 <contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 8000 0 8000) [[1]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"500000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150singleCodeGasPrices/RawExtCodeCopyGasFiller.json",
    "content": "{\n    \"RawExtCodeCopyGas\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x0a45\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n\t    \"<contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"\",\n                \"code\" : \":raw 0x0112233445566778899101112131415161718191202122232425\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [0] (GAS) (EXTCODECOPY <contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b> 32 0 20) [[1]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150singleCodeGasPrices/RawExtCodeCopyMemoryGasFiller.json",
    "content": "{\n    \"RawExtCodeCopyMemoryGas\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x1354\"\n\t\t                }\n\t\t            } \n                }\n            }\n        ],\n        \"pre\" :\n        {\n\t    \"<contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"\",\n                \"code\" : \":raw 0x0112233445566778899101112131415161718191202122232425\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [0] (GAS) (EXTCODECOPY <contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b> 32 0 11120) [[1]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150singleCodeGasPrices/RawExtCodeSizeGasFiller.json",
    "content": "{\n    \"RawExtCodeSizeGas\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x0a38\"\n\t\t                }\n\t\t            } \n                }\n            }\n        ],\n        \"pre\" :\n        {\n\t    \"<contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"\",\n                \"code\" : \":raw 0x0112233445566778899101112131415161718191202122232425\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [0] (GAS) (EXTCODESIZE <contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>) [[1]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150singleCodeGasPrices/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150singleCodeGasPrices/eip2929-ffFiller.yml",
    "content": "# The EIP2929 changes in SELFDESTRUCT (opcode 0xFF)\n\neip2929-ff:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    # The address that gets the funds from the self-destruct\n    000000000000000000000000000000000000DE57:\n      balance: '0x0'\n      code: ':raw 0x00'\n      nonce: '0'\n      storage: {}\n\n    # Do a SELFDESTRUCT and give 0xDE57 your remaining gas\n    000000000000000000000000000000000000ca11:\n      balance: '0xde0b6b3a7640000'  # 1 ETH\n      code: |\n         {\n              (selfdestruct 0xDE57)\n         }\n      nonce: '0'\n      storage: {}\n\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           (def 'operation $4)\n\n           (def 'measurementCost 0x08)\n           \n           ; Make sure not to be overwritten by extcodecopy\n           (def 'gasB4     0x100)\n           (def 'gasAfter  0x120) \n\n           ; Write something so the storage won't be new\n           [gasB4] 0xFF\n           [gasAfter] 0xFF\n              \n           (def 'NOP 0)\n           (def 'dest 0xDE57)   ; destination address\n\n           ; Read so access to that account later won't trigger EIP2929 costs\n           (balance 0xca11)\n\n           ; If we need to add the destination address to the active set,\n           ; do so.\n           (if (= operation 0x31) (balance dest) NOP)\n           (if (= operation 0x3B) (extcodesize dest) NOP)\n           (if (= operation 0x3C) (extcodecopy dest 0 0 1) NOP)\n           (if (= operation 0x3F) (extcodehash dest) NOP)\n           (if (= operation 0xF1) (call 0x10000 dest 0 0 0 0 0) NOP)\n           (if (= operation 0xF2) (callcode 0x10000 dest 0 0 0 0 0) NOP)\n           (if (= operation 0xF4) (delegatecall 0x10000 dest 0 0 0 0) NOP)\n           (if (= operation 0xFA) (staticcall 0x10000 dest 0 0 0 0) NOP)\n\n           ; Look just as the gas cost of the SELFDESTRUCT\n           [gasB4] (gas)\n           (call 0x1000000 0xca11 0 0 0 0 0)\n           [gasAfter] (gas)\n\n           [[0]] (- @gasB4 @gasAfter measurementCost)\n\n           ; Get the gas cost of BALANCE for dest. This is\n           ; to verify, in the case of :label simple, that the \n           ; destination address is indeed touched by the SELFDESTRUCT\n           ; that sends it money\n           [gasB4] (gas)\n           (balance dest)\n           [gasAfter] (gas)\n\n           [[1]] (- @gasB4 @gasAfter measurementCost)\n\n        }\n      nonce: '0'\n      storage: {}\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n      \n  transaction:\n    data:\n    # Just run the SELFDESTRUCT\n    - :label simple       :abi f(uint) 0x00\n\n    # Add the destination address to the active set first\n    # (in various ways)\n    - :label balance      :abi f(uint) 0x31\n    - :label extcodesize  :abi f(uint) 0x3B\n    - :label extcodecopy  :abi f(uint) 0x3C\n    - :label extcodehash  :abi f(uint) 0x3F\n    - :label call         :abi f(uint) 0xF1\n    - :label callcode     :abi f(uint) 0xF2\n    - :label delegatecall :abi f(uint) 0xF4\n    - :label staticcall   :abi f(uint) 0xFA\n\n    gasLimit: \n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n    \n    \n  expect:\n    - indexes:\n        data:\n        - :label simple\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0: 7726\n            1: 105\n\n    - indexes:\n        data:\n        - :label balance     \n        - :label extcodesize \n        - :label extcodecopy \n        - :label extcodehash \n        - :label call        \n        - :label callcode    \n        - :label delegatecall\n        - :label staticcall  \n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0: 5126\n            1: 105\n\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150singleCodeGasPrices/eip2929Filler.yml",
    "content": "# Deal with all EIP2929 changes except for the change to \n# SELFDESTRUCT\n\neip2929:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    000000000000000000000000000000000000ca11:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: ':raw 0x00'\n      nonce: '0'\n      storage: {}\n\n\n    # Get the balance of the 0xCA11 account. To show\n    # that looking at an address twice, in two different\n    # contracts (during the same transaction) only\n    # incurs one eip2929 charge.\n    000000000000000000000000000000ca1100ca11:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n         {\n              (balance 0xca11)\n         }\n      nonce: '0'\n      storage: {}\n\n\n    # Access storage 0x100 from a different account\n    00000000000000000000000000000000ca110100:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n         {\n             @@0x100\n         }\n      nonce: '0'\n      storage: {}\n\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           (def 'oper1 $4)\n           (def 'oper2 $36)\n           (def 'oper3 $68)\n              \n           (def 'NOP 0)\n           (def 'measurementCost 0x022a)\n           \n           (def 'gasB4     0x00)\n           (def 'gasAfter  0x20) \n           (def 'operation 0x40)\n \n           ; Write to the memory so memory allocation won't affect the\n           ; measurement\n           [gasB4] (gas)\n           [gasAfter] (gas)\n\n           ; Read addresses so that won't affect the measurement\n           (balance 0xca1100ca11)\n           (balance   0xca110100)\n\n           (def 'tests {\n               (if (= @operation 1) @@0x100 NOP) ; SLOAD\n               (if (= @operation 2) [[0x100]] 5 NOP) ; SSTORE\n               (if (= @operation 11) (balance 0xca11) NOP) ; BALANCE\n               (if (= @operation 12) (extcodesize 0xca11) NOP) ; EXTCODESIZE\n               (if (= @operation 13) (extcodecopy 0xca11 0 0 0) NOP) ; EXTCODECOPY\n               (if (= @operation 14) (extcodehash 0xca11) NOP) ; EXTCODEHASH\n               (if (= @operation 21) (call 0x1000 0xca11 0 0 0 0 0) NOP) ; CALL\n               (if (= @operation 22) (callcode 0x1000 0xca11 0 0 0 0 0) NOP) ; CALLCODE\n               (if (= @operation 23) (delegatecall 0x1000 0xca11 0 0 0 0) NOP) ; DELEGATECALL\n               (if (= @operation 24) (staticcall 0x1000 0xca11 0 0 0 0) NOP) ; STATICCALL\n\n               ; Look at the address 0xca11 in a different account\n               (if (= @operation 31) (call 0x1000 0xca1100ca11 0 0 0 0 0) NOP)\n\n               ; Read storage in a different account CALLCODE\n               (if (= @operation 32) (callcode 0x1000 0xca110100 0 0 0 0 0) NOP)\n\n               ; Read storage in a different account DELEGATECALL\n               (if (= @operation 33) (delegatecall 0x1000 0xca110100 0 0 0 0) NOP)\n              }\n            )     ; def 'tests\n\n            [operation] oper1\n            [gasB4] (gas)\n            tests\n            [gasAfter] (gas)\n            [[0]] (- @gasB4 @gasAfter measurementCost)\n\n            [operation] oper2\n            [gasB4] (gas)\n            tests\n            [gasAfter] (gas)\n            [[1]] (- @gasB4 @gasAfter measurementCost)\n\n            [operation] oper3\n            [gasB4] (gas)\n            tests\n            [gasAfter] (gas)\n            [[2]] (- @gasB4 @gasAfter measurementCost)\n\n            [[0x100]] 0\n\n        }\n      nonce: '0'\n      storage:\n        # Gets overwritten, used to avoid the gas cost of new storage\n        0x100: 0x60A7\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n      \n  transaction:\n    data:\n    # No operation\n    - :label nop-nop-nop :abi f(uint,uint,uint) 0 0 0\n  \n    # SLOAD three times\n    - :label sload-sload-sload :abi f(uint,uint,uint) 1 1 1\n\n    # SSTORE three times\n    - :label sstore-sstore-sstore :abi f(uint,uint,uint) 2 2 2\n\n    # addr is used for most opcodes that read address information \n    # (BALANCE, EXTCODESIZE, and EXTCODEHASH). \n\n    # BALANCE three times\n    - :label addr-addr-addr :abi f(uint,uint,uint) 11 11 11\n\n    # EXTCODESIZE three times\n    - :label addr-addr-addr :abi f(uint,uint,uint) 12 12 12\n\n    # EXTCODECOPY three times\n    # Not addr, because it takes seven more gas than the addr\n    # (BALANCE, EXTCODESIZE, EXTCODEHASH)\n    - :label copy-copy-copy :abi f(uint,uint,uint) 13 13 13\n\n    # EXTCODEHASH three times\n    - :label addr-addr-addr :abi f(uint,uint,uint) 14 14 14\n\n    # call8 is for the expensive CALL opcodes: CALL and CALLCODE\n    # CALL three times\n    - :label call8-call8-call8 :abi f(uint,uint,uint) 21 21 21\n\n    # CALLCODE three times\n    - :label call8-call8-call8 :abi f(uint,uint,uint) 22 22 22\n\n    # call5 is for the cheap CALL opcodes: DELEGATECALL and STATICCALL\n    # DELEGATECALL three times\n    - :label call5-call5-call5 :abi f(uint,uint,uint) 23 23 23\n\n    # STATICCALL three times\n    - :label call5-call5-call5 :abi f(uint,uint,uint) 24 24 24\n\n    # Look at an address through a different account, three times\n    - :label faraddr-faraddr-faraddr :abi f(uint,uint,uint) 31 31 31\n\n    # Look at storage through a different account using:\n    # CALLCODE\n    - :label farcall8-farcall8-farcall8 :abi f(uint,uint,uint) 32 32 32\n\n    # DELEGATECALL   \n    - :label farcall5-farcall5-farcall5 :abi f(uint,uint,uint) 33 33 33\n\n\n\n    ############# Various opcode mixtures\n\n    # SSTORE and SLOAD mix (same storage cell)\n    - :label sload-sstore-sload :abi f(uint,uint,uint) 1 2 1\n\n    # SLOAD, SSTORE and CALLCODE / DELEGATECALL mixes\n    - :label sload-farcall8-farcall5 :abi f(uint,uint,uint) 1 32 33\n    - :label sload-sstore-farcall5 :abi f(uint,uint,uint) 1 2 33\n    - :label farcall8-sload-farcall5 :abi f(uint,uint,uint) 32 1 33\n    - :label farcall5-sload-sstore :abi f(uint,uint,uint) 33 1 2\n\n    # address information mixes\n    - :label addr-addr-addr :abi f(uint,uint,uint) 11 12 14\n    - :label addr-addr-addr :abi f(uint,uint,uint) 11 14 12\n    - :label addr-addr-addr :abi f(uint,uint,uint) 12 11 14\n    - :label addr-addr-addr :abi f(uint,uint,uint) 12 14 11\n    - :label addr-addr-addr :abi f(uint,uint,uint) 14 12 11\n    - :label addr-addr-addr :abi f(uint,uint,uint) 14 11 12\n    \n    # CALL mixes\n    - :label call8-call8-call8 :abi f(uint,uint,uint) 21 22 21\n    - :label call8-call8-call8 :abi f(uint,uint,uint) 22 22 21\n    - :label call5-call5-call5 :abi f(uint,uint,uint) 23 24 23\n    - :label call5-call5-call5 :abi f(uint,uint,uint) 23 24 24\n\n    # address information and call mixes\n    - :label addr-call8-call8 :abi f(uint,uint,uint) 11 21 22\n    - :label addr-call8-call8 :abi f(uint,uint,uint) 12 21 22\n    - :label addr-call8-call8 :abi f(uint,uint,uint) 14 21 22\n    - :label addr-call8-call8 :abi f(uint,uint,uint) 11 22 21\n    - :label addr-call8-call8 :abi f(uint,uint,uint) 12 22 21\n    - :label addr-call8-call8 :abi f(uint,uint,uint) 14 22 21\n\n    # Mix local and \"remote\" reads \n    - :label addr-addr-faraddr :abi f(uint,uint,uint) 11 12 31\n    - :label addr-faraddr-addr :abi f(uint,uint,uint) 11 31 14\n    - :label faraddr-addr-addr :abi f(uint,uint,uint) 31 14 11\n\n\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n    \n    \n  expect:\n    # No operation happens, so it should return zero\n    # If it doesn't, check measurementCost\n    - indexes:\n        data:\n        - :label nop-nop-nop\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 0\n\n\n    ######### STORAGE ################################################\n\n\n    # SLOAD three times\n    - indexes:\n        data:\n        - :label sload-sload-sload\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 2090\n            0x01: 90\n            0x02: 90\n\n\n\n    # SSTORE three times\n    - indexes:\n        data:\n        - :label sstore-sstore-sstore\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 4991\n            0x01: 91\n            0x02: 91\n\n\n\n    # SLOAD, SSTORE, SLOAD (same address)\n    - indexes:\n        data:\n        - :label sload-sstore-sload\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 2090\n            0x01: 2891\n            0x02: 90\n\n\n    ############################### ADDRESS FUNCTIONS ######################\n\n\n    # BALANCE, EXTCODESIZE, and EXTCODEHASH in various combos.\n    - indexes:\n        data:\n        - :label addr-addr-addr\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 2590\n            0x01: 90\n            0x02: 90\n\n\n    # EXTCODECOPY three times\n    - indexes:\n        data:\n        - :label copy-copy-copy\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 2597\n            0x01: 97\n            0x02: 97\n\n\n\n    # CALL and CALLCODE\n    - indexes:\n        data:\n        - :label call8-call8-call8\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 2608\n            0x01: 108\n            0x02: 108\n\n\n\n    # DELEGATECALL and STATICCALL\n    - indexes:\n        data:\n        - :label call5-call5-call5\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 2605\n            0x01: 105\n            0x02: 105\n\n\n    # address information and then call\n    - indexes:\n        data:\n        - :label addr-call8-call8\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 2590\n            0x01: 108\n            0x02: 108\n\n\n    # Access an address through a different contract\n    - indexes:\n        data:\n        - :label faraddr-faraddr-faraddr\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 2711\n            0x01: 211\n            0x02: 211\n\n\n    # Mix remote and local requests for data\n    - indexes:\n        data:\n        - :label addr-addr-faraddr\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 2590\n            0x01: 90\n            0x02: 211\n\n\n\n\n    - indexes:\n        data:\n        - :label addr-faraddr-addr\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 2590\n            0x01: 211\n            0x02: 90\n\n\n\n\n    - indexes:\n        data:\n        - :label faraddr-addr-addr\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 2711\n            0x01: 90\n            0x02: 90\n\n\n    # CALLCODE to read storage\n    - indexes:\n        data:\n        - :label farcall8-farcall8-farcall8\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 2211\n            0x01: 211\n            0x02: 211\n\n\n\n\n    # DELEGATECALL to read storage\n    - indexes:\n        data:\n        - :label farcall5-farcall5-farcall5\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 2208\n            0x01: 208\n            0x02: 208\n\n\n\n\n\n\n    # Mix of local SLOAD/SSTORE and other contract SLOAD\n    - indexes:\n        data:\n        - :label sload-farcall8-farcall5\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 2090\n            0x01: 211\n            0x02: 208\n\n\n\n\n\n    - indexes:\n        data:\n        - :label sload-sstore-farcall5\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 2090\n            0x01: 2891\n            0x02: 208\n\n\n\n\n\n\n    - indexes:\n        data:\n        - :label farcall8-sload-farcall5\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 2211\n            0x01: 90\n            0x02: 208\n\n\n\n\n\n\n\n    - indexes:\n        data:\n        - :label farcall5-sload-sstore\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 2208\n            0x01: 90\n            0x02: 2891\n\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150singleCodeGasPrices/eip2929OOGFiller.yml",
    "content": "# See that the extra gas cost of EIP2929 causes an out of gas\n\neip2929OOG:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    0000000000000000000000000000000000001054:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           @@0\n        }\n      nonce: 1\n      storage: {}\n\n\n    0000000000000000000000000000000000001055:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [[0]] 0x60A7\n        }\n      nonce: 1\n      storage: {}\n\n\n    0000000000000000000000000000000000001031:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           (balance 0xACC7)\n        }\n      nonce: 1\n      storage: {}\n\n\n    000000000000000000000000000000000000103B:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           (extcodesize 0x1031)\n        }\n      nonce: 1\n      storage: {}\n\n\n    000000000000000000000000000000000000103C:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           (extcodecopy 0x1031 0 0 0x20)\n        }\n      nonce: 1\n      storage: {}\n\n\n    000000000000000000000000000000000000103F:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           (extcodehash 0x1031)\n        }\n      nonce: 1\n      storage: {}\n\n\n\n    00000000000000000000000000000000000010F1:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           (call 0x06A5 0xACC7 0 0 0 0 0)\n        }\n      nonce: 1\n      storage: {}\n\n\n    00000000000000000000000000000000000010F2:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           (callcode 0x06A5 0xACC7 0 0 0 0 0)\n        }\n      nonce: 1\n      storage: {}\n\n\n    00000000000000000000000000000000000010F4:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           (delegatecall 0x06A5 0xACC7 0 0 0 0)\n        }\n      nonce: 1\n      storage: {}\n\n\n\n    00000000000000000000000000000000000010FA:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           (staticcall 0x06A5 0xACC7 0 0 0 0)\n        }\n      nonce: 1\n      storage: {}\n\n\n    # Just an account\n    000000000000000000000000000000000000ACC7:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           (return 0 0)\n        }\n      nonce: 1\n      storage: {}\n\n\n    \n\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           (def 'addr     $4)     ; the address to call\n           (def 'callGas $36)     ; the amount of gas to give it\n\n           [[0]] (call callGas addr 0 0 0 0 0)\n        }\n      nonce: 1\n      storage:\n        # Gets overwritten\n        0x0: 0x60A7\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: 1\n      storage: {}\n      \n  transaction:\n    data:\n    # SLOAD\n    - :label failEIP2929 :abi f(uint,uint) 0x1054 2000\n\n    # SSTORE\n    - :label failEIP2929 :abi f(uint,uint) 0x1055 22000\n\n    # BALANCE\n    - :label failEIP2929 :abi f(uint,uint) 0x1031 2000\n\n    # EXTCODESIZE\n    - :label failEIP2929 :abi f(uint,uint) 0x103B 2500\n\n    # EXTCODECOPY\n    - :label failEIP2929 :abi f(uint,uint) 0x103C 2500\n\n    # EXTCODEHASH\n    - :label failEIP2929 :abi f(uint,uint) 0x103F 2500\n\n    # CALL\n    - :label failEIP2929 :abi f(uint,uint) 0x10F1 1750\n\n    # CALLCODE\n    - :label failEIP2929 :abi f(uint,uint) 0x10F2 1750\n\n    # DELEGATECALL\n    - :label failEIP2929 :abi f(uint,uint) 0x10F4 1750\n\n    # STATICCALL\n    - :label failEIP2929 :abi f(uint,uint) 0x10FA 1750\n\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: 1\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n    \n    \n  expect:\n    # Berlin and above should fail (not enough gas)\n    - indexes:\n        data:\n        - :label failEIP2929\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 0\n\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150singleCodeGasPrices/gasCostBerlinFiller.yml",
    "content": "gasCostBerlin:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n# Human readable information\n  _info:\n    comment: \"Ori Pomerantz qbzzt1@gmail.com\"\n\n  pre:\n\n    <contract:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        { ; LLL doesn't let us call arbitrary code, so we craft\n          ; a new contract with the opcode and then call it to see\n          ; how much the contract cost\n          ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n          ; Initialization\n \n          ; Variables (0x20 byte wide)\n          (def 'opcode            0x200)\n          (def 'contractLength    0x220)\n          (def 'constructorLength 0x240)\n          (def 'i                 0x260)\n          (def 'addr              0x280)\n          (def 'gasB4             0x300)\n          (def 'gasAfter          0x320)\n          (def 'expectedCost      0x340)\n\n          ; Maximum length of contract\n          (def 'maxLength         0x100)\n\n          ; Code in memory\n          (def 'constructorCode   0x000)\n          (def 'contractCode      (+ constructorCode maxLength))\n          ; contractCode has to be immediately after constructoCode \n          ; for us to send it as part of the constructor code\n\n          ; Cost of everything around the opcode\n          (def 'sysCost           0xb9)\n\n\n          ; Understand the input\n          [opcode]        (shr $ 0 248)\n          [expectedCost]  (and (shr $ 0 232) 0xFFFF)\n\n          ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n          ; Craft the contract\n\n          ; First, 17 pushes. SWAP16 looks that far down in the stack\n          [i] 17\n          (while @i {   ; until i is zero\n             [i] (- @i 1)\n\n             ; PUSH2 0xDATA\n             (mstore8 (+ contractCode @contractLength) 0x61)\n             (mstore8 (+ contractCode @contractLength 1) 0xDA)\n             (mstore8 (+ contractCode @contractLength 2) 0x7A)\n             [contractLength] (+ @contractLength 3)\n          })            ; while i\n\n          ; Run the opcode and then STOP\n          (mstore8 (+ contractCode @contractLength) @opcode)\n          (mstore8 (+ contractCode @contractLength 1) 0x00)\n          [contractLength] (+ @contractLength 2)\n\n          ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n          ; Create the constructor. Use the memory where the \n          ; contract already exists\n          [constructorLength]\n             (lll {\n                (codecopy contractCode contractCode maxLength)\n                (return contractCode maxLength)  ; wasteful (the contract is\n                                                 ; a lot shorter), but easy\n             }\n             constructorCode)\n\n          ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n          ; Create the contract. Use enough length so it'll\n          ; also include the contract code. Again, wasteful\n          ; but easy\n\n          [addr] (create 0 constructorCode (* maxLength 2))\n\n\n          ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n          ; Actually call the contract and see the gas cost\n          [gasB4] (gas)\n          (call 0x10000 @addr 0 0 0 0 0)\n          [gasAfter] (gas)\n\n\n          ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n          ; Output\n\n          [[0]] (- @gasB4 @gasAfter sysCost @expectedCost)\n          [[1]] @expectedCost\n        }\n      nonce: '0'\n      storage:\n         0: 60A7\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n  transaction:\n    data:\n    # MSB <opcode> <expected cost, two bytes> LSB\n    #\n    # Encoding the expected cost in the data means that if a fork changes\n    # the cost of an opcode we'll need a new test file. However, the other\n    # option is to have a copy of expect: for each opcode with the\n    # cost, which would be IMAO too cumbersome\n    #\n    - :raw 0x000000    # STOP\n    - :raw 0x010003    # ADD\n    - :raw 0x020005    # MUL\n    - :raw 0x030003    # SUB\n    - :raw 0x040005    # DIV\n    # d: 5 \\/\n    - :raw 0x050005    # SDIV\n    - :raw 0x060005    # MOD\n    - :raw 0x070005    # SMOD\n    - :raw 0x080008    # ADDMOD\n    - :raw 0x090008    # MULMOD\n    # d: 10 \\/\n    - :raw 0x0B0005    # SIGNEXTEND\n\n    - :raw 0x100003    # LT\n    - :raw 0x110003    # GT\n    - :raw 0x120003    # SLT\n    - :raw 0x130003    # SGT\n    # d: 15 \\/\n    - :raw 0x140003    # EQ\n    - :raw 0x150003    # ISZERO\n    - :raw 0x160003    # AND\n    - :raw 0x170003    # OR\n    - :raw 0x180003    # XOR\n    # d: 20 \\/\n    - :raw 0x190003    # NOT\n    - :raw 0x1A0003    # BYTE\n\n    - :raw 0x300002    # ADDRESS\n\n    # SLOAD and BALANCE had their cost changed since the yellow paper\n    # See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1884.md\n    - :raw 0x310A28    # BALANCE   ** CHANGED IN BERLIN **\n    - :raw 0x320002    # ORIGIN\n\n    # d:25 \\/\n    - :raw 0x330002    # CALLER\n    - :raw 0x340002    # CALLVALUE\n    - :raw 0x350003    # CALLDATALOAD\n    - :raw 0x360002    # CALLDATASIZE\n    - :raw 0x380002    # CODESIZE\n\n    # d:30 \\/\n    - :raw 0x3A0002    # GASPRICE\n    - :raw 0x3B0A28    # EXTCODESIZE    ** CHANGED IN BERLIN **\n\n    - :raw 0x400014    # BLOCKHASH \n    - :raw 0x410002    # COINBASE\n    - :raw 0x420002    # TIMESTAMP\n\n    # d:35 \\/\n    - :raw 0x430002    # NUMBER\n    - :raw 0x440002    # DIFFICULTY\n    - :raw 0x450002    # GASLIMIT\n\n    - :raw 0x500002    # POP\n\n    # Memory opcodes get their own test, because the value depends\n    # on the memory being accessed\n\n    # SLOAD and BALANCE had their cost changed since the yellow paper\n    # See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1884.md\n    - :raw 0x540834    # SLOAD           ** CHANGED IN BERLIN **\n\n    # d: 40 \\/\n    - :raw 0x555654    # SSTORE (from a zero to a non zero)  ** CHANGED IN BERLIN **\n    - :raw 0x580002    # PC\n    - :raw 0x590002    # MSIZE\n    - :raw 0x5A0002    # GAS\n    - :raw 0x5B0001    # JUMPDEST\n\n    # Look below for PUSH, SWAP, and DUP. I put them after the interesting\n    # opcodes\n\n\n    # d: 45 \\/\n    - :raw 0xFF1DB0    # SELFDESTRUCT   ** CHANGED IN BERLIN **\n\n\n\n\n    # All the PUSH commands will read a bunch of bytes which are all zero\n    # and push that value\n    - :raw 0x600003    \n    - :raw 0x610003    \n    - :raw 0x620003    \n    - :raw 0x630003    \n    - :raw 0x640003    \n    - :raw 0x650003    \n    - :raw 0x660003    \n    - :raw 0x670003    \n    - :raw 0x680003    \n    - :raw 0x690003    \n    - :raw 0x6A0003    \n    - :raw 0x6B0003    \n    - :raw 0x6C0003    \n    - :raw 0x6D0003    \n    - :raw 0x6E0003    \n    - :raw 0x6F0003    \n    - :raw 0x700003    \n    - :raw 0x710003    \n    - :raw 0x720003    \n    - :raw 0x730003    \n    - :raw 0x740003    \n    - :raw 0x750003    \n    - :raw 0x760003    \n    - :raw 0x770003    \n    - :raw 0x780003    \n    - :raw 0x790003    \n    - :raw 0x7A0003    \n    - :raw 0x7B0003    \n    - :raw 0x7C0003    \n    - :raw 0x7D0003    \n    - :raw 0x7E0003    \n    - :raw 0x7F0003    \n\n    # DUP\n    - :raw 0x800003    \n    - :raw 0x810003    \n    - :raw 0x820003    \n    - :raw 0x830003    \n    - :raw 0x840003    \n    - :raw 0x850003    \n    - :raw 0x860003    \n    - :raw 0x870003    \n    - :raw 0x880003    \n    - :raw 0x890003    \n    - :raw 0x8A0003    \n    - :raw 0x8B0003    \n    - :raw 0x8C0003    \n    - :raw 0x8D0003    \n    - :raw 0x8E0003    \n    - :raw 0x8F0003    \n\n    # SWAP\n    - :raw 0x900003    \n    - :raw 0x910003    \n    - :raw 0x920003    \n    - :raw 0x930003    \n    - :raw 0x940003    \n    - :raw 0x950003    \n    - :raw 0x960003    \n    - :raw 0x970003    \n    - :raw 0x980003    \n    - :raw 0x990003    \n    - :raw 0x9A0003    \n    - :raw 0x9B0003    \n    - :raw 0x9C0003    \n    - :raw 0x9D0003    \n    - :raw 0x9E0003    \n    - :raw 0x9F0003    \n\n\n\n\n    # Opcodes skipped for complexity\n\n\n\n    # Opcodes skipped for complexity that other tests cover\n    #\n    # 0x0A EXP  \n    # stEIP150singleCodeGasPrices/gasCostExp.yml\n    #\n    # 0x20 SHA\n    # 0x37 CALLDATACOPY\n    # 0x39 CODECOPY\n    # 0xA0 LOG0\n    # 0xA1 LOG1\n    # 0xA2 LOG2\n    # 0xA3 LOG3\n    # 0xA4 LOG4\n    # stEIP150singleCodeGasPrices/gasCostMemSeg.yml\n    #\n    # 0x56 JUMP\n    # 0x57 JUMPI\n    # stEIP150singleCodeGasPrices/gasCostJump.yml\n    #\n    # 0xF2 CALLCODE    \n    # stEIP150singleCodeGasPrices/RawCallCodeGasMemoryFiller.json\n    #\n    # 0xF1 CALL\n    # stEIP150singleCodeGasPrices/RawCallGasAskFiller.json\n    #\n    # 0xF0 CREATE\n    # stEIP150singleCodeGasPrices/RawCreateGasFiller.json\n    #\n    # 0xF3 RETURN\n    # stEIP150singleCodeGasPrices/gasCostReturn.yml\n    #    \n    # 0xF4 DELEGATECALL\n    # stEIP150singleCodeGasPrices/RawDelegateCallGasAskFiller.json\n    #\n    # 0x3C EXTCODECOPY\n    # stEIP150singleCodeGasPrices/RawExtCodeCopyGasFiller.json\n\n\n\n\n    gasLimit:\n    - 16777216\n    gasPrice: 10\n    nonce: 0\n    to: <contract:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - 1\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n\n\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n          storage:\n            0x00: 0\n            0x01: 'ANY'\n\n\n\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150singleCodeGasPrices/gasCostExpFiller.yml",
    "content": "gasCostExp:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n# Human readable information\n  _info:\n    comment: \"Ori Pomerantz qbzzt1@gmail.com\"\n\n  pre:\n\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n          ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n          ; Initialization\n \n          ; Variables (0x20 byte wide)\n          (def 'powerOf           0x000)  ; A to the power of @powerOf\n          (def 'expectedCost      0x020)  ; Expected gas cost\n          (def 'gasB4             0x040)  ; Before the action being measured\n          (def 'gasAfter          0x060)  ; After the action being measured\n\n          ; Understand CALLDATA. It is four bytes of function\n          ; selector (irrelevant) followed by 32 byte words\n          ; of the parameters\n          [powerOf]       $4\n          [expectedCost]  $36\n\n\n          ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n          ; Run the operation\n          [gasB4]    (gas)\n          (exp 2 @powerOf)\n          [gasAfter] (gas)\n\n\n          ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n          ; Return value\n\n          [[0]] (- @gasB4 @gasAfter @expectedCost)\n        }\n      nonce: '0'\n      storage:\n         0: 60A7\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n  transaction:\n    data:\n    # \n    # fun(powerOf,cost)\n    #   \n    # The cost of EXP depends on the base 256 log of the value we raise\n    # to the power of. The total gas cost is 0x20 for x^0, plus 0x32 for\n    # each \"unit\" (so 0x52 for x^1 to x^255, 0x84 for x^256 to x^0xFFFF, etc.)\n    - :abi fun(uint,uint) 0x00000000 0x20\n    - :abi fun(uint,uint) 0x00000001 0x52\n    - :abi fun(uint,uint) 0x000000FF 0x52\n    - :abi fun(uint,uint) 0x00000100 0x84\n    - :abi fun(uint,uint) 0x0000FFFF 0x84\n    - :abi fun(uint,uint) 0x00010000 0xB6\n    - :abi fun(uint,uint) 0x00FFFFFF 0xB6\n    - :abi fun(uint,uint) 0x01000000 0xE8\n    - :abi fun(uint,uint) 0xFFFFFFFF 0xE8\n\n\n    gasLimit:\n    - 16777216\n    gasPrice: 10\n    nonce: 0\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - 1\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n\n\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n          storage:\n            0x00: 0\n\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150singleCodeGasPrices/gasCostFiller.yml",
    "content": "gasCost:\n\n# This test only applies to Istanbul,\n# But there is a similar test, gasCostBerlin, which applies\n# to all subsequent forks (so far, I'm writing this between Paris and Shanghai)\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n# Human readable information\n  _info:\n    comment: \"Ori Pomerantz qbzzt1@gmail.com\"\n\n  pre:\n\n    <contract:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        { ; LLL doesn't let us call arbitrary code, so we craft\n          ; a new contract with the opcode and then call it to see\n          ; how much the contract cost\n          ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n          ; Initialization\n \n          ; Variables (0x20 byte wide)\n          (def 'opcode            0x200)\n          (def 'contractLength    0x220)\n          (def 'constructorLength 0x240)\n          (def 'i                 0x260)\n          (def 'addr              0x280)\n          (def 'gasB4             0x300)\n          (def 'gasAfter          0x320)\n          (def 'expectedCost      0x340)\n\n          ; Maximum length of contract\n          (def 'maxLength         0x100)\n\n          ; Code in memory\n          (def 'constructorCode   0x000)\n          (def 'contractCode      (+ constructorCode maxLength))\n          ; contractCode has to be immediately after constructoCode \n          ; for us to send it as part of the constructor code\n\n          ; Cost of everything around the opcode\n          (def 'sysCost           0x311)\n\n\n          ; Understand the input\n          [opcode]        (shr $ 0 248)\n          [expectedCost]  (and (shr $ 0 232) 0xFFFF)\n\n          ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n          ; Craft the contract\n\n          ; First, 17 pushes. SWAP16 looks that far down in the stack\n          [i] 17\n          (while @i {   ; until i is zero\n             [i] (- @i 1)\n\n             ; PUSH2 0xDATA\n             (mstore8 (+ contractCode @contractLength) 0x61)\n             (mstore8 (+ contractCode @contractLength 1) 0xDA)\n             (mstore8 (+ contractCode @contractLength 2) 0x7A)\n             [contractLength] (+ @contractLength 3)\n          })            ; while i\n\n          ; Run the opcode and then STOP\n          (mstore8 (+ contractCode @contractLength) @opcode)\n          (mstore8 (+ contractCode @contractLength 1) 0x00)\n          [contractLength] (+ @contractLength 2)\n\n          ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n          ; Create the constructor. Use the memory where the \n          ; contract already exists\n          [constructorLength]\n             (lll {\n                (codecopy contractCode contractCode maxLength)\n                (return contractCode maxLength)  ; wasteful (the contract is\n                                                 ; a lot shorter), but easy\n             }\n             constructorCode)\n\n          ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n          ; Create the contract. Use enough length so it'll\n          ; also include the contract code. Again, wasteful\n          ; but easy\n\n          [addr] (create 0 constructorCode (* maxLength 2))\n\n\n          ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n          ; Actually call the contract and see the gas cost\n          [gasB4] (gas)\n          (call 0x10000 @addr 0 0 0 0 0)\n          [gasAfter] (gas)\n\n\n          ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n          ; Output\n\n          [[0]] (- @gasB4 @gasAfter sysCost @expectedCost)\n          [[1]] @expectedCost\n        }\n      nonce: '0'\n      storage:\n         0: 60A7\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n  transaction:\n    data:\n    # MSB <opcode> <expected cost, two bytes> LSB\n    #\n    # Encoding the expected cost in the data means that if a fork changes\n    # the cost of an opcode we'll need a new test file. However, the other\n    # option is to have a copy of expect: for each opcode with the\n    # cost, which would be IMAO too cumbersome\n    #\n    - :raw 0x000000    # STOP\n    - :raw 0x010003    # ADD\n    - :raw 0x020005    # MUL\n    - :raw 0x030003    # SUB\n    - :raw 0x040005    # DIV\n    # d: 5 \\/\n    - :raw 0x050005    # SDIV\n    - :raw 0x060005    # MOD\n    - :raw 0x070005    # SMOD\n    - :raw 0x080008    # ADDMOD\n    - :raw 0x090008    # MULMOD\n    # d: 10 \\/\n    - :raw 0x0B0005    # SIGNEXTEND\n\n    - :raw 0x100003    # LT\n    - :raw 0x110003    # GT\n    - :raw 0x120003    # SLT\n    - :raw 0x130003    # SGT\n    # d: 15 \\/\n    - :raw 0x140003    # EQ\n    - :raw 0x150003    # ISZERO\n    - :raw 0x160003    # AND\n    - :raw 0x170003    # OR\n    - :raw 0x180003    # XOR\n    # d: 20 \\/\n    - :raw 0x190003    # NOT\n    - :raw 0x1A0003    # BYTE\n\n    - :raw 0x300002    # ADDRESS\n\n    # SLOAD and BALANCE had their cost changed since the yellow paper\n    # See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1884.md\n    - :raw 0x3102BC    # BALANCE\n\n    - :raw 0x320002    # ORIGIN\n\n    # d:25 \\/\n    - :raw 0x330002    # CALLER\n    - :raw 0x340002    # CALLVALUE\n    - :raw 0x350003    # CALLDATALOAD\n    - :raw 0x360002    # CALLDATASIZE\n    - :raw 0x380002    # CODESIZE\n\n    # d:30 \\/\n    - :raw 0x3A0002    # GASPRICE\n    - :raw 0x3B02BC    # EXTCODESIZE\n\n    - :raw 0x400014    # BLOCKHASH \n    - :raw 0x410002    # COINBASE\n    - :raw 0x420002    # TIMESTAMP\n\n    # d:35 \\/\n    - :raw 0x430002    # NUMBER\n    - :raw 0x440002    # DIFFICULTY\n    - :raw 0x450002    # GASLIMIT\n\n    - :raw 0x500002    # POP\n\n    # Memory opcodes get their own test, because the value depends\n    # on the memory being accessed\n\n    # SLOAD and BALANCE had their cost changed since the yellow paper\n    # See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1884.md\n    - :raw 0x540320    # SLOAD\n\n    # d: 40 \\/\n    - :raw 0x554E20    # SSTORE (from a zero to a non zero)\n    - :raw 0x580002    # PC\n    - :raw 0x590002    # MSIZE\n    - :raw 0x5A0002    # GAS\n    - :raw 0x5B0001    # JUMPDEST\n\n    # Look below for PUSH, SWAP, and DUP. I put them after the interesting\n    # opcodes\n\n\n    # d: 45 \\/\n    - :raw 0xFF1388    # SELFDESTRUCT\n\n\n\n\n    # All the PUSH commands will read a bunch of bytes which are all zero\n    # and push that value\n    - :raw 0x600003    \n    - :raw 0x610003    \n    - :raw 0x620003    \n    - :raw 0x630003    \n    - :raw 0x640003    \n    - :raw 0x650003    \n    - :raw 0x660003    \n    - :raw 0x670003    \n    - :raw 0x680003    \n    - :raw 0x690003    \n    - :raw 0x6A0003    \n    - :raw 0x6B0003    \n    - :raw 0x6C0003    \n    - :raw 0x6D0003    \n    - :raw 0x6E0003    \n    - :raw 0x6F0003    \n    - :raw 0x700003    \n    - :raw 0x710003    \n    - :raw 0x720003    \n    - :raw 0x730003    \n    - :raw 0x740003    \n    - :raw 0x750003    \n    - :raw 0x760003    \n    - :raw 0x770003    \n    - :raw 0x780003    \n    - :raw 0x790003    \n    - :raw 0x7A0003    \n    - :raw 0x7B0003    \n    - :raw 0x7C0003    \n    - :raw 0x7D0003    \n    - :raw 0x7E0003    \n    - :raw 0x7F0003    \n\n    # DUP\n    - :raw 0x800003    \n    - :raw 0x810003    \n    - :raw 0x820003    \n    - :raw 0x830003    \n    - :raw 0x840003    \n    - :raw 0x850003    \n    - :raw 0x860003    \n    - :raw 0x870003    \n    - :raw 0x880003    \n    - :raw 0x890003    \n    - :raw 0x8A0003    \n    - :raw 0x8B0003    \n    - :raw 0x8C0003    \n    - :raw 0x8D0003    \n    - :raw 0x8E0003    \n    - :raw 0x8F0003    \n\n    # SWAP\n    - :raw 0x900003    \n    - :raw 0x910003    \n    - :raw 0x920003    \n    - :raw 0x930003    \n    - :raw 0x940003    \n    - :raw 0x950003    \n    - :raw 0x960003    \n    - :raw 0x970003    \n    - :raw 0x980003    \n    - :raw 0x990003    \n    - :raw 0x9A0003    \n    - :raw 0x9B0003    \n    - :raw 0x9C0003    \n    - :raw 0x9D0003    \n    - :raw 0x9E0003    \n    - :raw 0x9F0003    \n\n\n\n\n    # Opcodes skipped for complexity\n\n\n\n    # Opcodes skipped for complexity that other tests cover\n    #\n    # 0x0A EXP  \n    # stEIP150singleCodeGasPrices/gasCostExp.yml\n    #\n    # 0x20 SHA\n    # 0x37 CALLDATACOPY\n    # 0x39 CODECOPY\n    # 0xA0 LOG0\n    # 0xA1 LOG1\n    # 0xA2 LOG2\n    # 0xA3 LOG3\n    # 0xA4 LOG4\n    # stEIP150singleCodeGasPrices/gasCostMemSeg.yml\n    #\n    # 0x56 JUMP\n    # 0x57 JUMPI\n    # stEIP150singleCodeGasPrices/gasCostJump.yml\n    #\n    # 0xF2 CALLCODE    \n    # stEIP150singleCodeGasPrices/RawCallCodeGasMemoryFiller.json\n    #\n    # 0xF1 CALL\n    # stEIP150singleCodeGasPrices/RawCallGasAskFiller.json\n    #\n    # 0xF0 CREATE\n    # stEIP150singleCodeGasPrices/RawCreateGasFiller.json\n    #\n    # 0xF3 RETURN\n    # stEIP150singleCodeGasPrices/gasCostReturn.yml\n    #    \n    # 0xF4 DELEGATECALL\n    # stEIP150singleCodeGasPrices/RawDelegateCallGasAskFiller.json\n    #\n    # 0x3C EXTCODECOPY\n    # stEIP150singleCodeGasPrices/RawExtCodeCopyGasFiller.json\n\n\n\n\n    gasLimit:\n    - 16777216\n    gasPrice: 10\n    nonce: 0\n    to: <contract:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - 1\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n\n\n  expect:\n    - indexes:\n        data:\n          - \"0-22\"\n          - \"24-30\"\n          - \"32-38\"\n          - \"41-44\"\n          - \"46-200\"\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n          storage:\n            0x00: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffda8\n            0x01: 'ANY'\n\n    - indexes:\n        data: \n           - !!int 39\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n          storage:\n            0x00: 700\n            0x01: 'ANY'\n\n    - indexes:\n        data: \n           - !!int 40\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n          storage:\n            0x00: 1500\n            0x01: 'ANY'\n\n    - indexes:\n        data: \n           - !!int 45\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n          storage:\n            0x00: 2000\n            0x01: 'ANY'\n\n    - indexes:\n        data: \n           - !!int 23\n           - !!int 31\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n          storage:\n            0x00: 0x0514\n            0x01: 'ANY'\n\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150singleCodeGasPrices/gasCostJumpFiller.yml",
    "content": "gasCostJump:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n# Human readable information\n  _info:\n    comment: \"Ori Pomerantz qbzzt1@gmail.com\"\n\n  pre:\n\n    # Baseline cost, without any jumps\n    0000000000000000000000000000000000001000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: :raw 0x600060005B5B00\n        # 0 PUSH1 0\n        # 2 PUSH1 5\n        # 4 JUMPDEST\n        # 5 JUMPDEST\n        # 6 STOP\n      nonce: 0\n      storage: {}\n\n\n    # Cost with one JUMPDEST replaced with a JUMP\n    0000000000000000000000000000000000002000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: :raw 0x60006005565B00\n        # 0 PUSH1 0\n        # 2 PUSH1 5\n        # 4 JUMP\n        # 5 JUMPDEST\n        # 6 STOP\n      nonce: 0\n      storage: {}\n\n\n    # Cost with one JUMPDEST replaced with a JUMPI\n    0000000000000000000000000000000000003000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: :raw 0x60016005575B00\n        # 0 PUSH1 1\n        # 2 PUSH1 5\n        # 4 JUMPI\n        # 5 JUMPDEST\n        # 6 STOP\n      nonce: 0\n      storage: {}\n\n\n    # Cost with one JUMPDEST replaced with a JUMPI that doesn't jump\n    0000000000000000000000000000000000004000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: :raw 0x60006005575B00\n        # 0 PUSH1 0\n        # 2 PUSH1 5\n        # 4 JUMPI\n        # 5 JUMPDEST\n        # 6 STOP\n      nonce: 0\n      storage: {}\n\n\n\n    095e7baea6a6c7c4c2dfeb977efac326af552d87:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n          ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n          ; Initialization\n\n          ; Variables (0x20 byte wide)\n          (def 'gasB4             0x000)  ; Before the action being measured\n\n          ; Gas cost for a baseline operation (call a contract that does mstore\n          ; and then mload)\n          (def 'gasBaseline       0x020)\n\n          ; Gas for for the action intself (call a contract plus <whatever>)\n          (def 'gasAction         0x040)\n\n          ; Understand CALLDATA. It is four bytes of function\n          ; selector (irrelevant) followed by 32 byte words\n          ; of the parameters\n          (def 'action        $4 )\n          (def 'expectedCost  $36)\n\n          ; Constants\n          (def  'NOP    0) ; No operation (for if statements)\n\n          ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n          ; Define the actions\n\n          ; Store the gas amount\n          (def 'gas0 [gasB4]    (gas))\n\n          ; Get the baseline cost\n          (def 'getBaseline {\n              gas0\n              (call 0x10000 0x01000 0 0 0 0 0)\n              [gasBaseline] (- @gasB4 (gas))\n          })   ;  def 'getBaseline\n\n\n          ; The actions\n\n          ; JUMP\n          (def 'actJump {\n              gas0\n              (call 0x10000 0x02000 0 0 0 0 0)\n              [gasAction] (- @gasB4 (gas))\n          })          ; def 'actJump\n\n\n          ; JUMPI - success\n          (def 'actJumpiT {\n              gas0\n              (call 0x10000 0x03000 0 0 0 0 0)\n              [gasAction] (- @gasB4 (gas))\n          })          ; def 'actJumpiT\n\n\n\n          ; JUMPI - failure\n          (def 'actJumpiF {\n              gas0\n              (call 0x10000 0x04000 0 0 0 0 0)\n              [gasAction] (- @gasB4 (gas))\n          })          ; def 'actJumpiF\n\n\n\n\n          ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n          ; Run the operation\n\n          getBaseline\n\n          (if (= action 1) actJump   NOP)\n          (if (= action 2) actJumpiT NOP)\n          (if (= action 3) actJumpiF NOP)\n\n          ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n          ; Output\n\n          [[0]] (- @gasAction @gasBaseline expectedCost)\n\n        }\n      nonce: '0'\n      storage:\n         0: 60A7\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n  transaction:\n    data:\n    #\n    # fun(action, expectedCost)\n    #\n    #\n    # JUMPI costs two units more than JUMP\n    - :abi fun(uint,uint) 1 0x04\n    - :abi fun(uint,uint) 2 0x06\n    - :abi fun(uint,uint) 3 0x06\n\n\n    gasLimit:\n    - 16777216\n    gasPrice: 10\n    nonce: 0\n    to: 095e7baea6a6c7c4c2dfeb977efac326af552d87\n    value:\n    - 1\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        095e7baea6a6c7c4c2dfeb977efac326af552d87:\n          storage:\n            0x00: 0\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150singleCodeGasPrices/gasCostMemSegFiller.yml",
    "content": "gasCostMemSeg:\n\n# Opcodes that involve memory segments:\n#\n# SHA\n# CODECOPY\n# CALLDATACOPY\n# LOG0\n# LOG1\n# LOG2\n# LOG3\n# LOG4\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n# Human readable information\n  _info:\n    comment: \"Ori Pomerantz qbzzt1@gmail.com\"\n\n  pre:\n\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n          ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n          ; Initialization\n \n          ; Variables (0x20 byte wide)\n          (def 'gasB4             0x000)  ; Before the action being measured\n          (def 'gasAfter          0x020)  ; After the action being measured\n\n          (def 'afterVars         0x100)  ; Memory after the variables,\n                                          ; safe to copy into\n\n          ; Understand CALLDATA. It is four bytes of function\n          ; selector (irrelevant) followed by 32 byte words\n          ; of the parameters\n          (def 'opcode     $4 )\n          (def 'length     $36)\n          (def 'expectedCost $68)\n\n          ; NOP for if statements\n          (def 'NOP     0)\n\n          ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n          ; Run the operation\n\n          ; SHA3\n          (if (= opcode 0x20) {\n              [gasB4]    (gas)\n              (sha3 0 length)\n              [gasAfter] (gas)\n          } NOP)\n\n\n\n          ; CALLDATACOPY\n          (if (= opcode 0x37) {\n              [gasB4]    (gas)\n              (calldatacopy afterVars 0 length)\n              [gasAfter] (gas)\n          } NOP)\n\n\n          ; CODECOPY\n          (if (= opcode 0x39) {\n              [gasB4]    (gas)\n              (codecopy afterVars 0 length)\n              [gasAfter] (gas)\n          } NOP)\n\n\n\n          ; LOG0\n          (if (= opcode 0xA0) {\n              [gasB4]    (gas)\n              (log0 0 length)\n              [gasAfter] (gas)\n          } NOP)\n\n\n\n          ; LOG1\n          (if (= opcode 0xA1) {\n              [gasB4]    (gas)\n              (log1 0 length 1)\n              [gasAfter] (gas)\n          } NOP)\n\n\n\n          ; LOG2\n          (if (= opcode 0xA2) {\n              [gasB4]    (gas)\n              (log2 0 length 1 2)\n              [gasAfter] (gas)\n          } NOP)\n\n\n\n          ; LOG3\n          (if (= opcode 0xA3) {\n              [gasB4]    (gas)\n              (log3 0 length 1 2 3)\n              [gasAfter] (gas)\n          } NOP)\n\n\n\n          ; LOG4\n          (if (= opcode 0xA4) {\n              [gasB4]    (gas)\n              (log4 0 length 1 2 3 4)\n              [gasAfter] (gas)\n          } NOP)\n\n\n\n          ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n          ; Return value\n\n          [[0]] (- @gasB4 @gasAfter expectedCost)\n        }\n      nonce: '0'\n      storage:\n         0: 60A7\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n  transaction:\n    data:\n    # \n    # fun(opcode,length,expectedCost,filler,filler,filler)\n    # Lots of extra parameters for a long CALLDATA to be copied\n    #\n\n    # SHA3\n    # Nine gas per word, six for the SHA3 and three for the memory access\n    #  0 \\/\n    - :abi fun(uint,uint,uint,uint,uint,uint) 0x20 0x0001 0x3A 0xDEAD60A7 0xDEADBEEF 0x60A7BEEF   \n    - :abi fun(uint,uint,uint,uint,uint,uint) 0x20 0x0020 0x3A 0xDEAD60A7 0xDEADBEEF 0x60A7BEEF   \n    - :abi fun(uint,uint,uint,uint,uint,uint) 0x20 0x0021 0x43 0xDEAD60A7 0xDEADBEEF 0x60A7BEEF   \n    - :abi fun(uint,uint,uint,uint,uint,uint) 0x20 0x0040 0x43 0xDEAD60A7 0xDEADBEEF 0x60A7BEEF   \n    - :abi fun(uint,uint,uint,uint,uint,uint) 0x20 0x0060 0x4C 0xDEAD60A7 0xDEADBEEF 0x60A7BEEF   \n    #  5 \\/\n    - :abi fun(uint,uint,uint,uint,uint,uint) 0x20 0x0080 0x55 0xDEAD60A7 0xDEADBEEF 0x60A7BEEF   \n    - :abi fun(uint,uint,uint,uint,uint,uint) 0x20 0x00A0 0x5E 0xDEAD60A7 0xDEADBEEF 0x60A7BEEF   \n    - :abi fun(uint,uint,uint,uint,uint,uint) 0x20 0x00C0 0x67 0xDEAD60A7 0xDEADBEEF 0x60A7BEEF   \n    - :abi fun(uint,uint,uint,uint,uint,uint) 0x20 0x00E0 0x70 0xDEAD60A7 0xDEADBEEF 0x60A7BEEF   \n    - :abi fun(uint,uint,uint,uint,uint,uint) 0x20 0x0100 0x79 0xDEAD60A7 0xDEADBEEF 0x60A7BEEF   \n\n\n    # CALLDATACOPY\n    # Six gas per word, six for the CALLDATACOPY and three for the memory access\n    # 10 \\/\n    - :abi fun(uint,uint,uint,uint,uint,uint) 0x37 0x0001 0x35 0xDEAD60A7 0xDEADBEEF 0x60A7BEEF   \n    - :abi fun(uint,uint,uint,uint,uint,uint) 0x37 0x0020 0x35 0xDEAD60A7 0xDEADBEEF 0x60A7BEEF   \n    - :abi fun(uint,uint,uint,uint,uint,uint) 0x37 0x0021 0x3B 0xDEAD60A7 0xDEADBEEF 0x60A7BEEF   \n    - :abi fun(uint,uint,uint,uint,uint,uint) 0x37 0x0040 0x3B 0xDEAD60A7 0xDEADBEEF 0x60A7BEEF   \n    - :abi fun(uint,uint,uint,uint,uint,uint) 0x37 0x0060 0x41 0xDEAD60A7 0xDEADBEEF 0x60A7BEEF  \n    # 15 \\/ \n    - :abi fun(uint,uint,uint,uint,uint,uint) 0x37 0x0080 0x47 0xDEAD60A7 0xDEADBEEF 0x60A7BEEF   \n    - :abi fun(uint,uint,uint,uint,uint,uint) 0x37 0x00A0 0x4D 0xDEAD60A7 0xDEADBEEF 0x60A7BEEF   \n    - :abi fun(uint,uint,uint,uint,uint,uint) 0x37 0x00C0 0x53 0xDEAD60A7 0xDEADBEEF 0x60A7BEEF   \n    - :abi fun(uint,uint,uint,uint,uint,uint) 0x37 0x00E0 0x59 0xDEAD60A7 0xDEADBEEF 0x60A7BEEF   \n    - :abi fun(uint,uint,uint,uint,uint,uint) 0x37 0x0100 0x5F 0xDEAD60A7 0xDEADBEEF 0x60A7BEEF   \n\n\n\n    # CODECOPY\n    # Six gas per word, six for the CODECOPY and three for the memory access\n    # 20 \\/\n    - :abi fun(uint,uint,uint,uint,uint,uint) 0x39 0x0001 0x35 0xDEAD60A7 0xDEADBEEF 0x60A7BEEF   \n    - :abi fun(uint,uint,uint,uint,uint,uint) 0x39 0x0020 0x35 0xDEAD60A7 0xDEADBEEF 0x60A7BEEF   \n    - :abi fun(uint,uint,uint,uint,uint,uint) 0x39 0x0021 0x3B 0xDEAD60A7 0xDEADBEEF 0x60A7BEEF   \n    - :abi fun(uint,uint,uint,uint,uint,uint) 0x39 0x0040 0x3B 0xDEAD60A7 0xDEADBEEF 0x60A7BEEF   \n    - :abi fun(uint,uint,uint,uint,uint,uint) 0x39 0x0060 0x41 0xDEAD60A7 0xDEADBEEF 0x60A7BEEF   \n    # 25 \\/\n    - :abi fun(uint,uint,uint,uint,uint,uint) 0x39 0x0080 0x47 0xDEAD60A7 0xDEADBEEF 0x60A7BEEF   \n    - :abi fun(uint,uint,uint,uint,uint,uint) 0x39 0x00A0 0x4D 0xDEAD60A7 0xDEADBEEF 0x60A7BEEF   \n    - :abi fun(uint,uint,uint,uint,uint,uint) 0x39 0x00C0 0x53 0xDEAD60A7 0xDEADBEEF 0x60A7BEEF   \n    - :abi fun(uint,uint,uint,uint,uint,uint) 0x39 0x00E0 0x59 0xDEAD60A7 0xDEADBEEF 0x60A7BEEF   \n    - :abi fun(uint,uint,uint,uint,uint,uint) 0x39 0x0100 0x5F 0xDEAD60A7 0xDEADBEEF 0x60A7BEEF   \n\n\n    # LOG0    30 \\/     8 gas per byte\n    - :abi fun(uint,uint,uint) 0xA0 0 0x018b \n    - :abi fun(uint,uint,uint) 0xA0 1 0x0193\n    - :abi fun(uint,uint,uint) 0xA0 2 0x019b\n    - :abi fun(uint,uint,uint) 0xA0 3 0x01a3\n    - :abi fun(uint,uint,uint) 0xA0 4 0x01ab \n\n    # LOG1    35 \\/     8 gas per byte\n    - :abi fun(uint,uint,uint) 0xA1 0 0x0305\n    - :abi fun(uint,uint,uint) 0xA1 1 0x030d\n    - :abi fun(uint,uint,uint) 0xA1 2 0x0315\n    - :abi fun(uint,uint,uint) 0xA1 3 0x031d\n    - :abi fun(uint,uint,uint) 0xA1 4 0x0325\n\n    # LOG2    40 \\/     8 gas per byte\n    - :abi fun(uint,uint,uint) 0xA2 0 0x047f\n    - :abi fun(uint,uint,uint) 0xA2 1 0x0487\n    - :abi fun(uint,uint,uint) 0xA2 2 0x048f\n    - :abi fun(uint,uint,uint) 0xA2 3 0x0497\n    - :abi fun(uint,uint,uint) 0xA2 4 0x049f\n\n    # LOG3    45 \\/     8 gas per byte\n    - :abi fun(uint,uint,uint) 0xA3 0 0x05f9 \n    - :abi fun(uint,uint,uint) 0xA3 1 0x0601\n    - :abi fun(uint,uint,uint) 0xA3 2 0x0609\n    - :abi fun(uint,uint,uint) 0xA3 3 0x0611\n    - :abi fun(uint,uint,uint) 0xA3 4 0x0619 \n\n    # LOG4    50 \\/     8 gas per byte\n    - :abi fun(uint,uint,uint) 0xA4 0 0x0773 \n    - :abi fun(uint,uint,uint) 0xA4 1 0x077b\n    - :abi fun(uint,uint,uint) 0xA4 2 0x0783\n    - :abi fun(uint,uint,uint) 0xA4 3 0x078b\n    - :abi fun(uint,uint,uint) 0xA4 4 0x0793\n\n\n\n\n\n    gasLimit:\n    - 16777216\n    gasPrice: 10\n    nonce: 0\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - 1\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n\n\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n          storage:\n            0x00: 0\n\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150singleCodeGasPrices/gasCostMemoryFiller.yml",
    "content": "gasCostMemory:\n\n# Note: In the main contract the test doesn't look below memory address 0x0100,\n# because that's where the contract's variables are\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n# Human readable information\n  _info:\n    comment: \"Ori Pomerantz qbzzt1@gmail.com\"\n\n  pre:\n\n    # Baseline cost, mstore followed by mload\n    000000000000000000000000000000000000ba5e:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           (mstore $0 0x60A7)\n           (mload $0)\n        }     \n      nonce: 0\n      storage: {}\n\n\n    # Extra: mstore followed by two mloads\n    000000000000000000000000000000000010ba5e:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           (mstore $0 0x60A7)\n           (mload $0)\n           (mload $0)\n        }     \n      nonce: 0\n      storage: {}\n\n\n    # Extra: mstore, mload, and then mstore\n    000000000000000000000000000000000011ba5e:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           (mstore $0 0x60A7)\n           (mload $0)\n           (mstore $0 0x60A7)\n        }     \n      nonce: 0\n      storage: {}\n\n\n\n\n    095e7baea6a6c7c4c2dfeb977efac326af552d87:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n          ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n          ; Initialization\n \n          ; Variables (0x20 byte wide)\n          (def 'action            0x000)  ; Action to take with the memory\n          (def 'addr              0x020)  ; Address to read / write\n          (def 'expectedCost      0x040)  ; Expected gas cost\n          (def 'gasB4             0x060)  ; Before the action being measured\n          (def 'gasAfter          0x080)  ; After the action being measured\n\n          ; Gas cost for a baseline operation (call a contract that does mstore\n          ; and then mload)\n          (def 'gasBaseline       0x0A0)\n\n          ; Gas for for the action intself (call a contract plus <whatever>)\n          (def 'gasAction         0x0C0)\n\n          ; Temporary values\n          (def 'temp              0x0E0)\n\n          ; Understand CALLDATA. It is four bytes of function\n          ; selector (irrelevant) followed by 32 byte words\n          ; of the parameters\n          [action]        $4\n          [addr]          $36\n          [expectedCost]  $68\n\n          ; Constants\n          (def  'NOP    0) ; No operation (for if statements)\n\n          ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n          ; Define the actions\n\n          ; Store the gas amounts\n          (def 'gas0 [gasB4]    (gas))\n          (def 'gas1 [gasAfter] (gas))\n\n          ; Get the baseline cost\n          (def 'getBaseline {\n              gas0\n              (call 0x10000 0xba5e 0 addr 0x20 0 0)\n              gas1\n              [gasBaseline] (- @gasB4 @gasAfter)\n          })   ;  def 'getBaseline\n\n          ; The actions\n\n          ; 0 - just read the address\n          (def 'act0 {\n              gas0 \n              (mload @addr) \n              gas1\n          })          ; def 'act0\n\n\n          ; 1 - store a word long value\n          (def 'act1 {\n             gas0 \n             [@addr] 0x60A7\n             gas1\n          })          ; def 'act1\n\n\n          ; 2 - store a byte long value\n          (def 'act2 {\n             gas0 \n             (mstore8 @addr 0xFF)\n             gas1\n          })          ; def 'act2\n\n\n          ; Cost of running just the baseline\n          (def 'act3 getBaseline)       ; def 'act3\n\n\n          ; Excess cost of extra mload\n          (def 'act10 {\n              getBaseline\n              gas0\n              (call 0x10000 0x10ba5e 0 addr 0x20 0 0)\n              gas1\n              [gasAction] (- @gasB4 @gasAfter)\n          })           ; def 'act10\n\n\n          ; Excess cost of extra mstore\n          (def 'act11 {\n              getBaseline\n              gas0\n              (call 0x10000 0x11ba5e 0 addr 0x20 0 0)\n              gas1\n              [gasAction] (- @gasB4 @gasAfter)\n          })           ; def 'act11\n\n\n          ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n          ; Run the operation\n\n          ; Single operation cost \n          (if (= @action 0) act0 NOP)\n          (if (= @action 1) act1 NOP)\n          (if (= @action 2) act2 NOP)\n\n          ; Baseline cost\n          (if (= @action 3) act3 NOP)\n\n          ; Differential costs\n          (if (= @action 0x10) act10 NOP)\n          (if (= @action 0x11) act11 NOP)\n\n          ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n          ; Output\n\n          ; an operation\n          (if (<= @action 2)\n             (sstore 0 (- @gasB4 @gasAfter @expectedCost))\n             NOP\n          )\n\n          ; the baseline\n          (if (= @action 3)\n             (sstore 0 (- @gasBaseline @expectedCost))\n             NOP\n          )\n\n\n          ; differential costs\n          (if (= 0x10 (and @action 0xF0))\n             (sstore 0 (- @gasAction @gasBaseline @expectedCost))\n             NOP\n          )\n        }\n      nonce: '0'\n      storage:\n         0: 60A7\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n  transaction:\n    data:\n    # \n    # fun(action, address, cost)\n    #\n\n    # 0: The cost to mload increases the higher the address\n    #   \\/ 0\n    - :abi fun(uint,uint,uint) 0 0x0100 0x0025\n    - :abi fun(uint,uint,uint) 0 0x0120 0x0028\n    - :abi fun(uint,uint,uint) 0 0x0140 0x002b\n    - :abi fun(uint,uint,uint) 0 0x0160 0x002e\n    - :abi fun(uint,uint,uint) 0 0x0180 0x0031\n\n    #   \\/ 5\n    - :abi fun(uint,uint,uint) 0 0x0200 0x003d\n    - :abi fun(uint,uint,uint) 0 0x0300 0x0056 \n    - :abi fun(uint,uint,uint) 0 0x0400 0x006f\n    - :abi fun(uint,uint,uint) 0 0x0800 0x00d5\n    - :abi fun(uint,uint,uint) 0 0x1000 0x01ad\n\n    #    \\/ 10\n    - :abi fun(uint,uint,uint) 0 0x2000 0x038e\n    - :abi fun(uint,uint,uint) 0 0x3000 0x05ae\n\n\n    # 1: The cost to mstore is one more than the cost to mload\n    - :abi fun(uint,uint,uint) 1 0x0100 0x0026\n    - :abi fun(uint,uint,uint) 1 0x0120 0x0029\n    - :abi fun(uint,uint,uint) 1 0x0140 0x002c\n\n    #    \\/ 15\n    - :abi fun(uint,uint,uint) 1 0x0160 0x002f\n    - :abi fun(uint,uint,uint) 1 0x0180 0x0032\n    - :abi fun(uint,uint,uint) 1 0x0200 0x003e\n    - :abi fun(uint,uint,uint) 1 0x0300 0x0057 \n    - :abi fun(uint,uint,uint) 1 0x0400 0x0070\n\n    #   \\/ 20\n    - :abi fun(uint,uint,uint) 1 0x0800 0x00d6\n    - :abi fun(uint,uint,uint) 1 0x1000 0x01ae\n    - :abi fun(uint,uint,uint) 1 0x2000 0x038f\n    - :abi fun(uint,uint,uint) 1 0x3000 0x05af\n\n\n    # 2: The cost to mstore8 is the same as mstore\n    - :abi fun(uint,uint,uint) 2 0x0100 0x0026\n\n    #    \\/ 25\n    - :abi fun(uint,uint,uint) 2 0x0120 0x0029\n    - :abi fun(uint,uint,uint) 2 0x0140 0x002c\n    - :abi fun(uint,uint,uint) 2 0x0160 0x002f\n    - :abi fun(uint,uint,uint) 2 0x0180 0x0032\n    - :abi fun(uint,uint,uint) 2 0x0200 0x003e\n\n    #    \\/ 30\n    - :abi fun(uint,uint,uint) 2 0x0300 0x0057 \n    - :abi fun(uint,uint,uint) 2 0x0400 0x0070\n    - :abi fun(uint,uint,uint) 2 0x0800 0x00d6\n    - :abi fun(uint,uint,uint) 2 0x1000 0x01ae\n    - :abi fun(uint,uint,uint) 2 0x2000 0x038f\n   \n    #    \\/ 35\n    - :abi fun(uint,uint,uint) 2 0x3000 0x05af\n\n\n    # 3: The cost of the baseline contract\n    #    Starting at this point it's fine to check memory below\n    #    0x0100 because the called contracts don't have variables\n    - :abi fun(uint,uint,uint) 3 0x0000 0x02F6\n    - :abi fun(uint,uint,uint) 3 0x0020 0x02F9\n    - :abi fun(uint,uint,uint) 3 0x0040 0x02FC\n    - :abi fun(uint,uint,uint) 3 0x0060 0x02FF\n\n    #     \\/ 40\n    - :abi fun(uint,uint,uint) 3 0x0080 0x0302\n    - :abi fun(uint,uint,uint) 3 0x0100 0x030e\n    - :abi fun(uint,uint,uint) 3 0x0200 0x0326\n    - :abi fun(uint,uint,uint) 3 0x0400 0x0358\n    - :abi fun(uint,uint,uint) 3 0x0800 0x03be\n\n    #     \\/ 45\n    - :abi fun(uint,uint,uint) 3 0x1000 0x0496\n    - :abi fun(uint,uint,uint) 3 0x2000 0x0677\n    - :abi fun(uint,uint,uint) 3 0x4000 0x0af8\n    - :abi fun(uint,uint,uint) 3 0x8000 0x16fa\n\n    # 0x10 - the differential cost of an extra mload\n    - :abi fun(uint,uint,uint) 0x10 0x0000 0x08\n\n    #       \\/ 50\n    - :abi fun(uint,uint,uint) 0x10 0x0010 0x08\n    - :abi fun(uint,uint,uint) 0x10 0x0020 0x08\n    - :abi fun(uint,uint,uint) 0x10 0x0040 0x08\n    - :abi fun(uint,uint,uint) 0x10 0x0080 0x08\n    - :abi fun(uint,uint,uint) 0x10 0x0100 0x08\n    \n    #      \\/ 55\n    - :abi fun(uint,uint,uint) 0x10 0x0200 0x08\n    - :abi fun(uint,uint,uint) 0x10 0x0400 0x08\n    - :abi fun(uint,uint,uint) 0x10 0x0800 0x08\n    - :abi fun(uint,uint,uint) 0x10 0x1000 0x08\n    - :abi fun(uint,uint,uint) 0x10 0x2000 0x08\n\n    #      \\/ 60 \n    - :abi fun(uint,uint,uint) 0x10 0x4000 0x08\n    - :abi fun(uint,uint,uint) 0x10 0x8000 0x08\n\n    # 0x11 - the differential cost of an extra mstore (and a push for the value)\n    - :abi fun(uint,uint,uint) 0x11 0x0000 0x0b\n    - :abi fun(uint,uint,uint) 0x11 0x0010 0x0b\n    - :abi fun(uint,uint,uint) 0x11 0x0020 0x0b\n\n    #                \\/ 65\n    - :abi fun(uint,uint,uint) 0x11 0x0040 0x0b\n    - :abi fun(uint,uint,uint) 0x11 0x0080 0x0b\n    - :abi fun(uint,uint,uint) 0x11 0x0100 0x0b\n    - :abi fun(uint,uint,uint) 0x11 0x0200 0x0b\n    - :abi fun(uint,uint,uint) 0x11 0x0400 0x0b\n\n    #            \\/ 70\n    - :abi fun(uint,uint,uint) 0x11 0x0800 0x0b\n    - :abi fun(uint,uint,uint) 0x11 0x1000 0x0b\n    - :abi fun(uint,uint,uint) 0x11 0x2000 0x0b\n    - :abi fun(uint,uint,uint) 0x11 0x4000 0x0b\n    - :abi fun(uint,uint,uint) 0x11 0x8000 0x0b\n\n\n    gasLimit:\n    - 16777216\n    gasPrice: 10\n    nonce: 0\n    to: 095e7baea6a6c7c4c2dfeb977efac326af552d87\n    value:\n    - 1\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n  expect:\n\n\n    # Berlin, for costs that don't include contract calls\n    - indexes:\n        data: \n        - !!int 0\n        - !!int 1\n        - !!int 2\n        - !!int 3\n        - !!int 4\n        - !!int 5\n        - !!int 6\n        - !!int 7\n        - !!int 8\n        - !!int 9\n        - !!int 10\n        - !!int 11\n        - !!int 12\n        - !!int 13\n        - !!int 14\n        - !!int 15\n        - !!int 16\n        - !!int 17\n        - !!int 18\n        - !!int 19\n        - !!int 20\n        - !!int 21\n        - !!int 22\n        - !!int 23\n        - !!int 24\n        - !!int 25\n        - !!int 26\n        - !!int 27\n        - !!int 28\n        - !!int 29\n        - !!int 30\n        - !!int 31\n        - !!int 32\n        - !!int 33\n        - !!int 34\n        - !!int 35\n        - !!int 49\n        - !!int 50\n        - !!int 51\n        - !!int 52\n        - !!int 53\n        - !!int 54\n        - !!int 55\n        - !!int 56\n        - !!int 57\n        - !!int 58\n        - !!int 59\n        - !!int 60\n        - !!int 61\n        - !!int 62\n        - !!int 63\n        - !!int 64\n        - !!int 65\n        - !!int 66\n        - !!int 67\n        - !!int 68\n        - !!int 69\n        - !!int 70\n        - !!int 71\n        - !!int 72\n        - !!int 73\n        - !!int 74\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        095e7baea6a6c7c4c2dfeb977efac326af552d87:\n          storage:\n            0x00: 0\n\n\n\n\n    # Berlin, for costs that do include a contract call (and tare therefore \n    - indexes:\n        data: \n        - !!int 36\n        - !!int 37\n        - !!int 38\n        - !!int 39\n        - !!int 40\n        - !!int 41\n        - !!int 42\n        - !!int 43\n        - !!int 44\n        - !!int 45\n        - !!int 46\n        - !!int 47\n        - !!int 48\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        095e7baea6a6c7c4c2dfeb977efac326af552d87:\n          storage:\n            0x00: 0x076c\n\n"
  },
  {
    "path": "tests/static/state_tests/stEIP150singleCodeGasPrices/gasCostReturnFiller.yml",
    "content": "gasCostReturn:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n# Human readable information\n  _info:\n    comment: \"Ori Pomerantz qbzzt1@gmail.com\"\n\n  pre:\n\n    # End with a STOP\n    <contract:0x0000000000000000000000000000000000001000>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: :raw 0x600060FF00\n        # 0 PUSH1 0\n        # 2 PUSH1 FF\n        # 4 STOP\n      nonce: 0\n      storage: {}\n\n\n    # End with a RETURN\n    <contract:0x0000000000000000000000000000000000002000>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: :raw 0x600060FFF3\n        # 0 PUSH1 0\n        # 2 PUSH1 FF\n        # 4 RETURN\n      nonce: 0\n      storage: {}\n\n\n\n\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n          ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n          ; Initialization\n\n          ; Variables (0x20 byte wide)\n          (def 'gasB4         0x000)  ; Before the action being measured\n\n          ; Gas for the STOP call\n          (def 'gasSTOP       0x020)\n\n          ; Gas for the RETURN call\n          (def 'gasRETURN     0x040)\n\n          ; Play with the variables here to avoid having the memory allocation\n          ; affect the gas calculation\n          [gasB4] 0x60A7\n          [gasSTOP] 0x60A7\n          [gasRETURN] 0x60A7\n\n          ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n          ; Run the operation\n\n          [gasB4] (gas)\n          (call 0x10000 0x1000 0 0 0 0 0)\n          [gasSTOP] (- @gasB4 (gas))\n\n\n          [gasB4] (gas)\n          (call 0x10000 0x2000 0 0 0 0 0)\n          [gasRETURN] (- @gasB4 (gas))\n\n\n\n\n          ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n          ; Output\n\n          ; STOP and RETURN should have the same cost\n          [[0]] (- @gasSTOP @gasRETURN)\n\n        }\n      nonce: '0'\n      storage:\n         0: 60A7\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n  transaction:\n    data:\n    - :raw 0x00\n    gasLimit:\n    - 16777216\n    gasPrice: 10\n    nonce: 0\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - 1\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n\n\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n          storage:\n            0x00: 0\n            0x01: 0\n"
  },
  {
    "path": "tests/static/state_tests/stEIP1559/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stEIP1559/baseFeeDiffPlacesFiller.yml",
    "content": "\n# Created by tests/src/Templates/DiffPlaces/templateGen.js\n#\n# With the template code:\n# // basefee is still not supported in Yul 0.8.5\n#            \n#            \n#            mstore(0, verbatim_0i_1o(hex\"48\"))\n#            \n#            \n#\n# Expected result: 10\n#\nbaseFeeDiffPlaces:\n  _info:\n    comment: Ori Pomerantz   qbzzt1@gmail.com\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentNumber: 1\n    currentTimestamp: 1000\n    currentGasLimit: 0x10000000000000\n    currentBaseFee: 10\n\n  pre:\n\n    # It is not trivial to use the Yul compiler to get the\n    # binary code for the code we're checking, so we'll use EXTCODECOPY\n    # from this contract\n    000000000000000000000000000000000000C0DE:\n      balance: 1000000000000000000\n      code: |\n        :yul berlin {\n           // basefee is still not supported in Yul 0.8.5\n            \n            \n            mstore(0, verbatim_0i_1o(hex\"48\"))\n            \n            \n\n           // Here the result is is mload(0). We want to run it, but\n           // prefix it with a zero so we'll be safe from being considered\n           // an invalid program.\n           //\n           // If we use this as a constructor the result will be\n           // the code of the created contract, but we can live\n           // with that. We won't call it.\n           mstore(0x40, mload(0x00))\n           return(0x3F, 0x21)\n        }\n      nonce: 1\n      storage: {}\n\n    # When we create a contract and then call it, we don't want the\n    # zero prefix in the return value\n    000000000000000000000000000000000020C0DE:\n      balance: 1000000000000000000\n      code: |\n        :yul berlin {\n           // basefee is still not supported in Yul 0.8.5\n            \n            \n            mstore(0, verbatim_0i_1o(hex\"48\"))\n            \n            \n\n           // Here the result is is mload(0).\n           return(0x00, 0x20)\n        }\n      nonce: 1\n      storage: {}\n\n\n\n    # Code for a construct to create a contract with the template code\n    00000000000000000000000000000000C0DEC0DE:\n      balance: 1000000000000000000\n      code: |\n        :yul berlin {\n           let addr := 0x20C0DE\n           let length := extcodesize(addr)\n\n           // Read the code from 0x20C0DE\n           extcodecopy(addr, 0, 0, length)\n\n           // Return this memory as the code for the contract\n           return(0, length)\n        }\n      nonce: 1\n      storage: {}\n\n\n    # Perform the action (directly or indirectly). Either way,\n    # store the result in sload(0).\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: 1000000000000000000\n      code: |\n          :yul berlin {\n             let action := calldataload(4)\n             let res := 1   // If the result of a call is revert, revert here too\n             let addr := 1  // If the result of CREATE[2] is zero, it reverted\n\n             // For when we need code in our memory\n             let codeBuffer := 0x20\n             // When running the template in the constructor\n             let codeLength := extcodesize(0xC0DE)\n             // When running the template in the created code\n             let codeLength2 := extcodesize(0xC0DEC0DE)\n\n             // Goat should be overwritten\n             mstore(0, 0x60A7)\n\n             switch action\n             case 0 {  // run the code snippet as normal code\n                // basefee is still not supported in Yul 0.8.5\n            \n            \n            mstore(0, verbatim_0i_1o(hex\"48\"))\n            \n            \n             }\n\n             // One level of call stack\n             case 0xF1 {  // call a contract to run this code\n                res := call(gas(), 0xca11, 0, 0, 0, 0, 0x20) // call template code\n             }\n             case 0xF2 {  // callcode a contract to run this code\n                res := callcode(gas(), 0xca11, 0, 0, 0, 0, 0x20)\n             }\n             case 0xF4 {  // delegate call a contract to run this code\n                res := delegatecall(gas(), 0xca11, 0, 0, 0, 0x20)\n             }\n             case 0xFA {  // static call a contract to run this code\n                res := staticcall(gas(), 0xca11, 0, 0, 0, 0x20)\n             }\n\n             // Two levels of call stack\n             case 0xF1F1 {  // call, call\n                res := call(gas(), 0xca1100f1, 0, 0, 0, 0, 0x20)\n             }\n             case 0xF2F1 {  // callcode, call\n                res := callcode(gas(), 0xca1100f1, 0, 0, 0, 0, 0x20)\n             }\n             case 0xF4F1 {  // delegatecall, call\n                res := delegatecall(gas(), 0xca1100f1, 0, 0, 0, 0x20)\n             }\n             case 0xFAF1 {  // staticcall, call\n                res := staticcall(gas(), 0xca1100f1, 0, 0, 0, 0x20)\n             }\n             case 0xF1F2 {  // call, callcode\n                res := call(gas(), 0xca1100f2, 0, 0, 0, 0, 0x20)\n             }\n             case 0xF2F2 {  // callcode, callcode\n                res := callcode(gas(), 0xca1100f2, 0, 0, 0, 0, 0x20)\n             }\n             case 0xF4F2 {  // delegatecall, callcode\n                res := delegatecall(gas(), 0xca1100f2, 0, 0, 0, 0x20)\n             }\n             case 0xFAF2 {  // staticcall, callcode\n                res := staticcall(gas(), 0xca1100f2, 0, 0, 0, 0x20)\n             }\n             case 0xF1F4 {  // call, delegatecall\n                res := call(gas(), 0xca1100f4, 0, 0, 0, 0, 0x20)\n             }\n             case 0xF2F4 {  // callcode, delegatecall\n                res := callcode(gas(), 0xca1100f4, 0, 0, 0, 0, 0x20)\n             }\n             case 0xF4F4 {  // delegatecall, delegatecall\n                res := delegatecall(gas(), 0xca1100f4, 0, 0, 0, 0x20)\n             }\n             case 0xFAF4 {  // staticcall, delegatecall\n                res := staticcall(gas(), 0xca1100f4, 0, 0, 0, 0x20)\n             }\n             case 0xF1FA {  // call, staticcall\n                res := call(gas(), 0xca1100fa, 0, 0, 0, 0, 0x20)\n             }\n             case 0xF2FA {  // callcode, staticcall\n                res := callcode(gas(), 0xca1100fa, 0, 0, 0, 0, 0x20)\n             }\n             case 0xF4FA {  // delegatecall, staticcall\n                res := delegatecall(gas(), 0xca1100fa, 0, 0, 0, 0x20)\n             }\n             case 0xFAFA {  // staticcall, staticcall\n                res := staticcall(gas(), 0xca1100fa, 0, 0, 0, 0x20)\n             }\n             case 0xFD {   // Rerun the code after a REVERT\n                // basefee is still not supported in Yul 0.8.5\n            \n            \n            mstore(0, verbatim_0i_1o(hex\"48\"))\n            \n            \n                sstore(0, mload(0))\n\n                pop(call(gas(), 0x60BACC, 0, 0, 0, 0, 0))\n                // basefee is still not supported in Yul 0.8.5\n            \n            \n            mstore(0, verbatim_0i_1o(hex\"48\"))\n            \n            \n\n                // The two results should be equal\n                if iszero(eq(sload(0), mload(0))) {mstore(0, 0xBADBADBAD)}\n             }\n             case 0xFE {   // Rerun the code after an out of gas\n                // basefee is still not supported in Yul 0.8.5\n            \n            \n            mstore(0, verbatim_0i_1o(hex\"48\"))\n            \n            \n                sstore(0, mload(0))\n\n                pop(call(25000, 0x60006, 0, 0, 0, 0, 0))\n                // basefee is still not supported in Yul 0.8.5\n            \n            \n            mstore(0, verbatim_0i_1o(hex\"48\"))\n            \n            \n\n                // The two results should be equal\n                if iszero(eq(sload(0), mload(0))) {mstore(0, 0xBADBADBAD)}\n             }\n             case 0xFF {   // Rerun the code after a SELFDESTRUCT\n                // basefee is still not supported in Yul 0.8.5\n            \n            \n            mstore(0, verbatim_0i_1o(hex\"48\"))\n            \n            \n                sstore(0, mload(0))\n\n                pop(call(gas(), 0xDEADDEAD, 0, 0, 0, 0, 0))\n                // basefee is still not supported in Yul 0.8.5\n            \n            \n            mstore(0, verbatim_0i_1o(hex\"48\"))\n            \n            \n\n                // The two results should be equal\n                if iszero(eq(sload(0), mload(0))) {mstore(0, 0xBADBADBAD)}\n             }\n\n\n\n             case 0xF0 {  // CREATE, run the code in the constructor\n                // Read the code from 0xC0DE and create a contract based on it\n                extcodecopy(0xC0DE, codeBuffer, 0, codeLength)\n                addr := create(1000000000000000000, codeBuffer, codeLength)\n\n                // Read the created contract, that is the result\n                // We start it from the second byte so the first byte of\n                // code will be STOP (0x00). Otherwise we might run into\n                // invalid program issues (because the result isn't a valid\n                // program\n                extcodecopy(addr, 0, 1, 0x20)\n             }\n\n\n             case 0xF5 {  // CREATE2, run the code in the constructor\n                // Read the code from 0xC0DE and create a contract based on it\n                extcodecopy(0xC0DE, codeBuffer, 0, codeLength)\n                addr := create2(1000000000000000000, codeBuffer, codeLength, 0x5a17)\n\n                // Read the created contract, that is the result\n                // We start it from the second byte so the first byte of\n                // code will be STOP (0x00). Otherwise we might run into\n                // invalid program issues (because the result isn't a valid\n                // program\n                extcodecopy(addr, 0, 1, 0x20)\n             }\n\n             case 0xF0F1 { // CREATE, then CALL the created code for the result\n\n                // Read the code from 0xC0DEC0DE and create a\n                // contract based on it\n                extcodecopy(0xC0DEC0DE, codeBuffer, 0, codeLength2)\n                addr := create(1000000000000000000, codeBuffer, codeLength2)\n\n                // Call the contract\n                res := call(gas(), addr, 0, 0, 0, 0, 0x20)\n\n             }\n\n             case 0xF5F1 { // CREATE2, then CALL the created code for the result\n\n                // Read the code from 0xC0DEC0DE and create a\n                // contract based on it\n                extcodecopy(0xC0DEC0DE, codeBuffer, 0, codeLength2)\n                addr := create2(1000000000000000000, codeBuffer, codeLength2, 0x5a17)\n\n                // Call the contract\n                res := call(gas(), addr, 0, 0, 0, 0, 0x20)\n\n             }\n\n\n             case 0xF0F2 { // CREATE, then CALLCODE the created code\n                           // for the result\n\n                // Read the code from 0xC0DEC0DE and create a\n                // contract based on it\n                extcodecopy(0xC0DEC0DE, codeBuffer, 0, codeLength2)\n\n                // Here we don't transfer cc..cc's ETH to the new contract\n                // because if we run SELFBALANCE it will run in the context\n                // of CC....CC and therefore return 0\n                addr := create(0, codeBuffer, codeLength2)\n\n                // Call the contract\n                res := callcode(gas(), addr, 0, 0, 0, 0, 0x20)\n\n             }\n\n             case 0xF5F2 { // CREATE2, then CALLCODE the created code for\n                           // the result\n\n                // Read the code from 0xC0DEC0DE and create a\n                // contract based on it\n                extcodecopy(0xC0DEC0DE, codeBuffer, 0, codeLength2)\n\n                // Here we don't transfer cc..cc's ETH to the new contract\n                // because if we run SELFBALANCE it will run in the context\n                // of CC....CC and therefore return 0\n                addr := create2(0, codeBuffer, codeLength2, 0x5a17)\n\n                // Call the contract\n                res := callcode(gas(), addr, 0, 0, 0, 0, 0x20)\n\n             }\n\n\n             case 0xF0F4 { // CREATE, then DELEGATECALL the created code\n                           // for the result\n\n                // Read the code from 0xC0DEC0DE and create a\n                // contract based on it\n                extcodecopy(0xC0DEC0DE, codeBuffer, 0, codeLength2)\n\n                // Here we don't transfer cc..cc's ETH to the new contract\n                // because if we run SELFBALANCE it will run in the context\n                // of CC....CC and therefore return 0\n                addr := create(0, codeBuffer, codeLength2)\n\n                // Call the contract\n                res := delegatecall(gas(), addr, 0, 0, 0, 0x20)\n\n             }\n\n             case 0xF5F4 { // CREATE2, then DELEGATECALL the created code\n                           // for the result\n\n                // Read the code from 0xC0DEC0DE and create a\n                // contract based on it\n                extcodecopy(0xC0DEC0DE, codeBuffer, 0, codeLength2)\n\n                // Here we don't transfer cc..cc's ETH to the new contract\n                // because if we run SELFBALANCE it will run in the context\n                // of CC....CC and therefore return 0\n                addr := create2(0, codeBuffer, codeLength2, 0x5a17)\n\n                // Call the contract\n                res := delegatecall(gas(), addr, 0, 0, 0, 0x20)\n\n             }\n\n\n             case 0xF0FA { // CREATE, then CALLSTATIC the created code\n                           // for the result\n\n                // Read the code from 0xC0DEC0DE and create a\n                // contract based on it\n                extcodecopy(0xC0DEC0DE, codeBuffer, 0, codeLength2)\n                addr := create(1000000000000000000, codeBuffer, codeLength2)\n\n                // Call the contract\n                res := staticcall(gas(), addr, 0, 0, 0, 0x20)\n\n             }\n\n             case 0xF5FA { // CREATE2, then STATICCALL the created code\n                           // for the result\n\n                // Read the code from 0xC0DEC0DE and create a\n                // contract based on it\n                extcodecopy(0xC0DEC0DE, codeBuffer, 0, codeLength2)\n                addr := create2(1000000000000000000, codeBuffer, codeLength2, 0x5a17)\n\n                // Call the contract\n                res := staticcall(gas(), addr, 0, 0, 0, 0x20)\n\n             }\n\n              // Recurse (= run backwards)\n              case 0x60BACCFA57 {\n                 mstore(0, 1023)\n                 res := call(gas(), 0x60BACCFA57, 0, 0, 0x20, 0, 0x20)\n              }\n\n\n             default {    // Fail, we should never get here\n               mstore(0, 0xBAD0BAD0BAD0)\n             }\n\n             // If res is zero, that means a call failed, so fail too\n             if iszero(res) { revert(0,0x20) }\n\n             // If addr is zero, that means a create failed, so fail too\n             if iszero(addr) { revert(0,0x20) }\n\n             // Here the result is is mload(0), store it so\n             // the test can check it\n             sstore(0, mload(0))\n          }\n      nonce: 1\n      storage:\n        0: 0x60A7   # To be overwritten by the code snippet\n\n\n\n    # Called to perform the code snippet and return the result\n    000000000000000000000000000000000000ca11:\n      balance: '1000000000000000000'\n      code: |\n          :yul berlin {\n            // basefee is still not supported in Yul 0.8.5\n            \n            \n            mstore(0, verbatim_0i_1o(hex\"48\"))\n            \n            \n            return(0, 0x20)     // return the result as our return value\n          }\n      nonce: 1\n      storage: {}\n\n\n    # Called to CALL the code (two level call stack)\n    00000000000000000000000000000000ca1100f1:\n      balance: '1000000000000000000'\n      code: |\n          :yul berlin {\n            if iszero(call(gas(), 0xca11, 0, 0, 0, 0, 0x20))\n               { revert(0,0x20) }\n\n            return(0, 0x20)     // return the result as our return value\n          }\n      nonce: 1\n      storage: {}\n\n\n    # Called to CALLCODE the code (two level call stack)\n    00000000000000000000000000000000ca1100f2:\n      balance: '1000000000000000000'\n      code: |\n          :yul berlin {\n            if iszero(callcode(gas(), 0xca11, 0, 0, 0, 0, 0x20))\n               { revert(0,0x20) }\n\n            return(0, 0x20)     // return the result as our return value\n          }\n      nonce: 1\n      storage: {}\n\n\n    # Called to DELEGATECALL the code (two level call stack)\n    00000000000000000000000000000000ca1100f4:\n      balance: '1000000000000000000'\n      code: |\n          :yul berlin {\n            if iszero(delegatecall(gas(), 0xca11, 0, 0, 0, 0x20))\n               { revert(0,0x20) }\n\n            return(0, 0x20)     // return the result as our return value\n          }\n      nonce: 1\n      storage: {}\n\n\n    # Called to STATICCALL the code (two level call stack)\n    00000000000000000000000000000000ca1100fa:\n      balance: '1000000000000000000'\n      code: |\n          :yul berlin {\n            if iszero(staticcall(gas(), 0xca11, 0, 0, 0, 0x20))\n               { revert(0,0x20) }\n\n            return(0, 0x20)     // return the result as our return value\n          }\n      nonce: 1\n      storage: {}\n\n\n    # Failures (to run the code after a failure, see it works)\n\n    # Out of gas\n    0000000000000000000000000000000000060006:\n      balance: '1000000000000000000'\n      code: |\n        :yul berlin {\n           // basefee is still not supported in Yul 0.8.5\n            \n            \n            mstore(0, verbatim_0i_1o(hex\"48\"))\n            \n            \n           sstore(0,mload(0))\n           invalid()\n        }\n      nonce: 1\n      storage:\n        0: 0x60A7   # If it changes, we have a problem\n\n\n    # REVERT\n    000000000000000000000000000000000060BACC:\n      balance: '1000000000000000000'\n      code: |\n        :yul berlin {\n           // basefee is still not supported in Yul 0.8.5\n            \n            \n            mstore(0, verbatim_0i_1o(hex\"48\"))\n            \n            \n           sstore(0,mload(0))\n           revert(0,0x20)\n        }\n      nonce: 1\n      storage:\n        0: 0x60A7   # If it changes, we have a problem\n\n\n    # SELFDESTRUCT\n    00000000000000000000000000000000DEADDEAD:\n      balance: '1000000000000000000'\n      code: |\n        :yul berlin {\n           selfdestruct(0)\n        }\n      nonce: 1\n      storage: {}\n\n\n\n\n    # Recursively call until reaching the stack depth, then run the template\n    00000000000000000000000000000060BACCFA57:\n      balance: 1000000000000000000\n      code: |\n        :yul berlin {\n           let depth := calldataload(0)\n\n           if eq(depth,0) {\n               // basefee is still not supported in Yul 0.8.5\n            \n            \n            mstore(0, verbatim_0i_1o(hex\"48\"))\n            \n            \n               return(0, 0x20)\n           }\n\n           // Dig deeper\n           mstore(0, sub(depth,1))\n\n           // Call yourself with depth-1\n           if iszero(call(gas(), 0x60BACCFA57, 0, 0, 0x20, 0, 0x20)) {\n              // Propagate failure if we failed\n              revert(0, 0x20)\n           }\n\n           // Propagate success\n           return (0, 0x20)\n        }\n      nonce: 1\n      storage: {}\n\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: 1000000000000000000000\n      code: '0x'\n      nonce: 1\n      storage: {}\n\n\n  transaction:\n    data:\n    # Run the code snippet normally\n    - :label normal :abi f(uint) 0x00\n\n    # Single level call stack\n    # CALL\n    - :label normal :abi f(uint) 0xf1\n    # CALLCODE\n    - :label normal :abi f(uint) 0xf2\n    # DELEGATECALL\n    - :abi f(uint) 0xf4\n    # STATICCALL\n    - :abi f(uint) 0xfa\n\n    # Two level call stack\n    # CALL CALL\n    - :abi f(uint) 0xf1f1\n    # CALLCODE CALL\n    - :abi f(uint) 0xf2f1\n    # DELEGATECALL CALL\n    - :abi f(uint) 0xf4f1\n    # STATICCALL CALL\n    - :abi f(uint) 0xfaf1\n    # CALL CALLCODE\n    - :abi f(uint) 0xf1f2\n    # CALLCODE CALLCODE\n    - :abi f(uint) 0xf2f2\n    # DELEGATECALL CALLCODE\n    - :abi f(uint) 0xf4f2\n    # STATICCALL CALLCODE\n    - :abi f(uint) 0xfaf2\n    # CALL DELEGATECALL\n    - :abi f(uint) 0xf1f4\n    # CALLCODE DELEGATECALL\n    - :abi f(uint) 0xf2f4\n    # DELEGATECALL DELEGATECALL\n    - :abi f(uint) 0xf4f4\n    # STATICCALL DELEGATECALL\n    - :abi f(uint) 0xfaf4\n    # CALL STATICCALL\n    - :abi f(uint) 0xf1fa\n    # CALLCODE STATICCALL\n    - :abi f(uint) 0xf2fa\n    # DELEGATECALL STATICCALL\n    - :abi f(uint) 0xf4fa\n    # STATICCALL STATICCALL\n    - :abi f(uint) 0xfafa\n\n    # Call after something fails\n    # REVERT\n    - :abi f(uint) 0xfd\n    # Out of gas\n    - :abi f(uint) 0xfe\n    # SELFDESTRUCT\n    - :abi f(uint) 0xff\n\n\n    # Combined with creation of contracts\n    # CREATE (run code in the constructor)\n    - :abi f(uint) 0xf0\n    # CREATE2 (run code in the constructor)\n    - :abi f(uint) 0xf5\n    # CREATE and then CALL\n    - :abi f(uint) 0xf0f1\n    # CREATE2 and then CALL\n    - :abi f(uint) 0xf5f1\n    # CREATE and then CALLCODE\n    - :abi f(uint) 0xf0f2\n    # CREATE2 and then CALLCODE\n    - :abi f(uint) 0xf5f2\n    # CREATE and then DELEGATECALL\n    - :abi f(uint) 0xf0f4\n    # CREATE2 and then DELEGATECALL\n    - :abi f(uint) 0xf5f4\n    # CREATE and then STATICCALL\n    - :abi f(uint) 0xf0fa\n    # CREATE2 and then STATICCALL\n    - :abi f(uint) 0xf5fa\n\n\n    # Recurse almost until the limit\n    - :abi f(uint) 0x60BACCFA57\n\n\n    gasLimit:\n    - 0x10000000000000\n    nonce: 1\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - 0\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n    gasPrice: 2000\n\n\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n\n      network:\n        - '>=Cancun<Osaka'\n\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            # The result we expect\n            0x00: 10\n\n        000000000000000000000000000000000060BACC:\n          storage:\n            0x00: 0x60A7  # Anything that happens should be reverted out of\n\n        0000000000000000000000000000000000060006:\n          storage:\n            0x00: 0x60A7  # Anything that happens should be reverted out of\n\n\n\n\n"
  },
  {
    "path": "tests/static/state_tests/stEIP1559/baseFeeDiffPlacesOsakaFiller.yml",
    "content": "\n# Created by tests/src/Templates/DiffPlaces/templateGen.js\n#\n# With the template code:\n# // basefee is still not supported in Yul 0.8.5\n#            \n#            \n#            mstore(0, verbatim_0i_1o(hex\"48\"))\n#            \n#            \n#\n# Expected result: 10\n#\nbaseFeeDiffPlaces:\n  _info:\n    comment: Ori Pomerantz   qbzzt1@gmail.com\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentNumber: 1\n    currentTimestamp: 1000\n    currentGasLimit: 0x10000000000000\n    currentBaseFee: 10\n\n  pre:\n\n    # It is not trivial to use the Yul compiler to get the\n    # binary code for the code we're checking, so we'll use EXTCODECOPY\n    # from this contract\n    000000000000000000000000000000000000C0DE:\n      balance: 1000000000000000000\n      code: |\n        :yul berlin {\n           // basefee is still not supported in Yul 0.8.5\n            \n            \n            mstore(0, verbatim_0i_1o(hex\"48\"))\n            \n            \n\n           // Here the result is is mload(0). We want to run it, but\n           // prefix it with a zero so we'll be safe from being considered\n           // an invalid program.\n           //\n           // If we use this as a constructor the result will be\n           // the code of the created contract, but we can live\n           // with that. We won't call it.\n           mstore(0x40, mload(0x00))\n           return(0x3F, 0x21)\n        }\n      nonce: 1\n      storage: {}\n\n    # When we create a contract and then call it, we don't want the\n    # zero prefix in the return value\n    000000000000000000000000000000000020C0DE:\n      balance: 1000000000000000000\n      code: |\n        :yul berlin {\n           // basefee is still not supported in Yul 0.8.5\n            \n            \n            mstore(0, verbatim_0i_1o(hex\"48\"))\n            \n            \n\n           // Here the result is is mload(0).\n           return(0x00, 0x20)\n        }\n      nonce: 1\n      storage: {}\n\n\n\n    # Code for a construct to create a contract with the template code\n    00000000000000000000000000000000C0DEC0DE:\n      balance: 1000000000000000000\n      code: |\n        :yul berlin {\n           let addr := 0x20C0DE\n           let length := extcodesize(addr)\n\n           // Read the code from 0x20C0DE\n           extcodecopy(addr, 0, 0, length)\n\n           // Return this memory as the code for the contract\n           return(0, length)\n        }\n      nonce: 1\n      storage: {}\n\n\n    # Perform the action (directly or indirectly). Either way,\n    # store the result in sload(0).\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: 1000000000000000000\n      code: |\n          :yul berlin {\n             let action := calldataload(4)\n             let res := 1   // If the result of a call is revert, revert here too\n             let addr := 1  // If the result of CREATE[2] is zero, it reverted\n\n             // For when we need code in our memory\n             let codeBuffer := 0x20\n             // When running the template in the constructor\n             let codeLength := extcodesize(0xC0DE)\n             // When running the template in the created code\n             let codeLength2 := extcodesize(0xC0DEC0DE)\n\n             // Goat should be overwritten\n             mstore(0, 0x60A7)\n\n             switch action\n             case 0 {  // run the code snippet as normal code\n                // basefee is still not supported in Yul 0.8.5\n            \n            \n            mstore(0, verbatim_0i_1o(hex\"48\"))\n            \n            \n             }\n\n             // One level of call stack\n             case 0xF1 {  // call a contract to run this code\n                res := call(gas(), 0xca11, 0, 0, 0, 0, 0x20) // call template code\n             }\n             case 0xF2 {  // callcode a contract to run this code\n                res := callcode(gas(), 0xca11, 0, 0, 0, 0, 0x20)\n             }\n             case 0xF4 {  // delegate call a contract to run this code\n                res := delegatecall(gas(), 0xca11, 0, 0, 0, 0x20)\n             }\n             case 0xFA {  // static call a contract to run this code\n                res := staticcall(gas(), 0xca11, 0, 0, 0, 0x20)\n             }\n\n             // Two levels of call stack\n             case 0xF1F1 {  // call, call\n                res := call(gas(), 0xca1100f1, 0, 0, 0, 0, 0x20)\n             }\n             case 0xF2F1 {  // callcode, call\n                res := callcode(gas(), 0xca1100f1, 0, 0, 0, 0, 0x20)\n             }\n             case 0xF4F1 {  // delegatecall, call\n                res := delegatecall(gas(), 0xca1100f1, 0, 0, 0, 0x20)\n             }\n             case 0xFAF1 {  // staticcall, call\n                res := staticcall(gas(), 0xca1100f1, 0, 0, 0, 0x20)\n             }\n             case 0xF1F2 {  // call, callcode\n                res := call(gas(), 0xca1100f2, 0, 0, 0, 0, 0x20)\n             }\n             case 0xF2F2 {  // callcode, callcode\n                res := callcode(gas(), 0xca1100f2, 0, 0, 0, 0, 0x20)\n             }\n             case 0xF4F2 {  // delegatecall, callcode\n                res := delegatecall(gas(), 0xca1100f2, 0, 0, 0, 0x20)\n             }\n             case 0xFAF2 {  // staticcall, callcode\n                res := staticcall(gas(), 0xca1100f2, 0, 0, 0, 0x20)\n             }\n             case 0xF1F4 {  // call, delegatecall\n                res := call(gas(), 0xca1100f4, 0, 0, 0, 0, 0x20)\n             }\n             case 0xF2F4 {  // callcode, delegatecall\n                res := callcode(gas(), 0xca1100f4, 0, 0, 0, 0, 0x20)\n             }\n             case 0xF4F4 {  // delegatecall, delegatecall\n                res := delegatecall(gas(), 0xca1100f4, 0, 0, 0, 0x20)\n             }\n             case 0xFAF4 {  // staticcall, delegatecall\n                res := staticcall(gas(), 0xca1100f4, 0, 0, 0, 0x20)\n             }\n             case 0xF1FA {  // call, staticcall\n                res := call(gas(), 0xca1100fa, 0, 0, 0, 0, 0x20)\n             }\n             case 0xF2FA {  // callcode, staticcall\n                res := callcode(gas(), 0xca1100fa, 0, 0, 0, 0, 0x20)\n             }\n             case 0xF4FA {  // delegatecall, staticcall\n                res := delegatecall(gas(), 0xca1100fa, 0, 0, 0, 0x20)\n             }\n             case 0xFAFA {  // staticcall, staticcall\n                res := staticcall(gas(), 0xca1100fa, 0, 0, 0, 0x20)\n             }\n             case 0xFD {   // Rerun the code after a REVERT\n                // basefee is still not supported in Yul 0.8.5\n            \n            \n            mstore(0, verbatim_0i_1o(hex\"48\"))\n            \n            \n                sstore(0, mload(0))\n\n                pop(call(gas(), 0x60BACC, 0, 0, 0, 0, 0))\n                // basefee is still not supported in Yul 0.8.5\n            \n            \n            mstore(0, verbatim_0i_1o(hex\"48\"))\n            \n            \n\n                // The two results should be equal\n                if iszero(eq(sload(0), mload(0))) {mstore(0, 0xBADBADBAD)}\n             }\n             case 0xFE {   // Rerun the code after an out of gas\n                // basefee is still not supported in Yul 0.8.5\n            \n            \n            mstore(0, verbatim_0i_1o(hex\"48\"))\n            \n            \n                sstore(0, mload(0))\n\n                pop(call(25000, 0x60006, 0, 0, 0, 0, 0))\n                // basefee is still not supported in Yul 0.8.5\n            \n            \n            mstore(0, verbatim_0i_1o(hex\"48\"))\n            \n            \n\n                // The two results should be equal\n                if iszero(eq(sload(0), mload(0))) {mstore(0, 0xBADBADBAD)}\n             }\n             case 0xFF {   // Rerun the code after a SELFDESTRUCT\n                // basefee is still not supported in Yul 0.8.5\n            \n            \n            mstore(0, verbatim_0i_1o(hex\"48\"))\n            \n            \n                sstore(0, mload(0))\n\n                pop(call(gas(), 0xDEADDEAD, 0, 0, 0, 0, 0))\n                // basefee is still not supported in Yul 0.8.5\n            \n            \n            mstore(0, verbatim_0i_1o(hex\"48\"))\n            \n            \n\n                // The two results should be equal\n                if iszero(eq(sload(0), mload(0))) {mstore(0, 0xBADBADBAD)}\n             }\n\n\n\n             case 0xF0 {  // CREATE, run the code in the constructor\n                // Read the code from 0xC0DE and create a contract based on it\n                extcodecopy(0xC0DE, codeBuffer, 0, codeLength)\n                addr := create(1000000000000000000, codeBuffer, codeLength)\n\n                // Read the created contract, that is the result\n                // We start it from the second byte so the first byte of\n                // code will be STOP (0x00). Otherwise we might run into\n                // invalid program issues (because the result isn't a valid\n                // program\n                extcodecopy(addr, 0, 1, 0x20)\n             }\n\n\n             case 0xF5 {  // CREATE2, run the code in the constructor\n                // Read the code from 0xC0DE and create a contract based on it\n                extcodecopy(0xC0DE, codeBuffer, 0, codeLength)\n                addr := create2(1000000000000000000, codeBuffer, codeLength, 0x5a17)\n\n                // Read the created contract, that is the result\n                // We start it from the second byte so the first byte of\n                // code will be STOP (0x00). Otherwise we might run into\n                // invalid program issues (because the result isn't a valid\n                // program\n                extcodecopy(addr, 0, 1, 0x20)\n             }\n\n             case 0xF0F1 { // CREATE, then CALL the created code for the result\n\n                // Read the code from 0xC0DEC0DE and create a\n                // contract based on it\n                extcodecopy(0xC0DEC0DE, codeBuffer, 0, codeLength2)\n                addr := create(1000000000000000000, codeBuffer, codeLength2)\n\n                // Call the contract\n                res := call(gas(), addr, 0, 0, 0, 0, 0x20)\n\n             }\n\n             case 0xF5F1 { // CREATE2, then CALL the created code for the result\n\n                // Read the code from 0xC0DEC0DE and create a\n                // contract based on it\n                extcodecopy(0xC0DEC0DE, codeBuffer, 0, codeLength2)\n                addr := create2(1000000000000000000, codeBuffer, codeLength2, 0x5a17)\n\n                // Call the contract\n                res := call(gas(), addr, 0, 0, 0, 0, 0x20)\n\n             }\n\n\n             case 0xF0F2 { // CREATE, then CALLCODE the created code\n                           // for the result\n\n                // Read the code from 0xC0DEC0DE and create a\n                // contract based on it\n                extcodecopy(0xC0DEC0DE, codeBuffer, 0, codeLength2)\n\n                // Here we don't transfer cc..cc's ETH to the new contract\n                // because if we run SELFBALANCE it will run in the context\n                // of CC....CC and therefore return 0\n                addr := create(0, codeBuffer, codeLength2)\n\n                // Call the contract\n                res := callcode(gas(), addr, 0, 0, 0, 0, 0x20)\n\n             }\n\n             case 0xF5F2 { // CREATE2, then CALLCODE the created code for\n                           // the result\n\n                // Read the code from 0xC0DEC0DE and create a\n                // contract based on it\n                extcodecopy(0xC0DEC0DE, codeBuffer, 0, codeLength2)\n\n                // Here we don't transfer cc..cc's ETH to the new contract\n                // because if we run SELFBALANCE it will run in the context\n                // of CC....CC and therefore return 0\n                addr := create2(0, codeBuffer, codeLength2, 0x5a17)\n\n                // Call the contract\n                res := callcode(gas(), addr, 0, 0, 0, 0, 0x20)\n\n             }\n\n\n             case 0xF0F4 { // CREATE, then DELEGATECALL the created code\n                           // for the result\n\n                // Read the code from 0xC0DEC0DE and create a\n                // contract based on it\n                extcodecopy(0xC0DEC0DE, codeBuffer, 0, codeLength2)\n\n                // Here we don't transfer cc..cc's ETH to the new contract\n                // because if we run SELFBALANCE it will run in the context\n                // of CC....CC and therefore return 0\n                addr := create(0, codeBuffer, codeLength2)\n\n                // Call the contract\n                res := delegatecall(gas(), addr, 0, 0, 0, 0x20)\n\n             }\n\n             case 0xF5F4 { // CREATE2, then DELEGATECALL the created code\n                           // for the result\n\n                // Read the code from 0xC0DEC0DE and create a\n                // contract based on it\n                extcodecopy(0xC0DEC0DE, codeBuffer, 0, codeLength2)\n\n                // Here we don't transfer cc..cc's ETH to the new contract\n                // because if we run SELFBALANCE it will run in the context\n                // of CC....CC and therefore return 0\n                addr := create2(0, codeBuffer, codeLength2, 0x5a17)\n\n                // Call the contract\n                res := delegatecall(gas(), addr, 0, 0, 0, 0x20)\n\n             }\n\n\n             case 0xF0FA { // CREATE, then CALLSTATIC the created code\n                           // for the result\n\n                // Read the code from 0xC0DEC0DE and create a\n                // contract based on it\n                extcodecopy(0xC0DEC0DE, codeBuffer, 0, codeLength2)\n                addr := create(1000000000000000000, codeBuffer, codeLength2)\n\n                // Call the contract\n                res := staticcall(gas(), addr, 0, 0, 0, 0x20)\n\n             }\n\n             case 0xF5FA { // CREATE2, then STATICCALL the created code\n                           // for the result\n\n                // Read the code from 0xC0DEC0DE and create a\n                // contract based on it\n                extcodecopy(0xC0DEC0DE, codeBuffer, 0, codeLength2)\n                addr := create2(1000000000000000000, codeBuffer, codeLength2, 0x5a17)\n\n                // Call the contract\n                res := staticcall(gas(), addr, 0, 0, 0, 0x20)\n\n             }\n\n              // Recurse (= run backwards)\n              case 0x60BACCFA57 {\n                 mstore(0, 1023)\n                 res := call(gas(), 0x60BACCFA57, 0, 0, 0x20, 0, 0x20)\n              }\n\n\n             default {    // Fail, we should never get here\n               mstore(0, 0xBAD0BAD0BAD0)\n             }\n\n             // If res is zero, that means a call failed, so fail too\n             if iszero(res) { revert(0,0x20) }\n\n             // If addr is zero, that means a create failed, so fail too\n             if iszero(addr) { revert(0,0x20) }\n\n             // Here the result is is mload(0), store it so\n             // the test can check it\n             sstore(0, mload(0))\n          }\n      nonce: 1\n      storage:\n        0: 0x60A7   # To be overwritten by the code snippet\n\n\n\n    # Called to perform the code snippet and return the result\n    000000000000000000000000000000000000ca11:\n      balance: '1000000000000000000'\n      code: |\n          :yul berlin {\n            // basefee is still not supported in Yul 0.8.5\n            \n            \n            mstore(0, verbatim_0i_1o(hex\"48\"))\n            \n            \n            return(0, 0x20)     // return the result as our return value\n          }\n      nonce: 1\n      storage: {}\n\n\n    # Called to CALL the code (two level call stack)\n    00000000000000000000000000000000ca1100f1:\n      balance: '1000000000000000000'\n      code: |\n          :yul berlin {\n            if iszero(call(gas(), 0xca11, 0, 0, 0, 0, 0x20))\n               { revert(0,0x20) }\n\n            return(0, 0x20)     // return the result as our return value\n          }\n      nonce: 1\n      storage: {}\n\n\n    # Called to CALLCODE the code (two level call stack)\n    00000000000000000000000000000000ca1100f2:\n      balance: '1000000000000000000'\n      code: |\n          :yul berlin {\n            if iszero(callcode(gas(), 0xca11, 0, 0, 0, 0, 0x20))\n               { revert(0,0x20) }\n\n            return(0, 0x20)     // return the result as our return value\n          }\n      nonce: 1\n      storage: {}\n\n\n    # Called to DELEGATECALL the code (two level call stack)\n    00000000000000000000000000000000ca1100f4:\n      balance: '1000000000000000000'\n      code: |\n          :yul berlin {\n            if iszero(delegatecall(gas(), 0xca11, 0, 0, 0, 0x20))\n               { revert(0,0x20) }\n\n            return(0, 0x20)     // return the result as our return value\n          }\n      nonce: 1\n      storage: {}\n\n\n    # Called to STATICCALL the code (two level call stack)\n    00000000000000000000000000000000ca1100fa:\n      balance: '1000000000000000000'\n      code: |\n          :yul berlin {\n            if iszero(staticcall(gas(), 0xca11, 0, 0, 0, 0x20))\n               { revert(0,0x20) }\n\n            return(0, 0x20)     // return the result as our return value\n          }\n      nonce: 1\n      storage: {}\n\n\n    # Failures (to run the code after a failure, see it works)\n\n    # Out of gas\n    0000000000000000000000000000000000060006:\n      balance: '1000000000000000000'\n      code: |\n        :yul berlin {\n           // basefee is still not supported in Yul 0.8.5\n            \n            \n            mstore(0, verbatim_0i_1o(hex\"48\"))\n            \n            \n           sstore(0,mload(0))\n           invalid()\n        }\n      nonce: 1\n      storage:\n        0: 0x60A7   # If it changes, we have a problem\n\n\n    # REVERT\n    000000000000000000000000000000000060BACC:\n      balance: '1000000000000000000'\n      code: |\n        :yul berlin {\n           // basefee is still not supported in Yul 0.8.5\n            \n            \n            mstore(0, verbatim_0i_1o(hex\"48\"))\n            \n            \n           sstore(0,mload(0))\n           revert(0,0x20)\n        }\n      nonce: 1\n      storage:\n        0: 0x60A7   # If it changes, we have a problem\n\n\n    # SELFDESTRUCT\n    00000000000000000000000000000000DEADDEAD:\n      balance: '1000000000000000000'\n      code: |\n        :yul berlin {\n           selfdestruct(0)\n        }\n      nonce: 1\n      storage: {}\n\n\n\n\n    # Recursively call until reaching the stack depth, then run the template\n    00000000000000000000000000000060BACCFA57:\n      balance: 1000000000000000000\n      code: |\n        :yul berlin {\n           let depth := calldataload(0)\n\n           if eq(depth,0) {\n               // basefee is still not supported in Yul 0.8.5\n            \n            \n            mstore(0, verbatim_0i_1o(hex\"48\"))\n            \n            \n               return(0, 0x20)\n           }\n\n           // Dig deeper\n           mstore(0, sub(depth,1))\n\n           // Call yourself with depth-1\n           if iszero(call(gas(), 0x60BACCFA57, 0, 0, 0x20, 0, 0x20)) {\n              // Propagate failure if we failed\n              revert(0, 0x20)\n           }\n\n           // Propagate success\n           return (0, 0x20)\n        }\n      nonce: 1\n      storage: {}\n\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: 1000000000000000000000\n      code: '0x'\n      nonce: 1\n      storage: {}\n\n\n  transaction:\n    data:\n    # Run the code snippet normally\n    - :label normal :abi f(uint) 0x00\n\n    # Single level call stack\n    # CALL\n    - :label normal :abi f(uint) 0xf1\n    # CALLCODE\n    - :label normal :abi f(uint) 0xf2\n    # DELEGATECALL\n    - :abi f(uint) 0xf4\n    # STATICCALL\n    - :abi f(uint) 0xfa\n\n    # Two level call stack\n    # CALL CALL\n    - :abi f(uint) 0xf1f1\n    # CALLCODE CALL\n    - :abi f(uint) 0xf2f1\n    # DELEGATECALL CALL\n    - :abi f(uint) 0xf4f1\n    # STATICCALL CALL\n    - :abi f(uint) 0xfaf1\n    # CALL CALLCODE\n    - :abi f(uint) 0xf1f2\n    # CALLCODE CALLCODE\n    - :abi f(uint) 0xf2f2\n    # DELEGATECALL CALLCODE\n    - :abi f(uint) 0xf4f2\n    # STATICCALL CALLCODE\n    - :abi f(uint) 0xfaf2\n    # CALL DELEGATECALL\n    - :abi f(uint) 0xf1f4\n    # CALLCODE DELEGATECALL\n    - :abi f(uint) 0xf2f4\n    # DELEGATECALL DELEGATECALL\n    - :abi f(uint) 0xf4f4\n    # STATICCALL DELEGATECALL\n    - :abi f(uint) 0xfaf4\n    # CALL STATICCALL\n    - :abi f(uint) 0xf1fa\n    # CALLCODE STATICCALL\n    - :abi f(uint) 0xf2fa\n    # DELEGATECALL STATICCALL\n    - :abi f(uint) 0xf4fa\n    # STATICCALL STATICCALL\n    - :abi f(uint) 0xfafa\n\n    # Call after something fails\n    # REVERT\n    - :abi f(uint) 0xfd\n    # Out of gas\n    - :abi f(uint) 0xfe\n    # SELFDESTRUCT\n    - :abi f(uint) 0xff\n\n\n    # Combined with creation of contracts\n    # CREATE (run code in the constructor)\n    - :abi f(uint) 0xf0\n    # CREATE2 (run code in the constructor)\n    - :abi f(uint) 0xf5\n    # CREATE and then CALL\n    - :abi f(uint) 0xf0f1\n    # CREATE2 and then CALL\n    - :abi f(uint) 0xf5f1\n    # CREATE and then CALLCODE\n    - :abi f(uint) 0xf0f2\n    # CREATE2 and then CALLCODE\n    - :abi f(uint) 0xf5f2\n    # CREATE and then DELEGATECALL\n    - :abi f(uint) 0xf0f4\n    # CREATE2 and then DELEGATECALL\n    - :abi f(uint) 0xf5f4\n    # CREATE and then STATICCALL\n    - :abi f(uint) 0xf0fa\n    # CREATE2 and then STATICCALL\n    - :abi f(uint) 0xf5fa\n\n\n    gasLimit:\n    - 0xf4240\n    nonce: 1\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - 0\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n    gasPrice: 2000\n\n\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n\n      network:\n        - '>=Osaka'\n\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            # The result we expect\n            0x00: 10\n\n        000000000000000000000000000000000060BACC:\n          storage:\n            0x00: 0x60A7  # Anything that happens should be reverted out of\n\n        0000000000000000000000000000000000060006:\n          storage:\n            0x00: 0x60A7  # Anything that happens should be reverted out of\n\n\n\n\n"
  },
  {
    "path": "tests/static/state_tests/stEIP1559/gasPriceDiffPlacesFiller.yml",
    "content": "\n# Created by tests/src/Templates/DiffPlaces/templateGen.js\n#\n# With the template code:\n# mstore(0, gasprice())\n#            \n#            \n#\n# Expected result: 2000\n#\ngasPriceDiffPlaces:\n  _info:\n    comment: Ori Pomerantz   qbzzt1@gmail.com\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentNumber: 1\n    currentTimestamp: 1000\n    currentGasLimit: 0x10000000000000\n    currentBaseFee: 10\n\n  pre:\n\n    # It is not trivial to use the Yul compiler to get the\n    # binary code for the code we're checking, so we'll use EXTCODECOPY\n    # from this contract\n    000000000000000000000000000000000000C0DE:\n      balance: 1000000000000000000\n      code: |\n        :yul berlin {\n           mstore(0, gasprice())\n            \n            \n\n           // Here the result is is mload(0). We want to run it, but\n           // prefix it with a zero so we'll be safe from being considered\n           // an invalid program.\n           //\n           // If we use this as a constructor the result will be\n           // the code of the created contract, but we can live\n           // with that. We won't call it.\n           mstore(0x40, mload(0x00))\n           return(0x3F, 0x21)\n        }\n      nonce: 1\n      storage: {}\n\n    # When we create a contract and then call it, we don't want the\n    # zero prefix in the return value\n    000000000000000000000000000000000020C0DE:\n      balance: 1000000000000000000\n      code: |\n        :yul berlin {\n           mstore(0, gasprice())\n            \n            \n\n           // Here the result is is mload(0).\n           return(0x00, 0x20)\n        }\n      nonce: 1\n      storage: {}\n\n\n\n    # Code for a construct to create a contract with the template code\n    00000000000000000000000000000000C0DEC0DE:\n      balance: 1000000000000000000\n      code: |\n        :yul berlin {\n           let addr := 0x20C0DE\n           let length := extcodesize(addr)\n\n           // Read the code from 0x20C0DE\n           extcodecopy(addr, 0, 0, length)\n\n           // Return this memory as the code for the contract\n           return(0, length)\n        }\n      nonce: 1\n      storage: {}\n\n\n    # Perform the action (directly or indirectly). Either way,\n    # store the result in sload(0).\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: 1000000000000000000\n      code: |\n          :yul berlin {\n             let action := calldataload(4)\n             let res := 1   // If the result of a call is revert, revert here too\n             let addr := 1  // If the result of CREATE[2] is zero, it reverted\n\n             // For when we need code in our memory\n             let codeBuffer := 0x20\n             // When running the template in the constructor\n             let codeLength := extcodesize(0xC0DE)\n             // When running the template in the created code\n             let codeLength2 := extcodesize(0xC0DEC0DE)\n\n             // Goat should be overwritten\n             mstore(0, 0x60A7)\n\n             switch action\n             case 0 {  // run the code snippet as normal code\n                mstore(0, gasprice())\n            \n            \n             }\n\n             // One level of call stack\n             case 0xF1 {  // call a contract to run this code\n                res := call(gas(), 0xca11, 0, 0, 0, 0, 0x20) // call template code\n             }\n             case 0xF2 {  // callcode a contract to run this code\n                res := callcode(gas(), 0xca11, 0, 0, 0, 0, 0x20)\n             }\n             case 0xF4 {  // delegate call a contract to run this code\n                res := delegatecall(gas(), 0xca11, 0, 0, 0, 0x20)\n             }\n             case 0xFA {  // static call a contract to run this code\n                res := staticcall(gas(), 0xca11, 0, 0, 0, 0x20)\n             }\n\n             // Two levels of call stack\n             case 0xF1F1 {  // call, call\n                res := call(gas(), 0xca1100f1, 0, 0, 0, 0, 0x20)\n             }\n             case 0xF2F1 {  // callcode, call\n                res := callcode(gas(), 0xca1100f1, 0, 0, 0, 0, 0x20)\n             }\n             case 0xF4F1 {  // delegatecall, call\n                res := delegatecall(gas(), 0xca1100f1, 0, 0, 0, 0x20)\n             }\n             case 0xFAF1 {  // staticcall, call\n                res := staticcall(gas(), 0xca1100f1, 0, 0, 0, 0x20)\n             }\n             case 0xF1F2 {  // call, callcode\n                res := call(gas(), 0xca1100f2, 0, 0, 0, 0, 0x20)\n             }\n             case 0xF2F2 {  // callcode, callcode\n                res := callcode(gas(), 0xca1100f2, 0, 0, 0, 0, 0x20)\n             }\n             case 0xF4F2 {  // delegatecall, callcode\n                res := delegatecall(gas(), 0xca1100f2, 0, 0, 0, 0x20)\n             }\n             case 0xFAF2 {  // staticcall, callcode\n                res := staticcall(gas(), 0xca1100f2, 0, 0, 0, 0x20)\n             }\n             case 0xF1F4 {  // call, delegatecall\n                res := call(gas(), 0xca1100f4, 0, 0, 0, 0, 0x20)\n             }\n             case 0xF2F4 {  // callcode, delegatecall\n                res := callcode(gas(), 0xca1100f4, 0, 0, 0, 0, 0x20)\n             }\n             case 0xF4F4 {  // delegatecall, delegatecall\n                res := delegatecall(gas(), 0xca1100f4, 0, 0, 0, 0x20)\n             }\n             case 0xFAF4 {  // staticcall, delegatecall\n                res := staticcall(gas(), 0xca1100f4, 0, 0, 0, 0x20)\n             }\n             case 0xF1FA {  // call, staticcall\n                res := call(gas(), 0xca1100fa, 0, 0, 0, 0, 0x20)\n             }\n             case 0xF2FA {  // callcode, staticcall\n                res := callcode(gas(), 0xca1100fa, 0, 0, 0, 0, 0x20)\n             }\n             case 0xF4FA {  // delegatecall, staticcall\n                res := delegatecall(gas(), 0xca1100fa, 0, 0, 0, 0x20)\n             }\n             case 0xFAFA {  // staticcall, staticcall\n                res := staticcall(gas(), 0xca1100fa, 0, 0, 0, 0x20)\n             }\n             case 0xFD {   // Rerun the code after a REVERT\n                mstore(0, gasprice())\n            \n            \n                sstore(0, mload(0))\n\n                pop(call(gas(), 0x60BACC, 0, 0, 0, 0, 0))\n                mstore(0, gasprice())\n            \n            \n\n                // The two results should be equal\n                if iszero(eq(sload(0), mload(0))) {mstore(0, 0xBADBADBAD)}\n             }\n             case 0xFE {   // Rerun the code after an out of gas\n                mstore(0, gasprice())\n            \n            \n                sstore(0, mload(0))\n\n                pop(call(25000, 0x60006, 0, 0, 0, 0, 0))\n                mstore(0, gasprice())\n            \n            \n\n                // The two results should be equal\n                if iszero(eq(sload(0), mload(0))) {mstore(0, 0xBADBADBAD)}\n             }\n             case 0xFF {   // Rerun the code after a SELFDESTRUCT\n                mstore(0, gasprice())\n            \n            \n                sstore(0, mload(0))\n\n                pop(call(gas(), 0xDEADDEAD, 0, 0, 0, 0, 0))\n                mstore(0, gasprice())\n            \n            \n\n                // The two results should be equal\n                if iszero(eq(sload(0), mload(0))) {mstore(0, 0xBADBADBAD)}\n             }\n\n\n\n             case 0xF0 {  // CREATE, run the code in the constructor\n                // Read the code from 0xC0DE and create a contract based on it\n                extcodecopy(0xC0DE, codeBuffer, 0, codeLength)\n                addr := create(1000000000000000000, codeBuffer, codeLength)\n\n                // Read the created contract, that is the result\n                // We start it from the second byte so the first byte of\n                // code will be STOP (0x00). Otherwise we might run into\n                // invalid program issues (because the result isn't a valid\n                // program\n                extcodecopy(addr, 0, 1, 0x20)\n             }\n\n\n             case 0xF5 {  // CREATE2, run the code in the constructor\n                // Read the code from 0xC0DE and create a contract based on it\n                extcodecopy(0xC0DE, codeBuffer, 0, codeLength)\n                addr := create2(1000000000000000000, codeBuffer, codeLength, 0x5a17)\n\n                // Read the created contract, that is the result\n                // We start it from the second byte so the first byte of\n                // code will be STOP (0x00). Otherwise we might run into\n                // invalid program issues (because the result isn't a valid\n                // program\n                extcodecopy(addr, 0, 1, 0x20)\n             }\n\n             case 0xF0F1 { // CREATE, then CALL the created code for the result\n\n                // Read the code from 0xC0DEC0DE and create a\n                // contract based on it\n                extcodecopy(0xC0DEC0DE, codeBuffer, 0, codeLength2)\n                addr := create(1000000000000000000, codeBuffer, codeLength2)\n\n                // Call the contract\n                res := call(gas(), addr, 0, 0, 0, 0, 0x20)\n\n             }\n\n             case 0xF5F1 { // CREATE2, then CALL the created code for the result\n\n                // Read the code from 0xC0DEC0DE and create a\n                // contract based on it\n                extcodecopy(0xC0DEC0DE, codeBuffer, 0, codeLength2)\n                addr := create2(1000000000000000000, codeBuffer, codeLength2, 0x5a17)\n\n                // Call the contract\n                res := call(gas(), addr, 0, 0, 0, 0, 0x20)\n\n             }\n\n\n             case 0xF0F2 { // CREATE, then CALLCODE the created code\n                           // for the result\n\n                // Read the code from 0xC0DEC0DE and create a\n                // contract based on it\n                extcodecopy(0xC0DEC0DE, codeBuffer, 0, codeLength2)\n\n                // Here we don't transfer cc..cc's ETH to the new contract\n                // because if we run SELFBALANCE it will run in the context\n                // of CC....CC and therefore return 0\n                addr := create(0, codeBuffer, codeLength2)\n\n                // Call the contract\n                res := callcode(gas(), addr, 0, 0, 0, 0, 0x20)\n\n             }\n\n             case 0xF5F2 { // CREATE2, then CALLCODE the created code for\n                           // the result\n\n                // Read the code from 0xC0DEC0DE and create a\n                // contract based on it\n                extcodecopy(0xC0DEC0DE, codeBuffer, 0, codeLength2)\n\n                // Here we don't transfer cc..cc's ETH to the new contract\n                // because if we run SELFBALANCE it will run in the context\n                // of CC....CC and therefore return 0\n                addr := create2(0, codeBuffer, codeLength2, 0x5a17)\n\n                // Call the contract\n                res := callcode(gas(), addr, 0, 0, 0, 0, 0x20)\n\n             }\n\n\n             case 0xF0F4 { // CREATE, then DELEGATECALL the created code\n                           // for the result\n\n                // Read the code from 0xC0DEC0DE and create a\n                // contract based on it\n                extcodecopy(0xC0DEC0DE, codeBuffer, 0, codeLength2)\n\n                // Here we don't transfer cc..cc's ETH to the new contract\n                // because if we run SELFBALANCE it will run in the context\n                // of CC....CC and therefore return 0\n                addr := create(0, codeBuffer, codeLength2)\n\n                // Call the contract\n                res := delegatecall(gas(), addr, 0, 0, 0, 0x20)\n\n             }\n\n             case 0xF5F4 { // CREATE2, then DELEGATECALL the created code\n                           // for the result\n\n                // Read the code from 0xC0DEC0DE and create a\n                // contract based on it\n                extcodecopy(0xC0DEC0DE, codeBuffer, 0, codeLength2)\n\n                // Here we don't transfer cc..cc's ETH to the new contract\n                // because if we run SELFBALANCE it will run in the context\n                // of CC....CC and therefore return 0\n                addr := create2(0, codeBuffer, codeLength2, 0x5a17)\n\n                // Call the contract\n                res := delegatecall(gas(), addr, 0, 0, 0, 0x20)\n\n             }\n\n\n             case 0xF0FA { // CREATE, then CALLSTATIC the created code\n                           // for the result\n\n                // Read the code from 0xC0DEC0DE and create a\n                // contract based on it\n                extcodecopy(0xC0DEC0DE, codeBuffer, 0, codeLength2)\n                addr := create(1000000000000000000, codeBuffer, codeLength2)\n\n                // Call the contract\n                res := staticcall(gas(), addr, 0, 0, 0, 0x20)\n\n             }\n\n             case 0xF5FA { // CREATE2, then STATICCALL the created code\n                           // for the result\n\n                // Read the code from 0xC0DEC0DE and create a\n                // contract based on it\n                extcodecopy(0xC0DEC0DE, codeBuffer, 0, codeLength2)\n                addr := create2(1000000000000000000, codeBuffer, codeLength2, 0x5a17)\n\n                // Call the contract\n                res := staticcall(gas(), addr, 0, 0, 0, 0x20)\n\n             }\n\n              // Recurse (= run backwards)\n              case 0x60BACCFA57 {\n                 mstore(0, 1023)\n                 res := call(gas(), 0x60BACCFA57, 0, 0, 0x20, 0, 0x20)\n              }\n\n\n             default {    // Fail, we should never get here\n               mstore(0, 0xBAD0BAD0BAD0)\n             }\n\n             // If res is zero, that means a call failed, so fail too\n             if iszero(res) { revert(0,0x20) }\n\n             // If addr is zero, that means a create failed, so fail too\n             if iszero(addr) { revert(0,0x20) }\n\n             // Here the result is is mload(0), store it so\n             // the test can check it\n             sstore(0, mload(0))\n          }\n      nonce: 1\n      storage:\n        0: 0x60A7   # To be overwritten by the code snippet\n\n\n\n    # Called to perform the code snippet and return the result\n    000000000000000000000000000000000000ca11:\n      balance: '1000000000000000000'\n      code: |\n          :yul berlin {\n            mstore(0, gasprice())\n            \n            \n            return(0, 0x20)     // return the result as our return value\n          }\n      nonce: 1\n      storage: {}\n\n\n    # Called to CALL the code (two level call stack)\n    00000000000000000000000000000000ca1100f1:\n      balance: '1000000000000000000'\n      code: |\n          :yul berlin {\n            if iszero(call(gas(), 0xca11, 0, 0, 0, 0, 0x20))\n               { revert(0,0x20) }\n\n            return(0, 0x20)     // return the result as our return value\n          }\n      nonce: 1\n      storage: {}\n\n\n    # Called to CALLCODE the code (two level call stack)\n    00000000000000000000000000000000ca1100f2:\n      balance: '1000000000000000000'\n      code: |\n          :yul berlin {\n            if iszero(callcode(gas(), 0xca11, 0, 0, 0, 0, 0x20))\n               { revert(0,0x20) }\n\n            return(0, 0x20)     // return the result as our return value\n          }\n      nonce: 1\n      storage: {}\n\n\n    # Called to DELEGATECALL the code (two level call stack)\n    00000000000000000000000000000000ca1100f4:\n      balance: '1000000000000000000'\n      code: |\n          :yul berlin {\n            if iszero(delegatecall(gas(), 0xca11, 0, 0, 0, 0x20))\n               { revert(0,0x20) }\n\n            return(0, 0x20)     // return the result as our return value\n          }\n      nonce: 1\n      storage: {}\n\n\n    # Called to STATICCALL the code (two level call stack)\n    00000000000000000000000000000000ca1100fa:\n      balance: '1000000000000000000'\n      code: |\n          :yul berlin {\n            if iszero(staticcall(gas(), 0xca11, 0, 0, 0, 0x20))\n               { revert(0,0x20) }\n\n            return(0, 0x20)     // return the result as our return value\n          }\n      nonce: 1\n      storage: {}\n\n\n    # Failures (to run the code after a failure, see it works)\n\n    # Out of gas\n    0000000000000000000000000000000000060006:\n      balance: '1000000000000000000'\n      code: |\n        :yul berlin {\n           mstore(0, gasprice())\n            \n            \n           sstore(0,mload(0))\n           invalid()\n        }\n      nonce: 1\n      storage:\n        0: 0x60A7   # If it changes, we have a problem\n\n\n    # REVERT\n    000000000000000000000000000000000060BACC:\n      balance: '1000000000000000000'\n      code: |\n        :yul berlin {\n           mstore(0, gasprice())\n            \n            \n           sstore(0,mload(0))\n           revert(0,0x20)\n        }\n      nonce: 1\n      storage:\n        0: 0x60A7   # If it changes, we have a problem\n\n\n    # SELFDESTRUCT\n    00000000000000000000000000000000DEADDEAD:\n      balance: '1000000000000000000'\n      code: |\n        :yul berlin {\n           selfdestruct(0)\n        }\n      nonce: 1\n      storage: {}\n\n\n\n\n    # Recursively call until reaching the stack depth, then run the template\n    00000000000000000000000000000060BACCFA57:\n      balance: 1000000000000000000\n      code: |\n        :yul berlin {\n           let depth := calldataload(0)\n\n           if eq(depth,0) {\n               mstore(0, gasprice())\n            \n            \n               return(0, 0x20)\n           }\n\n           // Dig deeper\n           mstore(0, sub(depth,1))\n\n           // Call yourself with depth-1\n           if iszero(call(gas(), 0x60BACCFA57, 0, 0, 0x20, 0, 0x20)) {\n              // Propagate failure if we failed\n              revert(0, 0x20)\n           }\n\n           // Propagate success\n           return (0, 0x20)\n        }\n      nonce: 1\n      storage: {}\n\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: 1000000000000000000000\n      code: '0x'\n      nonce: 1\n      storage: {}\n\n\n  transaction:\n    data:\n    # Run the code snippet normally\n    - :label normal :abi f(uint) 0x00\n\n    # Single level call stack\n    # CALL\n    - :label normal :abi f(uint) 0xf1\n    # CALLCODE\n    - :label normal :abi f(uint) 0xf2\n    # DELEGATECALL\n    - :abi f(uint) 0xf4\n    # STATICCALL\n    - :abi f(uint) 0xfa\n\n    # Two level call stack\n    # CALL CALL\n    - :abi f(uint) 0xf1f1\n    # CALLCODE CALL\n    - :abi f(uint) 0xf2f1\n    # DELEGATECALL CALL\n    - :abi f(uint) 0xf4f1\n    # STATICCALL CALL\n    - :abi f(uint) 0xfaf1\n    # CALL CALLCODE\n    - :abi f(uint) 0xf1f2\n    # CALLCODE CALLCODE\n    - :abi f(uint) 0xf2f2\n    # DELEGATECALL CALLCODE\n    - :abi f(uint) 0xf4f2\n    # STATICCALL CALLCODE\n    - :abi f(uint) 0xfaf2\n    # CALL DELEGATECALL\n    - :abi f(uint) 0xf1f4\n    # CALLCODE DELEGATECALL\n    - :abi f(uint) 0xf2f4\n    # DELEGATECALL DELEGATECALL\n    - :abi f(uint) 0xf4f4\n    # STATICCALL DELEGATECALL\n    - :abi f(uint) 0xfaf4\n    # CALL STATICCALL\n    - :abi f(uint) 0xf1fa\n    # CALLCODE STATICCALL\n    - :abi f(uint) 0xf2fa\n    # DELEGATECALL STATICCALL\n    - :abi f(uint) 0xf4fa\n    # STATICCALL STATICCALL\n    - :abi f(uint) 0xfafa\n\n    # Call after something fails\n    # REVERT\n    - :abi f(uint) 0xfd\n    # Out of gas\n    - :abi f(uint) 0xfe\n    # SELFDESTRUCT\n    - :abi f(uint) 0xff\n\n\n    # Combined with creation of contracts\n    # CREATE (run code in the constructor)\n    - :abi f(uint) 0xf0\n    # CREATE2 (run code in the constructor)\n    - :abi f(uint) 0xf5\n    # CREATE and then CALL\n    - :abi f(uint) 0xf0f1\n    # CREATE2 and then CALL\n    - :abi f(uint) 0xf5f1\n    # CREATE and then CALLCODE\n    - :abi f(uint) 0xf0f2\n    # CREATE2 and then CALLCODE\n    - :abi f(uint) 0xf5f2\n    # CREATE and then DELEGATECALL\n    - :abi f(uint) 0xf0f4\n    # CREATE2 and then DELEGATECALL\n    - :abi f(uint) 0xf5f4\n    # CREATE and then STATICCALL\n    - :abi f(uint) 0xf0fa\n    # CREATE2 and then STATICCALL\n    - :abi f(uint) 0xf5fa\n\n\n    # Recurse almost until the limit\n    - :abi f(uint) 0x60BACCFA57\n\n\n    gasLimit:\n    - 0x10000000000000\n    nonce: 1\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - 0\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n    gasPrice: 2000\n\n\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n\n      network:\n        - '>=Cancun<Osaka'\n\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            # The result we expect\n            0x00: 2000\n\n        000000000000000000000000000000000060BACC:\n          storage:\n            0x00: 0x60A7  # Anything that happens should be reverted out of\n\n        0000000000000000000000000000000000060006:\n          storage:\n            0x00: 0x60A7  # Anything that happens should be reverted out of\n\n\n\n\n"
  },
  {
    "path": "tests/static/state_tests/stEIP1559/gasPriceDiffPlacesOsakaFiller.yml",
    "content": "\n# Created by tests/src/Templates/DiffPlaces/templateGen.js\n#\n# With the template code:\n# mstore(0, gasprice())\n#            \n#            \n#\n# Expected result: 2000\n#\ngasPriceDiffPlaces:\n  _info:\n    comment: Ori Pomerantz   qbzzt1@gmail.com\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentNumber: 1\n    currentTimestamp: 1000\n    currentGasLimit: 0x10000000000000\n    currentBaseFee: 10\n\n  pre:\n\n    # It is not trivial to use the Yul compiler to get the\n    # binary code for the code we're checking, so we'll use EXTCODECOPY\n    # from this contract\n    000000000000000000000000000000000000C0DE:\n      balance: 1000000000000000000\n      code: |\n        :yul berlin {\n           mstore(0, gasprice())\n            \n            \n\n           // Here the result is is mload(0). We want to run it, but\n           // prefix it with a zero so we'll be safe from being considered\n           // an invalid program.\n           //\n           // If we use this as a constructor the result will be\n           // the code of the created contract, but we can live\n           // with that. We won't call it.\n           mstore(0x40, mload(0x00))\n           return(0x3F, 0x21)\n        }\n      nonce: 1\n      storage: {}\n\n    # When we create a contract and then call it, we don't want the\n    # zero prefix in the return value\n    000000000000000000000000000000000020C0DE:\n      balance: 1000000000000000000\n      code: |\n        :yul berlin {\n           mstore(0, gasprice())\n            \n            \n\n           // Here the result is is mload(0).\n           return(0x00, 0x20)\n        }\n      nonce: 1\n      storage: {}\n\n\n\n    # Code for a construct to create a contract with the template code\n    00000000000000000000000000000000C0DEC0DE:\n      balance: 1000000000000000000\n      code: |\n        :yul berlin {\n           let addr := 0x20C0DE\n           let length := extcodesize(addr)\n\n           // Read the code from 0x20C0DE\n           extcodecopy(addr, 0, 0, length)\n\n           // Return this memory as the code for the contract\n           return(0, length)\n        }\n      nonce: 1\n      storage: {}\n\n\n    # Perform the action (directly or indirectly). Either way,\n    # store the result in sload(0).\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: 1000000000000000000\n      code: |\n          :yul berlin {\n             let action := calldataload(4)\n             let res := 1   // If the result of a call is revert, revert here too\n             let addr := 1  // If the result of CREATE[2] is zero, it reverted\n\n             // For when we need code in our memory\n             let codeBuffer := 0x20\n             // When running the template in the constructor\n             let codeLength := extcodesize(0xC0DE)\n             // When running the template in the created code\n             let codeLength2 := extcodesize(0xC0DEC0DE)\n\n             // Goat should be overwritten\n             mstore(0, 0x60A7)\n\n             switch action\n             case 0 {  // run the code snippet as normal code\n                mstore(0, gasprice())\n            \n            \n             }\n\n             // One level of call stack\n             case 0xF1 {  // call a contract to run this code\n                res := call(gas(), 0xca11, 0, 0, 0, 0, 0x20) // call template code\n             }\n             case 0xF2 {  // callcode a contract to run this code\n                res := callcode(gas(), 0xca11, 0, 0, 0, 0, 0x20)\n             }\n             case 0xF4 {  // delegate call a contract to run this code\n                res := delegatecall(gas(), 0xca11, 0, 0, 0, 0x20)\n             }\n             case 0xFA {  // static call a contract to run this code\n                res := staticcall(gas(), 0xca11, 0, 0, 0, 0x20)\n             }\n\n             // Two levels of call stack\n             case 0xF1F1 {  // call, call\n                res := call(gas(), 0xca1100f1, 0, 0, 0, 0, 0x20)\n             }\n             case 0xF2F1 {  // callcode, call\n                res := callcode(gas(), 0xca1100f1, 0, 0, 0, 0, 0x20)\n             }\n             case 0xF4F1 {  // delegatecall, call\n                res := delegatecall(gas(), 0xca1100f1, 0, 0, 0, 0x20)\n             }\n             case 0xFAF1 {  // staticcall, call\n                res := staticcall(gas(), 0xca1100f1, 0, 0, 0, 0x20)\n             }\n             case 0xF1F2 {  // call, callcode\n                res := call(gas(), 0xca1100f2, 0, 0, 0, 0, 0x20)\n             }\n             case 0xF2F2 {  // callcode, callcode\n                res := callcode(gas(), 0xca1100f2, 0, 0, 0, 0, 0x20)\n             }\n             case 0xF4F2 {  // delegatecall, callcode\n                res := delegatecall(gas(), 0xca1100f2, 0, 0, 0, 0x20)\n             }\n             case 0xFAF2 {  // staticcall, callcode\n                res := staticcall(gas(), 0xca1100f2, 0, 0, 0, 0x20)\n             }\n             case 0xF1F4 {  // call, delegatecall\n                res := call(gas(), 0xca1100f4, 0, 0, 0, 0, 0x20)\n             }\n             case 0xF2F4 {  // callcode, delegatecall\n                res := callcode(gas(), 0xca1100f4, 0, 0, 0, 0, 0x20)\n             }\n             case 0xF4F4 {  // delegatecall, delegatecall\n                res := delegatecall(gas(), 0xca1100f4, 0, 0, 0, 0x20)\n             }\n             case 0xFAF4 {  // staticcall, delegatecall\n                res := staticcall(gas(), 0xca1100f4, 0, 0, 0, 0x20)\n             }\n             case 0xF1FA {  // call, staticcall\n                res := call(gas(), 0xca1100fa, 0, 0, 0, 0, 0x20)\n             }\n             case 0xF2FA {  // callcode, staticcall\n                res := callcode(gas(), 0xca1100fa, 0, 0, 0, 0, 0x20)\n             }\n             case 0xF4FA {  // delegatecall, staticcall\n                res := delegatecall(gas(), 0xca1100fa, 0, 0, 0, 0x20)\n             }\n             case 0xFAFA {  // staticcall, staticcall\n                res := staticcall(gas(), 0xca1100fa, 0, 0, 0, 0x20)\n             }\n             case 0xFD {   // Rerun the code after a REVERT\n                mstore(0, gasprice())\n            \n            \n                sstore(0, mload(0))\n\n                pop(call(gas(), 0x60BACC, 0, 0, 0, 0, 0))\n                mstore(0, gasprice())\n            \n            \n\n                // The two results should be equal\n                if iszero(eq(sload(0), mload(0))) {mstore(0, 0xBADBADBAD)}\n             }\n             case 0xFE {   // Rerun the code after an out of gas\n                mstore(0, gasprice())\n            \n            \n                sstore(0, mload(0))\n\n                pop(call(25000, 0x60006, 0, 0, 0, 0, 0))\n                mstore(0, gasprice())\n            \n            \n\n                // The two results should be equal\n                if iszero(eq(sload(0), mload(0))) {mstore(0, 0xBADBADBAD)}\n             }\n             case 0xFF {   // Rerun the code after a SELFDESTRUCT\n                mstore(0, gasprice())\n            \n            \n                sstore(0, mload(0))\n\n                pop(call(gas(), 0xDEADDEAD, 0, 0, 0, 0, 0))\n                mstore(0, gasprice())\n            \n            \n\n                // The two results should be equal\n                if iszero(eq(sload(0), mload(0))) {mstore(0, 0xBADBADBAD)}\n             }\n\n\n\n             case 0xF0 {  // CREATE, run the code in the constructor\n                // Read the code from 0xC0DE and create a contract based on it\n                extcodecopy(0xC0DE, codeBuffer, 0, codeLength)\n                addr := create(1000000000000000000, codeBuffer, codeLength)\n\n                // Read the created contract, that is the result\n                // We start it from the second byte so the first byte of\n                // code will be STOP (0x00). Otherwise we might run into\n                // invalid program issues (because the result isn't a valid\n                // program\n                extcodecopy(addr, 0, 1, 0x20)\n             }\n\n\n             case 0xF5 {  // CREATE2, run the code in the constructor\n                // Read the code from 0xC0DE and create a contract based on it\n                extcodecopy(0xC0DE, codeBuffer, 0, codeLength)\n                addr := create2(1000000000000000000, codeBuffer, codeLength, 0x5a17)\n\n                // Read the created contract, that is the result\n                // We start it from the second byte so the first byte of\n                // code will be STOP (0x00). Otherwise we might run into\n                // invalid program issues (because the result isn't a valid\n                // program\n                extcodecopy(addr, 0, 1, 0x20)\n             }\n\n             case 0xF0F1 { // CREATE, then CALL the created code for the result\n\n                // Read the code from 0xC0DEC0DE and create a\n                // contract based on it\n                extcodecopy(0xC0DEC0DE, codeBuffer, 0, codeLength2)\n                addr := create(1000000000000000000, codeBuffer, codeLength2)\n\n                // Call the contract\n                res := call(gas(), addr, 0, 0, 0, 0, 0x20)\n\n             }\n\n             case 0xF5F1 { // CREATE2, then CALL the created code for the result\n\n                // Read the code from 0xC0DEC0DE and create a\n                // contract based on it\n                extcodecopy(0xC0DEC0DE, codeBuffer, 0, codeLength2)\n                addr := create2(1000000000000000000, codeBuffer, codeLength2, 0x5a17)\n\n                // Call the contract\n                res := call(gas(), addr, 0, 0, 0, 0, 0x20)\n\n             }\n\n\n             case 0xF0F2 { // CREATE, then CALLCODE the created code\n                           // for the result\n\n                // Read the code from 0xC0DEC0DE and create a\n                // contract based on it\n                extcodecopy(0xC0DEC0DE, codeBuffer, 0, codeLength2)\n\n                // Here we don't transfer cc..cc's ETH to the new contract\n                // because if we run SELFBALANCE it will run in the context\n                // of CC....CC and therefore return 0\n                addr := create(0, codeBuffer, codeLength2)\n\n                // Call the contract\n                res := callcode(gas(), addr, 0, 0, 0, 0, 0x20)\n\n             }\n\n             case 0xF5F2 { // CREATE2, then CALLCODE the created code for\n                           // the result\n\n                // Read the code from 0xC0DEC0DE and create a\n                // contract based on it\n                extcodecopy(0xC0DEC0DE, codeBuffer, 0, codeLength2)\n\n                // Here we don't transfer cc..cc's ETH to the new contract\n                // because if we run SELFBALANCE it will run in the context\n                // of CC....CC and therefore return 0\n                addr := create2(0, codeBuffer, codeLength2, 0x5a17)\n\n                // Call the contract\n                res := callcode(gas(), addr, 0, 0, 0, 0, 0x20)\n\n             }\n\n\n             case 0xF0F4 { // CREATE, then DELEGATECALL the created code\n                           // for the result\n\n                // Read the code from 0xC0DEC0DE and create a\n                // contract based on it\n                extcodecopy(0xC0DEC0DE, codeBuffer, 0, codeLength2)\n\n                // Here we don't transfer cc..cc's ETH to the new contract\n                // because if we run SELFBALANCE it will run in the context\n                // of CC....CC and therefore return 0\n                addr := create(0, codeBuffer, codeLength2)\n\n                // Call the contract\n                res := delegatecall(gas(), addr, 0, 0, 0, 0x20)\n\n             }\n\n             case 0xF5F4 { // CREATE2, then DELEGATECALL the created code\n                           // for the result\n\n                // Read the code from 0xC0DEC0DE and create a\n                // contract based on it\n                extcodecopy(0xC0DEC0DE, codeBuffer, 0, codeLength2)\n\n                // Here we don't transfer cc..cc's ETH to the new contract\n                // because if we run SELFBALANCE it will run in the context\n                // of CC....CC and therefore return 0\n                addr := create2(0, codeBuffer, codeLength2, 0x5a17)\n\n                // Call the contract\n                res := delegatecall(gas(), addr, 0, 0, 0, 0x20)\n\n             }\n\n\n             case 0xF0FA { // CREATE, then CALLSTATIC the created code\n                           // for the result\n\n                // Read the code from 0xC0DEC0DE and create a\n                // contract based on it\n                extcodecopy(0xC0DEC0DE, codeBuffer, 0, codeLength2)\n                addr := create(1000000000000000000, codeBuffer, codeLength2)\n\n                // Call the contract\n                res := staticcall(gas(), addr, 0, 0, 0, 0x20)\n\n             }\n\n             case 0xF5FA { // CREATE2, then STATICCALL the created code\n                           // for the result\n\n                // Read the code from 0xC0DEC0DE and create a\n                // contract based on it\n                extcodecopy(0xC0DEC0DE, codeBuffer, 0, codeLength2)\n                addr := create2(1000000000000000000, codeBuffer, codeLength2, 0x5a17)\n\n                // Call the contract\n                res := staticcall(gas(), addr, 0, 0, 0, 0x20)\n\n             }\n\n              // Recurse (= run backwards)\n              case 0x60BACCFA57 {\n                 mstore(0, 1023)\n                 res := call(gas(), 0x60BACCFA57, 0, 0, 0x20, 0, 0x20)\n              }\n\n\n             default {    // Fail, we should never get here\n               mstore(0, 0xBAD0BAD0BAD0)\n             }\n\n             // If res is zero, that means a call failed, so fail too\n             if iszero(res) { revert(0,0x20) }\n\n             // If addr is zero, that means a create failed, so fail too\n             if iszero(addr) { revert(0,0x20) }\n\n             // Here the result is is mload(0), store it so\n             // the test can check it\n             sstore(0, mload(0))\n          }\n      nonce: 1\n      storage:\n        0: 0x60A7   # To be overwritten by the code snippet\n\n\n\n    # Called to perform the code snippet and return the result\n    000000000000000000000000000000000000ca11:\n      balance: '1000000000000000000'\n      code: |\n          :yul berlin {\n            mstore(0, gasprice())\n            \n            \n            return(0, 0x20)     // return the result as our return value\n          }\n      nonce: 1\n      storage: {}\n\n\n    # Called to CALL the code (two level call stack)\n    00000000000000000000000000000000ca1100f1:\n      balance: '1000000000000000000'\n      code: |\n          :yul berlin {\n            if iszero(call(gas(), 0xca11, 0, 0, 0, 0, 0x20))\n               { revert(0,0x20) }\n\n            return(0, 0x20)     // return the result as our return value\n          }\n      nonce: 1\n      storage: {}\n\n\n    # Called to CALLCODE the code (two level call stack)\n    00000000000000000000000000000000ca1100f2:\n      balance: '1000000000000000000'\n      code: |\n          :yul berlin {\n            if iszero(callcode(gas(), 0xca11, 0, 0, 0, 0, 0x20))\n               { revert(0,0x20) }\n\n            return(0, 0x20)     // return the result as our return value\n          }\n      nonce: 1\n      storage: {}\n\n\n    # Called to DELEGATECALL the code (two level call stack)\n    00000000000000000000000000000000ca1100f4:\n      balance: '1000000000000000000'\n      code: |\n          :yul berlin {\n            if iszero(delegatecall(gas(), 0xca11, 0, 0, 0, 0x20))\n               { revert(0,0x20) }\n\n            return(0, 0x20)     // return the result as our return value\n          }\n      nonce: 1\n      storage: {}\n\n\n    # Called to STATICCALL the code (two level call stack)\n    00000000000000000000000000000000ca1100fa:\n      balance: '1000000000000000000'\n      code: |\n          :yul berlin {\n            if iszero(staticcall(gas(), 0xca11, 0, 0, 0, 0x20))\n               { revert(0,0x20) }\n\n            return(0, 0x20)     // return the result as our return value\n          }\n      nonce: 1\n      storage: {}\n\n\n    # Failures (to run the code after a failure, see it works)\n\n    # Out of gas\n    0000000000000000000000000000000000060006:\n      balance: '1000000000000000000'\n      code: |\n        :yul berlin {\n           mstore(0, gasprice())\n            \n            \n           sstore(0,mload(0))\n           invalid()\n        }\n      nonce: 1\n      storage:\n        0: 0x60A7   # If it changes, we have a problem\n\n\n    # REVERT\n    000000000000000000000000000000000060BACC:\n      balance: '1000000000000000000'\n      code: |\n        :yul berlin {\n           mstore(0, gasprice())\n            \n            \n           sstore(0,mload(0))\n           revert(0,0x20)\n        }\n      nonce: 1\n      storage:\n        0: 0x60A7   # If it changes, we have a problem\n\n\n    # SELFDESTRUCT\n    00000000000000000000000000000000DEADDEAD:\n      balance: '1000000000000000000'\n      code: |\n        :yul berlin {\n           selfdestruct(0)\n        }\n      nonce: 1\n      storage: {}\n\n\n\n\n    # Recursively call until reaching the stack depth, then run the template\n    00000000000000000000000000000060BACCFA57:\n      balance: 1000000000000000000\n      code: |\n        :yul berlin {\n           let depth := calldataload(0)\n\n           if eq(depth,0) {\n               mstore(0, gasprice())\n            \n            \n               return(0, 0x20)\n           }\n\n           // Dig deeper\n           mstore(0, sub(depth,1))\n\n           // Call yourself with depth-1\n           if iszero(call(gas(), 0x60BACCFA57, 0, 0, 0x20, 0, 0x20)) {\n              // Propagate failure if we failed\n              revert(0, 0x20)\n           }\n\n           // Propagate success\n           return (0, 0x20)\n        }\n      nonce: 1\n      storage: {}\n\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: 1000000000000000000000\n      code: '0x'\n      nonce: 1\n      storage: {}\n\n\n  transaction:\n    data:\n    # Run the code snippet normally\n    - :label normal :abi f(uint) 0x00\n\n    # Single level call stack\n    # CALL\n    - :label normal :abi f(uint) 0xf1\n    # CALLCODE\n    - :label normal :abi f(uint) 0xf2\n    # DELEGATECALL\n    - :abi f(uint) 0xf4\n    # STATICCALL\n    - :abi f(uint) 0xfa\n\n    # Two level call stack\n    # CALL CALL\n    - :abi f(uint) 0xf1f1\n    # CALLCODE CALL\n    - :abi f(uint) 0xf2f1\n    # DELEGATECALL CALL\n    - :abi f(uint) 0xf4f1\n    # STATICCALL CALL\n    - :abi f(uint) 0xfaf1\n    # CALL CALLCODE\n    - :abi f(uint) 0xf1f2\n    # CALLCODE CALLCODE\n    - :abi f(uint) 0xf2f2\n    # DELEGATECALL CALLCODE\n    - :abi f(uint) 0xf4f2\n    # STATICCALL CALLCODE\n    - :abi f(uint) 0xfaf2\n    # CALL DELEGATECALL\n    - :abi f(uint) 0xf1f4\n    # CALLCODE DELEGATECALL\n    - :abi f(uint) 0xf2f4\n    # DELEGATECALL DELEGATECALL\n    - :abi f(uint) 0xf4f4\n    # STATICCALL DELEGATECALL\n    - :abi f(uint) 0xfaf4\n    # CALL STATICCALL\n    - :abi f(uint) 0xf1fa\n    # CALLCODE STATICCALL\n    - :abi f(uint) 0xf2fa\n    # DELEGATECALL STATICCALL\n    - :abi f(uint) 0xf4fa\n    # STATICCALL STATICCALL\n    - :abi f(uint) 0xfafa\n\n    # Call after something fails\n    # REVERT\n    - :abi f(uint) 0xfd\n    # Out of gas\n    - :abi f(uint) 0xfe\n    # SELFDESTRUCT\n    - :abi f(uint) 0xff\n\n\n    # Combined with creation of contracts\n    # CREATE (run code in the constructor)\n    - :abi f(uint) 0xf0\n    # CREATE2 (run code in the constructor)\n    - :abi f(uint) 0xf5\n    # CREATE and then CALL\n    - :abi f(uint) 0xf0f1\n    # CREATE2 and then CALL\n    - :abi f(uint) 0xf5f1\n    # CREATE and then CALLCODE\n    - :abi f(uint) 0xf0f2\n    # CREATE2 and then CALLCODE\n    - :abi f(uint) 0xf5f2\n    # CREATE and then DELEGATECALL\n    - :abi f(uint) 0xf0f4\n    # CREATE2 and then DELEGATECALL\n    - :abi f(uint) 0xf5f4\n    # CREATE and then STATICCALL\n    - :abi f(uint) 0xf0fa\n    # CREATE2 and then STATICCALL\n    - :abi f(uint) 0xf5fa\n\n\n    gasLimit:\n    - 0xf4240\n    nonce: 1\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - 0\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n    gasPrice: 2000\n\n\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n\n      network:\n        - '>=Osaka'\n\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            # The result we expect\n            0x00: 2000\n\n        000000000000000000000000000000000060BACC:\n          storage:\n            0x00: 0x60A7  # Anything that happens should be reverted out of\n\n        0000000000000000000000000000000000060006:\n          storage:\n            0x00: 0x60A7  # Anything that happens should be reverted out of\n\n\n\n\n"
  },
  {
    "path": "tests/static/state_tests/stEIP1559/lowFeeCapFiller.yml",
    "content": "lowFeeCap:\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 0xFF112233445566\n    currentNumber: 1\n    currentTimestamp: 1000\n    currentBaseFee: 1000\n\n\n  pre:\n    <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n      balance: '1000000000000000000'\n      code: |\n          :yul berlin {\n              sstore(0, add(1,1))\n          }\n      nonce: '0'\n      storage: {}\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: 1\n      storage: {}\n\n\n  transaction:\n    data:\n        - data: :label declaredKeyWrite :raw 0x00\n          accessList: []\n    maxFeePerGas: 999\n    maxPriorityFeePerGas: 100\n    gasLimit:\n    - '400000'\n    nonce: 1\n    to: <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>\n    value:\n    - '100000'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n\n\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n\n      network:\n        - '>=Cancun'\n      expectException:\n        '>=Cancun': TransactionException.INSUFFICIENT_MAX_FEE_PER_GAS\n      result: {}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP1559/lowGasLimitFiller.yml",
    "content": "lowGasLimit:\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 80000\n    currentNumber: 1\n    currentTimestamp: 1000\n    currentBaseFee: 1000\n\n\n  pre:\n    <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n      balance: '1000000000000000000'\n      code: |\n          :yul berlin\n          {\n              sstore(0, add(1,1))\n          }\n      nonce: '0'\n      storage:\n        0: 0x60A7\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: 1\n      storage: {}\n\n\n  transaction:\n    data:\n        - data: :raw 0x00\n          accessList: []\n    maxFeePerGas: 1000\n    maxPriorityFeePerGas: 1000\n    gasLimit:\n    - 90000 # Fail because it exceeds the block gas limit\n    - 50000 # Success\n    - 25000 # Runs out of gas, so reverted out of\n    - 20000 # Fail because it is below the intrinsic cost\n    nonce: 1\n    to: <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>\n    value:\n    - 0\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n\n\n  expect:\n \n    # Going above the block gas limit\n    - indexes:\n        data: !!int -1\n        gas:  !!int 0\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      expectException:\n         '>=Cancun': TransactionException.GAS_ALLOWANCE_EXCEEDED\n      result: {}\n\n\n    # Success\n    - indexes:\n        data: !!int -1\n        gas:  !!int 1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n           storage:\n             0: 2\n\n\n    # Out of gas revert\n    - indexes:\n        data: !!int -1\n        gas:  !!int 2\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n           storage:\n             0: 0x60A7\n\n\n    # gasLimit below intrinsic cost\n    - indexes:\n        data: !!int -1\n        gas:  !!int 3\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      expectException:\n        '>=Cancun': TransactionException.INTRINSIC_GAS_TOO_LOW\n      result: {}\n\n"
  },
  {
    "path": "tests/static/state_tests/stEIP1559/lowGasPriceOldTypesFiller.yml",
    "content": "# The type 0, 1 equivalent to lowFeeCap\n\nlowGasPriceOldTypes:\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 0xFF112233445566\n    currentNumber: 1\n    currentTimestamp: 1000\n    currentBaseFee: 1000\n\n\n  pre:\n    <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n      balance: '1000000000000000000'\n      code: |\n          :yul berlin {\n              sstore(0, add(1,1))\n          }\n      nonce: '0'\n      storage: {}\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: 1\n      storage: {}\n\n\n  transaction:\n    data:\n      - :raw 0x00\n      - data: :raw 0x01\n        accessList: []\n    gasPrice: 999\n    gasLimit:\n    - '400000'\n    nonce: 1\n    to: <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>\n    value:\n    - '100000'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n\n\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n\n      network:\n        - '>=Cancun'\n      expectException:\n        '>=Cancun': TransactionException.INSUFFICIENT_MAX_FEE_PER_GAS\n      result: {}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP1559/outOfFundsFiller.yml",
    "content": "outOfFunds:\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 0xFF112233445566\n    currentNumber: 1\n    currentTimestamp: 1000\n    currentBaseFee: 1000\n\n\n  pre:\n    <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n      balance: '1000000000000000000'\n      code: |\n          :yul berlin {\n              sstore(0, add(1,1))\n          }\n      nonce: '0'\n      storage: {}\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: 1\n      storage: {}\n\n\n  transaction:\n    data:\n        - data: :label declaredKeyWrite :raw 0x00\n          accessList: []\n    maxFeePerGas: 100000000000\n    maxPriorityFeePerGas:  100000000000\n    gasLimit:\n    - 16777216\n    - 40000\n    nonce: 1\n    to: <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>\n    value:\n    - 0\n    - 1000000000000000000\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n\n\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int 0\n        value: !!int -1\n\n      network:\n        - '>=Cancun'\n      expectException:\n        '>=Cancun': TransactionException.INSUFFICIENT_ACCOUNT_FUNDS\n      result: {}\n\n\n    - indexes:\n        data: !!int -1\n        gas:  !!int 1\n        value: !!int 0\n\n      network:\n        - '>=Cancun'\n      result: {}\n\n\n    - indexes:\n        data: !!int -1\n        gas:  !!int 1\n        value: !!int 1\n      expectException:\n        '>=Cancun': TransactionException.INSUFFICIENT_ACCOUNT_FUNDS\n      network:\n        - '>=Cancun'\n      result: {}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP1559/outOfFundsOldTypesFiller.yml",
    "content": "outOfFundsOldTypes:\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 0xFF112233445566\n    currentNumber: 1\n    currentTimestamp: 1000\n    currentBaseFee: 1000\n\n\n  pre:\n    <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n      balance: '1000000000000000000'\n      code: |\n          :yul berlin {\n              sstore(0, add(1,1))\n          }\n      nonce: '0'\n      storage: {}\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: 1\n      storage: {}\n\n\n  transaction:\n    data:\n        - :raw 0x00\n        - data: :raw 0x01\n          accessList: []\n    gasPrice: 100000000000\n    gasLimit:\n    - 16777216\n    - 40000\n    nonce: 1\n    to: <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>\n    value:\n    - 0\n    - 1000000000000000000\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n\n\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int 0\n        value: !!int -1\n\n      network:\n        - '>=Cancun'\n      expectException:\n        '>=Cancun': TransactionException.INSUFFICIENT_ACCOUNT_FUNDS\n      result: {}\n\n\n    - indexes:\n        data: !!int -1\n        gas:  !!int 1\n        value: !!int 0\n\n      network:\n        - '>=Cancun'\n      result: {}\n\n\n    - indexes:\n        data: !!int -1\n        gas:  !!int 1\n        value: !!int 1\n      expectException:\n        '>=Cancun': TransactionException.INSUFFICIENT_ACCOUNT_FUNDS\n      network:\n        - '>=Cancun'\n      result: {}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP1559/senderBalanceFiller.yml",
    "content": "senderBalance:\n  _info:\n    comment: |\n      The execution records the EIP-1559 transaction origin balance to make sure its value is \n      properly computed based on the effective gas price (not the maximum gas price as in \n      the transaction validity check).\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 1\n    currentGasLimit: 30000000\n    currentNumber: 1\n    currentTimestamp: 1000\n    currentBaseFee: 11\n\n  pre:\n    <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n      balance: 0\n      code: |\n        :yul london\n        {\n          sstore(0, balance(caller()))\n        }\n      nonce: 0\n      storage: {}\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: 1000000000000000000\n      code: ''\n      nonce: 0\n      storage: {}\n\n  transaction:\n    nonce: 0\n    to: <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>\n    value:\n      - 0\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    maxFeePerGas: 1000\n    maxPriorityFeePerGas: 100\n    gasLimit:\n      - 60000\n    data:\n      - data: ''\n        accessList: []\n\n  expect:\n    - indexes:\n        data: !!int -1\n      network:\n        - \">=Cancun\"\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0: 999999999993340000\n"
  },
  {
    "path": "tests/static/state_tests/stEIP1559/tipTooHighFiller.yml",
    "content": "tipTooHigh:\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 0xFF112233445566\n    currentNumber: 1\n    currentTimestamp: 1000\n    currentBaseFee: 1000\n\n\n  pre:\n    <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n      balance: '1000000000000000000'\n      code: |\n          :yul london\n          {\n              sstore(0, add(1,1))\n          }\n      nonce: '0'\n      storage: {}\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: 1\n      storage: {}\n\n\n  transaction:\n    data:\n        - data: :label declaredKeyWrite :raw 0x00\n          accessList: []\n    maxFeePerGas: 1000\n    maxPriorityFeePerGas: 1001\n    gasLimit:\n    - '400000'\n    nonce: 1\n    to: <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>\n    value:\n    - '100000'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n\n\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n\n      network:\n        - '>=Cancun'\n      expectException:\n        '>=Cancun': TransactionException.PRIORITY_GREATER_THAN_MAX_FEE_PER_GAS\n      result: {}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP1559/transactionIntinsicBug_ParisFiller.yml",
    "content": "transactionIntinsicBug_Paris:\n  _info:\n    comment: Bug discovered on ropsten https://github.com/ethereum/go-ethereum/pull/23244/files\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 0xFF112233445566\n    currentNumber: 1\n    currentTimestamp: 1000\n    currentBaseFee: 20\n\n\n  pre:\n    <eoa:0xcccccccccccccccccccccccccccccccccccccccc>:\n      balance: '10'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '50000020'\n      code: '0x'\n      nonce: 1\n      storage: {}\n\n# geth was accepting this transaction as the total price was estimated to be 50M\n# but it didn't account for value in the formula. therefore an invalid transaction passed through.\n# because 50M is just the worst case scenario, the transaction passed with ~10M gas by current basefee and ~40M value transfer\n# while at the same time not hitting out of balance, but technically invalid intrinsic gas as the worst case scenario would have been\n# 50M + 40M value transfer (that would potentially hited out of balance in another block)\n  transaction:\n    data:\n    - data: :label declaredKeyWrite :raw 0x00\n      accessList: []\n    maxFeePerGas: 1000\n    maxPriorityFeePerGas: 20\n    gasLimit:\n    - '50000'\n    nonce: 1\n    to: <eoa:0xcccccccccccccccccccccccccccccccccccccccc>\n    value:\n    - '48000020'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n\n\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n\n      network:\n        - '>=Cancun'\n      expectException:\n        '>=Cancun': TransactionException.INSUFFICIENT_ACCOUNT_FUNDS\n      result: \n        <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n          balance: 50000020\n"
  },
  {
    "path": "tests/static/state_tests/stEIP1559/typeTwoBerlinFiller.yml",
    "content": "typeTwoBerlin:\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 0xFF112233445566\n    currentNumber: 1\n    currentTimestamp: 1000\n    currentBaseFee: 1000\n\n\n  pre:\n    <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n      balance: '1000000000000000000'\n      code: |\n          :yul berlin\n          {\n              sstore(0, add(1,1))\n          }\n      nonce: '0'\n      storage: {}\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: 1\n      storage: {}\n\n\n  transaction:\n    data:\n        - data: :label declaredKeyWrite :raw 0x00\n          accessList: []\n    maxFeePerGas: 1000\n    maxPriorityFeePerGas: 1000\n    gasLimit:\n    - '400000'\n    nonce: 1\n    to: <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>\n    value:\n    - '100000'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n\n\n  expect:\n\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n           storage:\n             0: 2\n\n"
  },
  {
    "path": "tests/static/state_tests/stEIP1559/valCausesOOFFiller.yml",
    "content": "valCausesOOF:\n\n# This tests shows that regardless of the real gas, a transaction is rejected if\n# gasPrice * gasLimit + value > balance\n\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 0xFF112233445566\n    currentNumber: 1\n    currentTimestamp: 1000\n    currentBaseFee: 1000\n\n\n  pre:\n    <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n      balance: 100_000_000_000_000\n      code: |\n          :yul london\n          {\n              // This loop runs a number of times specified in the data, \n              // so the gas cost depends on the data\n              for { let i := calldataload(4) } gt(i,0) { i := sub(i,1) } {\n                 sstore(i, 0x60A7)\n              }     // for loop\n          }\n      nonce: '0'\n      storage: {}\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: 100_000_000\n      code: '0x'\n      nonce: 1\n      storage: {}\n\n\n  transaction:\n    data:\n    # Costs 43397 gas\n    - data: :abi f(uint) 1\n      accessList: []\n\n    # Costs 65555 gas\n    - data: :abi f(uint) 2\n      accessList: []\n\n    maxFeePerGas: 1000\n    maxPriorityFeePerGas:  0\n    gasLimit:\n    - 100_000   # The balance is high enough only if we aren't also sending wei\n    -  90_000   # The balance is always high enough\n    - 110_000   # The balance is never high enough\n    nonce: 1\n    to: <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>\n    value:\n    - 0\n    - 1\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n\n\n  expect:\n\n    # value: 0 wei, so the balance is compared to gasLimit * gasPrice\n    - indexes:\n        data:  !!int -1\n        gas:   0-1\n        value: !!int  0\n      network:\n        - '>=Cancun'\n      result: {}     # The real result is whether an exception happens or not\n\n\n\n    # value: 1 wei, so the balance is compared to gasLimit * gasPrice + 1.\n    # with a gasLimit of 100k, this is going to fail\n    - indexes:\n        data:  !!int -1\n        gas:   !!int  0\n        value: !!int  1\n      network:\n        - '>=Cancun'\n      result: {}     # The real result is whether an exception happens or not\n      expectException:\n        '>=Cancun': TransactionException.INSUFFICIENT_ACCOUNT_FUNDS\n\n\n\n    # value: 1 wei, so the balance is compared to gasLimit * gasPrice + 1.\n    # with a gasLimit of 90k, this is going to be successful\n    - indexes:\n        data:  !!int -1\n        gas:   !!int  1\n        value: !!int  1\n      network:\n        - '>=Cancun'\n      result: {}     # The real result is whether an exception happens or not\n\n\n    # gasLimit 110k, so we fail regardless of value\n    - indexes:\n        data:  !!int -1\n        gas:   !!int  2\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result: {}     # The real result is whether an exception happens or not\n      expectException:\n        '>=Cancun': TransactionException.INSUFFICIENT_ACCOUNT_FUNDS\n"
  },
  {
    "path": "tests/static/state_tests/stEIP158Specific/CALL_OneVCallSuicide2Filler.json",
    "content": "{\n    \"CALL_OneVCallSuicide2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t    \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                            \"balance\" : \"0\",\n\t                \t\t\"storage\" : {}\n\t        \t    },\n\t        \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"balance\" : \"99\",\n\t            \t\t\"storage\" : {\n\t        \t            \"0x64\" : \"16937\"\n\t        \t        }\n\t        \t    },\n        \t\t    \"<eoa:0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                            \"balance\" : \"1\"\n\t        \t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"100\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [0](GAS) (CALL 60000 <contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 1 0 0 0 0) [[100]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (SELFDESTRUCT <eoa:0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b>) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<eoa:0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"1\",\n\t\t        \"code\" : \"\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP158Specific/CALL_OneVCallSuicideFiller.json",
    "content": "{\n    \"CALL_OneVCallSuicide\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t    \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                            \"balance\" : \"0\",\n\t                \t\t\"storage\" : {}\n\t        \t    },\n\t        \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"balance\" : \"100\",\n\t            \t\t\"storage\" : {\n\t        \t            \"0x64\" : \"0x3801\"\n\t        \t        }\n\t        \t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"100\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [0](GAS) (CALL 60000 <contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 1 0 0 0 0) [[100]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (SELFDESTRUCT <contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP158Specific/CALL_ZeroVCallSuicideFiller.json",
    "content": "{\n    \"CALL_ZeroVCallSuicide\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n    \t\t\t        \"balance\" : \"0\"\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n    \t\t\t        \"storage\" : {\n\t\t                    \"0x64\" : \"0x1dd5\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [0](GAS) (CALL 60000 <contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) [[100]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (SELFDESTRUCT <contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP158Specific/EXP_EmptyFiller.json",
    "content": "{\n    \"EXP_Empty\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"//comment\" : \"https://etherpad.net/p/EIP158\",\n                        \"storage\" : {\n                            \"0x02\" : \"0x08e8\",\n                            \"0x03\" : \"0x01\",\n                            \"0x04\" : \"0x566f\",\n                            \"0x06\" : \"0x0a43\",\n                            \"0x08\" : \"0x0bd3\",\n                            \"0x0a\" : \"0x0ef3\",\n                            \"0x0b\" : \"0x01\",\n                            \"0x0c\" : \"0x566f\",\n                            \"0x0d\" : \"0x01\",\n                            \"0x0e\" : \"0x566f\",\n                            \"0x0f\" : \"0x01\",\n                            \"0x64\" : \"0x566f\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [0](GAS) [[1]](EXP 0 12)  [[2]](SUB @0 (GAS)) [0](GAS) [[3]](EXP 12 0) [[4]](SUB @0 (GAS)) [0](GAS) [[5]](EXP 0 0xffffffffffffffff) [[6]](SUB @0 (GAS)) [0](GAS) [[7]](EXP 0 0xffffffffffffffffffffffffffffffff) [[8]](SUB @0 (GAS)) [0](GAS) [[9]](EXP 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[10]](SUB @0 (GAS)) [0](GAS) [[11]](EXP 0xffffffffffffffff 0) [[12]](SUB @0 (GAS)) [0](GAS) [[13]](EXP 0xffffffffffffffffffffffffffffffff 0) [[14]](SUB @0 (GAS)) [0] (GAS) [[15]](EXP 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0) [[100]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP158Specific/EXTCODESIZE_toEpmtyParisFiller.json",
    "content": "{\n    \"EXTCODESIZE_toEpmtyParis\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t\t            \"balance\" : \"10\",\n\t\t\t            \"nonce\" : \"0\",\n\t\t\t            \"code\" : \"\",\n\t\t\t            \"storage\": {\n\t\t\t            }\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n    \t\t\t        \"storage\" : {\n\t\t                    \"0x64\" : \"7617\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [0](GAS) [[1]] (EXTCODESIZE <eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>) [[100]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n                    \"0x01\" : \"0x0600\"\n\t\t        }\n            },\n    \t    \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP158Specific/EXTCODESIZE_toNonExistentFiller.json",
    "content": "{\n    \"EXTCODESIZE_toNonExistent\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun\"],\n                \"result\" : {\n\t\t            \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n    \t\t\t        \"shouldnotexist\" : \"1\"\n\t\t            },\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t            \"storage\" : {\n\t\t                        \"0x64\" : \"0x12d1\"\n\t\t                    }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [0](GAS) [[1]] (EXTCODESIZE 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b) [[100]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP158Specific/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stEIP158Specific/callToEmptyThenCallErrorParisFiller.json",
    "content": "{\n    \"callToEmptyThenCallErrorParis\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<eoa:0xee098e6c2a43d9e2c04f08f0c3a87b0ba59079d4>\" : {\n                        \"balance\" : \"10\"\n                    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{ (CALL 0 <eoa:0xee098e6c2a43d9e2c04f08f0c3a87b0ba59079d4> 0 0 0 0 0) (CALL 0 <contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) }\",\n                \"storage\": {\n                }\n            },\n            \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{ (GAS) }\",\n                \"storage\": {\n                }\n            },\n            \"<eoa:0xee098e6c2a43d9e2c04f08f0c3a87b0ba59079d4>\": {\n                \"nonce\": \"0\",\n                \"balance\": \"10\",\n                \"code\": \"\",\n                \"storage\": {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP158Specific/vitalikTransactionTestParisFiller.json",
    "content": "{\n    \"vitalikTransactionTestParis\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t\t\t\t\"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\" : {\n                        \"code\" : \"\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n\t\t\t\t\t\"0xcd2a3d9f938e13cd947ec05abc7fe734df8dd826\" : {\n\t\t\t\t\t\t\"code\" : \"\",\n\t\t\t\t\t\t\"nonce\" : \"0x0150\",\n\t\t\t\t\t\t\"storage\" : {\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t\"0x1bc78ae0e5ec5cb439f1d5355d6f90d38343e109\" : {\n\t\t\t\t\t\t\"code\" : \"\",\n\t\t\t\t\t\t\"nonce\" : \"0x03\",\n\t\t\t\t\t\t\"storage\" : {\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t\"0x51f9d7f98e997bdd6bebde4c2dd27be8c99303aa\" : {\n\t\t\t\t\t\t\"balance\" : \"0x00\",\n\t\t\t\t\t\t\"code\" : \"0x6000603f5359610043806100135939610056566c010000000000000000000000007fee098e6c2a43d9e2c04f08f0c3a87b0ba59079d4d53532071d6cd0cb86facd5605ff6100008061003f60003961003f565b6000f35b816000f0905050fe\",\n\t\t\t\t\t\t\"nonce\" : \"0x01\",\n\t\t\t\t\t\t\"storage\" : {\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t\"0xee098e6c2a43d9e2c04f08f0c3a87b0ba59079d4\" : {\n\t\t\t\t\t\t\"balance\" : \"10\",\n\t\t\t\t\t\t\"code\" : \"\",\n\t\t\t\t\t\t\"nonce\" : \"0x00\",\n\t\t\t\t\t\t\"storage\" : {\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n                }\n            }\n        ],\n        \"pre\": {\n    \t\t\"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x01\",\n                \"storage\" : {\n                }\n            },\n            \"cd2a3d9f938e13cd947ec05abc7fe734df8dd826\": {\n                \"nonce\": \"0x014f\", \n                \"balance\": \"0xffffffffffffffffffff\", \n                \"code\": \"0x\", \n                \"storage\": {}\n            }, \n            \"ee098e6c2a43d9e2c04f08f0c3a87b0ba59079d4\": {\n                \"nonce\": \"0x00\", \n                \"balance\": \"10\", \n                \"code\": \"0x\", \n                \"storage\": {}\n            }\n        }, \n        \"transaction\" : {\n            \"//comment\" : \"god knows what it is...  vitalik knows\",\n            \"data\" : [\n                \":raw 0x6000607f5359610043806100135939610056566c010000000000000000000000007fee098e6c2a43d9e2c04f08f0c3a87b0ba59079d4d53532071d6cd0cb86facd5605ff6100008061003f60003961003f565b6000f35b816000f0905050596100718061006c59396100dd5661005f8061000e60003961006d566000603f5359610043806100135939610056566c010000000000000000000000007fee098e6c2a43d9e2c04f08f0c3a87b0ba59079d4d53532071d6cd0cb86facd5605ff6100008061003f60003961003f565b6000f35b816000f0905050fe5b6000f35b816000f0905060405260006000600060006000604051620249f0f15061000080610108600039610108565b6000f3\"\n            ],\n            \"gasLimit\" : [\n                \"0x1fffff\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0x014f\",\n            \"secretKey\" : \"c85ef7d79691fe79573b1a7064c19c1a9819ebdbd1faaab1a8ec92344438aaf4\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stEIP2930/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stEIP2930/addressOpcodesFiller.yml",
    "content": "addressOpcodes:\n\n  # Check the gas cost of various address information opcodes (balance, etc.)\n  # when the address is or isn't in the access list\n\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '0xFF112233445566'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n\n  pre:\n    # Applies to all tests in this file\n    0000000000000000000000000000000000001000:\n      balance: '1000000000000000000'\n      code: |\n       {\n          (def 'acctType  $0)   ; type of account we handle\n          (def 'opcode $0x20)   ; the opcode we are dealing with\n\n          (def 'acct 0x20)\n\n          (def 'NOP 0)\n\n\n          ; the type of account we handle\n\n          ; unrelated account\n          (if (= acctType 0) [acct] 0x1001 NOP)\n\n          ; transaction sender\n          (if (= acctType 1) [acct] (origin) NOP)\n\n          ; the contract that called us\n          (if (= acctType 2) [acct] (caller) NOP)\n\n          ; our own contract\n          (if (= acctType 3) [acct] (address) NOP)\n\n          ; a precompile\n          (if (= acctType 4) [acct] 0x0001 NOP)\n\n\n          [0] @0    ; Just to disable the first use of memory cost\n\n          (if (= opcode 0) {\n                [0] (gas)\n                (balance @acct)\n                [[0]] (- @0 (gas) 22)\n\n                [0] (gas)\n                (balance @acct)\n                [[1]] (- @0 (gas) 22)\n            } NOP)   ; (if (= opcode 0) ... )\n\n\n          (if (= opcode 1) {\n                [0] (gas)\n                (extcodesize @acct)\n                [[0]] (- @0 (gas) 22)\n\n                [0] (gas)\n                (extcodesize @acct)\n                [[1]] (- @0 (gas) 22)\n            } NOP)   ; (if (= opcode 1) ... )\n\n\n          (if (= opcode 2) {\n                [0] (gas)\n                (extcodehash @acct)\n                [[0]] (- @0 (gas) 22)\n\n                [0] (gas)\n                (extcodehash @acct)\n                [[1]] (- @0 (gas) 22)\n            } NOP)   ; (if (= opcode 1) ... )\n\n\n          ; This test writes to memory, so we need to write to it first\n          ; to avoid measuring that number\n          (if (= opcode 3) {\n                [0x100]   0x06A5\n                [0] (gas)\n                (extcodecopy @acct 0x100 0 0x20)  ; don't touch @0 or @acct\n                [[0]] (- @0 (gas) 32)             ; normalize to the same cost as\n                                                  ; the other tests\n\n                [0] (gas)\n                (extcodecopy @acct 0x100 0 0x20)\n                [[1]] (- @0 (gas) 32)\n            } NOP)   ; (if (= opcode 1) ... )\n\n       }\n      nonce: '0'\n      storage: {}\n\n\n\n\n\n    # Call the contract that does the actual work\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            ; relay the parameters\n            [0x100] $4\n            [0x120] $36\n            (call (gas) 0x1000 0 0x100 0x40 0 0x40)\n\n            ; Write the returned results, if any\n            [[0]] @0x00\n            [[1]] @0x20\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '1000000000000000000'\n      code: 0x\n      nonce: '0'\n      storage: {}\n\n\n  transaction:\n    data:\n    # The first parameter is the type of address involved:\n    #\n    # 0 - 0x1001, a random address\n    # 1 - transaction sender (0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b)\n    # 2 - caller  (0xcccc...cccc)\n    # 3 - address (0x1000)\n    # 4 - a precompile (0x0...01)\n    #\n    # The second parameter is the action:\n    # 0 - BALANCE\n    # 1 - EXTCODEHASH\n    # 2 - EXTCODESIZE\n    # 3 - EXTCODECOPY\n\n    # BALANCE_VALID\n    - data: :label valid :abi f(uint,uint) 0 0\n      accessList:\n      - address: 0x0000000000000000000000000000000000001001\n        storageKeys:\n        - 0x00\n        - 0x60A7\n\n\n    # BALANCE_VALID_NO_CELLS\n    - data: :label valid :abi f(uint,uint) 0 0\n      accessList:\n      - address: 0x0000000000000000000000000000000000001001\n        storageKeys: []\n\n\n    # BALANCE_NO_LIST\n    - data: :label invalid :abi f(uint,uint) 0 0\n      accessList: []\n\n\n\n    # BALANCE_BAD_ADDR\n    - data: :label invalid :abi f(uint,uint) 0 0\n      accessList:\n      - address: 0xF00000000000000000000000000000000000F101\n        storageKeys:\n        - 0x00\n        - 0x60A7\n\n    # BALANCE_SENDER_VALID\n    - data: :label valid :abi f(uint,uint) 1 0\n      accessList:\n      - address: 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\n        storageKeys:\n        - 0x00\n        - 0x60A7\n\n    # BALANCE_SENDER_INVALID\n    - data: :label valid :abi f(uint,uint) 1 0\n      accessList: []\n\n\n\n    # BALANCE_PAST_VALID\n    - data: :label valid :abi f(uint,uint) 2 0\n      accessList:\n      - address: 0xcccccccccccccccccccccccccccccccccccccccc\n        storageKeys:\n        - 0x00\n        - 0x60A7\n\n\n    # BALANCE_PAST_INVALID\n    - data: :label valid :abi f(uint,uint) 2 0\n      accessList: []\n\n\n\n\n    # BALANCE_CURRENT_VALID\n    - data: :label valid :abi f(uint,uint) 3 0\n      accessList:\n      - address: 0x0000000000000000000000000000000000001000\n        storageKeys:\n        - 0x00\n        - 0x60A7\n\n\n    # BALANCE_CURRENT_INVALID\n    - data: :label valid :abi f(uint,uint) 3 0\n      accessList: []\n\n\n    # BALANCE_PRECOMPILE_VALID\n    - data: :label valid :abi f(uint,uint) 4 0\n      accessList:\n      - address: 0x0000000000000000000000000000000000000001\n        storageKeys:\n        - 0x00\n        - 0x60A7\n\n\n    # BALANCE_PRECOMPILE_INVALID\n    - data: :label valid :abi f(uint,uint) 4 0\n      accessList: []\n\n\n\n\n    # EXTCODESIZE_VALID\n    - data: :label valid :abi f(uint,uint) 0 1\n      accessList:\n      - address: 0x0000000000000000000000000000000000001001\n        storageKeys:\n        - 0x00\n        - 0x60A7\n\n\n    # EXTCODESIZE_VALID_NO_CELLS\n    - data: :label valid :abi f(uint,uint) 0 1\n      accessList:\n      - address: 0x0000000000000000000000000000000000001001\n        storageKeys: []\n\n\n    # EXTCODESIZE_NO_LIST\n    - data: :label invalid :abi f(uint,uint) 0 1\n      accessList: []\n\n\n\n    # EXTCODESIZE_BAD_ADDR\n    - data: :label invalid :abi f(uint,uint) 0 1\n      accessList:\n      - address: 0xF00000000000000000000000000000000000F101\n        storageKeys:\n        - 0x00\n        - 0x60A7\n\n    # EXTCODESIZE_SENDER_VALID\n    - data: :label valid :abi f(uint,uint) 1 1\n      accessList:\n      - address: 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\n        storageKeys:\n        - 0x00\n        - 0x60A7\n\n    # EXTCODESIZE_SENDER_INVALID\n    - data: :label valid :abi f(uint,uint) 1 1\n      accessList: []\n\n\n\n    # EXTCODESIZE_PAST_VALID\n    - data: :label valid :abi f(uint,uint) 2 1\n      accessList:\n      - address: 0xcccccccccccccccccccccccccccccccccccccccc\n        storageKeys:\n        - 0x00\n        - 0x60A7\n\n\n    # EXTCODESIZE_PAST_INVALID\n    - data: :label valid :abi f(uint,uint) 2 1\n      accessList: []\n\n\n\n    # EXTCODESIZE_CURRENT_VALID\n    - data: :label valid :abi f(uint,uint) 3 1\n      accessList:\n      - address: 0x0000000000000000000000000000000000001000\n        storageKeys:\n        - 0x00\n        - 0x60A7\n\n\n    # EXTCODESIZE_CURRENT_INVALID\n    - data: :label valid :abi f(uint,uint) 3 1\n      accessList: []\n\n\n    # EXTCODESIZE_PRECOMPILE_VALID\n    - data: :label valid :abi f(uint,uint) 4 1\n      accessList:\n      - address: 0x0000000000000000000000000000000000000001\n        storageKeys:\n        - 0x00\n        - 0x60A7\n\n\n    # EXTCODESIZE_PRECOMPILE_INVALID\n    - data: :label valid :abi f(uint,uint) 4 1\n      accessList: []\n\n\n\n\n\n\n    # EXTCODEHASH_VALID\n    - data: :label valid :abi f(uint,uint) 0 2\n      accessList:\n      - address: 0x0000000000000000000000000000000000001001\n        storageKeys:\n        - 0x00\n        - 0x60A7\n\n\n    # EXTCODEHASH_VALID_NO_CELLS\n    - data: :label valid :abi f(uint,uint) 0 2\n      accessList:\n      - address: 0x0000000000000000000000000000000000001001\n        storageKeys: []\n\n\n    # EXTCODEHASH_NO_LIST\n    - data: :label invalid :abi f(uint,uint) 0 2\n      accessList: []\n\n\n\n    # EXTCODEHASH_BAD_ADDR\n    - data: :label invalid :abi f(uint,uint) 0 2\n      accessList:\n      - address: 0xF00000000000000000000000000000000000F101\n        storageKeys:\n        - 0x00\n        - 0x60A7\n\n    # EXTCODEHASH_SENDER_VALID\n    - data: :label valid :abi f(uint,uint) 1 2\n      accessList:\n      - address: 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\n        storageKeys:\n        - 0x00\n        - 0x60A7\n\n    # EXTCODEHASH_SENDER_INVALID\n    - data: :label valid :abi f(uint,uint) 1 2\n      accessList: []\n\n\n\n    # EXTCODEHASH_PAST_VALID\n    - data: :label valid :abi f(uint,uint) 2 2\n      accessList:\n      - address: 0xcccccccccccccccccccccccccccccccccccccccc\n        storageKeys:\n        - 0x00\n        - 0x60A7\n\n\n    # EXTCODEHASH_PAST_INVALID\n    - data: :label valid :abi f(uint,uint) 2 2\n      accessList: []\n\n\n\n    # EXTCODEHASH_CURRENT_VALID\n    - data: :label valid :abi f(uint,uint) 3 2\n      accessList:\n      - address: 0x0000000000000000000000000000000000001000\n        storageKeys:\n        - 0x00\n        - 0x60A7\n\n\n    # EXTCODEHASH_CURRENT_INVALID\n    - data: :label valid :abi f(uint,uint) 3 2\n      accessList: []\n\n\n    # EXTCODEHASH_PRECOMPILE_VALID\n    - data: :label valid :abi f(uint,uint) 4 2\n      accessList:\n      - address: 0x0000000000000000000000000000000000000001\n        storageKeys:\n        - 0x00\n        - 0x60A7\n\n\n    # EXTCODEHASH_PRECOMPILE_INVALID\n    - data: :label valid :abi f(uint,uint) 4 2\n      accessList: []\n\n\n\n\n\n    # EXTCODECOPY_VALID\n    - data: :label valid :abi f(uint,uint) 0 3\n      accessList:\n      - address: 0x0000000000000000000000000000000000001001\n        storageKeys:\n        - 0x00\n        - 0x60A7\n\n\n    # EXTCODECOPY_VALID_NO_CELLS\n    - data: :label valid :abi f(uint,uint) 0 3\n      accessList:\n      - address: 0x0000000000000000000000000000000000001001\n        storageKeys: []\n\n\n    # EXTCODECOPY_NO_LIST\n    - data: :label invalid :abi f(uint,uint) 0 3\n      accessList: []\n\n\n\n    # EXTCODECOPY_BAD_ADDR\n    - data: :label invalid :abi f(uint,uint) 0 3\n      accessList:\n      - address: 0xF00000000000000000000000000000000000F101\n        storageKeys:\n        - 0x00\n        - 0x60A7\n\n    # EXTCODECOPY_SENDER_VALID\n    - data: :label valid :abi f(uint,uint) 1 3\n      accessList:\n      - address: 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\n        storageKeys:\n        - 0x00\n        - 0x60A7\n\n    # EXTCODECOPY_SENDER_INVALID\n    - data: :label valid :abi f(uint,uint) 1 3\n      accessList: []\n\n\n\n    # EXTCODECOPY_PAST_VALID\n    - data: :label valid :abi f(uint,uint) 2 3\n      accessList:\n      - address: 0xcccccccccccccccccccccccccccccccccccccccc\n        storageKeys:\n        - 0x00\n        - 0x60A7\n\n\n    # EXTCODECOPY_PAST_INVALID\n    - data: :label valid :abi f(uint,uint) 2 3\n      accessList: []\n\n\n\n\n    # EXTCODECOPY_CURRENT_VALID\n    - data: :label valid :abi f(uint,uint) 3 3\n      accessList:\n      - address: 0x0000000000000000000000000000000000001000\n        storageKeys:\n        - 0x00\n        - 0x60A7\n\n\n    # EXTCODECOPY_CURRENT_INVALID\n    - data: :label valid :abi f(uint,uint) 3 3\n      accessList: []\n\n\n    # EXTCODECOPY_PRECOMPILE_VALID\n    - data: :label valid :abi f(uint,uint) 4 3\n      accessList:\n      - address: 0x0000000000000000000000000000000000000001\n        storageKeys:\n        - 0x00\n        - 0x60A7\n\n\n    # EXTCODECOPY_PRECOMPILE_INVALID\n    - data: :label valid :abi f(uint,uint) 4 3\n      accessList: []\n\n\n\n\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: 45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\n    to: cccccccccccccccccccccccccccccccccccccccc\n\n    value:\n    - '100000'\n\n\n\n\n  expect:\n\n  # BALANCE_VALID\n  # BALANCE_VALID_NO_CELLS\n  # BALANCE_SENDER_VALID\n  # BALANCE_SENDER_INVALID\n  # BALANCE_PAST_INVALID\n  # BALANCE_PAST_VALID\n  # BALANCE_CURRENT_VALID\n  # BALANCE_CURRENT_INVALID\n  # BALANCE_PRECOMPILE_VALID\n  # BALANCE_PRECOMPILE_INVALID\n  # EXTCODESIZE_VALID\n  # EXTCODESIZE_VALID_NO_CELLS\n  # EXTCODESIZE_SENDER_VALID\n  # EXTCODESIZE_SENDER_INVALID\n  # EXTCODESIZE_PAST_INVALID\n  # EXTCODESIZE_PAST_VALID\n  # EXTCODESIZE_CURRENT_VALID\n  # EXTCODESIZE_CURRENT_INVALID\n  # EXTCODESIZE_PRECOMPILE_VALID\n  # EXTCODESIZE_PRECOMPILE_INVALID\n  # EXTCODEHASH_VALID\n  # EXTCODEHASH_VALID_NO_CELLS\n  # EXTCODEHASH_SENDER_VALID\n  # EXTCODEHASH_SENDER_INVALID\n  # EXTCODEHASH_PAST_INVALID\n  # EXTCODEHASH_PAST_VALID\n  # EXTCODEHASH_CURRENT_VALID\n  # EXTCODEHASH_CURRENT_INVALID\n  # EXTCODEHASH_PRECOMPILE_VALID\n  # EXTCODEHASH_PRECOMPILE_INVALID\n  # EXTCODECOPY_VALID\n  # EXTCODECOPY_VALID_NO_CELLS\n  # EXTCODECOPY_SENDER_VALID\n  # EXTCODECOPY_SENDER_INVALID\n  # EXTCODECOPY_PAST_INVALID\n  # EXTCODECOPY_PAST_VALID\n  # EXTCODECOPY_CURRENT_VALID\n  # EXTCODECOPY_CURRENT_INVALID\n  # EXTCODECOPY_PRECOMPILE_VALID\n  # EXTCODECOPY_PRECOMPILE_INVALID\n\n  - indexes:\n      data: :label valid\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      0000000000000000000000000000000000001000:\n        storage:\n          0x00: 0x0061\n          0x01: 0x0061\n\n\n  # BALANCE_NO_LIST\n  # BALANCE_BAD_ADDR\n  # EXTCODESIZE_NO_LIST\n  # EXTCODESIZE_BAD_ADDR\n  # EXTCODEHASH_NO_LIST\n  # EXTCODEHASH_BAD_ADDR\n  # EXTCODECOPY_NO_LIST\n  # EXTCODECOPY_BAD_ADDR\n  - indexes:\n      data: :label invalid\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      0000000000000000000000000000000000001000:\n        storage:\n          0x00: 0x0a25\n          0x01: 0x0061\n          0x02: 0x0000\n"
  },
  {
    "path": "tests/static/state_tests/stEIP2930/coinbaseT01Filler.yml",
    "content": "# Check the costs of transferring gas to coinbase and how it interacts with the \n# access list (transaction types 0 and 1)\n\ncoinbaseT01:\n  env:\n    currentCoinbase: <eoa:0x000000000000000000000000000000000000ba5e>\n    currentDifficulty: '0x20000'\n    currentGasLimit: '0xFF112233445566'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n    currentBaseFee: 100\n\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n\n  pre:  \n    # Send wei to coinbase and see how much gas that costs.\n    <contract:target:0x000000000000000000000000000000000000c0de>:\n      balance: '1000000000000000000'\n      code: |\n       :yul berlin\n       { \n         mstore(0, gas())\n         pop(call(gas(), <eoa:0x000000000000000000000000000000000000ba5e>, 1000000, 0, 0, 0, 0))\n         mstore(0x20, gas())\n\n         // The 24 is the cost of twi gas(), seven pushes(), a pop(), and an mstore()\n         sstore(0, sub(sub(mload(0), mload(0x20)),33))\n       }\n      nonce: 1\n      storage: {}\n\n\n    # Signer\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: 0x\n      nonce: 1\n      storage: {}\n\n\n    # Coinbase\n    <eoa:0x000000000000000000000000000000000000ba5e>:\n      balance: 0\n      code: 0x\n      nonce: 1\n      storage: {}\n\n\n\n  transaction:\n    data:\n\n    # Type 0 transaction, no list\n    - :label T0 :abi f(uint) 0\n\n\n    # Type 1 transaction, base in list\n    - data: :label T1baseInList :abi f(uint) 0\n      accessList:\n      - address: <eoa:0x000000000000000000000000000000000000ba5e>\n        storageKeys: []\n\n\n    # Type 1 transaction, base NOT in list\n    - data: :label T1baseNotInList :abi f(uint) 0\n      accessList:\n      - address: 0x000000000000000000000000000000000000BA5A\n        storageKeys: []\n\n\n\n    gasLimit:\n    - 16777216\n    gasPrice: 1000\n    nonce: 1\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x000000000000000000000000000000000000c0de>\n    value:\n    - 0\n\n\n\n\n\n\n\n\n  expect:\n\n  - indexes:\n      data: :label T1baseInList\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      <contract:target:0x000000000000000000000000000000000000c0de>:\n        storage:\n          0x00: 6800\n\n\n# In Shanghai with EIP3651 (https://eips.ethereum.org/EIPS/eip-3651), coinbase is included in warm accounts list\n# So no difference even if it is not in transaction access list\n  - indexes:\n      data: \n      - :label T1baseNotInList\n      - :label T0\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      <contract:target:0x000000000000000000000000000000000000c0de>:\n        storage:\n          0x00: 6800\n"
  },
  {
    "path": "tests/static/state_tests/stEIP2930/coinbaseT2Filler.yml",
    "content": "# Check the costs of transferring gas to coinbase and how it interacts with the \n# access list in transaction type 2\n\ncoinbaseT2:\n  env:\n    currentCoinbase: <eoa:0x000000000000000000000000000000000000ba5e>\n    currentDifficulty: '0x20000'\n    currentGasLimit: '0xFF112233445566'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n    currentBaseFee: 100\n\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n\n  pre:  \n    # Send wei to coinbase and see how much gas that costs.\n    <contract:target:0x000000000000000000000000000000000000c0de>:\n      balance: '1000000000000000000'\n      code: |\n       :yul berlin\n       { \n         mstore(0, gas())\n         pop(call(gas(), <eoa:0x000000000000000000000000000000000000ba5e>, 1000000, 0, 0, 0, 0))\n         mstore(0x20, gas())\n\n         // The 24 is the cost of twi gas(), seven pushes(), a pop(), and an mstore()\n         sstore(0, sub(sub(mload(0), mload(0x20)),33))\n       }\n      nonce: 1\n      storage: {}\n\n\n    # Signer\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: 0x\n      nonce: 1\n      storage: {}\n\n\n    # Coinbase\n    <eoa:0x000000000000000000000000000000000000ba5e>:\n      balance: 0\n      code: 0x\n      nonce: 1\n      storage: {}\n\n\n\n  transaction:\n    data:\n    # Type 2 transaction, base in list\n    - data: :label T2baseInList :abi f(uint) 0\n      accessList:\n      - address: <eoa:0x000000000000000000000000000000000000ba5e>\n        storageKeys: []\n\n\n    # Type 2 transaction, base NOT in list\n    - data: :label T2baseNotInList :abi f(uint) 0\n      accessList:\n      - address: 0x000000000000000000000000000000000000BA5A\n        storageKeys: []\n\n    gasLimit:\n    - 16777216\n    maxFeePerGas: 10000\n    maxPriorityFeePerGas: 100\n    nonce: 1\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x000000000000000000000000000000000000c0de>\n    value:\n    - 0\n\n\n\n\n\n\n\n\n  expect:\n\n  - indexes:\n      data: :label T2baseInList\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      <contract:target:0x000000000000000000000000000000000000c0de>:\n        storage:\n          0x00: 6800\n\n\n\n# In Shanghai with EIP3651 (https://eips.ethereum.org/EIPS/eip-3651), coinbase is included in warm accounts list\n# So no difference even if it is not in transaction access list\n  - indexes:\n      data: :label T2baseNotInList\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      <contract:target:0x000000000000000000000000000000000000c0de>:\n        storage:\n          0x00: 6800\n"
  },
  {
    "path": "tests/static/state_tests/stEIP2930/manualCreateFiller.yml",
    "content": "manualCreate:\n\n# Create contracts using contract creation transactions instead of \n# CREATE or CREATE2 from the evm\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '0xFF112233445566'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n\n  pre:\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: 0x1000000000000000000\n      code: 0x\n      nonce: 1\n      storage: {}\n\n\n  transaction:\n    data:\n    # To create a contract directly, we send a transaction with the\n    # constructor code in the data and no to: field\n\n    # Constructor:\n\n    # Measure the cost of account data access ************************\n    # GAS            5A\n    # ADDRESS        30\n    # BALANCE        31\n    # POP            50\n    # GAS            5A\n    # SWAP1          90\n    # SUB            03\n    # PUSH1 01       6001\n    # SSTORE         55\n\n\n    # Measure the cost of an SSTORE *************************************\n    # GAS            5A\n    # PUSH1 FF       60FF\n    # PUSH1 00       6000\n    # SSTORE         55\n    # GAS            5A\n    # SWAP1          90\n    # SUB            03\n    # PUSH1 00       6000\n    # SSTORE         55\n\n    # Finish *****************************************************\n    # STOP           00\n\n\n\n    - data: :label allBad :raw 0x5A3031505A90036001555A60FF6000555A900360005500\n      accessList:\n      - address: 0x0000000000000000000000000000000000000100\n        storageKeys:\n        - 0x00\n\n\n    - data: :label addrGoodCellBad :raw 0x5A3031505A90036001555A60FF6000555A900360005500\n      accessList:\n      - address: 0xec0e71ad0a90ffe1909d27dac207f7680abba42d\n        storageKeys:\n        - 0x01\n\n    - data: :label allGood :raw 0x5A3031505A90036001555A60FF6000555A900360005500\n      accessList:\n      - address: 0xec0e71ad0a90ffe1909d27dac207f7680abba42d\n        storageKeys:\n        - 0x00\n\n\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: 1\n    secretKey: 45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\n    to: \"\"\n    value:\n    - 0\n\n\n\n  expect:\n\n  - indexes:\n      data: \n      - :label allGood\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      0xec0e71ad0a90ffe1909d27dac207f7680abba42d:\n         storage:\n            00: 0x4e28  # 20000, cost for declared cell\n            01: 0x006a  # 106, address, balance (known addr), pop\n\n\n\n  - indexes:\n      data: \n      - :label addrGoodCellBad\n      - :label allBad\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      0xec0e71ad0a90ffe1909d27dac207f7680abba42d:\n         storage:\n            00: 0x565c  # 22100, cost for undeclared cell\n            01: 0x006a  # 106, address, balance (known addr), pop\n\n\n"
  },
  {
    "path": "tests/static/state_tests/stEIP2930/storageCostsFiller.yml",
    "content": "storageCosts:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '0xFF112233445566'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n\n  pre:\n    # Declared vs. undeclared write (SSTORE)    zero -> value\n    # WRITE_DECLARED\n    # WRITE_ADDR_IN_LIST\n    # WRITE_ADDR_NOT_IN_LIST\n    # WRITE_NO_LIST\n    0000000000000000000000000000000000001000:\n      balance: '1000000000000000000'\n      code: |\n       {\n        ; Write to @@0, and see how much gas that cost. It should\n        ; cost more when it is not declared storage\n          [0]   (gas)\n         [[0]]  0x02\n          [0]   (- @0 (gas) 17)\n         [[1]] @0\n\n        ; The 17 is the cost of the extra opcodes:\n        ; PUSH1 0x00, MSTORE\n        ; PUSH1 0x02, PUSH1 0x00, (and then comes the SSTORE we are measuring)\n        ; GAS\n\n        ; If the storage cell is declared the cost in @@1 should be 20003\n        ; If the storage cell is not declared the cost    should be 22103\n       }\n      nonce: '0'\n      storage: {}\n\n\n\n    # Declared vs. undeclared read (SLOAD)\n    # READ_DECLARED\n    # READ_ADDR_IN_LIST\n    # READ_ADDR_NOT_IN_LIST\n    # READ_NO_LIST\n    0000000000000000000000000000000000001001:\n      balance: '1000000000000000000'\n      code: |\n       {\n        ; Read @@0, and see how much gas that cost. It should\n        ; cost more when it is not declared storage\n          [0]   (gas)\n          @@0\n          [0]   (- @0 (gas) 19)\n         [[1]] @0\n\n        ; If the storage cell is declared the cost in @@1 should be  100\n        ; If the storage cell is not declared the cost    should be 2100\n       }\n      nonce: '0'\n      storage: {}\n\n\n\n    # Declared vs. undeclared delete     value -> zero\n    # DEL_DECLARED\n    # DEL_ADDR_IN_LIST\n    # DEL_ADDR_NOT_IN_LIST\n    # DEL_NO_LIST\n    0000000000000000000000000000000000001002:\n      balance: '1000000000000000000'\n      storage:\n        0x00: 0x60A7\n      code: |\n       {\n        ; Write to @@0, and see how much gas that cost. It should\n        ; cost more when it is not declared storage\n          [0]   (gas)\n         [[0]]  0x00\n          [0]   (- @0 (gas) 17)\n         [[1]] @0\n\n        ; The 17 is the cost of the extra opcodes:\n        ; PUSH1 0x00, MSTORE\n        ; PUSH1 0x02, PUSH1 0x00, (and then comes the SSTORE we are measuring)\n        ; GAS\n\n        ; If the storage cell is declared the cost in @@1 should be 2903\n        ; If the storage cell is not declared the cost    should be 5003\n        ;\n        ; The refund for freeing memory happens at the end of the transaction,\n        ; so we don't see it\n       }\n      nonce: '0'\n\n\n\n\n    # Declared vs. undeclared update     value -> different value\n    # UPDATE_DECLARED\n    # UPDATE_ADDR_IN_LIST\n    # UPDATE_ADDR_NOT_IN_LIST\n    # UPDATE_NO_LIST\n    0000000000000000000000000000000000001003:\n      balance: '1000000000000000000'\n      storage:\n        0x00: 0x60A7\n      code: |\n       {\n        ; Write to @@0, and see how much gas that cost. It should\n        ; cost more when it is not declared storage\n          [0]   (gas)\n         [[0]]  0xBEEF\n          [0]   (- @0 (gas) 17)\n         [[1]] @0\n\n        ; The 17 is the cost of the extra opcodes:\n        ; PUSH1 0x00, MSTORE\n        ; PUSH1 0x02, PUSH1 0x00, (and then comes the SSTORE we are measuring)\n        ; GAS\n\n        ; If the storage cell is declared the cost in @@1 should be  103\n        ; If the storage cell is not declared the cost    should be 2203\n       }\n      nonce: '0'\n\n\n\n\n    # Declared vs. undeclared NOP     value -> same value\n    # NOP_DECLARED\n    # NOP_ADDR_IN_LIST\n    # NOP_ADDR_NOT_IN_LIST\n    # NOP_NO_LIST\n    0000000000000000000000000000000000001004:\n      balance: '1000000000000000000'\n      storage:\n        0x00: 0x60A7\n      code: |\n       {\n        ; Write to @@0, and see how much gas that cost. It should\n        ; cost more when it is not declared storage\n          [0]   (gas)\n         [[0]]  0x60A7\n          [0]   (- @0 (gas) 17)\n         [[1]] @0\n\n        ; The 17 is the cost of the extra opcodes:\n        ; PUSH1 0x00, MSTORE\n        ; PUSH1 0x02, PUSH1 0x00, (and then comes the SSTORE we are measuring)\n        ; GAS\n\n        ; This costs 103, regadless of whether it is declared or not\n       }\n      nonce: '0'\n\n\n\n    # Declared vs. undeclared NOP0            zero -> zero\n    # NOP0_DECLARED\n    # NOP0_ADDR_IN_LIST\n    # NOP0_ADDR_NOT_IN_LIST\n    # NOP0_NO_LIST\n    0000000000000000000000000000000000001005:\n      balance: '1000000000000000000'\n      storage:\n        0x00: 0x00\n      code: |\n       {\n        ; Write to @@0, and see how much gas that cost. It should\n        ; cost more when it is not declared storage\n          [0]   (gas)\n         [[0]]  0x00\n          [0]   (- @0 (gas) 17)\n         [[1]] @0\n\n        ; The 17 is the cost of the extra opcodes:\n        ; PUSH1 0x00, MSTORE\n        ; PUSH1 0x02, PUSH1 0x00, (and then comes the SSTORE we are measuring)\n        ; GAS\n\n        ; This costs 103, regadless of whether it is declared or not\n       }\n      nonce: '0'\n\n\n\n\n\n\n    # Declared vs. undeclared write (SSTORE), after writing to the storage\n    # STORE_THEN_WRITE_DECLARED\n    # STORE_THEN_WRITE_UNDECLARED\n    0000000000000000000000000000000000001010:\n      balance: '1000000000000000000'\n      code: |\n       {\n\n         [[0]] 0x60A7\n\n        ; Write to @@0, and see how much gas that cost. It should\n        ; cost more when it is not declared storage\n          [0]   (gas)\n         [[0]]  0x02\n          [0]   (- @0 (gas) 17)\n         [[1]] @0\n\n        ; The 17 is the cost of the extra opcodes:\n        ; PUSH1 0x00, MSTORE\n        ; PUSH1 0x02, PUSH1 0x00, (and then comes the SSTORE we are measuring)\n        ; GAS\n\n        ; Since this is second access, it will cost 103\n        ; regardless of whether it was declared or not\n\n       }\n      nonce: '0'\n      storage: {}\n\n\n\n    # Declared vs. undeclared read (SLOAD), after writing to the storage\n    # STORE_THEN_READ_DECLARED\n    # STORE_THEN_READ_UNDECLARED\n    0000000000000000000000000000000000001011:\n      balance: '1000000000000000000'\n      code: |\n       {\n         [[0]] 0x60A7\n\n        ; Read @@0, and see how much gas that cost. It should\n        ; cost more when it is not declared storage\n          [0]   (gas)\n          @@0\n          [0]   (- @0 (gas) 19)\n         [[1]] @0\n\n        ; Since this is second access, it will cost 100\n        ; regardless of whether it was declared or not\n       }\n      nonce: '0'\n      storage: {}\n\n\n    # Declared vs. undeclared write (SSTORE), after reading the storage\n    # LOAD_THEN_WRITE_DECLARED\n    # LOAD_THEN_WRITE_UNDECLARED\n    0000000000000000000000000000000000001020:\n      balance: '1000000000000000000'\n      code: |\n       {\n         [0x20] @@0\n\n        ; Write to @@0, and see how much gas that cost. It should\n        ; cost more when it is not declared storage\n          [0]   (gas)\n         [[0]]  0x02\n          [0]   (- @0 (gas) 17)\n         [[1]] @0\n\n        ; The 17 is the cost of the extra opcodes:\n        ; PUSH1 0x00, MSTORE\n        ; PUSH1 0x02, PUSH1 0x00, (and then comes the SSTORE we are measuring)\n        ; GAS\n\n        ; Since this is second access, it will cost 20k\n        ; regardless of whether it was declared or not\n\n       }\n      nonce: '0'\n      storage: {}\n\n\n\n    # Declared vs. undeclared read (SLOAD), after already reading it\n    # LOAD_THEN_READ_DECLARED\n    # LOAD_THEN_READ_UNDECLARED\n    0000000000000000000000000000000000001021:\n      balance: '1000000000000000000'\n      code: |\n       {\n         [0x20] @@0\n\n        ; Read @@0, and see how much gas that cost.\n          [0]   (gas)\n          @@0\n          [0]   (- @0 (gas) 19)\n         [[1]] @0\n\n        ; Since this is second access, it will cost 97\n        ; regardless of whether it was declared or not\n       }\n      nonce: '0'\n      storage: {}\n\n\n\n\n    # Call different contracts depending on the parameter\n    #\n    # Also check the cost of accessing our own storage\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        { ; TO_ADDR_VALID   TO_ADDR_INVALID_ADDR    TO_ADDR_INVALID_CELL\n          ; Call a different contract\n          (call (gas) (+ 0x1000 $4) 0 0 0 0 0)\n\n          ; Read @@0, and see how much gas that cost.\n            [0]   (gas)\n            @@0x60A7\n            [0]   (- @0 (gas) 19)\n           [[1]] @0\n\n\n          ; Write to @@0, and see how much gas that cost. It should\n          ; cost more when it is not declared storage\n            [0]   (gas)\n           [[0]]  0x02\n            [0]   (- @0 (gas) 17)\n           [[2]] @0\n\n          ; The 17 is the cost of the extra opcodes:\n          ; PUSH1 0x00, MSTORE\n          ; PUSH1 0x02, PUSH1 0x00, (and then comes the SSTORE we are measuring)\n          ; GAS\n\n\n        }\n      nonce: '0'\n      storage:\n        0x60A7: 0xDEAD\n\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '1000000000000000000'\n      code: 0x\n      nonce: '0'\n      storage: {}\n\n\n  transaction:\n    data:\n    # There is just one way to validly declare that a key will be used\n    # WRITE_DECLARED\n    - data: :label declaredKeyWrite :abi f(uint) 0\n      accessList:\n      - address: 0x0000000000000000000000000000000000001000\n        storageKeys:\n        - 0x00\n\n    # READ_DECLARED\n    - data: :label declaredKeyRead :abi f(uint) 1\n      accessList:\n      - address: 0x0000000000000000000000000000000000001001\n        storageKeys:\n        - 0x00\n\n    # DEL_DECLARED\n    - data: :label declaredKeyDel :abi f(uint) 2\n      accessList:\n      - address: 0x0000000000000000000000000000000000001002\n        storageKeys:\n        - 0x00\n\n    # UPDATE_DECLARED\n    - data: :label declaredKeyUpdate :abi f(uint) 3\n      accessList:\n      - address: 0x0000000000000000000000000000000000001003\n        storageKeys:\n        - 0x00\n\n    # NOP_DECLARED\n    - data: :label declaredKeyNOP :abi f(uint) 4\n      accessList:\n      - address: 0x0000000000000000000000000000000000001004\n        storageKeys:\n        - 0x00\n\n    # NOP0_DECLARED\n    - data: :label declaredKeyNOP0 :abi f(uint) 5\n      accessList:\n      - address: 0x0000000000000000000000000000000000001005\n        storageKeys:\n        - 0x00\n\n\n\n    # But there are multiple ways to get it wrong:\n    # Wrong storageKey\n    # WRITE_ADDR_IN_LIST\n    - data: :label undeclaredKeyWrite :abi f(uint) 0\n      accessList:\n      - address: 0x0000000000000000000000000000000000001000\n        storageKeys:\n        - 0x10\n\n    # READ_ADDR_IN_LIST\n    - data: :label undeclaredKeyRead :abi f(uint) 1\n      accessList:\n      - address: 0x0000000000000000000000000000000000001001\n        storageKeys:\n        - 0x10\n\n    # DEL_ADDR_IN_LIST\n    - data: :label undeclaredKeyDel :abi f(uint) 2\n      accessList:\n      - address: 0x0000000000000000000000000000000000001002\n        storageKeys:\n        - 0x10\n\n    # UPDATE_ADDR_IN_LIST\n    - data: :label undeclaredKeyUpdate :abi f(uint) 3\n      accessList:\n      - address: 0x0000000000000000000000000000000000001003\n        storageKeys:\n        - 0x10\n\n    # NOP_ADDR_IN_LIST\n    - data: :label undeclaredKeyNOP :abi f(uint) 4\n      accessList:\n      - address: 0x0000000000000000000000000000000000001004\n        storageKeys:\n        - 0x10\n\n    # NOP0_ADDR_IN_LIST\n    - data: :label undeclaredKeyNOP0 :abi f(uint) 5\n      accessList:\n      - address: 0x0000000000000000000000000000000000001005\n        storageKeys:\n        - 0x10\n\n\n    # Wrong address\n    # WRITE_ADDR_NOT_IN_LIST\n    - data: :label undeclaredKeyWrite :abi f(uint) 0\n      accessList:\n      - address: 0xF000000000000000000000000000000000000100\n        storageKeys:\n        - 0x00\n\n    # READ_ADDR_NOT_IN_LIST\n    - data: :label undeclaredKeyRead :abi f(uint) 1\n      accessList:\n      - address: 0xF000000000000000000000000000000000000101\n        storageKeys:\n        - 0x00\n\n    # DEL_ADDR_NOT_IN_LIST\n    - data: :label undeclaredKeyDel :abi f(uint) 2\n      accessList:\n      - address: 0xF000000000000000000000000000000000000101\n        storageKeys:\n        - 0x00\n\n    # UPDATE_ADDR_NOT_IN_LIST\n    - data: :label undeclaredKeyUpdate :abi f(uint) 3\n      accessList:\n      - address: 0xF000000000000000000000000000000000000101\n        storageKeys:\n        - 0x00\n\n    # NOP_ADDR_NOT_IN_LIST\n    - data: :label undeclaredKeyNOP :abi f(uint) 4\n      accessList:\n      - address: 0xF000000000000000000000000000000000000101\n        storageKeys:\n        - 0x00\n\n    # NOP0_ADDR_NOT_IN_LIST\n    - data: :label undeclaredKeyNOP0 :abi f(uint) 5\n      accessList:\n      - address: 0xF000000000000000000000000000000000000101\n        storageKeys:\n        - 0x00\n\n    # No access list at all\n    # WRITE_NO_LIST\n    - :label undeclaredKeyWrite  :abi f(uint) 0\n\n    # READ_NO_LIST\n    - :label undeclaredKeyRead   :abi f(uint) 1\n\n    # DEL_NO_LIST\n    - :label undeclaredKeyDel    :abi f(uint) 2\n\n    # UPDATE_NO_LIST\n    - :label undeclaredKeyUpdate :abi f(uint) 3\n\n    # NOP_NO_LIST\n    - :label undeclaredKeyNOP    :abi f(uint) 4\n\n    # NOP0_NO_LIST\n    - :label undeclaredKeyNOP0   :abi f(uint) 5\n\n\n    # If we had already accessed the storage (and paid the penalty\n    # in case it was undeclared), it doesn't matter how we accessed it then\n    # or how we access it now. The cost is the same regardless of whether\n    # we declared the key in the storage list or not\n    # STORE_THEN_WRITE_DECLARED\n    - data: :label declaredKeyWrite_postSSTORE :abi f(uint) 0x10\n      accessList:\n      - address: 0x0000000000000000000000000000000000001010\n        storageKeys:\n        - 0x00\n\n    # STORE_THEN_WRITE_UNDECLARED\n    - data: :label undeclaredKeyWrite_postSSTORE :abi f(uint) 0x10\n      accessList:\n      - address: 0x0000000000000000000000000000000000001010\n        storageKeys:\n        - 0x10\n\n    # STORE_THEN_LOAD_DECLARED\n    - data: :label declaredKeyRead_postSSTORE :abi f(uint) 0x11\n      accessList:\n      - address: 0x0000000000000000000000000000000000001011\n        storageKeys:\n        - 0x00\n\n    # STORE_THEN_LOAD_UNDECLARED\n    - data: :label undeclaredKeyRead_postSSTORE :abi f(uint) 0x11\n      accessList:\n      - address: 0x0000000000000000000000000000000000001011\n        storageKeys:\n        - 0x10\n\n    # LOAD_THEN_WRITE_DECLARED\n    - data: :label declaredKeyWrite_postSLOAD :abi f(uint) 0x20\n      accessList:\n      - address: 0x0000000000000000000000000000000000001020\n        storageKeys:\n        - 0x00\n\n    # LOAD_THEN_WRITE_UNDECLARED\n    - data: :label undeclaredKeyWrite_postSLOAD :abi f(uint) 0x20\n      accessList:\n      - address: 0x0000000000000000000000000000000000001020\n        storageKeys:\n        - 0x10\n\n    # LOAD_THEN_READ_DECLARED\n    - data: :label declaredKeyRead_postSLOAD :abi f(uint) 0x21\n      accessList:\n      - address: 0x0000000000000000000000000000000000001021\n        storageKeys:\n        - 0x00\n\n    # LOAD_THEN_READ_UNDECLARED\n    - data: :label undeclaredKeyRead_postSLOAD :abi f(uint) 0x21\n      accessList:\n      - address: 0x0000000000000000000000000000000000001021\n        storageKeys:\n        - 0x10\n\n\n    # TO_ADDR_VALID\n    - data: :label declaredTo :abi f(uint) 0xFFF  # Doesn't matter which contract we call\n      accessList:\n      - address: 0xcccccccccccccccccccccccccccccccccccccccc\n        storageKeys:\n        - 0x0000\n        - 0x0001\n        - 0x0002\n        - 0x60A7\n\n    # TO_ADDR_INVALID_ADDR\n    - data: :label undeclaredTo :abi f(uint) 0xFFF  # Doesn't matter which contract we call\n      accessList:\n      - address: 0xcccccccccccccccccccccccccccccccccc000000\n        storageKeys:\n        - 0x0000\n        - 0x0001\n        - 0x0002\n        - 0x60A7\n\n\n    # TO_ADDR_INVALID_CELL\n    - data: :label undeclaredTo :abi f(uint) 0xFFF  # Doesn't matter which contract we call\n      accessList:\n      - address: 0xcccccccccccccccccccccccccccccccccccccccc\n        storageKeys:\n        - 0xF000\n        - 0xF001\n        - 0xF002\n        - 0xF0A7\n\n\n\n\n\n\n\n\n    # Do a complex access list, see that it is still processed\n    # correctly\n    # There is just one way to validly declare that a key will\n    # be used\n    # LARGE\n    - data: :label declaredKeyWrite :abi f(uint) 0\n      accessList:\n      - address: 0x00000000000000000000000000000000000060A7\n        storageKeys:\n        - 0xFFFFFad\n        - 0x00ad\n        - 0x123214342ad\n        - 0xdeadbeef\n      - address: 0x0000000000000000000000000000000000001000\n        storageKeys:\n        - 0xFFFFF\n        - 0x00\n        - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n        - 0x123214342\n        - 0xdeadbeef\n      - address: 0x0000000000000000000000000010000000000100\n        storageKeys:\n        - 0xFFFFFbc\n        - 0x00bc\n        - 0x123214342bc\n        - 0xdeadbeefbc\n      - address: 0xffffffffffffffffffffffffffffffffffffffff\n        storageKeys:\n        - 0xFFFFFbc\n        - 0x00bc\n        - 0x123214342bc\n        - 0xdeadbeefbc\n        - 0xdeadbeef12345678deadbeef12345678deadbeef12345678deadbeef12345678\n        - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: 45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\n    to: cccccccccccccccccccccccccccccccccccccccc\n\n    value:\n    - '100000'\n\n\n\n\n\n\n  expect:\n\n  # Write to a previously unused storage cell, which is declared in the access list\n  # WRITE_DECLARED\n  # LARGE\n  - indexes:\n      data: :label declaredKeyWrite\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      0000000000000000000000000000000000001000:\n        storage:\n          0x00: 0x02\n          0x01: 0x4e23\n\n  # Write to a previously unused storage cell, which is not declared in the access list\n  # WRITE_ADDR_IN_LIST\n  # WRITE_ADDR_NOT_IN_LIST\n  # WRITE_NO_LIST\n  - indexes:\n      data: :label undeclaredKeyWrite\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      0000000000000000000000000000000000001000:\n        storage:\n          0x00: 0x02\n          0x01: 0x5657\n\n\n\n  # Write to a previously used storage cell, which is declared in the access list\n  # UPDATE_DECLARED\n  - indexes:\n      data: :label declaredKeyUpdate\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      0000000000000000000000000000000000001003:\n        storage:\n          0x00: 0xBEEF\n          0x01: 0x0b57\n\n  # Write to a previously used storage cell, which is not declared in the access list\n  # UPDATE_ADDR_IN_LIST\n  # UPDATE_ADDR_NOT_IN_LIST\n  # UPDATE_NO_LIST\n  - indexes:\n      data: :label undeclaredKeyUpdate\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      0000000000000000000000000000000000001003:\n        storage:\n          0x00: 0xBEEF\n          0x01: 0x138b\n\n\n  # Write to a previously used storage cell, but the same value it currently has\n  # This cell is declared in the access list\n  #\n  # NOP_DECLARED\n  - indexes:\n      data: :label declaredKeyNOP\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      0000000000000000000000000000000000001004:\n        storage:\n          0x00: 0x60A7\n          0x01: 0x0067\n\n\n  # Write to a previously used storage cell, but the same value it currently has\n  # This cell is not declared in the access list\n  # NOP_ADDR_IN_LIST\n  # NOP_ADDR_NOT_IN_LIST\n  # NOP_NO_LIST\n  - indexes:\n      data: :label undeclaredKeyNOP\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      0000000000000000000000000000000000001004:\n        storage:\n          0x00: 0x60A7\n          0x01: 0x089b\n\n\n  # Write zero to a previously unused storage cell.\n  # This cell is declared in the access list\n  # NOP0_DECLARED\n  - indexes:\n      data: :label declaredKeyNOP0\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      0000000000000000000000000000000000001005:\n        storage:\n          0x01: 0x0067\n\n\n  # Write zero to a previously unused storage cell.\n  # This cell is not declared in the access list\n  # NOP0_ADDR_IN_LIST\n  # NOP0_ADDR_NOT_IN_LIST\n  # NOP0_NO_LIST\n  - indexes:\n      data: :label undeclaredKeyNOP0\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      0000000000000000000000000000000000001005:\n        storage:\n          0x01: 0x089b\n\n\n\n\n  # Write zero to a previously used storage cell, freeing it\n  # This cell is declared in the access list\n  #\n  # Note that we don't see the refund for freeing storage, that happens at the\n  # end of the transaction\n  # DEL_DECLARED\n  - indexes:\n      data: :label declaredKeyDel\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      0000000000000000000000000000000000001002:\n        storage:\n          0x00: 0x00\n          0x01: 0x0b57\n\n\n\n  # Write zero to a previously used storage cell, freeing it\n  # This cell is not declared in the access list\n  #\n  # Note that we don't see the refund for freeing storage, that happens at the\n  # end of the transaction\n  # DEL_ADDR_IN_LIST\n  # DEL_ADDR_NOT_IN_LIST\n  # DEL_NO_LIST\n  - indexes:\n      data: :label undeclaredKeyDel\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      0000000000000000000000000000000000001002:\n        storage:\n          0x00: 0x00\n          0x01: 0x138b\n\n\n\n  # Read a storage cell that has been declared in the access list\n  # READ_DECLARED\n  - indexes:\n      data: :label declaredKeyRead\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      0000000000000000000000000000000000001001:\n        storage:\n          0x01: 0x0064\n\n\n\n  # Read a storage cell that has not been declared in the access list\n  # READ_ADDR_IN_LIST\n  # READ_ADDR_NOT_IN_LIST\n  # READ_NO_LIST\n  - indexes:\n      data: :label undeclaredKeyRead\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      0000000000000000000000000000000000001001:\n        storage:\n          0x01: 0x0834\n\n\n\n  # Do an SSTORE, and then check the cost of a second SSTORE for the same cell\n  # The cost of the second access is the same whether it was declared in the access\n  # list or not.\n  # STORE_THEN_WRITE_DECLARED\n  # STORE_THEN_WRITE_UNDECLARED\n  - indexes:\n      data:\n      - :label declaredKeyWrite_postSSTORE\n      - :label undeclaredKeyWrite_postSSTORE\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      0000000000000000000000000000000000001010:\n        storage:\n          0x00: 0x02\n          0x01: 0x0067\n\n\n\n\n  # Do an SSTORE, and then check the cost of an SLOAD for the same cell\n  # The cost of the second access is the same whether it was declared in the access\n  # list or not.\n  # STORE_THEN_READ_DECLARED\n  # STORE_THEN_READ_UNDECLARED\n  - indexes:\n      data:\n      - :label declaredKeyRead_postSSTORE\n      - :label undeclaredKeyRead_postSSTORE\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      0000000000000000000000000000000000001011:\n        storage:\n          0x00: 0x60A7\n          0x01: 0x0064\n\n\n\n  # Do an SLOAD, and then check the cost of an SSTORE for the same cell\n  # The cost of the second access is the same whether it was declared in the access\n  # list or not.\n  # LOAD_THEN_WRITE_DECLARED\n  # LOAD_THEN_WRITE_UNDECLARED\n  - indexes:\n      data:\n      - :label declaredKeyWrite_postSLOAD\n      - :label undeclaredKeyWrite_postSLOAD\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      0000000000000000000000000000000000001020:\n        storage:\n          0x00: 0x02\n          0x01: 0x4e20\n\n\n\n  # Do an SLOAD, and then check the cost of a second SLOAD for the same cell\n  # The cost of the second access is the same whether it was declared in the access\n  # list or not.\n  # LOAD_THEN_READ_DECLARED\n  # LOAD_THEN_READ_UNDECLARED\n  - indexes:\n      data:\n      - :label declaredKeyRead_postSLOAD\n      - :label undeclaredKeyRead_postSLOAD\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      0000000000000000000000000000000000001021:\n        storage:\n          0x01: 0x0061\n\n\n\n\n  # See what happens if we access storage in the to address\n  #\n  # TO_ADDR_VALID\n  - indexes:\n      data:\n      - :label declaredTo\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      cccccccccccccccccccccccccccccccccccccccc:\n        storage:\n          0x0000: 0x0002\n          0x0001: 0x0064\n          0x0002: 0x4e20\n          0x60A7: 0xDEAD\n\n\n\n\n  # See what happens if we access storage in the to address\n  #\n  # TO_ADDR_INVALID_ADDR\n  # TO_ADDR_INVALID_CELL\n  - indexes:\n      data:\n      - :label undeclaredTo\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      cccccccccccccccccccccccccccccccccccccccc:\n        storage:\n          0x0000: 0x0002\n          0x0001: 0x0834\n          0x0002: 0x5654\n          0x60A7: 0xDEAD\n"
  },
  {
    "path": "tests/static/state_tests/stEIP2930/transactionCostsFiller.yml",
    "content": "transactionCosts:\n\n  # This test is for the costs of having the access list in the\n  # transaction.\n  #\n  # To do this we send various transactions with different access lists,\n  # and then check the remaining balance of the account that sends the\n  # transactions. \n\n\n  # Cost of a storage key (ACCESS_LIST_STORAGE_KEY_COST) 1900\n  # Cost of an address    (ACCESS_LIST_ADDRESS_COST)     2400\n\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '0xFF112233445566'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n\n  pre:\n\n    # Do nothing \n    <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n\n      # 00 STOP\n\n      code: :raw 0x00\n      nonce: '0'\n      storage: {}\n\n\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      # Without an access list the cost of the transaction is 121004\n      # Adding that amount lets us count down from a round number\n      balance: 100310040\n      code: 0x\n      nonce: '0'\n      storage: {}\n\n\n  transaction:\n    data:\n    # Type 0 transaction, no EIP2930 access list\n    # NO_LIST\n    - :label type0 :raw 0x00\n\n    # Empty access list\n    # EMPTY_LIST\n    - data: :label addrs_0_keys_0 :raw 0x00\n      accessList: []\n\n\n    # An access list with one address that has nothing in it\n    # ONE_ZERO\n    - data: :label addrs_1_keys_0 :raw 0x00\n      accessList:\n      - address: 0x0000000000000000000000000000000000000102\n        storageKeys: []\n\n\n\n    # One address, one storage key. The values of addresses and storage keys \n    # don't matter to the cost of the access list - just how many of them\n    # there are\n    # ONE_ONE\n    - data: :label addrs_1_keys_1 :raw 0x00\n      accessList:\n      - address: 0x0000000000000000000000000000000000000101\n        storageKeys:\n        - 0x0000\n\n    # DIFF_ADDR\n    - data: :label addrs_1_keys_1 :raw 0x00\n      accessList:\n      - address: 0xFF00000000000000000000000000000000000101\n        storageKeys:\n        - 0x0000\n\n\n    # DIFF_KEY\n    - data: :label addrs_1_keys_1 :raw 0x00\n      accessList:\n      - address: 0xFF00000000000000000000000000000000000101\n        storageKeys:\n        - 0xFFFFFFFFFFFFFFFFFFFFFFFFF\n\n\n    # One address, two storage keys\n    # ONE_TWO\n    - data: :label addrs_1_keys_2 :raw 0x00\n      accessList:\n      - address: 0x0000000000000000000000000000000000000101\n        storageKeys:\n        - 0x0000\n        - 0x0001\n\n\n    # Two addresses, two storage keys\n    # TWO_TWO\n    - data: :label addrs_2_keys_2 :raw 0x00\n      accessList:\n      - address: 0x0000000000000000000000000000000000000101\n        storageKeys:\n        - 0x0000\n      - address: 0x0000000000000000000000000000000000000102\n        storageKeys:\n        - 0x0001\n\n\n\n      # TWO_KEYS_THEN_ZERO\n#      - data: :label addrs_2_keys_2 :raw 0x00\n#        accessList:\n#        - address: 0x0000000000000000000000000000000000000101\n#          storageKeys:\n#          - 0x0000\n#          - 0x0001\n#        - address: 0x0000000000000000000000000000000000000102\n#          storageKeys: []\n\n\n\n\n\n    # It is the responsibility of the transaction sender to avoid duplicates\n    # The cost of the transaction is not affected by the fact it could have\n    # been shorter\n\n    # Duplicate address, different storage keys\n    # DUP_ADDR\n    - data: :label addrs_2_keys_2 :raw 0x00 \n      accessList:\n      - address: 0x0000000000000000000000000000000000000101\n        storageKeys:\n        - 0x0000\n      - address: 0x0000000000000000000000000000000000000101\n        storageKeys:\n        - 0x0001\n\n    # Duplicate address and storage key\n    # DUP_ADDR_DUP_KEY\n    - data: :label addrs_2_keys_2 :raw 0x00\n      accessList:\n      - address: 0x0000000000000000000000000000000000000101\n        storageKeys:\n        - 0x0000\n      - address: 0x0000000000000000000000000000000000000101\n        storageKeys:\n        - 0x0000\n\n    # Duplicate storage key\n    # DUP_KEY\n    - data: :label addrs_1_keys_2 :raw 0x00   \n      accessList:\n      - address: 0x0000000000000000000000000000000000000101\n        storageKeys:\n        - 0x0000\n        - 0x0000\n\n\n    # A large access list\n    # LARGE\n    - data: :label addrs_10_keys_25 :raw 0x00   \n      accessList:\n      - address: 0x0000000000000000000000000000000000000100\n        storageKeys:\n        - 0x0000\n        - 0x0010\n        - 0xFFFFFFFFFFFFFFF\n      - address: 0x0000000000000000000000000000000000000101\n        storageKeys:\n        - 0x0000\n        - 0x0010\n      - address: 0x0000000000000000000000000000000000000102\n        storageKeys:\n        - 0x0000\n        - 0x0010\n        - 0xFFFFFFFFFFFFFFF\n      - address: 0x0000000000000000000000000000000000000103\n        storageKeys:\n        - 0x0000\n        - 0x0010\n      - address: 0x0000000000000000000000000000000000000104\n        storageKeys:\n        - 0x0000\n        - 0x0010\n        - 0xFFFFFFFFFFFFFFF\n      - address: 0x0000000000000000000000000000000000000105\n        storageKeys:\n        - 0x0000\n        - 0x0010\n        - 0x1111\n        - 0x2222\n        - 0x3333\n      - address: 0x0000000000000000000000000000000000000106\n        storageKeys: []\n      - address: 0x0000000000000000000000000000000000000107\n        storageKeys:\n        - 0x0000\n        - 0x0010\n      - address: 0x0000000000000000000000000000000000000108\n        storageKeys:\n        - 0x0000\n        - 0x0010\n        - 0xFFFFFFFFFFFFFFF\n      - address: 0x0000000000000000000000000000000000000109\n        storageKeys:\n        - 0x0000\n        - 0x0010\n\n\n\n    gasLimit:\n    - '400000'\n    gasPrice: 10\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>\n    value:\n    - '100000'\n\n\n\n\n\n\n  expect:\n\n\n  - indexes:\n      # NO_LIST\n      # EMPTY_LIST\n      data: \n      - :label type0\n      - :label addrs_0_keys_0\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \"Cancun\"\n    result:\n      <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n        balance: 100000000\n        # Without an access list the cost of the transaction is 121004\n        #\n        # We add that to the initial balance so we can count down from\n        # a nice round number. It doesn't matter if the transaction is old\n        # style (type 0), or if it simply doesn't have entries in the access\n        # list\n  - indexes:\n      # NO_LIST\n      # EMPTY_LIST\n      data: \n      - :label type0\n      - :label addrs_0_keys_0\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Prague\"\n    result:\n      <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n        balance: 99999940\n\n\n  # An access list with one address and no keys in it\n  # It costs 2400 per address\n  # ONE_ZERO\n  - indexes:\n      data: :label addrs_1_keys_0\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n        balance: 99976000\n\n\n  # An access list with one address and one storage key in it\n  # It costs 4300, 2400 for the address and 1900 for the key\n  # ONE_ONE\n  # DIFF_ADDR\n  # DIFF_KEY\n  - indexes:\n      data: :label addrs_1_keys_1\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n        balance: 99957000\n\n\n\n  # An access list with one address and two storage keys in it\n  # It costs 6200, 2400 for the address and 2*1900 for the keys\n  #\n  # Another test checks what happens when the two keys are the same,\n  # it does not matter - access lists are not checked for duplicates,\n  # so you pay for each entry, needed or not.\n  # ONE_TWO\n  # DUP_KEY\n  - indexes:\n      data: :label addrs_1_keys_2\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n        balance: 99938000\n       \n\n\n  # An access list with two addresses and two storage keys in it\n  # It costs 8600, 2400*2 for the addresses and 2*1900 for the keys\n  # \n  # Another test checks what happens when the two addresses are the same,\n  # it does not matter - access lists are not checked for duplicates,\n  # so you pay for each entry, needed or not.\n  # TWO_TWO\n  # DUP_ADDR\n  # DUP_ADDR_DUP_KEY\n  - indexes:\n      data: :label addrs_2_keys_2\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n        balance: 99914000\n       \n\n\n  # A big list of ten addresses and twenty five keys. \n  # The cost is still 2400 per address and 1900 per key\n  # LARGE\n  - indexes:\n      data: :label addrs_10_keys_25\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n        balance: 99285000\n"
  },
  {
    "path": "tests/static/state_tests/stEIP2930/variedContextFiller.yml",
    "content": "variedContext:\n\n  # EIP2930 in different contexts\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '0xFF112233445566'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n\n  pre:\n    # Use delegatecall to C057, to check that the cost is lower when the caller\n    # account is the one in the access list\n    #\n    0000000000000000000000000000000000001000:\n      balance: '1000000000000000000'\n      code: |\n       {\n          ; DELEGATE_VALID   DELEGATE_INVALID\n\n          (delegatecall (gas) 0xC057 0 0 0 0)\n       }\n      nonce: '0'\n      storage: {}\n\n\n    # Use call to C057, to check that the cost is lower when the callee\n    # account is the one in the access list\n    0000000000000000000000000000000000001001:\n      balance: '1000000000000000000'\n      code: |\n       {\n          ; CALL_VALID    CALL_INVALID\n          (call (gas) 0xC057 0 0 0 0 0)\n       }\n      nonce: '0'\n      storage: {}\n\n\n    # Use callcode to C057, to check that the cost is lower when the caller\n    # account is the one in the access list\n    0000000000000000000000000000000000001002:\n      balance: '1000000000000000000'\n      code: |\n       {\n          ; CALLCODE_VALID       CALLCODE_INVALID\n          (callcode (gas) 0xC057 0 0 0 0 0)\n       }\n      nonce: '0'\n      storage: {}\n\n\n    # Write to @@0, to verify the write cost is correct\n    # Then read 0x60A7, to verify the read cost is correct\n    000000000000000000000000000000000000C057:\n      balance: '1000000000000000000'\n      code: |\n       {\n          ; 0xC057: DELEGATE_VALID DELEGATE_INVALID\n          ;         CALL_INVALID CALL_VALID\n          ;         CALLCODE_VALID CALLCODE_INVALID\n\n\n        ; Write to [[0]], and see how much gas that cost. It should\n        ; cost more when it is not declared storage\n          [0]   (gas)\n         [[0]]  0x02\n          [0]   (- @0 (gas) 17)\n         [[1]] @0\n\n        ; The 17 is the cost of the extra opcodes:\n        ; PUSH1 0x00, MSTORE\n        ; PUSH1 0x02, PUSH1 0x00, (and then comes the SSTORE we are measuring)\n        ; GAS\n\n        ; Read [[0x60A7]], and see how much gas that cost. It should\n        ; cost more when it is not declared storage\n          [0]   (gas)\n         [0x20] @@0x60A7\n          [0]   (- @0 (gas) 16)\n         [[2]] @0\n\n        ; The 16 is the cost of the extra opcodes\n       }\n      nonce: '0'\n      storage:\n         0x60A7: 0xDEAD\n\n\n\n    # Use staticcall to EAD0C057, to check that the cost is lower when the callee\n    # account is the one in the access list\n    0000000000000000000000000000000000001003:\n      balance: '1000000000000000000'\n      code: |\n       {\n          ; STATICCALL_VALID  STATICCALL_INVALID\n\n          ; Need to store the result here, because static call is, well, static\n          (staticcall (gas) 0xEAD0C057 0 0 0 0x20)\n          [[0]] @0\n       }\n      nonce: '0'\n      storage: {}\n\n\n\n\n    # Read 0x60A7, to verify the read cost is correct\n    # Because this is STATICCALL, return the value\n    00000000000000000000000000000000EAD0C057:\n      balance: '1000000000000000000'\n      code: |\n       {\n        ;   STATICCALL_VALID  STATICCALL_INVALID\n\n\n        ; Read [[0x60A7]], and see how much gas that cost. It should\n        ; cost more when it is not declared storage\n          [0]   (gas)\n        [0x20] @@0x60A7\n          [0]   (- @0 (gas) 19)\n        ; The 19 is the cost of the extra opcodes\n\n        (return 0x00 0x20) ; a.k.a. @0\n       }\n      nonce: '0'\n      storage:\n         0x60A7: 0xDEAD\n\n\n\n    # CALLed, read and writes storage, and then REVERTs\n    # (the call is from 0xCCC...CCC)\n    0000000000000000000000000000000000001010:\n      balance: '1000000000000000000'\n      code: |\n       {\n        ;   CALL_REVERT_VALID     CALL_REVERT_INVALID\n\n        ; Write to [[0]], and see how much gas that cost. It should\n        ; cost more when it is not declared storage\n          [0]   (gas)\n         [[0]]  0x02\n          [0]   (- @0 (gas) 17)\n\n        ; The 17 is the cost of the extra opcodes:\n        ; PUSH1 0x00, MSTORE\n        ; PUSH1 0x02, PUSH1 0x00, (and then comes the SSTORE we are measuring)\n        ; GAS\n\n        ; Read [[0x60A7]], and see how much gas that cost. It should\n        ; cost more when it is not declared storage\n         [0x20] (gas)\n         [0x40] @@0x60A7\n         [0x20] (- @0x20 (gas) 26)\n\n        ; The 29 is the cost of the extra opcodes\n\n        ; Send the results the only way we can\n\n        (revert 0 0x40)\n       }\n      nonce: '0'\n      storage:\n        0x60A7: 0xBEEF\n\n\n\n    # Call an contract that writes to storage and then commits suicide\n    0000000000000000000000000000000000001011:\n      balance: '1000000000000000000'\n      code: |\n       {\n          ; CALL_WRITE_SUICIDE_VALID      CALL_WRITE_SUICIDE_INVALID\n          [0] (gas)\n          (call (gas) 0xDEAD0111 0 0 0 0 0)\n          [[0]] (- @0 (gas) 0x7fe8)\n       }\n      nonce: '0'\n      storage: {}\n\n\n    # Write to storage and then commit suicide\n    00000000000000000000000000000000DEAD0111:\n      balance: '1000000000000000000'\n      code: |\n       {\n          ; CALL_WRITE_SUICIDE_VALID      CALL_WRITE_SUICIDE_INVALID\n          [[0]] 0xDEAD\n\n          (selfdestruct 0)\n       }\n      nonce: '0'\n      storage: {}\n\n\n\n    # Call an contract that reads storage and then commits suicide\n    0000000000000000000000000000000000001012:\n      balance: '1000000000000000000'\n      code: |\n       {\n          ; CALL_READ_SUICIDE_VALID      CALL_READ_SUICIDE_INVALID\n          [0] (gas)\n          (call (gas) 0xDEAD0112 0 0 0 0 0)\n          [[0]] (- @0 (gas) 0x7fe8)\n       }\n      nonce: '0'\n      storage: {}\n\n\n    # Read storage and then commit suicide\n    00000000000000000000000000000000DEAD0112:\n      balance: '1000000000000000000'\n      code: |\n       {\n          ; CALL_READ_SUICIDE_VALID      CALL_READ_SUICIDE_INVALID\n          @@0\n\n          (selfdestruct 0)\n       }\n      nonce: '0'\n      storage:\n        0x00: 0xDEAD0060A7\n\n\n\n    # Do a static call, see if it fails on the write using what it returns\n    0000000000000000000000000000000000001013:\n      balance: '1000000000000000000'\n      code: |\n       {  ; STATIC_WRITE_VALID     STATIC_WRITE_INVALID\n\n          [0x00] 0x0BAD\n\n          ; If the call is successful @0 becomes 0x600D\n          (staticcall (gas) 0xF113 0 0 0 0x20)\n\n          [[0]] @0x00\n       }\n      nonce: '0'\n      storage:\n        0x00: 0x60A7\n\n\n    # To be staticcall-ed and attempt to write\n    000000000000000000000000000000000000F113:\n      balance: '1000000000000000000'\n      code: |\n       {  ; STATIC_WRITE_VALID     STATIC_WRITE_INVALID\n          [[0]] 0xDEAD60A7\n\n          ; If we get here, GOOD\n          [0] 0x600D\n          (return 0 0x20)\n       }\n      nonce: '0'\n      storage: {}\n\n\n\n    # Check an SSTORE that only happens when the access list is valid\n    # (otherwise OOG)\n    0000000000000000000000000000000000001014:\n      balance: '1000000000000000000'\n      code: |\n       {  ; WRITE_INVALID_OOG    WRITE_VALID_NO_OOG\n          (call 0x0B65 0xF114 0 0 0 0 0x20)\n       }\n      nonce: '0'\n      storage: {}\n\n\n    # Check an SSTORE that only happens when the access list is valid\n    # (otherwise OOG)\n    000000000000000000000000000000000000F114:\n      balance: '1000000000000000000'\n      code: |\n       {  ; WRITE_INVALID_OOG    WRITE_VALID_NO_OOG\n\n         [[0]] 0x600D\n       }\n      nonce: '0'\n      storage:\n        0x00: 0x0BAD\n\n\n\n    # Check an SSLOAD that only happens when the access list is valid\n    # (otherwise OOG)\n    0000000000000000000000000000000000001015:\n      balance: '1000000000000000000'\n      code: |\n       {  ; READ_INVALID_OOG    READ_VALID_NO_OOG\n          (call 0x1800 0xF115 0 0 0 0 0x20)\n       }\n      nonce: '0'\n      storage: {}\n\n\n    # Check an SLOAD that only happens when the access list is valid\n    # (otherwise OOG)\n    000000000000000000000000000000000000F115:\n      balance: '1000000000000000000'\n      code: |\n       {  ; READ_INVALID_OOG    READ_VALID_NO_OOG\n          [0] @@0x60A7\n          [[0]] 0x600D\n       }\n      nonce: '0'\n      storage:\n        0x0000: 0x0BAD\n        0x60A7: 0xDEAD\n\n\n    # Run recursively to see that it doesn't matter if we are doing the\n    # access one, two, or ten levels deep\n    0000000000000000000000000000000000001016:\n      balance: '1000000000000000000'\n      code: |\n       {  ; RECURSE_VALID   RECURSE_INVALID\n          (def 'NOP 0)\n\n          ; Read storage cell zero, so the first time we read it to won't\n          ; be added to the cost\n          @@0\n\n          ; Write to [[0xBEEF]], and see how much gas that cost. It should\n          ; cost more when it is not declared storage\n            [0]   (gas)\n           [[0xBEEF]]  0x02\n            [0]   (- @0 (gas) 17)\n\n          ; Read [[0x60A7]], and see how much gas that cost. It should\n          ; cost more when it is not declared storage\n          [0x20] (gas)\n          [0xA0] @@0x60A7\n          [0x20] (- @0x20 (gas) 35)\n\n          ; Write to a different cell each time\n          [0x40] (gas)\n          [[(+ 0xF000 @@0)]] 0xBEEF\n          [0x40] (- @0x40 (gas) 0x78)\n\n          ; Read from a different cell each time\n          [0x60] (gas)\n          @@(+ 0xF010 @@0)\n          [0x60] (- @0x60 (gas) 0x7a)\n\n\n          ; Write the costs of storage access\n          [[ (+ 0x100 @@0x00 ) ]] @0x00\n          [[ (+ 0x200 @@0x00 ) ]] @0x20\n          [[ (+ 0x300 @@0x00 ) ]] @0x40\n          [[ (+ 0x400 @@0x00 ) ]] @0x60\n\n\n          ; Recursion, call yourself unless @@0 == 0\n          (if (> @@0 0) {\n                [[0]] (- @@0 1)\n                (call (gas) 0x01016 0 0 0 0 0)\n             } NOP)\n       }\n      nonce: '0'\n      storage:\n        0x0000: 0x000F    # Max depth\n        0x60A7: 0xDEAD\n\n\n\n    # CREATE a contract, access storage in the constructor, see\n    # what happens\n    0000000000000000000000000000000000001020:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n          ; CREATE_VALID   CREATE_INVALID\n\n          ; Variables are 0x20 bytes (= 256 bits) apart, except for\n          ; code buffers that get 0x100 (256 bytes)\n          (def 'constructorCode   0x000)\n          (def 'contractCode      0x100)\n          (def 'contractLength    0x200)\n          (def 'constructorLength 0x220)\n          (def 'addr              0x240)\n\n          (def 'bufLength         0x100)\n\n          ; Create the contract code\n          [contractLength]\n            (lll\n              {\n                 [[0]] 0xFF\n              } contractCode\n            )     ; contract lll\n\n          ; Create the constructor code, which runs with the contract address\n          ; of the newly created contract. If we declare that address in the\n          ; transaction's access list we get the discount\n          [constructorLength]\n            (lll\n              {\n                 ; write to storage\n                 [0] (gas)\n                 [[0]] 0xFFFF\n                 [[1]] (- @0 (gas))\n\n                 ; Copy the contract ml code from code to memory\n                 (codecopy 0 bufLength bufLength)\n\n                 ; Return the contract information so it can be created\n                 (return 0x0 0x10)\n              } constructorCode\n            )     ; constructor lll\n\n            ; actually create the contract\n            [addr] (create 0 constructorCode (+ bufLength @contractLength))\n            [[1]] @addr\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    # CREATE2 a contract, access storage in the constructor, see\n    # what happens\n    0000000000000000000000000000000000001021:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n          ; CREATE2_VALID   CREATE2_INVALID\n\n          ; Variables are 0x20 bytes (= 256 bits) apart, except for\n          ; code buffers that get 0x100 (256 bytes)\n          (def 'constructorCode   0x000)\n          (def 'contractCode      0x100)\n          (def 'contractLength    0x200)\n          (def 'constructorLength 0x220)\n          (def 'addr              0x240)\n\n          (def 'bufLength         0x100)\n\n          ; Create the contract code\n          [contractLength]\n            (lll\n              {\n                 [[0]] 0xFF\n              } contractCode\n            )     ; contract lll\n\n          ; Create the constructor code, which runs with the contract address\n          ; of the newly created contract. If we declare that address in the\n          ; transaction's access list we get the discount\n          [constructorLength]\n            (lll\n              {\n                 ; write to storage\n                 [0] (gas)\n                 [[0]] 0xFFFF\n                 [[1]] (- @0 (gas))\n\n                 ; Copy the contract ml code from code to memory\n                 (codecopy 0 bufLength bufLength)\n\n                 ; Return the contract information so it can be created\n                 (return 0x0 0x10)\n              } constructorCode\n            )     ; constructor lll\n\n            ; actually create the contract\n            [addr] (create2 0 constructorCode (+ bufLength @contractLength) 0x5a17)\n            [[1]] @addr\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    # CREATE a contract, then CALL it. See how the this interacts with the\n    # access list.\n    0000000000000000000000000000000000001022:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n          ; CALL_CREATED_VALID     CALL_CREATED_INVALID\n\n\n          ; Variables are 0x20 bytes (= 256 bits) apart, except for\n          ; code buffers that get 0x100 (256 bytes)\n          (def 'constructorCode   0x000)\n          (def 'contractCode      0x100)\n          (def 'contractLength    0x200)\n          (def 'constructorLength 0x220)\n          (def 'addr              0x240)\n\n          (def 'bufLength         0x100)\n\n          ; Create the contract code\n          [contractLength]\n            (lll\n              {\n                 ; write to storage\n                 [0] (gas)\n                 [[0]] 0xFFFF\n                 [[1]] (- @0 (gas))\n              } contractCode\n            )     ; contract lll\n\n\n          ; Create the constructor code\n          [constructorLength]\n            (lll\n              {\n                 ; Copy the contract ml code from code to memory\n                 (codecopy 0 bufLength bufLength)\n\n                 ; Return the contract information so it can be created\n                 (return 0x0 0x80)     ; I just chose a sufficiently high number\n              } constructorCode\n            )     ; constructor lll\n\n            ; actually create the contract\n            [addr] (create 0 constructorCode (+ bufLength @contractLength))\n            (call (gas) @addr 0 0 0 0 0)\n            [[1]] @addr\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    # CREATE2 a contract, then CALL it. See the effects on the access list\n    0000000000000000000000000000000000001023:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n          ; CALL_CREATE2_ED_VALID     CALL_CREATE2_ED_INVALID\n\n\n          ; Variables are 0x20 bytes (= 256 bits) apart, except for\n          ; code buffers that get 0x100 (256 bytes)\n          (def 'constructorCode   0x000)\n          (def 'contractCode      0x100)\n          (def 'contractLength    0x200)\n          (def 'constructorLength 0x220)\n          (def 'addr              0x240)\n\n          (def 'bufLength         0x100)\n\n          ; Create the contract code\n          [contractLength]\n            (lll\n              {\n                 ; write to storage\n                 [0] (gas)\n                 [[0]] 0xFFFF\n                 [[1]] (- @0 (gas))\n              } contractCode\n            )     ; contract lll\n\n\n          ; Create the constructor code\n          [constructorLength]\n            (lll\n              {\n                 ; Copy the contract ml code from code to memory\n                 (codecopy 0 bufLength bufLength)\n\n                 ; Return the contract information so it can be created\n                 (return 0x0 0x80)     ; I just chose a sufficiently high number\n              } constructorCode\n            )     ; constructor lll\n\n            ; actually create the contract\n            [addr] (create2 0 constructorCode (+ bufLength @contractLength) 0x5a17)\n            (call (gas) @addr 0 0 0 0 0)\n            [[1]] @addr\n        }\n      nonce: '0'\n      storage: {}\n\n\n    # CREATE a contract, then CALL it. Both times access the same storage cell,\n    # see you are still only charged a high cost the first time\n    0000000000000000000000000000000000001024:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n          ; CREATE_&_CALL_VALID           CREATE_&_CALL_INVALID\n\n          ; Variables are 0x20 bytes (= 256 bits) apart, except for\n          ; code buffers that get 0x100 (256 bytes)\n          (def 'constructorCode   0x000)\n          (def 'contractCode      0x100)\n          (def 'contractLength    0x200)\n          (def 'constructorLength 0x220)\n          (def 'addr              0x240)\n\n          (def 'bufLength         0x100)\n\n          ; Create the contract code\n          [contractLength]\n            (lll\n              {\n                 ; write to storage\n                 [0] (gas)\n                 [[0]] 0xFFFF\n                 [[2]] (- @0 (gas))\n              } contractCode\n            )     ; contract lll\n\n\n          ; Create the constructor code\n          [constructorLength]\n            (lll\n              {\n                 ; write to storage\n                 [0] (gas)\n                 [[0]] 0xFFFF\n                 [[1]] (- @0 (gas))\n\n\n                 ; Copy the contract ml code from code to memory\n                 (codecopy 0 bufLength bufLength)\n\n                 ; Return the contract information so it can be created\n                 (return 0x0 0x80)     ; I just chose a sufficiently high number\n              } constructorCode\n            )     ; constructor lll\n\n            ; actually create the contract\n            [addr] (create 0 constructorCode (+ bufLength @contractLength))\n            (call (gas) @addr 0 0 0 0 0)\n            [[1]] @addr\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n\n    # CREATE2 a contract, then CALL it. Both times access the same storage cell,\n    # see you are still only charged a high cost the first time\n    0000000000000000000000000000000000001025:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n          ; CREATE2_&_CALL_VALID           CREATE2_&_CALL_INVALID\n\n          ; Variables are 0x20 bytes (= 256 bits) apart, except for\n          ; code buffers that get 0x100 (256 bytes)\n          (def 'constructorCode   0x000)\n          (def 'contractCode      0x100)\n          (def 'contractLength    0x200)\n          (def 'constructorLength 0x220)\n          (def 'addr              0x240)\n\n          (def 'bufLength         0x100)\n\n          ; Create the contract code\n          [contractLength]\n            (lll\n              {\n                 ; write to storage\n                 [0] (gas)\n                 [[0]] 0xFFFF\n                 [[2]] (- @0 (gas))\n              } contractCode\n            )     ; contract lll\n\n\n          ; Create the constructor code\n          [constructorLength]\n            (lll\n              {\n                 ; write to storage\n                 [0] (gas)\n                 [[0]] 0xFFFF\n                 [[1]] (- @0 (gas))\n\n\n                 ; Copy the contract ml code from code to memory\n                 (codecopy 0 bufLength bufLength)\n\n                 ; Return the contract information so it can be created\n                 (return 0x0 0x80)     ; I just chose a sufficiently high number\n              } constructorCode\n            )     ; constructor lll\n\n            ; actually create the contract\n            [addr] (create2 0 constructorCode (+ bufLength @contractLength) 0x5a17)\n            (call (gas) @addr 0 0 0 0 0)\n            [[1]] @addr\n        }\n      nonce: '0'\n      storage: {}\n\n\n    # Call a contract twice, see the high storage cost is only for\n    # the first time\n    0000000000000000000000000000000000001026:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n          ; CALL_TWICE_VALID     CALL_TWICE_INVALID\n          (call (gas) 0xF126 0 0 0 0 0)\n          (call (gas) 0xF126 0 0 0 0 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    000000000000000000000000000000000000F126:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n          ; CALL_TWICE_VALID     CALL_TWICE_INVALID\n          [0] (gas)\n          [[0x00]] 0x60A7\n          [0] (- @0 (gas))\n\n          ; If @@1 is empty, write to it. Otherwise, write to @@2\n          (if (= @@1 0) {[[1]] @0} {[[2]] @0})\n\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n\n\n\n    # Call different contracts depending on the parameter\n    cccccccccccccccccccccccccccccccccccccccc:\n      code: |\n        {\n            ; ccc...ccc  revert and suicide contract\n            (call (gas) (+ 0x1000 $4) 0 0 0 0 0x40)\n\n            ; Write the returned results, if any\n            [[0]] @0x00\n            [[1]] @0x20\n        }\n      nonce: '0'\n      storage: {}\n      balance: 0\n\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '1000000000000000000'\n      code: 0x\n      nonce: '0'\n      storage: {}\n\n\n  transaction:\n    data:\n    # DELEGATE_VALID\n    - data: :label delegateCallerInAccessList :abi f(uint) 0\n      accessList:\n      - address: 0x0000000000000000000000000000000000001000\n        storageKeys:\n        - 0x00\n        - 0x60A7\n\n    # DELEGATE_INVALID\n    - data: :label delegateCalleeInAccessList :abi f(uint) 0\n      accessList:\n      - address: 0x000000000000000000000000000000000000C057\n        storageKeys:\n        - 0x00\n        - 0x60A7\n\n\n    # CALLCODE_VALID\n    - data: :label callcodeCallerInAccessList :abi f(uint) 2\n      accessList:\n      - address: 0x0000000000000000000000000000000000001002\n        storageKeys:\n        - 0x00\n        - 0x60A7\n\n    # CALLCODE_INVALID\n    - data: :label callcodeCalleeInAccessList :abi f(uint) 2\n      accessList:\n      - address: 0x000000000000000000000000000000000000C057\n        storageKeys:\n        - 0x00\n        - 0x60A7\n\n\n\n    # CALL_INVALID\n    - data: :label callCallerInAccessList :abi f(uint) 1\n      accessList:\n      - address: 0x0000000000000000000000000000000000001001\n        storageKeys:\n        - 0x00\n        - 0x60A7\n\n    # CALL_VALID\n    - data: :label callCalleeInAccessList :abi f(uint) 1\n      accessList:\n      - address: 0x000000000000000000000000000000000000C057\n        storageKeys:\n        - 0x00\n        - 0x60A7\n\n\n    # STATICCALL_INVALID\n    - data: :label staticcallCallerInAccessList :abi f(uint) 3\n      accessList:\n      - address: 0x0000000000000000000000000000000000001003\n        storageKeys:\n        - 0x00\n        - 0x60A7\n\n    # STATICCALL_VALID\n    - data: :label staticcallCalleeInAccessList :abi f(uint) 3\n      accessList:\n      - address: 0x00000000000000000000000000000000EAD0C057\n        storageKeys:\n        - 0x00\n        - 0x60A7\n\n    # CALL_REVERT_VALID\n    - data: :label callRevertCalleeInAccessList :abi f(uint) 0x10\n      accessList:\n      - address: 0x0000000000000000000000000000000000001010\n        storageKeys:\n        - 0x00\n        - 0x60A7\n\n    # CALL_REVERT_INVALID\n    - data: :label callRevertCallerInAccessList :abi f(uint) 0x10\n      accessList:\n      - address: 0xcccccccccccccccccccccccccccccccccccccccc\n        storageKeys:\n        - 0x00\n        - 0x60A7\n\n\n    # CALL_WRITE_SUICIDE_VALID\n    - data: :label callWriteSuicideValid :abi f(uint) 0x11\n      accessList:\n      - address: 0x00000000000000000000000000000000DEAD0111\n        storageKeys:\n        - 0x00\n\n\n    # CALL_WRITE_SUICIDE_INVALID\n    - data: :label callWriteSuicideInvalid :abi f(uint) 0x11\n      accessList:\n      - address: 0x0000000000000000000000000000000000001011\n        storageKeys:\n        - 0x00\n\n\n\n    # CALL_READ_SUICIDE_VALID\n    - data: :label callReadSuicideValid :abi f(uint) 0x12\n      accessList:\n      - address: 0x00000000000000000000000000000000DEAD0112\n        storageKeys:\n        - 0x00\n\n\n    # CALL_READ_SUICIDE_INVALID\n    - data: :label callReadSuicideInvalid :abi f(uint) 0x12\n      accessList:\n      - address: 0x0000000000000000000000000000000000001012\n        storageKeys:\n        - 0x00\n\n\n    # STATIC_WRITE_INVALID\n    - data: :label staticWriteInvalid :abi f(uint) 0x13\n      accessList:\n      - address: 0x0000000000000000000000000000000000000000\n        storageKeys:\n        - 0x00\n\n\n    # STATIC_WRITE_VALID\n    - data: :label staticWriteValid :abi f(uint) 0x13\n      accessList:\n      - address: 0x000000000000000000000000000000000000F113\n        storageKeys:\n        - 0x00\n\n\n\n    # WRITE_VALID_NO_OOG\n    - data: :label writeValidGas :abi f(uint) 0x14\n      accessList:\n      - address: 0x000000000000000000000000000000000000F114\n        storageKeys:\n        - 0x00\n\n\n    # WRITE_INVALID_OOG\n    - data: :label writeInvalidOOG :abi f(uint) 0x14\n      accessList:\n      - address: 0x0000000000000000000000000000000000001014\n        storageKeys:\n        - 0x00\n\n\n    # READ_VALID_NO_OOG\n    - data: :label readValidGas :abi f(uint) 0x15\n      accessList:\n      - address: 0x000000000000000000000000000000000000F115\n        storageKeys:\n        - 0x60A7\n\n\n    # READ_INVALID_OOG\n    - data: :label readInvalidOOG :abi f(uint) 0x15\n      accessList:\n      - address: 0x0000000000000000000000000000000000001015\n        storageKeys:\n        - 0x60A7\n\n\n\n    # RECURSE_VALID\n    - data: :label recurseValid :abi f(uint) 0x16\n      accessList:\n      - address: 0x0000000000000000000000000000000000001016\n        storageKeys:\n        - 0x60A7     # Read one cell\n        - 0xBEEF     # Write once cell\n\n        # Write to 16 different cells\n        - 0xF000\n        - 0xF001\n        - 0xF002\n        - 0xF003\n        - 0xF004\n        - 0xF005\n        - 0xF006\n        - 0xF007\n        - 0xF008\n        - 0xF009\n        - 0xF00A\n        - 0xF00B\n        - 0xF00C\n        - 0xF00D\n        - 0xF00E\n        - 0xF00F\n\n        # Read from 16 different cells\n        - 0xF010\n        - 0xF011\n        - 0xF012\n        - 0xF013\n        - 0xF014\n        - 0xF015\n        - 0xF016\n        - 0xF017\n        - 0xF018\n        - 0xF019\n        - 0xF01A\n        - 0xF01B\n        - 0xF01C\n        - 0xF01D\n        - 0xF01E\n        - 0xF01F\n\n\n    # RECURSE_INVALID\n    - data: :label recurseInvalid :abi f(uint) 0x16\n      accessList:\n      - address: 0xF000000000000000000000000000000000000116\n        storageKeys:\n        - 0x60A7     # Read\n        - 0xBEEF     # Write\n\n\n\n    # CREATE_VALID\n    - data: :label createValid :abi f(uint) 0x20\n      accessList:\n      - address: 0xf342e57f24e0333f3af34af08fdbbe9c72cbd37c\n        storageKeys:\n        - 0x00\n\n\n    # CREATE_INVALID\n    - data: :label createInvalid :abi f(uint) 0x20\n      accessList:\n      - address: 0xf342e57f24e0333f3af34af08fdbbe9c72cbd37c\n        storageKeys:\n        - 0x01\n\n\n    # CREATE2_VALID\n    - data: :label create2Valid :abi f(uint) 0x21\n      accessList:\n      - address: 0xd82f21135ed7d7d833a9f2a0f1cf6c3da214b8e3\n        storageKeys:\n        - 0x00\n\n\n    # CREATE2_INVALID\n    - data: :label create2Invalid :abi f(uint) 0x21\n      accessList:\n      - address: 0xf342e57f24e0333f3af34af08fdbbe9c72cbd37c\n        storageKeys:\n        - 0x00\n\n\n    # CALL_CREATED_VALID\n    - data: :label callCreatedValid :abi f(uint) 0x22\n      accessList:\n      - address: 0x58fd03a2d731b2fb751e4a0f593d373ee77d39e6\n        storageKeys:\n        - 0x00\n\n\n    # CALL_CREATED_INVALID\n    - data: :label callCreatedInvalid :abi f(uint) 0x22\n      accessList:\n      - address: 0x58fd03a2d731b2fb751e4a0f593d373ee77d39e6\n        storageKeys:\n        - 0xFFFF\n\n\n    # CALL_CREATE2_ED_VALID\n    - data: :label callCreate2edValid :abi f(uint) 0x23\n      accessList:\n      - address: 0x530508498d2aa75d8e591612809fec3d37a45615\n        storageKeys:\n        - 0x00\n\n\n    # CALL_CREATE2_ED_INVALID\n    - data: :label callCreate2edInvalid :abi f(uint) 0x23\n      accessList:\n      - address: 0x58fd03a2d731b2fb751e4a0f593d373ee77d39e6\n        storageKeys:\n        - 0xFFFF\n\n\n    # CREATE_&_CALL_VALID\n    - data: :label createAndCallValid :abi f(uint) 0x24\n      accessList:\n      - address: 0xb76ab2d646c4df221edd345957d0a396a2ab1b6d\n        storageKeys:\n        - 0x00\n\n\n    # CREATE_&_CALL_INVALID\n    - data: :label createAndCallInvalid :abi f(uint) 0x24\n      accessList:\n      - address: 0x58fd03a2d731b2fb751e4a0f593d373ee77d39e6\n        storageKeys:\n        - 0xFFFF\n\n\n\n    # CREATE2_&_CALL_VALID\n    - data: :label create2AndCallValid :abi f(uint) 0x25\n      accessList:\n      - address: 0x83fbdae70258ac0fa837b701cc63cedf48d4b6bf\n        storageKeys:\n        - 0x00\n\n\n    # CREATE2_&_CALL_INVALID\n    - data: :label create2AndCallInvalid :abi f(uint) 0x25\n      accessList:\n      - address: 0x58fd03a2d731b2fb751e4a0f593d373ee77d39e6\n        storageKeys:\n        - 0xFFFF\n\n\n    # CALL_TWICE_VALID\n    - data: :label callTwiceValid :abi f(uint) 0x26\n      accessList:\n      - address: 0x000000000000000000000000000000000000F126\n        storageKeys:\n        - 0x00\n\n\n    # CALL_TWICE_InVALID\n    - data: :label callTwiceInvalid :abi f(uint) 0x26\n      accessList:\n      - address: 0x000000000000000000000000000000000000F126\n        storageKeys:\n        - 0x20\n\n\n\n\n\n\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: 45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\n    to: cccccccccccccccccccccccccccccccccccccccc\n\n    value:\n    - '100000'\n\n\n\n\n\n\n\n\n  expect:\n\n  # DELEGATE_VALID\n  - indexes:\n      data: :label delegateCallerInAccessList\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      0000000000000000000000000000000000001000:\n        storage:\n          0x00: 0x02\n          0x01: 0x4e23\n          0x02: 0x6B\n\n\n  # DELEGATE_INVALID\n  - indexes:\n      data: :label delegateCalleeInAccessList\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      0000000000000000000000000000000000001000:\n        storage:\n          0x00: 0x02\n          0x01: 0x5657\n          0x02: 0x83B\n\n\n  # CALLCODE_VALID\n  - indexes:\n      data: :label callcodeCallerInAccessList\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      0000000000000000000000000000000000001002:\n        storage:\n          0x00: 0x02\n          0x01: 0x4e23\n          0x02: 0x6B\n\n\n  # CALLCODE_INVALID\n  - indexes:\n      data: :label callcodeCalleeInAccessList\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      0000000000000000000000000000000000001002:\n        storage:\n          0x00: 0x02\n          0x01: 0x5657\n          0x02: 0x83B\n\n\n\n\n  # CALL_INVALID\n  - indexes:\n      data: :label callCallerInAccessList\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      000000000000000000000000000000000000C057:\n        storage:\n          0x00:   0x02\n          0x01:   0x5657\n          0x02:   0x83B\n          0x60A7: 0xDEAD\n\n  # CALL_VALID\n  - indexes:\n      data: :label callCalleeInAccessList\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      000000000000000000000000000000000000C057:\n        storage:\n          0x00:   0x02\n          0x01:   0x4e23\n          0x02:   0x6B\n          0x60A7: 0xDEAD\n\n\n\n\n  # STATICCALL_INVALID\n  - indexes:\n      data: :label staticcallCallerInAccessList\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      0000000000000000000000000000000000001003:\n        storage:\n          0x00: 0x083B\n\n\n  # STATICCALL_VALID\n  - indexes:\n      data: :label staticcallCalleeInAccessList\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      0000000000000000000000000000000000001003:\n        storage:\n          0x00:   0x6B\n\n\n  # CALL_REVERT_VALID\n  - indexes:\n      data: :label callRevertCalleeInAccessList\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC:\n        storage:\n          0x00:   0x4e23\n          0x01:   0x0064\n\n\n  # CALL_REVERT_INVALID\n  - indexes:\n      data: :label callRevertCallerInAccessList\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC:\n        storage:\n          0x00:   0x5657\n          0x01:   0x0834\n\n\n\n  # CALL_WRITE_SUICIDE_VALID\n  - indexes:\n      data: :label callWriteSuicideValid\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      0000000000000000000000000000000000001011:\n        storage:\n          0x00: 0x4E21\n\n\n\n  # CALL_WRITE_SUICIDE_INVALID\n  #\n  # The difference here is 4600 rather than 2100 because we are also\n  # looking at the balance of the contract (eip2929)\n  - indexes:\n      data: :label callWriteSuicideInvalid\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      0000000000000000000000000000000000001011:\n        storage:\n          0x00: 0x6019\n\n\n\n  # CALL_READ_SUICIDE_VALID\n  - indexes:\n      data: :label callReadSuicideValid\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      0000000000000000000000000000000000001012:\n        storage:\n          0x00: 0x64\n\n\n\n  # CALL_READ_SUICIDE_INVALID\n  #\n  # The difference here is 4500 rather than 2000 because we are also\n  # looking at the balance of the contract (eip2929)\n  - indexes:\n      data: :label callReadSuicideInvalid\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      0000000000000000000000000000000000001012:\n        storage:\n          0x00: 0x11F8\n\n\n\n  # STATIC_WRITE_INVALID\n  # STATIC_WRITE_VALID\n  - indexes:\n      data:\n      - :label staticWriteInvalid\n      - :label staticWriteValid\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      0000000000000000000000000000000000001013:\n        storage:\n          0x00: 0x0BAD\n\n\n\n\n\n\n  # WRITE_VALID_NO_OOG\n  - indexes:\n      data:\n      - :label writeValidGas\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      000000000000000000000000000000000000F114:\n        storage:\n          0x00: 0x600D\n\n\n\n  # WRITE_INVALID_OOG\n  - indexes:\n      data:\n      - :label writeInvalidOOG\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      000000000000000000000000000000000000F114:\n        storage:\n          0x00: 0x0BAD\n\n\n\n\n\n\n  # READ_VALID_NO_OOG\n  - indexes:\n      data:\n      - :label readValidGas\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      000000000000000000000000000000000000F115:\n        storage:\n          0x0000: 0x600D\n          0x60A7: 0xDEAD\n\n\n  # READ_INVALID_OOG\n  - indexes:\n      data:\n      - :label readInvalidOOG\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      000000000000000000000000000000000000F115:\n        storage:\n          0x0000: 0x0BAD\n          0x60A7: 0xDEAD\n\n\n\n\n  # RECURSE_VALID\n  - indexes:\n      data:\n      - :label recurseValid\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      0000000000000000000000000000000000001016:\n        storage:\n          0x0000: 0x0000\n\n          # Write to the same cell. The cost is only applied once\n          0x0100: 0x0067\n          0x0101: 0x0067\n          0x0102: 0x0067\n          0x0103: 0x0067\n          0x0104: 0x0067\n          0x0105: 0x0067\n          0x0106: 0x0067\n          0x0107: 0x0067\n          0x0108: 0x0067\n          0x0109: 0x0067\n          0x010A: 0x0067\n          0x010B: 0x0067\n          0x010C: 0x0067\n          0x010D: 0x0067\n          0x010E: 0x0067\n          0x010F: 0x4E23\n\n          # Read from the same cell.\n          # No extra cost if it is in the access list\n          0x0200: 0x0064\n          0x0201: 0x0064\n          0x0202: 0x0064\n          0x0203: 0x0064\n          0x0204: 0x0064\n          0x0205: 0x0064\n          0x0206: 0x0064\n          0x0207: 0x0064\n          0x0208: 0x0064\n          0x0209: 0x0064\n          0x020A: 0x0064\n          0x020B: 0x0064\n          0x020C: 0x0064\n          0x020D: 0x0064\n          0x020E: 0x0064\n          0x020F: 0x0064\n\n          # Write to a different cell each time\n          0x0300: 0x4E23\n          0x0301: 0x4E23\n          0x0302: 0x4E23\n          0x0303: 0x4E23\n          0x0304: 0x4E23\n          0x0305: 0x4E23\n          0x0306: 0x4E23\n          0x0307: 0x4E23\n          0x0308: 0x4E23\n          0x0309: 0x4E23\n          0x030A: 0x4E23\n          0x030B: 0x4E23\n          0x030C: 0x4E23\n          0x030D: 0x4E23\n          0x030E: 0x4E23\n          0x030F: 0x4E23\n\n          # Read from a different cell each time\n          0x0400: 0x0064\n          0x0401: 0x0064\n          0x0402: 0x0064\n          0x0403: 0x0064\n          0x0404: 0x0064\n          0x0405: 0x0064\n          0x0406: 0x0064\n          0x0407: 0x0064\n          0x0408: 0x0064\n          0x0409: 0x0064\n          0x040A: 0x0064\n          0x040B: 0x0064\n          0x040C: 0x0064\n          0x040D: 0x0064\n          0x040E: 0x0064\n          0x040F: 0x0064\n\n\n          0xBEEF: 0x0002\n          0x60A7: 0xDEAD\n\n          0xF000: 0xBEEF\n          0xF001: 0xBEEF\n          0xF002: 0xBEEF\n          0xF003: 0xBEEF\n          0xF004: 0xBEEF\n          0xF005: 0xBEEF\n          0xF006: 0xBEEF\n          0xF007: 0xBEEF\n          0xF008: 0xBEEF\n          0xF009: 0xBEEF\n          0xF00A: 0xBEEF\n          0xF00B: 0xBEEF\n          0xF00C: 0xBEEF\n          0xF00D: 0xBEEF\n          0xF00E: 0xBEEF\n          0xF00F: 0xBEEF\n\n\n\n\n\n  # RECURSE_INVALID\n  - indexes:\n      data:\n      - :label recurseInvalid\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      0000000000000000000000000000000000001016:\n        storage:\n          0x0000: 0x0000\n\n          # Write to the same cell. The cost is only applied once\n          0x0100: 0x0067\n          0x0101: 0x0067\n          0x0102: 0x0067\n          0x0103: 0x0067\n          0x0104: 0x0067\n          0x0105: 0x0067\n          0x0106: 0x0067\n          0x0107: 0x0067\n          0x0108: 0x0067\n          0x0109: 0x0067\n          0x010A: 0x0067\n          0x010B: 0x0067\n          0x010C: 0x0067\n          0x010D: 0x0067\n          0x010E: 0x0067\n          0x010F: 0x5657\n\n          # Read from the same cell.\n          # No extra cost if it is in the access list\n          0x0200: 0x0064\n          0x0201: 0x0064\n          0x0202: 0x0064\n          0x0203: 0x0064\n          0x0204: 0x0064\n          0x0205: 0x0064\n          0x0206: 0x0064\n          0x0207: 0x0064\n          0x0208: 0x0064\n          0x0209: 0x0064\n          0x020A: 0x0064\n          0x020B: 0x0064\n          0x020C: 0x0064\n          0x020D: 0x0064\n          0x020E: 0x0064\n          0x020F: 0x0834\n\n          # Write to a different cell each time\n          0x0300: 0x5657\n          0x0301: 0x5657\n          0x0302: 0x5657\n          0x0303: 0x5657\n          0x0304: 0x5657\n          0x0305: 0x5657\n          0x0306: 0x5657\n          0x0307: 0x5657\n          0x0308: 0x5657\n          0x0309: 0x5657\n          0x030A: 0x5657\n          0x030B: 0x5657\n          0x030C: 0x5657\n          0x030D: 0x5657\n          0x030E: 0x5657\n          0x030F: 0x5657\n\n\n\n          # Read from a different cell each time\n          0x0400: 0x0834\n          0x0401: 0x0834\n          0x0402: 0x0834\n          0x0403: 0x0834\n          0x0404: 0x0834\n          0x0405: 0x0834\n          0x0406: 0x0834\n          0x0407: 0x0834\n          0x0408: 0x0834\n          0x0409: 0x0834\n          0x040A: 0x0834\n          0x040B: 0x0834\n          0x040C: 0x0834\n          0x040D: 0x0834\n          0x040E: 0x0834\n          0x040F: 0x0834\n\n\n          0xBEEF: 0x0002\n          0x60A7: 0xDEAD\n\n          0xF000: 0xBEEF\n          0xF001: 0xBEEF\n          0xF002: 0xBEEF\n          0xF003: 0xBEEF\n          0xF004: 0xBEEF\n          0xF005: 0xBEEF\n          0xF006: 0xBEEF\n          0xF007: 0xBEEF\n          0xF008: 0xBEEF\n          0xF009: 0xBEEF\n          0xF00A: 0xBEEF\n          0xF00B: 0xBEEF\n          0xF00C: 0xBEEF\n          0xF00D: 0xBEEF\n          0xF00E: 0xBEEF\n          0xF00F: 0xBEEF\n\n\n  # CREATE_VALID\n  - indexes:\n      data: :label createValid\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      f342e57f24e0333f3af34af08fdbbe9c72cbd37c:\n        storage:\n          0x00: 0xFFFF\n          0x01: 0x4e31\n\n\n\n  # CREATE_INVALID\n  - indexes:\n      data: :label createInvalid\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      f342e57f24e0333f3af34af08fdbbe9c72cbd37c:\n        storage:\n          0x00: 0xFFFF\n          0x01: 0x5665\n\n\n\n\n  # CREATE2_VALID\n  - indexes:\n      data: :label create2Valid\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      d82f21135ed7d7d833a9f2a0f1cf6c3da214b8e3:\n        storage:\n          0x00: 0xFFFF\n          0x01: 0x4e31\n\n  # CREATE2_INVALID\n  - indexes:\n      data: :label create2Invalid\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      d82f21135ed7d7d833a9f2a0f1cf6c3da214b8e3:\n        storage:\n          0x00: 0xFFFF\n          0x01: 0x5665\n\n\n\n  # CALL_CREATED_VALID\n  - indexes:\n      data: :label callCreatedValid\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      0x58fd03a2d731b2fb751e4a0f593d373ee77d39e6:\n        storage:\n          0x00: 0xFFFF\n          0x01: 0x4e31\n\n\n  # CALL_CREATED_INVALID\n  - indexes:\n      data: :label callCreatedInvalid\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      0x58fd03a2d731b2fb751e4a0f593d373ee77d39e6:\n        storage:\n          0x00: 0xFFFF\n          0x01: 0x5665\n\n\n\n  # CALL_CREATE2_ED_VALID\n  - indexes:\n      data: :label callCreate2edValid\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      0x530508498d2aa75d8e591612809fec3d37a45615:\n        storage:\n          0x00: 0xFFFF\n          0x01: 0x4e31\n\n\n  # CALL_CREATE2_ED_INVALID\n  - indexes:\n      data: :label callCreate2edInvalid\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      0x530508498d2aa75d8e591612809fec3d37a45615:\n        storage:\n          0x00: 0xFFFF\n          0x01: 0x5665\n\n\n\n  # CREATE_&_CALL_VALID\n  - indexes:\n      data: :label createAndCallValid\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      0xb76ab2d646c4df221edd345957d0a396a2ab1b6d:\n        storage:\n          0x00: 0xFFFF\n          0x01: 0x4e31\n          0x02: 0x0075\n\n\n  # CREATE_&_CALL_INVALID\n  - indexes:\n      data: :label createAndCallInvalid\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      0xb76ab2d646c4df221edd345957d0a396a2ab1b6d:\n        storage:\n          0x00: 0xFFFF\n          0x01: 0x5665\n          0x02: 0x0075\n\n\n\n  # CREATE2_&_CALL_VALID\n  - indexes:\n      data: :label create2AndCallValid\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      0x83fbdae70258ac0fa837b701cc63cedf48d4b6bf:\n        storage:\n          0x00: 0xFFFF\n          0x01: 0x4e31\n          0x02: 0x0075\n\n\n  # CREATE2_&_CALL_INVALID\n  - indexes:\n      data: :label create2AndCallInvalid\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      0x83fbdae70258ac0fa837b701cc63cedf48d4b6bf:\n        storage:\n          0x00: 0xFFFF\n          0x01: 0x5665\n          0x02: 0x0075\n\n\n\n  # CALL_TWICE_VALID\n  - indexes:\n      data: :label callTwiceValid\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      0x000000000000000000000000000000000000F126:\n        storage:\n          0x00: 0x60A7\n          0x01: 0x4e31\n          0x02: 0x0075\n\n\n\n\n  # CALL_TWICE_INVALID\n  - indexes:\n      data: :label callTwiceInvalid\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      0x000000000000000000000000000000000000F126:\n        storage:\n          0x00: 0x60A7\n          0x01: 0x5665\n          0x02: 0x0075\n"
  },
  {
    "path": "tests/static/state_tests/stEIP3607/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stEIP3607/initCollidingWithNonEmptyAccountFiller.yml",
    "content": "# Account attempts to send tx to create a contract which collides with a non-empty address\n\ninitCollidingWithNonEmptyAccount:\n  _info:\n    comment: Account attempts to send tx to create a contract on a non-empty address\n\n  env:\n    # A blockinfo section (obsolete). Do not change. (only coinbase and gasLimit could be changed)\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 0xFF112233445566\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  # We prepare a state where the init account already has code in it.\n  pre:\n     # Even if this account is not involved in transaction, it will be miner-reward touched upon generation of a state test\n    2adc25665018aa1fe0e6bc666dac8fc2697ff9ba:\n      balance: '0'\n      nonce: '1'\n      code: ''\n      storage: {}\n\n    # Account with empty code, but inits into a non-empty account\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '1000000000000000000'\n      nonce: '0'\n      code: ''\n      storage: {}\n\n    # Init'd address keccak256(rlp(a94f5374fce5edbc8e2a8697c15331677e6ebf0b, 0))\n    6295ee1b4f6dd65047762f924ecd367c17eabf8f:\n      balance: '1000000000000000000'\n      nonce: '0'\n      code: ':raw 0x6000600155'\n      storage: {}\n\n    # Address we will be delegate calling to\n    d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0:\n      balance: '0'\n      nonce: '0'\n      code: ':raw 0x00'\n      storage: {}\n\n  # Transaction originating from account, init address collides with existing code\n  transaction:\n    data:\n    - ':yul berlin\n       {\n         return (0, 32)\n       }'\n    - ':yul berlin\n       {\n         sstore(0, 1)\n         pop(call(gas(), 0xd0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0, 10000, 0, 0, 0, 0))\n       }'\n    - ':yul berlin\n       {\n         sstore(0, 1)\n         pop(create2(10000, 0, 32, 0))\n       }'\n    - ':yul berlin\n        {\n         sstore(0, 1)\n         pop(create(10000, 0, 32))\n       }'\n    - ':yul berlin\n       {\n         sstore(0, 1)\n         pop(delegatecall(gas(), 0xd0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0, 0, 0, 0, 0))\n       }'\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    to: ''\n    value:\n    - '100000'\n    # secretKey is a privKey of a94f5374fce5edbc8e2a8697c15331677e6ebf0b\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int 0\n        value: !!int -1\n\n      network:\n        - '>=Cancun'\n      \n      result:\n        6295ee1b4f6dd65047762f924ecd367c17eabf8f:\n          balance: '1000000000000000000'\n          nonce: '0'\n          code: '0x6000600155'\n          storage: {}\n        \n        d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0:\n          balance: '0'\n        \n        05cd8493115c3299094a269e839e2f5f25691785:\n          shouldnotexist: 1\n        \n        a42676447b7cedfa5fde894d1d3df24aab362701:\n          shouldnotexist: 1\n        \n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: '1'\n"
  },
  {
    "path": "tests/static/state_tests/stEIP3607/transactionCollidingWithNonEmptyAccount_callsFiller.yml",
    "content": "# Account with non-empty code attempts to send tx to call a contract\n\ntransactionCollidingWithNonEmptyAccount_calls:\n  _info:\n    comment: Account with non-empty code attempts to send tx to call a contract\n\n  env:\n    # A blockinfo section (obsolete). Do not change. (only coinbase and gasLimit could be changed)\n    currentCoinbase: <eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\n    currentDifficulty: 0x20000\n    currentGasLimit: 0xFF112233445566\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  # We prepare a state where the sending account already has code in it.\n  pre:\n     # Even if this account is not involved in transaction, it will be miner-reward touched upon generation of a state test\n    <eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>:\n      balance: '0'\n      nonce: '1'\n      code: ''\n      storage: {}\n\n    # Account containing code from which we will try to send a transaction from\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      nonce: '0'\n      code: ':raw 0x6000600155'\n      storage: {}\n\n    # Account receiving the funds from the account with code\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: '0'\n      nonce: '0'\n      code: ':raw 0x6000600155'\n      storage: {}\n\n  # Transaction originating from account with code\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '100000'\n    # secretKey is a privKey of <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n\n\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int 0\n        value: !!int -1\n\n      network:\n        - '>=Cancun'\n      \n      # Transaction should be rejected since it is being sent by a EOA with code in it.\n      expectException:\n        '>=Frontier': 'TransactionException.SENDER_NOT_EOA'\n      \n      result: {}  # No point checking the result when no transaction happened\n"
  },
  {
    "path": "tests/static/state_tests/stEIP3607/transactionCollidingWithNonEmptyAccount_callsItselfFiller.yml",
    "content": "# Account with non-empty code attempts to send tx to call itself\n\ntransactionCollidingWithNonEmptyAccount_callsItself:\n  _info:\n    comment: Account with non-empty code attempts to send tx to call itself\n\n  env:\n    # A blockinfo section (obsolete). Do not change. (only coinbase and gasLimit could be changed)\n    currentCoinbase: <eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\n    currentDifficulty: 0x20000\n    currentGasLimit: 0xFF112233445566\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  # We prepare a state where the sending account already has code in it.\n  pre:\n     # Even if this account is not involved in transaction, it will be miner-reward touched upon generation of a state test\n    <eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>:\n      balance: '0'\n      nonce: '1'\n      code: ''\n      storage: {}\n\n    # Account containing code from which we will try to send a transaction from\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      nonce: '0'\n      code: ':raw 0x6000600155'\n      storage: {}\n\n  # Transaction originating from account with code\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    to: <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\n    value:\n    - '100000'\n    # secretKey is a privKey of <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n\n\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int 0\n        value: !!int -1\n\n      network:\n        - '>=Cancun'\n      \n      # Transaction should be rejected since it is being sent by a EOA with code in it.\n      expectException:\n        '>=Cancun': 'TransactionException.SENDER_NOT_EOA'\n      \n      result: {}  # No point checking the result when no transaction happened\n"
  },
  {
    "path": "tests/static/state_tests/stEIP3607/transactionCollidingWithNonEmptyAccount_init_ParisFiller.yml",
    "content": "# Account with non-empty code attempts to send tx to create a contract\n\ntransactionCollidingWithNonEmptyAccount_init_Paris:\n  _info:\n    comment: Account with non-empty code attempts to send tx to create a contract\n\n  env:\n    # A blockinfo section (obsolete). Do not change. (only coinbase and gasLimit could be changed)\n    currentCoinbase: <eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\n    currentDifficulty: 0x20000\n    currentGasLimit: 0xFF112233445566\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  # We prepare a state where the sending account already has code in it.\n  pre:\n     # Even if this account is not involved in transaction, it will be miner-reward touched upon generation of a state test\n    <eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>:\n      balance: '0'\n      nonce: '1'\n      code: ''\n      storage: {}\n\n    # Account containing code from which we will try to send a transaction from\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      nonce: '0'\n      code: ':raw 0x00'\n      storage: {}\n\n    # Init'd address keccak256(rlp(<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>, 0))\n    <eoa:0x6295ee1b4f6dd65047762f924ecd367c17eabf8f>:\n      balance: '10'\n      nonce: '0'\n      code: ''\n      storage: {}\n\n    # Address we will be delegate calling to\n    <contract:0xd0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0>:\n      balance: '10'\n      nonce: '0'\n      code: ':raw 0x00'\n      storage: {}\n\n  # Transaction originating from account with code\n  transaction:\n    data:\n    # Simple stop init code\n    - ':raw 0x00'\n    # Simple contract deployment\n    - ':yul berlin\n       {\n         return (0, 32)\n       }'\n    # Call another contract from init code\n    - ':yul berlin\n       {\n         pop(call(gas(), <contract:0xd0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0>, 10000, 0, 0, 0, 0))\n       }'\n    # Delegate call another contract from init code\n    - ':yul berlin\n       {\n         pop(delegatecall(gas(), <contract:0xd0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0>, 0, 0, 0, 0))\n       }'\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    to: ''\n    value:\n    - '100000'\n    # secretKey is a privKey of <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n\n\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int 0\n        value: !!int -1\n\n      network:\n        - '>=Cancun'\n      \n      # Transaction should be rejected since it is being sent by a EOA with code in it.\n      expectException:\n        '>=Frontier': 'TransactionException.SENDER_NOT_EOA'\n      \n      result: {}  # No point checking the result when no transaction happened\n"
  },
  {
    "path": "tests/static/state_tests/stEIP3607/transactionCollidingWithNonEmptyAccount_send_ParisFiller.yml",
    "content": "# Account with non-empty code attempts to send tx to another account with empty code\n\ntransactionCollidingWithNonEmptyAccount_send_Paris:\n  _info:\n    comment: Account with non-empty code attempts to send tx to another account with empty code\n\n  env:\n    # A blockinfo section (obsolete). Do not change. (only coinbase and gasLimit could be changed)\n    currentCoinbase: <eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\n    currentDifficulty: 0x20000\n    currentGasLimit: 0xFF112233445566\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  # We prepare a state where the sending account already has code in it.\n  pre:\n     # Even if this account is not involved in transaction, it will be miner-reward touched upon generation of a state test\n    <eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>:\n      balance: '0'\n      nonce: '1'\n      code: ''\n      storage: {}\n\n    # Account containing code from which we will try to send a transaction from\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      nonce: '0'\n      code: ':raw 0x6000600155'\n      storage: {}\n\n    # Account receiving the funds from the account with code\n    <eoa:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: '10'\n      nonce: '0'\n      code: ''\n      storage: {}\n\n  # Transaction originating from account with code\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    to: <eoa:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '100000'\n    # secretKey is a privKey of <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n\n\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int 0\n        value: !!int -1\n\n      network:\n        - '>=Cancun'\n      \n      # Transaction should be rejected since it is being sent by a EOA with code in it.\n      expectException:\n        '>=Cancun': 'TransactionException.SENDER_NOT_EOA'\n      \n      result: {}  # No point checking the result when no transaction happened\n"
  },
  {
    "path": "tests/static/state_tests/stExample/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stExample/accessListExampleFiller.yml",
    "content": "accessListExample:\n  _info:\n    comment: A test shows accessList transaction example\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 0xFF112233445566\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  expect:\n    - network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n          storage:\n            0x00: 2\n\n\n\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: '1000000000000000000'\n      code: |\n          {\n             ; Can also add lll style comments here\n             [[0]] (ADD 1 1)\n          }\n      nonce: '0'\n      storage: {}\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n  transaction:\n    data:\n        - data: :label declaredKeyWrite :raw 0x00\n          accessList:\n          - address: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n            storageKeys:\n            - 0x00\n            - 0x01\n          - address: 0x195e7baea6a6c7c4c2dfeb977efac326af552d87\n            storageKeys:\n            - 0x00\n\n        - data: :label declaredKeyWrite2 :raw 0x00\n          accessList:\n          - address: 0x195e7baea6a6c7c4c2dfeb977efac326af552d87\n            storageKeys:\n            - 0x00\n\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '100000'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n\n"
  },
  {
    "path": "tests/static/state_tests/stExample/add11Filler.json",
    "content": "{\n    \"add11\" : {\n        \"_info\" : {\n            \"comment\" : \"A test for (add 1 1) opcode result\"\n        },\n        \"env\" : {\n            \"//comment\" : \"A blockinfo section (obsolete). Do not change. (only coinbase and gasLimit could be changed)\",\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0xFF112233445566\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"//comment\" : \"Expect section is the post condition for the transaction result\",\n        \"expect\" : [\n            {\n                \"//comment\" : \"indexes are used to specify post condition for a given transaction range.\",\n                \"//comment\" : \"transaction section describe multiple transaction which will be executed on pre state\",\n                \"indexes\" : {\n                    \"//comment\" : \"-1 for transaction with any data from this field. or a particular index, or range [0, 1, 2]\",\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"//comment\" : \"hard fork order: Frontier, Homestead, EIP150, EIP155, Byzantium, Constantinople, Istanbul\",\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"//comment\" : \"Account in expect section would be checked for the fields specified here (balance, code, storage)\",\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"//comment\" : \"Better not to check the gas or mining reward affected account's balances.\",\n                        \"//comment\" : \"A change in gasPrice will affect the test and this post condition.\",\n                        \"//comment\" : \"So unless the test doesn't really require it, don't check coinbase/miner address balance or sender balance in post section\",\n                        \"//balance\" : \"1000000000000100000\",\n                        \"//comment\" : \"Byte Code example\",\n                        \"code\" : \"0x600160010160005500\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x02\"\n                        }\n                    },\n                    \"//comment\" : \"could be incomplete type. only balance field would be checked.\",\n                    \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\" : {\n                        \"//balance\" : \"43112\",\n                        \"nonce\" : \"1\"\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"//balance\" : \"999999999999856888\",\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"//comment\" : \"check that this address is not generated to the post state\",\n                    \"e94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"shouldnotexist\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"//comment\" : \"Pre condition state for the test\",\n        \"pre\" : {\n            \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"1\",\n                \"storage\" : {\n                }\n            },\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"//comment\": \"If lllc compiler is installed, LLL code will be converted into EVM bytecode when --filltests\",\n                \"//code\" : \"put result of add(1,1) into storage cell 0\",\n                \"//comment\" : \"Bytecode example: \",\n                \"//code\" : \"0x600160010160005500\",\n                \"//comment\" : \"LLL Code example. Use LLL with comments, so your tests would have transparent source logic.\",\n                \"//comment\" : \"If the LLL is to bit for .json use .yml test format for better sourcing of the contract\",\n                \"code\" : \"{ [[0]] (ADD 1 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"//comment\" : \"A pre state account description must be complete (balance, code, nonce, storage)\",\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"//comment\" : \"multiple transaction description that will be applied on a pre state\",\n        \"transaction\" : {\n            \"//comment\" : \"foreach d in `data` { foreach g in `gasLimit` { foreach v in `value`  {  pre.applyTransaction(d, g, v)  }}}\",\n            \"//comment\" : \"each element of the data array is treated same as account's code field. You could use LLL here\",\n            \"data\" : [\n                \"\"\n            ],\n            \"//comment\" : \"Be careful when adding gasLimits that are < then intrinsic gas cost. StateTests are not allowed to have invalid transactions\",\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"//comment\" : \"nonce must be same as account nonce a94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"nonce\" : \"0\",\n            \"//comment\" : \"secretKey is a privKey of a94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"//comment\" : \"if `to` field is empty, the transaction becomes contract creation. code from data will be executed as a deployment code\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stExample/add11_ymlFiller.yml",
    "content": "# add11Filler.json representation in .yml format\n# YML format allows multiline strings which makes it easier to write contracts code using solidity, lll, yul\n# As well as adding comments to the test\n# However there is a little downside: yml is extremely sensitive to white spaces\n\nadd11_yml:\n  _info:\n    comment: A test for (add 1 1) opcode result\n\n  env:\n    # A blockinfo section (obsolete). Do not change. (only coinbase and gasLimit could be changed)\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 0xFF112233445566\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  # Expect section is the post condition for the transaction result\n  expect:\n\n    # indexes are used to specify post condition for a given transaction range.\n    # transaction section describe multiple transaction which will be executed on pre state\n    - indexes:\n\n         # -1 for transaction with any data from this field. or a particular index, or range [0, 1, 2]\n        data: !!int -1\n        gas:  !!int 0\n        value: !!int -1\n\n      # hard fork order Frontier, Homestead, EIP150, EIP155, Byzantium, Constantinople, Istanbul\n      network:\n        - '>=Cancun'\n      result:\n         # Account in expect section would be checked for the fields specified here (balance, code, storage)\n        095e7baea6a6c7c4c2dfeb977efac326af552d87:\n           # Better not to check the gas or mining reward affected account's balances.\n           # A change in gasPrice will affect the test and this post condition.\n           # So unless the test doesn't really require it, don't check coinbase/miner address balance or sender balance in post section\n           # balance 1000000000000100000\n\n           # Byte Code example\n          code: '0x600160010160005500'\n          storage:\n            0x00: 2\n\n         # could be incomplete type. only balance field would be checked.\",\n        2adc25665018aa1fe0e6bc666dac8fc2697ff9ba:\n           # balance 43112\n          nonce: '1'\n\n        a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n           # Avoid checking balance field as it actually affected by many EIPs that can break the test\n           # balance 999999999999856888\n          code: '0x'\n          nonce: '1'\n          storage: {}\n\n         # check that this address is not generated to the post state\n        e94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          shouldnotexist: 1\n\n  # Pre condition state for the test\n  pre:\n     # Even if this account is not involved in transaction, it will be miner-rawrd touched upon generation of a state test\n    2adc25665018aa1fe0e6bc666dac8fc2697ff9ba:\n      balance: '0'\n      nonce: '1'\n      code: ''\n      storage: {}\n\n    095e7baea6a6c7c4c2dfeb977efac326af552d87:\n      balance: '1000000000000000000'\n      # If lllc compiler is installed, LLL code will be converted into EVM bytecode when --filltests\"\n      # put result of add(1,1) into storage cell 0\n      # Bytecode example code '0x600160010160005500', use :raw to disable the source code warning\n      # LLL Code example. Use LLL with comments, so your tests would have transparent source logic.\n      # If the LLL is to bit for .json use .yml test format for better sourcing of the contract\n      code: |\n          {\n             ; Can also add lll style comments here\n             [[0]] (ADD 1 1) \n          }\n      nonce: '0'\n      storage: {}\n\n    # A pre state account description must be complete (balance, code, nonce, storage)\",\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n\n  # Multiple transaction description that will be applied on a pre state      \n  transaction:\n    # foreach d in `data` { foreach g in `gasLimit` { foreach v in `value`  {  pre.applyTransaction(d, g, v)  }}}\n    # each element of the data array is treated same as account's code field. You could use LLL here\n    data:\n    - ''\n    # Be careful when adding gasLimits that are < then intrinsic gas cost. StateTests are not allowed to have invalid transactions\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    # Nonce must be same as account nonce a94f5374fce5edbc8e2a8697c15331677e6ebf0b\n    nonce: '0'\n    # if `to` field is empty, the transaction becomes contract creation. code from data will be executed as a deployment code\n    to: 095e7baea6a6c7c4c2dfeb977efac326af552d87\n    value:\n    - '100000'\n    # secretKey is a privKey of a94f5374fce5edbc8e2a8697c15331677e6ebf0b\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n"
  },
  {
    "path": "tests/static/state_tests/stExample/basefeeExampleFiller.yml",
    "content": "basefeeExample:\n  _info:\n    comment: A test shows basefee transaction example\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentNumber: 1\n    currentTimestamp: 1000\n    currentGasLimit: 0x1000000000\n    currentBaseFee: 70000000\n\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n          storage:\n            0x00: 2\n\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: '1000000000000000000'\n      code: |\n          {\n             ; Can also add lll style comments here\n             [[0]] (ADD 1 1) \n          }\n      nonce: '0'\n      storage: {}\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n  transaction:\n    data:\n        - data: :label declaredKeyWrite :raw 0x00\n          accessList:\n          - address: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n            storageKeys:\n            - 0x00\n            - 0x01\n\n    maxFeePerGas: '0x12A05F200'\n    maxPriorityFeePerGas: '2'\n    gasLimit:\n    - '4000000'\n    nonce: '0'\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '100000'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n\n"
  },
  {
    "path": "tests/static/state_tests/stExample/eip1559Filler.yml",
    "content": "eip1559:\n  _info:\n    comment: Ori Pomerantz   qbzzt1@gmail.com\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentNumber: 1\n    currentTimestamp: 1000\n    currentGasLimit: 0x1000000\n\n    # New in London because of EIP1559\n    currentBaseFee: 1000\n\n  pre:\n    <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n      balance: '1000000000000000000'\n      code: |\n          {\n             (sstore 0 (gasprice))\n             (sstore 1 (basefee))\n          }\n      nonce: 1\n      storage: {}\n\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: 1\n      storage: {}\n\n\n  transaction:\n    data:\n        - data: :raw 0x00\n          accessList:\n          - address: <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>\n            storageKeys:\n            - 0x00\n            - 0x01\n    gasLimit:\n    - 4000000\n    nonce: 1\n    to: <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>\n    value:\n    - 0\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n\n    # New in London because of EIP 1559\n    maxPriorityFeePerGas: 10\n    maxFeePerGas: 2000\n    \n\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 1010    # GASPRICE\n            0x01: 1000    # BASEFEE\n\n"
  },
  {
    "path": "tests/static/state_tests/stExample/indexesOmitExampleFiller.yml",
    "content": "indexesOmitExample:\n  _info:\n    comment: expect section set -indexes field by default equal to -1\n\n  env:\n    currentCoinbase: <eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\n    currentDifficulty: 0x20000\n    currentGasLimit: 0xFF112233445566\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  expect:\n    #indexes section can be omitted, the default value is set to -1 for all tx vectors\n    - indexes:\n        data: !!int -1\n        # default value for gas vector is set to -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n          code: '0x600160010160005500'\n          storage:\n            0x00: 2\n\n\n  pre:\n    <eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>:\n      balance: '0'\n      nonce: '1'\n      code: ''\n      storage: {}\n\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: '1000000000000000000'\n      code: |\n          {\n             ; Can also add lll style comments here\n             [[0]] (ADD 1 1) \n          }\n      nonce: '0'\n      storage: {}\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '100000'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n\n"
  },
  {
    "path": "tests/static/state_tests/stExample/invalidTrFiller.json",
    "content": "{\n    \"invalidTr\" : {\n        \"_info\" : {\n            \"comment\" : \"A state test with invalid transaction example filler\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0xFF112233445566\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"expectException\" : {\n                    \">=Cancun\" : \"TransactionException.INTRINSIC_GAS_TOO_LOW\"\n                },\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"0\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"1\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"//code\" : \"0x600160010160005500\",\n                \"code\" : \"{ [[0]] (ADD 1 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stExample/labelsExampleFiller.yml",
    "content": "# An example how to use labels in expect section\n# More info: https://ethereum-tests.readthedocs.io/en/latest/test_filler/test_expect_state.html?highlight=labels\n\nlabelsExample:\n  _info:\n    comment: An example how to use labels in expect section\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 0xFF112233445566\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  expect:\n    - indexes:\n        # now we can reference specific transaction by human readable label\n        # this label will also be available for debug at already generated test\n        # as well as it will be possible to select specific transaction in retesteth by label\n        # ./retesteth -t GeneralStateTests/stExample --  --singletest labelsExample --poststate -d \":label transaction1\"\n        data: ':label transaction1'\n        gas:  !!int 0\n        value: !!int -1\n\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n          storage:\n            0x00: 0x0100000000000000000000000000000000000000000000000000000000000000\n\n    - indexes:\n        data: ':label transaction2'\n        gas:  !!int 0\n        value: !!int -1\n\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n          storage:\n            0x00: 0x0200000000000000000000000000000000000000000000000000000000000000\n\n       # if one label is assigned to many transactions all those transactions will be selected\n       # this selects transaction with data index 2 and 3\n    - indexes:\n        data: ':label transaction3'\n        gas:  !!int 0\n        value: !!int -1\n\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n          storage:\n            0x00: 0x0300000000000000000000000000000000000000000000000000000000000000\n\n  pre:\n\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: '1000000000000000000'\n      code: |\n          {\n             [[0]] (CALLDATALOAD 0) \n          }\n      nonce: '0'\n      storage: {}\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n  transaction:\n    # Labels are used to mark different transactions by it's data\n    data:\n    - ':label transaction1 :raw 0x01'\n    - ':label transaction2 :raw 0x02'\n    - ':label transaction3 :raw 0x03'\n    - ':label transaction3 :raw 0x03'\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '100000'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n\n"
  },
  {
    "path": "tests/static/state_tests/stExample/mergeTestFiller.yml",
    "content": "mergeTest:\n  _info:\n    comment: Example of PoS merge state test\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentNumber: 1\n    currentTimestamp: 1000\n    currentGasLimit: 0x1000000\n    currentBaseFee: 1000\n    currentRandom: 0x1500000000000000000000000000000000000000000000000000000000000000\n\n  pre:\n    <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n      balance: '1000000000000000000'\n      code: |\n          {\n             (sstore 0 (gasprice))\n             (sstore 1 (basefee))\n             (sstore 2 (difficulty))\n          }\n      nonce: 1\n      storage: {}\n\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: 1\n      storage: {}\n\n\n  transaction:\n    data:\n        - data: :raw 0x00\n          accessList:\n          - address: <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>\n            storageKeys:\n            - 0x00\n            - 0x01\n    gasLimit:\n    - 4000000\n    nonce: 1\n    to: <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>\n    value:\n    - 0\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n\n    # New in London because of EIP 1559\n    maxPriorityFeePerGas: 10\n    maxFeePerGas: 2000\n    \n\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n           nonce: 1\n           storage:\n            0x00: 1010    # GASPRICE\n            0x01: 1000    # BASEFEE\n            0x02: 0x1500000000000000000000000000000000000000000000000000000000000000       # Difficulty (Random)\n"
  },
  {
    "path": "tests/static/state_tests/stExample/rangesExampleFiller.yml",
    "content": "# An example how to use ranges in expect section\n# More info: https://ethereum-tests.readthedocs.io/en/latest/test_filler/test_expect_state.html?highlight=labels\n\nrangesExample:\n  _info:\n    comment: An example how to use ranges in expect section\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 0xFF112233445566\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  expect:\n    # we can select transactions with data from 0 to 2, meaning the ones having data indexes 0, 1, 2\n    - indexes:\n        data:\n            - '0-2'\n        gas:  !!int 0\n        value: !!int -1\n\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n          storage:\n            0x00: 0x0100000000000000000000000000000000000000000000000000000000000000\n\n    # Same goes for gas and value indexes, also you can combine labels, ranges and indexes\n    # if you select some transactions twice they will be count once\n    - indexes:\n        data:\n            - !!int 0\n            - '1-2'\n            - ':label transaction1'\n        gas:\n            - '1-2'\n        value: !!int -1\n\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n          storage:\n            0x00: 0x0100000000000000000000000000000000000000000000000000000000000000\n\n    # be careful not to cover the same transaction with 2 different expect section as blockchain tests does not like it\n    # also if you have an expect section that does not cover any existing transaction you will see a retesteth error\n    # if you have a transaction without expect section coverage you will se a retesteth error\n\n    - indexes:\n        data: !!int 3\n        gas: '0-2'\n        value: '0-1'\n\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n          storage:\n            0x00: 0x0400000000000000000000000000000000000000000000000000000000000000\n\n  pre:\n\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: '1000000000000000000'\n      code: |\n          {\n             [[0]] (CALLDATALOAD 0) \n          }\n      nonce: '0'\n      storage: {}\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n  transaction:\n    # When we have many transactions it comes useful to design an expect section using ranges rather then indexes\n    data:\n    - ':label transaction1 :raw 0x01'\n    - ':raw 0x01'\n    - ':raw 0x01'\n    - ':raw 0x04'\n    gasLimit:\n    - '400000'\n    - '1400000'\n    - '2400000'\n    gasPrice: '10'\n    nonce: '0'\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '100000'\n    - '200000'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n\n"
  },
  {
    "path": "tests/static/state_tests/stExample/yulExampleFiller.yml",
    "content": "# An example of using simple yul contracts in the test\n# More examples at https://ethereum-tests.readthedocs.io/en/latest/state-transition-tutorial.html#solidity-tests\nyulExample:\n  _info:\n    comment: An example test for using simple yul contracts in the test\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: \"100000000\"\n    currentNumber: \"1\"\n    currentTimestamp: \"1000\"\n\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int 0\n        value: !!int -1\n\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n          storage:\n            0: 3\n\n  pre:\n\n    # requires solc compiler to be installed in the system\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        :yul berlin\n        {\n          function f(a, b) -> c {\n            c := add(a, b)\n          }\n\n          sstore(0, f(1, 2))\n          return(0, 32)\n        }\n      nonce: '0'\n      storage: {}\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n  transaction:\n    data:\n    - \"\"\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '0'\n    secretKey: '<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>'\n\n"
  },
  {
    "path": "tests/static/state_tests/stExtCodeHash/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stExtCodeHash/callToNonExistentFiller.json",
    "content": "{\n    \"callToNonExistent\" : {\n\t\t\"_info\" : {\n\t\t\t\"comment\" : \"https://github.com/ethereum/tests/issues/652\"\n\t\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"3000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : [0,1,2,3], \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t\t\t\t\"//comment\" : \"Call[0] Callcode[1] delegatecall[2] staticcall[3] to nonexistent, then extcodehash of nonexistent\",\n\t    \t\t\t\"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n               \t\t    \"balance\" : \"1\",\n\t\t\t\t\t\t\"storage\" : {\n\t\t\t\t\t\t\t\"0x00\" : \"1\",\n\t\t\t\t\t\t\t\"0x01\" : \"0x00\"\n\t\t\t\t\t\t}\n            \t\t }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"nonce\" : \"0\",\n\t\t\t\t\"//comment\" : \"Redirect call to calldataload\",\n                \"code\" : \"{ (CALLCODE (GAS) (CALLDATALOAD 0) 0 0 64 0 64 ) }\",\n                \"storage\": {\n\t\t\t\t\t\"0x01\" : \"0x1122\"\n\t\t\t\t}\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] (CALL 25000 0xdead000000000000000000000000000000000001 0 0 0 0 0) [[1]] (EXTCODEHASH 0xdead000000000000000000000000000000000001) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] (CALLCODE 25000 0xdead000000000000000000000000000000000001 0 0 0 0 0) [[1]] (EXTCODEHASH 0xdead000000000000000000000000000000000001) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x3000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] (DELEGATECALL 25000 0xdead000000000000000000000000000000000001 0 0 0 0) [[1]] (EXTCODEHASH 0xdead000000000000000000000000000000000001) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x4000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] (STATICCALL 25000 0xdead000000000000000000000000000000000001 0 0 0 0) [[1]] (EXTCODEHASH 0xdead000000000000000000000000000000000001) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"\",\n                \"storage\": {}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000001>\",\n                \":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000001>\",\n                \":raw 0x000000000000000000000000<contract:0x3000000000000000000000000000000000000001>\",\n                \":raw 0x000000000000000000000000<contract:0x4000000000000000000000000000000000000001>\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stExtCodeHash/callToSuicideThenExtcodehashFiller.json",
    "content": "{\n    \"callToSuicideThenExtcodehash\" : {\n\t\t\"_info\" : {\n\t\t\t\"comment\" : \"https://github.com/ethereum/tests/issues/652\"\n\t\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"3000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n\t\t\t\t\"//comment\" : \"Call[0] Callcode[1] delegatecall[2] staticcall[3] to suicider, then extcodehash of it\",\n                \"indexes\" : { \"data\" : [0], \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t\t\t\t\"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n               \t\t    \"balance\" : \"1\",\n\t\t\t\t\t\t\"storage\" : {\n\t\t\t\t\t\t\t\"0x00\" : \"1\",\n\t\t\t\t\t\t\t\"0x01\" : \"0x2f715723d7cde71586406b2995d4fc62acc9ce1adb8df087cc8d4502d047d3ca\"\n\t\t\t\t\t\t}\n            \t\t },\n\t\t\t\t\t\"0000000000000000000000000000000000000025\" : {\n               \t\t    \"balance\" : \"5555555555\"\n            \t\t },\n\t\t\t\t\t\"<contract:0xdead000000000000000000000000000000000001>\" : {\n\t\t\t\t\t\t\"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"code\" : \"0x6025ff00\",\n                        \"storage\" : {}\n\t\t\t\t\t}\n                }\n            },\n\t\t\t{\n\t\t\t\t\"//comment\" : \"Call[0] Callcode[1] delegatecall[2] staticcall[3] to suicider, then extcodehash of it\",\n                \"indexes\" : { \"data\" : [1,2], \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t\t\t\t\"0000000000000000000000000000000000000025\" : {\n               \t\t    \"balance\" : \"1\"\n            \t\t },\n\t\t\t\t\t\"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t\t\t\t\t\"balance\" : \"0\",\n\t\t\t\t\t\t\"nonce\" : \"0\",\n\t\t\t\t\t\t\"code\" : \"0x604060006040600060006000355af200\",\n\t\t\t\t\t\t\"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x2f715723d7cde71586406b2995d4fc62acc9ce1adb8df087cc8d4502d047d3ca\"\n                        }\n\t\t\t\t\t},\n\t\t\t\t\t\"<contract:0xdead000000000000000000000000000000000001>\" : {\n\t\t\t\t\t\t\"balance\" : \"5555555555\"\n\t\t\t\t\t}\n                }\n            },\n\t\t\t{\n\t\t\t\t\"//comment\" : \"Call[0] Callcode[1] delegatecall[2] staticcall[3] to suicider, then extcodehash of it\",\n                \"indexes\" : { \"data\" : [3], \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t\t\t\t\"0000000000000000000000000000000000000025\" : {\n               \t\t    \"shouldnotexist\" : \"1\"\n            \t\t },\n\t\t\t\t\t\"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t\t\t\t\t\"balance\" : \"1\",\n\t\t\t\t\t\t\"storage\" : {\n\t\t\t\t\t\t\t\"0x00\" : \"0\",\n\t\t\t\t\t\t\t\"0x01\" : \"0x2f715723d7cde71586406b2995d4fc62acc9ce1adb8df087cc8d4502d047d3ca\"\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t\"<contract:0xdead000000000000000000000000000000000001>\" : {\n\t\t\t\t\t\t\"balance\" : \"5555555555\"\n\t\t\t\t\t}\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"nonce\" : \"0\",\n\t\t\t\t\"//comment\" : \"Redirect call to calldataload\",\n                \"code\" : \"{ (CALLCODE (GAS) (CALLDATALOAD 0) 0 0 64 0 64 ) }\",\n                \"storage\": {\n\t\t\t\t\t\"0x01\" : \"0x1122\"\n\t\t\t\t}\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] (CALL 165000 <contract:0xdead000000000000000000000000000000000001> 0 0 0 0 0) [[1]] (EXTCODEHASH <contract:0xdead000000000000000000000000000000000001>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] (CALLCODE 165000 <contract:0xdead000000000000000000000000000000000001> 0 0 0 0 0) [[1]] (EXTCODEHASH <contract:0xdead000000000000000000000000000000000001>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x3000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] (DELEGATECALL 165000 <contract:0xdead000000000000000000000000000000000001> 0 0 0 0) [[1]] (EXTCODEHASH <contract:0xdead000000000000000000000000000000000001>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x4000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] (STATICCALL 165000 <contract:0xdead000000000000000000000000000000000001> 0 0 0 0) [[1]] (EXTCODEHASH <contract:0xdead000000000000000000000000000000000001>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xdead000000000000000000000000000000000001>\" : {\n                \"balance\" : \"5555555555\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{(SELFDESTRUCT 0x0000000000000000000000000000000000000025)}\",\n                \"storage\": {}\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"\",\n                \"storage\": {}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000001>\",\n                \":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000001>\",\n                \":raw 0x000000000000000000000000<contract:0x3000000000000000000000000000000000000001>\",\n                \":raw 0x000000000000000000000000<contract:0x4000000000000000000000000000000000000001>\"\n            ],\n            \"gasLimit\" : [\n                \"300000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stExtCodeHash/codeCopyZero_ParisFiller.yml",
    "content": "# https://github.com/ethereum/tests/issues/493,  CODECOPY and EXTCODECOPY where codesize = 0\n---\ncodeCopyZero_Paris:\n  _info:\n    comment: \"https://github.com/ethereum/tests/issues/493,  CODECOPY and EXTCODECOPY where codesize = 0\"\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: \"10000000\"\n    currentNumber: \"1\"\n    currentTimestamp: \"1000\"\n  pre:\n    a000000000000000000000000000000000000000:\n      balance: '1000000000000000000'\n      code: |\n        {\n\n          ;; EXTCODECOPY of nonexistent account\n          (EXTCODECOPY 0xa222000000000000000000000000000000000000 0 0 32)\n          (SSTORE 0x10 (MLOAD 0))\n          (SSTORE 0x11 (EXTCODESIZE 0xa222000000000000000000000000000000000000))\n          (SSTORE 0x12 (EXTCODEHASH 0xa222000000000000000000000000000000000000))\n          (SSTORE 0x13 (CALLCODE 50000 0xa222000000000000000000000000000000000000 0 0 0 0 0))\n\n\n          ;; EXTCODECOPY of account with empty code\n          (EXTCODECOPY 0xa200000000000000000000000000000000000000 0 0 32)\n          (SSTORE 0x20 (MLOAD 0))\n          (SSTORE 0x21 (EXTCODESIZE 0xa200000000000000000000000000000000000000))\n          (SSTORE 0x22 (EXTCODEHASH 0xa200000000000000000000000000000000000000))\n          (SSTORE 0x23 (CALLCODE 50000 0xa200000000000000000000000000000000000000 0 0 0 0 0))\n\n\n          ;; EXTCODECOPY of empty account with empty code\n          (EXTCODECOPY 0xa300000000000000000000000000000000000000 0 0 32)\n          (SSTORE 0x30 (MLOAD 0))\n          (SSTORE 0x31 (EXTCODESIZE 0xa300000000000000000000000000000000000000))\n          (SSTORE 0x32 (EXTCODEHASH 0xa300000000000000000000000000000000000000))\n          (SSTORE 0x33 (CALLCODE 50000 0xa300000000000000000000000000000000000000 0 0 0 0 0))\n\n          ;; CODECOPY of dynamic account which has empty code\n          (CALL 550000 0xa100000000000000000000000000000000000000 0 0 0 0 32)\n          (SSTORE 0x40 (MLOAD 0))\n        }\n      nonce: '0'\n      storage: {}\n    a100000000000000000000000000000000000000:\n      balance: '1000000000000000000'\n      code: |\n        { \n          (MSTORE 0\n            (CREATE2 0 0\n              (lll\n              {\n                ;; codecopy of empty code\n                (CODECOPY 0 0 32)\n                [[0x50]] (MLOAD 0)\n                [[0x51]] (EXTCODESIZE (ADDRESS))\n                [[0x52]] (EXTCODEHASH (ADDRESS))\n                [[0x53]] (EXTCODESIZE (CALLCODE 50000 (ADDRESS) 0 0 0 0 0))\n                (EXTCODECOPY (ADDRESS) 0 0 32)\n                (SSTORE 0x54 (MLOAD 0))\n              }\n              0)\n            0))\n           (RETURN 0 32)\n           (STOP)\n        }\n      nonce: '0'\n      storage: {}\n    #account with empty code\n    a200000000000000000000000000000000000000:\n      balance: '1000000000000000000'\n      code: ''\n      nonce: '0'\n      storage: {}\n    #empty with empty code\n    a300000000000000000000000000000000000000:\n      balance: '10'\n      code: ''\n      nonce: '0'\n      storage: {}\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '1000000000000000000'\n      code: ''\n      nonce: '0'\n      storage: {}\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        a000000000000000000000000000000000000000:\n          storage: {\n             '0x13': '0x01',\n             '0x22': '0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470',\n             '0x23': '0x01',\n             '0x33': '0x01',\n             '0x32': '0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470',\n             '0x40': '0x64bc50092fd622c9cc47d658b99c1af75aaa3d68'\n          }\n        64bc50092fd622c9cc47d658b99c1af75aaa3d68:\n          storage: {\n             '0x50': '0x60206000600039600051605055303b605155303f605255600060006000600060',\n             '0x51': '0x00',\n             '0x52': '0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470',\n             '0x53': '0x00',\n             '0x54': '0x00'\n          }\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '1400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: 45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\n    to: 'a000000000000000000000000000000000000000'\n    value:\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stExtCodeHash/createEmptyThenExtcodehashFiller.json",
    "content": "{\n    \"createEmptyThenExtcodehash\" : {\n\t\t\"_info\" : {\n\t\t\t\"comment\" : \"https://github.com/ethereum/tests/issues/652\"\n\t\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x0b00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n        \"expect\" : [\n            {   \"indexes\" : {\n                   \"data\" : -1,\n                   \"gas\" : -1,\n                   \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"1000000000000000000000000000000000000000\" : {\n                        \"storage\" : {\n\t\t\t\t            \"0x00\" : \"0x0826562ac9373818f7a055166f7b0cc87485f05d\",\n\t\t\t\t            \"0x01\" : \"0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470\",\n\t\t\t\t\t\t\t\"0x02\" : \"0x7c5a2c91b22d7a9226523d4ba717db6afb741ebd\",\n\t\t\t\t\t\t\t\"0x03\" : \"0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470\"\n                        }\n                    },\n\t\t\t\t\t\"0x0826562ac9373818f7a055166f7b0cc87485f05d\" : {\n\t\t\t\t\t\t\"nonce\" : \"1\",\n\t\t\t\t\t\t\"code\" : \"\"\n\t\t\t\t\t}\n                }\n            }\n        ],\n        \"pre\" : {\n            \"1000000000000000000000000000000000000000\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \"{  [[0]] (CREATE2 0 0  (lll (seq (sstore 0 0x112233)  (STOP)) 0) 0)  [[1]] (EXTCODEHASH 0x0826562ac9373818f7a055166f7b0cc87485f05d)  [[2]] (CREATE 0 0 (lll (seq (sstore 0 0x112233)  (STOP)) 0))  [[3]] (EXTCODEHASH 0x7c5a2c91b22d7a9226523d4ba717db6afb741ebd) }\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\",\n                    \"0x01\" : \"0x01\",\n                    \"0x02\" : \"0x01\",\n                    \"0x03\" : \"0x01\"\n                }\n            },\n            \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"300000\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"0x1000000000000000000000000000000000000000\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stExtCodeHash/dynamicAccountOverwriteEmpty_ParisFiller.yml",
    "content": "# EXTCODEHASH of empty account, then CREATE or CREATE2 over it, EXTCODEHASH again.\n# This should check that code hash cache is correctly updated during the transaction.\n---\ndynamicAccountOverwriteEmpty_Paris:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: \"1000000\"\n    currentNumber: \"1\"\n    currentTimestamp: \"1000\"\n  _info:\n    comment: \"EXTCODEHASH of empty account, then CREATE or CREATE2 over it, EXTCODEHASH again.\nThis should check that code hash cache is correctly updated during the transaction.\"\n  pre:\n    095e7baea6a6c7c4c2dfeb977efac326af552d87:\n      balance: '1000000000000000000'\n      code: |\n        {\n          ;; Check stats of empty account\n          [[0]] (EXTCODEHASH 0xc5691dc90d9fd2a2e9a5fa5bd28bf77ffd60aa78)\n          [[1]] (EXTCODESIZE 0xc5691dc90d9fd2a2e9a5fa5bd28bf77ffd60aa78)\n          (EXTCODECOPY 0xc5691dc90d9fd2a2e9a5fa5bd28bf77ffd60aa78 0 0 32)\n          (SSTORE 2 (MLOAD 0))\n          (SSTORE 3 (CALLCODE 50000 0xc5691dc90d9fd2a2e9a5fa5bd28bf77ffd60aa78 0 0 0 0 0))\n\n\n          ;; Create account 0xc5691dc90d9fd2a2e9a5fa5bd28bf77ffd60aa78 again. should be overwritten without collision\n          [[10]](CREATE2 0 0 (lll\n              {\n                ;; Put some code into it\n                (MSTORE 0 (EXTCODESIZE 0xdddddddd00000000000000000000000000000000))\n                (EXTCODECOPY 0xdddddddd00000000000000000000000000000000\n                             32\n                             0\n                             (MLOAD 0))\n                (RETURN 32 (MLOAD 0))\n              }\n              0) \n          0)\n\n          ;; Check stats of same account after overwrite\n          [[4]] (EXTCODEHASH 0xc5691dc90d9fd2a2e9a5fa5bd28bf77ffd60aa78)\n          [[5]] (EXTCODESIZE 0xc5691dc90d9fd2a2e9a5fa5bd28bf77ffd60aa78)\n          (EXTCODECOPY 0xc5691dc90d9fd2a2e9a5fa5bd28bf77ffd60aa78 0 0 32)\n          (SSTORE 6 (MLOAD 0))\n          (SSTORE 7 (CALLCODE 50000 0xc5691dc90d9fd2a2e9a5fa5bd28bf77ffd60aa78 0 0 0 0 0))\n\n          (STOP)\n        }\n      nonce: '0'\n      storage: {}\n    # empty account\n    c5691dc90d9fd2a2e9a5fa5bd28bf77ffd60aa78:\n      balance: '10'\n      code: ''\n      nonce: '0'\n      storage: {\n         \"0x01\": '1'\n      }\n    dddddddd00000000000000000000000000000000:\n      balance: '1000000000000000000'\n      code: |\n       {\n            [[80]] 11\n       }\n      nonce: '0'\n      storage: {}\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '1000000000000000000'\n      code: ''\n      nonce: '0'\n      storage: {}\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        095e7baea6a6c7c4c2dfeb977efac326af552d87:\n          balance: '1000000000000000000'\n          storage: {\n          }\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: 45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\n    to: 095e7baea6a6c7c4c2dfeb977efac326af552d87\n    value:\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stExtCodeHash/extCodeCopyBoundsFiller.yml",
    "content": "# EXTCODECOPY edge case https://github.com/ethereum/tests/issues/438\n---\nextCodeCopyBounds:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: \"1000000\"\n    currentNumber: \"1\"\n    currentTimestamp: \"1000\"\n  _info:\n    comment: \"EXTCODECOPY edge case https://github.com/ethereum/tests/issues/438\"\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: '1000000000000000000'\n      code: |\n        {\n          ;; code position is way too high\n          (EXTCODECOPY <contract:0xe713449c212d891357cc2966816b1d528cfb59e0> 1 0x010000000000000000000000000000000000000000 5000)\n\n          [[0]] (MLOAD 0)\n          [[1]] (MLOAD 32)\n          \n          (EXTCODECOPY <contract:0xe713449c212d891357cc2966816b1d528cfb59e0> 1 0x010000000000000000000000000000000000000000 12)\n\n          [[2]] (MLOAD 0)\n          [[3]] (MLOAD 32)\n\n          (EXTCODECOPY <contract:0xe713449c212d891357cc2966816b1d528cfb59e0> 1 5 12)\n\n          [[4]] (MLOAD 0)\n          [[5]] (MLOAD 32)\n        }\n      nonce: '0'\n      storage: {}\n    <contract:0xe713449c212d891357cc2966816b1d528cfb59e0>:\n      balance: '0'\n      code: |\n        {\n          ;; Some code\n          [[99]] 12\n          [[99]] 11\n          [[99]] 10\n        }\n      nonce: '0'\n      storage: {\n      }\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: ''\n      nonce: '0'\n      storage: {}\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n          balance: '1000000000000000001'\n          storage: {\n            \"0x04\": '0x600b606355600a606355000000000000000000000000000000000000000000'\n          }\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stExtCodeHash/extCodeHashAccountWithoutCodeFiller.yml",
    "content": "# EXTCODEHASH to an account without code\n---\nextCodeHashAccountWithoutCode:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: \"1000000\"\n    currentNumber: \"1\"\n    currentTimestamp: \"1000\"\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: '1000000000000000000'\n      code: |\n        {\n          (CALL 150000 <contract:0xdeadbeef00000000000000000000000000000000> 0 0 0 0 32)\n          (RETURNDATACOPY 0 0 32)\n          [[0]] (MLOAD 0)\n          (CALL 150000 <contract:0xaeadbeef00000000000000000000000000000000> 0 0 0 0 32)\n          (RETURNDATACOPY 0 0 32)\n          [[1]] (MLOAD 0)\n        }\n      nonce: '0'\n      storage: {}\n    <contract:0xdeadbeef00000000000000000000000000000000>:\n      balance: '1000000000000000000'\n      code: |\n        {\n          (MSTORE 0 (EXTCODEHASH <eoa:0xdeadbeef00000000000000000000000000000001>))\n          (RETURN 0 32)\n        }\n      nonce: '0'\n      storage: {}\n    <contract:0xaeadbeef00000000000000000000000000000000>:\n      balance: '1000000000000000000'\n      code: |\n        {\n          (MSTORE 0 (EXTCODESIZE <eoa:0xdeadbeef00000000000000000000000000000001>))\n          (RETURN 0 32)\n        }\n      nonce: '0'\n      storage: {}\n    # account without code\n    <eoa:0xdeadbeef00000000000000000000000000000001>:\n      balance: '1000000000000000000'\n      code: ''\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: ''\n      nonce: '0'\n      storage: {}\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n          balance: '1000000000000000001'\n          storage: {\n            \"0x00\": '0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470',\n            \"0x01\": '0'\n          }\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stExtCodeHash/extCodeHashCALLCODEFiller.json",
    "content": "{\n    \"extCodeHashCALLCODE\" : {\n\t\"_info\" : {\n\t    \"comment\": \"EXTCODEHASH of an account during a CALLCODE\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000000001\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x56570de287d73cd1cb6092bb8fdee6173974955fdef345ae579ee9f475ea7432\",\n            \t\t\t    \"0x01\" : \"0x02\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (CALLCODE 150000 <contract:0xdeadbeef00000000000000000000000000000000> 0 0 0 0 32) (RETURNDATACOPY 0 0 32) [[0]] (MLOAD 0) (CALLCODE 150000 <contract:0xaeadbeef00000000000000000000000000000000> 0 0 0 0 32) (RETURNDATACOPY 0 0 32) [[1]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                  \"0x00\": \"0xdeadbeef\"\n                }\n            },\n            \"<contract:0xdeadbeef00000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 0 (EXTCODEHASH <contract:0xdeadbeef00000000000000000000000000000001>)) (RETURN 0 32) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                  \"0x00\": \"0xdeadbeef\"\n                }\n            },\n            \"<contract:0xaeadbeef00000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 0 (EXTCODESIZE <contract:0xdeadbeef00000000000000000000000000000001>)) (RETURN 0 32) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                  \"0x00\": \"0xdeadbeef\"\n                }\n            },\n            \"<contract:0xdeadbeef00000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x1234\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stExtCodeHash/extCodeHashCALLFiller.json",
    "content": "{\n    \"extCodeHashCALL\" : {\n\t\"_info\" : {\n\t    \"comment\": \"EXTCODEHASH of an account during a CALL\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000000001\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x56570de287d73cd1cb6092bb8fdee6173974955fdef345ae579ee9f475ea7432\",\n\t\t\t    \"0x01\" : \"0x02\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (CALL 150000 <contract:0xdeadbeef00000000000000000000000000000000> 0 0 0 0 32) (RETURNDATACOPY 0 0 32) [[0]] (MLOAD 0) (CALL 150000 <contract:0xaeadbeef00000000000000000000000000000000> 0 0 0 0 32) (RETURNDATACOPY 0 0 32) [[1]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                  \"0x00\": \"0xdeadbeef\"\n                }\n            },\n            \"<contract:0xdeadbeef00000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 0 (EXTCODEHASH <contract:0xdeadbeef00000000000000000000000000000001>)) (RETURN 0 32) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                  \"0x00\": \"0xdeadbeef\"\n                }\n            },\n            \"<contract:0xaeadbeef00000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 0 (EXTCODESIZE <contract:0xdeadbeef00000000000000000000000000000001>)) (RETURN 0 32) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                  \"0x00\": \"0xdeadbeef\"\n                }\n            },\n            \"<contract:0xdeadbeef00000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x1234\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stExtCodeHash/extCodeHashChangedAccountFiller.json",
    "content": "{\n  \"extCodeHashChangedAccount\": {\n    \"_info\": {\n      \"comment\": \"EXTCODEHASH/EXTCODESIZE of an account before and after changing its nonce, balance and storage\"\n    },\n    \"env\": {\n      \"currentCoinbase\": \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n      \"currentDifficulty\": \"0x20000\",\n      \"currentGasLimit\": \"1000000\",\n      \"currentNumber\": \"1\",\n      \"currentTimestamp\": \"1000\"\n    },\n    \"expect\": [\n      {\n        \"indexes\": {\n          \"data\": -1,\n          \"gas\": -1,\n          \"value\": -1\n        },\n        \"network\": [\n          \">=Cancun\"\n        ],\n        \"result\": {\n          \"<contract:target:0xdeadbeef00000000000000000000000000000000>\": {\n            \"storage\": {\n              \"0x00\": \"0xe632e0df9dba0723da1642ec61b48d5d69f8bb794bb1e0875fc2171f7627c47b\",\n              \"0x01\": \"0x0f\",\n              \"0x02\": \"0xe632e0df9dba0723da1642ec61b48d5d69f8bb794bb1e0875fc2171f7627c47b\",\n              \"0x03\": \"0x0f\"\n            }\n          },\n          \"<contract:0xdeadbeef00000000000000000000000000000001>\": {\n            \"balance\": \"1000000000000001000\",\n            \"storage\": {\n              \"0x00\": \"0x1234\"\n            },\n            \"nonce\": \"1\"\n          }\n        }\n      }\n    ],\n    \"pre\": {\n      \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n        \"balance\": \"1000000000000000000\",\n        \"code\": \"\",\n        \"nonce\": \"0\",\n        \"storage\": {\n        }\n      },\n      \"<contract:target:0xdeadbeef00000000000000000000000000000000>\": {\n        \"balance\": \"1000000000000000000\",\n        \"code\": \"{ [[0]] (EXTCODEHASH <contract:0xdeadbeef00000000000000000000000000000001>) [[1]] (EXTCODESIZE <contract:0xdeadbeef00000000000000000000000000000001>) (CALL 0x10000 <contract:0xdeadbeef00000000000000000000000000000001> 1000 0 0 0 0) [[2]] (EXTCODEHASH <contract:0xdeadbeef00000000000000000000000000000001>) [[3]] (EXTCODESIZE <contract:0xdeadbeef00000000000000000000000000000001>) (STOP) }\",\n        \"nonce\": \"0\",\n        \"storage\": {\n        }\n      },\n      \"<contract:0xdeadbeef00000000000000000000000000000001>\": {\n        \"balance\": \"1000000000000000000\",\n        \"code\": \"{ (CREATE 0 0 0) (SSTORE 0 0x1234) }\",\n        \"nonce\": \"0\",\n        \"storage\": {\n        }\n      },\n      \"<eoa:0xdeadbeef00000000000000000000000000000002>\": {\n        \"balance\": \"1000000000000000000\",\n        \"code\": \"\",\n        \"nonce\": \"0\",\n        \"storage\": {\n        }\n      }\n    },\n    \"transaction\": {\n      \"data\": [\n        \"\"\n      ],\n      \"gasLimit\": [\n        \"400000\"\n      ],\n      \"gasPrice\": \"10\",\n      \"nonce\": \"0\",\n      \"secretKey\": \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n      \"to\": \"<contract:target:0xdeadbeef00000000000000000000000000000000>\",\n      \"value\": [\n        \"1\"\n      ]\n    }\n  }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stExtCodeHash/extCodeHashCreatedAndDeletedAccountCallFiller.json",
    "content": "{\n  \"extCodeHashCreatedAndDeletedAccountCall\": {\n    \"_info\": {\n      \"comment\": \"EXTCODEHASH/EXTCODESIZE of an account created then deleted via CALL in same transaction\"\n    },\n    \"env\": {\n      \"currentCoinbase\": \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n      \"currentDifficulty\": \"0x20000\",\n      \"currentGasLimit\": \"1000000\",\n      \"currentNumber\": \"1\",\n      \"currentTimestamp\": \"1000\"\n    },\n    \"expect\": [\n      {\n        \"indexes\": {\n          \"data\": -1,\n          \"gas\": -1,\n          \"value\": -1\n        },\n        \"network\": [\n          \">=Cancun\"\n        ],\n        \"result\": {\n          \"deadbeef00000000000000000000000000000000\": {\n            \"storage\": {\n              \"0x00\": \"0x73c5f15b1290fd9e66722596c2fa1e1c9341f7acb185530dce0bf0e0fec7dfc6\",\n              \"0x01\": \"0x04\",\n              \"0x02\": \"0x73c5f15b1290fd9e66722596c2fa1e1c9341f7acb185530dce0bf0e0fec7dfc6\",\n              \"0x03\": \"0x04\"\n            }\n          },\n          \"7be7677a20a298ff0676ab31f91a0a923f8d9471\": {\n            \"shouldnotexist\": \"1\"\n          }\n        }\n      }\n    ],\n    \"pre\": {\n      \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\": {\n        \"balance\": \"1000000000000000000\",\n        \"code\": \"\",\n        \"nonce\": \"0\",\n        \"storage\": {\n        }\n      },\n      \"deadbeef00000000000000000000000000000000\": {\n        \"balance\": \"1000000000000000000\",\n        \"code\": \"{ (MSTORE 0 (CREATE2 0 128 (lll { (RETURN 0 (lll { (SELFDESTRUCT 0x0) } 0)) } 128) 0x10)) [[0]] (EXTCODEHASH (MLOAD 0)) [[1]] (EXTCODESIZE (MLOAD 0)) (CALL 0x10000 (MLOAD 0) 0 0 0 0 0) [[2]] (EXTCODEHASH (MLOAD 0)) [[3]] (EXTCODESIZE (MLOAD 0)) (STOP) }\",\n        \"nonce\": \"0\",\n        \"storage\": {\n        }\n      }\n    },\n    \"transaction\": {\n      \"data\": [\n        \"\"\n      ],\n      \"gasLimit\": [\n        \"400000\"\n      ],\n      \"gasPrice\": \"10\",\n      \"nonce\": \"0\",\n      \"secretKey\": \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n      \"to\": \"deadbeef00000000000000000000000000000000\",\n      \"value\": [\n        \"1\"\n      ]\n    }\n  }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stExtCodeHash/extCodeHashCreatedAndDeletedAccountFiller.json",
    "content": "{\n  \"extCodeHashCreatedAndDeletedAccount\": {\n    \"_info\": {\n      \"comment\": \"EXTCODEHASH/EXTCODESIZE of an account created then deleted in same transaction\"\n    },\n    \"env\": {\n      \"currentCoinbase\": \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n      \"currentDifficulty\": \"0x20000\",\n      \"currentGasLimit\": \"1000000\",\n      \"currentNumber\": \"1\",\n      \"currentTimestamp\": \"1000\"\n    },\n    \"expect\": [\n      {\n        \"indexes\": {\n          \"data\": -1,\n          \"gas\": -1,\n          \"value\": -1\n        },\n        \"network\": [\n          \">=Cancun\"\n        ],\n        \"result\": {\n          \"<contract:target:0xdeadbeef00000000000000000000000000000000>\": {\n            \"storage\": {\n              \"0x00\": \"0x73c5f15b1290fd9e66722596c2fa1e1c9341f7acb185530dce0bf0e0fec7dfc6\",\n              \"0x01\": \"0x04\",\n              \"0x02\": \"0x73c5f15b1290fd9e66722596c2fa1e1c9341f7acb185530dce0bf0e0fec7dfc6\",\n              \"0x03\": \"0x04\"\n            }\n          }\n        }\n      }\n    ],\n    \"pre\": {\n      \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n        \"balance\": \"1000000000000000000\",\n        \"code\": \"\",\n        \"nonce\": \"0\",\n        \"storage\": {\n        }\n      },\n      \"<contract:target:0xdeadbeef00000000000000000000000000000000>\": {\n        \"balance\": \"1000000000000000000\",\n        \"code\": \"{ (MSTORE 0 (CREATE2 0 128 (lll { (RETURN 0 (lll { (SELFDESTRUCT 0x0) } 0)) } 128) 0x10)) [[0]] (EXTCODEHASH (MLOAD 0)) [[1]] (EXTCODESIZE (MLOAD 0)) (CALL 0x10000 (MLOAD 0) 0 0 0 0 0) [[2]] (EXTCODEHASH (MLOAD 0)) [[3]] (EXTCODESIZE (MLOAD 0)) (STOP) }\",\n        \"nonce\": \"0\",\n        \"storage\": {\n        }\n      }\n    },\n    \"transaction\": {\n      \"data\": [\n        \"\"\n      ],\n      \"gasLimit\": [\n        \"400000\"\n      ],\n      \"gasPrice\": \"10\",\n      \"nonce\": \"0\",\n      \"secretKey\": \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n      \"to\": \"<contract:target:0xdeadbeef00000000000000000000000000000000>\",\n      \"value\": [\n        \"1\"\n      ]\n    }\n  }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stExtCodeHash/extCodeHashCreatedAndDeletedAccountRecheckInOuterCallFiller.json",
    "content": "{\n  \"extCodeHashCreatedAndDeletedAccountRecheckInOuterCall\": {\n    \"_info\": {\n      \"comment\": \"EXTCODEHASH/EXTCODESIZE of an account created then deleted in a CALL, checking results after the CALL returns\"\n    },\n    \"env\": {\n      \"currentCoinbase\": \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n      \"currentDifficulty\": \"0x20000\",\n      \"currentGasLimit\": \"1000000\",\n      \"currentNumber\": \"1\",\n      \"currentTimestamp\": \"1000\"\n    },\n    \"expect\": [\n      {\n        \"indexes\": {\n          \"data\": -1,\n          \"gas\": -1,\n          \"value\": -1\n        },\n        \"network\": [\n          \">=Cancun\"\n        ],\n        \"result\": {\n          \"deadbeef00000000000000000000000000000000\": {\n            \"storage\": {\n              \"0x00\": \"0x73c5f15b1290fd9e66722596c2fa1e1c9341f7acb185530dce0bf0e0fec7dfc6\",\n              \"0x01\": \"0x04\",\n              \"0x02\": \"0x73c5f15b1290fd9e66722596c2fa1e1c9341f7acb185530dce0bf0e0fec7dfc6\",\n              \"0x03\": \"0x04\"\n            }\n          },\n          \"deadbeef00000000000000000000000000000001\": {\n            \"storage\": {\n              \"0x00\": \"0x73c5f15b1290fd9e66722596c2fa1e1c9341f7acb185530dce0bf0e0fec7dfc6\",\n              \"0x01\": \"0x04\"\n            }\n          },\n          \"7be7677a20a298ff0676ab31f91a0a923f8d9471\": {\n            \"shouldnotexist\": \"1\"\n          }\n        }\n      }\n    ],\n    \"pre\": {\n      \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\": {\n        \"balance\": \"1000000000000000000\",\n        \"code\": \"\",\n        \"nonce\": \"0\",\n        \"storage\": {\n        }\n      },\n      \"deadbeef00000000000000000000000000000000\": {\n        \"balance\": \"1000000000000000000\",\n        \"code\": \"{ (MSTORE 0 (CREATE2 0 128 (lll { (RETURN 0 (lll { (SELFDESTRUCT 0x0) } 0)) } 128) 0x10)) [[0]] (EXTCODEHASH (MLOAD 0)) [[1]] (EXTCODESIZE (MLOAD 0)) (CALL 0x10000 (MLOAD 0) 0 0 0 0 0) [[2]] (EXTCODEHASH (MLOAD 0)) [[3]] (EXTCODESIZE (MLOAD 0)) (STOP) }\",\n        \"nonce\": \"0\",\n        \"storage\": {\n        }\n      },\n      \"deadbeef00000000000000000000000000000001\": {\n        \"balance\": \"1000000000000000000\",\n        \"code\": \"{ (CALL 0x20000 0xdeadbeef00000000000000000000000000000000 0 0 0 0 0) [[0]] (EXTCODEHASH 0x123f4c415171383dcf6f3ac6c3b70fe321e11b5e) [[1]] (EXTCODESIZE 0x123f4c415171383dcf6f3ac6c3b70fe321e11b5e) (STOP) }\",\n        \"nonce\": \"0\",\n        \"storage\": {\n        }\n      }\n    },\n    \"transaction\": {\n      \"data\": [\n        \"\"\n      ],\n      \"gasLimit\": [\n        \"400000\"\n      ],\n      \"gasPrice\": \"10\",\n      \"nonce\": \"0\",\n      \"secretKey\": \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n      \"to\": \"deadbeef00000000000000000000000000000001\",\n      \"value\": [\n        \"1\"\n      ]\n    }\n  }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stExtCodeHash/extCodeHashCreatedAndDeletedAccountStaticCallFiller.json",
    "content": "{\n  \"extCodeHashCreatedAndDeletedAccountStaticCall\": {\n    \"_info\": {\n      \"comment\": \"EXTCODEHASH/EXTCODESIZE of an account created then deleted via STATICCALL in same transaction\"\n    },\n    \"env\": {\n      \"currentCoinbase\": \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n      \"currentDifficulty\": \"0x20000\",\n      \"currentGasLimit\": \"1000000\",\n      \"currentNumber\": \"1\",\n      \"currentTimestamp\": \"1000\"\n    },\n    \"expect\": [\n      {\n        \"indexes\": {\n          \"data\": -1,\n          \"gas\": -1,\n          \"value\": -1\n        },\n        \"network\": [\n          \">=Cancun\"\n        ],\n        \"result\": {\n          \"deadbeef00000000000000000000000000000000\": {\n            \"storage\": {\n              \"0x00\": \"0x73c5f15b1290fd9e66722596c2fa1e1c9341f7acb185530dce0bf0e0fec7dfc6\",\n              \"0x01\": \"0x04\",\n              \"0x02\": \"0x73c5f15b1290fd9e66722596c2fa1e1c9341f7acb185530dce0bf0e0fec7dfc6\",\n              \"0x03\": \"0x04\"\n            }\n          },\n          \"0x123f4c415171383dcf6f3ac6c3b70fe321e11b5e\": {\n            \"code\": \"0x6000ff00\",\n            \"storage\": {\n            }\n          }\n        }\n      }\n    ],\n    \"pre\": {\n      \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\": {\n        \"balance\": \"1000000000000000000\",\n        \"code\": \"\",\n        \"nonce\": \"0\",\n        \"storage\": {\n        }\n      },\n      \"deadbeef00000000000000000000000000000000\": {\n        \"balance\": \"1000000000000000000\",\n        \"code\": \"{ (MSTORE 0 (CREATE2 0 128 (lll { (RETURN 0 (lll { (SELFDESTRUCT 0x0) } 0)) } 128) 0x10)) [[0]] (EXTCODEHASH (MLOAD 0)) [[1]] (EXTCODESIZE (MLOAD 0)) (STATICCALL 0x10000 (MLOAD 0) 0 0 0 0) [[2]] (EXTCODEHASH (MLOAD 0)) [[3]] (EXTCODESIZE (MLOAD 0)) (STOP) }\",\n        \"nonce\": \"0\",\n        \"storage\": {\n        }\n      }\n    },\n    \"transaction\": {\n      \"data\": [\n        \"\"\n      ],\n      \"gasLimit\": [\n        \"400000\"\n      ],\n      \"gasPrice\": \"10\",\n      \"nonce\": \"0\",\n      \"secretKey\": \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n      \"to\": \"deadbeef00000000000000000000000000000000\",\n      \"value\": [\n        \"1\"\n      ]\n    }\n  }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stExtCodeHash/extCodeHashDELEGATECALLFiller.json",
    "content": "{\n    \"extCodeHashDELEGATECALL\" : {\n\t\"_info\" : {\n\t    \"comment\": \"EXTCODEHASH of an account during a DELEGATECALL\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000000001\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x56570de287d73cd1cb6092bb8fdee6173974955fdef345ae579ee9f475ea7432\",\n            \t\t\t    \"0x01\" : \"0x02\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (DELEGATECALL 150000 <contract:0xdeadbeef00000000000000000000000000000000> 0 0 0 32) (RETURNDATACOPY 0 0 32) [[0]] (MLOAD 0) (DELEGATECALL 150000 <contract:0xaeadbeef00000000000000000000000000000000> 0 0 0 32) (RETURNDATACOPY 0 0 32) [[1]] (MLOAD 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                  \"0x00\": \"0xdeadbeef\"\n                }\n            },\n            \"<contract:0xdeadbeef00000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 0 (EXTCODEHASH <contract:0xdeadbeef00000000000000000000000000000001>)) (RETURN 0 32) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                  \"0x00\": \"0xdeadbeef\"\n                }\n            },\n            \"<contract:0xaeadbeef00000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 0 (EXTCODESIZE <contract:0xdeadbeef00000000000000000000000000000001>)) (RETURN 0 32) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                  \"0x00\": \"0xdeadbeef\"\n                }\n            },\n            \"<contract:0xdeadbeef00000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x1234\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stExtCodeHash/extCodeHashDeletedAccount1CancunFiller.yml",
    "content": "# EXTCODEHASH to a deleted account\n---\nextCodeHashDeletedAccount1Cancun:\n  _info:\n    comment: |\n      1) Account A already exists in the state and contains code\n      Call to Account B do the following:\n      - stores Account A code hash to 1\n      - stores Account A code size to 2\n      - stores Account A code to 3\n      - Run selfdestruct on A\n      - stores Account A code hash to 4\n      - stores Account A code size to 5\n      - stores Account A code to 6\n      Same as extCodeHashDeletedAccount1Cancun test but with dynamic account suicide for Cancun\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: \"1000000\"\n    currentNumber: \"1\"\n    currentTimestamp: \"1000\"\n  pre:\n    095e7baea6a6c7c4c2dfeb977efac326af552d87:\n      balance: '2000000000000000000'\n      code: |\n        {\n          ;; create 0xd2571607e241ecf590ed94b12d87c94babe36db6 (Account A)\n          (CREATE 1000000000000000000 0 (lll \n                {\n                    (CALL 100000 0xcccccccc00000000000000000000000000000000 0 0 0 0 0) \n                    (RETURN 0 (lll\n                        {\n                          (SELFDESTRUCT (BALANCE 0xdeadbeef00000000000000000000000000000000))\n                        }\n                    0))\n                }\n          0))\n\n          (CALL 260000 0xbbbbbbbb00000000000000000000000000000000 0 0 0 0 32)\n        }\n      nonce: '0'\n      storage: {}\n    cccccccc00000000000000000000000000000000:\n      balance: '1000000000000000000'\n      code: |\n        {\n            [[1]] 1\n        }\n      nonce: '0'\n      storage: {}\n    # Account A: already exists in the state\n    # contains selfdestruct code\n    aaaaaaaa00000000000000000000000000000000:\n      balance: '1000000000000000000'\n      code: |\n        {\n          (SELFDESTRUCT (BALANCE 0xdeadbeef00000000000000000000000000000000))\n        }\n      nonce: '0'\n      storage: {}\n    # Account B\n    # Stores Account A code hash to 1, code size to 2, code to 3\n    # Run selfdestruct on A\n    # Stores Account A code hash to 4, code size to 5, code to 6\n    bbbbbbbb00000000000000000000000000000000:\n      balance: '1000000000000000000'\n      code: |\n        {\n          [[1]] (EXTCODEHASH 0xd2571607e241ecf590ed94b12d87c94babe36db6)\n          [[2]] (EXTCODESIZE 0xd2571607e241ecf590ed94b12d87c94babe36db6)\n          (EXTCODECOPY 0xd2571607e241ecf590ed94b12d87c94babe36db6 0 0 (SLOAD 2))\n          [[3]] (MLOAD 0)\n          \n          (CALL 150000 0xd2571607e241ecf590ed94b12d87c94babe36db6 0 0 0 0 32)\n\n          [[4]] (EXTCODEHASH 0xd2571607e241ecf590ed94b12d87c94babe36db6)\n          [[5]] (EXTCODESIZE 0xd2571607e241ecf590ed94b12d87c94babe36db6)\n          (EXTCODECOPY 0xd2571607e241ecf590ed94b12d87c94babe36db6 32 0 (SLOAD 5))\n          [[6]] (MLOAD 32)\n        }\n      nonce: '0'\n      storage: {}\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '1000000000000000000'\n      code: ''\n      nonce: '0'\n      storage: {}\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        095e7baea6a6c7c4c2dfeb977efac326af552d87:\n          balance: '1000000000000000001'\n          storage: {\n          }\n        d2571607e241ecf590ed94b12d87c94babe36db6:\n          shouldnotexist: '1'\n        bbbbbbbb00000000000000000000000000000000:\n          balance: '1000000000000000000'\n          storage: {\n            \"0x01\": '0x94e08c34847a4e52a3e523b70a5d9b2151155bd0bc10f7b7c550bda63229c756',\n            \"0x02\": '0x18',\n            \"0x03\": '0x73deadbeef0000000000000000000000000000000031ff000000000000000000',\n            \"0x04\": '0x94e08c34847a4e52a3e523b70a5d9b2151155bd0bc10f7b7c550bda63229c756',\n            \"0x05\": '0x18',\n            \"0x06\": '0x73deadbeef0000000000000000000000000000000031ff000000000000000000'\n          }\n        cccccccc00000000000000000000000000000000:\n          storage: {\n             \"0x01\" : \"0x01\"\n           }\n\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: 45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\n    to: 095e7baea6a6c7c4c2dfeb977efac326af552d87\n    value:\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stExtCodeHash/extCodeHashDeletedAccount1Filler.yml",
    "content": "# EXTCODEHASH to a deleted account\n---\nextCodeHashDeletedAccount1:\n  _info:\n    comment: |\n      1) Account A already exists in the state and contains code\n      Call to Account B do the following:\n      - stores Account A code hash to 1\n      - stores Account A code size to 2\n      - stores Account A code to 3\n      - Run selfdestruct on A\n      - stores Account A code hash to 4\n      - stores Account A code size to 5\n      - stores Account A code to 6\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: \"1000000\"\n    currentNumber: \"1\"\n    currentTimestamp: \"1000\"\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: '1000000000000000000'\n      code: |\n        {\n          (CALL 260000 <contract:0xbbbbbbbb00000000000000000000000000000000> 0 0 0 0 32)\n        }\n      nonce: '0'\n      storage: {}\n    # Account A: already exists in the state\n    # contains selfdestruct code\n    <contract:0xaaaaaaaa00000000000000000000000000000000>:\n      balance: '1000000000000000000'\n      code: |\n        {\n          (SELFDESTRUCT (BALANCE 0xdeadbeef00000000000000000000000000000000))\n        }\n      nonce: '0'\n      storage: {}\n    # Account B\n    # Stores Account A code hash to 1, code size to 2, code to 3\n    # Run selfdestruct on A\n    # Stores Account A code hash to 4, code size to 5, code to 6\n    <contract:0xbbbbbbbb00000000000000000000000000000000>:\n      balance: '1000000000000000000'\n      code: |\n        {\n          [[1]] (EXTCODEHASH <contract:0xaaaaaaaa00000000000000000000000000000000>)\n          [[2]] (EXTCODESIZE <contract:0xaaaaaaaa00000000000000000000000000000000>)\n          (EXTCODECOPY <contract:0xaaaaaaaa00000000000000000000000000000000> 0 0 (SLOAD 2))\n          [[3]] (MLOAD 0)\n          \n          (CALL 150000 <contract:0xaaaaaaaa00000000000000000000000000000000> 0 0 0 0 32)\n\n          [[4]] (EXTCODEHASH <contract:0xaaaaaaaa00000000000000000000000000000000>)\n          [[5]] (EXTCODESIZE <contract:0xaaaaaaaa00000000000000000000000000000000>)\n          (EXTCODECOPY <contract:0xaaaaaaaa00000000000000000000000000000000> 32 0 (SLOAD 5))\n          [[6]] (MLOAD 32)\n        }\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: ''\n      nonce: '0'\n      storage: {}\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n          balance: '1000000000000000001'\n          storage: {         \n          }\n        <contract:0xaaaaaaaa00000000000000000000000000000000>:\n          balance: '0'\n          nonce: 0\n          code: '0x73deadbeef0000000000000000000000000000000031ff00'\n          storage: {}\n        <contract:0xbbbbbbbb00000000000000000000000000000000>:\n          balance: '1000000000000000000'\n          storage: {\n            \"0x01\": '0x94e08c34847a4e52a3e523b70a5d9b2151155bd0bc10f7b7c550bda63229c756',\n            \"0x02\": '0x18',\n            \"0x03\": '0x73deadbeef0000000000000000000000000000000031ff000000000000000000',\n            \"0x04\": '0x94e08c34847a4e52a3e523b70a5d9b2151155bd0bc10f7b7c550bda63229c756',\n            \"0x05\": '0x18',\n            \"0x06\": '0x73deadbeef0000000000000000000000000000000031ff000000000000000000'\n          }\n\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stExtCodeHash/extCodeHashDeletedAccount2CancunFiller.yml",
    "content": "# EXTCODEHASH to a deleted account\n---\nextCodeHashDeletedAccount2Cancun:\n  _info:\n    comment: |\n      2) Account A already exists in the state and contains code\n      Call to Account B stores Account A code hash to 1, code size to 2, code to 3\n      Call to Account C runs self destruct on A\n      Call to Account B stores Account A code hash to 4, code size to 5, code to 6\n      Just in case copy of extCodeHashDeletedAccount2 test with dynamic account suicide for Cancun\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: \"1000000\"\n    currentNumber: \"1\"\n    currentTimestamp: \"1000\"\n  pre:\n    095e7baea6a6c7c4c2dfeb977efac326af552d87:\n      balance: '2000000000000000000'\n      code: |\n        {\n          ;; create 0xd2571607e241ecf590ed94b12d87c94babe36db6 (Account A)\n          (CREATE 1000000000000000000 0 (lll \n                {\n                    (CALL 100000 0xcccccccc00000000000000000000000000000000 0 0 0 0 0) \n                    (RETURN 0 (lll\n                        {\n                          (SELFDESTRUCT (BALANCE 0xdeadbeef00000000000000000000000000000000))\n                        }\n                    0))\n                }\n          0))\n\n          (MSTORE 0 0x01)\n          (CALL 150000 0xbbbbbbbb00000000000000000000000000000000 0 0 32 0 32)\n          \n          (CALL 150000 0xd2571607e241ecf590ed94b12d87c94babe36db6 0 0 0  0 32)\n          \n          (MSTORE 32 0x04)\n          (CALL 150000 0xbbbbbbbb00000000000000000000000000000000 0 32 32 0 32)\n        }\n      nonce: '0'\n      storage: {}\n    # Account B\n    # Receives storage key as call data\n    bbbbbbbb00000000000000000000000000000000:\n      balance: '1000000000000000000'\n      code: |\n        {\n          (CALLDATACOPY 0 0 32)\n          (SSTORE (MLOAD 0) (EXTCODEHASH 0xd2571607e241ecf590ed94b12d87c94babe36db6))\n\n          (MSTORE 32 (EXTCODESIZE 0xd2571607e241ecf590ed94b12d87c94babe36db6))\n          \n          (MSTORE 0 (ADD (MLOAD 0) 1))\n          (SSTORE (MLOAD 0) (MLOAD 32))\n\n          (MSTORE 0 (ADD (MLOAD 0) 1))\n          (EXTCODECOPY 0xd2571607e241ecf590ed94b12d87c94babe36db6 64 0 (MLOAD 32))\n          (SSTORE (MLOAD 0) (MLOAD 64))\n        }\n      nonce: '0'\n      storage: {}\n    cccccccc00000000000000000000000000000000:\n      balance: '1000000000000000000'\n      code: '{ [[1]] 1 }'\n      nonce: '0'\n      storage: {}\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '1000000000000000000'\n      code: ''\n      nonce: '0'\n      storage: {}\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        095e7baea6a6c7c4c2dfeb977efac326af552d87:\n          balance: '1000000000000000001'\n          storage: {}\n        d2571607e241ecf590ed94b12d87c94babe36db6:\n          shouldnotexist: '1'\n        cccccccc00000000000000000000000000000000:\n          storage: {\n            \"0x01\" : \"0x01\"\n           }\n        bbbbbbbb00000000000000000000000000000000:\n          balance: '1000000000000000000'\n          storage: {\n            \"0x01\": '0x94e08c34847a4e52a3e523b70a5d9b2151155bd0bc10f7b7c550bda63229c756',\n            \"0x02\": '0x18',\n            \"0x03\": '0x73deadbeef0000000000000000000000000000000031ff000000000000000000',\n            \"0x04\": '0x94e08c34847a4e52a3e523b70a5d9b2151155bd0bc10f7b7c550bda63229c756',\n            \"0x05\": '0x18',\n            \"0x06\": '0x73deadbeef0000000000000000000000000000000031ff000000000000000000'\n          }\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: 45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\n    to: 095e7baea6a6c7c4c2dfeb977efac326af552d87\n    value:\n    - '1'\n\n"
  },
  {
    "path": "tests/static/state_tests/stExtCodeHash/extCodeHashDeletedAccount2Filler.yml",
    "content": "# EXTCODEHASH to a deleted account\n---\nextCodeHashDeletedAccount2:\n  _info:\n    comment: |\n      2) Account A already exists in the state and contains code\n      Call to Account B stores Account A code hash to 1, code size to 2, code to 3\n      Call to Account C runs self destruct on A\n      Call to Account B stores Account A code hash to 4, code size to 5, code to 6\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: \"1000000\"\n    currentNumber: \"1\"\n    currentTimestamp: \"1000\"\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: '1000000000000000000'\n      code: |\n        {\n          (MSTORE 0 0x01)\n          (CALL 150000 <contract:0xbbbbbbbb00000000000000000000000000000000> 0 0 32 0 32)\n          \n          (CALL 150000 <contract:0xaaaaaaaa00000000000000000000000000000000> 0 0 0  0 32)\n          \n          (MSTORE 32 0x04)\n          (CALL 150000 <contract:0xbbbbbbbb00000000000000000000000000000000> 0 32 32 0 32)\n        }\n      nonce: '0'\n      storage: {}\n    # Account A: already exists in the state\n    # contains selfdestruct code\n    <contract:0xaaaaaaaa00000000000000000000000000000000>:\n      balance: '1000000000000000000'\n      code: |\n        {\n          (SELFDESTRUCT (BALANCE 0xdeadbeef00000000000000000000000000000000))\n        }\n      nonce: '0'\n      storage: {}\n    # Account B\n    # Receives storage key as call data\n    <contract:0xbbbbbbbb00000000000000000000000000000000>:\n      balance: '1000000000000000000'\n      code: |\n        {\n          (CALLDATACOPY 0 0 32)\n          (SSTORE (MLOAD 0) (EXTCODEHASH <contract:0xaaaaaaaa00000000000000000000000000000000>))\n\n          (MSTORE 32 (EXTCODESIZE <contract:0xaaaaaaaa00000000000000000000000000000000>))\n          \n          (MSTORE 0 (ADD (MLOAD 0) 1))\n          (SSTORE (MLOAD 0) (MLOAD 32))\n\n          (MSTORE 0 (ADD (MLOAD 0) 1))\n          (EXTCODECOPY <contract:0xaaaaaaaa00000000000000000000000000000000> 64 0 (MLOAD 32))\n          (SSTORE (MLOAD 0) (MLOAD 64))\n        }\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: ''\n      nonce: '0'\n      storage: {}\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n          balance: '1000000000000000001'\n          storage: {}\n        <contract:0xaaaaaaaa00000000000000000000000000000000>:\n          balance: '0'\n          nonce: 0\n          code: '0x73deadbeef0000000000000000000000000000000031ff00'\n          storage: {}\n        <contract:0xbbbbbbbb00000000000000000000000000000000>:\n          balance: '1000000000000000000'\n          storage: {\n            \"0x01\": '0x94e08c34847a4e52a3e523b70a5d9b2151155bd0bc10f7b7c550bda63229c756',\n            \"0x02\": '0x18',\n            \"0x03\": '0x73deadbeef0000000000000000000000000000000031ff000000000000000000',\n            \"0x04\": '0x94e08c34847a4e52a3e523b70a5d9b2151155bd0bc10f7b7c550bda63229c756',\n            \"0x05\": '0x18',\n            \"0x06\": '0x73deadbeef0000000000000000000000000000000031ff000000000000000000'\n          }\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '1'\n\n"
  },
  {
    "path": "tests/static/state_tests/stExtCodeHash/extCodeHashDeletedAccount3Filler.yml",
    "content": "# EXTCODEHASH to a deleted account\n---\nextCodeHashDeletedAccount3:\n  _info:\n    comment: |\n      3) Call creates Account A (0x95ab1c33798981918da6d27056f70376674878d2)\n      Call to Account B do the following:\n      - stores Account A code hash to 1\n      - stores Account A code size to 2\n      - stores Account A code to 3\n      - Run selfdestruct on A\n      - stores Account A code hash to 4\n      - stores Account A code size to 5\n      - stores Account A code to 6\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: \"1000000\"\n    currentNumber: \"1\"\n    currentTimestamp: \"1000\"\n  pre:\n    095e7baea6a6c7c4c2dfeb977efac326af552d87:\n      balance: '1000000000000000000'\n      code: |\n        {\n          ;; Creates Account A using code in existing account C\n          (MSTORE 0\n            (CREATE2 0 0\n              (lll\n              {\n                (MSTORE 0 (EXTCODESIZE 0xcccccccc00000000000000000000000000000000))\n                (EXTCODECOPY 0xcccccccc00000000000000000000000000000000\n                             32\n                             0\n                             (MLOAD 0))\n                (RETURN 32 (MLOAD 0))\n              }\n              0)\n            0))\n\n          ;; Stores new Account A address\n          [[0]] (MLOAD 0)\n\n          ;; Call Account B:\n          (CALL 150000 0xbbbbbbbb00000000000000000000000000000000 0 0 0 0 32)\n          (STOP)\n        }\n      nonce: '0'\n      storage: {}\n    bbbbbbbb00000000000000000000000000000000:\n      balance: '1000000000000000000'\n      code: |\n        {\n          ;; Stores Account A hash to 1\n          [[1]] (EXTCODEHASH 0x554e36262c0e0ab156397c32444e4a018fe93b18)\n          [[2]] (EXTCODESIZE 0x554e36262c0e0ab156397c32444e4a018fe93b18)\n          \n          (EXTCODECOPY 0x554e36262c0e0ab156397c32444e4a018fe93b18 0 0 (SLOAD 2))\n          [[3]] (MLOAD 0)\n          ;; Run self destruct on Account A\n          (CALL 150000 0x554e36262c0e0ab156397c32444e4a018fe93b18 0 0  0  0 32)\n\n          ;; Stores Account A hash to 2\n          [[4]] (EXTCODEHASH 0x554e36262c0e0ab156397c32444e4a018fe93b18)\n          [[5]] (EXTCODESIZE 0x554e36262c0e0ab156397c32444e4a018fe93b18)\n          (EXTCODECOPY 0x554e36262c0e0ab156397c32444e4a018fe93b18 32 0 (SLOAD 5))\n          [[6]] (MLOAD 32)\n        }\n      nonce: '0'\n      storage: {}\n    cccccccc00000000000000000000000000000000:\n      balance: '0'\n      code: |\n        {\n          (SELFDESTRUCT 0xbbbbbbbb00000000000000000000000000000000)\n        }\n      nonce: '0'\n      storage: {}\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '1000000000000000000'\n      code: ''\n      nonce: '0'\n      storage: {}\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        095e7baea6a6c7c4c2dfeb977efac326af552d87:\n          balance: '1000000000000000001'\n          storage: {\n            \"0x00\": '0x554e36262c0e0ab156397c32444e4a018fe93b18'\n            }\n        bbbbbbbb00000000000000000000000000000000:\n          balance: '1000000000000000000'\n          storage: {\n            \"0x01\": '0xbc0e1b58b60bffd44555bf2c703da0fc6e1e3971797e9c5554512d69f45e7a52',\n            \"0x02\": '0x17',\n            \"0x03\": '0x73bbbbbbbb00000000000000000000000000000000ff00000000000000000000',\n            \"0x04\": '0xbc0e1b58b60bffd44555bf2c703da0fc6e1e3971797e9c5554512d69f45e7a52',\n            \"0x05\": '0x17',\n            \"0x06\": '0x73bbbbbbbb00000000000000000000000000000000ff00000000000000000000',\n          }\n        95ab1c33798981918da6d27056f70376674878d2:\n          shouldnotexist: '1'\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: 45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\n    to: 095e7baea6a6c7c4c2dfeb977efac326af552d87\n    value:\n    - '1'\n    \n"
  },
  {
    "path": "tests/static/state_tests/stExtCodeHash/extCodeHashDeletedAccount4Filler.yml",
    "content": "# EXTCODEHASH to a deleted account\n---\nextCodeHashDeletedAccount4:\n  _info:\n    comment: |\n      4) Call creates Account A\n      Call to Account B stores Account A hash to 1\n      Call to Account C runs self destruct on A\n      Call to Account B stores Account a hash to 2\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: \"1000000\"\n    currentNumber: \"1\"\n    currentTimestamp: \"1000\"\n  pre:\n    095e7baea6a6c7c4c2dfeb977efac326af552d87:\n      balance: '1000000000000000000'\n      code: |\n        {\n          ;; Creates Account A using code in existing account D\n          (MSTORE 0\n            (CREATE2 0 0\n              (lll\n              {\n                (MSTORE 0 (EXTCODESIZE 0xdddddddd00000000000000000000000000000000))\n                (EXTCODECOPY 0xdddddddd00000000000000000000000000000000\n                             32\n                             0\n                             (MLOAD 0))\n                (RETURN 32 (MLOAD 0))\n              }\n              0)\n            0))\n\n          ;; Stores new Account A address\n          [[0]] (MLOAD 0)\n\n          ;; Call Account B:\n          ;; Stores Account A code hash to 1, code size to 2, code to 3\n          (MSTORE 32 0x01)\n          (CALL 150000 0xbbbbbbbb00000000000000000000000000000000 0 32 32 0 32)\n\n          ;; Call Account C:\n          ;; Runs self Destructs on Account A\n          (CALL 150000 0xcccccccc00000000000000000000000000000000 0 0  0  0 32)\n\n          ;; Call Account B:\n          ;; Stores Account B code hash to 4, code size to 5, code to 6\n          (MSTORE 64 0x04)\n          (CALL 150000 0xbbbbbbbb00000000000000000000000000000000 0 64 32 0 32)\n          \n          (STOP)\n        }\n      nonce: '0'\n      storage: {}\n    bbbbbbbb00000000000000000000000000000000:\n      balance: '1000000000000000000'\n      code: |\n        {\n          ;; get key from call data\n          (CALLDATACOPY 0 0 32)\n          \n          ;; store Account A code hash\n          [[(MLOAD 0)]] (EXTCODEHASH 0xc5691dc90d9fd2a2e9a5fa5bd28bf77ffd60aa78)\n          \n          (MSTORE 0 (ADD (MLOAD 0) 1))  ;; increments storage key\n          [[(MLOAD 0)]] (EXTCODESIZE 0xc5691dc90d9fd2a2e9a5fa5bd28bf77ffd60aa78)\n\n          (EXTCODECOPY 0xc5691dc90d9fd2a2e9a5fa5bd28bf77ffd60aa78 32 0 (SLOAD (MLOAD 0)))\n          (MSTORE 0 (ADD (MLOAD 0) 1))  ;; increments storage key\n          [[(MLOAD 0)]] (MLOAD 32)\n        }\n      nonce: '0'\n      storage: {}\n    cccccccc00000000000000000000000000000000:\n      balance: '0'\n      code: |\n        {\n          ;; Run self destruct on Account A\n          (CALL 150000 0xc5691dc90d9fd2a2e9a5fa5bd28bf77ffd60aa78 0 0  0  0 32)\n        }\n      nonce: '0'\n      storage: {}\n    dddddddd00000000000000000000000000000000:\n      balance: '0'\n      code: |\n        {\n          (SELFDESTRUCT 0xbbbbbbbb00000000000000000000000000000000)\n        }\n      nonce: '0'\n      storage: {}\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '1000000000000000000'\n      code: ''\n      nonce: '0'\n      storage: {}\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        095e7baea6a6c7c4c2dfeb977efac326af552d87:\n          balance: '1000000000000000001'\n          storage: {\n            \"0x00\": '0xc5691dc90d9fd2a2e9a5fa5bd28bf77ffd60aa78'\n            }\n        bbbbbbbb00000000000000000000000000000000:\n          balance: '1000000000000000000'\n          storage: {\n            \"0x01\": '0xbc0e1b58b60bffd44555bf2c703da0fc6e1e3971797e9c5554512d69f45e7a52',\n            \"0x02\": '0x17',\n            \"0x03\": '0x73bbbbbbbb00000000000000000000000000000000ff00000000000000000000',\n            \"0x04\": '0xbc0e1b58b60bffd44555bf2c703da0fc6e1e3971797e9c5554512d69f45e7a52',\n            \"0x05\": '0x17',\n            \"0x06\": '0x73bbbbbbbb00000000000000000000000000000000ff00000000000000000000'\n          }\n        e713449c212d891357cc2966816b1d528cfb59e0:\n          shouldnotexist: '1'\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: 45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\n    to: 095e7baea6a6c7c4c2dfeb977efac326af552d87\n    value:\n    - '1'\n    \n"
  },
  {
    "path": "tests/static/state_tests/stExtCodeHash/extCodeHashDeletedAccountCancunFiller.yml",
    "content": "# EXTCODEHASH to a deleted account same transaction\n---\nextCodeHashDeletedAccountCancun:\n  _info:\n    comment: |\n      Get account A (aaaaaaaa00000000000000000000000000000000) code hash, code size, and code\n      Calls Account A's code which causes self destruction of A\n      Get account A codehash, code size and code\n      It is still getting the same values because selfdestruct is performed\n      at the end of transaction during state finalization stage.\n      Same as extCodeHashDeletedAccount test but with dynamic account suicide for Cancun\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: \"1000000\"\n    currentNumber: \"1\"\n    currentTimestamp: \"1000\"\n  pre:\n    # get account A codehash, destructs account A, get account A codehash\n    095e7baea6a6c7c4c2dfeb977efac326af552d87:\n      balance: '2000000000000000000'\n      code: |   \n        {\n          ;; create 0xd2571607e241ecf590ed94b12d87c94babe36db6 (Account A)\n          (CREATE 1000000000000000000 0 (lll \n                {\n                    (CALL 100000 0xbbbbbbbb00000000000000000000000000000000 0 0 0 0 0) \n                    (RETURN 0 (lll\n                        {\n                            (SELFDESTRUCT 0xdeadbeef00000000000000000000000000000000)\n                        }\n                    0))\n                }\n          0))\n\n          ;; Gets external code hash, stores it in [[0]]\n          (CALL 150000 0xdeadbeef00000000000000000000000000000000 0 0 0 0 32)\n          (RETURNDATACOPY 0 0 32)\n          [[0]] (MLOAD 0)\n\n          ;; Gets external code size, stores it in [[1]]\n          (CALL 150000 0xdeadbeef00000000000000000000000000000001 0 0 0 0 32)\n          (RETURNDATACOPY 0 0 32)\n          [[1]] (MLOAD 0)\n\n          ;; Gets external code, stores it in [[2]]\n          (CALL 150000 0xdeadbeef00000000000000000000000000000002 0 0 0 0 32)\n          (RETURNDATACOPY 0 0 32)\n          [[2]] (MLOAD 0)\n\n\n          ;; Call Account A (self destructs)\n          (CALL 150000 0xd2571607e241ecf590ed94b12d87c94babe36db6 0 0 0 0 32)\n\n\n          ;; Gets external code hash, stores it in [[3]]\n          (CALL 150000 0xdeadbeef00000000000000000000000000000000 0 0 0 0 32)\n          (RETURNDATACOPY 0 0 32)\n          [[3]] (MLOAD 0)\n\n          ;; Gets external code size, stores it in [[4]]\n          (CALL 150000 0xdeadbeef00000000000000000000000000000001 0 0 0 0 32)\n          (RETURNDATACOPY 0 0 32)\n          [[4]] (MLOAD 0)\n\n          ;; Gets external code, stores it in [[5]]\n          (CALL 150000 0xdeadbeef00000000000000000000000000000002 0 0 0 0 32)\n          (RETURNDATACOPY 0 0 32)\n          [[5]] (MLOAD 0)\n\n        }\n      nonce: '0'\n      storage: {}\n    bbbbbbbb00000000000000000000000000000000:\n      balance: '1000000000000000000'\n      code: '{ [[1]] 1 }'\n      nonce: '0'\n      storage: {}\n    # Returns External Code Hash\n    deadbeef00000000000000000000000000000000:\n      balance: '1000000000000000000'\n      code: |\n        {\n          (MSTORE 0 (EXTCODEHASH 0xd2571607e241ecf590ed94b12d87c94babe36db6))\n          (RETURN 0 32)\n        }\n      nonce: '0'\n      storage: {}\n    # Returns External Code Size\n    deadbeef00000000000000000000000000000001:\n      balance: '1000000000000000000'\n      code: |\n        {\n          (MSTORE 0 (EXTCODESIZE 0xd2571607e241ecf590ed94b12d87c94babe36db6))\n          (RETURN 0 32)\n        }\n      nonce: '0'\n      storage: {}\n    # Returns the first 32 bytes of the External Code\n    deadbeef00000000000000000000000000000002:\n      balance: '1000000000000000000'\n      code: |\n        {\n          ;;(MSTORE 0 (EXTCODESIZE 0xd2571607e241ecf590ed94b12d87c94babe36db6))\n          ;;(EXTCODECOPY 0xd2571607e241ecf590ed94b12d87c94babe36db6\n            \n          (EXTCODECOPY 0xd2571607e241ecf590ed94b12d87c94babe36db6\n                       0\n                       0\n                      (EXTCODESIZE 0xd2571607e241ecf590ed94b12d87c94babe36db6))\n          (RETURN 0 32)\n        }\n      nonce: '0'\n      storage: {}\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '1000000000000000000'\n      code: ''\n      nonce: '0'\n      storage: {}\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        095e7baea6a6c7c4c2dfeb977efac326af552d87:\n          balance: '1000000000000000001'\n          storage: {\n            \"0x00\": '0xaa174f6647c45e8a984f39062ca89ccc3588c787d91106cfd57df387bd504efc',\n            \"0x01\": '0x17',\n            \"0x02\": '0x73deadbeef00000000000000000000000000000000ff00000000000000000000',\n            \"0x03\": '0xaa174f6647c45e8a984f39062ca89ccc3588c787d91106cfd57df387bd504efc',\n            \"0x04\": '0x17',\n            \"0x05\": '0x73deadbeef00000000000000000000000000000000ff00000000000000000000'\n          }\n        d2571607e241ecf590ed94b12d87c94babe36db6:\n          shouldnotexist: '1'\n        deadbeef00000000000000000000000000000000:\n          balance: '2000000000000000000'\n        bbbbbbbb00000000000000000000000000000000:\n          storage: {\n            \"0x01\" : \"0x01\"\n           }\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: 45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\n    to: 095e7baea6a6c7c4c2dfeb977efac326af552d87\n    value:\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stExtCodeHash/extCodeHashDeletedAccountFiller.yml",
    "content": "# EXTCODEHASH to a deleted account same transaction\n---\nextCodeHashDeletedAccount:\n  _info:\n    comment: |\n      Get account A (aaaaaaaa00000000000000000000000000000000) code hash, code size, and code\n      Calls Account A's code which causes self destruction of A\n      Get account A codehash, code size and code\n      It is still getting the same values because selfdestruct is performed\n      at the end of transaction during state finalization stage.\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: \"1000000\"\n    currentNumber: \"1\"\n    currentTimestamp: \"1000\"\n  pre:\n    # get account A codehash, destructs account A, get account A codehash\n    095e7baea6a6c7c4c2dfeb977efac326af552d87:\n      balance: '1000000000000000000'\n      code: |   \n        {\n          ;; Gets external code hash, stores it in [[0]]\n          (CALL 150000 0xdeadbeef00000000000000000000000000000000 0 0 0 0 32)\n          (RETURNDATACOPY 0 0 32)\n          [[0]] (MLOAD 0)\n\n          ;; Gets external code size, stores it in [[1]]\n          (CALL 150000 0xdeadbeef00000000000000000000000000000001 0 0 0 0 32)\n          (RETURNDATACOPY 0 0 32)\n          [[1]] (MLOAD 0)\n\n          ;; Gets external code, stores it in [[2]]\n          (CALL 150000 0xdeadbeef00000000000000000000000000000002 0 0 0 0 32)\n          (RETURNDATACOPY 0 0 32)\n          [[2]] (MLOAD 0)\n\n\n          ;; Call Account A (self destructs)\n          (CALL 150000 0xaaaaaaaa00000000000000000000000000000000 0 0 0 0 32)\n\n\n          ;; Gets external code hash, stores it in [[3]]\n          (CALL 150000 0xdeadbeef00000000000000000000000000000000 0 0 0 0 32)\n          (RETURNDATACOPY 0 0 32)\n          [[3]] (MLOAD 0)\n\n          ;; Gets external code size, stores it in [[4]]\n          (CALL 150000 0xdeadbeef00000000000000000000000000000001 0 0 0 0 32)\n          (RETURNDATACOPY 0 0 32)\n          [[4]] (MLOAD 0)\n\n          ;; Gets external code, stores it in [[5]]\n          (CALL 150000 0xdeadbeef00000000000000000000000000000002 0 0 0 0 32)\n          (RETURNDATACOPY 0 0 32)\n          [[5]] (MLOAD 0)\n\n        }\n      nonce: '0'\n      storage: {}\n    aaaaaaaa00000000000000000000000000000000:\n      balance: '1000000000000000000'\n      code: |\n        {\n          (SELFDESTRUCT 0xdeadbeef00000000000000000000000000000000)\n        }\n      nonce: '0'\n      storage: {}\n    # Returns External Code Hash\n    deadbeef00000000000000000000000000000000:\n      balance: '1000000000000000000'\n      code: |\n        {\n          (MSTORE 0 (EXTCODEHASH 0xaaaaaaaa00000000000000000000000000000000))\n          (RETURN 0 32)\n        }\n      nonce: '0'\n      storage: {}\n    # Returns External Code Size\n    deadbeef00000000000000000000000000000001:\n      balance: '1000000000000000000'\n      code: |\n        {\n          (MSTORE 0 (EXTCODESIZE 0xaaaaaaaa00000000000000000000000000000000))\n          (RETURN 0 32)\n        }\n      nonce: '0'\n      storage: {}\n    # Returns the first 32 bytes of the External Code\n    deadbeef00000000000000000000000000000002:\n      balance: '1000000000000000000'\n      code: |\n        {\n          ;;(MSTORE 0 (EXTCODESIZE 0xaaaaaaaa00000000000000000000000000000000))\n          ;;(EXTCODECOPY 0xaaaaaaaa00000000000000000000000000000000\n            \n          (EXTCODECOPY 0xaaaaaaaa00000000000000000000000000000000\n                       0\n                       0\n                      (EXTCODESIZE 0xaaaaaaaa00000000000000000000000000000000))\n          (RETURN 0 32)\n        }\n      nonce: '0'\n      storage: {}\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '1000000000000000000'\n      code: ''\n      nonce: '0'\n      storage: {}\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        095e7baea6a6c7c4c2dfeb977efac326af552d87:\n          balance: '1000000000000000001'\n          storage: {\n            \"0x00\": '0xaa174f6647c45e8a984f39062ca89ccc3588c787d91106cfd57df387bd504efc',\n            \"0x01\": '0x17',\n            \"0x02\": '0x73deadbeef00000000000000000000000000000000ff00000000000000000000',\n            \"0x03\": '0xaa174f6647c45e8a984f39062ca89ccc3588c787d91106cfd57df387bd504efc',\n            \"0x04\": '0x17',\n            \"0x05\": '0x73deadbeef00000000000000000000000000000000ff00000000000000000000'\n          }\n        aaaaaaaa00000000000000000000000000000000:\n          code: '0x73deadbeef00000000000000000000000000000000ff00'\n          balance: 0\n          nonce: 0\n          storage: {}\n        deadbeef00000000000000000000000000000000:\n          balance: '2000000000000000000'\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: 45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\n    to: 095e7baea6a6c7c4c2dfeb977efac326af552d87\n    value:\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stExtCodeHash/extCodeHashDynamicArgumentFiller.json",
    "content": "{\n    \"extCodeHashDynamicArgument\": {\n        \"_info\": {\n            \"comment\": \"EXTCODEHASH/EXTCODESIZE with address from a dynamic argument\"\n        },\n        \"env\": {\n            \"currentCoinbase\": \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\": \"0x20000\",\n            \"currentGasLimit\": \"1000000\",\n            \"currentNumber\": \"1\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"<contract:target:0xdeadbeef00000000000000000000000000000000>\": {\n                        \"balance\": \"1000000000000000001\",\n                        \"storage\": {\n                            \"0x00\": \"0x00\",\n                            \"0x01\": \"0x00\"\n                        }\n                    }\n                }\n            },\n            {\n                \"indexes\": {\n                    \"data\": 1,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"<contract:target:0xdeadbeef00000000000000000000000000000000>\": {\n                        \"balance\": \"1000000000000000001\",\n                        \"storage\": {\n                            \"0x00\": \"0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470\",\n                            \"0x01\": \"0x00\"\n                        }\n                    }\n                }\n            },\n            {\n                \"indexes\": {\n                    \"data\": 2,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"<contract:target:0xdeadbeef00000000000000000000000000000000>\": {\n                        \"balance\": \"1000000000000000001\",\n                        \"storage\": {\n                            \"0x00\": \"0x56570de287d73cd1cb6092bb8fdee6173974955fdef345ae579ee9f475ea7432\",\n                            \"0x01\": \"0x02\"\n                        }\n                    }\n                }\n            },\n            {\n                \"indexes\": {\n                    \"data\": 3,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"<contract:target:0xdeadbeef00000000000000000000000000000000>\": {\n                        \"balance\": \"1000000000000000001\",\n                        \"storage\": {\n                            \"0x00\": \"0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470\",\n                            \"0x01\": \"0x00\"\n                        }\n                    }\n                }\n            },\n            {\n                \"indexes\": {\n                    \"data\": 4,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"<contract:target:0xdeadbeef00000000000000000000000000000000>\": {\n                        \"balance\": \"1000000000000000001\",\n                        \"storage\": {\n                            \"0x00\": \"0x00\",\n                            \"0x01\": \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\": {\n            \"<eoa:0x0000000000000000000000000000000000000002>\": {\n                \"balance\": \"10\",\n                \"code\": \"\",\n                \"nonce\": \"0\",\n                \"storage\": {\n                }\n            },\n            \"<contract:target:0xdeadbeef00000000000000000000000000000000>\": {\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"{  [[0]] (EXTCODEHASH (CALLDATALOAD 0)) [[1]] (EXTCODESIZE (CALLDATALOAD 0)) }\",\n                \"nonce\": \"0\",\n                \"storage\": {\n                    \"0x00\": \"0xdeadbeef\"\n                }\n            },\n            \"<contract:0xdeadbeef00000000000000000000000000000001>\": {\n                \"balance\": \"1000000000000000000\",\n                \"code\": \":raw 0x1234\",\n                \"nonce\": \"0\",\n                \"storage\": {\n                }\n            },\n            \"<eoa:0xdeadbeef00000000000000000000000000000002>\": {\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"\",\n                \"nonce\": \"0\",\n                \"storage\": {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"\",\n                \"nonce\": \"0\",\n                \"storage\": {\n                }\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x0000000000000000000000000000000000000000000000000000000000000001\",\n                \":raw 0x000000000000000000000000<eoa:0x0000000000000000000000000000000000000002>\",\n                \":raw 0x000000000000000000000000<contract:0xdeadbeef00000000000000000000000000000001>\",\n                \":raw 0x000000000000000000000000<eoa:0xdeadbeef00000000000000000000000000000002>\",\n                \":raw 0x000000000000000000000000deadbeef00000000000000000000000000000005\"\n            ],\n            \"gasLimit\": [\n                \"400000\"\n            ],\n            \"gasPrice\": \"10\",\n            \"nonce\": \"0\",\n            \"secretKey\": \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\": \"<contract:target:0xdeadbeef00000000000000000000000000000000>\",\n            \"value\": [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stExtCodeHash/extCodeHashInInitCodeFiller.json",
    "content": "{\n    \"extCodeHashInInitCode\" : {\n\t    \"_info\" : {\n\t        \"comment\": \"EXTCODEHASH/EXTCODESIZE of an account during init code(creation code)\"\n\t    },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x36712aa4d0dd2f64a9ae6ac09555133a157c74ddf7c079a70c33e8b4bf70dd73\",\n                            \"0x01\" : \"4\"\n                        }\n                    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"0xd89b2fe30e76dc80d2e93f7db8d32f5865bdad83\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x36712aa4d0dd2f64a9ae6ac09555133a157c74ddf7c079a70c33e8b4bf70dd73\",\n                            \"0x01\" : \"4\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t        \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x11223344\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"{ [[0]] (EXTCODEHASH 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b) [[1]] (EXTCODESIZE 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b) }\",\n        \t\t\"{ (seq (CREATE2 0 0 (lll (seq          [[0]] (EXTCODEHASH 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b) [[1]] (EXTCODESIZE 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b)            ) 0) 0) (STOP) )}\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stExtCodeHash/extCodeHashMaxCodeSizeFiller.yml",
    "content": "# EXTCODEHASH to an account with codesize = MAXCODESIZE - 1\n---\nextCodeHashMaxCodeSize:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: \"1000000\"\n    currentNumber: \"1\"\n    currentTimestamp: \"1000\"\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: '1000000000000000000'\n      code: |\n        {\n          (CALL 150000 <contract:0xaaaaaaaa00000000000000000000000000000001> 0 0 0 0 32)\n          (RETURNDATACOPY 0 0 32)\n          [[0]] (MLOAD 0)\n          (CALL 150000 <contract:0xbbbbbbbb00000000000000000000000000000001> 0 0 0 0 32)\n          (RETURNDATACOPY 0 0 32)\n          [[1]] (MLOAD 0)\n        }\n      nonce: '0'\n      storage: {}\n    <contract:0xaaaaaaaa00000000000000000000000000000001>:\n      balance: '1000000000000000000'\n      code: |\n        {\n          (MSTORE 0 (EXTCODEHASH <contract:0xcccccccc00000000000000000000000000000001>))\n          (RETURN 0 32)\n        }\n      nonce: '0'\n      storage: {}\n    <contract:0xbbbbbbbb00000000000000000000000000000001>:\n      balance: '1000000000000000000'\n      code: |\n        {\n          (MSTORE 0 (EXTCODESIZE <contract:0xcccccccc00000000000000000000000000000001>))\n          (RETURN 0 32)\n        }\n      nonce: '0'\n      storage: {}\n    # account with random bytecode with code size = MAXCODESIZE - 1 = 24575\n    <contract:0xcccccccc00000000000000000000000000000001>:\n      balance: '1000000000000000000'\n      code: ':raw 0xe113a2c07114fc07c399c04fb6849e7301a4a35a7bd3221ae16e1a81fa9d5a04a112cff08de3cf0a5a93b2a335ed76b2ec26540d669bab1457d1870d68c65f02a94051b239c6ca48b7960442a9ebfb8d612fabec149985b90ed0c9f4bc736c5a0d038089fef9d6047ca70fb6ffab6d9bfd4287bea22ba58dd1dd30516b83da7f2d54f2f32b98951215839ae4a21f574d69fbe848f1443e28c72755ba6ceb8431553e7d9d49d125616122e9fa7c8aa59f291cfa19d7acf835198c7f14572beb5aafe06700f0247268a8d105c24d7f3d98fa90700e76256d498d7557009a309026391afbee6e86da108ac8a78559103c72bbd91a7a6001b30158e697a97b523bf49b9db100d7a36b5b2a44442cf8e442b31f92f4026630ebd511bd341e59be195fc0c763f2f46ee384949daae1ab2311cc326f98135c5e670dc32ea5a212f8a8b41ff396dbd4d192595d764af84b377776fa76b7d34ae4abf2fa584c59f1af00c1015806b9b275092ed77b8804a0f2054f12cd8f80573fd0288724f07abd4d04682a0b63c33379459a49f5feccf38540afec56d67a0a80b864c73ef4809af1002d34b09944bbcde80078be755784da76319405fb8eca5d48572c56a5a790f87f04492ba7e7dfda472ec7d5215d1e9c74bc4817d9a925868a136ae4d69a66f7140f203450a201c2e2edaec4edc10af2b0ce61931247725f7354bf1eba1d6f26d4ab4f958db4afe79f59ccbe2985584f8a49c895c6e84a0882b7d00726ea49ce52022c16aa0391192eea998422dbe7d66f0a41e2209ac95b00a90d52f9e3d98a0dfc9afd5d928b8db4c447522c9197facdb836d3967b9b775a28726538acd6ef12f1b3ae8102a5527b90ce104578d5e3507ac48456c3dcb5db78b32d588c6f6f8a4037aa0bf364beb506782c8171698c08efd4c29596b968e24bf815d502dad856344edd9dd481288a01228d68e406163aabbdcbd990803cf40b750347cb0462c7f5b2642d5344257daba23b4f8ed36722817dab5e23e9134129aaf602104cb188a13cb19109e85427f2e60b82f2ad2accb6c7652a6a675189b5ea35e6c3019e740c828e55706529965cbacfa985736e8517587d67c696f627c97fa34bb69f68a3fab6e58ca475a2ede0fb7dc7b7a02d7eb19c9786293ea900465de629683e351750fb375cc1d7b267ac93360cea29943bfd95c4c1764ae1626fd11fb33f3fd3188ed81f08347791e4b22c2a98de62c0a97dbbf705b4a64c1272c69d88378ca960af3097183acaf7d89518a0b860976ba80b9d134e100729ecb0580681549e7a99f6da638674fef9656c74becde90df76b8de7c996543a5f58dee99d6e50a432c6532d83900c4c89c7e6b645ff2b174c624841116e718d47e7a294729e00b33169f2c0cfcac6cc5d57ddcb8f6be93aad862557cd5ea3a366dc65443376750549e1add646a4719d8f84ea7f6716fac617b9b9a972c5ef47abc6c3c8c6267a97d164bc70c32865651f732965dedec114d5255e927fd8d48755d4e9f24545158374dd844cce228558d3f68dfe0fabcba67f79b96bb571f14d7d9cd29b993ef40637d0ac3083948dee0603ad720ff1e36ed84f7ee8afead6e6c7b842f9cdf62de37dbbcf8be174793bb75b8035c1b0392d1457838f6898cf7c14d9ca2ce77f733a4f3284c1528150e92a75cdb97b4fa3b78d7d4f408059e0df5a0c5f40706cc1b615393bf301b7cded942757be61cc5c1c476835070dacec15a189c4aa7e0c11bafd7178cd425073fac1eb4849a3591118cbeda69e31c62c3483981532bc3af7d3b779b4ba6fd2c6934ec8bf34bc39504159b2977f934d5df4856aff35958b0314cdf494f313f9985ece0c9ac6e2f50777230092db621dcec5deaa56a82c5cb29055b07d13b9a520b7d39784eafa00695c8cbdd973389655c4524ec1ead886316dc8d4ebe4ab6da3f022b25e27d9f0a41598227c60347d7fab6c3c0544522e84388db09efba364fa2295b362a99943eaea5561c7639359420fc8925913bc2444c7cec3f65f52a5d2db6d9a195c6a047b39c77bd293d2d87717eec29fe6f3d56f7292113cd63289a09b76b131b744187f5679d3fc4175a7e8efa22a7a13f6a3a7ad7b911143c20f9571ad41ccd69e90f6b33a646b3c08f8971fdabd81fd812d2f2cd00bdd33213243b19e6a365ef59bb102796ffd8bee86a6d058128ecc5612cb31a128ed24a259930982180f08be2fdf4d5fb591e73d2968dc8ca697dd78f028900f95e15d0c6787f5631c9433604e8d6e47af8125adaf7872e5586ac7b15ecfc2076b3e0ebb743dfdd8b8a79ef50c524900e44d6bd53db07bf14ee2365a5e5dd53916ccd28de79126168f2df12bc0640919562aa354a957eb7e2547d202a8f8d428f488e28fbc29505818d3e3768f1e38475c8f809c535438987a075665c1a88aa33f80ef2268374984b0dfeae6fd7f80a0f9fa8f26ee443077352548098b7693b022ea87b41174a15256a268e0bba90bd39cf8aca845ca632f74ed34a96720016cc55aac7157d34f581c0e57a0f0b439de95ca3f03c18d647939eb2db3a487cdae10144a884c9aafc68e18e36ed7b828d7c1677b13b2f6defe63eb346a7c224b881322c7ce4844aef2f00b7384e1f25d894a64d120bb603a613fe5c9d0836dd153069f48fd91466312c3feaedf496fac2ca3bac3e6a4509b082f6ff2c7e6587b3609d67e45e01051c751ce535b62cab82347fa83dfb6e4768147c54c6e8cbcc0183207f54926ee808214c1833581286313c3b9922df987a953e7a86798bd3e44eb0c7867f04b7360e366c612c66083a9f043f6b1d1adc30ace82bd63503109af7dfa29de7f35ceaa87bebea438eb86a71eb4ed828c47e1f1c65d36e02f6a7aefacadbf7b8a7af7b6389b5f6ce48bef187e37261eaa328e3594ec02c6afb88e7f2cd7fa551158bd682e43f89c6ae47c800f41356b6b37aab47336c76211c6243e582b31a0eb3c5ea162670393d9c6670ad95c3a3ec73fbe5ea2b9e8a35581b01a12c2435da87768e1009193ea1164a8fd01ae5b72626d8398ddf1c63372875bc7b0ed8a4be26889a062c1447d5c3e980ec71dc45b6a00b928a510759ad683a83f91d4954e9179fb9f490b2292305c4413e083daa27122d47a7193ab2192a13d8f08d4b7ccbcfb771ecba8cfa335d917922130c310a83b2dac0c42bba3a7afa36a00ff740680fc015834328e24eb6cbd4ab2ffd5963a5034984209ad47d49d73c193be47e07d99ce8b091ced96415e00adbb1b7c59e7a8667e891944523824c521ba10c9e400bddda4f00e5f2523f1271ec03ecd053966968c6645969cdae390442d8c9209b78b84702cfb0fddcc20f3254b08cc5e94fed4cf9e8804d84b2472b1a5d6e04a492aecf474c3e3e20160f507ec7c7a0fc4762a569742cd138589aa6e0ead8b178ba1b7805d983655a7b0e9cc67b9b684248c0afba12bc10a058ecab9cb0b269eea93860cceef850addc3bcb9c97cbb8a45dd41a6bd8a8fdb5d70e8816669fde4ed52e2df93c1612f30cb1c83e20d3e42bcdc764912ad448f9784c97285f282006272ede7f594d0fcdb8c3711d1eb97c345cd28112892fcd050bdda2a2ca2479d405f2b659bb0cc92959760086cea9539795f86d811f67a7f8a2afb8fe884cff4da28aee5469d1b393018e9bd664f99294f946af4dd1f94925310faf1e4ef46f9eb5572176b84d703f765b7cd248962c46c3ba42778c4e82a6f55adaf1de2e6195f92bb2196cc3d292166cc73bbf06e54b0c69e91e5f2d9e560981213db8deaacf777b7256142892db62f757dbeb605ad5b6f5ceeddf6735e51b886899159666178774a45ffb6f76261160dfe939847d932a54125fc4da832714cade3c48acf5a745f1f1addc6e02e25b821ed10c2f5bc9af24f340fa111bd7d78d912d883c35e44766b19a934f38d803f3bcd9bca2cbb46b89359b03bcf597f86e9a0d942a2159d8c705e2a6792381c0449d2db94310d882a4134d678c53cedd8e96d630a40d6459620b80bd3fbf34e07d5efdd952d25915ed93dcc85cdb55e35856bedea24a6b9b254c4bdbaae8a920365c5fdadbc0b7c215cdab54e09d67d7d2239b697e7ba271324cf5f3e4ba4d531cad3ae5d4101f1b469ca689e93160b73f7f6e2ec9effc4a2204b4403f01f173380b992aa1034a8fb07de5f8a2fdc9339a32f056cb664e05cc480530eaf9b8ac3314813d4f986900f859517775ac1fc2d599317a6353bf25eded422bc2abea5053e5a5bdb5755ba3584544f5638f1e11723616144787b07c6dc461923c736ed7a4f84901f6981a3099cfdc3cce9acb5d801bfeccd368da7e0bbba32c1942d22531dda445d2a615cc07af2c0d8cd2a8353547cd7fde52dabcc7141344f5234e240eca4998b23725e09339b850fb479cad40006e96ab62f93bf2e122abc88960a57b74887831bebc7a891084f2e6ecd45dad21c8c74d8464e401b110dc9d41a1a68f73bcea4ad4ef4f771e3f1ce0a1fa8c69149dfa743fdade7a4a843cf889a01ea2b88f49af5e41cf55192a303a6336f281ee7fa34b80278719922fcea1c0981465ff4436060ced679cf8154b8168b4084e36cfad0bba8250561cb17646cc5e9fd6ed168c74abddc98d7021beea2ebdb1fae475940ab46efe24cf050f477dfa5712400b9600a2e92271b87242f338c465dabfc1adcf3924908e32f35cca66cd3aa42040d364fc178ad5b7d88d5724ba0f8a281f0e35ff1a85abf13fddb055e59f5b9196c12a33b3d03d16bd221260af85ceab8fe4d161ffb4f81ab1364f5a953d6bc66b3a14aaa60e8df4dadb8672ad10b254b48674f6429779598db1440838c17ac04762caf77c50c3447ff88a9d0dcfcea3303c707a49b8e63a43869fe4bde4e7d344882a2acb2867801958654b0f2dba664a4e3cece3828363bde746edbcad070b227d65d9452bcf37e72f05a52e833be271415940f3fff2ec40de2d27f647067f1be866006d5ec747c82ce4a10d92fedd5f351fab451de9d3c88442ed42d0013d5b181bb3b0bed093fdea56d364046b3b5a145f474324a816a26046f25b4e7d6a50684829eb8908b0872362c84fb9d857ebda13071de076428b7967529c107e86c0eda0d2c8df7dc7ebb83f571d9d5b225b592fff4d081faf1df25f3c9ed32901aaf6d82d95f57dc0f07067e2feb8bfd26ad6536f70427777e44fa35a72c7feb845c53746f2a07c1dc94900f40742f5c3e999df67c359e05bf6bed84b1ee60a0a5fd76a8b25fffda90adc72c05a55cb2abefba4f5f04c21935a6d69c3b9e3446554026fb90ee949e6c6d841812b492d53b3a41ccc4def139e76e31f64b7fb2f419ff0c69a1fdd153de52b0dd6f8096542d898a1217ecdaa817907eb49825f576e32a300a131e63381a3f8c76505707e153fd80b8f3b56c435cb546472ff2e62761d91650f0e387d9beb04e767b21eaf32da5f4212464f65505981f2b39014f9d08d83c0d235f04b1fcea21499491f94eb6db2b96e36e02e9b86f35449c1417d20f1f6145ca945971badf9afa8da0517ff89064a112b71e97e99f9dafa881bf1a2f583ed6806a9929425cc8387c6f0a55f3be5dc3bee0b871003e8be40b557dd0476000271a2df15ed7a2810209b9aeb4cdd1b5a109564302c16f25e04d1818b5d4f1e5f7b4cf808934703543e9a97ad902d0143e7bf4118b01357dda2c08dfb7fd74676f265d7d5d43d5494cb062a02e27123370272fdd9ce95e6a0e2abe052079dfbf8c9f4e09c556066d31f72a4e9abf1810fad5d8a1649319ec497c37f3c1fb679a085fdfb1dac3eaae2289a053479abb9cdaeec637967eeb2fbf26bf955f5c1ef4c00db9f18f3a5c2fc1c3106b270b68e19cad90cd7fb3ad2ff3af408aecff3a03012cd53f11cae960949c853b6bb40bd55345e866695dff4fae7ebbd45bb3b07cbc4b660130bd95c1e68e18b0579618d040c07091f363ecd4db2bf1db1e987ca74c76438f70574546a55e47d94b9208ea86eae829f918dc9dc7c5fe3905d3f0b2410aefa76f14049c9c22a50e6f8c318fbe0a4ee92e353f3bf59ecc48309467fe59b67c1ed15645b0d08ebc696e1595e80fd286bd7e278979acaff3462e0c4ce86c6f2daee8ed7e26a885947df756d66735a950caedff791b67f3c19dc648e68e1cc6fa6d9cbfdbbb056352ee234d6310bd73a45fa448cc7516bd152885d057c9341319df677faa3bb3c9a6a43be87a8f797ddd1f8e83b727a76c5245e7a52f45c326a61986d36e2d9a51a5515095a2e84b7b6b4191f7583290cee3b65a65b979ba7ddb575d1807adc9befccf874abc51470a93d967fffc47dde12cd0687be68fc3c6ceed69309cde16f640df28b579ed0810b457414e0bea2a352860f06985044ca2ca446d6494056083408fd9fe6eb5cd0368e5eadafab61c301228eb734ef0040736a2d859d89f03ffbc8872660f32a9c3db6b9589157c6d77935bc1243f89c1c6f10c324b57cdb2c5958bce298dc9ee7a0cdefe821bfc5c78e6bae8d39fde6f152a1b96ada11b96b24d8e66ebc7d8d7863f5cee8644be311c9f77b34deb4523429f7b5dd7412383cffa797ea22c1dea42f167e47cc975aeac2b24dad6efbbe815bbbe337bdb5903552be5a16f6994788ea773aab0061a51ef000ac29418b1a7777e95c859f4f09dc7f0c65e2ba304e20c91b7e3da6d8689066ace278e328e842d481074510c7c3ee8f227a43690c73b818631882c014213264ef11f145c9deea94787bb3e7398a01e4959dae4a73e39926b7c6e0591424f172967109bd94ec41fc0d7e19bd2dd36427d7810a5332ee2e10eddc413bd80203480a7c29f869d54629882e7e0da358af7a4e5baf8c13b1e699e81e7c72ccebd95ec2c92f0ebd450afb61849bc291ecf2fb732f20ae1ab02ef1b274d2748df141a7d10fa54a7b567e45e5574f61e128851f718ced61e06fc8620cbe583f31430927d2ae342b928d1d19beda1df2ad3328bbc56ea23dcfff834afd270b764f8f43af1ba84a6f31c84afaabffd163eb8073103d15f0653b8310093a7373bdb7ce6c3448ae53ec1ee082eb9da9f2b557d402aa4653a38e0fac8da7c3c376e883627330dad1beb394056d2858a30ab2dc7921d6d567b0aafcd2c4055701e45aea1642232326de3095b2dbbb79d970f01cba2ab030508f97d0f8694531202c0f78b9f083ce8f70c2294b004736ca3397bc2b7747353081a5c2761852608027388769c102f818a62948a393940dea7276a03e8ad47489f3e41533f97003aab93d093938753d7afcd496b07554e18288a46b37c2b185584e01a207a8a16477d3698a07cebd4fc9498bd3aedb46f60f16b09728bd7be9095407e1a155903120381d87fe74b09599c5adc7aee6da7af9a0ef72aec82be3feb2179b454fc2bd22f49badfaf3e83163758fd4a75676e10fdfba6585ac47311fda8259502a766d2cf49b52566219a89b0f0647253ab98ed8a2c703a5b014502e79af2236c22c7ec1b97e5dc8ca2e45164cd85261458d4c211c560469f4acdfaa47ec8ad90ba2aea84d0b40e97904ff7672b26583dd3ddda71189ad7573d015351cb289ef81581f635853bc4ad99442dfcc94da3c9e4c4a5865cd1cbc3a5ecc5ee33e5d5854053950a8a6d4d9b6023a6a60e9a59ee7b473c613ca87c79952af7828504e3a40affed03fb2dc6a813781732cb3a0cc5f3649abbf9ca140cf5f75760b4f77315a484878724df4af82c3952c533612bf385362f760aaedc4e9dad9da920b914dfc31532fd3ec2fac52e0e2116272f2f12f6ae1225d14b57092d9da8d7d895084b47a60abf05f119fc3af0ef7babc806f4735bed963d3334f7c5cfe6daf853aecdd6703c08dd65a963acdc863bfb38b7d27c0cb17d845d6ec4129ca2c133da69866ca2bea461a4a300709aee49c7c9f3579b092cd505bf4a039a0f572043b03db69c8235087a22c250b1b97a125c9f97091740932396b9c1514a018ada719cfd1c0201f7aeefe54d9258c3862001988b9c7c0a3179c0952db069f66262dd3774bc7db3b5c5855e15724c10172cf540564d75bcf484e0b74c3b9289483b87cbd2d952491bfccb97a2cc9ecc8f63f7fa261dc3d12520b68212de8f3bbe863875b487b6aa61383799368589308f654c3d760ba9ce3796bdd15ace90c90d9f297e0d33153a27985da6ac10cb41a3f982fd508406e2f8da62bbcd1f476320be4562105ec0710008d07a24dabf2dca492a0cbcc3aacc2293ca0758d75d4bf6a79b74d9399e342e9781349d498c5aa6074e1ebc5a5a419fc1f171b483638b4e1d0b59b44e90fb96751b5e3f4d84fe715bf2658968b124eff06b356f212ab592e9787551d7643da839dca996007a3625dd2dd8d433d7cefa754d51cb5d45f7e711373f4f6003ca044a6e47bcccb257dc1a624113ef682471f23557c5fc83e23e50fb703a45b460d2da66a5beea36c02b1fd8c591dd7a168fea8da459735a90fb0362b6464dafbff25cbf91e3db1d3ba7dff4468915ac2b644139dbdbef8ef101dbd986e8259b2443ca8cf542c048a834579fb94d1f2b2bfd595f5b2689f7572ec4dff285d81bd3a2946c74a506549b1cf2bb9b931447cde893a6af4a95858c40fcb24179647bfbbf0a891b4450285ac24ba576a908d7b253435bc576519be014e99257988e1f787c289b4c653db2dff800973f6f6fc0dfcc368e4e625c62c1c0c842359a6fbab04dad343eb1d9c6a5e1317629d6d06a2f2560478d5c778d7b753a3fcda414af84ee9c401fc91c47b275600815fdb7a5d340141c64efa3e05f3241c81734a8010028abf7f4cc624ef75de107e280b105ca887489a87ecf1ff70a9c5d85553b5c44d930e5f626ecd452c555cfb05d7c1e126a4a5a0a63378c7bc176fcb48cc92cde1f41033793252aefc31fec19f71bc824e4444aa2317901296cc5f641381874f92445d9734cb94148ccc22eb98975978ee1cd31415a8f6a751222ef8e3571d672c80be815e343fbd73fc79d06456bab47a2970674843f98450dacb3925842d574d20fd7c5aa51dc476ad666e093b49d6221b536f75f41f91974c634110ab990306f67264649d0a61b899461f4bd663e63fe17cf41f0f5efd8c67cf9662d85f6ed7cebca0a77c2a7edd0eb73c08740ed3fdbdf3395610cbb4476871982c2fafc1d0d498dca9332f5c78c82d073485d69e8bf4bed786867f6daba115b22294788992403c76b032819983e66ae4a63cbb8b6a854c78a4878f959065ee3acca4ef2b658863ab51bd85dfdd6067c7bc822513a23908993b71e798d78ad28c635c43b671887c1336c708bd5106584c33235f7b621db713be060efbb0c387ef6272e2da54c2a64b3f730688077debc0f182872c5d381de1a302e4b44f929de8596694de264565bc9423e158c3f5cfea3bd5b2b84b4d8dac44885f4da5cac8a1a52977f5b9a264b4cae67d38b449c661a84af4123d4ae92b0fb323a8ba914aba43e11df2ebdd87e7aded82381d3ce0ba1b78ae0196b96264ef5499ddc483468e97a954b42fa657d5e3f892db910006cf898d1560b9ab5f8152b947137c20e10720c1648e0e1260ef228e12dfd9a892cd11f26493ca8faa4dca70b1c1b55c5b2ed3286f89dcec31cc78643544e9ff69760e46c882dbb0059ba95386a995e1e73f9a79f7caf949be659a58ccc5da3c05103fe777cf3f064a47174355926159a591783a793c52b2caa2828b787b581e04234b2d05c18b0776643f839da0e5ff8732fb6fe6d72e2c74c32efc21eab4bd4e827df70a96c04ab6f4c7dfd8e2cd7b3c900cdd4d8d181ee465514602fd3e6846d3bc769f706fa648eb892fae4f90d9cf90cf535faeb00b54bf4383ef42d94923ef9b33185b0129c77f060f8715e818d6ee849049abdbd2d5bfc98a8faa73510bd3b480e03eb0433cf41dfa84e777b5b6ac3ae7c5e63fc74b22319f670592b90338533c92af93d5302ed7d8e52843da4342baf070a8521e148c734e8bae1245052ec97baf04fb46bbc5ef44ea5885e2a85369d601d3c838ab75c480392a2757535ba9a23971ef6ef725b1e04d309b32003fcf3bcd0a814e6876dc681f248c77d1f2a06459e909993b5805f258e16fa5a06e19ae4c494379e1cab3b893390715af0fdd638d36d471ac52453f7f0d470b1c86f6d622f10493025470d193372c083853c32d6fa276b40b8fbb76c05d442f14c51f4635cdf259c3a795ba78cdecdf13eed2bae15010edf14e5e825bb2ece3f4df2b0b1021725c525fbf53cf31205ed2bac079a5b2a9224dba3b81bd5f9175df155eb0fc7bd8a8142c7beb3c590ba399e0a649877f4a5319f2afe3ae7a622ce86a5113c2090f9feb9debd45ec3483ab2358fb1e91762427c82c2c0e3b948f029d786fd5c843d0b443cb971c7010480c2e9644335f3aa2bd5ca417584d70e868bcc8ee36d280ac500b12fd699db74478335d0777b164c4ef23e3791985456fe2bc569df88815bb20e62a988c82ebb91357fcc1080fa885c40291307eeb5fa912561dcb8045d03711d2f6877a479b21625339217c96fd8d7c216e6cb2e3e7ba61a6318cf95efe4a1ea0fa9993896ce51ae2b46c5e37ece0b721643833f261fe00650f5ec57761ea05acff22317f1b1439f7fb05daa2fadff63fbb0e8c5a38ae019ccd234ab3687ecad9df5e2d715fc28fc15a7389f199bf61a8be7f3b76a4108ba135988bb73013af7322c691314a760e3fb2018e46149bb8696af5e83ba58902bfbf180387f70061876d679f3bc88aae2c8cf8eef3669a9e8f97a10f28c7a3aad3c4583616fecd9130c369c7d92322237fa9e693aca58ec04059698005e652b4193d6142b4ba047d33a7689e7e993d562fb3d058eb4f06e30865b60259aebb10e1478a439e21ea470962832e947c692ac1b8c7f1ae5b6b27f3ff8cc3f468ebf086e359521652b81f8dc587ba6cb0ccba9c1a39ea1d138ed5bdddc6e0d2e5d45d6dd73d3c3ab4bf72d2c324528aff77fa83d40326f13524a5bda783734243ffe90f18beb2f1184b02c872845bc6f461c495352e6da26f0a72e896832119afa8357c9242e67f6bc92088f9b8b639f0a8ef00ed3db7bb57167f52375cdc61d724e8c398d9b980b4326803c8cff59aac036bd88c12264d0f8df53d9685db13765c98d8fa123bd691f0f7f0324ba0bb8fbbd660f39497073c9cad9a55a17f768fcd2137236a84078bcd36ca074a9b405e41673c4e93e45021c1bb93d6458340a3359fe8d3c0c31747759462b2f101128fc2196e67d4c6b1f75ba0861f92a68b9b2f912cc0fe7b9f7e4abdc030e3b3407a2a745caf85ea560602e3d34c0d49c1bb28da5ac65e473c9d83dbe1960a6a0c18ec1aba47a9cfb5bd690aa52a441a1d520765429e9ba2be8e0c4131db9b18e39653a8375ef468d1d95002d3bd34cdbec33cadafb484ee6366343a38b5635aa915cf00266830687f807fb1febe4ce9edd42cb4960b6798ed82dd08e40e13897381a9b7a2d98fedae2ac94b157c498e5a173a792f26f9005ffeaf7db25b767599b31a058a74d75a188aa8c104ad706d3302749834f87574880abfcf4a1f13d4d167f33e14eeaf773ddb182940a5853f5dbb5cabd794ed02c646575241013f5d3b78188d2bb1b537387fec546784a4072652ef74a35440d1a3313ae2ce3615b248a21bd4f5b895b9790a90aee14395a03abbff33ab7dde0045008cc900e05f3f2623c793b22ca673c34e09891c8dc0b3693bbd794bad3536ef698d29a7521e00e9f92fa86485dfc339229b4e5eb0a04abb3e92157aebcc06a06fcc034d358b658d093b6457f39062d2a9bab83a06f9f37c16ca72c66bc267ac21c88a9b29d85367f6f3432a5fe75b39a1e34f169ff7ffb63fefb51ea6d2eef27218a7fbc959f5d1445996c540ffba6f0066f08211aaddd06e2db31d06cd55080afe8ac5851638b8625fc5dcfb4a045da16069903cb3e3587f5745bc6003e338d1d7eac258b8675c1be8ac4f12f58514b834c5462263641a14d603c64586afc468cdb6e97a881d552e0f3c73a9e6d5e31f79eaf0ab8bb0b09c29c39e5652b913553caba3d14cad1eb3d9fbf1a5e56ebda3784756b096f79e3e485389031dac902e53878fc5bf5480c9894f276f1b75b6d19ed40501c10a909e399aa4249f7b6062bd8a6f564752613a61f3282d35bae090656ed29669644947c41f1adafc15def7b780a423d24d9e692a2bd17c0c1250578f684dd672df781285706851c70b98a7518cd5e6e7b4e9823a52e2e0670f56d73de8a1fd7c04b5f42623d640f9be479afcea8bfe3b952650665eddc8c9211fce55b93bf4375586c96e44ed3fd6c45cbf015e9dd08da3c124eb542ace6aca9cd32ceeab9cb2a6949a8ac3e858b3fa222c5bd050256e627c1e61c752b0db05f17fb182f8149a20f15becc5b03221d10b292645f1fddcab6fe21f91c0b6f27109ea839a1dea23db0f76b4c98b2e26997a143569e1bf00baf5274331010d4bfa5d873a3e1480bcc1108a534d4c8412a4009eff91b9fdf103e6fc878df4a8d76a908576dfd577185344fd9aec3014eeffae7a98301fa6155511dd493dadaedc35b30943b90a017d4678745331e253a226bda47185daccc9bf4c004bd0a5f28eb45c4f286436aa6aad2389ea6246dc4472d2c289015fdb5bd4c5b059f50060502c215b8668da3d5c271b1f550e15933b3764861015c76008f3f1a9e15e0fb4779d3f15bb4933290339b51c1be5162c7fafcd0f686d230a7dcff20421a0bbb17789a72d683ac71362ce46d0536d12c8433757a44941a6f132503ece0d2d1147eb459326d48e5f9e081668a2220e60b8c73b1353e0e98231eb7d82b37bbb6e667f4c9c48cbd35916b1c374000762a8b5b41ff7481583fcfc06719119b8876b5b42d8501da5c2537ed20e29f14a6dbf28083def6f32e8ae85d0e5ca08e2897bacbcc69534dd7a5dc56eb506583055d1210443f33963cdaef573fe0d4b6035935f7fa08aba6830ab25b0d6f81fbdbfe5bcd79d4277c5d3c3fb6788f2b45dc729b7374c1368a6a5b63c09035fa890317912ab93c964711c3835a695288c8110c9858bb3897af098ced569aa72022fb25448254d79e8644e2c5d1fb565ec17d728fd5e4a6855f9a4122441d7ac74c820ba50cc41d42061d2a86bd50682c6c074563725aa8caa23df8c065032daf835100b0b887ebef72655488c0d6b223531cd0462fbbd2eb089d03b2015763c2bc24ae7a7ddf86b4643876c23185e86d45554f195ddb1592e1090d921e1daf069deb5f215b3f46170fc95dcdf24ff213adad6b2641bc84d9306d51c8b500597394ac73876a53398497fd2d20e15174e3bf4964cea57852e54505febef5612413655172e1c0eb18fbad3a21014200932381141fdd976c4aa198628fe87226201fb2b04826a8f84d54c53718351e9c496a98cf6e3e3b5885110e7a22b14b7ee47bb27e2508acb3e924167aa952acfbe6621bd4a183e618c896ae4242a5f2131a89a9a836f50f7f7d60c2c1a23f69fce2e8e7189d79fc24478f8a0a565fa0244b504f9f6300324e086e269b90f8c62ee3b322336ae86e0ea12e6f8e7cf5bc115a984cf8f9db1b4ae6aa14d4232e77cb47df8a83c4829a463ab3397515c17192e3d1dfcdaa4d5a6c19a38c759b2db34cd619711943e55acf4b242d2d058cfe57a9f85a89931aba805087be03cde557f5aa2faf2b747928f24de84085b7bfd90ed387b27cfdea7726036bb7a9e99047132859bf672777348bb453cefca54c9d20b279a360e49b8ed8e42d464a14252e92bb603784f3333d230bfec505ada392a2640e837adecf9a1b6b51629d747c508fb91138047943ea3295bef9e267f9cfd7b44bb917a7cc0b3f8c55a81cd5bf0877368a9c068f27aadb2e8827816952fac61504016df1b59e07ea7a97ac351ebff2d3acc35f3a35f08daff69346b29bfafa9539c83f3e3d53e4ef511b7cf403f55f7eaa7f42692349e86333065069dd837d61654878a8f050579ada6ad0f6f144d5bc9b6e81b2f381be150715b517d301a3f5eb05fa5a2e67d15bd78e7156b052c46199d699eac4f1a50a9e64497677fd3f23d1bf988d5cd7b4a24edd5ae192038cbabd0beda37f3dfcd428e40c8d32c94923f8a725e2836fa40b35df4f1540f792ab0d880a1f7f63dc0157ec8c07d86d3cca417f5815753939a5c76556b6fc966c56cfb9af6e47cc3803bc8fb243ae1410475b2fcca4a7342fbd5cb76d2840685cb4d86536822722b26cede048f111b6e2e02fe368f8dbf43cda36d778feb6f4087045ac5ac91313174c5312882f162793631d91a1fa3ddc1953b8242bedc4f84b819b2d843c1a7c9f87694a708938e13ec6a81beb0d2b06e3d499baf1cf5a053ac14819625d988f3416d5aa8859d00e7a85001549f772de2c5ac8dae501cc78b7b3d6ea680dfe2e50bf52080a47ba9ec195b0640005e2edc4f2c7bcb89b497c612b5073a008d1eb70abd9d911b3e577d009326c5178d118fea8eaec0ac423b83da5d22b29f09ec2d915a556e431325235c7895f17e12fb14a53eb20b5a6cc4cd0d62e49865db85a696b40788820ff1d939f03caee21717123cb178567befa163c906a98d9d878f8aa7f010c82cca9f01bc79486f9ec9a6cf528236d7bdde26e42a7f5a57d8e77091721ba34410ac7ace78dab6b3d54ecf3435e578eb7b08131c5930c3f3b4830eea3e7dcd35df13a15584e74d96c0cb0d092b0d504ba361549805c7799c8aeb11384965ceff9fc2259c244015bcc172655ef9528b024935027e384a3df383faf14a65d47e2c849b0788f560f85bb77a12686da384af9f597ef2c23beabf97f9abc95c0aaf1dd79c40c0577008ee7c45449e808811d7c2d3dba5ee39639c4e799e7b38902c06b4454495d64075c7e309b1b7332bb181ceedd6f6043dabf6a055ef7e1cf35747e08c2fe6521dc5c7373904341359bddcb0ba4e8d3bac0ce60a79753bc1b963e21f17f6825ff97565804fbe6a9479f27356f2b5a5cf9f2683f12891b2b3b841fd6e5163a9f7eda105625ae23d0f26dfaf8699f9f6cef66c0e9d6aa78a841e85397196f61f3da9b396c83a6f91c2dbc53c7729b18c93f218d9a5bde5eab27978b74a6d459faf25ed423fe42c010bd9ef88e1d50c68ca5684b1309d242ebab9f67bb2adb188e6262aea316d6581ebf0acf79c89cf42fd34f4a1db0c8b28c48538492f89f49b5595e66b319eb025c526ecbbf00b0c0894978b5d4fc644ae309231e940ebfa4022954e8f8c3908f2f0f7fc4bd1ea4eaa3b82a28ab730a5ad4f4dbac538f32b6a0b16792d80d56f2d9e23a65b6ad7f1a887fd70626cdc4ba265dc7445f5daf8627603aa5843a33bb571594926ea541d0df608405eae457f2d4a4624da2e3f9c14839ddff76c02b83bb100e6db65e5a9a93c315bc67e003158123a40c7e3d9aa8ad90b8f4995852e11c6e7d198c12f397be301ae2f43268dcdc5eb7cdac5ac97e614484d094eee2ec07b3599e36bd890f3a8862b89921aaa8575f9ef267f8434f7c159a9cda52846eeb0bae9f852417c6a0daf6158125a26ba8ecb7c52cde60271774b372f6655ec4dcf7a72cdac275c1d54b511deb34af06d08e5c208ddbe48a308d4f20604a07a3a17396ed849b48fad777fd123d36f7ba8beb0397ce52599ffbf8adc30ffed3cc960c8012e256868415fe1553fe48f3f040dfc439567f784b46049b2229db6987e39e4409983b79320c6a3115f30ac1f23afe560013957464b00afe408e9895806ddacd1ba33f47ace46446d03e777d0820e454661179e84e545f073f13c1ad224725946d7014dc9848f88f54f505210bbffcbab45b5b262eceb406b75713d41d4365067136a5a6e2fc90efd2126915b671967fdf9063daa694d79519a12bb21ede009cfa0c60576881cecb9fe9626fceabecfd1d79218bcc982b06d91b751cf25b1a1ec81fc784df59d741b398d753d6e966eaf5a2b49ba4ad7dc5114b6e521f7bdf5bc457ffffbb3de59711e22ede2ead741b509490ca95e4d7fdc15fc15d9810edecfe939e60c19beedd3dd835cbf8f853bef245393834107d7a3ff4c8a9980789a7508d02beff4fcb984758ebbd8a3b06426b64ab11a5117a87ffc5eedc758418d34b906e0b27703d0cb42a701882c68d8a69ebe866c1176809df67c554874e99e4fe1d4431d345be5cf8e26931237c5ca072a1a17767ac82072617c47d9aab1a2d43e20878eead6d145ac558f54dff6544176444c8ce92e168d5f9731174b581195c51b37ab006888902fd0441c12383a9fc79f55daadd41a618f923c048c576ae47e88148d1295c5e76e34906e5857d05ad256f17d949d0513ef2a9f064281e63c9288a6e67690065d76ea4074354c47b6318cc0db170e25968b61b5a42885d826070f50d90c040bfda79ef02e123e3c63d5a35227da02bd253af81ede613cb3ca4851517b86ba2e3d055ec2b3a89656907eeaf29dd2061908142018a0b32296edf23115b18a2df5613686a5ffdc37df40f4f943a04b749af16e9fd126edaec9c4dab12ae3be308c68f88dea64771eb0fed2a10c272bb23ea27b6322be8b661f54e6ecbae5d9d6594fab46d2a09e371a51baeb536193edc0d21ccf6c6d5dd301038446b757f9d4858dbfa37bed59ce1ce14742571d38fe1a73e9d3a56a4e8b8ab4dedeee5cb1bc634df1bd233be2f77de3fe90f652465e13d3bcb244dec82d66c74a9eb8335158d34e26900970beeeaade115b4d5d73c2c8dff1fa4b1e0381dfb16c15ccb25285180c4830b8b1da9c56d83585ba06d6ef598603ac8631a585902854b3dc316eb3c798bc8ec5a76d23ec4536fed624e9b7a41eacc613bc7fb08f8ae5fb0d65bef849446c0e3648f023243c8eb9bc50a1eed96a3aed799616872428371f8a5269725396dbc83505b11a3d26fb35dd59d58e3f1a920ab3c57fd817eaf5e62fe36c1a72f9af27f0a744c41e48b19c9a04eb71da2dc6e8f3b1aeae2c0474bc8112c769f3c4c130b269fdc875b8e4ab10032f7f024ffa87d26d92896296de28a4398bf4ef34110a6ff5190efe05e0dfd0eeb4729b34e620d14c81e4d5e4314527fbaa0f6199a9ff20eede9cd557878925c9171bd8c3876a3e4f38f64c9e8c338da34c836fb75a82f102e8ee09d0341f4df0725b2b705a9bb2ab7fb827532bd522f4b9f50b98ec011446c67578b7d3b59f18d23745f2f3c7a362eb50d05f9f361c1eb2735dd39e13005f4c489ebf58d7632d78a81de4a4af476fd1dba6498f6ea2da6ccf8bae11fd9b36dc099df269dc97fd65dd0432d9469185df0f172e58317cfd47abaf892cadac2f5d2a7f28eb337bb9179148ce1b8984a3fa7c3ed3d923adee5127e920ce3a1df386a9ff1c5985be9d78bf372a315ab542f0e1b042250495ef16e5a3bb3e2d4f39300b842ffa92be6cf8dd08ba076ee0aadfb5af46c7e556bb896b202fa421b4f170090bea127628ca6803e239665222f5bd9c92947a9071102143efab4c1dbda59dfca0fec6d937e194b5514880f641fc34eeaed6b42ba9438b16def4f20869afe6bfeee5b376ec45044fd499d4f34d0a1ca0c18e68ee71b7ae9688c0f427bd2f81b3811ba4b8d65687fbd59970160ee0fe284efea036405d484e9b3fce088315dcb008737e22544e854f3fa4f5668b4492beec3cce04f959614ded6d314c4464a9516c4c83648d6c1c39e26de2c943a516cf2987398be539511f12a2a83ba186bf6528d3f3a3f14df1d06b783238086aa0a57ea0d28f9b1126efd64adeb4bb25a846b455a7da3b1779ad03b4c75f602ecf60bc730bcdbd65132afec1de490acc654ad98a8d47cb954ea802d23eb7a4509762d1ffaac42711be34eac6061fd55b9894889a0bf029711fc73aea00eb2466c6b3731c232fa65c2833a15e52419716ccff7f2711bd8e9e3a6587965280ffe34eafbf769e28b6ffcd0343132a41546fc2c44357b4c601d3844a304b3e01a9abc08bc935126e5fc00a9739517b2776aa0a38a77d25a24b471028fe64696ee64b4760084f8c5df23f43d7f03cc7c0c674c83e70108c86f73adc56ecb14112192633acdae325c46dca7f5cc96d728c700613c0c44ebf9ec3947e57b41274e3b6f0eef349b429e5879874ab02070e66a5435b68a414d514b2ca4e70d82ab0074222efd44d0abb375b9b778d59814754615e09a395e8d320dd1389ed3363b96fec6c8f437ce942c2a694a1df2c0934eb248117e3d15675c4ade6c4cf6d14ff2208724c106f5a0b99dd3338aee5b1d284b93234c57eed8a43c2c6cf528a7413e548aee042bdcb20f21208b61857c8fc61b894e4e18a3b684dbdbc0636b9bc442a9eebc0bdc7e240243b06a0c7a1813b9db49be42a1176623962be0e8dcbec551afbbd158b0fc0c6f7cab2b8e4f0bf5fa8d6244431a7b8a9d1e58055b268ac2d5755c3bed7764031b87b44cd6492d6bfbf5bdce57187fb659536a036fee66638b6aecdda75cc74d0f7f150319a4ad8184cf0487eb69484471278f10dbb9b15458f79e03ce08ca5e3a208b5747850c492abc05ca1a132404db2e9d00d3515aefb39cdd53391ddba74cb46152ce79c7a415a9be4bb29e7f438a9913d1b631cd743dc6ae772a733734f9a4f31147d355f1a0656afb36dd919d6d8caafb0087e092e73624f3c2e27ef23471c241580e5326c5a85deeab7c1703710025d2351dfd7fe384aade99085e7dd458a8d5672a5c834f7f6c8af69064d4f36600605670916c3a66327bddc1112b04ca19acca18fd07a66a366c3fde6617839a4ac7a5c22ab1498a82c9e6ce82e7c065a6eeac51b6c78c27bc1f81dd587dbb3fe28e9fd49aff9e29cef1f82e01ad8c67c791b50a6a29f64fb5a48d631156127d33b3ad63aff8a5d05b047ea74d25050f8b65ae088421956ff50845fbaf6cd3f9322ab44514a5aa9a26d584acb552033dc0b78de89631b1e93fc60c698901b0e8a834c33001173209a357314a0ea8ac5c0871778cab4842166adbe96d263967ac00223158e137fa8a95047565f00473f4803b194b708342189e3d2f2eed808a21f8bee6c77a155748108f383cf28c5004e925fe39b8cc8e936a604f8d615f96ed5196ade870b8266af8177f4e9b8039df11bf290971358051c4d8698a25769852b50fde06597a3809720df0067c4e552c2257d02788fa2570cf8e3faa11f4463515fee5f1a6225c8bd908aae4513ce22becd0fa162700252a733b753046833ee94ceb1ee541eeba51c5feb7f8629919fbf990ffc9b980387ef8d67ab854bedaf605423d0e08071ce3f75d4b0c6b924f77270d1ef8253617754005d324eb1400a290a27a7042517fe7e8fb4ddc8f54ffa5ca7b2a4e15eea32c7769ca00aadd7f8e4d17f7c1547922d08b9731ee806ffec33bfadbba076eacbc85f899d4acba5f8bc3cbb529ea59404c4740dcb6f99912d0e957a2099d408d13d7183831453ef889e022f973020d2ed9c3d5dda59671dd58d6aa25659e94c47b306098b4cfe707a2592d367727c047d478f7817bc082c175b6ca71e8633cb7a822b8f24f03dfffb92af7cdaebc1c8e96e5f9b9de69f94d1e6ea459fafe28e376c02eb88401ab36dd9d4da28fd04bf31eda2da4ee8f7d93bc62994a2850e846e79156fd40e3762f38d7e03fe43b282128c074f6c7433dc0f8d2523d817866d5a1c2a6291ac37c1ec6b2684c0f0c2bc33f78022f296d1de84cdc1e415a31e3128eb30fd4c85d5a01e1abfaf0a8db912db9bd2340001386c9477cb5a0a464986c45dff1c8df31dd5f1ca351cf146d6f4e47da22f6380b16b73fe23200a5bd6705f2184a38da50f2acce953d88ca37f6794f5e9ad03e564469007ebc58c582e48420fc3cd46b58a47476855ae0e8ec1db1c3a6d6f9158bbde7737989a14bcaf5a0dee0bf45afb6c9461d6472f0c1f9852d0e73ae5db9175046b90aaf2f504ec4e48b8d03a99ffb4020d07e8c16aa8b89de1a1a50e34c9927004de55fe969c4393be9b1790077af20b8bd05810ee1e0c7d42ae6baebc3195dddd58320e9ffbc1b731d0d08a0f50975399626c7e8673a1730d60c05b55b860c40a5513be4abe7b687187e1300237766677afd00065efdfccb6db3e7d5b964fd135d96cf374fbb9d043d844d921caefec5dece881ebb87508f1acc2001699ad40ad771a2b474825caf5538ce8be5303c51528a812ee12b8ccc77204019225ef05b21f466e7fb4983c1d64e2b9fc8db4d309e5add6a2bf8d409bb46afa0568ec52efc84cfae207c8519679d37ca858249cf14283d288bb130b1d40f1ce2fe0ba6b500032b7601a405e946a1913d5a9d7c45531107ffd7b4f17a03c7f6d96e1bd05b6ff27deed4d33a5077733d0496bb37100d4f2264e3f662e2f0beac9a31ddacb8ea6bf3fbd5de5b6cd9f3028d46a2bc11b17b00c4ddc135fc99a3677e22b273ffc1b00aafa51dc0a84c2aa6eedbf166a6c020076272ede13cde0f6fab604d10be97878bf3a9986fb275e4cfeb203ee0096a9dec83cc1d8865de58352f7b4acbd302d1f178eb4c2f6d788fc3ed009b6ed1ad63b905309791a6a8276615dcaffe9353d457f20f5ace433f944eb99d4551bc6a60af1cbc79f5796ae6a3d0e834f0c29be9331bbe7822c1bd183137d75d5459e6c8c0f24900a41aac61e57a9829e8256134f4927e0014cc990e3ab34925368efdacdb6b9ff27fe6e539bab93d72691bbcc6cdcad06c1b8e1018110b62a58c7c103a57b169c9bc5585f002b7936ea14d908b5a94b2e4f3e088c1ca99b7f6ba7197c07db3d1e26d7b3bcaf122ac9447e787b0609bfdf7c66799a88048a34d95b54cbd59eeee329491766fbdd4804cf2b7f5550a35ab620455ea3978d4b4bc0dc4284950eb74667dc203c1c1757568825a95dfc1213a270e707640967a5b08d74c15a00a8380155831aaf4b6b582b630ca24f5ed9eb01e1a9d0ed1fded19699e4d0690264f40c2451a482f861d5f0ffcd290fa9edb8fa8dd0a39c42c12d6babd6f576f3885c37ba46d2dbea93ee82e401c9fbd5db28da7b77eeced6e52981f9aa8b815d0f5b043b8ec6245c50727e213180e36f3c57a74294a891acf3cca5aa146c9281c170864172c25a9873f00847fa511e91d0a34ee57b84e2bf065f710e377e8ec3a1dbdc022ab97c9cdcf26070fab4fde6cbe7dd253b899a895c3d3573341dbff2d4f68015f0ebc3dfb9fe35a6a2df9d7b6a3f4938637c99366fdeac58fba53f2c4f7479a576006ccce9e1ee3752a34589acf85766e97cf03c00a799031f0baf71d261a4944b401ec62b5452d7bc8856c6eed555e2ee4908abe899007cf80a6b82034a6ec686aabfb019290237fbd2634c0d59a8c7a719860af6714572c832a6e17311e088a525c00bd4e8ed5cc0f5b794126741c3098d7254b349dd322146df5cbc4f194774cb1e744debd9ae14a050a69d729a69b25029301e2215087bcab9fa9e2c95a38d1b5c4350dae49322bacd84fa94c8f3649d258424e314d993f704e3d6c4825809c1e0979f1a58682cca4d89558dd83a1c63ca0ce88abbb5dbcf07454135be726e0d2e5603bf59090352fa5e957f4191a18f0a53543ac5a43f0b19999b3a09d73920dfe919bf4bea1b504cd5ae100bea3a3938e01ffe483c86429cc100dd6eab4324e604ceb74c51e8e12133ba5913ce8c3b13984bc709a636821de11a83386f8a9f4e7e053707186fd397f2475c335e9d2c910d25c613646b3003462d876740288163e05007af7badf753ab52ad066a2b9ce9a2ea81aecb88fea81f83ad0bc03082cd99cf109e6d6bb042704ad6a0d51fb70b3bf033a2bccf60c787f845230624987e95016654fc6b7ef229d03f14c10857c48aa3d3b19a552333e713f1659bef9f4ba23803e3827e73aacc62d3043cbb31d632d8fa91920efb0f739b3dd0e5db3911fdc9fbc4afcdb6c983471a4f15a77f52386c2951c493ddd5a59f21258a83713e6b2e3bb6f8aca70a6d07aaaf8037bc809c1e4b878772441e4247ad62080db7c6f3347fa195aae936ed8e1d2d0f710bfa6b0df3def34e0e90b14bf246c8892fb00541c485765877d2b45c9ed3c3cdff5655aa2ec3aac2f726a9b6b32ba36df357349b7faa939eaeed5c5dfc78627e4eb35aa14e952b610d1dcdacf8af17ec755fd9e1e6e7995ad22875b75c3a45272cce782fe0ca45892b409217b112c7079714d96cb0846f2876d19e70464bddec5e4ed8fca4e604591f6195e9dff2c254b5cba5311072f7c2904ee7e3714e4f75729918d2ee21d7e8e630d7125ec09aea5aadb60f1b02fd1718c88bacaf4c5f67a9df39a7ad56c060145546eba29c9f21c9ee700cb92d6559f13504928f3c2dda3dccd8822c156b04b18aecf7b2d2eaa5657236baf307a0a12c98136e749dd506c1e0c32cdaca08a64f0329cb79da734fcf1360bf579018841fbac6eeb523e351713b6679f74011b43f5d0901d915df5f21806fdc89b00a958f903da1ee1a690867aee8de4a43e6a3152cb9c8d3610a1235b2ddbaa9f2981d712ac87599ed3f8ea754336899484c9faa177385be7067c2a73b17736440c80e9415c374c6ffc2a75a6ca98a964abd47f6e5277502e04dee3c36f16da779a27309a78b1d5ba12486aeccb9bc0b2f1b83706f0d0be77518f3b7a6955079bccdcc6818406d1e345e11340a520f00a45ae48866d56ccc1a84c4352b00058992181059a6a7c553209cdf6eb7687dbb210eba3594b24d4d63d96f67e22cd7f1620b8619f4f8ddf429d71801545a31ebaf784523d01246621b1d96babfec07cfb89f212e7dc7b7afa45999559f3a810f3fb678e46c2542c663b10700c0b3b878212c7fcc7d69ab4615f0ced6714ff1237ef9c0e0be58f17db50d9c9d7ca5a4f28679edf266543cfbc640eb68e501f11881be88894a045608e91c3f2bcb0da0a8bc8954dd51c9f013b92ea752864c10643fd13f928b4929b43cfb9abaa0dd946f8b0c80b204480d701d2bdb2d64c3b9b65fbd7cfa963437ff9e96f612892c99c04d3aa6a34097e87bf5a3f3b58995941c8d0b7fb1cabf4f652ec30ced9b4037cdea90fd9cc787c46bed2690c59b7524a194e8fc416cdcd8d01ee0f31ec4d97e8c4db25def0ed25d216ece24d3b524302193c50f819c77ee9f29780b6486f852bcd2e4df55c2346fae048a5fd45b5ef968be1fc93874a1cbe1df9385c20f640ab258bac0d34246cd90e365bdb898b83659b98dcb324b33edac307cf79bf66a244fb4cc23982738588a70fdd58561723c10e3066e1726975607937f49ed41c4d4957bdea924a060af2c919988fb08f1c5812dcaf89392aa5fa01a89e0a0b273016461c6d7d5d1bceb65147b6823fb1fb231a804d314f9b461146c94f6987966ec2d6ae18d3de4c37cafd73ce43db8f9df06d38b8796c5de43e8fb21258cc84e7bb247e7544c717fa1adb7bcdcd7f8cb617cdc0050f857c333679a6d1e8f885fc3f79f0e5a9ef6a77e4d0e06e24e040ecbdfacbada5d4ad902a07d2b7d5b96b74ec438d9862e6408b90ea4f2b4de7a948a9413243c24a174fd15cc377b22f6c9353873b26284ad1eac1a9a09ce7ad175e47c21f82ca655a3e5282d992fa808208d1e8809244a5c733b03ce63dffddc48b17143922d02ef4f9e350f14f2af85a01f87649b85b62cdf71ea7304bb5ebe3041c1b80dc2a0093000530fbe7a80a1644c25b1407ad3d4a765053f43478c08f812dec54707a1715ff9b759a797d17bcbb147ed4dc0af06bcaecf25b22b76d6d08b8ce439790f81880dd1fa74ef5edbfce2ef8a8b0ae8a4cec6c33ec5be04e177dc93ad3d919178fe170e86141356e60b824d806eb4b659fa38e988e97aab3394cd5a01095d0ae2e5839098ac6f9091ca55217c5a1491156bb615ba5f967414ad465859f14641621bcf6ed20e12cd7fcfed6b7f7fef566138af51e2f9f72bdb8ddd6c148976c739ef5cbed7d1600a877f8f31f8a5ae0ad8319d68095102b59115fa6a169a24882860b3ef5994053cf3bf50979b578790093ab6543fe93bfa0ad4ee9085ac379b5087ef155ea93c8140bf792ce062a69d32b91e10a40614a2043b5c95a9bdb57f34de727f24617b800d410af0b885b963c068df03d31fc8e7bc01063a21a9286d9a92c1bc0540521b22a8387ee04b4226b2bcafbefeeb8892e3e0b14011ab7578acd2311b7405dcecca207cbd3b3754cef05ba796e3df47b77be1ff8e3fcd4900325010e2438464393605dded202d61cfdea7fec9f25dc615c51ec1398c80955631037d01eeb530d31e8858c78d22d28d1459412b24b752b3e38afa542eafbe6259fbc21f62330fe22a5cac9d5a9c1c2c20fb679edb15d2da71e07dfb802b937215ff025c4bfd9022d463cf722722fba725ce11dac4096fcd7f33b594543bcdc64517f6920a8569fa5b6086593da948893045f2b751e42f5b3ac244d19aacd21840f66ae135f8aeeeb3610ec80d1e4b096a1bd31809aed5edca69f46a6dd1a1457e2214647d5b055903e058343a13de25df8ed0f5a28c06f04026f01760043bb7b65596c120ac7f760202c142389d84d731a1ad85f170f920927141e3637625851883f8058f4f68d7d6da8171f993ba2a7cc9e4ca0e7b3c474afa46f89d4bb6085f9f75d44c111f31b653a263d49041e923637bb9d4652f5b0b15b70a314c480b8ef74d6f2dea01e6e8c1dd30c989920cef4b5346eec2611ccd01e831cd5881cf915041c601387463c41af1419910c9adceb37c655cc055d1457c6121ab60e89ff5a6447e70519ebd0722d79d1daa21e362073a4d92548701adc822f35dffe04492a2a532550db0b332dd172c32fbcd73d068d521d2a5f10767bdf6910b5dd39a13ab6a7a00fdcc34a424f51ae742b9780682e7c7ad5e4a8a1065f40fbdb8b44176e3f9b2d90187d81bfa3013b7ef8b1d2f77b633ec4410006b727333d5199761ae8247854fa2db0524e815fc8b2fd3ffd8d8371731d1f71b982e3c147fc6dd6f653ca0232e342b1e236367915ed8cf90f8f6346167c42ffd2558b4a5abf6f3810316a9dc5c3de18432b468178cb72a8d30aec2ec860f5635b5472daf3b51e0c62245ca8ed903515a37d596ca0e1f183cea12038c59d3539d089e8c74c2cf6ec110ccf2a88b7b682c2d894d2c6e222a1a01bd8849003a99b89f36186f7213da3ce0ab4ba991b7a08b99fa68d8398859ea510e6f2e80e6c4ee082c480fbd1a29dc5ba6f34238c4c0f3910d7badf21c3682b2386a4a810661c886a6f6ff7c9fecb783fbf7ecdabb45efdbf0bf1a714ecca989d8b4f92e4437341d174d3f7250888f7cdd28355eed94011e8b34a68ea456dd062ab53eb0da5e358aafca1438c220b59aadc98370377bf174ba7a56d4620a2f470b056f7f6a65101ef3b1622af863380d624ba096c6032580c3a724502a5d3a4311d73da2904ecfa93d1dc216e6d8c3fcb6d97c498455d8b85a50ea851a6046acf720fee65bf9ee2c3df10eee085113c98397ff7d053f9cf9625f8a59d8570faed1e2eb0fef98dd7494e875b76f6cbddd32d1bad13772ea3abcb01c02e3d6de5cbe89bdfe604079fcbd4377623c0c5179a83f5325713e924e0ec89ac364c8c10a26db7918a6ff526954e41ee67ebfed8394e19de7fdfc8f8865fafb78399a6e9906c646736e879c52c0da8ac7fa629905d0b146a2e01ce3e1f5bfc386bf2badab37b91d308412f80fd075901f53e48d0642ebb2cc2373cdbd60b21325e8f6ce5a9f23bb52729fab42a3624924096c4f76f7b70b18bfe5a70a6a2115ddf436e0c38b975459e5abf7eecc1afb28dbcccf7b72c983cc3023821007b59fd5040487f6bec89786af78fa721a0bae618acd7b6d44f7fc01cbd4559e44484e00abb434ad98ccd0ec55d56a511d3084ecff7128d40692faee86328f8267e46551d2fb303e6f58724deba67e1b1382108d423ecb292cb5bfad681e4242e39c5caf31456406a3cf9b82c3936cb27c168f3f3a3422ff549fe76a92702b35c9f1d35e33652e4f8c47236311f544f86a86835825e3f7723133a6e757e091b085e4fdc4cfaf646b7d1a1087a427ab9c54e11095fbe19fbe12b29e7ae7ebdf95b527f7a85319195414b6a6f4630be40053a0d031faaf6faa1d5bac016108c6a210c8fe401d31a6c4497ac6b255a3d38dc6f1e4405e3003ff14b6c8477eb26ee382dbadc03fee9c59b51b1f9264eeae0a30d209c3137938ce2c5058119089d21ce168cecf8fdbdea4f02e0fa84af8809fad4c85d6c26478736ee95a4f4f10a4237cbdaa6214ba9ecaa17e6fb35234d439e8a9eee04aec573a4f4267426fd33b66151f88328b7c63f0fea61110b062d9daed2b7dbc466d5c40f96b41c737fea4703490674f7267ce431de3abd8e4b7ea9ebf66be2f9f724822b48e906e264b03c7aec3d2adaf7512c8d8c1e058ed07c7ce59a1dc94d6aa75c6ab2bf3dd22a46bb40dd667ee092301b64238b46bd11f7af0dcb722d39115987b59d1a7c3eec0cafb42ce9f5b3dc8c37c7fbded084023afa2e2a52e3886a69fa39a7a934776671b0432a37c9c6d08ea6239705b7f2879af888283b1c2fffe348c9d1b0b82ea970c19632d74f4c9a0760459fdc01833bf394a430156fed53ada339f7e39c4db52c56dde748a8f5aa3d594433c24722fc656ad29b3069ec80cc8431e2d718fe93c1fd63ab8876c1f63b9fbf7fb17930b0fb07da9ea2f376ca3257d9d93789d74d3ef9b862fdf1a7ee4806e5cf205eeef19571a1b1a4663f2a12ae6a1f986307b257467d72da77ee3119a3c20327b1b09296baa9c1e075c28cdd0a28aba029acbb663339a85dcebab45a2fce5408a9375fadd6869bd2301879c26b7f7c4b91dca0824c8ce077b56e9735ec65af0f25e7bcd365e64e8569041326fe746d1b9dad9af62fdd2d096912f7319955471c2de0166f54f4bfc07c2d5178eb1af13b77dee60240ab2f7fb85087bbcee5f2bf042d587eb7cf88e44762336c352b48e439fd1feccf291bdb656716fbe16df014db238628fcd0cfa9dbf3b2fa15e5f30df7bdf912b3ab62be3fbc9d0b06a49635b2b780b37b01aff20223cd6a37e3d14784e85ad5665b4598f13d6a8913e5514f92d5c30e86b7441a348048ab638647c25e936613fbbe5473f3a67479456c731b2bcfd6b5ce0f6fe9e6526924e191ed6067231709880a136d2ed2c17b208becbfb0225b83e960efb2857796892ed376de8f1918a9562e2d95624fa4a9cab4919a91cc08eae3e0fba2922ac3a601f956fda1466c76e946d8a49be1b7e576feb47d778a78296e8895b67bf24ce0fba02b7ae881ce74cb31f557611b704c70d3e1ffc3038c2cc0c2af7513cbd73a1c9742e0cbff769e46be7ec48f599197ca1d1db4caaf4cdda10f531eca52b31d6cd7e267587bb0da5c6458f9fff29f48c32b74c36ff9a3084f0145c569f56729eccae78b8429615197c5f0480e1c1034221cbc86b0a73c246e63d3bb555686b63ee7a2c03df770ef08f4d0fe1530b55299db5c46911ce20b3eff3f56bae0a12b646c7a2c612b457c52e96a081d78eb7bcc14a8d99b46c2f3848226ebce4548dca772af890b62754c275aeeafe969a547014a470560e7fc83ee8aa7ecd7bbde4ab9f36f100bb24f072f5316e1499266bc245a0fdb4ccd0298719ea7e5a4e8e42e61478ac457783d7eea1bb52870dbf05f933777cfe4162533d8e3a73672b8d037d31ff68fef4ac883829ba6cc9ddc4eeb8d81fb3c8b6f3d6dfdc253b12789fd8a5a0f44e0cdd5f99a2511fde56e0206c13cc814a0d18cad2c0ec015ef743b8aed3b4663f5fbf8cfbf351c64e543950b7d1d43db242f46d3dadf9c82fd633042e83413b8d2d71bf4a3d369573cc8a66c440b2372b9768301977901e6f6c99fe09100c7676c95a28ea50a8d1525394a9970699e283ce5e8c2bfa96b31737e4ab9b7c178a3451ae94457c6a5ec1891c10d2e620b4d0e474bff426f88ea7055d89ca2041084263d56d138600ab8ee255b3c05562283a784bd5a775891a6c900705c67e9ee4ac1574c1aaa7bd18ed603736f4d4bf15a55b28b9d5674a564f9b5ccff3410d0c7acefe6cb877a8f9730c28fec4b9b2c302ffd32eedfe6ba91880ce38ecd4a22d954826c0526f2b2d67083f14bb04917769c5d50d1d1176e03d1adb4d2ad3beadac6892705cc7f94559810c2c3fbfda03b2d591a971ff718a1654be70593b8b213d09177bb0f836f1e3b8752d5497a7197135ab264217bbaaecd959bd11a01089fe98770c0f1a14e1aec64d1fcc13c297ceb7bca397e6815262243ad60f0447b84f6ec5847a824cb1280f91039d77535d5840dd276a735adc385f18234e64d230d0343d16f6a5bcaff1dd2a56236530af66ab0700ccae90cfcffc6f03e675e013c8fa1994a6e5ab1eb7cc5f82dde8ae3d42230552b8a05b6519416ce2fc09aa9c12291e3884947dc08d1067b88a5851ab2092384f462ab21696a0f090831325d9fe2a23c69e4c2a4f0bd7e08f70a049b1108d5838717e3e7c01eee0785487432ff724da3ae8cfa091f26b29f23dcecd2410e6f4ebe4ff2d4e387d021762a59939d9517ed28224022c0eba83fbf03839215887749543ed8d05f052f7dee36b6ed9a11e4712096d8e6efcc5924e691cfbd50db66b5fb8d46fc44eef22f46b47db1aeda6659fbe609ca5d7b9d121df0cba906d263154cd7d43475334b0086cefdc2c8d8bce2cb0ab27d180995960a5453c9f9155b59a44a0cb1df4a7626d027cd1f9499416e7ec7763aa368a0601fe4b214813a6ed7c4b96fbc66fa3a5f4f13ddfe534b91070ab39a5d2ad812e24188a18d5015f6e9e5c6348bd081434dfafc1e622c1ae828c9ec446ac6ff2efdc2f05d0a3c4b9200ddcebcad5256c0e7a42b004e88e59f78b68586f4d93d43a49d6bff4e5b9bcae18b46ec65b5eb364e8757b1ed23f5a4b9f8c3e047e521f8960838ab010a087f190c1dd4c8dddd252d236a3d4f2dff9ee97689f6c66133f0dc7c5b88d2cebd9422de49cf20bd6f5a857de9179a6cd08236162deb5724a9fff7da7d93af2dcc6e5591c7071572a63a101bf1d7193c9237a4f05b9a9a52b1077b42ed7c8220bae47ddfbc146eb693175090379d54b0cf1f4b53bd19e849c9341707e49d5610916a128a4a4b225afa1cf15ebf78b38b9932ddbe1873b647a810da95ac8f6d833d3f1f9c4c53aa54bd57a4b34ce6b272648e0ed3ec042e323b4a51adb99df552f3dd68bad7dc8019599e85bb27eab9ae1bd9e578d90d4b6ad2488af5e2a3fc88f7b586863f628da5f815a8d79cb88377f233f47f0bc3eaa3e8a1803f91867d7e50ddc8128630cbce77814c18d19d467ea5dd7a81e8f866ff9555322b15f931fcfbaa95b5c4f89ee1d8b95d93f518ebed2a1f86d72725a2d7df10b3248be9105af0441e16c4991d172f1b730f07cd370ddcb3185b758cb8649b2c70d22f7ea8ee5e6ee7fbae9ee7ed34e6852fb0f6814058db6301c3242a131951eab052b1cf0dff15e5ce511cadc8af9e58d5244565d87603b61f522160b0f966e9df7e15af2d1cc43fbd8343e119dd44e314cb0d00e578ddfc705fdee256c310d1f6ada6d5129e2f908cc3e47f1a23f67d2ae12561fb136559249a4018870db802761a5f8fde975b6e3030506facbf9ef9ac876fea0d40bd3ae885578cc94afd576084642fb9a1e401b8b79820dfa5f95cb2e443c6faa77254041bb141fea56f7ddee5d169a906e21a20af366c1ca84fb0513c49b2ce061e84e5d809ae664b9a465ef2f516e1c0b14e42c6236e03cf4359a05578740cb4a2d00599502dab04b544b000c067f2369bf18dbc96f21aa284a5fa4f09ce1a999e69438b6debb7093a477f0e3d08c9fda2616b36e3b81e1fed27954e56a69bf1c1595f5871bd58cf483961252e530c148165c06baa450a80a485fc40c4df3c6996191fb70e29fe12e893a5ca523402a896ffab0cd79c3edeabad65a531e457cb86b0a23071b5386938a0f78261f4efaf0e26c746683d066011777ab6558568d46c665e4e70ecee9e37c8696fef6f8e9b50585c1d8c42881753ca80bf96cfc8e3306f85de727e054e524e6bb687b3cc1c12f71223860eaf104cc1375a17fade20de110bd71979e4caa0539571e9bce5f956a5973751f7fac149a925bea1b7cf0d5e029c2f403fca2b2385c257a39193bff3d6810c737f2b2c6b4ea03dd50ab7b3817b217660fe0085e0b302755d7780cc6b4980e18a0f115566ca2198b957cf629f0e7312d72de9d9aa846a2ce7599d155f9386c0a5b1bd0317a403f50aa0cdfad4e3a6f8028e22c83a7e4c067da319efa294af0dc5c55d00de288ddf4a9480936e3a47311868e34d1386ef1b28d789ab6eea99b2cd1fc2acac6aff60d83a77c09e4c8f6058d7012761d1932f79237b143567238e88e590085630879b4ffe8a84d6ce8288507794d957043f9235646d98ec5e6ed3ddf10d93f7b7a754eb6c870ff73eff7b11849cc7103fe158754818410105ba6744ca67cda4569d9ec02bbba77b359e0c3618a0ef5f45736bcb43deb5b3fb1a2116694ec1e8df8d45c9944d963a394a9b8d675c6960085c66b3759b506cd7ea81a2787c90e8d9e128a7829cd6712f4415e160719f0d4832544bad4882a72aa11fa61cd53f17726eca5506a49aa227ca387d9b1719bde561c709c305d1d715a346c719c6caab53d83ab6efa486ce840f887d179bbb4a12ce1b9114dd2495dce9e2637224d06df61407b2a1cd2d6c46b2c8e0cb57d06c2bbd6eca59a157bc30e28dc32df463c75fe068706019a9222f4fca37dbdd80e7492eab904c0787912886085209b0f61f6e287d0b019f225dbc3ff67160a8bff922493c89db5cd30eb99f241ea6b2fb4b93cec04ae364058ef2d4db11e64d4779d2dec6cdc75abc8c0fbe7b3029f57984889e6f8e135d88e5b04139ab816c0240b0350476f4c2c6e9d47286641b1fc68d49bdbb60b331dcbecd1bcfc5e60ef33511d3734b0552d47a7fade443becfab95004bc4ffe62d761e8af274dc573d8fb9c7125cce816ccea2739107287d9b082cca5b3e4d174dd1b989031d4840bac27bad70a536c008b69264075cde62b634031414be67d8a1f33d7971040c80fe4c3ef12f39fe652e337ea151061e51eb459988846fa5f1d5107bc76f7bc86d1652b81847e38afed6ec9499af4aa43f675f9e09b61851cde0743812fc9c9cff1fbb8e67b362d5aebe3949f0c9afa0aade64c8e6eed1720ce2ff5be5661c2e5aba3b29f916a4265c5d5aa18b7aa3333f205eaf073792cae2aba9106fc179666cb7aa4c50838411f23c4b6a7aca12f1372152f38b94cf898ee9a6495d9276f05a08246a61b7550643853fd54dabe1196119019effa79004739a03493f494badc052d38b9a2235416d0aaf24f32ac6e4fc4ea89d7718123ff245794bbfabd71e2a00a140f450747236e684fe69a6e0d8ddea6cc1bb66d99a453ac5fbd533675e5dc443a8b9743979a01dd1c5d74e1fe1a23749408e433df58d91cde21fce6196fa81e58a80b0483a01f9e0dc443e450f3bb1bc55928404190a4d84176ff725ead1610ba20db45a3bb4cdd78be2fcc0a811a838fec4e32fe6e3814181fcf67670d1c643155b0d4bc600ff16594ddce54001e688865b0c26447753e383a2bb10425d8da483d0a364ec7255814bba4a99cd50b9722f88456deb405a1e8d926a1ea1d6e28f52f35ce28e3caf8149ca11c7a7e6ec174a049aa41d40b917d445933176e453569ce749e8e0d85b7c5485da5a9ea74e883a33c9063943b436626072ca81074fe56cbdb098af5de203bd5783f7c738fab3d459d8967ed7222ee33088496709f7349b68720d530773c9613970cb7eda03cda59878ab8df058295b415f505cff603422ab446725fb6a17b3b1cedcfe34eca6de8272c50bf331d96f6f9f2c35724a5f13aaf8ccd27ce42a987eefe380e994baf014d90f046989bba8cecee6d9c4d0086370e6df18749a9e1b5cb19eceb1d9136aaf758e93e99cd8b19a87748e59b719e3b3005b1ec3a5a290005148bd704cf1751e5e624a96409128b54515b24e049f15712a07d80f0c1cbff64eb94dbe997a678d18508ebced38b14529a26587d5974693c126c6af7ad36d3f20556a741df4dda1c24444a7d02490deabedcb409699bb3b381f27f30d953f28f232dc17accdf2b2e2c060373d4d2dfb23ba4f799efcf5bce3e85365fea749848452dc77218b97bb0df642d55e1effce5c925c52b135b3555cfbdd86e293c33f90d50705813a07da24007a4b77d17c49aecebbade03bbec67072e55d39666ac8a9f52abe636630c5f0d15a0ae042da150360002fc3fe7fc73345ed41aa68f9ad14f0c7e3263d7e6bd66ea4104cc88d49395705d17418296c99bdf68cfae94fe96cd45ff088fc6c6ec95dc77a817c540bef514e0f06dac9fab797c0fba9e47a6b1aa66d5961816ec1a390ab65c73e4671935632cf71912d1fac64544f207044d44d1d39d6ab734ef793fb04be8464cd20dc8b26365377fff89d437b196bbb134fc8052ebefcfcce2e8d2320cc60f5ece4bff91b0606fd34d2e761a63386658e1683f95705d929f7b99f70fd6d6be8333a224eb02287020c93c9948387bcc9f0cc6a4b26e7c4827f4c070541e710ff158e574488d2261ac716222306de941e03bf98a01b7d3873f493ef1ab25d3740b58fa15f29cb9ba64c037d95489cf92da28b5552663b26d5fcfbdd95a27db3f43428199211678dfc5f5dab3f3d6e55f5d6e5f298ee3678c9b2fa987371ac1a1d2801d36589d1024b77cbd440e212924773f1ceb370a5a5ccdbe5fe8040c740b49570754011d43ee695bc99741dee4d6976a4cf829c50d5ca9f4488a4c156cd1a926cbb3378f51ee6cd4628c54a5b05577075423d56200d427966b0484fafddb9de29679f0c8488fbef782b9f35780f07a5a82585abd0a8b5eaf2562310c36a8edbb41aaf02510f409d014d177d9a72f5d22352db43b3d4146e4a2b4fce540b02d4995f7a9b9592d64f710e9cae676a3a105c23681cd6c54becef5ae85d03f391e2e253b33d486d4961efac2fed3d4f4e6d41062fd8473d3bbeb80c5fd2bdcf268455afab0224ab5b767114e57a6ed3bbef6641af4f55965030fec6f261de4c49a8f901ae8763ccc31df751cd2589a20385b6fe8c3306bb5893456ea8fd919f45083a34c4e45e43c626e526d978063c94150314fead17ef3ec083e63ffb838f3c382e797ab58686e649ec3c7431b043eb93bb66491e08a5f172d45f67bde4cb0d6b2eaf264a8130628eb03e2d7299b6d1386c34826c94081cccab0d41e73a43f67bbd9930e8f038b063ac1b451e3b48b33f78bc97c8865acaaae01e6d24d417d412e0db38532c0f1dd7bfe740d9b1df1412367891a49036d33fd3a004cb010745930aab64909ca314a5394a9772bcf6a18db9cebef54092c3aca54643f675aad8369eaa4dcdf19ce1b9444d637ce6b90dd3b834113eaae746ff51c5fa4ab8bad4d0d364467f788601505662a7b99c7ec595e6ac78ebfbb4eea7b2649a9d752bc12b3e8024ef1d095f325eb37f3f8aed8e294e95d019cb17bf94e7ba39f4dd3e6761dc21ff26fabcbe3789235c14af588b3f3e21bb1e9cf1f68c41c4b0eda197154e8bea1f5c22860422c369fd70de621cb78745e6e488f5957f2ea5538a15a0fdc089ab20bbaa859b75aa465e88d0a24a3065a09fade04f0c6ae894038aa29c678d000f99f6c652a56469735a6b3c17d56e0b0b68452bda52bc4426a4ab47a4f69e9f3f88614f1101e7fd19decfe32c52cccfda02bb764abc90c642c4cff0ed1f82cc9309764b9dc17d909e860e3cb0f5c76d45a26e5c7a7261ab55ac89f07b599867a81c82bff5705f1e5ca0ca91a7ac7f3c654a53a23aad031ce73993020ed0066e795b8e756c8f1c5a6b8387b9213dd139014383ef6c067b32ebd43eb57c5f1391e6ddeface22e5441458b0d7ec252a4bb8a00d2c3f9f65c40c22eb0dbba8a2b0d59b60b123d9c04d69ab3b947d2c0cbcff5a3107dcae77767c13f4f4b18e9bf98ea489c59e4e72d91aa46f7ab4530e7855f115a7b30615f08481f1efbc324c24b8a7efa2d135ebfd9c549df3dcd33ce9a3b22aa005752e7091c40a38e9d63c17c98ebd22e09e2eaa5fe84b08ec25695077a635210a6024ad191727b5bd97726ce028529fa8e50879f083419e7fbfc8d721b2d26d1339de713ad1db3d02f7195d4e811e8c50068b405d39a5c8f6292d5bb22b70f56ef64b45856f652f9f25dea4e4369fd7fdc0419622054746d8dab5698b7f5a507e14af2a850d8ad4d497e70e7d9da5befd9b59969745007d5dc5a76b35c732940bf6021a2e2219cddc4d96ee8447ae658b0371a838044ae1bf8f49707356946241120a6c22d191b6b66600cd533f4ca3aa021b72e118d9255e5e014052223c07251e7749e46409a206242641fb60bc8fb6c3f857d66c01f8cd8f25180af3301f2338bb89b9b68c384dd36d7e2e67599b204efba184cae98d32b8a5805b7fbcaab9ba8a89754fcb9af196b9e6a2cb595e9b584f305b4b6648b7aea7a47cb2def51e2d358e490ec1e73bb3a2ed9cbfa62e27af1f98a088b0cb6180cc38b5e355d599211e29be2045ac70fe4b470ef17f85620893a152c4c17f4dbec6e59bac860504297d9fe46937fa0c2d518b83eea6e7ce4d3e97d0e3d39ccded57ab0915c0176e003b014086391907f8595c951b3eab20db'\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: ''\n      nonce: '0'\n      storage: {}\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n          balance: '1000000000000000001'\n          storage: {\n            \"0x00\": '0xb157aebf65d6a7e95d50740ed1029e7e599233e72550fe17741a5f893117836d',\n            \"0x01\": '24575'\n          }\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stExtCodeHash/extCodeHashNewAccountFiller.json",
    "content": "{\n  \"extCodeHashNewAccount\": {\n    \"_info\": {\n      \"comment\": \"EXTCODEHASH/EXTCODESIZE of an account created in same transaction\"\n    },\n    \"env\": {\n      \"currentCoinbase\": \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n      \"currentDifficulty\": \"0x20000\",\n      \"currentGasLimit\": \"1000000\",\n      \"currentNumber\": \"1\",\n      \"currentTimestamp\": \"1000\"\n    },\n    \"expect\": [\n      {\n        \"indexes\": {\n          \"data\": -1,\n          \"gas\": -1,\n          \"value\": -1\n        },\n        \"network\": [\n          \">=Cancun\"\n        ],\n        \"result\": {\n          \"0x75e23f851ce92ee62896c1fb1127d4be2c53f59d\": {\n            \"code\": \"0x0000000000000000000000000000000000000000000000000000000000001234\",\n            \"nonce\": \"0x01\",\n            \"storage\": {\n            }\n          },\n          \"deadbeef00000000000000000000000000000000\": {\n            \"storage\": {\n              \"0x00\": \"0xe321d900f3fd366734e2d071e30949ded20c27fd638f1a059390091c643b62c5\",\n              \"0x01\": \"0x20\"\n            }\n          }\n        }\n      }\n    ],\n    \"pre\": {\n      \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\": {\n        \"balance\": \"1000000000000000000\",\n        \"code\": \"\",\n        \"nonce\": \"0\",\n        \"storage\": {\n        }\n      },\n      \"deadbeef00000000000000000000000000000000\": {\n        \"balance\": \"1000000000000000000\",\n        \"code\": \"{ (MSTORE 0 (CREATE2 0 0 (lll {(MSTORE 0 0x1234) (RETURN 0 32)} 0) 0x10)) [[0]] (EXTCODEHASH (MLOAD 0)) [[1]] (EXTCODESIZE (MLOAD 0)) (STOP)}\",\n        \"nonce\": \"0\",\n        \"storage\": {\n        }\n      }\n    },\n    \"transaction\": {\n      \"data\": [\n        \"\"\n      ],\n      \"gasLimit\": [\n        \"400000\"\n      ],\n      \"gasPrice\": \"10\",\n      \"nonce\": \"0\",\n      \"secretKey\": \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n      \"to\": \"deadbeef00000000000000000000000000000000\",\n      \"value\": [\n        \"1\"\n      ]\n    }\n  }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stExtCodeHash/extCodeHashNonExistingAccountFiller.yml",
    "content": "# EXTCODEHASH to a not existing account must be 0\n---\nextCodeHashNonExistingAccount:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: \"1000000\"\n    currentNumber: \"1\"\n    currentTimestamp: \"1000\"\n  pre:\n    095e7baea6a6c7c4c2dfeb977efac326af552d87:\n      balance: '1000000000000000000'\n      code: |\n        {\n          (CALL 150000 0xdeadbeef00000000000000000000000000000000 0 0 0 0 32)\n          (RETURNDATACOPY 0 0 32)\n          [[0]] (MLOAD 0)\n          (CALL 150000 0xaeadbeef00000000000000000000000000000000 0 0 0 0 32)\n          (RETURNDATACOPY 0 0 32)\n          [[1]] (MLOAD 0)\n        }\n      nonce: '0'\n      storage: {}\n    deadbeef00000000000000000000000000000000:\n      balance: '1000000000000000000'\n      code: |\n        {\n          (MSTORE 0 (EXTCODEHASH 0xdeadbeef00000000000000000000000000000001))\n          (RETURN 0 32)\n        }\n      nonce: '0'\n      storage: {}\n    aeadbeef00000000000000000000000000000000:\n      balance: '1000000000000000000'\n      code: |\n        {\n          (MSTORE 0 (EXTCODESIZE 0xdeadbeef00000000000000000000000000000001))\n          (RETURN 0 32)\n        }\n      nonce: '0'\n      storage: {}\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '1000000000000000000'\n      code: ''\n      nonce: '0'\n      storage: {}\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        095e7baea6a6c7c4c2dfeb977efac326af552d87:\n          balance: '1000000000000000001'\n          storage: {\n            \"0x00\": '0',\n            \"0x01\": '0'\n          }\n        deadbeef00000000000000000000000000000001:\n          shouldnotexist: '1'\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: 45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\n    to: 095e7baea6a6c7c4c2dfeb977efac326af552d87\n    value:\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stExtCodeHash/extCodeHashPrecompilesFiller.yml",
    "content": "# EXTCODEHASH of precompiles addresses\n---\nextCodeHashPrecompiles:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: \"1000000\"\n    currentNumber: \"1\"\n    currentTimestamp: \"1000\"\n  pre:\n    095e7baea6a6c7c4c2dfeb977efac326af552d87:\n      balance: '1000000000000000000'\n      code: |\n        {\n          (CALLDATACOPY 12 0 20)\n          [[0]] (EXTCODEHASH (MLOAD 0))\n          [[1]] (EXTCODESIZE (MLOAD 0))\n        }\n      nonce: '0'\n      storage: { # set initial values to be overwritten\n        \"0x00\": '0xab',\n        \"0x01\": '0xab'}\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '1000000000000000000'\n      code: ''\n      nonce: '0'\n      storage: {}\n  expect:\n    - indexes:\n        data: !!int 0\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        095e7baea6a6c7c4c2dfeb977efac326af552d87:\n          balance: '1000000000000000001'\n          storage: {\n            \"0x00\": '0xe5fbfc8ab6f527df72b0a0ea8e0605dcc45e3cea1c7f2437b8c06592f7957451',\n            \"0x01\": '0x16'\n            }\n    - indexes:\n        data: !!int 1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        095e7baea6a6c7c4c2dfeb977efac326af552d87:\n          balance: '1000000000000000001'\n          storage: {\n            \"0x00\": '0x00',\n            \"0x01\": '0x00'\n            }\n    - indexes:\n        data: !!int 2\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        095e7baea6a6c7c4c2dfeb977efac326af552d87:\n          balance: '1000000000000000001'\n          storage: {\n            \"0x00\": '0x00',\n            \"0x01\": '0x00'\n            }\n    - indexes:\n        data: !!int 3\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        095e7baea6a6c7c4c2dfeb977efac326af552d87:\n          balance: '1000000000000000001'\n          storage: {\n            \"0x00\": '0x00',\n            \"0x01\": '0x00'\n            }\n    - indexes:\n        data: !!int 4\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        095e7baea6a6c7c4c2dfeb977efac326af552d87:\n          balance: '1000000000000000001'\n          storage: {\n            \"0x00\": '0x00',\n            \"0x01\": '0x00'\n            }\n    - indexes:\n        data: !!int 5\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        095e7baea6a6c7c4c2dfeb977efac326af552d87:\n          balance: '1000000000000000001'\n          storage: {\n            \"0x00\": '0x00',\n            \"0x01\": '0x00'\n            }\n    - indexes:\n        data: !!int 6\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        095e7baea6a6c7c4c2dfeb977efac326af552d87:\n          balance: '1000000000000000001'\n          storage: {\n            \"0x00\": '0x00',\n            \"0x01\": '0x00'\n            }\n    - indexes:\n        data: !!int 7\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        095e7baea6a6c7c4c2dfeb977efac326af552d87:\n          balance: '1000000000000000001'\n          storage: {\n            \"0x00\": '0x00',\n            \"0x01\": '0x00'\n            }\n    - indexes:\n        data: !!int 8\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        095e7baea6a6c7c4c2dfeb977efac326af552d87:\n          balance: '1000000000000000001'\n          storage: {\n            \"0x00\": '0x00',\n            \"0x01\": '0x00'\n            }\n  transaction:\n    data:\n    - ':raw 0x095e7baea6a6c7c4c2dfeb977efac326af552d87'\n    - ':raw 0x0000000000000000000000000000000000000001'\n    - ':raw 0x0000000000000000000000000000000000000002'\n    - ':raw 0x0000000000000000000000000000000000000003'\n    - ':raw 0x0000000000000000000000000000000000000004'\n    - ':raw 0x0000000000000000000000000000000000000005'\n    - ':raw 0x0000000000000000000000000000000000000006'\n    - ':raw 0x0000000000000000000000000000000000000007'\n    - ':raw 0x0000000000000000000000000000000000000008'\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: 45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\n    to: 095e7baea6a6c7c4c2dfeb977efac326af552d87\n    value:\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stExtCodeHash/extCodeHashSTATICCALLFiller.json",
    "content": "{\n    \"extCodeHashSTATICCALL\" : {\n        \"_info\" : {\n            \"comment\": \"EXTCODEHASH of an account during a STATICCALL\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000000001\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x56570de287d73cd1cb6092bb8fdee6173974955fdef345ae579ee9f475ea7432\",\n            \t\t\t    \"0x01\" : \"0x02\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (STATICCALL 150000 <contract:0xdeadbeef00000000000000000000000000000000> 0 0 0 32) (RETURNDATACOPY 0 0 32) [[0]] (MLOAD 0) (STATICCALL 150000 <contract:0xaeadbeef00000000000000000000000000000000> 0 0 0 32) (RETURNDATACOPY 0 0 32) [[1]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                  \"0x00\": \"0xdeadbeef\"\n                }\n            },\n            \"<contract:0xdeadbeef00000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 0 (EXTCODEHASH <contract:0xdeadbeef00000000000000000000000000000001>)) (RETURN 0 32) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                  \"0x00\": \"0xdeadbeef\"\n                }\n            },\n            \"<contract:0xaeadbeef00000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 0 (EXTCODESIZE <contract:0xdeadbeef00000000000000000000000000000001>)) (RETURN 0 32) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                  \"0x00\": \"0xdeadbeef\"\n                }\n            },\n            \"<contract:0xdeadbeef00000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x1234\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stExtCodeHash/extCodeHashSelfFiller.json",
    "content": "{\n  \"extCodeHashSelf\": {\n    \"_info\": {\n      \"comment\": \"EXTCODEHASH/EXTCODESIZE of the currently executing account\"\n    },\n    \"env\": {\n      \"currentCoinbase\": \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n      \"currentDifficulty\": \"0x20000\",\n      \"currentGasLimit\": \"1000000\",\n      \"currentNumber\": \"1\",\n      \"currentTimestamp\": \"1000\"\n    },\n    \"expect\": [\n      {\n        \"indexes\": {\n          \"data\": -1,\n          \"gas\": -1,\n          \"value\": -1\n        },\n        \"network\": [\n          \">=Cancun\"\n        ],\n        \"result\": {\n          \"deadbeef00000000000000000000000000000000\": {\n            \"balance\": \"1000000000000000001\",\n            \"storage\": {\n              \"0x00\": \"0x8807d680db87f5e22d9914d421554ef0f43ec8f589fff85a094c52a35525d2bf\",\n              \"0x01\": \"0x33\"\n            }\n          }\n        }\n      }\n    ],\n    \"pre\": {\n      \"deadbeef00000000000000000000000000000000\": {\n        \"balance\": \"1000000000000000000\",\n        \"code\": \"{  [[0]] (EXTCODEHASH 0xdeadbeef00000000000000000000000000000000) [[1]] (EXTCODESIZE 0xdeadbeef00000000000000000000000000000000) }\",\n        \"nonce\": \"0\",\n        \"storage\": {\n          \"0x00\": \"0xdeadbeef\"\n        }\n      },\n      \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\": {\n        \"balance\": \"1000000000000000000\",\n        \"code\": \"\",\n        \"nonce\": \"0\",\n        \"storage\": {\n        }\n      }\n    },\n    \"transaction\": {\n      \"data\": [\n        \"\"\n      ],\n      \"gasLimit\": [\n        \"400000\"\n      ],\n      \"gasPrice\": \"10\",\n      \"nonce\": \"0\",\n      \"secretKey\": \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n      \"to\": \"deadbeef00000000000000000000000000000000\",\n      \"value\": [\n        \"1\"\n      ]\n    }\n  }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stExtCodeHash/extCodeHashSelfInInitFiller.json",
    "content": "{\n  \"extCodeHashSelfInInit\": {\n    \"_info\": {\n      \"comment\": \"EXTCODEHASH/EXTCODESIZE of the account currently being created\"\n    },\n    \"env\": {\n      \"currentCoinbase\": \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n      \"currentDifficulty\": \"0x20000\",\n      \"currentGasLimit\": \"1000000\",\n      \"currentNumber\": \"1\",\n      \"currentTimestamp\": \"1000\"\n    },\n    \"expect\": [\n      {\n        \"indexes\": {\n          \"data\": -1,\n          \"gas\": -1,\n          \"value\": -1\n        },\n        \"network\": [\n          \">=Cancun\"\n        ],\n        \"result\": {\n          \"deadbeef00000000000000000000000000000000\": {\n            \"balance\": \"1000000000000000001\",\n            \"storage\": {\n              \"0x00\": \"0xdeadbeef\"\n            }\n          },\n          \"0x8d540e2aaf9828712749afedf7c53ed034a6fd0e\": {\n            \"balance\": \"0\",\n            \"storage\": {\n              \"0x00\": \"0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470\",\n              \"0x01\": \"0x00\"\n            }\n          }\n        }\n      }\n    ],\n    \"pre\": {\n      \"deadbeef00000000000000000000000000000000\": {\n        \"balance\": \"1000000000000000000\",\n        \"code\": \"{ (CREATE2 0 0 (lll {[[0]] (EXTCODEHASH (ADDRESS)) [[1]] (EXTCODESIZE (ADDRESS)) (RETURN 0 0)} 0) 0x10) (STOP) }\",\n        \"nonce\": \"0\",\n        \"storage\": {\n          \"0x00\": \"0xdeadbeef\"\n        }\n      },\n      \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\": {\n        \"balance\": \"1000000000000000000\",\n        \"code\": \"\",\n        \"nonce\": \"0\",\n        \"storage\": {\n        }\n      }\n    },\n    \"transaction\": {\n      \"data\": [\n        \"\"\n      ],\n      \"gasLimit\": [\n        \"400000\"\n      ],\n      \"gasPrice\": \"10\",\n      \"nonce\": \"0\",\n      \"secretKey\": \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n      \"to\": \"deadbeef00000000000000000000000000000000\",\n      \"value\": [\n        \"1\"\n      ]\n    }\n  }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stExtCodeHash/extCodeHashSubcallOOGFiller.yml",
    "content": "# create contract A in a subcall. go OOG in a subcall (revert happens) check EXTCODEHASH of A (in upper call)\n---\nextCodeHashSubcallOOG:\n  _info:\n    comment: \"create contract A in a subcall. go OOG in a subcall (revert happens) check EXTCODEHASH of A (in upper call)\"\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: \"10000000\"\n    currentNumber: \"1\"\n    currentTimestamp: \"1000\"\n  pre:\n    '1000000000000000000000000000000000000000':\n      balance: '1000000000000000000'\n      code: |\n        {\n          (CALLCODE 350000 (CALLDATALOAD 0) 0 0 0 0 32)\n          (SSTORE 1 (EXTCODEHASH (MLOAD 0)))\n          (SSTORE 2 (EXTCODESIZE (MLOAD 0)))\n          (EXTCODECOPY (MLOAD 0) 0 0 32)\n          (SSTORE 3 (MLOAD 0))\n          (SSTORE 4 (CALLCODE 50000 (MLOAD 0) 0 0 0 0 0))\n        }\n      nonce: '0'\n      storage: {}\n    '2000000000000000000000000000000000000000':\n      balance: '1000000000000000000'\n      code: |\n        { (CALL 150000 0xa000000000000000000000000000000000000000 0 0 0 0 32) (RETURN 0 32)}\n      nonce: '0'\n      storage: {}\n    '2100000000000000000000000000000000000000':\n      balance: '1000000000000000000'\n      code: |\n        { (CALLCODE 150000 0xa000000000000000000000000000000000000000 0 0 0 0 32) (RETURN 0 32)}\n      nonce: '0'\n      storage: {}\n    '2200000000000000000000000000000000000000':\n      balance: '1000000000000000000'\n      code: |\n        { (DELEGATECALL 150000 0xa000000000000000000000000000000000000000 0 0 0 32) (RETURN 0 32)}\n      nonce: '0'\n      storage: {}\n    '3000000000000000000000000000000000000000':\n      balance: '1000000000000000000'\n      code: |\n        { (CALL 150000 0xa100000000000000000000000000000000000000 0 0 0 0 32) (RETURN 0 32)}\n      nonce: '0'\n      storage: {}\n    '3100000000000000000000000000000000000000':\n      balance: '1000000000000000000'\n      code: |\n        { (CALLCODE 250000 0xa100000000000000000000000000000000000000 0 0 0 0 32) (RETURN 0 32)}\n      nonce: '0'\n      storage: {}\n    '3200000000000000000000000000000000000000':\n      balance: '1000000000000000000'\n      code: |\n        { (DELEGATECALL 150000 0xa100000000000000000000000000000000000000 0 0 0 32) (RETURN 0 32)}\n      nonce: '0'\n      storage: {}\n    #create dynamic contract not going out of gas\n    a000000000000000000000000000000000000000:\n      balance: '1000000000000000000'\n      code: |\n        { \n          (MSTORE 0\n            (CREATE2 0 0\n              (lll\n              {\n                (MSTORE 0 0x6020602055)\n                (RETURN 27 5)\n              }\n              0)\n            0))\n           (RETURN 0 32)\n           (STOP)\n        }\n      nonce: '0'\n      storage: {}\n    #create dynamic contract and go OOG\n    a100000000000000000000000000000000000000:\n      balance: '1000000000000000000'\n      code: |\n        {\n          (MSTORE 0\n            (CREATE2 0 0\n              (lll\n              {\n                (MSTORE 0 0x6020602055)\n                (RETURN 27 5)\n              }\n              0)\n            0))\n          (SSTORE 1 1) (SSTORE 2 1) (SSTORE 3 1) (SSTORE 4 1) (SSTORE 5 1) (SSTORE 6 1) (SSTORE 7 1)\n          (SSTORE 8 1) (SSTORE 9 1) (SSTORE 10 1) (SSTORE 11 1) (SSTORE 12 1) (SSTORE 13 1) (SSTORE 14 1)\n          (RETURN 0 32)\n          (STOP) \n        }\n      nonce: '0'\n      storage: {}\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '1000000000000000000'\n      code: ''\n      nonce: '0'\n      storage: {}\n  expect:\n    - indexes:\n        data: [ !!int 0, !!int 1, !!int 2 ]\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        1000000000000000000000000000000000000000:\n          storage: {\n             \"0x01\": '0x9ff1f274b33e3b56edd7734520cbcdf2699fc1dc78b51644cdc56ca65bebeeae',\n             \"0x02\": '0x05',\n             \"0x03\": '0x6020602055000000000000000000000000000000000000000000000000000000',\n             \"0x04\": '0x01'\n          }\n    - indexes:\n        data: [ !!int 3, !!int 4, !!int 5 ]\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        62ae0b997c8230e321b19d06b7004f25e1ac0637:\n          shouldnotexist: '1'\n        c566c94b132ce77d6e67add86c5a74e808578876:\n          shouldnotexist: '1' \n  transaction:\n    data:\n    - ':raw 0x0000000000000000000000002000000000000000000000000000000000000000'\n    - ':raw 0x0000000000000000000000002100000000000000000000000000000000000000'\n    - ':raw 0x0000000000000000000000002200000000000000000000000000000000000000'\n    - ':raw 0x0000000000000000000000003000000000000000000000000000000000000000'\n    - ':raw 0x0000000000000000000000003100000000000000000000000000000000000000'\n    - ':raw 0x0000000000000000000000003200000000000000000000000000000000000000'\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: 45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\n    to: '1000000000000000000000000000000000000000'\n    value:\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stExtCodeHash/extCodeHashSubcallSuicideCancunFiller.yml",
    "content": "# transaction to B\n# B call to A\n# A delegatecall/callcode to C (C has selfdestruct)\n# A selfdestructed. returned to B. now we could check extcodehash of A (in account B code)\n# Cancun version with dynamic contract suicide\n---\nextCodeHashSubcallSuicideCancun:\n  _info:\n    comment: \"transaction to B | B call to A | A delegatecall/callcode to C (C has selfdestruct) | A selfdestructed. returned to B. now we could check extcodehash of A (in account B code)\"\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: \"10000000\"\n    currentNumber: \"1\"\n    currentTimestamp: \"1000\"\n  pre:\n    b000000000000000000000000000000000000000:\n      balance: '1000000000000000000'\n      code: |\n        {\n          ;; create 0x3e180b1862f9d158abb5e519a6d8605540c23682 (Account A)\n          (CREATE 1000000000000000000 0 (lll \n                {\n                    (CALL 100000 0xd000000000000000000000000000000000000000 0 0 0 0 0) \n                    (RETURN 0 (lll\n                        {\n                          (SELFDESTRUCT 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b)\n                        }\n                    0))\n                }\n          0))\n\n          (SSTORE 1 (EXTCODEHASH 0xa000000000000000000000000000000000000000))\n          (SSTORE 2 (EXTCODESIZE 0xa000000000000000000000000000000000000000))\n          (EXTCODECOPY 0xa000000000000000000000000000000000000000 0 0 32)\n          (SSTORE 3 (MLOAD 0))\n \n          (CALL 350000 0xa000000000000000000000000000000000000000 0 0 0 0 32)\n\n          (SSTORE 4 (EXTCODEHASH 0xa000000000000000000000000000000000000000))\n          (SSTORE 5 (EXTCODESIZE 0xa000000000000000000000000000000000000000))\n          (EXTCODECOPY 0xa000000000000000000000000000000000000000 0 0 32)\n          (SSTORE 6 (MLOAD 0))\n\n          [[7]] (CALL 350000 0xa000000000000000000000000000000000000000 0 0 0 0 32)\n        }\n      nonce: '0'\n      storage: {}\n    a000000000000000000000000000000000000000:\n      balance: '1000000000000000000'\n      code: |\n        {\n          (CALLCODE 350000 0x3e180b1862f9d158abb5e519a6d8605540c23682 0 0 0 0 32)\n        }\n      nonce: '0'\n      storage: {}\n    d000000000000000000000000000000000000000:\n      balance: '1000000000000000000'\n      code: |\n        { \n          [[1]] 1\n        }\n      nonce: '0'\n      storage: {}\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '1000000000000000000'\n      code: ''\n      nonce: '0'\n      storage: {}\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        b000000000000000000000000000000000000000:\n          storage: {\n             \"0x01\": '0x807d478bd0d0173122f5531d4c43781631444232a0816dd35578747c7d67af0d',\n             \"0x02\": '0x25',\n             \"0x03\": '0x60206000600060006000733e180b1862f9d158abb5e519a6d8605540c2368262',\n             \"0x04\": '0x807d478bd0d0173122f5531d4c43781631444232a0816dd35578747c7d67af0d',\n             \"0x05\": '0x25',\n             \"0x06\": '0x60206000600060006000733e180b1862f9d158abb5e519a6d8605540c2368262',\n             \"0x07\": '0x01'\n          }\n        #CALLCODE to a contract that suicide in Cancun does not delete the caller. even if contract that has suicide is dynamically created\n        a000000000000000000000000000000000000000:\n            nonce: '0'\n            storage: {}\n            code: '0x60206000600060006000733e180b1862f9d158abb5e519a6d8605540c2368262055730f200'\n            balance: '0'\n        d000000000000000000000000000000000000000:\n            storage: {\n                \"0x01\" : \"0x01\"\n            }\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '500000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: 45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\n    to: 'b000000000000000000000000000000000000000'\n    value:\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stExtCodeHash/extCodeHashSubcallSuicideFiller.yml",
    "content": "# transaction to B\n# B call to A\n# A delegatecall/callcode to C (C has selfdestruct)\n# A selfdestructed. returned to B. now we could check extcodehash of A (in account B code)\n---\nextCodeHashSubcallSuicide:\n  _info:\n    comment: \"transaction to B | B call to A | A delegatecall/callcode to C (C has selfdestruct) | A selfdestructed. returned to B. now we could check extcodehash of A (in account B code)\"\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: \"10000000\"\n    currentNumber: \"1\"\n    currentTimestamp: \"1000\"\n  pre:\n    b000000000000000000000000000000000000000:\n      balance: '1000000000000000000'\n      code: |\n        {\n          (SSTORE 1 (EXTCODEHASH 0xa000000000000000000000000000000000000000))\n          (SSTORE 2 (EXTCODESIZE 0xa000000000000000000000000000000000000000))\n          (EXTCODECOPY 0xa000000000000000000000000000000000000000 0 0 32)\n          (SSTORE 3 (MLOAD 0))\n \n          (CALL 350000 0xa000000000000000000000000000000000000000 0 0 0 0 32)\n\n          (SSTORE 4 (EXTCODEHASH 0xa000000000000000000000000000000000000000))\n          (SSTORE 5 (EXTCODESIZE 0xa000000000000000000000000000000000000000))\n          (EXTCODECOPY 0xa000000000000000000000000000000000000000 0 0 32)\n          (SSTORE 6 (MLOAD 0))\n\n          [[7]] (CALL 350000 0xa000000000000000000000000000000000000000 0 0 0 0 32)\n        }\n      nonce: '0'\n      storage: {}\n    a000000000000000000000000000000000000000:\n      balance: '1000000000000000000'\n      code: |\n        {\n          (CALLCODE 350000 0xc000000000000000000000000000000000000000 0 0 0 0 32)\n        }\n      nonce: '0'\n      storage: {}\n    c000000000000000000000000000000000000000:\n      balance: '1000000000000000000'\n      code: |\n        { \n          (SELFDESTRUCT 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b)\n        }\n      nonce: '0'\n      storage: {}\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '1000000000000000000'\n      code: ''\n      nonce: '0'\n      storage: {}\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        b000000000000000000000000000000000000000:\n          storage: {\n             \"0x01\": '0x367d3c0e810bbdebc72c25e80dcb9a337c7c87e3a36e6fae87d1d51b3c745d24',\n             \"0x02\": '0x25',\n             \"0x03\": '0x6020600060006000600073c00000000000000000000000000000000000000062',\n             \"0x04\": '0x367d3c0e810bbdebc72c25e80dcb9a337c7c87e3a36e6fae87d1d51b3c745d24',\n             \"0x05\": '0x25',\n             \"0x06\": '0x6020600060006000600073c00000000000000000000000000000000000000062',\n             \"0x07\": '0x01'\n          }\n        a000000000000000000000000000000000000000:\n            balance: 0\n            nonce: 0\n            code: '0x6020600060006000600073c00000000000000000000000000000000000000062055730f200'\n            storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '500000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: 45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\n    to: 'b000000000000000000000000000000000000000'\n    value:\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stExtCodeHash/extcodehashEmpty_ParisFiller.yml",
    "content": "# The extcodehash opcode returns zero when an account is truly empty\n# (no data what so ever), or when an account only has storage entries.\n#\n# When an account has either a balance or a nonce, extcodehash returns\n# the hash of the empty string.\n#\n# This test was requested in issue https://github.com/ethereum/tests/issues/581\n\nextcodehashEmpty_Paris:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz  qbzzt1@gmail.com\n\n  pre:\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           (def 'addr $4)\n           (def 'NOP   0)\n\n           ; If the address is above 0x2000, we should call it first\n           ; and then check the extcodehash\n           (if (> addr 0x2000)\n             (call (gas) addr 0 0 0 0 0)\n             NOP\n           )\n\n           ; Normal result\n           [[0]] (extcodesize addr)\n           [[1]] (extcodehash addr)\n           (extcodecopy addr 0 0 @@0)\n           [[2]] @0\n\n           ; Send a wei to the account and see that you ALWAYS get the\n           ; empty string's hash, but only for \"normal\", sub 0x2000 addresses\n           (if (< addr 0x2000)\n             (call (gas) addr 1 0 0 0 0)\n             NOP\n           )\n           [[3]] (extcodehash addr)\n\n           ; As long as we're here, check the gas cost of EXTCODEHASH\n           ; Note that the space between the (gas) checks also includes:\n           ; GAS           2\n           ; PUSH1         3\n           ; MSTORE        6\n           ; PUSH1         3\n           ; CALLDATALOAD  3\n           ;   << EXTCODEHASH is here >>\n           ; POP           2\n\n           [0x20] (gas)\n           (extcodehash addr)\n           [0x40] (gas)\n           [[4]] (- @0x20 @0x40 19)\n\n           ; Also, the EXTCODEHASH cost here is for a previously touched\n           ; account, which makes it a lot lower (>=Cancun)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    # Really empty, the EXTCODEHASH is zero\n    # 0000000000000000000000000000000000001000:\n    #  balance: 0\n    #  code: 0x\n    #  nonce: 0\n    #  storage: {}\n\n\n    # If there is a balance, it's the hash of the empty string\n    0000000000000000000000000000000000001001:\n      balance: 1\n      code: 0x\n      nonce: 0\n      storage: {}\n\n\n\n    # The actual balance doesn't matter\n    0000000000000000000000000000000000001101:\n      balance: 0x100000000000000\n      code: 0x\n      nonce: 0\n      storage: {}\n\n\n    # If there is a nonce, it's also the hash of the empty string\n    0000000000000000000000000000000000001002:\n      balance: 0\n      code: 0x\n      nonce: 1\n      storage: {}\n\n    # The nonce value doesn't matter\n    0000000000000000000000000000000000001102:\n      balance: 0\n      code: 0x\n      nonce: 1000000000000\n      storage: {}\n\n\n    # Storage doesn't make it look an account exists\n    0000000000000000000000000000000000001003:\n      balance: 10\n      code: 0x\n      nonce: 0\n      storage:\n        0x00: 0x01000000\n        0xFFFFFFF: 0xFFFFFFFF\n\n    0000000000000000000000000000000000001004:\n      balance: 0\n      code: :raw 0x00\n      nonce: 0\n      storage: {}\n\n\n    # What happens when a contract commits suicide?\n    # (nothing, suicide is not processed until the end of the transaction)\n    000000000000000000000000000000000000DEAD:\n      balance: 100\n      code: :raw 0x6160A7FF\n      nonce: 0\n      storage: {}\n\n\n    # What happens when it CREATEs another contract,\n    # and that one is empty?\n    #\n    # The new contract is created with nonce:1, so it is never empty\n    # and EXTCODEHASH always returns the hash of the empty string\n    0000000000000000000000000000000000C0EA7E:\n      balance: 100\n      code: |\n        {\n            (def 'constructorCode   0x100)\n            (def 'constructorLength 0x020)\n            (def 'addr              0x040)\n\n            [constructorLength] (lll\n                {\n                   ; The constructor code, nothing happens\n                   ; except we return an empty buffer with \"all\"\n                   ; the code of the created contract\n                   (return 0 0)\n                }\n                constructorCode   ; write to 0x100 and above\n            )\n\n            [addr] (create 0 constructorCode @constructorLength)\n            [[0]] (extcodehash @addr)\n        }\n      nonce: 0\n      storage: {}\n\n\n\n    # What happens when it CREATE2s another contract,\n    # and that one is empty?\n    #\n    # The new contract is created with nonce:1, so it is never empty\n    # and EXTCODEHASH always returns the hash of the empty string\n    000000000000000000000000000000000C0EA7E2:\n      balance: 100\n      code: |\n        {\n            (def 'constructorCode   0x100)\n            (def 'constructorLength 0x020)\n            (def 'addr              0x040)\n\n            [constructorLength] (lll\n                {\n                   ; The constructor code, nothing happens\n                   ; except we return an empty buffer with \"all\"\n                   ; the code of the created contract\n                   (return 0 0)\n                }\n                constructorCode   ; write to 0x100 and above\n            )\n\n            [addr] (create2 0 constructorCode @constructorLength 0x60A7)\n            [[0]] (extcodehash @addr)\n            [[1]] @addr\n        }\n      nonce: 0\n      storage: {}\n\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: 0x\n      nonce: 0\n      storage: {}\n\n\n  transaction:\n    data:\n    # These give an EXTCODEHASH of zero\n    - :label empty   :abi f(uint) 0x1000\n    - :label storage :abi f(uint) 0x1003\n\n    # These give an EXTCODEHASH of the empty string\n    - :label balance :abi f(uint) 0x1001\n    - :label balance :abi f(uint) 0x1101\n    - :label nonce   :abi f(uint) 0x1002\n    - :label nonce   :abi f(uint) 0x1102\n\n    # There is a difference between not having code, and having\n    # a single byte of 00 as the code\n    - :label hasCode :abi f(uint) 0x1004\n\n\n    # This contract commits suicide and then we EXTCODEHASH it\n    # However, it seems that suicides don't happen before the end\n    # of the transaction\n    - :label dead    :abi f(uint) 0xDEAD\n\n\n    # When we create an empty contract, what happens?\n    - :label born    :abi f(uint) 0x00C0EA7E\n    - :label born2   :abi f(uint) 0x0C0EA7E2\n\n\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n  expect:\n\n    - indexes:\n        data:\n        - :label storage\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 0x00\n            0x01: 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470\n            0x02: 0x00\n            0x03: 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470\n            0x04: 0x64   # 100\n\n    - indexes:\n        data:\n        - :label empty\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 0x00\n            0x01: 0x00\n            0x02: 0x00\n            0x03: 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470\n            0x04: 0x64   # 100\n\n\n\n\n    - indexes:\n        data:\n        - :label balance\n        - :label nonce\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 0x00\n            0x01: 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470\n            0x02: 0x00\n            0x03: 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470\n            0x04: 0x64   # 100\n\n\n\n\n    - indexes:\n        data:\n        - :label hasCode\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 0x01\n            0x01: 0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a\n            0x02: 0x00\n            0x03: 0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a\n            0x04: 0x64\n\n\n\n    - indexes:\n        data:\n        - :label dead\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 0x04\n            0x01: 0x2951f94cc6db6e9b3de9e43ccbd2c84491c46fc3be255c6634299f82b37baaf8\n            0x02: 0x6160a7ff00000000000000000000000000000000000000000000000000000000\n            0x03: 0x2951f94cc6db6e9b3de9e43ccbd2c84491c46fc3be255c6634299f82b37baaf8\n            0x04: 0x64   # 100\n\n\n\n    - indexes:\n        data:\n        - :label born\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        # We don't care about C0EA7E (which obviously is not empty)\n        # We care about the account it creates.\n        0000000000000000000000000000000000C0EA7E:\n          storage:\n            0x00: 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470\n\n\n\n    - indexes:\n        data:\n        - :label born2\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        # We don't care about C0EA7E2 (which obviously is not empty)\n        # We care about the account it creates.\n        000000000000000000000000000000000C0EA7E2:\n          storage:\n            0x00: 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470\n            0x01: 0xb41b458cea588432cef2494454a360143004984c\n        b41b458cea588432cef2494454a360143004984c:\n          nonce: 1\n"
  },
  {
    "path": "tests/static/state_tests/stHomesteadSpecific/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stHomesteadSpecific/contractCreationOOGdontLeaveEmptyContractFiller.json",
    "content": "{\n    \"contractCreationOOGdontLeaveEmptyContract\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1},\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"5dddfce53ee040d9eb21afbc0ae1bb4dbb0ba643\" : {\n            \t\t\t\"shouldnotexist\" : \"1\"\n    \t    \t    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t        \"1000000000000000000000000000000000000001\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (SSTORE 1 0x10) (MSTORE 0 0x6001600155601080600c6000396000f3006000355415600957005b6020356000 ) (CREATE 0 0 32)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"93056\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"1000000000000000000000000000000000000001\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stHomesteadSpecific/contractCreationOOGdontLeaveEmptyContractViaTransactionFiller.json",
    "content": "{\n    \"contractCreationOOGdontLeaveEmptyContractViaTransaction\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1},\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\": {\n                           \"balance\" : \"0\"\n\t   \t            }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1100000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t        \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"100000\",\n                \"code\" : \"{(CALL 50000 0x1000000000000000000000000000000000000001 0 0 64 0 64)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t         \"1000000000000000000000000000000000000001\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{(SSTORE 1 1)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x6040600060406000600073100000000000000000000000000000000000000161c350f1\"\n            ],\n            \"gasLimit\" : [\n                \"96000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stHomesteadSpecific/createContractViaContractFiller.json",
    "content": "{\n    \"createContractViaContract\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"// balance\" : \"21000 + Code Execution + Contract Creation\",\n                        \"// balance\" : \"469910\",\n                    \t\"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"1000000000000000000000000000000000000001\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (CREATE 0 0 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"1000000000000000000000000000000000000001\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stHomesteadSpecific/createContractViaContractOOGInitCodeFiller.json",
    "content": "{\n    \"createContractViaContractOOGInitCode\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1},\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"4ff884bffc83e888ae11b32b1d94bf9bc8d1732f\" : {\n\t\t\t\"shouldnotexist\" : \"1\"\n\t    \t    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1100000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"1000000000000000000000000000000000000001\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (MSTORE 0 0x602060406000f0600c600055)(CREATE 0 20 12)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"105044\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"1000000000000000000000000000000000000001\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stHomesteadSpecific/createContractViaTransactionCost53000Filler.json",
    "content": "{\n    \"createContractViaTransactionCost53000\" : {\n        \"_info\" : {\n            \"comment\" : \"trigger transaction creating gasPrice in the state\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\",\n                        \"//balance\" : \"470000\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stInitCodeTest/CallContractToCreateContractAndCallItOOGFiller.json",
    "content": "{\n    \"CallContractToCreateContractAndCallItOOG\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xd2571607e241ecf590ed94b12d87c94babe36db6\"\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    },\n                    \"d2571607e241ecf590ed94b12d87c94babe36db6\" : {\n                        \"balance\" : \"1\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x0c\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"//\" : \"{[[0]] 12 (MSTORE 32 0x602060406000f0)(RETURN 57 7)}\",\n                \"balance\" : \"1000\",\n                \"code\" : \"{(MSTORE 0 0x600c60005566602060406000f060205260076039f3)[[0]](CREATE 1 11 21)(CALL 1000 (SLOAD 0) 0 0 0 0 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"100000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x00\"\n            ],\n            \"gasLimit\" : [\n                \"203000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stInitCodeTest/CallContractToCreateContractNoCashFiller.json",
    "content": "{\n    \"CallContractToCreateContractNoCash\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\"\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"//\" : \"{[[0]] 12 (MSTORE 32 0x602060406000f0)(RETURN 57 7)}\",\n                \"balance\" : \"10000\",\n                \"code\" : \"{(MSTORE 0 0x600c60005566602060406000f060205260076039f3)[[0]](CREATE 100000 11 21)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x00\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stInitCodeTest/CallContractToCreateContractOOGBonusGasFiller.json",
    "content": "{\n    \"CallContractToCreateContractOOGBonusGas\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xd2571607e241ecf590ed94b12d87c94babe36db6\"\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    },\n                    \"d2571607e241ecf590ed94b12d87c94babe36db6\" : {\n                        \"balance\" : \"1\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x0c\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"//\" : \"{[[0]] 12 (MSTORE 32 0x602060406000f0)(RETURN 57 7)}\",\n                \"balance\" : \"112\",\n                \"code\" : \"{(MSTORE 0 0x600c60005566602060406000f060205260076039f3)[[0]](CREATE 1 11 21)(CALL 0 (SLOAD 0) 12 0 0 0 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x00\"\n            ],\n            \"gasLimit\" : [\n                \"200000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stInitCodeTest/CallContractToCreateContractOOGFiller.json",
    "content": "{\n    \"CallContractToCreateContractOOG\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\"\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"//\" : \"{[[0]] 12 (MSTORE 32 0x602060406000f0)(RETURN 57 7)}\",\n                \"balance\" : \"0\",\n                \"code\" : \"{(MSTORE 0 0x600c60005566602060406000f060205260076039f3)[[0]](CREATE 1 11 21)(CALL 0 (SLOAD 0) 0 0 0 0 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x00\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stInitCodeTest/CallContractToCreateContractWhichWouldCreateContractIfCalledFiller.json",
    "content": "{\n    \"CallContractToCreateContractWhichWouldCreateContractIfCalled\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xd2571607e241ecf590ed94b12d87c94babe36db6\"\n                        }\n                    },\n                    \"62c01474f089b07dae603491675dc5b5748f7049\" : {\n                        \"shouldnotexist\" : \"1\"\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    },\n                    \"d2571607e241ecf590ed94b12d87c94babe36db6\" : {\n                        \"balance\" : \"2\",\n                        \"nonce\" : \"2\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x0c\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"//\" : \"{[[0]] 12 (MSTORE 32 0x602060406000f0)(RETURN 57 7)}\",\n                \"balance\" : \"1000\",\n                \"code\" : \"{(MSTORE 0 0x600c60005566602060406000f060205260076039f3)[[0]](CREATE 1 11 21)(CALL 50000 (SLOAD 0) 1 0 0 0 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x00\"\n            ],\n            \"gasLimit\" : [\n                \"200000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stInitCodeTest/CallContractToCreateContractWhichWouldCreateContractInInitCodeFiller.json",
    "content": "{\n    \"CallContractToCreateContractWhichWouldCreateContractInInitCode\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"balance\" : \"1\",\n                        \"nonce\" : \"1\"\n                    },\n                    \"62c01474f089b07dae603491675dc5b5748f7049\" : {\n                        \"shouldnotexist\" : \"1\"\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    },\n                    \"d2571607e241ecf590ed94b12d87c94babe36db6\" : {\n                        \"nonce\" : \"2\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x0c\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"//\" : \"{[[0]] 12 (CREATE 0 64 32)}\",\n                \"balance\" : \"1\",\n                \"code\" : \"{(MSTORE 0 0x600c600055602060406000f0)(CREATE 0 20 12)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x00\"\n            ],\n            \"gasLimit\" : [\n                \"200000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stInitCodeTest/CallRecursiveContractFiller.json",
    "content": "{\n    \"CallRecursiveContract\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n             {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"balance\" : \"1\",\n                        \"nonce\" : \"41\",\n                        \"storage\" : {\n                            \"0x02\" : \"0x095e7baea6a6c7c4c2dfeb977efac326af552d87\"\n                        }\n                    },\n                    \"1a4c83e1a9834cdc7e4a905ff7f0cf44aed73180\" : {\n                        \"shouldnotexist\" : \"1\"\n                    },\n                    \"8e3411c91d5dd4081b4846fa2f93808f5ad19686\" : {\n                        \"shouldnotexist\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{[[ 2 ]](ADDRESS)(CODECOPY 0 0 32)(CREATE 0 0 32)}\",\n                \"nonce\" : \"40\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"10000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x00\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stInitCodeTest/CallTheContractToCreateEmptyContractFiller.json",
    "content": "{\n    \"CallTheContractToCreateEmptyContract\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"balance\" : \"1\",\n                        \"nonce\" : \"1\"\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    },\n                    \"d2571607e241ecf590ed94b12d87c94babe36db6\" : {\n                        \"balance\" : \"0\",\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{(CREATE 0 0 32)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"10000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x00\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stInitCodeTest/OutOfGasContractCreationFiller.json",
    "content": "{\n    \"OutOfGasContractCreation\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"100000000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n        \t\t    \t\"nonce\" : \"1\"\n                    },\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"shouldnotexist\" : \"1\"\n                    }\n                }\n            },\n\t        {\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n        \t\t    \t\"nonce\" : \"1\"\n                    },\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    },\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"shouldnotexist\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x600a80600c6000396000f200600160008035811a8100\",\n        \t\t\":raw 0x600160015560026001556003600155600460015560056001556006600155\"\n            ],\n            \"gasLimit\" : [\n                \"56000\", \"150000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stInitCodeTest/OutOfGasPrefundedContractCreationFiller.json",
    "content": "{\n    \"OutOfGasPrefundedContractCreation\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : [0, 1],\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"//comment\" : \"Contract creation OOG on create, and on internal opcode inside create\",\n                \"result\" : {\n            \t    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                       \t\"nonce\" : \"0x01\"\n            \t    },\n            \t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                      \t\"balance\" : \"0x01\"\n              \t    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : [2],\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"//comment\" : \"Contract creation OOG on internal opcode inside create\",\n                \"result\" : {\n            \t    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                       \t\"nonce\" : \"0x01\"\n            \t    },\n            \t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                       \t\"balance\" : \"0x02\"\n              \t    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x0f424000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                \"balance\" : \"0x01\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n\t},\n        \"transaction\" : {\n            \"data\" : [\n                \"{ (CREATE 1 0 (lll (seq (sstore 0 0x112233) (STOP) ) 0)) (STOP) }\"\n            ],\n            \"gasLimit\" : [\n                \"154000\",\n                \"65000\",\n                \"95000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stInitCodeTest/ReturnTest2Filler.json",
    "content": "{\n    \"ReturnTest2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"194f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x15\",\n                            \"0x01\" : \"0x3f\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"194f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{(MSTORE 0 0x15)(CALL 7000 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 32 32 32) [[0]](MLOAD 0) [[1]](MLOAD 32) (RETURN 0 64)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"10000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"100000\",\n                \"code\" : \"{(MSTORE 0 (MUL 3 (CALLDATALOAD 0)))(RETURN 0 32)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"250000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"194f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stInitCodeTest/ReturnTestFiller.json",
    "content": "{\n    \"ReturnTest\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"194f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x15\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"194f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{(CALL 2000 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 30 1 31 1) [[0]](MLOAD 0) (RETURN 30 2)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"10000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"100000\",\n                \"code\" : \"{(MSTORE 0 0x15) (RETURN 31 1)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"300000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"194f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stInitCodeTest/StackUnderFlowContractCreationFiller.json",
    "content": "{\n    \"StackUnderFlowContractCreation\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"shouldnotexist\" : \"1\"\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\" : {\n                \"balance\" : \"0\",\n                \"nonce\" : \"1\",\n                \"code\" : \"\",\n                \"storage\" : {}\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"750000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x6000f1\"\n            ],\n            \"gasLimit\" : [\n                \"72000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stInitCodeTest/TransactionCreateAutoSuicideContractFiller.json",
    "content": "{\n    \"TransactionCreateAutoSuicideContract\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"0000000000000000000000000000000000000000\" : {\n                        \"shouldnotexist\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"0x600a80600c6000396000fff2ffff600160008035811a81\"\n            ],\n            \"gasLimit\" : [\n                \"55000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"15\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stInitCodeTest/TransactionCreateRandomInitCodeFiller.json",
    "content": "{\n    \"TransactionCreateRandomInitCode\" : {\n        \"_info\" : {\n            \"comment\" : \"stack underflow in init code\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"shouldnotexist\" : \"1\"\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }        ],\n        \"pre\" : {\n            \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"\",\n                \"nonce\" : \"1\",\n                \"storage\" : {\n                }\n            },  \n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x600a80600c6000396000f200600160008035811a8100\"\n            ],\n            \"gasLimit\" : [\n                \"64599\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stInitCodeTest/TransactionCreateStopInInitcodeFiller.json",
    "content": "{\n    \"TransactionCreateStopInInitcode\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"balance\" : \"1\"\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x600a80600c600039600000f20000600160008035811a81\"\n            ],\n            \"gasLimit\" : [\n                \"55000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stInitCodeTest/TransactionCreateSuicideInInitcodeFiller.json",
    "content": "{\n    \"TransactionCreateSuicideInInitcode\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"0x6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"shouldnotexist\" : \"1\"\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"\",\n                \"nonce\" : \"1\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"{ (SELFDESTRUCT (ADDRESS)) }\"\n            ],\n            \"gasLimit\" : [\n                \"155000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stInitCodeTest/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stLogTests/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stLogTests/log0_emptyMemFiller.json",
    "content": "{\n    \"log0_emptyMem\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (LOG0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stLogTests/log0_logMemStartTooHighFiller.json",
    "content": "{\n    \"log0_logMemStartTooHigh\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stLogTests/log0_logMemsizeTooHighFiller.json",
    "content": "{\n    \"log0_logMemsizeTooHigh\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG0 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stLogTests/log0_logMemsizeZeroFiller.json",
    "content": "{\n    \"log0_logMemsizeZero\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG0 1 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stLogTests/log0_nonEmptyMemFiller.json",
    "content": "{\n    \"log0_nonEmptyMem\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG0 0 32) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stLogTests/log0_nonEmptyMem_logMemSize1Filler.json",
    "content": "{\n    \"log0_nonEmptyMem_logMemSize1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG0 0 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"2100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stLogTests/log0_nonEmptyMem_logMemSize1_logMemStart31Filler.json",
    "content": "{\n    \"log0_nonEmptyMem_logMemSize1_logMemStart31\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG0 31 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stLogTests/log1_CallerFiller.json",
    "content": "{\n    \"log1_Caller\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE8 0 0xff) (LOG1 0 32 (CALLER)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stLogTests/log1_MaxTopicFiller.json",
    "content": "{\n    \"log1_MaxTopic\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 0 32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stLogTests/log1_emptyMemFiller.json",
    "content": "{\n    \"log1_emptyMem\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (LOG1 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stLogTests/log1_logMemStartTooHighFiller.json",
    "content": "{\n    \"log1_logMemStartTooHigh\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stLogTests/log1_logMemsizeTooHighFiller.json",
    "content": "{\n    \"log1_logMemsizeTooHigh\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stLogTests/log1_logMemsizeZeroFiller.json",
    "content": "{\n    \"log1_logMemsizeZero\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 1 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stLogTests/log1_nonEmptyMemFiller.json",
    "content": "{\n    \"log1_nonEmptyMem\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG1 0 32 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stLogTests/log1_nonEmptyMem_logMemSize1Filler.json",
    "content": "{\n    \"log1_nonEmptyMem_logMemSize1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 0 1 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stLogTests/log1_nonEmptyMem_logMemSize1_logMemStart31Filler.json",
    "content": "{\n    \"log1_nonEmptyMem_logMemSize1_logMemStart31\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 31 1 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stLogTests/log2_CallerFiller.json",
    "content": "{\n    \"log2_Caller\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE8 0 0xff) (LOG2 0 32 0 (CALLER) ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stLogTests/log2_MaxTopicFiller.json",
    "content": "{\n    \"log2_MaxTopic\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG2 0 32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stLogTests/log2_emptyMemFiller.json",
    "content": "{\n    \"log2_emptyMem\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (LOG2 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stLogTests/log2_logMemStartTooHighFiller.json",
    "content": "{\n    \"log2_logMemStartTooHigh\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG2 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stLogTests/log2_logMemsizeTooHighFiller.json",
    "content": "{\n    \"log2_logMemsizeTooHigh\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG2 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stLogTests/log2_logMemsizeZeroFiller.json",
    "content": "{\n    \"log2_logMemsizeZero\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG2 1 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stLogTests/log2_nonEmptyMemFiller.json",
    "content": "{\n    \"log2_nonEmptyMem\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG2 0 32 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stLogTests/log2_nonEmptyMem_logMemSize1Filler.json",
    "content": "{\n    \"log2_nonEmptyMem_logMemSize1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG2 0 1 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stLogTests/log2_nonEmptyMem_logMemSize1_logMemStart31Filler.json",
    "content": "{\n    \"log2_nonEmptyMem_logMemSize1_logMemStart31\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG2 31 1 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stLogTests/log3_CallerFiller.json",
    "content": "{\n    \"log3_Caller\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE8 0 0xff) (LOG3 0 32 0 0 (CALLER) ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stLogTests/log3_MaxTopicFiller.json",
    "content": "{\n    \"log3_MaxTopic\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG3 0 32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stLogTests/log3_PCFiller.json",
    "content": "{\n    \"log3_PC\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE8 0 0xff) (LOG3 0 32 (PC) (PC) (PC) ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stLogTests/log3_emptyMemFiller.json",
    "content": "{\n    \"log3_emptyMem\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (LOG3 0 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stLogTests/log3_logMemStartTooHighFiller.json",
    "content": "{\n    \"log3_logMemStartTooHigh\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG3 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stLogTests/log3_logMemsizeTooHighFiller.json",
    "content": "{\n    \"log3_logMemsizeTooHigh\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG3 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stLogTests/log3_logMemsizeZeroFiller.json",
    "content": "{\n    \"log3_logMemsizeZero\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG3 1 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stLogTests/log3_nonEmptyMemFiller.json",
    "content": "{\n    \"log3_nonEmptyMem\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG3 0 32 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stLogTests/log3_nonEmptyMem_logMemSize1Filler.json",
    "content": "{\n    \"log3_nonEmptyMem_logMemSize1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG3 0 1 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stLogTests/log3_nonEmptyMem_logMemSize1_logMemStart31Filler.json",
    "content": "{\n    \"log3_nonEmptyMem_logMemSize1_logMemStart31\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG3 31 1 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stLogTests/log4_CallerFiller.json",
    "content": "{\n    \"log4_Caller\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE8 0 0xff) (LOG4 0 32 0 0 0 (CALLER) ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stLogTests/log4_MaxTopicFiller.json",
    "content": "{\n    \"log4_MaxTopic\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG4 0 32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stLogTests/log4_PCFiller.json",
    "content": "{\n    \"log4_PC\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE8 0 0xff) (LOG4 0 32 (PC) (PC) (PC) (PC) ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stLogTests/log4_emptyMemFiller.json",
    "content": "{\n    \"log4_emptyMem\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (LOG4 0 0 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stLogTests/log4_logMemStartTooHighFiller.json",
    "content": "{\n    \"log4_logMemStartTooHigh\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG4 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stLogTests/log4_logMemsizeTooHighFiller.json",
    "content": "{\n    \"log4_logMemsizeTooHigh\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG4 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stLogTests/log4_logMemsizeZeroFiller.json",
    "content": "{\n    \"log4_logMemsizeZero\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG4 1 0 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stLogTests/log4_nonEmptyMemFiller.json",
    "content": "{\n    \"log4_nonEmptyMem\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG4 0 32 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stLogTests/log4_nonEmptyMem_logMemSize1Filler.json",
    "content": "{\n    \"log4_nonEmptyMem_logMemSize1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG4 0 1 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stLogTests/log4_nonEmptyMem_logMemSize1_logMemStart31Filler.json",
    "content": "{\n    \"log4_nonEmptyMem_logMemSize1_logMemStart31\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG4 31 1 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stLogTests/logInOOG_CallFiller.json",
    "content": "{\n    \"logInOOG_Call\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 100000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (LOG0 0 32) (MLOAD 0xffffffffffffffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemExpandingEIP150Calls/CallAndCallcodeConsumeMoreGasThenTransactionHasWithMemExpandingCallsFiller.json",
    "content": "{\n    \"CallAndCallcodeConsumeMoreGasThenTransactionHasWithMemExpandingCalls\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n\t\t                \"nonce\": \"1\"\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n\t\t                \"storage\": {\n\t\t                    \"0x08\": \"0x08d5b6\",\n\t\t                    \"0x09\": \"0x01\",\n\t\t                    \"0x00\": \"0x12\",\n\t\t                    \"0x0a\": \"0x01\"\n\t\t                }\n\t\t            },\n\t\t            \"<contract:0x1000000000000000000000000000000000000103>\": {\n\t\t                \"storage\": {\n\t\t                    \"0x00\": \"0x12\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\": {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n                \"nonce\": \"0x00\",\n                \"balance\": \"0xe8d4a51000\",\n                \"code\": \"0x\",\n                \"storage\": {}\n            },\n            \"<contract:0x1000000000000000000000000000000000000103>\": {\n                \"nonce\": \"0x00\",\n                \"balance\": \"0x00\",\n                \"code\": \"0x6012600055\",\n                \"storage\": {}\n            },\n            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n                \"nonce\": \"0x00\",\n                \"balance\": \"0x00\",\n                \"code\": \"0x5a60085560ff60ff60ff60ff600073<contract:0x1000000000000000000000000000000000000103>620927c0f160095560ff60ff60ff60ff600073<contract:0x1000000000000000000000000000000000000103>620927c0f2600a55\",\n                \"storage\": {}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x0927c0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemExpandingEIP150Calls/CallAskMoreGasOnDepth2ThenTransactionHasWithMemExpandingCallsFiller.json",
    "content": "{\n    \"CallAskMoreGasOnDepth2ThenTransactionHasWithMemExpandingCalls\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n\t\t                \"nonce\": \"1\"\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n\t\t                \"storage\": {\n\t\t                    \"0x08\": \"0x08d5b6\",\n\t\t                    \"0x09\": \"0x01\"\n\t\t                }\n\t\t            },\n\t\t            \"<contract:0x1000000000000000000000000000000000000108>\": {\n\t\t                \"storage\": {\n\t\t                    \"0x08\": \"0x02a1c7\"\n\t\t                }\n\t\t            },\n\t\t            \"<contract:0x1000000000000000000000000000000000000107>\": {\n\t\t                \"storage\": {\n\t\t                    \"0x08\": \"0x030d3e\",\n\t\t                    \"0x09\": \"0x01\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\": {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n                \"nonce\": \"0x00\",\n                \"balance\": \"0xe8d4a51000\",\n                \"code\": \"0x\",\n                \"storage\": {}\n            },\n            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n                \"nonce\": \"0x00\",\n                \"balance\": \"0x00\",\n                \"code\": \"0x5a60085560ff60ff60ff60ff600073<contract:0x1000000000000000000000000000000000000107>62030d40f1600955\",\n                \"storage\": {}\n            },\n            \"<contract:0x1000000000000000000000000000000000000108>\": {\n                \"nonce\": \"0x00\",\n                \"balance\": \"0x00\",\n                \"code\": \"0x5a600855\",\n                \"storage\": {}\n            },\n            \"<contract:0x1000000000000000000000000000000000000107>\": {\n                \"nonce\": \"0x00\",\n                \"balance\": \"0x00\",\n                \"code\": \"0x5a60085560ff60ff60ff60ff600073<contract:0x1000000000000000000000000000000000000108>620927c0f1600955\",\n                \"storage\": {}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x0927c0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemExpandingEIP150Calls/CallGoesOOGOnSecondLevel2WithMemExpandingCallsFiller.json",
    "content": "{\n    \"CallGoesOOGOnSecondLevel2WithMemExpandingCalls\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n\t\t                \"nonce\": \"1\",\n\t\t                \"//balance\": \"999999840000\"\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n\t\t                \"storage\": {}\n\t\t            },\n\t\t            \"<contract:0x1000000000000000000000000000000000000113>\": {\n\t\t                \"storage\": {}\n\t\t            },\n\t\t            \"<contract:0x1000000000000000000000000000000000000114>\": { \n\t\t                \"storage\": {}\n\t\t            }\n                }\n            }\n        ],\n        \"pre\": {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n                \"nonce\": \"0x00\",\n                \"balance\": \"0xe8d4a510000\",\n                \"code\": \"0x\",\n                \"storage\": {}\n            },\n            \"<contract:0x1000000000000000000000000000000000000114>\": {\n                \"nonce\": \"0x00\",\n                \"balance\": \"0x00\",\n                \"code\": \"0x5a6008555a6009555a600a55\",\n                \"storage\": {}\n            },\n            \"<contract:0x1000000000000000000000000000000000000113>\": {\n                \"nonce\": \"0x00\",\n                \"balance\": \"0x00\",\n                \"code\": \"0x5a60085560ff60ff60ff60ff600073<contract:0x1000000000000000000000000000000000000114>620927c0f1600955\",\n                \"storage\": {}\n            },\n            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n                \"nonce\": \"0x00\",\n                \"balance\": \"0x00\",\n                \"code\": \"0x5a60085560ff60ff60ff60ff600073<contract:0x1000000000000000000000000000000000000113>620927c0f1600955\",\n                \"storage\": {}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x027100\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemExpandingEIP150Calls/CallGoesOOGOnSecondLevelWithMemExpandingCallsFiller.json",
    "content": "{\n    \"CallGoesOOGOnSecondLevelWithMemExpandingCalls\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n\t\t                \"nonce\": \"1\"\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": { \n\t\t                \"storage\": {\n                            \"0x08\" : \"0x030956\"\n                        }\n\t\t            },\n\t\t            \"<contract:0x1000000000000000000000000000000000000110>\": {\n\t\t                \"storage\": {}\n\t\t            },\n\t\t            \"<contract:0x1000000000000000000000000000000000000111>\": {\n\t\t                \"storage\": {}\n\t\t            }\n                }\n            }\n        ],\n        \"pre\": {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n                \"nonce\": \"0x00\",\n                \"balance\": \"0xe8d4a51000\",\n                \"code\": \"0x\",\n                \"storage\": {}\n            },\n            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n                \"nonce\": \"0x00\",\n                \"balance\": \"0x00\",\n                \"code\": \"0x5a60085560ff60ff60ff60ff600073<contract:0x1000000000000000000000000000000000000110>620927c0f1600955\",\n                \"storage\": {}\n            },\n            \"<contract:0x1000000000000000000000000000000000000111>\": {\n                \"nonce\": \"0x00\",\n                \"balance\": \"0x00\",\n                \"code\": \"0x5a600855600060006000f050600060006000f0505a6009555a600a55\",\n                \"storage\": {}\n            },\n            \"<contract:0x1000000000000000000000000000000000000110>\": {\n                \"nonce\": \"0x00\",\n                \"balance\": \"0x00\",\n                \"code\": \"0x5a60085560ff60ff60ff60ff600073<contract:0x1000000000000000000000000000000000000111>620927c0f1600955\",\n                \"storage\": {}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x035b60\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemExpandingEIP150Calls/CreateAndGasInsideCreateWithMemExpandingCallsFiller.json",
    "content": "{\n    \"CreateAndGasInsideCreateWithMemExpandingCalls\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\": {\n\t\t                \"nonce\": \"1\"\n\t\t            },\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\": {\n\t\t                \"nonce\": \"1\",\n                        \"//comment\" : \"CREATE price changed in Shanghai\",\n                        \"//comment\" : \"Due to eip-3860 (https://eips.ethereum.org/EIPS/eip-3860) pay extra 2 gas for each 32 bytes of initcode\",\n\t\t                \"storage\": {\n\t\t                    \"0x0b\": \"0xf1ecf98489fa9ed60a664fc4998db699cfa39d40\",\n\t\t                    \"0x09\": \"0x075596\",\n\t\t                    \"0x0a\": \"0x08d5b6\"\n\t\t                }\n\t\t            },\n\t\t            \"f1ecf98489fa9ed60a664fc4998db699cfa39d40\": {\n\t\t                \"storage\": {\n\t\t                    \"0xfd\": \"0x07e23d\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\": {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\": {\n                \"nonce\": \"0x00\",\n                \"balance\": \"0xe8d4a51000\",\n                \"code\": \"0x\",\n                \"storage\": {}\n            },\n            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\": {\n                \"nonce\": \"0x00\",\n                \"balance\": \"0x00\",\n                \"code\": \"0x5a600a55635a60fd556000526004601c6000f0600b555a600955\",\n                \"storage\": {}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x0927c0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemExpandingEIP150Calls/DelegateCallOnEIPWithMemExpandingCallsFiller.json",
    "content": "{\n    \"DelegateCallOnEIPWithMemExpandingCalls\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n\t\t                \"nonce\": \"1\"\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n\t\t                \"storage\": {\n\t\t                    \"0x08\": \"0x08d5b6\",\n\t\t                    \"0x09\": \"0x01\",\n\t\t                    \"0x00\": \"0x12\"\n\t\t                }\n\t\t            },\n\t\t            \"<contract:0x1000000000000000000000000000000000000105>\": {\n\t\t                \"storage\": {}\n\t\t            }\n                }\n            }\n        ],\n        \"pre\": {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n                \"nonce\": \"0x00\",\n                \"balance\": \"0xe8d4a51000\",\n                \"code\": \"0x\",\n                \"storage\": {}\n            },\n            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n                \"nonce\": \"0x00\",\n                \"balance\": \"0x00\",\n                \"code\": \"0x5a60085560ff60ff60ff60ff73<contract:0x1000000000000000000000000000000000000105>620927c0f4600955\",\n                \"storage\": {}\n            },\n            \"<contract:0x1000000000000000000000000000000000000105>\": {\n                \"nonce\": \"0x00\",\n                \"balance\": \"0x00\",\n                \"code\": \"0x6012600055\",\n                \"storage\": {}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x0927c0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemExpandingEIP150Calls/ExecuteCallThatAskMoreGasThenTransactionHasWithMemExpandingCallsFiller.json",
    "content": "{\n    \"ExecuteCallThatAskMoreGasThenTransactionHasWithMemExpandingCalls\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n\t\t                \"nonce\": \"1\"\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n\t\t                \"storage\": {\n\t\t                    \"0x01\": \"0x01\"\n\t\t                }\n\t\t            },\n\t\t            \"<contract:0x1000000000000000000000000000000000000001>\": {\n\t\t                \"balance\": \"100000\",\n\t\t                \"storage\": {\n\t\t                    \"0x01\": \"0x0c\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\": {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n                \"nonce\": \"0x00\",\n                \"balance\": \"0x0186a000\",\n                \"code\": \"0x\",\n                \"storage\": {}\n            },\n            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n                \"nonce\": \"0x00\",\n                \"balance\": \"0x00\",\n                \"code\": \"0x60ff60ff60ff60ff600073<contract:0x1000000000000000000000000000000000000001>620927c0f1600155\",\n                \"storage\": {}\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\": {\n                \"nonce\": \"0x00\",\n                \"balance\": \"0x0186a0\",\n                \"code\": \"0x600c600155\",\n                \"storage\": {}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemExpandingEIP150Calls/NewGasPriceForCodesWithMemExpandingCallsFiller.json",
    "content": "{\n    \"NewGasPriceForCodesWithMemExpandingCalls\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:0x1000000000000000000000000000000000000010>\": {\n\t\t                \"balance\": \"111\"\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n\t\t                \"storage\": {\n\t\t                    \"0x02\": \"0x1122334455667788991011121314151617181920000000000000000000000000\",\n\t\t                    \"0x03\": \"0xe8d4a4b47280\",\n\t\t                    \"0x00\": \"0x12\",\n\t\t                    \"0x01\": \"0x20\",\n\t\t                    \"0x07\": \"0x01\",\n\t\t                    \"0x04\": \"0x12\",\n\t\t                    \"0x08\": \"0x01\",\n\t\t                    \"0x0a\": \"0x060ae9\",\n\t\t                    \"0x64\": \"0x11\"\n\t\t                }\n\t\t            },\n\t\t            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n\t\t                \"nonce\": \"1\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\": {\n            \"<contract:0x1000000000000000000000000000000000000010>\": {\n                \"nonce\": \"0x00\",\n                \"balance\": \"0x6f\",\n                \"code\": \"0x1122334455667788991011121314151617181920212223242526272829303132\",\n                \"storage\": {}\n            },\n            \"<contract:0x1000000000000000000000000000000000000011>\": {\n                \"nonce\": \"0x00\",\n                \"balance\": \"0x00\",\n                \"code\": \"0x6011606455\",\n                \"storage\": {}\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n                \"nonce\": \"0x00\",\n                \"balance\": \"0xe8d4a5100000\",\n                \"code\": \"0x\",\n                \"storage\": {}\n            },\n            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n                \"nonce\": \"0x00\",\n                \"balance\": \"0x00\",\n                \"code\": \"0x73<contract:0x1000000000000000000000000000000000000010>3b60015560146000600073<contract:0x1000000000000000000000000000000000000010>3c60005160025560005460045560ff60ff60ff60ff600173<contract:0x1000000000000000000000000000000000000011>617530f160055560ff60ff60ff60ff600173<contract:0x1000000000000000000000000000000000000011>617530f260065560ff60ff60ff60ff73<contract:0x1000000000000000000000000000000000000011>617530f460075560ff60ff60ff60ff6000731000000000000000000000000000000000000013617530f160085573<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>316003555a600a55\",\n                \"storage\": {\n                    \"0x00\": \"0x12\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x0927c0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemExpandingEIP150Calls/OOGinReturnFiller.yml",
    "content": "OOGinReturn:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: 0x100000000\n    currentNumber: \"1\"\n    currentTimestamp: \"1000\"\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n\n  pre:\n\n    <contract:return:0xccccccccccccccccccccccccccccccccccccccc1>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code:   | \n        {\n            [0] 0xDEAD60A7\n            (return 0 0x100)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    <contract:revert:0xccccccccccccccccccccccccccccccccccccccc2>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code:   | \n        {\n            [0] 0xDEAD60A7\n            (revert 0 0x100)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code:   | \n        {\n          ; Variables are 0x20 bytes (= 256 bits) apart, except for\n          ; code buffers that get 0x100 (256 bytes)\n          (def 'callRet    0x100)\n          (def 'type       0x120)\n          (def 'gas2Use    0x140)\n          (def 'retVal     0x160)\n          ; Other constants\n          (def 'NOP 0)   ; No OPeration\n          ; Understand the input.\n          [type]       $4\n          [gas2Use]    $36\n          ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n          [0] 0x60A760A7\n          [callRet] (call @gas2Use\n                          @type\n                          0\n                          0 0\n                          0 0x100)\n          [[0]] @0    ; first 0x20 bytes of return data\n          (if (> (returndatasize) 0) (returndatacopy retVal 0 0x20) NOP)\n          [[1]] @retVal\n        }   ; end of LLL code\n      nonce: '0'\n      storage: {}\n\n\n    # User account\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n  transaction:\n    data:\n    # Type:    01 - RETURN    02 - REVERT\n    # Gas\n\n    # Enough gas for the called contract to finish\n    - :abi f(uint,uint) <contract:return> 0x36\n    - :abi f(uint,uint) <contract:revert> 0x36\n\n    # Out of gas during the RETURN / REVERT\n    - :abi f(uint,uint) <contract:return> 0x25\n    - :abi f(uint,uint) <contract:revert> 0x25\n\n    # Out of gas before getting to the RETURN / REVERT\n    - :abi f(uint,uint) <contract:return> 0x10\n    - :abi f(uint,uint) <contract:revert> 0x10\n\n    gasLimit:\n    - 0x900000\n    gasPrice: '10'\n    nonce: '0'\n    to: <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    value:\n    - 0\n\n  expect:\n\n\n    # Calls that return data\n    - indexes:\n        data:\n        - !!int 0\n        - !!int 1\n        gas:  !!int 0\n        value: !!int 0\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0xDEAD60A7\n            0x01: 0xDEAD60A7\n\n\n    # Calls that return data\n    - indexes:\n        data:\n        - !!int 2\n        - !!int 3\n        - !!int 4\n        - !!int 5\n        gas:  !!int 0\n        value: !!int 0\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60a760a7\n\n\n\n\n"
  },
  {
    "path": "tests/static/state_tests/stMemExpandingEIP150Calls/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryStressTest/CALLCODE_Bounds2Filler.json",
    "content": "{\n    \"CALLCODE_Bounds2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n    \t    \"//currentGasLimit\" : \"2^63-1\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t    \t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \t\"balance\" : \"0\",\n\t\t\t\"storage\" : {\n\t\t    \t    \"0x00\" : \"0x00\"\n\t\t\t}\n             \t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n\t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n\t\t\"// code\" : \"(CALLCODE 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0 0xffffffffffffffff 0 0xffffffffffffffff)  (CALLCODE 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0 0xffffffffffffffffffffffffffffffff 0 0xffffffffffffffffffffffffffffffff) (CALLCODE 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (CALLCODE 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff) (CALLCODE 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff)  (CALLCODE 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (CALLCODE 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff) (CALLCODE 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0xffffffff 0xffffffff 0xffffffff 0xffffffff)\",\n                \"code\" : \"{ (CALLCODE 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0xfffffff 0xfffffff 0xfffffff 0xfffffff)  }\",\t\t\t    \n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\n\t    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (SSTORE 0 (ADD 1 (SLOAD 0))) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"16777216\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryStressTest/CALLCODE_Bounds3Filler.json",
    "content": "{\n    \"CALLCODE_Bounds3\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n    \t    \"//currentGasLimit\" : \"2^63-1\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t    \t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \t\"balance\" : \"0\",\n\t\t\t\"storage\" : {\n\t\t    \t    \"0x00\" : \"0x00\"\n\t\t\t}\n             \t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n\t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n\t\t\"// code\" : \"       \",\n                \"code\" : \"{  (CALLCODE 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0xffffffff 0xffffffff 0xffffffff 0xffffffff)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\n\t    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (SSTORE 0 (ADD 1 (SLOAD 0))) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"16777216\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryStressTest/CALLCODE_Bounds4Filler.json",
    "content": "{\n    \"CALLCODE_Bounds4\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (CALLCODE 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0 0xffffffffffffffff 0 0xffffffffffffffff) (CALLCODE 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0 0xffffffffffffffffffffffffffffffff 0 0xffffffffffffffffffffffffffffffff) (CALLCODE 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (CALLCODE 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff) (CALLCODE 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff) (CALLCODE 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (CALLCODE 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (SSTORE 0 (ADD 1 (SLOAD 0))) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"1000000\", \"16777216\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryStressTest/CALLCODE_BoundsFiller.json",
    "content": "{\n    \"CALLCODE_Bounds\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n    \t    \"//currentGasLimit\" : \"2^63-1\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t    \t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \t\"balance\" : \"0\",\n\t\t\t\"storage\" : {\n\t\t    \t    \"0x00\" : \"0x00\"\n\t\t\t}\n             \t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n\t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (CALLCODE 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0 0 0 0) (CALLCODE 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0 0xfffffff 0 0xfffffff) (CALLCODE 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0 0xffffffff 0 0xffffffff)  (CALLCODE 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0xfffffff 0 0xfffffff 0) (CALLCODE 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0xffffffff 0 0xffffffff 0) (CALLCODE 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0xffffffffffffffff 0 0xffffffffffffffff 0) (CALLCODE 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0xffffffffffffffffffffffffffffffff 0 0xffffffffffffffffffffffffffffffff 0) (CALLCODE 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\n\t    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (SSTORE 0 (ADD 1 (SLOAD 0))) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"16777216\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryStressTest/CALL_Bounds2Filler.json",
    "content": "{\n    \"CALL_Bounds2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n    \t    \"//currentGasLimit\" : \"2^63-1\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t    \t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \t\"balance\" : \"0\"\n             \t    },\n\t    \t    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \t\"storage\" : {\n\t\t    \t    \"0x00\" : \"0x00\"\n\t\t\t}\n             \t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n\t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",  \n                \"code\" : \"{   (CALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0xfffffff 0xfffffff 0xfffffff 0xfffffff)   }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\n\t    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (SSTORE 0 (ADD 1 (SLOAD 0))) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"16777216\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryStressTest/CALL_Bounds2aFiller.json",
    "content": "{\n    \"CALL_Bounds2a\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n    \t    \"//currentGasLimit\" : \"2^63-1\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t    \t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \t\"balance\" : \"0\"\n             \t    },\n\t    \t    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \t\"storage\" : {\n\t\t    \t    \"0x00\" : \"0x00\"\n\t\t\t}\n             \t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n\t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",  \n                \"code\" : \"{   (CALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0xffffffff 0xffffffff 0xffffffff 0xffffffff)  }\",\t\t      \n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\n\t    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (SSTORE 0 (ADD 1 (SLOAD 0))) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"16777216\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryStressTest/CALL_Bounds3Filler.json",
    "content": "{\n    \"CALL_Bounds3\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"0\"\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (CALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0 0xffffffffffffffff 0 0xffffffffffffffff)  (CALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0 0xffffffffffffffffffffffffffffffff 0 0xffffffffffffffffffffffffffffffff)  (CALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (CALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0xffffffff 0xffffffff 0xffffffff 0xffffffff) (CALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff) (CALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff) (CALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (SSTORE 0 (ADD 1 (SLOAD 0))) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"1000000\", \"16777216\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryStressTest/CALL_BoundsFiller.json",
    "content": "{\n    \"CALL_Bounds\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n    \t    \"//currentGasLimit\" : \"2^63-1\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t    \t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \t\"balance\" : \"0\"\n             \t    },\n\t    \t    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \t\"storage\" : {\n\t\t    \t    \"0x00\" : \"0x00\"\n\t\t\t}\n             \t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n\t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (CALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0 0 0 0) (CALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0 0xfffffff 0 0xfffffff) (CALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0 0xffffffff 0 0xffffffff) (CALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0xfffffff 0 0xfffffff 0) (CALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0xffffffff 0 0xffffffff 0) (CALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0xffffffffffffffff 0 0xffffffffffffffff 0) (CALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0xffffffffffffffffffffffffffffffff 0 0xffffffffffffffffffffffffffffffff 0) (CALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\n\t    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (SSTORE 0 (ADD 1 (SLOAD 0))) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"16777216\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryStressTest/CREATE_Bounds2Filler.json",
    "content": "{\n    \"CREATE_Bounds2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n    \t    \"//currentGasLimit\" : \"2^63-1\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t    \t    \"1000000000000000000000000000000000000000\" : {\n                \t\"balance\" : \"100\"\n             \t    },\n\t    \t    \"13136008b64ff592819b2fa6d43f2835c452020e\" : {\n\t\t        \"shouldnotexist\" : \"1\"\n\t     \t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n\t    \"1000000000000000000000000000000000000000\" : {\n                \"balance\" : \"100\",\n                \"code\" : \"{  (MSTORE 0 0x6001600155601080600c6000396000f3006000355415600957005b6020356000 )  (MSTORE8 32 0x35) (MSTORE8 33 0x55) (CREATE 1 0 0xffffffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"16777216\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"1000000000000000000000000000000000000000\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryStressTest/CREATE_Bounds3Filler.json",
    "content": "{\n    \"CREATE_Bounds3\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"1000000000000000000000000000000000000000\" : {\n                        \"balance\" : \"100\"\n                    },\n                    \"13136008b64ff592819b2fa6d43f2835c452020e\" : {\n                        \"shouldnotexist\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"1000000000000000000000000000000000000000\" : {\n                \"balance\" : \"100\",\n                \"code\" : \"{  (MSTORE 0 0x6001600155601080600c6000396000f3006000355415600957005b6020356000 )  (MSTORE8 32 0x35) (MSTORE8 33 0x55) (CREATE 1 0 0xffffffffffffffff) (CREATE 1 0 0xffffffffffffffffffffffffffffffff) (CREATE 1 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (CREATE 1 0xfffffff 0) (CREATE 1 0xffffffff 0) (CREATE 1 0xffffffffffffffff 0) (CREATE 1 0xffffffffffffffffffffffffffffffff 0) (CREATE 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0) (CREATE 1 0xfffffff 0xfffffff) (CREATE 1 0xffffffff 0xffffffff) (CREATE 1 0xffffffffffffffff 0xffffffffffffffff) (CREATE 1 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff) (CREATE 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"1000000\", \"16777216\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"1000000000000000000000000000000000000000\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryStressTest/CREATE_BoundsFiller.json",
    "content": "{\n    \"CREATE_Bounds\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n    \t    \"//currentGasLimit\" : \"2^63-1\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t    \t    \"1000000000000000000000000000000000000000\" : {\n                \t\"balance\" : \"100\"\n             \t    },\n\t    \t    \"13136008b64ff592819b2fa6d43f2835c452020e\" : {\n\t\t        \"shouldnotexist\" : \"1\"\n\t     \t    },\n\t    \t    \"7c5a2c91b22d7a9226523d4ba717db6afb741ebd\" : {\n\t\t        \"shouldnotexist\" : \"1\"\n\t     \t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n\t    \"1000000000000000000000000000000000000000\" : {\n                \"balance\" : \"100\",\n                \"code\" : \"{  (MSTORE 0 0x6001600155601080600c6000396000f3006000355415600957005b6020356000 )  (MSTORE8 32 0x35) (MSTORE8 33 0x55) (CREATE 1 0 0) (CREATE 1 0 0xfffffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"16777216\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"1000000000000000000000000000000000000000\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryStressTest/DELEGATECALL_Bounds2Filler.json",
    "content": "{\n    \"DELEGATECALL_Bounds2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n    \t    \"//currentGasLimit\" : \"2^63-1\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t\t\"balance\" : \"0\",\n\t\t\t\"storage\" : {\n\t\t\t }\n\t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n\t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n\t\t\"code\" : \"{ (DELEGATECALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0xffffffff 0xffffffff 0xffffffff 0xffffffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\n\t    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (SSTORE 0 (ADD 1 (SLOAD 0))) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"16777216\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryStressTest/DELEGATECALL_Bounds3Filler.json",
    "content": "{\n    \"DELEGATECALL_Bounds3\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (DELEGATECALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0xffffffffffffffff 0 0xffffffffffffffff) (DELEGATECALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0xffffffffffffffffffffffffffffffff 0 0xffffffffffffffffffffffffffffffff) (DELEGATECALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (DELEGATECALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff) (DELEGATECALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff) (DELEGATECALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (SSTORE 0 (ADD 1 (SLOAD 0))) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"1000000\", \"16777216\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryStressTest/DELEGATECALL_BoundsFiller.json",
    "content": "{\n    \"DELEGATECALL_Bounds\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n    \t    \"//currentGasLimit\" : \"2^63-1\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t    \t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \t\"balance\" : \"0\",\n\t\t\t\"storage\" : {\n\t\t    \t    \"0x00\" : \"0x00\"\n\t\t\t }\n             \t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n\t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n\t\t\"code\" : \"{(DELEGATECALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0 0 0) (DELEGATECALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0xfffffff 0 0xfffffff) (DELEGATECALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0xffffffff 0 0xffffffff) (DELEGATECALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0xfffffff 0 0xfffffff 0) (DELEGATECALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0xffffffff 0 0xffffffff 0)  (DELEGATECALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0xffffffffffffffff 0 0xffffffffffffffff 0) (DELEGATECALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0xffffffffffffffffffffffffffffffff 0 0xffffffffffffffffffffffffffffffff 0) (DELEGATECALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0) (DELEGATECALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0xfffffff 0xfffffff 0xfffffff 0xfffffff)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\n\t    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (SSTORE 0 (ADD 1 (SLOAD 0))) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"16777216\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryStressTest/DUP_BoundsFiller.json",
    "content": "{\n    \"DUP_Bounds\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"//code\" : \"{ (DUP1 0) (DUP1 0xffffffff) (DUP1 0xffffffffffffffff) (DUP1 0xffffffffffffffffffffffffffffffff) (DUP1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)  (DUP2 0 0) (DUP2 0xffffffff 0xffffffff) (DUP2 0xffffffffffffffff 0xffffffffffffffff) (DUP2 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff) (DUP2 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (DUP3 0 0 0) (DUP3 0xffffffff 0xffffffff 0xffffffff) (DUP3 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff) (DUP3 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff) (DUP3 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (DUP4 0 0 0 0) (DUP4 0xffffffff 0xffffffff 0xffffffff 0xffffffff) (DUP4 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff) (DUP4 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff) (DUP4 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (DUP5 0 0 0 0 0) (DUP5 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff) (DUP5 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff) (DUP5 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff) (DUP5 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (DUP6 0 0 0 0 0 0) (DUP6 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff) (DUP6 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff) (DUP6 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff) (DUP6 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (DUP7 0 0 0 0 0 0 0) (DUP7 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff) (DUP7 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff) (DUP7 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff) (DUP7 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (DUP8 0 0 0 0 0 0 0 0) (DUP8 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff) (DUP8 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff) (DUP8 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff) (DUP8 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)}\",\n        \t\t\"code\" : \":raw 0x600080505063ffffffff80505067ffffffffffffffff8050506fffffffffffffffffffffffffffffffff8050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff805050600060008150505063ffffffff63ffffffff8150505067ffffffffffffffff67ffffffffffffffff815050506fffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff815050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81505050600060006000825050505063ffffffff63ffffffff63ffffffff825050505067ffffffffffffffff67ffffffffffffffff67ffffffffffffffff82505050506fffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff82505050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8250505050600060006000600083505050505063ffffffff63ffffffff63ffffffff63ffffffff83505050505067ffffffffffffffff67ffffffffffffffff67ffffffffffffffff67ffffffffffffffff8350505050506fffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff8350505050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff835050505050600060006000600060008450505050505063ffffffff63ffffffff63ffffffff63ffffffff63ffffffff8450505050505067ffffffffffffffff67ffffffffffffffff67ffffffffffffffff67ffffffffffffffff67ffffffffffffffff845050505050506fffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff845050505050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84505050505050600060006000600060006000855050505050505063ffffffff63ffffffff63ffffffff63ffffffff63ffffffff63ffffffff855050505050505067ffffffffffffffff67ffffffffffffffff67ffffffffffffffff67ffffffffffffffff67ffffffffffffffff67ffffffffffffffff85505050505050506fffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff85505050505050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8550505050505050600060006000600060006000600086505050505050505063ffffffff63ffffffff63ffffffff63ffffffff63ffffffff63ffffffff63ffffffff86505050505050505067ffffffffffffffff67ffffffffffffffff67ffffffffffffffff67ffffffffffffffff67ffffffffffffffff67ffffffffffffffff67ffffffffffffffff8650505050505050506fffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff8650505050505050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff865050505050505050600060006000600060006000600060008750505050505050505063ffffffff63ffffffff63ffffffff63ffffffff63ffffffff63ffffffff63ffffffff63ffffffff8750505050505050505067ffffffffffffffff67ffffffffffffffff67ffffffffffffffff67ffffffffffffffff67ffffffffffffffff67ffffffffffffffff67ffffffffffffffff67ffffffffffffffff875050505050505050506fffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff875050505050505050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff87\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x7fffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"1000000\", \"16777216\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryStressTest/FillStackFiller.json",
    "content": "{\n    \"FillStack\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"9223372036854775807\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0x00\",\n                        \"code\" : \"0x5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe457f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3504357155320803a975560005155\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"//balance\" : \"3141638\",\n                        \"code\" : \"0x6000355415600957005b60203560003555\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0x00\",\n                        \"code\" : \"0x5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe457f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3504357155320803a975560005155\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"//balance\" : \"250000046\",\n                        \"code\" : \"0x6000355415600957005b60203560003555\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"//comment\" : \"Some crafted code for the test\",\n                \"code\" : \":raw 0x5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe457f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3504357155320803a975560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"100000000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe457f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3504357155320803a97\"\n            ],\n            \"gasLimit\" : [\n                \"3141592\", \"16777216\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"264050067\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryStressTest/JUMPI_BoundsFiller.json",
    "content": "{\n    \"JUMPI_Bounds\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"0\",\n                        \"code\" : \"0x600163ffffffff57600167ffffffffffffffff5760016fffffffffffffffffffffffffffffffff5760017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5700\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (JUMPI 0xffffffff 1) (JUMPI 0xffffffffffffffff 1) (JUMPI 0xffffffffffffffffffffffffffffffff 1) (JUMPI 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x7fffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"16777216\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryStressTest/JUMP_Bounds2Filler.json",
    "content": "{\n    \"JUMP_Bounds2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"0\",\n                        \"code\" : \"0x63ffffffff5667ffffffffffffffff566fffffffffffffffffffffffffffffffff567fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff56\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"// code\" : \"{ (JUMP 0xffffffff) (JUMP 0xffffffffffffffff) (JUMP 0xffffffffffffffffffffffffffffffff) (JUMP 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }\",\n        \t\t\"code\" : \":raw 0x63ffffffff5667ffffffffffffffff566fffffffffffffffffffffffffffffffff567fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff56\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x7fffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"16777216\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryStressTest/JUMP_BoundsFiller.json",
    "content": "{\n    \"JUMP_Bounds\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"0\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (JUMP 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x7fffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"16777216\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryStressTest/MLOAD_Bounds2Filler.json",
    "content": "{\n    \"MLOAD_Bounds2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"0\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (MLOAD 0xffffffffffffffff) (MLOAD 0xffffffffffffffffffffffffffffffff) (MLOAD 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x7ffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"16777216\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryStressTest/MLOAD_Bounds3Filler.json",
    "content": "{\n    \"MLOAD_Bounds3\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n    \t    \"//currentGasLimit\" : \"2^63-1\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n\t    \t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \t\"balance\" : \"1\"\n             \t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n\t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MLOAD 0x400000) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x7ffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"35000000\", \"250000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryStressTest/MLOAD_BoundsFiller.json",
    "content": "{\n    \"MLOAD_Bounds\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n    \t    \"//currentGasLimit\" : \"2^63-1\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t    \t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \t\"balance\" : \"0\"\n             \t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n\t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (MLOAD 0) (MLOAD 0xffffffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x7ffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"16777216\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryStressTest/MSTORE_Bounds2Filler.json",
    "content": "{\n    \"MSTORE_Bounds2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n    \t    \"//currentGasLimit\" : \"2^63-1\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"0\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 0xffffffffff 1)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"16777216\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryStressTest/MSTORE_Bounds2aFiller.json",
    "content": "{\n    \"MSTORE_Bounds2a\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n    \t    \"//currentGasLimit\" : \"2^63-1\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n\t    \t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \t\"balance\" : \"1\"\n             \t    }\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n\t    \t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \t\"balance\" : \"0\"\n             \t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n\t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 0x3fffff 1)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"250000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryStressTest/MSTORE_BoundsFiller.json",
    "content": "{\n    \"MSTORE_Bounds\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"0\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 0xffffffffffffffff 1)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"16777216\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryStressTest/POP_BoundsFiller.json",
    "content": "{\n    \"POP_Bounds\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (POP 0) (POP 0xffffffff) (POP 0xffffffffffffffff) (POP 0xffffffffffffffffffffffffffffffff) (POP 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x7ffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"16777216\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryStressTest/RETURN_BoundsFiller.json",
    "content": "{\n    \"RETURN_Bounds\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"0\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : [1,2],\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"1\",\n                        \"storage\" : {\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\",\n                            \"0x03\" : \"0x01\",\n                            \"0x04\" : \"0x01\",\n                            \"0x05\" : \"0x01\",\n                            \"0x06\" : \"0x01\",\n                            \"0x07\" : \"0x01\",\n                            \"0x08\" : \"0x01\",\n                            \"0x09\" : \"0x01\",\n                            \"0x0a\" : \"0x01\",\n                            \"0x0b\" : \"0x01\",\n                            \"0x0c\" : \"0x01\",\n                            \"0x0d\" : \"0x01\",\n                            \"0x0e\" : \"0x01\",\n                            \"0x0f\" : \"0x01\",\n                            \"0x10\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ [[1]] (CALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0 0 0 0) [[2]] (CALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000002> 0 0 0 0 0) [[3]] (CALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000003> 0 0 0 0 0) [[4]] (CALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000004> 0 0 0 0 0) [[5]] (CALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000005> 0 0 0 0 0) [[6]] (CALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000006> 0 0 0 0 0) [[7]] (CALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000006> 0 0 0 0 0) [[8]] (CALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000006> 0 0 0 0 0) [[9]] (CALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000006> 0 0 0 0 0) [[10]] (CALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000006> 0 0 0 0 0) [[11]] (CALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000006> 0 0 0 0 0) [[12]] (CALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000006> 0 0 0 0 0) [[13]] (CALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000006> 0 0 0 0 0) [[14]] (CALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000006> 0 0 0 0 0) [[15]] (CALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000006> 0 0 0 0 0) [[16]] (CALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000006> 0 0 0 0 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (RETURN 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (RETURN 0xfffffff 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (RETURN 0xffffffff 0)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000004>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (RETURN 0xffffffffffffffff 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000005>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (RETURN 0xfffffffffffffffffffffffffff 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000006>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (RETURN 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000007>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (RETURN 0 0xfffffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000008>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (RETURN 0 0xffffffff)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000009>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (RETURN 0 0xffffffffffffffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000010>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (RETURN 0 0xfffffffffffffffffffffffffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000011>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (RETURN 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000012>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (RETURN 0xfffffff 0xfffffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000013>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (RETURN 0xffffffff 0xffffffff)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000014>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (RETURN 0xffffffffffffffff 0xffffffffffffffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000015>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (RETURN 0xfffffffffffffffffffffffffff 0xfffffffffffffffffffffffffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000016>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (RETURN 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"500000\", \"15000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryStressTest/SLOAD_BoundsFiller.json",
    "content": "{\n    \"SLOAD_Bounds\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (SLOAD 0) (SLOAD 0xffffffff) (SLOAD 0xffffffffffffffff) (SLOAD 0xffffffffffffffffffffffffffffffff) (SLOAD 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x7ffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"16777216\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryStressTest/SSTORE_BoundsFiller.json",
    "content": "{\n    \"SSTORE_Bounds\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"1\",\n                        \"storage\" : {\n                            \"0xffffffff\" : \"0x01\",\n                            \"0xffffffffffffffff\" : \"0x01\",\n                            \"0xffffffffffffffffffffffffffffffff\" : \"0x01\",\n                            \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\" : \"0x01\",\n                            \"0x80\" : \"0xffffffffffffffffffffffffffffffff\",\n                            \"0x0100\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n                            \"0x20\" : \"0xffffffff\",\n                            \"0x40\" : \"0xffffffffffffffff\"\n                        }\n                    }\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"0\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (SSTORE 0xffffffff 1) (SSTORE 0xffffffffffffffff 1) (SSTORE 0xffffffffffffffffffffffffffffffff 1) (SSTORE 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1) (SSTORE 32 0xffffffff) (SSTORE 64 0xffffffffffffffff) (SSTORE 128 0xffffffffffffffffffffffffffffffff) (SSTORE 256 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x7ffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"16777216\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryStressTest/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryStressTest/mload32bitBound2Filler.json",
    "content": "{\n    \"mload32bitBound2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"37791080412587\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a7640000\",\n                        \"code\" : \"0x6401773594005160015500\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"//balance\" : \"377910804069850\",\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a7640000\",\n                        \"code\" : \"0x6401773594005160015500\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"//balance\" : \"377910554219850\",\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 1 ]] (MLOAD 6294967296) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"377910804219850\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"16777216\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryStressTest/mload32bitBoundFiller.json",
    "content": "{\n    \"mload32bitBound\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"17592320524892\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a7640000\",\n                        \"code\" : \"0x6401000000005160015500\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a7640000\",\n                        \"code\" : \"0x6401000000005160015500\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 1 ]] (MLOAD 4294967296) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"17592320524892000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"16777216\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryStressTest/mload32bitBound_MsizeFiller.json",
    "content": "{\n    \"mload32bitBound_Msize\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"175923205248920000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a7640000\",\n                        \"code\" : \"0x600163ffffffff525960005500\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a7640000\",\n                        \"code\" : \"0x600163ffffffff525960005500\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [4294967295] 1 [[ 0 ]] (MSIZE)} \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1759232052489200000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"16777216\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryStressTest/mload32bitBound_return2Filler.json",
    "content": "{\n    \"mload32bitBound_return2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"175923205248920000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \t\"storage\" : {\n                 \t}\n            \t     }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{ [ 0 ] 1 (RETURN 0 4294967295) } \",\n                \"storage\": {}\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1759232052489200000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"\",\n                \"storage\": {}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"16777216\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryStressTest/mload32bitBound_returnFiller.json",
    "content": "{\n    \"mload32bitBound_return\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"17592320524892\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \t\"storage\" : {\n                 \t}\n            \t     }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{ (RETURN 0 4294967295) } \",\n                \"storage\": {}\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1759232052489200000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"\",\n                \"storage\": {}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"16777216\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryStressTest/static_CALL_Bounds2Filler.json",
    "content": "{\n    \"static_CALL_Bounds2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n    \t    \"//currentGasLimit\" : \"2^63-1\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t    \t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \t\"balance\" : \"0\"\n             \t    },\n\t    \t    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \t\"storage\" : {\n\t\t    \t    \"0x00\" : \"0x00\"\n\t\t\t}\n             \t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n\t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",  \n                \"code\" : \"{   (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0xfffffff 0xfffffff 0xfffffff 0xfffffff)   }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\n\t    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (SSTORE 0 (ADD 1 (SLOAD 0))) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"16777216\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryStressTest/static_CALL_Bounds2aFiller.json",
    "content": "{\n    \"static_CALL_Bounds2a\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n    \t    \"//currentGasLimit\" : \"2^63-1\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t    \t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \t\"balance\" : \"0\"\n             \t    },\n\t    \t    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \t\"storage\" : {\n\t\t\t}\n             \t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n\t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",  \n                \"code\" : \"{   (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0xffffffff 0xffffffff 0xffffffff 0xffffffff)  }\",\t\t      \n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\n\t    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (SSTORE 0 (ADD 1 (SLOAD 0))) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"16777216\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryStressTest/static_CALL_Bounds3Filler.json",
    "content": "{\n    \"static_CALL_Bounds3\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"0\"\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0xffffffffffffffff 0 0xffffffffffffffff)  (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0xffffffffffffffffffffffffffffffff 0 0xffffffffffffffffffffffffffffffff)  (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0xffffffff 0xffffffff 0xffffffff 0xffffffff) (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff) (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff) (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (MSTORE 0 (ADD 1 (SLOAD 0))) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"16777216\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryStressTest/static_CALL_BoundsFiller.json",
    "content": "{\n    \"static_CALL_Bounds\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n    \t    \"//currentGasLimit\" : \"2^63-1\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t    \t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \t\"balance\" : \"0\"\n             \t    },\n\t    \t    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \t\"storage\" : {\n\t\t    \t    \"0x00\" : \"0x00\"\n\t\t\t}\n             \t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n\t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0 0 0) (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0xfffffff 0 0xfffffff) (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0xffffffff 0 0xffffffff) (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0xfffffff 0 0xfffffff 0) (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0xffffffff 0 0xffffffff 0) (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0xffffffffffffffff 0 0xffffffffffffffff 0) (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0xffffffffffffffffffffffffffffffff 0 0xffffffffffffffffffffffffffffffff 0) (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\n\t    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (MSTORE 0 (ADD 1 (SLOAD 0))) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"16777216\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/bufferFiller.yml",
    "content": "# Check what happens with weird buffer lengths, 0 or negative.\n\nbuffer:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    000000000000000000000000000000000000c0de:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n              (return 0 0x120)\n        }\n      nonce: 0\n      storage: {}\n\n    # To check return. If it reverts the goat survives\n    000000000000000000000000000000000f30c0de:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n               ; We get length from the caller\n               (def 'length $0)\n               (def 'offset $0x20)\n\n               [[0]] 0    ; capricide\n               (return offset length) \n        }\n      nonce: 0\n      storage:\n        0: 0x60A7\n\n\n    # To check revert.\n    000000000000000000000000000000000ff0c0de:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n               ; We get length from the caller\n               (def 'length $0)\n               (def 'offset $0x20)\n\n               (revert offset length) \n        }\n      nonce: 0\n      storage: {}\n\n\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           (def 'opcode $4)\n           (def 'bufferType $36)\n           (def 'NOP 0)\n\n           ; Variables           \n           (def 'length     0x2020)\n           (def 'offset     0x2040)\n         \n           ; bufferTypes  0 is normal, 1 is length zero, 2 is negative length\n           ; bufferType 3 is excessively long, for opcodes with bounds checking\n           ; Add 0 for offset 0x100, 10 for offset 0x0\n\n           ; High offsets:\n           ; 20 for 2^256-10\n           ; 21 for 2^31-1\n           ; 22 for 2^31\n           ; 23 for 2^32-1\n           ; 24 for 2^32\n           ; 25 for 2^63-1\n           ; 26 for 2^63\n           ; 27 for 2^64-1\n           ; 28 for 2^64\n           (if (= bufferType 0) {\n                   [length] 10\n                   [offset] 0x100\n             } NOP)\n           (if (= bufferType 1) {\n                   [length] 0 \n                   [offset] 0x100\n             } NOP)\n           (if (= bufferType 2) {\n                   [length] (- 0 10) \n                   [offset] 0x100\n             } NOP)\n           (if (= bufferType 3) { \n                   [length] 0x1000 \n                   [offset] 0x100\n             } NOP)\n           (if (= bufferType 10) {\n                   [length] 10\n                   [offset] 0x0\n             } NOP)\n           (if (= bufferType 11) {\n                   [length] 0 \n                   [offset] 0x0\n             } NOP)\n           (if (= bufferType 12) {\n                   [length] (- 0 10) \n                   [offset] 0x0\n             } NOP)\n           (if (= bufferType 13) { \n                   [length] 0x1000 \n                   [offset] 0x0\n             } NOP)\n\n           ; High memory offsets, should fail with out of gas\n           (if (= bufferType 20) { \n                   [length] 5\n                   [offset] (- 0 10)\n             } NOP)\n\n           (if (= bufferType 21) { \n                   [length] 5\n                   [offset] 0x7FFFFFFF\n             } NOP)\n\n           (if (= bufferType 22) { \n                   [length] 5\n                   [offset] 0x80000000\n             } NOP)\n\n           (if (= bufferType 23) { \n                   [length] 5\n                   [offset] 0xFFFFFFFF\n             } NOP)\n\n           (if (= bufferType 24) { \n                   [length] 5\n                   [offset] 0x0100000000\n             } NOP)\n\n           (if (= bufferType 25) { \n                   [length] 5\n                   [offset] 0x7FFFFFFFFFFFFFFF\n             } NOP)\n\n           (if (= bufferType 26) { \n                   [length] 5\n                   [offset] 0x8000000000000000\n             } NOP)\n\n           (if (= bufferType 27) { \n                   [length] 5\n                   [offset] 0xFFFFFFFFFFFFFFFF\n             } NOP)\n\n           (if (= bufferType 28) { \n                   [length] 5\n                   [offset] 0x010000000000000000\n             } NOP)\n\n\n           (if (= opcode 0x20) (sha3 @offset @length) NOP)\n           (if (= opcode 0x37) (calldatacopy @offset 0 @length) NOP)\n           (if (= opcode 0x39) (codecopy @offset 0 @length) NOP)\n           (if (= opcode 0x3C) (extcodecopy 0xc0de @offset 0 @length) NOP)\n           (if (= opcode 0x3E) (returndatacopy @offset 0 @length) NOP)\n           (if (= opcode 0xA0) (log0 @offset @length) NOP)\n           (if (= opcode 0xA1) (log1 @offset @length 1) NOP)\n           (if (= opcode 0xA2) (log2 @offset @length 1 2) NOP)\n           (if (= opcode 0xA3) (log3 @offset @length 1 2 3) NOP)\n           (if (= opcode 0xA4) (log4 @offset @length 1 2 3 4) NOP)\n           (if (= opcode 0xF0) (create 0 @offset @length) NOP)\n           (if (= opcode 0xF1)  (call 0x1000 0xc0de 0 @offset @length 0 0) NOP)\n           (if (= opcode 0x1F1) (call 0x1000 0xc0de 0 0 0 @offset @length) NOP)\n           (if (= opcode 0xF2)  (callcode 0x1000 0xc0de 0 @offset @length 0 0) NOP)\n           (if (= opcode 0x1F2) (callcode 0x1000 0xc0de 0 0 0 @offset @length) NOP)\n           (if (= opcode 0xF4)  (delegatecall 0x100000 0xc0de @offset @length 0 0) NOP)\n           (if (= opcode 0x1F4) (delegatecall 0x100000 0xc0de 0 0 @offset @length) NOP)\n           (if (= opcode 0xF5) (create2 0 @offset @length 0x5A17) NOP)\n           (if (= opcode 0xFA)  (staticcall 0x100000 0xc0de @offset @length 0 0) NOP)\n           (if (= opcode 0x1FA) (staticcall 0x100000 0xc0de 0 0 @offset @length) NOP)\n\n           ; RETURNDATACOPY, after making sure there is return data\n           (if (= opcode 0x13E) {\n               (call 0x1000 0xc0de 0 0 0 0x100 0x100)\n               (returndatacopy @offset 0 @length) \n           } NOP)\n\n           ; check return, requires special handling\n           (if (= opcode 0xF3)  (call 0x100000 0xf30c0de 0 length 0x40 0 0) NOP)\n\n\n           ; check revert, requires special handling\n           (if (= opcode 0xFF)  {\n              (call 0x100000 0xff0c0de 0 length 0x40 0 0)\n              [[0]] (returndatasize)\n           } NOP)\n\n           ; Kill the goat\n           [[0x100]] 0\n        }\n      nonce: '0'\n      storage:\n        # Sacrificial goat to tell reverts apart from successes\n        0x100: 0x60A7\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n      \n  transaction:\n    data:\n    # Param #1: The opcode\n\n    # Param #2: Buffer types:\n\n    ########### Offset 0x100 ###############\n    #   0 - Valid buffer length (0x100)\n    #   1 - Buffer length zero\n    #   2 - Negative buffer length\n    #   3 - Longer buffer (0x1000)\n\n    ###########  Offset 0x0  ###############\n    #  10 - Valid buffer length\n    #  11 - Buffer length zero\n    #  12 - Negative buffer length\n    #  13 - Longer buffer (0x1000)\n\n    ########## Very high offsets\n    #  20 - Trying to use memory close to theoretical max (2^256-10)\n    # 21 for 2^31-1\n    # 22 for 2^31\n    # 23 for 2^32-1\n    # 24 for 2^32\n    # 25 for 2^63-1\n    # 26 for 2^63\n    # 27 for 2^64-1\n    # 28 for 2^64\n    #  \n\n    # SHA3       \n    - :label ok   :abi f(uint,uint) 0x20 0\n    - :label ok   :abi f(uint,uint) 0x20 1\n    - :label fail :abi f(uint,uint) 0x20 2\n    - :label ok   :abi f(uint,uint) 0x20 10\n    - :label ok   :abi f(uint,uint) 0x20 11\n    - :label fail :abi f(uint,uint) 0x20 12\n    - :label ok :abi f(uint,uint) 0x20 13\n    - :label fail :abi f(uint,uint) 0x20 20\n    - :label fail :abi f(uint,uint) 0x20 21\n    - :label fail :abi f(uint,uint) 0x20 22\n    - :label fail :abi f(uint,uint) 0x20 23\n    - :label fail :abi f(uint,uint) 0x20 24\n    - :label fail :abi f(uint,uint) 0x20 25\n    - :label fail :abi f(uint,uint) 0x20 26\n    - :label fail :abi f(uint,uint) 0x20 27\n    - :label fail :abi f(uint,uint) 0x20 28\n\n    # CALLDATACOPY\n    - :label ok   :abi f(uint,uint) 0x37 0   # Valid buffer length\n    - :label ok   :abi f(uint,uint) 0x37 1   # Buffer length zero\n    - :label fail :abi f(uint,uint) 0x37 2   # Negative buffer length\n    - :label ok   :abi f(uint,uint) 0x37 10   # Valid buffer length\n    - :label ok   :abi f(uint,uint) 0x37 11   # Buffer length zero\n    - :label fail :abi f(uint,uint) 0x37 12   # Negative buffer length\n    - :label fail :abi f(uint,uint) 0x37 20\n    - :label fail :abi f(uint,uint) 0x37 21\n    - :label fail :abi f(uint,uint) 0x37 22\n    - :label fail :abi f(uint,uint) 0x37 23\n    - :label fail :abi f(uint,uint) 0x37 24\n    - :label fail :abi f(uint,uint) 0x37 25\n    - :label fail :abi f(uint,uint) 0x37 26\n    - :label fail :abi f(uint,uint) 0x37 27\n    - :label fail :abi f(uint,uint) 0x37 28\n\n    # CODECOPY\n    - :label ok   :abi f(uint,uint) 0x39 0   # Valid buffer length\n    - :label ok   :abi f(uint,uint) 0x39 1   # Buffer length zero\n    - :label fail :abi f(uint,uint) 0x39 2   # Negative buffer length\n    - :label ok   :abi f(uint,uint) 0x39 10   # Valid buffer length\n    - :label ok   :abi f(uint,uint) 0x39 11   # Buffer length zero\n    - :label fail :abi f(uint,uint) 0x39 12   # Negative buffer length\n    - :label fail :abi f(uint,uint) 0x39 20\n    - :label fail :abi f(uint,uint) 0x39 21\n    - :label fail :abi f(uint,uint) 0x39 22\n    - :label fail :abi f(uint,uint) 0x39 23\n    - :label fail :abi f(uint,uint) 0x39 24\n    - :label fail :abi f(uint,uint) 0x39 25\n    - :label fail :abi f(uint,uint) 0x39 26\n    - :label fail :abi f(uint,uint) 0x39 27\n    - :label fail :abi f(uint,uint) 0x39 28\n\n    # EXTCODECOPY\n    - :label ok   :abi f(uint,uint) 0x3c 0   # Valid buffer length\n    - :label ok   :abi f(uint,uint) 0x3c 1   # Buffer length zero\n    - :label fail :abi f(uint,uint) 0x3c 2   # Negative buffer length\n    - :label ok   :abi f(uint,uint) 0x3c 10   # Valid buffer length\n    - :label ok   :abi f(uint,uint) 0x3c 11   # Buffer length zero\n    - :label fail :abi f(uint,uint) 0x3c 12   # Negative buffer length\n    - :label fail :abi f(uint,uint) 0x3c 20\n    - :label fail :abi f(uint,uint) 0x3c 21\n    - :label fail :abi f(uint,uint) 0x3c 22\n    - :label fail :abi f(uint,uint) 0x3c 23\n    - :label fail :abi f(uint,uint) 0x3c 24\n    - :label fail :abi f(uint,uint) 0x3c 25\n    - :label fail :abi f(uint,uint) 0x3c 26\n    - :label fail :abi f(uint,uint) 0x3c 27\n    - :label fail :abi f(uint,uint) 0x3c 28\n\n    # RETURNDATACOPY, fails when there is no return data unless asked for 0 bytes\n    - :label fail :abi f(uint,uint) 0x3e 0   # Valid buffer length\n    - :label ok   :abi f(uint,uint) 0x3e 1   # Buffer length zero\n    - :label fail :abi f(uint,uint) 0x3e 2   # Negative buffer length\n    - :label fail :abi f(uint,uint) 0x3e 10   # Valid buffer length\n    - :label ok   :abi f(uint,uint) 0x3e 11   # Buffer length zero\n    - :label fail :abi f(uint,uint) 0x3e 12   # Negative buffer length\n    - :label fail :abi f(uint,uint) 0x3e 20\n    - :label fail :abi f(uint,uint) 0x3e 21\n    - :label fail :abi f(uint,uint) 0x3e 22\n    - :label fail :abi f(uint,uint) 0x3e 23\n    - :label fail :abi f(uint,uint) 0x3e 24\n    - :label fail :abi f(uint,uint) 0x3e 25\n    - :label fail :abi f(uint,uint) 0x3e 26\n    - :label fail :abi f(uint,uint) 0x3e 27\n    - :label fail :abi f(uint,uint) 0x3e 28\n\n    # RETURNDATACOPY, after making sure there is return data\n    - :label ok   :abi f(uint,uint) 0x13e 0   # Valid buffer length\n    - :label ok   :abi f(uint,uint) 0x13e 1   # Buffer length zero\n    - :label fail :abi f(uint,uint) 0x13e 2   # Negative buffer length\n    - :label ok   :abi f(uint,uint) 0x13e 10   # Valid buffer length\n    - :label ok   :abi f(uint,uint) 0x13e 11   # Buffer length zero\n    - :label fail :abi f(uint,uint) 0x13e 12   # Negative buffer length\n    - :label fail :abi f(uint,uint) 0x13e 20\n    - :label fail :abi f(uint,uint) 0x13e 21\n    - :label fail :abi f(uint,uint) 0x13e 22\n    - :label fail :abi f(uint,uint) 0x13e 23\n    - :label fail :abi f(uint,uint) 0x13e 24\n    - :label fail :abi f(uint,uint) 0x13e 25\n    - :label fail :abi f(uint,uint) 0x13e 26\n    - :label fail :abi f(uint,uint) 0x13e 27\n    - :label fail :abi f(uint,uint) 0x13e 28\n\n    # RETURNDATACOPY has bounds checking\n    - :label fail :abi f(uint,uint) 0x13e 3 # Huge (out of bounds)\n    - :label fail :abi f(uint,uint) 0x13e 13 # Huge (out of bounds)\n\n    # LOG0\n    - :label ok   :abi f(uint,uint) 0xa0 0   # Valid buffer length\n    - :label ok   :abi f(uint,uint) 0xa0 1   # Buffer length zero\n    - :label fail :abi f(uint,uint) 0xa0 2   # Negative buffer length\n    - :label ok   :abi f(uint,uint) 0xa0 10   # Valid buffer length\n    - :label ok   :abi f(uint,uint) 0xa0 11   # Buffer length zero\n    - :label fail :abi f(uint,uint) 0xa0 12   # Negative buffer length\n    - :label fail :abi f(uint,uint) 0xa0 20\n    - :label fail :abi f(uint,uint) 0xa0 21\n    - :label fail :abi f(uint,uint) 0xa0 22\n    - :label fail :abi f(uint,uint) 0xa0 23\n    - :label fail :abi f(uint,uint) 0xa0 24\n    - :label fail :abi f(uint,uint) 0xa0 25\n    - :label fail :abi f(uint,uint) 0xa0 26\n    - :label fail :abi f(uint,uint) 0xa0 27\n    - :label fail :abi f(uint,uint) 0xa0 28\n\n    # LOG1\n    - :label ok   :abi f(uint,uint) 0xa1 0   # Valid buffer length\n    - :label ok   :abi f(uint,uint) 0xa1 1   # Buffer length zero\n    - :label fail :abi f(uint,uint) 0xa1 2   # Negative buffer length\n    - :label ok   :abi f(uint,uint) 0xa1 10   # Valid buffer length\n    - :label ok   :abi f(uint,uint) 0xa1 11   # Buffer length zero\n    - :label fail :abi f(uint,uint) 0xa1 12   # Negative buffer length\n    - :label fail :abi f(uint,uint) 0xa1 20\n    - :label fail :abi f(uint,uint) 0xa1 21\n    - :label fail :abi f(uint,uint) 0xa1 22\n    - :label fail :abi f(uint,uint) 0xa1 23\n    - :label fail :abi f(uint,uint) 0xa1 24\n    - :label fail :abi f(uint,uint) 0xa1 25\n    - :label fail :abi f(uint,uint) 0xa1 26\n    - :label fail :abi f(uint,uint) 0xa1 27\n    - :label fail :abi f(uint,uint) 0xa1 28\n\n    # LOG2\n    - :label ok   :abi f(uint,uint) 0xa2 0   # Valid buffer length\n    - :label ok   :abi f(uint,uint) 0xa2 1   # Buffer length zero\n    - :label fail :abi f(uint,uint) 0xa2 2   # Negative buffer length\n    - :label ok   :abi f(uint,uint) 0xa2 10   # Valid buffer length\n    - :label ok   :abi f(uint,uint) 0xa2 11   # Buffer length zero\n    - :label fail :abi f(uint,uint) 0xa2 12   # Negative buffer length\n    - :label fail :abi f(uint,uint) 0xa2 20\n    - :label fail :abi f(uint,uint) 0xa2 21\n    - :label fail :abi f(uint,uint) 0xa2 22\n    - :label fail :abi f(uint,uint) 0xa2 23\n    - :label fail :abi f(uint,uint) 0xa2 24\n    - :label fail :abi f(uint,uint) 0xa2 25\n    - :label fail :abi f(uint,uint) 0xa2 26\n    - :label fail :abi f(uint,uint) 0xa2 27\n    - :label fail :abi f(uint,uint) 0xa2 28\n\n    # LOG3\n    - :label ok   :abi f(uint,uint) 0xa3 0   # Valid buffer length\n    - :label ok   :abi f(uint,uint) 0xa3 1   # Buffer length zero\n    - :label fail :abi f(uint,uint) 0xa3 2   # Negative buffer length\n    - :label ok   :abi f(uint,uint) 0xa3 10   # Valid buffer length\n    - :label ok   :abi f(uint,uint) 0xa3 11   # Buffer length zero\n    - :label fail :abi f(uint,uint) 0xa3 12   # Negative buffer length\n    - :label fail :abi f(uint,uint) 0xa3 20\n    - :label fail :abi f(uint,uint) 0xa3 21\n    - :label fail :abi f(uint,uint) 0xa3 22\n    - :label fail :abi f(uint,uint) 0xa3 23\n    - :label fail :abi f(uint,uint) 0xa3 24\n    - :label fail :abi f(uint,uint) 0xa3 25\n    - :label fail :abi f(uint,uint) 0xa3 26\n    - :label fail :abi f(uint,uint) 0xa3 27\n    - :label fail :abi f(uint,uint) 0xa3 28\n\n    # LOG4\n    - :label ok   :abi f(uint,uint) 0xa4 0   # Valid buffer length\n    - :label ok   :abi f(uint,uint) 0xa4 1   # Buffer length zero\n    - :label fail :abi f(uint,uint) 0xa4 2   # Negative buffer length\n    - :label ok   :abi f(uint,uint) 0xa4 10   # Valid buffer length\n    - :label ok   :abi f(uint,uint) 0xa4 11   # Buffer length zero\n    - :label fail :abi f(uint,uint) 0xa4 12   # Negative buffer length\n    - :label fail :abi f(uint,uint) 0xa4 20\n    - :label fail :abi f(uint,uint) 0xa4 21\n    - :label fail :abi f(uint,uint) 0xa4 22\n    - :label fail :abi f(uint,uint) 0xa4 23\n    - :label fail :abi f(uint,uint) 0xa4 24\n    - :label fail :abi f(uint,uint) 0xa4 25\n    - :label fail :abi f(uint,uint) 0xa4 26\n    - :label fail :abi f(uint,uint) 0xa4 27\n    - :label fail :abi f(uint,uint) 0xa4 28\n\n    # CREATE\n    - :label ok   :abi f(uint,uint) 0xf0 0   # Valid buffer length\n    - :label ok   :abi f(uint,uint) 0xf0 1   # Buffer length zero\n    - :label fail :abi f(uint,uint) 0xf0 2   # Negative buffer length\n    - :label ok   :abi f(uint,uint) 0xf0 10   # Valid buffer length\n    - :label ok   :abi f(uint,uint) 0xf0 11   # Buffer length zero\n    - :label fail :abi f(uint,uint) 0xf0 12   # Negative buffer length\n    - :label fail :abi f(uint,uint) 0xf0 20\n    - :label fail :abi f(uint,uint) 0xf0 21\n    - :label fail :abi f(uint,uint) 0xf0 22\n    - :label fail :abi f(uint,uint) 0xf0 23\n    - :label fail :abi f(uint,uint) 0xf0 24\n    - :label fail :abi f(uint,uint) 0xf0 25\n    - :label fail :abi f(uint,uint) 0xf0 26\n    - :label fail :abi f(uint,uint) 0xf0 27\n    - :label fail :abi f(uint,uint) 0xf0 28\n\n    # CALL, check the args buffer\n    - :label ok   :abi f(uint,uint) 0xf1 0   # Valid buffer length\n    - :label ok   :abi f(uint,uint) 0xf1 1   # Buffer length zero\n    - :label fail :abi f(uint,uint) 0xf1 2   # Negative buffer length\n    - :label ok   :abi f(uint,uint) 0xf1 10   # Valid buffer length\n    - :label ok   :abi f(uint,uint) 0xf1 11   # Buffer length zero\n    - :label fail :abi f(uint,uint) 0xf1 12   # Negative buffer length\n    - :label fail :abi f(uint,uint) 0xf1 20\n    - :label fail :abi f(uint,uint) 0xf1 21\n    - :label fail :abi f(uint,uint) 0xf1 22\n    - :label fail :abi f(uint,uint) 0xf1 23\n    - :label fail :abi f(uint,uint) 0xf1 24\n    - :label fail :abi f(uint,uint) 0xf1 25\n    - :label fail :abi f(uint,uint) 0xf1 26\n    - :label fail :abi f(uint,uint) 0xf1 27\n    - :label fail :abi f(uint,uint) 0xf1 28\n\n\n    # CALL, check the return buffer\n    - :label ok   :abi f(uint,uint) 0x1f1 0   # Valid buffer length\n    - :label ok   :abi f(uint,uint) 0x1f1 1   # Buffer length zero\n    - :label fail :abi f(uint,uint) 0x1f1 2   # Negative buffer length\n    - :label ok   :abi f(uint,uint) 0x1f1 10   # Valid buffer length\n    - :label ok   :abi f(uint,uint) 0x1f1 11   # Buffer length zero\n    - :label fail :abi f(uint,uint) 0x1f1 12   # Negative buffer length\n    - :label fail :abi f(uint,uint) 0x1f1 20\n    - :label fail :abi f(uint,uint) 0x1f1 21\n    - :label fail :abi f(uint,uint) 0x1f1 22\n    - :label fail :abi f(uint,uint) 0x1f1 23\n    - :label fail :abi f(uint,uint) 0x1f1 24\n    - :label fail :abi f(uint,uint) 0x1f1 25\n    - :label fail :abi f(uint,uint) 0x1f1 26\n    - :label fail :abi f(uint,uint) 0x1f1 27\n    - :label fail :abi f(uint,uint) 0x1f1 28\n\n\n    # CALLCODE, check the args buffer\n    - :label ok   :abi f(uint,uint) 0xf2 0   # Valid buffer length\n    - :label ok   :abi f(uint,uint) 0xf2 1   # Buffer length zero\n    - :label fail :abi f(uint,uint) 0xf2 2   # Negative buffer length\n    - :label ok   :abi f(uint,uint) 0xf2 10   # Valid buffer length\n    - :label ok   :abi f(uint,uint) 0xf2 11   # Buffer length zero\n    - :label fail :abi f(uint,uint) 0xf2 12   # Negative buffer length\n    - :label fail :abi f(uint,uint) 0xf2 20\n    - :label fail :abi f(uint,uint) 0xf2 21\n    - :label fail :abi f(uint,uint) 0xf2 22\n    - :label fail :abi f(uint,uint) 0xf2 23\n    - :label fail :abi f(uint,uint) 0xf2 24\n    - :label fail :abi f(uint,uint) 0xf2 25\n    - :label fail :abi f(uint,uint) 0xf2 26\n    - :label fail :abi f(uint,uint) 0xf2 27\n    - :label fail :abi f(uint,uint) 0xf2 28\n\n\n    # CALLCODE, check the return buffer\n    - :label ok   :abi f(uint,uint) 0x1f2 0   # Valid buffer length\n    - :label ok   :abi f(uint,uint) 0x1f2 1   # Buffer length zero\n    - :label fail :abi f(uint,uint) 0x1f2 2   # Negative buffer length\n    - :label ok   :abi f(uint,uint) 0x1f2 10   # Valid buffer length\n    - :label ok   :abi f(uint,uint) 0x1f2 11   # Buffer length zero\n    - :label fail :abi f(uint,uint) 0x1f2 12   # Negative buffer length\n    - :label fail :abi f(uint,uint) 0x1f2 20\n    - :label fail :abi f(uint,uint) 0x1f2 21\n    - :label fail :abi f(uint,uint) 0x1f2 22\n    - :label fail :abi f(uint,uint) 0x1f2 23\n    - :label fail :abi f(uint,uint) 0x1f2 24\n    - :label fail :abi f(uint,uint) 0x1f2 25\n    - :label fail :abi f(uint,uint) 0x1f2 26\n    - :label fail :abi f(uint,uint) 0x1f2 27\n    - :label fail :abi f(uint,uint) 0x1f2 28\n\n\n\n    # DELEGATECALL, check the args buffer\n    - :label ok   :abi f(uint,uint) 0xf4 0   # Valid buffer length\n    - :label ok   :abi f(uint,uint) 0xf4 1   # Buffer length zero\n    - :label fail :abi f(uint,uint) 0xf4 2   # Negative buffer length\n    - :label ok   :abi f(uint,uint) 0xf4 10   # Valid buffer length\n    - :label ok   :abi f(uint,uint) 0xf4 11   # Buffer length zero\n    - :label fail :abi f(uint,uint) 0xf4 12   # Negative buffer length\n    - :label fail :abi f(uint,uint) 0xf4 20\n    - :label fail :abi f(uint,uint) 0xf4 21\n    - :label fail :abi f(uint,uint) 0xf4 22\n    - :label fail :abi f(uint,uint) 0xf4 23\n    - :label fail :abi f(uint,uint) 0xf4 24\n    - :label fail :abi f(uint,uint) 0xf4 25\n    - :label fail :abi f(uint,uint) 0xf4 26\n    - :label fail :abi f(uint,uint) 0xf4 27\n    - :label fail :abi f(uint,uint) 0xf4 28\n\n\n    # DELEGATECALL, check the return buffer\n    - :label ok   :abi f(uint,uint) 0x1f4 0   # Valid buffer length\n    - :label ok   :abi f(uint,uint) 0x1f4 1   # Buffer length zero\n    - :label fail :abi f(uint,uint) 0x1f4 2   # Negative buffer length\n    - :label ok   :abi f(uint,uint) 0x1f4 10   # Valid buffer length\n    - :label ok   :abi f(uint,uint) 0x1f4 11   # Buffer length zero\n    - :label fail :abi f(uint,uint) 0x1f4 12   # Negative buffer length\n    - :label fail :abi f(uint,uint) 0x1f4 20\n    - :label fail :abi f(uint,uint) 0x1f4 21\n    - :label fail :abi f(uint,uint) 0x1f4 22\n    - :label fail :abi f(uint,uint) 0x1f4 23\n    - :label fail :abi f(uint,uint) 0x1f4 24\n    - :label fail :abi f(uint,uint) 0x1f4 25\n    - :label fail :abi f(uint,uint) 0x1f4 26\n    - :label fail :abi f(uint,uint) 0x1f4 27\n    - :label fail :abi f(uint,uint) 0x1f4 28\n\n\n    # CREATE2\n    - :label ok   :abi f(uint,uint) 0xf5 0   # Valid buffer length\n    - :label ok   :abi f(uint,uint) 0xf5 1   # Buffer length zero\n    - :label fail :abi f(uint,uint) 0xf5 2   # Negative buffer length\n    - :label ok   :abi f(uint,uint) 0xf5 10   # Valid buffer length\n    - :label ok   :abi f(uint,uint) 0xf5 11   # Buffer length zero\n    - :label fail :abi f(uint,uint) 0xf5 12   # Negative buffer length\n    - :label fail :abi f(uint,uint) 0xf5 20\n    - :label fail :abi f(uint,uint) 0xf5 21\n    - :label fail :abi f(uint,uint) 0xf5 22\n    - :label fail :abi f(uint,uint) 0xf5 23\n    - :label fail :abi f(uint,uint) 0xf5 24\n    - :label fail :abi f(uint,uint) 0xf5 25\n    - :label fail :abi f(uint,uint) 0xf5 26\n    - :label fail :abi f(uint,uint) 0xf5 27\n    - :label fail :abi f(uint,uint) 0xf5 28\n\n\n    # STATICCALL, check the args buffer\n    - :label ok   :abi f(uint,uint) 0xfa 0   # Valid buffer length\n    - :label ok   :abi f(uint,uint) 0xfa 1   # Buffer length zero\n    - :label fail :abi f(uint,uint) 0xfa 2   # Negative buffer length\n    - :label ok   :abi f(uint,uint) 0xfa 10   # Valid buffer length\n    - :label ok   :abi f(uint,uint) 0xfa 11   # Buffer length zero\n    - :label fail :abi f(uint,uint) 0xfa 12   # Negative buffer length\n    - :label fail :abi f(uint,uint) 0xfa 20\n    - :label fail :abi f(uint,uint) 0xfa 21\n    - :label fail :abi f(uint,uint) 0xfa 22\n    - :label fail :abi f(uint,uint) 0xfa 23\n    - :label fail :abi f(uint,uint) 0xfa 24\n    - :label fail :abi f(uint,uint) 0xfa 25\n    - :label fail :abi f(uint,uint) 0xfa 26\n    - :label fail :abi f(uint,uint) 0xfa 27\n    - :label fail :abi f(uint,uint) 0xfa 28\n\n    # STATICCALL, check the return buffer\n    - :label ok   :abi f(uint,uint) 0x1fa 0   # Valid buffer length\n    - :label ok   :abi f(uint,uint) 0x1fa 1   # Buffer length zero\n    - :label fail :abi f(uint,uint) 0x1fa 2   # Negative buffer length\n    - :label ok   :abi f(uint,uint) 0x1fa 10   # Valid buffer length\n    - :label ok   :abi f(uint,uint) 0x1fa 11   # Buffer length zero\n    - :label fail :abi f(uint,uint) 0x1fa 12   # Negative buffer length\n    - :label fail :abi f(uint,uint) 0x1fa 20\n    - :label fail :abi f(uint,uint) 0x1fa 21\n    - :label fail :abi f(uint,uint) 0x1fa 22\n    - :label fail :abi f(uint,uint) 0x1fa 23\n    - :label fail :abi f(uint,uint) 0x1fa 24\n    - :label fail :abi f(uint,uint) 0x1fa 25\n    - :label fail :abi f(uint,uint) 0x1fa 26\n    - :label fail :abi f(uint,uint) 0x1fa 27\n    - :label fail :abi f(uint,uint) 0x1fa 28\n\n  \n    # RETURN, needs special handling\n    - :label ok-f3   :abi f(uint,uint) 0xf3 0   # Valid buffer length\n    - :label ok-f3   :abi f(uint,uint) 0xf3 1   # Buffer length zero\n    - :label fail-f3 :abi f(uint,uint) 0xf3 2   # Negative buffer length\n    - :label ok-f3   :abi f(uint,uint) 0xf3 10   # Valid buffer length\n    - :label ok-f3   :abi f(uint,uint) 0xf3 11   # Buffer length zero\n    - :label fail-f3 :abi f(uint,uint) 0xf3 12   # Negative buffer length\n    - :label fail-f3 :abi f(uint,uint) 0xf3 20\n    - :label fail-f3 :abi f(uint,uint) 0xf3 21\n    - :label fail-f3 :abi f(uint,uint) 0xf3 22\n    - :label fail-f3 :abi f(uint,uint) 0xf3 23\n    - :label fail-f3 :abi f(uint,uint) 0xf3 24\n    - :label fail-f3 :abi f(uint,uint) 0xf3 25\n    - :label fail-f3 :abi f(uint,uint) 0xf3 26\n    - :label fail-f3 :abi f(uint,uint) 0xf3 27\n    - :label fail-f3 :abi f(uint,uint) 0xf3 28\n\n    # Revert, needs special handling\n    - :label ff-valid :abi f(uint,uint) 0xff 0    # Valid buffer length\n    - :label ff-zero  :abi f(uint,uint) 0xff 1    # Zero buffer length\n    - :label ff-zero  :abi f(uint,uint) 0xff 2    # Invalid buffer length\n    - :label ff-valid :abi f(uint,uint) 0xff 10   # Valid buffer length\n    - :label ff-zero  :abi f(uint,uint) 0xff 11   # Zero buffer length\n    - :label ff-zero  :abi f(uint,uint) 0xff 12   # Invalid buffer length\n    - :label ff-zero  :abi f(uint,uint) 0xff 20\n    - :label ff-zero  :abi f(uint,uint) 0xff 21\n    - :label ff-zero  :abi f(uint,uint) 0xff 22\n    - :label ff-zero  :abi f(uint,uint) 0xff 23\n    - :label ff-zero  :abi f(uint,uint) 0xff 24\n    - :label ff-zero  :abi f(uint,uint) 0xff 25\n    - :label ff-zero  :abi f(uint,uint) 0xff 26\n    - :label ff-zero  :abi f(uint,uint) 0xff 27\n    - :label ff-zero  :abi f(uint,uint) 0xff 28\n\n\n\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n    \n    \n  expect:\n    # No revert, valid value\n    - indexes:\n        data: :label ok\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x100: 0 \n\n\n    # Revert, invalid value. The goat survives\n    - indexes:\n        data: :label fail\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x100: 0x60A7\n\n\n    # RETURN was a return, not a revert\n    - indexes:\n        data: :label ok-f3\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        000000000000000000000000000000000f30c0de:\n          storage:\n            0x0: 0\n\n    # RETURN failed, caused a revert\n    - indexes:\n        data: :label fail-f3\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        000000000000000000000000000000000f30c0de:\n          storage:\n            0x0: 0x60A7\n\n\n    # REVERT with a valid buffer\n    - indexes:\n        data: :label ff-valid\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x0: 10\n\n\n\n    # REVERT with a size 0 buffer, or a REVERT that fails and therefore returns zero\n    - indexes:\n        data: :label ff-zero\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x0: 0\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/bufferSrcOffsetFiller.yml",
    "content": "# Check what happens with various values of the source offset\n# in opcodes that copy between somewhere else and memory\n\nbufferSrcOffset:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    000000000000000000000000000000000000c0de:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n              (return 0 0x120)\n        }\n      nonce: 0\n      storage: {}\n\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           (def 'opcode $4)\n           (def 'bufferType $36)\n           (def 'bufferLength $68)\n           (def 'NOP 0)\n\n           ; Variables           \n           (def 'srcOffset  0x2020)\n           (def 'offset     0x2040)\n           (def 'length     0x2060)\n\n           [offset] 0    ; Write to the first word in memory\n\n           ; bufferType 0  is no offset (0x0)\n           ; bufferType 1  is a reasonable number as an offset (0x10)\n           ; bufferType 2  is a high number that could happen in theory (0x100000)\n           ; bufferType 3  is a negative number (- 0 0x10)\n           ; bufferType 4  is 2^31-1 0x7FFFFFFF\n           ; bufferType 5  is 2^31   0x80000000\n           ; bufferType 6  is 2^32-1 0xFFFFFFFF\n           ; bufferType 7  is 2^32   0x0100000000\n           ; bufferType 8  is 2^63-1 0x7FFFFFFFFFFFFFFF\n           ; bufferType 9  is 2^63   0x8000000000000000\n           ; bufferType 10 is 2^64-1 0xFFFFFFFFFFFFFFFF\n           ; bufferType 11 is 2^64   0x010000000000000000\n           (if (= bufferType 0)  [srcOffset] 0 NOP)\n           (if (= bufferType 1)  [srcOffset] 0x10 NOP)\n           (if (= bufferType 2)  [srcOffset] 0100000 NOP)\n           (if (= bufferType 3)  [srcOffset] (- 0 0x10) NOP)\n           (if (= bufferType 4)  [srcOffset] 0x7FFFFFFF NOP)\n           (if (= bufferType 5)  [srcOffset] 0x80000000 NOP)\n           (if (= bufferType 6)  [srcOffset] 0xFFFFFFFF NOP)\n           (if (= bufferType 7)  [srcOffset] 0x0100000000 NOP)\n           (if (= bufferType 8)  [srcOffset] 0x7FFFFFFFFFFFFFFF NOP)\n           (if (= bufferType 9)  [srcOffset] 0x8000000000000000 NOP)\n           (if (= bufferType 10) [srcOffset] 0xFFFFFFFFFFFFFFFF NOP)\n           (if (= bufferType 11) [srcOffset] 0x010000000000000000 NOP)\n\n\n           ; bufferLength 0 is zero length\n           ; bufferLength 1 is a reasonable number as the length (0x10)\n           ; bufferLength 2 is a high number that could happen in theory (0x100000)\n           ; bufferLength 3 is a negative number (- 0 0x10)\n           (if (= bufferLength 0) [length] 0 NOP)\n           (if (= bufferLength 1) [length] 0x10 NOP)\n           (if (= bufferLength 2) [length] 0100000 NOP)\n           (if (= bufferLength 3) [length] (- 0 0x10) NOP)\n\n\n           (if (= opcode 0x37) (calldatacopy @offset @srcOffset @length) NOP)\n           (if (= opcode 0x39) (codecopy @offset @srcOffset @length) NOP)\n           (if (= opcode 0x3C) (extcodecopy 0xc0de @offset @srcOffset @length) NOP)\n           (if (= opcode 0x3E) (returndatacopy @offset @srcOffset @length) NOP)\n\n           ; RETURNDATACOPY, after making sure there is return data\n           (if (= opcode 0x13E) {\n               (call 0x1000 0xc0de 0 0 0 0x100 0x100)\n               (returndatacopy @offset @srcOffset @length) \n           } NOP)\n\n           ; Kill the goat\n           [[0x100]] 0\n\n           ; Write the first two words of memory, which are copied from the source,\n           ; to storage. This is important for cases 4-11, which discover wrap-arounds\n           (if (>= bufferType 3) {\n               [[0]] @0x00\n               [[1]] @0x20\n           } NOP)\n        }\n      nonce: '0'\n      storage:\n        # Sacrificial goat to tell reverts apart from successes\n        0x100: 0x60A7\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n      \n  transaction:\n    data:\n    # Param #1: The opcode\n\n    # Param #2: bufferType (the source offset value)\n    #    0 is no offset (0x0)\n    #    1 is a reasonable number as an offset (0x10)\n    #    2 is a high number that could happen in theory (0x100000)\n    #    3 is a negative number (- 0 0x10)\n\n    #  At these (4-11) offsets the value should be zero, but if they are type cast\n    #  in correctly they wrap around to zero, so we make sure the copied to memory\n    #  value is zero\n    #\n    #    4 is 2^31-1\n    #    5 is 2^31\n    #    6 is 2^32-1\n    #    7 is 2^32\n    #    8 is 2^63-1\n    #    9 is 2^63\n    #   10 is 2^64-1\n    #   11 is 2^64\n    \n\n    # Param #3: The bufferLength\n    #    0 is zero length\n    #    1 is a reasonable number as the length (0x10)\n    #    2 is a high number that could happen in theory (0x100000)\n    #    3 is a negative number (- 0 0x10)\n\n\n    # CALLDATACOPY\n    # Everything is OK except for a negative length\n    - :label ok   :abi f(uint,uint,uint) 0x37 0 0  \n    - :label ok   :abi f(uint,uint,uint) 0x37 0 1  \n    - :label ok   :abi f(uint,uint,uint) 0x37 0 2  \n    - :label fail :abi f(uint,uint,uint) 0x37 0 3\n\n    - :label ok   :abi f(uint,uint,uint) 0x37 1 0  \n    - :label ok   :abi f(uint,uint,uint) 0x37 1 1  \n    - :label ok   :abi f(uint,uint,uint) 0x37 1 2  \n    - :label fail :abi f(uint,uint,uint) 0x37 1 3\n\n    - :label ok   :abi f(uint,uint,uint) 0x37 2 0  \n    - :label ok   :abi f(uint,uint,uint) 0x37 2 1  \n    - :label ok   :abi f(uint,uint,uint) 0x37 2 2  \n    - :label fail :abi f(uint,uint,uint) 0x37 2 3\n\n    - :label ok   :abi f(uint,uint,uint) 0x37 3 0  \n    - :label ok   :abi f(uint,uint,uint) 0x37 3 1  \n    - :label ok   :abi f(uint,uint,uint) 0x37 3 2  \n    - :label fail :abi f(uint,uint,uint) 0x37 3 3\n\n    - :label ok   :abi f(uint,uint,uint) 0x37 4 1  \n    - :label ok   :abi f(uint,uint,uint) 0x37 5 1  \n    - :label ok   :abi f(uint,uint,uint) 0x37 6 1  \n    - :label ok   :abi f(uint,uint,uint) 0x37 7 1  \n    - :label ok   :abi f(uint,uint,uint) 0x37 8 1  \n    - :label ok   :abi f(uint,uint,uint) 0x37 9 1  \n    - :label ok   :abi f(uint,uint,uint) 0x37 10 1  \n    - :label ok   :abi f(uint,uint,uint) 0x37 11 1  \n\n    # CODECOPY\n    # Everything is OK except for a negative length\n    - :label ok   :abi f(uint,uint,uint) 0x39 0 0  \n    - :label ok   :abi f(uint,uint,uint) 0x39 0 1  \n    - :label ok   :abi f(uint,uint,uint) 0x39 0 2  \n    - :label fail :abi f(uint,uint,uint) 0x39 0 3\n\n    - :label ok   :abi f(uint,uint,uint) 0x39 1 0  \n    - :label ok   :abi f(uint,uint,uint) 0x39 1 1  \n    - :label ok   :abi f(uint,uint,uint) 0x39 1 2  \n    - :label fail :abi f(uint,uint,uint) 0x39 1 3\n\n    - :label ok   :abi f(uint,uint,uint) 0x39 2 0  \n    - :label ok   :abi f(uint,uint,uint) 0x39 2 1  \n    - :label ok   :abi f(uint,uint,uint) 0x39 2 2  \n    - :label fail :abi f(uint,uint,uint) 0x39 2 3\n\n    - :label ok   :abi f(uint,uint,uint) 0x39 3 0  \n    - :label ok   :abi f(uint,uint,uint) 0x39 3 1  \n    - :label ok   :abi f(uint,uint,uint) 0x39 3 2  \n    - :label fail :abi f(uint,uint,uint) 0x39 3 3\n\n    - :label ok   :abi f(uint,uint,uint) 0x39 4 1  \n    - :label ok   :abi f(uint,uint,uint) 0x39 5 1  \n    - :label ok   :abi f(uint,uint,uint) 0x39 6 1  \n    - :label ok   :abi f(uint,uint,uint) 0x39 7 1  \n    - :label ok   :abi f(uint,uint,uint) 0x39 8 1  \n    - :label ok   :abi f(uint,uint,uint) 0x39 9 1  \n    - :label ok   :abi f(uint,uint,uint) 0x39 10 1  \n    - :label ok   :abi f(uint,uint,uint) 0x39 11 1  \n\n    # EXTCODECOPY\n    # Everything is OK except for a negative length\n    - :label ok   :abi f(uint,uint,uint) 0x3C 0 0  \n    - :label ok   :abi f(uint,uint,uint) 0x3C 0 1  \n    - :label ok   :abi f(uint,uint,uint) 0x3C 0 2  \n    - :label fail :abi f(uint,uint,uint) 0x3C 0 3\n\n    - :label ok   :abi f(uint,uint,uint) 0x3C 1 0  \n    - :label ok   :abi f(uint,uint,uint) 0x3C 1 1  \n    - :label ok   :abi f(uint,uint,uint) 0x3C 1 2  \n    - :label fail :abi f(uint,uint,uint) 0x3C 1 3\n\n    - :label ok   :abi f(uint,uint,uint) 0x3C 2 0  \n    - :label ok   :abi f(uint,uint,uint) 0x3C 2 1  \n    - :label ok   :abi f(uint,uint,uint) 0x3C 2 2  \n    - :label fail :abi f(uint,uint,uint) 0x3C 2 3\n\n    - :label ok   :abi f(uint,uint,uint) 0x3C 3 0  \n    - :label ok   :abi f(uint,uint,uint) 0x3C 3 1  \n    - :label ok   :abi f(uint,uint,uint) 0x3C 3 2  \n    - :label fail :abi f(uint,uint,uint) 0x3C 3 3\n\n    - :label ok   :abi f(uint,uint,uint) 0x3C 4 1  \n    - :label ok   :abi f(uint,uint,uint) 0x3C 5 1  \n    - :label ok   :abi f(uint,uint,uint) 0x3C 6 1  \n    - :label ok   :abi f(uint,uint,uint) 0x3C 7 1  \n    - :label ok   :abi f(uint,uint,uint) 0x3C 8 1  \n    - :label ok   :abi f(uint,uint,uint) 0x3C 9 1  \n    - :label ok   :abi f(uint,uint,uint) 0x3C 10 1  \n    - :label ok   :abi f(uint,uint,uint) 0x3C 11 1  \n\n    # RETURNDATACOPY, fails when there is no return data unless asked for 0 bytes\n    # at offset 0\n    - :label ok   :abi f(uint,uint,uint) 0x3E 0 0  \n    - :label fail :abi f(uint,uint,uint) 0x3E 0 1  \n    - :label fail :abi f(uint,uint,uint) 0x3E 0 2  \n    - :label fail :abi f(uint,uint,uint) 0x3E 0 3\n\n    - :label fail :abi f(uint,uint,uint) 0x3E 1 0  \n    - :label fail :abi f(uint,uint,uint) 0x3E 1 1  \n    - :label fail :abi f(uint,uint,uint) 0x3E 1 2  \n    - :label fail :abi f(uint,uint,uint) 0x3E 1 3\n\n    - :label fail :abi f(uint,uint,uint) 0x3E 2 0  \n    - :label fail :abi f(uint,uint,uint) 0x3E 2 1  \n    - :label fail :abi f(uint,uint,uint) 0x3E 2 2  \n    - :label fail :abi f(uint,uint,uint) 0x3E 2 3\n\n    - :label fail :abi f(uint,uint,uint) 0x3E 3 0  \n    - :label fail :abi f(uint,uint,uint) 0x3E 3 1  \n    - :label fail :abi f(uint,uint,uint) 0x3E 3 2  \n    - :label fail :abi f(uint,uint,uint) 0x3E 3 3\n\n    - :label fail :abi f(uint,uint,uint) 0x3E 4 1  \n    - :label fail :abi f(uint,uint,uint) 0x3E 5 1  \n    - :label fail :abi f(uint,uint,uint) 0x3E 6 1  \n    - :label fail :abi f(uint,uint,uint) 0x3E 7 1  \n    - :label fail :abi f(uint,uint,uint) 0x3E 8 1  \n    - :label fail :abi f(uint,uint,uint) 0x3E 9 1  \n    - :label fail :abi f(uint,uint,uint) 0x3E 10 1  \n    - :label fail :abi f(uint,uint,uint) 0x3E 11 1  \n\n    # RETURNDATACOPY, after making sure there is return data\n    # fails if attempting to read beyond the bounds of\n    # that data\n    - :label ok   :abi f(uint,uint,uint) 0x13E 0 0  \n    - :label ok   :abi f(uint,uint,uint) 0x13E 0 1  \n    - :label fail :abi f(uint,uint,uint) 0x13E 0 2  \n    - :label fail :abi f(uint,uint,uint) 0x13E 0 3\n\n    - :label ok   :abi f(uint,uint,uint) 0x13E 1 0  \n    - :label ok   :abi f(uint,uint,uint) 0x13E 1 1  \n    - :label fail :abi f(uint,uint,uint) 0x13E 1 2  \n    - :label fail :abi f(uint,uint,uint) 0x13E 1 3\n\n    - :label fail :abi f(uint,uint,uint) 0x13E 2 0  \n    - :label fail :abi f(uint,uint,uint) 0x13E 2 1  \n    - :label fail :abi f(uint,uint,uint) 0x13E 2 2  \n    - :label fail :abi f(uint,uint,uint) 0x13E 2 3\n\n    - :label fail :abi f(uint,uint,uint) 0x13E 3 0  \n    - :label fail :abi f(uint,uint,uint) 0x13E 3 1  \n    - :label fail :abi f(uint,uint,uint) 0x13E 3 2  \n    - :label fail :abi f(uint,uint,uint) 0x13E 3 3\n\n    - :label fail :abi f(uint,uint,uint) 0x13E 4 1  \n    - :label fail :abi f(uint,uint,uint) 0x13E 5 1  \n    - :label fail :abi f(uint,uint,uint) 0x13E 6 1  \n    - :label fail :abi f(uint,uint,uint) 0x13E 7 1  \n    - :label fail :abi f(uint,uint,uint) 0x13E 8 1  \n    - :label fail :abi f(uint,uint,uint) 0x13E 9 1  \n    - :label fail :abi f(uint,uint,uint) 0x13E 10 1  \n    - :label fail :abi f(uint,uint,uint) 0x13E 11 1  \n\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n    \n    \n  expect:\n    # No revert, valid value\n    - indexes:\n        data: :label ok\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            # Values copied from close to the wrap-around boundary\n            0x000: 0\n            0x001: 0  \n     \n            # Dead goat\n            0x100: 0 \n\n\n    # Revert, invalid value. The goat survives\n    - indexes:\n        data: :label fail\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x100: 0x60A7\n\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/callDataCopyOffsetFiller.json",
    "content": "{\n    \"callDataCopyOffset\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xffffffffffffffffffffffffffffffff\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"//codeDescription\": \"/* fill memory up */ /* copy call data to memory with offset > call data length */  /* only part of memory should be zeroed out */\",\n                \"code\": \"{ (MSTORE 0x00 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (CALLDATACOPY 0x00 0xffff  0x10) (SSTORE 0x00 (MLOAD 0x00)) }\",\n                \"nonce\" : \"1\",\n                \"storage\": {\n                }\n            },\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"//codeDescription\": \"{ /*store call data in memory*/ /* make call with the call data*/ ) }\",\n                \"//code\": \"{ (asm 0x0123456789abcdef 0x00 mstore) (CALL 0xffff 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee 0x00 0x00 0x0f 0x00 0x00) }\",\n                \"//code\" : \":raw 0x670123456789abcdef60005260006000600f6000600073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee61fffff1\",\n                \"code\": \":yul berlin { mstore(0, 0x0123456789abcdef) pop(call(0xffff,0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee,0, 0,0x0f, 0,0))  }\",\n                \"nonce\" : \"1\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/calldatacopy_dejavu2Filler.json",
    "content": "{\n    \"calldatacopy_dejavu2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"52949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0xff\" : \"0x0badc0ffee\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"//code\" : \":raw 0x6005565b005b6042601f536101036000601f3760005180606014600357640badc0ffee60ff55\",\n                \"code\" : \":yul berlin { mstore8(0x1f, 0x42) calldatacopy(0x1f, 0, 0x0103) let mem := mload(0) if eq(mem,0x60) { stop() }  sstore(0xff, 0x0badc0ffee) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"42949672960000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/calldatacopy_dejavuFiller.json",
    "content": "{\n    \"calldatacopy_dejavu\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"52949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a7640000\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x60FF60FF630FFFFFFF630FFFFFFF37\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"42949672960000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/codeCopyOffsetFiller.json",
    "content": "{\n    \"codeCopyOffset\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xffffffffffffffffffffffffffffffff\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"//codeDescription\": \"/* fill memory up */ /* copy call data to memory with offset > call data length */  /* only part of memory should be zeroed out */\",\n                \"code\": \"{ (MSTORE 0x00 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (CODECOPY 0x00 0xffff  0x10) (SSTORE 0x00 (MLOAD 0x00)) }\",\n                \"nonce\" : \"1\",\n                \"storage\": {\n                }\n            },\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"//codeDescription\": \"{ /*store call data in memory*/ /* make call with the call data*/ ) }\",\n                \"//code\": \"{ (asm 0x0123456789abcdef 0x00 mstore) (CALL 0xffff <contract:0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee> 0x00 0x00 0x0f 0x00 0x00) }\",\n                \"//code\" : \":raw 0x670123456789abcdef60005260006000600f6000600073<contract:0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee>61fffff1\",\n                \"code\" : \":yul berlin { mstore(0, 0x0123456789abcdef)  pop(call(0xffff, <contract:0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee>, 0, 0, 0x0f, 0, 0))  } \",\n                \"nonce\" : \"1\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/codecopy_dejavu2Filler.json",
    "content": "{\n    \"codecopy_dejavu2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"52949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":yul berlin { codecopy(0x1f, 0x010000000000000001, 0x0a) let mem := mload(0) if eq(mem, 0) {stop()} }\",\n                \"//code\" : \"raw 0x600a68010000000000000001601f3960005180600014600357640badc0ffee60\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"42949672960000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/codecopy_dejavuFiller.json",
    "content": "{\n    \"codecopy_dejavu\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"52949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a7640000\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x60FF60FF630FFFFFFF630FFFFFFF39\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"42949672960000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/extcodecopy_dejavuFiller.json",
    "content": "{\n    \"extcodecopy_dejavu\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"52949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a7640000\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x60FF60FF630FFFFFFF630FFFFFFF3C\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"42949672960000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/log1_dejavuFiller.json",
    "content": "{\n    \"log1_dejavu\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"52949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a7640000\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x60FF60FF630FFFFFFFA1\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"42949672960000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/log2_dejavuFiller.json",
    "content": "{\n    \"log2_dejavu\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"52949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a7640000\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x60FF60FF630FFFFFFFA2\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"42949672960000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/log3_dejavuFiller.json",
    "content": "{\n    \"log3_dejavu\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"52949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a7640000\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x60FF60FF60FF630FFFFFFFA2\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"42949672960000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/log4_dejavuFiller.json",
    "content": "{\n    \"log4_dejavu\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"52949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a7640000\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x60FF60FF60FF630FFFFFFFA2\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"42949672960000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/mem0b_singleByteFiller.json",
    "content": "{\n    \"mem0b_singleByte\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x20\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE8 0 42) [[ 0 ]] (MSIZE)  } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/mem31b_singleByteFiller.json",
    "content": "{\n    \"mem31b_singleByte\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x20\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE8 30 42) [[ 0 ]] (MSIZE)  } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/mem32b_singleByteFiller.json",
    "content": "{\n    \"mem32b_singleByte\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x20\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE8 31 42) [[ 0 ]] (MSIZE)  } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/mem32kb+1Filler.json",
    "content": "{\n    \"mem32kb+1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x7d20\",\n                            \"0x01\" : \"0x2a\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 31969 42) [[ 1 ]] (MLOAD 31969) [[ 0 ]] (MSIZE) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/mem32kb+31Filler.json",
    "content": "{\n    \"mem32kb+31\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x7d20\",\n                            \"0x01\" : \"0x2a\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 31999 42) [[ 1 ]] (MLOAD 31999) [[ 0 ]] (MSIZE) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/mem32kb+32Filler.json",
    "content": "{\n    \"mem32kb+32\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x7d20\",\n                            \"0x01\" : \"0x2a\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 32000 42) [[ 1 ]] (MLOAD 32000) [[ 0 ]] (MSIZE) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/mem32kb+33Filler.json",
    "content": "{\n    \"mem32kb+33\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x7d40\",\n                            \"0x01\" : \"0x2a\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 32001 42) [[ 1 ]] (MLOAD 32001) [[ 0 ]] (MSIZE) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/mem32kb-1Filler.json",
    "content": "{\n    \"mem32kb-1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x7d00\",\n                            \"0x01\" : \"0x2a\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 31967 42) [[ 1 ]] (MLOAD 31967) [[ 0 ]] (MSIZE) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/mem32kb-31Filler.json",
    "content": "{\n    \"mem32kb-31\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x7d00\",\n                            \"0x01\" : \"0x2a\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 31937 42) [[ 1 ]] (MLOAD 31937) [[ 0 ]] (MSIZE) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/mem32kb-32Filler.json",
    "content": "{\n    \"mem32kb-32\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x7ce0\",\n                            \"0x01\" : \"0x2a\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 31936 42) [[ 1 ]] (MLOAD 31936) [[ 0 ]] (MSIZE) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/mem32kb-33Filler.json",
    "content": "{\n    \"mem32kb-33\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x7ce0\",\n                            \"0x01\" : \"0x2a\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 31935 42) [[ 1 ]] (MLOAD 31935) [[ 0 ]] (MSIZE) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/mem32kbFiller.json",
    "content": "{\n    \"mem32kb\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x7d00\",\n                            \"0x01\" : \"0x2a\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 31968 42) [[ 1 ]] (MLOAD 31968) [[ 0 ]] (MSIZE) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/mem32kb_singleByte+1Filler.json",
    "content": "{\n    \"mem32kb_singleByte+1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x7d20\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE8 32000 42) [[ 0 ]] (MSIZE) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/mem32kb_singleByte+31Filler.json",
    "content": "{\n    \"mem32kb_singleByte+31\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x7d20\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE8 32030 42) [[ 0 ]] (MSIZE) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/mem32kb_singleByte+32Filler.json",
    "content": "{\n    \"mem32kb_singleByte+32\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x7d20\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE8 32031 42) [[ 0 ]] (MSIZE) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/mem32kb_singleByte+33Filler.json",
    "content": "{\n    \"mem32kb_singleByte+33\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x7d40\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE8 32032 42) [[ 0 ]] (MSIZE) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/mem32kb_singleByte-1Filler.json",
    "content": "{\n    \"mem32kb_singleByte-1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x7d00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE8 31998 42) [[ 0 ]] (MSIZE) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/mem32kb_singleByte-31Filler.json",
    "content": "{\n    \"mem32kb_singleByte-31\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x7d00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE8 31968 42) [[ 0 ]] (MSIZE) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/mem32kb_singleByte-32Filler.json",
    "content": "{\n    \"mem32kb_singleByte-32\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x7ce0\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE8 31967 42) [[ 0 ]] (MSIZE) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/mem32kb_singleByte-33Filler.json",
    "content": "{\n    \"mem32kb_singleByte-33\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x7ce0\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE8 31966 42) [[ 0 ]] (MSIZE) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/mem32kb_singleByteFiller.json",
    "content": "{\n    \"mem32kb_singleByte\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x7d00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE8 31999 42) [[ 0 ]] (MSIZE) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/mem33b_singleByteFiller.json",
    "content": "{\n    \"mem33b_singleByte\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x40\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE8 32 42) [[ 0 ]] (MSIZE)  } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/mem64kb+1Filler.json",
    "content": "{\n    \"mem64kb+1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xfa20\",\n                            \"0x01\" : \"0x2a\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 63969 42) [[ 1 ]] (MLOAD 63969) [[ 0 ]] (MSIZE) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/mem64kb+31Filler.json",
    "content": "{\n    \"mem64kb+31\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xfa20\",\n                            \"0x01\" : \"0x2a\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 63999 42) [[ 1 ]] (MLOAD 63999) [[ 0 ]] (MSIZE) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/mem64kb+32Filler.json",
    "content": "{\n    \"mem64kb+32\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xfa20\",\n                            \"0x01\" : \"0x2a\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 64000 42) [[ 1 ]] (MLOAD 64000) [[ 0 ]] (MSIZE) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/mem64kb+33Filler.json",
    "content": "{\n    \"mem64kb+33\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xfa40\",\n                            \"0x01\" : \"0x2a\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 64001 42) [[ 1 ]] (MLOAD 64001) [[ 0 ]] (MSIZE) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/mem64kb-1Filler.json",
    "content": "{\n    \"mem64kb-1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xfa00\",\n                            \"0x01\" : \"0x2a\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 63967 42) [[ 1 ]] (MLOAD 63967) [[ 0 ]] (MSIZE) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/mem64kb-31Filler.json",
    "content": "{\n    \"mem64kb-31\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xfa00\",\n                            \"0x01\" : \"0x2a\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 63937 42) [[ 1 ]] (MLOAD 63937) [[ 0 ]] (MSIZE) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/mem64kb-32Filler.json",
    "content": "{\n    \"mem64kb-32\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xf9e0\",\n                            \"0x01\" : \"0x2a\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 63936 42) [[ 1 ]] (MLOAD 63936) [[ 0 ]] (MSIZE) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/mem64kb-33Filler.json",
    "content": "{\n    \"mem64kb-33\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xf9e0\",\n                            \"0x01\" : \"0x2a\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 63935 42) [[ 1 ]] (MLOAD 63935) [[ 0 ]] (MSIZE) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/mem64kbFiller.json",
    "content": "{\n    \"mem64kb\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xfa00\",\n                            \"0x01\" : \"0x2a\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 63968 42) [[ 1 ]] (MLOAD 63968) [[ 0 ]] (MSIZE) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/mem64kb_singleByte+1Filler.json",
    "content": "{\n    \"mem64kb_singleByte+1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xfa20\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE8 64000 42) [[ 0 ]] (MSIZE) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/mem64kb_singleByte+31Filler.json",
    "content": "{\n    \"mem64kb_singleByte+31\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xfa20\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE8 64030 42) [[ 0 ]] (MSIZE) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/mem64kb_singleByte+32Filler.json",
    "content": "{\n    \"mem64kb_singleByte+32\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xfa20\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE8 64031 42) [[ 0 ]] (MSIZE) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/mem64kb_singleByte+33Filler.json",
    "content": "{\n    \"mem64kb_singleByte+33\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xfa40\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE8 64032 42) [[ 0 ]] (MSIZE)  } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/mem64kb_singleByte-1Filler.json",
    "content": "{\n    \"mem64kb_singleByte-1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xfa00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE8 63998 42) [[ 0 ]] (MSIZE) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/mem64kb_singleByte-31Filler.json",
    "content": "{\n    \"mem64kb_singleByte-31\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xfa00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE8 63968 42) [[ 0 ]] (MSIZE) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/mem64kb_singleByte-32Filler.json",
    "content": "{\n    \"mem64kb_singleByte-32\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xf9e0\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE8 63967 42) [[ 0 ]] (MSIZE) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/mem64kb_singleByte-33Filler.json",
    "content": "{\n    \"mem64kb_singleByte-33\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xf9e0\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE8 63966 42) [[ 0 ]] (MSIZE) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/mem64kb_singleByteFiller.json",
    "content": "{\n    \"mem64kb_singleByte\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xfa00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE8 63999 42) [[ 0 ]] (MSIZE) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/memCopySelfFiller.yml",
    "content": "# Copy memory over itself, a weird edge case that caused\n# Geth <1.10.8 to have an inconsistent state when a CALL to \n# precompile 4 (the identity precompile) overwrote the memory\n# where the call parameters were. It caused RETURNDATACOPY\n# to be invalid afterwards\n#\n# This is explained here: https://twitter.com/kelvinfichter/status/1431336698911338496\n\nmemCopySelf:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: \"100000000\"\n    currentNumber: \"1\"\n    currentTimestamp: \"1000\"\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n\n  pre:\n\n\n    <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin\n       {\n          let idPrecomp := 0x04\n\n          for { let i := 0} lt(i, 0x0F) { i := add(i, 1) } \n          {\n              mstore8(i, mul(add(i, 1), 0x11)) \n          }\n           \n          // The initial memory value\n          sstore(0, mload(0))\n          \n          // Call idPrecomp\n          pop(call(gas(), idPrecomp, 0, \n            0, 10,     // input buffer\n            2, 10      // output buffer (overlapping the input)\n          ))\n\n          // Memory value immediately after the call\n          sstore(1, mload(0))\n\n          // Copy the return data (to check if it is corrupt)\n          returndatacopy(0x20, 0, 10)\n          sstore(2, mload(0x20))\n       }\n      nonce: 1\n      storage:\n        0: 0x60A7\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: 0x\n      nonce: 1\n      storage: {}\n\n\n  transaction:\n    data: \n    - 0x\n    gasLimit:\n    - 16777216\n    gasPrice: 10\n    nonce: 1\n    to: <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    value:\n    - 0\n\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n\n            # Initial data\n            0x00: 0x112233445566778899aabbccddeeff0000000000000000000000000000000000\n\n            # Data after the call (copied correctly, two bytes ahead of where it was)\n            0x01: 0x1122112233445566778899aaddeeff0000000000000000000000000000000000\n\n            # Result of RETURNDATACOPY, which should be the same as the initial\n            # data, not the new data\n            0x02: 0x112233445566778899aa00000000000000000000000000000000000000000000\n\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/memReturnFiller.json",
    "content": "{\n    \"memReturn\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (CALLDATACOPY 0 0 (CALLDATASIZE)) (RETURN 0 (MSIZE))  } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"0xff55883355001144bbccddffeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/mload16bitBoundFiller.json",
    "content": "{\n    \"mload16bitBound\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"17592320524892\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [    \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 1 ]] (MLOAD 65536) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"175923205248920\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/mload8bitBoundFiller.json",
    "content": "{\n    \"mload8bitBound\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 1 ]] (MLOAD 256) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"220000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/mload_dejavuFiller.json",
    "content": "{\n    \"mload_dejavu\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"52949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a7640000\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x630FFFFFFF51\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"42949672960000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/mstore_dejavuFiller.json",
    "content": "{\n    \"mstore_dejavu\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"52949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a7640000\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x60F1630FFFFFFF52\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"42949672960000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/mstroe8_dejavuFiller.json",
    "content": "{\n    \"mstroe8_dejavu\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"52949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a7640000\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x60F1630FFFFFFF53\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"42949672960000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/oogFiller.yml",
    "content": "# Check for out of gas with various memory opcodes\n\noog:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: \"100000000\"\n    currentNumber: \"1\"\n    currentTimestamp: \"1000\"\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n\n  pre:\n    # SHA3\n    0000000000000000000000000000000000010020:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        :yul berlin\n        {\n            // Instead of keccak256, which seems to be optimized into\n            // not happening\n            pop(verbatim_2i_1o(hex\"20\", 0, 0x1000))\n        }\n      nonce: 1\n      storage: {}\n\n\n\n    # CALLDATACOPY\n    0000000000000000000000000000000000010037:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin\n       {\n          calldatacopy(0,0,0x1000)\n       }    \n      nonce: 1\n      storage: {}\n\n\n\n    # CODECOPY\n    0000000000000000000000000000000000010039:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin \n       {\n          codecopy(0,0,0x1000)\n       }    \n      nonce: 1\n      storage: {}\n\n\n    # EXTCODECOPY\n    000000000000000000000000000000000001003C:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin \n       {\n          extcodecopy(address(),0,0,0x1000)\n       }    \n      nonce: 1\n      storage: {}\n\n\n\n    # RETURNDATACOPY\n    000000000000000000000000000000000001003E:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin\n       {\n          // Make sure there is return data to be copied\n          pop(call(gas(), 0x1113e, 0, 0, 0x20, 0, 0x20))\n\n          returndatacopy(0x1000,0,0x10)\n       }    \n      nonce: 1\n      storage: {}\n\n\n    # Create return data\n    000000000000000000000000000000000001113E:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin\n       {\n          mstore(0, 0x0102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F20)\n          return(0,0x20)\n       }    \n      nonce: 1\n      storage: {}\n\n\n    # MLOAD\n    0000000000000000000000000000000000010051:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin\n       {\n           pop(verbatim_1i_1o(hex\"51\", 0x1000))\n       }    \n      nonce: 1\n      storage: {}\n\n\n    # MSTORE\n    0000000000000000000000000000000000010052:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin\n       {\n           mstore(0x1000, 0xFF)\n       }    \n      nonce: 1\n      storage: {}\n\n\n    # MSTORE8\n    0000000000000000000000000000000000010053:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin\n       {\n           mstore8(0x1000, 0xFF)\n       }    \n      nonce: 1\n      storage: {}\n\n\n    # LOG0\n    00000000000000000000000000000000000100A0:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin\n       {\n          log0(0x10000, 0x20)\n       }    \n      nonce: 1\n      storage: {}\n\n\n    # LOG1\n    00000000000000000000000000000000000100A1:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin\n       {\n          log1(0x10000, 0x20, 0x1)\n       }    \n      nonce: 1\n      storage: {}\n\n\n    # LOG2\n    00000000000000000000000000000000000100A2:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin\n       {\n          log2(0x10000, 0x20, 0x1, 0x2)\n       }    \n      nonce: 1\n      storage: {}\n\n\n    # LOG3\n    00000000000000000000000000000000000100A3:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin\n       {\n          log3(0x10000, 0x20, 0x1, 0x2, 0x3)\n       }    \n      nonce: 1\n      storage: {}\n\n\n    # LOG4\n    00000000000000000000000000000000000100A4:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin\n       {\n          log4(0x10000, 0x20, 0x1, 0x2, 0x3, 0x4)\n       }    \n      nonce: 1\n      storage: {}\n\n\n    # CREATE\n    00000000000000000000000000000000000100F0:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin\n       {\n          pop(create(0, 0x10000, 0x20))\n       }    \n      nonce: 1\n      storage: {}\n\n\n    # CREATE2\n    00000000000000000000000000000000000100F5:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin\n       {\n          pop(create2(0, 0x10000, 0x20, 0x5a17))\n       }    \n      nonce: 1\n      storage: {}\n\n\n\n    # RETURN\n    00000000000000000000000000000000000100F3:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin\n       {\n          return(0x10000, 0x20)\n       }    \n      nonce: 1\n      storage: {}\n\n\n    # CALL\n    00000000000000000000000000000000000100f1:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin\n       {\n          pop(call(gas(), 0x111f1, 0, 0x10000, 0, 0, 0))\n       }    \n      nonce: 1\n      storage: {}\n\n\n    # CALLCODE\n    00000000000000000000000000000000000100f2:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin\n       {\n          pop(callcode(gas(), 0x111f1, 0, 0x10000, 0, 0, 0))\n       }    \n      nonce: 1\n      storage: {}\n\n\n    # DELEGATECALL\n    00000000000000000000000000000000000100f4:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin\n       {\n          pop(delegatecall(gas(), 0x111f1, 0x10000, 0, 0, 0))\n       }    \n      nonce: 1\n      storage: {}\n\n\n    # STATICCALL\n    00000000000000000000000000000000000100fa:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin\n       {\n          pop(staticcall(gas(), 0x111f1, 0x10000, 0, 0, 0))\n       }    \n      nonce: 1\n      storage: {}\n\n\n    # Contract to be called\n    00000000000000000000000000000000000111f1:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin\n       {\n          stop()\n       }    \n      nonce: 1\n      storage: {}\n\n\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin\n       {\n          let op     := calldataload(0x04)\n          let gasAmt := calldataload(0x24)\n\n          // Call the function that actually goes OOG (or not)\n          sstore(0, call(gasAmt, add(0x10000,op), 0, 0, 0, 0, 0))\n       }\n      nonce: 1\n      storage: {}\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: 0x\n      nonce: 1\n      storage: {}\n\n\n  transaction:\n    data:\n    # SHA3 0,1\n    - :label success :abi f(uint,uint) 0x20 0xFFFF\n    - :label failure :abi f(uint,uint) 0x20 1210\n\n    # CALLDATACOPY 2,3\n    - :label success :abi f(uint,uint) 0x37 0xFFFF\n    - :label failure :abi f(uint,uint) 0x37 810\n\n    # CODECOPY 4,5\n    - :label success :abi f(uint,uint) 0x39 0xFFFF\n    - :label failure :abi f(uint,uint) 0x39 810\n\n    # EXTCODECOPY 6,7\n    - :label success :abi f(uint,uint) 0x3C 0xFFFF\n    - :label failure :abi f(uint,uint) 0x3C 700\n\n    # RETURNDATACOPY 8,9\n    - :label success :abi f(uint,uint) 0x3E 0xFFFF\n    - :label success :abi f(uint,uint) 0x3E 3074\n\n    # Two failures because @chfast has two memory related\n    # gas costs in his RETURNDATACOPY code, and we want to check both:\n    # 10\n    - :label failure :abi f(uint,uint) 0x3E 2000   # Memory extension cost\n    # 11\n    - :label failure :abi f(uint,uint) 0x3E 3073   # Memory copying cost (I think)\n\n    # MLOAD 12,30\n    - :label success :abi f(uint,uint) 0x51 0xFFFF\n    - :label failure :abi f(uint,uint) 0x51 400\n\n    # MSTORE\n    - :label success :abi f(uint,uint) 0x52 0xFFFF\n    - :label failure :abi f(uint,uint) 0x52 400\n\n    # MSTORE8\n    - :label success :abi f(uint,uint) 0x53 0xFFFF\n    - :label failure :abi f(uint,uint) 0x53 400\n\n    # LOG0\n    - :label success :abi f(uint,uint) 0xa0 0xFFFF\n    - :label failure :abi f(uint,uint) 0xa0 14800\n\n    # LOG1\n    - :label success :abi f(uint,uint) 0xa1 0xFFFF\n    - :label failure :abi f(uint,uint) 0xa1 14800\n\n    # LOG2\n    - :label success :abi f(uint,uint) 0xa2 0xFFFF\n    - :label failure :abi f(uint,uint) 0xa2 14800\n\n    # LOG3\n    - :label success :abi f(uint,uint) 0xa3 0xFFFF\n    - :label failure :abi f(uint,uint) 0xa3 14800\n\n    # LOG4\n    - :label success :abi f(uint,uint) 0xa4 0xFFFF\n    - :label failure :abi f(uint,uint) 0xa4 14800\n\n    # CREATE\n    - :label success :abi f(uint,uint) 0xf0 0xFFFF\n    - :label failure :abi f(uint,uint) 0xf0 32000\n\n    # CREATE2\n    - :label success :abi f(uint,uint) 0xf5 0xFFFF\n    - :label failure :abi f(uint,uint) 0xf5 32000\n\n    # RETURN\n    - :label success :abi f(uint,uint) 0xf3 0xFFFF\n    - :label failure :abi f(uint,uint) 0xf3 14000\n\n\n    # CALL\n    - :label success :abi f(uint,uint) 0xf1 0xFFFF\n    - :label failure :abi f(uint,uint) 0xf1 700\n\n    # CALLCODE\n    - :label success :abi f(uint,uint) 0xf2 0xFFFF\n    - :label failure :abi f(uint,uint) 0xf2 700\n\n    # DELEGATECALL\n    - :label success :abi f(uint,uint) 0xf4 0xFFFF\n    - :label failure :abi f(uint,uint) 0xf4 700\n\n    # STATICCALL\n    - :label success :abi f(uint,uint) 0xfa 0xFFFF\n    - :label failure :abi f(uint,uint) 0xfa 700\n\n\n    gasLimit:\n    - 16777216\n    gasPrice: 10\n    nonce: 1\n    to: cccccccccccccccccccccccccccccccccccccccc\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n    value:\n    - 0\n\n  expect:\n    - indexes:\n        data: :label success\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0: 1\n\n\n    - indexes:\n        data: :label failure\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0: 0\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/sha3_dejavuFiller.json",
    "content": "{\n    \"sha3_dejavu\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"52949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a7640000\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x60FF630FFFFFFF20\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"42949672960000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/stackLimitGas_1023Filler.json",
    "content": "{\n    \"stackLimitGas_1023\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"(asm 1021 0x00 MSTORE JUMPDEST GAS 0x01 0x00 MLOAD SUB 0x00 MSTORE 0x00 MLOAD 0x06 JUMPI STOP )\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/stackLimitGas_1024Filler.json",
    "content": "{\n    \"stackLimitGas_1024\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"code\" : \"0x6103fe6000525b5a6001600051036000526000516006570000\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"(asm 1022 0x00 MSTORE JUMPDEST GAS 0x01 0x00 MLOAD SUB 0x00 MSTORE 0x00 MLOAD 0x06 JUMPI STOP )\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/stackLimitGas_1025Filler.json",
    "content": "{\n    \"stackLimitGas_1025\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a7640000\",\n                        \"code\" : \"0x6103ff6000525b5a6001600051036000526000516006570000\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"(asm 1023 0x00 MSTORE JUMPDEST GAS 0x01 0x00 MLOAD SUB 0x00 MSTORE 0x00 MLOAD 0x06 JUMPI STOP )\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/stackLimitPush31_1023Filler.json",
    "content": "{\n    \"stackLimitPush31_1023\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"code\" : \"0x6103fd6000525b7e0102030405060708090a0102030405060708090a0102030405060708090a016001600051036000526000516006570000\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"(asm 1021 0x00 MSTORE JUMPDEST 0x0102030405060708090a0102030405060708090a0102030405060708090a01 0x01 0x00 MLOAD SUB 0x00 MSTORE 0x00 MLOAD 0x06 JUMPI STOP )\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/stackLimitPush31_1024Filler.json",
    "content": "{\n    \"stackLimitPush31_1024\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"code\" : \"0x6103fe6000525b7e0102030405060708090a0102030405060708090a0102030405060708090a016001600051036000526000516006570000\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"(asm 1022 0x00 MSTORE JUMPDEST 0x0102030405060708090a0102030405060708090a0102030405060708090a01 0x01 0x00 MLOAD SUB 0x00 MSTORE 0x00 MLOAD 0x06 JUMPI STOP )\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/stackLimitPush31_1025Filler.json",
    "content": "{\n    \"stackLimitPush31_1025\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a7640000\",\n                        \"code\" : \"0x6103ff6000525b7e0102030405060708090a0102030405060708090a0102030405060708090a016001600051036000526000516006570000\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"(asm 1023 0x00 MSTORE JUMPDEST 0x0102030405060708090a0102030405060708090a0102030405060708090a01 0x01 0x00 MLOAD SUB 0x00 MSTORE 0x00 MLOAD 0x06 JUMPI STOP )\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/stackLimitPush32_1023Filler.json",
    "content": "{\n    \"stackLimitPush32_1023\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"code\" : \"0x6103fd6000525b7f0102030405060708090a0102030405060708090a0102030405060708090a01026001600051036000526000516006570000\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"(asm 1021 0x00 MSTORE JUMPDEST 0x0102030405060708090a0102030405060708090a0102030405060708090a0102 0x01 0x00 MLOAD SUB 0x00 MSTORE 0x00 MLOAD 0x06 JUMPI STOP )\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/stackLimitPush32_1024Filler.json",
    "content": "{\n    \"stackLimitPush32_1024\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a764000a\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"(asm 1022 0x00 MSTORE JUMPDEST 0x0102030405060708090a0102030405060708090a0102030405060708090a0102 0x01 0x00 MLOAD SUB 0x00 MSTORE 0x00 MLOAD 0x06 JUMPI STOP )\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stMemoryTest/stackLimitPush32_1025Filler.json",
    "content": "{\n    \"stackLimitPush32_1025\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"//balance\" : \"0x0de0b6b3a7640000\",\n                        \"code\" : \"0x6103ff6000525b7f0102030405060708090a0102030405060708090a0102030405060708090a01026001600051036000526000516006570000\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"(asm 1023 0x00 MSTORE JUMPDEST 0x0102030405060708090a0102030405060708090a0102030405060708090a0102 0x01 0x00 MLOAD SUB 0x00 MSTORE 0x00 MLOAD 0x06 JUMPI STOP )\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"429496729600\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stNonZeroCallsTest/NonZeroValue_CALLCODEFiller.json",
    "content": "{\n    \"NonZeroValue_CALLCODE\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x01\",\n\t\t                    \"0x64\" : \"0x7acb\"\n\t\t                }\n\t\t            },\n\t\t            \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n    \t\t\t        \"shouldnotexist\" : \"1\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"100\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [0](GAS) [[1]] (CALLCODE 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 0 0 0) [[100]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stNonZeroCallsTest/NonZeroValue_CALLCODE_ToEmpty_ParisFiller.json",
    "content": "{\n    \"NonZeroValue_CALLCODE_ToEmpty_Paris\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"balance\" : \"10\",\n\t\t                \"code\" : \"0x\",\n\t\t                \"nonce\" : \"0\",\n\t\t                \"storage\" : {\n\t\t                }\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x01\",\n\t\t                    \"0x64\" : \"0x7acb\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"100\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [0](GAS) [[1]] (CALLCODE 60000 <eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 1 0 0 0 0) [[100]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stNonZeroCallsTest/NonZeroValue_CALLCODE_ToNonNonZeroBalanceFiller.json",
    "content": "{\n    \"NonZeroValue_CALLCODE_ToNonNonZeroBalance\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"balance\" : \"100\"\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x64\" : \"0x2d0f\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [0](GAS) [[1]] (CALLCODE 60000 <eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 1 0 0 0 0) [[100]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n\t        \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"100\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stNonZeroCallsTest/NonZeroValue_CALLCODE_ToOneStorageKey_ParisFiller.json",
    "content": "{\n    \"NonZeroValue_CALLCODE_ToOneStorageKey_Paris\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\n            {\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n    \t\t\t        \"balance\" : \"10\",\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x01\"\n\t\t                }\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x01\",\n\t\t                    \"0x64\" : \"0x7acb\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [0](GAS) [[1]] (CALLCODE 60000 <eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 1 0 0 0 0) [[100]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n        \t\t    \"0x00\" : \"0x01\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stNonZeroCallsTest/NonZeroValue_CALLFiller.json",
    "content": "{\n    \"NonZeroValue_CALL\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"balance\" : \"0x63\",\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x01\",\n\t\t                    \"0x64\" : \"0xdc73\"\n\t\t                }\n\t\t            },\n\t\t            \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"balance\" : \"0x01\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"100\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [0](GAS) [[1]] (CALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 0 0 0) [[100]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stNonZeroCallsTest/NonZeroValue_CALL_ToEmpty_ParisFiller.json",
    "content": "{\n    \"NonZeroValue_CALL_ToEmpty_Paris\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"balance\" : \"11\"\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x01\",\n\t\t                    \"0x64\" : \"31435\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [0](GAS) [[1]] (CALL 60000 <eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 1 0 0 0 0) [[100]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stNonZeroCallsTest/NonZeroValue_CALL_ToNonNonZeroBalanceFiller.json",
    "content": "{\n    \"NonZeroValue_CALL_ToNonNonZeroBalance\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [   \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"balance\" : \"100\"\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x64\" : \"0x2d0f\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [0](GAS) [[1]] (CALL 60000 <eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 1 0 0 0 0) [[100]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"100\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stNonZeroCallsTest/NonZeroValue_CALL_ToOneStorageKey_ParisFiller.json",
    "content": "{\n    \"NonZeroValue_CALL_ToOneStorageKey_Paris\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"balance\" : \"11\",\n    \t\t\t        \"storage\" : {\n    \t\t\t            \"0x00\" : \"0x01\"\n\t\t                }\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x01\",\n\t\t                    \"0x64\" : \"31435\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [0](GAS) [[1]] (CALL 60000 <eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 1 0 0 0 0) [[100]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n        \t\t    \"0x00\" : \"0x01\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stNonZeroCallsTest/NonZeroValue_DELEGATECALLFiller.json",
    "content": "{\n    \"NonZeroValue_DELEGATECALL\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x01\",\n\t\t                    \"0x64\" : \"0x609c\"\n\t\t                }\n\t\t            },\n\t\t            \"0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"shouldnotexist\" : \"1\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [0](GAS) [[1]] (DELEGATECALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[100]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stNonZeroCallsTest/NonZeroValue_DELEGATECALL_ToEmpty_ParisFiller.json",
    "content": "{\n    \"NonZeroValue_DELEGATECALL_ToEmpty_Paris\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n\t\t            \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"balance\" : \"10\",\n\t\t                \"code\" : \"0x\",\n\t\t                \"nonce\" : \"0\",\n\t\t                \"storage\" : {\n\t\t                }\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x01\",\n\t\t                    \"0x64\" : \"0x609c\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [0](GAS) [[1]] (DELEGATECALL 60000 <eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0) [[100]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stNonZeroCallsTest/NonZeroValue_DELEGATECALL_ToNonNonZeroBalanceFiller.json",
    "content": "{\n    \"NonZeroValue_DELEGATECALL_ToNonNonZeroBalance\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"balance\" : \"100\"\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n                            \"0x01\" : \"0x01\",\n\t\t                    \"0x64\" : \"0x609c\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [0](GAS) [[1]] (DELEGATECALL 60000 <eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0) [[100]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"100\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stNonZeroCallsTest/NonZeroValue_DELEGATECALL_ToOneStorageKey_ParisFiller.json",
    "content": "{\n    \"NonZeroValue_DELEGATECALL_ToOneStorageKey_Paris\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n\t\t            \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"balance\" : \"10\",\n    \t\t\t        \"storage\" : {\n\t\t                    \"0x00\" : \"0x01\"\n\t\t                }\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x01\",\n\t\t                    \"0x64\" : \"0x609c\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [0](GAS) [[1]] (DELEGATECALL 60000 <eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0) [[100]] (SUB @0 (GAS)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"\",\n\t\t        \"storage\": {\n\t\t            \"0x00\" : \"0x01\"\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stNonZeroCallsTest/NonZeroValue_SUICIDEFiller.json",
    "content": "{\n    \"NonZeroValue_SUICIDE\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"balance\" : \"0\",\n\t\t                \"nonce\" : \"0\",\n                        \"code\" : \"0x73c94f5374fce5edbc8e2a8697c15331677e6ebf0bff00\",\n                        \"storage\" : {}\n\t\t            },\n\t\t            \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"balance\" : \"1\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (SELFDESTRUCT 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stNonZeroCallsTest/NonZeroValue_SUICIDE_ToEmpty_ParisFiller.json",
    "content": "{\n    \"NonZeroValue_SUICIDE_ToEmpty_Paris\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"balance\" : \"0\",\n\t\t                \"nonce\" : \"0\",\n                        \"code\" : \"0x73<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>ff00\",\n                        \"storage\" : {}\n\t\t            },\n\t\t            \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"balance\" : \"11\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (SELFDESTRUCT <eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stNonZeroCallsTest/NonZeroValue_SUICIDE_ToNonNonZeroBalanceFiller.json",
    "content": "{\n    \"NonZeroValue_SUICIDE_ToNonNonZeroBalance\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"balance\" : \"0\",\n\t\t                \"nonce\" : \"0\",\n                        \"code\" : \"0x73<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>ff00\",\n                        \"storage\" : {}\n\t\t            },\n\t\t            \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"balance\" : \"101\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (SELFDESTRUCT <eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"100\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stNonZeroCallsTest/NonZeroValue_SUICIDE_ToOneStorageKey_ParisFiller.json",
    "content": "{\n    \"NonZeroValue_SUICIDE_ToOneStorageKey_Paris\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"nonce\" : \"0\",\n                        \"balance\" : \"0\",\n                        \"code\" : \"0x73<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>ff00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n\t\t            },\n\t\t            \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"balance\" : \"11\",\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x01\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (SELFDESTRUCT <eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>) }\",\n\t\t        \"storage\": {\n\t\t            \"0x00\" : \"0x01\"\n\t\t        }\n            },\n    \t    \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"\",\n\t\t        \"storage\": {\n\t\t            \"0x00\" : \"0x01\"\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stNonZeroCallsTest/NonZeroValue_TransactionCALLFiller.json",
    "content": "{\n    \"NonZeroValue_TransactionCALL\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t        \"balance\" : \"0x01\",\n\t\t                \"storage\" : {\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stNonZeroCallsTest/NonZeroValue_TransactionCALL_ToEmpty_ParisFiller.json",
    "content": "{\n    \"NonZeroValue_TransactionCALL_ToEmpty_Paris\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"balance\" : \"11\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<eoa:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<eoa:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stNonZeroCallsTest/NonZeroValue_TransactionCALL_ToNonNonZeroBalanceFiller.json",
    "content": "{\n    \"NonZeroValue_TransactionCALL_ToNonNonZeroBalance\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"balance\" : \"101\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<eoa:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"100\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<eoa:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stNonZeroCallsTest/NonZeroValue_TransactionCALL_ToOneStorageKey_ParisFiller.json",
    "content": "{\n    \"NonZeroValue_TransactionCALL_ToOneStorageKey_Paris\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n\t\t            \"<eoa:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"balance\" : \"11\",\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x01\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<eoa:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n        \t\t    \"0x00\" : \"0x01\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<eoa:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stNonZeroCallsTest/NonZeroValue_TransactionCALLwithDataFiller.json",
    "content": "{\n    \"NonZeroValue_TransactionCALLwithData\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t        \"balance\" : \"0x01\",\n\t\t                \"storage\" : {\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x1122334455667788991011121314151617181920\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stNonZeroCallsTest/NonZeroValue_TransactionCALLwithData_ToEmpty_ParisFiller.json",
    "content": "{\n    \"NonZeroValue_TransactionCALLwithData_ToEmpty_Paris\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n\t\t            \"<eoa:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"balance\" : \"11\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<eoa:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x1122334455667788991011121314151617181920\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<eoa:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stNonZeroCallsTest/NonZeroValue_TransactionCALLwithData_ToNonNonZeroBalanceFiller.json",
    "content": "{\n    \"NonZeroValue_TransactionCALLwithData_ToNonNonZeroBalance\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"balance\" : \"101\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<eoa:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"100\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x1122334455667788991011121314151617181920\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<eoa:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stNonZeroCallsTest/NonZeroValue_TransactionCALLwithData_ToOneStorageKey_ParisFiller.json",
    "content": "{\n    \"NonZeroValue_TransactionCALLwithData_ToOneStorageKey_Paris\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n\t\t            \"<eoa:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"balance\" : \"11\",\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x01\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<eoa:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n        \t\t    \"0x00\" : \"0x01\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x1122334455667788991011121314151617181920\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<eoa:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stNonZeroCallsTest/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts/modexpFiller.json",
    "content": "{\n    \"modexp\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : [0,6,7],\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : [29],\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : [1,5,8,9,10,12,13,15,18,19,20,21,22,23,24,30],\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : [2,28],\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : [31],\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n            \t\t\t    \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x0100000000000000000000000000000000\"\n                        }\n                    }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : [32],\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n            \t\t\t    \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x010000000000000000000000000000000000000000\"\n                        }\n                    }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : [33],\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n            \t\t\t    \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x010000000000000000000000000000000000000000000000000000\"\n                        }\n                    }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : [34],\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n            \t\t\t    \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x0100000000000000000000000000000000000000\"\n                        }\n                    }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : [35],\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n            \t\t\t    \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x010000000000000000000000000000\"\n                        }\n                    }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : [3,4],\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n            \t\t\t    \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x3b01b01ac41f2d6e917c6d6a221ce793802469026d9ab7578fa2e79e4da6aaab\"\n                        }\n                    }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : [11, 14, 25, 26],\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n            \t\t\t    \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x0100000000000000000000000000000000000000000000000000000000000000\"\n                        }\n                    }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : [16,27],\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n            \t\t\t    \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x02000000000000000000000000000000000000000000000000000000000000\"\n                        }\n                    }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : [17],\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n            \t\t\t    \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x0200000000000000000000000000000000000000000000000000000000000000\"\n                        }\n                    }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : [36, 37],\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n            \t\t\t    \"0x01\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n\t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ (CALLDATACOPY 0 0 (CALLDATASIZE)) [[1]] (CALLCODE (GAS) 5 0 0 (CALLDATASIZE) 1000 32) [[2]](MLOAD 1000) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n\t    \"// data\" : [\n\t\t\"(BASE**EXPONENT) % MODULUS\",\n\t\t\"0 - example: 3**(2**256 - 2**32 - 978) % (2**256 - 2**32 - 977).\",\n\t\t\"1 - Would be parsed as a base of 0, exponent of 2**256 - 2**32 - 978 and modulus of 2**256 - 2**32 - 978, and so would return 0. Notice how if the length_of_BASE is 0, then it does not interpret any data as the base, instead immediately interpreting the next 32 bytes as length_of_EXPONENT.\",\n\t\t\"2 - Would parse a base length of 0, a modulus length of 32, and an exponent length of 2**256 - 1, where the base is empty, the modulus is 2**256 - 2 and the exponent is (2**256 - 3) * 256**(2**256 - 33) (yes, that's a really big number). It would then immediately fail, as it's not possible to provide enough gas to make that computation.\",\n\t\t\"3 - Would parse as a base of 3, an exponent of 65535, and a modulus of 2**255, and it would ignore the remaining 0x07 byte.\",\n\t\t\"4 - Would also parse as a base of 3, an exponent of 65535 and a modulus of 2**255, as it attempts to grab 32 bytes for the modulus starting from 0x80, but then there is no further data so it right pads it with 31 zeroes.\",\n\t\t\"5 - Missing values\",\n\t\t\"6 - Empty value\",\n\t\t\"7 - 0**0 % 0x80\",\n\t\t\"8 - 0**0 % 0\",\n\t\t\"9 - modlength zero\",\n\t\t\"10 - 0**03 % 04\",\n\t\t\"11 - 02**00 % 04\",\n\t\t\"12 - 02**03 % 00\",\n\t\t\"13 - **03 % 04\",\n\t\t\"14 - 02** % 04\",\n\t\t\"15 - 02**03 % \",\n\t\t\"16 - 02**03 % 06\",\n\t\t\"17 - 02**03 % 0006\",\n\t\t\"18,19,20 - Non-zero length mod, but passed calldata has not enough total length\",\n\t\t\"21,21,22,23 - Non-zero length exp & mod, but passed data has only base and part of exp / only base\",\n\t\t\"24 - Non-zero length base & exp & mod and no values in input data - interpreted as all zeroes\",\n\t\t\"25 - Price calculation when baseLength > modLength\",\n\t\t\"26 - bigint_expmod precompiled contract returns 1 for 0 ^ 0 mod 100\",\n\t\t\"27 - 02 ** 03 % 06, but exp with 256 bytes of zero in front.\",\n\t\t\"28 - base length 4TiB\",\n\t\t\"29 - exp length 4TiB; returns 0 because mod is zero\",\n\t\t\"30 - base and mod have zero-length.  exp's length is 2^255.  Since mod is zero, the result should be zero.\",\n\t\t\"31,32,33,34,35 - something that should result in 1.\",\n\t\t\"36 - the input found on 10 Oct. 2017 that overflows the gas calculation\",\n\t\t\"37 - input found in July 2022, overflows the gas calculation\"\n\t    ],\n            \"data\" : [\n                \":raw 0x00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002003fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2efffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f\",\n                \":raw 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2efffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f\",\n                \":raw 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd\"      ,\n                \":raw 0x00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002003ffff800000000000000000000000000000000000000000000000000000000000000007\",\n                \":raw 0x00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002003ffff80\",\n                \":raw 0x00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002003\",\n                \":raw 0x000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020038000000000000000000000000000000000000000000000000000000000000000\",\n                \":raw 0x000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000080\",\n                \":raw 0x000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000\",\n                \":raw 0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000101\",\n                \":raw 0x000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000304\",\n                \":raw 0x000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001020004\",\n                \":raw 0x000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001020300\",\n                \":raw 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010304\",\n                \":raw 0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010204\",\n                \":raw 0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000203\",\n                \":raw 0x00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000202030006\",\n                \":raw 0x000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001020306\",\n                \":raw 0x000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002020300\",\n                \":raw 0x00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000202030000\",\n                \":raw 0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020203\",\n                \":raw 0x000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002023003\",\n                \":raw 0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020230\",\n                \":raw 0x00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000202\",\n                \":raw 0x000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002\",\n                \":raw 0x000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001001001010010\",\n                \":raw 0x000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000064\",\n                \":raw 0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000010100000000000000000000000000000000000000000000000000000000000000020200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030006\",\n                \":raw 0x00000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000\",\n                \":raw 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000\",\n                \":raw 0x000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n                \":raw 0x000000000000000000000000000000000000000000000000000000000000002100000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010035ee4e488f45e64d2f07becd54646357381d32f30b74c299a8c25d5202c04938ef6c4764a04f10fc908b78c4486886000f6d290251a79681a83b950c7e5c37351\",\n                \":raw 0x0000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000cd935b43e42204fcbfb734a6e27735e8e90204fcc1fd2727bb040f9eecb\",\n                \":raw 0x0000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000060846813a8d2d451387340fa0597c6545ae63\",\n                \":raw 0x0000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000d000000000000000000000000000000000000000000000000000000000000000d02534f82b1013f20d9c7d18d62cd95674d2e013f20d9c7d18d62cd95674d2f\",\n                \":raw 0x0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000120785e45de3d6be050ba3c4d33ff0bb2d010ace3b1dfe9c49f4c7a8075102fa19a86c010ace3b1dfe9c49f4c7a8075102fa19a86d\",\n                \":raw 0x00000000000000000000000000000000000000000000000000000000000000ff2a1e5300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n            \t\":raw 0x0000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000010001\"\n\t    ],\n            \"gasLimit\" : [\n                \"100000000\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts/modexpTestsFiller.yml",
    "content": "# These are tests for precomp 5, modexp \n# (specified in https://github.com/ethereum/EIPs/blob/master/EIPS/eip-198.md)\n#\n# For every case there are two parameters to test:\n# 1. The result\n# 2. The gas cost\n\nmodexpTests:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: \"100000000\"\n    currentNumber: \"1\"\n    currentTimestamp: \"1000\"\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n\n  pre:\n\n    # Test for cases where all three parameters are <2^256. \n    <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n       :yul berlin\n       {\n          // Our input values, 20 bytes each\n          // This is not the most efficient use of gas, but \n          // this is a test. Readability is more important\n          let base := calldataload(0x04)\n          let expV := calldataload(0x24)\n          let modV := calldataload(0x44)\n\n          // Prepare the calldata\n          mstore(0x00, 0x20)\n          mstore(0x20, 0x20)\n          mstore(0x40, 0x20)\n          mstore(0x60, base)\n          mstore(0x80, expV)\n          mstore(0xA0, modV)\n\n          let gas0 := gas()\n          pop(call(gas(), 0x05, 0, 0, 0xC0, 0x100, 0x20))\n          let gas1 := gas()\n          sstore(0, mload(0x100))\n          sstore(1, sub(sub(gas0, gas1), 0x14c))\n       }\n      nonce: 1\n      storage: {}\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: 0x\n      nonce: 1\n      storage: {}\n\n\n  transaction:\n    data: \n    - :label m_n_01 :abi f(uint,uint,uint) 0 0 0\n    - :label m_n_01 :abi f(uint,uint,uint) 0 0 1\n    - :label 0_0_n :abi f(uint,uint,uint) 0 0 2\n    - :label 0_0_n :abi f(uint,uint,uint) 0 0 4\n    - :label 0_0_n :abi f(uint,uint,uint) 0 0 8\n    - :label 0_0_n :abi f(uint,uint,uint) 0 0 0x10\n    - :label 0_0_n :abi f(uint,uint,uint) 0 0 0x20\n    - :label 0_0_n :abi f(uint,uint,uint) 0 0 0x40\n    - :label 0_0_n :abi f(uint,uint,uint) 0 0 100\n    - :label 0_0_n :abi f(uint,uint,uint) 0 0 0x80\n    - :label 0_0_n :abi f(uint,uint,uint) 0 0 0x1001\n    - :label 0_0_n :abi f(uint,uint,uint) 0 0 0x100002\n    - :label 0_0_n :abi f(uint,uint,uint) 0 0 0x10000004\n    - :label 0_0_n :abi f(uint,uint,uint) 0 0 0x1000000008\n    - :label 0_0_n :abi f(uint,uint,uint) 0 0 0xFFFFFFFFFFFF\n    - :label 0_0_n :abi f(uint,uint,uint) 0 0 0xFFFFFFFFFFFFFF\n    - :label 0_0_n :abi f(uint,uint,uint) 0 0 0xFFFFFFFFFFFFFFFF\n    - :label m_n_01 :abi f(uint,uint,uint) 0 1 0\n    - :label m_n_01 :abi f(uint,uint,uint) 0 1 1\n    - :label 0_m_n :abi f(uint,uint,uint) 0 1 2\n    - :label 0_m_n :abi f(uint,uint,uint) 0 1 4\n    - :label 0_m_n :abi f(uint,uint,uint) 0 1 8\n    - :label 0_m_n :abi f(uint,uint,uint) 0 1 0x10\n    - :label 0_m_n :abi f(uint,uint,uint) 0 1 0x20\n    - :label 0_m_n :abi f(uint,uint,uint) 0 1 0x40\n    - :label 0_m_n :abi f(uint,uint,uint) 0 1 100\n    - :label 0_m_n :abi f(uint,uint,uint) 0 1 0x80\n    - :label 0_m_n :abi f(uint,uint,uint) 0 1 0x1001\n    - :label 0_m_n :abi f(uint,uint,uint) 0 1 0x100002\n    - :label 0_m_n :abi f(uint,uint,uint) 0 1 0x10000004\n    - :label 0_m_n :abi f(uint,uint,uint) 0 1 0x1000000008\n    - :label 0_m_n :abi f(uint,uint,uint) 0 1 0xFFFFFFFFFFFF\n    - :label 0_m_n :abi f(uint,uint,uint) 0 1 0xFFFFFFFFFFFFFF\n    - :label 0_m_n :abi f(uint,uint,uint) 0 1 0xFFFFFFFFFFFFFFFF\n    - :label m_n_01 :abi f(uint,uint,uint) 0 2 0\n    - :label m_n_01 :abi f(uint,uint,uint) 0 2 1\n    - :label 0_m_n :abi f(uint,uint,uint) 0 2 2\n    - :label 0_m_n :abi f(uint,uint,uint) 0 3 2\n    - :label 0_m_n :abi f(uint,uint,uint) 0 3 4\n    - :label 0_m_n :abi f(uint,uint,uint) 0 3 8\n    - :label 0_m_n :abi f(uint,uint,uint) 0 3 0x10\n    - :label 0_m_n :abi f(uint,uint,uint) 0 3 0x20\n    - :label 0_m_n :abi f(uint,uint,uint) 0 3 0x40\n    - :label 0_m_n :abi f(uint,uint,uint) 0 3 100\n    - :label 0_m_n :abi f(uint,uint,uint) 0 3 0x80\n    - :label 0_m_n :abi f(uint,uint,uint) 0 3 0x1001\n    - :label 0_m_n :abi f(uint,uint,uint) 0 3 0x100002\n    - :label 0_m_n :abi f(uint,uint,uint) 0 3 0x10000004\n    - :label 0_m_n :abi f(uint,uint,uint) 0 3 0x1000000008\n    - :label 0_m_n :abi f(uint,uint,uint) 0 3 0xFFFFFFFFFFFF\n    - :label 0_m_n :abi f(uint,uint,uint) 0 3 0xFFFFFFFFFFFFFF\n    - :label 0_m_n :abi f(uint,uint,uint) 0 3 0xFFFFFFFFFFFFFFFF\n    - :label 0_m_n :abi f(uint,uint,uint) 0 0xFFFFFF 2\n    - :label 0_m_n :abi f(uint,uint,uint) 0 0xFFFFFF 4\n    - :label 0_m_n :abi f(uint,uint,uint) 0 0xFFFFFF 8\n    - :label 0_m_n :abi f(uint,uint,uint) 0 0xFFFFFF 0x10\n    - :label 0_m_n :abi f(uint,uint,uint) 0 0xFFFFFF 0x20\n    - :label 0_m_n :abi f(uint,uint,uint) 0 0xFFFFFF 0x40\n    - :label 0_m_n :abi f(uint,uint,uint) 0 0xFFFFFF 100\n    - :label 0_m_n :abi f(uint,uint,uint) 0 0xFFFFFF 0x80\n    - :label 0_m_n :abi f(uint,uint,uint) 0 0xFFFFFF 0x1001\n    - :label 0_m_n :abi f(uint,uint,uint) 0 0xFFFFFF 0x100002\n    - :label 0_m_n :abi f(uint,uint,uint) 0 0xFFFFFF 0x10000004\n    - :label 0_m_n :abi f(uint,uint,uint) 0 0xFFFFFF 0x1000000008\n    - :label 0_m_n :abi f(uint,uint,uint) 0 0xFFFFFF 0xFFFFFFFFFFFF\n    - :label 0_m_n :abi f(uint,uint,uint) 0 0xFFFFFF 0xFFFFFFFFFFFFFF\n    - :label 0_m_n :abi f(uint,uint,uint) 0 0xFFFFFF 0xFFFFFFFFFFFFFFFF\n    - :label m_n_01 :abi f(uint,uint,uint) 1 0 0\n    - :label m_n_01 :abi f(uint,uint,uint) 1 0 1\n    - :label 1_0_n :abi f(uint,uint,uint) 1 0 2\n    - :label 1_0_n :abi f(uint,uint,uint) 1 0 4\n    - :label 1_0_n :abi f(uint,uint,uint) 1 0 8\n    - :label 1_0_n :abi f(uint,uint,uint) 1 0 0x10\n    - :label 1_0_n :abi f(uint,uint,uint) 1 0 0x20\n    - :label 1_0_n :abi f(uint,uint,uint) 1 0 0x40\n    - :label 1_0_n :abi f(uint,uint,uint) 1 0 100\n    - :label 1_0_n :abi f(uint,uint,uint) 1 0 0x80\n    - :label 1_0_n :abi f(uint,uint,uint) 1 0 0x1001\n    - :label 1_0_n :abi f(uint,uint,uint) 1 0 0x100002\n    - :label 1_0_n :abi f(uint,uint,uint) 1 0 0x10000004\n    - :label 1_0_n :abi f(uint,uint,uint) 1 0 0x1000000008\n    - :label 1_0_n :abi f(uint,uint,uint) 1 0 0xFFFFFFFFFFFF\n    - :label 1_0_n :abi f(uint,uint,uint) 1 0 0xFFFFFFFFFFFFFF\n    - :label 1_0_n :abi f(uint,uint,uint) 1 0 0xFFFFFFFFFFFFFFFF\n    - :label m_n_01 :abi f(uint,uint,uint) 1 1 0\n    - :label m_n_01 :abi f(uint,uint,uint) 1 1 1\n    - :label 1_m_n :abi f(uint,uint,uint) 1 1 2\n    - :label 1_m_n :abi f(uint,uint,uint) 1 1 4\n    - :label 1_m_n :abi f(uint,uint,uint) 1 1 8\n    - :label 1_m_n :abi f(uint,uint,uint) 1 1 0x10\n    - :label 1_m_n :abi f(uint,uint,uint) 1 1 0x20\n    - :label 1_m_n :abi f(uint,uint,uint) 1 1 0x40\n    - :label 1_m_n :abi f(uint,uint,uint) 1 1 100\n    - :label 1_m_n :abi f(uint,uint,uint) 1 1 0x80\n    - :label 1_m_n :abi f(uint,uint,uint) 1 1 0x1001\n    - :label 1_m_n :abi f(uint,uint,uint) 1 1 0x100002\n    - :label 1_m_n :abi f(uint,uint,uint) 1 1 0x10000004\n    - :label 1_m_n :abi f(uint,uint,uint) 1 1 0x1000000008\n    - :label 1_m_n :abi f(uint,uint,uint) 1 1 0xFFFFFFFFFFFF\n    - :label 1_m_n :abi f(uint,uint,uint) 1 1 0xFFFFFFFFFFFFFF\n    - :label 1_m_n :abi f(uint,uint,uint) 1 1 0xFFFFFFFFFFFFFFFF\n    - :label m_n_01 :abi f(uint,uint,uint) 1 2 0\n    - :label m_n_01 :abi f(uint,uint,uint) 1 2 1\n    - :label 1_m_n :abi f(uint,uint,uint) 1 2 2\n    - :label m_n_01 :abi f(uint,uint,uint) 2 0 0\n    - :label m_n_01 :abi f(uint,uint,uint) 2 0 1\n    - :label 2_0_2 :abi f(uint,uint,uint) 2 0 2\n    - :label m_n_01 :abi f(uint,uint,uint) 2 1 0\n    - :label m_n_01 :abi f(uint,uint,uint) 2 1 1\n    - :label 2_n_2 :abi f(uint,uint,uint) 2 1 2\n    - :label m_n_01 :abi f(uint,uint,uint) 2 2 0\n    - :label m_n_01 :abi f(uint,uint,uint) 2 2 1\n    - :label 2_n_2 :abi f(uint,uint,uint) 2 2 2\n    - :label 3_5_100 :abi f(uint,uint,uint) 3 5 100\n    - :label 3_9984_39936 :abi f(uint,uint,uint) 3 9984 39936\n    - :label 3_28948_11579 :abi f(uint,uint,uint) 3 28948 11579\n    - :label 9_37111_37111 :abi f(uint,uint,uint) 9 37111 37111\n    - :label 9_3711_37111 :abi f(uint,uint,uint) 9 3711 37111\n    - :label 49_2401_2401 :abi f(uint,uint,uint) 49 2401 2401 \n    - :label 37120_22411_22000 :abi f(uint,uint,uint) 37120 22411 22000\n    - :label 37120_37111_0 :abi f(uint,uint,uint) 37120 37111 0\n    - :label 37120_37111_1 :abi f(uint,uint,uint) 37120 37111 1\n    - :label 37120_37111_37111 :abi f(uint,uint,uint) 37120 37111 37111\n    - :label 7120_37111_97 :abi f(uint,uint,uint) 7120 37111 97\n    - :label 37120_37111_97 :abi f(uint,uint,uint) 37120 37111 97\n    - :label 39936_1_55201 :abi f(uint,uint,uint) 39936 1 55201\n    - :label 55190_55190_42965 :abi f(uint,uint,uint) 55190 55190 42965\n    gasLimit:\n    - 16777216\n    gasPrice: 10\n    nonce: 1\n    to: <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    value:\n    - 0\n\n  expect:\n    - indexes:\n        data:\n        - :label 0_m_n\n        - :label m_n_01\n        - :label 2_n_2\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun<Osaka'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0: 0x0   # Result\n            1: 0x1   # Gas cost\n\n\n    - indexes:\n        data:\n        - :label 0_0_n\n        - :label 1_0_n\n        - :label 1_m_n\n        - :label 2_0_2\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun<Osaka'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0: 0x1   # Result\n            1: 0x1   # Gas cost\n\n\n\n    - indexes:\n        data:\n        - :label 3_5_100\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun<Osaka'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0: 43     # Result\n            1: 0x1    # Gas cost\n\n\n\n\n    - indexes:\n        data:\n        - :label 3_9984_39936\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun<Osaka'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0: 0x6801 # Result\n            1: 0x1    # Gas cost\n\n\n\n\n\n    - indexes:\n        data:\n        - :label 3_28948_11579\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun<Osaka'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0: 0x1B   # Result\n            1: 0x1    # Gas cost\n\n\n\n    - indexes:\n        data:\n        - :label 9_3711_37111\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun<Osaka'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0: 0x8615 # Result\n            1: 0x1    # Gas cost\n\n\n\n    - indexes:\n        data:\n        - :label 9_37111_37111\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun<Osaka'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0: 0x1C3B # Result\n            1: 0x1    # Gas cost\n\n\n    - indexes:\n        data:\n        - :label 49_2401_2401\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun<Osaka'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0: 0x00   # Result\n            1: 0x1    # Gas cost\n\n\n    - indexes:\n        data:\n        - :label 37120_22411_22000\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun<Osaka'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0: 0x3e80 # Result\n            1: 0x1    # Gas cost\n\n\n    - indexes:\n        data:\n        - :label 37120_37111_0\n        - :label 37120_37111_1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun<Osaka'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0: 0      # Result\n            1: 0x1    # Gas cost\n\n\n\n    - indexes:\n        data:\n        - :label 37120_37111_37111\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun<Osaka'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0: 0x1C3B # Result\n            1: 0x1    # Gas cost\n\n\n    - indexes:\n        data:\n        - :label 7120_37111_97\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun<Osaka'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0: 0x50   # Result\n            1: 0x1    # Gas cost\n\n\n    - indexes:\n        data:\n        - :label 37120_37111_97\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun<Osaka'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0: 0x5F   # Result\n            1: 0x1    # Gas cost\n\n\n    - indexes:\n        data:\n        - :label 39936_1_55201\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun<Osaka'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0: 0x9C00 # Result\n            1: 0x1    # Gas cost\n\n\n    - indexes:\n        data:\n        - :label 55190_55190_42965\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun<Osaka'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0: 0x866A # Result\n            1: 0x1    # Gas cost\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts/precompsEIP2929CancunFiller.yml",
    "content": "# Check which low address contracts (precompiles) are part of the EIP2929\n# access lists. This was the Berlin fork OpenEthereum bug, that they thought\n# 0x00.000a was in the access list and the other clients disagreed (see\n# https://twitter.com/ralexstokes/status/1382750525070868484 and\n# https://twitter.com/ralexstokes/status/1382750938142629889)\n#\n# According to EIP2929 (https://eips.ethereum.org/EIPS/eip-2929#abstract) precompiles\n# are exempt from the opcode cost increases for the first (cold) access, they are\n# always hot.\n#\n# NOTE: This does not apply to sending contracts wei (see below in the definition\n#       of 0xCC..CCC)\n\n\nprecompsEIP2929Cancun:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '0xFF112233445566'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n\n  pre:  \n\n    # Check if the cost of doing various things to an account is the same\n    # cost the first time as the second\n    #\n    # If the account is a precompile it should be, because it should already\n    # be on the EIP2929 access list.\n    #\n    # NOTE: This does not apply to sending contracts wei. If there is no trie for\n    #       a precompile it will have to be created and that costs gas. However,\n    #       in the real world (a.k.a. mainnet) all the accounts up to 0x00...00020\n    #       already have a balance (and therefore a trie) and this issue won't\n    #       happen with them.\n    #\n    # calldataload(0x04) - account number to check\n    # calldataload(0x24) - action:\n    #    0xf100 - CALL\n    #    0xf101 - CALL and send one wei\n    #    0xf102 - CALL and send one byte of input\n    #    0xf103 - CALL with one wei and one byte\n    #    0xf104 - CALL and receive one byte of output\n    #    0xf105 - CALL with one wei and receive one byte\n    #    0xf200 - CALL\n    #    0xf201 - CALL and send one wei\n    #    0xf202 - CALL and send one byte of input\n    #    0xf203 - CALL with one wei and one byte\n    #    0xf204 - CALL and receive one byte of output\n    #    0xf205 - CALL with one wei and receive one byte\n    #    0xf400 - CALL\n    #    0xf401 - CALL and send one wei\n    #    0xf402 - CALL and send one byte of input\n    #    0xf403 - CALL with one wei and one byte\n    #    0xf404 - CALL and receive one byte of output\n    #    0xf405 - CALL with one wei and receive one byte\n    #    0xfa00 - CALL\n    #    0xfa01 - CALL and send one wei\n    #    0xfa02 - CALL and send one byte of input\n    #    0xfa03 - CALL with one wei and one byte\n    #    0xfa04 - CALL and receive one byte of output\n    #    0xfa05 - CALL with one wei and receive one byte\n    #      0x31 - read the balance\n    #      0x3B - get code size\n    #      0x3C - copy code\n    #      0x3F - get the code hash\n    <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n      code: |\n        :yul berlin optimise\n        {\n          let addrTest   := calldataload(0x04)\n          let action     := calldataload(0x24)\n          let gas0, gas1, gas2\n\n          // Not really needed, but otherwise Yul optimizes and \n          // skips operations we need\n          let useless0, useless1\n\n          // Touch the first word of memory here, so it\n          // won't confuse the gas measurement\n          mstore(0x100, 0xDEADBEEF)\n\n          // Access <contract:0x0000000000000000000000000000000000101157> (so it becomes warm and send it wei)\n          pop(call(0x100000, <contract:0x0000000000000000000000000000000000101157>, 1, 0, 0, 0, 0))\n\n          // Switch before measuring, so it won't affect\n          // the gas costs\n          switch action\n          case 0xf100 {\n              gas0 := gas()\n              pop(call(0x100000, addrTest, 0, 0, 0, 0, 0))\n              gas1 := gas()\n              pop(call(0x100000, addrTest, 0, 0, 0, 0, 0))\n              gas2 := gas()\n          }\n          case 0xf101 {\n              gas0 := gas()\n              pop(call(0x100000, addrTest, 1, 0, 0, 0, 0))\n              gas1 := gas()\n              pop(call(0x100000, addrTest, 1, 0, 0, 0, 0))\n              gas2 := gas()\n          }\n          case 0xf102 {\n              gas0 := gas()\n              pop(call(0x100000, addrTest, 0, 0, 1, 0, 0))\n              gas1 := gas()\n              pop(call(0x100000, addrTest, 0, 0, 1, 0, 0))\n              gas2 := gas()\n          }\n          case 0xf103 {\n              gas0 := gas()\n              pop(call(0x100000, addrTest, 1, 0, 1, 0, 0))\n              gas1 := gas()\n              pop(call(0x100000, addrTest, 1, 0, 1, 0, 0))\n              gas2 := gas()\n          }\n          case 0xf104 {\n              gas0 := gas()\n              pop(call(0x100000, addrTest, 0, 0, 0, 0, 1))\n              gas1 := gas()\n              pop(call(0x100000, addrTest, 0, 0, 0, 0, 1))\n              gas2 := gas()\n          }\n          case 0xf105 {\n              gas0 := gas()\n              pop(call(0x100000, addrTest, 1, 0, 0, 0, 1))\n              gas1 := gas()\n              pop(call(0x100000, addrTest, 1, 0, 0, 0, 1))\n              gas2 := gas()\n          }\n          case 0xf200 {\n              gas0 := gas()\n              pop(callcode(0x100000, addrTest, 0, 0, 0, 0, 0))\n              gas1 := gas()\n              pop(callcode(0x100000, addrTest, 0, 0, 0, 0, 0))\n              gas2 := gas()\n          }\n          case 0xf201 {\n              gas0 := gas()\n              pop(callcode(0x100000, addrTest, 1, 0, 0, 0, 0))\n              gas1 := gas()\n              pop(callcode(0x100000, addrTest, 1, 0, 0, 0, 0))\n              gas2 := gas()\n          }\n          case 0xf202 {\n              gas0 := gas()\n              pop(callcode(0x100000, addrTest, 0, 0, 1, 0, 0))\n              gas1 := gas()\n              pop(callcode(0x100000, addrTest, 0, 0, 1, 0, 0))\n              gas2 := gas()\n          }\n          case 0xf203 {\n              gas0 := gas()\n              pop(callcode(0x100000, addrTest, 1, 0, 1, 0, 0))\n              gas1 := gas()\n              pop(callcode(0x100000, addrTest, 1, 0, 1, 0, 0))\n              gas2 := gas()\n          }\n          case 0xf204 {\n              gas0 := gas()\n              pop(callcode(0x100000, addrTest, 0, 0, 0, 0, 1))\n              gas1 := gas()\n              pop(callcode(0x100000, addrTest, 0, 0, 0, 0, 1))\n              gas2 := gas()\n          }\n          case 0xf205 {\n              gas0 := gas()\n              pop(callcode(0x100000, addrTest, 1, 0, 0, 0, 1))\n              gas1 := gas()\n              pop(callcode(0x100000, addrTest, 1, 0, 0, 0, 1))\n              gas2 := gas()\n          }\n          case 0xf400 {\n              gas0 := gas()\n              pop(delegatecall(0x100000, addrTest, 0, 0, 0, 0))\n              gas1 := gas()\n              pop(delegatecall(0x100000, addrTest, 0, 0, 0, 0))\n              gas2 := gas()\n          }\n          case 0xf402 {\n              gas0 := gas()\n              pop(delegatecall(0x100000, addrTest, 0, 1, 0, 0))\n              gas1 := gas()\n              pop(delegatecall(0x100000, addrTest, 0, 1, 0, 0))\n              gas2 := gas()\n          }\n          case 0xf404 {\n              gas0 := gas()\n              pop(delegatecall(0x100000, addrTest, 0, 0, 0, 1))\n              gas1 := gas()\n              pop(delegatecall(0x100000, addrTest, 0, 0, 0, 1))\n              gas2 := gas()\n          }\n          case 0xfa00 {\n              gas0 := gas()\n              pop(staticcall(0x100000, addrTest, 0, 0, 0, 0))\n              gas1 := gas()\n              pop(staticcall(0x100000, addrTest, 0, 0, 0, 0))\n              gas2 := gas()\n          }\n          case 0xfa02 {\n              gas0 := gas()\n              pop(staticcall(0x100000, addrTest, 0, 1, 0, 0))\n              gas1 := gas()\n              pop(staticcall(0x100000, addrTest, 0, 1, 0, 0))\n              gas2 := gas()\n          }\n          case 0xfa04 {\n              gas0 := gas()\n              pop(staticcall(0x100000, addrTest, 0, 0, 0, 1))\n              gas1 := gas()\n              pop(staticcall(0x100000, addrTest, 0, 0, 0, 1))\n              gas2 := gas()\n          }\n\n\n          case 0x31 {\n              gas0 := gas()\n              useless0 := balance(addrTest)\n              gas1 := gas()\n              useless1 := balance(addrTest)\n              gas2 := gas()\n          }\n          case 0x3B {\n              gas0 := gas()\n              useless0 := extcodesize(addrTest)\n              gas1 := gas()\n              useless1 := extcodesize(addrTest)\n              gas2 := gas()\n          }\n          case 0x3C {\n              gas0 := gas()\n              extcodecopy(addrTest,0,0,0x100)\n              gas1 := gas()\n              extcodecopy(addrTest,0,0,0x100)\n              gas2 := gas()\n          }\n          case 0x3F {\n              gas0 := gas()\n              useless0 := extcodehash(addrTest)\n              gas1 := gas()\n              useless1 := extcodehash(addrTest)\n              gas2 := gas()\n          }\n\n          let gasTest1 := sub(gas0, gas1)\n          let gasTest2 := sub(gas1, gas2)\n          \n          sstore(0, eq(gasTest1, gasTest2))\n          sstore(1, sub(gasTest1, gasTest2))\n\n          // Otherwise a Yul optimization throws us off\n          let noOptimization := msize()\n        }  \n      nonce: 1\n      storage:\n        0: 0x60A7\n        1: 0x60A7\n      balance: 0\n\n\n    # Just a normal contract for comparison\n    <contract:0x000000000000000000000000000000000010c0de>:\n      code: |\n        :yul berlin\n        {\n           mstore(0,add(1,2))\n        }  \n      nonce: 1\n      storage: {}\n      balance: 0\n\n\n    # And a contract that has been previously accessed\n    <contract:0x0000000000000000000000000000000000101157>:\n      code: |\n        :yul berlin\n        {\n           mstore(0,add(1,2))\n        }  \n      nonce: 1\n      storage: {}\n      balance: 0\n\n\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: 0x\n      nonce: '0'\n      storage: {}\n\n\n  transaction:\n    data:\n    # The first parameter is the address to call\n    # The second parameter is the action\n    #\n    # :label no   means that the address is cold (either there is nothing there,\n    #             or it exists but hasn't been touched by the txn yet).\n    #\n    # :label yes  means that the address is already warm. As per the EIP, precompiles\n    #             are always warm.\n\n\n    # Empty account (nothing there)\n    - :label no  :abi f(uint,uint) 0x100000 0xf100    # 0\n\n    # Normal contract account\n    - :label no  :abi f(uint,uint) <contract:0x000000000000000000000000000000000010c0de> 0xf100    # 1\n\n    # Account that has already been touched\n    # (we touch it earlier in \n    - :label yes :abi f(uint,uint) <contract:0x0000000000000000000000000000000000101157> 0xf100    # 2\n\n\n\n    # Precompiles\n    - :label yes :abi f(uint,uint) 0x01 0xf100        # 3\n    - :label yes :abi f(uint,uint) 0x02 0xf100        # 4\n    - :label yes :abi f(uint,uint) 0x03 0xf100        # 5\n    - :label yes :abi f(uint,uint) 0x04 0xf100        # 6\n    - :label yes :abi f(uint,uint) 0x05 0xf100        # 7\n    - :label yes :abi f(uint,uint) 0x06 0xf100        # 8\n    - :label yes :abi f(uint,uint) 0x07 0xf100        # 9\n    - :label yes :abi f(uint,uint) 0x08 0xf100        # 10\n    - :label yes :abi f(uint,uint) 0x09 0xf100        # 11\n    - :label yes :abi f(uint,uint) 0x0a 0xf100        # 12\n\n    # Not precompiles (so far)\n\n    - :label yes_from_prague  :abi f(uint,uint) 0x0b 0xf100        # 13\n    - :label yes_from_prague  :abi f(uint,uint) 0x0c 0xf100        # 14\n    - :label yes_from_prague  :abi f(uint,uint) 0x0d 0xf100        # 15\n    - :label yes_from_prague  :abi f(uint,uint) 0x0e 0xf100        # 16\n    - :label yes_from_prague  :abi f(uint,uint) 0x0f 0xf100        # 17\n    - :label yes_from_prague  :abi f(uint,uint) 0x10 0xf100        # 17\n    - :label yes_from_prague  :abi f(uint,uint) 0x11 0xf100        # 17\n    - :label no  :abi f(uint,uint) 0x12 0xf100                     # 17\n\n\n    # When we do send wei there is an extra cost for the first access because it\n    # needs to create the trie for the account. \n    # On a real chain it's possible some precompiles will already have a trie,\n    # once somebody sends wei it gets stuck and unretrievable, but we are running\n    # as part of a highly artificial test blockchain. \n    - :label new :abi f(uint,uint) 0x01 0xf101        # 18\n    - :label new :abi f(uint,uint) 0x02 0xf101        # 19\n    - :label new :abi f(uint,uint) 0x03 0xf101        # 20\n    - :label new :abi f(uint,uint) 0x04 0xf101        # 21\n    - :label new :abi f(uint,uint) 0x05 0xf101        # 22\n    - :label new :abi f(uint,uint) 0x06 0xf101        # 23\n    - :label new :abi f(uint,uint) 0x07 0xf101        # 24\n    - :label new :abi f(uint,uint) 0x08 0xf101        # 25\n    # When the transaction is rejected, no cost for the trie\n    - :label yes :abi f(uint,uint) 0x09 0xf101        # 26\n    - :label yes :abi f(uint,uint) 0x0a 0xf101        # 27\n    - :label all_then_yes_from_prague :abi f(uint,uint) 0x0b 0xf101        # 28\n    - :label all_then_yes_from_prague :abi f(uint,uint) 0x0c 0xf101        # 29\n    - :label all_then_yes_from_prague :abi f(uint,uint) 0x0d 0xf101        # 30\n    - :label all_then_yes_from_prague :abi f(uint,uint) 0x0e 0xf101        # 31\n    - :label all_then_yes_from_prague :abi f(uint,uint) 0x0f 0xf101        # 32\n    - :label all_then_yes_from_prague :abi f(uint,uint) 0x10 0xf101        # 32\n    - :label all_then_yes_from_prague :abi f(uint,uint) 0x11 0xf101        # 32\n    - :label all :abi f(uint,uint) 0x12 0xf101        # 32\n    \n    - :label all :abi f(uint,uint) 0x100000 0xf101    # 33\n    - :label no  :abi f(uint,uint) <contract:0x000000000000000000000000000000000010c0de> 0xf101    # 34\n    - :label yes :abi f(uint,uint) <contract:0x0000000000000000000000000000000000101157> 0xf101    # 35\n\n    # If we send data, it behaves normally (except for #8)\n    - :label yes :abi f(uint,uint) 0x01 0xf102        # 36\n    - :label yes :abi f(uint,uint) 0x02 0xf102        # 37\n    - :label yes :abi f(uint,uint) 0x03 0xf102        # 38\n    - :label yes :abi f(uint,uint) 0x04 0xf102        # 39\n    - :label yes :abi f(uint,uint) 0x05 0xf102        # 40\n    - :label yes :abi f(uint,uint) 0x06 0xf102        # 41\n    - :label yes :abi f(uint,uint) 0x07 0xf102        # 42\n    - :label yes :abi f(uint,uint) 0x08 0xf102        # 43\n    - :label yes :abi f(uint,uint) 0x09 0xf102        # 44\n    - :label yes :abi f(uint,uint) 0x0a 0xf102        # 45\n    - :label yes_from_prague  :abi f(uint,uint) 0x0b 0xf102        # 46\n    - :label yes_from_prague  :abi f(uint,uint) 0x0c 0xf102        # 47\n    - :label yes_from_prague  :abi f(uint,uint) 0x0d 0xf102        # 48\n    - :label yes_from_prague  :abi f(uint,uint) 0x0e 0xf102        # 49\n    - :label yes_from_prague  :abi f(uint,uint) 0x0f 0xf102        # 50\n    - :label yes_from_prague  :abi f(uint,uint) 0x10 0xf102        # 50\n    - :label yes_from_prague  :abi f(uint,uint) 0x11 0xf102        # 50\n    - :label no  :abi f(uint,uint) 0x12 0xf102        # 50\n    \n    - :label no  :abi f(uint,uint) 0x100000 0xf102    # 51\n    - :label no  :abi f(uint,uint) <contract:0x000000000000000000000000000000000010c0de> 0xf102    # 52\n    - :label yes :abi f(uint,uint) <contract:0x0000000000000000000000000000000000101157> 0xf102    # 53\n\n    # If we send wei and data\n    - :label new :abi f(uint,uint) 0x01 0xf103        # 54\n    - :label new :abi f(uint,uint) 0x02 0xf103        # 55\n    - :label new :abi f(uint,uint) 0x03 0xf103        # 56\n    - :label new :abi f(uint,uint) 0x04 0xf103        # 57\n    - :label new :abi f(uint,uint) 0x05 0xf103        # 58\n    - :label new :abi f(uint,uint) 0x06 0xf103        # 59\n    - :label new :abi f(uint,uint) 0x07 0xf103        # 60\n    - :label yes :abi f(uint,uint) 0x08 0xf103        # 61\n    - :label yes :abi f(uint,uint) 0x09 0xf103        # 62\n    - :label yes :abi f(uint,uint) 0x0a 0xf103        # 63\n    - :label all_then_yes_from_prague :abi f(uint,uint) 0x0b 0xf103        # 64\n    - :label all_then_yes_from_prague :abi f(uint,uint) 0x0c 0xf103        # 65\n    - :label all_then_yes_from_prague :abi f(uint,uint) 0x0d 0xf103        # 66\n    - :label all_then_yes_from_prague :abi f(uint,uint) 0x0e 0xf103        # 67\n    - :label all_then_yes_from_prague :abi f(uint,uint) 0x0f 0xf103        # 68\n    - :label all_then_yes_from_prague :abi f(uint,uint) 0x10 0xf103        # 68\n    - :label all_then_yes_from_prague :abi f(uint,uint) 0x11 0xf103        # 68\n    - :label all :abi f(uint,uint) 0x12 0xf103        # 68\n        \n    - :label all :abi f(uint,uint) 0x100000 0xf103    # 69\n    - :label no  :abi f(uint,uint) <contract:0x000000000000000000000000000000000010c0de> 0xf103    # 70\n    - :label yes :abi f(uint,uint) <contract:0x0000000000000000000000000000000000101157> 0xf103    # 71\n\n\n    # If we receive data, it behaves normally\n    - :label yes :abi f(uint,uint) 0x01 0xf104        # 72\n    - :label yes :abi f(uint,uint) 0x02 0xf104        # 73\n    - :label yes :abi f(uint,uint) 0x03 0xf104        # 74\n    - :label yes :abi f(uint,uint) 0x04 0xf104        # 75\n    - :label yes :abi f(uint,uint) 0x05 0xf104        # 76\n    - :label yes :abi f(uint,uint) 0x06 0xf104        # 77\n    - :label yes :abi f(uint,uint) 0x07 0xf104        # 78\n    - :label yes :abi f(uint,uint) 0x08 0xf104        # 79\n    - :label yes :abi f(uint,uint) 0x09 0xf104        # 80\n    - :label yes :abi f(uint,uint) 0x0a 0xf104        # 81\n    - :label yes_from_prague  :abi f(uint,uint) 0x0b 0xf104        # 82\n    - :label yes_from_prague  :abi f(uint,uint) 0x0c 0xf104        # 83\n    - :label yes_from_prague  :abi f(uint,uint) 0x0d 0xf104        # 84\n    - :label yes_from_prague  :abi f(uint,uint) 0x0e 0xf104        # 85\n    - :label yes_from_prague  :abi f(uint,uint) 0x0f 0xf104        # 86\n    - :label yes_from_prague  :abi f(uint,uint) 0x10 0xf104        # 86\n    - :label yes_from_prague  :abi f(uint,uint) 0x11 0xf104        # 86\n    - :label no  :abi f(uint,uint) 0x12 0xf104        # 86\n    \n    - :label no  :abi f(uint,uint) 0x100000 0xf104    # 87\n    - :label no  :abi f(uint,uint) <contract:0x000000000000000000000000000000000010c0de> 0xf104    # 88\n    - :label yes :abi f(uint,uint) <contract:0x0000000000000000000000000000000000101157> 0xf104    # 89\n\n    # If we send wei and receive data\n    - :label new :abi f(uint,uint) 0x01 0xf105        # 90\n    - :label new :abi f(uint,uint) 0x02 0xf105        # 91\n    - :label new :abi f(uint,uint) 0x03 0xf105        # 92\n    - :label new :abi f(uint,uint) 0x04 0xf105        # 93\n    - :label new :abi f(uint,uint) 0x05 0xf105        # 94\n    - :label new :abi f(uint,uint) 0x06 0xf105        # 95\n    - :label new :abi f(uint,uint) 0x07 0xf105        # 96\n    - :label new :abi f(uint,uint) 0x08 0xf105        # 97\n    - :label yes :abi f(uint,uint) 0x09 0xf105        # 98\n    - :label yes :abi f(uint,uint) 0x0a 0xf105        # 99\n    - :label all_then_yes_from_prague :abi f(uint,uint) 0x0b 0xf105        # 100\n    - :label all_then_yes_from_prague :abi f(uint,uint) 0x0c 0xf105        # 101\n    - :label all_then_yes_from_prague :abi f(uint,uint) 0x0d 0xf105        # 102\n    - :label all_then_yes_from_prague :abi f(uint,uint) 0x0e 0xf105        # 103\n    - :label all_then_yes_from_prague :abi f(uint,uint) 0x0f 0xf105        # 104\n    - :label all_then_yes_from_prague :abi f(uint,uint) 0x10 0xf105        # 104\n    - :label all_then_yes_from_prague :abi f(uint,uint) 0x11 0xf105        # 104\n    - :label all :abi f(uint,uint) 0x12 0xf105        # 104\n    \n    - :label all :abi f(uint,uint) 0x100000 0xf105    # 105\n    - :label no  :abi f(uint,uint) <contract:0x000000000000000000000000000000000010c0de> 0xf105    # 106\n    - :label yes :abi f(uint,uint) <contract:0x0000000000000000000000000000000000101157> 0xf105    # 107\n\n    # CALLCODE\n    - :label yes :abi f(uint,uint) 0x01 0xf200        # 108\n    - :label yes :abi f(uint,uint) 0x02 0xf200        # 109\n    - :label yes :abi f(uint,uint) 0x03 0xf200        # 110\n    - :label yes :abi f(uint,uint) 0x04 0xf200        # 111\n    - :label yes :abi f(uint,uint) 0x05 0xf200        # 112\n    - :label yes :abi f(uint,uint) 0x06 0xf200        # 113\n    - :label yes :abi f(uint,uint) 0x07 0xf200        # 114\n    - :label yes :abi f(uint,uint) 0x08 0xf200        # 115\n    - :label yes :abi f(uint,uint) 0x09 0xf200        # 116\n    - :label yes :abi f(uint,uint) 0x0a 0xf200        # 117\n    - :label yes_from_prague  :abi f(uint,uint) 0x0b 0xf200        # 118\n    - :label yes_from_prague  :abi f(uint,uint) 0x0c 0xf200        # 119\n    - :label yes_from_prague  :abi f(uint,uint) 0x0d 0xf200        # 120\n    - :label yes_from_prague  :abi f(uint,uint) 0x0e 0xf200        # 121\n    - :label yes_from_prague  :abi f(uint,uint) 0x0f 0xf200        # 122\n    - :label yes_from_prague  :abi f(uint,uint) 0x10 0xf200        # 122\n    - :label yes_from_prague  :abi f(uint,uint) 0x11 0xf200        # 122\n    - :label no  :abi f(uint,uint) 0x12 0xf200        # 122\n    \n    - :label no  :abi f(uint,uint) 0x100000 0xf200    # 123\n    - :label no  :abi f(uint,uint) <contract:0x000000000000000000000000000000000010c0de> 0xf200    # 124\n    - :label yes :abi f(uint,uint) <contract:0x0000000000000000000000000000000000101157> 0xf200    # 125\n\n    # With DELEGATECALL the second call doesn't cost more\n    - :label yes :abi f(uint,uint) 0x01 0xf201        # 126\n    - :label yes :abi f(uint,uint) 0x02 0xf201        # 127\n    - :label yes :abi f(uint,uint) 0x03 0xf201        # 128\n    - :label yes :abi f(uint,uint) 0x04 0xf201        # 129\n    - :label yes :abi f(uint,uint) 0x05 0xf201        # 130\n    - :label yes :abi f(uint,uint) 0x06 0xf201        # 131\n    - :label yes :abi f(uint,uint) 0x07 0xf201        # 132\n    - :label yes :abi f(uint,uint) 0x08 0xf201        # 133\n    - :label yes :abi f(uint,uint) 0x09 0xf201        # 134\n    - :label yes :abi f(uint,uint) 0x0a 0xf201        # 135\n    - :label yes_from_prague  :abi f(uint,uint) 0x0b 0xf201        # 136\n    - :label yes_from_prague  :abi f(uint,uint) 0x0c 0xf201        # 137\n    - :label yes_from_prague  :abi f(uint,uint) 0x0d 0xf201        # 138\n    - :label yes_from_prague  :abi f(uint,uint) 0x0e 0xf201        # 139\n    - :label yes_from_prague  :abi f(uint,uint) 0x0f 0xf201        # 140\n    - :label yes_from_prague  :abi f(uint,uint) 0x10 0xf201        # 140\n    - :label yes_from_prague  :abi f(uint,uint) 0x11 0xf201        # 140\n    - :label no  :abi f(uint,uint) 0x12 0xf201        # 140\n    \n    - :label no  :abi f(uint,uint) 0x100000 0xf201    # 141\n    - :label no  :abi f(uint,uint) <contract:0x000000000000000000000000000000000010c0de> 0xf201    # 142\n    - :label yes :abi f(uint,uint) <contract:0x0000000000000000000000000000000000101157> 0xf201    # 143\n\n    # If we send data, it behaves normally\n    - :label yes :abi f(uint,uint) 0x01 0xf202        # 144\n    - :label yes :abi f(uint,uint) 0x02 0xf202        # 145\n    - :label yes :abi f(uint,uint) 0x03 0xf202        # 146\n    - :label yes :abi f(uint,uint) 0x04 0xf202        # 147\n    - :label yes :abi f(uint,uint) 0x05 0xf202        # 148\n    - :label yes :abi f(uint,uint) 0x06 0xf202        # 149\n    - :label yes :abi f(uint,uint) 0x07 0xf202        # 150\n    - :label yes :abi f(uint,uint) 0x08 0xf202        # 151\n    - :label yes :abi f(uint,uint) 0x09 0xf202        # 152\n    - :label yes :abi f(uint,uint) 0x0a 0xf202        # 153\n    - :label yes_from_prague  :abi f(uint,uint) 0x0b 0xf202        # 154\n    - :label yes_from_prague  :abi f(uint,uint) 0x0c 0xf202        # 155\n    - :label yes_from_prague  :abi f(uint,uint) 0x0d 0xf202        # 156\n    - :label yes_from_prague  :abi f(uint,uint) 0x0e 0xf202        # 157\n    - :label yes_from_prague  :abi f(uint,uint) 0x0f 0xf202        # 158\n    - :label yes_from_prague  :abi f(uint,uint) 0x10 0xf202        # 158\n    - :label yes_from_prague  :abi f(uint,uint) 0x11 0xf202        # 158\n    - :label no  :abi f(uint,uint) 0x12 0xf202        # 158\n    \n    - :label no  :abi f(uint,uint) 0x100000 0xf202    # 159\n    - :label no  :abi f(uint,uint) <contract:0x000000000000000000000000000000000010c0de> 0xf202    # 160\n    - :label yes :abi f(uint,uint) <contract:0x0000000000000000000000000000000000101157> 0xf202    # 161\n\n    # If we send wei and data\n    - :label yes :abi f(uint,uint) 0x01 0xf203        # 162\n    - :label yes :abi f(uint,uint) 0x02 0xf203        # 163\n    - :label yes :abi f(uint,uint) 0x03 0xf203        # 164\n    - :label yes :abi f(uint,uint) 0x04 0xf203        # 165\n    - :label yes :abi f(uint,uint) 0x05 0xf203        # 166\n    - :label yes :abi f(uint,uint) 0x06 0xf203        # 167\n    - :label yes :abi f(uint,uint) 0x07 0xf203        # 168\n    - :label yes :abi f(uint,uint) 0x08 0xf203        # 169\n    - :label yes :abi f(uint,uint) 0x09 0xf203        # 170\n    - :label yes :abi f(uint,uint) 0x0a 0xf203        # 171\n    - :label yes_from_prague  :abi f(uint,uint) 0x0b 0xf203        # 172\n    - :label yes_from_prague  :abi f(uint,uint) 0x0c 0xf203        # 173\n    - :label yes_from_prague  :abi f(uint,uint) 0x0d 0xf203        # 174\n    - :label yes_from_prague  :abi f(uint,uint) 0x0e 0xf203        # 175\n    - :label yes_from_prague  :abi f(uint,uint) 0x0f 0xf203        # 176\n    - :label yes_from_prague  :abi f(uint,uint) 0x10 0xf203        # 176\n    - :label yes_from_prague  :abi f(uint,uint) 0x11 0xf203        # 176\n    - :label no  :abi f(uint,uint) 0x12 0xf203        # 176\n    \n    - :label no  :abi f(uint,uint) 0x100000 0xf203    # 177\n    - :label no  :abi f(uint,uint) <contract:0x000000000000000000000000000000000010c0de> 0xf203    # 178\n    - :label yes :abi f(uint,uint) <contract:0x0000000000000000000000000000000000101157> 0xf203    # 179\n\n\n    # If we receive data, it behaves normally\n    - :label yes :abi f(uint,uint) 0x01 0xf204        # 180\n    - :label yes :abi f(uint,uint) 0x02 0xf204        # 181\n    - :label yes :abi f(uint,uint) 0x03 0xf204        # 182\n    - :label yes :abi f(uint,uint) 0x04 0xf204        # 183\n    - :label yes :abi f(uint,uint) 0x05 0xf204        # 184\n    - :label yes :abi f(uint,uint) 0x06 0xf204        # 185\n    - :label yes :abi f(uint,uint) 0x07 0xf204        # 186\n    - :label yes :abi f(uint,uint) 0x08 0xf204        # 187\n    - :label yes :abi f(uint,uint) 0x09 0xf204        # 188\n    - :label yes :abi f(uint,uint) 0x0a 0xf204        # 189\n    - :label yes_from_prague  :abi f(uint,uint) 0x0b 0xf204        # 190\n    - :label yes_from_prague  :abi f(uint,uint) 0x0c 0xf204        # 191\n    - :label yes_from_prague  :abi f(uint,uint) 0x0d 0xf204        # 192\n    - :label yes_from_prague  :abi f(uint,uint) 0x0e 0xf204        # 193\n    - :label yes_from_prague  :abi f(uint,uint) 0x0f 0xf204        # 194\n    - :label yes_from_prague  :abi f(uint,uint) 0x10 0xf204        # 194\n    - :label yes_from_prague  :abi f(uint,uint) 0x11 0xf204        # 194\n    - :label no  :abi f(uint,uint) 0x12 0xf204        # 194\n    \n    - :label no  :abi f(uint,uint) 0x100000 0xf204    # 195\n    - :label no  :abi f(uint,uint) <contract:0x000000000000000000000000000000000010c0de> 0xf204    # 196\n    - :label yes :abi f(uint,uint) <contract:0x0000000000000000000000000000000000101157> 0xf204    # 197\n\n    # If we send wei and receive data\n    - :label yes :abi f(uint,uint) 0x01 0xf205        # 198\n    - :label yes :abi f(uint,uint) 0x02 0xf205        # 199\n    - :label yes :abi f(uint,uint) 0x03 0xf205        # 200\n    - :label yes :abi f(uint,uint) 0x04 0xf205        # 201\n    - :label yes :abi f(uint,uint) 0x05 0xf205        # 202\n    - :label yes :abi f(uint,uint) 0x06 0xf205        # 203\n    - :label yes :abi f(uint,uint) 0x07 0xf205        # 204\n    - :label yes :abi f(uint,uint) 0x08 0xf205        # 205\n    - :label yes :abi f(uint,uint) 0x09 0xf205        # 206\n    - :label yes :abi f(uint,uint) 0x0a 0xf205        # 207\n    - :label yes_from_prague  :abi f(uint,uint) 0x0b 0xf205        # 208\n    - :label yes_from_prague  :abi f(uint,uint) 0x0c 0xf205        # 209\n    - :label yes_from_prague  :abi f(uint,uint) 0x0d 0xf205        # 210\n    - :label yes_from_prague  :abi f(uint,uint) 0x0e 0xf205        # 211\n    - :label yes_from_prague  :abi f(uint,uint) 0x0f 0xf205        # 212\n    - :label yes_from_prague  :abi f(uint,uint) 0x10 0xf205        # 212\n    - :label yes_from_prague  :abi f(uint,uint) 0x11 0xf205        # 212\n    - :label no  :abi f(uint,uint) 0x12 0xf205        # 212\n    \n    - :label no  :abi f(uint,uint) 0x100000 0xf205    # 213\n    - :label no  :abi f(uint,uint) <contract:0x000000000000000000000000000000000010c0de> 0xf205    # 214\n    - :label yes :abi f(uint,uint) <contract:0x0000000000000000000000000000000000101157> 0xf205    # 215\n\n    # DELEGATECALL\n    - :label yes :abi f(uint,uint) 0x01 0xf400        # 216\n    - :label yes :abi f(uint,uint) 0x02 0xf400        # 217\n    - :label yes :abi f(uint,uint) 0x03 0xf400        # 218\n    - :label yes :abi f(uint,uint) 0x04 0xf400        # 219\n    - :label yes :abi f(uint,uint) 0x05 0xf400        # 220\n    - :label yes :abi f(uint,uint) 0x06 0xf400        # 221\n    - :label yes :abi f(uint,uint) 0x07 0xf400        # 222\n    - :label yes :abi f(uint,uint) 0x08 0xf400        # 223\n    - :label yes :abi f(uint,uint) 0x09 0xf400        # 224\n    - :label yes :abi f(uint,uint) 0x0a 0xf400        # 225\n    - :label yes_from_prague  :abi f(uint,uint) 0x0b 0xf400        # 226\n    - :label yes_from_prague  :abi f(uint,uint) 0x0c 0xf400        # 227\n    - :label yes_from_prague  :abi f(uint,uint) 0x0d 0xf400        # 228\n    - :label yes_from_prague  :abi f(uint,uint) 0x0e 0xf400        # 229\n    - :label yes_from_prague  :abi f(uint,uint) 0x0f 0xf400        # 230\n    - :label yes_from_prague  :abi f(uint,uint) 0x10 0xf400        # 230\n    - :label yes_from_prague  :abi f(uint,uint) 0x11 0xf400        # 230\n    - :label no  :abi f(uint,uint) 0x12 0xf400        # 230\n    \n    - :label no  :abi f(uint,uint) 0x100000 0xf400    # 231\n    - :label no  :abi f(uint,uint) <contract:0x000000000000000000000000000000000010c0de> 0xf400    # 232\n    - :label yes :abi f(uint,uint) <contract:0x0000000000000000000000000000000000101157> 0xf400    # 233\n\n    # If we send data, it behaves normally\n    - :label yes :abi f(uint,uint) 0x01 0xf402        # 234\n    - :label yes :abi f(uint,uint) 0x02 0xf402        # 235\n    - :label yes :abi f(uint,uint) 0x03 0xf402        # 236\n    - :label yes :abi f(uint,uint) 0x04 0xf402        # 237\n    - :label yes :abi f(uint,uint) 0x05 0xf402        # 238\n    - :label yes :abi f(uint,uint) 0x06 0xf402        # 239\n    - :label yes :abi f(uint,uint) 0x07 0xf402        # 240\n    - :label yes :abi f(uint,uint) 0x08 0xf402        # 241\n    - :label yes :abi f(uint,uint) 0x09 0xf402        # 242\n    - :label yes :abi f(uint,uint) 0x0a 0xf402        # 243\n    - :label yes_from_prague  :abi f(uint,uint) 0x0b 0xf402        # 244\n    - :label yes_from_prague  :abi f(uint,uint) 0x0c 0xf402        # 245\n    - :label yes_from_prague  :abi f(uint,uint) 0x0d 0xf402        # 246\n    - :label yes_from_prague  :abi f(uint,uint) 0x0e 0xf402        # 247\n    - :label yes_from_prague  :abi f(uint,uint) 0x0f 0xf402        # 248\n    - :label yes_from_prague  :abi f(uint,uint) 0x10 0xf402        # 248\n    - :label yes_from_prague  :abi f(uint,uint) 0x11 0xf402        # 248\n    - :label no  :abi f(uint,uint) 0x12 0xf402        # 248\n    \n    - :label no  :abi f(uint,uint) 0x100000 0xf402    # 249\n    - :label no  :abi f(uint,uint) <contract:0x000000000000000000000000000000000010c0de> 0xf402    # 250\n    - :label yes :abi f(uint,uint) <contract:0x0000000000000000000000000000000000101157> 0xf402    # 251\n\n\n    # If we receive data, it behaves normally\n    - :label yes :abi f(uint,uint) 0x01 0xf404        # 252\n    - :label yes :abi f(uint,uint) 0x02 0xf404        # 253\n    - :label yes :abi f(uint,uint) 0x03 0xf404        # 254\n    - :label yes :abi f(uint,uint) 0x04 0xf404        # 255\n    - :label yes :abi f(uint,uint) 0x05 0xf404        # 256\n    - :label yes :abi f(uint,uint) 0x06 0xf404        # 257\n    - :label yes :abi f(uint,uint) 0x07 0xf404        # 258\n    - :label yes :abi f(uint,uint) 0x08 0xf404        # 259\n    - :label yes :abi f(uint,uint) 0x09 0xf404        # 260\n    - :label yes :abi f(uint,uint) 0x0a 0xf404        # 261\n    - :label yes_from_prague  :abi f(uint,uint) 0x0b 0xf404        # 262\n    - :label yes_from_prague  :abi f(uint,uint) 0x0c 0xf404        # 263\n    - :label yes_from_prague  :abi f(uint,uint) 0x0d 0xf404        # 264\n    - :label yes_from_prague  :abi f(uint,uint) 0x0e 0xf404        # 265\n    - :label yes_from_prague  :abi f(uint,uint) 0x0f 0xf404        # 266\n    - :label yes_from_prague  :abi f(uint,uint) 0x10 0xf404        # 266\n    - :label yes_from_prague  :abi f(uint,uint) 0x11 0xf404        # 266\n    - :label no  :abi f(uint,uint) 0x12 0xf404        # 266\n    \n    - :label no  :abi f(uint,uint) 0x100000 0xf404    # 267\n    - :label no  :abi f(uint,uint) <contract:0x000000000000000000000000000000000010c0de> 0xf404    # 268\n    - :label yes :abi f(uint,uint) <contract:0x0000000000000000000000000000000000101157> 0xf404    # 269\n\n    # STATICCALL\n    - :label yes :abi f(uint,uint) 0x01 0xfa00        # 270\n    - :label yes :abi f(uint,uint) 0x02 0xfa00        # 271\n    - :label yes :abi f(uint,uint) 0x03 0xfa00        # 272\n    - :label yes :abi f(uint,uint) 0x04 0xfa00        # 273\n    - :label yes :abi f(uint,uint) 0x05 0xfa00        # 274\n    - :label yes :abi f(uint,uint) 0x06 0xfa00        # 275\n    - :label yes :abi f(uint,uint) 0x07 0xfa00        # 276\n    - :label yes :abi f(uint,uint) 0x08 0xfa00        # 277\n    - :label yes :abi f(uint,uint) 0x09 0xfa00        # 278\n    - :label yes :abi f(uint,uint) 0x0a 0xfa00        # 279\n    - :label yes_from_prague  :abi f(uint,uint) 0x0b 0xfa00        # 280\n    - :label yes_from_prague  :abi f(uint,uint) 0x0c 0xfa00        # 281\n    - :label yes_from_prague  :abi f(uint,uint) 0x0d 0xfa00        # 282\n    - :label yes_from_prague  :abi f(uint,uint) 0x0e 0xfa00        # 283\n    - :label yes_from_prague  :abi f(uint,uint) 0x0f 0xfa00        # 284\n    - :label yes_from_prague  :abi f(uint,uint) 0x10 0xfa00        # 284\n    - :label yes_from_prague  :abi f(uint,uint) 0x11 0xfa00        # 284\n    - :label no  :abi f(uint,uint) 0x12 0xfa00        # 284\n    \n    - :label no  :abi f(uint,uint) 0x100000 0xfa00    # 285\n    - :label no  :abi f(uint,uint) <contract:0x000000000000000000000000000000000010c0de> 0xfa00    # 286\n    - :label yes :abi f(uint,uint) <contract:0x0000000000000000000000000000000000101157> 0xfa00    # 287\n\n    # If we send data, it behaves normally\n    - :label yes :abi f(uint,uint) 0x01 0xfa02        # 288\n    - :label yes :abi f(uint,uint) 0x02 0xfa02        # 289\n    - :label yes :abi f(uint,uint) 0x03 0xfa02        # 290\n    - :label yes :abi f(uint,uint) 0x04 0xfa02        # 291\n    - :label yes :abi f(uint,uint) 0x05 0xfa02        # 292\n    - :label yes :abi f(uint,uint) 0x06 0xfa02        # 293\n    - :label yes :abi f(uint,uint) 0x07 0xfa02        # 294\n    - :label yes :abi f(uint,uint) 0x08 0xfa02        # 295\n    - :label yes :abi f(uint,uint) 0x09 0xfa02        # 296\n    - :label yes :abi f(uint,uint) 0x0a 0xfa02        # 297\n    - :label yes_from_prague  :abi f(uint,uint) 0x0b 0xfa02        # 298\n    - :label yes_from_prague  :abi f(uint,uint) 0x0c 0xfa02        # 299\n    - :label yes_from_prague  :abi f(uint,uint) 0x0d 0xfa02        # 300\n    - :label yes_from_prague  :abi f(uint,uint) 0x0e 0xfa02        # 301\n    - :label yes_from_prague  :abi f(uint,uint) 0x0f 0xfa02        # 302\n    - :label yes_from_prague  :abi f(uint,uint) 0x10 0xfa02        # 302\n    - :label yes_from_prague  :abi f(uint,uint) 0x11 0xfa02        # 302\n    - :label no  :abi f(uint,uint) 0x12 0xfa02        # 302\n    \n    - :label no  :abi f(uint,uint) 0x100000 0xfa02    # 303\n    - :label no  :abi f(uint,uint) <contract:0x000000000000000000000000000000000010c0de> 0xfa02    # 304\n    - :label yes :abi f(uint,uint) <contract:0x0000000000000000000000000000000000101157> 0xfa02    # 305\n\n\n    # If we receive data, it behaves normally\n    - :label yes :abi f(uint,uint) 0x01 0xfa04        # 306\n    - :label yes :abi f(uint,uint) 0x02 0xfa04        # 307\n    - :label yes :abi f(uint,uint) 0x03 0xfa04        # 308\n    - :label yes :abi f(uint,uint) 0x04 0xfa04        # 309\n    - :label yes :abi f(uint,uint) 0x05 0xfa04        # 310\n    - :label yes :abi f(uint,uint) 0x06 0xfa04        # 311\n    - :label yes :abi f(uint,uint) 0x07 0xfa04        # 312\n    - :label yes :abi f(uint,uint) 0x08 0xfa04        # 313\n    - :label yes :abi f(uint,uint) 0x09 0xfa04        # 314\n    - :label yes :abi f(uint,uint) 0x0a 0xfa04        # 315\n    - :label yes_from_prague  :abi f(uint,uint) 0x0b 0xfa04        # 316\n    - :label yes_from_prague  :abi f(uint,uint) 0x0c 0xfa04        # 317\n    - :label yes_from_prague  :abi f(uint,uint) 0x0d 0xfa04        # 318\n    - :label yes_from_prague  :abi f(uint,uint) 0x0e 0xfa04        # 319\n    - :label yes_from_prague  :abi f(uint,uint) 0x0f 0xfa04        # 320\n    - :label yes_from_prague  :abi f(uint,uint) 0x10 0xfa04        # 320\n    - :label yes_from_prague  :abi f(uint,uint) 0x11 0xfa04        # 320\n    - :label no  :abi f(uint,uint) 0x12 0xfa04        # 320\n    \n    - :label no  :abi f(uint,uint) 0x100000 0xfa04    # 321\n    - :label no  :abi f(uint,uint) <contract:0x000000000000000000000000000000000010c0de> 0xfa04    # 322\n    - :label yes :abi f(uint,uint) <contract:0x0000000000000000000000000000000000101157> 0xfa04    # 323\n\n\n\n    # Get the account balance\n    - :label yes :abi f(uint,uint) 0x01 0x31          # 324\n    - :label yes :abi f(uint,uint) 0x02 0x31          # 325\n    - :label yes :abi f(uint,uint) 0x03 0x31          # 326\n    - :label yes :abi f(uint,uint) 0x04 0x31          # 327\n    - :label yes :abi f(uint,uint) 0x05 0x31          # 328\n    - :label yes :abi f(uint,uint) 0x06 0x31          # 329\n    - :label yes :abi f(uint,uint) 0x07 0x31          # 330\n    - :label yes :abi f(uint,uint) 0x08 0x31          # 331\n    - :label yes :abi f(uint,uint) 0x09 0x31          # 332\n    - :label yes :abi f(uint,uint) 0x0a 0x31          # 333\n    - :label yes_from_prague  :abi f(uint,uint) 0x0b 0x31          # 334\n    - :label yes_from_prague  :abi f(uint,uint) 0x0c 0x31          # 335\n    - :label yes_from_prague  :abi f(uint,uint) 0x0d 0x31          # 336\n    - :label yes_from_prague  :abi f(uint,uint) 0x0e 0x31          # 337\n    - :label yes_from_prague  :abi f(uint,uint) 0x0f 0x31          # 338\n    - :label yes_from_prague  :abi f(uint,uint) 0x10 0x31          # 338\n    - :label yes_from_prague  :abi f(uint,uint) 0x11 0x31          # 338\n    - :label no  :abi f(uint,uint) 0x12 0x31          # 338\n    \n    - :label no  :abi f(uint,uint) 0x100000 0x31      # 339\n    - :label no  :abi f(uint,uint) <contract:0x000000000000000000000000000000000010c0de> 0x31      # 340\n    - :label yes :abi f(uint,uint) <contract:0x0000000000000000000000000000000000101157> 0x31      # 341\n\n    # Get the account codehash\n    - :label yes :abi f(uint,uint) 0x01 0x3f          # 342\n    - :label yes :abi f(uint,uint) 0x02 0x3f          # 343\n    - :label yes :abi f(uint,uint) 0x03 0x3f          # 344\n    - :label yes :abi f(uint,uint) 0x04 0x3f          # 345\n    - :label yes :abi f(uint,uint) 0x05 0x3f          # 346\n    - :label yes :abi f(uint,uint) 0x06 0x3f          # 347\n    - :label yes :abi f(uint,uint) 0x07 0x3f          # 348\n    - :label yes :abi f(uint,uint) 0x08 0x3f          # 349\n    - :label yes :abi f(uint,uint) 0x09 0x3f          # 350\n    - :label yes :abi f(uint,uint) 0x0a 0x3f          # 351\n    - :label yes_from_prague  :abi f(uint,uint) 0x0b 0x3f          # 352\n    - :label yes_from_prague  :abi f(uint,uint) 0x0c 0x3f          # 353\n    - :label yes_from_prague  :abi f(uint,uint) 0x0d 0x3f          # 354\n    - :label yes_from_prague  :abi f(uint,uint) 0x0e 0x3f          # 355\n    - :label yes_from_prague  :abi f(uint,uint) 0x0f 0x3f          # 356\n    - :label yes_from_prague  :abi f(uint,uint) 0x10 0x3f          # 356\n    - :label yes_from_prague  :abi f(uint,uint) 0x11 0x3f          # 356\n    - :label no  :abi f(uint,uint) 0x12 0x3f          # 356\n    \n    - :label no  :abi f(uint,uint) 0x100000 0x3f      # 357\n    - :label no  :abi f(uint,uint) <contract:0x000000000000000000000000000000000010c0de> 0x3f      # 358\n    - :label yes :abi f(uint,uint) <contract:0x0000000000000000000000000000000000101157> 0x3f      # 359\n\n    # Copy account code\n    - :label yes :abi f(uint,uint) 0x01 0x3c          # 360\n    - :label yes :abi f(uint,uint) 0x02 0x3c          # 361\n    - :label yes :abi f(uint,uint) 0x03 0x3c          # 362\n    - :label yes :abi f(uint,uint) 0x04 0x3c          # 363\n    - :label yes :abi f(uint,uint) 0x05 0x3c          # 364\n    - :label yes :abi f(uint,uint) 0x06 0x3c          # 365\n    - :label yes :abi f(uint,uint) 0x07 0x3c          # 366\n    - :label yes :abi f(uint,uint) 0x08 0x3c          # 367\n    - :label yes :abi f(uint,uint) 0x09 0x3c          # 368\n    - :label yes :abi f(uint,uint) 0x0a 0x3c          # 369\n    - :label yes_from_prague  :abi f(uint,uint) 0x0b 0x3c          # 370\n    - :label yes_from_prague  :abi f(uint,uint) 0x0c 0x3c          # 371\n    - :label yes_from_prague  :abi f(uint,uint) 0x0d 0x3c          # 372\n    - :label yes_from_prague  :abi f(uint,uint) 0x0e 0x3c          # 373\n    - :label yes_from_prague  :abi f(uint,uint) 0x0f 0x3c          # 374\n    - :label yes_from_prague  :abi f(uint,uint) 0x10 0x3c          # 374\n    - :label yes_from_prague  :abi f(uint,uint) 0x11 0x3c          # 374\n    - :label no  :abi f(uint,uint) 0x12 0x3c          # 374\n    \n    - :label no  :abi f(uint,uint) 0x100000 0x3c      # 375\n    - :label no  :abi f(uint,uint) <contract:0x000000000000000000000000000000000010c0de> 0x3c      # 376\n    - :label yes :abi f(uint,uint) <contract:0x0000000000000000000000000000000000101157> 0x3c      # 377\n\n    # Get code size\n    - :label yes :abi f(uint,uint) 0x01 0x3b          # 378\n    - :label yes :abi f(uint,uint) 0x02 0x3b          # 379\n    - :label yes :abi f(uint,uint) 0x03 0x3b          # 380\n    - :label yes :abi f(uint,uint) 0x04 0x3b          # 381\n    - :label yes :abi f(uint,uint) 0x05 0x3b          # 382\n    - :label yes :abi f(uint,uint) 0x06 0x3b          # 383\n    - :label yes :abi f(uint,uint) 0x07 0x3b          # 384\n    - :label yes :abi f(uint,uint) 0x08 0x3b          # 385\n    - :label yes :abi f(uint,uint) 0x09 0x3b          # 386\n    - :label yes :abi f(uint,uint) 0x0a 0x3b          # 387\n    - :label yes_from_prague  :abi f(uint,uint) 0x0b 0x3b          # 388\n    - :label yes_from_prague  :abi f(uint,uint) 0x0c 0x3b          # 389\n    - :label yes_from_prague  :abi f(uint,uint) 0x0d 0x3b          # 390\n    - :label yes_from_prague  :abi f(uint,uint) 0x0e 0x3b          # 391\n    - :label yes_from_prague  :abi f(uint,uint) 0x0f 0x3b          # 392\n    - :label yes_from_prague  :abi f(uint,uint) 0x10 0x3b          # 392\n    - :label yes_from_prague  :abi f(uint,uint) 0x11 0x3b          # 392\n    - :label no  :abi f(uint,uint) 0x12 0x3b          # 392\n    \n    - :label no  :abi f(uint,uint) 0x100000 0x3b      # 393\n    - :label no  :abi f(uint,uint) <contract:0x000000000000000000000000000000000010c0de> 0x3b      # 394\n    - :label yes :abi f(uint,uint) <contract:0x0000000000000000000000000000000000101157> 0x3b      # 395\n\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>\n\n    value:\n    - '100000'\n\n\n\n  expect:\n\n  - indexes:\n      data: \n      - :label yes\n    network: \n    - \">=Cancun\"\n    result:\n      <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n        storage:\n          # If this is a precompile (or previously accessed acct.), we\n          # expect to always have the same gas cost\n          0x00: 0x01\n          0x01: 0x00\n  - indexes:\n      data: \n      - :label yes_from_prague\n      - :label all_then_yes_from_prague\n    network: \n    - \">=Prague\"\n    result:\n      <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n        storage:\n          # If this is a precompile (or previously accessed acct.), we\n          # expect to always have the same gas cost\n          0x00: 0x01\n          0x01: 0x00\n\n\n\n  # The EIP 2929 cost for a new account reference\n  - indexes:\n      data: \n      - :label no\n    network: \n    - \">=Cancun\"\n    result:\n      <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n        storage:\n          # If this isn't a precompile, we expect the second call to it to cost\n          # less than the first\n          0x00: 0x0000\n          0x01: 0x09c4\n  - indexes:\n      data: \n      - :label yes_from_prague\n    network: \n    - \"Cancun\"\n    result:\n      <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n        storage:\n          # If this isn't a precompile, we expect the second call to it to cost\n          # less than the first\n          0x00: 0x0000\n          0x01: 0x09c4\n\n\n  # The cost for a new trie\n  - indexes:\n      data: \n      - :label new\n    network: \n    - \">=Cancun\"\n    result:\n      <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n        storage:\n          # If we need to create a new trie, that's a different cost\n          # than the EIP 2929 one.\n          0x00: 0x0000\n          0x01: 0x61a8\n\n\n  # The cost for a new reference AND a new trie\n  - indexes:\n      data: \n      - :label all\n    network: \n    - \">=Cancun\"\n    result:\n      <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n        storage:\n          # If we need to create a new trie, that's a different cost\n          # than the EIP 2929 one.\n          0x00: 0x0000\n          0x01: 0x6b6c\n  - indexes:\n      data: \n      - :label all_then_yes_from_prague\n    network: \n    - \"Cancun\"\n    result:\n      <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n        storage:\n          # If we need to create a new trie, that's a different cost\n          # than the EIP 2929 one.\n          0x00: 0x0000\n          0x01: 0x6b6c\n\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts/sec80Filler.json",
    "content": "{\n    \"sec80\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xc001f00d\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \":raw 0x601b565b6000555b005b630badf00d6003565b63c001f00d6003565b7319e7e376e7c213b7e7e7e46cc70a5dd086daff2a7f22ae6da6b482f9b1b19b0b897c3fd43884180a1c5ee361e1107a1bc635649dda600052601b603f537f16433dce375ce6dc8151d3f0a22728bc4a1d9fd6ed39dfd18b4609331937367f6040527f306964c0cf5d74f04129fdc60b54d35b596dde1bf89ad92cb4123318f4c0e40060605260206080607f60006000600161fffff21560075760805114601257600956\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CALLCODEEcrecover0Filler.json",
    "content": "{\n    \"CALLCODEEcrecover0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALLCODE 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0))  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3652240\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CALLCODEEcrecover0_0inputFiller.json",
    "content": "{\n    \"CALLCODEEcrecover0_0input\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ [[ 2 ]] (CALLCODE 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3652240\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CALLCODEEcrecover0_Gas2999Filler.json",
    "content": "{\n    \"CALLCODEEcrecover0_Gas2999\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALLCODE 2999 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0))  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CALLCODEEcrecover0_NoGasFiller.json",
    "content": "{\n    \"CALLCODEEcrecover0_NoGas\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t        {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun\"],\n                \"result\" : {\n        \t\t    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {}\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALLCODE 0 1 1 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0))  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"12\",\n                    \"0x01\" : \"12\",\n                    \"0x02\" : \"12\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CALLCODEEcrecover0_completeReturnValueFiller.json",
    "content": "{\n    \"CALLCODEEcrecover0_completeReturnValue\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALLCODE 3000 1 0 0 128 128 32) [[ 0 ]] (MLOAD 128) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CALLCODEEcrecover0_gas3000Filler.json",
    "content": "{\n    \"CALLCODEEcrecover0_gas3000\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALLCODE 3000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0))  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CALLCODEEcrecover0_overlappingInputOutputFiller.json",
    "content": "{\n    \"CALLCODEEcrecover0_overlappingInputOutput\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALLCODE 300000 1 0 0 128 64 32) [[ 0 ]] (MOD (MLOAD 64) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0))  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CALLCODEEcrecover1Filler.json",
    "content": "{\n    \"CALLCODEEcrecover1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 1) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALLCODE 100000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0))  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CALLCODEEcrecover2Filler.json",
    "content": "{\n    \"CALLCODEEcrecover2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 33 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 65 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALLCODE 100000 1 0 0 97 97 32) [[ 0 ]] (MOD (MLOAD 97) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0))  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CALLCODEEcrecover3Filler.json",
    "content": "{\n    \"CALLCODEEcrecover3\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xe4319f4b631c6d0fcfc84045dbcb676865fe5e13\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x2f380a2dea7e778d81affc2443403b8fe4644db442ae4862ff5bb3732829cdb9) (MSTORE 32 27) (MSTORE 64 0x6b65ccb0558806e9b097f27a396d08f964e37b8b7af6ceeb516ff86739fbea0a) (MSTORE 96 0x37cbc8d883e129a4b1ef9d5f1df53c4f21a3ef147cf2a50a4ede0eb06ce092d4) [[ 2 ]] (CALLCODE 100000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0))  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CALLCODEEcrecover80Filler.json",
    "content": "{\n    \"CALLCODEEcrecover80\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x00c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x00b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0x00b940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALLCODE 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0))  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3652240\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CALLCODEEcrecoverH_prefixed0Filler.json",
    "content": "{\n    \"CALLCODEEcrecoverH_prefixed0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xa0b29af6a56d6cfef6415cb195ccbe540e006d0a\",\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x00c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALLCODE 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0))  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3652240\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CALLCODEEcrecoverR_prefixed0Filler.json",
    "content": "{\n    \"CALLCODEEcrecoverR_prefixed0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x00b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALLCODE 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0))  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3652240\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CALLCODEEcrecoverS_prefixed0Filler.json",
    "content": "{\n    \"CALLCODEEcrecoverS_prefixed0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xb4950a7fad428434b11c357fa6d4b4bcd3096a5d\",\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0x00b940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALLCODE 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0))  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3652240\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CALLCODEEcrecoverV_prefixed0Filler.json",
    "content": "{\n    \"CALLCODEEcrecoverV_prefixed0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 0x001c) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALLCODE 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0))  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3652240\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CALLCODEEcrecoverV_prefixedf0Filler.json",
    "content": "{\n    \"CALLCODEEcrecoverV_prefixedf0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 (CALLDATALOAD 0)) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALLCODE 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0))  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000000000000000000000000000000000000000f01c\", \n\t\t        \":raw 0x00000000000000000000000000000000f000000000000000000000000000001c\"\n            ],\n            \"gasLimit\" : [\n                \"3652240\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CALLCODERipemd160_0Filler.json",
    "content": "{\n    \"CALLCODERipemd160_0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"0x600160005260206000602060006000600360fff2600051600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CALLCODERipemd160_1Filler.json",
    "content": "{\n    \"CALLCODERipemd160_1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x9c1185a5c5e9fc54612808977ee8f548b2258d31\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ [[ 2 ]] (CALLCODE 600 3 0 0 0 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CALLCODERipemd160_2Filler.json",
    "content": "{\n    \"CALLCODERipemd160_2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xdbc100f916bfbc53535573d98cf0cbb3a5b36124\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 5 0xf34578907f) [[ 2 ]] (CALLCODE 6000 3 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CALLCODERipemd160_3Filler.json",
    "content": "{\n    \"CALLCODERipemd160_3\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x316750573f9be26bc17727b47cacedbd0ab3e6ca\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0xf34578907f) [[ 2 ]] (CALLCODE 6000 3 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CALLCODERipemd160_3_postfixed0Filler.json",
    "content": "{\n    \"CALLCODERipemd160_3_postfixed0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x7730b4642169b0f16752696da8da830a4b429c9d\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0xf34578907f00) [[ 2 ]] (CALLCODE 6000 3 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CALLCODERipemd160_3_prefixed0Filler.json",
    "content": "{\n    \"CALLCODERipemd160_3_prefixed0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x316750573f9be26bc17727b47cacedbd0ab3e6ca\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x00f34578907f) [[ 2 ]] (CALLCODE 6000 3 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CALLCODERipemd160_4Filler.json",
    "content": "{\n    \"CALLCODERipemd160_4\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x1cf4e77f5966e13e109703cd8a0df7ceda7f3dc3\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (CALLCODE 720 3 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CALLCODERipemd160_4_gas719Filler.json",
    "content": "{\n    \"CALLCODERipemd160_4_gas719\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (CALLCODE 719 3 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CALLCODERipemd160_5Filler.json",
    "content": "{\n    \"CALLCODERipemd160_5\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (CALLCODE 6000 3 0 0 1000000 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CALLCODESha256_0Filler.json",
    "content": "{\n    \"CALLCODESha256_0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xec4916dd28fc4c10d78e287ca5d9cc51ee1ae73cbfde08c6b37324cbfaac8bc5\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"0x600160005260206000602060006000600260fff2600051600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CALLCODESha256_1Filler.json",
    "content": "{\n    \"CALLCODESha256_1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ [[ 2 ]] (CALLCODE 500 2 0 0 0 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CALLCODESha256_1_nonzeroValueFiller.json",
    "content": "{\n    \"CALLCODESha256_1_nonzeroValue\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"200000000\",\n                \"code\" : \"{ [[ 2 ]] (CALLCODE 200000 2 0x13 0 0 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CALLCODESha256_2Filler.json",
    "content": "{\n    \"CALLCODESha256_2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xcb39b3bde22925b2f931111130c774761d8895e0e08437c9b396c1e97d10f34d\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 5 0xf34578907f) [[ 2 ]] (CALLCODE 500 2 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CALLCODESha256_3Filler.json",
    "content": "{\n    \"CALLCODESha256_3\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x7392925565d67be8e9620aacbcfaecd8cb6ec58d709d25da9eccf1d08a41ce35\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0xf34578907f) [[ 2 ]] (CALLCODE 500 2 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CALLCODESha256_3_postfix0Filler.json",
    "content": "{\n    \"CALLCODESha256_3_postfix0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x3b745a1c00d035c334f358d007a430e4cf0ae63aa0556fb05529706de546464d\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0xf34578907f00) [[ 2 ]] (CALLCODE 500 2 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CALLCODESha256_3_prefix0Filler.json",
    "content": "{\n    \"CALLCODESha256_3_prefix0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x7392925565d67be8e9620aacbcfaecd8cb6ec58d709d25da9eccf1d08a41ce35\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x00f34578907f) [[ 2 ]] (CALLCODE 500 2 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CALLCODESha256_4Filler.json",
    "content": "{\n    \"CALLCODESha256_4\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xaf9613760f72635fbdb44a5a0a63c39f12af30f950a6ee5c971be188e89c4051\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (CALLCODE 100 2 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CALLCODESha256_4_gas99Filler.json",
    "content": "{\n    \"CALLCODESha256_4_gas99\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xaf9613760f72635fbdb44a5a0a63c39f12af30f950a6ee5c971be188e89c4051\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (CALLCODE 99 2 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CALLCODESha256_5Filler.json",
    "content": "{\n    \"CALLCODESha256_5\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (CALLCODE 600 2 0 0 1000000 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CallEcrecover0Filler.json",
    "content": "{\n    \"CallEcrecover0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALL 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0))  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3652240\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CallEcrecover0_0inputFiller.json",
    "content": "{\n    \"CallEcrecover0_0input\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ [[ 2 ]] (CALL 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3652240\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CallEcrecover0_Gas2999Filler.json",
    "content": "{\n    \"CallEcrecover0_Gas2999\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALL 2999 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0))  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CallEcrecover0_NoGasFiller.json",
    "content": "{\n    \"CallEcrecover0_NoGas\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t        {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALL 0 1 1 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0))  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"12\",\n                    \"0x01\" : \"12\",\n                    \"0x02\" : \"12\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CallEcrecover0_completeReturnValueFiller.json",
    "content": "{\n    \"CallEcrecover0_completeReturnValue\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALL 3000 1 0 0 128 128 32) [[ 0 ]] (MLOAD 128) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CallEcrecover0_gas3000Filler.json",
    "content": "{\n    \"CallEcrecover0_gas3000\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALL 3000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0))  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CallEcrecover0_overlappingInputOutputFiller.json",
    "content": "{\n    \"CallEcrecover0_overlappingInputOutput\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALL 300000 1 0 0 128 64 32) [[ 0 ]] (MOD (MLOAD 64) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0))  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CallEcrecover1Filler.json",
    "content": "{\n    \"CallEcrecover1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 1) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALL 100000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0))  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CallEcrecover2Filler.json",
    "content": "{\n    \"CallEcrecover2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 33 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 65 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALL 100000 1 0 0 97 97 32) [[ 0 ]] (MOD (MLOAD 97) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0))  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CallEcrecover3Filler.json",
    "content": "{\n    \"CallEcrecover3\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xe4319f4b631c6d0fcfc84045dbcb676865fe5e13\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x2f380a2dea7e778d81affc2443403b8fe4644db442ae4862ff5bb3732829cdb9) (MSTORE 32 27) (MSTORE 64 0x6b65ccb0558806e9b097f27a396d08f964e37b8b7af6ceeb516ff86739fbea0a) (MSTORE 96 0x37cbc8d883e129a4b1ef9d5f1df53c4f21a3ef147cf2a50a4ede0eb06ce092d4) [[ 2 ]] (CALL 100000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0))  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CallEcrecover80Filler.json",
    "content": "{\n    \"CallEcrecover80\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x00c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x00b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0x00b940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALL 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0))  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3652240\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CallEcrecoverCheckLengthFiller.json",
    "content": "{\n    \"CallEcrecoverCheckLength\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x01\" : \"0xa0\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 128 0x1122334455667788990011223344556677889900112233445566778899001122) (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALL 300000 1 0 0 128 128 32) [[ 0 ]] (MLOAD 128) [[ 1 ]] (MSIZE) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3652240\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CallEcrecoverCheckLengthWrongVFiller.json",
    "content": "{\n    \"CallEcrecoverCheckLengthWrongV\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x1122334455667788990011223344556677889900112233445566778899001122\",\n                            \"0x01\" : \"0xa0\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 128 0x1122334455667788990011223344556677889900112233445566778899001122) (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 29) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALL 300000 1 0 0 128 128 32) [[ 0 ]] (MLOAD 128) [[ 1 ]] (MSIZE) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3652240\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CallEcrecoverH_prefixed0Filler.json",
    "content": "{\n    \"CallEcrecoverH_prefixed0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xa0b29af6a56d6cfef6415cb195ccbe540e006d0a\",\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x00c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALL 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0))  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3652240\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CallEcrecoverInvalidSignatureFiller.json",
    "content": "{\n    \"CallEcrecoverInvalidSignature\" : {\n        \"_info\" : {\n            \"comment\": \"CALL to ECREC precompile with input which is a completely invalid signature and a 32 byte output range in memory. ECREC should return an empty response and the 32 byte output range should be left unchanged.\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x1122334455667788991011121314151617181920212223242526272829303132\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 128 0x1122334455667788991011121314151617181920212223242526272829303132) (CALL 300000 1 0 0 128 128 32) [[ 0 ]] (MLOAD 128) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3652240\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CallEcrecoverR_prefixed0Filler.json",
    "content": "{\n    \"CallEcrecoverR_prefixed0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x00b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALL 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0))  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3652240\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CallEcrecoverS_prefixed0Filler.json",
    "content": "{\n    \"CallEcrecoverS_prefixed0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xb4950a7fad428434b11c357fa6d4b4bcd3096a5d\",\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0x00b940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALL 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0))  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3652240\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CallEcrecoverUnrecoverableKeyFiller.json",
    "content": "{\n    \"CallEcrecoverUnrecoverableKey\" : {\n        \"_info\" : {\n            \"comment\": \"CALL to ECREC precompile with input that has a valid signature structure but that does not recover a valid key. Specifies a 32 byte output range in memory. ECREC should return an empty response and the 32 byte output range should be left unchanged.\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x1122334455667788991011121314151617181920212223242526272829303132\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0xa8b53bdf3306a35a7103ab5504a0c9b492295564b6202b1942a84ef300107281) (MSTORE 32 0x000000000000000000000000000000000000000000000000000000000000001b) (MSTORE 64 0x3078356531653033663533636531386237373263636230303933666637316633) (MSTORE 96 0x6635336635633735623734646362333161383561613862383839326234653862) (MSTORE 128 0x1122334455667788991011121314151617181920212223242526272829303132) (CALL 300000 1 0 0 128 128 32) (SSTORE 0 (MLOAD 128)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3652240\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CallEcrecoverV_prefixed0Filler.json",
    "content": "{\n    \"CallEcrecoverV_prefixed0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 0x001c) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALL 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0))  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3652240\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CallEcrecover_OverflowFiller.yml",
    "content": "# Test limit RS values for EC Recover precompile (R, S == secp256k1n)\n# secp256k1n == 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141\n\nCallEcrecover_Overflow:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '0xFF112233445566'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n\n  pre:  \n\n\n    <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n      code: |\n        :yul berlin\n        {\n         // Copy Hash, V, R, S values\n         calldatacopy(0x00, 0x04, 0x80)\n\n         // Call the EC Recover Precompile\n         sstore(0, call(3000, 1, 0, 0, 0x80, 0x80, 0x20))\n         sstore(1, mload(0x80))\n        }  \n      nonce: '0'\n      storage: {}\n      balance: 0\n\n\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: 0x\n      nonce: '0'\n      storage: {}\n\n\n  transaction:\n    data:\n    # R Overflow == secp256k1N\n    - :label fail     :abi f(uint,uint,uint,uint) 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c 0x1c 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141 0x1fffd310ac743f371de3b9f7f9cb56c0b28ad43601b4ab949f53faa07bd2c804\n    # R Overflow == secp256k1N + 1\n    - :label fail     :abi f(uint,uint,uint,uint) 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c 0x1c 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364142 0x1fffd310ac743f371de3b9f7f9cb56c0b28ad43601b4ab949f53faa07bd2c804\n    # R High == secp256k1N - 1 (Fails due to R not being able to be a point on the curve, not due to the secp256k1N limit)\n    - :label fail     :abi f(uint,uint,uint,uint) 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c 0x1c 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364140 0xefffd310ac743f371de3b9f7f9cb56c0b28ad43601b4ab949f53faa07bd2c804\n    # R High == secp256k1N - 2\n    - :label pass01   :abi f(uint,uint,uint,uint) 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c 0x1c 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd036413f 0xefffd310ac743f371de3b9f7f9cb56c0b28ad43601b4ab949f53faa07bd2c804\n    # S Overflow == secp256k1N\n    - :label fail     :abi f(uint,uint,uint,uint) 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c 0x1c 0x48b55bfa915ac795c431978d8a6a992b628d557da5ff759b307d495a36649353 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141\n    # S Overflow == secp256k1N + 1\n    - :label fail     :abi f(uint,uint,uint,uint) 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c 0x1c 0x48b55bfa915ac795c431978d8a6a992b628d557da5ff759b307d495a36649353 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364142\n    # S High == secp256k1N - 1\n    - :label pass02   :abi f(uint,uint,uint,uint) 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c 0x1c 0x48b55bfa915ac795c431978d8a6a992b628d557da5ff759b307d495a36649353 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364140\n    # S High == secp256k1N - 2\n    - :label pass03   :abi f(uint,uint,uint,uint) 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c 0x1c 0x48b55bfa915ac795c431978d8a6a992b628d557da5ff759b307d495a36649353 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd036413f\n\n    gasLimit:\n    - '0x186a0'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>\n\n    value:\n    - '100000'\n\n\n\n  expect:\n\n  - indexes:\n      data: \n      - :label fail\n      gas: !!int -1\n      value: !!int -1\n    network: \n    - \">=Cancun\"\n    result:\n      <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n        storage:\n          0x00: 0x01\n          0x01: 0x00\n\n  - indexes:\n      data: \n      - :label pass01\n      gas: !!int -1\n      value: !!int -1\n    network: \n    - \">=Cancun\"\n    result:\n      <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n        storage:\n          0x00: 0x01\n          0x01: 0x2182da748249a933bf737586b80212df19b8f829\n\n  - indexes:\n      data: \n      - :label pass02\n      gas: !!int -1\n      value: !!int -1\n    network: \n    - \">=Cancun\"\n    result:\n      <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n        storage:\n          0x00: 0x01\n          0x01: 0x1b85ac3c9b09de43659c5d04a2d9c75457d9abf4\n\n  - indexes:\n      data: \n      - :label pass03\n      gas: !!int -1\n      value: !!int -1\n    network: \n    - \">=Cancun\"\n    result:\n      <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n        storage:\n          0x00: 0x01\n          0x01: 0xd0277c8a3eccd462a313fc60161bac36b16e8699\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CallRipemd160_0Filler.json",
    "content": "{\n    \"CallRipemd160_0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"0x600160005260206000602060006000600360fff1600051600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CallRipemd160_1Filler.json",
    "content": "{\n    \"CallRipemd160_1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x9c1185a5c5e9fc54612808977ee8f548b2258d31\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ [[ 2 ]] (CALL 600 3 0 0 0 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CallRipemd160_2Filler.json",
    "content": "{\n    \"CallRipemd160_2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xdbc100f916bfbc53535573d98cf0cbb3a5b36124\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 5 0xf34578907f) [[ 2 ]] (CALL 6000 3 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CallRipemd160_3Filler.json",
    "content": "{\n    \"CallRipemd160_3\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x316750573f9be26bc17727b47cacedbd0ab3e6ca\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0xf34578907f) [[ 2 ]] (CALL 6000 3 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CallRipemd160_3_postfixed0Filler.json",
    "content": "{\n    \"CallRipemd160_3_postfixed0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x7730b4642169b0f16752696da8da830a4b429c9d\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0xf34578907f00) [[ 2 ]] (CALL 6000 3 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CallRipemd160_3_prefixed0Filler.json",
    "content": "{\n    \"CallRipemd160_3_prefixed0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x316750573f9be26bc17727b47cacedbd0ab3e6ca\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x00f34578907f) [[ 2 ]] (CALL 6000 3 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CallRipemd160_4Filler.json",
    "content": "{\n    \"CallRipemd160_4\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x1cf4e77f5966e13e109703cd8a0df7ceda7f3dc3\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (CALL 720 3 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CallRipemd160_4_gas719Filler.json",
    "content": "{\n    \"CallRipemd160_4_gas719\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (CALL 719 3 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CallRipemd160_5Filler.json",
    "content": "{\n    \"CallRipemd160_5\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (CALL 6000 3 0 0 1000000 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CallSha256_0Filler.json",
    "content": "{\n    \"CallSha256_0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xec4916dd28fc4c10d78e287ca5d9cc51ee1ae73cbfde08c6b37324cbfaac8bc5\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"0x600160005260206000602060006000600260fff1600051600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CallSha256_1Filler.json",
    "content": "{\n    \"CallSha256_1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ [[ 2 ]] (CALL 500 2 0 0 0 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CallSha256_1_nonzeroValueFiller.json",
    "content": "{\n    \"CallSha256_1_nonzeroValue\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"0000000000000000000000000000000000000002\" : {\n                        \"balance\" : \"19\"\n                    },\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"200000000\",\n                \"code\" : \"{ [[ 2 ]] (CALL 200000 2 0x13 0 0 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CallSha256_2Filler.json",
    "content": "{\n    \"CallSha256_2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xcb39b3bde22925b2f931111130c774761d8895e0e08437c9b396c1e97d10f34d\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 5 0xf34578907f) [[ 2 ]] (CALL 500 2 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CallSha256_3Filler.json",
    "content": "{\n    \"CallSha256_3\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x7392925565d67be8e9620aacbcfaecd8cb6ec58d709d25da9eccf1d08a41ce35\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0xf34578907f) [[ 2 ]] (CALL 500 2 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CallSha256_3_postfix0Filler.json",
    "content": "{\n    \"CallSha256_3_postfix0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x3b745a1c00d035c334f358d007a430e4cf0ae63aa0556fb05529706de546464d\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0xf34578907f00) [[ 2 ]] (CALL 500 2 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CallSha256_3_prefix0Filler.json",
    "content": "{\n    \"CallSha256_3_prefix0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x7392925565d67be8e9620aacbcfaecd8cb6ec58d709d25da9eccf1d08a41ce35\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x00f34578907f) [[ 2 ]] (CALL 500 2 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CallSha256_4Filler.json",
    "content": "{\n    \"CallSha256_4\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xaf9613760f72635fbdb44a5a0a63c39f12af30f950a6ee5c971be188e89c4051\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (CALL 100 2 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CallSha256_4_gas99Filler.json",
    "content": "{\n    \"CallSha256_4_gas99\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xaf9613760f72635fbdb44a5a0a63c39f12af30f950a6ee5c971be188e89c4051\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (CALL 99 2 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/CallSha256_5Filler.json",
    "content": "{\n    \"CallSha256_5\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (CALL 600 2 0 0 1000000 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/ecrecoverShortBuffFiller.yml",
    "content": "# Call the ecrecover precompile with a short (<128 bytes) buffer, or an excessively long one.\n# These tests are >=TangerineWhistle for using the 63/64th rule, but let's use >=Byzantium. Should be >=FRontier otherwise.\n\n# Using \n#     wallet = ethers.Wallet.createRandom()\n# \n# SigningKey {\n#  curve: 'secp256k1',\n#  privateKey: '0xaedd8fff1fea5cc2513c2db88712d7e2345cd9ba6bcebdd745ec77640961695e',\n#  publicKey: '0x04b2a40facc0b5f39f3d6f2c8986586ceb8a98cf1574d63f5f797b4db6d3a6ae5efaafdb83ee78f78c2b10021a5cb$\n#  compressedPublicKey: '0x03b2a40facc0b5f39f3d6f2c8986586ceb8a98cf1574d63f5f797b4db6d3a6ae5e',\n#  _isSigningKey: true\n# }\n#\n# Wallet {\n#  _isSigner: true,\n#  _signingKey: [Function (anonymous)],\n#  address: '0x3f9Ecb7B25fa567AFB2a4c7B633749bdA578B593',\n#  _mnemonic: [Function (anonymous)],\n#  provider: null\n# }\n#\n#     zero = \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n#\n# wallet._signingKey().signDigest(zero)\n# wallet._signingKey().signDigest(zero)\n#    {\n#       r: '0x184870a8e4faa6065ddf65c873935d3e48e3d1c7b7853f25cd79b8247f771910',\n#       s: '0x226140b6b66554c7fcfa38589e433cc148ebe5c8482eb3093ab1d9a932c96f58',\n#       _vs: '0x226140b6b66554c7fcfa38589e433cc148ebe5c8482eb3093ab1d9a932c96f58',\n#       recoveryParam: 0,\n#       v: 27,\n#       yParityAndS: '0x226140b6b66554c7fcfa38589e433cc148ebe5c8482eb3093ab1d9a932c96f58',\n#       compact: '0x184870a8e4faa6065ddf65c873935d3e48e3d1c7b7853f25cd79b8247f771910226140b6b66554c7fcfa38589e$\n#    }\n#\n# ethers.utils.recoverAddress(zero, \n#      \"0x184870a8e4faa6065ddf65c873935d3e48e3d1c7b7853f25cd79b8247f771910226140b6b66554c7fcfa38589e433cc148eb$\n#\n# '0x3f9Ecb7B25fa567AFB2a4c7B633749bdA578B593'\n\necrecoverShortBuff:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '0xFF112233445566'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n\n\n  pre:  \n\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      code: |\n        :yul berlin\n        {\n          let maxLength := 0xA0     \n\n          // Initialization\n          for { let i := 0 } lt(i, maxLength) { i := add(i, 1) } {\n             // Initialize storage to verify it gets overwritten \n             sstore(i, 0xdead60A7)\n             sstore(add(0x1000,i), 0xdead60A7)\n          }\n\n          // Create a legitimate signature\n          mstore(0, 0)\n\n          // The signature (for zero)\n          mstore(0x20, 27)  // v\n          mstore(0x40, 0x184870a8e4faa6065ddf65c873935d3e48e3d1c7b7853f25cd79b8247f771910) // r\n          mstore(0x60, 0x226140b6b66554c7fcfa38589e433cc148ebe5c8482eb3093ab1d9a932c96f58) // s\n\n    \n\n          // Call ecrecover with every possible length that's too short, the right length\n          // (0x80), and some excessive lengths\n          for { let len := 0 } lt(len, maxLength) { len := add(len,1) } {\n             // Call ecrecoer\n             sstore(len, call(gas(), 1, 0, 0, len, 0x100, 0x20))\n\n             // The expected retval is one, so to avoid specifying every length\n             // in the expect: section we subtract one.\n             sstore(len, sub(sload(len), 1))\n\n             // The returned address should always be zero, because it is not a valid signature\n             sstore(add(0x1000,len), mload(0x100))\n          }\n        }\n      nonce: 1\n      storage:     # Some values to make sure we overwrite storage\n        0x0000: 0x60A7\n        0x0011: 0x60A7\n        0x0022: 0x60A7\n        0x0033: 0x60A7\n        0x0044: 0x60A7\n        0x0055: 0x60A7\n        0x0066: 0x60A7\n        0x0077: 0x60A7\n        0x0080: 0x60A7\n        0x0099: 0x60A7\n        0x1000: 0x60A7\n        0x1011: 0x60A7\n        0x1022: 0x60A7\n        0x1033: 0x60A7\n        0x1044: 0x60A7\n        0x1055: 0x60A7\n        0x1066: 0x60A7\n        0x1077: 0x60A7\n        0x1080: 0x60A7\n        0x1099: 0x60A7\n      balance: 0\n\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '1000000000000000000'\n      code: 0x\n      nonce: 1\n      storage: {}\n\n\n  transaction:\n    data:\n    - :raw 0x00\n    gasLimit:\n    - '0x70ea40'\n    gasPrice: '10'\n    nonce: 1\n    secretKey: 45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '100000'\n\n\n\n  expect:\n\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int -1\n    network: \n    - \">=Cancun\"\n    result:\n      cccccccccccccccccccccccccccccccccccccccc:\n        storage:\n          # The return value for ecrecover is always one, the smart contract subtracts that\n          # so we won't have to specify every value\n          0x00: 0\n          0x01: 0\n          # .\n          # .\n          # .\n          0x9F: 0\n\n          # For buffer lengths 0x00 - 0x60 s is zero, so we get a zero as the address\n          0x1000: 0x00\n          0x1010: 0x00\n          0x1030: 0x00\n          0x1060: 0x00\n\n\n          # For buffer lengths 0x61 - 0x7F we get incorrect addresses, because the input is value\n          # but valid for a different address than ours (because s is a non-zero value, \n          # just not the correct one)\n          0x1061: 0x8e5817968f74ffb0255ae41eefa6f89dd0183fa1\n          0x1062: 0xb7529ed60a10291754a635ed9fd67c1723f4d83b\n          0x1063: 0x0669457ce81442f235ffc4123662ba14a72b3d68\n          0x1064: 0xdcc53a4a0719101437e8791abf273af5893cb174\n          0x1065: 0xa1889691e30136d95c0543f516bf2357b282d835\n          0x1066: 0x06642c4fd062a12b980d2bf28334e48ffe609248\n          0x1067: 0x628f176bc4c64973abaf9acb6bd8bb8d9b1ae97c\n          0x1068: 0x16fe7fa0cb8a861f855039c2eda9251ca7cc79d0\n          0x1069: 0x01c954021193a220878900cf5f7db5b3ea4c2b24\n          0x106a: 0x5c4725e00d8f9415e2b77630543fe41dcdaaa304\n          0x106b: 0xf6defd0f92f2a018ba20bf6051698a8dde7cc949\n          0x106c: 0x99cd51158e59da36ba48b457c02db77c17a6b91a\n          0x106d: 0xfc4539330fee551b296f9396d01ab7643521d5df\n          0x106e: 0x389a57ba1c546578b67167c6571d92e047bd4029\n          0x106f: 0x294091b609877b020b4f5a01357936fc0a877a3f\n          0x1070: 0xad5a9fc193dcf16041d4e96433ef3a6d82d36b16\n          0x1071: 0x8324683aaae32ccebdeb758e2777ab2b1ce3d3f1\n          0x1072: 0x295ad34cb312eaf9574511208848caf57b7429e0\n          0x1073: 0x0a74178ec0a865b84eed705e85ddf9b5002389ab\n          0x1074: 0xd1d3bc125318dd71176248d9c86f41a842d4bec9\n          0x1075: 0xe8e2d3e49d1bb0ddf5beeff311456f251dae9ea9\n          0x1076: 0xd8765900c0f467df6bc4f514ed39c568497a8ead\n          0x1077: 0xdb658a31f5a174be0e3fc0d0ce05dd6a76084910\n          0x1078: 0x1387af122c1e31a2dd1dac303b3f20ad83f0ed1b\n          0x1079: 0x9ca540e3f00347324bd94a94ce8e3a34b97c8244\n          0x107a: 0x8d682238981c4940830fa6971d25e036d1fb3d27\n          0x107b: 0xf571eb5abd7da99c6b32b3f3ed0740f6fac7d14b\n          0x107c: 0x79e727f2f0f816efd56fc2af37d98af6798551df\n          0x107d: 0x0f00d6a30e65104b909aa43d947ef2010e09446a\n          0x107e: 0x4c78739de03a70dbcf9b94bc21daf2bf46d44375\n          0x107f: 0x364a9dae48110760306b009bf2297819176be559\n          #\n          # At a length of 0x80 or more we get the correct result\n          0x1080: 0x3f9ecb7b25fa567afb2a4c7b633749bda578b593\n          0x1081: 0x3f9ecb7b25fa567afb2a4c7b633749bda578b593\n          0x1082: 0x3f9ecb7b25fa567afb2a4c7b633749bda578b593\n          0x1083: 0x3f9ecb7b25fa567afb2a4c7b633749bda578b593\n          0x1084: 0x3f9ecb7b25fa567afb2a4c7b633749bda578b593\n          0x1085: 0x3f9ecb7b25fa567afb2a4c7b633749bda578b593\n          0x1086: 0x3f9ecb7b25fa567afb2a4c7b633749bda578b593\n          0x1087: 0x3f9ecb7b25fa567afb2a4c7b633749bda578b593\n          0x1088: 0x3f9ecb7b25fa567afb2a4c7b633749bda578b593\n          0x1089: 0x3f9ecb7b25fa567afb2a4c7b633749bda578b593\n          0x108a: 0x3f9ecb7b25fa567afb2a4c7b633749bda578b593\n          0x108b: 0x3f9ecb7b25fa567afb2a4c7b633749bda578b593\n          0x108c: 0x3f9ecb7b25fa567afb2a4c7b633749bda578b593\n          0x108d: 0x3f9ecb7b25fa567afb2a4c7b633749bda578b593\n          0x108e: 0x3f9ecb7b25fa567afb2a4c7b633749bda578b593\n          0x108f: 0x3f9ecb7b25fa567afb2a4c7b633749bda578b593\n          0x1090: 0x3f9ecb7b25fa567afb2a4c7b633749bda578b593\n          0x1091: 0x3f9ecb7b25fa567afb2a4c7b633749bda578b593\n          0x1092: 0x3f9ecb7b25fa567afb2a4c7b633749bda578b593\n          0x1093: 0x3f9ecb7b25fa567afb2a4c7b633749bda578b593\n          0x1094: 0x3f9ecb7b25fa567afb2a4c7b633749bda578b593\n          0x1095: 0x3f9ecb7b25fa567afb2a4c7b633749bda578b593\n          0x1096: 0x3f9ecb7b25fa567afb2a4c7b633749bda578b593\n          0x1097: 0x3f9ecb7b25fa567afb2a4c7b633749bda578b593\n          0x1098: 0x3f9ecb7b25fa567afb2a4c7b633749bda578b593\n          0x1099: 0x3f9ecb7b25fa567afb2a4c7b633749bda578b593\n          0x109a: 0x3f9ecb7b25fa567afb2a4c7b633749bda578b593\n          0x109b: 0x3f9ecb7b25fa567afb2a4c7b633749bda578b593\n          0x109c: 0x3f9ecb7b25fa567afb2a4c7b633749bda578b593\n          0x109d: 0x3f9ecb7b25fa567afb2a4c7b633749bda578b593\n          0x109e: 0x3f9ecb7b25fa567afb2a4c7b633749bda578b593\n          0x109f: 0x3f9ecb7b25fa567afb2a4c7b633749bda578b593\n\n\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/ecrecoverWeirdVFiller.yml",
    "content": "# Check various weird V values on ecRecover, see they don't work even though the signature is legal.\n# These tests are >=Byzantium because using staticcall, but should be >=Frontier otherwise.\n\n# Using (on hardhat console): \n#     wallet = ethers.Wallet.createRandom()\n#     zero = \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n#     wallet._signingKey().signDigest(zero)\n#     ethers.utils.recoverAddress(zero, wallet._signingKey().signDigest(zero).compact)\n#\n# Wallet used:\n# Wallet {\n#  _isSigner: true,\n#  _signingKey: [Function (anonymous)],\n#  address: '0xB957B0Da344F6A17F0081d63be7345A860E5B7A2',\n#  _mnemonic: [Function (anonymous)],\n#  provider: null\n# }\n#  \n# wallet._mnemonic()\n# {\n#  phrase: 'unveil tower patrol spike aerobic vague frown crew agree motor tilt elevator',\n#  path: \"m/44'/60'/0'/0/0\",\n#  locale: 'en'\n# }\n\n\necrecoverWeirdV:\n  _info: \n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  env:\n    currentCoinbase: <eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\n    currentDifficulty: 0x20000\n    currentGasLimit: 0xFF112233445566\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  pre:\n    <eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>:\n      balance: 0\n      nonce: 1\n      code: ''\n      storage: {}\n\n    <contract:target:0x000000000000000000000000000000000000c0de>:\n      balance: 0\n      code: |\n          :yul berlin\n          {\n             let ecRecoverAddr := 1\n\n             // Call ecRecover\n\n             // Not the most efficient code, but it is more readable to see what each parameter means\n             mstore(0x00, calldataload(0x04))    // msgHash\n             mstore(0x20, calldataload(0x24))    // v\n             mstore(0x40, calldataload(0x44))    // r  \n             mstore(0x60, calldataload(0x64))    // s \n             let res := staticcall(gas(), ecRecoverAddr, 0, 0x80, 0x100, 0x100)\n             \n             // write results\n             sstore(0, res)\n             sstore(1, mload(0x100))\n             sstore(2, mload(0x120))\n          }\n      nonce: 1\n      storage:\n          0: 0x60A7\n          1: 0x60A7\n          2: 0x60A7\n\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: 1\n      storage: {}\n\n\n  transaction:\n    data:\n    # msgHash v r s\n    - :label fail :abi f(uint,uint,uint,uint) 0x7E57 0x7E57 0x7E57 0x7E57\n    - :label good :abi f(uint,uint,uint,uint) 0x00 27 0xce354e1b07ba96e325aa4851999f07aabcb4471e49f0a0daafed98caab963f03 0x79d9f3993cdd509f1bfba63dbd23dbdff879fb95203a5049f348a95ce8249f3b\n    - :label good :abi f(uint,uint,uint,uint) 0x01 28 0x541c4ce1565a646ddde26e1b483a88a6500ce15bd24622492f05cdd18b97161d 0x1827e364c15cfa61dab02339904b1e542f3939c6e8d6367d352026e71ffd6af5\n    - :label good :abi f(uint,uint,uint,uint) 0xdeaf0dead0600D0F00D00000000000000060A70000000000000F0AD0bad0beef 27 0x8a41a35dfd03f28615dc64b7754457691c66bd73f630c7423280282fa431a5be 0x2d40decf11713d564fa2df10dea5eb2adf45455ed309b4c8cc6853e2498323f5\n\n    # Valid signature from https://github.com/ethereum/EIPs/blob/master/EIPS/eip-155.md\n    - :label fail :abi f(uint,uint,uint,uint) 0xdaf5a779ae972f972197303d7b574746c7ef83eadac0f2791ad23db92e4c8e53 37 18515461264373351373200002665853028612451056578545711640558177340181847433846 46948507304638947509940763649030358759909902576025900602547168820602576006531\n\n    # Only the bottom bit of V is relevant to the actual signature. \n    # The value is either:\n    #     parity+27           (no chaind)\n    #     parity+35+2*chainid (with a chainid)\n    # \n    # Try a bunch of values that would be correct, but aren't ecrecover friendly\n\n      # Chainid 1\n    - :label fail :abi f(uint,uint,uint,uint) 0x00 37 0xce354e1b07ba96e325aa4851999f07aabcb4471e49f0a0daafed98caab963f03 0x79d9f3993cdd509f1bfba63dbd23dbdff879fb95203a5049f348a95ce8249f3b\n    - :label fail :abi f(uint,uint,uint,uint) 0x01 38 0x541c4ce1565a646ddde26e1b483a88a6500ce15bd24622492f05cdd18b97161d 0x1827e364c15cfa61dab02339904b1e542f3939c6e8d6367d352026e71ffd6af5\n\n      # Chainid 6\n    - :label fail :abi f(uint,uint,uint,uint) 0x00 47 0xce354e1b07ba96e325aa4851999f07aabcb4471e49f0a0daafed98caab963f03 0x79d9f3993cdd509f1bfba63dbd23dbdff879fb95203a5049f348a95ce8249f3b\n    - :label fail :abi f(uint,uint,uint,uint) 0x01 48 0x541c4ce1565a646ddde26e1b483a88a6500ce15bd24622492f05cdd18b97161d 0x1827e364c15cfa61dab02339904b1e542f3939c6e8d6367d352026e71ffd6af5\n\n      # Chainid 11\n    - :label fail :abi f(uint,uint,uint,uint) 0x00 57 0xce354e1b07ba96e325aa4851999f07aabcb4471e49f0a0daafed98caab963f03 0x79d9f3993cdd509f1bfba63dbd23dbdff879fb95203a5049f348a95ce8249f3b\n    - :label fail :abi f(uint,uint,uint,uint) 0x01 58 0x541c4ce1565a646ddde26e1b483a88a6500ce15bd24622492f05cdd18b97161d 0x1827e364c15cfa61dab02339904b1e542f3939c6e8d6367d352026e71ffd6af5\n\n      # Chainid 21\n    - :label fail :abi f(uint,uint,uint,uint) 0x00 77 0xce354e1b07ba96e325aa4851999f07aabcb4471e49f0a0daafed98caab963f03 0x79d9f3993cdd509f1bfba63dbd23dbdff879fb95203a5049f348a95ce8249f3b\n    - :label fail :abi f(uint,uint,uint,uint) 0x01 78 0x541c4ce1565a646ddde26e1b483a88a6500ce15bd24622492f05cdd18b97161d 0x1827e364c15cfa61dab02339904b1e542f3939c6e8d6367d352026e71ffd6af5\n\n      # Chainid 0\n    - :label fail :abi f(uint,uint,uint,uint) 0x00 35 0xce354e1b07ba96e325aa4851999f07aabcb4471e49f0a0daafed98caab963f03 0x79d9f3993cdd509f1bfba63dbd23dbdff879fb95203a5049f348a95ce8249f3b\n    - :label fail :abi f(uint,uint,uint,uint) 0x01 36 0x541c4ce1565a646ddde26e1b483a88a6500ce15bd24622492f05cdd18b97161d 0x1827e364c15cfa61dab02339904b1e542f3939c6e8d6367d352026e71ffd6af5\n\n      # Chainid 100\n    - :label fail :abi f(uint,uint,uint,uint) 0x00 235 0xce354e1b07ba96e325aa4851999f07aabcb4471e49f0a0daafed98caab963f03 0x79d9f3993cdd509f1bfba63dbd23dbdff879fb95203a5049f348a95ce8249f3b\n    - :label fail :abi f(uint,uint,uint,uint) 0x01 236 0x541c4ce1565a646ddde26e1b483a88a6500ce15bd24622492f05cdd18b97161d 0x1827e364c15cfa61dab02339904b1e542f3939c6e8d6367d352026e71ffd6af5\n\n      # \"Negative\" chainId values\n    - :label fail :abi f(uint,uint,uint,uint) 0x01 0 0x541c4ce1565a646ddde26e1b483a88a6500ce15bd24622492f05cdd18b97161d 0x1827e364c15cfa61dab02339904b1e542f3939c6e8d6367d352026e71ffd6af5\n    - :label fail :abi f(uint,uint,uint,uint) 0x00 1 0xce354e1b07ba96e325aa4851999f07aabcb4471e49f0a0daafed98caab963f03 0x79d9f3993cdd509f1bfba63dbd23dbdff879fb95203a5049f348a95ce8249f3b\n    - :label fail :abi f(uint,uint,uint,uint) 0x01 2 0x541c4ce1565a646ddde26e1b483a88a6500ce15bd24622492f05cdd18b97161d 0x1827e364c15cfa61dab02339904b1e542f3939c6e8d6367d352026e71ffd6af5\n    - :label fail :abi f(uint,uint,uint,uint) 0x00 3 0xce354e1b07ba96e325aa4851999f07aabcb4471e49f0a0daafed98caab963f03 0x79d9f3993cdd509f1bfba63dbd23dbdff879fb95203a5049f348a95ce8249f3b\n    - :label fail :abi f(uint,uint,uint,uint) 0x01 4 0x541c4ce1565a646ddde26e1b483a88a6500ce15bd24622492f05cdd18b97161d 0x1827e364c15cfa61dab02339904b1e542f3939c6e8d6367d352026e71ffd6af5\n    - :label fail :abi f(uint,uint,uint,uint) 0x00 5 0xce354e1b07ba96e325aa4851999f07aabcb4471e49f0a0daafed98caab963f03 0x79d9f3993cdd509f1bfba63dbd23dbdff879fb95203a5049f348a95ce8249f3b\n    - :label fail :abi f(uint,uint,uint,uint) 0x01 6 0x541c4ce1565a646ddde26e1b483a88a6500ce15bd24622492f05cdd18b97161d 0x1827e364c15cfa61dab02339904b1e542f3939c6e8d6367d352026e71ffd6af5\n    - :label fail :abi f(uint,uint,uint,uint) 0x00 7 0xce354e1b07ba96e325aa4851999f07aabcb4471e49f0a0daafed98caab963f03 0x79d9f3993cdd509f1bfba63dbd23dbdff879fb95203a5049f348a95ce8249f3b\n    - :label fail :abi f(uint,uint,uint,uint) 0x01 8 0x541c4ce1565a646ddde26e1b483a88a6500ce15bd24622492f05cdd18b97161d 0x1827e364c15cfa61dab02339904b1e542f3939c6e8d6367d352026e71ffd6af5\n\n      # V values above one byte\n    - :label fail :abi f(uint,uint,uint,uint) 0x00 0x0000000000ff 0xce354e1b07ba96e325aa4851999f07aabcb4471e49f0a0daafed98caab963f03 0x79d9f3993cdd509f1bfba63dbd23dbdff879fb95203a5049f348a95ce8249f3b\n    - :label fail :abi f(uint,uint,uint,uint) 0x01 0x000000000100 0x541c4ce1565a646ddde26e1b483a88a6500ce15bd24622492f05cdd18b97161d 0x1827e364c15cfa61dab02339904b1e542f3939c6e8d6367d352026e71ffd6af5\n    - :label fail :abi f(uint,uint,uint,uint) 0x00 0x0000000010ff 0xce354e1b07ba96e325aa4851999f07aabcb4471e49f0a0daafed98caab963f03 0x79d9f3993cdd509f1bfba63dbd23dbdff879fb95203a5049f348a95ce8249f3b\n    - :label fail :abi f(uint,uint,uint,uint) 0x01 0x000000001100 0x541c4ce1565a646ddde26e1b483a88a6500ce15bd24622492f05cdd18b97161d 0x1827e364c15cfa61dab02339904b1e542f3939c6e8d6367d352026e71ffd6af5\n    - :label fail :abi f(uint,uint,uint,uint) 0x00 0x0000000100ff 0xce354e1b07ba96e325aa4851999f07aabcb4471e49f0a0daafed98caab963f03 0x79d9f3993cdd509f1bfba63dbd23dbdff879fb95203a5049f348a95ce8249f3b\n    - :label fail :abi f(uint,uint,uint,uint) 0x01 0x000000010100 0x541c4ce1565a646ddde26e1b483a88a6500ce15bd24622492f05cdd18b97161d 0x1827e364c15cfa61dab02339904b1e542f3939c6e8d6367d352026e71ffd6af5\n    - :label fail :abi f(uint,uint,uint,uint) 0x00 0x0000123456ff 0xce354e1b07ba96e325aa4851999f07aabcb4471e49f0a0daafed98caab963f03 0x79d9f3993cdd509f1bfba63dbd23dbdff879fb95203a5049f348a95ce8249f3b\n    - :label fail :abi f(uint,uint,uint,uint) 0x01 0x000012345700 0x541c4ce1565a646ddde26e1b483a88a6500ce15bd24622492f05cdd18b97161d 0x1827e364c15cfa61dab02339904b1e542f3939c6e8d6367d352026e71ffd6af5\n    - :label fail :abi f(uint,uint,uint,uint) 0x00 0xdeadbeef00ff 0xce354e1b07ba96e325aa4851999f07aabcb4471e49f0a0daafed98caab963f03 0x79d9f3993cdd509f1bfba63dbd23dbdff879fb95203a5049f348a95ce8249f3b\n    - :label fail :abi f(uint,uint,uint,uint) 0x01 0xdeadbeef0100 0x541c4ce1565a646ddde26e1b483a88a6500ce15bd24622492f05cdd18b97161d 0x1827e364c15cfa61dab02339904b1e542f3939c6e8d6367d352026e71ffd6af5\n\n    gasLimit:\n    - 16777216\n    gasPrice: 10\n    nonce: 1\n    to: <contract:target:0x000000000000000000000000000000000000c0de>\n    value:\n    - 0\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n\n\n  expect:\n\n    # The result with invalid parameters (parameters that aren't a valid signature\n    - indexes:\n        data: :label fail\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x000000000000000000000000000000000000c0de>:\n          storage:\n            0x00: 1\n            0x01: 0\n            0x02: 0\n\n\n    # Valid parameters (with the B95...7A2 address)\n    - indexes:\n        data: :label good\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x000000000000000000000000000000000000c0de>:\n          storage:\n            0x00: 1\n            0x01: 0xB957B0Da344F6A17F0081d63be7345A860E5B7A2\n            0x02: 0\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/modexpRandomInputFiller.json",
    "content": "{\n    \"modexpRandomInput\": {\n\t    \"_info\" : {\n\t        \"comment\" : \"Fuzzed input discovered by Guido\"\n\t    },\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x1\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"expect\": [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\": {\n    \t    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x00000000000000000000000000000000000000000000000000000000000000e300000000000000000000000000000000000000000000000000\",\n                \":raw 0x00000000008000000000000000000000000000000000000000000000000000000000000400000000000000000000000a\",\n                \":raw 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001147000000000000000000000000000000000000000000000000000000000061660350000000000000000000000000000000000000000000000000000000000000008\"\n            ],\n            \"gasLimit\": [\n                \"710000\", \"7000000\"\n            ],\n            \"gasPrice\": \"10\",\n            \"nonce\": \"0\",\n            \"secretKey\": \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n\t        \"to\": \"0x0000000000000000000000000000000000000005\",\n            \"value\": [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/modexp_0_0_0_20500Filler.json",
    "content": "{\n    \"modexp_0_0_0_20500\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x1\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"balance\": \"999999999999868434\",\n                \"nonce\": \"1\",\n                \"code\": \"0x\",\n                \"storage\": {}\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"balance\": \"0\",\n                \"nonce\": \"1\",\n                \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760846004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b\",\n                \"storage\": {}\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"balance\": \"131566\",\n                \"nonce\": \"0\",\n                \"code\": \"0x\",\n                \"storage\": {}\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"balance\": \"1\",\n                \"nonce\": \"0\",\n                \"code\": \"0x\",\n                \"storage\": {}\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"balance\": \"1\",\n                \"nonce\": \"0\",\n                \"code\": \"0x\",\n                \"storage\": {}\n            },\n            \"0000000000000000000000000000000000000008\": {\n                \"balance\": \"1\",\n                \"nonce\": \"0\",\n                \"code\": \"0x\",\n                \"storage\": {}\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"balance\": \"1\",\n                \"nonce\": \"0\",\n                \"code\": \"0x\",\n                \"storage\": {}\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"balance\": \"1\",\n                \"nonce\": \"0\",\n                \"code\": \"0x\",\n                \"storage\": {}\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"balance\": \"1\",\n                \"nonce\": \"0\",\n                \"code\": \"0x\",\n                \"storage\": {}\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"balance\": \"1\",\n                \"nonce\": \"0\",\n                \"code\": \"0x\",\n                \"storage\": {}\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"balance\": \"1\",\n                \"nonce\": \"0\",\n                \"code\": \"0x\",\n                \"storage\": {}\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \"0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xa62c\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x1\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"0000000000000000000000000000000000000001\": {\n                        \"balance\": \"1\",\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\",\n                        \"storage\": {}\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"balance\": \"0\",\n                        \"nonce\": \"1\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760846004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b\",\n                        \"storage\": {}\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"balance\": \"1\",\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\",\n                        \"storage\": {}\n                    },\n                    \"0000000000000000000000000000000000000008\": {\n                        \"balance\": \"1\",\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\",\n                        \"storage\": {}\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"balance\": \"1\",\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\",\n                        \"storage\": {}\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"//balance\": \"999999999999825894\",\n                        \"nonce\": \"2\",\n                        \"code\": \"0x\",\n                        \"storage\": {}\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"balance\": \"1\",\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\",\n                        \"storage\": {}\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"balance\": \"1\",\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\",\n                        \"storage\": {}\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"balance\": \"1\",\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\",\n                        \"storage\": {}\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"//balance\": \"174106\",\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\",\n                        \"storage\": {}\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"balance\": \"1\",\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\",\n                        \"storage\": {}\n                    }\n                }\n            },\n    \t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"0000000000000000000000000000000000000001\": {\n                        \"balance\": \"1\",\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\",\n                        \"storage\": {}\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"balance\": \"0\",\n                        \"nonce\": \"1\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760846004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b\",\n                        \"storage\": {\n            \t\t\t    \"0x00\" : \"0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a\"\n            \t\t\t}\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"balance\": \"1\",\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\",\n                        \"storage\": {}\n                    },\n                    \"0000000000000000000000000000000000000008\": {\n                        \"balance\": \"1\",\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\",\n                        \"storage\": {}\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"balance\": \"1\",\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\",\n                        \"storage\": {}\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"nonce\": \"2\",\n                        \"code\": \"0x\",\n                        \"storage\": {}\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"balance\": \"1\",\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\",\n                        \"storage\": {}\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"balance\": \"1\",\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\",\n                        \"storage\": {}\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"balance\": \"1\",\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\",\n                        \"storage\": {}\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\",\n                        \"storage\": {}\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"balance\": \"1\",\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\",\n                        \"storage\": {}\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the base 0, exponent 0 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/modexp_0_0_0_22000Filler.json",
    "content": "{\n    \"modexp_0_0_0_22000\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x1\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"balance\": \"999999999999868434\",\n                \"nonce\": \"1\",\n                \"code\": \"0x\",\n                \"storage\": {}\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"balance\": \"0\",\n                \"nonce\": \"1\",\n                \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760846004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b\",\n                \"storage\": {}\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"balance\": \"131566\",\n                \"nonce\": \"0\",\n                \"code\": \"0x\",\n                \"storage\": {}\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"balance\": \"1\",\n                \"nonce\": \"0\",\n                \"code\": \"0x\",\n                \"storage\": {}\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"balance\": \"1\",\n                \"nonce\": \"0\",\n                \"code\": \"0x\",\n                \"storage\": {}\n            },\n            \"0000000000000000000000000000000000000008\": {\n                \"balance\": \"1\",\n                \"nonce\": \"0\",\n                \"code\": \"0x\",\n                \"storage\": {}\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"balance\": \"1\",\n                \"nonce\": \"0\",\n                \"code\": \"0x\",\n                \"storage\": {}\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"balance\": \"1\",\n                \"nonce\": \"0\",\n                \"code\": \"0x\",\n                \"storage\": {}\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"balance\": \"1\",\n                \"nonce\": \"0\",\n                \"code\": \"0x\",\n                \"storage\": {}\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"balance\": \"1\",\n                \"nonce\": \"0\",\n                \"code\": \"0x\",\n                \"storage\": {}\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"balance\": \"1\",\n                \"nonce\": \"0\",\n                \"code\": \"0x\",\n                \"storage\": {}\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \"0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xbc08\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x1\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"0000000000000000000000000000000000000001\": {\n                        \"balance\": \"1\",\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\",\n                        \"storage\": {}\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"balance\": \"0\",\n                        \"nonce\": \"1\",\n                        \"storage\": {\n                            \"0x00\": \"0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a\"\n                        }\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"balance\": \"1\",\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\",\n                        \"storage\": {}\n                    },\n                    \"0000000000000000000000000000000000000008\": {\n                        \"balance\": \"1\",\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\",\n                        \"storage\": {}\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"balance\": \"1\",\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\",\n                        \"storage\": {}\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"nonce\": \"2\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"balance\": \"1\",\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\",\n                        \"storage\": {}\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"balance\": \"1\",\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\",\n                        \"storage\": {}\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"balance\": \"1\",\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\",\n                        \"storage\": {}\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"balance\": \"1\",\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\",\n                        \"storage\": {}\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the base 0, exponent 0 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/modexp_0_0_0_25000Filler.json",
    "content": "{\n    \"modexp_0_0_0_25000\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x1\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"balance\": \"999999999999868434\",\n                \"nonce\": \"1\",\n                \"code\": \"0x\",\n                \"storage\": {}\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"balance\": \"0\",\n                \"nonce\": \"1\",\n                \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760846004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b\",\n                \"storage\": {}\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"balance\": \"131566\",\n                \"nonce\": \"0\",\n                \"code\": \"0x\",\n                \"storage\": {}\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"balance\": \"1\",\n                \"nonce\": \"0\",\n                \"code\": \"0x\",\n                \"storage\": {}\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"balance\": \"1\",\n                \"nonce\": \"0\",\n                \"code\": \"0x\",\n                \"storage\": {}\n            },\n            \"0000000000000000000000000000000000000008\": {\n                \"balance\": \"1\",\n                \"nonce\": \"0\",\n                \"code\": \"0x\",\n                \"storage\": {}\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"balance\": \"1\",\n                \"nonce\": \"0\",\n                \"code\": \"0x\",\n                \"storage\": {}\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"balance\": \"1\",\n                \"nonce\": \"0\",\n                \"code\": \"0x\",\n                \"storage\": {}\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"balance\": \"1\",\n                \"nonce\": \"0\",\n                \"code\": \"0x\",\n                \"storage\": {}\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"balance\": \"1\",\n                \"nonce\": \"0\",\n                \"code\": \"0x\",\n                \"storage\": {}\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"balance\": \"1\",\n                \"nonce\": \"0\",\n                \"code\": \"0x\",\n                \"storage\": {}\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \"0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xb7c0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x1\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"0000000000000000000000000000000000000001\": {\n                        \"balance\": \"1\",\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\",\n                        \"storage\": {}\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"balance\": \"0\",\n                        \"nonce\": \"1\",\n                        \"storage\": {\n                            \"0x00\": \"0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a\"\n                        }\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"balance\": \"1\",\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\",\n                        \"storage\": {}\n                    },\n                    \"0000000000000000000000000000000000000008\": {\n                        \"balance\": \"1\",\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\",\n                        \"storage\": {}\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"balance\": \"1\",\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\",\n                        \"storage\": {}\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"nonce\": \"2\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"balance\": \"1\",\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\",\n                        \"storage\": {}\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"balance\": \"1\",\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\",\n                        \"storage\": {}\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"balance\": \"1\",\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\",\n                        \"storage\": {}\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"balance\": \"1\",\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\",\n                        \"storage\": {}\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the base 0, exponent 0 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stPreCompiledContracts2/modexp_0_0_0_35000Filler.json",
    "content": "{\n    \"modexp_0_0_0_35000\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x1\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"balance\": \"999999999999868434\",\n                \"nonce\": \"1\",\n                \"code\": \"0x\",\n                \"storage\": {}\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"balance\": \"0\",\n                \"nonce\": \"1\",\n                \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760846004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b\",\n                \"storage\": {}\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"balance\": \"131566\",\n                \"nonce\": \"0\",\n                \"code\": \"0x\",\n                \"storage\": {}\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"balance\": \"1\",\n                \"nonce\": \"0\",\n                \"code\": \"0x\",\n                \"storage\": {}\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"balance\": \"1\",\n                \"nonce\": \"0\",\n                \"code\": \"0x\",\n                \"storage\": {}\n            },\n            \"0000000000000000000000000000000000000008\": {\n                \"balance\": \"1\",\n                \"nonce\": \"0\",\n                \"code\": \"0x\",\n                \"storage\": {}\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"balance\": \"1\",\n                \"nonce\": \"0\",\n                \"code\": \"0x\",\n                \"storage\": {}\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"balance\": \"1\",\n                \"nonce\": \"0\",\n                \"code\": \"0x\",\n                \"storage\": {}\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"balance\": \"1\",\n                \"nonce\": \"0\",\n                \"code\": \"0x\",\n                \"storage\": {}\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"balance\": \"1\",\n                \"nonce\": \"0\",\n                \"code\": \"0x\",\n                \"storage\": {}\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"balance\": \"1\",\n                \"nonce\": \"0\",\n                \"code\": \"0x\",\n                \"storage\": {}\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \"0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xded0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x1\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"0000000000000000000000000000000000000001\": {\n                        \"balance\": \"1\",\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\",\n                        \"storage\": {}\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"balance\": \"0\",\n                        \"nonce\": \"1\",\n                        \"storage\": {\n                            \"0x00\": \"0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a\"\n                        }\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"balance\": \"1\",\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\",\n                        \"storage\": {}\n                    },\n                    \"0000000000000000000000000000000000000008\": {\n                        \"balance\": \"1\",\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\",\n                        \"storage\": {}\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"balance\": \"1\",\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\",\n                        \"storage\": {}\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"nonce\": \"2\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"balance\": \"1\",\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\",\n                        \"storage\": {}\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"balance\": \"1\",\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\",\n                        \"storage\": {}\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"balance\": \"1\",\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\",\n                        \"storage\": {}\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"balance\": \"1\",\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\",\n                        \"storage\": {}\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the base 0, exponent 0 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stQuadraticComplexityTest/Call1MB1024CalldepthFiller.json",
    "content": "{\n    \"Call1MB1024Calldepth\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"882500000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"//balance\" : \"0x0fffffffffffff\",\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n        \t\t\t    \"0x00\" : \"0x45\",\n\t\t        \t    \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"//balance\" : \"0x0fffffffffffff\",\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffff\",\n                \"code\" : \"{ (def 'i 0x80) [[ 0 ]] (+ @@0 1) (if (LT @@0 1024) [[ 1 ]] (CALL (- (GAS) 1005000) <contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 1000000 0 0) [[ 2 ]] 1 )  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"250000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stQuadraticComplexityTest/Call20KbytesContract50_1Filler.json",
    "content": "{\n    \"Call20KbytesContract50_1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"882500000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x0e90\"\n                        }\n                    },\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x32\"\n                        }\n                    }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffff\",\n                \"//comment\" : \"Some crazy code\",\n                \"code\" : \":raw 0x6001600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffff\",\n                \"code\" : \"{ (def 'i 0x80) (for {} (< @i 50) [i](+ @i 1) [[ 0 ]] (CALL 88250000000 <contract:0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) ) [[ 1 ]] @i }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"12500000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stQuadraticComplexityTest/Call20KbytesContract50_2Filler.json",
    "content": "{\n    \"Call20KbytesContract50_2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"882500000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x02\"\n                        }\n                    },\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x32\"\n                        }\n                    }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x5b603260805110156040576000600060006000600073<contract:0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b>64148c1c2280f16000556001608051016080526000565b60805160015500\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffff\",\n                \"//comment\" : \"Some crazy code\",\n                \"code\" : \":raw 0x60015b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b600101600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffff\",\n                \"code\" : \"{ (def 'i 0x80) (for {} (< @i 50) [i](+ @i 1) [[ 0 ]] (CALL 88250000000 <contract:0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) ) [[ 1 ]] @i }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"250000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stQuadraticComplexityTest/Call20KbytesContract50_3Filler.json",
    "content": "{\n    \"Call20KbytesContract50_3\" : {\n        \"_info\" : {\n            \"comment\": \"Potentially broken test: gas optimization shows that we can go as low as 212,154 gas limit and it would still have the same traces as with 250 million.\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"882500000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x02\"\n                        }\n                    },\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x32\"\n                        }\n                    }\n                }\n            },\n\t        {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffff\",\n                \"//comment\" : \"Some crazy code\",\n                \"code\" : \":raw 0x6001614a8e565b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b600101600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffff\",\n                \"code\" : \"{ (def 'i 0x80) (for {} (< @i 50) [i](+ @i 1) [[ 0 ]] (CALL 88250000000 <contract:0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) ) [[ 1 ]] @i }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"250000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stQuadraticComplexityTest/Call50000Filler.json",
    "content": "{\n    \"Call50000\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"860000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x5b61c3506080511015603f576000600061c3506000600173<eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>610640f16000556001608051016080526000565b60805160015500\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x5b61c3506080511015603f576000600061c3506000600173<eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>610640f16000556001608051016080526000565b60805160015500\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"7000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffff\",\n                \"code\" : \"{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (CALL 1600 <eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b> 1 0 50000 0 0) ) [[ 1 ]] @i}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"250000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stQuadraticComplexityTest/Call50000_ecrecFiller.json",
    "content": "{\n    \"Call50000_ecrec\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"3000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x5b61c3506080511015602c576000600061c3506000600160016101f4f16000556001608051016080526000565b60805160015500\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x5b61c3506080511015602c576000600061c3506000600160016101f4f16000556001608051016080526000565b60805160015500\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffff\",\n                \"code\" : \"{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (CALL 500 1 1 0 50000 0 0) ) [[ 1 ]] @i}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"250000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stQuadraticComplexityTest/Call50000_identity2Filler.json",
    "content": "{\n    \"Call50000_identity2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"882500000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x602a6001525b61c350608051101560325761c350600161c35060006001600461061cf16000556001608051016080526005565b60805160015560015160025500\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x602a6001525b61c350608051101560325761c350600161c35060006001600461061cf16000556001608051016080526005565b60805160015560015160025500\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffff\",\n                \"code\" : \"{ (def 'i 0x80) [ 1 ] 42 (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (CALL 1564 4 1 0 50000 1 50000) ) [[ 1 ]] @i [[ 2 ]] @1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"250000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stQuadraticComplexityTest/Call50000_identityFiller.json",
    "content": "{\n    \"Call50000_identity\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"882500000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x5b61c3506080511015602c576000600061c35060006001600461061cf16000556001608051016080526000565b60805160015500\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x5b61c3506080511015602c576000600061c35060006001600461061cf16000556001608051016080526000565b60805160015500\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffff\",\n                \"code\" : \"{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (CALL 1564 4 1 0 50000 0 0) ) [[ 1 ]] @i}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"250000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stQuadraticComplexityTest/Call50000_rip160Filler.json",
    "content": "{\n    \"Call50000_rip160\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"3925000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x5b61c3506080511015602d576000600061c35060006001600362013178f16000556001608051016080526000565b60805160015500\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x5b61c3506080511015602d576000600061c35060006001600362013178f16000556001608051016080526000565b60805160015500\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffff\",\n                \"code\" : \"{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (CALL 78200 3 1 0 50000 0 0) ) [[ 1 ]] @i}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"250000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stQuadraticComplexityTest/Call50000_sha256Filler.json",
    "content": "{\n    \"Call50000_sha256\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"3925000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"0000000000000000000000000000000000000002\" : {\n                        \"shouldnotexist\" : \"1\"\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"bbbf5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"code\" : \"0x5b61c3506080511015602d576000600061c35060006001600262013178f16000556001608051016080526000565b60805160015500\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x00\"\n                        }\n                    }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"0000000000000000000000000000000000000002\" : {\n                        \"shouldnotexist\" : \"1\"\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"bbbf5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"code\" : \"0x5b61c3506080511015602d576000600061c35060006001600262013178f16000556001608051016080526000565b60805160015500\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"bbbf5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0xfffffffffffff\",\n                \"code\" : \"{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (CALL 78200 2 1 0 50000 0 0) ) [[ 1 ]] @i}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"250000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"bbbf5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stQuadraticComplexityTest/Callcode50000Filler.json",
    "content": "{\n    \"Callcode50000\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"8600000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x5b61c3506080511015603f576000600061c3506000600173<eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>610640f26000556001608051016080526000565b60805160015500\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x5b61c3506080511015603f576000600061c3506000600173<eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>610640f26000556001608051016080526000565b60805160015500\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"7000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffff\",\n                \"code\" : \"{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (CALLCODE 1600 <eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b> 1 0 50000 0 0) ) [[ 1 ]] @i}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"250000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stQuadraticComplexityTest/Create1000ByzantiumFiller.json",
    "content": "{\n    \"Create1000Byzantium\" : {\n        \"_info\" : {\n            \"comment\": \"Gas analysis showed this test's gas can go as low as 21053, and still yield the same traces, which implies the test is broken\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"8600000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"010d8b0816e30ff51ba07678c64b272cdeddb807\" : {\n                        \"shouldnotexist\" : \"1\"\n                    }\n                }\n        }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"bbbf5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0xfffffffffffff\",\n                \"code\" : \"{ (def 'i 0x80) (for {} (< @i 1000) [i](+ @i 1) [[ 0 ]] (CREATE 1 0 50000) ) [[ 1 ]] @i}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"250000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"bbbf5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stQuadraticComplexityTest/Create1000Filler.json",
    "content": "{\n    \"Create1000\" : {\n        \"_info\" : {\n            \"comment\": \"Gas analysis showed this test's gas can go as low as 21053, and still yield the same traces, which implies the test is broken\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"8600000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n  \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"010d8b0816e30ff51ba07678c64b272cdeddb807\" : {\n                        \"shouldnotexist\" : \"1\"\n                    },\n                    \"014830fe159f418212e5c39b4b2e2ddc7b295395\" : {\n                        \"shouldnotexist\" : \"1\"\n                    },\n                    \"bbbf5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x00\"\n                        }\n                    },\n                    \"0c6a8f1bf692cb9e4f9d9c5a2785d58edfd42457\" : {\n                        \"shouldnotexist\" : \"1\"\n                    },\n                    \"198d23bedd1a9fdbd4adb5760930f6877f5d142f\" : {\n                        \"shouldnotexist\" : \"1\"\n                    },\n                    \"266c09580d28c1c576e5c6b9adc926be1fecffb1\" : {\n                        \"shouldnotexist\" : \"1\"\n                    },\n                    \"e5dc2e5b40069a91f688e56ea8d12149c5480b42\" : {\n                        \"shouldnotexist\" : \"1\"\n                    },\n                    \"fdbd2625737df76e194c99994be160c5f8248dad\" : {\n                        \"shouldnotexist\" : \"1\"                    },\n                    \"fff043abcbf2b0972c1dca19b2ba3cd682f10e90\" : {\n                        \"shouldnotexist\" : \"1\"                    }\n                }\n            },\n     \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"010d8b0816e30ff51ba07678c64b272cdeddb807\" : {\n                        \"shouldnotexist\" : \"1\"\n                    },\n                    \"014830fe159f418212e5c39b4b2e2ddc7b295395\" : {\n                        \"shouldnotexist\" : \"1\"\n                    },\n                    \"bbbf5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x00\"\n                        }\n                    },\n                    \"0c6a8f1bf692cb9e4f9d9c5a2785d58edfd42457\" : {\n                        \"shouldnotexist\" : \"1\"\n                    },\n                    \"198d23bedd1a9fdbd4adb5760930f6877f5d142f\" : {\n                        \"shouldnotexist\" : \"1\"\n                    },\n                    \"266c09580d28c1c576e5c6b9adc926be1fecffb1\" : {\n                        \"shouldnotexist\" : \"1\"\n                    },\n                    \"e5dc2e5b40069a91f688e56ea8d12149c5480b42\" : {\n                        \"shouldnotexist\" : \"1\"\n                    },\n                    \"fdbd2625737df76e194c99994be160c5f8248dad\" : {\n                        \"shouldnotexist\" : \"1\"                    },\n                    \"fff043abcbf2b0972c1dca19b2ba3cd682f10e90\" : {\n                        \"shouldnotexist\" : \"1\"                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"bbbf5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"//comment\" : \"In Shanghai it is impossible to pay for such a command because 0 50000 requires too much gas to pay for pre allocation\",\n                \"//comment\" : \"See Create1000ShnghaiFiller\",\n                \"//comment\" : \"CREATE price changed in Shanghai\",\n                \"//comment\" : \"Due to eip-3860 (https://eips.ethereum.org/EIPS/eip-3860) pay extra 2 gas for each 32 bytes of initcode\",\n                \"balance\" : \"0xfffffffffffff\",\n                \"code\" : \"{ (def 'i 0x80) (for {} (< @i 1000) [i](+ @i 1) [[ 0 ]] (CREATE 1 0 50000) ) [[ 1 ]] @i}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"250000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"bbbf5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stQuadraticComplexityTest/Create1000ShnghaiFiller.json",
    "content": "{\n    \"Create1000Shnghai\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"8600000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n     \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"010d8b0816e30ff51ba07678c64b272cdeddb807\" : {\n                        \"shouldnotexist\" : \"1\"\n                    },\n                    \"014830fe159f418212e5c39b4b2e2ddc7b295395\" : {\n                        \"shouldnotexist\" : \"1\"\n                    },\n                    \"bbbf5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x00\"\n                        }\n                    },\n                    \"0c6a8f1bf692cb9e4f9d9c5a2785d58edfd42457\" : {\n                        \"shouldnotexist\" : \"1\"\n                    },\n                    \"198d23bedd1a9fdbd4adb5760930f6877f5d142f\" : {\n                        \"shouldnotexist\" : \"1\"\n                    },\n                    \"266c09580d28c1c576e5c6b9adc926be1fecffb1\" : {\n                        \"shouldnotexist\" : \"1\"\n                    },\n                    \"e5dc2e5b40069a91f688e56ea8d12149c5480b42\" : {\n                        \"shouldnotexist\" : \"1\"\n                    },\n                    \"fdbd2625737df76e194c99994be160c5f8248dad\" : {\n                        \"shouldnotexist\" : \"1\"                    },\n                    \"fff043abcbf2b0972c1dca19b2ba3cd682f10e90\" : {\n                        \"shouldnotexist\" : \"1\"                    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"010d8b0816e30ff51ba07678c64b272cdeddb807\" : {\n                        \"balance\" : \"0x01\",\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"014830fe159f418212e5c39b4b2e2ddc7b295395\" : {\n                        \"balance\" : \"0x01\",\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"bbbf5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"balance\" : \"0x0ffffffffffc21\",\n                        \"nonce\" : \"0x03e8\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x7981fa24b134deb51d71d250d7b0d9e33c8c5457\",\n                            \"0x01\" : \"0x03e8\"\n                        }\n                    },\n                    \"0443d33cbefcfb9dedd1885b4c58b06cb1bb0c09\" : {\n                        \"balance\" : \"0x01\",\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"0c6a8f1bf692cb9e4f9d9c5a2785d58edfd42457\" : {\n                        \"balance\" : \"0x01\",\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"198d23bedd1a9fdbd4adb5760930f6877f5d142f\" : {\n                        \"balance\" : \"0x01\",\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"266c09580d28c1c576e5c6b9adc926be1fecffb1\" : {\n                        \"balance\" : \"0x01\",\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"38382e1ec7bf834f328feb3170293b1ae558aed0\" : {\n                        \"balance\" : \"0x01\",\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"49198360b42d89332f8cc121182e071493045c40\" : {\n                        \"balance\" : \"0x01\",\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"69eada7f1d77ff9bf9c789d44990f9141e39d71f\" : {\n                        \"balance\" : \"0x01\",\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"901cc1c13f30eb2fc6de17ba1867dcc8c1561d46\" : {\n                        \"balance\" : \"0x01\",\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"cb78de6453fe67ac38868ac60825f0288e509167\" : {\n                        \"balance\" : \"0x01\",\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"de8ae395bafe56c8968a2cec0567ec2562598189\" : {\n                        \"balance\" : \"0x01\",\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"e5dc2e5b40069a91f688e56ea8d12149c5480b42\" : {\n                        \"balance\" : \"0x01\",\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"fdbd2625737df76e194c99994be160c5f8248dad\" : {\n                        \"balance\" : \"0x01\",\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"fff043abcbf2b0972c1dca19b2ba3cd682f10e90\" : {\n                        \"balance\" : \"0x01\",\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"bbbf5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0xfffffffffffff\",\n                \"code\" : \"{ (def 'i 0x80) (for {} (< @i 1000) [i](+ @i 1) [[ 0 ]] (CREATE 1 0 10) ) [[ 1 ]] @i}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"250000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"bbbf5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stQuadraticComplexityTest/QuadraticComplexitySolidity_CallDataCopyFiller.json",
    "content": "{\n    \"QuadraticComplexitySolidity_CallDataCopy\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"350000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"code\" : \"0x60003560e060020a9004806361a4770614601557005b601e6004356024565b60006000f35b60008160008190555073b94f5374fce5edbc8e2a8697c15331677e6ebf0b90505b600082131560bf5780600160a060020a03166000600060007f6a7573740000000000000000000000000000000000000000000000000000000081526004017f63616c6c000000000000000000000000000000000000000000000000000000008152602001600060008560155a03f150506001820391506045565b505056\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"code\" : \"0x61c350600060003700\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"//comment1\" : \"contract caller\",\n                \"//comment2\" : \"{\",\n                \"//comment3\" : \"    int value;\",\n                \"//comment4\" : \"    function run(int count)\",\n                \"//comment5\" : \"    {\",\n                \"//comment6\" : \"        value = count;\",\n                \"//comment7\" : \"        address a = 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b;\",\n                \"//comment8\" : \"        while(count > 0)\",\n                \"//comment9\" : \"        {\",\n                \"//comment10\" : \"            a.call('just', 'call');\",\n                \"//comment11\" : \"            count = count - 1;\",\n                \"//comment12\" : \"        }\",\n                \"//comment13\" : \"    }\",\n                \"//comment14\" : \"}\",\n                \"balance\" : \"5000000000000000\",\n                \"code\" : \":raw 0x60003560e060020a9004806361a4770614601557005b601e6004356024565b60006000f35b60008160008190555073b94f5374fce5edbc8e2a8697c15331677e6ebf0b90505b600082131560bf5780600160a060020a03166000600060007f6a7573740000000000000000000000000000000000000000000000000000000081526004017f63616c6c000000000000000000000000000000000000000000000000000000008152602001600060008560155a03f150506001820391506045565b505056\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"5000000\",\n                \"code\" : \"{ (CALLDATACOPY 0 0 50000) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"c9c5a15a403e41498b6f69f6f89dd9f5892d21f7\" : {\n                \"balance\" : \"5000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x61a47706000000000000000000000000000000000000000000000000000000000000c350\"\n            ],\n            \"gasLimit\" : [\n               \"150000\", \"250000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"6a7eeac5f12b409d42028f66b0b2132535ee158cfda439e3bfdd4558e8f4bf6c\",\n            \"to\" : \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stQuadraticComplexityTest/Return50000Filler.json",
    "content": "{\n    \"Return50000\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"8825000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x600161c34f35f300\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n\t\t\t\t\t\t\t\"0x00\" : \"0x01\",\n\t\t\t\t\t\t\t\"0x01\" : \"0xc350\"\n                        }\n                    }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x600161c34f35f300\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x5b61c3506080511015603f576000600061c3506000600073<contract:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>61061cf16000556001608051016080526000565b60805160015500\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffff\",\n                \"code\" : \"{ (RETURN (CALLDATALOAD 49999) 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffff\",\n                \"code\" : \"{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (CALL 1564 <contract:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 50000 0 0) ) [[ 1 ]] @i }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"16000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stQuadraticComplexityTest/Return50000_2Filler.json",
    "content": "{\n    \"Return50000_2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"8825000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x61c34f356000526001600051f300\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x5b61c3506080511015603f576000600061c3506000600073<contract:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>61061cf16000556001608051016080526000565b60805160015500\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n\t\t\t\t\t\t\t\"0x00\" : \"0x01\",\n\t\t\t\t\t\t\t\"0x01\" : \"0xc350\"\n                        }\n                    }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x61c34f356000526001600051f300\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x5b61c3506080511015603f576000600061c3506000600073<contract:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>61061cf16000556001608051016080526000565b60805160015500\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffff\",\n                \"code\" : \"{ [ 0 ] (CALLDATALOAD 49999) (RETURN @0 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffff\",\n                \"code\" : \"{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (CALL 1564 <contract:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 50000 0 0) ) [[ 1 ]] @i }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\", \"16000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stQuadraticComplexityTest/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest0Filler.json",
    "content": "{\n    \"randomStatetest0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff857ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1302056f60005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff857ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1302056f\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1631233707\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest100Filler.json",
    "content": "{\n    \"randomStatetest100\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"code\" : \"0x414243444342444283f24455\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n\t\t\t\t\t\t    \"0x020000\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x414243444342444283f24455\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x42\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest102Filler.json",
    "content": "{\n    \"randomStatetest102\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x157094ffff1a04893a9cf3858b857655\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x457f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>44447f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f157094ffff1a04893a9cf3858b85765560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x457f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>44447f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f157094ffff1a04893a9cf3858b8576\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"634395362\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest103Filler.json",
    "content": "{\n    \"randomStatetest103\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe92357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff597f00000000000000000000000000000000000000000000000000000000000000019385a39988160a205a93196d336428\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe92357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff597f00000000000000000000000000000000000000000000000000000000000000019385a39988160a205a93196d336428\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1592853550\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest104Filler.json",
    "content": "{\n    \"randomStatetest104\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x147d6b978c780a82619772417d5b6a55\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f147d6b978c780a82619772417d5b6a5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f147d6b978c780a82619772417d5b6a\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"977250261\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest105Filler.json",
    "content": "{\n    \"randomStatetest105\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x9914639111156d1759ff65039a02926c\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff437f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f9914639111156d1759ff65039a02926c60005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff437f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f9914639111156d1759ff65039a02926c\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1449730295\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest106Filler.json",
    "content": "{\n    \"randomStatetest106\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x327043726481f25094828e2115577955\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f327043726481f25094828e211557795560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f327043726481f25094828e21155779\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1107240556\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest107Filler.json",
    "content": "{\n    \"randomStatetest107\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"945304eb96065b2a98b57a48a06ae28d285a71b5\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xffffffffffffffffffffffff6bacfb1469f9a4d5674a85b75f951d72d7a58e4a\"\n                        }\n                    },\n                    \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b50960005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b509\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"1335641355\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest108Filler.json",
    "content": "{\n    \"randomStatetest108\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x41443442f34241\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x42\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest10Filler.json",
    "content": "{\n    \"randomStatetest10\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000000120417f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3508859a1740a0528f26a635216cd980a9a9255\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000000120417f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3508859a1740a0528f26a635216cd980a9a92\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"364185236\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest110Filler.json",
    "content": "{\n    \"randomStatetest110\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x97543c343476cb7c8c84066217f10255\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe417f00000000000000000000000000000000000000000000000000000000000000016f97543c343476cb7c8c84066217f1025560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe417f00000000000000000000000000000000000000000000000000000000000000016f97543c343476cb7c8c84066217f102\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"736834619\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest111Filler.json",
    "content": "{\n    \"randomStatetest111\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c35059a17f0000000000000000000000000000000000000000000000000000000000000001f38f07bf60005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c35059a17f0000000000000000000000000000000000000000000000000000000000000001f38f07bf\"\n            ],\n            \"gasLimit\" : [\n                \"0x7a120\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"50481116\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest112Filler.json",
    "content": "{\n    \"randomStatetest112\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x549c5779398a848c3530751465054155\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff45447fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000006f549c5779398a848c353075146505415560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff45447fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000006f549c5779398a848c35307514650541\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"2006825126\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest114Filler.json",
    "content": "{\n    \"randomStatetest114\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x3584357ea388725483637d4471727f55\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f3584357ea388725483637d4471727f5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f3584357ea388725483637d4471727f\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1067998899\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest115Filler.json",
    "content": "{\n    \"randomStatetest115\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x15448e363302150a6f56518aa0053155\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3506f15448e363302150a6f56518aa005315560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3506f15448e363302150a6f56518aa00531\"\n            ],\n            \"gasLimit\" : [\n                \"0x30de0e\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1948713091\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest116Filler.json",
    "content": "{\n    \"randomStatetest116\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x010000000000000000000000000000000000000000\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>0753933760005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>07539337\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"372067975\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest117Filler.json",
    "content": "{\n    \"randomStatetest117\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x8aa4a4980274f18c6158368d41571455\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x447f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>427f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000006f8aa4a4980274f18c6158368d4157145560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x447f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>427f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000006f8aa4a4980274f18c6158368d415714\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1763362724\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest118Filler.json",
    "content": "{\n    \"randomStatetest118\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x55817c037fa45bf3850320309a8f0255\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x457ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000006f55817c037fa45bf3850320309a8f025560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x457ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000006f55817c037fa45bf3850320309a8f02\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1190213224\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest119Filler.json",
    "content": "{\n    \"randomStatetest119\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x52503b127c115a9673a4313790956655\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x4559437f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006f52503b127c115a9673a431379095665560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x4559437f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006f52503b127c115a9673a43137909566\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"412561866\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest11Filler.json",
    "content": "{\n    \"randomStatetest11\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xa093f3408a6e531735960a7617127a55\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3506fa093f3408a6e531735960a7617127a5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3506fa093f3408a6e531735960a7617127a\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1762251756\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest120Filler.json",
    "content": "{\n    \"randomStatetest120\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe820860005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe8208\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1887172074\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest121Filler.json",
    "content": "{\n    \"randomStatetest121\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x305842321509108c689f7ca3195a9d55\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c350456f305842321509108c689f7ca3195a9d5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c350456f305842321509108c689f7ca3195a9d\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1227523279\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest122Filler.json",
    "content": "{\n    \"randomStatetest122\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xa2825b6c338f8d717156560af045136b\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6fa2825b6c338f8d717156560af045136b60005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6fa2825b6c338f8d717156560af045136b\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"538407333\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest124Filler.json",
    "content": "{\n    \"randomStatetest124\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x01\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08125580355b17457f7463587b9a7a435560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08125580355b17457f7463587b9a7a43\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1751381635\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest125Filler.json",
    "content": "{\n    \"randomStatetest125\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f0000000000000000000000000000000000000000000000000000000000000001207f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe406f\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f0000000000000000000000000000000000000000000000000000000000000001207f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe406f\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"781711523\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest126Filler.json",
    "content": "{\n    \"randomStatetest126\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"code\" : \"0x4142\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x4142\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x42\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest129Filler.json",
    "content": "{\n    \"randomStatetest129\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x166e733343093a31a33b8e025a027055\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f166e733343093a31a33b8e025a02705560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f166e733343093a31a33b8e025a0270\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1110233548\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest12Filler.json",
    "content": "{\n    \"randomStatetest12\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x165490a41215369ef276037941163355\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff457ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>027f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f165490a41215369ef27603794116335560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff457ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>027f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f165490a41215369ef2760379411633\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1165421411\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest130Filler.json",
    "content": "{\n    \"randomStatetest130\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x368a668b76306d181a39361198831755\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000016f368a668b76306d181a3936119883175560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000016f368a668b76306d181a393611988317\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1912800960\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest131Filler.json",
    "content": "{\n    \"randomStatetest131\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x36ff85758270710168547a9777886096\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000001000000000000000000000000000000000000000014416f36ff85758270710168547a977788609660005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000001000000000000000000000000000000000000000014416f36ff85758270710168547a9777886096\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"474455952\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest133Filler.json",
    "content": "{\n    \"randomStatetest133\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000001357f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000000035830b503516a46d0b03\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000001357f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000000035830b503516a46d0b03\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1524251084\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest134Filler.json",
    "content": "{\n    \"randomStatetest134\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x417f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff557f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff55836b636c9c395a0732014533405560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x417f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff557f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff55836b636c9c395a073201453340\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"65268053\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest135Filler.json",
    "content": "{\n    \"randomStatetest135\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000010000000000000000000000000000000000000000417f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0075a0b64319218663016870455\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000010000000000000000000000000000000000000000417f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0075a0b643192186630168704\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1650167023\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest137Filler.json",
    "content": "{\n    \"randomStatetest137\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"945304eb96065b2a98b57a48a06ae28d285a71b5\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0xb5a130e86ca17390989355f092a255600051\" : \"0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a\"\n                        }\n                    },\n                    \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000087f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017e7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5a130e86ca17390989355f092a25560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000087f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017e7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5a130e86ca17390989355f092a2\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"866944487\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest138Filler.json",
    "content": "{\n    \"randomStatetest138\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"0000000000000000000000000000000000020000\" : {\n                        \"balance\" : \"50000\",\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c350447f0000000000000000000000000000000000000000000000000000000000000001f1595160005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c350447f0000000000000000000000000000000000000000000000000000000000000001f15951\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1998228906\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest139Filler.json",
    "content": "{\n    \"randomStatetest139\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x020000\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x33447f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff434461334515455560005155\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x33447f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff43446133451545\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x409ceff3\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest13Filler.json",
    "content": "{\n    \"randomStatetest13\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000027ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe307f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000005255\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000027ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe307f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000001000000000000000000000000000000000000000052\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"936808044\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest142Filler.json",
    "content": "{\n    \"randomStatetest142\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\" : \"0x0431107c88\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff959137630364087e1a640431107c880160005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff959137630364087e1a640431107c8801\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1842485664\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest143Filler.json",
    "content": "{\n    \"randomStatetest143\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0xae72e2bf2302ebcd309e003e5be58830f96deddaf87bb89eeea159388bfe3ec1\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x414341414243421a2055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x42\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest144Filler.json",
    "content": "{\n    \"randomStatetest144\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b0085a57673c8f7d78fb870418f622e42fd686e4\",\n            \"currentDifficulty\" : \"131072\",\n            \"currentGasLimit\" : \"0x5c1948c7\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0x59\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x35\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"b0085a57673c8f7d78fb870418f622e42fd686e4\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x03255f99de856501\",\n                \"code\" : \":raw 0x621da82575e942e4fd977abdb407069cf700116e02b4f9b25d866b6d13163fff2b8ef03cf8ab5d662afb7bb5c9e68462741090bc0976c9705b40411efe39e80c20b572c5e3d75f788f9be2f0981672b8de37f9e2d1515046cb77cc3ee74646fb096eadce98908499b6fd54725f3c6a725968761ba50494d1ecaf1e787db9a052952427c4f271c28d3e25728b2b76439a3166cd0ed37f30ec2421ed38ebd3b00b89ba9208391dc274e4eefa69161a37dfff7111756dd7971065f05aa9de4867609e7d847a290d0eeb08cde2ff294ae11dd16f8a3e32494d943fa0622cc04cd7476b6d2a1008e4ad1e2c33e2928e707c797f2a1a586bbf78658189bf58172ff77130be2ffc9bbf7f171939be260b30eb65b46a6cf107be1c9ed5c92c99d69fe0559389600e6013601c60096016601260016001600c6017016d200351654b9773409608aaa7db1f67b518d025727bdc6e0463b2bc334b658536d84dadc47a2288da62c36b9a35bf8934e3781a4c44e91637ce5c6b2f916d76706529d728b6f5ee076013601e601960086005601c6013601d96423568ce21a850c04a77ceb9\",\n                \"nonce\" : \"0x59\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2401ac5958344e85\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x35\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x71e90493e6eb4c59\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x166e31b12700cdefa7a0591398d415023175d1e5a1eca036986533972cab6625e976572ee91c150c\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"0xe8\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x3ced74ed\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest145Filler.json",
    "content": "{\n    \"randomStatetest145\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f0000000000000000000000000000000000000000000000000000000000000000427f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000139133360005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f0000000000000000000000000000000000000000000000000000000000000000427f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000001391333\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"2115970778\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest146Filler.json",
    "content": "{\n    \"randomStatetest146\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x434243434444424350303614f20a\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x42\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest147Filler.json",
    "content": "{\n    \"randomStatetest147\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"00000000000000000000000000007fffffffffff\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x657ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe43659a936055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x657ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe43659a9360\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1090344298\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest148Filler.json",
    "content": "{\n    \"randomStatetest148\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x50000000000000000000000000000000000000000000000000000000000000\" : \"0x34847e390773919b1655907716447255\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000001537f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>6f34847e390773919b165590771644725560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000001537f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>6f34847e390773919b16559077164472\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"811630515\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest149Filler.json",
    "content": "{\n    \"randomStatetest149\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff099055510760005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0990555107\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1968716197\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest14Filler.json",
    "content": "{\n    \"randomStatetest14\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"fffffffffffffffffffffffffffffffffffffffe\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff20547f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff61853634f06b907f899d7455\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff20547f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff61853634f06b907f899d74\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"308810775\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest150Filler.json",
    "content": "{\n    \"randomStatetest150\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x668254d76c6f24d4806677d83f3a46a1a66f20ae2688cf4b75842ac7265966f5f5ca603e6062a268aba89067dc278e1f86710462dae624ac683889038d26894af02617c06b39c4988a5a60a12c0d9ad0ca65839c92f7c75c6ad3d6a7b617ac7fbd41f5a29377ca6ad48748a94e31302254147fb3b5857568e516cb6e8aa23577af85d0e508dc17dc50e246130be577cb59826adc86af6c107fd8a98f47cccd9d22a867a43cd8ad77bbe8bb737af5acc0be67fd7b054f7281e771891dc4aad180996b9cb71c6016d0f6a9148c775e57ac8456a883eedc3182623898f32b5c83760465a2061c7652e785e7eef7a97b0aa6d6c15b5c296bcf05ee2e9b87aa60b5741b3f7d69a1df03df117b848b3a75f81c12dee2244f76e56bb261e9c75fb5ccc769db72bfaeadee3f68cf22bbca665b0647ac74c1409778c71b73ed4adaa2c6ba1c181b0747c27506478c403b3943129e79223e788bf8b81f60abecb73be035d03a8bbdfa112cd8cb2f7a1065250292740d2d72259b4d7e3ef844783da8118b72912b9f96a61f6168f160ef69d7dd3dfc7e4ef204766f789cbaf2abeceadcf5bdd8dddfef773f0a628afdf3988861662b77882a5cebffc61e75f11835b109e81f7c915a91c13b09097b792d3d59de0ef5b0f00f95ea49860917656263925da2fd6685359c6d7e4c3c4d2001a30111de14c56503788453df98a29b8715561b2c2021cf78e0ccc4701b192ebf67bb6f522656788b3d21428b50a2fa16224d926ce2ea5944760d501bfa0774238c6351dd224b743d3fc4d5a309166016a71b1c230fe9afd6479324716e71e3b27bdd3fb18cccc42f6ec973129f7958435f45da181aeb1608ed31713c33330ab4d2d4af54dd92d1df1560086014601d601f636b1d9a3573<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>632aec0540f16cfb040c16bd7c3761bdb86dd6be658d2aefe157396217393663769965a66479176d702e7e2d5697681aac1beccc55825241cd77551f39526cfa77838faa9c4759aafa5c64df5e9199976f35f8298acd398d1913c1fd2ddacbbeac7cc29daee12c057385808f19d07110f30cfd900a130b0a713468bceaf4236153ab6c7bdc39cf86d0a5b03684624d187473b42a2968f1128872724b3d42218dbac11f5a9492651f09a866f61a72535c373274618d5914163abc7481bb7789394e62f247e78e7f83af55a5686926972af7c6519658aee40a564e3c2950f874def7a2110af0526f75629b20a108e1cfba0db03fcdee497ee2f8bcf78ef14317\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x70afe04f9b9074d39383f0718bb0b14ecdb6680c54b4c20ae65044c572a5c832c15f55e8c1b63ffbb7da41d4c8faa43f087b1960b54938bbdb14f35e3552723ad2053a3c74b98d0320f74bbe4ff06630f30e1caa6e13797a14d07bb94ae4972ce38da7aefa2ab07aedb81397137b698a63675aa8895c5b1207be9262507b0866acfa180cfbbdff5572fb9a74b245d1180e80a93b2dc5bcf891e1b84d6c66ab13b03e937d4268f4e9be0381417c1db9b7341c9912e685e38ee499f1fb82b027b84e01ef235f18b95b0bf567fcfcc5181f51c6dd0465d063d0f11f267ccd81aa8d4fda65e7e213e5ae4a6da0c6493209753a089323c5bfdde091556681b0648f59b8b2684d82a240f7d5b8eefd645e6320270660e960467877a8561129b7114a617d36423905813b7dc594d88b0eb751ba946f54595f624b07da116f0971fc6e540a966364c8a1df698688b1ba91f9ac7a74f878a61c87ad3240d656c9ee80fd90d4f8c01ca89c8bc537380df079ba8a2e6f2a3cbeb6bfb9687a7cc323f2a9eafd81789ae783355764b23354ba3f693c4d774ed6ab89da8846604172ad96ab938a4beff64adf9594812f491a0ba98e6f77d4c40454047c20cfb2625c43608dc26d032e6f8b53bfc1243fbd23a14c077e2071997635fdb2ffb317cd0e116f1ea7649dcf80ead9dea010cc4e456893f16d7c534f980d27c3312f34fbf5c8ba9b\"\n            ],\n            \"gasLimit\" : [\n                \"0x79c0a002\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x6c44fb37\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest151Filler.json",
    "content": "{\n    \"randomStatetest151\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x41424143445a42f35b10773574016c9f\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x42\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest153Filler.json",
    "content": "{\n    \"randomStatetest153\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a\" : \"0x00\",\n\t\t\t\t\t\t    \"0xae72e2bf2302ebcd309e003e5be58830f96deddaf87bb89eeea159388bfe3ec1\" : \"0x020000\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x44420b4442432055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x42\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest154Filler.json",
    "content": "{\n    \"randomStatetest154\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x7db1267c8bba268d1408f7b3e269afee3fea86c5bc8aec8108fd6aaa954f5173b7d0e2328333e94698e0d570db9b316cba0adbae609d611ba1a2326004600d6005600f632de40a2773<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>635c2491eef1\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7767cc78eeac8d9db5297bde12b635c487b138a0dd4601a9236656945997db45a668500a3ba6eac5489fca6a1a60998fdd14d1f8b6df2f71d56852c0f085c7c3ba826a746e9dce4335b97488b092df3db7c8097366963ffc1f51e7f4740935567fc404dab22917cbb1e5cf6252d6e99952a889ec687e6bcdb9b3358f2b287d5d38793a6e6105063e96947760c35c317e5798e9a5f3cfef9030ea32917ec50268953856b1eae69744b4815f4808e2bcceaa482030b32689f51807af6e6840942dae7592985e688975e0ee12dbdc39eedbf43aabc2563df850d6781ed002fe78bd48083bb42742ee243eea1ecd201eef18f00f330fee8836df1234700f5824b76290232dd1863a69ca84d2786e74eed98d42b740cc037b156dd261441220cfaf15857c6e8b6f5e1eb9aee8d63ad473477df11660ac765fa5eebfccfed05bacf2809818d01db511686cde018f146e78fee9bff3ffe90a1b54cdc57ec52b6fda22f7f81fc1d9724b375ce206d29176797f9e42c2ec1ef6b468f7f8fbdb5011c4ddcddd72a6adde7d3d077cf96f9d13893a46aaaf5acc241eabd8712b6a2deea63f6f91cf162e2d6d65579257a17d7c66e07570d11280dc99\"\n            ],\n            \"gasLimit\" : [\n                \"0x6065bf3a\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x651c295b\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest155Filler.json",
    "content": "{\n    \"randomStatetest155\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x3494f39b6ca29473a199580308910155\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x457f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000006f3494f39b6ca29473a19958030891015560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x457f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000006f3494f39b6ca29473a1995803089101\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"579536172\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest156Filler.json",
    "content": "{\n    \"randomStatetest156\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x813982583141966b389c159aa48b3a88\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3506f813982583141966b389c159aa48b3a8860005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3506f813982583141966b389c159aa48b3a88\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"2147378193\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest157Filler.json",
    "content": "{\n    \"randomStatetest157\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0966ff351691689162f371a38d9b789e4360005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0966ff351691689162f371a38d9b789e43\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"391059071\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest158Filler.json",
    "content": "{\n    \"randomStatetest158\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe435060005155\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe4350\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x383bfc76\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest159Filler.json",
    "content": "{\n    \"randomStatetest159\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0xcbd00120239df2d03db2fdd9c233df848ead9d3c84d4\" : \"0xf327f570c11aa84a7a5480b98c51\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x324260e172acf6051580ff4e3ba75da449e7ab2b705cf75873b252caf4b51def86cf4988747e4b77d541c09d316acfebf3871d3a1944a5b975670f11d63a7d9c9b49750a0734d7313f746ba5fba6f3ff04148f4f39e4a28cc271e1ae0b89f2ad1413af2317c6a9628006d4157cdf7a3f30103f20611fe88431b16a79be995278aec271b56bc32543196c650621b66f1bfc718c0d9360cfb17a079aeca76a0b08cb4f0e5789426a6a26c3bef3710be80e4d646135f26076a178e17952f1667fa85f3b72ffa4c95bda9db87e2b8409a9b1c9e27346e5b9a49fd3689f943925eb4618577675acf6bf7b1b665940c32ef9086a95914496bc8bb76245fa2dc9cd3e29618e568966b2893ecd2e84766a8cf184a772e70b3e042b9584601e600b600760136304b1e2f273<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>6339570738f16df327f570c11aa84a7a5480b98c5175cbd00120239df2d03db2fdd9c233df848ead9d3c84d4556f6030a17e0f41dfce8be36a92b0d5e0d67a71c146187edefc7923a8aad22ca228ecee824c2d7c237ace7e52fd62bd649662a4fe5f78a0b34d84a28c14c9fea0f18d1d55870173546b3b99e17cae467e2f1667b7c9445b11382bf9d7ff632d1ccdc973ba913d9ebbb219ac7aa0f3b579caa81065e433d2b8cf8cbfb998ec52fe1eaea6d87bc7728315cc653ccf904948918741\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x712b835f3d9d2bd711b82bc3789135c9552a3962223b777f55a33e73998ad2f06a4ed6f25fc8856c8a525749b27c6ad568ed749589e17633797a16e71f79b4ef7d8aaf5252de3ab771d75b7888230935e2229a77019eb0de19bf8ce156f43713d4e7fc7c8e4a05eb7055bfcc74d63886a235d3195ec4ffb5b8d0e2981d360ab96470716c3480ed32bf1d810d463fee63f646c5d23572f2e778741514e9d2ddcda7c7311236f8fc564c6459f2044db767566340f115b2161c6c58dca4273276ab7dba59a8f7837bf38e2015040e0729abbead0f19b1cdc778a8e61745a96c3e4f4597566f4597629c6bfddff7c6b18ba01f163a6b65a66bbfa71fb76accc5decebf659df24d36b38e70fe2db90ba399950f4d2d3d08f96436f19563b113bc79206663747a4f9f4bbf7319ef422e02dc9d5b8a0aa64e2e5b106c5417559c69c67bd576141c2a77da9a695bc048023ce2e47da6a3a27314e6991ebcc4fa88351f556caea7aeacbe4b858d7c11d1ff9c90ce3ee7a294a8413e8a5b2b1ccc42328418739d2df3584249817040e86e243c89afb2608b9b32380916ca3d656a1d839af675f3768808b0d0c6811c472a67e9be5dfbee8a030e5bbcf28c327338b6bd2dd7e091d3d38d9de8e3bddab3afa5f2137180693f02159392a9ed8ce9213f4ee0908279692e61162f1e9695507c8f6aa90dc83ee13fbd09ed79dc7b1c7d54d52e4a0c4e4bf10760f3c845556086393fa12177a43230b0fc7994cdf997c343261e41c8a45ae19aa4ece5f45bc15dcb82c2bc436a9619e2eb92ae524b6df5ad7cc65340247d3475a2201d93c64bfb9a1e40d5610f512588865e49183ff9617d21896e1be033b42b4f21d5ecb6fea5f9fbed7d1554d470c21e1608c1a10ab043396c4076460fb57a54e9f9f708b5ee060c65e9c9ebed92d33960cf6bfa527276b5263aa69f84387464e0318ce3bd82632ca685ac74e4f0b09a9f8e6d7b40bfb9d53bddefd5bad10f40b972dd05b8617f4e892ef5a7f911a891213690d15f69429e9601dae799c9fd8a6c4c562cd8adfed3855eb4e661a663d96255a76b91d63a23edfc368d558c89287d0b88c712797e6fb21f4a84c6407a61a713c1ba9d957622fe80be46092751640e498de7687a828b2ff6b864fb279ea72f1e53c3b5848c1fd8b9533fc2772829b26881802082d00eb7ca786f7446a0f860299c628bc20e5deefd8b8360897931a41e6ff3d9f9554552fa142eb6c03a1683933c3f0cdcd9b7dc73410aee35eecfe12e2ae69036a27ae906232544439d735b8a404c30cae29e5fa56924e7b036f8b66b8e9970dd8113a8188b654f1cb648d8300f20b08869b0625d10dbb1d8db409d64e141c19b2f83\"\n            ],\n            \"gasLimit\" : [\n                \"0x6307f1d1\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x24a7152f\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest15Filler.json",
    "content": "{\n    \"randomStatetest15\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x436af043189b6197733280a2f1f03855\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000016f436af043189b6197733280a2f1f0385560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000016f436af043189b6197733280a2f1f038\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1501832876\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest161Filler.json",
    "content": "{\n    \"randomStatetest161\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x458a458076526052650a418c9b40863c\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c350437f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000001416f458a458076526052650a418c9b40863c60005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c350437f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000001416f458a458076526052650a418c9b40863c\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"757362865\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest162Filler.json",
    "content": "{\n    \"randomStatetest162\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x355a7f614497339e3b63878b36980455\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f355a7f614497339e3b63878b3698045560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f355a7f614497339e3b63878b369804\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"725006509\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest163Filler.json",
    "content": "{\n    \"randomStatetest163\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000000034577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000426259cb6142a1196e3168c986758aa4\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000000034577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000426259cb6142a1196e3168c986758aa4\"\n            ],\n            \"gasLimit\" : [\n                \"0x16bc578c\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1579124913\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest164Filler.json",
    "content": "{\n    \"randomStatetest164\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n                            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe417f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000010000000000000000000000000000000000000000831305395560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe417f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000001000000000000000000000000000000000000000083130539\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1836140782\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest166Filler.json",
    "content": "{\n    \"randomStatetest166\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x8eb7099d9f160532785143c5937e1855\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff817f0000000000000000000000010000000000000000000000000000000000000000417f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c350456f8eb7099d9f160532785143c5937e185560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff817f0000000000000000000000010000000000000000000000000000000000000000417f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c350456f8eb7099d9f160532785143c5937e18\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1614644579\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest167Filler.json",
    "content": "{\n    \"randomStatetest167\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xa00b875630178a439384941395369e55\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000001437f0000000000000000000000000000000000000000000000000000000000000001027f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6fa00b875630178a439384941395369e5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000001437f0000000000000000000000000000000000000000000000000000000000000001027f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6fa00b875630178a439384941395369e\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"428826795\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest169Filler.json",
    "content": "{\n    \"randomStatetest169\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe447f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe60005155\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe447f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x33c6014b\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest16Filler.json",
    "content": "{\n    \"randomStatetest16\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f0000000000000000000000000000000000000000000000000000000000000000557f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000005531848f7aa4516d7d7578797e\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f0000000000000000000000000000000000000000000000000000000000000000557f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000005531848f7aa4516d7d7578797e\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1047145130\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest171Filler.json",
    "content": "{\n    \"randomStatetest171\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c350437f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>197ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe095560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c350437f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>197ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1726364132\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest172Filler.json",
    "content": "{\n    \"randomStatetest172\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0960005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff09\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"354059144\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest173Filler.json",
    "content": "{\n    \"randomStatetest173\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"945304eb96065b2a98b57a48a06ae28d285a71b5\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"6bacfb1469f9a4d5674a85b75f951d72d7a58e4a\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000001447fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b509ff979443703ca35560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000001447fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b509ff979443703ca3\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"1285346393\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest174Filler.json",
    "content": "{\n    \"randomStatetest174\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n\t\t\t    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x434155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x42\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest175Filler.json",
    "content": "{\n    \"randomStatetest175\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x6985f2837e09689844171a0235833c55\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3506f6985f2837e09689844171a0235833c5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3506f6985f2837e09689844171a0235833c\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"2139752886\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest176Filler.json",
    "content": "{\n    \"randomStatetest176\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x327fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c350427f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff041469988517f6889d92799e74664160005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x327fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c350427f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff041469988517f6889d92799e746641\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"242920391\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest177Filler.json",
    "content": "{\n    \"randomStatetest177\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x7e24654d920bee1c2af8b3225f6035ea04b87e1d3f2486057268ed05d8d6e5a67f3da4409848b450c9ab9713bf10ec5124e50fda175accc13d0db75bbc03a25a066d85332a97eae6e7219bc62ce53f23690f1df7f7b11c1659165b7c438533bc1f73a59ae2c28e633d8c971763576dd25386518678a15c64a2682c68bf3c1a7433af2e6dd0276f494254235fe7b28b1f997661eba4767c05f37a8b9b7980106e2bbe8744bed6d0f782ac6a99e07d9486451ab20e48c9e99f083973d5a10a57f4c3e7e3fa3bfd63a39006f35f7325ae8b67348d74c87e78d6dc699541fdf8d085697e58b02f9fef3f78554901cc888449b92fe07e74fb3069f7be725f408005886e73e720275f04f63284f6f10b6df25694b3a55936d06ed8c18d03d868d30b7766bd0d6a111f734650113a9f6b31ef3be38904ccd66a304bbf877e9d6ccc3e98fa65a685b0bf181c6dd67c9db728914ff2977b8c19193f67b9053f72c819b5bc5542945bd6a9079965d91f47a11f3862d346cb6b70d29eca71b0d12d01996b89763f13059617d671ddc626d93a3e3fda99999484470e34277f9ac904a6be6b8b9f0a91e98e2759a946222e419d34089491db069bbeeea7d19868e6fef55cd7440fbbdd7bf7cab153de2f407fc2c1f51952d5d5388159f73c98deb0a3f75d04eb70cee4f3dd886b6ba2ab3d1e110db841c50767a4e0ed4abca1bd1d6688861c4bb169fa8b63d253f1a4636a3979396965ae9c16c2197c57851d68f1ee6fff3c92e794d07cc6d2f5b964448fee1c3f52921cd138bfe26f57a3ce26ae8e622c80fcfb7f414b5750048e67dd2c715bdf907a881ef7a77dc8b166b413ebb4261bda628c26666d7ec3d2d20bdc7e117960da38d995574327fc1b63764875b839f395793a937b5f2793db93b23b7160bb44cf7bf515a85769d5f51851260f073969b185817c3e5b658753947f6ae534b0e68afa57a476ff52028737e7d342c1ddc7c5dc786fe6216838882c6f6e8519b16b2d9451ea2f048765576af461aab462031f6a64f0ae07fa9a64d4772252eb9e6aa14429a7e2a1d43482699065e44695fbea176d63d01d22231d221b6f8dfda47f5164a47454ab396f17257ddec269f67ed7c6d17ffac1c61372aaf587427eee43772c5f28fde9d395b65bf2d77e4eaa635bea61396414a53508797e2506ed2f921f29bf2fda1796f4396c4edb6f6ecc6d79fd82d9838a512df1454ce72268d8a32e0971c718b6836e4bcb788766f266a3edfdd24686274f684c4b0a7fd7082159766f4670a09a9e231bf61fe5f955a75b8870744ec89c81940d46be921c40917862e1c186679f354a704fd5537ceb310616acf9779c43c8f585c064fafa775d279d62aec380625fc16d601ef067eddffdf0f1359f386970fe2eb95c063421601a7a5f9256a6398651be88998deb83d16edd603992a27f758bda8c1bf974e49a52cf19c9bc32a79db4778535677e3caeae7f2f6ac54f147d2729c30d694bcb622c13106c3382d4c27bc4ee55eadb4921d97965e605bd3daa1c233230119dce876049813474dc4b3ec1d0ea8d73d182beb19cd3c8f198578d863907a60fd633a65872d93e47dc134fc815d9800bad3f2d58bb97b5776f42800f1f182951ba5aced03a7c3abd859969483189606297788fbf5565010d13f07077752867293dbfe29b7346020ef70d18cacd7508ccb3731b39\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x387814bf0652a6f3aefce6ef7be00599328bbf7e802e1ea22644a96fbf319d273c0e715067e4e5e74ecfc3ae60fd917b9224a4bbaa6db919506fc9e3cd4792dbecb1427e907653a3e359acf57c1e4afae77816fdc406706133e14efc6fe3ed1dc01f663f8e79c5fb6a32685ec748da76ab766d20766430b1775afa280f1c02e5617230d3b68fa16d4d73a1b27ae07b1096d44b02414374765d0907504a2f25e45aee4fdbb17b244e93714f36d9c035346d67ce3c18bf3d3af42f3b5f807689e8f429c0070a5812d602d25c4664cccfa7ddff8188f174c046eef00dcd5355c37d900a2ce940246fcaada0526acdd4eaf98a420bae34e22b37\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x72f740ab\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest178Filler.json",
    "content": "{\n    \"randomStatetest178\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x7d342beabe599e4bc177fd97d36df48d50650ba6129a9a83d4cf809ec21452357c620167f530c3265be9887f6e5b8186decdc00a6a801e5f56dd8d9d36a4806dbccc299e4bbf46ad577e25b5b1fc76b6999cb23a6a03c4035e36b8494135ee170647395da00b6e0a64c43f3358b8bdcf593c89fb70b865ef153b5195c77959256beb4f932095eb8ac80bc2c050f6f550a362aac77f5c4b197151df039d64b77dca22eb8fd4b8cf50fb85a36f1d909d1919a47fe97de5526726b4a47b866b7b13471056439457cd7cbc5060d978056ff5dd24a1f49e50b9f5924f473b2dc5306d67054ca575d0603e616291a3601460106009601f6338a57ddc73<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>630e3319c8f133\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x66fd78520a4acd897a6e29cf1b15f576b05a2bc0c18bb93a759d3f5e1ac5d34ba1e261c70b7afd59945da98cc373eac6aa543bae2e6726e3ff03ad2e788dc33f3b736ef736637d8ac680281bb29884e641473063e58e7318f5f4cbade311c02eed1c323c19bba7df4729406464b42ed0cb6d0189be83857fb09713ae69e7d2d472e6d85d23920625c84c39489fc80d272868f40c64cc6cb93ea5741d1918dfc8f61086b1b0637390a1934b637c37ec94877d3ea763b20b9e04fa589f30da18f1565bcf15ad38bc735b9d45b5d963cadd77e9e3db27853e7462a6417a4ac9af38f967a198c6f50deb53634bcbbe9c6a83a7357847acc4f6360fa46e43595a8936969798890170a6874b4e67391c228e9d0a754f68635d505c3f9a8c2555728626e286db52177c2228fb04d4b702bea78df3747d6fa1079394222b8d2a0dfc34ce6d9e5664062fa8977526ced3516147e12a7b9e36f6628dd9efe320bef809146e8fad97d5aedf559bcc15442b1fd347758332cb1d4bb96471a01de009dc175e3eae40d189755a7c1f46c55d3353af6fd0ee638735594b4bb2e6aa99fdbc96508431f421dd770b6379f9b5cbee55423a23c5538390612dc07c752c39f1c87a02777b0fa261dd883d49b2ae5c02c6e81bd0a53ba5d53e12530485664f77811ffaca4c688d18d6122f3a564151676f40f70e45da4fe562355ba17d36458de5f760c8148a11b1fece135e184d2dbf9ecf019d634d8498ae6c6862431f356e1940bc7bb1a252ece1b1605e467f328c79bb45440e29a9444f1948f3737dc02ec2c10862323af3bae0db487768f3aa49fb0967d7eb138302bcb9cedb6b327f4d35a39cf561f1ee73c294825a5de76bd6bf707c5a660e3a417b6ac0586e80ecb6300ea61a618b628d8fcc6c80a37fbfda4e162006259f39441a81fd310c9a323be96b826199149ebdb88ea3e87df96d06c71959b65c4a3e73b50da0a67590625ad154729d9a0a585ba3fc028fc342115f2308566e69cd557f7a7a73474bae3846016f5281b41609a85ee1b4244652d5c1360c9d30fe27dd2d62b415d06a278aafd0816e734b76a3500869747b893809a7c2a185836da26ef253e0a0de429e617a82f8f17f055b1b67fe7366d9a5a491fb47f997937d38e7e8d4cbe8fa227c8b70f8a70e7b667883e393d677c86a9c8ec7144c61cf62e2403893\"\n            ],\n            \"gasLimit\" : [\n                \"0x38c2a77b\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x6f33bb2d\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest179Filler.json",
    "content": "{\n    \"randomStatetest179\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x515480126a50a173506e066762129255\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3506f515480126a50a173506e06676212925560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3506f515480126a50a173506e0667621292\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1584198892\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest17Filler.json",
    "content": "{\n    \"randomStatetest17\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n\t\t\t\t\t\t    \"0x03e8\" : \"0x01\",\n                            \"0x7f000000000000000000000000000000000000000000000000000000000000c3\" : \"0xc350\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000001427f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000001430a7f000000000000000000000000000000000000000000000000000000000000000106813b375560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000001427f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000001430a7f000000000000000000000000000000000000000000000000000000000000000106813b37\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1639312514\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest180Filler.json",
    "content": "{\n    \"randomStatetest180\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x11576b693c128a9e0820609c050a219d\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000001447f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>6f11576b693c128a9e0820609c050a219d60005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000001447f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>6f11576b693c128a9e0820609c050a219d\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"566466109\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest183Filler.json",
    "content": "{\n    \"randomStatetest183\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x4134547075687854849d7b6465863055\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>436f4134547075687854849d7b646586305560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>436f4134547075687854849d7b64658630\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1159080385\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest184Filler.json",
    "content": "{\n    \"randomStatetest184\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"6d6e40885310545835a5b582dbc23ef026404bda\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x102b7fe66d\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"10000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0x75\",\n                        \"storage\" : {\n                            \"0x8c\" : \"0x823a02877cef7c1afb60663009def564\"\n                        }\n                    },\n                    \"<eoa:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x1d\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x070a217c02c8f2d4\",\n                \"code\" : \":raw 0x6f823a02877cef7c1afb60663009def564608c557bad2ae05769b991313726edbfa0881d9cc955b0f5154751da315696ea7ce130184b64f2507582c502d450349ff24fb8aeb2a46146687b666bd7bd0364946cb720c76d483f5afea0049251fd9793c4b0376afbb4ebcdc42fdd42edcd4b619cec787638009cea26a1abe570e3186ab790b7dc7db36e4cda2570b0847adf6e39579c7c43a4ac976cd507d493cdfaebe09936078e31c71c4665d34a4b816b8004\",\n                \"nonce\" : \"0x75\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x9740421ff0ff3ae3\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x1d\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x10c1142f2b8e8eb058\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x64dd3e4e84676723342c1dfaf9af4ef3\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"0x1c\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x6d1dd024\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest185Filler.json",
    "content": "{\n    \"randomStatetest185\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff411a7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000162805a8d3aa3\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff411a7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000162805a8d3aa3\"\n            ],\n            \"gasLimit\" : [\n                \"0x6ab0d01f\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1159525186\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest187Filler.json",
    "content": "{\n    \"randomStatetest187\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x75988036a0562096036b04518877199d\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff457f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000006f75988036a0562096036b04518877199d60005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff457f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000006f75988036a0562096036b04518877199d\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"925780098\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest188Filler.json",
    "content": "{\n    \"randomStatetest188\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x7859f3837971879455\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff817f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4286687859f383797187945560005155\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff817f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4286687859f38379718794\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x49195164\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest189Filler.json",
    "content": "{\n    \"randomStatetest189\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000035900bf3740474765060005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000035900bf37404747650\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1090808233\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest18Filler.json",
    "content": "{\n    \"randomStatetest18\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0x00\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000001077f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3504419860b9754998d503105a033436e67133a60005155\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000001077f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3504419860b9754998d503105a033436e67133a\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x6ec35ec4\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest190Filler.json",
    "content": "{\n    \"randomStatetest190\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0960005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff09\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"94912880\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest191Filler.json",
    "content": "{\n    \"randomStatetest191\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x678f0443457084700b645760018a1055\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000010000000000000000000000000000000000000000447ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f678f0443457084700b645760018a105560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000010000000000000000000000000000000000000000447ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f678f0443457084700b645760018a10\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"385910599\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest192Filler.json",
    "content": "{\n    \"randomStatetest192\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x014f8b588e368f08461f9f01b866e43aa79bbadc0980b242070b8cfbfc6540\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff347f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0460005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff347f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe04\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1168450397\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest194Filler.json",
    "content": "{\n    \"randomStatetest194\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff097f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff097f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"827862267\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest195Filler.json",
    "content": "{\n    \"randomStatetest195\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x010000000000000000000000000000000000000000\" : \"0xfffffffffffffffffffffffe0000000000000000000000010000000000000000\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c350417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff097f000000000000000000000001000000000000000000000000000000000000000055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c350417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff097f0000000000000000000000010000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"307405855\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest196Filler.json",
    "content": "{\n    \"randomStatetest196\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xf4\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe447f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000003703659c5b3a6d7b9a93543660005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe447f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000003703659c5b3a6d7b9a935436\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"672785598\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest197Filler.json",
    "content": "{\n    \"randomStatetest197\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c350437f00000000000000000000000000000000000000000000000000000000000000016e6a078e5652549f57423955\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c350437f00000000000000000000000000000000000000000000000000000000000000016e6a078e5652549f574239\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1542389267\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest198Filler.json",
    "content": "{\n    \"randomStatetest198\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"0000000000000000000000000000000000000000\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x42417ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff09ff614044129a0169a2689415\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x42417ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff09ff614044129a0169a2689415\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"968197125\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest199Filler.json",
    "content": "{\n    \"randomStatetest199\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x2e\" : \"0x03e8\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x30424543074242413155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x42\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest19Filler.json",
    "content": "{\n    \"randomStatetest19\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xff59876660063b7c8df1ff088a841455\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe3a7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe417f0000000000000000000000000000000000000000000000000000000000000001587f000000000000000000000000000000000000000000000000000000000000c3506fff59876660063b7c8df1ff088a84145560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe3a7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe417f0000000000000000000000000000000000000000000000000000000000000001587f000000000000000000000000000000000000000000000000000000000000c3506fff59876660063b7c8df1ff088a8414\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"500004062\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest1Filler.json",
    "content": "{\n    \"randomStatetest1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"945304eb96065b2a98b57a48a06ae28d285a71b5\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"balance\" : \"1000000000000000000\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x454543414341444259f2\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x42\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest200Filler.json",
    "content": "{\n    \"randomStatetest200\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x42051af2a24050039e9d3a678b028a0a\" : \"0x42051af2a24050039e9d3a678b028a0a\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x437f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>346f42051af2a24050039e9d3a678b028a0a8055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x437f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>346f42051af2a24050039e9d3a678b028a0a80\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1062273821\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest201Filler.json",
    "content": "{\n    \"randomStatetest201\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"0000000000000000000000000000000000000000\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff09ff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff8b8263974074da449e6861039960005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff09ff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff8b8263974074da449e68610399\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"953592918\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest202Filler.json",
    "content": "{\n    \"randomStatetest202\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xc350\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000000557f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6750a3190486f0\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000000557f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6750a3190486f0\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x3158e7cd\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest204Filler.json",
    "content": "{\n    \"randomStatetest204\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xffffffffffffffffffffffff000000000000000000000000ffffffffffffffff\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff098255\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0982\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1983843477\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest205Filler.json",
    "content": "{\n    \"randomStatetest205\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x3360b261edefa0326fdc74d570982966277b49cdb30a453fa06c34a7423da44ba2d04341af08c478b17a57318ab10ab43b3744333b0aa8864ac27b3fd022e380056735a5fcda3e9fdc25695972a076884de6d6b6b06dd45416c8110bae3c70576b433a4672777847e81823024ddd1292b929ad28e64a732b74c0ae1941d5936ecd35738e2f279273788f4aaf19907a532a6b0f117c32b6cb967aae8bdfcf86e2d4d64599986abcf65a20754f5a816c58ed669138f6a0448670b906bbf1eb145ced896c578de5aa27769006b1a784e84b6316d4e60c7053b0b6550c70a177cb7a3e88d4e83fb1897a09c2161ff6cc2679c178292687137854da672e316c66ef03dc9ac37e8e430b7c64d1939bf67383c4bafeb2f0471fe896b7c0e114bf6f152b266cc769ae4d38f3df618f5eeb9085601f601060086016632c019e2e73<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>626b8a0ef179e6b62e86237845e9605d61219d97c1d0145516f5355fe73384e87a6a87cc6d2378c81797ac3746bc562e2fd1145e14781307bc4ada39732e9d0e8725fde75c5abc313c11e3238c7cd9b7186a6a14f8d5c3cad9da5339446ad1311ccc67a0691559157a674825358b301ac42d7bcae31beb8b0849903402175ca3740f3fd690ad66287d6bf67a98c09e6de5717596052d30f4b9bb8046a6b67ef51b1b13c496e97bf9a2e67aeca97fa10a266f8cf22c10cc0375b514b25de466a146576b2cb565754efc80d4b8aa5497aa0fb4cbab90ee57298d322474d276366e04eab856c9f6070c80701fa30596dd0b6ea5bc38ba64e1d16aff1b8c61caa379064465a9308dbb1465294ddcb5fa32833e4ffb049c71761ed93472c7e58f171c6c8b51e2ec704d34897b80466e826b0c1ce2488511cbb1aaad26b075ed5ebf070be6e14eaa6b973423bcb2e0541307d88ff66d1b7e29fffb10218ca75bf3f9957d6ee27a0945278d5f9303b3e3f28a325a7f17905f7467c4afcbb3a43dbbd37e9591e3f5a82841ee9cb8b23f68b4572e8cd96d0f7daacbd3ab3bd5a8f427baf6ea7ae70d98d3948eafb74e2e4a158ac116c5219403c9073a457409c6e464bae32b2c856b15bda1b2176295fd1cecfe7d794ab2692061aa79387004112272204198437fc78d1dbe0e8932ce6f47828a2bf4df47446291b99d92a90de3623954589d36\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x74ac5e422199cb842b1fdcdef502d4142d033387c6d17fe1f03f0fc4a3c05daadf323f3bb04b7e33dbad9b32f058aa6df6d54c8d7ac95568ba4a6b33a2b0ce8d8c7480ab9e818cf8998564e6d38b92aa1ecd76aa8aff266dd266c96af419778c16a109cba6976922093e50bda96ac1333a946574ad748ad839546ff861257bb6a41cab34045ea7335e1c9667c67424f9baf8781e79e002a233a622f41f2744c21b6baed43543e0dfb9aa81fd1050326b0ebad84fda176f3438d3a7f083\"\n            ],\n            \"gasLimit\" : [\n                \"0x6f63a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x4dd39b8a\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest206Filler.json",
    "content": "{\n    \"randomStatetest206\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x45736d8e806138378d62087320313c55\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>427f0000000000000000000000000000000000000000000000000000000000000001427f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>6f45736d8e806138378d62087320313c5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>427f0000000000000000000000000000000000000000000000000000000000000001427f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>6f45736d8e806138378d62087320313c\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"2091011439\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest207Filler.json",
    "content": "{\n    \"randomStatetest207\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x01\" : \"0x2e\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x43413160439155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x42\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest208Filler.json",
    "content": "{\n    \"randomStatetest208\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xfffffffffffffffd000000000000000100000001\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0960005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff09\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"2144690611\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest209Filler.json",
    "content": "{\n    \"randomStatetest209\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0951537d3c6474623b781181a355\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0951537d3c6474623b781181a3\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"833511346\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest20Filler.json",
    "content": "{\n    \"randomStatetest20\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x31417f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0315208a675944747f7430661519049a55\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x31417f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0315208a675944747f7430661519049a\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1758540724\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest210Filler.json",
    "content": "{\n    \"randomStatetest210\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xffffffffffffffffffffffff000000000000000000000001fffffffffffffffe\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x457f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff427ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0960005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x457f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff427ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff09\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1780157802\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest211Filler.json",
    "content": "{\n    \"randomStatetest211\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x7e7a980b5b1c50ebb63d8e2211d3a79e841ee5e5946b7969dfb6ca1309c99e8f68d4ee9a50996902ee4e6937e1d07ad872cf04eb2a61fc336025a3648d5818a6457dc24f19f38d3deebb09968c812740339c6df46af95b7b0283acb1944a8ca37fbaaafeac115b9ec5adc16fea5a3a828d3483e495506a790ca75d8238ebbed6477c213d0177c10b33b6cf9362273973809ac39f11dffee928f3fb18e975186fb4a74e56142d4431bfa392dd5f71d32b6c40a2bd0beb6a8b24fc592b25f0680306f11e049124ec396ea3858d3339145af8c1c16747bea056639a7faf446cd9c7bf446ed2de67f1665adc479874053c2c53f0fc53a12af3c1951fdc7a5d20aee8f96874f392a4aa2a84a99c9390ab4bd4c39f521a2b91c2ea90\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7205d6a65458a0cdecda703b9d5440616f95b179076dfa7631cbf765dab81235497f97ddb6e8d399d5294ea49cfd736cdfa49a08a76dc08eff97542b54399a1b5f86b168d33cd083ac41074aa37e2f3f77a248d5db21a54d72c5053f2a79b2048d142fd588c56c48e39fa86bd16645ae7e31281c806dc847b38aba609fb88b5a3c6ce02d711bc1cb89419d740c65fcd7cd9abc94d8aaf97bfb874ed35e242cee6a462cac825efc8b53b43f7687a32b635c969cb779fecda8dcbd0dd35ef6ab482083a8b91f6199bb8050971caa227ac9ad77edf44708d99ac08e92c8c1ff6e536a3eb4625c2d8c514c8a799391a90cb528870e725560136162fb2632b2485e26d9604de562740ee89a2a5b4b1976272d046167f2151feea60ecc547dc9dc31b91ee0a712579874ebef218c4f015cbd8e76040f19d828eed7f9c070a127ce6067ad9831363977e2846559c8b97cfb3b0e8502cd54779657ab8571534f06e34b0d78259338706fac01057e66310e07ef4017629f7bf12ca747aafe8d7ccfcb78b5535dd267e3b445028e40113e1b9ccb7174b36264cfc5606cc1b4815c744393665f0a1c2ce78ff3679513083c95496a6869fe735535b8751fc5455769b44d7c9689576f2b76cb63bae9b5a47f8afd0c0466e798bf78d10b0efecc7e30695891cdc85e5f7a2827dc0b2ad41f92666faa9578ad77aa79aef0363cf4c69574bdfb74601f99ca8df4fbb481dd921b4b580a789e59c7557f305a1804f30d08c10394bc281772eef178800e0f79161010fdff6e028d5be7c0dfc295520e9b5f7fb781fb23ebd9657a42d8623d58350d43a9031a8b7e23c72ea3af0b137386987549539d695dd3e19c2cac0855644773b40cae7e824e3912190e7a6aec7bb06e5c923de8750674988f11efac6aabfc209262900167c7c18e7826b18c6e65696c94c79ed8f574d69ffb0de2046a602f2e9eeb57a764e01cae63fc0e6c11703a61af60fd0c2a6af1e06d545b5ed713146d8b98783da81f50ff3aa0e244e15e73dc099f2266d4ee2fc130375a1cf3341167c5c0586d179a0d6f622951a8e0fc895e4edf64bb1ec825496d2d85c826a263045936448e65d6608d729e8aeb3f8cf65a8addee9da3fe2b2ba4a0e6de6576a5221a372b64abb962d43a76c4519471d55c4425b57b3fef0f46bc07b1e1b4126cab307a91392cedd4fab180e6a943c648703e5058ea2aaa6aa3c1b019a9538e604a7581ea0f2b78b7ad3673313b8d926ab9ad21f10f2c3055732cf0b787838b61e5b85a079913a88cff7819d4066d551729495f62f0f4710cb0962d2460b57e5a5d09a316f7bdd937dd7f809b72c2e4b898648da7f7aea76ec34a016ab863705ad67458a497014e10e75f7d7710fc7784743cc30aa920ad10d24a82a074fa0db118dd5887c4346712f22b6d2e55e99769224338e00cd62030907f6df46f4b14bbd57d01102d02153fb569e432111eaafdd9bb68ff7d35f7590dff5a35eeea2bf69beae63c3e4e6fcbdc19d79f7bb919b2165aab76ce9cc9882ea258d9fd497168b5e9ed5ea3f323f94d5c6a6de663222b5971a8238121faeed83a8e\"\n            ],\n            \"gasLimit\" : [\n                \"0x927c0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x5c537837\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest212Filler.json",
    "content": "{\n    \"randomStatetest212\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"0000000000000000000000000000000000000001\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06180908ff3a68f28e61990a525560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06180908ff3a68f28e61990a52\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"49732651\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest214Filler.json",
    "content": "{\n    \"randomStatetest214\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x7b056b335a15a48d7b8841163a503963\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff150a6f7b056b335a15a48d7b8841163a50396360005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff150a6f7b056b335a15a48d7b8841163a503963\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"2101620901\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest215Filler.json",
    "content": "{\n    \"randomStatetest215\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x728f4f1065583139780a981510173b9c\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff446f728f4f1065583139780a981510173b9c60005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff446f728f4f1065583139780a981510173b9c\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"812357921\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest216Filler.json",
    "content": "{\n    \"randomStatetest216\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x766d67fe07853208991306449455\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c350447f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3506d766d67fe0785320899130644945560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c350447f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3506d766d67fe078532089913064494\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"679576029\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest217Filler.json",
    "content": "{\n    \"randomStatetest217\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x7f000000000000000000000000000000000000000000000000000000000000\" : \"0xc350\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000001377f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c35060005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000001377f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c350\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"473066872\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest219Filler.json",
    "content": "{\n    \"randomStatetest219\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x6253443a4104027144577f3399832055\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff437f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3506f6253443a4104027144577f339983205560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff437f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3506f6253443a4104027144577f33998320\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"73663722\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest220Filler.json",
    "content": "{\n    \"randomStatetest220\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x420380a03c4282a3540a1a333a843a55\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000016f420380a03c4282a3540a1a333a843a5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000016f420380a03c4282a3540a1a333a843a\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"207355039\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest221Filler.json",
    "content": "{\n    \"randomStatetest221\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x977789947e197f828151867a73771a55\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x457f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>6f977789947e197f828151867a73771a5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x457f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>6f977789947e197f828151867a73771a\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1862685167\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest222Filler.json",
    "content": "{\n    \"randomStatetest222\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x010000000000000000000000000000000000000000\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000001000000000000000000000000000000000000000043397f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3508160005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000001000000000000000000000000000000000000000043397f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c35081\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1727622047\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest225Filler.json",
    "content": "{\n    \"randomStatetest225\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x69786c858e0703566f95f89931119019\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff506f69786c858e0703566f95f8993111901960005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff506f69786c858e0703566f95f89931119019\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"159749189\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest226Filler.json",
    "content": "{\n    \"randomStatetest226\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x55\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c350357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe5a605560005155\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c350357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe5a60\"\n            ],\n            \"gasLimit\" : [\n                \"0x6ac3e368\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x1c91b9d0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest227Filler.json",
    "content": "{\n    \"randomStatetest227\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x108fa27475689e44993a528752a15233\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>6f108fa27475689e44993a528752a152335955\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>6f108fa27475689e44993a528752a1523359\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1176634565\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest228Filler.json",
    "content": "{\n    \"randomStatetest228\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x41434543454541443b5455\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x42\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest22Filler.json",
    "content": "{\n    \"randomStatetest22\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"000000000000417fffffffffffffffffffffffff\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x6d417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7e969f926084143c7960005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x6d417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7e969f926084143c79\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1814313700\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest230Filler.json",
    "content": "{\n    \"randomStatetest230\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c350427f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0960005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c350427f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"856911811\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest231Filler.json",
    "content": "{\n    \"randomStatetest231\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x7b98a491727a089df3365353329e8055\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>6f7b98a491727a089df3365353329e805560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>6f7b98a491727a089df3365353329e80\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1271549054\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest232Filler.json",
    "content": "{\n    \"randomStatetest232\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"0000000000000000000000000000000000000000\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0945415883ff9d7760005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0945415883ff9d77\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"2122038787\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest233Filler.json",
    "content": "{\n    \"randomStatetest233\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff42057f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff517f000000000000000000000001000000000000000000000000000000000000000065715460005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff42057f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff517f0000000000000000000000010000000000000000000000000000000000000000657154\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"2008364606\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest236Filler.json",
    "content": "{\n    \"randomStatetest236\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\",\n                            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe417f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000004339185560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe417f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f0000000000000000000000010000000000000000000000000000000000000000433918\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1566255112\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest237Filler.json",
    "content": "{\n    \"randomStatetest237\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n                            \"0xef\" : \"0x010000000000000000000000000000000000000000\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000000000000000000000000000000000000000000001537f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000000039385560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000000000000000000000000000000000000000000001537f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000003938\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"978542004\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest238Filler.json",
    "content": "{\n    \"randomStatetest238\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x7c748813587e990566719934f342316c\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff307fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f7c748813587e990566719934f342316c60005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff307fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f7c748813587e990566719934f342316c\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"267928924\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest23Filler.json",
    "content": "{\n    \"randomStatetest23\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x89418c1076f1544315601489386c9155\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f0000000000000000000000000000000000000000000000000000000000000001427f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f89418c1076f1544315601489386c915560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f0000000000000000000000000000000000000000000000000000000000000001427f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f89418c1076f1544315601489386c91\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"667758155\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest242Filler.json",
    "content": "{\n    \"randomStatetest242\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe427f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0860005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe427f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"2110467172\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest243Filler.json",
    "content": "{\n    \"randomStatetest243\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x42454466407640686255455866849055\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3506f4245446640764068625545586684905560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3506f424544664076406862554558668490\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"77136812\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest244Filler.json",
    "content": "{\n    \"randomStatetest244\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x4542074343424141315155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x42\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest245Filler.json",
    "content": "{\n    \"randomStatetest245\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\",\n                            \"0x877c3914165043458789\" : \"0x014f8b588e368f08461f9f01b866e43aa79bbadc0980b242070b8cfbfc6540\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff157f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0469877c39141650434587895560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff157f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0469877c3914165043458789\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"278621847\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest246Filler.json",
    "content": "{\n    \"randomStatetest246\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"945304eb96065b2a98b57a48a06ae28d285a71b5\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0xd9250a4f8c\" : \"0x00\",\n\t\t\t\t\t\t    \"0xe03b\" : \"0x03e8\"\n                        }\n                    },\n                    \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x434241314441434293170955\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x42\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest247Filler.json",
    "content": "{\n    \"randomStatetest247\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x014f8b588e368f08461f9f01b866e43aa79bbadc0980b242070b8cfbfc6540\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0460005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe04\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1135930745\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest248Filler.json",
    "content": "{\n    \"randomStatetest248\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xc360\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000000000000000000000000000000000000000000001427f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8636f2599055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000000000000000000000000000000000000000000001427f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8636f25990\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"549769638\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest249Filler.json",
    "content": "{\n    \"randomStatetest249\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000012807f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000003960005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000012807f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000039\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1871659531\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest24Filler.json",
    "content": "{\n    \"randomStatetest24\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x41417f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff459d7f0000000000000000000000000000000000000000000000000000000000000001817f000000000000000000000000000000000000000000000000000000000000c35095418211337b0530435560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x41417f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff459d7f0000000000000000000000000000000000000000000000000000000000000001817f000000000000000000000000000000000000000000000000000000000000c35095418211337b053043\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1715561909\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest250Filler.json",
    "content": "{\n    \"randomStatetest250\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x557ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>627f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>6a328b186e166407917c7af102925060005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x557ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>627f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>6a328b186e166407917c7af1029250\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1535680761\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest251Filler.json",
    "content": "{\n    \"randomStatetest251\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f0000000000000000000000000000000000000000000000000000000000000000447f000000000000000000000000000000000000000000000000000000000000c3505b7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe417f00000000000000000000000000000000000000000000000000000000000000006867f1\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f0000000000000000000000000000000000000000000000000000000000000000447f000000000000000000000000000000000000000000000000000000000000c3505b7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe417f00000000000000000000000000000000000000000000000000000000000000006867f1\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"395877699\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest252Filler.json",
    "content": "{\n    \"randomStatetest252\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x387b414543444043899e863a628b55\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x42\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest254Filler.json",
    "content": "{\n    \"randomStatetest254\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x059b6b83f294740688598c52195a9255\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000001000000000000000000000000000000000000000041417f0000000000000000000000000000000000000000000000000000000000000001447fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3506f059b6b83f294740688598c52195a925560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000001000000000000000000000000000000000000000041417f0000000000000000000000000000000000000000000000000000000000000001447fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3506f059b6b83f294740688598c52195a92\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1544798975\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest257Filler.json",
    "content": "{\n    \"randomStatetest257\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff337f000000000000000000000000000000000000000000000000000000000000000099447ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c350735b9f81208b6f526655\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff337f000000000000000000000000000000000000000000000000000000000000000099447ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c350735b9f81208b6f5266\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"519689383\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest259Filler.json",
    "content": "{\n    \"randomStatetest259\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x04831adc0812f0954492740790070955\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000100000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000001587fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3506f04831adc0812f095449274079007095560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000100000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000001587fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3506f04831adc0812f09544927407900709\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"250917223\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest25Filler.json",
    "content": "{\n    \"randomStatetest25\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x427f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000010000000000000000000000000000000000000000437f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff807f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6844f1389163a444405b123678749c55\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x427f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000010000000000000000000000000000000000000000437f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff807f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6844f1389163a444405b123678749c\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x731ee4d0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest260Filler.json",
    "content": "{\n    \"randomStatetest260\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000001a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c350f36409156a6aa261413b56f20855\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000001a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c350f36409156a6aa261413b56f208\"\n            ],\n            \"gasLimit\" : [\n                \"0x7a120\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1762323696\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest261Filler.json",
    "content": "{\n    \"randomStatetest261\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0x00\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x7f0000000000000000000000000000000000000000000000000000000000000000447fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000100000000000000000000000000000000000000001231b61993\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f0000000000000000000000000000000000000000000000000000000000000000447fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000100000000000000000000000000000000000000001231b61993\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x14fb56ac\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest263Filler.json",
    "content": "{\n    \"randomStatetest263\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"945304eb96065b2a98b57a48a06ae28d285a71b5\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x014f8b588e368f08461f9f95eb620faca1c09044bcfafae26de901d3a614f5\"\n                        }\n                    },\n                    \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5807f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0418625560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5807f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe041862\"\n            ],\n            \"gasLimit\" : [\n                \"0x79881db9\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"767067244\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest264Filler.json",
    "content": "{\n    \"randomStatetest264\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe427f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0955\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe427f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff09\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1165785335\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest265Filler.json",
    "content": "{\n    \"randomStatetest265\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3503b7f000000000000000000000000000000000000000000000000000000000000c3506a7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000010000000000000000000000000000000000000000745b9b824070397f921960005155\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3503b7f000000000000000000000000000000000000000000000000000000000000c3506a7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000010000000000000000000000000000000000000000745b9b824070397f9219\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x2217865b\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest266Filler.json",
    "content": "{\n    \"randomStatetest266\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x3041047f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000005555945667793459633c993060005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x3041047f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000005555945667793459633c9930\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"249765705\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest267Filler.json",
    "content": "{\n    \"randomStatetest267\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"945304eb96065b2a98b57a48a06ae28d285a71b5\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0xb5a132776d398e3b7c14686a07346f600051\" : \"0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a\"\n                        }\n                    },\n                    \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x447f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000007e7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5a132776d398e3b7c14686a07346f60005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x447f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000007e7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5a132776d398e3b7c14686a07346f\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"256968366\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest268Filler.json",
    "content": "{\n    \"randomStatetest268\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x7466f0a0733d86326393406340944255\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000016f7466f0a0733d8632639340634094425560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000016f7466f0a0733d863263934063409442\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"593549642\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest269Filler.json",
    "content": "{\n    \"randomStatetest269\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xffffffffffffffffffffffffffffffffffffffff\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6676029968ffa27d0455\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6676029968ffa27d04\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1239417538\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest26Filler.json",
    "content": "{\n    \"randomStatetest26\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x2e\" : \"0x03e8\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x434242445b41310755\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x42\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest270Filler.json",
    "content": "{\n    \"randomStatetest270\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\",\n                            \"0xc350\" : \"0xffffffffffffffffffffffffffffffffffffffff\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x427f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000001395560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x427f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000139\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1633146389\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest271Filler.json",
    "content": "{\n    \"randomStatetest271\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f0000000000000000000000000000000000000000000000000000000000000001457f000000000000000000000000000000000000000000000000000000000000c350417f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f0000000000000000000000000000000000000000000000000000000000000000357f00000000000000000000000000000000000000000000000000000000000000000b6d7d958a0269995560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f0000000000000000000000000000000000000000000000000000000000000001457f000000000000000000000000000000000000000000000000000000000000c350417f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f0000000000000000000000000000000000000000000000000000000000000000357f00000000000000000000000000000000000000000000000000000000000000000b6d7d958a026999\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"193990328\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest273Filler.json",
    "content": "{\n    \"randomStatetest273\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"0000000000000000000000000000000000000001\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x4342424343425b4495fff04285609955\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x42\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest274Filler.json",
    "content": "{\n    \"randomStatetest274\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffffa405457f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>88015a9a0542a13a051497514215\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffffa405457f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>88015a9a0542a13a051497514215\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"191496672\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest275Filler.json",
    "content": "{\n    \"randomStatetest275\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x437f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000197ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09656756323c597455\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x437f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000197ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09656756323c5974\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"4157391\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest276Filler.json",
    "content": "{\n    \"randomStatetest276\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x4382349f7b370589141a31f39741a4f2\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f4382349f7b370589141a31f39741a4f260005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f4382349f7b370589141a31f39741a4f2\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1026778874\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest278Filler.json",
    "content": "{\n    \"randomStatetest278\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x7f000000000000000000000000000000000000000000000000000000000000\" : \"0xffffffffffffffffffffffffffffffffffffffff\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000001377f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff60005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000001377f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1577249919\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest279Filler.json",
    "content": "{\n    \"randomStatetest279\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000010000000000000000000000000000000000000000947f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>60005155\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000010000000000000000000000000000000000000000947f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x4e91b038\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest27Filler.json",
    "content": "{\n    \"randomStatetest27\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xffffffffffffffffffffffff000000000000000000000001fffffffffffffffe\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000000960005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000001000000000000000000000000000000000000000009\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"541933198\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest280Filler.json",
    "content": "{\n    \"randomStatetest280\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x423b3c407e7c6f16718668738d193cf2\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000000143507f000000000000000000000000000000000000000000000000000000000000c350417f00000000000000000000000000000000000000000000000000000000000000006f423b3c407e7c6f16718668738d193cf260005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000000143507f000000000000000000000000000000000000000000000000000000000000c350417f00000000000000000000000000000000000000000000000000000000000000006f423b3c407e7c6f16718668738d193cf2\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"809294938\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest281Filler.json",
    "content": "{\n    \"randomStatetest281\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x649a7a3457645670a27fa170639718a2\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>457f000000000000000000000000000000000000000000000000000000000000c350417f00000000000000000000000000000000000000000000000000000000000000016f649a7a3457645670a27fa170639718a260005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>457f000000000000000000000000000000000000000000000000000000000000c350417f00000000000000000000000000000000000000000000000000000000000000016f649a7a3457645670a27fa170639718a2\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1714316412\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest282Filler.json",
    "content": "{\n    \"randomStatetest282\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>ff447f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff429d415560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>ff447f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff429d41\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"2067523496\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest283Filler.json",
    "content": "{\n    \"randomStatetest283\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000013960005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000139\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1602431327\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest285Filler.json",
    "content": "{\n    \"randomStatetest285\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x413443f3404242433389ff723810\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x42\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest286Filler.json",
    "content": "{\n    \"randomStatetest286\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x014f8b588e368f08461f9f01b866e43aa79bbadc0980b242070b8cfbfc6540\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x5a7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000009582860460005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x5a7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000000095828604\"\n            ],\n            \"gasLimit\" : [\n                \"0x7b20fbbe\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1522313647\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest287Filler.json",
    "content": "{\n    \"randomStatetest287\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>ff7f00000000000000000000000100000000000000000000000000000000000000000759\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>ff7f00000000000000000000000100000000000000000000000000000000000000000759\"\n            ],\n            \"gasLimit\" : [\n                \"0xeeda71\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1406933351\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest288Filler.json",
    "content": "{\n    \"randomStatetest288\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x76404140424242458c1f11410b\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x42\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest28Filler.json",
    "content": "{\n    \"randomStatetest28\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : \"0x38129d68939a19a2697172926f6a6736\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff417f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>6f38129d68939a19a2697172926f6a67363055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff417f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>6f38129d68939a19a2697172926f6a673630\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1370440167\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest290Filler.json",
    "content": "{\n    \"randomStatetest290\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xfffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffff\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe830960005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe8309\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1834111958\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest291Filler.json",
    "content": "{\n    \"randomStatetest291\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xffffffffffffffffffffffffffffffffffffffff\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000015560005155\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f0000000000000000000000000000000000000000000000000000000000000001\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x3f7ada4a\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest292Filler.json",
    "content": "{\n    \"randomStatetest292\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>417f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000013063a09c825a338e\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>417f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000013063a09c825a338e\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"828199880\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest293Filler.json",
    "content": "{\n    \"randomStatetest293\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\",\n                            \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\" : \"0x458962699489837460090897f3056682\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe417f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f458962699489837460090897f3056682845560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe417f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f458962699489837460090897f305668284\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1022808999\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest294Filler.json",
    "content": "{\n    \"randomStatetest294\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x057fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe3c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9d0718f377825843028dfa02158878\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x057fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe3c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9d0718f377825843028dfa02158878\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1741399653\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest295Filler.json",
    "content": "{\n    \"randomStatetest295\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>31353a0b3c8b17eb55\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>31353a0b3c8b17eb\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"587483939\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest296Filler.json",
    "content": "{\n    \"randomStatetest296\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff417f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>385b9655558f510a6c73\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff417f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>385b9655558f510a6c73\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"185739865\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest297Filler.json",
    "content": "{\n    \"randomStatetest297\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x91085661509214157d9c8a7775851855\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>437f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe426f91085661509214157d9c8a777585185560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>437f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe426f91085661509214157d9c8a77758518\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"2086766474\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest298Filler.json",
    "content": "{\n    \"randomStatetest298\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x7c542006528b69ff3a7a3a0401613c55\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3500a6f7c542006528b69ff3a7a3a0401613c5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3500a6f7c542006528b69ff3a7a3a0401613c\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"2114938379\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest299Filler.json",
    "content": "{\n    \"randomStatetest299\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x540813697adf70f20906389d128bf055\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f540813697adf70f20906389d128bf05560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f540813697adf70f20906389d128bf0\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"440906036\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest29Filler.json",
    "content": "{\n    \"randomStatetest29\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xffffffffffffffffffffffffffffffffffffffff\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff087fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0955\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff087fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff09\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"558543347\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest2Filler.json",
    "content": "{\n    \"randomStatetest2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x3412a47c889e8da06a04049f04988855\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>58437f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000016f3412a47c889e8da06a04049f0498885560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>58437f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000016f3412a47c889e8da06a04049f049888\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"2083830597\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest300Filler.json",
    "content": "{\n    \"randomStatetest300\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f0000000000000000000000000000000000000000000000000000000000000000447f000000000000000000000000000000000000000000000000000000000000c350757f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c35060005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f0000000000000000000000000000000000000000000000000000000000000000447f000000000000000000000000000000000000000000000000000000000000c350757f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c350\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1430892634\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest301Filler.json",
    "content": "{\n    \"randomStatetest301\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\" : \"0x737aa092f1975664518a55\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000003784946a737aa092f1975664518a5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000003784946a737aa092f1975664518a\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"323025358\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest302Filler.json",
    "content": "{\n    \"randomStatetest302\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0x00\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000010000000000000000000000000000000000000000971a7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff447f00000000000000000000000000000000000000000000000000000000000000006989206c0b8a01867bf155\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000010000000000000000000000000000000000000000971a7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff447f00000000000000000000000000000000000000000000000000000000000000006989206c0b8a01867bf1\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x774e407c\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest303Filler.json",
    "content": "{\n    \"randomStatetest303\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0x00\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>457f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff441a35803a0ba46699913755\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>457f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff441a35803a0ba466999137\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x377df0d4\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest304Filler.json",
    "content": "{\n    \"randomStatetest304\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0x00\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x7f0000000000000000000000010000000000000000000000000000000000000000a27f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff167ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff42070b8c5430070bf15560005155\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f0000000000000000000000010000000000000000000000000000000000000000a27f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff167ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff42070b8c5430070bf1\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x293d448f\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest305Filler.json",
    "content": "{\n    \"randomStatetest305\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x606e048240069c409313318736200b55\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000006f606e048240069c409313318736200b5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000006f606e048240069c409313318736200b\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"218159006\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest306Filler.json",
    "content": "{\n    \"randomStatetest306\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x60d36e84517b3285b0867cd4144ff5f688d60b6a07592395d95e37246c06736c78c9fa9e4b5e5db5a4b6ac4ced6dd169cda4fc3c11e9a6f0b4cec2f56019617df7a363788c155473412582d556f06c6d5864cf4be6a2d1318b8e40ba1377454cc8d0510823591dee680d7dddc8c149bfcc24c65c69e66c2b9d3e28f05faf2587c446509405759901ec0946bf3d786827225faf5da81e158cd9b2b4666f71a29fbe89f77c340dcbd7d67aedf852136b6c76affb38beb802e0af269e65c22f52807c677b5e2c7d8c473aff18fe912c7ed21ab60fe5d4916a76c93539332c6ab16b3f81b990f4b34b0228c7f5b1656bdd21d458717330e4be7d7bb91cc95818140eef086cd82d2d6f0d66c92a7ffb27125a625c77a8967268f212339508d6f60d9c93a9e201f2ae883cb9752460ec0dcb4ba3b84a4db899c29f08ef1b0f506b4f3c05601f6001601060116328b0eb5f73<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>630a4eb375f17df238e15d7d51240301521f173d628e7a68d01354faaf406ce541f753db89671f6aedcf261f632e6244e8c3799a2de002f15ba4681fd3c609c0f522dfd964f95def9926f812327781b2de33196cc22776e9b26d8a0d65c57bdac987d0b3e0db66c0f1232c7add3365f209cc53592f73502d0c5889b1bbf131f8bb6a6b5e2e067b9ef676768d48b3f5790c3304e046f0a9c8a838a0596583d6258f196dcf982a9de5cec4f871470e7a6c9289615e1e7d140fdc038972916223fb8012e29350295f3919cb28a36411845930d5e91b68510faac5e0677953467cedb653f73818749e8cbaf15a5d64ba7ee5cabc98137167b924a2aac9147f159713d115e0225a84a54d6471dc7a01a7e4e814145305c9d04d2880c5be42fc6c52ced3e983d91a580a4142021b73e99c3180117914b9ad03c580a8dac862be9b599a73ccfcfb230bcffc425c13c265f3b06b8c9f104c10752740765567374c211601a5f51501d18c48081998ff7b7a8bfdf0bec9eb4385b554870a996e0cab662d991d0e5f9357f2f99f98\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x79f7441ed5bec692c84f9c7783152d38908fea76de8a06eca5ebcf7e81423a68b78d5f1a84706bdb516f17a29dd779ee16374163c1ab2a85a2097e7b6235aecf7cc509b9d184688f56ccfe8638c51ee70858f690e71b338261fd2b72db56f2a0923a6d1bc51dd15ff9aae18348213d68fc8e120c307a7490f46b2d528d86e503a251fd188764646dd3b8bc3c7066a32dcaa91da430f61aed0466338f17d9703f1c8648d0b19db4fcdcd0893f0f6f21c789306b8f8d110fbd563111fd088de367b9f001758786ced578880bb55e224855b0293f9277dc7201e63845a8d8eae7dc8e3e642820b61315716544e2fd297f018fe1df86427052e3a85c0c7748f6fa89b890be2a3b916794ecfff1e87a87582c991b0c61687637866981d0819020714fbaee296a9ac19ac255226d4d2cf967104b669a622e77fc4c7469aee1553e5cf5cb2a79726f07829adfa8a988fb07479add89c1a8947d88a9b361493025a66fd49776d7304a036894ecda2e148f7f87270cdd52727667c09ee625c7a37ac99ab8a195cd0a97fa9e7247f9d0f17888132eb3f44d24d3d49c0a2e6d4850ee413c36893d04dfa9826f7236a10c77f7da3d31db8eae3070972c9d722347d4a95604d40ba66a2f53710451be8f1994756471ba4d09257f6abe619cc850f123d4715bacc2b9cf167be82e629cf36521b290bab47b9597664c0890a5d6242211d344805a3d75460c21ca9ad05dec187ddecc44c9b1c0b4c0d34c66926db22974c0bc059a6aa6354a43bf26f06e7dfa7f0e07f4f3607a8bc1227b7f0d65d660aa3c1eb7731850729f5dc3285b398806dd4b54aecbe7cb367573a1aa8f062b33e27db1e2fdef478ac306ec57be3b6b0fd0fbbe558507ead60ce60a61eade67afdd8ba512300ecc686d511310578908f49660d163e372ddd2636dbf1c1b6d39292b97dbd48fee420c354d341365e64505aeffc89b6e764afc7f97200924ff8d68846e387f6bca4c4ea3f4e04ac8061efd5260577aa69c34a7287609d2448bb32d2687a46d54c893ba21520ec26e792c836ebb8c9c1005ab55d99c62150413fb7a7f8e2ec4766471e2452ee833fa10995e94d2c1cf89c64260836aab9b3c6a1f699776b5900f48b7c1f97dba13656a85fea0cc2d4fe85aa7a9766d767cfd6a3314acc32eea93e15c3077fa26a3917a48af0765b5690af372219af6c2e7e5b194e6db7f76ca0b28647c5066bfbf142ac3eb1361b77953e328106b1e817e8649a9bdf4f27834bd25279dc2b7a6fab4d4e4830602f84d298f5d2682183a226118fc6c452c99ead827293548afcfeaf9655e76240e57846151bb7b1c1cc5971f0ad83dc7b02c05c2bc0a3adeb65bf608eb5c0aaf186a887a4357e31bdd83940e443289727a6e36bfc974bc20e97fa8983f18137be520500b388fe2f63185c5c66bcc71a48c7fc9c210f73a4a73c4561f62adb5ed9d7ae9a0e4833f198dd3faa1af3ad59c282f3277fac135659e7eb7c9926fd5e954f6f42a9cd2cb6498da0767958716\"\n            ],\n            \"gasLimit\" : [\n                \"0x7576e7c8\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x5af02372\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest307Filler.json",
    "content": "{\n    \"randomStatetest307\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"945304eb96065b2a98b57a48a06ae28d285a71b5\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"//comment\" : \"In Shanghai it is impossible to pay for such CREATE instruction\",\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {}\n                    },\n        \t\t    \"62c01474f089b07dae603491675dc5b5748f7049\" : {\n                        \"shouldnotexist\" : \"1\"\n                    },\n                    \"91ed00a0a906270d466af043c4e111dadca970a3\" : {\n                        \"shouldnotexist\" : \"1\"\n                    },\n                    \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"d2571607e241ecf590ed94b12d87c94babe36db6\" : {\n                        \"shouldnotexist\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5547f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000037f055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5547f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000037f0\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"1254784781\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest308Filler.json",
    "content": "{\n    \"randomStatetest308\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"945304eb96065b2a98b57a48a06ae28d285a71b5\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x30f38c9a600051\" : \"0x5cf25686ffffffffffffffff461b52f2\"\n                        }\n                    },\n                    \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5357f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe427f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000010000000000000000000000000000000000000000085a01096630f38c9a60005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5357f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe427f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000010000000000000000000000000000000000000000085a01096630f38c9a\"\n            ],\n            \"gasLimit\" : [\n                \"0x5cf2ad64\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"23682877\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest309Filler.json",
    "content": "{\n    \"randomStatetest309\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x43454545085a55\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x42\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest30Filler.json",
    "content": "{\n    \"randomStatetest30\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : \"0x2e\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x41314155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x42\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest310Filler.json",
    "content": "{\n    \"randomStatetest310\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x44587fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\" : \"0x650645597c796e9c979555\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x44587fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff59907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1a37160b6a650645597c796e9c97955560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x44587fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff59907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1a37160b6a650645597c796e9c9795\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"460778909\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest311Filler.json",
    "content": "{\n    \"randomStatetest311\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x13971264a1197d72ff18971902387b55\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x447f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3506f13971264a1197d72ff18971902387b5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x447f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3506f13971264a1197d72ff18971902387b\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"97322261\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest312Filler.json",
    "content": "{\n    \"randomStatetest312\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff427f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f0000000000000000000000000000000000000000000000000000000000000000187b55\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff427f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f0000000000000000000000000000000000000000000000000000000000000000187b\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"992438124\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest313Filler.json",
    "content": "{\n    \"randomStatetest313\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x0b7f00000000000000000000000000000000000000000000000000000000000000013c7f000000000000000000000000000000000000000000000000000000000000c350a345457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8287a3208c8c5a60005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x0b7f00000000000000000000000000000000000000000000000000000000000000013c7f000000000000000000000000000000000000000000000000000000000000c350a345457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8287a3208c8c5a\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"827973881\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest315Filler.json",
    "content": "{\n    \"randomStatetest315\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x98516a388683755669892b8b37195755\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff067f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f98516a388683755669892b8b3719575560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff067f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f98516a388683755669892b8b371957\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"332964958\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest316Filler.json",
    "content": "{\n    \"randomStatetest316\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0855\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"973933687\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest318Filler.json",
    "content": "{\n    \"randomStatetest318\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x8206a30a83887e5a3164667796308d55\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c350457f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3506f8206a30a83887e5a3164667796308d5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c350457f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3506f8206a30a83887e5a3164667796308d\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"603571959\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest31Filler.json",
    "content": "{\n    \"randomStatetest31\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x010000000000000000000000000000000000000000\" : \"0xc350\",\n                            \"0x387f000000000000000000000001000000000000000000000000000000000000\" : \"0xc350\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x387f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000090375560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x387f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000009037\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1344810912\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest320Filler.json",
    "content": "{\n    \"randomStatetest320\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff45457f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3505b0a36095511805131558f14fc3b\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff45457f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3505b0a36095511805131558f14fc3b\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"831662408\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest321Filler.json",
    "content": "{\n    \"randomStatetest321\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006a7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff033a06869867986202413a537c60005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006a7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff033a06869867986202413a537c\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1664390209\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest322Filler.json",
    "content": "{\n    \"randomStatetest322\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x1206060508840294304101a3128f3455\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000427f000000000000000000000000000000000000000000000000000000000000c3506f1206060508840294304101a3128f345560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000427f000000000000000000000000000000000000000000000000000000000000c3506f1206060508840294304101a3128f34\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"824326372\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest323Filler.json",
    "content": "{\n    \"randomStatetest323\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x6f7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe74977f000000000000000000000000000000000000000000000000000000000000c3506f6b7936181136392060005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x6f7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe74977f000000000000000000000000000000000000000000000000000000000000c3506f6b79361811363920\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1955628831\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest325Filler.json",
    "content": "{\n    \"randomStatetest325\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc18\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x437fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff427f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff427fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81090360005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x437fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff427f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff427fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe810903\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"457480517\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest326Filler.json",
    "content": "{\n    \"randomStatetest326\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000000034577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000426259cb6142a1196e3168c986758aa4\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000000034577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000426259cb6142a1196e3168c986758aa4\"\n            ],\n            \"gasLimit\" : [\n                \"0x16bc578c\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1579124913\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest327Filler.json",
    "content": "{\n    \"randomStatetest327\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x457ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000001458b5554397513\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x457ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000001458b5554397513\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"592296179\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest329Filler.json",
    "content": "{\n    \"randomStatetest329\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xa48d775458574133769c8b750207ff55\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff426fa48d775458574133769c8b750207ff5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff426fa48d775458574133769c8b750207ff\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1532627820\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest332Filler.json",
    "content": "{\n    \"randomStatetest332\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x7c098e7d625a64319d9e514bf3507555\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3506f7c098e7d625a64319d9e514bf350755560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3506f7c098e7d625a64319d9e514bf35075\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1406473566\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest333Filler.json",
    "content": "{\n    \"randomStatetest333\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x410263f305963310856c15ff5037a055\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f410263f305963310856c15ff5037a05560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f410263f305963310856c15ff5037a0\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"807710883\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest334Filler.json",
    "content": "{\n    \"randomStatetest334\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x424468208e181851308b7c7a776863a1\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000013a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f424468208e181851308b7c7a776863a160005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000013a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f424468208e181851308b7c7a776863a1\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"916012823\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest335Filler.json",
    "content": "{\n    \"randomStatetest335\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c350617e7608617c95f3ff584076e07b5a4460005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c350617e7608617c95f3ff584076e07b5a44\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1650737351\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest336Filler.json",
    "content": "{\n    \"randomStatetest336\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"code\" : \"0x41443442f34241\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x41443442f34241\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x42\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest337Filler.json",
    "content": "{\n    \"randomStatetest337\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xc350\",\n                            \"0x0b9af27e9a6468a1\" : \"0xc350\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c350670b9af27e9a6468a15560005155\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c350670b9af27e9a6468a1\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x13da3c95\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest338Filler.json",
    "content": "{\n    \"randomStatetest338\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\",\n                            \"0xffffffff85620cd197ae9f93\" : \"0xffffffffffffffffffffffffffffffffffffffff\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff677a9df32e6851606c0119065560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff677a9df32e6851606c011906\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1766886327\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest339Filler.json",
    "content": "{\n    \"randomStatetest339\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x89029e850708a293905668f1a367a255\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3506f89029e850708a293905668f1a367a25560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3506f89029e850708a293905668f1a367a2\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1064880298\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest33Filler.json",
    "content": "{\n    \"randomStatetest33\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x6940566279386017a362876372698f55\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000015a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3506f6940566279386017a362876372698f5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000015a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3506f6940566279386017a362876372698f\"\n            ],\n            \"gasLimit\" : [\n                \"0x7da7527b\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"123424954\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest340Filler.json",
    "content": "{\n    \"randomStatetest340\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff095560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff09\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"39040167\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest341Filler.json",
    "content": "{\n    \"randomStatetest341\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x427f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff583481f36a85646d53671639175b940860005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x427f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff583481f36a85646d53671639175b9408\"\n            ],\n            \"gasLimit\" : [\n                \"0x432380\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1485632\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest342Filler.json",
    "content": "{\n    \"randomStatetest342\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x36314297399455797b42569e8f055655\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000000041147fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f36314297399455797b42569e8f05565560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000000041147fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f36314297399455797b42569e8f0556\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1662167236\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest343Filler.json",
    "content": "{\n    \"randomStatetest343\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xc350\",\n                            \"0x7f000000000000000000000000000000000000000000000000000000000000\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff1110103741355560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff111010374135\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1301366640\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest345Filler.json",
    "content": "{\n    \"randomStatetest345\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x417f0000000000000000000000000000000000000000000000000000000000000001447fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000000035420b417f056699168fa16d8d94113b60005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x417f0000000000000000000000000000000000000000000000000000000000000001447fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000000035420b417f056699168fa16d8d94113b\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"12028215\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest346Filler.json",
    "content": "{\n    \"randomStatetest346\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe095560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"87977970\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest347Filler.json",
    "content": "{\n    \"randomStatetest347\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"a7f7c8ef9bbbcfb0f7e81c1fd46bb732fba60592\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x0b3be1fc\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0xe9\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"code\" : \"0x36\",\n                        \"nonce\" : \"0x59\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x33498455\",\n                \"code\" : \":raw 0x64d552603c577e9a3805d8c55157a82b7660ef2a049cfbf79c15fa8e3261f121d213590fa3917d7d442a5e8734af2aaa4c859b452eed7860c2f7e051580427b6c3cc6d7fee617a0d64ef63e192256de5d2ea2689decfd971c7478effb06aa9e792747ce0492abde8c2f270e93d5ed0b213fed7ae59294537d4864c0e68bbe30ec5d1e6b854027862cfcbea15e8367dfaa080ee0da2b0d2ca892f5a764354370466ccddd03115ec8a7ad2e6c62c29425a45ec842fb74c369fb15a42e4b4e48b3eb70be2a0847469987980e6eaa539365a491d2366334f78f03acb177809e7525add39a234d3d2ef1cf8544a52389411ef846d3cd7f36d0d1db7f414860020171f07598cfb620e15a9681c843d60aee9fb8a4e7e37713afbf6ef9d1667513975c76f26ac35ce209b1e0a3bb7c19821368931537b4095ea42b32baf1ba596b9af5cce961ae705f8c9c5465e349633529871f64351169e7fe48ccbb866952fabbfcf40df723c564e109dbd4c9c15ee9ad625e96a5765f6f56ee0601677961da7ebad5f583f6eb6da7c8348425fe784f532f288963ccdbf9de3ac3ebc38b75a806b40e51b895c662d0bcab255a04b723f1e500517d17eb720e02f445cb046bd0fe7d2759438c79aa2dfcaef1cf57e4eb9c832f7ef449a9c32f673728f4b0dccdfa8fb1d447e2f681076ac51a98f76600a66b4692ca7e1e9c89f64cdf879cb0c625514977ebca28f2ec8bb3a092bd0c30849558fe16a4b7070cb05aec329c0286c26fff57795ce4ac7601160ea2d6656c8f2a554b43e263cc3a60e9fd0a26c0a5f7202f02888a731e84ab326610c77771f85025eb8c552943d2da5de48786015f5b8b5921d26c1e277d5a4cda5f1f77ec5f3a83e6ed6821ff025370e2fad05a0f364f58f3705c8761904d63e0f2e5bdbe2b0b1ddf82bb441c547634e8c1864737333e845ffa373c102303f727bfa14f4c445711f6f9695c36f3627df02a1fe2d7eca55faed6984000ab2a99545148bbe7369a47367bc24256acd6a3a22d5fb32434b1998297ae6b2edf08b72dc4598aa600e16707699a84e55ef611ea0e6da482f6c6e9d05d54bbb4ad06cd62622e469fbcd3e637a8f0d2ac9149b7076cce991cb5d4b4de1229e3decbcf46a3c7e46aa1fdc218d936e56f55b5a38bbd798361040e1badb1ab06adc38a723badfa07a95f78553de4df879855274a1904a31276d7938818021e69d8f5b9279478808a236deefd761df6bc151fded80bbe4ba725e7db7b9fc507f0b8121a009384c7bc4443747bd1ac9dc7682b32bec0937c7fb27ba3926acd0d67b41ba6c951788f1bb1b1168229d15cafdc63209c95df646566024013d766a01d6b8051c357243c9f464f423a2ae8efa4f9efd95777099eac9b0825d18018a5afcb6cecd9ab9a9655ae262db08a271d8adedbc3e7eb6acfd2d576ec297c09c4bd47a80dacd2b123e4e4e6232ef6d70acb10f2f44a62bbcef65a72576506ea119b051880b515f4414920badcd6f726c04e821516f6123c9c52f29e19bfe0fb10fab76536535cc0e01115c83369d4083db2d669654c2fe8c00e37bd78f663a2ce2425d2ce358e213d6c601208bb644fa656678de7633147fbd152c2ae682dec269245f07ba3c79f4e6e1978d40f42a494d44eba128b9d0228d637900cbab73455423156417fae331d26494d1ed4d06ecf206736f04292d5470d5091c48a80ba737372c35729c829af30db3625785ba0b3cfc4240d002276760f2770ead609b52db934a53063ec1c05488188fb37ce61059909b6c975c0e9401ef3b71b6d0ddae39867f3f0878bd172851a98a233fcafae289fc634c36c8b3064926d92deda3d8c5074d6a56daa511e7e693aab3d4347cebdd5b63238acdeedc3d8eb8f69ea18cb429ee8f09c26845507ba28eba916c74fd62cd9e587a8f013122d93579b6b7da091527251a4b70051be4f0f96f61e5dc4ab713c473174c7e2ebb463615b03c4787b74e8c204975399439fa553838f186ae028a47f3ccd46c5fcc46c11a36219f3ba1d34def7bee989fa61e60a2abd3652df9f8e5a1b53d9608e3bb04f5e852333d9c7d761836ef5761178bd07fde9a0ded16e1659a6c80281c259ce42e3fdbe23664ce783b58d595\",\n                \"nonce\" : \"0xe9\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x4ea91708\",\n                \"code\" : \":raw 0x36\",\n                \"nonce\" : \"0x59\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x1024d289465fa51769\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x73151af76abac2a99afe60eff5cfd8f68daf1b35e0608a690494ef4b1d043bf90e00916acf5f0332c3ef3aa972eba960aa557dc165d1a3c726953fc637fe643a60543de4159f3bc09673cd054235ddb44769fa2d6edb61b6e71feff2662043418ac9d2337bce1df4b842fbf8f07395b44bb506e8955d22a12176e2fb8e25bc546d77a6f5049a09f3126c915f14979d8c7c0cf88425567c6b8a6865b78e6d76208a641cb0d0651a758d9afdd5e36b2dcf740a8a1e2b19ebb0bc8ad6ac032577f3b5d483e40d0c9a40aaf32cebc478c0962e1ac5f6c648f47665f0850054ab4caab6eca1a24242087387c96452ad72e76a42a175db6c69a2d8cbcd70759249b040a797894765385557e947875851cfe9734edc8b613cbb6bf40b41b762fa3bcbc6b59ecc66971fef9e8ed16d691702b224f0e2f8ad12577a943401f57334d3207b884a40ed472960f03e4cab61c98268b5a73b6372ab45a7a4\"\n            ],\n            \"gasLimit\" : [\n                \"0x8409f3\"\n            ],\n            \"gasPrice\" : \"0x1d\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x7f3e3a6ac8834e68\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest348Filler.json",
    "content": "{\n    \"randomStatetest348\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x18208119191509036365739735608a55\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000142186f18208119191509036365739735608a5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000142186f18208119191509036365739735608a\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1329276634\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest349Filler.json",
    "content": "{\n    \"randomStatetest349\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\",\n                            \"0x01\" : \"0x00\",\n            \t\t\t    \"0x03e8\" : \"0x014f8b588e368f08461f9f01b866e43aa79bbadc0980b242070b8cfbfc6540\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe04425560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0442\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"201035010\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest350Filler.json",
    "content": "{\n    \"randomStatetest350\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe447f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff090860005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe447f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0908\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1634268072\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest351Filler.json",
    "content": "{\n    \"randomStatetest351\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x7f00000000000000000000000000000000000000000000000000000000000000\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0509355534707785320175fca41455\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0509355534707785320175fca414\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1215186094\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest352Filler.json",
    "content": "{\n    \"randomStatetest352\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000003a457f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>13428284f28a980b4539a39d1408\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000003a457f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>13428284f28a980b4539a39d1408\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x014eb9ae\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest353Filler.json",
    "content": "{\n    \"randomStatetest353\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000010000000000000000000000000000000000000000120ba49036880f86529655\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000010000000000000000000000000000000000000000120ba49036880f865296\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1727538107\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest354Filler.json",
    "content": "{\n    \"randomStatetest354\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c350603b35641a8e739f86980a433760005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c350603b35641a8e739f86980a4337\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"615164662\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest355Filler.json",
    "content": "{\n    \"randomStatetest355\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0x00\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>457f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000001666b56e87c5a499d5389306e55\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>457f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000001666b56e87c5a499d5389306e\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x275009c5\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest356Filler.json",
    "content": "{\n    \"randomStatetest356\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x014f8b588e368f08461f9f01b866e43aa79bbadc0980b242070b8cfbfc6540\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>827f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0460005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>827f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe04\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1329095939\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest357Filler.json",
    "content": "{\n    \"randomStatetest357\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c350427fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff09377c5380715560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c350427fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff09377c538071\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1516457170\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest358Filler.json",
    "content": "{\n    \"randomStatetest358\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x679b82a092078f136b5541888c057a55\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff437f000000000000000000000000000000000000000000000000000000000000c3506f679b82a092078f136b5541888c057a5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff437f000000000000000000000000000000000000000000000000000000000000c3506f679b82a092078f136b5541888c057a\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"623856537\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest359Filler.json",
    "content": "{\n    \"randomStatetest359\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff428d06809e75f26764867d853b0555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff428d06809e75f26764867d853b05\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"801407730\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest360Filler.json",
    "content": "{\n    \"randomStatetest360\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x0441548af30803135562840563829c55\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000016f0441548af30803135562840563829c5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000016f0441548af30803135562840563829c\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"991329291\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest361Filler.json",
    "content": "{\n    \"randomStatetest361\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x9e9092673a8f430b6ba1152090181655\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x41417ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff066f9e9092673a8f430b6ba115209018165560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x41417ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff066f9e9092673a8f430b6ba11520901816\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1958353085\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest362Filler.json",
    "content": "{\n    \"randomStatetest362\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"945304eb96065b2a98b57a48a06ae28d285a71b5\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0xffffffffffffffffffffffff6bacfb1469f9a4d5674a85b75f951d72d7a58e4a\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\"\n                        }\n                    },\n                    \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b50955\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b509\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"822238394\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest363Filler.json",
    "content": "{\n    \"randomStatetest363\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x7b20937d953695f369719f9a44790555\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c350117ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f7b20937d953695f369719f9a4479055560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c350117ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f7b20937d953695f369719f9a447905\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1276687966\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest364Filler.json",
    "content": "{\n    \"randomStatetest364\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x7332988d746694918859185920446d55\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c350076f7332988d746694918859185920446d5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c350076f7332988d746694918859185920446d\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"630230945\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest365Filler.json",
    "content": "{\n    \"randomStatetest365\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n                            \"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff42417f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000000000000000000000000000000000000000000000143b420785375560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff42417f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000000000000000000000000000000000000000000000143b42078537\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1219277154\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest366Filler.json",
    "content": "{\n    \"randomStatetest366\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x516f0395f57433725580758f32f19455\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff446f516f0395f57433725580758f32f1945560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff446f516f0395f57433725580758f32f194\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"2102558524\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest367Filler.json",
    "content": "{\n    \"randomStatetest367\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"945304eb96065b2a98b57a48a06ae28d285a71b5\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x7a5959339f3342838b55600051\" : \"0x880ad67c991058b3847ec9f491f7a8d6ecbb1dff5c2326e7e8e9eb560ca29ecd\"\n                        }\n                    },\n                    \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000447f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5447f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b51905810a6c7a5959339f3342838b5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000447f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5447f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b51905810a6c7a5959339f3342838b\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"734254896\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest368Filler.json",
    "content": "{\n    \"randomStatetest368\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"945304eb96065b2a98b57a48a06ae28d285a71b5\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"d2571607e241ecf590ed94b12d87c94babe36db6\" : {\n                        \"balance\" : \"1000\",\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe097f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b54206f06d870339356057907760005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe097f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b54206f06d8703393560579077\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"1135359124\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest369Filler.json",
    "content": "{\n    \"randomStatetest369\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x010000000000000000000000000000000000000000\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff437f000000000000000000000001000000000000000000000000000000000000000060005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff437f0000000000000000000000010000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"471893354\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest36Filler.json",
    "content": "{\n    \"randomStatetest36\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x447ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f0000000000000000000000010000000000000000000000000000000000000000448243628c0970843ba460005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x447ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f0000000000000000000000010000000000000000000000000000000000000000448243628c0970843ba4\"\n            ],\n            \"gasLimit\" : [\n                \"0x5a7f675f\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"2098819291\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest370Filler.json",
    "content": "{\n    \"randomStatetest370\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x44207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000001145344846604627f5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x44207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000001145344846604627f\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1561176030\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest371Filler.json",
    "content": "{\n    \"randomStatetest371\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"2118132562\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xc350\",\n                            \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\" : \"0x010000000000000000000000000000000000000000\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000010000000000000000000000000000000000000000435a10395560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000010000000000000000000000000000000000000000435a1039\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"2118132562\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest372Filler.json",
    "content": "{\n    \"randomStatetest372\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"945304eb96065b2a98b57a48a06ae28d285a71b5\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x945304eb96065b2a98b57a48a06ae28d285a71b4\"\n                        }\n                    },\n                    \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f0000000000000000000000000000000000000000000000000000000000000001180860005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000011808\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"1833691657\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest376Filler.json",
    "content": "{\n    \"randomStatetest376\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"0000000000000000000000000000000000000001\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff427fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09ff8c316460005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff427fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09ff8c3164\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1872596219\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest378Filler.json",
    "content": "{\n    \"randomStatetest378\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1675637682\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x855b445834721a5706f2891711f00255\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff547f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000005a7f00000000000000000000000000000000000000000000000000000000000000016f855b445834721a5706f2891711f0025560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff547f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000005a7f00000000000000000000000000000000000000000000000000000000000000016f855b445834721a5706f2891711f002\"\n            ],\n            \"gasLimit\" : [\n                \"0x4961239b\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1675637682\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest379Filler.json",
    "content": "{\n    \"randomStatetest379\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"code\" : \"0x424255\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n\t\t\t                \"0x03e8\" : \"0x03e8\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x424255\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x42\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest37Filler.json",
    "content": "{\n    \"randomStatetest37\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xa49835863514f0f29b930b97f1169355\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000016fa49835863514f0f29b930b97f116935560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000016fa49835863514f0f29b930b97f11693\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1992729901\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest380Filler.json",
    "content": "{\n    \"randomStatetest380\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"628563350\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x967737653485593c63408b3994397555\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"code\" : \"0x6000355415600957005b60203560003555\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f967737653485593c63408b399439755560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f967737653485593c63408b39943975\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"628563350\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest381Filler.json",
    "content": "{\n    \"randomStatetest381\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"756682627\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x098ba088881a64904570927a86183555\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff417f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f098ba088881a64904570927a8618355560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff417f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f098ba088881a64904570927a861835\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"756682627\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest382Filler.json",
    "content": "{\n    \"randomStatetest382\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"883821556\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0855\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"883821556\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest383Filler.json",
    "content": "{\n    \"randomStatetest383\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1668923511\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : \"0xffffffffffffffffffffffffffffffffffffffff\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff09150255436c75107e\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff09150255436c75107e\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1668923511\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest384Filler.yml",
    "content": "\n# Created by tests/src/Templates/Random/randomTest.js\n\nrandomStatetest384:\n  _info:\n    comment: Ori Pomerantz   qbzzt1@gmail.com\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 0xFF112233445566\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  pre:\n\n    # Perform the random action\n    <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n      balance: 1000000000000000000\n      code: :raw 0x786675A4758D443DBFF535F034A4EDA729A6FFC1E59F674E0C553b655D7974272AC76e18CE2014249172572ED5EAC0B9D2E461FFFF169061FFFF16a033114861C0CD619FE161A9BB61AD137F4D84673D975D1811374A239EF14EE26532D643CC4DD6E9115E28815562C2EB945AF46c513376BC288AA1FDB973C149CD143b7889CC6512F8D604E5D0656C17F2D45B916DF6816A1999719F2B71D521394F07100138B341F1DEBC06C3FB3CBC600116586008015760CB505B7227E1DC4C54400E52AB133F162C6DF107151D1145939445807e5153417E8FF00D138F0DFFC0CD79CED2ECECD6F0DCE826302E4129CB6C37AB43415B6145C16173CE6152A9610C307FA5D352916626FE6BE4AA6EF0E7634DB7909FD79752E5BCB504B358D36AF708495AF461FFFF169061FFFF16a26cE900F727806828F5EE6088EBF861FFFF165170015C1269FA9F5387AB7387A81F5190564098601F9471B46EB2F2D66EE0B4C6845455E9C5EEFF021875BAE1D66F6CB6213C6CE69859F1046AE4CB5E5B743AB76d66120B1A7A97C93A6A04BD493F4A07963d0b69471B70DEC306FA6142CE9c60FF164303406aA04EA7E0BD9D9CDA29962B05067246CE83AB26762D5E2CFB614AA2394AD1D70EA938856b938D5C3FF280BF7EFDA95E668a70149AFA7A18BF9C2D796DE03773E0D35C9A7e8E0E968BA16F3AD59D6442DDBDB9E537908DB1F791BB3F17B33A14333401071961A1689c7b413ED4A9B16E7D66A17B07730188A08FA9E6148100F0311EA269ECC588607D7fCBFFF9F42E22612E938809AF2674B0CEDC8548F47EE642097C0C4ABC9BF7C76B9678996410D0BF28E5E3E1B35B37FFCE70E346E013D5345494D47690334261771761ABAE6174FD61F1957F1396B439A0049676213FD1FF8B75232DBD2117C0C5DCC184D76E2534EA9628AC5AF4863a9761FFFF169061FFFF16a07e486085A7047BD1ACAB7C048C2AE5A07A9E25934021CFAF0651EFBD393B72141461FFFF165361FFFF169061FFFF16a16a84ED962562151D0B903FB2863004140473380357280D5DBC434298AC45559FC2855C0D2A045a66AF59655ED483A0583160FF16430340795F1536B1893659FBB9FFA023722BEB2F24B5693BE6B572737FED1b9d0a646F7A2658B58b5B417220E684F471111724A4F72553B4FDC9593AE22C96959961A631615AD461199161F3F6618FE07F39DBE091B64B8BE6A557A93BF2C25DD042E8C8FEA4DB3BD8EE5BE3EABDE2835E5AF105600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055601155601255601355601455601555601655601755601855601955601a55601b55601c55601d55601e5561273961C065F3\n      nonce: 1\n      storage: {}\n\n    # Explain the random action\n\n# PUSH25 <random value>\n# EXTCODESIZE\n# PUSH6 <random value>\n# PUSH15 <random value>\n# LOG0\n# CALLER\n# GT\n# BASEFEE\n#\n#     DELEGATECALL\n# PUSH2 <random value>\n# PUSH2 <random value>\n# PUSH2 <random value>\n# PUSH2 <random value>\n# PUSH32 <random value>\n# GAS\n# DELEGATECALL\n#\n# PUSH13 <random value>\n# EQ\n# EXTCODESIZE\n# PUSH25 <random value>\n# PUSH18 <random value>\n#\n#         JUMPI\n# PUSH1 01\n# AND\n# PC\n# PUSH1 08\n# ADD\n# JUMPI\n# PUSH1 <random>\n# POP\n# JUMPDEST\n#\n# PUSH19 <random value>\n# GASLIMIT\n# SWAP4\n# SWAP5\n# GASLIMIT\n# DUP1\n# PUSH31 <random value>\n# NUMBER\n# COINBASE\n# JUMPDEST\n#\n#     DELEGATECALL\n# PUSH2 <random value>\n# PUSH2 <random value>\n# PUSH2 <random value>\n# PUSH2 <random value>\n# PUSH32 <random value>\n# GAS\n# DELEGATECALL\n#\n# LOG2\n# PUSH13 <random value>\n#\n#             MLOAD\n# PUSH2 0xFFFF\n# AND\n# MLOAD\n#\n# PUSH17 <random value>\n# SWAP9\n# PUSH1 <random value>\n# SWAP5\n# PUSH18 <random value>\n# PUSH22 <random value>\n# PUSH14 <random value>\n# SMOD\n# SWAP7\n# RETURNDATASIZE\n# SIGNEXTEND\n# PUSH10 <random value>\n# SWAP13\n#\n#     BLOCKHASH\n# PUSH1 FF\n# AND\n# NUMBER\n# SUB\n# BLOCKHASH\n#\n# PUSH11 <random value>\n# SDIV\n# MOD\n# PUSH19 <random value>\n# CODESIZE\n# DUP6\n# PUSH12 <random value>\n# DUP11\n# PUSH17 <random value>\n# PUSH31 <random value>\n# NOT\n# PUSH2 <random value>\n# SWAP13\n# PUSH28 <random value>\n# DUP9\n# PUSH1 <random value>\n# PUSH32 <random value>\n# SWAP7\n# PUSH25 <random value>\n# SWAP1\n# CALLER\n# TIMESTAMP\n#\n#     DELEGATECALL\n# PUSH2 <random value>\n# PUSH2 <random value>\n# PUSH2 <random value>\n# PUSH2 <random value>\n# PUSH32 <random value>\n# GAS\n# DELEGATECALL\n#\n# DUP7\n# GASPRICE\n# SWAP8\n# LOG0\n# PUSH31 <random value>\n# EQ\n#\n#             MSTORE8\n# PUSH2 0xFFFF\n# AND\n# MLOAD\n#\n# LOG1\n# PUSH11 <random value>\n# DUP7\n# ADDRESS\n# DIV\n# EQ\n# DIV\n# PUSH20 <random value>\n# GAS\n# PUSH7 <random value>\n# PC\n# BALANCE\n#\n#     BLOCKHASH\n# PUSH1 FF\n# AND\n# NUMBER\n# SUB\n# BLOCKHASH\n#\n# PUSH26 <random value>\n# SHL\n# SWAP14\n# EXP\n# PUSH5 <random value>\n# DUP12\n# JUMPDEST\n# COINBASE\n# PUSH19 <random value>\n# SWAP7\n# SWAP6\n# SWAP10\n#\n#     CALL\n# PUSH2 <random value>\n# PUSH2 <random value>\n# PUSH2 <random value>\n# PUSH2 <random value>\n# PUSH2 <random value>\n# PUSH32 <random value>\n# GAS\n# CALL\n#\n# SDIV\n\n\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: 1000000000000000000000\n      code: '0x'\n      nonce: 1\n      storage: {}\n\n\n  transaction:\n    data:\n    - 0x\n    gasLimit:\n    - 0x1000000\n    nonce: 1\n    to: <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>\n    value:\n    - 0\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    gasPrice: 100\n\n\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n\n      network:\n        - '>=Cancun'\n      result: {}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest39Filler.json",
    "content": "{\n    \"randomStatetest39\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x010000000000000000000000000000000000000000\",\n                            \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff715de955\" : \"0x014f8b588e368f08461f9f01b866e43aa79bbadc0980b242070b8cfbfc6540\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff427f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe9604638ea2179a58035560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff427f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe9604638ea2179a5803\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"272686139\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest3Filler.json",
    "content": "{\n    \"randomStatetest3\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe427f000000000000000000000000000000000000000000000000000000000000c3504160005155\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe427f000000000000000000000000000000000000000000000000000000000000c35041\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x5eaa223f\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest41Filler.json",
    "content": "{\n    \"randomStatetest41\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"945304eb96065b2a98b57a48a06ae28d285a71b5\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x010000000000000000000000000000000000000000\" : \"0x4cd81adcb05087c4859b28e08fedc25944c5e206071ceafb0ef91f522b9c97\"\n                        }\n                    },\n                    \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c350517f0000000000000000000000010000000000000000000000000000000000000000417f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b56a84a10719a1786a6510349b028255\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c350517f0000000000000000000000010000000000000000000000000000000000000000417f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b56a84a10719a1786a6510349b0282\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"78505988\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest42Filler.json",
    "content": "{\n    \"randomStatetest42\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x010000000000000000000000000000000000000000\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3505a7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c350356436f0f119011a5560005155\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3505a7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c350356436f0f119011a\"\n            ],\n            \"gasLimit\" : [\n                \"0x0d2fbf7d\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x61b9caa3\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest43Filler.json",
    "content": "{\n    \"randomStatetest43\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n                            \"0x41861a3755a196f259a1\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3b0a55096941861a3755a196f259a155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3b0a55096941861a3755a196f259a1\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"580684794\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest45Filler.json",
    "content": "{\n    \"randomStatetest45\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>317fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000010000000000000000000000000000000000000000417ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe43147256a3130255\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>317fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000010000000000000000000000000000000000000000417ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe43147256a31302\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1998384914\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest47Filler.json",
    "content": "{\n    \"randomStatetest47\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x1544898b167c6a6f6d5b953714457e55\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x437f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c350437f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f1544898b167c6a6f6d5b953714457e5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x437f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c350437f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f1544898b167c6a6f6d5b953714457e\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"2007082101\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest48Filler.json",
    "content": "{\n    \"randomStatetest48\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x38785231d8e75db11d6da7040cee1a12ebf739e5022caa60f92d51636060b6d96d698fc0e9ced2f6a0087344559c43612f0561a73ba3600a600d6014600963186262c173<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>6370f82d9ff1604166f49ef1fea120af77ba4cce3f35bc52ca5c40bf14c77e95ea92e69520143ff9c7827bcfe760aee06d241e31a0773476da22f7ce8131475838c23b59f7a3c46b2b99c0955e169ee3527ca9f7674467bdf2c0eebf6f60129232\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x76dd12f3185b84dfc71eb93f4df4ca30dcf34446f25793016424a5e33b6a65fb5d64a9394d7ebefb1c15de971a2d2f53377765d50c698d4e26adea05dd2f6a1688f60eb8b172d796a45c6f79596bfb719df5a571ce8c339e9d7e9b3905324643a2b9fd541956552fc258e688303ecb25082776fde7334cdf046f70c8669a6a05c36909038278e925f0156be9ddb9b83786de8a325ab28e61d18397714bcda0fd5ca879c870d383721c638733b1f78074cc1079e72e0bbbad262348a8976eaaf313a261dccb69dbaf283beebcac7ac3b8166a4deb1fe5099a1c7f3ef595357e76ca260a703bec4848a3cc9804d6de6e5b853b54dd65979292f596ee132edf67eb948e4e4d22f9cb7629bf8b642cb921b2ed9b13e47cb06d6c6f4384c7b372ee7cb61f76a363f8fa68309e3d308179ad3e15fd752d6586e9030c8c1f274878bf7fbe1b569944fdda166c47411878f3702bbe1bbabbce8b10701076e0338bfa289d424c13f4f438474afd71abc18290e0a3c853537a13ce9869d3942c7b6802bfb0f345a9af828b96\"\n            ],\n            \"gasLimit\" : [\n                \"0x7e6bc9f8\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x5c4c6e38\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest49Filler.json",
    "content": "{\n    \"randomStatetest49\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x859c\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000010000000000000000000000000000000000000000807f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>61859c55\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000010000000000000000000000000000000000000000807f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>61859c\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x69d65f4b\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest4Filler.json",
    "content": "{\n    \"randomStatetest4\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c350617e7608617c95f3ff584076e07b5a4460005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c350617e7608617c95f3ff584076e07b5a44\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1650737351\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest51Filler.json",
    "content": "{\n    \"randomStatetest51\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f0000000000000000000000000000000000000000000000000000000000000001757f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57a7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5447ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe83189b60005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f0000000000000000000000000000000000000000000000000000000000000001757f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57a7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5447ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe83189b\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1062041617\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest52Filler.json",
    "content": "{\n    \"randomStatetest52\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x59a130a10a189fc653057a185b886c55\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe410a81437f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000006f59a130a10a189fc653057a185b886c5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe410a81437f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000006f59a130a10a189fc653057a185b886c\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"667679116\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest53Filler.json",
    "content": "{\n    \"randomStatetest53\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x427f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff583481f36a85646d53671639175b940860005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x427f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff583481f36a85646d53671639175b9408\"\n            ],\n            \"gasLimit\" : [\n                \"0x432380\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1485632\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest54Filler.json",
    "content": "{\n    \"randomStatetest54\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000000000000000000000000000000000000000000001c9206e3b8f9d858f438a\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000000000000000000000000000000000000000000001c9206e3b8f9d858f438a\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1174580620\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest55Filler.json",
    "content": "{\n    \"randomStatetest55\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000000084967f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff137ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016f3a5b594088a2f238089b71\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000000084967f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff137ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016f3a5b594088a2f238089b71\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1086316137\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest57Filler.json",
    "content": "{\n    \"randomStatetest57\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c350417ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe097f000000000000000000000000000000000000000000000000000000000000c350819055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c350417ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe097f000000000000000000000000000000000000000000000000000000000000c3508190\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"277972730\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest58Filler.json",
    "content": "{\n    \"randomStatetest58\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x02947d567838719e97f3\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c350367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe096902947d567838719e97f30160005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c350367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe096902947d567838719e97f301\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"520154270\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest59Filler.json",
    "content": "{\n    \"randomStatetest59\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x3a06756406548b99\" : \"0xffffffffffffffffffffffff0000000000000000000000000000000000000002\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0208673a06756406548b9955\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0208673a06756406548b99\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"630320886\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest5Filler.json",
    "content": "{\n    \"randomStatetest5\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x427f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0960005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x427f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff09\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1016957738\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest60Filler.json",
    "content": "{\n    \"randomStatetest60\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x969001091aa15b8b9b75459d015a0455\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x427f0000000000000000000000000000000000000000000000000000000000000000427f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff437f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f969001091aa15b8b9b75459d015a045560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x427f0000000000000000000000000000000000000000000000000000000000000000427f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff437f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f969001091aa15b8b9b75459d015a04\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1423842991\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest62Filler.json",
    "content": "{\n    \"randomStatetest62\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x7268713013964a96ac57580433250155\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff437f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000016f7268713013964a96ac5758043325015560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff437f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000016f7268713013964a96ac575804332501\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1228914584\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest63Filler.json",
    "content": "{\n    \"randomStatetest63\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x977f157e088003767a86928e82529655\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000006f977f157e088003767a86928e8252965560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000006f977f157e088003767a86928e825296\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"833723715\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest64Filler.json",
    "content": "{\n    \"randomStatetest64\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"945304eb96065b2a98b57a48a06ae28d285a71b5\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x82fa967fba85f07810930c28609bb009d805556c23cf249922cca1350e4008c5\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\"\n                        }\n                    },\n                    \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x427f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe087f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b50a5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x427f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe087f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b50a\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"873959833\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest66Filler.json",
    "content": "{\n    \"randomStatetest66\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"945304eb96065b2a98b57a48a06ae28d285a71b5\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x010000000000000000000000000000000000000000\" : \"0xffffffffffffffffffffffff6bacfb1469f9a4d5674a85b75f951d72d7a58e4a\"\n                        }\n                    },\n                    \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe097f000000000000000000000001000000000000000000000000000000000000000055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe097f0000000000000000000000010000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"794190030\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest67Filler.json",
    "content": "{\n    \"randomStatetest67\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x699776659a06a27607a2166d53733155\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000016f699776659a06a27607a2166d5373315560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000016f699776659a06a27607a2166d537331\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"2113087573\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest69Filler.json",
    "content": "{\n    \"randomStatetest69\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x15a0770a7676611a6595057b768b6455\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe43596f15a0770a7676611a6595057b768b645560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe43596f15a0770a7676611a6595057b768b64\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"795619675\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest6Filler.json",
    "content": "{\n    \"randomStatetest6\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x1732797105f237768fe506871ac85355\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>4143416f1732797105f237768fe506871ac8535560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>4143416f1732797105f237768fe506871ac853\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"841471566\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest72Filler.json",
    "content": "{\n    \"randomStatetest72\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff417f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe65688dff579830091304\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff417f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe65688dff579830091304\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x5ded2cc8\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest73Filler.json",
    "content": "{\n    \"randomStatetest73\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"945304eb96065b2a98b57a48a06ae28d285a71b5\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0xb5b573198d729b711671056e0a0555346138\" : \"0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a\"\n                        }\n                    },\n                    \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57e7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5b573198d729b711671056e0a055534613855\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57e7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5b573198d729b711671056e0a0555346138\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"84268071\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest74Filler.json",
    "content": "{\n    \"randomStatetest74\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x141097788a7b5a72139c07076f184255\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x427ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff3a7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000006f141097788a7b5a72139c07076f18425560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x427ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff3a7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000006f141097788a7b5a72139c07076f1842\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1223108496\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest75Filler.json",
    "content": "{\n    \"randomStatetest75\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x5893504553386c7d1540017792877655\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x457ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000100000000000000000000000000000000000000006f5893504553386c7d154001779287765560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x457ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000100000000000000000000000000000000000000006f5893504553386c7d15400177928776\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"180160312\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest77Filler.json",
    "content": "{\n    \"randomStatetest77\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x79a06df1a08d05373216d37219034155\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000141937f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000006f79a06df1a08d05373216d3721903415560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000141937f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000006f79a06df1a08d05373216d372190341\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1249250523\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest78Filler.json",
    "content": "{\n    \"randomStatetest78\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>437f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1174648789aa349e0915aa5911\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>437f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1174648789aa349e0915aa5911\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"181540957\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest80Filler.json",
    "content": "{\n    \"randomStatetest80\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"945304eb96065b2a98b57a48a06ae28d285a71b5\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0xb5681069127b3b9c877d6f6169ff36600051\" : \"0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a\"\n                        }\n                    },\n                    \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f0000000000000000000000010000000000000000000000000000000000000000117fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7e7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5681069127b3b9c877d6f6169ff3660005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f0000000000000000000000010000000000000000000000000000000000000000117fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7e7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5681069127b3b9c877d6f6169ff36\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"517580214\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest81Filler.json",
    "content": "{\n    \"randomStatetest81\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x616c327e0435743c515b078453a03c55\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe437f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff436f616c327e0435743c515b078453a03c5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe437f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff436f616c327e0435743c515b078453a03c\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"898282209\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest82Filler.json",
    "content": "{\n    \"randomStatetest82\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff097ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000000655\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff097ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000000006\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1676520806\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest83Filler.json",
    "content": "{\n    \"randomStatetest83\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xa1109af20740728e72150a7a9c095955\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff427f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6fa1109af20740728e72150a7a9c09595560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff427f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6fa1109af20740728e72150a7a9c0959\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1015118220\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest84Filler.json",
    "content": "{\n    \"randomStatetest84\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000001000000000000000000000000000000000000000044457f0000000000000000000000000000000000000000000000000000000000000001187f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff52155955\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000001000000000000000000000000000000000000000044457f0000000000000000000000000000000000000000000000000000000000000001187f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff521559\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"679746513\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest85Filler.json",
    "content": "{\n    \"randomStatetest85\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x01\" : \"0xc350\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c350f25b557e348ff374819d123109539b55\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c350f25b557e348ff374819d123109539b\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"994504369\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest87Filler.json",
    "content": "{\n    \"randomStatetest87\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x446e638e7e16736c030393727d748174\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000005b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f446e638e7e16736c030393727d74817460005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000005b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f446e638e7e16736c030393727d748174\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"2065587657\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest88Filler.json",
    "content": "{\n    \"randomStatetest88\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n\t\t\t\t\t\t    \"0x01000000000000000000000000000000000000000000000000000000000000\" : \"0x34f06a7014541167033909103620f355\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>4343537f000000000000000000000000000000000000000000000000000000000000c350117fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000016f34f06a7014541167033909103620f35560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>4343537f000000000000000000000000000000000000000000000000000000000000c350117fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000016f34f06a7014541167033909103620f3\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1050242229\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest89Filler.json",
    "content": "{\n    \"randomStatetest89\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x05648ce0ad106b7a6f3483379e62876b\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000016f05648ce0ad106b7a6f3483379e62876b60005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000016f05648ce0ad106b7a6f3483379e62876b\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1090727739\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest90Filler.json",
    "content": "{\n    \"randomStatetest90\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x116b4177f25178d7048212877e956855\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff45157f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000016f116b4177f25178d7048212877e95685560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff45157f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000016f116b4177f25178d7048212877e9568\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"168858958\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest92Filler.json",
    "content": "{\n    \"randomStatetest92\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x59640c655956799087168f0658a11a55\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000006f59640c655956799087168f0658a11a5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000006f59640c655956799087168f0658a11a\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"472110012\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest95Filler.json",
    "content": "{\n    \"randomStatetest95\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff14447ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b60005155\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff14447ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x7e83fa74\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest96Filler.json",
    "content": "{\n    \"randomStatetest96\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x183b68a09b08953085a854a39d921255\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006f183b68a09b08953085a854a39d92125560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006f183b68a09b08953085a854a39d9212\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1246597060\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest97Filler.json",
    "content": "{\n    \"randomStatetest97\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"code\" : \"0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>587f0000000000000000000000000000000000000000000000000000000000000001957f0000000000000000000000000000000000000000000000000000000000000000407f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3509781040107338b35071887a186\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>587f0000000000000000000000000000000000000000000000000000000000000001957f0000000000000000000000000000000000000000000000000000000000000000407f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3509781040107338b35071887a186\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>587f0000000000000000000000000000000000000000000000000000000000000001957f0000000000000000000000000000000000000000000000000000000000000000407f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3509781040107338b35071887a186\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"335580338\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest98Filler.json",
    "content": "{\n    \"randomStatetest98\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n                            \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000000b085560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000000b08\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"588937108\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom/randomStatetest9Filler.json",
    "content": "{\n    \"randomStatetest9\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x757fb845405bf1ff959ba03a9c336b55\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000016f757fb845405bf1ff959ba03a9c336b5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000016f757fb845405bf1ff959ba03a9c336b\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"217035801\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest384Filler.json",
    "content": "{\n    \"randomStatetest384\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x16133502727c0a7f679b456df0935763\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f16133502727c0a7f679b456df093576360005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f16133502727c0a7f679b456df0935763\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"2066470732\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest385Filler.json",
    "content": "{\n    \"randomStatetest385\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x785188182063156955631a7a85093a55\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>547f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f785188182063156955631a7a85093a5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>547f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f785188182063156955631a7a85093a\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"768381138\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest386Filler.json",
    "content": "{\n    \"randomStatetest386\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff047f000000000000000000000000000000000000000000000000000000000000000105133641010b811160005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff047f000000000000000000000000000000000000000000000000000000000000000105133641010b8111\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"433564740\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest387Filler.json",
    "content": "{\n    \"randomStatetest387\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c350617e7608617c95f3ff584076e07b5a4460005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c350617e7608617c95f3ff584076e07b5a44\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1650737351\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest388Filler.json",
    "content": "{\n    \"randomStatetest388\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"945304eb96065b2a98b57a48a06ae28d285a71b5\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0xb5765b8f743b9979a0905b6a189165600051\" : \"0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a\"\n                        }\n                    },\n                    \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7e7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5765b8f743b9979a0905b6a18916560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7e7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5765b8f743b9979a0905b6a189165\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"1175166777\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest389Filler.json",
    "content": "{\n    \"randomStatetest389\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xc350\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x457ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000427f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3503a86385458123760005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x457ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000427f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3503a863854581237\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1542544795\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest393Filler.json",
    "content": "{\n    \"randomStatetest393\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff20b39838f628b96846cff0455\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff20b39838f628b96846cff04\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"490453529\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest395Filler.json",
    "content": "{\n    \"randomStatetest395\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x823140710bf13990e4500136726d8b55\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x447f0000000000000000000000000000000000000000000000000000000000000001417f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f823140710bf13990e4500136726d8b5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x447f0000000000000000000000000000000000000000000000000000000000000001417f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f823140710bf13990e4500136726d8b\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1520198127\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest396Filler.json",
    "content": "{\n    \"randomStatetest396\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000001719f197c5560005155\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000001719f197c\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x4ca4d183\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest397Filler.json",
    "content": "{\n    \"randomStatetest397\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x413443f3404242433389ff723810\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x42\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest398Filler.json",
    "content": "{\n    \"randomStatetest398\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x3781413b695a69079d7f510582920755\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>6f3781413b695a69079d7f51058292075560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>6f3781413b695a69079d7f5105829207\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"110765790\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest399Filler.json",
    "content": "{\n    \"randomStatetest399\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x98324016076d428a9898129b16849a55\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe4544437f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f98324016076d428a9898129b16849a5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe4544437f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f98324016076d428a9898129b16849a\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"546942842\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest401Filler.json",
    "content": "{\n    \"randomStatetest401\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c35044427f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>ff60005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c35044427f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>ff\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"588192910\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest402Filler.json",
    "content": "{\n    \"randomStatetest402\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x62138c87028162ea32a2db7e30100455\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff437f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000006f62138c87028162ea32a2db7e3010045560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff437f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000006f62138c87028162ea32a2db7e301004\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"938198850\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest404Filler.json",
    "content": "{\n    \"randomStatetest404\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6a7f0000000000000000000000000000000000000000000000000000000000000000907f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff906606425655\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6a7f0000000000000000000000000000000000000000000000000000000000000000907f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9066064256\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"108687806\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest405Filler.json",
    "content": "{\n    \"randomStatetest405\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x318d0707977199361171756f6d458e55\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff44457f0000000000000000000000010000000000000000000000000000000000000000037ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f318d0707977199361171756f6d458e5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff44457f0000000000000000000000010000000000000000000000000000000000000000037ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f318d0707977199361171756f6d458e\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"274296751\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest406Filler.json",
    "content": "{\n    \"randomStatetest406\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"945304eb96065b2a98b57a48a06ae28d285a71b5\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\",\n                            \"0xb58b8e99f33c647165337e389f7b9c909cba\" : \"0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a\"\n                        }\n                    },\n                    \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                        \"code\" : \"0x6000355415600957005b60203560003555\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7e7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b58b8e99f33c647165337e389f7b9c909cba5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7e7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b58b8e99f33c647165337e389f7b9c909cba\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"1160230573\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest407Filler.json",
    "content": "{\n    \"randomStatetest407\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x6d71656f054471181163037902615b55\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff437ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c350437f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>6f6d71656f054471181163037902615b5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff437ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c350437f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>6f6d71656f054471181163037902615b\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"825575416\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest408Filler.json",
    "content": "{\n    \"randomStatetest408\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x80656e8e6478946a323482135a8bf755\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe447f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f80656e8e6478946a323482135a8bf75560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe447f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f80656e8e6478946a323482135a8bf7\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1672298879\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest409Filler.json",
    "content": "{\n    \"randomStatetest409\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"ffffffffffffffffffffffffffffffffffffffff\" : {\n                        \"balance\" : \"1090686083\",\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x5b7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000001000000000000000000000000000000000000000009ff511287868833063aa3579d8e585560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x5b7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000001000000000000000000000000000000000000000009ff511287868833063aa3579d8e58\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1090686083\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest410Filler.json",
    "content": "{\n    \"randomStatetest410\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>417f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000045086201771880f35560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>417f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000045086201771880f3\"\n            ],\n            \"gasLimit\" : [\n                \"0x030d40\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1969973721\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest411Filler.json",
    "content": "{\n    \"randomStatetest411\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x44a17892738b6895619d7a93507d649d\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000006f44a17892738b6895619d7a93507d649d60005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000006f44a17892738b6895619d7a93507d649d\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"2119897718\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest412Filler.json",
    "content": "{\n    \"randomStatetest412\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xa46ef06a5a858b9742198a37e1153c55\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"code\" : \"0x6000355415600957005b60203560003555\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6fa46ef06a5a858b9742198a37e1153c5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6fa46ef06a5a858b9742198a37e1153c\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"123532973\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest413Filler.json",
    "content": "{\n    \"randomStatetest413\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x086e2055149345ad1a018b0637081455\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000010000000000000000000000000000000000000000817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe037f00000000000000000000000000000000000000000000000000000000000000016f086e2055149345ad1a018b063708145560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000010000000000000000000000000000000000000000817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe037f00000000000000000000000000000000000000000000000000000000000000016f086e2055149345ad1a018b06370814\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1206033425\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest414Filler.json",
    "content": "{\n    \"randomStatetest414\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6251437f0000000000000000000000010000000000000000000000000000000000000000437f000000000000000000000000fffffffffffffffffffffffffffffffffffffffff11460005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6251437f0000000000000000000000010000000000000000000000000000000000000000437f000000000000000000000000fffffffffffffffffffffffffffffffffffffffff114\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1088932905\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest415Filler.json",
    "content": "{\n    \"randomStatetest415\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff437f000000000000000000000000000000000000000000000000000000000000000142427f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>357f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff62010a8c8794a17e8ea4f260005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff437f000000000000000000000000000000000000000000000000000000000000000142427f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>357f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff62010a8c8794a17e8ea4f2\"\n            ],\n            \"gasLimit\" : [\n                \"0x927c0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1235296517\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest416Filler.json",
    "content": "{\n    \"randomStatetest416\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x01\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff427f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>4355\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff427f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>43\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x4f622410\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest417Filler.json",
    "content": "{\n    \"randomStatetest417\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x4343424344444242f26d69\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x42\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest418Filler.json",
    "content": "{\n    \"randomStatetest418\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f0000000000000000000000000000000000000000000000000000000000000000437f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000000417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff12a36234970658a03160005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f0000000000000000000000000000000000000000000000000000000000000000437f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000000417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff12a36234970658a031\"\n            ],\n            \"gasLimit\" : [\n                \"0x17647ecd\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1705540168\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest419Filler.json",
    "content": "{\n    \"randomStatetest419\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x73095b7ee211595a6b80a311900a7855\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x437ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000001417ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f73095b7ee211595a6b80a311900a785560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x437ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000001417ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f73095b7ee211595a6b80a311900a78\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1783425972\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest420Filler.json",
    "content": "{\n    \"randomStatetest420\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>3a7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f0000000000000000000000000000000000000000000000000000000000000001817d7b8956970660129f5015fe0a355560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>3a7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f0000000000000000000000000000000000000000000000000000000000000001817d7b8956970660129f5015fe0a35\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1657754250\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest421Filler.json",
    "content": "{\n    \"randomStatetest421\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x38454051968ff184a47d500912319717\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x437f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f38454051968ff184a47d50091231971760005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x437f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f38454051968ff184a47d500912319717\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1389450591\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest422Filler.json",
    "content": "{\n    \"randomStatetest422\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe527f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe527f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1285310456\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest424Filler.json",
    "content": "{\n    \"randomStatetest424\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x18116552626186825096665471140a55\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>437f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000000000000000000000000000000000000000000000436f18116552626186825096665471140a5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>437f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000000000000000000000000000000000000000000000436f18116552626186825096665471140a\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1271738191\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest425Filler.json",
    "content": "{\n    \"randomStatetest425\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x885707818b889a89975552f012844255\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f0000000000000000000000010000000000000000000000000000000000000000417f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f885707818b889a89975552f01284425560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f0000000000000000000000010000000000000000000000000000000000000000417f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f885707818b889a89975552f0128442\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"574036597\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest426Filler.json",
    "content": "{\n    \"randomStatetest426\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x456d1687795a95938b0139976099f055\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>417ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000006f456d1687795a95938b0139976099f05560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>417ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000006f456d1687795a95938b0139976099f0\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1631269834\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest428Filler.json",
    "content": "{\n    \"randomStatetest428\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x4244417b4542404409523b200283\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x42\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest429Filler.json",
    "content": "{\n    \"randomStatetest429\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x98121f38878672908777347633136655\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>417ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f98121f3887867290877734763313665560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>417ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f98121f388786729087773476331366\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1412476335\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest430Filler.json",
    "content": "{\n    \"randomStatetest430\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x7d41a29934035b748e96a3135b696455\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe427f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000006f7d41a29934035b748e96a3135b69645560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe427f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000006f7d41a29934035b748e96a3135b6964\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1811277343\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest433Filler.json",
    "content": "{\n    \"randomStatetest433\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c350a3f305205bf156207259573055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c350a3f305205bf1562072595730\"\n            ],\n            \"gasLimit\" : [\n                \"0x7a120\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"630948579\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest435Filler.json",
    "content": "{\n    \"randomStatetest435\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\",\n\t\t\t\t\t\t    \"0x33797f\" : \"0x01c0\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f0000000000000000000000000000000000000000000000000000000000000000447ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000042613488076233797f553960005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f0000000000000000000000000000000000000000000000000000000000000000447ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000042613488076233797f5539\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1256168470\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest436Filler.json",
    "content": "{\n    \"randomStatetest436\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x8108067a345b7a76a20a835a0a0b6c10\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x367f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>456f8108067a345b7a76a20a835a0a0b6c1060005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x367f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>456f8108067a345b7a76a20a835a0a0b6c10\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1464160030\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest437Filler.json",
    "content": "{\n    \"randomStatetest437\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"945304eb96065b2a98b57a48a06ae28d285a71b5\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\",\n\t\t\t\t\t\t    \"0x6bacfb1469f9a4d5674a85b75f951d72d7a58e4b\" : \"0x01\"\n                        }\n                    },\n                    \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe437f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000013a1339085560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe437f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000013a133908\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"1752414467\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest438Filler.json",
    "content": "{\n    \"randomStatetest438\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xc350\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff097fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff097fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1071528892\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest439Filler.json",
    "content": "{\n    \"randomStatetest439\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x5b1609653438813340097c53a4931655\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f5b1609653438813340097c53a493165560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f5b1609653438813340097c53a49316\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"398066515\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest440Filler.json",
    "content": "{\n    \"randomStatetest440\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01513a9b8216816f74f3676e9ea26155\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>45457f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff416f01513a9b8216816f74f3676e9ea2615560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>45457f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff416f01513a9b8216816f74f3676e9ea261\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1245697846\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest442Filler.json",
    "content": "{\n    \"randomStatetest442\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3cae\",\n                            \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3cae\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff917f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3501833815560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff917f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c350183381\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"794450594\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest443Filler.json",
    "content": "{\n    \"randomStatetest443\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001155933704\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001155933704\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1499936335\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest444Filler.json",
    "content": "{\n    \"randomStatetest444\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f0000000000000000000000010000000000000000000000000000000000000000607f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff661392843555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f0000000000000000000000010000000000000000000000000000000000000000607f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6613928435\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1481275721\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest445Filler.json",
    "content": "{\n    \"randomStatetest445\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008756993365a1376155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008756993365a13761\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"340638033\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest446Filler.json",
    "content": "{\n    \"randomStatetest446\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0xfffffffffffffffffffffffe000000000000000000000001ffffffffffffffff\" : \"0xffffffffffffffffffffffffffffffffffffffff\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0955\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff09\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"141749433\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest447Filler.json",
    "content": "{\n    \"randomStatetest447\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x010000000000000000000000000000000000000000\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe437f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff085560005155\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe437f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff08\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x1569eba8\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest448Filler.json",
    "content": "{\n    \"randomStatetest448\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x427f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff583481f36a85646d53671639175b940860005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x427f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff583481f36a85646d53671639175b9408\"\n            ],\n            \"gasLimit\" : [\n                \"0x432380\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1485632\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest449Filler.json",
    "content": "{\n    \"randomStatetest449\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x197f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>8b66e4ff65a056f39b529f\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x197f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>8b66e4ff65a056f39b529f\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1857649905\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest450Filler.json",
    "content": "{\n    \"randomStatetest450\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x0a\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000010000000000000000000000000000000000000000033a8060005155\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a764000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000010000000000000000000000000000000000000000033a80\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x50f09196\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest451Filler.json",
    "content": "{\n    \"randomStatetest451\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xed05989a0659453076573a8704117455\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000006fed05989a0659453076573a870411745560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000006fed05989a0659453076573a87041174\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"812425754\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest452Filler.json",
    "content": "{\n    \"randomStatetest452\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x0a3289746806163630047dff98310555\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>6f0a3289746806163630047dff9831055560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>6f0a3289746806163630047dff983105\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1492613506\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest454Filler.json",
    "content": "{\n    \"randomStatetest454\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000000000000000000000000000000000000000000000557f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000557f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>0a84339188646595668352a061855560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000000000000000000000000000000000000000000000557f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000557f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>0a84339188646595668352a06185\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1431310051\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest455Filler.json",
    "content": "{\n    \"randomStatetest455\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x858b1411f218693ca2245b918274f355\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>6f858b1411f218693ca2245b918274f35560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>6f858b1411f218693ca2245b918274f3\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"737734735\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest456Filler.json",
    "content": "{\n    \"randomStatetest456\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x41424143445a42f35b10773574016c9f\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x42\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest457Filler.json",
    "content": "{\n    \"randomStatetest457\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x949fa28af308a37a136c626218927d55\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x44417f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f949fa28af308a37a136c626218927d5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x44417f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f949fa28af308a37a136c626218927d\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"316557712\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest458Filler.json",
    "content": "{\n    \"randomStatetest458\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x7689747fb3520231748bbe5eb9617666e630019e3e84ce7179c5d83b7e36050e5c05623956e599f54eb56213e4f96f69f402cd73e13c366095a3fe56bdd6a815d9ba23f3a9729bc462385c697ed9f24192c949e33ff7ed256c84979d70148b8fd8a62438ca053de2642271456dde46ce78cf7c6d1d2cc48eee658a73ad9f9ca1e550720490e2d0769e0a429773e42fc965ea1030f6c0787b4e7bc4915150a99fc758d3373561d8917c4c7d605f0cd8d2203f4d69606198437429e2f2d2bf742b28760a9c0ab51203d0c5d5b9e16d74ce0428945aaff2d0f99240a901d3233bd04e366c367ab93ecea0c206fbf01084254636df9c1f308c7d6875d5d5d37f3ce27989e39048f175f0d2dc49eaa86530def7ab70553f5d3904c843b5736025e321e7e2ab92af570e5b3bef4014c54e65316bb546eb8906f155f7b9405326740104d8f5d98dc97ac374ad0c58f4385e086891b9b2657e982eb15a367eab6683b51ea9f219abae5ca39f669a1a88a82e14efd4192a3edbe04a12d35679cf6338130d67f37c324464d16cc866be846b0304ef9fd3c6611e6cdf1277d65f6b2a58ffb61ba979740b8df72816602071e979e6029c9307d718ffdc70f37ea0019353c06b0fb56d8e3738dfdb18418e952092e8625b51749f276cc6ae416a85bd070c61e65240d8c2719c76b0420f84ece41c9be0f93d4f30581c28f69768395163937f95b86da30fa76b6937870245d9250e06b6e07dffea8f849a37647378dd59ac8365a37dd908eea26be2f53375e1dbee32ecaa7e957eace8c6f0883e4ef830485bd43b2b7851a0b11497f752d3ee4560e312a7a91b7b2a88c109737c92feb7807d481ac3fd823f038c4ba82df40a60982a7c7a6f6ba2cb95233c257b30e1c9d3c84aa37b6f4268fec34fb9eef1f8602e6a7bf1ebfa162680b57af09f7a7fc584055ff32d68a92e59ddaf20bcaaaa70d5970fd71c04cdbab46cf86e566e870664b6df2c6861347b2a3886788bbebbd03cbb51ed29357f699c8b974c61528a0423f67a837bfab83afa78a0bff70a653ea0f398f73632d5e3bea0a31115d65486fb6d667110448e0208264a3f76f35972666e7aa7339f23b08e6028616337a0366016601d6014600b630e6db38e73<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>635706352bf1695bb9e53d5ad3ba1191ea65ae1880d46c687605148e427a09d40172dbdd5fc72fffb1443080a39a0ee77feed9ddc9050affce41d68c34ad97c484f204a987bcfaf46b9fa4a9ed2dad3738771a3cf86b43f303a8db8cde3ed8a40ae35574b9084f4cab88701d150e628d9b2a33e71c8f9fb0ce9e72866257691776f999b7ddf64f22532351bd34743e08facd1acc94b0d6b56bf97491d5ed9d726af684d1a47abcb243b7c29d12a315e939f70af8d2617df63567c3bc56c16609a27871af77631fe1ccaa0d15f8da9bd9a712a544abb92b925b1d7561fced60b09b6b22f2121b105a65a209e151b76b31be481d57353d10a1d968ca7a185495a8a2935571a0d17443a327bf11cb421baca9064bc4e4497c7d4c486c40082cc2d01b3f6023b726de95ac2ad53ae0b731d741676338181e66c8ac8daf0d54776827987e79d9f617c51f6f4b87cf8fee734c99e5e3fc2e37f17e626cbfd1195157215d10fa39b4b0947c3339139b280c0b042da7ec93a24416d5c52e0ba21ec9d39d6fbcd3d74266580eef6ca9bb9d76bb4dc441f3d6d0cf38307b505251deea82ab39f9ccd17a6507bf16b38640679c22f2134e8258f79b\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x6cff89fd2305930f9a427748410969e86bfeabd7748df8c60e9075e32f95abb7b73e260fc345efb09ac919b22eb90402ff6b737a79722d83372adc70ef947e3a28e6dda50601f52fea5b45a7294d90ea73bb64de313534dce604ebc4a22c7519bd1a15bc91aca303759ffdfc849b53ca82e03b1df66d1ede5b09b519084802396f8849817328c82f591c11d4b40c0653e1ec91398ca9a1a6b872165aac3c0567020253bc3f5221edb93cbbd87c7486136d4f5649a5f1ad8808013f373cbffc6c40c8707f2e0449a9ce33beba84b4974ed62803f8dd900ba3b47d3cc55ba503f903701f1188\"\n            ],\n            \"gasLimit\" : [\n                \"0x612fcece\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x7f120206\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest460Filler.json",
    "content": "{\n    \"randomStatetest460\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x16a23c6c90739ba201697b4315778a55\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000003a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c350046f16a23c6c90739ba201697b4315778a5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000003a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c350046f16a23c6c90739ba201697b4315778a\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1518569663\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest461Filler.json",
    "content": "{\n    \"randomStatetest461\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\" : \"0xc380\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c350517f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4251525960005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c350517f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff42515259\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"548509958\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest462Filler.json",
    "content": "{\n    \"randomStatetest462\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x8e0186019d029d1354681482826f3755\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000100000000000000000000000000000000000000006f8e0186019d029d1354681482826f375560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000100000000000000000000000000000000000000006f8e0186019d029d1354681482826f37\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1447977690\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest464Filler.json",
    "content": "{\n    \"randomStatetest464\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0xffffffffffffffffffffffffffffffffffffffff\" : \"0xffffffffffffffffffffffffffffffffffffffff\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x447f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82095560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x447f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8209\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"2396601\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest465Filler.json",
    "content": "{\n    \"randomStatetest465\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>437f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000160005155\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>437f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000001\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x5de12c27\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest466Filler.json",
    "content": "{\n    \"randomStatetest466\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x020000\",\n                            \"0x83\" : \"0x03e8\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff4244904244045560005155\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff424490424404\"\n            ],\n            \"gasLimit\" : [\n                \"0xd9acdb\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x6ac01f3a\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest467Filler.json",
    "content": "{\n    \"randomStatetest467\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x700ab6605e03171122aeebd20b63699a72d454628639346ffaf92bcd1855c6dde5c90ba78a966a256c777ce8880c23f90f4a2ecc999a6cd42da7121d5e1fde1c9c340f9660b571a71e20a5753bc4e291adbd41a228289a0be175a606bc44dd2079ece46a2cba498bee0d80a41673d8016e7232f97a66b29954364570f6e2d08b6d429c6a75f737c594aca21580bc0d60e67c38a50ce1ddf0ce9963fd79da8a590429f5fcfb6e7fd9ee2d27201f95707235ce3dbc5997e44baa174111977f51dc6b333a9a63483e6a3d6f423ed5778057702664b65d4af9aab14d773a787d60bd24c439b29533c6b172278b6a78e64f8e319fbd6b45eeca466afd1eb2eecbaeed773da8711c4c65787e0a0a1297f525b7418f49fbc1b2446a847d74bb0a66e3b06ef70d8a8aa09a910a6be623c6a8239960381512da962eb868a21f99d90741128fcb711e029cff42f4f8f5d35947c4a7b39cff7fd46f916cc8612b146bbf52db1cd36e6c2fce7cd9ed232e21946081d78d87e61bc42fce313fa32b458d1e898e52cc2e607570a7e1d2ae3b5b7d58e0a70396bcfaae0789cd9202876488bb595d457a45bc48e190f5d56b34be6d244070ffe02107ceaf9313db08d9a1809b366fc956e6c5567da1d8a656406871eb0dd46268b5127366225cb464667bd081c949847a95e2821f589dad60c061ef2fa36b9e17c2b3a94181a8f8a89b486734ca1a8a0c86c26d076004601160066012635e0d738673<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>636158e2e1f166e10de5d590572335\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x6f42af68ebb8fbfe65896d2993c75a18b06dbf26336197db938986312c4ea88b7aab8c2cd436a05c5b765989d8ad6c97257fe7c4f1f33d9644b8e03c6898c8946d19a4dfed187482dd95f88ea4f0c43f39f4ab261808bf1b1f658f0979b867eeb00baeadab37700449f879522b0bba9c6f2d87d2541b0b943275c57530b3790b225dd318baeca448b045ccf1477837e4156d992ad881869b91a5f7f71de5884a703c659316ab330af945c7fd906936c695fe79134e48e46153702e81da6d3da14e05b90ae63b037d7b9e4fb17367c1e737162043aa587f4bb580e87cfaad897bc8e3152e3741f1ba345cc4c762c99caede0c3c0de9f33e7c89de151164142941ef1cc6b81f618255c88f3e04316de6ff3f8b87fb187d3661e8d861b8134d518cfe5123377034be1a24c27e19133f7fdcbddcadd272d4eb1f5205b897290ed5b28741f1d13f595f15604097426e31e5a64a6665f31f2ebca84c5be5d27a8632d85d7e123bac508bf47f6274f38f9f580ad68134f4d4e654d56693448be12412a37275c071ba6b6b017df1ec3d04f5b5fe7af2c0aa65ed17249093e9601064716ca4d232779ee3cf649bff458fb2a37fd534556a505f3dbc4f9afd77cb7e2e37e0a6a739404993d8f68975614f1988a7130cadc9245f9616c4776a3bfe77f48bb80ed67553de915c99302d13cc7ab0253d6f415cb1499866f3a0512a188aa35477c52c8b4cce48dd291dc9fabd99de813a0e0db12447a11917353860c06efdf1c9532e0cf08a7c0a3185ab81d417\"\n            ],\n            \"gasLimit\" : [\n                \"0x69126cad\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x6e30a0e3\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest469Filler.json",
    "content": "{\n    \"randomStatetest469\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000001a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c350f36409156a6aa261413b56f20855\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000001a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c350f36409156a6aa261413b56f208\"\n            ],\n            \"gasLimit\" : [\n                \"0x7a120\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1762323696\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest470Filler.json",
    "content": "{\n    \"randomStatetest470\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x457f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000001357f00000000000000000000000000000000000000000000000000000000000000000b60005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x457f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000001357f00000000000000000000000000000000000000000000000000000000000000000b\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1740863815\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest471Filler.json",
    "content": "{\n    \"randomStatetest471\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x061870135504\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09650618701355040655183a51377d8260005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09650618701355040655183a51377d82\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1662521271\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest472Filler.json",
    "content": "{\n    \"randomStatetest472\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>41437ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff090a60005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>41437ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff090a\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1691421230\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest473Filler.json",
    "content": "{\n    \"randomStatetest473\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"945304eb96065b2a98b57a48a06ae28d285a71b5\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0xffffffffffffffffffffffff6bacfb1469f9a4d5674a85b75f951d72d7a58e4a\" : \"0xc350\"\n                        }\n                    },\n                    \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff317f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b59102095560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff317f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5910209\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"1147652673\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest474Filler.json",
    "content": "{\n    \"randomStatetest474\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x7d6f6b1051778ea1670387810b580555\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe027f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f7d6f6b1051778ea1670387810b58055560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe027f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f7d6f6b1051778ea1670387810b5805\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"2065350381\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest475Filler.json",
    "content": "{\n    \"randomStatetest475\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0xfffffffffffffffffffffffe000000000000000000000001ffffffffffffffff\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0955\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff09\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"428358692\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest476Filler.json",
    "content": "{\n    \"randomStatetest476\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x447ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f0000000000000000000000010000000000000000000000000000000000000000448243628c0970843ba460005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x447ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f0000000000000000000000010000000000000000000000000000000000000000448243628c0970843ba4\"\n            ],\n            \"gasLimit\" : [\n                \"0x5a7f675f\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"2098819291\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest477Filler.json",
    "content": "{\n    \"randomStatetest477\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x9084a3758d3456763aa4f09c8b735b55\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f0000000000000000000000000000000000000000000000000000000000000001417ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f9084a3758d3456763aa4f09c8b735b5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f0000000000000000000000000000000000000000000000000000000000000001417ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f9084a3758d3456763aa4f09c8b735b\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"11119317\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest478Filler.json",
    "content": "{\n    \"randomStatetest478\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f0000000000000000000000000000000000000000000000000000000000000001447f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f1606588a909558021569\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f0000000000000000000000000000000000000000000000000000000000000001447f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f1606588a909558021569\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"844312201\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest480Filler.json",
    "content": "{\n    \"randomStatetest480\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x5af3a474ff64f3a37d51f36a6a607f55\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff037f0000000000000000000000000000000000000000000000000000000000000000427ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f5af3a474ff64f3a37d51f36a6a607f5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff037f0000000000000000000000000000000000000000000000000000000000000000427ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f5af3a474ff64f3a37d51f36a6a607f\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"745095931\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest481Filler.json",
    "content": "{\n    \"randomStatetest481\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x447f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff09437f0000000000000000000000010000000000000000000000000000000000000000a2695a7d52064361127350\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x447f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff09437f0000000000000000000000010000000000000000000000000000000000000000a2695a7d52064361127350\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1124860809\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest482Filler.json",
    "content": "{\n    \"randomStatetest482\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x027c9d313d9b09376505927c8e715655\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>437fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f027c9d313d9b09376505927c8e71565560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>437fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f027c9d313d9b09376505927c8e7156\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1668252863\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest483Filler.json",
    "content": "{\n    \"randomStatetest483\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe840955\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe8409\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"2129514006\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest484Filler.json",
    "content": "{\n    \"randomStatetest484\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff35427ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>595584a2558493a25b5a6a60005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff35427ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>595584a2558493a25b5a6a\"\n            ],\n            \"gasLimit\" : [\n                \"0x07a120\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"465395296\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest485Filler.json",
    "content": "{\n    \"randomStatetest485\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000008e447f00000000000000000000000100000000000000000000000000000000000000003a1a7e\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000008e447f00000000000000000000000100000000000000000000000000000000000000003a1a7e\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1573164058\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest487Filler.json",
    "content": "{\n    \"randomStatetest487\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"ffffffffffffffffffffffffffffffffffff3cae\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe337fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0308ff9f708d1710086a73a0766a6b55\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe337fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0308ff9f708d1710086a73a0766a6b\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"841051523\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest488Filler.json",
    "content": "{\n    \"randomStatetest488\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x3250648093577f6364a218f0907e7d55\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>427f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f3250648093577f6364a218f0907e7d5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>427f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f3250648093577f6364a218f0907e7d\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1401176215\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest489Filler.json",
    "content": "{\n    \"randomStatetest489\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x2b8e846b91987417705a126e77076455\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000456f2b8e846b91987417705a126e7707645560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000456f2b8e846b91987417705a126e770764\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1856101458\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest491Filler.json",
    "content": "{\n    \"randomStatetest491\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xa0f670645a778c71127d3b5598308b17\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000006fa0f670645a778c71127d3b5598308b1760005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000006fa0f670645a778c71127d3b5598308b17\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1805810722\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest493Filler.json",
    "content": "{\n    \"randomStatetest493\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xffffffffffffffffffffffffffffffffffffffff\",\n                            \"0xffffffffffffffffffffffffffffffffffffffff\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>437f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff095560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>437f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff09\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1422979897\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest494Filler.json",
    "content": "{\n    \"randomStatetest494\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x847f000000000000000000000000000000000000000000000000000000000000c35043657f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4362f03c897f50f073f219105455\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x847f000000000000000000000000000000000000000000000000000000000000c35043657f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4362f03c897f50f073f2191054\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1741426477\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest495Filler.json",
    "content": "{\n    \"randomStatetest495\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"00000000427fffffffffffffffffffffffffffff\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000100000000000000000000000000000000000000006f427ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7e6410f26f519c538ea2070a6c60005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000100000000000000000000000000000000000000006f427ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7e6410f26f519c538ea2070a6c\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"211829998\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest496Filler.json",
    "content": "{\n    \"randomStatetest496\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff457f0000000000000000000000000000000000000000000000000000000000000000355b7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3500b0b0207965560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff457f0000000000000000000000000000000000000000000000000000000000000000355b7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3500b0b020796\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"256677208\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest497Filler.json",
    "content": "{\n    \"randomStatetest497\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xc350\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff090455\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0904\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1143211377\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest498Filler.json",
    "content": "{\n    \"randomStatetest498\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x94198cdb286cd2f21f06659320130750e7aa2c83ceb28015\" : \"0xebb0472b3e\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x6bd243dbcfdc6982733e4cd6261574fc6cdec93282ff50ef24d8be05d58be29301ddb00d7547f6b65997e73d232b76d6484c11eb15c87b01f89e2779c427711ba193e4e163967efd1b9315187c3227f67b9282fc7524692fbf851cb370d396d53f7a86353aacecc5c1eadeddbb3925522f935fc5ed03568fbf40261c056a124f1334cc9fa8eea2bdbf68f04c10cc08b6babcbb6ee8d3fb88dd42d06d445b5eab34cb5d64408cf652fd7568acaa81b573f66fa8781e83185438e42796631ae9a9987f714d986f94fc6354921a9367bb6b9e555f24107cb814557f8bd87547ad612c3e726f9f495b0ac9e37fbe5f23014c68d8d032bfae779a5213c33778af679417d77733645f87b6042be92c553dbb6d85a2c56b21a53c0e612ae0a8d78d60f162b52efea464ebb0472b3e7794198cdb286cd2f21f06659320130750e7aa2c83ceb2801555785c9f02455252560846587006e90cbffc955445d9ef1f55eeb07011c02cee02df12dc35b36702539873e4b766e4ae9e829a442460dd7f845cd37dc08f93bef98a4d5b53ecd4cf4dd1a5c416f92116160f0fb673c30b7873b85a2ff6331a5d371f3d109f5794d712e03493b17fc562ac7589411127e654ce32d273f8300cc8544e7bd782aa7828b543958dadf872d7f13401a51b13835cc8a36be87cc7347cdf0f7aa2df420bb03e925c117d4befbc7e69472fd75f01f3f6c966de818174aba3b7a43014c3dd39414fb3d239d72e06852ae48e6203c60a7e844d6fd61c5b519d43780d383d103989f9bfce5ed122804cba183c188f5ce47c348a96973eca904f096aed4fb77d40ca9139447527f267a028eae5e3706e1975fc3e38327505e81d0e8c9fab1f60ec7ece71cc87510f308984ebdcb8ab84e1905dfdc0a19ee3c5f37e88dc3a9f26497c51427da28f6d777d9585b4ec790722bacaa179b1dc5b086d945623f9d29f6013600c60096019634f4421eb73<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>631ac754faf17506f9cc63229e7fe309b7a2f1acf074a43aa4dd2b75bf6dadf21aadb9a3e239a9592f576c9265eebd2420e2626d2b2f1f7ee7a56725d7d4fe23da45725e8b709d2976703147ef66a8fc9a6c1225df7b79eec95ddda5e91c6e19bbc55baf9d6c440cc805f0d229738d17a76f95e329f94d5bc48cc5964933f9597fb57a6f7290649722d68a72fa2d081c4547943b3bbca2edc5f4032c5c916e585fa6abd1b209e2b6fb64498a37b9796c95da3fdb8013c13ef99ed49b29282ae55458c651fdb8598b527024d2da1e8a7015f65ee4ab0178b68ab8c877d55f3c89a7f1f7bc6c0d86bc69688cbcc252972693993bf766aac4efb2b65b216cca2e721dea3f3b3df3abbbfb7b8d\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7349d4fb4fa5c26263087f9f9885a7033ed1f85282806175626c7aff6e85d032f987501c7f07e672602eea9a752c14f2fea044cbadb4acbbbece186bfae0ddfa5c3a4f602e8674516e7ead3a1b9f0c321f53474588f38a996f7512fbdf364372a2f5b5329a5866cb8867c09526eabd04524486650cba94b9d20e8079263be537932206f67f64915b81ac1ea4b1f3723baa86b2d9ad667f11ff36b05f0ec27d14051ce250c5c524eaa31472f153582c9aafa7a0b317230863944f1b5e7444ad06685190a6f9ff72b7af0f52a4619591d022037c3bd19aa01d358a540c4ec6e43870dc653bab5c707f953b919477ed89448472e11b10e241ad82a32be02adf21cd183ae47f2776bce3701b75afea9a175cd04e616f3a1913f3be49294c5e633b4d01cf719e06325d1f498e74d5a153c41ba83f49339f6d7f4711edfa5370e2ee9c7986401c6b27b5cb4f46435c84c8f0239876415740df4646423c790ce1917c3e178e3f0117f07b8ae37a6353868f7ca9313379cd727ae9732fb0a56da2b8a4cb682eb38ca47df0353f6b9322ac474740ac5b14488677765f48677e720ed20e2c76b94ca77acdd3e9e54f2230a0c2d1203130ebbf95aeb6212d52393d33efa63f79c2feba7168b770a3cd3fa97b8b515fd38a19958fccde6ec198be7d2f780422a69c9047ab7474d8f1c3272b9836bca4050a856a916e9bb30724727d1ba26058199098d65ad54d5580e51dcb2bd077db415b0ff41457c68f61d0f86d8c4c549388abf78a75cc9163016c7e988e60e97b95f1d253b52168cbb01407c8ebca87f950ca4049e12ac76cbe3e374065a3c7703bcd5f7af279a1c12425c93ef8e74a12b699f4a9c651db15561be1d91ca95575636dad39636bea70b5309b3354a73bb1b83ba72ff63f69182888e8f17d3e1ec0367173eb3831614e653fc63989af65bc9b676645638915ede2603666ccff0c03af0fda7ad7b7e846076158daad3df7ad07e1cfe8ce41757c4d77f02d65bee264fe0a98374a61532e797167af5719a427a267234fa27697f1a3f47a1453ea150821da1c665de7878ac0e5e26fc78911427cc1d8d0b029ee09bf9322446635d50de718ecb79f\"\n            ],\n            \"gasLimit\" : [\n                \"0x3121542d\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x74c15a91\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest499Filler.json",
    "content": "{\n    \"randomStatetest499\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000399f869aff3b06333860005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000399f869aff3b063338\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"2058040485\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest500Filler.json",
    "content": "{\n    \"randomStatetest500\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x87196584968a97046c67919931148255\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f87196584968a97046c6791993114825560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f87196584968a97046c679199311482\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"34424143\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest501Filler.json",
    "content": "{\n    \"randomStatetest501\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n                            \"0xffffffffffffffffffffffff0000000000000000000000000000000000000000\" : \"0xc350\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff095560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0955\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"156676500\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest502Filler.json",
    "content": "{\n    \"randomStatetest502\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"945304eb96065b2a98b57a48a06ae28d285a71b5\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0xb59c66369a85a46da1821861586378600051\" : \"0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a\"\n                        }\n                    },\n                    \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c350807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57e7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b59c66369a85a46da182186158637860005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c350807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57e7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b59c66369a85a46da1821861586378\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"345377880\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest503Filler.json",
    "content": "{\n    \"randomStatetest503\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x0886a83c66553c9889528d8f1294ff55\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000006f0886a83c66553c9889528d8f1294ff5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000006f0886a83c66553c9889528d8f1294ff\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"2071462314\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest504Filler.json",
    "content": "{\n    \"randomStatetest504\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe457f0000000000000000000000000000000000000000000000000000000000000001e37f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c35001589a84106d9c60005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe457f0000000000000000000000000000000000000000000000000000000000000001e37f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c35001589a84106d9c\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1095126158\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest505Filler.json",
    "content": "{\n    \"randomStatetest505\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x44a06f550371317376738c5399843755\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe427f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe457f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000006f44a06f550371317376738c539984375560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe427f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe457f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000006f44a06f550371317376738c53998437\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1075033443\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest506Filler.json",
    "content": "{\n    \"randomStatetest506\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n\t\t\t\t\t\t    \"0x00\" : \"0xa218f370862059149e3cff20\",\n                            \"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000000042377f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000006ba218f370862059149e3cff2060005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000000042377f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000006ba218f370862059149e3cff20\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"947509958\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest507Filler.json",
    "content": "{\n    \"randomStatetest507\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x99a4527612a199a06d1a348b02563a9b\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x5a7f0000000000000000000000010000000000000000000000000000000000000000327f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>6f99a4527612a199a06d1a348b02563a9b60005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x5a7f0000000000000000000000010000000000000000000000000000000000000000327f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>6f99a4527612a199a06d1a348b02563a9b\"\n            ],\n            \"gasLimit\" : [\n                \"0x6f62fdbd\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"696746762\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest508Filler.json",
    "content": "{\n    \"randomStatetest508\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x41414444424143448231537241317f55\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x42\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest509Filler.json",
    "content": "{\n    \"randomStatetest509\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"code\" : \"0x4542\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x4542\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x42\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest510Filler.json",
    "content": "{\n    \"randomStatetest510\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xf23a88535564545969f162615b933255\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>447f00000000000000000000000000000000000000000000000000000000000000005a456ff23a88535564545969f162615b93325560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>447f00000000000000000000000000000000000000000000000000000000000000005a456ff23a88535564545969f162615b9332\"\n            ],\n            \"gasLimit\" : [\n                \"0x55fe2d15\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1913364794\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest511Filler.json",
    "content": "{\n    \"randomStatetest511\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x6a52027f41f267453843630a66444145\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff416f6a52027f41f267453843630a6644414560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff416f6a52027f41f267453843630a66444145\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"462006051\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest512Filler.json",
    "content": "{\n    \"randomStatetest512\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x3b5bff40567097749951500263449255\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c350437fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f3b5bff4056709774995150026344925560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c350437fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f3b5bff405670977499515002634492\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"871411208\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest513Filler.json",
    "content": "{\n    \"randomStatetest513\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff3b437ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000000000000000000000000000000000000000000001982046817382a13afa3760088d55\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff3b437ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000000000000000000000000000000000000000000001982046817382a13afa3760088d\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"406473464\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest514Filler.json",
    "content": "{\n    \"randomStatetest514\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x8ea356796d65546d3883768f55\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe44447f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3506c8ea356796d65546d3883768f5560005155\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe44447f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3506c8ea356796d65546d3883768f\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x105d80ad\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest516Filler.json",
    "content": "{\n    \"randomStatetest516\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x32787358019b3918686193ffffffffffffffffffcd878ca7fe64c6e7979e6c\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6a32787358019b39186861940960005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6a32787358019b391868619409\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"46630890\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest517Filler.json",
    "content": "{\n    \"randomStatetest517\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x450831a46a867f32569596f0099f7b8c\",\n                            \"0xffffffffffffffffffffffffffffffffffffffff\" : \"0x0a\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff3a6f450831a46a867f32569596f0099f7b8c915560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff3a6f450831a46a867f32569596f0099f7b8c91\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1922148943\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest518Filler.json",
    "content": "{\n    \"randomStatetest518\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x3c589f416d947a5134f268515b6c9255\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f3c589f416d947a5134f268515b6c925560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f3c589f416d947a5134f268515b6c92\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1096593865\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest519Filler.json",
    "content": "{\n    \"randomStatetest519\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xfffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffff\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000001000000000000000000000000000000000000000009457f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3501a02556b85a4531155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000001000000000000000000000000000000000000000009457f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3501a02556b85a45311\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"245898175\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest520Filler.json",
    "content": "{\n    \"randomStatetest520\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xffffffffffffffffffffffff0000000000000000000000000000000000000000\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff19030860005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff190308\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"333039523\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest521Filler.json",
    "content": "{\n    \"randomStatetest521\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x010000000000000000000000000000000000000000\",\n                            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : \"0xffffffffffffffffffffffffffffffffffffffffff8c6faa686b95a88965926d\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6a73905597946a57769a6d9209335560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6a73905597946a57769a6d920933\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"2095633379\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest523Filler.json",
    "content": "{\n    \"randomStatetest523\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x417f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe4450427f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000003560080b348d5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x417f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe4450427f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000003560080b348d\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1463926659\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest524Filler.json",
    "content": "{\n    \"randomStatetest524\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x457ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe427f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff357f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000034208a340a9e5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x457ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe427f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff357f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000034208a340a9e\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1968091255\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest525Filler.json",
    "content": "{\n    \"randomStatetest525\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff097ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe02207160005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff097ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe022071\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"177899732\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest526Filler.json",
    "content": "{\n    \"randomStatetest526\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"945304eb96065b2a98b57a48a06ae28d285a71b5\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0xb5419e01950777810975058c746f55600051\" : \"0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a\"\n                        }\n                    },\n                    \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5417e7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5419e01950777810975058c746f5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5417e7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5419e01950777810975058c746f\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"984138850\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest527Filler.json",
    "content": "{\n    \"randomStatetest527\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x347f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff447f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff80a160005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x347f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff447f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff80a1\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"179309326\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest528Filler.json",
    "content": "{\n    \"randomStatetest528\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x457f000000000000000000000000000000000000000000000000000000000000c350397ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0a9d30390b8c858455\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x457f000000000000000000000000000000000000000000000000000000000000c350397ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0a9d30390b8c8584\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"532918830\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest531Filler.json",
    "content": "{\n    \"randomStatetest531\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x41414143434344456a12c140f3933655\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x42\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest532Filler.json",
    "content": "{\n    \"randomStatetest532\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x78297ba08ba478507f413b3597109c55\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe54447f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f78297ba08ba478507f413b3597109c5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe54447f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f78297ba08ba478507f413b3597109c\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1139122760\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest533Filler.json",
    "content": "{\n    \"randomStatetest533\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x5255\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000001847f00000000000000000000000100000000000000000000000000000000000000003a0761525560005155\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000001847f00000000000000000000000100000000000000000000000000000000000000003a076152\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x70d690f4\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest534Filler.json",
    "content": "{\n    \"randomStatetest534\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xf3075243846d88747b6a9e7ff28c6155\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000001000000000000000000000000000000000000000045437f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff457f0000000000000000000000000000000000000000000000000000000000000000436ff3075243846d88747b6a9e7ff28c615560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000001000000000000000000000000000000000000000045437f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff457f0000000000000000000000000000000000000000000000000000000000000000436ff3075243846d88747b6a9e7ff28c61\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1440446145\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest535Filler.json",
    "content": "{\n    \"randomStatetest535\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x010000000000000000000000000000000000000000\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000055\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000100000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x4cd4dc30\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest536Filler.json",
    "content": "{\n    \"randomStatetest536\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c350537f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9309f3999c7d92795a947a6f317f55\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c350537f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9309f3999c7d92795a947a6f317f\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1392179737\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest537Filler.json",
    "content": "{\n    \"randomStatetest537\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"945304eb96065b2a98b57a48a06ae28d285a71b5\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0xb5688068515a6a996a540a03686d6d600051\" : \"0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a\"\n                        }\n                    },\n                    \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7e7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5688068515a6a996a540a03686d6d60005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7e7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5688068515a6a996a540a03686d6d\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"1910780625\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest539Filler.json",
    "content": "{\n    \"randomStatetest539\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : \"0x94200bf18b0b316e\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff457f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff096794200bf18b0b316e415560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff457f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff096794200bf18b0b316e41\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1428708105\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest541Filler.json",
    "content": "{\n    \"randomStatetest541\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff457f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000004335696e089257368d07897d57350b105560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff457f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000004335696e089257368d07897d57350b10\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"525505301\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest542Filler.json",
    "content": "{\n    \"randomStatetest542\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\",\n                            \"0xffffffffffffffffffffffffffffffffffffffff\" : \"0x010000000000000000000000000000000000000000\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x427f00000000000000000000000100000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000397f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>925560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x427f00000000000000000000000100000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000397f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>92\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"2111491039\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest543Filler.json",
    "content": "{\n    \"randomStatetest543\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000004586\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000004586\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x025dcd0a\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest544Filler.json",
    "content": "{\n    \"randomStatetest544\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xffffffffffffffffffffffffffffffffffffffff\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3503b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff097f000000000000000000000000000000000000000000000000000000000000000055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3503b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff097f0000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1348206974\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest545Filler.json",
    "content": "{\n    \"randomStatetest545\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"945304eb96065b2a98b57a48a06ae28d285a71b5\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x133f69d3addbd85daa8b17484bed8731\"\n                        }\n                    },\n                    \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c350637c9c8213300560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c350637c9c82133005\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"321021476\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest546Filler.json",
    "content": "{\n    \"randomStatetest546\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x895258826c3557659220867173150155\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff447f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f0000000000000000000000010000000000000000000000000000000000000000956f895258826c355765922086717315015560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff447f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f0000000000000000000000010000000000000000000000000000000000000000956f895258826c35576592208671731501\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1796553007\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest547Filler.json",
    "content": "{\n    \"randomStatetest547\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000001417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c35014623971943854a009768255\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000001417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c35014623971943854a0097682\"\n            ],\n            \"gasLimit\" : [\n                \"0x605781c3\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1980806241\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest548Filler.json",
    "content": "{\n    \"randomStatetest548\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x777a349a646633977da01a315a3c0355\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f0000000000000000000000010000000000000000000000000000000000000000417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000001000000000000000000000000000000000000000019417f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f777a349a646633977da01a315a3c035560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f0000000000000000000000010000000000000000000000000000000000000000417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000001000000000000000000000000000000000000000019417f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f777a349a646633977da01a315a3c03\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"715419522\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest550Filler.json",
    "content": "{\n    \"randomStatetest550\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x4472a17829659c94a29041419564313a\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000006f4472a17829659c94a29041419564313a60005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000006f4472a17829659c94a29041419564313a\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1391193544\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest552Filler.json",
    "content": "{\n    \"randomStatetest552\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x6a72a37b5219f089416d4336a08e8255\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff42147ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe547f00000000000000000000000000000000000000000000000000000000000000006f6a72a37b5219f089416d4336a08e825560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff42147ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe547f00000000000000000000000000000000000000000000000000000000000000006f6a72a37b5219f089416d4336a08e82\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1809429900\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest553Filler.json",
    "content": "{\n    \"randomStatetest553\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x94819c780585376da073368c45828ca0\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000016f94819c780585376da073368c45828ca060005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000016f94819c780585376da073368c45828ca0\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"143286\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest554Filler.json",
    "content": "{\n    \"randomStatetest554\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x601460dca06029728b67ba4c2fc8c63c46f19bb45a4be3f678b30669ba571e944074c21b140a7a65d14a921ec804a45ecf4d952aa923fb23a0574acd8ef9f82c7db17e157f651bbeb520203bd398160345137b0419a395630fce1a7ed24c0cccfd91766140e0682f6bd571db701b4616b567f215faf42fb37d2a7c43c05a634612322eda99f09cc2907a6cba01bb6869b7d24b897ec43b9b63a8747a897af14c1f4c0b186c6311d36de86b8c8172aa43c3dfe3ea16503380877fa7f32deb9f60254d124338105942b4b5b88c443351de5ebf14c2380f4a91327d68a0da66abd627db75739942675f5855728fd677646cafec536e37d0da8122cf8681bc106013601b600360086307efe33a73<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>63176fe819f16566b603cccf387c5f10e5cdb2ba1b456d2a0386ee72ddf3ff65b33a551afa423f8af05e347b5c50b6fe69c77f0682ef890d8ed8ab3833f128389f6407911fb20590642c9765e97c7f31dfa251377a47ca45b72ce5c1896a697990d60a01cabaf5e4d8f55f11fd37427351d1f8e89810c7aeec6482fd03d7e7ca58fbaae361e3936936543d6dacb1f97f19c3721866491bad73f32faea37b4a8c273668e04dff8863a542e11775a693c3b4bcd4fc1a87ddb6450f8f6c2f1ba807aaffb67e62af22cd93175b5ffb428ee9116dad4a695aa514b8ca4d615fd728a61c124c796554a98241320ac2d6b9f16ee1c203dbba537a211142df4c2e626e4108f87ab6d5b8e9ce86f92aba50a47acc60d734e7a066131d99dad149451b386120eed210723bd8304caa61048c67512ca417ae8857a46ad24ca1f2cb75f75ef86a927152bd86981a216d8147f49ead4be46967dd10751491f9f1ac2f50fd5dad394b7838a9eb89b372698362647bddbb90586e4e921a8cc96ea0c50d07da472b3e6360a39c\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x336e88fae59ccc17cac0ec3a4a984fcdc77c2ba8961cb09c97e4f874f69667ea58bce674fe4d474c8898fff5b73e6a7e25d7d5e25ccea0601ea15066d5497deee377fccbfcf7d46f462eb9d2fe6a3782658a9ffd73aa457677100ca7d35d68df5ee8465c2ca2af480e6e3cb204021b6ae2234a9f3462784bb45c4f087003c9352268b7e9890647fba7f034faad2663bfb15f1e0b7381d4fe5d7ba9c59455e62fe93c8cca7dd3f20d81644c2494b098686d466eb0fec9f497f163bdf627d76f49e3d1b74b142996652c0d53f709553560656e36e89deb34f32a7b7b5dfb3b309d57704dfa8c0ec20f2c0f70e1761c949c14c6fd619d947e42f23136ff517ac0b92f6df9d2989eb6828d7213a0b9a20959957ade2b1c1f6222920664c7ddf31a037c866146cabefec6c2f9f02d050c2ec8ef5da91eb65cc7d0b0d7eb3654407e7cb3eae4ea612eb678374b229c0e0fcc178293fd5d500210352eea769ccafa6c7a7e444322c60c241a937bbcf365ba988cb9f0628f7a33e43ba75bc44c38707ca76e02d3ff70e772c56dc9b9bcfd8116b972e66b6a28583e9f272065e9b7f112858c5f71c66dd37755c458bd56109d4dec2015b23774fa549dd52567557117d2fbda2a4f53cbd065fc9b907736d432b2730969562ce445fd6f9dcf91e092390173406e5b047944eafa8607c63c7e79aa872e5ce29de18e48ed9a62f440a0d4d4651d624ff767ac7fc52281bc7fec896a501952622f30e718b484e56e8ca7ab57c2ef2a6d37944e14759a52961dda795af1e984eea7d2689937b0a76ab8494b7acf579c90a0eb949199c0f87e566759722c0799c2c03a027b51a87372e64f7a1fb661d72eac23f2dc691d34981660bf7cfa421c5bf5e3225a4653ae7e0e43bfe4af206d4e69635b55c24537fe20705e010f348d477b1aef6aeb2388b508a44e640353e169a37221ba3dcf805c6a9ebe283a53e9dcbaee4081a098\"\n            ],\n            \"gasLimit\" : [\n                \"0x6dfddcf1\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x485341cc\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest555Filler.json",
    "content": "{\n    \"randomStatetest555\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x3b8f936e6f3874603c59120707e3588c\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe437f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff437f000000000000000000000000000000000000000000000000000000000000c3506f3b8f936e6f3874603c59120707e3588c60005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe437f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff437f000000000000000000000000000000000000000000000000000000000000c3506f3b8f936e6f3874603c59120707e3588c\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"119135864\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest556Filler.json",
    "content": "{\n    \"randomStatetest556\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x726e757692a2ad96526b9e8b77a33a55\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000010000000000000000000000000000000000000000437f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000006f726e757692a2ad96526b9e8b77a33a5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000010000000000000000000000000000000000000000437f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000006f726e757692a2ad96526b9e8b77a33a\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1156625804\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest558Filler.json",
    "content": "{\n    \"randomStatetest558\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x43767855\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x42\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest559Filler.json",
    "content": "{\n    \"randomStatetest559\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"0000000000000000ffffffffffffffffffffffff\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000008509ff1555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000008509ff15\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"312647948\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest560Filler.json",
    "content": "{\n    \"randomStatetest560\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c35059a17f0000000000000000000000000000000000000000000000000000000000000001f38f07bf60005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c35059a17f0000000000000000000000000000000000000000000000000000000000000001f38f07bf\"\n            ],\n            \"gasLimit\" : [\n                \"0x7a120\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"50481116\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest562Filler.json",
    "content": "{\n    \"randomStatetest562\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0x00\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000000000000000000000000000000000000000000001937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c350a094448744\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000000000000000000000000000000000000000000001937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c350a094448744\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x591bc129\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest563Filler.json",
    "content": "{\n    \"randomStatetest563\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe418b7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>0461098038315ba267\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe418b7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>0461098038315ba267\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1283542119\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest564Filler.json",
    "content": "{\n    \"randomStatetest564\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"945304eb96065b2a98b57a48a06ae28d285a71b5\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x945304eb96065b2a98b57a48a06ae28d285a71b5\" : \"0xffffffffffffffffffffffffffffffffffffffff\"\n                        }\n                    },\n                    \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x5b7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe4550081655\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x5b7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe45500816\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"286796184\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest565Filler.json",
    "content": "{\n    \"randomStatetest565\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x7f00000000000000000000000100000000000000000000000000000000000000\" : \"0x010000000000000000000000000000000000000000\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c350137f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000010000000000000000000000000000000000000000923760005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c350137f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000009237\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"684525926\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest566Filler.json",
    "content": "{\n    \"randomStatetest566\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x9a7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000000117f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff427f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>93963332578665734360005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x9a7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000000117f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff427f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>939633325786657343\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"565778672\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest567Filler.json",
    "content": "{\n    \"randomStatetest567\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017e7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe906697998df1160b\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017e7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe906697998df1160b\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"600472398\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest569Filler.json",
    "content": "{\n    \"randomStatetest569\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe427f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>097f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe8e0781816fff31986c0a773c9b014460005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe427f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>097f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe8e0781816fff31986c0a773c9b0144\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1737878734\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest571Filler.json",
    "content": "{\n    \"randomStatetest571\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x0a\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000015b7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>3c6508766c8b6b403a60005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000015b7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>3c6508766c8b6b403a\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1402161028\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest572Filler.json",
    "content": "{\n    \"randomStatetest572\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x457f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe097f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>440ba13b38\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x457f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe097f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>440ba13b38\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1943383964\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest574Filler.json",
    "content": "{\n    \"randomStatetest574\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x369354827d7433a335af55600051\" : \"0x014f8b588e368f08461f9f01b866e43aa79bbadc0980b242070b8cfbfc6540\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000001047f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff046d369354827d7433a335af5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000001047f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff046d369354827d7433a335af\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1595303022\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest575Filler.json",
    "content": "{\n    \"randomStatetest575\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>95949655558f6771c7798d047d7b5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>95949655558f6771c7798d047d7b\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"181388892\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest576Filler.json",
    "content": "{\n    \"randomStatetest576\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0x00\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x7f0000000000000000000000000000000000000000000000000000000000000000447f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000000086053a0b43890710810651116e1555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f0000000000000000000000000000000000000000000000000000000000000000447f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000000086053a0b43890710810651116e15\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x2dcb28af\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest577Filler.json",
    "content": "{\n    \"randomStatetest577\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x2e\" : \"0x020000\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x45414344434244413155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x42\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest578Filler.json",
    "content": "{\n    \"randomStatetest578\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n\t\t\t\t\t\t    \"0x03e8\" : \"0xffffffffffffffffffffffffffffffffffffffff\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c350457f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff4255\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c350457f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff42\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"399078357\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest579Filler.json",
    "content": "{\n    \"randomStatetest579\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c350f2075b67c755\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c350f2075b67c7\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1929468879\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest580Filler.json",
    "content": "{\n    \"randomStatetest580\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x4640879d18777b953a209836379a3055\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000000000000000000000000000000000000000000000457f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000006f4640879d18777b953a209836379a305560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000000000000000000000000000000000000000000000457f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000006f4640879d18777b953a209836379a30\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"741737505\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest581Filler.json",
    "content": "{\n    \"randomStatetest581\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"ffffffffffffffffffffffffffffffffffffffff\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f0000000000000000000000000000000000000000000000000000000000000001037f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff44920907ff7e7d701260005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017f0000000000000000000000000000000000000000000000000000000000000001037f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff44920907ff7e7d7012\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1563515411\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest582Filler.json",
    "content": "{\n    \"randomStatetest582\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>417f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000045086201771880f35560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>417f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000045086201771880f3\"\n            ],\n            \"gasLimit\" : [\n                \"0x030d40\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1969973721\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest583Filler.json",
    "content": "{\n    \"randomStatetest583\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>425162327c5536a36af3809c3a8f396660005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>425162327c5536a36af3809c3a8f3966\"\n            ],\n            \"gasLimit\" : [\n                \"0x62ab0e44\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1472402212\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest584Filler.json",
    "content": "{\n    \"randomStatetest584\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xffffffffffffffffffffffffffffffffffffffff\",\n                            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : \"0xffffffffffffffffffffffff0000000000000000000000000000000000000000\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe96921909335560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe9692190933\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"352685837\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest585Filler.json",
    "content": "{\n    \"randomStatetest585\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe55\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"380785530\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest586Filler.json",
    "content": "{\n    \"randomStatetest586\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\" : \"0xc350\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000013760005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000000137\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1708929612\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest587Filler.json",
    "content": "{\n    \"randomStatetest587\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x8b7152a3958a923c1665b27557089a55\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c350117f0000000000000000000000000000000000000000000000000000000000000001457f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>6f8b7152a3958a923c1665b27557089a5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c350117f0000000000000000000000000000000000000000000000000000000000000001457f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>6f8b7152a3958a923c1665b27557089a\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"291521552\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest588Filler.json",
    "content": "{\n    \"randomStatetest588\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\" : \"0x00\",\n\t\t\t\t\t\t    \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff41437f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff43063760005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff41437f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff430637\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1725348983\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest589Filler.json",
    "content": "{\n    \"randomStatetest589\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x427f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff583481f36a85646d53671639175b940860005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x427f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff583481f36a85646d53671639175b9408\"\n            ],\n            \"gasLimit\" : [\n                \"0x432380\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1485632\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest592Filler.json",
    "content": "{\n    \"randomStatetest592\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xffffffffffffffffffffffff000000000000000000000000ffffffffffffffff\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0960005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff09\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1664737509\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest596Filler.json",
    "content": "{\n    \"randomStatetest596\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x7066a3507f6e09065394563830652055\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000001317f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000006f7066a3507f6e0906539456383065205560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000001317f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000006f7066a3507f6e090653945638306520\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"765064321\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest597Filler.json",
    "content": "{\n    \"randomStatetest597\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0x00\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>967f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3a7e737d40070a156482930a0875\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>967f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3a7e737d40070a156482930a0875\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x70062d18\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest599Filler.json",
    "content": "{\n    \"randomStatetest599\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x8d6c60440a44449372068a976a838255\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f8d6c60440a44449372068a976a83825560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f8d6c60440a44449372068a976a8382\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1108427958\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest600Filler.json",
    "content": "{\n    \"randomStatetest600\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x0b6f37208e76a402927039198c969907\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c35043457ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f0b6f37208e76a402927039198c96990760005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c35043457ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f0b6f37208e76a402927039198c969907\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"181662108\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest601Filler.json",
    "content": "{\n    \"randomStatetest601\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c350377f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000000b3a09785b1084418866100af0868a3455\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c350377f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000000b3a09785b1084418866100af0868a34\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"2056709657\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest602Filler.json",
    "content": "{\n    \"randomStatetest602\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xffffffffffffffffffffffffffffffffffffffff\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff60005155\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x25d01724\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest603Filler.json",
    "content": "{\n    \"randomStatetest603\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x655860560745326476a03cdc36063455\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>427f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>086f655860560745326476a03cdc3606345560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>427f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>086f655860560745326476a03cdc360634\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"603781106\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest604Filler.json",
    "content": "{\n    \"randomStatetest604\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000010000000000000000000000000000000000000000437f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe44a4418a83039c0587363b0518204006065a06\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000010000000000000000000000000000000000000000437f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe44a4418a83039c0587363b0518204006065a06\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1287981996\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest605Filler.json",
    "content": "{\n    \"randomStatetest605\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0xffffffffffffffffffffffff00000000000000000000000000000000000000e9\" : \"0x010000000000000000000000000000000000000000\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c350437f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905803850855\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c350437f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9058038508\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1694516474\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest607Filler.json",
    "content": "{\n    \"randomStatetest607\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x010000000000000000000000000000000000000000\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0955\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff09\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"275642360\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest608Filler.json",
    "content": "{\n    \"randomStatetest608\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c350537fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0855\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c350537fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"514995498\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest609Filler.json",
    "content": "{\n    \"randomStatetest609\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000001a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000001a736e628f796436739660005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000001a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000001a736e628f7964367396\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1675392723\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest610Filler.json",
    "content": "{\n    \"randomStatetest610\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01f353a2437e4384726497587b855655\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x417f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f01f353a2437e4384726497587b85565560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x417f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f01f353a2437e4384726497587b8556\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"2145229980\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest611Filler.json",
    "content": "{\n    \"randomStatetest611\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c350417f0000000000000000000000000000000000000000000000000000000000000001437f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000001357f00000000000000000000000000000000000000000000000000000000000000000b9b84a360005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c350417f0000000000000000000000000000000000000000000000000000000000000001437f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000001357f00000000000000000000000000000000000000000000000000000000000000000b9b84a3\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"40953114\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest612Filler.json",
    "content": "{\n    \"randomStatetest612\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xc350\",\n                            \"0xffffffffffffffffffffffffffffffffffffffff\" : \"0x010000000000000000000000000000000000000000\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff437f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff095560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff437f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff09\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"721306946\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest615Filler.json",
    "content": "{\n    \"randomStatetest615\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0xffffffffffffffffffffffff000000000000000000000000ffffffffffffffff\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe837f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000001000000000000000000000000000000000000000009556c6f390a3054d7368a9a5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe837f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000001000000000000000000000000000000000000000009556c6f390a3054d7368a9a\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"2076977514\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest616Filler.json",
    "content": "{\n    \"randomStatetest616\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x86a2409b991539f0423c0342363c3b55\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000006f86a2409b991539f0423c0342363c3b5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000006f86a2409b991539f0423c0342363c3b\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1167366767\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest618Filler.json",
    "content": "{\n    \"randomStatetest618\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000000427f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff437f00000000000000000000000100000000000000000000000000000000000000003bf1135a3a58\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000000427f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff437f00000000000000000000000100000000000000000000000000000000000000003bf1135a3a58\"\n            ],\n            \"gasLimit\" : [\n                \"0x3d0d185c\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1398079665\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest620Filler.json",
    "content": "{\n    \"randomStatetest620\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x6c54a420327d73727d9d1a667bf38955\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff427f0000000000000000000000010000000000000000000000000000000000000000457ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f6c54a420327d73727d9d1a667bf3895560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff427f0000000000000000000000010000000000000000000000000000000000000000457ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f6c54a420327d73727d9d1a667bf389\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1643601446\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest621Filler.json",
    "content": "{\n    \"randomStatetest621\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x3ba187a19366899e595220741232905b\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f0000000000000000000000000000000000000000000000000000000000000000441a7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f3ba187a19366899e595220741232905b60005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f0000000000000000000000000000000000000000000000000000000000000000441a7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f3ba187a19366899e595220741232905b\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"2143896087\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest624Filler.json",
    "content": "{\n    \"randomStatetest624\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x43424244457943455409635939\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x42\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest625Filler.json",
    "content": "{\n    \"randomStatetest625\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000010000000000000000000000000000000000000000887f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c350457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa3015560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000010000000000000000000000000000000000000000887f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c350457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa301\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1618548956\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest626Filler.json",
    "content": "{\n    \"randomStatetest626\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c350f4fd94058f06a255\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c350f4fd94058f06a2\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1996511098\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest627Filler.json",
    "content": "{\n    \"randomStatetest627\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n\t\t\t\t\t\t    \"0x707f3b\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x424243434442424254f262707f3b55\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x42\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest628Filler.json",
    "content": "{\n    \"randomStatetest628\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x2e\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x41413155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x42\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest629Filler.json",
    "content": "{\n    \"randomStatetest629\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x427277147c617f4354a35a1a47977a55\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>347f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>116f427277147c617f4354a35a1a47977a5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>347f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>116f427277147c617f4354a35a1a47977a\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1003338368\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest630Filler.json",
    "content": "{\n    \"randomStatetest630\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x9461a46e61507a1206917b17137e7e55\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000000000000000000000000000000000000000000001427f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f9461a46e61507a1206917b17137e7e5560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000000000000000000000000000000000000000000001427f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f9461a46e61507a1206917b17137e7e\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"411786818\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest632Filler.json",
    "content": "{\n    \"randomStatetest632\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x434243434444424350303614f20a\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x42\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest633Filler.json",
    "content": "{\n    \"randomStatetest633\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x82941340756317567250f1573a897655\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>6f82941340756317567250f1573a89765560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>6f82941340756317567250f1573a8976\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1358306105\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest635Filler.json",
    "content": "{\n    \"randomStatetest635\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"0000000000000000005b7fffffffffffffffffff\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6a5b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe66f2707d83713b6b8f320855\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6a5b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe66f2707d83713b6b8f3208\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1615246365\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest636Filler.json",
    "content": "{\n    \"randomStatetest636\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x3c4d8f92f8c27517f0addd45e050bfcf\" : \"0x9be8fbaa90\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x74619921c0750ac3268e7a6703ca2bf6c43308e6fc36607561af1ca16db843f7a2e05bfc2e46afc179930b7a8724a04f9f561bdc65bba0ad5797dde0a28d5e8aca56e1510b724f676a6d33dee473d74664561e49e3d86338c8dcf260f06cbfa6283966d2d0f2591f54088e6f36545c0d90fcdea10d5629629ffb1b16626c339f6490829f1b1675f0f2f62b0b7c9d3f070fafd53f99f90f31e19e81d3db688929213e34affc41116e6ae6f54ad5c2062b27a9fbec78a52f7a26c6347408631a6c0efcf33fe576953a4043e846b686471403f38a615a0a8e601d600a600e60146301019a5173<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>63314bc0fef1600c7eb69785d3593d3a8552018a4faba5b591975e8b8056ebc01f5ce5f5f7c04eca9062b458a835649be8fbaa906f3c4d8f92f8c27517f0addd45e050bfcf55792d8bf87c39d39ed9b1ef6c8c070d8da4a624ce548b37d03ae8107ca6da49be4adffc9f5ae896c52b936a18bed4bd9fcbae531274706e9e9b9030619a40714bb4b22e7bef8cf7b01551327188ee4bb6247118d0e95549a92f7dd9305484cc054e5f206d70d008699a85896061427b05ae2a7f16230f66ab4dd548e03b0972010f5afff39a4f9a90e55e91584e86629f3e8775f53da16fceedd834103a50dbe72a6634e4dbf374c70e6bd041628dc8b30de3c3d7aa0e7bb48df927c78ed30b286e249c2cbe79fb55956f492e413e771d0cd63f7357ab1e9a38026a4ba9278427812728699a2c747189\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x648ae7baf084600e60746edc292e4f932e5d92d41f0bef49fc6b696d03a44c705cb4daaf5160107d58356b0c4e1a7d81fb0b606143c7db58d8147776c02745b7de14b2c388e49568e963334e695b39de93766519c9912b2dccb22bb3bd486cdf043cbc5c0cd3b4a35f6addc01cb4ad9b448c0c60ff6c78c1acc568b086c8181a90b01f613e5e6116e776e8d170f52005efeb96d06594b7477815ea249e6143aaee6798a00d9dbba0552a73cd878ec8872e0e494df0325b92e8c7753a084c6b9763c56059eb608978797530a734a7ced61643b84aece9a39344fab3c6363d62631369ff8d931e17c50dcadb1f72256d2bcfd07e62b68627374ae05b8ff70a238f6b8717aebdaa6cd0696889d903742f20f313a8e4bcb5efae0edcbb74f41e2027dc90b56ee50a7c151872c3f01c0746579073c26c78e58ca65d93cd6c945401024b70fae5f6e17c1bc9636bd85c6c721b77f39c71e417a9bc43cf7288a2888f33b863c22e5e606ef703db601f52cf73b09b88fe1772d6693064e95ea20aa3da12c76fc929d6982f7ae98c71958c5fdd80f52a8d673027f0fa96116b85636464219d046962e9e728f947cc66e8a58061111b752dbc3bbd70bf3fa2e463969371f089c8226cb217fcf86fed7c5c87ada364a13ca107785a1e76d56edd7b1f02caac7915e522478f790322601868ed8a345ba615388b5d77d405d62f0abd72ed81f218f27c6ee6a6cde612b9c528d4107c25f6d842f8d91a37f4f098e3f552a5ce3c14d301fd1a0c7711f831c8c07197a419447c10662351b792bb34eef76c6f5d66414b182911d942896b1bb156c0ba37a9bfe4420bc17ddfe7be8daeabb37222d4ae081dd889cb787c9bf801b07e186f274a70549a04\"\n            ],\n            \"gasLimit\" : [\n                \"0x61826421\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x74ff9009\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest637Filler.json",
    "content": "{\n    \"randomStatetest637\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x44931064138e9df1768334028c201471\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f44931064138e9df1768334028c20147160005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f44931064138e9df1768334028c201471\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1479766116\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest638Filler.json",
    "content": "{\n    \"randomStatetest638\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xffffffffffffffffffffffff0000000000000000000000000000000000000000\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0960005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff09\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"2032022422\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest639Filler.json",
    "content": "{\n    \"randomStatetest639\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \":raw 0x6e993d78e80807a0d34bdbfa4e0afa9d7eab95e6f8772a548229700e2dcc612ac9ceeb898af8436680a2e1074df8ced0137964d71c8fe8a10fb58f8706ea3ee1b54a0848e742ca357e3d023460c161b1f5a17c48da2ae1e6987c52223414746fab0e39130693d15a48d39b5130096a7c1570c4fb89343ef5d10e912decba682bf205de79e84c573c9e2b0ffbd4d6117e40046b4c2d77156ada28960d9bb97f56d243429aa245c32e1f800a686ebe298dd08349d864486d7a1569b5aae495776bb5e71206cd09f54d1cd713966557567542184c74b95cc0d8ac3d0e05d0264b8d42a3563826123fc0d964521b61b86374591a821818672ef0dea05d259bc4f98c34418d9e7a677173b211649c07df7670aca688053842de6157c4fb5e678adc0611fcc20a1d836ec69b9370d09b83f1b0293a1b102d6d73978584b14fb2ab517001867e6545dd2dc3438f9c7828f6d3c6e4da98113ce2486c1ad028dc9947b28590071b977e651d352b078cb96b27f9ff7252c9f3ce9e5151ae7af1064ab8a5d92ed543b9d59c341f85bb22aa2fa7d7ee7310ac8f519e66da165b9efe3663657b1e28f4eb3e7338391339af5346d12c14bbc0863c26d7e999776c7939cefac542ed69f518bbef5461c0df385004f5411c3faaa65c7b6abf900ca1ef1f40bb938f727695a1ca14012ba07cc01548f3df75544b11bb52b7693bed7e2fc1537b2f8d63c4db4c3d8fc72b6f5f7e7b4d1ec8c1ac89230936975d19626788f03504a8c9acf66437d6d885607778bee6fe54742ddc9a7d8373dbfe2e21aacf8816944c02ef983260156009600960186329ec801e73<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>6356837182f175259fc2ea2df7d720fb0914ed44bcb12b8ff15e712ef67d868fe7fba6b46fac671a45bcace82fa83b87b8744835ac63d2b6cf3d157d7526909f9c4d1efbf68d780af1c0f2dabbfc53d2c71dc461bf7f788e3a9c48cd1df8d146a7df97125985162ecd37b059204323d066cb4709a3a1715f7c4a9fb905c26ba87933ef2499d3447d5cd4df27a6205c8a1ce06719c3e065e66ab80222ff7ed1f72f533a1160330dbd8dcd0489ec2dac84d7522a4d8732c5ae9e08d9a251682fb33fa08ecc05197d897a1d5f28328caa78ca6cd6b86fd08a1748fa959665861d18c25a3cae79732fe4fb3ad8b48c17c8efeeb5ec22be8b20ec4eae2955d65b9a6c1415c23047aa8f2c29aeddd78765c1bc3eda63416d84cdb9b8d7942020db3b1ed861a966475eb6ef9f9920692a879ee6bf9d0a1dd9d386\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x2e\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"0x\"\n            ],\n            \"gasLimit\" : [\n                \"0x6015cf8f\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x49c00898\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest640Filler.json",
    "content": "{\n    \"randomStatetest640\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000010000000000000000000000000000000000000000807f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff50885560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000010000000000000000000000000000000000000000807f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff5088\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"6954369\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest641Filler.json",
    "content": "{\n    \"randomStatetest641\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x29199c9aa4054170f1a15a55056f9655\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f29199c9aa4054170f1a15a55056f965560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f29199c9aa4054170f1a15a55056f96\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"252246116\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest642Filler.json",
    "content": "{\n    \"randomStatetest642\" : {\n\t\"env\" : {\n\t    \"currentCoinbase\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n\t    \"currentDifficulty\" : \"0x20000\",\n\t    \"currentGasLimit\" : \"0x406fbe7b1f887c\",\n\t    \"currentNumber\" : \"0x01\",\n\t    \"currentTimestamp\" : \"0x03e8\"\n\t},\n\t\"expect\": \n\t[\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                            \"code\" : \"\",\n                            \"nonce\" : \"0x01\",\n                            \"storage\" : {\n                            }\n                        },\n                        \"<contract:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                            \"nonce\" : \"0x70\",\n                            \"storage\" : {\n                            }\n                        },\n                        \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                            \"code\" : \"\",\n                            \"nonce\" : \"0xa3\",\n                            \"storage\" : {\n                            }\n                        }\n                }\n            }\n\t],\n\t\"pre\":{\n\t    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t\"balance\" : \"0x26551a696cacb206\",\n\t\t\"code\" : \"\",\n\t\t\"nonce\" : \"0x00\",\n\t\t\"storage\" : {\n\t\t}\n\t    },\n\t    \"<contract:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t\"balance\" : \"0x577686e8d1344340\",\n\t\t\"code\" : \":raw 0x62f46a4f547b169c9edf92f4b39273fe47accc75d1209ae58463c2585607ce051ff6714c4f0fbf6de0659784434fb240652ff52d08576408f168a43a6651f765a4788a05537086290691d5a3239db43eefea96b0012ea26534e99e4ba9ee7f92f37fa731707f800683bafb70815757d861ad8cc6804154ce5b9de3146b58cd53\",\n\t\t\"nonce\" : \"0x70\",\n\t\t\"storage\" : {\n\t\t}\n\t    },\n\t    \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t\"balance\" : \"0x11bae0bb79d6a164\",\n\t\t\"code\" : \"\",\n\t\t\"nonce\" : \"0xa3\",\n\t\t\"storage\" : {\n\t\t}\n\t    }\n\t},\n\t\"transaction\" : {\n\t    \"data\" : [\n\t        \":raw 0x73ac858c3531a0d29ea7a15dfca264e244056b35816eb2fa5e8b941bb7e03e269017ca7b29556e2c50a4525c68460af5ba912653059274ec9907faed7f4ceacf55ed7b50228e7e26e7113d6751750964de40c9f5bb9f378e19edc3fd6ffd6af7ee7710107f382df318b8e1c707719add3db4b00892ddfba9f3e970c8aa9b41f208c53bf041556585635e6534916c5ec0ba7162ea7979164bb27d007c198e1e50cb945b54a4dca4ac110de1a1d47f43fa61c9a6e916d30c3e89695e77cb0da0bcea3bd98260927c609b5782488c5d7e06f07fc67aa5f1cb3c2d7ee74a4054d94e0108b3c962a00fb567a505e96a974f83567a74b898ddd6136e1e6634e4c85cb37db14f98d0080ac548e092928b6eee8d6863592d990f9298d7040cfa486e4e881b0f19eb06892d2185cc0b295d7f2669f00ac67c30de107cd324610a5af8bb29d11354783888e7b8ba5ab533f959729b6e25886d426bbf4cd00626cffbc0ec6beb6a62ae0d9e7166a6303d22036c2b3d45e88057940ada00938e\"\n\t    ],\n\t    \"gasLimit\" : [\n\t        \"0x4ac88d\"\n\t    ],\n\t    \"gasPrice\" : \"0x0a\",\n\t    \"nonce\" : \"0x00\",\n\t    \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n\t    \"to\" : \"0x0000000000000000000000000000000000000007\",\n\t    \"value\" : [\n\t        \"0xf5e5cc4b\"\n\t    ]\n\t}\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest643Filler.json",
    "content": "{\n    \"randomStatetest643\" : {\n\t\"_info\" : {\n            \"comment\" : \"Return ~1 MB out of bounds of the init code. should throw codesize error after EIP158 and create empty account before EIP158\"\n        },\n\t\"env\" : {\n\t\t\"currentCoinbase\":\"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n\t\t\"currentDifficulty\":\"0x20000\",\n\t\t\"currentGasLimit\":\"0x7f0d477519ac97\",\n\t\t\"currentNumber\":\"0x01\",\n\t\t\"currentTimestamp\":\"0x03e8\"\n\t},\n\t\"expect\": \n\t[\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0x1000000000000000000000000000000000000000>\" : {\n                            \"nonce\" : \"0xd2\",\n                            \"storage\" : {\n                            }\n                        },\n                        \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                            \"code\" : \"\",\n                            \"nonce\" : \"0x01\",\n                            \"storage\" : {\n                            }\n                        },\n                        \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                            \"nonce\" : \"0xf3\",\n                            \"storage\" : {\n                            }\n                        }\n                }\n            }\n\t],\n\t\"pre\" : {\n\t\t\"<contract:0x1000000000000000000000000000000000000000>\" : {\n\t\t\t\"balance\":\"0x3f91b25c1601534b\",\n\t\t\t\"code\":\":raw 0x79ecfecf2ab84463f738fc85b069590fcff0334fb1a7108861a44465a26237bc83297ff893a1a95c84afbecc79e1ee4acc8fca826df1ab268bdfd9e712ad0d261f5ede0b6545e6a7d462826d39eb0ac5b4c3ef35f0b4e6d9e05f0773fc63be0c082847f6f9f7728764e142fcd95702c36d65c1e55ec0e2128768030e4eb0de74b57969caa2f2493998537ad0ecba9400ebae911dad6f98bd15da63a8614aa455dc593fa70386a260c66270f1d7527b75f1bf8a683b5d1721f7dd57755bd6a9bed9f874e3876cfcac6762ea51\",\n\t\t\t\"nonce\":\"0xd2\",\n\t\t\t\"storage\" : {}\n\t\t},\n\t\t\"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t\t\"balance\":\"0xa015cddab7107b04\",\n\t\t\t\"code\":\"\",\n\t\t\t\"nonce\":\"0x00\",\n\t\t\t\"storage\" : {}\n\t\t},\n\t\t\"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t\t\"balance\":\"0x262e8de142312a2d\",\n\t\t\t\"code\":\":raw 0x436debc3912504eded08f73b9ff9490d73fc4f820a0890b7e8417fa97940713aeb870e59a790607f6b3d5649e57458ea8692da323253735967657e3fc6e02f6de1c0ff6cc18e051bdd52ad7b1eb441440620426b3485ab683d44ff8d5544eb7f7fb3e1f4c30063640b5a626f341b6271dd59621208476208431973<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>6338f86b9af4\",\n\t\t\t\"nonce\":\"0xf3\",\n\t\t\t\"storage\" : {}\n\t\t}\n\t},\n\t\"transaction\" : {\n\t\t\"data\" : [\n\t\t\t\":raw 0x620d15bc62074ac2f3789b4ff89d27fb5018b60a3730731819c16c8a1e6513c3c2703e63f82ce3617b9c5bdd435cc4e8eaffa5d05d45aef99b6726757bbe89b4ae0e5b9b6062855c2d525b6ca347c35412d0ab99dbc839a14f619a34621beef752635999fd987437da3edb75b58f986d9b62ffc1e6dae25c7e0c019f73922a0ab96d77aef70627e71d0a63d38d2d09afec6a9f6dd36fff38e99a634e506f29060c4e3c3371d213d31078939857877d1780bc984b1ae1225b8dc7cc534cd080ba4b324f436d2c211b3c30889cf66d57b8f669c1be7711d78254d859636790551a4a0f6e0c06664680c8fadd1d7e7b3e887ea3cff5077d014551ed36a72977742f6dcee4113c33297428527783529e675399ca43d5df7d9a4151fcac7093585bb8c6df7d6563faafe035226b81786f72b243bfdbc99e8fd67571df50e0ed7a8e1aaca76fcc65151e7730dee525a07c75d1b3855ae0bfbe0d79ff4905974c837e30a06fb163d89d\"\n\t\t],\n\t\t\"gasLimit\" : [\n\t\t\t\"0x9628e5\"\n\t\t],\n\t\t\"gasPrice\":\"0x0a\",\n\t\t\"nonce\":\"0x00\",\n\t\t\"secretKey\":\"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n\t\t\"to\":\"\",\n\t\t\"value\" : [\n\t\t\t\"0xf0ec2ce5\"\n\t\t]\n\t}\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest644Filler.json",
    "content": "{\n    \"randomStatetest644\" : {\n        \"_info\" : {\n            \"comment\" : \"Geth Failed this test on Frontier and Homestead\"\n        },\n\t\"env\":{\n\t\t\"currentCoinbase\":\"<contract:0xffffffffffffffffffffffffffffffffffffffff>\",\n\t\t\"currentDifficulty\":\"0x20000\",\n\t\t\"currentGasLimit\":\"0x60ca5bfb0d6208\",\n\t\t\"currentNumber\":\"0x01\",\n\t\t\"currentTimestamp\":\"0x03e8\"\n\t},\n\t\"expect\": \n\t[\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0x1000000000000000000000000000000000000000>\" : {\n                            \"nonce\" : \"0x94\",\n                            \"storage\" : {\n                            }\n                        },\n                        \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                            \"code\" : \"\",\n                            \"nonce\" : \"0x01\",\n                            \"storage\" : {\n                            }\n                        },\n                        \"<contract:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                            \"nonce\" : \"0x1c\",\n                            \"storage\" : {\n                            }\n                        },\n                        \"<contract:0xffffffffffffffffffffffffffffffffffffffff>\" : {\n                            \"nonce\" : \"0x1c\",\n                            \"storage\" : {\n                            }\n                        }\n                }\n            }\n\t],\n\t\"pre\":{\n\t\t\"<contract:0x1000000000000000000000000000000000000000>\":{\n\t\t\t\"balance\":\"0x23c22aeb4961b17e\",\n\t\t\t\"code\":\":raw 0x73a66737fdcc16cd591384a0b12fb650ce85011e553b7d85cc6995d8948ac88f5726f16627d809c92dba32d01471809ad1c5046b53687d1ff18bca5a755a0c6cd7ce36e1dc18c7c2a909f6bc0073d53f4c10a2121e6b4f0aeadc71b441c331b19ec57822835269748ae558697a082470abaa3595d4b8256f8954c7ed655896eb04017a7f522be50fd88e38ee27de7ebd20794466f490bcb43162328a337a6e42fd88cacf6a8ecb264fe21836cf31d0ae7be53da5fe2cac802905640c0a18b2ccfd806fed6d7cbaf1fc19c6931d6c37b9320599ca5061121076a6546fc888f04e94c09adcc8a3cc9d002448838977c1010c1cdef7438b3d1e99cf6d78b9d4f55962b04476323f3441\",\n\t\t\t\"nonce\":\"0x94\",\n\t\t\t\"storage\":{\n\t\t\t}\n\t\t},\n\t\t\"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\":{\n\t\t\t\"balance\":\"0x236d08fe524712cb\",\n\t\t\t\"code\":\"\",\n\t\t\t\"nonce\":\"0x00\",\n\t\t\t\"storage\":{\n\t\t\t}\n\t\t},\n\t\t\"<contract:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\":{\n\t\t\t\"balance\":\"0x9183fd5b40d86e03\",\n\t\t\t\"code\":\":raw 0x74357a5ade2da3b4a5f5459faff84e5ea9b714b60ed26257ef597d9aa2e6d9316426366fe24fb9ed56c4a9e5dcf06af08c42368fdaa12b71476283c5bd6147ed93625663ae6252d373624971d86228ec1a730000000000000000000000000000000000000005630c30a604f478fe44add6669b247cad0f00251697572fa913a16c98038931df54\",\n\t\t\t\"nonce\":\"0x1c\",\n\t\t\t\"storage\":{\n\t\t\t}\n\t\t},\n\t\t\"<contract:0xffffffffffffffffffffffffffffffffffffffff>\":{\n\t\t\t\"balance\":\"0x532f42c819fa5bed\",\n\t\t\t\"code\":\":raw 0x77351c4c5a02c8f13fa7c7f5800fa5c9ba2f3b971c13764f9b61c2db66c3f909c17e434a68d685402956cc341dbf6779516900ed0a1e2666dfa40e70f3bcee773c2bffd5b5422a2cf32b19e541f15ae2b6fbe16fd19bbd567728190f83569f036dccd3886aa69c1e685736da06152e3b24728b13546ea1abd48ee47b1b2e1ec70b37fa14cc709d35fce7380230f426455385da80771ffc6e261f3bfe7bfe7f1827d17b0cf49a7d7ff8ceb60b6a86ebbb762eb3e4dd1a8a09eaa9a500bc65cbefd4251865b70ca7e26682f1a2bad52a4a697aa0baf4ebe05130ec6a62e66e719d6bb753654f0ff08533f6d088e16d682dca6786082a55eda4d65f21e91074345d12b775ce0f47447731e5eeeff44ca0a946e1df77f77e3d07cc9daa30a1b2941c17f9039ffa3baddf70dce808a071acb22d3fe0b1ecea101f659fd3fcfe7d9f16546273b0236232b7926211894273<contract:0xffffffffffffffffffffffffffffffffffffffff>3c6247f037626ab8de621acb67625b60d5636bd2696273<contract:0xffffffffffffffffffffffffffffffffffffffff>630b2df5d6f1623402af629589806317ef5652f032\",\n\t\t\t\"nonce\":\"0x1c\",\n\t\t\t\"storage\":{\n\t\t\t}\n\t\t}\n\t},\n\t\"transaction\":{\n\t\t\"data\":[\n\t\t\t\":raw 0x7300000000000000000000000000000000000000013b7ea30da9ff11bd5f11e4529c93ce4b37d5a256d61e1f1a0ecccb5fbb21fec97f6b3d456b8caaaa84ef30a44fd8779fae5a48354b937835d82d57999d194d4edfbaf0a8dd026d727e3315a53e907b0e1873b4dcb7f806014bc23164e8cc0560256f0c6a8c09c0df2f0f8208ff622bb459d46ffab16ce9d64bcf9cec668338ebbc7f9e64656ae99c617d0dd709c1f78f96bea46e2df76db8418e2b657fc77ff2f979952911a73b767a6ce270c7392d2ff340648610fe0219aaf24df2b26e97e2761497bc6b97dea1269de3aca3b69ec7098a7257114a4a2e22c401ec6319bc2deb70980ebef372a327809b3c2473ab86578d2fccd458e6b99a277c4a1d3e96351fbebe62fe63d300444afd3a9077c20905d2a92b5b2945de6bf9b28d1d42795ca74b029dce6934312994a31fed72e45da26c73c636b40b1f6d529f35488625624a9dfd0b62309f286277b5ab6259b2fd62144722631c4722737300000000000000000000000000000000000000056317345497f13368b2a96595a00933d8dd6dc111a13b90768f330898544a443407620316d3625614816282f1e9622e741d73<contract:0x1000000000000000000000000000000000000000>631d791a38fa\"\n\t\t],\n\t\t\"gasLimit\":[\n\t\t\t\"0xbef7\"\n\t\t],\n\t\t\"gasPrice\":\"0x0a\",\n\t\t\"nonce\":\"0x00\",\n\t\t\"secretKey\":\"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n\t\t\"to\":\"0x0000000000000000000000000000000000000001\",\n\t\t\"value\":[\n\t\t\t\"0xf3107ce3\"\n\t\t]\n\t}\n  }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest645Filler.json",
    "content": "{\n    \"randomStatetest645\" : {\n        \"_info\" : {\n            \"comment\" : \"Geth Failed this test on Frontier and Homestead\"\n        },\n\t\"env\":{\n\t\t\"currentCoinbase\":\"<contract:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n\t\t\"currentDifficulty\":\"0x20000\",\n\t\t\"currentGasLimit\":\"0x2ecf1b8c64c9dc\",\n\t\t\"currentNumber\":\"0x01\",\n\t\t\"currentTimestamp\":\"0x03e8\"\n\t},\n\t\"expect\": \n\t[\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0x1000000000000000000000000000000000000000>\" : {\n                            \"nonce\" : \"0x1d\",\n                            \"storage\" : {\n                            }\n                        },\n                        \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                            \"code\" : \"\",\n                            \"nonce\" : \"0x01\",\n                            \"storage\" : {\n                            }\n                        },\n                        \"<contract:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                            \"nonce\" : \"0xaf\",\n                            \"storage\" : {\n                            }\n                        },\n                        \"<eoa:0xffffffffffffffffffffffffffffffffffffffff>\" : {\n                            \"code\" : \"\",\n                            \"nonce\" : \"0x1c\",\n                            \"storage\" : {\n                            }\n                        }\n                }\n            }\n\t],\n\t\"pre\":{\n\t\t\"<contract:0x1000000000000000000000000000000000000000>\":{\n\t\t\t\"balance\":\"0xbcbaf5a33577f162\",\n\t\t\t\"code\":\":raw 0x58679b8e24022d8c28f3620b55a06384bc2f83136515b61916f0f579ea3e9d28799d45aa77bf1fc1a84edf0193dea2d610209eaaf9c814\",\n\t\t\t\"nonce\":\"0x1d\",\n\t\t\t\"storage\":{}\n\t\t},\n\t\t\"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\":{\n\t\t\t\"balance\":\"0x6f1f70fea641f30a\",\n\t\t\t\"code\":\"\",\n\t\t\t\"nonce\":\"0x00\",\n\t\t\t\"storage\":{}\n\t\t},\n\t\t\"<contract:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\":{\n\t\t\t\"balance\":\"0x2be1cfd5d6d6b0b7\",\n\t\t\t\"code\":\":raw 0x63cbb01282621d72de5268022948f746c938a0cb7c01ef17f23ed237d9f3262c4eb1b95112820595b127c516074df06223db7e0c396eb18074f148d96fd766dda35b6cc250661b5f83f0ed625ba68a5ff49aa1\",\n\t\t\t\"nonce\":\"0xaf\",\n\t\t\t\"storage\":{}\n\t\t},\n\t\t\"<eoa:0xffffffffffffffffffffffffffffffffffffffff>\":{\n\t\t\t\"balance\":\"0xb3508c0f8a22f8a1\",\n\t\t\t\"code\":\"\",\n\t\t\t\"nonce\":\"0x1c\",\n\t\t\t\"storage\":{}\n\t\t}\n\t},\n\t\"transaction\":{\n\t\t\"data\":[\n\t\t\t\":raw 0x326e3696ffc10e3e95c67d29784a35ba967d416feb1e1712098bcbb4d20454c1681694f51d8591ff7b80f0e4da50c89a0a777fa7666abccfbd600e213bd71da4925c2a2115799e9c3bb1622f075452\"\n\t\t],\n\t\t\"gasLimit\":[\n\t\t\t\"0x695a\"\n\t\t],\n\t\t\"gasPrice\":\"0x0a\",\n\t\t\"nonce\":\"0x00\",\n\t\t\"secretKey\":\"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n\t\t\"to\":\"0x0000000000000000000000000000000000000003\",\n\t\t\"value\":[\n\t\t\t\"0xf2d6bf97\", \"0x00\"\n\t\t]\n\t}\n  }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest646Filler.json",
    "content": "{\n    \"randomStatetest646\" : {\n        \"_info\" : {\n            \"comment\" : \"Geth Failed this test on all networks\"\n        },\n\t\"env\":{\n\t\t\"currentCoinbase\":\"0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n\t\t\"currentDifficulty\":\"0x20000\",\n\t\t\"currentGasLimit\":\"0x42fe8c95373ea1\",\n\t\t\"currentNumber\":\"0x01\",\n\t\t\"currentTimestamp\":\"0x03e8\"\n\t},\n\t\"expect\": \n\t[\n    \t    {\n                \"//comment\" : \"Shanghai fails to pay for create, the test still must pass on previous nets\",\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                            \"code\" : \"\",\n                            \"nonce\" : \"0x01\",\n                            \"storage\" : {\n                            }\n                        },\n                        \"0xb1c0d37237a1f6bd6202aed4b5a7290dfcda6591\" : {\n                            \"shouldnotexist\" : \"1\"\n                        },\n                        \"0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                            \"code\" : \"\",\n                            \"nonce\" : \"0x07\",\n                            \"storage\" : {\n                            }\n                        },\n                        \"0xffffffffffffffffffffffffffffffffffffffff\" : {\n                            \"nonce\" : \"28\",\n                            \"storage\" : {}\n                        }\n                }\n            }\n\t],\n\t\"pre\":{\n\t\t\"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\":{\n\t\t\t\"balance\":\"0x54465ef1c769628b\",\n\t\t\t\"code\":\"\",\n\t\t\t\"nonce\":\"0x00\",\n\t\t\t\"storage\":{\n\t\t\t}\n\t\t},\n\t\t\"0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b\":{\n\t\t\t\"balance\":\"0x33888d4ce6b934\",\n\t\t\t\"code\":\"\",\n\t\t\t\"nonce\":\"0x07\",\n\t\t\t\"storage\":{\n\t\t\t}\n\t\t},\n\t\t\"0xffffffffffffffffffffffffffffffffffffffff\":{\n\t\t\t\"balance\":\"0xd61773f0c27b842f\",\n\t\t\t\"code\":\":raw 0x64ba8b878e0154689b908f27acb42e5269603972609834bf9a7e578e45609242172907dd75a92555656c5aa6e9248162013ffa6203864863446d325df0336d2c38cfa2f1cdf8cb623c0591987419\",\n\t\t\t\"nonce\":\"0x1c\",\n\t\t\t\"storage\":{\n\t\t\t}\n\t\t}\n\t},\n\t\"transaction\":{\n\t\t\"data\":[\n\t\t\t\":raw 0x785196fdcb5d7e54c4b381e68c7eaeae2735e5537830130057f554672e70a6b867385ea2714ea3185b854bf0b4f9617fb47e6afe9ed4ed68f94b50776420fa24010960ce6b65e2a1ebdce518181d6c69a678989d767fc3d28b6c524f52a87d05519cb32e38fbdc5f801f756922b90c0e2e5bc848bb9c6a5d08ee65470af4fbbeacf87a65c90dc57babd8cdc9819f898551925828bfd360e8a1f1616619d171c23004b0045424cc962e09d8a65d9fd94af9863d61eba97d76dc150e19d991ff1b5fd340dd4fd7e522a659ddf69bcbc729599667aa30536cd85576cc3477495dae10c85b56\"\n\t\t],\n\t\t\"gasLimit\":[\n\t\t\t\"0x584d31\"\n\t\t],\n\t\t\"gasPrice\":\"0x0a\",\n\t\t\"nonce\":\"0x00\",\n\t\t\"secretKey\":\"0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n\t\t\"to\":\"0xffffffffffffffffffffffffffffffffffffffff\",\n\t\t\"value\":[\n\t\t\t\"0x5684b90a\"\n\t\t]\n\t}\n  }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest647Filler.json",
    "content": "{\n    \"randomStatetest647\" : {\n        \"_info\" : {\n            \"comment\" : \"Malicious bytecode found by fuzztest tool: returndatacopy(0,-1)\"\n        },\n\t\"env\":{\n\t\t\"currentCoinbase\":\"0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n\t\t\"currentDifficulty\":\"0x20000\",\n\t\t\"currentGasLimit\":\"0x42fe8c95373ea1\",\n\t\t\"currentNumber\":\"0x01\",\n\t\t\"currentTimestamp\":\"0x03e8\"\n\t},\n\t\"expect\" : [\n\t\t{\n\t\t        \"indexes\" : {\n\t\t            \"data\" : -1,\n\t\t            \"gas\" : -1,\n\t\t            \"value\" : -1\n\t\t        },\n\t\t        \"network\" : [\">=Cancun\"],\n\t\t        \"result\" : {\n\t\t        \t\"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\":{\n    \t\t\t\t\t\"nonce\":\"1\"\n    \t\t\t\t}\n\t\t        }\n   \t\t}\n\t],\n\t\"pre\":{\n\t\t\"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\":{\n\t\t\t\"balance\":\"100000000000\",\n\t\t\t\"code\":\"\",\n\t\t\t\"nonce\":\"0x00\",\n\t\t\t\"storage\":{\n\t\t\t}\n\t\t},\n\t\t\"<contract:target:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\":{\n\t\t\t\"balance\":\"0x00\",\n\t\t\t\"code\":\":raw 0x6001600160000360003e00\",\n\t\t\t\"nonce\":\"0x07\",\n\t\t\t\"storage\":{\n\t\t\t}\n\t\t}\n\t},\n\t\"transaction\":{\n\t\t\"data\":[\n\t\t\t\"\"\n\t\t],\n\t\t\"gasLimit\":[\n\t\t\t\"0x584d31\"\n\t\t],\n\t\t\"gasPrice\":\"0x0a\",\n\t\t\"nonce\":\"0x00\",\n\t\t\"secretKey\":\"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n\t\t\"to\":\"<contract:target:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n\t\t\"value\":[\n\t\t\t\"0x00\"\n\t\t]\n\t}\n  }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest648Filler.json",
    "content": "{\n    \"randomStatetest648\" : {\n        \"_info\" : {\n            \"comment\" : \"Consensus issue test produced by fuzz testing team 00000005-storagefuzz-1\"\n        },\n\t\"env\":{\n      \"currentCoinbase\": \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n      \"currentDifficulty\": \"0x20000\",\n      \"currentGasLimit\": \"0x26e1f476fe1e22\",\n      \"currentNumber\": \"0x1\",\n      \"currentTimestamp\": \"0x3e8\"\n\t},\n\t\"expect\" : [\n\t\t{\n\t\t        \"indexes\" : {\n\t\t            \"data\" : -1,\n\t\t            \"gas\" : -1,\n\t\t            \"value\" : -1\n\t\t        },\n\t\t        \"network\" : [\">=Cancun\"],\n\t\t        \"result\" : {\n\t\t        \t\"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\":{\n    \t\t\t\t\t\"nonce\":\"1\"\n    \t\t\t\t}\n\t\t        }\n   \t\t}\n\t],\n\t\"pre\":{\n      \"<contract:target:0x00000000000000000000000000000000000000f1>\": {\n        \"code\": \":raw 0x600060006000600060f15af450600060005060f5fffd\",\n        \"storage\": {},\n        \"balance\": \"0x0\",\n        \"nonce\": \"0x0\"\n      },\n      \"<contract:0x00000000000000000000000000000000000000f5>\": {\n        \"code\": \":raw 0x600050\",\n        \"storage\": {},\n        \"balance\": \"0x0\",\n        \"nonce\": \"0x0\"\n      },\n      \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n        \"code\": \"0x\",\n        \"storage\": {},\n        \"balance\": \"0xffffffff\",\n        \"nonce\": \"0x0\"\n      }\n\t},\n\t\"transaction\":{\n\t\t\"data\":[\n\t\t\t\":raw 0x384c289327fda733f319011b605929b98b6cc52e4915c942369264c71a3ca70ebce56fef7e41103f1acc71e91f299bf6c5730b265d6f9d475936735ea60c58b9bb125a78178171784759606d696e98f8522b52fe213edee397b3df6ca9f0c6\"\n\t\t],\n\t\t\"gasLimit\":[\n\t\t\t\"0x53dad\"\n\t\t],\n\t\t\"gasPrice\":\"0x0a\",\n\t\t\"nonce\":\"0x00\",\n\t\t\"secretKey\":\"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n\t\t\"to\":\"<contract:target:0x00000000000000000000000000000000000000f1>\",\n\t\t\"value\":[\n\t\t\t\"0xdb2206\"\n\t\t]\n\t}\n  }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest649Filler.json",
    "content": "{\n    \"randomStatetest649\" : {\n        \"_info\" : {\n            \"comment\" : \"Consensus issue test produced by fuzz testing team FuzzyVM-1240834021-1071009090.json.min\"\n        },\n    \"env\":{\n      \"currentCoinbase\": \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n      \"currentDifficulty\": \"0x20000\",\n      \"currentGasLimit\": \"0x26e1f476fe1e22\",\n      \"currentNumber\": \"0x1\",\n      \"currentTimestamp\": \"0x3e8\"\n\t},\n\t\"expect\" : [\n\t\t{\n\t\t        \"indexes\" : {\n\t\t            \"data\" : -1,\n\t\t            \"gas\" : -1,\n\t\t            \"value\" : -1\n\t\t        },\n\t\t        \"network\" : [\">=Cancun\"],\n\t\t        \"result\" : {\n\t\t        \t\"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\":{\n    \t\t\t\t\t\"nonce\": \"1\"\n    \t\t\t\t}\n\t\t        }\n   \t\t}\n\t],\n\t\"pre\":{\n      \"<contract:target:0x000000000000000000000000000000ca1100f022>\": {\n        \"code\": \":raw 0x7f6c756dbf65726963616e207f9439303733373936353331363631303037345a056000527f7265737582673075742074650041030a000000efbf7125e86c756dbf657269636020527f616e207f9439303733373936353331363631303037345a0572657375826730757f742074650041030a000000efbf7125e86c756dbf65726963616e207f943930377f33373936353331363631303037345a057265737582673075742074650041030a7cefbf7125e86c756dbf65726963616e207f9439303733373936353331367f3631303037345a057265737582673075742074650041030a000000efbf7125e8606c60e053607560e153606d60e25360bf60e353606560e453607260e553606960e653606360e75360e860006000f06000600060006000845a6950507f7f9439303733373936353331363631303037345a05726573758267307574207460005260206000f35b410061943961207f61616e616963616572600563012b9bbff167000000000000015f565b670000000000004ca65661363551613636556136555161363755613675516136385561369551613639556136b55161363a556136d55161363b556136f55161363c556137155161363d556137355161363e556137555161363f55613775516136405561379551613641556137b551613642556137d551613643556137f55161364455613815516136455561383551613646556138555161364755613875516136485561389551613649556138b55161364a556138d55161364b556138f55161364c556139155161364d556139355161364e556139555161364f55613975516136505561399551613651556139b551613652556139d551613653556139f55161365455613a155161365555613a355161365655613a555161365755613a755161365855613a955161365955613ab55161365a55613ad55161365b55613af55161365c00\",\n        \"storage\": {},\n        \"balance\": \"0x0\",\n        \"nonce\": \"0x0\"\n      },\n      \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n        \"code\": \"0x\",\n        \"storage\": {},\n        \"balance\": \"0x3fffffffffffffff\",\n        \"nonce\": \"0x0\"\n      }\n\t},\n\t\"transaction\":{\n\t\t\"data\":[\n\t\t\t\":raw 0x756dbf65726963616e207f9439303733373936353331363631303037345a057265737582673075742074650041030a000000efbf7125e86c756dbf65726963616e207f9439303733373936353331363631303037345a0572657375826730757420746500\"\n\t\t],\n\t\t\"gasLimit\":[\n\t\t\t\"0x24174\"\n\t\t],\n\t\t\"gasPrice\":\"0x0a\",\n\t\t\"nonce\":\"0x00\",\n\t\t\"secretKey\":\"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n\t\t\"to\":\"<contract:target:0x000000000000000000000000000000ca1100f022>\",\n\t\t\"value\":[\n\t\t\t\"0xefbf7125\"\n\t\t]\n\t}\n  }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetest650Filler.json",
    "content": "{\n    \"randomStatetest650\" : {\n        \"_info\" : {\n            \"comment\" : \"Consensus issue test produced by fuzz testing team FuzzyVM-1061441003-276458261\"\n        },\n    \"env\":{\n        \"currentCoinbase\":\"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n        \"currentDifficulty\":\"0x20000\",\n        \"currentGasLimit\":\"0x26e1f476fe1e22\",\n        \"currentNumber\":\"0x1\",\n        \"currentTimestamp\":\"0x3e8\"\n\t},\n\t\"expect\" : [\n\t\t{\n\t\t        \"indexes\" : {\n\t\t            \"data\" : -1,\n\t\t            \"gas\" : -1,\n\t\t            \"value\" : -1\n\t\t        },\n\t\t        \"network\" : [\">=Cancun\"],\n\t\t        \"result\" : {\n\t\t        \t\"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\":{\n    \t\t\t\t\t\"nonce\": \"1\"\n    \t\t\t\t}\n\t\t        }\n   \t\t}\n\t],\n\t\"pre\":{\n        \"<contract:target:0x000000000000000000000000000000ca1100f022>\":{\n            \"code\":\":raw 0x60006000526310000000602052600060405260f66060536073606153600a60625360ef60635360bf60645360bd60655360ef60665360bf60675360bd60685360ef60695360bf606a5360bd606b5360ef606c5360bf606d5360bd606e536003606f536040600060706000600562d51402fa6000635a430010557fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff16010615a436159ce6199b4610295600761d514f17fbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730a6000527fefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6736020527f0aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f66040527f730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4300106060527ff6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a43006080527f10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a4360a0527e10f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a60c052604360e053600060e153601060e25360f660e353607360e453600a60e55360ef60e65360bf60e75360bd60e85360ef60e95360bf60ea5360bd60eb5360ef60ec5360bf60ed5360bd60ee536020600060ef600063bfbdefbf6002622368eff1\",\n            \"storage\":{},\n            \"balance\":\"0x0\",\n            \"nonce\":\"0x0\"\n        },\n        \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\":{\n            \"code\":\"0x\",\n            \"storage\":{},\n            \"balance\":\"0x3fffffffffffffff\",\n            \"nonce\":\"0x0\"\n        }\n\t},\n\t\"transaction\":{\n\t\t\"data\":[\n\t\t\t\":raw 0x000000d514029599b459ce6d7f5a430010f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730aefbfbdefbfbdefbfbdefbfbd03000000d514029599b459ce6d7f5a430010f6730aefbfbdefbfbdefbfbdefbfbd0300\"\n\t\t],\n\t\t\"gasLimit\":[\n\t\t\t\"0x124f80\"\n\t\t],\n\t\t\"gasPrice\":\"0x0a\",\n\t\t\"nonce\":\"0x00\",\n\t\t\"secretKey\":\"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n\t\t\"to\":\"<contract:target:0x000000000000000000000000000000ca1100f022>\",\n\t\t\"value\":[\n\t\t\t\"0xefbfbd03\"\n\t\t]\n\t}\n  }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRandom2/randomStatetestFiller.json",
    "content": "{\n    \"randomStatetest\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x29199c9aa4054170f1a15a55056f9655\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f29199c9aa4054170f1a15a55056f965560005155\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"46\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f29199c9aa4054170f1a15a55056f96\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"252246116\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRecursiveCreate/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stRecursiveCreate/recursiveCreateFiller.json",
    "content": "{\n    \"recursiveCreate\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"d2571607e241ecf590ed94b12d87c94babe36db6\" : {\n                        \"nonce\" : \"0x02\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{(CODECOPY 0 0 32)(CREATE 0 0 32)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"465224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRecursiveCreate/recursiveCreateReturnValueFiller.json",
    "content": "{\n    \"recursiveCreateReturnValue\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"d2571607e241ecf590ed94b12d87c94babe36db6\" : {\n                        \"nonce\" : \"0x02\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{(CODECOPY 0 0 32) [[ 0 ]] (ADD (CREATE 0 0 32) 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRefundTest/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stRefundTest/refund50_1Filler.json",
    "content": "{\n    \"refund50_1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\" : {\n                        \"balance\" : \"0\"\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"balance\" : \"9631760\",\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"\",\n                \"nonce\" : \"1\",\n                \"storage\" : {}\n            },\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 1 ]] 0 [[ 2 ]] 0 [[ 3 ]] 0 [[ 4 ]] 0 [[ 5 ]] 0 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x01\" : \"0x01\",\n                    \"0x02\" : \"0x01\",\n                    \"0x03\" : \"0x01\",\n                    \"0x04\" : \"0x01\",\n                    \"0x05\" : \"0x01\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRefundTest/refund50_2Filler.json",
    "content": "{\n    \"refund50_2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x0a\" : \"0x01\",\n                            \"0x0b\" : \"0x01\"\n                        }\n                    },\n                    \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\" : {\n                        \"balance\" : \"0\"\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"balance\" : \"9278060\",\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\" : {\n                \"balance\" : \"0\",\n                \"nonce\" : \"1\",\n                \"code\" : \"\",\n                \"storage\" : {}\n            },\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 10 ]] 1 [[ 11 ]] 1 [[ 1 ]] 0 [[ 2 ]] 0 [[ 3 ]] 0 [[ 4 ]] 0 [[ 5 ]] 0 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x01\" : \"0x01\",\n                    \"0x02\" : \"0x01\",\n                    \"0x03\" : \"0x01\",\n                    \"0x04\" : \"0x01\",\n                    \"0x05\" : \"0x01\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRefundTest/refund50percentCapFiller.json",
    "content": "{\n    \"refund50percentCap\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x0a\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n                            \"0x0b\" : \"0x0de0b6b3a7640000\"\n                        }\n                    },\n                    \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\" : {\n                        \"balance\" : \"0\"\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"balance\" : \"9236640\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"\",\n                \"nonce\" : \"1\",\n                \"storage\" : {}\n            },\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ @@1 @@2 [[ 10 ]] (EXP 2 0xff) [[ 11 ]] (BALANCE (ADDRESS)) [[ 1 ]] 0 [[ 2 ]] 0 [[ 3 ]] 0 [[ 4 ]] 0 [[ 5 ]] 0 [[ 6 ]] 0 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x01\" : \"0x01\",\n                    \"0x02\" : \"0x01\",\n                    \"0x03\" : \"0x01\",\n                    \"0x04\" : \"0x01\",\n                    \"0x05\" : \"0x01\",\n                    \"0x06\" : \"0x01\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRefundTest/refund600Filler.json",
    "content": "{\n    \"refund600\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t        {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x0b\" : \"0x0de0b6b3a7640000\"\n                        }\n                    },\n                    \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\" : {\n                        \"balance\" : \"0\"\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"balance\" : \"9395440\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"\",\n                \"nonce\" : \"1\",\n                \"storage\" : {}\n            },\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ @@1 @@2 [[ 10 ]] (EXP 2 0xffff) [[ 11 ]] (BALANCE (ADDRESS)) [[ 1 ]] 0 [[ 2 ]] 0 [[ 3 ]] 0 [[ 4 ]] 0 [[ 5 ]] 0 [[ 6 ]] 0 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x01\" : \"0x01\",\n                    \"0x02\" : \"0x01\",\n                    \"0x03\" : \"0x01\",\n                    \"0x04\" : \"0x01\",\n                    \"0x05\" : \"0x01\",\n                    \"0x06\" : \"0x01\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRefundTest/refundFFFiller.yml",
    "content": "# The refund for opcode FF   (SELFDESTRUCT)\n# \n# There should be a refund in Berlin, but not in London (EIP 3529)\n# The Berlin refund is 14303, not the expected 24000, because it is limited\n# to half the gas used by the transaction.\n\nrefundFF:\n  _info:\n    comment: Ori Pomerantz   qbzzt1@gmail.com\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentNumber: 1\n    currentTimestamp: 1000\n    currentGasLimit: 0x1000000\n    currentBaseFee: 1000\n\n  pre:\n    <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n      balance: 0\n      code: |\n          :yul berlin\n          {\n             selfdestruct(<eoa:0xdddddddddddddddddddddddddddddddddddddddd>)\n          }\n      nonce: 1\n      storage: {}\n\n\n    # The recipient of the balance from SELFDESTRUCT\n    <eoa:0xdddddddddddddddddddddddddddddddddddddddd>:\n      balance: 0\n      code: 0x\n      nonce: 1\n      storage: {}\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: 1000028607000\n      code: '0x'\n      nonce: 1\n      storage: {}\n\n\n  transaction:\n    data:\n    - data: :raw 0x00\n      accessList: []\n    gasLimit:\n    - 2601000\n    nonce: 1\n    to: <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>\n    value:\n    - 0\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    gasPrice: 1000\n    \n\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n\n      network:\n        - '>=Cancun'\n      result:\n        <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n          # Without a refund, the balance would be 1000000000000\n          # There is no refund in London\n          balance: 1000000000000\n\n"
  },
  {
    "path": "tests/static/state_tests/stRefundTest/refundMaxFiller.yml",
    "content": "# Get the maximum refund (by refunding eight SSTOREs, in a transaction that doesn't\n# do much other than that) and see what it is.\n#\n# The cost of the transaction without refunds is 61057 gas\n#    (obtained by running with newVal := <not zero>)\n#\n# Berlin Refund: 30528 gas   ( 61057 / 2 )\n# London Refund: 12211 gas   ( 61057 / 5 )\n#\n# EIP 3529 sets MAX_REFUND_QUOTIENT to 5 (previously it was 2)\n\nrefundMax:\n  _info:\n    comment: Ori Pomerantz   qbzzt1@gmail.com\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentNumber: 1\n    currentTimestamp: 1000\n    currentGasLimit: 0x1000000\n    currentBaseFee: 1000\n\n  pre:\n    <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n      balance: '1000000000000000000'\n      code: |\n          :yul berlin\n          {\n             let newVal := 0\n             sstore(0x00,newVal)\n             sstore(0x01,newVal)\n             sstore(0x02,newVal)\n             sstore(0x03,newVal)\n             sstore(0x04,newVal)\n             sstore(0x05,newVal)\n             sstore(0x06,newVal)\n             sstore(0x07,newVal)\n\n             // Get rid of Yul optimizations\n             newVal := msize()\n          }\n      nonce: 1\n      storage:\n        0x00: 0x60A7\n        0x01: 0x60A7\n        0x02: 0x60A7\n        0x03: 0x60A7\n        0x04: 0x60A7\n        0x05: 0x60A7\n        0x06: 0x60A7\n        0x07: 0x60A7\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: 1000061060000\n      code: '0x'\n      nonce: 1\n      storage: {}\n\n\n  transaction:\n    data:\n    - data: :raw 0x00\n      accessList: []\n    gasLimit:\n    - 2601000\n    nonce: 1\n    to: <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>\n    value:\n    - 0\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    gasPrice: 1000\n    \n\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n\n      network:\n        - '>=Cancun'\n      result:\n        <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n          # Without a refund, the balance would be 1000000000000\n          # The London refund is 12218000 wei, which is 12218 gas \n          balance: 1000012218000\n\n"
  },
  {
    "path": "tests/static/state_tests/stRefundTest/refundSSTOREFiller.yml",
    "content": "# Calculate the refund provided by a single SSTORE that replaces a value with zero\n#\n# Berlin: 13005 gas\n# London:  4800 gas (as per EIP 3529)\n\n\nrefundSSTORE:\n  _info:\n    comment: Ori Pomerantz   qbzzt1@gmail.com\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentNumber: 1\n    currentTimestamp: 1000\n    currentGasLimit: 0x1000000\n    currentBaseFee: 1000\n\n  pre:\n    <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n      balance: '1000000000000000000'\n      code: |\n          :yul berlin \n          {\n             sstore(0,0x0)\n          }\n      nonce: 1\n      storage:\n        0x00: 0x60A7\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: 1000026010000\n      code: '0x'\n      nonce: 1\n      storage: {}\n\n\n  transaction:\n    data:\n    - data: :raw 0x00\n      accessList: []\n    gasLimit:\n    - 2601000\n    nonce: 1\n    to: <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>\n    value:\n    - 0\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    gasPrice: 1000\n    \n\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n\n      network:\n        - '>=Cancun'\n      result:\n        <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n          # Without a refund, the balance would be 1000000000000\n          # The London refund is 4800000 wei, which is 4800 gas \n          balance: 1000004800000\n"
  },
  {
    "path": "tests/static/state_tests/stRefundTest/refundSuicide50procentCapFiller.json",
    "content": "{\n    \"refundSuicide50procentCap\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000000000\",\n                        \"storage\" : {\n                            \"0x0a\" : \"0x01\",\n                            \"0x0b\" : \"0x00\",\n                            \"0x17\" : \"0x0107a7\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"2000000000000000000\",\n                        \"storage\" : {\n                            \"0x0a\" : \"0x01\",\n                            \"0x0b\" : \"0x01\",\n                            \"0x17\" : \"0x0166fa\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"\",\n                \"nonce\" : \"1\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [22] (GAS) [[ 10 ]] 1 [[ 11 ]] (CALL (CALLDATALOAD 0) <contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa> 0 0 0 0 0 ) [[ 1 ]] 0 [[ 2 ]] 0 [[ 3 ]] 0 [[ 4 ]] 0 [[ 5 ]] 0 [[ 6 ]] 0 [[ 7 ]] 0 [[ 8 ]] 0 [[ 23 ]] (SUB @22 (GAS)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x01\" : \"0x01\",\n                    \"0x02\" : \"0x01\",\n                    \"0x03\" : \"0x01\",\n                    \"0x04\" : \"0x01\",\n                    \"0x05\" : \"0x01\",\n                    \"0x06\" : \"0x01\",\n                    \"0x07\" : \"0x01\",\n                    \"0x08\" : \"0x01\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (SELFDESTRUCT <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x00000000000000000000000000000000000000000000000000000000000001f4\",\n                \":raw 0x0000000000000000000000000000000000000000000000000000000000010000\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRefundTest/refund_CallAFiller.json",
    "content": "{\n    \"refund_CallA\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000000010\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\" : {\n                        \"balance\" : \"0\"\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"balance\" : \"19540690\",\n                        \"nonce\" : \"1\"\n                    },\n                    \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"\",\n                \"nonce\" : \"1\",\n                \"storage\" : {}\n            },\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 5500 <contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa> 0 0 0 0 0 )}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x01\" : \"0x01\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 1 ]] 0 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x01\" : \"0x01\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"200000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRefundTest/refund_CallA_OOGFiller.json",
    "content": "{\n    \"refund_CallA_OOG\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000000000\",\n                        \"storage\" : {\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\" : {\n                        \"balance\" : \"0\"\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"balance\" : \"2689310\",\n                        \"nonce\" : \"1\"\n                    },\n                    \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\" : {\n                \"balance\" : \"0\",\n                \"nonce\" : \"1\",\n                \"code\" : \"\",\n                \"storage\" : {}\n            },\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 6000 <contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa> 0 0 0 0 0 )}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x01\" : \"0x01\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"3000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 1 ]] 0 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x01\" : \"0x01\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"31069\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRefundTest/refund_CallA_notEnoughGasInCallFiller.json",
    "content": "{\n    \"refund_CallA_notEnoughGasInCall\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun\" ],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000000010\",\n                        \"storage\" : {\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\" : {\n                        \"balance\" : \"0\"\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"balance\" : \"691700\",\n                        \"nonce\" : \"1\"\n                    },\n                    \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"\",\n                \"nonce\" : \"1\",\n                \"storage\" : {}\n            },\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 5005 <contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa> 0 0 0 0 0 )}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x01\" : \"0x01\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 1 ]] 0 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x01\" : \"0x01\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"85000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRefundTest/refund_CallToSuicideNoStorageFiller.json",
    "content": "{\n    \"refund_CallToSuicideNoStorage\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000000010\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"2000000000000000010\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL (CALLDATALOAD 0) <contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa> 0 0 0 0 0 )}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x01\" : \"0x01\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (SELFDESTRUCT <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x00000000000000000000000000000000000000000000000000000000000001f4\",\n                \":raw 0x0000000000000000000000000000000000000000000000000000000000010000\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRefundTest/refund_CallToSuicideStorageFiller.json",
    "content": "{\n    \"refund_CallToSuicideStorage\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : 0 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000000010\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"1\"\n                    },\n\t\t            \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa>\" : {\n\t\t\t            \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x01\"\n                        }\n\t\t            }\n                }\n            },\n\t        {\n                \"indexes\" : { \"data\" : 1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"2000000000000000010\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"1\"\n                    },\n\t\t            \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa>\" : {\n                        \"balance\" : \"0\",\n\t\t\t            \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x01\" : \"0x01\"\n                        }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL (CALLDATALOAD 0) <contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa> 0 0 0 0 0 )}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x01\" : \"0x01\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (SELFDESTRUCT <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x01\" : \"0x01\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x00000000000000000000000000000000000000000000000000000000000001f4\", \n                \":raw 0x0000000000000000000000000000000000000000000000000000000000010000\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRefundTest/refund_CallToSuicideTwiceFiller.json",
    "content": "{\n    \"refund_CallToSuicideTwice\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : 0 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000000010\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"1\"\n                    },\n\t\t            \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa>\" : {\n    \t\t\t        \"storage\" : {\n                            \"0x01\" : \"0x01\"\n                        }\n\t\t            }\n                }\n            },\n    \t    {\n                \"indexes\" : { \"data\" : 1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"2000000000000000010\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"1\"\n                    },\n\t\t            \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa>\" : {\n    \t\t\t        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x01\" : \"0x01\"\n                        }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL (CALLDATALOAD 0) <contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa> 0 0 0 0 0 ) (CALL (CALLDATALOAD 0) <contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa> 0 0 0 0 0 )}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x01\" : \"0x01\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (SELFDESTRUCT <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x01\" : \"0x01\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x00000000000000000000000000000000000000000000000000000000000001f4\",\n                \":raw 0x0000000000000000000000000000000000000000000000000000000000010000\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRefundTest/refund_NoOOG_1Filler.json",
    "content": "{\n    \"refund_NoOOG_1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\" : {\n                        \"balance\" : \"0\"\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"balance\" : \"10289940\",\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"\",\n                \"nonce\" : \"1\",\n                \"storage\" : {}\n            },\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 1 ]] 0 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x01\" : \"0x01\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10502000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"26006\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRefundTest/refund_OOGFiller.json",
    "content": "{\n    \"refund_OOG\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000000000\",\n                        \"storage\" : {\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\" : {\n                        \"balance\" : \"0\"\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"balance\" : \"239950\",\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"\",\n                \"nonce\" : \"1\",\n                \"storage\" : {}\n            },\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 1 ]] 0 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x01\" : \"0x01\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"500000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"26005\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRefundTest/refund_TxToSuicideFiller.json",
    "content": "{\n    \"refund_TxToSuicide\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"balance\" : \"1000000000000000010\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\" : {\n                        \"balance\" : \"0\"\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"balance\" : \"99463960\",\n                        \"nonce\" : \"1\"\n                    },\n        \t\t    \"<contract:target:0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa>\" : {\n            \t\t\t\"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x01\" : \"0x01\"\n                        }\n        \t\t    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"\",\n                \"nonce\" : \"1\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"100000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (SELFDESTRUCT 0x095e7baea6a6c7c4c2dfeb977efac326af552d87) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x01\" : \"0x01\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                 \"61003\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRefundTest/refund_TxToSuicideOOGFiller.json",
    "content": "{\n    \"refund_TxToSuicideOOG\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\" : {\n                        \"balance\" : \"0\"\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"balance\" : \"99789980\",\n                        \"nonce\" : \"1\"\n                    },\n                    \"<contract:target:0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa>\" : {\n                        \"balance\" : \"1000000000000000000\",\n                        \"storage\" : {\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"\",\n                \"nonce\" : \"1\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"100000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (SELFDESTRUCT 0x095e7baea6a6c7c4c2dfeb977efac326af552d87) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x01\" : \"0x01\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"21002\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRefundTest/refund_changeNonZeroStorageFiller.json",
    "content": "{\n    \"refund_changeNonZeroStorage\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000000010\",\n                        \"storage\" : {\n                            \"0x01\" : \"0x17\"\n                        }\n                    },\n                    \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\" : {\n                        \"balance\" : \"0\"\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"balance\" : \"1009739930\",\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\" : {\n                \"balance\" : \"0\",\n                \"nonce\" : \"1\",\n                \"code\" : \"\",\n                \"storage\" : {}\n            },\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 1 ]] 23 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x01\" : \"0x01\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1010000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"228500\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRefundTest/refund_getEtherBackFiller.json",
    "content": "{\n    \"refund_getEtherBack\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"228500\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000000010\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\" : {\n                        \"balance\" : \"0\"\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"balance\" : \"1022637930\",\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\" : {\n                \"balance\" : \"0\",\n                \"nonce\" : \"1\",\n                \"code\" : \"\",\n                \"storage\" : {}\n            },\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 1 ]] 0 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x01\" : \"0x01\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1022850000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"228500\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRefundTest/refund_multimpleSuicideFiller.json",
    "content": "{\n    \"refund_multimpleSuicide\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000001>\" : {\n                        \"balance\" : \"1000000000000000000\"\n                    },\n                    \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\" : {\n                        \"balance\" : \"0\"\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"balance\" : \"102679610\",\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n         \"pre\" : {\n            \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\" : {\n                \"balance\" : \"0\",\n                \"nonce\" : \"1\",\n                \"code\" : \"\",\n                \"storage\" : {}\n            },\n            \"<contract:target:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"//comment1\" : \"contract Killer {\",\n                \"//comment2\" : \"  function homicide() {\",\n                \"//comment3\" : \"      suicide(msg.sender);\",\n                \"//comment4\" : \"    }\",\n                \"//comment5\" : \"\",\n                \"//comment6\" : \"    function multipleHomocide() {\",\n                \"//comment7\" : \"        Killer k  = this;\",\n                \"//comment8\" : \"        k.homicide();\",\n                \"//comment9\" : \"        k.homicide();\",\n                \"//comment10\" : \"    }\",\n                \"//comment11\" : \"\",\n                \"//comment12\" : \"    function run() returns (bool)\",\n                \"//comment13\" : \"    {\",\n                \"//comment14\" : \"  multipleHomocide();\",\n                \"//comment15\" : \"  return true;\",\n                \"//comment16\" : \"    }\",\n                \"//comment17\" : \"}\",\n                \"code\" : \":raw 0x606060405260e060020a600035046309e587a58114610031578063c04062261461004d578063dd4f1f2a1461005a575b005b61002f3373ffffffffffffffffffffffffffffffffffffffff16ff5b6100f5600061010961005e565b61002f5b60003090508073ffffffffffffffffffffffffffffffffffffffff166309e587a56040518160e060020a0281526004018090506000604051808303816000876161da5a03f1156100025750604080517f09e587a500000000000000000000000000000000000000000000000000000000815290516004828101926000929190829003018183876161da5a03f1156100025750505050565b604080519115158252519081900360200190f35b5060019056\",\n                \"storage\" : {\n                }\n            },\n             \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                 \"balance\" : \"103000000\",\n                 \"nonce\" : \"0\",\n                 \"code\" : \"\",\n                 \"storage\": {}\n             }\n         },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0xc0406226\"\n            ],\n            \"gasLimit\" : [\n                \"300000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000001>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRefundTest/refund_singleSuicideFiller.json",
    "content": "{\n    \"refund_singleSuicide\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000001>\" : {\n                        \"balance\" : \"1000000000000000000\"\n                    },\n                    \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\" : {\n                        \"balance\" : \"0\"\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"balance\" : \"29732660\",\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n         \"pre\" : {\n            \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\" : {\n                \"balance\" : \"0\",\n                \"nonce\" : \"1\",\n                \"code\" : \"\",\n                \"storage\" : {}\n            },\n            \"<contract:target:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"//comment1\" : \"contract Killer {\",\n                \"//comment2\" : \"  function homicide() {\",\n                \"//comment3\" : \"      suicide(msg.sender);\",\n                \"//comment4\" : \"    }\",\n                \"//comment5\" : \"\",\n                \"//comment6\" : \"    function multipleHomocide() {\",\n                \"//comment7\" : \"        Killer k  = this;\",\n                \"//comment8\" : \"        k.homicide();\",\n                \"//comment9\" : \"    }\",\n                \"//comment10\" : \"\",\n                \"//comment11\" : \"    function run() returns (bool)\",\n                \"//comment12\" : \"    {\",\n                \"//comment13\" : \"  multipleHomocide();\",\n                \"//comment14\" : \"  return true;\",\n                \"//comment15\" : \"    }\",\n                \"//comment16\" : \"}\",\n                \"code\" : \":raw 0x606060405260e060020a600035046309e587a58114602e5780632e4699ed146049578063c040622614609b575b005b602c3373ffffffffffffffffffffffffffffffffffffffff16ff5b602c5b60003090508073ffffffffffffffffffffffffffffffffffffffff166309e587a56040518160e060020a0281526004018090506000604051808303816000876161da5a03f11560025750505050565b60a5600060b9604c565b604080519115158252519081900360200190f35b5060019056\",\n                \"storage\" : {\n                }\n            },\n             \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                 \"balance\" : \"30000000\",\n                 \"nonce\" : \"0\",\n                 \"code\" : \"\",\n                 \"storage\": {}\n             }\n         },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0xc0406226\"\n            ],\n            \"gasLimit\" : [\n                \"300000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000001>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stReturnDataTest/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stReturnDataTest/call_ecrec_success_empty_then_returndatasizeFiller.json",
    "content": "{\n    \"call_ecrec_success_empty_then_returndatasize\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x1a00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n\t\"expect\": [\n\t    {\n\t        \"indexes\" : {\n\t\t    \"data\" : -1,\n\t\t    \"gas\" : -1,\n\t\t    \"value\" : -1\n\t         },\n\t\t\"network\" : [\">=Cancun\"],\n\t\t\"result\" : {\n\t \t    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \t\"storage\" : {\n                            \"0x00\": \"0x00\"\n\t        \t}\n\t\t    }\n\t\t}\n\t    }\n\t],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \"{ (seq (CALL 0x9000 0x1 0 0 0 0 0xaa) (SSTORE 0 (RETURNDATASIZE)) )}\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                  \"0x00\": \"0x60A7\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stReturnDataTest/call_outsize_then_create_successful_then_returndatasizeFiller.json",
    "content": "{\n    \"call_outsize_then_create_successful_then_returndatasize\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x1a00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n\t\"expect\": [\n\t    {\n\t        \"indexes\" : {\n\t\t    \"data\" : -1,\n\t\t    \"gas\" : -1,\n\t\t    \"value\" : -1\n\t         },\n\t\t\"network\" : [\">=Cancun\"],\n\t\t\"result\" : {\n\t \t    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \t\"storage\" : {\n\t\t\t    \"0x00\" : \"0x00\"\n\t        \t}\n\t\t    }\n\t\t}\n\t    }\n\t],\n        \"pre\" : {\n            \"<contract:0x0aabbccdd5c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n        \"balance\" : \"0x00\",\n                \"code\" : \"{ (seq (MSTORE 0 0x0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff) (RETURN 0 32) (STOP) ) }\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \"{ (seq (CALL 0x0900000000 <contract:0x0aabbccdd5c57f15886f9b263e2f6d2d6c7b5ec6> 0 0 0 0 0x20) (CREATE 0 0 (lll (seq (mstore 0 0x112233) (RETURN 0 32)  (STOP) ) 0)) (SSTORE 0 (RETURNDATASIZE)) (STOP) )}\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stReturnDataTest/call_then_call_value_fail_then_returndatasizeFiller.json",
    "content": "{\n    \"call_then_call_value_fail_then_returndatasize\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x1a00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n\t\"expect\": [\n\t    {\n\t        \"indexes\" : {\n\t\t    \"data\" : -1,\n\t\t    \"gas\" : -1,\n\t\t    \"value\" : -1\n\t         },\n\t\t\"network\" : [\">=Cancun\"],\n\t\t\"result\" : {\n\t \t    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \t\"storage\" : {\n\t\t\t    \"0x00\" : \"0x00\"\n\t        \t}\n\t\t    }\n\t\t}\n\t    }\n\t],\n        \"pre\" : {\n            \"<contract:0x0aabbccdd5c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n        \"balance\" : \"0x00\",\n                \"code\" : \"{ (seq (MSTORE 0 0x0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff) (RETURN 0 32)) }\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \"{ (seq (CALL 0x0900000000 <contract:0x0aabbccdd5c57f15886f9b263e2f6d2d6c7b5ec6> 0 0 0 0 0x20) (CALL 0x0900000000 <contract:0x0aabbccdd5c57f15886f9b263e2f6d2d6c7b5ec6> 0xffffffffffff 0 0 0 0x20) (SSTORE 0 (RETURNDATASIZE)) )}\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stReturnDataTest/call_then_create_successful_then_returndatasizeFiller.json",
    "content": "{\n    \"call_then_create_successful_then_returndatasize\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x1a00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n\t\"expect\": [\n\t    {\n\t        \"indexes\" : {\n\t\t    \"data\" : -1,\n\t\t    \"gas\" : -1,\n\t\t    \"value\" : -1\n\t         },\n\t\t\"network\" : [\">=Cancun\"],\n\t\t\"result\" : {\n\t \t    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \t\"storage\" : {\n\t\t\t    \"0x00\" : \"0x00\"\n\t        \t}\n\t\t    }\n\t\t}\n\t    }\n\t],\n        \"pre\" : {\n            \"<contract:0x0aabbccdd5c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n\t        \"balance\" : \"0x00\",\n                \"code\" : \"{ (seq (MSTORE 0 0x0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff) (RETURN 0 32) (STOP) ) }\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \"{ (seq (CALL 0x0900000000 <contract:0x0aabbccdd5c57f15886f9b263e2f6d2d6c7b5ec6> 0 0 0 0 0) (CREATE 0 0 (lll (seq (mstore 0 0x112233) (RETURN 0 32) (STOP) ) 0)) (SSTORE 0 (RETURNDATASIZE)) (STOP) )}\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stReturnDataTest/clearReturnBufferFiller.yml",
    "content": "clearReturnBuffer:\n\n  # Make sure that if information is returned by an intermediate step it is not\n  # Returned by subsequent steps.\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    # Return a buffer (of a specified length)\n    <contract:0x000000000000000000000000000000000000f3f3>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        :yul berlin\n        {\n           // no need to complicate things with an ABI\n           let bufLen := calldataload(0)\n           mstore(0, 0x60A7)\n           return(0, bufLen)                      \n        }\n      nonce: 1\n      storage: {}\n\n\n\n    # Revert a buffer (of a specified length)\n    <contract:0x000000000000000000000000000000000000fdfd>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        :yul berlin\n        {\n           // no need to complicate things with an ABI\n           let bufLen := calldataload(0)\n           mstore(0, 0x60A7)\n           revert(0, bufLen)       \n        }\n      nonce: 1\n      storage: {}\n\n\n    # This contract is CALLed to receive a buffer\n    # which it then does not return\n    <contract:0x0000000000000000000000000000000000ca11ed>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        :yul berlin\n        {\n           // no need to complicate things with an ABI\n           let addr   := calldataload(0x00)\n           let bufLen := calldataload(0x20)\n           let static := calldataload(0x40)\n           mstore(0, bufLen)\n           pop(call(gas(), addr, 0, 0, 0x20, 0, 0x20))\n           sstore(0, returndatasize())\n           sstore(1, address())\n           stop()\n        }\n      nonce: 1\n      storage: {}\n\n\n\n    # This contract is CALLed to receive a buffer\n    # which it then does not return, without SSTORE because it is \n    # for static calls\n    <contract:0x000000000000000000000000000057a700ca11ed>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        :yul berlin\n        {\n           // no need to complicate things with an ABI\n           let addr   := calldataload(0x00)\n           let bufLen := calldataload(0x20)\n           let static := calldataload(0x40)\n           mstore(0, bufLen)\n           pop(call(gas(), addr, 0, 0, 0x20, 0, 0x20))\n           sstore(0, returndatasize())\n           sstore(1, address())\n           stop()\n        }\n      nonce: 1\n      storage: {}\n\n\n    # This contract is CALLed to receive a buffer\n    # which it then does not return. It fails\n    <contract:0x00000000000000000000000000000000bad0ca11>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        :yul berlin\n        {\n           // no need to complicate things with an ABI\n           let addr   := calldataload(0x00)\n           let bufLen := calldataload(0x20)\n           mstore(0, bufLen)\n           pop(call(gas(), addr, 0, 0, 0x20, 0, 0x20))\n\n           // Crash with an illegal opcode\n           verbatim_0i_0o(\"0xFE\")\n        }\n      nonce: 1\n      storage: {}\n\n\n    <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        :yul berlin\n        {\n           // The operation that we ran and that after which we're supposed\n           // to have an empty buffer\n           //\n           // 0xF0 means CREATE\n           // 0xF1 means CALL\n           // 0xF2 means CALLCODE\n           // 0xF4 means DELEGATECALL\n           // 0xF5 means CREATE2\n           // 0xFA means STATICCALL\n           // 0x11<operation> means that operation, but it fails\n           let operation := calldataload(0x04)\n\n           // 0xF3F3 means the buffer is RETURNed\n           // 0xFDFD means the buffer is REVERTed\n           let bufferFrom := calldataload(0x24)\n\n           // The length of the buffer that the RETURN or REVERT returns\n           let bufLen := calldataload(0x44)\n\n           let codeLen\n\n           // Put the constructor code at 0x00-length, and return that length\n           function makeConstructor(addr, len) -> retVal {\n             // The constructor code CALLs the appropriate contract with the specified\n             // buffer length\n             // \n             // Write the buffer length to memory (so we can send it)\n             //    0x0 PUSH32 <bufLen>\n             mstore8(0x0, 0x7F)\n             mstore(0x1, len)\n\n             //   0x21 PUSH1 0\n             mstore8(0x21, 0x60)\n             mstore8(0x22, 0x00)\n\n             //   0x23 MSTORE\n             mstore8(0x23, 0x52)\n \n             // With the buffer length handled, the next step is to PUSH \n             // the call parameters\n             //   0x24 PUSH1 0xFF     (return buffer length)\n             mstore8(0x24, 0x60)\n             mstore8(0x25, 0xFF)\n\n             //   0x26 PUSH1 0x20     (return buffer location)\n             mstore8(0x26, 0x60)\n             mstore8(0x27, 0x20)\n\n             //   0x28 PUSH1 0x20     (argument length)\n             mstore8(0x28, 0x60)\n             mstore8(0x29, 0x20)\n\n             //   0x2A PUSH1 0x00     (argument location)\n             mstore8(0x2A, 0x60)\n             mstore8(0x2B, 0x00)\n\n             //   0x2C PUSH1 0x00     (value)\n             mstore8(0x2C, 0x60)\n             mstore8(0x2D, 0x00)\n\n             //   0x2E PUSH32 bufferFrom  (address to call)\n             mstore8(0x2E, 0x7F)\n             mstore(0x2F, addr)\n\n             //   0x4F GAS   (the gas to send for the call)\n             mstore8(0x4F, 0x5A)\n\n             //   0x50 CALL\n             mstore8(0x50, 0xF1)\n\n             // Write the return data (first word and size) to storage as \n             // a sanity check (to make sure there really was a buffer to erase)\n             //   0x51 PUSH 0x20   (the return data location)\n             mstore8(0x51, 0x60)\n             mstore8(0x52, 0x20)\n             \n             //   0x53 MLOAD\n             mstore8(0x53, 0x51)\n\n             //   0x54 PUSH1 0\n             mstore8(0x54, 0x60)\n             mstore8(0x55, 0x00)\n             \n             //   0x56 SSTORE\n             mstore8(0x56, 0x55)\n\n             //   0x57 RETURNDATASIZE\n             mstore8(0x57, 0x3D)\n         \n             //   0x58 PUSH1 1\n             mstore8(0x58, 0x60)\n             mstore8(0x59, 0x01)\n\n             //   0x5A SSTORE\n             mstore8(0x5A, 0x55)\n\n             //   0x5B STOP\n             mstore8(0x5B, 0x00)\n\n             // Return the length\n             retVal := 0x5C\n              \n           }   // function makeConstructor\n\n\n           // Put the constructor code at 0x00-length, and return that length - but this\n           // constructor fails with an illegal opcode\n           function makeFailConstructor(addr, len) -> retVal {\n              let endOfGood := makeConstructor(addr, len)\n              \n              // Replace the STOP with 0xFE, which is the designated bad opcode\n              mstore8(sub(endOfGood, 1), 0xFE)\n              retVal := endOfGood\n           }\n\n\n           switch operation\n           case 0xF0 {  // CREATE\n              codeLen := makeConstructor(bufferFrom, bufLen)\n              pop(create(0, 0, codeLen))\n           }\n           case 0x11F0 {  // CREATE, which fails\n              codeLen := makeFailConstructor(bufferFrom, bufLen)\n              pop(create(0, 0, codeLen))\n           }\n           case 0xF5 {  // CREATE2\n              codeLen := makeConstructor(bufferFrom, bufLen)\n              pop(create2(0, 0, codeLen, 0x5a17))\n           }\n           case 0x11F5 {  // CREATE2, which fails\n              codeLen := makeFailConstructor(bufferFrom, bufLen)\n              pop(create2(0, 0, codeLen, 0x5a17))\n           }\n           case 0xF1 { // CALL\n              mstore(0x00, bufferFrom)\n              mstore(0x20, bufLen)\n              pop(call(gas(), 0x00ca11ed, 0, 0, 0x40, 0x100, 0x20))\n           }\n           case 0x11F1 { // CALL, but it fails\n              mstore(0x00, bufferFrom)\n              mstore(0x20, bufLen)\n              pop(call(gas(), 0xbad0ca11, 0, 0, 0x40, 0x100, 0x20))\n           }\n           case 0xF2 { // CALLCODE\n              mstore(0x00, bufferFrom)\n              mstore(0x20, bufLen)\n              pop(callcode(gas(), 0x00ca11ed, 0, 0, 0x40, 0x100, 0x20))\n           }\n           case 0x11F2 { // CALLCODE, but it fails\n              mstore(0x00, bufferFrom)\n              mstore(0x20, bufLen)\n              pop(callcode(gas(), 0xbad0ca11, 0, 0, 0x40, 0x100, 0x20))\n           }\n           case 0xF4 { // DELEGATECALL\n              mstore(0x00, bufferFrom)\n              mstore(0x20, bufLen)\n              pop(delegatecall(gas(), 0x00ca11ed, 0, 0x40, 0x100, 0x20))\n           }\n           case 0x11F4 { // DELEGATECALL, but it fails\n              mstore(0x00, bufferFrom)\n              mstore(0x20, bufLen)\n              pop(delegatecall(gas(), 0xbad0ca11, 0, 0x40, 0x100, 0x20))\n           }\n           case 0xFA { // STATICCALL\n              mstore(0x00, bufferFrom)\n              mstore(0x20, bufLen)\n              pop(staticcall(gas(), 0x57A700ca11ed, 0, 0x40, 0x100, 0x20))\n           }\n           case 0x11FA { // STATICCALL, but it fails\n              mstore(0x00, bufferFrom)\n              mstore(0x20, bufLen)\n              pop(staticcall(gas(), 0xbad0ca11, 0, 0x40, 0x100, 0x20))\n           }\n           default {  // We shouldn't get here\n             revert(0,0)\n           }\n           // End of switch operation\n\n           sstore(0, returndatasize())    // Should be zero\n           // We can't do returndatacopy() here because it causes the transaction \n           // to revert\n           sstore(1, mload(0))\n        }\n      nonce: 1\n      storage:     # To verify it is overwritten\n        0: 0x60A7\n\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: 1\n      storage: {}\n      \n\n\n\n  transaction:\n    data:\n    # CREATE inside which a RETURN returns a 0x20 byte buffer\n    - :abi f(uint,uint,uint) 0x11F0 0xF3F3 0x20\n\n    # Same as above but with REVERT\n    - :abi f(uint,uint,uint) 0xF0 0xFDFD 0x20\n\n    # Try different buffer sizes\n    - :abi f(uint,uint,uint) 0xF0 0xF3F3 0x01\n    - :abi f(uint,uint,uint) 0xF0 0xF3F3 0x10\n    - :abi f(uint,uint,uint) 0xF0 0xF3F3 0xFF\n    - :abi f(uint,uint,uint) 0xF0 0xF3F3 0x0100\n    - :abi f(uint,uint,uint) 0xF0 0xF3F3 0x0FFF\n    - :abi f(uint,uint,uint) 0xF0 0xF3F3 0x1000\n\n    # Different buffer sizes and REVERTs\n    - :abi f(uint,uint,uint) 0xF0 0xF3FD 0x01\n    - :abi f(uint,uint,uint) 0xF0 0xFDFD 0x10\n    - :abi f(uint,uint,uint) 0xF0 0xFDFD 0xFF\n    - :abi f(uint,uint,uint) 0xF0 0xFDFD 0x0100\n    - :abi f(uint,uint,uint) 0xF0 0xFDFD 0x0FFF\n    - :abi f(uint,uint,uint) 0xF0 0xFDFD 0x1000\n\n\n    # Same as the tests above, but with CREATE2\n    - :abi f(uint,uint,uint) 0xF5 0xF3F3 0x20\n    - :abi f(uint,uint,uint) 0xF5 0xFDFD 0x20\n    - :abi f(uint,uint,uint) 0xF5 0xF3F3 0x01\n    - :abi f(uint,uint,uint) 0xF5 0xF3F3 0x10\n    - :abi f(uint,uint,uint) 0xF5 0xF3F3 0xFF\n    - :abi f(uint,uint,uint) 0xF5 0xF3F3 0x0100\n    - :abi f(uint,uint,uint) 0xF5 0xF3F3 0x0FFF\n    - :abi f(uint,uint,uint) 0xF5 0xF3F3 0x1000\n    - :abi f(uint,uint,uint) 0xF5 0xF3FD 0x01\n    - :abi f(uint,uint,uint) 0xF5 0xFDFD 0x10\n    - :abi f(uint,uint,uint) 0xF5 0xFDFD 0xFF\n    - :abi f(uint,uint,uint) 0xF5 0xFDFD 0x0100\n    - :abi f(uint,uint,uint) 0xF5 0xFDFD 0x0FFF\n    - :abi f(uint,uint,uint) 0xF5 0xFDFD 0x1000\n\n\n    # CALL\n    - :abi f(uint,uint,uint) 0xF1 0xF3F3 0x20\n    - :abi f(uint,uint,uint) 0xF1 0xFDFD 0x20\n    - :abi f(uint,uint,uint) 0xF1 0xF3F3 0x01\n    - :abi f(uint,uint,uint) 0xF1 0xF3F3 0x10\n    - :abi f(uint,uint,uint) 0xF1 0xF3F3 0xFF\n    - :abi f(uint,uint,uint) 0xF1 0xF3F3 0x0100\n    - :abi f(uint,uint,uint) 0xF1 0xF3F3 0x0FFF\n    - :abi f(uint,uint,uint) 0xF1 0xF3F3 0x1000\n    - :abi f(uint,uint,uint) 0xF1 0xF3FD 0x01\n    - :abi f(uint,uint,uint) 0xF1 0xFDFD 0x10\n    - :abi f(uint,uint,uint) 0xF1 0xFDFD 0xFF\n    - :abi f(uint,uint,uint) 0xF1 0xFDFD 0x0100\n    - :abi f(uint,uint,uint) 0xF1 0xFDFD 0x0FFF\n    - :abi f(uint,uint,uint) 0xF1 0xFDFD 0x1000\n\n    # CALLCODE\n    - :abi f(uint,uint,uint) 0xF2 0xF3F3 0x20\n    - :abi f(uint,uint,uint) 0xF2 0xFDFD 0x20\n    - :abi f(uint,uint,uint) 0xF2 0xF3F3 0x01\n    - :abi f(uint,uint,uint) 0xF2 0xF3F3 0x10\n    - :abi f(uint,uint,uint) 0xF2 0xF3F3 0xFF\n    - :abi f(uint,uint,uint) 0xF2 0xF3F3 0x0100\n    - :abi f(uint,uint,uint) 0xF2 0xF3F3 0x0FFF\n    - :abi f(uint,uint,uint) 0xF2 0xF3F3 0x1000\n    - :abi f(uint,uint,uint) 0xF2 0xF3FD 0x01\n    - :abi f(uint,uint,uint) 0xF2 0xFDFD 0x10\n    - :abi f(uint,uint,uint) 0xF2 0xFDFD 0xFF\n    - :abi f(uint,uint,uint) 0xF2 0xFDFD 0x0100\n    - :abi f(uint,uint,uint) 0xF2 0xFDFD 0x0FFF\n    - :abi f(uint,uint,uint) 0xF2 0xFDFD 0x1000\n\n    # DELEGATECALL\n    - :abi f(uint,uint,uint) 0xF4 0xF3F3 0x20\n    - :abi f(uint,uint,uint) 0xF4 0xFDFD 0x20\n    - :abi f(uint,uint,uint) 0xF4 0xF3F3 0x01\n    - :abi f(uint,uint,uint) 0xF4 0xF3F3 0x10\n    - :abi f(uint,uint,uint) 0xF4 0xF3F3 0xFF\n    - :abi f(uint,uint,uint) 0xF4 0xF3F3 0x0100\n    - :abi f(uint,uint,uint) 0xF4 0xF3F3 0x0FFF\n    - :abi f(uint,uint,uint) 0xF4 0xF3F3 0x1000\n    - :abi f(uint,uint,uint) 0xF4 0xF3FD 0x01\n    - :abi f(uint,uint,uint) 0xF4 0xFDFD 0x10\n    - :abi f(uint,uint,uint) 0xF4 0xFDFD 0xFF\n    - :abi f(uint,uint,uint) 0xF4 0xFDFD 0x0100\n    - :abi f(uint,uint,uint) 0xF4 0xFDFD 0x0FFF\n    - :abi f(uint,uint,uint) 0xF4 0xFDFD 0x1000\n\n    # STATICCALL\n    - :abi f(uint,uint,uint) 0xFA 0xF3F3 0x20\n    - :abi f(uint,uint,uint) 0xFA 0xFDFD 0x20\n    - :abi f(uint,uint,uint) 0xFA 0xF3F3 0x01\n    - :abi f(uint,uint,uint) 0xFA 0xF3F3 0x10\n    - :abi f(uint,uint,uint) 0xFA 0xF3F3 0xFF\n    - :abi f(uint,uint,uint) 0xFA 0xF3F3 0x0100\n    - :abi f(uint,uint,uint) 0xFA 0xF3F3 0x0FFF\n    - :abi f(uint,uint,uint) 0xFA 0xF3F3 0x1000\n    - :abi f(uint,uint,uint) 0xFA 0xF3FD 0x01\n    - :abi f(uint,uint,uint) 0xFA 0xFDFD 0x10\n    - :abi f(uint,uint,uint) 0xFA 0xFDFD 0xFF\n    - :abi f(uint,uint,uint) 0xFA 0xFDFD 0x0100\n    - :abi f(uint,uint,uint) 0xFA 0xFDFD 0x0FFF\n    - :abi f(uint,uint,uint) 0xFA 0xFDFD 0x1000\n\n\n\n    # CALL, which fails\n    - :abi f(uint,uint,uint) 0x11F1 0xF3F3 0x20\n    - :abi f(uint,uint,uint) 0x11F1 0xFDFD 0x20\n    - :abi f(uint,uint,uint) 0x11F1 0xF3F3 0x01\n    - :abi f(uint,uint,uint) 0x11F1 0xF3F3 0x10\n    - :abi f(uint,uint,uint) 0x11F1 0xF3F3 0xFF\n    - :abi f(uint,uint,uint) 0x11F1 0xF3F3 0x0100\n    - :abi f(uint,uint,uint) 0x11F1 0xF3F3 0x0FFF\n    - :abi f(uint,uint,uint) 0x11F1 0xF3F3 0x1000\n    - :abi f(uint,uint,uint) 0x11F1 0xF3FD 0x01\n    - :abi f(uint,uint,uint) 0x11F1 0xFDFD 0x10\n    - :abi f(uint,uint,uint) 0x11F1 0xFDFD 0xFF\n    - :abi f(uint,uint,uint) 0x11F1 0xFDFD 0x0100\n    - :abi f(uint,uint,uint) 0x11F1 0xFDFD 0x0FFF\n    - :abi f(uint,uint,uint) 0x11F1 0xFDFD 0x1000\n\n    # CALLCODE, which fails\n    - :abi f(uint,uint,uint) 0x11F2 0xF3F3 0x20\n    - :abi f(uint,uint,uint) 0x11F2 0xFDFD 0x20\n    - :abi f(uint,uint,uint) 0x11F2 0xF3F3 0x01\n    - :abi f(uint,uint,uint) 0x11F2 0xF3F3 0x10\n    - :abi f(uint,uint,uint) 0x11F2 0xF3F3 0xFF\n    - :abi f(uint,uint,uint) 0x11F2 0xF3F3 0x0100\n    - :abi f(uint,uint,uint) 0x11F2 0xF3F3 0x0FFF\n    - :abi f(uint,uint,uint) 0x11F2 0xF3F3 0x1000\n    - :abi f(uint,uint,uint) 0x11F2 0xF3FD 0x01\n    - :abi f(uint,uint,uint) 0x11F2 0xFDFD 0x10\n    - :abi f(uint,uint,uint) 0x11F2 0xFDFD 0xFF\n    - :abi f(uint,uint,uint) 0x11F2 0xFDFD 0x0100\n    - :abi f(uint,uint,uint) 0x11F2 0xFDFD 0x0FFF\n    - :abi f(uint,uint,uint) 0x11F2 0xFDFD 0x1000\n\n    # DELEGATECALL, which fails\n    - :abi f(uint,uint,uint) 0x11F4 0xF3F3 0x20\n    - :abi f(uint,uint,uint) 0x11F4 0xFDFD 0x20\n    - :abi f(uint,uint,uint) 0x11F4 0xF3F3 0x01\n    - :abi f(uint,uint,uint) 0x11F4 0xF3F3 0x10\n    - :abi f(uint,uint,uint) 0x11F4 0xF3F3 0xFF\n    - :abi f(uint,uint,uint) 0x11F4 0xF3F3 0x0100\n    - :abi f(uint,uint,uint) 0x11F4 0xF3F3 0x0FFF\n    - :abi f(uint,uint,uint) 0x11F4 0xF3F3 0x1000\n    - :abi f(uint,uint,uint) 0x11F4 0xF3FD 0x01\n    - :abi f(uint,uint,uint) 0x11F4 0xFDFD 0x10\n    - :abi f(uint,uint,uint) 0x11F4 0xFDFD 0xFF\n    - :abi f(uint,uint,uint) 0x11F4 0xFDFD 0x0100\n    - :abi f(uint,uint,uint) 0x11F4 0xFDFD 0x0FFF\n    - :abi f(uint,uint,uint) 0x11F4 0xFDFD 0x1000\n\n    # STATICCALL, which fails\n    - :abi f(uint,uint,uint) 0x11FA 0xF3F3 0x20\n    - :abi f(uint,uint,uint) 0x11FA 0xFDFD 0x20\n    - :abi f(uint,uint,uint) 0x11FA 0xF3F3 0x01\n    - :abi f(uint,uint,uint) 0x11FA 0xF3F3 0x10\n    - :abi f(uint,uint,uint) 0x11FA 0xF3F3 0xFF\n    - :abi f(uint,uint,uint) 0x11FA 0xF3F3 0x0100\n    - :abi f(uint,uint,uint) 0x11FA 0xF3F3 0x0FFF\n    - :abi f(uint,uint,uint) 0x11FA 0xF3F3 0x1000\n    - :abi f(uint,uint,uint) 0x11FA 0xF3FD 0x01\n    - :abi f(uint,uint,uint) 0x11FA 0xFDFD 0x10\n    - :abi f(uint,uint,uint) 0x11FA 0xFDFD 0xFF\n    - :abi f(uint,uint,uint) 0x11FA 0xFDFD 0x0100\n    - :abi f(uint,uint,uint) 0x11FA 0xFDFD 0x0FFF\n    - :abi f(uint,uint,uint) 0x11FA 0xFDFD 0x1000\n\n\n    # CREATE, which fails\n    - :abi f(uint,uint,uint) 0x11F0 0xF3F3 0x20\n    - :abi f(uint,uint,uint) 0x11F0 0xFDFD 0x20\n    - :abi f(uint,uint,uint) 0x11F0 0xF3F3 0x01\n    - :abi f(uint,uint,uint) 0x11F0 0xF3F3 0x10\n    - :abi f(uint,uint,uint) 0x11F0 0xF3F3 0xFF\n    - :abi f(uint,uint,uint) 0x11F0 0xF3F3 0x0100\n    - :abi f(uint,uint,uint) 0x11F0 0xF3F3 0x0FFF\n    - :abi f(uint,uint,uint) 0x11F0 0xF3F3 0x1000\n    - :abi f(uint,uint,uint) 0x11F0 0xF3FD 0x01\n    - :abi f(uint,uint,uint) 0x11F0 0xFDFD 0x10\n    - :abi f(uint,uint,uint) 0x11F0 0xFDFD 0xFF\n    - :abi f(uint,uint,uint) 0x11F0 0xFDFD 0x0100\n    - :abi f(uint,uint,uint) 0x11F0 0xFDFD 0x0FFF\n    - :abi f(uint,uint,uint) 0x11F0 0xFDFD 0x1000\n\n\n    # CREATE2, which fails\n    - :abi f(uint,uint,uint) 0x11F5 0xF3F3 0x20\n    - :abi f(uint,uint,uint) 0x11F5 0xFDFD 0x20\n    - :abi f(uint,uint,uint) 0x11F5 0xF3F3 0x01\n    - :abi f(uint,uint,uint) 0x11F5 0xF3F3 0x10\n    - :abi f(uint,uint,uint) 0x11F5 0xF3F3 0xFF\n    - :abi f(uint,uint,uint) 0x11F5 0xF3F3 0x0100\n    - :abi f(uint,uint,uint) 0x11F5 0xF3F3 0x0FFF\n    - :abi f(uint,uint,uint) 0x11F5 0xF3F3 0x1000\n    - :abi f(uint,uint,uint) 0x11F5 0xF3FD 0x01\n    - :abi f(uint,uint,uint) 0x11F5 0xFDFD 0x10\n    - :abi f(uint,uint,uint) 0x11F5 0xFDFD 0xFF\n    - :abi f(uint,uint,uint) 0x11F5 0xFDFD 0x0100\n    - :abi f(uint,uint,uint) 0x11F5 0xFDFD 0x0FFF\n    - :abi f(uint,uint,uint) 0x11F5 0xFDFD 0x1000\n\n\n\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: 1\n    to: <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>\n    value:\n    - '1'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    \n    \n  expect:\n    # Regardless of how we got the buffer, it shouldn't be returned to the\n    # top level\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result: \n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>: \n          storage:\n            0: 0   # RETURNDATASIZE\n            1: 'ANY'\n             \n\n"
  },
  {
    "path": "tests/static/state_tests/stReturnDataTest/create_callprecompile_returndatasizeFiller.json",
    "content": "{\n    \"create_callprecompile_returndatasize\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x1a00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n\t\"expect\": [\n\t    {\n\t        \"indexes\" : {\n\t\t    \"data\" : -1,\n\t\t    \"gas\" : -1,\n\t\t    \"value\" : -1\n\t         },\n\t\t\"network\" : [\">=Cancun\"],\n\t\t\"result\" : {\n\t \t    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \t\"storage\" : {\n\t\t\t    \"0x00\": \"0x00\"\n\t        \t}\n\t\t    }\n\t\t}\n\t    }\n\t],\n        \"pre\" : {\n            \"<contract:0x0aabbccdd5c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n        \"balance\" : \"0x00\",\n                \"code\" : \"{ (seq (MSTORE 0 0x0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff) (RETURN 0 32)) }\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \"{ (seq (CREATE 0 0 (lll (seq (mstore 0 0x112233) (CALL 0x9000 4 0 0 32 0 32) (SSTORE 0 (RETURNDATASIZE)) (RETURN 0 32) (STOP) ) 0)) (SSTORE 0 (RETURNDATASIZE)) (STOP) )}\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stReturnDataTest/modexp_modsize0_returndatasizeFiller.json",
    "content": "{\n    \"modexp_modsize0_returndatasize\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x00\",\n\t\t\t    \"0x03\" : \"0x00\"\n                        }\n                    }\n                }\n        },\n\t    {\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x00\",\n\t\t\t    \"0x03\" : \"0x01\"\n                        }\n                    }\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : 2,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x00\",\n\t\t\t    \"0x03\" : \"0x64\"\n                        }\n                    }\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : 3,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x00\",\n\t\t\t    \"0x03\" : \"0x0100\"\n                        }\n                    }\n                }\n        },\n\t    {\n                \"indexes\" : {\n                    \"data\" : 4,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n\t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ (CALLDATACOPY 0 0 (CALLDATASIZE)) [[1]] (CALLCODE (GAS) 5 0 0 (CALLDATASIZE) 1000 32) [[2]](MLOAD 1000) [[3]](RETURNDATASIZE) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n\t\t  \"0x03\" : \"0xffffffff\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n\t    \"// data\" : [\n\t\t\t\"modlength zero\",\n\t\t\t\"modlength one\",\n\t\t\t\"modlength 100\",\n\t\t\t\"modlength 256\",\n            \"modlength 999188\"\n\t    ],\n            \"data\" : [\n\t\t\t\t\":raw 0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000101\",\n\t\t\t\t\":raw 0x000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001010101\",\n\t\t\t\t\":raw 0x0000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000000645442ddc2b70f66c1f6d2b296c0a875be7eddd0a80958cbc7425f1899ccf90511a5c318226e48ee23f130b44dc17a691ce66be5da18b85ed7943535b205aa125e9f59294a00f05155c23e97dac6b3a00b0c63c8411bf815fc183b420b4d9dc5f715040d5c60957f52d334b843197adec58c131c907cd96059fc5adce9dda351b5df3d666fcf3eb63c46851c1816e323f2119ebdf5ef35\",\n\t\t\t\t\":raw 0x000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100f536269e59acdb356459b59f1ea6acc924650f8f05dae101a3b463d33342dcc6265d1ba9465fd0f1106b3f03a4af0a0b553e8b6ba8682584ba19c3835430ff310904a717282064031bcf9185dd172dad65305ee0e61d0c638b0a0ef0f4e51653996020c2723faea116881e25fb3d554dbc51b180052c981fc79ca93567eb6ff0e619deeb2984ae3ca232523aa5bd21ea4f8caa12cb8cd90dbafb9bd6951dcaef0fc4a74d195f5341bc6c3d7217df82597b84c4e1bbef4f2ce8c32aedbd99430f4e1a59b886c4ceb9bf7a00a415c207f3a4ccf95d5483642f95a9b240806c508c29bb48de38c8e1229257d5d807229fb3708ad6ac619b133fd7c1fe3c375f90ce55689018465a8a3d7c08097d415c702e7f57fcd6de6ea55cca75c49b835c6c90172753948fbd5dee5a74a422e3169d0cf5665ffc9198dc7f3fa502da817f1c81af0843ef5bec2ca2e8f3e24a76ac7322dab5a5bda802b247f1cf5282936cd1cb115f40e71db8d62b58c7d6c0ae7c78888987c22ff6afae345ade859a9beb127d\",\n\t\t\t\t\":raw 0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000f3f14010101\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stReturnDataTest/returndatacopy_0_0_following_successful_createFiller.json",
    "content": "{\n    \"returndatacopy_0_0_following_successful_create\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x1a00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n        \"expect\" : [\n            {   \"indexes\" : {\n                   \"data\" : -1,\n                   \"gas\" : -1,\n                   \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    },\n                    \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6\" : {\n                \"balance\" : \"0x00\",\n                \"// code\" : \"create should succeed. RETURNDATACOPY should also succeed in Byzantium.\",\n                \"code\" : \"{ (CREATE 0 0 (lll (seq (SSTORE 0 1) (STOP)) 0)) (RETURNDATACOPY 0 0 0) (SSTORE 0 0) (STOP) }\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\"\n                }\n            },\n            \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stReturnDataTest/returndatacopy_afterFailing_createFiller.json",
    "content": "{\n    \"returndatacopy_afterFailing_create\" : {\n\t    \"_info\" : {\n\t        \"comment\" : \"Returndatacopy after failing create case due to 0xfd code.\"\n\t    }, \n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x1a00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n        \"expect\" : [\n            {   \"indexes\" : {\n                   \"data\" : -1,\n                   \"gas\" : -1,\n                   \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x20\",\n\t\t\t    \"0x01\" : \"0x02\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \"{ (MSTORE 0 0x600260005260206000fd) (create 0 22 10) (SSTORE 0 (RETURNDATASIZE)) (RETURNDATACOPY 0 0 32) (SSTORE 1 (MLOAD 0)) }\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stReturnDataTest/returndatacopy_after_failing_callcodeFiller.json",
    "content": "{\n    \"returndatacopy_after_failing_callcode\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x1a00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n        \"pre\" : {\n            \"<eoa:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\": \"0x10000000\",\n                \"code\": \"\",\n                \"nonce\": \"0x00\",\n                \"storage\": {}\n            },\n            \"<contract:target:0x1000000000000000000000000000000000000001>\": {\n                \"balance\" : \"0x00\",\n                \"code\": \"{  (CALLCODE 0 <contract:0x1000000000000000000000000000000000000002> 0 0 0 0 0) (RETURNDATACOPY 0x0 0x0 32) (SSTORE 0 (MLOAD 0))}\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0xffffffffffff\"\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \":raw 0xfd\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"expect\": [\n            {   \n                \"indexes\" : { \n                   \"data\" : -1, \n                   \"gas\" : -1, \n                   \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : { \n                    \"<contract:target:0x1000000000000000000000000000000000000001>\" : { \n                        \"storage\" : { \n                          \"0x00\" : \"0xffffffffffff\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000001>\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stReturnDataTest/returndatacopy_after_failing_delegatecallFiller.json",
    "content": "{\n    \"returndatacopy_after_failing_delegatecall\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x1a00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n        \"pre\" : {\n            \"<eoa:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\": \"0x100000\",\n                \"code\": \"\",\n                \"nonce\": \"0x00\",\n                \"storage\": {}\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\": {\n                \"balance\" : \"0x00\",\n                \"code\": \"{ (DELEGATECALL 10000 <contract:0x1000000000000000000000000000000000000002> 0 0 0 0) (RETURNDATACOPY 0x0 0x0 32) ( SSTORE 0 (MLOAD 0))}\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \":raw 0xfd\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"expect\": [\n            {   \n                \"indexes\" : { \n                   \"data\" : -1, \n                   \"gas\" : -1, \n                   \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : { \n                    \"<contract:0x1000000000000000000000000000000000000001>\" : { \n                        \"storage\" : { \n                            \"0x00\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<eoa:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stReturnDataTest/returndatacopy_after_failing_staticcallFiller.json",
    "content": "{\n    \"returndatacopy_after_failing_staticcall\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x1a00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n        \"pre\" : {\n            \"<eoa:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\": \"0x100000\",\n                \"code\": \"\",\n                \"nonce\": \"0x0\",\n                \"storage\": {}\n            },\n            \"<contract:target:0x1000000000000000000000000000000000000001>\": {\n                \"balance\" : \"0x00\",\n                \"code\": \"{ (STATICCALL 0 <contract:0x1000000000000000000000000000000000000002> 0 0 0 0) (RETURNDATACOPY 0x0 0x0 32) ( SSTORE 0 (MLOAD 0))}\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"{ (MSTORE 0x0 (CALLER)) (RETURN 0 32) }\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"expect\": [\n            {   \n                \"indexes\" : { \n                   \"data\" : -1, \n                   \"gas\" : -1, \n                   \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : { \n                    \"<contract:target:0x1000000000000000000000000000000000000001>\" : { \n                        \"storage\" : { \n                          \"0x00\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000001>\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stReturnDataTest/returndatacopy_after_revert_in_staticcallFiller.json",
    "content": "{\n    \"returndatacopy_after_revert_in_staticcall\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x1a00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n        \"pre\" : {\n            \"<eoa:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\": {\n                \"balance\" : \"0x1000000\",\n                \"code\": \"\",\n                \"nonce\": \"0x0\",\n                \"storage\": {}\n            },\n            \"<contract:target:0x1000000000000000000000000000000000000001>\": {\n                \"balance\" : \"0x00\",\n                \"code\": \"{ (STATICCALL 60000 <contract:0x1000000000000000000000000000000000000002> 0 0 0 0) (RETURNDATACOPY 0x0 0x0 32) ( SSTORE 0 (MLOAD 0))}\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"{ (MSTORE 0x0 (CALLER)) (REVERT 0 32) }\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"expect\": [\n            {   \n                \"indexes\" : { \n                   \"data\" : -1, \n                   \"gas\" : -1, \n                   \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : { \n                    \"<contract:target:0x1000000000000000000000000000000000000001>\" : { \n                        \"storage\" : { \n                            \"0x00\" : \"<contract:target:0x1000000000000000000000000000000000000001>\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000001>\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stReturnDataTest/returndatacopy_after_successful_callcodeFiller.json",
    "content": "{\n    \"returndatacopy_after_successful_callcode\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x1a00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"0x00\",\n                \"code\": \"{  (CALLCODE 60000 <contract:0x1000000000000000000000000000000000000002> 0 0 0 0 0) (RETURNDATACOPY 0x0 0x0 32) (SSTORE 0 (MLOAD 0))}\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0xffffffffffff\"\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"{ (MSTORE 0x0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (RETURN 0 32) }\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"expect\": [\n            {   \n                \"indexes\" : { \n                   \"data\" : -1, \n                   \"gas\" : -1, \n                   \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : { \n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : { \n                        \"storage\" : { \n                            \"0x00\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stReturnDataTest/returndatacopy_after_successful_delegatecallFiller.json",
    "content": "{\n    \"returndatacopy_after_successful_delegatecall\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x1a00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"0x00\",\n                \"code\": \"{ (DELEGATECALL 60000 <contract:0x1000000000000000000000000000000000000002> 0 0 0 0) (RETURNDATACOPY 0x0 0x0 32) ( SSTORE 0 (MLOAD 0))}\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"{ (MSTORE 0x0 (CALLER)) (RETURN 0 32) }\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"expect\": [\n            {   \n                \"indexes\" : { \n                   \"data\" : -1, \n                   \"gas\" : -1, \n                   \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : { \n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : { \n                        \"storage\" : { \n                            \"0x00\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stReturnDataTest/returndatacopy_after_successful_staticcallFiller.json",
    "content": "{\n    \"returndatacopy_after_successful_staticcall\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x1a00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n        \"pre\" : {\n            \"<eoa:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\": {\n                \"balance\" : \"0x1000000\",\n                \"code\": \"\",\n                \"nonce\": \"0x0\",\n                \"storage\": {}\n            },\n            \"<contract:target:0x1000000000000000000000000000000000000001>\": {\n                \"balance\" : \"0x00\",\n                \"code\": \"{ (STATICCALL 60000 <contract:0x1000000000000000000000000000000000000002> 0 0 0 0) (RETURNDATACOPY 0x0 0x0 32) ( SSTORE 0 (MLOAD 0))}\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"{ (MSTORE 0x0 (CALLER)) (RETURN 0 32) }\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"expect\": [\n            {   \n                \"indexes\" : { \n                   \"data\" : -1, \n                   \"gas\" : -1, \n                   \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : { \n                    \"<contract:target:0x1000000000000000000000000000000000000001>\" : { \n                        \"storage\" : { \n                            \"0x00\" : \"<contract:target:0x1000000000000000000000000000000000000001>\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000001>\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stReturnDataTest/returndatacopy_following_callFiller.json",
    "content": "{\n    \"returndatacopy_following_call\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x1a00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n        \"expect\" : [\n            {   \"indexes\" : {\n                   \"data\" : -1,\n                   \"gas\" : -1,\n                   \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x111122223333444455556666777788889999aaaabbbbccccddddeeeeffff\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:0x0aabbccdd5c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n\t\t\t\t\"balance\" : \"0x00\",\n                \"code\" : \"{ (seq (MSTORE 0 0x0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff) (RETURN 0 32)) }\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n\t\t\t\t\"balance\" : \"0x00\",\n                \"code\" : \"{ (seq (CALL 0x0900000000 <contract:0x0aabbccdd5c57f15886f9b263e2f6d2d6c7b5ec6> 0 0 0 0 0) (RETURNDATACOPY 0 0 32) (SSTORE 0 (MLOAD 0)) )}\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stReturnDataTest/returndatacopy_following_createFiller.json",
    "content": "{\n    \"returndatacopy_following_create\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x1a00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n        \"expect\" : [\n            {   \"indexes\" : {\n                   \"data\" : -1,\n                   \"gas\" : -1,\n                   \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:0x0aabbccdd5c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \"{ (seq (MSTORE 0 0x0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff) (RETURN 0 32)) }\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \"{ (seq (create (STOP)) (RETURNDATACOPY 0 0 32) (SSTORE 0 (MLOAD 0)) )}\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stReturnDataTest/returndatacopy_following_failing_callFiller.json",
    "content": "{\n    \"returndatacopy_following_failing_call\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x1a00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n        \"expect\" : [\n            {   \"indexes\" : {\n                   \"data\" : -1,\n                   \"gas\" : -1,\n                   \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:0x0aabbccdd5c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n\t\t\t\t\"balance\" : \"0x00\",\n                \"// code\" : \"Something that fails.\",\n                \"code\" : \":raw 0xfd\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n\t\t\t\t\"balance\" : \"0x00\",\n                \"// code\" : \"CALL should fail because of an invalid instruction, and RETURNDATACOPY should also fail because of out-of-bound access.  SSTORE should not be reached\",\n                \"code\" : \"{ (CALL 0x0900000000 <contract:0x0aabbccdd5c57f15886f9b263e2f6d2d6c7b5ec6> 0 0 0 0 0) (RETURNDATACOPY 0 1 32) (SSTORE 0 (MLOAD 0)) }\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stReturnDataTest/returndatacopy_following_revertFiller.json",
    "content": "{\n    \"returndatacopy_following_revert\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x1a00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n        \"expect\" : [\n            {   \"indexes\" : {\n                   \"data\" : -1,\n                   \"gas\" : -1,\n                   \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x111122223333444455556666777788889999aaaabbbbccccddddeeeeffff\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:0x0aabbccdd5c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n\t\t\t\t\"balance\" : \"0x00\",\n                \"code\" : \"{ (seq (MSTORE 0 0x0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff) (REVERT 0 32)) }\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n\t\t\t\t\"balance\" : \"0x00\",\n                \"code\" : \"{ (seq (CALL 0x0900000000 <contract:0x0aabbccdd5c57f15886f9b263e2f6d2d6c7b5ec6> 0 0 0 0 0) (RETURNDATACOPY 0 0 32) (SSTORE 0 (MLOAD 0)) )}\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stReturnDataTest/returndatacopy_following_revert_in_createFiller.json",
    "content": "{\n    \"returndatacopy_following_revert_in_create\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x1a00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n        \"expect\" : [\n            {   \"indexes\" : {\n                   \"data\" : -1,\n                   \"gas\" : -1,\n                   \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x111122223333444455556666777788889999aaaabbbbccccddddeeeeffff\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n\t\t\t\t\"balance\" : \"0x00\",\n                \"code\" : \"{ (seq (CREATE 0 0 (lll (seq (MSTORE 0 0x0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff) (REVERT 0 32) (STOP) ) 0)) (RETURNDATACOPY 0 0 32) (SSTORE 0 (MLOAD 0)) (STOP) )}\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stReturnDataTest/returndatacopy_following_successful_createFiller.json",
    "content": "{\n    \"returndatacopy_following_successful_create\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x1a00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n        \"expect\" : [\n            {   \"indexes\" : {\n                   \"data\" : -1,\n                   \"gas\" : -1,\n                   \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x02\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \"{ (create (STOP)) (RETURNDATACOPY 0 1 32) (SSTORE 0 (MLOAD 0)) }\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x02\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stReturnDataTest/returndatacopy_following_too_big_transferFiller.json",
    "content": "{\n    \"returndatacopy_following_too_big_transfer\" : {\n        \"_info\" : {\n            \"comment\" : \"This test tries RETURNDATACOPY with a non-zero size after a CALL that fails because of insufficient balance.\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x1a00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n        \"expect\" : [\n            {   \"indexes\" : {\n                   \"data\" : -1,\n                   \"gas\" : -1,\n                   \"value\" : -1\n                },\n                \"network\" : [    \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:0x0aabbccdd5c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n\t\t\t\t\"balance\" : \"0x00\",\n                \"code\" : \"{ (seq (MSTORE 0 0x0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff) (RETURN 0 32)) }\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n\t\t\t\t\"balance\" : \"0x00\",\n                \"code\" : \"{ (seq (CALL 0x0900000000 <contract:0x0aabbccdd5c57f15886f9b263e2f6d2d6c7b5ec6> 10000000 0 0 0 0) (RETURNDATACOPY 0 0 32) (SSTORE 0 200) )}\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stReturnDataTest/returndatacopy_initialFiller.json",
    "content": "{\n    \"returndatacopy_initial\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x1a00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n        \"expect\" : [\n            {   \"indexes\" : {\n                   \"data\" : -1,\n                   \"gas\" : -1,\n                   \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"{ (MSTORE 0 0x112233445566778899aabbccddeeff) (RETURNDATACOPY 0 0 32) (SSTORE 0 (MLOAD 0)) }\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stReturnDataTest/returndatacopy_initial_256Filler.json",
    "content": "{\n    \"returndatacopy_initial_256\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x1a00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n        \"expect\" : [\n            {   \"indexes\" : {\n                   \"data\" : -1,\n                   \"gas\" : -1,\n                   \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"{ (RETURNDATACOPY (- 0 (CALLDATALOAD 0)) 0 0x64) (MSTORE 0 0x112233445566778899aabbccddeeff) (SSTORE 0 (MLOAD 0)) }\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"// data\" : [\n                \"0: the sum of RETURNDATACOPY's first and third arguments is 2^256\",\n                \"1: one smaller\",\n                \"2: one bigger\", \"anyway the RETURNDATACOPY should cause an exceptional halt.\"\n            ],\n            \"data\" : [\n                \":raw 0x0000000000000000000000000000000000000000000000000000000000000064\",\n                \":raw 0x0000000000000000000000000000000000000000000000000000000000000063\",\n                \":raw 0x0000000000000000000000000000000000000000000000000000000000000065\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stReturnDataTest/returndatacopy_initial_big_sumFiller.json",
    "content": "{\n    \"returndatacopy_initial_big_sum\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x1a00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n        \"expect\" : [\n            {   \"indexes\" : {\n                   \"data\" : -1,\n                   \"gas\" : -1,\n                   \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"{ (MSTORE 0 0x112233445566778899aabbccddeeff) (RETURNDATACOPY 0 (EXP 2 63) (EXP 2 63)) (SSTORE 0 (MLOAD 0)) }\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stReturnDataTest/returndatacopy_overrunFiller.json",
    "content": "{\n    \"returndatacopy_overrun\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x1a00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n        \"expect\" : [\n            {   \"indexes\" : {\n                   \"data\" : -1,\n                   \"gas\" : -1,\n                   \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:0x0aabbccdd5c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n\t\t\t\t\"balance\" : \"0x00\",\n                \"code\" : \"{ (seq (MSTORE 0 0x0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff) (RETURN 0 32)) }\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n\t\t\t\t\"balance\" : \"0x00\",\n                \"code\" : \"{ (seq (CALL 0x0900000000 <contract:0x0aabbccdd5c57f15886f9b263e2f6d2d6c7b5ec6> 0 0 0 0 0) (RETURNDATACOPY 0 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc 100) (SSTORE 0 (MLOAD 0)) )}\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stReturnDataTest/returndatasize_after_failing_callcodeFiller.json",
    "content": "{\n    \"returndatasize_after_failing_callcode\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x1a00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n        \"pre\" : {\n            \"<eoa:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\": \"0x10000000\",\n                \"code\": \"\",\n                \"nonce\": \"0x0\",\n                \"storage\": {}\n            }, \n            \"<contract:target:0x1000000000000000000000000000000000000001>\": {\n                \"balance\" : \"0x00\",\n                \"code\": \"{ (seq (CALLCODE 100000 <contract:0x1000000000000000000000000000000000000002> 0 0 0 0 0) (SSTORE 0 (RETURNDATASIZE)))}\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0xffffffff\"\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"//code\": \"an invalid opcode\",\n                \"code\" : \":raw 0xfd\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"expect\": [\n            {   \n                \"indexes\" : { \n                   \"data\" : -1, \n                   \"gas\" : -1, \n                   \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : { \n                    \"<contract:target:0x1000000000000000000000000000000000000001>\" : { \n                        \"storage\" : { \n                            \"0x00\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x030d40\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\":  \"<contract:target:0x1000000000000000000000000000000000000001>\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stReturnDataTest/returndatasize_after_failing_delegatecallFiller.json",
    "content": "{\n    \"returndatasize_after_failing_delegatecall\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x1a00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n        \"pre\" : {\n            \"<eoa:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\": \"0x1000000\",\n                \"nonce\": \"0x0\",\n                \"code\": \"\",\n                \"storage\": { }\n            },\n            \"<contract:target:0x1000000000000000000000000000000000000001>\": {\n                \"balance\" : \"0x00\",\n                \"code\": \"{ (seq (DELEGATECALL 10000 <contract:0x1000000000000000000000000000000000000002> 0 0 0 0) (SSTORE 0 (RETURNDATASIZE)))}\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"//code\": \"an invalid opcode\",\n                \"code\" : \":raw 0xfd\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"expect\": [\n            {   \n                \"indexes\" : { \n                   \"data\" : -1, \n                   \"gas\" : -1, \n                   \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : { \n                    \"<contract:target:0x1000000000000000000000000000000000000001>\" : { \n                        \"storage\" : { \n                            \"0x00\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000001>\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stReturnDataTest/returndatasize_after_failing_staticcallFiller.json",
    "content": "{\n    \"returndatasize_after_failing_staticcall\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x1a00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n        \"pre\" : {\n            \"<eoa:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\": \"0x100000\",\n                \"nonce\": \"0x0\",\n                \"code\": \"\",\n                \"storage\": {}\n            },\n            \"<contract:target:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0x00\",\n                \"code\": \"{ (seq (STATICCALL 60000 <contract:0x1000000000000000000000000000000000000002> 0 0 0 0) (SSTORE 0 (RETURNDATASIZE)))}\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"//code\": \"an invalid opcode\",\n                \"code\" : \":raw 0xfd\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"expect\": [\n            {   \n                \"indexes\" : { \n                   \"data\" : -1, \n                   \"gas\" : -1, \n                   \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : { \n                    \"<contract:target:0x1000000000000000000000000000000000000001>\" : { \n                        \"storage\" : { \n                            \"0x00\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000001>\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stReturnDataTest/returndatasize_after_oog_after_deeperFiller.json",
    "content": "{\n    \"returndatasize_after_oog_after_deeper\" : {\n        \"_info\" : {\n            \"comment\" : \"transaction calls A (CALL B(CALL C(RETURN) OOG) 'check buffers')\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x1a00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n        \"pre\" : {\n            \"<eoa:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\": \"0x1000000000\",\n                \"code\": \"\",\n                \"nonce\": \"0x0\",\n                \"storage\": {}\n            },\n            \"<contract:target:0x1000000000000000000000000000000000000001>\": {\n                \"balance\" : \"0x00\",\n                \"code\": \"{ (seq (SSTORE 2 (CALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 0 0 0 32)) (SSTORE 0 (RETURNDATASIZE))) (SSTORE 1 (MLOAD 0))}\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0xffffffff\",\n                    \"0x01\" : \"0xffffffff\",\n                    \"0x02\" : \"0xffffffff\"\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"{ (seq (CALL 100000 <contract:0xbb00000000000000000000000000000000000000> 0 0 0 0 0) (while 1 (SSTORE 0 1)) )}\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x100000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xbb00000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \"{ (seq (MSTORE 0 255) (RETURN 0 32) )}\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"expect\": [\n            {\n                \"indexes\" : {\n                   \"data\" : -1,\n                   \"gas\" : -1,\n                   \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x030d40\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\":  \"<contract:target:0x1000000000000000000000000000000000000001>\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stReturnDataTest/returndatasize_after_successful_callcodeFiller.json",
    "content": "{\n    \"returndatasize_after_successful_callcode\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x1a00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"0x00\",\n                \"code\": \"{ (seq (CALLCODE 60000 <contract:0x1000000000000000000000000000000000000002> 0 0 0 0 0) (SSTORE 0 (RETURNDATASIZE)))}\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x00\"\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"{ (MSTORE 0x0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (RETURN 0 6) }\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"expect\": [\n            {   \n                \"indexes\" : { \n                   \"data\" : -1, \n                   \"gas\" : -1, \n                   \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : { \n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : { \n                        \"storage\" : { \n                            \"0x00\" : \"0x06\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stReturnDataTest/returndatasize_after_successful_delegatecallFiller.json",
    "content": "{\n    \"returndatasize_after_successful_delegatecall\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x1a00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"0x00\",\n                \"code\": \"{ (seq (DELEGATECALL 60000 <contract:0x1000000000000000000000000000000000000002> 0 0 0 0) (SSTORE 0 (RETURNDATASIZE)))}\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"{ (MSTORE 0x0 (CALLER)) (RETURN 0 20) }\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"expect\": [\n            {   \n                \"indexes\" : { \n                   \"data\" : -1, \n                   \"gas\" : -1, \n                   \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : { \n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : { \n                        \"storage\" : { \n                            \"0x00\" : \"0x14\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stReturnDataTest/returndatasize_after_successful_staticcallFiller.json",
    "content": "{\n    \"returndatasize_after_successful_staticcall\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x1a00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"0x00\",\n                \"code\": \"{ (seq (STATICCALL 60000 <contract:0x1000000000000000000000000000000000000002> 0 0 0 0) (SSTORE 0 (RETURNDATASIZE)))}\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"{ (MSTORE 0x0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (RETURN 0 6) }\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"expect\": [\n            {   \n                \"indexes\" : { \n                   \"data\" : -1, \n                   \"gas\" : -1, \n                   \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : { \n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : { \n                        \"storage\" : { \n                            \"0x00\" : \"0x06\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stReturnDataTest/returndatasize_bugFiller.json",
    "content": "{\n    \"returndatasize_bug\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"RETURNDATASIZE after a failing CALL (due to insufficient balance) should return 0\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x1a00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n        \"expect\" : [\n            {   \"indexes\" : {\n                   \"data\" : -1,\n                   \"gas\" : -1,\n                   \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    },\n\t\t    \"<contract:0x1f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"{ (CALL 1 <contract:0x1f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 50000 0 0 0 0) (SSTORE 0 (RETURNDATASIZE)) }\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\"\n                }\n            },\n            \"<contract:0x1f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (CALL 10 1 50000 0 0 0 0) (SSTORE 1 1) }\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stReturnDataTest/returndatasize_following_successful_createFiller.json",
    "content": "{\n    \"returndatasize_following_successful_create\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x1a00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n\t\"expect\": [\n\t    {\n\t        \"indexes\" : {\n\t\t    \"data\" : -1,\n\t\t    \"gas\" : -1,\n\t\t    \"value\" : -1\n\t         },\n\t\t\"network\" : [\">=Cancun\"],\n\t\t\"result\" : {\n\t \t    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \t\"storage\" : {\n\t\t\t   \"0x00\" : \"0x00\"\n\t        \t}\n\t\t    }\n\t\t}\n\t    }\n\t],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \"{ (seq (CREATE 0 0 (lll (seq (mstore 0 0x112233) (RETURN 0 32) (STOP) ) 0)) (SSTORE 0 (RETURNDATASIZE)) (STOP) )}\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stReturnDataTest/returndatasize_initialFiller.json",
    "content": "{\n    \"returndatasize_initial\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x1a00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n        \"expect\" : [\n            {   \"indexes\" : {\n                   \"data\" : -1,\n                   \"gas\" : -1,\n                   \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"{ (SSTORE 0 (RETURNDATASIZE)) }\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stReturnDataTest/returndatasize_initial_zero_readFiller.json",
    "content": "{\n    \"returndatasize_initial_zero_read\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x1a00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n        \"expect\" : [\n            {   \"indexes\" : {\n                   \"data\" : -1,\n                   \"gas\" : -1,\n                   \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"{ (RETURNDATACOPY 0 0 0) (SSTORE 0 (MLOAD 0)) }\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\", \":raw 0x992919aa\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stReturnDataTest/revertRetDataSizeFiller.yml",
    "content": "revertRetDataSize:\n\n  # After a reverted call RETURNDATASIZE should return zero, even if\n  # there was returned data previously\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {   ;  $4 is the type of thing that fails\n            ; $36 is the failure itself\n\n            (def 'callType   $4)\n            (def 'call         0xf1)\n            (def 'callcode     0xf2)\n            (def 'delegatecall 0xf4)\n            (def 'staticcall   0xfa)\n            (def 'create       0xf0)\n            (def 'create2      0xf5)\n\n            (def 'failureType $36)\n            (def 'oog 0)\n\n            ; We need these values for CREATE(2)\n            (def 'uf        0x0200)\n            (def 'jmp       0x0300)\n            (def 'jmpi      0x0400)\n            (def 'badOpcode 0x0500)\n            (def 'badCall   0xFF00)\n\n            (def 'NOP 0)\n\n            ; Code for CREATE(2) to fail\n\n            (def 'codeLoc      0x0000)\n            (def 'codeLength   0x0100)\n\n            (if (= failureType oog)\n               [codeLength] (lll (sha3 0 (- 0 1)) codeLoc)\n               NOP\n            )\n\n\n            (if (= failureType badCall)\n               [codeLength] (call (gas) 0xFF00 0 0 0 0 0)\n               NOP\n            )\n\n\n\n            ; lll protects us from the other failures, so we need to use vm code\n            (if (= failureType uf) {\n                 (mstore8 codeLoc         0x50)     ; POP\n                 (mstore8 (+ codeLoc 1)   0x00)     ; STOP\n                 [codeLength] 2\n               }\n               NOP\n            )\n\n            (if (= failureType jmp) {\n                 (mstore8 codeLoc         0x60)     ; PUSH1 0x00\n                 (mstore8 (+ codeLoc 1)   0x00)\n                 (mstore8 (+ codeLoc 2)   0x56)     ; JUMP\n                 (mstore8 (+ codeLoc 2)   0x00)     ; STOP\n                 [codeLength] 4\n               }\n               NOP\n            )\n\n            (if (= failureType jmpi) {\n                 (mstore8 codeLoc         0x60)     ; PUSH1 0x01\n                 (mstore8 (+ codeLoc 1)   0x01)\n                 (mstore8 (+ codeLoc 2)   0x60)     ; PUSH1 0x01\n                 (mstore8 (+ codeLoc 3)   0x01)\n                 (mstore8 (+ codeLoc 4)   0x57)     ; JUMPI\n                 (mstore8 (+ codeLoc 5)   0x00)     ; STOP\n                 [codeLength] 6\n               }\n               NOP\n            )\n\n\n\n\n            (if (= failureType badOpcode) {\n                 (mstore8 codeLoc         0xFE)     ; Invalid opcode\n                 (mstore8 (+ codeLoc 1)   0x00)     ; STOP\n                 [codeLength] 2\n               }\n               NOP\n            )\n\n\n\n\n            ; The actual failures start here ----------------------------------------\n\n            (if (and (= callType call) (= failureType oog))\n                  {\n                    (call (gas) 0x1000 0 0 0 0 0x40)\n                    [[0]] (returndatasize)\n                    (call 0 0x1000 0 0 0 0 0x40)\n                    [[1]] (returndatasize)\n                  }\n               NOP)\n\n\n            ; If failureType isn't zero, it's the address of a contract to call\n            (if (and (= callType call) (> failureType 0))\n                  {\n                    (call (gas) 0x1000 0 0 0 0 0x40)\n                    [[0]] (returndatasize)\n                    (call (- (gas) 0xF0000) failureType 0 0 0 0 0x40)\n                    [[1]] (returndatasize)\n                  }\n               NOP)\n\n\n\n            (if (and (= callType callcode) (= failureType oog))\n                  {\n                    (callcode (gas) 0x1000 0 0 0 0 0x40)\n                    [[0]] (returndatasize)\n                    (callcode 0 0x1000 0 0 0 0 0x40)\n                    [[1]] (returndatasize)\n                  }\n               NOP)\n\n\n            ; If failureType isn't zero, it's the address of a contract to call\n            (if (and (= callType callcode) (> failureType 0))\n                  {\n                    (call (gas) 0x1000 0 0 0 0 0x40)\n                    [[0]] (returndatasize)\n                    (callcode (gas) failureType 0 0 0 0 0x40)\n                    [[1]] (returndatasize)\n                  }\n               NOP)\n\n\n\n\n            (if (and (= callType delegatecall) (= failureType oog))\n                  {\n                    (delegatecall (gas) 0x1000 0 0 0 0x40)\n                    [[0]] (returndatasize)\n                    (delegatecall 0 0x1000 0 0 0 0x40)\n                    [[1]] (returndatasize)\n                  }\n               NOP)\n\n\n            ; If failureType isn't zero, it's the address of a contract to call\n            (if (and (= callType delegatecall) (> failureType 0))\n                  {\n                    (call (gas) 0x1000 0 0 0 0 0x40)\n                    [[0]] (returndatasize)\n                    (delegatecall (gas) failureType 0 0 0 0x40)\n                    [[1]] (returndatasize)\n                  }\n               NOP)\n\n\n\n\n            (if (and (= callType staticcall) (= failureType oog))\n                  {\n                    (staticcall (gas) 0x1000 0 0 0 0x40)\n                    [[0]] (returndatasize)\n                    (staticcall 0 0x1000 0 0 0 0x40)\n                    [[1]] (returndatasize)\n                  }\n               NOP)\n\n\n            ; If failureType isn't zero, it's the address of a contract to call\n            (if (and (= callType staticcall) (> failureType 0))\n                  {\n                    (call (gas) 0x1000 0 0 0 0 0x40)\n                    [[0]] (returndatasize)\n                    (staticcall (gas) failureType 0 0 0 0x40)\n                    [[1]] (returndatasize)\n                  }\n               NOP)\n\n\n            (if (= callType create)\n                  {\n                    (staticcall (gas) 0x1000 0 0 0 0x40)\n                    [[0]] (returndatasize)\n                    (create 0 codeLoc @codeLength)\n                    [[1]] (returndatasize)\n                  }\n               NOP)\n\n\n            (if (= callType create2)\n                  {\n                    (staticcall (gas) 0x1000 0 0 0 0x40)\n                    [[0]] (returndatasize)\n                    (create2 0x5a17 0 codeLoc @codeLength)\n                    [[1]] (returndatasize)\n                  }\n               NOP)\n\n            ; Show we got here\n            [[2]] 0x60A7\n\n        }\n      nonce: '0'\n      storage:\n      # Verify it gets overwritten\n         0: 0x60A7\n         1: 0x60A7\n\n\n    # Call and try to return a 0x40 byte value\n    0000000000000000000000000000000000001000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n           [0x00] (/ (- 0 1) 2)\n           [0x20] (+ @0x00 1)\n\n           (return 0 0x40)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    # Stack underflow\n    0000000000000000000000000000000000000200:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      nonce: '0'\n      storage: {}\n\n      # POP\n      # STOP\n      code: :raw 0x5000\n\n\n\n\n    # JUMP to a place that isn't a JUMPDEST\n    0000000000000000000000000000000000000300:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      nonce: '0'\n      storage: {}\n\n      # PUSH1 00\n      # JUMP\n      code: :raw 0x600056\n\n\n    # JUMPI to a place that isn't a JUMPDEST\n    0000000000000000000000000000000000000400:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      nonce: '0'\n      storage: {}\n\n      # PUSH1 01\n      # PUSH1 01\n      # JUMPI\n      code: :raw 0x6001600157\n\n\n    # Bad opcode\n    0000000000000000000000000000000000000500:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      nonce: '0'\n      storage: {}\n      code: :raw 0xFE00\n\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n\n\n  transaction:\n    data:\n\n    # Out of gas\n    - :abi f(uint,uint) 0xF1 0x0000 # CALL\n    - :abi f(uint,uint) 0xF2 0x0000 # CALLCODE\n    - :abi f(uint,uint) 0xF4 0x0000 # DELEGATECALL\n    - :abi f(uint,uint) 0xFA 0x0000 # STATICCALL\n    - :abi f(uint,uint) 0xF0 0x0000 # CREATE\n    - :abi f(uint,uint) 0xF5 0x0000 # CREATE2\n\n    # Stack underflow\n    - :abi f(uint,uint) 0xF1 0x0200 # CALL\n    - :abi f(uint,uint) 0xF2 0x0200 # CALLCODE\n    - :abi f(uint,uint) 0xF4 0x0200 # DELEGATECALL\n    - :abi f(uint,uint) 0xFA 0x0200 # STATICCALL\n    - :abi f(uint,uint) 0xF0 0x0200 # CREATE\n    - :abi f(uint,uint) 0xF5 0x0200 # CREATE2\n\n    # JUMP\n    - :abi f(uint,uint) 0xF1 0x0300 # CALL\n    - :abi f(uint,uint) 0xF2 0x0300 # CALLCODE\n    - :abi f(uint,uint) 0xF4 0x0300 # DELEGATECALL\n    - :abi f(uint,uint) 0xFA 0x0300 # STATICCALL\n    - :abi f(uint,uint) 0xF0 0x0300 # CREATE\n    - :abi f(uint,uint) 0xF5 0x0300 # CREATE2\n\n\n    # JUMPI\n    - :abi f(uint,uint) 0xF1 0x0400 # CALL\n    - :abi f(uint,uint) 0xF2 0x0400 # CALLCODE\n    - :abi f(uint,uint) 0xF4 0x0400 # DELEGATECALL\n    - :abi f(uint,uint) 0xFA 0x0400 # STATICCALL\n    - :abi f(uint,uint) 0xF0 0x0400 # CREATE\n    - :abi f(uint,uint) 0xF5 0x0400 # CREATE2\n\n\n    # Bad opcode tests\n    - :abi f(uint,uint) 0xF1 0x0500 # CALL\n    - :abi f(uint,uint) 0xF2 0x0500 # CALLCODE\n    - :abi f(uint,uint) 0xF4 0x0500 # DELEGATECALL\n    - :abi f(uint,uint) 0xFA 0x0500 # STATICCALL\n    - :abi f(uint,uint) 0xF0 0x0500 # CREATE\n    - :abi f(uint,uint) 0xF5 0x0500 # CREATE2\n\n\n    # Call a non-existent contract\n    - :abi f(uint,uint) 0xF1 0xFF00 # CALL\n    - :abi f(uint,uint) 0xF2 0xFF00 # CALLCODE\n    - :abi f(uint,uint) 0xF4 0xFF00 # DELEGATECALL\n    - :abi f(uint,uint) 0xFA 0xFF00 # STATICCALL\n    - :abi f(uint,uint) 0xF0 0xFF00 # CREATE\n    - :abi f(uint,uint) 0xF5 0xFF00 # CREATE2\n\n\n\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n  expect:\n\n    # CALL/CREATE failure, including OOG, gives a RETURNDATASIZE of zero and\n    # continues the transaction\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0: 0x40   # First returndatasize\n            1: 0x00   # Second returndatasize\n            2: 0x60A7   # GOAT at the end of the run\n"
  },
  {
    "path": "tests/static/state_tests/stReturnDataTest/subcallReturnMoreThenExpectedFiller.yml",
    "content": "# https://github.com/ethereum/tests/issues/558 (subcall/opcode return more data then expected)\n---\nsubcallReturnMoreThenExpected:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: \"10000000\"\n    currentNumber: \"1\"\n    currentTimestamp: \"1000\"\n  _info:\n    comment: \"https://github.com/ethereum/tests/issues/558 (subcall/opcode return more data then expected)\"\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: '1000000000000000000'\n      code: |\n        {\n          ;; Get returndata from a subcall\n          (CALL 200000 <contract:0x194f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 12)\n          [[0]] (MLOAD 0)\n          (MSTORE 0 0x0000000000000000000000000000000000000000000000000000000000000000)\n          (DELEGATECALL 200000 <contract:0x194f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 12)\n          [[1]] (MLOAD 0)\n          (MSTORE 0 0x0000000000000000000000000000000000000000000000000000000000000000)\n          (STATICCALL 200000 <contract:0x194f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 12)\n          [[2]] (MLOAD 0)\n          (MSTORE 0 0x0000000000000000000000000000000000000000000000000000000000000000)\n          (CALLCODE 200000 <contract:0x194f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 12)\n          [[3]] (MLOAD 0)\n          (MSTORE 0 0x0000000000000000000000000000000000000000000000000000000000000000)\n\n          ;; Get revert data from a subcall\n          (CALL 200000 <contract:0x294f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 12)\n          [[4]] (MLOAD 0)\n          (MSTORE 0 0x0000000000000000000000000000000000000000000000000000000000000000)\n          (DELEGATECALL 200000 <contract:0x294f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 12)\n          [[5]] (MLOAD 0)\n          (MSTORE 0 0x0000000000000000000000000000000000000000000000000000000000000000)\n          (STATICCALL 200000 <contract:0x294f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 12)\n          [[6]] (MLOAD 0)\n          (MSTORE 0 0x0000000000000000000000000000000000000000000000000000000000000000)\n          (CALLCODE 200000 <contract:0x294f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 12)\n          [[7]] (MLOAD 0)\n        }\n      nonce: '0'\n      storage: {}\n    <contract:0x194f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: |\n        {\n          (MSTORE 0  0x1122334455667788991011121314151617181920212223242526272829303132)\n          (MSTORE 32 0x3334353637383940414243444546474849505152535455565758596061626364)\n          (RETURN 0 64)\n        }\n      nonce: '0'\n      storage: {}\n    <contract:0x294f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: |\n        {\n          (MSTORE 0  0x1122334455667788991011121314151617181920212223242526272829303132)\n          (MSTORE 32 0x3334353637383940414243444546474849505152535455565758596061626364)\n          (REVERT 0 64)\n        }\n      nonce: '0'\n      storage: {} \n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: ''\n      nonce: '0'\n      storage: {}\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n          balance: '1000000000000000001'\n          storage: {\n            \"0x00\": '0x1122334455667788991011120000000000000000000000000000000000000000',\n            \"0x01\": '0x1122334455667788991011120000000000000000000000000000000000000000',\n            \"0x02\": '0x1122334455667788991011120000000000000000000000000000000000000000',\n            \"0x03\": '0x1122334455667788991011120000000000000000000000000000000000000000',\n            \"0x04\": '0x1122334455667788991011120000000000000000000000000000000000000000',\n            \"0x05\": '0x1122334455667788991011120000000000000000000000000000000000000000',\n            \"0x06\": '0x1122334455667788991011120000000000000000000000000000000000000000',\n            \"0x07\": '0x1122334455667788991011120000000000000000000000000000000000000000'\n          }\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '400000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n    - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stReturnDataTest/tooLongReturnDataCopyFiller.yml",
    "content": "tooLongReturnDataCopy:\n  _info:\n    comment: Ori Pomerantz   qbzzt1@gmail.com\n\n# When a contract ends (RETURN or REVERT), it returns a buffer. That buffer\n# is available either directly (written to memory specified in the CALL opcode)\n# or through RETURNDATACOPY. However, if you attempt in RETURNDATACOPY to read\n# beyond the buffer size the contract reverts. This test verifies this behavior.\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentNumber: 1\n    currentTimestamp: 1000\n    currentGasLimit: 0x10000000000000\n    currentBaseFee: 10\n\n  pre:\n    # Return the requested amount of data\n    <contract:0x000000000000000000000000000000000000c0de>:\n      balance: 0\n      code: |\n        :yul berlin\n        {\n           // How many bytes to return\n           let byteCount := calldataload(0)\n\n           // Some junk data\n           mstore(0, 0x1F1E1D1C1B1A191817161514131211100F0E0D0C0B0A090807060504030201FF)\n\n           sstore(0, byteCount)\n\n           // Return the result\n           return(0x00, byteCount)\n        }\n      nonce: 1\n      storage: {}\n\n\n    # Revert with the requested amount of data\n    <contract:0x0000000000000000000000000000000000000bad>:\n      balance: 0\n      code: |\n        :yul berlin\n        {\n           // How many bytes to return\n           let byteCount := calldataload(0)\n\n           // Some junk data\n           mstore(0, 0x1F1E1D1C1B1A191817161514131211100F0E0D0C0B0A090807060504030201FF)\n\n           sstore(0, byteCount)\n\n           // Return the result\n           revert(0x00, byteCount)\n        }\n      nonce: 1\n      storage: {}\n\n\n    # Call 0xC0DE or 0x0BAD and then copy return data (possibly an excessive\n    # amount of it)\n    <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n      balance: 1000000000000000000\n      code: |\n          :yul berlin\n          {\n             let lengthReturned := calldataload(0x04)\n             let offsetCopied   := calldataload(0x24)\n             let lengthCopied   := calldataload(0x44)\n             let contract       := calldataload(0x64)\n             mstore(0, lengthReturned)\n\n             // The length of the buffer to be returned is part of the calldata\n             // for this contract. However, it is necessary to send it to the \n             // contract we're calling (either <contract:0x000000000000000000000000000000000000c0de> or <contract:0x0000000000000000000000000000000000000bad>) so it will know\n             // what size of buffer to return to us\n             let retVal := call(gas(), contract, 0, \n                0, 0x20,    // input buffer with lengthReturned\n                0, 0x100)    // output buffer\n\n             // Copy the return data (which fails if\n             // offsetCopied+lengthCopied > lengthReturned)\n             returndatacopy(0x100, offsetCopied, lengthCopied)\n\n\n             // Show that other copies of excess length work (otherwise\n             // the goat will never die)\n             extcodecopy(<contract:0x000000000000000000000000000000000000c0de>, 0,0, add(0x20,extcodesize(<contract:0x000000000000000000000000000000000000c0de>)))\n             calldatacopy(0,0, add(0x20,calldatasize()))\n             codecopy(0,0, add(0x20,codesize()))\n             \n\n             // If we get here, kill the goat to show success\n             sstore(0, 0xDEAD)\n          }\n      nonce: 1\n      storage:\n        0: 0x60A7   # To be overwritten\n\n\n\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: 1000000000000000000000\n      code: '0x'\n      nonce: 1\n      storage: {}\n\n\n  transaction:\n    data:\n# Parameters:\n# 1. The length of the returned buffer\n# 2. The offset for the RETURNDATACOPY opcode\n# 3. The length for the RETURNDATACOPY opcode\n# 4. The contract call. \n#    <contract:0x000000000000000000000000000000000000c0de> - contract that returns a buffer\n#    <contract:0x0000000000000000000000000000000000000bad> - contract that reverts with a buffer\n#    In both cases, the returned buffer is the length specified in the first parameter\n\n    # Receive an empty buffer, copy zero bytes from offset zero.\n    - :label success :abi f(uint,uint,uint,uint) 0x00 0x00 0x00 <contract:0x000000000000000000000000000000000000c0de>\n      \n\n    # Receive an empty buffer, copy the first byte from it\n    - :label fail    :abi f(uint,uint,uint,uint) 0x00 0x00 0x01 <contract:0x000000000000000000000000000000000000c0de>\n      \n\n    # Receive sixteen bytes, copy the first eight\n    - :label success :abi f(uint,uint,uint,uint) 0x10 0x00 0x08 <contract:0x000000000000000000000000000000000000c0de>\n      \n\n    # Receive sixteen bytes, copy the first sixteen\n    - :label success :abi f(uint,uint,uint,uint) 0x10 0x00 0x10 <contract:0x000000000000000000000000000000000000c0de>\n      \n\n    # Receive sixteen bytes, copy the first seventeen\n    - :label fail    :abi f(uint,uint,uint,uint) 0x10 0x00 0x11 <contract:0x000000000000000000000000000000000000c0de>\n      \n\n    # Receive sixteen bytes, copy fifteen (except for the first one)\n    - :label success :abi f(uint,uint,uint,uint) 0x10 0x01 0x0f <contract:0x000000000000000000000000000000000000c0de>\n      \n\n    # Receive sixteen bytes, copy sixteen (except for the first one)\n    - :label fail    :abi f(uint,uint,uint,uint) 0x10 0x01 0x10 <contract:0x000000000000000000000000000000000000c0de>\n      \n\n    # Receive sixteen bytes, copy numbers 8-15\n    - :label success :abi f(uint,uint,uint,uint) 0x10 0x08 0x08 <contract:0x000000000000000000000000000000000000c0de>\n      \n\n    # Receive sixteen bytes, copy numbers 9-16\n    - :label fail    :abi f(uint,uint,uint,uint) 0x10 0x09 0x08 <contract:0x000000000000000000000000000000000000c0de>\n      \n\n    # Receive sixteen bytes, copy numbers 16-23\n    - :label fail    :abi f(uint,uint,uint,uint) 0x10 0x10 0x08 <contract:0x000000000000000000000000000000000000c0de>\n      \n\n    # Receive sixteen bytes, copy numbers 16-31\n    - :label fail    :abi f(uint,uint,uint,uint) 0x10 0x10 0x10 <contract:0x000000000000000000000000000000000000c0de>\n      \n\n    # Receive sixteen bytes, copy numbers 32-47\n    - :label fail    :abi f(uint,uint,uint,uint) 0x10 0x20 0x10 <contract:0x000000000000000000000000000000000000c0de>\n      \n\n\n\n    # Show that REVERT behaves the same way as RETURN\n\n    # Receive an empty buffer, copy zero bytes from offset zero.\n    - :label success :abi f(uint,uint,uint,uint) 0x00 0x00 0x00 <contract:0x0000000000000000000000000000000000000bad>\n      \n\n    # Receive an empty buffer, copy the first byte from it\n    - :label fail    :abi f(uint,uint,uint,uint) 0x00 0x00 0x01 <contract:0x0000000000000000000000000000000000000bad>\n      \n\n    # Receive sixteen bytes, copy the first eight\n    - :label success :abi f(uint,uint,uint,uint) 0x10 0x00 0x08 <contract:0x0000000000000000000000000000000000000bad>\n      \n\n    # Receive sixteen bytes, copy the first sixteen\n    - :label success :abi f(uint,uint,uint,uint) 0x10 0x00 0x10 <contract:0x0000000000000000000000000000000000000bad>\n      \n\n    # Receive sixteen bytes, copy the first seventeen\n    - :label fail    :abi f(uint,uint,uint,uint) 0x10 0x00 0x11 <contract:0x0000000000000000000000000000000000000bad>\n      \n\n    # Receive sixteen bytes, copy fifteen (except for the first one)\n    - :label success :abi f(uint,uint,uint,uint) 0x10 0x01 0x0f <contract:0x0000000000000000000000000000000000000bad>\n      \n\n    # Receive sixteen bytes, copy sixteen (except for the first one)\n    - :label fail    :abi f(uint,uint,uint,uint) 0x10 0x01 0x10 <contract:0x0000000000000000000000000000000000000bad>\n      \n\n    # Receive sixteen bytes, copy numbers 8-15\n    - :label success :abi f(uint,uint,uint,uint) 0x10 0x08 0x08 <contract:0x0000000000000000000000000000000000000bad>\n      \n\n    # Receive sixteen bytes, copy numbers 9-16\n    - :label fail    :abi f(uint,uint,uint,uint) 0x10 0x09 0x08 <contract:0x0000000000000000000000000000000000000bad>\n      \n\n    # Receive sixteen bytes, copy numbers 16-23\n    - :label fail    :abi f(uint,uint,uint,uint) 0x10 0x10 0x08 <contract:0x0000000000000000000000000000000000000bad>\n      \n\n    # Receive sixteen bytes, copy numbers 16-31\n    - :label fail    :abi f(uint,uint,uint,uint) 0x10 0x10 0x10 <contract:0x0000000000000000000000000000000000000bad>\n      \n\n    # Receive sixteen bytes, copy numbers 32-47\n    - :label fail    :abi f(uint,uint,uint,uint) 0x10 0x20 0x10 <contract:0x0000000000000000000000000000000000000bad>\n      \n\n\n\n    gasLimit:\n    - 0x1000000\n    nonce: 1\n    to: <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>\n    value:\n    - 0\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    gasPrice: 100\n\n\n  expect:\n    # If we attempt to copy more than RETURNDATASIZE(), the transaction reverts\n    # and the goat lives\n    - indexes:\n        data: :label fail\n        gas:  !!int -1\n        value: !!int -1\n\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            # The result we expect\n            0x00: 0x60A7\n\n\n    # If we attempt to copy RETURNDATASIZE() or less, we get to the \n    # capraicide code and the goat dies\n    - indexes:\n        data: :label success\n        gas:  !!int -1\n        value: !!int -1\n\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0xDEAD\n\n\n\n"
  },
  {
    "path": "tests/static/state_tests/stRevertTest/LoopCallsDepthThenRevert2Filler.json",
    "content": "{\n    \"LoopCallsDepthThenRevert2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t     {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                        \"7db299e0885c85039f56fa504a13dd8ce8a56aa7\" : {\n                            \"balance\" : \"0x03\",\n                            \"nonce\" : \"0x01\"\n                        }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"100000000000000000000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"a000000000000000000000000000000000000000\" : {\n                \"balance\" : \"10\",\n        \t\t\"//0 code\" : \"create in init code on depth = 1024. account should not be created\",\n                \"//1 code\" : \"{ (JUMPI 63 (EQ (SLOAD 0) 1023)) [[0]] (+ (SLOAD 0) 1) (CALL (GAS) 0xa000000000000000000000000000000000000000 0 0 0 0 0) (JUMPI 83 (LT (SLOAD 0) 1050)) (JUMPDEST) (MSTORE 0 0x600060006002f0) (CREATE 3 25 7) (JUMPDEST)}\",\n        \t\t\"code\" : \":raw 0x6103ff60005414603f576001600054016000556000600060006000600073a0000000000000000000000000000000000000005af15061041a600054106053575b66600060006002f0600052600760196003f0505b\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"9214364837600034817\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"a000000000000000000000000000000000000000\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRevertTest/LoopCallsDepthThenRevert3Filler.json",
    "content": "{\n    \"LoopCallsDepthThenRevert3\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t     {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                        \"7db299e0885c85039f56fa504a13dd8ce8a56aa7\" : {\n                            \"balance\" : \"0x01\",\n                            \"nonce\" : \"0x02\"\n                        },\n                        \"cd6807039caffddbd1c28a749ec91bef15f448e5\" : {\n                            \"balance\" : \"0x02\",\n                            \"nonce\" : \"0x01\"\n                        }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"100000000000000000000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"a000000000000000000000000000000000000000\" : {\n                \"balance\" : \"10\",\n           \t\t\"//0 code\" : \"create in init code on depth = 1023. account would be created\",\n                \"//1 code\" : \"{ (JUMPI 63 (EQ (SLOAD 0) 1022)) [[0]] (+ (SLOAD 0) 1) (CALL (GAS) 0xa000000000000000000000000000000000000000 0 0 0 0 0) (JUMPI 83 (LT (SLOAD 0) 1050)) (JUMPDEST) (MSTORE 0 0x600060006002f0) (CREATE 3 25 7) (JUMPDEST)}\",\n    \t        \"code\" : \":raw 0x6103fe60005414603f576001600054016000556000600060006000600073a0000000000000000000000000000000000000005af15061041a600054106053575b66600060006002f0600052600760196003f0505b\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"9214364837600034817\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"a000000000000000000000000000000000000000\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRevertTest/LoopCallsDepthThenRevertFiller.json",
    "content": "{\n    \"LoopCallsDepthThenRevert\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t     {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n    \t\t\t            \"0x00\" : \"0xc1\"\n\t\t                }\n\t\t            },\n\t\t            \"<contract:0xb000000000000000000000000000000000000000>\" : {\n    \t\t\t        \"storage\" : {\n    \t\t\t            \"0x00\" : \"0xc0\"\n    \t\t\t        }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] (+ (SLOAD 0) 1) (CALL (GAS) <contract:0xb000000000000000000000000000000000000000> 0 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0xb000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] (+ (SLOAD 0) 1) (CALL (GAS) <contract:target:0xa000000000000000000000000000000000000000> 0 0 0 0 0)  }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xa000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRevertTest/LoopCallsThenRevertFiller.json",
    "content": "{\n    \"LoopCallsThenRevert\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x00\"\n\t\t                }\n\t\t            },\n\t\t            \"<contract:0xb000000000000000000000000000000000000000>\" : {\n\t\t\t            \"storage\" : {\n\t\t\t                \"0x00\" : \"0x0352\"\n\t\t\t            }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"\",\n                \"//code\" : \"{ (JUMPDEST) [[0]] (- (SLOAD 0) 1) (CALL 50000 <contract:0xb000000000000000000000000000000000000000> 0 0 0 0 0) (JUMPI 0 (SLOAD 0))}\",\n        \t\t\"code\" : \":raw 0x5b6001600054036000556000600060006000600073<contract:0xb000000000000000000000000000000000000000>61c350f150600054600057\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n        \t\t\t\"0x00\" : \"0x0352\"\n                }\n            },\n    \t    \"<contract:0xb000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] (ADD 1 (SLOAD 0)) }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xa000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRevertTest/LoopDelegateCallsDepthThenRevertFiller.json",
    "content": "{\n    \"LoopDelegateCallsDepthThenRevert\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t\t             \t\"0x00\" : \"0x0182\"\n\t\t                }\n\t\t            },\n\t\t            \"<contract:0xb000000000000000000000000000000000000000>\" : {\n    \t\t\t        \"storage\" : {\n    \t\t\t        }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] (+ (SLOAD 0) 1) (DELEGATECALL (GAS) <contract:0xb000000000000000000000000000000000000000> 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:0xb000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] (+ (SLOAD 0) 1) (DELEGATECALL (GAS) <contract:target:0xa000000000000000000000000000000000000000> 0 0 0 0)  }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xa000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRevertTest/NashatyrevSuicideRevertFiller.json",
    "content": "{\n    \"NashatyrevSuicideRevert\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t\t        \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n\t                    \"nonce\" : \"0x00\",\n\t                    \"storage\" : {\n\t                    }\n\t                },\n\t                \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t                    \"nonce\" : \"0x01\"\n\t                }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x60606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680639c3674fc14610049578063c040622614610058575b610000565b3461000057610056610067565b005b3461000057610065610147565b005b600060405160a680610200833901809050604051809103906000f080156100005790508073ffffffffffffffffffffffffffffffffffffffff1660405180807f6628290000000000000000000000000000000000000000000000000000000000815250600301905060405180910390207c010000000000000000000000000000000000000000000000000000000090046040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018090506000604051808303816000876161da5a03f19250505050610000565b50565b3073ffffffffffffffffffffffffffffffffffffffff1660405180807f6261642829000000000000000000000000000000000000000000000000000000815250600501905060405180910390207c010000000000000000000000000000000000000000000000000000000090046040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018090506000604051808303816000876161da5a03f192505050505b56006060604052346000575b608f806100176000396000f30060606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806326121ff014603c575b6000565b3460005760466048565b005b3373ffffffffffffffffffffffffffffffffffffffff16ff5b5600a165627a7a723058203d1a897befde21eff26abc325fb3da2f526bbc99de1c5c857d1835f673744ebd0029a165627a7a72305820850a52b31ec4745b7af15ba3bffdb1ba17f5d9a00a5f263ee287a92b568f534c0029\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0xc0406226\"\n            ],\n            \"gasLimit\" : [\n                \"500000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xa000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRevertTest/PythonRevertTestTue201814-1430Filler.json",
    "content": "{\n  \"PythonRevertTestTue201814-1430\": {\n    \"_info\" : {\n\t\"comment\" : \"A random test that had failed in Python ethereum implementation\"\n    },\n    \"expect\" : [\n\t{\n\t    \"indexes\" : {\n\t\t\"data\" : -1,\n\t\t\"gas\" : -1,\n\t\t\"value\" : -1\n\t    },\n\t    \"network\" : [\">=Cancun\"],\n\t    \"result\" : {\n\t\t\"<contract:target:0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n        \t\t\"storage\": {}\n      \t\t},\n\t        \"<contract:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n\t\t         \"storage\": {}\n\t        },\n\t        \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n\t\t         \"storage\": {}\n\t        },\n\t        \"<contract:0x1000000000000000000000000000000000000000>\": {\n\t\t         \"storage\": {}\n\t        },\n\t        \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n\t\t         \"storage\": {}\n\t        }\n\t    }\n\t}\n    ],\n    \"pre\": {\n      \"<contract:target:0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n        \"code\": \":raw 0x6102fa60ff60f561014873<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>630277795afa689497edb6a665eae52f3d625249756103a55260a860fb60cb3e6102dd6103e0fd6f568a159c0cae9044d258c55b10f4d100628d29ab781df7fcebb789e2a8cdbaa9c67c42cd1ebe81716ead0e94c7216d279dd3a0b3de311596d54729287873449ccce511e6991b3dc636a178159a3d9a06227462cd9a6768ccba17c2cb06de468e95730bf78e55af17e19973f2c3f5d4c21c169890b9a9672491f91aa1e7142667060d385ed594e21b6d02b23a6c4c50e7ab6a3ef66f83a2927f9845b4ba85c4fdfbd0054a0123ad93eff4b525b0f4b08d285f36f3bcac6a985b66906c348472b7cb047bc5a02e618666f0c50eecdc11f20fc1dc41c2fd957752e55ede4e56f469f536a04d436ad418a1ca7a44c0173c10f1806ba284f9c9c7c13670005de594dec538cd56c2746b3bfdfa7683ae0df68bbcb5347d61be606ef617322e6448e3e4124dbe061257a8f486529de397f08ce92502a37b957f855818082b5b5b49e36de5a83e8a270663088571bf2fdf8f5f2961031452326fb9499741e3859928a237f5e5df84c13c6043556b1e82328f9093e64defbdd07d7774d84835800999791abc41260472d96f604d07198e859adc0b70806beae7200cf116d2b55e89ddd564abc36d900e69a68b0f0e9e4f129987288153605d7d01c42f3b109ed2bd72a6cf13500241c2a5e5c4e17ea9ed9b05ba9b57d70d63d270ece77f6ecf21d3a41ad554f79584dcab761d4c8437774cad4bb13b2bece140358df93e76c0f49abe102cd44e474ab71c0237247865fa2add74c8b2a33d6f7041c5718a2554a72662720296dff5b377b559df4558b8a5b2c9e7d15eb3947a70064f935c8fdf0a4e726f644aa31b42c10280e50ea92a366c3d060c1270c6a16a75522fbeb3d7cca702807f5217816eab9cceb9e237ee8fde4ed3a23d3ec87adb334ac1caa7e06523b0132dd615cf3fc16140d34c191617823c3a7bf47c42bc36b69cb4385463595c7f6f9ea451e05303603e0cd401e13d6ff744e2a673824d943941551704ff14df7fa8646efbb2d8abc4ac6e258e9924924b8001f8f0650d66b37411d484b18f41e77c792bd1c169fa52bbfc8af4a45f20acb0ef95db2ecbc0d4eadbbbf6732f648bd33b36336dc0faf0cf1970bcd38093a50a44fd6b253b0e74f2706239c499217b8c3263dae332e254711d5d5e7e795c998cceed14cf46977e7d3cbb35783c79ef0530c3a8ac3fd8d49f10bb0ae919fa149adead67dae035627de430622813ac6271b51873<contract:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>3c7fb9ba628e056e0e87e029b8e5f42821d775338e6774301ecb428b3938236ee22b7d0b5edf2ad6997869f427ba0672a7168614233e85f61dae5ed4283a53f60570116dad586dce62833a62ca8c914c641f8660526101d761010761031c73<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>6333d3d55ff4611a5b631c4ea729816102566103ce6101c161014a73000000000000000000000000000000000000000663202b2ea8f4610221610106602e3e648a95029ecb72849fe0943cb9d854c7d50ad04cfdfe648e286876b8f2b53e55fe01a152c8496cbcc6997447062b734cebde04796c6452e9efc4aba5bf071cbff56208a525a8ef5f52399b4f33697bd988884f58166d734881774eff46d77bb189c89c55b1c6591f178d2d7c21bf2b023adf9bc5b8621235e3346d98d56047a3f71241fd5a24abbb0c73fc463fb8a5e67e32055696fe51258dd07526ebd87e439bcebb514ae26dc12d653a5c1263705109097ec5dcdb3918ab114985f7097fd3003b50e58fba91007825a6b800f644eaa306051808460fc3b2d8e276b2187c7b583ff29ee0b0c34f9ee57bac9ebb996402e3300ddf06c760fc5f531f746b1e2beda7a15c07f90f92422822e8d33c5d2409ea7375197f7cd6d61770eddb078206cfc7c5006cd0e97da9ec65fa4fc683da22cfaf6dfc995feb5f8386a052851fc502f32e7ef9346e3d4633def4c0a4b9be12f2cd7c646062e14ca37cfb977524f677714c3d994ea05f1997a2462fc0ab20ed2a5958f37126029b6102056102c9605d6103a173<contract:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>6302e83dbef4\",\n        \"nonce\": \"0x1d\",\n        \"balance\": \"0x845252b8509dc215\",\n        \"storage\": {}\n      },\n      \"<contract:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n        \"code\": \":raw 0x7abee2a270429abbd3ff3b9945f72f58dcf4f8b344417a87dfa1ebd7601f5232609b6103ee61027b6101326342a46f5073<contract:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>632c1e2816f26101726101ec61013161012473<contract:target:0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b>632318d76ffa7201a0ff381bb40bb828d7781d2ef7c0fd8695f77c05465fbadf99fdffef2afd94b0e76531b6ea0d23d2332d13c20368a072644e41bc113079a6b1ebc3464527e34c26a4379f9dfe4f8e57981a9fc08558c90d537538079f1921b60fe6fa448171fec55c4c63e81171221164cf72f489a45775e83a2f5427eab647b075a910929de0a6554fc1426b49547acd8e2c770339616ce9c501fb746715dd4a20219229d0673ac055997e3bd089a6663f6dff488574195b848fbb357eb7be1fff076e997770d03b7028536103b36102846103056102db73<contract:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>6347cfe65df4423a6b8679871dc28aa5a1399b21c86102e460476101f3605b73ffffffffffffffffffffffffffffffffffffffff6311ecd01bfa76afa8155ecd75dd05f9d7eb42fa3e79c6a2109dff2a1e5361030a6101b2fd610263605861011761027f63459d135b7300000000000000000000000000000000000000056342ce224df274e612fbe000bed18eec8345f005f537c72820d8b97360e3526b50ae523a8f7467ae14a8bd9a6aaee55862b685e32476cc6762ae2c4068cf55729540d111f44c9260e76101bc6103f33e68639458dae7ad2a9b38629ed3bb1060d861036afd610123610359636db4b55bf0626021696101775263ea8a7b3a641bcf9219191a6103be6103716101f73e74c0413cb5d609ca9a51645238e4f1f8268f973c3a0169a0b67479a345d1e700655360166101736102f2610214633ff89b317300000000000000000000000000000000000000066335adeabdf13d7ee6d218af54c3d8045447d06c726801695cfa26fdfaa6460a8685cd662855a5547f5716140ae0b1e25aeaf04ae7cf54e8aa7a22206da5a6e52bdd3ef82ad40a46815177d25811167b0a3f66a727652592924dc1291a6085d537c5da6101b1601d6103a33e752d6272a54f882460bc76407d6361c40cc56bc88a8bc960726103ec6102c16101f373<contract:0x1000000000000000000000000000000000000000>635f449586f4\",\n        \"nonce\": \"0x1d\",\n        \"balance\": \"0x882fd85bc18c9f00\",\n        \"storage\": {}\n      },\n      \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n        \"code\": \"\",\n        \"nonce\": \"0x00\",\n        \"balance\": \"0xab56295c9d120548\",\n        \"storage\": {}\n      },\n      \"<contract:0x1000000000000000000000000000000000000000>\": {\n        \"code\": \":raw 0x601361019f6101013e6f338db2b1165b4918f178852663192a956d79a68b50eefdc639ca0b62ab4d52771db054ccc801c0666b34b3c6242bbfc5e98f20c14fb95e016718be9ad033d50e21675ff59297861847ea6a911a6a9d135e2f826dc6037d850e0db21d105b8732a34b873c7d943050b8659794f0bd3e841d35a2231e65f697f8cde1176728fa2051e87933cf66858e4e5e91baa7764fc1e9ffe4c7b15ba600e88f095989dc68f47ed704be2b99601761021563200fbd63f07e41c7f86732f4d5419b41e6887cca98e0943f141a5c66df98bd0c6d6c4cec657893afaa8ce1769c96cd0751aa76a98c8196fa8c92e70d7bda176299c91c3e7a7f05de3181109b8194387746f9ec15a6e0233f759e43360bd4e0a06e4e9f395117afcd072774ce12d13dc761016152303a683305858002a92140b678508e3a3be377d4825dbf618a393c7c061e75a8a496a33afe0f72017f2e33549e321838b083d48893f23dced4597e2e9ea08fe3f80970d6334b6c6f1fde8bcc81d03a7ccc244231cb6606dba6d06ec1c5158ef0db6994192acbd4cac6ab6ac8449d80fc2c32471946e071d9606bd390266d7f712766f4765076283ad6687450d7ab4df6f3f6ee9661014a70b802ec9d7ed96dc0b9ce7bd14b193dc1f05376d11ce19283c7f651d4d2e7c180715ff7fcbc995ea8b2766213cc517d6dad16d17f29a93220ce0ddb0a65d3d474dbc39cba5bcb3d4fcf9fef1910607d64c04511df277f522ab2475fbb2ba0720711a903dbecfa0429bf11e6e90cbb0f13d4ee050c52c87365e0216b4096186fc604fb563fa59f1263ee91d5695e407fdffe82ca1558f7876a93f3a218dd9ba6901fdea93d6be498f0b0e1874331115e31aa6fad4d87227362a9ec3e1c1be11cdb2309697bbc0c692eeadfa9161669b8aec24564487dc74f8e7d17e6a133b5dbe576838697de73f856197203ef1a3a54f7edb0dbd60f9d5274db6b5c1477169b77f0d817ed731a20db4b9e5b83d2786bffefab084a31c4afda168156612f281da0be688e5bdb1f3176ed78bc62343a7665abad6573482449e68b3acfe820993d77df5785384d51aaa0612dab5ddbf2a9bf550736ad422933878861011961023ffd608f61022d61021661036e635af7465b73ffffffffffffffffffffffffffffffffffffffff63792c6916f16ed70693587df6ccfae5218d01559bac60156102006101adfd\",\n        \"nonce\": \"0x15\",\n        \"balance\": \"0x5b1936a53e6e440f\",\n        \"storage\": {}\n      },\n      \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n        \"code\": \":raw 0x610326610100f379c940b5f2046740058558468f238b85db7f6bbe3f3d51e92a3e3268b7f7c4147541c695f376705288410b81b217e80726fb9e4c5c7b4c49eca0c1b6b97e117c16c26c9816459f38396ffc36da48d65defdc7d055cbc846c07e81cfab0fb607c6cbc968774d4de7df8e3236f581e688cc2081a96b1cad9e0609b70f4fddda49ae97714e7d325ceab23acd5f46ba15b5210474116121921a04f68f3f933b9ad91b735bf71bfe41da706499c5d47b6de1fe398cb91fdf66481cbb8661d71d457cf3cef75dabf5ea496d7012f4c56b9fe70e6c4204720e3ce66874cead08499d57a547b97d37744ce205e051f296fb116fc9e5f3c280919aff3c93c5d5cefff9a6102d86103ca6364b68c8ef07d\",\n        \"nonce\": \"0x1d\",\n        \"balance\": \"0x054c814f188394c8\",\n        \"storage\": {}\n      }\n    },\n    \"env\": {\n      \"currentNumber\": \"0x01\",\n      \"currentDifficulty\": \"0x20000\",\n      \"currentTimestamp\": \"0x03e8\",\n      \"currentGasLimit\": \"0x14a0583da74c9c\",\n      \"currentCoinbase\": \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\"\n    },\n    \"transaction\": {\n      \"secretKey\": \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n      \"gasLimit\": [\n        \"0x2857ab\"\n      ],\n      \"nonce\": \"0x00\",\n      \"value\": [\n        \"0x254ffcc0\"\n      ],\n      \"to\": \"<contract:target:0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n      \"gasPrice\": \"0x0a\",\n      \"data\": [\n        \":raw 0x66a9b45d44c78cfe774333fe0c49418dd61f183d41132f5340e48ababb825a26eb0a75c0ca693a8b465121200fd21a7b4c365a65a3255278f672705e5ca0f6146fccd36a6e5b9decfb6e5096887651e829313a2cc9d5b518e25861c31ba04ed3f5a3310bd966993aa534b00785778d9545342410ce8c156d780a8cb4a65efed30aa9d6bd63c4778a134c9cb0c677ecda48aacef0c191de37e3cfdae69153747c2406995ea81bbae6a201663b9b37a6a9f597ae4f40e44e74ea92616bc2956328ced0d77412c265c2925470320e5f285d15a08a263b0a444516817c266bd51fe726677144df3c080d07dd47c4eb9e44a87541ddc5a697163260a06921033eb3542b375cd0d073dfb48f6acde07152794b5539563efff1afed3b0a6b15166526175e7184b83cc2de68df61ec5d65d1eee66ea376fcb84f2c73335db9fba49e3d40638cd7f462f1d3b315f17b8dc1f692a68b2431b166ee71a4ba159dd322b9fa5f3237dfb85d2594056102f261025b61021d6101d3631fe4bdc373ffffffffffffffffffffffffffffffffffffffff631ea09dc6f263edd580947c8177bd72d2244f7652371e3428d28bc6356c553b18d00e6b3cf60206c273abbd7763059f61940b0d19fde33f7b5a96080d25791e9ae89c718dd41c3f57b0c304fbb83978de28d23499bdd19c0472301ff527ccc9f7ed74a8dbd906b468d448fba77f38f193e3047b02e40beb08b4f11707681ef103ec1b00585a85f27227a179f15e7e97a359268b06ff34bcee23a869974fbca6e201cb16179743ac0f8c9f8603d570e26a5aad5217ebfff3140716923723efaa79b6cd87fbc9fd408d4ac5a048e43fb4e7a2b94053bf1fb7257562977725cde415738a99e1a7690cbe409744b737367dedc82e3063516c5bc57e35fcb2038306d9a3a6e46103515279ddcb9d30879e470f5dd81e1148184f62bd61ae9708ff61cee25c63694a73437a42be5043b1fde117ba383682ba0d91e0db8b29c882a044d0c8bb49056a25a66d8480df1b1ccc2564791df94f43d5802aa8f44bf70a6817ed784e5725bdc7718a54d6a567234286085240ba847d575dac25d7fc32c59999a9d38fee0d25e7c23986009c5bb022f7d28a2cab6e01a4bb37dd42ea42d5141d55f5730c7bd82bf08bff3928aea77e7153bcc4a3a53996be367ec98cb6fe85797e771d020284d4d302c8b4ebe6b28a9c64a9ae2ad6894716732f6b245e7fdc5243f79a0ae9b8d874900caa1c5796a2854ceddb00a82b4ec01b513ed61c72ce89400a06fe90a109bad6d5e028143e7552937a0136347eb71a49db0072c87bd437b9cd7b2f7e6e9f3a85875c9ede6036650f9d06d4c2e8692caf2e87043c0bf5a2359c66431acbb35dcbfc6a7b86074b99c9e6f959d8417784e5e40c854c280218c0cd4e98dc3bc44f7d651d7191ead455\"\n      ]\n    }\n  }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRevertTest/RevertDepth2Filler.json",
    "content": "{\n    \"RevertDepth2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x00\",\n\t\t                    \"0x01\" : \"0x00\",\n\t\t                    \"0x02\" : \"0x00\"\n\t\t                }\n\t\t            },\n\t\t            \"<contract:0xb000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x00\",\n\t\t                    \"0x01\" : \"0x00\"\n\t\t                }\n\t\t            },\n\t\t            \"<contract:0xc000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x00\"\n\t\t                }\n\t\t            },\n\t\t            \"<contract:0xd000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x00\",\n\t\t                    \"0x01\" : \"0x00\",\n\t\t                    \"0x02\" : \"0x00\"\n\t\t                }\n\t\t            },\n\t\t            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n    \t\t\t        \"nonce\" : \"1\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] (ADD 1 (SLOAD 0)) [[1]] (CALL 150000 <contract:0xb000000000000000000000000000000000000000> 0 0 0 0 0) [[2]] (CALL 150000 <contract:0xd000000000000000000000000000000000000000> 0 0 0 0 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0xb000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] (ADD 1 (SLOAD 0)) [[1]] (CALL 50000 <contract:0xc000000000000000000000000000000000000000> 0 0 0 0 0)}\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0xc000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] (ADD 1 (SLOAD 0)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0xd000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] (ADD 1 (SLOAD 0)) [[1]] (CALL 50000 <contract:0xc000000000000000000000000000000000000000> 0 0 0 0 0) [[2]] (GAS)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n\t    \"// data\" : \"In transaction T to A, A call B call C, then A call D calls C, D fails after calling C.\",\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"170685\", \"136685\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xa000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRevertTest/RevertDepthCreateAddressCollisionFiller.json",
    "content": "{\n    \"RevertDepthCreateAddressCollision\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t\t\t    \"<contract:target:0x3e180b1862f9d158abb5e519a6d8605540c23682>\" : {\n                        \"code\" : \"0x60016000556000600060006000600073<contract:0xb000000000000000000000000000000000000000>600035f1600155600c60045500\",\n                        \"nonce\" : \"54\",\n                        \"storage\" : {\n                        }\n\t\t\t\t    },\n\t\t\t\t    \"<contract:0xb000000000000000000000000000000000000000>\" : {\n\t\t\t\t        \"storage\" : {\n\t\t\t\t        }\n\t\t\t\t    }\n                }\n            },\n\t    \t{\n                \"//comment\" : \"OOG in subcall\",\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x3e180b1862f9d158abb5e519a6d8605540c23682>\" : {\n                        \"code\" : \"0x60016000556000600060006000600073<contract:0xb000000000000000000000000000000000000000>600035f1600155600c60045500\",\n                        \"nonce\" : \"54\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x04\" : \"0x0c\"\n                        }\n\t\t    },\n\t\t    \"<contract:0xb000000000000000000000000000000000000000>\" : {\n\t\t        \"storage\" : {\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n                \"//comment\" : \"OOG after subcall\",\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x3e180b1862f9d158abb5e519a6d8605540c23682>\" : {\n                        \"balance\" : \"0x05\",\n                        \"code\" : \"0x60016000556000600060006000600073<contract:0xb000000000000000000000000000000000000000>600035f1600155600c60045500\",\n                        \"nonce\" : \"54\",\n                        \"storage\" : {\n                        }\n\t\t    },\n\t\t    \"<contract:0xb000000000000000000000000000000000000000>\" : {\n\t\t        \"storage\" : {\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n                \"//comment\" : \"double OOG\",\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x3e180b1862f9d158abb5e519a6d8605540c23682>\" : {\n                        \"code\" : \"0x60016000556000600060006000600073<contract:0xb000000000000000000000000000000000000000>600035f1600155600c60045500\",\n                        \"nonce\" : \"54\",\n                        \"storage\" : {\n                        }\n\t\t    },\n\t\t    \"<contract:0xb000000000000000000000000000000000000000>\" : {\n\t\t        \"storage\" : {\n\t\t        }\n\t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:target:0x3e180b1862f9d158abb5e519a6d8605540c23682>\" : {\n                \"balance\" : \"5\",\n                \"code\" : \"{ [[0]] 1 [[1]] (CALL (CALLDATALOAD 0) <contract:0xb000000000000000000000000000000000000000> 0 0 0 0 0) [[4]] 12 }\",\n                \"nonce\" : \"54\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0xb000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[2]] 8 (CREATE 0 0 0) [[3]] 12}\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n\t    \"//0 data\" : \"Call with value to address A, then another call X, in the call X CREATE of account A, OOG -> revert call X.\",\n\t    \"//1 data\" : \"d0g0 - double OOG,  d0g1 - OOG inside subcall, d1g0 - OOG after subcall, d1g1 - no OOG\",\n            \"data\" : [\n\t\t\":raw 0x000000000000000000000000000000000000000000000000000000000000ea60\", \n\t\t\":raw 0x000000000000000000000000000000000000000000000000000000000001ea60\" \n            ],\n            \"gasLimit\" : [\n                \"110000\", \"160000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x3e180b1862f9d158abb5e519a6d8605540c23682>\",\n            \"value\" : [\n                \"1\", \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRevertTest/RevertDepthCreateOOGFiller.json",
    "content": "{\n    \"RevertDepthCreateOOG\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"//comment\" : \"NO OOG\",\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"3e180b1862f9d158abb5e519a6d8605540c23682\" : {\n                        \"nonce\" : \"1\"\n                     },\n                    \"a000000000000000000000000000000000000000\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x04\" : \"0x0c\"\n                        }\n\t        \t    },\n\t        \t    \"b000000000000000000000000000000000000000\" : {\n\t        \t        \"storage\" : {\n\t            \t\t    \"0x02\" : \"0x08\",\n                            \"0x03\" : \"0x0c\"\n\t        \t        }\n\t        \t    }\n                }\n            },\n\t        {\n                \"//comment\" : \"OOG in subcall\",\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"3e180b1862f9d158abb5e519a6d8605540c23682\" : {\n                        \"shouldnotexist\" : \"1\"\n                    },\n                    \"a000000000000000000000000000000000000000\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x04\" : \"0x0c\"\n                        }\n\t        \t    },\n\t        \t    \"b000000000000000000000000000000000000000\" : {\n\t        \t        \"storage\" : {\n\t        \t        }\n\t        \t    }\n                }\n            },\n\t        {\n                \"//comment\" : \"OOG after subcall / double OOG\",\n                \"indexes\" : {\n                    \"data\" : [1, 0],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t        \t    \"3e180b1862f9d158abb5e519a6d8605540c23682\" : {\n\t            \t\t\"shouldnotexist\" : \"1\"\n\t        \t    },\n\t        \t    \"a000000000000000000000000000000000000000\" : {\n\t        \t        \"storage\" : {\n                        }\n\t        \t    },\n\t        \t    \"b000000000000000000000000000000000000000\" : {\n\t        \t        \"storage\" : {\n\t        \t        }\n\t        \t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"a000000000000000000000000000000000000000\" : {\n                \"balance\" : \"5\",\n                \"code\" : \"{ [[0]] 1 [[1]] (CALL (CALLDATALOAD 0) 0xb000000000000000000000000000000000000000 0 0 0 0 0) [[4]] 12 }\",\n                \"nonce\" : \"54\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[2]] 8 (CREATE 0 0 0) [[3]] 12}\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n    \t    \"//data\" : \"Call with value to address A, then another call X, in the call X CREATE of account A, OOG -> revert call X.\",\n\t        \"// data\" : \"d0g0 - double OOG,  d0g1 - OOG inside subcall, d1g0 - OOG after subcall, d1g1 - no OOG\",\n            \"data\" : [\n\t\t        \":raw 0x000000000000000000000000000000000000000000000000000000000000ea60\", \n\t\t        \":raw 0x000000000000000000000000000000000000000000000000000000000001ea60\" \n            ],\n            \"gasLimit\" : [\n                \"110000\", \"180000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"a000000000000000000000000000000000000000\",\n            \"value\" : [\n                \"1\", \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRevertTest/RevertInCallCodeFiller.json",
    "content": "{\n    \"RevertInCallCode\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n\t\t\t\t            \"0x01\" : \"0x20\",\n\t\t\t\t            \"0x02\" : \"0x2232\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000\",\n                \"code\" : \"{ [[ 0 ]] (CALLCODE 50000 <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 1000 0 64 0 64 ) [[ 1 ]] (RETURNDATASIZE) (RETURNDATACOPY 64 0 32) [[ 2 ]] (MLOAD 64) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (MSTORE 0 0x2232) (REVERT 0 32) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"100000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"105044\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRevertTest/RevertInCreateInInit_ParisFiller.json",
    "content": "{\n    \"RevertInCreateInInit_Paris\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x0a00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                  \"<eoa:0x6295ee1b4f6dd65047762f924ecd367c17eabf8f>\" : {\n                     \"balance\" : \"10\",\n                     \"storage\" : {\n                       \"0x00\" : \"0x01\"\n                     }\n                  }\n               }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:0x6295ee1b4f6dd65047762f924ecd367c17eabf8f>\" : {\n                \"balance\" : \"10\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                  \"0x00\" : \"0x01\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"{ (seq (address) (CREATE 0 0 (lll (seq (mstore 0 0x112233) (revert 0 32)) 0)) (SSTORE 0 (RETURNDATASIZE)) (returndatacopy 0 0 32) (sstore 1 (mload 0)) (STOP) ) }\"\n            ],\n            \"gasLimit\" : [\n                \"200000\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRevertTest/RevertInDelegateCallFiller.json",
    "content": "{\n    \"RevertInDelegateCall\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x01\": \"0x20\",\n                            \"0x02\": \"0x0a\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000\",\n                \"code\" : \"{ [[ 0 ]] (DELEGATECALL 50000 <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 0 64 0 64 ) [[ 1 ]] (RETURNDATASIZE) (RETURNDATACOPY 63 0 32) [[2]](MLOAD 63)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (MSTORE 32 10) (REVERT 32 32) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"100000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"105044\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRevertTest/RevertInStaticCallFiller.json",
    "content": "{\n    \"RevertInStaticCall\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000\",\n                \"code\" : \"{ [[ 0 ]] (STATICCALL 50000 <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 0 64 0 64 )}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (REVERT 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"100000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"105044\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRevertTest/RevertOnEmptyStackFiller.json",
    "content": "{\n    \"RevertOnEmptyStack\" : {\n        \"_info\" : {\n            \"comment\" : \"Calling a runtime code that contains only a single `REVERT` should consume all gas.\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"balance\" : \"99999980000000\",\n\t\t\t            \"nonce\" : \"1\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"100000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t        \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"\",\n                \"code\" : \":raw 0xfd\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [ \"\" ],\n            \"gasLimit\" : [\n                \"2000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xa000000000000000000000000000000000000000>\",\n            \"value\" : [ \"0\" ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRevertTest/RevertOpcodeCallsFiller.json",
    "content": "{\n    \"RevertOpcodeCalls\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t        \"storage\" : {\n                        }\n\t\t    },\n\t\t    \"<contract:target:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x0a\" : \"0x01\"\n                        }\n                    },\n\t\t    \"<contract:0xb0005374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t\t\"nonce\" : \"0\",\n\t\t\t\"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x02\" : \"0x0e\"\n                        }\n\t\t     }\n                }\n            },\n\t    {\n                \"//comment\" : \"OOG\",\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t        \"storage\" : {\n                        }\n\t\t    },\n\t\t    \"<contract:0xb0005374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t\t\"storage\" : {\n                        }\n\t\t     }\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t        \"storage\" : {\n                        }\n\t\t    },\n\t\t    \"<contract:target:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x0a\" : \"0x01\"\n                        }\n                    },\n\t\t    \"<contract:0xb1005374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t\t\"nonce\" : \"0\",\n\t\t\t\"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x02\" : \"0x0e\"\n                        }\n\t\t     }\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t        \"storage\" : {\n                        }\n\t\t    },\n\t\t    \"<contract:0xb1005374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t\t\"storage\" : {\n                        }\n\t\t     }\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : 2,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t        \"storage\" : {\n                        }\n\t\t    },\n\t\t    \"<contract:target:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x0a\" : \"0x01\"\n                        }\n                    },\n\t\t    \"<contract:0xb2005374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t\t\"nonce\" : \"0\",\n\t\t\t\"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x02\" : \"0x0e\"\n                        }\n\t\t     }\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : 2,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t        \"storage\" : {\n                        }\n\t\t    },\n\t\t    \"<contract:0xb2005374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t\t\"storage\" : {\n                        }\n\t\t     }\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : 3,\n                    \"gas\" : [0],\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t        \"storage\" : {\n                        }\n\t\t    },\n\t\t    \"<contract:target:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x0a\" : \"0x01\"\n                        }\n                    },\n\t\t    \"<contract:0xb3005374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t\t\"nonce\" : \"0\",\n\t\t\t\"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x02\" : \"0x0e\"\n                        }\n\t\t     },\n\t\t    \"<contract:0xb3305374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t\t\"nonce\" : \"0\",\n\t\t\t\"storage\" : {\n                            \"0x04\" : \"0x00\",\n                            \"0x05\" : \"0x0e\"\n                        }\n\t\t     }\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : 3,\n                    \"gas\" : [1],\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t        \"storage\" : {\n                        }\n\t\t    },\n\t\t    \"<contract:target:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x0a\" : \"0x00\"\n                        }\n                    },\n\t\t    \"<contract:0xb3005374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t\t\"nonce\" : \"0\",\n\t\t\t\"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n\t\t     },\n\t\t    \"<contract:0xb3305374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t\t\"nonce\" : \"0\",\n\t\t\t\"storage\" : {\n                            \"0x04\" : \"0x00\",\n                            \"0x05\" : \"0x00\"\n                        }\n\t\t     }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t     \"<contract:target:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"{  [[10]] (CALL 260000 (CALLDATALOAD 0) 0 0 0 0 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0xb0005374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"{ [[0]] (CALL 50000 <contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) [[2]] 14 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0xb1005374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"{ [[0]] (CALLCODE 50000 <contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) [[2]] 14 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0xb2005374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"{ [[0]] (DELEGATECALL 50000 <contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0) [[2]] 14 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0xb3005374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"{ [[0]] (CALL 100000 <contract:0xb3305374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) [[2]] 14 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0xb3305374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"{ [[4]] (CALL 50000 <contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) [[5]] 14 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"{ [[1]] 12 (REVERT 0 1) [[3]] 13 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\t\t\":raw 0x000000000000000000000000<contract:0xb0005374fce5edbc8e2a8697c15331677e6ebf0b>\",\n\t\t\t\t\":raw 0x000000000000000000000000<contract:0xb1005374fce5edbc8e2a8697c15331677e6ebf0b>\",\n\t\t\t\t\":raw 0x000000000000000000000000<contract:0xb2005374fce5edbc8e2a8697c15331677e6ebf0b>\",\n\t\t\t\t\":raw 0x000000000000000000000000<contract:0xb3005374fce5edbc8e2a8697c15331677e6ebf0b>\"\n            ],\n            \"gasLimit\" : [\n                \"460000\", \"83622\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRevertTest/RevertOpcodeCreateFiller.json",
    "content": "{\n    \"RevertOpcodeCreate\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"f1ecf98489fa9ed60a664fc4998db699cfa39d40\" : {\n\t\t        \"shouldnotexist\" : \"1\"\n\t\t    },\n\t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t\"nonce\" : \"1\",\n\t\t\t\"storage\" : {\n\t\t\t    \"0x00\" : \"0x0c\",\n\t\t\t    \"0x01\" : \"0x00\"\n                \t}\n\t\t     }\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"f1ecf98489fa9ed60a664fc4998db699cfa39d40\" : {\n\t\t        \"shouldnotexist\" : \"1\"\n\t\t    },\n\t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t\"nonce\" : \"0\"\n\t\t     }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1\",\n        \t\t\"// code\" : \"{ [[0]] 1 (REVERT 0 1) [[1]] 12 }\",\n                \"code\" : \"{ (MSTORE 0 0x600160005560016000fd6011600155 ) [[1]](CREATE 1 17 15) [[0]] 12 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n        \t\t\":raw 0x600160005560016000fe6011600155\"\n            ],\n            \"gasLimit\" : [\n                \"460000\", \"70000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRevertTest/RevertOpcodeDirectCallFiller.json",
    "content": "{\n    \"RevertOpcodeDirectCall\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t\t\t\t\"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t\t\t\t\t\"storage\" : {\n\t\t                }\n\t\t\t\t\t},\n\t\t\t\t\t\"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t\t\t\t\t\"nonce\" : \"0\",\n\t\t\t\t\t\t\"storage\" : {\n\t\t                    \"0x00\" : \"0x00\",\n\t\t                    \"0x02\" : \"0x0e\"\n\t\t                }\n\t\t\t\t\t }\n\t\t        }\n\t    },\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t\t\t    \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t\t\t        \"storage\" : {\n                        }\n\t\t\t\t    },\n\t\t\t\t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t\t\t\t\t\"storage\" : {\n                        }\n\t\t\t\t     }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t     \"<contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"{  [[10]] (CALL 60000 (CALLDATALOAD 0) 0 0 0 0 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1\",\n\t\t\t\t\"// code\" : \"!!! STRANGE:   CALL works, but if called from 094...  it won't work. even if gas is enough. seems to be OOG.\",\n                \"code\" : \"{ [[0]] (CALL 50000 <contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) [[2]] 14 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"{ [[1]] 12 (REVERT 0 1) [[3]] 13 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\t\t\":raw 0x000000000000000000000000<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\"\n            ],\n            \"gasLimit\" : [\n                \"460000\", \"62912\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRevertTest/RevertOpcodeFiller.json",
    "content": "{\n    \"RevertOpcode\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n            \t\t\t\"nonce\" : \"1\"\n        \t\t     },\n        \t\t    \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n            \t\t\t\"balance\" : \"0\",\n                        \"storage\" : {\n                        }\n        \t\t    }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n            \t\t\t\"nonce\" : \"1\"\n        \t\t     },\n        \t\t    \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n            \t\t\t\"balance\" : \"0\",\n                        \"storage\" : {\n                        }\n        \t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n        \t\t\"// code\" : \"{ [[0]] 1 (REVERT 0 1) [[1]] 11 }\",\n\t\t        \"code\" : \":raw 0x600160005560016000fd6011600155\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"800000\", \"30000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xa000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\", \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRevertTest/RevertOpcodeInCallsOnNonEmptyReturnDataFiller.json",
    "content": "{\n    \"RevertOpcodeInCallsOnNonEmptyReturnData\" : {\n        \"_info\" : {\n            \"comment\" : \"This test checks that the returndata buffer is changed when a subcall REVERTs.  In each test case, a non-empty returndata buffer is set up, and then calls into a contract that REVERTs.\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t        \"storage\" : {\n                        }\n\t\t    },\n\t\t    \"<contract:target:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n\t\t\t\t\t\t\t\"0x0a\" : \"0x01\"\n                        }\n                    },\n\t\t    \"<contract:0xb0005374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t\t\"nonce\" : \"0\",\n\t\t\t\"storage\" : {\n                            \"0x02\" : \"0x01\"\n                        }\n\t\t     }\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t        \"storage\" : {\n                        }\n\t\t    },\n\t\t    \"<contract:0xb0005374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t\t\"storage\" : {\n                        }\n\t\t     }\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t        \"storage\" : {\n                        }\n\t\t    },\n\t\t    \"<contract:target:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n\t\t\t    \"0x0a\" : \"0x01\"\n                        }\n                    },\n\t\t    \"<contract:0xb1005374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t\t\"nonce\" : \"0\",\n\t\t\t\"storage\" : {\n                            \"0x02\" : \"0x01\"\n                        }\n\t\t     }\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t        \"storage\" : {\n                        }\n\t\t    },\n\t\t    \"<contract:0xb1005374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t\t\"storage\" : {\n                        }\n\t\t     }\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : 2,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t        \"storage\" : {\n                        }\n\t\t    },\n\t\t    \"<contract:target:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x0a\" : \"0x01\"\n                        }\n                    },\n\t\t    \"<contract:0xb2005374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t\t\"nonce\" : \"0\",\n\t\t\t\"storage\" : {\n                            \"0x02\" : \"0x01\"\n                        }\n\t\t     }\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : 2,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t        \"storage\" : {\n                        }\n\t\t    },\n\t\t    \"<contract:0xb2005374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t\t\"storage\" : {\n                        }\n\t\t     }\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : 3,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t        \"storage\" : {\n                        }\n\t\t    },\n\t\t    \"<contract:target:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x0a\" : \"0x01\"\n                        }\n                    },\n\t\t    \"<contract:0xb3005374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t\t\"nonce\" : \"0\",\n\t\t\t\"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n\t\t     },\n\t\t    \"<contract:0xb3305374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t\t\"nonce\" : \"0\",\n\t\t\t\"storage\" : {\n                            \"0x05\" : \"0x01\"\n                        }\n\t\t     }\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : 3,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t        \"storage\" : {\n                        }\n\t\t    },\n\t\t    \"<contract:target:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x0a\" : \"0xff\"\n                        }\n                    },\n\t\t    \"<contract:0xb3005374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t\t\"nonce\" : \"0\",\n\t\t\t\"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n\t\t     },\n\t\t    \"<contract:0xb3305374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t\t\"nonce\" : \"0\",\n\t\t\t\"storage\" : {\n                            \"0x05\" : \"0x00\"\n                        }\n\t\t     }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t     \"<contract:target:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"{ (CALL 0 <contract:0xffff5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) [[10]] (CALL 260000 (CALLDATALOAD 0) 0 0 0 0 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n\t\t\t\t\t\"0x0a\" : \"0xff\"\n                }\n            },\n\t    \"<contract:0xb0005374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"{ (CALL 0 <contract:0xffff5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) [[0]] (CALL 50000 <contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) [[2]] (RETURNDATASIZE) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0xb1005374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"{ (CALL 0 <contract:0xffff5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) [[0]] (CALLCODE 50000 <contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) [[2]] (RETURNDATASIZE) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0xb2005374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"{ (CALL 0 <contract:0xffff5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) [[0]] (DELEGATECALL 50000 <contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0) [[2]] (RETURNDATASIZE) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0xb3005374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"{ (CALL 0 <contract:0xffff5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) [[0]] (CALL 100000 <contract:0xb3305374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) [[2]] (RETURNDATASIZE) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0xb3305374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"{ (CALL 0 <contract:0xffff5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) [[4]] (CALL 50000 <contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) [[5]] (RETURNDATASIZE) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n            \"balance\" : \"1\",\n            \"//comment\" : \"Recording it's called at [[1]], and reverting. The store into [[3]] should not be reached.\",\n            \"code\" : \"{ [[1]] 12 (REVERT 0 1) [[3]] 13 }\",\n            \"nonce\" : \"0\",\n            \"storage\" : {\n            }\n        },\n\t    \"<contract:0xffff5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1\",\n                \"// comment\" : \"This should return 12 as a return value.  This sets the returndata buffer of the caller to be 64-byte long.\",\n                \"code\" : \"{ [1] 12 (RETURN 0 64) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\":raw 0x000000000000000000000000<contract:0xb0005374fce5edbc8e2a8697c15331677e6ebf0b>\",\n\t\t\":raw 0x000000000000000000000000<contract:0xb1005374fce5edbc8e2a8697c15331677e6ebf0b>\",\n\t\t\":raw 0x000000000000000000000000<contract:0xb2005374fce5edbc8e2a8697c15331677e6ebf0b>\",\n\t\t\":raw 0x000000000000000000000000<contract:0xb3005374fce5edbc8e2a8697c15331677e6ebf0b>\"\n            ],\n            \"gasLimit\" : [\n                \"860000\", \"28000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRevertTest/RevertOpcodeInCreateReturnsFiller.json",
    "content": "{\n    \"RevertOpcodeInCreateReturns\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x0a00000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n        \"expect\" : [\n            {   \"indexes\" : {\n                   \"data\" : -1,\n                   \"gas\" : -1,\n                   \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x20\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"0x00\",\n                \"code\" : \"{ (seq (CREATE 0 0 (lll (seq (mstore 0 0x112233) (revert 0 32)) 0)) (SSTORE 0 (RETURNDATASIZE)) (STOP) )}\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRevertTest/RevertOpcodeInInitFiller.json",
    "content": "{\n    \"RevertOpcodeInInit\" : {\n        \"_info\" : {\n            \"comment\" : \"TODO revertOpcodeInInit followed by OOG\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t        \"shouldnotexist\" : \"1\"\n\t\t    },\n\t\t    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t\"nonce\" : \"1\"\n\t\t     }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n    \t    \"// data\" : \"{ [[0]] 1 (REVERT 0 1) [[1]] 12 }\",\n            \"data\" : [\n                \":raw 0x600160005560016000fd6011600155\"\n            ],\n            \"gasLimit\" : [\n                \"160000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"0\", \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRevertTest/RevertOpcodeMultipleSubCallsFiller.json",
    "content": "{\n    \"RevertOpcodeMultipleSubCalls\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \t\"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                            \"nonce\" : \"0x01\"\n                        },\n\t\t\t\"<contract:0xa000000000000000000000000000000000000000>\" : {\n                            \"nonce\" : \"0x00\",\n                            \"storage\" : {\n                                \"0x04\" : \"0x0c\",\n                                \"0x05\" : \"0x0c\",\n                                \"0x0a\" : \"0x00\",\n                                \"0x0b\" : \"0x00\",\n                                \"0x0c\" : \"0x00\"\n                            }\n                        },\n\t\t\t\"<contract:0xb000000000000000000000000000000000000000>\" : {\n\t\t\t\t\"storage\" : {\n\t\t\t\t    \"0x01\" : \"0x00\",\n\t\t\t\t    \"0x02\" : \"0x00\",\n\t\t\t\t    \"0x03\" : \"0x00\"\n\t\t\t\t}\n\t\t    \t},\n\t\t\t\"<contract:0xc000000000000000000000000000000000000000>\" : {\n\t\t\t\t\"storage\" : {\n\t\t\t\t    \"0x01\" : \"0x00\",\n\t\t\t\t    \"0x02\" : \"0x00\",\n\t\t\t\t    \"0x03\" : \"0x00\"\n\t\t\t\t}\n\t\t    \t},\n\t\t\t\"<contract:0xd000000000000000000000000000000000000000>\" : {\n\t\t\t\t\"storage\" : {\n\t\t\t\t    \"0x01\" : \"0x00\",\n\t\t\t\t    \"0x02\" : \"0x00\",\n\t\t\t\t    \"0x03\" : \"0x00\"\n\t\t\t\t}\n\t\t    \t}\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \t\"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                            \"nonce\" : \"0x01\"\n                        },\n\t\t\t\"<contract:0xa100000000000000000000000000000000000000>\" : {\n                            \"nonce\" : \"0x00\",\n                            \"storage\" : {\n                                \"0x04\" : \"0x0c\",\n                                \"0x05\" : \"0x0c\",\n                                \"0x0a\" : \"0x00\",\n                                \"0x0b\" : \"0x00\",\n                                \"0x0c\" : \"0x00\"\n                            }\n                        },\n\t\t\t\"<contract:0xb000000000000000000000000000000000000000>\" : {\n\t\t\t\t\"storage\" : {\n\t\t\t\t    \"0x01\" : \"0x00\",\n\t\t\t\t    \"0x02\" : \"0x00\",\n\t\t\t\t    \"0x03\" : \"0x00\"\n\t\t\t\t}\n\t\t    \t},\n\t\t\t\"<contract:0xc000000000000000000000000000000000000000>\" : {\n\t\t\t\t\"storage\" : {\n\t\t\t\t    \"0x01\" : \"0x00\",\n\t\t\t\t    \"0x02\" : \"0x00\",\n\t\t\t\t    \"0x03\" : \"0x00\"\n\t\t\t\t}\n\t\t    \t},\n\t\t\t\"<contract:0xd000000000000000000000000000000000000000>\" : {\n\t\t\t\t\"storage\" : {\n\t\t\t\t    \"0x01\" : \"0x00\",\n\t\t\t\t    \"0x02\" : \"0x00\",\n\t\t\t\t    \"0x03\" : \"0x00\"\n\t\t\t\t}\n\t\t    \t}\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : 2,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \t\"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                            \"nonce\" : \"0x01\"\n                        },\n\t\t\t\"<contract:0xa200000000000000000000000000000000000000>\" : {\n                            \"nonce\" : \"0x00\",\n                            \"storage\" : {\n                                \"0x04\" : \"0x0c\",\n                                \"0x05\" : \"0x0c\",\n                                \"0x0a\" : \"0x00\",\n                                \"0x0b\" : \"0x00\",\n                                \"0x0c\" : \"0x00\"\n                            }\n                        },\n\t\t\t\"<contract:0xb000000000000000000000000000000000000000>\" : {\n\t\t\t\t\"storage\" : {\n\t\t\t\t    \"0x01\" : \"0x00\",\n\t\t\t\t    \"0x02\" : \"0x00\",\n\t\t\t\t    \"0x03\" : \"0x00\"\n\t\t\t\t}\n\t\t    \t},\n\t\t\t\"<contract:0xc000000000000000000000000000000000000000>\" : {\n\t\t\t\t\"storage\" : {\n\t\t\t\t    \"0x01\" : \"0x00\",\n\t\t\t\t    \"0x02\" : \"0x00\",\n\t\t\t\t    \"0x03\" : \"0x00\"\n\t\t\t\t}\n\t\t    \t},\n\t\t\t\"<contract:0xd000000000000000000000000000000000000000>\" : {\n\t\t\t\t\"storage\" : {\n\t\t\t\t    \"0x01\" : \"0x00\",\n\t\t\t\t    \"0x02\" : \"0x00\",\n\t\t\t\t    \"0x03\" : \"0x00\"\n\t\t\t\t}\n\t\t    \t}\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : 3,\n                    \"gas\" : [0,2],\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \t\"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                            \"nonce\" : \"0x01\"\n                        },\n\t\t\t\"<contract:0xa300000000000000000000000000000000000000>\" : {\n                            \"nonce\" : \"0x00\",\n                            \"storage\" : {\n                                \"0x04\" : \"0x0c\",\n                                \"0x05\" : \"0x0c\",\n                                \"0x0a\" : \"0x00\",\n                                \"0x0b\" : \"0x00\",\n                                \"0x0c\" : \"0x00\"\n                            }\n                        },\n\t\t\t\"<contract:0xb000000000000000000000000000000000000000>\" : {\n\t\t\t\t\"storage\" : {\n\t\t\t\t    \"0x01\" : \"0x00\",\n\t\t\t\t    \"0x02\" : \"0x00\",\n\t\t\t\t    \"0x03\" : \"0x00\"\n\t\t\t\t}\n\t\t    \t},\n\t\t\t\"<contract:0xc000000000000000000000000000000000000000>\" : {\n\t\t\t\t\"storage\" : {\n\t\t\t\t    \"0x01\" : \"0x00\",\n\t\t\t\t    \"0x02\" : \"0x00\",\n\t\t\t\t    \"0x03\" : \"0x00\"\n\t\t\t\t}\n\t\t    \t},\n\t\t\t\"<contract:0xd000000000000000000000000000000000000000>\" : {\n\t\t\t\t\"storage\" : {\n\t\t\t\t    \"0x01\" : \"0x00\",\n\t\t\t\t    \"0x02\" : \"0x00\",\n\t\t\t\t    \"0x03\" : \"0x00\"\n\t\t\t\t}\n\t\t    \t}\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : [1,2],\n                    \"gas\" : 2,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \t\"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                            \"nonce\" : \"0x01\"\n                        },\n\t\t\t\"<contract:0xa300000000000000000000000000000000000000>\" : {\n                            \"nonce\" : \"0x00\",\n                            \"storage\" : {\n                                \"0x04\" : \"0x00\",\n                                \"0x05\" : \"0x00\",\n                                \"0x0a\" : \"0x00\",\n                                \"0x0b\" : \"0x00\",\n                                \"0x0c\" : \"0x00\"\n                            }\n                        },\n\t\t\t\"<contract:0xb000000000000000000000000000000000000000>\" : {\n\t\t\t\t\"storage\" : {\n\t\t\t\t    \"0x01\" : \"0x00\",\n\t\t\t\t    \"0x02\" : \"0x00\",\n\t\t\t\t    \"0x03\" : \"0x00\"\n\t\t\t\t}\n\t\t    \t},\n\t\t\t\"<contract:0xc000000000000000000000000000000000000000>\" : {\n\t\t\t\t\"storage\" : {\n\t\t\t\t    \"0x01\" : \"0x00\",\n\t\t\t\t    \"0x02\" : \"0x00\",\n\t\t\t\t    \"0x03\" : \"0x00\"\n\t\t\t\t}\n\t\t    \t},\n\t\t\t\"<contract:0xd000000000000000000000000000000000000000>\" : {\n\t\t\t\t\"storage\" : {\n\t\t\t\t    \"0x01\" : \"0x00\",\n\t\t\t\t    \"0x02\" : \"0x00\",\n\t\t\t\t    \"0x03\" : \"0x00\"\n\t\t\t\t}\n\t\t    \t}\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : [2],\n                    \"value\" : [1,0]\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \t\"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                            \"nonce\" : \"0x01\"\n                        },\n\t\t\t\"<contract:0xa000000000000000000000000000000000000000>\" : {\n                            \"nonce\" : \"0x00\",\n                            \"storage\" : {\n                                \"0x04\" : \"0x0c\",\n                                \"0x05\" : \"0x0c\",\n                                \"0x0a\" : \"0x00\",\n                                \"0x0b\" : \"0x00\",\n                                \"0x0c\" : \"0x00\"\n                            }\n                        },\n\t\t\t\"<contract:0xa100000000000000000000000000000000000000>\" : {\n                            \"nonce\" : \"0x00\",\n                            \"storage\" : {\n                            }\n                        },\n\t\t\t\"<contract:0xa200000000000000000000000000000000000000>\" : {\n                            \"nonce\" : \"0x00\",\n                            \"storage\" : {\n                            }\n                        },\n\t\t\t\"<contract:0xa300000000000000000000000000000000000000>\" : {\n                            \"nonce\" : \"0x00\",\n                            \"storage\" : {\n                            }\n                        },\n\t\t\t\"<contract:0xb000000000000000000000000000000000000000>\" : {\n\t\t\t\t\"storage\" : {\n\t\t\t\t    \"0x01\" : \"0x00\",\n\t\t\t\t    \"0x02\" : \"0x00\",\n\t\t\t\t    \"0x03\" : \"0x00\"\n\t\t\t\t}\n\t\t    \t},\n\t\t\t\"<contract:0xc000000000000000000000000000000000000000>\" : {\n\t\t\t\t\"storage\" : {\n\t\t\t\t    \"0x01\" : \"0x00\",\n\t\t\t\t    \"0x02\" : \"0x00\",\n\t\t\t\t    \"0x03\" : \"0x00\"\n\t\t\t\t}\n\t\t    \t},\n\t\t\t\"<contract:0xd000000000000000000000000000000000000000>\" : {\n\t\t\t\t\"storage\" : {\n\t\t\t\t    \"0x01\" : \"0x00\",\n\t\t\t\t    \"0x02\" : \"0x00\",\n\t\t\t\t    \"0x03\" : \"0x00\"\n\t\t\t\t}\n\t\t    \t}\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : [1,3],\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \t\"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                            \"nonce\" : \"0x01\"\n                        },\n\t\t\t\"<contract:0xa000000000000000000000000000000000000000>\" : {\n                            \"nonce\" : \"0x00\",\n                            \"storage\" : {\n                                \"0x04\" : \"0x00\",\n                                \"0x05\" : \"0x00\",\n                                \"0x0a\" : \"0x00\",\n                                \"0x0b\" : \"0x00\",\n                                \"0x0c\" : \"0x00\"\n                            }\n                        },\n\t\t\t\"<contract:0xa100000000000000000000000000000000000000>\" : {\n                            \"nonce\" : \"0x00\",\n                            \"storage\" : {\n                            }\n                        },\n\t\t\t\"<contract:0xa200000000000000000000000000000000000000>\" : {\n                            \"nonce\" : \"0x00\",\n                            \"storage\" : {\n                            }\n                        },\n\t\t\t\"<contract:0xa300000000000000000000000000000000000000>\" : {\n                            \"nonce\" : \"0x00\",\n                            \"storage\" : {\n                            }\n                        },\n\t\t\t\"<contract:0xb000000000000000000000000000000000000000>\" : {\n\t\t\t\t\"storage\" : {\n\t\t\t\t    \"0x01\" : \"0x00\",\n\t\t\t\t    \"0x02\" : \"0x00\",\n\t\t\t\t    \"0x03\" : \"0x00\"\n\t\t\t\t}\n\t\t    \t},\n\t\t\t\"<contract:0xc000000000000000000000000000000000000000>\" : {\n\t\t\t\t\"storage\" : {\n\t\t\t\t    \"0x01\" : \"0x00\",\n\t\t\t\t    \"0x02\" : \"0x00\",\n\t\t\t\t    \"0x03\" : \"0x00\"\n\t\t\t\t}\n\t\t    \t},\n\t\t\t\"<contract:0xd000000000000000000000000000000000000000>\" : {\n\t\t\t\t\"storage\" : {\n\t\t\t\t    \"0x01\" : \"0x00\",\n\t\t\t\t    \"0x02\" : \"0x00\",\n\t\t\t\t    \"0x03\" : \"0x00\"\n\t\t\t\t}\n\t\t    \t}\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:target:0xac00000000000000000000000000000000000000>\" : {\n\t\t\"balance\" : \"0\",\n\t\t\"code\" : \"{ (CALL 260000 (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) }\",\n\t\t\"nonce\" : \"0\",\n\t\t\"storage\" : {}\n\t    },\n\t    \"<contract:0xa000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n\t\t\"//0 code\" : \"simple calls\",\n\t\t\"//1 code\" : \"call -> callA-> revert | callB -> revert | some code * and OOG scenarios\",\n\t\t\"code\" : \"{ [[10]](CALL 50000 <contract:0xb000000000000000000000000000000000000000> 0 0 0 0 0) [[11]](CALL 50000 <contract:0xc000000000000000000000000000000000000000> 0 0 0 0 0) [[12]](CALL 50000 <contract:0xd000000000000000000000000000000000000000> 0 0 0 0 0) [[4]]12 [[5]]12 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0xa100000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n\t\t\"code\" : \"{ [[10]](CALLCODE 50000 <contract:0xb000000000000000000000000000000000000000> 0 0 0 0 0) [[11]](CALLCODE 50000 <contract:0xc000000000000000000000000000000000000000> 0 0 0 0 0) [[12]](CALLCODE 50000 <contract:0xd000000000000000000000000000000000000000> 0 0 0 0 0) [[4]]12 [[5]]12 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0xa200000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n\t\t\"code\" : \"{ [[10]](DELEGATECALL 50000 <contract:0xb000000000000000000000000000000000000000> 0 0 0 0) [[11]](DELEGATECALL 50000 <contract:0xc000000000000000000000000000000000000000> 0 0 0 0) [[12]](DELEGATECALL 50000 <contract:0xd000000000000000000000000000000000000000> 0 0 0 0) [[4]]12 [[5]]12 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0xa300000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n\t\t\"code\" : \"{ [[10]](CALL 50000 <contract:0xb000000000000000000000000000000000000000> 0 0 0 0 0) [[11]](DELEGATECALL 50000 <contract:0xc000000000000000000000000000000000000000> 0 0 0 0) [[12]](CALLCODE 50000 <contract:0xd000000000000000000000000000000000000000> 0 0 0 0 0) [[4]]12 [[5]]12 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0xb000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n\t\t\"code\" : \"{ [[1]] 12 (REVERT 0 1) }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0xc000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n\t\t\"code\" : \"{ [[2]] 12 (REVERT 0 1) }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0xd000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n\t\t\"code\" : \"{ [[3]] 12 (REVERT 0 1) }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0xa000000000000000000000000000000000000000>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0xa100000000000000000000000000000000000000>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0xa200000000000000000000000000000000000000>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0xa300000000000000000000000000000000000000>\"\n            ],\n            \"gasLimit\" : [\n                \"800000\", \"126200\", \"160000\", \"50000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xac00000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\", \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRevertTest/RevertOpcodeReturnFiller.json",
    "content": "{\n    \"RevertOpcodeReturn\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n    \t\t\t        \"nonce\" : \"1\"\n\t\t             },\n\t\t            \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n    \t\t\t            \"0x01\" : \"0x00\",\n    \t\t\t            \"0x02\" : \"0x726576657274206d657373616765\"\n                        }\n\t\t            },\n\t\t            \"<contract:0xa100000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                        }\n\t\t            }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : [1,2,3,4,5],\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n    \t\t\t        \"nonce\" : \"1\"\n\t\t             },\n\t\t            \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n    \t\t\t            \"0x01\" : \"0x00\",\n    \t\t\t            \"0x02\" : \"0x00\"\n                        }\n\t\t            },\n\t\t            \"<contract:0xa100000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                        }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n        \t\t\"code\" : \"{ [[1]](CALL 150000 (CALLDATALOAD 0) 0 0 0 0 32) [[2]] (MLOAD 0) }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:0xa100000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (SSTORE 0 0x72657665727465642064617461) (MSTORE 0 0x726576657274206d657373616765) (REVERT 0 32) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:0xa200000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (SSTORE 0 0x72657665727465642064617461) (MSTORE 0 0x726576657274206d657373616765) (REVERT 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:0xa300000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (SSTORE 0 0x72657665727465642064617461) (MSTORE 0 0x726576657274206d657373616765) (REVERT 0 0xfffffffffffffffffffffffffffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:0xa400000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (SSTORE 0 0x72657665727465642064617461) (MSTORE 0 0x726576657274206d657373616765) (REVERT 0x0100 0x00) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:0xa500000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (SSTORE 0 0x72657665727465642064617461) (MSTORE 0 0x726576657274206d657373616765) (REVERT 0x01 0x00) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:0xa600000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (SSTORE 0 0x72657665727465642064617461) (MSTORE 0 0x726576657274206d657373616765) (REVERT 0xfffffffffffffffffffffffffffff 0x00) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0xa100000000000000000000000000000000000000>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0xa200000000000000000000000000000000000000>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0xa300000000000000000000000000000000000000>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0xa400000000000000000000000000000000000000>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0xa500000000000000000000000000000000000000>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0xa600000000000000000000000000000000000000>\"\n            ],\n            \"gasLimit\" : [\n                \"800000\", \"80000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xa000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRevertTest/RevertOpcodeWithBigOutputInInitFiller.json",
    "content": "{\n    \"RevertOpcodeWithBigOutputInInit\" : {\n        \"_info\" : {\n            \"comment\" : \"A REVERT with a big output should not be confused with a big code deployment.  This test contains a REVERT in a contract init code that returns a big returndata.\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t        \"shouldnotexist\" : \"1\"\n\t\t    },\n\t\t    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t\"nonce\" : \"1\"\n\t\t     }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n    \t    \"// data\" : \"{ [[0]] 1 (REVERT 0 24600) [[1]] 12 }\",\n            \"data\" : [\n                \":raw 0x600160005560016000fd6011600155\"\n            ],\n            \"gasLimit\" : [\n                \"1600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"0\", \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRevertTest/RevertPrecompiledTouchExactOOG_ParisFiller.json",
    "content": "{\n    \"RevertPrecompiledTouchExactOOG_Paris\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"68795C4AA09D6f4Ed3E5DeDDf8c2AD3049A601da\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"4012015\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"//comment\" : \"DATA 0-7 - precompiles CALL, 8-15 - DELEGATECALL, 16-23 - CALLCODE, 24-31 - STATICCALL\",\n                \"indexes\" : { \"data\" : [0,8,16,24], \"gas\" : 0, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : { \"<eoa:0x0000000000000000000000000000000000000001>\" : {   \"nonce\" : \"0\"  }}\n            },\n            {\n                \"indexes\" : { \"data\" : [1,9,17,25], \"gas\" : 0, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : { \"<eoa:0x0000000000000000000000000000000000000002>\" : {   \"nonce\" : \"0\" }}\n            },\n            {\n                \"indexes\" : { \"data\" : [2,10,18,26], \"gas\" : 0, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : { \"<eoa:0x0000000000000000000000000000000000000003>\" : {   \"nonce\" : \"0\" }}\n            },\n            {\n                \"indexes\" : { \"data\" : [3,11,19,27], \"gas\" : 0, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : { \"<eoa:0x0000000000000000000000000000000000000004>\" : {   \"nonce\" : \"0\" }}\n            },\n            {\n                \"indexes\" : { \"data\" : [4,12,20,28], \"gas\" : 0, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : { \"<eoa:0x0000000000000000000000000000000000000005>\" : {   \"nonce\" : \"0\" }}\n            },\n            {\n                \"indexes\" : { \"data\" : [5,13,21,29], \"gas\" : 0, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : { \"<eoa:0x0000000000000000000000000000000000000006>\" : {   \"nonce\" : \"0\" }}\n            },\n            {\n                \"indexes\" : { \"data\" : [6,14,22,30], \"gas\" : 0, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : { \"<eoa:0x0000000000000000000000000000000000000007>\" : {   \"nonce\" : \"0\" }}\n            },\n            {\n                \"indexes\" : { \"data\" : [7,15,23,31], \"gas\" : 0, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : { \"<eoa:0x0000000000000000000000000000000000000008>\" : {   \"nonce\" : \"0\" }}\n            },\n            {\n                \"//comment\" : \"DATA 0-7 - precompiles CALL, 8-15 - DELEGATECALL, 16-23 - CALLCODE, 24-31 - STATICCALL\",\n                \"indexes\" : { \"data\" : [8,16], \"gas\" : [1,2], \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : { \"<eoa:0x0000000000000000000000000000000000000001>\" : {   \"nonce\" : \"0\"  }}\n            },\n            {\n                \"indexes\" : { \"data\" : [0,24], \"gas\" : [1,2], \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : { \"<eoa:0x0000000000000000000000000000000000000001>\" : {   \"nonce\" : \"0\"  }}\n            },\n            {\n                \"indexes\" : { \"data\" : [9,17], \"gas\" : [1,2], \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : { \"<eoa:0x0000000000000000000000000000000000000002>\" : {   \"nonce\" : \"0\" }}\n            },\n            {\n                \"indexes\" : { \"data\" : [1,25], \"gas\" : [1,2], \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : { \"<eoa:0x0000000000000000000000000000000000000002>\" : {   \"nonce\" : \"0\" }}\n            },\n            {\n                \"indexes\" : { \"data\" : [10,18], \"gas\" : [1,2], \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : { \"<eoa:0x0000000000000000000000000000000000000003>\" : {   \"nonce\" : \"0\" }}\n            },\n            {\n                \"indexes\" : { \"data\" : [2,26], \"gas\" : [1,2], \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : { \"<eoa:0x0000000000000000000000000000000000000003>\" : {   \"nonce\" : \"0\" }}\n            },\n            {\n                \"indexes\" : { \"data\" : [11,19], \"gas\" : [1,2], \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : { \"<eoa:0x0000000000000000000000000000000000000004>\" : {   \"nonce\" : \"0\" }}\n            },\n            {\n                \"indexes\" : { \"data\" : [3,27], \"gas\" : [1,2], \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : { \"<eoa:0x0000000000000000000000000000000000000004>\" : {   \"nonce\" : \"0\" }}\n            },\n            {\n                \"indexes\" : { \"data\" : [12,20], \"gas\" : [1,2], \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : { \"<eoa:0x0000000000000000000000000000000000000005>\" : {   \"nonce\" : \"0\" }}\n            },\n            {\n                \"indexes\" : { \"data\" : [4,28], \"gas\" : [1,2], \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : { \"<eoa:0x0000000000000000000000000000000000000005>\" : {   \"nonce\" : \"0\" }}\n            },\n            {\n                \"indexes\" : { \"data\" : [13,21], \"gas\" : [1,2], \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : { \"<eoa:0x0000000000000000000000000000000000000006>\" : {   \"nonce\" : \"0\" }}\n            },\n            {\n                \"indexes\" : { \"data\" : [5,29], \"gas\" : [1,2], \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : { \"<eoa:0x0000000000000000000000000000000000000006>\" : {   \"nonce\" : \"0\" }}\n            },\n            {\n                \"indexes\" : { \"data\" : [14,22], \"gas\" : [1,2], \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : { \"<eoa:0x0000000000000000000000000000000000000007>\" : {   \"nonce\" : \"0\" }}\n            },\n            {\n                \"indexes\" : { \"data\" : [6,30], \"gas\" : [1,2], \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : { \"<eoa:0x0000000000000000000000000000000000000007>\" : {   \"nonce\" : \"0\" }}\n            },\n            {\n                \"indexes\" : { \"data\" : [15,23], \"gas\" : [1,2], \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : { \"<eoa:0x0000000000000000000000000000000000000008>\" : {   \"nonce\" : \"0\" }}\n            },\n            {\n                \"indexes\" : { \"data\" : [7,31], \"gas\" : 2, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : { \"<eoa:0x0000000000000000000000000000000000000008>\" : {   \"nonce\" : \"0\" }}\n            },\n            {\n                \"indexes\" : { \"data\" : [7,31], \"gas\" : 1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : { \"<eoa:0x0000000000000000000000000000000000000008>\" : {   \"nonce\" : \"0\" }}\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (CALLCODE (GAS) (CALLDATALOAD 0) 0 0 (CALLDATALOAD 32) 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000000>\" : {\n                \"//comment\" : \"CALL precompiles and OOG\",\n                \"balance\" : \"0\",\n                \"code\" : \"{ (CALL (GAS) (CALLDATASIZE) 0 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000000>\" : {\n                \"//comment\" : \"DELEGATECALL precompiles and OOG\",\n                \"balance\" : \"0\",\n                \"code\" : \"{ (DELEGATECALL (GAS) (CALLDATASIZE) 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x3000000000000000000000000000000000000000>\" : {\n                \"//comment\" : \"CALLCODE precompiles and OOG\",\n                \"balance\" : \"0\",\n                \"code\" : \"{ (CALLCODE (GAS) (CALLDATASIZE) 0 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x4000000000000000000000000000000000000000>\" : {\n                \"//comment\" : \"STATICCALL precompiles and OOG\",\n                \"balance\" : \"0\",\n                \"code\" : \"{ (STATICCALL (GAS) (CALLDATASIZE) 0 0 0 0)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"1\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0x0000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0x0000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0x0000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0x0000000000000000000000000000000000000004>\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0x0000000000000000000000000000000000000005>\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0x0000000000000000000000000000000000000006>\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0x0000000000000000000000000000000000000007>\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0x0000000000000000000000000000000000000008>\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x00000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\",\n                \":raw 0x00000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002\",\n                \":raw 0x00000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003\",\n                \":raw 0x00000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004\",\n                \":raw 0x00000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005\",\n                \":raw 0x00000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006\",\n                \":raw 0x00000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007\",\n                \":raw 0x00000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008\",\n                \":raw 0x00000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\",\n                \":raw 0x00000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002\",\n                \":raw 0x00000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003\",\n                \":raw 0x00000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004\",\n                \":raw 0x00000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005\",\n                \":raw 0x00000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006\",\n                \":raw 0x00000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007\",\n                \":raw 0x00000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008\",\n                \":raw 0x00000000000000000000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\",\n                \":raw 0x00000000000000000000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002\",\n                \":raw 0x00000000000000000000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003\",\n                \":raw 0x00000000000000000000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004\",\n                \":raw 0x00000000000000000000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005\",\n                \":raw 0x00000000000000000000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006\",\n                \":raw 0x00000000000000000000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007\",\n                \":raw 0x00000000000000000000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008\",\n                \":raw 0x00000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\",\n                \":raw 0x00000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002\",\n                \":raw 0x00000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003\",\n                \":raw 0x00000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004\",\n                \":raw 0x00000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005\",\n                \":raw 0x00000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006\",\n                \":raw 0x00000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007\",\n                \":raw 0x00000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008\"\n            ],\n            \"gasLimit\" : [\n                \"22500\", \"120000\", \"69000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"1\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRevertTest/RevertPrecompiledTouch_ParisFiller.json",
    "content": "{\n    \"RevertPrecompiledTouch_Paris\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"68795C4AA09D6f4Ed3E5DeDDf8c2AD3049A601da\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"4012015\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : [0,3],\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:0x0000000000000000000000000000000000000001>\" : {\n\t\t\t            \"nonce\" : \"0\"\n\t\t            },\n\t\t            \"<eoa:0x0000000000000000000000000000000000000002>\" : {\n\t\t\t            \"nonce\" : \"0\"\t\t            },\n\t\t            \"<eoa:0x0000000000000000000000000000000000000003>\" : {\n\t\t\t            \"nonce\" : \"0\"\t\t            },\n\t\t            \"<eoa:0x0000000000000000000000000000000000000004>\" : {\n\t\t\t            \"nonce\" : \"0\"\t\t            },\n\t\t            \"<eoa:0x0000000000000000000000000000000000000005>\" : {\n\t\t\t            \"nonce\" : \"0\"\t\t            },\n\t\t            \"<eoa:0x0000000000000000000000000000000000000006>\" : {\n\t\t\t            \"nonce\" : \"0\"\t\t            },\n\t\t            \"<eoa:0x0000000000000000000000000000000000000007>\" : {\n\t\t\t            \"nonce\" : \"0\"\t\t            },\n\t\t            \"<eoa:0x0000000000000000000000000000000000000008>\" : {\n\t\t\t            \"nonce\" : \"0\"\t\t            }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : [1,2],\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:0x0000000000000000000000000000000000000001>\" : {\n\t\t\t            \"nonce\" : \"0\"\n\t\t            },\n\t\t            \"<eoa:0x0000000000000000000000000000000000000002>\" : {\n\t\t\t            \"nonce\" : \"0\"\t\t            },\n\t\t            \"<eoa:0x0000000000000000000000000000000000000003>\" : {\n\t\t\t            \"nonce\" : \"0\"\t\t            },\n\t\t            \"<eoa:0x0000000000000000000000000000000000000004>\" : {\n\t\t\t            \"nonce\" : \"0\"\t\t            },\n\t\t            \"<eoa:0x0000000000000000000000000000000000000005>\" : {\n\t\t\t            \"nonce\" : \"0\"\t\t            },\n\t\t            \"<eoa:0x0000000000000000000000000000000000000006>\" : {\n\t\t\t            \"nonce\" : \"0\"\t\t            },\n\t\t            \"<eoa:0x0000000000000000000000000000000000000007>\" : {\n\t\t\t            \"nonce\" : \"0\"\t\t            },\n\t\t            \"<eoa:0x0000000000000000000000000000000000000008>\" : {\n\t\t\t            \"nonce\" : \"0\"\t\t            }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (CALLCODE (GAS) (CALLDATALOAD 0) 0 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000000>\" : {\n                \"//comment\" : \"CALL precompiles and OOG\",\n                \"balance\" : \"0\",\n                \"code\" : \"{ (CALL 50000 1 0 0 0 0 0) (CALL 50000 2 0 0 0 0 0) (CALL 50000 3 0 0 0 0 0) (CALL 50000 4 0 0 0 0 0) (CALL 50000 5 0 0 0 0 0) (CALL 50000 6 0 0 0 0 0) (CALL 50000 7 0 0 0 0 0) (CALL 50000 8 0 0 0 0 0) [[1]] (GAS) [[2]] (GAS) [[3]] (GAS) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000000>\" : {\n                \"//comment\" : \"DELEGATECALL precompiles and OOG\",\n                \"balance\" : \"0\",\n                \"code\" : \"{ (DELEGATECALL 50000 1 0 0 0 0) (DELEGATECALL 50000 2 0 0 0 0) (DELEGATECALL 50000 3 0 0 0 0) (DELEGATECALL 50000 4 0 0 0 0) (DELEGATECALL 50000 5 0 0 0 0) (DELEGATECALL 50000 6 0 0 0 0) (DELEGATECALL 50000 7 0 0 0 0) (DELEGATECALL 50000 8 0 0 0 0) [[1]] (GAS) [[2]] (GAS) [[3]] (GAS) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x3000000000000000000000000000000000000000>\" : {\n                \"//comment\" : \"CALLCODE precompiles and OOG\",\n                \"balance\" : \"0\",\n                \"code\" : \"{ (CALLCODE 50000 1 0 0 0 0 0) (CALLCODE 50000 2 0 0 0 0 0) (CALLCODE 50000 3 0 0 0 0 0) (CALLCODE 50000 4 0 0 0 0 0) (CALLCODE 50000 5 0 0 0 0 0) (CALLCODE 50000 6 0 0 0 0 0) (CALLCODE 50000 7 0 0 0 0 0) (CALLCODE 50000 8 0 0 0 0 0) [[1]] (GAS) [[2]] (GAS) [[3]] (GAS) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x4000000000000000000000000000000000000000>\" : {\n                \"//comment\" : \"STATICCALL precompiles and OOG\",\n                \"balance\" : \"0\",\n                \"code\" : \"{ (STATICCALL 50000 1 0 0 0 0) (STATICCALL 50000 2 0 0 0 0) (STATICCALL 50000 3 0 0 0 0) (STATICCALL 50000 4 0 0 0 0) (STATICCALL 50000 5 0 0 0 0) (STATICCALL 50000 6 0 0 0 0) (STATICCALL 50000 7 0 0 0 0) (STATICCALL 50000 8 0 0 0 0) [[1]] (GAS) [[2]] (GAS) [[3]] (GAS) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"1\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0x0000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0x0000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0x0000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0x0000000000000000000000000000000000000004>\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0x0000000000000000000000000000000000000005>\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0x0000000000000000000000000000000000000006>\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0x0000000000000000000000000000000000000007>\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0x0000000000000000000000000000000000000008>\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000000>\",\n                \":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000000>\",\n                \":raw 0x000000000000000000000000<contract:0x3000000000000000000000000000000000000000>\",\n                \":raw 0x000000000000000000000000<contract:0x4000000000000000000000000000000000000000>\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"1\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRevertTest/RevertPrecompiledTouch_nonceFiller.json",
    "content": "{\n    \"RevertPrecompiledTouch_nonce\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"68795C4AA09D6f4Ed3E5DeDDf8c2AD3049A601da\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"4012015\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:0x0000000000000000000000000000000000000001>\" : {\n\t\t\t         \"balance\" : \"0\",\n                     \"nonce\" : \"1\"\n\t\t            },\n\t\t            \"<eoa:0x0000000000000000000000000000000000000002>\" : {\n\t\t\t         \"balance\" : \"0\",\n                     \"nonce\" : \"1\"\n\t\t            },\n\t\t            \"<eoa:0x0000000000000000000000000000000000000003>\" : {\n\t\t\t         \"balance\" : \"0\",\n                     \"nonce\" : \"1\"\n\t\t            },\n\t\t            \"<eoa:0x0000000000000000000000000000000000000004>\" : {\n\t\t\t         \"balance\" : \"0\",\n                     \"nonce\" : \"1\"\n\t\t            },\n\t\t            \"<eoa:0x0000000000000000000000000000000000000005>\" : {\n\t\t\t         \"balance\" : \"0\",\n                     \"nonce\" : \"1\"\n\t\t            },\n\t\t            \"<eoa:0x0000000000000000000000000000000000000006>\" : {\n\t\t\t         \"balance\" : \"0\",\n                     \"nonce\" : \"1\"\n\t\t            },\n\t\t            \"<eoa:0x0000000000000000000000000000000000000007>\" : {\n\t\t\t         \"balance\" : \"0\",\n                     \"nonce\" : \"1\"\n\t\t            },\n\t\t            \"<eoa:0x0000000000000000000000000000000000000008>\" : {\n\t\t\t         \"balance\" : \"0\",\n                     \"nonce\" : \"1\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (CALLCODE (GAS) (CALLDATALOAD 0) 0 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000000>\" : {\n                \"//comment\" : \"CALL precompiles and OOG\",\n                \"balance\" : \"0\",\n                \"code\" : \"{ (CALL 50000 1 0 0 0 0 0) (CALL 50000 2 0 0 0 0 0) (CALL 50000 3 0 0 0 0 0) (CALL 50000 4 0 0 0 0 0) (CALL 50000 5 0 0 0 0 0) (CALL 50000 6 0 0 0 0 0) (CALL 50000 7 0 0 0 0 0) (CALL 50000 8 0 0 0 0 0) [[1]] (GAS) [[2]] (GAS) [[3]] (GAS) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000000>\" : {\n                \"//comment\" : \"DELEGATECALL precompiles and OOG\",\n                \"balance\" : \"0\",\n                \"code\" : \"{ (DELEGATECALL 50000 1 0 0 0 0) (DELEGATECALL 50000 2 0 0 0 0) (DELEGATECALL 50000 3 0 0 0 0) (DELEGATECALL 50000 4 0 0 0 0) (DELEGATECALL 50000 5 0 0 0 0) (DELEGATECALL 50000 6 0 0 0 0) (DELEGATECALL 50000 7 0 0 0 0) (DELEGATECALL 50000 8 0 0 0 0) [[1]] (GAS) [[2]] (GAS) [[3]] (GAS) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x3000000000000000000000000000000000000000>\" : {\n                \"//comment\" : \"CALLCODE precompiles and OOG\",\n                \"balance\" : \"0\",\n                \"code\" : \"{ (CALLCODE 50000 1 0 0 0 0 0) (CALLCODE 50000 2 0 0 0 0 0) (CALLCODE 50000 3 0 0 0 0 0) (CALLCODE 50000 4 0 0 0 0 0) (CALLCODE 50000 5 0 0 0 0 0) (CALLCODE 50000 6 0 0 0 0 0) (CALLCODE 50000 7 0 0 0 0 0) (CALLCODE 50000 8 0 0 0 0 0) [[1]] (GAS) [[2]] (GAS) [[3]] (GAS) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x4000000000000000000000000000000000000000>\" : {\n                \"//comment\" : \"STATICCALL precompiles and OOG\",\n                \"balance\" : \"0\",\n                \"code\" : \"{ (STATICCALL 50000 1 0 0 0 0) (STATICCALL 50000 2 0 0 0 0) (STATICCALL 50000 3 0 0 0 0) (STATICCALL 50000 4 0 0 0 0) (STATICCALL 50000 5 0 0 0 0) (STATICCALL 50000 6 0 0 0 0) (STATICCALL 50000 7 0 0 0 0) (STATICCALL 50000 8 0 0 0 0) [[1]] (GAS) [[2]] (GAS) [[3]] (GAS) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"1\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0x0000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"\",\n                \"nonce\" : \"1\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0x0000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"\",\n                \"nonce\" : \"1\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0x0000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"\",\n                \"nonce\" : \"1\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0x0000000000000000000000000000000000000004>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"\",\n                \"nonce\" : \"1\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0x0000000000000000000000000000000000000005>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"\",\n                \"nonce\" : \"1\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0x0000000000000000000000000000000000000006>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"\",\n                \"nonce\" : \"1\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0x0000000000000000000000000000000000000007>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"\",\n                \"nonce\" : \"1\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0x0000000000000000000000000000000000000008>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"\",\n                \"nonce\" : \"1\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000000>\",\n                \":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000000>\",\n                \":raw 0x000000000000000000000000<contract:0x3000000000000000000000000000000000000000>\",\n                \":raw 0x000000000000000000000000<contract:0x4000000000000000000000000000000000000000>\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"1\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRevertTest/RevertPrecompiledTouch_noncestorageFiller.json",
    "content": "{\n    \"RevertPrecompiledTouch_noncestorage\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"68795C4AA09D6f4Ed3E5DeDDf8c2AD3049A601da\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"4012015\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:0x0000000000000000000000000000000000000001>\" : {\n\t\t\t            \"nonce\" : \"1\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n\t\t            },\n\t\t            \"<eoa:0x0000000000000000000000000000000000000002>\" : {\n\t\t\t            \"nonce\" : \"1\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n\t\t            },\n\t\t            \"<eoa:0x0000000000000000000000000000000000000003>\" : {\n\t\t\t            \"nonce\" : \"1\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n\t\t            },\n\t\t            \"<eoa:0x0000000000000000000000000000000000000004>\" : {\n\t\t\t            \"nonce\" : \"1\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n\t\t            },\n\t\t            \"<eoa:0x0000000000000000000000000000000000000005>\" : {\n\t\t\t            \"nonce\" : \"1\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n\t\t            },\n\t\t            \"<eoa:0x0000000000000000000000000000000000000006>\" : {\n\t\t\t            \"nonce\" : \"1\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n\t\t            },\n\t\t            \"<eoa:0x0000000000000000000000000000000000000007>\" : {\n\t\t\t            \"nonce\" : \"1\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n\t\t            },\n\t\t            \"<eoa:0x0000000000000000000000000000000000000008>\" : {\n\t\t\t            \"nonce\" : \"1\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (CALLCODE (GAS) (CALLDATALOAD 0) 0 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000000>\" : {\n                \"//comment\" : \"CALL precompiles and OOG\",\n                \"balance\" : \"0\",\n                \"code\" : \"{ (CALL 50000 1 0 0 0 0 0) (CALL 50000 2 0 0 0 0 0) (CALL 50000 3 0 0 0 0 0) (CALL 50000 4 0 0 0 0 0) (CALL 50000 5 0 0 0 0 0) (CALL 50000 6 0 0 0 0 0) (CALL 50000 7 0 0 0 0 0) (CALL 50000 8 0 0 0 0 0) [[1]] (GAS) [[2]] (GAS) [[3]] (GAS) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000000>\" : {\n                \"//comment\" : \"DELEGATECALL precompiles and OOG\",\n                \"balance\" : \"0\",\n                \"code\" : \"{ (DELEGATECALL 50000 1 0 0 0 0) (DELEGATECALL 50000 2 0 0 0 0) (DELEGATECALL 50000 3 0 0 0 0) (DELEGATECALL 50000 4 0 0 0 0) (DELEGATECALL 50000 5 0 0 0 0) (DELEGATECALL 50000 6 0 0 0 0) (DELEGATECALL 50000 7 0 0 0 0) (DELEGATECALL 50000 8 0 0 0 0) [[1]] (GAS) [[2]] (GAS) [[3]] (GAS) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x3000000000000000000000000000000000000000>\" : {\n                \"//comment\" : \"CALLCODE precompiles and OOG\",\n                \"balance\" : \"0\",\n                \"code\" : \"{ (CALLCODE 50000 1 0 0 0 0 0) (CALLCODE 50000 2 0 0 0 0 0) (CALLCODE 50000 3 0 0 0 0 0) (CALLCODE 50000 4 0 0 0 0 0) (CALLCODE 50000 5 0 0 0 0 0) (CALLCODE 50000 6 0 0 0 0 0) (CALLCODE 50000 7 0 0 0 0 0) (CALLCODE 50000 8 0 0 0 0 0) [[1]] (GAS) [[2]] (GAS) [[3]] (GAS) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x4000000000000000000000000000000000000000>\" : {\n                \"//comment\" : \"STATICCALL precompiles and OOG\",\n                \"balance\" : \"0\",\n                \"code\" : \"{ (STATICCALL 50000 1 0 0 0 0) (STATICCALL 50000 2 0 0 0 0) (STATICCALL 50000 3 0 0 0 0) (STATICCALL 50000 4 0 0 0 0) (STATICCALL 50000 5 0 0 0 0) (STATICCALL 50000 6 0 0 0 0) (STATICCALL 50000 7 0 0 0 0) (STATICCALL 50000 8 0 0 0 0) [[1]] (GAS) [[2]] (GAS) [[3]] (GAS) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"1\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0x0000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"\",\n                \"nonce\" : \"1\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\"\n                }\n            },\n            \"<eoa:0x0000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"\",\n                \"nonce\" : \"1\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\"\n                }\n            },\n            \"<eoa:0x0000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"\",\n                \"nonce\" : \"1\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\"\n                }\n            },\n            \"<eoa:0x0000000000000000000000000000000000000004>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"\",\n                \"nonce\" : \"1\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\"\n                }\n            },\n            \"<eoa:0x0000000000000000000000000000000000000005>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"\",\n                \"nonce\" : \"1\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\"\n                }\n            },\n            \"<eoa:0x0000000000000000000000000000000000000006>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"\",\n                \"nonce\" : \"1\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\"\n                }\n            },\n            \"<eoa:0x0000000000000000000000000000000000000007>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"\",\n                \"nonce\" : \"1\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\"\n                }\n            },\n            \"<eoa:0x0000000000000000000000000000000000000008>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"\",\n                \"nonce\" : \"1\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000000>\",\n                \":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000000>\",\n                \":raw 0x000000000000000000000000<contract:0x3000000000000000000000000000000000000000>\",\n                \":raw 0x000000000000000000000000<contract:0x4000000000000000000000000000000000000000>\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"1\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRevertTest/RevertPrecompiledTouch_storage_ParisFiller.json",
    "content": "{\n    \"RevertPrecompiledTouch_storage_Paris\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"68795C4AA09D6f4Ed3E5DeDDf8c2AD3049A601da\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"4012015\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : [0,3],\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:0x0000000000000000000000000000000000000001>\" : {\n\t\t\t            \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n\t\t            },\n\t\t            \"<eoa:0x0000000000000000000000000000000000000002>\" : {\n\t\t\t            \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n\t\t            },\n\t\t            \"<eoa:0x0000000000000000000000000000000000000003>\" : {\n\t\t\t            \"balance\" : \"10\"\n\t\t            },\n\t\t            \"<eoa:0x0000000000000000000000000000000000000004>\" : {\n\t\t\t            \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n\t\t            },\n\t\t            \"<eoa:0x0000000000000000000000000000000000000005>\" : {\n\t\t\t            \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n\t\t            },\n\t\t            \"<eoa:0x0000000000000000000000000000000000000006>\" : {\n\t\t\t            \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n\t\t            },\n\t\t            \"<eoa:0x0000000000000000000000000000000000000007>\" : {\n\t\t\t            \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n\t\t            },\n\t\t            \"<eoa:0x0000000000000000000000000000000000000008>\" : {\n\t\t\t            \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n\t\t            }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : [1,2],\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:0x0000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n\t\t            },\n\t\t            \"<eoa:0x0000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n\t\t            },\n\t\t            \"<eoa:0x0000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n\t\t            },\n\t\t            \"<eoa:0x0000000000000000000000000000000000000004>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n\t\t            },\n\t\t            \"<eoa:0x0000000000000000000000000000000000000005>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n\t\t            },\n\t\t            \"<eoa:0x0000000000000000000000000000000000000006>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n\t\t            },\n\t\t            \"<eoa:0x0000000000000000000000000000000000000007>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n\t\t            },\n\t\t            \"<eoa:0x0000000000000000000000000000000000000008>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (CALLCODE (GAS) (CALLDATALOAD 0) 0 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000000>\" : {\n                \"//comment\" : \"CALL precompiles and OOG\",\n                \"balance\" : \"0\",\n                \"code\" : \"{ (CALL 50000 1 0 0 0 0 0) (CALL 50000 2 0 0 0 0 0) (CALL 50000 3 0 0 0 0 0) (CALL 50000 4 0 0 0 0 0) (CALL 50000 5 0 0 0 0 0) (CALL 50000 6 0 0 0 0 0) (CALL 50000 7 0 0 0 0 0) (CALL 50000 8 0 0 0 0 0) [[1]] (GAS) [[2]] (GAS) [[3]] (GAS) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000000>\" : {\n                \"//comment\" : \"DELEGATECALL precompiles and OOG\",\n                \"balance\" : \"0\",\n                \"code\" : \"{ (DELEGATECALL 50000 1 0 0 0 0) (DELEGATECALL 50000 2 0 0 0 0) (DELEGATECALL 50000 3 0 0 0 0) (DELEGATECALL 50000 4 0 0 0 0) (DELEGATECALL 50000 5 0 0 0 0) (DELEGATECALL 50000 6 0 0 0 0) (DELEGATECALL 50000 7 0 0 0 0) (DELEGATECALL 50000 8 0 0 0 0) [[1]] (GAS) [[2]] (GAS) [[3]] (GAS) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x3000000000000000000000000000000000000000>\" : {\n                \"//comment\" : \"CALLCODE precompiles and OOG\",\n                \"balance\" : \"0\",\n                \"code\" : \"{ (CALLCODE 50000 1 0 0 0 0 0) (CALLCODE 50000 2 0 0 0 0 0) (CALLCODE 50000 3 0 0 0 0 0) (CALLCODE 50000 4 0 0 0 0 0) (CALLCODE 50000 5 0 0 0 0 0) (CALLCODE 50000 6 0 0 0 0 0) (CALLCODE 50000 7 0 0 0 0 0) (CALLCODE 50000 8 0 0 0 0 0) [[1]] (GAS) [[2]] (GAS) [[3]] (GAS) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x4000000000000000000000000000000000000000>\" : {\n                \"//comment\" : \"STATICCALL precompiles and OOG\",\n                \"balance\" : \"0\",\n                \"code\" : \"{ (STATICCALL 50000 1 0 0 0 0) (STATICCALL 50000 2 0 0 0 0) (STATICCALL 50000 3 0 0 0 0) (STATICCALL 50000 4 0 0 0 0) (STATICCALL 50000 5 0 0 0 0) (STATICCALL 50000 6 0 0 0 0) (STATICCALL 50000 7 0 0 0 0) (STATICCALL 50000 8 0 0 0 0) [[1]] (GAS) [[2]] (GAS) [[3]] (GAS) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"1\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0x0000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\"\n                }\n            },\n            \"<eoa:0x0000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\"\n                }\n            },\n            \"<eoa:0x0000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\"\n                }\n            },\n            \"<eoa:0x0000000000000000000000000000000000000004>\" : {\n                \"balance\" : \"10\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\"\n                }\n            },\n            \"<eoa:0x0000000000000000000000000000000000000005>\" : {\n                \"balance\" : \"10\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\"\n                }\n            },\n            \"<eoa:0x0000000000000000000000000000000000000006>\" : {\n                \"balance\" : \"10\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\"\n                }\n            },\n            \"<eoa:0x0000000000000000000000000000000000000007>\" : {\n                \"balance\" : \"10\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\"\n                }\n            },\n            \"<eoa:0x0000000000000000000000000000000000000008>\" : {\n                \"balance\" : \"10\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000000>\",\n                \":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000000>\",\n                \":raw 0x000000000000000000000000<contract:0x3000000000000000000000000000000000000000>\",\n                \":raw 0x000000000000000000000000<contract:0x4000000000000000000000000000000000000000>\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"1\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRevertTest/RevertPrefoundCallFiller.json",
    "content": "{\n    \"RevertPrefoundCall\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"<eoa:0x7db299e0885c85039f56fa504a13dd8ce8a56aa7>\" : {\n\t\t        \"balance\" : \"1\",\n\t\t        \"code\" : \"\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"storage\" : {\n\t\t        }\n\t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<eoa:0x7db299e0885c85039f56fa504a13dd8ce8a56aa7>\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"{ [[0]] (CALL 50000 <eoa:0x7db299e0885c85039f56fa504a13dd8ce8a56aa7> 0 0 32 0 32) [[1]]12 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n    \t    \"// data\" : \"so X has nothing but the balance Transaction calls A A creates X A went OOG\",\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"94000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xa000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRevertTest/RevertPrefoundCallOOGFiller.json",
    "content": "{\n    \"RevertPrefoundCallOOG\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"<eoa:0x7db299e0885c85039f56fa504a13dd8ce8a56aa7>\" : {\n\t\t        \"balance\" : \"1\",\n\t\t        \"code\" : \"\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"storage\" : {\n\t\t        }\n\t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<eoa:0x7db299e0885c85039f56fa504a13dd8ce8a56aa7>\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"{ [[0]] (CALL 50000 <eoa:0x7db299e0885c85039f56fa504a13dd8ce8a56aa7> 0 0 32 0 32) [[1]]12 [[2]]12 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n    \t    \"// data\" : \"so X has nothing but the balance Transaction calls A A creates X A went OOG\",\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"63000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xa000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRevertTest/RevertPrefoundEmptyCallOOG_ParisFiller.json",
    "content": "{\n    \"RevertPrefoundEmptyCallOOG_Paris\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\" ],\n                \"result\" : {\n\t\t            \"<eoa:0x7db299e0885c85039f56fa504a13dd8ce8a56aa7>\" : {\n\t\t                \"balance\" : \"10\",\n\t\t                \"code\" : \"\",\n\t\t                \"nonce\" : \"0\",\n\t\t                \"storage\" : {\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<eoa:0x7db299e0885c85039f56fa504a13dd8ce8a56aa7>\" : {\n                \"balance\" : \"10\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t        \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"{ [[0]] (CALL 50000 <eoa:0x7db299e0885c85039f56fa504a13dd8ce8a56aa7> 0 0 32 0 32) [[1]]12 [[2]]12 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n    \t    \"// data\" : \"so X has nothing but the balance Transaction calls A A creates X A went OOG\",\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"63000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xa000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRevertTest/RevertPrefoundEmptyCall_ParisFiller.json",
    "content": "{\n    \"RevertPrefoundEmptyCall_Paris\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"network\" : [\">=Cancun\" ],\n                \"result\" : {\n\t\t            \"<eoa:0x7db299e0885c85039f56fa504a13dd8ce8a56aa7>\" : {\n\t\t                \"balance\" : \"10\",\n                        \"nonce\" : \"0\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<eoa:0x7db299e0885c85039f56fa504a13dd8ce8a56aa7>\" : {\n                \"balance\" : \"10\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t        \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"{ [[0]] (CALL 50000 <eoa:0x7db299e0885c85039f56fa504a13dd8ce8a56aa7> 0 0 32 0 32) [[1]]12 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n    \t    \"// data\" : \"so X has nothing but the balance Transaction calls A A creates X A went OOG\",\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"94000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xa000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRevertTest/RevertPrefoundEmptyOOG_ParisFiller.json",
    "content": "{\n    \"RevertPrefoundEmptyOOG_Paris\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:0x7db299e0885c85039f56fa504a13dd8ce8a56aa7>\" : {\n\t\t                \"balance\" : \"10\",\n\t\t                \"code\" : \"\",\n\t\t                \"nonce\" : \"0\",\n\t\t                \"storage\" : {\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<eoa:0x7db299e0885c85039f56fa504a13dd8ce8a56aa7>\" : {\n                \"balance\" : \"10\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"{ [[0]] (CREATE 0 0 32) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n    \t    \"// data\" : \"so X has nothing but the balance Transaction calls A A creates X A went OOG\",\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"930000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xa000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRevertTest/RevertPrefoundEmpty_ParisFiller.json",
    "content": "{\n    \"RevertPrefoundEmpty_Paris\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"7db299e0885c85039f56fa504a13dd8ce8a56aa7\" : {\n\t\t                \"balance\" : \"10\",\n\t\t                \"code\" : \"\",\n\t\t                \"nonce\" : \"1\",\n\t\t                \"storage\" : {\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"7db299e0885c85039f56fa504a13dd8ce8a56aa7\" : {\n                \"balance\" : \"10\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"a000000000000000000000000000000000000000\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"{ [[0]] (CREATE 0 0 32) [[1]]12 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n    \t    \"// data\" : \"so X has nothing but the balance Transaction calls A A creates X A went OOG\",\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"940000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"a000000000000000000000000000000000000000\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRevertTest/RevertPrefoundFiller.json",
    "content": "{\n    \"RevertPrefound\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t    \"7db299e0885c85039f56fa504a13dd8ce8a56aa7\" : {\n        \t\t        \"balance\" : \"1\",\n        \t\t        \"code\" : \"\",\n        \t\t        \"nonce\" : \"1\",\n        \t\t        \"storage\" : {\n        \t\t        }\n        \t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"7db299e0885c85039f56fa504a13dd8ce8a56aa7\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"a000000000000000000000000000000000000000\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"{ [[0]] (CREATE 0 0 32) [[1]]12}\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n    \t    \"// data\" : \"so X has nothing but the balance Transaction calls A A creates X A went OOG\",\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1040000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"a000000000000000000000000000000000000000\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRevertTest/RevertPrefoundOOGFiller.json",
    "content": "{\n    \"RevertPrefoundOOG\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"<eoa:0x7db299e0885c85039f56fa504a13dd8ce8a56aa7>\" : {\n\t\t        \"balance\" : \"1\",\n\t\t        \"code\" : \"\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"storage\" : {\n\t\t        }\n\t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<eoa:0x7db299e0885c85039f56fa504a13dd8ce8a56aa7>\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"{ [[0]] (CREATE 0 0 32) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n    \t    \"// data\" : \"so X has nothing but the balance Transaction calls A A creates X A went OOG\",\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"930000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xa000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRevertTest/RevertSubCallStorageOOG2Filler.json",
    "content": "{\n    \"RevertSubCallStorageOOG2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n\t\t        \"balance\" : \"1\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"storage\" : {\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : 0\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n\t\t        \"balance\" : \"1\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"storage\" : {\n\t\t\t   \"0x00\" : \"0x0d\",\n                           \"0x01\" : \"0x0e\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : 1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n\t\t        \"balance\" : \"1\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"storage\" : {\n\t\t        }\n\t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1\",\n                \"//0 code\" : \"contract A {\",\n                \"//1 code\" : \"  int s;\",\n                \"//2 code\" : \"  int s2;\",\n                \"//3 code\" : \"  function run() returns (bool){\",\n                \"//4 code\" : \"    stor();\",\n                \"//5 code\" : \"    s = 13;\",\n                \"//6 code\" : \"    s2 = 14;\",\n                \"//7 code\" : \"  }\",\n                \"//8 code\" : \"  function stor() {\",\n                \"//9 code\" : \"    s = 12;\",\n                \"//a code\" : \"  }\",\n                \"//b code\" : \"}\",\n        \t\t\"code\" : \":raw 0x60606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063b28175c4146046578063c0406226146052575b6000565b3460005760506076565b005b34600057605c6081565b604051808215151515815260200191505060405180910390f35b600c6000819055505b565b600060896076565b600d600081905550600e6001819055505b905600a165627a7a72305820b7c6987c21e63fed8a74d899557744a3be8d3fda191ce0f56cf261d6b860f6b40029\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n    \t    \"// data\" : \"contract A calls itself. In the sub-call, storage is modified, the calls returns successfully. After that, storage is modified again and then an exception occurs.  0xc0406226 == sha(run())\",\n            \"data\" : [\n                \":raw 0xc0406226\"\n            ],\n            \"gasLimit\" : [\n                \"61500\", \"181000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xa000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\", \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRevertTest/RevertSubCallStorageOOGFiller.json",
    "content": "{\n    \"RevertSubCallStorageOOG\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : 0\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n\t\t        \"balance\" : \"1\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"storage\" : {\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : 0\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n\t\t        \"balance\" : \"1\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"storage\" : {\n\t\t\t   \"0x00\" : \"0x0c\",\n                           \"0x01\" : \"0x0d\",\n                           \"0x02\" : \"0x0e\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : [0,1],\n                    \"value\" : 1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n\t\t        \"balance\" : \"1\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"storage\" : {\n\t\t        }\n\t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1\",\n                \"//0 code\" : \"contract A {\",\n                \"//1 code\" : \"  int s;\",\n                \"//2 code\" : \"  int s2;\",\n                \"//3 code\" : \"  int s3;\",\n                \"//4 code\" : \"  function run() returns (bool){\",\n                \"//5 code\" : \"    stor();\",\n                \"//6 code\" : \"    s2 = 13;\",\n                \"//7 code\" : \"    s3 = 14;\",\n                \"//8 code\" : \"  }\",\n                \"//9 code\" : \"  function stor() {\",\n                \"//a code\" : \"    s = 12;\",\n                \"//b code\" : \"  }\",\n                \"//c code\" : \"}\",\n        \t\t\"code\" : \":raw 0x60606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063b28175c4146046578063c0406226146052575b6000565b3460005760506076565b005b34600057605c6081565b604051808215151515815260200191505060405180910390f35b600c6000819055505b565b600060896076565b600d600181905550600e600281905550600190505b905600a165627a7a723058202a8a75d7d795b5bcb9042fb18b283daa90b999a11ddec892f548732235342eb60029\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n    \t    \"// data\" : \"contract A calls itself. In the sub-call, storage is modified, the calls returns successfully. After that, storage is modified again and then an exception occurs.  0xc0406226 == sha(run())\",\n            \"data\" : [\n                \":raw 0xc0406226\"\n            ],\n            \"gasLimit\" : [\n                \"81000\", \"181000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xa000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\", \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRevertTest/TouchToEmptyAccountRevert2_ParisFiller.json",
    "content": "{\n    \"TouchToEmptyAccountRevert2_Paris\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t\t{\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:0x1000000000000000000000000000000000000000>\" : {\n    \t\t\t        \"balance\" : \"10\"\n\t\t            }\n                }\n        }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<eoa:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"10\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xba4f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [[0]](CALL 130000 <eoa:0x1000000000000000000000000000000000000000> 0 0 0 0 0) [[1]](CALL 130000 <contract:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [[2]](CALL 130000 <eoa:0x1000000000000000000000000000000000000000> 0 0 0 0 0) (KECCAK256 0x00 0x2fffff) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xba4f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRevertTest/TouchToEmptyAccountRevert3_ParisFiller.json",
    "content": "{\n    \"TouchToEmptyAccountRevert3_Paris\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [           \n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:0x1000000000000000000000000000000000000000>\" : {\n\t\t                \"balance\" : \"10\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<eoa:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"10\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xba4f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [[0]](CALL 130000 <contract:0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) [[1]](CALL 130000 <contract:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [[2]](CALL 100000 <contract:0xe94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) (KECCAK256 0x00 0x2fffff) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n        \t\t\"nonce\" : \"0\",\n            \t\"code\" : \"{ (SELFDESTRUCT <eoa:0x1000000000000000000000000000000000000000>) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:0xe94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n            \t\"code\" : \"{ (SELFDESTRUCT <eoa:0x1000000000000000000000000000000000000000>) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"200000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xba4f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRevertTest/TouchToEmptyAccountRevert_ParisFiller.json",
    "content": "{\n    \"TouchToEmptyAccountRevert_Paris\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t    \"<eoa:0x1000000000000000000000000000000000000000>\" : {\n\t\t\t            \"balance\" : \"10\",\n\t\t                \"code\" : \"\",\n\t\t                \"nonce\" : \"0\",\n\t\t                \"storage\" : {\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<eoa:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"10\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [[0]](CALL 30000 <contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) [[2]] 1 }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n        \t\t\"nonce\" : \"0\",\n        \t\t\"code\" : \"{ [[1]](CALL 30000 <eoa:0x1000000000000000000000000000000000000000> 0 0 0 0 0) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"70000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stRevertTest/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stRevertTest/costRevertFiller.yml",
    "content": "\n# Check how much gas is deducted by various types of revert\n\n# The REVERT opcode has a decent cost\n# Erroring out costs all the available gas\n\ncostRevert:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    # REVERT opcode\n    0000000000000000000000000000000000001000:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (revert 0 0x10)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    # Out of gas\n    0000000000000000000000000000000000001001:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (while 1 (sha3 0 0x1000000))\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    # Extreme out of gas  (gas cost of an opcode > 2^64)\n    0000000000000000000000000000000000001002:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (sha3 0 (- 0 1))\n        }\n      nonce: '0'\n      storage: {}\n\n    # The next invalid states are difficult/impossible to do in LLL\n    # so they use the assembled version of contract 0x1001, except change the\n    # last part from (revert 0 0x10) to whatever is needed\n\n    # Invalid opcode\n    0000000000000000000000000000000000001003:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: :raw 0x610103600155600060006000600061dead6175305a03f450BA\n      nonce: '0'\n      storage: {}\n\n    # Jump to a non jumpdest (pc=0, which is a PUSH2)\n    0000000000000000000000000000000000001004:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: :raw 0x610104600155600060006000600061dead6175305a03f450600056\n      nonce: '0'\n      storage: {}\n\n\n    # Stack underflow\n    0000000000000000000000000000000000001005:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: :raw 0x1000\n      nonce: '0'\n      storage: {}\n\n\n    # Stack overflow\n    0000000000000000000000000000000000001006:\n      # The code that does the overflow:\n      #   0  5B    JUMPDEST\n      #   1  58    PC\n      #   2  6004  PUSH1 4\n      #   4  58    PC\n      #   5  03    SUB\n      #   6  56    JUMP\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: :raw 0x5b586004580356\n      nonce: '0'\n      storage: {}\n\n\n\n    CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            (if (= $36 0) {     ; CALL\n               [0x00] (gas)\n\n              ; Leave us some gas even if the call takes all of it\n              (call (- (gas) 30000) $4 0 0 0 0 0)\n\n              [0x20] (gas)\n\n              ; Opcodes between the two gas measurements cost 42 gas\n\n              ; 0-1            GAS         2         0  79978808\n              ; 1-1          PUSH1         3         2  79978806\n              ; 2-1         MSTORE         6         5  79978803\n              ; 3-1          PUSH1         3        11  79978797\n              ; 4-1          PUSH1         3        14  79978794\n              ; 5-1          PUSH1         3        17  79978791\n              ; 6-1          PUSH1         3        20  79978788\n              ; 7-1          PUSH1         3        23  79978785\n              ; 8-1          PUSH1         3        26  79978782\n              ; 9-1   CALLDATALOAD         3        29  79978779\n              ; 10-1          PUSH2         3        38  79978770\n              ; 11-1            GAS         2        41  79978767\n              ; 12-1            SUB         3        43  79978765\n              ;\n              ;  The call goes here, and the cost varies based\n              ;  on what the call does\n              ;\n              ; 17-1            POP         2     24761  79954047\n\n              ; Calculate gas cost\n              [[0]] (- @0x00 @0x20 42)\n\n            } 0)\n\n\n            (if (= $36 1) {     ; DELEGATECALL\n               [0x00] (gas)\n\n              ; Leave us some gas even if the call takes all of it\n              (delegatecall (- (gas) 30000) $4 0 0 0 0)\n\n              [0x20] (gas)\n\n              ; Opcodes between the two gas measurements cost 39 gas,\n              ; no need to push the value so one less parameter\n\n              ; Calculate gas cost\n              [[0]] (- @0x00 @0x20 39)\n\n            } 0)\n\n\n\n\n            (if (= $36 2) {     ; STATICCALL\n               [0x00] (gas)\n\n              ; Leave us some gas even if the call takes all of it\n              (staticcall (- (gas) 30000) $4 0 0 0 0)\n\n              [0x20] (gas)\n\n              ; Opcodes between the two gas measurements cost 39 gas,\n              ; no need to push the value so one less parameter\n\n              ; Calculate gas cost\n              [[0]] (- @0x00 @0x20 39)\n\n            } 0)\n\n\n            (if (= $36 3) {     ; CALLCODE\n               [0x00] (gas)\n\n              ; Leave us some gas even if the call takes all of it\n              (callcode (- (gas) 30000) $4 0 0 0 0 0)\n\n              [0x20] (gas)\n\n              ; Calculate gas cost\n              [[0]] (- @0x00 @0x20 42)\n\n            } 0)\n\n\n            ; If the gas cost is above 0x04000000, assume it means \"all the gas\"\n            [[0]] (if (> @@0 0x04000000) 0xFFFFFF @@0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: 0x100000000000\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n\n\n  transaction:\n    data:\n    # CALL\n    - :label revert     :abi f(uint,uint) 0x1000 0\n    - :label outOfGas   :abi f(uint,uint) 0x1001 0\n    - :label xtremeOOG  :abi f(uint,uint) 0x1002 0\n    - :label badOpcode  :abi f(uint,uint) 0x1003 0\n    - :label jumpBadly  :abi f(uint,uint) 0x1004 0\n    - :label stackUnder :abi f(uint,uint) 0x1005 0\n    - :label stackOver  :abi f(uint,uint) 0x1006 0\n\n    # DELEGATECALL\n    - :label revert     :abi f(uint,uint) 0x1000 1\n    - :label outOfGas   :abi f(uint,uint) 0x1001 1\n    - :label xtremeOOG  :abi f(uint,uint) 0x1002 1\n    - :label badOpcode  :abi f(uint,uint) 0x1003 1\n    - :label jumpBadly  :abi f(uint,uint) 0x1004 1\n    - :label stackUnder :abi f(uint,uint) 0x1005 1\n    - :label stackOver  :abi f(uint,uint) 0x1006 1\n\n    # STATICCALL\n    - :label revert     :abi f(uint,uint) 0x1000 2\n    - :label outOfGas   :abi f(uint,uint) 0x1001 2\n    - :label xtremeOOG  :abi f(uint,uint) 0x1002 2\n    - :label badOpcode  :abi f(uint,uint) 0x1003 2\n    - :label jumpBadly  :abi f(uint,uint) 0x1004 2\n    - :label stackUnder :abi f(uint,uint) 0x1005 2\n    - :label stackOver  :abi f(uint,uint) 0x1006 2\n\n\n    # CALLCODE\n    - :label revert     :abi f(uint,uint) 0x1000 3\n    - :label outOfGas   :abi f(uint,uint) 0x1001 3\n    - :label xtremeOOG  :abi f(uint,uint) 0x1002 3\n    - :label badOpcode  :abi f(uint,uint) 0x1003 3\n    - :label jumpBadly  :abi f(uint,uint) 0x1004 3\n    - :label stackUnder :abi f(uint,uint) 0x1005 3\n    - :label stackOver  :abi f(uint,uint) 0x1006 3\n\n    gasLimit:\n    - '80000000'\n    gasPrice: '10'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n  expect:\n    - indexes:\n        data:\n        - :label revert\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun<Osaka'\n      result:\n        CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC:\n          storage:\n            0: 0x0a31\n\n\n    # Going out of gas costs a lot of gas\n    # And all the other errors also cost all the available gas\n    - indexes:\n        data:\n        - :label outOfGas\n        - :label xtremeOOG\n        - :label badOpcode\n        - :label jumpBadly\n        - :label stackUnder\n        - :label stackOver\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun<Osaka'\n      result:\n        CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC:\n          storage:\n            # As long as the value is \"all the gas\", we don't\n            # care how much it is exactly\n            0: 0xFFFFFF\n"
  },
  {
    "path": "tests/static/state_tests/stRevertTest/stateRevertFiller.yml",
    "content": "\n# Check that a revert causes previous state changes (SSTOREs) to disappear.\nstateRevert:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n    # This contract is called, changes state, and then the caller reverts.\n    <contract:0x000000000000000000000000000000000000dead>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            [[2]] 0x60A7\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    # REVERT opcode\n    <contract:0x0000000000000000000000000000000000001000>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            [[1]] 0x1000\n            (delegatecall (- (gas) 30000) 0xDEAD 0 0 0 0)\n            (revert 0 0x10)\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    # Out of gas\n    <contract:0x0000000000000000000000000000000000001001>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            [[1]] 0x1001\n            (delegatecall (- (gas) 30000) 0xDEAD 0 0 0 0)\n            (while 1 (sha3 0 0x1000000))\n        }\n      nonce: '0'\n      storage: {}\n\n\n\n    # Extreme out of gas  (gas cost of an opcode > 2^64)\n    <contract:0x0000000000000000000000000000000000001002>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            [[1]] 0x1002\n            (delegatecall (- (gas) 30000) 0xDEAD 0 0 0 0)\n            (sha3 0 (- 0 1))\n        }\n      nonce: '0'\n      storage: {}\n\n    # The next invalid states are difficult/impossible to do in LLL\n    # so they use the assembled version of contract 0x1001, except change the\n    # last part from (revert 0 0x10) to whatever is needed\n\n    # Invalid opcode\n    <contract:0x0000000000000000000000000000000000001003>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: :raw 0x610103600155600060006000600061dead6175305a03f450BA\n      nonce: '0'\n      storage: {}\n\n    # Jump to a non jumpdest (pc=0, which is a PUSH2)\n    <contract:0x0000000000000000000000000000000000001004>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: :raw 0x610104600155600060006000600061dead6175305a03f450600056\n      nonce: '0'\n      storage: {}\n\n\n    # Stack underflow\n    <contract:0x0000000000000000000000000000000000001005>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: :raw 0x610105600155600060006000600061dead6175305a03f450010101\n      nonce: '0'\n      storage: {}\n\n\n    # Stack overflow\n    <contract:0x0000000000000000000000000000000000001006>:\n      # The code that does the overflow:\n      # n    5B    JUMPDEST\n      # n+1  58    PC\n      # n+2  6004  PUSH1 4\n      # n+4  58    PC\n      # n+5  03    SUB\n      # n+6  56    JUMP\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: :raw 0x610106600155600060006000600061dead6175305a03f4505b586004580356\n      nonce: '0'\n      storage: {}\n\n\n\n    <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        {\n            [[0]] 0x60A7\n            (delegatecall (gas) (+ 0x1000 $4) 0 0 0 0)\n        }\n      nonce: '0'\n      storage: {}\n\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: 0x100000000000\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n\n\n  transaction:\n    data:\n    - :label revert     :abi f(uint) 0\n    - :label outOfGas   :abi f(uint) 1\n    - :label xtremeOOG  :abi f(uint) 2\n    - :label badOpcode  :abi f(uint) 3\n    - :label jumpBadly  :abi f(uint) 4\n    - :label stackUnder :abi f(uint) 5\n    - :label stackOver  :abi f(uint) 6\n    gasLimit:\n    - '16777216'\n    gasPrice: '10'\n    nonce: '0'\n    to: <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>\n    value:\n    - '1'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n\n\n  expect:\n    - indexes:\n        data:\n        - :label revert\n        - :label outOfGas\n        - :label xtremeOOG\n        - :label badOpcode\n        - :label jumpBadly\n        - :label stackUnder\n        - :label stackOver\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0: 0x60A7  # CCCCCCC changes state\n            1:   0x00  # The contract that reverted does not\n            2:   0x00  # Neither does a contract called by the reverter\n"
  },
  {
    "path": "tests/static/state_tests/stSLoadTest/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stSLoadTest/sloadGasCostFiller.json",
    "content": "{\n    \"sloadGasCost\": {\n      \"env\": {\n        \"currentCoinbase\": \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n        \"currentDifficulty\": \"0x20000\",\n        \"currentGasLimit\": \"10000000000\",\n        \"currentNumber\": \"1\",\n        \"currentTimestamp\": \"1000\"\n      },\n      \"expect\": [\n        {\n          \"indexes\": {\n            \"data\": -1,\n            \"gas\": -1,\n            \"value\": -1\n          },\n          \"network\": [\">=Cancun\"],\n          \"result\": {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\": {\n              \"storage\": {\n                \"0x01\": \"2100\"\n              }\n            }\n          }\n        }\n      ],\n      \"pre\": {\n        \"<contract:target:0x1000000000000000000000000000000000000000>\": {\n          \"balance\": \"\",\n          \"//code\": \"record the gas, prep and run the operation, then record the gas again.  Drop output, subtract 5 for GAS and DUP1, what is left is the cost of the operation, store in storage 0x01.\",\n          \"code\": \"(asm GAS DUP1 SLOAD GAS SWAP1 POP SWAP1 SUB 5 SWAP1 SUB 0x01 SSTORE)\",\n          \"nonce\": \"0\",\n          \"storage\": {}\n        },\n        \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n          \"balance\": \"1000000000000000000000\",\n          \"code\": \"\",\n          \"nonce\": \"0\",\n          \"storage\": {}\n        }\n      },\n      \"transaction\": {\n        \"data\": [\"0x\"],\n        \"gasLimit\": [\"100000\"],\n        \"gasPrice\": \"10\",\n        \"nonce\": \"0\",\n        \"secretKey\": \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n        \"to\": \"<contract:target:0x1000000000000000000000000000000000000000>\",\n        \"value\": [\"0\"]\n      }\n    }\n  }\n  \n"
  },
  {
    "path": "tests/static/state_tests/stSStoreTest/SstoreCallToSelfSubRefundBelowZeroFiller.json",
    "content": "{\n  \"SstoreCallToSelfSubRefundBelowZero\": {\n    \"_info\": {\n      \"comment\": \"Test where accnt has slot 1 value of '2', is cleared, then calls itself and overwrites with '3', causing a refund-deduction in second call context\"\n    },\n    \"env\": {\n      \"currentCoinbase\": \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n      \"currentDifficulty\": \"0x20000\",\n      \"currentGasLimit\": \"0x1000000000\",\n      \"currentNumber\": \"0x01\",\n      \"currentTimestamp\": \"0x03e8\"\n    },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                        \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                            \"nonce\" : \"0x01\"\n                        },\n                        \"<contract:target:0xe12d6474ac4964b9f23812bf3375c1fe637ad3b6>\" : {\n                            \"balance\" : \"0x00\",\n                            \"nonce\" : \"0x00\",\n                            \"storage\" : {\n                                \"0x01\" : \"0x03\"\n                            }\n                        }\n                }\n            }\n        ],\n    \"pre\": {\n      \"<contract:target:0xe12d6474ac4964b9f23812bf3375c1fe637ad3b6>\": {\n        \"balance\": \"0x00\",\n        \"code\": \":raw 0x3330146015576000600155600080808080305af1005b600360015500\",\n        \"nonce\": \"0x00\",\n        \"storage\": {\n          \"0x01\": \"0x0000000000000000000000000000000000000000000000000000000000000002\"\n        }\n      },\n      \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n        \"balance\": \"0xffffffffffffffff\",\n        \"code\": \"\",\n        \"nonce\": \"0x00\",\n        \"storage\": {}\n      }\n    },\n    \"transaction\": {\n      \"data\": [\n        \"0x\"\n      ],\n      \"gasLimit\": [\n        \"0x241eb2\"\n      ],\n      \"gasPrice\": \"0x0a\",\n      \"nonce\": \"0x00\",\n      \"secretKey\": \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n      \"to\": \"<contract:target:0xe12d6474ac4964b9f23812bf3375c1fe637ad3b6>\",\n      \"value\": [\n        \"0x00\"\n      ]\n    }\n  }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSStoreTest/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stSStoreTest/sstoreGasFiller.yml",
    "content": "# Check the gas cost of sstore in different circumstances\n\nsstoreGas:\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: \"100000000\"\n    currentNumber: \"1\"\n    currentTimestamp: \"1000\"\n\n\n  pre:\n\n    \n    <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: |\n        :yul berlin\n        {\n           // Use storage of 0x1000 and above for gas figures\n           let storageLoc := 0x1000\n           \n           // Gas spent on the measurement (two PUSHs, GAS, and SWAPs as \n           // needed for the variables)\n           let measureGas := 8\n\n           let gas0, gas1\n\n           // Cold storage, non-zero to non-zero\n           gas0 := gas()\n           sstore(0, 0xBEEF)\n           gas1 := gas()\n           sstore(storageLoc, sub(sub(gas0, gas1), measureGas)) \n           storageLoc := add(storageLoc, 1)\n\n           // Warm storage, non-zero to non-zero\n           gas0 := gas()\n           sstore(0, 0xDEADBEEF)\n           gas1 := gas()\n           sstore(storageLoc, sub(sub(gas0, gas1), measureGas)) \n           storageLoc := add(storageLoc, 1)\n\n           // Warm storage, non-zero to zero\n           gas0 := gas()\n           sstore(0, 0)  \n           gas1 := gas()\n           sstore(storageLoc, sub(sub(gas0, gas1), measureGas)) \n           storageLoc := add(storageLoc, 1)\n\n           // Warm storage, zero to zero\n           gas0 := gas()\n           sstore(0, 0)  \n           gas1 := gas()\n           sstore(storageLoc, sub(sub(gas0, gas1), measureGas)) \n           storageLoc := add(storageLoc, 1)\n\n           // Warm storage, zero to non-zero\n           gas0 := gas()\n           sstore(0, 0x1234)  \n           gas1 := gas()\n           sstore(storageLoc, sub(sub(gas0, gas1), measureGas)) \n           storageLoc := add(storageLoc, 1)\n\n           // Cold storage, non-zero to zero\n           gas0 := gas()\n           sstore(1, 0) \n           gas1 := gas()\n           sstore(storageLoc, sub(sub(gas0, gas1), measureGas)) \n           storageLoc := add(storageLoc, 1)\n\n           // Cold storage, zero to non-zero\n           gas0 := gas()\n           sstore(2, 0x60A7) \n           gas1 := gas()\n           sstore(storageLoc, sub(sub(gas0, gas1), measureGas)) \n           storageLoc := add(storageLoc, 1)\n\n           // Cold storage, zero to zero\n           gas0 := gas()\n           sstore(3, 0)\n           gas1 := gas()\n           sstore(storageLoc, sub(sub(gas0, gas1), measureGas)) \n           storageLoc := add(storageLoc, 1)\n\n           // Warm storage, zero to non-zero (cell started as zero)\n           gas0 := gas()\n           sstore(3, 0x60A7)\n           gas1 := gas()\n           sstore(storageLoc, sub(sub(gas0, gas1), measureGas)) \n           storageLoc := add(storageLoc, 1)\n\n           // Cleanup\n           sstore(0, 0)\n           sstore(1, 0)\n           sstore(2, 0)\n           sstore(3, 0)\n        }\n      nonce: 1\n      storage: \n          0: 0x60A7\n          1: 0x60A7\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: 1\n      storage: {}\n\n\n  transaction:\n    data:\n    - 0x\n    gasLimit:\n    - 16777216\n    gasPrice: 10\n    nonce: 1\n    to: <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>\n    value:\n    - 0\n    secretKey: '<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>'\n\n\n\n  expect:\n    - network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x1000:  5000    # Non zero to non zero, cold storage\n            0x1001:   100    # Non zero to non zero, warm storage\n            0x1002:   100    # Non zero to zero, warm storage\n            0x1003:   100    # Zero to zero, warm storage\n            0x1004:   100    # Zero to non zero, warm storage\n            0x1005:  5000    # Non zero to zero, cold storage\n            0x1006: 22100    # Zero to non zero, cold storage\n            0x1007:  2200    # Zero to zero, cold storage\n            0x1008: 20000    # Zero to non-zero, warm storage that started as zero\n\n\n"
  },
  {
    "path": "tests/static/state_tests/stSStoreTest/sstore_0to0Filler.json",
    "content": "{\n    \"sstore_0to0\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"change 0 -> 0\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n        \t\t\"//comment\" : \"CALL to a contract\",\n                \"indexes\" : {\n                    \"data\" : [0],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t    \"b000000000000000000000000000000000000000\" : {\n        \t\t        \"storage\" : {\n        \t\t        }\n        \t\t    },\n        \t\t    \"dea0000000000000000000000000000000000000\" : {\n            \t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n        \t\t        \"storage\" : {\n            \t\t\t    \"0x01\" : \"0x01\"\n        \t\t        }\n        \t\t    },\n        \t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n            \t\t\t\"nonce\" : \"1\",\n            \t\t\t\"storage\" : {\n        \t\t        }\n        \t\t    }\n               }\n        },\n\t    {\n\t\t\"//comment\" : \"CALLCODE AND DELEGATECALL\",\n                \"indexes\" : {\n                    \"data\" : [1, 2],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b000000000000000000000000000000000000000\" : {\n\t\t        \"storage\" : {\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"nonce\" : \"1\",\n\t\t\t\"storage\" : {\n\t\t        }\n\t\t    }\n                }\n            },\n        {\n\t\t        \"//comment\" : \"STATICCALL, fails on storage change\",\n                \"indexes\" : {\n                    \"data\" : 3,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\n\t\t            \"dea0000000000000000000000000000000000000\" : {\n\t\t            \t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t                \"storage\" : {\n\t\t            \t    \"0x01\" : \"0x01\"\n\t\t                }\n\t\t            }\n                }\n        },\n\t    {\n\t\t\"//comment\" : \"inside CREATE2 init code\",\n                \"indexes\" : {\n                    \"data\" : 4,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"0xcd47252107ce09ad27592121f5b5e3e30c4ce2db\" : {\n                        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"ALL of above but going OOG\",\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x00\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"ALL of above but REVERT at the end\",\n                \"indexes\" : {\n                    \"data\" : [5,6,7,8,9],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x00\"\n\t\t        }\n\t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"b000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 0 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n\t    \"c000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 0 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n\t    \"dea0000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 1 [[1]] 0 [[2]] 1 [[2]] 0 [[3]] 1 [[3]] 0 [[4]] 1 [[4]] 0 [[5]] 1 [[5]] 0 [[6]] 1 [[6]] 0 [[7]] 1 [[7]] 0 [[8]] 1 [[8]] 0 [[9]] 1 [[9]] 0 [[10]] 1 [[10]] 0 [[11]] 1 [[11]] 0 [[12]] 1 [[12]] 0 [[13]] 1 [[13]] 0 [[14]] 1 [[14]] 0 [[15]] 1 [[15]] 0 [[16]] 1 [[16]] 0  [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\"{ (CALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)         (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0)   (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (STATICCALL 300000 0xc000000000000000000000000000000000000000 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (seq   (CREATE2 0 0 (lll (seq (SSTORE 0 0) (SSTORE 1 1) ) 0) 0) (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (STOP) )   }\",\n\t\t\"{ (CALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)         (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0)   (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (STATICCALL 300000 0xc000000000000000000000000000000000000000 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (seq   (CREATE2 0 0 (lll (seq (SSTORE 0 0) (SSTORE 1 1) ) 0) 0) (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32) (STOP) )   }\"\n\n            ],\n            \"gasLimit\" : [\n                \"1000000\", \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSStoreTest/sstore_0to0to0Filler.json",
    "content": "{\n    \"sstore_0to0to0\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"change 0 -> 0 -> 0\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n\t\t\"//comment\" : \"CALL to a contract\",\n                \"indexes\" : {\n                    \"data\" : [0],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b000000000000000000000000000000000000000\" : {\n\t\t        \"storage\" : {\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"nonce\" : \"1\",\n\t\t\t\"storage\" : {\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"CALLCODE AND DELEGATECALL\",\n                \"indexes\" : {\n                    \"data\" : [1, 2],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b000000000000000000000000000000000000000\" : {\n\t\t        \"storage\" : {\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"nonce\" : \"1\",\n\t\t\t\"storage\" : {\n\t\t        }\n\t\t    }\n                }\n            },\n        {\n        \t\t\"//comment\" : \"STATICCALL, fails on storage change\",\n                \"indexes\" : {\n                    \"data\" : 3,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"dea0000000000000000000000000000000000000\" : {\n\t\t\t        \"//comment\" : \"indicates that call finished without OOG\",\n\t\t                \"storage\" : {\n\t\t\t            \"0x01\" : \"0x01\"\n\t\t                }\n\t\t            }\n                }\n        },\n\t    {\n\t\t\"//comment\" : \"inside CREATE2 init code\",\n                \"indexes\" : {\n                    \"data\" : 4,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"0x0bdfb5bb25de41df5ef3e68904843c7a7b92d35f\" : {\n                        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"ALL of above but going OOG\",\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x00\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"ALL of above but REVERT at the end\",\n                \"indexes\" : {\n                    \"data\" : [5,6,7,8,9],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x00\"\n\t\t        }\n\t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"b000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 0 [[1]] 0 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n\t    \"c000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 0 [[1]] 0 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n\t    \"dea0000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 1 [[1]] 0 [[2]] 1 [[2]] 0 [[3]] 1 [[3]] 0 [[4]] 1 [[4]] 0 [[5]] 1 [[5]] 0 [[6]] 1 [[6]] 0 [[7]] 1 [[7]] 0 [[8]] 1 [[8]] 0 [[9]] 1 [[9]] 0 [[10]] 1 [[10]] 0 [[11]] 1 [[11]] 0 [[12]] 1 [[12]] 0 [[13]] 1 [[13]] 0 [[14]] 1 [[14]] 0 [[15]] 1 [[15]] 0 [[16]] 1 [[16]] 0  [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\"{ (CALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)         (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0)   (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (STATICCALL 300000 0xc000000000000000000000000000000000000000 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (seq   (CREATE2 0 0 (lll (seq (SSTORE 0 0) (SSTORE 0 0) (SSTORE 1 1) ) 0) 0) (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (STOP) )   }\",\n\t\t\"{ (CALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)         (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0)   (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (STATICCALL 300000 0xc000000000000000000000000000000000000000 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (seq   (CREATE2 0 0 (lll (seq (SSTORE 0 0) (SSTORE 0 0) (SSTORE 1 1) ) 0) 0) (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32) (STOP) )   }\"\n\n            ],\n            \"gasLimit\" : [\n                \"1000000\", \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSStoreTest/sstore_0to0toXFiller.json",
    "content": "{\n    \"sstore_0to0toX\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"change 0 -> 0 -> X\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n\t\t\"//comment\" : \"CALL to a contract\",\n                \"indexes\" : {\n                    \"data\" : [0],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b000000000000000000000000000000000000000\" : {\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"nonce\" : \"1\",\n\t\t\t\"storage\" : {\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t        \"//comment\" : \"CALLCODE AND DELEGATECALL\",\n                \"indexes\" : {\n                    \"data\" : [1, 2],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"b000000000000000000000000000000000000000\" : {\n\t\t                \"storage\" : {\n\t\t                }\n\t\t            },\n\t\t            \"dea0000000000000000000000000000000000000\" : {\n\t\t\t        \"//comment\" : \"indicates that call finished without OOG\",\n\t\t                \"storage\" : {\n\t\t\t            \"0x01\" : \"0x01\"\n\t\t                }\n\t\t            },\n\t\t            \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t        \"nonce\" : \"1\",\n\t\t\t        \"storage\" : {\n\t\t\t            \"0x01\" : \"0x01\"\n\t\t                }\n\t\t            }\n                }\n            },\n        {\n\t\t        \"//comment\" : \"STATICCALL, fails on storage change\",\n                \"indexes\" : {\n                    \"data\" : 3,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"dea0000000000000000000000000000000000000\" : {\n\t\t\t            \"//comment\" : \"indicates that call finished without OOG\",\n\t\t                \"storage\" : {\n\t\t\t            \"0x01\" : \"0x01\"\n\t\t                }\n\t\t            }\n                }\n        },\n\t    {\n\t\t\"//comment\" : \"inside CREATE2 init code\",\n                \"indexes\" : {\n                    \"data\" : 4,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"0x4b7e4a91b95b23146401605d2adce6ab6ffd64e1\" : {\n                        \"storage\" : {\n\t\t\t    \"0x00\" : \"0x01\",\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"ALL of above but going OOG\",\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x00\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"ALL of above but REVERT at the end\",\n                \"indexes\" : {\n                    \"data\" : [5,6,7,8,9],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x00\"\n\t\t        }\n\t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"b000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 0 [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n\t    \"c000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 0 [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n\t    \"dea0000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 1 [[1]] 0 [[2]] 1 [[2]] 0 [[3]] 1 [[3]] 0 [[4]] 1 [[4]] 0 [[5]] 1 [[5]] 0 [[6]] 1 [[6]] 0 [[7]] 1 [[7]] 0 [[8]] 1 [[8]] 0 [[9]] 1 [[9]] 0 [[10]] 1 [[10]] 0 [[11]] 1 [[11]] 0 [[12]] 1 [[12]] 0 [[13]] 1 [[13]] 0 [[14]] 1 [[14]] 0 [[15]] 1 [[15]] 0 [[16]] 1 [[16]] 0  [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\"{ (CALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)         (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0)   (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (STATICCALL 300000 0xc000000000000000000000000000000000000000 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (seq   (CREATE2 0 0 (lll (seq (SSTORE 0 0) (SSTORE 0 1) (SSTORE 1 1) ) 0) 0) (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (STOP) )   }\",\n\t\t\"{ (CALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)         (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0)   (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (STATICCALL 300000 0xc000000000000000000000000000000000000000 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (seq   (CREATE2 0 0 (lll (seq (SSTORE 0 0) (SSTORE 0 1) (SSTORE 1 1) ) 0) 0) (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32) (STOP) )   }\"\n\n            ],\n            \"gasLimit\" : [\n                \"1000000\", \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSStoreTest/sstore_0toXFiller.json",
    "content": "{\n    \"sstore_0toX\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"change 0 -> X\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n\t\t\"//comment\" : \"CALL to a contract\",\n                \"indexes\" : {\n                    \"data\" : [0],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b000000000000000000000000000000000000000\" : {\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t    \"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"nonce\" : \"1\",\n\t\t\t\"storage\" : {\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"CALLCODE AND DELEGATECALL\",\n                \"indexes\" : {\n                    \"data\" : [1, 2],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b000000000000000000000000000000000000000\" : {\n\t\t        \"storage\" : {\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"nonce\" : \"1\",\n\t\t\t\"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n        {\n\t\t        \"//comment\" : \"STATICCALL, fails on storage change\",\n                \"indexes\" : {\n                    \"data\" : 3,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"dea0000000000000000000000000000000000000\" : {\n\t\t\t            \"//comment\" : \"indicates that call finished without OOG\",\n\t\t                \"storage\" : {\n\t\t\t                \"0x01\" : \"0x01\"\n\t\t                }\n\t\t            }\n                }\n        },\n\t    {\n\t\t\"//comment\" : \"inside CREATE2 init code\",\n                \"indexes\" : {\n                    \"data\" : 4,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"0xcd47252107ce09ad27592121f5b5e3e30c4ce2db\" : {\n                        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"ALL of above but going OOG\",\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x00\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"ALL of above but REVERT at the end\",\n                \"indexes\" : {\n                    \"data\" : [5,6,7,8,9],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x00\"\n\t\t        }\n\t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"b000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n\t    \"c000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n\t    \"dea0000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 1 [[1]] 0 [[2]] 1 [[2]] 0 [[3]] 1 [[3]] 0 [[4]] 1 [[4]] 0 [[5]] 1 [[5]] 0 [[6]] 1 [[6]] 0 [[7]] 1 [[7]] 0 [[8]] 1 [[8]] 0 [[9]] 1 [[9]] 0 [[10]] 1 [[10]] 0 [[11]] 1 [[11]] 0 [[12]] 1 [[12]] 0 [[13]] 1 [[13]] 0 [[14]] 1 [[14]] 0 [[15]] 1 [[15]] 0 [[16]] 1 [[16]] 0  [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\"{ (CALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)         (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0)   (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (STATICCALL 300000 0xc000000000000000000000000000000000000000 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (seq   (CREATE2 0 0 (lll (seq (SSTORE 0 0) (SSTORE 1 1) ) 0) 0) (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (STOP) )   }\",\n\t\t\"{ (CALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)         (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0)   (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (STATICCALL 300000 0xc000000000000000000000000000000000000000 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (seq   (CREATE2 0 0 (lll (seq (SSTORE 0 0) (SSTORE 1 1) ) 0) 0) (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32) (STOP) )   }\"\n\n            ],\n            \"gasLimit\" : [\n                \"1000000\", \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSStoreTest/sstore_0toXto0Filler.json",
    "content": "{\n    \"sstore_0toXto0\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"change 0 -> X -> 0\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n\t\t\"//comment\" : \"CALL to a contract\",\n                \"indexes\" : {\n                    \"data\" : [0],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b000000000000000000000000000000000000000\" : {\n\t\t        \"storage\" : {\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"nonce\" : \"1\",\n\t\t\t\"storage\" : {\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"CALLCODE AND DELEGATECALL\",\n                \"indexes\" : {\n                    \"data\" : [1, 2],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b000000000000000000000000000000000000000\" : {\n\t\t        \"storage\" : {\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"nonce\" : \"1\",\n\t\t\t\"storage\" : {\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"STATICCALL, fails on storage change\",\n                \"indexes\" : {\n                    \"data\" : 3,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"inside CREATE2 init code\",\n                \"indexes\" : {\n                    \"data\" : 4,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"0x7564c2d690ab324d8fa20707f2bbdcff4367bb92\" : {\n                        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"ALL of above but going OOG\",\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x00\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"ALL of above but REVERT at the end\",\n                \"indexes\" : {\n                    \"data\" : [5,6,7,8,9],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x00\"\n\t\t        }\n\t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"b000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 1 [[1]] 0 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n\t    \"c000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 1 [[1]] 0 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n\t    \"dea0000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 1 [[1]] 0 [[2]] 1 [[2]] 0 [[3]] 1 [[3]] 0 [[4]] 1 [[4]] 0 [[5]] 1 [[5]] 0 [[6]] 1 [[6]] 0 [[7]] 1 [[7]] 0 [[8]] 1 [[8]] 0 [[9]] 1 [[9]] 0 [[10]] 1 [[10]] 0 [[11]] 1 [[11]] 0 [[12]] 1 [[12]] 0 [[13]] 1 [[13]] 0 [[14]] 1 [[14]] 0 [[15]] 1 [[15]] 0 [[16]] 1 [[16]] 0  [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\"{ (CALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)         (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0)   (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (STATICCALL 300000 0xc000000000000000000000000000000000000000 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (seq   (CREATE2 0 0 (lll (seq (SSTORE 0 1) (SSTORE 0 0) (SSTORE 1 1) ) 0) 0) (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (STOP) )   }\",\n\t\t\"{ (CALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)         (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0)   (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (STATICCALL 300000 0xc000000000000000000000000000000000000000 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (seq   (CREATE2 0 0 (lll (seq (SSTORE 0 1) (SSTORE 0 0) (SSTORE 1 1) ) 0) 0) (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32) (STOP) )   }\"\n\n            ],\n            \"gasLimit\" : [\n                \"1000000\", \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSStoreTest/sstore_0toXto0toXFiller.json",
    "content": "{\n    \"sstore_0toXto0toX\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"change 0 -> X -> 0 -> X\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n\t\t\"//comment\" : \"CALL to a contract\",\n                \"indexes\" : {\n                    \"data\" : [0],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b000000000000000000000000000000000000000\" : {\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"nonce\" : \"1\",\n\t\t\t\"storage\" : {\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"CALLCODE AND DELEGATECALL\",\n                \"indexes\" : {\n                    \"data\" : [1, 2],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b000000000000000000000000000000000000000\" : {\n\t\t        \"storage\" : {\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"nonce\" : \"1\",\n\t\t\t\"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"STATICCALL, fails on storage change\",\n                \"indexes\" : {\n                    \"data\" : 3,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"inside CREATE2 init code\",\n                \"indexes\" : {\n                    \"data\" : 4,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"0xcacdb18e817dcdf3677f6f905a75474af3b8693c\" : {\n                        \"storage\" : {\n\t\t\t    \"0x00\" : \"0x01\",\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"ALL of above but going OOG\",\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x00\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"ALL of above but REVERT at the end\",\n                \"indexes\" : {\n                    \"data\" : [5,6,7,8,9],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x00\"\n\t\t        }\n\t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"b000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 1 [[1]] 0 [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n\t    \"c000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 1 [[1]] 0 [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n\t    \"dea0000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 1 [[1]] 0 [[2]] 1 [[2]] 0 [[3]] 1 [[3]] 0 [[4]] 1 [[4]] 0 [[5]] 1 [[5]] 0 [[6]] 1 [[6]] 0 [[7]] 1 [[7]] 0 [[8]] 1 [[8]] 0 [[9]] 1 [[9]] 0 [[10]] 1 [[10]] 0 [[11]] 1 [[11]] 0 [[12]] 1 [[12]] 0 [[13]] 1 [[13]] 0 [[14]] 1 [[14]] 0 [[15]] 1 [[15]] 0 [[16]] 1 [[16]] 0  [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\"{ (CALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)         (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0)   (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (STATICCALL 300000 0xc000000000000000000000000000000000000000 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (seq   (CREATE2 0 0 (lll (seq (SSTORE 0 0) (SSTORE 0 1) (SSTORE 0 0) (SSTORE 0 1) (SSTORE 1 1) ) 0) 0) (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (STOP) )   }\",\n\t\t\"{ (CALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)         (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0)   (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (STATICCALL 300000 0xc000000000000000000000000000000000000000 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (seq   (CREATE2 0 0 (lll (seq (SSTORE 0 0) (SSTORE 0 1) (SSTORE 0 0) (SSTORE 0 1) (SSTORE 1 1) ) 0) 0) (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32) (STOP) )   }\"\n\n            ],\n            \"gasLimit\" : [\n                \"1000000\", \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSStoreTest/sstore_0toXtoXFiller.json",
    "content": "{\n    \"sstore_0toXtoX\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"change 0 -> X -> X\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n\t\t\"//comment\" : \"CALL to a contract\",\n                \"indexes\" : {\n                    \"data\" : [0],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b000000000000000000000000000000000000000\" : {\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"nonce\" : \"1\",\n\t\t\t\"storage\" : {\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"CALLCODE AND DELEGATECALL\",\n                \"indexes\" : {\n                    \"data\" : [1, 2],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b000000000000000000000000000000000000000\" : {\n\t\t        \"storage\" : {\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"nonce\" : \"1\",\n\t\t\t\"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"STATICCALL, fails on storage change\",\n                \"indexes\" : {\n                    \"data\" : 3,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"inside CREATE2 init code\",\n                \"indexes\" : {\n                    \"data\" : 4,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"0xf797d87eb948007fd777404ef459196b099d3ebe\" : {\n                        \"storage\" : {\n\t\t\t    \"0x00\" : \"0x01\",\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"ALL of above but going OOG\",\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x00\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"ALL of above but REVERT at the end\",\n                \"indexes\" : {\n                    \"data\" : [5,6,7,8,9],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x00\"\n\t\t        }\n\t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"b000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 1 [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n\t    \"c000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 1 [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n\t    \"dea0000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 1 [[1]] 0 [[2]] 1 [[2]] 0 [[3]] 1 [[3]] 0 [[4]] 1 [[4]] 0 [[5]] 1 [[5]] 0 [[6]] 1 [[6]] 0 [[7]] 1 [[7]] 0 [[8]] 1 [[8]] 0 [[9]] 1 [[9]] 0 [[10]] 1 [[10]] 0 [[11]] 1 [[11]] 0 [[12]] 1 [[12]] 0 [[13]] 1 [[13]] 0 [[14]] 1 [[14]] 0 [[15]] 1 [[15]] 0 [[16]] 1 [[16]] 0  [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\"{ (CALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)         (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0)   (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (STATICCALL 300000 0xc000000000000000000000000000000000000000 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (seq   (CREATE2 0 0 (lll (seq (SSTORE 0 1) (SSTORE 0 1) (SSTORE 1 1) ) 0) 0) (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (STOP) )   }\",\n\t\t\"{ (CALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)         (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0)   (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (STATICCALL 300000 0xc000000000000000000000000000000000000000 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (seq   (CREATE2 0 0 (lll (seq (SSTORE 0 1) (SSTORE 0 1) (SSTORE 1 1) ) 0) 0) (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32) (STOP) )   }\"\n\n            ],\n            \"gasLimit\" : [\n                \"1000000\", \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSStoreTest/sstore_0toXtoYFiller.json",
    "content": "{\n    \"sstore_0toXtoY\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"change 0 -> X -> Y\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n\t\t\"//comment\" : \"CALL to a contract\",\n                \"indexes\" : {\n                    \"data\" : [0],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b000000000000000000000000000000000000000\" : {\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"nonce\" : \"1\",\n\t\t\t\"storage\" : {\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"CALLCODE AND DELEGATECALL\",\n                \"indexes\" : {\n                    \"data\" : [1, 2],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b000000000000000000000000000000000000000\" : {\n\t\t        \"storage\" : {\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"nonce\" : \"1\",\n\t\t\t\"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"STATICCALL, fails on storage change\",\n                \"indexes\" : {\n                    \"data\" : 3,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"inside CREATE2 init code\",\n                \"indexes\" : {\n                    \"data\" : 4,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"0xef24be216c6eaaade3b2496281d7b66fc2669f03\" : {\n                        \"storage\" : {\n\t\t\t    \"0x00\" : \"0x01\",\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"ALL of above but going OOG\",\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x00\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"ALL of above but REVERT at the end\",\n                \"indexes\" : {\n                    \"data\" : [5,6,7,8,9],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x00\"\n\t\t        }\n\t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"b000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 2 [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n\t    \"c000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 2 [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n\t    \"dea0000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 1 [[1]] 0 [[2]] 1 [[2]] 0 [[3]] 1 [[3]] 0 [[4]] 1 [[4]] 0 [[5]] 1 [[5]] 0 [[6]] 1 [[6]] 0 [[7]] 1 [[7]] 0 [[8]] 1 [[8]] 0 [[9]] 1 [[9]] 0 [[10]] 1 [[10]] 0 [[11]] 1 [[11]] 0 [[12]] 1 [[12]] 0 [[13]] 1 [[13]] 0 [[14]] 1 [[14]] 0 [[15]] 1 [[15]] 0 [[16]] 1 [[16]] 0  [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\"{ (CALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)         (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0)   (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (STATICCALL 300000 0xc000000000000000000000000000000000000000 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (seq   (CREATE2 0 0 (lll (seq (SSTORE 0 2) (SSTORE 0 1) (SSTORE 1 1) ) 0) 0) (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (STOP) )   }\",\n\t\t\"{ (CALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)         (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0)   (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (STATICCALL 300000 0xc000000000000000000000000000000000000000 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (seq   (CREATE2 0 0 (lll (seq (SSTORE 0 2) (SSTORE 0 1) (SSTORE 1 1) ) 0) 0) (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32) (STOP) )   }\"\n\n            ],\n            \"gasLimit\" : [\n                \"1000000\", \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSStoreTest/sstore_Xto0Filler.json",
    "content": "{\n    \"sstore_Xto0\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"change X -> 0\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n\t\t\"//comment\" : \"CALL to a contract\",\n                \"indexes\" : {\n                    \"data\" : [0],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b000000000000000000000000000000000000000\" : {\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x00\"\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"nonce\" : \"1\",\n\t\t\t\"storage\" : {\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"CALLCODE AND DELEGATECALL\",\n                \"indexes\" : {\n                    \"data\" : [1, 2],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b000000000000000000000000000000000000000\" : {\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"nonce\" : \"1\",\n\t\t\t\"storage\" : {\n\t\t\t    \"0x01\" : \"0x00\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"STATICCALL, fails on storage change\",\n                \"indexes\" : {\n                    \"data\" : 3,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"inside CREATE2 init code\",\n                \"indexes\" : {\n                    \"data\" : 4,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"0x7564c2d690ab324d8fa20707f2bbdcff4367bb92\" : {\n                        \"storage\" : {\n\t\t\t    \"0x00\" : \"0x00\",\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"ALL of above but going OOG\",\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x00\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"ALL of above but REVERT at the end\",\n                \"indexes\" : {\n                    \"data\" : [5,6,7,8,9],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x00\"\n\t\t        }\n\t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"b000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 0 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t    \"0x01\" : \"0x01\"\n                }\n            },\n\t    \"c000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 0 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t    \"0x01\" : \"0x01\"\n                }\n            },\n\t    \"dea0000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 1 [[1]] 0 [[2]] 1 [[2]] 0 [[3]] 1 [[3]] 0 [[4]] 1 [[4]] 0 [[5]] 1 [[5]] 0 [[6]] 1 [[6]] 0 [[7]] 1 [[7]] 0 [[8]] 1 [[8]] 0 [[9]] 1 [[9]] 0 [[10]] 1 [[10]] 0 [[11]] 1 [[11]] 0 [[12]] 1 [[12]] 0 [[13]] 1 [[13]] 0 [[14]] 1 [[14]] 0 [[15]] 1 [[15]] 0 [[16]] 1 [[16]] 0  [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\"{ (CALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)         (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0)   (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (STATICCALL 300000 0xc000000000000000000000000000000000000000 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (seq   (CREATE2 0 0 (lll (seq (SSTORE 0 1) (SSTORE 0 0) (SSTORE 1 1) ) 0) 0) (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (STOP) )   }\",\n\t\t\"{ (CALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)         (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0)   (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (STATICCALL 300000 0xc000000000000000000000000000000000000000 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (seq   (CREATE2 0 0 (lll (seq (SSTORE 0 1) (SSTORE 0 0) (SSTORE 1 1) ) 0) 0) (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32) (STOP) )   }\"\n\n            ],\n            \"gasLimit\" : [\n                \"3000000\", \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSStoreTest/sstore_Xto0to0Filler.json",
    "content": "{\n    \"sstore_Xto0to0\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"change X -> 0 -> 0\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n\t\t\"//comment\" : \"CALL to a contract\",\n                \"indexes\" : {\n                    \"data\" : [0],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b000000000000000000000000000000000000000\" : {\n\t\t        \"storage\" : {\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"nonce\" : \"1\",\n\t\t\t\"storage\" : {\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"CALLCODE AND DELEGATECALL\",\n                \"indexes\" : {\n                    \"data\" : [1, 2],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b000000000000000000000000000000000000000\" : {\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"nonce\" : \"1\",\n\t\t\t\"storage\" : {\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"STATICCALL, fails on storage change\",\n                \"indexes\" : {\n                    \"data\" : 3,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"inside CREATE2 init code\",\n                \"indexes\" : {\n                    \"data\" : 4,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"0xa3febbc9c8c7e91ba2c2bc7cd8b426240c8d6d95\" : {\n                        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"ALL of above but going OOG\",\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x00\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"ALL of above but REVERT at the end\",\n                \"indexes\" : {\n                    \"data\" : [5,6,7,8,9],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x00\"\n\t\t        }\n\t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"b000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 0 [[1]] 0 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t    \"0x01\" : \"0x01\"\n                }\n            },\n\t    \"c000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 0 [[1]] 0 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t    \"0x01\" : \"0x01\"\n                }\n            },\n\t    \"dea0000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 1 [[1]] 0 [[2]] 1 [[2]] 0 [[3]] 1 [[3]] 0 [[4]] 1 [[4]] 0 [[5]] 1 [[5]] 0 [[6]] 1 [[6]] 0 [[7]] 1 [[7]] 0 [[8]] 1 [[8]] 0 [[9]] 1 [[9]] 0 [[10]] 1 [[10]] 0 [[11]] 1 [[11]] 0 [[12]] 1 [[12]] 0 [[13]] 1 [[13]] 0 [[14]] 1 [[14]] 0 [[15]] 1 [[15]] 0 [[16]] 1 [[16]] 0  [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\"{ (CALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)         (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0)   (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (STATICCALL 300000 0xc000000000000000000000000000000000000000 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (seq   (CREATE2 0 0 (lll (seq (SSTORE 0 1) (SSTORE 0 0) (SSTORE 0 0) (SSTORE 1 1) ) 0) 0) (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (STOP) )   }\",\n\t\t\"{ (CALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)         (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0)   (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (STATICCALL 300000 0xc000000000000000000000000000000000000000 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (seq   (CREATE2 0 0 (lll (seq (SSTORE 0 1) (SSTORE 0 0) (SSTORE 0 0) (SSTORE 1 1) ) 0) 0) (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32) (STOP) )   }\"\n\n            ],\n            \"gasLimit\" : [\n                \"1000000\", \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSStoreTest/sstore_Xto0toXFiller.json",
    "content": "{\n    \"sstore_Xto0toX\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"change X -> 0 -> X\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n\t\t\"//comment\" : \"CALL to a contract\",\n                \"indexes\" : {\n                    \"data\" : [0],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b000000000000000000000000000000000000000\" : {\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"nonce\" : \"1\",\n\t\t\t\"storage\" : {\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"CALLCODE AND DELEGATECALL\",\n                \"indexes\" : {\n                    \"data\" : [1, 2],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b000000000000000000000000000000000000000\" : {\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"nonce\" : \"1\",\n\t\t\t\"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"STATICCALL, fails on storage change\",\n                \"indexes\" : {\n                    \"data\" : 3,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"inside CREATE2 init code\",\n                \"indexes\" : {\n                    \"data\" : 4,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"0xeedfcf2cf4289ff428de4801d7cb0554e27809f3\" : {\n                        \"storage\" : {\n\t\t\t    \"0x00\" : \"0x01\",\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"ALL of above but going OOG\",\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x00\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"ALL of above but REVERT at the end\",\n                \"indexes\" : {\n                    \"data\" : [5,6,7,8,9],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x00\"\n\t\t        }\n\t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"b000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 0 [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t    \"0x01\" : \"0x01\"\n                }\n            },\n\t    \"c000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 0 [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t    \"0x01\" : \"0x01\"\n                }\n            },\n\t    \"dea0000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 1 [[1]] 0 [[2]] 1 [[2]] 0 [[3]] 1 [[3]] 0 [[4]] 1 [[4]] 0 [[5]] 1 [[5]] 0 [[6]] 1 [[6]] 0 [[7]] 1 [[7]] 0 [[8]] 1 [[8]] 0 [[9]] 1 [[9]] 0 [[10]] 1 [[10]] 0 [[11]] 1 [[11]] 0 [[12]] 1 [[12]] 0 [[13]] 1 [[13]] 0 [[14]] 1 [[14]] 0 [[15]] 1 [[15]] 0 [[16]] 1 [[16]] 0  [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\"{ (CALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)         (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0)   (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (STATICCALL 300000 0xc000000000000000000000000000000000000000 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (seq   (CREATE2 0 0 (lll (seq (SSTORE 0 1) (SSTORE 0 0) (SSTORE 0 1) (SSTORE 1 1) ) 0) 0) (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (STOP) )   }\",\n\t\t\"{ (CALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)         (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0)   (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (STATICCALL 300000 0xc000000000000000000000000000000000000000 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (seq   (CREATE2 0 0 (lll (seq (SSTORE 0 1) (SSTORE 0 0) (SSTORE 0 1) (SSTORE 1 1) ) 0) 0) (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32) (STOP) )   }\"\n\n            ],\n            \"gasLimit\" : [\n                \"1000000\", \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSStoreTest/sstore_Xto0toXto0Filler.json",
    "content": "{\n    \"sstore_Xto0toXto0\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"change X -> 0 -> X -> 0\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n\t\t\t\"//comment\" : \"CALL to a contract\",\n                \"indexes\" : {\n                    \"data\" : [0],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b000000000000000000000000000000000000000\" : {\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x00\"\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"nonce\" : \"1\",\n\t\t\t\"storage\" : {\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"CALLCODE AND DELEGATECALL\",\n                \"indexes\" : {\n                    \"data\" : [1, 2],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b000000000000000000000000000000000000000\" : {\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"nonce\" : \"1\",\n\t\t\t\"storage\" : {\n\t\t\t    \"0x01\" : \"0x00\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"STATICCALL, fails on storage change\",\n                \"indexes\" : {\n                    \"data\" : 3,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"inside CREATE2 init code\",\n                \"indexes\" : {\n                    \"data\" : 4,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \t\t\"0xa26b643c4ba8272d24f60806a37b20f255620586\" : {\n                        \"storage\" : {\n\t\t\t    \t\t\t\"0x00\" : \"0x00\",\n\t\t\t    \t\t\t\"0x01\" : \"0x01\"\n\t\t        \t\t}\n\t\t    \t\t},\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"ALL of above but going OOG\",\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x00\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"ALL of above but REVERT at the end\",\n                \"indexes\" : {\n                    \"data\" : [5,6,7,8,9],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x00\"\n\t\t        }\n\t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"b000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 0 [[1]] 1 [[1]] 0 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t    \"0x01\" : \"0x01\"\n                }\n            },\n\t    \"c000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 0 [[1]] 1 [[1]] 0 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t    \"0x01\" : \"0x01\"\n                }\n            },\n\t    \"dea0000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 1 [[1]] 0 [[2]] 1 [[2]] 0 [[3]] 1 [[3]] 0 [[4]] 1 [[4]] 0 [[5]] 1 [[5]] 0 [[6]] 1 [[6]] 0 [[7]] 1 [[7]] 0 [[8]] 1 [[8]] 0 [[9]] 1 [[9]] 0 [[10]] 1 [[10]] 0 [[11]] 1 [[11]] 0 [[12]] 1 [[12]] 0 [[13]] 1 [[13]] 0 [[14]] 1 [[14]] 0 [[15]] 1 [[15]] 0 [[16]] 1 [[16]] 0  [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\"{ (CALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)         (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0)   (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (STATICCALL 300000 0xc000000000000000000000000000000000000000 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (seq   (CREATE2 0 0 (lll (seq (SSTORE 0 1) (SSTORE 0 0) (SSTORE 0 1) (SSTORE 0 0) (SSTORE 1 1) ) 0) 0) (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (STOP) )   }\",\n\t\t\"{ (CALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)         (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0)   (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (STATICCALL 300000 0xc000000000000000000000000000000000000000 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (seq   (CREATE2 0 0 (lll (seq (SSTORE 0 1) (SSTORE 0 0) (SSTORE 0 1) (SSTORE 0 0) (SSTORE 1 1) ) 0) 0) (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32) (STOP) )   }\"\n\n            ],\n            \"gasLimit\" : [\n                \"1000000\", \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSStoreTest/sstore_Xto0toYFiller.json",
    "content": "{\n    \"sstore_Xto0toY\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"change X -> 0 -> Y\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n\t\t\"//comment\" : \"CALL to a contract\",\n                \"indexes\" : {\n                    \"data\" : [0],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b000000000000000000000000000000000000000\" : {\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"nonce\" : \"1\",\n\t\t\t\"storage\" : {\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"CALLCODE AND DELEGATECALL\",\n                \"indexes\" : {\n                    \"data\" : [1, 2],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b000000000000000000000000000000000000000\" : {\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x02\"\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"nonce\" : \"1\",\n\t\t\t\"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"STATICCALL, fails on storage change\",\n                \"indexes\" : {\n                    \"data\" : 3,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"inside CREATE2 init code\",\n                \"indexes\" : {\n                    \"data\" : 4,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"0x7123afcd1c327c946e05b4fb8aea10ad0f85cb52\" : {\n                        \"storage\" : {\n\t\t\t    \"0x00\" : \"0x01\",\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"ALL of above but going OOG\",\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x00\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"ALL of above but REVERT at the end\",\n                \"indexes\" : {\n                    \"data\" : [5,6,7,8,9],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x00\"\n\t\t        }\n\t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"b000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 0 [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t    \"0x01\" : \"0x02\"\n                }\n            },\n\t    \"c000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 0 [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t    \"0x01\" : \"0x02\"\n                }\n            },\n\t    \"dea0000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 1 [[1]] 0 [[2]] 1 [[2]] 0 [[3]] 1 [[3]] 0 [[4]] 1 [[4]] 0 [[5]] 1 [[5]] 0 [[6]] 1 [[6]] 0 [[7]] 1 [[7]] 0 [[8]] 1 [[8]] 0 [[9]] 1 [[9]] 0 [[10]] 1 [[10]] 0 [[11]] 1 [[11]] 0 [[12]] 1 [[12]] 0 [[13]] 1 [[13]] 0 [[14]] 1 [[14]] 0 [[15]] 1 [[15]] 0 [[16]] 1 [[16]] 0  [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\"{ (CALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)         (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0)   (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (STATICCALL 300000 0xc000000000000000000000000000000000000000 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (seq   (CREATE2 0 0 (lll (seq (SSTORE 0 2) (SSTORE 0 0) (SSTORE 0 1) (SSTORE 1 1) ) 0) 0) (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (STOP) )   }\",\n\t\t\"{ (CALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)         (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0)   (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (STATICCALL 300000 0xc000000000000000000000000000000000000000 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (seq   (CREATE2 0 0 (lll (seq (SSTORE 0 2) (SSTORE 0 0) (SSTORE 0 1) (SSTORE 1 1) ) 0) 0) (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32) (STOP) )   }\"\n\n            ],\n            \"gasLimit\" : [\n                \"1000000\", \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSStoreTest/sstore_XtoXFiller.json",
    "content": "{\n    \"sstore_XtoX\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"change X -> X\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n\t\t\"//comment\" : \"CALL to a contract\",\n                \"indexes\" : {\n                    \"data\" : [0],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b000000000000000000000000000000000000000\" : {\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"nonce\" : \"1\",\n\t\t\t\"storage\" : {\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"CALLCODE AND DELEGATECALL\",\n                \"indexes\" : {\n                    \"data\" : [1, 2],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b000000000000000000000000000000000000000\" : {\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"nonce\" : \"1\",\n\t\t\t\"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"STATICCALL, fails on storage change\",\n                \"indexes\" : {\n                    \"data\" : 3,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"inside CREATE2 init code\",\n                \"indexes\" : {\n                    \"data\" : 4,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"0xf797d87eb948007fd777404ef459196b099d3ebe\" : {\n                        \"storage\" : {\n\t\t\t    \"0x00\" : \"0x01\",\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"ALL of above but going OOG\",\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x00\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"ALL of above but REVERT at the end\",\n                \"indexes\" : {\n                    \"data\" : [5,6,7,8,9],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x00\"\n\t\t        }\n\t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"b000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t    \"0x01\" : \"0x01\"\n                }\n            },\n\t    \"c000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t    \"0x01\" : \"0x01\"\n                }\n            },\n\t    \"dea0000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 1 [[1]] 0 [[2]] 1 [[2]] 0 [[3]] 1 [[3]] 0 [[4]] 1 [[4]] 0 [[5]] 1 [[5]] 0 [[6]] 1 [[6]] 0 [[7]] 1 [[7]] 0 [[8]] 1 [[8]] 0 [[9]] 1 [[9]] 0 [[10]] 1 [[10]] 0 [[11]] 1 [[11]] 0 [[12]] 1 [[12]] 0 [[13]] 1 [[13]] 0 [[14]] 1 [[14]] 0 [[15]] 1 [[15]] 0 [[16]] 1 [[16]] 0  [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\"{ (CALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)         (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0)   (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (STATICCALL 300000 0xc000000000000000000000000000000000000000 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (seq   (CREATE2 0 0 (lll (seq (SSTORE 0 1) (SSTORE 0 1) (SSTORE 1 1) ) 0) 0) (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (STOP) )   }\",\n\t\t\"{ (CALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)         (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0)   (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (STATICCALL 300000 0xc000000000000000000000000000000000000000 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (seq   (CREATE2 0 0 (lll (seq (SSTORE 0 1) (SSTORE 0 1) (SSTORE 1 1) ) 0) 0) (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32) (STOP) )   }\"\n\n            ],\n            \"gasLimit\" : [\n                \"3000000\", \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSStoreTest/sstore_XtoXto0Filler.json",
    "content": "{\n    \"sstore_XtoXto0\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"change X -> X -> 0\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n\t\t\"//comment\" : \"CALL to a contract\",\n                \"indexes\" : {\n                    \"data\" : [0],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b000000000000000000000000000000000000000\" : {\n\t\t        \"storage\" : {\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"nonce\" : \"1\",\n\t\t\t\"storage\" : {\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"CALLCODE AND DELEGATECALL\",\n                \"indexes\" : {\n                    \"data\" : [1, 2],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b000000000000000000000000000000000000000\" : {\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"nonce\" : \"1\",\n\t\t\t\"storage\" : {\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"STATICCALL, fails on storage change\",\n                \"indexes\" : {\n                    \"data\" : 3,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"inside CREATE2 init code\",\n                \"indexes\" : {\n                    \"data\" : 4,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"0x01b59db2b74b93797420b1a86a28fe35f1e7d0dd\" : {\n                        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"ALL of above but going OOG\",\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x00\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"ALL of above but REVERT at the end\",\n                \"indexes\" : {\n                    \"data\" : [5,6,7,8,9],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x00\"\n\t\t        }\n\t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"b000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 1 [[1]] 0 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t    \"0x01\" : \"0x01\"\n                }\n            },\n\t    \"c000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 1 [[1]] 0 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t    \"0x01\" : \"0x01\"\n                }\n            },\n\t    \"dea0000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 1 [[1]] 0 [[2]] 1 [[2]] 0 [[3]] 1 [[3]] 0 [[4]] 1 [[4]] 0 [[5]] 1 [[5]] 0 [[6]] 1 [[6]] 0 [[7]] 1 [[7]] 0 [[8]] 1 [[8]] 0 [[9]] 1 [[9]] 0 [[10]] 1 [[10]] 0 [[11]] 1 [[11]] 0 [[12]] 1 [[12]] 0 [[13]] 1 [[13]] 0 [[14]] 1 [[14]] 0 [[15]] 1 [[15]] 0 [[16]] 1 [[16]] 0  [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\"{ (CALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)         (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0)   (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (STATICCALL 300000 0xc000000000000000000000000000000000000000 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (seq   (CREATE2 0 0 (lll (seq (SSTORE 0 1) (SSTORE 0 1) (SSTORE 0 0) (SSTORE 1 1) ) 0) 0) (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (STOP) )   }\",\n\t\t\"{ (CALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)         (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0)   (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (STATICCALL 300000 0xc000000000000000000000000000000000000000 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (seq   (CREATE2 0 0 (lll (seq (SSTORE 0 1) (SSTORE 0 1) (SSTORE 0 0) (SSTORE 1 1) ) 0) 0) (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32) (STOP) )   }\"\n\n            ],\n            \"gasLimit\" : [\n                \"1000000\", \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSStoreTest/sstore_XtoXtoXFiller.json",
    "content": "{\n    \"sstore_XtoXtoX\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"change X -> X -> X\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n\t\t\"//comment\" : \"CALL to a contract\",\n                \"indexes\" : {\n                    \"data\" : [0],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b000000000000000000000000000000000000000\" : {\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"nonce\" : \"1\",\n\t\t\t\"storage\" : {\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"CALLCODE AND DELEGATECALL\",\n                \"indexes\" : {\n                    \"data\" : [1, 2],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b000000000000000000000000000000000000000\" : {\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"nonce\" : \"1\",\n\t\t\t\"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"STATICCALL, fails on storage change\",\n                \"indexes\" : {\n                    \"data\" : 3,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"inside CREATE2 init code\",\n                \"indexes\" : {\n                    \"data\" : 4,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"0xba3394a0586b8419b4cf72c7d0f7e75a55a703f8\" : {\n                        \"storage\" : {\n\t\t\t    \"0x00\" : \"0x01\",\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"ALL of above but going OOG\",\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x00\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"ALL of above but REVERT at the end\",\n                \"indexes\" : {\n                    \"data\" : [5,6,7,8,9],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x00\"\n\t\t        }\n\t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"b000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 1 [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t    \"0x01\" : \"0x01\"\n                }\n            },\n\t    \"c000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 1 [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t    \"0x01\" : \"0x01\"\n                }\n            },\n\t    \"dea0000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 1 [[1]] 0 [[2]] 1 [[2]] 0 [[3]] 1 [[3]] 0 [[4]] 1 [[4]] 0 [[5]] 1 [[5]] 0 [[6]] 1 [[6]] 0 [[7]] 1 [[7]] 0 [[8]] 1 [[8]] 0 [[9]] 1 [[9]] 0 [[10]] 1 [[10]] 0 [[11]] 1 [[11]] 0 [[12]] 1 [[12]] 0 [[13]] 1 [[13]] 0 [[14]] 1 [[14]] 0 [[15]] 1 [[15]] 0 [[16]] 1 [[16]] 0  [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\"{ (CALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)         (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0)   (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (STATICCALL 300000 0xc000000000000000000000000000000000000000 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (seq   (CREATE2 0 0 (lll (seq (SSTORE 0 1) (SSTORE 0 1) (SSTORE 0 1) (SSTORE 1 1) ) 0) 0) (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (STOP) )   }\",\n\t\t\"{ (CALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)         (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0)   (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (STATICCALL 300000 0xc000000000000000000000000000000000000000 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (seq   (CREATE2 0 0 (lll (seq (SSTORE 0 1) (SSTORE 0 1) (SSTORE 0 1) (SSTORE 1 1) ) 0) 0) (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32) (STOP) )   }\"\n\n            ],\n            \"gasLimit\" : [\n                \"1000000\", \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSStoreTest/sstore_XtoXtoYFiller.json",
    "content": "{\n    \"sstore_XtoXtoY\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"change X -> X -> Y\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n\t\t\t\"//comment\" : \"CALL to a contract\",\n            \"indexes\" : {\n                \"data\" : [0],\n                \"gas\" : 0,\n                \"value\" : -1\n            },\n            \"network\" : [\">=Cancun\"],\n            \"result\" : {\n\t\t\t    \"b000000000000000000000000000000000000000\" : {\n\t\t\t        \"storage\" : {\n\t\t\t\t\t    \"0x01\" : \"0x01\"\n\t\t\t        }\n\t\t\t    },\n\t\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t\t        \"storage\" : {\n\t\t\t\t\t    \"0x01\" : \"0x01\"\n\t\t\t        }\n\t\t\t    },\n\t\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\t\t\"nonce\" : \"1\",\n\t\t\t\t\t\"storage\" : {\n\t\t\t        }\n\t\t\t    }\n           }\n        },\n\t    {\n\t\t\t\"//comment\" : \"CALLCODE AND DELEGATECALL\",\n            \"indexes\" : {\n                \"data\" : [1, 2],\n                \"gas\" : 0,\n                \"value\" : -1\n            },\n            \"network\" : [\">=Cancun\"],\n            \"result\" : {\n\t\t\t    \"b000000000000000000000000000000000000000\" : {\n\t\t\t        \"storage\" : {\n\t\t\t\t\t    \"0x01\" : \"0x02\"\n\t\t\t        }\n\t\t\t    },\n\t\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t\t        \"storage\" : {\n\t\t\t\t\t    \"0x01\" : \"0x01\"\n\t\t\t        }\n\t\t\t    },\n\t\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\t\t\"nonce\" : \"1\",\n\t\t\t\t\t\"storage\" : {\n\t\t\t\t\t    \"0x01\" : \"0x01\"\n\t\t\t        }\n\t\t\t    }\n            }\n        },\n\t    {\n\t\t\t\"//comment\" : \"STATICCALL, fails on storage change\",\n            \"indexes\" : {\n                \"data\" : 3,\n                \"gas\" : 0,\n                \"value\" : -1\n            },\n            \"network\" : [\">=Cancun\"],\n            \"result\" : {\n\t\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t\t        \"storage\" : {\n\t\t\t\t\t    \"0x01\" : \"0x01\"\n\t\t\t        }\n\t\t\t    }\n            }\n        },\n\t    {\n\t\t\t\"//comment\" : \"inside CREATE2 init code\",\n            \"indexes\" : {\n                \"data\" : 4,\n                \"gas\" : 0,\n                \"value\" : -1\n            },\n            \"network\" : [\">=Cancun\"],\n            \"result\" : {\n\t\t\t    \"0x6ab22377d181d9f2d8b5bffc62ac497abbd7cfc5\" : {\n                    \"storage\" : {\n\t\t\t\t\t    \"0x00\" : \"0x01\",\n\t\t\t\t\t    \"0x01\" : \"0x01\"\n\t\t\t        }\n\t\t\t    },\n\t\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t\t        \"storage\" : {\n\t\t\t\t\t    \"0x01\" : \"0x01\"\n\t\t\t        }\n\t\t\t    }\n            }\n        },\n\t    {\n\t\t\t\"//comment\" : \"ALL of above but going OOG\",\n            \"indexes\" : {\n                \"data\" : -1,\n                \"gas\" : 1,\n                \"value\" : -1\n            },\n            \"network\" : [\">=Cancun\"],\n            \"result\" : {\n\t\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t\t        \"storage\" : {\n\t\t\t\t\t    \"0x01\" : \"0x00\"\n\t\t\t        }\n\t\t\t    }\n            }\n        },\n\t    {\n\t\t\t\"//comment\" : \"ALL of above but REVERT at the end\",\n            \"indexes\" : {\n                \"data\" : [5,6,7,8,9],\n                \"gas\" : 0,\n                \"value\" : -1\n            },\n            \"network\" : [\">=Cancun\"],\n            \"result\" : {\n\t\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t\t        \"storage\" : {\n\t\t\t\t\t    \"0x01\" : \"0x00\"\n\t\t\t        }\n\t\t\t    }\n            }\n        }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"b000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 2 [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t    \"0x01\" : \"0x02\"\n                }\n            },\n\t    \"c000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 2 [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t    \"0x01\" : \"0x02\"\n                }\n            },\n\t    \"dea0000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 1 [[1]] 0 [[2]] 1 [[2]] 0 [[3]] 1 [[3]] 0 [[4]] 1 [[4]] 0 [[5]] 1 [[5]] 0 [[6]] 1 [[6]] 0 [[7]] 1 [[7]] 0 [[8]] 1 [[8]] 0 [[9]] 1 [[9]] 0 [[10]] 1 [[10]] 0 [[11]] 1 [[11]] 0 [[12]] 1 [[12]] 0 [[13]] 1 [[13]] 0 [[14]] 1 [[14]] 0 [[15]] 1 [[15]] 0 [[16]] 1 [[16]] 0  [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\"{ (CALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)         (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0)   (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (STATICCALL 300000 0xc000000000000000000000000000000000000000 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (seq   (CREATE2 0 0 (lll (seq (SSTORE 0 2) (SSTORE 0 2) (SSTORE 0 1) (SSTORE 1 1) ) 0) 0) (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (STOP) )   }\",\n\t\t\"{ (CALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)         (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0)   (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (STATICCALL 300000 0xc000000000000000000000000000000000000000 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (seq   (CREATE2 0 0 (lll (seq (SSTORE 0 2) (SSTORE 0 2) (SSTORE 0 1) (SSTORE 1 1) ) 0) 0) (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32) (STOP) )   }\"\n\n            ],\n            \"gasLimit\" : [\n                \"1000000\", \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSStoreTest/sstore_XtoYFiller.json",
    "content": "{\n    \"sstore_XtoY\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"change X -> Y\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n\t\t\"//comment\" : \"CALL to a contract\",\n                \"indexes\" : {\n                    \"data\" : [0],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b000000000000000000000000000000000000000\" : {\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x02\"\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"nonce\" : \"1\",\n\t\t\t\"storage\" : {\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"CALLCODE AND DELEGATECALL\",\n                \"indexes\" : {\n                    \"data\" : [1, 2],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b000000000000000000000000000000000000000\" : {\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"nonce\" : \"1\",\n\t\t\t\"storage\" : {\n\t\t\t    \"0x01\" : \"0x02\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"STATICCALL, fails on storage change\",\n                \"indexes\" : {\n                    \"data\" : 3,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"inside CREATE2 init code\",\n                \"indexes\" : {\n                    \"data\" : 4,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"0x7e6ef1efbe92ad9adcfd8c92ba7932c904d03735\" : {\n                        \"storage\" : {\n\t\t\t    \"0x00\" : \"0x02\",\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"ALL of above but going OOG\",\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x00\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"ALL of above but REVERT at the end\",\n                \"indexes\" : {\n                    \"data\" : [5,6,7,8,9],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x00\"\n\t\t        }\n\t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"b000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 2 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t    \"0x01\" : \"0x01\"\n                }\n            },\n\t    \"c000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 2 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t    \"0x01\" : \"0x01\"\n                }\n            },\n\t    \"dea0000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 1 [[1]] 0 [[2]] 1 [[2]] 0 [[3]] 1 [[3]] 0 [[4]] 1 [[4]] 0 [[5]] 1 [[5]] 0 [[6]] 1 [[6]] 0 [[7]] 1 [[7]] 0 [[8]] 1 [[8]] 0 [[9]] 1 [[9]] 0 [[10]] 1 [[10]] 0 [[11]] 1 [[11]] 0 [[12]] 1 [[12]] 0 [[13]] 1 [[13]] 0 [[14]] 1 [[14]] 0 [[15]] 1 [[15]] 0 [[16]] 1 [[16]] 0  [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\"{ (CALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)         (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0)   (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (STATICCALL 300000 0xc000000000000000000000000000000000000000 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (seq   (CREATE2 0 0 (lll (seq (SSTORE 0 1) (SSTORE 0 2) (SSTORE 1 1) ) 0) 0) (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (STOP) )   }\",\n\t\t\"{ (CALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)         (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0)   (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (STATICCALL 300000 0xc000000000000000000000000000000000000000 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (seq   (CREATE2 0 0 (lll (seq (SSTORE 0 1) (SSTORE 0 2) (SSTORE 1 1) ) 0) 0) (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32) (STOP) )   }\"\n\n            ],\n            \"gasLimit\" : [\n                \"3000000\", \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSStoreTest/sstore_XtoYto0Filler.json",
    "content": "{\n    \"sstore_XtoYto0\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"change X -> Y -> 0\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n\t\t\"//comment\" : \"CALL to a contract\",\n                \"indexes\" : {\n                    \"data\" : [0],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b000000000000000000000000000000000000000\" : {\n\t\t        \"storage\" : {\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"nonce\" : \"1\",\n\t\t\t\"storage\" : {\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"CALLCODE AND DELEGATECALL\",\n                \"indexes\" : {\n                    \"data\" : [1, 2],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b000000000000000000000000000000000000000\" : {\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"nonce\" : \"1\",\n\t\t\t\"storage\" : {\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"STATICCALL, fails on storage change\",\n                \"indexes\" : {\n                    \"data\" : 3,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"inside CREATE2 init code\",\n                \"indexes\" : {\n                    \"data\" : 4,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"0x96606e69ee07f3ba565d1f25edea6c691a780e71\" : {\n                        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"ALL of above but going OOG\",\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x00\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"ALL of above but REVERT at the end\",\n                \"indexes\" : {\n                    \"data\" : [5,6,7,8,9],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x00\"\n\t\t        }\n\t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"b000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 2 [[1]] 0 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t    \"0x01\" : \"0x01\"\n                }\n            },\n\t    \"c000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 2 [[1]] 0 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t    \"0x01\" : \"0x01\"\n                }\n            },\n\t    \"dea0000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 1 [[1]] 0 [[2]] 1 [[2]] 0 [[3]] 1 [[3]] 0 [[4]] 1 [[4]] 0 [[5]] 1 [[5]] 0 [[6]] 1 [[6]] 0 [[7]] 1 [[7]] 0 [[8]] 1 [[8]] 0 [[9]] 1 [[9]] 0 [[10]] 1 [[10]] 0 [[11]] 1 [[11]] 0 [[12]] 1 [[12]] 0 [[13]] 1 [[13]] 0 [[14]] 1 [[14]] 0 [[15]] 1 [[15]] 0 [[16]] 1 [[16]] 0  [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\"{ (CALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)         (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0)   (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (STATICCALL 300000 0xc000000000000000000000000000000000000000 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (seq   (CREATE2 0 0 (lll (seq (SSTORE 0 1) (SSTORE 0 2) (SSTORE 0 0) (SSTORE 1 1) ) 0) 0) (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (STOP) )   }\",\n\t\t\"{ (CALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)         (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0)   (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (STATICCALL 300000 0xc000000000000000000000000000000000000000 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (seq   (CREATE2 0 0 (lll (seq (SSTORE 0 1) (SSTORE 0 2) (SSTORE 0 0) (SSTORE 1 1) ) 0) 0) (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32) (STOP) )   }\"\n\n            ],\n            \"gasLimit\" : [\n                \"1000000\", \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSStoreTest/sstore_XtoYtoXFiller.json",
    "content": "{\n    \"sstore_XtoYtoX\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"change X -> Y -> X\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n\t\t\"//comment\" : \"CALL to a contract\",\n                \"indexes\" : {\n                    \"data\" : [0],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b000000000000000000000000000000000000000\" : {\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"nonce\" : \"1\",\n\t\t\t\"storage\" : {\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"CALLCODE AND DELEGATECALL\",\n                \"indexes\" : {\n                    \"data\" : [1, 2],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b000000000000000000000000000000000000000\" : {\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"nonce\" : \"1\",\n\t\t\t\"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"STATICCALL, fails on storage change\",\n                \"indexes\" : {\n                    \"data\" : 3,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"inside CREATE2 init code\",\n                \"indexes\" : {\n                    \"data\" : 4,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"0x90b7d8d4bc39664e30be0c2380e2b04aa15c6518\" : {\n                        \"storage\" : {\n\t\t\t    \"0x00\" : \"0x01\",\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"ALL of above but going OOG\",\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x00\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"ALL of above but REVERT at the end\",\n                \"indexes\" : {\n                    \"data\" : [5,6,7,8,9],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x00\"\n\t\t        }\n\t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"b000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 2 [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t    \"0x01\" : \"0x01\"\n                }\n            },\n\t    \"c000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 2 [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t    \"0x01\" : \"0x01\"\n                }\n            },\n\t    \"dea0000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 1 [[1]] 0 [[2]] 1 [[2]] 0 [[3]] 1 [[3]] 0 [[4]] 1 [[4]] 0 [[5]] 1 [[5]] 0 [[6]] 1 [[6]] 0 [[7]] 1 [[7]] 0 [[8]] 1 [[8]] 0 [[9]] 1 [[9]] 0 [[10]] 1 [[10]] 0 [[11]] 1 [[11]] 0 [[12]] 1 [[12]] 0 [[13]] 1 [[13]] 0 [[14]] 1 [[14]] 0 [[15]] 1 [[15]] 0 [[16]] 1 [[16]] 0  [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\"{ (CALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)         (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0)   (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (STATICCALL 300000 0xc000000000000000000000000000000000000000 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (seq   (CREATE2 0 0 (lll (seq (SSTORE 0 1) (SSTORE 0 2) (SSTORE 0 1) (SSTORE 1 1) ) 0) 0) (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (STOP) )   }\",\n\t\t\"{ (CALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)         (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0)   (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (STATICCALL 300000 0xc000000000000000000000000000000000000000 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (seq   (CREATE2 0 0 (lll (seq (SSTORE 0 1) (SSTORE 0 2) (SSTORE 0 1) (SSTORE 1 1) ) 0) 0) (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32) (STOP) )   }\"\n\n            ],\n            \"gasLimit\" : [\n                \"1000000\", \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSStoreTest/sstore_XtoYtoYFiller.json",
    "content": "{\n    \"sstore_XtoYtoY\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"change X -> Y -> Y\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n\t\t\"//comment\" : \"CALL to a contract\",\n                \"indexes\" : {\n                    \"data\" : [0],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b000000000000000000000000000000000000000\" : {\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"nonce\" : \"1\",\n\t\t\t\"storage\" : {\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"CALLCODE AND DELEGATECALL\",\n                \"indexes\" : {\n                    \"data\" : [1, 2],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b000000000000000000000000000000000000000\" : {\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x02\"\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"nonce\" : \"1\",\n\t\t\t\"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"STATICCALL, fails on storage change\",\n                \"indexes\" : {\n                    \"data\" : 3,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"inside CREATE2 init code\",\n                \"indexes\" : {\n                    \"data\" : 4,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"0xa84440891ddec0f3a6fa2423d55e437383ad272b\" : {\n                        \"storage\" : {\n\t\t\t    \"0x00\" : \"0x01\",\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"ALL of above but going OOG\",\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x00\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"ALL of above but REVERT at the end\",\n                \"indexes\" : {\n                    \"data\" : [5,6,7,8,9],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x00\"\n\t\t        }\n\t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"b000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 1 [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t    \"0x01\" : \"0x02\"\n                }\n            },\n\t    \"c000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 1 [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t    \"0x01\" : \"0x02\"\n                }\n            },\n\t    \"dea0000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 1 [[1]] 0 [[2]] 1 [[2]] 0 [[3]] 1 [[3]] 0 [[4]] 1 [[4]] 0 [[5]] 1 [[5]] 0 [[6]] 1 [[6]] 0 [[7]] 1 [[7]] 0 [[8]] 1 [[8]] 0 [[9]] 1 [[9]] 0 [[10]] 1 [[10]] 0 [[11]] 1 [[11]] 0 [[12]] 1 [[12]] 0 [[13]] 1 [[13]] 0 [[14]] 1 [[14]] 0 [[15]] 1 [[15]] 0 [[16]] 1 [[16]] 0  [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\"{ (CALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)         (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0)   (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (STATICCALL 300000 0xc000000000000000000000000000000000000000 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (seq   (CREATE2 0 0 (lll (seq (SSTORE 0 2) (SSTORE 0 1) (SSTORE 0 1) (SSTORE 1 1) ) 0) 0) (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (STOP) )   }\",\n\t\t\"{ (CALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)         (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0)   (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (STATICCALL 300000 0xc000000000000000000000000000000000000000 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (seq   (CREATE2 0 0 (lll (seq (SSTORE 0 2) (SSTORE 0 1) (SSTORE 0 1) (SSTORE 1 1) ) 0) 0) (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32) (STOP) )   }\"\n\n            ],\n            \"gasLimit\" : [\n                \"1000000\", \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSStoreTest/sstore_XtoYtoZFiller.json",
    "content": "{\n    \"sstore_XtoYtoZ\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"change X -> Y -> Z\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n\t\t\"//comment\" : \"CALL to a contract\",\n                \"indexes\" : {\n                    \"data\" : [0],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b000000000000000000000000000000000000000\" : {\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x03\"\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"nonce\" : \"1\",\n\t\t\t\"storage\" : {\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"CALLCODE AND DELEGATECALL\",\n                \"indexes\" : {\n                    \"data\" : [1, 2],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b000000000000000000000000000000000000000\" : {\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"nonce\" : \"1\",\n\t\t\t\"storage\" : {\n\t\t\t    \"0x01\" : \"0x03\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"STATICCALL, fails on storage change\",\n                \"indexes\" : {\n                    \"data\" : 3,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"inside CREATE2 init code\",\n                \"indexes\" : {\n                    \"data\" : 4,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"0xde59ca290fa8b9e3db697325d153c540ac08321d\" : {\n                        \"storage\" : {\n\t\t\t    \"0x00\" : \"0x03\",\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"ALL of above but going OOG\",\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x00\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"ALL of above but REVERT at the end\",\n                \"indexes\" : {\n                    \"data\" : [5,6,7,8,9],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"dea0000000000000000000000000000000000000\" : {\n\t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t        \"storage\" : {\n\t\t\t    \"0x01\" : \"0x00\"\n\t\t        }\n\t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"b000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 2 [[1]] 3 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t    \"0x01\" : \"0x01\"\n                }\n            },\n\t    \"c000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 2 [[1]] 3 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t    \"0x01\" : \"0x01\"\n                }\n            },\n\t    \"dea0000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 1 [[1]] 0 [[2]] 1 [[2]] 0 [[3]] 1 [[3]] 0 [[4]] 1 [[4]] 0 [[5]] 1 [[5]] 0 [[6]] 1 [[6]] 0 [[7]] 1 [[7]] 0 [[8]] 1 [[8]] 0 [[9]] 1 [[9]] 0 [[10]] 1 [[10]] 0 [[11]] 1 [[11]] 0 [[12]] 1 [[12]] 0 [[13]] 1 [[13]] 0 [[14]] 1 [[14]] 0 [[15]] 1 [[15]] 0 [[16]] 1 [[16]] 0  [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\"{ (CALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)         (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0)   (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (STATICCALL 300000 0xc000000000000000000000000000000000000000 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0)}\",\n\t\t\"{ (seq   (CREATE2 0 0 (lll (seq (SSTORE 0 1) (SSTORE 0 2) (SSTORE 0 3) (SSTORE 1 1) ) 0) 0) (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (STOP) )   }\",\n\t\t\"{ (CALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)         (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 0 0 0)   (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (STATICCALL 300000 0xc000000000000000000000000000000000000000 0 0 0 0)     (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32)}\",\n\t\t\"{ (seq   (CREATE2 0 0 (lll (seq (SSTORE 0 1) (SSTORE 0 2) (SSTORE 0 3) (SSTORE 1 1) ) 0) 0) (CALL 600000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (REVERT 0 32) (STOP) )   }\"\n\n            ],\n            \"gasLimit\" : [\n                \"1000000\", \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSStoreTest/sstore_changeFromExternalCallInInitCodeFiller.json",
    "content": "{\n    \"sstore_changeFromExternalCallInInitCode\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"account already has storage X. create -> in init code change that account's storage -> 0 -> change it to X again \"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n\t\t\"//comment\" : \"call \",\n                \"indexes\" : {\n                    \"data\" : [0, 1, 3],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"bea0000000000000000000000000000000000000\" : {\n\t\t\t\"nonce\" : \"0\",\n\t\t\t\"storage\" : {\n\t\t\t    \"0x00\" : \"0x01\",\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"call + revert\",\n                \"indexes\" : {\n                    \"data\" : [2, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"bea0000000000000000000000000000000000000\" : {\n\t\t\t\"nonce\" : \"0\",\n\t\t\t\"storage\" : {\n\t\t\t    \"0x00\" : \"0x00\",\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"6602cfc925be62bf18470598a98f72812a1ebef2\" : {\n\t\t\t\"shouldnotexist\" : \"1\"\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"callcode\",\n                \"indexes\" : {\n                    \"data\" : [4],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"bea0000000000000000000000000000000000000\" : {\n\t\t\t\"nonce\" : \"0\",\n\t\t\t\"storage\" : {\n\t\t\t    \"0x00\" : \"0x00\",\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"nonce\" : \"1\",\n\t\t\t\"storage\" : {\n\t\t\t    \"0x00\" : \"0x01\",\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n\t\t\"//comment\" : \"callcode + create2\",\n                \"indexes\" : {\n                    \"data\" : [5, 7],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"bea0000000000000000000000000000000000000\" : {\n\t\t\t\"nonce\" : \"0\",\n\t\t\t\"storage\" : {\n\t\t\t    \"0x00\" : \"0x00\",\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    },\n\t\t    \"0x0f446e1bd7a5da68b5e3a305c7030e3aa8efc293\" : {\n\t\t\t\"nonce\" : \"1\",\n\t\t\t\"storage\" : {\n\t\t\t    \"0x00\" : \"0x01\",\n\t\t\t    \"0x01\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"bea0000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ (SSTORE 1 0) (SSTORE 1 1) (SSTORE 0 1) }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t    \"0x01\" : \"0x01\"\n                }\n            },\n\t    \"dea0000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[1]] 1 [[1]] 0 [[2]] 1 [[2]] 0 [[3]] 1 [[3]] 0 [[4]] 1 [[4]] 0 [[5]] 1 [[5]] 0 [[6]] 1 [[6]] 0 [[7]] 1 [[7]] 0 [[8]] 1 [[8]] 0 [[9]] 1 [[9]] 0 [[10]] 1 [[10]] 0 [[11]] 1 [[11]] 0 [[12]] 1 [[12]] 0 [[13]] 1 [[13]] 0 [[14]] 1 [[14]] 0 [[15]] 1 [[15]] 0 [[16]] 1 [[16]] 0  [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\"{  (CALL 100000 0xbea0000000000000000000000000000000000000 0 0 0 0 0)   }\",\n\t\t\"{  (seq   (CREATE2 0 0 (lll (seq (CALL 100000 0xbea0000000000000000000000000000000000000 0 0 0 0 0) ) 0) 0) (STOP) ) }\",\n\t\t\"{  (seq   (CREATE2 0 0 (lll (seq (CALL 100000 0xbea0000000000000000000000000000000000000 0 0 0 0 0) ) 0) 0) (REVERT 0 0) (STOP) ) }\",\n\t\t\"{  (seq   (CREATE2 0 0 (lll (seq (CALL 100000 0xbea0000000000000000000000000000000000000 0 0 0 0 0) ) 0) 0) (CALL 200000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (STOP) ) }\",\n\t\t\"{  (CALLCODE 100000 0xbea0000000000000000000000000000000000000 0 0 0 0 0)   }\",\n\t\t\"{  (seq   (CREATE2 0 0 (lll (seq (CALLCODE 100000 0xbea0000000000000000000000000000000000000 0 0 0 0 0) ) 0) 0) (STOP) ) }\",\n\t\t\"{  (seq   (CREATE2 0 0 (lll (seq (CALLCODE 100000 0xbea0000000000000000000000000000000000000 0 0 0 0 0) ) 0) 0) (REVERT 0 0) (STOP) ) }\",\n\t\t\"{  (seq   (CREATE2 0 0 (lll (seq (CALLCODE 100000 0xbea0000000000000000000000000000000000000 0 0 0 0 0) ) 0) 0) (CALL 200000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (STOP) ) }\",\n\t\t\"{  (DELEGATECALL 100000 0xbea0000000000000000000000000000000000000 0 0 0 0)   }\",\n\t\t\"{  (seq   (CREATE2 0 0 (lll (seq (DELEGATECALL 100000 0xbea0000000000000000000000000000000000000 0 0 0 0) ) 0) 0) (STOP) ) }\",\n\t\t\"{  (seq   (CREATE2 0 0 (lll (seq (DELEGATECALL 100000 0xbea0000000000000000000000000000000000000 0 0 0 0) ) 0) 0) (REVERT 0 0) (STOP) ) }\",\n\t\t\"{  (seq   (CREATE2 0 0 (lll (seq (DELEGATECALL 100000 0xbea0000000000000000000000000000000000000 0 0 0 0) ) 0) 0) (CALL 200000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (STOP) ) }\",\n\t\t\"{  (STATICCALL 100000 0xbea0000000000000000000000000000000000000 0 0 0 0)   }\",\n\t\t\"{  (seq   (CREATE2 0 0 (lll (seq (STATICCALL 100000 0xbea0000000000000000000000000000000000000 0 0 0 0) ) 0) 0) (STOP) ) }\",\n\t\t\"{  (seq   (CREATE2 0 0 (lll (seq (STATICCALL 100000 0xbea0000000000000000000000000000000000000 0 0 0 0) ) 0) 0) (REVERT 0 0) (STOP) ) }\",\n\t\t\"{  (seq   (CREATE2 0 0 (lll (seq (STATICCALL 100000 0xbea0000000000000000000000000000000000000 0 0 0 0) ) 0) 0) (CALL 200000 0xdea0000000000000000000000000000000000000 0 0 0 0 0) (STOP) ) }\"\n            ],\n            \"gasLimit\" : [\n                \"200000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSStoreTest/sstore_gasLeftFiller.json",
    "content": "{\n  \"sstore_gasLeft\": {\n    \"_info\": {\n      \"comment\": \"Checks EIP-1706/EIP-2200 out of gas requirement for non-mutating SSTOREs.\"\n    },\n    \"env\": {\n      \"currentCoinbase\": \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n      \"currentDifficulty\": \"0x020000\",\n      \"currentGasLimit\": \"10000000\",\n      \"currentNumber\": \"1\",\n      \"currentTimestamp\": \"1000\"\n    },\n    \"expect\": [\n      {\n        \"indexes\": {\n          \"data\": [0, 1, 3, 4, 6, 7],\n          \"gas\": 0,\n          \"value\": -1\n        },\n        \"network\": [\">=Cancun\"],\n        \"result\": {\n          \"<contract:0xc000000000000000000000000000000000000000>\": {\n            \"storage\": {\n              \"0x01\": \"0x00\"\n            }\n          }\n        }\n      },\n      {\n        \"indexes\": {\n          \"data\": [2, 5, 8],\n          \"gas\": 0,\n          \"value\": -1\n        },\n        \"network\": [\">=Cancun\"],\n        \"result\": {\n          \"<contract:0xc000000000000000000000000000000000000000>\": {\n            \"storage\": {\n              \"0x01\": \"0x01\"\n            }\n          }\n        }\n      }\n    ],\n    \"pre\": {\n      \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n        \"balance\": \"1000000000000\",\n        \"code\": \"\",\n        \"nonce\": \"0\",\n        \"storage\": {}\n      },\n      \"<contract:0xb000000000000000000000000000000000000000>\": {\n        \"balance\": \"\",\n        \"code\": \"{ [[1]] 1 }\",\n        \"nonce\": \"\",\n        \"storage\": {\n          \"0x01\": \"0x01\"\n        }\n      },\n      \"<contract:0xc000000000000000000000000000000000000000>\": {\n        \"balance\": \"\",\n        \"code\": \"{ [[1]] 1 }\",\n        \"nonce\": \"\",\n        \"storage\": {}\n      }\n    },\n    \"transaction\": {\n        \"//comment\": [\n            \"Each opcode is tested at 3 different GAS levels, one that will hit the SLOAD at 2299, 2300, and 2301.\",\n            \"Only the call with 2301 should succeed, which results in the 'when' clause calling the 0xc0... contract and setting state 0x...01 to 0x01.\",\n            \"Validation consists of seeing if the flag is set or not.\"\n        ],\n      \"data\": [\n        \"{ (when (CALL 2305 <contract:0xb000000000000000000000000000000000000000> 0 0 0 0 0) (CALL 30000 <contract:0xc000000000000000000000000000000000000000> 0 0 0 0 0)) }\",\n        \"{ (when (CALL 2306 <contract:0xb000000000000000000000000000000000000000> 0 0 0 0 0) (CALL 30000 <contract:0xc000000000000000000000000000000000000000> 0 0 0 0 0)) }\",\n        \"{ (when (CALL 2307 <contract:0xb000000000000000000000000000000000000000> 0 0 0 0 0) (CALL 30000 <contract:0xc000000000000000000000000000000000000000> 0 0 0 0 0)) }\",\n        \"{ [[1]] 1 (when (CALLCODE 2305 <contract:0xb000000000000000000000000000000000000000> 0 0 0 0 0) (CALL 30000 <contract:0xc000000000000000000000000000000000000000> 0 0 0 0 0)) }\",\n        \"{ [[1]] 1 (when (CALLCODE 2306 <contract:0xb000000000000000000000000000000000000000> 0 0 0 0 0) (CALL 30000 <contract:0xc000000000000000000000000000000000000000> 0 0 0 0 0)) }\",\n        \"{ [[1]] 1 (when (CALLCODE 2307 <contract:0xb000000000000000000000000000000000000000> 0 0 0 0 0) (CALL 30000 <contract:0xc000000000000000000000000000000000000000> 0 0 0 0 0)) }\",\n        \"{ [[1]] 1 (when (DELEGATECALL 2305 <contract:0xb000000000000000000000000000000000000000> 0 0 0 0)  (CALL 30000 <contract:0xc000000000000000000000000000000000000000> 0 0 0 0 0)) }\",\n        \"{ [[1]] 1 (when (DELEGATECALL 2306 <contract:0xb000000000000000000000000000000000000000> 0 0 0 0)  (CALL 30000 <contract:0xc000000000000000000000000000000000000000> 0 0 0 0 0)) }\",\n        \"{ [[1]] 1 (when (DELEGATECALL 2307 <contract:0xb000000000000000000000000000000000000000> 0 0 0 0)  (CALL 30000 <contract:0xc000000000000000000000000000000000000000> 0 0 0 0 0)) }\"\n      ],\n      \"gasLimit\": [\"200000\"],\n      \"gasPrice\": \"10\",\n      \"nonce\": \"0\",\n      \"secretKey\": \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n      \"to\": \"\",\n      \"value\": [\"1\"]\n    }\n  }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSelfBalance/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stSelfBalance/selfBalanceCallTypesFiller.json",
    "content": "{\n  \"selfBalanceCallTypes\": {\n    \"_info\": {\n      \"comment\": \"SELFBALANCE tests inside CALL, DELEGATECALL, and CALLCODE\"\n    },\n    \"env\": {\n      \"currentCoinbase\": \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n      \"currentDifficulty\": \"0x20000\",\n      \"currentGasLimit\": \"10000000000\",\n      \"currentNumber\": \"1\",\n      \"currentTimestamp\": \"1000\"\n    },\n    \"expect\": [\n      {\n        \"//comment\": \"For all CALL calls, expect storage in contract called to be modified\",\n        \"indexes\": {\n          \"data\": [0],\n          \"gas\": -1,\n          \"value\": -1\n        },\n        \"network\": [\">=Cancun\"],\n        \"result\": {\n          \"<contract:0x1100000000000000000000000000000000000000>\": {\n            \"storage\": {\n              \"0x11\": \"0x01\"\n            }\n          },\n          \"<contract:0x1200000000000000000000000000000000000000>\": {\n            \"storage\": {\n              \"0x21\": \"0x1100\"\n            }\n          },\n          \"<contract:0x1300000000000000000000000000000000000000>\": {\n            \"storage\": {\n              \"0x31\": \"0x05\"\n            }\n          },\n          \"<contract:0x1400000000000000000000000000000000000000>\": {\n            \"storage\": {\n              \"0x41\": \"0x1300\",\n              \"0x42\": \"0x12ff\",\n              \"0x43\": \"0x01\"\n            }\n          }\n        }\n      },\n      {\n        \"//comment\": \"For all DELEGATECALL and CALLCODE calls, expect storage in caller to be modified\",\n        \"indexes\": {\n          \"data\": [1, 2],\n          \"gas\": -1,\n          \"value\": -1\n        },\n        \"network\": [\">=Cancun\"],\n        \"result\": {\n          \"<contract:target:0x2000000000000000000000000000000000000000>\": {\n            \"storage\": {\n              \"0x00\": \"<contract:0x1100000000000000000000000000000000000000>\",\n              \"0x01\": \"<contract:0x1200000000000000000000000000000000000000>\",\n              \"0x02\": \"<contract:0x1300000000000000000000000000000000000000>\",\n              \"0x03\": \"<contract:0x1400000000000000000000000000000000000000>\",\n              \"0x11\": \"0x01\",\n              \"0x21\": \"0x2000\",\n              \"0x31\": \"0x05\",\n              \"0x41\": \"0x2000\",\n              \"0x42\": \"0x1fff\",\n              \"0x43\": \"0x01\"\n            }\n          }\n        }\n      }\n    ],\n    \"pre\": {\n      \"<contract:0x1100000000000000000000000000000000000000>\": {\n        \"balance\": \"0x1000\",\n        \"code\": \"{ [[ 0x11 ]] (EQ (SELFBALANCE) (BALANCE (ADDRESS))) }\",\n        \"nonce\": \"0\",\n        \"storage\": {}\n      },\n      \"<contract:0x1200000000000000000000000000000000000000>\": {\n        \"balance\": \"0x1100\",\n        \"code\": \"{ [[ 0x21 ]] (SELFBALANCE) }\",\n        \"//code\": \"0x47600155\",\n        \"nonce\": \"0\",\n        \"storage\": {}\n      },\n      \"<contract:0x1300000000000000000000000000000000000000>\": {\n        \"balance\": \"0x1200\",\n        \"//code\": \"record the gas, run the operation, then record the gas again.  Drop output, subtract 2 for GAS, what is left is the cost of the operation, store in storage 0x01.\",\n        \"code\": \"(asm GAS SELFBALANCE GAS SWAP1 POP SWAP1 SUB 2 SWAP1 SUB 0x31 SSTORE)\",\n        \"nonce\": \"0\",\n        \"storage\": {}\n      },\n      \"<contract:0x1400000000000000000000000000000000000000>\": {\n        \"balance\": \"0x1300\",\n        \"code\": \"(asm SELFBALANCE DUP1 0x41 SSTORE 0 0 0 0 1 0 0 CALL POP SELFBALANCE DUP1 0x42 SSTORE SWAP1 SUB 0x43 SSTORE)\",\n        \"nonce\": \"0\",\n        \"storage\": {}\n      },\n      \"<contract:target:0x2000000000000000000000000000000000000000>\": {\n        \"balance\": \"0x02000\",\n        \"//comment1\": \"starting at storage 0, call each contract by address until contract 0x0 is reached\",\n        \"//comment2\": \"If calldata 0 is 1 then CALL, if calldata 0 is 2 then DELEGATECALL, if calldata 0 is 3 then CALLCODE\",\n        \"code\": \"{(set 'i 0) (while @@ @i {(when (eq 0x01 $0x0) (call allgas @@ @i 0 0 0 0 0)) (when (eq 0x02 $0x0) (delegatecall allgas @@ @i 0 0 0 0)) (when (eq 0x03 $0x0) (callcode allgas @@ @i 0 0 0 0 0)) [i]:(+ @i 1)})}\",\n        \"nonce\": \"0\",\n        \"storage\": {\n          \"0x00\": \"<contract:0x1100000000000000000000000000000000000000>\",\n          \"0x01\": \"<contract:0x1200000000000000000000000000000000000000>\",\n          \"0x02\": \"<contract:0x1300000000000000000000000000000000000000>\",\n          \"0x03\": \"<contract:0x1400000000000000000000000000000000000000>\"\n        }\n      },\n      \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n        \"balance\": \"1000000000000000000000\",\n        \"code\": \"\",\n        \"nonce\": \"0\",\n        \"storage\": {}\n      }\n    },\n    \"transaction\": {\n      \"data\": [\n        \":raw 0x0000000000000000000000000000000000000000000000000000000000000001\",\n        \":raw 0x0000000000000000000000000000000000000000000000000000000000000002\",\n        \":raw 0x0000000000000000000000000000000000000000000000000000000000000003\"\n      ],\n      \"gasLimit\": [\"1000000\"],\n      \"gasPrice\": \"10\",\n      \"nonce\": \"0\",\n      \"secretKey\": \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n      \"to\": \"<contract:target:0x2000000000000000000000000000000000000000>\",\n      \"value\": [\"0\"]\n    }\n  }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSelfBalance/selfBalanceEqualsBalanceFiller.json",
    "content": "{\n    \"selfBalanceEqualsBalance\": {\n      \"env\": {\n        \"currentCoinbase\": \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n        \"currentDifficulty\": \"0x20000\",\n        \"currentGasLimit\": \"10000000000\",\n        \"currentNumber\": \"1\",\n        \"currentTimestamp\": \"1000\"\n      },\n      \"expect\": [\n        {\n          \"indexes\": {\n            \"data\": -1,\n            \"gas\": -1,\n            \"value\": -1\n          },\n          \"network\": [\">=Cancun\"],\n          \"result\": {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\": {\n              \"storage\": {\n                \"0x01\": \"0x01\"\n              }\n            }\n          }\n        }\n      ],\n      \"pre\": {\n        \"<contract:target:0x1000000000000000000000000000000000000000>\": {\n          \"balance\": \"0x01f4\",\n          \"code\": \"{ [[ 1 ]] (EQ (SELFBALANCE) (BALANCE (ADDRESS))) }\",\n          \"nonce\": \"0\",\n          \"storage\": {}\n        },\n        \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n          \"balance\": \"1000000000000000000000\",\n          \"code\": \"\",\n          \"nonce\": \"0\",\n          \"storage\": {}\n        }\n      },\n      \"transaction\": {\n        \"data\": [\"0x\"],\n        \"gasLimit\": [\"100000\"],\n        \"gasPrice\": \"10\",\n        \"nonce\": \"0\",\n        \"secretKey\": \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n        \"to\": \"<contract:target:0x1000000000000000000000000000000000000000>\",\n        \"value\": [\"0\"]\n      }\n    }\n  }\n  \n"
  },
  {
    "path": "tests/static/state_tests/stSelfBalance/selfBalanceFiller.json",
    "content": "{\n    \"selfBalance\": {\n      \"env\": {\n        \"currentCoinbase\": \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n        \"currentDifficulty\": \"0x20000\",\n        \"currentGasLimit\": \"10000000000\",\n        \"currentNumber\": \"1\",\n        \"currentTimestamp\": \"1000\"\n      },\n      \"expect\": [\n        {\n          \"indexes\": {\n            \"data\": -1,\n            \"gas\": -1,\n            \"value\": -1\n          },\n          \"network\": [\">=Cancun\"],\n          \"result\": {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\": {\n              \"storage\": {\n                \"0x01\": \"0x01f4\"\n              }\n            }\n          }\n        }\n      ],\n      \"pre\": {\n        \"<contract:target:0x1000000000000000000000000000000000000000>\": {\n          \"balance\": \"0x01f4\",\n          \"code\": \"{ [[ 1 ]] (SELFBALANCE) }\",\n          \"//code\": \"0x47600155\",\n          \"nonce\": \"0\",\n          \"storage\": {}\n        },\n        \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n          \"balance\": \"1000000000000000000000\",\n          \"code\": \"\",\n          \"nonce\": \"0\",\n          \"storage\": {}\n        }\n      },\n      \"transaction\": {\n        \"data\": [\"0x\"],\n        \"gasLimit\": [\"100000\"],\n        \"gasPrice\": \"10\",\n        \"nonce\": \"0\",\n        \"secretKey\": \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n        \"to\": \"<contract:target:0x1000000000000000000000000000000000000000>\",\n        \"value\": [\"0\"]\n      }\n    }\n  }\n  \n"
  },
  {
    "path": "tests/static/state_tests/stSelfBalance/selfBalanceGasCostFiller.json",
    "content": "{\n    \"selfBalanceGasCost\": {\n      \"env\": {\n        \"currentCoinbase\": \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n        \"currentDifficulty\": \"0x20000\",\n        \"currentGasLimit\": \"10000000000\",\n        \"currentNumber\": \"1\",\n        \"currentTimestamp\": \"1000\"\n      },\n      \"expect\": [\n        {\n          \"indexes\": {\n            \"data\": -1,\n            \"gas\": -1,\n            \"value\": -1\n          },\n          \"network\": [\">=Cancun\"],\n          \"result\": {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\": {\n              \"storage\": {\n                \"0x01\": \"5\"\n              }\n            }\n          }\n        }\n      ],\n      \"pre\": {\n        \"<contract:target:0x1000000000000000000000000000000000000000>\": {\n          \"balance\": \"\",\n          \"//code\": \"record the gas, run the operation, then record the gas again.  Drop output, subtract 2 for GAS, what is left is the cost of the operation, store in storage 0x01.\",\n          \"code\": \"(asm GAS SELFBALANCE GAS SWAP1 POP SWAP1 SUB 2 SWAP1 SUB 0x01 SSTORE)\",\n          \"nonce\": \"0\",\n          \"storage\": {}\n        },\n        \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n          \"balance\": \"1000000000000000000000\",\n          \"code\": \"\",\n          \"nonce\": \"0\",\n          \"storage\": {}\n        }\n      },\n      \"transaction\": {\n        \"data\": [\"0x\"],\n        \"gasLimit\": [\"100000\"],\n        \"gasPrice\": \"10\",\n        \"nonce\": \"0\",\n        \"secretKey\": \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n        \"to\": \"<contract:target:0x1000000000000000000000000000000000000000>\",\n        \"value\": [\"0\"]\n      }\n    }\n  }\n  \n"
  },
  {
    "path": "tests/static/state_tests/stSelfBalance/selfBalanceUpdateFiller.json",
    "content": "{\n    \"selfBalanceUpdate\": {\n      \"env\": {\n        \"currentCoinbase\": \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n        \"currentDifficulty\": \"0x20000\",\n        \"currentGasLimit\": \"10000000000\",\n        \"currentNumber\": \"1\",\n        \"currentTimestamp\": \"1000\"\n      },\n      \"expect\": [\n        {\n          \"indexes\": {\n            \"data\": -1,\n            \"gas\": -1,\n            \"value\": -1\n          },\n          \"network\": [\">=Cancun\"],\n          \"result\": {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\": {\n              \"storage\": {\n                \"0x01\": \"0x01f4\",\n                \"0x02\": \"0x01f3\",\n                \"0x03\": \"0x01\"\n              }\n            }\n          }\n        }\n      ],\n      \"pre\": {\n        \"<contract:target:0x1000000000000000000000000000000000000000>\": {\n          \"balance\": \"0x01f4\",\n          \"code\": \"(asm SELFBALANCE DUP1 1 SSTORE 0 0 0 0 1 0 0 CALL POP SELFBALANCE DUP1 2 SSTORE SWAP1 SUB 3 SSTORE)\",\n          \"nonce\": \"0\",\n          \"storage\": {}\n        },\n        \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n          \"balance\": \"1000000000000000000000\",\n          \"code\": \"\",\n          \"nonce\": \"0\",\n          \"storage\": {}\n        }\n      },\n      \"transaction\": {\n        \"data\": [\"0x\"],\n        \"gasLimit\": [\"200000\"],\n        \"gasPrice\": \"10\",\n        \"nonce\": \"0\",\n        \"secretKey\": \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n        \"to\": \"<contract:target:0x1000000000000000000000000000000000000000>\",\n        \"value\": [\"0\"]\n      }\n    }\n  }\n  \n"
  },
  {
    "path": "tests/static/state_tests/stShift/.stub",
    "content": "This file is here to keep the directory\n"
  },
  {
    "path": "tests/static/state_tests/stShift/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stShift/sar00Filler.json",
    "content": "{\n    \"sar00\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"// code\" : \"PUSH1 0; PUSH1 0; SAR; PUSH1 0; SSTORE\",\n                \"code\" : \":raw 0x600060001d600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x03\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stShift/sar01Filler.json",
    "content": "{\n    \"sar01\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"// code\" : \"PUSH1 0; PUSH1 1; SAR; PUSH1 0; SSTORE\",\n                \"code\" : \":raw 0x600060011d600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x03\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stShift/sar10Filler.json",
    "content": "{\n    \"sar10\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"//balance\" : \"999999999999873988\",\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"// code\" : \"PUSH1 1; PUSH1 0; SAR; PUSH1 0; SSTORE\",\n                \"code\" : \":raw 0x600160001d600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x03\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stShift/sar11Filler.json",
    "content": "{\n    \"sar11\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"// code\" : \"PUSH1 1; PUSH1 1; SAR; PUSH1 0; SSTORE\",\n                \"code\" : \":raw 0x600160011d600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x03\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stShift/sar_0_256-1Filler.json",
    "content": "{\n    \"sar_0_256-1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"// code\" : \"PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff; PUSH1 0x00; SAR; PUSH1 0; SSTORE\",\n                \"code\" : \"{ (SSTORE 0 (SAR 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x03\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stShift/sar_2^254_254Filler.json",
    "content": "{\n    \"sar_2^254_254\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"// code\" : \"PUSH32 0x4000000000000000000000000000000000000000000000000000000000000000; PUSH1 0xfe; SAR; PUSH1 0; SSTORE\",\n                \"code\" : \":raw 0x7f400000000000000000000000000000000000000000000000000000000000000060fe1d600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x03\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stShift/sar_2^255-1_248Filler.json",
    "content": "{\n    \"sar_2^255-1_248\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x7f\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"// code\" : \"PUSH32 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff; PUSH1 0xf8; SAR; PUSH1 0; SSTORE\",\n                \"code\" : \":raw 0x7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f81d600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x03\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stShift/sar_2^255-1_254Filler.json",
    "content": "{\n    \"sar_2^255-1_254\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"// code\" : \"PUSH32 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff; PUSH1 0xfe; SAR; PUSH1 0; SSTORE\",\n                \"code\" : \":raw 0x7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60fe1d600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x03\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stShift/sar_2^255-1_255Filler.json",
    "content": "{\n    \"sar_2^255-1_255\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"// code\" : \"PUSH32 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff; PUSH1 0xff; SAR; PUSH1 0; SSTORE\",\n                \"code\" : \":raw 0x7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff1d600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x03\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stShift/sar_2^255-1_256Filler.json",
    "content": "{\n    \"sar_2^255-1_256\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"// code\" : \"PUSH32 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff; PUSH2 0x0100; SAR; PUSH1 0; SSTORE\",\n                \"code\" : \":raw 0x7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101001d600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x03\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stShift/sar_2^255_1Filler.json",
    "content": "{\n    \"sar_2^255_1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xc000000000000000000000000000000000000000000000000000000000000000\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"// code\" : \"PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000; PUSH1 1; SAR; PUSH1 0; SSTORE\",\n                \"code\" : \":raw 0x7f800000000000000000000000000000000000000000000000000000000000000060011d600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x03\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stShift/sar_2^255_255Filler.json",
    "content": "{\n    \"sar_2^255_255\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"// code\" : \"PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000; PUSH1 0xff; SAR; PUSH1 0; SSTORE\",\n                \"code\" : \":raw 0x7f800000000000000000000000000000000000000000000000000000000000000060ff1d600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x03\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stShift/sar_2^255_256Filler.json",
    "content": "{\n    \"sar_2^255_256\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"// code\" : \"PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000; PUSH2 0x0100; SAR; PUSH1 0; SSTORE\",\n                \"code\" : \":raw 0x7f80000000000000000000000000000000000000000000000000000000000000006101001d600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x03\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stShift/sar_2^255_257Filler.json",
    "content": "{\n    \"sar_2^255_257\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"// code\" : \"PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000; PUSH2 0x0101; SAR; PUSH1 0; SSTORE\",\n                \"code\" : \":raw 0x7f80000000000000000000000000000000000000000000000000000000000000006101011d600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x03\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stShift/sar_2^256-1_0Filler.json",
    "content": "{\n    \"sar_2^256-1_0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n\t\t\t\t\t\t\"code\" : \"0x60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1d60005500\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"// code\" : \"PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff; PUSH1 0x00; SAR; PUSH1 0; SSTORE\",\n                \"code\" : \"{ (SSTORE 0 (SAR 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x03\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stShift/sar_2^256-1_1Filler.json",
    "content": "{\n    \"sar_2^256-1_1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"// code\" : \"PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff; PUSH1 0x01; SAR; PUSH1 0; SSTORE\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60011d600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x03\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stShift/sar_2^256-1_255Filler.json",
    "content": "{\n    \"sar_2^256-1_255\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"// code\" : \"PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff; PUSH1 0xff; SAR; PUSH1 0; SSTORE\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff1d600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x03\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stShift/sar_2^256-1_256Filler.json",
    "content": "{\n    \"sar_2^256-1_256\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"// code\" : \"PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff; PUSH2 0x0100; SAR; PUSH2 0100; SSTORE\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101001d600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x03\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stShift/shiftSignedCombinationsFiller.yml",
    "content": "# https://github.com/ethereum/tests/issues/564\n---\nshiftSignedCombinations:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: \"100000000\"\n    currentNumber: \"1\"\n    currentTimestamp: \"1000\"\n  _info:\n    comment: \"https://github.com/ethereum/tests/issues/564\"\n  pre:\n    <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n      balance: '1000000000000000000'\n      code: |\n        {\n          (def 'sstore_n 0)\n          (MSTORE sstore_n 0x0ff)\n\n          ;; Number of the first args\n          (def 'counter_i 32)\n          (def 'counter_i_max 6)\n\n          ;; Number of the second args\n          (def 'counter_j 64)\n          (def 'counter_j_max 14)\n\n          ;; Set of the first args\n          (def 'data_istart 10100)\n          (MSTORE (ADD data_istart (MUL 32 0)) 0x0000000000000000000000000000000000000000000000000000000000000080)\n          (MSTORE (ADD data_istart (MUL 32 1)) 0x0000000000000000000000000000000000000000000000000000000000008000)\n          (MSTORE (ADD data_istart (MUL 32 2)) 0x0000000000000000000000000000000000000000000000000000000080000000)\n          (MSTORE (ADD data_istart (MUL 32 3)) 0x0000000000000000000000000000000000000000000000008000000000000000)\n          (MSTORE (ADD data_istart (MUL 32 4)) 0x0000000000000000000000000000000080000000000000000000000000000000)\n          (MSTORE (ADD data_istart (MUL 32 5)) 0x8000000000000000000000000000000000000000000000000000000000000000)\n\n          ;; Set of the second args\n          (def 'data_jstart 20100)\n          (MSTORE (ADD data_jstart (MUL 32 0)) 0x0000000000000000000000000000000000000000000000000000000000000000)\n          (MSTORE (ADD data_jstart (MUL 32 1)) 0x0000000000000000000000000000000000000000000000000000000000000001)\n          (MSTORE (ADD data_jstart (MUL 32 2)) 0x0000000000000000000000000000000000000000000000000000000000000002)\n          (MSTORE (ADD data_istart (MUL 32 3)) 0x0000000000000000000000000000000000000000000000000000000000000005)\n          (MSTORE (ADD data_jstart (MUL 32 4)) 0x00000000000000000000000000000000000000000000000000000000000000fe)\n          (MSTORE (ADD data_jstart (MUL 32 5)) 0x00000000000000000000000000000000000000000000000000000000000000ff)\n          (MSTORE (ADD data_jstart (MUL 32 6)) 0x0000000000000000000000000000000000000000000000000000000000000100)\n          (MSTORE (ADD data_jstart (MUL 32 7)) 0x0000000000000000000000000000000000000000000000000000000000000101)\n          (MSTORE (ADD data_jstart (MUL 32 8)) 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n          (MSTORE (ADD data_jstart (MUL 32 9)) 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe)\n          (MSTORE (ADD data_jstart (MUL 32 10)) 0x8000000000000000000000000000000000000000000000000000000000000000)\n          (MSTORE (ADD data_jstart (MUL 32 11)) 0xa000000000000000000000000000000000000000000000000000000000000000)\n          (MSTORE (ADD data_jstart (MUL 32 12)) 0x5555555555555555555555555555555555555555555555555555555555555555)\n          (MSTORE (ADD data_jstart (MUL 32 13)) 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)\n\n          (def 'increment_storage (MSTORE sstore_n (ADD 1 (MLOAD sstore_n))))\n          (def 'sstore_debug\n            ;; put debug information about which opcode was called with what arguments. 0x80 is put instead of 0x00 \n            (seq \n                increment_storage\n                (IF \n                    (EQ (MLOAD (ADD data_istart (MUL 32 (MLOAD counter_i)))) 0)\n                    (SSTORE (MLOAD sstore_n) 0x80)\n                    (SSTORE (MLOAD sstore_n) (MLOAD (ADD data_istart (MUL 32 (MLOAD counter_i)))))\n                )\n                increment_storage\n                (IF\n                    (EQ (MLOAD (ADD data_jstart (MUL 32 (MLOAD counter_j)))) 0)\n                    (SSTORE (MLOAD sstore_n) 0x80)\n                    (SSTORE (MLOAD sstore_n) (MLOAD (ADD data_jstart (MUL 32 (MLOAD counter_j)))))\n                )\n            )    \n          )\n\n          (FOR \n            ;; init\n            (MSTORE counter_i 0) \n\n            ;; condition\n            (LT (MLOAD counter_i) counter_i_max)\n\n            ;; post step\n            (MSTORE counter_i (ADD 1 (MLOAD counter_i)))\n\n            ;; body\n            (seq\n                (FOR \n                    ;; init\n                    (MSTORE counter_j 0) \n\n                    ;; condition\n                    (LT (MLOAD counter_j) counter_j_max)\n\n                    ;; post step\n                    (MSTORE counter_j (ADD 1 (MLOAD counter_j)))\n\n                    ;; body\n                    (seq\n                        ;; put debug  1d - SAR, 1b - SHL, 1c - SHR\n                        increment_storage \n                        (SSTORE (MLOAD sstore_n) 0x1000001d)\n                        sstore_debug\n\n                        ;; put sar of (i,j)\n                        increment_storage\n                        (SSTORE (MLOAD sstore_n) \n                           (SAR \n                            (MLOAD (ADD data_istart (MUL 32 (MLOAD counter_i))))\n                            (MLOAD (ADD data_jstart (MUL 32 (MLOAD counter_j))))\n                           )\n                        )\n\n                        ;; put debug  1d - SAR, 1b - SHL, 1c - SHR\n                        increment_storage \n                        (SSTORE (MLOAD sstore_n) 0x1000001b)\n                        sstore_debug\n\n                        ;; put shl of (i,j)\n                        increment_storage\n                        (SSTORE (MLOAD sstore_n) \n                           (SHL \n                            (MLOAD (ADD data_istart (MUL 32 (MLOAD counter_i))))\n                            (MLOAD (ADD data_jstart (MUL 32 (MLOAD counter_j))))\n                           )\n                        )\n\n                        ;; put debug  1d - SAR, 1b - SHL, 1c - SHR\n                        increment_storage \n                        (SSTORE (MLOAD sstore_n) 0x1000001c)\n                        sstore_debug\n\n                        ;; put shr of (i,j)\n                        increment_storage\n                        (SSTORE (MLOAD sstore_n) \n                           (SHR \n                            (MLOAD (ADD data_istart (MUL 32 (MLOAD counter_i))))\n                            (MLOAD (ADD data_jstart (MUL 32 (MLOAD counter_j))))\n                           )\n                        )\n                    )\n                ) ;;//FOR\n            )         \n          ) ;;//FOR\n\n          (STOP)\n        }\n      nonce: '0'\n      storage: {}\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: ''\n      nonce: '0'\n      storage: {}\n  expect:\n    - indexes:\n        data: !!int -1\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Cancun<Osaka'\n      result:\n        <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>:\n          balance: '1000000000000000001'\n          storage: {\n            \"0x0100\" : \"0x1000001d\",\n            \"0x0101\" : \"0x80\",\n            \"0x0102\" : \"0x80\",\n            \"0x0104\" : \"0x1000001b\",\n            \"0x0105\" : \"0x80\",\n            \"0x0106\" : \"0x80\",\n            \"0x0108\" : \"0x1000001c\",\n            \"0x0109\" : \"0x80\",\n            \"0x010a\" : \"0x80\",\n            \"0x010c\" : \"0x1000001d\",\n            \"0x010d\" : \"0x80\",\n            \"0x010e\" : \"0x01\",\n            \"0x0110\" : \"0x1000001b\",\n            \"0x0111\" : \"0x80\",\n            \"0x0112\" : \"0x01\",\n            \"0x0113\" : \"0x0100000000000000000000000000000000\",\n            \"0x0114\" : \"0x1000001c\",\n            \"0x0115\" : \"0x80\",\n            \"0x0116\" : \"0x01\",\n            \"0x0118\" : \"0x1000001d\",\n            \"0x0119\" : \"0x80\",\n            \"0x011a\" : \"0x02\",\n            \"0x011c\" : \"0x1000001b\",\n            \"0x011d\" : \"0x80\",\n            \"0x011e\" : \"0x02\",\n            \"0x011f\" : \"0x0200000000000000000000000000000000\",\n            \"0x0120\" : \"0x1000001c\",\n            \"0x0121\" : \"0x80\",\n            \"0x0122\" : \"0x02\",\n            \"0x0124\" : \"0x1000001d\",\n            \"0x0125\" : \"0x80\",\n            \"0x0126\" : \"0x80\",\n            \"0x0128\" : \"0x1000001b\",\n            \"0x0129\" : \"0x80\",\n            \"0x012a\" : \"0x80\",\n            \"0x012c\" : \"0x1000001c\",\n            \"0x012d\" : \"0x80\",\n            \"0x012e\" : \"0x80\",\n            \"0x0130\" : \"0x1000001d\",\n            \"0x0131\" : \"0x80\",\n            \"0x0132\" : \"0xfe\",\n            \"0x0134\" : \"0x1000001b\",\n            \"0x0135\" : \"0x80\",\n            \"0x0136\" : \"0xfe\",\n            \"0x0137\" : \"0xfe00000000000000000000000000000000\",\n            \"0x0138\" : \"0x1000001c\",\n            \"0x0139\" : \"0x80\",\n            \"0x013a\" : \"0xfe\",\n            \"0x013c\" : \"0x1000001d\",\n            \"0x013d\" : \"0x80\",\n            \"0x013e\" : \"0xff\",\n            \"0x0140\" : \"0x1000001b\",\n            \"0x0141\" : \"0x80\",\n            \"0x0142\" : \"0xff\",\n            \"0x0143\" : \"0xff00000000000000000000000000000000\",\n            \"0x0144\" : \"0x1000001c\",\n            \"0x0145\" : \"0x80\",\n            \"0x0146\" : \"0xff\",\n            \"0x0148\" : \"0x1000001d\",\n            \"0x0149\" : \"0x80\",\n            \"0x014a\" : \"0x0100\",\n            \"0x014c\" : \"0x1000001b\",\n            \"0x014d\" : \"0x80\",\n            \"0x014e\" : \"0x0100\",\n            \"0x014f\" : \"0x010000000000000000000000000000000000\",\n            \"0x0150\" : \"0x1000001c\",\n            \"0x0151\" : \"0x80\",\n            \"0x0152\" : \"0x0100\",\n            \"0x0154\" : \"0x1000001d\",\n            \"0x0155\" : \"0x80\",\n            \"0x0156\" : \"0x0101\",\n            \"0x0158\" : \"0x1000001b\",\n            \"0x0159\" : \"0x80\",\n            \"0x015a\" : \"0x0101\",\n            \"0x015b\" : \"0x010100000000000000000000000000000000\",\n            \"0x015c\" : \"0x1000001c\",\n            \"0x015d\" : \"0x80\",\n            \"0x015e\" : \"0x0101\",\n            \"0x0160\" : \"0x1000001d\",\n            \"0x0161\" : \"0x80\",\n            \"0x0162\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"0x0163\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"0x0164\" : \"0x1000001b\",\n            \"0x0165\" : \"0x80\",\n            \"0x0166\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"0x0167\" : \"0xffffffffffffffffffffffffffffffff00000000000000000000000000000000\",\n            \"0x0168\" : \"0x1000001c\",\n            \"0x0169\" : \"0x80\",\n            \"0x016a\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"0x016b\" : \"0xffffffffffffffffffffffffffffffff\",\n            \"0x016c\" : \"0x1000001d\",\n            \"0x016d\" : \"0x80\",\n            \"0x016e\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\",\n            \"0x016f\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"0x0170\" : \"0x1000001b\",\n            \"0x0171\" : \"0x80\",\n            \"0x0172\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\",\n            \"0x0173\" : \"0xfffffffffffffffffffffffffffffffe00000000000000000000000000000000\",\n            \"0x0174\" : \"0x1000001c\",\n            \"0x0175\" : \"0x80\",\n            \"0x0176\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\",\n            \"0x0177\" : \"0xffffffffffffffffffffffffffffffff\",\n            \"0x0178\" : \"0x1000001d\",\n            \"0x0179\" : \"0x80\",\n            \"0x017a\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x017b\" : \"0xffffffffffffffffffffffffffffffff80000000000000000000000000000000\",\n            \"0x017c\" : \"0x1000001b\",\n            \"0x017d\" : \"0x80\",\n            \"0x017e\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x0180\" : \"0x1000001c\",\n            \"0x0181\" : \"0x80\",\n            \"0x0182\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x0183\" : \"0x80000000000000000000000000000000\",\n            \"0x0184\" : \"0x1000001d\",\n            \"0x0185\" : \"0x80\",\n            \"0x0186\" : \"0xa000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x0187\" : \"0xffffffffffffffffffffffffffffffffa0000000000000000000000000000000\",\n            \"0x0188\" : \"0x1000001b\",\n            \"0x0189\" : \"0x80\",\n            \"0x018a\" : \"0xa000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x018c\" : \"0x1000001c\",\n            \"0x018d\" : \"0x80\",\n            \"0x018e\" : \"0xa000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x018f\" : \"0xa0000000000000000000000000000000\",\n            \"0x0190\" : \"0x1000001d\",\n            \"0x0191\" : \"0x80\",\n            \"0x0192\" : \"0x5555555555555555555555555555555555555555555555555555555555555555\",\n            \"0x0193\" : \"0x55555555555555555555555555555555\",\n            \"0x0194\" : \"0x1000001b\",\n            \"0x0195\" : \"0x80\",\n            \"0x0196\" : \"0x5555555555555555555555555555555555555555555555555555555555555555\",\n            \"0x0197\" : \"0x5555555555555555555555555555555500000000000000000000000000000000\",\n            \"0x0198\" : \"0x1000001c\",\n            \"0x0199\" : \"0x80\",\n            \"0x019a\" : \"0x5555555555555555555555555555555555555555555555555555555555555555\",\n            \"0x019b\" : \"0x55555555555555555555555555555555\",\n            \"0x019c\" : \"0x1000001d\",\n            \"0x019d\" : \"0x80\",\n            \"0x019e\" : \"0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n            \"0x019f\" : \"0xffffffffffffffffffffffffffffffffaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n            \"0x01a0\" : \"0x1000001b\",\n            \"0x01a1\" : \"0x80\",\n            \"0x01a2\" : \"0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n            \"0x01a3\" : \"0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa00000000000000000000000000000000\",\n            \"0x01a4\" : \"0x1000001c\",\n            \"0x01a5\" : \"0x80\",\n            \"0x01a6\" : \"0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n            \"0x01a7\" : \"0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n            \"0x01a8\" : \"0x1000001d\",\n            \"0x01a9\" : \"0x8000\",\n            \"0x01aa\" : \"0x80\",\n            \"0x01ac\" : \"0x1000001b\",\n            \"0x01ad\" : \"0x8000\",\n            \"0x01ae\" : \"0x80\",\n            \"0x01b0\" : \"0x1000001c\",\n            \"0x01b1\" : \"0x8000\",\n            \"0x01b2\" : \"0x80\",\n            \"0x01b4\" : \"0x1000001d\",\n            \"0x01b5\" : \"0x8000\",\n            \"0x01b6\" : \"0x01\",\n            \"0x01b8\" : \"0x1000001b\",\n            \"0x01b9\" : \"0x8000\",\n            \"0x01ba\" : \"0x01\",\n            \"0x01bc\" : \"0x1000001c\",\n            \"0x01bd\" : \"0x8000\",\n            \"0x01be\" : \"0x01\",\n            \"0x01c0\" : \"0x1000001d\",\n            \"0x01c1\" : \"0x8000\",\n            \"0x01c2\" : \"0x02\",\n            \"0x01c4\" : \"0x1000001b\",\n            \"0x01c5\" : \"0x8000\",\n            \"0x01c6\" : \"0x02\",\n            \"0x01c8\" : \"0x1000001c\",\n            \"0x01c9\" : \"0x8000\",\n            \"0x01ca\" : \"0x02\",\n            \"0x01cc\" : \"0x1000001d\",\n            \"0x01cd\" : \"0x8000\",\n            \"0x01ce\" : \"0x80\",\n            \"0x01d0\" : \"0x1000001b\",\n            \"0x01d1\" : \"0x8000\",\n            \"0x01d2\" : \"0x80\",\n            \"0x01d4\" : \"0x1000001c\",\n            \"0x01d5\" : \"0x8000\",\n            \"0x01d6\" : \"0x80\",\n            \"0x01d8\" : \"0x1000001d\",\n            \"0x01d9\" : \"0x8000\",\n            \"0x01da\" : \"0xfe\",\n            \"0x01dc\" : \"0x1000001b\",\n            \"0x01dd\" : \"0x8000\",\n            \"0x01de\" : \"0xfe\",\n            \"0x01e0\" : \"0x1000001c\",\n            \"0x01e1\" : \"0x8000\",\n            \"0x01e2\" : \"0xfe\",\n            \"0x01e4\" : \"0x1000001d\",\n            \"0x01e5\" : \"0x8000\",\n            \"0x01e6\" : \"0xff\",\n            \"0x01e8\" : \"0x1000001b\",\n            \"0x01e9\" : \"0x8000\",\n            \"0x01ea\" : \"0xff\",\n            \"0x01ec\" : \"0x1000001c\",\n            \"0x01ed\" : \"0x8000\",\n            \"0x01ee\" : \"0xff\",\n            \"0x01f0\" : \"0x1000001d\",\n            \"0x01f1\" : \"0x8000\",\n            \"0x01f2\" : \"0x0100\",\n            \"0x01f4\" : \"0x1000001b\",\n            \"0x01f5\" : \"0x8000\",\n            \"0x01f6\" : \"0x0100\",\n            \"0x01f8\" : \"0x1000001c\",\n            \"0x01f9\" : \"0x8000\",\n            \"0x01fa\" : \"0x0100\",\n            \"0x01fc\" : \"0x1000001d\",\n            \"0x01fd\" : \"0x8000\",\n            \"0x01fe\" : \"0x0101\",\n            \"0x0200\" : \"0x1000001b\",\n            \"0x0201\" : \"0x8000\",\n            \"0x0202\" : \"0x0101\",\n            \"0x0204\" : \"0x1000001c\",\n            \"0x0205\" : \"0x8000\",\n            \"0x0206\" : \"0x0101\",\n            \"0x0208\" : \"0x1000001d\",\n            \"0x0209\" : \"0x8000\",\n            \"0x020a\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"0x020b\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"0x020c\" : \"0x1000001b\",\n            \"0x020d\" : \"0x8000\",\n            \"0x020e\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"0x0210\" : \"0x1000001c\",\n            \"0x0211\" : \"0x8000\",\n            \"0x0212\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"0x0214\" : \"0x1000001d\",\n            \"0x0215\" : \"0x8000\",\n            \"0x0216\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\",\n            \"0x0217\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"0x0218\" : \"0x1000001b\",\n            \"0x0219\" : \"0x8000\",\n            \"0x021a\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\",\n            \"0x021c\" : \"0x1000001c\",\n            \"0x021d\" : \"0x8000\",\n            \"0x021e\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\",\n            \"0x0220\" : \"0x1000001d\",\n            \"0x0221\" : \"0x8000\",\n            \"0x0222\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x0223\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"0x0224\" : \"0x1000001b\",\n            \"0x0225\" : \"0x8000\",\n            \"0x0226\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x0228\" : \"0x1000001c\",\n            \"0x0229\" : \"0x8000\",\n            \"0x022a\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x022c\" : \"0x1000001d\",\n            \"0x022d\" : \"0x8000\",\n            \"0x022e\" : \"0xa000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x022f\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"0x0230\" : \"0x1000001b\",\n            \"0x0231\" : \"0x8000\",\n            \"0x0232\" : \"0xa000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x0234\" : \"0x1000001c\",\n            \"0x0235\" : \"0x8000\",\n            \"0x0236\" : \"0xa000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x0238\" : \"0x1000001d\",\n            \"0x0239\" : \"0x8000\",\n            \"0x023a\" : \"0x5555555555555555555555555555555555555555555555555555555555555555\",\n            \"0x023c\" : \"0x1000001b\",\n            \"0x023d\" : \"0x8000\",\n            \"0x023e\" : \"0x5555555555555555555555555555555555555555555555555555555555555555\",\n            \"0x0240\" : \"0x1000001c\",\n            \"0x0241\" : \"0x8000\",\n            \"0x0242\" : \"0x5555555555555555555555555555555555555555555555555555555555555555\",\n            \"0x0244\" : \"0x1000001d\",\n            \"0x0245\" : \"0x8000\",\n            \"0x0246\" : \"0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n            \"0x0247\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"0x0248\" : \"0x1000001b\",\n            \"0x0249\" : \"0x8000\",\n            \"0x024a\" : \"0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n            \"0x024c\" : \"0x1000001c\",\n            \"0x024d\" : \"0x8000\",\n            \"0x024e\" : \"0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n            \"0x0250\" : \"0x1000001d\",\n            \"0x0251\" : \"0x80000000\",\n            \"0x0252\" : \"0x80\",\n            \"0x0254\" : \"0x1000001b\",\n            \"0x0255\" : \"0x80000000\",\n            \"0x0256\" : \"0x80\",\n            \"0x0258\" : \"0x1000001c\",\n            \"0x0259\" : \"0x80000000\",\n            \"0x025a\" : \"0x80\",\n            \"0x025c\" : \"0x1000001d\",\n            \"0x025d\" : \"0x80000000\",\n            \"0x025e\" : \"0x01\",\n            \"0x0260\" : \"0x1000001b\",\n            \"0x0261\" : \"0x80000000\",\n            \"0x0262\" : \"0x01\",\n            \"0x0264\" : \"0x1000001c\",\n            \"0x0265\" : \"0x80000000\",\n            \"0x0266\" : \"0x01\",\n            \"0x0268\" : \"0x1000001d\",\n            \"0x0269\" : \"0x80000000\",\n            \"0x026a\" : \"0x02\",\n            \"0x026c\" : \"0x1000001b\",\n            \"0x026d\" : \"0x80000000\",\n            \"0x026e\" : \"0x02\",\n            \"0x0270\" : \"0x1000001c\",\n            \"0x0271\" : \"0x80000000\",\n            \"0x0272\" : \"0x02\",\n            \"0x0274\" : \"0x1000001d\",\n            \"0x0275\" : \"0x80000000\",\n            \"0x0276\" : \"0x80\",\n            \"0x0278\" : \"0x1000001b\",\n            \"0x0279\" : \"0x80000000\",\n            \"0x027a\" : \"0x80\",\n            \"0x027c\" : \"0x1000001c\",\n            \"0x027d\" : \"0x80000000\",\n            \"0x027e\" : \"0x80\",\n            \"0x0280\" : \"0x1000001d\",\n            \"0x0281\" : \"0x80000000\",\n            \"0x0282\" : \"0xfe\",\n            \"0x0284\" : \"0x1000001b\",\n            \"0x0285\" : \"0x80000000\",\n            \"0x0286\" : \"0xfe\",\n            \"0x0288\" : \"0x1000001c\",\n            \"0x0289\" : \"0x80000000\",\n            \"0x028a\" : \"0xfe\",\n            \"0x028c\" : \"0x1000001d\",\n            \"0x028d\" : \"0x80000000\",\n            \"0x028e\" : \"0xff\",\n            \"0x0290\" : \"0x1000001b\",\n            \"0x0291\" : \"0x80000000\",\n            \"0x0292\" : \"0xff\",\n            \"0x0294\" : \"0x1000001c\",\n            \"0x0295\" : \"0x80000000\",\n            \"0x0296\" : \"0xff\",\n            \"0x0298\" : \"0x1000001d\",\n            \"0x0299\" : \"0x80000000\",\n            \"0x029a\" : \"0x0100\",\n            \"0x029c\" : \"0x1000001b\",\n            \"0x029d\" : \"0x80000000\",\n            \"0x029e\" : \"0x0100\",\n            \"0x02a0\" : \"0x1000001c\",\n            \"0x02a1\" : \"0x80000000\",\n            \"0x02a2\" : \"0x0100\",\n            \"0x02a4\" : \"0x1000001d\",\n            \"0x02a5\" : \"0x80000000\",\n            \"0x02a6\" : \"0x0101\",\n            \"0x02a8\" : \"0x1000001b\",\n            \"0x02a9\" : \"0x80000000\",\n            \"0x02aa\" : \"0x0101\",\n            \"0x02ac\" : \"0x1000001c\",\n            \"0x02ad\" : \"0x80000000\",\n            \"0x02ae\" : \"0x0101\",\n            \"0x02b0\" : \"0x1000001d\",\n            \"0x02b1\" : \"0x80000000\",\n            \"0x02b2\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"0x02b3\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"0x02b4\" : \"0x1000001b\",\n            \"0x02b5\" : \"0x80000000\",\n            \"0x02b6\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"0x02b8\" : \"0x1000001c\",\n            \"0x02b9\" : \"0x80000000\",\n            \"0x02ba\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"0x02bc\" : \"0x1000001d\",\n            \"0x02bd\" : \"0x80000000\",\n            \"0x02be\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\",\n            \"0x02bf\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"0x02c0\" : \"0x1000001b\",\n            \"0x02c1\" : \"0x80000000\",\n            \"0x02c2\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\",\n            \"0x02c4\" : \"0x1000001c\",\n            \"0x02c5\" : \"0x80000000\",\n            \"0x02c6\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\",\n            \"0x02c8\" : \"0x1000001d\",\n            \"0x02c9\" : \"0x80000000\",\n            \"0x02ca\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x02cb\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"0x02cc\" : \"0x1000001b\",\n            \"0x02cd\" : \"0x80000000\",\n            \"0x02ce\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x02d0\" : \"0x1000001c\",\n            \"0x02d1\" : \"0x80000000\",\n            \"0x02d2\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x02d4\" : \"0x1000001d\",\n            \"0x02d5\" : \"0x80000000\",\n            \"0x02d6\" : \"0xa000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x02d7\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"0x02d8\" : \"0x1000001b\",\n            \"0x02d9\" : \"0x80000000\",\n            \"0x02da\" : \"0xa000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x02dc\" : \"0x1000001c\",\n            \"0x02dd\" : \"0x80000000\",\n            \"0x02de\" : \"0xa000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x02e0\" : \"0x1000001d\",\n            \"0x02e1\" : \"0x80000000\",\n            \"0x02e2\" : \"0x5555555555555555555555555555555555555555555555555555555555555555\",\n            \"0x02e4\" : \"0x1000001b\",\n            \"0x02e5\" : \"0x80000000\",\n            \"0x02e6\" : \"0x5555555555555555555555555555555555555555555555555555555555555555\",\n            \"0x02e8\" : \"0x1000001c\",\n            \"0x02e9\" : \"0x80000000\",\n            \"0x02ea\" : \"0x5555555555555555555555555555555555555555555555555555555555555555\",\n            \"0x02ec\" : \"0x1000001d\",\n            \"0x02ed\" : \"0x80000000\",\n            \"0x02ee\" : \"0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n            \"0x02ef\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"0x02f0\" : \"0x1000001b\",\n            \"0x02f1\" : \"0x80000000\",\n            \"0x02f2\" : \"0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n            \"0x02f4\" : \"0x1000001c\",\n            \"0x02f5\" : \"0x80000000\",\n            \"0x02f6\" : \"0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n            \"0x02f8\" : \"0x1000001d\",\n            \"0x02f9\" : \"0x05\",\n            \"0x02fa\" : \"0x80\",\n            \"0x02fc\" : \"0x1000001b\",\n            \"0x02fd\" : \"0x05\",\n            \"0x02fe\" : \"0x80\",\n            \"0x0300\" : \"0x1000001c\",\n            \"0x0301\" : \"0x05\",\n            \"0x0302\" : \"0x80\",\n            \"0x0304\" : \"0x1000001d\",\n            \"0x0305\" : \"0x05\",\n            \"0x0306\" : \"0x01\",\n            \"0x0308\" : \"0x1000001b\",\n            \"0x0309\" : \"0x05\",\n            \"0x030a\" : \"0x01\",\n            \"0x030b\" : \"0x20\",\n            \"0x030c\" : \"0x1000001c\",\n            \"0x030d\" : \"0x05\",\n            \"0x030e\" : \"0x01\",\n            \"0x0310\" : \"0x1000001d\",\n            \"0x0311\" : \"0x05\",\n            \"0x0312\" : \"0x02\",\n            \"0x0314\" : \"0x1000001b\",\n            \"0x0315\" : \"0x05\",\n            \"0x0316\" : \"0x02\",\n            \"0x0317\" : \"0x40\",\n            \"0x0318\" : \"0x1000001c\",\n            \"0x0319\" : \"0x05\",\n            \"0x031a\" : \"0x02\",\n            \"0x031c\" : \"0x1000001d\",\n            \"0x031d\" : \"0x05\",\n            \"0x031e\" : \"0x80\",\n            \"0x0320\" : \"0x1000001b\",\n            \"0x0321\" : \"0x05\",\n            \"0x0322\" : \"0x80\",\n            \"0x0324\" : \"0x1000001c\",\n            \"0x0325\" : \"0x05\",\n            \"0x0326\" : \"0x80\",\n            \"0x0328\" : \"0x1000001d\",\n            \"0x0329\" : \"0x05\",\n            \"0x032a\" : \"0xfe\",\n            \"0x032b\" : \"0x07\",\n            \"0x032c\" : \"0x1000001b\",\n            \"0x032d\" : \"0x05\",\n            \"0x032e\" : \"0xfe\",\n            \"0x032f\" : \"0x1fc0\",\n            \"0x0330\" : \"0x1000001c\",\n            \"0x0331\" : \"0x05\",\n            \"0x0332\" : \"0xfe\",\n            \"0x0333\" : \"0x07\",\n            \"0x0334\" : \"0x1000001d\",\n            \"0x0335\" : \"0x05\",\n            \"0x0336\" : \"0xff\",\n            \"0x0337\" : \"0x07\",\n            \"0x0338\" : \"0x1000001b\",\n            \"0x0339\" : \"0x05\",\n            \"0x033a\" : \"0xff\",\n            \"0x033b\" : \"0x1fe0\",\n            \"0x033c\" : \"0x1000001c\",\n            \"0x033d\" : \"0x05\",\n            \"0x033e\" : \"0xff\",\n            \"0x033f\" : \"0x07\",\n            \"0x0340\" : \"0x1000001d\",\n            \"0x0341\" : \"0x05\",\n            \"0x0342\" : \"0x0100\",\n            \"0x0343\" : \"0x08\",\n            \"0x0344\" : \"0x1000001b\",\n            \"0x0345\" : \"0x05\",\n            \"0x0346\" : \"0x0100\",\n            \"0x0347\" : \"0x2000\",\n            \"0x0348\" : \"0x1000001c\",\n            \"0x0349\" : \"0x05\",\n            \"0x034a\" : \"0x0100\",\n            \"0x034b\" : \"0x08\",\n            \"0x034c\" : \"0x1000001d\",\n            \"0x034d\" : \"0x05\",\n            \"0x034e\" : \"0x0101\",\n            \"0x034f\" : \"0x08\",\n            \"0x0350\" : \"0x1000001b\",\n            \"0x0351\" : \"0x05\",\n            \"0x0352\" : \"0x0101\",\n            \"0x0353\" : \"0x2020\",\n            \"0x0354\" : \"0x1000001c\",\n            \"0x0355\" : \"0x05\",\n            \"0x0356\" : \"0x0101\",\n            \"0x0357\" : \"0x08\",\n            \"0x0358\" : \"0x1000001d\",\n            \"0x0359\" : \"0x05\",\n            \"0x035a\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"0x035b\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"0x035c\" : \"0x1000001b\",\n            \"0x035d\" : \"0x05\",\n            \"0x035e\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"0x035f\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0\",\n            \"0x0360\" : \"0x1000001c\",\n            \"0x0361\" : \"0x05\",\n            \"0x0362\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"0x0363\" : \"0x07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"0x0364\" : \"0x1000001d\",\n            \"0x0365\" : \"0x05\",\n            \"0x0366\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\",\n            \"0x0367\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"0x0368\" : \"0x1000001b\",\n            \"0x0369\" : \"0x05\",\n            \"0x036a\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\",\n            \"0x036b\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0\",\n            \"0x036c\" : \"0x1000001c\",\n            \"0x036d\" : \"0x05\",\n            \"0x036e\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\",\n            \"0x036f\" : \"0x07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"0x0370\" : \"0x1000001d\",\n            \"0x0371\" : \"0x05\",\n            \"0x0372\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x0373\" : \"0xfc00000000000000000000000000000000000000000000000000000000000000\",\n            \"0x0374\" : \"0x1000001b\",\n            \"0x0375\" : \"0x05\",\n            \"0x0376\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x0378\" : \"0x1000001c\",\n            \"0x0379\" : \"0x05\",\n            \"0x037a\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x037b\" : \"0x0400000000000000000000000000000000000000000000000000000000000000\",\n            \"0x037c\" : \"0x1000001d\",\n            \"0x037d\" : \"0x05\",\n            \"0x037e\" : \"0xa000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x037f\" : \"0xfd00000000000000000000000000000000000000000000000000000000000000\",\n            \"0x0380\" : \"0x1000001b\",\n            \"0x0381\" : \"0x05\",\n            \"0x0382\" : \"0xa000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x0384\" : \"0x1000001c\",\n            \"0x0385\" : \"0x05\",\n            \"0x0386\" : \"0xa000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x0387\" : \"0x0500000000000000000000000000000000000000000000000000000000000000\",\n            \"0x0388\" : \"0x1000001d\",\n            \"0x0389\" : \"0x05\",\n            \"0x038a\" : \"0x5555555555555555555555555555555555555555555555555555555555555555\",\n            \"0x038b\" : \"0x02aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n            \"0x038c\" : \"0x1000001b\",\n            \"0x038d\" : \"0x05\",\n            \"0x038e\" : \"0x5555555555555555555555555555555555555555555555555555555555555555\",\n            \"0x038f\" : \"0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa0\",\n            \"0x0390\" : \"0x1000001c\",\n            \"0x0391\" : \"0x05\",\n            \"0x0392\" : \"0x5555555555555555555555555555555555555555555555555555555555555555\",\n            \"0x0393\" : \"0x02aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n            \"0x0394\" : \"0x1000001d\",\n            \"0x0395\" : \"0x05\",\n            \"0x0396\" : \"0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n            \"0x0397\" : \"0xfd55555555555555555555555555555555555555555555555555555555555555\",\n            \"0x0398\" : \"0x1000001b\",\n            \"0x0399\" : \"0x05\",\n            \"0x039a\" : \"0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n            \"0x039b\" : \"0x5555555555555555555555555555555555555555555555555555555555555540\",\n            \"0x039c\" : \"0x1000001c\",\n            \"0x039d\" : \"0x05\",\n            \"0x039e\" : \"0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n            \"0x039f\" : \"0x0555555555555555555555555555555555555555555555555555555555555555\",\n            \"0x03a0\" : \"0x1000001d\",\n            \"0x03a1\" : \"0x80000000000000000000000000000000\",\n            \"0x03a2\" : \"0x80\",\n            \"0x03a4\" : \"0x1000001b\",\n            \"0x03a5\" : \"0x80000000000000000000000000000000\",\n            \"0x03a6\" : \"0x80\",\n            \"0x03a8\" : \"0x1000001c\",\n            \"0x03a9\" : \"0x80000000000000000000000000000000\",\n            \"0x03aa\" : \"0x80\",\n            \"0x03ac\" : \"0x1000001d\",\n            \"0x03ad\" : \"0x80000000000000000000000000000000\",\n            \"0x03ae\" : \"0x01\",\n            \"0x03b0\" : \"0x1000001b\",\n            \"0x03b1\" : \"0x80000000000000000000000000000000\",\n            \"0x03b2\" : \"0x01\",\n            \"0x03b4\" : \"0x1000001c\",\n            \"0x03b5\" : \"0x80000000000000000000000000000000\",\n            \"0x03b6\" : \"0x01\",\n            \"0x03b8\" : \"0x1000001d\",\n            \"0x03b9\" : \"0x80000000000000000000000000000000\",\n            \"0x03ba\" : \"0x02\",\n            \"0x03bc\" : \"0x1000001b\",\n            \"0x03bd\" : \"0x80000000000000000000000000000000\",\n            \"0x03be\" : \"0x02\",\n            \"0x03c0\" : \"0x1000001c\",\n            \"0x03c1\" : \"0x80000000000000000000000000000000\",\n            \"0x03c2\" : \"0x02\",\n            \"0x03c4\" : \"0x1000001d\",\n            \"0x03c5\" : \"0x80000000000000000000000000000000\",\n            \"0x03c6\" : \"0x80\",\n            \"0x03c8\" : \"0x1000001b\",\n            \"0x03c9\" : \"0x80000000000000000000000000000000\",\n            \"0x03ca\" : \"0x80\",\n            \"0x03cc\" : \"0x1000001c\",\n            \"0x03cd\" : \"0x80000000000000000000000000000000\",\n            \"0x03ce\" : \"0x80\",\n            \"0x03d0\" : \"0x1000001d\",\n            \"0x03d1\" : \"0x80000000000000000000000000000000\",\n            \"0x03d2\" : \"0xfe\",\n            \"0x03d4\" : \"0x1000001b\",\n            \"0x03d5\" : \"0x80000000000000000000000000000000\",\n            \"0x03d6\" : \"0xfe\",\n            \"0x03d8\" : \"0x1000001c\",\n            \"0x03d9\" : \"0x80000000000000000000000000000000\",\n            \"0x03da\" : \"0xfe\",\n            \"0x03dc\" : \"0x1000001d\",\n            \"0x03dd\" : \"0x80000000000000000000000000000000\",\n            \"0x03de\" : \"0xff\",\n            \"0x03e0\" : \"0x1000001b\",\n            \"0x03e1\" : \"0x80000000000000000000000000000000\",\n            \"0x03e2\" : \"0xff\",\n            \"0x03e4\" : \"0x1000001c\",\n            \"0x03e5\" : \"0x80000000000000000000000000000000\",\n            \"0x03e6\" : \"0xff\",\n            \"0x03e8\" : \"0x1000001d\",\n            \"0x03e9\" : \"0x80000000000000000000000000000000\",\n            \"0x03ea\" : \"0x0100\",\n            \"0x03ec\" : \"0x1000001b\",\n            \"0x03ed\" : \"0x80000000000000000000000000000000\",\n            \"0x03ee\" : \"0x0100\",\n            \"0x03f0\" : \"0x1000001c\",\n            \"0x03f1\" : \"0x80000000000000000000000000000000\",\n            \"0x03f2\" : \"0x0100\",\n            \"0x03f4\" : \"0x1000001d\",\n            \"0x03f5\" : \"0x80000000000000000000000000000000\",\n            \"0x03f6\" : \"0x0101\",\n            \"0x03f8\" : \"0x1000001b\",\n            \"0x03f9\" : \"0x80000000000000000000000000000000\",\n            \"0x03fa\" : \"0x0101\",\n            \"0x03fc\" : \"0x1000001c\",\n            \"0x03fd\" : \"0x80000000000000000000000000000000\",\n            \"0x03fe\" : \"0x0101\",\n            \"0x0400\" : \"0x1000001d\",\n            \"0x0401\" : \"0x80000000000000000000000000000000\",\n            \"0x0402\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"0x0403\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"0x0404\" : \"0x1000001b\",\n            \"0x0405\" : \"0x80000000000000000000000000000000\",\n            \"0x0406\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"0x0408\" : \"0x1000001c\",\n            \"0x0409\" : \"0x80000000000000000000000000000000\",\n            \"0x040a\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"0x040c\" : \"0x1000001d\",\n            \"0x040d\" : \"0x80000000000000000000000000000000\",\n            \"0x040e\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\",\n            \"0x040f\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"0x0410\" : \"0x1000001b\",\n            \"0x0411\" : \"0x80000000000000000000000000000000\",\n            \"0x0412\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\",\n            \"0x0414\" : \"0x1000001c\",\n            \"0x0415\" : \"0x80000000000000000000000000000000\",\n            \"0x0416\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\",\n            \"0x0418\" : \"0x1000001d\",\n            \"0x0419\" : \"0x80000000000000000000000000000000\",\n            \"0x041a\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x041b\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"0x041c\" : \"0x1000001b\",\n            \"0x041d\" : \"0x80000000000000000000000000000000\",\n            \"0x041e\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x0420\" : \"0x1000001c\",\n            \"0x0421\" : \"0x80000000000000000000000000000000\",\n            \"0x0422\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x0424\" : \"0x1000001d\",\n            \"0x0425\" : \"0x80000000000000000000000000000000\",\n            \"0x0426\" : \"0xa000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x0427\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"0x0428\" : \"0x1000001b\",\n            \"0x0429\" : \"0x80000000000000000000000000000000\",\n            \"0x042a\" : \"0xa000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x042c\" : \"0x1000001c\",\n            \"0x042d\" : \"0x80000000000000000000000000000000\",\n            \"0x042e\" : \"0xa000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x0430\" : \"0x1000001d\",\n            \"0x0431\" : \"0x80000000000000000000000000000000\",\n            \"0x0432\" : \"0x5555555555555555555555555555555555555555555555555555555555555555\",\n            \"0x0434\" : \"0x1000001b\",\n            \"0x0435\" : \"0x80000000000000000000000000000000\",\n            \"0x0436\" : \"0x5555555555555555555555555555555555555555555555555555555555555555\",\n            \"0x0438\" : \"0x1000001c\",\n            \"0x0439\" : \"0x80000000000000000000000000000000\",\n            \"0x043a\" : \"0x5555555555555555555555555555555555555555555555555555555555555555\",\n            \"0x043c\" : \"0x1000001d\",\n            \"0x043d\" : \"0x80000000000000000000000000000000\",\n            \"0x043e\" : \"0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n            \"0x043f\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"0x0440\" : \"0x1000001b\",\n            \"0x0441\" : \"0x80000000000000000000000000000000\",\n            \"0x0442\" : \"0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n            \"0x0444\" : \"0x1000001c\",\n            \"0x0445\" : \"0x80000000000000000000000000000000\",\n            \"0x0446\" : \"0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n            \"0x0448\" : \"0x1000001d\",\n            \"0x0449\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x044a\" : \"0x80\",\n            \"0x044c\" : \"0x1000001b\",\n            \"0x044d\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x044e\" : \"0x80\",\n            \"0x0450\" : \"0x1000001c\",\n            \"0x0451\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x0452\" : \"0x80\",\n            \"0x0454\" : \"0x1000001d\",\n            \"0x0455\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x0456\" : \"0x01\",\n            \"0x0458\" : \"0x1000001b\",\n            \"0x0459\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x045a\" : \"0x01\",\n            \"0x045c\" : \"0x1000001c\",\n            \"0x045d\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x045e\" : \"0x01\",\n            \"0x0460\" : \"0x1000001d\",\n            \"0x0461\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x0462\" : \"0x02\",\n            \"0x0464\" : \"0x1000001b\",\n            \"0x0465\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x0466\" : \"0x02\",\n            \"0x0468\" : \"0x1000001c\",\n            \"0x0469\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x046a\" : \"0x02\",\n            \"0x046c\" : \"0x1000001d\",\n            \"0x046d\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x046e\" : \"0x80\",\n            \"0x0470\" : \"0x1000001b\",\n            \"0x0471\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x0472\" : \"0x80\",\n            \"0x0474\" : \"0x1000001c\",\n            \"0x0475\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x0476\" : \"0x80\",\n            \"0x0478\" : \"0x1000001d\",\n            \"0x0479\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x047a\" : \"0xfe\",\n            \"0x047c\" : \"0x1000001b\",\n            \"0x047d\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x047e\" : \"0xfe\",\n            \"0x0480\" : \"0x1000001c\",\n            \"0x0481\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x0482\" : \"0xfe\",\n            \"0x0484\" : \"0x1000001d\",\n            \"0x0485\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x0486\" : \"0xff\",\n            \"0x0488\" : \"0x1000001b\",\n            \"0x0489\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x048a\" : \"0xff\",\n            \"0x048c\" : \"0x1000001c\",\n            \"0x048d\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x048e\" : \"0xff\",\n            \"0x0490\" : \"0x1000001d\",\n            \"0x0491\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x0492\" : \"0x0100\",\n            \"0x0494\" : \"0x1000001b\",\n            \"0x0495\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x0496\" : \"0x0100\",\n            \"0x0498\" : \"0x1000001c\",\n            \"0x0499\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x049a\" : \"0x0100\",\n            \"0x049c\" : \"0x1000001d\",\n            \"0x049d\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x049e\" : \"0x0101\",\n            \"0x04a0\" : \"0x1000001b\",\n            \"0x04a1\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x04a2\" : \"0x0101\",\n            \"0x04a4\" : \"0x1000001c\",\n            \"0x04a5\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x04a6\" : \"0x0101\",\n            \"0x04a8\" : \"0x1000001d\",\n            \"0x04a9\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x04aa\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"0x04ab\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"0x04ac\" : \"0x1000001b\",\n            \"0x04ad\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x04ae\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"0x04b0\" : \"0x1000001c\",\n            \"0x04b1\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x04b2\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"0x04b4\" : \"0x1000001d\",\n            \"0x04b5\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x04b6\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\",\n            \"0x04b7\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"0x04b8\" : \"0x1000001b\",\n            \"0x04b9\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x04ba\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\",\n            \"0x04bc\" : \"0x1000001c\",\n            \"0x04bd\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x04be\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\",\n            \"0x04c0\" : \"0x1000001d\",\n            \"0x04c1\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x04c2\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x04c3\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"0x04c4\" : \"0x1000001b\",\n            \"0x04c5\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x04c6\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x04c8\" : \"0x1000001c\",\n            \"0x04c9\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x04ca\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x04cc\" : \"0x1000001d\",\n            \"0x04cd\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x04ce\" : \"0xa000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x04cf\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"0x04d0\" : \"0x1000001b\",\n            \"0x04d1\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x04d2\" : \"0xa000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x04d4\" : \"0x1000001c\",\n            \"0x04d5\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x04d6\" : \"0xa000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x04d8\" : \"0x1000001d\",\n            \"0x04d9\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x04da\" : \"0x5555555555555555555555555555555555555555555555555555555555555555\",\n            \"0x04dc\" : \"0x1000001b\",\n            \"0x04dd\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x04de\" : \"0x5555555555555555555555555555555555555555555555555555555555555555\",\n            \"0x04e0\" : \"0x1000001c\",\n            \"0x04e1\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x04e2\" : \"0x5555555555555555555555555555555555555555555555555555555555555555\",\n            \"0x04e4\" : \"0x1000001d\",\n            \"0x04e5\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x04e6\" : \"0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n            \"0x04e7\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n            \"0x04e8\" : \"0x1000001b\",\n            \"0x04e9\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x04ea\" : \"0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n            \"0x04ec\" : \"0x1000001c\",\n            \"0x04ed\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x04ee\" : \"0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"\n          }\n  transaction:\n    data:\n      - ''\n    gasLimit:\n      - '80000000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\n    value:\n      - '1'\n"
  },
  {
    "path": "tests/static/state_tests/stShift/shl01-0100Filler.json",
    "content": "{\n    \"shl01-0100\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"code\" : \"0x60016101001b600055\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"//balance\" : \"999999999999886994\",\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"// code\" : \"PUSH1 1; PUSH2 0x0100; SHL; PUSH1 0; SSTORE\",\n                \"code\" : \":raw 0x60016101001b600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x03\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stShift/shl01-0101Filler.json",
    "content": "{\n    \"shl01-0101\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"code\" : \"0x60016101011b600055\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"//balance\" : \"999999999999886994\",\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"// code\" : \"PUSH1 1; PUSH2 0x0101; SHL; PUSH1 0; SSTORE\",\n                \"code\" : \":raw 0x60016101011b600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x03\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stShift/shl01-ffFiller.json",
    "content": "{\n    \"shl01-ff\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"code\" : \"0x600160ff1b600055\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"//balance\" : \"999999999999873988\",\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"// code\" : \"PUSH1 1; PUSH1 0xff; SHL; PUSH1 0; SSTORE\",\n                \"code\" : \":raw 0x600160ff1b600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x03\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stShift/shl01Filler.json",
    "content": "{\n    \"shl01\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"code\" : \"0x600060011b600055\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"//balance\" : \"999999999999886994\",\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"// code\" : \"PUSH1 0; PUSH1 1; SHL; PUSH1 0; SSTORE\",\n                \"code\" : \":raw 0x600060011b600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x03\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stShift/shl10Filler.json",
    "content": "{\n    \"shl10\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"code\" : \"0x600160001b600055\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"//balance\" : \"999999999999873988\",\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"// code\" : \"PUSH1 1; PUSH1 0; SHL; PUSH1 0; SSTORE\",\n                \"code\" : \":raw 0x600160001b600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x03\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stShift/shl11Filler.json",
    "content": "{\n    \"shl11\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"code\" : \"0x600160011b600055\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x02\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"//balance\" : \"999999999999873988\",\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"// code\" : \"PUSH1 1; PUSH1 1; SHL; PUSH1 0; SSTORE\",\n                \"code\" : \":raw 0x600160011b600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x03\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stShift/shl_-1_0Filler.json",
    "content": "{\n    \"shl_-1_0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"code\" : \"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60001b600055\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"//balance\" : \"999999999999873988\",\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"// code\" : \"PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff; PUSH1 0x00; SHL; PUSH1 0; SSTORE\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60001b600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x03\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stShift/shl_-1_1Filler.json",
    "content": "{\n    \"shl_-1_1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"code\" : \"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60011b600055\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"//balance\" : \"999999999999873988\",\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"// code\" : \"PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff; PUSH1 0x01; SHL; PUSH1 0; SSTORE\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60011b600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x03\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stShift/shl_-1_255Filler.json",
    "content": "{\n    \"shl_-1_255\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"code\" : \"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff1b600055\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x8000000000000000000000000000000000000000000000000000000000000000\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"//balance\" : \"999999999999873988\",\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"// code\" : \"PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff; PUSH1 0xff; SHL; PUSH1 0; SSTORE\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff1b600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x03\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stShift/shl_-1_256Filler.json",
    "content": "{\n    \"shl_-1_256\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"code\" : \"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101001b600055\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"// code\" : \"PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff; PUSH2 0x0100; SHL; PUSH1 0; SSTORE\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101001b600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x03\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stShift/shl_2^255-1_1Filler.json",
    "content": "{\n    \"shl_2^255-1_1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"//balance\" : \"999999999999873988\",\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"// code\" : \"PUSH32 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff; PUSH1 0x01; SHL; PUSH1 0; SSTORE\",\n                \"code\" : \":raw 0x7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60011b600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x03\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stShift/shr01Filler.json",
    "content": "{\n    \"shr01\" : {\n        \"_info\" : {\n            \"comment\" : \"Taken from https://github.com/ethereum/EIPs/blob/master/EIPS/eip-145.md\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"// code\" : \"PUSH1 0; PUSH1 1; SHR; PUSH1 0; SSTORE\",\n                \"code\" : \":raw 0x600060011c600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x03\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stShift/shr10Filler.json",
    "content": "{\n    \"shr10\" : {\n        \"_info\" : {\n            \"comment\" : \"Taken from https://github.com/ethereum/EIPs/blob/master/EIPS/eip-145.md\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"//balance\" : \"999999999999873988\",\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"// code\" : \"PUSH1 1; PUSH1 0; SHR; PUSH1 0; SSTORE\",\n                \"code\" : \":raw 0x600160001c600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x03\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stShift/shr11Filler.json",
    "content": "{\n    \"shr11\" : {\n        \"_info\" : {\n            \"comment\" : \"Taken from https://github.com/ethereum/EIPs/blob/master/EIPS/eip-145.md\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"//balance\" : \"999999999999886994\",\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"// code\" : \"PUSH1 1; PUSH1 1; SHR; PUSH1 0; SSTORE\",\n                \"code\" : \":raw 0x600160011c600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x03\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stShift/shr_-1_0Filler.json",
    "content": "{\n    \"shr_-1_0\" : {\n        \"_info\" : {\n            \"comment\" : \"Taken from https://github.com/ethereum/EIPs/blob/master/EIPS/eip-145.md\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"// code\" : \"PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff; PUSH1 0x00; SHR; PUSH1 0; SSTORE\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60001c600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x03\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stShift/shr_-1_1Filler.json",
    "content": "{\n    \"shr_-1_1\" : {\n        \"_info\" : {\n            \"comment\" : \"Taken from https://github.com/ethereum/EIPs/blob/master/EIPS/eip-145.md\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"// code\" : \"PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff; PUSH1 0x01; SHR; PUSH1 0; SSTORE\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60011c600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x03\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stShift/shr_-1_255Filler.json",
    "content": "{\n    \"shr_-1_255\" : {\n        \"_info\" : {\n            \"comment\" : \"Taken from https://github.com/ethereum/EIPs/blob/master/EIPS/eip-145.md\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"// code\" : \"PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff; PUSH1 0xff; SHR; PUSH1 0; SSTORE\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff1c600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x03\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stShift/shr_-1_256Filler.json",
    "content": "{\n    \"shr_-1_256\" : {\n        \"_info\" : {\n            \"comment\" : \"Taken from https://github.com/ethereum/EIPs/blob/master/EIPS/eip-145.md\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"// code\" : \"PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff; PUSH2 0x0100; SHR; PUSH1 0; SSTORE\",\n                \"code\" : \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101001c600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x03\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stShift/shr_2^255_1Filler.json",
    "content": "{\n    \"shr_2^255_1\" : {\n        \"_info\" : {\n            \"comment\" : \"Taken from https://github.com/ethereum/EIPs/blob/master/EIPS/eip-145.md\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x4000000000000000000000000000000000000000000000000000000000000000\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"// code\" : \"PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000; PUSH1 1; SHR; PUSH1 0; SSTORE\",\n                \"code\" : \":raw 0x7f800000000000000000000000000000000000000000000000000000000000000060011c600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x03\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stShift/shr_2^255_255Filler.json",
    "content": "{\n    \"shr_2^255_255\" : {\n        \"_info\" : {\n            \"comment\" : \"Taken from https://github.com/ethereum/EIPs/blob/master/EIPS/eip-145.md\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"// code\" : \"PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000; PUSH1 0xff; SHR; PUSH1 0; SSTORE\",\n                \"code\" : \":raw 0x7f800000000000000000000000000000000000000000000000000000000000000060ff1c600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x03\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stShift/shr_2^255_256Filler.json",
    "content": "{\n    \"shr_2^255_256\" : {\n        \"_info\" : {\n            \"comment\" : \"Taken from https://github.com/ethereum/EIPs/blob/master/EIPS/eip-145.md\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"// code\" : \"PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000; PUSH2 0x0100; SHR; PUSH1 0; SSTORE\",\n                \"code\" : \":raw 0x7f80000000000000000000000000000000000000000000000000000000000000006101001c600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x03\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stShift/shr_2^255_257Filler.json",
    "content": "{\n    \"shr_2^255_257\" : {\n        \"_info\" : {\n            \"comment\" : \"Taken from https://github.com/ethereum/EIPs/blob/master/EIPS/eip-145.md\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000100000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"// code\" : \"PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000; PUSH2 0x0101; SHR; PUSH1 0; SSTORE\",\n                \"code\" : \":raw 0x7f80000000000000000000000000000000000000000000000000000000000000006101011c600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x03\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSolidityTest/AmbiguousMethodFiller.json",
    "content": "{\n    \"AmbiguousMethod\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x014f\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"100000\",\n                \"//comment1\" : \"contract contract1\",\n                \"//comment2\" : \"{\",\n                \"//comment3\" : \"    uint value;\",\n                \"//comment4\" : \"    function run()\",\n                \"//comment5\" : \"    {\",\n                \"//comment6\" : \"        value = 225;\",\n                \"//comment7\" : \"    }\",\n                \"//comment8\" : \"}\",\n                \"//comment9\" : \"\",\n                \"//comment10\" : \"contract contract2\",\n                \"//comment11\" : \"{\",\n                \"//comment12\" : \"    uint value2;\",\n                \"//comment13\" : \"    function run()\",\n                \"//comment14\" : \"    {\",\n                \"//comment15\" : \"        value2 = 335;\",\n                \"//comment16\" : \"    }\",\n                \"//comment17\" : \"}\",\n                \"code\" : \":raw 0x60003560e060020a90048063c040622614601557005b601b6021565b60006000f35b61014f60008190555056\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"5000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0xc0406226\"\n            ],\n            \"gasLimit\" : [\n                \"300000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSolidityTest/ByZeroFiller.json",
    "content": "{\n    \"ByZero\" : {\n        \"_info\" : {\n            \"comment\" : \"DIV/SDIV/MOD/SMOD by zero tests\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"balance\" : \"0\",\n                        \"//comment\" : \"No code is returned\",\n                        \"code\" : \"\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                      \"code\" : \"0x\",\n                      \"nonce\" : \"1\",\n                      \"storage\" : {\n                      }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n              \"balance\" : \"10000000000000000000\",\n              \"code\" : \"0x\",\n              \"nonce\" : \"0\",\n              \"storage\" : {\n              }\n            }\n        },\n        \"transaction\" : {\n            \"//comment\" : \"store 1 at the result of {DIV,SDIV,MOD,SMOD}(1,0)\",\n            \"data\" : [\n              \":raw 0x600160006001045500\",\n              \":raw 0x600160006001055500\",\n              \":raw 0x600160006001065500\",\n              \":raw 0x600160006001075500\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSolidityTest/CallInfiniteLoopFiller.json",
    "content": "{\n    \"CallInfiniteLoop\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"\",\n                \"nonce\" : \"1\",\n                \"storage\" : {}\n            },\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"100000\",\n                \"//comment1\" : \"contract recursiveMethods\",\n                \"//comment2\" : \"{\",\n                \"//comment3\" : \"    function testInfiniteLoop()\",\n                \"//comment4\" : \"    {\",\n                \"//comment5\" : \"        while(true){}\",\n                \"//comment6\" : \"    }\",\n                \"//comment7\" : \"    \",\n                \"//comment8\" : \"    function testRecursiveMethods()\",\n                \"//comment9\" : \"    {\",\n                \"//comment10\" : \"        testRecursiveMethods2();\",\n                \"//comment11\" : \"    }\",\n                \"//comment12\" : \"    \",\n                \"//comment13\" : \"    function testRecursiveMethods2()\",\n                \"//comment14\" : \"    {\",\n                \"//comment15\" : \"        testRecursiveMethods();\",\n                \"//comment16\" : \"    }\",\n                \"//comment17\" : \"}\",\n                \"code\" : \":raw 0x60003560e060020a90048063296df0df1460295780634893d88a146035578063981a316514604157005b602f604d565b60006000f35b603b6062565b60006000f35b6047605a565b60006000f35b5b600115605857604e565b565b60606062565b565b6068605a565b56\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"500000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x296df0df\"\n            ],\n            \"gasLimit\" : [\n                \"300000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSolidityTest/CallLowLevelCreatesSolidityFiller.json",
    "content": "{\n    \"CallLowLevelCreatesSolidity\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xe1\",\n                            \"0x01\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"100000\",\n                \"//comment1\": \"contract subcaller\",\n                \"//comment2\": \"{\",\n                \"//comment3\": \"  function init(address a)\",\n                \"//comment4\": \"  {\",\n                \"//comment5\": \"    main(a).setdata(225);\",\n                \"//comment6\": \"  }\",\n                \"//comment7\": \"}\",\n                \"//comment8\": \"\",\n                \"//comment9\": \"contract main\",\n                \"//comment10\": \"{\",\n                \"//comment11\": \"   uint data;\",\n                \"//comment12\": \"   address msgsender;\",\n                \"//comment13\": \"   function run() returns (uint)\",\n                \"//comment14\": \"   {\",\n                \"//comment15\": \"       data = 1;\",\n                \"//comment16\": \"      msgsender = <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>;\",\n                \"//comment17\": \"       subcaller a = new subcaller();\",\n                \"//comment18\": \"       a.init(msgsender);\",\n                \"//comment19\": \"       return data;\",\n                \"//comment20\": \"   }\",\n                \"//comment21\": \"   \",\n                \"//comment22\": \"   function setdata(uint _data)\",\n                \"//comment23\": \"   {\",\n                \"//comment24\": \"       data = _data;\",\n                \"//comment25\": \"   }\",\n                \"//comment26\": \"}\",\n                \"code\" : \":raw 0x60003560e060020a9004806330debb4214610021578063c04062261461003257005b61002c6004356100c7565b60006000f35b61003a610044565b8060005260206000f35b60006000600160008190555073<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>600181905550606a6100d2600039606a60006000f0905080600160a060020a03166319ab453c600060008260e060020a026000526004600154600160a060020a03168152602001600060008660325a03f16100bc57005b505060005491505090565b80600081905550505600605e80600c6000396000f30060003560e060020a9004806319ab453c14601557005b601e6004356024565b60006000f35b80600160a060020a03166330debb42600060008260e060020a02600052600460e18152602001600060008660325a03f1605957005b50505056\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"100000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0xc0406226\"\n            ],\n            \"gasLimit\" : [\n                \"350000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSolidityTest/CallRecursiveMethodsFiller.json",
    "content": "{\n    \"CallRecursiveMethods\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"\",\n                \"nonce\" : \"1\",\n                \"storage\" : {}\n            },\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"100000\",\n                \"//comment1\" : \"contract recursiveMethods\",\n                \"//comment2\" : \"{\",\n                \"//comment3\" : \"    function testInfiniteLoop()\",\n                \"//comment4\" : \"    {\",\n                \"//comment5\" : \"        while(true){}\",\n                \"//comment6\" : \"    }\",\n                \"//comment7\" : \"    \",\n                \"//comment8\" : \"    function testRecursiveMethods()\",\n                \"//comment9\" : \"    {\",\n                \"//comment10\" : \"        testRecursiveMethods2();\",\n                \"//comment11\" : \"    }\",\n                \"//comment12\" : \"    \",\n                \"//comment13\" : \"    function testRecursiveMethods2()\",\n                \"//comment14\" : \"    {\",\n                \"//comment15\" : \"        testRecursiveMethods();\",\n                \"//comment16\" : \"    }\",\n                \"//comment17\" : \"}\",\n                \"code\" : \":raw 0x7c01000000000000000000000000000000000000000000000000000000006000350463296df0df811460415780634893d88a14604d578063981a316514605957005b60476065565b60006000f35b6053607a565b60006000f35b605f6072565b60006000f35b5b6001156070576066565b565b6078607a565b565b60806072565b56\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"5000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x981a3165\"\n            ],\n            \"gasLimit\" : [\n                \"60000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSolidityTest/ContractInheritanceFiller.json",
    "content": "{\n    \"ContractInheritance\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun<Osaka\" ],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"100000\",\n                \"//comment1\" : \"contract base\",\n                \"//comment2\" : \"{\",\n                \"//comment3\" : \"    function methodA() returns (uint32)\",\n                \"//comment4\" : \"    {\",\n                \"//comment5\" : \"        return 1;\",\n                \"//comment6\" : \"    }\",\n                \"//comment7\" : \"}\",\n                \"//comment8\" : \"\",\n                \"//comment9\" : \"contract frombase is base\",\n                \"//comment10\" : \"{\",\n                \"//comment11\" : \"    function methodA() returns (uint32)\",\n                \"//comment12\" : \"    {\",\n                \"//comment13\" : \"        return 2;\",\n                \"//comment14\" : \"    }\",\n                \"//comment15\" : \"}\",\n                \"//comment16\" : \"\",\n                \"//comment17\" : \"contract main\",\n                \"//comment18\" : \"{\",\n                \"//comment19\" : \"    bool returnValue;\",\n                \"//comment20\" : \"    function run() returns (bool)\",\n                \"//comment21\" : \"    {\",\n                \"//comment22\" : \"       returnValue = testInheretance();\",\n                \"//comment23\" : \"       return returnValue;\",\n                \"//comment24\" : \"    }\",\n                \"//comment25\" : \"   \",\n                \"//comment26\" : \"    function testInheretance() returns (bool res)\",\n                \"//comment27\" : \"    {\",\n                \"//comment28\" : \"        res = true;\",\n                \"//comment29\" : \"        base contract1 = new base();\",\n                \"//comment30\" : \"        if (contract1.methodA() != 1)\",\n                \"//comment31\" : \"            return false;\",\n                \"//comment32\" : \"\",\n                \"//comment33\" : \"        frombase contract2 = new frombase();\",\n                \"//comment34\" : \"        if (contract2.methodA() != 2)\",\n                \"//comment35\" : \"            return false;\",\n                \"//comment36\" : \"    }\",\n                \"//comment37\" : \"}\",\n                \"code\" : \":raw 0x7c010000000000000000000000000000000000000000000000000000000060003504633e0bca3b8114610039578063c0406226146100a857005b6100b55b600160008060456101ec8339604560006000f091508173ffffffffffffffffffffffffffffffffffffffff166381bda09b60206000827c010000000000000000000000000000000000000000000000000000000002600052600460006000866161da5a03f161011957005b6100bf60006100c961003d565b8060005260206000f35b8060005260206000f35b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016919091179081905560ff16919050565b505060005163ffffffff166002141561019d575b5b505090565b505060005163ffffffff1660011415610194575b60456101a7600039604560006000f090508073ffffffffffffffffffffffffffffffffffffffff166381bda09b60206000827c010000000000000000000000000000000000000000000000000000000002600052600460006000866161da5a03f16100ff57005b60009250610114565b600092506101145600603980600c6000396000f3007c0100000000000000000000000000000000000000000000000000000000600035046381bda09b8114602d57005b60026000818152602090f3603980600c6000396000f3007c0100000000000000000000000000000000000000000000000000000000600035046381bda09b8114602d57005b60016000818152602090f3\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"5000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0xc0406226\"\n            ],\n            \"gasLimit\" : [\n                \"35000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSolidityTest/CreateContractFromMethodFiller.json",
    "content": "{\n    \"CreateContractFromMethod\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"nonce\" : \"1\"\n                    },\n                    \"d2571607e241ecf590ed94b12d87c94babe36db6\" : {\n                        \"balance\" : \"0\",\n                        \"code\" : \"0x60003560e060020a90048062f55d9d14601e578063b9c3d0a514602d57005b60276004356046565b60006000f35b6033603d565b8060005260206000f35b600060e1905090565b80600160a060020a0316ff5056\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"100000\",\n                \"//comment1\": \"contract TestContract\",\n                \"//comment2\": \"{\",\n                \"//comment3\": \"    function testMethod() returns (int res)\",\n                \"//comment4\": \"    {\",\n                \"//comment5\": \"        return 225;\",\n                \"//comment6\": \"    }\",\n                \"//comment7\": \"\",\n                \"//comment8\": \"    function destroy(address sendFoundsTo)\",\n                \"//comment9\": \"    {\",\n                \"//comment10\": \"        suicide(sendFoundsTo);\",\n                \"//comment11\": \"    }\",\n                \"//comment12\": \"}\",\n                \"//comment13\": \"\",\n                \"//comment14\": \"contract main\",\n                \"//comment15\": \"{\",\n                \"//comment16\": \"   function run() returns (uint)\",\n                \"//comment17\": \"   {\",\n                \"//comment18\": \"       createContractFromMethod();\",\n                \"//comment19\": \"   }\",\n                \"//comment20\": \"   \",\n                \"//comment21\": \"   function createContractFromMethod() returns (TestContract a)\",\n                \"//comment22\": \"   {\",\n                \"//comment23\": \"       a = new TestContract();\",\n                \"//comment24\": \"   }\",\n                \"//comment25\": \"}\",\n                \"code\" : \":raw 0x60003560e060020a900480637ee17e1214601f578063c040622614602b57005b60256047565b60006000f35b6031603b565b8060005260206000f35b600060436047565b5090565b60006060605d600039606060006000f09050905600605480600c6000396000f30060003560e060020a90048062f55d9d14601e578063b9c3d0a514602d57005b60276004356046565b60006000f35b6033603d565b8060005260206000f35b600060e1905090565b80600160a060020a0316ff5056\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"100000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0xc0406226\"\n            ],\n            \"gasLimit\" : [\n                \"350000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSolidityTest/RecursiveCreateContractsCreate4ContractsFiller.json",
    "content": "{\n    \"RecursiveCreateContractsCreate4Contracts\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                           \"nonce\" : \"0x03\",\n                            \"storage\" : {\n                                \"0x00\" : \"0x095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n                                \"0x01\" : \"0x04\"\n                            }\n                        },\n                        \"2b25ae4b13cb6e06869f694d29de45e7614ebd97\" : {\n                            \"nonce\" : \"0x01\",\n                            \"storage\" : {\n                                \"0x00\" : \"0x01\"\n                            }\n                        },\n                        \"5d35480c6e7f8952363fa280a0a96906da981f63\" : {\n                            \"balance\" : \"0x02\",\n                            \"nonce\" : \"0x01\"\n                        },\n                        \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                            \"nonce\" : \"0x01\"\n                        },\n                        \"b88de88b35ecbf3c141e3caae2baf35834d18f63\" : {\n                            \"balance\" : \"0x02\",\n                            \"nonce\" : \"0x02\",\n                            \"storage\" : {\n                                \"0x00\" : \"0x02\"\n                            }\n                        },\n                        \"d2571607e241ecf590ed94b12d87c94babe36db6\" : {\n                            \"nonce\" : \"0x01\",\n                            \"storage\" : {\n                                \"0x00\" : \"0x03\"\n                            }\n                        }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"1000000000000000000000000000000000\",\n                \"//comment1\" : \"contract recursiveCreate1\",\n                \"//comment2\" : \"{\",\n                \"//comment3\" : \"    uint depp;\",\n                \"//comment4\" : \"    function recursiveCreate1(address a, uint depth)\",\n                \"//comment5\" : \"    {\",\n                \"//comment6\" : \"        depth = depth - 1;\",\n                \"//comment7\" : \"depp = depth;\",\n                \"//comment8\" : \"        if(depth > 0)\",\n                \"//comment9\" : \"            main(a).create2(depth);\",\n                \"//comment10\" : \"    }\",\n                \"//comment11\" : \"}\",\n                \"//comment12\" : \"\",\n                \"//comment13\" : \"contract recursiveCreate2\",\n                \"//comment14\" : \"{\",\n                \"//comment15\" : \"    uint depp;\",\n                \"//comment16\" : \"    function recursiveCreate2(address a, uint depth)\",\n                \"//comment17\" : \"    {\",\n                \"//comment18\" : \"        depth = depth - 1;\",\n                \"//comment19\" : \"depp = depth;\",\n                \"//comment20\" : \"        if(depth > 0)\",\n                \"//comment21\" : \"            recursiveCreate1 rec1 = new recursiveCreate1(a, depth);\",\n                \"//comment22\" : \"    }\",\n                \"//comment23\" : \"}\",\n                \"//comment24\" : \"\",\n                \"//comment25\" : \"contract main\",\n                \"//comment26\" : \"{\",\n                \"//comment27\" : \"    address maincontract;\",\n                \"//comment28\" : \"    uint depp;\",\n                \"//comment29\" : \"    function run(uint depth)\",\n                \"//comment30\" : \"    {\",\n                \"//comment31\" : \"        maincontract = 0x095e7baea6a6c7c4c2dfeb977efac326af552d87;\",\n                \"//comment32\" : \"        depp = depth;\",\n                \"//comment33\" : \"        recursiveCreate1 rec1 = new recursiveCreate1(maincontract, depth);\",\n                \"//comment34\" : \"    }\",\n                \"//comment35\" : \"\",\n                \"//comment36\" : \"    function create2(uint depth)\",\n                \"//comment37\" : \"    {\",\n                \"//comment38\" : \"        recursiveCreate2 rec2 = new recursiveCreate2(maincontract, depth);\",\n                \"//comment39\" : \"        address(rec2).send(2);\",\n                \"//comment40\" : \"    }\",\n                \"//comment41\" : \"}\",\n                \"code\" : \":raw 0x60003560e060020a90048063820b13f614610021578063a444f5e91461003257005b61002c600435610093565b60006000f35b61003d600435610043565b60006000f35b600073095e7baea6a6c7c4c2dfeb977efac326af552d8760008190555081600181905550606b6101ad600039606b600054600160a060020a0316815260200182815260200160006000f090505050565b600060c86100e560003960c8600054600160a060020a0316815260200182815260200160006000f0905080600160a060020a0316600060026000600060006000848787f16100dd57005b50505050505600604060c860043960045160245160006001820391508160008190555060008211602657604c565b606b605d600039606b83600160a060020a0316815260200182815260200160006000f090505b505050600180605c6000396000f300006040606b6004396004516024516001810390508060008190555060008111602457605b565b81600160a060020a031663820b13f6600060008260e060020a026000526004858152602001600060008660325a03f1605857005b50505b5050600180606a6000396000f300006040606b6004396004516024516001810390508060008190555060008111602457605b565b81600160a060020a031663820b13f6600060008260e060020a026000526004858152602001600060008660325a03f1605857005b50505b5050600180606a6000396000f30000\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"500000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0xa444f5e90000000000000000000000000000000000000000000000000000000000000004\"\n            ],\n            \"gasLimit\" : [\n                \"300000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSolidityTest/RecursiveCreateContractsFiller.json",
    "content": "{\n    \"RecursiveCreateContracts\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                            \"balance\" : \"0x314dc6448d9338c15b0a00000001\",\n                            \"nonce\" : \"0x01\",\n                            \"storage\" : {\n                                \"0x00\" : \"0x095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n                                \"0x01\" : \"0x0304\"\n                            }\n                        },\n                        \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                            \"nonce\" : \"0x01\"\n                        },\n                        \"d2571607e241ecf590ed94b12d87c94babe36db6\" : {\n                            \"nonce\" : \"0x01\",\n                            \"storage\" : {\n                                \"0x00\" : \"0x0303\"\n                            }\n                        }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"1000000000000000000000000000000000\",\n                \"//comment1\" : \"contract recursiveCreate1\",\n                \"//comment2\" : \"{\",\n                \"//comment3\" : \"    uint depp;\",\n                \"//comment4\" : \"    function recursiveCreate1(address a, uint depth)\",\n                \"//comment5\" : \"    {\",\n                \"//comment6\" : \"        depth = depth - 1;\",\n                \"//comment7\" : \"depp = depth;\",\n                \"//comment8\" : \"        if(depth > 0)\",\n                \"//comment9\" : \"            main(a).create2(depth);\",\n                \"//comment10\" : \"    }\",\n                \"//comment11\" : \"}\",\n                \"//comment12\" : \"\",\n                \"//comment13\" : \"contract recursiveCreate2\",\n                \"//comment14\" : \"{\",\n                \"//comment15\" : \"    uint depp;\",\n                \"//comment16\" : \"    function recursiveCreate2(address a, uint depth)\",\n                \"//comment17\" : \"    {\",\n                \"//comment18\" : \"        depth = depth - 1;\",\n                \"//comment19\" : \"depp = depth;\",\n                \"//comment20\" : \"        if(depth > 0)\",\n                \"//comment21\" : \"            recursiveCreate1 rec1 = new recursiveCreate1(a, depth);\",\n                \"//comment22\" : \"    }\",\n                \"//comment23\" : \"}\",\n                \"//comment24\" : \"\",\n                \"//comment25\" : \"contract main\",\n                \"//comment26\" : \"{\",\n                \"//comment27\" : \"    address maincontract;\",\n                \"//comment28\" : \"    uint depp;\",\n                \"//comment29\" : \"    function run(uint depth)\",\n                \"//comment30\" : \"    {\",\n                \"//comment31\" : \"        maincontract = 0x095e7baea6a6c7c4c2dfeb977efac326af552d87;\",\n                \"//comment32\" : \"        depp = depth;\",\n                \"//comment33\" : \"        recursiveCreate1 rec1 = new recursiveCreate1(maincontract, depth);\",\n                \"//comment34\" : \"    }\",\n                \"//comment35\" : \"\",\n                \"//comment36\" : \"    function create2(uint depth)\",\n                \"//comment37\" : \"    {\",\n                \"//comment38\" : \"        recursiveCreate2 rec2 = new recursiveCreate2(maincontract, depth);\",\n                \"//comment39\" : \"        address(rec2).send(2);\",\n                \"//comment40\" : \"    }\",\n                \"//comment41\" : \"}\",\n                \"code\" : \":raw 0x60003560e060020a90048063820b13f614610021578063a444f5e91461003257005b61002c600435610093565b60006000f35b61003d600435610043565b60006000f35b600073095e7baea6a6c7c4c2dfeb977efac326af552d8760008190555081600181905550606b6101ad600039606b600054600160a060020a0316815260200182815260200160006000f090505050565b600060c86100e560003960c8600054600160a060020a0316815260200182815260200160006000f0905080600160a060020a0316600060026000600060006000848787f16100dd57005b50505050505600604060c860043960045160245160006001820391508160008190555060008211602657604c565b606b605d600039606b83600160a060020a0316815260200182815260200160006000f090505b505050600180605c6000396000f300006040606b6004396004516024516001810390508060008190555060008111602457605b565b81600160a060020a031663820b13f6600060008260e060020a026000526004858152602001600060008660325a03f1605857005b50505b5050600180606a6000396000f300006040606b6004396004516024516001810390508060008190555060008111602457605b565b81600160a060020a031663820b13f6600060008260e060020a026000526004858152602001600060008660325a03f1605857005b50505b5050600180606a6000396000f30000\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"500000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0xa444f5e90000000000000000000000000000000000000000000000000000000000000304\"\n            ],\n            \"gasLimit\" : [\n                \"300000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSolidityTest/TestBlockAndTransactionPropertiesFiller.json",
    "content": "{\n    \"TestBlockAndTransactionProperties\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"100000\",\n                \"//comment1\" : \"contract main\",\n                \"//comment2\" : \"{\",\n                \"//comment3\" : \"    bool returnValue;\",\n                \"//comment4\" : \"    function run() returns (bool)\",\n                \"//comment5\" : \"    {\",\n                \"//comment6\" : \"       returnValue = testBlockAndTransactionProperties();\",\n                \"//comment7\" : \"       return returnValue;\",\n                \"//comment8\" : \"    }\",\n                \"//comment9\" : \"\",\n                \"//comment10\" : \"    function testBlockAndTransactionProperties() returns (bool res)\",\n                \"//comment11\" : \"    {\",\n                \"//comment12\" : \"        res = true;\",\n                \"//comment13\" : \"        if (block.coinbase != 0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba)\",\n                \"//comment14\" : \"            return false;\",\n                \"//comment15\" : \"\",\n                \"//comment16\" : \"        if (block.difficulty != 45678256)\",\n                \"//comment17\" : \"            return false;\",\n                \"//comment18\" : \"\",\n                \"//comment19\" : \"        if (block.gaslimit != 0x7fffffffffffffff)\",\n                \"//comment20\" : \"            return false;\",\n                \"//comment21\" : \"\",\n                \"//comment22\" : \"        if (block.number != 120)\",\n                \"//comment23\" : \"            return false;\",\n                \"//comment24\" : \"\",\n                \"//comment25\" : \"        //try to call this\",\n                \"//comment26\" : \"        block.blockhash(120);\",\n                \"//comment27\" : \"        block.timestamp;\",\n                \"//comment28\" : \"        msg.gas;\",\n                \"//comment29\" : \"\",\n                \"//comment30\" : \"        if (msg.sender != <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>)\",\n                \"//comment31\" : \"            return false;\",\n                \"//comment32\" : \"\",\n                \"//comment33\" : \"        if (msg.value != 100)\",\n                \"//comment34\" : \"            return false;\",\n                \"//comment35\" : \"\",\n                \"//comment36\" : \"        if (tx.gasprice != 1)\",\n                \"//comment37\" : \"            return false;\",\n                \"//comment38\" : \"\",\n                \"//comment39\" : \"        if (tx.origin != <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>)\",\n                \"//comment40\" : \"            return false;\",\n                \"//comment41\" : \"\",\n                \"//comment42\" : \"    }\",\n                \"//comment43\" : \"}\",\n                \"code\" : \":raw 0x60606040526000357c010000000000000000000000000000000000000000000000000000000090048063c040622614610044578063e97384dc1461006957610042565b005b610051600480505061008e565b60405180821515815260200191505060405180910390f35b61007660048050506100c9565b60405180821515815260200191505060405180910390f35b60006100986100c9565b600060006101000a81548160ff02191690830217905550600060009054906101000a900460ff1690506100c6565b90565b6000600190508050732adc25665018aa1fe0e6bc666dac8fc2697ff9ba4173ffffffffffffffffffffffffffffffffffffffff1614151561010d57600090506101f7565b6302b8feb04414151561012357600090506101f7565b677fffffffffffffff4514151561013d57600090506101f7565b60784314151561015057600090506101f7565b6078405042505a5073<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>3373ffffffffffffffffffffffffffffffffffffffff1614151561019457600090506101f7565b6064341415156101a757600090506101f7565b60013a1415156101ba57600090506101f7565b73<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>3273ffffffffffffffffffffffffffffffffffffffff161415156101f657600090506101f7565b5b9056\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"100000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0xc0406226\"\n            ],\n            \"gasLimit\" : [\n                \"350000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSolidityTest/TestContractInteractionFiller.json",
    "content": "{\n    \"TestContractInteraction\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"100000\",\n                \"//comment1\": \"contract TestContract\",\n                \"//comment2\": \"{\",\n                \"//comment3\": \"    function testMethod() returns (int res)\",\n                \"//comment4\": \"    {\",\n                \"//comment5\": \"        return 225;\",\n                \"//comment6\": \"    }\",\n                \"//comment7\": \"\",\n                \"//comment8\": \"    function destroy(address sendFoundsTo)\",\n                \"//comment9\": \"    {\",\n                \"//comment10\": \"        suicide(sendFoundsTo);\",\n                \"//comment11\": \"    }\",\n                \"//comment12\": \"}\",\n                \"//comment13\": \"contract main\",\n                \"//comment14\": \"{\",\n                \"//comment15\": \"    bool returnValue;\",\n                \"//comment16\": \"    function run() returns (bool)\",\n                \"//comment17\": \"    {\",\n                \"//comment18\": \"       returnValue = testContractInteraction();\",\n                \"//comment19\": \"       return returnValue;\",\n                \"//comment20\": \"    }\",\n                \"//comment21\": \"\",\n                \"//comment22\" : \"    function testContractInteraction() returns (bool res)\",\n                \"//comment23\" : \"    {\",\n                \"//comment24\" : \"        TestContract a = new TestContract();\",\n                \"//comment25\" : \"        if (a.testMethod() == 225)\",\n                \"//comment26\" : \"            return true;\",\n                \"//comment27\" : \"        return false;\",\n                \"//comment28\" : \"    }\",\n                \"//comment29\": \"}\",\n                \"code\" : \":raw 0x7c01000000000000000000000000000000000000000000000000000000006000350463c04062268114610039578063ed973fe91461004b57005b6100416100ea565b8060005260206000f35b61005361005d565b8060005260206000f35b60006000608161011a600039608160006000f0905073ffffffffffffffffffffffffffffffffffffffff811663b9c3d0a5602060007fb9c3d0a50000000000000000000000000000000000000000000000000000000081526004600060008660325a03f16100c757005b505060005160e1146100d8576100e1565b600191506100e6565b600091505b5090565b60006100f461005d565b600060006101000a81548160ff0219169083021790555060ff600160005404169050905600607580600c6000396000f3007c01000000000000000000000000000000000000000000000000000000006000350462f55d9d81146036578063b9c3d0a514604557005b603f6004356055565b60006000f35b604b6070565b8060005260206000f35b8073ffffffffffffffffffffffffffffffffffffffff16ff50565b60e19056\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"100000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0xc0406226\"\n            ],\n            \"gasLimit\" : [\n                \"350000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSolidityTest/TestContractSuicideFiller.json",
    "content": "{\n    \"TestContractSuicide\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"100000\",\n                \"//comment1\": \"contract TestContract\",\n                \"//comment2\": \"{\",\n                \"//comment3\": \"    function testMethod() returns (int res)\",\n                \"//comment4\": \"    {\",\n                \"//comment5\": \"        return 225;\",\n                \"//comment6\": \"    }\",\n                \"//comment7\": \"\",\n                \"//comment8\": \"    function destroy(address sendFoundsTo)\",\n                \"//comment9\": \"    {\",\n                \"//comment10\": \"        suicide(sendFoundsTo);\",\n                \"//comment11\": \"    }\",\n                \"//comment12\": \"}\",\n                \"//comment13\": \"contract main\",\n                \"//comment14\": \"{\",\n                \"//comment15\": \"   bool returnValue;\",\n                \"//comment16\": \"    function run() returns (bool)\",\n                \"//comment17\": \"    {\",\n                \"//comment18\": \"       returnValue = testContractSuicide();\",\n                \"//comment19\": \"       return returnValue;\",\n                \"//comment20\": \"    }\",\n                \"//comment21\": \"\",\n                \"//comment22\": \"    function testContractSuicide() returns (bool res)\",\n                \"//comment23\": \"    {\",\n                \"//comment24\": \"        TestContract a = new TestContract();\",\n                \"//comment25\": \"        a.destroy(block.coinbase);\",\n                \"//comment26\": \"        if (a.testMethod() == 225) //we should be able to call a contract\",\n                \"//comment27\": \"            return true;\",\n                \"//comment28\": \"        return false;\",\n                \"//comment29\": \"    }\",\n                \"//comment30\": \"}\",\n                \"code\" : \":raw 0x7c01000000000000000000000000000000000000000000000000000000006000350463a60eedda8114610039578063c04062261461004b57005b61004161005d565b8060005260206000f35b61005361015a565b8060005260206000f35b60006000608161018a600039608160006000f0905073ffffffffffffffffffffffffffffffffffffffff811662f55d9d6000807ef55d9d00000000000000000000000000000000000000000000000000000000825260044173ffffffffffffffffffffffffffffffffffffffff168152602001600060008660325a03f16100e057005b505073ffffffffffffffffffffffffffffffffffffffff811663b9c3d0a5602060007fb9c3d0a50000000000000000000000000000000000000000000000000000000081526004600060008660325a03f161013757005b505060005160e11461014857610151565b60019150610156565b600091505b5090565b600061016461005d565b600060006101000a81548160ff0219169083021790555060ff600160005404169050905600607580600c6000396000f3007c01000000000000000000000000000000000000000000000000000000006000350462f55d9d81146036578063b9c3d0a514604557005b603f600435605a565b60006000f35b604b6055565b8060005260206000f35b60e190565b8073ffffffffffffffffffffffffffffffffffffffff16ff5056\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"100000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0xc0406226\"\n            ],\n            \"gasLimit\" : [\n                \"350000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSolidityTest/TestCryptographicFunctionsFiller.json",
    "content": "{\n    \"TestCryptographicFunctions\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun<Osaka\" ],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"100000\",\n                \"//comment1\" : \"contract main\",\n                \"//comment2\" : \"{\",\n                \"//comment3\" : \"    bool returnValue;\",\n                \"//comment4\" : \"    function run() returns (bool)\",\n                \"//comment5\" : \"    {\",\n                \"//comment6\" : \"       returnValue = testCryptographicFunctions();\",\n                \"//comment7\" : \"       return returnValue;\",\n                \"//comment8\" : \"    }\",\n                \"//comment9\" : \"\",\n                \"//comment10\" : \"    function testCryptographicFunctions() returns (bool res)\",\n                \"//comment11\" : \"    {\",\n                \"//comment12\" : \"        res = true;\",\n                \"//comment13\" : \"        if (sha3('teststring') != 0x43c4b4524adb81e4e9a5c4648a98e9d320e3908ac5b6c889144b642cd08ae16d)\",\n                \"//comment14\" : \"            return false;\",\n                \"//comment15\" : \"\",\n                \"//comment16\" : \"        if (sha256('teststring') != 0x3c8727e019a42b444667a587b6001251becadabbb36bfed8087a92c18882d111)\",\n                \"//comment17\" : \"            return false;\",\n                \"//comment18\" : \"\",\n                \"//comment19\" : \"        if (ripemd160('teststring') != 0xcd566972b5e50104011a92b59fa8e0b1234851ae)\",\n                \"//comment20\" : \"            return false;\",\n                \"//comment21\" : \"\",\n                \"//comment22\" : \"if (ecrecover(0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c,\",\n                \"//comment23\" : \"                      28, 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f,\",\n                \"//comment24\" : \"                      0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549)\",\n                \"//comment25\" : \"                      != 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b)\",\n                \"//comment26\" : \"        return false;\",\n                \"//comment27\" : \"    }\",\n                \"//comment28\" : \"}\",\n                \"code\" : \":raw 0x6000357c010000000000000000000000000000000000000000000000000000000090048063c04062261461003a578063e0a9fd281461004c57005b61004261005e565b8060005260206000f35b610054610099565b8060005260206000f35b6000610068610099565b600060006101000a81548160ff02191690830217905550600060009054906101000a900460ff169050610096565b90565b60006001905080507f43c4b4524adb81e4e9a5c4648a98e9d320e3908ac5b6c889144b642cd08ae16d60010260407f74657374737472696e67000000000000000000000000000000000000000000008152600a016040900360402014156100ff57610108565b600090506102ec565b7f3c8727e019a42b444667a587b6001251becadabbb36bfed8087a92c18882d11160010260026020600060007f74657374737472696e67000000000000000000000000000000000000000000008152600a0160006000856161da5a03f161016b57005b50600051141561017a57610183565b600090506102ec565b73cd566972b5e50104011a92b59fa8e0b1234851ae6c010000000000000000000000000260036020600060007f74657374737472696e67000000000000000000000000000000000000000000008152600a0160006000856161da5a03f16101e657005b506000516c010000000000000000000000000214156102045761020d565b600090506102ec565b73a94f5374fce5edbc8e2a8697c15331677e6ebf0b60016020600060007f18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c6001028152602001601c81526020017f73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f60010281526020017feeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549600102815260200160006000856161da5a03f16102bd57005b5060005173ffffffffffffffffffffffffffffffffffffffff1614156102e2576102eb565b600090506102ec565b5b9056\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"5000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0xc0406226\"\n            ],\n            \"gasLimit\" : [\n                \"35000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"100\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSolidityTest/TestKeywordsFiller.json",
    "content": "{\n    \"TestKeywords\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"100000\",\n                \"//comment1\": \"contract main\",\n                \"//comment2\": \"{\",\n                \"//comment3\": \"    bool returnValue;\",\n                \"//comment4\": \"    function run() returns (bool)\",\n                \"//comment5\": \"    {\",\n                \"//comment6\": \"       returnValue = testKeywords();\",\n                \"//comment7\": \"       return returnValue;\",\n                \"//comment8\": \"    }\",\n                \"//comment9\": \"\",\n                \"//comment10\": \"    function testKeywords() returns (bool res)\",\n                \"//comment11\": \"    {\",\n                \"//comment12\": \"        //some simple checks for the if statement\",\n                \"//comment13\": \"        //if, else, while, for, break, continue, return\",\n                \"//comment14\": \"        int i = 0;\",\n                \"//comment15\": \"        res = false;\",\n                \"//comment16\": \"\",\n                \"//comment17\": \"        if (i == 0)\",\n                \"//comment18\": \"        {\",\n                \"//comment19\": \"            if( i <= -25)\",\n                \"//comment20\": \"            {\",\n                \"//comment21\": \"                return false;\",\n                \"//comment22\": \"            }\",\n                \"//comment23\": \"            else\",\n                \"//comment24\": \"            {\",\n                \"//comment25\": \"                while(i < 10)\",\n                \"//comment26\": \"                    i++;\",\n                \"//comment27\": \"\",\n                \"//comment28\": \"                if (i == 10)\",\n                \"//comment29\": \"                {\",\n                \"//comment30\": \"                    for(var j=10; j>0; j--)\",\n                \"//comment31\": \"                    {\",\n                \"//comment32\": \"                        i--;\",\n                \"//comment33\": \"                    }\",\n                \"//comment34\": \"                }\",\n                \"//comment35\": \"            }\",\n                \"//comment36\": \"        }\",\n                \"//comment37\": \"\",\n                \"//comment38\": \"        if (i == 0)\",\n                \"//comment39\": \"            return true;\",\n                \"//comment40\": \"\",\n                \"//comment41\": \"        return false;\",\n                \"//comment42\": \"    }\",\n                \"//comment43\": \"}\",\n                \"code\" : \":raw 0x7c01000000000000000000000000000000000000000000000000000000006000350463380e439681146037578063c040622614604757005b603d6084565b8060005260206000f35b604d6057565b8060005260206000f35b6000605f6084565b600060006101000a81548160ff0219169083021790555060ff60016000540416905090565b6000808160011560cd575b600a82121560a157600190910190608f565b81600a1460ac5760c9565b50600a5b60008160ff16111560c85760019182900391900360b0565b5b60d5565b6000925060ed565b8160001460e05760e8565b6001925060ed565b600092505b50509056\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"100000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0xc0406226\"\n            ],\n            \"gasLimit\" : [\n                \"350000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSolidityTest/TestOverflowFiller.json",
    "content": "{\n    \"TestOverflow\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"100000\",\n                \"//comment1\" : \"contract main\",\n                \"//comment2\" : \"{\",\n                \"//comment3\" : \"    bool returnValue;\",\n                \"//comment4\" : \"    function run() returns (bool)\",\n                \"//comment5\" : \"    {\",\n                \"//comment6\" : \"       returnValue = testOverflow();\",\n                \"//comment7\" : \"       return returnValue;\",\n                \"//comment8\" : \"    }\",\n                \"//comment9\" : \"\",\n                \"//comment10\" : \"    function testOverflow() returns (bool res)\",\n                \"//comment11\" : \"    {\",\n                \"//comment12\" : \"        res = true;\",\n                \"//comment13\" : \"        uint256 a = 115792089237316195423570985008687907853269984665640564039457584007913129639935;\",\n                \"//comment14\" : \"        if (a + 1 != 0)\",\n                \"//comment15\" : \"            return false;\",\n                \"//comment16\" : \"\",\n                \"//comment17\" : \"        uint32 b = 4294967295;\",\n                \"//comment18\" : \"        if (b + 1 != 0)\",\n                \"//comment19\" : \"            return false;\",\n                \"//comment20\" : \"\",\n                \"//comment21\" : \"        uint64 c = 18446744073709551615;\",\n                \"//comment22\" : \"        if (c + 1 != 0)\",\n                \"//comment23\" : \"            return false;\",\n                \"//comment24\" : \"    }\",\n                \"//comment25\" : \"}\",\n                \"code\" : \":raw 0x6000357c0100000000000000000000000000000000000000000000000000000000900480638040cac41461003a578063c04062261461004c57005b610042610099565b8060005260206000f35b61005461005e565b8060005260206000f35b6000610068610099565b600060006101000a81548160ff02191690830217905550600060009054906101000a900460ff169050610096565b90565b60006000600060006001935083507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff925060006001840114156100db576100e4565b6000935061013b565b63ffffffff915060006001830163ffffffff1614156101025761010b565b6000935061013b565b67ffffffffffffffff905060006001820167ffffffffffffffff1614156101315761013a565b6000935061013b565b5b5050509056\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"5000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0xc0406226\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSolidityTest/TestStoreGasPricesFiller.json",
    "content": "{\n    \"TestStoreGasPrices\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n           {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun<Osaka\" ],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x5661\",\n                            \"0x01\" : \"0x71\",\n                            \"0x02\" : \"0x71\",\n                            \"0x03\" : \"0x71\",\n                            \"0x04\" : \"0x71\",\n                            \"0x05\" : \"0x71\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"100000\",\n\t\t        \"//comment1\" : \"contract main\",\n\t\t        \"//comment2\" : \"{\",\n\t\t        \"//comment3\" : \"  uint[32] m_gasUsed;\",\n\t\t        \"//comment4\" : \"  int storage;\",\n\t\t        \"//comment5\" : \"  function run() returns (bool)\",\n\t\t        \"//comment6\" : \"  {\",\n\t\t        \"//comment7\" : \"     uint startgas = msg.gas;\",\n                \"//comment8\" : \"\",\n                \"//comment9\" : \"     storage = 1;  //zero to non zero\",\n                \"//comment10\" : \"     m_gasUsed[0] = startgas - msg.gas;\",\n                \"//comment11\" : \"     startgas = msg.gas;\",\n                \"//comment12\" : \"\",\n                \"//comment13\" : \"     storage = 2;  /\\non zero to non zero\",\n                \"//comment14\" : \"     m_gasUsed[1] = startgas - msg.gas;\",\n                \"//comment15\" : \"     startgas = msg.gas;\",\n                \"//comment16\" : \"\",\n                \"//comment17\" : \"     storage = 2;  /\\non zero to same non zero\",\n                \"//comment18\" : \"     m_gasUsed[2] = startgas - msg.gas;\",\n                \"//comment19\" : \"     startgas = msg.gas;\",\n                \"//comment20\" : \"\",\n                \"//comment21\" : \"     storage = 24784793845734;  /\\non zero to huge non zero\",\n                \"//comment22\" : \"     m_gasUsed[3] = startgas - msg.gas;\",\n                \"//comment23\" : \"     startgas = msg.gas;\",\n                \"//comment24\" : \"\",\n                \"//comment25\" : \"     storage = 2;  //huge non zero to non zero\",\n                \"//comment26\" : \"     m_gasUsed[4] = startgas - msg.gas;\",\n                \"//comment27\" : \"     startgas = msg.gas;\",\n                \"//comment28\" : \"\",\n                \"//comment29\" : \"     storage = 0;  /\\non zero to zero\",\n                \"//comment30\" : \"     m_gasUsed[5] = startgas - msg.gas;\",\n                \"//comment31\" : \"     startgas = msg.gas;\",\n                \"//comment32\" : \"\",\n                \"//comment33\" : \"     return true;\",\n                \"//comment34\" : \"  }\",\n                \"//comment35\" : \"}\",\n                \"code\" : \":raw 0x7c01000000000000000000000000000000000000000000000000000000006000350463c04062268114602d57005b6033603d565b8060005260206000f35b600060005a600160205590505a81036000555a600260205590505a81036001555a600260205590505a81036002555a65168aa8d53fe660205590505a81036003555a600260205590505a81036004555a600060205590505a81036005555a5060019291505056\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"500000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0xc0406226\"\n            ],\n            \"gasLimit\" : [\n                \"35000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSolidityTest/TestStructuresAndVariablessFiller.json",
    "content": "{\n    \"TestStructuresAndVariabless\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0xff\",\n                            \"0x02\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n                            \"0x03\" : \"0xff\",\n                            \"0x04\" : \"0x676c6f62616c2064617461203332206c656e67746820737472696e6700000000\",\n                            \"0x05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"100000\",\n                \"//comment1\" : \"contract main\",\n                \"//comment2\" : \"{\",\n                \"//comment3\" : \"    struct StructTest\",\n                \"//comment4\" : \"    {\",\n                \"//comment5\" : \"        address addr;\",\n                \"//comment6\" : \"        int amount;\",\n                \"//comment7\" : \"        bytes32 str;\",\n                \"//comment8\" : \"        mapping (uint => address) funders;\",\n                \"//comment9\" : \"    }\",\n                \"//comment10\" : \"\",\n                \"//comment11\" : \"    bool returnValue;\",\n                \"//comment12\" : \"    int globalValue;\",\n                \"//comment13\" : \"    StructTest globalData;\",\n                \"//comment14\" : \"    function run() returns (bool)\",\n                \"//comment15\" : \"    {\",\n                \"//comment16\" : \"        globalValue = 255;\",\n                \"//comment17\" : \"        globalData.addr = <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>;\",\n                \"//comment18\" : \"        globalData.amount = 255;\",\n                \"//comment19\" : \"        globalData.str = 'global data 32 length string';\",\n                \"//comment20\" : \"        globalData.funders[0] = <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>;\",\n                \"//comment21\" : \"        returnValue = testStructuresAndVariabless();\",\n                \"//comment22\" : \"        return returnValue;\",\n                \"//comment23\" : \"    }\",\n                \"//comment24\" : \"\",\n                \"//comment25\" : \"    function testStructuresAndVariabless() returns (bool res)\",\n                \"//comment26\" : \"    {\",\n                \"//comment27\" : \"        res = true;\",\n                \"//comment28\" : \"        if (globalValue != 255)\",\n                \"//comment29\" : \"            return false;\",\n                \"//comment30\" : \"\",\n                \"//comment31\" : \"        if (globalValue != globalData.amount)\",\n                \"//comment32\" : \"            return false;\",\n                \"//comment33\" : \"\",\n                \"//comment34\" : \"        if (globalData.addr != <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>)\",\n                \"//comment35\" : \"            return false;\",\n                \"//comment36\" : \"\",\n                \"//comment37\" : \"        if (globalData.str != 'global data 32 length string')\",\n                \"//comment38\" : \"            return false;\",\n                \"//comment39\" : \"\",\n                \"//comment40\" : \"        if (globalData.funders[0] != <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>)\",\n                \"//comment41\" : \"            return false;\",\n                \"//comment42\" : \"    }\",\n                \"//comment43\" : \"}\",\n                \"code\" : \":raw 0x7c010000000000000000000000000000000000000000000000000000000060003504632a9afb838114610039578063c04062261461004b57005b61004161005d565b8060005260206000f35b61005361016c565b8060005260206000f35b600160ff8154141561006e57610076565b506000610169565b60015460035414156100875761008f565b506000610169565b73<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>73ffffffffffffffffffffffffffffffffffffffff60016002540481161614156100cd576100d5565b506000610169565b7f676c6f62616c2064617461203332206c656e67746820737472696e670000000060045414156101045761010c565b506000610169565b6005600080815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>141561016057610168565b506000610169565b5b90565b600060ff806001555073<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>6002805473ffffffffffffffffffffffffffffffffffffffff1916821790555060ff80600355507f676c6f62616c2064617461203332206c656e67746820737472696e6700000000806004555073<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>6005600080815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff0219169083021790555061022f61005d565b600060006101000a81548160ff0219169083021790555060ff6001600054041690509056\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0xc0406226\"\n            ],\n            \"gasLimit\" : [\n                \"350000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSolidityTest/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stSpecialTest/FailedCreateRevertsDeletionParisFiller.json",
    "content": "{\n    \"FailedCreateRevertsDeletionParis\" : {\n        \"_info\" : {\n            \"comment\" : \"A modification of stRevertTests/RevertInCreateInInit.  That test, for EIP158 only, accidentally tested the case where a contract creation transaction touches an empty account and then fails.  This one tests the same thing not just for EIP158 but any network thereafter.\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x0a10000000\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"0x03e8\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<eoa:0x6295ee1b4f6dd65047762f924ecd367c17eabf8f>\" : {\n                        \"balance\" : \"10\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:0x6295ee1b4f6dd65047762f924ecd367c17eabf8f>\" : {\n                \"balance\" : \"10\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                  \"0x00\" : \"0x01\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x6400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"{ (seq (address) (CREATE 0 0 (lll (seq (mstore 0 0x112233) (revert 0 32)) 0)) (invalid) ) }\"\n            ],\n            \"gasLimit\" : [\n                \"0x0186a0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"0x00\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSpecialTest/JUMPDEST_AttackFiller.json",
    "content": "{\n    \"JUMPDEST_Attack\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n            \t\t\t\"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x600060006000600060003061c3505a03f1005b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSpecialTest/JUMPDEST_AttackwithJumpFiller.json",
    "content": "{\n    \"JUMPDEST_AttackwithJump\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n            \t\t\t\"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x6003565b600060006000600060003061c3505a03f1005b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSpecialTest/OverflowGasMakeMoneyFiller.json",
    "content": "{\n    \"OverflowGasMakeMoney\" : {\n        \"_info\" : {\n            \"comment\" : \"Apparently this test was testing theoretical issue occur when tr gas > block gas limit overflow. no longer the case\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"92143648376000353180\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"501\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSpecialTest/StackDepthLimitSECFiller.json",
    "content": "{\n    \"StackDepthLimitSEC\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t        {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"balance\" : \"0x0a\",\n                        \"code\" : \"0x600060006000600060003060405a03f1\"\n                    },\n                    \"//a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"//balance\" : \"99943010\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x305032503350600460006000396000515060046000600037600051506f600060006000600060003060405a03f160005260106010f3\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSpecialTest/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stSpecialTest/block504980Filler.json",
    "content": "{\n    \"block504980\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"1cdc8315bdb1362de8b7b2fa9ee75dc873037179\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"3141592\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"0000000000000000000000000000000000000000\" : {\n                            \"balance\" : \"0x01\"\n                        },\n                        \"0000000000000000000000000000000000000001\" : {\n                            \"balance\" : \"0x01\"\n                        },\n                        \"0000000000000000000000000000000000000002\" : {\n                            \"balance\" : \"0x01\"\n                        },\n                        \"0000000000000000000000000000000000000003\" : {\n                            \"balance\" : \"0x01\"\n                        },\n                        \"0000000000000000000000000000000000000004\" : {\n                            \"balance\" : \"0x01\"\n                        },\n                        \"0ea65418d7bf32680f55572c943a94b590804998\" : {\n                            \"balance\" : \"0x00\",\n\t\t\t    \"nonce\" : \"0x00\",\n                            \"storage\" : {\n                                \"0x065d5efdfcc0fba693dc9e467f633097ffdc97401901463ad0e28855486d1edf\" : \"0xb9d69098a6acfe0c6411bcaaf430f78d363a9adc32b78bc2e15ccd6e883e9784\",\n                                \"0x12643ff300762717d27efb567b82c65560d7b43249d908504e5510863ab82aac\" : \"0x154cf60e137c594516a065149610b6a3989396a42581d5fd8919e711c55da225\",\n                                \"0x1489023d18c5d10427c4aa8dc726e840eb5ae7f604a8e9243c61634fb009e4d7\" : \"0x05\",\n                                \"0x1489023d18c5d10427c4aa8dc726e840eb5ae7f604a8e9243c61634fb009e4d8\" : \"0x01\",\n                                \"0x19efb13d6576359514ace5211988a8d51379fa88ccd2b886b409f842b13d7932\" : \"0xc849cc595b452d11c206d2eb8cdfa06de211e3ff19ee0e0276dc857c05d4fe\",\n                                \"0x1b37e91bf8580c7c6bcf8cdff25c7ed78180124a94af6f30c40d476a3d079ad6\" : \"0xaba4cd295118a482a0a62579e35e4ba5bdd76146cc9e4d96172fce8be8977ab4\",\n                                \"0x2bf9fd8facdd6fd9c84657f5ad7381a5aecf670cda68cb3c5829b6532c865506\" : \"0x53098a1d111586dbcc0d051846284f5803c63c313e7f7e6d84430435d11d4c50\",\n                                \"0x3111bfd25728c0adfad0f8c1ad79cb1b91167267deca98de88f156ed25caeedc\" : \"0xad393086f30b49511b08fdd27ac78810b084c7cd7de6ac354f614c18ea9e7df4\",\n                                \"0x3379e7ae125c5c5d623d1d993c1459b61d6723b1c30d1aa026c48f6a6155b8ea\" : \"0x8c4183732567a99a8a718e363391e102532f9a640e42968cf2354d9acc908bb0\",\n                                \"0x34cabe0c7e64a2caa93fd8d6a0defc07acb9d44b13430fa3ae9282fffd40dee2\" : \"0x01\",\n                                \"0x34cabe0c7e64a2caa93fd8d6a0defc07acb9d44b13430fa3ae9282fffd40dee3\" : \"0x01\",\n                                \"0x34cabe0c7e64a2caa93fd8d6a0defc07acb9d44b13430fa3ae9282fffd40dee4\" : \"0x01\",\n                                \"0x34cabe0c7e64a2caa93fd8d6a0defc07acb9d44b13430fa3ae9282fffd40dee5\" : \"0x01\",\n                                \"0x39050607fe892059a6344ab0f594f382fb0b345cab373497246dbe86fe7e14e7\" : \"0x2b3bca833e482737e7e47b1568e6f890f8e1666490d38fe130abd6f0ccb109cf\",\n                                \"0x417be8bc6791807372e0222a350bb8a5d67bbc8d7595c301d8a5a8372cfdcef1\" : \"0xabd4971b4605a7155802f70e08298b1ceb0e4e4eaccccd348f77a77227f73a7f\",\n                                \"0x41e9a54b3ee0c276aa076babb161de12b0f8916b47f8f6fb85cc387cf34696dd\" : \"0x22f2f444ebda9d2913ffef5059b039ec9b5876aa71821991c2515bf79f64935e\",\n                                \"0x45ceb8da6fb8936592d3bce4883f1a6a34d636f559e0a1070a5802a65ac39bd5\" : \"0x57a5122ff3bf737b0de0f9f08011a8648c19e43ff071fb7086234723c9383f1f\",\n                                \"0x4aa6b934608a45c8f53a945c05ddee1814a3b9f63a048fc7ad3d47e67156f024\" : \"0xd03862becedada67b4825a0238f3e67495ccb595cd7d08f1bd5d3160644b9299\",\n                                \"0x4b8b58f0b0e326a5907d1a810e5ff31e05b4cab45125b776db8577e7dbc46bce\" : \"0x2f0000000000000000\",\n                                \"0x4c33460347337bfc7df08bf182988301b7b426a27a67f1c6c634f637c60e87ac\" : \"0xbab4ab2ad4eafe7c84ef6a8cd69157d9ce6b843793a2cd0877b8e91f63cb2d4d\",\n                                \"0x58da0c0c256bba101ce36fad8bf838717a57e6ab850a191dc9c09da9ce56bf1b\" : \"0x05\",\n                                \"0x5cb38b16db1d632086d4af695de7f5f242a6e40947067f96edd566fe2ac438ef\" : \"0x6d0be832b2007ea28cda705b73922cbf9794c5a25b89bd2f28b7347ed2b96c86\",\n                                \"0x64a9621cc4ba92bf738c55010c609dfaa3972a1138c30b5adcef1ba2363b360e\" : \"0xd7953bfe8cb591f129fd0862a9e9c421151e2b5831560ff5215d23f751364b35\",\n                                \"0x696664a5f0ab5acd9304a377fb684f2d3fe6bb60b8a95cb2bdbb57db767e7a84\" : \"0x154cf60e137c594516a065149610b6a3989396a42581d5fd8919e711c55da225\",\n                                \"0x69ad1d19e617936abdf05133bf268dc8ced6b518f22b249b5860967d07006487\" : \"0x8c803b48b383ddabd1b3afe858efb48c203229b7317dd76149dddab4253b858a\",\n                                \"0x70b3bf53996fac325eb67608a4eeb0cd0b55def6255d7ed42ad28ec07238b5d6\" : \"0x45e9723e9232b37207ecac1c97b8647d053625a578d450f7456280b2ff8efc27\",\n                                \"0x7a9dcee62e3e02cc8e020f372df2efdeb835f091c1ef1dbe221072d1095aabd2\" : \"0x2f0000000000000000\",\n                                \"0x7e4d8c0f6d8abb4ce1ae45b254046aceedabfa9548851b8b5d3e2c0637c985fd\" : \"0x0b\",\n                                \"0x7e95f3cc3315d289c52253baaba29b1b00c86816e6b788d50795279a8baa00db\" : \"0x45e9723e9232b37207ecac1c97b8647d053625a578d450f7456280b2ff8efc27\",\n                                \"0x8da187157087529ee4e9c381f8e3149c56acf3bdfda29b8b9b4532f24b83f5fe\" : \"0x8c4183732567a99a8a718e363391e102532f9a640e42968cf2354d9acc908bb0\",\n                                \"0x9001f91ddaef87bc067886e874c0749998c9b58b2ec8472ca014ca8b55f88578\" : \"0x0fb76974eefca01f33fb38646c2d3c1536f1a763d7aff53ab7f877d4c5ea7fd0\",\n                                \"0x9ed0cedd2a9a78d949f40019f53d10031aef6ed342c97e01fc03b481ee56b3cb\" : \"0x04\",\n                                \"0x9fddf1db29caa5c1239edd86e9e0835cdfe41f7253ec78f62d3da8558d6f3cd7\" : \"0x104eef8fa35bf39f677d81855bc0b9f42317f32792e98e95e4df441deb634211\",\n                                \"0xa0953566119395c11186b334805fc1a16175ecac0ecc93ae0322264f0dc2e40d\" : \"0x10c5a00466ab7c0adae1e93537cc275ea8cf23ff509d5466a1fd6f56b0a61d1b\",\n                                \"0xaa0dbf8241ef3ae07c254e6869e84895ba2be0779a7f261c8308a3114be1c54a\" : \"0x04\",\n                                \"0xaffe808b495d13a14391ce5f27c211c36da12826969cd7841ee0d81e5b900e2d\" : \"0x01\",\n                                \"0xaffe808b495d13a14391ce5f27c211c36da12826969cd7841ee0d81e5b900e2e\" : \"0x01\",\n                                \"0xb4a2b68c48ef78aeb641ee538fad51781022fd23ed9d93d211017db6a02376ce\" : \"0x0fbc06642245cf2fed7ed46ea0a18a7185830b6f2c4e0a4ca55246041e8bfa72\",\n                                \"0xba8d79990898383919e437f2458b93b340072c89d963808d9e04f51858e3c5ec\" : \"0x41d2cac534d90a0dbd199117481a63e32cc11411dab2eaa36c91c0eec62823cf\",\n                                \"0xbb3bc1a2015123750df57d4ceff7e28cb847910b79b34841de905b59a8bb177c\" : \"0x734417eb19e1873427257f1ea1594748c16cfa866a7b7cf896e281f2ec774a40\",\n                                \"0xbf30cdcb83ab2bd5f5eee691ffa4107b58b75ba6a5c2e6754d4c5c0437f2876c\" : \"0x05\",\n                                \"0xc2a26b80067fc36b8268b0d5b31afff953fa91cebea39f191e2763d6e71259b9\" : \"0x02a43c547fe8de2400d2a141016550e8bae058d41164247c099e787ddd40e789\",\n                                \"0xc98339d275eef16e0562ca8521212cef61aa0f39b12e2a27502aaa97a9e5e70f\" : \"0x5a3de2a5c268cdb75f4b01507aa80c4e4a1bc67bcb0df265bbb00060774e5978\",\n                                \"0xcbd6ae6bd61bc9270ec836f1919b3268113abe076c7febfdb8cf573b199ce9a9\" : \"0xf402b17773c1f7534034ee58dc0d2a3421470a7a67daf4fa790dc3b420eef790\",\n                                \"0xd2c8cbb562fccd0c9a3d0d491b7f65cc6a89856498f933427d9d21b745b9d50e\" : \"0x3625a26fdb7b747501f1ee2500f98c49d9cd290383a21254587c3c49d2805321\",\n                                \"0xd66f52a4e24585238ccc03443b2fdb8b2b100259bc7260f39097c7c339211ffe\" : \"0x1641851904381915c86b60df7e288896fb5f8ebad65d594829fb9f2b59cd1da6\",\n                                \"0xd8f720c05a5526dd621d1831ae122abddd3dfecd8b63b0ba4c92fa7b2ade44ff\" : \"0xad393086f30b49511b08fdd27ac78810b084c7cd7de6ac354f614c18ea9e7df4\",\n                                \"0xdc22d3171b82817c910bbeac1f8b50c8de99f8c524f172aef3491981bd5ed4fb\" : \"0x94b8cba4ea090d1c392fbc94b82fb9ef9f468a15bbc537f4d051776f4d422b1d\",\n                                \"0xdce8adbdefa929dbe60245f359446db4174c62824b42e5d4d9e7b834b4d61deb\" : \"0x2c9069845b2e74c577ff1cd18df6bc452805f527a9ee91fd4a059e0408b5dea6\",\n                                \"0xdd9493073db9e42fd955e834c89a74089f99196186ee0b2688124989be00d196\" : \"0x01\",\n                                \"0xdd9493073db9e42fd955e834c89a74089f99196186ee0b2688124989be00d197\" : \"0x01\",\n                                \"0xdd9493073db9e42fd955e834c89a74089f99196186ee0b2688124989be00d198\" : \"0x01\",\n                                \"0xdd9493073db9e42fd955e834c89a74089f99196186ee0b2688124989be00d199\" : \"0x01\",\n                                \"0xdd9493073db9e42fd955e834c89a74089f99196186ee0b2688124989be00d19a\" : \"0x01\",\n                                \"0xe54f074c81bfa60b5bf413934c108086298b77291560edfeead8aa1232e95236\" : \"0x0f40aaa24323c9e6983ccffafeebe4b426509b901e8c98b8a40d881804804e6b\",\n                                \"0xe66c0f55f66c752edf73027d45b7b1ae729ae15e1c67c362dbc6f25edf8d76ff\" : \"0x01\",\n                                \"0xe983d899f807bbcb5881f2ddf875b2ebb5cb8a7a4e77a8c98a40aaae6a468735\" : \"0x6d0be832b2007ea28cda705b73922cbf9794c5a25b89bd2f28b7347ed2b96c86\",\n                                \"0xed7d6e2d40fbd5046412ffad1c45b63d87c6197182d6dbc66bb1e5c6e4ded5c7\" : \"0xaba4cd295118a482a0a62579e35e4ba5bdd76146cc9e4d96172fce8be8977ab4\",\n                                \"0xf043b5a1952847579f233706a8f130889a484d2da3e574fdd5859f05aaf52111\" : \"0x02\",\n                                \"0xf40f4cfdacb62dd799f36b580349fac1f4a4caf8dd3383cc387c35adb6574e21\" : \"0x2f0000000000000000\",\n                                \"0xf60fa6e25e9028a6dc6b26bbc1eadae3da157df0d1d6f6628bc33cad68a7e455\" : \"0x2d7d00618c059ebe40593b9497c633e1ac6e161dadbd5bb734c2663cd3e8a8e1\",\n                                \"0xfd280ac5182d5b2366122f38acfa6dc471240ffde9d5feb985ce7a2325c960e7\" : \"0x03\"\n                            }\n                        },\n                        \"142a6927cf0060133187ba8a8e74d641438f0c1c\" : {\n                            \"balance\" : \"0x00\",\n                            \"code\" : \"0x600061031f537c01000000000000000000000000000000000000000000000000000000006000350473c9ae5868651bf7b7db6e360217db49ce4e69c07e602052730ea65418d7bf32680f55572c943a94b5908049986040526327138bfb81141561038d57600435608052601c6044599059016000905201637a66d7ca601c8203526080516004820152602060e06024836000602051602d5a03f15060e051905060a052601c604459905901600090520163c60409c6601c820352608051600482015260206101206024836000602051602d5a03f150610120519050430561010052600061014052600061016052600061018052600260a051016101005112151561010a576001610140525b60006101a052610100516101c0525b606461010051016101c051121561018457601c606459905901600090520163cc1c944e601c82035260805160048201526101c051602482015260206101e06044836000604051602d5a03f1506101e05190506101a051016101a05260016101c051016101c052610119565b6005601c606459905901600090520163cc1c944e601c820352608051600482015260a051602482015260206102006044836000604051602d5a03f1506102005190501280156101d357806101db565b600a6101a051125b9050156101eb57610140516101ee565b60005b1561033657601c604459905901600090520163c5476efe601c820352608051600482015260206102406024836000602051602d5a03f15061024051905050601c6064599059016000905201637265802d601c82035260805160048201526000602482015260206102606044836000602051602d5a03f15061026051905050601c606459905901600090520163c286273a601c82035260805160048201526000602482015260206102806044836000602051602d5a03f15061028051905050601c6044599059016000905201637a66d7ca601c820352608051600482015260206102a06024836000602051602d5a03f1506102a051905060a052601c608459905901600090520163bb8e4196601c820352608051600482015260a051602482015261010051604482015260206102c06064836000604051602d5a03f1506102c051905050610343565b6001610160526001610180525b61014051156103555761016051610358565b60005b156103665761018051610369565b60005b1561037f5760016102e05260206102e0f361038c565b6000610300526020610300f35b5b50\",\n                            \"nonce\" : \"0x00\",\n                            \"storage\" : {\n                            }\n                        },\n                        \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                            \"nonce\" : \"0x01\"\n                        },\n                        \"c9ae5868651bf7b7db6e360217db49ce4e69c07e\" : {\n                            \"balance\" : \"0x00\",\n                            \"code\" : \"0x600061083f537c010000000000000000000000000000000000000000000000000000000060003504637a66d7ca8114156100665760043560405260606060599059016000905260008152604051816020015260008160400152809050205460605260206060f35b63c60409c68114156100a55760043560405260606060599059016000905260008152604051816020015260018160400152809050205460a052602060a0f35b63186335768114156100e45760043560405260606060599059016000905260008152604051816020015260028160400152809050205460e052602060e0f35b63b3903c8a8114156101bc57600435604052606060605990590160009052600081526040518160200152600581604001528090502054610120526101205180602002602001599059016000905281815260208101905090506101605260006101c0525b610120516101c051121561019f57608060805990590160009052600081526040518160200152600481604001526101c051816060015280905020546101c05160200261016051015260016101c051016101c052610147565b6101605160206040820352602060208203510260400160408203f3505b636824e0fb8114156101fd57600435604052606060605990590160009052600081526040518160200152600581604001528090502054610220526020610220f35b633db16be381141561023e57600435604052606060605990590160009052600081526040518160200152600681604001528090502054610260526020610260f35b63c33878588114156102e05760006102a0526000546102c0526102c05180602002602001599059016000905281815260208101905090506102e0525b6102c0516102a05112156102c357604060405990590160009052600181526102a051816020015280905020546102a0516020026102e051015260016102a051016102a05261027a565b6102e05160206040820352602060208203510260400160408203f3505b63175c63228114156102fa57600054610380526020610380f35b63d861f2b4811415610336576004356103a052604060405990590160009052600181526103a051816020015280905020546103c05260206103c0f35b63b0dab01f81141561044f57600435610400526024356104205260443561044052606435610460526000606060605990590160009052600081526104005181602001526001816040015280905020541415610441576104205160606060599059016000905260008152610400518160200152600081604001528090502055610440516060606059905901600090526000815261040051816020015260018160400152809050205561046051606060605990590160009052600081526104005181602001526006816040015280905020556104005160406040599059016000905260018152600054816020015280905020556001600054016000556001610520526020610520f361044e565b6000610540526020610540f35b5b63aac2ffb58114156104b95760043560405260016060606059905901600090526000815260405181602001526002816040015280905020540160606060599059016000905260008152604051816020015260028160400152809050205560016105a05260206105a0f35b637265802d811415610507576004356040526024356105c0526105c0516060606059905901600090526000815260405181602001526002816040015280905020556001610600526020610600f35b63c5476efe811415610571576004356040526001606060605990590160009052600081526040518160200152600081604001528090502054016060606059905901600090526000815260405181602001526000816040015280905020556001610660526020610660f35b63c551e31e81141561063b576004356040526024356106805260606060599059016000905260008152604051816020015260058160400152809050205461012052610680516080608059905901600090526000815260405181602001526004816040015261012051816060015280905020556001606060605990590160009052600081526040518160200152600581604001528090502054016060606059905901600090526000815260405181602001526005816040015280905020556001610720526020610720f35b633d90504581141561067c57600435604052606060605990590160009052600081526040518160200152600381604001528090502054610740526020610740f35b631cda01ef8114156106e65760043560405260016060606059905901600090526000815260405181602001526003816040015280905020540160606060599059016000905260008152604051816020015260038160400152809050205560016107c05260206107c0f35b63c286273a811415610734576004356040526024356107e0526107e0516060606059905901600090526000815260405181602001526003816040015280905020556001610820526020610820f35b50\",\n                            \"nonce\" : \"0x00\",\n                            \"storage\" : {\n                                \"0x00\" : \"0x01\",\n                                \"0x0a4470e9d0419df71f6257fcdfd2c0a3bad96a23f5ab414bc10aaf1a31a536a7\" : \"0xb4876148229c22bd2291f1a4f5468c8c789b23639370c4d447f270ba341dbbec\",\n                                \"0x16ef4193a274568d283ff919c299729e07696d9ada48187b81d68e12e7b962de\" : \"0x0a103c04e7ecb9b3395f77c7b0cad28e62c85f042de4767ccc6c005e6f47f8d4\",\n                                \"0x1f1866e966f321b84535705846689749d34d5dc02994613e2931973c605d9e93\" : \"0xc723d0aa4a60529fe42277c8094aa19263aff36650136efc5edfd0785d457634\",\n                                \"0x252a4ec7133643fddcdb22a86c415f78b2dd251f18d1efcd6a44acf590c4ae72\" : \"0x9caf94b82715869e71d3cee986094ea612f0258570b7e5ef47b5d09e9515322b\",\n                                \"0x41b451e8d86d28add758cbd3f48a18fd04b11a80288c1dc434a5bf2d8fb1ca64\" : \"0xb602498f12a8b4af3a1fca357cea6b19bcd163dfec1d845364ce1395f7c21fa7\",\n                                \"0x491d10658c1ec762152d8ad2d890ad59111b1ee7b4bc25736046923d3534d9a5\" : \"0x629e\",\n                                \"0x5b0e8552efd72a845e47318abbbef9dc9fcdfe0d1a06cda44494401301581511\" : \"0xfbc98f4017ae5c20459daadaa6bee519b6de871d3dbaa9ab3f34340fef4cb643\",\n                                \"0x5b672a107ba6fab01cbddf079042e9f6176a8e6f154584fc4df4b15674c9456e\" : \"0x1603da41d610854d85536b37d000e5eb7ca09786c43f50e7441c0afbff1de0a9\",\n                                \"0x605b934bd26c9ecdf7029a7dc062d3a6b87338511cff96e0c5f13de9eea3462e\" : \"0xf0d24f3d0eda573fc5d43e3d0680993c51293752cd6de205040d3197f412f475\",\n                                \"0x618355e25491dfe86175f9d9b3147e4d680aa561d98384e3621dc6a3088b0846\" : \"0x6b2e6d2d5deb27dffec973f23af4caf111e66d1397f467dbbedf5ab2192fb6b6\",\n                                \"0x65112936bec0f1e84fda6623fb54e12baadc8a4a208c8c4eb3ed5e79cbd7e85f\" : \"0xa59ac24e3e0663413d0f87516ba8fb44c6c3e14da8eaabbde80f8ee285f65934\",\n                                \"0x687cb2122de7bacf42b9cd380b04ff2a2ce92a0b63706a9a78263b3ce86f3313\" : \"0x0200000000000000\",\n                                \"0x72a539b064c98d29a514ee55694225e05fb41fe63e5fe710e4536bd9ba3591b4\" : \"0x338ecfe6c523ed1184918b19584d97dd1095ecaadc49c7ba9da62b8b513026e0\",\n                                \"0x7aeb0a0ce8882a12d853078382a2bc72f7a94af6109f167de37b36c0a7deb828\" : \"0x4c428400ea8a7bd7c46ba9895b508770efa4551f0d793e1beb1207da01d9962f\",\n                                \"0x7c8f4a98e086f64e28c75f54712b5d44bec3c29b5c70519e8880d3046a5618dc\" : \"0xaafc1f2601752b114d722070f75539bfec7faf49f0d48a48d27862f0c3b09903\",\n                                \"0x809c325f50acf5787776e960985e72443b4330ad1e2f466557fffee16ba51d44\" : \"0xb940a56e64b5b661d87919b8ef03640ec077a6d72dd0b524adedaa7ddc91ff7a\",\n                                \"0x84e4a80d33c5d2abd2b0a5aec0fdc5eaeed90ab31db556e404a81718ea286e39\" : \"0x1c\",\n                                \"0x877305412fa2486f563c457b744e5c8b1e4d0eca73371de5e771f2abc263f4dc\" : \"0x7088a36f67276d475aa62127cfde9790cc802fdf3a54df49461a25eb8bf15707\",\n                                \"0x922a8f2fc1cbe67c8acc6a8a720983c366d71d3e2e78e3048949ebc913ea611a\" : \"0x50fb9f913ca102534bb0a8eb8ebf19c68dfd16ffe5e207bcc580084cd4ecd8b4\",\n                                \"0x987cb9ecfd8ce499d9d0e9e6b7da29617aa02774a34f4a8ea54442f44a1e1936\" : \"0x5179f98f555f1e9f1d4a335d16f41154579a53e361e9859269b6fa74ea9c7d21\",\n                                \"0xada5013122d395ba3c54772283fb069b10426056ef8ca54750cb9bb552a59e7d\" : \"0x0f69b5\",\n                                \"0xb16b117660f31197087f4d6fe50d3d4579152244956f753f9653ccf85f4b35c4\" : \"0x830272e3bb35226b047244cbdc46f1b6b864a280461e7a592f70e0863f4f1d33\",\n                                \"0xb1f1aaedfb83c7755a2bffc9e2557f1723f9abe5642397963e76248c9209af57\" : \"0xe9be955c5fbfcd846d7425eaea05ce897786aefad99665342cbf30761b352526\",\n                                \"0xb7bd50fdf7b043411c9ac33f0af2cebc69c393eb0b91f4976946f9c7b15ad0da\" : \"0xfccca0e7832bae9afe799a6d6177dc3869fa6c5b5105f8df6f365de5723820ec\",\n                                \"0xbc96058eb03504ee6f5c0a9582f8720d99a6e9738b171499507facff0b2c0b5b\" : \"0x9db6a4f2766b51013b8d2f9038131d1bb4af725d019d111d7e26ff96c023b23f\",\n                                \"0xc186c4f377b7f13892ade9656acd1522aa1f8ac151ac4f62457b5073241d79fc\" : \"0x7289738fef00f1770eeb098db9bd486c01ac12398d79cdf935514a128c585c51\",\n                                \"0xcae57ae3017972d63effd8eae44f5054402c3e890d154b905ed6b5b533327fa9\" : \"0xd2e4bf465e61993d13089b940a7c55017a5117d8e43e4115550a139e1d4b3e3a\",\n                                \"0xcf569ee7bf3accc0f893dffd04f1a757f373efe80893eff504fb3678f688ec1d\" : \"0x03\",\n                                \"0xd69b7284545a9f5275df64ce94848dc954fcb8a8b525e7ac801517c12a75af84\" : \"0x4202995350abae303b43e564aa79121a30b5f1aea31f69cd25e07dd3fa64dce7\",\n                                \"0xd8f6f90f51e657690ee28d1cc80d81bc1b89290065891fdd853d09caaaf756aa\" : \"0x01\",\n                                \"0xde72f8eed43cc2a5a3eaa51483d14b17dc92bb26c154ae184cee4b4895011edc\" : \"0x47ce2b6fdb72c3fabb9c74f82c1e3e522bcd42e614fd85c208ac3c4c840cea72\",\n                                \"0xe0e687ddf317f3d2b209ae3884148eff0f636e16827f82eded14ada8fc603009\" : \"0xfa7c8939f9b033162cf8d75ea69671bb8a27041bd4cdc76594e61e99333cb041\",\n                                \"0xe8cda339d72a1a350b62f1e3fa52e254c395cc9fdd9f60adb21c7633fbdab531\" : \"0x128c4fdf4801a30eae99dd58f0f3ff5ca65f71b66a9ac0f38dd450fb24b4aaaa\",\n                                \"0xec5e7f54fa5e516e616b04f9d5a0ee433a80e09ed47d7e5269afd76c05ff251e\" : \"0x14\",\n                                \"0xf9a3bf5f2ccb903ee1a7644113b794db0260de404fb8f11203e75a7fff151618\" : \"0xbd94773c0d85c68240ae8dfd53d9d33cd137509bfc5d3433381299df768c8377\"\n                            }\n                        },\n                        \"e509e3a93beb1eba72f8cb8d25f93a85e2d54afb\" : {\n                            \"nonce\" : \"0x00\",\n                            \"storage\" : {\n                                \"0x0f299dbbe3a7a5d949fe794e9a47b3106699c8110ff986eb84921c183e69e7f0\" : \"0x2f0000000000000000\",\n                                \"0x1edcd36f61cae5dc6414157dfbadf9f11ca013ac763e27f8af55feaa8a239c89\" : \"0x01\",\n                                \"0x689082d076ec3c02cbe4b99f6d9833e3c4a161072fd42fb7649eee5189a67ccc\" : \"0x63524e3fe4791aefce1e932bbfb3fdf375bfad89\",\n                                \"0xaf1d6676be3ab502a59d91f6f5c49baffc15b2cfc65a41c4d96857c0f535adba\" : \"0x01d60000000000000000\",\n                                \"0xdf1a770f69d93d1719292f384fdb4da22c0e88aef2ba462bff16674bc7848730\" : \"0x1c11aa45c792e202e9ffdc2f12f99d0d209bef70\",\n                                \"0xec5e7f54fa5e516e616b04f9d5a0ee433a80e09ed47d7e5269afd76c05ff251e\" : \"0x02\"\n                            }\n                        },\n                        \"f1562e1c0d0baa3ea746442bb7f11153fcf5cfda\" : {\n                            \"code\" : \"0x600061067f537c010000000000000000000000000000000000000000000000000000000060003504632f300bee8114156100ac576004356040526024356060526044356080526002608051018080602002602001599059016000905281815260208101905090506801000000000000000081526060516080516020028201526001604051036001608051016020028201528060206040820352602060208203510260400160408203f35050505b63a647a5b98114156102c85736599059016000905236600482376004356020820101610100526024356020820101610160526044356020820101610180526064356101a05260843560805250602061010051035180806020026020015990590160009052818152602081019050905060005b6101a0518112156101d557600060005b608051811215610162578060200261010051015181608051850201602002610160510151028201915060018101905061012e565b50680100000000000000008105905060005b6080518112156101c857700100000000000000000000000000000000836020026101805101518260805186020160200261016051015184020205816020028501510381602002850152600181019050610174565b505060018101905061011e565b50600060005b60805181121561020357806020028301518160200284015102820191506001810190506101db565b5068010000000000000000810590506002810560005b600b81121561024257600282680100000000000000008502058301059150600181019050610219565b5060005b60805181121561027657816801000000000000000082602002860151020581602002850152600181019050610246565b5050506001608051602002610100510151036080516020028201526001608051016020026101005101516001608051016020028201528060206040820352602060208203510260400160408203f35050505b635b18022981141561037957365990590160009052366004823760043560208201016103005260243560208201016103205260443560805250600060005b60805181121561033f57680100000000000000008160200261032051015182602002610300510151020582019150600181019050610306565b6000610320515114151561036657610320515168010000000000000000830205915061036b565b600091505b81610380526020610380f350505b63f4ca7dc481141561057157365990590160009052366004823760043560208201016103a05260243560208201016103c0526044356101a0526064356080525060206103c051035160026080510a806020026020015990590160009052818152602081019050905060005b60805181121561044d5760005b6080518112156104415768010000000000000000816020026103a0510151836020026103a051015102058160805184020160200284015101816080518402016020028401526001810190506103f1565b506001810190506103e4565b81905090508180602002602001599059016000905281815260208101905090506080516101a05102806020026020015990590160009052818152602081019050905060005b6101a05181121561051e5760005b6080518112156105125760005b608051811215610506576801000000000000000082608051830201602002870151826080518602016020026103c051015102058260805185020160200285015101826080518502016020028501526001810190506104ad565b506001810190506104a0565b50600181019050610492565b819050905060005b848112156105525780602002820151816020026103c05101510381602002840152600181019050610526565b508160206040820352602060208203510260400160408203f350505050505b63232b273481141561069d57365990590160009052366004823760043560208201016106205260243560208201016102805260443560208201016103c052606435610640526084356101a05260a435608052506000610280515112156106025760005b6080518112156106005780602002610280510151600003816020026102805101526001810190506105d4565b505b60005b6101a05181121561067f5760005b60805181121561067357680100000000000000006801000000000000000082602002610280510151610640510205826080518502016020026103c05101510205826020026106205101510182602002610620510152600181019050610613565b50600181019050610605565b6106205160206040820352602060208203510260400160408203f350505b50\",\n                            \"nonce\" : \"0x00\",\n                            \"storage\" : {\n                            }\n                        }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"0000000000000000000000000000000000000000\" : {\n                \"balance\" : \"0x01\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"0000000000000000000000000000000000000001\" : {\n                \"balance\" : \"0x01\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"0000000000000000000000000000000000000002\" : {\n                \"balance\" : \"0x01\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"0000000000000000000000000000000000000003\" : {\n                \"balance\" : \"0x01\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"0000000000000000000000000000000000000004\" : {\n                \"balance\" : \"0x01\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"0ea65418d7bf32680f55572c943a94b590804998\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x600061289f537c01000000000000000000000000000000000000000000000000000000006000350473c9ae5868651bf7b7db6e360217db49ce4e69c07e60205263c4982a8581141561012757600435606052602435608052608060805990590160009052600081526060518160200152608051816040015260008160600152809050205460a05260a051806020026020015990590160009052818152602081019050905060e0526000610140525b60a05161014051121561010b5760a060a0599059016000905260008152606051816020015260805181604001526001816060015261014051816080015280905020546101405160200260e051015260016101405101610140526100ad565b60e05160206040820352602060208203510260400160408203f3505b63cc1c944e8114156101765760043560605260243560805260806080599059016000905260008152606051816020015260805181604001526000816060015280905020546101a05260206101a0f35b6395a405b98114156101d5576004356060526024356080526044356101e05260a060a059905901600090526000815260605181602001526080518160400152600181606001526101e05181608001528090502054610200526020610200f35b6371ebb662811415610224576004356060526024356080526080608059905901600090526000815260605181602001526080518160400152600281606001528090502054610240526020610240f35b637a57a3db811415610325576004356060526024356080526044356102805260c060c0599059016000905260008152606051816020015260805181604001526003816060015261028051816080015260008160a0015280905020608060805990590160009052600081526060518160200152608051816040015260008160600152809050205460200280806020015990590160009052818152602081019050905060005b602083048112156102e95780840154816020028301526001810190506102c8565b602083066020036101000a60000381850154168160200283015281905090509050905060206040820352602060208203510260400160408203f3505b63f73dc690811415610394576004356060526024356080526044356103c0526064356103e05260c060c059905901600090526000815260605181602001526080518160400152600381606001526103c05181608001526103e0518160a001528090502054610400526020610400f35b6354cc61098114156103f3576004356060526024356080526044356103c05260a060a059905901600090526000815260605181602001526080518160400152600481606001526103c05181608001528090502054610440526020610440f35b63c63ef546811415610442576004356060526024356080526080608059905901600090526000815260605181602001526080518160400152600581606001528090502054610480526020610480f35b639381779b8114156105335760043560605260243560805260a060a059905901600090526000815260605181602001526080518160400152600681606001526000816080015280905020608060805990590160009052600081526060518160200152608051816040015260058160600152809050205460200280806020015990590160009052818152602081019050905060005b602083048112156104f75780840154816020028301526001810190506104d6565b602083066020036101000a60000381850154168160200283015281905090509050905060206040820352602060208203510260400160408203f3505b634f9c6eeb8114156106245760043560605260243560805260a060a059905901600090526000815260605181602001526080518160400152600781606001526000816080015280905020608060805990590160009052600081526060518160200152608051816040015260058160600152809050205460200280806020015990590160009052818152602081019050905060005b602083048112156105e85780840154816020028301526001810190506105c7565b602083066020036101000a60000381850154168160200283015281905090509050905060206040820352602060208203510260400160408203f3505b637dc121958114156107155760043560605260243560805260a060a059905901600090526000815260605181602001526080518160400152600881606001526000816080015280905020608060805990590160009052600081526060518160200152608051816040015260058160600152809050205460200280806020015990590160009052818152602081019050905060005b602083048112156106d95780840154816020028301526001810190506106b8565b602083066020036101000a60000381850154168160200283015281905090509050905060206040820352602060208203510260400160408203f3505b63fa9832d18114156108065760043560605260243560805260a060a059905901600090526000815260605181602001526080518160400152600981606001526000816080015280905020608060805990590160009052600081526060518160200152608051816040015260008160600152809050205460200280806020015990590160009052818152602081019050905060005b602083048112156107ca5780840154816020028301526001810190506107a9565b602083066020036101000a60000381850154168160200283015281905090509050905060206040820352602060208203510260400160408203f3505b632c5a40d58114156108f75760043560605260243560805260a060a059905901600090526000815260605181602001526080518160400152600a81606001526000816080015280905020608060805990590160009052600081526060518160200152608051816040015260058160600152809050205460200280806020015990590160009052818152602081019050905060005b602083048112156108bb57808401548160200283015260018101905061089a565b602083066020036101000a60000381850154168160200283015281905090509050905060206040820352602060208203510260400160408203f3505b63e05dcb568114156109eb5760043560605260243560805260a060a059905901600090526000815260605181602001526080518160400152600b81606001526000816080015280905020600260806080599059016000905260008152606051816020015260805181604001526000816060015280905020546020020180806020015990590160009052818152602081019050905060005b602083048112156109af57808401548160200283015260018101905061098e565b602083066020036101000a60000381850154168160200283015281905090509050905060206040820352602060208203510260400160408203f3505b63586b5be0811415610a3a576004356060526024356080526080608059905901600090526000815260605181602001526080518160400152600c81606001528090502054610b80526020610b80f35b63eb8af5aa811415610b585760043560605260243560805260a060a059905901600090526000815260605181602001526080518160400152600d81606001526000816080015280905020608060805990590160009052600081526060518160200152608051816040015260008160600152809050205460806080599059016000905260008152606051816020015260805181604001526005816060015280905020540560200280806020015990590160009052818152602081019050905060005b60208304811215610b1c578084015481602002830152600181019050610afb565b602083066020036101000a60000381850154168160200283015281905090509050905060206040820352602060208203510260400160408203f3505b637ab6ea8a811415610c765760043560605260243560805260a060a059905901600090526000815260605181602001526080518160400152600e81606001526000816080015280905020608060805990590160009052600081526060518160200152608051816040015260008160600152809050205460806080599059016000905260008152606051816020015260805181604001526005816060015280905020540560200280806020015990590160009052818152602081019050905060005b60208304811215610c3a578084015481602002830152600181019050610c19565b602083066020036101000a60000381850154168160200283015281905090509050905060206040820352602060208203510260400160408203f3505b632b810cb9811415610d945760043560605260243560805260a060a059905901600090526000815260605181602001526080518160400152600f81606001526000816080015280905020608060805990590160009052600081526060518160200152608051816040015260008160600152809050205460806080599059016000905260008152606051816020015260805181604001526005816060015280905020540560200280806020015990590160009052818152602081019050905060005b60208304811215610d58578084015481602002830152600181019050610d37565b602083066020036101000a60000381850154168160200283015281905090509050905060206040820352602060208203510260400160408203f3505b637fb42e46811415610e855760043560605260243560805260a060a059905901600090526000815260605181602001526080518160400152601081606001526000816080015280905020608060805990590160009052600081526060518160200152608051816040015260008160600152809050205460200280806020015990590160009052818152602081019050905060005b60208304811215610e49578084015481602002830152600181019050610e28565b602083066020036101000a60000381850154168160200283015281905090509050905060206040820352602060208203510260400160408203f3505b63734fa727811415610f765760043560605260243560805260a060a059905901600090526000815260605181602001526080518160400152601181606001526000816080015280905020608060805990590160009052600081526060518160200152608051816040015260008160600152809050205460200280806020015990590160009052818152602081019050905060005b60208304811215610f3a578084015481602002830152600181019050610f19565b602083066020036101000a60000381850154168160200283015281905090509050905060206040820352602060208203510260400160408203f3505b63c67fa8578114156110675760043560605260243560805260a060a059905901600090526000815260605181602001526080518160400152601281606001526000816080015280905020608060805990590160009052600081526060518160200152608051816040015260008160600152809050205460200280806020015990590160009052818152602081019050905060005b6020830481121561102b57808401548160200283015260018101905061100a565b602083066020036101000a60000381850154168160200283015281905090509050905060206040820352602060208203510260400160408203f3505b635ed853e48114156111855760043560605260243560805260a060a059905901600090526000815260605181602001526080518160400152601381606001526000816080015280905020608060805990590160009052600081526060518160200152608051816040015260008160600152809050205460806080599059016000905260008152606051816020015260805181604001526005816060015280905020540560200280806020015990590160009052818152602081019050905060005b60208304811215611149578084015481602002830152600181019050611128565b602083066020036101000a60000381850154168160200283015281905090509050905060206040820352602060208203510260400160408203f3505b63b86f51258114156112a35760043560605260243560805260a060a059905901600090526000815260605181602001526080518160400152601481606001526000816080015280905020608060805990590160009052600081526060518160200152608051816040015260008160600152809050205460806080599059016000905260008152606051816020015260805181604001526005816060015280905020540560200280806020015990590160009052818152602081019050905060005b60208304811215611267578084015481602002830152600181019050611246565b602083066020036101000a60000381850154168160200283015281905090509050905060206040820352602060208203510260400160408203f3505b63bc3d7d858114156113945760043560605260243560805260a060a059905901600090526000815260605181602001526080518160400152601581606001526000816080015280905020608060805990590160009052600081526060518160200152608051816040015260008160600152809050205460200280806020015990590160009052818152602081019050905060005b60208304811215611358578084015481602002830152600181019050611337565b602083066020036101000a60000381850154168160200283015281905090509050905060206040820352602060208203510260400160408203f3505b63a2302f2f81141561148157600435606052602435611680526044356116a0526116a05160a060a0599059016000905260008152606051816020015261168051816040015260018160600152608060805990590160009052600081526060518160200152611680518160400152600081606001528090502054816080015280905020556001608060805990590160009052600081526060518160200152611680518160400152600081606001528090502054016080608059905901600090526000815260605181602001526116805181604001526000816060015280905020556001611740526020611740f35b63058ca2bc8114156114dd576004356060526024356080526044356117605261176051608060805990590160009052600081526060518160200152608051816040015260028160600152809050205560016117a05260206117a0f35b635d3b965b8114156116175736599059016000905236600482376004356060526024356080526044356102805260643560208201016117e052608435611800525060c060c0599059016000905260008152606051816020015260805181604001526003816060015261028051816080015260008160a001528090502060206117e05103516020026020810460005b8181121561158c57806020026117e05101518482015560018101905061156b565b602083066020036101000a600003816020026117e05101511684820155505050506118005160806080599059016000905260008152606051816020015260805181604001526002816060015280905020540160806080599059016000905260008152606051816020015260805181604001526002816060015280905020556001611900526020611900f35b63b0e14f0f81141561167357600435606052602435608052604435611920526119205160806080599059016000905260008152606051816020015260805181604001526005816060015280905020556001611960526020611960f35b636acccdbc8114156117395736599059016000905236600482376004356060526024356080526044356020820101611980525060a060a05990590160009052600081526060518160200152608051816040015260068160600152600081608001528090502060206119805103516020026020810460005b8181121561170b5780602002611980510151848201556001810190506116ea565b602083066020036101000a600003816020026119805101511684820155505050506001611a40526020611a40f35b63a1fa51f98114156117ff5736599059016000905236600482376004356060526024356080526044356020820101611a60525060a060a0599059016000905260008152606051816020015260805181604001526007816060015260008160800152809050206020611a605103516020026020810460005b818112156117d15780602002611a60510151848201556001810190506117b0565b602083066020036101000a60000381602002611a605101511684820155505050506001611b20526020611b20f35b63cd87f43a8114156118c55736599059016000905236600482376004356060526024356080526044356020820101611b40525060a060a0599059016000905260008152606051816020015260805181604001526008816060015260008160800152809050206020611b405103516020026020810460005b818112156118975780602002611b4051015184820155600181019050611876565b602083066020036101000a60000381602002611b405101511684820155505050506001611c00526020611c00f35b63222a866381141561198b5736599059016000905236600482376004356060526024356080526044356020820101611c20525060a060a0599059016000905260008152606051816020015260805181604001526009816060015260008160800152809050206020611c205103516020026020810460005b8181121561195d5780602002611c205101518482015560018101905061193c565b602083066020036101000a60000381602002611c205101511684820155505050506001611ce0526020611ce0f35b63b39e1faa811415611a515736599059016000905236600482376004356060526024356080526044356020820101611d00525060a060a059905901600090526000815260605181602001526080518160400152600a816060015260008160800152809050206020611d005103516020026020810460005b81811215611a235780602002611d0051015184820155600181019050611a02565b602083066020036101000a60000381602002611d005101511684820155505050506001611dc0526020611dc0f35b63e365736b811415611b175736599059016000905236600482376004356060526024356080526044356020820101611de0525060a060a059905901600090526000815260605181602001526080518160400152600b816060015260008160800152809050206020611de05103516020026020810460005b81811215611ae95780602002611de051015184820155600181019050611ac8565b602083066020036101000a60000381602002611de05101511684820155505050506001611ea0526020611ea0f35b63aad7d6e3811415611b7357600435606052602435608052604435611ec052611ec0516080608059905901600090526000815260605181602001526080518160400152600c816060015280905020556001611f00526020611f00f35b6301112b27811415611c395736599059016000905236600482376004356060526024356080526044356020820101611f20525060a060a059905901600090526000815260605181602001526080518160400152600d816060015260008160800152809050206020611f205103516020026020810460005b81811215611c0b5780602002611f2051015184820155600181019050611bea565b602083066020036101000a60000381602002611f205101511684820155505050506001611fe0526020611fe0f35b63bdbb239b811415611cff5736599059016000905236600482376004356060526024356080526044356020820101612000525060a060a059905901600090526000815260605181602001526080518160400152600e8160600152600081608001528090502060206120005103516020026020810460005b81811215611cd1578060200261200051015184820155600181019050611cb0565b602083066020036101000a6000038160200261200051015116848201555050505060016120c05260206120c0f35b6305a0cd48811415611dc557365990590160009052366004823760043560605260243560805260443560208201016120e0525060a060a059905901600090526000815260605181602001526080518160400152600f8160600152600081608001528090502060206120e05103516020026020810460005b81811215611d9757806020026120e051015184820155600181019050611d76565b602083066020036101000a600003816020026120e051015116848201555050505060016121a05260206121a0f35b63aaa1fe35811415611e8b57365990590160009052366004823760043560605260243560805260443560208201016121c0525060a060a05990590160009052600081526060518160200152608051816040015260108160600152600081608001528090502060206121c05103516020026020810460005b81811215611e5d57806020026121c051015184820155600181019050611e3c565b602083066020036101000a600003816020026121c05101511684820155505050506001612280526020612280f35b632be4935d811415611f5157365990590160009052366004823760043560605260243560805260443560208201016122a0525060a060a05990590160009052600081526060518160200152608051816040015260118160600152600081608001528090502060206122a05103516020026020810460005b81811215611f2357806020026122a051015184820155600181019050611f02565b602083066020036101000a600003816020026122a05101511684820155505050506001612360526020612360f35b6313a8350d8114156120175736599059016000905236600482376004356060526024356080526044356020820101612380525060a060a05990590160009052600081526060518160200152608051816040015260128160600152600081608001528090502060206123805103516020026020810460005b81811215611fe9578060200261238051015184820155600181019050611fc8565b602083066020036101000a600003816020026123805101511684820155505050506001612440526020612440f35b63cb540b458114156120dd5736599059016000905236600482376004356060526024356080526044356020820101612460525060a060a05990590160009052600081526060518160200152608051816040015260138160600152600081608001528090502060206124605103516020026020810460005b818112156120af57806020026124605101518482015560018101905061208e565b602083066020036101000a600003816020026124605101511684820155505050506001612520526020612520f35b63be0306278114156121a35736599059016000905236600482376004356060526024356080526044356020820101612540525060a060a05990590160009052600081526060518160200152608051816040015260148160600152600081608001528090502060206125405103516020026020810460005b81811215612175578060200261254051015184820155600181019050612154565b602083066020036101000a600003816020026125405101511684820155505050506001612600526020612600f35b6383fd77f08114156122695736599059016000905236600482376004356060526024356080526044356020820101612620525060a060a05990590160009052600081526060518160200152608051816040015260158160600152600081608001528090502060206126205103516020026020810460005b8181121561223b57806020026126205101518482015560018101905061221a565b602083066020036101000a6000038160200261262051015116848201555050505060016126e05260206126e0f35b63594622058114156122d5576004356060526024356080526044356103c052606435612700526127005160a060a059905901600090526000815260605181602001526080518160400152600481606001526103c051816080015280905020556001612740526020612740f35b63bb8e419681141561244857600435606052602435612760526044356127805260006127a0525b6080608059905901600090526000815260605181602001526001612760510381604001526000816060015280905020546127a051121561243b5760a060a05990590160009052600081526060518160200152600161276051038160400152600181606001526127a0518160800152809050205460a060a05990590160009052600081526060518160200152612780518160400152600181606001526080608059905901600090526000815260605181602001526127805181604001526000816060015280905020548160800152809050205560016080608059905901600090526000815260605181602001526127805181604001526000816060015280905020540160806080599059016000905260008152606051816020015261278051816040015260008160600152809050205560016127a051016127a0526122fc565b6001612880526020612880f35b50\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x065d5efdfcc0fba693dc9e467f633097ffdc97401901463ad0e28855486d1edf\" : \"0xb9d69098a6acfe0c6411bcaaf430f78d363a9adc32b78bc2e15ccd6e883e9784\",\n                    \"0x12643ff300762717d27efb567b82c65560d7b43249d908504e5510863ab82aac\" : \"0x154cf60e137c594516a065149610b6a3989396a42581d5fd8919e711c55da225\",\n                    \"0x1489023d18c5d10427c4aa8dc726e840eb5ae7f604a8e9243c61634fb009e4d7\" : \"0x0000000000000000000000000000000000000000000000000000000000000005\",\n                    \"0x1489023d18c5d10427c4aa8dc726e840eb5ae7f604a8e9243c61634fb009e4d8\" : \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n                    \"0x19efb13d6576359514ace5211988a8d51379fa88ccd2b886b409f842b13d7932\" : \"0x00c849cc595b452d11c206d2eb8cdfa06de211e3ff19ee0e0276dc857c05d4fe\",\n                    \"0x1b37e91bf8580c7c6bcf8cdff25c7ed78180124a94af6f30c40d476a3d079ad6\" : \"0xaba4cd295118a482a0a62579e35e4ba5bdd76146cc9e4d96172fce8be8977ab4\",\n                    \"0x2bf9fd8facdd6fd9c84657f5ad7381a5aecf670cda68cb3c5829b6532c865506\" : \"0x53098a1d111586dbcc0d051846284f5803c63c313e7f7e6d84430435d11d4c50\",\n                    \"0x3111bfd25728c0adfad0f8c1ad79cb1b91167267deca98de88f156ed25caeedc\" : \"0xad393086f30b49511b08fdd27ac78810b084c7cd7de6ac354f614c18ea9e7df4\",\n                    \"0x3379e7ae125c5c5d623d1d993c1459b61d6723b1c30d1aa026c48f6a6155b8ea\" : \"0x8c4183732567a99a8a718e363391e102532f9a640e42968cf2354d9acc908bb0\",\n                    \"0x34cabe0c7e64a2caa93fd8d6a0defc07acb9d44b13430fa3ae9282fffd40dee2\" : \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n                    \"0x34cabe0c7e64a2caa93fd8d6a0defc07acb9d44b13430fa3ae9282fffd40dee3\" : \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n                    \"0x34cabe0c7e64a2caa93fd8d6a0defc07acb9d44b13430fa3ae9282fffd40dee4\" : \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n                    \"0x34cabe0c7e64a2caa93fd8d6a0defc07acb9d44b13430fa3ae9282fffd40dee5\" : \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n                    \"0x39050607fe892059a6344ab0f594f382fb0b345cab373497246dbe86fe7e14e7\" : \"0x2b3bca833e482737e7e47b1568e6f890f8e1666490d38fe130abd6f0ccb109cf\",\n                    \"0x417be8bc6791807372e0222a350bb8a5d67bbc8d7595c301d8a5a8372cfdcef1\" : \"0xabd4971b4605a7155802f70e08298b1ceb0e4e4eaccccd348f77a77227f73a7f\",\n                    \"0x41e9a54b3ee0c276aa076babb161de12b0f8916b47f8f6fb85cc387cf34696dd\" : \"0x22f2f444ebda9d2913ffef5059b039ec9b5876aa71821991c2515bf79f64935e\",\n                    \"0x45ceb8da6fb8936592d3bce4883f1a6a34d636f559e0a1070a5802a65ac39bd5\" : \"0x57a5122ff3bf737b0de0f9f08011a8648c19e43ff071fb7086234723c9383f1f\",\n                    \"0x4aa6b934608a45c8f53a945c05ddee1814a3b9f63a048fc7ad3d47e67156f024\" : \"0xd03862becedada67b4825a0238f3e67495ccb595cd7d08f1bd5d3160644b9299\",\n                    \"0x4b8b58f0b0e326a5907d1a810e5ff31e05b4cab45125b776db8577e7dbc46bce\" : \"0x00000000000000000000000000000000000000000000002f0000000000000000\",\n                    \"0x4c33460347337bfc7df08bf182988301b7b426a27a67f1c6c634f637c60e87ac\" : \"0xbab4ab2ad4eafe7c84ef6a8cd69157d9ce6b843793a2cd0877b8e91f63cb2d4d\",\n                    \"0x58da0c0c256bba101ce36fad8bf838717a57e6ab850a191dc9c09da9ce56bf1b\" : \"0x0000000000000000000000000000000000000000000000000000000000000005\",\n                    \"0x5cb38b16db1d632086d4af695de7f5f242a6e40947067f96edd566fe2ac438ef\" : \"0x6d0be832b2007ea28cda705b73922cbf9794c5a25b89bd2f28b7347ed2b96c86\",\n                    \"0x64a9621cc4ba92bf738c55010c609dfaa3972a1138c30b5adcef1ba2363b360e\" : \"0xd7953bfe8cb591f129fd0862a9e9c421151e2b5831560ff5215d23f751364b35\",\n                    \"0x696664a5f0ab5acd9304a377fb684f2d3fe6bb60b8a95cb2bdbb57db767e7a84\" : \"0x154cf60e137c594516a065149610b6a3989396a42581d5fd8919e711c55da225\",\n                    \"0x69ad1d19e617936abdf05133bf268dc8ced6b518f22b249b5860967d07006487\" : \"0x8c803b48b383ddabd1b3afe858efb48c203229b7317dd76149dddab4253b858a\",\n                    \"0x70b3bf53996fac325eb67608a4eeb0cd0b55def6255d7ed42ad28ec07238b5d6\" : \"0x45e9723e9232b37207ecac1c97b8647d053625a578d450f7456280b2ff8efc27\",\n                    \"0x7a9dcee62e3e02cc8e020f372df2efdeb835f091c1ef1dbe221072d1095aabd2\" : \"0x00000000000000000000000000000000000000000000002f0000000000000000\",\n                    \"0x7e4d8c0f6d8abb4ce1ae45b254046aceedabfa9548851b8b5d3e2c0637c985fd\" : \"0x000000000000000000000000000000000000000000000000000000000000000b\",\n                    \"0x7e95f3cc3315d289c52253baaba29b1b00c86816e6b788d50795279a8baa00db\" : \"0x45e9723e9232b37207ecac1c97b8647d053625a578d450f7456280b2ff8efc27\",\n                    \"0x8da187157087529ee4e9c381f8e3149c56acf3bdfda29b8b9b4532f24b83f5fe\" : \"0x8c4183732567a99a8a718e363391e102532f9a640e42968cf2354d9acc908bb0\",\n                    \"0x9001f91ddaef87bc067886e874c0749998c9b58b2ec8472ca014ca8b55f88578\" : \"0x0fb76974eefca01f33fb38646c2d3c1536f1a763d7aff53ab7f877d4c5ea7fd0\",\n                    \"0x9ed0cedd2a9a78d949f40019f53d10031aef6ed342c97e01fc03b481ee56b3cb\" : \"0x0000000000000000000000000000000000000000000000000000000000000004\",\n                    \"0x9fddf1db29caa5c1239edd86e9e0835cdfe41f7253ec78f62d3da8558d6f3cd7\" : \"0x104eef8fa35bf39f677d81855bc0b9f42317f32792e98e95e4df441deb634211\",\n                    \"0xa0953566119395c11186b334805fc1a16175ecac0ecc93ae0322264f0dc2e40d\" : \"0x10c5a00466ab7c0adae1e93537cc275ea8cf23ff509d5466a1fd6f56b0a61d1b\",\n                    \"0xaa0dbf8241ef3ae07c254e6869e84895ba2be0779a7f261c8308a3114be1c54a\" : \"0x0000000000000000000000000000000000000000000000000000000000000004\",\n                    \"0xaffe808b495d13a14391ce5f27c211c36da12826969cd7841ee0d81e5b900e2d\" : \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n                    \"0xaffe808b495d13a14391ce5f27c211c36da12826969cd7841ee0d81e5b900e2e\" : \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n                    \"0xb4a2b68c48ef78aeb641ee538fad51781022fd23ed9d93d211017db6a02376ce\" : \"0x0fbc06642245cf2fed7ed46ea0a18a7185830b6f2c4e0a4ca55246041e8bfa72\",\n                    \"0xba8d79990898383919e437f2458b93b340072c89d963808d9e04f51858e3c5ec\" : \"0x41d2cac534d90a0dbd199117481a63e32cc11411dab2eaa36c91c0eec62823cf\",\n                    \"0xbb3bc1a2015123750df57d4ceff7e28cb847910b79b34841de905b59a8bb177c\" : \"0x734417eb19e1873427257f1ea1594748c16cfa866a7b7cf896e281f2ec774a40\",\n                    \"0xbf30cdcb83ab2bd5f5eee691ffa4107b58b75ba6a5c2e6754d4c5c0437f2876c\" : \"0x0000000000000000000000000000000000000000000000000000000000000005\",\n                    \"0xc2a26b80067fc36b8268b0d5b31afff953fa91cebea39f191e2763d6e71259b9\" : \"0x02a43c547fe8de2400d2a141016550e8bae058d41164247c099e787ddd40e789\",\n                    \"0xc98339d275eef16e0562ca8521212cef61aa0f39b12e2a27502aaa97a9e5e70f\" : \"0x5a3de2a5c268cdb75f4b01507aa80c4e4a1bc67bcb0df265bbb00060774e5978\",\n                    \"0xcbd6ae6bd61bc9270ec836f1919b3268113abe076c7febfdb8cf573b199ce9a9\" : \"0xf402b17773c1f7534034ee58dc0d2a3421470a7a67daf4fa790dc3b420eef790\",\n                    \"0xd2c8cbb562fccd0c9a3d0d491b7f65cc6a89856498f933427d9d21b745b9d50e\" : \"0x3625a26fdb7b747501f1ee2500f98c49d9cd290383a21254587c3c49d2805321\",\n                    \"0xd66f52a4e24585238ccc03443b2fdb8b2b100259bc7260f39097c7c339211ffe\" : \"0x1641851904381915c86b60df7e288896fb5f8ebad65d594829fb9f2b59cd1da6\",\n                    \"0xd8f720c05a5526dd621d1831ae122abddd3dfecd8b63b0ba4c92fa7b2ade44ff\" : \"0xad393086f30b49511b08fdd27ac78810b084c7cd7de6ac354f614c18ea9e7df4\",\n                    \"0xdc22d3171b82817c910bbeac1f8b50c8de99f8c524f172aef3491981bd5ed4fb\" : \"0x94b8cba4ea090d1c392fbc94b82fb9ef9f468a15bbc537f4d051776f4d422b1d\",\n                    \"0xdce8adbdefa929dbe60245f359446db4174c62824b42e5d4d9e7b834b4d61deb\" : \"0x2c9069845b2e74c577ff1cd18df6bc452805f527a9ee91fd4a059e0408b5dea6\",\n                    \"0xdd9493073db9e42fd955e834c89a74089f99196186ee0b2688124989be00d196\" : \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n                    \"0xdd9493073db9e42fd955e834c89a74089f99196186ee0b2688124989be00d197\" : \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n                    \"0xdd9493073db9e42fd955e834c89a74089f99196186ee0b2688124989be00d198\" : \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n                    \"0xdd9493073db9e42fd955e834c89a74089f99196186ee0b2688124989be00d199\" : \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n                    \"0xdd9493073db9e42fd955e834c89a74089f99196186ee0b2688124989be00d19a\" : \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n                    \"0xe54f074c81bfa60b5bf413934c108086298b77291560edfeead8aa1232e95236\" : \"0x0f40aaa24323c9e6983ccffafeebe4b426509b901e8c98b8a40d881804804e6b\",\n                    \"0xe66c0f55f66c752edf73027d45b7b1ae729ae15e1c67c362dbc6f25edf8d76ff\" : \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n                    \"0xe983d899f807bbcb5881f2ddf875b2ebb5cb8a7a4e77a8c98a40aaae6a468735\" : \"0x6d0be832b2007ea28cda705b73922cbf9794c5a25b89bd2f28b7347ed2b96c86\",\n                    \"0xed7d6e2d40fbd5046412ffad1c45b63d87c6197182d6dbc66bb1e5c6e4ded5c7\" : \"0xaba4cd295118a482a0a62579e35e4ba5bdd76146cc9e4d96172fce8be8977ab4\",\n                    \"0xf043b5a1952847579f233706a8f130889a484d2da3e574fdd5859f05aaf52111\" : \"0x0000000000000000000000000000000000000000000000000000000000000002\",\n                    \"0xf40f4cfdacb62dd799f36b580349fac1f4a4caf8dd3383cc387c35adb6574e21\" : \"0x00000000000000000000000000000000000000000000002f0000000000000000\",\n                    \"0xf60fa6e25e9028a6dc6b26bbc1eadae3da157df0d1d6f6628bc33cad68a7e455\" : \"0x2d7d00618c059ebe40593b9497c633e1ac6e161dadbd5bb734c2663cd3e8a8e1\",\n                    \"0xfd280ac5182d5b2366122f38acfa6dc471240ffde9d5feb985ce7a2325c960e7\" : \"0x0000000000000000000000000000000000000000000000000000000000000003\"\n                }\n            },\n            \"142a6927cf0060133187ba8a8e74d641438f0c1c\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x600061031f537c01000000000000000000000000000000000000000000000000000000006000350473c9ae5868651bf7b7db6e360217db49ce4e69c07e602052730ea65418d7bf32680f55572c943a94b5908049986040526327138bfb81141561038d57600435608052601c6044599059016000905201637a66d7ca601c8203526080516004820152602060e06024836000602051602d5a03f15060e051905060a052601c604459905901600090520163c60409c6601c820352608051600482015260206101206024836000602051602d5a03f150610120519050430561010052600061014052600061016052600061018052600260a051016101005112151561010a576001610140525b60006101a052610100516101c0525b606461010051016101c051121561018457601c606459905901600090520163cc1c944e601c82035260805160048201526101c051602482015260206101e06044836000604051602d5a03f1506101e05190506101a051016101a05260016101c051016101c052610119565b6005601c606459905901600090520163cc1c944e601c820352608051600482015260a051602482015260206102006044836000604051602d5a03f1506102005190501280156101d357806101db565b600a6101a051125b9050156101eb57610140516101ee565b60005b1561033657601c604459905901600090520163c5476efe601c820352608051600482015260206102406024836000602051602d5a03f15061024051905050601c6064599059016000905201637265802d601c82035260805160048201526000602482015260206102606044836000602051602d5a03f15061026051905050601c606459905901600090520163c286273a601c82035260805160048201526000602482015260206102806044836000602051602d5a03f15061028051905050601c6044599059016000905201637a66d7ca601c820352608051600482015260206102a06024836000602051602d5a03f1506102a051905060a052601c608459905901600090520163bb8e4196601c820352608051600482015260a051602482015261010051604482015260206102c06064836000604051602d5a03f1506102c051905050610343565b6001610160526001610180525b61014051156103555761016051610358565b60005b156103665761018051610369565b60005b1561037f5760016102e05260206102e0f361038c565b6000610300526020610300f35b5b50\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"1cdc8315bdb1362de8b7b2fa9ee75dc873037179\" : {\n                \"balance\" : \"0x01\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"9761fecf88590592cf05ce545504d376d1693ab3\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x60006105df537c010000000000000000000000000000000000000000000000000000000060003504730ea65418d7bf32680f55572c943a94b59080499860205273e509e3a93beb1eba72f8cb8d25f93a85e2d54afb60405273c9ae5868651bf7b7db6e360217db49ce4e69c07e60605273f1562e1c0d0baa3ea746442bb7f11153fcf5cfda60805263546fdeb381141561038d5760043560c05260243560e05260443561010052606435610120526084356101405260026101005101601c606459905901600090520163e05dcb56601c82035260c051600482015260e05160248201526002610100510160408160200201599059016000905281602002604001816044856000602051602d5a03f150604081019050905090506000600161010051016020028201511415610250576060601c61014c59905901600090520163e365736b601c82035260c051600482015260e0516024820152601c6084599059016000905201632f300bee601c82035260026004820152600560248201526101005160448201528460408160200201599059016000905281602002604001816064856000608051602d5a03f1506040810190509050905060208103516020026020018360448401526020820360a4840152806101088401528084019350505081600401599059016000905260648160648460006004601cf16101fc57fe5b6064810192506101088201518080858260a487015160006004600a8705601201f161022357fe5b50808401935050808303602061028082846000602051602d5a03f15061028051905090509050905061037d565b6060601c61014c59905901600090520163e365736b601c82035260c051600482015260e0516024820152601c6084599059016000905201632f300bee601c820352600160016101005101602002850151036004820152600560248201526101005160448201528460408160200201599059016000905281602002604001816064856000608051602d5a03f1506040810190509050905060208103516020026020018360448401526020820360a4840152806101088401528084019350505081600401599059016000905260648160648460006004601cf161032d57fe5b6064810192506101088201518080858260a487015160006004600a8705601201f161035457fe5b5080840193505080830360206102c082846000602051602d5a03f1506102c05190509050905090505b5060016102e05260206102e0f350505b63de9080c88114156107645760043560c05260243560e05260443561010052606435610120526084356101405260026101005101601c606459905901600090520163e05dcb56601c82035260c051600482015260e05160248201528160408160200201599059016000905281602002604001816044856000602051602d5a03f15060408101905090509050601c6064599059016000905201632c5a40d5601c82035260c051600482015260e05160248201526101405160408160200201599059016000905281602002604001816044856000602051602d5a03f1506040810190509050905061012051806020026020015990590160009052818152602081019050905060005b610120518112156104ee57601c60645990590160009052016328c8b315601c82035260c051600482015281602482015260206103606044836000604051602d5a03f15061036051905081602002830152600181019050610493565b5060a0601c61020c59905901600090520163a647a5b9601c8203528460208103516020026020018360048401526020820360a484015280610148840152808401935050508360208103516020026020018360248401526020820360c484015280610168840152808401935050508260208103516020026020018360448401526020820360e4840152806101888401528084019350505061012051606482015261010051608482015281600401599059016000905260a48160a484600060046022f16105b557fe5b60a4810192506101488201518080858260a487015160006004600a8705601201f16105dc57fe5b508084019350506101688201518080858260c487015160006004600a8705601201f161060457fe5b508084019350506101888201518080858260e487015160006004600a8705601201f161062c57fe5b5080840193505080830387604081602002015990590160009052816020026040018184866000608051602d5a03f1506040810190509050905090509050905092506060601c61014c59905901600090520163e365736b601c82035260c051600482015260e05160248201528460208103516020026020018360448401526020820360a4840152806101088401528084019350505081600401599059016000905260648160648460006004601cf16106df57fe5b6064810192506101088201518080858260a487015160006004600a8705601201f161070657fe5b5080840193505080830360206103c082846000602051602d5a03f1506103c05190509050905090505060006101005160200284015114156107525760006103e05260206103e0f361075f565b6001610400526020610400f35b505050505b63384ca8dd811415610a665760043560c05260243560e052604435610100526064356101205260843561014052601c606459905901600090520163e05dcb56601c82035260c051600482015260e05160248201526002610100510160408160200201599059016000905281602002604001816044856000602051602d5a03f15060408101905090509050601c606459905901600090520163fa9832d1601c82035260c051600482015260e05160248201526101005160408160200201599059016000905281602002604001816044856000602051602d5a03f15060408101905090509050601c608459905901600090520163aad7d6e3601c82035260c051600482015260e05160248201526060601c61014c599059016000905201635b180229601c8203528360208103516020026020018360048401526020820360648401528060c8840152808401935050508460208103516020026020018360248401526020820360848401528060e88401528084019350505061010051604482015281600401599059016000905260648160648460006004601cf161090157fe5b60648101925060c882015180808582606487015160006004600a8705601201f161092757fe5b5080840193505060e882015180808582608487015160006004600a8705601201f161094e57fe5b50808401935050808303602061044082846000608051602d5a03f150610440519050905090509050604482015260206104606064836000602051602d5a03f150610460519050506060601c61014c59905901600090520163222a8663601c82035260c051600482015260e05160248201528260208103516020026020018360448401526020820360a4840152806101088401528084019350505081600401599059016000905260648160648460006004601cf1610a0757fe5b6064810192506101088201518080858260a487015160006004600a8705601201f1610a2e57fe5b50808401935050808303602061048082846000602051602d5a03f1506104805190509050905090505060016104a05260206104a0f350505b63d5dc5af1811415610d4b5760043560c05260243560e052604435610100526064356101205260843561014052601c606459905901600090520163e05dcb56601c82035260c051600482015260e05160248201526002610100510160408160200201599059016000905281602002604001816044856000602051602d5a03f15060408101905090509050601c6064599059016000905201632c5a40d5601c82035260c051600482015260e05160248201526101405160408160200201599059016000905281602002604001816044856000602051602d5a03f150604081019050905090506080601c6101ac59905901600090520163f4ca7dc4601c82035283602081035160200260200183600484015260208203608484015280610108840152808401935050508260208103516020026020018360248401526020820360a4840152806101288401528084019350505061012051604482015261010051606482015281600401599059016000905260848160848460006004601ff1610be757fe5b60848101925061010882015180808582608487015160006004600a8705601201f1610c0e57fe5b508084019350506101288201518080858260a487015160006004600a8705601201f1610c3657fe5b5080840193505080830361014051604081602002015990590160009052816020026040018184866000608051602d5a03f1506040810190509050905090509050905090506060601c61014c59905901600090520163b39e1faa601c82035260c051600482015260e05160248201528260208103516020026020018360448401526020820360a4840152806101088401528084019350505081600401599059016000905260648160648460006004601cf1610cec57fe5b6064810192506101088201518080858260a487015160006004600a8705601201f1610d1357fe5b5080840193505080830360206104c082846000602051602d5a03f1506104c05190509050905090505060016104e05260206104e0f350505b630939aa8c81141561114c5760043560c05260243560e052604435610100526064356101205260843561014052601c606459905901600090520163e05dcb56601c82035260c051600482015260e05160248201526002610100510160408160200201599059016000905281602002604001816044856000602051602d5a03f15060408101905090509050601c6064599059016000905201637dc12195601c82035260c051600482015260e05160248201526101405160408160200201599059016000905281602002604001816044856000602051602d5a03f15060408101905090509050601c606459905901600090520163586b5be0601c82035260c051600482015260e051602482015260206105006044836000602051602d5a03f150610500519050601c606459905901600090520163eb8af5aa601c82035260c051600482015260e05160248201526101205160408160200201599059016000905281602002604001816044856000602051602d5a03f1506040810190509050905060c0601c61026c59905901600090520163232b2734601c8203528260208103516020026020018360048401526020820360c484015280610188840152808401935050508560208103516020026020018360248401526020820360e4840152806101a88401528084019350505084602081035160200260200183604484015260208203610104840152806101c8840152808401935050508360648201526101205160848201526101005160a482015281600401599059016000905260c48160c484600060046025f1610f9657fe5b60c4810192506101888201518080858260c487015160006004600a8705601201f1610fbd57fe5b508084019350506101a88201518080858260e487015160006004600a8705601201f1610fe557fe5b508084019350506101c88201518080858261010487015160006004600a8705601201f161100e57fe5b5080840193505080830361012051604081602002015990590160009052816020026040018184866000608051602d5a03f1506040810190509050905090509050905090506060601c61014c5990590160009052016301112b27601c82035260c051600482015260e05160248201528260208103516020026020018360448401526020820360a4840152806101088401528084019350505081600401599059016000905260648160648460006004601cf16110c457fe5b6064810192506101088201518080858260a487015160006004600a8705601201f16110eb57fe5b50808401935050808303602061058082846000602051602d5a03f15061058051905090509050905050600060016101005101602002850151141561113a5760006105a05260206105a0f3611147565b60016105c05260206105c0f35b505050505b50\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"4000000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"b03f030056db7d467d778326658bac0d1b35d8f7\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x600061075f537c010000000000000000000000000000000000000000000000000000000060003504731e147037f0a63df228fe6e7aef730f1ea31c8ce3602052730ea65418d7bf32680f55572c943a94b59080499860405273e509e3a93beb1eba72f8cb8d25f93a85e2d54afb60605273c9ae5868651bf7b7db6e360217db49ce4e69c07e60805273142a6927cf0060133187ba8a8e74d641438f0c1c60a05273b163e767e4c1ba5ae88b2ee7594f3a3fec2bb09660c05273ba7b277319128ef4c22635534d0f61dffdaa13ab60e052739761fecf88590592cf05ce545504d376d1693ab36101005273f70bbc50f1468cecae0761ef09386a87c1c696ea6101205273a89d22f049aaa5bbfb5f1a1939fff3ae7a26ae746101405273174827f7e53e8ce13b047adcac0eb3f2cb0c3285610160526336a560bd811415610a88576004356101a052601c60445990590160009052016327138bfb601c8203526101a051600482015260206101e0602483600060a051602d5a03f1506101e05190501515610195576001600003610200526020610200f35b601c6044599059016000905201637a66d7ca601c8203526101a051600482015260206102206024836000608051602d5a03f150610220519050601c606459905901600090520163cc1c944e601c8203526101a05160048201528160248201526020610260604483600061028051602d5a03f150610260519050601c60445990590160009052016380b5e7bd601c8203526101a051600482015260206102a06024836000606051602d5a03f1506102a0519050808202601c60445990590160009052016318633576601c8203526101a051600482015260206103006024836000608051602d5a03f150610300519050600981141561036d57601c60c459905901600090520163ac44d71e601c8203526101a0516004820152856024820152846044820152836064820152826084820152602061036060a483600061016051602d5a03f15061036051905050601c6064599059016000905201637265802d601c8203526101a05160048201526000602482015260206103806044836000608051602d5a03f15061038051905050601c604459905901600090520163c5476efe601c8203526101a051600482015260206103a06024836000608051602d5a03f1506103a051905050600185016103c05260206103c0f3610a3a565b60008114156103cd57601c60c459905901600090520163ef72638a601c8203526101a051600482015285602482015284604482015283606482015282608482015260206103e060a483600060c051602d5a03f1506103e051905050610a39565b600181141561042d57601c60c459905901600090520163a63e976c601c8203526101a0516004820152856024820152846044820152836064820152826084820152602061040060a483600060e051602d5a03f15061040051905050610a38565b600281141561048d57601c60c459905901600090520163533ea0ed601c8203526101a0516004820152856024820152846044820152836064820152826084820152602061042060a483600060e051602d5a03f15061042051905050610a37565b600381141561085057601c606459905901600090520163e05dcb56601c8203526101a0516004820152856024820152600285016040816020020159905901600090528160200260400181604485600061028051602d5a03f15060408101905090509050601c6044599059016000905201633d905045601c8203526101a051600482015260206104806024836000608051602d5a03f150610480519050600481141561063357601c60c4599059016000905201630939aa8c601c8203526101a051600482015287602482015286604482015285606482015284608482015260206104e060a483600061010051602d5a03f1506104e05190506104c052601c606459905901600090520163c286273a601c8203526101a05160048201526000602482015260206105006044836000608051602d5a03f1506105005190505060016104c05114156105e55782610520526020610520f361062e565b601c604459905901600090520163aac2ffb5601c8203526101a051600482015260206105406024836000608051602d5a03f1506105405190505060018301610560526020610560f35b610804565b600081141561069457601c60c459905901600090520163546fdeb3601c8203526101a0516004820152876024820152866044820152856064820152846084820152602061058060a483600061010051602d5a03f15061058051905050610803565b6001811415610742576000601c60c459905901600090520163de9080c8601c8203526101a051600482015288602482015287604482015286606482015285608482015260206105a060a483600061010051602d5a03f1506105a0519050141561073257601c6044599059016000905201631cda01ef601c8203526101a051600482015260206105c06024836000608051602d5a03f1506105c0519050505b826105e05260206105e0f3610802565b60028114156107a357601c60c459905901600090520163384ca8dd601c8203526101a0516004820152876024820152866044820152856064820152846084820152602061060060a483600061010051602d5a03f15061060051905050610801565b600381141561080057601c60c459905901600090520163d5dc5af1601c8203526101a0516004820152876024820152866044820152856064820152846084820152602061062060a483600061010051602d5a03f150610620519050505b5b5b5b5b601c6044599059016000905201631cda01ef601c8203526101a051600482015260206106406024836000608051602d5a03f1506106405190505082610660526020610660f35050610a36565b60048114156108b157601c60c459905901600090520163f6559853601c8203526101a0516004820152856024820152846044820152836064820152826084820152602061068060a483600061012051602d5a03f15061068051905050610a35565b600581141561091257601c60c459905901600090520163d8e5473d601c8203526101a051600482015285602482015284604482015283606482015282608482015260206106a060a483600061012051602d5a03f1506106a051905050610a34565b600681141561097357601c60c459905901600090520163090507ea601c8203526101a051600482015285602482015284604482015283606482015282608482015260206106c060a483600061012051602d5a03f1506106c051905050610a33565b60078114156109d457601c60c4599059016000905201635b911842601c8203526101a051600482015285602482015284604482015283606482015282608482015260206106e060a483600061014051602d5a03f1506106e051905050610a32565b6008811415610a3157601c60c459905901600090520163abe22b84601c8203526101a0516004820152856024820152846044820152836064820152826084820152602061070060a483600061014051602d5a03f150610700519050505b5b5b5b5b5b5b5b5b5b601c604459905901600090520163aac2ffb5601c8203526101a051600482015260206107206024836000608051602d5a03f1506107205190505060018101610740526020610740f350505050505b50\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"c9ae5868651bf7b7db6e360217db49ce4e69c07e\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x600061083f537c010000000000000000000000000000000000000000000000000000000060003504637a66d7ca8114156100665760043560405260606060599059016000905260008152604051816020015260008160400152809050205460605260206060f35b63c60409c68114156100a55760043560405260606060599059016000905260008152604051816020015260018160400152809050205460a052602060a0f35b63186335768114156100e45760043560405260606060599059016000905260008152604051816020015260028160400152809050205460e052602060e0f35b63b3903c8a8114156101bc57600435604052606060605990590160009052600081526040518160200152600581604001528090502054610120526101205180602002602001599059016000905281815260208101905090506101605260006101c0525b610120516101c051121561019f57608060805990590160009052600081526040518160200152600481604001526101c051816060015280905020546101c05160200261016051015260016101c051016101c052610147565b6101605160206040820352602060208203510260400160408203f3505b636824e0fb8114156101fd57600435604052606060605990590160009052600081526040518160200152600581604001528090502054610220526020610220f35b633db16be381141561023e57600435604052606060605990590160009052600081526040518160200152600681604001528090502054610260526020610260f35b63c33878588114156102e05760006102a0526000546102c0526102c05180602002602001599059016000905281815260208101905090506102e0525b6102c0516102a05112156102c357604060405990590160009052600181526102a051816020015280905020546102a0516020026102e051015260016102a051016102a05261027a565b6102e05160206040820352602060208203510260400160408203f3505b63175c63228114156102fa57600054610380526020610380f35b63d861f2b4811415610336576004356103a052604060405990590160009052600181526103a051816020015280905020546103c05260206103c0f35b63b0dab01f81141561044f57600435610400526024356104205260443561044052606435610460526000606060605990590160009052600081526104005181602001526001816040015280905020541415610441576104205160606060599059016000905260008152610400518160200152600081604001528090502055610440516060606059905901600090526000815261040051816020015260018160400152809050205561046051606060605990590160009052600081526104005181602001526006816040015280905020556104005160406040599059016000905260018152600054816020015280905020556001600054016000556001610520526020610520f361044e565b6000610540526020610540f35b5b63aac2ffb58114156104b95760043560405260016060606059905901600090526000815260405181602001526002816040015280905020540160606060599059016000905260008152604051816020015260028160400152809050205560016105a05260206105a0f35b637265802d811415610507576004356040526024356105c0526105c0516060606059905901600090526000815260405181602001526002816040015280905020556001610600526020610600f35b63c5476efe811415610571576004356040526001606060605990590160009052600081526040518160200152600081604001528090502054016060606059905901600090526000815260405181602001526000816040015280905020556001610660526020610660f35b63c551e31e81141561063b576004356040526024356106805260606060599059016000905260008152604051816020015260058160400152809050205461012052610680516080608059905901600090526000815260405181602001526004816040015261012051816060015280905020556001606060605990590160009052600081526040518160200152600581604001528090502054016060606059905901600090526000815260405181602001526005816040015280905020556001610720526020610720f35b633d90504581141561067c57600435604052606060605990590160009052600081526040518160200152600381604001528090502054610740526020610740f35b631cda01ef8114156106e65760043560405260016060606059905901600090526000815260405181602001526003816040015280905020540160606060599059016000905260008152604051816020015260038160400152809050205560016107c05260206107c0f35b63c286273a811415610734576004356040526024356107e0526107e0516060606059905901600090526000815260405181602001526003816040015280905020556001610820526020610820f35b50\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x0000000000000000000000000000000000000000000000000000000000000000\" : \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n                    \"0x0a4470e9d0419df71f6257fcdfd2c0a3bad96a23f5ab414bc10aaf1a31a536a7\" : \"0xb4876148229c22bd2291f1a4f5468c8c789b23639370c4d447f270ba341dbbec\",\n                    \"0x16ef4193a274568d283ff919c299729e07696d9ada48187b81d68e12e7b962de\" : \"0x0a103c04e7ecb9b3395f77c7b0cad28e62c85f042de4767ccc6c005e6f47f8d4\",\n                    \"0x1f1866e966f321b84535705846689749d34d5dc02994613e2931973c605d9e93\" : \"0xc723d0aa4a60529fe42277c8094aa19263aff36650136efc5edfd0785d457634\",\n                    \"0x252a4ec7133643fddcdb22a86c415f78b2dd251f18d1efcd6a44acf590c4ae72\" : \"0x9caf94b82715869e71d3cee986094ea612f0258570b7e5ef47b5d09e9515322b\",\n                    \"0x41b451e8d86d28add758cbd3f48a18fd04b11a80288c1dc434a5bf2d8fb1ca64\" : \"0xb602498f12a8b4af3a1fca357cea6b19bcd163dfec1d845364ce1395f7c21fa7\",\n                    \"0x491d10658c1ec762152d8ad2d890ad59111b1ee7b4bc25736046923d3534d9a5\" : \"0x000000000000000000000000000000000000000000000000000000000000629e\",\n                    \"0x5b0e8552efd72a845e47318abbbef9dc9fcdfe0d1a06cda44494401301581511\" : \"0xfbc98f4017ae5c20459daadaa6bee519b6de871d3dbaa9ab3f34340fef4cb643\",\n                    \"0x5b672a107ba6fab01cbddf079042e9f6176a8e6f154584fc4df4b15674c9456e\" : \"0x1603da41d610854d85536b37d000e5eb7ca09786c43f50e7441c0afbff1de0a9\",\n                    \"0x605b934bd26c9ecdf7029a7dc062d3a6b87338511cff96e0c5f13de9eea3462e\" : \"0xf0d24f3d0eda573fc5d43e3d0680993c51293752cd6de205040d3197f412f475\",\n                    \"0x618355e25491dfe86175f9d9b3147e4d680aa561d98384e3621dc6a3088b0846\" : \"0x6b2e6d2d5deb27dffec973f23af4caf111e66d1397f467dbbedf5ab2192fb6b6\",\n                    \"0x65112936bec0f1e84fda6623fb54e12baadc8a4a208c8c4eb3ed5e79cbd7e85f\" : \"0xa59ac24e3e0663413d0f87516ba8fb44c6c3e14da8eaabbde80f8ee285f65934\",\n                    \"0x687cb2122de7bacf42b9cd380b04ff2a2ce92a0b63706a9a78263b3ce86f3313\" : \"0x0000000000000000000000000000000000000000000000000200000000000000\",\n                    \"0x72a539b064c98d29a514ee55694225e05fb41fe63e5fe710e4536bd9ba3591b4\" : \"0x338ecfe6c523ed1184918b19584d97dd1095ecaadc49c7ba9da62b8b513026e0\",\n                    \"0x7aeb0a0ce8882a12d853078382a2bc72f7a94af6109f167de37b36c0a7deb828\" : \"0x4c428400ea8a7bd7c46ba9895b508770efa4551f0d793e1beb1207da01d9962f\",\n                    \"0x7c8f4a98e086f64e28c75f54712b5d44bec3c29b5c70519e8880d3046a5618dc\" : \"0xaafc1f2601752b114d722070f75539bfec7faf49f0d48a48d27862f0c3b09903\",\n                    \"0x809c325f50acf5787776e960985e72443b4330ad1e2f466557fffee16ba51d44\" : \"0xb940a56e64b5b661d87919b8ef03640ec077a6d72dd0b524adedaa7ddc91ff7a\",\n                    \"0x84e4a80d33c5d2abd2b0a5aec0fdc5eaeed90ab31db556e404a81718ea286e39\" : \"0x000000000000000000000000000000000000000000000000000000000000001c\",\n                    \"0x877305412fa2486f563c457b744e5c8b1e4d0eca73371de5e771f2abc263f4dc\" : \"0x7088a36f67276d475aa62127cfde9790cc802fdf3a54df49461a25eb8bf15707\",\n                    \"0x922a8f2fc1cbe67c8acc6a8a720983c366d71d3e2e78e3048949ebc913ea611a\" : \"0x50fb9f913ca102534bb0a8eb8ebf19c68dfd16ffe5e207bcc580084cd4ecd8b4\",\n                    \"0x987cb9ecfd8ce499d9d0e9e6b7da29617aa02774a34f4a8ea54442f44a1e1936\" : \"0x5179f98f555f1e9f1d4a335d16f41154579a53e361e9859269b6fa74ea9c7d21\",\n                    \"0xada5013122d395ba3c54772283fb069b10426056ef8ca54750cb9bb552a59e7d\" : \"0x00000000000000000000000000000000000000000000000000000000000f69b5\",\n                    \"0xb16b117660f31197087f4d6fe50d3d4579152244956f753f9653ccf85f4b35c4\" : \"0x830272e3bb35226b047244cbdc46f1b6b864a280461e7a592f70e0863f4f1d33\",\n                    \"0xb1f1aaedfb83c7755a2bffc9e2557f1723f9abe5642397963e76248c9209af57\" : \"0xe9be955c5fbfcd846d7425eaea05ce897786aefad99665342cbf30761b352526\",\n                    \"0xb7bd50fdf7b043411c9ac33f0af2cebc69c393eb0b91f4976946f9c7b15ad0da\" : \"0xfccca0e7832bae9afe799a6d6177dc3869fa6c5b5105f8df6f365de5723820ec\",\n                    \"0xbc96058eb03504ee6f5c0a9582f8720d99a6e9738b171499507facff0b2c0b5b\" : \"0x9db6a4f2766b51013b8d2f9038131d1bb4af725d019d111d7e26ff96c023b23f\",\n                    \"0xc186c4f377b7f13892ade9656acd1522aa1f8ac151ac4f62457b5073241d79fc\" : \"0x7289738fef00f1770eeb098db9bd486c01ac12398d79cdf935514a128c585c51\",\n                    \"0xcae57ae3017972d63effd8eae44f5054402c3e890d154b905ed6b5b533327fa9\" : \"0xd2e4bf465e61993d13089b940a7c55017a5117d8e43e4115550a139e1d4b3e3a\",\n                    \"0xcf569ee7bf3accc0f893dffd04f1a757f373efe80893eff504fb3678f688ec1d\" : \"0x0000000000000000000000000000000000000000000000000000000000000003\",\n                    \"0xd69b7284545a9f5275df64ce94848dc954fcb8a8b525e7ac801517c12a75af84\" : \"0x4202995350abae303b43e564aa79121a30b5f1aea31f69cd25e07dd3fa64dce7\",\n                    \"0xd8f6f90f51e657690ee28d1cc80d81bc1b89290065891fdd853d09caaaf756aa\" : \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n                    \"0xde72f8eed43cc2a5a3eaa51483d14b17dc92bb26c154ae184cee4b4895011edc\" : \"0x47ce2b6fdb72c3fabb9c74f82c1e3e522bcd42e614fd85c208ac3c4c840cea72\",\n                    \"0xe0e687ddf317f3d2b209ae3884148eff0f636e16827f82eded14ada8fc603009\" : \"0xfa7c8939f9b033162cf8d75ea69671bb8a27041bd4cdc76594e61e99333cb041\",\n                    \"0xe8cda339d72a1a350b62f1e3fa52e254c395cc9fdd9f60adb21c7633fbdab531\" : \"0x128c4fdf4801a30eae99dd58f0f3ff5ca65f71b66a9ac0f38dd450fb24b4aaaa\",\n                    \"0xec5e7f54fa5e516e616b04f9d5a0ee433a80e09ed47d7e5269afd76c05ff251e\" : \"0x0000000000000000000000000000000000000000000000000000000000000014\",\n                    \"0xf9a3bf5f2ccb903ee1a7644113b794db0260de404fb8f11203e75a7fff151618\" : \"0xbd94773c0d85c68240ae8dfd53d9d33cd137509bfc5d3433381299df768c8377\"\n                }\n            },\n            \"e509e3a93beb1eba72f8cb8d25f93a85e2d54afb\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x6000610b7f537c01000000000000000000000000000000000000000000000000000000006000350473c9ae5868651bf7b7db6e360217db49ce4e69c07e6020526308d3d58781141561024557600435606052606060605990590160009052600081526060518160200152600181604001528090502054608052600060806080599059016000905260008152606051816020015260028160400152328160600152809050205414151561014e57608060805990590160009052600081526060518160200152600281604001523281606001528090502054608052682f000000000000000060a060a059905901600090526000815260605181602001526000816040015260805181606001526000816080015280905020553260a060a05990590160009052600081526060518160200152600081604001526080518160600152600181608001528090502055610238565b608051608060805990590160009052600081526060518160200152600281604001523281606001528090502055682f000000000000000060a060a059905901600090526000815260605181602001526000816040015260805181606001526000816080015280905020553260a060a059905901600090526000815260605181602001526000816040015260805181606001526001816080015280905020556001606060605990590160009052600081526060518160200152600181604001528090502054016060606059905901600090526000815260605181602001526001816040015280905020555b60016101e05260206101e0f35b6328c8b31581141561029d576004356060526024356102005260a060a0599059016000905260008152606051816020015260008160400152610200518160600152600081608001528090502054610220526020610220f35b6374af23ec8114156103865760043560605260243561026052608060805990590160009052600081526060518160200152600281604001526102605181606001528090502054610200526000610200511415610332576102605160a060a05990590160009052600081526060518160200152600081604001526102005181606001526001816080015280905020541415610335565b60005b156103475760006102c05260206102c0f35b60a060a05990590160009052600081526060518160200152600081604001526102005181606001526000816080015280905020546102e05260206102e0f35b6384d646ee8114156103dc5760043560605260243560805260a060a05990590160009052600081526060518160200152600081604001526080518160600152600181608001528090502054610320526020610320f35b63f42294278114156106f45760043561026052601c602459905901600090520163175c6322601c82035260206103a06004836000602051602d5a03f1506103a0519050610360526102605115610581576103605160020280602002602001599059016000905281815260208101905090506103c05261036051806020026020015990590160009052818152602081019050905061042052601c602459905901600090520163c3387858601c8203526103605160408160200201599059016000905281602002604001816004856000602051602d5a03f150604081019050905090506104205260006104c05260006104e0525b610360516104c051121561057c576104c051602002610420510151606052601c60645990590160009052016374af23ec601c82035260605160048201526102605160248201526020610520604483600030602d5a03f1506105205190506105005260006105005114151561056c576060516104e0516020026103c05101526105005160016104e051016020026103c051015260026104e051016104e0525b60016104c051016104c0526104ce565b6106d7565b32610260526103605160020280602002602001599059016000905281815260208101905090506103c05261036051806020026020015990590160009052818152602081019050905061042052601c602459905901600090520163c3387858601c8203526103605160408160200201599059016000905281602002604001816004856000602051602d5a03f150604081019050905090506104205260006104c05260006104e0525b610360516104c05112156106d6576104c051602002610420510151606052601c60645990590160009052016374af23ec601c820352606051600482015261026051602482015260206105c0604483600030602d5a03f1506105c0519050610500526000610500511415156106c6576060516104e0516020026103c05101526105005160016104e051016020026103c051015260026104e051016104e0525b60016104c051016104c052610628565b5b6103c05160206040820352602060208203510260400160408203f3505b6380b5e7bd81141561073557600435606052606060605990590160009052600081526060518160200152600181604001528090502054610600526020610600f35b63156f1c328114156107865760043560605260243561064052608060805990590160009052600081526060518160200152600281604001526106405181606001528090502054610660526020610660f35b63b3a24fc081141561087857365990590160009052366004823760043560208201016106c0526024356106e05250600260206106c0510351018060200260200159905901600090528181526020810190509050610700523261070051526106e051602061070051015260026104c0525b600260206106c0510351016104c05112156108385760026104c051036020026106c05101516104c05160200261070051015260016104c051016104c0526107f6565b60206107005103516020026020599059016000905260208183610700516000600287604801f15080519050905061076052610760516107c05260206107c0f35b63e346f5fc811415610a1c576004356107e0526024356108005260006104c0525b606060605990590160009052600081526107e05181602001526001816040015280905020546104c05112156109e65760a060a05990590160009052600081526107e0518160200152600081604001526104c0518160600152600181608001528090502054610840526108405160a060a0599059016000905260008152610800518160200152600081604001526104c051816060015260018160800152809050205560a060a05990590160009052600081526107e0518160200152600081604001526104c051816060015260008160800152809050205460a060a0599059016000905260008152610800518160200152600081604001526104c05181606001526000816080015280905020556104c0516080608059905901600090526000815261080051816020015260028160400152610840518160600152809050205560016104c051016104c052610899565b6104c051606060605990590160009052600081526108005181602001526001816040015280905020556001610920526020610920f35b633fb57036811415610b5457600435606052602435610940526060606059905901600090526000815260605181602001526001816040015280905020546109605261096051608060805990590160009052600081526060518160200152600281604001526109405181606001528090502055600060a060a05990590160009052600081526060518160200152600081604001526109605181606001526000816080015280905020556109405160a060a05990590160009052600081526060518160200152600081604001526109605181606001526001816080015280905020556001606060605990590160009052600081526060518160200152600181604001528090502054016060606059905901600090526000815260605181602001526001816040015280905020556001610a40526020610a40f35b6312709a33811415610beb57600435606052602435608052604435610a6052610a605160a060a059905901600090526000815260605181602001526000816040015260805181606001526000816080015280905020540160a060a059905901600090526000815260605181602001526000816040015260805181606001526000816080015280905020556001610ac0526020610ac0f35b633229cf6e811415610c8257600435606052602435608052604435610a6052610a605160a060a059905901600090526000815260605181602001526000816040015260805181606001526000816080015280905020540360a060a059905901600090526000815260605181602001526000816040015260805181606001526000816080015280905020556001610b20526020610b20f35b63a75f5c6a811415610ce557600435606052602435608052604435610a6052610a605160a060a059905901600090526000815260605181602001526000816040015260805181606001526000816080015280905020556001610b60526020610b60f35b50\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x0f299dbbe3a7a5d949fe794e9a47b3106699c8110ff986eb84921c183e69e7f0\" : \"0x00000000000000000000000000000000000000000000002f0000000000000000\",\n                    \"0x1edcd36f61cae5dc6414157dfbadf9f11ca013ac763e27f8af55feaa8a239c89\" : \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n                    \"0x689082d076ec3c02cbe4b99f6d9833e3c4a161072fd42fb7649eee5189a67ccc\" : \"0x00000000000000000000000063524e3fe4791aefce1e932bbfb3fdf375bfad89\",\n                    \"0xaf1d6676be3ab502a59d91f6f5c49baffc15b2cfc65a41c4d96857c0f535adba\" : \"0x0000000000000000000000000000000000000000000001d60000000000000000\",\n                    \"0xdf1a770f69d93d1719292f384fdb4da22c0e88aef2ba462bff16674bc7848730\" : \"0x0000000000000000000000001c11aa45c792e202e9ffdc2f12f99d0d209bef70\",\n                    \"0xec5e7f54fa5e516e616b04f9d5a0ee433a80e09ed47d7e5269afd76c05ff251e\" : \"0x0000000000000000000000000000000000000000000000000000000000000002\"\n                }\n            },\n            \"f1562e1c0d0baa3ea746442bb7f11153fcf5cfda\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x600061067f537c010000000000000000000000000000000000000000000000000000000060003504632f300bee8114156100ac576004356040526024356060526044356080526002608051018080602002602001599059016000905281815260208101905090506801000000000000000081526060516080516020028201526001604051036001608051016020028201528060206040820352602060208203510260400160408203f35050505b63a647a5b98114156102c85736599059016000905236600482376004356020820101610100526024356020820101610160526044356020820101610180526064356101a05260843560805250602061010051035180806020026020015990590160009052818152602081019050905060005b6101a0518112156101d557600060005b608051811215610162578060200261010051015181608051850201602002610160510151028201915060018101905061012e565b50680100000000000000008105905060005b6080518112156101c857700100000000000000000000000000000000836020026101805101518260805186020160200261016051015184020205816020028501510381602002850152600181019050610174565b505060018101905061011e565b50600060005b60805181121561020357806020028301518160200284015102820191506001810190506101db565b5068010000000000000000810590506002810560005b600b81121561024257600282680100000000000000008502058301059150600181019050610219565b5060005b60805181121561027657816801000000000000000082602002860151020581602002850152600181019050610246565b5050506001608051602002610100510151036080516020028201526001608051016020026101005101516001608051016020028201528060206040820352602060208203510260400160408203f35050505b635b18022981141561037957365990590160009052366004823760043560208201016103005260243560208201016103205260443560805250600060005b60805181121561033f57680100000000000000008160200261032051015182602002610300510151020582019150600181019050610306565b6000610320515114151561036657610320515168010000000000000000830205915061036b565b600091505b81610380526020610380f350505b63f4ca7dc481141561057157365990590160009052366004823760043560208201016103a05260243560208201016103c0526044356101a0526064356080525060206103c051035160026080510a806020026020015990590160009052818152602081019050905060005b60805181121561044d5760005b6080518112156104415768010000000000000000816020026103a0510151836020026103a051015102058160805184020160200284015101816080518402016020028401526001810190506103f1565b506001810190506103e4565b81905090508180602002602001599059016000905281815260208101905090506080516101a05102806020026020015990590160009052818152602081019050905060005b6101a05181121561051e5760005b6080518112156105125760005b608051811215610506576801000000000000000082608051830201602002870151826080518602016020026103c051015102058260805185020160200285015101826080518502016020028501526001810190506104ad565b506001810190506104a0565b50600181019050610492565b819050905060005b848112156105525780602002820151816020026103c05101510381602002840152600181019050610526565b508160206040820352602060208203510260400160408203f350505050505b63232b273481141561069d57365990590160009052366004823760043560208201016106205260243560208201016102805260443560208201016103c052606435610640526084356101a05260a435608052506000610280515112156106025760005b6080518112156106005780602002610280510151600003816020026102805101526001810190506105d4565b505b60005b6101a05181121561067f5760005b60805181121561067357680100000000000000006801000000000000000082602002610280510151610640510205826080518502016020026103c05101510205826020026106205101510182602002610620510152600181019050610613565b50600181019050610605565b6106205160206040820352602060208203510260400160408203f350505b50\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x36a560bd00000000000000000000000000000000000000000000000000000000000f69b5\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10000000000000\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b03f030056db7d467d778326658bac0d1b35d8f7\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSpecialTest/deploymentErrorFiller.json",
    "content": "{\n    \"deploymentError\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"68795C4AA09D6f4Ed3E5DeDDf8c2AD3049A601da\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"314159200\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"code\" : \"0x606060405236156100a35760e060020a60003504630a19b14a81146100ab578063278b8c0e146100e25780632e1a7d4d14610111578063338b5dea14610125578063577863941461015057806365e17c9d146101595780636c86888b1461016b57806393f0bb51146101da5780639e281a9814610207578063c281309e14610232578063d0e30db01461023b578063f7888aec14610287578063fb6e155f146102bb575b6103e6610002565b6103e660043560243560443560643560843560a43560c43560e4356101043561012435610144356000600034111561042b57610002565b6103e660043560243560443560643560843560a43560c43560e43561010435600060003411156108b457610002565b6103e66004356000341115610ab357610002565b6103e66004356024356000341180610146575081600160a060020a03166000145b15610b6157610002565b6103e860035481565b6103fa600254600160a060020a031681565b61041760043560243560443560643560843560a43560c43560e43561010435610124356101443561016435600160a060020a038c8116600090815260208181526040808320938516835292905290812054839010801590610c96575082610c938e8e8e8e8e8e8e8e8e8e6102df565b6103e660043560243560443560643560843560a43560c43560e435610104356000341115610ca457610002565b6103e66004356024356000341180610228575081600160a060020a03166000145b15610d3057610002565b6103e860045481565b6103e633600160a060020a03166000908152600080516020610f9f8339815191526020526040902054610ea390345b6000828201610f8f8482108015906102825750838210155b610660565b6103e8600435602435600160a060020a03828116600090815260208181526040808320938516835292905220545b92915050565b6103e860043560243560443560643560843560a43560c43560e43561010435610124355b600060006000600060028e8e8e8e8e8e6040518087600160a060020a0316606060020a02815260140186815260200185600160a060020a0316606060020a02815260140184815260200183815260200182815260200196505050505050506020604051808303816000866161da5a03f1156100025750506040805180516000828152602083810180865283905260ff8c1684860152606084018b9052608084018a90529351919650600160a060020a038c169360019360a0808201949293601f19840193928390039091019190866161da5a03f11561000257505060206040510351600160a060020a03161480156103d75750894311155b1515610f295760009350610f18565b005b60408051918252519081900360200190f35b60408051600160a060020a03929092168252519081900360200190f35b604080519115158252519081900360200190f35b60028c8c8c8c8c8c6040518087600160a060020a0316606060020a02815260140186815260200185600160a060020a0316606060020a02815260140184815260200183815260200182815260200196505050505050506020604051808303816000866161da5a03f1156100025750506040805180516000828152602083810180865283905260ff8a168486015260608401899052608084018890529351919450600160a060020a038a169360019360a0818101949293601f19840193928390039091019190866161da5a03f11561000257505060206040510351600160a060020a031614801561051b5750874311155b801561054057506000818152600160205260409020548b9061053d908461026a565b11155b80156105715750600160a060020a038c81166000908152602081815260408083203390941683529290522054829010155b80156105b457508a6105838a8461060a565b811561000257600160a060020a038c8116600090815260208181526040808320938c16835292905220549190049010155b151561062b57610002565b600160a060020a038d81166000908152602081815260408083203385168452909152808220939093559088168152205460035461066c9190670de0b6b3a7640000906106bc90869083035b6000828202610f8f8483148061028257508385838115610002570414610660565b600160a060020a038c811660009081526020818152604080832033909416835292905220546105bf90835b6000610f96838311155b801515610ab057610002565b600160a060020a038d81166000908152602081815260408083208b8516845290915280822093909355600254909116815220546003546106c89190670de0b6b3a7640000906106bc90869061060a565b8115610002570461026a565b600160a060020a038d8116600090815260208181526040808320600254851684528252808320949094558d83168252818152838220928a168252919091522054610717908c61076c8c8661060a565b600160a060020a038b81166000908152602081815260408083208b851684529091528082209390935533909116815220546004546107789190670de0b6b3a7640000908e906107cd906107e09084038f61060a565b81156100025704610656565b600160a060020a038b8116600090815260208181526040808320338516845290915280822093909355600254909116815220546004546107e69190670de0b6b3a7640000908e906107cd906107e0908f61060a565b811561000257048115610002570461026a565b8761060a565b600160a060020a038b81166000908152602081815260408083206002549094168352928152828220939093558381526001909252902054610827908361026a565b6000828152600160205260409020557f6effdda786735d5033bfad5f53e5131abcced9e52be6c507b62d639685fbed6d8c838c8e8d830281156100025760408051600160a060020a03968716815260208101959095529285168484015204606083015289831660808301523390921660a082015290519081900360c00190a1505050505050505050505050565b60028a8a8a8a8a8a6040518087600160a060020a0316606060020a02815260140186815260200185600160a060020a0316606060020a02815260140184815260200183815260200182815260200196505050505050506020604051808303816000866161da5a03f1156100025750506040805180516000828152602083810180865283905260ff8916848601526060840188905260808401879052935191945033600160a060020a03169360019360a0818101949293601f19840193928390039091019190866161da5a03f115610002575050604051601f190151600160a060020a0316146109a257610002565b6000818152600160209081526040918290208b90558151600160a060020a038d811682529181018c90528a821681840152606081018a90526080810189905260a081018890523390911660c082015260ff861660e08201526101008101859052610120810184905290517f1e0b760c386003e9cb9bcf4fcf3997886042859d9b6ed6320e804597fcdb28b0918190036101400190a150505050505050505050565b33600160a060020a03166000818152600080516020610f9f8339815191526020908152604080832054815193845291830193909352818301849052606082015290517ff341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb5679181900360800190a15b50565b33600160a060020a03166000908152600080516020610f9f833981519152602052604090205481901015610ae657610002565b33600160a060020a03166000908152600080516020610f9f8339815191526020526040902054610b169082610656565b33600160a060020a03166000818152600080516020610f9f8339815191526020526040808220939093559151909183919081818185876185025a03f1925050501515610a4357610002565b81600160a060020a03166323b872dd3330846040518460e060020a0281526004018084600160a060020a0316815260200183600160a060020a031681526020018281526020019350505050602060405180830381600087803b15610002576161da5a03f1156100025750506040515115159050610bdd57610002565b600160a060020a038281166000908152602081815260408083203390941683529290522054610c0c908261026a565b600160a060020a03838116600081815260208181526040808320339095168084529482529182902085905581519283528201929092528082018490526060810192909252517fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d79181900360800190a15050565b5060015b9c9b505050505050505050505050565b10155b1515610c7f57506000610c83565b60408051600160a060020a038b81168252602082018b905289811682840152606082018990526080820188905260a08201879052331660c082015260ff851660e08201526101008101849052610120810183905290517f91daf02b6d1454acd74c097a67e389a9d9371da3ff51366947022dc36748ce4d918190036101400190a1505050505050505050565b600160a060020a03828116600090815260208181526040808320339094168352929052205481901015610d6257610002565b600160a060020a038281166000908152602081815260408083203390941683529290522054610d919082610656565b600160a060020a03838116600081815260208181526040808320339095168084529482528083209590955584517fa9059cbb0000000000000000000000000000000000000000000000000000000081526004810194909452602484018690529351919363a9059cbb936044818101949293918390030190829087803b15610002576161da5a03f1156100025750506040515115159050610e3057610002565b600160a060020a03828116600081815260208181526040808320339095168084529482529182902054825193845290830193909352818101849052606082019290925290517ff341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb5679181900360800190a15050565b33600160a060020a03166000818152600080516020610f9f8339815191526020908152604080832085905580519283529082019290925234818301526060810192909252517fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d79181900360800190a1565b8093505b5050509a9950505050505050505050565b600083815260016020526040902054610f43908e90610656565b600160a060020a038d8116600090815260208181526040808320938d16835292905220549092508b90610f76908f61060a565b81156100025704905080821015610f1457819350610f18565b9392505050565b508082036102b556ad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x606060405260405160608061100383395060c06040525160805160a05160028054600160a060020a031916909317909255600355600455610fbf806100446000396000f3606060405236156100a35760e060020a60003504630a19b14a81146100ab578063278b8c0e146100e25780632e1a7d4d14610111578063338b5dea14610125578063577863941461015057806365e17c9d146101595780636c86888b1461016b57806393f0bb51146101da5780639e281a9814610207578063c281309e14610232578063d0e30db01461023b578063f7888aec14610287578063fb6e155f146102bb575b6103e6610002565b6103e660043560243560443560643560843560a43560c43560e4356101043561012435610144356000600034111561042b57610002565b6103e660043560243560443560643560843560a43560c43560e43561010435600060003411156108b457610002565b6103e66004356000341115610ab357610002565b6103e66004356024356000341180610146575081600160a060020a03166000145b15610b6157610002565b6103e860035481565b6103fa600254600160a060020a031681565b61041760043560243560443560643560843560a43560c43560e43561010435610124356101443561016435600160a060020a038c8116600090815260208181526040808320938516835292905290812054839010801590610c96575082610c938e8e8e8e8e8e8e8e8e8e6102df565b6103e660043560243560443560643560843560a43560c43560e435610104356000341115610ca457610002565b6103e66004356024356000341180610228575081600160a060020a03166000145b15610d3057610002565b6103e860045481565b6103e633600160a060020a03166000908152600080516020610f9f8339815191526020526040902054610ea390345b6000828201610f8f8482108015906102825750838210155b610660565b6103e8600435602435600160a060020a03828116600090815260208181526040808320938516835292905220545b92915050565b6103e860043560243560443560643560843560a43560c43560e43561010435610124355b600060006000600060028e8e8e8e8e8e6040518087600160a060020a0316606060020a02815260140186815260200185600160a060020a0316606060020a02815260140184815260200183815260200182815260200196505050505050506020604051808303816000866161da5a03f1156100025750506040805180516000828152602083810180865283905260ff8c1684860152606084018b9052608084018a90529351919650600160a060020a038c169360019360a0808201949293601f19840193928390039091019190866161da5a03f11561000257505060206040510351600160a060020a03161480156103d75750894311155b1515610f295760009350610f18565b005b60408051918252519081900360200190f35b60408051600160a060020a03929092168252519081900360200190f35b604080519115158252519081900360200190f35b60028c8c8c8c8c8c6040518087600160a060020a0316606060020a02815260140186815260200185600160a060020a0316606060020a02815260140184815260200183815260200182815260200196505050505050506020604051808303816000866161da5a03f1156100025750506040805180516000828152602083810180865283905260ff8a168486015260608401899052608084018890529351919450600160a060020a038a169360019360a0818101949293601f19840193928390039091019190866161da5a03f11561000257505060206040510351600160a060020a031614801561051b5750874311155b801561054057506000818152600160205260409020548b9061053d908461026a565b11155b80156105715750600160a060020a038c81166000908152602081815260408083203390941683529290522054829010155b80156105b457508a6105838a8461060a565b811561000257600160a060020a038c8116600090815260208181526040808320938c16835292905220549190049010155b151561062b57610002565b600160a060020a038d81166000908152602081815260408083203385168452909152808220939093559088168152205460035461066c9190670de0b6b3a7640000906106bc90869083035b6000828202610f8f8483148061028257508385838115610002570414610660565b600160a060020a038c811660009081526020818152604080832033909416835292905220546105bf90835b6000610f96838311155b801515610ab057610002565b600160a060020a038d81166000908152602081815260408083208b8516845290915280822093909355600254909116815220546003546106c89190670de0b6b3a7640000906106bc90869061060a565b8115610002570461026a565b600160a060020a038d8116600090815260208181526040808320600254851684528252808320949094558d83168252818152838220928a168252919091522054610717908c61076c8c8661060a565b600160a060020a038b81166000908152602081815260408083208b851684529091528082209390935533909116815220546004546107789190670de0b6b3a7640000908e906107cd906107e09084038f61060a565b81156100025704610656565b600160a060020a038b8116600090815260208181526040808320338516845290915280822093909355600254909116815220546004546107e69190670de0b6b3a7640000908e906107cd906107e0908f61060a565b811561000257048115610002570461026a565b8761060a565b600160a060020a038b81166000908152602081815260408083206002549094168352928152828220939093558381526001909252902054610827908361026a565b6000828152600160205260409020557f6effdda786735d5033bfad5f53e5131abcced9e52be6c507b62d639685fbed6d8c838c8e8d830281156100025760408051600160a060020a03968716815260208101959095529285168484015204606083015289831660808301523390921660a082015290519081900360c00190a1505050505050505050505050565b60028a8a8a8a8a8a6040518087600160a060020a0316606060020a02815260140186815260200185600160a060020a0316606060020a02815260140184815260200183815260200182815260200196505050505050506020604051808303816000866161da5a03f1156100025750506040805180516000828152602083810180865283905260ff8916848601526060840188905260808401879052935191945033600160a060020a03169360019360a0818101949293601f19840193928390039091019190866161da5a03f115610002575050604051601f190151600160a060020a0316146109a257610002565b6000818152600160209081526040918290208b90558151600160a060020a038d811682529181018c90528a821681840152606081018a90526080810189905260a081018890523390911660c082015260ff861660e08201526101008101859052610120810184905290517f1e0b760c386003e9cb9bcf4fcf3997886042859d9b6ed6320e804597fcdb28b0918190036101400190a150505050505050505050565b33600160a060020a03166000818152600080516020610f9f8339815191526020908152604080832054815193845291830193909352818301849052606082015290517ff341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb5679181900360800190a15b50565b33600160a060020a03166000908152600080516020610f9f833981519152602052604090205481901015610ae657610002565b33600160a060020a03166000908152600080516020610f9f8339815191526020526040902054610b169082610656565b33600160a060020a03166000818152600080516020610f9f8339815191526020526040808220939093559151909183919081818185876185025a03f1925050501515610a4357610002565b81600160a060020a03166323b872dd3330846040518460e060020a0281526004018084600160a060020a0316815260200183600160a060020a031681526020018281526020019350505050602060405180830381600087803b15610002576161da5a03f1156100025750506040515115159050610bdd57610002565b600160a060020a038281166000908152602081815260408083203390941683529290522054610c0c908261026a565b600160a060020a03838116600081815260208181526040808320339095168084529482529182902085905581519283528201929092528082018490526060810192909252517fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d79181900360800190a15050565b5060015b9c9b505050505050505050505050565b10155b1515610c7f57506000610c83565b60408051600160a060020a038b81168252602082018b905289811682840152606082018990526080820188905260a08201879052331660c082015260ff851660e08201526101008101849052610120810183905290517f91daf02b6d1454acd74c097a67e389a9d9371da3ff51366947022dc36748ce4d918190036101400190a1505050505050505050565b600160a060020a03828116600090815260208181526040808320339094168352929052205481901015610d6257610002565b600160a060020a038281166000908152602081815260408083203390941683529290522054610d919082610656565b600160a060020a03838116600081815260208181526040808320339095168084529482528083209590955584517fa9059cbb0000000000000000000000000000000000000000000000000000000081526004810194909452602484018690529351919363a9059cbb936044818101949293918390030190829087803b15610002576161da5a03f1156100025750506040515115159050610e3057610002565b600160a060020a03828116600081815260208181526040808320339095168084529482529182902054825193845290830193909352818101849052606082019290925290517ff341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb5679181900360800190a15050565b33600160a060020a03166000818152600080516020610f9f8339815191526020908152604080832085905580519283529082019290925234818301526060810192909252517fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d79181900360800190a1565b8093505b5050509a9950505050505050505050565b600083815260016020526040902054610f43908e90610656565b600160a060020a038d8116600090815260208181526040808320938d16835292905220549092508b90610f76908f61060a565b81156100025704905080821015610f1457819350610f18565b9392505050565b508082036102b556ad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb50000000000000000000000001ed014aec47fae44c9e55bac7662c0b78ae617980000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000aa87bee538000\"\n            ],\n            \"gasLimit\" : [\n                \"5000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSpecialTest/eoaEmptyParisFiller.yml",
    "content": "# When an externally owned account empties itself by sending all its wei to a contract, what happens?\n# Based on https://github.com/ethereumjs/ethereumjs-monorepo/pull/2383\n\neoaEmptyParis:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x020000'\n    currentGasLimit: '89128960'\n    currentBaseFee: '10'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n\n  pre:\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: 1000000000\n      code: ''\n      nonce: 0\n      storage: {}\n\n\n    # EOA with only a balance\n    000000000000000000000000000000000000BAD1:\n      balance: 1\n      code: 0x\n      nonce: 0\n      storage: {}\n\n\n    # EOA with only a nonce\n    000000000000000000000000000000000000BAD2:\n      balance: 0\n      code: 0x\n      nonce: 1\n      storage: {}\n\n\n    # EOA with balance and nonce\n    000000000000000000000000000000000000BAD3:\n      balance: 1\n      code: 0x\n      nonce: 1\n      storage: {}\n\n    # EOA with storage (shouldn't happen)\n    000000000000000000000000000000000000BAD4:\n      balance: 10\n      code: 0x\n      nonce: 0\n      storage:\n        0xDEAD: 0xBEEF\n\n\n    # A suicidal contract that sends its value to the EOA\n    000000000000000000000000000000000000DEAD:\n      balance: 10000\n      code: |\n        :yul berlin\n        {\n           selfdestruct(origin())\n        }\n      nonce: 1\n      storage: {}\n\n\n    000000000000000000000000000000000000C0DE:\n      balance: 0\n      code: |\n        :yul berlin\n        {\n           let eoa := origin()   // external owner account\n           sstore(0, eoa)\n           sstore(0x31, balance(eoa))   // balance at this point, where it is assumed we used gasLimit gas\n           sstore(0x3B, extcodesize(eoa))\n           sstore(0x3F, extcodehash(eoa))\n           sstore(0x013F, extcodehash(add(eoa, 0x1)))\n           sstore(0xBAD1, extcodehash(0xBAD1))\n           sstore(0xBAD2, extcodehash(0xBAD2))\n           sstore(0xBAD3, extcodehash(0xBAD3))\n           sstore(0xBAD4, extcodehash(0xBAD4))\n           sstore(0xBAD5, extcodehash(0xBAD5))\n\n           // The gas cost of calling the EOA (it should be warm)\n           let gas0 := gas()\n           pop(call(gas(), eoa, calldataload(4), 0, 0, 0, 0))\n           sstore(0xF1, sub(gas0, gas()))\n\n           // Gas cost of selfdestruct going to the EOA (should also be warm)\n           gas0 := gas()\n           pop(call(gas(), 0xDEAD, 0, 0, 0, 0, 0))\n           sstore(0xFF, sub(gas0, gas()))           \n        }\n      nonce: 1\n      storage: {}\n\n  transaction:\n    data: \n      # First parameter - value to send when calling our caller\n      - :abi f(uint) 0\n      - :abi f(uint) 1\n    gasLimit:\n      - 10000000   # gasLimit*gasPrice = EOA balance\n      -  9999999   # Lower gas limit, should only affect BALANCE\n    gasPrice: 100\n    nonce: 0\n    secretKey: 45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\n    to: 0x000000000000000000000000000000000000C0DE\n    value:\n    - 0\n    - 100\n\n  expect:\n    - indexes:\n       data: !!int 0\n       gas: !!int 0      # gasLimit*gasPrice = EOA balance\n       value: !!int 0\n      network:\n        - '>=Cancun'\n      result:\n       a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 1\n\n       000000000000000000000000000000000000C0DE:\n          storage: \n            0: 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b   # EOA account\n            0x31: 0    # Balance (zero)\n            0x3B: 0    # EXTCODESIZE\n            0x3F: 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 # EXTCODEHASH of active EOA\n            0x13F: 0                                                                 # EXTCODEHASH of empty addr\n            0xF1: 118  # CALL to a warm address (100) + misc. costs\n            0xFF: 7626 # CALL to an address that then SELFDESTRUCTS sending the EOA its balance + misc. costs\n\n            # EXTHASHCODE for various nearly empty EOAs \n            0xBAD1: 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 # Balance only\n            0xBAD2: 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 # Nonce only\n            0xBAD3: 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 # Balance and nonce\n            0xBAD4: 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 # Storage only, which can't happen in an EOA\n\n\n    - indexes:\n       data: !!int 1     # Send some value\n       gas: !!int 0      # gasLimit*gasPrice = EOA balance\n       value: !!int 0\n      network:\n        - '>=Cancun'\n      result:\n       a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 1\n\n       000000000000000000000000000000000000C0DE:\n          storage: \n            0: 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b   # EOA account\n            0x31: 0    # Balance (zero)\n            0x3B: 0    # EXTCODESIZE\n            0x3F: 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 # EXTCODEHASH of active EOA\n            0x13F: 0                                                                 # EXTCODEHASH of empty addr\n            0xF1: 6818  # Call with a value costs 6700 more + misc. costs\n            0xFF: 7626 # CALL to an address that then SELFDESTRUCTS sending the EOA its balance + misc. costs\n\n            # EXTHASHCODE for various nearly empty EOAs \n            0xBAD1: 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 # Balance only\n            0xBAD2: 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 # Nonce only\n            0xBAD3: 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 # Balance and nonce\n            0xBAD4: 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 # Storage only, which can't happen in an EOA        \n\n\n    - indexes:\n       data: !!int -1\n       gas: !!int 0      # gasLimit*gasPrice = EOA balance\n       value: !!int 1    # But there is also a value, so this fails\n      network:\n        - '>=Cancun'\n      result: {}\n      expectException: \n        '>=Cancun': TransactionException.INSUFFICIENT_ACCOUNT_FUNDS\n\n\n\n    - indexes:\n       data: !!int 0\n       gas: !!int 1      # gasLimit*gasPrice < EOA balance\n       value: !!int 0\n      network:\n        - '>=Cancun'\n      result:\n       a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 1\n\n       000000000000000000000000000000000000C0DE:\n          storage: \n            0: 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b   # EOA account\n            0x31: 100  # Balance (100 wei at this point)\n            0x3B: 0    # EXTCODESIZE\n            0x3F: 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 # EXTCODEHASH of active EOA\n            0x13F: 0                                                                 # EXTCODEHASH of empty addr\n            0xF1: 118  # CALL to a warm address (100) + misc. costs\n            0xFF: 7626 # CALL to an address that then SELFDESTRUCTS sending the EOA its balance + misc. costs\n\n            # EXTHASHCODE for various nearly empty EOAs \n            0xBAD1: 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 # Balance only\n            0xBAD2: 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 # Nonce only\n            0xBAD3: 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 # Balance and nonce\n            0xBAD4: 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 # Storage only, which can't happen in an EOA\n\n\n    - indexes:\n       data: !!int 1     # Have value, which increases the cost of call\n       gas: !!int 1      # gasLimit*gasPrice < EOA balance\n       value: !!int 0\n      network:\n        - '>=Cancun'\n      result:\n       a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 1\n\n       000000000000000000000000000000000000C0DE:\n          storage: \n            0: 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b   # EOA account\n            0x31: 100  # Balance (100 wei at this point)\n            0x3B: 0    # EXTCODESIZE\n            0x3F: 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 # EXTCODEHASH of active EOA\n            0x13F: 0                                                                 # EXTCODEHASH of empty addr\n            0xF1: 6818  # CALL to a warm address (100) + sending a value + misc. costs\n            0xFF: 7626 # CALL to an address that then SELFDESTRUCTS sending the EOA its balance + misc. costs\n\n            # EXTHASHCODE for various nearly empty EOAs \n            0xBAD1: 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 # Balance only\n            0xBAD2: 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 # Nonce only\n            0xBAD3: 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 # Balance and nonce\n            0xBAD4: 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 # Storage only, which can't happen in an EOA\n        \n\n    - indexes:\n       data: !!int 0\n       gas: !!int 1      # gasLimit*gasPrice + value = EOA balance\n       value: !!int 1\n      network:\n        - '>=Cancun'\n      result:\n       a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 1\n\n       000000000000000000000000000000000000C0DE:\n          storage: \n            0: 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b   # EOA account\n            0x31: 0    # Balance (zero)\n            0x3B: 0    # EXTCODESIZE\n            0x3F: 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 # EXTCODEHASH of active EOA\n            0x13F: 0                                                                 # EXTCODEHASH of empty addr\n            0xF1: 118  # CALL to a warm address (100) + misc. costs\n            0xFF: 7626 # CALL to an address that then SELFDESTRUCTS sending the EOA its balance + misc. costs\n\n            # EXTHASHCODE for various nearly empty EOAs \n            0xBAD1: 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 # Balance only\n            0xBAD2: 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 # Nonce only\n            0xBAD3: 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 # Balance and nonce\n            0xBAD4: 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 # Storage only, which can't happen in an EOA\n\n\n    - indexes:\n       data: !!int 1     # Send value\n       gas: !!int 1      # gasLimit*gasPrice + value = EOA balance\n       value: !!int 1\n      network:\n        - '>=Cancun'\n      result:\n       a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n          nonce: 1\n\n       000000000000000000000000000000000000C0DE:\n          storage: \n            0: 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b   # EOA account\n            0x31: 0    # Balance (zero)\n            0x3B: 0    # EXTCODESIZE\n            0x3F: 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 # EXTCODEHASH of active EOA\n            0x13F: 0                                                                 # EXTCODEHASH of empty addr\n            0xF1: 6818  # CALL to a warm address (100) + cost of sending value + misc. costs\n            0xFF: 7626 # CALL to an address that then SELFDESTRUCTS sending the EOA its balance + misc. costs\n\n            # EXTHASHCODE for various nearly empty EOAs \n            0xBAD1: 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 # Balance only\n            0xBAD2: 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 # Nonce only\n            0xBAD3: 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 # Balance and nonce\n            0xBAD4: 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 # Storage only, which can't happen in an EOA\n\n"
  },
  {
    "path": "tests/static/state_tests/stSpecialTest/failed_tx_xcf416c53_ParisFiller.json",
    "content": "{\n    \"failed_tx_xcf416c53_Paris\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"68795C4AA09D6f4Ed3E5DeDDf8c2AD3049A601da\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"200000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"0x02\"\n                    },\n\t\t\t\t\t\"<eoa:0x0000000000000000000000000000000000000003>\" : {\n\t\t\t\t\t\t\"balance\" : \"10\"\n\t\t\t\t\t}\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0e879ae28cdddeb31a405a9db354505a5560b0bd>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7c0100000000000000000000000000000000000000000000000000000000600035046397dd3054811415610065576004356040526024356060526040516060515b808212156100625760006000600060006000866000f150600182019150610040565b50505b50\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"1\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0x0000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x97dd3054000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002bc\"\n            ],\n            \"gasLimit\" : [\n                \"16300000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"1\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0e879ae28cdddeb31a405a9db354505a5560b0bd>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSpecialTest/gasPrice0Filler.json",
    "content": "{\n    \"gasPrice0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n            \t\t\t    \"0x00\" : \"0x02\"\n                    \t}\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x6001600101600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0xa0340\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSpecialTest/makeMoneyFiller.json",
    "content": "{\n    \"makeMoney\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"999999999999999987\"\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"balance\" : \"999254550\"\n                    },\n                    \"<contract:0xaaaaaaaaace5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"balance\" : \"1000000000000000023\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0x601080600c6000396000f20060003554156009570060203560003555) (CALL 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec <contract:0xaaaaaaaaace5edbc8e2a8697c15331677e6ebf0b> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xaaaaaaaaace5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x600160015532600255\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"228500\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSpecialTest/push32withoutByteFiller.json",
    "content": "{\n    \"push32withoutByte\" : {\n\t\"_info\" : {\n\t    \"comment\" : \"push expect 32 bytes. but we have only 10 byte\"\n\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"68795C4AA09D6f4Ed3E5DeDDf8c2AD3049A601da\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"3141592\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"//balance\" : \"999999999999978997\",\n                        \"nonce\" : \"2\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0dc02922f33e45537411b9f92a1dcc9750ba9932>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x7f11223344556677889910\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"1\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"500000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"1\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0dc02922f33e45537411b9f92a1dcc9750ba9932>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSpecialTest/selfdestructEIP2929Filler.json",
    "content": "{\n    \"selfdestructEIP2929\": {\n        \"_info\" : {\n            \"comment\" : \"Martin: @tkstanczak requested a state-test regarding selfdestructs in relation to EIP-2929. I made one, which tests different variants of hot/cold accounts, and even precompile beneficiaries. https://github.com/holiman/goevmlab/blob/selfdestruct_2929/examples/selfdestruct_2929/main.go#L94\"\n        },\n        \"env\": {\n            \"currentCoinbase\": \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\": \"0x20000\",\n            \"currentGasLimit\": \"0x26e1f476fe1e22\",\n            \"currentNumber\": \"0x1\",\n            \"currentTimestamp\": \"0x3e8\"\n        },\n        \"expect\" : [\n            {\n               \"indexes\" : {\n                   \"data\" : -1,\n                   \"gas\" : -1,\n                   \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x000000000000000000000000000000000000c411>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\": {\n            \"<eoa:0x00000000000000000000000000000000000000aa>\": {\n                \"code\": \"0x\",\n                \"storage\": {},\n                \"balance\": \"0x0\",\n                \"nonce\": \"0x1\"\n            },\n            \"<eoa:0x00000000000000000000000000000000000000cc>\": {\n                \"code\": \"0x\",\n                \"storage\": {},\n                \"balance\": \"0x0\",\n                \"nonce\": \"0x1\"\n            },\n            \"<contract:target:0x000000000000000000000000000000000000c411>\": {\n                \"code\": \":raw 0x6000600060006000600060cc6000f1506000600060006000600060dd6000f1506000600060006000600060036000f15060aa6000526000600060206000600061dead5af15060aa6000526000600060206000600061dead5af15060bb6000526000600060206000600061dead5af15060bb6000526000600060206000600061dead5af15060cc6000526000600060206000600061dead5af15060cc6000526000600060206000600061dead5af15060dd6000526000600060206000600061dead5af15060dd6000526000600060206000600061dead5af15060016000526000600060206000600061dead5af15060016000526000600060206000600061dead5af15060026000526000600060206000600061dead5af15060026000526000600060206000600061dead5af15060036000526000600060206000600061dead5af1506001600155\",\n                \"storage\": {},\n                \"balance\": \"0x1\",\n                \"nonce\": \"0x1\"\n            },\n            \"<contract:0x000000000000000000000000000000000000dead>\": {\n                \"code\": \":raw 0x60003574ffffffffffffffffffffffffffffffffffffffffff16ff\",\n                \"storage\": {},\n                \"balance\": \"0x1\",\n                \"nonce\": \"0x1\"\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\": {\n                \"code\": \"0x\",\n                \"storage\": {},\n                \"balance\": \"0xde0b6b3a7640000\",\n                \"nonce\": \"0x0\"\n            }\n        },\n        \"transaction\": {\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x0\",\n            \"to\": \"<contract:target:0x000000000000000000000000000000000000c411>\",\n            \"data\": [\n                \"\"\n            ],\n            \"gasLimit\": [\n                \"0x7a1200\"\n            ],\n            \"value\": [\n                \"0x0\"\n            ],\n            \"secretKey\": \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSpecialTest/sha3_dejaFiller.json",
    "content": "{\n    \"sha3_deja\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x6042601f53600064ffffffffff2080\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSpecialTest/tx_e1c174e2Filler.json",
    "content": "{\n    \"tx_e1c174e2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"68795C4AA09D6f4Ed3E5DeDDf8c2AD3049A601da\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"3141592\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x0dc02922f33e45537411b9f92a1dcc9750ba9932>\" : {\n                        \"storage\" : {\n                            \"0x160000000000000000000000000000000000000000\" : \"0x01\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"0x19\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x0dc02922f33e45537411b9f92a1dcc9750ba9932>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \":raw 0x600061155f537c0100000000000000000000000000000000000000000000000000000000600035046355f10aaf8114156100655760043560405260003413156100525760006000600060003433611388f1505b600c604051026007015460605260206060f35b6369e0998b81141561053f5760043560805260243560a052604435604052600060805113151561009a57600260c052602060c0f35b600060a0511315156100b157600360e052602060e0f35b60006040511315156100ca576004610100526020610100f35b670de0b6b3a7640000600c6040510260030154600a0a600c60405102600401540260a05160805102050261012052600c604051026005015434121561012f5760003413156101225760006000600060003433611388f1505b600b610140526020610140f35b610120513412156101605760003413156101535760006000600060003433611388f1505b6014610160526020610160f35b6101205134131561018057600060006000600061012051340333611388f1505b60e0599059016000905260068152600160208201526040516040820152608051606082015260a05160808201523360a08201524360c082015260208101905061018052610180516020602082035102812090506101c05260086101c05102740e0000000000000000000000000000000000000000015415156104be576101c05160086101c05102740e00000000000000000000000000000000000000000155600160086101c05102740e0000000000000000000000000000000000000001015560405160086101c05102740e0000000000000000000000000000000000000002015560805160086101c05102740e0000000000000000000000000000000000000003015560a05160086101c05102740e000000000000000000000000000000000000000401553360086101c05102740e000000000000000000000000000000000000000501554360086101c05102740e0000000000000000000000000000000000000006015560086101c05102740e00000000000000000000000000000000000000000160086101c05102740e00000000000000000000000000000000000000070155600c60405102600b0154610200526101c05160a060a05990590160009052600081526040518160200152600c81604001526102005181606001526001816080015280905020556102005160a060a05990590160009052600081526040518160200152600c81604001526101c05181606001526002816080015280905020556101c05160a060a05990590160009052600081526040518160200152600c81604001526101c05181606001526000816080015280905020556101c051600c60405102600b01556001600c60405102600a015401600c60405102600a01556002600114156104b95760805160806080599059016000905260048152338160200152604051816040015260008160600152809050205403608060805990590160009052600481523381602001526040518160400152600081606001528090502055608051608060805990590160009052600481523381602001526040518160400152600181606001528090502054016080608059905901600090526004815233816020015260405181604001526001816060015280905020555b6104cb565b6015610300526020610300f35b601c60c05990590160009052013381526001602082015260a051604082015260805160608201526101c05160808201526040517f9463d1cc4aa2db0dc624c996b1846f028d43c48cfc8b9f427f13336e4a73226460a083a2506101c051610340526020610340f36000610360526020610360f35b630909f073811415610a0c5760043560805260243560a0526044356040526000608051131515610576576002610380526020610380f35b600060a05113151561058f5760036103a05260206103a0f35b60006040511315156105a85760046103c05260206103c0f35b670de0b6b3a7640000600c6040510260030154600a0a600c60405102600401540260a05160805102050261012052600c60405102600501546101205112156106105760003413156106035760006000600060003433611388f1505b600b6103e05260206103e0f35b60806080599059016000905260048152338160200152604051816040015260008160600152809050205461040052608051610400511215156109ff5760e0599059016000905260068152600260208201526040516040820152608051606082015260a05160808201523360a08201524360c082015260208101905061018052610180516020602082035102812090506101c05260086101c05102740e00000000000000000000000000000000000000000154151561098a576101c05160086101c05102740e00000000000000000000000000000000000000000155600260086101c05102740e0000000000000000000000000000000000000001015560405160086101c05102740e0000000000000000000000000000000000000002015560805160086101c05102740e0000000000000000000000000000000000000003015560a05160086101c05102740e000000000000000000000000000000000000000401553360086101c05102740e000000000000000000000000000000000000000501554360086101c05102740e0000000000000000000000000000000000000006015560086101c05102740e00000000000000000000000000000000000000000160086101c05102740e00000000000000000000000000000000000000070155600c60405102600b0154610200526101c05160a060a05990590160009052600081526040518160200152600c81604001526102005181606001526001816080015280905020556102005160a060a05990590160009052600081526040518160200152600c81604001526101c05181606001526002816080015280905020556101c05160a060a05990590160009052600081526040518160200152600c81604001526101c05181606001526000816080015280905020556101c051600c60405102600b01556001600c60405102600a015401600c60405102600a01556002600214156109855760805160806080599059016000905260048152338160200152604051816040015260008160600152809050205403608060805990590160009052600481523381602001526040518160400152600081606001528090502055608051608060805990590160009052600481523381602001526040518160400152600181606001528090502054016080608059905901600090526004815233816020015260405181604001526001816060015280905020555b610997565b6015610560526020610560f35b601c60c05990590160009052013381526002602082015260a051604082015260805160608201526101c05160808201526040517f9463d1cc4aa2db0dc624c996b1846f028d43c48cfc8b9f427f13336e4a73226460a083a2506101c051610580526020610580f35b60006105a05260206105a0f35b639998bd008114156117335736599059016000905236600482376004356105e0526024356020820101610600525034610620526000610640525b602061060051035161064051121561170a57610640516020026106005101516101c05260086101c05102740e0000000000000000000000000000000000000006015443131515610a9d576016610660526020610660f35b60086101c05102740e00000000000000000000000000000000000000020154604052600c604051026002015461068052600c60405102600301546106a052600c60405102600401546106c052600c60405102600501546106e05260086101c05102740e000000000000000000000000000000000000000101546107005260086101c05102740e0000000000000000000000000000000000000003015460805260086101c05102740e0000000000000000000000000000000000000004015460a05260086101c05102740e0000000000000000000000000000000000000005015461072052600161070051141561110e576080608059905901600090526004815233816020015260405181604001526000816060015280905020546104005260006104005113156110fc57608051610400516105e05180821215610be05781610be2565b805b9050905080821215610bf45781610bf6565b805b90509050610760526106a051600a0a6106c05102670de0b6b3a764000060a05161076051020205610120526106e051610120511215610c5b576000610620511315610c4e5760006000600060006106205133611388f1505b600c610800526020610800f35b608051610760511215610cb0576107605160086101c05102740e000000000000000000000000000000000000000301540360086101c05102740e00000000000000000000000000000000000000030155610fd4565b600060086101c05102740e00000000000000000000000000000000000000000155600060086101c05102740e00000000000000000000000000000000000000010155600060086101c05102740e00000000000000000000000000000000000000020155600060086101c05102740e00000000000000000000000000000000000000030155600060086101c05102740e00000000000000000000000000000000000000040155600060086101c05102740e00000000000000000000000000000000000000050155600060086101c05102740e00000000000000000000000000000000000000060155600060086101c05102740e0000000000000000000000000000000000000007015560a060a05990590160009052600081526040518160200152600c81604001526101c05181606001526002816080015280905020546108205260a060a05990590160009052600081526040518160200152600c81604001526101c0518160600152600181608001528090502054610860526108205115610e3a5761086051610e3d565b60005b15610eb7576108605160a060a05990590160009052600081526040518160200152600c81604001526108205181606001526001816080015280905020556108205160a060a05990590160009052600081526040518160200152600c8160400152610860518160600152600281608001528090502055610f06565b6108205115610f055761082051600c60405102600b0155600060a060a05990590160009052600081526040518160200152600c81604001526108205181606001526001816080015280905020555b5b6108605115610f4657600060a060a05990590160009052600081526040518160200152600c81604001526101c05181606001526001816080015280905020555b6108205115610f8657600060a060a05990590160009052600081526040518160200152600c81604001526101c05181606001526002816080015280905020555b600060a060a05990590160009052600081526040518160200152600c81604001526101c05181606001526000816080015280905020556001600c60405102600a015403600c60405102600a01555b6107605160806080599059016000905260048152338160200152604051816040015260008160600152809050205403608060805990590160009052600481523381602001526040518160400152600081606001528090502055610760516080608059905901600090526004815261072051816020015260405181604001526000816060015280905020540160806080599059016000905260048152610720518160200152604051816040015260008160600152809050205560006000600060006101205133611388f150601c60a05990590160009052016002815260a05160208201526107605160408201526101c051606082015261072051336040517f0f9fe89f83633cc2eca9b17e1f77422f037cb026eaca4e6a5337fa1595f50a81608085a450611109565b600a6109e05260206109e0f35b611680565b600261070051141561167f576000610620511315611671576106e0516106205112156111605760006106205113156111535760006000600060006106205133611388f1505b600c610a00526020610a00f35b6106a051600a0a6106c05102670de0b6b3a764000060a051608051020205610a205261062051610a205180821215611198578161119a565b805b9050905061012052610a205161012051121561121b57670de0b6b3a764000060a0516106a051600a0a6106c0510261012051020505610760526107605160086101c05102740e000000000000000000000000000000000000000301540360086101c05102740e00000000000000000000000000000000000000030155611546565b60805161076052600060086101c05102740e00000000000000000000000000000000000000000155600060086101c05102740e00000000000000000000000000000000000000010155600060086101c05102740e00000000000000000000000000000000000000020155600060086101c05102740e00000000000000000000000000000000000000030155600060086101c05102740e00000000000000000000000000000000000000040155600060086101c05102740e00000000000000000000000000000000000000050155600060086101c05102740e00000000000000000000000000000000000000060155600060086101c05102740e0000000000000000000000000000000000000007015560a060a05990590160009052600081526040518160200152600c81604001526101c05181606001526002816080015280905020546108205260a060a05990590160009052600081526040518160200152600c81604001526101c05181606001526001816080015280905020546108605261082051156113ac57610860516113af565b60005b15611429576108605160a060a05990590160009052600081526040518160200152600c81604001526108205181606001526001816080015280905020556108205160a060a05990590160009052600081526040518160200152600c8160400152610860518160600152600281608001528090502055611478565b61082051156114775761082051600c60405102600b0155600060a060a05990590160009052600081526040518160200152600c81604001526108205181606001526001816080015280905020555b5b61086051156114b857600060a060a05990590160009052600081526040518160200152600c81604001526101c05181606001526001816080015280905020555b61082051156114f857600060a060a05990590160009052600081526040518160200152600c81604001526101c05181606001526002816080015280905020555b600060a060a05990590160009052600081526040518160200152600c81604001526101c05181606001526000816080015280905020556001600c60405102600a015403600c60405102600a01555b6107605160806080599059016000905260048152610720518160200152604051816040015260018160600152809050205403608060805990590160009052600481526107205181602001526040518160400152600181606001528090502055610760516080608059905901600090526004815233816020015260405181604001526000816060015280905020540160806080599059016000905260048152338160200152604051816040015260008160600152809050205560006000600060006101205161072051611388f150601c60a05990590160009052016001815260a05160208201526107605160408201526101c051606082015261072051336040517f0f9fe89f83633cc2eca9b17e1f77422f037cb026eaca4e6a5337fa1595f50a81608085a45061167e565b600a610c00526020610c00f35b5b5b60a051600c6040510260070155601c60a059905901600090520161070051815260a05160208201526107605160408201524260608201526040517f50944f09ce56f9f0e2cb67683c9b451049c39f60452b850b169148f3daa51ed6608083a250610760516105e051036105e052610120516106205103610620526001610640510161064052610a46565b61062051156117265760006000600060006106205133611388f1505b6001610c20526020610c20f35b6334a501c781141561185b57600435608052602435604052601c60845990590160009052016327f08b00601c82035233600482015230602482015260805160448201526020610c406064836000600c6040510260020154602d5a03f150610c405190501561184e57608060805990590160009052600481523381602001526040518160400152600081606001528090502054610400526080516104005101610c8052610c8051608060805990590160009052600481523381602001526040518160400152600081606001528090502055601c60405990590160009052016080518152336040517f301cd746dbb5e7f9ade2bcd9e8a849b968bfcc222de48d2086ba200184acc83d602084a350610c8051610cc0526020610cc0f35b6000610ce0526020610ce0f35b63e1ed3ad3811415611982576004356080526024356040526080608059905901600090526004815233816020015260405181604001526000816060015280905020546104005260805161040051121515611975576080516104005103608060805990590160009052600481523381602001526040518160400152600081606001528090502055601c60645990590160009052016386744558601c82035233600482015260805160248201526020610d606044836000600c6040510260020154602d5a03f150610d60519050610d4052601c60405990590160009052016080518152336040517ffa4460934f383b326d79dcd4f1e59a17ac8ee9a87312169933e7f68b85c1a8ce602084a350610d4051610d80526020610d80f35b6000610da0526020610da0f35b63327a22f1811415611f08576004356101c05260086101c05102740e000000000000000000000000000000000000000101546107005260086101c05102740e0000000000000000000000000000000000000003015460805260086101c05102740e0000000000000000000000000000000000000004015460a05260086101c05102740e000000000000000000000000000000000000000501546107205260086101c05102740e00000000000000000000000000000000000000020154604052600c604051026002015461068052600c60405102600301546106a052600c60405102600401546106c05261072051331415611efb57600060086101c05102740e00000000000000000000000000000000000000000155600060086101c05102740e00000000000000000000000000000000000000010155600060086101c05102740e00000000000000000000000000000000000000020155600060086101c05102740e00000000000000000000000000000000000000030155600060086101c05102740e00000000000000000000000000000000000000040155600060086101c05102740e00000000000000000000000000000000000000050155600060086101c05102740e00000000000000000000000000000000000000060155600060086101c05102740e0000000000000000000000000000000000000007015560a060a05990590160009052600081526040518160200152600c81604001526101c05181606001526002816080015280905020546108205260a060a05990590160009052600081526040518160200152600c81604001526101c0518160600152600181608001528090502054610860526108205115611c005761086051611c03565b60005b15611c7d576108605160a060a05990590160009052600081526040518160200152600c81604001526108205181606001526001816080015280905020556108205160a060a05990590160009052600081526040518160200152600c8160400152610860518160600152600281608001528090502055611ccc565b6108205115611ccb5761082051600c60405102600b0155600060a060a05990590160009052600081526040518160200152600c81604001526108205181606001526001816080015280905020555b5b6108605115611d0c57600060a060a05990590160009052600081526040518160200152600c81604001526101c05181606001526001816080015280905020555b6108205115611d4c57600060a060a05990590160009052600081526040518160200152600c81604001526101c05181606001526002816080015280905020555b600060a060a05990590160009052600081526040518160200152600c81604001526101c05181606001526000816080015280905020556001600c60405102600a015403600c60405102600a01556001610700511415611dde57670de0b6b3a76400006106a051600a0a6106c0510260a0516080510205026101205260006000600060006101205133611388f150611e9c565b6002610700511415611e9b5760805160806080599059016000905260048152338160200152604051816040015260018160600152809050205403608060805990590160009052600481523381602001526040518160400152600181606001528090502055608051608060805990590160009052600481523381602001526040518160400152600081606001528090502054016080608059905901600090526004815233816020015260405181604001526000816060015280905020555b5b601c60a059905901600090520133815260a051602082015260805160408201526101c05160608201526040517f0ac6333455d304288767a0f1039d666d16882d10b6ea83693d2556e4c8098001608083a2506001610f40526020610f40f35b6000610f60526020610f60f35b63d91e22f48114156122f057600435610f8052602435610680526044356106a0526064356106c0526084356106e05260a435610fa0526001741600000000000000000000000000000000000000005401610fc0526000610f8051131515611f7657601e610fe0526020610fe0f35b610f8051740d0000000000000000000000000000000000000000015415611fa457601f611000526020611000f35b600061068051131515611fbe576020611020526020611020f35b6000610fa0511215611fd7576021611040526020611040f35b60006106a0511215611ff0576022611060526020611060f35b60006106c0511215612009576023611080526020611080f35b60006106e05112156120225760246110a05260206110a0f35b6000601c606459905901600090520163c32d01a1601c82035233600482015230602482015260206110c0604483600061068051602d5a03f1506110c05190501415156120755760286110e05260206110e0f35b6001601c60645990590160009052016383b58638601c820352306004820152600060248201526020611100604483600061068051602d5a03f1506111005190501415156120c9576029611120526020611120f35b6000601c60445990590160009052016326690247601c8203523060048201526020611140602483600061068051602d5a03f15061114051905014151561211657602a611160526020611160f35b6000601c60645990590160009052016386744558601c820352336004820152600060248201526020611180604483600061068051602d5a03f15061118051905014151561216a57602b6111a05260206111a0f35b6000601c60845990590160009052016327f08b00601c8203523060048201523360248201526000604482015260206111c0606483600061068051602d5a03f1506111c05190501415156121c457602c6111e05260206111e0f35b610fc051600c610fc0510255610f8051600c610fc051026001015561068051600c610fc0510260020155610fa051600c610fc05102600601556106a051600c610fc05102600301556106c051600c610fc05102600401556106e051600c610fc05102600501556001600c610fc051026007015533600c610fc051026008015543600c610fc0510260090155610fc05161068051740c00000000000000000000000000000000000000000155610fc051610f8051740d00000000000000000000000000000000000000000155610fc0517416000000000000000000000000000000000000000055601c6040599059016000905201610fc05181527f1238fe6d44cf796960d61b74766b3a383110e472d849f5ca16ae50215bc05e58602082a1506001611200526020611200f35b634156966181141561232a576004356112205261122051740c00000000000000000000000000000000000000000154611240526020611240f35b63fcde9f7881141561236457600435610f8052610f8051740d00000000000000000000000000000000000000000154611260526020611260f35b636e5b4343811415612392577416000000000000000000000000000000000000000054611280526020611280f35b63fafa69c28114156124e657600435610fc0526101805990590160009052600b81526020810190506112a052600c610fc05102546112a05152600c610fc051026001015460206112a0510152600c610fc051026002015460406112a0510152600c610fc051026003015460606112a0510152600c610fc051026004015460806112a0510152600c610fc051026005015460a06112a0510152600c610fc051026007015460c06112a0510152600c610fc051026008015460e06112a0510152600c610fc05102600901546101006112a0510152600c610fc05102600a01546101206112a0510152600c610fc05102600601546101406112a05101526112a051156124b2576112a05160206040820352602060208203510260400160408203f3505b60405990590160009052600181526000602082015260208101905060206040820352602060208203510260400160408203f3505b639cfc153581141561262e57600435604052600c60405102600a015461134052600c60405102600b01546101c0526113405180602002602001599059016000905281815260208101905090506106005260006113a0525b611340516113a05112156125d45760a060a05990590160009052600081526040518160200152600c81604001526101c05181606001526000816080015280905020546113a05160200261060051015260a060a05990590160009052600081526040518160200152600c81604001526101c05181606001526002816080015280905020546101c05260016113a051016113a05261253d565b61060051156125fa576106005160206040820352602060208203510260400160408203f3505b60405990590160009052600181526000602082015260208101905060206040820352602060208203510260400160408203f3505b630f7181908114156127e957600435610fc052610120599059016000905260088152602081019050610180526008610fc05102740e0000000000000000000000000000000000000000015461018051526008610fc05102740e0000000000000000000000000000000000000001015460206101805101526008610fc05102740e0000000000000000000000000000000000000002015460406101805101526008610fc05102740e0000000000000000000000000000000000000003015460606101805101526008610fc05102740e0000000000000000000000000000000000000004015460806101805101526008610fc05102740e0000000000000000000000000000000000000005015460a06101805101526008610fc05102740e0000000000000000000000000000000000000006015460c06101805101526008610fc05102740e0000000000000000000000000000000000000007015460e061018051015261018051156127b5576101805160206040820352602060208203510260400160408203f3505b60405990590160009052600181526000602082015260208101905060206040820352602060208203510260400160408203f3505b631c9aa4b6811415612893576004356112205260243560405260605990590160009052600281526080608059905901600090526004815261122051816020015260405181604001526000816060015280905020546020820152608060805990590160009052600481526112205181602001526040518160400152600181606001528090502054604082015260208101905060206040820352602060208203510260400160408203f3505b50\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00000000000000000000000d0000000000000000000000000000000000505347\" : \"0x00\",\n                    \"0x0000000000000000000000160000000000000000000000000000000000000000\" : \"0x01\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"24\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0xd91e22f40000000000000000000000000000000000000000000000000000000000505347000000000000000000000000000000000000000000000000000000002450534700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000005f5e100000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000000000001\"\n            ],\n            \"gasLimit\" : [\n                \"500000\"\n            ],\n            \"gasPrice\" : \"0x0c416c1984\",\n            \"nonce\" : \"24\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x0dc02922f33e45537411b9f92a1dcc9750ba9932>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStackTests/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stStackTests/shallowStackFiller.json",
    "content": "{\n    \"shallowStack\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"shouldnotexist\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"42949672960000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n\t    \"//0 data\" : \"Data is corrupted. Number of elements pop'ed from the stack is < then pushed\",\n\t    \"//1 data\" : {\n\t\t\"0x6002600101600055\" : \"{[[0]](ADD 1 2)}\"\n\t    },\n            \"data\" : [\n                \":raw 0x600101600055\", \":raw 0x600102600055\", \":raw 0x600103600055\", \":raw 0x600104600055\", \":raw 0x600105600055\", \":raw 0x600106600055\", \":raw 0x600107600055\",\n\t\t\":raw 0x6002600108600055\", \":raw 0x6002600109600055\", \":raw 0x60010a600055\", \":raw 0x60010b600055\",\n\t\t\":raw 0x600110600055\", \":raw 0x600111600055\", \":raw 0x600112600055\", \":raw 0x600113600055\", \":raw 0x600114600055\", \":raw 0x15600055\", \":raw 0x600116600055\", \n\t\t\":raw 0x600117600055\", \":raw 0x600118600055\", \":raw 0x19600055\", \":raw 0x60011a600055\",\n\t\t\":raw 0x600120600055\", \n\t\t\":raw 0x31600055\", \":raw 0x35600055\", \":raw 0x6001600237600055\", \":raw 0x6001600239600055\", \":raw 0x3b600055\", \":raw 0x6001600260033c600055\",\n\t\t\":raw 0x40600055\",\n\t\t\":raw 0x50600055\", \":raw 0x51600055\", \":raw 0x600152600055\", \":raw 0x600153600055\", \":raw 0x54600055\", \":raw 0x600155600055\", \":raw 0x56600055\", \":raw 0x600157600055\",\n\t\t\":raw 0x80600055\", \":raw 0x600181600055\", \":raw 0x6002600182600055\", \":raw 0x60036002600183600055\", \":raw 0x600460036002600184600055\", \n\t\t\":raw 0x6005600460036002600185600055\", \":raw 0x60066005600460036002600186600055\", \":raw 0x600760066005600460036002600187600055\",\n\t\t\":raw 0x6008600760066005600460036002600188600055\", \":raw 0x60096008600760066005600460036002600189600055\",\n\t\t\":raw 0x60106009600860076006600560046003600260018a600055\", \":raw 0x601160106009600860076006600560046003600260018b600055\",\n\t\t\":raw 0x6012601160106009600860076006600560046003600260018c600055\", \":raw 0x60136012601160106009600860076006600560046003600260018d600055\",\n\t\t\":raw 0x601460136012601160106009600860076006600560046003600260018e600055\", \":raw 0x60136012601160106009600860076006600560046003600260018f600055\",\n\t\t\":raw 0x600190600055\", \":raw 0x6002600191600055\", \":raw 0x60036002600192600055\", \":raw 0x600460036002600193600055\", \":raw 0x6005600460036002600194600055\",\n\t\t\":raw 0x60066005600460036002600195600055\", \":raw 0x600760066005600460036002600196600055\", \":raw 0x6008600760066005600460036002600197600055\", \n\t\t\":raw 0x60096008600760066005600460036002600198600055\", \":raw 0x601060096008600760066005600460036002600199600055\", \n\t\t\":raw 0x601160106009600860076006600560046003600260019a600055\", \":raw 0x6012601160106009600860076006600560046003600260019b600055\",\n\t\t\":raw 0x60136012601160106009600860076006600560046003600260019c600055\", \":raw 0x601460136012601160106009600860076006600560046003600260019d600055\",\n\t\t\":raw 0x6015601460136012601160106009600860076006600560046003600260019e600055\", \":raw 0x6012601160106009600860076006600560046003600260019f600055\",\n\t\t\":raw 0x6001a0600055\", \":raw 0x60026001a1600055\", \":raw 0x600360026001a2600055\", \":raw 0x6004600360026001a3600055\", \":raw 0x60056004600360026001a4600055\",\n\t\t\":raw 0x60026001f0600055\", \":raw 0x600660056004600360026001f1600055\", \":raw 0x600660056004600360026001f2600055\", \":raw 0x6001f3600055\",\n\t\t\":raw 0x60056004600360026001f4600055\", \":raw 0xff600055\"\n            ],\n            \"gasLimit\" : [\n                \"300000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStackTests/stackOverflowDUPFiller.json",
    "content": "{\n    \"stackOverflowDUP\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"shouldnotexist\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"4294967296000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"4294967296000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n\t    \"// data\" : [\n\t\t\"1025 times DUP\"\n\t    ],\n            \"data\" : [                \n\t\t\":raw 0x600180808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080\",\n\t\t\":raw 0x60016002818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181\",\n\t\t\":raw 0x6001600260038282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282\",\n\t\t\":raw 0x600160026003600483838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383\",\n\t\t\":raw 0x60016002600360046005848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484\",\n\t\t\":raw 0x6001600260036004600560068585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585\",\n\t\t\":raw 0x600160026003600460056006600786868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686\",\n\t\t\":raw 0x60016002600360046005600660076008878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787\",\n\t\t\":raw 0x6001600260036004600560066007600860098888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888\",\n\t\t\":raw 0x600160026003600460056006600760086009601089898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989\",\n\t\t\":raw 0x600160026003600460056006600760086009601060118a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a\",\n\t\t\":raw 0x6001600260036004600560066007600860096010601160128b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b\",\n\t\t\":raw 0x60016002600360046005600660076008600960106011601260138c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c\",\n\t\t\":raw 0x600160026003600460056006600760086009601060116012601360148d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d\",\n\t\t\":raw 0x6001600260036004600560066007600860096010601160126013601460158e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e\",\n\t\t\":raw 0x60016002600360046005600660076008600960106011601260136014601560168f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f\"\n            ],\n            \"gasLimit\" : [\n                \"6000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStackTests/stackOverflowFiller.json",
    "content": "{\n    \"stackOverflow\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"shouldnotexist\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"4294967296000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"4294967296000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n\t    \"// data\" : [\n\t\t\"1025 times ADDRESS\",\n\t\t\"1025 times ORIGIN\",\n\t\t\"1025 times CALLER\",\n\t\t\"1025 times CALLVALUE\",\n\t\t\"1025 times CALLDATASIZE\",\n\t\t\"1025 times CODESIZE\",\n\t\t\"1025 times GASPRICE\",\n\t\t\"1025 times COINBASE\",\n\t\t\"1025 times TIMESTAMP\",\n\t\t\"1025 times NUMBER\",\n\t\t\"1025 times DIFFICULTY\",\n\t\t\"1025 times GASLIMIT\",\n\t\t\"1025 times PC\",\n\t\t\"1025 times MSIZE\",\n\t\t\"1025 times GAS\",\n\t\t\"1025 times PUSH\",\n\t\t\"1025 times DUP\"\n\t    ],\n            \"data\" : [\n                \":raw 0x3030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030\",\n\t\t\":raw 0x3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\",\n\t\t\":raw 0x3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\",\n\t\t\":raw 0x3434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434\",\n\t\t\":raw 0x3636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636\",\n\t\t\":raw 0x3838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838\",\n\t\t\":raw 0x3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a\",\n\t\t\":raw 0x4141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141\",\n\t\t\":raw 0x4242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242\",\n\t\t\":raw 0x4343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343\",\n\t\t\":raw 0x4444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444\",\n\t\t\":raw 0x4545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545\",\n\t\t\":raw 0x5858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858\",\n\t\t\":raw 0x5959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959\",\n\t\t\":raw 0x5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a\",\n\t\t\":raw 0x60006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000\"\n            ],\n            \"gasLimit\" : [\n                \"6000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStackTests/stackOverflowM1DUPFiller.json",
    "content": "{\n    \"stackOverflowM1DUP\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"balance\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"4294967296000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"4294967296000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n\t    \"// data\" : [\n\t\t\"1025 times DUP\"\n\t    ],\n            \"data\" : [                \n\t\t\":raw 0x6001808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080\",\n\t\t\":raw 0x600160028181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181\",\n\t\t\":raw 0x60016002600382828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282\",\n\t\t\":raw 0x6001600260036004838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383\",\n\t\t\":raw 0x600160026003600460058484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484\",\n\t\t\":raw 0x60016002600360046005600685858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585\",\n\t\t\":raw 0x6001600260036004600560066007868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686\",\n\t\t\":raw 0x600160026003600460056006600760088787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787\",\n\t\t\":raw 0x60016002600360046005600660076008600988888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888\",\n\t\t\":raw 0x6001600260036004600560066007600860096010898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989\",\n\t\t\":raw 0x600160026003600460056006600760086009601060118a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a\",\n\t\t\":raw 0x6001600260036004600560066007600860096010601160128b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b\",\n\t\t\":raw 0x60016002600360046005600660076008600960106011601260138c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c\",\n\t\t\":raw 0x600160026003600460056006600760086009601060116012601360148d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d\",\n\t\t\":raw 0x6001600260036004600560066007600860096010601160126013601460158e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e\",\n\t\t\":raw 0x60016002600360046005600660076008600960106011601260136014601560168f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f\"\n            ],\n            \"gasLimit\" : [\n                \"6000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStackTests/stackOverflowM1Filler.json",
    "content": "{\n    \"stackOverflowM1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"balance\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"4294967296000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"4294967296000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n\t    \"// data\" : [\n\t\t\"1024 times ADDRESS\",\n\t\t\"1024 times ORIGIN\",\n\t\t\"1024 times CALLER\",\n\t\t\"1024 times CALLVALUE\",\n\t\t\"1024 times CALLDATASIZE\",\n\t\t\"1024 times CODESIZE\",\n\t\t\"1024 times GASPRICE\",\n\t\t\"1024 times COINBASE\",\n\t\t\"1024 times TIMESTAMP\",\n\t\t\"1024 times NUMBER\",\n\t\t\"1024 times DIFFICULTY\",\n\t\t\"1024 times GASLIMIT\",\n\t\t\"1024 times PC\",\n\t\t\"1024 times MSIZE\",\n\t\t\"1024 times GAS\",\n\t\t\"1024 times PUSH\",\n\t\t\"1024 times DUP\"\n\t    ],\n            \"data\" : [\n                \":raw 0x30303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030\",\n        \t\t\":raw 0x32323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\",\n\t            \":raw 0x33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\",\n        \t\t\":raw 0x34343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434\",\n\t\t        \":raw 0x36363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636\",\n\t        \t\":raw 0x38383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838\",\n\t            \":raw 0x3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a\",\n        \t\t\":raw 0x41414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141\",\n\t\t        \":raw 0x42424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242\",\n\t\t        \":raw 0x43434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343\",\n\t\t        \":raw 0x44444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444\",\n\t\t        \":raw 0x45454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545\",\n\t\t        \":raw 0x58585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858\",\n\t\t        \":raw 0x59595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959\",\n\t\t        \":raw 0x5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a\",\n\t\t        \":raw 0x6000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000\"\n            ],\n            \"gasLimit\" : [\n                \"6000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStackTests/stackOverflowM1PUSHFiller.json",
    "content": "{\n    \"stackOverflowM1PUSH\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"balance\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"4294967296000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"4294967296000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n\t    \"// data\" : [\t\t\n\t\t\"1025 times PUSH\",\n\t\t\"1025 times DUP\"\n\t    ],\n            \"data\" : [                \n\t\t\":raw 0x610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000\",\n\t\t\":raw 0x62000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000\",\n\t\t\":raw 0x6300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000\",\n\t\t\":raw 0x640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000\",\n\t\t\":raw 0x65000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000\",\n\t\t\":raw 0x6600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000\",\n\t\t\":raw 0x670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000\",\n\t\t\":raw 0x68000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000\",\n\t\t\":raw 0x6900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000\",\n\t\t\":raw 0x6a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a0000000000000000000000\",\n\t\t\":raw 0x6b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b000000000000000000000000\",\n\t\t\":raw 0x6c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c00000000000000000000000000\",\n\t\t\":raw 0x6d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d0000000000000000000000000000\",\n\t\t\":raw 0x6e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e000000000000000000000000000000\",\n\t\t\":raw 0x6f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f00000000000000000000000000000000\",\n\t\t\":raw 0x700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000\",\n\t\t\":raw 0x71000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000\",\n\t\t\":raw 0x7200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000\",\n\t\t\":raw 0x730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000\",\n\t\t\":raw 0x74000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000\",\n\t\t\":raw 0x7500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000\",\n\t\t\":raw 0x760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000\",\n\t\t\":raw 0x77000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000\",\n\t\t\":raw 0x7800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000\",\n\t\t\":raw 0x790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000\",\n\t\t\":raw 0x7a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a000000000000000000000000000000000000000000000000000000\",\n\t\t\":raw 0x7b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b00000000000000000000000000000000000000000000000000000000\",\n\t\t\":raw 0x7c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c0000000000000000000000000000000000000000000000000000000000\",\n\t\t\":raw 0x7d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d000000000000000000000000000000000000000000000000000000000000\",\n\t\t\":raw 0x7e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e00000000000000000000000000000000000000000000000000000000000000\",\n\t\t\":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000\"\t\t\n            ],\n            \"gasLimit\" : [\n                \"6000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStackTests/stackOverflowPUSHFiller.json",
    "content": "{\n    \"stackOverflowPUSH\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t\"shouldnotexist\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"4294967296000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"4294967296000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n\t    \"// data\" : [\t\t\n\t\t\"1025 times PUSH\",\n\t\t\"1025 times DUP\"\n\t    ],\n            \"data\" : [                \n\t\t\":raw 0x610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000\",\n\t\t\":raw 0x6200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000620000006200000062000000\",\n\t\t\":raw 0x63000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000630000000063000000006300000000\",\n\t\t\":raw 0x640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000640000000000\",\n\t\t\":raw 0x6500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000650000000000006500000000000065000000000000\",\n\t\t\":raw 0x66000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000660000000000000066000000000000006600000000000000\",\n\t\t\":raw 0x670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000670000000000000000\",\n\t\t\":raw 0x6800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000680000000000000000006800000000000000000068000000000000000000\",\n\t\t\":raw 0x69000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000690000000000000000000069000000000000000000006900000000000000000000\",\n\t\t\":raw 0x6a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a00000000000000000000006a0000000000000000000000\",\n\t\t\":raw 0x6b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b0000000000000000000000006b000000000000000000000000\",\n\t\t\":raw 0x6c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c000000000000000000000000006c00000000000000000000000000\",\n\t\t\":raw 0x6d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d00000000000000000000000000006d0000000000000000000000000000\",\n\t\t\":raw 0x6e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e0000000000000000000000000000006e000000000000000000000000000000\",\n\t\t\":raw 0x6f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f000000000000000000000000000000006f00000000000000000000000000000000\",\n\t\t\":raw 0x700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000700000000000000000000000000000000000\",\n\t\t\":raw 0x7100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000710000000000000000000000000000000000007100000000000000000000000000000000000071000000000000000000000000000000000000\",\n\t\t\":raw 0x72000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000720000000000000000000000000000000000000072000000000000000000000000000000000000007200000000000000000000000000000000000000\",\n\t\t\":raw 0x730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000730000000000000000000000000000000000000000\",\n\t\t\":raw 0x7400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000740000000000000000000000000000000000000000007400000000000000000000000000000000000000000074000000000000000000000000000000000000000000\",\n\t\t\":raw 0x75000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000750000000000000000000000000000000000000000000075000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000\",\n\t\t\":raw 0x760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000\",\n\t\t\":raw 0x7700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000770000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000077000000000000000000000000000000000000000000000000\",\n\t\t\":raw 0x78000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000\",\n\t\t\":raw 0x790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000790000000000000000000000000000000000000000000000000000\",\n\t\t\":raw 0x7a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000007a000000000000000000000000000000000000000000000000000000\",\n\t\t\":raw 0x7b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000007b00000000000000000000000000000000000000000000000000000000\",\n\t\t\":raw 0x7c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000007c0000000000000000000000000000000000000000000000000000000000\",\n\t\t\":raw 0x7d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000007d000000000000000000000000000000000000000000000000000000000000\",\n\t\t\":raw 0x7e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e00000000000000000000000000000000000000000000000000000000000000\",\n\t\t\":raw 0x7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000\"\t\t\n            ],\n            \"gasLimit\" : [\n                \"6000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStackTests/stackOverflowSWAPFiller.json",
    "content": "{\n    \"stackOverflowSWAP\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t    \"balance\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n\t        \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"4294967296000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"4294967296000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n\t    \"// data\" : [\n\t\t\"1025 - N followed by a SWAP\"\n\t    ],\n            \"data\" : [                \n\t\t\":raw 0x600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600090\"],\n            \"gasLimit\" : [\n                \"6000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStackTests/stacksanitySWAPFiller.json",
    "content": "{\n  \"stacksanitySWAP\" : {\n    \"_info\" : {\n      \"comment\" : \"checks stack usage for SWAP\"\n    },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"42949672960\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t              \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t              \"balance\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"4294967296000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"4294967296000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n\t    \"// data\" : [\n    \t\t\"1024 times PUSH followed by a SWAP\"\n\t    ],\n            \"data\" : [                \n\t\t\":raw 0x600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600090\"],\n            \"gasLimit\" : [\n                \"6000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStackTests/underflowTestFiller.yml",
    "content": "\nunderflowTest:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n    currentBaseFee: 10\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n\n\n    # Run the opcode ADD with 1 parameters\n    <contract:0x0000000000000000000000000000000000000101>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560800100\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode ADD with 2 parameters\n    <contract:0x0000000000000000000000000000000000000102>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060800100\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode MUL with 1 parameters\n    <contract:0x0000000000000000000000000000000000000201>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560800200\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode MUL with 2 parameters\n    <contract:0x0000000000000000000000000000000000000202>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060800200\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SUB with 1 parameters\n    <contract:0x0000000000000000000000000000000000000301>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560800300\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SUB with 2 parameters\n    <contract:0x0000000000000000000000000000000000000302>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060800300\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode DIV with 1 parameters\n    <contract:0x0000000000000000000000000000000000000401>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560800400\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode DIV with 2 parameters\n    <contract:0x0000000000000000000000000000000000000402>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060800400\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SDIV with 1 parameters\n    <contract:0x0000000000000000000000000000000000000501>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560800500\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SDIV with 2 parameters\n    <contract:0x0000000000000000000000000000000000000502>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060800500\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode MOD with 1 parameters\n    <contract:0x0000000000000000000000000000000000000601>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560800600\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode MOD with 2 parameters\n    <contract:0x0000000000000000000000000000000000000602>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060800600\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SMOD with 1 parameters\n    <contract:0x0000000000000000000000000000000000000701>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560800700\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SMOD with 2 parameters\n    <contract:0x0000000000000000000000000000000000000702>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060800700\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode ADDMOD with 2 parameters\n    <contract:0x0000000000000000000000000000000000000802>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060800800\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode ADDMOD with 3 parameters\n    <contract:0x0000000000000000000000000000000000000803>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x60016001556080608060800800\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode MULMOD with 2 parameters\n    <contract:0x0000000000000000000000000000000000000902>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060800900\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode MULMOD with 3 parameters\n    <contract:0x0000000000000000000000000000000000000903>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x60016001556080608060800900\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode EXP with 1 parameters\n    <contract:0x0000000000000000000000000000000000000a01>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560800A00\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode EXP with 2 parameters\n    <contract:0x0000000000000000000000000000000000000a02>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060800A00\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SIGNEXTEND with 1 parameters\n    <contract:0x0000000000000000000000000000000000000b01>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560800B00\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SIGNEXTEND with 2 parameters\n    <contract:0x0000000000000000000000000000000000000b02>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060800B00\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode LT with 1 parameters\n    <contract:0x0000000000000000000000000000000000001001>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560801000\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode LT with 2 parameters\n    <contract:0x0000000000000000000000000000000000001002>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060801000\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode GT with 1 parameters\n    <contract:0x0000000000000000000000000000000000001101>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560801100\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode GT with 2 parameters\n    <contract:0x0000000000000000000000000000000000001102>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060801100\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SLT with 1 parameters\n    <contract:0x0000000000000000000000000000000000001201>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560801200\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SLT with 2 parameters\n    <contract:0x0000000000000000000000000000000000001202>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060801200\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SGT with 1 parameters\n    <contract:0x0000000000000000000000000000000000001301>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560801300\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SGT with 2 parameters\n    <contract:0x0000000000000000000000000000000000001302>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060801300\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode EQ with 1 parameters\n    <contract:0x0000000000000000000000000000000000001401>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560801400\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode EQ with 2 parameters\n    <contract:0x0000000000000000000000000000000000001402>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060801400\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode ISZERO with 0 parameters\n    <contract:0x0000000000000000000000000000000000001500>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x60016001551500\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode ISZERO with 1 parameters\n    <contract:0x0000000000000000000000000000000000001501>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560801500\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode AND with 1 parameters\n    <contract:0x0000000000000000000000000000000000001601>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560801600\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode AND with 2 parameters\n    <contract:0x0000000000000000000000000000000000001602>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060801600\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode OR with 1 parameters\n    <contract:0x0000000000000000000000000000000000001701>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560801700\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode OR with 2 parameters\n    <contract:0x0000000000000000000000000000000000001702>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060801700\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode XOR with 1 parameters\n    <contract:0x0000000000000000000000000000000000001801>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560801800\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode XOR with 2 parameters\n    <contract:0x0000000000000000000000000000000000001802>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060801800\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode NOT with 0 parameters\n    <contract:0x0000000000000000000000000000000000001900>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x60016001551900\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode NOT with 1 parameters\n    <contract:0x0000000000000000000000000000000000001901>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560801900\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode BYTE with 1 parameters\n    <contract:0x0000000000000000000000000000000000001a01>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560801A00\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode BYTE with 2 parameters\n    <contract:0x0000000000000000000000000000000000001a02>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060801A00\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SHL with 1 parameters\n    <contract:0x0000000000000000000000000000000000001b01>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560801B00\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SHL with 2 parameters\n    <contract:0x0000000000000000000000000000000000001b02>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060801B00\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SHR with 1 parameters\n    <contract:0x0000000000000000000000000000000000001c01>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560801C00\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SHR with 2 parameters\n    <contract:0x0000000000000000000000000000000000001c02>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060801C00\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SAR with 1 parameters\n    <contract:0x0000000000000000000000000000000000001d01>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560801D00\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SAR with 2 parameters\n    <contract:0x0000000000000000000000000000000000001d02>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060801D00\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SHA3 with 1 parameters\n    <contract:0x0000000000000000000000000000000000002001>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560802000\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SHA3 with 2 parameters\n    <contract:0x0000000000000000000000000000000000002002>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060802000\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode BALANCE with 0 parameters\n    <contract:0x0000000000000000000000000000000000003100>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x60016001553100\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode BALANCE with 1 parameters\n    <contract:0x0000000000000000000000000000000000003101>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560803100\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode CALLDATALOAD with 0 parameters\n    <contract:0x0000000000000000000000000000000000003500>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x60016001553500\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode CALLDATALOAD with 1 parameters\n    <contract:0x0000000000000000000000000000000000003501>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560803500\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode CALLDATACOPY with 2 parameters\n    <contract:0x0000000000000000000000000000000000003702>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060803700\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode CALLDATACOPY with 3 parameters\n    <contract:0x0000000000000000000000000000000000003703>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x60016001556080608060803700\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode CODECOPY with 2 parameters\n    <contract:0x0000000000000000000000000000000000003902>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060803900\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode CODECOPY with 3 parameters\n    <contract:0x0000000000000000000000000000000000003903>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x60016001556080608060803900\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode EXTCODESIZE with 0 parameters\n    <contract:0x0000000000000000000000000000000000003b00>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x60016001553B00\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode EXTCODESIZE with 1 parameters\n    <contract:0x0000000000000000000000000000000000003b01>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560803B00\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode EXTCODECOPY with 3 parameters\n    <contract:0x0000000000000000000000000000000000003c03>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x60016001556080608060803C00\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode EXTCODECOPY with 4 parameters\n    <contract:0x0000000000000000000000000000000000003c04>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560806080608060803C00\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode EXTCODEHASH with 0 parameters\n    <contract:0x0000000000000000000000000000000000003f00>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x60016001553F00\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode EXTCODEHASH with 1 parameters\n    <contract:0x0000000000000000000000000000000000003f01>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560803F00\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode BLOCKHASH with 0 parameters\n    <contract:0x0000000000000000000000000000000000004000>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x60016001554000\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode BLOCKHASH with 1 parameters\n    <contract:0x0000000000000000000000000000000000004001>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560804000\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode POP with 0 parameters\n    <contract:0x0000000000000000000000000000000000005000>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x60016001555000\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode POP with 1 parameters\n    <contract:0x0000000000000000000000000000000000005001>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560805000\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode MLOAD with 0 parameters\n    <contract:0x0000000000000000000000000000000000005100>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x60016001555100\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode MLOAD with 1 parameters\n    <contract:0x0000000000000000000000000000000000005101>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560805100\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode MSTORE with 1 parameters\n    <contract:0x0000000000000000000000000000000000005201>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560805200\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode MSTORE with 2 parameters\n    <contract:0x0000000000000000000000000000000000005202>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060805200\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode MSTORE8 with 1 parameters\n    <contract:0x0000000000000000000000000000000000005301>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560805300\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode MSTORE8 with 2 parameters\n    <contract:0x0000000000000000000000000000000000005302>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060805300\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SLOAD with 0 parameters\n    <contract:0x0000000000000000000000000000000000005400>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x60016001555400\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SLOAD with 1 parameters\n    <contract:0x0000000000000000000000000000000000005401>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560805400\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode LOG0 with 1 parameters\n    <contract:0x000000000000000000000000000000000000a001>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x60016001556080A000\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode LOG0 with 2 parameters\n    <contract:0x000000000000000000000000000000000000a002>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560806080A000\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode LOG1 with 2 parameters\n    <contract:0x000000000000000000000000000000000000a102>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560806080A100\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode LOG1 with 3 parameters\n    <contract:0x000000000000000000000000000000000000a103>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060806080A100\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode LOG2 with 3 parameters\n    <contract:0x000000000000000000000000000000000000a203>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060806080A200\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode LOG2 with 4 parameters\n    <contract:0x000000000000000000000000000000000000a204>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x60016001556080608060806080A200\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode LOG3 with 4 parameters\n    <contract:0x000000000000000000000000000000000000a304>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x60016001556080608060806080A300\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode LOG3 with 5 parameters\n    <contract:0x000000000000000000000000000000000000a305>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560806080608060806080A300\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode LOG4 with 5 parameters\n    <contract:0x000000000000000000000000000000000000a405>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560806080608060806080A400\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode LOG4 with 6 parameters\n    <contract:0x000000000000000000000000000000000000a406>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060806080608060806080A400\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode CREATE with 2 parameters\n    <contract:0x000000000000000000000000000000000000f002>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560806080F000\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode CREATE with 3 parameters\n    <contract:0x000000000000000000000000000000000000f003>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060806080F000\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode CALL with 6 parameters\n    <contract:0x000000000000000000000000000000000000f106>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060806080608060806080F100\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode CALL with 7 parameters\n    <contract:0x000000000000000000000000000000000000f107>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x60016001556080608060806080608060806080F100\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode CALLCODE with 6 parameters\n    <contract:0x000000000000000000000000000000000000f206>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060806080608060806080F200\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode CALLCODE with 7 parameters\n    <contract:0x000000000000000000000000000000000000f207>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x60016001556080608060806080608060806080F200\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode RETURN with 1 parameters\n    <contract:0x000000000000000000000000000000000000f301>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x60016001556080F300\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode RETURN with 2 parameters\n    <contract:0x000000000000000000000000000000000000f302>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560806080F300\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode DELEGATECALL with 5 parameters\n    <contract:0x000000000000000000000000000000000000f405>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560806080608060806080F400\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode DELEGATECALL with 6 parameters\n    <contract:0x000000000000000000000000000000000000f406>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060806080608060806080F400\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode CREATE2 with 3 parameters\n    <contract:0x000000000000000000000000000000000000f503>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060806080F500\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode CREATE2 with 4 parameters\n    <contract:0x000000000000000000000000000000000000f504>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x60016001556080608060806080F500\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode STATICCALL with 5 parameters\n    <contract:0x000000000000000000000000000000000000fa05>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560806080608060806080FA00\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode STATICCALL with 6 parameters\n    <contract:0x000000000000000000000000000000000000fa06>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060806080608060806080FA00\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode DUP1 with 0 parameters\n    <contract:0x0000000000000000000000000000000000008000>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x60016001558000\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode DUP1 with 1 parameters\n    <contract:0x0000000000000000000000000000000000008001>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560808000\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode DUP2 with 1 parameters\n    <contract:0x0000000000000000000000000000000000008101>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560808100\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode DUP2 with 2 parameters\n    <contract:0x0000000000000000000000000000000000008102>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060808100\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode DUP3 with 2 parameters\n    <contract:0x0000000000000000000000000000000000008202>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060808200\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode DUP3 with 3 parameters\n    <contract:0x0000000000000000000000000000000000008203>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x60016001556080608060808200\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode DUP4 with 3 parameters\n    <contract:0x0000000000000000000000000000000000008303>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x60016001556080608060808300\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode DUP4 with 4 parameters\n    <contract:0x0000000000000000000000000000000000008304>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560806080608060808300\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode DUP5 with 4 parameters\n    <contract:0x0000000000000000000000000000000000008404>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560806080608060808400\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode DUP5 with 5 parameters\n    <contract:0x0000000000000000000000000000000000008405>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060806080608060808400\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode DUP6 with 5 parameters\n    <contract:0x0000000000000000000000000000000000008505>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060806080608060808500\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode DUP6 with 6 parameters\n    <contract:0x0000000000000000000000000000000000008506>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x60016001556080608060806080608060808500\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode DUP7 with 6 parameters\n    <contract:0x0000000000000000000000000000000000008606>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x60016001556080608060806080608060808600\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode DUP7 with 7 parameters\n    <contract:0x0000000000000000000000000000000000008607>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560806080608060806080608060808600\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode DUP8 with 7 parameters\n    <contract:0x0000000000000000000000000000000000008707>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560806080608060806080608060808700\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode DUP8 with 8 parameters\n    <contract:0x0000000000000000000000000000000000008708>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060806080608060806080608060808700\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode DUP9 with 8 parameters\n    <contract:0x0000000000000000000000000000000000008808>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060806080608060806080608060808800\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode DUP9 with 9 parameters\n    <contract:0x0000000000000000000000000000000000008809>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x60016001556080608060806080608060806080608060808800\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode DUP10 with 9 parameters\n    <contract:0x0000000000000000000000000000000000008909>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x60016001556080608060806080608060806080608060808900\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode DUP10 with 10 parameters\n    <contract:0x000000000000000000000000000000000000890a>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560806080608060806080608060806080608060808900\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode DUP11 with 10 parameters\n    <contract:0x0000000000000000000000000000000000008a0a>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560806080608060806080608060806080608060808a00\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode DUP11 with 11 parameters\n    <contract:0x0000000000000000000000000000000000008a0b>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060806080608060806080608060806080608060808a00\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode DUP12 with 11 parameters\n    <contract:0x0000000000000000000000000000000000008b0b>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060806080608060806080608060806080608060808b00\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode DUP12 with 12 parameters\n    <contract:0x0000000000000000000000000000000000008b0c>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x60016001556080608060806080608060806080608060806080608060808b00\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode DUP13 with 12 parameters\n    <contract:0x0000000000000000000000000000000000008c0c>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x60016001556080608060806080608060806080608060806080608060808c00\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode DUP13 with 13 parameters\n    <contract:0x0000000000000000000000000000000000008c0d>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560806080608060806080608060806080608060806080608060808c00\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode DUP14 with 13 parameters\n    <contract:0x0000000000000000000000000000000000008d0d>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560806080608060806080608060806080608060806080608060808d00\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode DUP14 with 14 parameters\n    <contract:0x0000000000000000000000000000000000008d0e>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060806080608060806080608060806080608060806080608060808d00\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode DUP15 with 14 parameters\n    <contract:0x0000000000000000000000000000000000008e0e>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060806080608060806080608060806080608060806080608060808e00\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode DUP15 with 15 parameters\n    <contract:0x0000000000000000000000000000000000008e0f>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x60016001556080608060806080608060806080608060806080608060806080608060808e00\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode DUP16 with 15 parameters\n    <contract:0x0000000000000000000000000000000000008f0f>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x60016001556080608060806080608060806080608060806080608060806080608060808f00\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode DUP16 with 16 parameters\n    <contract:0x0000000000000000000000000000000000008f10>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560806080608060806080608060806080608060806080608060806080608060808f00\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SWAP1 with 1 parameters\n    <contract:0x0000000000000000000000000000000000009001>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560809000\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SWAP1 with 2 parameters\n    <contract:0x0000000000000000000000000000000000009002>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060809000\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SWAP2 with 2 parameters\n    <contract:0x0000000000000000000000000000000000009102>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060809100\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SWAP2 with 3 parameters\n    <contract:0x0000000000000000000000000000000000009103>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x60016001556080608060809100\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SWAP3 with 3 parameters\n    <contract:0x0000000000000000000000000000000000009203>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x60016001556080608060809200\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SWAP3 with 4 parameters\n    <contract:0x0000000000000000000000000000000000009204>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560806080608060809200\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SWAP4 with 4 parameters\n    <contract:0x0000000000000000000000000000000000009304>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560806080608060809300\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SWAP4 with 5 parameters\n    <contract:0x0000000000000000000000000000000000009305>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060806080608060809300\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SWAP5 with 5 parameters\n    <contract:0x0000000000000000000000000000000000009405>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060806080608060809400\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SWAP5 with 6 parameters\n    <contract:0x0000000000000000000000000000000000009406>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x60016001556080608060806080608060809400\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SWAP6 with 6 parameters\n    <contract:0x0000000000000000000000000000000000009506>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x60016001556080608060806080608060809500\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SWAP6 with 7 parameters\n    <contract:0x0000000000000000000000000000000000009507>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560806080608060806080608060809500\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SWAP7 with 7 parameters\n    <contract:0x0000000000000000000000000000000000009607>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560806080608060806080608060809600\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SWAP7 with 8 parameters\n    <contract:0x0000000000000000000000000000000000009608>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060806080608060806080608060809600\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SWAP8 with 8 parameters\n    <contract:0x0000000000000000000000000000000000009708>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060806080608060806080608060809700\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SWAP8 with 9 parameters\n    <contract:0x0000000000000000000000000000000000009709>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x60016001556080608060806080608060806080608060809700\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SWAP9 with 9 parameters\n    <contract:0x0000000000000000000000000000000000009809>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x60016001556080608060806080608060806080608060809800\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SWAP9 with 10 parameters\n    <contract:0x000000000000000000000000000000000000980a>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560806080608060806080608060806080608060809800\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SWAP10 with 10 parameters\n    <contract:0x000000000000000000000000000000000000990a>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560806080608060806080608060806080608060809900\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SWAP10 with 11 parameters\n    <contract:0x000000000000000000000000000000000000990b>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060806080608060806080608060806080608060809900\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SWAP11 with 11 parameters\n    <contract:0x0000000000000000000000000000000000009a0b>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060806080608060806080608060806080608060809a00\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SWAP11 with 12 parameters\n    <contract:0x0000000000000000000000000000000000009a0c>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x60016001556080608060806080608060806080608060806080608060809a00\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SWAP12 with 12 parameters\n    <contract:0x0000000000000000000000000000000000009b0c>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x60016001556080608060806080608060806080608060806080608060809b00\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SWAP12 with 13 parameters\n    <contract:0x0000000000000000000000000000000000009b0d>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560806080608060806080608060806080608060806080608060809b00\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SWAP13 with 13 parameters\n    <contract:0x0000000000000000000000000000000000009c0d>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560806080608060806080608060806080608060806080608060809c00\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SWAP13 with 14 parameters\n    <contract:0x0000000000000000000000000000000000009c0e>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060806080608060806080608060806080608060806080608060809c00\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SWAP14 with 14 parameters\n    <contract:0x0000000000000000000000000000000000009d0e>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060806080608060806080608060806080608060806080608060809d00\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SWAP14 with 15 parameters\n    <contract:0x0000000000000000000000000000000000009d0f>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x60016001556080608060806080608060806080608060806080608060806080608060809d00\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SWAP15 with 15 parameters\n    <contract:0x0000000000000000000000000000000000009e0f>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x60016001556080608060806080608060806080608060806080608060806080608060809e00\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SWAP15 with 16 parameters\n    <contract:0x0000000000000000000000000000000000009e10>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560806080608060806080608060806080608060806080608060806080608060809e00\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SWAP16 with 16 parameters\n    <contract:0x0000000000000000000000000000000000009f10>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x600160015560806080608060806080608060806080608060806080608060806080608060809f00\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n    # Run the opcode SWAP16 with 17 parameters\n    <contract:0x0000000000000000000000000000000000009f11>:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155608060806080608060806080608060806080608060806080608060806080608060809f00\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n\n\n    # Call different contracts depending on the parameter\n    <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n      code: |\n        {\n            [[0]] 0x60A7\n            (call (gas) $4 0 0 0 0 0)\n            [[1]] 0x60A7\n        }\n      nonce: '0'\n      storage: {}\n      balance: 0\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n  transaction:\n    data:\n    # The parameter's value is the contract to call. It is\n    # <opcode>*0x100 + <number of parameters>\n    # For example, 0x0100 is ADD with zero parameters and 0x0101 is ADD with \n    # one parameter\n\n    - :label ADD-1 :abi f(uint) <contract:0x0000000000000000000000000000000000000101>\n    - :label ADD-2 :abi f(uint) <contract:0x0000000000000000000000000000000000000102>\n    - :label MUL-1 :abi f(uint) <contract:0x0000000000000000000000000000000000000201>\n    - :label MUL-2 :abi f(uint) <contract:0x0000000000000000000000000000000000000202>\n    - :label SUB-1 :abi f(uint) <contract:0x0000000000000000000000000000000000000301>\n    - :label SUB-2 :abi f(uint) <contract:0x0000000000000000000000000000000000000302>\n    - :label DIV-1 :abi f(uint) <contract:0x0000000000000000000000000000000000000401>\n    - :label DIV-2 :abi f(uint) <contract:0x0000000000000000000000000000000000000402>\n    - :label SDIV-1 :abi f(uint) <contract:0x0000000000000000000000000000000000000501>\n    - :label SDIV-2 :abi f(uint) <contract:0x0000000000000000000000000000000000000502>\n    - :label MOD-1 :abi f(uint) <contract:0x0000000000000000000000000000000000000601>\n    - :label MOD-2 :abi f(uint) <contract:0x0000000000000000000000000000000000000602>\n    - :label SMOD-1 :abi f(uint) <contract:0x0000000000000000000000000000000000000701>\n    - :label SMOD-2 :abi f(uint) <contract:0x0000000000000000000000000000000000000702>\n    - :label ADDMOD-2 :abi f(uint) <contract:0x0000000000000000000000000000000000000802>\n    - :label ADDMOD-3 :abi f(uint) <contract:0x0000000000000000000000000000000000000803>\n    - :label MULMOD-2 :abi f(uint) <contract:0x0000000000000000000000000000000000000902>\n    - :label MULMOD-3 :abi f(uint) <contract:0x0000000000000000000000000000000000000903>\n    - :label EXP-1 :abi f(uint) <contract:0x0000000000000000000000000000000000000a01>\n    - :label EXP-2 :abi f(uint) <contract:0x0000000000000000000000000000000000000a02>\n    - :label SIGNEXTEND-1 :abi f(uint) <contract:0x0000000000000000000000000000000000000b01>\n    - :label SIGNEXTEND-2 :abi f(uint) <contract:0x0000000000000000000000000000000000000b02>\n    - :label LT-1 :abi f(uint) <contract:0x0000000000000000000000000000000000001001>\n    - :label LT-2 :abi f(uint) <contract:0x0000000000000000000000000000000000001002>\n    - :label GT-1 :abi f(uint) <contract:0x0000000000000000000000000000000000001101>\n    - :label GT-2 :abi f(uint) <contract:0x0000000000000000000000000000000000001102>\n    - :label SLT-1 :abi f(uint) <contract:0x0000000000000000000000000000000000001201>\n    - :label SLT-2 :abi f(uint) <contract:0x0000000000000000000000000000000000001202>\n    - :label SGT-1 :abi f(uint) <contract:0x0000000000000000000000000000000000001301>\n    - :label SGT-2 :abi f(uint) <contract:0x0000000000000000000000000000000000001302>\n    - :label EQ-1 :abi f(uint) <contract:0x0000000000000000000000000000000000001401>\n    - :label EQ-2 :abi f(uint) <contract:0x0000000000000000000000000000000000001402>\n    - :label ISZERO-0 :abi f(uint) <contract:0x0000000000000000000000000000000000001500>\n    - :label ISZERO-1 :abi f(uint) <contract:0x0000000000000000000000000000000000001501>\n    - :label AND-1 :abi f(uint) <contract:0x0000000000000000000000000000000000001601>\n    - :label AND-2 :abi f(uint) <contract:0x0000000000000000000000000000000000001602>\n    - :label OR-1 :abi f(uint) <contract:0x0000000000000000000000000000000000001701>\n    - :label OR-2 :abi f(uint) <contract:0x0000000000000000000000000000000000001702>\n    - :label XOR-1 :abi f(uint) <contract:0x0000000000000000000000000000000000001801>\n    - :label XOR-2 :abi f(uint) <contract:0x0000000000000000000000000000000000001802>\n    - :label NOT-0 :abi f(uint) <contract:0x0000000000000000000000000000000000001900>\n    - :label NOT-1 :abi f(uint) <contract:0x0000000000000000000000000000000000001901>\n    - :label BYTE-1 :abi f(uint) <contract:0x0000000000000000000000000000000000001a01>\n    - :label BYTE-2 :abi f(uint) <contract:0x0000000000000000000000000000000000001a02>\n    - :label SHL-1 :abi f(uint) <contract:0x0000000000000000000000000000000000001b01>\n    - :label SHL-2 :abi f(uint) <contract:0x0000000000000000000000000000000000001b02>\n    - :label SHR-1 :abi f(uint) <contract:0x0000000000000000000000000000000000001c01>\n    - :label SHR-2 :abi f(uint) <contract:0x0000000000000000000000000000000000001c02>\n    - :label SAR-1 :abi f(uint) <contract:0x0000000000000000000000000000000000001d01>\n    - :label SAR-2 :abi f(uint) <contract:0x0000000000000000000000000000000000001d02>\n    - :label SHA3-1 :abi f(uint) <contract:0x0000000000000000000000000000000000002001>\n    - :label SHA3-2 :abi f(uint) <contract:0x0000000000000000000000000000000000002002>\n    - :label BALANCE-0 :abi f(uint) <contract:0x0000000000000000000000000000000000003100>\n    - :label BALANCE-1 :abi f(uint) <contract:0x0000000000000000000000000000000000003101>\n    - :label CALLDATALOAD-0 :abi f(uint) <contract:0x0000000000000000000000000000000000003500>\n    - :label CALLDATALOAD-1 :abi f(uint) <contract:0x0000000000000000000000000000000000003501>\n    - :label CALLDATACOPY-2 :abi f(uint) <contract:0x0000000000000000000000000000000000003702>\n    - :label CALLDATACOPY-3 :abi f(uint) <contract:0x0000000000000000000000000000000000003703>\n    - :label CODECOPY-2 :abi f(uint) <contract:0x0000000000000000000000000000000000003902>\n    - :label CODECOPY-3 :abi f(uint) <contract:0x0000000000000000000000000000000000003903>\n    - :label EXTCODESIZE-0 :abi f(uint) <contract:0x0000000000000000000000000000000000003b00>\n    - :label EXTCODESIZE-1 :abi f(uint) <contract:0x0000000000000000000000000000000000003b01>\n    - :label EXTCODECOPY-3 :abi f(uint) <contract:0x0000000000000000000000000000000000003c03>\n    - :label EXTCODECOPY-4 :abi f(uint) <contract:0x0000000000000000000000000000000000003c04>\n    - :label EXTCODEHASH-0 :abi f(uint) <contract:0x0000000000000000000000000000000000003f00>\n    - :label EXTCODEHASH-1 :abi f(uint) <contract:0x0000000000000000000000000000000000003f01>\n    - :label BLOCKHASH-0 :abi f(uint) <contract:0x0000000000000000000000000000000000004000>\n    - :label BLOCKHASH-1 :abi f(uint) <contract:0x0000000000000000000000000000000000004001>\n    - :label POP-0 :abi f(uint) <contract:0x0000000000000000000000000000000000005000>\n    - :label POP-1 :abi f(uint) <contract:0x0000000000000000000000000000000000005001>\n    - :label MLOAD-0 :abi f(uint) <contract:0x0000000000000000000000000000000000005100>\n    - :label MLOAD-1 :abi f(uint) <contract:0x0000000000000000000000000000000000005101>\n    - :label MSTORE-1 :abi f(uint) <contract:0x0000000000000000000000000000000000005201>\n    - :label MSTORE-2 :abi f(uint) <contract:0x0000000000000000000000000000000000005202>\n    - :label MSTORE8-1 :abi f(uint) <contract:0x0000000000000000000000000000000000005301>\n    - :label MSTORE8-2 :abi f(uint) <contract:0x0000000000000000000000000000000000005302>\n    - :label SLOAD-0 :abi f(uint) <contract:0x0000000000000000000000000000000000005400>\n    - :label SLOAD-1 :abi f(uint) <contract:0x0000000000000000000000000000000000005401>\n    - :label LOG0-1 :abi f(uint) <contract:0x000000000000000000000000000000000000a001>\n    - :label LOG0-2 :abi f(uint) <contract:0x000000000000000000000000000000000000a002>\n    - :label LOG1-2 :abi f(uint) <contract:0x000000000000000000000000000000000000a102>\n    - :label LOG1-3 :abi f(uint) <contract:0x000000000000000000000000000000000000a103>\n    - :label LOG2-3 :abi f(uint) <contract:0x000000000000000000000000000000000000a203>\n    - :label LOG2-4 :abi f(uint) <contract:0x000000000000000000000000000000000000a204>\n    - :label LOG3-4 :abi f(uint) <contract:0x000000000000000000000000000000000000a304>\n    - :label LOG3-5 :abi f(uint) <contract:0x000000000000000000000000000000000000a305>\n    - :label LOG4-5 :abi f(uint) <contract:0x000000000000000000000000000000000000a405>\n    - :label LOG4-6 :abi f(uint) <contract:0x000000000000000000000000000000000000a406>\n    - :label CREATE-2 :abi f(uint) <contract:0x000000000000000000000000000000000000f002>\n    - :label CREATE-3 :abi f(uint) <contract:0x000000000000000000000000000000000000f003>\n    - :label CALL-6 :abi f(uint) <contract:0x000000000000000000000000000000000000f106>\n    - :label CALL-7 :abi f(uint) <contract:0x000000000000000000000000000000000000f107>\n    - :label CALLCODE-6 :abi f(uint) <contract:0x000000000000000000000000000000000000f206>\n    - :label CALLCODE-7 :abi f(uint) <contract:0x000000000000000000000000000000000000f207>\n    - :label RETURN-1 :abi f(uint) <contract:0x000000000000000000000000000000000000f301>\n    - :label RETURN-2 :abi f(uint) <contract:0x000000000000000000000000000000000000f302>\n    - :label DELEGATECALL-5 :abi f(uint) <contract:0x000000000000000000000000000000000000f405>\n    - :label DELEGATECALL-6 :abi f(uint) <contract:0x000000000000000000000000000000000000f406>\n    - :label CREATE2-3 :abi f(uint) <contract:0x000000000000000000000000000000000000f503>\n    - :label CREATE2-4 :abi f(uint) <contract:0x000000000000000000000000000000000000f504>\n    - :label STATICCALL-5 :abi f(uint) <contract:0x000000000000000000000000000000000000fa05>\n    - :label STATICCALL-6 :abi f(uint) <contract:0x000000000000000000000000000000000000fa06>\n    - :label DUP1-0 :abi f(uint) <contract:0x0000000000000000000000000000000000008000>\n    - :label DUP1-1 :abi f(uint) <contract:0x0000000000000000000000000000000000008001>\n    - :label DUP2-1 :abi f(uint) <contract:0x0000000000000000000000000000000000008101>\n    - :label DUP2-2 :abi f(uint) <contract:0x0000000000000000000000000000000000008102>\n    - :label DUP3-2 :abi f(uint) <contract:0x0000000000000000000000000000000000008202>\n    - :label DUP3-3 :abi f(uint) <contract:0x0000000000000000000000000000000000008203>\n    - :label DUP4-3 :abi f(uint) <contract:0x0000000000000000000000000000000000008303>\n    - :label DUP4-4 :abi f(uint) <contract:0x0000000000000000000000000000000000008304>\n    - :label DUP5-4 :abi f(uint) <contract:0x0000000000000000000000000000000000008404>\n    - :label DUP5-5 :abi f(uint) <contract:0x0000000000000000000000000000000000008405>\n    - :label DUP6-5 :abi f(uint) <contract:0x0000000000000000000000000000000000008505>\n    - :label DUP6-6 :abi f(uint) <contract:0x0000000000000000000000000000000000008506>\n    - :label DUP7-6 :abi f(uint) <contract:0x0000000000000000000000000000000000008606>\n    - :label DUP7-7 :abi f(uint) <contract:0x0000000000000000000000000000000000008607>\n    - :label DUP8-7 :abi f(uint) <contract:0x0000000000000000000000000000000000008707>\n    - :label DUP8-8 :abi f(uint) <contract:0x0000000000000000000000000000000000008708>\n    - :label DUP9-8 :abi f(uint) <contract:0x0000000000000000000000000000000000008808>\n    - :label DUP9-9 :abi f(uint) <contract:0x0000000000000000000000000000000000008809>\n    - :label DUP10-9 :abi f(uint) <contract:0x0000000000000000000000000000000000008909>\n    - :label DUP10-10 :abi f(uint) <contract:0x000000000000000000000000000000000000890a>\n    - :label DUP11-10 :abi f(uint) <contract:0x0000000000000000000000000000000000008a0a>\n    - :label DUP11-11 :abi f(uint) <contract:0x0000000000000000000000000000000000008a0b>\n    - :label DUP12-11 :abi f(uint) <contract:0x0000000000000000000000000000000000008b0b>\n    - :label DUP12-12 :abi f(uint) <contract:0x0000000000000000000000000000000000008b0c>\n    - :label DUP13-12 :abi f(uint) <contract:0x0000000000000000000000000000000000008c0c>\n    - :label DUP13-13 :abi f(uint) <contract:0x0000000000000000000000000000000000008c0d>\n    - :label DUP14-13 :abi f(uint) <contract:0x0000000000000000000000000000000000008d0d>\n    - :label DUP14-14 :abi f(uint) <contract:0x0000000000000000000000000000000000008d0e>\n    - :label DUP15-14 :abi f(uint) <contract:0x0000000000000000000000000000000000008e0e>\n    - :label DUP15-15 :abi f(uint) <contract:0x0000000000000000000000000000000000008e0f>\n    - :label DUP16-15 :abi f(uint) <contract:0x0000000000000000000000000000000000008f0f>\n    - :label DUP16-16 :abi f(uint) <contract:0x0000000000000000000000000000000000008f10>\n    - :label SWAP1-1 :abi f(uint) <contract:0x0000000000000000000000000000000000009001>\n    - :label SWAP1-2 :abi f(uint) <contract:0x0000000000000000000000000000000000009002>\n    - :label SWAP2-2 :abi f(uint) <contract:0x0000000000000000000000000000000000009102>\n    - :label SWAP2-3 :abi f(uint) <contract:0x0000000000000000000000000000000000009103>\n    - :label SWAP3-3 :abi f(uint) <contract:0x0000000000000000000000000000000000009203>\n    - :label SWAP3-4 :abi f(uint) <contract:0x0000000000000000000000000000000000009204>\n    - :label SWAP4-4 :abi f(uint) <contract:0x0000000000000000000000000000000000009304>\n    - :label SWAP4-5 :abi f(uint) <contract:0x0000000000000000000000000000000000009305>\n    - :label SWAP5-5 :abi f(uint) <contract:0x0000000000000000000000000000000000009405>\n    - :label SWAP5-6 :abi f(uint) <contract:0x0000000000000000000000000000000000009406>\n    - :label SWAP6-6 :abi f(uint) <contract:0x0000000000000000000000000000000000009506>\n    - :label SWAP6-7 :abi f(uint) <contract:0x0000000000000000000000000000000000009507>\n    - :label SWAP7-7 :abi f(uint) <contract:0x0000000000000000000000000000000000009607>\n    - :label SWAP7-8 :abi f(uint) <contract:0x0000000000000000000000000000000000009608>\n    - :label SWAP8-8 :abi f(uint) <contract:0x0000000000000000000000000000000000009708>\n    - :label SWAP8-9 :abi f(uint) <contract:0x0000000000000000000000000000000000009709>\n    - :label SWAP9-9 :abi f(uint) <contract:0x0000000000000000000000000000000000009809>\n    - :label SWAP9-10 :abi f(uint) <contract:0x000000000000000000000000000000000000980a>\n    - :label SWAP10-10 :abi f(uint) <contract:0x000000000000000000000000000000000000990a>\n    - :label SWAP10-11 :abi f(uint) <contract:0x000000000000000000000000000000000000990b>\n    - :label SWAP11-11 :abi f(uint) <contract:0x0000000000000000000000000000000000009a0b>\n    - :label SWAP11-12 :abi f(uint) <contract:0x0000000000000000000000000000000000009a0c>\n    - :label SWAP12-12 :abi f(uint) <contract:0x0000000000000000000000000000000000009b0c>\n    - :label SWAP12-13 :abi f(uint) <contract:0x0000000000000000000000000000000000009b0d>\n    - :label SWAP13-13 :abi f(uint) <contract:0x0000000000000000000000000000000000009c0d>\n    - :label SWAP13-14 :abi f(uint) <contract:0x0000000000000000000000000000000000009c0e>\n    - :label SWAP14-14 :abi f(uint) <contract:0x0000000000000000000000000000000000009d0e>\n    - :label SWAP14-15 :abi f(uint) <contract:0x0000000000000000000000000000000000009d0f>\n    - :label SWAP15-15 :abi f(uint) <contract:0x0000000000000000000000000000000000009e0f>\n    - :label SWAP15-16 :abi f(uint) <contract:0x0000000000000000000000000000000000009e10>\n    - :label SWAP16-16 :abi f(uint) <contract:0x0000000000000000000000000000000000009f10>\n    - :label SWAP16-17 :abi f(uint) <contract:0x0000000000000000000000000000000000009f11>\n\n\n    gasLimit:\n    - '8000000'\n    gasPrice: '10'\n    nonce: '0'\n    to: <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>\n    value:\n    - '1'\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n\n\n  expect:\n\n\n    - indexes:\n        data: :label ADD-1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000000101>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label ADD-2\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000000102>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label MUL-1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000000201>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label MUL-2\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000000202>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label SUB-1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000000301>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label SUB-2\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000000302>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label DIV-1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000000401>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label DIV-2\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000000402>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label SDIV-1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000000501>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label SDIV-2\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000000502>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label MOD-1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000000601>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label MOD-2\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000000602>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label SMOD-1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000000701>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label SMOD-2\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000000702>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label ADDMOD-2\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000000802>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label ADDMOD-3\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000000803>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label MULMOD-2\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000000902>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label MULMOD-3\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000000903>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label EXP-1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000000a01>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label EXP-2\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000000a02>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label SIGNEXTEND-1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000000b01>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label SIGNEXTEND-2\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000000b02>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label LT-1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000001001>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label LT-2\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000001002>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label GT-1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000001101>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label GT-2\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000001102>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label SLT-1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000001201>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label SLT-2\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000001202>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label SGT-1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000001301>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label SGT-2\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000001302>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label EQ-1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000001401>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label EQ-2\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000001402>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label ISZERO-0\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000001500>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label ISZERO-1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000001501>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label AND-1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000001601>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label AND-2\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000001602>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label OR-1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000001701>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label OR-2\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000001702>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label XOR-1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000001801>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label XOR-2\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000001802>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label NOT-0\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000001900>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label NOT-1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000001901>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label BYTE-1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000001a01>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label BYTE-2\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000001a02>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label SHL-1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000001b01>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label SHL-2\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000001b02>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label SHR-1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000001c01>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label SHR-2\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000001c02>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label SAR-1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000001d01>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label SAR-2\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000001d02>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label SHA3-1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000002001>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label SHA3-2\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000002002>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label BALANCE-0\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000003100>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label BALANCE-1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000003101>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label CALLDATALOAD-0\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000003500>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label CALLDATALOAD-1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000003501>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label CALLDATACOPY-2\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000003702>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label CALLDATACOPY-3\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000003703>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label CODECOPY-2\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000003902>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label CODECOPY-3\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000003903>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label EXTCODESIZE-0\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000003b00>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label EXTCODESIZE-1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000003b01>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label EXTCODECOPY-3\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000003c03>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label EXTCODECOPY-4\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000003c04>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label EXTCODEHASH-0\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000003f00>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label EXTCODEHASH-1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000003f01>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label BLOCKHASH-0\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000004000>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label BLOCKHASH-1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000004001>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label POP-0\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000005000>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label POP-1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000005001>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label MLOAD-0\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000005100>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label MLOAD-1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000005101>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label MSTORE-1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000005201>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label MSTORE-2\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000005202>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label MSTORE8-1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000005301>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label MSTORE8-2\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000005302>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label SLOAD-0\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000005400>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label SLOAD-1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000005401>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label LOG0-1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x000000000000000000000000000000000000a001>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label LOG0-2\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x000000000000000000000000000000000000a002>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label LOG1-2\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x000000000000000000000000000000000000a102>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label LOG1-3\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x000000000000000000000000000000000000a103>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label LOG2-3\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x000000000000000000000000000000000000a203>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label LOG2-4\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x000000000000000000000000000000000000a204>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label LOG3-4\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x000000000000000000000000000000000000a304>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label LOG3-5\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x000000000000000000000000000000000000a305>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label LOG4-5\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x000000000000000000000000000000000000a405>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label LOG4-6\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x000000000000000000000000000000000000a406>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label CREATE-2\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x000000000000000000000000000000000000f002>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label CREATE-3\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x000000000000000000000000000000000000f003>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label CALL-6\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x000000000000000000000000000000000000f106>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label CALL-7\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x000000000000000000000000000000000000f107>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label CALLCODE-6\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x000000000000000000000000000000000000f206>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label CALLCODE-7\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x000000000000000000000000000000000000f207>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label RETURN-1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x000000000000000000000000000000000000f301>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label RETURN-2\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x000000000000000000000000000000000000f302>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label DELEGATECALL-5\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x000000000000000000000000000000000000f405>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label DELEGATECALL-6\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x000000000000000000000000000000000000f406>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label CREATE2-3\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x000000000000000000000000000000000000f503>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label CREATE2-4\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x000000000000000000000000000000000000f504>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label STATICCALL-5\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x000000000000000000000000000000000000fa05>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label STATICCALL-6\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x000000000000000000000000000000000000fa06>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label DUP1-0\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000008000>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label DUP1-1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000008001>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label DUP2-1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000008101>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label DUP2-2\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000008102>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label DUP3-2\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000008202>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label DUP3-3\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000008203>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label DUP4-3\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000008303>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label DUP4-4\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000008304>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label DUP5-4\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000008404>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label DUP5-5\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000008405>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label DUP6-5\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000008505>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label DUP6-6\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000008506>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label DUP7-6\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000008606>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label DUP7-7\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000008607>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label DUP8-7\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000008707>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label DUP8-8\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000008708>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label DUP9-8\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000008808>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label DUP9-9\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000008809>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label DUP10-9\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000008909>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label DUP10-10\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x000000000000000000000000000000000000890a>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label DUP11-10\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000008a0a>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label DUP11-11\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000008a0b>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label DUP12-11\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000008b0b>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label DUP12-12\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000008b0c>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label DUP13-12\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000008c0c>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label DUP13-13\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000008c0d>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label DUP14-13\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000008d0d>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label DUP14-14\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000008d0e>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label DUP15-14\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000008e0e>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label DUP15-15\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000008e0f>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label DUP16-15\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000008f0f>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label DUP16-16\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000008f10>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label SWAP1-1\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000009001>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label SWAP1-2\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000009002>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label SWAP2-2\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000009102>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label SWAP2-3\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000009103>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label SWAP3-3\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000009203>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label SWAP3-4\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000009204>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label SWAP4-4\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000009304>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label SWAP4-5\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000009305>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label SWAP5-5\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000009405>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label SWAP5-6\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000009406>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label SWAP6-6\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000009506>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label SWAP6-7\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000009507>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label SWAP7-7\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000009607>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label SWAP7-8\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000009608>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label SWAP8-8\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000009708>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label SWAP8-9\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000009709>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label SWAP9-9\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000009809>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label SWAP9-10\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x000000000000000000000000000000000000980a>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label SWAP10-10\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x000000000000000000000000000000000000990a>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label SWAP10-11\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x000000000000000000000000000000000000990b>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label SWAP11-11\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000009a0b>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label SWAP11-12\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000009a0c>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label SWAP12-12\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000009b0c>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label SWAP12-13\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000009b0d>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label SWAP13-13\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000009c0d>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label SWAP13-14\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000009c0e>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label SWAP14-14\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000009d0e>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label SWAP14-15\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000009d0f>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label SWAP15-15\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000009e0f>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label SWAP15-16\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000009e10>:\n          storage:\n            0x01: 0x01\n\n    - indexes:\n        data: :label SWAP16-16\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000009f10>:\n          storage:\n            0x01: 0x60A7\n\n    - indexes:\n        data: :label SWAP16-17\n      network:\n        - '>=Cancun'\n      result:\n        <contract:target:0xcccccccccccccccccccccccccccccccccccccccc>:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        <contract:0x0000000000000000000000000000000000009f11>:\n          storage:\n            0x01: 0x01\n\n"
  },
  {
    "path": "tests/static/state_tests/stStackTests/underflowTestGen.js",
    "content": "#! /usr/bin/node\n\n// Generate the underTestFiller.yml, which is repetitive and boring.\n//\n// Ori Pomerantz qbzzt1@gmail.com\n//\n// These tests run an opcode with an insufficient number of stack\n// parameters and see that the transaction reverts.\n// Each opcode in the test is executed twice, once with just enough\n// parameters, and once with one less than that.\n// It would have been better to test all cases (0,1 for two parameters,etc),\n// but that creates an unyieldy 500 test case monster.\n\n// Every entry in this table has three fields:\n// OPCODE in text (ADD, PUSH1, etc.)\n// OPCODE in machine language (01 for ADD, 02 for MUL, etc.)\n// The correct number of parameters\n//\n// This table excludes opcodes such as ADDRESS and CALLER that don't\n// take parameters, and therefore never experience underflow\n//\n// This is a var because we'll add the DUP and SWAP opcodes, which are\n// each a series, in code later.\nvar opcodes = [\n    [\"ADD\",          \"01\", 2],\n    [\"MUL\",          \"02\", 2],\n    [\"SUB\",          \"03\", 2],\n    [\"DIV\",          \"04\", 2],\n    [\"SDIV\",         \"05\", 2],\n    [\"MOD\",          \"06\", 2],\n    [\"SMOD\",         \"07\", 2],\n    [\"ADDMOD\",       \"08\", 3],\n    [\"MULMOD\",       \"09\", 3],\n    [\"EXP\",          \"0A\", 2],\n    [\"SIGNEXTEND\",   \"0B\", 2],\n    [\"LT\",    \"10\", 2],\n    [\"GT\",    \"11\", 2],\n    [\"SLT\",   \"12\", 2],\n    [\"SGT\",   \"13\", 2],\n    [\"EQ\",    \"14\", 2],\n    [\"ISZERO\",\"15\", 1],\n    [\"AND\",   \"16\", 2],\n    [\"OR\",    \"17\", 2],\n    [\"XOR\",   \"18\", 2],\n    [\"NOT\",   \"19\", 1],\n    [\"BYTE\",  \"1A\", 2],\n    [\"SHL\",   \"1B\", 2],\n    [\"SHR\",   \"1C\", 2],\n    [\"SAR\",   \"1D\", 2],\n    [\"SHA3\",  \"20\", 2],\n    [\"BALANCE\",  \"31\", 1],\n    [\"CALLDATALOAD\",  \"35\", 1],\n    [\"CALLDATACOPY\",  \"37\", 3],\n    [\"CODECOPY\",      \"39\", 3],\n    [\"EXTCODESIZE\",   \"3B\", 1],\n    [\"EXTCODECOPY\",   \"3C\", 4],\n    // [\"RETURNDATACOPY\",\"3E\", 3],    fails when there is no return data to copy\n    [\"EXTCODEHASH\",   \"3F\", 1],\n    [\"BLOCKHASH\",     \"40\", 1],\n    [\"POP\",           \"50\", 1],\n    [\"MLOAD\",         \"51\", 1],\n    [\"MSTORE\",        \"52\", 2],\n    [\"MSTORE8\",       \"53\", 2],\n    [\"SLOAD\",         \"54\", 1],\n    // [\"SSTORE\",        \"55\", 2],    produces an \"unexpected\" entry in storage\n    // [\"JUMP\",          \"56\", 1],    we try to jump, but not to a JUMPDEST\n    // [\"JUMPI\",         \"57\", 2],    same as JUMP\n    [\"LOG0\",    \"A0\", 2],\n    [\"LOG1\",    \"A1\", 3],\n    [\"LOG2\",    \"A2\", 4],\n    [\"LOG3\",    \"A3\", 5],\n    [\"LOG4\",    \"A4\", 6],\n    [\"CREATE\",  \"F0\", 3],\n    [\"CALL\",    \"F1\", 7],\n    [\"CALLCODE\",\"F2\", 7],\n    [\"RETURN\",  \"F3\", 2],\n    [\"DELEGATECALL\", \"F4\", 6],\n    [\"CREATE2\", \"F5\", 4],\n    [\"STATICCALL\", \"FA\", 6]\n    // REVERT and SELFDESTRUCT don't continue the normal run\n       ]\n\n\n// Add the DUP opcodes\nfor (var i=1; i<17; i++) {\n  opcodes.push([`DUP${i}`, (0x7F+i).toString(16), i])\n}\n\n\nfor (var i=1; i<17; i++) {\n  opcodes.push([`SWAP${i}`, (0x8F+i).toString(16), i+1])\n}\n\n\n\n// if (true) console.log(opcodes)\n\n\n\nconst boilerPlate1 = `\nunderflowTest:\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 100000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  _info:\n    comment: Ori Pomerantz qbzzt1@gmail.com\n\n  pre:\n`\n\nconst boilerPlate2 = `\n    # Call different contracts depending on the parameter\n    cccccccccccccccccccccccccccccccccccccccc:\n      code: |\n        {\n            [[0]] 0x60A7\n            (call (gas) $4 0 0 0 0 0)\n            [[1]] 0x60A7\n        }\n      nonce: '0'\n      storage: {}\n      balance: 0\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '0x0ba1a9ce0ba1a9ce'\n      code: '0x'\n      nonce: '0'\n      storage: {}\n\n\n  transaction:\n    data:\n    # The parameter's value is the contract to call. It is\n    # <opcode>*0x100 + <number of parameters>\n    # For example, 0x0100 is ADD with zero parameters and 0x0101 is ADD with \n    # one parameter\n`\n\n\nconst boilerPlate3 = `\n    gasLimit:\n    - '80000000'\n    gasPrice: '1'\n    nonce: '0'\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - '1'\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n  expect:\n`\n\n\n// Create the contract to test an opcode with a specific number of\n// parameters (good is true iff the number of parameters is valid for\n// that opcode). Return a structure with the relevant entries for the\n// pre section, the transaction.data section, and the expect section.\nconst createOpcodeTest = (opcodeName, opcode, params, good) => {\n    // The 20 byte address\n    addr = (parseInt(opcode,16)*0x100+params).toString(16).padStart(40, '0')\n\n    // The code, PUSH1 0x80 (however many times) followed by the opcode\n    var code = ''\n    for(var i=0; i<params; i++)\n       code += '6080'  // PUSH1 128 (just a number)\n    code += opcode.toString(16).padStart(2, '0')\n\n    return {\n      pre: `\n    # Run the opcode ${opcodeName} with ${params} parameters\n    ${addr}:\n       balance: 0\n       # Kill the goat. If the goat is alive, it means the transaction reverted\n       # Then push 0x80 the number of parameters and follow that with the opcode\n       # being tested\n       code: :raw 0x6001600155${code}00\n       nonce: 0\n       storage:\n         0x01: 0x60A7\n`,\n      data:`    - :label ${opcodeName}-${params} :abi f(uint) 0x${addr}\n`,\n      expect: `\n    - indexes:\n        data: :label ${opcodeName}-${params}\n        gas:  !!int -1\n        value: !!int -1\n      network:\n        - '>=Istanbul'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 0x60A7\n            0x01: 0x60A7\n        ${addr}:\n          storage:\n            0x01: ${good ? \"0x01\" : \"0x60A7\"}\n`    }   // return {}\n}        // createOpcodeTest\n\n\n// x = createOpcodeTest(\"ADD\", 0x01, 2, true)\n\n// The variables that will collect the output\n// of createOpcodeTest\nvar preCollector = \"\"\nvar dataCollector = \"\"\nvar expectCollector = \"\"\n\n// For every opcode\nfor (var i=0; i<opcodes.length; i++) {\n   // Produce the failure\n   var temp =\n       createOpcodeTest(opcodes[i][0], opcodes[i][1], opcodes[i][2]-1, false)\n   preCollector += temp.pre\n   dataCollector += temp.data\n   expectCollector += temp.expect\n\n   // And the success\n   var temp =\n       createOpcodeTest(opcodes[i][0], opcodes[i][1], opcodes[i][2], true)\n   preCollector += temp.pre\n   dataCollector += temp.data\n   expectCollector += temp.expect\n\n}  // for i= 0 .. opcodes.length\n\nconsole.log(boilerPlate1)\nconsole.log(preCollector)\nconsole.log(boilerPlate2)\nconsole.log(dataCollector)\nconsole.log(boilerPlate3)\nconsole.log(expectCollector)\n\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/StaticcallToPrecompileFromCalledContractFiller.yml",
    "content": "---\nStaticcallToPrecompileFromCalledContract:\n  _info:\n    comment: |\n      STATICCALL to precompiled contracts from contract that called from another contract.\n      It should execute successfully for each precompiled contract.\n  env:\n    currentCoinbase: '0xcafe000000000000000000000000000000000001'\n    currentDifficulty: '0x20000'\n    currentGasLimit: '10000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      b000000000000000000000000000000000000000:\n        storage:\n          '0x00': '0x01'\n      a000000000000000000000000000000000000000:\n        storage:\n          # precompiled contract #1 - Recovery of ECDSA signature\n          '0x00': '0x01'\n          '0x01': '0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b'\n          '0x02': '0x01'\n          # precompiled contract #2 - Hash function SHA256\n          '0x03': '0x01'\n          '0x04': '0x0ccccccccccccccccccccccccccccccccccccccccccccccccccc000000'\n          '0x05': '0x73f5062fb68ed2a1ec82ff8c73f9251bb9cf53a623bc93527e16bc5ae29dad74'\n          # precompiled contract #3 - Hash function RIPEMD160\n          '0x06': '0x01'\n          '0x07': '0x0ccccccccccccccccccccccccccccccccccccccccccccccccccc000000'\n          '0x08': '0x14ef238cfa4075e9ede92f18b1566c1dd0b99aaa'\n          # precompiled contract #4 - Identity\n          '0x09': '0x01'\n          '0x10': '0x0ccccccccccccccccccccccccccccccccccccccccccccccccccc000000'\n          # precompiled contract #5 - Modular exponentiation\n          '0x11': '0x01'\n          '0x12': '0x01'\n          # precompiled contract #6 - Addition on elliptic curve alt_bn128\n          '0x13': '0x01'\n          '0x14': '0x1f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c49'\n          '0x15': '0x018683193ae021a2f8920fed186cde5d9b1365116865281ccf884c1f28b1df8f'\n          # precompiled contract #7 - Scalar multiplication on elliptic curve alt_bn128\n          '0x16': '0x01'\n          '0x17': '0x1f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c49'\n          '0x18': '0x018683193ae021a2f8920fed186cde5d9b1365116865281ccf884c1f28b1df8f'\n          # precompiled contract #8 - Checking a pairing equation on curve alt_bn128\n          '0x19': '0x01'\n          '0x20': '0x01'\n  pre:\n    b000000000000000000000000000000000000000:\n      balance: '0'\n      nonce: '0'\n      storage: {}\n      code: |\n        {\n          [[ 0 ]] (CALL (GAS) 0xa000000000000000000000000000000000000000 0 0 0 0 0 )\n        }\n    a000000000000000000000000000000000000000:\n      balance: '0'\n      nonce: '0'\n      storage: {}\n      code: |\n        {\n          ;; Recovery of ECDSA signature\n          [ 0x00 ] 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c\n          [ 0x20 ] 28\n          [ 0x40 ] 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f\n          [ 0x60 ] 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549\n          [[ 0x00 ]] (STATICCALL (GAS) 1 0 128 1000 32)\n          [[ 0x01 ]] (MOD @1000 (EXP 2 160))\n          [[ 0x02 ]] (EQ (ORIGIN) @@1)\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x20 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x60 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 1000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Hash function SHA256\n          [ 0x00 ] 0x0000000ccccccccccccccccccccccccccccccccccccccccccccccccccc000000\n          [[ 0x03 ]] (STATICCALL (GAS) 2 0 32 1000 32)\n          [[ 0x04 ]] @0\n          [[ 0x05 ]] @1000\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 1000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Hash function RIPEMD160\n          [ 0x00 ] 0x0000000ccccccccccccccccccccccccccccccccccccccccccccccccccc000000\n          [[ 0x06 ]] (STATICCALL (GAS) 3 0 32 1000 32)\n          [[ 0x07 ]] @0\n          [[ 0x08 ]] @1000\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 1000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Identity\n          [ 0x00 ] 0x0000000ccccccccccccccccccccccccccccccccccccccccccccccccccc000000\n          [[ 0x09 ]] (STATICCALL (GAS) 4 0 32 1000 32)\n          [[ 0x10 ]] @1000\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 1000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Modular exponentiation\n          [ 0x00 ] 1\n          [ 0x20 ] 32\n          [ 0x40 ] 32\n          [ 0x60 ] 0x03fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc\n          [ 0x80 ] 0x2efffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc\n          [ 0xa0 ] 0x2f00000000000000000000000000000000000000000000000000000000000000\n          [[ 0x11 ]] (STATICCALL (GAS) 5 0 0xa1 1000 32)\n          [[ 0x12 ]] @1000\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x20 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x60 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x80 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0xa0 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 1000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Addition on elliptic curve alt_bn128\n          [ 0x00 ] 0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd2\n          [ 0x20 ] 0x16da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba\n          [ 0x40 ] 0x1de49a4b0233273bba8146af82042d004f2085ec982397db0d97da17204cc286\n          [ 0x60 ] 0x0217327ffc463919bef80cc166d09c6172639d8589799928761bcd9f22c903d4\n          [[ 0x13 ]] (STATICCALL (GAS) 6 0 128 1000 64)\n          [[ 0x14 ]] @1000\n          [[ 0x15 ]] @1032\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x20 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x60 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 1000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 1032 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Scalar multiplication on elliptic curve alt_bn128\n          [ 0x00 ] 0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd2\n          [ 0x20 ] 0x16da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000003\n          [[ 0x16 ]] (STATICCALL (GAS) 7 0 96 1000 64)\n          [[ 0x17 ]] @1000\n          [[ 0x18 ]] @1032\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x20 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 1000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 1032 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Checking a pairing equation on curve alt_bn128\n          ;; proof.A + vk.A + negateG1(proof.Ap) + P2\n          [ 0x0000 ] 0x1c76476f4def4bb94541d57ebba1193381ffa7aa76ada664dd31c16024c43f59\n          [ 0x0020 ] 0x3034dd2920f673e204fee2811c678745fc819b55d3e9d294e45c9b03a76aef41\n          [ 0x0040 ] 0x209dd15ebff5d46c4bd888e51a93cf99a7329636c63514396b4a452003a35bf7\n          [ 0x0060 ] 0x04bf11ca01483bfa8b34b43561848d28905960114c8ac04049af4b6315a41678\n          [ 0x0080 ] 0x2bb8324af6cfc93537a2ad1a445cfd0ca2a71acd7ac41fadbf933c2a51be344d\n          [ 0x00a0 ] 0x120a2a4cf30c1bf9845f20c6fe39e07ea2cce61f0c9bb048165fe5e4de877550\n          [ 0x00c0 ] 0x111e129f1cf1097710d41c4ac70fcdfa5ba2023c6ff1cbeac322de49d1b6df7c\n          [ 0x00e0 ] 0x2032c61a830e3c17286de9462bf242fca2883585b93870a73853face6a6bf411\n          [ 0x0100 ] 0x198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c2\n          [ 0x0120 ] 0x1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed\n          [ 0x0140 ] 0x090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b\n          [ 0x0160 ] 0x12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\n          [[ 0x19 ]] (STATICCALL (GAS) 8 0 0x0180 1000 32)\n          [[ 0x20 ]] @1000\n        }\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '1000000000000000000'\n      code: ''\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '1000000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: '0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8'\n    to: 'b000000000000000000000000000000000000000'\n    value:\n    - '100'\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/StaticcallToPrecompileFromContractInitializationFiller.yml",
    "content": "---\nStaticcallToPrecompileFromContractInitialization:\n  _info:\n    comment: |\n      STATICCALL to precompiled contracts from contract initialization code.\n      It should execute successfully for each precompiled contract.\n  env:\n    currentCoinbase: '0xcafe000000000000000000000000000000000001'\n    currentDifficulty: '0x20000'\n    currentGasLimit: '10000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data:\n      - !!int 0\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      a000000000000000000000000000000000000000:\n        storage:\n          '0x00': '0xfad204ed1275b429b66c9ce0614d62832d6b2580'\n      fad204ed1275b429b66c9ce0614d62832d6b2580:\n        storage:\n          # precompiled contract #1 - Recovery of ECDSA signature\n          '0x00': '0x01'\n          '0x01': '0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b'\n          '0x02': '0x01'\n          # precompiled contract #2 - Hash function SHA256\n          '0x03': '0x01'\n          '0x04': '0x0ccccccccccccccccccccccccccccccccccccccccccccccccccc000000'\n          '0x05': '0x73f5062fb68ed2a1ec82ff8c73f9251bb9cf53a623bc93527e16bc5ae29dad74'\n          # precompiled contract #3 - Hash function RIPEMD160\n          '0x06': '0x01'\n          '0x07': '0x0ccccccccccccccccccccccccccccccccccccccccccccccccccc000000'\n          '0x08': '0x14ef238cfa4075e9ede92f18b1566c1dd0b99aaa'\n          # precompiled contract #4 - Identity\n          '0x09': '0x01'\n          '0x10': '0x0ccccccccccccccccccccccccccccccccccccccccccccccccccc000000'\n          # precompiled contract #5 - Modular exponentiation\n          '0x11': '0x01'\n          '0x12': '0x01'\n          # precompiled contract #6 - Addition on elliptic curve alt_bn128\n          '0x13': '0x01'\n          '0x14': '0x1f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c49'\n          '0x15': '0x018683193ae021a2f8920fed186cde5d9b1365116865281ccf884c1f28b1df8f'\n          # precompiled contract #7 - Scalar multiplication on elliptic curve alt_bn128\n          '0x16': '0x01'\n          '0x17': '0x1f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c49'\n          '0x18': '0x018683193ae021a2f8920fed186cde5d9b1365116865281ccf884c1f28b1df8f'\n          # precompiled contract #8 - Checking a pairing equation on curve alt_bn128\n          '0x19': '0x01'\n          '0x20': '0x01'\n  pre:\n    a000000000000000000000000000000000000000:\n      balance: '0'\n      nonce: '0'\n      storage: {}\n      code: |\n        {\n          (CALLDATACOPY 0 0 (CALLDATASIZE))\n          [[ 0 ]] (CREATE2 0 0 (CALLDATASIZE) 0x5a175a175a17)\n        }\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '1000000000000000000'\n      code: ''\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - |\n      {\n        ;; Recovery of ECDSA signature\n        [ 0x00 ] 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c\n        [ 0x20 ] 28\n        [ 0x40 ] 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f\n        [ 0x60 ] 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549\n        [[ 0x00 ]] (STATICCALL 400000 1 0 128 1000 32)\n        [[ 0x01 ]] (MOD @1000 (EXP 2 160))\n        [[ 0x02 ]] (EQ (ORIGIN) @@1)\n        [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n        [ 0x20 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n        [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n        [ 0x60 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n        [ 1000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n        ;; Hash function SHA256\n        [ 0x00 ] 0x0000000ccccccccccccccccccccccccccccccccccccccccccccccccccc000000\n        [[ 0x03 ]] (STATICCALL (GAS) 2 0 32 1000 32)\n        [[ 0x04 ]] @0\n        [[ 0x05 ]] @1000\n        [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n        [ 1000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n        ;; Hash function RIPEMD160\n        [ 0x00 ] 0x0000000ccccccccccccccccccccccccccccccccccccccccccccccccccc000000\n        [[ 0x06 ]] (STATICCALL (GAS) 3 0 32 1000 32)\n        [[ 0x07 ]] @0\n        [[ 0x08 ]] @1000\n        [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n        [ 1000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n        ;; Identity\n        [ 0x00 ] 0x0000000ccccccccccccccccccccccccccccccccccccccccccccccccccc000000\n        [[ 0x09 ]] (STATICCALL (GAS) 4 0 32 1000 32)\n        [[ 0x10 ]] @1000\n        [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n        [ 1000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n        ;; Modular exponentiation\n        [ 0x00 ] 1\n        [ 0x20 ] 32\n        [ 0x40 ] 32\n        [ 0x60 ] 0x03fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc\n        [ 0x80 ] 0x2efffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc\n        [ 0xa0 ] 0x2f00000000000000000000000000000000000000000000000000000000000000\n        [[ 0x11 ]] (STATICCALL (GAS) 5 0 0xa1 1000 32)\n        [[ 0x12 ]] @1000\n        [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n        [ 0x20 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n        [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n        [ 0x60 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n        [ 0x80 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n        [ 0xa0 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n        [ 1000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n        ;; Addition on elliptic curve alt_bn128\n        [ 0x00 ] 0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd2\n        [ 0x20 ] 0x16da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba\n        [ 0x40 ] 0x1de49a4b0233273bba8146af82042d004f2085ec982397db0d97da17204cc286\n        [ 0x60 ] 0x0217327ffc463919bef80cc166d09c6172639d8589799928761bcd9f22c903d4\n        [[ 0x13 ]] (STATICCALL (GAS) 6 0 128 1000 64)\n        [[ 0x14 ]] @1000\n        [[ 0x15 ]] @1032\n        [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n        [ 0x20 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n        [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n        [ 0x60 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n        [ 1000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n        [ 1032 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n        ;; Scalar multiplication on elliptic curve alt_bn128\n        [ 0x00 ] 0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd2\n        [ 0x20 ] 0x16da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba\n        [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000003\n        [[ 0x16 ]] (STATICCALL (GAS) 7 0 96 1000 64)\n        [[ 0x17 ]] @1000\n        [[ 0x18 ]] @1032\n        [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n        [ 0x20 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n        [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n        [ 1000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n        [ 1032 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n        ;; Checking a pairing equation on curve alt_bn128\n        ;; proof.A + vk.A + negateG1(proof.Ap) + P2\n        [ 0x0000 ] 0x1c76476f4def4bb94541d57ebba1193381ffa7aa76ada664dd31c16024c43f59\n        [ 0x0020 ] 0x3034dd2920f673e204fee2811c678745fc819b55d3e9d294e45c9b03a76aef41\n        [ 0x0040 ] 0x209dd15ebff5d46c4bd888e51a93cf99a7329636c63514396b4a452003a35bf7\n        [ 0x0060 ] 0x04bf11ca01483bfa8b34b43561848d28905960114c8ac04049af4b6315a41678\n        [ 0x0080 ] 0x2bb8324af6cfc93537a2ad1a445cfd0ca2a71acd7ac41fadbf933c2a51be344d\n        [ 0x00a0 ] 0x120a2a4cf30c1bf9845f20c6fe39e07ea2cce61f0c9bb048165fe5e4de877550\n        [ 0x00c0 ] 0x111e129f1cf1097710d41c4ac70fcdfa5ba2023c6ff1cbeac322de49d1b6df7c\n        [ 0x00e0 ] 0x2032c61a830e3c17286de9462bf242fca2883585b93870a73853face6a6bf411\n        [ 0x0100 ] 0x198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c2\n        [ 0x0120 ] 0x1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed\n        [ 0x0140 ] 0x090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b\n        [ 0x0160 ] 0x12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\n        [[ 0x19 ]] (STATICCALL (GAS) 8 0 0x0180 1000 32)\n        [[ 0x20 ]] @1000\n      }\n    gasLimit:\n    - '1000000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: '0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8'\n    to: 'a000000000000000000000000000000000000000'\n    value:\n    - '100'\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/StaticcallToPrecompileFromTransactionFiller.yml",
    "content": "---\nStaticcallToPrecompileFromTransaction:\n  _info:\n    comment: |\n      STATICCALL to precompiled contracts from transaction code.\n      It should execute successfully for each precompiled contract.\n  env:\n    currentCoinbase: '0xcafe000000000000000000000000000000000001'\n    currentDifficulty: '0x20000'\n    currentGasLimit: '10000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      a000000000000000000000000000000000000000:\n        storage:\n          # precompiled contract #1 - Recovery of ECDSA signature\n          '0x00': '0x01'\n          '0x01': '0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b'\n          '0x02': '0x01'\n          # precompiled contract #2 - Hash function SHA256\n          '0x03': '0x01'\n          '0x04': '0x0ccccccccccccccccccccccccccccccccccccccccccccccccccc000000'\n          '0x05': '0x73f5062fb68ed2a1ec82ff8c73f9251bb9cf53a623bc93527e16bc5ae29dad74'\n          # precompiled contract #3 - Hash function RIPEMD160\n          '0x06': '0x01'\n          '0x07': '0x0ccccccccccccccccccccccccccccccccccccccccccccccccccc000000'\n          '0x08': '0x14ef238cfa4075e9ede92f18b1566c1dd0b99aaa'\n          # precompiled contract #4 - Identity\n          '0x09': '0x01'\n          '0x10': '0x0ccccccccccccccccccccccccccccccccccccccccccccccccccc000000'\n          # precompiled contract #5 - Modular exponentiation\n          '0x11': '0x01'\n          '0x12': '0x01'\n          # precompiled contract #6 - Addition on elliptic curve alt_bn128\n          '0x13': '0x01'\n          '0x14': '0x1f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c49'\n          '0x15': '0x018683193ae021a2f8920fed186cde5d9b1365116865281ccf884c1f28b1df8f'\n          # precompiled contract #7 - Scalar multiplication on elliptic curve alt_bn128\n          '0x16': '0x01'\n          '0x17': '0x1f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c49'\n          '0x18': '0x018683193ae021a2f8920fed186cde5d9b1365116865281ccf884c1f28b1df8f'\n          # precompiled contract #8 - Checking a pairing equation on curve alt_bn128\n          '0x19': '0x01'\n          '0x20': '0x01'\n  pre:\n    a000000000000000000000000000000000000000:\n      balance: '0'\n      code: |\n        {\n          ;; Recovery of ECDSA signature\n          [ 0x00 ] 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c\n          [ 0x20 ] 28\n          [ 0x40 ] 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f\n          [ 0x60 ] 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549\n          [[ 0x00 ]] (STATICCALL (GAS) 1 0 128 1000 32)\n          [[ 0x01 ]] (MOD @1000 (EXP 2 160))\n          [[ 0x02 ]] (EQ (ORIGIN) @@1)\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x20 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x60 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 1000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Hash function SHA256\n          [ 0x00 ] 0x0000000ccccccccccccccccccccccccccccccccccccccccccccccccccc000000\n          [[ 0x03 ]] (STATICCALL (GAS) 2 0 32 1000 32)\n          [[ 0x04 ]] @0\n          [[ 0x05 ]] @1000\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 1000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Hash function RIPEMD160\n          [ 0x00 ] 0x0000000ccccccccccccccccccccccccccccccccccccccccccccccccccc000000\n          [[ 0x06 ]] (STATICCALL (GAS) 3 0 32 1000 32)\n          [[ 0x07 ]] @0\n          [[ 0x08 ]] @1000\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 1000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Identity\n          [ 0x00 ] 0x0000000ccccccccccccccccccccccccccccccccccccccccccccccccccc000000\n          [[ 0x09 ]] (STATICCALL (GAS) 4 0 32 1000 32)\n          [[ 0x10 ]] @1000\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 1000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Modular exponentiation\n          [ 0x00 ] 1\n          [ 0x20 ] 32\n          [ 0x40 ] 32\n          [ 0x60 ] 0x03fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc\n          [ 0x80 ] 0x2efffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc\n          [ 0xa0 ] 0x2f00000000000000000000000000000000000000000000000000000000000000\n          [[ 0x11 ]] (STATICCALL (GAS) 5 0 0xa1 1000 32)\n          [[ 0x12 ]] @1000\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x20 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x60 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x80 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0xa0 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 1000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Addition on elliptic curve alt_bn128\n          [ 0x00 ] 0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd2\n          [ 0x20 ] 0x16da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba\n          [ 0x40 ] 0x1de49a4b0233273bba8146af82042d004f2085ec982397db0d97da17204cc286\n          [ 0x60 ] 0x0217327ffc463919bef80cc166d09c6172639d8589799928761bcd9f22c903d4\n          [[ 0x13 ]] (STATICCALL (GAS) 6 0 128 1000 64)\n          [[ 0x14 ]] @1000\n          [[ 0x15 ]] @1032\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x20 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x60 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 1000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 1032 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Scalar multiplication on elliptic curve alt_bn128\n          [ 0x00 ] 0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd2\n          [ 0x20 ] 0x16da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000003\n          [[ 0x16 ]] (STATICCALL (GAS) 7 0 96 1000 64)\n          [[ 0x17 ]] @1000\n          [[ 0x18 ]] @1032\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x20 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 1000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 1032 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Checking a pairing equation on curve alt_bn128\n          ;; proof.A + vk.A + negateG1(proof.Ap) + P2\n          [ 0x0000 ] 0x1c76476f4def4bb94541d57ebba1193381ffa7aa76ada664dd31c16024c43f59\n          [ 0x0020 ] 0x3034dd2920f673e204fee2811c678745fc819b55d3e9d294e45c9b03a76aef41\n          [ 0x0040 ] 0x209dd15ebff5d46c4bd888e51a93cf99a7329636c63514396b4a452003a35bf7\n          [ 0x0060 ] 0x04bf11ca01483bfa8b34b43561848d28905960114c8ac04049af4b6315a41678\n          [ 0x0080 ] 0x2bb8324af6cfc93537a2ad1a445cfd0ca2a71acd7ac41fadbf933c2a51be344d\n          [ 0x00a0 ] 0x120a2a4cf30c1bf9845f20c6fe39e07ea2cce61f0c9bb048165fe5e4de877550\n          [ 0x00c0 ] 0x111e129f1cf1097710d41c4ac70fcdfa5ba2023c6ff1cbeac322de49d1b6df7c\n          [ 0x00e0 ] 0x2032c61a830e3c17286de9462bf242fca2883585b93870a73853face6a6bf411\n          [ 0x0100 ] 0x198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c2\n          [ 0x0120 ] 0x1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed\n          [ 0x0140 ] 0x090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b\n          [ 0x0160 ] 0x12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\n          [[ 0x19 ]] (STATICCALL (GAS) 8 0 0x0180 1000 32)\n          [[ 0x20 ]] @1000\n        }\n      nonce: '0'\n      storage: {}\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '1000000000000000000'\n      code: ''\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '1000000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: '0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8'\n    to: 'a000000000000000000000000000000000000000'\n    value:\n    - '100'\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_ABAcalls0Filler.json",
    "content": "{\n    \"static_ABAcalls0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n\t\t\t\t\t\t\"balance\" : \"1000000000000100000\",\n                        \"storage\" : {\n                            \"0x24\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"storage\" : {\n                            \"0x26\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n\t\t\t    \t\t\t\"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            },\n\t    \t{\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0x195e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n\t\t\t\t\t\t\"balance\" : \"1000000000000100000\",\n                        \"storage\" : {\n                            \"0x24\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x245304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"storage\" : {\n                            \"0x26\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n\t\t\t    \t\t\t\"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n\t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ (PC) ]] (STATICCALL 100000 <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \" { [[ (PC) ]] (ADD 1 (STATICCALL 50000 <contract:0x095e7baea6a6c7c4c2dfeb977efac326af552d87> 0 0 0 0)) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x195e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 1 (PC)) (STATICCALL 100000 <contract:0x245304eb96065b2a98b57a48a06ae28d285a71b5> 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x245304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \" { (MSTORE 1 (PC)) (STATICCALL 50000 <contract:0x195e7baea6a6c7c4c2dfeb977efac326af552d87> 0 0 0 0) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0x195e7baea6a6c7c4c2dfeb977efac326af552d87>\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_ABAcalls1Filler.json",
    "content": "{\n    \"static_ABAcalls1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun<Osaka\"],\n                \"result\" : {\n        \t\t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t            \t\"storage\" : {\n\t\t            \t    \"0x00\" : \"0x01\",\n\t\t            \t    \"0x01\" : \"0x01\"\n\t\t            \t}\n\t                },\n                    \"<contract:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x26\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"storage\" : {\n                            \"0x29\" : \"0x00\"\n                        }\n                    }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n\t\t            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x01\",\n\t\t                    \"0x01\" : \"0x01\"\n\t\t                }\n\t\t            },\n                    \"<contract:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x26\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"storage\" : {\n                            \"0x29\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n    \t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) 0 0 0 0 0) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ (PC) ]] (STATICCALL (- (GAS) 100000) <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \" { [[ (PC) ]] (ADD 1 (STATICCALL (- (GAS) 100000) <contract:0x095e7baea6a6c7c4c2dfeb977efac326af552d87> 0 0 0 0)) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0x195e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 1 (PC)) (STATICCALL (- (GAS) 100000) <contract:0x245304eb96065b2a98b57a48a06ae28d285a71b5> 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x245304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \" { (MSTORE (PC) (ADD 1 (STATICCALL (- (GAS) 100000) <contract:0x195e7baea6a6c7c4c2dfeb977efac326af552d87> 0 0 0 0)) ) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n        \t\t\":raw 0x000000000000000000000000<contract:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n                \":raw 0x000000000000000000000000<contract:0x195e7baea6a6c7c4c2dfeb977efac326af552d87>\"\n            ],\n            \"gasLimit\" : [\n                \"1000000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_ABAcalls2Filler.json",
    "content": "{\n    \"static_ABAcalls2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n        \t\t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n            \t\t\t\"storage\" : {\n            \t\t\t    \"0x00\" : \"0x01\",\n        \t\t            \"0x01\" : \"0x01\"\n            \t\t\t}\n        \t\t    },\n                    \"<contract:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n\t\t            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t\t            \"storage\" : {\n\t\t\t                \"0x00\" : \"0x01\",\n\t                        \"0x01\" : \"0x01\"\n\t\t\t            }\n\t\t            },\n                    \"<contract:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t            \"balance\" : \"0\",\n\t            \"code\" : \"{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] 1 }\",\n\t            \"nonce\" : \"0\",\n\t            \"storage\" : {\n\t            }\n    \t    },\n            \"<contract:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (ADD (SLOAD 0) 1) (STATICCALL (- (GAS) 100000) <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \" { [[ 0 ]] (ADD (SLOAD 0) 1) (STATICCALL (- (GAS) 100000) <contract:0x095e7baea6a6c7c4c2dfeb977efac326af552d87> 0 0 0 0) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:0x195e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  ( MSTORE 0 (ADD (MLOAD 0) 1)) (STATICCALL (- (GAS) 100000) <contract:0x245304eb96065b2a98b57a48a06ae28d285a71b5> 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x245304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \" { ( MSTORE 0 (ADD (MLOAD 0) 1)) (STATICCALL (- (GAS) 100000) <contract:0x195e7baea6a6c7c4c2dfeb977efac326af552d87> 0 0 0 0) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n        \t\t\":raw 0x000000000000000000000000<contract:0x195e7baea6a6c7c4c2dfeb977efac326af552d87>\"\n            ],\n            \"gasLimit\" : [\n                \"1000000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_ABAcalls3Filler.json",
    "content": "{\n    \"static_ABAcalls3\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \t\t\"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n\t\t\t\t\t\t    \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    }\n                }\n            },\n\t    \t{\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t    \t\t\t\"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n\t\t\t    \t\t\t\"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x195e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x245304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n\t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1025000\",\n                \"code\" : \"{  [[ 0 ]] (ADD (SLOAD 0) 1) (STATICCALL (- (GAS) 100000) <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \" { [[ 0 ]] (ADD (SLOAD 0) 1) (STATICCALL (- (GAS) 100000) <contract:0x095e7baea6a6c7c4c2dfeb977efac326af552d87> 0 0 0 0) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x195e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1025000\",\n                \"code\" : \"{  (MSTORE 0 (ADD (SLOAD 0) 1)) (STATICCALL (- (GAS) 100000) <contract:0x245304eb96065b2a98b57a48a06ae28d285a71b5> 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x245304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \" { (MSTORE 0 (ADD (SLOAD 0) 1)) (STATICCALL (- (GAS) 100000) <contract:0x195e7baea6a6c7c4c2dfeb977efac326af552d87> 0 0 0 0) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n        \t\t\":raw 0x000000000000000000000000<contract:0x195e7baea6a6c7c4c2dfeb977efac326af552d87>\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_ABAcallsSuicide0Filler.json",
    "content": "{\n    \"static_ABAcallsSuicide0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"storage\" : {\n                            \"0x26\" : \"0x00\"\n                        }\n                    },\n\t\t            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t\t            \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                         }\n\t\t            }\n                }\n            },\n\t        {\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t\t            \"storage\" : \n                            {\n                                \"0x00\" : \"0x01\",\n        \t\t\t            \"0x01\" : \"0x01\"\n                            }\n\t\t             },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"storage\" : {\n                            \"0x26\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n\t        \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ (PC) ]] (STATICCALL 100000 <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 0 0 0 0) (SELFDESTRUCT <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \"{ [[ (PC) ]] (ADD 1 (STATICCALL 50000 <contract:0x095e7baea6a6c7c4c2dfeb977efac326af552d87> 0 0 0 0)) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x195e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE (PC)  (STATICCALL 100000 <contract:0x245304eb96065b2a98b57a48a06ae28d285a71b5> 0 0 0 0)) (SELFDESTRUCT <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x245304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \"{ (MSTORE (PC) (ADD 1 (STATICCALL 50000 <contract:0x195e7baea6a6c7c4c2dfeb977efac326af552d87> 0 0 0 0)) ) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0x195e7baea6a6c7c4c2dfeb977efac326af552d87>\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_ABAcallsSuicide1Filler.json",
    "content": "{\n    \"static_ABAcallsSuicide1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6\" : {\n            \t\t\t\"shouldnotexist\" : \"1\"\n                    },\n\t\t            \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n\t\t\t            \"balance\" : \"23\",\n                        \"storage\" : {\n                        }\n\t\t            },\n\t\t            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t            \"nonce\" : \"1\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 0 (CALLDATALOAD 0)) (STATICCALL (CALLDATALOAD 0) 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 32 0 0)   }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                \"balance\" : \"23\",\n                \"code\" : \"{  (MSTORE 0 (CALLDATALOAD 0))  (STATICCALL (SUB (CALLDATALOAD 0) 50000) 0x095e7baea6a6c7c4c2dfeb977efac326af552d87 0 32 0 0) (SELFDESTRUCT 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x00000000000000000000000000000000000000000000000000000000000186a0\",\n                \":raw 0x00000000000000000000000000000000000000000000000000000000000486a0\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CALL_OneVCallSuicideFiller.json",
    "content": "{\n    \"static_CALL_OneVCallSuicide\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n        \t\t    \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n            \t\t\t\"balance\" : \"1\"\n        \t\t    },\n        \t\t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n            \t\t\t\"storage\" : {\n            \t\t\t    \"0x01\" : \"0x00\",\n        \t\t            \"0x64\" : \"0x01\"\n        \t\t        }\n        \t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"100\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{  [[1]](STATICCALL 60000 <contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0) [[100]] 1 }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n\t        \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (SELFDESTRUCT <contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CALL_ZeroVCallSuicideFiller.json",
    "content": "{\n    \"static_CALL_ZeroVCallSuicide\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t\t\t    \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t\t\t\t\t\"code\" : \"0x73<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>ff00\"\n\t\t\t\t    },\n\t\t\t\t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t\t\t\t\t\"storage\" : {\n\t\t\t\t            \"0x00\" : \"0x00\",\n\t\t\t\t            \"0x64\" : \"0x00\"\n\t\t\t\t        }\n\t\t\t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (STATICCALL 60000 <contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (SELFDESTRUCT <contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CREATE_ContractSuicideDuringInitFiller.json",
    "content": "{\n    \"static_CREATE_ContractSuicideDuringInit\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n    \t\t\t        \"shouldnotexist\" : \"1\"\n\t\t            },\n\t\t            \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n    \t\t\t        \"balance\" : \"0\",\n\t\t                \"storage\" : {\n    \t\t\t            \"0x01\" : \"0x00\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n        \t\t\"// code\" : \"This indicates that a call from transaction was initiated\",\n                \"code\" : \"{ (MSTORE 1 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"11\",\n                \"code\" : \"{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"d94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"11\",\n                \"code\" : \"{ (SSTORE 1 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"e94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"11\",\n                \"code\" : \"{ (CALL 100 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n\t    \"// data\" : \"{(STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) (MSTORE 0 0x64600c6000556000526005601bf3) (SELFDESTRUCT 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b)}\",\n            \"data\" : [\n                \":raw 0x600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60fa506d64600c6000556000526005601bf360005273c94f5374fce5edbc8e2a8697c15331677e6ebf0bff\",\n                \":raw 0x600060006000600073b94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60fa506d64600c6000556000526005601bf360005273c94f5374fce5edbc8e2a8697c15331677e6ebf0bff\",\n                \":raw 0x600060006000600073d94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60fa506d64600c6000556000526005601bf360005273c94f5374fce5edbc8e2a8697c15331677e6ebf0bff\",\n                \":raw 0x600060006000600073e94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60fa506d64600c6000556000526005601bf360005273c94f5374fce5edbc8e2a8697c15331677e6ebf0bff\"\n            ],\n            \"gasLimit\" : [\n                \"150000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CREATE_ContractSuicideDuringInit_ThenStoreThenReturnFiller.json",
    "content": "{\n    \"static_CREATE_ContractSuicideDuringInit_ThenStoreThenReturn\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t            \t\"shouldnotexist\" : \"1\"\n\t\t            },\n\t\t            \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t            \t\"balance\" : \"0\",\n\t\t                \"storage\" : {\n\t\t\t            \"0x01\" : \"0x00\"\n\t\t                }\n\t\t            },\n        \t\t    \"d94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t            \t\t\"balance\" : \"10\",\n\t\t                \"storage\" : {\n\t\t\t            \"0x01\" : \"0x00\"\n\t\t                }\n        \t\t    },\n        \t\t    \"094f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n            \t\t\t\"balance\" : \"0\",\n\t\t                \"storage\" : {\n\t\t\t            \"0x01\" : \"0x00\"\n\t\t                }\n\t\t            },\n        \t\t    \"194f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t            \t\"balance\" : \"0\",\n\t\t                \"storage\" : {\n        \t\t\t        \"0x01\" : \"0x00\"\n\t\t                }\n\t        \t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n\t        \t\"// code\" : \"This indicates that a call from transaction was initiated\",\n                \"code\" : \"{[[1]]12}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"d94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n\t        \t\"// code\" : \"This indicates that a call from transaction was initiated\",\n                \"code\" : \"{[[1]]12}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"094f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n\t        \t\"// code\" : \"This indicates that a call from transaction was initiated\",\n                \"code\" : \"{ (MSTORE 1 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"194f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n\t        \t\"// code\" : \"This indicates that a call from transaction was initiated\",\n                \"code\" : \"{(MSTORE 1 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n    \t    \"// data\" : \"{ (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) (MSTORE 0 0x64600c6000556000526005601bf3) (SELFDESTRUCT 0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b) (STATICCALL 60000 0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[0]]11 (RETURN 18 14)}\",\n            \"data\" : [\n                \":raw 0x600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60fa506d64600c6000556000526005601bf360005273d94f5374fce5edbc8e2a8697c15331677e6ebf0bff600060006000600073d94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60fa50600b600055600e6012f3\",\n                \":raw 0x600060006000600073094f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60fa506d64600c6000556000526005601bf360005273d94f5374fce5edbc8e2a8697c15331677e6ebf0bff600060006000600073194f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60fa50600b600055600e6012f3\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CREATE_ContractSuicideDuringInit_WithValueFiller.json",
    "content": "{\n    \"static_CREATE_ContractSuicideDuringInit_WithValue\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n    \t\t\t        \"shouldnotexist\" : \"1\"\n\t\t            },\n\t\t            \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n    \t\t\t        \"balance\" : \"10\",\n\t\t                \"storage\" : {\n\t\t\t            \"0x01\" : \"0x00\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n\t        \t\"// code\" : \"This indicates that a call from transaction was initiated\",\n                \"code\" : \"{[[1]]12}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"d94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n\t        \t\"// code\" : \"This indicates that a call from transaction was initiated\",\n                \"code\" : \"{ (MSTORE 1 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n    \t    \"// data\" : \"{(STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) (MSTORE 0 0x64600c6000556000526005601bf3) (SELFDESTRUCT 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b)}\",\n            \"data\" : [\n                \":raw 0x600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60fa506d64600c6000556000526005601bf360005273c94f5374fce5edbc8e2a8697c15331677e6ebf0bff\",\n                \":raw 0x600060006000600073d94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60fa506d64600c6000556000526005601bf360005273c94f5374fce5edbc8e2a8697c15331677e6ebf0bff\"\n            ],\n            \"gasLimit\" : [\n                \"150000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CREATE_EmptyContractAndCallIt_0weiFiller.json",
    "content": "{\n    \"static_CREATE_EmptyContractAndCallIt_0wei\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"//comment\" : \"CREATE price changed in Shanghai\",\n                    \"//comment\" : \"Due to eip-3860 (https://eips.ethereum.org/EIPS/eip-3860) pay extra 2 gas for each 32 bytes of initcode\",\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"storage\" : {\n    \t\t\t            \"0x00\" : \"0x08d5b6\",\n\t\t                    \"0x01\" : \"0xf1ecf98489fa9ed60a664fc4998db699cfa39d40\",\n\t\t                    \"0x02\" : \"0x07abf8\",\n\t\t                    \"0x03\" : \"0x01\",\n\t\t                    \"0x64\" : \"0x06fe6e\"\n\t\t                }\n\t\t            },\n\t\t            \"f1ecf98489fa9ed60a664fc4998db699cfa39d40\" : {\n    \t\t\t        \"nonce\" : \"1\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [[0]](GAS) [[1]] (CREATE 0 0 32) [[2]](GAS) [[3]] (STATICCALL 60000 (SLOAD 1) 0 0 0 0) [[100]] (GAS) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CREATE_EmptyContractWithStorageAndCallIt_0weiFiller.json",
    "content": "{\n    \"static_CREATE_EmptyContractWithStorageAndCallIt_0wei\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"//comment\" : \"CREATE price changed in Shanghai\",\n                    \"//comment\" : \"Due to eip-3860 (https://eips.ethereum.org/EIPS/eip-3860) pay extra 2 gas for each 32 bytes of initcode\",\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x08d5b6\",\n\t\t                    \"0x01\" : \"0xf1ecf98489fa9ed60a664fc4998db699cfa39d40\",\n\t\t                    \"0x02\" : \"0x06f4f0\",\n\t\t                    \"0x03\" : \"0x01\",\n\t\t                    \"0x64\" : \"0x064766\"\n\t\t                }\n\t\t            },\n\t\t            \"f1ecf98489fa9ed60a664fc4998db699cfa39d40\" : {\n\t\t                \"nonce\" : \"1\"\n\t\t            },\n\t\t            \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x0c\"\n\t\t\t            }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"// code\" : \"{ [[0]]12 (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0)}\",\n\t\t        \"code\" : \"{ [[0]](GAS) (MSTORE 0 0x600c6000556000600060006000600073c94f5374fce5edbc8e2a8697c1533167) (MSTORE 32 0x7e6ebf0b61ea60f1000000000000000000000000000000000000000000000000) [[1]] (CREATE 0 0 64) [[2]] (GAS) [[3]] (STATICCALL 60000 (SLOAD 1) 0 0 0 0) [[100]] (GAS) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n\t    \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n        \t\t\"code\" : \"{[[1]]12}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_Call1024BalanceTooLow2Filler.json",
    "content": "{\n    \"static_Call1024BalanceTooLow2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : { \"data\" : 0, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [  \">=Cancun<Osaka\" ],\n                \"result\" : {\n                    \"<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n            \t\t\t    \"0x01\" : \"0x00\"\n                        }\n                    },\n        \t\t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n            \t\t\t\"storage\" : {\n                            \"0x00\" : \"0x01\",\n            \t\t\t    \"0x01\" : \"0x01\"\n                        }\n        \t\t    }\n                }\n            },\n\t        {\n                \"indexes\" : { \"data\" : 1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun<Osaka\" ],\n                \"result\" : {\n                    \"<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n\t            \t\t    \"0x01\" : \"0x00\"\n                        }\n                    },\n\t        \t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n            \t\t\t\"storage\" : {\n                            \"0x00\" : \"0x01\",\n\t            \t\t    \"0x01\" : \"0x01\"\n                        }\n\t        \t    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"7000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1024\",\n                \"code\" : \"{ [[ 0 ]] (ADD @@0 1) [[ 1 ]] (STATICCALL 0xfffffffffff <contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b> @@0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1024\",\n                \"code\" : \"{ (MSTORE 0 (ADD (MLOAD 0) 1)) (MSTORE 32 (STATICCALL 0xfffffffffff <contract:0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b> (MLOAD 0) 0 0 0)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\"\n            ],\n            \"gasLimit\" : [\n                \"0x10000000d788\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_Call1024BalanceTooLowFiller.json",
    "content": "{\n    \"static_Call1024BalanceTooLow\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun<Osaka\"],\n                \"result\" : {\n\t\t\t\t\t\"<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t\t\t\t\t\"storage\" : {\n\t\t\t\t\t\t    \"0x00\" : \"0x01\",\n\t\t\t\t\t\t\t\"0x01\" : \"0x00\"\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t\"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t\t\t\t\t\"storage\" : {\n\t\t\t\t\t\t    \"0x00\" : \"0x01\",\n\t\t\t\t\t\t\t\"0x01\" : \"0x01\"\n\t\t\t\t\t\t}\n\t\t\t\t\t } \n                }\n            },\n\t\t    {\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n\t\t\t\t\t\"<contract:0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t\t\t\t\t\"storage\" : {\n\t\t\t\t\t\t\t\"0x00\" : \"0x00\",\n\t\t\t\t\t\t\t\"0x01\" : \"0x00\"\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t\"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t\t\t\t\t\"storage\" : {\n\t\t\t\t            \"0x00\" : \"0x01\",\n\t\t\t\t\t\t\t\"0x01\" : \"0x01\"\n\t\t\t\t        }\n\t\t\t\t\t } \n\t\t\t\t}\n\t\t\t}\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\n            \"<eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"7000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t        \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1024\",\n                \"code\" : \"{ [[ 0 ]] (ADD @@0 1) [[ 1 ]] (STATICCALL 0xfffffffffff <contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b> @@0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1024\",\n                \"code\" : \"{ (MSTORE 0 (ADD (MLOAD 0) 1)) (MSTORE 32 (STATICCALL 0xfffffffffff <contract:0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b> (MLOAD 0) 0 0 0)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n        \t\t\":raw 0x000000000000000000000000<contract:0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\"\n            ],\n            \"gasLimit\" : [\n                \"17592186099592\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_Call1024OOGFiller.json",
    "content": "{\n    \"static_Call1024OOG\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : { \"data\" : 0, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n                    \"<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x03e9\"\n                        }\n                    },\n\t\t\t\t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t\t\t\t\t\"storage\" : {\n                            \"0x00\" : \"0x01\",\n\t\t\t\t\t\t    \"0x01\" : \"0x01\"\n                        }\n\t\t\t\t    }\n                }\n            },\n\t\t    {\n                \"indexes\" : { \"data\" : 1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\" ],\n                \"result\" : {\n                    \"<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n        \t\t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t            \t\"storage\" : {\n                            \"0x00\" : \"0x01\",\n\t\t\t    \t\t\t\"0x01\" : \"0x01\"\n                        }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"7000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t        \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1024\",\n                \"code\" : \"{ [[ 0 ]] (ADD @@0 1) [[ 1 ]] (STATICCALL (MUL (SUB (GAS) 10000) (SUB 1 (DIV @@0 1025))) <contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0) [[ 2 ]] (ADD 1(MUL @@0 1000)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1024\",\n                \"code\" : \"{ (MSTORE 0 (ADD (MLOAD 0) 1))  (STATICCALL (MUL (SUB (GAS) 10000) (SUB 1 (DIV (MLOAD 0) 1025))) <contract:0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0) (MSTORE 32 (ADD 1(MUL (MLOAD 0) 1000))) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n        \t\t\":raw 0x000000000000000000000000<contract:0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\"\n            ],\n            \"gasLimit\" : [\n                \"15720826\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_Call1024PreCalls2Filler.json",
    "content": "{\n    \"static_Call1024PreCalls2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x0400\",\n            \t\t\t    \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n\t\t            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t    \t\t        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n            \t\t\t    \"0x01\" : \"0x01\"\n                        }\n\t\t             }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n            \t\t\t    \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n        \t\t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t            \t\"storage\" : {\n                            \"0x00\" : \"0x01\",\n\t\t\t                \"0x01\" : \"0x01\"\n                        }\n\t\t             }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"7000\",\n                \"code\" : \"{ (MSTORE 0 1)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"2024\",\n                \"code\" : \"{ [[ 2 ]] (STATICCALL 0xffff <contract:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0) [[ 3 ]] (STATICCALL 0xffff <contract:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0)  [[ 0 ]] (ADD @@0 1) [[ 1 ]] (DELEGATECALL 0xfffffffffff <contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"2024\",\n                \"code\" : \"{ (STATICCALL 0xffff <contract:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0) (STATICCALL 0xffff <contract:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0)  (MSTORE 0 (ADD (MLOAD 0) 1)) (DELEGATECALL 0xfffffffffff <contract:0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\"\n            ],\n            \"gasLimit\" : [\n                \"9214364837600034817\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_Call1024PreCalls3Filler.json",
    "content": "{\n    \"static_Call1024PreCalls3\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : { \"data\" : 0, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun<Osaka\" ],\n                \"result\" : {\n                    \"<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n\t\t\t                \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x01\",\n                            \"0x03\" : \"0x01\"\n                        }\n                    },\n\t\t            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t    \t\t        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n\t                        \"0x01\" : \"0x01\"\n                        }\n\t\t             }\n                }\n            },\n    \t    {\n                \"indexes\" : { \"data\" : 1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun<Osaka\" ],\n                \"result\" : {\n                    \"<contract:0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n\t\t\t                \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n        \t\t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t            \t\"storage\" : {\n                            \"0x00\" : \"0x01\",\n            \t\t\t    \"0x01\" : \"0x01\"\n                        }\n\t\t             }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"7000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"2024\",\n                \"code\" : \"{ [[ 2 ]] (STATICCALL 0xffff <eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0) [[ 3 ]] (STATICCALL 0xffff <eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0)  [[ 0 ]] (ADD @@0 1) [[ 1 ]] (STATICCALL 0xfffffffffff <contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"2024\",\n                \"code\" : \"{ (STATICCALL 0xffff <eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0) (STATICCALL 0xffff <eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0)  (MSTORE 0 (ADD (MLOAD 0) 1)) (STATICCALL 0xfffffffffff <contract:0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n        \t\t\":raw 0x000000000000000000000000<contract:0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\"\n            ],\n            \"gasLimit\" : [\n                \"9214364837600034817\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_Call1024PreCallsFiller.json",
    "content": "{\n    \"static_Call1024PreCalls\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun<Osaka\"],\n                \"result\" : {\n\t\t\t\t\t\"<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t\t\t\t\t\"storage\" : {\n\t\t\t\t\t\t    \"0x00\" : \"0x01\",\n\t\t\t\t\t\t\t\"0x01\" : \"0x00\",\n\t\t\t\t\t\t\t\"0x02\" : \"0x01\",\n\t\t\t\t\t\t\t\"0x03\" : \"0x01\"\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t\"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t\t\t\t\t\"storage\" : {\n\t\t                    \"0x00\" : \"0x01\",\n\t\t    \t\t\t    \"0x01\" : \"0x01\"\n\t\t                }\n\t\t\t\t\t }\n\t\t        }\n            },\n\t    \t{\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n\t\t\t\t\t\"<contract:0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t\t\t\t\t\"storage\" : {\n\t\t\t\t\t\t    \"0x00\" : \"0x00\",\n\t\t\t\t\t\t\t\"0x01\" : \"0x00\",\n\t\t\t\t\t\t\t\"0x02\" : \"0x00\",\n\t\t\t\t\t\t\t\"0x03\" : \"0x00\"\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t\"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t\t\t\t\t\"storage\" : {\n\t\t                    \"0x00\" : \"0x01\",\n\t\t\t\t\t        \"0x01\" : \"0x01\"\n\t\t\t\t        }\n\t\t\t\t\t}\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\n\t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\n            \"<eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"7000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"2024\",\n                \"code\" : \"{ [[ 2 ]] (STATICCALL 0xffff <eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0) [[ 3 ]] (STATICCALL 0xffff <eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0)  [[ 0 ]] (ADD @@0 1) [[ 1 ]] (STATICCALL 0xfffffffffff <contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"2024\",\n                \"code\" : \"{ (STATICCALL 0xffff <eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0) (STATICCALL 0xffff <eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0)  (MSTORE 0 (ADD (MLOAD 0) 1)) (STATICCALL 0xfffffffffff <contract:0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n        \t\t\":raw 0x000000000000000000000000<contract:0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\"\n            ],\n            \"gasLimit\" : [\n                \"9214364837600034817\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_Call10Filler.json",
    "content": "{\n    \"static_Call10\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x0a\"\n                        }\n                    },\n\t\t            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t\t                \"0x00\" : \"0x01\",\n\t\t\t                \"0x01\" : \"0x01\"\n\t                    }\n\t\t            }\n                }\n            },\n\t        {\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x00\"\n                        }\n                    },\n\t\t            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t\t                \"0x00\" : \"0x01\",\n\t\t\t                \"0x01\" : \"0x01\"\n\t                    }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"7000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000\",\n                \"code\" : \"{ (def 'i 0x80) (for {} (< @i 10) [i](+ @i 1) [[ 0 ]](STATICCALL 0xfffffffffff <eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b> 0 50000 0 0) ) [[ 1 ]] @i}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000\",\n                \"code\" : \"{ (def 'i 0x80) (for {} (< @i 10) [i](+ @i 1) (MSTORE 0 (STATICCALL 0xfffffffffff <eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b> 0 50000 0 0)) ) (MSTORE 32 @i)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n        \t\t\":raw 0x000000000000000000000000<contract:0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\"\n            ],\n            \"gasLimit\" : [\n                \"200000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_Call1MB1024CalldepthFiller.json",
    "content": "{\n    \"static_Call1MB1024Calldepth\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"892500000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun<Osaka\"],\n                \"result\" : {\n\t\t\t\t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t\t\t        \"storage\" : {\n\t\t\t\t\t\t    \"0x00\" : \"0x01\"\n\t\t\t        }\n\t\t\t\t    },\n                    \"<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n\t\t\t\t\t\t    \"0x00\" : \"0x01\",\n\t\t\t\t\t\t    \"0x01\" : \"0x00\"\n                        }\n                    }\n                }\n            },\n\t    \t{\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n\t\t\t\t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t\t\t        \"storage\" : {\n\t\t\t\t\t\t    \"0x00\" : \"0x01\"\n\t\t\t\t        }\n\t\t\t\t    },\n                    \"<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n\t\t\t\t\t\t    \"0x00\" : \"0x00\",\n\t\t\t\t\t\t    \"0x01\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0xfffffffffffff\",\n                \"code\" : \"{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) 0 0 0 0 0)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffff\",\n                \"code\" : \"{ (def 'i 0x80) [[ 0 ]] (+ @@0 1) (if (LT @@0 1024) [[ 1 ]] (STATICCALL (- (GAS) 1005000) <contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b> 0 1000000 0 0) [[ 2 ]] 1 )  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffff\",\n                \"code\" : \"{ (def 'i 0x80) (MSTORE 0 (+ (MLOAD 0) 1)) (if (LT (MLOAD 0) 1024) (MSTORE 32 (STATICCALL (- (GAS) 1005000) <contract:0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b> 0 1000000 0 0)) (MSTORE 64 1) )   }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n        \t\t\":raw 0x000000000000000000000000<contract:0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\"\n            ],\n            \"gasLimit\" : [\n                \"882500000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_Call50000Filler.json",
    "content": "{\n    \"static_Call50000\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"100000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n\t\t\t\t\t\t\t\"0x00\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"balance\" : \"4503599627370505\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n\t\t\t\t\t\t\t\"0x00\" : \"0x00\",\n                            \"0x01\" : \"50000\"\n                        }\n                    },\n\t\t\t\t\t\"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t\t\t\t\t\"storage\" : {\n\t\t\t\t\t\t\t\"0x00\" : \"0x01\",\n\t\t\t\t\t\t\t\"0x01\" : \"0x01\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"balance\" : \"0x1b58\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n\t\t\t\t\t\t\t\"0x00\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0xcccf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n\t\t\t\t\t\t\t\"0x00\" : \"0x01\",\n\t\t\t\t\t\t\t\"0x20\" : \"0xc350\"\n                        }\n                    },\n\t\t\t\t\t\"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t\t\t\t\t\"storage\" : {\n\t\t\t\t\t\t\t\"0x00\" : \"0x01\",\n\t\t\t\t\t\t\t\"0x01\" : \"0x01\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"7000\",\n                \"code\" : \"{ (MSTORE 0 (SLOAD 0)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n\t\t\t\t\t\"0x00\" : \"0x01\"\n                }\n            },\n\t\t\t\"<contract:0xbaaf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"7000\",\n                \"code\" : \"{ (SSTORE 0 (SLOAD 0)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n\t\t\t\t\t\"0x00\" : \"0x01\"\n                }\n            },\n\t    \t\"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffff\",\n                \"code\" : \"{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (STATICCALL 100000 <contract:0xbaaf5374fce5edbc8e2a8697c15331677e6ebf0b> 0 50000 0 0) ) [[ 1 ]] @i}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xcccf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffff\",\n                \"code\" : \"{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (SSTORE 0 (STATICCALL 100000 <contract:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b> 0 50000 0 0)) ) (SSTORE 32 @i ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n\t\t\t\t\":raw 0x000000000000000000000000<contract:0xcccf5374fce5edbc8e2a8697c15331677e6ebf0b>\"\n            ],\n            \"gasLimit\" : [\n                \"90000000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_Call50000_ecrecFiller.json",
    "content": "{\n    \"static_Call50000_ecrec\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"95000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x01\" : \"0xc350\"\n                        }\n                    },\n\t\t            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t\t                \"0x00\" : \"0x01\",\n\t\t\t                \"0x01\" : \"0x01\"\n\t\t                }\n\t\t            }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n\t\t            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t\t                \"0x00\" : \"0x01\",\n\t\t\t                \"0x01\" : \"0x01\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffff\",\n                \"code\" : \"{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (STATICCALL 500 1 0 50000 0 0) ) [[ 1 ]] @i}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xcccf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffff\",\n                \"code\" : \"{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (MSTORE 0 (STATICCALL 500 1 0 50000 0 0)) ) (MSTORE 32 @i ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0xcccf5374fce5edbc8e2a8697c15331677e6ebf0b>\"\n            ],\n            \"gasLimit\" : [\n                \"94500000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_Call50000_identity2Filler.json",
    "content": "{\n    \"static_Call50000_identity2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"8925000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x02\" : \"0x2a\",\n                            \"0x01\" : \"0xc350\"\n                        }\n                    },\n\t\t            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t\t                \"0x00\" : \"0x01\",\n\t\t\t                \"0x01\" : \"0x01\"\n\t\t                }\n\t\t            }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n\n                        }\n                    },\n\t\t            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t\t                \"0x00\" : \"0x01\",\n\t\t\t                \"0x01\" : \"0x01\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffff\",\n                \"code\" : \"{ (def 'i 0x80) [ 1 ] 42 (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (STATICCALL 1564 4 0 50000 1 50000) ) [[ 1 ]] @i [[ 2 ]] @1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xcccf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffff\",\n                \"code\" : \"{ (def 'i 0x80) [ 1 ] 42 (for {} (< @i 50000) [i](+ @i 1) (MSTORE 0 (STATICCALL 1564 4 0 50000 1 50000)) ) (MSTORE 32 @i) (MSTORE 64 @1 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n        \t\t\":raw 0x000000000000000000000000<contract:0xcccf5374fce5edbc8e2a8697c15331677e6ebf0b>\"\n            ],\n            \"gasLimit\" : [\n                \"882500000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_Call50000_identityFiller.json",
    "content": "{\n    \"static_Call50000_identity\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"89250000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n\t\t\t\t\t\"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t\t\t\t\t\"storage\" : {\n\t\t\t\t\t\t    \"0x00\" : \"0x00\",\n\t\t\t\t\t\t    \"0x01\" : \"0x01\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n                }\n            },\n\t\t    {\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n\t\t\t\t\t\"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t\t\t\t\t\"storage\" : {\n\t\t\t\t\t\t    \"0x00\" : \"0x00\",\n\t\t\t\t\t\t    \"0x01\" : \"0x01\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t\t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffff\",\n                \"code\" : \"{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (STATICCALL 1564 4 0 50000 0 0) ) [[ 1 ]] @i}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xcccf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffff\",\n                \"code\" : \"{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (MSTORE 0 (STATICCALL 1564 4 0 50000 0 0)) ) (MSTORE 32 @i ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n        \t\t\":raw 0x000000000000000000000000<contract:0xcccf5374fce5edbc8e2a8697c15331677e6ebf0b>\"\n            ],\n            \"gasLimit\" : [\n                \"88250000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_Call50000_rip160Filler.json",
    "content": "{\n    \"static_Call50000_rip160\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"39250000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"code\" : \"0x5b61c3506080511015602b576000600061c3506000600362013178fa6000556001608051016080526000565b60805160015500\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n\t\t\t\t\t\t\t\"0x00\" : \"0x00\",\n\t\t\t\t\t\t\t\"0x01\" : \"0x00\"\n                        }\n                    },\n\t\t            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t\t                \"0x00\" : \"0x00\",\n\t\t\t                \"0x01\" : \"0x01\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffff\",\n                \"code\" : \"{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (STATICCALL 78200 3 0 50000 0 0) ) [[ 1 ]] @i}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xcccf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffff\",\n                \"code\" : \"{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (MSTORE 0 (STATICCALL 78200 3 0 50000 0 0)) ) (MSTORE 32 @i) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0xcccf5374fce5edbc8e2a8697c15331677e6ebf0b>\"\n            ],\n            \"gasLimit\" : [\n                \"3925000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_Call50000bytesContract50_1Filler.json",
    "content": "{\n    \"static_Call50000bytesContract50_1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"892500000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b>\" : {                        \n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x00\"\n                        }\n                    },\n        \t\t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n    \t\t\t        \"storage\" : {\n                                \"0x00\" : \"0x00\",\n                \t\t\t    \"0x01\" : \"0x01\"\n                            }\n    \t\t             }\n                    }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b>\" : {                        \n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x00\"\n                        }\n                    },\n\t\t    \t\t\"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t\t\t\t\t\"storage\" : {\n                            \"0x00\" : \"0x01\",\n\t\t\t    \t\t\t\"0x01\" : \"0x01\"\n                        }\n\t\t     \t\t}\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffff\",\n                \"code\" : \":raw 0x6001600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffff\",\n                \"code\" : \"{ (def 'i 0x80) (for {} (< @i 50) [i](+ @i 1) [[ 0 ]] (STATICCALL 88250000000 <contract:0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0) ) [[ 1 ]] @i }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xccc50000fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffff\",\n                \"code\" : \":raw 0x60016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016000\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xdddf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffff\",\n                \"code\" : \"{ (def 'i 0x80) (for {} (< @i 50) [i](+ @i 1) (MSTORE 0 (STATICCALL 88250000000 <contract:0xccc50000fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0)) ) (MSTORE 32 @i) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0xdddf5374fce5edbc8e2a8697c15331677e6ebf0b>\"\n            ],\n            \"gasLimit\" : [\n                \"882500000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_Call50000bytesContract50_2Filler.json",
    "content": "{\n    \"static_Call50000bytesContract50_2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"892500000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x00\"\n                        }\n                    },\n        \t\t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n    \t\t\t        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n    \t\t\t            \"0x01\" : \"0x01\"\n                        }\n    \t             }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x00\"\n                        }\n                    },\n        \t\t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t    \t        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x01\"\n                        }\n\t\t             }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffff\",\n                \"code\" : \":raw 0x60015b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b600101600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffff\",\n                \"code\" : \"{ (def 'i 0x80) (for {} (< @i 50) [i](+ @i 1) [[ 0 ]] (STATICCALL 88250000000 <contract:0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0) ) [[ 1 ]] @i }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xccc50000fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffff\",\n                \"code\" : \":raw 0x60015b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b600101\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xdddf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffff\",\n                \"code\" : \"{ (def 'i 0x80) (for {} (< @i 50) [i](+ @i 1) (MSTORE 0 (STATICCALL 88250000000 <contract:0xccc50000fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0)) ) (MSTORE 32 @i ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0xdddf5374fce5edbc8e2a8697c15331677e6ebf0b>\"\n            ],\n            \"gasLimit\" : [\n                \"882500000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_Call50000bytesContract50_3Filler.json",
    "content": "{\n    \"static_Call50000bytesContract50_3\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"892500000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x00\"\n                        }\n                    },\n\t\t            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t\t                \"0x00\" : \"0x00\",\n\t\t\t                \"0x01\" : \"0x01\"\n\t\t                }\n\t\t            }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x00\"\n                        }\n                    },\n\t\t            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t\t                \"0x00\" : \"0x01\",\n\t\t\t                \"0x01\" : \"0x01\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffff\",\n                \"code\" : \":raw 0x600161da8e565b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b600101600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffff\",\n                \"code\" : \"{ (def 'i 0x80) (for {} (< @i 50) [i](+ @i 1) [[ 0 ]] (STATICCALL 88250000000 <contract:0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0) ) [[ 1 ]] @i }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xccc50000fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffff\",\n                \"code\" : \":raw 0x600161da8e565b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b600101\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xdddf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffff\",\n                \"code\" : \"{ (def 'i 0x80) (for {} (< @i 50) [i](+ @i 1) (MSTORE 0 (STATICCALL 88250000000 <contract:0xccc50000fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0)) ) (MSTORE 32 @i ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0xdddf5374fce5edbc8e2a8697c15331677e6ebf0b>\"\n            ],\n            \"gasLimit\" : [\n                \"882500000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallAndCallcodeConsumeMoreGasThenTransactionHasFiller.json",
    "content": "{\n    \"static_CallAndCallcodeConsumeMoreGasThenTransactionHas\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t\t\t\t\"<contract:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t\t\t\t\t\"storage\" : {\n\t\t\t\t\t\t\t\t\"0x00\" : \"0x00\",\n\t\t\t\t\t\t\t\t\"0x08\" : \"0x00\",\n\t\t\t\t\t\t\t\t\"0x09\" : \"0x00\",\n\t\t\t\t\t\t\t\t\"0x0a\" : \"0x00\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t    \"<contract:0x1000000000000000000000000000000000000103>\" : {\n                        \"code\" : \"0x601260005500\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            },\n\t        {\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t\t\t\t\"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t\t\t\t\t\"storage\" : {\n\t\t\t\t\t\t\t\t\"0x00\" : \"0x12\",\n\t\t\t\t\t\t\t\t\"0x09\" : \"0x01\",\n\t\t\t\t\t\t\t\t\"0x0a\" : \"0x01\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t    \"<contract:0x2000000000000000000000000000000000000103>\" : {\n                        \"code\" : \"0x601260005200\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"//0 code\" : \"By new EIP150 rules this transaction would be executed even if call consumes more gas then transaction has.\",\n\t\t        \"//1 code\" : \"Staticcall goes oog and eats 600k gas\",\n\t\t        \"code\" : \"{  (SSTORE 9 (STATICCALL 600000 <contract:0x1000000000000000000000000000000000000103> 0 0 0 0)) (SSTORE 10 (CALLCODE 600000 <contract:0x1000000000000000000000000000000000000103> 0 0 0 0 0)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n\t        \"<contract:0x1000000000000000000000000000000000000103>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"// code\" : \"should be 12 in the post state\",\n\t\t        \"code\" : \"{ (SSTORE 0 0x12) } \",\n\t\t        \"storage\": {\n\t\t        }\n            },\n\t        \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"//0 code\" : \"By new EIP150 rules this transaction would be executed even if call consumes more gas then transaction has.\",\n\t\t        \"//1 code\" : \"Staticcall goes oog and eats 600k gas\",\n\t\t        \"code\" : \"{  (SSTORE 9 (STATICCALL 600000 <contract:0x2000000000000000000000000000000000000103> 0 0 0 0)) (SSTORE 10 (CALLCODE 600000 <contract:0x1000000000000000000000000000000000000103> 0 0 0 0 0)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n\t        \"<contract:0x2000000000000000000000000000000000000103>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (MSTORE 0 0x12) } \",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n        \t\t\":raw 0x000000000000000000000000<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallAskMoreGasOnDepth2ThenTransactionHasFiller.json",
    "content": "{\n    \"static_CallAskMoreGasOnDepth2ThenTransactionHas\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n    \t    \t    \"<contract:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t        \t        \"storage\" : {\n\t\t                    \"0x08\" : \"0x01\",\n\t\t                    \"0x09\" : \"0x01\"\n\t\t                }\n\t\t            },\n\t\t            \"<contract:0x1000000000000000000000000000000000000107>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x08\" : \"0x00\",\n\t\t                    \"0x09\" : \"0x00\"\n\t\t                }\n\t\t            },\n\t\t            \"<contract:0x1000000000000000000000000000000000000108>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x08\" : \"0x00\"\n\t\t                }\n\t\t            },\n\t\t            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t\t                \"0x00\" : \"0x01\",\n\t\t\t                \"0x01\" : \"0x01\"\n\t\t                }\n\t\t            }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x08\" : \"0x01\",\n\t\t                    \"0x09\" : \"0x01\"\n\t\t                }\n\t\t            },\n\t\t            \"<contract:0x2000000000000000000000000000000000000107>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x08\" : \"0x00\",\n\t\t                    \"0x09\" : \"0x00\"\n\t\t                }\n\t\t            },\n\t\t            \"<contract:0x2000000000000000000000000000000000000108>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x08\" : \"0x00\"\n\t\t                }\n\t\t            },\n\t\t            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t\t                \"0x00\" : \"0x01\",\n\t\t\t                \"0x01\" : \"0x01\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t        \"<contract:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t\t\t\"nonce\" : \"0\",\n\t\t\t\t\"// code\" : \"ordinal call should work but on second depth it has call that asks more gas than left\",\n\t\t\t\t\"code\" : \"{ (SSTORE 8 1) (SSTORE 9 (STATICCALL 200000 <contract:0x1000000000000000000000000000000000000107> 0 0 0 0)) } \",\n\t\t\t\t\"storage\": {\n\t\t\t\t}\n            },\n    \t    \"<contract:0x1000000000000000000000000000000000000107>\" : {\n                \"balance\" : \"0\",\n\t\t\t\t\"nonce\" : \"0\",\n\t\t\t\t\"code\" : \"{ (MSTORE 8 (GAS)) (MSTORE 9 (STATICCALL 600000 <contract:0x1000000000000000000000000000000000000108> 0 0 0 0)) } \",\n\t\t\t\t\"storage\": {\n\t\t\t\t}\n            },\n\t        \"<contract:0x1000000000000000000000000000000000000108>\" : {\n                \"balance\" : \"0\",\n\t\t\t\t\"nonce\" : \"0\",\n\t\t\t\t\"// code\" : \"should be set in the post state\",\n\t\t\t\t\"code\" : \"{ (SSTORE 8 1)} \",\n\t\t\t\t\"storage\": {\n\t\t\t\t}\n            },\n\t        \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t\t\t\"nonce\" : \"0\",\n\t\t\t\t\"// code\" : \"ordinal call should work but on second depth it has call that asks more gas than left\",\n\t\t\t\t\"code\" : \"{ (SSTORE 8 1) (SSTORE 9 (STATICCALL 200000 <contract:0x2000000000000000000000000000000000000107> 0 0 0 0)) } \",\n\t\t\t\t\"storage\": {\n\t\t\t\t}\n            },\n\t        \"<contract:0x2000000000000000000000000000000000000107>\" : {\n                \"balance\" : \"0\",\n\t\t\t\t\"nonce\" : \"0\",\n\t\t\t\t\"code\" : \"{ (MSTORE 8 (GAS)) (MSTORE 9 (STATICCALL 600000 <contract:0x2000000000000000000000000000000000000108> 0 0 0 0)) } \",\n\t\t\t\t\"storage\": {\n\t\t\t\t}\n            },\n\t    \"<contract:0x2000000000000000000000000000000000000108>\" : {\n                \"balance\" : \"0\",\n\t\t\t\t\"nonce\" : \"0\",\n\t\t\t\t\"// code\" : \"should be set in the post state\",\n\t\t\t\t\"code\" : \"{ (MSTORE 8 (GAS))} \",\n\t\t\t\t\"storage\": {\n\t\t\t\t}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n\t\t\t\t\":raw 0x000000000000000000000000<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallContractToCreateContractAndCallItOOGFiller.json",
    "content": "{\n    \"static_CallContractToCreateContractAndCallItOOG\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xd2571607e241ecf590ed94b12d87c94babe36db6\"\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    },\n                    \"d2571607e241ecf590ed94b12d87c94babe36db6\" : {\n                        \"balance\" : \"1\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x0c\"\n                        }\n                    }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n            \t\t\t    \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    },\n                    \"d2571607e241ecf590ed94b12d87c94babe36db6\" : {\n                        \"shouldnotexist\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"//\" : \"{[[0]] 12 (MSTORE 32 0x602060406000f0)(RETURN 57 7)}\",\n                \"balance\" : \"1000\",\n                \"code\" : \"{(MSTORE 0 0x600c60005566602060406000f060205260076039f3)[[0]](CREATE 1 11 21) (STATICCALL 1000 (SLOAD 0) 0 0 0 0) (IF (EQ (CALLDATALOAD 0) 0) (KECCAK256 0x00 0x2fffff) (GAS) )  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"100000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x00\",\n                \":raw 0x01\"\n            ],\n            \"gasLimit\" : [\n                \"2000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallContractToCreateContractOOGBonusGasFiller.json",
    "content": "{\n    \"static_CallContractToCreateContractOOGBonusGas\" : {\n        \"_info\" : {\n            \"comment\": \"Gas analysis showed this test's gas can go as low as 101174, and still yield the same traces, which implies the test is broken\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xd2571607e241ecf590ed94b12d87c94babe36db6\"\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    },\n                    \"d2571607e241ecf590ed94b12d87c94babe36db6\" : {\n                        \"balance\" : \"1\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x0c\",\n            \t\t\t    \"0x01\" : \"0x00\"\n                        }\n                    }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    },\n                    \"d2571607e241ecf590ed94b12d87c94babe36db6\" : {\n                        \"shouldnotexist\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"//\" : \"{[[0]] 12 (MSTORE 32 0x602060406000f0)(RETURN 57 7)}\",\n                \"balance\" : \"112\",\n                \"code\" : \"{ (MSTORE 0 0x600c60005566602060406000f060205260076039f3) [[0]](CREATE 1 11 21) [[ 1 ]] (STATICCALL 0 (SLOAD 0) 0 0 0 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"20000000\", \"80000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallContractToCreateContractOOGFiller.json",
    "content": "{\n    \"static_CallContractToCreateContractOOG\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : 0\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"nonce\" : \"0\",\n\t\t\t            \"storage\" : {\n\t\t\t                \"0x00\" : \"0x00\"\n\t\t\t            }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : 1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"nonce\" : \"1\",\n\t\t\t            \"storage\" : {\n\t\t\t                \"0x00\" : \"0xd2571607e241ecf590ed94b12d87c94babe36db6\"\n\t\t\t            }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"//\" : \"{[[0]] 12 (MSTORE 32 0x602060406000f0)(RETURN 57 7)}\",\n                \"balance\" : \"0\",\n                \"code\" : \"{(MSTORE 0 0x600c60005566602060406000f060205260076039f3) [[0]](CREATE 1 11 21) (STATICCALL 0 (SLOAD 0) 0 0 0 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"0\", \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallContractToCreateContractWhichWouldCreateContractIfCalledFiller.json",
    "content": "{\n    \"static_CallContractToCreateContractWhichWouldCreateContractIfCalled\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xd2571607e241ecf590ed94b12d87c94babe36db6\",\n            \t\t\t    \"0x01\" : \"0x00\"\n                        }\n                    },\n                    \"62c01474f089b07dae603491675dc5b5748f7049\" : {\n                        \"shouldnotexist\" : \"1\"\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    },\n                    \"d2571607e241ecf590ed94b12d87c94babe36db6\" : {\n                        \"balance\" : \"1\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x0c\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"//\" : \"{[[0]] 12 (MSTORE 32 0x602060406000f0)(RETURN 57 7)}\",\n                \"balance\" : \"1000\",\n                \"code\" : \"{(MSTORE 0 0x600c60005566602060406000f060205260076039f3) [[ 0 ]](CREATE 1 11 21) [[ 1 ]] (STATICCALL 150000 (SLOAD 0) 0 0 0 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"300000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallEcrecover0Filler.json",
    "content": "{\n    \"static_CallEcrecover0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 300000 1 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0))  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3652240\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallEcrecover0_0inputFiller.json",
    "content": "{\n    \"static_CallEcrecover0_0input\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : 8,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : [0,1,4,5,6,7],\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : 2,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x01\",\n\t\t\t    \"0x00\" : \"0x8209944e898f69a7bd10a23c839d341e935fd5ca\"\n                        }\n                    }\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : 3,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x01\",\n\t\t\t    \"0x00\" : \"0x4300a157335cb7c9fc9423e011d7dd51090d093f\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ [[ 2 ]] (STATICCALL 300000 (CALLDATALOAD 0) 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x0000000000000000000000000000000000000000000000000000000000000000\",\n\t\t        \":raw 0x0000000000000000000000000000000000000000000000000000000000000001\",\n\t\t        \":raw 0x0000000000000000000000000000000000000000000000000000000000000002\",\n\t\t        \":raw 0x0000000000000000000000000000000000000000000000000000000000000003\",\n\t\t        \":raw 0x0000000000000000000000000000000000000000000000000000000000000004\",\n\t\t        \":raw 0x0000000000000000000000000000000000000000000000000000000000000005\",\n\t\t        \":raw 0x0000000000000000000000000000000000000000000000000000000000000006\",\n\t\t        \":raw 0x0000000000000000000000000000000000000000000000000000000000000007\",\n\t\t        \":raw 0x0000000000000000000000000000000000000000000000000000000000000008\"\n            ],\n            \"gasLimit\" : [\n                \"3652240\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallEcrecover0_Gas2999Filler.json",
    "content": "{\n    \"static_CallEcrecover0_Gas2999\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 2999 1 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0))  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallEcrecover0_NoGasFiller.json",
    "content": "{\n    \"static_CallEcrecover0_NoGas\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t        {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 0 1 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0))  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallEcrecover0_completeReturnValueFiller.json",
    "content": "{\n    \"static_CallEcrecover0_completeReturnValue\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 13000 1 0 128 128 32) [[ 0 ]] (MLOAD 128) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallEcrecover0_gas3000Filler.json",
    "content": "{\n    \"static_CallEcrecover0_gas3000\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 3000 1 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0))  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallEcrecover0_overlappingInputOutputFiller.json",
    "content": "{\n    \"static_CallEcrecover0_overlappingInputOutput\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 300000 1 0 128 64 32) [[ 0 ]] (MOD (MLOAD 64) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0))  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallEcrecover1Filler.json",
    "content": "{\n    \"static_CallEcrecover1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 1) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 100000 1 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0))  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallEcrecover2Filler.json",
    "content": "{\n    \"static_CallEcrecover2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 33 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 65 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 100000 1 0 97 97 32) [[ 0 ]] (MOD (MLOAD 97) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0))  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallEcrecover3Filler.json",
    "content": "{\n    \"static_CallEcrecover3\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xe4319f4b631c6d0fcfc84045dbcb676865fe5e13\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x2f380a2dea7e778d81affc2443403b8fe4644db442ae4862ff5bb3732829cdb9) (MSTORE 32 27) (MSTORE 64 0x6b65ccb0558806e9b097f27a396d08f964e37b8b7af6ceeb516ff86739fbea0a) (MSTORE 96 0x37cbc8d883e129a4b1ef9d5f1df53c4f21a3ef147cf2a50a4ede0eb06ce092d4) [[ 2 ]] (STATICCALL 100000 1 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0))  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallEcrecover80Filler.json",
    "content": "{\n    \"static_CallEcrecover80\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x00c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x00b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0x00b940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 300000 1 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0))  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3652240\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallEcrecoverCheckLengthFiller.json",
    "content": "{\n    \"static_CallEcrecoverCheckLength\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x01\" : \"0xa0\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 128 0x1122334455667788990011223344556677889900112233445566778899001122) (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 300000 1 0 128 128 32) [[ 0 ]] (MLOAD 128) [[ 1 ]] (MSIZE) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3652240\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallEcrecoverCheckLengthWrongVFiller.json",
    "content": "{\n    \"static_CallEcrecoverCheckLengthWrongV\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x1122334455667788990011223344556677889900112233445566778899001122\",\n                            \"0x01\" : \"0xa0\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 128 0x1122334455667788990011223344556677889900112233445566778899001122) (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 29) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 300000 1 0 128 128 32) [[ 0 ]] (MLOAD 128) [[ 1 ]] (MSIZE) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3652240\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallEcrecoverH_prefixed0Filler.json",
    "content": "{\n    \"static_CallEcrecoverH_prefixed0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xa0b29af6a56d6cfef6415cb195ccbe540e006d0a\",\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x00c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 300000 1 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0))  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3652240\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallEcrecoverR_prefixed0Filler.json",
    "content": "{\n    \"static_CallEcrecoverR_prefixed0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x00b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 300000 1 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0))  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3652240\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallEcrecoverS_prefixed0Filler.json",
    "content": "{\n    \"static_CallEcrecoverS_prefixed0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xb4950a7fad428434b11c357fa6d4b4bcd3096a5d\",\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0x00b940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 300000 1 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0))  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3652240\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallEcrecoverV_prefixed0Filler.json",
    "content": "{\n    \"static_CallEcrecoverV_prefixed0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 0x001c) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 300000 1 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0))  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3652240\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallGoesOOGOnSecondLevel2Filler.json",
    "content": "{\n    \"static_CallGoesOOGOnSecondLevel2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t\t            \"0x00\" : \"0x00\",\n\t\t\t            \"0x01\" : \"0x00\"\n\t\t                }\n\t\t            } \n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"// code\" : \"OOG Call transaction has less gas then in example above\",\n\t\t        \"code\" : \"{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (STATICCALL 600000 <contract:0x1000000000000000000000000000000000000113> 0 32 0 0) [[ 1 ]] 1 } \",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:0x1000000000000000000000000000000000000113>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (MSTORE 8 (GAS)) (MSTORE 9 (STATICCALL 600000 (CALLDATALOAD 0) 0 0 0 0)) } \",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:0x1000000000000000000000000000000000000114>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (SSTORE 1 1) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:0x2000000000000000000000000000000000000114>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{  (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1))  }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000114>\",\n        \t\t\":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000114>\"\n            ],\n            \"gasLimit\" : [\n                \"160000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallGoesOOGOnSecondLevelFiller.json",
    "content": "{\n    \"static_CallGoesOOGOnSecondLevel\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:0x1000000000000000000000000000000000000110>\" : {\n\t\t                \"storage\" : {\n\t\t                }\n\t\t            },\n\t\t            \"<contract:0x1000000000000000000000000000000000000111>\" : {\n\t\t                \"storage\" : {\n\t\t                }\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"// code\" : \"OOG Call because call goes OOG on second level\",\n\t\t        \"code\" : \"{ (SSTORE 9 (STATICCALL 600000 <contract:0x1000000000000000000000000000000000000110> 0 0 0 0)) [[ 10 ]] (GAS) } \",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:0x1000000000000000000000000000000000000110>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"// code\" : \"Inner CaLL goes OOG on EIP150\",\n\t\t        \"code\" : \"{ (MSTORE 8 (GAS)) (MSTORE 9 (STATICCALL 600000 <contract:0x1000000000000000000000000000000000000111> 0 0 0 0)) } \",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:0x1000000000000000000000000000000000000111>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{  (KECCAK256 0x00 0x2fffff) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"220000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallIdentitiy_1Filler.json",
    "content": "{\n    \"static_CallIdentitiy_1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ [[ 2 ]] (STATICCALL 500 4 0 0 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallIdentity_1_nonzeroValueFiller.json",
    "content": "{\n    \"static_CallIdentity_1_nonzeroValue\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"0000000000000000000000000000000000000004\" : {\n                        \"balance\" : \"19\"\n                    },\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"200000000\",\n                \"code\" : \"{ [[ 2 ]] (STATICCALL 200000 4 0 0 0 32) (CALL 50000 4 0x13 0 0 0 0) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallIdentity_2Filler.json",
    "content": "{\n    \"static_CallIdentity_2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xf34578907f\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0xf34578907f) [[ 2 ]] (STATICCALL 500 4 0 37 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallIdentity_3Filler.json",
    "content": "{\n    \"static_CallIdentity_3\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xf34578907f\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0xf34578907f) [[ 2 ]] (STATICCALL 500 4 0 37 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallIdentity_4Filler.json",
    "content": "{\n    \"static_CallIdentity_4\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 100 4 0 32 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallIdentity_4_gas17Filler.json",
    "content": "{\n    \"static_CallIdentity_4_gas17\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 17 4 0 32 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallIdentity_4_gas18Filler.json",
    "content": "{\n    \"static_CallIdentity_4_gas18\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 18 4 0 32 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallIdentity_5Filler.json",
    "content": "{\n    \"static_CallIdentity_5\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 600 4 0 1000000 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallLoseGasOOGFiller.json",
    "content": "{\n    \"static_CallLoseGasOOG\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x02\" : \"0x03e9\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"7000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1024\",\n                \"code\" : \"{ [[ 0 ]] (ADD @@0 1) [[ 1 ]] (STATICCALL (ADD 1(MUL @@0 100000)) <contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0) [[ 2 ]] (ADD 1(MUL @@0 1000)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"200000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallRecursiveBomb0Filler.json",
    "content": "{\n    \"static_CallRecursiveBomb0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"2000000000\",\n                \"code\" : \"{ [[ 0 ]] (STATICCALL 100000000 <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 0 0 0 0)  [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 (+ (MLOAD 0) 1)) (STATICCALL (- (GAS) 11000) (ADDRESS) 0 0 0 0) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"10000000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallRecursiveBomb0_OOG_atMaxCallDepthFiller.json",
    "content": "{\n    \"static_CallRecursiveBomb0_OOG_atMaxCallDepth\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"110000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x195e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n\t    \"<contract:target:0x195e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (CALLCODE (GAS) <contract:0x095e7baea6a6c7c4c2dfeb977efac326af552d87> 0 0 0 0 0) [[ 1 ]] 1 } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 (+ (SLOAD 0) 1)) (MSTORE 2 (MUL (DIV (MLOAD 0) 0x0402) 0xfffffffffffffffffff)) (STATICCALL (- (GAS) 1024) (ADDRESS) 0 (MUL (DIV (MLOAD 0) 0x0402) 0xfffffffffffffffffff) 0 0) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x195e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallRecursiveBomb1Filler.json",
    "content": "{\n    \"static_CallRecursiveBomb1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x195e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n\t    \"<contract:target:0x195e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{  (CALLCODE (GAS) <contract:0x095e7baea6a6c7c4c2dfeb977efac326af552d87> 0 0 0 0 0) [[ 1 ]] 1  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{  (MSTORE 0 (+ (MLOAD 0) 1))  (STATICCALL (- (GAS) 15000) (ADDRESS) 0 0 0 0)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"20622100\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x195e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallRecursiveBomb2Filler.json",
    "content": "{\n    \"static_CallRecursiveBomb2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x195e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n\t    \"<contract:target:0x195e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE (GAS) <contract:0x095e7baea6a6c7c4c2dfeb977efac326af552d87> 0 0 0 0 0) [[ 1 ]] 1}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{  (MSTORE 0 (+ (MLOAD 0) 1))  (STATICCALL (- (GAS) 15000) (ADDRESS) 0 0 0 0)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"20622099\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x195e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallRecursiveBomb3Filler.json",
    "content": "{\n    \"static_CallRecursiveBomb3\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x195e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n\t\t\t                \"0x00\" : \"0x01\",\n\t\t\t                \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n    \t    \"<contract:target:0x195e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE ( - (GAS) 100000) <contract:0x095e7baea6a6c7c4c2dfeb977efac326af552d87> 0 0 0 0 0) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{  (MSTORE 0 (+ (SLOAD 0) 1)) (STATICCALL (- (GAS) 224) (ADDRESS) 0 0 0 0)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x195e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallRecursiveBombLog2Filler.json",
    "content": "{\n    \"static_CallRecursiveBombLog2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"20000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL ( - (GAS) 100000) <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 0 0 0 0)  [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 (GAS)) (LOG0 0 32) (STATICCALL (- (GAS) 25000) (ADDRESS) 0 0 0 0) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"10000000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallRecursiveBombLogFiller.json",
    "content": "{\n    \"static_CallRecursiveBombLog\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL (- (GAS) 100000) <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 0 0 0 0)  [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG0 0 32) (STATICCALL (- (GAS) 25000) (ADDRESS) 0 0 0 0) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"10000000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallRecursiveBombPreCall2Filler.json",
    "content": "{\n    \"static_CallRecursiveBombPreCall2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0xfffffffffffffffffffffffffffffff\",\n                \"code\" : \"{ (STATICCALL 100000 0xbad304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0)  [[ 0 ]] (STATICCALL 0x7ffffffffffffff <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 0 0 0 0)  [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 (+ (MLOAD 0) 1)) (STATICCALL (- (GAS) 224000) (ADDRESS) 0 0 0 0) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"9214364837600034817\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallRecursiveBombPreCallFiller.json",
    "content": "{\n    \"static_CallRecursiveBombPreCall\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0xfffffffffffffffffffffffffffffff\",\n                \"code\" : \"{ (STATICCALL 100000 0xbad304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0) [[ 0 ]] (DELEGATECALL 0x7ffffffffffffff <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 0 0 0 0) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 (+ (MLOAD 0) 1)) (STATICCALL (- (GAS) 224000) <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 0 0 0 0) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"9214364837600034817\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallRipemd160_1Filler.json",
    "content": "{\n    \"static_CallRipemd160_1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x9c1185a5c5e9fc54612808977ee8f548b2258d31\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ [[ 2 ]] (STATICCALL 600 3 0 0 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallRipemd160_2Filler.json",
    "content": "{\n    \"static_CallRipemd160_2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xdbc100f916bfbc53535573d98cf0cbb3a5b36124\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 5 0xf34578907f) [[ 2 ]] (STATICCALL 6000 3 0 37 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallRipemd160_3Filler.json",
    "content": "{\n    \"static_CallRipemd160_3\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x316750573f9be26bc17727b47cacedbd0ab3e6ca\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0xf34578907f) [[ 2 ]] (STATICCALL 6000 3 0 37 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallRipemd160_3_postfixed0Filler.json",
    "content": "{\n    \"static_CallRipemd160_3_postfixed0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x7730b4642169b0f16752696da8da830a4b429c9d\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0xf34578907f00) [[ 2 ]] (STATICCALL 6000 3 0 37 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallRipemd160_3_prefixed0Filler.json",
    "content": "{\n    \"static_CallRipemd160_3_prefixed0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x316750573f9be26bc17727b47cacedbd0ab3e6ca\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x00f34578907f) [[ 2 ]] (STATICCALL 6000 3 0 37 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallRipemd160_4Filler.json",
    "content": "{\n    \"static_CallRipemd160_4\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x1cf4e77f5966e13e109703cd8a0df7ceda7f3dc3\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 720 3 0 32 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallRipemd160_4_gas719Filler.json",
    "content": "{\n    \"static_CallRipemd160_4_gas719\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 719 3 0 32 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallRipemd160_5Filler.json",
    "content": "{\n    \"static_CallRipemd160_5\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 6000 3 0 1000000 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallSha256_1Filler.json",
    "content": "{\n    \"static_CallSha256_1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ [[ 2 ]] (STATICCALL 500 2 0 0 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallSha256_1_nonzeroValueFiller.json",
    "content": "{\n    \"static_CallSha256_1_nonzeroValue\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"0000000000000000000000000000000000000002\" : {\n                        \"balance\" : \"19\"\n                    },\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"200000000\",\n                \"code\" : \"{ [[ 2 ]] (STATICCALL 200000 2 0 0 0 32) [[ 0 ]] (MLOAD 0) (CALL (GAS) 2 19 0 0 0 0) (CALLCODE (GAS) 2 19 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallSha256_2Filler.json",
    "content": "{\n    \"static_CallSha256_2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xcb39b3bde22925b2f931111130c774761d8895e0e08437c9b396c1e97d10f34d\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 5 0xf34578907f) [[ 2 ]] (STATICCALL 500 2 0 37 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallSha256_3Filler.json",
    "content": "{\n    \"static_CallSha256_3\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x7392925565d67be8e9620aacbcfaecd8cb6ec58d709d25da9eccf1d08a41ce35\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0xf34578907f) [[ 2 ]] (STATICCALL 500 2 0 37 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallSha256_3_postfix0Filler.json",
    "content": "{\n    \"static_CallSha256_3_postfix0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x3b745a1c00d035c334f358d007a430e4cf0ae63aa0556fb05529706de546464d\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0xf34578907f00) [[ 2 ]] (STATICCALL 500 2 0 37 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallSha256_3_prefix0Filler.json",
    "content": "{\n    \"static_CallSha256_3_prefix0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x7392925565d67be8e9620aacbcfaecd8cb6ec58d709d25da9eccf1d08a41ce35\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0x00f34578907f) [[ 2 ]] (STATICCALL 500 2 0 37 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallSha256_4Filler.json",
    "content": "{\n    \"static_CallSha256_4\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xaf9613760f72635fbdb44a5a0a63c39f12af30f950a6ee5c971be188e89c4051\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 100 2 0 32 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallSha256_4_gas99Filler.json",
    "content": "{\n    \"static_CallSha256_4_gas99\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xaf9613760f72635fbdb44a5a0a63c39f12af30f950a6ee5c971be188e89c4051\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 99 2 0 32 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"365224\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallSha256_5Filler.json",
    "content": "{\n    \"static_CallSha256_5\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 600 2 0 1000000 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallToNameRegistrator0Filler.json",
    "content": "{\n    \"static_CallToNameRegistrator0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (STATICCALL 100000 <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 0 64 64 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"300000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CallToReturn1Filler.json",
    "content": "{\n    \"static_CallToReturn1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n\t\t\t                \"0x00\" : \"0x01\",\n\t\t\t                \"0x01\" : \"0x2a\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (STATICCALL 1000 <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 0 0 31 1) [[ 1 ]] @0 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \":raw 0x602a601f536001601ff3\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"300000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CalltoReturn2Filler.json",
    "content": "{\n    \"static_CalltoReturn2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n            \t\t\t    \"0x01\" : \"0x3700ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (STATICCALL 5000 <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 0 64 0 2 ) [[ 1 ]] (MLOAD 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \":raw 0x603760005360026000f3\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"300000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CheckCallCostOOGFiller.json",
    "content": "{\n    \"static_CheckCallCostOOG\" : {\n        \"_info\" : {\n            \"comment\" : \"Check balance in blackbox, just fill the balance consumed\"\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t               \"nonce\" : \"1\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"100000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (STATICCALL 100 <contract:0x2000000000000000000000000000000000000000> 0 0 0 0) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:0x2000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (MSTORE 1 1) (KECCAK256 0x00 0x2fffff) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n        \t\t\"\"\n            ],\n            \"gasLimit\" : [\n                \"22000\", \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CheckOpcodes2Filler.json",
    "content": "{\n    \"static_CheckOpcodes2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : [0, 2, 3, 4],\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t               \"nonce\" : \"1\"\n\t\t            },\n\t\t            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x01\"\n\t\t                }\n\t\t            }\n                }\n            },\n\t        {\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t               \"nonce\" : \"1\"\n\t\t            },\n\t\t            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x00\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"// code\" : \"check ORIGIN, CALLER, ADDRESS, CALLVALUE inside staticcall\",\n\t\t        \"code\" : \"{ [[1]] (STATICCALL 100000 (CALLDATALOAD 0) 0 0 0 0) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (MSTORE 0 (CALL 100000 <contract:0xa100000000000000000000000000000000000001> 0 0 0 0 0))  (if (= 1 (MLOAD 0)) (MSTORE 1 1) (SSTORE 1 2) ) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:0x2000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{(MSTORE 0 0) (MSTORE 0 (CALL 100000 <contract:0xa200000000000000000000000000000000000001> 1 0 0 0 0)) (MSTORE 1 1) (MSTORE 2 1) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:0x3000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (MSTORE 0 (CALLCODE 100000 <contract:0xa300000000000000000000000000000000000001> 0 0 0 0 0)) (if (= 1 (MLOAD 0)) (MSTORE 1 1) (SSTORE 1 2)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:0x4000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (MSTORE 0 (CALLCODE 100000 <contract:0xa400000000000000000000000000000000000001> 1 0 0 0 0)) (if (= 1 (MLOAD 0)) (MSTORE 1 1) (SSTORE 1 2)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:0x5000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (MSTORE 0 (DELEGATECALL 100000 <contract:0xa500000000000000000000000000000000000001> 0 0 0 0)) (if (= 1 (MLOAD 0)) (MSTORE 1 1) (SSTORE 1 2)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:0xa100000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (if (= <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b> (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= <contract:0x1000000000000000000000000000000000000001> (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= <contract:0xa100000000000000000000000000000000000001> (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) )   (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:0xa200000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (if (= <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b> (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= <contract:0x2000000000000000000000000000000000000001> (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= <contract:0xa200000000000000000000000000000000000001> (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) )   (if (= 1 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:0xa300000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (if (= <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b> (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= <contract:0x3000000000000000000000000000000000000001> (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= <contract:0x3000000000000000000000000000000000000001> (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) )   (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:0xa400000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (if (= <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b> (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= <contract:0x4000000000000000000000000000000000000001> (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= <contract:0x4000000000000000000000000000000000000001> (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) )   (if (= 1 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:0xa500000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (if (= <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b> (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= <contract:target:0x1000000000000000000000000000000000000000> (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= <contract:0x5000000000000000000000000000000000000001> (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) )   (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n\t    \"// data\" : [\n\t\t\"10 - staticcall -> call -> check\",\n\t\t\"20 - staticcall -> call with value (oogs here because call has value) -> check\",\n\t\t\"30 - staticcall -> callcode -> check\",\n\t\t\"40 - staticcall -> callcode with value -> check\",\n\t\t\"50 - staticcall -> delegatecall -> check\"\n\t    ],\n            \"data\" : [\n\t\t\":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000001>\",\n\t\t\":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000001>\",\n\t\t\":raw 0x000000000000000000000000<contract:0x3000000000000000000000000000000000000001>\",\n\t\t\":raw 0x000000000000000000000000<contract:0x4000000000000000000000000000000000000001>\",\n\t\t\":raw 0x000000000000000000000000<contract:0x5000000000000000000000000000000000000001>\"\n            ],\n            \"gasLimit\" : [\n                \"335000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\", \"100\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CheckOpcodes3Filler.json",
    "content": "{\n    \"static_CheckOpcodes3\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : [0, 2, 3, 4],\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t               \"nonce\" : \"1\"\n\t\t            },\n\t\t            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x01\"\n\t\t                }\n\t\t            }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : [1],\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t               \"nonce\" : \"1\"\n\t\t            },\n\t\t            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x00\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"// code\" : \"check ORIGIN, CALLER, ADDRESS, CALLVALUE inside staticcall\",\n\t\t        \"code\" : \"{ [[1]] (STATICCALL 100000 (CALLDATALOAD 0) 0 0 0 0) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n\t        \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (MSTORE 0 <contract:0xa100000000000000000000000000000000000001>) (MSTORE 0 (CALL 100000 <contract:0xb000000000000000000000000000000000000001> 0 0 32 0 0))  (if (= 1 (MLOAD 0)) (MSTORE 1 1) (SSTORE 1 2) ) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:0x2000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{(MSTORE 0 <contract:0xa100000000000000000000000000000000000001>) (MSTORE 0 (CALL 100000 <contract:0xb000000000000000000000000000000000000001> 1 0 32 0 0)) (MSTORE 1 1) (MSTORE 2 1) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n\t        \"<contract:0x3000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (MSTORE 32 <contract:0xa300000000000000000000000000000000000001>) (MSTORE 0 (CALLCODE 100000 <contract:0xb000000000000000000000000000000000000001> 0 32 64 0 0)) (if (= 1 (MLOAD 0)) (MSTORE 1 1) (SSTORE 1 2)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n\t        \"<contract:0x4000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (MSTORE 0 <contract:0xa400000000000000000000000000000000000001>) (MSTORE 0 (CALLCODE 100000 <contract:0xb000000000000000000000000000000000000001> 1 0 32 0 0)) (if (= 1 (MLOAD 0)) (MSTORE 1 1) (SSTORE 1 2)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n\t        \"<contract:0x5000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (MSTORE 0 <contract:0xa500000000000000000000000000000000000001>) (MSTORE 0 (DELEGATECALL 100000 <contract:0xb000000000000000000000000000000000000001> 0 32 0 0)) (if (= 1 (MLOAD 0)) (MSTORE 1 1) (SSTORE 1 2)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n\t        \"<contract:0xb000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (MSTORE 0 (STATICCALL 100000 (CALLDATALOAD 0) 0 0 0 0)) (if (= 1 (MLOAD 0)) (MSTORE 1 1) (SSTORE 1 2)) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n            \"<contract:0xa100000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (if (= <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b> (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= <contract:0xb000000000000000000000000000000000000001> (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= <contract:0xa100000000000000000000000000000000000001> (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) )   (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:0xa200000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (if (= <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b> (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= <contract:0x2000000000000000000000000000000000000001> (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= <contract:0xa200000000000000000000000000000000000001> (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) )   (if (= 1 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }\",\n\t\t        \"storage\": {\n        \t\t}\n            },\n    \t    \"<contract:0xa300000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (if (= <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b> (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= <contract:0x3000000000000000000000000000000000000001> (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= <contract:0xa300000000000000000000000000000000000001> (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) )   (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:0xa400000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (if (= <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b> (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= <contract:0x4000000000000000000000000000000000000001> (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= <contract:0xa400000000000000000000000000000000000001> (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) )   (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:0xa500000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (if (= <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b> (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= <contract:0x5000000000000000000000000000000000000001> (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= <contract:0xa500000000000000000000000000000000000001> (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) )   (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n\t    \"// data\" : [\n\t\t\"10 - staticcall -> call -> check\",\n\t\t\"20 - staticcall -> call with value (oogs here because call has value) -> check\",\n\t\t\"30 - staticcall -> callcode -> check\",\n\t\t\"40 - staticcall -> callcode with value -> check\",\n\t\t\"50 - staticcall -> delegatecall -> check\"\n\t    ],\n            \"data\" : [\n\t\t\":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000001>\",\n\t\t\":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000001>\",\n\t\t\":raw 0x000000000000000000000000<contract:0x3000000000000000000000000000000000000001>\",\n\t\t\":raw 0x000000000000000000000000<contract:0x4000000000000000000000000000000000000001>\",\n\t\t\":raw 0x000000000000000000000000<contract:0x5000000000000000000000000000000000000001>\"\n            ],\n            \"gasLimit\" : [\n                \"335000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\", \"100\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CheckOpcodes4Filler.json",
    "content": "{\n    \"static_CheckOpcodes4\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : 0\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t       \"nonce\" : \"1\"\n\t\t    },\n\t\t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t        \"storage\" : {\n\t\t            \"0x01\" : \"0x01\",\n\t\t\t    \"0x02\" : \"0x01\",\n\t\t\t    \"0x03\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n\t\t\t    \"0x05\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n\t\t\t    \"0x06\" : \"<contract:target:0x1000000000000000000000000000000000000000>\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t       \"nonce\" : \"1\"\n\t\t    },\n\t\t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t        \"storage\" : {\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : 1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t       \"nonce\" : \"1\"\n\t\t    },\n\t\t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t        \"storage\" : {\n\t\t            \"0x01\" : \"0x01\",\n\t\t\t    \"0x02\" : \"0x01\",\n\t\t\t    \"0x03\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n\t\t\t    \"0x04\" : \"0x64\",\n\t\t\t    \"0x05\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n\t\t\t    \"0x06\" : \"<contract:target:0x1000000000000000000000000000000000000000>\"\n\t\t        }\n\t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n\t\t\"nonce\" : \"0\",\n\t\t\"// code\" : \"check ORIGIN, CALLER, ADDRESS, CALLVALUE inside staticcall\",\n\t\t\"code\" : \"{ [[1]] (STATICCALL 100000 <contract:0x1000000000000000000000000000000000000001> 0 0 0 0) [[2]] (STATICCALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 0 0 0) [[3]] (CALLER) [[4]] (CALLVALUE) [[5]] (ORIGIN) [[6]] (ADDRESS) }\",\n\t\t\"storage\": {\n\t\t}\n            },\n\t    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n\t\t\"nonce\" : \"0\",\n\t\t\"code\" : \"{ (if (= <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b> (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= <contract:target:0x1000000000000000000000000000000000000000> (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= <contract:0x1000000000000000000000000000000000000001> (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) )   (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }\",\n\t\t\"storage\": {\n\t\t}\n            },\n\t    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n\t\t\"nonce\" : \"0\",\n\t\t\"// code\" : \"check ORIGIN, CALLER, ADDRESS, CALLVALUE inside staticcall\",\n\t\t\"code\" : \"{ (if (= <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b> (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= <contract:target:0x1000000000000000000000000000000000000000> (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= <contract:0x1000000000000000000000000000000000000002> (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) )   (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }\",\n\t\t\"storage\": {\n\t\t}\n            }\n        },\n        \"transaction\" : {\n\t    \"// data\" : [\n\t\t\"0 - staticcall -> do smth | staticcall -> check | check \"\n\t    ],\n            \"data\" : [\n\t\t\"\"\n            ],\n            \"gasLimit\" : [\n                \"50000\", \"335000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\", \"100\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CheckOpcodes5Filler.json",
    "content": "{\n    \"static_CheckOpcodes5\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t       \"nonce\" : \"1\"\n\t\t    },\n\t\t    \"<contract:0xa000000000000000000000000000000000000002>\" : {\n\t\t        \"storage\" : {\n\t\t            \"0x00\" : \"0x00\"\n\t\t        }\n\t\t    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : [0,1],\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t       \"nonce\" : \"1\"\n\t\t    },\n\t\t    \"<contract:0xa000000000000000000000000000000000000002>\" : {\n\t\t        \"storage\" : {\n\t\t            \"0x00\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : [2],\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t       \"nonce\" : \"1\"\n\t\t    },\n\t\t    \"<contract:0x3000000000000000000000000000000000000001>\" : {\n\t\t        \"storage\" : {\n\t\t            \"0x00\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : [3],\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t       \"nonce\" : \"1\"\n\t\t    },\n\t\t    \"<contract:0x4000000000000000000000000000000000000001>\" : {\n\t\t        \"storage\" : {\n\t\t            \"0x00\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            },\n\t    {\n                \"indexes\" : {\n                    \"data\" : [4],\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t       \"nonce\" : \"1\"\n\t\t    },\n\t\t    \"<contract:0x5000000000000000000000000000000000000001>\" : {\n\t\t        \"storage\" : {\n\t\t            \"0x00\" : \"0x01\"\n\t\t        }\n\t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n\t\t\"nonce\" : \"0\",\n\t\t\"// code\" : \"check ORIGIN, CALLER, ADDRESS, CALLVALUE inside staticcall\",\n\t\t\"code\" : \"{ [[1]] (CALL 250000 (CALLDATALOAD 0) 0 0 0 0 0) }\",\n\t\t\"storage\": {\n\t\t}\n            },\n\t    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n\t\t\"nonce\" : \"0\",\n\t\t\"code\" : \"{ (MSTORE 0 <contract:0xb000000000000000000000000000000000000002>) (CALL 100000 <contract:0xa000000000000000000000000000000000000002> 0 0 32 0 0) }\",\n\t\t\"storage\": {\n\t\t}\n            },\n\t    \"<contract:0x2000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10\",\n\t\t\"nonce\" : \"0\",\n\t\t\"code\" : \"{ (MSTORE 0 <contract:0xb000000000000000000000000000000000000002>) (CALL 100000 <contract:0xa000000000000000000000000000000000000002> 10 0 32 0 0) }\",\n\t\t\"storage\": {\n\t\t}\n            },\n\t    \"<contract:0x3000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10\",\n\t\t\"nonce\" : \"0\",\n\t\t\"code\" : \"{ (MSTORE 0 <contract:0xc300000000000000000000000000000000000002>) (CALLCODE 100000 <contract:0xa000000000000000000000000000000000000002> 0 0 32 0 0) }\",\n\t\t\"storage\": {\n\t\t}\n            },\n\t    \"<contract:0x4000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10\",\n\t\t\"nonce\" : \"0\",\n\t\t\"code\" : \"{ (MSTORE 0 <contract:0xc400000000000000000000000000000000000002>) (CALLCODE 100000 <contract:0xa000000000000000000000000000000000000002> 1 0 32 0 0) }\",\n\t\t\"storage\": {\n\t\t}\n            },\n\t    \"<contract:0x5000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10\",\n\t\t\"nonce\" : \"0\",\n\t\t\"code\" : \"{ (MSTORE 0 <contract:0xc500000000000000000000000000000000000002>) (DELEGATECALL 100000 <contract:0xa000000000000000000000000000000000000002> 0 32 0 0) }\",\n\t\t\"storage\": {\n\t\t}\n            },\n\t    \"<contract:0xa000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n\t\t\"nonce\" : \"0\",\n\t\t\"code\" : \"{ [[ 0 ]] (STATICCALL 50000 (CALLDATALOAD 0) 0 0 0 0) }\",\n\t\t\"storage\": {\n\t\t}\n            },\n\t    \"<contract:0xb000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n\t\t\"nonce\" : \"0\",\n\t\t\"// code\" : \"check ORIGIN, CALLER, ADDRESS, CALLVALUE inside staticcall\",\n\t\t\"code\" : \"{ (if (= <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b> (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= <contract:0xa000000000000000000000000000000000000002> (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= <contract:0xb000000000000000000000000000000000000002> (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) )   (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }\",\n\t\t\"storage\": {\n\t\t}\n            },\n\t    \"<contract:0xc300000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n\t\t\"nonce\" : \"0\",\n\t\t\"// code\" : \"check ORIGIN, CALLER, ADDRESS, CALLVALUE inside staticcall\",\n\t\t\"code\" : \"{ (if (= <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b> (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= <contract:0x3000000000000000000000000000000000000001> (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= <contract:0xc300000000000000000000000000000000000002> (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) )   (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }\",\n\t\t\"storage\": {\n\t\t}\n            },\n\t    \"<contract:0xc400000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n\t\t\"nonce\" : \"0\",\n\t\t\"// code\" : \"check ORIGIN, CALLER, ADDRESS, CALLVALUE inside staticcall\",\n\t\t\"code\" : \"{ (if (= <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b> (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= <contract:0x4000000000000000000000000000000000000001> (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= <contract:0xc400000000000000000000000000000000000002> (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) )   (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }\",\n\t\t\"storage\": {\n\t\t}\n            },\n\t    \"<contract:0xc500000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n\t\t\"nonce\" : \"0\",\n\t\t\"// code\" : \"check ORIGIN, CALLER, ADDRESS, CALLVALUE inside staticcall\",\n\t\t\"code\" : \"{ (if (= <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b> (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= <contract:0x5000000000000000000000000000000000000001> (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= <contract:0xc500000000000000000000000000000000000002> (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) )   (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }\",\n\t\t\"storage\": {\n\t\t}\n            }\n        },\n        \"transaction\" : {\n\t    \"// data\" : [\n\t\t\"0 - call | callcode | delegatecall -> staticcall -> check \"\n\t    ],\n            \"data\" : [\n\t\t\":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000001>\",\n\t\t\":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000001>\",\n\t\t\":raw 0x000000000000000000000000<contract:0x3000000000000000000000000000000000000001>\",\n\t\t\":raw 0x000000000000000000000000<contract:0x4000000000000000000000000000000000000001>\",\n\t\t\":raw 0x000000000000000000000000<contract:0x5000000000000000000000000000000000000001>\"\n            ],\n            \"gasLimit\" : [\n                \"50000\", \"335000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\", \"100\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_CheckOpcodesFiller.json",
    "content": "{\n    \"static_CheckOpcodes\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t               \"nonce\" : \"1\"\n\t\t            },\n\t\t            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x01\"\n\t\t                }\n\t\t            }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t               \"nonce\" : \"1\"\n\t\t            },\n\t\t            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x00\"\n\t\t                }\n\t\t            }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t               \"nonce\" : \"1\"\n\t\t            },\n\t\t            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x01\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"// code\" : \"check ORIGIN, CALLER, ADDRESS, CALLVALUE inside staticcall\",\n\t\t        \"code\" : \"{ [[1]] (STATICCALL 100000 (CALLDATALOAD 0) 0 0 0 0) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (if (= <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b> (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= <contract:target:0x1000000000000000000000000000000000000000> (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= <contract:0x1000000000000000000000000000000000000001> (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) )   (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"// code\" : \"check ORIGIN, CALLER, ADDRESS, CALLVALUE inside staticcall\",\n\t\t        \"code\" : \"{ (STATICCALL 100000 <contract:0x1000000000000000000000000000000000000003> 0 0 0 0) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (if (= <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b> (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= <contract:0x1000000000000000000000000000000000000002> (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= <contract:0x1000000000000000000000000000000000000001> (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) )   (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n\t    \"// data\" : [\n\t\t\"0 - staticcall -> check\",\n\t\t\"1 - staticcall -> staticcall -> check\"\n\t    ],\n            \"data\" : [\n\t\t\":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000001>\",\n\t\t\":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000002>\"\n            ],\n            \"gasLimit\" : [\n                \"50000\", \"335000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\", \"100\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_ExecuteCallThatAskForeGasThenTrabsactionHasFiller.json",
    "content": "{\n    \"static_ExecuteCallThatAskForeGasThenTrabsactionHas\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : [1,2],\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x00\"\n\t\t                }\n\t\t            }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : [0],\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x01\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ [[1]] (STATICCALL 600000 (CALLDATALOAD 0) 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"100000\",\n                \"code\" : \"{ (MSTORE 1 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0x2000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"100000\",\n                \"code\" : \"{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0x3000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"100000\",\n                \"code\" : \"{ (SSTORE 1 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000001>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000001>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0x3000000000000000000000000000000000000001>\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_InternalCallHittingGasLimit2Filler.json",
    "content": "{\n    \"static_InternalCallHittingGasLimit2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adf5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"47766\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n            \t\t\t\t\"0x01\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ [[ 1 ]] (STATICCALL 25000 <contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"47766\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_InternalCallHittingGasLimitFiller.json",
    "content": "{\n    \"static_InternalCallHittingGasLimit\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adf5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"22000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000\",\n                \"code\" : \"{ (STATICCALL 5000 <contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"21100\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_InternalCallStoreClearsOOGFiller.json",
    "content": "{\n    \"static_InternalCallStoreClearsOOG\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"0000000000000000000000000000000000000000\" : {\n                        \"balance\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x0c\",\n                            \"0x01\" : \"0x0c\",\n                            \"0x02\" : \"0x0c\",\n                            \"0x03\" : \"0x0c\",\n                            \"0x04\" : \"0x0c\",\n                            \"0x05\" : \"0x0c\",\n                            \"0x06\" : \"0x0c\",\n                            \"0x07\" : \"0x0c\",\n                            \"0x08\" : \"0x0c\",\n                            \"0x09\" : \"0x0c\"\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    },\n                    \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"balance\" : \"20\",\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"0000000000000000000000000000000000000000\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{(SSTORE 0 0)(SSTORE 1 0)(SSTORE 2 0)(SSTORE 3 0)(SSTORE 4 0)(SSTORE 5 0)(SSTORE 6 0)(SSTORE 7 0)(SSTORE 8 0)(SSTORE 9 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x0c\",\n                    \"0x01\" : \"0x0c\",\n                    \"0x02\" : \"0x0c\",\n                    \"0x03\" : \"0x0c\",\n                    \"0x04\" : \"0x0c\",\n                    \"0x05\" : \"0x0c\",\n                    \"0x06\" : \"0x0c\",\n                    \"0x07\" : \"0x0c\",\n                    \"0x08\" : \"0x0c\",\n                    \"0x09\" : \"0x0c\"\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"100000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"//\" : \"gas = 19 going OOG, gas = 20 fine\",\n                \"balance\" : \"10\",\n                \"code\" : \"{ [[ 1 ]] (STATICCALL 40000 0 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"160000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_LoopCallsDepthThenRevert2Filler.json",
    "content": "{\n    \"static_LoopCallsDepthThenRevert2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t     {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                        \"7db299e0885c85039f56fa504a13dd8ce8a56aa7\" : {\n                            \"shouldnotexist\" : \"1\"\n                        }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"100000000000000000000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"a000000000000000000000000000000000000000\" : {\n                \"balance\" : \"10\",\n        \t\t\"//0 code\" : \"create in init code on depth = 1024. account should not be created\",\n                \"//1 code\" : \"{ (JUMPI 61 (EQ (CALLDATALOAD 0) 1023)) (MSTORE 0 (+ (CALLDATALOAD 0) 1)) (STATICCALL (GAS) 0xa000000000000000000000000000000000000000 0 32 0 0) (JUMPI 81 (LT (MLOAD 0) 1050)) (JUMPDEST) (MSTORE 0 0x600060006002f0) (CREATE 3 25 7) (JUMPDEST)}\",\n        \t\t\"code\" : \":raw 0x6103ff60003514603d57600160003501600052600060006020600073a0000000000000000000000000000000000000005afa5061041a600051106051575b66600060006002f0600052600760196003f0505b\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"9214364837600034817\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"a000000000000000000000000000000000000000\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_LoopCallsDepthThenRevert3Filler.json",
    "content": "{\n    \"static_LoopCallsDepthThenRevert3\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t     {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                        \"7db299e0885c85039f56fa504a13dd8ce8a56aa7\" : {\n                            \"shouldnotexist\" : \"1\"\n                        },\n                        \"cd6807039caffddbd1c28a749ec91bef15f448e5\" : {\n                            \"shouldnotexist\" : \"1\"\n                        }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"100000000000000000000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"a000000000000000000000000000000000000000\" : {\n                \"balance\" : \"10\",\n        \t\t\"//0 code\" : \"create in init code on depth = 1023. account would be created\",\n                \"//1 code\" : \"{ (JUMPI 61 (EQ (CALLDATALOAD 0) 1022)) (MSTORE 0 (+ (CALLDATALOAD 0) 1)) (STATICCALL (GAS) 0xa000000000000000000000000000000000000000 0 32 0 0) (JUMPI 81 (LT (CALLDATALOAD 0) 1050)) (JUMPDEST) (MSTORE 0 0x600060006002f0) (CREATE 3 25 7) (JUMPDEST)}\",\n        \t\t\"code\" : \":raw 0x6103fe60003514603d57600160003501600052600060006020600073a0000000000000000000000000000000000000005afa5061041a600035106051575b66600060006002f0600052600760196003f0505b\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"9214364837600034817\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"a000000000000000000000000000000000000000\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_LoopCallsDepthThenRevertFiller.json",
    "content": "{\n    \"static_LoopCallsDepthThenRevert\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t     {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t\t                \"0x00\" : \"0x01\",\n\t\t\t                \"0x01\" : \"0x01\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[ 0 ]] (CALL ( - (GAS) 100000) <contract:target:0x1000000000000000000000000000000000000000> 0 0 0 0 0) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0xa000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ (STATICCALL (GAS) <contract:0xb000000000000000000000000000000000000000> 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0xb000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ (STATICCALL (GAS) <contract:0xa000000000000000000000000000000000000000> 0 0 0 0)  }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_LoopCallsThenRevertFiller.json",
    "content": "{\n    \"static_LoopCallsThenRevert\" : {\n        \"_info\" : {\n            \"comment\": \"Requires a separate pre-alloc group due to time required to fill when grouped with other tests.\",\n            \"pytest_marks\": [\"pre_alloc_group\"]\n        },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x01\"\n\t\t                }\n\t\t            }\n                }\n            },\n\t        {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x01\" : \"0x01\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ (MSTORE 0 850) [[ 0 ]] (CALL (- (GAS) 10000) <contract:0xa000000000000000000000000000000000000000> 0 0 32 0 0) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xa000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"\",\n                \"//code\" : \"{ (JUMPDEST)  (MSTORE 0 (- (CALLDATALOAD 0) 1)) (STATICCALL 50000 <contract:0xb000000000000000000000000000000000000000> 0 0 0 0) (JUMPI 0 (MLOAD 0))}\",\n        \t\t\"code\" : \":raw 0x5b600160003503600052600060006000600073<contract:0xb000000000000000000000000000000000000000>61c350fa50600051600057\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n        \t\t\t\"0x00\" : \"0x0352\"\n                }\n            },\n\t        \"<contract:0xb000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ (MSTORE 0 (ADD 1 (MLOAD 0))) }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\", \"9000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_PostToReturn1Filler.json",
    "content": "{\n    \"static_PostToReturn1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n\t\t\t               \"0x01\" : \"0x01\",\n\t\t\t               \"0x02\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[1]](STATICCALL 30000 <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 0 64 0 0 ) [[2]] (MLOAD 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \":raw 0x603760005360026000f3\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"300000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_RETURN_BoundsFiller.json",
    "content": "{\n    \"static_RETURN_Bounds\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"1\",\n                        \"storage\" : {\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\",\n                            \"0x03\" : \"0x01\",\n                            \"0x04\" : \"0x01\",\n                            \"0x05\" : \"0x01\",\n                            \"0x06\" : \"0x01\",\n                            \"0x07\" : \"0x01\",\n                            \"0x08\" : \"0x01\",\n                            \"0x09\" : \"0x01\",\n                            \"0x0a\" : \"0x01\",\n                            \"0x0b\" : \"0x01\",\n                            \"0x0c\" : \"0x01\",\n                            \"0x0d\" : \"0x01\",\n                            \"0x0e\" : \"0x01\",\n                            \"0x0f\" : \"0x01\",\n                            \"0x10\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ [[1]] (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0 0 0) [[2]] (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000002> 0 0 0 0) [[3]] (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000003> 0 0 0 0) [[4]] (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000004> 0 0 0 0) [[5]] (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000005> 0 0 0 0) [[6]] (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000006> 0 0 0 0) [[7]] (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000006> 0 0 0 0) [[8]] (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000006> 0 0 0 0) [[9]] (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000006> 0 0 0 0) [[10]] (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000006> 0 0 0 0) [[11]] (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000006> 0 0 0 0) [[12]] (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000006> 0 0 0 0) [[13]] (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000006> 0 0 0 0) [[14]] (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000006> 0 0 0 0) [[15]] (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000006> 0 0 0 0) [[16]] (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000006> 0 0 0 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (RETURN 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (RETURN 0xfffffff 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (RETURN 0xffffffff 0)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000004>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (RETURN 0xffffffffffffffff 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000005>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (RETURN 0xfffffffffffffffffffffffffff 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000006>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (RETURN 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000007>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (RETURN 0 0xfffffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000008>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (RETURN 0 0xffffffff)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000009>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (RETURN 0 0xffffffffffffffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000010>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (RETURN 0 0xfffffffffffffffffffffffffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000011>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (RETURN 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000012>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (RETURN 0xfffffff 0xfffffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000013>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (RETURN 0xffffffff 0xffffffff)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000014>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (RETURN 0xffffffffffffffff 0xffffffffffffffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000015>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (RETURN 0xfffffffffffffffffffffffffff 0xfffffffffffffffffffffffffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000016>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (RETURN 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"15000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_RETURN_BoundsOOGFiller.json",
    "content": "{\n    \"static_RETURN_BoundsOOG\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"1\",\n                        \"storage\" : {\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\",\n                            \"0x03\" : \"0x01\",\n                            \"0x04\" : \"0x01\",\n                            \"0x05\" : \"0x01\",\n                            \"0x06\" : \"0x01\",\n                            \"0x07\" : \"0x01\",\n                            \"0x08\" : \"0x01\",\n                            \"0x09\" : \"0x01\",\n                            \"0x0a\" : \"0x01\",\n                            \"0x0b\" : \"0x01\",\n                            \"0x0c\" : \"0x01\",\n                            \"0x0d\" : \"0x01\",\n                            \"0x0e\" : \"0x01\",\n                            \"0x0f\" : \"0x01\",\n                            \"0x10\" : \"0x01\"\n                        }\n                    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"0\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ [[1]] (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000001> 0 0 0 0) [[2]] (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000002> 0 0 0 0) [[3]] (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000003> 0 0 0 0) [[4]] (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000004> 0 0 0 0) [[5]] (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000005> 0 0 0 0) [[6]] (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000006> 0 0 0 0) [[7]] (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000006> 0 0 0 0) [[8]] (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000006> 0 0 0 0) [[9]] (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000006> 0 0 0 0) [[10]] (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000006> 0 0 0 0) [[11]] (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000006> 0 0 0 0) [[12]] (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000006> 0 0 0 0) [[13]] (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000006> 0 0 0 0) [[14]] (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000006> 0 0 0 0) [[15]] (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000006> 0 0 0 0) [[16]] (STATICCALL 0x7ffffffffffffff <contract:0x1000000000000000000000000000000000000006> 0 0 0 0) (IF (EQ (CALLDATALOAD 0) 0) (KECCAK256 0x00 0x2fffff) (GAS) ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (RETURN 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (RETURN 0xfffffff 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (RETURN 0xffffffff 0)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000004>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (RETURN 0xffffffffffffffff 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000005>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (RETURN 0xfffffffffffffffffffffffffff 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000006>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (RETURN 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000007>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (RETURN 0 0xfffffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000008>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (RETURN 0 0xffffffff)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000009>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (RETURN 0 0xffffffffffffffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000010>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (RETURN 0 0xfffffffffffffffffffffffffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000011>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (RETURN 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000012>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (RETURN 0xfffffff 0xfffffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000013>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (RETURN 0xffffffff 0xffffffff)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000014>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (RETURN 0xffffffffffffffff 0xffffffffffffffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000015>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (RETURN 0xfffffffffffffffffffffffffff 0xfffffffffffffffffffffffffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000016>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (RETURN 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x00\",\n                \":raw 0x0000000000000000000000000000000000000001\"\n            ],\n            \"gasLimit\" : [\n                \"15000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_RawCallGasAskFiller.json",
    "content": "{\n    \"static_RawCallGasAsk\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : 0, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t    \"1000000000000000000000000000000000000001\" : {\n        \t\t        \"storage\" : {\n        \t\t            \"0x01\" : \"0x0e9f83\"\n        \t\t        }\n        \t\t    }\n                }\n            },\n    \t    {\n                \"indexes\" : { \"data\" : 1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t    \"2000000000000000000000000000000000000001\" : {\n        \t\t        \"storage\" : {\n        \t\t            \"0x01\" : \"0x0e9f83\"\n        \t\t        }\n        \t\t    }\n                }\n            },\n    \t    {\n                \"indexes\" : { \"data\" : 2, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t    \"3000000000000000000000000000000000000001\" : {\n        \t\t        \"storage\" : {\n        \t\t            \"0x01\" : \"0x0e9c1b\"\n        \t\t        }\n        \t\t    }\n                }\n            },\n    \t    {\n                \"indexes\" : { \"data\" : 3, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t    \"4000000000000000000000000000000000000001\" : {\n        \t\t        \"storage\" : {\n        \t\t            \"0x01\" : \"0x0e9c1b\"\n        \t\t        }\n        \t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n    \t    \"094f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ (MSTORE 0 (GAS)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"1000000000000000000000000000000000000000\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"{ (CALL (GAS) (CALLDATALOAD 0) 0 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"1000000000000000000000000000000000000001\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{  (STATICCALL 3000000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[1]] (GAS) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"2000000000000000000000000000000000000001\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (STATICCALL 130000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[1]] (GAS) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"3000000000000000000000000000000000000001\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (STATICCALL 3000000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 0 8000 0 8000) [[1]] (GAS) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"4000000000000000000000000000000000000001\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (STATICCALL 130000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 0 8000 0 8000) [[1]] (GAS) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x0000000000000000000000001000000000000000000000000000000000000001\",\n        \t\t\":raw 0x0000000000000000000000002000000000000000000000000000000000000001\",\n\t\t        \":raw 0x0000000000000000000000003000000000000000000000000000000000000001\",\n\t\t        \":raw 0x0000000000000000000000004000000000000000000000000000000000000001\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"1000000000000000000000000000000000000000\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_Return50000_2Filler.json",
    "content": "{\n    \"static_Return50000_2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"89250000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x10bf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n\t\t\t\t\t\t\t\"0x00\" : \"0x01\",\n\t\t\t\t\t\t    \"0x01\" : \"0x01\"\n                        }\n                    },\n\t\t    \t\t\"<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"balance\" : \"0x0fffffffffffff\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n\t\t\t\t\t\t\t\"0x00\" : \"0x01\",\n\t\t\t\t\t\t\t\"0x01\" : \"0xc350\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffff\",\n                \"code\" : \"{ (MSTORE 0 (CALLDATALOAD 49999)) (RETURN (MLOAD 0) 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0x10bf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffff\",\n                \"code\" : \"{ [[ 0 ]] (CALL (GAS) <contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xfffffffffffff\",\n                \"code\" : \"{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (STATICCALL 1564 <contract:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b> 0 50000 0 0) ) [[ 1 ]] @i }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"15500000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x10bf5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_ReturnTest2Filler.json",
    "content": "{\n    \"static_ReturnTest2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"194f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x15\",\n                            \"0x01\" : \"0x3f\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"194f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{(MSTORE 0 0x15)(STATICCALL 7000 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 32 32 32) [[0]](MLOAD 0) [[1]](MLOAD 32) (RETURN 0 64)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"100000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"100000\",\n                \"code\" : \"{(MSTORE 0 (MUL 3 (CALLDATALOAD 0)))(RETURN 0 32)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"250000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"194f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_ReturnTestFiller.json",
    "content": "{\n    \"static_ReturnTest\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"194f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x15\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"194f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{(STATICCALL 2000 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b 30 1 31 1) [[0]](MLOAD 0) (RETURN 30 2)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"100000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"100000\",\n                \"code\" : \"{(MSTORE 0 0x15) (RETURN 31 1)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"300000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"194f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_RevertDepth2Filler.json",
    "content": "{\n    \"static_RevertDepth2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n        \t\t    \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x01\",\n\t\t                    \"0x01\" : \"0x01\",\n\t\t                    \"0x02\" : \"0x00\"\n\t\t                }\n        \t\t    },\n        \t\t    \"<contract:0xb000000000000000000000000000000000000000>\" : {\n        \t\t        \"storage\" : {\n\t\t                    \"0x00\" : \"0x00\",\n\t\t                    \"0x01\" : \"0x00\"\n\t\t                }\n        \t\t    },\n        \t\t    \"<contract:0xc000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x00\"\n\t\t                }\n        \t\t    },\n\t\t            \"<contract:0xd000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x00\",\n\t\t                    \"0x01\" : \"0x00\",\n\t\t                    \"0x02\" : \"0x00\"\n\t\t                }\n\t\t            },\n\t\t            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n    \t\t\t        \"nonce\" : \"1\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] (ADD 1 (SLOAD 0)) [[1]] (STATICCALL 150000 <contract:0xb000000000000000000000000000000000000000> 0 0 0 0) [[2]] (STATICCALL 150000 <contract:0xd000000000000000000000000000000000000000> 0 0 0 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:0xb000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{  (STATICCALL 50000 <contract:0xc000000000000000000000000000000000000000> 0 0 0 0) (MSTORE 1 1) }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:0xc000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ (MSTORE 1 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:0xd000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ (STATICCALL 50000 <contract:0xc000000000000000000000000000000000000000> 0 0 0 0) (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n    \t    \"// data\" : \"In transaction T to A, A call B call C, then A call D calls C, D fails after calling C.\",\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1706850\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xa000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_RevertOpcodeCallsFiller.json",
    "content": "{\n    \"static_RevertOpcodeCalls\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"<contract:target:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t     \"<contract:target:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"{   [[0]] (STATICCALL 50000 <contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0) [[1]] (RETURNDATASIZE)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"{ (REVERT 0 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t        \"\"\n            ],\n            \"gasLimit\" : [\n                \"460000\", \"88000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_ZeroValue_CALL_OOGRevertFiller.json",
    "content": "{\n    \"static_ZeroValue_CALL_OOGRevert\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t               \"nonce\" : \"1\"\n\t\t            },\n\t\t            \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n    \t\t\t        \"shouldnotexist\" : \"1\"\n\t\t            },\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x00\",\n\t\t                    \"0x01\" : \"0x00\",\n\t\t                    \"0x64\" : \"0x00\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [[0]](GAS) [[1]] (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) (KECCAK256 0x00 0x2fffff) [[100]] (GAS) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1350000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_ZeroValue_SUICIDE_OOGRevertFiller.json",
    "content": "{\n    \"static_ZeroValue_SUICIDE_OOGRevert\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n        \t\t       \"nonce\" : \"1\"\n        \t\t    },\n        \t\t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n            \t\t\t\"storage\" : {}\n        \t\t    },\n        \t\t    \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n            \t\t\t\"storage\" : {}\n        \t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (STATICCALL 100000 <contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0) (KECCAK256 0x00 0x2fffff) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (SELFDESTRUCT <contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>)  }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callBasicFiller.json",
    "content": "{\n    \"static_callBasic\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : [0, 1], \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n\t\t\t\t\t\t    \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            },\n\t    \t{\n                \"indexes\" : { \"data\" : [2], \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n\t\t\t\t\t\t    \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            },\n\t    \t{\n                \"indexes\" : { \"data\" : [3], \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n\t\t\t    \t\t\t\"0x01\" : \"0x01\"\n                        }\n                    },\n\t\t            \"<contract:0x3000000000000000000000000000000000000003>\" : {\n\t\t            \t\"balance\" : \"23\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n\t\t        \"// code\" : \"Static call success\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 100000 (CALLDATALOAD 0) 0 0 0 0) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \" { [[ 1 ]] 1 } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n        \t\t    \"0x01\" : \"0x01\"\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \" { [[ 1 ]] 0 } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n        \t\t    \"0x01\" : \"0x00\"\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \" { (CALL 40000 <contract:0x2000000000000000000000000000000000000003> 0 0 0 0 0) (MSTORE 1 1) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \" { (LOG0 1 10) (MSTORE 1 1) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000004>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \" { (CALLCODE 40000 <contract:0x3000000000000000000000000000000000000003> 1 0 0 0 0) (MSTORE 1 1) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x3000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \" { (MSTORE 1 1) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000001>\",\n        \t\t\":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000002>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000003>\",\n        \t\t\":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000004>\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callChangeRevertFiller.json",
    "content": "{\n    \"static_callChangeRevert\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : 0, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n\t\t\t                \"0x01\" : \"0x01\",\n\t\t\t                \"0x02\" : \"0x01\"\n                        }\n                    },\n        \t\t    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n            \t\t\t\"balance\" : \"0x02\"\n        \t\t    }\n                }\n            },\n    \t    {\n                \"indexes\" : { \"data\" : 1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0x2000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n\t\t\t                \"0x01\" : \"0x00\",\n\t\t\t                \"0x02\" : \"0x00\"\n                        }\n                    },\n        \t\t    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n            \t\t\t\"balance\" : \"0x00\"\n        \t\t    }\n                }\n            },\n    \t    {\n                \"indexes\" : { \"data\" : 2, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0x3000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n\t\t\t                \"0x01\" : \"0x00\",\n\t\t\t                \"0x02\" : \"0x01\"\n                        }\n                    },\n        \t\t    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n            \t\t\t\"balance\" : \"0x02\"\n        \t\t    }\n                }\n            }\n        ],\n        \"pre\" : {\n\t    \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (CALL 350000 (CALLDATALOAD 0) 0 0 0 0 0)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 100000 <contract:0x1000000000000000000000000000000000000001> 1 0 0 0 0) [[ 1 ]] (STATICCALL 100000 <contract:0x1000000000000000000000000000000000000001> 0 0 0 0) [[ 2 ]] (CALL 100000 <contract:0x1000000000000000000000000000000000000001> 1 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ (MSTORE 1 1)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 100000 <contract:0x1000000000000000000000000000000000000001> 1 0 0 0 0) [[ 1 ]] (STATICCALL 100000 <contract:0x1000000000000000000000000000000000000001> 0 0 0 0) [[ 2 ]] (CALL 100000 <contract:0x1000000000000000000000000000000000000001> 1 0 0 0 0) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x3000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALL 100000 <contract:0x1000000000000000000000000000000000000002> 1 0 0 0 0) [[ 1 ]] (STATICCALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 0 0 0) [[ 2 ]] (CALL 100000 <contract:0x1000000000000000000000000000000000000002> 1 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ (MSTORE 1 1) (SSTORE 1 (SLOAD 1)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000000>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000000>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0x3000000000000000000000000000000000000000>\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xa000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callCreate2Filler.json",
    "content": "{\n    \"static_callCreate2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : 0, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"1000000000000000000000000000000000000000\" : {\n                        \"storage\" : {\n            \t\t\t    \"0x00\" : \"0x13136008b64ff592819b2fa6d43f2835c452020e\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            },\n    \t    {\n                \"indexes\" : { \"data\" : 1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"1000000000000000000000000000000000000001\" : {\n                        \"storage\" : {\n            \t\t\t    \"0x00\" : \"0x5dddfce53ee040d9eb21afbc0ae1bb4dbb0ba643\",\n                            \"0x01\" : \"0x00\"\n                        }\n                    },\n        \t\t    \"5dddfce53ee040d9eb21afbc0ae1bb4dbb0ba643\" : {\n\t\t            \t\"code\" : \"0x6001600155\",\n\t\t            \t\"storage\" : {\n                        }\n\t\t            }\n                }\n            },\n    \t    {\n                \"indexes\" : { \"data\" : 2, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"1000000000000000000000000000000000000001\" : {\n                        \"storage\" : {\n\t            \t\t    \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n\t    \"a000000000000000000000000000000000000000\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (CALL 600000 (CALLDATALOAD 0) 0 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"1000000000000000000000000000000000000000\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CREATE 1 0 0) [[ 1 ]] (STATICCALL 300000 (SLOAD 0) 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"1000000000000000000000000000000000000001\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 0 0x6460016001556000526005601bf3 ) [[ 0 ]] (CREATE 1 18 14) [[ 1 ]] (STATICCALL 300000 (SLOAD 0) 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"1000000000000000000000000000000000000002\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 0 0x6460016001556000526005601bf3 ) [[ 0 ]] (CREATE 1 18 14) [[ 1 ]] (STATICCALL 300000 (SLOAD 0) 0 0 0 0) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\":raw 0x0000000000000000000000001000000000000000000000000000000000000000\",\n\t\t\":raw 0x0000000000000000000000001000000000000000000000000000000000000001\",\n\t\t\":raw 0x0000000000000000000000001000000000000000000000000000000000000002\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"a000000000000000000000000000000000000000\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callCreate3Filler.json",
    "content": "{\n    \"static_callCreate3\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : 0, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"1000000000000000000000000000000000000000\" : {\n                        \"storage\" : {\n\t\t\t\t\t\t    \"0x00\" : \"0x13136008b64ff592819b2fa6d43f2835c452020e\",\n                            \"0x01\" : \"0x01\",\n\t\t\t\t\t\t    \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n\t    \"a000000000000000000000000000000000000000\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (CALL 600000 (CALLDATALOAD 0) 0 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"1000000000000000000000000000000000000000\" : {\n                \"balance\" : \"1000000000000000000\",\n\t\t        \"//0 code\" : \"{ (STATICCALL 100000 (ADDRESS) 0 0 0 0) } \",\n\t\t        \"//1 code\" : \"{  (MSTORE 0 0x600060006000600030620186a0fa) (RETURN 18 14) }\",\n                \"code\" : \"{  (MSTORE 0 0x6d600060006000600030620186a0fa600052600e6012f3) [[ 0 ]] (CREATE 1 9 23)  [[ 1 ]] (STATICCALL 30000 (SLOAD 0) 0 0 0 0) [[ 2 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n        \t\t\":raw 0x0000000000000000000000001000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"a000000000000000000000000000000000000000\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callCreateFiller.json",
    "content": "{\n    \"static_callCreate\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : [0,2,3], \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            },\n\t    {\n                \"indexes\" : { \"data\" : [1], \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 300000 (CALLDATALOAD 0) 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t   \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (CALL 150000 <contract:0x1000000000000000000000000000000000000002> 0 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t   \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (DELEGATECALL 150000 <contract:0x1000000000000000000000000000000000000002> 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t   \"<contract:0x1000000000000000000000000000000000000004>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (STATICCALL 150000 <contract:0x1000000000000000000000000000000000000002> 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t   \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (CREATE 0 1 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000001>\",\n\t\t\":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000002>\",\n\t\t\":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000003>\",\n\t\t\":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000004>\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callOutput1Filler.json",
    "content": "{\n    \"static_callOutput1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n    \t\"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t        \t\t\"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \t    \"storage\" : {\n\t            \t\t\t\"0x00\" : \"0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6\"\n                \t    }\n            \t\t}\n            \t}\n\t    }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (STATICCALL 50000 <contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87> 0 0 0 0) [[ 0 ]] (MLOAD 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x6001600101600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callOutput2Filler.json",
    "content": "{\n    \"static_callOutput2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n    \t\"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t\t\"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \t    \"storage\" : {\n            \t\t\t\t\"0x00\" : \"0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6\"\n                \t    }\n            \t\t}\n            \t}\n\t    }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (STATICCALL 50000 <contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87> 0 32 0 0) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x6001600101600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callOutput3FailFiller.json",
    "content": "{\n    \"static_callOutput3Fail\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n    \t\"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t        \t\t\"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \t    \"storage\" : {\n\t            \t\t\t\"0x00\" : \"0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6\"\n                \t    }\n            \t\t}\n            \t}\n\t    }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (STATICCALL 50000 <contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87> 0 0 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x016001600101600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callOutput3Filler.json",
    "content": "{\n    \"static_callOutput3\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n\t\"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t\t\"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \t    \"storage\" : {\n            \t\t\t\t\"0x00\" : \"0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6\"\n                \t    }\n            \t\t}\n            \t}\n\t    }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (STATICCALL 50000 <contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87> 0 0 0 32) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x6001600101600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callOutput3partialFailFiller.json",
    "content": "{\n    \"static_callOutput3partialFail\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n\t\"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t\t        \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \t    \"storage\" : {\n\t\t\t            \t\"0x00\" : \"0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6\"\n                \t    }\n            \t\t}\n            \t}\n\t    }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (STATICCALL 50000 <contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87> 0 0 0 10) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x016001600101600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callOutput3partialFiller.json",
    "content": "{\n    \"static_callOutput3partial\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n\t\"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t\t\"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \t    \"storage\" : {\n            \t\t\t\t\"0x00\" : \"0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6\"\n                \t    }\n            \t\t}\n            \t}\n\t    }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (STATICCALL 50000 <contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87> 0 0 0 10) [[ 0 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x6001600101600055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callToCallCodeOpCodeCheckFiller.json",
    "content": "{\n    \"static_callToCallCodeOpCodeCheck\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n        \t\t\"// code\" : \"Static call success\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 100000 (CALLDATALOAD 0) 0 0 0 0)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t        \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n        \t\t\"// code\" : \"Static call success\",\n                \"code\" : \"{  (MSTORE 0 (CALLCODE 100000 <contract:0x1000000000000000000000000000000000000002> 0 0 0 0 0)) (if (= 1 (MLOAD 0)) (MSTORE 1 1) (SSTORE 1 1) ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (if (= <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b> (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= <contract:0x1000000000000000000000000000000000000001> (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= <contract:0x1000000000000000000000000000000000000001> (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) )   (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) )        }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000001>\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callToCallOpCodeCheckFiller.json",
    "content": "{\n    \"static_callToCallOpCodeCheck\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n\t\t\"// code\" : \"Static call success\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 100000 (CALLDATALOAD 0) 0 0 0 0)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n\t\t\"// code\" : \"Static call success\",\n                \"code\" : \"{  (MSTORE 0 (CALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 0 0 0 0)) (if (= 1 (MLOAD 0)) (MSTORE 1 1) (SSTORE 1 1) ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (if (= <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b> (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= <contract:0x1000000000000000000000000000000000000001> (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= <contract:0x1000000000000000000000000000000000000002> (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) )   (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) )        }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000001>\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callToDelCallOpCodeCheckFiller.json",
    "content": "{\n    \"static_callToDelCallOpCodeCheck\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n\t\t\"// code\" : \"Static call succeed\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 100000 (CALLDATALOAD 0) 0 0 0 0)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n\t\t\"// code\" : \"Static call success\",\n                \"code\" : \"{  (MSTORE 0 (DELEGATECALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 0 0 0)) (if (= 1 (MLOAD 0)) (MSTORE 1 1) (SSTORE 1 1) ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (if (= <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b> (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= <contract:target:0x1000000000000000000000000000000000000000> (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= <contract:0x1000000000000000000000000000000000000001> (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) )   (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) )        }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000001>\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callToStaticOpCodeCheckFiller.json",
    "content": "{\n    \"static_callToStaticOpCodeCheck\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n        \t\t\"// code\" : \"Static call success\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 100000 (CALLDATALOAD 0) 0 0 0 0)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n        \t\t\"// code\" : \"Static call success\",\n                \"code\" : \"{  (MSTORE 0 (STATICCALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 0 0 0)) (if (= 1 (MLOAD 0)) (MSTORE 1 1) (SSTORE 1 1) ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (if (= <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b> (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= <contract:0x1000000000000000000000000000000000000001> (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= <contract:0x1000000000000000000000000000000000000002> (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) )   (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) )        }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000001>\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callWithHighValueAndGasOOGFiller.json",
    "content": "{\n    \"static_callWithHighValueAndGasOOG\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : 0, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n\t\t                    \"0x00\" : \"0x01\",\n\t\t                    \"0x01\" : \"0x3700ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n                        }\n                    }\n                }\n            },\n            {\n                \"indexes\" : { \"data\" : 1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0x195e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n\t\t                    \"0x00\" : \"0x01\",\n\t\t                    \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (CALL 500000 (CALLDATALOAD 0) 0 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (STATICCALL 0xffffffffffffffffffffffff <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 0 64 0 2 ) [[ 1 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x195e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (STATICCALL 0xffffffffffffffffffffffff <contract:0xb45304eb96065b2a98b57a48a06ae28d285a71b5> 0 64 0 2 ) [[ 1 ]] (MLOAD 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\",\n                    \"0x01\" : \"0x01\"\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \":raw 0x603760005360026000f3\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xb45304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \"{ (KECCAK256 0x00 0x2fffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n                \":raw 0x000000000000000000000000<contract:0x195e7baea6a6c7c4c2dfeb977efac326af552d87>\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callWithHighValueAndOOGatTxLevelFiller.json",
    "content": "{\n    \"static_callWithHighValueAndOOGatTxLevel\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n            \t\t\t    \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"100000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 3000001 <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 0 0 0 0 ) [[ 1 ]] (MLOAD 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \":raw 0x603760005360026000f3\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callWithHighValueFiller.json",
    "content": "{\n    \"static_callWithHighValue\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n\t\t\t                \"0x00\" : \"0x01\",\n\t\t\t                \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 50000 <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 0 64 0 2 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \":raw 0x603760005360026000f3\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callWithHighValueOOGinCallFiller.json",
    "content": "{\n    \"static_callWithHighValueOOGinCall\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t        \t\t\"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n\t\t\t            \"storage\" : {\n\t\t            \t\t\"0x00\" : \"0x01\"\n\t\t\t            }\n\t        \t\t}\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"100000\",\n                \"code\" : \"{  [[ 0 ]] (ADD (STATICCALL 10 <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 0 0 0 0 ) 1) [[ 1 ]] (MLOAD 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \":raw 0x603760005360026000f3\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_call_OOG_additionalGasCosts1Filler.json",
    "content": "{\n    \"static_call_OOG_additionalGasCosts1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"3000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t        {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n               \t\t \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n               \t\t    \"nonce\" : \"1\"\n            \t\t }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 6000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }\",\n                \"storage\": {}\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"\",\n                \"storage\": {}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"30000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_call_OOG_additionalGasCosts2_ParisFiller.json",
    "content": "{\n    \"static_call_OOG_additionalGasCosts2_Paris\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"3000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t\t\"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n               \t\t    \"storage\" : {\t\t\t\t\n        \t\t\t    }\n            \t\t },\n    \t    \t\t\"<eoa:0x1000000000000000000000000000000000000001>\" : {\n               \t\t    \"balance\" : \"10\"\n            \t\t }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{ [[ 0 ]] (STATICCALL 6000 <eoa:0x1000000000000000000000000000000000000001> 0 64 0 64 )  [[ 1 ]] (GAS) }\",\n                \"storage\": {}\n            },\n            \"<eoa:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"\",\n                \"storage\": {}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"30000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_call_value_inheritFiller.json",
    "content": "{\n    \"static_call_value_inherit\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"{ [[0]] (STATICCALL 50000 <contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 32) [[1]] (MLOAD 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x01\": \"0x01\"\n                }\n            },\n            \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"{ (MSTORE 0 (CALLVALUE)) (RETURN 0 32) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"460000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_call_value_inherit_from_callFiller.json",
    "content": "{\n    \"static_call_value_inherit_from_call\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"{ [[0]] (STATICCALL 50000 <contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 32) [[1]] (MLOAD 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x01\": \"0x01\"\n                }\n            },\n            \"<contract:target:0xc8b90f8d999d9d9988209481999a9889098a89a0>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (CALL 100000 <contract:0x094f5374fce5edbc8e2a8697c15331677e6ebf0b> 10 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {}\n            },\n            \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1\",\n                \"code\" : \"{ (MSTORE 0 (CALLVALUE)) (RETURN 0 32) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"460000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xc8b90f8d999d9d9988209481999a9889098a89a0>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcall_00Filler.json",
    "content": "{\n    \"static_callcall_00\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : 0, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t\t\t\t\"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n\t\t\t                \"storage\" : {\n\t\t\t\t\t\t\t\t\"0x00\" : \"0x01\",\n\t\t\t\t\t\t\t\t\"0x01\" : \"0x01\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t\"<contract:0x1000000000000000000000000000000000000000>\" : {\n\t\t\t                \"storage\" : {\n\t\t\t\t\t\t\t\t\"0x00\" : \"0x01\"\n\t\t\t\t\t\t\t}\n\t\t\t\t    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\",\n                            \"0x04\" : \"0x00\",\n                            \"0x07\" : \"0x00\",\n                            \"0xe6\" : \"0x00\",\n                            \"0xe8\" : \"0x00\",\n                            \"0xec\" : \"0x00\",\n                            \"0xee\" : \"0x00\",\n                            \"0xf0\" : \"0x00\"\n                        }\n                    }\n                }\n            },\n\t\t    {\n                \"indexes\" : { \"data\" : 1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t    \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n\t\t\t                \"0x00\" : \"0x01\",\n\t\t\t                \"0x01\" : \"0x01\"\n            \t\t\t}\n        \t\t    },\n        \t\t    \"<contract:0x2000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n            \t\t\t    \"0x00\" : \"0x01\"\n            \t\t\t}\n            \t    },\n                    \"<contract:0x2000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\",\n                            \"0x04\" : \"0x00\",\n                            \"0x07\" : \"0x00\",\n                            \"0xe6\" : \"0x00\",\n                            \"0xe8\" : \"0x00\",\n                            \"0xec\" : \"0x00\",\n                            \"0xee\" : \"0x00\",\n                            \"0xf0\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n\t    \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 350000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (STATICCALL 250000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 2 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 230 (ADDRESS)) (SSTORE 232 (ORIGIN)) (SSTORE 236 (CALLDATASIZE)) (SSTORE 238 (CODESIZE)) (SSTORE 240 (GASPRICE))}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0x2000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 350000 <contract:0x2000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (STATICCALL 250000 <contract:0x2000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 0 1) (MSTORE 32 (CALLER)) (MSTORE 64 (CALLVALUE)) (MSTORE 96 (ADDRESS)) (MSTORE 128 (ORIGIN)) (MSTORE 160 (CALLDATASIZE)) (MSTORE 192 (CODESIZE)) (MSTORE 224 (GASPRICE))}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000000>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000000>\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xa000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcall_00_OOGEFiller.json",
    "content": "{\n    \"static_callcall_00_OOGE\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : 0, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n\t\t            \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t\t\t            \"0x00\" : \"0x01\",\n\t\t\t\t            \"0x01\" : \"0x01\"\t\n\t\t                }\n\t\t            }\n                }\n            },\n    \t    {\n                \"indexes\" : { \"data\" : 1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0x2000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x2000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x2000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n        \t\t    \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n        \t\t        \"storage\" : {\n        \t\t\t\t    \"0x00\" : \"0x01\",\n        \t\t\t\t    \"0x01\" : \"0x01\"\t\n        \t\t        }\n        \t\t    }\n                }\n            }\n        ],\n        \"pre\" : {\n\t    \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 350000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (MSTORE 2 1) (STATICCALL 120020 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (MSTORE 32 1)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 2 1) (MSTORE 2 1)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:0x2000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 150000 <contract:0x2000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 2 1) (STATICCALL 20020 <contract:0x2000000000000000000000000000000000000002> 0 64 0 64 ) (MSTORE 32 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)  )}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000000>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000000>\"\n            ],\n            \"gasLimit\" : [\n                \"1720000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xa000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcall_00_OOGE_1Filler.json",
    "content": "{\n    \"static_callcall_00_OOGE_1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t\t\t            \"0x00\" : \"0x01\",\n\t\t\t\t            \"0x01\" : \"0x01\"\t\n\t\t                }\n\t\t            },\n\t\t            \"<contract:0x1000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n    \t\t\t\t        \"0x00\" : \"0x01\"\t\n\t\t                }\n\t\t            },\n\t\t            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n\t\t                \"storage\" : {\n\t\t\t\t            \"0x02\" : \"0x00\",\n\t\t\t\t            \"0x05\" : \"0x00\"\t\n\t\t                }\n\t\t            } \n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t\t\t            \"0x00\" : \"0x01\",\n\t\t\t\t            \"0x01\" : \"0x01\"\t\n\t                    }\n\t\t            },\n\t\t            \"<contract:0x2000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n    \t\t\t\t        \"0x00\" : \"0x01\"\t\n\t\t                }\n\t\t            },\n\t\t            \"<contract:0x2000000000000000000000000000000000000002>\" : {\n\t\t                \"storage\" : {\n\t\t\t\t            \"0x02\" : \"0x00\",\n\t\t\t\t            \"0x05\" : \"0x00\"\t\n\t\t                }\n\t\t            } \n                }\n            }\n        ],\n        \"pre\" : {\n    \t    \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\t     \n            \"<contract:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"storage\": {}\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 2 1) (STATICCALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (MSTORE 32 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{  (SSTORE 2 1) (SSTORE 5 (CALLVALUE)) }\",\n                \"storage\": {}\n            },\t     \n            \"<contract:0x2000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 150000 <contract:0x2000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"storage\": {}\n            },\n            \"<contract:0x2000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 2 1) (STATICCALL 100000 <contract:0x2000000000000000000000000000000000000002> 0 64 0 64 )  (MSTORE 32 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0x2000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{  (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)  ) }\",\n                \"storage\": {}\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"\",\n                \"storage\": {}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000000>\",\n\t            \":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000000>\"\n            ],\n            \"gasLimit\" : [\n                \"380066\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xa000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcall_00_OOGE_2Filler.json",
    "content": "{\n    \"static_callcall_00_OOGE_2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n\t\t        \"storage\" : {\n\t\t\t\t\"0x02\" : \"0x00\",\n\t\t\t\t\"0x05\" : \"0x00\"\t\n\t\t        }\n\t\t    },\n\t\t    \"<contract:0x1000000000000000000000000000000000000000>\" : {\n\t\t        \"storage\" : {\n\t\t\t\t\"0x00\" : \"0x00\"\n\t\t        }\n\t\t    },\n\t\t    \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n\t\t        \"storage\" : {\n\t\t\t\t\"0x00\" : \"0x00\",\n\t\t\t\t\"0x01\" : \"0x00\"\t\n\t\t        }\n\t\t    }\n                }\n            }\n        ],\n        \"pre\" : {\n\t    \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\t     \n            \"<contract:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"storage\": {}\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 2 1) (STATICCALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (MSTORE 32 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{  (SSTORE 2 1) (SSTORE 5 (CALLVALUE)) }\",\n                \"storage\": {}\n            },\n\t    \"<contract:0x2000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 150000 <contract:0x2000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"storage\": {}\n            },\n            \"<contract:0x2000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 2 1) (STATICCALL 100000 <contract:0x2000000000000000000000000000000000000002> 0 64 0 64 ) (MSTORE 32 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0x2000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{  (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)  ) }\",\n                \"storage\": {}\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"\",\n                \"storage\": {}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000000>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000000>\"\n            ],\n            \"gasLimit\" : [\n                \"150066\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xa000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcall_00_SuicideEndFiller.json",
    "content": "{\n    \"static_callcall_00_SuicideEnd\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"1000000000000000000\",\n\t\t\t            \"storage\" : {\n\t\t\t                \"0x00\" : \"0x00\"\n\t\t\t            }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 32 1) (STATICCALL 50000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (SELFDESTRUCT <contract:target:0x1000000000000000000000000000000000000000>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 2 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcall_000Filler.json",
    "content": "{\n    \"static_callcallcall_000\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : 0, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t\t\t\t\"<contract:0x1000000000000000000000000000000000000000>\" : {\n\t\t                    \"storage\" : {\n\t\t\t\t\t\t\t    \"0x00\" : \"0x01\"\n\t\t\t\t\t\t    }\n\t\t\t\t\t},\n\t\t\t\t\t\"<contract:0x1000000000000000000000000000000000000001>\" : {\n\t\t\t                \"storage\" : {\n\t\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t\"<contract:0x1000000000000000000000000000000000000002>\" : {\n\t\t\t                \"storage\" : {\n\t\t\t\t\t\t\t}\n\t\t\t\t\t},\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                            \"0x014a\" : \"0x00\",\n                            \"0x014c\" : \"0x00\",\n                            \"0x0150\" : \"0x00\",\n                            \"0x0152\" : \"0x00\",\n                            \"0x0154\" : \"0x00\",\n                            \"0x03\" : \"0x00\",\n                            \"0x04\" : \"0x00\",\n                            \"0x07\" : \"0x00\"\n                        }\n                    },\n\t\t\t\t\t\"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n\t\t\t\t\t\t\"storage\" : {\n\t\t\t\t\t\t    \"0x00\" : \"0x01\",\n\t\t\t\t\t\t    \"0x01\" : \"0x01\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n                }\n            },\n\t    \t{\n                \"indexes\" : { \"data\" : 1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t\t\t\t\"<contract:0x2000000000000000000000000000000000000000>\" : {\n\t\t\t                \"storage\" : {\n\t\t\t\t\t\t\t\t\"0x00\" : \"0x01\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t\"<contract:0x2000000000000000000000000000000000000001>\" : {\n\t\t\t                \"storage\" : {\n\t\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t\"<contract:0x2000000000000000000000000000000000000002>\" : {\n\t\t\t                \"storage\" : {\n\t\t\t\t\t\t\t}\n\t\t\t\t\t},\n                    \"<contract:0x2000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                            \"0x014a\" : \"0x00\",\n                            \"0x014c\" : \"0x00\",\n                            \"0x0150\" : \"0x00\",\n                            \"0x0152\" : \"0x00\",\n                            \"0x0154\" : \"0x00\",\n                            \"0x03\" : \"0x00\",\n                            \"0x04\" : \"0x00\",\n                            \"0x07\" : \"0x00\"\n                        }\n                    },\n\t\t            \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t\t                \"0x00\" : \"0x01\",\n\t\t\t                \"0x01\" : \"0x01\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" : {\n\t    \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 650000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 3 1) (STATICCALL 400000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (MSTORE 32 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 3 1) (STATICCALL 250000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) (MSTORE 32 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE))}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0x2000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 350000 <contract:0x2000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 3 1) (STATICCALL 300000 <contract:0x2000000000000000000000000000000000000002> 0 64 0 64 ) (MSTORE 32 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 3 1) (STATICCALL 250000 <contract:0x2000000000000000000000000000000000000003> 0 64 0 64 ) (MSTORE 32 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000000>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000000>\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xa000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcall_000_OOGEFiller.json",
    "content": "{\n    \"static_callcallcall_000_OOGE\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : 0, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n\t\t\t\t\t\t    \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            },\n\t\t    {\n                \"indexes\" : { \"data\" : 1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n\t\t\t\t\t\t    \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n\t    \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 500000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{   (MSTORE 3 1) (STATICCALL 300000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (MSTORE 32 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{   (MSTORE 3 1) (STATICCALL 120020 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) (MSTORE 32 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (MSTORE 3 1)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0x2000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 600000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{   (MSTORE 3 1) (STATICCALL 300000 <contract:0x2000000000000000000000000000000000000002> 0 64 0 64 )(MSTORE 32 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{   (MSTORE 3 1) (STATICCALL 120020 <contract:0x2000000000000000000000000000000000000003> 0 64 0 64 )(MSTORE 32 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)  ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000000>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000000>\"\n            ],\n            \"gasLimit\" : [\n                \"1720000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xa000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcall_000_OOGMAfter2Filler.json",
    "content": "{\n    \"static_callcallcall_000_OOGMAfter2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\",\n            \t\t\t    \"0x6f\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                            \"0x03\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 700000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 111 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{   (MSTORE 3 1) (STATICCALL 450000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)  ) }\", \n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{   (MSTORE 3 1) (STATICCALL 120020 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 )  (MSTORE 32 1)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1720000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcall_000_OOGMAfterFiller.json",
    "content": "{\n    \"static_callcallcall_000_OOGMAfter\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t           \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t\t\t        \"0x00\" : \"0x00\",\n\t\t\t\t        \"0x01\" : \"0x00\",\n\t\t\t\t        \"0x02\" : \"0x00\",\n\t\t\t\t        \"0x03\" : \"0x00\",\n\t\t\t\t        \"0x6f\" : \"0x01\"\n\t\t                }\n\t\t            },\n\t\t            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n\t\t                \"storage\" : {\n\t\t\t\t        \"0x01\" : \"0x00\",\n\t\t\t\t        \"0x02\" : \"0x00\",\n\t\t\t\t        \"0x03\" : \"0x00\"\n\t\t                }\n\t\t            },\n\t\t            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n\t\t                \"storage\" : {\n\t\t\t\t        \"0x02\" : \"0x00\",\n\t\t\t\t        \"0x03\" : \"0x00\"\n\t\t                }\n\t\t            },\n\t\t            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n\t\t                \"storage\" : {\n\t\t\t\t        \"0x03\" : \"0x00\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" : {\t     \n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 600150 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 111 ]] 1 }\",\n                \"storage\": {}\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) (STATICCALL 400080 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (SSTORE 3 1)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) (STATICCALL 120020 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) (MSTORE 32 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"storage\": {}\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"\",\n                \"storage\": {}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1720000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcall_000_OOGMBeforeFiller.json",
    "content": "{\n    \"static_callcallcall_000_OOGMBefore\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                            \"0x03\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 600000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (STATICCALL 400080 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)  ) (STATICCALL 120020 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1720000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcall_000_SuicideEndFiller.json",
    "content": "{\n    \"static_callcallcall_000_SuicideEnd\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n            \t\t\t    \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"balance\" : \"10000000000\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 3 1) (STATICCALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (MSTORE 32 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{ (MSTORE 3 1) (STATICCALL 50000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) (SELFDESTRUCT <contract:0x1000000000000000000000000000000000000001>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 3 1)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcall_000_SuicideMiddleFiller.json",
    "content": "{\n    \"static_callcallcall_000_SuicideMiddle\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"1000000000000000000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n            \t\t\t    \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 )  [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 3 1) (STATICCALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (MSTORE 32 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{ (SELFDESTRUCT <contract:target:0x1000000000000000000000000000000000000000>) (STATICCALL 50000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcall_ABCB_RECURSIVEFiller.json",
    "content": "{\n    \"static_callcallcall_ABCB_RECURSIVE\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"3000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 1 1) (STATICCALL 25000000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) (MSTORE 2 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{   (MSTORE 3 1) (STATICCALL 1000000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (MSTORE 4 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{ (MSTORE 5 1) (STATICCALL 500000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) (MSTORE 6 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcallcode_001Filler.json",
    "content": "{\n    \"static_callcallcallcode_001\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x00\",\n                            \"0x03\" : \"0x00\",\n                            \"0x04\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x03\" : \"0x00\",\n                            \"0x04\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x014a\" : \"0x00\",\n                            \"0x014c\" : \"0x00\",\n                            \"0x0150\" : \"0x00\",\n                            \"0x0152\" : \"0x00\",\n                            \"0x0154\" : \"0x00\",\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\",\n                            \"0x04\" : \"0x00\",\n                            \"0x07\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {                    \n                    \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n\t    \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 350000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) (MSTORE 3 1)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 3 1)  (STATICCALL 300000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 3 1)  (DELEGATECALL 250000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0x2000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 350000 <contract:0x2000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 3 1)  (STATICCALL 300000 <contract:0x2000000000000000000000000000000000000002> 0 64 0 64 )(MSTORE 3 1)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 3 1)  (DELEGATECALL 250000 <contract:0x2000000000000000000000000000000000000003> 0 64 0 64 ) (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000000>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000000>\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xa000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcallcode_001_2Filler.json",
    "content": "{\n    \"static_callcallcallcode_001_2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : 0, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t        \t    \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n\t\t\t\t\t\t    \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x014a\" : \"0x00\",\n                            \"0x014c\" : \"0x00\",\n                            \"0x0150\" : \"0x00\",\n                            \"0x0152\" : \"0x00\",\n                            \"0x0154\" : \"0x00\",\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\",\n                            \"0x04\" : \"0x00\",\n                            \"0x07\" : \"0x00\"\n                        }\n                    }\n                }\n            },\n    \t    {\n                \"indexes\" : { \"data\" : 1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t        \t    \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n\t\t\t    \t\t\t\"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x014a\" : \"0x00\",\n                            \"0x014c\" : \"0x00\",\n                            \"0x0150\" : \"0x00\",\n                            \"0x0152\" : \"0x00\",\n                            \"0x0154\" : \"0x00\",\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\",\n                            \"0x04\" : \"0x00\",\n                            \"0x07\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n\t    \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] 1}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 350000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (STATICCALL 300000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 2 ]] (CALLCODE 250000 <contract:0x1000000000000000000000000000000000000003> 3 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 1 0x11223344) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:0x2000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 350000 <contract:0x2000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (STATICCALL 300000 <contract:0x2000000000000000000000000000000000000002> 0 64 0 64 ) (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 4 1) (CALLCODE 250000 <contract:0x2000000000000000000000000000000000000003> 0 0 64 0 64 ) (MSTORE 6 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000000>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000000>\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xa000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcallcode_001_OOGEFiller.json",
    "content": "{\n    \"static_callcallcallcode_001_OOGE\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 600000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) (MSTORE 3 1)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (MSTORE 3 1) (STATICCALL 300000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (MSTORE 3 1)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) (DELEGATECALL 120020 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) (MSTORE 3 1)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)  )}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1720000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcallcode_001_OOGE_2Filler.json",
    "content": "{\n    \"static_callcallcallcode_001_OOGE_2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n\t\t\t    \t\t\t\"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n\t    \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 500000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (STATICCALL 300000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (CALLCODE 120020 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (MSTORE 3 1)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0x2000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 500000 <contract:0x2000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (STATICCALL 300000 <contract:0x2000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (CALLCODE 120020 <contract:0x2000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)  ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000000>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000000>\"\n            ],\n            \"gasLimit\" : [\n                \"1720000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xa000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcallcode_001_OOGMAfter2Filler.json",
    "content": "{\n    \"static_callcallcallcode_001_OOGMAfter2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                            \"0x03\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 600150 (CALLDATALOAD 0) 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (STATICCALL 400080 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)  ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (STATICCALL 400080 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (SSTORE 3 1)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (CALLCODE 120020 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000001>\",\n\t\t\":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000001>\"\n            ],\n            \"gasLimit\" : [\n                \"1720000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcallcode_001_OOGMAfterFiller.json",
    "content": "{\n    \"static_callcallcallcode_001_OOGMAfter\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 600150 (CALLDATALOAD 0) 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) (STATICCALL 400085 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) (STATICCALL 400085 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)  ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) (DELEGATECALL 120020 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) (MSTORE 32 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000001>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000001>\"\n            ],\n            \"gasLimit\" : [\n                \"1720000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcallcode_001_OOGMAfter_2Filler.json",
    "content": "{\n    \"static_callcallcallcode_001_OOGMAfter_2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t           \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t\t\t        \"0x00\" : \"0x00\",\n\t\t\t\t        \"0x01\" : \"0x01\",\t\n\t\t\t\t        \"0x02\" : \"0x00\"\n\t\t                }\n\t\t            },\n\t\t            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n\t\t                \"storage\" : {\n\t\t\t\t        \"0x00\" : \"0x00\",\n\t\t\t\t        \"0x01\" : \"0x00\",\n\t\t\t\t        \"0x02\" : \"0x00\"\n\t\t                }\n\t\t            },\n\t\t            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n\t\t                \"storage\" : {\n\t\t\t\t        \"0x00\" : \"0x00\",\n\t\t\t\t        \"0x01\" : \"0x00\",\n\t\t\t\t        \"0x02\" : \"0x00\"\n\t\t                }\n\t\t            },\n\t\t            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n\t\t                \"storage\" : {\n\t\t\t\t        \"0x01\" : \"0x00\",\n\t\t\t\t        \"0x02\" : \"0x00\",\n\t\t\t\t        \"0x03\" : \"0x00\"\n\t\t                }\n\t\t            },\n\t\t            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t\t\t        \"0x01\" : \"0x00\",\n\t\t\t\t        \"0x02\" : \"0x00\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" : {\t     \n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 60150 (CALLDATALOAD 0) 0 64 0 64 ) [[ 1 ]] 1  }\",\n                \"storage\": {}\n            },\n            \"<contract:0x2000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (STATICCALL 400085 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)  ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (STATICCALL 400085 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (DELEGATECALL 120020 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"storage\": {}\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"\",\n                \"storage\": {}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000001>\",\n        \t\t\":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000001>\"\n            ],\n            \"gasLimit\" : [\n                \"1720000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcallcode_001_OOGMAfter_3Filler.json",
    "content": "{\n    \"static_callcallcallcode_001_OOGMAfter_3\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t           \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t\t\t        \"0x00\" : \"0x00\",\n\t\t\t\t        \"0x01\" : \"0x01\",\n\t\t\t\t        \"0x02\" : \"0x00\",\n\t\t\t\t        \"0x03\" : \"0x00\"\n\t\t                }\n\t\t            },\n\t\t           \"<contract:0x1000000000000000000000000000000000000001>\" : {\n\t\t                \"storage\" : {\n\t\t\t\t        \"0x01\" : \"0x00\",\n\t\t\t\t        \"0x02\" : \"0x00\",\n\t\t\t\t        \"0x03\" : \"0x00\"\n\t\t                }\n\t\t            },\n\t\t            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n\t\t                \"storage\" : {\n\t\t\t\t        \"0x02\" : \"0x00\",\n\t\t\t\t        \"0x03\" : \"0x00\"\n\t\t                }\n\t\t            },\n\t\t            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n\t\t                \"storage\" : {\n\t\t\t\t        \"0x03\" : \"0x00\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" : {\t     \n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 600150 (CALLDATALOAD 0) 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"storage\": {}\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (STATICCALL 400080 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (SSTORE 3 1)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (STATICCALL 400080 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)  )}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (CALLCODE 120020 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"storage\": {}\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"\",\n                \"storage\": {}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000001>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000001>\"\n            ],\n            \"gasLimit\" : [\n                \"1720000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcallcode_001_OOGMBefore2Filler.json",
    "content": "{\n    \"static_callcallcallcode_001_OOGMBefore2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n            \t    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                    \t\"storage\" : {\n\t\t\t                \"0x02\" : \"0x00\",\n\t\t\t                \"0x03\" : \"0x00\"\n                    \t }\n            \t    },\n            \t    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                    \t\"storage\" : {\n            \t\t\t    \"0x03\" : \"0x00\"\n               \t        }\n            \t    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (STATICCALL 600000 <contract:0x1000000000000000000000000000000000000001> 0 32 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 0 (CALLDATALOAD 0)) (STATICCALL 400080 (CALLDATALOAD 0) 0 64 0 64 ) (MSTORE 32 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (SSTORE 1 1) (CALLCODE 120020 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1))  (CALLCODE 120020 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000002>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000002>\"\n            ],\n            \"gasLimit\" : [\n                \"1720000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcallcode_001_OOGMBeforeFiller.json",
    "content": "{\n    \"static_callcallcallcode_001_OOGMBefore\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (STATICCALL 600000 <contract:0x1000000000000000000000000000000000000001> 0 32 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) (STATICCALL 400080 (CALLDATALOAD 0) 0 64 0 64 ) (MSTORE 32 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)  ) (DELEGATECALL 120020 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (SSTORE 1 1) (DELEGATECALL 120020 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000002>\",\n\t            \":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000002>\"\n            ],\n            \"gasLimit\" : [\n                \"1720000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcallcode_001_SuicideEnd2Filler.json",
    "content": "{\n    \"static_callcallcallcode_001_SuicideEnd2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                            \"storage\" : {\n\t\t\t                    \"0x00\" : \"0x01\",\n\t\t\t                    \"0x01\" : \"0x01\"\n\t\t\t                }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"balance\" : \"10000000000\"\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x03\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (STATICCALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (CALLCODE 50000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) (SELFDESTRUCT <contract:0x1000000000000000000000000000000000000001>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcallcode_001_SuicideEndFiller.json",
    "content": "{\n    \"static_callcallcallcode_001_SuicideEnd\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n            \t\t\t    \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n\t                \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"balance\" : \"10000000000\"\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (STATICCALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (DELEGATECALL 50000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) (SELFDESTRUCT <contract:0x1000000000000000000000000000000000000001>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcallcode_001_SuicideMiddle2Filler.json",
    "content": "{\n    \"static_callcallcallcode_001_SuicideMiddle2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"1000000000000000000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n            \t\t\t    \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 )  [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 3 1) (STATICCALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (MSTORE 32 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SELFDESTRUCT <contract:target:0x1000000000000000000000000000000000000000>) (CALLCODE 50000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcallcode_001_SuicideMiddleFiller.json",
    "content": "{\n    \"static_callcallcallcode_001_SuicideMiddle\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"1000000000000000000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n\t\t\t                \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 3 1) (STATICCALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (MSTORE 32 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SELFDESTRUCT <contract:target:0x1000000000000000000000000000000000000000>) (DELEGATECALL 50000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcallcode_ABCB_RECURSIVE2Filler.json",
    "content": "{\n    \"static_callcallcallcode_ABCB_RECURSIVE2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"3000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 1 1) (STATICCALL 25000000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 1 1) (STATICCALL 1000000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (MSTORE 2 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 1 1) (CALLCODE 500000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) (MSTORE 2 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcallcode_ABCB_RECURSIVEFiller.json",
    "content": "{\n    \"static_callcallcallcode_ABCB_RECURSIVE\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"3000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 1 1) (STATICCALL 25000000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) (MSTORE 31 1)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 1 1) (STATICCALL 1000000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (MSTORE 31 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 1 1) (DELEGATECALL 500000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) (MSTORE 21 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcode_01_2Filler.json",
    "content": "{\n    \"static_callcallcode_01_2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : 0, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t\t                \"0x00\" : \"0x01\",\n\t\t\t                \"0x01\" : \"0x01\"\n\t\t                }\n\t\t            }\n                }\n            },\n    \t    {\n                \"indexes\" : { \"data\" : 1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t\t                \"0x00\" : \"0x01\",\n\t\t\t                \"0x01\" : \"0x01\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" : {\n\t    \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE (GAS) (CALLDATALOAD 0) 0 0 0 0 0) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (STATICCALL 350000 <contract:0x1000000000000000000000000000000000000001> 0 32 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (CALLCODE 250000 <contract:0x1000000000000000000000000000000000000002> 2 0 32 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 0 0x11223344) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (STATICCALL 350000 <contract:0x2000000000000000000000000000000000000001> 0 32 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 0 (CALLDATALOAD 0)) (CALLCODE 250000 <contract:0x2000000000000000000000000000000000000002> 0 0 32 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 0 0x11223344) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000000>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000000>\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xa000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcode_01_OOGE_2Filler.json",
    "content": "{\n    \"static_callcallcode_01_OOGE_2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t\t\t            \"0x00\" : \"0x01\",\n\t\t\t\t            \"0x01\" : \"0x01\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (STATICCALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 32 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (CALLCODE 20020 (CALLDATALOAD 0) 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 2 1) (MSTORE 2 1)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)  ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000002>\",\n\t\t\t\t\":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000002>\"\n            ],\n            \"gasLimit\" : [\n                \"172000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcode_01_SuicideEnd2Filler.json",
    "content": "{\n    \"static_callcallcode_01_SuicideEnd2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"1000000000000000000\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n\t\t\t                \"0x01\" : \"0x01\"\n                        }\n\t\t\t\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (CALLCODE 50000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) (SELFDESTRUCT <contract:target:0x1000000000000000000000000000000000000000>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 2 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcode_01_SuicideEndFiller.json",
    "content": "{\n    \"static_callcallcode_01_SuicideEnd\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"balance\" : \"10000000000\"\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (DELEGATECALL 50000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (SELFDESTRUCT <contract:target:0x1000000000000000000000000000000000000000>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 2 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcodecall_010Filler.json",
    "content": "{\n    \"static_callcallcodecall_010\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 350000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 3 1)  (DELEGATECALL 300000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 3 1) (STATICCALL 250000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) (MSTORE 3 1)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 1 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcodecall_010_2Filler.json",
    "content": "{\n    \"static_callcallcodecall_010_2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : 0, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            },\n    \t    {\n                \"indexes\" : { \"data\" : 1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 350000 (CALLDATALOAD 0) 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (CALLCODE 300000 <contract:0x1000000000000000000000000000000000000002> 2 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (CALLCODE 300000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (STATICCALL 250000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000001>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000001>\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcodecall_010_OOGEFiller.json",
    "content": "{\n    \"static_callcallcodecall_010_OOGE\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (STATICCALL 500000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{   (DELEGATECALL 300000 (CALLDATALOAD 0) 0 64 0 64 ) (MSTORE 1 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (STATICCALL 120020 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (STATICCALL 120020 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) (SSTORE 1 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000002>\",\n                \":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000002>\"\n            ],\n            \"gasLimit\" : [\n                \"1720000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcodecall_010_OOGE_2Filler.json",
    "content": "{\n    \"static_callcallcodecall_010_OOGE_2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (STATICCALL 350000 <contract:0x1000000000000000000000000000000000000001> 0 32 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 0 (CALLDATALOAD 0)) (CALLCODE 200000 <contract:0x1000000000000000000000000000000000000002> 0 0 32 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (STATICCALL 120020 (CALLDATALOAD 0) 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000003>\",\n\t\t\":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000003>\"\n            ],\n            \"gasLimit\" : [\n                \"1720000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcodecall_010_OOGMAfter2Filler.json",
    "content": "{\n    \"static_callcallcodecall_010_OOGMAfter2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 60150 (CALLDATALOAD 0) 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (CALLCODE 400080 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (CALLCODE 400080 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) (SSTORE 1 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (STATICCALL 120020 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000001>\",\n                \":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000001>\"\n            ],\n            \"gasLimit\" : [\n                \"1720000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcodecall_010_OOGMAfterFiller.json",
    "content": "{\n    \"static_callcallcodecall_010_OOGMAfter\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 600150 (CALLDATALOAD 0) 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (DELEGATECALL 400080 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (DELEGATECALL 400080 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (STATICCALL 120040 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000001>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000001>\"\n            ],\n            \"gasLimit\" : [\n                \"1720000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcodecall_010_OOGMAfter_2Filler.json",
    "content": "{\n    \"static_callcallcodecall_010_OOGMAfter_2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t\t\t            \"0x00\" : \"0x00\",\n\t\t\t\t            \"0x01\" : \"0x01\",\n\t\t\t\t            \"0x02\" : \"0x00\",\n\t\t\t\t            \"0x03\" : \"0x00\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" : {\t     \n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 600150 (CALLDATALOAD 0) 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"storage\": {}\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (DELEGATECALL 400080 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (DELEGATECALL 400080 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (STATICCALL 120040 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"storage\": {}\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"\",\n                \"storage\": {}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000001>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000001>\"\n            ],\n            \"gasLimit\" : [\n                \"1720000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcodecall_010_OOGMAfter_3Filler.json",
    "content": "{\n    \"static_callcallcodecall_010_OOGMAfter_3\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t\t\t        \"0x00\" : \"0x00\",\n\t\t\t\t        \"0x01\" : \"0x01\",\n\t\t\t\t        \"0x02\" : \"0x00\",\n\t\t\t\t        \"0x03\" : \"0x00\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" : {\t     \n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 600150 (CALLDATALOAD 0) 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"storage\": {}\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (CALLCODE 400080 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (CALLCODE 400080 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (STATICCALL 120020 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"storage\": {}\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"\",\n                \"storage\": {}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000001>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000001>\"\n            ],\n            \"gasLimit\" : [\n                \"1720000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcodecall_010_OOGMBefore2Filler.json",
    "content": "{\n    \"static_callcallcodecall_010_OOGMBefore2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (STATICCALL 800000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (CALLCODE 400080 (CALLDATALOAD 0) 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) (STATICCALL 120020 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (SSTORE 3 1) (STATICCALL 20020 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000002>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000002>\"\n            ],\n            \"gasLimit\" : [\n                \"1720000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcodecall_010_OOGMBeforeFiller.json",
    "content": "{\n    \"static_callcallcodecall_010_OOGMBefore\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x00\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (STATICCALL 500000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (DELEGATECALL 400080 (CALLDATALOAD 0) 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (SSTORE 3 1) (STATICCALL 120020 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) (STATICCALL 20020 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000002>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000002>\"\n            ],\n            \"gasLimit\" : [\n                \"1720000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcodecall_010_SuicideEnd2Filler.json",
    "content": "{\n    \"static_callcallcodecall_010_SuicideEnd2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x03\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (CALLCODE 100000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (STATICCALL 50000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) (SELFDESTRUCT <contract:0x1000000000000000000000000000000000000001>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcodecall_010_SuicideEndFiller.json",
    "content": "{\n    \"static_callcallcodecall_010_SuicideEnd\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n            \t\t\t\"balance\" : \"10000000000\"\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"storage\" : {\n                            \"0x03\" : \"0x00\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (DELEGATECALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (STATICCALL 50000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) (SELFDESTRUCT <contract:0x1000000000000000000000000000000000000001>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcodecall_010_SuicideMiddle2Filler.json",
    "content": "{\n    \"static_callcallcodecall_010_SuicideMiddle2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n            \t\t\t    \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                        \"balance\" : \"10000000000\",\n                        \"storage\" : {\n                            \"0x03\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (CALLCODE 100000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SELFDESTRUCT <contract:target:0x1000000000000000000000000000000000000000>) (STATICCALL 50000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcodecall_010_SuicideMiddleFiller.json",
    "content": "{\n    \"static_callcallcodecall_010_SuicideMiddle\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n            \t\t\t    \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (DELEGATECALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SELFDESTRUCT <contract:target:0x1000000000000000000000000000000000000000>) (STATICCALL 50000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcodecall_ABCB_RECURSIVE2Filler.json",
    "content": "{\n    \"static_callcallcodecall_ABCB_RECURSIVE2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"3000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 25000000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (CALLCODE 1000000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (STATICCALL 500000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcodecall_ABCB_RECURSIVEFiller.json",
    "content": "{\n    \"static_callcallcodecall_ABCB_RECURSIVE\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"3000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 25000000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (DELEGATECALL 1000000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{ (STATICCALL 500000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcodecallcode_011Filler.json",
    "content": "{\n    \"static_callcallcodecallcode_011\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x03\" : \"0x00\",\n                            \"0x04\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 350000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 1 1) (DELEGATECALL 300000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (MSTORE 1 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 11 1) (DELEGATECALL 250000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) (MSTORE 11 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 1 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcodecallcode_011_2Filler.json",
    "content": "{\n    \"static_callcallcodecallcode_011_2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : 0, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n            \t\t\t    \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            },\n    \t    {\n                \"indexes\" : { \"data\" : 1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n            \t\t\t    \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (STATICCALL 350000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (CALLCODE 300000 (CALLDATALOAD 0) 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (CALLCODE 250000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (CALLCODE 250000 <contract:0x1000000000000000000000000000000000000003> 1 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 1 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000002>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000002>\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcodecallcode_011_OOGEFiller.json",
    "content": "{\n    \"static_callcallcodecallcode_011_OOGE\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (STATICCALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 0 (CALLDATALOAD 0)) (DELEGATECALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (DELEGATECALL 20020 (CALLDATALOAD 0) 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000003>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000003>\"\n            ],\n            \"gasLimit\" : [\n                \"172000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcodecallcode_011_OOGE_2Filler.json",
    "content": "{\n    \"static_callcallcodecallcode_011_OOGE_2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : 0, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            },\n    \t    {\n                \"indexes\" : { \"data\" : 1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (STATICCALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) (CALLCODE 100000 (CALLDATALOAD 0) 0 0 64 0 64 ) (MSTORE 3 1)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 11) (CALLCODE 20020 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) (MSTORE 13 1)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 11) (CALLCODE 20020 <contract:0x1000000000000000000000000000000000000003> 1 0 64 0 64 ) (MSTORE 13 1)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000002>\",\n\t            \":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000002>\"\n            ],\n            \"gasLimit\" : [\n                \"172000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcodecallcode_011_OOGMAfter2Filler.json",
    "content": "{\n    \"static_callcallcodecallcode_011_OOGMAfter2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 60150 (CALLDATALOAD 0) 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (CALLCODE 40080 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (CALLCODE 40080 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (CALLCODE 20020 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000001>\",\n\t\t\":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000001>\"\n            ],\n            \"gasLimit\" : [\n                \"172000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcodecallcode_011_OOGMAfterFiller.json",
    "content": "{\n    \"static_callcallcodecallcode_011_OOGMAfter\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 60140 (CALLDATALOAD 0) 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 1 1) (DELEGATECALL 40080 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 1 1) (DELEGATECALL 40080 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 1 1) (DELEGATECALL 20020 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) (MSTORE 1 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000001>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000001>\"\n            ],\n            \"gasLimit\" : [\n                \"172000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcodecallcode_011_OOGMAfter_1Filler.json",
    "content": "{\n    \"static_callcallcodecallcode_011_OOGMAfter_1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t\t\t            \"0x00\" : \"0x00\",\n\t\t\t\t            \"0x01\" : \"0x01\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" : {\t     \n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 60140 (CALLDATALOAD 0) 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"storage\": {}\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (MSTORE 3 1)  (DELEGATECALL 40080 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (MSTORE 3 1)  (DELEGATECALL 40080 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) (DELEGATECALL 20020 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"storage\": {}\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"\",\n                \"storage\": {}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000001>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000001>\"\n            ],\n            \"gasLimit\" : [\n                \"172000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcodecallcode_011_OOGMAfter_2Filler.json",
    "content": "{\n    \"static_callcallcodecallcode_011_OOGMAfter_2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t\t\t            \"0x00\" : \"0x00\",\n\t\t\t\t            \"0x01\" : \"0x01\"\n\t\t                }\n\t\t            } \n                }\n            }\n        ],\n        \"pre\" : {\t     \n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 60150 (CALLDATALOAD 0) 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"storage\": {}\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) (CALLCODE 40080 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) (CALLCODE 40080 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) (CALLCODE 20020 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) (MSTORE 32 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"storage\": {}\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"\",\n                \"storage\": {}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000001>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000001>\"\n            ],\n            \"gasLimit\" : [\n                \"172000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcodecallcode_011_OOGMBefore2Filler.json",
    "content": "{\n    \"static_callcallcodecallcode_011_OOGMBefore2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : [0,1], \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            },\n    \t    {\n                \"indexes\" : { \"data\" : [2], \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (STATICCALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 32 1) (CALLCODE 40080 (CALLDATALOAD 0) 0 0 64 0 64 ) (MSTORE 32 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (CALLCODE 20020 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) (MSTORE 32 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) (CALLCODE 20020 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) (MSTORE 32 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x3000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10\",\n                \"code\" : \"{  (CALLCODE 20020 <contract:0x1000000000000000000000000000000000000003> 1 0 64 0 64 ) (MSTORE 32 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 32 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000002>\",\n\t            \":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000002>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0x3000000000000000000000000000000000000002>\"\n            ],\n            \"gasLimit\" : [\n                \"172000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcodecallcode_011_OOGMBeforeFiller.json",
    "content": "{\n    \"static_callcallcodecallcode_011_OOGMBefore\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (STATICCALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) (DELEGATECALL 40080 (CALLDATALOAD 0) 0 64 0 64 ) (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1)  (DELEGATECALL 20020 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1))  (DELEGATECALL 20020 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000002>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000002>\"\n            ],\n            \"gasLimit\" : [\n                \"172000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcodecallcode_011_SuicideEnd2Filler.json",
    "content": "{\n    \"static_callcallcodecallcode_011_SuicideEnd2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 3 1) (CALLCODE 100000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 3 1) (CALLCODE 50000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) (SELFDESTRUCT <contract:0x1000000000000000000000000000000000000001>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcodecallcode_011_SuicideEndFiller.json",
    "content": "{\n    \"static_callcallcodecallcode_011_SuicideEnd\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n            \t\t\t    \"0x01\" : \"0x01\"\n                        }\n                    },\n        \t\t    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n        \t\t        \"balance\" : \"10000000000\"\n        \t\t    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (DELEGATECALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (DELEGATECALL 50000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) (SELFDESTRUCT <contract:0x1000000000000000000000000000000000000001>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcodecallcode_011_SuicideMiddle2Filler.json",
    "content": "{\n    \"static_callcallcodecallcode_011_SuicideMiddle2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x00\"\n                        }\n                    },\n        \t\t    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n        \t\t        \"balance\" : \"10000000000\"\n        \t\t    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 3 1) (CALLCODE 100000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{ (SELFDESTRUCT <contract:target:0x1000000000000000000000000000000000000000>) (CALLCODE 50000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcodecallcode_011_SuicideMiddleFiller.json",
    "content": "{\n    \"static_callcallcodecallcode_011_SuicideMiddle\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n        \t\t    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n\t                    \"balance\" : \"10000000000\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (DELEGATECALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{ (SELFDESTRUCT <contract:target:0x1000000000000000000000000000000000000000>) (DELEGATECALL 50000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcodecallcode_ABCB_RECURSIVE2Filler.json",
    "content": "{\n    \"static_callcallcodecallcode_ABCB_RECURSIVE2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"3000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 25000000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (CALLCODE 1000000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (CALLCODE 500000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcallcodecallcode_ABCB_RECURSIVEFiller.json",
    "content": "{\n    \"static_callcallcodecallcode_ABCB_RECURSIVE\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"3000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 25000000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (DELEGATECALL 1000000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (DELEGATECALL 500000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcode_checkPCFiller.json",
    "content": "{\n    \"static_callcode_checkPC\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"3000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \t\"storage\" : {\n                  \t    \"0x03\" : \"0x23\"\n                \t}\n            \t     }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{ (STATICCALL 1000000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[3]] (PC)}\",\n                \"storage\": {}\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"\",\n                \"storage\": {}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecall_10Filler.json",
    "content": "{\n    \"static_callcodecall_10\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 350000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 1 1) (STATICCALL 250000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (MSTORE 1 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 1 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecall_10_2Filler.json",
    "content": "{\n    \"static_callcodecall_10_2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 350000 <contract:0x1000000000000000000000000000000000000001> 1 0 64 0 64 ) [[ 1 ]] 1  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (STATICCALL 250000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 1 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecall_10_OOGEFiller.json",
    "content": "{\n    \"static_callcodecall_10_OOGE\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (DELEGATECALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (STATICCALL 20020 (CALLDATALOAD 0) 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 2 1)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000002>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000002>\"\n            ],\n            \"gasLimit\" : [\n                \"172000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecall_10_OOGE_2Filler.json",
    "content": "{\n    \"static_callcodecall_10_OOGE_2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n\t\t\t\t\t\t    \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    },\n                    \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                        \"storage\" : {\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (CALLCODE 150000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 2 1) (STATICCALL 20020 (CALLDATALOAD 0) 0 64 0 64 ) (MSTORE 32 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 2 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000002>\",\n\t\t\":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000002>\"\n            ],\n            \"gasLimit\" : [\n                \"172000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecall_10_SuicideEnd2Filler.json",
    "content": "{\n    \"static_callcodecall_10_SuicideEnd2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : 0 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"1000000000000000000\"\n                    }\n                }\n            },\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : 1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"1000000000000000001\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 150000 <contract:0x1000000000000000000000000000000000000001> (CALLVALUE) 0 64 0 64 ) [[ 1 ]] (GAS) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (STATICCALL 50000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (SELFDESTRUCT <contract:target:0x1000000000000000000000000000000000000000>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 2 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\", \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecall_10_SuicideEndFiller.json",
    "content": "{\n    \"static_callcodecall_10_SuicideEnd\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\" ],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"nonce\" : \"0\",\n                        \"balance\" : \"1000000000000000000\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (DELEGATECALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] (GAS) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (STATICCALL 50000 (CALLDATALOAD 0) 0 64 0 64 ) (SELFDESTRUCT <contract:target:0x1000000000000000000000000000000000000000>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 2 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SSTORE 2 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000002>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000002>\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcall_100Filler.json",
    "content": "{\n    \"static_callcodecallcall_100\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 350000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (STATICCALL 300000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (MSTORE 5 (CALLER))}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (STATICCALL 250000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 1 1)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcall_100_2Filler.json",
    "content": "{\n    \"static_callcodecallcall_100_2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 350000 <contract:0x1000000000000000000000000000000000000001> (CALLVALUE) 0 64 0 64 ) [[ 1 ]] 1}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (STATICCALL 300000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (STATICCALL 250000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 1 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\", \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcall_100_OOGE2Filler.json",
    "content": "{\n    \"static_callcodecallcall_100_OOGE2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (CALLCODE 150000 <contract:0x1000000000000000000000000000000000000001> (CALLVALUE) 0 64 0 64 ) [[ 1 ]] 1}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 0 (CALLDATALOAD 0)) (STATICCALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (STATICCALL 20020 (CALLDATALOAD 0) 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000003>\",\n\t            \":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000003>\"\n            ],\n            \"gasLimit\" : [\n                \"172000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcall_100_OOGEFiller.json",
    "content": "{\n    \"static_callcodecallcall_100_OOGE\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (DELEGATECALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 32 (CALLDATALOAD 0)) (STATICCALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (STATICCALL 20020 (CALLDATALOAD 32) 0 64 0 64 ) (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000003>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000003>\"\n            ],\n            \"gasLimit\" : [\n                \"172000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcall_100_OOGMAfter2Filler.json",
    "content": "{\n    \"static_callcodecallcall_100_OOGMAfter2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 600150 (CALLDATALOAD 0) (CALLVALUE) 0 64 0 64 ) [[ 1 ]] 1  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (STATICCALL 400080 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (STATICCALL 120020 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000001>\"\n            ],\n            \"gasLimit\" : [\n                \"1720000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\", \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcall_100_OOGMAfterFiller.json",
    "content": "{\n    \"static_callcodecallcall_100_OOGMAfter\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 60150 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) (STATICCALL 40080 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) (STATICCALL 20020 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) (MSTORE 32 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1720000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcall_100_OOGMAfter_2Filler.json",
    "content": "{\n    \"static_callcodecallcall_100_OOGMAfter_2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t\t\t        \"0x00\" : \"0x00\",\n\t\t\t\t        \"0x01\" : \"0x01\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" : {\t     \n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 601500 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1  }\",\n                \"storage\": {}\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) (STATICCALL 400080 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) (STATICCALL 120020 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"storage\": {}\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"\",\n                \"storage\": {}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1720000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcall_100_OOGMAfter_3Filler.json",
    "content": "{\n    \"static_callcodecallcall_100_OOGMAfter_3\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : [0]\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t\t\t        \"0x00\" : \"0x00\",\n\t\t\t\t        \"0x01\" : \"0x01\"\n\t\t                }\n\t\t            } \n                }\n            },\n\t        {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : [1]\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t\t\t            \"0x00\" : \"0x00\",\n\t\t\t\t            \"0x01\" : \"0x01\"\n\t\t                }\n\t\t            } \n                }\n            }\n        ],\n        \"pre\" : {\t     \n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 60150 <contract:0x1000000000000000000000000000000000000001> (CALLVALUE) 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"storage\": {}\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) (STATICCALL 40080 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) (STATICCALL 20020 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) (MSTORE 32 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"storage\": {}\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"\",\n                \"storage\": {}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"172000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\", \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcall_100_OOGMBefore2Filler.json",
    "content": "{\n    \"static_callcodecallcall_100_OOGMBefore2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (CALLCODE 150000 <contract:0x1000000000000000000000000000000000000001> (CALLVALUE) 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) (STATICCALL 40080 (CALLDATALOAD 0) 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1))  (STATICCALL 20020 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (STATICCALL 20020 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000002>\",\n\t\t\":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000002>\"\n            ],\n            \"gasLimit\" : [\n                \"172000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\", \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcall_100_OOGMBeforeFiller.json",
    "content": "{\n    \"static_callcodecallcall_100_OOGMBefore\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (DELEGATECALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (STATICCALL 40080 (CALLDATALOAD 0) 0 64 0 64 ) (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) (STATICCALL 20020 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) (STATICCALL 20020 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000002>\",\n\t\t\":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000002>\"\n            ],\n            \"gasLimit\" : [\n                \"172000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcall_100_SuicideEnd2Filler.json",
    "content": "{\n    \"static_callcodecallcall_100_SuicideEnd2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 150000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 3 1) (STATICCALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (MSTORE 32 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 3 1) (STATICCALL 50000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) (SELFDESTRUCT <contract:0x1000000000000000000000000000000000000001>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcall_100_SuicideEndFiller.json",
    "content": "{\n    \"static_callcodecallcall_100_SuicideEnd\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 3 1) (STATICCALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (MSTORE 32 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 3 1) (STATICCALL 50000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) (SELFDESTRUCT <contract:0x1000000000000000000000000000000000000001>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcall_100_SuicideMiddle2Filler.json",
    "content": "{\n    \"static_callcodecallcall_100_SuicideMiddle2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 150000 <contract:0x1000000000000000000000000000000000000001> (CALLVALUE) 0 64 0 64 ) [[ 1 ]] 1  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (STATICCALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SELFDESTRUCT <contract:target:0x1000000000000000000000000000000000000000>) (STATICCALL 50000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\", \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcall_100_SuicideMiddleFiller.json",
    "content": "{\n    \"static_callcodecallcall_100_SuicideMiddle\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 3 1) (STATICCALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (MSTORE 32 1)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SELFDESTRUCT <contract:target:0x1000000000000000000000000000000000000000>) (STATICCALL 50000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcall_ABCB_RECURSIVE2Filler.json",
    "content": "{\n    \"static_callcodecallcall_ABCB_RECURSIVE2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"3000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 25000000 <contract:0x1000000000000000000000000000000000000001> (CALLVALUE) 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (STATICCALL 1000000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (STATICCALL 500000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\", \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcall_ABCB_RECURSIVEFiller.json",
    "content": "{\n    \"static_callcodecallcall_ABCB_RECURSIVE\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"3000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 25000000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (STATICCALL 1000000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (STATICCALL 500000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcallcode_101Filler.json",
    "content": "{\n    \"static_callcodecallcallcode_101\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 350000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 1 1) (STATICCALL 300000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (MSTORE 31 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 1 1) (DELEGATECALL 250000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) (MSTORE 31 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 1 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcallcode_101_2Filler.json",
    "content": "{\n    \"static_callcodecallcallcode_101_2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (CALLCODE 350000 <contract:0x1000000000000000000000000000000000000001> (CALLVALUE) 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (STATICCALL 300000 (CALLDATALOAD 0) 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (CALLCODE 250000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (CALLCODE 250000 <contract:0x1000000000000000000000000000000000000003> 1 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 1 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000002>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000002>\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcallcode_101_OOGEFiller.json",
    "content": "{\n    \"static_callcodecallcallcode_101_OOGE\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 350000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (STATICCALL 200000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (DELEGATECALL 120020 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1720000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcallcode_101_OOGE_2Filler.json",
    "content": "{\n    \"static_callcodecallcallcode_101_OOGE_2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 150000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (STATICCALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (CALLCODE 20020 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"172000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcallcode_101_OOGMAfter2Filler.json",
    "content": "{\n    \"static_callcodecallcallcode_101_OOGMAfter2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"1000000000000000000000000000000000000000\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"1000000000000000000000000000000000000000\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 60150 0x1000000000000000000000000000000000000001 (CALLVALUE) 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"1000000000000000000000000000000000000001\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"1000000000000000000000000000000000000002\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"1000000000000000000000000000000000000003\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"172000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"1000000000000000000000000000000000000000\",\n            \"value\" : [\n                \"0\", \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcallcode_101_OOGMAfterFiller.json",
    "content": "{\n    \"static_callcodecallcallcode_101_OOGMAfter\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 60150 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) (STATICCALL 40080 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) (DELEGATECALL 20020 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"172000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcallcode_101_OOGMAfter_1Filler.json",
    "content": "{\n    \"static_callcodecallcallcode_101_OOGMAfter_1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t\t\t            \"0x00\" : \"0x01\",\n\t\t\t\t            \"0x01\" : \"0x01\"\n\t\t                }\n\t\t            } \n                }\n            }\n        ],\n        \"pre\" : {\n    \t    \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE (GAS) (CALLDATALOAD 0) 0 0 0 0 0) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{  (CALLCODE 700150 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) (MSTORE 3 1) }\",\n                \"storage\": {}\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (STATICCALL 400080 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (CALLCODE 120020 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"storage\": {}\n            },\n            \"<contract:0x2000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{  (CALLCODE 700150 <contract:0x2000000000000000000000000000000000000001> 0 0 64 0 64 ) (MSTORE 3 1)}\",\n                \"storage\": {}\n            },\n            \"<contract:0x2000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (STATICCALL 400080 <contract:0x2000000000000000000000000000000000000002> 0 64 0 64 ) (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (CALLCODE 120020 <contract:0x2000000000000000000000000000000000000003> 0 0 64 0 64 ) (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0x2000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"storage\": {}\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"\",\n                \"storage\": {}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000000>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000000>\"\n            ],\n            \"gasLimit\" : [\n                \"1720000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xa000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcallcode_101_OOGMAfter_3Filler.json",
    "content": "{\n    \"static_callcodecallcallcode_101_OOGMAfter_3\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t\t\t            \"0x00\" : \"0x01\",\n\t\t\t\t            \"0x01\" : \"0x01\"\n\t\t                }\n\t\t            } \n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t\t\t            \"0x00\" : \"0x01\",\n\t\t\t\t            \"0x01\" : \"0x01\"\n\t\t                }\n\t\t            } \n                }\n            }\n        ],\n        \"pre\" : {\n\t    \"<contract:target:0xa000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE (GAS) (CALLDATALOAD 0) 0 0 0 0 0) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 60150 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] (GAS) }\",\n                \"storage\": {}\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (STATICCALL 40080 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (DELEGATECALL 20020 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"storage\": {}\n            },\n\t    \"<contract:0x2000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 60150 <contract:0x2000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"storage\": {}\n            },\n            \"<contract:0x2000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (STATICCALL 40080 <contract:0x2000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (DELEGATECALL 20020 <contract:0x2000000000000000000000000000000000000003> 0 64 0 64 ) (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0x2000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{  (SSTORE 3 1) }\",\n                \"storage\": {}\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"\",\n                \"storage\": {}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000000>\",\n\t\t\":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000000>\"\n            ],\n            \"gasLimit\" : [\n                \"172000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xa000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcallcode_101_OOGMBefore2Filler.json",
    "content": "{\n    \"static_callcodecallcallcode_101_OOGMBefore2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 150000 <contract:0x1000000000000000000000000000000000000001> (CALLVALUE) 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) (STATICCALL 40080 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) (CALLCODE 20020 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"172000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\", \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcallcode_101_OOGMBeforeFiller.json",
    "content": "{\n    \"static_callcodecallcallcode_101_OOGMBefore\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) (STATICCALL 40080 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) (DELEGATECALL 20020 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"172000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcallcode_101_SuicideEnd2Filler.json",
    "content": "{\n    \"static_callcodecallcallcode_101_SuicideEnd2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 150000 <contract:0x1000000000000000000000000000000000000001> (CALLVALUE) 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 3 1) (STATICCALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (MSTORE 32 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (CALLCODE 50000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) (SELFDESTRUCT <contract:0x1000000000000000000000000000000000000001>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\", \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcallcode_101_SuicideEndFiller.json",
    "content": "{\n    \"static_callcodecallcallcode_101_SuicideEnd\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 3 1) (STATICCALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (MSTORE 32 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (DELEGATECALL 50000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) (SELFDESTRUCT <contract:0x1000000000000000000000000000000000000001>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcallcode_101_SuicideMiddle2Filler.json",
    "content": "{\n    \"static_callcodecallcallcode_101_SuicideMiddle2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 150000 <contract:0x1000000000000000000000000000000000000001> (CALLVALUE) 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 3 1) (STATICCALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (MSTORE 32 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{ (SELFDESTRUCT <contract:target:0x1000000000000000000000000000000000000000>) (CALLCODE 50000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\", \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcallcode_101_SuicideMiddleFiller.json",
    "content": "{\n    \"static_callcodecallcallcode_101_SuicideMiddle\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"1000000000000000000000000000000000000000\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"1000000000000000000000000000000000000000\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"1000000000000000000000000000000000000001\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 3 1) (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 32 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"1000000000000000000000000000000000000002\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) (DELEGATECALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"1000000000000000000000000000000000000003\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"1000000000000000000000000000000000000000\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcallcode_ABCB_RECURSIVE2Filler.json",
    "content": "{\n    \"static_callcodecallcallcode_ABCB_RECURSIVE2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"3000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 25000000 (CALLDATALOAD 0) (CALLVALUE) 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (STATICCALL 1000000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (CALLCODE 500000 <contract:0x1000000000000000000000000000000000000001> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (STATICCALL 1000000 <contract:0x2000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (CALLCODE 500000 <contract:0x2000000000000000000000000000000000000001> 1 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000001>\",\n\t\t        \":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000001>\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\", \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcallcode_ABCB_RECURSIVEFiller.json",
    "content": "{\n    \"static_callcodecallcallcode_ABCB_RECURSIVE\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"3000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 25000000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (STATICCALL 1000000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (DELEGATECALL 500000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcodecall_1102Filler.json",
    "content": "{\n    \"static_callcodecallcodecall_1102\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 350000 <contract:0x1000000000000000000000000000000000000001> (CALLVALUE) 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (CALLCODE 300000 <contract:0x1000000000000000000000000000000000000002> (- (CALLVALUE) 1) 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (STATICCALL 250000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 1 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\", \"1\", \"2\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcodecall_110Filler.json",
    "content": "{\n    \"static_callcodecallcodecall_110\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 350000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 1 1) (DELEGATECALL 300000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (MSTORE 1 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 1 1) (STATICCALL 250000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) (MSTORE 1 1)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 1 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcodecall_110_2Filler.json",
    "content": "{\n    \"static_callcodecallcodecall_110_2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 350000 <contract:0x1000000000000000000000000000000000000001> (CALLVALUE) 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 1 1) (CALLCODE 300000 <contract:0x1000000000000000000000000000000000000002> ( - (CALLVALUE) 1) 0 64 0 64 ) (MSTORE 31 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 1 1) (STATICCALL 250000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) (MSTORE 31 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 1 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\", \"1\", \"2\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcodecall_110_OOGE2Filler.json",
    "content": "{\n    \"static_callcodecallcodecall_110_OOGE2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 150000 <contract:0x1000000000000000000000000000000000000001> (CALLVALUE) 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (CALLCODE 100000 <contract:0x1000000000000000000000000000000000000002> (- (CALLVALUE) 1) 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (STATICCALL 20020 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"172000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\", \"1\", \"2\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcodecall_110_OOGEFiller.json",
    "content": "{\n    \"static_callcodecallcodecall_110_OOGE\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (DELEGATECALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (STATICCALL 20020 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"172000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcodecall_110_OOGMAfter2Filler.json",
    "content": "{\n    \"static_callcodecallcodecall_110_OOGMAfter2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t        {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 60150 <contract:0x1000000000000000000000000000000000000001> (CALLVALUE) 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (CALLCODE 40080 <contract:0x1000000000000000000000000000000000000002> ( - (CALLVALUE) 1) 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (STATICCALL 20020 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"172000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\", \"1\", \"2\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcodecall_110_OOGMAfterFiller.json",
    "content": "{\n    \"static_callcodecallcodecall_110_OOGMAfter\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 60150 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (DELEGATECALL 40080 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (STATICCALL 20020 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"172000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcodecall_110_OOGMAfter_2Filler.json",
    "content": "{\n    \"static_callcodecallcodecall_110_OOGMAfter_2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t\t\t            \"0x00\" : \"0x00\",\n\t\t\t\t            \"0x01\" : \"0x01\"\n\t\t                }\n\t\t            } \n                }\n            }\n        ],\n        \"pre\" : {\t     \n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 60150 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"storage\": {}\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (DELEGATECALL 40080 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (STATICCALL 20020 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"storage\": {}\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"\",\n                \"storage\": {}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"172000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcodecall_110_OOGMAfter_3Filler.json",
    "content": "{\n    \"static_callcodecallcodecall_110_OOGMAfter_3\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n\t\t                \"storage\" : {\n\t\t\t\t            \"0x00\" : \"0x00\",\n\t\t\t\t            \"0x01\" : \"0x01\"\n\t\t                }\n\t\t            } \n                }\n            }\n        ],\n        \"pre\" : {\t     \n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 60150 <contract:0x1000000000000000000000000000000000000001> (CALLVALUE) 0 64 0 64 )  [[ 1 ]] 1 }\",\n                \"storage\": {}\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (CALLCODE 40080 <contract:0x1000000000000000000000000000000000000002> (- (CALLVALUE) 1) 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (STATICCALL 20020 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"nonce\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"storage\": {}\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"nonce\" : \"0\",\n                \"code\" : \"\",\n                \"storage\": {}\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"172000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcodecall_110_OOGMBefore2Filler.json",
    "content": "{\n    \"static_callcodecallcodecall_110_OOGMBefore2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 150000 <contract:0x1000000000000000000000000000000000000001> (CALLVALUE) 0 64 0 64 ) [[ 1 ]] 1}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (CALLCODE 40080 <contract:0x1000000000000000000000000000000000000002> (- (CALLVALUE) 1) 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) (STATICCALL 20020 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"172000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\", \"1\", \"2\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcodecall_110_OOGMBeforeFiller.json",
    "content": "{\n    \"static_callcodecallcodecall_110_OOGMBefore\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (DELEGATECALL 40080 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) (STATICCALL 20020 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"172000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcodecall_110_SuicideEnd2Filler.json",
    "content": "{\n    \"static_callcodecallcodecall_110_SuicideEnd2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : 0 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x2cebff\"\n                        }\n                    }\n                }\n            },\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : 1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x2cb7a7\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 150000 <contract:0x1000000000000000000000000000000000000001> (CALLVALUE) 0 64 0 64 ) [[ 1 ]] (GAS) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (CALLCODE 100000 <contract:0x1000000000000000000000000000000000000002> (CALLVALUE) 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (STATICCALL 50000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) (SELFDESTRUCT <contract:0x1000000000000000000000000000000000000001>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\", \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcodecall_110_SuicideEndFiller.json",
    "content": "{\n    \"static_callcodecallcodecall_110_SuicideEnd\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x2cec03\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] (GAS) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (DELEGATECALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (STATICCALL 50000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) (SELFDESTRUCT <contract:0x1000000000000000000000000000000000000001>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\", \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcodecall_110_SuicideMiddle2Filler.json",
    "content": "{\n    \"static_callcodecallcodecall_110_SuicideMiddle2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"1000000000000000000\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 150000 <contract:0x1000000000000000000000000000000000000001> (CALLVALUE) 0 64 0 64 ) [[ 1 ]] (GAS) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (CALLCODE 100000 <contract:0x1000000000000000000000000000000000000002> (CALLVALUE) 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SELFDESTRUCT <contract:target:0x1000000000000000000000000000000000000000>) (STATICCALL 50000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcodecall_110_SuicideMiddleFiller.json",
    "content": "{\n    \"static_callcodecallcodecall_110_SuicideMiddle\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"1000000000000000000\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (DELEGATECALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (SELFDESTRUCT <contract:target:0x1000000000000000000000000000000000000000>) (STATICCALL 50000 <contract:0x1000000000000000000000000000000000000003> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcodecall_ABCB_RECURSIVE2Filler.json",
    "content": "{\n    \"static_callcodecallcodecall_ABCB_RECURSIVE2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"3000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t        {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (CALLCODE 25000000 <contract:0x1000000000000000000000000000000000000001> (CALLVALUE) 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (CALLCODE 1000000 <contract:0x1000000000000000000000000000000000000002> 0 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (STATICCALL 500000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\", \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcodecall_ABCB_RECURSIVEFiller.json",
    "content": "{\n    \"static_callcodecallcodecall_ABCB_RECURSIVE\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"3000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 25000000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (DELEGATECALL 1000000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (STATICCALL 500000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_callcodecallcodecallcode_111_SuicideEndFiller.json",
    "content": "{\n    \"static_callcodecallcodecallcode_111_SuicideEnd\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (STATICCALL 100000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (CALLCODE 50000 <contract:0x1000000000000000000000000000000000000003> 0 0 64 0 64 ) (SELFDESTRUCT <contract:0x1000000000000000000000000000000000000001>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000003>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"{  (MSTORE 3 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_calldelcode_01Filler.json",
    "content": "{\n    \"static_calldelcode_01\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n            \t\t\t    \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (STATICCALL 350000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (DELEGATECALL 250000 <contract:0x1000000000000000000000000000000000000002> 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (MSTORE 1 0x11223344) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_calldelcode_01_OOGEFiller.json",
    "content": "{\n    \"static_calldelcode_01_OOGE\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (STATICCALL 150000 <contract:0x1000000000000000000000000000000000000001> 0 64 0 64 ) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000001>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (DELEGATECALL 20020 (CALLDATALOAD 0) 0 64 0 64 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (SSTORE 2 1) (MSTORE 2 1)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000002>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{  (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000002>\",\n        \t\t\":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000002>\"\n            ],\n            \"gasLimit\" : [\n                \"172000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x1000000000000000000000000000000000000000>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_contractCreationMakeCallThatAskMoreGasThenTransactionProvidedFiller.json",
    "content": "{\n    \"static_contractCreationMakeCallThatAskMoreGasThenTransactionProvided\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : { \"data\" : 0, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\": {\n    \t\t\t        \"nonce\" : \"1\"\n\t\t            }\n                }\n            },\n    \t    {\n                \"indexes\" : { \"data\" : 1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\": {\n\t\t\t            \"nonce\" : \"1\"\n\t\t            }\n                }\n            },\n    \t    {\n                \"indexes\" : { \"data\" : 2, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t        \t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\": {\n\t            \t\t\"nonce\" : \"1\"\n\t        \t    }\n                }\n            },\n\t        {\n                \"indexes\" : { \"data\" : 3, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\": {\n    \t\t\t        \"nonce\" : \"1\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1100000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"100000\",\n                \"code\" : \"{(STATICCALL 50000 0x1000000000000000000000000000000000000001 0 64 0 64)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"1000000000000000000000000000000000000001\" : {\n                \"balance\" : \"100000\",\n                \"code\" : \"{(SSTORE 1 1)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"2000000000000000000000000000000000000001\" : {\n                \"balance\" : \"100000\",\n                \"code\" : \"{(MSTORE 1 1)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"3000000000000000000000000000000000000001\" : {\n                \"balance\" : \"100000\",\n                \"code\" : \"{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"4000000000000000000000000000000000000001\" : {\n                \"balance\" : \"100000\",\n                \"code\" : \"{ (CALLCODE 1000 0x4000000000000000000000000000000000000004 0 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"5000000000000000000000000000000000000001\" : {\n                \"balance\" : \"100000\",\n                \"code\" : \"{ (CALLCODE 1000000 0x4000000000000000000000000000000000000004 0 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"4000000000000000000000000000000000000004\" : {\n                \"balance\" : \"100000\",\n                \"code\" : \"{ (MSTORE 1 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x604060006040600073100000000000000000000000000000000000000161c350fa\",\n        \t\t\":raw 0x604060006040600073200000000000000000000000000000000000000161c350fa\",\n        \t\t\":raw 0x604060006040600073300000000000000000000000000000000000000161c350fa\",\n        \t\t\":raw 0x604060006040600073400000000000000000000000000000000000000161c350fa\"\n            ],\n            \"gasLimit\" : [\n                \"96000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_contractCreationOOGdontLeaveEmptyContractViaTransactionFiller.json",
    "content": "{\n    \"static_contractCreationOOGdontLeaveEmptyContractViaTransaction\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1},\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\": {\n    \t\t\t        \"nonce\" : \"1\"\n\t           \t     }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1100000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"100000\",\n                \"code\" : \"{(STATICCALL 50000 0x1000000000000000000000000000000000000001 0 64 0 64)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"1000000000000000000000000000000000000001\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{(MSTORE 1 1)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"2000000000000000000000000000000000000001\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x604060006040600073200000000000000000000000000000000000000161c350fa\"\n            ],\n            \"gasLimit\" : [\n                \"96000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_log0_emptyMemFiller.json",
    "content": "{\n    \"static_log0_emptyMem\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n\t\t\t                \"0x01\" : \"0x01\" \n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (STATICCALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 0 0 0 0) [[ 1 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (LOG0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_log0_logMemStartTooHighFiller.json",
    "content": "{\n    \"static_log0_logMemStartTooHigh\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (STATICCALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_log0_logMemsizeTooHighFiller.json",
    "content": "{\n    \"static_log0_logMemsizeTooHigh\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (STATICCALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG0 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_log0_logMemsizeZeroFiller.json",
    "content": "{\n    \"static_log0_logMemsizeZero\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (STATICCALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG0 1 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_log0_nonEmptyMemFiller.json",
    "content": "{\n    \"static_log0_nonEmptyMem\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (STATICCALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG0 0 32) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_log0_nonEmptyMem_logMemSize1Filler.json",
    "content": "{\n    \"static_log0_nonEmptyMem_logMemSize1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (STATICCALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG0 0 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"2100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_log0_nonEmptyMem_logMemSize1_logMemStart31Filler.json",
    "content": "{\n    \"static_log0_nonEmptyMem_logMemSize1_logMemStart31\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (STATICCALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG0 31 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_log1_MaxTopicFiller.json",
    "content": "{\n    \"static_log1_MaxTopic\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (STATICCALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 0 32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_log1_emptyMemFiller.json",
    "content": "{\n    \"static_log1_emptyMem\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (STATICCALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (LOG1 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_log1_logMemStartTooHighFiller.json",
    "content": "{\n    \"static_log1_logMemStartTooHigh\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (STATICCALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_log1_logMemsizeTooHighFiller.json",
    "content": "{\n    \"static_log1_logMemsizeTooHigh\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (STATICCALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_log1_logMemsizeZeroFiller.json",
    "content": "{\n    \"static_log1_logMemsizeZero\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (STATICCALL 1000 <contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6> 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 1 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_log_CallerFiller.json",
    "content": "{\n    \"static_log_Caller\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (STATICCALL 50000 (CALLDATALOAD 0) 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xa000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE8 0 0xff) (LOG0 0 32 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x1000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE8 0 0xff) (LOG1 0 32 (CALLER) ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x2000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE8 0 0xff) (LOG2 0 32 0 (CALLER) ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x3000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE8 0 0xff) (LOG3 0 32 0 0 (CALLER) ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x4000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE8 0 0xff) (LOG4 0 32 0 0 0 (CALLER) )}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\":raw 0x000000000000000000000000<contract:0xa000000000000000000000000000000000000000>\",\n        \":raw 0x000000000000000000000000<contract:0x1000000000000000000000000000000000000000>\",\n\t\t\":raw 0x000000000000000000000000<contract:0x2000000000000000000000000000000000000000>\",\n\t\t\":raw 0x000000000000000000000000<contract:0x3000000000000000000000000000000000000000>\",\n\t\t\":raw 0x000000000000000000000000<contract:0x4000000000000000000000000000000000000000>\"\n            ],\n            \"gasLimit\" : [\n                \"210000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_makeMoneyFiller.json",
    "content": "{\n    \"static_makeMoney\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : { \"data\" : -1, \"gas\" : -1, \"value\" : -1 },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000000010\"\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"balance\" : \"97747000\"\n                    },\n                    \"<contract:0xaaaaaaaaace5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"balance\" : \"1000000000000000000\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0x601080600c6000396000f20060003554156009570060203560003555) (STATICCALL 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec <contract:0xaaaaaaaaace5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"100000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xaaaaaaaaace5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x600160015532600255\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"228500\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_refund_CallAFiller.json",
    "content": "{\n    \"static_refund_CallA\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000000010\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n            \t\t\t    \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa>\" : {\n                        \"storage\" : {\n            \t\t\t    \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (STATICCALL 5500 <contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa> 0 0 0 0 ) [[ 1 ]] 1}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x01\" : \"0x01\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"200000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 1 ]] 0 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x01\" : \"0x01\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"200000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_refund_CallToSuicideNoStorageFiller.json",
    "content": "{\n    \"static_refund_CallToSuicideNoStorage\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000000010\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (STATICCALL (CALLDATALOAD 0) <contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa> 0 0 0 0 ) [[ 2 ]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x01\" : \"0x01\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (SELFDESTRUCT <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x00000000000000000000000000000000000000000000000000000000000001f4\",\n                \":raw 0x0000000000000000000000000000000000000000000000000000000000010000\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticCall/static_refund_CallToSuicideTwiceFiller.json",
    "content": "{\n    \"static_refund_CallToSuicideTwice\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : 1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"2000000000000000010\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n        \t\t    \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa>\" : {\n\t\t            \t\"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x01\" : \"0x01\"\n                        },\n                        \"code\" : \"0x73<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>ff00\"\n\t\t            }\n                }\n            },\n\t        {\n                \"indexes\" : {\n                    \"data\" : 0\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"balance\" : \"1000000000000000010\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n\t\t            \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa>\" : {\n\t\t\t            \"nonce\" : \"0\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (STATICCALL (CALLDATALOAD 0) <contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa> 0 0 0 0 ) (CALL (CALLDATALOAD 0) <contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa> 0 0 0 0 0 )}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x01\" : \"0x01\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"100000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (SELFDESTRUCT <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x01\" : \"0x01\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x00000000000000000000000000000000000000000000000000000000000001f4\",\n                \":raw 0x0000000000000000000000000000000000000000000000000000000000010000\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stStaticFlagEnabled/CallWithNOTZeroValueToPrecompileFromCalledContractFiller.yml",
    "content": "---\nCallWithNOTZeroValueToPrecompileFromCalledContract:\n  _info:\n    comment: |\n      Contract B calls contract A.\n      Contract A staticcalls contract CALL-00X.\n      Contract CALL-00X calls precompiled contracts with non zero value.\n      It should interrupt for each precompiled contract.\n  env:\n    currentCoinbase: '0xcafe000000000000000000000000000000000001'\n    currentDifficulty: '0x20000'\n    currentGasLimit: '10000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data:\n        - !!int 0\n        - !!int 1\n        - !!int 2\n        - !!int 3\n        - !!int 4\n        - !!int 5\n        - !!int 6\n        - !!int 7\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      <contract:0xa000000000000000000000000000000000000000>:\n        balance: '1000'\n        storage:\n          '0x00': '0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed'\n          '0x02': '0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed'\n      <contract:target:0xb000000000000000000000000000000000000000>:\n        balance: '1100'\n        storage:\n          '0x00': '0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed'\n          '0x01': '0x01'\n          '0x02': '0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed'\n  pre:\n    <contract:target:0xb000000000000000000000000000000000000000>:\n      balance: '1000'\n      nonce: '0'\n      storage:\n        '0x00': '0xdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeaf'\n        '0x01': '0xdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeaf'\n        '0x02': '0xdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeaf'\n      code: |\n        {\n          [[ 0x00 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed\n          [ 0 ] (CALLDATALOAD 0)\n          [[ 0x01 ]] (CALL (GAS) <contract:0xa000000000000000000000000000000000000000> 0 0 32 0 0)\n          [[ 0x02 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed\n        }\n    <contract:0xa000000000000000000000000000000000000000>:\n      balance: '1000'\n      nonce: '0'\n      storage:\n        '0x00': '0xdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeaf'\n        '0x01': '0xdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeaf'\n        '0x02': '0xdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeaf'\n      code: |\n        {\n          [[ 0x00 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed\n          [[ 0x01 ]] (STATICCALL (GAS) (CALLDATALOAD 0) 0 0 0 0)\n          [[ 0x02 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed\n        }\n    <contract:0xca11001000000000000000000000000000000000>:\n      balance: '1000'\n      nonce: '0'\n      storage: {}\n      code: |\n        {\n          ;; Recovery of ECDSA signature\n          [ 0x00 ] 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c\n          [ 0x20 ] 28\n          [ 0x40 ] 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f\n          [ 0x60 ] 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549\n          (CALL (GAS) 1 2 0 128 0x2000 32)\n        }\n    <contract:0xca11002000000000000000000000000000000000>:\n      balance: '1000'\n      nonce: '0'\n      storage: {}\n      code: |\n        {\n          ;; Hash function SHA256\n          [ 0x00 ] 0x0000000ccccccccccccccccccccccccccccccccccccccccccccccccccc000000\n          (CALL (GAS) 2 2 0 32 0x2000 32)\n        }\n    <contract:0xca11003000000000000000000000000000000000>:\n      balance: '1000'\n      nonce: '0'\n      storage: {}\n      code: |\n        {\n          ;; Hash function RIPEMD160\n          [ 0x00 ] 0x0000000ccccccccccccccccccccccccccccccccccccccccccccccccccc000000\n          (CALL (GAS) 3 2 0 32 0x2000 32)\n        }\n    <contract:0xca11004000000000000000000000000000000000>:\n      balance: '1000'\n      nonce: '0'\n      storage: {}\n      code: |\n        {\n          ;; Identity\n          [ 0x00 ] 0x0000000ccccccccccccccccccccccccccccccccccccccccccccccccccc000000\n          (CALL (GAS) 4 2 0 32 0x2000 32)\n        }\n    <contract:0xca11005000000000000000000000000000000000>:\n      balance: '1000'\n      nonce: '0'\n      storage: {}\n      code: |\n        {\n          ;; Modular exponentiation\n          [ 0x00 ] 1\n          [ 0x20 ] 32\n          [ 0x40 ] 32\n          [ 0x60 ] 0x03fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc\n          [ 0x80 ] 0x2efffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc\n          [ 0xa0 ] 0x2f00000000000000000000000000000000000000000000000000000000000000\n          (CALL (GAS) 5 2 0 0xa1 0x2000 32)\n        }\n    <contract:0xca11006000000000000000000000000000000000>:\n      balance: '1000'\n      nonce: '0'\n      storage: {}\n      code: |\n        {\n          ;; Addition on elliptic curve alt_bn128\n          [ 0x00 ] 0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd2\n          [ 0x20 ] 0x16da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba\n          [ 0x40 ] 0x1de49a4b0233273bba8146af82042d004f2085ec982397db0d97da17204cc286\n          [ 0x60 ] 0x0217327ffc463919bef80cc166d09c6172639d8589799928761bcd9f22c903d4\n          (CALL (GAS) 6 2 0 128 0x2000 64)\n        }\n    <contract:0xca11007000000000000000000000000000000000>:\n      balance: '1000'\n      nonce: '0'\n      storage: {}\n      code: |\n        {\n          ;; Scalar multiplication on elliptic curve alt_bn128\n          [ 0x00 ] 0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd2\n          [ 0x20 ] 0x16da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000003\n          (CALL (GAS) 7 2 0 96 0x2000 64)\n        }\n    <contract:0xca11008000000000000000000000000000000000>:\n      balance: '1000'\n      nonce: '0'\n      storage: {}\n      code: |\n        {\n          ;; Checking a pairing equation on curve alt_bn128\n          ;; proof.A + vk.A + negateG1(proof.Ap) + P2\n          [ 0x0000 ] 0x1c76476f4def4bb94541d57ebba1193381ffa7aa76ada664dd31c16024c43f59\n          [ 0x0020 ] 0x3034dd2920f673e204fee2811c678745fc819b55d3e9d294e45c9b03a76aef41\n          [ 0x0040 ] 0x209dd15ebff5d46c4bd888e51a93cf99a7329636c63514396b4a452003a35bf7\n          [ 0x0060 ] 0x04bf11ca01483bfa8b34b43561848d28905960114c8ac04049af4b6315a41678\n          [ 0x0080 ] 0x2bb8324af6cfc93537a2ad1a445cfd0ca2a71acd7ac41fadbf933c2a51be344d\n          [ 0x00a0 ] 0x120a2a4cf30c1bf9845f20c6fe39e07ea2cce61f0c9bb048165fe5e4de877550\n          [ 0x00c0 ] 0x111e129f1cf1097710d41c4ac70fcdfa5ba2023c6ff1cbeac322de49d1b6df7c\n          [ 0x00e0 ] 0x2032c61a830e3c17286de9462bf242fca2883585b93870a73853face6a6bf411\n          [ 0x0100 ] 0x198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c2\n          [ 0x0120 ] 0x1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed\n          [ 0x0140 ] 0x090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b\n          [ 0x0160 ] 0x12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\n          (CALL (GAS) 8 2 0 0x0180 0x2000 32)\n        }\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: ''\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ':raw 0x000000000000000000000000<contract:0xca11001000000000000000000000000000000000>'\n    - ':raw 0x000000000000000000000000<contract:0xca11002000000000000000000000000000000000>'\n    - ':raw 0x000000000000000000000000<contract:0xca11003000000000000000000000000000000000>'\n    - ':raw 0x000000000000000000000000<contract:0xca11004000000000000000000000000000000000>'\n    - ':raw 0x000000000000000000000000<contract:0xca11005000000000000000000000000000000000>'\n    - ':raw 0x000000000000000000000000<contract:0xca11006000000000000000000000000000000000>'\n    - ':raw 0x000000000000000000000000<contract:0xca11007000000000000000000000000000000000>'\n    - ':raw 0x000000000000000000000000<contract:0xca11008000000000000000000000000000000000>'\n    gasLimit:\n    - '4000000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: '<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>'\n    to: '<contract:target:0xb000000000000000000000000000000000000000>'\n    value:\n    - '100'\n"
  },
  {
    "path": "tests/static/state_tests/stStaticFlagEnabled/CallWithNOTZeroValueToPrecompileFromContractInitializationFiller.yml",
    "content": "---\nCallWithNOTZeroValueToPrecompileFromContractInitialization:\n  _info:\n    comment: |\n      Contract A creates new contract.\n      New contract initialization code staticcalls contract CALL-00X.\n      Contract CALL-00X calls precompiled contracts with non zero value.\n      It should interrupt for each precompiled contract.\n  env:\n    currentCoinbase: '0xcafe000000000000000000000000000000000001'\n    currentDifficulty: '0x20000'\n    currentGasLimit: '10000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data:\n        - !!int 0\n        - !!int 1\n        - !!int 2\n        - !!int 3\n        - !!int 4\n        - !!int 5\n        - !!int 6\n        - !!int 7\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      a000000000000000000000000000000000000000:\n        balance: '1100'\n        storage:\n          '0x00': '0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed'\n          '0x01': '0xf7b0c3906cdfc0b8a638d274d3bcbbd6318e9ac1'\n          '0x02': '0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed'\n      f7b0c3906cdfc0b8a638d274d3bcbbd6318e9ac1:\n        storage:\n          '0x00': '0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed'\n          '0x02': '0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed'\n  pre:\n    a000000000000000000000000000000000000000:\n      balance: '1000'\n      nonce: '1'\n      storage:\n        '0x00': '0xdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeaf'\n        '0x01': '0xdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeaf'\n        '0x02': '0xdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeaf'\n      code: |\n        {\n          [[ 0x00 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed\n          (CALLDATACOPY 0 0 (CALLDATASIZE))\n          [[ 0x01 ]] (CREATE 0 0 (CALLDATASIZE))\n          [[ 0x02 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed\n        }\n    ca11001000000000000000000000000000000000:\n      balance: '1000'\n      nonce: '0'\n      storage: {}\n      code: |\n        {\n          ;; Recovery of ECDSA signature\n          [ 0x00 ] 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c\n          [ 0x20 ] 28\n          [ 0x40 ] 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f\n          [ 0x60 ] 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549\n          (CALL (GAS) 1 2 0 128 0x2000 32)\n        }\n    ca11002000000000000000000000000000000000:\n      balance: '1000'\n      nonce: '0'\n      storage: {}\n      code: |\n        {\n          ;; Hash function SHA256\n          [ 0x00 ] 0x0000000ccccccccccccccccccccccccccccccccccccccccccccccccccc000000\n          (CALL (GAS) 2 2 0 32 0x2000 32)\n        }\n    ca11003000000000000000000000000000000000:\n      balance: '1000'\n      nonce: '0'\n      storage: {}\n      code: |\n        {\n          ;; Hash function RIPEMD160\n          [ 0x00 ] 0x0000000ccccccccccccccccccccccccccccccccccccccccccccccccccc000000\n          (CALL (GAS) 3 2 0 32 0x2000 32)\n        }\n    ca11004000000000000000000000000000000000:\n      balance: '1000'\n      nonce: '0'\n      storage: {}\n      code: |\n        {\n          ;; Identity\n          [ 0x00 ] 0x0000000ccccccccccccccccccccccccccccccccccccccccccccccccccc000000\n          (CALL (GAS) 4 2 0 32 0x2000 32)\n        }\n    ca11005000000000000000000000000000000000:\n      balance: '1000'\n      nonce: '0'\n      storage: {}\n      code: |\n        {\n          ;; Modular exponentiation\n          [ 0x00 ] 1\n          [ 0x20 ] 32\n          [ 0x40 ] 32\n          [ 0x60 ] 0x03fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc\n          [ 0x80 ] 0x2efffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc\n          [ 0xa0 ] 0x2f00000000000000000000000000000000000000000000000000000000000000\n          (CALL (GAS) 5 2 0 0xa1 0x2000 32)\n        }\n    ca11006000000000000000000000000000000000:\n      balance: '1000'\n      nonce: '0'\n      storage: {}\n      code: |\n        {\n          ;; Addition on elliptic curve alt_bn128\n          [ 0x00 ] 0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd2\n          [ 0x20 ] 0x16da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba\n          [ 0x40 ] 0x1de49a4b0233273bba8146af82042d004f2085ec982397db0d97da17204cc286\n          [ 0x60 ] 0x0217327ffc463919bef80cc166d09c6172639d8589799928761bcd9f22c903d4\n          (CALL (GAS) 6 2 0 128 0x2000 64)\n        }\n    ca11007000000000000000000000000000000000:\n      balance: '1000'\n      nonce: '0'\n      storage: {}\n      code: |\n        {\n          ;; Scalar multiplication on elliptic curve alt_bn128\n          [ 0x00 ] 0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd2\n          [ 0x20 ] 0x16da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000003\n          (CALL (GAS) 7 2 0 96 0x2000 64)\n        }\n    ca11008000000000000000000000000000000000:\n      balance: '1000'\n      nonce: '0'\n      storage: {}\n      code: |\n        {\n          ;; Checking a pairing equation on curve alt_bn128\n          ;; proof.A + vk.A + negateG1(proof.Ap) + P2\n          [ 0x0000 ] 0x1c76476f4def4bb94541d57ebba1193381ffa7aa76ada664dd31c16024c43f59\n          [ 0x0020 ] 0x3034dd2920f673e204fee2811c678745fc819b55d3e9d294e45c9b03a76aef41\n          [ 0x0040 ] 0x209dd15ebff5d46c4bd888e51a93cf99a7329636c63514396b4a452003a35bf7\n          [ 0x0060 ] 0x04bf11ca01483bfa8b34b43561848d28905960114c8ac04049af4b6315a41678\n          [ 0x0080 ] 0x2bb8324af6cfc93537a2ad1a445cfd0ca2a71acd7ac41fadbf933c2a51be344d\n          [ 0x00a0 ] 0x120a2a4cf30c1bf9845f20c6fe39e07ea2cce61f0c9bb048165fe5e4de877550\n          [ 0x00c0 ] 0x111e129f1cf1097710d41c4ac70fcdfa5ba2023c6ff1cbeac322de49d1b6df7c\n          [ 0x00e0 ] 0x2032c61a830e3c17286de9462bf242fca2883585b93870a73853face6a6bf411\n          [ 0x0100 ] 0x198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c2\n          [ 0x0120 ] 0x1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed\n          [ 0x0140 ] 0x090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b\n          [ 0x0160 ] 0x12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\n          (CALL (GAS) 8 2 0 0x0180 0x2000 32)\n        }\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '1000000000000000000'\n      code: ''\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - |\n      { [[ 0x00 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed\n        [[ 0x01 ]] (STATICCALL (GAS) 0xca11001000000000000000000000000000000000 0 0 0 0)\n        [[ 0x02 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed }\n    - |\n      { [[ 0x00 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed\n        [[ 0x01 ]] (STATICCALL (GAS) 0xca11002000000000000000000000000000000000 0 0 0 0)\n        [[ 0x02 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed }\n    - |\n      { [[ 0x00 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed\n        [[ 0x01 ]] (STATICCALL (GAS) 0xca11003000000000000000000000000000000000 0 0 0 0)\n        [[ 0x02 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed }\n    - |\n      { [[ 0x00 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed\n        [[ 0x01 ]] (STATICCALL (GAS) 0xca11004000000000000000000000000000000000 0 0 0 0)\n        [[ 0x02 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed }\n    - |\n      { [[ 0x00 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed\n        [[ 0x01 ]] (STATICCALL (GAS) 0xca11005000000000000000000000000000000000 0 0 0 0)\n        [[ 0x02 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed }\n    - |\n      { [[ 0x00 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed\n        [[ 0x01 ]] (STATICCALL (GAS) 0xca11006000000000000000000000000000000000 0 0 0 0)\n        [[ 0x02 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed }\n    - |\n      { [[ 0x00 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed\n        [[ 0x01 ]] (STATICCALL (GAS) 0xca11007000000000000000000000000000000000 0 0 0 0)\n        [[ 0x02 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed }\n    - |\n      { [[ 0x00 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed\n        [[ 0x01 ]] (STATICCALL (GAS) 0xca11008000000000000000000000000000000000 0 0 0 0)\n        [[ 0x02 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed }\n    gasLimit:\n    - '4000000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: '0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8'\n    to: 'a000000000000000000000000000000000000000'\n    value:\n    - '100'\n"
  },
  {
    "path": "tests/static/state_tests/stStaticFlagEnabled/CallWithNOTZeroValueToPrecompileFromTransactionFiller.yml",
    "content": "---\nCallWithNOTZeroValueToPrecompileFromTransaction:\n  _info:\n    comment: |\n      Contract A staticcalls contract CALL-00X.\n      Contract CALL-00X calls precompiled contracts with non zero value.\n      It should interrupt for each precompiled contract.\n  env:\n    currentCoinbase: '0xcafe000000000000000000000000000000000001'\n    currentDifficulty: '0x20000'\n    currentGasLimit: '10000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data:\n        - !!int 0\n        - !!int 1\n        - !!int 2\n        - !!int 3\n        - !!int 4\n        - !!int 5\n        - !!int 6\n        - !!int 7\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      <contract:target:0xa000000000000000000000000000000000000000>:\n        balance: '1100'\n        storage:\n          '0x00': '0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed'\n          '0x02': '0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed'\n  pre:\n    <contract:target:0xa000000000000000000000000000000000000000>:\n      balance: '1000'\n      nonce: '0'\n      storage:\n        '0x00': '0xdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeaf'\n        '0x01': '0xdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeaf'\n        '0x02': '0xdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeaf'\n      code: |\n        {\n          [[ 0x00 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed\n          [[ 0x01 ]] (STATICCALL (GAS) (CALLDATALOAD 0) 0 0 0 0)\n          [[ 0x02 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed\n        }\n    <contract:0xca11001000000000000000000000000000000000>:\n      balance: '1000'\n      nonce: '0'\n      storage: {}\n      code: |\n        {\n          ;; Recovery of ECDSA signature\n          [ 0x00 ] 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c\n          [ 0x20 ] 28\n          [ 0x40 ] 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f\n          [ 0x60 ] 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549\n          (CALL (GAS) 1 2 0 128 0x2000 32)\n        }\n    <contract:0xca11002000000000000000000000000000000000>:\n      balance: '1000'\n      nonce: '0'\n      storage: {}\n      code: |\n        {\n          ;; Hash function SHA256\n          [ 0x00 ] 0x0000000ccccccccccccccccccccccccccccccccccccccccccccccccccc000000\n          (CALL (GAS) 2 2 0 32 0x2000 32)\n        }\n    <contract:0xca11003000000000000000000000000000000000>:\n      balance: '1000'\n      nonce: '0'\n      storage: {}\n      code: |\n        {\n          ;; Hash function RIPEMD160\n          [ 0x00 ] 0x0000000ccccccccccccccccccccccccccccccccccccccccccccccccccc000000\n          (CALL (GAS) 3 2 0 32 0x2000 32)\n        }\n    <contract:0xca11004000000000000000000000000000000000>:\n      balance: '1000'\n      nonce: '0'\n      storage: {}\n      code: |\n        {\n          ;; Identity\n          [ 0x00 ] 0x0000000ccccccccccccccccccccccccccccccccccccccccccccccccccc000000\n          (CALL (GAS) 4 2 0 32 0x2000 32)\n        }\n    <contract:0xca11005000000000000000000000000000000000>:\n      balance: '1000'\n      nonce: '0'\n      storage: {}\n      code: |\n        {\n          ;; Modular exponentiation\n          [ 0x00 ] 1\n          [ 0x20 ] 32\n          [ 0x40 ] 32\n          [ 0x60 ] 0x03fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc\n          [ 0x80 ] 0x2efffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc\n          [ 0xa0 ] 0x2f00000000000000000000000000000000000000000000000000000000000000\n          (CALL (GAS) 5 2 0 0xa1 0x2000 32)\n        }\n    <contract:0xca11006000000000000000000000000000000000>:\n      balance: '1000'\n      nonce: '0'\n      storage: {}\n      code: |\n        {\n          ;; Addition on elliptic curve alt_bn128\n          [ 0x00 ] 0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd2\n          [ 0x20 ] 0x16da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba\n          [ 0x40 ] 0x1de49a4b0233273bba8146af82042d004f2085ec982397db0d97da17204cc286\n          [ 0x60 ] 0x0217327ffc463919bef80cc166d09c6172639d8589799928761bcd9f22c903d4\n          (CALL (GAS) 6 2 0 128 0x2000 64)\n        }\n    <contract:0xca11007000000000000000000000000000000000>:\n      balance: '1000'\n      nonce: '0'\n      storage: {}\n      code: |\n        {\n          ;; Scalar multiplication on elliptic curve alt_bn128\n          [ 0x00 ] 0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd2\n          [ 0x20 ] 0x16da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000003\n          (CALL (GAS) 7 2 0 96 0x2000 64)\n        }\n    <contract:0xca11008000000000000000000000000000000000>:\n      balance: '1000'\n      nonce: '0'\n      storage: {}\n      code: |\n        {\n          ;; Checking a pairing equation on curve alt_bn128\n          ;; proof.A + vk.A + negateG1(proof.Ap) + P2\n          [ 0x0000 ] 0x1c76476f4def4bb94541d57ebba1193381ffa7aa76ada664dd31c16024c43f59\n          [ 0x0020 ] 0x3034dd2920f673e204fee2811c678745fc819b55d3e9d294e45c9b03a76aef41\n          [ 0x0040 ] 0x209dd15ebff5d46c4bd888e51a93cf99a7329636c63514396b4a452003a35bf7\n          [ 0x0060 ] 0x04bf11ca01483bfa8b34b43561848d28905960114c8ac04049af4b6315a41678\n          [ 0x0080 ] 0x2bb8324af6cfc93537a2ad1a445cfd0ca2a71acd7ac41fadbf933c2a51be344d\n          [ 0x00a0 ] 0x120a2a4cf30c1bf9845f20c6fe39e07ea2cce61f0c9bb048165fe5e4de877550\n          [ 0x00c0 ] 0x111e129f1cf1097710d41c4ac70fcdfa5ba2023c6ff1cbeac322de49d1b6df7c\n          [ 0x00e0 ] 0x2032c61a830e3c17286de9462bf242fca2883585b93870a73853face6a6bf411\n          [ 0x0100 ] 0x198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c2\n          [ 0x0120 ] 0x1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed\n          [ 0x0140 ] 0x090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b\n          [ 0x0160 ] 0x12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\n          (CALL (GAS) 8 2 0 0x0180 0x2000 32)\n        }\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: ''\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ':raw 0x000000000000000000000000<contract:0xca11001000000000000000000000000000000000>'\n    - ':raw 0x000000000000000000000000<contract:0xca11002000000000000000000000000000000000>'\n    - ':raw 0x000000000000000000000000<contract:0xca11003000000000000000000000000000000000>'\n    - ':raw 0x000000000000000000000000<contract:0xca11004000000000000000000000000000000000>'\n    - ':raw 0x000000000000000000000000<contract:0xca11005000000000000000000000000000000000>'\n    - ':raw 0x000000000000000000000000<contract:0xca11006000000000000000000000000000000000>'\n    - ':raw 0x000000000000000000000000<contract:0xca11007000000000000000000000000000000000>'\n    - ':raw 0x000000000000000000000000<contract:0xca11008000000000000000000000000000000000>'\n    gasLimit:\n    - '4000000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: '<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>'\n    to: '<contract:target:0xa000000000000000000000000000000000000000>'\n    value:\n    - '100'\n"
  },
  {
    "path": "tests/static/state_tests/stStaticFlagEnabled/CallWithZeroValueToPrecompileFromCalledContractFiller.yml",
    "content": "---\nCallWithZeroValueToPrecompileFromCalledContract:\n  _info:\n    comment: |\n      Contract C calls contract B.\n      Contract B staticcalls contract A.\n      Contract A calls precompiled contracts with 0 value.\n      It should execute successfully for each precompiled contract.\n  env:\n    currentCoinbase: '0xcafe000000000000000000000000000000000001'\n    currentDifficulty: '0x20000'\n    currentGasLimit: '10000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      a000000000000000000000000000000000000000:\n        balance: '1000'\n        storage: {}\n      c000000000000000000000000000000000000000:\n        balance: '1100'\n        storage:\n          '0x00': '0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed'\n          '0x01': '0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed'\n      b000000000000000000000000000000000000000:\n        balance: '1000'\n        storage:\n          '0x00': '0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed'\n          '0x01': '0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed'\n          # precompiled contract #1 - Recovery of ECDSA signature\n          '0x0a00': '0x01'\n          '0x0a01': '0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b'\n          '0x0a02': '0x01'\n          # precompiled contract #2 - Hash function SHA256\n          '0x0a03': '0x01'\n          '0x0a04': '0x0ccccccccccccccccccccccccccccccccccccccccccccccccccc000000'\n          '0x0a05': '0x73f5062fb68ed2a1ec82ff8c73f9251bb9cf53a623bc93527e16bc5ae29dad74'\n          # precompiled contract #3 - Hash function RIPEMD160\n          '0x0a06': '0x01'\n          '0x0a07': '0x0ccccccccccccccccccccccccccccccccccccccccccccccccccc000000'\n          '0x0a08': '0x14ef238cfa4075e9ede92f18b1566c1dd0b99aaa'\n          # precompiled contract #4 - Identity\n          '0x0a09': '0x01'\n          '0x0a10': '0x0ccccccccccccccccccccccccccccccccccccccccccccccccccc000000'\n          # precompiled contract #5 - Modular exponentiation\n          '0x0a11': '0x01'\n          '0x0a12': '0x01'\n          # precompiled contract #6 - Addition on elliptic curve alt_bn128\n          '0x0a13': '0x01'\n          '0x0a14': '0x1f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c49'\n          '0x0a15': '0x018683193ae021a2f8920fed186cde5d9b1365116865281ccf884c1f28b1df8f'\n          # precompiled contract #7 - Scalar multiplication on elliptic curve alt_bn128\n          '0x0a16': '0x01'\n          '0x0a17': '0x1f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c49'\n          '0x0a18': '0x018683193ae021a2f8920fed186cde5d9b1365116865281ccf884c1f28b1df8f'\n          # precompiled contract #8 - Checking a pairing equation on curve alt_bn128\n          '0x0a19': '0x01'\n          '0x0a20': '0x01'\n  pre:\n    c000000000000000000000000000000000000000:\n      balance: '1000'\n      nonce: '0'\n      storage:\n        '0x00': '0xdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeaf'\n        '0x01': '0xdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeaf'\n      code: |\n        {\n          [[ 0x00 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed\n          (CALL (GAS) 0xb000000000000000000000000000000000000000 0 0 0 0 0)\n          [[ 0x01 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed\n        }\n    b000000000000000000000000000000000000000:\n      balance: '1000'\n      nonce: '0'\n      storage:\n        '0x00': '0xdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeaf'\n        '0x01': '0xdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeaf'\n      code: |\n        {\n          [[ 0x00 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed\n          (STATICCALL (GAS) 0xa000000000000000000000000000000000000000 0 0 0x0a0000 0x012020)\n          [[ 0x01 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed\n          ;; save results to store\n          [[ 0x0a00 ]] @0x0a0000  [[ 0x0a11 ]] @0x0a1100\n          [[ 0x0a01 ]] @0x0a0100  [[ 0x0a12 ]] @0x0a1200\n          [[ 0x0a02 ]] @0x0a0200  [[ 0x0a13 ]] @0x0a1300\n          [[ 0x0a03 ]] @0x0a0300  [[ 0x0a14 ]] @0x0a1400\n          [[ 0x0a04 ]] @0x0a0400  [[ 0x0a15 ]] @0x0a1500\n          [[ 0x0a05 ]] @0x0a0500  [[ 0x0a16 ]] @0x0a1600\n          [[ 0x0a06 ]] @0x0a0600  [[ 0x0a17 ]] @0x0a1700\n          [[ 0x0a07 ]] @0x0a0700  [[ 0x0a18 ]] @0x0a1800\n          [[ 0x0a08 ]] @0x0a0800  [[ 0x0a19 ]] @0x0a1900\n          [[ 0x0a09 ]] @0x0a0900  [[ 0x0a20 ]] @0x0a2000\n          [[ 0x0a10 ]] @0x0a1000\n        }\n    a000000000000000000000000000000000000000:\n      balance: '1000'\n      nonce: '0'\n      storage: {}\n      code: |\n        {\n          ;; Recovery of ECDSA signature\n          [ 0x00 ] 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c\n          [ 0x20 ] 28\n          [ 0x40 ] 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f\n          [ 0x60 ] 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549\n          ;; zero value\n          [ 0x0a0000 ] (CALL (GAS) 1 0 0 128 0x2000 32)\n          [ 0x0a0100 ] (MOD @0x2000 (EXP 2 160))\n          [ 0x0a0200 ] (EQ (ORIGIN) @0x0a0100)\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x20 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x60 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Hash function SHA256\n          [ 0x00 ] 0x0000000ccccccccccccccccccccccccccccccccccccccccccccccccccc000000\n          ;; zero value\n          [ 0x0a0300 ] (CALL (GAS) 2 0 0 32 0x2000 32)\n          [ 0x0a0400 ] @0\n          [ 0x0a0500 ] @0x2000\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Hash function RIPEMD160\n          [ 0x00 ] 0x0000000ccccccccccccccccccccccccccccccccccccccccccccccccccc000000\n          ;; zero value\n          [ 0x0a0600 ] (CALL (GAS) 3 0 0 32 0x2000 32)\n          [ 0x0a0700 ] @0\n          [ 0x0a0800 ] @0x2000\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Identity\n          [ 0x00 ] 0x0000000ccccccccccccccccccccccccccccccccccccccccccccccccccc000000\n          ;; zero value\n          [ 0x0a0900 ] (CALL (GAS) 4 0 0 32 0x2000 32)\n          [ 0x0a1000 ] @0x2000\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Modular exponentiation\n          [ 0x00 ] 1\n          [ 0x20 ] 32\n          [ 0x40 ] 32\n          [ 0x60 ] 0x03fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc\n          [ 0x80 ] 0x2efffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc\n          [ 0xa0 ] 0x2f00000000000000000000000000000000000000000000000000000000000000\n          ;; zero value\n          [ 0x0a1100 ] (CALL (GAS) 5 0 0 0xa1 0x2000 32)\n          [ 0x0a1200 ] @0x2000\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x20 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x60 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x80 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0xa0 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Addition on elliptic curve alt_bn128\n          [ 0x00 ] 0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd2\n          [ 0x20 ] 0x16da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba\n          [ 0x40 ] 0x1de49a4b0233273bba8146af82042d004f2085ec982397db0d97da17204cc286\n          [ 0x60 ] 0x0217327ffc463919bef80cc166d09c6172639d8589799928761bcd9f22c903d4\n          ;; zero value\n          [ 0x0a1300 ] (CALL (GAS) 6 0 0 128 0x2000 64)\n          [ 0x0a1400 ] @0x2000\n          [ 0x0a1500 ] @0x2020\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x20 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x60 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2020 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Scalar multiplication on elliptic curve alt_bn128\n          [ 0x00 ] 0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd2\n          [ 0x20 ] 0x16da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000003\n          ;; zero value\n          [ 0x0a1600 ] (CALL (GAS) 7 0 0 96 0x2000 64)\n          [ 0x0a1700 ] @0x2000\n          [ 0x0a1800 ] @0x2020\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x20 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2020 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Checking a pairing equation on curve alt_bn128\n          ;; proof.A + vk.A + negateG1(proof.Ap) + P2\n          [ 0x0000 ] 0x1c76476f4def4bb94541d57ebba1193381ffa7aa76ada664dd31c16024c43f59\n          [ 0x0020 ] 0x3034dd2920f673e204fee2811c678745fc819b55d3e9d294e45c9b03a76aef41\n          [ 0x0040 ] 0x209dd15ebff5d46c4bd888e51a93cf99a7329636c63514396b4a452003a35bf7\n          [ 0x0060 ] 0x04bf11ca01483bfa8b34b43561848d28905960114c8ac04049af4b6315a41678\n          [ 0x0080 ] 0x2bb8324af6cfc93537a2ad1a445cfd0ca2a71acd7ac41fadbf933c2a51be344d\n          [ 0x00a0 ] 0x120a2a4cf30c1bf9845f20c6fe39e07ea2cce61f0c9bb048165fe5e4de877550\n          [ 0x00c0 ] 0x111e129f1cf1097710d41c4ac70fcdfa5ba2023c6ff1cbeac322de49d1b6df7c\n          [ 0x00e0 ] 0x2032c61a830e3c17286de9462bf242fca2883585b93870a73853face6a6bf411\n          [ 0x0100 ] 0x198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c2\n          [ 0x0120 ] 0x1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed\n          [ 0x0140 ] 0x090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b\n          [ 0x0160 ] 0x12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\n          ;; zero value\n          [ 0x0a1900 ] (CALL (GAS) 8 0 0 0x0180 0x2000 32)\n          [ 0x0a2000 ] @0x2000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; return all computed values to caller for checking\n          (RETURN 0x0a0000 0x012020)\n        }\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '1000000000000000000'\n      code: ''\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '4000000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: '0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8'\n    to: 'c000000000000000000000000000000000000000'\n    value:\n    - '100'\n"
  },
  {
    "path": "tests/static/state_tests/stStaticFlagEnabled/CallWithZeroValueToPrecompileFromContractInitializationFiller.yml",
    "content": "---\nCallWithZeroValueToPrecompileFromContractInitialization:\n  _info:\n    comment: |\n      Contract B creates new contract.\n      New contract initialization code staticcalls contract A.\n      Contract A calls precompiled contracts with 0 value.\n      It should execute successfully for each precompiled contract.\n  env:\n    currentCoinbase: '0xcafe000000000000000000000000000000000001'\n    currentDifficulty: '0x20000'\n    currentGasLimit: '10000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data:\n      - !!int 0\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      b000000000000000000000000000000000000000:\n        balance: '1100'\n        storage:\n          '0x00': '0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed'\n          '0x01': '0xfd7776b1a634b0dc19301b174ccf30d4d24070a8'\n          '0x02': '0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed'\n      fd7776b1a634b0dc19301b174ccf30d4d24070a8:\n        storage:\n          '0x00': '0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed'\n          '0x01': '0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed'\n          # precompiled contract #1 - Recovery of ECDSA signature\n          '0x0a00': '0x01'\n          '0x0a01': '0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b'\n          '0x0a02': '0x01'\n          # precompiled contract #2 - Hash function SHA256\n          '0x0a03': '0x01'\n          '0x0a04': '0x0ccccccccccccccccccccccccccccccccccccccccccccccccccc000000'\n          '0x0a05': '0x73f5062fb68ed2a1ec82ff8c73f9251bb9cf53a623bc93527e16bc5ae29dad74'\n          # precompiled contract #3 - Hash function RIPEMD160\n          '0x0a06': '0x01'\n          '0x0a07': '0x0ccccccccccccccccccccccccccccccccccccccccccccccccccc000000'\n          '0x0a08': '0x14ef238cfa4075e9ede92f18b1566c1dd0b99aaa'\n          # precompiled contract #4 - Identity\n          '0x0a09': '0x01'\n          '0x0a10': '0x0ccccccccccccccccccccccccccccccccccccccccccccccccccc000000'\n          # precompiled contract #5 - Modular exponentiation\n          '0x0a11': '0x01'\n          '0x0a12': '0x01'\n          # precompiled contract #6 - Addition on elliptic curve alt_bn128\n          '0x0a13': '0x01'\n          '0x0a14': '0x1f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c49'\n          '0x0a15': '0x018683193ae021a2f8920fed186cde5d9b1365116865281ccf884c1f28b1df8f'\n          # precompiled contract #7 - Scalar multiplication on elliptic curve alt_bn128\n          '0x0a16': '0x01'\n          '0x0a17': '0x1f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c49'\n          '0x0a18': '0x018683193ae021a2f8920fed186cde5d9b1365116865281ccf884c1f28b1df8f'\n          # precompiled contract #8 - Checking a pairing equation on curve alt_bn128\n          '0x0a19': '0x01'\n          '0x0a20': '0x01'\n  pre:\n    b000000000000000000000000000000000000000:\n      balance: '1000'\n      nonce: '0'\n      storage:\n        '0x00': '0xdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeaf'\n        '0x01': '0xdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeaf'\n      code: |\n        {\n          [[ 0x00 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed\n          (CALLDATACOPY 0 0 (CALLDATASIZE))\n          [[ 0x01 ]] (CREATE2 0 0 (CALLDATASIZE) 0x5a175a175a17)\n          [[ 0x02 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed\n        }\n    a000000000000000000000000000000000000000:\n      balance: '1000'\n      nonce: '0'\n      storage: {}\n      code: |\n        {\n          ;; Recovery of ECDSA signature\n          [ 0x00 ] 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c\n          [ 0x20 ] 28\n          [ 0x40 ] 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f\n          [ 0x60 ] 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549\n          ;; zero value\n          [ 0x0a0000 ] (CALL (GAS) 1 0 0 128 0x2000 32)\n          [ 0x0a0100 ] (MOD @0x2000 (EXP 2 160))\n          [ 0x0a0200 ] (EQ (ORIGIN) @0x0a0100)\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x20 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x60 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Hash function SHA256\n          [ 0x00 ] 0x0000000ccccccccccccccccccccccccccccccccccccccccccccccccccc000000\n          ;; zero value\n          [ 0x0a0300 ] (CALL (GAS) 2 0 0 32 0x2000 32)\n          [ 0x0a0400 ] @0\n          [ 0x0a0500 ] @0x2000\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Hash function RIPEMD160\n          [ 0x00 ] 0x0000000ccccccccccccccccccccccccccccccccccccccccccccccccccc000000\n          ;; zero value\n          [ 0x0a0600 ] (CALL (GAS) 3 0 0 32 0x2000 32)\n          [ 0x0a0700 ] @0\n          [ 0x0a0800 ] @0x2000\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Identity\n          [ 0x00 ] 0x0000000ccccccccccccccccccccccccccccccccccccccccccccccccccc000000\n          ;; zero value\n          [ 0x0a0900 ] (CALL (GAS) 4 0 0 32 0x2000 32)\n          [ 0x0a1000 ] @0x2000\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Modular exponentiation\n          [ 0x00 ] 1\n          [ 0x20 ] 32\n          [ 0x40 ] 32\n          [ 0x60 ] 0x03fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc\n          [ 0x80 ] 0x2efffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc\n          [ 0xa0 ] 0x2f00000000000000000000000000000000000000000000000000000000000000\n          ;; zero value\n          [ 0x0a1100 ] (CALL (GAS) 5 0 0 0xa1 0x2000 32)\n          [ 0x0a1200 ] @0x2000\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x20 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x60 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x80 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0xa0 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Addition on elliptic curve alt_bn128\n          [ 0x00 ] 0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd2\n          [ 0x20 ] 0x16da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba\n          [ 0x40 ] 0x1de49a4b0233273bba8146af82042d004f2085ec982397db0d97da17204cc286\n          [ 0x60 ] 0x0217327ffc463919bef80cc166d09c6172639d8589799928761bcd9f22c903d4\n          ;; zero value\n          [ 0x0a1300 ] (CALL (GAS) 6 0 0 128 0x2000 64)\n          [ 0x0a1400 ] @0x2000\n          [ 0x0a1500 ] @0x2020\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x20 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x60 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2020 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Scalar multiplication on elliptic curve alt_bn128\n          [ 0x00 ] 0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd2\n          [ 0x20 ] 0x16da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000003\n          ;; zero value\n          [ 0x0a1600 ] (CALL (GAS) 7 0 0 96 0x2000 64)\n          [ 0x0a1700 ] @0x2000\n          [ 0x0a1800 ] @0x2020\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x20 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2020 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Checking a pairing equation on curve alt_bn128\n          ;; proof.A + vk.A + negateG1(proof.Ap) + P2\n          [ 0x0000 ] 0x1c76476f4def4bb94541d57ebba1193381ffa7aa76ada664dd31c16024c43f59\n          [ 0x0020 ] 0x3034dd2920f673e204fee2811c678745fc819b55d3e9d294e45c9b03a76aef41\n          [ 0x0040 ] 0x209dd15ebff5d46c4bd888e51a93cf99a7329636c63514396b4a452003a35bf7\n          [ 0x0060 ] 0x04bf11ca01483bfa8b34b43561848d28905960114c8ac04049af4b6315a41678\n          [ 0x0080 ] 0x2bb8324af6cfc93537a2ad1a445cfd0ca2a71acd7ac41fadbf933c2a51be344d\n          [ 0x00a0 ] 0x120a2a4cf30c1bf9845f20c6fe39e07ea2cce61f0c9bb048165fe5e4de877550\n          [ 0x00c0 ] 0x111e129f1cf1097710d41c4ac70fcdfa5ba2023c6ff1cbeac322de49d1b6df7c\n          [ 0x00e0 ] 0x2032c61a830e3c17286de9462bf242fca2883585b93870a73853face6a6bf411\n          [ 0x0100 ] 0x198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c2\n          [ 0x0120 ] 0x1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed\n          [ 0x0140 ] 0x090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b\n          [ 0x0160 ] 0x12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\n          ;; zero value\n          [ 0x0a1900 ] (CALL (GAS) 8 0 0 0x0180 0x2000 32)\n          [ 0x0a2000 ] @0x2000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; return all computed values to caller for checking\n          (RETURN 0x0a0000 0x012020)\n        }\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '1000000000000000000'\n      code: ''\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - |\n      {\n        [[ 0x00 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed\n        (STATICCALL (GAS) 0xa000000000000000000000000000000000000000 0 0 0x0a0000 0x012020)\n        [[ 0x01 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed\n        ;; save results to store\n        [[ 0x0a00 ]] @0x0a0000  [[ 0x0a11 ]] @0x0a1100\n        [[ 0x0a01 ]] @0x0a0100  [[ 0x0a12 ]] @0x0a1200\n        [[ 0x0a02 ]] @0x0a0200  [[ 0x0a13 ]] @0x0a1300\n        [[ 0x0a03 ]] @0x0a0300  [[ 0x0a14 ]] @0x0a1400\n        [[ 0x0a04 ]] @0x0a0400  [[ 0x0a15 ]] @0x0a1500\n        [[ 0x0a05 ]] @0x0a0500  [[ 0x0a16 ]] @0x0a1600\n        [[ 0x0a06 ]] @0x0a0600  [[ 0x0a17 ]] @0x0a1700\n        [[ 0x0a07 ]] @0x0a0700  [[ 0x0a18 ]] @0x0a1800\n        [[ 0x0a08 ]] @0x0a0800  [[ 0x0a19 ]] @0x0a1900\n        [[ 0x0a09 ]] @0x0a0900  [[ 0x0a20 ]] @0x0a2000\n        [[ 0x0a10 ]] @0x0a1000\n      }\n    gasLimit:\n    - '4000000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: '0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8'\n    to: 'b000000000000000000000000000000000000000'\n    value:\n    - '100'\n"
  },
  {
    "path": "tests/static/state_tests/stStaticFlagEnabled/CallWithZeroValueToPrecompileFromTransactionFiller.yml",
    "content": "---\nCallWithZeroValueToPrecompileFromTransaction:\n  _info:\n    comment: |\n      Contract B staticcalls contract A.\n      Contract A calls precompiled contracts with 0 value.\n      It should execute successfully for each precompiled contract.\n  env:\n    currentCoinbase: '0xcafe000000000000000000000000000000000001'\n    currentDifficulty: '0x20000'\n    currentGasLimit: '10000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      a000000000000000000000000000000000000000:\n        balance: '1000'\n        storage: {}\n      b000000000000000000000000000000000000000:\n        balance: '1100'\n        storage:\n          '0x00': '0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed'\n          '0x01': '0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed'\n          # precompiled contract #1 - Recovery of ECDSA signature\n          '0x0a00': '0x01'\n          '0x0a01': '0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b'\n          '0x0a02': '0x01'\n          # precompiled contract #2 - Hash function SHA256\n          '0x0a03': '0x01'\n          '0x0a04': '0x0ccccccccccccccccccccccccccccccccccccccccccccccccccc000000'\n          '0x0a05': '0x73f5062fb68ed2a1ec82ff8c73f9251bb9cf53a623bc93527e16bc5ae29dad74'\n          # precompiled contract #3 - Hash function RIPEMD160\n          '0x0a06': '0x01'\n          '0x0a07': '0x0ccccccccccccccccccccccccccccccccccccccccccccccccccc000000'\n          '0x0a08': '0x14ef238cfa4075e9ede92f18b1566c1dd0b99aaa'\n          # precompiled contract #4 - Identity\n          '0x0a09': '0x01'\n          '0x0a10': '0x0ccccccccccccccccccccccccccccccccccccccccccccccccccc000000'\n          # precompiled contract #5 - Modular exponentiation\n          '0x0a11': '0x01'\n          '0x0a12': '0x01'\n          # precompiled contract #6 - Addition on elliptic curve alt_bn128\n          '0x0a13': '0x01'\n          '0x0a14': '0x1f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c49'\n          '0x0a15': '0x018683193ae021a2f8920fed186cde5d9b1365116865281ccf884c1f28b1df8f'\n          # precompiled contract #7 - Scalar multiplication on elliptic curve alt_bn128\n          '0x0a16': '0x01'\n          '0x0a17': '0x1f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c49'\n          '0x0a18': '0x018683193ae021a2f8920fed186cde5d9b1365116865281ccf884c1f28b1df8f'\n          # precompiled contract #8 - Checking a pairing equation on curve alt_bn128\n          '0x0a19': '0x01'\n          '0x0a20': '0x01'\n  pre:\n    b000000000000000000000000000000000000000:\n      balance: '1000'\n      nonce: '0'\n      storage:\n        '0x00': '0xdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeaf'\n        '0x01': '0xdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeaf'\n      code: |\n        {\n          [[ 0x00 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed\n          (STATICCALL (GAS) 0xa000000000000000000000000000000000000000 0 0 0x0a0000 0x012020)\n          [[ 0x01 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed\n          ;; save results to store\n          [[ 0x0a00 ]] @0x0a0000  [[ 0x0a11 ]] @0x0a1100\n          [[ 0x0a01 ]] @0x0a0100  [[ 0x0a12 ]] @0x0a1200\n          [[ 0x0a02 ]] @0x0a0200  [[ 0x0a13 ]] @0x0a1300\n          [[ 0x0a03 ]] @0x0a0300  [[ 0x0a14 ]] @0x0a1400\n          [[ 0x0a04 ]] @0x0a0400  [[ 0x0a15 ]] @0x0a1500\n          [[ 0x0a05 ]] @0x0a0500  [[ 0x0a16 ]] @0x0a1600\n          [[ 0x0a06 ]] @0x0a0600  [[ 0x0a17 ]] @0x0a1700\n          [[ 0x0a07 ]] @0x0a0700  [[ 0x0a18 ]] @0x0a1800\n          [[ 0x0a08 ]] @0x0a0800  [[ 0x0a19 ]] @0x0a1900\n          [[ 0x0a09 ]] @0x0a0900  [[ 0x0a20 ]] @0x0a2000\n          [[ 0x0a10 ]] @0x0a1000\n        }\n    a000000000000000000000000000000000000000:\n      balance: '1000'\n      nonce: '0'\n      storage: {}\n      code: |\n        {\n          ;; Recovery of ECDSA signature\n          [ 0x00 ] 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c\n          [ 0x20 ] 28\n          [ 0x40 ] 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f\n          [ 0x60 ] 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549\n          ;; zero value\n          [ 0x0a0000 ] (CALL (GAS) 1 0 0 128 0x2000 32)\n          [ 0x0a0100 ] (MOD @0x2000 (EXP 2 160))\n          [ 0x0a0200 ] (EQ (ORIGIN) @0x0a0100)\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x20 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x60 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Hash function SHA256\n          [ 0x00 ] 0x0000000ccccccccccccccccccccccccccccccccccccccccccccccccccc000000\n          ;; zero value\n          [ 0x0a0300 ] (CALL (GAS) 2 0 0 32 0x2000 32)\n          [ 0x0a0400 ] @0\n          [ 0x0a0500 ] @0x2000\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Hash function RIPEMD160\n          [ 0x00 ] 0x0000000ccccccccccccccccccccccccccccccccccccccccccccccccccc000000\n          ;; zero value\n          [ 0x0a0600 ] (CALL (GAS) 3 0 0 32 0x2000 32)\n          [ 0x0a0700 ] @0\n          [ 0x0a0800 ] @0x2000\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Identity\n          [ 0x00 ] 0x0000000ccccccccccccccccccccccccccccccccccccccccccccccccccc000000\n          ;; zero value\n          [ 0x0a0900 ] (CALL (GAS) 4 0 0 32 0x2000 32)\n          [ 0x0a1000 ] @0x2000\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Modular exponentiation\n          [ 0x00 ] 1\n          [ 0x20 ] 32\n          [ 0x40 ] 32\n          [ 0x60 ] 0x03fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc\n          [ 0x80 ] 0x2efffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc\n          [ 0xa0 ] 0x2f00000000000000000000000000000000000000000000000000000000000000\n          ;; zero value\n          [ 0x0a1100 ] (CALL (GAS) 5 0 0 0xa1 0x2000 32)\n          [ 0x0a1200 ] @0x2000\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x20 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x60 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x80 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0xa0 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Addition on elliptic curve alt_bn128\n          [ 0x00 ] 0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd2\n          [ 0x20 ] 0x16da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba\n          [ 0x40 ] 0x1de49a4b0233273bba8146af82042d004f2085ec982397db0d97da17204cc286\n          [ 0x60 ] 0x0217327ffc463919bef80cc166d09c6172639d8589799928761bcd9f22c903d4\n          ;; zero value\n          [ 0x0a1300 ] (CALL (GAS) 6 0 0 128 0x2000 64)\n          [ 0x0a1400 ] @0x2000\n          [ 0x0a1500 ] @0x2020\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x20 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x60 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2020 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Scalar multiplication on elliptic curve alt_bn128\n          [ 0x00 ] 0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd2\n          [ 0x20 ] 0x16da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000003\n          ;; zero value\n          [ 0x0a1600 ] (CALL (GAS) 7 0 0 96 0x2000 64)\n          [ 0x0a1700 ] @0x2000\n          [ 0x0a1800 ] @0x2020\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x20 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2020 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Checking a pairing equation on curve alt_bn128\n          ;; proof.A + vk.A + negateG1(proof.Ap) + P2\n          [ 0x0000 ] 0x1c76476f4def4bb94541d57ebba1193381ffa7aa76ada664dd31c16024c43f59\n          [ 0x0020 ] 0x3034dd2920f673e204fee2811c678745fc819b55d3e9d294e45c9b03a76aef41\n          [ 0x0040 ] 0x209dd15ebff5d46c4bd888e51a93cf99a7329636c63514396b4a452003a35bf7\n          [ 0x0060 ] 0x04bf11ca01483bfa8b34b43561848d28905960114c8ac04049af4b6315a41678\n          [ 0x0080 ] 0x2bb8324af6cfc93537a2ad1a445cfd0ca2a71acd7ac41fadbf933c2a51be344d\n          [ 0x00a0 ] 0x120a2a4cf30c1bf9845f20c6fe39e07ea2cce61f0c9bb048165fe5e4de877550\n          [ 0x00c0 ] 0x111e129f1cf1097710d41c4ac70fcdfa5ba2023c6ff1cbeac322de49d1b6df7c\n          [ 0x00e0 ] 0x2032c61a830e3c17286de9462bf242fca2883585b93870a73853face6a6bf411\n          [ 0x0100 ] 0x198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c2\n          [ 0x0120 ] 0x1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed\n          [ 0x0140 ] 0x090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b\n          [ 0x0160 ] 0x12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\n          ;; zero value\n          [ 0x0a1900 ] (CALL (GAS) 8 0 0 0x0180 0x2000 32)\n          [ 0x0a2000 ] @0x2000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; return all computed values to caller for checking\n          (RETURN 0x0a0000 0x012020)\n        }\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '1000000000000000000'\n      code: ''\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '4000000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: '0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8'\n    to: 'b000000000000000000000000000000000000000'\n    value:\n    - '100'\n"
  },
  {
    "path": "tests/static/state_tests/stStaticFlagEnabled/CallcodeToPrecompileFromCalledContractFiller.yml",
    "content": "---\nCallcodeToPrecompileFromCalledContract:\n  _info:\n    comment: |\n      Contract C calls contract B.\n      Contract B staticcalls contract A.\n      Contract A callcodes precompiled contracts.\n      It should execute successfully for each precompiled contract.\n  env:\n    currentCoinbase: '0xcafe000000000000000000000000000000000001'\n    currentDifficulty: '0x20000'\n    currentGasLimit: '10000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      a000000000000000000000000000000000000000:\n        balance: '1000'\n        storage: {}\n      c000000000000000000000000000000000000000:\n        balance: '1100'\n        storage:\n          '0x00': '0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed'\n          '0x01': '0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed'\n      b000000000000000000000000000000000000000:\n        balance: '1000'\n        storage:\n          '0x00': '0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed'\n          '0x01': '0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed'\n          # precompiled contract #1 - Recovery of ECDSA signature\n          '0x0a00': '0x01'\n          '0x0a01': '0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b'\n          '0x0a02': '0x01'\n          # precompiled contract #2 - Hash function SHA256\n          '0x0a03': '0x01'\n          '0x0a04': '0x0ccccccccccccccccccccccccccccccccccccccccccccccccccc000000'\n          '0x0a05': '0x73f5062fb68ed2a1ec82ff8c73f9251bb9cf53a623bc93527e16bc5ae29dad74'\n          # precompiled contract #3 - Hash function RIPEMD160\n          '0x0a06': '0x01'\n          '0x0a07': '0x0ccccccccccccccccccccccccccccccccccccccccccccccccccc000000'\n          '0x0a08': '0x14ef238cfa4075e9ede92f18b1566c1dd0b99aaa'\n          # precompiled contract #4 - Identity\n          '0x0a09': '0x01'\n          '0x0a10': '0x0ccccccccccccccccccccccccccccccccccccccccccccccccccc000000'\n          # precompiled contract #5 - Modular exponentiation\n          '0x0a11': '0x01'\n          '0x0a12': '0x01'\n          # precompiled contract #6 - Addition on elliptic curve alt_bn128\n          '0x0a13': '0x01'\n          '0x0a14': '0x1f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c49'\n          '0x0a15': '0x018683193ae021a2f8920fed186cde5d9b1365116865281ccf884c1f28b1df8f'\n          # precompiled contract #7 - Scalar multiplication on elliptic curve alt_bn128\n          '0x0a16': '0x01'\n          '0x0a17': '0x1f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c49'\n          '0x0a18': '0x018683193ae021a2f8920fed186cde5d9b1365116865281ccf884c1f28b1df8f'\n          # precompiled contract #8 - Checking a pairing equation on curve alt_bn128\n          '0x0a19': '0x01'\n          '0x0a20': '0x01'\n          # precompiled contract #1 - Recovery of ECDSA signature\n          '0x0b00': '0x01'\n          '0x0b01': '0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b'\n          '0x0b02': '0x01'\n          # precompiled contract #2 - Hash function SHA256\n          '0x0b03': '0x01'\n          '0x0b04': '0x0ccccccccccccccccccccccccccccccccccccccccccccccccccc000000'\n          '0x0b05': '0x73f5062fb68ed2a1ec82ff8c73f9251bb9cf53a623bc93527e16bc5ae29dad74'\n          # precompiled contract #3 - Hash function RIPEMD160\n          '0x0b06': '0x01'\n          '0x0b07': '0x0ccccccccccccccccccccccccccccccccccccccccccccccccccc000000'\n          '0x0b08': '0x14ef238cfa4075e9ede92f18b1566c1dd0b99aaa'\n          # precompiled contract #4 - Identity\n          '0x0b09': '0x01'\n          '0x0b10': '0x0ccccccccccccccccccccccccccccccccccccccccccccccccccc000000'\n          # precompiled contract #5 - Modular exponentiation\n          '0x0b11': '0x01'\n          '0x0b12': '0x01'\n          # precompiled contract #6 - Addition on elliptic curve alt_bn128\n          '0x0b13': '0x01'\n          '0x0b14': '0x1f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c49'\n          '0x0b15': '0x018683193ae021a2f8920fed186cde5d9b1365116865281ccf884c1f28b1df8f'\n          # precompiled contract #7 - Scalar multiplication on elliptic curve alt_bn128\n          '0x0b16': '0x01'\n          '0x0b17': '0x1f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c49'\n          '0x0b18': '0x018683193ae021a2f8920fed186cde5d9b1365116865281ccf884c1f28b1df8f'\n          # precompiled contract #8 - Checking a pairing equation on curve alt_bn128\n          '0x0b19': '0x01'\n          '0x0b20': '0x01'\n  pre:\n    c000000000000000000000000000000000000000:\n      balance: '1000'\n      nonce: '0'\n      storage:\n        '0x00': '0xdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeaf'\n        '0x01': '0xdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeaf'\n      code: |\n        {\n          [[ 0x00 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed\n          (CALL (GAS) 0xb000000000000000000000000000000000000000 0 0 0 0 0)\n          [[ 0x01 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed\n        }\n    b000000000000000000000000000000000000000:\n      balance: '1000'\n      nonce: '0'\n      storage:\n        '0x00': '0xdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeaf'\n        '0x01': '0xdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeaf'\n      code: |\n        {\n          [[ 0x00 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed\n          (STATICCALL (GAS) 0xa000000000000000000000000000000000000000 0 0 0x0a0000 0x012020)\n          [[ 0x01 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed\n          ;; save results to store\n          [[ 0x0a00 ]] @0x0a0000  [[ 0x0b00 ]] @0x0b0000\n          [[ 0x0a01 ]] @0x0a0100  [[ 0x0b01 ]] @0x0b0100\n          [[ 0x0a02 ]] @0x0a0200  [[ 0x0b02 ]] @0x0b0200\n          [[ 0x0a03 ]] @0x0a0300  [[ 0x0b03 ]] @0x0b0300\n          [[ 0x0a04 ]] @0x0a0400  [[ 0x0b04 ]] @0x0b0400\n          [[ 0x0a05 ]] @0x0a0500  [[ 0x0b05 ]] @0x0b0500\n          [[ 0x0a06 ]] @0x0a0600  [[ 0x0b06 ]] @0x0b0600\n          [[ 0x0a07 ]] @0x0a0700  [[ 0x0b07 ]] @0x0b0700\n          [[ 0x0a08 ]] @0x0a0800  [[ 0x0b08 ]] @0x0b0800\n          [[ 0x0a09 ]] @0x0a0900  [[ 0x0b09 ]] @0x0b0900\n          [[ 0x0a10 ]] @0x0a1000  [[ 0x0b10 ]] @0x0b1000\n          [[ 0x0a11 ]] @0x0a1100  [[ 0x0b11 ]] @0x0b1100\n          [[ 0x0a12 ]] @0x0a1200  [[ 0x0b12 ]] @0x0b1200\n          [[ 0x0a13 ]] @0x0a1300  [[ 0x0b13 ]] @0x0b1300\n          [[ 0x0a14 ]] @0x0a1400  [[ 0x0b14 ]] @0x0b1400\n          [[ 0x0a15 ]] @0x0a1500  [[ 0x0b15 ]] @0x0b1500\n          [[ 0x0a16 ]] @0x0a1600  [[ 0x0b16 ]] @0x0b1600\n          [[ 0x0a17 ]] @0x0a1700  [[ 0x0b17 ]] @0x0b1700\n          [[ 0x0a18 ]] @0x0a1800  [[ 0x0b18 ]] @0x0b1800\n          [[ 0x0a19 ]] @0x0a1900  [[ 0x0b19 ]] @0x0b1900\n          [[ 0x0a20 ]] @0x0a2000  [[ 0x0b20 ]] @0x0b2000\n        }\n    a000000000000000000000000000000000000000:\n      balance: '1000'\n      nonce: '0'\n      storage: {}\n      code: |\n        {\n          ;; Recovery of ECDSA signature\n          [ 0x00 ] 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c\n          [ 0x20 ] 28\n          [ 0x40 ] 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f\n          [ 0x60 ] 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549\n          ;; zero value\n          [ 0x0a0000 ] (CALLCODE (GAS) 1 0 0 128 0x2000 32)\n          [ 0x0a0100 ] (MOD @0x2000 (EXP 2 160))\n          [ 0x0a0200 ] (EQ (ORIGIN) @0x0a0100)\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          ;; non zero value\n          [ 0x0b0000 ] (CALLCODE (GAS) 1 1 0 128 0x2020 32)\n          [ 0x0b0100 ] (MOD @0x2020 (EXP 2 160))\n          [ 0x0b0200 ] (EQ (ORIGIN) @0x0b0100)\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x20 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x60 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2020 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Hash function SHA256\n          [ 0x00 ] 0x0000000ccccccccccccccccccccccccccccccccccccccccccccccccccc000000\n          ;; zero value\n          [ 0x0a0300 ] (CALLCODE (GAS) 2 0 0 32 0x2000 32)\n          [ 0x0a0400 ] @0\n          [ 0x0a0500 ] @0x2000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          ;; non zero value\n          [ 0x0b0300 ] (CALLCODE (GAS) 2 1 0 32 0x2020 32)\n          [ 0x0b0400 ] @0\n          [ 0x0b0500 ] @0x2020\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2020 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Hash function RIPEMD160\n          [ 0x00 ] 0x0000000ccccccccccccccccccccccccccccccccccccccccccccccccccc000000\n          ;; zero value\n          [ 0x0a0600 ] (CALLCODE (GAS) 3 0 0 32 0x2000 32)\n          [ 0x0a0700 ] @0\n          [ 0x0a0800 ] @0x2000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          ;; non zero value\n          [ 0x0b0600 ] (CALLCODE (GAS) 3 1 0 32 0x2020 32)\n          [ 0x0b0700 ] @0\n          [ 0x0b0800 ] @0x2020\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2020 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Identity\n          [ 0x00 ] 0x0000000ccccccccccccccccccccccccccccccccccccccccccccccccccc000000\n          ;; zero value\n          [ 0x0a0900 ] (CALLCODE (GAS) 4 0 0 32 0x2000 32)\n          [ 0x0a1000 ] @0x2000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          ;; non zero value\n          [ 0x0b0900 ] (CALLCODE (GAS) 4 1 0 32 0x2020 32)\n          [ 0x0b1000 ] @0x2020\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2020 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Modular exponentiation\n          [ 0x00 ] 1\n          [ 0x20 ] 32\n          [ 0x40 ] 32\n          [ 0x60 ] 0x03fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc\n          [ 0x80 ] 0x2efffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc\n          [ 0xa0 ] 0x2f00000000000000000000000000000000000000000000000000000000000000\n          ;; zero value\n          [ 0x0a1100 ] (CALLCODE (GAS) 5 0 0 0xa1 0x2000 32)\n          [ 0x0a1200 ] @0x2000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          ;; non zero value\n          [ 0x0b1100 ] (CALLCODE (GAS) 5 1 0 0xa1 0x2020 32)\n          [ 0x0b1200 ] @0x2020\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x20 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x60 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x80 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0xa0 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2020 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Addition on elliptic curve alt_bn128\n          [ 0x00 ] 0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd2\n          [ 0x20 ] 0x16da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba\n          [ 0x40 ] 0x1de49a4b0233273bba8146af82042d004f2085ec982397db0d97da17204cc286\n          [ 0x60 ] 0x0217327ffc463919bef80cc166d09c6172639d8589799928761bcd9f22c903d4\n          ;; zero value\n          [ 0x0a1300 ] (CALLCODE (GAS) 6 0 0 128 0x2000 64)\n          [ 0x0a1400 ] @0x2000\n          [ 0x0a1500 ] @0x2020\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2020 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          ;; non zero value\n          [ 0x0b1300 ] (CALLCODE (GAS) 6 1 0 128 0x3000 64)\n          [ 0x0b1400 ] @0x3000\n          [ 0x0b1500 ] @0x3020\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x20 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x60 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x3000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x3020 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Scalar multiplication on elliptic curve alt_bn128\n          [ 0x00 ] 0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd2\n          [ 0x20 ] 0x16da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000003\n          ;; zero value\n          [ 0x0a1600 ] (CALLCODE (GAS) 7 0 0 96 0x2000 64)\n          [ 0x0a1700 ] @0x2000\n          [ 0x0a1800 ] @0x2020\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2020 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          ;; non zero value\n          [ 0x0b1600 ] (CALLCODE (GAS) 7 1 0 96 0x3000 64)\n          [ 0x0b1700 ] @0x3000\n          [ 0x0b1800 ] @0x3020\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x20 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x3000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x3020 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Checking a pairing equation on curve alt_bn128\n          ;; proof.A + vk.A + negateG1(proof.Ap) + P2\n          [ 0x0000 ] 0x1c76476f4def4bb94541d57ebba1193381ffa7aa76ada664dd31c16024c43f59\n          [ 0x0020 ] 0x3034dd2920f673e204fee2811c678745fc819b55d3e9d294e45c9b03a76aef41\n          [ 0x0040 ] 0x209dd15ebff5d46c4bd888e51a93cf99a7329636c63514396b4a452003a35bf7\n          [ 0x0060 ] 0x04bf11ca01483bfa8b34b43561848d28905960114c8ac04049af4b6315a41678\n          [ 0x0080 ] 0x2bb8324af6cfc93537a2ad1a445cfd0ca2a71acd7ac41fadbf933c2a51be344d\n          [ 0x00a0 ] 0x120a2a4cf30c1bf9845f20c6fe39e07ea2cce61f0c9bb048165fe5e4de877550\n          [ 0x00c0 ] 0x111e129f1cf1097710d41c4ac70fcdfa5ba2023c6ff1cbeac322de49d1b6df7c\n          [ 0x00e0 ] 0x2032c61a830e3c17286de9462bf242fca2883585b93870a73853face6a6bf411\n          [ 0x0100 ] 0x198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c2\n          [ 0x0120 ] 0x1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed\n          [ 0x0140 ] 0x090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b\n          [ 0x0160 ] 0x12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\n          ;; zero value\n          [ 0x0a1900 ] (CALLCODE (GAS) 8 0 0 0x0180 0x2000 32)\n          [ 0x0a2000 ] @0x2000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          ;; non zero value\n          [ 0x0b1900 ] (CALLCODE (GAS) 8 1 0 0x0180 0x2020 32)\n          [ 0x0b2000 ] @0x2020\n          [ 0x2020 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; return all computed values to caller for checking\n          (RETURN 0x0a0000 0x012020)\n        }\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '1000000000000000000'\n      code: ''\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '4000000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: '0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8'\n    to: 'c000000000000000000000000000000000000000'\n    value:\n    - '100'\n"
  },
  {
    "path": "tests/static/state_tests/stStaticFlagEnabled/CallcodeToPrecompileFromContractInitializationFiller.yml",
    "content": "---\nCallcodeToPrecompileFromContractInitialization:\n  _info:\n    comment: |\n      Contract B creates new contract.\n      New contract initialization code staticcalls contract A.\n      Contract A callcodes precompiled contracts.\n      It should execute successfully for each precompiled contract.\n  env:\n    currentCoinbase: '0xcafe000000000000000000000000000000000001'\n    currentDifficulty: '0x20000'\n    currentGasLimit: '10000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data:\n      - !!int 0\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      b000000000000000000000000000000000000000:\n        balance: '1100'\n        storage:\n          '0x00': '0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed'\n          '0x01': '0xb2bc42a2d3b34f228ba399e53ab6f1b3d2672177'\n          '0x02': '0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed'\n      b2bc42a2d3b34f228ba399e53ab6f1b3d2672177:\n        storage:\n          '0x00': '0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed'\n          '0x01': '0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed'\n          # precompiled contract #1 - Recovery of ECDSA signature\n          '0x0a00': '0x01'\n          '0x0a01': '0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b'\n          '0x0a02': '0x01'\n          # precompiled contract #2 - Hash function SHA256\n          '0x0a03': '0x01'\n          '0x0a04': '0x0ccccccccccccccccccccccccccccccccccccccccccccccccccc000000'\n          '0x0a05': '0x73f5062fb68ed2a1ec82ff8c73f9251bb9cf53a623bc93527e16bc5ae29dad74'\n          # precompiled contract #3 - Hash function RIPEMD160\n          '0x0a06': '0x01'\n          '0x0a07': '0x0ccccccccccccccccccccccccccccccccccccccccccccccccccc000000'\n          '0x0a08': '0x14ef238cfa4075e9ede92f18b1566c1dd0b99aaa'\n          # precompiled contract #4 - Identity\n          '0x0a09': '0x01'\n          '0x0a10': '0x0ccccccccccccccccccccccccccccccccccccccccccccccccccc000000'\n          # precompiled contract #5 - Modular exponentiation\n          '0x0a11': '0x01'\n          '0x0a12': '0x01'\n          # precompiled contract #6 - Addition on elliptic curve alt_bn128\n          '0x0a13': '0x01'\n          '0x0a14': '0x1f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c49'\n          '0x0a15': '0x018683193ae021a2f8920fed186cde5d9b1365116865281ccf884c1f28b1df8f'\n          # precompiled contract #7 - Scalar multiplication on elliptic curve alt_bn128\n          '0x0a16': '0x01'\n          '0x0a17': '0x1f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c49'\n          '0x0a18': '0x018683193ae021a2f8920fed186cde5d9b1365116865281ccf884c1f28b1df8f'\n          # precompiled contract #8 - Checking a pairing equation on curve alt_bn128\n          '0x0a19': '0x01'\n          '0x0a20': '0x01'\n          # precompiled contract #1 - Recovery of ECDSA signature\n          '0x0b00': '0x01'\n          '0x0b01': '0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b'\n          '0x0b02': '0x01'\n          # precompiled contract #2 - Hash function SHA256\n          '0x0b03': '0x01'\n          '0x0b04': '0x0ccccccccccccccccccccccccccccccccccccccccccccccccccc000000'\n          '0x0b05': '0x73f5062fb68ed2a1ec82ff8c73f9251bb9cf53a623bc93527e16bc5ae29dad74'\n          # precompiled contract #3 - Hash function RIPEMD160\n          '0x0b06': '0x01'\n          '0x0b07': '0x0ccccccccccccccccccccccccccccccccccccccccccccccccccc000000'\n          '0x0b08': '0x14ef238cfa4075e9ede92f18b1566c1dd0b99aaa'\n          # precompiled contract #4 - Identity\n          '0x0b09': '0x01'\n          '0x0b10': '0x0ccccccccccccccccccccccccccccccccccccccccccccccccccc000000'\n          # precompiled contract #5 - Modular exponentiation\n          '0x0b11': '0x01'\n          '0x0b12': '0x01'\n          # precompiled contract #6 - Addition on elliptic curve alt_bn128\n          '0x0b13': '0x01'\n          '0x0b14': '0x1f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c49'\n          '0x0b15': '0x018683193ae021a2f8920fed186cde5d9b1365116865281ccf884c1f28b1df8f'\n          # precompiled contract #7 - Scalar multiplication on elliptic curve alt_bn128\n          '0x0b16': '0x01'\n          '0x0b17': '0x1f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c49'\n          '0x0b18': '0x018683193ae021a2f8920fed186cde5d9b1365116865281ccf884c1f28b1df8f'\n          # precompiled contract #8 - Checking a pairing equation on curve alt_bn128\n          '0x0b19': '0x01'\n          '0x0b20': '0x01'\n  pre:\n    b000000000000000000000000000000000000000:\n      balance: '1000'\n      nonce: '0'\n      storage:\n        '0x00': '0xdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeaf'\n        '0x01': '0xdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeaf'\n      code: |\n        {\n          [[ 0x00 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed\n          (CALLDATACOPY 0 0 (CALLDATASIZE))\n          [[ 0x01 ]] (CREATE2 0 0 (CALLDATASIZE) 0x5a175a17)\n          [[ 0x02 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed\n        }\n    a000000000000000000000000000000000000000:\n      balance: '1000'\n      nonce: '0'\n      storage: {}\n      code: |\n        {\n          ;; Recovery of ECDSA signature\n          [ 0x00 ] 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c\n          [ 0x20 ] 28\n          [ 0x40 ] 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f\n          [ 0x60 ] 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549\n          ;; zero value\n          [ 0x0a0000 ] (CALLCODE (GAS) 1 0 0 128 0x2000 32)\n          [ 0x0a0100 ] (MOD @0x2000 (EXP 2 160))\n          [ 0x0a0200 ] (EQ (ORIGIN) @0x0a0100)\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          ;; non zero value\n          [ 0x0b0000 ] (CALLCODE (GAS) 1 1 0 128 0x2020 32)\n          [ 0x0b0100 ] (MOD @0x2020 (EXP 2 160))\n          [ 0x0b0200 ] (EQ (ORIGIN) @0x0b0100)\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x20 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x60 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2020 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Hash function SHA256\n          [ 0x00 ] 0x0000000ccccccccccccccccccccccccccccccccccccccccccccccccccc000000\n          ;; zero value\n          [ 0x0a0300 ] (CALLCODE (GAS) 2 0 0 32 0x2000 32)\n          [ 0x0a0400 ] @0\n          [ 0x0a0500 ] @0x2000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          ;; non zero value\n          [ 0x0b0300 ] (CALLCODE (GAS) 2 1 0 32 0x2020 32)\n          [ 0x0b0400 ] @0\n          [ 0x0b0500 ] @0x2020\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2020 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Hash function RIPEMD160\n          [ 0x00 ] 0x0000000ccccccccccccccccccccccccccccccccccccccccccccccccccc000000\n          ;; zero value\n          [ 0x0a0600 ] (CALLCODE (GAS) 3 0 0 32 0x2000 32)\n          [ 0x0a0700 ] @0\n          [ 0x0a0800 ] @0x2000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          ;; non zero value\n          [ 0x0b0600 ] (CALLCODE (GAS) 3 1 0 32 0x2020 32)\n          [ 0x0b0700 ] @0\n          [ 0x0b0800 ] @0x2020\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2020 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Identity\n          [ 0x00 ] 0x0000000ccccccccccccccccccccccccccccccccccccccccccccccccccc000000\n          ;; zero value\n          [ 0x0a0900 ] (CALLCODE (GAS) 4 0 0 32 0x2000 32)\n          [ 0x0a1000 ] @0x2000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          ;; non zero value\n          [ 0x0b0900 ] (CALLCODE (GAS) 4 1 0 32 0x2020 32)\n          [ 0x0b1000 ] @0x2020\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2020 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Modular exponentiation\n          [ 0x00 ] 1\n          [ 0x20 ] 32\n          [ 0x40 ] 32\n          [ 0x60 ] 0x03fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc\n          [ 0x80 ] 0x2efffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc\n          [ 0xa0 ] 0x2f00000000000000000000000000000000000000000000000000000000000000\n          ;; zero value\n          [ 0x0a1100 ] (CALLCODE (GAS) 5 0 0 0xa1 0x2000 32)\n          [ 0x0a1200 ] @0x2000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          ;; non zero value\n          [ 0x0b1100 ] (CALLCODE (GAS) 5 1 0 0xa1 0x2020 32)\n          [ 0x0b1200 ] @0x2020\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x20 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x60 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x80 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0xa0 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2020 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Addition on elliptic curve alt_bn128\n          [ 0x00 ] 0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd2\n          [ 0x20 ] 0x16da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba\n          [ 0x40 ] 0x1de49a4b0233273bba8146af82042d004f2085ec982397db0d97da17204cc286\n          [ 0x60 ] 0x0217327ffc463919bef80cc166d09c6172639d8589799928761bcd9f22c903d4\n          ;; zero value\n          [ 0x0a1300 ] (CALLCODE (GAS) 6 0 0 128 0x2000 64)\n          [ 0x0a1400 ] @0x2000\n          [ 0x0a1500 ] @0x2020\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2020 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          ;; non zero value\n          [ 0x0b1300 ] (CALLCODE (GAS) 6 1 0 128 0x3000 64)\n          [ 0x0b1400 ] @0x3000\n          [ 0x0b1500 ] @0x3020\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x20 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x60 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x3000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x3020 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Scalar multiplication on elliptic curve alt_bn128\n          [ 0x00 ] 0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd2\n          [ 0x20 ] 0x16da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000003\n          ;; zero value\n          [ 0x0a1600 ] (CALLCODE (GAS) 7 0 0 96 0x2000 64)\n          [ 0x0a1700 ] @0x2000\n          [ 0x0a1800 ] @0x2020\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2020 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          ;; non zero value\n          [ 0x0b1600 ] (CALLCODE (GAS) 7 1 0 96 0x3000 64)\n          [ 0x0b1700 ] @0x3000\n          [ 0x0b1800 ] @0x3020\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x20 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x3000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x3020 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Checking a pairing equation on curve alt_bn128\n          ;; proof.A + vk.A + negateG1(proof.Ap) + P2\n          [ 0x0000 ] 0x1c76476f4def4bb94541d57ebba1193381ffa7aa76ada664dd31c16024c43f59\n          [ 0x0020 ] 0x3034dd2920f673e204fee2811c678745fc819b55d3e9d294e45c9b03a76aef41\n          [ 0x0040 ] 0x209dd15ebff5d46c4bd888e51a93cf99a7329636c63514396b4a452003a35bf7\n          [ 0x0060 ] 0x04bf11ca01483bfa8b34b43561848d28905960114c8ac04049af4b6315a41678\n          [ 0x0080 ] 0x2bb8324af6cfc93537a2ad1a445cfd0ca2a71acd7ac41fadbf933c2a51be344d\n          [ 0x00a0 ] 0x120a2a4cf30c1bf9845f20c6fe39e07ea2cce61f0c9bb048165fe5e4de877550\n          [ 0x00c0 ] 0x111e129f1cf1097710d41c4ac70fcdfa5ba2023c6ff1cbeac322de49d1b6df7c\n          [ 0x00e0 ] 0x2032c61a830e3c17286de9462bf242fca2883585b93870a73853face6a6bf411\n          [ 0x0100 ] 0x198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c2\n          [ 0x0120 ] 0x1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed\n          [ 0x0140 ] 0x090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b\n          [ 0x0160 ] 0x12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\n          ;; zero value\n          [ 0x0a1900 ] (CALLCODE (GAS) 8 0 0 0x0180 0x2000 32)\n          [ 0x0a2000 ] @0x2000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          ;; non zero value\n          [ 0x0b1900 ] (CALLCODE (GAS) 8 1 0 0x0180 0x2020 32)\n          [ 0x0b2000 ] @0x2020\n          [ 0x2020 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; return all computed values to caller for checking\n          (RETURN 0x0a0000 0x012020)\n        }\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '1000000000000000000'\n      code: ''\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - |\n      {\n        [[ 0x00 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed\n        (STATICCALL (GAS) 0xa000000000000000000000000000000000000000 0 0 0x0a0000 0x012020)\n        [[ 0x01 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed\n        ;; save results to store\n        [[ 0x0a00 ]] @0x0a0000  [[ 0x0b00 ]] @0x0b0000\n        [[ 0x0a01 ]] @0x0a0100  [[ 0x0b01 ]] @0x0b0100\n        [[ 0x0a02 ]] @0x0a0200  [[ 0x0b02 ]] @0x0b0200\n        [[ 0x0a03 ]] @0x0a0300  [[ 0x0b03 ]] @0x0b0300\n        [[ 0x0a04 ]] @0x0a0400  [[ 0x0b04 ]] @0x0b0400\n        [[ 0x0a05 ]] @0x0a0500  [[ 0x0b05 ]] @0x0b0500\n        [[ 0x0a06 ]] @0x0a0600  [[ 0x0b06 ]] @0x0b0600\n        [[ 0x0a07 ]] @0x0a0700  [[ 0x0b07 ]] @0x0b0700\n        [[ 0x0a08 ]] @0x0a0800  [[ 0x0b08 ]] @0x0b0800\n        [[ 0x0a09 ]] @0x0a0900  [[ 0x0b09 ]] @0x0b0900\n        [[ 0x0a10 ]] @0x0a1000  [[ 0x0b10 ]] @0x0b1000\n        [[ 0x0a11 ]] @0x0a1100  [[ 0x0b11 ]] @0x0b1100\n        [[ 0x0a12 ]] @0x0a1200  [[ 0x0b12 ]] @0x0b1200\n        [[ 0x0a13 ]] @0x0a1300  [[ 0x0b13 ]] @0x0b1300\n        [[ 0x0a14 ]] @0x0a1400  [[ 0x0b14 ]] @0x0b1400\n        [[ 0x0a15 ]] @0x0a1500  [[ 0x0b15 ]] @0x0b1500\n        [[ 0x0a16 ]] @0x0a1600  [[ 0x0b16 ]] @0x0b1600\n        [[ 0x0a17 ]] @0x0a1700  [[ 0x0b17 ]] @0x0b1700\n        [[ 0x0a18 ]] @0x0a1800  [[ 0x0b18 ]] @0x0b1800\n        [[ 0x0a19 ]] @0x0a1900  [[ 0x0b19 ]] @0x0b1900\n        [[ 0x0a20 ]] @0x0a2000  [[ 0x0b20 ]] @0x0b2000\n      }\n    gasLimit:\n    - '4000000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: '0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8'\n    to: 'b000000000000000000000000000000000000000'\n    value:\n    - '100'\n"
  },
  {
    "path": "tests/static/state_tests/stStaticFlagEnabled/CallcodeToPrecompileFromTransactionFiller.yml",
    "content": "---\nCallcodeToPrecompileFromTransaction:\n  _info:\n    comment: |\n      Contract B staticcalls contract A.\n      Contract A callcodes precompiled contracts.\n      It should execute successfully for each precompiled contract.\n  env:\n    currentCoinbase: '0xcafe000000000000000000000000000000000001'\n    currentDifficulty: '0x20000'\n    currentGasLimit: '10000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      a000000000000000000000000000000000000000:\n        balance: '1000'\n        storage: {}\n      b000000000000000000000000000000000000000:\n        balance: '1100'\n        storage:\n          '0x00': '0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed'\n          '0x01': '0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed'\n          # precompiled contract #1 - Recovery of ECDSA signature\n          '0x0a00': '0x01'\n          '0x0a01': '0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b'\n          '0x0a02': '0x01'\n          # precompiled contract #2 - Hash function SHA256\n          '0x0a03': '0x01'\n          '0x0a04': '0x0ccccccccccccccccccccccccccccccccccccccccccccccccccc000000'\n          '0x0a05': '0x73f5062fb68ed2a1ec82ff8c73f9251bb9cf53a623bc93527e16bc5ae29dad74'\n          # precompiled contract #3 - Hash function RIPEMD160\n          '0x0a06': '0x01'\n          '0x0a07': '0x0ccccccccccccccccccccccccccccccccccccccccccccccccccc000000'\n          '0x0a08': '0x14ef238cfa4075e9ede92f18b1566c1dd0b99aaa'\n          # precompiled contract #4 - Identity\n          '0x0a09': '0x01'\n          '0x0a10': '0x0ccccccccccccccccccccccccccccccccccccccccccccccccccc000000'\n          # precompiled contract #5 - Modular exponentiation\n          '0x0a11': '0x01'\n          '0x0a12': '0x01'\n          # precompiled contract #6 - Addition on elliptic curve alt_bn128\n          '0x0a13': '0x01'\n          '0x0a14': '0x1f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c49'\n          '0x0a15': '0x018683193ae021a2f8920fed186cde5d9b1365116865281ccf884c1f28b1df8f'\n          # precompiled contract #7 - Scalar multiplication on elliptic curve alt_bn128\n          '0x0a16': '0x01'\n          '0x0a17': '0x1f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c49'\n          '0x0a18': '0x018683193ae021a2f8920fed186cde5d9b1365116865281ccf884c1f28b1df8f'\n          # precompiled contract #8 - Checking a pairing equation on curve alt_bn128\n          '0x0a19': '0x01'\n          '0x0a20': '0x01'\n          # precompiled contract #1 - Recovery of ECDSA signature\n          '0x0b00': '0x01'\n          '0x0b01': '0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b'\n          '0x0b02': '0x01'\n          # precompiled contract #2 - Hash function SHA256\n          '0x0b03': '0x01'\n          '0x0b04': '0x0ccccccccccccccccccccccccccccccccccccccccccccccccccc000000'\n          '0x0b05': '0x73f5062fb68ed2a1ec82ff8c73f9251bb9cf53a623bc93527e16bc5ae29dad74'\n          # precompiled contract #3 - Hash function RIPEMD160\n          '0x0b06': '0x01'\n          '0x0b07': '0x0ccccccccccccccccccccccccccccccccccccccccccccccccccc000000'\n          '0x0b08': '0x14ef238cfa4075e9ede92f18b1566c1dd0b99aaa'\n          # precompiled contract #4 - Identity\n          '0x0b09': '0x01'\n          '0x0b10': '0x0ccccccccccccccccccccccccccccccccccccccccccccccccccc000000'\n          # precompiled contract #5 - Modular exponentiation\n          '0x0b11': '0x01'\n          '0x0b12': '0x01'\n          # precompiled contract #6 - Addition on elliptic curve alt_bn128\n          '0x0b13': '0x01'\n          '0x0b14': '0x1f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c49'\n          '0x0b15': '0x018683193ae021a2f8920fed186cde5d9b1365116865281ccf884c1f28b1df8f'\n          # precompiled contract #7 - Scalar multiplication on elliptic curve alt_bn128\n          '0x0b16': '0x01'\n          '0x0b17': '0x1f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c49'\n          '0x0b18': '0x018683193ae021a2f8920fed186cde5d9b1365116865281ccf884c1f28b1df8f'\n          # precompiled contract #8 - Checking a pairing equation on curve alt_bn128\n          '0x0b19': '0x01'\n          '0x0b20': '0x01'\n  pre:\n    b000000000000000000000000000000000000000:\n      balance: '1000'\n      nonce: '0'\n      storage:\n        '0x00': '0xdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeaf'\n        '0x01': '0xdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeaf'\n      code: |\n        {\n          [[ 0x00 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed\n          (STATICCALL (GAS) 0xa000000000000000000000000000000000000000 0 0 0x0a0000 0x012020)\n          [[ 0x01 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed\n          ;; save results to store\n          [[ 0x0a00 ]] @0x0a0000  [[ 0x0b00 ]] @0x0b0000\n          [[ 0x0a01 ]] @0x0a0100  [[ 0x0b01 ]] @0x0b0100\n          [[ 0x0a02 ]] @0x0a0200  [[ 0x0b02 ]] @0x0b0200\n          [[ 0x0a03 ]] @0x0a0300  [[ 0x0b03 ]] @0x0b0300\n          [[ 0x0a04 ]] @0x0a0400  [[ 0x0b04 ]] @0x0b0400\n          [[ 0x0a05 ]] @0x0a0500  [[ 0x0b05 ]] @0x0b0500\n          [[ 0x0a06 ]] @0x0a0600  [[ 0x0b06 ]] @0x0b0600\n          [[ 0x0a07 ]] @0x0a0700  [[ 0x0b07 ]] @0x0b0700\n          [[ 0x0a08 ]] @0x0a0800  [[ 0x0b08 ]] @0x0b0800\n          [[ 0x0a09 ]] @0x0a0900  [[ 0x0b09 ]] @0x0b0900\n          [[ 0x0a10 ]] @0x0a1000  [[ 0x0b10 ]] @0x0b1000\n          [[ 0x0a11 ]] @0x0a1100  [[ 0x0b11 ]] @0x0b1100\n          [[ 0x0a12 ]] @0x0a1200  [[ 0x0b12 ]] @0x0b1200\n          [[ 0x0a13 ]] @0x0a1300  [[ 0x0b13 ]] @0x0b1300\n          [[ 0x0a14 ]] @0x0a1400  [[ 0x0b14 ]] @0x0b1400\n          [[ 0x0a15 ]] @0x0a1500  [[ 0x0b15 ]] @0x0b1500\n          [[ 0x0a16 ]] @0x0a1600  [[ 0x0b16 ]] @0x0b1600\n          [[ 0x0a17 ]] @0x0a1700  [[ 0x0b17 ]] @0x0b1700\n          [[ 0x0a18 ]] @0x0a1800  [[ 0x0b18 ]] @0x0b1800\n          [[ 0x0a19 ]] @0x0a1900  [[ 0x0b19 ]] @0x0b1900\n          [[ 0x0a20 ]] @0x0a2000  [[ 0x0b20 ]] @0x0b2000\n        }\n    a000000000000000000000000000000000000000:\n      balance: '1000'\n      nonce: '0'\n      storage: {}\n      code: |\n        {\n          ;; Recovery of ECDSA signature\n          [ 0x00 ] 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c\n          [ 0x20 ] 28\n          [ 0x40 ] 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f\n          [ 0x60 ] 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549\n          ;; zero value\n          [ 0x0a0000 ] (CALLCODE (GAS) 1 0 0 128 0x2000 32)\n          [ 0x0a0100 ] (MOD @0x2000 (EXP 2 160))\n          [ 0x0a0200 ] (EQ (ORIGIN) @0x0a0100)\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          ;; non zero value\n          [ 0x0b0000 ] (CALLCODE (GAS) 1 1 0 128 0x2020 32)\n          [ 0x0b0100 ] (MOD @0x2020 (EXP 2 160))\n          [ 0x0b0200 ] (EQ (ORIGIN) @0x0b0100)\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x20 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x60 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2020 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Hash function SHA256\n          [ 0x00 ] 0x0000000ccccccccccccccccccccccccccccccccccccccccccccccccccc000000\n          ;; zero value\n          [ 0x0a0300 ] (CALLCODE (GAS) 2 0 0 32 0x2000 32)\n          [ 0x0a0400 ] @0\n          [ 0x0a0500 ] @0x2000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          ;; non zero value\n          [ 0x0b0300 ] (CALLCODE (GAS) 2 1 0 32 0x2020 32)\n          [ 0x0b0400 ] @0\n          [ 0x0b0500 ] @0x2020\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2020 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Hash function RIPEMD160\n          [ 0x00 ] 0x0000000ccccccccccccccccccccccccccccccccccccccccccccccccccc000000\n          ;; zero value\n          [ 0x0a0600 ] (CALLCODE (GAS) 3 0 0 32 0x2000 32)\n          [ 0x0a0700 ] @0\n          [ 0x0a0800 ] @0x2000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          ;; non zero value\n          [ 0x0b0600 ] (CALLCODE (GAS) 3 1 0 32 0x2020 32)\n          [ 0x0b0700 ] @0\n          [ 0x0b0800 ] @0x2020\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2020 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Identity\n          [ 0x00 ] 0x0000000ccccccccccccccccccccccccccccccccccccccccccccccccccc000000\n          ;; zero value\n          [ 0x0a0900 ] (CALLCODE (GAS) 4 0 0 32 0x2000 32)\n          [ 0x0a1000 ] @0x2000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          ;; non zero value\n          [ 0x0b0900 ] (CALLCODE (GAS) 4 1 0 32 0x2020 32)\n          [ 0x0b1000 ] @0x2020\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2020 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Modular exponentiation\n          [ 0x00 ] 1\n          [ 0x20 ] 32\n          [ 0x40 ] 32\n          [ 0x60 ] 0x03fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc\n          [ 0x80 ] 0x2efffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc\n          [ 0xa0 ] 0x2f00000000000000000000000000000000000000000000000000000000000000\n          ;; zero value\n          [ 0x0a1100 ] (CALLCODE (GAS) 5 0 0 0xa1 0x2000 32)\n          [ 0x0a1200 ] @0x2000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          ;; non zero value\n          [ 0x0b1100 ] (CALLCODE (GAS) 5 1 0 0xa1 0x2020 32)\n          [ 0x0b1200 ] @0x2020\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x20 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x60 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x80 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0xa0 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2020 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Addition on elliptic curve alt_bn128\n          [ 0x00 ] 0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd2\n          [ 0x20 ] 0x16da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba\n          [ 0x40 ] 0x1de49a4b0233273bba8146af82042d004f2085ec982397db0d97da17204cc286\n          [ 0x60 ] 0x0217327ffc463919bef80cc166d09c6172639d8589799928761bcd9f22c903d4\n          ;; zero value\n          [ 0x0a1300 ] (CALLCODE (GAS) 6 0 0 128 0x2000 64)\n          [ 0x0a1400 ] @0x2000\n          [ 0x0a1500 ] @0x2020\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2020 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          ;; non zero value\n          [ 0x0b1300 ] (CALLCODE (GAS) 6 1 0 128 0x3000 64)\n          [ 0x0b1400 ] @0x3000\n          [ 0x0b1500 ] @0x3020\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x20 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x60 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x3000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x3020 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Scalar multiplication on elliptic curve alt_bn128\n          [ 0x00 ] 0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd2\n          [ 0x20 ] 0x16da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000003\n          ;; zero value\n          [ 0x0a1600 ] (CALLCODE (GAS) 7 0 0 96 0x2000 64)\n          [ 0x0a1700 ] @0x2000\n          [ 0x0a1800 ] @0x2020\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2020 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          ;; non zero value\n          [ 0x0b1600 ] (CALLCODE (GAS) 7 1 0 96 0x3000 64)\n          [ 0x0b1700 ] @0x3000\n          [ 0x0b1800 ] @0x3020\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x20 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x3000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x3020 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Checking a pairing equation on curve alt_bn128\n          ;; proof.A + vk.A + negateG1(proof.Ap) + P2\n          [ 0x0000 ] 0x1c76476f4def4bb94541d57ebba1193381ffa7aa76ada664dd31c16024c43f59\n          [ 0x0020 ] 0x3034dd2920f673e204fee2811c678745fc819b55d3e9d294e45c9b03a76aef41\n          [ 0x0040 ] 0x209dd15ebff5d46c4bd888e51a93cf99a7329636c63514396b4a452003a35bf7\n          [ 0x0060 ] 0x04bf11ca01483bfa8b34b43561848d28905960114c8ac04049af4b6315a41678\n          [ 0x0080 ] 0x2bb8324af6cfc93537a2ad1a445cfd0ca2a71acd7ac41fadbf933c2a51be344d\n          [ 0x00a0 ] 0x120a2a4cf30c1bf9845f20c6fe39e07ea2cce61f0c9bb048165fe5e4de877550\n          [ 0x00c0 ] 0x111e129f1cf1097710d41c4ac70fcdfa5ba2023c6ff1cbeac322de49d1b6df7c\n          [ 0x00e0 ] 0x2032c61a830e3c17286de9462bf242fca2883585b93870a73853face6a6bf411\n          [ 0x0100 ] 0x198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c2\n          [ 0x0120 ] 0x1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed\n          [ 0x0140 ] 0x090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b\n          [ 0x0160 ] 0x12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\n          ;; zero value\n          [ 0x0a1900 ] (CALLCODE (GAS) 8 0 0 0x0180 0x2000 32)\n          [ 0x0a2000 ] @0x2000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          ;; non zero value\n          [ 0x0b1900 ] (CALLCODE (GAS) 8 1 0 0x0180 0x2020 32)\n          [ 0x0b2000 ] @0x2020\n          [ 0x2020 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; return all computed values to caller for checking\n          (RETURN 0x0a0000 0x012020)\n        }\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '1000000000000000000'\n      code: ''\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '4000000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: '0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8'\n    to: 'b000000000000000000000000000000000000000'\n    value:\n    - '100'\n"
  },
  {
    "path": "tests/static/state_tests/stStaticFlagEnabled/DelegatecallToPrecompileFromCalledContractFiller.yml",
    "content": "---\nDelegatecallToPrecompileFromCalledContract:\n  _info:\n    comment: |\n      Contract C calls contract B.\n      Contract B staticcalls contract A.\n      Contract A delegatecalls precompiled contracts.\n      It should execute successfully for each precompiled contract.\n  env:\n    currentCoinbase: '0xcafe000000000000000000000000000000000001'\n    currentDifficulty: '0x20000'\n    currentGasLimit: '10000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      a000000000000000000000000000000000000000:\n        balance: '1000'\n        storage: {}\n      c000000000000000000000000000000000000000:\n        balance: '1100'\n        storage:\n          '0x00': '0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed'\n          '0x01': '0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed'\n      b000000000000000000000000000000000000000:\n        balance: '1000'\n        storage:\n          '0x00': '0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed'\n          '0x01': '0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed'\n          # precompiled contract #1 - Recovery of ECDSA signature\n          '0x0a00': '0x01'\n          '0x0a01': '0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b'\n          '0x0a02': '0x01'\n          # precompiled contract #2 - Hash function SHA256\n          '0x0a03': '0x01'\n          '0x0a04': '0x0ccccccccccccccccccccccccccccccccccccccccccccccccccc000000'\n          '0x0a05': '0x73f5062fb68ed2a1ec82ff8c73f9251bb9cf53a623bc93527e16bc5ae29dad74'\n          # precompiled contract #3 - Hash function RIPEMD160\n          '0x0a06': '0x01'\n          '0x0a07': '0x0ccccccccccccccccccccccccccccccccccccccccccccccccccc000000'\n          '0x0a08': '0x14ef238cfa4075e9ede92f18b1566c1dd0b99aaa'\n          # precompiled contract #4 - Identity\n          '0x0a09': '0x01'\n          '0x0a10': '0x0ccccccccccccccccccccccccccccccccccccccccccccccccccc000000'\n          # precompiled contract #5 - Modular exponentiation\n          '0x0a11': '0x01'\n          '0x0a12': '0x01'\n          # precompiled contract #6 - Addition on elliptic curve alt_bn128\n          '0x0a13': '0x01'\n          '0x0a14': '0x1f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c49'\n          '0x0a15': '0x018683193ae021a2f8920fed186cde5d9b1365116865281ccf884c1f28b1df8f'\n          # precompiled contract #7 - Scalar multiplication on elliptic curve alt_bn128\n          '0x0a16': '0x01'\n          '0x0a17': '0x1f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c49'\n          '0x0a18': '0x018683193ae021a2f8920fed186cde5d9b1365116865281ccf884c1f28b1df8f'\n          # precompiled contract #8 - Checking a pairing equation on curve alt_bn128\n          '0x0a19': '0x01'\n          '0x0a20': '0x01'\n  pre:\n    c000000000000000000000000000000000000000:\n      balance: '1000'\n      nonce: '0'\n      storage:\n        '0x00': '0xdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeaf'\n        '0x01': '0xdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeaf'\n      code: |\n        {\n          [[ 0x00 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed\n          (CALL (GAS) 0xb000000000000000000000000000000000000000 0 0 0 0 0)\n          [[ 0x01 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed\n        }\n    b000000000000000000000000000000000000000:\n      balance: '1000'\n      nonce: '0'\n      storage:\n        '0x00': '0xdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeaf'\n        '0x01': '0xdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeaf'\n      code: |\n        {\n          [[ 0x00 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed\n          (STATICCALL (GAS) 0xa000000000000000000000000000000000000000 0 0 0x0a0000 0x012020)\n          [[ 0x01 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed\n          ;; save results to store\n          [[ 0x0a00 ]] @0x0a0000  [[ 0x0a11 ]] @0x0a1100\n          [[ 0x0a01 ]] @0x0a0100  [[ 0x0a12 ]] @0x0a1200\n          [[ 0x0a02 ]] @0x0a0200  [[ 0x0a13 ]] @0x0a1300\n          [[ 0x0a03 ]] @0x0a0300  [[ 0x0a14 ]] @0x0a1400\n          [[ 0x0a04 ]] @0x0a0400  [[ 0x0a15 ]] @0x0a1500\n          [[ 0x0a05 ]] @0x0a0500  [[ 0x0a16 ]] @0x0a1600\n          [[ 0x0a06 ]] @0x0a0600  [[ 0x0a17 ]] @0x0a1700\n          [[ 0x0a07 ]] @0x0a0700  [[ 0x0a18 ]] @0x0a1800\n          [[ 0x0a08 ]] @0x0a0800  [[ 0x0a19 ]] @0x0a1900\n          [[ 0x0a09 ]] @0x0a0900  [[ 0x0a20 ]] @0x0a2000\n          [[ 0x0a10 ]] @0x0a1000\n        }\n    a000000000000000000000000000000000000000:\n      balance: '1000'\n      nonce: '0'\n      storage: {}\n      code: |\n        {\n          ;; Recovery of ECDSA signature\n          [ 0x00 ] 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c\n          [ 0x20 ] 28\n          [ 0x40 ] 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f\n          [ 0x60 ] 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549\n          ;; zero value\n          [ 0x0a0000 ] (DELEGATECALL (GAS) 1 0 128 0x2000 32)\n          [ 0x0a0100 ] (MOD @0x2000 (EXP 2 160))\n          [ 0x0a0200 ] (EQ (ORIGIN) @0x0a0100)\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x20 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x60 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Hash function SHA256\n          [ 0x00 ] 0x0000000ccccccccccccccccccccccccccccccccccccccccccccccccccc000000\n          ;; zero value\n          [ 0x0a0300 ] (DELEGATECALL (GAS) 2 0 32 0x2000 32)\n          [ 0x0a0400 ] @0\n          [ 0x0a0500 ] @0x2000\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Hash function RIPEMD160\n          [ 0x00 ] 0x0000000ccccccccccccccccccccccccccccccccccccccccccccccccccc000000\n          ;; zero value\n          [ 0x0a0600 ] (DELEGATECALL (GAS) 3 0 32 0x2000 32)\n          [ 0x0a0700 ] @0\n          [ 0x0a0800 ] @0x2000\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Identity\n          [ 0x00 ] 0x0000000ccccccccccccccccccccccccccccccccccccccccccccccccccc000000\n          ;; zero value\n          [ 0x0a0900 ] (DELEGATECALL (GAS) 4 0 32 0x2000 32)\n          [ 0x0a1000 ] @0x2000\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Modular exponentiation\n          [ 0x00 ] 1\n          [ 0x20 ] 32\n          [ 0x40 ] 32\n          [ 0x60 ] 0x03fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc\n          [ 0x80 ] 0x2efffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc\n          [ 0xa0 ] 0x2f00000000000000000000000000000000000000000000000000000000000000\n          ;; zero value\n          [ 0x0a1100 ] (DELEGATECALL (GAS) 5 0 0xa1 0x2000 32)\n          [ 0x0a1200 ] @0x2000\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x20 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x60 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x80 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0xa0 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Addition on elliptic curve alt_bn128\n          [ 0x00 ] 0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd2\n          [ 0x20 ] 0x16da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba\n          [ 0x40 ] 0x1de49a4b0233273bba8146af82042d004f2085ec982397db0d97da17204cc286\n          [ 0x60 ] 0x0217327ffc463919bef80cc166d09c6172639d8589799928761bcd9f22c903d4\n          ;; zero value\n          [ 0x0a1300 ] (DELEGATECALL (GAS) 6 0 128 0x2000 64)\n          [ 0x0a1400 ] @0x2000\n          [ 0x0a1500 ] @0x2020\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x20 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x60 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2020 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Scalar multiplication on elliptic curve alt_bn128\n          [ 0x00 ] 0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd2\n          [ 0x20 ] 0x16da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000003\n          ;; zero value\n          [ 0x0a1600 ] (DELEGATECALL (GAS) 7 0 96 0x2000 64)\n          [ 0x0a1700 ] @0x2000\n          [ 0x0a1800 ] @0x2020\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x20 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2020 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Checking a pairing equation on curve alt_bn128\n          ;; proof.A + vk.A + negateG1(proof.Ap) + P2\n          [ 0x0000 ] 0x1c76476f4def4bb94541d57ebba1193381ffa7aa76ada664dd31c16024c43f59\n          [ 0x0020 ] 0x3034dd2920f673e204fee2811c678745fc819b55d3e9d294e45c9b03a76aef41\n          [ 0x0040 ] 0x209dd15ebff5d46c4bd888e51a93cf99a7329636c63514396b4a452003a35bf7\n          [ 0x0060 ] 0x04bf11ca01483bfa8b34b43561848d28905960114c8ac04049af4b6315a41678\n          [ 0x0080 ] 0x2bb8324af6cfc93537a2ad1a445cfd0ca2a71acd7ac41fadbf933c2a51be344d\n          [ 0x00a0 ] 0x120a2a4cf30c1bf9845f20c6fe39e07ea2cce61f0c9bb048165fe5e4de877550\n          [ 0x00c0 ] 0x111e129f1cf1097710d41c4ac70fcdfa5ba2023c6ff1cbeac322de49d1b6df7c\n          [ 0x00e0 ] 0x2032c61a830e3c17286de9462bf242fca2883585b93870a73853face6a6bf411\n          [ 0x0100 ] 0x198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c2\n          [ 0x0120 ] 0x1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed\n          [ 0x0140 ] 0x090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b\n          [ 0x0160 ] 0x12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\n          ;; zero value\n          [ 0x0a1900 ] (DELEGATECALL (GAS) 8 0 0x0180 0x2000 32)\n          [ 0x0a2000 ] @0x2000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; return all computed values to caller for checking\n          (RETURN 0x0a0000 0x012020)\n        }\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '1000000000000000000'\n      code: ''\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '4000000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: '0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8'\n    to: 'c000000000000000000000000000000000000000'\n    value:\n    - '100'\n"
  },
  {
    "path": "tests/static/state_tests/stStaticFlagEnabled/DelegatecallToPrecompileFromContractInitializationFiller.yml",
    "content": "---\nDelegatecallToPrecompileFromContractInitialization:\n  _info:\n    comment: |\n      Contract B staticcalls contract A.\n      Contract A delegatecalls precompiled contracts.\n      It should execute successfully for each precompiled contract.\n  env:\n    currentCoinbase: '0xcafe000000000000000000000000000000000001'\n    currentDifficulty: '0x20000'\n    currentGasLimit: '10000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data:\n      - !!int 0\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      b000000000000000000000000000000000000000:\n        balance: '1100'\n        storage:\n          '0x00': '0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed'\n          '0x01': '0xfd7776b1a634b0dc19301b174ccf30d4d24070a8'\n          '0x02': '0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed'\n      fd7776b1a634b0dc19301b174ccf30d4d24070a8:\n        storage:\n          '0x00': '0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed'\n          '0x01': '0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed'\n          # precompiled contract #1 - Recovery of ECDSA signature\n          '0x0a00': '0x01'\n          '0x0a01': '0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b'\n          '0x0a02': '0x01'\n          # precompiled contract #2 - Hash function SHA256\n          '0x0a03': '0x01'\n          '0x0a04': '0x0ccccccccccccccccccccccccccccccccccccccccccccccccccc000000'\n          '0x0a05': '0x73f5062fb68ed2a1ec82ff8c73f9251bb9cf53a623bc93527e16bc5ae29dad74'\n          # precompiled contract #3 - Hash function RIPEMD160\n          '0x0a06': '0x01'\n          '0x0a07': '0x0ccccccccccccccccccccccccccccccccccccccccccccccccccc000000'\n          '0x0a08': '0x14ef238cfa4075e9ede92f18b1566c1dd0b99aaa'\n          # precompiled contract #4 - Identity\n          '0x0a09': '0x01'\n          '0x0a10': '0x0ccccccccccccccccccccccccccccccccccccccccccccccccccc000000'\n          # precompiled contract #5 - Modular exponentiation\n          '0x0a11': '0x01'\n          '0x0a12': '0x01'\n          # precompiled contract #6 - Addition on elliptic curve alt_bn128\n          '0x0a13': '0x01'\n          '0x0a14': '0x1f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c49'\n          '0x0a15': '0x018683193ae021a2f8920fed186cde5d9b1365116865281ccf884c1f28b1df8f'\n          # precompiled contract #7 - Scalar multiplication on elliptic curve alt_bn128\n          '0x0a16': '0x01'\n          '0x0a17': '0x1f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c49'\n          '0x0a18': '0x018683193ae021a2f8920fed186cde5d9b1365116865281ccf884c1f28b1df8f'\n          # precompiled contract #8 - Checking a pairing equation on curve alt_bn128\n          '0x0a19': '0x01'\n          '0x0a20': '0x01'\n  pre:\n    b000000000000000000000000000000000000000:\n      balance: '1000'\n      nonce: '0'\n      storage:\n        '0x00': '0xdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeaf'\n        '0x01': '0xdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeaf'\n      code: |\n        {\n          [[ 0x00 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed\n          (CALLDATACOPY 0 0 (CALLDATASIZE))\n          [[ 0x01 ]] (CREATE2 0 0 (CALLDATASIZE) 0x5a175a175a17)\n          [[ 0x02 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed\n        }\n    a000000000000000000000000000000000000000:\n      balance: '1000'\n      nonce: '0'\n      storage: {}\n      code: |\n        {\n          ;; Recovery of ECDSA signature\n          [ 0x00 ] 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c\n          [ 0x20 ] 28\n          [ 0x40 ] 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f\n          [ 0x60 ] 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549\n          ;; zero value\n          [ 0x0a0000 ] (DELEGATECALL (GAS) 1 0 128 0x2000 32)\n          [ 0x0a0100 ] (MOD @0x2000 (EXP 2 160))\n          [ 0x0a0200 ] (EQ (ORIGIN) @0x0a0100)\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x20 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x60 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Hash function SHA256\n          [ 0x00 ] 0x0000000ccccccccccccccccccccccccccccccccccccccccccccccccccc000000\n          ;; zero value\n          [ 0x0a0300 ] (DELEGATECALL (GAS) 2 0 32 0x2000 32)\n          [ 0x0a0400 ] @0\n          [ 0x0a0500 ] @0x2000\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Hash function RIPEMD160\n          [ 0x00 ] 0x0000000ccccccccccccccccccccccccccccccccccccccccccccccccccc000000\n          ;; zero value\n          [ 0x0a0600 ] (DELEGATECALL (GAS) 3 0 32 0x2000 32)\n          [ 0x0a0700 ] @0\n          [ 0x0a0800 ] @0x2000\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Identity\n          [ 0x00 ] 0x0000000ccccccccccccccccccccccccccccccccccccccccccccccccccc000000\n          ;; zero value\n          [ 0x0a0900 ] (DELEGATECALL (GAS) 4 0 32 0x2000 32)\n          [ 0x0a1000 ] @0x2000\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Modular exponentiation\n          [ 0x00 ] 1\n          [ 0x20 ] 32\n          [ 0x40 ] 32\n          [ 0x60 ] 0x03fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc\n          [ 0x80 ] 0x2efffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc\n          [ 0xa0 ] 0x2f00000000000000000000000000000000000000000000000000000000000000\n          ;; zero value\n          [ 0x0a1100 ] (DELEGATECALL (GAS) 5 0 0xa1 0x2000 32)\n          [ 0x0a1200 ] @0x2000\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x20 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x60 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x80 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0xa0 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Addition on elliptic curve alt_bn128\n          [ 0x00 ] 0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd2\n          [ 0x20 ] 0x16da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba\n          [ 0x40 ] 0x1de49a4b0233273bba8146af82042d004f2085ec982397db0d97da17204cc286\n          [ 0x60 ] 0x0217327ffc463919bef80cc166d09c6172639d8589799928761bcd9f22c903d4\n          ;; zero value\n          [ 0x0a1300 ] (DELEGATECALL (GAS) 6 0 128 0x2000 64)\n          [ 0x0a1400 ] @0x2000\n          [ 0x0a1500 ] @0x2020\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x20 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x60 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2020 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Scalar multiplication on elliptic curve alt_bn128\n          [ 0x00 ] 0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd2\n          [ 0x20 ] 0x16da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000003\n          ;; zero value\n          [ 0x0a1600 ] (DELEGATECALL (GAS) 7 0 96 0x2000 64)\n          [ 0x0a1700 ] @0x2000\n          [ 0x0a1800 ] @0x2020\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x20 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2020 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Checking a pairing equation on curve alt_bn128\n          ;; proof.A + vk.A + negateG1(proof.Ap) + P2\n          [ 0x0000 ] 0x1c76476f4def4bb94541d57ebba1193381ffa7aa76ada664dd31c16024c43f59\n          [ 0x0020 ] 0x3034dd2920f673e204fee2811c678745fc819b55d3e9d294e45c9b03a76aef41\n          [ 0x0040 ] 0x209dd15ebff5d46c4bd888e51a93cf99a7329636c63514396b4a452003a35bf7\n          [ 0x0060 ] 0x04bf11ca01483bfa8b34b43561848d28905960114c8ac04049af4b6315a41678\n          [ 0x0080 ] 0x2bb8324af6cfc93537a2ad1a445cfd0ca2a71acd7ac41fadbf933c2a51be344d\n          [ 0x00a0 ] 0x120a2a4cf30c1bf9845f20c6fe39e07ea2cce61f0c9bb048165fe5e4de877550\n          [ 0x00c0 ] 0x111e129f1cf1097710d41c4ac70fcdfa5ba2023c6ff1cbeac322de49d1b6df7c\n          [ 0x00e0 ] 0x2032c61a830e3c17286de9462bf242fca2883585b93870a73853face6a6bf411\n          [ 0x0100 ] 0x198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c2\n          [ 0x0120 ] 0x1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed\n          [ 0x0140 ] 0x090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b\n          [ 0x0160 ] 0x12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\n          ;; zero value\n          [ 0x0a1900 ] (DELEGATECALL (GAS) 8 0 0x0180 0x2000 32)\n          [ 0x0a2000 ] @0x2000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; return all computed values to caller for checking\n          (RETURN 0x0a0000 0x012020)\n        }\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '1000000000000000000'\n      code: ''\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - |\n      {\n        [[ 0x00 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed\n        (STATICCALL (GAS) 0xa000000000000000000000000000000000000000 0 0 0x0a0000 0x012020)\n        [[ 0x01 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed\n        ;; save results to store\n        [[ 0x0a00 ]] @0x0a0000  [[ 0x0a11 ]] @0x0a1100\n        [[ 0x0a01 ]] @0x0a0100  [[ 0x0a12 ]] @0x0a1200\n        [[ 0x0a02 ]] @0x0a0200  [[ 0x0a13 ]] @0x0a1300\n        [[ 0x0a03 ]] @0x0a0300  [[ 0x0a14 ]] @0x0a1400\n        [[ 0x0a04 ]] @0x0a0400  [[ 0x0a15 ]] @0x0a1500\n        [[ 0x0a05 ]] @0x0a0500  [[ 0x0a16 ]] @0x0a1600\n        [[ 0x0a06 ]] @0x0a0600  [[ 0x0a17 ]] @0x0a1700\n        [[ 0x0a07 ]] @0x0a0700  [[ 0x0a18 ]] @0x0a1800\n        [[ 0x0a08 ]] @0x0a0800  [[ 0x0a19 ]] @0x0a1900\n        [[ 0x0a09 ]] @0x0a0900  [[ 0x0a20 ]] @0x0a2000\n        [[ 0x0a10 ]] @0x0a1000\n      }\n    gasLimit:\n    - '4000000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: '0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8'\n    to: 'b000000000000000000000000000000000000000'\n    value:\n    - '100'\n"
  },
  {
    "path": "tests/static/state_tests/stStaticFlagEnabled/DelegatecallToPrecompileFromTransactionFiller.yml",
    "content": "---\nDelegatecallToPrecompileFromTransaction:\n  _info:\n    comment: |\n      Contract B staticcalls contract A.\n      Contract A delegatecalls precompiled contracts.\n      It should execute successfully for each precompiled contract.\n  env:\n    currentCoinbase: '0xcafe000000000000000000000000000000000001'\n    currentDifficulty: '0x20000'\n    currentGasLimit: '10000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      a000000000000000000000000000000000000000:\n        balance: '1000'\n        storage: {}\n      b000000000000000000000000000000000000000:\n        balance: '1100'\n        storage:\n          '0x00': '0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed'\n          '0x01': '0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed'\n          # precompiled contract #1 - Recovery of ECDSA signature\n          '0x0a00': '0x01'\n          '0x0a01': '0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b'\n          '0x0a02': '0x01'\n          # precompiled contract #2 - Hash function SHA256\n          '0x0a03': '0x01'\n          '0x0a04': '0x0ccccccccccccccccccccccccccccccccccccccccccccccccccc000000'\n          '0x0a05': '0x73f5062fb68ed2a1ec82ff8c73f9251bb9cf53a623bc93527e16bc5ae29dad74'\n          # precompiled contract #3 - Hash function RIPEMD160\n          '0x0a06': '0x01'\n          '0x0a07': '0x0ccccccccccccccccccccccccccccccccccccccccccccccccccc000000'\n          '0x0a08': '0x14ef238cfa4075e9ede92f18b1566c1dd0b99aaa'\n          # precompiled contract #4 - Identity\n          '0x0a09': '0x01'\n          '0x0a10': '0x0ccccccccccccccccccccccccccccccccccccccccccccccccccc000000'\n          # precompiled contract #5 - Modular exponentiation\n          '0x0a11': '0x01'\n          '0x0a12': '0x01'\n          # precompiled contract #6 - Addition on elliptic curve alt_bn128\n          '0x0a13': '0x01'\n          '0x0a14': '0x1f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c49'\n          '0x0a15': '0x018683193ae021a2f8920fed186cde5d9b1365116865281ccf884c1f28b1df8f'\n          # precompiled contract #7 - Scalar multiplication on elliptic curve alt_bn128\n          '0x0a16': '0x01'\n          '0x0a17': '0x1f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c49'\n          '0x0a18': '0x018683193ae021a2f8920fed186cde5d9b1365116865281ccf884c1f28b1df8f'\n          # precompiled contract #8 - Checking a pairing equation on curve alt_bn128\n          '0x0a19': '0x01'\n          '0x0a20': '0x01'\n  pre:\n    b000000000000000000000000000000000000000:\n      balance: '1000'\n      nonce: '0'\n      storage:\n        '0x00': '0xdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeaf'\n        '0x01': '0xdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeafdeadbeaf'\n      code: |\n        {\n          [[ 0x00 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed\n          (STATICCALL (GAS) 0xa000000000000000000000000000000000000000 0 0 0x0a0000 0x012020)\n          [[ 0x01 ]] 0xfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeedfeed\n          ;; save results to store\n          [[ 0x0a00 ]] @0x0a0000  [[ 0x0a11 ]] @0x0a1100\n          [[ 0x0a01 ]] @0x0a0100  [[ 0x0a12 ]] @0x0a1200\n          [[ 0x0a02 ]] @0x0a0200  [[ 0x0a13 ]] @0x0a1300\n          [[ 0x0a03 ]] @0x0a0300  [[ 0x0a14 ]] @0x0a1400\n          [[ 0x0a04 ]] @0x0a0400  [[ 0x0a15 ]] @0x0a1500\n          [[ 0x0a05 ]] @0x0a0500  [[ 0x0a16 ]] @0x0a1600\n          [[ 0x0a06 ]] @0x0a0600  [[ 0x0a17 ]] @0x0a1700\n          [[ 0x0a07 ]] @0x0a0700  [[ 0x0a18 ]] @0x0a1800\n          [[ 0x0a08 ]] @0x0a0800  [[ 0x0a19 ]] @0x0a1900\n          [[ 0x0a09 ]] @0x0a0900  [[ 0x0a20 ]] @0x0a2000\n          [[ 0x0a10 ]] @0x0a1000\n        }\n    a000000000000000000000000000000000000000:\n      balance: '1000'\n      nonce: '0'\n      storage: {}\n      code: |\n        {\n          ;; Recovery of ECDSA signature\n          [ 0x00 ] 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c\n          [ 0x20 ] 28\n          [ 0x40 ] 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f\n          [ 0x60 ] 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549\n          ;; zero value\n          [ 0x0a0000 ] (DELEGATECALL (GAS) 1 0 128 0x2000 32)\n          [ 0x0a0100 ] (MOD @0x2000 (EXP 2 160))\n          [ 0x0a0200 ] (EQ (ORIGIN) @0x0a0100)\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x20 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x60 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Hash function SHA256\n          [ 0x00 ] 0x0000000ccccccccccccccccccccccccccccccccccccccccccccccccccc000000\n          ;; zero value\n          [ 0x0a0300 ] (DELEGATECALL (GAS) 2 0 32 0x2000 32)\n          [ 0x0a0400 ] @0\n          [ 0x0a0500 ] @0x2000\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Hash function RIPEMD160\n          [ 0x00 ] 0x0000000ccccccccccccccccccccccccccccccccccccccccccccccccccc000000\n          ;; zero value\n          [ 0x0a0600 ] (DELEGATECALL (GAS) 3 0 32 0x2000 32)\n          [ 0x0a0700 ] @0\n          [ 0x0a0800 ] @0x2000\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Identity\n          [ 0x00 ] 0x0000000ccccccccccccccccccccccccccccccccccccccccccccccccccc000000\n          ;; zero value\n          [ 0x0a0900 ] (DELEGATECALL (GAS) 4 0 32 0x2000 32)\n          [ 0x0a1000 ] @0x2000\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Modular exponentiation\n          [ 0x00 ] 1\n          [ 0x20 ] 32\n          [ 0x40 ] 32\n          [ 0x60 ] 0x03fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc\n          [ 0x80 ] 0x2efffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc\n          [ 0xa0 ] 0x2f00000000000000000000000000000000000000000000000000000000000000\n          ;; zero value\n          [ 0x0a1100 ] (DELEGATECALL (GAS) 5 0 0xa1 0x2000 32)\n          [ 0x0a1200 ] @0x2000\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x20 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x60 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x80 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0xa0 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Addition on elliptic curve alt_bn128\n          [ 0x00 ] 0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd2\n          [ 0x20 ] 0x16da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba\n          [ 0x40 ] 0x1de49a4b0233273bba8146af82042d004f2085ec982397db0d97da17204cc286\n          [ 0x60 ] 0x0217327ffc463919bef80cc166d09c6172639d8589799928761bcd9f22c903d4\n          ;; zero value\n          [ 0x0a1300 ] (DELEGATECALL (GAS) 6 0 128 0x2000 64)\n          [ 0x0a1400 ] @0x2000\n          [ 0x0a1500 ] @0x2020\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x20 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x60 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2020 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Scalar multiplication on elliptic curve alt_bn128\n          [ 0x00 ] 0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd2\n          [ 0x20 ] 0x16da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000003\n          ;; zero value\n          [ 0x0a1600 ] (DELEGATECALL (GAS) 7 0 96 0x2000 64)\n          [ 0x0a1700 ] @0x2000\n          [ 0x0a1800 ] @0x2020\n          [ 0x00 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x20 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x40 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n          [ 0x2020 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; Checking a pairing equation on curve alt_bn128\n          ;; proof.A + vk.A + negateG1(proof.Ap) + P2\n          [ 0x0000 ] 0x1c76476f4def4bb94541d57ebba1193381ffa7aa76ada664dd31c16024c43f59\n          [ 0x0020 ] 0x3034dd2920f673e204fee2811c678745fc819b55d3e9d294e45c9b03a76aef41\n          [ 0x0040 ] 0x209dd15ebff5d46c4bd888e51a93cf99a7329636c63514396b4a452003a35bf7\n          [ 0x0060 ] 0x04bf11ca01483bfa8b34b43561848d28905960114c8ac04049af4b6315a41678\n          [ 0x0080 ] 0x2bb8324af6cfc93537a2ad1a445cfd0ca2a71acd7ac41fadbf933c2a51be344d\n          [ 0x00a0 ] 0x120a2a4cf30c1bf9845f20c6fe39e07ea2cce61f0c9bb048165fe5e4de877550\n          [ 0x00c0 ] 0x111e129f1cf1097710d41c4ac70fcdfa5ba2023c6ff1cbeac322de49d1b6df7c\n          [ 0x00e0 ] 0x2032c61a830e3c17286de9462bf242fca2883585b93870a73853face6a6bf411\n          [ 0x0100 ] 0x198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c2\n          [ 0x0120 ] 0x1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed\n          [ 0x0140 ] 0x090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b\n          [ 0x0160 ] 0x12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\n          ;; zero value\n          [ 0x0a1900 ] (DELEGATECALL (GAS) 8 0 0x0180 0x2000 32)\n          [ 0x0a2000 ] @0x2000\n          [ 0x2000 ] 0x0000000000000000000000000000000000000000000000000000000000000000\n\n          ;; return all computed values to caller for checking\n          (RETURN 0x0a0000 0x012020)\n        }\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '1000000000000000000'\n      code: ''\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '4000000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: '0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8'\n    to: 'b000000000000000000000000000000000000000'\n    value:\n    - '100'\n"
  },
  {
    "path": "tests/static/state_tests/stStaticFlagEnabled/StaticcallForPrecompilesIssue683Filler.yml",
    "content": "---\nStaticcallForPrecompilesIssue683:\n  _info:\n    comment: |\n      Bytecode from issue 683, that initially show the problem with staticcall in hevm.\n      Issue link: https://github.com/ethereum/tests/issues/683\n      Pullrequest link with original bytecode: https://github.com/dapphub/dapptools/pull/360\n  env:\n    currentCoinbase: '0xcafe000000000000000000000000000000000001'\n    currentDifficulty: '0x20000'\n    currentGasLimit: '10000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n  expect:\n  - indexes:\n      data: !!int -1\n      gas: !!int -1\n      value: !!int -1\n    network:\n    - \">=Cancun\"\n    result:\n      <contract:target:0xa000000000000000000000000000000000000000>:\n        balance: '1100'\n        storage:\n          '0x00': '0x01'\n  pre:\n    <contract:target:0xa000000000000000000000000000000000000000>:\n      balance: '1000'\n      nonce: '0'\n      storage: {}\n      code: ':raw 0x600080541515601d576001815580818283305afa15601b578081fd5b005b80818283600160025af15050'\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '1000000000000000000'\n      code: ''\n      nonce: '0'\n      storage: {}\n  transaction:\n    data:\n    - ''\n    gasLimit:\n    - '1000000'\n    gasPrice: '10'\n    nonce: '0'\n    secretKey: '<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>'\n    to: '<contract:target:0xa000000000000000000000000000000000000000>'\n    value:\n    - '100'\n"
  },
  {
    "path": "tests/static/state_tests/stStaticFlagEnabled/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/ABAcalls0Filler.json",
    "content": "{\n    \"ABAcalls0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x24\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"storage\" : {\n                            \"0x26\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ (PC) ]] (CALL 100000 <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 24 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \" { [[ (PC) ]] (ADD 1 (CALL 50000 <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87> 23 0 0 0 0)) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/ABAcalls1Filler.json",
    "content": "{\n    \"ABAcalls1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x26\" : \"0x01\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"storage\" : {\n                            \"0x29\" : \"0x02\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ (PC) ]] (CALL (- (GAS) 100000) <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 24 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \" { [[ (PC) ]] (ADD 1 (CALL (- (GAS) 100000) <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87> 23 0 0 0 0)) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/ABAcalls2Filler.json",
    "content": "{\n    \"ABAcalls2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xc9\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0xc9\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (ADD (SLOAD 0) 1) (CALL (- (GAS) 100000) <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 1 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \" { [[ 0 ]] (ADD (SLOAD 0) 1) (CALL (- (GAS) 100000) <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87> 0 0 0 0 0) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/ABAcalls3Filler.json",
    "content": "{\n    \"ABAcalls3\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun\" ],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x34\"\n                        }\n                    },\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x34\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1025000\",\n                \"code\" : \"{  [[ 0 ]] (ADD (SLOAD 0) 1) (CALL (- (GAS) 100000) <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 1 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \" { [[ 0 ]] (ADD (SLOAD 0) 1) (CALL (- (GAS) 100000) <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87> 0 0 0 0 0) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/ABAcallsSuicide0Filler.json",
    "content": "{\n    \"ABAcallsSuicide0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"storage\" : {\n                            \"0x26\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ (PC) ]] (CALL 100000 <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 24 0 0 0 0) (SELFDESTRUCT <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \"{ [[ (PC) ]] (ADD 1 (CALL 50000 <contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87> 23 0 0 0 0)) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/ABAcallsSuicide1Filler.json",
    "content": "{\n    \"ABAcallsSuicide1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            \n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"storage\" : {\n                        }\n                    },\n                    \"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6\" : {\n            \t\t\t\"shouldnotexist\" : \"1\"\n                    },\n        \t\t    \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n            \t\t\t\"balance\" : \"23\",\n                        \"storage\" : {\n                        }\n        \t\t    },\n        \t\t    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n            \t\t\t\"nonce\" : \"1\"\n        \t\t    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  (MSTORE 0 (CALLDATALOAD 0)) [[ (PC) ]] (CALL (CALLDATALOAD 0) 0x945304eb96065b2a98b57a48a06ae28d285a71b5 24 0 32 0 0)   }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"945304eb96065b2a98b57a48a06ae28d285a71b5\" : {\n                \"balance\" : \"23\",\n                \"code\" : \"{  (MSTORE 0 (CALLDATALOAD 0)) [[ (PC) ]] (ADD 1 (CALL (SUB (CALLDATALOAD 0) 50000) 0x095e7baea6a6c7c4c2dfeb977efac326af552d87 23 0 32 0 0)) (SELFDESTRUCT 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x00000000000000000000000000000000000000000000000000000000000186a0\",\n                \":raw 0x00000000000000000000000000000000000000000000000000000000000486a0\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/Call10Filler.json",
    "content": "{\n    \"Call10\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x0a\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"7000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000\",\n                \"code\" : \"{ (def 'i 0x80) (for {} (< @i 10) [i](+ @i 1) [[ 0 ]](CALL 0xfffffffffff <eoa:0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b> 1 0 50000 0 0) ) [[ 1 ]] @i}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"0x30d40\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/CallRecursiveBomb0Filler.json",
    "content": "{\n    \"CallRecursiveBomb0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"11000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x0139\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"2000000000\",\n                \"code\" : \"{  (CALL 100000000 <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 23 0 0 0 0)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (CALL (- (GAS) 11000) (ADDRESS) 0 0 0 0 0) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"10000000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/CallRecursiveBomb0_OOG_atMaxCallDepthFiller.json",
    "content": "{\n    \"CallRecursiveBomb0_OOG_atMaxCallDepth\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"110000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x02ed\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{ [[ 0 ]] (+ (SLOAD 0) 1) [[ 2 ]] (MUL (DIV @@0 0x0402) 0xfffffffffffffffffff) [[ 1 ]] (CALL (- (GAS) 1024) (ADDRESS) 0 0 (MUL (DIV @@0 0x0402) 0xfffffffffffffffffff) 0 0) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/CallRecursiveBomb1Filler.json",
    "content": "{\n    \"CallRecursiveBomb1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x100\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{  [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (CALL (- (GAS) 15000) (ADDRESS) 0 0 0 0 0)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"20622100\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/CallRecursiveBomb2Filler.json",
    "content": "{\n    \"CallRecursiveBomb2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x100\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{  [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (CALL (- (GAS) 15000) (ADDRESS) 0 0 0 0 0)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"20622099\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/CallRecursiveBomb3Filler.json",
    "content": "{\n    \"CallRecursiveBomb3\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n\t\t\t\t\t\t\t\"0x00\" : \"0x12\",\n\t\t\t\t\t\t\t\"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{  [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (CALL (- (GAS) 224) (ADDRESS) 0 0 0 0 0)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/CallRecursiveBombLog2Filler.json",
    "content": "{\n    \"CallRecursiveBombLog2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"11000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x0142\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{  (CALL 100000000 <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 23 0 0 0 0)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 (GAS)) (LOG0 0 32) [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (CALL (- (GAS) 25000) (ADDRESS) 0 0 0 0 0) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"10000000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/CallRecursiveBombLogFiller.json",
    "content": "{\n    \"CallRecursiveBombLog\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun<Osaka\"],\n                \"result\" : {\n                    \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x0141\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"20000000\",\n                \"code\" : \"{  (CALL 100000000 <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 23 0 0 0 0)  }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG0 0 32) [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (CALL (- (GAS) 25000) (ADDRESS) 0 0 0 0 0) } \",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"10000000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/CallToNameRegistrator0Filler.json",
    "content": "{\n    \"CallToNameRegistrator0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALL 100000 <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 23 0 64 64 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"300000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/CallToNameRegistratorAddressTooBigLeftFiller.json",
    "content": "{\n    \"CallToNameRegistratorAddressTooBigLeft\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALL 1000 0xaa<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 23 0 64 64 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"300000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/CallToNameRegistratorAddressTooBigRightFiller.json",
    "content": "{\n    \"CallToNameRegistratorAddressTooBigRight\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALL 1000 <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>aa 23 0 64 64 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"300000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/CallToNameRegistratorMemOOGAndInsufficientBalanceFiller.json",
    "content": "{\n    \"CallToNameRegistratorMemOOGAndInsufficientBalance\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALL 0xffffffffff <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 23 0 0xffffffffffff 64 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"300000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/CallToNameRegistratorNotMuchMemory0Filler.json",
    "content": "{\n    \"CallToNameRegistratorNotMuchMemory0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALL 500 <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 23 0 64 987654 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"300000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/CallToNameRegistratorNotMuchMemory1Filler.json",
    "content": "{\n    \"CallToNameRegistratorNotMuchMemory1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALL 500 <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 23 987654 0 64 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"290000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/CallToNameRegistratorOutOfGasFiller.json",
    "content": "{\n    \"CallToNameRegistratorOutOfGas\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALL 100 <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 23 0 64 64 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"300000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/CallToNameRegistratorTooMuchMemory0Filler.json",
    "content": "{\n    \"CallToNameRegistratorTooMuchMemory0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALL 500 <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 23 987654321 64 64 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"300000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/CallToNameRegistratorTooMuchMemory1Filler.json",
    "content": "{\n    \"CallToNameRegistratorTooMuchMemory1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALL 500 <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 23 0 9865432 64 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"300000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/CallToNameRegistratorTooMuchMemory2Filler.json",
    "content": "{\n    \"CallToNameRegistratorTooMuchMemory2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALL 500 <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 23 0 64 987654 1) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"300000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/CallToNameRegistratorZeorSizeMemExpansionFiller.json",
    "content": "{\n    \"CallToNameRegistratorZeorSizeMemExpansion\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n\t\t\t\t\t\t\t\"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            },\n\t\t\t{\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALL 5000 <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"500000\", \"50000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/CallToReturn1Filler.json",
    "content": "{\n    \"CallToReturn1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALL 1000 <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 23 0 0 31 1) [[ 1 ]] @0 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \":raw 0x6001600155602a601f536001601ff3\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"300000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/CallToReturn1ForDynamicJump0Filler.json",
    "content": "{\n    \"CallToReturn1ForDynamicJump0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x6001601f60006000601773<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>6103e8f1600055600051565b6023602355\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \":raw 0x6001600155602a601f536001601ff3\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"300000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/CallToReturn1ForDynamicJump1Filler.json",
    "content": "{\n    \"CallToReturn1ForDynamicJump1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x6001601f60006000601773<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>6103e8f160005560005156605b6023602355\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \":raw 0x6001600155602b601f536001601ff3\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"300000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/CalltoReturn2Filler.json",
    "content": "{\n    \"CalltoReturn2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALL 5000 <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 23 0 64 0 2 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \":raw 0x6001600155603760005360026000f2\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"300000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/CreateHashCollisionFiller.json",
    "content": "{\n    \"CreateHashCollision\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n                        }\n                    },\n                    \"d2571607e241ecf590ed94b12d87c94babe36db6\" : {\n                        \"balance\" : \"42\",\n                        \"code\" : \"0x60016001016055\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0x601080600c6000396000f3006000355415600957005b60203560003555) [[ 0 ]] (CREATE 23 3 29) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"d2571607e241ecf590ed94b12d87c94babe36db6\" : {\n                \"balance\" : \"42\",\n                \"code\" : \":raw 0x60016001016055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/PostToReturn1Filler.json",
    "content": "{\n    \"PostToReturn1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n\t\t\t               \"0x01\" : \"0x00\",\n\t\t\t               \"0x02\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[1]](CALL 30000 <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 23 0 64 0 0 ) [[2]] 1 }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \":raw 0x603760005360026000f2\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"300000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/TestNameRegistratorFiller.json",
    "content": "{\n    \"TestNameRegistrator\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa\" : \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/balanceInputAddressTooBigFiller.json",
    "content": "{\n    \"balanceInputAddressTooBig\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (BALANCE <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>aa ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"300000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/callValueFiller.json",
    "content": "{\n    \"callValue\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x0186a0\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[0]] (CALLVALUE) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/callcodeTo0Filler.json",
    "content": "{\n    \"callcodeTo0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[ 0 ]] (CALLCODE 50000 0 1 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/callcodeToNameRegistrator0Filler.json",
    "content": "{\n    \"callcodeToNameRegistrator0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALLCODE 1000 <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 23 0 64 64 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/callcodeToNameRegistratorAddresTooBigLeftFiller.json",
    "content": "{\n    \"callcodeToNameRegistratorAddresTooBigLeft\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALLCODE 1000 0xaa<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 23 0 64 64 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/callcodeToNameRegistratorAddresTooBigRightFiller.json",
    "content": "{\n    \"callcodeToNameRegistratorAddresTooBigRight\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALLCODE 1000 <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>aa 23 0 64 64 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/callcodeToNameRegistratorZeroMemExpanionFiller.json",
    "content": "{\n    \"callcodeToNameRegistratorZeroMemExpanion\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                        }\n                    }\n                }\n            },\n\t\t\t{\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n\t\t\t\t\t\t\t\"0x00\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALLCODE 5000 <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 23 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \":raw 0x6000355415600957005b60203560003555\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"50000\", \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/callcodeToReturn1Filler.json",
    "content": "{\n    \"callcodeToReturn1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALLCODE 50000 <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 23 0 64 0 2 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \":raw 0x6001600155603760005360026000f3\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/callerAccountBalanceFiller.json",
    "content": "{\n    \"callerAccountBalance\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x0de0b6b3a16c9860\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[0]] (balance (caller)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/createNameRegistratorFiller.json",
    "content": "{\n    \"createNameRegistrator\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xd2571607e241ecf590ed94b12d87c94babe36db6\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0x601080600c6000396000f3006000355415600957005b60203560003555) [[ 0 ]] (CREATE 23 3 29) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"300000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/createNameRegistratorOOG_MemExpansionOOVFiller.json",
    "content": "{\n    \"createNameRegistratorOOG_MemExpansionOOV\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"10000\",\n                \"code\" : \"{ (MSTORE 0 0x601080600c6000396000f3006000355415600957005b60203560003555) [[ 0 ]] (CREATE 11000 3 0xffffffffffffffffffffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"300000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/createNameRegistratorOutOfMemoryBonds0Filler.json",
    "content": "{\n    \"createNameRegistratorOutOfMemoryBonds0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0x601080600c6000396000f3006000355415600957005b60203560003555) [[ 0 ]] (CREATE 23 0xfffffffffff 29) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"300000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/createNameRegistratorOutOfMemoryBonds1Filler.json",
    "content": "{\n    \"createNameRegistratorOutOfMemoryBonds1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0x601080600c6000396000f3006000355415600957005b60203560003555) [[ 0 ]] (CREATE 23 3 0xfffffffffff) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"300000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/createNameRegistratorValueTooHighFiller.json",
    "content": "{\n    \"createNameRegistratorValueTooHigh\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"d2571607e241ecf590ed94b12d87c94babe36db6\" : {\n                        \"shouldnotexist\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0x601080600c6000396000f3006000355415600957005b60203560003555) [[ 0 ]] (CREATE 1000000000000000001 3 29) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"100000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"300000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/createNameRegistratorZeroMem2Filler.json",
    "content": "{\n    \"createNameRegistratorZeroMem2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xd2571607e241ecf590ed94b12d87c94babe36db6\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0x601080600c6000396000f3006000355415600957005b60203560003555) [[ 0 ]] (CREATE 23 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"300000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/createNameRegistratorZeroMemExpansionFiller.json",
    "content": "{\n    \"createNameRegistratorZeroMemExpansion\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xd2571607e241ecf590ed94b12d87c94babe36db6\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0x601080600c6000396000f3006000355415600957005b60203560003555) [[ 0 ]] (CREATE 23 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"300000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/createNameRegistratorZeroMemFiller.json",
    "content": "{\n    \"createNameRegistratorZeroMem\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xd2571607e241ecf590ed94b12d87c94babe36db6\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (MSTORE 0 0x601080600c6000396000f3006000355415600957005b60203560003555) [[ 0 ]] (CREATE 23 3 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"300000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/createWithInvalidOpcodeFiller.json",
    "content": "{\n    \"createWithInvalidOpcode\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x444242424245434253f0\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"300000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/currentAccountBalanceFiller.json",
    "content": "{\n    \"currentAccountBalance\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x0de0b6b3a76586a0\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[0]] (balance (address)) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/doubleSelfdestructTestFiller.yml",
    "content": "doubleSelfdestructTest:\n  _info:\n    comment: |\n      The first test case required here \n      https://github.com/ethereum/tests/issues/431#issue-306081539\n\n      Implements: SUC007.0, SUC007.1, SUC007.2, SUC007.3,\n                  SUC008.0, SUC008.1, SUC008.2, SUC008.3\n\n\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x20000'\n    currentGasLimit: '10000000000'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n\n\n  pre:\n    000000000000000000000000000000000000c0de:\n      balance: 1_000_000\n      code: |\n        :yul berlin\n        {\n           // If there's data, call this again and then\n           // try to selfdestruct.\n           // Necessary to use data, because delegatecall and staticcall don't\n           // affect calldata\n           if gt(calldatasize(), 2) {\n             // Type of call to make\n             let opcode := shr(248, calldataload(0))\n\n             // Address for caller selfdestruct\n             let caller_ff := and(shr(232, calldataload(0)), 0xFFFF)\n\n             // Address for called selfdestruct, which we need to send with the call\n             let called_ff := and(shr(216, calldataload(0)), 0xFFFF)\n             mstore8(0, and(shr(8, called_ff), 0xFF))\n             mstore8(1, and(called_ff, 0xFF))\n\n             if eq(opcode, 0xF1) { pop(call(gas(), 0xc0de, 0, 0,2, 0,0)) }\n             if eq(opcode, 0xF2) { pop(callcode(gas(), 0xc0de, 0, 0,2, 0,0)) }\n             if eq(opcode, 0xF4) { pop(delegatecall(gas(), 0xc0de, 0,2, 0,0)) }\n             if eq(opcode, 0xFA) { pop(staticcall(gas(), 0xc0de, 0,2, 0,0)) }\n             selfdestruct(caller_ff)\n           }\n\n           // If there are only two bytes of call data, that is the\n           // selfdestruct address\n           let called_ff := and(shr(240, calldataload(0)), 0xFFFF)\n           if eq(calldatasize(), 2) {\n             selfdestruct(called_ff)\n           }\n        }\n      nonce: 1\n      storage: {}\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '1000000000000000000'\n      code: 0x\n      nonce: 1\n      storage: {}\n\n\n\n  transaction:\n    data:\n    # Byte    1 is the call opcode to use\n    # Bytes 2-3 are the address for a caller selfdestruct\n    # Bytes 4-5 are the address for a called selfdestruct\n    #\n    - :label called-self-destruct :raw 0xF110011002   # CALL\n    - :label called-self-destruct :raw 0xF210011002   # CALLCODE\n    - :label called-self-destruct :raw 0xF410011002   # DELEGATECALL\n\n    # In the case of STATICCALL the called SELFDESTRUCT is ineffective.\n    - :label caller-self-destruct :raw 0xFA10011002   # STATICCALL\n\n    # When the called is 0xC0DE, the balance is destroyed\n    - :label code-self-destruct :raw 0xF11001c0de   # CALL\n    - :label code-self-destruct :raw 0xF21001c0de   # CALLCODE\n    - :label code-self-destruct :raw 0xF41001c0de   # DELEGATECALL\n\n    # In the case of STATICCALL the called SELFDESTRUCT is ineffective.\n    - :label caller-self-destruct :raw 0xFA1001c0de   # STATICCALL\n\n    gasLimit:\n    - 16777216\n    gasPrice: 10\n    nonce: 1\n    secretKey: 45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\n    to: 000000000000000000000000000000000000c0de\n    value:\n    - 1\n\n\n\n  expect:\n  - indexes:\n      data:\n      - :label called-self-destruct\n    network:\n    - '>=Cancun'\n    result:\n      # Caller self destruct\n      0000000000000000000000000000000000001001:\n        shouldnotexist: 1\n      # Called self destruct\n      0000000000000000000000000000000000001002:\n        balance: 1_000_001\n\n\n\n\n  - indexes:\n      data:\n      - :label caller-self-destruct\n    network:\n    - '>=Cancun'\n    result:\n      # Caller self destruct\n      0000000000000000000000000000000000001001:\n        balance: 1000001\n        nonce: 0\n      # Called self destruct\n      0000000000000000000000000000000000001002:\n        shouldnotexist: 1\n      # The code itself\n      000000000000000000000000000000000000c0de:\n        nonce: 1\n\n\n\n  - indexes:\n      data:\n      - :label code-self-destruct\n    network:\n    - '>=Cancun'\n    result:\n      # Caller self destruct\n      0000000000000000000000000000000000001001:\n        balance: 1000001\n        nonce: 0\n      # Called self destruct\n      000000000000000000000000000000000000c0de:\n        nonce: 1\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/doubleSelfdestructTouch_ParisFiller.yml",
    "content": "doubleSelfdestructTouch_Paris:\n  _info:\n    comment: |\n      A single contract can execute SELFDESTRUCT multiple times using by being called\n      multiple times. The second and later SELFDESTRUCTs have little effect but can\n      touch some new beneficiary addresses.\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 1\n    currentGasLimit: 30000000\n    currentNumber: 1\n    currentTimestamp: 999\n\n  pre:\n    # Tx sender\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      nonce: 0\n      balance: 100000002\n      storage: {}\n      code: ''\n\n    # Tx target contract\n    <contract:target:0x000000000000000000000000000000000000c0de>:\n      nonce: 0\n      balance: 0\n      storage: {}\n      code: |\n        :yul berlin\n        {\n          let v0 := callvalue()\n          let v1 := shr(1, v0)\n          let r1 := call(70000, <contract:0x000000000000000000000000000000000000dead>, v1, 0, 0, 0, 0)\n          let v2 := sub(v0, v1)\n          let r2 := call(70000, <contract:0x000000000000000000000000000000000000dead>, v2, 0, 0, 0, 0)\n        }\n\n    # Selfdestruct\n    <contract:0x000000000000000000000000000000000000dead>:\n      nonce: 0\n      balance: 0\n      storage:\n        0: 0\n        1: <eoa:empty_account_1:0x0000000000000000000000000000000000e49701>\n        2: <eoa:empty_account_2:0x0000000000000000000000000000000000e49702>\n      code: |\n        :yul berlin \n        {\n          let index := add(sload(0), 1)\n          sstore(0, index)\n          selfdestruct(sload(index))\n        }\n\n    # Empty account 1\n    <eoa:empty_account_1:0x0000000000000000000000000000000000e49701>:\n      nonce: 0\n      balance: 10\n      storage: {}\n      code: \"\"\n\n    # Empty account 2\n    <eoa:empty_account_2:0x0000000000000000000000000000000000e49702>:\n      nonce: 0\n      balance: 10\n      storage: {}\n      code: \"\"\n\n  transaction:\n    data:\n      - ''\n    gasLimit:\n      - 10000000\n    gasPrice: 10\n    nonce: 0\n    to: <contract:target:0x000000000000000000000000000000000000c0de>\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    value:\n      - 0  # Sends no value\n      - 1  # Sends 1 value to the second empty account 0xe49702\n      - 2  # Sends 1 value to both empty accounts 0xe49701 and 0xe49702\n\n  expect:\n    - indexes:\n        data: !!int -1\n        gas: !!int -1\n        value: !!int 0\n      network:\n        - \">=Cancun\"\n      result:\n        <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n          nonce: 1\n        <contract:target:0x000000000000000000000000000000000000c0de>:\n          nonce: 0\n          balance: 0\n          storage: {}\n        <eoa:empty_account_1:0x0000000000000000000000000000000000e49701>:\n          balance: 10\n        <eoa:empty_account_2:0x0000000000000000000000000000000000e49702>:\n          balance: 10\n\n    - indexes:\n        data: !!int -1\n        gas: !!int -1\n        value: !!int 1\n      network:\n        - \">=Cancun\"\n      result:\n        <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n          nonce: 1\n        <contract:target:0x000000000000000000000000000000000000c0de>:\n          nonce: 0\n          balance: 0\n          storage: {}\n        <eoa:empty_account_1:0x0000000000000000000000000000000000e49701>:\n          balance: 10\n        <eoa:empty_account_2:0x0000000000000000000000000000000000e49702>:\n          nonce: 0\n          balance: 11  # Received via SELFDESTRUCT\n\n    - indexes:\n        data: !!int -1\n        gas: !!int -1\n        value: !!int 2\n      network:\n        - \">=Cancun\"\n      result:\n        <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n          nonce: 1\n        <contract:target:0x000000000000000000000000000000000000c0de>:\n          nonce: 0\n          balance: 0\n          storage: {}\n        <eoa:empty_account_1:0x0000000000000000000000000000000000e49701>:\n          nonce: 0\n          balance: 11  # Received via SELFDESTRUCT\n        <eoa:empty_account_2:0x0000000000000000000000000000000000e49702>:\n          nonce: 0\n          balance: 11  # Received via SELFDESTRUCT\n\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/extcodecopyFiller.json",
    "content": "{\n    \"extcodecopy\" : {\n\t\t\"_info\" : {\n\t\t\t\"comment\" : \"God knows what is happening in this test\"\n\t\t},\n        \"env\" : {\n            \"currentCoinbase\" : \"4401fcaf7d64d53fb1cfc5c9045c32aa919a8c82\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x58272e28\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"00000000002147c39fd6b5c19b7b89fc003e6b16\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"4401fcaf7d64d53fb1cfc5c9045c32aa919a8c82\" : {\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x05c81eb0\",\n                \"code\" : \":raw 0x7f15688566a82f5f946c68028bf626b349e495daa43e33529a76437ac416cd1b7d6e7dae7454bb193b1c28e64a6a935bc373cea0c5cc171fa61277e5604a3bc8aef4de3d38820658600b80797ada6e82e95f6520383f95f5c7dae56b4dc13b6f22ecabfce07c3cff51\",\n                \"nonce\" : \"0xfe\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"0x4d6769f8\",\n                \"code\" : \":raw 0x5a60106017601160116018601c600f601b601d5f60026013600f601a8d5a5b7679177b5dd41a23db52998c4dcd14e88390dcc9f3ed5783601660145f6013600d601f60016011600e600c600d601f60138c7a58f20fd882eb51408a52e569ce80e93270ab53ae9de3fec5498a5c72ce1fcd11bb1553736959df779a616b738c1f407c12459490afe302da311a673488d09e71041d0761dee4829e3c38e0b1b1787810f2e11e2289983c1ab47cf5ebd38c12f1719232b5f3a7b27a9ea8858a071c4169392ec725646311235cbd9534e5d7cd8cb5e2287738a43f803384f4e62fe6629ea2e609a71759edab5c3a58b87e94c95f710aa6059b0663c9f374ce6ea0a000c5d594c41252d4a74d64896a987cc57c24df2ce8ffb85adcc27dce2d19f7006fbc1c5a7b79a319418fd6c27ddebcf170192262d82c1053333f6115c8b258b81e2e84d723c98dbd4535de7f922723a15827bbcfd07f9e2c5027c7736ed68c61b332059d7ec1bae1c1fd41a361d35b996d9740a588b6abf3293236afb927717328c014846148ce67eaf2b33d90672366dafeaae0714eb39e7fd5076a831d8eb4a3546288a3e1a0087aebe80b6bbfa4041330b05d094a697236fe7654d8a7ce630f83a832620125d781666e898f7fdcfd0031\",\n                \"nonce\" : \"0xdd\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x4f6ca7b90ceb5fd4\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x6e27b0577f2549e5fa01e3db96e7b03a62e489115538620295677faf15040c1c1796bad130e2462a8b8d6bbe0fa35bf12087047ef4ff4e66df8772196b4401998ff7f4219c013a0d927b22d8d3fdf625809abb182507d180e687b666f4f1e4f3b8172e87760f436c701264b89739f3d7c50ec524f16b1a4f91397b760a5209b9b7710544694ecf2729643b3ca545c7\"\n            ],\n            \"gasLimit\" : [\n                \"0x186a0\"\n            ],\n            \"gasPrice\" : \"0x1cd49878\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x24a39757\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/multiSelfdestructFiller.yml",
    "content": "multiSelfdestruct:\n\n  _info:\n    comment: |\n       Implements: SUC000, SUC001, SUC002, SUC003, SUC004, SUC005\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: 0x20000\n    currentGasLimit: 0xFF112233445566\n    currentNumber: 1\n    currentTimestamp: 1000\n    currentBaseFee: 1000\n\n\n  pre:\n\n    # Suicidal contract.\n    # Byte 0: What do to\n    #    00 - nothing\n    #    01-FE - transfer that many wei\n    #    FF - self destruct\n    # Bytes 1&2: Recipient address\n    000000000000000000000000000000000000dead:\n      balance: 3\n      nonce: 1\n      code: |\n        :yul berlin\n        {\n           let operation := shr(248, calldataload(0))\n           let recipient := and(shr(232, calldataload(0)), 0xFFFF)\n\n           // Don't do anything\n           if eq(operation, 0) {\n             stop()\n           }\n\n           // Selfdestruct\n           if eq(operation, 0xFF) {\n             selfdestruct(recipient)\n           }\n\n           // Send value\n           // If the call fails, revert\n           if eq(call(gas(), recipient, operation, 0,0, 0,0),0) {\n              revert(0,0)\n           }\n          \n        }\n      storage: {}\n\n\n\n    # Run the tests. One parameter (single byte)\n    #   01 - SUC001, does not suicide, just receive more funds via call. \n    #        check the balance of contractA \n    #        (must be 0, the second transfer funds erased)\n    #   02 - SUC002 does another suicide to dest1 (so dest1 now have 3 + x)\n    #   03 - SUC003 does another suicide to dest2 (so both dest1 and dest2 have \n    #        some balance)\n    #   04 - SUC004 tries to make value transfer but fails because initial suicide\n    #          0ed the balance (answering this (check that it is immediately \n    #          and not by the end of tx))\n    #   05 - SUC005 receives more funds and try to transfer it \n    #          (same as SUC004, but this time work because it received funds \n    #          via 2nd call)\n\n\n    cccccccccccccccccccccccccccccccccccccccc:\n      balance: 100000000\n      nonce: 1\n      code: |\n          :yul berlin\n          {\n             let delme\n\n             // Selfdestruct, send balance to 0x1000\n             // SUC000\n             mstore8(0, 0xFF)\n             mstore8(1, 0x10)\n             mstore8(2, 0x00)\n             delme := call(gas(), 0xdead, 0, 0,3, 0,0)\n             sstore(0x00, delme)\n             sstore(0x01, balance(0x1000))\n             sstore(0x02, balance(0xdead))\n\n             let test := shr(248, calldataload(0))\n             switch test \n             case 1 {\n                 // call with all zeros, so it won't do anything\n                 delme := call(gas(), 0xdead, 2, 3,3, 0,0)\n             }\n             case 2 {\n                 // Another suicide to 0x1000\n                 delme := call(gas(), 0xdead, 2, 0,3, 0,0)\n             }\n             case 3 {\n                 // Suicide to 0x1001\n                 mstore8(2, 1)\n                 delme := call(gas(), 0xdead, 2, 0,3, 0,0)\n             }\n             case 4 {\n                 // Attempt to transfer WEI you don't have to 0x1001\n                 mstore8(0,1)\n                 mstore8(2,1)\n                 delme := call(gas(), 0xdead, 0, 0,3, 0,0)\n             }\n             case 5 {\n                 // Attempt to transfer WEI you do have to 0x1001\n                 mstore8(0,1)\n                 mstore8(2,1)\n                 delme := call(gas(), 0xdead, 2, 0,3, 0,0)\n             }\n             default {\n                 revert(0,0)\n             }\n\n             // Store the results\n             sstore(0x10, delme)\n             sstore(0x11, balance(0x1000))\n             sstore(0x12, balance(0xdead))\n             sstore(0x13, balance(0x1001))\n\n          }\n      storage:\n        0x00: 0x60A7\n        0x01: 0x60A7\n        0x10: 0x60A7\n        0x11: 0x60A7\n        0x12: 0x60A7\n        0x13: 0x60A7\n\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      balance: '1000000000000000000'\n      code: '0x'\n      nonce: 1\n      storage: {}\n\n\n  transaction:\n    data: \n    - :raw 0x01\n    - :raw 0x02\n    - :raw 0x03\n    - :raw 0x04\n    - :raw 0x05\n    gasLimit:\n    - 10000000\n    gasPrice: 1000\n    nonce: 1\n    to: cccccccccccccccccccccccccccccccccccccccc\n    value:\n    - 0\n    secretKey: \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\"\n\n\n  expect:\n    # SUC001\n    - indexes:\n        data: !!int 0\n\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 1   # Call to 0xDEAD was successful\n            0x01: 3   # All wei transferred to 0x1000\n            0x02: 0   # 0xDEAD didn't keep any\n            0x10: 1   # Second call to 0xDEAD was successful\n            0x11: 3   # WEI balance of 0x1000, unchanged\n            0x12: 2   # WEI balance of 0xDEAD, not zeroed out yet\n\n        # Now (post tx) 0xDEAD no longer exists, so balance=0\n        000000000000000000000000000000000000dead:\n          balance: 2\n          nonce: 1\n\n\n\n    # SUC002\n    - indexes:\n        data: !!int 1\n\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 1   # Call to 0xDEAD was successful\n            0x01: 3   # All wei transferred to 0x1000\n            0x02: 0   # 0xDEAD didn't keep any\n            0x10: 1   # Second call to 0xDEAD was successful\n            0x11: 5   # WEI balance of 0x1000, two more WEI transferred\n            0x12: 0   # WEI balance of 0xDEAD, zeroed by second selfdestruct\n\n        # Now (post tx) 0xDEAD no longer exists, so balance=0\n        000000000000000000000000000000000000dead:\n          nonce: 1\n          balance: 0\n\n\n\n\n    # SUC003\n    - indexes:\n        data: !!int 2\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 1   # Call to 0xDEAD was successful\n            0x01: 3   # All wei transferred to 0x1000\n            0x02: 0   # 0xDEAD didn't keep any\n            0x10: 1   # Second call to 0xDEAD was successful\n            0x11: 3   # WEI balance of 0x1000\n            0x12: 0   # WEI balance of 0xDEAD, zeroed by second selfdestruct\n            0x13: 2   # WEI balance of 0x1001\n\n        # Now (post tx) 0xDEAD no longer exists, so balance=0\n        000000000000000000000000000000000000dead:\n          nonce: 1\n          balance: 0\n\n\n\n    # SUC004\n    - indexes:\n        data: !!int 3\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 1   # Call to 0xDEAD was successful\n            0x01: 3   # All wei transferred to 0x1000\n            0x02: 0   # 0xDEAD didn't keep any\n            0x10: 0   # Second call to 0xDEAD failed\n            0x11: 3   # WEI balance of 0x1000\n            0x12: 0   # WEI balance of 0xDEAD, still zero\n            0x13: 0   # WEI balance of 0x1001, zero because the transfer failed\n\n        # Now (post tx) 0xDEAD no longer exists, so balance=0\n        000000000000000000000000000000000000dead:\n            balance: 0\n            nonce: 1\n\n\n\n    # SUC005\n    - indexes:\n        data: !!int 4\n      network:\n        - '>=Cancun'\n      result:\n        cccccccccccccccccccccccccccccccccccccccc:\n          storage:\n            0x00: 1   # Call to 0xDEAD was successful\n            0x01: 3   # All wei transferred to 0x1000\n            0x02: 0   # 0xDEAD didn't keep any\n            0x10: 1   # Second call to 0xDEAD successful\n            0x11: 3   # WEI balance of 0x1000\n            0x12: 1   # WEI balance of 0xDEAD, one (2-1)\n            0x13: 1   # WEI balance of 0x1001, one (because that's how much we transfer)\n\n        # Now (post tx) 0xDEAD no longer exists, so balance=0\n        000000000000000000000000000000000000dead:\n          balance: 1\n          nonce: 1\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/return0Filler.json",
    "content": "{\n    \"return0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \"{ (MSTORE8 0 55) (RETURN 0 1)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/return1Filler.json",
    "content": "{\n    \"return1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \"{ (MSTORE8 0 55) (RETURN 0 2)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/return2Filler.json",
    "content": "{\n    \"return2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \"{ (MSTORE8 0 55) (RETURN 0 33)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/suicideAddressFiller.json",
    "content": "{\n    \"suicideAddress\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n    \t\t\t        \"balance\" : \"1000000000000100000\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[0]] (ADDRESS) (SELFDESTRUCT (ADDRESS))}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/suicideCallerAddresTooBigLeftFiller.json",
    "content": "{\n    \"suicideCallerAddresTooBigLeft\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    },\n\t\t            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n    \t\t\t        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\"\n                        }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[0]] (CALLER) (SELFDESTRUCT 0xaaa94f5374fce5edbc8e2a8697c15331677e6ebf0b)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/suicideCallerAddresTooBigRightFiller.json",
    "content": "{\n    \"suicideCallerAddresTooBigRight\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"4f5374fce5edbc8e2a8697c15331677e6ebf0baa\" : {\n                        \"balance\" : \"1000000000000100000\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"095e7baea6a6c7c4c2dfeb977efac326af552d87\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[0]] (CALLER) (SELFDESTRUCT 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0baa)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"095e7baea6a6c7c4c2dfeb977efac326af552d87\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/suicideCallerFiller.json",
    "content": "{\n    \"suicideCaller\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"1\"\n                    },\n    \t\t        \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n        \t\t\t    \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\"\n                        }\n        \t\t    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[0]] (CALLER) (SELFDESTRUCT (CALLER))}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/suicideNotExistingAccountFiller.json",
    "content": "{\n    \"suicideNotExistingAccount\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"aa1722f3947def4cf144679da39c4c32bdc35681\" : {\n                        \"balance\" : \"1000000000000100000\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (SELFDESTRUCT 0xaa1722f3947def4cf144679da39c4c32bdc35681 )}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/suicideOriginFiller.json",
    "content": "{\n    \"suicideOrigin\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"1\"\n                    },\n\t\t            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"balance\" : \"0\",\n    \t\t\t        \"storage\" : {\n                            \"0x00\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\"\n                        }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ [[0]] (ORIGIN) (SELFDESTRUCT (ORIGIN))}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/suicideSendEtherPostDeathFiller.json",
    "content": "{\n    \"suicideSendEtherPostDeath\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x989680\",\n            \"currentNumber\" : \"0x01\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"1\"\n                    },\n\t\t            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"nonce\" : \"0\",\n                        \"balance\" : \"0\",\n    \t\t\t        \"storage\" : {\n                        },\n                        \"code\" : \"0x60606040526000357c01000000000000000000000000000000000000000000000000000000009004806335f46994146100445780634d536fe31461005157610042565b005b61004f600450610072565b005b61005c60045061008d565b6040518082815260200191505060405180910390f35b3073ffffffffffffffffffffffffffffffffffffffff16ff5b565b600060003073ffffffffffffffffffffffffffffffffffffffff166335f46994604051817c01000000000000000000000000000000000000000000000000000000000281526004018090506000604051808303816000876161da5a03f115610002575050503073ffffffffffffffffffffffffffffffffffffffff163190503373ffffffffffffffffffffffffffffffffffffffff16600082604051809050600060405180830381858888f1935050505050809150610147565b509056\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x60606040526000357c01000000000000000000000000000000000000000000000000000000009004806335f46994146100445780634d536fe31461005157610042565b005b61004f600450610072565b005b61005c60045061008d565b6040518082815260200191505060405180910390f35b3073ffffffffffffffffffffffffffffffffffffffff16ff5b565b600060003073ffffffffffffffffffffffffffffffffffffffff166335f46994604051817c01000000000000000000000000000000000000000000000000000000000281526004018090506000604051808303816000876161da5a03f115610002575050503073ffffffffffffffffffffffffffffffffffffffff163190503373ffffffffffffffffffffffffffffffffffffffff16600082604051809050600060405180830381858888f1935050505050809150610147565b509056\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0x0de0b6b3a7640000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"0x4d536fe3\"\n            ],\n            \"gasLimit\" : [\n                \"0x2dc6c0\"\n            ],\n            \"gasPrice\" : \"0x0a\",\n            \"nonce\" : \"0x00\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0x0186a0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/suicideSendEtherToMeFiller.json",
    "content": "{\n    \"suicideSendEtherToMe\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"balance\" : \"999999999999639980\",\n                        \"nonce\" : \"1\"\n                    },\n\t\t            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n    \t\t\t        \"balance\" : \"1000000000000100000\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {}\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{ (SELFDESTRUCT (ADDRESS) )}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stSystemOperationsTest/testRandomTestFiller.json",
    "content": "{\n    \"testRandomTest\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6\" : {\n                        \"nonce\" : \"2\",\n                        \"storage\" : {\n                            \"0xebcce5f60530275ee9318ce1eff9e4bfee810172\" : \"0x03e8\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \":raw 0x424443444243434383f0155af055\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"300000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stTimeConsuming/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stTimeConsuming/sstore_combinations_initial00_2_ParisFiller.json",
    "content": "{\n    \"sstore_combinations_initial00_2_Paris\" : {\n\t    \"_info\" : {\n\t        \"comment\" : \"sstore 0 -> {calltype} -> change to {0, 1, 2} |-> {calltype} -> {non, oog, revert} |-> {calltype} -> change to {0, 1, 2} |-> {non, oog, revert}\",\n\t\t\t\"pytest_marks\": [\"slow\"]\n\t    },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t    \"2000000000000000000000000000000000000000\" : {\n            \t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t                \"storage\" : {\n    \t\t\t            \"0x01\" : \"0x01\"\n\t\t                }\n        \t\t    },\n        \t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n            \t\t\t\"nonce\" : \"1\"\n        \t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] 0  [[1]] 1  [[2]] 2 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b100000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] 0  [[1]] 1  [[2]] 2 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t            \"0x00\" : \"0x01\",\n\t\t            \"0x01\" : \"0x01\",\n\t\t            \"0x02\" : \"0x01\"\n                }\n            },\n    \t    \"b200000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] 0  [[1]] 1  [[2]] 2 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t            \"0x00\" : \"0x02\",\n\t\t            \"0x01\" : \"0x02\",\n\t\t            \"0x02\" : \"0x02\"\n                }\n            },\n    \t    \"1000000000000000000000000000000000000000\" : {\n                \"balance\" : \"10\",\n                \"//code\" : \"do nothing\",\n                \"code\" : \"\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t            \"0x00\" : \"0x01\",\n\t\t            \"0x01\" : \"0x01\",\n\t\t            \"0x02\" : \"0x01\"\n                }\n            },\n    \t    \"2000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n        \t\t\"//code\" : \"runs oog\",\n                \"code\" : \"{ [[1]] 1 [[1]] 0 [[2]] 1 [[2]] 0 [[3]] 1 [[3]] 0 [[4]] 1 [[4]] 0 [[5]] 1 [[5]] 0 [[6]] 1 [[6]] 0 [[7]] 1 [[7]] 0 [[8]] 1 [[8]] 0 [[9]] 1 [[9]] 0 [[10]] 1 [[10]] 0 [[11]] 1 [[11]] 0 [[12]] 1 [[12]] 0 [[13]] 1 [[13]] 0 [[14]] 1 [[14]] 0 [[15]] 1 [[15]] 0 [[16]] 1 [[16]] 0  [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n    \t    \"3000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"//code\" : \"do revert\",\n                \"code\" : \"{ (REVERT 0 32) }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t            \"0x00\" : \"0x02\",\n\t\t            \"0x01\" : \"0x02\",\n\t\t            \"0x02\" : \"0x02\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\"{ (MSTORE 100 426) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 427) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 428) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 429) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 430) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 431) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 432) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 433) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 434) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 435) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 436) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 437) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 438) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 439) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 440) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 441) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 442) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 443) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 444) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 445) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 446) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 447) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 448) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 449) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 450) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 451) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 452) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 453) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 454) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 455) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 456) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 457) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 458) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 459) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 460) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 461) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 462) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 463) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 464) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 465) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 466) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 467) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 468) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 469) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 470) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 471) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 472) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 473) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 474) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 475) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 476) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 477) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 478) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 479) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 480) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 481) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 482) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 483) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 484) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 485) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 486) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 487) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 488) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 489) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 490) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 491) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 492) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 493) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 494) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 495) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 496) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 497) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 498) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 499) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 500) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 501) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 502) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 503) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 504) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 505) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 506) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 507) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 508) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 509) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 510) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 511) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 512) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 513) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 514) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 515) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 516) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 517) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 518) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 519) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 520) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 521) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 522) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 523) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 524) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 525) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 526) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 527) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 528) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 529) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 530) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 531) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 532) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 533) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 534) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 535) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 536) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 537) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 538) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 539) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 540) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 541) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 542) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 543) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 544) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 545) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 546) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 547) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 548) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 549) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 550) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 551) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 552) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 553) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 554) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 555) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 556) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 557) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 558) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 559) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 560) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 561) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 562) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 563) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 564) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 565) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 566) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 567) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 568) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 569) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 570) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 571) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 572) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 573) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 574) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 575) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 576) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 577) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 578) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 579) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 580) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 581) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 582) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 583) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 584) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 585) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 586) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 587) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 588) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 589) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 590) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 591) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 592) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 593) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 594) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 595) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 596) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 597) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 598) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 599) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 600) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 601) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 602) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 603) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 604) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 605) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 606) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 607) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 608) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 609) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 610) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 611) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 612) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 613) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 614) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 615) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 616) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 617) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 618) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 619) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 620) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 621) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 622) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 623) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 624) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 625) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 626) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 627) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 628) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 629) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 630) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 631) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 632) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 633) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 634) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 635) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 636) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 637) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 638) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 639) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 640) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 641) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 642) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 643) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 644) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 645) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 646) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 647) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 648) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 649) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 650) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 651) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 652) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 653) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 654) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 655) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 656) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 657) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 658) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 659) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 660) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 661) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 662) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 663) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 664) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 665) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 666) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 667) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 668) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 669) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 670) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 671) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 672) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 673) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 674) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 675) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 676) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 677) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 678) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 679) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 680) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 681) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 682) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 683) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 684) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 685) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 686) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 687) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 688) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 689) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 690) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 691) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 692) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 693) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 694) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 695) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 696) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 697) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 698) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 699) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 700) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 701) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 702) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 703) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 704) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 705) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 706) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 707) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 708) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 709) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 710) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 711) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 712) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 713) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 714) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 715) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 716) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 717) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 718) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 719) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 720) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 721) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 722) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 723) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 724) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 725) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 726) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 727) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 728) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 729) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 730) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 731) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 732) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 733) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 734) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 735) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 736) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 737) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 738) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 739) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 740) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 741) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 742) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 743) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 744) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 745) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 746) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 747) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 748) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 749) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 750) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 751) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 752) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 753) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 754) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 755) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 756) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 757) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 758) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 759) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 760) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 761) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 762) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 763) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 764) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 765) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 766) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 767) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 768) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 769) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 770) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 771) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 772) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 773) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 774) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 775) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 776) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 777) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 778) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 779) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 780) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 781) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 782) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 783) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 784) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 785) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 786) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 787) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 788) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 789) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 790) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 791) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 792) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 793) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 794) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 795) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 796) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 797) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 798) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 799) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 800) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 801) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 802) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 803) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 804) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 805) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 806) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 807) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 808) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 809) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 810) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 811) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 812) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 813) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 814) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 815) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 816) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 817) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 818) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 819) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 820) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 821) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 822) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 823) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 824) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 825) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 826) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 827) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 828) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 829) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 830) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 831) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 832) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 833) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 834) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 835) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 836) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 837) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 838) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 839) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 840) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 841) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 842) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 843) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 844) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 845) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 846) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 847) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 848) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 849) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \"\n\t   ],\n            \"gasLimit\" : [\n                \"2000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stTimeConsuming/sstore_combinations_initial00_ParisFiller.json",
    "content": "{\n    \"sstore_combinations_initial00_Paris\" : {\n\t    \"_info\" : {\n\t        \"comment\" : \"sstore 0 -> {calltype} -> change to {0, 1, 2} |-> {calltype} -> {non, oog, revert} |-> {calltype} -> change to {0, 1, 2} |-> {non, oog, revert}\",\n\t\t\t\"pytest_marks\": [\"slow\"]\n\t    },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t        {\n        \t\t\"//comment\" : \"\",\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t    \t        \"2000000000000000000000000000000000000000\" : {\n            \t\t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t                \"storage\" : {\n\t\t\t            \"0x01\" : \"0x01\"\n\t\t                }\n        \t\t    },\n\t\t            \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n    \t\t\t        \"nonce\" : \"1\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] 0  [[1]] 1  [[2]] 2 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b100000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] 0  [[1]] 1  [[2]] 2 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t            \"0x00\" : \"0x01\",\n\t\t            \"0x01\" : \"0x01\",\n\t\t            \"0x02\" : \"0x01\"\n                }\n            },\n    \t    \"b200000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] 0  [[1]] 1  [[2]] 2 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t            \"0x00\" : \"0x02\",\n\t\t            \"0x01\" : \"0x02\",\n\t\t            \"0x02\" : \"0x02\"\n                }\n            },\n    \t    \"1000000000000000000000000000000000000000\" : {\n                \"balance\" : \"10\",\n                \"//code\" : \"do nothing\",\n                \"code\" : \"\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t            \"0x00\" : \"0x01\",\n\t\t            \"0x01\" : \"0x01\",\n\t\t            \"0x02\" : \"0x01\"\n                }\n            },\n    \t    \"2000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n\t        \t\"//code\" : \"runs oog\",\n                \"code\" : \"{ [[1]] 1 [[1]] 0 [[2]] 1 [[2]] 0 [[3]] 1 [[3]] 0 [[4]] 1 [[4]] 0 [[5]] 1 [[5]] 0 [[6]] 1 [[6]] 0 [[7]] 1 [[7]] 0 [[8]] 1 [[8]] 0 [[9]] 1 [[9]] 0 [[10]] 1 [[10]] 0 [[11]] 1 [[11]] 0 [[12]] 1 [[12]] 0 [[13]] 1 [[13]] 0 [[14]] 1 [[14]] 0 [[15]] 1 [[15]] 0 [[16]] 1 [[16]] 0  [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n\t        \"3000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"//code\" : \"do revert\",\n                \"code\" : \"{ (REVERT 0 32) }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t            \"0x00\" : \"0x02\",\n\t\t            \"0x01\" : \"0x02\",\n\t\t            \"0x02\" : \"0x02\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\"{ (MSTORE 100 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 2) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 3) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 4) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 5) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 6) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 7) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 8) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 9) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 10) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 11) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 12) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 13) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 14) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 15) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 16) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 17) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 18) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 19) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 20) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 21) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 22) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 23) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 24) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 25) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 26) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 27) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 28) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 29) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 30) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 31) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 32) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 33) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 34) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 35) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 36) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 37) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 38) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 39) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 40) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 41) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 42) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 43) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 44) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 45) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 46) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 47) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 48) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 49) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 50) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 51) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 52) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 53) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 54) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 55) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 56) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 57) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 58) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 59) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 60) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 61) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 62) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 63) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 64) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 65) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 66) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 67) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 68) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 69) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 70) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 71) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 72) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 73) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 74) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 75) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 76) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 77) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 78) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 79) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 80) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 81) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 82) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 83) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 84) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 85) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 86) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 87) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 88) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 89) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 90) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 91) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 92) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 93) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 94) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 95) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 96) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 97) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 98) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 99) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 100) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 101) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 102) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 103) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 104) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 105) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 106) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 107) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 108) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 109) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 110) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 111) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 112) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 113) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 114) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 115) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 116) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 117) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 118) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 119) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 120) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 121) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 122) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 123) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 124) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 125) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 126) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 127) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 128) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 129) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 130) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 131) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 132) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 133) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 134) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 135) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 136) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 137) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 138) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 139) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 140) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 141) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 142) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 143) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 144) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 145) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 146) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 147) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 148) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 149) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 150) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 151) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 152) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 153) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 154) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 155) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 156) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 157) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 158) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 159) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 160) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 161) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 162) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 163) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 164) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 165) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 166) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 167) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 168) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 169) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 170) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 171) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 172) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 173) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 174) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 175) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 176) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 177) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 178) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 179) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 180) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 181) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 182) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 183) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 184) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 185) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 186) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 187) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 188) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 189) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 190) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 191) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 192) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 193) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 194) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 195) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 196) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 197) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 198) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 199) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 200) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 201) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 202) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 203) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 204) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 205) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 206) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 207) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 208) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 209) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 210) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 211) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 212) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 213) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 214) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 215) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 216) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 217) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 218) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 219) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 220) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 221) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 222) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 223) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 224) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 225) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 226) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 227) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 228) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 229) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 230) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 231) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 232) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 233) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 234) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 235) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 236) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 237) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 238) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 239) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 240) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 241) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 242) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 243) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 244) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 245) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 246) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 247) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 248) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 249) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 250) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 251) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 252) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 253) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 254) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 255) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 256) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 257) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 258) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 259) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 260) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 261) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 262) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 263) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 264) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 265) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 266) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 267) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 268) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 269) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 270) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 271) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 272) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 273) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 274) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 275) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 276) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 277) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 278) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 279) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 280) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 281) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 282) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 283) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 284) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 285) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 286) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 287) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 288) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 289) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 290) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 291) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 292) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 293) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 294) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 295) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 296) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 297) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 298) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 299) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 300) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 301) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 302) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 303) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 304) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 305) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 306) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 307) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 308) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 309) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 310) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 311) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 312) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 313) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 314) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 315) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 316) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 317) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 318) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 319) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 320) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 321) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 322) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 323) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 324) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 325) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 326) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 327) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 328) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 329) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 330) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 331) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 332) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 333) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 334) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 335) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 336) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 337) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 338) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 339) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 340) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 341) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 342) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 343) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 344) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 345) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 346) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 347) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 348) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 349) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 350) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 351) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 352) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 353) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 354) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 355) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 356) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 357) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 358) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 359) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 360) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 361) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 362) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 363) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 364) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 365) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 366) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 367) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 368) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 369) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 370) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 371) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 372) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 373) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 374) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 375) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 376) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 377) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 378) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 379) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 380) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 381) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 382) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 383) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 384) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 385) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 386) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 387) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 388) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 389) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 390) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 391) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 392) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 393) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 394) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 395) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 396) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 397) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 398) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 399) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 400) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 401) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 402) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 403) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 404) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 405) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 406) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 407) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 408) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 409) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 410) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 411) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 412) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 413) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 414) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 415) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 416) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 417) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 418) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 419) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 420) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 421) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 422) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 423) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 424) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 425) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \"\t\n\t   ],\n            \"gasLimit\" : [\n                \"2000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stTimeConsuming/sstore_combinations_initial01_2_ParisFiller.json",
    "content": "{\n    \"sstore_combinations_initial01_2_Paris\" : {\n\t    \"_info\" : {\n\t        \"comment\" : \"sstore 0 -> {calltype} -> change to {0, 1, 2} |-> {calltype} -> {non, oog, revert} |-> {calltype} -> change to {0, 1, 2} |-> {non, oog, revert}\",\n\t\t\t\"pytest_marks\": [\"slow\"]\n\t    },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t    \"2000000000000000000000000000000000000000\" : {\n\t            \t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t                \"storage\" : {\n    \t\t\t            \"0x01\" : \"0x01\"\n\t\t                }\n        \t\t    },\n\t\t            \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n    \t\t\t        \"nonce\" : \"1\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] 0  [[1]] 1  [[2]] 2 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b100000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] 0  [[1]] 1  [[2]] 2 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t            \"0x00\" : \"0x01\",\n\t\t            \"0x01\" : \"0x01\",\n\t\t            \"0x02\" : \"0x01\"\n                }\n            },\n    \t    \"b200000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] 0  [[1]] 1  [[2]] 2 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t            \"0x00\" : \"0x02\",\n\t\t            \"0x01\" : \"0x02\",\n\t\t            \"0x02\" : \"0x02\"\n                }\n            },\n    \t    \"1000000000000000000000000000000000000000\" : {\n                \"balance\" : \"10\",\n                \"//code\" : \"do nothing\",\n                \"code\" : \"\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t            \"0x00\" : \"0x01\",\n\t\t            \"0x01\" : \"0x01\",\n\t\t            \"0x02\" : \"0x01\"\n                }\n            },\n    \t    \"2000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n        \t\t\"//code\" : \"runs oog\",\n                \"code\" : \"{ [[1]] 1 [[1]] 0 [[2]] 1 [[2]] 0 [[3]] 1 [[3]] 0 [[4]] 1 [[4]] 0 [[5]] 1 [[5]] 0 [[6]] 1 [[6]] 0 [[7]] 1 [[7]] 0 [[8]] 1 [[8]] 0 [[9]] 1 [[9]] 0 [[10]] 1 [[10]] 0 [[11]] 1 [[11]] 0 [[12]] 1 [[12]] 0 [[13]] 1 [[13]] 0 [[14]] 1 [[14]] 0 [[15]] 1 [[15]] 0 [[16]] 1 [[16]] 0  [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n    \t    \"3000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"//code\" : \"do revert\",\n                \"code\" : \"{ (REVERT 0 32) }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t            \"0x00\" : \"0x02\",\n\t\t            \"0x01\" : \"0x02\",\n\t\t            \"0x02\" : \"0x02\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\"{ (MSTORE 100 1276) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1277) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1278) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1279) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1280) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1281) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1282) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1283) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1284) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1285) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1286) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1287) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1288) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1289) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1290) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1291) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1292) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1293) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1294) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1295) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1296) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1297) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1298) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1299) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1300) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1301) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1302) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1303) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1304) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1305) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1306) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1307) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1308) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1309) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1310) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1311) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1312) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1313) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1314) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1315) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1316) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1317) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1318) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1319) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1320) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1321) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1322) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1323) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1324) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1325) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1326) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1327) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1328) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1329) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1330) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1331) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1332) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1333) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1334) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1335) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1336) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1337) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1338) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1339) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1340) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1341) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1342) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1343) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1344) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1345) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1346) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1347) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1348) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1349) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1350) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1351) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1352) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1353) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1354) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1355) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1356) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1357) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1358) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1359) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1360) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1361) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1362) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1363) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1364) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1365) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1366) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1367) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1368) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1369) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1370) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1371) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1372) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1373) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1374) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1375) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1376) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1377) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1378) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1379) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1380) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1381) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1382) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1383) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1384) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1385) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1386) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1387) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1388) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1389) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1390) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1391) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1392) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1393) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1394) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1395) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1396) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1397) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1398) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1399) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1400) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1401) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1402) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1403) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1404) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1405) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1406) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1407) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1408) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1409) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1410) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1411) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1412) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1413) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1414) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1415) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1416) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1417) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1418) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1419) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1420) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1421) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1422) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1423) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1424) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1425) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1426) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1427) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1428) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1429) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1430) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1431) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1432) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1433) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1434) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1435) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1436) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1437) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1438) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1439) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1440) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1441) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1442) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1443) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1444) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1445) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1446) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1447) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1448) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1449) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1450) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1451) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1452) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1453) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1454) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1455) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1456) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1457) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1458) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1459) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1460) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1461) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1462) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1463) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1464) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1465) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1466) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1467) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1468) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1469) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1470) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1471) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1472) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1473) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1474) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1475) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1476) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1477) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1478) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1479) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1480) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1481) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1482) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1483) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1484) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1485) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1486) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1487) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1488) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1489) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1490) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1491) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1492) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1493) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1494) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1495) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1496) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1497) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1498) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1499) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1500) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1501) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1502) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1503) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1504) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1505) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1506) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1507) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1508) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1509) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1510) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1511) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1512) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1513) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1514) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1515) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1516) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1517) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1518) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1519) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1520) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1521) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1522) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1523) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1524) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1525) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1526) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1527) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1528) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1529) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1530) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1531) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1532) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1533) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1534) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1535) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1536) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1537) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1538) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1539) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1540) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1541) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1542) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1543) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1544) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1545) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1546) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1547) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1548) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1549) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1550) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1551) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1552) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1553) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1554) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1555) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1556) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1557) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1558) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1559) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1560) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1561) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1562) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1563) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1564) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1565) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1566) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1567) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1568) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1569) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1570) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1571) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1572) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1573) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1574) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1575) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1576) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1577) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1578) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1579) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1580) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1581) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1582) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1583) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1584) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1585) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1586) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1587) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1588) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1589) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1590) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1591) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1592) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1593) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1594) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1595) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1596) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1597) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1598) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1599) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1600) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1601) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1602) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1603) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1604) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1605) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1606) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1607) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1608) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1609) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1610) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1611) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1612) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1613) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1614) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1615) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1616) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1617) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1618) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1619) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1620) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1621) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1622) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1623) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1624) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1625) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1626) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1627) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1628) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1629) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1630) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1631) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1632) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1633) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1634) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1635) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1636) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1637) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1638) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1639) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1640) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1641) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1642) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1643) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1644) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1645) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1646) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1647) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1648) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1649) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1650) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1651) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1652) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1653) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1654) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1655) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1656) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1657) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1658) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1659) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1660) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1661) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1662) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1663) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1664) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1665) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1666) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1667) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1668) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1669) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1670) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1671) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1672) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1673) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1674) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1675) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1676) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1677) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1678) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1679) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1680) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1681) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1682) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1683) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1684) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1685) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1686) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1687) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1688) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1689) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1690) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1691) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1692) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1693) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1694) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1695) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1696) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1697) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1698) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1699) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1700) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1701) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1702) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1703) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1704) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1705) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1706) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1707) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1708) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1709) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1710) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1711) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1712) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1713) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1714) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1715) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1716) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1717) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1718) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1719) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1720) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1721) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1722) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1723) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1724) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1725) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1726) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1727) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1728) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \"\n\t   ],\n            \"gasLimit\" : [\n                \"2000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stTimeConsuming/sstore_combinations_initial01_ParisFiller.json",
    "content": "{\n    \"sstore_combinations_initial01_Paris\" : {\n\t    \"_info\" : {\n\t        \"comment\" : \"sstore 0 -> {calltype} -> change to {0, 1, 2} |-> {calltype} -> {non, oog, revert} |-> {calltype} -> change to {0, 1, 2} |-> {non, oog, revert}\",\n\t\t\t\"pytest_marks\": [\"slow\"]\n\t    },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t    \"2000000000000000000000000000000000000000\" : {\n\t            \t\t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t                \"storage\" : {\n    \t\t\t            \"0x01\" : \"0x01\"\n\t\t                }\n        \t\t    },\n\t\t            \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n    \t\t\t        \"nonce\" : \"1\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] 0  [[1]] 1  [[2]] 2 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b100000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] 0  [[1]] 1  [[2]] 2 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t            \"0x00\" : \"0x01\",\n\t\t            \"0x01\" : \"0x01\",\n\t\t            \"0x02\" : \"0x01\"\n                }\n            },\n    \t    \"b200000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] 0  [[1]] 1  [[2]] 2 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t            \"0x00\" : \"0x02\",\n\t\t            \"0x01\" : \"0x02\",\n\t\t            \"0x02\" : \"0x02\"\n                }\n            },\n    \t    \"1000000000000000000000000000000000000000\" : {\n                \"balance\" : \"10\",\n                \"//code\" : \"do nothing\",\n                \"code\" : \"\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t            \"0x00\" : \"0x01\",\n\t\t            \"0x01\" : \"0x01\",\n\t\t            \"0x02\" : \"0x01\"\n                }\n            },\n    \t    \"2000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n        \t\t\"//code\" : \"runs oog\",\n                \"code\" : \"{ [[1]] 1 [[1]] 0 [[2]] 1 [[2]] 0 [[3]] 1 [[3]] 0 [[4]] 1 [[4]] 0 [[5]] 1 [[5]] 0 [[6]] 1 [[6]] 0 [[7]] 1 [[7]] 0 [[8]] 1 [[8]] 0 [[9]] 1 [[9]] 0 [[10]] 1 [[10]] 0 [[11]] 1 [[11]] 0 [[12]] 1 [[12]] 0 [[13]] 1 [[13]] 0 [[14]] 1 [[14]] 0 [[15]] 1 [[15]] 0 [[16]] 1 [[16]] 0  [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n    \t    \"3000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"//code\" : \"do revert\",\n                \"code\" : \"{ (REVERT 0 32) }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t            \"0x00\" : \"0x02\",\n\t\t            \"0x01\" : \"0x02\",\n\t\t            \"0x02\" : \"0x02\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\"{ (MSTORE 100 850) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 851) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 852) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 853) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 854) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 855) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 856) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 857) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 858) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 859) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 860) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 861) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 862) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 863) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 864) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 865) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 866) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 867) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 868) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 869) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 870) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 871) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 872) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 873) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 874) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 875) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 876) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 877) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 878) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 879) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 880) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 881) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 882) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 883) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 884) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 885) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 886) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 887) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 888) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 889) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 890) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 891) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 892) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 893) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 894) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 895) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 896) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 897) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 898) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 899) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 900) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 901) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 902) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 903) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 904) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 905) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 906) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 907) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 908) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 909) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 910) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 911) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 912) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 913) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 914) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 915) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 916) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 917) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 918) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 919) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 920) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 921) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 922) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 923) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 924) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 925) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 926) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 927) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 928) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 929) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 930) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 931) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 932) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 933) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 934) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 935) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 936) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 937) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 938) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 939) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 940) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 941) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 942) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 943) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 944) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 945) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 946) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 947) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 948) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 949) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 950) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 951) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 952) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 953) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 954) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 955) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 956) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 957) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 958) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 959) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 960) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 961) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 962) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 963) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 964) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 965) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 966) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 967) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 968) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 969) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 970) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 971) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 972) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 973) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 974) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 975) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 976) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 977) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 978) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 979) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 980) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 981) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 982) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 983) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 984) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 985) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 986) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 987) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 988) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 989) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 990) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 991) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 992) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 993) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 994) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 995) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 996) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 997) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 998) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 999) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1000) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1001) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1002) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1003) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1004) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1005) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1006) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1007) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1008) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1009) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1010) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1011) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1012) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1013) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1014) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1015) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1016) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1017) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1018) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1019) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1020) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1021) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1022) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1023) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1024) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1025) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1026) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1027) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1028) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1029) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1030) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1031) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1032) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1033) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1034) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1035) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1036) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1037) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1038) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1039) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1040) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1041) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1042) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1043) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1044) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1045) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1046) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1047) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1048) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1049) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1050) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1051) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1052) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1053) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1054) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1055) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1056) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1057) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1058) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1059) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1060) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1061) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1062) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1063) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1064) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1065) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1066) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1067) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1068) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1069) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1070) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1071) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1072) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1073) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1074) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1075) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1076) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1077) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1078) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1079) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1080) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1081) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1082) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1083) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1084) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1085) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1086) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1087) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1088) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1089) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1090) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1091) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1092) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1093) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1094) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1095) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1096) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1097) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1098) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1099) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1100) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1101) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1102) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1103) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1104) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1105) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1106) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1107) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1108) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1109) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1110) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1111) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1112) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1113) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1114) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1115) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1116) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1117) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1118) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1119) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1120) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1121) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1122) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1123) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1124) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1125) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1126) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1127) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1128) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1129) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1130) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1131) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1132) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1133) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1134) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1135) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1136) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1137) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1138) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1139) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1140) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1141) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1142) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1143) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1144) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1145) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1146) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1147) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1148) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1149) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1150) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1151) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1152) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1153) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1154) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1155) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1156) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1157) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1158) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1159) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1160) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1161) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1162) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1163) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1164) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1165) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1166) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1167) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1168) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1169) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1170) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1171) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1172) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1173) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1174) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1175) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1176) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1177) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1178) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1179) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1180) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1181) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1182) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1183) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1184) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1185) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1186) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1187) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1188) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1189) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1190) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1191) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1192) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1193) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1194) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1195) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1196) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1197) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1198) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1199) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1200) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1201) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1202) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1203) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1204) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1205) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1206) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1207) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1208) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1209) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1210) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1211) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1212) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1213) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1214) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1215) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1216) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1217) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1218) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1219) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1220) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1221) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1222) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1223) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1224) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1225) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1226) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1227) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1228) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1229) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1230) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1231) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1232) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1233) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1234) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1235) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1236) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1237) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1238) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1239) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1240) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1241) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1242) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1243) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1244) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1245) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1246) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1247) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1248) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1249) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1250) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1251) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1252) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1253) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1254) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1255) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1256) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1257) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1258) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1259) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1260) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1261) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1262) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1263) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1264) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1265) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1266) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1267) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1268) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1269) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1270) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1271) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1272) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1273) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1274) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1275) (DELEGATECALL 300000 0xb000000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb000000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \"\n\t   ],\n            \"gasLimit\" : [\n                \"2000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stTimeConsuming/sstore_combinations_initial10_2_ParisFiller.json",
    "content": "{\n    \"sstore_combinations_initial10_2_Paris\" : {\n\t    \"_info\" : {\n\t        \"comment\" : \"sstore 1 -> {calltype} -> change to {0, 1, 2} |-> {calltype} -> {non, oog, revert} |-> {calltype} -> change to {0, 1, 2} |-> {non, oog, revert}\",\n\t\t\t\"pytest_marks\": [\"slow\"]\n\t    },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t    \"2000000000000000000000000000000000000000\" : {\n    \t\t        \t\"//comment\" : \"indicates that call finished without OOG\",\n    \t                \"storage\" : {\n        \t\t            \"0x01\" : \"0x01\"\n    \t                }\n        \t\t    },\n        \t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n            \t\t\t\"nonce\" : \"1\"\n        \t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] 0  [[1]] 1  [[2]] 2 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b100000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] 0  [[1]] 1  [[2]] 2 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t            \"0x00\" : \"0x01\",\n\t\t            \"0x01\" : \"0x01\",\n\t\t            \"0x02\" : \"0x01\"\n                }\n            },\n    \t    \"b200000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] 0  [[1]] 1  [[2]] 2 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t            \"0x00\" : \"0x02\",\n\t\t            \"0x01\" : \"0x02\",\n\t\t            \"0x02\" : \"0x02\"\n                }\n            },\n    \t    \"1000000000000000000000000000000000000000\" : {\n                \"balance\" : \"10\",\n                \"//code\" : \"do nothing\",\n                \"code\" : \"\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t            \"0x00\" : \"0x01\",\n\t\t            \"0x01\" : \"0x01\",\n\t\t            \"0x02\" : \"0x01\"\n                }\n            },\n    \t    \"2000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n\t        \t\"//code\" : \"runs oog\",\n                \"code\" : \"{ [[1]] 1 [[1]] 0 [[2]] 1 [[2]] 0 [[3]] 1 [[3]] 0 [[4]] 1 [[4]] 0 [[5]] 1 [[5]] 0 [[6]] 1 [[6]] 0 [[7]] 1 [[7]] 0 [[8]] 1 [[8]] 0 [[9]] 1 [[9]] 0 [[10]] 1 [[10]] 0 [[11]] 1 [[11]] 0 [[12]] 1 [[12]] 0 [[13]] 1 [[13]] 0 [[14]] 1 [[14]] 0 [[15]] 1 [[15]] 0 [[16]] 1 [[16]] 0  [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n\t        \"3000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"//code\" : \"do revert\",\n                \"code\" : \"{ (REVERT 0 32) }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t            \"0x00\" : \"0x02\",\n\t\t            \"0x01\" : \"0x02\",\n\t\t            \"0x02\" : \"0x02\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\"{ (MSTORE 100 426) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 427) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 428) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 429) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 430) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 431) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 432) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 433) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 434) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 435) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 436) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 437) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 438) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 439) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 440) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 441) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 442) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 443) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 444) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 445) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 446) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 447) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 448) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 449) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 450) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 451) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 452) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 453) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 454) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 455) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 456) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 457) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 458) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 459) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 460) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 461) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 462) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 463) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 464) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 465) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 466) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 467) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 468) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 469) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 470) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 471) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 472) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 473) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 474) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 475) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 476) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 477) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 478) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 479) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 480) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 481) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 482) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 483) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 484) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 485) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 486) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 487) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 488) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 489) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 490) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 491) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 492) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 493) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 494) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 495) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 496) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 497) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 498) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 499) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 500) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 501) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 502) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 503) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 504) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 505) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 506) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 507) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 508) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 509) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 510) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 511) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 512) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 513) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 514) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 515) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 516) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 517) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 518) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 519) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 520) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 521) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 522) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 523) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 524) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 525) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 526) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 527) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 528) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 529) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 530) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 531) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 532) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 533) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 534) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 535) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 536) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 537) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 538) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 539) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 540) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 541) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 542) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 543) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 544) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 545) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 546) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 547) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 548) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 549) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 550) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 551) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 552) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 553) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 554) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 555) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 556) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 557) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 558) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 559) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 560) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 561) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 562) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 563) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 564) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 565) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 566) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 567) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 568) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 569) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 570) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 571) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 572) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 573) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 574) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 575) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 576) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 577) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 578) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 579) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 580) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 581) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 582) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 583) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 584) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 585) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 586) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 587) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 588) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 589) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 590) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 591) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 592) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 593) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 594) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 595) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 596) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 597) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 598) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 599) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 600) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 601) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 602) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 603) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 604) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 605) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 606) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 607) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 608) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 609) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 610) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 611) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 612) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 613) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 614) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 615) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 616) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 617) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 618) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 619) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 620) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 621) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 622) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 623) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 624) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 625) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 626) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 627) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 628) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 629) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 630) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 631) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 632) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 633) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 634) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 635) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 636) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 637) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 638) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 639) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 640) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 641) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 642) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 643) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 644) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 645) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 646) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 647) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 648) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 649) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 650) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 651) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 652) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 653) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 654) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 655) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 656) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 657) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 658) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 659) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 660) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 661) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 662) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 663) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 664) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 665) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 666) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 667) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 668) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 669) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 670) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 671) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 672) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 673) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 674) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 675) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 676) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 677) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 678) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 679) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 680) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 681) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 682) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 683) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 684) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 685) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 686) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 687) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 688) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 689) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 690) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 691) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 692) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 693) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 694) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 695) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 696) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 697) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 698) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 699) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 700) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 701) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 702) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 703) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 704) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 705) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 706) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 707) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 708) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 709) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 710) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 711) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 712) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 713) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 714) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 715) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 716) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 717) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 718) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 719) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 720) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 721) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 722) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 723) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 724) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 725) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 726) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 727) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 728) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 729) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 730) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 731) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 732) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 733) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 734) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 735) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 736) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 737) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 738) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 739) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 740) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 741) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 742) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 743) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 744) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 745) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 746) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 747) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 748) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 749) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 750) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 751) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 752) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 753) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 754) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 755) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 756) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 757) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 758) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 759) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 760) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 761) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 762) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 763) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 764) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 765) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 766) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 767) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 768) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 769) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 770) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 771) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 772) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 773) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 774) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 775) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 776) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 777) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 778) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 779) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 780) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 781) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 782) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 783) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 784) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 785) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 786) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 787) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 788) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 789) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 790) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 791) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 792) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 793) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 794) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 795) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 796) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 797) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 798) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 799) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 800) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 801) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 802) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 803) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 804) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 805) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 806) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 807) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 808) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 809) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 810) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 811) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 812) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 813) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 814) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 815) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 816) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 817) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 818) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 819) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 820) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 821) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 822) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 823) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 824) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 825) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 826) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 827) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 828) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 829) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 830) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 831) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 832) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 833) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 834) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 835) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 836) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 837) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 838) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 839) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 840) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 841) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 842) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 843) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 844) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 845) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 846) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 847) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 848) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 849) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \"\n\t    ],\n            \"gasLimit\" : [\n                \"2000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stTimeConsuming/sstore_combinations_initial10_ParisFiller.json",
    "content": "{\n    \"sstore_combinations_initial10_Paris\" : {\n\t    \"_info\" : {\n\t        \"comment\" : \"sstore 1 -> {calltype} -> change to {0, 1, 2} |-> {calltype} -> {non, oog, revert} |-> {calltype} -> change to {0, 1, 2} |-> {non, oog, revert}\",\n\t\t\t\"pytest_marks\": [\"slow\"]\n\t    },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t    \"2000000000000000000000000000000000000000\" : {\n    \t\t        \t\"//comment\" : \"indicates that call finished without OOG\",\n    \t                \"storage\" : {\n        \t\t            \"0x01\" : \"0x01\"\n    \t                }\n        \t\t    },\n        \t\t    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n            \t\t\t\"nonce\" : \"1\"\n        \t\t    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] 0  [[1]] 1  [[2]] 2 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b100000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] 0  [[1]] 1  [[2]] 2 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t            \"0x00\" : \"0x01\",\n\t\t            \"0x01\" : \"0x01\",\n\t\t            \"0x02\" : \"0x01\"\n                }\n            },\n    \t    \"b200000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] 0  [[1]] 1  [[2]] 2 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t            \"0x00\" : \"0x02\",\n\t\t            \"0x01\" : \"0x02\",\n\t\t            \"0x02\" : \"0x02\"\n                }\n            },\n    \t    \"1000000000000000000000000000000000000000\" : {\n                \"balance\" : \"10\",\n                \"//code\" : \"do nothing\",\n                \"code\" : \"\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t            \"0x00\" : \"0x01\",\n\t\t            \"0x01\" : \"0x01\",\n\t\t            \"0x02\" : \"0x01\"\n                }\n            },\n    \t    \"2000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n\t        \t\"//code\" : \"runs oog\",\n                \"code\" : \"{ [[1]] 1 [[1]] 0 [[2]] 1 [[2]] 0 [[3]] 1 [[3]] 0 [[4]] 1 [[4]] 0 [[5]] 1 [[5]] 0 [[6]] 1 [[6]] 0 [[7]] 1 [[7]] 0 [[8]] 1 [[8]] 0 [[9]] 1 [[9]] 0 [[10]] 1 [[10]] 0 [[11]] 1 [[11]] 0 [[12]] 1 [[12]] 0 [[13]] 1 [[13]] 0 [[14]] 1 [[14]] 0 [[15]] 1 [[15]] 0 [[16]] 1 [[16]] 0  [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n\t        \"3000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"//code\" : \"do revert\",\n                \"code\" : \"{ (REVERT 0 32) }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t            \"0x00\" : \"0x02\",\n\t\t            \"0x01\" : \"0x02\",\n\t\t            \"0x02\" : \"0x02\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\"{ (MSTORE 100 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 2) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 3) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 4) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 5) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 6) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 7) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 8) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 9) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 10) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 11) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 12) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 13) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 14) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 15) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 16) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 17) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 18) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 19) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 20) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 21) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 22) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 23) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 24) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 25) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 26) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 27) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 28) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 29) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 30) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 31) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 32) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 33) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 34) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 35) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 36) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 37) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 38) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 39) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 40) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 41) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 42) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 43) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 44) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 45) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 46) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 47) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 48) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 49) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 50) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 51) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 52) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 53) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 54) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 55) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 56) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 57) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 58) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 59) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 60) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 61) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 62) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 63) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 64) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 65) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 66) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 67) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 68) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 69) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 70) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 71) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 72) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 73) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 74) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 75) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 76) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 77) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 78) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 79) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 80) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 81) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 82) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 83) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 84) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 85) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 86) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 87) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 88) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 89) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 90) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 91) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 92) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 93) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 94) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 95) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 96) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 97) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 98) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 99) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 100) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 101) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 102) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 103) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 104) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 105) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 106) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 107) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 108) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 109) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 110) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 111) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 112) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 113) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 114) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 115) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 116) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 117) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 118) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 119) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 120) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 121) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 122) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 123) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 124) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 125) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 126) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 127) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 128) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 129) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 130) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 131) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 132) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 133) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 134) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 135) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 136) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 137) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 138) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 139) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 140) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 141) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 142) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 143) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 144) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 145) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 146) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 147) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 148) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 149) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 150) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 151) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 152) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 153) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 154) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 155) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 156) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 157) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 158) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 159) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 160) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 161) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 162) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 163) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 164) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 165) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 166) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 167) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 168) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 169) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 170) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 171) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 172) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 173) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 174) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 175) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 176) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 177) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 178) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 179) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 180) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 181) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 182) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 183) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 184) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 185) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 186) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 187) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 188) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 189) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 190) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 191) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 192) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 193) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 194) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 195) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 196) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 197) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 198) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 199) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 200) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 201) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 202) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 203) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 204) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 205) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 206) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 207) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 208) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 209) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 210) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 211) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 212) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 213) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 214) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 215) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 216) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 217) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 218) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 219) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 220) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 221) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 222) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 223) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 224) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 225) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 226) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 227) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 228) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 229) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 230) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 231) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 232) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 233) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 234) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 235) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 236) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 237) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 238) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 239) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 240) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 241) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 242) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 243) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 244) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 245) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 246) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 247) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 248) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 249) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 250) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 251) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 252) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 253) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 254) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 255) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 256) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 257) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 258) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 259) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 260) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 261) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 262) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 263) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 264) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 265) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 266) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 267) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 268) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 269) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 270) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 271) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 272) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 273) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 274) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 275) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 276) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 277) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 278) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 279) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 280) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 281) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 282) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 283) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 284) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 285) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 286) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 287) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 288) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 289) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 290) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 291) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 292) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 293) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 294) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 295) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 296) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 297) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 298) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 299) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 300) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 301) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 302) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 303) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 304) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 305) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 306) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 307) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 308) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 309) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 310) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 311) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 312) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 313) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 314) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 315) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 316) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 317) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 318) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 319) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 320) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 321) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 322) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 323) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 324) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 325) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 326) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 327) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 328) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 329) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 330) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 331) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 332) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 333) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 334) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 335) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 336) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 337) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 338) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 339) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 340) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 341) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 342) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 343) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 344) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 345) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 346) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 347) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 348) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 349) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 350) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 351) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 352) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 353) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 354) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 355) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 356) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 357) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 358) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 359) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 360) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 361) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 362) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 363) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 364) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 365) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 366) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 367) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 368) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 369) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 370) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 371) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 372) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 373) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 374) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 375) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 376) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 377) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 378) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 379) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 380) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 381) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 382) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 383) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 384) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 385) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 386) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 387) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 388) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 389) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 390) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 391) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 392) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 393) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 394) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 395) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 396) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 397) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 398) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 399) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 400) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 401) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 402) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 403) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 404) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 405) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 406) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 407) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 408) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 409) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 410) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 411) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 412) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 413) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 414) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 415) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 416) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 417) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 418) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 419) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 420) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 421) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 422) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 423) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 424) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 425) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \"\n\t    ],\n            \"gasLimit\" : [\n                \"2000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stTimeConsuming/sstore_combinations_initial11_2_ParisFiller.json",
    "content": "{\n    \"sstore_combinations_initial11_2_Paris\" : {\n\t    \"_info\" : {\n\t        \"comment\" : \"sstore 1 -> {calltype} -> change to {0, 1, 2} |-> {calltype} -> {non, oog, revert} |-> {calltype} -> change to {0, 1, 2} |-> {non, oog, revert}\",\n\t\t\t\"pytest_marks\": [\"slow\"]\n\t    },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t    \"2000000000000000000000000000000000000000\" : {\n\t\t            \t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t                \"storage\" : {\n\t\t\t                \"0x01\" : \"0x01\"\n\t\t                }\n\t\t            },\n\t\t            \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n    \t\t\t        \"nonce\" : \"1\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] 0  [[1]] 1  [[2]] 2 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b100000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] 0  [[1]] 1  [[2]] 2 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t            \"0x00\" : \"0x01\",\n\t\t            \"0x01\" : \"0x01\",\n\t\t            \"0x02\" : \"0x01\"\n                }\n            },\n    \t    \"b200000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] 0  [[1]] 1  [[2]] 2 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t            \"0x00\" : \"0x02\",\n\t\t            \"0x01\" : \"0x02\",\n\t\t            \"0x02\" : \"0x02\"\n                }\n            },\n    \t    \"1000000000000000000000000000000000000000\" : {\n                \"balance\" : \"10\",\n                \"//code\" : \"do nothing\",\n                \"code\" : \"\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t            \"0x00\" : \"0x01\",\n\t\t            \"0x01\" : \"0x01\",\n\t\t            \"0x02\" : \"0x01\"\n                }\n            },\n    \t    \"2000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n\t        \t\"//code\" : \"runs oog\",\n                \"code\" : \"{ [[1]] 1 [[1]] 0 [[2]] 1 [[2]] 0 [[3]] 1 [[3]] 0 [[4]] 1 [[4]] 0 [[5]] 1 [[5]] 0 [[6]] 1 [[6]] 0 [[7]] 1 [[7]] 0 [[8]] 1 [[8]] 0 [[9]] 1 [[9]] 0 [[10]] 1 [[10]] 0 [[11]] 1 [[11]] 0 [[12]] 1 [[12]] 0 [[13]] 1 [[13]] 0 [[14]] 1 [[14]] 0 [[15]] 1 [[15]] 0 [[16]] 1 [[16]] 0  [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n\t        \"3000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"//code\" : \"do revert\",\n                \"code\" : \"{ (REVERT 0 32) }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t            \"0x00\" : \"0x02\",\n\t\t            \"0x01\" : \"0x02\",\n\t\t            \"0x02\" : \"0x02\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\"{ (MSTORE 100 1276) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1277) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1278) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1279) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1280) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1281) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1282) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1283) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1284) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1285) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1286) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1287) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1288) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1289) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1290) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1291) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1292) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1293) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1294) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1295) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1296) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1297) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1298) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1299) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1300) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1301) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1302) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1303) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1304) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1305) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1306) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1307) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1308) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1309) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1310) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1311) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1312) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1313) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1314) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1315) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1316) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1317) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1318) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1319) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1320) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1321) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1322) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1323) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1324) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1325) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1326) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1327) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1328) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1329) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1330) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1331) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1332) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1333) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1334) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1335) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1336) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1337) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1338) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1339) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1340) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1341) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1342) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1343) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1344) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1345) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1346) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1347) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1348) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1349) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1350) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1351) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1352) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1353) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1354) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1355) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1356) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1357) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1358) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1359) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1360) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1361) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1362) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1363) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1364) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1365) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1366) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1367) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1368) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1369) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1370) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1371) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1372) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1373) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1374) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1375) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1376) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1377) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1378) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1379) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1380) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1381) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1382) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1383) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1384) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1385) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1386) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1387) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1388) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1389) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1390) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1391) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1392) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1393) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1394) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1395) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1396) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1397) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1398) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1399) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1400) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1401) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1402) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1403) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1404) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1405) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1406) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1407) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1408) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1409) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1410) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1411) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1412) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1413) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1414) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1415) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1416) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1417) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1418) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1419) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1420) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1421) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1422) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1423) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1424) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1425) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1426) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1427) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1428) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1429) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1430) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1431) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1432) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1433) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1434) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1435) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1436) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1437) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1438) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1439) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1440) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1441) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1442) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1443) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1444) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1445) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1446) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1447) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1448) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1449) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1450) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1451) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1452) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1453) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1454) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1455) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1456) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1457) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1458) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1459) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1460) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1461) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1462) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1463) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1464) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1465) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1466) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1467) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1468) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1469) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1470) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1471) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1472) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1473) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1474) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1475) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1476) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1477) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1478) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1479) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1480) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1481) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1482) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1483) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1484) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1485) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1486) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1487) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1488) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1489) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1490) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1491) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1492) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1493) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1494) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1495) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1496) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1497) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1498) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1499) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1500) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1501) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1502) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1503) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1504) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1505) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1506) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1507) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1508) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1509) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1510) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1511) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1512) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1513) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1514) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1515) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1516) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1517) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1518) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1519) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1520) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1521) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1522) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1523) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1524) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1525) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1526) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1527) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1528) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1529) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1530) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1531) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1532) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1533) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1534) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1535) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1536) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1537) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1538) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1539) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1540) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1541) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1542) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1543) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1544) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1545) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1546) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1547) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1548) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1549) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1550) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1551) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1552) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1553) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1554) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1555) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1556) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1557) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1558) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1559) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1560) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1561) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1562) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1563) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1564) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1565) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1566) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1567) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1568) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1569) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1570) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1571) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1572) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1573) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1574) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1575) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1576) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1577) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1578) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1579) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1580) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1581) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1582) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1583) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1584) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1585) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1586) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1587) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1588) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1589) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1590) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1591) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1592) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1593) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1594) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1595) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1596) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1597) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1598) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1599) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1600) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1601) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1602) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1603) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1604) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1605) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1606) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1607) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1608) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1609) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1610) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1611) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1612) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1613) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1614) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1615) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1616) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1617) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1618) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1619) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1620) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1621) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1622) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1623) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1624) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1625) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1626) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1627) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1628) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1629) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1630) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1631) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1632) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1633) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1634) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1635) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1636) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1637) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1638) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1639) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1640) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1641) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1642) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1643) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1644) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1645) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1646) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1647) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1648) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1649) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1650) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1651) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1652) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1653) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1654) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1655) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1656) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1657) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1658) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1659) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1660) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1661) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1662) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1663) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1664) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1665) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1666) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1667) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1668) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1669) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1670) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1671) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1672) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1673) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1674) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1675) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1676) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1677) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1678) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1679) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1680) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1681) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1682) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1683) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1684) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1685) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1686) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1687) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1688) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1689) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1690) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1691) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1692) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1693) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1694) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1695) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1696) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1697) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1698) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1699) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1700) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1701) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1702) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1703) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1704) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1705) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1706) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1707) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1708) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1709) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1710) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1711) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1712) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1713) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1714) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1715) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1716) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1717) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1718) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1719) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1720) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1721) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1722) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1723) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1724) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1725) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1726) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1727) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1728) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \"\n\t    ],\n            \"gasLimit\" : [\n                \"2000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stTimeConsuming/sstore_combinations_initial11_ParisFiller.json",
    "content": "{\n    \"sstore_combinations_initial11_Paris\" : {\n\t    \"_info\" : {\n\t        \"comment\" : \"sstore 1 -> {calltype} -> change to {0, 1, 2} |-> {calltype} -> {non, oog, revert} |-> {calltype} -> change to {0, 1, 2} |-> {non, oog, revert}\",\n\t\t\t\"pytest_marks\": [\"slow\"]\n\t    },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t    \"2000000000000000000000000000000000000000\" : {\n\t\t            \t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t                \"storage\" : {\n\t\t\t                \"0x01\" : \"0x01\"\n\t\t                }\n\t\t            },\n\t\t            \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n    \t\t\t        \"nonce\" : \"1\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] 0  [[1]] 1  [[2]] 2 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b100000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] 0  [[1]] 1  [[2]] 2 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t            \"0x00\" : \"0x01\",\n\t\t            \"0x01\" : \"0x01\",\n\t\t            \"0x02\" : \"0x01\"\n                }\n            },\n    \t    \"b200000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] 0  [[1]] 1  [[2]] 2 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t            \"0x00\" : \"0x02\",\n\t\t            \"0x01\" : \"0x02\",\n\t\t            \"0x02\" : \"0x02\"\n                }\n            },\n    \t    \"1000000000000000000000000000000000000000\" : {\n                \"balance\" : \"10\",\n                \"//code\" : \"do nothing\",\n                \"code\" : \"\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t            \"0x00\" : \"0x01\",\n\t\t            \"0x01\" : \"0x01\",\n\t\t            \"0x02\" : \"0x01\"\n                }\n            },\n    \t    \"2000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n\t        \t\"//code\" : \"runs oog\",\n                \"code\" : \"{ [[1]] 1 [[1]] 0 [[2]] 1 [[2]] 0 [[3]] 1 [[3]] 0 [[4]] 1 [[4]] 0 [[5]] 1 [[5]] 0 [[6]] 1 [[6]] 0 [[7]] 1 [[7]] 0 [[8]] 1 [[8]] 0 [[9]] 1 [[9]] 0 [[10]] 1 [[10]] 0 [[11]] 1 [[11]] 0 [[12]] 1 [[12]] 0 [[13]] 1 [[13]] 0 [[14]] 1 [[14]] 0 [[15]] 1 [[15]] 0 [[16]] 1 [[16]] 0  [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n\t        \"3000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"//code\" : \"do revert\",\n                \"code\" : \"{ (REVERT 0 32) }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t            \"0x00\" : \"0x02\",\n\t\t            \"0x01\" : \"0x02\",\n\t\t            \"0x02\" : \"0x02\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\"{ (MSTORE 100 850) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 851) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 852) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 853) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 854) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 855) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 856) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 857) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 858) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 859) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 860) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 861) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 862) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 863) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 864) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 865) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 866) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 867) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 868) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 869) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 870) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 871) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 872) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 873) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 874) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 875) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 876) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 877) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 878) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 879) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 880) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 881) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 882) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 883) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 884) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 885) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 886) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 887) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 888) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 889) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 890) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 891) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 892) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 893) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 894) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 895) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 896) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 897) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 898) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 899) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 900) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 901) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 902) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 903) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 904) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 905) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 906) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 907) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 908) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 909) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 910) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 911) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 912) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 913) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 914) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 915) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 916) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 917) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 918) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 919) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 920) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 921) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 922) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 923) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 924) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 925) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 926) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 927) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 928) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 929) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 930) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 931) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 932) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 933) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 934) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 935) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 936) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 937) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 938) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 939) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 940) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 941) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 942) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 943) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 944) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 945) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 946) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 947) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 948) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 949) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 950) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 951) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 952) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 953) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 954) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 955) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 956) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 957) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 958) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 959) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 960) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 961) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 962) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 963) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 964) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 965) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 966) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 967) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 968) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 969) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 970) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 971) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 972) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 973) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 974) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 975) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 976) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 977) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 978) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 979) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 980) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 981) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 982) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 983) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 984) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 985) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 986) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 987) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 988) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 989) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 990) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 991) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 992) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 993) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 994) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 995) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 996) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 997) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 998) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 999) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1000) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1001) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1002) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1003) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1004) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1005) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1006) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1007) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1008) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1009) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1010) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1011) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1012) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1013) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1014) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1015) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1016) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1017) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1018) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1019) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1020) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1021) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1022) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1023) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1024) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1025) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1026) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1027) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1028) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1029) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1030) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1031) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1032) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1033) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1034) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1035) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1036) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1037) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1038) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1039) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1040) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1041) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1042) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1043) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1044) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1045) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1046) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1047) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1048) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1049) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1050) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1051) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1052) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1053) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1054) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1055) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1056) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1057) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1058) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1059) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1060) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1061) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1062) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1063) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1064) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1065) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1066) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1067) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1068) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1069) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1070) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1071) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1072) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1073) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1074) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1075) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1076) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1077) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1078) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1079) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1080) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1081) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1082) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1083) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1084) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1085) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1086) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1087) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1088) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1089) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1090) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1091) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1092) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1093) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1094) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1095) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1096) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1097) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1098) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1099) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1100) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1101) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1102) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1103) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1104) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1105) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1106) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1107) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1108) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1109) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1110) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1111) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1112) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1113) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1114) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1115) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1116) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1117) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1118) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1119) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1120) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1121) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1122) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1123) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1124) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1125) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1126) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1127) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1128) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1129) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1130) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1131) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1132) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1133) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1134) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1135) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1136) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1137) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1138) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1139) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1140) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1141) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1142) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1143) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1144) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1145) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1146) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1147) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1148) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1149) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1150) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1151) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1152) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1153) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1154) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1155) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1156) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1157) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1158) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1159) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1160) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1161) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1162) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1163) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1164) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1165) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1166) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1167) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1168) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1169) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1170) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1171) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1172) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1173) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1174) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1175) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1176) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1177) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1178) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1179) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1180) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1181) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1182) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1183) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1184) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1185) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1186) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1187) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1188) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1189) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1190) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1191) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1192) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1193) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1194) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1195) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1196) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1197) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1198) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1199) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1200) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1201) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1202) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1203) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1204) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1205) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1206) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1207) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1208) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1209) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1210) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1211) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1212) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1213) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1214) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1215) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1216) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1217) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1218) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1219) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1220) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1221) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1222) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1223) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1224) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1225) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1226) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1227) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1228) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1229) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1230) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1231) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1232) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1233) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1234) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1235) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1236) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1237) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1238) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1239) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1240) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1241) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1242) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1243) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1244) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1245) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1246) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1247) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1248) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1249) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1250) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1251) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1252) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1253) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1254) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1255) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1256) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1257) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1258) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1259) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1260) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1261) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1262) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1263) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1264) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1265) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1266) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1267) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1268) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1269) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1270) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1271) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1272) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1273) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1274) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1275) (DELEGATECALL 300000 0xb100000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb100000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \"\n\t    ],\n            \"gasLimit\" : [\n                \"2000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stTimeConsuming/sstore_combinations_initial20_2_ParisFiller.json",
    "content": "{\n    \"sstore_combinations_initial20_2_Paris\" : {\n\t    \"_info\" : {\n\t        \"comment\" : \"sstore 2 -> {calltype} -> change to {0, 1, 2} |-> {calltype} -> {non, oog, revert} |-> {calltype} -> change to {0, 1, 2} |-> {non, oog, revert}\",\n\t\t\t\"pytest_marks\": [\"slow\"]\n\t    },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"2000000000000000000000000000000000000000\" : {\n    \t\t\t        \"//comment\" : \"indicates that call finished without OOG\",\n\t\t                \"storage\" : {\n    \t\t\t            \"0x01\" : \"0x01\"\n\t\t                }\n        \t\t    },\n\t\t            \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n    \t\t\t        \"nonce\" : \"1\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] 0  [[1]] 1  [[2]] 2 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b100000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] 0  [[1]] 1  [[2]] 2 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t            \"0x00\" : \"0x01\",\n\t\t            \"0x01\" : \"0x01\",\n\t\t            \"0x02\" : \"0x01\"\n                }\n            },\n    \t    \"b200000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] 0  [[1]] 1  [[2]] 2 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t            \"0x00\" : \"0x02\",\n\t\t            \"0x01\" : \"0x02\",\n\t\t            \"0x02\" : \"0x02\"\n                }\n            },\n    \t    \"1000000000000000000000000000000000000000\" : {\n                \"balance\" : \"10\",\n                \"//code\" : \"do nothing\",\n                \"code\" : \"\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t            \"0x00\" : \"0x01\",\n\t\t            \"0x01\" : \"0x01\",\n\t\t            \"0x02\" : \"0x01\"\n                }\n            },\n    \t    \"2000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n        \t\t\"//code\" : \"runs oog\",\n                \"code\" : \"{ [[1]] 1 [[1]] 0 [[2]] 1 [[2]] 0 [[3]] 1 [[3]] 0 [[4]] 1 [[4]] 0 [[5]] 1 [[5]] 0 [[6]] 1 [[6]] 0 [[7]] 1 [[7]] 0 [[8]] 1 [[8]] 0 [[9]] 1 [[9]] 0 [[10]] 1 [[10]] 0 [[11]] 1 [[11]] 0 [[12]] 1 [[12]] 0 [[13]] 1 [[13]] 0 [[14]] 1 [[14]] 0 [[15]] 1 [[15]] 0 [[16]] 1 [[16]] 0  [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n    \t    \"3000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"//code\" : \"do revert\",\n                \"code\" : \"{ (REVERT 0 32) }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t            \"0x00\" : \"0x02\",\n\t\t            \"0x01\" : \"0x02\",\n\t\t            \"0x02\" : \"0x02\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\"{ (MSTORE 100 426) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 427) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 428) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 429) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 430) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 431) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 432) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 433) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 434) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 435) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 436) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 437) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 438) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 439) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 440) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 441) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 442) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 443) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 444) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 445) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 446) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 447) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 448) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 449) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 450) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 451) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 452) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 453) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 454) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 455) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 456) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 457) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 458) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 459) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 460) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 461) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 462) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 463) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 464) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 465) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 466) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 467) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 468) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 469) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 470) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 471) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 472) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 473) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 474) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 475) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 476) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 477) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 478) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 479) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 480) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 481) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 482) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 483) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 484) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 485) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 486) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 487) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 488) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 489) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 490) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 491) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 492) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 493) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 494) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 495) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 496) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 497) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 498) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 499) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 500) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 501) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 502) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 503) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 504) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 505) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 506) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 507) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 508) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 509) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 510) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 511) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 512) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 513) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 514) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 515) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 516) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 517) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 518) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 519) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 520) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 521) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 522) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 523) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 524) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 525) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 526) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 527) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 528) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 529) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 530) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 531) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 532) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 533) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 534) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 535) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 536) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 537) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 538) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 539) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 540) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 541) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 542) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 543) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 544) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 545) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 546) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 547) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 548) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 549) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 550) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 551) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 552) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 553) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 554) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 555) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 556) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 557) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 558) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 559) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 560) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 561) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 562) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 563) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 564) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 565) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 566) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 567) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 568) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 569) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 570) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 571) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 572) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 573) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 574) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 575) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 576) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 577) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 578) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 579) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 580) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 581) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 582) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 583) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 584) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 585) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 586) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 587) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 588) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 589) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 590) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 591) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 592) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 593) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 594) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 595) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 596) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 597) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 598) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 599) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 600) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 601) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 602) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 603) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 604) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 605) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 606) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 607) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 608) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 609) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 610) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 611) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 612) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 613) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 614) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 615) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 616) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 617) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 618) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 619) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 620) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 621) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 622) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 623) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 624) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 625) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 626) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 627) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 628) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 629) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 630) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 631) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 632) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 633) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 634) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 635) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 636) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 637) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 638) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 639) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 640) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 641) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 642) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 643) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 644) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 645) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 646) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 647) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 648) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 649) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 650) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 651) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 652) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 653) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 654) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 655) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 656) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 657) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 658) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 659) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 660) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 661) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 662) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 663) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 664) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 665) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 666) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 667) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 668) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 669) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 670) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 671) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 672) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 673) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 674) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 675) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 676) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 677) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 678) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 679) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 680) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 681) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 682) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 683) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 684) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 685) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 686) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 687) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 688) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 689) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 690) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 691) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 692) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 693) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 694) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 695) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 696) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 697) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 698) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 699) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 700) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 701) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 702) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 703) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 704) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 705) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 706) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 707) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 708) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 709) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 710) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 711) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 712) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 713) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 714) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 715) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 716) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 717) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 718) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 719) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 720) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 721) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 722) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 723) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 724) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 725) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 726) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 727) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 728) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 729) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 730) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 731) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 732) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 733) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 734) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 735) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 736) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 737) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 738) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 739) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 740) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 741) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 742) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 743) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 744) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 745) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 746) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 747) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 748) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 749) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 750) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 751) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 752) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 753) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 754) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 755) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 756) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 757) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 758) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 759) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 760) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 761) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 762) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 763) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 764) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 765) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 766) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 767) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 768) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 769) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 770) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 771) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 772) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 773) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 774) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 775) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 776) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 777) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 778) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 779) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 780) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 781) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 782) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 783) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 784) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 785) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 786) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 787) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 788) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 789) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 790) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 791) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 792) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 793) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 794) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 795) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 796) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 797) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 798) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 799) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 800) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 801) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 802) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 803) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 804) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 805) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 806) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 807) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 808) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 809) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 810) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 811) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 812) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 813) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 814) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 815) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 816) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 817) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 818) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 819) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 820) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 821) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 822) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 823) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 824) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 825) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 826) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 827) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 828) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 829) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 830) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 831) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 832) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 833) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 834) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 835) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 836) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 837) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 838) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 839) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 840) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 841) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 842) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 843) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 844) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 845) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 846) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 847) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 848) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 849) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \"\n\t    ],\n            \"gasLimit\" : [\n                \"2000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stTimeConsuming/sstore_combinations_initial20_ParisFiller.json",
    "content": "{\n    \"sstore_combinations_initial20_Paris\" : {\n\t    \"_info\" : {\n\t        \"comment\" : \"sstore 2 -> {calltype} -> change to {0, 1, 2} |-> {calltype} -> {non, oog, revert} |-> {calltype} -> change to {0, 1, 2} |-> {non, oog, revert}\",\n\t\t\t\"pytest_marks\": [\"slow\"]\n\t    },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"2000000000000000000000000000000000000000\" : {\n    \t\t\t        \"//comment\" : \"indicates that call finished without OOG\",\n\t\t                \"storage\" : {\n    \t\t\t            \"0x01\" : \"0x01\"\n\t\t                }\n        \t\t    },\n\t\t            \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n    \t\t\t        \"nonce\" : \"1\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] 0  [[1]] 1  [[2]] 2 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b100000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] 0  [[1]] 1  [[2]] 2 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t            \"0x00\" : \"0x01\",\n\t\t            \"0x01\" : \"0x01\",\n\t\t            \"0x02\" : \"0x01\"\n                }\n            },\n    \t    \"b200000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] 0  [[1]] 1  [[2]] 2 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t            \"0x00\" : \"0x02\",\n\t\t            \"0x01\" : \"0x02\",\n\t\t            \"0x02\" : \"0x02\"\n                }\n            },\n    \t    \"1000000000000000000000000000000000000000\" : {\n                \"balance\" : \"10\",\n                \"//code\" : \"do nothing\",\n                \"code\" : \"\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t            \"0x00\" : \"0x01\",\n\t\t            \"0x01\" : \"0x01\",\n\t\t            \"0x02\" : \"0x01\"\n                }\n            },\n    \t    \"2000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n        \t\t\"//code\" : \"runs oog\",\n                \"code\" : \"{ [[1]] 1 [[1]] 0 [[2]] 1 [[2]] 0 [[3]] 1 [[3]] 0 [[4]] 1 [[4]] 0 [[5]] 1 [[5]] 0 [[6]] 1 [[6]] 0 [[7]] 1 [[7]] 0 [[8]] 1 [[8]] 0 [[9]] 1 [[9]] 0 [[10]] 1 [[10]] 0 [[11]] 1 [[11]] 0 [[12]] 1 [[12]] 0 [[13]] 1 [[13]] 0 [[14]] 1 [[14]] 0 [[15]] 1 [[15]] 0 [[16]] 1 [[16]] 0  [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n    \t    \"3000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"//code\" : \"do revert\",\n                \"code\" : \"{ (REVERT 0 32) }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t            \"0x00\" : \"0x02\",\n\t\t            \"0x01\" : \"0x02\",\n\t\t            \"0x02\" : \"0x02\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\"{ (MSTORE 100 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 2) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 3) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 4) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 5) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 6) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 7) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 8) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 9) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 10) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 11) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 12) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 13) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 14) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 15) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 16) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 17) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 18) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 19) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 20) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 21) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 22) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 23) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 24) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 25) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 26) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 27) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 28) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 29) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 30) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 31) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 32) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 33) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 34) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 35) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 36) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 37) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 38) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 39) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 40) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 41) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 42) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 43) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 44) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 45) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 46) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 47) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 48) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 49) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 50) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 51) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 52) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 53) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 54) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 55) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 56) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 57) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 58) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 59) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 60) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 61) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 62) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 63) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 64) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 65) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 66) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 67) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 68) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 69) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 70) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 71) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 72) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 73) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 74) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 75) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 76) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 77) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 78) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 79) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 80) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 81) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 82) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 83) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 84) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 85) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 86) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 87) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 88) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 89) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 90) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 91) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 92) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 93) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 94) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 95) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 96) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 97) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 98) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 99) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 100) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 101) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 102) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 103) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 104) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 105) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 106) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 107) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 108) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 109) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 110) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 111) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 112) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 113) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 114) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 115) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 116) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 117) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 118) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 119) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 120) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 121) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 122) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 123) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 124) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 125) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 126) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 127) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 128) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 129) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 130) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 131) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 132) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 133) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 134) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 135) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 136) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 137) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 138) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 139) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 140) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 141) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 142) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 143) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 144) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 145) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 146) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 147) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 148) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 149) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 150) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 151) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 152) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 153) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 154) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 155) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 156) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 157) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 158) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 159) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 160) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 161) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 162) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 163) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 164) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 165) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 166) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 167) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 168) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 169) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 170) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 171) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 172) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 173) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 174) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 175) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 176) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 177) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 178) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 179) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 180) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 181) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 182) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 183) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 184) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 185) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 186) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 187) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 188) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 189) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 190) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 191) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 192) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 193) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 194) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 195) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 196) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 197) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 198) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 199) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 200) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 201) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 202) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 203) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 204) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 205) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 206) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 207) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 208) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 209) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 210) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 211) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 212) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 213) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 214) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 215) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 216) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 217) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 218) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 219) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 220) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 221) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 222) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 223) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 224) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 225) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 226) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 227) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 228) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 229) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 230) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 231) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 232) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 233) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 234) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 235) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 236) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 237) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 238) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 239) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 240) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 241) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 242) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 243) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 244) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 245) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 246) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 247) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 248) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 249) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 250) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 251) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 252) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 253) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 254) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 255) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 256) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 257) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 258) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 259) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 260) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 261) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 262) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 263) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 264) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 265) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 266) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 267) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 268) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 269) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 270) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 271) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 272) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 273) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 274) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 275) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 276) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 277) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 278) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 279) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 280) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 281) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 282) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 283) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 284) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 285) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 286) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 287) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 288) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 289) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 290) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 291) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 292) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 293) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 294) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 295) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 296) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 297) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 298) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 299) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 300) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 301) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 302) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 303) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 304) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 305) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 306) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 307) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 308) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 309) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 310) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 311) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 312) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 313) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 314) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 315) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 316) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 317) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 318) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 319) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 320) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 321) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 322) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 323) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 324) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 325) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 326) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 327) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 328) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 329) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 330) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 331) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 332) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 333) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 334) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 335) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 336) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 337) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 338) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 339) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 340) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 341) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 342) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 343) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 344) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 345) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 346) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 347) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 348) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 349) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 350) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 351) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 352) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 353) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 354) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 355) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 356) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 357) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 358) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 359) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 360) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 361) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 362) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 363) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 364) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 365) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 366) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 367) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 368) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 369) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 370) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 371) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 372) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 373) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 374) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 375) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 376) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 377) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 378) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 379) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 380) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 381) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 382) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 383) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 384) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 385) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 386) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 387) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 388) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 389) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 390) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 391) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 392) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 393) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 394) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 395) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 396) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 397) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 398) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 399) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 400) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 401) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 402) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 403) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 404) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 405) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 406) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 407) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 408) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 409) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 410) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 411) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 412) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 413) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 414) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 415) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 416) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 417) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 418) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 419) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 420) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 421) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 422) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 423) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 424) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 425) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \"\n\t    ],\n            \"gasLimit\" : [\n                \"2000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stTimeConsuming/sstore_combinations_initial21_2_ParisFiller.json",
    "content": "{\n    \"sstore_combinations_initial21_2_Paris\" : {\n\t    \"_info\" : {\n\t        \"comment\" : \"sstore 2 -> {calltype} -> change to {0, 1, 2} |-> {calltype} -> {non, oog, revert} |-> {calltype} -> change to {0, 1, 2} |-> {non, oog, revert}\",\n\t\t\t\"pytest_marks\": [\"slow\"]\n\t    },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t        {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t    \"2000000000000000000000000000000000000000\" : {\n\t\t            \t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t                \"storage\" : {\n\t\t\t                \"0x01\" : \"0x01\"\n\t\t                }\n        \t\t    },\n\t\t            \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t            \"nonce\" : \"1\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] 0  [[1]] 1  [[2]] 2 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n\t        \"b100000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] 0  [[1]] 1  [[2]] 2 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t        \t    \"0x00\" : \"0x01\",\n\t\t            \"0x01\" : \"0x01\",\n\t\t            \"0x02\" : \"0x01\"\n                }\n            },\n    \t    \"b200000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] 0  [[1]] 1  [[2]] 2 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t            \"0x00\" : \"0x02\",\n\t\t            \"0x01\" : \"0x02\",\n\t\t            \"0x02\" : \"0x02\"\n                }\n            },\n    \t    \"1000000000000000000000000000000000000000\" : {\n                \"balance\" : \"10\",\n                \"//code\" : \"do nothing\",\n                \"code\" : \"\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t            \"0x00\" : \"0x01\",\n\t\t            \"0x01\" : \"0x01\",\n\t\t            \"0x02\" : \"0x01\"\n                }\n            },\n    \t    \"2000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n\t        \t\"//code\" : \"runs oog\",\n                \"code\" : \"{ [[1]] 1 [[1]] 0 [[2]] 1 [[2]] 0 [[3]] 1 [[3]] 0 [[4]] 1 [[4]] 0 [[5]] 1 [[5]] 0 [[6]] 1 [[6]] 0 [[7]] 1 [[7]] 0 [[8]] 1 [[8]] 0 [[9]] 1 [[9]] 0 [[10]] 1 [[10]] 0 [[11]] 1 [[11]] 0 [[12]] 1 [[12]] 0 [[13]] 1 [[13]] 0 [[14]] 1 [[14]] 0 [[15]] 1 [[15]] 0 [[16]] 1 [[16]] 0  [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n    \t    \"3000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"//code\" : \"do revert\",\n                \"code\" : \"{ (REVERT 0 32) }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t            \"0x00\" : \"0x02\",\n\t\t            \"0x01\" : \"0x02\",\n\t\t            \"0x02\" : \"0x02\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\"{ (MSTORE 100 1276) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1277) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1278) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1279) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1280) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1281) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1282) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1283) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1284) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1285) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1286) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1287) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1288) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1289) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1290) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1291) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1292) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1293) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1294) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1295) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1296) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1297) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1298) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1299) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1300) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1301) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1302) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1303) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1304) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1305) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1306) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1307) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1308) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1309) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1310) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1311) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1312) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1313) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1314) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1315) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1316) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1317) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1318) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1319) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1320) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1321) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1322) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1323) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1324) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1325) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1326) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1327) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1328) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1329) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1330) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1331) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1332) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1333) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1334) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1335) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1336) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1337) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1338) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1339) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1340) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1341) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1342) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1343) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1344) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1345) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1346) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1347) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1348) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1349) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1350) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1351) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1352) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1353) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1354) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1355) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1356) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1357) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1358) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1359) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1360) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1361) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1362) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1363) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1364) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1365) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1366) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1367) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1368) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1369) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1370) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1371) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1372) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1373) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1374) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1375) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1376) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1377) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1378) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1379) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1380) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1381) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1382) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1383) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1384) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1385) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1386) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1387) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1388) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1389) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1390) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1391) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1392) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1393) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1394) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1395) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1396) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1397) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1398) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1399) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1400) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1401) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1402) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1403) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1404) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1405) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1406) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1407) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1408) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1409) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1410) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1411) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1412) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1413) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1414) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1415) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1416) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1417) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1418) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1419) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1420) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1421) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1422) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1423) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1424) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1425) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1426) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1427) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1428) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1429) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1430) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1431) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1432) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1433) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1434) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1435) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1436) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1437) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1438) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1439) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1440) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1441) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1442) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1443) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1444) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1445) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1446) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1447) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1448) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1449) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1450) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1451) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1452) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1453) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1454) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1455) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1456) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1457) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1458) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1459) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1460) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1461) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1462) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1463) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1464) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1465) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1466) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1467) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1468) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1469) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1470) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1471) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1472) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1473) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1474) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1475) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1476) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1477) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1478) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1479) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1480) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1481) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1482) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1483) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1484) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1485) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1486) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1487) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1488) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1489) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1490) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1491) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1492) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1493) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1494) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1495) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1496) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1497) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1498) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1499) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1500) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1501) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1502) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1503) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1504) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1505) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1506) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1507) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1508) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1509) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1510) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1511) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1512) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1513) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1514) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1515) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1516) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1517) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1518) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1519) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1520) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1521) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1522) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1523) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1524) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1525) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1526) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1527) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1528) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1529) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1530) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1531) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1532) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1533) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1534) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1535) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1536) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1537) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1538) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1539) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1540) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1541) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1542) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1543) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1544) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1545) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1546) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1547) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1548) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1549) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1550) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1551) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1552) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1553) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1554) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1555) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1556) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1557) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1558) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1559) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1560) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1561) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1562) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1563) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1564) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1565) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1566) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1567) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1568) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1569) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1570) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1571) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1572) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1573) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1574) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1575) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1576) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1577) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1578) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1579) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1580) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1581) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1582) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1583) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1584) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1585) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1586) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1587) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1588) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1589) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1590) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1591) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1592) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1593) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1594) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1595) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1596) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1597) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1598) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1599) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1600) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1601) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1602) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1603) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1604) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1605) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1606) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1607) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1608) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1609) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1610) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1611) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1612) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1613) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1614) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1615) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1616) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1617) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1618) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1619) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1620) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1621) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1622) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1623) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1624) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1625) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1626) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1627) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1628) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1629) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1630) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1631) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1632) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1633) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1634) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1635) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1636) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1637) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1638) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1639) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1640) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1641) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1642) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1643) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1644) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1645) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1646) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1647) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1648) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1649) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1650) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1651) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1652) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1653) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1654) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1655) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1656) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1657) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1658) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1659) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1660) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1661) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1662) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1663) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1664) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1665) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1666) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1667) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1668) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1669) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1670) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1671) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1672) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1673) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1674) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1675) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1676) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1677) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1678) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1679) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1680) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1681) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1682) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1683) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1684) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1685) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1686) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1687) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1688) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1689) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1690) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1691) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1692) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1693) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1694) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1695) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1696) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1697) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1698) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1699) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1700) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1701) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1702) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1703) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1704) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1705) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1706) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1707) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1708) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1709) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1710) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1711) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1712) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1713) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1714) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1715) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1716) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1717) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1718) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1719) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1720) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1721) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1722) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1723) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1724) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1725) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1726) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1727) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1728) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \"\n\t    ],\n            \"gasLimit\" : [\n                \"2000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stTimeConsuming/sstore_combinations_initial21_ParisFiller.json",
    "content": "{\n    \"sstore_combinations_initial21_Paris\" : {\n\t    \"_info\" : {\n\t        \"comment\" : \"sstore 2 -> {calltype} -> change to {0, 1, 2} |-> {calltype} -> {non, oog, revert} |-> {calltype} -> change to {0, 1, 2} |-> {non, oog, revert}\",\n\t\t\t\"pytest_marks\": [\"slow\"]\n\t    },\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t        {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t    \"2000000000000000000000000000000000000000\" : {\n\t\t            \t\"//comment\" : \"indicates that call finished without OOG\",\n\t\t                \"storage\" : {\n\t\t\t                \"0x01\" : \"0x01\"\n\t\t                }\n        \t\t    },\n\t\t            \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n\t\t\t            \"nonce\" : \"1\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] 0  [[1]] 1  [[2]] 2 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n\t        \"b100000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] 0  [[1]] 1  [[2]] 2 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t        \t    \"0x00\" : \"0x01\",\n\t\t            \"0x01\" : \"0x01\",\n\t\t            \"0x02\" : \"0x01\"\n                }\n            },\n    \t    \"b200000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{ [[0]] 0  [[1]] 1  [[2]] 2 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t            \"0x00\" : \"0x02\",\n\t\t            \"0x01\" : \"0x02\",\n\t\t            \"0x02\" : \"0x02\"\n                }\n            },\n    \t    \"1000000000000000000000000000000000000000\" : {\n                \"balance\" : \"10\",\n                \"//code\" : \"do nothing\",\n                \"code\" : \"\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t            \"0x00\" : \"0x01\",\n\t\t            \"0x01\" : \"0x01\",\n\t\t            \"0x02\" : \"0x01\"\n                }\n            },\n    \t    \"2000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n\t        \t\"//code\" : \"runs oog\",\n                \"code\" : \"{ [[1]] 1 [[1]] 0 [[2]] 1 [[2]] 0 [[3]] 1 [[3]] 0 [[4]] 1 [[4]] 0 [[5]] 1 [[5]] 0 [[6]] 1 [[6]] 0 [[7]] 1 [[7]] 0 [[8]] 1 [[8]] 0 [[9]] 1 [[9]] 0 [[10]] 1 [[10]] 0 [[11]] 1 [[11]] 0 [[12]] 1 [[12]] 0 [[13]] 1 [[13]] 0 [[14]] 1 [[14]] 0 [[15]] 1 [[15]] 0 [[16]] 1 [[16]] 0  [[1]] 1 }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n                }\n            },\n    \t    \"3000000000000000000000000000000000000000\" : {\n                \"balance\" : \"\",\n                \"//code\" : \"do revert\",\n                \"code\" : \"{ (REVERT 0 32) }\",\n                \"nonce\" : \"\",\n                \"storage\" : {\n\t\t            \"0x00\" : \"0x02\",\n\t\t            \"0x01\" : \"0x02\",\n\t\t            \"0x02\" : \"0x02\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n\t\t\"{ (MSTORE 100 850) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 851) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 852) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 853) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 854) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 855) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 856) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 857) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 858) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 859) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 860) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 861) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 862) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 863) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 864) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 865) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 866) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 867) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 868) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 869) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 870) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 871) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 872) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 873) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 874) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 875) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 876) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 877) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 878) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 879) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 880) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 881) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 882) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 883) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 884) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 885) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 886) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 887) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 888) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 889) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 890) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 891) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 892) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 893) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 894) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 895) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 896) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 897) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 898) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 899) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 900) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 901) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 902) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 903) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 904) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 905) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 906) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 907) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 908) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 909) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 910) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 911) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 912) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 913) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 914) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 915) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 916) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 917) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 918) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 919) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 920) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 921) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 922) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 923) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 924) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 925) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 926) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 927) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 928) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 929) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 930) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 931) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 932) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 933) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 934) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 935) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 936) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 937) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 938) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 939) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 940) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 941) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 942) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 943) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 944) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 945) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 946) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 947) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 948) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 949) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 950) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 951) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 952) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 953) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 954) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 955) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 956) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 957) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 958) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 959) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 960) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 961) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 962) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 963) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 964) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 965) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 966) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 967) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 968) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 969) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 970) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 971) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 972) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 973) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 974) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 975) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 976) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 977) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 978) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 979) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 980) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 981) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 982) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 983) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 984) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 985) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 986) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 987) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 988) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 989) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 990) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 991) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 992) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 993) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 994) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 995) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 996) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 997) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 998) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 999) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1000) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1001) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1002) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1003) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1004) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1005) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1006) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1007) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1008) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1009) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1010) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1011) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1012) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1013) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1014) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1015) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1016) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1017) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1018) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1019) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1020) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1021) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1022) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1023) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1024) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1025) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1026) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1027) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1028) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1029) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1030) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1031) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1032) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1033) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1034) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1035) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1036) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1037) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1038) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1039) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1040) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1041) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1042) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1043) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1044) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1045) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1046) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1047) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1048) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1049) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1050) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1051) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1052) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1053) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1054) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1055) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1056) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1057) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1058) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1059) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1060) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1061) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1062) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1063) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1064) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1065) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1066) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1067) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1068) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1069) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1070) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1071) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1072) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1073) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1074) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1075) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1076) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1077) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1078) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1079) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1080) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1081) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1082) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1083) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1084) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1085) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1086) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1087) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1088) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1089) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1090) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1091) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1092) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1093) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1094) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1095) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1096) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1097) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1098) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1099) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1100) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1101) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1102) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1103) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1104) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1105) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1106) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1107) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1108) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1109) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1110) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1111) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1112) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1113) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1114) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1115) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1116) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1117) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1118) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1119) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1120) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1121) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1122) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1123) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1124) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1125) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1126) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1127) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1128) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1129) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1130) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1131) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1132) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1133) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1134) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1135) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1136) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1137) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1138) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1139) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1140) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1141) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1142) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1143) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1144) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1145) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1146) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1147) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1148) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1149) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1150) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1151) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1152) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1153) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1154) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1155) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1156) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1157) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1158) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1159) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1160) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1161) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1162) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1163) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1164) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1165) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1166) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1167) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1168) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1169) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1170) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1171) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1172) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1173) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1174) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1175) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1176) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1177) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1178) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1179) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1180) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1181) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1182) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1183) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1184) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1185) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1186) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1187) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1188) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1189) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1190) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1191) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1192) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1193) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1194) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1195) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1196) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1197) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1198) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1199) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1200) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1201) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1202) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1203) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1204) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1205) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1206) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1207) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1208) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1209) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1210) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1211) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1212) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1213) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1214) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1215) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1216) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1217) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1218) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1219) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1220) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1221) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1222) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1223) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1224) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1225) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1226) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1227) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1228) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1229) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1230) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1231) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1232) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1233) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1234) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1235) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1236) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1237) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1238) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1239) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1240) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1241) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1242) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1243) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1244) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1245) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1246) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1247) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1248) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1249) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1250) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1251) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1252) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1253) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1254) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1255) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1256) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1257) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1258) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1259) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1260) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (STATICCALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1261) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1262) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1263) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1264) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1265) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1266) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALLCODE 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1267) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1268) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1269) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (DELEGATECALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1270) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1271) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1272) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (STATICCALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1273) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x1000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1274) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x2000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \",\n\t\t\"{ (MSTORE 100 1275) (DELEGATECALL 300000 0xb200000000000000000000000000000000000000 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALLCODE 300000 0xb200000000000000000000000000000000000000 0 0 32 0 0) (CALL 300000 0x3000000000000000000000000000000000000000 0 0 0 0 0) (CALL 600000 0x2000000000000000000000000000000000000000 0 0 0 0 0) } \"\n\t    ],\n            \"gasLimit\" : [\n                \"2000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stTransactionTest/ContractStoreClearsOOGFiller.json",
    "content": "{\n    \"ContractStoreClearsOOG\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"100000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"1\"\n                    },\n                    \"<contract:target:0xd2571607e241ecf590ed94b12d87c94babe36db6>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x0c\",\n                            \"0x01\" : \"0x0c\",\n                            \"0x02\" : \"0x0c\",\n                            \"0x03\" : \"0x0c\",\n                            \"0x04\" : \"0x0c\",\n                            \"0x05\" : \"0x0c\",\n                            \"0x06\" : \"0x0c\",\n                            \"0x07\" : \"0x0c\",\n                            \"0x08\" : \"0x0c\",\n                            \"0x09\" : \"0x0c\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"30000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0xd2571607e241ecf590ed94b12d87c94babe36db6>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{(SSTORE 0 0)(SSTORE 1 0)(SSTORE 2 0)(SSTORE 3 0)(SSTORE 4 0)(SSTORE 5 0)(SSTORE 6 0)(SSTORE 7 0)(SSTORE 8 0)(SSTORE 9 12)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x0c\",\n                    \"0x01\" : \"0x0c\",\n                    \"0x02\" : \"0x0c\",\n                    \"0x03\" : \"0x0c\",\n                    \"0x04\" : \"0x0c\",\n                    \"0x05\" : \"0x0c\",\n                    \"0x06\" : \"0x0c\",\n                    \"0x07\" : \"0x0c\",\n                    \"0x08\" : \"0x0c\",\n                    \"0x09\" : \"0x0c\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"23000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xd2571607e241ecf590ed94b12d87c94babe36db6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stTransactionTest/ContractStoreClearsSuccessFiller.json",
    "content": "{\n    \"ContractStoreClearsSuccess\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0xd2571607e241ecf590ed94b12d87c94babe36db6>\" : {\n                        \"balance\" : \"10\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"140000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0xd2571607e241ecf590ed94b12d87c94babe36db6>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{(SSTORE 0 0)(SSTORE 1 0)(SSTORE 2 0)(SSTORE 3 0)(SSTORE 4 0)(SSTORE 5 0)(SSTORE 6 0)(SSTORE 7 0)(SSTORE 8 0)(SSTORE 9 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x0c\",\n                    \"0x01\" : \"0x0c\",\n                    \"0x02\" : \"0x0c\",\n                    \"0x03\" : \"0x0c\",\n                    \"0x04\" : \"0x0c\",\n                    \"0x05\" : \"0x0c\",\n                    \"0x06\" : \"0x0c\",\n                    \"0x07\" : \"0x0c\",\n                    \"0x08\" : \"0x0c\",\n                    \"0x09\" : \"0x0c\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"130000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xd2571607e241ecf590ed94b12d87c94babe36db6>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stTransactionTest/CreateMessageRevertedFiller.json",
    "content": "{\n    \"CreateMessageReverted\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"1\"\n                    },\n                    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"30000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{(MSTORE 0 0x600c600055) (CREATE 0 27 5)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"21882\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"100\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stTransactionTest/CreateMessageSuccessFiller.json",
    "content": "{\n    \"CreateMessageSuccess\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"balance\" : \"100\",\n                        \"nonce\" : \"1\"\n                    },\n                    \"f1ecf98489fa9ed60a664fc4998db699cfa39d40\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x0c\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{(MSTORE 0 0x600c600055) (CREATE 0 27 5)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"131882\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"100\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stTransactionTest/CreateTransactionSuccessFiller.json",
    "content": "{\n    \"CreateTransactionSuccess\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"balance\" : \"100\",\n                        \"code\" : \"0x60e060020a600035048063f8a8fd6d14601457005b601a6020565b60006000f35b56\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"100000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x602280600c6000396000f30060e060020a600035048063f8a8fd6d14601457005b601a6020565b60006000f35b56\"\n            ],\n            \"gasLimit\" : [\n                \"70000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"100\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stTransactionTest/EmptyTransaction3Filler.json",
    "content": "{\n    \"EmptyTransaction3\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"code\" : \"0x\"\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"//balance\" : \"47000\",\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"100000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"55000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stTransactionTest/HighGasLimitFiller.json",
    "content": "{\n    \"HighGasLimit\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"1\"\n                    },\n                    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"balance\" : \"900\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"115792089237316195423570985008687907853269984665640564039457584007913129639935\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x3240349548983454\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"900\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stTransactionTest/HighGasPriceParisFiller.yml",
    "content": "# Send a transaction where gasLimit * gasPrice > 256bit\n# i.e. the 257th bit is set, and the value formed by the remaining 256 least significant bits\n# is a number less than or equal to the balance.\n---\nHighGasPriceParis:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x020000'\n    currentGasLimit: '89128960'\n    currentBaseFee: '10'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n\n  pre:\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: 1000000000\n      code: ''\n      nonce: 0\n      storage: {}\n    <eoa:0xd0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0>:\n      balance: 10\n      code: ''\n      nonce: 0\n      storage: {}\n\n  transaction:\n    data:\n      - ''\n    gasLimit:\n      - 21000\n    # gasPrice = (2**256 + 1000000000) // 21000\n    # ((gasPrice * 21000) & (2**256-1)) + value < balance\n    gasPrice: 5513909011300771210646237381366090850155713555506693525688456381329244268\n    nonce: 0\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: '<eoa:0xd0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0>'\n    value:\n      - 1\n\n  expect:\n    - network:\n        - '>=Cancun'\n      expectException:\n        \">=EIP158\" : \"TransactionException.INSUFFICIENT_ACCOUNT_FUNDS|TransactionException.GASLIMIT_PRICE_PRODUCT_OVERFLOW\"\n      result:\n         2adc25665018aa1fe0e6bc666dac8fc2697ff9ba:\n           shouldnotexist : \"true\"\n         <eoa:0xd0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0>:\n           balance : \"10\"\n\n"
  },
  {
    "path": "tests/static/state_tests/stTransactionTest/InternalCallHittingGasLimit2Filler.json",
    "content": "{\n    \"InternalCallHittingGasLimit2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adf5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"47766\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"balance\" : \"0\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (CALL 25000 <contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 1 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{[[1]]55}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"47766\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stTransactionTest/InternalCallHittingGasLimitFiller.json",
    "content": "{\n    \"InternalCallHittingGasLimit\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adf5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"22000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"balance\" : \"0\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000\",\n                \"code\" : \"{ (CALL 5000 <contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 1 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{[[1]]55}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"21100\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stTransactionTest/InternalCallHittingGasLimitSuccessFiller.json",
    "content": "{\n    \"InternalCallHittingGasLimitSuccess\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adf5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"220000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"balance\" : \"1\",\n                        \"storage\" : {\n                            \"0x01\" : \"0x37\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{ (CALL 25000 <contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 1 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{[[1]]55}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"150000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stTransactionTest/InternalCallStoreClearsOOGFiller.json",
    "content": "{\n    \"InternalCallStoreClearsOOG\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0x0000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x0c\",\n                            \"0x01\" : \"0x0c\",\n                            \"0x02\" : \"0x0c\",\n                            \"0x03\" : \"0x0c\",\n                            \"0x04\" : \"0x0c\",\n                            \"0x05\" : \"0x0c\",\n                            \"0x06\" : \"0x0c\",\n                            \"0x07\" : \"0x0c\",\n                            \"0x08\" : \"0x0c\",\n                            \"0x09\" : \"0x0c\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"1\"\n                    },\n                    \"<contract:target:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"balance\" : \"20\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:0x0000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{(SSTORE 0 0)(SSTORE 1 0)(SSTORE 2 0)(SSTORE 3 0)(SSTORE 4 0)(SSTORE 5 0)(SSTORE 6 0)(SSTORE 7 0)(SSTORE 8 0)(SSTORE 9 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x0c\",\n                    \"0x01\" : \"0x0c\",\n                    \"0x02\" : \"0x0c\",\n                    \"0x03\" : \"0x0c\",\n                    \"0x04\" : \"0x0c\",\n                    \"0x05\" : \"0x0c\",\n                    \"0x06\" : \"0x0c\",\n                    \"0x07\" : \"0x0c\",\n                    \"0x08\" : \"0x0c\",\n                    \"0x09\" : \"0x0c\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"//\" : \"gas = 19 going OOG, gas = 20 fine\",\n                \"balance\" : \"10\",\n                \"code\" : \"{ (CALL 40000 <contract:0x0000000000000000000000000000000000000000> 1 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"160000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stTransactionTest/InternalCallStoreClearsSuccessFiller.json",
    "content": "{\n    \"InternalCallStoreClearsSuccess\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0x0000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"1\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"1\"\n                    },\n                    \"<contract:target:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"balance\" : \"19\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:0x0000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{(SSTORE 0 0)(SSTORE 1 0)(SSTORE 2 0)(SSTORE 3 0)(SSTORE 4 0)(SSTORE 5 0)(SSTORE 6 0)(SSTORE 7 0)(SSTORE 8 0)(SSTORE 9 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x0c\",\n                    \"0x01\" : \"0x0c\",\n                    \"0x02\" : \"0x0c\",\n                    \"0x03\" : \"0x0c\",\n                    \"0x04\" : \"0x0c\",\n                    \"0x05\" : \"0x0c\",\n                    \"0x06\" : \"0x0c\",\n                    \"0x07\" : \"0x0c\",\n                    \"0x08\" : \"0x0c\",\n                    \"0x09\" : \"0x0c\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"//\" : \"gas = 19 going OOG, gas = 20 fine\",\n                \"balance\" : \"10\",\n                \"code\" : \"{ (CALL 100000 <contract:0x0000000000000000000000000000000000000000> 1 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"160000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stTransactionTest/NoSrcAccount1559Filler.yml",
    "content": "# Send type 2 (EIP-1559) transactions from a non existent address\n\nNoSrcAccount1559:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x020000'\n    currentGasLimit: '89128960'\n    currentBaseFee: '10'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n\n  pre:\n    # The empty address is a94f5374fce5edbc8e2a8697c15331677e6ebf0b.\n\n    # Just a random address to call    \n    <contract:target:0xd0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0>:\n      balance: 0\n      code: :raw 0x00\n      nonce: 0\n      storage: {}\n\n  transaction:\n    # Regardless of access list, these fields specify this is type 2 (EIP-1559)\n    maxPriorityFeePerGas: 10\n    maxFeePerGas: 2000\n    data:\n      # Empty access list\n      - data: :raw 0x00\n        accessList: []\n      # Access list, but no storage keys\n      - data: :raw 0x00\n        accessList:\n        - address: <contract:target:0xd0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0>\n          storageKeys: []\n      # Access list with a storage key\n      - data: :raw 0x00\n        accessList:\n        - address: <contract:target:0xd0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0>\n          storageKeys:\n          - 0x00\n          - 0x01\n    gasLimit:\n      - 21000    # Minimum\n      - 210000   # Higher than minimum\n      - 0        # We have enough ETH for this one\n    nonce: 0\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0xd0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0>\n    value:\n      - 0\n      - 1\n\n  expect:\n    # Transaction type 2 starts at London\n\n    # Not enough ETH for executing the transaction\n    - network:\n        - '>=Cancun'\n      indexes:\n        data: !!int -1\n        gas: !!int 0\n        value: !!int -1\n      expectException:\n        \">=Cancun\" : \"TransactionException.INSUFFICIENT_ACCOUNT_FUNDS|TransactionException.INTRINSIC_GAS_TOO_LOW\"        #Nimbus get different exception type here\n        \"<London\" : \"TransactionException.TYPE_NOT_SUPPORTED\"\n      result: {}\n\n    - network:\n        - '>=Cancun'\n      indexes:\n        data: !!int -1\n        gas: !!int 1\n        value: !!int -1\n      expectException:\n        \">=Cancun\" : \"TransactionException.INSUFFICIENT_ACCOUNT_FUNDS\"\n        \"<London\" : \"TransactionException.TYPE_NOT_SUPPORTED\"\n      result: {}\n\n\n    # Not enough ETH for the value we transfer\n    - network:\n        - '>=Cancun'\n      indexes:\n        data: !!int -1\n        gas: !!int 2\n        value: !!int 1\n      expectException:\n        \">=Cancun\" : \"TransactionException.INSUFFICIENT_ACCOUNT_FUNDS|TransactionException.INTRINSIC_GAS_TOO_LOW\"\n        \"<London\" : \"TransactionException.TYPE_NOT_SUPPORTED\"\n      result: {}\n\n\n\n    # Gas limit of zero, should be at least 21000\n    - network:\n        - '>=Cancun'\n      indexes:\n        data: !!int -1\n        gas: !!int 2\n        value: !!int 0\n      expectException:\n        \">=Cancun\" : \"TransactionException.INTRINSIC_GAS_TOO_LOW\"\n        \"<London\" : \"TransactionException.TYPE_NOT_SUPPORTED\"\n      result: {}\n\n"
  },
  {
    "path": "tests/static/state_tests/stTransactionTest/NoSrcAccountCreate1559Filler.yml",
    "content": "# Send type 2 (EIP-1559) transactions from a non existent address\n# in an attempt to create a new contract\n\nNoSrcAccountCreate1559:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x020000'\n    currentGasLimit: '89128960'\n    currentBaseFee: '10'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n\n  pre:\n    # The empty address is a94f5374fce5edbc8e2a8697c15331677e6ebf0b.\n    <eoa:0xbad0000000000000000000000000000000000000>:\n      balance: 0\n      nonce: 0x60A7\n      code: 0x\n      storage: {}\n\n  transaction:\n    # Regardless of access list, these fields specify this is type 2 (EIP-1559)\n    maxPriorityFeePerGas: 10\n    maxFeePerGas: 2000\n    data:\n      # Empty access list\n      - data: :raw 0x00\n        accessList: []\n      # Access list, but no storage keys\n      - data: :raw 0x00\n        accessList:\n        - address: 0xd0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0\n          storageKeys: []\n      # Access list with a storage key\n      - data: :raw 0x00\n        accessList:\n        - address: 0xd0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0\n          storageKeys:\n          - 0x00\n          - 0x01\n    gasLimit:\n      - 21000    # Minimum\n      - 210000   # Higher than minimum\n      - 0        # We have enough ETH for this one\n    nonce: 0\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: \"\"  # Account creation txn\n    value:\n      - 0\n      - 1\n\n  expect:\n    # Transaction type 2 starts at London\n\n    # Not enough ETH for executing the transaction\n    - network:\n        - '>=Cancun'\n      indexes:\n        data: !!int -1\n        gas: !!int 0\n        value: !!int -1\n      expectException:\n        \">=Cancun\" : \"TransactionException.INSUFFICIENT_ACCOUNT_FUNDS|TransactionException.INTRINSIC_GAS_TOO_LOW\"\n        \"<London\" : \"TransactionException.TYPE_NOT_SUPPORTED\"\n      result: {}\n    - network:\n        - '>=Cancun'\n      indexes:\n        data: !!int -1\n        gas: !!int 1\n        value: !!int -1\n      expectException:\n        \">=Cancun\" : \"TransactionException.INSUFFICIENT_ACCOUNT_FUNDS\"\n        \"<London\" : \"TransactionException.TYPE_NOT_SUPPORTED\"\n      result: {}\n\n\n    # Not enough ETH for the value we transfer\n    - network:\n        - '>=Cancun'\n      indexes:\n        data: !!int -1\n        gas: !!int 2\n        value: !!int 1\n      expectException:\n        \">=Cancun\" : \"TransactionException.INSUFFICIENT_ACCOUNT_FUNDS|TransactionException.INTRINSIC_GAS_TOO_LOW\"\n        \"<London\" : \"TransactionException.TYPE_NOT_SUPPORTED\"\n      result: {}\n\n\n\n    # Gas limit of zero, should be at least 21000\n    - network:\n        - '>=Cancun'\n      indexes:\n        data: !!int -1\n        gas: !!int 2\n        value: !!int 0\n      expectException:\n        \">=Cancun\" : \"TransactionException.INTRINSIC_GAS_TOO_LOW\"\n        \"<London\" : \"TransactionException.TYPE_NOT_SUPPORTED\"\n      result: {}\n\n"
  },
  {
    "path": "tests/static/state_tests/stTransactionTest/NoSrcAccountCreateFiller.yml",
    "content": "# Send transactions where the source address is empty (no nonce, no eth).\n# These are contract creation transactions\n# Should always fail\n\nNoSrcAccountCreate:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x020000'\n    currentGasLimit: '89128960'\n    currentBaseFee: '10'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n\n  pre:\n    # The empty address is a94f5374fce5edbc8e2a8697c15331677e6ebf0b.\n\n    # Just a random address to call    \n    <contract:0xd0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0>:\n      balance: 0\n      code: :raw 0x00\n      nonce: 0\n      storage: {}\n\n  transaction:\n    data:\n      # Nothing\n      - 0x\n      # Some junk data\n      - :raw 0xDEAD60A7\n\n      # The accessList makes this transaction type 1.\n      # Empty access list\n      - data: :raw 0x00\n        accessList: []\n      # Access list, but no storage keys\n      - data: :raw 0x00\n        accessList:\n        - address: <contract:0xd0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0>\n          storageKeys: []\n      # Access list with a storage key\n      - data: :raw 0x00\n        accessList:\n        - address: <contract:0xd0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0>\n          storageKeys:\n          - 0x00\n          - 0x01\n    gasLimit:\n      - 21000    # Minimum\n      - 210000   # Higher than minimum\n      - 0        # We have enough ETH for this one\n    gasPrice: 100\n    nonce: 0\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: \"\"\n    value:\n      - 0\n      - 1\n\n  expect:\n    # Not enough ETH for executing the transaction\n    - network:\n        - '>=Cancun'\n      indexes:\n        data: !!int 0\n        gas: !!int 0\n        value: !!int -1\n      expectException:\n        \">=Homestead\" : \"TransactionException.INSUFFICIENT_ACCOUNT_FUNDS|TransactionException.INTRINSIC_GAS_TOO_LOW\"    #nimbus have different exception type here\n        \"<Homestead\" : \"TransactionException.INSUFFICIENT_ACCOUNT_FUNDS\"\n      result: {}\n    - network:\n        - '>=Cancun'\n      indexes:\n        data: !!int 1\n        gas: !!int 0\n        value: !!int -1\n      expectException:\n        \">=Frontier\" : \"TransactionException.INSUFFICIENT_ACCOUNT_FUNDS|TransactionException.INTRINSIC_GAS_TOO_LOW\"    #nimbus have different exception type here\n      result: {}\n    - network:\n        - '>=Cancun'\n      indexes:\n        data: 0-1\n        gas: !!int 1\n        value: !!int -1\n      expectException:\n        \">=Frontier\" : \"TransactionException.INSUFFICIENT_ACCOUNT_FUNDS\"\n      result: {}\n\n\n    # Not enough ETH for the value we transfer\n    - network:\n        - '>=Cancun'\n      indexes:\n        data: 0-1\n        gas: !!int 2\n        value: !!int 1\n      expectException:\n        \">=Frontier\" : \"TransactionException.INSUFFICIENT_ACCOUNT_FUNDS|TransactionException.INTRINSIC_GAS_TOO_LOW\"        #nimbus have different exception type here\n      result: {}\n\n\n\n    # Gas limit of zero, should be at least 21000\n    - network:\n        - '>=Cancun'\n      indexes:\n        data: 0-1\n        gas: !!int 2\n        value: !!int 0\n      expectException:\n        \">=Frontier\" : \"TransactionException.INTRINSIC_GAS_TOO_LOW\"\n      result: {}\n\n\n    # Transaction type 1 starts at Berlin \n\n    # Not enough ETH for executing the transaction\n    - network:\n        - '>=Cancun'\n      indexes:\n        data: 2-4\n        gas: !!int 0\n        value: !!int -1\n      expectException:\n        \">=Cancun\" : \"TransactionException.INSUFFICIENT_ACCOUNT_FUNDS|TransactionException.INTRINSIC_GAS_TOO_LOW\"\n        \"<Berlin\" : \"TransactionException.TYPE_NOT_SUPPORTED\"\n      result: {}\n    - network:\n        - '>=Cancun'\n      indexes:\n        data: 2-4\n        gas: !!int 1\n        value: !!int -1\n      expectException:\n        \">=Cancun\" : \"TransactionException.INSUFFICIENT_ACCOUNT_FUNDS\"\n        \"<Berlin\" : \"TransactionException.TYPE_NOT_SUPPORTED\"\n      result: {}\n\n\n    # Not enough ETH for the value we transfer\n    - network:\n        - '>=Cancun'\n      indexes:\n        data: 2-4\n        gas: !!int 2\n        value: !!int 1\n      expectException:\n        \">=Cancun\" : \"TransactionException.INSUFFICIENT_ACCOUNT_FUNDS|TransactionException.INTRINSIC_GAS_TOO_LOW\"\n        \"<Berlin\" : \"TransactionException.TYPE_NOT_SUPPORTED\"\n      result: {}\n\n\n\n    # Gas limit of zero, should be at least 21000\n    - network:\n        - '>=Cancun'\n      indexes:\n        data: 2-4\n        gas: !!int 2\n        value: !!int 0\n      expectException:\n        \">=Cancun\" : \"TransactionException.INTRINSIC_GAS_TOO_LOW\"\n        \"<Berlin\" : \"TransactionException.TYPE_NOT_SUPPORTED\"\n      result: {}\n\n"
  },
  {
    "path": "tests/static/state_tests/stTransactionTest/NoSrcAccountFiller.yml",
    "content": "# Send transactions where the source address is empty (no nonce, no eth).\n# Should always fail\n\nNoSrcAccount:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x020000'\n    currentGasLimit: '89128960'\n    currentBaseFee: '10'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n\n  pre:\n    # The empty address is a94f5374fce5edbc8e2a8697c15331677e6ebf0b.\n\n    # Just a random address to call    \n    <contract:target:0xd0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0>:\n      balance: 0\n      code: :raw 0x00\n      nonce: 0\n      storage: {}\n\n  transaction:\n    data:\n      # Nothing\n      - 0x\n      # Some junk data\n      - :raw 0xDEAD60A7\n\n      # The accessList makes this transaction type 1.\n      # Empty access list\n      - data: :raw 0x00\n        accessList: []\n      # Access list, but no storage keys\n      - data: :raw 0x00\n        accessList:\n        - address: <contract:target:0xd0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0>\n          storageKeys: []\n      # Access list with a storage key\n      - data: :raw 0x00\n        accessList:\n        - address: <contract:target:0xd0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0>\n          storageKeys:\n          - 0x00\n          - 0x01\n    gasLimit:\n      - 21000    # Minimum\n      - 210000   # Higher than minimum\n      - 0        # We have enough ETH for this one\n    gasPrice: 100\n    nonce: 0\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: <contract:target:0xd0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0>\n    value:\n      - 0\n      - 1\n\n  expect:\n\n    # Not enough ETH for executing the transaction\n    - network:\n        - '>=Cancun'\n      indexes:\n        data: !!int 0\n        gas: 0-1\n        value: !!int -1\n      expectException:\n        \">=Frontier\" : \"TransactionException.INSUFFICIENT_ACCOUNT_FUNDS\"\n      result: {}\n\n\n    - network:\n        - '>=Cancun'\n      indexes:\n        data: !!int 1\n        gas: !!int 0\n        value: !!int -1\n      expectException:\n        \">=Frontier\" : \"TransactionException.INSUFFICIENT_ACCOUNT_FUNDS|TransactionException.INTRINSIC_GAS_TOO_LOW\"            # Nimbus check triggers a different exception in this case\n      result: {}\n\n    - network:\n        - '>=Cancun'\n      indexes:\n        data: !!int 1\n        gas: !!int 1\n        value: !!int -1\n      expectException:\n        \">=Frontier\" : \"TransactionException.INSUFFICIENT_ACCOUNT_FUNDS\"\n      result: {}\n\n\n\n    # Not enough ETH for the value we transfer\n    - network:\n        - '>=Cancun'\n      indexes:\n        data: 0-1\n        gas: !!int 2\n        value: !!int 1\n      expectException:\n        \">=Frontier\" : \"TransactionException.INSUFFICIENT_ACCOUNT_FUNDS|TransactionException.INTRINSIC_GAS_TOO_LOW\"\n      result: {}\n\n\n\n    # Gas limit of zero, should be at least 21000\n    - network:\n        - '>=Cancun'\n      indexes:\n        data: 0-1\n        gas: !!int 2\n        value: !!int 0\n      expectException:\n        \">=Frontier\" : \"TransactionException.INTRINSIC_GAS_TOO_LOW\"\n      result: {}\n\n\n    # Transaction type 1 starts at Berlin \n\n    # Not enough ETH for executing the transaction\n    - network:\n        - '>=Cancun'\n      indexes:\n        data: !!int 2\n        gas: !!int 0\n        value: !!int -1\n      expectException:\n        \">=Cancun\" : \"TransactionException.INSUFFICIENT_ACCOUNT_FUNDS|TransactionException.INTRINSIC_GAS_TOO_LOW\"  # Nimbus check triggers a different exception in this case\n        \"<Berlin\" : \"TransactionException.TYPE_NOT_SUPPORTED\"\n      result: {}\n    - network:\n        - '>=Cancun'\n      indexes:\n        data: !!int 2\n        gas: !!int 1\n        value: !!int -1\n      expectException:\n        \">=Cancun\" : \"TransactionException.INSUFFICIENT_ACCOUNT_FUNDS\"\n        \"<Berlin\" : \"TransactionException.TYPE_NOT_SUPPORTED\"\n      result: {}\n    - network:\n        - '>=Cancun'\n      indexes:\n        data: !!int 3\n        gas: !!int 0\n        value: !!int -1\n      expectException:\n        \">=Cancun\" : \"TransactionException.INSUFFICIENT_ACCOUNT_FUNDS|TransactionException.INTRINSIC_GAS_TOO_LOW\" # Nimbus check triggers a different exception in this case\n        \"<Berlin\" : \"TransactionException.TYPE_NOT_SUPPORTED\"\n      result: {}\n    - network:\n        - '>=Cancun'\n      indexes:\n        data: !!int 3\n        gas: !!int 1\n        value: !!int -1\n      expectException:\n        \">=Cancun\" : \"TransactionException.INSUFFICIENT_ACCOUNT_FUNDS\"\n        \"<Berlin\" : \"TransactionException.TYPE_NOT_SUPPORTED\"\n      result: {}\n    - network:\n        - '>=Cancun'\n      indexes:\n        data: !!int 4\n        gas: !!int 0\n        value: !!int -1\n      expectException:\n        \">=Cancun\" : \"TransactionException.INSUFFICIENT_ACCOUNT_FUNDS|TransactionException.INTRINSIC_GAS_TOO_LOW\" # Nimbus check triggers a different exception in this case\n        \"<Berlin\" : \"TransactionException.TYPE_NOT_SUPPORTED\"\n      result: {}\n    - network:\n        - '>=Cancun'\n      indexes:\n        data: !!int 4\n        gas: !!int 1\n        value: !!int -1\n      expectException:\n        \">=Cancun\" : \"TransactionException.INSUFFICIENT_ACCOUNT_FUNDS\"\n        \"<Berlin\" : \"TransactionException.TYPE_NOT_SUPPORTED\"\n      result: {}\n\n\n    # Not enough ETH for the value we transfer\n    - network:\n        - '>=Cancun'\n      indexes:\n        data: 2-4\n        gas: !!int 2\n        value: !!int 1\n      expectException:\n        \">=Cancun\" : \"TransactionException.INSUFFICIENT_ACCOUNT_FUNDS|TransactionException.INTRINSIC_GAS_TOO_LOW\"\n        \"<Berlin\" : \"TransactionException.TYPE_NOT_SUPPORTED\"\n      result: {}\n\n\n\n    # Gas limit of zero, should be at least 21000\n    - network:\n        - '>=Cancun'\n      indexes:\n        data: 2-4\n        gas: !!int 2\n        value: !!int 0\n      expectException:\n        \">=Cancun\" : \"TransactionException.INTRINSIC_GAS_TOO_LOW\"\n        \"<Berlin\" : \"TransactionException.TYPE_NOT_SUPPORTED\"\n      result: {}\n\n"
  },
  {
    "path": "tests/static/state_tests/stTransactionTest/Opcodes_TransactionInitFiller.json",
    "content": "{\n    \"Opcodes_TransactionInit\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentBaseFee\": \"10\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"//comment\": \"CODECOPY: not supported in earlier networks\",\n                \"indexes\" : {\n                    \"data\" : 33,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    },\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\": {\n                        \"nonce\": \"1\",\n                        \"storage\": {\n                            \"0x00\": \"0x38600060013960015160005560006000f3000000000000000000000000000000\"\n                        }\n                    }\n                }\n            },\n            {\n                \"//comment\": \"RETURNDATASIZE: not supported in earlier networks\",\n                \"indexes\" : {\n                    \"data\" : 37,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    },\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\": {\n                        \"nonce\": \"1\"\n                    }\n                }\n            },\n            {\n                \"//comment\": \"RETURNDATACOPY: not supported in earlier networks\",\n                \"indexes\" : {\n                    \"data\" : 38,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    },\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\": {\n                        \"nonce\": \"1\"\n                    }\n                }\n            },\n            {   \n                \"indexes\" : { \n                    \"data\" : 120, \n                    \"gas\" : -1, \n                    \"value\" : -1\n                },  \n                \"network\" : [ \">=Cancun\"],\n                \"result\" : { \n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : { \n                        \"nonce\" : \"1\" \n                    },  \n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\": { \n                        \"nonce\": \"2\"\n                    } \n                }   \n            },\n            {   \n                \"indexes\" : { \n                    \"data\" : 124, \n                    \"gas\" : -1, \n                    \"value\" : -1\n                },  \n                \"network\" : [ \">=Cancun\"],\n                \"result\" : { \n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : { \n                        \"nonce\" : \"1\" \n                    },  \n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\": { \n                        \"nonce\": \"1\"\n                    } \n                }   \n            },\n            {   \n                \"indexes\" : { \n                    \"data\" : 125, \n                    \"gas\" : -1, \n                    \"value\" : -1\n                },  \n                \"network\" : [\">=Cancun\"],\n                \"result\" : { \n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : { \n                        \"nonce\" : \"1\" \n                    },  \n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\": { \n                        \"nonce\": \"1\"\n                    } \n                }   \n            },\n            {\n                \"indexes\" : { \n                    \"data\" : 126, \n                    \"gas\" : -1, \n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    },\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\": {\n                        \"shouldnotexist\": \"1\"\n                    }\n                }\n            },\n            {\n                \"indexes\" : { \n                    \"data\" : 127, \n                    \"gas\" : -1, \n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    },\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\": {\n                        \"shouldnotexist\": \"1\"\n                    }\n                }\n            },\n            {   \n                \"indexes\" : { \n                    \"data\" : [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 121, 122, 123], \n                    \"gas\" : -1, \n                    \"value\" : -1\n                },  \n                \"network\" : [\">=Cancun\"],\n                \"result\" : { \n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : { \n                        \"nonce\" : \"1\" \n                    },  \n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\": { \n                        \"nonce\": \"1\"\n                    } \n                }   \n            },\n            {   \n                \"indexes\" : { \n                    \"data\" : [\":label invalid_first_byte_ef\"], \n                    \"gas\" : -1, \n                    \"value\" : -1\n                },  \n                \"network\" : [\">=Cancun\"],\n                \"result\" : { \n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : { \n                        \"nonce\" : \"1\" \n                    },  \n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\": { \n                        \"shouldnotexist\": \"1\"\n                    } \n                }   \n            },\n            {   \n                \"indexes\" : { \n                    \"data\" : [\":label side_effects\"], \n                    \"gas\" : -1, \n                    \"value\" : -1\n                },  \n                \"network\" : [\">=Cancun\"],\n                \"result\" : { \n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : { \n                        \"nonce\" : \"1\" \n                    },  \n                    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : { \n                        \"storage\": {\n                            \"1\": \"0\",\n                            \"0\" : \"1\"\n                        }\n                    },  \n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\": { \n                        \"nonce\": \"1\"\n                    } \n                }\n            },\n            {   \n                \"indexes\" : { \n                    \"data\" : [\":label side_effects_invalid_opcode\"], \n                    \"gas\" : -1, \n                    \"value\" : -1\n                },  \n                \"network\" : [\">=Cancun\"],\n                \"result\" : { \n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : { \n                        \"nonce\" : \"1\" \n                    },  \n                    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : { \n                        \"storage\": {}\n                    },  \n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\": { \n                        \"shouldnotexist\": \"1\"\n                    } \n                }\n            },\n            {   \n                \"indexes\" : { \n                    \"data\" : [\":label side_effects_return_ef\"], \n                    \"gas\" : -1, \n                    \"value\" : -1\n                },  \n                \"network\" : [\">=Cancun\"],\n                \"result\" : { \n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : { \n                        \"nonce\" : \"1\" \n                    },  \n                    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : { \n                        \"storage\": {}\n                    },  \n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\": { \n                        \"shouldnotexist\": \"1\"\n                    } \n                }   \n            }            \n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\": \"0x\",\n                \"nonce\": \"0\",\n                \"storage\": {\n                  \"0x00\": \"0x00\"\n                }\n            },\n            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n                \"code\": \":yul berlin { sstore(0, 1) }\",\n                \"nonce\": \"0\",\n                \"storage\": {}\n            },\n\t\t\t\"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6\" : {\n                \"balance\" : \"1000000000000000000\",\n\t\t\t\t\"//code\": \"{ 0xffff (RETURN 0x0 0x4) }\",\n    \t\t\t\"code\": \":raw 0x61ffff5060046000f3\",\n\t\t\t\t\"nonce\": \"1\",\n\t\t\t\t\"storage\": {}\n\t\t\t}\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x0060016000f3\",\n                \":raw 0x60016001015060006000f3\",\n                \":raw 0x60016001025060006000f3\",\n                \":raw 0x60016001035060006000f3\",\n                \":raw 0x60016001045060006000f3\",\n                \":raw 0x60016001055060006000f3\",\n                \":raw 0x60016001065060006000f3\",\n                \":raw 0x60016001075060006000f3\",\n                \":raw 0x600160016001085060006000f3\",\n                \":raw 0x600160016001095060006000f3\",\n                \":raw 0x600160010a5060006000f3\",\n                \":raw 0x600160010b5060006000f3\",\n                \":raw 0x60016001105060006000f3\",\n                \":raw 0x60016001115060006000f3\",\n                \":raw 0x60016001125060006000f3\",\n                \":raw 0x60016001135060006000f3\",\n                \":raw 0x60016001145060006000f3\",\n                \":raw 0x6000155060006000f3\",\n                \":raw 0x60006000165060006000f3\",\n                \":raw 0x60006000175060006000f3\",\n                \":raw 0x60006000185060006000f3\",\n                \":raw 0x6000195060006000f3\",\n                \":raw 0x67805020100804020160001a5060006000f3\",\n                \":raw 0x600060002060006000f3\",\n                \":raw 0x305060006000f3\",\n                \":raw 0x6000315060006000f3\",\n                \":raw 0x325060006000f3\",\n                \":raw 0x335060006000f3\",\n                \":raw 0x345060006000f3\",\n                \":raw 0x6000355060006000f3\",\n                \":raw 0x365060006000f3\",\n                \":raw 0x6000600060003760006000f3\",\n                \":raw 0x385060006000f3\",\n                \":raw 0x38600060013960015160005560006000f3\",\n                \":raw 0x3a5060006000f3\", \n                \":raw 0x60003b5060006000f3\",\n                \":raw 0x6014600060007310000000000000000000000000000000000000103c60006000f3\",\n                \":raw 0x3d5060006000f3\",\n                \":raw 0x6000600060003e60006000f3\",\n                \":raw 0x60005060005060006000f3\",\n                \":raw 0x6000515060006000f3\",\n                \":raw 0x600060005260006000f3\",\n                \":raw 0x60ff60005360006000f3\",\n                \":raw 0x6000545060006000f3\", \n                \":raw 0x600160015560006000f3\", \n                \":raw 0x600456005b60006000f3\", \n                \":raw 0x6001600657005b60006000f3\", \n                \":raw 0x585060006000f3\", \n                \":raw 0x595060006000f3\", \n                \":raw 0x5a5060006000f3\", \n                \":raw 0x5b60006000f3\", \n                \":raw 0x60ff5060006000f3\", \n                \":raw 0x61ffff5060006000f3\", \n                \":raw 0x62ffffff5060006000f3\", \n                \":raw 0x63ffffffff5060006000f3\", \n                \":raw 0x64ffffffffff5060006000f3\", \n                \":raw 0x65ffffffffffff5060006000f3\", \n                \":raw 0x66ffffffffffffff5060006000f3\", \n                \":raw 0x67ffffffffffffffff5060006000f3\", \n                \":raw 0x68ffffffffffffffffff5060006000f3\", \n                \":raw 0x69ffffffffffffffffffff5060006000f3\", \n                \":raw 0x6affffffffffffffffffffff5060006000f3\", \n                \":raw 0x6bffffffffffffffffffffffff5060006000f3\", \n                \":raw 0x6cffffffffffffffffffffffffff5060006000f3\", \n                \":raw 0x6dffffffffffffffffffffffffffff5060006000f3\", \n                \":raw 0x6effffffffffffffffffffffffffffff5060006000f3\", \n                \":raw 0x6fffffffffffffffffffffffffffffffff5060006000f3\", \n                \":raw 0x70ffffffffffffffffffffffffffffffffff5060006000f3\", \n                \":raw 0x71ffffffffffffffffffffffffffffffffffff5060006000f3\", \n                \":raw 0x72ffffffffffffffffffffffffffffffffffffff5060006000f3\", \n                \":raw 0x73ffffffffffffffffffffffffffffffffffffffff5060006000f3\", \n                \":raw 0x74ffffffffffffffffffffffffffffffffffffffffff5060006000f3\", \n                \":raw 0x75ffffffffffffffffffffffffffffffffffffffffffff5060006000f3\",\n                \":raw 0x76ffffffffffffffffffffffffffffffffffffffffffffff5060006000f3\", \n                \":raw 0x77ffffffffffffffffffffffffffffffffffffffffffffffff5060006000f3\", \n                \":raw 0x78ffffffffffffffffffffffffffffffffffffffffffffffffff5060006000f3\", \n                \":raw 0x79ffffffffffffffffffffffffffffffffffffffffffffffffffff5060006000f3\", \n                \":raw 0x7affffffffffffffffffffffffffffffffffffffffffffffffffffff5060006000f3\", \n                \":raw 0x7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff5060006000f3\", \n                \":raw 0x7cffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5060006000f3\", \n                \":raw 0x7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5060006000f3\", \n                \":raw 0x7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5060006000f3\", \n                \":raw 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5060006000f3\", \n                \":raw 0x60ff80505060006000f3\", \n                \":raw 0x60ff60ff8150505060006000f3\", \n                \":raw 0x60ff60ff60ff825050505060006000f3\", \n                \":raw 0x60ff60ff60ff60ff83505050505060006000f3\",\n                \":raw 0x60ff60ff60ff60ff60ff8450505050505060006000f3\", \n                \":raw 0x60ff60ff60ff60ff60ff60ff855050505050505060006000f3\", \n                \":raw 0x60ff60ff60ff60ff60ff60ff60ff86505050505050505060006000f3\", \n                \":raw 0x60ff60ff60ff60ff60ff60ff60ff60ff8750505050505050505060006000f3\", \n                \":raw 0x60ff60ff60ff60ff60ff60ff60ff60ff60ff885050505050505050505060006000f3\", \n                \":raw 0x60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff89505050505050505050505060006000f3\", \n                \":raw 0x60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff8a50505050505050505050505060006000f3\", \n                \":raw 0x60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff8b5050505050505050505050505060006000f3\", \n                \":raw 0x60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff8c505050505050505050505050505060006000f3\", \n                \":raw 0x60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff8d50505050505050505050505050505060006000f3\", \n                \":raw 0x60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff8e5050505050505050505050505050505060006000f3\", \n                \":raw 0x60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff8f505050505050505050505050505050505060006000f3\", \n                \":raw 0x60ff60ff90505060006000f3\", \n                \":raw 0x60ff60ff60ff9150505060006000f3\", \n                \":raw 0x60ff60ff60ff60ff925050505060006000f3\", \n                \":raw 0x60ff60ff60ff60ff60ff93505050505060006000f3\", \n                \":raw 0x60ff60ff60ff60ff60ff60ff9450505050505060006000f3\", \n                \":raw 0x60ff60ff60ff60ff60ff60ff60ff955050505050505060006000f3\", \n                \":raw 0x60ff60ff60ff60ff60ff60ff60ff60ff96505050505050505060006000f3\", \n                \":raw 0x600060ff60ff60ff60ff60ff60ff60ff60ff9750505050505050505060006000f3\", \n                \":raw 0x600060ff60ff60ff60ff60ff60ff60ff60ff60ff985050505050505050505060006000f3\", \n                \":raw 0x600060ff60ff60ff60ff60ff60ff60ff60ff60ff60ff99505050505050505050505060006000f3\", \n                \":raw 0x600060ff60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff9a50505050505050505050505060006000f3\", \n                \":raw 0x600060ff60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff9b5050505050505050505050505060006000f3\", \n                \":raw 0x600060ff60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff9c505050505050505050505050505060006000f3\", \n                \":raw 0x600060ff60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff9d50505050505050505050505050505060006000f3\", \n                \":raw 0x600060ff60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff9e5050505050505050505050505050505060006000f3\", \n                \":raw 0x600060ff60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff60ff9f505050505050505050505050505050505060006000f3\", \n                \":raw 0x60006000a060006000f3\", \n                \":raw 0x60ff60006000a160006000f3\", \n                \":raw 0x60ff60ff60006000a260006000f3\", \n                \":raw 0x60ff60ff60ff60006000a360006000f3\", \n                \":raw 0x60ff60ff60ff60ff60006000a460006000f3\", \n                \":raw 0x6000600060fff05060006000f3\", \n                \":raw 0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66064f15060006000f3\", \n                \":raw 0x60006000600060006000730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66064f25060006000f3\", \n                \":raw 0x60006000f3\", \n                \":raw 0x6000600060006000730f572e5295c57f15886f9b263e2f6d2d6c7b5ec6620186a0f45060006000f3\", \n                \":raw 0x6000600060006000730f572e5295c57f15886f9b263e2f6d2d6c7b5ec6612710fa5060006000f3\", \n                \":raw 0x60006000fd60006000f3\", \n                \":raw 0x32ff\",\n                \":label invalid_first_byte_ef :raw 0xef\",\n                \":label side_effects :yul berlin { pop(call(50000, 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b, 0, 0, 0, 0, 0)) }\",\n                \":label side_effects_invalid_opcode :yul berlin { pop(call(50000, 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b, 0, 0, 0, 0, 0)) invalid() }\",\n                \":label side_effects_return_ef :yul berlin { pop(call(50000, 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b, 0, 0, 0, 0, 0)) mstore8(0, 0xef) return(0, 1) }\"\n            ],\n            \"gasLimit\" : [\n                \"400000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stTransactionTest/OverflowGasRequire2Filler.json",
    "content": "{\n    \"OverflowGasRequire2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"0x7fffffffffffffff\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\"Cancun\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"balance\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6357f\",\n                        \"nonce\" : \"1\"\n                    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\"Prague\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"//comment\" : \"TODO: why prague gas eaten has changed exactly this value?\",\n                        \"balance\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe5f97f\",\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x3240349548983454\"\n            ],\n            \"gasLimit\" : [\n                \"1152921504606846976\"\n            ],\n            \"gasPrice\" : \"80\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stTransactionTest/PointAtInfinityECRecoverFiller.yml",
    "content": "# Call ECRecover on invalid msg, v, r, s\n---\nPointAtInfinityECRecover:\n  env:\n    currentCoinbase: 2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\n    currentDifficulty: '0x020000'\n    currentGasLimit: '89128960'\n    currentBaseFee: '10'\n    currentNumber: '1'\n    currentTimestamp: '1000'\n\n  pre:\n    <contract:target:0x000000000000000000000000000000000000ff0a>:\n      balance: '0xffffffff'\n      code: ':yul berlin\n        {\n        mstore(0, 0x6b8d2c81b11b2d699528dde488dbdf2f94293d0d33c32e347f255fa4a6c1f0a9)\n        mstore(32, 0x1b)\n        mstore(64, 0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798)\n        mstore(96, 0x6b8d2c81b11b2d699528dde488dbdf2f94293d0d33c32e347f255fa4a6c1f0a9)\n        sstore(0, call(1000000, 1, 0, 0, 128, 0, 32))\n        sstore(1, mload(0))\n      }'\n      nonce: 0\n      storage: {}\n\n    <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n      balance: '0xde0b6b3a7640000'\n      code: ''\n      nonce: 0\n      storage: {}\n\n  transaction:\n    data:\n      - ''\n    gasLimit:\n      - 10000000\n    gasPrice: 10\n    nonce: 0\n    secretKey: \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\"\n    to: '<contract:target:0x000000000000000000000000000000000000ff0a>'\n    value:\n      - 0\n\n  expect:\n    - indexes:\n       data: !!int -1\n       gas: !!int -1\n       value: !!int -1\n      network:\n        - '>=Cancun'\n      result:\n       <eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>:\n         nonce: 1\n       <contract:target:0x000000000000000000000000000000000000ff0a>:\n         nonce: 0\n         storage:\n          0: 1\n          1: '0x6b8d2c81b11b2d699528dde488dbdf2f94293d0d33c32e347f255fa4a6c1f0a9'\n\n"
  },
  {
    "path": "tests/static/state_tests/stTransactionTest/StoreClearsAndInternalCallStoreClearsOOGFiller.json",
    "content": "{\n    \"StoreClearsAndInternalCallStoreClearsOOG\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0x0000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x0c\",\n                            \"0x01\" : \"0x0c\",\n                            \"0x02\" : \"0x0c\",\n                            \"0x03\" : \"0x0c\",\n                            \"0x04\" : \"0x0c\",\n                            \"0x05\" : \"0x0c\",\n                            \"0x06\" : \"0x0c\",\n                            \"0x07\" : \"0x0c\",\n                            \"0x08\" : \"0x0c\",\n                            \"0x09\" : \"0x0c\"\n                        }\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"1\"\n                    },\n                    \"<contract:target:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"balance\" : \"20\",\n                        \"storage\" : {\n                            \"0x04\" : \"0x0c\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:0x0000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{(SSTORE 0 0)(SSTORE 1 0)(SSTORE 2 0)(SSTORE 3 0)(SSTORE 4 0)(SSTORE 5 0)(SSTORE 6 0)(SSTORE 7 0)(SSTORE 8 0)(SSTORE 9 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x0c\",\n                    \"0x01\" : \"0x0c\",\n                    \"0x02\" : \"0x0c\",\n                    \"0x03\" : \"0x0c\",\n                    \"0x04\" : \"0x0c\",\n                    \"0x05\" : \"0x0c\",\n                    \"0x06\" : \"0x0c\",\n                    \"0x07\" : \"0x0c\",\n                    \"0x08\" : \"0x0c\",\n                    \"0x09\" : \"0x0c\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"500000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10\",\n                \"code\" : \"{(SSTORE 0 0)(SSTORE 1 0)(SSTORE 2 0)(SSTORE 3 0) (CALL 20000 <contract:0x0000000000000000000000000000000000000000> 1 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x0c\",\n                    \"0x01\" : \"0x0c\",\n                    \"0x02\" : \"0x0c\",\n                    \"0x03\" : \"0x0c\",\n                    \"0x04\" : \"0x0c\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"200000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stTransactionTest/StoreClearsAndInternalCallStoreClearsSuccessFiller.json",
    "content": "{\n    \"StoreClearsAndInternalCallStoreClearsSuccess\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0x0000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"1\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"<contract:target:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"balance\" : \"19\",\n                        \"storage\" : {\n                            \"0x04\" : \"0x0c\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:0x0000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{(SSTORE 0 0)(SSTORE 1 0)(SSTORE 2 0)(SSTORE 3 0)(SSTORE 4 0)(SSTORE 5 0)(SSTORE 6 0)(SSTORE 7 0)(SSTORE 8 0)(SSTORE 9 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x0c\",\n                    \"0x01\" : \"0x0c\",\n                    \"0x02\" : \"0x0c\",\n                    \"0x03\" : \"0x0c\",\n                    \"0x04\" : \"0x0c\",\n                    \"0x05\" : \"0x0c\",\n                    \"0x06\" : \"0x0c\",\n                    \"0x07\" : \"0x0c\",\n                    \"0x08\" : \"0x0c\",\n                    \"0x09\" : \"0x0c\"\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"500000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"//\" : \"gas = 19 going OOG, gas = 20 fine\",\n                \"balance\" : \"10\",\n                \"code\" : \"{(SSTORE 0 0)(SSTORE 1 0)(SSTORE 2 0)(SSTORE 3 0) (CALL 50000 <contract:0x0000000000000000000000000000000000000000> 1 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                    \"0x00\" : \"0x0c\",\n                    \"0x01\" : \"0x0c\",\n                    \"0x02\" : \"0x0c\",\n                    \"0x03\" : \"0x0c\",\n                    \"0x04\" : \"0x0c\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"200000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stTransactionTest/StoreGasOnCreateFiller.json",
    "content": "{\n    \"StoreGasOnCreate\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"f1ecf98489fa9ed60a664fc4998db699cfa39d40\" : {\n                        \"storage\" : {\n                            \"//comment\" : \"CREATE price changed in Shanghai\",\n                            \"//comment\" : \"Due to eip-3860 (https://eips.ethereum.org/EIPS/eip-3860) pay extra 2 gas for each 32 bytes of initcode\",\n                            \"0xfd\" : \"0x012f39\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"400000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\n            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n        \t\t\"// code\"  : \"{ [[0]] (GAS) }\",\n                \"code\" : \"{ (MSTORE 0 0x5a60fd55) (CREATE 0 28 4)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"131882\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"100\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stTransactionTest/SuicidesAndInternalCallSuicidesBonusGasAtCallFailedFiller.json",
    "content": "{\n    \"SuicidesAndInternalCallSuicidesBonusGasAtCallFailed\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"0000000000000000000000000000000000000000\" : {\n                        \"balance\" : \"20\",\n                        \"code\" : \"0x6001ff00\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"0000000000000000000000000000000000000000\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{(SELFDESTRUCT 0x0000000000000000000000000000000000000001)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"100000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"10\",\n                \"code\" : \"{(CALL 0 0x0000000000000000000000000000000000000000 0 0 0 0 0) (SELFDESTRUCT 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"50000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stTransactionTest/SuicidesAndInternalCallSuicidesBonusGasAtCallFiller.json",
    "content": "{\n    \"SuicidesAndInternalCallSuicidesBonusGasAtCall\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"0000000000000000000000000000000000000001\" : {\n                        \"shouldnotexist\" : \"1\"\n                    },\n\t\t            \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n    \t\t\t        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"code\" : \"0x6000600060006000600160006000f1506000ff00\",\n                        \"storage\" : {}\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"0000000000000000000000000000000000000000\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{(SELFDESTRUCT 0x0000000000000000000000000000000000000001)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"100000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"10\",\n                \"code\" : \"{(CALL 0 0x0000000000000000000000000000000000000000 1 0 0 0 0) (SELFDESTRUCT 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"50000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stTransactionTest/SuicidesAndInternalCallSuicidesOOGFiller.json",
    "content": "{\n    \"SuicidesAndInternalCallSuicidesOOG\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<contract:0x0000000000000000000000000000000000000000>\" : {\n                        \"balance\" : \"0\"\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"1\"\n                    },\n                    \"<contract:target:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"balance\" : \"10\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:0x0000000000000000000000000000000000000000>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{(SELFDESTRUCT 0x0000000000000000000000000000000000000001)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"100000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10\",\n                \"code\" : \"{(CALL 22000 <contract:0x0000000000000000000000000000000000000000> 1 0 0 0 0) (SELFDESTRUCT 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"50000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stTransactionTest/SuicidesAndInternalCallSuicidesSuccessFiller.json",
    "content": "{\n    \"SuicidesAndInternalCallSuicidesSuccess\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : 0,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"0000000000000000000000000000000000000001\" : {\n                        \"shouldnotexist\" : \"1\"\n                    }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : 1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"0000000000000000000000000000000000000001\" : {\n                        \"balance\" : \"1\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"0000000000000000000000000000000000000000\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"{(SELFDESTRUCT 0x0000000000000000000000000000000000000001)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"180000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000\",\n                \"code\" : \"{(CALL (CALLDATALOAD 0) 0x0000000000000000000000000000000000000000 1 0 0 0 0) (SELFDESTRUCT 0)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x00000000000000000000000000000000000000000000000000000000000055f0\",\n                \":raw 0x000000000000000000000000000000000000000000000000000000000000aaf0\"\n            ],\n            \"gasLimit\" : [\n                \"150000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stTransactionTest/SuicidesAndSendMoneyToItselfEtherDestroyedFiller.json",
    "content": "{\n    \"SuicidesAndSendMoneyToItselfEtherDestroyed\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"<eoa:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"balance\" : \"1010\",\n                        \"code\" : \"0x73<contract:target:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>ff00\",\n                        \"nonce\" : \"0\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n                \"code\" : \"\",\n                \"nonce\" : \"1\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"122000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:target:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000\",\n                \"code\" : \"{(SELFDESTRUCT <contract:target:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"31700\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stTransactionTest/SuicidesStopAfterSuicideFiller.json",
    "content": "{\n    \"SuicidesStopAfterSuicide\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"100000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"0000000000000000000000000000000000000000\" : {\n                        \"storage\" : {}\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    },\n\t\t            \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n    \t\t\t        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"code\" : \"0x6000ff600060006000600060006000617530f100\",\n                        \"storage\" : {}\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"0000000000000000000000000000000000000000\" : {\n                \"balance\" : \"1110\",\n                \"code\" : \"{(SELFDESTRUCT 0x0000000000000000000000000000000000000001)}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"122000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"10000\",\n                \"code\" : \"{(SELFDESTRUCT 0) (CALL 30000 0x0000000000000000000000000000000000000000 0 0 0 0 0) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"83700\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"10\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stTransactionTest/TransactionDataCosts652Filler.json",
    "content": "{\n    \"TransactionDataCosts652\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x00000000000000000000112233445566778f32\"\n            ],\n            \"gasLimit\" : [\n                \"22000\", \"72000\" \n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stTransactionTest/TransactionSendingToEmptyFiller.json",
    "content": "{\n    \"TransactionSendingToEmpty\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"code\" : \"0x\"\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"100000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"53000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stTransactionTest/TransactionSendingToZeroFiller.json",
    "content": "{\n    \"TransactionSendingToZero\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"0000000000000000000000000000000000000000\" : {\n                        \"balance\" : \"1\"\n                    },\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"100000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"25000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"0000000000000000000000000000000000000000\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stTransactionTest/TransactionToAddressh160minusOneFiller.json",
    "content": "{\n    \"TransactionToAddressh160minusOne\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"100000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"ffffffffffffffffffffffffffffffffffffffff\" : {\n                        \"balance\" : \"100\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"22000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"0xffffffffffffffffffffffffffffffffffffffff\",\n            \"value\" : [\n                \"100\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stTransactionTest/TransactionToItselfFiller.json",
    "content": "{\n    \"TransactionToItself\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"balance\" : \"999790000\",\n                        \"nonce\" : \"1\"\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"25000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stTransactionTest/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stTransitionTest/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stTransitionTest/createNameRegistratorPerTxsAfterFiller.json",
    "content": "{\n    \"createNameRegistratorPerTxsAfter\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t        {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                            \"balance\" : \"0x0186a0\",\n                            \"code\" : \"0x396000f3006000355415600957005b60\",\n                            \"nonce\" : \"0x01\",\n                            \"storage\" : {\n                                \"0x01\" : \"0x01\"\n                            }\n                        }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x6001600155601080600c6000396000f3006000355415600957005b60203560003555\"\n            ],\n            \"gasLimit\" : [\n                \"200000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stTransitionTest/createNameRegistratorPerTxsAtFiller.json",
    "content": "{\n    \"createNameRegistratorPerTxsAt\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t        {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                            \"balance\" : \"0x0186a0\",\n                            \"code\" : \"0x396000f3006000355415600957005b60\",\n                            \"nonce\" : \"0x01\",\n                            \"storage\" : {\n                                \"0x01\" : \"0x01\"\n                            }\n                        }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x6001600155601080600c6000396000f3006000355415600957005b60203560003555\"\n            ],\n            \"gasLimit\" : [\n                \"200000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stTransitionTest/createNameRegistratorPerTxsBeforeFiller.json",
    "content": "{\n    \"createNameRegistratorPerTxsBefore\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t        {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                            \"balance\" : \"0x0186a0\",\n                            \"code\" : \"0x396000f3006000355415600957005b60\",\n                            \"nonce\" : \"0x01\",\n                            \"storage\" : {\n                                \"0x01\" : \"0x01\"\n                            }\n                        }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x6001600155601080600c6000396000f3006000355415600957005b60203560003555\"\n            ],\n            \"gasLimit\" : [\n                \"200000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"100000\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stTransitionTest/delegatecallAfterTransitionFiller.json",
    "content": "{\n    \"delegatecallAfterTransition\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 500000 <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 0 64 0 2 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \"{[[ 1 ]] (CALLER) [[ 2 ]] (CALLVALUE) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stTransitionTest/delegatecallAtTransitionFiller.json",
    "content": "{\n    \"delegatecallAtTransition\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 500000 <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 0 64 0 2 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \"{[[ 1 ]] (CALLER) [[ 2 ]] (CALLVALUE) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stTransitionTest/delegatecallBeforeTransitionFiller.json",
    "content": "{\n    \"delegatecallBeforeTransition\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"30000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [  \">=Cancun\"],\n                \"result\" : {\n                    \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                            \"storage\" : {\n                                \"0x00\" : \"0x01\",\n                                \"0x01\" : \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\"\n                            }\n                        }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"{  [[ 0 ]] (DELEGATECALL 500000 <contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5> 0 64 0 2 ) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<contract:0x945304eb96065b2a98b57a48a06ae28d285a71b5>\" : {\n                \"balance\" : \"23\",\n                \"code\" : \"{[[ 1 ]] (CALLER) [[ 2 ]] (CALLVALUE) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"3000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0x095e7baea6a6c7c4c2dfeb977efac326af552d87>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stWalletTest/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stWalletTest/dayLimitConstructionFiller.json",
    "content": "{\n    \"dayLimitConstruction\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : [0,1],\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x02\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\" : {\n                        \"balance\" : \"0x64\",\n                        \"code\" : \"0x606060405236156100985760e060020a6000350463173825d9811461009a5780632f54bf6e146100f65780634123cb6b1461011a5780635c52c2f5146101235780637065cb4814610154578063746c917114610188578063b20d30a914610191578063b75c7dc6146101c5578063ba51a6df146101f5578063c2cf732614610229578063f00d4b5d14610269578063f1736d86146102a2575b005b6100986004356000600036436040518084848082843750505090910190815260405190819003602001902090506105b9815b600160a060020a0333166000908152610102602052604081205481808083811415610719576108b0565b6102ac6004355b600160a060020a0316600090815261010260205260408120541190565b6102ac60015481565b6100986000364360405180848480828437505050909101908152604051908190036020019020905061070b816100cc565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610531816100cc565b6102ac60005481565b610098600435600036436040518084848082843750505090910190815260405190819003602001902090506106ff816100cc565b610098600435600160a060020a03331660009081526101026020526040812054908080838114156102be57610340565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610678816100cc565b6102ac600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156106d1576106f5565b6100986004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506103ca816100cc565b6102ac6101055481565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156103405781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156103c3576103d8836100fd565b156103e357506103c5565b600160a060020a03841660009081526101026020526040812054925082141561040c57506103c5565b6103475b6101045460005b8181101561085f576101048054829081101561000257600091825260008051602061099483398151915201541461048a5761010480546101039160009184908110156100025760008051602061099483398151915201548252506020919091526040812081815560018101829055600201555b600101610417565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561052c5761053f826100fd565b1561054a575061052e565b610552610410565b60015460fa90106105675761056561057c565b505b60015460fa9010610492575061052e565b6106365b600060015b600154811015610899575b600154811080156105ac5750600281610100811015610002570154600014155b156108b95760010161058c565b156103c557600160a060020a0383166000908152610102602052604081205492508214156105e7575061052c565b6001600160005054036000600050541115610602575061052c565b600060028361010081101561000257508301819055600160a060020a03841681526101026020526040812055610578610410565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561052c5760015482111561068d575061052e565b600082905561069a610410565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106f057600094506106f5565b600194505b5050505092915050565b1561052c575061010555565b1561052e5760006101065550565b60008681526101036020526040812080549094509092508214156107a2578154835560018381018390556101048054918201808255828015829011610771578183600052602060002091820191016107719190610885565b5050506002840181905561010480548892908110156100025760009190915260008051602061099483398151915201555b506001820154600284900a908116600014156108b05760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a182546001901161089d57600086815261010360205260409020600201546101048054909190811015610002576040600090812060008051602061099483398151915292909201819055808255600180830182905560029092015595506108b09050565b61010480546000808355919091526103c590600080516020610994833981519152908101905b808211156108995760008155600101610885565b5090565b8254600019018355600183018054821790555b50505050919050565b5b600180541180156108dc57506001546002906101008110156100025701546000145b156108f057600180546000190190556108ba565b600154811080156109135750600154600290610100811015610002570154600014155b801561092d57506002816101008110156100025701546000145b1561098e57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61058156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x0107\" : \"0x00\",\n                            \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x0de0b6b3a75ef08f\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x01\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x606060409081526001600081815581805533600160a060020a0316600381905581526101026020529190912055620151804204610107556109b4806100456000396000f300606060405236156100985760e060020a6000350463173825d9811461009a5780632f54bf6e146100f65780634123cb6b1461011a5780635c52c2f5146101235780637065cb4814610154578063746c917114610188578063b20d30a914610191578063b75c7dc6146101c5578063ba51a6df146101f5578063c2cf732614610229578063f00d4b5d14610269578063f1736d86146102a2575b005b6100986004356000600036436040518084848082843750505090910190815260405190819003602001902090506105b9815b600160a060020a0333166000908152610102602052604081205481808083811415610719576108b0565b6102ac6004355b600160a060020a0316600090815261010260205260408120541190565b6102ac60015481565b6100986000364360405180848480828437505050909101908152604051908190036020019020905061070b816100cc565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610531816100cc565b6102ac60005481565b610098600435600036436040518084848082843750505090910190815260405190819003602001902090506106ff816100cc565b610098600435600160a060020a03331660009081526101026020526040812054908080838114156102be57610340565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610678816100cc565b6102ac600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156106d1576106f5565b6100986004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506103ca816100cc565b6102ac6101055481565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156103405781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156103c3576103d8836100fd565b156103e357506103c5565b600160a060020a03841660009081526101026020526040812054925082141561040c57506103c5565b6103475b6101045460005b8181101561085f576101048054829081101561000257600091825260008051602061099483398151915201541461048a5761010480546101039160009184908110156100025760008051602061099483398151915201548252506020919091526040812081815560018101829055600201555b600101610417565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561052c5761053f826100fd565b1561054a575061052e565b610552610410565b60015460fa90106105675761056561057c565b505b60015460fa9010610492575061052e565b6106365b600060015b600154811015610899575b600154811080156105ac5750600281610100811015610002570154600014155b156108b95760010161058c565b156103c557600160a060020a0383166000908152610102602052604081205492508214156105e7575061052c565b6001600160005054036000600050541115610602575061052c565b600060028361010081101561000257508301819055600160a060020a03841681526101026020526040812055610578610410565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561052c5760015482111561068d575061052e565b600082905561069a610410565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106f057600094506106f5565b600194505b5050505092915050565b1561052c575061010555565b1561052e5760006101065550565b60008681526101036020526040812080549094509092508214156107a2578154835560018381018390556101048054918201808255828015829011610771578183600052602060002091820191016107719190610885565b5050506002840181905561010480548892908110156100025760009190915260008051602061099483398151915201555b506001820154600284900a908116600014156108b05760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a182546001901161089d57600086815261010360205260409020600201546101048054909190811015610002576040600090812060008051602061099483398151915292909201819055808255600180830182905560029092015595506108b09050565b61010480546000808355919091526103c590600080516020610994833981519152908101905b808211156108995760008155600101610885565b5090565b8254600019018355600183018054821790555b50505050919050565b5b600180541180156108dc57506001546002906101008110156100025701546000145b156108f057600180546000190190556108ba565b600154811080156109135750600154600290610100811015610002570154600014155b801561092d57506002816101008110156100025701546000145b1561098e57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61058156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\"\n            ],\n            \"gasLimit\" : [\n                \"817083\", \"1217083\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"1\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"100\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stWalletTest/dayLimitConstructionOOGFiller.json",
    "content": "{\n    \"dayLimitConstructionOOG\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"//balance\" : \"0x0de0b6b3a75a8a75\",\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x02\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x0de0b6b3a75ef08f\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x01\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x606060409081526001600081815581805533600160a060020a0316600381905581526101026020529190912055620151804204610107556109b4806100456000396000f300606060405236156100985760e060020a6000350463173825d9811461009a5780632f54bf6e146100f65780634123cb6b1461011a5780635c52c2f5146101235780637065cb4814610154578063746c917114610188578063b20d30a914610191578063b75c7dc6146101c5578063ba51a6df146101f5578063c2cf732614610229578063f00d4b5d14610269578063f1736d86146102a2575b005b6100986004356000600036436040518084848082843750505090910190815260405190819003602001902090506105b9815b600160a060020a0333166000908152610102602052604081205481808083811415610719576108b0565b6102ac6004355b600160a060020a0316600090815261010260205260408120541190565b6102ac60015481565b6100986000364360405180848480828437505050909101908152604051908190036020019020905061070b816100cc565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610531816100cc565b6102ac60005481565b610098600435600036436040518084848082843750505090910190815260405190819003602001902090506106ff816100cc565b610098600435600160a060020a03331660009081526101026020526040812054908080838114156102be57610340565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610678816100cc565b6102ac600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156106d1576106f5565b6100986004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506103ca816100cc565b6102ac6101055481565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156103405781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156103c3576103d8836100fd565b156103e357506103c5565b600160a060020a03841660009081526101026020526040812054925082141561040c57506103c5565b6103475b6101045460005b8181101561085f576101048054829081101561000257600091825260008051602061099483398151915201541461048a5761010480546101039160009184908110156100025760008051602061099483398151915201548252506020919091526040812081815560018101829055600201555b600101610417565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561052c5761053f826100fd565b1561054a575061052e565b610552610410565b60015460fa90106105675761056561057c565b505b60015460fa9010610492575061052e565b6106365b600060015b600154811015610899575b600154811080156105ac5750600281610100811015610002570154600014155b156108b95760010161058c565b156103c557600160a060020a0383166000908152610102602052604081205492508214156105e7575061052c565b6001600160005054036000600050541115610602575061052c565b600060028361010081101561000257508301819055600160a060020a03841681526101026020526040812055610578610410565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561052c5760015482111561068d575061052e565b600082905561069a610410565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106f057600094506106f5565b600194505b5050505092915050565b1561052c575061010555565b1561052e5760006101065550565b60008681526101036020526040812080549094509092508214156107a2578154835560018381018390556101048054918201808255828015829011610771578183600052602060002091820191016107719190610885565b5050506002840181905561010480548892908110156100025760009190915260008051602061099483398151915201555b506001820154600284900a908116600014156108b05760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a182546001901161089d57600086815261010360205260409020600201546101048054909190811015610002576040600090812060008051602061099483398151915292909201819055808255600180830182905560029092015595506108b09050565b61010480546000808355919091526103c590600080516020610994833981519152908101905b808211156108995760008155600101610885565b5090565b8254600019018355600183018054821790555b50505050919050565b5b600180541180156108dc57506001546002906101008110156100025701546000145b156108f057600180546000190190556108ba565b600154811080156109135750600154600290610100811015610002570154600014155b801561092d57506002816101008110156100025701546000145b1561098e57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61058156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\"\n            ],\n            \"gasLimit\" : [\n                \"0x04661a\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"1\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"100\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stWalletTest/dayLimitConstructionPartialFiller.json",
    "content": "{\n    \"dayLimitConstructionPartial\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n\t        {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x02\",\n                        \"storage\" : {\n                        }\n                    }, \n                    \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\" : {\n                        \"balance\" : \"0x64\",\n                        \"code\" : \"0x606060405236156100985760e060020a6000350463173825d9811461009a5780632f54bf6e146100f65780634123cb6b1461011a5780635c52c2f5146101235780637065cb4814610154578063746c917114610188578063b20d30a914610191578063b75c7dc6146101c5578063ba51a6df146101f5578063c2cf732614610229578063f00d4b5d14610269578063f1736d86146102a2575b005b6100986004356000600036436040518084848082843750505090910190815260405190819003602001902090506105b9815b600160a060020a0333166000908152610102602052604081205481808083811415610719576108b0565b6102ac6004355b600160a060020a0316600090815261010260205260408120541190565b6102ac60015481565b6100986000364360405180848480828437505050909101908152604051908190036020019020905061070b816100cc565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610531816100cc565b6102ac60005481565b610098600435600036436040518084848082843750505090910190815260405190819003602001902090506106ff816100cc565b610098600435600160a060020a03331660009081526101026020526040812054908080838114156102be57610340565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610678816100cc565b6102ac600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156106d1576106f5565b6100986004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506103ca816100cc565b6102ac6101055481565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156103405781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156103c3576103d8836100fd565b156103e357506103c5565b600160a060020a03841660009081526101026020526040812054925082141561040c57506103c5565b6103475b6101045460005b8181101561085f576101048054829081101561000257600091825260008051602061099483398151915201541461048a5761010480546101039160009184908110156100025760008051602061099483398151915201548252506020919091526040812081815560018101829055600201555b600101610417565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561052c5761053f826100fd565b1561054a575061052e565b610552610410565b60015460fa90106105675761056561057c565b505b60015460fa9010610492575061052e565b6106365b600060015b600154811015610899575b600154811080156105ac5750600281610100811015610002570154600014155b156108b95760010161058c565b156103c557600160a060020a0383166000908152610102602052604081205492508214156105e7575061052c565b6001600160005054036000600050541115610602575061052c565b600060028361010081101561000257508301819055600160a060020a03841681526101026020526040812055610578610410565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561052c5760015482111561068d575061052e565b600082905561069a610410565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106f057600094506106f5565b600194505b5050505092915050565b1561052c575061010555565b1561052e5760006101065550565b60008681526101036020526040812080549094509092508214156107a2578154835560018381018390556101048054918201808255828015829011610771578183600052602060002091820191016107719190610885565b5050506002840181905561010480548892908110156100025760009190915260008051602061099483398151915201555b506001820154600284900a908116600014156108b05760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a182546001901161089d57600086815261010360205260409020600201546101048054909190811015610002576040600090812060008051602061099483398151915292909201819055808255600180830182905560029092015595506108b09050565b61010480546000808355919091526103c590600080516020610994833981519152908101905b808211156108995760008155600101610885565b5090565b8254600019018355600183018054821790555b50505050919050565b5b600180541180156108dc57506001546002906101008110156100025701546000145b156108f057600180546000190190556108ba565b600154811080156109135750600154600290610100811015610002570154600014155b801561092d57506002816101008110156100025701546000145b1561098e57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61058156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                            \"nonce\" : \"0x01\",\n                            \"storage\" : {\n                                \"0x00\" : \"0x01\",\n                                \"0x01\" : \"0x01\",\n                                \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                                \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                            }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x0de0b6b3a75ef08f\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x01\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x606060409081526001600081815581805533600160a060020a0316600381905581526101026020529190912055620151804204610107556109b4806100456000396000f300606060405236156100985760e060020a6000350463173825d9811461009a5780632f54bf6e146100f65780634123cb6b1461011a5780635c52c2f5146101235780637065cb4814610154578063746c917114610188578063b20d30a914610191578063b75c7dc6146101c5578063ba51a6df146101f5578063c2cf732614610229578063f00d4b5d14610269578063f1736d86146102a2575b005b6100986004356000600036436040518084848082843750505090910190815260405190819003602001902090506105b9815b600160a060020a0333166000908152610102602052604081205481808083811415610719576108b0565b6102ac6004355b600160a060020a0316600090815261010260205260408120541190565b6102ac60015481565b6100986000364360405180848480828437505050909101908152604051908190036020019020905061070b816100cc565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610531816100cc565b6102ac60005481565b610098600435600036436040518084848082843750505090910190815260405190819003602001902090506106ff816100cc565b610098600435600160a060020a03331660009081526101026020526040812054908080838114156102be57610340565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610678816100cc565b6102ac600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156106d1576106f5565b6100986004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506103ca816100cc565b6102ac6101055481565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156103405781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156103c3576103d8836100fd565b156103e357506103c5565b600160a060020a03841660009081526101026020526040812054925082141561040c57506103c5565b6103475b6101045460005b8181101561085f576101048054829081101561000257600091825260008051602061099483398151915201541461048a5761010480546101039160009184908110156100025760008051602061099483398151915201548252506020919091526040812081815560018101829055600201555b600101610417565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561052c5761053f826100fd565b1561054a575061052e565b610552610410565b60015460fa90106105675761056561057c565b505b60015460fa9010610492575061052e565b6106365b600060015b600154811015610899575b600154811080156105ac5750600281610100811015610002570154600014155b156108b95760010161058c565b156103c557600160a060020a0383166000908152610102602052604081205492508214156105e7575061052c565b6001600160005054036000600050541115610602575061052c565b600060028361010081101561000257508301819055600160a060020a03841681526101026020526040812055610578610410565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561052c5760015482111561068d575061052e565b600082905561069a610410565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106f057600094506106f5565b600194505b5050505092915050565b1561052c575061010555565b1561052e5760006101065550565b60008681526101036020526040812080549094509092508214156107a2578154835560018381018390556101048054918201808255828015829011610771578183600052602060002091820191016107719190610885565b5050506002840181905561010480548892908110156100025760009190915260008051602061099483398151915201555b506001820154600284900a908116600014156108b05760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a182546001901161089d57600086815261010360205260409020600201546101048054909190811015610002576040600090812060008051602061099483398151915292909201819055808255600180830182905560029092015595506108b09050565b61010480546000808355919091526103c590600080516020610994833981519152908101905b808211156108995760008155600101610885565b5090565b8254600019018355600183018054821790555b50505050919050565b5b600180541180156108dc57506001546002906101008110156100025701546000145b156108f057600180546000190190556108ba565b600154811080156109135750600154600290610100811015610002570154600014155b801561092d57506002816101008110156100025701546000145b1561098e57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61058156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\"\n            ],\n            \"gasLimit\" : [\n                \"817082\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"1\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"100\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stWalletTest/dayLimitResetSpentTodayFiller.json",
    "content": "{\n    \"dayLimitResetSpentToday\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"0x02\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\" : {\n                        \"balance\" : \"0xc8\",\n                        \"code\" : \"0x606060405236156100985760e060020a6000350463173825d9811461009a5780632f54bf6e146100f65780634123cb6b1461011a5780635c52c2f5146101235780637065cb4814610154578063746c917114610188578063b20d30a914610191578063b75c7dc6146101c5578063ba51a6df146101f5578063c2cf732614610229578063f00d4b5d14610269578063f1736d86146102a2575b005b6100986004356000600036436040518084848082843750505090910190815260405190819003602001902090506105b9815b600160a060020a0333166000908152610102602052604081205481808083811415610719576108b0565b6102ac6004355b600160a060020a0316600090815261010260205260408120541190565b6102ac60015481565b6100986000364360405180848480828437505050909101908152604051908190036020019020905061070b816100cc565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610531816100cc565b6102ac60005481565b610098600435600036436040518084848082843750505090910190815260405190819003602001902090506106ff816100cc565b610098600435600160a060020a03331660009081526101026020526040812054908080838114156102be57610340565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610678816100cc565b6102ac600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156106d1576106f5565b6100986004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506103ca816100cc565b6102ac6101055481565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156103405781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156103c3576103d8836100fd565b156103e357506103c5565b600160a060020a03841660009081526101026020526040812054925082141561040c57506103c5565b6103475b6101045460005b8181101561085f576101048054829081101561000257600091825260008051602061099483398151915201541461048a5761010480546101039160009184908110156100025760008051602061099483398151915201548252506020919091526040812081815560018101829055600201555b600101610417565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561052c5761053f826100fd565b1561054a575061052e565b610552610410565b60015460fa90106105675761056561057c565b505b60015460fa9010610492575061052e565b6106365b600060015b600154811015610899575b600154811080156105ac5750600281610100811015610002570154600014155b156108b95760010161058c565b156103c557600160a060020a0383166000908152610102602052604081205492508214156105e7575061052c565b6001600160005054036000600050541115610602575061052c565b600060028361010081101561000257508301819055600160a060020a03841681526101026020526040812055610578610410565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561052c5760015482111561068d575061052e565b600082905561069a610410565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106f057600094506106f5565b600194505b5050505092915050565b1561052c575061010555565b1561052e5760006101065550565b60008681526101036020526040812080549094509092508214156107a2578154835560018381018390556101048054918201808255828015829011610771578183600052602060002091820191016107719190610885565b5050506002840181905561010480548892908110156100025760009190915260008051602061099483398151915201555b506001820154600284900a908116600014156108b05760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a182546001901161089d57600086815261010360205260409020600201546101048054909190811015610002576040600090812060008051602061099483398151915292909201819055808255600180830182905560029092015595506108b09050565b61010480546000808355919091526103c590600080516020610994833981519152908101905b808211156108995760008155600101610885565b5090565b8254600019018355600183018054821790555b50505050919050565b5b600180541180156108dc57506001546002906101008110156100025701546000145b156108f057600180546000190190556108ba565b600154811080156109135750600154600290610100811015610002570154600014155b801561092d57506002816101008110156100025701546000145b1561098e57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61058156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x0104\" : \"0x02\",\n                            \"0x0105\" : \"0x02\",\n                            \"0x0107\" : \"0x0c22e4\",\n                            \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x0de0b6b3a75ef08f\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x01\",\n                \"storage\" : {\n                }\n            },\n            \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\" : {\n                \"balance\" : \"0x64\",\n                \"code\" : \":raw 0x606060405236156100985760e060020a6000350463173825d9811461009a5780632f54bf6e146100f65780634123cb6b1461011a5780635c52c2f5146101235780637065cb4814610154578063746c917114610188578063b20d30a914610191578063b75c7dc6146101c5578063ba51a6df146101f5578063c2cf732614610229578063f00d4b5d14610269578063f1736d86146102a2575b005b6100986004356000600036436040518084848082843750505090910190815260405190819003602001902090506105b9815b600160a060020a0333166000908152610102602052604081205481808083811415610719576108b0565b6102ac6004355b600160a060020a0316600090815261010260205260408120541190565b6102ac60015481565b6100986000364360405180848480828437505050909101908152604051908190036020019020905061070b816100cc565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610531816100cc565b6102ac60005481565b610098600435600036436040518084848082843750505090910190815260405190819003602001902090506106ff816100cc565b610098600435600160a060020a03331660009081526101026020526040812054908080838114156102be57610340565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610678816100cc565b6102ac600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156106d1576106f5565b6100986004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506103ca816100cc565b6102ac6101055481565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156103405781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156103c3576103d8836100fd565b156103e357506103c5565b600160a060020a03841660009081526101026020526040812054925082141561040c57506103c5565b6103475b6101045460005b8181101561085f576101048054829081101561000257600091825260008051602061099483398151915201541461048a5761010480546101039160009184908110156100025760008051602061099483398151915201548252506020919091526040812081815560018101829055600201555b600101610417565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561052c5761053f826100fd565b1561054a575061052e565b610552610410565b60015460fa90106105675761056561057c565b505b60015460fa9010610492575061052e565b6106365b600060015b600154811015610899575b600154811080156105ac5750600281610100811015610002570154600014155b156108b95760010161058c565b156103c557600160a060020a0383166000908152610102602052604081205492508214156105e7575061052c565b6001600160005054036000600050541115610602575061052c565b600060028361010081101561000257508301819055600160a060020a03841681526101026020526040812055610578610410565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561052c5760015482111561068d575061052e565b600082905561069a610410565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106f057600094506106f5565b600194505b5050505092915050565b1561052c575061010555565b1561052e5760006101065550565b60008681526101036020526040812080549094509092508214156107a2578154835560018381018390556101048054918201808255828015829011610771578183600052602060002091820191016107719190610885565b5050506002840181905561010480548892908110156100025760009190915260008051602061099483398151915201555b506001820154600284900a908116600014156108b05760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a182546001901161089d57600086815261010360205260409020600201546101048054909190811015610002576040600090812060008051602061099483398151915292909201819055808255600180830182905560029092015595506108b09050565b61010480546000808355919091526103c590600080516020610994833981519152908101905b808211156108995760008155600101610885565b5090565b8254600019018355600183018054821790555b50505050919050565b5b600180541180156108dc57506001546002906101008110156100025701546000145b156108f057600180546000190190556108ba565b600154811080156109135750600154600290610100811015610002570154600014155b801561092d57506002816101008110156100025701546000145b1561098e57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61058156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\",\n                    \"0x01\" : \"0x01\",\n                    \"0x0104\" : \"0x01\",\n                    \"0x0105\" : \"0x02\",\n                    \"0x0107\" : \"0x0c22e4\",\n                    \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                    \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x5c52c2f5\"\n            ],\n            \"gasLimit\" : [\n                \"0x09b335\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"1\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\",\n            \"value\" : [\n                \"100\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stWalletTest/dayLimitSetDailyLimitFiller.json",
    "content": "{\n    \"dayLimitSetDailyLimit\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"0x02\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\" : {\n                        \"balance\" : \"0xc8\",\n                        \"code\" : \"0x606060405236156100985760e060020a6000350463173825d9811461009a5780632f54bf6e146100f65780634123cb6b1461011a5780635c52c2f5146101235780637065cb4814610154578063746c917114610188578063b20d30a914610191578063b75c7dc6146101c5578063ba51a6df146101f5578063c2cf732614610229578063f00d4b5d14610269578063f1736d86146102a2575b005b6100986004356000600036436040518084848082843750505090910190815260405190819003602001902090506105b9815b600160a060020a0333166000908152610102602052604081205481808083811415610719576108b0565b6102ac6004355b600160a060020a0316600090815261010260205260408120541190565b6102ac60015481565b6100986000364360405180848480828437505050909101908152604051908190036020019020905061070b816100cc565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610531816100cc565b6102ac60005481565b610098600435600036436040518084848082843750505090910190815260405190819003602001902090506106ff816100cc565b610098600435600160a060020a03331660009081526101026020526040812054908080838114156102be57610340565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610678816100cc565b6102ac600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156106d1576106f5565b6100986004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506103ca816100cc565b6102ac6101055481565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156103405781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156103c3576103d8836100fd565b156103e357506103c5565b600160a060020a03841660009081526101026020526040812054925082141561040c57506103c5565b6103475b6101045460005b8181101561085f576101048054829081101561000257600091825260008051602061099483398151915201541461048a5761010480546101039160009184908110156100025760008051602061099483398151915201548252506020919091526040812081815560018101829055600201555b600101610417565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561052c5761053f826100fd565b1561054a575061052e565b610552610410565b60015460fa90106105675761056561057c565b505b60015460fa9010610492575061052e565b6106365b600060015b600154811015610899575b600154811080156105ac5750600281610100811015610002570154600014155b156108b95760010161058c565b156103c557600160a060020a0383166000908152610102602052604081205492508214156105e7575061052c565b6001600160005054036000600050541115610602575061052c565b600060028361010081101561000257508301819055600160a060020a03841681526101026020526040812055610578610410565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561052c5760015482111561068d575061052e565b600082905561069a610410565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106f057600094506106f5565b600194505b5050505092915050565b1561052c575061010555565b1561052e5760006101065550565b60008681526101036020526040812080549094509092508214156107a2578154835560018381018390556101048054918201808255828015829011610771578183600052602060002091820191016107719190610885565b5050506002840181905561010480548892908110156100025760009190915260008051602061099483398151915201555b506001820154600284900a908116600014156108b05760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a182546001901161089d57600086815261010360205260409020600201546101048054909190811015610002576040600090812060008051602061099483398151915292909201819055808255600180830182905560029092015595506108b09050565b61010480546000808355919091526103c590600080516020610994833981519152908101905b808211156108995760008155600101610885565b5090565b8254600019018355600183018054821790555b50505050919050565b5b600180541180156108dc57506001546002906101008110156100025701546000145b156108f057600180546000190190556108ba565b600154811080156109135750600154600290610100811015610002570154600014155b801561092d57506002816101008110156100025701546000145b1561098e57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61058156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x0104\" : \"0x01\",\n                            \"0x0105\" : \"0x02\",\n                            \"0x0107\" : \"0x0c22e4\",\n                            \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x0de0b6b3a75ef08f\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x01\",\n                \"storage\" : {\n                }\n            },\n            \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\" : {\n                \"balance\" : \"0x64\",\n                \"code\" : \":raw 0x606060405236156100985760e060020a6000350463173825d9811461009a5780632f54bf6e146100f65780634123cb6b1461011a5780635c52c2f5146101235780637065cb4814610154578063746c917114610188578063b20d30a914610191578063b75c7dc6146101c5578063ba51a6df146101f5578063c2cf732614610229578063f00d4b5d14610269578063f1736d86146102a2575b005b6100986004356000600036436040518084848082843750505090910190815260405190819003602001902090506105b9815b600160a060020a0333166000908152610102602052604081205481808083811415610719576108b0565b6102ac6004355b600160a060020a0316600090815261010260205260408120541190565b6102ac60015481565b6100986000364360405180848480828437505050909101908152604051908190036020019020905061070b816100cc565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610531816100cc565b6102ac60005481565b610098600435600036436040518084848082843750505090910190815260405190819003602001902090506106ff816100cc565b610098600435600160a060020a03331660009081526101026020526040812054908080838114156102be57610340565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610678816100cc565b6102ac600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156106d1576106f5565b6100986004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506103ca816100cc565b6102ac6101055481565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156103405781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156103c3576103d8836100fd565b156103e357506103c5565b600160a060020a03841660009081526101026020526040812054925082141561040c57506103c5565b6103475b6101045460005b8181101561085f576101048054829081101561000257600091825260008051602061099483398151915201541461048a5761010480546101039160009184908110156100025760008051602061099483398151915201548252506020919091526040812081815560018101829055600201555b600101610417565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561052c5761053f826100fd565b1561054a575061052e565b610552610410565b60015460fa90106105675761056561057c565b505b60015460fa9010610492575061052e565b6106365b600060015b600154811015610899575b600154811080156105ac5750600281610100811015610002570154600014155b156108b95760010161058c565b156103c557600160a060020a0383166000908152610102602052604081205492508214156105e7575061052c565b6001600160005054036000600050541115610602575061052c565b600060028361010081101561000257508301819055600160a060020a03841681526101026020526040812055610578610410565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561052c5760015482111561068d575061052e565b600082905561069a610410565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106f057600094506106f5565b600194505b5050505092915050565b1561052c575061010555565b1561052e5760006101065550565b60008681526101036020526040812080549094509092508214156107a2578154835560018381018390556101048054918201808255828015829011610771578183600052602060002091820191016107719190610885565b5050506002840181905561010480548892908110156100025760009190915260008051602061099483398151915201555b506001820154600284900a908116600014156108b05760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a182546001901161089d57600086815261010360205260409020600201546101048054909190811015610002576040600090812060008051602061099483398151915292909201819055808255600180830182905560029092015595506108b09050565b61010480546000808355919091526103c590600080516020610994833981519152908101905b808211156108995760008155600101610885565b5090565b8254600019018355600183018054821790555b50505050919050565b5b600180541180156108dc57506001546002906101008110156100025701546000145b156108f057600180546000190190556108ba565b600154811080156109135750600154600290610100811015610002570154600014155b801561092d57506002816101008110156100025701546000145b1561098e57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61058156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\",\n                    \"0x01\" : \"0x01\",\n                    \"0x0107\" : \"0x0c22e4\",\n                    \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                    \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0xb20d30a90000000000000000000000000000000000000000000000000000000000000002\"\n            ],\n            \"gasLimit\" : [\n                \"0x09b335\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"1\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\",\n            \"value\" : [\n                \"100\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stWalletTest/dayLimitSetDailyLimitNoDataFiller.json",
    "content": "{\n    \"dayLimitSetDailyLimitNoData\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"0x02\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\" : {\n                        \"balance\" : \"0xc8\",\n                        \"code\" : \"0x606060405236156100985760e060020a6000350463173825d9811461009a5780632f54bf6e146100f65780634123cb6b1461011a5780635c52c2f5146101235780637065cb4814610154578063746c917114610188578063b20d30a914610191578063b75c7dc6146101c5578063ba51a6df146101f5578063c2cf732614610229578063f00d4b5d14610269578063f1736d86146102a2575b005b6100986004356000600036436040518084848082843750505090910190815260405190819003602001902090506105b9815b600160a060020a0333166000908152610102602052604081205481808083811415610719576108b0565b6102ac6004355b600160a060020a0316600090815261010260205260408120541190565b6102ac60015481565b6100986000364360405180848480828437505050909101908152604051908190036020019020905061070b816100cc565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610531816100cc565b6102ac60005481565b610098600435600036436040518084848082843750505090910190815260405190819003602001902090506106ff816100cc565b610098600435600160a060020a03331660009081526101026020526040812054908080838114156102be57610340565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610678816100cc565b6102ac600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156106d1576106f5565b6100986004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506103ca816100cc565b6102ac6101055481565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156103405781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156103c3576103d8836100fd565b156103e357506103c5565b600160a060020a03841660009081526101026020526040812054925082141561040c57506103c5565b6103475b6101045460005b8181101561085f576101048054829081101561000257600091825260008051602061099483398151915201541461048a5761010480546101039160009184908110156100025760008051602061099483398151915201548252506020919091526040812081815560018101829055600201555b600101610417565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561052c5761053f826100fd565b1561054a575061052e565b610552610410565b60015460fa90106105675761056561057c565b505b60015460fa9010610492575061052e565b6106365b600060015b600154811015610899575b600154811080156105ac5750600281610100811015610002570154600014155b156108b95760010161058c565b156103c557600160a060020a0383166000908152610102602052604081205492508214156105e7575061052c565b6001600160005054036000600050541115610602575061052c565b600060028361010081101561000257508301819055600160a060020a03841681526101026020526040812055610578610410565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561052c5760015482111561068d575061052e565b600082905561069a610410565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106f057600094506106f5565b600194505b5050505092915050565b1561052c575061010555565b1561052e5760006101065550565b60008681526101036020526040812080549094509092508214156107a2578154835560018381018390556101048054918201808255828015829011610771578183600052602060002091820191016107719190610885565b5050506002840181905561010480548892908110156100025760009190915260008051602061099483398151915201555b506001820154600284900a908116600014156108b05760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a182546001901161089d57600086815261010360205260409020600201546101048054909190811015610002576040600090812060008051602061099483398151915292909201819055808255600180830182905560029092015595506108b09050565b61010480546000808355919091526103c590600080516020610994833981519152908101905b808211156108995760008155600101610885565b5090565b8254600019018355600183018054821790555b50505050919050565b5b600180541180156108dc57506001546002906101008110156100025701546000145b156108f057600180546000190190556108ba565b600154811080156109135750600154600290610100811015610002570154600014155b801561092d57506002816101008110156100025701546000145b1561098e57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61058156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x0104\" : \"0x01\",\n                            \"0x0107\" : \"0x0c22e4\",\n                            \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x0de0b6b3a75ef08f\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x01\",\n                \"storage\" : {\n                }\n            },\n            \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\" : {\n                \"balance\" : \"0x64\",\n                \"code\" : \":raw 0x606060405236156100985760e060020a6000350463173825d9811461009a5780632f54bf6e146100f65780634123cb6b1461011a5780635c52c2f5146101235780637065cb4814610154578063746c917114610188578063b20d30a914610191578063b75c7dc6146101c5578063ba51a6df146101f5578063c2cf732614610229578063f00d4b5d14610269578063f1736d86146102a2575b005b6100986004356000600036436040518084848082843750505090910190815260405190819003602001902090506105b9815b600160a060020a0333166000908152610102602052604081205481808083811415610719576108b0565b6102ac6004355b600160a060020a0316600090815261010260205260408120541190565b6102ac60015481565b6100986000364360405180848480828437505050909101908152604051908190036020019020905061070b816100cc565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610531816100cc565b6102ac60005481565b610098600435600036436040518084848082843750505090910190815260405190819003602001902090506106ff816100cc565b610098600435600160a060020a03331660009081526101026020526040812054908080838114156102be57610340565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610678816100cc565b6102ac600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156106d1576106f5565b6100986004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506103ca816100cc565b6102ac6101055481565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156103405781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156103c3576103d8836100fd565b156103e357506103c5565b600160a060020a03841660009081526101026020526040812054925082141561040c57506103c5565b6103475b6101045460005b8181101561085f576101048054829081101561000257600091825260008051602061099483398151915201541461048a5761010480546101039160009184908110156100025760008051602061099483398151915201548252506020919091526040812081815560018101829055600201555b600101610417565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561052c5761053f826100fd565b1561054a575061052e565b610552610410565b60015460fa90106105675761056561057c565b505b60015460fa9010610492575061052e565b6106365b600060015b600154811015610899575b600154811080156105ac5750600281610100811015610002570154600014155b156108b95760010161058c565b156103c557600160a060020a0383166000908152610102602052604081205492508214156105e7575061052c565b6001600160005054036000600050541115610602575061052c565b600060028361010081101561000257508301819055600160a060020a03841681526101026020526040812055610578610410565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561052c5760015482111561068d575061052e565b600082905561069a610410565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106f057600094506106f5565b600194505b5050505092915050565b1561052c575061010555565b1561052e5760006101065550565b60008681526101036020526040812080549094509092508214156107a2578154835560018381018390556101048054918201808255828015829011610771578183600052602060002091820191016107719190610885565b5050506002840181905561010480548892908110156100025760009190915260008051602061099483398151915201555b506001820154600284900a908116600014156108b05760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a182546001901161089d57600086815261010360205260409020600201546101048054909190811015610002576040600090812060008051602061099483398151915292909201819055808255600180830182905560029092015595506108b09050565b61010480546000808355919091526103c590600080516020610994833981519152908101905b808211156108995760008155600101610885565b5090565b8254600019018355600183018054821790555b50505050919050565b5b600180541180156108dc57506001546002906101008110156100025701546000145b156108f057600180546000190190556108ba565b600154811080156109135750600154600290610100811015610002570154600014155b801561092d57506002816101008110156100025701546000145b1561098e57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61058156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\",\n                    \"0x01\" : \"0x01\",\n                    \"0x0107\" : \"0x0c22e4\",\n                    \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                    \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0xb20d30a9\"\n            ],\n            \"gasLimit\" : [\n                \"0x09b335\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"1\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\",\n            \"value\" : [\n                \"100\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stWalletTest/multiOwnedAddOwnerAddMyselfFiller.json",
    "content": "{\n    \"multiOwnedAddOwnerAddMyself\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"balance\" : \"0xc8\",\n                        \"code\" : \"0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x0104\" : \"0x01\",\n                            \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"0x02\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                \"balance\" : \"0x64\",\n                \"code\" : \":raw 0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\",\n                    \"0x01\" : \"0x01\",\n                    \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                    \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x0de0b6b3a75ef08f\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x01\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7065cb48000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"1\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\",\n            \"value\" : [\n                \"100\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stWalletTest/multiOwnedAddOwnerFiller.json",
    "content": "{\n    \"multiOwnedAddOwner\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"balance\" : \"0xc8\",\n                        \"code\" : \"0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x02\",\n                            \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x04\" : \"0x3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4\",\n                            \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\",\n                            \"0xd3e69d8c7f41f7aeaf8130ddc53047aeee8cb46a73d6bae86b7e7d6bf8312e6b\" : \"0x02\"\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"0x02\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                \"balance\" : \"0x64\",\n                \"code\" : \":raw 0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\",\n                    \"0x01\" : \"0x01\",\n                    \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                    \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x0de0b6b3a75ef08f\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x01\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7065cb480000000000000000000000003fb1cd2cd96c6d5c0b5eb3322d807b34482481d4\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"1\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\",\n            \"value\" : [\n                \"100\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stWalletTest/multiOwnedChangeOwnerFiller.json",
    "content": "{\n    \"multiOwnedChangeOwner\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"balance\" : \"0xc8\",\n                        \"code\" : \"0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x03\" : \"0xaaaf5374fce5edbc8e2a8697c15331677e6ebaaa\",\n                            \"0x62ce4f671906be9a217487bb98e428b08e12100fb0007df10572ca00206e7d73\" : \"0x01\"\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"0x02\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                \"balance\" : \"0x64\",\n                \"code\" : \":raw 0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\",\n                    \"0x01\" : \"0x01\",\n                    \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                    \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x0de0b6b3a75ef08f\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x01\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0xf00d4b5d000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b000000000000000000000000aaaf5374fce5edbc8e2a8697c15331677e6ebaaa\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"1\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\",\n            \"value\" : [\n                \"100\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stWalletTest/multiOwnedChangeOwnerNoArgumentFiller.json",
    "content": "{\n    \"multiOwnedChangeOwnerNoArgument\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"balance\" : \"0xc8\",\n                        \"code\" : \"0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x0104\" : \"0x01\",\n                            \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"0x02\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                \"balance\" : \"0x64\",\n                \"code\" : \":raw 0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\",\n                    \"0x01\" : \"0x01\",\n                    \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                    \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x0de0b6b3a75ef08f\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x01\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0xf00d4b5d\"\n            ],\n            \"gasLimit\" : [\n                \"0x0bc2b7\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"1\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\",\n            \"value\" : [\n                \"100\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stWalletTest/multiOwnedChangeOwner_fromNotOwnerFiller.json",
    "content": "{\n    \"multiOwnedChangeOwner_fromNotOwner\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"balance\" : \"0xc8\",\n                        \"code\" : \"0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x0104\" : \"0x01\",\n                            \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"0x02\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                \"balance\" : \"0x64\",\n                \"code\" : \":raw 0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\",\n                    \"0x01\" : \"0x01\",\n                    \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                    \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x0de0b6b3a75ef08f\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x01\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0xf00d4b5d000000000000000000000000b94f5374fce5edbc8e2a8697c15331677e6ebf0b000000000000000000000000aaaf5374fce5edbc8e2a8697c15331677e6ebaaa\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"1\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\",\n            \"value\" : [\n                \"100\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stWalletTest/multiOwnedChangeOwner_toIsOwnerFiller.json",
    "content": "{\n    \"multiOwnedChangeOwner_toIsOwner\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"balance\" : \"0xc8\",\n                        \"code\" : \"0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x0104\" : \"0x01\",\n                            \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"0x02\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                \"balance\" : \"0x64\",\n                \"code\" : \":raw 0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\",\n                    \"0x01\" : \"0x01\",\n                    \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                    \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x0de0b6b3a75ef08f\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x01\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0xf00d4b5d000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"1\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\",\n            \"value\" : [\n                \"100\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stWalletTest/multiOwnedChangeRequirementTo0Filler.json",
    "content": "{\n    \"multiOwnedChangeRequirementTo0\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"balance\" : \"0xc8\",\n                        \"code\" : \"0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x01\" : \"0x01\",\n                            \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"0x02\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                \"balance\" : \"0x64\",\n                \"code\" : \":raw 0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\",\n                    \"0x01\" : \"0x01\",\n                    \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                    \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x0de0b6b3a75ef08f\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x01\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0xba51a6df0000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"1\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\",\n            \"value\" : [\n                \"100\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stWalletTest/multiOwnedChangeRequirementTo1Filler.json",
    "content": "{\n    \"multiOwnedChangeRequirementTo1\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"balance\" : \"0xc8\",\n                        \"code\" : \"0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"0x02\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                \"balance\" : \"0x64\",\n                \"code\" : \":raw 0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\",\n                    \"0x01\" : \"0x01\",\n                    \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                    \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x0de0b6b3a75ef08f\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x01\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0xba51a6df0000000000000000000000000000000000000000000000000000000000000001\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"1\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\",\n            \"value\" : [\n                \"100\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stWalletTest/multiOwnedChangeRequirementTo2Filler.json",
    "content": "{\n    \"multiOwnedChangeRequirementTo2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"balance\" : \"0xc8\",\n                        \"code\" : \"0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x0104\" : \"0x01\",\n                            \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"0x02\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                \"balance\" : \"0x64\",\n                \"code\" : \":raw 0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\",\n                    \"0x01\" : \"0x01\",\n                    \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                    \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x0de0b6b3a75ef08f\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x01\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0xba51a6df0000000000000000000000000000000000000000000000000000000000000002\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"1\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\",\n            \"value\" : [\n                \"100\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stWalletTest/multiOwnedConstructionCorrectFiller.json",
    "content": "{\n    \"multiOwnedConstructionCorrect\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"balance\" : \"0x64\",\n                        \"code\" : \"0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x606060409081526001600081815581805533600160a060020a0316600381905581526101026020529182205561090a90819061003b90396000f300606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"100\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stWalletTest/multiOwnedConstructionNotEnoughGasFiller.json",
    "content": "{\n    \"multiOwnedConstructionNotEnoughGas\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"1000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"//balance\" : \"0x0de0b6b3a760163f\",\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x606060409081526001600081815581805533600160a060020a0316600381905581526101026020529182205561090a90819061003b90396000f300606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\"\n            ],\n            \"gasLimit\" : [\n                \"0x03e9c1\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stWalletTest/multiOwnedConstructionNotEnoughGasPartialFiller.json",
    "content": "{\n    \"multiOwnedConstructionNotEnoughGasPartial\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"shouldnotexist\" : \"1\"\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            },\n\t\t\t{\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"nonce\" : \"1\"\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x606060409081526001600081815581805533600160a060020a0316600381905581526101026020529182205561090a90819061003b90396000f300606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\"\n            ],\n            \"gasLimit\" : [\n                \"601249\", \"751249\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"100\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stWalletTest/multiOwnedIsOwnerFalseFiller.json",
    "content": "{\n    \"multiOwnedIsOwnerFalse\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"balance\" : \"0xc8\",\n                        \"code\" : \"0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"0x02\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                \"balance\" : \"0x64\",\n                \"code\" : \":raw 0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\",\n                    \"0x01\" : \"0x01\",\n                    \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                    \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x0de0b6b3a75ef08f\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x01\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x2f54bf6e000000000000000000000000aaaf5374fce5edbc8e2a8697c15331677e6ebaaa\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"1\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\",\n            \"value\" : [\n                \"100\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stWalletTest/multiOwnedIsOwnerTrueFiller.json",
    "content": "{\n    \"multiOwnedIsOwnerTrue\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"balance\" : \"0xc8\",\n                        \"code\" : \"0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"0x02\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                \"balance\" : \"0x64\",\n                \"code\" : \":raw 0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\",\n                    \"0x01\" : \"0x01\",\n                    \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                    \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x0de0b6b3a75ef08f\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x01\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x2f54bf6e000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"1\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\",\n            \"value\" : [\n                \"100\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stWalletTest/multiOwnedRemoveOwnerByNonOwnerFiller.json",
    "content": "{\n    \"multiOwnedRemoveOwnerByNonOwner\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x02\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"balance\" : \"0xc8\",\n                        \"code\" : \"0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4\" : {\n                \"balance\" : \"0x0de0b6b3a75ef08f\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x01\",\n                \"storage\" : {\n                }\n            },\n            \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                \"balance\" : \"0x64\",\n                \"code\" : \":raw 0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\",\n                    \"0x01\" : \"0x01\",\n                    \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                    \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x0de0b6b3a75ef08f\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x01\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x173825d9000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"1\",\n            \"secretKey\" : \"a95defe70ebea7804f9c3be42d20d24375e2a92b9d9666b832069c5f3cd423dd\",\n            \"to\" : \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\",\n            \"value\" : [\n                \"100\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stWalletTest/multiOwnedRemoveOwnerFiller.json",
    "content": "{\n    \"multiOwnedRemoveOwner\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"balance\" : \"0xc8\",\n                        \"code\" : \"0x7c01000000000000000000000000000000000000000000000000000000006000350463173825d981146100655780632f54bf6e146100b75780637065cb48146100e8578063b75c7dc614610105578063ba51a6df14610142578063f00d4b5d1461015f57005b6101816004356000604060003680828437909120905061046d815b73ffffffffffffffffffffffffffffffffffffffff3316600090815261010260205260408120548180808381141561058f57610586565b6101876004355b73ffffffffffffffffffffffffffffffffffffffff16600090815261010260205260408120541190565b610181600435604060003680828437909120905061037c81610080565b61018160043573ffffffffffffffffffffffffffffffffffffffff3316600090815261010260205260408120549080808381141561019157610213565b610181600435604060003680828437909120905061053381610080565b6101816004356024356000604060003680828437909120905061028681610080565b60006000f35b8060005260206000f35b5050506000828152610103602052604081206001810154600284900a929083168190111561021357815460018084018054919092018455849003905573ffffffffffffffffffffffffffffffffffffffff3316604090815260608690527fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b9080a15b5050505050565b015573ffffffffffffffffffffffffffffffffffffffff84811660008181526101026020526040808220829055928616808252908390208590559082526060527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9080a15b505b505050565b1561027f57610294836100be565b1561029f5750610281565b73ffffffffffffffffffffffffffffffffffffffff84166000908152610102602052604081205492508214156102d55750610281565b6102f75b6101045460005b8181101561080c5761010480548290811061085457005b73ffffffffffffffffffffffffffffffffffffffff8316600283610100811061021a57005b015560015473ffffffffffffffffffffffffffffffffffffffff831660008181526101026020908152604091829020939093559081527f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c39190a15b505b50565b156103775761038a826100be565b156103955750610379565b61039d6102d9565b60015460fa901015156103b4576103b26103cb565b505b60015460fa901015156103f55750610379565b6104255b600060015b6001548110156106f7575b600154811080156107535750600281610100811061074c57005b6001805481019081905573ffffffffffffffffffffffffffffffffffffffff831690600290610100811061031c57005b5073ffffffffffffffffffffffffffffffffffffffff831660409081527f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da90602090a1505050565b156102815773ffffffffffffffffffffffffffffffffffffffff83166000908152610102602052604081205492508214156104a85750610377565b60016001600050540360006000505411156104c35750610377565b600060028361010081106104d357005b015573ffffffffffffffffffffffffffffffffffffffff8316600090815261010260205260408120556103c76102d9565b60408281527facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da90602090a15050565b15610377576001548211156105485750610379565b60008290556105046102d9565b82547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018355600183018054821790555b50505050919050565b600086815261010360205260408120805490945090925082141561061a5781548355600183810183905561010480549182018082558280158290116106a6578286527f4c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe9081019082015b808211156106a457600081556001016105f9565b6000918252602090912001555b506001820154600284900a908116600014156105865773ffffffffffffffffffffffffffffffffffffffff3316604090815260608790527fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda9080a182546001901115156105555760008681526101036020526101048054604090922060020154909181106106c057005b505b505050600284018190556101048054889290811061060d57005b6000918252602080832090910182905587825261010390526040812081815560018181018390556002909101919091559450610586565b5090565b01546000145b1561076057600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190555b60018054118015610701575060015460029061010081106106fb57005b0154600014155b1561072f576001016103db565b600154811080156107845750600154600290610100811061077d57005b0154600014155b801561079f5750600281610100811061079957005b01546000145b156107b85760015460029061010081106107bd57005b01555b6103d0565b015460028261010081106107cd57005b015580610102600060028361010081106107e357005b01548152602081019190915260400160009081209190915560015460029061010081106107b557005b61010480546000808355919091527f4c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe908101905b8082111561027f5760008155600101610840565b60009182526020822001541415156108a6576101048054610103916000918490811061087c57005b60009182526020808320909101548352820192909252604001812081815560018101829055600201555b6001016102e056\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x03\" : \"0x3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4\",\n                            \"0xd3e69d8c7f41f7aeaf8130ddc53047aeee8cb46a73d6bae86b7e7d6bf8312e6b\" : \"0x01\"\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"0x02\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                \"balance\" : \"0x64\",\n                \"code\" : \":raw 0x7c01000000000000000000000000000000000000000000000000000000006000350463173825d981146100655780632f54bf6e146100b75780637065cb48146100e8578063b75c7dc614610105578063ba51a6df14610142578063f00d4b5d1461015f57005b6101816004356000604060003680828437909120905061046d815b73ffffffffffffffffffffffffffffffffffffffff3316600090815261010260205260408120548180808381141561058f57610586565b6101876004355b73ffffffffffffffffffffffffffffffffffffffff16600090815261010260205260408120541190565b610181600435604060003680828437909120905061037c81610080565b61018160043573ffffffffffffffffffffffffffffffffffffffff3316600090815261010260205260408120549080808381141561019157610213565b610181600435604060003680828437909120905061053381610080565b6101816004356024356000604060003680828437909120905061028681610080565b60006000f35b8060005260206000f35b5050506000828152610103602052604081206001810154600284900a929083168190111561021357815460018084018054919092018455849003905573ffffffffffffffffffffffffffffffffffffffff3316604090815260608690527fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b9080a15b5050505050565b015573ffffffffffffffffffffffffffffffffffffffff84811660008181526101026020526040808220829055928616808252908390208590559082526060527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9080a15b505b505050565b1561027f57610294836100be565b1561029f5750610281565b73ffffffffffffffffffffffffffffffffffffffff84166000908152610102602052604081205492508214156102d55750610281565b6102f75b6101045460005b8181101561080c5761010480548290811061085457005b73ffffffffffffffffffffffffffffffffffffffff8316600283610100811061021a57005b015560015473ffffffffffffffffffffffffffffffffffffffff831660008181526101026020908152604091829020939093559081527f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c39190a15b505b50565b156103775761038a826100be565b156103955750610379565b61039d6102d9565b60015460fa901015156103b4576103b26103cb565b505b60015460fa901015156103f55750610379565b6104255b600060015b6001548110156106f7575b600154811080156107535750600281610100811061074c57005b6001805481019081905573ffffffffffffffffffffffffffffffffffffffff831690600290610100811061031c57005b5073ffffffffffffffffffffffffffffffffffffffff831660409081527f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da90602090a1505050565b156102815773ffffffffffffffffffffffffffffffffffffffff83166000908152610102602052604081205492508214156104a85750610377565b60016001600050540360006000505411156104c35750610377565b600060028361010081106104d357005b015573ffffffffffffffffffffffffffffffffffffffff8316600090815261010260205260408120556103c76102d9565b60408281527facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da90602090a15050565b15610377576001548211156105485750610379565b60008290556105046102d9565b82547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018355600183018054821790555b50505050919050565b600086815261010360205260408120805490945090925082141561061a5781548355600183810183905561010480549182018082558280158290116106a6578286527f4c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe9081019082015b808211156106a457600081556001016105f9565b6000918252602090912001555b506001820154600284900a908116600014156105865773ffffffffffffffffffffffffffffffffffffffff3316604090815260608790527fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda9080a182546001901115156105555760008681526101036020526101048054604090922060020154909181106106c057005b505b505050600284018190556101048054889290811061060d57005b6000918252602080832090910182905587825261010390526040812081815560018181018390556002909101919091559450610586565b5090565b01546000145b1561076057600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190555b60018054118015610701575060015460029061010081106106fb57005b0154600014155b1561072f576001016103db565b600154811080156107845750600154600290610100811061077d57005b0154600014155b801561079f5750600281610100811061079957005b01546000145b156107b85760015460029061010081106107bd57005b01555b6103d0565b015460028261010081106107cd57005b015580610102600060028361010081106107e357005b01548152602081019190915260400160009081209190915560015460029061010081106107b557005b61010480546000808355919091527f4c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe908101905b8082111561027f5760008155600101610840565b60009182526020822001541415156108a6576101048054610103916000918490811061087c57005b60009182526020808320909101548352820192909252604001812081815560018101829055600201555b6001016102e056\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\",\n                    \"0x01\" : \"0x02\",\n                    \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                    \"0x04\" : \"0x3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4\",\n                    \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\",\n                    \"0xd3e69d8c7f41f7aeaf8130ddc53047aeee8cb46a73d6bae86b7e7d6bf8312e6b\" : \"0x02\"\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x0de0b6b3a75ef08f\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x01\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x173825d9000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"1\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\",\n            \"value\" : [\n                \"100\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stWalletTest/multiOwnedRemoveOwner_mySelfFiller.json",
    "content": "{\n    \"multiOwnedRemoveOwner_mySelf\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"balance\" : \"0xc8\",\n                        \"code\" : \"0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x0104\" : \"0x01\",\n                            \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"0x02\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                \"balance\" : \"0x64\",\n                \"code\" : \":raw 0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\",\n                    \"0x01\" : \"0x01\",\n                    \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                    \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x0de0b6b3a75ef08f\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x01\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x173825d9000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"1\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\",\n            \"value\" : [\n                \"100\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stWalletTest/multiOwnedRemoveOwner_ownerIsNotOwnerFiller.json",
    "content": "{\n    \"multiOwnedRemoveOwner_ownerIsNotOwner\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"balance\" : \"0xc8\",\n                        \"code\" : \"0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x0104\" : \"0x01\",\n                            \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"0x02\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                \"balance\" : \"0x64\",\n                \"code\" : \":raw 0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\",\n                    \"0x01\" : \"0x01\",\n                    \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                    \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x0de0b6b3a75ef08f\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x01\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x173825d9000000000000000000000000aaaf5374fce5edbc8e2a8697c15331677e6ebaaa\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"1\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\",\n            \"value\" : [\n                \"100\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stWalletTest/multiOwnedRevokeNothingFiller.json",
    "content": "{\n    \"multiOwnedRevokeNothing\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                        \"balance\" : \"0xc8\",\n                        \"code\" : \"0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"0x02\",\n                        \"storage\" : {\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\" : {\n                \"balance\" : \"0x64\",\n                \"code\" : \":raw 0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\",\n                    \"0x01\" : \"0x01\",\n                    \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                    \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x0de0b6b3a75ef08f\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x01\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0xb75c7dc66e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"1\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"6295ee1b4f6dd65047762f924ecd367c17eabf8f\",\n            \"value\" : [\n                \"100\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stWalletTest/walletAddOwnerRemovePendingTransactionFiller.json",
    "content": "{\n    \"walletAddOwnerRemovePendingTransaction\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\" : {\n                        \"balance\" : \"0x64\",\n                        \"code\" : \"0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x03\",\n                            \"0x0107\" : \"0x0c22e4\",\n                            \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x04\" : \"0x3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4\",\n                            \"0x05\" : \"0xbbb1cd2cd96c6d5c0b5eb3322d807b34482481d4\",\n                            \"0x3412a0f379bad2d2f891e4db16a42d964dd63a031e22596f10b4dab2aaa1d252\" : \"0x03\",\n                            \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\",\n                            \"0xd3e69d8c7f41f7aeaf8130ddc53047aeee8cb46a73d6bae86b7e7d6bf8312e6b\" : \"0x02\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4\" : {\n                \"balance\" : \"100000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x0de0b6b3a75ef08f\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x01\",\n                \"storage\" : {\n                }\n            },\n            \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\" : {\n                \"balance\" : \"0x64\",\n                \"code\" : \":raw 0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\",\n                    \"0x01\" : \"0x02\",\n                    \"0x0104\" : \"0x01\",\n                    \"0x0107\" : \"0x0c22e4\",\n                    \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                    \"0x04\" : \"0x3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4\",\n                    \"0x3736dca762b6fcb9a97d5eafda4032fdba21dbfa25f875001d51e03eff955fb2\" : \"0x01\",\n                    \"0x3736dca762b6fcb9a97d5eafda4032fdba21dbfa25f875001d51e03eff955fb3\" : \"0x02\",\n                    \"0x4c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\" : \"0x6877e4536b661640954061cdbc3a9761fb5245c340fcb1721307cd9d5f285c96\",\n                    \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\",\n                    \"0x915023a2112bb78c86fa558abc0217ea6818d13895b90ce6be233397f55eb1d0\" : \"0xaaaf5374fce5edbc8e2a8697c15331677e6ebaaa\",\n                    \"0x915023a2112bb78c86fa558abc0217ea6818d13895b90ce6be233397f55eb1d1\" : \"0x09\",\n                    \"0xd3e69d8c7f41f7aeaf8130ddc53047aeee8cb46a73d6bae86b7e7d6bf8312e6b\" : \"0x02\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x7065cb48000000000000000000000000bbb1cd2cd96c6d5c0b5eb3322d807b34482481d4\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"a95defe70ebea7804f9c3be42d20d24375e2a92b9d9666b832069c5f3cd423dd\",\n            \"to\" : \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stWalletTest/walletChangeOwnerRemovePendingTransactionFiller.json",
    "content": "{\n    \"walletChangeOwnerRemovePendingTransaction\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\" : {\n                        \"balance\" : \"0x64\",\n                        \"code\" : \"0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x02\",\n                            \"0x0107\" : \"0x0c22e4\",\n                            \"0x03\" : \"0xaaaf5374fce5edbc8e2a8697c15331677e6ebaaa\",\n                            \"0x04\" : \"0x3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4\",\n                            \"0x62ce4f671906be9a217487bb98e428b08e12100fb0007df10572ca00206e7d73\" : \"0x01\",\n                            \"0xd3e69d8c7f41f7aeaf8130ddc53047aeee8cb46a73d6bae86b7e7d6bf8312e6b\" : \"0x02\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4\" : {\n                \"balance\" : \"100000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x0de0b6b3a75ef08f\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x01\",\n                \"storage\" : {\n                }\n            },\n            \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\" : {\n                \"balance\" : \"0x64\",\n                \"code\" : \":raw 0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\",\n                    \"0x01\" : \"0x02\",\n                    \"0x0104\" : \"0x01\",\n                    \"0x0107\" : \"0x0c22e4\",\n                    \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                    \"0x04\" : \"0x3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4\",\n                    \"0x3736dca762b6fcb9a97d5eafda4032fdba21dbfa25f875001d51e03eff955fb2\" : \"0x01\",\n                    \"0x3736dca762b6fcb9a97d5eafda4032fdba21dbfa25f875001d51e03eff955fb3\" : \"0x02\",\n                    \"0x4c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\" : \"0x6877e4536b661640954061cdbc3a9761fb5245c340fcb1721307cd9d5f285c96\",\n                    \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\",\n                    \"0x915023a2112bb78c86fa558abc0217ea6818d13895b90ce6be233397f55eb1d0\" : \"0xaaaf5374fce5edbc8e2a8697c15331677e6ebaaa\",\n                    \"0x915023a2112bb78c86fa558abc0217ea6818d13895b90ce6be233397f55eb1d1\" : \"0x09\",\n                    \"0xd3e69d8c7f41f7aeaf8130ddc53047aeee8cb46a73d6bae86b7e7d6bf8312e6b\" : \"0x02\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0xf00d4b5d000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b000000000000000000000000aaaf5374fce5edbc8e2a8697c15331677e6ebaaa\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"a95defe70ebea7804f9c3be42d20d24375e2a92b9d9666b832069c5f3cd423dd\",\n            \"to\" : \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stWalletTest/walletChangeRequirementRemovePendingTransactionFiller.json",
    "content": "{\n    \"walletChangeRequirementRemovePendingTransaction\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\" : {\n                        \"balance\" : \"0x64\",\n                        \"code\" : \"0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x02\",\n                            \"0x01\" : \"0x02\",\n                            \"0x0107\" : \"0x0c22e4\",\n                            \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x04\" : \"0x3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4\",\n                            \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\",\n                            \"0xd3e69d8c7f41f7aeaf8130ddc53047aeee8cb46a73d6bae86b7e7d6bf8312e6b\" : \"0x02\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4\" : {\n                \"balance\" : \"100000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x0de0b6b3a75ef08f\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x01\",\n                \"storage\" : {\n                }\n            },\n            \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\" : {\n                \"balance\" : \"0x64\",\n                \"code\" : \":raw 0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\",\n                    \"0x01\" : \"0x02\",\n                    \"0x0104\" : \"0x01\",\n                    \"0x0107\" : \"0x0c22e4\",\n                    \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                    \"0x04\" : \"0x3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4\",\n                    \"0x3736dca762b6fcb9a97d5eafda4032fdba21dbfa25f875001d51e03eff955fb2\" : \"0x01\",\n                    \"0x3736dca762b6fcb9a97d5eafda4032fdba21dbfa25f875001d51e03eff955fb3\" : \"0x02\",\n                    \"0x4c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\" : \"0x6877e4536b661640954061cdbc3a9761fb5245c340fcb1721307cd9d5f285c96\",\n                    \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\",\n                    \"0x915023a2112bb78c86fa558abc0217ea6818d13895b90ce6be233397f55eb1d0\" : \"0xaaaf5374fce5edbc8e2a8697c15331677e6ebaaa\",\n                    \"0x915023a2112bb78c86fa558abc0217ea6818d13895b90ce6be233397f55eb1d1\" : \"0x09\",\n                    \"0xd3e69d8c7f41f7aeaf8130ddc53047aeee8cb46a73d6bae86b7e7d6bf8312e6b\" : \"0x02\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0xba51a6df0000000000000000000000000000000000000000000000000000000000000002\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"a95defe70ebea7804f9c3be42d20d24375e2a92b9d9666b832069c5f3cd423dd\",\n            \"to\" : \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stWalletTest/walletConfirmFiller.json",
    "content": "{\n    \"walletConfirm\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"aaaf5374fce5edbc8e2a8697c15331677e6ebaaa\" : {\n                        \"balance\" : \"0x09\",\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\" : {\n                        \"balance\" : \"0x5b\",\n                        \"code\" : \"0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x02\",\n                            \"0x01\" : \"0x02\",\n                            \"0x0104\" : \"0x01\",\n                            \"0x0107\" : \"0x0c22e4\",\n                            \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x04\" : \"0x3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4\",\n                            \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\",\n                            \"0xd3e69d8c7f41f7aeaf8130ddc53047aeee8cb46a73d6bae86b7e7d6bf8312e6b\" : \"0x02\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4\" : {\n                \"balance\" : \"100000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x0de0b6b3a75ef08f\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x01\",\n                \"storage\" : {\n                }\n            },\n            \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\" : {\n                \"balance\" : \"0x64\",\n                \"code\" : \":raw 0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x02\",\n                    \"0x01\" : \"0x02\",\n                    \"0x0104\" : \"0x01\",\n                    \"0x0107\" : \"0x0c22e4\",\n                    \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                    \"0x04\" : \"0x3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4\",\n                    \"0x3736dca762b6fcb9a97d5eafda4032fdba21dbfa25f875001d51e03eff955fb2\" : \"0x01\",\n                    \"0x3736dca762b6fcb9a97d5eafda4032fdba21dbfa25f875001d51e03eff955fb3\" : \"0x02\",\n                    \"0x4c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\" : \"0x6877e4536b661640954061cdbc3a9761fb5245c340fcb1721307cd9d5f285c96\",\n                    \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\",\n                    \"0x915023a2112bb78c86fa558abc0217ea6818d13895b90ce6be233397f55eb1d0\" : \"0xaaaf5374fce5edbc8e2a8697c15331677e6ebaaa\",\n                    \"0x915023a2112bb78c86fa558abc0217ea6818d13895b90ce6be233397f55eb1d1\" : \"0x09\",\n                    \"0xd3e69d8c7f41f7aeaf8130ddc53047aeee8cb46a73d6bae86b7e7d6bf8312e6b\" : \"0x02\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x797af6276877e4536b661640954061cdbc3a9761fb5245c340fcb1721307cd9d5f285c96\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"a95defe70ebea7804f9c3be42d20d24375e2a92b9d9666b832069c5f3cd423dd\",\n            \"to\" : \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stWalletTest/walletConstructionFiller.json",
    "content": "{\n    \"walletConstruction\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : [0,1],\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x02\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\" : {\n                        \"balance\" : \"0x64\",\n                        \"code\" : \"0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x0107\" : \"0x00\",\n                            \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x0de0b6b3a75ef08f\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x01\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x6060604052604051602080611014833960806040818152925160016000818155818055600160a060020a03331660038190558152610102909452938320939093556201518042046101075582917f102d25c49d33fcdb8976a3f2744e0785c98d9e43b88364859e6aec4ae82eff5c91a250610f958061007f6000396000f300606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\"\n            ],\n            \"gasLimit\" : [\n                \"1225023\", \"1825023\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"1\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"100\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stWalletTest/walletConstructionOOGFiller.json",
    "content": "{\n    \"walletConstructionOOG\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x02\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\" : {\n                        \"shouldnotexist\" : \"1\"\n                    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : 1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x02\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\" : {\n                        \"balance\" : \"0x64\",\n                        \"code\" : \"0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                        \"nonce\" : \"1\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x0107\" : \"0x00\",\n                            \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x0de0b6b3a75ef08f\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x01\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x6060604052604051602080611014833960806040818152925160016000818155818055600160a060020a03331660038190558152610102909452938320939093556201518042046101075582917f102d25c49d33fcdb8976a3f2744e0785c98d9e43b88364859e6aec4ae82eff5c91a250610f958061007f6000396000f300606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\"\n            ],\n            \"gasLimit\" : [\n                \"427222\", \"1225022\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"1\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"100\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stWalletTest/walletConstructionPartialFiller.json",
    "content": "{\n    \"walletConstructionPartial\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"0x02\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\" : {\n                        \"balance\" : \"0x64\",\n                        \"code\" : \"0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x0107\" : \"0x00\",\n                            \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x0de0b6b3a75ef08f\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x01\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x6060604052604051602080611014833960806040818152925160016000818155818055600160a060020a03331660038190558152610102909452938320939093556201518042046101075582917f102d25c49d33fcdb8976a3f2744e0785c98d9e43b88364859e6aec4ae82eff5c91a250610f958061007f6000396000f300606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\"\n            ],\n            \"gasLimit\" : [\n                \"2225022\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"1\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"\",\n            \"value\" : [\n                \"100\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stWalletTest/walletDefaultFiller.json",
    "content": "{\n    \"walletDefault\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"0x02\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\" : {\n                        \"balance\" : \"0xc8\",\n                        \"code\" : \"0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x0106\" : \"0x0c22e4\",\n                            \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x0de0b6b3a75ef08f\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x01\",\n                \"storage\" : {\n                }\n            },\n            \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\" : {\n                \"balance\" : \"0x64\",\n                \"code\" : \":raw 0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\",\n                    \"0x01\" : \"0x01\",\n                    \"0x0106\" : \"0x0c22e4\",\n                    \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                    \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"1\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\",\n            \"value\" : [\n                \"100\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stWalletTest/walletDefaultWithOutValueFiller.json",
    "content": "{\n    \"walletDefaultWithOutValue\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"//balance\" : \"0x0de0b6b3a75e9e3d\",\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x02\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\" : {\n                        \"balance\" : \"0x64\",\n                        \"code\" : \"0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x0106\" : \"0x0c22e4\",\n                            \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x0de0b6b3a75ef08f\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x01\",\n                \"storage\" : {\n                }\n            },\n            \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\" : {\n                \"balance\" : \"0x64\",\n                \"code\" : \":raw 0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\",\n                    \"0x01\" : \"0x01\",\n                    \"0x0106\" : \"0x0c22e4\",\n                    \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                    \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"1\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stWalletTest/walletExecuteOverDailyLimitMultiOwnerFiller.json",
    "content": "{\n    \"walletExecuteOverDailyLimitMultiOwner\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"0x02\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\" : {\n                        \"balance\" : \"0x64\",\n                        \"code\" : \"0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x02\",\n                            \"0x01\" : \"0x02\",\n                            \"0x0104\" : \"0x01\",\n                            \"0x0107\" : \"0x00\",\n                            \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\",\n                            \"0x5fd43ee7113b9859f7cab1408959b063a9b2e07b4c9ec4098b2768db95a4cba8\" : \"0x02\",\n                            \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x04\" : \"0x3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4\",\n                            \"0x4c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\" : \"0x28e0e8f21c16f43aaa1e26147fb1cc74296cd3823267fa5bebc02e090063c36d\",\n                            \"0x69d836d8d4229a4b7482679c45208e1a6079c5be2775a4a87ca2d168319c043e\" : \"0xaaaf5374fce5edbc8e2a8697c15331677e6ebaaa\",\n                            \"0xd3e69d8c7f41f7aeaf8130ddc53047aeee8cb46a73d6bae86b7e7d6bf8312e6b\" : \"0x02\",\n                            \"0x69d836d8d4229a4b7482679c45208e1a6079c5be2775a4a87ca2d168319c043f\" : \"0x09\",\n                            \"0x5fd43ee7113b9859f7cab1408959b063a9b2e07b4c9ec4098b2768db95a4cba7\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x0de0b6b3a75ef08f\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x01\",\n                \"storage\" : {\n                }\n            },\n            \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\" : {\n                \"balance\" : \"0x64\",\n                \"code\" : \":raw 0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x02\",\n                    \"0x01\" : \"0x02\",\n                    \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                    \"0x04\" : \"0x3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4\",\n                    \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\",\n                    \"0xd3e69d8c7f41f7aeaf8130ddc53047aeee8cb46a73d6bae86b7e7d6bf8312e6b\" : \"0x02\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0xb61d27f6000000000000000000000000aaaf5374fce5edbc8e2a8697c15331677e6ebaaa00000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000060\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"1\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stWalletTest/walletExecuteOverDailyLimitOnlyOneOwnerFiller.json",
    "content": "{\n    \"walletExecuteOverDailyLimitOnlyOneOwner\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"0x02\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\" : {\n                        \"balance\" : \"0x64\",\n                        \"code\" : \"0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x0104\" : \"0x01\",\n                            \"0x0105\" : \"0x04\",\n                            \"0x0107\" : \"0x00\",\n                            \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\",\n                            \"0x69d836d8d4229a4b7482679c45208e1a6079c5be2775a4a87ca2d168319c043e\" : \"0xaaaf5374fce5edbc8e2a8697c15331677e6ebaaa\",\n                            \"0x69d836d8d4229a4b7482679c45208e1a6079c5be2775a4a87ca2d168319c043f\" : \"0x09\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x0de0b6b3a75ef08f\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x01\",\n                \"storage\" : {\n                }\n            },\n            \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\" : {\n                \"balance\" : \"0x64\",\n                \"code\" : \":raw 0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\",\n                    \"0x01\" : \"0x01\",\n                    \"0x0105\" : \"0x04\",\n                    \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                    \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0xb61d27f6000000000000000000000000aaaf5374fce5edbc8e2a8697c15331677e6ebaaa00000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000060\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"1\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stWalletTest/walletExecuteOverDailyLimitOnlyOneOwnerNewFiller.json",
    "content": "{\n    \"walletExecuteOverDailyLimitOnlyOneOwnerNew\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"0x02\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\" : {\n                        \"balance\" : \"0x64\",\n                        \"code\" : \"0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x0104\" : \"0x01\",\n                            \"0x0106\" : \"0x04\",\n                            \"0x0107\" : \"0x0c22e4\",\n                            \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\",\n                            \"0x69d836d8d4229a4b7482679c45208e1a6079c5be2775a4a87ca2d168319c043f\" : \"0x09\",\n                            \"0x69d836d8d4229a4b7482679c45208e1a6079c5be2775a4a87ca2d168319c043e\" : \"0xaaaf5374fce5edbc8e2a8697c15331677e6ebaaa\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x0de0b6b3a75ef08f\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x01\",\n                \"storage\" : {\n                }\n            },\n            \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\" : {\n                \"balance\" : \"0x64\",\n                \"code\" : \":raw 0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\",\n                    \"0x01\" : \"0x01\",\n                    \"0x0106\" : \"0x04\",\n                    \"0x0107\" : \"0x0c22e4\",\n                    \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                    \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0xb61d27f6000000000000000000000000aaaf5374fce5edbc8e2a8697c15331677e6ebaaa00000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000060\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"1\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stWalletTest/walletExecuteUnderDailyLimitFiller.json",
    "content": "{\n    \"walletExecuteUnderDailyLimit\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"0x02\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\" : {\n                        \"balance\" : \"100\",\n                        \"code\" : \"0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x0104\" : \"0x01\",\n                            \"0x0105\" : \"0xff\",\n                            \"0x0106\" : \"0x0c22e4\",\n                            \"0x0107\" : \"0x00\",\n                            \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\",\n                            \"0x69d836d8d4229a4b7482679c45208e1a6079c5be2775a4a87ca2d168319c043e\" : \"0xaaaf5374fce5edbc8e2a8697c15331677e6ebaaa\",\n                            \"0x69d836d8d4229a4b7482679c45208e1a6079c5be2775a4a87ca2d168319c043f\" : \"0x09\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x0de0b6b3a75ef08f\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x01\",\n                \"storage\" : {\n                }\n            },\n            \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\" : {\n                \"balance\" : \"0x64\",\n                \"code\" : \":raw 0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\",\n                    \"0x01\" : \"0x01\",\n                    \"0x0105\" : \"0xff\",\n                    \"0x0106\" : \"0x0c22e4\",\n                    \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                    \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0xb61d27f6000000000000000000000000aaaf5374fce5edbc8e2a8697c15331677e6ebaaa00000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000060\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"1\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stWalletTest/walletKillFiller.json",
    "content": "{\n    \"walletKill\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"0x02\",\n                        \"storage\" : {\n                        }\n                    },\n        \t\t    \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\" : {\n            \t\t\t\"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x0104\" : \"0x01\",\n                            \"0x0106\" : \"0x0c22e4\",\n                            \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                        }\n        \t\t    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x0de0b6b3a75ef08f\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x01\",\n                \"storage\" : {\n                }\n            },\n            \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\" : {\n                \"balance\" : \"0x64\",\n                \"code\" : \":raw 0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\",\n                    \"0x01\" : \"0x01\",\n                    \"0x0106\" : \"0x0c22e4\",\n                    \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                    \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0xcbf0b0c0000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"1\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\",\n            \"value\" : [\n                \"1\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stWalletTest/walletKillNotByOwnerFiller.json",
    "content": "{\n    \"walletKillNotByOwner\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x02\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\" : {\n                        \"balance\" : \"0xc8\",\n                        \"code\" : \"0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x0106\" : \"0x0c22e4\",\n                            \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4\" : {\n                \"balance\" : \"0x0de0b6b3a75ef08f\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x01\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x0de0b6b3a75ef08f\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x01\",\n                \"storage\" : {\n                }\n            },\n            \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\" : {\n                \"balance\" : \"0x64\",\n                \"code\" : \":raw 0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\",\n                    \"0x01\" : \"0x01\",\n                    \"0x0106\" : \"0x0c22e4\",\n                    \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                    \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0xcbf0b0c0000000000000000000000000aaaf5374fce5edbc8e2a8697c15331677e6ebaaa\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"1\",\n            \"secretKey\" : \"a95defe70ebea7804f9c3be42d20d24375e2a92b9d9666b832069c5f3cd423dd\",\n            \"to\" : \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\",\n            \"value\" : [\n                \"100\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stWalletTest/walletKillToWalletFiller.json",
    "content": "{\n    \"walletKillToWallet\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"0x02\",\n                        \"storage\" : {}\n                    },\n\t\t            \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\" : {\n                        \"nonce\" : \"0\",\n                        \"balance\" : \"200\",\n    \t\t\t        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                            \"0x0104\" : \"0x01\",\n                            \"0x0106\" : \"0x0c22e4\",\n                            \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                        }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x0de0b6b3a75ef08f\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x01\",\n                \"storage\" : {\n                }\n            },\n            \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\" : {\n                \"balance\" : \"0x64\",\n                \"code\" : \"0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\",\n                    \"0x01\" : \"0x01\",\n                    \"0x0106\" : \"0x0c22e4\",\n                    \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                    \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"0xcbf0b0c0000000000000000000000000ec0e71ad0a90ffe1909d27dac207f7680abba42d\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"1\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\",\n            \"value\" : [\n                \"100\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stWalletTest/walletRemoveOwnerRemovePendingTransactionFiller.json",
    "content": "{\n    \"walletRemoveOwnerRemovePendingTransaction\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x20000\",\n            \"currentGasLimit\" : \"100000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n    \t    {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n                    \"3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4\" : {\n                        \"code\" : \"0x\",\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                        \"nonce\" : \"0x01\",\n                        \"storage\" : {\n                        }\n                    },\n                    \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\" : {\n                        \"balance\" : \"0x64\",\n                        \"code\" : \"0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                        \"nonce\" : \"0x00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x0107\" : \"0x0c22e4\",\n                            \"0x03\" : \"0x3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4\",\n                            \"0xd3e69d8c7f41f7aeaf8130ddc53047aeee8cb46a73d6bae86b7e7d6bf8312e6b\" : \"0x01\"\n                        }\n                    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4\" : {\n                \"balance\" : \"100000000000000\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0x0de0b6b3a75ef08f\",\n                \"code\" : \"0x\",\n                \"nonce\" : \"0x01\",\n                \"storage\" : {\n                }\n            },\n            \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\" : {\n                \"balance\" : \"0x64\",\n                \"code\" : \":raw 0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\",\n                \"nonce\" : \"0x00\",\n                \"storage\" : {\n                    \"0x00\" : \"0x01\",\n                    \"0x01\" : \"0x02\",\n                    \"0x0104\" : \"0x01\",\n                    \"0x0107\" : \"0x0c22e4\",\n                    \"0x03\" : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n                    \"0x04\" : \"0x3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4\",\n                    \"0x3736dca762b6fcb9a97d5eafda4032fdba21dbfa25f875001d51e03eff955fb2\" : \"0x01\",\n                    \"0x3736dca762b6fcb9a97d5eafda4032fdba21dbfa25f875001d51e03eff955fb3\" : \"0x02\",\n                    \"0x4c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe\" : \"0x6877e4536b661640954061cdbc3a9761fb5245c340fcb1721307cd9d5f285c96\",\n                    \"0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d\" : \"0x01\",\n                    \"0x915023a2112bb78c86fa558abc0217ea6818d13895b90ce6be233397f55eb1d0\" : \"0xaaaf5374fce5edbc8e2a8697c15331677e6ebaaa\",\n                    \"0x915023a2112bb78c86fa558abc0217ea6818d13895b90ce6be233397f55eb1d1\" : \"0x09\",\n                    \"0xd3e69d8c7f41f7aeaf8130ddc53047aeee8cb46a73d6bae86b7e7d6bf8312e6b\" : \"0x02\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x173825d9000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b\"\n            ],\n            \"gasLimit\" : [\n                \"10000000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"a95defe70ebea7804f9c3be42d20d24375e2a92b9d9666b832069c5f3cd423dd\",\n            \"to\" : \"ec0e71ad0a90ffe1909d27dac207f7680abba42d\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroCallsRevert/ZeroValue_CALLCODE_OOGRevertFiller.json",
    "content": "{\n    \"ZeroValue_CALLCODE_OOGRevert\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t               \"nonce\" : \"1\"\n\t\t            },\n\t\t            \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n    \t\t\t        \"shouldnotexist\" : \"1\"\n\t\t            },\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x00\",\n\t\t                    \"0x01\" : \"0x00\",\n\t\t                    \"0x64\" : \"0x00\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [[0]](GAS) [[1]] (CALLCODE 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 [[100]] (GAS) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"135000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroCallsRevert/ZeroValue_CALLCODE_ToEmpty_OOGRevert_ParisFiller.json",
    "content": "{\n    \"ZeroValue_CALLCODE_ToEmpty_OOGRevert_Paris\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t               \"nonce\" : \"1\"\n\t\t            },\n\t\t            \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"balance\" : \"10\",\n\t\t                \"code\" : \"0x\",\n\t\t                \"nonce\" : \"0x00\",\n\t\t                \"storage\" : {\n\t\t                }\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x00\",\n\t\t                    \"0x01\" : \"0x00\",\n\t\t                    \"0x64\" : \"0x00\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [[0]](GAS) [[1]] (CALLCODE 60000 <eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 [[100]] (GAS) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"135000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroCallsRevert/ZeroValue_CALLCODE_ToNonZeroBalance_OOGRevertFiller.json",
    "content": "{\n    \"ZeroValue_CALLCODE_ToNonZeroBalance_OOGRevert\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t               \"nonce\" : \"1\"\n\t\t            },\n\t\t            \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"balance\" : \"100\"\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x00\",\n\t\t                    \"0x01\" : \"0x00\",\n\t\t                    \"0x64\" : \"0x00\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [[0]](GAS) [[1]] (CALLCODE 60000 <eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 [[100]] (GAS) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"100\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"135000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroCallsRevert/ZeroValue_CALLCODE_ToOneStorageKey_OOGRevert_ParisFiller.json",
    "content": "{\n    \"ZeroValue_CALLCODE_ToOneStorageKey_OOGRevert_Paris\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t               \"nonce\" : \"1\"\n\t\t            },\n\t\t            \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"balance\" : \"10\",\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x01\"\n\t\t                }\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x00\",\n\t\t                    \"0x01\" : \"0x00\",\n\t\t                    \"0x64\" : \"0x00\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [[0]](GAS) [[1]] (CALLCODE 60000 <eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 [[100]] (GAS) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n        \t\t    \"0x00\" : \"0x01\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"135000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroCallsRevert/ZeroValue_CALL_OOGRevertFiller.json",
    "content": "{\n    \"ZeroValue_CALL_OOGRevert\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t               \"nonce\" : \"1\"\n\t\t            },\n\t\t            \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n    \t\t\t        \"shouldnotexist\" : \"1\"\n\t\t            },\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x00\",\n\t\t                    \"0x01\" : \"0x00\",\n\t\t                    \"0x64\" : \"0x00\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [[0]](GAS) [[1]] (CALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 [[100]] (GAS) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"135000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroCallsRevert/ZeroValue_CALL_ToEmpty_OOGRevert_ParisFiller.json",
    "content": "{\n    \"ZeroValue_CALL_ToEmpty_OOGRevert_Paris\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t               \"nonce\" : \"1\"\n\t\t            },\n\t\t            \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"balance\" : \"10\",\n    \t\t\t        \"storage\" : {}\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x00\",\n\t\t                    \"0x01\" : \"0x00\",\n\t\t                    \"0x64\" : \"0x00\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [[0]](GAS) [[1]] (CALL 60000 <eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 [[100]] (GAS) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"135000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroCallsRevert/ZeroValue_CALL_ToNonZeroBalance_OOGRevertFiller.json",
    "content": "{\n    \"ZeroValue_CALL_ToNonZeroBalance_OOGRevert\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t               \"nonce\" : \"1\"\n\t\t            },\n\t\t            \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"balance\" : \"100\"\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x00\",\n\t\t                    \"0x01\" : \"0x00\",\n\t\t                    \"0x64\" : \"0x00\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [[0]](GAS) [[1]] (CALL 60000 <eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 [[100]] (GAS) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"100\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"135000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroCallsRevert/ZeroValue_CALL_ToOneStorageKey_OOGRevert_ParisFiller.json",
    "content": "{\n    \"ZeroValue_CALL_ToOneStorageKey_OOGRevert_Paris\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t               \"nonce\" : \"1\"\n\t\t            },\n\t\t            \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"balance\" : \"10\",\n    \t\t\t        \"storage\" : { \"0x00\" : \"0x01\" }\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x00\",\n\t\t                    \"0x01\" : \"0x00\",\n\t\t                    \"0x64\" : \"0x00\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [[0]](GAS) [[1]] (CALL 60000 <eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 [[100]] (GAS) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n        \t\t    \"0x00\" : \"0x01\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"135000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroCallsRevert/ZeroValue_DELEGATECALL_OOGRevertFiller.json",
    "content": "{\n    \"ZeroValue_DELEGATECALL_OOGRevert\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t               \"nonce\" : \"1\"\n\t\t            },\n\t\t            \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n    \t\t\t        \"shouldnotexist\" : \"1\"\n\t\t            },\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x00\",\n\t\t                    \"0x01\" : \"0x00\",\n\t\t                    \"0x64\" : \"0x00\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [[0]](GAS) [[1]] (DELEGATECALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 [[100]](GAS) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"135000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroCallsRevert/ZeroValue_DELEGATECALL_ToEmpty_OOGRevert_ParisFiller.json",
    "content": "{\n    \"ZeroValue_DELEGATECALL_ToEmpty_OOGRevert_Paris\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t               \"nonce\" : \"1\"\n\t\t            },\n\t\t            \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"balance\" : \"10\",\n\t\t                \"code\" : \"0x\",\n\t\t                \"nonce\" : \"0x00\",\n\t\t                \"storage\" : {\n\t\t                }\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x00\",\n\t\t                    \"0x01\" : \"0x00\",\n\t\t                    \"0x64\" : \"0x00\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [[0]](GAS) [[1]] (DELEGATECALL 60000 <eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 [[100]] (GAS) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"135000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroCallsRevert/ZeroValue_DELEGATECALL_ToNonZeroBalance_OOGRevertFiller.json",
    "content": "{\n    \"ZeroValue_DELEGATECALL_ToNonZeroBalance_OOGRevert\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t    \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n        \t\t       \"nonce\" : \"1\"\n        \t\t    },\n\t\t            \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"balance\" : \"100\"\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x00\",\n\t\t                    \"0x01\" : \"0x00\",\n\t\t                    \"0x64\" : \"0x00\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [[0]](GAS) [[1]] (DELEGATECALL 60000 <eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 [[100]] (GAS) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"100\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"135000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroCallsRevert/ZeroValue_DELEGATECALL_ToOneStorageKey_OOGRevert_ParisFiller.json",
    "content": "{\n    \"ZeroValue_DELEGATECALL_ToOneStorageKey_OOGRevert_Paris\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t               \"nonce\" : \"1\"\n\t\t            },\n\t\t            \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"balance\" : \"10\",\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x01\"\n\t\t                }\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x00\",\n\t\t                    \"0x01\" : \"0x00\",\n\t\t                    \"0x64\" : \"0x00\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [[0]](GAS) [[1]] (DELEGATECALL 60000 <eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 [[100]] (GAS) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"\",\n\t\t        \"storage\": {\n\t\t            \"0x00\" : \"0x01\"\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"135000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroCallsRevert/ZeroValue_SUICIDE_OOGRevertFiller.json",
    "content": "{\n    \"ZeroValue_SUICIDE_OOGRevert\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t               \"nonce\" : \"1\"\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n    \t\t\t        \"storage\" : {}\n\t\t            },\n\t\t            \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n    \t\t\t        \"storage\" : {}\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (CALL 40000 <contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 [[100]](GAS) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (SELFDESTRUCT <contract:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>)  }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"100000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroCallsRevert/ZeroValue_SUICIDE_ToEmpty_OOGRevert_ParisFiller.json",
    "content": "{\n    \"ZeroValue_SUICIDE_ToEmpty_OOGRevert_Paris\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t               \"nonce\" : \"1\"\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n    \t\t\t        \"storage\" : {}\n\t\t            },\n\t\t            \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"balance\" : \"10\",\n    \t\t\t        \"storage\" : {}\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (CALL 50000 <contract:0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<contract:0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (SELFDESTRUCT <eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"75000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroCallsRevert/ZeroValue_SUICIDE_ToNonZeroBalance_OOGRevertFiller.json",
    "content": "{\n    \"ZeroValue_SUICIDE_ToNonZeroBalance_OOGRevert\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t               \"nonce\" : \"1\"\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t    \t        \"storage\" : {}\n\t\t            },\n\t\t            \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"balance\" : \"100\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (CALL 50000 <contract:0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n\t        \"<contract:0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (SELFDESTRUCT <eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"100\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"75000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroCallsRevert/ZeroValue_SUICIDE_ToOneStorageKey_OOGRevert_ParisFiller.json",
    "content": "{\n    \"ZeroValue_SUICIDE_ToOneStorageKey_OOGRevert_Paris\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t               \"nonce\" : \"1\"\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n    \t\t\t        \"storage\" : { \"0x00\" : \"0x01\" }\n\t\t            },\n\t\t            \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"balance\" : \"10\",\n    \t\t\t        \"storage\" : { \"0x00\" : \"0x01\" }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (CALL 50000 <contract:0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 }\",\n\t\t        \"storage\": {\n\t\t            \"0x00\" : \"0x01\"\n\t\t        }\n            },\n    \t    \"<contract:0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (SELFDESTRUCT <eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>) }\",\n\t\t        \"storage\": {\n\t\t            \"0x00\" : \"0x01\"\n\t\t        }\n            },\n    \t    \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"\",\n\t\t        \"storage\": {\n\t\t            \"0x00\" : \"0x01\"\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"75000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroCallsRevert/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stZeroCallsTest/ZeroValue_CALLCODEFiller.json",
    "content": "{\n    \"ZeroValue_CALLCODE\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n    \t\t\t        \"shouldnotexist\" : \"1\"\n\t\t            },\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x08d5b6\",\n\t\t                    \"0x01\" : \"0x01\",\n\t\t                    \"0x64\" : \"0x01\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n                \"nonce\" : \"0\",\n                \"//comment\" : \" Zero-value call to nonexistent account: should (i) charge only 700 gas, (ii) not create an account\",\n                \"code\" : \"{ [[0]](GAS) [[1]] (CALLCODE 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[100]] 1 }\",\n                \"storage\": {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroCallsTest/ZeroValue_CALLCODE_ToEmpty_ParisFiller.json",
    "content": "{\n    \"ZeroValue_CALLCODE_ToEmpty_Paris\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n\t\t            \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"balance\" : \"10\",\n\t\t                \"code\" : \"0x\",\n\t\t                \"nonce\" : \"0x00\",\n\t\t                \"storage\" : {\n\t\t                }\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x08d5b6\",\n\t\t                    \"0x01\" : \"0x01\",\n\t\t                    \"0x64\" : \"0x01\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [[0]](GAS) [[1]] (CALLCODE 60000 <eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) [[100]] 1 }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroCallsTest/ZeroValue_CALLCODE_ToNonZeroBalanceFiller.json",
    "content": "{\n    \"ZeroValue_CALLCODE_ToNonZeroBalance\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"balance\" : \"100\"\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x08d5b6\",\n\t\t                    \"0x01\" : \"0x01\",\n\t\t                    \"0x64\" : \"0x01\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [[0]](GAS) [[1]] (CALLCODE 60000 <eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) [[100]] 1 }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"100\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroCallsTest/ZeroValue_CALLCODE_ToOneStorageKey_ParisFiller.json",
    "content": "{\n    \"ZeroValue_CALLCODE_ToOneStorageKey_Paris\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n\t\t            \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"balance\" : \"10\",\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x01\"\n\t\t                }\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x08d5b6\",\n\t\t                    \"0x01\" : \"0x01\",\n\t\t                    \"0x64\" : \"0x01\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [[0]](GAS) [[1]] (CALLCODE 60000 <eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) [[100]] 1 }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n        \t\t    \"0x00\" : \"0x01\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroCallsTest/ZeroValue_CALLFiller.json",
    "content": "{\n    \"ZeroValue_CALL\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t           \"shouldnotexist\" : \"1\"\n\t\t            },\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x08d5b6\",\n\t\t                    \"0x01\" : \"0x01\",\n\t\t                    \"0x64\" : \"0x01\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n                \"nonce\" : \"0\",\n                \"//comment\" : \" Zero-value call to nonexistent account: should (i) charge only 700 gas, (ii) not create an account\",\n                \"code\" : \"{ [[0]](GAS) [[1]] (CALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[100]] 1 }\",\n                \"storage\": {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroCallsTest/ZeroValue_CALL_ToEmpty_ParisFiller.json",
    "content": "{\n    \"ZeroValue_CALL_ToEmpty_Paris\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\" ],\n                \"result\" : {\n\t\t            \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"balance\" : \"10\"\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x08d5b6\",\n\t\t                    \"0x01\" : \"0x01\",\n\t\t                    \"0x64\" : \"0x01\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n                \"nonce\" : \"0\",\n                \"//comment\" : \" Zero-value call to empty account: should (i) charge only 700 gas, (ii) delete an account\",\n                \"code\" : \"{ [[0]](GAS) [[1]] (CALL 60000 <eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) [[100]] 1 }\",\n                \"storage\": {\n                }\n            },\n    \t    \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroCallsTest/ZeroValue_CALL_ToNonZeroBalanceFiller.json",
    "content": "{\n    \"ZeroValue_CALL_ToNonZeroBalance\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"balance\" : \"100\"\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x08d5b6\",\n\t\t                    \"0x01\" : \"0x01\",\n\t\t                    \"0x64\" : \"0x01\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n                \"nonce\" : \"0\",\n                \"//comment\" : \" Zero-value call to empty account: should (i) charge only 700 gas, (ii) delete an account\",\n                \"code\" : \"{ [[0]](GAS) [[1]] (CALL 60000 <eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) [[100]] 1 }\",\n                \"storage\": {\n                }\n            },\n    \t    \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"100\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroCallsTest/ZeroValue_CALL_ToOneStorageKey_ParisFiller.json",
    "content": "{\n    \"ZeroValue_CALL_ToOneStorageKey_Paris\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\" ],\n                \"result\" : {\n\t\t            \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"balance\" : \"10\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x08d5b6\",\n\t\t                    \"0x01\" : \"0x01\",\n\t\t                    \"0x64\" : \"0x01\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n                \"nonce\" : \"0\",\n                \"//comment\" : \" Zero-value call to empty account: should (i) charge only 700 gas, (ii) delete an account\",\n                \"code\" : \"{ [[0]](GAS) [[1]] (CALL 60000 <eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0 0) [[100]] 1 }\",\n                \"storage\": {\n                }\n            },\n    \t    \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n        \t\t    \"0x00\" : \"0x01\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroCallsTest/ZeroValue_DELEGATECALLFiller.json",
    "content": "{\n    \"ZeroValue_DELEGATECALL\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t        \"shouldnotexist\" : \"1\"\n\t\t            },\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x08d5b6\",\n\t\t                    \"0x01\" : \"0x01\",\n\t\t                    \"0x64\" : \"0x01\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [[0]](GAS) [[1]] (DELEGATECALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[100]] 1 }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroCallsTest/ZeroValue_DELEGATECALL_ToEmpty_ParisFiller.json",
    "content": "{\n    \"ZeroValue_DELEGATECALL_ToEmpty_Paris\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n\t\t            \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"balance\" : \"10\",\n\t\t                \"code\" : \"0x\",\n\t\t                \"nonce\" : \"0x00\",\n\t\t                \"storage\" : {\n\t\t                }\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x08d5b6\",\n\t\t                    \"0x01\" : \"0x01\",\n\t\t                    \"0x64\" : \"0x01\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [[0]](GAS) [[1]] (DELEGATECALL 60000 <eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0) [[100]] 1 }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroCallsTest/ZeroValue_DELEGATECALL_ToNonZeroBalanceFiller.json",
    "content": "{\n    \"ZeroValue_DELEGATECALL_ToNonZeroBalance\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"balance\" : \"100\"\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x08d5b6\",\n\t\t                    \"0x01\" : \"0x01\",\n\t\t                    \"0x64\" : \"0x01\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [[0]](GAS) [[1]] (DELEGATECALL 60000 <eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0) [[100]] 1 }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"100\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroCallsTest/ZeroValue_DELEGATECALL_ToOneStorageKey_ParisFiller.json",
    "content": "{\n    \"ZeroValue_DELEGATECALL_ToOneStorageKey_Paris\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\" ],\n                \"result\" : {\n\t\t            \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"balance\" : \"10\",\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x01\"\n\t\t                }\n\t\t            },\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"storage\" : {\n\t\t                    \"0x00\" : \"0x08d5b6\",\n\t\t                    \"0x01\" : \"0x01\",\n\t\t                    \"0x64\" : \"0x01\"\n\t\t                }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ [[0]](GAS) [[1]] (DELEGATECALL 60000 <eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b> 0 0 0 0) [[100]] 1 }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"\",\n\t\t        \"storage\": {\n\t\t            \"0x00\" : \"0x01\"\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroCallsTest/ZeroValue_SUICIDEFiller.json",
    "content": "{\n    \"ZeroValue_SUICIDE\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"nonce\" : \"0\",\n                        \"balance\" : \"0\",\n                        \"code\" : \"0x73c94f5374fce5edbc8e2a8697c15331677e6ebf0bff00\",\n                        \"storage\" : {}\n\t\t            },\n\t\t            \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"shouldnotexist\" : \"1\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (SELFDESTRUCT 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b) }\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroCallsTest/ZeroValue_SUICIDE_ToEmpty_ParisFiller.json",
    "content": "{\n    \"ZeroValue_SUICIDE_ToEmpty_Paris\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t           \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"balance\" : \"0\",\n                        \"nonce\" : \"0\",\n\t\t                \"code\" : \"0x73<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>ff00\",\n                        \"storage\" : {}\n\t\t            },\n\t\t            \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"balance\" : \"10\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (SELFDESTRUCT <eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroCallsTest/ZeroValue_SUICIDE_ToNonZeroBalanceFiller.json",
    "content": "{\n    \"ZeroValue_SUICIDE_ToNonZeroBalance\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"nonce\" : \"0\",\n\t\t                \"balance\" : \"0\",\n\t\t                \"code\" : \"0x73<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>ff00\",\n\t\t                \"storage\" : {}\n\t\t            },\n\t\t            \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"balance\" : \"100\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (SELFDESTRUCT <eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>) }\",\n\t\t        \"storage\": {\n\t\t        }\n            },\n    \t    \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"100\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"\",\n\t\t        \"storage\": {\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroCallsTest/ZeroValue_SUICIDE_ToOneStorageKey_ParisFiller.json",
    "content": "{\n    \"ZeroValue_SUICIDE_ToOneStorageKey_Paris\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                        \"balance\" : \"\",\n\t\t                \"nonce\" : \"0\",\n                        \"code\" : \"0x73<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>ff00\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n\t\t            },\n\t\t            \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"balance\" : \"10\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"0\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"{ (SELFDESTRUCT <eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>) }\",\n\t\t        \"storage\": {\n\t\t            \"0x00\" : \"0x01\"\n\t\t        }\n            },\n    \t    \"<eoa:0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10\",\n\t\t        \"nonce\" : \"0\",\n\t\t        \"code\" : \"\",\n\t\t        \"storage\": {\n\t\t            \"0x00\" : \"0x01\"\n\t\t        }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<contract:target:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroCallsTest/ZeroValue_TransactionCALLFiller.json",
    "content": "{\n    \"ZeroValue_TransactionCALL\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"shouldnotexist\" : \"1\"\n\t\t            },\n\t\t            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"nonce\" : \"0x01\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroCallsTest/ZeroValue_TransactionCALL_ToEmpty_ParisFiller.json",
    "content": "{\n    \"ZeroValue_TransactionCALL_ToEmpty_Paris\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\" ],\n                \"result\" : {\n\t\t            \"<eoa:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"balance\" : \"10\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<eoa:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<eoa:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroCallsTest/ZeroValue_TransactionCALL_ToNonZeroBalanceFiller.json",
    "content": "{\n    \"ZeroValue_TransactionCALL_ToNonZeroBalance\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"balance\" : \"100\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<eoa:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"100\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<eoa:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroCallsTest/ZeroValue_TransactionCALL_ToOneStorageKey_ParisFiller.json",
    "content": "{\n    \"ZeroValue_TransactionCALL_ToOneStorageKey_Paris\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\" ],\n                \"result\" : {\n\t\t            \"<eoa:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"balance\" : \"10\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<eoa:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n        \t\t    \"0x00\" : \"0x01\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \"\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<eoa:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroCallsTest/ZeroValue_TransactionCALLwithDataFiller.json",
    "content": "{\n    \"ZeroValue_TransactionCALLwithData\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"shouldnotexist\" : \"1\"\n\t\t            },\n\t\t            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t                \"nonce\" : \"0x01\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x1122334455667788991011121314151617181920\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroCallsTest/ZeroValue_TransactionCALLwithData_ToEmpty_ParisFiller.json",
    "content": "{\n    \"ZeroValue_TransactionCALLwithData_ToEmpty_Paris\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\" ],\n                \"result\" : {\n\t\t            \"<eoa:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"balance\" : \"10\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<eoa:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x1122334455667788991011121314151617181920\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<eoa:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroCallsTest/ZeroValue_TransactionCALLwithData_ToNonZeroBalanceFiller.json",
    "content": "{\n    \"ZeroValue_TransactionCALLwithData_ToNonZeroBalance\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [ \">=Cancun\"],\n                \"result\" : {\n\t\t            \"<eoa:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"balance\" : \"100\"\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<eoa:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"100\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x1122334455667788991011121314151617181920\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<eoa:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroCallsTest/ZeroValue_TransactionCALLwithData_ToOneStorageKey_ParisFiller.json",
    "content": "{\n    \"ZeroValue_TransactionCALLwithData_ToOneStorageKey_Paris\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"10000000\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"network\" : [\">=Cancun\" ],\n                \"result\" : {\n\t\t            \"<eoa:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n\t\t                \"balance\" : \"10\",\n                        \"storage\" : {\n                            \"0x00\" : \"0x01\"\n                        }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" :\n        {\n            \"<eoa:sender:0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"1000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n    \t    \"<eoa:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\" : {\n                \"balance\" : \"10\",\n                \"code\" : \"\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n        \t\t    \"0x00\" : \"0x01\"\n                }\n            }\n        },\n        \"transaction\" : {\n            \"data\" : [\n                \":raw 0x1122334455667788991011121314151617181920\"\n            ],\n            \"gasLimit\" : [\n                \"600000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"0\",\n            \"secretKey\" : \"<eoa:sender:0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8>\",\n            \"to\" : \"<eoa:0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b>\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroCallsTest/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-2_2_28000_128Filler.json",
    "content": "{\n    \"ecmul_1-2_2_28000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0x8a5045bc7a493061be89fdbc32ea8ae69e8d8b55ebe445fa41fa534b1543ab50\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"balance\": \"100000000\",\n                \"nonce\": \"133\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"balance\": \"100000000\",\n                \"nonce\": \"0\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xc4b8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x85\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x8a5045bc7a493061be89fdbc32ea8ae69e8d8b55ebe445fa41fa534b1543ab50\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"134\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x8a5045bc7a493061be89fdbc32ea8ae69e8d8b55ebe445fa41fa534b1543ab50\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"134\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 2) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-2_2_28000_96Filler.json",
    "content": "{\n    \"ecmul_1-2_2_28000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"132\",\n                \"balance\": \"999999999994222676\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"5777324\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002\"\n            ],\n            \"gasLimit\": [\n                \"30000\", \"90000\", \"110000\", \"200000\", \"40000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x84\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"133\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3,4],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x8a5045bc7a493061be89fdbc32ea8ae69e8d8b55ebe445fa41fa534b1543ab50\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"133\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 2) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-2_340282366920938463463374607431768211456_21000_128Filler.json",
    "content": "{\n    \"ecmul_1-2_340282366920938463463374607431768211456_21000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"57\",\n                \"balance\": \"999999999997410898\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"2589102\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xa960\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x39\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"58\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0x0467d6413c98fb304cd61014865afdb7b3b81fa53f7ef4046e6a833162c5bb5c\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"58\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 2) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-2_340282366920938463463374607431768211456_21000_80Filler.json",
    "content": "{\n    \"ecmul_1-2_340282366920938463463374607431768211456_21000_80\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"58\",\n                \"balance\": \"999999999997367538\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"2632462\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000100000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xa8e0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x3a\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"59\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t     \"0x00\" : \"0x0467d6413c98fb304cd61014865afdb7b3b81fa53f7ef4046e6a833162c5bb5c\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"59\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 2) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-2_340282366920938463463374607431768211456_21000_96Filler.json",
    "content": "{\n    \"ecmul_1-2_340282366920938463463374607431768211456_21000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"56\",\n                \"balance\": \"999999999997454130\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"2545870\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000100000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xa8e0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x38\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"57\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0x0467d6413c98fb304cd61014865afdb7b3b81fa53f7ef4046e6a833162c5bb5c\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"57\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 2) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-2_340282366920938463463374607431768211456_28000_128Filler.json",
    "content": "{\n    \"ecmul_1-2_340282366920938463463374607431768211456_28000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0x0467d6413c98fb304cd61014865afdb7b3b81fa53f7ef4046e6a833162c5bb5c\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"154\",\n                \"balance\": \"999999999993368996\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"6631004\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xc4b8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x9a\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x0467d6413c98fb304cd61014865afdb7b3b81fa53f7ef4046e6a833162c5bb5c\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"155\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 2) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-2_340282366920938463463374607431768211456_28000_80Filler.json",
    "content": "{\n    \"ecmul_1-2_340282366920938463463374607431768211456_28000_80\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0x0467d6413c98fb304cd61014865afdb7b3b81fa53f7ef4046e6a833162c5bb5c\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"155\",\n                \"balance\": \"999999999993337736\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"6662264\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000100000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xc438\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x9b\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x0467d6413c98fb304cd61014865afdb7b3b81fa53f7ef4046e6a833162c5bb5c\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"156\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 2) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-2_340282366920938463463374607431768211456_28000_96Filler.json",
    "content": "{\n    \"ecmul_1-2_340282366920938463463374607431768211456_28000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"153\",\n                \"balance\": \"999999999993400125\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"6599875\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000100000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"33000\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x99\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"154\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x0467d6413c98fb304cd61014865afdb7b3b81fa53f7ef4046e6a833162c5bb5c\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"154\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 2) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-2_5616_21000_128Filler.json",
    "content": "{\n    \"ecmul_1-2_5616_21000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"71\",\n                \"balance\": \"999999999996788370\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"3211630\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000230644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xb060\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x47\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"72\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xac1de87792e425a22b81bdf624dc1b24fee26f16e9a879172aebc261cc51a2fe\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"72\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 2) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-2_5616_21000_96Filler.json",
    "content": "{\n    \"ecmul_1-2_5616_21000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"70\",\n                \"balance\": \"999999999996833394\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"3166606\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000230644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000\"\n            ],\n            \"gasLimit\": [\n                \"0xafe0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x46\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"71\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xac1de87792e425a22b81bdf624dc1b24fee26f16e9a879172aebc261cc51a2fe\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"71\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 2) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-2_5616_28000_128Filler.json",
    "content": "{\n    \"ecmul_1-2_5616_28000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xac1de87792e425a22b81bdf624dc1b24fee26f16e9a879172aebc261cc51a2fe\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"168\",\n                \"balance\": \"999999999992801283\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"7198717\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000230644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xcbb8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xa8\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xac1de87792e425a22b81bdf624dc1b24fee26f16e9a879172aebc261cc51a2fe\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"169\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 2) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-2_5617_21000_128Filler.json",
    "content": "{\n    \"ecmul_1-2_5617_21000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"81\",\n                \"balance\": \"999999999996329874\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"3670126\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000230644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000010000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xb0a0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x51\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"82\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"82\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 2) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-2_5617_21000_96Filler.json",
    "content": "{\n    \"ecmul_1-2_5617_21000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"80\",\n                \"balance\": \"999999999996374962\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"3625038\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000230644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001\"\n            ],\n            \"gasLimit\": [\n                \"0xb020\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x50\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"81\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"81\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 2) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-2_5617_28000_128Filler.json",
    "content": "{\n    \"ecmul_1-2_5617_28000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"178\",\n                \"balance\": \"999999999992387396\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"7612604\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000230644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000010000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xcbf8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xb2\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"179\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 2) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-2_5617_28000_96Filler.json",
    "content": "{\n    \"ecmul_1-2_5617_28000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"177\",\n                \"balance\": \"999999999992420381\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"7579619\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000230644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001\"\n            ],\n            \"gasLimit\": [\n                \"0xcb78\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xb1\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"178\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 2) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-2_616_28000_96Filler.json",
    "content": "{\n    \"ecmul_1-2_616_28000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"167\",\n                \"balance\": \"999999999992834204\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"7165796\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000230644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000\"\n            ],\n            \"gasLimit\": [\n                \"30000\", \"90000\", \"110000\", \"200000\", \"40000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xa7\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"168\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3,4],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xac1de87792e425a22b81bdf624dc1b24fee26f16e9a879172aebc261cc51a2fe\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"168\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 2) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-2_9935_21000_128Filler.json",
    "content": "{\n    \"ecmul_1-2_9935_21000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"91\",\n                \"balance\": \"999999999995870546\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"4129454\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xb120\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x5b\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"92\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xa34b6e4f9c282ff62c1e6f53fd92ad8efd8346d9866333a95ab4506a8158afc7\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"92\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 2) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-2_9935_21000_96Filler.json",
    "content": "{\n    \"ecmul_1-2_9935_21000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"90\",\n                \"balance\": \"999999999995915762\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"4084238\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n            ],\n            \"gasLimit\": [\n                \"0xb0a0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x5a\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [0],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"91\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xa34b6e4f9c282ff62c1e6f53fd92ad8efd8346d9866333a95ab4506a8158afc7\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"91\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 2) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-2_9935_28000_128Filler.json",
    "content": "{\n    \"ecmul_1-2_9935_28000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xa34b6e4f9c282ff62c1e6f53fd92ad8efd8346d9866333a95ab4506a8158afc7\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"188\",\n                \"balance\": \"999999999991972677\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"8027323\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xcc78\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xbc\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xa34b6e4f9c282ff62c1e6f53fd92ad8efd8346d9866333a95ab4506a8158afc7\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"189\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 2) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-2_9935_28000_96Filler.json",
    "content": "{\n    \"ecmul_1-2_9935_28000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"187\",\n                \"balance\": \"999999999992005790\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"7994210\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n            ],\n            \"gasLimit\": [\n                \"0x7bf8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xbb\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"188\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xa34b6e4f9c282ff62c1e6f53fd92ad8efd8346d9866333a95ab4506a8158afc7\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"188\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 2) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-2_9_21000_128Filler.json",
    "content": "{\n    \"ecmul_1-2_9_21000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"46\",\n                \"balance\": \"999999999997894386\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"2105614\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xa960\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x2e\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"47\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n    \t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n            \t\t\t    \"0x00\" : \"0xc7b29565a7dd9915e6fd86d026aef2fc454506bae7f90e2f2bec5f25f01b2d95\"\n            \t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 2) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-2_9_21000_96Filler.json",
    "content": "{\n    \"ecmul_1-2_9_21000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"45\",\n                \"balance\": \"999999999997937618\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"2062382\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000009\"\n            ],\n            \"gasLimit\": [\n                \"0xa8e0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x2d\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"46\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xc7b29565a7dd9915e6fd86d026aef2fc454506bae7f90e2f2bec5f25f01b2d95\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"46\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 2) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-2_9_28000_128Filler.json",
    "content": "{\n    \"ecmul_1-2_9_28000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xc7b29565a7dd9915e6fd86d026aef2fc454506bae7f90e2f2bec5f25f01b2d95\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"143\",\n                \"balance\": \"999999999993795772\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"6204228\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xc4b8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x8f\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xc7b29565a7dd9915e6fd86d026aef2fc454506bae7f90e2f2bec5f25f01b2d95\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"144\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 2) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-2_9_28000_96Filler.json",
    "content": "{\n    \"ecmul_1-2_9_28000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"142\",\n                \"balance\": \"999999999993826901\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"6173099\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000009\"\n            ],\n            \"gasLimit\": [\n                \"33000\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x8e\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"143\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xc7b29565a7dd9915e6fd86d026aef2fc454506bae7f90e2f2bec5f25f01b2d95\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"143\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 2) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-3_0_21000_128Filler.json",
    "content": "{\n    \"ecmul_1-3_0_21000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"16\",\n                \"balance\": \"999999999999206642\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"793358\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xa920\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x10\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"17\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 3) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-3_0_21000_64Filler.json",
    "content": "{\n    \"ecmul_1-3_0_21000_64\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"17\",\n                \"balance\": \"999999999999163346\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"836654\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003\"\n            ],\n            \"gasLimit\": [\n                \"0xa820\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x11\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"18\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 3) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 64 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-3_0_21000_80Filler.json",
    "content": "{\n    \"ecmul_1-3_0_21000_80\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"18\",\n                \"balance\": \"999999999999120306\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"879694\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xa8a0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x12\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"19\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 3) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-3_0_21000_96Filler.json",
    "content": "{\n    \"ecmul_1-3_0_21000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"15\",\n                \"balance\": \"999999999999249810\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"750190\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xa8a0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xf\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"16\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 3) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-3_0_28000_128Filler.json",
    "content": "{\n    \"ecmul_1-3_0_28000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"113\",\n                \"balance\": \"999999999995031504\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"4968496\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xc478\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x71\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"114\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 3) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-3_0_28000_64Filler.json",
    "content": "{\n    \"ecmul_1-3_0_28000_64\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"114\",\n                \"balance\": \"999999999994981208\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"5018792\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003\"\n            ],\n            \"gasLimit\": [\n                \"0xc378\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x72\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"115\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 3) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 64 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-3_0_28000_80_ParisFiller.json",
    "content": "{\n    \"ecmul_1-3_0_28000_80_Paris\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n        \t\t\"balance\" : \"100000000\",\n                \"storage\": {},\n                \"nonce\": \"115\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n        \t\t\"balance\" : \"10\",\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xc3f8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x73\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"116\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 3) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-3_0_28000_96Filler.json",
    "content": "{\n    \"ecmul_1-3_0_28000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"112\",\n                \"balance\": \"999999999995081672\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"4918328\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xc3f8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x70\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"113\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 3) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-3_1_21000_128Filler.json",
    "content": "{\n    \"ecmul_1-3_1_21000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"30\",\n                \"balance\": \"999999999998594162\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1405838\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xa960\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x1e\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"31\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 3) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-3_1_21000_96Filler.json",
    "content": "{\n    \"ecmul_1-3_1_21000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"29\",\n                \"balance\": \"999999999998637394\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1362606\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000001\"\n            ],\n            \"gasLimit\": [\n                \"0xa8e0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x1d\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"30\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 3) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-3_1_28000_128Filler.json",
    "content": "{\n    \"ecmul_1-3_1_28000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0x556a3c03566b04196c534f5612f50167917d72e6ab9b687e10e72dbe0e0f9279\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"127\",\n                \"balance\": \"999999999994435633\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"5564367\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xc4b8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x7f\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x556a3c03566b04196c534f5612f50167917d72e6ab9b687e10e72dbe0e0f9279\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"128\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 3) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-3_1_28000_96Filler.json",
    "content": "{\n    \"ecmul_1-3_1_28000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0x556a3c03566b04196c534f5612f50167917d72e6ab9b687e10e72dbe0e0f9279\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"126\",\n                \"balance\": \"999999999994485865\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"5514135\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000001\"\n            ],\n            \"gasLimit\": [\n                \"0xc438\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x7e\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x556a3c03566b04196c534f5612f50167917d72e6ab9b687e10e72dbe0e0f9279\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"127\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 3) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-3_2_21000_128Filler.json",
    "content": "{\n    \"ecmul_1-3_2_21000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"40\",\n                \"balance\": \"999999999998153778\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1846222\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xa960\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x28\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"41\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 3) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-3_2_21000_96Filler.json",
    "content": "{\n    \"ecmul_1-3_2_21000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"39\",\n                \"balance\": \"999999999998197010\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1802990\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000002\"\n            ],\n            \"gasLimit\": [\n                \"0xa8e0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x27\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"40\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 3) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-3_2_28000_128Filler.json",
    "content": "{\n    \"ecmul_1-3_2_28000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0x94b60ed39c6fe45858b5931190d93861a2d2538991194cdf9a39b5e83dec0827\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"137\",\n                \"balance\": \"999999999994039858\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"5960142\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xc4b8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x89\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x94b60ed39c6fe45858b5931190d93861a2d2538991194cdf9a39b5e83dec0827\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"138\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 3) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-3_2_28000_96Filler.json",
    "content": "{\n    \"ecmul_1-3_2_28000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0x94b60ed39c6fe45858b5931190d93861a2d2538991194cdf9a39b5e83dec0827\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"136\",\n                \"balance\": \"999999999994090090\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"5909910\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000002\"\n            ],\n            \"gasLimit\": [\n                \"0xc438\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x88\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x94b60ed39c6fe45858b5931190d93861a2d2538991194cdf9a39b5e83dec0827\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"137\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 3) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-3_340282366920938463463374607431768211456_21000_128Filler.json",
    "content": "{\n    \"ecmul_1-3_340282366920938463463374607431768211456_21000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"63\",\n                \"balance\": \"999999999997139538\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"2860462\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xa960\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x3f\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"64\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 3) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-3_340282366920938463463374607431768211456_21000_80Filler.json",
    "content": "{\n    \"ecmul_1-3_340282366920938463463374607431768211456_21000_80\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"64\",\n                \"balance\": \"999999999997096178\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"2903822\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000100000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xa8e0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x40\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"65\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 3) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-3_340282366920938463463374607431768211456_21000_96Filler.json",
    "content": "{\n    \"ecmul_1-3_340282366920938463463374607431768211456_21000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"62\",\n                \"balance\": \"999999999997182770\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"2817230\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000100000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xa8e0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x3e\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"63\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 3) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-3_340282366920938463463374607431768211456_28000_128Filler.json",
    "content": "{\n    \"ecmul_1-3_340282366920938463463374607431768211456_28000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xa97df6032909972db52b8144798569bb6169ec8b3e065841da96b3d866aa131e\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"160\",\n                \"balance\": \"999999999993151145\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"6848855\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xc4b8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xa0\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xa97df6032909972db52b8144798569bb6169ec8b3e065841da96b3d866aa131e\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"161\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 3) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-3_340282366920938463463374607431768211456_28000_80Filler.json",
    "content": "{\n    \"ecmul_1-3_340282366920938463463374607431768211456_28000_80\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xa97df6032909972db52b8144798569bb6169ec8b3e065841da96b3d866aa131e\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"161\",\n                \"balance\": \"999999999993100785\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"6899215\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000100000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xc438\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xa1\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xa97df6032909972db52b8144798569bb6169ec8b3e065841da96b3d866aa131e\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"162\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 3) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-3_340282366920938463463374607431768211456_28000_96Filler.json",
    "content": "{\n    \"ecmul_1-3_340282366920938463463374607431768211456_28000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xa97df6032909972db52b8144798569bb6169ec8b3e065841da96b3d866aa131e\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"159\",\n                \"balance\": \"999999999993201377\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"6798623\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000100000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xc438\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x9f\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xa97df6032909972db52b8144798569bb6169ec8b3e065841da96b3d866aa131e\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"160\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 3) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-3_5616_21000_128Filler.json",
    "content": "{\n    \"ecmul_1-3_5616_21000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"75\",\n                \"balance\": \"999999999996600210\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"3399790\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000330644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xb060\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x4b\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"76\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 3) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-3_5616_21000_96Filler.json",
    "content": "{\n    \"ecmul_1-3_5616_21000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"74\",\n                \"balance\": \"999999999996645234\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"3354766\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000330644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000\"\n            ],\n            \"gasLimit\": [\n                \"0xafe0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x4a\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"75\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 3) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-3_5616_28000_128Filler.json",
    "content": "{\n    \"ecmul_1-3_5616_28000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0x289df36ee06bbcd57a9ce2a88d2bcda09715d42f96f7f23c48cdd54e2002f059\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"172\",\n                \"balance\": \"999999999992642426\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"7357574\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000330644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xcbb8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xac\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x289df36ee06bbcd57a9ce2a88d2bcda09715d42f96f7f23c48cdd54e2002f059\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"173\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 3) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-3_5616_28000_96Filler.json",
    "content": "{\n    \"ecmul_1-3_5616_28000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0x289df36ee06bbcd57a9ce2a88d2bcda09715d42f96f7f23c48cdd54e2002f059\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"171\",\n                \"balance\": \"999999999992694450\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"7305550\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000330644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000\"\n            ],\n            \"gasLimit\": [\n                \"0xcb38\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xab\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x289df36ee06bbcd57a9ce2a88d2bcda09715d42f96f7f23c48cdd54e2002f059\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"172\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 3) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-3_5617_21000_128Filler.json",
    "content": "{\n    \"ecmul_1-3_5617_21000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"85\",\n                \"balance\": \"999999999996141458\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"3858542\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000330644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000010000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xb0a0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x55\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"86\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 3) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-3_5617_21000_96Filler.json",
    "content": "{\n    \"ecmul_1-3_5617_21000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"84\",\n                \"balance\": \"999999999996186546\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"3813454\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000330644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001\"\n            ],\n            \"gasLimit\": [\n                \"0xb020\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x54\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"85\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 3) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-3_5617_28000_128Filler.json",
    "content": "{\n    \"ecmul_1-3_5617_28000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"182\",\n                \"balance\": \"999999999992228283\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"7771717\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000330644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000010000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xcbf8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xb6\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"183\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 3) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-3_5617_28000_96Filler.json",
    "content": "{\n    \"ecmul_1-3_5617_28000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"181\",\n                \"balance\": \"999999999992280371\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"7719629\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000330644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001\"\n            ],\n            \"gasLimit\": [\n                \"0xcb78\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xb5\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"182\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 3) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-3_9935_21000_128Filler.json",
    "content": "{\n    \"ecmul_1-3_9935_21000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"95\",\n                \"balance\": \"999999999995681618\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"4318382\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xb120\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x5f\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"96\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 3) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes\"    \n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-3_9935_21000_96Filler.json",
    "content": "{\n    \"ecmul_1-3_9935_21000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"94\",\n                \"balance\": \"999999999995726834\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"4273166\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n            ],\n            \"gasLimit\": [\n                \"0xb0a0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x5e\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"95\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 3) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-3_9935_28000_128Filler.json",
    "content": "{\n    \"ecmul_1-3_9935_28000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0x40c97882e95e71d48d97c8655188333e16470e807a99282b8795064ca6ca4dcf\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"192\",\n                \"balance\": \"999999999991813052\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"8186948\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xcc78\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xc0\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x40c97882e95e71d48d97c8655188333e16470e807a99282b8795064ca6ca4dcf\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"193\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 3) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-3_9935_28000_96Filler.json",
    "content": "{\n    \"ecmul_1-3_9935_28000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0x40c97882e95e71d48d97c8655188333e16470e807a99282b8795064ca6ca4dcf\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"191\",\n                \"balance\": \"999999999991865268\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"8134732\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n            ],\n            \"gasLimit\": [\n                \"0xcbf8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xbf\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x40c97882e95e71d48d97c8655188333e16470e807a99282b8795064ca6ca4dcf\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"192\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 3) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-3_9_21000_128Filler.json",
    "content": "{\n    \"ecmul_1-3_9_21000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"50\",\n                \"balance\": \"999999999997713394\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"2286606\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xa960\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x32\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"51\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 3) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-3_9_21000_96Filler.json",
    "content": "{\n    \"ecmul_1-3_9_21000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"49\",\n                \"balance\": \"999999999997756626\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"2243374\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000009\"\n            ],\n            \"gasLimit\": [\n                \"0xa8e0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x31\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"50\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 3) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-3_9_28000_128Filler.json",
    "content": "{\n    \"ecmul_1-3_9_28000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xf348aa9f55b137fd60af9c782c04ea7c52c0b193972d1c3aa63d78a110fa2e20\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"147\",\n                \"balance\": \"999999999993644083\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"6355917\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xc4b8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x93\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xf348aa9f55b137fd60af9c782c04ea7c52c0b193972d1c3aa63d78a110fa2e20\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"148\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 3) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_1-3_9_28000_96Filler.json",
    "content": "{\n    \"ecmul_1-3_9_28000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xf348aa9f55b137fd60af9c782c04ea7c52c0b193972d1c3aa63d78a110fa2e20\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"146\",\n                \"balance\": \"999999999993694315\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"6305685\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000009\"\n            ],\n            \"gasLimit\": [\n                \"0xc438\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x92\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xf348aa9f55b137fd60af9c782c04ea7c52c0b193972d1c3aa63d78a110fa2e20\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"147\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 3) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_7827-6598_0_21000_128Filler.json",
    "content": "{\n    \"ecmul_7827-6598_0_21000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"12\",\n                \"balance\": \"999999999999391026\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"608974\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000801a87b0584ce92f4593d161480614f2989035225609f08058ccfa3d0f940febe31a2f3c951f6dadcc7ee9007dff81504b0fcd6d7cf59996efdc33d92bf7f9f8f600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xb860\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xc\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"13\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"13\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_7827-6598_0_21000_64Filler.json",
    "content": "{\n    \"ecmul_7827-6598_0_21000_64\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"13\",\n                \"balance\": \"999999999999343826\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"656174\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000401a87b0584ce92f4593d161480614f2989035225609f08058ccfa3d0f940febe31a2f3c951f6dadcc7ee9007dff81504b0fcd6d7cf59996efdc33d92bf7f9f8f6\"\n            ],\n            \"gasLimit\": [\n                \"0xb760\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xd\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"14\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"14\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 64 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_7827-6598_0_21000_80Filler.json",
    "content": "{\n    \"ecmul_7827-6598_0_21000_80\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"14\",\n                \"balance\": \"999999999999296882\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"703118\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000501a87b0584ce92f4593d161480614f2989035225609f08058ccfa3d0f940febe31a2f3c951f6dadcc7ee9007dff81504b0fcd6d7cf59996efdc33d92bf7f9f8f60000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xb7e0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xe\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"15\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"15\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_7827-6598_0_21000_96Filler.json",
    "content": "{\n    \"ecmul_7827-6598_0_21000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"11\",\n                \"balance\": \"999999999999438098\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"561902\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000601a87b0584ce92f4593d161480614f2989035225609f08058ccfa3d0f940febe31a2f3c951f6dadcc7ee9007dff81504b0fcd6d7cf59996efdc33d92bf7f9f8f60000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xb7e0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xb\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"12\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"12\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_7827-6598_0_28000_128Filler.json",
    "content": "{\n    \"ecmul_7827-6598_0_28000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"109\",\n                \"balance\": \"999999999995186579\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"4813421\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000801a87b0584ce92f4593d161480614f2989035225609f08058ccfa3d0f940febe31a2f3c951f6dadcc7ee9007dff81504b0fcd6d7cf59996efdc33d92bf7f9f8f600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xd3b8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x6d\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"110\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_7827-6598_0_28000_64Filler.json",
    "content": "{\n    \"ecmul_7827-6598_0_28000_64\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"110\",\n                \"balance\": \"999999999995151479\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"4848521\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000401a87b0584ce92f4593d161480614f2989035225609f08058ccfa3d0f940febe31a2f3c951f6dadcc7ee9007dff81504b0fcd6d7cf59996efdc33d92bf7f9f8f6\"\n            ],\n            \"gasLimit\": [\n                \"0xd2b8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x6e\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"111\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 64 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_7827-6598_0_28000_80Filler.json",
    "content": "{\n    \"ecmul_7827-6598_0_28000_80\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"111\",\n                \"balance\": \"999999999995116641\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"4883359\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000501a87b0584ce92f4593d161480614f2989035225609f08058ccfa3d0f940febe31a2f3c951f6dadcc7ee9007dff81504b0fcd6d7cf59996efdc33d92bf7f9f8f60000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xd338\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x6f\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"112\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_7827-6598_0_28000_96Filler.json",
    "content": "{\n    \"ecmul_7827-6598_0_28000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"108\",\n                \"balance\": \"999999999995221548\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"4778452\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000601a87b0584ce92f4593d161480614f2989035225609f08058ccfa3d0f940febe31a2f3c951f6dadcc7ee9007dff81504b0fcd6d7cf59996efdc33d92bf7f9f8f60000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xd338\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x6c\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_7827-6598_1456_21000_128Filler.json",
    "content": "{\n    \"ecmul_7827-6598_1456_21000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"60\",\n                \"balance\": \"999999999997277170\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"2722830\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000801a87b0584ce92f4593d161480614f2989035225609f08058ccfa3d0f940febe31a2f3c951f6dadcc7ee9007dff81504b0fcd6d7cf59996efdc33d92bf7f9f8f600000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xb8a0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x3c\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [0],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"61\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n            \t\t\t    \"0x00\" : \"0xa97df6032909972db52b8144798569bb6169ec8b3e065841da96b3d866aa131e\"\n\t\t\t            },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"61\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_7827-6598_1456_21000_80Filler.json",
    "content": "{\n    \"ecmul_7827-6598_1456_21000_80\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"61\",\n                \"balance\": \"999999999997229906\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"2770094\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000501a87b0584ce92f4593d161480614f2989035225609f08058ccfa3d0f940febe31a2f3c951f6dadcc7ee9007dff81504b0fcd6d7cf59996efdc33d92bf7f9f8f60000000000000000000000000000000100000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xb820\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x3d\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"62\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xa97df6032909972db52b8144798569bb6169ec8b3e065841da96b3d866aa131e\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"62\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_7827-6598_1456_21000_96Filler.json",
    "content": "{\n    \"ecmul_7827-6598_1456_21000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"59\",\n                \"balance\": \"999999999997324306\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"2675694\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000601a87b0584ce92f4593d161480614f2989035225609f08058ccfa3d0f940febe31a2f3c951f6dadcc7ee9007dff81504b0fcd6d7cf59996efdc33d92bf7f9f8f60000000000000000000000000000000100000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xb820\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x3b\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"60\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xa97df6032909972db52b8144798569bb6169ec8b3e065841da96b3d866aa131e\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"60\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_7827-6598_1456_28000_128Filler.json",
    "content": "{\n    \"ecmul_7827-6598_1456_28000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xa97df6032909972db52b8144798569bb6169ec8b3e065841da96b3d866aa131e\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"157\",\n                \"balance\": \"999999999993271574\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"6728426\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000801a87b0584ce92f4593d161480614f2989035225609f08058ccfa3d0f940febe31a2f3c951f6dadcc7ee9007dff81504b0fcd6d7cf59996efdc33d92bf7f9f8f600000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xd3f8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x9d\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xa97df6032909972db52b8144798569bb6169ec8b3e065841da96b3d866aa131e\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"158\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_7827-6598_1456_28000_80Filler.json",
    "content": "{\n    \"ecmul_7827-6598_1456_28000_80\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xa97df6032909972db52b8144798569bb6169ec8b3e065841da96b3d866aa131e\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"158\",\n                \"balance\": \"999999999993236410\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"6763590\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000501a87b0584ce92f4593d161480614f2989035225609f08058ccfa3d0f940febe31a2f3c951f6dadcc7ee9007dff81504b0fcd6d7cf59996efdc33d92bf7f9f8f60000000000000000000000000000000100000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xd378\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x9e\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xa97df6032909972db52b8144798569bb6169ec8b3e065841da96b3d866aa131e\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"159\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_7827-6598_1456_28000_96Filler.json",
    "content": "{\n    \"ecmul_7827-6598_1456_28000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0x0467d6413c98fb304cd61014865afdb7b3b81fa53f7ef4046e6a833162c5bb5c\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"156\",\n                \"balance\": \"999999999993306607\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"6693393\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000601a87b0584ce92f4593d161480614f2989035225609f08058ccfa3d0f940febe31a2f3c951f6dadcc7ee9007dff81504b0fcd6d7cf59996efdc33d92bf7f9f8f60000000000000000000000000000000100000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"34000\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x9c\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x0467d6413c98fb304cd61014865afdb7b3b81fa53f7ef4046e6a833162c5bb5c\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"157\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xa97df6032909972db52b8144798569bb6169ec8b3e065841da96b3d866aa131e\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"157\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_7827-6598_1_21000_128Filler.json",
    "content": "{\n    \"ecmul_7827-6598_1_21000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"28\",\n                \"balance\": \"999999999998684658\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1315342\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000801a87b0584ce92f4593d161480614f2989035225609f08058ccfa3d0f940febe31a2f3c951f6dadcc7ee9007dff81504b0fcd6d7cf59996efdc33d92bf7f9f8f600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xb8a0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x1c\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"29\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0x556a3c03566b04196c534f5612f50167917d72e6ab9b687e10e72dbe0e0f9279\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"29\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_7827-6598_1_21000_96Filler.json",
    "content": "{\n    \"ecmul_7827-6598_1_21000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"27\",\n                \"balance\": \"999999999998731794\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1268206\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000601a87b0584ce92f4593d161480614f2989035225609f08058ccfa3d0f940febe31a2f3c951f6dadcc7ee9007dff81504b0fcd6d7cf59996efdc33d92bf7f9f8f60000000000000000000000000000000000000000000000000000000000000001\"\n            ],\n            \"gasLimit\": [\n                \"0xb820\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x1b\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"28\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0x556a3c03566b04196c534f5612f50167917d72e6ab9b687e10e72dbe0e0f9279\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"28\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_7827-6598_1_28000_128Filler.json",
    "content": "{\n    \"ecmul_7827-6598_1_28000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0x556a3c03566b04196c534f5612f50167917d72e6ab9b687e10e72dbe0e0f9279\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"125\",\n                \"balance\": \"999999999994521029\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"5478971\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000801a87b0584ce92f4593d161480614f2989035225609f08058ccfa3d0f940febe31a2f3c951f6dadcc7ee9007dff81504b0fcd6d7cf59996efdc33d92bf7f9f8f600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xd3f8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x7d\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x556a3c03566b04196c534f5612f50167917d72e6ab9b687e10e72dbe0e0f9279\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"126\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_7827-6598_1_28000_96Filler.json",
    "content": "{\n    \"ecmul_7827-6598_1_28000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"124\",\n                \"balance\": \"999999999994556062\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"5443938\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000601a87b0584ce92f4593d161480614f2989035225609f08058ccfa3d0f940febe31a2f3c951f6dadcc7ee9007dff81504b0fcd6d7cf59996efdc33d92bf7f9f8f60000000000000000000000000000000000000000000000000000000000000001\"\n            ],\n            \"gasLimit\": [\n                \"34000\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x7c\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"125\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x556a3c03566b04196c534f5612f50167917d72e6ab9b687e10e72dbe0e0f9279\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"125\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_7827-6598_2_21000_128Filler.json",
    "content": "{\n    \"ecmul_7827-6598_2_21000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"38\",\n                \"balance\": \"999999999998244274\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1755726\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000801a87b0584ce92f4593d161480614f2989035225609f08058ccfa3d0f940febe31a2f3c951f6dadcc7ee9007dff81504b0fcd6d7cf59996efdc33d92bf7f9f8f600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xb8a0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x26\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"39\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0x94b60ed39c6fe45858b5931190d93861a2d2538991194cdf9a39b5e83dec0827\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"39\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_7827-6598_2_21000_96Filler.json",
    "content": "{\n    \"ecmul_7827-6598_2_21000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"37\",\n                \"balance\": \"999999999998291410\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1708590\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000601a87b0584ce92f4593d161480614f2989035225609f08058ccfa3d0f940febe31a2f3c951f6dadcc7ee9007dff81504b0fcd6d7cf59996efdc33d92bf7f9f8f60000000000000000000000000000000000000000000000000000000000000002\"\n            ],\n            \"gasLimit\": [\n                \"0xb820\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x25\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"38\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0x94b60ed39c6fe45858b5931190d93861a2d2538991194cdf9a39b5e83dec0827\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"38\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_7827-6598_2_28000_128Filler.json",
    "content": "{\n    \"ecmul_7827-6598_2_28000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0x94b60ed39c6fe45858b5931190d93861a2d2538991194cdf9a39b5e83dec0827\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"135\",\n                \"balance\": \"999999999994125254\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"5874746\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000801a87b0584ce92f4593d161480614f2989035225609f08058ccfa3d0f940febe31a2f3c951f6dadcc7ee9007dff81504b0fcd6d7cf59996efdc33d92bf7f9f8f600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xd3f8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x87\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x94b60ed39c6fe45858b5931190d93861a2d2538991194cdf9a39b5e83dec0827\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"136\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_7827-6598_2_28000_96Filler.json",
    "content": "{\n    \"ecmul_7827-6598_2_28000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0x8a5045bc7a493061be89fdbc32ea8ae69e8d8b55ebe445fa41fa534b1543ab50\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"134\",\n                \"balance\": \"999999999994160287\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"5839713\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000601a87b0584ce92f4593d161480614f2989035225609f08058ccfa3d0f940febe31a2f3c951f6dadcc7ee9007dff81504b0fcd6d7cf59996efdc33d92bf7f9f8f60000000000000000000000000000000000000000000000000000000000000002\"\n            ],\n            \"gasLimit\": [\n                \"0x8378\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x86\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x8a5045bc7a493061be89fdbc32ea8ae69e8d8b55ebe445fa41fa534b1543ab50\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"135\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x94b60ed39c6fe45858b5931190d93861a2d2538991194cdf9a39b5e83dec0827\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"135\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_7827-6598_5616_21000_128Filler.json",
    "content": "{\n    \"ecmul_7827-6598_5616_21000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"73\",\n                \"balance\": \"999999999996694290\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"3305710\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000801a87b0584ce92f4593d161480614f2989035225609f08058ccfa3d0f940febe31a2f3c951f6dadcc7ee9007dff81504b0fcd6d7cf59996efdc33d92bf7f9f8f630644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xbfa0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x49\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"74\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0x289df36ee06bbcd57a9ce2a88d2bcda09715d42f96f7f23c48cdd54e2002f059\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"74\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_7827-6598_5616_21000_96Filler.json",
    "content": "{\n    \"ecmul_7827-6598_5616_21000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"72\",\n                \"balance\": \"999999999996743218\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"3256782\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000601a87b0584ce92f4593d161480614f2989035225609f08058ccfa3d0f940febe31a2f3c951f6dadcc7ee9007dff81504b0fcd6d7cf59996efdc33d92bf7f9f8f630644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000\"\n            ],\n            \"gasLimit\": [\n                \"0xbf20\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x48\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"73\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0x289df36ee06bbcd57a9ce2a88d2bcda09715d42f96f7f23c48cdd54e2002f059\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"73\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_7827-6598_5616_28000_128Filler.json",
    "content": "{\n    \"ecmul_7827-6598_5616_28000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0x289df36ee06bbcd57a9ce2a88d2bcda09715d42f96f7f23c48cdd54e2002f059\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"170\",\n                \"balance\": \"999999999992731406\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"7268594\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000801a87b0584ce92f4593d161480614f2989035225609f08058ccfa3d0f940febe31a2f3c951f6dadcc7ee9007dff81504b0fcd6d7cf59996efdc33d92bf7f9f8f630644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xdaf8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xaa\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x289df36ee06bbcd57a9ce2a88d2bcda09715d42f96f7f23c48cdd54e2002f059\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"171\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_7827-6598_5616_28000_96Filler.json",
    "content": "{\n    \"ecmul_7827-6598_5616_28000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xac1de87792e425a22b81bdf624dc1b24fee26f16e9a879172aebc261cc51a2fe\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"169\",\n                \"balance\": \"999999999992768231\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"7231769\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000601a87b0584ce92f4593d161480614f2989035225609f08058ccfa3d0f940febe31a2f3c951f6dadcc7ee9007dff81504b0fcd6d7cf59996efdc33d92bf7f9f8f630644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000\"\n            ],\n            \"gasLimit\": [\n                \"34000\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xa9\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xac1de87792e425a22b81bdf624dc1b24fee26f16e9a879172aebc261cc51a2fe\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"170\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x289df36ee06bbcd57a9ce2a88d2bcda09715d42f96f7f23c48cdd54e2002f059\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"170\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_7827-6598_5617_21000_128Filler.json",
    "content": "{\n    \"ecmul_7827-6598_5617_21000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"83\",\n                \"balance\": \"999999999996235666\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"3764334\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000801a87b0584ce92f4593d161480614f2989035225609f08058ccfa3d0f940febe31a2f3c951f6dadcc7ee9007dff81504b0fcd6d7cf59996efdc33d92bf7f9f8f630644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000010000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xbfe0\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x53\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [0],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"84\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"84\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n\t   } \n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_7827-6598_5617_21000_96Filler.json",
    "content": "{\n    \"ecmul_7827-6598_5617_21000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"82\",\n                \"balance\": \"999999999996284658\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"3715342\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000601a87b0584ce92f4593d161480614f2989035225609f08058ccfa3d0f940febe31a2f3c951f6dadcc7ee9007dff81504b0fcd6d7cf59996efdc33d92bf7f9f8f630644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001\"\n            ],\n            \"gasLimit\": [\n                \"0xbf60\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x52\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"83\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"83\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_7827-6598_5617_28000_128Filler.json",
    "content": "{\n    \"ecmul_7827-6598_5617_28000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"180\",\n                \"balance\": \"999999999992317391\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"7682609\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000801a87b0584ce92f4593d161480614f2989035225609f08058ccfa3d0f940febe31a2f3c951f6dadcc7ee9007dff81504b0fcd6d7cf59996efdc33d92bf7f9f8f630644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000010000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xdb38\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xb4\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"181\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_7827-6598_5617_28000_96Filler.json",
    "content": "{\n    \"ecmul_7827-6598_5617_28000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"179\",\n                \"balance\": \"999999999992354280\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"7645720\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000601a87b0584ce92f4593d161480614f2989035225609f08058ccfa3d0f940febe31a2f3c951f6dadcc7ee9007dff81504b0fcd6d7cf59996efdc33d92bf7f9f8f630644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001\"\n            ],\n            \"gasLimit\": [\n                \"0xdab8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xb3\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"180\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_7827-6598_9935_21000_128Filler.json",
    "content": "{\n    \"ecmul_7827-6598_9935_21000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"93\",\n                \"balance\": \"999999999995776082\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"4223918\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000801a87b0584ce92f4593d161480614f2989035225609f08058ccfa3d0f940febe31a2f3c951f6dadcc7ee9007dff81504b0fcd6d7cf59996efdc33d92bf7f9f8f6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xc060\", \"50000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x5d\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [0,1],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"94\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0x40c97882e95e71d48d97c8655188333e16470e807a99282b8795064ca6ca4dcf\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"94\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_7827-6598_9935_21000_96Filler.json",
    "content": "{\n    \"ecmul_7827-6598_9935_21000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"92\",\n                \"balance\": \"999999999995825202\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"4174798\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000601a87b0584ce92f4593d161480614f2989035225609f08058ccfa3d0f940febe31a2f3c951f6dadcc7ee9007dff81504b0fcd6d7cf59996efdc33d92bf7f9f8f6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n            ],\n            \"gasLimit\": [\n                \"0xbfe0\", \"50000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x5c\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [0,1],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"93\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0x40c97882e95e71d48d97c8655188333e16470e807a99282b8795064ca6ca4dcf\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"93\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_7827-6598_9935_28000_128Filler.json",
    "content": "{\n    \"ecmul_7827-6598_9935_28000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0x40c97882e95e71d48d97c8655188333e16470e807a99282b8795064ca6ca4dcf\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"190\",\n                \"balance\": \"999999999991902416\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"8097584\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000801a87b0584ce92f4593d161480614f2989035225609f08058ccfa3d0f940febe31a2f3c951f6dadcc7ee9007dff81504b0fcd6d7cf59996efdc33d92bf7f9f8f6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xdbb8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xbe\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x40c97882e95e71d48d97c8655188333e16470e807a99282b8795064ca6ca4dcf\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"191\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_7827-6598_9935_28000_96Filler.json",
    "content": "{\n    \"ecmul_7827-6598_9935_28000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xa34b6e4f9c282ff62c1e6f53fd92ad8efd8346d9866333a95ab4506a8158afc7\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"189\",\n                \"balance\": \"999999999991939433\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"8060567\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000601a87b0584ce92f4593d161480614f2989035225609f08058ccfa3d0f940febe31a2f3c951f6dadcc7ee9007dff81504b0fcd6d7cf59996efdc33d92bf7f9f8f6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n            ],\n            \"gasLimit\": [\n                \"33000\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xbd\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xa34b6e4f9c282ff62c1e6f53fd92ad8efd8346d9866333a95ab4506a8158afc7\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"190\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x40c97882e95e71d48d97c8655188333e16470e807a99282b8795064ca6ca4dcf\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"190\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_7827-6598_9_21000_128Filler.json",
    "content": "{\n    \"ecmul_7827-6598_9_21000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"48\",\n                \"balance\": \"999999999997803890\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"2196110\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000801a87b0584ce92f4593d161480614f2989035225609f08058ccfa3d0f940febe31a2f3c951f6dadcc7ee9007dff81504b0fcd6d7cf59996efdc33d92bf7f9f8f600000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xb8a0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x30\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xf348aa9f55b137fd60af9c782c04ea7c52c0b193972d1c3aa63d78a110fa2e20\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"49\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0x00\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"49\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_7827-6598_9_21000_96Filler.json",
    "content": "{\n    \"ecmul_7827-6598_9_21000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"47\",\n                \"balance\": \"999999999997851026\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"2148974\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000601a87b0584ce92f4593d161480614f2989035225609f08058ccfa3d0f940febe31a2f3c951f6dadcc7ee9007dff81504b0fcd6d7cf59996efdc33d92bf7f9f8f60000000000000000000000000000000000000000000000000000000000000009\"\n            ],\n            \"gasLimit\": [\n                \"0xb820\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x2f\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"48\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xf348aa9f55b137fd60af9c782c04ea7c52c0b193972d1c3aa63d78a110fa2e20\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"48\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_7827-6598_9_28000_128Filler.json",
    "content": "{\n    \"ecmul_7827-6598_9_28000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xf348aa9f55b137fd60af9c782c04ea7c52c0b193972d1c3aa63d78a110fa2e20\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"145\",\n                \"balance\": \"999999999993729479\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"6270521\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000801a87b0584ce92f4593d161480614f2989035225609f08058ccfa3d0f940febe31a2f3c951f6dadcc7ee9007dff81504b0fcd6d7cf59996efdc33d92bf7f9f8f600000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xd3f8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x91\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xf348aa9f55b137fd60af9c782c04ea7c52c0b193972d1c3aa63d78a110fa2e20\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"146\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecmul_7827-6598_9_28000_96Filler.json",
    "content": "{\n    \"ecmul_7827-6598_9_28000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xc7b29565a7dd9915e6fd86d026aef2fc454506bae7f90e2f2bec5f25f01b2d95\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"144\",\n                \"balance\": \"999999999993764512\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"6235488\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000601a87b0584ce92f4593d161480614f2989035225609f08058ccfa3d0f940febe31a2f3c951f6dadcc7ee9007dff81504b0fcd6d7cf59996efdc33d92bf7f9f8f60000000000000000000000000000000000000000000000000000000000000009\"\n            ],\n            \"gasLimit\": [\n                \"0x8378\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x90\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xc7b29565a7dd9915e6fd86d026aef2fc454506bae7f90e2f2bec5f25f01b2d95\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"145\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xf348aa9f55b137fd60af9c782c04ea7c52c0b193972d1c3aa63d78a110fa2e20\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"145\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecpairing_bad_length_191Filler.json",
    "content": "{\n    \"ecpairing_bad_length_191\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000008\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"7\",\n                \"balance\": \"999999999998797605\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1202395\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000bf00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7d00\"\n            ],\n            \"gasLimit\": [\n                \"0x3aba8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x7\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000008\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"8\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the given data into the ECPAIRING precompile\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecpairing_bad_length_193Filler.json",
    "content": "{\n    \"ecpairing_bad_length_193\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000008\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"8\",\n                \"balance\": \"999999999998557053\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1442947\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa0000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0x3ac68\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x8\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000008\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"9\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": {\n            \"comment\": \"Puts the given data into the ECPAIRING precompile\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecpairing_empty_dataFiller.json",
    "content": "{\n    \"ecpairing_empty_data\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000008\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"2\",\n                \"balance\": \"999999999999746703\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"253297\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0x25028\", \"80000\", \"85000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x2\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [0,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000008\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"3\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x00\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000008\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"3\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the given data into the ECPAIRING precompile\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecpairing_empty_data_insufficient_gasFiller.json",
    "content": "{\n    \"ecpairing_empty_data_insufficient_gas\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000008\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"999999999999868294\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"131706\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"40000\", \"80000\", \"150000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x1\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [0,1],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t\t\"0x00\" : \"0x00\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000008\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"2\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [2],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t\t\"0x00\" : \"0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000008\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"2\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the given data into the ECPAIRING precompile\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecpairing_inputsFiller.yml",
    "content": "ecpairing_inputs:\n  _info:\n    comment: Various inputs to the bn254_pairing precompile\n\n  env:\n    currentCoinbase: 00000000000000000000000000000000c014bace\n    currentDifficulty: 0x20000\n    currentGasLimit: 15000000\n    currentNumber: 1\n    currentTimestamp: 1000\n\n  expect:\n    - indexes:\n        data: :label positive\n        gas: !!int -1\n        value: !!int -1\n      network:\n        - \">=Cancun\"\n      result:\n        000000000000000000000000000000000000c0de:\n          storage:\n            01: 1\n    - indexes:\n        data: :label negative\n        gas: !!int -1\n        value: !!int -1\n      network:\n        - \">=Cancun\"\n      result:\n        000000000000000000000000000000000000c0de:\n          storage:\n            01: 0\n    - indexes:\n        data:\n          - :label invalid_g1_point\n          - :label invalid_g2_point\n          - :label invalid_g2_subgroup\n        gas: !!int -1\n        value: !!int -1\n      network:\n        - \">=Cancun\"\n      result:\n        000000000000000000000000000000000000c0de:\n          storage:\n            01: 0xfe\n\n  pre:\n    00000000000000000000000000000000c014bace:\n      nonce: 1\n      balance: 0\n      code: ''\n      storage: { }\n\n    000000000000000000000000000000000000c0de:\n      nonce: 0\n      balance: 0\n      code: |\n        :yul shanghai\n        {\n          let size := calldatasize()\n          calldatacopy(0, 0, size)\n          let status := staticcall(0xffffffff, 8, 0, size, 0, 0x20)\n          let result := 0xfe\n          if status {\n            result := mload(0)\n          }\n          sstore(1, result)\n        }\n      storage:\n        01: 0xcc  # placeholder for the result\n\n    a94f5374fce5edbc8e2a8697c15331677e6ebf0b:\n      nonce: 0\n      balance: 1000000000000000000\n      code: ''\n      storage: { }\n\n  transaction:\n    to: 000000000000000000000000000000000000c0de\n    nonce: 0\n    gasPrice: 10\n    secretKey: 45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\n    gasLimit:\n      - 15000000\n    value:\n      - 0\n    data:\n      - :label negative :raw 0x142c9123c08a0d7f66d95f3ad637a06b95700bc525073b75610884ef45416e1610104c796f40bfeef3588e996c040d2a88c0b4b85afd2578327b99413c6fe820198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d\n      - :label negative :raw 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000092a62b029973fcd9ec18db33eb4c7b6b649a2e6196561761789e39bc84f11ac0a59f2672462be814a277f495d53244691c40da85d39b210ed3e099b397a4cf92ad603022931e8c20c927fa114866ca26b305156336511a9224d6bd88e5ba7fb2b44dd02df7f7a846f546c77f3330cc171abeea7747ec03607c4b754a07101421f4b96b82bd3631447045f1bb66198fa6a904e48092750762efd419fb5ff52b51fac61c1a7265d0e1a6433e9767cb51c71e9ac5a119be9894f509bf92b0fb1b4198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\n      - :label negative :raw 0x104f6d8507d6a112e8fd516d70bfe3d2474539948276d36eee987be127a9e3ab199eef24146007e80386f391edc886f5ddba22b5cf131efa3b6ae71a673fc88e198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa2642f046ad222f094c9282816131317b8d52fc0fee64f26898232432d34fdae605a5f2a2e8f15ba27e90f54faff78391b307b402a0ae995d1c12f92c0b574593198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\n      - :label negative :raw 0x1f0ab114f50077d71a195869dd8c07e2a031a55a8dac07c522ee7ac74136c50c229c9d498f5ca70a27612a244743773fe22668370a91410b645fe22f2e6eb78c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000284869d750e478e4b09637f7ae55bcce23bd622f04e986e1cba0f64b59b023200a88bc2898a2930aee2b92055ca2f97360a79c598f5e8998fed7add43a692d1021f4f3ddd5250962baaefc6ef587f464c8fdad1bb7812b292dce48d5462039df14044ca96015f3c6666f98d756fbf7bd0e12c3e884db4100391da8a47deff16e00b30c250f71db58eb20e14d67cd98ebb47790a7e7d45d30a90ce707175f295b1e45eca08667a7cfe06158fae4a38cac01a37853e730eaa28b2f7167fd74c22d\n      - :label negative :raw 0x0624d2c76767981fadc8f74f29c034f7ae0522585e1e0201308109c40d1d5420251ba3c545339bbe22da0fe90692a099384c435ec0902c99be7e7a84d62bb49c0c0b524584214b17414a25236e4e2b6f4bf398ec62e9abeb7ea1f158d89df05b0e05f600bf1408ab25c0f3dbb98ff26c4d85a6ce6a63bebc3b2e360de77cf6062488eb90497d64621124420825abd353268fe00bd90726991d0ce623e59da9c62340b1fb006017382cb76606a873f48de8f31434cc243c8f465cb908d8cc734618cde0d7bde7e1da88fb8192ce94bea754f24a53f1f000f15b4c5c151c12df4f0066b16bf4229edf5375b78a5c7469ddf68f7d5c7577642ed2c90d5d42c231ed198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa2948734db775bb41a29257214b19a6356e6640894c2a48f201addce62de7b41e1bb87bddbe46d75809751232405928c3314934082052131a64574ff5a59c7db7198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa09c91a687e6c44f2917682dc5d0a34be7c77fff361aa36610effab6f6d2d87ac13849277ed76b58020ab993f1847ebcc0f1bcf711fba15f4a7a80ab72b4fe9642f0c63d0c53b3dfbca27b6b43ae7fbf55a38d78a21470996485b03128accc20800556502356e37ed150db2e36531b0f275fd6835c0fc1945922e270b48c48a8602644c27b5dbd793592a70b735e22c798a5e309fa17a992a7dc2a050e01b298f194776b6a53439d7336f389d2a8f6651e40885f5ca2538b0dc9cb534fb23f7fa1e379e19dbffba1edf0a04505f67229e707a4b82f19285d3c186964e83e1553608ee58baa16641b1513f007da7d3cf58b503b80f73c7d8e792db63def167e0d82b1f95d6aa6fd6f5e6978d0135c206079770d5c3ba001967c5d94c5902f95fe9264ad64952cb1d30a7230bca35b3907b2457abdcd6052e14e2a132d76822222514f79ce35164acfdb802551e02a9aebdb20bf4248c0ccf5c6cf5e576908778410f8dfb99aaa272bbaa49012da81dfafa1a3c07eba89355602143c58f63df2939117a8203a67ab052af18032434b61fe6b33e0a6ad5ab70d57aef4444478b42ba123a80e91f77c135f657e2dbf5af0d07e9a4fb63585b88e5439ddab7741c0961198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\n      - :label positive :raw 0x00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002203e205db4f19b37b60121b83a7333706db86431c6d835849957ed8c3928ad7927dc7234fd11d3e8c36c59277c3e6f149d5cd3cfa9a62aee49f8130962b4b3b9195e8aa5b7827463722b8c153931579d3505566b4edf48d498e185f0509de15204bb53b8977e5f92a0bc372742c4830944a59b4fe6b1c0466e2a6dad122b5d2e104316c97997c17267a1bb67365523b4388e1306d66ea6e4d8f4a4a4b65f5c7d06e286b49c56f6293b2cea30764f0d5eabe5817905468a41f09b77588f692e8b081070efe3d4913dde35bba2513c426d065dee815c478700cef07180fb6146182432428b1490a4f25053d4c20c8723a73de6f0681bd3a8fca41008a6c3c288252d50f18403272e96c10135f96db0f8d0aec25033ebdffb88d2e7956c9bb198ec072462211ebc0a2f042f993d5bd76caf4adb5e99610dcf7c1d992595e6976aa3\n      - :label positive :raw 0x0084c3136563609ce6d7218719af3024e2163ea8124130cfb61c2521379b00672e775227ccd46bb5bd8b9f9714ecae9e037f8e91246b2a7e171337cf1332e3411fee9eea81af0f92485cb60cec6fdd90385b3f390c67d0885520bea38a07bb081242a8a318ba046cd7f4b87b4ede31c0c19f823ce0ab3192f36acc7683a9170411d50fa9a8a15815baf103030117065601aff6b54f4242d2a5a14e3147e89e25133ca084be363f41cb3886eed01fa8d896a609c22e099c4c9f5bb5a4363a57ad2f9b2caf0345e3ec3eccbc16af5713bbf15eaf2a17cd9f7a02966bd5e7ccd6fe185a77dfe45c4c1c9042c67fdb65d25bbd8b6f79dfdde27458a35792653443f3198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\n      - :label positive :raw 0x00898cc97b5a1f95221e7272c6ea8ceb56e702d678ac6c24275a4f6147d2b27916f336255e3f8970fd79a12281e6a6bee510e7d2ce5117214f4dd8c764e00ef312580b380ddf94a3370e6842e68b260a12012ab02c883678abf3f0f37606f55c268f02e60dfc36a40bb1fa3dba22bba44953358031876c21748d5d57dfb39ef407c890d2b747cb1e0456c9c1b30c03badffb8cde540704104b016976d0a374472a3e2918076d66622d7d6014299b77850a74b2691dda1dadcd0232fbbfe2a9e02781b3ace921b11d98193720d1493609c4d47f607a2266d608185c6382b5d23519797c215563c8b73cc7f0041d1f5fe1ce017b36afbeffe56683e3ffccb9380b198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\n      - :label positive :raw 0x082a5b0eb620c491dc7cfbf269ea3e9db35fdaf6c7c4baa25a829127a56f63c41c49e6c57c3c0ddca035138e5aadb79ac638f67a918e6a4377200ebfa80ed1880bf4734681e3030e126c2a595de85f80b46bd327bae8a860a3ed5f5be7318037116c5e07de19e858eb720604f6e2935bf0f5e40d9194cfba05bfea0ab69f1d82263ee7293c68743b04034a5b63e1d2b65261f7c6758d8084a50419cc65d02ad214189e61084d61cf2ad9b6140b951ca35ae18a008cb3c1c4904e59f462e66b0428ec2c3d544a901ad85af62e1ec02aac643e707a3a45983ef168877b6901a19d108e7a47061fd472bd715c35b71b842fc1914a8972e472a2a4faa4880e0d2787198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\n      - :label positive :raw 0x09148ba3625b1d4862ecfed71970e395d22bc4dafaa4a662546e4fb39141d8ba0a8f563782b2b31347c9e7ced5a21d959a38f4ae4bbc7cd37b1180a0d491cad617f32b902d2096a48b25f94ad6c692a99c68e937a4bae3c820f25093cf2786ab155c57d2b7f4aefc0e1a44a78c7d59d2cac917546717c665dc001fa43cf5775317b81fe685dd2e24a14899ef74821d1d147b88fe0c63d0921eb45c191146e7e41c9ae775eba85ea225258c9bafdf5cbad6106cd79194f4b0f8e7814068370daf302ac8191cd6d55b858891d05b919ad95f5e2f16b78c5b0ad2ecc72c3fe238421a924fa7e779ad503830c25838c2489d9bbc21fd519ceb3f4a10f4dc3e3b72be198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\n      - :label positive :raw 0x0ee7f0252e8210eaa3ee452c8731ad6864d8506ba61836f48c99a16a03d59b0d2ba1ddc868f452ef0cfdcac410e9d38d726557b05edc84f8d4f62203acc1f9f029aa08ecade2c1d537c14baf6cf62758c02e6f3c4eeb0b621ad3ab941b1559de11eac12aaf058f799ee8146f36a0bbbf8e67a0aa0f9e2c192bafd05ff8da45d303b7bd661becfa6ff5092b36f1768c815434f3b7f4254fb4b8abf68e36086cd3196caa297895d4a1d58a5fe388416fbac2a74fb9beb835dbbbaa8f6b63bf9cab29a00816ed140fc36e515f43fb054c891b4b07f013c9e6d5c3f284c8528c71ae2f060699e8f54b1028b78e5f016d8142563947adcac5a5857137b6958ddc995e141dd828af529924148912360fd71ef6a365a707173aa2c06c8290d54fae458e1cf61d5e9ceced0c662c6e2df96d63adc7d84e182fa0f62e08b9afdd5c90545e01f3e8049b7934995dee28faa0e401289b92ccd1a2f408c85383f5312f528c9e2c6aaa06b56e9d6c98a701b4a9cf2f8cfddbfa93d7104d5eafbad9a84b5174e5\n      - :label positive :raw 0x0f740d88de760df099674c96dd2d476b42673d0f2972e6d5d1f9dba95a29d26a04a44d72c2a82088da663ff162fe2d3ddd4a139e1ef6c0bbb1124d8de75f7c68196346d9774f017c351dbbdd99960e834b188b3347b92fac7f83cc6453617fe11e3ba24a0848096a0d6484133af97b7487ca9a4309cb5574d8bb96cfd7f22678235603772d0e9cf9503d05742962b07cd0af71a7c7b757960ced6fcfa74d3ded1ceed193f30fbbe5e9a9438e82bac927a0977b49f6e476aee20923e1a230f2c4201af9371c7cea66800f961d6a7219da9c27fbe61b5df43fccb275d8c034bf8e1f0e7c5a1143b0f8e850d9516ea2c836b0331521829dc2b71dbf775078c770f4198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\n      - :label positive :raw 0x107b8a2cb6318aabd95763c0cafc3b24d8a9acdf8dd967176f05c400951b3e0613a1c9847bf87c8cc79ef1120ed6e3e98412f0dd4e9c8c8c421057a2353279e6198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa2fb5b7e464a0a76d9aca8698e73802782da01fce50384f459be1427855c0eb502e6c7af07418cd0203fad6a1abde95e745c41a78c6ad1ae7b1b2ada2e643fd37260e01b251f6f1c7e7ff4e580791dee8ea51d87a358e038b4efe30fac09383c10118c4d5b837bcc2bc89b5b398b5974e9f5944073b32078b7e231fec938883b004fc6369f7110fe3d25156c1bb9a72859cf2a04641f99ba4ee413c80da6a5fe422febda3c0c0632a56475b4214e5615e11e6dd3f96e6cea2854a87d4dacc5e55\n      - :label positive :raw 0x117196c7ea11e6362bca58533a55de3deadc441b18b0a7ca68557f374dfed6a629b1b63f1d649480aa9655406c454b55cbbf8d29f3aedc30de3b0745bed3be52226ad93c0a164e73d8d9161f9d0206ab232fa5a08cb349f7df3633096cd04e920de4a56223ee43aa3c4a18bf4c84be1879dd9182fd4a03318a4bebd642627d1e142a0ed74ba11936e27101a43db8e16f6a603953c3ea4b14eaebbe117970268a2abced69ffbce2e34440530111050a4d72282dd5f4faa7703d5762d04327175619eedb06c5d1f53510f7f7464b39730659eccf0e9dfeec2cc131fd0d27c4f8e3043aaea131d0e69b79a816b675ac0dd21b4796046c149ca16df5884d615025c5238f967690e26443e6f5207b5c2af7fedb837d534282c7db1ca926a9bc06a7390ec4c043a606711a021205ef7d97785d9ae246ba06b2912e24ff9e669fb700b42714a2e42c4bd73a79cd7b2243d1b784cadb22a58e6360be1af873424efd420c12f54bdcf07ff30854629a0531065973197e685193051f2fa11a7761b0cc39f6\n      - :label positive :raw 0x13b076f9e2ddf66bd1e9ec7509945ec37289d9ad65f210ed35e78ba2b02e7e3d2c6d9689097e79c4227b7b8519e4850be2d795f9496a70ae8607a3172208371a0774089b1be2375b269ac0cd913803af1e8e967c7a12ded9e38bbfe816cb6b2b25e481bf589a76e531e3cbaee9b47a07fb832b052a71029665a5ca89f1eb6d6b0f10223646f0d0f8f79189c456f40295fa02708a2629b8a88d7ae36caab470552b4bf562f83ed28edf524edc1646b4c4cd538bec5d544d8071f0c73406339b2e2043a8194e50b9ff3b93d13873035fee0ccc3b4a0fda33d34ac7a4771c9b884d291b24054553ecab7eb9a6807281a895bdcf29e95d8d3a2552749b7fc0932637198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\n      - :label positive :raw 0x15d6eaaa18c5737e7bd229c2900f8deddf6da9c0e20e7e905e7b7491d041eaba2ab7d1b2a259b85054253da8947c2fd38b04a4ede3bfa6e258e22f668dcb5a63092a62b029973fcd9ec18db33eb4c7b6b649a2e6196561761789e39bc84f11ac0a59f2672462be814a277f495d53244691c40da85d39b210ed3e099b397a4cf92ad603022931e8c20c927fa114866ca26b305156336511a9224d6bd88e5ba7fb2b44dd02df7f7a846f546c77f3330cc171abeea7747ec03607c4b754a07101421f4b96b82bd3631447045f1bb66198fa6a904e48092750762efd419fb5ff52b51fac61c1a7265d0e1a6433e9767cb51c71e9ac5a119be9894f509bf92b0fb1b4198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\n      - :label positive :raw 0x16f5d1473d8a9012df4efc624ae3b5fc3b1c1742bb73b9b62aa50c0dec9848ad1b2381a593f0a661db10b659329907fb62b4f5fd196092ef235f0775463b11f3054f9c54b1560a307e173c70fce534a2e4c7b248ec342f968a9db905fb31ba362513859b9c3a196e357d5d4f34e17f5cb2d78f4160103ecae86cb57a3e48ef7715e96b3ad7bfbccc491029f30be0ced0654c6c2600b49bfafc70af802b305a09154bb828c71576e1809723e3bbb5d459ece5bdccb9bcdff733761fe908e1e1d52f91cec7b5d03d4c5930875239f825c55849b352fa27b4e20581fc4a68950c752ee478820a0dc3f22866e7c5111d6fd1f057c18b7c9c1568173916ce67555c47198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\n      - :label positive :raw 0x18dd52daaa11ff5dbb97c8776924d95b1bb86bf16481ba52519674873e0279ea0b32f4758cc18142794358e62b9c29951d3cb7e705d97e4cefd8422fa340ed5804cbac0707b92f59b87024017aae6941a3d8f42c6b93c619fa85cd54a3f0596325ef128bd051c44f95f7aa6122a390666691c2ec8a328f5302605f0aaae670db14a3194db0c978125b0212d2dbcf3639650e40f8acaeff5a5c20ba700de3966f004d3f0a629eb1456685db5a1b94d4b2f8dc0a9cdc5d29cccc5b596d88ba29fe0bcf53d38a1b0732fd90b73149559e0ee767f525875ebdb26f7f123136282afa28e440620ea4064d1f0190c75e2a36003f18643507a927926130eb54ecc1004d198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\n      - :label positive :raw 0x1b6e4577cc71df5e856ed88d2d14a464343f140b07693e3b08308570b28fd55b24198aa6ee0f5bfec020ad2ff15729434439e4af7554fa0f7395ee20cb926346246b8e8c771c3db7226a8066537632923d7d5a542f8e0d600e7f0195240f1ec513cbe706f9ba436dd4a781fab85fa2e9d82854446cf91182dcfa66eb68c4b7e72533a60b837f9cf4838c4c38f4f9c8988fee10c9895753e7925a86330e925db702f47f10f7da957cfcc613361ab6aaeb67f14d22c06eec14e47e36988c4ee06705a596bd22bbb13dc898acfdd420c88893dd09f7fd4875e8b3fb65b54ad9643f2847ab3c7d853e89cfdf520de28e1092c1955b7e17d9cba5808f047a3d6898fd2f64f057deda8bbb646d5b9864d9789a696abf2a42218f7af28baae517f5e45723bd3952d332068086b2079260b285896cb84c73ece3647094fac90d8b1374c21eebb3f8ea3c3d9147fa09e4506bcff1c222a02ea8b4904fc6df3bca1cc0505e133d9a4794eb099e9bdf82a6fecdb2e2e29b0867bf0fe557475dc758d796714e\n      - :label positive :raw 0x1ee2af29808bc7baad8eb3e87bf55588ef59763ae59585453aa57222a60409141756d11b0679f2e3c44a95592d270f55f76670c2d248fe2c0b391a11aa90d0ec0ea16e33157b6d0f197ed197ce3ad5b93ac91458632464dd5e4aa23ec628e6cb03c160eb0d2ab47566d495f1a53b7b1cdb659cb64e26c848c74267bc74ffeec81d5ee181514337f685e60ba02daccded24ea3122fb04d9da37790f3dce54587803087c55d223005ff8ad78f6f417b19caff564e8b8cb820d0eadb6bec43f0cf902b88f6e24920bd60dbbf082df1cd200abf141b6c01e7fcb262525364c14c20502958d26f4e6ad2d9b1db8a6b23e7fa5dc4d0e4c6673b0f840c000eeac001988198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\n      - :label positive :raw 0x1f357db2cd961c374f81a4ae374f5306787361c3aea270815962003c0915b5d2044c12e4c6321f0a73b09480c1d7a84ce30ee9219b3b649ff36ec7553150428f1b789c458e1e033db933f65230c01f173dc581494d23407494818cbc70c5e4eb05685001b0f48e5191bc50797f1330beb69d7dabe58b9b7d0c9c86c61c8d2a3301c8dc500074bc4207038e94f028d954405d8b6ff8b3f1b52a7ce67c97382c0b0a9c7d7844ca3f0a571b04211c021dc96a29628119b067364a06fea760698a060452283eefd9b336e591f37119aa473f03932c9c6d7cb0256c93e2bb7ebc214024a87b7afbb4143434a5aecbec2c38e02c7e01e8b056b812c80deab761bd942906b4a2cadf0c0d14e9015f1dd1833e1a71bdecfcc8d400f0c96c309dd8f3f30e243fddb630078af3593c50273c6fbc2c33f2fc6e208ad1e6dd537079f569cd5f25e6c61eb8d52bfe15205fb66a6e90da703a7cb8b441023f90ae987e35c72f800e8e708e896b7ba90163f4dd87bb6660359ca5558473831dea4aac4d222fe443\n      - :label positive :raw 0x21b1479be2a88d421d6aa893a59fe4966322436bcd047e610f90929a5823188a2feb0baed066808be65012e37e364243877a4d47b75cd9ffe4a5df3011a68f90198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa1aa2ba0e64e80047d931df5931420de2d4dc0b7b6fc83121a9f155ddf9d6577520108e265338e3f2bdcc276bf69d955d60c73419d7ba24c25a40e9efd4cb24b80dbbd035ab913dc40917c815e66941eef6529d94ecbaaee8f77efe9aac45aab22ff4691bd3aa5f5bbb6067c1a4392dc87bb7a9997f7a660dd960df462203c18f2d4e9ee9f56967d24826884a2473b374d24b5afef1cb8d11555a2a62249b44a907a93f02c17da88bbef2e8b41a34ee1137aa7edb0459e06be0bd88ef68a876b0\n      - :label positive :raw 0x2371e7d92e9fc444d0e11526f0752b520318c80be68bf0131704b36b7976572e2dca8f05ed5d58e0f2e13c49ae40480c0f99dfcd9268521eea6c81c6387b66c4051a93d697db02afd3dcf8414ecb906a114a2bfdb6b06c95d41798d1801b3cbd2e275fef7a0bdb0a2aea77d8ec5817e66e199b3d55bc0fa308dcdda74e85060b1c7e33c2a72d6e12a31eababad3dbc388525135628102bb64742d9e325f43410115dc41fa10b2dbf99036f252ad6f00e8876b22f02cb4738dc4413b22ea9b2df09a760ea8f9bd87dc258a949395a03f7d2500c6e72c61f570986328a096b610a148027063c072345298117eb2cb980ad79601db31cc69bba6bcbe4937ada6720198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\n      - :label positive :raw 0x23e6648726d779a5e9943a9cb2c3d89cc966f0ca965bbe7bbdc1bd93df6429302a1e299a0d2c7fb74af9e086c19b07b357c55e76d2c65fba3b122c8158ee2b76071a0694c6a785ae2ff2553f4c06e2d24d031b86a4023a0d41a095b9d35ec8d30c1ab42b9a9d852e0901c708a5a0dfa9920e0ba08828620a5ebbdf1ffb8f9d851741332dcd8798b695edf6be41e0e58803ab926516d0d600514c4572575b29241a64993ddd9be2bab46a7190024de9e051862f46ac3130db54ede8c322e604a22e198a9651f4d48dc87f0ebc9fba1061d49962668790edc37948681da728a79f1649dc12a9101ad7e6c1631c1290bec29720bf5617ee6b5afa720733748bc3fe2ae647da926e44cc8e5476a15ffc62f11eafc89cb7d1d9ea1107403e1773c49a2408eaaabd36aa0a8dc6db3fb091f3c8b4df202714f74ae8d8cca11a216a301725ef6bf83c607781e9c1696e31cb5baa60b9e2deb0856479b342737592c0961211d363f2f2fc286d903a1e94c6673714464530bdb734ded5608b4654466d3f35\n      - :label positive :raw 0x24ab69f46f3e3333027d67d51af71571141bd5652b9829157a3c5d12684619840f0e1495665bccf97d627b714e8a49e9c77c21e8d5b383ad7dde7e50040d0f622cab595b9d579f8b82e433249b83ae1d7b62d7073a4f67cb3aeb9b316988907f1326d1905ffde0c77e8ebd98257aa239b05ae76c8ec7723ec19bbc8282b0debe130502106676b537e01cc356765e91c005d6c4bd1a75f5f6d41d2556c73e56ac2dc4cb08068b4aa5f14b7f1096ab35d5c13d78319ec7e66e9f67a1ff20cbbf031459f4140b271cbc8746de9dfcb477d5b72d50ef95bec5fef4a68dd69ddfdb2e2c589584551d16a9723b5d356d1ee2066d10381555cdc739e39efca2612fc544229ab0abdb0a7d1a5f0d93fb36ce41e12a31ba52fd9e3c27bebce524ab6c4e9b00f8756832b244377d06e2d00eeb95ec8096dcfd81f4e4931b50fea23c04a2fe29605352ce973ec48d1ab2c8355643c999b70ff771946078b519c556058c3d56059a65ae6e0189d4e04a966140aa40f781a1345824a90a91bb035e12ad29af1d\n      - :label positive :raw 0x2b5154892605b4b57c6f309a1f39d91a89d985264f9dc47342470b5605532939153954f4ac012e3d5860731081c59b0b5d9df76eeeca47c1ede99d0a73a8d1351b7962c4f91943b75bfa71d26698f33807c0a82c4aff43116e6b0e97e087d64e0337b7f3f182a6241093041180e874062c10467e0147e1abd93857dda7e6aa34153cac48663d8de0c9f23d1a2cecf0bd14f6d7cf877ef833751f8a524d0f4c1c1ff902721cd414e4c564c569143a0356d3b6cb7b1970067365c0a0f8ecb4976b0da26ca39baccc3b276b50cbd06db50b1c544055c0c636256fa35afdafee49bf2238e1b69bc5e674c9351b702c26021f8eb254e0f890595f5f22ca04b205748003d0a15ac5814b86f5463c48d5f7d398da010569d67f979b2af9381802b485fd2d3de1b5338ac2222d3d1bfca2e20f7c1a280780ba9abd54b46d42380fda599c243c33dbb5c54e9566fdda8567e059b596fba1e9afef57deb1703f27cd93ce7419779141bb51eaa0ea4f1fd39efc61aee4e6b40316248277599c599ec30c8dd4\n      - :label positive :raw 0x2cc6c9acabc199e21be075d6d7885acfa1f38fec18999d78105c87e55a5d8eb7238e3f5edea71116b4905645df360589eed6e69ff4145a28c6ae29599ccb590e0e8248a6ccd8770c3cdbbd6d7f247c76f189978508b6f3514877833b00a7c593261d44028c3119ad2707a456739918ad10b51e7257b539a34e7f479f2e76707a2b359c070959c19eb7bb2bf1dbbb2cc060558f6dd682965535cba0f2392d13b818a023e2b4d60c38c7c0ab6af9ff0887dd192ac88b5070851f4d0e7495a1144d0ed1531303f89b56ebe6e9a39e7b7c4b5f2385d774ab00ab0b3c32c9b110552a0794c8d242f2aa6f638a597e53d8f236c780fcac4a7e2cabcb688896a84046c713532c71aeac024eea1bbccb01b45ceb4ad91e106200b7e25b0e30bc588d783520692d41373a18914e163949fa765d49dbaa5999b1d606300a469555da182b591fe664fc1dc73f67d3261d81477fd5b43e9b7d9a376a09e4a2b82f935ce0ef730abd60b3b4ca1e15eae3dd484e5e22f0f8f50dfbc756b40cb2406e6a1d86c07c\n      - :label positive :raw 0x2e565cd418929c3795adf3ea378f2616af24a1d7a93962c5be375e7fbdfe3d731197465669e70fd0793c00fb922d25dd53c8c35d4d686985e4e04741569497d1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003a781e0964591a816d07c8d6aa23d23b2ad50ae3acc529f877abf4d13e3f35e0fc25d443ba88ff661c914498d09f6c47bd3db7f8768c13ac2602e02250c34d10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n      - :label positive :raw 0x2e5e8d67b60e1d06acd7a490f8394be4aab0eca89eac6738fff6664263500f2b23a1b85312f58351b078bfabd3ab8517e383900cc23a4d9a8fdb0a5ae691bd0023751d707cd5ababe78100ade4bcc1691182ef8a6086be7af4a0a62b52d7a5940dea3332f3c63c37814cba5afb4380c5c3ee3920ef5de5484c1961a98430c2820c10e66f5bd143c35562d6b5f1bd6d0a256f4afb69641a3d8c871f5caa98fa6a1c8f31e252726f5fb9f5f444f60b32fcf94ba5e077c9724d36246ec666d767cc1f0befe534aa028faf6181644d6774e4e14f600a5657b3e2f6287115317f678c13357844009932b0b873101c362a9ee9fea643412da278256377c345e3f409dc1db60e215fc52c5af9d1b5045473f2f06bb20399de3cde3ce877ba545b994f3327c359cd987e9f2d05f015974e1b18b98b8f9684a24b0a50441244333bf5a35a023036aeb27f556ca1e93dd351651594c723239a7c0cb15b8ab7a0446ba789ff17e4fcbe1d017009100203f39e446d7b686e30fce3323ef61d46bc956143947c\n      - :label positive :raw 0x30618669fa4f387a7e9fcbf763bc0dc9908cf927d1f92b585ca17d46b7e97fd902acc05526844e174394b69b1e0b78d24f7b5bd0cfadcb6a33aa6dc090d9028f160c5af4494850ee7590972d0efda781e2879e76c807a16dd60ede657e0be6a8230f495774d31e8b73bf7ce73e6f87826d7a59e1c47b508d5f953a61c2b4939f0492560c98f9feab356c744c09f1ec80f5fc9cc579f9929a3c7d9046585431b7273a1175635e2ab1f1b63838c13bd9d1daf4dad2620a0e72beae5f66ab88acab0f0887388fbcfeed9d128b7324b47676549d378c55d6d28b80cc179258a2801711423de6d1555acffe946eebaee182f8d007d5bafea10c7e00236552de1c68b32b74c50fe814021736df034cfe502673b483baa8f12825b9c7f74c59943ca53516196e1e69cee3dc1a0ceebcd6163c57f0155afb41d78aac57966a2681fccd0229b85e084727db2843d66cc73e163875ae0cdf5ce9386bd6b2be7018476d460625bb91869e1c2453109ba45cda0fa3f4ba9b8186df72098e81ca6f131140d8b0\n      - :label positive :raw 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n      - :label positive :raw 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000103aa4b2aeff1bc7afc5cd39952c872c8f29d64188e8d18c1b65e526d6277a33209854e0ac153a98eff0fd08a0c73d46dbbe4209f8a6a4f2aad914e40686f4720000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n      - :label positive :raw 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ef4aac9b7954d5fc6eafae7f4f4c2a732ab05b45f8d50d102cee4973f36eb2c23db7d30c99e0a2a7f3bb5cd1f04635aaea58732b58887df93d9239c28230d282bd99d31a5054f2556d226f2e5ef0e075423d8604178b2e2c08006311caee54f0f11afb0c6073d12d21b13f4f78210e8ca9a66729206d3fcc2c1b04824c425f200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\n      - :label positive :raw 0x06236320cf783a01e2b8be7816a84671de9e8bebda0e8f957809ee1253565bae0a4ce1ac405b9974e4eaf9342c2a43bd1fdc4edc2bd18235249bf51ec43287440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n      - :label positive :raw 0x000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n      - :label positive :raw 0x24ab69f46f3e3333027d67d51af71571141bd5652b9829157a3c5d12684619840f0e1495665bccf97d627b714e8a49e9c77c21e8d5b383ad7dde7e50040d0f622cab595b9d579f8b82e433249b83ae1d7b62d7073a4f67cb3aeb9b316988907f1326d1905ffde0c77e8ebd98257aa239b05ae76c8ec7723ec19bbc8282b0debe130502106676b537e01cc356765e91c005d6c4bd1a75f5f6d41d2556c73e56ac2dc4cb08068b4aa5f14b7f1096ab35d5c13d78319ec7e66e9f67a1ff20cbbf031459f4140b271cbc8746de9dfcb477d5b72d50ef95bec5fef4a68dd69ddfdb2e2c589584551d16a9723b5d356d1ee2066d10381555cdc739e39efca2612fc544229ab0abdb0a7d1a5f0d93fb36ce41e12a31ba52fd9e3c27bebce524ab6c4e9b00f8756832b244377d06e2d00eeb95ec8096dcfd81f4e4931b50fea23c04a2fe29605352ce973ec48d1ab2c8355643c999b70ff771946078b519c556058c3d56059a65ae6e0189d4e04a966140aa40f781a1345824a90a91bb035e12ad29af1d1459f4140b271cbc8746de9dfcb477d5b72d50ef95bec5fef4a68dd69ddfdb2e2c589584551d16a9723b5d356d1ee2066d10381555cdc739e39efca2612fc544229ab0abdb0a7d1a5f0d93fb36ce41e12a31ba52fd9e3c27bebce524ab6c4e9b00f8756832b244377d06e2d00eeb95ec8096dcfd81f4e4931b50fea23c04a2fe29605352ce973ec48d1ab2c8355643c999b70ff771946078b519c556058c3d56059a65ae6e0189d4e04a966140aa40f781a1345824a90a91bb035e12ad29af1d24ab69f46f3e3333027d67d51af71571141bd5652b9829157a3c5d12684619840f0e1495665bccf97d627b714e8a49e9c77c21e8d5b383ad7dde7e50040d0f622cab595b9d579f8b82e433249b83ae1d7b62d7073a4f67cb3aeb9b316988907f1326d1905ffde0c77e8ebd98257aa239b05ae76c8ec7723ec19bbc8282b0debe130502106676b537e01cc356765e91c005d6c4bd1a75f5f6d41d2556c73e56ac2dc4cb08068b4aa5f14b7f1096ab35d5c13d78319ec7e66e9f67a1ff20cbbf03\n      - :label positive :raw 0x1147057b17237df94a3186435acf66924e1d382b8c935fdd493ceb38c38def7303cd046286139915160357ce5b29b9ea28bfb781b71734455d20ef1a64be76ca0daa7cc4983cf74c94607519df747f61e317307c449bafb6923f6d6a65299a7e1d48db8f275830859fd61370addbc5d5ef3f0ce7491d16918e065f7e3727439d1ca8ac2f4a0f540e5505edbe1d15d13899a2a0dfccb012d068134ac66edec6252162c315417d1d12c9d7028c5619015391003a9006d4d8979784c7af2c4537a30d221a19ca86dafa8cb804daff78fd3d1bed30aa32e7d4029b1aa69afda2d750018628c766a98de1d0cca887a6d90303e68a7729490f25f937b76b57624ba0be14550ccf7139312da6fa9eb1259c6365b0bd688a27473ccb42bc5cd6f14c8abd165f8721ee9f614382c8c7edb103c941d3a55c1849c9787f34317777d5d9365b0d19da7439edb573a1b3e357faade63d5d68b6031771fd911459b7ab0bda9d3f25a50a44d10c99c5f107e3b3874f717873cb2d4674699a468204df27c0c50a9a0d7136c59b907615e1b45cf730fbfd6cf38b7e126e85e52be804620a23ace4fb03e80c29d24ed5cc407329ae093bb1be00f9e3c9332f532bc3658937110d76072129813bd7247065ac58eac42c81e874044e199f48c12aa749a9fe6bb6e4bddc1b72b9ab4579283e62445555d5b2921424213d09a776152361c46988b82be8a7111bc8198f932e379b8f9825f01af0f5e5cacbf8bfe274bf674f6eaa6e338e04259f58d438fd6391e158c991e155966218e6a432703a84068a325439657498571ba47a91d487cce77aa78390a295df54d9351637d67810c400415fb374278e3f24318bbc05a4e4d779b9498075841c360c6973c1c51dea254281829bbc9aef33198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa1e219772c16eee72450bbf43e9cadae7bf6b2e6ae6637cfeb1d1e8965287acfb0347e7bf4245debd3d00b6f51d2d50fd718e6769352f4fe1db0efe492fed2fc324fdcc7d4ed0953e3dad500c7ef9836fc61ded44ba454ec76f0a6d0687f4c1b4282b18f7e59c1db4852e622919b2ce9aa5980ca883eac312049c19a3deb79f6d0c9d6ce303b7811dd7ea506c8fa124837405bd209b8731bda79a66eb7206277b1ac5dac62d2332faa8069faca3b0d27fcdf95d8c8bafc9074ee72b5c1f33aa70\n      - :label positive :raw 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n      - :label invalid_g1_point :raw 0x00000000000000000000000000000000000000000000000000000000000000000000000000be00be00bebebebebebe00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n      - :label invalid_g1_point :raw 0x000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n      - :label invalid_g1_point :raw 0x000000000000000000000000000000000000000000000000000000000000000030644e72e131a029b85045b68181585d97816a916871ca71ca8d3c16d87cfd450000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n      - :label invalid_g1_point :raw 0x000000000000000000000000000000000000ffff7d7d7d7d7d7d7d7d7d7d7d7d30644e72e131a0297d7d7d7dffffffffff00000000000000000000000000000000000000000000000000000000ff7d7d7d7d7d817d7d7d7d7dffffffffffa100000000000000ffffffffffffffffffffffffffff7d7d7d7d7d7d7d7d7d7d7d7d30644e72e131a0297d7d7d7dffffffffff00000000000000000000000000000000000000000000000000000000ff7d7d7d7d7d817d7d7d7d7d827d7d7d7d7d7d\n      - :label invalid_g1_point :raw 0x0000000000002900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fffffffffffffff80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n      - :label invalid_g1_point :raw 0x000000000000fffffffffdfffffe2e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n      - :label invalid_g1_point :raw 0x30644e72e131a029b85045ac81ec585dffffffffffffffffffffffffffffffffffff7d7dffff7d817f827d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d767d7d7d7d7d7d797d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7f7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d8d7d7d7d7d7d7d7dffffffffffffffffffffff01ffffffffffffffffffffff747d7d7d7d7d7d7d7d7dfd7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7dffffffffffffffffffffffff29ffffff0affffff0a\n      - :label invalid_g1_point :raw 0x30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000010000000000000000000000000000000000000000000000000000000000000000198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\n      - :label invalid_g1_point :raw 0x30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47000000000000000000000000000000000000000000000000000000000000000000000000ffffff000060bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad0c693395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\n      - :label invalid_g1_point :raw 0x25a78fa05de3e5f7c69f35ab209d6595697e8664c3572a57ea0c971fe33532ed0bc38b0a2d9961cf8d392de63be18471ffaaa192111cd8adccc98b7d790b61140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008013e823575500fffffffffffffffa0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n      - :label invalid_g1_point :raw 0x2dec711c75595613e8f7e4723c19f6e69be2ebafe07e965a001f4fa00a41eecc10246180d145035dfe0e334a8e1f4274a189b8dde0b2cc683cddfd9cae9b634b198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff0f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n      - :label invalid_g1_point :raw 0x30644e72e131a029b85045b68181585d97816a916871ca8d3c208d16d87cfd4700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n      - :label invalid_g1_point :raw 0x0a12d3fb2743836bbbb51414a351e5e70429a5de70c0fe7cec084e47d6027709006a8c414196abf21da0b3f6944846c77a1032b519baa1abf125f4f84010c47a250f9cf43675bc1077753c607600f3e51b627a10f3aa68a7e462d89a6bd2a21312ae5d695c4f9792cf70228a1ba07e5e0c2cb47d7aecbae923a84a3734a94ff10bdcd3d0b8e47a925f98bad0184dfe81967aaff8db8f0dfae31afccbcb8c4bd6148dff646f2764243ba9100a930eb7cc8c766b58e0d9953256698da5dbe66cc31f372b78747db898121455853a5672e71977957f134615fd0dd1fab4938b65e7201458c7d8ec49141bd3289f8cc4d19bb52041d51187432579e2e67cab27c847198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa2110e6d9f2378c1c1cd070a3f1507c3aa924a60f67259abe487621b0d3c5c38f0c26130b8aaa54109a5d82fbb2782b9ed461a4b8faa69341ccf652d2f73e188722f1acbb03c4508760c2430af35865e7cdf9f3eb1224504fdcc3708ddb954a482a344fad01c2ed0ed73142ae1752429eaea515c6f3f6b941103cc21c2308e1cb159f15b842ba9c8449aa3268f981010d4c7142e5193473d80b464e964845c3f80efd30ac7b6f8d0d3ccbc2207587c2acbad1532dc0293f0d034cf8258cd428b300710c68e1b8b73a72a289422d2b6f841cc56fe8c51105021c56ae30c3ae1aca0b2ff392a2fc535427ec9b7e1ae1c35a7961986788cf648349190dd92e182f05198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daabebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebefdbebebebeabc689bebebebe43be92be5fbebebebebebebebebebebebebebebebebebebebebebebe9ebebebe2abebebebebebebebebebebebebebebebebebe\n      - :label invalid_g2_point :raw 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffff0000000000000000ffffffffffffffffffff\n      - :label invalid_g2_point :raw 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002d00e9ff0000000000000000ffffffffffffffffbfffffffffffffffffffa120000000000000fffffffffff7ffffffffffff000000000000000000000000000000000000000000000000000000002d0002ff0000000000000000ffffffffffffffffbfffffffffffffffffffa120000000000000ff007d7d7d7d7d7d7d7d7d7d\n      - :label invalid_g2_point :raw 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030644e72e131a0294fafba497e1ec6d18c48814a69000000010000000030000000cd71ec682d26313681ea8a1a9a410c862cc44a5d0000000000000000000001158d600a2d8411f2e9bd1a1b51eac64e43b0c511f2e9bd1a1b51eac64e43b0c511fc9ba8b80b727a2c28ee454fc286fd659262c510a3e7f11a4b0e4b74bebafc\n      - :label invalid_g2_point :raw 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002d00e9ff0000000000000000ffffffffffffffffbfb2ffffffffffffffffa120000000000000fffffffffff7ffffffffffff000000000000000000000000000000000000000000000000000000002d0002ff0000000000000000ffffffffffffffffbfffffffffffffffffffa120000000000000ff007d7d7d7d7d7d7d7d7d7d\n      - :label invalid_g2_point :raw 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f8ffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000\n      - :label invalid_g2_point :raw 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffa10000000000ffffffffffffffffffa100000000000000000000000000000000000000000000000000000000000000000016c46ebe0077418d002f28e20236919ad92313729f18578ba8547626478ea52c2b5b688b4d8078d1e1acd7acc7be7f9e0e30812ce2925b35559213646c93237f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n      - :label invalid_g2_point :raw 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000000ffffffff000000000000000000000000000000000000000000000000fb55bf7df894a746fbe20b6f8c54d0dc0d9fd4ed005174a42fc3c45e6e27f912a20d63d446eb175733853b88dd36708eb7a81f5c79e7659c3a6e2b2c470077005ed60ba723a2dd3a5fc35520f982963de61e3b563636fe6996cc2c3008035720ad16f835a46faca48c6d39ae00a10d3514e93ae3b946ee2f009ea2dccff97e198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed09068950585ff0759e99ecad6903000000000000000000000000000000002c000000000000000000000085b7aef328c21800deef5e0000aa426a00665e0000aa\n      - :label invalid_g2_point :raw 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a76dae6d3272396d0cbe61fced2bc532edac647851e3ac53ce1cc9c7e645a83000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a76dae6d3272396d0cbe61fced2bc532edac647851e3ac53ce1cc9c7e645a8329a0d6d5e7d14a774c3abff1435361da2ee5d8b4f3ee62085ce779f248b41d4a2fd37ae5468f6a17b7f9a0bcca02ee128bdced61402a566e4eee2d0fa825f03d198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\n      - :label invalid_g2_point :raw 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47000000000000004500000000000000000000000000000000000000000000000107b55de1642362d16b8fc4dccfec9e794d24968511cf8e252ed27afc4d72ca1e0301cb4d7e0b7b52a6a8f78613c403ead1543fedb0d3f28c77685fdb9eaa27420cdc335fa81dff303b71cffb0256d7097c2b4c6715ca7b1589ea9386a41c2f851223d6bb1f3e68ddfb08f4c95f590f99227fb681a3b0abdf685cf12bde37d8ee000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000001f1cd7f247f2ae1ba9a1aeb4b32ed4c8c13c70c8861b6ab5340e276c58e1046b13d7de2b557e0ae2b53380ad596ba79f07c037c9d9aa17cf407e9ed86201436e\n      - :label invalid_g2_point :raw 0x00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed95bc4b313370b38ef355acdadcd122975b4b313370b38ef355acdadcd122975b120000c8db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\n      - :label invalid_g2_point :raw 0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000005b004500000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47218c0cef2a606613357bfaa3c880e71ff8490195337fa26205a21ccd9a6949a313fed2c79add9d85b9949c5852ef8cccf02b69ea6fc4db0d1660ac7b50df39e1000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4500000000005b004500000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd45218c0cef2a606613357bfaa3c880e71ff8490195337fa26205a21ccd9a6949a313fed2c79add9d85b9949c5852ef8cccf02b69ea6fc4db0d1660ac7b50df39e1\n      - :label invalid_g2_point :raw 0x2a4f1dbc9fe6d2882462fb11afeae7b7f2a0cf213b1f19c45cb222336283f3801141763c897c9a90e387ea80f68eb88c2d79aab680196d9538cd2ca632a5e81b0e540f5b5be91f82ed05349750761224f543068ce30d2d5e838bf66866f345200fa5ac8c46f725e54505019bda3356ef6e35b0a89b9b4f79bb0c62211235c9312e6d97a1f7e0428fc0be6be02c811095f5166710dcbe869c36a8ef89cac63e012657bbaf3bcfd106dd677eef03172f693a6c919776f441dc0fd47a4bd91d0487225fdab8fe6cd876363d27075cdf0d01c209da61b1634b574a5d811cfae407001216b7c3e2adc07c3bef31771c7bb9e1d02f07ff3a5b74953c4fd5bf9a7a6dff25f63fcc543337b8f6275f97d6479633b921541a96ac1bc2aff2e0905db7407c206776f9480168741eca625c06e5526b4664a02ce664bc656f39664d96278b6e1e40e8084fd648ba315f691e8367be1d4c13844421c87223d84829c31a0d7afe24b8042d4cb604ae66c0dc97ca8a9c2d22c743335d92bc401700f6b00d5cdc5b\n      - :label invalid_g2_point :raw 0x2eca0c7238bf16e83e7a1e6c5d49540685ff51380f309842a98561558019fc0203d3260361bb8451de5ff5ecd17f010ff22f5c31cdf184e9020b06fa5997db841213d2149b006137fcfb23036606f848d638d576a120ca981b5b1a5f9300b3ee2276cf730cf493cd95d64677bbb75fc42db72513a4c1e387b476d056f80aa75f21ee6226d31426322afcda621464d0611d226783262e21bb3bc86b537e986237096df1f82dff337dd5972e32a8ad43e28a78a96a823ef1cd4debe12b6552ea5f06967a1237ebfeca9aaae0d6d0bab8e28c198c5a339ef8a2407e31cdac516db922160fa257a5fd5b280642ff47b65eca77e626cb685c84fa6d3b6882a283ddd1198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c2e8ff2110ede0e189426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\n      - :label invalid_g2_point :raw 0x00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd216da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba2e89718ad33c8bed92e210e81d1853435399a271913a6520736a4729cf0d51eb01a9e2ffa2e92599b68e44de5bcf354fa2642bd4f26b259daa6f7ce3ed57aeb314a9a87b789a58af499b314e13c3d65bede56c07ea2d418d6874857b70763713178fb49a2d6cd347dc58973ff49613a20757d0fcc22079f9abd10c3baee2459000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000b4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n      - :label invalid_g2_subgroup :raw 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000070a77c19a07df2e666ea36f7879462c0a78ebbdf5c70b3dd35d438dc58f0d9d0a2dd5b476a606a8243e7e879bddaa8086ba658087aacc4d986a10c74dd9e7742d46618f9d516e0f07a59d3c97f5e167a1b49ebe9fb30dd05bded8185a545420\n      - :label invalid_g2_subgroup :raw 0x000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4530644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4500000000000000000000000000000000000000000000000000000000000000020833e47a2eaa8bbe12d33b2da1a4fa8d763f5c567fe0da6c5c9da2e246f2096f28dc125bf7443bc1826c69fe4c7bf30c26ec60882350e784c4848c822726eb43\n      - :label invalid_g2_subgroup :raw 0x0a96696a78e6818da746c504a8b83f7a3faea0dfee0a2c52751f3cfae5fe979b017a319dce2d1976671eddd5b909781c102e5eed5c40db00bdbd19a14397b889198e9393920daef312c20b9f1099ecefa8b45575d349b0a6f04c16d0d58af9001800deef121f1e76426a00665e5c4479674322d4f75edaddde46bd5cd992f6ed05a7a5759338c23ca603c1c4adf979e004c2f3e3c5bad6f07693c59a85d600a922376289c558493c1d6cc413a5f07dcb54526a964e4e687b65a881aa9752faa2\n      - :label invalid_g2_subgroup :raw 0x111f95e1632a3624dd29bbc012e6462b7836eb9c80e281b9381e103aebe632372b38b76d492b3af692eb99d03cd8dcfd8a8c3a6e4a161037c42f542af5564c41198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21a76dae6d3272396d0cbe61fced2bc532edac647851e3ac53ce1cc9c7e645a8305b993046905746641a19b500ebbbd30cf0068a845bfbee9de55b8fe57d1dee8243ef33537f73ef4ace4279d86344d93a5dc8c20c69045865c0fa3b924933879\n      - :label invalid_g2_subgroup :raw 0x17956b549321b92c524d191a62b90c81f08e694af4dceb00a80094e53120d39e2fd15d78815388959caa54affa2d7b2c8d52c528e6a1f6c0a50fcf0498fac7ee30644e72e131a0290000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000016b9e28a32ee61a7ad5bd4bad29d64fc35a8fb46b510be2067907069497ae1f0c3c07c40f41a731fe27d953f1154b4e9a8acf3ef44608817150de0df916503a\n      - :label invalid_g2_subgroup :raw 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800104e75a20b641566a0c71c9069a5256391aa31e22021d36c037c108dfb79c66200bf257ae3d66a589214f980a2ae34f9544be2fcbcc13b21f4c1642f31aa4d200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800104e75a20b641566a0c71c9069a5256391aa31e22021d36c037c108dfb79c66200bf257ae3d66a589214f980a2ae34f9544be2fcbcc13b21f4c1642f31aa4d20\n      - :label invalid_g2_subgroup :raw 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000012ab9bb0c853fb1d884197cdefdf654c01a289b677094fe609c835d2b249dcc51460243cc357281001b8b257c6396865c729761ac575a85b2f8f0e58af439c84000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n      - :label invalid_g2_subgroup :raw 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000fb1b0e8c8b85ec99ebedae0880006b0809f5151890cca524eea2c0b3ad87f3229d3e6bc7f0886b75e186b10564dc990258855e0311e3e2e72f9d9c0dfab4f0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000fb1b0e8c8b85ec99ebedae0880006b0809f5151890cca524eea2c0b3ad87f3229d3e6bc7f0886b75e186b10564dc990258855e0311e3e2e72f9d9c0dfab4f0d\n      - :label invalid_g2_subgroup :raw 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000114cc34c5044c87540b942287d555ce935499ce155202081ca5ce495c356896009fd9490a6f214b7729f9574d53fce82a2d46b3ccf7499ab5616b2c4f36582d7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000\n      - :label invalid_g2_subgroup :raw 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000192b7e3a0ca8b63592989fe8b2589465703315272bc730644e72e131a029b85045b68181585d00001b86b77538000000000100000000128a694e7017ae1db6a312c9ef648b1a4910a41e684cb554302044a2065f04680df2d76a91278279cf401d431c31876ee9c8ad35070694552ccbd368755413830000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000192b7e3a0ca8b63592989fe8b2589465703315272bc730644e72e131a029b85045b68181585d00001b86b77538000000000100000000128a694e7017ae1db6a312c9ef648b1a4910a41e684cb554302044a2065f04680df2d76a91278279cf401d431c31876ee9c8ad35070694552ccbd36875541383\n      - :label invalid_g2_subgroup :raw 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005b000000000045000000002a00000000008000000000000000000130644e72e131a029b65045b68181585d2b0d3025c6abdbaa75ef4d163a7cfd4017c66e1806ece8d631d792f8cbd8bdf7514a9058c183a3b2fcda7e86c44b7752301a6a722cdc812165b619f3cd2b21250d7f7083d0b984fdaf8636202e4ae0470000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000230644e72e131a029b85045b68181585d2b0d3025c6ab2eb4fbef4d16d87cfd4000000000005b004500000000000000002a000000000000000000000000000001109beddbaa84026c8f71d34a485af27fe418028129b55b0a0df51e3dba2310021aea54403ce01876467152aa79ca1f227b6b1e0f95b56cb0537583190252556d\n      - :label invalid_g2_subgroup :raw 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000000ffffffff000000000000000000000000000000000000000000000000fb55bf7df894a746fbe20b6f8c54d5dc0d9fd4eda4742fc35100c45e6e27f912a20d63d446eb175733853b88dd36708eb7a81f5c79e7659c3a6e2b2c470077000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000000ffffffff000000000000000000000000000000000000000000000000fb55bf7df894a746fbe20b6f8c549feddc0dd0d4005174a42fc3c45e6e27f912a20d63d446eb175733853b88dd36708eb7a81f5c79e7659c3a6e2b2c470077\n      - :label invalid_g2_subgroup :raw 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ea1146af1a0c4df0000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000015d42e5a1c18703100bef65a743007bead1fc389b7d8f0a8ccda34b7d30620cb1c4156d243211b733af4f4fff11b9c0928308bf3c3102415e3105b986166d0cd00000000000000000000000000000000000000000000f8ffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000\n      - :label invalid_g2_subgroup :raw 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000249409822e0000000000000000000000000000000000000001154baf30644e72e131a029b85045b66ac4175696816a916871ca8d3c208c161a46c432126f44fab27034ba2832173059ebf31a96607ada20f006b4f12d4a8bad410d8f02eee77897359cfc599b6ca4e8c2a47f641fc0cd6d4146d8eca263a85c7aa36500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\n      - :label invalid_g2_subgroup :raw 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21a76dae6d3272396d0cbe61fced2bc532edac647851e3ac53ce1cc9c7e645a8305b993046905746641a19b500ebbbd30cf0068a845bfbee9de55b8fe57d1dee8243ef33537f73ef4ace4279d86344d93a5dc8c20c69045865c0fa3b92493387900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21a76dae6d3272396d0cbe61fced2bc532edac647851e3ac53ce1cc9c7e645a8305b993046905746641a19b500ebbbd30cf0068a845bfbee9de55b8fe57d1dee8243ef33537f73ef4ace4279d86344d93a5dc8c20c69045865c0fa3b924933879\n      - :label invalid_g2_subgroup :raw 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4500000000000000000000000000000000000000000000000000000000000000020833e47a2eaa8bbe12d33b2da1a4fa8d763f5c567fe0da6c5c9da2e246f2096f28dc125bf7443bc1826c69fe4c7bf30c26ec60882350e784c4848c822726eb43000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4530644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4500000000000000000000000000000000000000000000000000000000000000020833e47a2eaa8bbe12d33b2da1a4fa8d763f5c567fe0da6c5c9da2e246f2096f28dc125bf7443bc1826c69fe4c7bf30c26ec60882350e784c4848c822726eb43\n      - :label invalid_g2_subgroup :raw 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4500000000000000000000000000000000000000000000000000000000000000020833e47a2eaa8bbe12d33b2da1a4fa8d763f5c567fe0da6c5c9da2e246f2096f28dc125bf7443bc1826c69fe4c7bf30c26ec60882350e784c4848c822726eb431a3cf0c503b2dbc6e1b0f8aea605de20d8612fe14627c6f4d3706f8272a1cf842a0bb098018ca4392a1ddc08b9605602aed954308944ac729e2f99bfdd0166dd0000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000024b364d16400886c82900af060fd117cb2f4e0b93590cbf6ec34ed97f4c391ec26a10e3233aeff776d578de9178a9b7bb919e6eb6cf2cf924eb16ec8dc659af9\n      - :label invalid_g2_subgroup :raw 0x00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030644e72e131a029b05040ff00000000000000000000000000000000000000002e00d573b028b22b9d347da8044a53c94b6c3aee7d9bfb00ab2c0a10eb4775e619e1a75be1c5d39a105504a0e5d16c949524742dde6bbb6e831668fef921a1430000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000230644e72e131a029b050ffffffff585d97816a86b77537dafbef4d16d87cfd4500000000005b00450000f400000000002a00647d903b504c1a020000000000012db3d49da56012cf4f73cbf19fdb59ef41356cebb4f4b6f692f9a38fb282a9ff2d96db5d24dcea418a44feae6052fbc7788e65e521b17232666818386252176a\n      - :label invalid_g2_subgroup :raw 0x000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000107b55de1642362d16b8f25dccf30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d800000009eae594f627b7ccf496d680f0266e7364f51d2d99ccd69801f29137d889e1e006ea1409d3f9bb38bd40e8da0701d122e059a02fc3c3c4a99a8cbf6e4290bdc0000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd450000000000000000000000000000000000000107b55de1642362d16b8f25dccf30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d800000009eae594f627b7ccf496d680f0266e7364f51d2d99ccd69801f29137d889e1e006ea1409d3f9bb38bd40e8da0701d122e059a02fc3c3c4a99a8cbf6e4290bdc0\n      - :label invalid_g2_subgroup :raw 0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000005b00450000000000da76b36b83c72830000000000000000000000830644e72e131a029b85045b68181585d97816a916871ca8d104d5b2baf5734631b8765e7f5163862fcd3bc29f751af42d869a0c8a329f5a53472d3c977038bb7068cd6bc298bd1ec695a49e1db0620332f26e03a4a0ed9076973c1fea43099f2000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4500000000005b004500000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd45218c0cef2a606613357bfaa3c880e71ff8490195337fa26205a21ccd9a6949a313fed2c79add9d85b9949c5852ef8cccf02b69ea6fc4db0d1660ac7b50df39e1\n      - :label invalid_g2_subgroup :raw 0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000005b00450000fc00000000002a00647d903b504c1a0200000000000130644e72e131a029b85045b68181585d97816a86b77537dafbef4d16d87cfd450125b8edede9e4f320e4dbfd7ee46d23a82508c3b44dbb99cb29724daaa5c5602d663cc48c6d7469cc9df0e861f3a9b93239af8001f8ecf28b4572f201ef1369000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4530644e72e131a029b85045b68181585d97816a86b77538dafbef4d16d87cfd4500000000005b004500000000000000002a00647d903b504c1a02000000000001247f1f6fbf2fe1fff7e28d816724080774979f57692c2fa8569ea1a3ce52dfc51f5c96f77d84ae24b701a32ff1b8d95b982c76bf5ab02e605c9ba4fa9f45b958\n      - :label invalid_g2_subgroup :raw 0x00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002012cd187faae3648a35e12cc197ddb26d9d3a44a625d97816a86b77537dafbef30644e72e131a029b050ffffffff5802086325c1129ad4a34ebb48ee9634016008aef33d9388c8f993f0af340e047c1c9519d222062186f7b025291b6f6f4ef2293f1064b0e3345895dc4968bc8bb52fcbe960621c1f15cd7c693c7347078e32000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd45012cd187faae3648a35e12cc197ddb26d9d3a44a625d97816a86b77537dafbef30644e72e131a029b050ffffffff5802086325c1129ad4a34ebb48ee9634016008aef33d9388c8f993f0af340e047c1c9519d222062186f7b025291b6f6f4ef2293f1064b0e3345895dc4968bc8bb52fcbe960621c1f15cd7c693c7347078e32\n      - :label invalid_g2_subgroup :raw 0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000230644e72e131a029b05045b68181585d97816a86b77537dafbef4d16d87cfd4500000000005b00450000fc00000000002a00647d903b504c1a020000000000012c32d7465b0607cfaebe0b13577b25e42fe6d9e49eeb9d5c0ca78cc17e114cbc2cd71c8288ebbd272a784c5b4921128cb68e9e2ddaaec0595b266126c4e526bd000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4530644e72e131a029b05045b68181585d97816a86b77537dafbef4d16d87cfd4500000000005b00450000fc00000000002a00647d903b504c1a020000000000012c32d7465b0607cfaebe0b13577b25e42fe6d9e49eeb9d5c0ca78cc17e114cbc2cd71c8288ebbd272a784c5b4921128cb68e9e2ddaaec0595b266126c4e526bd\n      - :label invalid_g2_subgroup :raw 0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000230644e72e131a029b85045b68181585d97816a68917120ca8d3c8c16d87cfd4500000000005b004500000000000000000000000000000000000000004000000111ee2be185fb562c979eeb452df376f91c7852bfb8a6d5727024444a2fc58c152825d78e66be7952503e9e1bf2d8aad4c39f4ce4095349043106508bab20d6e5000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4530644e72e131a029b85045b68181585d97816a68917120ca8d3c8c16d87cfd4500000000005b004500000000000000000000000000000000000000004000000111ee2be185fb562c979eeb452df376f91c7852bfb8a6d5727024444a2fc58c152825d78e66be7952503e9e1bf2d8aad4c39f4ce4095349043106508bab20d6e5\n      - :label invalid_g2_subgroup :raw 0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000230644e72e131a029b85045b68181585d97816a86b77538dafbef4d16d87cfd4500000000005b004500000000000000002a000000000000000000000000000001124ca5dc43ed1e22d1c616b50a7d4249a012c1d65330ae8e4cad70567c8231bb23f9415fa570e58e0ac61e4e6e7a6bd02a564f6b206a9d4645401b1d677bf3ab000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4530644e72e131a029b85045b68181585d97816a86b77538dafbef4d16d87cfd4500000000005b004500000000000000002a000000000000000000000000000001124ca5dc43ed1e22d1c616b50a7d4249a012c1d65330ae8e4cad70567c8231bb23f9415fa570e58e0ac61e4e6e7a6bd02a564f6b206a9d4645401b1d677bf3ab\n      - :label invalid_g2_subgroup :raw 0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000230644e72e131a029b85045b68181585d97816a86b77538dafbef4d16d87cfd4500000000005b004500000000000000002a00647d903b504c1a02000000000001247f1f6fbf2fe1fff7e28d816724080774979f57692c2fa8569ea1a3ce52dfc51f5c96f77d84ae24b701a32ff1b8d95b982c76bf5ab02e605c9ba4fa9f45b958000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4530644e72e131a029b85045b68181585d97816a86b77538dafbef4d16d87cfd4500000000005b004500000000000000002a00647d903b504c1a02000000000001247f1f6fbf2fe1fff7e28d816724080774979f57692c2fa8569ea1a3ce52dfc51f5c96f77d84ae24b701a32ff1b8d95b982c76bf5ab02e605c9ba4fa9f45b958\n      - :label invalid_g2_subgroup :raw 0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000230644e72e131a029b85045b68181585d97816a916871ca8d30140b193f92396c00000000005b0045000000000000000000000000000000080000000000000001301a8b8043356b83c4341d5e9cfc67071c61c0b053ec979b59ad8c0455b71c9815f88e8c709168c1ab898ca5288423b585331497f16b2c074dcbf76c2480e8c9000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4530644e72e131a029b85045b68181585d97816a916871ca8d30140b193f92396c00000000005b0045000000000000000000000000000000080000000000000001301a8b8043356b83c4341d5e9cfc67071c61c0b053ec979b59ad8c0455b71c9815f88e8c709168c1ab898ca5288423b585331497f16b2c074dcbf76c2480e8c9\n      - :label invalid_g2_subgroup :raw 0x000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd452b0d3f819fd0046aee4d0e54cc759ad714c473bd5f86a0d68df977f7450390f730644e72e131a029b85045ae0000000000000107b55de1642362d16b8fc4dccf2a5c3a27c4a417ea34f627b9481b9004e3b0ef59619daa16e846d8a152d6bf771301a8bb9c71966a4b557a21eea89447294e8a9cc1308f0c8eecb16dfbf5d53b000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4530644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd45000000000000004500000000000000000000000000000000000000000000000107b55de1642362d16b8fc4dccfec9e794d24968511cf8e252ed27afc4d72ca1e0301cb4d7e0b7b52a6a8f78613c403ead1543fedb0d3f28c77685fdb9eaa2742\n      - :label invalid_g2_subgroup :raw 0x000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4530644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd0000000000005b0045000000000000000000000000000000000000000000000001112006831f3f0e121585c21cdf0aaf63f09728bcfee141bb4cd407caae7715e319df1e217ad7b1f874726c6683ab87b423c1737f46a54dc5356a9b617c6b9e28000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4500000000005b004500000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd45218c0cef2a606613357bfaa3c880e71ff8490195337fa26205a21ccd9a6949a313fed2c79add9d85b9949c5852ef8cccf02b69ea6fc4db0d1660ac7b50df39e1\n      - :label invalid_g2_subgroup :raw 0x003db26a0b244fb3fd47f7f5f0f8a289e088fd932d340f0592696503fc62124824c9b9423ef04336563adc35604ba729a4c9e6104bfcb55517e3198b8edbdf981800deef121f1e76426a00665e5c4479674322d4f75edaddde46bd5cd992f6ed198e9393920d483a7260bfb731dd5d25f1aa493335a9e71297e485b7aef312c20b9f1099ecefa8b45575d349b0a6f04c16d0d58af9007f2c6d8bd7aa763a3b0e0b7c77862fe8d10d489a493a1a5c5d0f282c7d4e8148f340653c4b6297a1088f003db26a0b244fb3fd47f7f5f0f8a289e088fd932d340f0592696503fc62124824c9b9423ef04336563adc35604ba729a4c9e6104bfcb55517e3198b8edbdf98198e9393920d483a7260bfb731dd5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed2ba3e0cab22efbfef96e027f1a29ba7ec11a0f824024a3787d3cb8370b9eed71103ce48dac2e3ff691b61c7e4466adf35aa183aade7f15386bf7c789628b1b0e\n      - :label invalid_g2_subgroup :raw 0x0d1e4322f03fa0515f8ed6cb02b15e5a024b5092003dd7792d2ac055f14ac67d155c53a1daa56e3a5e9bd097cebfcd44038f2c606c8951310aae0ea01a44725300000000000000279573fbfe8e6c2300000000000030640472e131a029b85045255495ffba02a0ed6877a0a6ed4684235053c04cc3aaa05934e35bbb953673af0e1cec4c9d6d3921992e4c5c71523f5d097cde90f25b3e6c52c9c63e764a67870fe0cfe24e0b2f78d4f909c9131e3794fa911b1109df4a567b1423475cf409c1000000000000000000000000000000000000000000000000000000000000000030644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4700000000000000000000000000000000000000fcff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000212a3b4059e59d125dd17f662945170e1e13024fae97a401895690acac63cf681aecb67409d1d9c142ffd13375bd79fd0457deb278dfa91b5756378fb837fd60\n      - :label invalid_g2_subgroup :raw 0x0e474956b0fbc11ba65f3c7632afb3c66a98340871cee7c974db4461d8791b8d25410e545457af7bb0e9d2f1f8126180f11dec9bfcf69cd2934e6814741c9aa2231e75fddf7e2fa8b38b7dd6fd13eb4b7046000000000000000000000200650000000000000000000000000000000000000000000000002546ac8393e836a2970d312fc0ac642c207b5b36e17990b4f7d0ef39cfe6f0d46b9c556a0b7935714b1e4cd9fd726048138dcdea456203d4b7414f3ba5ef7b37817aa98874d71c191f2e5efcb149c6a4914b8d85be71e79254f9fdf19f62de2b2f6cc0822e578a420f07fd874051cb395ca999e596047a25fc6bc12cba97dab578f9f903612c1c757f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\n      - :label invalid_g2_subgroup :raw 0x102c9afaa6ac9d2553d0f47e2a945816f56b10014ddcc00ef63f5cda3d1431020db583622c614b32310911623e2f71f7871413d13dc372ace97f1813d2622d590a0e124cd6005b33c8a16492b1b451897b1679f44f3d288585ec8f82b49f6f501579cd1aa3fb1bf108c6b7b5d1f4ae1fae44099a8bf5fddc74d87665e29812ba0d5db514ca1c318cc409bcbf9a75055b1a8e7b783127734d902b6118b518ee962f24a2abda945e843c6952a5f0632365146cfd4e2034b70e41a78772fc404bea102c9afaa6ac9d2553d0f47e2a945816f56b10014ddcc00ef63f5cda3d14310222aecb10b4d054f7874734544351e666106d56c02aae57e052a17403061acfee0a0e124cd6005b33c8a16492b1b451897b1679f44f3d288585ec8f82b49f6f501579cd1aa3fb1bf108c6b7b5d1f4ae1fae44099a8bf5fddc74d87665e29812ba0d5db514ca1c318cc409bcbf9a75055b1a8e7b783127734d902b6118b518ee962f24a2abda945e843c6952a5f0632365146cfd4e2034b70e41a78772fc404bea\n      - :label invalid_g2_subgroup :raw 0x11c8f0ea735e099781f852fb93256540c7c7611ba324f67680f3dbfc00bbdda12d7fb8d83e13afa4ea8a9d8817cd5b7c5b1804aa1006af2a8ab7e9c7757b300c040000002db3759aaff5357156bc2e8d52eacd11efb7d108d3b4034162839a9300000000003000000000000000000000000000000000000000000031000000000649ebc27a3909e089c6023c7ed952098a3e5547ce56e79953929ba4d718f1311c2c7e752e7947b506c14a8300a0d15d9022bd6fba67461cc8a0783dfeba77fb11c8f0ea735e099781f852fb93256540c7c7611ba324f67680f3dbfc00bbdda102e4959aa31df084cdc5a82e69b3fce13c6965e7586b1b62b168a24f6301cd3b040000002db3759aaff5357156bc2e8d52eacd11efb7d108d3b4034162839a9300000000003000000000000000000000000000000000000000000031000000000649ebc27a3909e089c6023c7ed952098a3e5547ce56e79953929ba4d718f1311c2c7e752e7947b506c14a8300a0d15d9022bd6fba67461cc8a0783dfeba77fb\n      - :label invalid_g2_subgroup :raw 0x12ca97e893996e5bb392c57abba4578276654d2856b336b640eafd84de31140e055370544625ea3c3e85a42831dcaf47353695b158149bc2d5bf4061326f089e0e80426227ce5fd647afba497e7ea7a2687e956e978e3572c3df73e9278302b9000000000000000000000000000000000000000000000000000000c451f8749a05602fde384569be9950c3466d0fb40a66a63f202c3a685856cd21c76cea2be70ed4f367e657bc59c785bf6bf6ac33fb4b653e8bd68d1d838e0416e8c47b5f5312ca97e893996e5bb392c57abba4578276654d2856b336b640eafd84de31140e2b10de1e9b0bb5ed79caa18e4fa4a916624ad4e0105d2eca66614bb5a60df4a90e80426227ce5fd647afba497e7ea7a2687e956e978e3572c3df73e9278302b9000000000000000000000000000000000000000000000000000000c451f8749a05602fde384569be9950c3466d0fb40a66a63f202c3a685856cd21c76cea2be70ed4f367e657bc59c785bf6bf6ac33fb4b653e8bd68d1d838e0416e8c47b5f53\n      - :label invalid_g2_subgroup :raw 0x1425b11b4fe47a394dbfc0ad3e99dc93c3e1c0980b9bcb68529ba9de33dbf585168b8cdff7ae7d084fd111608fa03e018b415fd4f0755f7e8f039a2d852bda0e0000000000000000000000000000000000000000000000000000000000005b00149bb18d1ece5fd647afba497e7ea7a2687e956e978e3072c4fc9ec579b809462061ebaffaedc532d8bb542f9d93cae5dc6c4b431833ee0a7be4d053e2e0d60d03c12e282e4442c88f5235d004e8edba3080754ca41c976d03cd332a9b6fa42d1425b11b4fe47a394dbfc0ad3e99dc93c3e1c0980b9bcb68529ba9de33dbf58519d8c192e9832321687f3455f1e11a5c0c400abc77fc6b0ead1cf1e953512339149bb18d1ece5fd647afba497e7ea7a2687e956e978e3572c4fc9ec579b809460000000000000000000000000000000000000000000000000000000000005b0029e864b516b661105d0a2708f21beaae1bf1636608ac53864c4d8f0ea2e7dc3805c3b957caa8f4c5f248e3e6e754304e9ba7e5b6dd3a4ece125f47811a525e65\n      - :label invalid_g2_subgroup :raw 0x1565586940bbb0e082639a1e2c9ecfe96bff6cbda25a93c4d462b8360230067219767d96dd90432f459bf8f6181c9fea507bf7bcd4063fd070fe8e72093e8bf900000000000000000000000000000000000000000000000000000000000000e8000000000000000000000000000000000000000000000000000000000000000023812d70e97cfd777c5cf0b64b18400f3ea88afb56146bfc1f34071eebb0599827352c710f0e1711b5d18e672b5cab3c369cd8d84b70ed159bb712c7d929c8e51565586940bbb0e082639a1e2c9ecfe96bff6cbda25a93c4d462b8360230067216edd0dc03a15cfa72b44cc06964b873470572d4946b8abccb21fda4cf3e714e252b5ec0e7df7df26d0cc46dd811ace847a4174aa634c8d9269ccebb52845d7829a0fe67466554bc0a6c97089dec1ebac672344bc3a69b8fc6904f9b83438cbb24c159cda85a7f7e04f7e128101e8fbe502fee784946ffce0a9174424f0254b22b0c8ac28082e97eae5ee175ae2c1a6e466c7dd693238a386ec80f7743ffc517\n      - :label invalid_g2_subgroup :raw 0x17ac723d48c98fce706845b61c254630acb6da96a9620fc6cd07276a4ef8936d1a515b7e403d2a46bb5387138f17d33c2b12e3d5051f9d22042921f35031035e000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002d8ad25dc006eea79b9c052a6a367b209d5c9215c8a4c325555a7e1e608abed022dd54ed23382326a8df674c7be35d7ac181c9625a10f508dd7fbd109760d76217ac723d48c98fce706845b61c254630acb6da96a9620fc6cd07276a4ef8936d1612f2f4a0f475e2fcfcbea2f26985216c6e86bc63522d6b37f76a23884bf9e9062ca96b10a86be7bc151a74e01170193f2ad046c2f5eb3a25a95592cc3a17752043c18fe0a47868239575b1c3700be7308890370eb6982f4e3e36916ebc28f52b7d22180be2bdca69028c5bf32181d203b2350781d675098b320766f5dcd9b02a21aa3010f604fea531e9264671d546cc94d8a0ddab42b7146573f5c1ed26fb\n      - :label invalid_g2_subgroup :raw 0x1c4189bbfe590521da71e6834b73a622528fd923e9421f18df9a48e9123b16aa15c8e4948927f2e089accb33c8d51b4c83ca69505f4a7801399573273d7439910000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800023ad956e40f22f18bf59310f6d23055f2a3fdc2713f05cf1b099a18041cd498220b15bb64c3c6223098439e4fc7e9b2bd956ed94b2bf1f066c281d41c8560ee51c4189bbfe590521da71e6834b73a622528fd923e9421f18df9a48e9123b16aa1a9b69de5809ad492ea37a82b8ac3d1113b701410927528c028b18ef9b08c3b60000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800023ad956e40f22f18bf59310f6d23055f2a3fdc2713f05cf1b099a18041cd498220b15bb64c3c6223098439e4fc7e9b2bd956ed94b2bf1f066c281d41c8560ee5\n      - :label invalid_g2_subgroup :raw 0x1c934d642c245e76eb0c016b17e8eced3a1cf56ef6d787eace40bc0cb933dea902567d6e1141f67673e6f17a705f3d9764c6d5673f1f93e2ed5a21fd38e9a572000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007700000000000000000000001f3953d0d836a44e15aebef16dd187ccf9493693379fe7d1c5a2cf2deb87f89c0dd737c063475fc587c1574a8ff4e9e4f933118d67bb7ba4a70c79c1ccb0d3441c934d642c245e76eb0c016b17e8eced3a1cf56ef6d787eace40bc0cb933dea92e0dd104cfefa9b34469543c11221ac632ba952a295236aa4ec66a199f9357d5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007700000000000000000000001f3953d0d836a44e15aebef16dd187ccf9493693379fe7d1c5a2cf2deb87f89c0dd737c063475fc587c1574a8ff4e9e4f933118d67bb7ba4a70c79c1ccb0d344\n      - :label invalid_g2_subgroup :raw 0x1ced814234531c29aa14f95e3a3f59657aacea69fa4c35dfa5b8e03c87e8075725c3327a2c4f61437d53abbb2bb75dc1dc4f2427c3e9d7714d5d83dae80697690ec85b4f8a9224b27145b3757b7bf6e7397bc04c8634404d924689e27bb8a261000000000000000000000000000000000000000000000000000000000000bf890e717255b589c7286f7bde23fe6ac9d838262d9e7ba5bc603e410abf27aada5b1760bbdb5183ae4e28f049cfe75fb9600b8fd03e63d9aa1a9bd709d23afbc12f1ced814234531c29aa14f95e3a3f59657aacea69fa4c35dfa5b8e03c87e807570aa11bf8b4e23ee63afc99fb55c9fa9bbb324669a487f31beec3083bf07665de0ec85b4f8a9224b27145b3757b7bf6e7397bc04c8634404d924689e27bb8a261000000000000000000000000000000000000000000000000000000000000bf890e717255b589c7286f7bde23fe6ac9d838262d9e7ba5bc603e410abf27aada5b1760bbdb5183ae4e28f049cfe75fb9600b8fd03e63d9aa1a9bd709d23afbc12f\n      - :label invalid_g2_subgroup :raw 0x1f9d02fa71d0ae244edc79709af68216d99a978a5e8fd92ebe793fff8317aad42cd6a493d88a0a87a6f6818c23fa87ff12fd84e5641e1081e849f6e88a488a4304bb53b8977e5f92a0bc372742c48309445cd3cfa9a62aee49f8130962b4b3b9203e205db4f19b37b60121b83a7333706db86431c6d835849957edf0509de1521f544b5e4ab6d13dcb7e89582aaee12a8410a7c6b2d8a5de7bd83e8cdb1fb1a82baef43e095caaf7c2aca272aee277d1da98d74656f2ca01b833c67dcc08ca5d000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4500000000005b004500000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd45218c0cef2a606613357bfaa3c880e71ff8490195337fa26205a21ccd9a6949a313fed2c79add9d85b9949c5852ef8cccf02b69ea6fc4db0d1660ac7b50df39e1\n      - :label invalid_g2_subgroup :raw 0x225fdab8fe6cd876363d27075cdf0d01c209da61b1634b574a5d811cfae407001216b7c3e2adc07c3bef31771c7bb9e1d02f07ff3a5b74953c4fd5bf9a7a6dff25f63fcc543337b8f6275f97d6479633b921541a96e0f2acaf901bc25db7407c206776f9480168741eca625c06e5526b4664a02ce664bc656f39664d96278b6e1e40e8084fd648ba315f691e8367be1d4c13844421c87223d84829c31a0d7afe24b8042d4cb604ae66c0dc97ca8a9c2d22c743335d92bc401700f6b00d5cdc5b2a4f1dbc9fe6d2882462fb11afeae7b7f2a0cf213b1f19c45cb222336283f3801141763c897c9a90e387ea80f68eb88c2d79aab680196d9538cd2ca632a5e81b0e540f5b5be91f82ed05349750761224f543068ce30d2d5e838bf66866f345200fa5ac8c46f725e54505019bda3356ef6e35b0a89b9b4f79bb0c62211235c9312e6d97a1f7e0428fc0be6be02c811095f5166710dcbe869c36a8ef89cac63e012657bbaf3bcfd106dd677eef03172f693a6c919776f441dc0fd47a4bd91d0487\n      - :label invalid_g2_subgroup :raw 0x22847a3cd1cb28b60a51b54991d6dd86d206aa12b3873942c45a120b2e63a49226c3889c7b08d9288f13f64e6e3f166c59f57b5c014cbecf815a4aba4ebabbfb2e91f2b0f4f7a42c870fe8f6236ec1042bdeb2586a641808a5e09019514e83a02b078a1f12cb5426b6bcfeb9548566afb4bdf7454190eaf97f63e210f3a94ce1008a9ede8dde2c849793027433d90c626bc326bdc248dc223f537f7152955dac00b319b7060ad49091d9b52015b4ae8085bf6739b7f5a2c098c2f113ff33806a22847a3cd1cb28b60a51b54991d6dd86d206aa12b3873942c45a120b2e63a49226c3889c7b08d9288f13f64e6e3f166c59f57b5c014cbecf815a4aba4ebabbfb2e91f2b0f4f7a42c870fe8f6236ec1042bdeb2586a641808a5e09019514e83a02b078a1f12cb5426b6bcfeb9548566afb4bdf7454190eaf97f63e210f3a94ce1008a9ede8dde2c849793027433d90c626bc326bdc248dc223f537f7152955dac00b319b7060ad49091d9b52015b4ae8085bf6739b7f5a2c098c2f113ff33806a\n      - :label invalid_g2_subgroup :raw 0x26581613e6c802822867d2b3a0867fd7fd8cea503764ae1a9d01ec0d5364d1be0530ae3d4fe87ac76da4382835135ac0aec9b1ecd0705cf84c21b48327eade5407a13e1be6f9072893c0e5bb528c5cc22dd6370308dda1613068e064c6e5d15a067239c795d2ea27b85d93e54fc221d81e9de3ebc8e43c20d63608e7078fab6822fa7ea234e21aec74f4db0b365ae1e7cc6e7f4aac89bc460d0308b83399be8627705b19388ebeddbd35a5ce72830ec07e3f1bca3f4e9fdc0aebaab5a1fe91b126581613e6c802822867d2b3a0867fd7fd8cea503764ae1a9d01ec0d5364d1be2b33a035914925624aac0d8e4c6dfd9ce8b7b8a498016d94effed793b0921ef307a13e1be6f9072893c0e5bb528c5cc22dd6370308dda1613068e064c6e5d15a067239c795d2ea27b85d93e54fc221d81e9de3ebc8e43c20d63608e7078fab6822fa7ea234e21aec74f4db0b365ae1e7cc6e7f4aac89bc460d0308b83399be8627705b19388ebeddbd35a5ce72830ec07e3f1bca3f4e9fdc0aebaab5a1fe91b1\n      - :label invalid_g2_subgroup :raw 0x28100e22df4dc1c6bf8801f63ffdef2af6bfb80147994395be6dc792479ca4f517414e05ac69d56dec03e0af314645b463414a7d831aff54459b6d409351a5a400002851fd14fbaa7fd586e3039a2d9fa136c42685cb2b5904bf0591b95b52fc000000000000000000000000000000000000000000000000000000000000000024d852a54e2d52ffc43b2e4f1993fd159ae7ec19af2f3ad548f6daa33bd0de310b0fabbc2f33ea444e5f3c92269f11fc30c048463973a914a6787dbd616e703e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\n      - :label invalid_g2_subgroup :raw 0x299a5917adb7b45c30cea045edaa623f5036280df176f4a2c751ca728c2c9e3a2bedf30ba7d8bd0814e9d091913ea5bc6a4b60ee993e949507832df60190651900000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000213d689af09b7f52ac4a04c34bcdb2f90521b1cd213edcfe48fa3063520b6be22ef0f3110ea3051248e907221493e6c2943ebe8d70794188a515ec23df5d9b2b299a5917adb7b45c30cea045edaa623f5036280df176f4a2c751ca728c2c9e3a04765b673958e321a3667524f042b2a12d3609a2cf3335f8349d5e20d6ec982e00000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000213d689af09b7f52ac4a04c34bcdb2f90521b1cd213edcfe48fa3063520b6be22ef0f3110ea3051248e907221493e6c2943ebe8d70794188a515ec23df5d9b2b\n      - :label invalid_g2_subgroup :raw 0x2deb529e45720f20be41088dfd7489c315e9e18fe23dd1c8a8183295dc770dee1090b3fcd1898780c332b7d73a602cadd1b26029124db9da19941250eda890b500000000000000000000000000ff0a69a42c284614e3d7de26b3f9b2f3c71ff600000000000000000000000000000000000000000000000000000000000000001e2c7f9d6a525b6af5dad683c5e6408661da29780860c3209b2dddcad5a88795033123665850406fc2428227bbb3509fc71c911cf41623de1605cd3e0a281b902deb529e45720f20be41088dfd7489c315e9e18fe23dd1c8a8183295dc770dee1090b3fcd1898780c332b7d73a602cadd1b26029124db9da19941250eda890b5000000000000000000000000000000000000000000275680008ded35ba000000000000000000000000000000000000000000000000000000000000000000000019367fe97b92d85d7c29090c2313de1a85f030239cfa71f939a197249cb17b890465a8498153883aca20e4de66ac02b1b6957fab9b4bce71df334cd6bee5ff95\n      - :label invalid_g2_subgroup :raw 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005908648c919b2bd65122716e5e4aa74fb342e22eeb59635c84bb4e20e34da7230644e72e131a0296427b6542e3a6a00ccfa1d43577c305499096bbd8414f16c0df67cf39cb400a898e9aa727937ca9e07d92185f3fba6aa42be45ddad4fdadb145da376a6ec6d77185df39edde6e9037e58065a054cda2796f4e669bcdcbf1f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005908648c919b2bd65122716e5e4aa74fb342e22eeb59635c84bb4e20e34da7230644e72e131a0296427b6542e3a6a00ccfa1d43577c305499096bbd8414f16c0df67cf39cb400a898e9aa727937ca9e07d92185f3fba6aa42be45ddad4fdadb145da376a6ec6d77185df39edde6e9037e58065a054cda2796f4e669bcdcbf1f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005908648c919b2bd65122716e5e4aa74fb342e22eeb59635c84bb4e20e34da7230644e72e131a0296427b6542e3a6a00ccfa1d43577c305499096bbd8414f16c0df67cf39cb400a898e9aa727937ca9e07d92185f3fba6aa42be45ddad4fdadb145da376a6ec6d77185df39edde6e9037e58065a054cda2796f4e669bcdcbf1f\n      - :label invalid_g2_subgroup :raw 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21a76dae6d3272396d0cbe61fced2bc532edac647851e3ac53ce1cc9c7e645a8305b993046905746641a19b500ebbbd30cf0068a845bfbee9de55b8fe57d1dee8243ef33537f73ef4ace4279d86344d93a5dc8c20c69045865c0fa3b92493387900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21a76dae6d3272396d0cbe61fced2bc532edac647851e3ac53ce1cc9c7e645a8305b993046905746641a19b500ebbbd30cf0068a845bfbee9de55b8fe57d1dee8243ef33537f73ef4ace4279d86344d93a5dc8c20c69045865c0fa3b92493387900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21a76dae6d3272396d0cbe61fced2bc532edac647851e3ac53ce1cc9c7e645a8305b993046905746641a19b500ebbbd30cf0068a845bfbee9de55b8fe57d1dee8243ef33537f73ef4ace4279d86344d93a5dc8c20c69045865c0fa3b924933879\n      - :label invalid_g2_subgroup :raw 0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000005b004500000000000000000000000000000000000000000000000830644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d81702c919c023ce224a0c0b121dd4f578b39e0ddf00a55580b03265cb32fcb623bbf778240f6bf16b9a25500a02b09fbe8abfa933f9ee09effb104d712baf573463ef8c000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4500000000005b004500000000000000000000000000000000000000000000000830644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d81702c919c023ce224a0c0b121dd4f578b39e0ddf00a55580b03265cb32fcb623bbf778240f6bf16b9a25500a02b09fbe8abfa933f9ee09effb104d712baf573463ef8c000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4500000000005b004500000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd45218c0cef2a606613357bfaa3c880e71ff8490195337fa26205a21ccd9a6949a313fed2c79add9d85b9949c5852ef8cccf02b69ea6fc4db0d1660ac7b50df39e1\n      - :label invalid_g2_subgroup :raw 0x000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020d7d3be95c6b1fc7d70f2edc7b7bf6e7397bc04bc6aaa0584b9e5bbc064de4fa30644e72e131a029b85045b68181585d97816a9168543fedb0d3f28c77685fdb10fb4e584f10053cba1117d920db188f54d1ab64e66e10b6177401a44c71e25020f50c6423205b18d96cdf7a832041d89076cf36dcde6700e62833186acd60b6000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd450d7d3be95c6b1fc7d70f2edc7b7bf6e7397bc04bc6aaa0584b9e5bbc064de4fa30644e72e131a029b85045b68181585d97816a9168543fedb0d3f28c77685fdb10fb4e584f10053cba1117d920db188f54d1ab64e66e10b6177401a44c71e25020f50c6423205b18d96cdf7a832041d89076cf36dcde6700e62833186acd60b6000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020d7d3be95c6b1fc7d70f2edc7b7bf6e7397bc04bc6aaa0584b9e5bbc064de4fa30644e72e131a029b85045b68181585d97816a9168543fedb0d3f28c77685fdb10fb4e584f10053cba1117d920db188f54d1ab64e66e10b6177401a44c71e25020f50c6423205b18d96cdf7a832041d89076cf36dcde6700e62833186acd60b6\n      - :label invalid_g2_subgroup :raw 0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000230644e72e131a029b85045b68181585d97816a68917120ca8d3c8c16d87cfd4500000000005b004500000000000000000000000000000000000000004000000111ee2be185fb562c979eeb452df376f91c7852bfb8a6d5727024444a2fc58c152825d78e66be7952503e9e1bf2d8aad4c39f4ce4095349043106508bab20d6e5000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4530644e72e131a029b85045b68181585d97816a68917120ca8d3c8c16d87cfd4500000000005b004500000000000000000000000000000000000000004000000111ee2be185fb562c979eeb452df376f91c7852bfb8a6d5727024444a2fc58c152825d78e66be7952503e9e1bf2d8aad4c39f4ce4095349043106508bab20d6e5000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4530644e72e131a029b85045b68181585d97816a68917120ca8d3c8c16d87cfd4500000000005b004500000000000000000000000000000000000000004000000111ee2be185fb562c979eeb452df376f91c7852bfb8a6d5727024444a2fc58c152825d78e66be7952503e9e1bf2d8aad4c39f4ce4095349043106508bab20d6e5\n      - :label invalid_g2_subgroup :raw 0x000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4530644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd45000000000000004500000000000000000000000000000000000000000000000107b55de1642362d16b8fc4dccfec9e794d24968511cf8e252ed27afc4d72ca1e0301cb4d7e0b7b52a6a8f78613c403ead1543fedb0d3f28c77685fdb9eaa2742000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4530644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd45000000000000004500000000000000000000000000000000000000000000000107b55de1642362d16b8fc4dccfec9e794d24968511cf8e252ed27afc4d72ca1e0301cb4d7e0b7b52a6a8f78613c403ead1543fedb0d3f28c77685fdb9eaa2742000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4530644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd45000000000000004500000000000000000000000000000000000000000000000107b55de1642362d16b8fc4dccfec9e794d24968511cf8e252ed27afc4d72ca1e0301cb4d7e0b7b52a6a8f78613c403ead1543fedb0d3f28c77685fdb9eaa2742\n      - :label invalid_g2_subgroup :raw 0x0272af94b7aeb772c1666db65ff3987fd8ec43b8454aad395232b5eef18ca2c51d5fc6b50ef577096ec2489356e8ecccd5ed5a144928c5338af5549701dbb40d255495ffba02a0ed6877a0a6ed658c93a1487a3319aaa05934e35bbb953673af00000000000000279573fbfe8e6c2300000000000030640472e131a029b85045090d17c2eaeda0d61dd0442997d161e176fb98a27091fe8b6b5746fe2f344a0f26f1f16556d24506af1fd1c8cb4b3b6dfa73e2ce958c50e3b937fd59a1df623f0272af94b7aeb772c1666db65ff3987fd8ec43b8454aad395232b5eef18ca2c5130487bdd23c2920498dfd232a986b90c194107d1f490559b12b377fd6a1493a255495ffba02a0ed6877a0a6ed658c93a1487a3319aaa05934e35bbb953673af00000000000000279573fbfe8e6c2300000000000030640472e131a029b85045090d17c2eaeda0d61dd0442997d161e176fb98a27091fe8b6b5746fe2f344a0f26f1f16556d24506af1fd1c8cb4b3b6dfa73e2ce958c50e3b937fd59a1df623f000000000000000000000000000000000000000000000000000000000000000030644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4700000000000000000000000000000000000000fcff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000212a3b4059e59d125dd17f662945170e1e13024fae97a401895690acac63cf681aecb67409d1d9c142ffd13375bd79fd0457deb278dfa91b5756378fb837fd60\n      - :label invalid_g2_subgroup :raw 0x17956b549321b92c524d191a62b90c81f08e694af4dceb00a80094e53120d39e2fd15d78815388959caa54affa2d7b2c8d52c528e6a1f6c0a50fcf0498fac7ee30644e72e131a0290000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000016b9e28a32ee61a7ad5bd4bad29d64fc35a8fb46b510be2067907069497ae1f0c3c07c40f41a731fe27d953f1154b4e9a8acf3ef44608817150de0df916503a17956b549321b92c524d191a62b90c81f08e694af4dceb00a80094e53120d39e2fd15d78815388959caa54affa2d7b2c8d52c528e6a1f6c0a50fcf0498fac7ee30644e72e131a0290000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000016b9e28a32ee61a7ad5bd4bad29d64fc35a8fb46b510be2067907069497ae1f0c3c07c40f41a731fe27d953f1154b4e9a8acf3ef44608817150de0df916503a17956b549321b92c524d191a62b90c81f08e694af4dceb00a80094e53120d39e2fd15d78815388959caa54affa2d7b2c8d52c528e6a1f6c0a50fcf0498fac7ee30644e72e131a0290000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000016b9e28a32ee61a7ad5bd4bad29d64fc35a8fb46b510be2067907069497ae1f0c3c07c40f41a731fe27d953f1154b4e9a8acf3ef44608817150de0df916503a\n      - :label invalid_g2_subgroup :raw 0x1bbefdb0536c0996d663a908adc2cae17180c53d971e73fe234a6927cd10da332481152785517c274b2dc4ab7b6cacbbdc7d7b8e4dd396faa05a119761130e5c039a49879c785fd647afba497e7ea7a2687e956e978e3572c3df73e9278302b9194b9757129492217d64c4b267e5e935137ae3859ec8b99cf6e6dc61ca90bdfd1c67b6b637c528053a25079e25734a67ffc5388209d11839b3ff1f92591c81ee09750d9bc6fdb71f16e6a69eea50e7288aac1c25a5cd674ca9c57d8ac06fac691bbefdb0536c0996d663a908adc2cae17180c53d971e73fe234a6927cd10da330be3394b5be024026d22810b0614aba1bb03ef031a9e33929bc67a7f7769eeeb039a49879c785fd647afba497e7ea7a2687e956e978e3572c3df73e9278302b9194b9757129492217d64c4b267e5e935137ae3859ec8b99cf6e6dc61ca90bdfd1c67b6b637c528053a25079e25734a67ffc5388209d11839b3ff1f92591c81ee09750d9bc6fdb71f16e6a69eea50e7288aac1c25a5cd674ca9c57d8ac06fac6929a0d6d5e7d14a774c3abff1435361da2ee5d8b4f3ee62085ce779f248b41d4a2fd37ae5468f6a17b7f9a0bcca02ee128bdced61402a566e4eee2d0fa825f03d198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\n      - :label invalid_g2_subgroup :raw 0x299a5917adb7b45c30cea045edaa623f5036280df176f4a2c751ca728c2c9e3a2bedf30ba7d8bd0814e9d091913ea5bc6a4b60ee993e949507832df60190651900000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000213d689af09b7f52ac4a04c34bcdb2f90521b1cd213edcfe48fa3063520b6be22ef0f3110ea3051248e907221493e6c2943ebe8d70794188a515ec23df5d9b2b299a5917adb7b45c30cea045edaa623f5036280df176f4a2c751ca728c2c9e3a04765b673958e321a3667524f042b2a12d3609a2cf3335f8349d5e20d6ec982e00000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000213d689af09b7f52ac4a04c34bcdb2f90521b1cd213edcfe48fa3063520b6be22ef0f3110ea3051248e907221493e6c2943ebe8d70794188a515ec23df5d9b2b299a5917adb7b45c30cea045edaa623f5036280df176f4a2c751ca728c2c9e3a2bedf30ba7d8bd0814e9d091913ea5bc6a4b60ee993e949507832df60190651900000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000213d689af09b7f52ac4a04c34bcdb2f90521b1cd213edcfe48fa3063520b6be22ef0f3110ea3051248e907221493e6c2943ebe8d70794188a515ec23df5d9b2b\n      - :label invalid_g2_subgroup :raw 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080a77c09a07dfaf666ea36f7879462c0a78eb28f5c70b5ed35d438dc58f0d9d058bcabf53ccb1b6f2ad14e6bc531485dba856600b7941c8c5a4968940fba978210dc371bfd9736eb879d25be8a799eff45bea91130b9b2768689786235accd9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n      - :label invalid_g2_subgroup :raw 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800104e7500000000000000000000000000000000000000000000000000000000000000000a535bc14c0f581a039d0bfb15e730b6bbb3d6e33ecda8c74ebd901deeb4ef8423e99eadcc72ced9221df2db154b36f6931270c3f21f4ec8c4206b9211924bb203a99966a8db46602ac05b8f0d7669c3bc066fb7b9a188cc79e5239e27e3580517e54f1fff192038a907711c8123997f785d2c2c9a214355466b60652ee53e4d00c662006274fb346e22eeb59635c82cb4e20e34da7230644e72e131c82cb4e2000000104e75a20b64000000000000000000150000000000000000006629c731270ef2ea6f8c3dad3832f95f309cb6a1591ad53af025c6e0809992f15234e5fe1b37771ce3bb5a62017c56c496e57673e2617634e900c587724d21f24e603a6303a99966a8db46602ac05b8f0d7669c3bc066fb7b9a188cc79e5239e27e35805187eff52e2187ff10f48d49a005dbede1f243e64ce508737f5b52bb1a997befa000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bf0000000000000000001284bdd8e69832b232222d3493a6abb523575be2a5af6e88f5501cef408aa5bb0ca4d5b3c58e0bc7be2c8885e53c673b54f3057cff97cb1020cb2f5a9f61affb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000\n      - :label invalid_g2_subgroup :raw 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005908648c919b2bd65122716e5e4aa74fb342e22eeb59635c84bb4e20e34da7230644e72e131a0296427b6542e3a6a00ccfa1d43577c305499096bbd8414f16c0df67cf39cb400a898e9aa727937ca9e07d92185f3fba6aa42be45ddad4fdadb145da376a6ec6d77185df39edde6e9037e58065a054cda2796f4e669bcdcbf1f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005908648c919b2bd65122716e5e4aa74fb342e22eeb59635c84bb4e20e34da7230644e72e131a0296427b6542e3a6a00ccfa1d43577c305499096bbd8414f16c0df67cf39cb400a898e9aa727937ca9e07d92185f3fba6aa42be45ddad4fdadb145da376a6ec6d77185df39edde6e9037e58065a054cda2796f4e669bcdcbf1f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005908648c919b2bd65122716e5e4aa74fb342e22eeb59635c84bb4e20e34da7230644e72e131a0296427b6542e3a6a00ccfa1d43577c305499096bbd8414f16c0df67cf39cb400a898e9aa727937ca9e07d92185f3fba6aa42be45ddad4fdadb145da376a6ec6d77185df39edde6e9037e58065a054cda2796f4e669bcdcbf1f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005908648c919b2bd65122716e5e4aa74fb342e22eeb59635c84bb4e20e34da7230644e72e131a0296427b6542e3a6a00ccfa1d43577c305499096bbd8414f16c0df67cf39cb400a898e9aa727937ca9e07d92185f3fba6aa42be45ddad4fdadb145da376a6ec6d77185df39edde6e9037e58065a054cda2796f4e669bcdcbf1f\n      - :label invalid_g2_subgroup :raw 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21a76dae6d3272396d0cbe61fced2bc532edac647851e3ac53ce1cc9c7e645a8305b993046905746641a19b500ebbbd30cf0068a845bfbee9de55b8fe57d1dee8243ef33537f73ef4ace4279d86344d93a5dc8c20c69045865c0fa3b92493387900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21a76dae6d3272396d0cbe61fced2bc532edac647851e3ac53ce1cc9c7e645a8305b993046905746641a19b500ebbbd30cf0068a845bfbee9de55b8fe57d1dee8243ef33537f73ef4ace4279d86344d93a5dc8c20c69045865c0fa3b92493387900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21a76dae6d3272396d0cbe61fced2bc532edac647851e3ac53ce1cc9c7e645a8305b993046905746641a19b500ebbbd30cf0068a845bfbee9de55b8fe57d1dee8243ef33537f73ef4ace4279d86344d93a5dc8c20c69045865c0fa3b92493387900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21a76dae6d3272396d0cbe61fced2bc532edac647851e3ac53ce1cc9c7e645a8305b993046905746641a19b500ebbbd30cf0068a845bfbee9de55b8fe57d1dee8243ef33537f73ef4ace4279d86344d93a5dc8c20c69045865c0fa3b924933879\n      - :label invalid_g2_subgroup :raw 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030644e72e131a0290000000000000000000000000000000040000000000000000001000000000000000000000000000000000000000017f66b9111253405000006f2a18a982e6e9436f171f8bcdb4f60b9ea1dafaf115f9228e11ddd98ca9680304502b9c299712d0cf851e73adc8ce68c549a5b2ae712a44811db357d3bdb9717956b549321b92c524d191a62b90c81f08e694af4dceb00a80094e53120d39e2fd15d78815388959caa54affa2d7b2c8d52c528e6a1f6c0a50fcf0498fac7ee30644e72e131a0290000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000016b9e28a32ee61a7ad5bd4bad29d64fc35a8fb46b510be2067907069497ae1f0c3c07c40f41a731fe27d953f1154b4e9a8acf3ef44608817150de0df916503a17956b549321b92c524d191a62b90c81f08e694af4dceb00a80094e53120d39e2fd15d78815388959caa54affa2d7b2c8d52c528e6a1f6c0a50fcf0498fac7ee30644e72e131a0290000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000016b9e28a32ee61a7ad5bd4bad29d64fc35a8fb46b510be2067907069497ae1f0c3c07c40f41a731fe27d953f1154b4e9a8acf3ef44608817150de0df916503a17956b549321b92c524d191a62b90c81f08e694af4dceb00a80094e53120d39e2fd15d78815388959caa54affa2d7b2c8d52c528e6a1f6c0a50fcf0498fac7ee30644e72e131a0290000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000016b9e28a32ee61a7ad5bd4bad29d64fc35a8fb46b510be2067907069497ae1f0c3c07c40f41a731fe27d953f1154b4e9a8acf3ef44608817150de0df916503a\n      - :label invalid_g2_subgroup :raw 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030644e72e131a029b85045b68181585d977f9597358c206e72c88c16e622b8b2000000000000004500000000000000000000000107b55de1642362d16b8fc4dc2a314eca6adb97bf3a3872a406ecf97bf2bdd210b6cba667eba043f71c1ffc200ba9caa5888ae7c0e6d2b54181905e66769d9ed9badc43da3d9f3e56b46cb43b0acfd59a153bdc736907cc4a640a2fb675cdaa8066a58616537ce4cd7145aa061b1d6bf901bda3c5e3df60e3741d6f5d6660f4034e2f99545e0dc71e9b53af2c30644e72e131a029b85045b68181585d977f956e978c3572c8208c166622b8b2000000000000004500000000000000000000000107b55de1642362d16b8fc4dc2ad9bb009c15bdc11d5ed75a805d5f24ba0e10e5b7953e281e241f72d208ce880d6f072450fd6ef76dd73ff2924238cbee09ea4c6281b867a897d85d8d091b330acfd59a153bdc736907cc4a640a2fb675cdaa8066a58616537ce4cd7145aa061b1d6bf901bda3c5e3df60e3741d6f5d6660f4034e2f99545e0dc71e9b53af2c30644e72e131a029b85045b68181585d977f956e978c3572c8208c166622b8b2000000000000004500000000000000000000000107b55de1642362d16b8fc4dc2ad9bb009c15bdc11d5ed75a805d5f24ba0e10e5b7953e281e241f72d208ce880d6f072450fd6ef76dd73ff2924238cbee09ea4c6281b867a897d85d8d091b330acfd59a153bdc736907cc4a640a2fb675cdaa8066a58616537ce4cd7145aa061546e279df73fc63d470e4d30d63e9003120768e1a423138de12c4f83d294e1b30644e72e131a029b85045b68181585d977f956e978c3572c8208c166622b8b2000000000000004500000000000000000000000107b55de1642362d16b8fc4dc2ad9bb009c15bdc11d5ed75a805d5f24ba0e10e5b7953e281e241f72d208ce880d6f072450fd6ef76dd73ff2924238cbee09ea4c6281b867a897d85d8d091b33\n      - :label invalid_g2_subgroup :raw 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4500000000000000000000000000000000000000000000000000000000000000020833e47a2eaa8bbe12d33b2da1a4fa8d763f5c567fe0da6c5c9da2e246f2096f28dc125bf7443bc1826c69fe4c7bf30c26ec60882350e784c4848c822726eb431a5d389ca17607c4b12d7f1c8463b960754dbbb74ee00f645ca559f5ee759ad5231fdb414002b25ebeed48fd799214f4db09a7dae25ac92c15b7e429e1800a70297861ced3673fa135f178751f203f13d8a4c9f15ad9fdbb4bb7468154af97f71698710af2efbde1687bc1530e7da2ca42c8e85baf594682890d36c8fb8d08f9106f1d083223bd63d1630baf008588ac9c0392c289c68afee37b013030a9f7d10128036f1a405f40bce08bc346f0f83cb8ca2fe81d18fdfffa984c97cef373580000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4500000000000000000000000000000000000000000000000000000000000000020833e47a2eaa8bbe12d33b2da1a4fa8d763f5c567fe0da6c5c9da2e246f2096f28dc125bf7443bc1826c69fe4c7bf30c26ec60882350e784c4848c822726eb431c251d57a884434484d488b3fa5bb0b0d8566a251bfa57cdcfa452ee114a19601bcd6dec5e0b17fb9bb77b1145793cd6a99534de85911f41c37934fc6f1f508e203e205db4f19b37b60121b83a7333706db86431c6d835849957ed8c3928ad7927dc7234fd11d3e8c36c59277c3e6f149d5cd3cfa9a62aee49f8130962b4b3b9195e8aa5b7827463722b8c15393157ad3505566b4edf48d498e185f0509de15204bb53b8977e5f92a0bc372742c4830944a59b4fe6b1c0466e2a6dad122b5d2e\n      - :label invalid_g2_subgroup :raw 0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000005b004500000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd45218c0cef2a606613357bfaa3c880e71ff8490195337fa26205a21ccd9a6949a313fed2c79add9d85b9949c5852ef8cccf02b69ea6fc4db0d1660ac7b50df39e1000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4500000000005b004500000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd45218c0cef2a606613357bfaa3c880e71ff8490195337fa26205a21ccd9a6949a313fed2c79add9d85b9949c5852ef8cccf02b69ea6fc4db0d1660ac7b50df39e1000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4500000000005b004500000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd45218c0cef2a606613357bfaa3c880e71ff8490195337fa26205a21ccd9a6949a313fed2c79add9d85b9949c5852ef8cccf02b69ea6fc4db0d1660ac7b50df39e1000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4500000000005b004500000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd45218c0cef2a606613357bfaa3c880e71ff8490195337fa26205a21ccd9a6949a313fed2c79add9d85b9949c5852ef8cccf02b69ea6fc4db0d1660ac7b50df39e1\n      - :label invalid_g2_subgroup :raw 0x000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020d7d3be95c6b1fc7d70f2edc7b7bf6e7397bc04bc6aaa0584b9e5bbc064de4fa30644e72e131a029b85045b68181585d97816a9168543fedb0d3f28c77685fdb10fb4e584f10053cba1117d920db188f54d1ab64e66e10b6177401a44c71e25020f50c6423205b18d96cdf7a832041d89076cf36dcde6700e62833186acd60b6000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020d7d3be95c6b1fc7d70f2edc7b7bf6e7397bc04bc6aaa0584b9e5bbc064de4fa30644e72e131a029b85045b68181585d97816a9168543fedb0d3f28c77685fdb10fb4e584f10053cba1117d920db188f54d1ab64e66e10b6177401a44c71e25020f50c6423205b18d96cdf7a832041d89076cf36dcde6700e62833186acd60b6000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020d7d3be95c6b1fc7d70f2edc7b7bf6e7397bc04bc6aaa0584b9e5bbc064de4fa30644e72e131a029b85045b68181585d97816a9168543fedb0d3f28c77685fdb10fb4e584f10053cba1117d920db188f54d1ab64e66e10b6177401a44c71e25020f50c6423205b18d96cdf7a832041d89076cf36dcde6700e62833186acd60b6000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020d7d3be95c6b1fc7d70f2edc7b7bf6e7397bc04bc6aaa0584b9e5bbc064de4fa30644e72e131a029b85045b68181585d97816a9168543fedb0d3f28c77685fdb10fb4e584f10053cba1117d920db188f54d1ab64e66e10b6177401a44c71e25020f50c6423205b18d96cdf7a832041d89076cf36dcde6700e62833186acd60b6\n      - :label invalid_g2_subgroup :raw 0x000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd451800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21cc9a9eb823f8d97adee0206828c9f19eaf8f536c23207d68ae3d056a1480bb21990ddb90388b94f31089d3b4ff594d5449c04fcdf2a3681017b5d7749367ba1000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd451800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21cc9a9eb823f8d97adee0206828c9f19eaf8f536c23207d68ae3d056a1480bb21990ddb90388b94f31089d3b4ff594d5449c04fcdf2a3681017b5d7749367ba1000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd451800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21cc9a9eb823f8d97adee0206828c9f19eaf8f536c23207d68ae3d056a1480bb21990ddb90388b94f31089d3b4ff594d5449c04fcdf2a3681017b5d7749367ba1000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd451800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21cc9a9eb823f8d97adee0206828c9f19eaf8f536c23207d68ae3d056a1480bb21990ddb90388b94f31089d3b4ff594d5449c04fcdf2a3681017b5d7749367ba1\n      - :label invalid_g2_subgroup :raw 0x000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4530644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4500000000000000000000000000000000000000000000000000000000000000020833e47a2eaa8bbe12d33b2da1a4fa8d763f5c567fe0da6c5c9da2e246f2096f28dc125bf7443bc1826c69fe4c7bf30c26ec60882350e784c4848c822726eb430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4500000000000000000000000000000000000000000000000000000000000000020833e47a2eaa8bbe12d33b2da1a4fa8d763f5c567fe0da6c5c9da2e246f2096f28dc125bf7443bc1826c69fe4c7bf30c26ec60882350e784c4848c822726eb43000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4530644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4500000000000000000000000000000000000000000000000000000000000000020833e47a2eaa8bbe12d33b2da1a4fa8d763f5c567fe0da6c5c9da2e246f2096f28dc125bf7443bc1826c69fe4c7bf30c26ec60882350e784c4848c822726eb430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4500000000000000000000000000000000000000000000000000000000000000020833e47a2eaa8bbe12d33b2da1a4fa8d763f5c567fe0da6c5c9da2e246f2096f28dc125bf7443bc1826c69fe4c7bf30c26ec60882350e784c4848c822726eb43\n      - :label invalid_g2_subgroup :raw 0x01ea6e2eae2a2501d6830a3f5ea1353a5f920719aaeeea537dde0df31bec7a802b40433b22aaaec8f6d6d21dc04994ab99ba4a4b16545f63430a6ecf01881e090000000004000000000000000000000000000000000000000000000000000000196ec634c6397f591ebee925f9fa9e89a1fa55ba5e38d5cb0f7dcfa49e0c0ae4260377b5b8fed1c2f2a2f848038464ffc8c3bd1d71844fcc85f64b478248b21d0990a17d0f06d3bb026b17967cc55b2160d7570fde6a448502bd28e8192db67e01ea6e2eae2a2501d6830a3f5ea1353a5f920719aaeeea537dde0df31bec7a8005240b37be86f160c1797398c137c3b1fdc72046521d6b29f9161d47d6f4df3e0000000004000000000000000000000000000000000000000000000000000000196ec634c6397f591ebee925f9fa9e89a1fa55ba5e38d5cb0f7dcfa49e0c0ae4260377b5b8fed1c2f2a2f848038464ffc8c3bd1d71844fcc85f64b478248b21d0990a17d0f06d3bb026b17967cc55b2160d7570fde6a448502bd28e8192db67e000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020d7d3be95c6b1fc7d70f2edc7b7bf6e7397bc04bc6aaa0584b9e5bbc064de4fa30644e72e131a029b85045b68181585d97816a9168543fedb0d3f28c77685fdb10fb4e584f10053cba1117d920db188f54d1ab64e66e10b6177401a44c71e25020f50c6423205b18d96cdf7a832041d89076cf36dcde6700e62833186acd60b6000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020d7d3be95c6b1fc7d70f2edc7b7bf6e7397bc04bc6aaa0584b9e5bbc064de4fa30644e72e131a029b85045b68181585d97816a9168543fedb0d3f28c77685fdb10fb4e584f10053cba1117d920db188f54d1ab64e66e10b6177401a44c71e25020f50c6423205b18d96cdf7a832041d89076cf36dcde6700e62833186acd60b6\n      - :label invalid_g2_subgroup :raw 0x03a99966a8db46602ac05b8f0d7669c3bc066fb7b9a188cc79e5239e27e35805187eff52e2187ff10f48d49a005dbede1f243e64ce508737f5b52bb1a997befa000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bf0000000000000000001284bdd8e69832b232222d3493a6abb523575be2a5af6e88f5501cef408aa5bb0ca4d5b3c58e0bc7be2c8885e53c673b54f3057cff97cb1020cb2f5a9f61affb03a99966a8db46602ac05b8f0d7669c3bc066fb7b9a188cc79e5239e27e3580517e54f1fff192038a907711c8123997f785d2c2c9a214355466b60652ee53e4d00c662006274fb346e22eeb59635c82cb4e20e34da7230644e72e131c82cb4e2000000104e75a20b64000000000000000000150000000000000000006629c731270ef2ea6f8c3dad3832f95f309cb6a1591ad53af025c6e0809992f15234e5fe1b37771ce3bb5a62017c56c496e57673e2617634e900c587724d21f24e603a630000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800104e75a20b641566a0c71c9069a5256391aa31e22021d36c037c108dfb79c66200bf257ae3d66a589214f980a2ae34f9544be2fcbcc13b21f4c1642f31aa4d20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000\n      - :label invalid_g2_subgroup :raw 0x0cdc335fa81dff303b71cffb0256d7097c2b4c6715ca7b1589ea9386a41c2f851e4077b7c1f3374bbd4750ed222848c47501b40fc4c11eadd3c39aeafa452459000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000001f1cd7f247f2ae1ba9a1aeb4b32ed4c8c13c70c8861b6ab5340e276c58e1046b13d7de2b557e0ae2b53380ad596ba79f07c037c9d9aa17cf407e9ed86201436e0cdc335fa81dff303b71cffb0256d7097c2b4c6715ca7b1589ea9386a41c2f851223d6bb1f3e68ddfb08f4c95f590f99227fb681a3b0abdf685cf12bde37d8ee000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000001f1cd7f247f2ae1ba9a1aeb4b32ed4c8c13c70c8861b6ab5340e276c58e1046b13d7de2b557e0ae2b53380ad596ba79f07c037c9d9aa17cf407e9ed86201436e000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4530644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd45000000000000004500000000000000000000000000000000000000000000000107b55de1642362d16b8fc4dccfec9e794d24968511cf8e252ed27afc4d72ca1e0301cb4d7e0b7b52a6a8f78613c403ead1543fedb0d3f28c77685fdb9eaa274212ee4836f908e5e39090a4124b75f3ec5b665a729997f55cdea80f76ab940c5902a12ba6400116479dcf5179e4d06471a65e72229fb444b34d8f07458a4a81570000000000ffffffff00000000000000000000000000000000000000000000000000000000ffffffff000000000000000000000000000000000000000000000000fb55bf7df894a746fbe20b6f8c54d5dc0d9fd4eda4742fc35100c45e6e27f912a20d63d446eb175733853b88dd36708eb7a81f5c79e7659c3a6e2b2c470077\n      - :label invalid_g2_subgroup :raw 0x1838ccf8d820349a8c38a57dc0a5495577898e422509e4c9636e9737fe0dcd9116f566a30b7d2579fd6109eb09d66c005fdccdc0d91b28f43be34c5668f34f812a9a64f273fa329bc9c98ff2083c627609e2219177b9c5df7286af31a3b27e8120d85101e1e6af0126c00a95c645b192b3ea69ed72297deac1fbb0e6bd1440c600ec155ab3cd58005b488308578aaeeaeae9c65939f785bf693fa5763c174dd624d3b2adb35ad17933d0317a00436d10f2d6908faf109e7fe3db77a39d5c1711175bcec7c4c77c612df588174dd44362722f7b8e588a0ef599129cf123f63b8d2e1ff6c569e5cb0d20fb28504057d4f7ed248900ac99bd0f31a853af5c10a806198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd451800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21cc9a9eb823f8d97adee0206828c9f19eaf8f536c23207d68ae3d056a1480bb21990ddb90388b94f31089d3b4ff594d5449c04fcdf2a3681017b5d7749367ba1000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd451800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21cc9a9eb823f8d97adee0206828c9f19eaf8f536c23207d68ae3d056a1480bb21990ddb90388b94f31089d3b4ff594d5449c04fcdf2a3681017b5d7749367ba1\n      - :label invalid_g2_subgroup :raw 0x1bbf3321bfdf76e22ca0e95089338a772a4a2982dbede2571c14a258bd9874ff2b5aa74efa3429cd77acc68bd2e487960f34074d3a725444b06a552c1be0ca442471fa6c0785556dacbe4d9570fa9e89a2fa55ba5e38d5cb0f7dcfa49e0c0ae4181b42bbb36f2bb465708c62b0bd12ae5d6922cf5c4f928a7097f8db8f0dfae3103e85ddefbe5900ded1384badbc32c907c50baa4282172d02562116005aecdf2cce8d04251b64ced66cc7b66a1c54000e17872b10b4793f5bd81052e5ef3e5c1bbf3321bfdf76e22ca0e95089338a772a4a2982dbede2571c14a258bd9874ff0509a723e6fd765c40a37f2aae9cd0c7884d63442dff76488bb636eabc9c33032471fa6c0785556dacbe4d9570fa9e89a2fa55ba5e38d5cb0f7dcfa49e0c0ae4181b42bbb36f2bb465708c62b0bd12ae5d6922cf5c4f928a7097f8db8f0dfae3103e85ddefbe5900ded1384badbc32c907c50baa4282172d02562116005aecdf2cce8d04251b64ced66cc7b66a1c54000e17872b10b4793f5bd81052e5ef3e5c00710c68e1b8b73a72a289422d2b6f841cc56fe8c51105021c56ae30c3ae1aca0b2ff392a2fc535427ec9b7e1ae1c35a7961986788cf648349190dd92e182f05198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daabebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebefdbebebebeabc689bebebebe43be92be5fbebebebebebebebebebebebebebebebebebebebebebebe9ebebebe2abebebebebebebebebebebebebebebebebebe\n      - :label invalid_g2_subgroup :raw 0x29c19b11665cbeb0fd496542e6115ceef9b628ab4bc7419802e7016cf1b2c931057cdbec3f7c2ad0f4da33b3cfd3234ea29f71c6c46b8b90eb2d4a5851adf74b00bb00b95e1b59fca2159a5f33f27f36b15fe6bcda0b1ee0381b0ef7dd804bd625ed3c1a0120b6531e39cca6f67f35f9a849cfbfe958cc1840d1c20cc6b3e1ad08cbba5815581dcea62fa0426dbff39c8f0e9fdc451b1fb127a4e7a4c058799619068e06466a9dd7543ac89d53a17a8beb6c11c59c3af32ea0c1bbc55e0fae7b2c52ab9e7e9296183b9695387e3ae3d06c9d11a98676e4e046914b36b636ddc4050abc3606826f8aeaac5aa7be9f44d15a55805037eb2b260c32d43bd32adef10763b017bc2777ac81ff30fff09f65381c24912bfc9d1490a23765b4830f0aae2b71c998abc367ad761da7e9900eb7e579989f82eee3338c17b8dc17e53e052b21e242369877673070a6b8b0307da6e84e32bdfb3eb09d514b25e8704bd55d431782c07d2d471af10469a13476a49ec51d1bc538d49bbaf85a63fdb6b412fb4a1bc85b155eee2e33bf5322810c7c0150158f373e998316edf821ae9804a2ac191899a5e18c57f4e6b5f736c2f21e95f4147a4235ed2c1f6e6615eb0e00979f0920568d8f3b2f2d0a6a596ea20b3e62191baf420de10125557f9a665900a82a5925a43a697ceaa9deba01a97d8722815e8185973a402e11fdca62fa908da409c4054081d5b9d0e3aa18a31cc5f9d0fa925205fd50a71edf4ca157a607587e24571c9cacf3b3d821146083f9e5fe6be23546643e3ad4540a1f02c02728010a4b9f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030644e72e131a029b85045b68181585d97816a916871ca8d3c208c166622b860000000000000004500000000000000000000000107b55de1642362d16b8fc4dc2215436159d2bdb4e084a6c63bd04f6b84d69bfad793da72c21b421f3f89b22f22b811a1a4fa51df281657f0b0a1add382fab768ac1ed8886bf979e2bf11402d\n      - :label invalid_g2_subgroup :raw 0x2deb529e45720f20be41088dfd7489c315e9e18fe23dd1c8a8183295dc770dee1090b3fcd1898780c332b7d73a602cadd1b26029124db9da19941250eda890b500000000000000000000000000ff0a69a42c284614e3d7de26b3f9b2f3c71ff600000000000000000000000000000000000000000000000000000000000000001e2c7f9d6a525b6af5dad683c5e6408661da29780860c3209b2dddcad5a88795033123665850406fc2428227bbb3509fc71c911cf41623de1605cd3e0a281b902deb529e45720f20be41088dfd7489c315e9e18fe23dd1c8a8183295dc770dee1090b3fcd1898780c332b7d73a602cadd1b26029124db9da19941250eda890b5000000000000000000000000000000000000000000275680008ded35ba000000000000000000000000000000000000000000000000000000000000000000000019367fe97b92d85d7c29090c2313de1a85f030239cfa71f939a197249cb17b890465a8498153883aca20e4de66ac02b1b6957fab9b4bce71df334cd6bee5ff952deb529e45720f20be41088dfd7489c315e9e18fe23dd1c8a8183295dc770dee1090b3fcd1898780c332b7d73a602cadd1b26029124db9da19941250eda890b5000000000000000000000000000000000000000000275680008ded35ba000000000000000000000000000000000000000000000000000000000000000000000019367fe97b92d85d7c29090c2313de1a85f030239cfa71f939a197249cb17b890465a8498153883aca20e4de66ac02b1b6957fab9b4bce71df334cd6bee5ff952deb529e45720f20be41088dfd7489c315e9e18fe23dd1c8a8183295dc770dee1090b3fcd1898780c332b7d73a602cadd1b26029124db9da19941250eda890b5000000000000000000000000000000000000000000275680008ded35ba000000000000000000000000000000000000000000000000000000000000000000000019367fe97b92d85d7c29090c2313de1a85f030239cfa71f939a197249cb17b890465a8498153883aca20e4de66ac02b1b6957fab9b4bce71df334cd6bee5ff95\n      - :label invalid_g2_subgroup :raw 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a36c98d1ece5fd647afba497e7ea7a2687e956e978e3572c3df75e9278302b9000000000000000000000000000000000000000000000000000000991b498795099a3faf27255b9542daf48d9588fc4d6927c7fcd88c5784a4245345474e1e4509a44ea53f191ddef8a32ec03a7e1a24e06588f8de364ba0024b3b8a062ca91a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a36c98d1ece5fd647afba497e7ea7a2687e956e978e3572c3df75e9278302b9000000000000000000000000000000000000000000000000000000991b498795099a3faf27255b9542daf48d9588fc4d6927c7fcd88c5784a4245345474e1e4509a44ea53f191ddef8a32ec03a7e1a24e06588f8de364ba0024b3b8a062ca91a000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4530644e72e131a029b85045b68181585d97816a68917120ca8d3c8c16d87cfd4500000000005b004500000000000000000000000000000000000000004000000111ee2be185fb562c979eeb452df376f91c7852bfb8a6d5727024444a2fc58c152825d78e66be7952503e9e1bf2d8aad4c39f4ce4095349043106508bab20d6e5000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4530644e72e131a029b85045b68181585d97816a68917120ca8d3c8c16d87cfd4500000000005b004500000000000000000000000000000000000000004000000111ee2be185fb562c979eeb452df376f91c7852bfb8a6d5727024444a2fc58c152825d78e66be7952503e9e1bf2d8aad4c39f4ce4095349043106508bab20d6e5000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4530644e72e131a029b85045b68181585d97816a68917120ca8d3c8c16d87cfd4500000000005b004500000000000000000000000000000000000000004000000111ee2be185fb562c979eeb452df376f91c7852bfb8a6d5727024444a2fc58c152825d78e66be7952503e9e1bf2d8aad4c39f4ce4095349043106508bab20d6e5\n      - :label invalid_g2_subgroup :raw 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000310000000000000000000000000ccc369050590000000000000000000000000000000000000000000000000000000000000000034e16015e4aeadb3c1c93fd54f496a6a75271f9e514b6c51782d145a1771a9827910e860d8264c87a784c364d78f117ca598153fc5947c915eb6e2e7e0ad6d5000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n      - :label invalid_g2_subgroup :raw 0x06e42bc7eb32a979b39a77435202c2a062c8bef977f46500b040fa35b8a45b2315ca114b0522bdd5e928f9629ed2a283d36141f3307071cad74fb768721cbb0e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006e42bc7eb32a979b39a77435202c2a062c8bef977f46500b040fa35b8a45b231a9a3d27dc0ee253cf274c53e2aeb5d9c420289e380158c264d0d4ae6660423900000000000000000000000000000000000000000000010000000000000000001611179006befd3749602129813bd7247045ac58ea0000000100000000000000202a170a4a4385bdcefbe36ade6cc7c0e9834b78fc6ca233e8de345a2d5782dc1699f57deaacb74e8b98bd8532c3f152570db884fc1755fbc0c8cb3ef54a537f26c6e104e6c30ed077379b1762d05ac66a6d8e1bb0699ff4f8e3fa52568f0f7709179c965e45c4f28e2ee2affb9b86744b8f29df08357dc80776ecede39adc7f221276dfff5b3a2b6a46ec6c0e0891aefd121170d8361187b73b46e1c6b1218f29255d7955576bba25241ec1edfdfc08c9b8d29379d4213025fa95b0dbdd16460ff9fdfcccda82fb0dd8f17931e05823321073a1a4e484699acdc9d0f14ea6f60c25b531fed0c7e8899296888cc0b27fbb6dbfc2041d482e21d908e240772a2326c6e104e6c30ed077379b1762d05ac66a6d8e1bb0699ff4f8e3fa52568f0f7709179c965e45c4f28e2ee2affb9b86744b8f29df08357dc80776ecede39adc7f221276dfff5b3a2b6a46ec6c0e0891aefd121170d8361187b73b46e1c6b1218f29255d7955576bba25241ec1edfdfc08c9b8d29379d4213025fa95b0dbdd16460ff9fdfcccda82fb0dd8f17931e05823321073a1a4e484699acdc9d0f14ea6f60c25b531fed0c7e8899296888cc0b27fbb6dbfc2041d482e21d908e240772a2326c6e104e6c30ed077379b1762d05ac66a6d8e1bb0699ff4f8e3fa52568f0f7709179c965e45c4f28e2ee2affb9b86744b8f29df08357dc80776ecede39adc7f221276dfff5b3a2b6a46ec6c0e0891aefd121170d8361187b73b46e1c6b1218f29255d7955576bba25241ec1edfdfc08c9b8d29379d4213025fa95b0dbdd16460ff9fdfcccda82fb0dd8f17931e05823321073a1a4e484699acdc9d0f14ea6f60c25b531fed0c7e8899296888cc0b27fbb6dbfc2041d482e21d908e240772a2326c6e104e6c30ed077379b1762d05ac66a6d8e1bb0699ff4f8e3fa52568f0f7709179c965e45c4f28e2ee2affb9b86744b8f29df08357dc80776ecede39adc7f221276dfff5b3a2b6a46ec6c0e0891aefd121170d8361187b73b46e1c6b1218f29255d7955576bba25241ec1edfdfc08c9b8d29379d4213025fa95b0dbdd16460ff9fdfcccda82fb0dd8f17931e05823321073a1a4e484699acdc9d0f14ea6f60c25b531fed0c7e8899296888cc0b27fbb6dbfc2041d482e21d908e240772a23\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecpairing_one_point_failFiller.json",
    "content": "{\n    \"ecpairing_one_point_fail\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000008\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"4\",\n                \"balance\": \"999999999999442450\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"557550\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\"\n            ],\n            \"gasLimit\": [\n                \"0x3abe8\", \"90000\", \"100000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x4\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000008\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"5\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000008\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"5\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the given data into the ECPAIRING precompile\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecpairing_one_point_insufficient_gasFiller.json",
    "content": "{\n    \"ecpairing_one_point_insufficient_gas\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000008\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"3\",\n                \"balance\": \"999999999999603066\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"396934\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\"\n            ],\n            \"gasLimit\": [\n                \"75000\", \"90000\", \"100000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x3\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000008\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the given data into the ECPAIRING precompile\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecpairing_one_point_not_in_subgroupFiller.json",
    "content": "{\n    \"ecpairing_one_point_not_in_subgroup\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000008\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"20\",\n                \"balance\": \"999999999994821439\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"5178561\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800d3270b7da683f988d3889abcdad9776ecd45abaca689f1118c3fd33404b4392588360d269af2cd3e0803839ea274c2b8f062a6308e8da85fd774c26f1bcb87\"\n            ],\n            \"gasLimit\": [\n                \"0x39be8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x14\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000008\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"21\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n                    \"comment\": \"Puts the given data into the ECPAIRING precompile\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecpairing_one_point_with_g1_zeroFiller.json",
    "content": "{\n    \"ecpairing_one_point_with_g1_zero\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000008\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"5\",\n                \"balance\": \"999999999999224771\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"775229\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\"\n            ],\n            \"gasLimit\": [\n                \"0x3ab68\", \"90000\", \"100000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x5\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000008\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"6\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000008\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"6\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the given data into the ECPAIRING precompile\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecpairing_one_point_with_g2_zeroFiller.json",
    "content": "{\n    \"ecpairing_one_point_with_g2_zero\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000008\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"6\",\n                \"balance\": \"999999999999007220\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"992780\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0x38c68\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x6\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000008\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"7\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the given data into the ECPAIRING precompile\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecpairing_one_point_with_g2_zero_and_g1_invalidFiller.json",
    "content": "{\n    \"ecpairing_one_point_with_g2_zero_and_g1_invalid\": {\n        \"_info\" : {\n            \"comment\" : \"Use the ecpairing checker with one point, where g1 is not on the curve but g2 is zero.  cpp-ethereum once had a bug in this case; as soon as cpp-ethereum recognized g2 zero, it returned something without checking the validity of g1\"\n        },\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000008\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"6\",\n                \"balance\": \"999999999999007220\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000001100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0x38c68\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x6\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000008\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"7\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecpairing_perturb_g2_by_curve_orderFiller.json",
    "content": "{\n    \"ecpairing_perturb_g2_by_curve_order\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000008\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"25\",\n                \"balance\": \"999999999993618935\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"6381065\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c248652d61f350be9ffaba461cdfdd9cd68f770b1d71184b6e8ac0b2f0c992f6ee090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\"\n            ],\n            \"gasLimit\": [\n                \"0x3abe8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x19\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000008\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"26\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the given data into the ECPAIRING precompile\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecpairing_perturb_g2_by_field_modulusFiller.json",
    "content": "{\n    \"ecpairing_perturb_g2_by_field_modulus\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000008\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"26\",\n                \"balance\": \"999999999993378319\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"6621681\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed396ad8433991909fa4eedf63ea8d8bf353cc9bc4d925598091cd66f3a99f94a212c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\"\n            ],\n            \"gasLimit\": [\n                \"0x3ab68\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x1a\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000008\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"27\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the given data into the ECPAIRING precompile\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecpairing_perturb_g2_by_field_modulus_againFiller.json",
    "content": "{\n    \"ecpairing_perturb_g2_by_field_modulus_again\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000008\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"27\",\n                \"balance\": \"999999999993137831\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"6862169\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b432cad18bcbe0e1502fbb7370f4c98ed7b5351fa74b59e08890758183f777af1\"\n            ],\n            \"gasLimit\": [\n                \"0x3ab68\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x1b\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000008\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"28\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the given data into the ECPAIRING precompile\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecpairing_perturb_g2_by_oneFiller.json",
    "content": "{\n    \"ecpairing_perturb_g2_by_one\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000008\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"24\",\n                \"balance\": \"999999999993859423\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"6140577\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c31800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\"\n            ],\n            \"gasLimit\": [\n                \"0x3ab68\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x18\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000008\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"25\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the given data into the ECPAIRING precompile\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecpairing_perturb_zeropoint_by_curve_orderFiller.json",
    "content": "{\n    \"ecpairing_perturb_zeropoint_by_curve_order\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000008\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"22\",\n                \"balance\": \"999999999994344367\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"5655633\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000010000000000000000000000000000000000000000000000000000000000000000198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\"\n            ],\n            \"gasLimit\": [\n                \"0x3b2e8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x16\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000008\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"23\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the given data into the ECPAIRING precompile\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecpairing_perturb_zeropoint_by_field_modulusFiller.json",
    "content": "{\n    \"ecpairing_perturb_zeropoint_by_field_modulus\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000008\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"23\",\n                \"balance\": \"999999999994101959\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"5898041\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c030644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd470000000000000000000000000000000000000000000000000000000000000000198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\"\n            ],\n            \"gasLimit\": [\n                \"0x3b368\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x17\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000008\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"24\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the given data into the ECPAIRING precompile\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecpairing_perturb_zeropoint_by_oneFiller.json",
    "content": "{\n    \"ecpairing_perturb_zeropoint_by_one\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000008\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"21\",\n                \"balance\": \"999999999994584919\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"5415081\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\"\n            ],\n            \"gasLimit\": [\n                \"0x3aba8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x15\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000008\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"22\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the given data into the ECPAIRING precompile\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecpairing_three_point_fail_1Filler.json",
    "content": "{\n    \"ecpairing_three_point_fail_1\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000008\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"19\",\n                \"balance\": \"999999999995221106\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"4778894\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000240105456a333e6d636854f987ea7bb713dfd0ae8371a72aea313ae0c32c0bf10160cf031d41b41557f3e7e3ba0c51bebe5da8e6ecd855ec50fc87efcdeac168bcc0476be093a6d2b4bbf907172049874af11e1b6267606e00804d3ff0037ec57fd3010c68cb50161b7d1d96bb71edfec9880171954e56871abf3d93cc94d745fa114c059d74e5b6c4ec14ae5864ebe23a71781d86c29fb8fb6cce94f70d3de7a2101b33461f39d9e887dbb100f170a2345dde3c07e256d1dfa2b657ba5cd030427000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000021a2c3013d2ea92e13c800cde68ef56a294b883f6ac35d25f587c09b1b3c635f7290158a80cd3d66530f74dc94c94adb88f5cdb481acca997b6e60071f08a115f00cacf3523caf879d7d05e30549f1e6fdce364cbb8724b0329c6c2a39d4f018e0692e55db067300e6e3fe56218fa2f940054e57e7ef92bf7d475a9d8a8502fd200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\"\n            ],\n            \"gasLimit\": [\n                \"0x672a8\", \"90000\", \"110000\", \"150000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x13\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000008\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"20\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000008\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"20\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the given data into the ECPAIRING precompile\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecpairing_three_point_match_1Filler.json",
    "content": "{\n    \"ecpairing_three_point_match_1\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000008\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"18\",\n                \"balance\": \"999999999995612837\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"4387163\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000240105456a333e6d636854f987ea7bb713dfd0ae8371a72aea313ae0c32c0bf10160cf031d41b41557f3e7e3ba0c51bebe5da8e6ecd855ec50fc87efcdeac168bcc0476be093a6d2b4bbf907172049874af11e1b6267606e00804d3ff0037ec57fd3010c68cb50161b7d1d96bb71edfec9880171954e56871abf3d93cc94d745fa114c059d74e5b6c4ec14ae5864ebe23a71781d86c29fb8fb6cce94f70d3de7a2101b33461f39d9e887dbb100f170a2345dde3c07e256d1dfa2b657ba5cd030427000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000021a2c3013d2ea92e13c800cde68ef56a294b883f6ac35d25f587c09b1b3c635f7290158a80cd3d66530f74dc94c94adb88f5cdb481acca997b6e60071f08a115f2f997f3dbd66a7afe07fe7862ce239edba9e05c5afff7f8a1259c9733b2dfbb929d1691530ca701b4a106054688728c9972c8512e9789e9567aae23e302ccd75000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0x653a8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x12\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000008\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"19\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the given data into the ECPAIRING precompile\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecpairing_two_point_fail_1Filler.json",
    "content": "{\n    \"ecpairing_two_point_fail_1\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000008\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"9\",\n                \"balance\": \"999999999998316309\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1683691\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\"\n            ],\n            \"gasLimit\": [\n                \"0x507a8\", \"90000\", \"110000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x9\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000008\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"10\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000008\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"10\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the given data into the ECPAIRING precompile\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecpairing_two_point_fail_2Filler.json",
    "content": "{\n    \"ecpairing_two_point_fail_2\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000008\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"16\",\n                \"balance\": \"999999999996222247\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"3777753\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000180105456a333e6d636854f987ea7bb713dfd0ae8371a72aea313ae0c32c0bf10160cf031d41b41557f3e7e3ba0c51bebe5da8e6ecd855ec50fc87efcdeac168bcc0476be093a6d2b4bbf907172049874af11e1b6267606e00804d3ff0037ec57fd3010c68cb50161b7d1d96bb71edfec9880171954e56871abf3d93cc94d745fa114c059d74e5b6c4ec14ae5864ebe23a71781d86c29fb8fb6cce94f70d3de7a2101b33461f39d9e887dbb100f170a2345dde3c07e256d1dfa2b657ba5cd03042700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002105384b6dd6c48634b9fe89cb3e19667c1fe6736c69df070d674c95a42b3b8242c0d8e67f0f2c14c43734b430d8be4265af8c4f7a67deb0b029fd2dff99cc6b9015eaec465d922580c7de5d4a5c26de75eaf2af6841b7412ef2eebd1e051076f1b4c21849e48de12d1bae2bad3299717aa8664ade430e19dec72a6e10a39b0ab\"\n            ],\n            \"gasLimit\": [\n                \"0x517e8\", \"90000\", \"110000\", \"140000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x10\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000008\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"17\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000008\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"17\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the given data into the ECPAIRING precompile\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecpairing_two_point_match_1Filler.json",
    "content": "{\n    \"ecpairing_two_point_match_1\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000008\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"11\",\n                \"balance\": \"999999999997710931\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"2289069\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd45198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\"\n            ],\n            \"gasLimit\": [\n                \"0x50f68\", \"90000\", \"110000\", \"140000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xb\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000008\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"12\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000008\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"12\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the given data into the ECPAIRING precompile\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecpairing_two_point_match_2Filler.json",
    "content": "{\n    \"ecpairing_two_point_match_2\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000008\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"13\",\n                \"balance\": \"999999999997150602\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"2849398\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d\"\n            ],\n            \"gasLimit\": [\n                \"0x507a8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xd\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000008\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"14\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the given data into the ECPAIRING precompile\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecpairing_two_point_match_3Filler.json",
    "content": "{\n    \"ecpairing_two_point_match_3\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000008\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"14\",\n                \"balance\": \"999999999996843881\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"3156119\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002203e205db4f19b37b60121b83a7333706db86431c6d835849957ed8c3928ad7927dc7234fd11d3e8c36c59277c3e6f149d5cd3cfa9a62aee49f8130962b4b3b9195e8aa5b7827463722b8c153931579d3505566b4edf48d498e185f0509de15204bb53b8977e5f92a0bc372742c4830944a59b4fe6b1c0466e2a6dad122b5d2e030644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd31a76dae6d3272396d0cbe61fced2bc532edac647851e3ac53ce1cc9c7e645a83198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\"\n            ],\n            \"gasLimit\": [\n                \"0x517a8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xe\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000008\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"15\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the given data into the ECPAIRING precompile\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecpairing_two_point_match_4Filler.json",
    "content": "{\n    \"ecpairing_two_point_match_4\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000008\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"15\",\n                \"balance\": \"999999999996533064\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"3466936\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000180105456a333e6d636854f987ea7bb713dfd0ae8371a72aea313ae0c32c0bf10160cf031d41b41557f3e7e3ba0c51bebe5da8e6ecd855ec50fc87efcdeac168bcc0476be093a6d2b4bbf907172049874af11e1b6267606e00804d3ff0037ec57fd3010c68cb50161b7d1d96bb71edfec9880171954e56871abf3d93cc94d745fa114c059d74e5b6c4ec14ae5864ebe23a71781d86c29fb8fb6cce94f70d3de7a2101b33461f39d9e887dbb100f170a2345dde3c07e256d1dfa2b657ba5cd030427000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000021a2c3013d2ea92e13c800cde68ef56a294b883f6ac35d25f587c09b1b3c635f7290158a80cd3d66530f74dc94c94adb88f5cdb481acca997b6e60071f08a115f2f997f3dbd66a7afe07fe7862ce239edba9e05c5afff7f8a1259c9733b2dfbb929d1691530ca701b4a106054688728c9972c8512e9789e9567aae23e302ccd75\"\n            ],\n            \"gasLimit\": [\n                \"0x517a8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xf\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000008\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"16\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the given data into the ECPAIRING precompile\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecpairing_two_point_match_5Filler.json",
    "content": "{\n    \"ecpairing_two_point_match_5\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000008\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"17\",\n                \"balance\": \"999999999995911366\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"4088634\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\"\n            ],\n            \"gasLimit\": [\n                \"0x4e7a8\", \"90000\", \"110000\", \"140000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x11\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000008\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"18\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000008\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"18\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the given data into the ECPAIRING precompile\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecpairing_two_point_oogFiller.json",
    "content": "{\n    \"ecpairing_two_point_oog\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000008\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"12\",\n                \"balance\": \"999999999997402226\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"2597774\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd45198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\"\n            ],\n            \"gasLimit\": [\n                \"0x3d6e8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xc\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000008\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"13\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the given data into the ECPAIRING precompile\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/ecpairing_two_points_with_one_g2_zeroFiller.json",
    "content": "{\n    \"ecpairing_two_points_with_one_g2_zero\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000008\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"10\",\n                \"balance\": \"999999999998009588\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1990412\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\"\n            ],\n            \"gasLimit\": [\n                \"0x4e828\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xa\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000008\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"11\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the given data into the ECPAIRING precompile\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/pairingTestFiller.json",
    "content": "{\n    \"pairingTest\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"68795C4AA09D6f4Ed3E5DeDDf8c2AD3049A601da\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"14012015\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : [0,1,2,3,4],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n    \t\t\t        \"storage\" : {\n    \t\t\t            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\"\n    \t\t\t        }\n\t\t            }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : [1,2,3],\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t            \"storage\" : {\n\t\t\t            }\n\t\t            }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : [5],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n    \t\t\t        \"storage\" : {\n    \t\t\t            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x00\"\n    \t\t\t        }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"1\",\n                \"storage\" : {\n                }\n            },\n\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"\",\n                \"//comment1\" : \"zeroCash transaction data\",\n                \"//comment2\" : \"inputLength, data1, data2, data3, ...\",\n                \"code\" : \"{(MSTORE 32 (CALLDATALOAD 32)) (MSTORE 64 (CALLDATALOAD 64)) (MSTORE 96 (CALLDATALOAD 96)) (MSTORE 128 (CALLDATALOAD 128)) (MSTORE 160 (CALLDATALOAD 160)) (MSTORE 192 (CALLDATALOAD 192)) (MSTORE 224 (CALLDATALOAD 224)) (MSTORE 256 (CALLDATALOAD 256)) (MSTORE 288 (CALLDATALOAD 288)) (MSTORE 320 (CALLDATALOAD 320)) (MSTORE 352 (CALLDATALOAD 352)) (MSTORE 384 (CALLDATALOAD 384)) (MSTORE 416 (CALLDATALOAD 416)) (MSTORE 448 (CALLDATALOAD 448)) (MSTORE 480 (CALLDATALOAD 480)) (MSTORE 512 (CALLDATALOAD 512)) (MSTORE 544 (CALLDATALOAD 544)) (MSTORE 576 (CALLDATALOAD 576)) (MSTORE 608 (CALLDATALOAD 608)) (MSTORE 640 (CALLDATALOAD 640)) (MSTORE 672 (CALLDATALOAD 672)) (MSTORE 704 (CALLDATALOAD 704)) (MSTORE 736 (CALLDATALOAD 736)) [[0]](CALLCODE 500000 8 0 32 (CALLDATALOAD 0) 1000 32)  [[1]] (MLOAD 1000) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"c94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"\",\n                \"//comment\" : \"NEGATE\",\n                \"code\" : \"{ (MSTORE 0 (CALLDATALOAD 0)) (MSTORE 32 (CALLDATALOAD 32)) (MSTORE 64 0x30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000)  [[0]](CALLCODE 5000000 7 0 0 96 1000 64)  [[1]](MLOAD 1000) [[2]](MLOAD 1032) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            },\n\t    \"d94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"\",\n                \"//comment\" : \"ADD\",\n                \"code\" : \"{ (MSTORE 0 (CALLDATALOAD 0)) (MSTORE 32 (CALLDATALOAD 32)) (MSTORE 64 (CALLDATALOAD 64)) (MSTORE 96 (CALLDATALOAD 96)) [[0]](CALLCODE 5000000 6 0 0 128 1000 64)  [[1]](MLOAD 1000) [[2]](MLOAD 1032) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n\t    \"//dataValues\" : [\n\t\t\" AP  111e129f1cf1097710d41c4ac70fcdfa5ba2023c6ff1cbeac322de49d1b6df7c103188585e2364128fe25c70558f1560f4f9350baf3959e603cc91486e110936\",\n\t\t\"-AP  111e129f1cf1097710d41c4ac70fcdfa5ba2023c6ff1cbeac322de49d1b6df7c2032c61a830e3c17286de9462bf242fca2883585b93870a73853face6a6bf411\",\n\t\t\" BP  06967a1237ebfeca9aaae0d6d0bab8e28c198c5a339ef8a2407e31cdac516db90e4e3ed0898ba2ce904a02b739caf9931f9b43c600154592cee5239435f91f76\",\n\t\t\"-BP  06967a1237ebfeca9aaae0d6d0bab8e28c198c5a339ef8a2407e31cdac516db922160fa257a5fd5b280642ff47b65eca77e626cb685c84fa6d3b6882a283ddd1\",\n\t\t\" CP  1b9e027bd5cfc2cb5db82d4dc9677ac795ec500ecd47deee3b5da006d6d049b81e8cfd56691c1245342d15eff3d1ce17c85fed7538c3614d46996d8f85a5c226\",\n\t\t\"-CP  1b9e027bd5cfc2cb5db82d4dc9677ac795ec500ecd47deee3b5da006d6d049b811d7511c78158de484232fc68daf8a45cf217d1c2fae693ff5871e8752d73b21\",\n\t\t\"PR.A 1c76476f4def4bb94541d57ebba1193381ffa7aa76ada664dd31c16024c43f593034dd2920f673e204fee2811c678745fc819b55d3e9d294e45c9b03a76aef41\",\n\t\t\"PR.B 1213d2149b006137fcfb23036606f848d638d576a120ca981b5b1a5f9300b3ee2276cf730cf493cd95d64677bbb75fc42db72513a4c1e387b476d056f80aa75f21ee6226d31426322afcda621464d0611d226783262e21bb3bc86b537e986237096df1f82dff337dd5972e32a8ad43e28a78a96a823ef1cd4debe12b6552ea5f\",\n\t\t\"PR.C 0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd216da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba\",\n\t\t\"PR.H 1abb4a25eb9379ae96c84fff9f0540abcfc0a0d11aeda02d4f37e4baf74cb0c11ff09a73b455eca26257dc97dbe2c2572e162a9eefc4ce83ac7869b267acc4de\",\n\t\t\"PR.K 2f2ea0b3da1e8ef11914acf8b2e1b32d99df51f5f4f206fc6b947eae860eddb6068134ddb33dc888ef446b648d72338684d678d2eb2371c61a50734d78da4b72\",\n\t\t\"VK.A 209dd15ebff5d46c4bd888e51a93cf99a7329636c63514396b4a452003a35bf704bf11ca01483bfa8b34b43561848d28905960114c8ac04049af4b6315a416782bb8324af6cfc93537a2ad1a445cfd0ca2a71acd7ac41fadbf933c2a51be344d120a2a4cf30c1bf9845f20c6fe39e07ea2cce61f0c9bb048165fe5e4de877550\",\n\t\t\"VK.B 2eca0c7238bf16e83e7a1e6c5d49540685ff51380f309842a98561558019fc0203d3260361bb8451de5ff5ecd17f010ff22f5c31cdf184e9020b06fa5997db84\",\n\t\t\"VK.C 2e89718ad33c8bed92e210e81d1853435399a271913a6520736a4729cf0d51eb01a9e2ffa2e92599b68e44de5bcf354fa2642bd4f26b259daa6f7ce3ed57aeb314a9a87b789a58af499b314e13c3d65bede56c07ea2d418d6874857b70763713178fb49a2d6cd347dc58973ff49613a20757d0fcc22079f9abd10c3baee24590\",\n\t\t\"VK.Z 217cee0a9ad79a4493b5253e2e4e3a39fc2df38419f230d341f60cb064a0ac290a3d76f140db8418ba512272381446eb73958670f00cf46f1d9e64cba057b53c26f64a8ec70387a13e41430ed3ee4a7db2059cc5fc13c067194bcc0cb49a98552fd72bd9edb657346127da132e5b82ab908f5816c826acb499e22f2412d1a2d7\",\n\t    \"VK.Gamma 25f83c8b6ab9de74e7da488ef02645c5a16a6652c3c71a15dc37fe3a5dcb7cb122acdedd6308e3bb230d226d16a105295f523a8a02bfc5e8bd2da135ac4c245d065bbad92e7c4e31bf3757f1fe7362a63fbfee50e7dc68da116e67d600d9bf6806d302580dc0661002994e7cd3a7f224e7ddc27802777486bf80f40e4ca3cfdb\",\n       \"VK.GammaBeta1 15794ab061441e51d01e94640b7e3084a07e02c78cf3103c542bc5b298669f2114db745c6780e9df549864cec19c2daf4531f6ec0c89cc1c7436cc4d8d300c6d\",\n      \"-VK.GammaBeta1 15794ab061441e51d01e94640b7e3084a07e02c78cf3103c542bc5b298669f211b88da1679b0b64a63b7e0e7bfe52aae524f73a55be7fe70c7e9bfc94b4cf0da\",\n       \"VK.GammaBeta2 1f39e4e4afc4bc74790a4a028aff2c3d2538731fb755edefd8cb48d6ea589b5e283f150794b6736f670d6a1033f9b46c6f5204f50813eb85c8dc4b59db1c5d39140d97ee4d2b36d99bc49974d18ecca3e7ad51011956051b464d9e27d46cc25e0764bb98575bd466d32db7b15f582b2d5c452b36aa394b789366e5e3ca5aabd4\",\n\t\t\"P2   198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\",\n\t \"PR.A + PR.C 1496064626ba8bffeb7805f0d16143a65649bb0850333ea512c03fcdaf31e25407b4f210ab542533f1ee5633ae4406cd16c63494b537ce3f1cf4afff6f76a48f\",\n\t\t\"vkx  26dcfbc2e0bc9d82efb4acd73cb3e99730e27e10177fcfb78b6399a4bfcdf39127c440dbd5053253a3a692f9bf89b9b6e9612127cf97db1e11ffa9679acc933b\",\n   \"vkx + PR.A + PR.C 186bac5188a98c45e6016873d107f5cd131f3a3e339d0375e58bd6219347b0081e396bc242de0214898b0f68035f53ad5a6f96c6c8390ac56ed6ec9561d23159\",\n\"-(vkx + PR.A + PR.C) 186bac5188a98c45e6016873d107f5cd131f3a3e339d0375e58bd6219347b008122ae2b09e539e152ec5364e7e2204b03d11d3caa038bfc7cd499f8176aacbee\",\n\t  \"vkx + PR.A 20a754d2071d4d53903e3b31a7e98ad6882d58aec240ef981fdf0a9d22c5926a29c853fcea789887315916bbeb89ca37edb355b4f980c9a12a94f30deeed3021\",\n\t       \"-PR.H 1abb4a25eb9379ae96c84fff9f0540abcfc0a0d11aeda02d4f37e4baf74cb0c11073b3ff2cdbb38755f8691ea59e9606696b3ff278acfc098fa8226470d03869\",\n\t       \"-PR.C 0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd2198a1f162a73261f112401aa2db79c7dab1533c9935c77290a6ce3b191f2318d\",\n\t\t\"     1122334455667788991011121314151617181920212223242526272829303132\"\n\t\t      \n\t    ],\n\t    \"//dataMeaning\" : [\n\t\t\"[0] proof.A + vk.A + negateG1(proof.Ap) + P2\",\n\t\t\"[1] vk.B + proof.B + negateG1(proof.Bp) + P2\",\n\t\t\"[2] proof.C + vk.C + negateG1(proof.Cp) + P2\",\n\t\t\"[3] proof.K + vk.gamma + negateG1(addG1(vkx, addG1(proof.A, proof.C))) + vk.gammaBeta2 + negateG1(vk.gammaBeta1) + proof.B\",\n\t\t\"[4] addG1(vkx, proof.A) + proof.B + negateG1(proof.H) + vk.Z + negateG1(proof.C) + P2\",\n\t\t\"[5] proof.A + vk.A + proof.Ap + P2\"\n\t    ],\n            \"data\" : [\n        \":raw 0x00000000000000000000000000000000000000000000000000000000000001801c76476f4def4bb94541d57ebba1193381ffa7aa76ada664dd31c16024c43f593034dd2920f673e204fee2811c678745fc819b55d3e9d294e45c9b03a76aef41209dd15ebff5d46c4bd888e51a93cf99a7329636c63514396b4a452003a35bf704bf11ca01483bfa8b34b43561848d28905960114c8ac04049af4b6315a416782bb8324af6cfc93537a2ad1a445cfd0ca2a71acd7ac41fadbf933c2a51be344d120a2a4cf30c1bf9845f20c6fe39e07ea2cce61f0c9bb048165fe5e4de877550111e129f1cf1097710d41c4ac70fcdfa5ba2023c6ff1cbeac322de49d1b6df7c2032c61a830e3c17286de9462bf242fca2883585b93870a73853face6a6bf411198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\",\n\t\t\":raw 0x00000000000000000000000000000000000000000000000000000000000001802eca0c7238bf16e83e7a1e6c5d49540685ff51380f309842a98561558019fc0203d3260361bb8451de5ff5ecd17f010ff22f5c31cdf184e9020b06fa5997db841213d2149b006137fcfb23036606f848d638d576a120ca981b5b1a5f9300b3ee2276cf730cf493cd95d64677bbb75fc42db72513a4c1e387b476d056f80aa75f21ee6226d31426322afcda621464d0611d226783262e21bb3bc86b537e986237096df1f82dff337dd5972e32a8ad43e28a78a96a823ef1cd4debe12b6552ea5f06967a1237ebfeca9aaae0d6d0bab8e28c198c5a339ef8a2407e31cdac516db922160fa257a5fd5b280642ff47b65eca77e626cb685c84fa6d3b6882a283ddd1198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\",\n\t\t\":raw 0x00000000000000000000000000000000000000000000000000000000000001800f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd216da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba2e89718ad33c8bed92e210e81d1853435399a271913a6520736a4729cf0d51eb01a9e2ffa2e92599b68e44de5bcf354fa2642bd4f26b259daa6f7ce3ed57aeb314a9a87b789a58af499b314e13c3d65bede56c07ea2d418d6874857b70763713178fb49a2d6cd347dc58973ff49613a20757d0fcc22079f9abd10c3baee245901b9e027bd5cfc2cb5db82d4dc9677ac795ec500ecd47deee3b5da006d6d049b811d7511c78158de484232fc68daf8a45cf217d1c2fae693ff5871e8752d73b21198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\",\n\t\t\":raw 0x00000000000000000000000000000000000000000000000000000000000002402f2ea0b3da1e8ef11914acf8b2e1b32d99df51f5f4f206fc6b947eae860eddb6068134ddb33dc888ef446b648d72338684d678d2eb2371c61a50734d78da4b7225f83c8b6ab9de74e7da488ef02645c5a16a6652c3c71a15dc37fe3a5dcb7cb122acdedd6308e3bb230d226d16a105295f523a8a02bfc5e8bd2da135ac4c245d065bbad92e7c4e31bf3757f1fe7362a63fbfee50e7dc68da116e67d600d9bf6806d302580dc0661002994e7cd3a7f224e7ddc27802777486bf80f40e4ca3cfdb186bac5188a98c45e6016873d107f5cd131f3a3e339d0375e58bd6219347b008122ae2b09e539e152ec5364e7e2204b03d11d3caa038bfc7cd499f8176aacbee1f39e4e4afc4bc74790a4a028aff2c3d2538731fb755edefd8cb48d6ea589b5e283f150794b6736f670d6a1033f9b46c6f5204f50813eb85c8dc4b59db1c5d39140d97ee4d2b36d99bc49974d18ecca3e7ad51011956051b464d9e27d46cc25e0764bb98575bd466d32db7b15f582b2d5c452b36aa394b789366e5e3ca5aabd415794ab061441e51d01e94640b7e3084a07e02c78cf3103c542bc5b298669f211b88da1679b0b64a63b7e0e7bfe52aae524f73a55be7fe70c7e9bfc94b4cf0da1213d2149b006137fcfb23036606f848d638d576a120ca981b5b1a5f9300b3ee2276cf730cf493cd95d64677bbb75fc42db72513a4c1e387b476d056f80aa75f21ee6226d31426322afcda621464d0611d226783262e21bb3bc86b537e986237096df1f82dff337dd5972e32a8ad43e28a78a96a823ef1cd4debe12b6552ea5f\",\n\t\t\":raw 0x000000000000000000000000000000000000000000000000000000000000024020a754d2071d4d53903e3b31a7e98ad6882d58aec240ef981fdf0a9d22c5926a29c853fcea789887315916bbeb89ca37edb355b4f980c9a12a94f30deeed30211213d2149b006137fcfb23036606f848d638d576a120ca981b5b1a5f9300b3ee2276cf730cf493cd95d64677bbb75fc42db72513a4c1e387b476d056f80aa75f21ee6226d31426322afcda621464d0611d226783262e21bb3bc86b537e986237096df1f82dff337dd5972e32a8ad43e28a78a96a823ef1cd4debe12b6552ea5f1abb4a25eb9379ae96c84fff9f0540abcfc0a0d11aeda02d4f37e4baf74cb0c11073b3ff2cdbb38755f8691ea59e9606696b3ff278acfc098fa8226470d03869217cee0a9ad79a4493b5253e2e4e3a39fc2df38419f230d341f60cb064a0ac290a3d76f140db8418ba512272381446eb73958670f00cf46f1d9e64cba057b53c26f64a8ec70387a13e41430ed3ee4a7db2059cc5fc13c067194bcc0cb49a98552fd72bd9edb657346127da132e5b82ab908f5816c826acb499e22f2412d1a2d70f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd2198a1f162a73261f112401aa2db79c7dab1533c9935c77290a6ce3b191f2318d198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\",\n\t\t\":raw 0x00000000000000000000000000000000000000000000000000000000000001801c76476f4def4bb94541d57ebba1193381ffa7aa76ada664dd31c16024c43f593034dd2920f673e204fee2811c678745fc819b55d3e9d294e45c9b03a76aef41209dd15ebff5d46c4bd888e51a93cf99a7329636c63514396b4a452003a35bf704bf11ca01483bfa8b34b43561848d28905960114c8ac04049af4b6315a416782bb8324af6cfc93537a2ad1a445cfd0ca2a71acd7ac41fadbf933c2a51be344d120a2a4cf30c1bf9845f20c6fe39e07ea2cce61f0c9bb048165fe5e4de877550111e129f1cf1097710d41c4ac70fcdfa5ba2023c6ff1cbeac322de49d1b6df7c103188585e2364128fe25c70558f1560f4f9350baf3959e603cc91486e110936198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa\"\t\t\n            ],\n            \"gasLimit\" : [\n                \"10000000\", \"90000\", \"110000\", \"150000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"1\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/pointAddFiller.json",
    "content": "{\n    \"pointAdd\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"68795C4AA09D6f4Ed3E5DeDDf8c2AD3049A601da\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"4012015\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : [0],\n                    \"gas\" : [0,1,2],\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n    \t\t\t        \"storage\" : {\n    \t\t\t            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x030644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd3\",\n                            \"0x02\" : \"0x15ed738c0e0a7c92e7845f96b2ae9c0a68a6a449e3538fc7ff3ebf7a5a18a2c4\"\n    \t\t\t        }\n\t\t            }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : [1],\n                    \"gas\" : -1,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n    \t\t\t        \"storage\" : {\n    \t\t\t            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n    \t\t\t        }\n\t\t            }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : [2,5,6],\n                    \"gas\" : [0,1,2],\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t                \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t            \"storage\" : {\n\t\t\t                \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n            \t\t\t}\n        \t\t    }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : [3,4],\n                    \"gas\" : [0,1,2],\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n            \t\t\t\"storage\" : {\n            \t\t\t    \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd2\",\n                            \"0x02\" : \"0x16da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba\"\n            \t\t\t}\n        \t\t    }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : [7],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n            \t\t\t\"storage\" : {\n            \t\t\t    \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x1de49a4b0233273bba8146af82042d004f2085ec982397db0d97da17204cc286\",\n                            \"0x02\" : \"0x0217327ffc463919bef80cc166d09c6172639d8589799928761bcd9f22c903d4\"\n            \t\t\t}\n        \t\t    }\n                }\n            },\n\t        {\n                \"indexes\" : {\n                    \"data\" : [8],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t            \"storage\" : {\n\t\t\t                \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x1f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c49\",\n                            \"0x02\" : \"0x018683193ae021a2f8920fed186cde5d9b1365116865281ccf884c1f28b1df8f\"\n\t\t\t            }\n\t\t            }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : [9],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n    \t\t\t        \"storage\" : {\n    \t\t\t            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x059a381fec09e29448a58ae8905f41d1eb8ff0ed755aa0f827821aefde02ec7d\",\n                            \"0x02\" : \"0x269d2516bf8c4f5798cc1267162e59add561e5537a328fe0f28a252fa287a72a\"\n    \t\t\t        }\n\t\t            }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : [9],\n                    \"gas\" : [1,2],\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n            \t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t                \"storage\" : {\n\t\t\t\t                \"0x00\" : \"0x01\",\n\t\t\t\t                \"0x01\" : \"0x059a381fec09e29448a58ae8905f41d1eb8ff0ed755aa0f827821aefde02ec7d\",\n\t\t\t\t                \"0x02\" : \"0x269d2516bf8c4f5798cc1267162e59add561e5537a328fe0f28a252fa287a72a\"\n\t\t\t                }\n\t                    }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : [7],\n                    \"gas\" : [1,2],\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n            \t\t\t\"storage\" : {\n\t\t\t\t            \"0x00\" : \"0x01\",\n\t\t\t\t            \"0x01\" : \"0x1de49a4b0233273bba8146af82042d004f2085ec982397db0d97da17204cc286\",\n\t\t\t\t            \"0x02\" : \"0x0217327ffc463919bef80cc166d09c6172639d8589799928761bcd9f22c903d4\"\n\t\t\t            }\n        \t\t    }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : [8],\n                    \"gas\" : [2,1],\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t            \"storage\" : {\n\t\t\t\t            \"0x00\" : \"0x01\",\n\t\t\t\t            \"0x01\" : \"0x1f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c49\",\n\t\t\t\t            \"0x02\" : \"0x018683193ae021a2f8920fed186cde5d9b1365116865281ccf884c1f28b1df8f\"\n\t\t\t            }\n\t\t            }\n                }\n            },\n    \t    {\n                \"//comment\" : \"OOG happens\",\n                \"indexes\" : {\n                    \"data\" : [0,2,3,4,5,6,7,8,9],\n                    \"gas\" : 3,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t            \"storage\" : {\n\t\t\t            }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"1\",\n                \"storage\" : {\n                }\n            },\n\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{(MSTORE 0 (CALLDATALOAD 0)) (MSTORE 32 (CALLDATALOAD 32)) (MSTORE 64 (CALLDATALOAD 64)) (MSTORE 96 (CALLDATALOAD 96)) [[0]](CALLCODE 500000 6 0 0 128 200 64)  [[1]] (MLOAD 200)  [[2]] (MLOAD 232) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n\t    \"// data\" : [\n\t\t\"(1,2) + (1,2)\",\n\t\t\"(0,0) + (0,0)\",\n\t\t\"(x,x) + (invalid)\",\n\t\t\"(x,x) + (0,0)\",\n\t\t\"(0,0) + (x,x)\",\n\t\t\"(invalid) + (x,x)\",\n\t\t\"(invalid) + (invalid)\",\n\t\t\"(x,x) + (x,x)\",\n\t\t\"(x,x) + (y,y)\",\n\t\t\"(x,x) + (1,2)\"\n\t    ],\n            \"data\" : [\n        \":raw 0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002\",\n\t\t\":raw 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n\t\t\":raw 0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd216da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba0f25919bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd216da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba\",\n\t\t\":raw 0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd216da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n\t\t\":raw 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd216da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba\",\n\t\t\":raw 0x0f25919bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd216da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd216da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba\",\n\t\t\":raw 0x0f25919bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd216da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba0f25919bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd216da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba\",\n\t\t\":raw 0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd216da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd216da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba\",\n\t\t\":raw 0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd216da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba1de49a4b0233273bba8146af82042d004f2085ec982397db0d97da17204cc2860217327ffc463919bef80cc166d09c6172639d8589799928761bcd9f22c903d4\",\n\t\t\":raw 0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd216da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\", \"110000\", \"150000\", \"70000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"1\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/pointAddTruncFiller.json",
    "content": "{\n    \"pointAddTrunc\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"68795C4AA09D6f4Ed3E5DeDDf8c2AD3049A601da\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"4012015\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : [0],\n                    \"gas\" : [0,1,2],\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t            \"storage\" : {\n\t\t\t                \"0x00\" : \"0x01\",\n\t                        \"0x01\" : \"0x01\",\n\t                        \"0x02\" : \"0x02\"\n\t\t\t            }\n\t\t            }\n                }\n            },\n\t        {\n                \"indexes\" : {\n                    \"data\" : [1],\n                    \"gas\" : [0,1,2],\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t            \"storage\" : {\n\t\t\t                \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n\t\t\t            }\n\t\t            }\n                }\n            },\n\t        {\n                \"indexes\" : {\n                    \"data\" : [2],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t            \"storage\" : {\n\t\t\t                \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd2\",\n                            \"0x02\" : \"0x16da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba\"\n\t\t\t            }\n\t\t            }\n                }\n            },\n\t        {\n                \"indexes\" : {\n                    \"data\" : [5,6],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t            \"storage\" : {\n\t\t\t                \"0x00\" : \"0x00\",\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n\t\t\t            }\n\t\t            }\n                }\n            },\n\t        {\n                \"indexes\" : {\n                    \"data\" : [3],\n                    \"gas\" : [0],\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t            \t\"storage\" : {\n\t\t            \t    \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd2\",\n                            \"0x02\" : \"0x16da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba\"\n\t\t            \t}\n\t\t            }\n                }\n            },\n\t        {\n                \"indexes\" : {\n                    \"data\" : [4],\n                    \"gas\" : [0,1,2],\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t        \t\"storage\" : {\n\t\t            \t    \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x00\",\n                            \"0x02\" : \"0x00\"\n\t\t            \t}\n\t\t            }\n                }\n            },\n\t        {\n                \"indexes\" : {\n                    \"data\" : [7],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t            \t\"storage\" : {\n\t\t            \t    \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd2\",\n                            \"0x02\" : \"0x16da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba\"\n\t\t            \t}\n\t\t            }\n                }\n            },\n\t        {\n                \"indexes\" : {\n                    \"data\" : [8],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t            \t\"storage\" : {\n\t\t            \t    \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd2\",\n                            \"0x02\" : \"0x16da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba\"\n\t\t            \t}\n\t\t            }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : [9],\n                    \"gas\" : [0],\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n            \t\t\t\"storage\" : {\n            \t\t\t    \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd2\",\n                            \"0x02\" : \"0x16da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba\"\n            \t\t\t}\n\t\t            }\n                }\n            },\n\t        {\n                \"indexes\" : {\n                    \"data\" : [2,3,7,8,9],\n                    \"gas\" : [1,2],\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t            \"storage\" : {\n\t\t\t                \"0x00\" : \"0x01\",\n\t\t\t                \"0x01\" : \"0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd2\",\n\t\t\t                \"0x02\" : \"0x16da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba\"\n\t\t\t            }\n\t\t            }\n                }\n            },\n    \t    {\n                \"indexes\" : {\n                    \"data\" : [5,6],\n                    \"gas\" : [1,2],\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t            \t\"storage\" : {\t    \n            \t\t\t}\n\t\t            }\n                }\n            },\n    \t    {\n                \"//comment\" : \"All OOG\",\n                \"indexes\" : {\n                    \"data\" : [0,2,3,5,6,7,8,9],\n                    \"gas\" : [3],\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t            \t\"storage\" : {\t    \n            \t\t\t}\n\t\t            }\n                }\n            },\n    \t    {\n                \"//comment\" : \"All OOG\",\n                \"indexes\" : {\n                    \"data\" : [1,4],\n                    \"gas\" : [3],\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t            \t\"storage\" : {\t    \n                            \"0x00\" : \"0x01\"\n            \t\t\t}\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"1\",\n                \"storage\" : {\n                }\n            },\n    \t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"\",\n                \"code\" : \"{(MSTORE 0 (CALLDATALOAD 0)) (MSTORE 32 (CALLDATALOAD 32)) (MSTORE 64 (CALLDATALOAD 64)) (MSTORE 96 (CALLDATALOAD 96)) [[0]](CALLCODE 500000 6 0 0 64 200 64)  [[1]] (MLOAD 200)  [[2]] (MLOAD 232) }\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n\t    \"// data\" : [\n\t\t\"(1,2) + (1,2)\",\n\t\t\"(0,0) + (0,0)\",\n\t\t\"(x,x) + (invalid)\",\n\t\t\"(x,x) + (0,0)\",\n\t\t\"(0,0) + (x,x)\",\n\t\t\"(invalid) + (x,x)\",\n\t\t\"(invalid) + (invalid)\",\n\t\t\"(x,x) + (x,x)\",\n\t\t\"(x,x) + (y,y)\",\n\t\t\"(x,x) + (1,2)\"\n\t    ],\n            \"data\" : [\n        \":raw 0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002\",\n\t\t\":raw 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n\t\t\":raw 0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd216da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba0f25919bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd216da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba\",\n\t\t\":raw 0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd216da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n\t\t\":raw 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd216da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba\",\n\t\t\":raw 0x0f25919bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd216da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd216da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba\",\n\t\t\":raw 0x0f25919bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd216da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba0f25919bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd216da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba\",\n\t\t\":raw 0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd216da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd216da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba\",\n\t\t\":raw 0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd216da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba1de49a4b0233273bba8146af82042d004f2085ec982397db0d97da17204cc2860217327ffc463919bef80cc166d09c6172639d8589799928761bcd9f22c903d4\",\n\t\t\":raw 0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd216da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002\"\n            ],\n            \"gasLimit\" : [\n                \"1000000\", \"110000\", \"200000\", \"80000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"1\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/pointMulAdd2Filler.json",
    "content": "{\n    \"pointMulAdd2\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"68795C4AA09D6f4Ed3E5DeDDf8c2AD3049A601da\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"4012015\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : [0,1,2,3,4,5,6,7,8,9,12,26],\n                    \"gas\" : [0],\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n    \t\t\t        \"storage\" : {\n    \t\t\t            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\",\n    \t\t\t            \"0x03\" : \"0x01\"\n    \t\t\t        }\n\t\t            }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : [10],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n    \t\t\t        \"storage\" : {\n    \t\t\t            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\",\n                            \"0x03\" : \"0x01\",\n                            \"0x0a\" : \"0x030644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd3\",\n                            \"0x0b\" : \"0x1a76dae6d3272396d0cbe61fced2bc532edac647851e3ac53ce1cc9c7e645a83\",\n                            \"0x14\" : \"0x030644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd3\",\n                            \"0x15\" : \"0x1a76dae6d3272396d0cbe61fced2bc532edac647851e3ac53ce1cc9c7e645a83\"\n    \t\t\t        }\n\t\t            }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : [11],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t        \"storage\" : {\n                        \"0x00\" : \"0x01\",\n                        \"0x01\" : \"0x01\",\n                        \"0x02\" : \"0x01\",\n                        \"0x03\" : \"0x01\",\n                        \"0x0a\" : \"0x0769bf9ac56bea3ff40232bcb1b6bd159315d84715b8e679f2d355961915abf0\",\n                        \"0x0b\" : \"0x05acb4b400e90c0063006a39f478f3e865e306dd5cd56f356e2e8cd8fe7edae6\",\n                        \"0x14\" : \"0x0769bf9ac56bea3ff40232bcb1b6bd159315d84715b8e679f2d355961915abf0\",\n                        \"0x15\" : \"0x05acb4b400e90c0063006a39f478f3e865e306dd5cd56f356e2e8cd8fe7edae6\"\n            \t\t\t}\n        \t\t    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : [13,15],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t\"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\",\n                            \"0x03\" : \"0x01\",\n                            \"0x0a\" : \"0x030644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd3\",\n                            \"0x0b\" : \"0x15ed738c0e0a7c92e7845f96b2ae9c0a68a6a449e3538fc7ff3ebf7a5a18a2c4\",\n                            \"0x14\" : \"0x030644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd3\",\n                            \"0x15\" : \"0x15ed738c0e0a7c92e7845f96b2ae9c0a68a6a449e3538fc7ff3ebf7a5a18a2c4\"\n\t\t\t}\n\t\t    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : [14],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t\"storage\" : {\n                            \"0x00\" : \"0x01\",\n\t\t\t    \"0x01\" : \"0x01\",\n\t\t\t    \"0x02\" : \"0x01\",\n\t\t\t    \"0x03\" : \"0x01\",\n\t\t\t    \"0x0a\" : \"0x01\",\n\t\t\t    \"0x0b\" : \"0x02\",\n\t\t\t    \"0x14\" : \"0x01\",\n\t\t\t    \"0x15\" : \"0x02\"\n\t\t\t}\n\t\t    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : [16],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n        \t\t\t\"storage\" : {\n        \t\t\t\t\"0x00\" : \"0x01\",\n                        \"0x01\" : \"0x01\",\n                        \"0x02\" : \"0x01\",\n                        \"0x03\" : \"0x01\",\n                        \"0x0a\" : \"0x01\",\n                        \"0x0b\" : \"0x30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd45\",\n                        \"0x14\" : \"0x01\",\n                        \"0x15\" : \"0x30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd45\"\n            \t\t\t}\n        \t\t    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : [17],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t\"storage\" : {\n\t\t\t\t\"0x00\" : \"0x01\",\n                                \"0x01\" : \"0x01\",\n                                \"0x0a\" : \"0x113aeccecdaf57cd8c0aace591774949dcdaf892555fa86726fa7e679b89c067\",\n                                \"0x0b\" : \"0x0bffba84127a19abde488a8251a9a3fce33b34a76f96aafb11ab4a6cef3e9979\"\n\t\t\t}\n\t\t    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : [18],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t\"storage\" : {\n\t\t\t\t\"0x00\" : \"0x01\",\n                                \"0x01\" : \"0x01\",\n                                \"0x02\" : \"0x01\",\n                                \"0x03\" : \"0x01\",\n                                \"0x0a\" : \"0x1fd3b816d9951dcb9aa9797d25e51a865987703ae83cd69c4658679f0350ae2b\",\n                                \"0x0b\" : \"0x29ce3d80a74ddc13784beb25ca9fbfd048a3265a32c6f38b92060c5093a0e7a7\",\n                                \"0x14\" : \"0x1fd3b816d9951dcb9aa9797d25e51a865987703ae83cd69c4658679f0350ae2b\",\n                                \"0x15\" : \"0x29ce3d80a74ddc13784beb25ca9fbfd048a3265a32c6f38b92060c5093a0e7a7\"\n\t\t\t}\n\t\t    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : [19],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t\"storage\" : {\n\t\t\t\t\"0x00\" : \"0x01\",\n                                \"0x01\" : \"0x01\",\n                                \"0x02\" : \"0x01\",\n                                \"0x03\" : \"0x01\",\n                                \"0x0a\" : \"0x0ccbec17235f5b9cc5e42f3df6364a76ecdd0101ddda8fc5dc0ba0b59c0e5628\",\n                                \"0x0b\" : \"0x069ef5e376c0a1ea82f9dfc2e0001a7f385d655eef9a6f976c7a5d2c493ea3ad\",\n                                \"0x14\" : \"0x0ccbec17235f5b9cc5e42f3df6364a76ecdd0101ddda8fc5dc0ba0b59c0e5628\",\n                                \"0x15\" : \"0x069ef5e376c0a1ea82f9dfc2e0001a7f385d655eef9a6f976c7a5d2c493ea3ad\"\n\t\t\t}\n\t\t    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : [20],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t\"storage\" : {\n\t\t\t\t\"0x00\" : \"0x01\",\n                                \"0x01\" : \"0x01\",\n                                \"0x0a\" : \"0x1fd3b816d9951dcb9aa9797d25e51a865987703ae83cd69c4658679f0350ae2b\",\n                                \"0x0b\" : \"0x29ce3d80a74ddc13784beb25ca9fbfd048a3265a32c6f38b92060c5093a0e7a7\",\n                                \"0x14\" : \"0x2c15ed1902e189486ab6b625aa982510aef6246b21a1e1bcea382da4d735e8ba\",\n                                \"0x15\" : \"0x02103e58cbd2fa8081763442ab46c26a9b8051e9b049c3948c8d7d0e139c5e3f\"\n\t\t\t}\n\t\t    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : [21],\n                    \"gas\" : [0,3],\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t        \"storage\" : {\n\t\t\t\t        \"0x00\" : \"0x01\",\n                        \"0x01\" : \"0x01\",\n                        \"0x0a\" : \"0x1d78954c630b3895fbbfafac1294f2c0158879fdc70bfe18222890e7bfb66fba\",\n                        \"0x0b\" : \"0x101c3346e98b136a7078aebd427dced763722d77e3d7985342e0bffcc6ea4d56\"\n\t\t\t            }\n\t\t            }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : [22],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t\"storage\" : {\n\t\t\t\t\"0x00\" : \"0x01\",\n                                \"0x01\" : \"0x01\",\n                                \"0x02\" : \"0x01\",\n                                \"0x03\" : \"0x01\",\n                                \"0x0a\" : \"0x2fa739d4cde056d8fd75427345cbb34159856e06a4ffad64159c4773f23fbf4b\",\n                                \"0x0b\" : \"0x1eed5d5325c31fc89dd541a13d7f63b981fae8d4bf78a6b08a38a601fcfea97b\",\n                                \"0x14\" : \"0x2fa739d4cde056d8fd75427345cbb34159856e06a4ffad64159c4773f23fbf4b\",\n                                \"0x15\" : \"0x1eed5d5325c31fc89dd541a13d7f63b981fae8d4bf78a6b08a38a601fcfea97b\"\n\t\t\t}\n\t\t    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : [23],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t\"storage\" : {\n\t\t\t\t\"0x00\" : \"0x01\",\n                                \"0x01\" : \"0x01\",\n                                \"0x02\" : \"0x01\",\n                                \"0x03\" : \"0x01\",\n                                \"0x0a\" : \"0x2f588cffe99db877a4434b598ab28f81e0522910ea52b45f0adaa772b2d5d352\",\n                                \"0x0b\" : \"0x1d701ec9e3fca50e84777f0f68caff5bff48cf6a6bd4428462ae9366cf0582b0\",\n                                \"0x14\" : \"0x2f588cffe99db877a4434b598ab28f81e0522910ea52b45f0adaa772b2d5d352\",\n                                \"0x15\" : \"0x1d701ec9e3fca50e84777f0f68caff5bff48cf6a6bd4428462ae9366cf0582b0\"\n\t\t\t}\n\t\t    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : [24],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t\"storage\" : {\n\t\t\t\t\"0x00\" : \"0x01\",\n                                \"0x01\" : \"0x01\",\n                                \"0x0a\" : \"0x2fa739d4cde056d8fd75427345cbb34159856e06a4ffad64159c4773f23fbf4b\",\n                                \"0x0b\" : \"0x1eed5d5325c31fc89dd541a13d7f63b981fae8d4bf78a6b08a38a601fcfea97b\",\n                                \"0x14\" : \"0x08e2142845db159bd105879a109fe7a6f254ed3ddae0e9cd8a2aeae05e5f647b\",\n                                \"0x15\" : \"0x221108ee615499d2e0a1113ca1a858a34e055f9da2d30e6e6ab392b049944a92\"\n\t\t\t}\n\t\t    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : [25],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t\"storage\" : {\n\t\t\t\t\"0x00\" : \"0x01\",\n                                \"0x01\" : \"0x01\",\n                                \"0x02\" : \"0x01\",\n                                \"0x03\" : \"0x01\",\n                                \"0x0a\" : \"0x0769bf9ac56bea3ff40232bcb1b6bd159315d84715b8e679f2d355961915abf0\",\n                                \"0x0b\" : \"0x2ab799bee0489429554fdb7c8d086475319e63b40b9c5b57cdf1ff3dd9fe2261\",\n                                \"0x14\" : \"0x0769bf9ac56bea3ff40232bcb1b6bd159315d84715b8e679f2d355961915abf0\",\n                                \"0x15\" : \"0x2ab799bee0489429554fdb7c8d086475319e63b40b9c5b57cdf1ff3dd9fe2261\"\n\t\t\t}\n\t\t    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : [27],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t\"storage\" : {\n\t\t\t\t\"0x00\" : \"0x01\",\n                                \"0x01\" : \"0x01\",\n                                \"0x02\" : \"0x01\",\n                                \"0x03\" : \"0x01\",\n                                \"0x0a\" : \"0x01\",\n                                \"0x0b\" : \"0x30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd45\",\n                                \"0x14\" : \"0x01\",\n                                \"0x15\" : \"0x30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd45\"\n\t\t\t}\n\t\t    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : [28],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t\"storage\" : {\n\t\t\t\t\"0x00\" : \"0x01\",\n                                \"0x01\" : \"0x01\",\n                                \"0x02\" : \"0x01\",\n                                \"0x03\" : \"0x01\",\n                                \"0x0a\" : \"0x030644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd3\",\n                                \"0x0b\" : \"0x1a76dae6d3272396d0cbe61fced2bc532edac647851e3ac53ce1cc9c7e645a83\",\n                                \"0x14\" : \"0x030644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd3\",\n                                \"0x15\" : \"0x1a76dae6d3272396d0cbe61fced2bc532edac647851e3ac53ce1cc9c7e645a83\"\n\t\t\t}\n\t\t    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : [29],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t\"storage\" : {\n\t\t\t\t\"0x00\" : \"0x01\",\n                                \"0x01\" : \"0x01\",\n                                \"0x02\" : \"0x01\",\n                                \"0x03\" : \"0x01\",\n                                \"0x0a\" : \"0x01\",\n                                \"0x0b\" : \"0x02\",\n                                \"0x14\" : \"0x01\",\n                                \"0x15\" : \"0x02\"\n\t\t\t}\n\t\t    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : [30],\n                    \"gas\" : [0,3],\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t\"storage\" : {\n\t\t\t\t\"0x00\" : \"0x01\",\n                                \"0x01\" : \"0x01\",\n                                \"0x0a\" : \"0x113aeccecdaf57cd8c0aace591774949dcdaf892555fa86726fa7e679b89c067\",\n                                \"0x0b\" : \"0x246493eeceb7867dda07bb342fd7b460b44635e9f8db1f922a7541a9e93e63ce\"\n\t\t\t}\n\t\t    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : [31],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t\"storage\" : {\n\t\t\t\t\"0x00\" : \"0x01\",\n                                \"0x01\" : \"0x01\",\n                                \"0x02\" : \"0x01\",\n                                \"0x03\" : \"0x01\",\n                                \"0x0a\" : \"0x1fd3b816d9951dcb9aa9797d25e51a865987703ae83cd69c4658679f0350ae2b\",\n                                \"0x0b\" : \"0x069610f239e3c41640045a90b6e1988d4ede443735aad701aa1a7fc644dc15a0\",\n                                \"0x14\" : \"0x1fd3b816d9951dcb9aa9797d25e51a865987703ae83cd69c4658679f0350ae2b\",\n                                \"0x15\" : \"0x069610f239e3c41640045a90b6e1988d4ede443735aad701aa1a7fc644dc15a0\"\n\t\t\t}\n\t\t    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : [32],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t\"storage\" : {\n\t\t\t\t\"0x00\" : \"0x01\",\n                                \"0x01\" : \"0x01\",\n                                \"0x02\" : \"0x01\",\n                                \"0x03\" : \"0x01\",\n                                \"0x0a\" : \"0x0ccbec17235f5b9cc5e42f3df6364a76ecdd0101ddda8fc5dc0ba0b59c0e5628\",\n                                \"0x0b\" : \"0x29c5588f6a70fe3f355665f3a1813dde5f24053278d75af5cfa62eea8f3e599a\",\n                                \"0x14\" : \"0x0ccbec17235f5b9cc5e42f3df6364a76ecdd0101ddda8fc5dc0ba0b59c0e5628\",\n                                \"0x15\" : \"0x29c5588f6a70fe3f355665f3a1813dde5f24053278d75af5cfa62eea8f3e599a\"\n\t\t\t}\n\t\t    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : [33],\n                    \"gas\" : [0],\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t\"storage\" : {\n\t\t\t\t\"0x00\" : \"0x01\",\n                                \"0x01\" : \"0x01\",\n                                \"0x0a\" : \"0x1fd3b816d9951dcb9aa9797d25e51a865987703ae83cd69c4658679f0350ae2b\",\n                                \"0x0b\" : \"0x069610f239e3c41640045a90b6e1988d4ede443735aad701aa1a7fc644dc15a0\",\n                                \"0x14\" : \"0x2c15ed1902e189486ab6b625aa982510aef6246b21a1e1bcea382da4d735e8ba\",\n                                \"0x15\" : \"0x2e54101a155ea5a936da1173d63a95f2fc0118a7b82806f8af930f08c4e09f08\"\n\t\t\t}\n\t\t    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : [34],\n                    \"gas\" : [0,3],\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t\"storage\" : {\n\t\t\t\t\"0x00\" : \"0x01\",\n                                \"0x01\" : \"0x01\",\n                                \"0x0a\" : \"0x1d78954c630b3895fbbfafac1294f2c0158879fdc70bfe18222890e7bfb66fba\",\n                                \"0x0b\" : \"0x20481b2bf7a68cbf47d796f93f038986340f3d19849a3239f93fcc1a1192aff1\"\n\t\t\t}\n\t\t    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : [35],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t\"storage\" : {\n\t\t\t\t\"0x00\" : \"0x01\",\n                                \"0x01\" : \"0x01\",\n                                \"0x02\" : \"0x01\",\n                                \"0x03\" : \"0x01\",\n                                \"0x0a\" : \"0x2fa739d4cde056d8fd75427345cbb34159856e06a4ffad64159c4773f23fbf4b\",\n                                \"0x0b\" : \"0x1176f11fbb6e80611a7b04154401f4a4158681bca8f923dcb1e7e614db7e53cc\",\n                                \"0x14\" : \"0x2fa739d4cde056d8fd75427345cbb34159856e06a4ffad64159c4773f23fbf4b\",\n                                \"0x15\" : \"0x1176f11fbb6e80611a7b04154401f4a4158681bca8f923dcb1e7e614db7e53cc\"\n\t\t\t}\n\t\t    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : [36],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t\"storage\" : {\n\t\t\t\t\"0x00\" : \"0x01\",\n                                \"0x01\" : \"0x01\",\n                                \"0x02\" : \"0x01\",\n                                \"0x03\" : \"0x01\",\n                                \"0x0a\" : \"0x2f588cffe99db877a4434b598ab28f81e0522910ea52b45f0adaa772b2d5d352\",\n                                \"0x0b\" : \"0x12f42fa8fd34fb1b33d8c6a718b6590198389b26fc9d8808d971f8b009777a97\",\n                                \"0x14\" : \"0x2f588cffe99db877a4434b598ab28f81e0522910ea52b45f0adaa772b2d5d352\",\n                                \"0x15\" : \"0x12f42fa8fd34fb1b33d8c6a718b6590198389b26fc9d8808d971f8b009777a97\"\n\t\t\t}\n\t\t    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : [37],\n                    \"gas\" : [0],\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t\"storage\" : {\n\t\t\t\t\"0x00\" : \"0x01\",\n                                \"0x01\" : \"0x01\",\n                                \"0x0a\" : \"0x2fa739d4cde056d8fd75427345cbb34159856e06a4ffad64159c4773f23fbf4b\",\n                                \"0x0b\" : \"0x1176f11fbb6e80611a7b04154401f4a4158681bca8f923dcb1e7e614db7e53cc\",\n                                \"0x14\" : \"0x08e2142845db159bd105879a109fe7a6f254ed3ddae0e9cd8a2aeae05e5f647b\",\n                                \"0x15\" : \"0x0e5345847fdd0656d7af3479dfd8ffba497c0af3c59ebc1ed16cf9668ee8b2b5\"\n\t\t\t}\n\t\t    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : [1,2],\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t\"storage\" : {\n\t\t\t\t\n\t\t\t}\n\t\t    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : [10,11,13,14,15,16,18,19,22,23,25,27,28,29,32,35,36],\n                    \"gas\" : [3],\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t\"storage\" : {\n\t\t\t     \n\t\t\t}\n\t\t    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : [0,1,2,3,4,5,6,7,8,9,12,26],\n                    \"gas\" : [3],\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t        \"storage\" : {\n\t\t\t             \"0x00\" : \"0x01\",\n\t\t\t             \"0x01\" : \"0x01\",\n\t\t\t             \"0x02\" : \"0x01\",\n\t\t\t             \"0x03\" : \"0x01\"\n    \t\t\t        }\n        \t\t    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : [17],\n                    \"gas\" : [3],\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t        \"storage\" : {\n                            \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x0a\" : \"0x113aeccecdaf57cd8c0aace591774949dcdaf892555fa86726fa7e679b89c067\",\n                            \"0x0b\" : \"0x0bffba84127a19abde488a8251a9a3fce33b34a76f96aafb11ab4a6cef3e9979\"\n    \t\t\t        }\n        \t\t    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : [20,24,31,33,37],\n                    \"gas\" : [3],\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t        \"storage\" : {\n                            \"0x00\" : \"0x00\"\n    \t\t\t        }\n        \t\t    }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"1\",\n                \"storage\" : {\n                }\n            },\n\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"\",\n\t\t\"//00 code\" : \"  00-32  :  x\",\n\t\t\"//01 code\" : \"  32-64  :  y\",\n\t\t\"//02 code\" : \"  64-96  :  a\",\n\t\t\"//03 code\" : \" 96-128  :  b\",\n\t\t\"//04 code\" : \"128-160  :  x2\",\n\t\t\"//05 code\" : \"160-192  :  y2\",\n\t\t\"//06 code\" : \"192-224  :  z\",\n\n\t\t\"//07 code\" : \"300-332  :  x+a\",\n\t\t\"//08 code\" : \"332-364  :  y+b\",\n\t\t\"//09 code\" : \"400-432  :  x2*z\",\n\t\t\"//0a code\" : \"432-464  :  y2*z\",\n\n\t\t\"//0b code\" : \"  [[0]]  :  add(xy   + ab)\",\n\t\t\"//0c code\" : \"  [[1]]  :  mul(x2y2 * z)\",\n\t\t\"//0d code\" : \"  [[2]]  :  (x + a) == (x2 * z)\",\n\t\t\"//0e code\" : \"  [[3]]  :  (y + b) == (y2 * z)\",\n\t\t\"//0f code\" : \" [[0a]]  :  x  + a\",\n\t\t\"//10 code\" : \" [[0b]]  :  y  + b\",\n\t\t\"//11 code\" : \" [[14]]  :  x2 * z\",\n\t\t\"//12 code\" : \" [[15]]  :  y2 * z\",\n\n                \"code\" : \"{(MSTORE 0 (CALLDATALOAD 0)) (MSTORE 32 (CALLDATALOAD 32)) (MSTORE 64 (CALLDATALOAD 64)) (MSTORE 96 (CALLDATALOAD 96))  (MSTORE 128 (CALLDATALOAD 128)) (MSTORE 160 (CALLDATALOAD 160)) (MSTORE 192 (CALLDATALOAD 192)) [[0]](CALLCODE 500000 6 0 0 128 300 64)  [[1]](CALLCODE 500000 7 0 128 96 400 64) [[10]] (MLOAD 300)  [[11]] (MLOAD 332) [[20]] (MLOAD 400)  [[21]] (MLOAD 432) [[2]] (EQ (SLOAD 10) (SLOAD 20)) [[3]] (EQ (SLOAD 11) (SLOAD 21))}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n\t    \"// data\" : [\n\t\t\"[0] (x,y) + (x,y) == (x,y) * 2\",\n\t\t\"[1] (x,y) + (x,y) + (x,y) == (x,y) * 3\",\n\t\t\"[2] (-x, -y) + (x,y) == (x,y) * 0\",\n\t\t\"[3] (-x, -y) + (0, 0)  == (x, y) * -1\",\n\t\t\"[4] (-x, -y) + (-x, -y)  == (x, y) * -2\",\n\t\t\"[5] (x, y) + (0, 0)  == (x, y) * 1\",\n\t\t\"[6] (-x, -y) + (0, 0)  == (x, y) * -1\",\n\t\t\"[7] (-x, -y) + (-x, -y)  == (x, y) * -2\",\n\t\t\"[8] (-x, -y) + (0, 0)  == (x, y) * -1\",\n\t\t\"[9] (-x, -y) + (-x, -y)  == (x, y) * -2\",\n\t\t\"[10] (x,y) + (x,y) == (x,y) * 2\",\n\t\t\"[11] (x,y) + (x,y) + (x,y) == (x,y) * 3\",\n\t\t\"[12] (-x, -y) + (x,y) == (x,y) * 0\",\n\t\t\"[13] (-x, -y) + (-x, -y) == (-x,-y) * 2\",\n\t\t\"[14] (-x, -y) + (0, 0)  == (x, y) * -1\",\n\t\t\"[15] (-x, -y) + (-x, -y)  == (x, y) * -2\",\n\t\t\"[16] (x, y) + (0, 0)  == (x, y) * 1\",\n\t\t\"[17] (-x, -y) + (x,y) == (x,y) * 0\",\n\t\t\"[18] (-x, -y) + (-x, -y) == (-x,-y) * 2\",\n\t\t\"[19] (-x, -y) + (0, 0)  == (x, y) * -1\",\n\t\t\"[20] (-x, -y) + (-x, -y)  == (x, y) * -2\",\n\t\t\"[21] (-x, -y) + (x,y) == (x,y) * 0\",\n\t\t\"[22] (-x, -y) + (-x, -y) == (-x,-y) * 2\",\n\t\t\"[23] (-x, -y) + (0, 0)  == (x, y) * -1\",\n\t\t\"[24] (-x, -y) + (-x, -y)  == (x, y) * -2\",\n\t\t\"[25] (x,y) + (x,y) + (x,y) == (x,y) * 3\",\n\t\t\"[26] (-x, -y) + (x,y) == (x,y) * 0\",\n\t\t\"[27] (-x, -y) + (0, 0)  == (x, y) * -1\",\n\t\t\"[28] (-x, -y) + (-x, -y)  == (x, y) * -2\",\n\t\t\"[29] (x, y) + (0, 0)  == (x, y) * 1\",\n\t\t\"[30] (-x, -y) + (x,y) == (x,y) * 0\",\n\t\t\"[31] (-x, -y) + (-x, -y) == (-x,-y) * 2\",\n\t\t\"[32] (-x, -y) + (0, 0)  == (x, y) * -1\",\n\t\t\"[33] (-x, -y) + (-x, -y)  == (x, y) * -2\",\n\t\t\"[34] (-x, -y) + (x,y) == (x,y) * 0\",\n\t\t\"[35] (-x, -y) + (-x, -y) == (-x,-y) * 2\",\n\t\t\"[36] (-x, -y) + (0, 0)  == (x, y) * -1\",\n\t\t\"[37] (-x, -y) + (-x, -y)  == (x, y) * -2\"\n\t    ],\n            \"data\" : [\n        \":raw 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002\",\n\t\t\":raw 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003\",\n\t\t\":raw 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n\t\t\":raw 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000\",\n\t\t\":raw 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffffff\",\n\t\t\":raw 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\",\n\t\t\":raw 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd46\",\n\t\t\":raw 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd45\",\n\t\t\":raw 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n\t\t\":raw 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\",\n\t\t\":raw 0x000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd45000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd45000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd450000000000000000000000000000000000000000000000000000000000000002\",\n\t\t\":raw 0x030644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd31a76dae6d3272396d0cbe61fced2bc532edac647851e3ac53ce1cc9c7e645a83000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd45000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd450000000000000000000000000000000000000000000000000000000000000003\",\n\t\t\":raw 0x00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd45000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd450000000000000000000000000000000000000000000000000000000000000000\",\n\t\t\":raw 0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002\",\n\t\t\":raw 0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4530644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000\",\n\t\t\":raw 0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4530644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffffff\",\n\t\t\":raw 0x000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd450000000000000000000000000000000000000000000000000000000000000001\",\n\t\t\":raw 0x0ccbec17235f5b9cc5e42f3df6364a76ecdd0101ddda8fc5dc0ba0b59c0e5628069ef5e376c0a1ea82f9dfc2e0001a7f385d655eef9a6f976c7a5d2c493ea3ad000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd45000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd450000000000000000000000000000000000000000000000000000000000000000\",\n\t\t\":raw 0x0ccbec17235f5b9cc5e42f3df6364a76ecdd0101ddda8fc5dc0ba0b59c0e5628069ef5e376c0a1ea82f9dfc2e0001a7f385d655eef9a6f976c7a5d2c493ea3ad0ccbec17235f5b9cc5e42f3df6364a76ecdd0101ddda8fc5dc0ba0b59c0e5628069ef5e376c0a1ea82f9dfc2e0001a7f385d655eef9a6f976c7a5d2c493ea3ad0ccbec17235f5b9cc5e42f3df6364a76ecdd0101ddda8fc5dc0ba0b59c0e5628069ef5e376c0a1ea82f9dfc2e0001a7f385d655eef9a6f976c7a5d2c493ea3ad0000000000000000000000000000000000000000000000000000000000000002\",\n\t\t\":raw 0x0ccbec17235f5b9cc5e42f3df6364a76ecdd0101ddda8fc5dc0ba0b59c0e5628069ef5e376c0a1ea82f9dfc2e0001a7f385d655eef9a6f976c7a5d2c493ea3ad00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4530644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd46\",\n\t\t\":raw 0x0ccbec17235f5b9cc5e42f3df6364a76ecdd0101ddda8fc5dc0ba0b59c0e5628069ef5e376c0a1ea82f9dfc2e0001a7f385d655eef9a6f976c7a5d2c493ea3ad0ccbec17235f5b9cc5e42f3df6364a76ecdd0101ddda8fc5dc0ba0b59c0e5628069ef5e376c0a1ea82f9dfc2e0001a7f385d655eef9a6f976c7a5d2c493ea3ad000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4530644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd45\",\n\t\t\":raw 0x2f588cffe99db877a4434b598ab28f81e0522910ea52b45f0adaa772b2d5d3521d701ec9e3fca50e84777f0f68caff5bff48cf6a6bd4428462ae9366cf0582b0000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd45000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd450000000000000000000000000000000000000000000000000000000000000000\",\n\t\t\":raw 0x2f588cffe99db877a4434b598ab28f81e0522910ea52b45f0adaa772b2d5d3521d701ec9e3fca50e84777f0f68caff5bff48cf6a6bd4428462ae9366cf0582b02f588cffe99db877a4434b598ab28f81e0522910ea52b45f0adaa772b2d5d3521d701ec9e3fca50e84777f0f68caff5bff48cf6a6bd4428462ae9366cf0582b02f588cffe99db877a4434b598ab28f81e0522910ea52b45f0adaa772b2d5d3521d701ec9e3fca50e84777f0f68caff5bff48cf6a6bd4428462ae9366cf0582b00000000000000000000000000000000000000000000000000000000000000002\",\n\t\t\":raw 0x2f588cffe99db877a4434b598ab28f81e0522910ea52b45f0adaa772b2d5d3521d701ec9e3fca50e84777f0f68caff5bff48cf6a6bd4428462ae9366cf0582b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd45ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n\t\t\":raw 0x2f588cffe99db877a4434b598ab28f81e0522910ea52b45f0adaa772b2d5d3521d701ec9e3fca50e84777f0f68caff5bff48cf6a6bd4428462ae9366cf0582b02f588cffe99db877a4434b598ab28f81e0522910ea52b45f0adaa772b2d5d3521d701ec9e3fca50e84777f0f68caff5bff48cf6a6bd4428462ae9366cf0582b0000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd45fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\",\n\t\t\":raw 0x030644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd315ed738c0e0a7c92e7845f96b2ae9c0a68a6a449e3538fc7ff3ebf7a5a18a2c400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003\",\n\t\t\":raw 0x000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4500000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000\",\n\t\t\":raw 0x000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd45000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000230644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000\",\n\t\t\":raw 0x000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd45000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd450000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000230644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffffff\",\n\t\t\":raw 0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001\",\n\t\t\":raw 0x0ccbec17235f5b9cc5e42f3df6364a76ecdd0101ddda8fc5dc0ba0b59c0e562829c5588f6a70fe3f355665f3a1813dde5f24053278d75af5cfa62eea8f3e599a00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000\",\n\t\t\":raw 0x0ccbec17235f5b9cc5e42f3df6364a76ecdd0101ddda8fc5dc0ba0b59c0e562829c5588f6a70fe3f355665f3a1813dde5f24053278d75af5cfa62eea8f3e599a0ccbec17235f5b9cc5e42f3df6364a76ecdd0101ddda8fc5dc0ba0b59c0e562829c5588f6a70fe3f355665f3a1813dde5f24053278d75af5cfa62eea8f3e599a0ccbec17235f5b9cc5e42f3df6364a76ecdd0101ddda8fc5dc0ba0b59c0e562829c5588f6a70fe3f355665f3a1813dde5f24053278d75af5cfa62eea8f3e599a0000000000000000000000000000000000000000000000000000000000000002\",\n\t\t\":raw 0x0ccbec17235f5b9cc5e42f3df6364a76ecdd0101ddda8fc5dc0ba0b59c0e562829c5588f6a70fe3f355665f3a1813dde5f24053278d75af5cfa62eea8f3e599a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000230644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd46\",\n\t\t\":raw 0x0ccbec17235f5b9cc5e42f3df6364a76ecdd0101ddda8fc5dc0ba0b59c0e562829c5588f6a70fe3f355665f3a1813dde5f24053278d75af5cfa62eea8f3e599a0ccbec17235f5b9cc5e42f3df6364a76ecdd0101ddda8fc5dc0ba0b59c0e562829c5588f6a70fe3f355665f3a1813dde5f24053278d75af5cfa62eea8f3e599a0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000230644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd45\",\n\t\t\":raw 0x2f588cffe99db877a4434b598ab28f81e0522910ea52b45f0adaa772b2d5d35212f42fa8fd34fb1b33d8c6a718b6590198389b26fc9d8808d971f8b009777a9700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000\",\n\t\t\":raw 0x2f588cffe99db877a4434b598ab28f81e0522910ea52b45f0adaa772b2d5d35212f42fa8fd34fb1b33d8c6a718b6590198389b26fc9d8808d971f8b009777a972f588cffe99db877a4434b598ab28f81e0522910ea52b45f0adaa772b2d5d35212f42fa8fd34fb1b33d8c6a718b6590198389b26fc9d8808d971f8b009777a972f588cffe99db877a4434b598ab28f81e0522910ea52b45f0adaa772b2d5d35212f42fa8fd34fb1b33d8c6a718b6590198389b26fc9d8808d971f8b009777a970000000000000000000000000000000000000000000000000000000000000002\",\n\t\t\":raw 0x2f588cffe99db877a4434b598ab28f81e0522910ea52b45f0adaa772b2d5d35212f42fa8fd34fb1b33d8c6a718b6590198389b26fc9d8808d971f8b009777a970000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n\t\t\":raw 0x2f588cffe99db877a4434b598ab28f81e0522910ea52b45f0adaa772b2d5d35212f42fa8fd34fb1b33d8c6a718b6590198389b26fc9d8808d971f8b009777a972f588cffe99db877a4434b598ab28f81e0522910ea52b45f0adaa772b2d5d35212f42fa8fd34fb1b33d8c6a718b6590198389b26fc9d8808d971f8b009777a9700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\"\n            ],\n            \"gasLimit\" : [\n                \"2000000\", \"90000\", \"110000\", \"150000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"1\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge/pointMulAddFiller.json",
    "content": "{\n    \"pointMulAdd\" : {\n        \"env\" : {\n            \"currentCoinbase\" : \"68795C4AA09D6f4Ed3E5DeDDf8c2AD3049A601da\",\n            \"currentDifficulty\" : \"0x020000\",\n            \"currentGasLimit\" : \"4012015\",\n            \"currentNumber\" : \"1\",\n            \"currentTimestamp\" : \"1000\"\n        },\n        \"expect\" : [\n            {\n                \"indexes\" : {\n                    \"data\" : [0],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t\t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t\t\t\"storage\" : {\n\t\t\t\t\t\t    \"0x00\" : \"0x01\",\n                            \"0x01\" : \"0x01\",\n                            \"0x02\" : \"0x01\",\n\t\t\t\t\t\t    \"0x03\" : \"0x01\",\n                            \"0x0a\" : \"0x1de49a4b0233273bba8146af82042d004f2085ec982397db0d97da17204cc286\",\n                            \"0x0b\" : \"0x0217327ffc463919bef80cc166d09c6172639d8589799928761bcd9f22c903d4\",\n                            \"0x14\" : \"0x1de49a4b0233273bba8146af82042d004f2085ec982397db0d97da17204cc286\",\n                            \"0x15\" : \"0x0217327ffc463919bef80cc166d09c6172639d8589799928761bcd9f22c903d4\"\n\t\t\t\t\t\t}\n\t\t\t\t    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : [1],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t\t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t\t\t\t\"storage\" : {\n\t\t\t\t\t\t     \"0x00\" : \"0x01\",\n                             \"0x01\" : \"0x01\",\n                             \"0x02\" : \"0x01\",\n                             \"0x03\" : \"0x01\",\n                             \"0x0a\" : \"0x1f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c49\",\n                             \"0x0b\" : \"0x018683193ae021a2f8920fed186cde5d9b1365116865281ccf884c1f28b1df8f\",\n                             \"0x14\" : \"0x1f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c49\",\n                             \"0x15\" : \"0x018683193ae021a2f8920fed186cde5d9b1365116865281ccf884c1f28b1df8f\"\n\t\t\t\t\t\t}\n\t\t\t\t    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : [2],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t\t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t\t\t\t\"storage\" : {\n\t\t\t\t\t\t     \"0x00\" : \"0x01\",\n                             \"0x01\" : \"0x01\",\n                             \"0x02\" : \"0x01\",\n                             \"0x03\" : \"0x01\"\n\t\t\t\t\t\t}\n\t\t\t\t    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : [3],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \t\t\"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t\t\t\t\"storage\" : {\n\t\t\t     \t\t\t \"0x00\" : \"0x01\",\n                             \"0x01\" : \"0x01\",\n                             \"0x02\" : \"0x01\",\n                             \"0x03\" : \"0x01\",\n                             \"0x0a\" : \"0x255e468453d7636cc1563e43f7521755f95e6c56043c7321b4ae04e772945fb0\",\n                             \"0x0b\" : \"0x0225c5f1623620fd84bfbab2d861a9d1e570f7727c540f403085998ebaf407c4\",\n                             \"0x14\" : \"0x255e468453d7636cc1563e43f7521755f95e6c56043c7321b4ae04e772945fb0\",\n                             \"0x15\" : \"0x0225c5f1623620fd84bfbab2d861a9d1e570f7727c540f403085998ebaf407c4\"\n\t\t\t\t\t\t}\n\t\t    \t\t}\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : [4],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \t\t\"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t\t\t\t\"storage\" : {\n\t\t\t      \t\t\t  \"0x00\" : \"0x01\",\n                              \"0x01\" : \"0x01\",\n                              \"0x02\" : \"0x01\",\n                              \"0x03\" : \"0x01\",\n                              \"0x0a\" : \"0x1f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c49\",\n                              \"0x0b\" : \"0x2eddcb59a6517e86bfbe35c9691479fffc6e0580000ca2706c983ff7afcb1db8\",\n                              \"0x14\" : \"0x1f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c49\",\n                              \"0x15\" : \"0x2eddcb59a6517e86bfbe35c9691479fffc6e0580000ca2706c983ff7afcb1db8\"\n\t\t\t\t\t\t}\n\t\t    \t\t}\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : [5],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t    \t\t\t\"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t\t\t\t\"storage\" : {\n\t\t\t      \t\t\t  \"0x00\" : \"0x01\",\n                              \"0x01\" : \"0x01\",\n                              \"0x02\" : \"0x01\",\n                              \"0x03\" : \"0x01\",\n                              \"0x0a\" : \"0x255e468453d7636cc1563e43f7521755f95e6c56043c7321b4ae04e772945fb0\",\n                              \"0x0b\" : \"0x0225c5f1623620fd84bfbab2d861a9d1e570f7727c540f403085998ebaf407c4\",\n                              \"0x14\" : \"0x255e468453d7636cc1563e43f7521755f95e6c56043c7321b4ae04e772945fb0\",\n                              \"0x15\" : \"0x0225c5f1623620fd84bfbab2d861a9d1e570f7727c540f403085998ebaf407c4\"\n\t\t\t\t\t\t}\n\t\t    \t\t}\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : [6],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t    \t\t\"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t\t\t\t\"storage\" : {\n\t\t\t      \t\t\t  \"0x00\" : \"0x01\",\n                              \"0x01\" : \"0x01\",\n                              \"0x02\" : \"0x01\",\n                              \"0x03\" : \"0x01\",\n                              \"0x0a\" : \"0x1de49a4b0233273bba8146af82042d004f2085ec982397db0d97da17204cc286\",\n                              \"0x0b\" : \"0x0217327ffc463919bef80cc166d09c6172639d8589799928761bcd9f22c903d4\",\n                              \"0x14\" : \"0x1de49a4b0233273bba8146af82042d004f2085ec982397db0d97da17204cc286\",\n                              \"0x15\" : \"0x0217327ffc463919bef80cc166d09c6172639d8589799928761bcd9f22c903d4\"\n\t\t\t\t\t\t}\n\t\t    \t\t}\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : [7],\n                    \"gas\" : [0,3],\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n            \t\t\t\"storage\" : {\n            \t\t\t      \"0x00\" : \"0x01\",\n                              \"0x01\" : \"0x01\",\n                              \"0x0a\" : \"0x030644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd3\",\n                              \"0x0b\" : \"0x15ed738c0e0a7c92e7845f96b2ae9c0a68a6a449e3538fc7ff3ebf7a5a18a2c4\",\n                              \"0x14\" : \"0x01\",\n                              \"0x15\" : \"0x30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd45\"\n            \t\t\t}\n        \t\t    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : [8],\n                    \"gas\" : 0,\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n        \t\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n            \t\t\t\"storage\" : {\n            \t\t\t      \"0x00\" : \"0x01\",\n                              \"0x01\" : \"0x01\",\n                              \"0x02\" : \"0x01\",\n                              \"0x03\" : \"0x01\"\n            \t\t\t}\n        \t\t    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : -1,\n                    \"gas\" : [1,2],\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n\t\t\t            \"storage\" : {\t\t\t              \n\t\t\t            }\n            \t    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : [0,1,3,4,5,6],\n                    \"gas\" : [3],\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n    \t\t\t        \"storage\" : {\t\t\t              \n    \t\t\t        }\n        \t\t    }\n                }\n            },\n            {\n                \"indexes\" : {\n                    \"data\" : [2,8],\n                    \"gas\" : [3],\n                    \"value\" : -1\n                },\n                \"network\" : [\">=Cancun\"],\n                \"result\" : {\n\t\t            \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n    \t\t\t        \"storage\" : {\n\t\t\t              \"0x00\" : \"0x01\",\n                          \"0x01\" : \"0x01\",\n                          \"0x02\" : \"0x01\",\n                          \"0x03\" : \"0x01\"\t      \n    \t\t\t        }\n\t\t            }\n                }\n            }\n        ],\n        \"pre\" : {\n            \"a94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"1000000000000000000\",\n                \"code\" : \"\",\n                \"nonce\" : \"1\",\n                \"storage\" : {\n                }\n            },\n\t    \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\" : {\n                \"balance\" : \"\",\n\t\t\"//00 code0\" : \"  00-32  :  x\",\n\t\t\"//01 code\" : \"  32-64  :  y\",\n\t\t\"//02 code\" : \"  64-96  :  a\",\n\t\t\"//03 code\" : \" 96-128  :  b\",\n\t\t\"//04 code\" : \"128-160  :  x2\",\n\t\t\"//05 code\" : \"160-192  :  y2\",\n\t\t\"//06 code\" : \"192-224  :  z\",\n\n\t\t\"//07 code\" : \"300-332  :  x+a\",\n\t\t\"//08 code\" : \"332-364  :  y+b\",\n\t\t\"//09 code\" : \"400-432  :  x2*z\",\n\t\t\"//0a code\" : \"432-464  :  y2*z\",\n\n\t\t\"//0b code\" : \"  [[0]]  :  add(xy   + ab)\",\n\t\t\"//0c code\" : \"  [[1]]  :  mul(x2y2 * z)\",\n\t\t\"//0d code\" : \"  [[2]]  :  (x + a) == (x2 * z)\",\n\t\t\"//0e code\" : \"  [[3]]  :  (y + b) == (y2 * z)\",\n\t\t\"//0f code\" : \" [[0a]]  :  x  + a\",\n\t\t\"//10 code\" : \" [[0b]]  :  y  + b\",\n\t\t\"//11 code\" : \" [[14]]  :  x2 * z\",\n\t\t\"//12 code\" : \" [[15]]  :  y2 * z\",\n\n                \"code\" : \"{(MSTORE 0 (CALLDATALOAD 0)) (MSTORE 32 (CALLDATALOAD 32)) (MSTORE 64 (CALLDATALOAD 64)) (MSTORE 96 (CALLDATALOAD 96))  (MSTORE 128 (CALLDATALOAD 128)) (MSTORE 160 (CALLDATALOAD 160)) (MSTORE 192 (CALLDATALOAD 192)) [[0]](CALLCODE 500000 6 0 0 128 300 64)  [[1]](CALLCODE 500000 7 0 128 96 400 64) [[10]] (MLOAD 300)  [[11]] (MLOAD 332) [[20]] (MLOAD 400)  [[21]] (MLOAD 432) [[2]] (EQ (SLOAD 10) (SLOAD 20)) [[3]] (EQ (SLOAD 11) (SLOAD 21))}\",\n                \"nonce\" : \"0\",\n                \"storage\" : {\n                }\n            }\n        },\n        \"transaction\" : {\n\t    \"// data\" : [\n\t\t\"(x,y) + (x,y) == (x,y) * 2\",\n\t\t\"(x,y) + (x,y) + (x,y) == (x,y) * 3\",\n\t\t\"(-x, -y) + (x,y) == (x,y) * 0\",\n\t\t\"(-x, -y) + (-x, -y) == (-x,-y) * 2\",\n\t\t\"(-x, -y) + (0, 0)  == (x, y) * -1\",\n\t\t\"(-x, -y) + (-x, -y)  == (x, y) * -2\",\n\t\t\"(x, y) + (0, 0)  == (x, y) * 1\",\n\t\t\"(1, 2) + (1, 2)  == (1, 2) * -1\",\n\t\t\"(1, 2) + (-1, -2)  == (1, 2) * 0\",\n\t\t\"30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000\"\n\t    ],\n            \"data\" : [\n\t\t\":raw 0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd216da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd216da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd216da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba0000000000000000000000000000000000000000000000000000000000000002\",\n\t\t\":raw 0x1de49a4b0233273bba8146af82042d004f2085ec982397db0d97da17204cc2860217327ffc463919bef80cc166d09c6172639d8589799928761bcd9f22c903d40f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd216da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd216da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba0000000000000000000000000000000000000000000000000000000000000003\",\n\t\t\":raw 0x1f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c492eddcb59a6517e86bfbe35c9691479fffc6e0580000ca2706c983ff7afcb1db81f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c49018683193ae021a2f8920fed186cde5d9b1365116865281ccf884c1f28b1df8f1f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c49018683193ae021a2f8920fed186cde5d9b1365116865281ccf884c1f28b1df8f0000000000000000000000000000000000000000000000000000000000000000\",\n\t\t\":raw 0x1f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c492eddcb59a6517e86bfbe35c9691479fffc6e0580000ca2706c983ff7afcb1db81f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c492eddcb59a6517e86bfbe35c9691479fffc6e0580000ca2706c983ff7afcb1db81f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c492eddcb59a6517e86bfbe35c9691479fffc6e0580000ca2706c983ff7afcb1db80000000000000000000000000000000000000000000000000000000000000002\",\n\t\t\":raw 0x1f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c492eddcb59a6517e86bfbe35c9691479fffc6e0580000ca2706c983ff7afcb1db8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c49018683193ae021a2f8920fed186cde5d9b1365116865281ccf884c1f28b1df8f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000\",\n\t\t\":raw 0x1f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c492eddcb59a6517e86bfbe35c9691479fffc6e0580000ca2706c983ff7afcb1db81f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c492eddcb59a6517e86bfbe35c9691479fffc6e0580000ca2706c983ff7afcb1db81f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c49018683193ae021a2f8920fed186cde5d9b1365116865281ccf884c1f28b1df8f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffffff\",\n\t\t\":raw 0x1de49a4b0233273bba8146af82042d004f2085ec982397db0d97da17204cc2860217327ffc463919bef80cc166d09c6172639d8589799928761bcd9f22c903d4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001de49a4b0233273bba8146af82042d004f2085ec982397db0d97da17204cc2860217327ffc463919bef80cc166d09c6172639d8589799928761bcd9f22c903d40000000000000000000000000000000000000000000000000000000000000001\",\n\t\t\":raw 0x00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000230644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000\",\n\t\t\":raw 0x00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd45000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000\"\n\n            ],\n            \"gasLimit\" : [\n                \"2000000\", \"90000\", \"110000\", \"192000\"\n            ],\n            \"gasPrice\" : \"10\",\n            \"nonce\" : \"1\",\n            \"secretKey\" : \"45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8\",\n            \"to\" : \"b94f5374fce5edbc8e2a8697c15331677e6ebf0b\",\n            \"value\" : [\n                \"0\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/__init__.py",
    "content": "\"\"\"Static State Tests Fillers from ethereum/tests repo.\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"\"\nREFERENCE_SPEC_VERSION = \"\"\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecadd_0-0_0-0_21000_0Filler.json",
    "content": "{\n    \"ecadd_0-0_0-0_21000_0\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"4\",\n                \"balance\": \"999999999999739314\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"260686\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xa660\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x4\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"5\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"5\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the points (0, 0) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 0 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecadd_0-0_0-0_21000_128Filler.json",
    "content": "{\n    \"ecadd_0-0_0-0_21000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"999999999999868434\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"131566\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xa8a0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x1\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"2\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"2\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the points (0, 0) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecadd_0-0_0-0_21000_192Filler.json",
    "content": "{\n    \"ecadd_0-0_0-0_21000_192\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"5\",\n                \"balance\": \"999999999999696722\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"303278\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xa9a0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x5\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"6\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"6\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the points (0, 0) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 192 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecadd_0-0_0-0_21000_64Filler.json",
    "content": "{\n    \"ecadd_0-0_0-0_21000_64\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"2\",\n                \"balance\": \"999999999999825266\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"174734\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xa7a0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x2\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"3\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"3\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the points (0, 0) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 64 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecadd_0-0_0-0_21000_80_ParisFiller.json",
    "content": "{\n    \"ecadd_0-0_0-0_21000_80_Paris\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"3\",\n                \"balance\": \"999999999999782354\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\" : \"10\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xa820\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x3\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"4\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n    \t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n            \t\t\t    \"0x00\" : \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n            \t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"4\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the points (0, 0) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 80 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecadd_0-0_0-0_25000_0Filler.json",
    "content": "{\n    \"ecadd_0-0_0-0_25000_0\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"22\",\n                \"balance\": \"999999999998969603\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1030397\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xb600\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x16\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"23\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the points (0, 0) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 0 bytes. Gives the execution 25000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecadd_0-0_0-0_25000_128Filler.json",
    "content": "{\n    \"ecadd_0-0_0-0_25000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"19\",\n                \"balance\": \"999999999999072914\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"927086\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xb840\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x13\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"20\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the points (0, 0) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 128 bytes. Gives the execution 25000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecadd_0-0_0-0_25000_192Filler.json",
    "content": "{\n    \"ecadd_0-0_0-0_25000_192\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"23\",\n                \"balance\": \"999999999998940623\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1059377\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xb940\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x17\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"24\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the points (0, 0) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 192 bytes. Gives the execution 25000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecadd_0-0_0-0_25000_64Filler.json",
    "content": "{\n    \"ecadd_0-0_0-0_25000_64\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"20\",\n                \"balance\": \"999999999999028346\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"971654\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xb740\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x14\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"21\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the points (0, 0) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 64 bytes. Gives the execution 25000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecadd_0-0_0-0_25000_80Filler.json",
    "content": "{\n    \"ecadd_0-0_0-0_25000_80\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"21\",\n                \"balance\": \"999999999998999040\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000960\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xb7c0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x15\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"22\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the points (0, 0) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 80 bytes. Gives the execution 25000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecadd_0-0_1-2_21000_128Filler.json",
    "content": "{\n    \"ecadd_0-0_1-2_21000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"6\",\n                \"balance\": \"999999999999653298\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"346702\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002\"\n            ],\n            \"gasLimit\": [\n                \"0xa920\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x6\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"7\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"7\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the points (0, 0) and (1, 2) into the ECADD precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecadd_0-0_1-2_21000_192Filler.json",
    "content": "{\n    \"ecadd_0-0_1-2_21000_192\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"7\",\n                \"balance\": \"999999999999610002\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"389998\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xaa20\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x7\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"8\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"8\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the points (0, 0) and (1, 2) into the ECADD precompile, truncating or expanding the input data to 192 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecadd_0-0_1-2_25000_128Filler.json",
    "content": "{\n    \"ecadd_0-0_1-2_25000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"24\",\n                \"balance\": \"999999999998910793\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1089207\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002\"\n            ],\n            \"gasLimit\": [\n                \"0xb8c0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x18\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"25\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the points (0, 0) and (1, 2) into the ECADD precompile, truncating or expanding the input data to 128 bytes. Gives the execution 25000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecadd_0-0_1-2_25000_192Filler.json",
    "content": "{\n    \"ecadd_0-0_1-2_25000_192\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"25\",\n                \"balance\": \"999999999998881097\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1118903\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xb9c0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x19\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"26\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the points (0, 0) and (1, 2) into the ECADD precompile, truncating or expanding the input data to 192 bytes. Gives the execution 25000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecadd_0-0_1-3_21000_128Filler.json",
    "content": "{\n    \"ecadd_0-0_1-3_21000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"15\",\n                \"balance\": \"999999999999246482\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"753518\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003\"\n            ],\n            \"gasLimit\": [\n                \"0xa920\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xf\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"16\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the points (0, 0) and (1, 3) into the ECADD precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecadd_0-0_1-3_25000_128Filler.json",
    "content": "{\n    \"ecadd_0-0_1-3_25000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"33\",\n                \"balance\": \"999999999998626359\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1373641\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003\"\n            ],\n            \"gasLimit\": [\n                \"0xb8c0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x21\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"34\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",                        \n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the points (0, 0) and (1, 3) into the ECADD precompile, truncating or expanding the input data to 128 bytes. Gives the execution 25000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecadd_0-3_1-2_21000_128Filler.json",
    "content": "{\n    \"ecadd_0-3_1-2_21000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"17\",\n                \"balance\": \"999999999999160018\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"839982\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002\"\n            ],\n            \"gasLimit\": [\n                \"0xa960\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x11\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"18\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the points (0, 3) and (1, 2) into the ECADD precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecadd_0-3_1-2_25000_128Filler.json",
    "content": "{\n    \"ecadd_0-3_1-2_25000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"35\",\n                \"balance\": \"999999999998531895\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1468105\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002\"\n            ],\n            \"gasLimit\": [\n                \"0xb900\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x23\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"36\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the points (0, 3) and (1, 2) into the ECADD precompile, truncating or expanding the input data to 128 bytes. Gives the execution 25000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecadd_1-2_0-0_21000_128Filler.json",
    "content": "{\n    \"ecadd_1-2_0-0_21000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"9\",\n                \"balance\": \"999999999999523410\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"476590\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xa920\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x9\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"10\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t     \"0x00\" : \"0xe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"10\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the points (1, 2) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecadd_1-2_0-0_21000_192Filler.json",
    "content": "{\n    \"ecadd_1-2_0-0_21000_192\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"10\",\n                \"balance\": \"999999999999480114\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"519886\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xaa20\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xa\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"11\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"11\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the points (1, 2) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 192 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecadd_1-2_0-0_21000_64Filler.json",
    "content": "{\n    \"ecadd_1-2_0-0_21000_64\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"8\",\n                \"balance\": \"999999999999566450\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"433550\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002\"\n            ],\n            \"gasLimit\": [\n                \"0xa820\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x8\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"9\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"9\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the points (1, 2) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 64 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecadd_1-2_0-0_25000_128Filler.json",
    "content": "{\n    \"ecadd_1-2_0-0_25000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"27\",\n                \"balance\": \"999999999998821705\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1178295\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xb8c0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x1b\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"28\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the points (1, 2) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 128 bytes. Gives the execution 25000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecadd_1-2_0-0_25000_192Filler.json",
    "content": "{\n    \"ecadd_1-2_0-0_25000_192\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"28\",\n                \"balance\": \"999999999998792009\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1207991\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xb9c0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x1c\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"29\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the points (1, 2) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 192 bytes. Gives the execution 25000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecadd_1-2_0-0_25000_64Filler.json",
    "content": "{\n    \"ecadd_1-2_0-0_25000_64\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"26\",\n                \"balance\": \"999999999998851139\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1148861\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002\"\n            ],\n            \"gasLimit\": [\n                \"0xb7c0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x1a\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"27\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the points (1, 2) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 64 bytes. Gives the execution 25000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecadd_1-2_1-2_21000_128Filler.json",
    "content": "{\n    \"ecadd_1-2_1-2_21000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"11\",\n                \"balance\": \"999999999999436562\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"563438\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002\"\n            ],\n            \"gasLimit\": [\n                \"0xa9a0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xb\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"12\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0x8a5045bc7a493061be89fdbc32ea8ae69e8d8b55ebe445fa41fa534b1543ab50\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"12\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the points (1, 2) and (1, 2) into the ECADD precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecadd_1-2_1-2_21000_192Filler.json",
    "content": "{\n    \"ecadd_1-2_1-2_21000_192\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"12\",\n                \"balance\": \"999999999999393138\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"606862\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xaaa0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xc\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"13\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0x8a5045bc7a493061be89fdbc32ea8ae69e8d8b55ebe445fa41fa534b1543ab50\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"13\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the points (1, 2) and (1, 2) into the ECADD precompile, truncating or expanding the input data to 192 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecadd_1-2_1-2_25000_128Filler.json",
    "content": "{\n    \"ecadd_1-2_1-2_25000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"29\",\n                \"balance\": \"999999999998762051\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1237949\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002\"\n            ],\n            \"gasLimit\": [\n                \"0xb940\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x1d\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x8a5045bc7a493061be89fdbc32ea8ae69e8d8b55ebe445fa41fa534b1543ab50\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"30\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the points (1, 2) and (1, 2) into the ECADD precompile, truncating or expanding the input data to 128 bytes. Gives the execution 25000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecadd_1-2_1-2_25000_192Filler.json",
    "content": "{\n    \"ecadd_1-2_1-2_25000_192\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0x8a5045bc7a493061be89fdbc32ea8ae69e8d8b55ebe445fa41fa534b1543ab50\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"30\",\n                \"balance\": \"999999999998732227\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1267773\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xba40\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x1e\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x8a5045bc7a493061be89fdbc32ea8ae69e8d8b55ebe445fa41fa534b1543ab50\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"31\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the points (1, 2) and (1, 2) into the ECADD precompile, truncating or expanding the input data to 192 bytes. Gives the execution 25000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecadd_1-3_0-0_21000_80Filler.json",
    "content": "{\n    \"ecadd_1-3_0-0_21000_80\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"16\",\n                \"balance\": \"999999999999203186\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"796814\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xa8a0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x10\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"17\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the points (1, 3) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 80 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecadd_1-3_0-0_25000_80_ParisFiller.json",
    "content": "{\n    \"ecadd_1-3_0-0_25000_80_Paris\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"34\",\n                \"balance\": \"999999999998579063\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\" : \"10\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xb840\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x22\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"35\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": {\n            \"comment\": \"Puts the points (1, 3) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 80 bytes. Gives the execution 25000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecadd_1145-3932_1145-4651_21000_192Filler.json",
    "content": "{\n    \"ecadd_1145-3932_1145-4651_21000_192\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"14\",\n                \"balance\": \"999999999999298098\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"701902\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c017c139df0efee0f766bc0204762b774362e4ded88953a39ce849a8a7fa163fa901e0559bacb160664764a357af8a9fe70baa9258e0b959273ffc5718c6d4cc7c17c139df0efee0f766bc0204762b774362e4ded88953a39ce849a8a7fa163fa92e83f8d734803fc370eba25ed1f6b8768bd6d83887b87165fc2434fe11a830cb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"35000\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xe\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"15\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"15\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the points (10744596414106452074759370245733544594153395043370666422502510773307029471145, 848677436511517736191562425154572367705380862894644942948681172815252343932) and (10744596414106452074759370245733544594153395043370666422502510773307029471145, 21039565435327757486054843320102702720990930294403178719740356721829973864651) into the ECADD precompile, truncating or expanding the input data to 192 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecadd_1145-3932_1145-4651_25000_192Filler.json",
    "content": "{\n    \"ecadd_1145-3932_1145-4651_25000_192\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0x64b98f570e1e53ac1b472a4fc89919f2d76166fb5494b817bca7677f3a51c497\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"32\",\n                \"balance\": \"999999999998664381\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1335619\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c017c139df0efee0f766bc0204762b774362e4ded88953a39ce849a8a7fa163fa901e0559bacb160664764a357af8a9fe70baa9258e0b959273ffc5718c6d4cc7c17c139df0efee0f766bc0204762b774362e4ded88953a39ce849a8a7fa163fa92e83f8d734803fc370eba25ed1f6b8768bd6d83887b87165fc2434fe11a830cb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xd940\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x20\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"33\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the points (10744596414106452074759370245733544594153395043370666422502510773307029471145, 848677436511517736191562425154572367705380862894644942948681172815252343932) and (10744596414106452074759370245733544594153395043370666422502510773307029471145, 21039565435327757486054843320102702720990930294403178719740356721829973864651) into the ECADD precompile, truncating or expanding the input data to 192 bytes. Gives the execution 25000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecadd_1145-3932_2969-1336_21000_128Filler.json",
    "content": "{\n    \"ecadd_1145-3932_2969-1336_21000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"13\",\n                \"balance\": \"999999999999349458\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"650542\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000008017c139df0efee0f766bc0204762b774362e4ded88953a39ce849a8a7fa163fa901e0559bacb160664764a357af8a9fe70baa9258e0b959273ffc5718c6d4cc7c039730ea8dff1254c0fee9c0ea777d29a9c710b7e616683f194f18c43b43b869073a5ffcc6fc7a28c30723d6e58ce577356982d65b833a5a5c15bf9024b43d98\"\n            ],\n            \"gasLimit\": [\n                \"35000\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xd\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"14\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0x64b98f570e1e53ac1b472a4fc89919f2d76166fb5494b817bca7677f3a51c497\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"14\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the points (10744596414106452074759370245733544594153395043370666422502510773307029471145, 848677436511517736191562425154572367705380862894644942948681172815252343932) and (1624070059937464756887933993293429854168590106605707304006200119738501412969, 3269329550605213075043232856820720631601935657990457502777101397807070461336) into the ECADD precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecadd_1145-3932_2969-1336_25000_128Filler.json",
    "content": "{\n    \"ecadd_1145-3932_2969-1336_25000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0x8a5045bc7a493061be89fdbc32ea8ae69e8d8b55ebe445fa41fa534b1543ab50\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"31\",\n                \"balance\": \"999999999998702141\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1297859\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000008017c139df0efee0f766bc0204762b774362e4ded88953a39ce849a8a7fa163fa901e0559bacb160664764a357af8a9fe70baa9258e0b959273ffc5718c6d4cc7c039730ea8dff1254c0fee9c0ea777d29a9c710b7e616683f194f18c43b43b869073a5ffcc6fc7a28c30723d6e58ce577356982d65b833a5a5c15bf9024b43d98\"\n            ],\n            \"gasLimit\": [\n                \"0xd840\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x1f\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x64b98f570e1e53ac1b472a4fc89919f2d76166fb5494b817bca7677f3a51c497\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"32\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the points (10744596414106452074759370245733544594153395043370666422502510773307029471145, 848677436511517736191562425154572367705380862894644942948681172815252343932) and (1624070059937464756887933993293429854168590106605707304006200119738501412969, 3269329550605213075043232856820720631601935657990457502777101397807070461336) into the ECADD precompile, truncating or expanding the input data to 128 bytes. Gives the execution 25000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecadd_6-9_19274124-124124_21000_128Filler.json",
    "content": "{\n    \"ecadd_6-9_19274124-124124_21000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"18\",\n                \"balance\": \"999999999999116658\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"883342\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000126198c000000000000000000000000000000000000000000000000000000000001e4dc\"\n            ],\n            \"gasLimit\": [\n                \"0xaae0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x12\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"19\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the points (6, 9) and (19274124, 124124) into the ECADD precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecadd_6-9_19274124-124124_25000_128Filler.json",
    "content": "{\n    \"ecadd_6-9_19274124-124124_25000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"36\",\n                \"balance\": \"999999999998484535\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1515465\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000126198c000000000000000000000000000000000000000000000000000000000001e4dc\"\n            ],\n            \"gasLimit\": [\n                \"0xba80\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x24\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"37\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the points (6, 9) and (19274124, 124124) into the ECADD precompile, truncating or expanding the input data to 128 bytes. Gives the execution 25000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-0_0_21000_0Filler.json",
    "content": "{\n    \"ecmul_0-0_0_21000_0\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"5\",\n                \"balance\": \"999999999999696274\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"303726\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xa660\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x5\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"6\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"6\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 0) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 0 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-0_0_21000_128Filler.json",
    "content": "{\n    \"ecmul_0-0_0_21000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"2\",\n                \"balance\": \"999999999999825394\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"174606\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xa8a0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x2\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"3\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"3\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 0) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-0_0_21000_40Filler.json",
    "content": "{\n    \"ecmul_0-0_0_21000_40\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"6\",\n                \"balance\": \"999999999999653682\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"346318\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xa7a0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x6\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"7\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"7\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 0) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 40 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-0_0_21000_64Filler.json",
    "content": "{\n    \"ecmul_0-0_0_21000_64\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"3\",\n                \"balance\": \"999999999999782226\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"217774\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xa7a0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x3\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"4\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"4\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 0) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 64 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-0_0_21000_80Filler.json",
    "content": "{\n    \"ecmul_0-0_0_21000_80\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"4\",\n                \"balance\": \"999999999999739314\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"260686\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xa820\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x4\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"5\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"5\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 0) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-0_0_21000_96Filler.json",
    "content": "{\n    \"ecmul_0-0_0_21000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"999999999999868434\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"131566\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xa820\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x1\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"2\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"2\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 0) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-0_0_28000_0Filler.json",
    "content": "{\n    \"ecmul_0-0_0_28000_0\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"102\",\n                \"balance\": \"999999999995407094\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"4592906\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xc1b8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x66\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"103\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 0) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 0 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-0_0_28000_128Filler.json",
    "content": "{\n    \"ecmul_0-0_0_28000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"99\",\n                \"balance\": \"999999999995499905\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"4500095\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xc3f8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x63\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"100\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 0) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-0_0_28000_40Filler.json",
    "content": "{\n    \"ecmul_0-0_0_28000_40\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"103\",\n                \"balance\": \"999999999995376614\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"4623386\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xc2f8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x67\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"104\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 0) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 40 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-0_0_28000_64Filler.json",
    "content": "{\n    \"ecmul_0-0_0_28000_64\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"100\",\n                \"balance\": \"999999999995468837\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"4531163\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xc2f8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x64\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"101\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 0) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 64 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-0_0_28000_80Filler.json",
    "content": "{\n    \"ecmul_0-0_0_28000_80\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"101\",\n                \"balance\": \"999999999995438031\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"4561969\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xc378\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x65\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"102\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 0) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-0_0_28000_96Filler.json",
    "content": "{\n    \"ecmul_0-0_0_28000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"98\",\n                \"balance\": \"999999999995545842\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"4454158\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"35000\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x62\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x00\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"99\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"99\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 0) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-0_1_21000_128Filler.json",
    "content": "{\n    \"ecmul_0-0_1_21000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"24\",\n                \"balance\": \"999999999998861618\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1138382\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xa8e0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x18\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"25\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"25\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 0) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-0_1_21000_96Filler.json",
    "content": "{\n    \"ecmul_0-0_1_21000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"23\",\n                \"balance\": \"999999999998904722\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1095278\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\"\n            ],\n            \"gasLimit\": [\n                \"0xa860\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x17\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"24\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"24\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 0) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes\"  \n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-0_1_28000_128Filler.json",
    "content": "{\n    \"ecmul_0-0_1_28000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"121\",\n                \"balance\": \"999999999994649583\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"5350417\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xc438\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x79\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"122\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 0) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-0_1_28000_96Filler.json",
    "content": "{\n    \"ecmul_0-0_1_28000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"120\",\n                \"balance\": \"999999999994680584\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"5319416\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\"\n            ],\n            \"gasLimit\": [\n                \"0xc3b8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x78\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"121\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 0) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-0_2_21000_128Filler.json",
    "content": "{\n    \"ecmul_0-0_2_21000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"34\",\n                \"balance\": \"999999999998421234\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1578766\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xa8e0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x22\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"35\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"35\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 0) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-0_2_21000_96Filler.json",
    "content": "{\n    \"ecmul_0-0_2_21000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"33\",\n                \"balance\": \"999999999998464338\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1535662\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002\"\n            ],\n            \"gasLimit\": [\n                \"0xa860\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x21\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"34\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"34\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 0) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-0_2_28000_128Filler.json",
    "content": "{\n    \"ecmul_0-0_2_28000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"131\",\n                \"balance\": \"999999999994253808\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"5746192\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xc438\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x83\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"132\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 0) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-0_2_28000_96Filler.json",
    "content": "{\n    \"ecmul_0-0_2_28000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0x556a3c03566b04196c534f5612f50167917d72e6ab9b687e10e72dbe0e0f9279\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"130\",\n                \"balance\": \"999999999994284809\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"5715191\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002\"\n            ],\n            \"gasLimit\": [\n                \"33000\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x82\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x556a3c03566b04196c534f5612f50167917d72e6ab9b687e10e72dbe0e0f9279\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"131\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"131\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 0) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-0_340282366920938463463374607431768211456_21000_128Filler.json",
    "content": "{\n    \"ecmul_0-0_340282366920938463463374607431768211456_21000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"54\",\n                \"balance\": \"999999999997540466\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"2459534\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xa8e0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x36\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"55\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"55\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 0) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-0_340282366920938463463374607431768211456_21000_80Filler.json",
    "content": "{\n    \"ecmul_0-0_340282366920938463463374607431768211456_21000_80\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"55\",\n                \"balance\": \"999999999997497234\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"2502766\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xa860\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x37\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"56\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"56\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 0) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-0_340282366920938463463374607431768211456_21000_96Filler.json",
    "content": "{\n    \"ecmul_0-0_340282366920938463463374607431768211456_21000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"53\",\n                \"balance\": \"999999999997583570\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"2416430\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xa860\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x35\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"54\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"54\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 0) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-0_340282366920938463463374607431768211456_28000_128Filler.json",
    "content": "{\n    \"ecmul_0-0_340282366920938463463374607431768211456_28000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"151\",\n                \"balance\": \"999999999993462258\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"6537742\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xc438\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x97\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"152\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 0) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-0_340282366920938463463374607431768211456_28000_80Filler.json",
    "content": "{\n    \"ecmul_0-0_340282366920938463463374607431768211456_28000_80\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"152\",\n                \"balance\": \"999999999993431126\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"6568874\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xc3b8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x98\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"153\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": {      \n            \"comment\": \"Puts the point (0, 0) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-0_340282366920938463463374607431768211456_28000_96Filler.json",
    "content": "{\n    \"ecmul_0-0_340282366920938463463374607431768211456_28000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xf348aa9f55b137fd60af9c782c04ea7c52c0b193972d1c3aa63d78a110fa2e20\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"150\",\n                \"balance\": \"999999999993493259\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"6506741\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"33000\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x96\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xf348aa9f55b137fd60af9c782c04ea7c52c0b193972d1c3aa63d78a110fa2e20\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"151\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"151\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 0) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-0_5616_21000_128Filler.json",
    "content": "{\n    \"ecmul_0-0_5616_21000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"69\",\n                \"balance\": \"999999999996878418\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"3121582\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xafe0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x45\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"70\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"70\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 0) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-0_5616_21000_96Filler.json",
    "content": "{\n    \"ecmul_0-0_5616_21000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"68\",\n                \"balance\": \"999999999996923314\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"3076686\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000\"\n            ],\n            \"gasLimit\": [\n                \"0xaf60\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x44\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"69\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"69\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 0) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-0_5616_28000_128Filler.json",
    "content": "{\n    \"ecmul_0-0_5616_28000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"166\",\n                \"balance\": \"999999999992867128\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"7132872\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xcb38\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xa6\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"167\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 0) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-0_5616_28000_96Filler.json",
    "content": "{\n    \"ecmul_0-0_5616_28000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xa97df6032909972db52b8144798569bb6169ec8b3e065841da96b3d866aa131e\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"165\",\n                \"balance\": \"999999999992899921\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"7100079\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000\"\n            ],\n            \"gasLimit\": [\n                \"33000\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xa5\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xa97df6032909972db52b8144798569bb6169ec8b3e065841da96b3d866aa131e\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"166\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"166\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 0) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-0_5617_21000_128Filler.json",
    "content": "{\n    \"ecmul_0-0_5617_21000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"79\",\n                \"balance\": \"999999999996420050\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"3579950\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000010000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xb020\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x4f\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"80\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"80\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 0) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-0_5617_21000_96Filler.json",
    "content": "{\n    \"ecmul_0-0_5617_21000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"78\",\n                \"balance\": \"999999999996465010\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"3534990\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001\"\n            ],\n            \"gasLimit\": [\n                \"0xafa0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x4e\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"79\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"79\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 0) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-0_5617_28000_128Filler.json",
    "content": "{\n    \"ecmul_0-0_5617_28000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"176\",\n                \"balance\": \"999999999992453369\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"7546631\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000010000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xcb78\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xb0\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"177\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 0) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-0_5617_28000_96Filler.json",
    "content": "{\n    \"ecmul_0-0_5617_28000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0x289df36ee06bbcd57a9ce2a88d2bcda09715d42f96f7f23c48cdd54e2002f059\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"175\",\n                \"balance\": \"999999999992486226\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"7513774\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001\"\n            ],\n            \"gasLimit\": [\n                \"33000\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xaf\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x289df36ee06bbcd57a9ce2a88d2bcda09715d42f96f7f23c48cdd54e2002f059\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"176\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"176\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 0) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-0_9935_21000_128Filler.json",
    "content": "{\n    \"ecmul_0-0_9935_21000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"89\",\n                \"balance\": \"999999999995960978\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"4039022\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xb0a0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x59\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"90\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t     \"0x00\" : \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"90\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 0) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-0_9935_21000_96Filler.json",
    "content": "{\n    \"ecmul_0-0_9935_21000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"88\",\n                \"balance\": \"999999999996006066\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"3993934\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n            ],\n            \"gasLimit\": [\n                \"0xb020\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x58\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"89\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"89\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 0) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-0_9935_28000_128Filler.json",
    "content": "{\n    \"ecmul_0-0_9935_28000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"186\",\n                \"balance\": \"999999999992038906\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"7961094\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xcbf8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xba\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"187\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 0) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-0_9935_28000_96Filler.json",
    "content": "{\n    \"ecmul_0-0_9935_28000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"185\",\n                \"balance\": \"999999999992071891\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"7928109\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n            ],\n            \"gasLimit\": [\n                \"0xcb78\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xb9\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"186\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 0) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-0_9_21000_128Filler.json",
    "content": "{\n    \"ecmul_0-0_9_21000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"44\",\n                \"balance\": \"999999999997980850\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"2019150\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xa8e0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x2c\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"45\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"45\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 0) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-0_9_21000_96Filler.json",
    "content": "{\n    \"ecmul_0-0_9_21000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"43\",\n                \"balance\": \"999999999998023954\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1976046\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009\"\n            ],\n            \"gasLimit\": [\n                \"0xa860\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x2b\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"44\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"44\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 0) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-0_9_28000_128Filler.json",
    "content": "{\n    \"ecmul_0-0_9_28000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"141\",\n                \"balance\": \"999999999993858033\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"6141967\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xc438\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x8d\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"142\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 0) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-0_9_28000_96Filler.json",
    "content": "{\n    \"ecmul_0-0_9_28000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0x94b60ed39c6fe45858b5931190d93861a2d2538991194cdf9a39b5e83dec0827\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"140\",\n                \"balance\": \"999999999993889034\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"6110966\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009\"\n            ],\n            \"gasLimit\": [\n                \"33000\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x8c\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x94b60ed39c6fe45858b5931190d93861a2d2538991194cdf9a39b5e83dec0827\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"141\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"141\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 0) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-3_0_21000_128Filler.json",
    "content": "{\n    \"ecmul_0-3_0_21000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"20\",\n                \"balance\": \"999999999999034034\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"965966\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xa8e0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x14\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"21\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 3) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-3_0_21000_64Filler.json",
    "content": "{\n    \"ecmul_0-3_0_21000_64\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"21\",\n                \"balance\": \"999999999998990802\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1009198\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003\"\n            ],\n            \"gasLimit\": [\n                \"0xa7e0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x15\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"22\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 3) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 64 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-3_0_21000_80Filler.json",
    "content": "{\n    \"ecmul_0-3_0_21000_80\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"22\",\n                \"balance\": \"999999999998947826\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1052174\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xa860\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x16\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"23\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 3) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-3_0_21000_96Filler.json",
    "content": "{\n    \"ecmul_0-3_0_21000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"19\",\n                \"balance\": \"999999999999077138\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"922862\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xa860\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x13\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"20\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 3) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-3_0_28000_128Filler.json",
    "content": "{\n    \"ecmul_0-3_0_28000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"117\",\n                \"balance\": \"999999999994830896\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"5169104\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xc438\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x75\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"118\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 3) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-3_0_28000_64Filler.json",
    "content": "{\n    \"ecmul_0-3_0_28000_64\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"118\",\n                \"balance\": \"999999999994780664\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"5219336\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003\"\n            ],\n            \"gasLimit\": [\n                \"0xc338\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x76\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"119\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 3) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 64 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-3_0_28000_80Filler.json",
    "content": "{\n    \"ecmul_0-3_0_28000_80\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"119\",\n                \"balance\": \"999999999994730688\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"5269312\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xc3b8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x77\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"120\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 3) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-3_0_28000_96Filler.json",
    "content": "{\n    \"ecmul_0-3_0_28000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"116\",\n                \"balance\": \"999999999994881000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"5119000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xc3b8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x74\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"117\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 3) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-3_1_21000_128Filler.json",
    "content": "{\n    \"ecmul_0-3_1_21000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"32\",\n                \"balance\": \"999999999998507634\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1492366\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xa920\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x20\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"33\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 3) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-3_1_21000_96Filler.json",
    "content": "{\n    \"ecmul_0-3_1_21000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"31\",\n                \"balance\": \"999999999998550802\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1449198\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000001\"\n            ],\n            \"gasLimit\": [\n                \"0xa8a0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x1f\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"32\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 3) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-3_1_28000_128Filler.json",
    "content": "{\n    \"ecmul_0-3_1_28000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0x556a3c03566b04196c534f5612f50167917d72e6ab9b687e10e72dbe0e0f9279\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"129\",\n                \"balance\": \"999999999994335105\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"5664895\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xc478\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x81\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x556a3c03566b04196c534f5612f50167917d72e6ab9b687e10e72dbe0e0f9279\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"130\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 3) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-3_1_28000_96Filler.json",
    "content": "{\n    \"ecmul_0-3_1_28000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0x556a3c03566b04196c534f5612f50167917d72e6ab9b687e10e72dbe0e0f9279\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"128\",\n                \"balance\": \"999999999994385273\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"5614727\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000001\"\n            ],\n            \"gasLimit\": [\n                \"0xc3f8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x80\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x556a3c03566b04196c534f5612f50167917d72e6ab9b687e10e72dbe0e0f9279\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"129\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 3) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-3_2_21000_128Filler.json",
    "content": "{\n    \"ecmul_0-3_2_21000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"42\",\n                \"balance\": \"999999999998067250\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1932750\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xa920\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x2a\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"43\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 3) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-3_2_21000_96Filler.json",
    "content": "{\n    \"ecmul_0-3_2_21000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"41\",\n                \"balance\": \"999999999998110418\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1889582\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000002\"\n            ],\n            \"gasLimit\": [\n                \"0xa8a0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x29\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"42\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 3) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-3_2_28000_128Filler.json",
    "content": "{\n    \"ecmul_0-3_2_28000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0x94b60ed39c6fe45858b5931190d93861a2d2538991194cdf9a39b5e83dec0827\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"139\",\n                \"balance\": \"999999999993939330\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"6060670\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xc478\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x8b\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x94b60ed39c6fe45858b5931190d93861a2d2538991194cdf9a39b5e83dec0827\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"140\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 3) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-3_2_28000_96Filler.json",
    "content": "{\n    \"ecmul_0-3_2_28000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0x94b60ed39c6fe45858b5931190d93861a2d2538991194cdf9a39b5e83dec0827\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"138\",\n                \"balance\": \"999999999993989498\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"6010502\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000002\"\n            ],\n            \"gasLimit\": [\n                \"0xc3f8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x8a\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x94b60ed39c6fe45858b5931190d93861a2d2538991194cdf9a39b5e83dec0827\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"139\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 3) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-3_340282366920938463463374607431768211456_21000_128Filler.json",
    "content": "{\n    \"ecmul_0-3_340282366920938463463374607431768211456_21000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"66\",\n                \"balance\": \"999999999997009778\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"2990222\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xa920\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x42\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"67\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 3) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-3_340282366920938463463374607431768211456_21000_80Filler.json",
    "content": "{\n    \"ecmul_0-3_340282366920938463463374607431768211456_21000_80\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"67\",\n                \"balance\": \"999999999996966482\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"3033518\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000100000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xa8a0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x43\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"68\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 3) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-3_340282366920938463463374607431768211456_21000_96Filler.json",
    "content": "{\n    \"ecmul_0-3_340282366920938463463374607431768211456_21000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"65\",\n                \"balance\": \"999999999997052946\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"2947054\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000100000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xa8a0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x41\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"66\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 3) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-3_340282366920938463463374607431768211456_28000_128Filler.json",
    "content": "{\n    \"ecmul_0-3_340282366920938463463374607431768211456_28000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xa97df6032909972db52b8144798569bb6169ec8b3e065841da96b3d866aa131e\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"163\",\n                \"balance\": \"999999999993000385\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"6999615\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xc478\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xa3\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xa97df6032909972db52b8144798569bb6169ec8b3e065841da96b3d866aa131e\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"164\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 3) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-3_340282366920938463463374607431768211456_28000_80Filler.json",
    "content": "{\n    \"ecmul_0-3_340282366920938463463374607431768211456_28000_80\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xa97df6032909972db52b8144798569bb6169ec8b3e065841da96b3d866aa131e\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"164\",\n                \"balance\": \"999999999992950089\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"7049911\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000100000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xc3f8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xa4\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xa97df6032909972db52b8144798569bb6169ec8b3e065841da96b3d866aa131e\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"165\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 3) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-3_340282366920938463463374607431768211456_28000_96Filler.json",
    "content": "{\n    \"ecmul_0-3_340282366920938463463374607431768211456_28000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xa97df6032909972db52b8144798569bb6169ec8b3e065841da96b3d866aa131e\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"162\",\n                \"balance\": \"999999999993050553\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"6949447\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000100000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xc3f8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xa2\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xa97df6032909972db52b8144798569bb6169ec8b3e065841da96b3d866aa131e\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"163\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 3) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-3_5616_21000_128Filler.json",
    "content": "{\n    \"ecmul_0-3_5616_21000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"77\",\n                \"balance\": \"999999999996510098\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"3489902\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xb020\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x4d\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"78\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 3) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-3_5616_21000_96Filler.json",
    "content": "{\n    \"ecmul_0-3_5616_21000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"76\",\n                \"balance\": \"999999999996555058\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"3444942\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000\"\n            ],\n            \"gasLimit\": [\n                \"0xafa0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x4c\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"77\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 3) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-3_5616_28000_128Filler.json",
    "content": "{\n    \"ecmul_0-3_5616_28000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0x289df36ee06bbcd57a9ce2a88d2bcda09715d42f96f7f23c48cdd54e2002f059\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"174\",\n                \"balance\": \"999999999992538314\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"7461686\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xcb78\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xae\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x289df36ee06bbcd57a9ce2a88d2bcda09715d42f96f7f23c48cdd54e2002f059\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"175\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 3) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-3_5616_28000_96_ParisFiller.json",
    "content": "{\n    \"ecmul_0-3_5616_28000_96_Paris\": {\n\t\"_info\" : {\n\t    \"comment\" : \"Puts the point (0, 3) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes\"\n\t},\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0x289df36ee06bbcd57a9ce2a88d2bcda09715d42f96f7f23c48cdd54e2002f059\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n        \t\t\"balance\" : \"1500000\",\n                \"storage\": {},\n                \"nonce\": \"173\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n        \t\t\"balance\" : \"10\",\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000\"\n            ],\n            \"gasLimit\": [\n                \"0xcaf8\", \"90000\", \"110000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xad\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [0,1,2],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x289df36ee06bbcd57a9ce2a88d2bcda09715d42f96f7f23c48cdd54e2002f059\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n            \t\t\t\"nonce\": \"174\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-3_5617_21000_128Filler.json",
    "content": "{\n    \"ecmul_0-3_5617_21000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"87\",\n                \"balance\": \"999999999996051218\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"3948782\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000010000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xb060\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x57\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"88\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 3) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-3_5617_21000_96Filler.json",
    "content": "{\n    \"ecmul_0-3_5617_21000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"86\",\n                \"balance\": \"999999999996096242\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"3903758\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001\"\n            ],\n            \"gasLimit\": [\n                \"0xafe0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x56\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"87\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 3) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-3_5617_28000_128Filler.json",
    "content": "{\n    \"ecmul_0-3_5617_28000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"184\",\n                \"balance\": \"999999999992124043\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"7875957\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000010000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xcbb8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xb8\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"185\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 3) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-3_5617_28000_96Filler.json",
    "content": "{\n    \"ecmul_0-3_5617_28000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"183\",\n                \"balance\": \"999999999992176067\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"7823933\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001\"\n            ],\n            \"gasLimit\": [\n                \"0xcb38\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xb7\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"184\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 3) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-3_9935_21000_128Filler.json",
    "content": "{\n    \"ecmul_0-3_9935_21000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"97\",\n                \"balance\": \"999999999995591122\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"4408878\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xb0e0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x61\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"98\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 3) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-3_9935_21000_96Filler.json",
    "content": "{\n    \"ecmul_0-3_9935_21000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"96\",\n                \"balance\": \"999999999995636274\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"4363726\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n            ],\n            \"gasLimit\": [\n                \"0xb060\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x60\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"97\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 3) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-3_9935_28000_128Filler.json",
    "content": "{\n    \"ecmul_0-3_9935_28000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0x40c97882e95e71d48d97c8655188333e16470e807a99282b8795064ca6ca4dcf\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"194\",\n                \"balance\": \"999999999991708556\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"8291444\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xcc38\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xc2\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x40c97882e95e71d48d97c8655188333e16470e807a99282b8795064ca6ca4dcf\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"195\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 3) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-3_9935_28000_96Filler.json",
    "content": "{\n    \"ecmul_0-3_9935_28000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0x40c97882e95e71d48d97c8655188333e16470e807a99282b8795064ca6ca4dcf\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"193\",\n                \"balance\": \"999999999991760708\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"8239292\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n            ],\n            \"gasLimit\": [\n                \"0xcbb8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xc1\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0x40c97882e95e71d48d97c8655188333e16470e807a99282b8795064ca6ca4dcf\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"194\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 3) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-3_9_21000_128Filler.json",
    "content": "{\n    \"ecmul_0-3_9_21000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"52\",\n                \"balance\": \"999999999997626866\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"2373134\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xa920\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x34\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"53\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 3) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-3_9_21000_96Filler.json",
    "content": "{\n    \"ecmul_0-3_9_21000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"51\",\n                \"balance\": \"999999999997670034\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"2329966\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000009\"\n            ],\n            \"gasLimit\": [\n                \"0xa8a0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x33\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"52\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 3) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-3_9_28000_128Filler.json",
    "content": "{\n    \"ecmul_0-3_9_28000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xf348aa9f55b137fd60af9c782c04ea7c52c0b193972d1c3aa63d78a110fa2e20\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"149\",\n                \"balance\": \"999999999993543555\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"6456445\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xc478\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x95\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xf348aa9f55b137fd60af9c782c04ea7c52c0b193972d1c3aa63d78a110fa2e20\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"150\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 3) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_0-3_9_28000_96Filler.json",
    "content": "{\n    \"ecmul_0-3_9_28000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xf348aa9f55b137fd60af9c782c04ea7c52c0b193972d1c3aa63d78a110fa2e20\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"148\",\n                \"balance\": \"999999999993593723\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"6406277\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000009\"\n            ],\n            \"gasLimit\": [\n                \"0xc3f8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x94\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xf348aa9f55b137fd60af9c782c04ea7c52c0b193972d1c3aa63d78a110fa2e20\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"149\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (0, 3) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_1-2_0_21000_128Filler.json",
    "content": "{\n    \"ecmul_1-2_0_21000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"8\",\n                \"balance\": \"999999999999567602\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"432398\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xa920\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x8\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"9\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"9\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 2) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_1-2_0_21000_64Filler.json",
    "content": "{\n    \"ecmul_1-2_0_21000_64\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"9\",\n                \"balance\": \"999999999999524306\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"475694\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002\"\n            ],\n            \"gasLimit\": [\n                \"0xa820\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x9\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"10\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"10\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 2) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 64 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_1-2_0_21000_80Filler.json",
    "content": "{\n    \"ecmul_1-2_0_21000_80\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"10\",\n                \"balance\": \"999999999999481266\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"518734\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xa8a0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0xa\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"11\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"11\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 2) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_1-2_0_21000_96Filler.json",
    "content": "{\n    \"ecmul_1-2_0_21000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"7\",\n                \"balance\": \"999999999999610770\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"389230\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xa8a0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x7\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"8\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"8\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 2) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_1-2_0_28000_128Filler.json",
    "content": "{\n    \"ecmul_1-2_0_28000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"105\",\n                \"balance\": \"999999999995314743\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"4685257\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xc478\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x69\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"106\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 2) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_1-2_0_28000_64Filler.json",
    "content": "{\n    \"ecmul_1-2_0_28000_64\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"106\",\n                \"balance\": \"999999999995283547\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"4716453\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002\"\n            ],\n            \"gasLimit\": [\n                \"0xc378\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x6a\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"107\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 2) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 64 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_1-2_0_28000_80Filler.json",
    "content": "{\n    \"ecmul_1-2_0_28000_80\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"107\",\n                \"balance\": \"999999999995252613\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"4747387\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xc3f8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x6b\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"108\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 2) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_1-2_0_28000_96Filler.json",
    "content": "{\n    \"ecmul_1-2_0_28000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"104\",\n                \"balance\": \"999999999995345808\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"4654192\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xc3f8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x68\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"105\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 2) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_1-2_1_21000_128Filler.json",
    "content": "{\n    \"ecmul_1-2_1_21000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"26\",\n                \"balance\": \"999999999998775154\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1224846\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xa960\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x1a\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"27\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"27\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 2) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_1-2_1_21000_96Filler.json",
    "content": "\n{\n    \"ecmul_1-2_1_21000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"25\",\n                \"balance\": \"999999999998818386\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1181614\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001\"\n            ],\n            \"gasLimit\": [\n                \"0xa8e0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x19\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"26\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0xe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"26\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 2) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_1-2_1_28000_128Filler.json",
    "content": "{\n    \"ecmul_1-2_1_28000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"123\",\n                \"balance\": \"999999999994587322\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"5412678\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xc4b8\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x7b\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": -1,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"124\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 2) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_1-2_1_28000_96Filler.json",
    "content": "{\n    \"ecmul_1-2_1_28000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {\n                    \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                },\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"122\",\n                \"balance\": \"999999999994618451\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"5381549\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001\"\n            ],\n            \"gasLimit\": [\n                \"33000\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x7a\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"123\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n                            \"0x00\": \"0xe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0\"\n                        },\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"123\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 2) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_1-2_2_21000_128Filler.json",
    "content": "{\n    \"ecmul_1-2_2_21000_128\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"36\",\n                \"balance\": \"999999999998334770\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1665230\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000\"\n            ],\n            \"gasLimit\": [\n                \"0xa960\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x24\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"37\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0x8a5045bc7a493061be89fdbc32ea8ae69e8d8b55ebe445fa41fa534b1543ab50\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"37\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 2) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/static/state_tests/stZeroKnowledge2/ecmul_1-2_2_21000_96Filler.json",
    "content": "{\n    \"ecmul_1-2_2_21000_96\": {\n        \"env\": {\n            \"currentCoinbase\": \"0x3535353535353535353535353535353535353535\",\n            \"currentDifficulty\": \"0x020000\",\n            \"currentGasLimit\": \"0x5f5e100\",\n            \"currentNumber\": \"0x01\",\n            \"currentTimestamp\": \"1000\"\n        },\n        \"pre\": {\n            \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000001\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                \"storage\": {},\n                \"nonce\": \"1\",\n                \"balance\": \"0\",\n                \"code\": \":raw 0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n            },\n            \"0000000000000000000000000000000000000005\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000000\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000003\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                \"storage\": {},\n                \"nonce\": \"35\",\n                \"balance\": \"999999999998378002\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000006\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000007\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000004\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"3535353535353535353535353535353535353535\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1621998\",\n                \"code\": \"0x\"\n            },\n            \"0000000000000000000000000000000000000002\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1\",\n                \"code\": \"0x\"\n            },\n            \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            },\n            \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                \"storage\": {},\n                \"nonce\": \"0\",\n                \"balance\": \"1000000000000000000\",\n                \"code\": \"0x\"\n            }\n        },\n        \"transaction\": {\n            \"data\": [\n                \":raw 0x30c8d1da00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002\"\n            ],\n            \"gasLimit\": [\n                \"0xa8e0\", \"90000\", \"110000\", \"200000\"\n            ],\n            \"gasPrice\": \"0x0a\",\n            \"nonce\": \"0x23\",\n            \"secretKey\": \"0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d\",\n            \"to\": \"0xc305c901078781c232a2a521c2af7980f8385ee9\",\n            \"value\": [\n                \"0x00\"\n            ]\n        },\n        \"expect\": [\n            {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": 0,\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"36\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            },\n\t    {\n                \"indexes\": {\n                    \"data\": 0,\n                    \"gas\": [1,2,3],\n                    \"value\": 0\n                },\n                \"network\": [\n                    \">=Cancun\"\n                ],\n                \"result\": {\n                    \"24143873e0e0815fdcbcffdbe09c979cbf9ad013\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000001\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"dceceaf3fc5c0a63d195d69b1a90011b7b19650d\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"c305c901078781c232a2a521c2af7980f8385ee9\": {\n                        \"storage\": {\n\t\t\t    \"0x00\" : \"0x8a5045bc7a493061be89fdbc32ea8ae69e8d8b55ebe445fa41fa534b1543ab50\"\n\t\t\t},\n                        \"nonce\": \"1\",\n                        \"balance\": \"0\",\n                        \"code\": \"0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b\"\n                    },\n                    \"0000000000000000000000000000000000000005\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"13cbb8d99c6c4e0f2728c7d72606e78a29c4e224\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000000\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000003\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"82a978b3f5962a5b0957d9ee9eef472ee55b42f1\": {\n                        \"storage\": {},\n                        \"nonce\": \"36\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000006\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000007\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"598443f1880ef585b21f1d7585bd0577402861e5\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"7d577a597b2742b498cb5cf0c26cdcd726d39e6e\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000004\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"e0fc04fa2d34a66b779fd5cee748268032a146c0\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"3535353535353535353535353535353535353535\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"code\": \"0x\"\n                    },\n                    \"0000000000000000000000000000000000000002\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1\",\n                        \"code\": \"0x\"\n                    },\n                    \"77db2bebba79db42a978f896968f4afce746ea1f\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    },\n                    \"90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c\": {\n                        \"storage\": {},\n                        \"nonce\": \"0\",\n                        \"balance\": \"1000000000000000000\",\n                        \"code\": \"0x\"\n                    }\n                }\n            }\n        ],\n        \"_info\": { \n            \"comment\": \"Puts the point (1, 2) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes\"\n        }\n    }\n}\n"
  },
  {
    "path": "tests/unscheduled/__init__.py",
    "content": "\"\"\"\nTest cases for unscheduled EVM functionality. A temporary home for features\nthat are not yet CFI'd for inclusion in the next hardfork.\n\"\"\"\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/__init__.py",
    "content": "\"\"\"\nTest cases for [EIP-7692: EVM Object Format (EOFv1) Meta](https://eips.ethereum.org/EIPS/eip-7692).\n    Test cases for the EIPs included in EIP-7692 EOFv1 Meta.\n\n    * [EIP-663: SWAPN, DUPN and EXCHANGE instructions](https://eips.ethereum.org/EIPS/eip-663).\n    * [EIP-3540: EOF - EVM Object Format v1](https://eips.ethereum.org/EIPS/eip-3540).\n    * [EIP-3670: EOF - Code Validation](https://eips.ethereum.org/EIPS/eip-3670).\n    * [EIP-4200: EOF - Static relative jumps](https://eips.ethereum.org/EIPS/eip-4200).\n    * [EIP-4750: EOF - Functions](https://eips.ethereum.org/EIPS/eip-4750).\n    * [EIP-5450: EOF - Stack Validation](https://eips.ethereum.org/EIPS/eip-5450).\n    * [EIP-6206: EOF - JUMPF and non-returning functions](https://eips.ethereum.org/EIPS/eip-6206).\n    * [EIP-7069: Revamped CALL instructions](https://eips.ethereum.org/EIPS/eip-7069).\n    * [EIP-7480: EOF - Data section access instructions](https://eips.ethereum.org/EIPS/eip-7480).\n    * [EIP-7620: EOF Contract Creation](https://eips.ethereum.org/EIPS/eip-7620).\n    * [EIP-7873: EOF - TXCREATE and InitcodeTransaction type](https://eips.ethereum.org/EIPS/eip-7873).\n\n## Devnet Specifications\n\n    - [ethpandaops/eof-devnet-0](https://notes.ethereum.org/@ethpandaops/eof-devnet-0).\n\"\"\"\n\nEOF_FORK_NAME = \"EOFv1\"\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/__init__.py",
    "content": "\"\"\"\nEOF - EVM Object Format v1 tests.\n\nTest cases for\n[EIP-3540: EOF - EVM Object Format v1](https://eips.ethereum.org/EIPS/eip-3540).\n\nEIP-3540 introduces a structured format for EVM bytecode, with separate\nsections for code and data. Opcodes introduced: None (defines a new\nbytecode structure but no new opcodes).\n\"\"\"\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/opcodes.py",
    "content": "\"\"\"EOF Valid Opcodes.\"\"\"\n\nfrom typing import List\n\nfrom ethereum_test_vm import Opcodes as Op\n\nV1_EOF_OPCODES: List[Op] = [\n    # new eof ops\n    # EIP-663 Swap and Dup\n    Op.DUPN,\n    Op.SWAPN,\n    Op.EXCHANGE,\n    # EIP-4200 Relative Jumps\n    Op.RJUMP,\n    Op.RJUMPI,\n    Op.RJUMPV,\n    # EIP-4750 functions\n    Op.CALLF,\n    Op.RETF,\n    # EIP-6209 JUMPF Instruction\n    Op.JUMPF,\n    #  EIP-7069 Revamped EOF Call\n    Op.EXTCALL,\n    Op.EXTDELEGATECALL,\n    Op.EXTSTATICCALL,\n    Op.RETURNDATALOAD,\n    # EIP-7480 EOF Data Section Access\n    Op.DATALOAD,\n    Op.DATALOADN,\n    Op.DATASIZE,\n    Op.DATACOPY,\n    # EIP-7620 EOF Create and Return Contract operation\n    Op.EOFCREATE,\n    # EIP-7873 TXCREATE and InitcodeTransaction\n    Op.TXCREATE,\n    # EIP-7620 EOF Create and Return Contract operation\n    Op.RETURNCODE,\n    # Non-deprecated Legacy Opcodes\n    Op.STOP,\n    Op.ADD,\n    Op.MUL,\n    Op.SUB,\n    Op.DIV,\n    Op.SDIV,\n    Op.MOD,\n    Op.SMOD,\n    Op.ADDMOD,\n    Op.MULMOD,\n    Op.EXP,\n    Op.SIGNEXTEND,\n    Op.LT,\n    Op.GT,\n    Op.SLT,\n    Op.SGT,\n    Op.EQ,\n    Op.ISZERO,\n    Op.AND,\n    Op.OR,\n    Op.XOR,\n    Op.NOT,\n    Op.BYTE,\n    Op.SHL,\n    Op.SHR,\n    Op.SAR,\n    Op.SHA3,\n    Op.ADDRESS,\n    Op.BALANCE,\n    Op.ORIGIN,\n    Op.CALLER,\n    Op.CALLVALUE,\n    Op.CALLDATALOAD,\n    Op.CALLDATASIZE,\n    Op.CALLDATACOPY,\n    Op.CODESIZE,\n    Op.CODECOPY,\n    Op.GASPRICE,\n    Op.EXTCODESIZE,\n    Op.EXTCODECOPY,\n    Op.RETURNDATASIZE,\n    Op.RETURNDATACOPY,\n    Op.EXTCODEHASH,\n    Op.BLOCKHASH,\n    Op.COINBASE,\n    Op.TIMESTAMP,\n    Op.NUMBER,\n    Op.PREVRANDAO,\n    Op.GASLIMIT,\n    Op.CHAINID,\n    Op.SELFBALANCE,\n    Op.BASEFEE,\n    Op.POP,\n    Op.MLOAD,\n    Op.MSTORE,\n    Op.MSTORE8,\n    Op.SLOAD,\n    Op.SSTORE,\n    Op.MSIZE,\n    Op.GAS,\n    Op.JUMPDEST,\n    Op.PUSH1,\n    Op.PUSH2,\n    Op.PUSH3,\n    Op.PUSH4,\n    Op.PUSH5,\n    Op.PUSH6,\n    Op.PUSH7,\n    Op.PUSH8,\n    Op.PUSH9,\n    Op.PUSH10,\n    Op.PUSH11,\n    Op.PUSH12,\n    Op.PUSH13,\n    Op.PUSH14,\n    Op.PUSH15,\n    Op.PUSH16,\n    Op.PUSH17,\n    Op.PUSH18,\n    Op.PUSH19,\n    Op.PUSH20,\n    Op.PUSH21,\n    Op.PUSH22,\n    Op.PUSH23,\n    Op.PUSH24,\n    Op.PUSH25,\n    Op.PUSH26,\n    Op.PUSH27,\n    Op.PUSH28,\n    Op.PUSH29,\n    Op.PUSH30,\n    Op.PUSH31,\n    Op.PUSH32,\n    Op.DUP1,\n    Op.DUP2,\n    Op.DUP3,\n    Op.DUP4,\n    Op.DUP5,\n    Op.DUP6,\n    Op.DUP7,\n    Op.DUP8,\n    Op.DUP9,\n    Op.DUP10,\n    Op.DUP11,\n    Op.DUP12,\n    Op.DUP13,\n    Op.DUP14,\n    Op.DUP15,\n    Op.DUP16,\n    Op.SWAP1,\n    Op.SWAP2,\n    Op.SWAP3,\n    Op.SWAP4,\n    Op.SWAP5,\n    Op.SWAP6,\n    Op.SWAP7,\n    Op.SWAP8,\n    Op.SWAP9,\n    Op.SWAP10,\n    Op.SWAP11,\n    Op.SWAP12,\n    Op.SWAP13,\n    Op.SWAP14,\n    Op.SWAP15,\n    Op.SWAP16,\n    Op.LOG0,\n    Op.LOG1,\n    Op.LOG2,\n    Op.LOG3,\n    Op.LOG4,\n    Op.CREATE,\n    Op.CALL,\n    # Op.CALLCODE,\n    Op.RETURN,\n    Op.DELEGATECALL,\n    Op.CREATE2,\n    Op.STATICCALL,\n    Op.REVERT,\n    Op.INVALID,\n    # Op.SELFDESTRUCT,\n]\n\"\"\"\nList of all valid EOF V1 opcodes for Shanghai.\n\"\"\"\n\nV1_EOF_DEPRECATED_OPCODES = [\n    Op.SELFDESTRUCT,\n    Op.CALLCODE,\n    Op.JUMP,\n    Op.JUMPI,\n    Op.PC,\n]\n\"\"\"\nList of opcodes that will be deprecated for EOF V1.\n\nFor these opcodes we will also add the correct expected amount of stack items\nso the container is not considered invalid due to buffer underflow.\n\"\"\"\n\nV1_EOF_ONLY_OPCODES = [\n    Op.DUPN,\n    Op.SWAPN,\n    Op.EXCHANGE,\n    # EIP-4200 Relative Jumps\n    Op.RJUMP,\n    Op.RJUMPI,\n    Op.RJUMPV,\n    # EIP-4750 functions\n    Op.CALLF,\n    Op.RETF,\n    # EIP-6209 JUMPF Instruction\n    Op.JUMPF,\n    #  EIP-7069 Revamped EOF Call\n    Op.EXTCALL,\n    Op.EXTDELEGATECALL,\n    Op.EXTSTATICCALL,\n    # EIP-7480 EOF Data Section Access\n    Op.DATALOAD,\n    Op.DATALOADN,\n    Op.DATASIZE,\n    Op.DATACOPY,\n    # EIP-7620 EOF Create and Return Contract operation\n    Op.EOFCREATE,\n    Op.RETURNCODE,\n]\n\"\"\"\nList of valid EOF V1 opcodes that are disabled in legacy bytecode.\n\"\"\"\n\nVALID_TERMINATING_OPCODES = [\n    Op.STOP,\n    Op.RETURN,\n    Op.REVERT,\n    Op.INVALID,\n    Op.RETF,\n    Op.JUMPF,\n]\n\nINVALID_TERMINATING_OPCODES = [op for op in V1_EOF_OPCODES if op not in VALID_TERMINATING_OPCODES]\n\nINVALID_OPCODES = [\n    bytes([i])\n    for i in range(256)\n    if i not in [x.int() for x in V1_EOF_OPCODES] + [x.int() for x in V1_EOF_DEPRECATED_OPCODES]\n]\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/spec.py",
    "content": "\"\"\"EOF V1 Constants used throughout all tests.\"\"\"\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_all_opcodes_in_container.py",
    "content": "\"\"\"\nEOF Container: check how every opcode behaves in the middle of the valid eof\ncontainer code.\n\"\"\"\n\nimport itertools\nfrom typing import Any, Dict, Generator, List, Tuple\n\nimport pytest\n\nfrom ethereum_test_tools import EOFException, EOFTestFiller, Opcode, UndefinedOpcodes\nfrom ethereum_test_tools import Opcodes as Op\nfrom ethereum_test_types.eof.constants import MAX_RUNTIME_STACK_HEIGHT\nfrom ethereum_test_types.eof.v1 import Container, ContainerKind, Section\nfrom ethereum_test_types.eof.v1.constants import MAX_STACK_INCREASE_LIMIT\nfrom ethereum_test_vm import Bytecode\n\nfrom .. import EOF_FORK_NAME\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-3540.md\"\nREFERENCE_SPEC_VERSION = \"8dcb0a8c1c0102c87224308028632cc986a61183\"\n\npytestmark = pytest.mark.valid_from(EOF_FORK_NAME)\n\nall_opcodes = set(Op)\nundefined_opcodes = set(UndefinedOpcodes)\n\n# Invalid Opcodes will produce EOFException.UNDEFINED_INSTRUCTION when used in\n# EOFContainer\ninvalid_eof_opcodes = {\n    Op.CODESIZE,\n    Op.SELFDESTRUCT,\n    Op.CREATE2,\n    Op.CODECOPY,\n    Op.EXTCODESIZE,\n    Op.EXTCODECOPY,\n    Op.EXTCODEHASH,\n    Op.JUMP,\n    Op.JUMPI,\n    Op.PC,\n    Op.GAS,\n    Op.CREATE,\n    Op.CALL,\n    Op.CALLCODE,\n    Op.DELEGATECALL,\n    Op.STATICCALL,\n}\n\nvalid_eof_opcodes = all_opcodes - invalid_eof_opcodes\n\n# Halting the execution opcodes can be placed without STOP instruction at the\n# end\nhalting_opcodes = {\n    Op.STOP,\n    Op.RETURNCODE,\n    Op.RETURN,\n    Op.REVERT,\n    Op.INVALID,\n}\n\n# Opcodes that end the code section and can be placed without STOP instruction\n# at the end\nsection_terminating_opcodes = {\n    Op.RETF,\n    Op.JUMPF,\n}\n\ndata_portion_opcodes = {op for op in all_opcodes if op.has_data_portion()}\n\n\n# NOTE: `sorted` is used to ensure that the tests are collected in a\n# deterministic order.\n\n\n@pytest.mark.parametrize(\n    \"opcode\",\n    sorted((all_opcodes | undefined_opcodes) - {Op.RETF}),\n)\ndef test_all_opcodes_in_container(\n    eof_test: EOFTestFiller,\n    opcode: Opcode,\n) -> None:\n    \"\"\"\n    Test all opcodes inside valid container 257 because 0x5B is duplicated.\n    \"\"\"\n    data_portion = 1 if opcode == Op.CALLF else 0\n    opcode_with_data_portion = opcode[data_portion] if opcode.has_data_portion() else opcode\n\n    # opcode_with_data_portion has the correct minimum stack height\n    bytecode = Op.PUSH0 * opcode_with_data_portion.min_stack_height + opcode_with_data_portion\n\n    if opcode not in (halting_opcodes | section_terminating_opcodes):\n        bytecode += Op.STOP\n\n    sections = [Section.Code(code=bytecode)]\n\n    match opcode:\n        case Op.EOFCREATE | Op.RETURNCODE:\n            sections.append(\n                Section.Container(\n                    container=Container(\n                        sections=[\n                            Section.Code(code=Op.REVERT(0, 0)),\n                        ]\n                    )\n                )\n            )\n        case Op.CALLF:\n            sections.append(\n                Section.Code(\n                    code=Op.RETF,\n                    code_outputs=0,\n                )\n            )\n    sections.append(Section.Data(\"1122334455667788\" * 4))\n\n    if opcode == Op.RETURNCODE:\n        eof_code = Container(sections=sections, kind=ContainerKind.INITCODE)\n    else:\n        eof_code = Container(sections=sections)\n\n    eof_test(\n        container=eof_code,\n        expect_exception=(\n            None if opcode in valid_eof_opcodes else EOFException.UNDEFINED_INSTRUCTION\n        ),\n    )\n\n\n@pytest.mark.parametrize(\n    \"opcode\",\n    sorted(invalid_eof_opcodes | undefined_opcodes),\n)\n@pytest.mark.parametrize(\n    \"terminating_opcode\",\n    sorted(halting_opcodes) + [Op.RJUMP],\n)\ndef test_invalid_opcodes_after_stop(\n    eof_test: EOFTestFiller,\n    opcode: Opcode,\n    terminating_opcode: Opcode,\n) -> None:\n    \"\"\"\n    Test that an invalid opcode placed after STOP (terminating instruction)\n    invalidates EOF.\n    \"\"\"\n    terminating_code = Bytecode(terminating_opcode)\n    match terminating_opcode:  # Enhance the code for complex opcodes.\n        case Op.RETURNCODE:\n            terminating_code = Op.RETURNCODE[0]\n        case Op.RETURN | Op.REVERT:\n            terminating_code = Op.PUSH0 + Op.PUSH0 + terminating_opcode\n        case Op.RJUMP:\n            terminating_code = Op.RJUMP[-3]\n\n    eof_code = Container(\n        kind=ContainerKind.INITCODE\n        if terminating_opcode == Op.RETURNCODE\n        else ContainerKind.RUNTIME,\n        sections=[\n            Section.Code(code=terminating_code + opcode),\n            Section.Data(\"00\" * 32),\n        ]\n        + (\n            [Section.Container(container=Container.Code(Op.INVALID))]\n            if terminating_opcode == Op.RETURNCODE\n            else []\n        ),\n    )\n\n    eof_test(\n        container=eof_code,\n        expect_exception=EOFException.UNDEFINED_INSTRUCTION,\n    )\n\n\n@pytest.mark.parametrize(\n    \"opcode\",\n    sorted(\n        valid_eof_opcodes\n        - halting_opcodes\n        - section_terminating_opcodes\n        - {Op.RJUMP, Op.RJUMPI, Op.RJUMPV}\n    ),\n)\ndef test_all_invalid_terminating_opcodes(\n    eof_test: EOFTestFiller,\n    opcode: Opcode,\n) -> None:\n    \"\"\"Test all opcodes that are invalid as the last opcode in a container.\"\"\"\n    if opcode.has_data_portion():\n        # Add the appropriate data portion to the opcode by using the get_item\n        # method. On the CALLF opcode we need to reference the second code\n        # section, hence the [1] index.\n        opcode = opcode[0] if opcode != Op.CALLF else opcode[1]\n\n    bytecode = (Op.PUSH0 * opcode.min_stack_height) + opcode\n\n    sections = [Section.Code(code=bytecode)]\n\n    if opcode == Op.CALLF[1]:\n        sections += [Section.Code(code=Op.RETF, code_outputs=0)]\n    elif opcode == Op.EOFCREATE[0]:\n        sections += [\n            Section.Container(\n                container=Container(\n                    sections=[\n                        Section.Code(code=Op.RETURNCODE[0](0, 0)),\n                        Section.Container(Container.Code(code=Op.STOP)),\n                    ]\n                )\n            )\n        ]\n\n    sections += [Section.Data(b\"\\0\" * 32)]\n\n    eof_test(\n        container=Container(\n            sections=sections,\n        ),\n        expect_exception=EOFException.MISSING_STOP_OPCODE,\n    )\n\n\n@pytest.mark.parametrize(\n    \"opcode\",\n    sorted(halting_opcodes | section_terminating_opcodes),\n)\ndef test_all_unreachable_terminating_opcodes_after_stop(\n    eof_test: EOFTestFiller,\n    opcode: Opcode,\n) -> None:\n    \"\"\"Test all terminating opcodes after stop.\"\"\"\n    match opcode:\n        case Op.STOP:\n            sections = [Section.Code(code=Op.STOP + Op.STOP)]\n        case Op.RETF:\n            sections = [\n                Section.Code(code=Op.CALLF[1] + Op.STOP),\n                Section.Code(code=Op.STOP + Op.RETF, code_outputs=0),\n            ]\n        case Op.JUMPF:\n            sections = [\n                Section.Code(code=Op.STOP + Op.JUMPF[1]),\n                Section.Code(code=Op.STOP),\n            ]\n        case Op.RETURNCODE:\n            sections = [\n                Section.Code(code=Op.EOFCREATE[0](0, 0, 0, 0) + Op.STOP),\n                Section.Container(\n                    container=Container(\n                        sections=[\n                            Section.Code(code=Op.STOP + Op.RETURNCODE[0](0, 0)),\n                            Section.Container(Container.Code(code=Op.STOP)),\n                        ]\n                    )\n                ),\n            ]\n        case Op.RETURN | Op.REVERT | Op.INVALID:\n            sections = [\n                Section.Code(code=Op.PUSH0 + Op.PUSH0 + Op.STOP + opcode),\n            ]\n        case _:\n            raise NotImplementedError(f\"Opcode {opcode} is not implemented\")\n\n    eof_test(\n        container=Container(\n            sections=sections,\n        ),\n        expect_exception=EOFException.UNREACHABLE_INSTRUCTIONS\n        if opcode != Op.RETURNCODE\n        else EOFException.INCOMPATIBLE_CONTAINER_KIND,\n    )\n\n\n@pytest.mark.parametrize(\n    \"opcode\",\n    sorted((halting_opcodes | section_terminating_opcodes) - {Op.STOP}),\n)\ndef test_all_unreachable_terminating_opcodes_before_stop(\n    eof_test: EOFTestFiller,\n    opcode: Opcode,\n) -> None:\n    \"\"\"Test all opcodes terminating opcodes before.\"\"\"\n    match opcode:\n        case Op.RETF:\n            sections = [\n                Section.Code(code=Op.CALLF[1] + Op.STOP),\n                Section.Code(code=Op.RETF + Op.STOP, code_outputs=0),\n            ]\n        case Op.JUMPF:\n            sections = [\n                Section.Code(code=Op.JUMPF[1] + Op.STOP),\n                Section.Code(code=Op.STOP),\n            ]\n        case Op.RETURNCODE:\n            sections = [\n                Section.Code(code=Op.EOFCREATE[0](0, 0, 0, 0) + Op.STOP),\n                Section.Container(\n                    container=Container(\n                        sections=[\n                            Section.Code(code=Op.RETURNCODE[0](0, 0) + Op.STOP),\n                            Section.Container(Container.Code(code=Op.STOP)),\n                        ]\n                    )\n                ),\n            ]\n        case Op.RETURN | Op.REVERT | Op.INVALID:\n            sections = [\n                Section.Code(code=Op.PUSH1(0) + Op.PUSH1(0) + opcode + Op.STOP),\n            ]\n        case _:\n            raise NotImplementedError(f\"Opcode {opcode} is not implemented\")\n\n    eof_test(\n        container=Container(\n            sections=sections,\n        ),\n        expect_exception=EOFException.UNREACHABLE_INSTRUCTIONS\n        if opcode != Op.RETURNCODE\n        else EOFException.INCOMPATIBLE_CONTAINER_KIND,\n    )\n\n\n@pytest.mark.parametrize(\n    \"opcode\",\n    sorted(op for op in valid_eof_opcodes if op.pushed_stack_items > op.popped_stack_items)\n    + [\n        Op.DUPN[0xFF],\n    ],\n)\n@pytest.mark.parametrize(\n    \"exception\",\n    # We test two types of exceptions here:\n    # 1. Invalid max stack height, where we modify the `max_stack_height`\n    #    field of the code section to the maximum stack height allowed by\n    #    the EIP-3540, so the code still has to be checked for stack overflow.\n    #\n    # 2. Max stack height above limit, where we don't modify the\n    #    `max_stack_height` field of the code section, so the actual\n    #    code doesn't have to be verified for the stack overflow.\n    [EOFException.INVALID_MAX_STACK_INCREASE, EOFException.MAX_STACK_INCREASE_ABOVE_LIMIT],\n)\ndef test_all_opcodes_stack_overflow(\n    eof_test: EOFTestFiller,\n    opcode: Opcode,\n    exception: EOFException,\n) -> None:\n    \"\"\"\n    Test stack overflow on all opcodes that push more items than they pop.\n    \"\"\"\n    opcode = opcode[0] if opcode.has_data_portion() else opcode\n\n    assert opcode.pushed_stack_items - opcode.popped_stack_items == 1\n    opcode_count = MAX_RUNTIME_STACK_HEIGHT - opcode.min_stack_height\n\n    bytecode = Op.PUSH0 * opcode.min_stack_height\n    bytecode += opcode * opcode_count\n    bytecode += Op.STOP\n\n    kwargs: Dict[str, Any] = {\"code\": bytecode}\n\n    if exception == EOFException.INVALID_MAX_STACK_INCREASE:\n        # Lie about the max stack height to make the code be checked for stack\n        # overflow.\n        kwargs[\"max_stack_height\"] = MAX_STACK_INCREASE_LIMIT\n\n    sections = [Section.Code(**kwargs)]\n\n    if opcode == Op.DATALOADN[0]:\n        sections.append(Section.Data(b\"\\0\" * 32))\n    eof_code = Container(sections=sections)\n\n    eof_test(\n        container=eof_code,\n        expect_exception=exception,\n    )\n\n\ndef valid_opcode_combinations(\n    compute_max_stack_height_options: List[bool],\n    truncate_all_options: List[bool],\n    opcodes: List[Opcode],\n) -> Generator[Tuple[bool, bool, Opcode], None, None]:\n    \"\"\"\n    Create valid parameter combinations for\n    test_truncated_data_portion_opcodes().\n    \"\"\"\n    for opcode, truncate_all, compute_max_stack_height in itertools.product(\n        opcodes, truncate_all_options, compute_max_stack_height_options\n    ):\n        opcode_with_data_portion: bytes = bytes(opcode[1])\n\n        # Skip invalid or redundant combinations to avoid using pytest.skip in\n        # the test\n        if len(opcode_with_data_portion) == 2 and truncate_all:\n            continue\n        if (\n            compute_max_stack_height\n            and max(opcode.min_stack_height, opcode.pushed_stack_items) == 0\n        ):\n            continue\n\n        yield compute_max_stack_height, truncate_all, opcode\n\n\n@pytest.mark.parametrize(\n    \"compute_max_stack_height, truncate_all, opcode\",\n    valid_opcode_combinations([False, True], [False, True], sorted(data_portion_opcodes)),\n)\ndef test_truncated_data_portion_opcodes(\n    eof_test: EOFTestFiller,\n    opcode: Opcode,\n    truncate_all: bool,\n    compute_max_stack_height: bool,\n) -> None:\n    \"\"\"\n    Test that an instruction with data portion and truncated immediate bytes\n    (therefore a terminating instruction is also missing) invalidates EOF.\n    \"\"\"\n    opcode_with_data_portion: bytes = bytes(opcode[1])\n\n    # Compose instruction bytes with empty imm bytes (truncate_all) or 1 byte\n    # shorter imm bytes.\n    opcode_bytes = opcode_with_data_portion[0:1] if truncate_all else opcode_with_data_portion[:-1]\n\n    if opcode.min_stack_height > 0:\n        opcode_bytes = bytes(Op.PUSH0 * opcode.min_stack_height) + opcode_bytes\n\n    max_stack_height = (\n        max(opcode.min_stack_height, opcode.pushed_stack_items) if compute_max_stack_height else 0\n    )\n\n    eof_code = Container(\n        sections=[\n            Section.Code(opcode_bytes, max_stack_height=max_stack_height),\n            # Provide data section potentially confused with missing imm bytes.\n            Section.Data(b\"\\0\" * 64),\n        ]\n    )\n    eof_test(\n        container=eof_code,\n        expect_exception=EOFException.TRUNCATED_INSTRUCTION,\n    )\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_size.py",
    "content": "\"\"\"EOF validation tests for EIP-3540 container size.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_tools import EOFException, EOFTestFiller\nfrom ethereum_test_tools import Opcodes as Op\nfrom ethereum_test_types.eof.v1 import Container, Section\nfrom ethereum_test_types.eof.v1.constants import MAX_INITCODE_SIZE\n\nfrom .. import EOF_FORK_NAME\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-3540.md\"\nREFERENCE_SPEC_VERSION = \"6b313505c75afa49a4f34de39c609ebebc7be87f\"\n\npytestmark = pytest.mark.valid_from(EOF_FORK_NAME)\n\nVALID_CONTAINER = Container(sections=[Section.Code(code=Op.STOP)])\n\n\n@pytest.mark.parametrize(\n    \"over_limit\",\n    [0, 1, 2, 2**16 - MAX_INITCODE_SIZE],\n)\n@pytest.mark.eof_test_only\ndef test_max_size(\n    eof_test: EOFTestFiller,\n    over_limit: int,\n) -> None:\n    \"\"\"Verify EOF container valid at maximum size, invalid above.\"\"\"\n    # Expand the minimal EOF code by more noop code, reaching the desired\n    # target container size.\n    code = Container(\n        sections=[\n            Section.Code(\n                code=Op.JUMPDEST * (MAX_INITCODE_SIZE - len(VALID_CONTAINER) + over_limit)\n                + Op.STOP\n            )\n        ]\n    )\n    assert len(code) == MAX_INITCODE_SIZE + over_limit\n    eof_test(\n        container=code,\n        expect_exception=None if over_limit == 0 else EOFException.CONTAINER_SIZE_ABOVE_LIMIT,\n    )\n\n\n@pytest.mark.parametrize(\n    \"size\",\n    [MAX_INITCODE_SIZE + 1, MAX_INITCODE_SIZE * 2],\n)\n@pytest.mark.eof_test_only\ndef test_above_max_size_raw(\n    eof_test: EOFTestFiller,\n    size: int,\n) -> None:\n    \"\"\"\n    Verify EOF container invalid above maximum size, regardless of header\n    contents.\n    \"\"\"\n    code = Op.INVALID * size\n    eof_test(\n        container=Container(raw_bytes=code),\n        expect_exception=EOFException.CONTAINER_SIZE_ABOVE_LIMIT,\n    )\n\n\n@pytest.mark.parametrize(\n    \"code\",\n    [\n        pytest.param(\n            Container(sections=[Section.Code(code=Op.STOP, custom_size=MAX_INITCODE_SIZE)]),\n            id=\"1st_code_section\",\n        ),\n        pytest.param(\n            Container(\n                sections=[\n                    Section.Code(code=Op.STOP),\n                    Section.Code(code=Op.STOP, custom_size=MAX_INITCODE_SIZE),\n                ]\n            ),\n            id=\"2nd_code_section\",\n        ),\n        pytest.param(\n            Container(\n                sections=[\n                    Section.Code(code=Op.STOP),\n                    Section.Container(container=Op.STOP, custom_size=MAX_INITCODE_SIZE),\n                ]\n            ),\n            id=\"1st_container_section\",\n        ),\n        pytest.param(\n            Container(\n                sections=[\n                    Section.Code(code=Op.STOP),\n                    Section.Container(container=Op.STOP),\n                    Section.Container(container=Op.STOP, custom_size=MAX_INITCODE_SIZE),\n                ]\n            ),\n            id=\"2nd_container_section\",\n        ),\n    ],\n)\ndef test_section_after_end_of_container(\n    eof_test: EOFTestFiller,\n    code: Container,\n) -> None:\n    \"\"\"\n    Verify EOF container is invalid if any of sections declares above container\n    size.\n    \"\"\"\n    eof_test(\n        container=code,\n        expect_exception=EOFException.INVALID_SECTION_BODIES_SIZE,\n    )\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py",
    "content": "\"\"\"EOF validation tests for EIP-3540 container format.\"\"\"\n\nimport itertools\n\nimport pytest\n\nfrom ethereum_test_tools import EOFException, EOFTestFiller\nfrom ethereum_test_types.eof.v1 import (\n    AutoSection,\n    Container,\n    ContainerKind,\n    Section,\n    SectionKind,\n)\nfrom ethereum_test_types.eof.v1.constants import (\n    MAX_CODE_INPUTS,\n    MAX_CODE_OUTPUTS,\n    MAX_CODE_SECTIONS,\n    MAX_STACK_INCREASE_LIMIT,\n)\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .. import EOF_FORK_NAME\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-3540.md\"\nREFERENCE_SPEC_VERSION = \"8dcb0a8c1c0102c87224308028632cc986a61183\"\n\npytestmark = pytest.mark.valid_from(EOF_FORK_NAME)\n\nVALID_CONTAINER = Container(sections=[Section.Code(code=Op.STOP)])\n\n\n@pytest.mark.parametrize(\n    \"container\",\n    [\n        Container(\n            name=\"single_code_section_max_stack_size\",\n            sections=[\n                Section.Code(\n                    code=(Op.CALLER * MAX_STACK_INCREASE_LIMIT)\n                    + (Op.POP * MAX_STACK_INCREASE_LIMIT)\n                    + Op.STOP,\n                    max_stack_height=MAX_STACK_INCREASE_LIMIT,\n                ),\n            ],\n        ),\n        Container(\n            name=\"code_section_with_inputs_outputs\",\n            sections=[\n                Section.Code(\n                    code=(Op.PUSH0 + Op.CALLF[1] + Op.STOP),\n                ),\n                Section.Code(\n                    code=Op.POP + Op.PUSH0 + Op.RETF,\n                    code_inputs=1,\n                    code_outputs=1,\n                ),\n            ],\n        ),\n        Container(\n            name=\"code_section_input_maximum\",\n            sections=[\n                Section.Code(\n                    code=((Op.PUSH0 * MAX_CODE_INPUTS) + Op.CALLF[1] + Op.STOP),\n                    max_stack_height=MAX_CODE_INPUTS,\n                ),\n                Section.Code(\n                    code=(Op.POP * MAX_CODE_INPUTS) + Op.RETF,\n                    code_inputs=MAX_CODE_INPUTS,\n                    code_outputs=0,\n                    max_stack_height=MAX_CODE_INPUTS,\n                ),\n            ],\n        ),\n        Container(\n            name=\"code_section_output_maximum\",\n            sections=[\n                Section.Code(\n                    code=(Op.CALLF[1] + Op.STOP),\n                    max_stack_height=MAX_CODE_OUTPUTS,\n                ),\n                Section.Code(\n                    code=(Op.PUSH0 * MAX_CODE_OUTPUTS) + Op.RETF,\n                    code_inputs=0,\n                    code_outputs=MAX_CODE_OUTPUTS,\n                    max_stack_height=MAX_CODE_OUTPUTS,\n                ),\n            ],\n        ),\n        Container(\n            name=\"multiple_code_sections\",\n            sections=[\n                Section.Code(\n                    Op.CALLF[1] + Op.STOP,\n                ),\n                Section.Code(\n                    code=Op.RETF,\n                    code_inputs=0,\n                    code_outputs=0,\n                ),\n            ],\n        ),\n        Container(\n            name=\"multiple_code_sections_max_inputs_max_outputs\",\n            sections=[\n                Section.Code(\n                    (Op.PUSH0 * MAX_CODE_OUTPUTS) + Op.CALLF[1] + Op.STOP,\n                    max_stack_height=MAX_CODE_OUTPUTS,\n                ),\n                Section.Code(\n                    code=Op.RETF,\n                    code_inputs=MAX_CODE_INPUTS,\n                    code_outputs=MAX_CODE_OUTPUTS,\n                    max_stack_height=MAX_CODE_INPUTS,\n                ),\n            ],\n        ),\n        Container(\n            name=\"single_subcontainer_without_data\",\n            sections=[\n                Section.Code(Op.EOFCREATE[0](0, 0, 0, 0) + Op.STOP),\n                Section.Container(Container.Code(Op.INVALID)),\n            ],\n        ),\n        Container(\n            name=\"single_subcontainer_with_data\",\n            sections=[\n                Section.Code(Op.EOFCREATE[0](0, 0, 0, 0) + Op.STOP),\n                Section.Container(Container.Code(Op.INVALID)),\n                Section.Data(data=\"0xAA\"),\n            ],\n        ),\n    ],\n    ids=lambda c: c.name,\n)\ndef test_valid_containers(\n    eof_test: EOFTestFiller,\n    container: Container,\n) -> None:\n    \"\"\"Test various types of valid containers.\"\"\"\n    assert container.validity_error is None, (\n        f\"Valid container with validity error: {container.validity_error}\"\n    )\n    eof_test(container=container)\n\n\n@pytest.mark.parametrize(\n    \"container\",\n    [\n        Container(\n            name=\"empty_container\",\n            raw_bytes=b\"\",\n            validity_error=[\n                EOFException.INVALID_MAGIC,\n            ],\n        ),\n        Container(\n            name=\"single_code_section_no_data_section\",\n            sections=[\n                Section.Code(Op.STOP),\n            ],\n            auto_data_section=False,\n            validity_error=[\n                EOFException.MISSING_DATA_SECTION,\n                EOFException.UNEXPECTED_HEADER_KIND,\n            ],\n        ),\n        Container(\n            name=\"incomplete_magic\",\n            raw_bytes=\"ef\",\n            validity_error=EOFException.INVALID_MAGIC,\n        ),\n        Container(\n            name=\"no_version\",\n            raw_bytes=\"ef00\",\n            validity_error=[EOFException.INVALID_VERSION, EOFException.INVALID_MAGIC],\n        ),\n        Container(\n            name=\"no_type_header\",\n            raw_bytes=\"ef00 01\",\n            validity_error=EOFException.MISSING_HEADERS_TERMINATOR,\n        ),\n        Container(\n            name=\"no_type_section_size\",\n            raw_bytes=\"ef00 01 01\",\n            validity_error=[\n                EOFException.MISSING_HEADERS_TERMINATOR,\n                EOFException.INVALID_TYPE_SECTION_SIZE,\n            ],\n        ),\n        Container(\n            name=\"incomplete_type_section_size\",\n            raw_bytes=\"ef00010100\",\n            validity_error=[\n                EOFException.INCOMPLETE_SECTION_SIZE,\n                EOFException.INVALID_TYPE_SECTION_SIZE,\n            ],\n        ),\n        Container(\n            name=\"no_code_header\",\n            raw_bytes=bytes([0xEF, 0x00, 0x01, 0x01, 0x00, 0x04]),\n            validity_error=[\n                EOFException.MISSING_CODE_HEADER,\n                EOFException.MISSING_HEADERS_TERMINATOR,\n            ],\n        ),\n        Container(\n            name=\"no_code_header_2\",\n            raw_bytes=bytes([0xEF, 0x00, 0x01, 0x01, 0x00, 0x04, 0xFE]),\n            validity_error=[EOFException.MISSING_CODE_HEADER, EOFException.UNEXPECTED_HEADER_KIND],\n        ),\n        Container(\n            name=\"no_code_header_3\",\n            raw_bytes=bytes([0xEF, 0x00, 0x01, 0x01, 0x00, 0x04, 0x00]),\n            validity_error=[EOFException.MISSING_CODE_HEADER, EOFException.UNEXPECTED_HEADER_KIND],\n        ),\n        Container(\n            name=\"no_code_header_4\",\n            sections=[\n                Section(kind=SectionKind.TYPE, data=\"00800000\"),\n                Section.Data(\"da\"),\n            ],\n            expected_bytecode=\"ef0001 010004 ff0001 00 00800000 da\",\n            validity_error=[EOFException.MISSING_CODE_HEADER, EOFException.UNEXPECTED_HEADER_KIND],\n        ),\n        Container(\n            name=\"code_section_count_missing\",\n            raw_bytes=bytes([0xEF, 0x00, 0x01, 0x01, 0x00, 0x04, 0x02]),\n            validity_error=EOFException.INCOMPLETE_SECTION_NUMBER,\n        ),\n        Container(\n            name=\"code_section_count_incomplete\",\n            raw_bytes=\"ef00 01 01 0004 02 00\",\n            validity_error=EOFException.INCOMPLETE_SECTION_NUMBER,\n        ),\n        Container(\n            name=\"code_section_size_missing\",\n            raw_bytes=bytes([0xEF, 0x00, 0x01, 0x01, 0x00, 0x04, 0x02, 0x00, 0x01]),\n            validity_error=[\n                EOFException.MISSING_HEADERS_TERMINATOR,\n                EOFException.ZERO_SECTION_SIZE,\n            ],\n        ),\n        Container(\n            name=\"code_section_size_incomplete\",\n            raw_bytes=\"ef00 01 01 0004 02 0001 00\",\n            validity_error=[EOFException.INCOMPLETE_SECTION_SIZE, EOFException.ZERO_SECTION_SIZE],\n        ),\n        Container(\n            name=\"code_section_count_0x8000_truncated\",\n            raw_bytes=bytes([0xEF, 0x00, 0x01, 0x01, 0x00, 0x04, 0x02, 0x80, 0x00]),\n            validity_error=EOFException.TOO_MANY_CODE_SECTIONS,\n        ),\n        Container(\n            name=\"code_section_count_0xFFFF_truncated\",\n            raw_bytes=bytes([0xEF, 0x00, 0x01, 0x01, 0x00, 0x04, 0x02, 0xFF, 0xFF]),\n            validity_error=EOFException.TOO_MANY_CODE_SECTIONS,\n        ),\n        pytest.param(\n            Container(\n                name=\"code_section_count_0x8000\",\n                raw_bytes=bytes(\n                    [0xEF, 0x00, 0x01, 0x01, 0x00, 0x04, 0x02, 0x80, 0x00] + [0x00, 0x01] * 0x8000\n                ),\n                validity_error=EOFException.CONTAINER_SIZE_ABOVE_LIMIT,\n            ),\n            marks=pytest.mark.eof_test_only(reason=\"initcode too large\"),\n        ),\n        pytest.param(\n            Container(\n                name=\"code_section_count_0xFFFF\",\n                raw_bytes=bytes(\n                    [0xEF, 0x00, 0x01, 0x01, 0x00, 0x04, 0x02, 0xFF, 0xFF] + [0x00, 0x01] * 0xFFFF\n                ),\n                validity_error=EOFException.CONTAINER_SIZE_ABOVE_LIMIT,\n            ),\n            marks=pytest.mark.eof_test_only(reason=\"initcode too large\"),\n        ),\n        Container(\n            name=\"code_section_size_0x8000_truncated\",\n            raw_bytes=bytes([0xEF, 0x00, 0x01, 0x01, 0x00, 0x04, 0x02, 0x00, 0x01, 0x80, 0x00]),\n            validity_error=EOFException.MISSING_HEADERS_TERMINATOR,\n        ),\n        Container(\n            name=\"code_section_size_0xFFFF_truncated\",\n            raw_bytes=bytes([0xEF, 0x00, 0x01, 0x01, 0x00, 0x04, 0x02, 0x00, 0x01, 0xFF, 0xFF]),\n            validity_error=EOFException.MISSING_HEADERS_TERMINATOR,\n        ),\n        Container(\n            name=\"terminator_incomplete\",\n            header_terminator=b\"\",\n            sections=[\n                Section(kind=SectionKind.TYPE, data=b\"\", custom_size=4),\n                Section.Code(code=b\"\", custom_size=0x01),\n            ],\n            expected_bytecode=\"ef00 01 01 0004 02 0001 0001 ff 0000\",\n            validity_error=EOFException.MISSING_HEADERS_TERMINATOR,\n        ),\n        Container(\n            name=\"truncated_header_data_section\",\n            raw_bytes=\"ef00 01 01 0004 02 0001 0001\",\n            validity_error=EOFException.MISSING_HEADERS_TERMINATOR,\n        ),\n        Container(\n            name=\"no_data_section_size\",\n            raw_bytes=\"ef00 01 01 0004 02 0001 0001 ff\",\n            validity_error=EOFException.MISSING_HEADERS_TERMINATOR,\n        ),\n        Container(\n            name=\"data_section_size_incomplete\",\n            raw_bytes=\"ef00 01 01 0004 02 0001 0001 ff 00\",\n            validity_error=EOFException.INCOMPLETE_SECTION_SIZE,\n        ),\n        Container(\n            name=\"no_container_section_count\",\n            raw_bytes=\"ef00 01 01 0004 02 0001 0001 03\",\n            validity_error=EOFException.INCOMPLETE_SECTION_NUMBER,\n        ),\n        Container(\n            name=\"incomplete_container_section_count\",\n            raw_bytes=\"ef00 01 01 0004 02 0001 0001 03 00\",\n            validity_error=EOFException.INCOMPLETE_SECTION_NUMBER,\n        ),\n        Container(\n            name=\"zero_container_section_count\",\n            raw_bytes=\"ef00 01 01 0004 02 0001 0001 03 0000 ff 0000 00 00800000 00\",\n            validity_error=EOFException.ZERO_SECTION_SIZE,\n        ),\n        Container(\n            name=\"no_container_section_size\",\n            raw_bytes=\"ef00 01 01 0004 02 0001 0001 03 0001\",\n            validity_error=EOFException.MISSING_HEADERS_TERMINATOR,\n        ),\n        Container(\n            name=\"incomplete_container_section_size\",\n            raw_bytes=\"ef00 01 01 0004 02 0001 0001 03 0001 00\",\n            validity_error=EOFException.INCOMPLETE_SECTION_SIZE,\n        ),\n        Container(\n            name=\"incomplete_container_section_size_2\",\n            raw_bytes=\"ef00 01 01 0004 02 0001 0001 03 0001 0000\",\n            validity_error=EOFException.INCOMPLETE_SECTION_SIZE,\n        ),\n        Container(\n            name=\"incomplete_container_section_size_3\",\n            raw_bytes=\"ef00 01 01 0004 02 0001 0001 03 0001 000000\",\n            validity_error=EOFException.INCOMPLETE_SECTION_SIZE,\n        ),\n        Container(\n            name=\"incomplete_container_section_size_4\",\n            raw_bytes=\"ef00 01 01 0004 02 0001 0001 03 0002 00000001\",\n            validity_error=EOFException.INCOMPLETE_SECTION_SIZE,\n        ),\n        Container(\n            name=\"incomplete_container_section_size_5\",\n            raw_bytes=\"ef00 01 01 0004 02 0001 0001 03 0002 00000001 00\",\n            validity_error=EOFException.INCOMPLETE_SECTION_SIZE,\n        ),\n        Container(\n            name=\"incomplete_container_section_size_6\",\n            raw_bytes=\"ef00 01 01 0004 02 0001 0001 03 0002 00000001 0000\",\n            validity_error=EOFException.INCOMPLETE_SECTION_SIZE,\n        ),\n        Container(\n            name=\"incomplete_container_section_size_7\",\n            raw_bytes=\"ef00 01 01 0004 02 0001 0001 03 0002 00000001 000000\",\n            validity_error=EOFException.INCOMPLETE_SECTION_SIZE,\n        ),\n        Container(\n            name=\"zero_size_container_section\",\n            raw_bytes=\"ef00 01 01 0004 02 0001 0001 03 0001 00000000 ff 0000 00 00800000 00\",\n            validity_error=EOFException.ZERO_SECTION_SIZE,\n        ),\n        Container(\n            name=\"container_section_size_2bytes\",\n            raw_bytes=\"ef00 01 01 0004 02 0001 000b 03 0001 0014 ff 0000 00 00800004\"\n            \"6000600060006000ec0000\"\n            \"ef00 01 01 0004 02 0001 0001 ff 0000 00 00800000 fe\",\n            validity_error=EOFException.MISSING_DATA_SECTION,\n        ),\n        Container(\n            name=\"truncated_header_data_section_with_container_section\",\n            raw_bytes=\"ef00 01 01 0004 02 0001 0001 03 0001 00000001\",\n            validity_error=EOFException.MISSING_HEADERS_TERMINATOR,\n        ),\n        Container(\n            name=\"no_data_section_size_with_container_section\",\n            raw_bytes=\"ef00 01 01 0004 02 0001 0001 03 0001 00000001 ff\",\n            validity_error=EOFException.MISSING_HEADERS_TERMINATOR,\n        ),\n        Container(\n            name=\"data_section_size_incomplete_with_container_section\",\n            raw_bytes=\"ef00 01 01 0004 02 0001 0001 03 0001 00000001 ff 00\",\n            validity_error=EOFException.INCOMPLETE_SECTION_SIZE,\n        ),\n        Container(\n            # EOF code missing mandatory type section\n            name=\"EOF1I4750_0001\",\n            raw_bytes=\"ef00010200010001ff00000000800000fe\",\n            validity_error=EOFException.MISSING_TYPE_HEADER,\n        ),\n        Container(\n            # EOF code containing multiple type headers\n            name=\"multiple_type_headers_1\",  # EOF1I4750_0002\n            raw_bytes=\"ef0001010004010004ff00000000800000fe\",\n            validity_error=EOFException.MISSING_CODE_HEADER,\n        ),\n        Container(\n            # EOF code containing multiple type headers, second one matches\n            # code length\n            name=\"multiple_type_headers_2\",\n            raw_bytes=\"ef0001010004010001ff00000000800000fe\",\n            validity_error=EOFException.MISSING_CODE_HEADER,\n        ),\n        Container(\n            # EOF code containing multiple type headers followed by 2 code\n            # sections\n            name=\"multiple_type_headers_3\",\n            sections=[\n                Section(kind=SectionKind.TYPE, data=\"00800000\"),\n                Section(kind=SectionKind.TYPE, data=\"00800000\"),\n                Section.Code(Op.JUMPF[1]),\n                Section.Code(Op.INVALID),\n            ],\n            validity_error=EOFException.MISSING_CODE_HEADER,\n        ),\n        Container(\n            # EOF code containing type section size (Size 1)\n            name=\"EOF1I4750_0003\",\n            raw_bytes=\"ef00010100010200010001ff00000000800000fe\",\n            validity_error=[\n                EOFException.INVALID_TYPE_SECTION_SIZE,\n                EOFException.INVALID_SECTION_BODIES_SIZE,\n            ],\n        ),\n        Container(\n            # EOF code containing type section size (Size 8 - 1 Code section)\n            name=\"EOF1I4750_0004\",\n            raw_bytes=\"ef00010100080200010001ff00000000800000fe\",\n            validity_error=EOFException.INVALID_SECTION_BODIES_SIZE,\n        ),\n        Container(\n            # EOF code containing type section size (Size 8 - 3 Code sections)\n            name=\"EOF1I4750_0005\",\n            raw_bytes=\"ef0001010008020003000100010001ff0000000080000000800000fefefe\",\n            validity_error=EOFException.INVALID_TYPE_SECTION_SIZE,\n        ),\n        Container(\n            name=\"no_sections\",\n            sections=[],\n            auto_data_section=False,\n            auto_type_section=AutoSection.NONE,\n            expected_bytecode=\"ef0001 00\",\n            validity_error=[EOFException.MISSING_TYPE_HEADER, EOFException.UNEXPECTED_HEADER_KIND],\n        ),\n        Container(\n            name=\"no_code_section_header\",\n            sections=[\n                Section(kind=SectionKind.TYPE, data=b\"\\0\\x80\\0\\0\"),\n                Section.Data(\"0x00\"),\n            ],\n            expected_bytecode=\"ef00 01 01 0004 ff 0001 00 00800000 00\",\n            auto_type_section=AutoSection.NONE,\n            validity_error=[EOFException.MISSING_CODE_HEADER, EOFException.UNEXPECTED_HEADER_KIND],\n        ),\n        Container(\n            name=\"too_many_code_sections\",\n            sections=[\n                Section.Code(Op.JUMPF[i + 1] if i < MAX_CODE_SECTIONS else Op.STOP)\n                for i in range(MAX_CODE_SECTIONS + 1)\n            ],\n            validity_error=EOFException.TOO_MANY_CODE_SECTIONS,\n        ),\n        Container(\n            name=\"zero_code_sections_header\",\n            raw_bytes=\"ef00 01 01 0004 02 0000 ff 0000 00 00800000\",\n            validity_error=[\n                EOFException.ZERO_SECTION_SIZE,\n                EOFException.INCOMPLETE_SECTION_NUMBER,\n            ],\n        ),\n        Container(\n            name=\"zero_code_sections_header_empty_type_section\",\n            raw_bytes=\"ef00 01 01 0000 02 0000 ff 0000 00\",\n            validity_error=[\n                EOFException.ZERO_SECTION_SIZE,\n                EOFException.INCOMPLETE_SECTION_NUMBER,\n            ],\n        ),\n        # The basic `no_section_terminator` cases just remove the terminator\n        # and the `00` for zeroth section inputs looks like one. Error is\n        # because the sections are wrongly sized.\n        Container(\n            name=\"no_section_terminator\",\n            header_terminator=bytes(),\n            sections=[Section.Code(code=Op.STOP)],\n            validity_error=[\n                EOFException.INVALID_SECTION_BODIES_SIZE,\n                EOFException.INVALID_FIRST_SECTION_TYPE,\n            ],\n        ),\n        Container(\n            name=\"no_section_terminator_1\",\n            header_terminator=bytes(),\n            sections=[Section.Code(code=Op.STOP, custom_size=2)],\n            validity_error=[\n                EOFException.INVALID_SECTION_BODIES_SIZE,\n                EOFException.INVALID_FIRST_SECTION_TYPE,\n            ],\n        ),\n        Container(\n            name=\"no_section_terminator_2\",\n            header_terminator=bytes(),\n            sections=[Section.Code(code=\"0x\", custom_size=3)],\n            validity_error=EOFException.INVALID_SECTION_BODIES_SIZE,\n        ),\n        Container(\n            name=\"no_section_terminator_3\",\n            header_terminator=bytes(),\n            sections=[Section.Code(code=Op.PUSH1(0) + Op.STOP)],\n            validity_error=[\n                EOFException.INVALID_SECTION_BODIES_SIZE,\n                EOFException.INVALID_FIRST_SECTION_TYPE,\n            ],\n        ),\n        # The following cases just remove the terminator and the `00` for\n        # zeroth section inputs looks like one. Section bodies are as the size\n        # prescribes here, so the error is about the inputs of zeroth section.\n        Container(\n            name=\"no_section_terminator_section_bodies_ok_1\",\n            header_terminator=bytes(),\n            sections=[Section.Code(code=Op.JUMPDEST + Op.STOP, custom_size=1)],\n            validity_error=EOFException.INVALID_FIRST_SECTION_TYPE,\n        ),\n        Container(\n            name=\"no_section_terminator_section_bodies_ok_2\",\n            header_terminator=bytes(),\n            sections=[Section.Code(code=Op.JUMPDEST * 2 + Op.STOP, custom_size=2)],\n            validity_error=EOFException.INVALID_FIRST_SECTION_TYPE,\n        ),\n        # Here the terminator is missing but made to look like a different\n        # section or arbitrary byte\n        Container(\n            name=\"no_section_terminator_nonzero\",\n            header_terminator=b\"01\",\n            sections=[Section.Code(code=Op.STOP)],\n            validity_error=[EOFException.MISSING_TERMINATOR, EOFException.UNEXPECTED_HEADER_KIND],\n        ),\n        Container(\n            name=\"no_section_terminator_nonzero_1\",\n            header_terminator=b\"02\",\n            sections=[Section.Code(code=Op.STOP, custom_size=2)],\n            validity_error=[EOFException.MISSING_TERMINATOR, EOFException.UNEXPECTED_HEADER_KIND],\n        ),\n        Container(\n            name=\"no_section_terminator_nonzero_2\",\n            header_terminator=b\"03\",\n            sections=[Section.Code(code=\"0x\", custom_size=3)],\n            validity_error=[EOFException.MISSING_TERMINATOR, EOFException.UNEXPECTED_HEADER_KIND],\n        ),\n        Container(\n            name=\"no_section_terminator_nonzero_3\",\n            header_terminator=b\"04\",\n            sections=[Section.Code(code=Op.PUSH1(0) + Op.STOP)],\n            validity_error=[EOFException.MISSING_TERMINATOR, EOFException.UNEXPECTED_HEADER_KIND],\n        ),\n        Container(\n            name=\"no_section_terminator_nonzero_4\",\n            header_terminator=b\"fe\",\n            sections=[Section.Code(code=Op.PUSH1(0) + Op.STOP)],\n            validity_error=[EOFException.MISSING_TERMINATOR, EOFException.UNEXPECTED_HEADER_KIND],\n        ),\n        Container(\n            name=\"truncated_before_type_section\",\n            sections=[\n                Section(kind=SectionKind.TYPE, data=b\"\", custom_size=4),\n                Section.Code(code=b\"\", custom_size=0x01),\n            ],\n            expected_bytecode=\"ef00 01 01 0004 02 0001 0001 ff 0000 00\",\n            validity_error=EOFException.INVALID_SECTION_BODIES_SIZE,\n        ),\n        Container(\n            name=\"truncated_type_section_before_outputs\",\n            sections=[\n                Section(kind=SectionKind.TYPE, data=b\"\\0\", custom_size=4),\n                Section.Code(code=b\"\", custom_size=0x01),\n            ],\n            expected_bytecode=\"ef00 01 01 0004 02 0001 0001 ff 0000 00 00\",\n            validity_error=EOFException.INVALID_SECTION_BODIES_SIZE,\n        ),\n        Container(\n            name=\"truncated_type_section_before_max_stack_height\",\n            sections=[\n                Section(kind=SectionKind.TYPE, data=b\"\\0\\x80\", custom_size=4),\n                Section.Code(code=b\"\", custom_size=0x01),\n            ],\n            expected_bytecode=\"ef00 01 01 0004 02 0001 0001 ff 0000 00 0080\",\n            validity_error=EOFException.INVALID_SECTION_BODIES_SIZE,\n        ),\n        Container(\n            name=\"truncated_type_section_truncated_max_stack_height\",\n            sections=[\n                Section(kind=SectionKind.TYPE, data=b\"\\0\\x80\\0\", custom_size=4),\n                Section.Code(code=b\"\", custom_size=0x01),\n            ],\n            expected_bytecode=\"ef00 01 01 0004 02 0001 0001 ff 0000 00 008000\",\n            validity_error=EOFException.INVALID_SECTION_BODIES_SIZE,\n        ),\n        Container(\n            name=\"no_code_section_contents\",\n            sections=[Section.Code(code=\"0x\", custom_size=0x01)],\n            validity_error=EOFException.INVALID_SECTION_BODIES_SIZE,\n        ),\n        Container(\n            name=\"incomplete_code_section_contents\",\n            sections=[\n                Section.Code(code=Op.STOP, custom_size=0x02),\n            ],\n            validity_error=EOFException.INVALID_SECTION_BODIES_SIZE,\n        ),\n        Container(\n            name=\"trailing_bytes_after_code_section\",\n            sections=[Section.Code(code=Op.PUSH1(0) + Op.STOP)],\n            extra=bytes([0xDE, 0xAD, 0xBE, 0xEF]),\n            validity_error=EOFException.INVALID_SECTION_BODIES_SIZE,\n        ),\n        Container(\n            name=\"empty_code_section\",\n            sections=[Section.Code(code=\"0x\")],\n            # TODO the exception must be about code section\n            # EOFException.INVALID_CODE_SECTION,\n            validity_error=EOFException.ZERO_SECTION_SIZE,\n        ),\n        Container(\n            name=\"empty_code_section_with_non_empty_data\",\n            sections=[\n                Section.Code(code=\"0x\"),\n                Section.Data(data=\"0xDEADBEEF\"),\n            ],\n            # TODO the exception must be about code section\n            # EOFException.INVALID_CODE_SECTION,\n            validity_error=EOFException.ZERO_SECTION_SIZE,\n        ),\n        Container(\n            name=\"no_container_section_contents\",\n            sections=[\n                Section.Code(Op.EOFCREATE[0](0, 0, 0, 0) + Op.STOP),\n                Section(kind=SectionKind.CONTAINER, data=b\"\", custom_size=20),\n            ],\n            validity_error=EOFException.INVALID_SECTION_BODIES_SIZE,\n        ),\n        Container(\n            name=\"no_container_section_contents_with_data\",\n            sections=[\n                Section.Code(Op.EOFCREATE[0](0, 0, 0, 0) + Op.STOP),\n                Section(kind=SectionKind.CONTAINER, data=b\"\", custom_size=20),\n                Section.Data(b\"\\0\" * 20),\n            ],\n            validity_error=EOFException.TOPLEVEL_CONTAINER_TRUNCATED,\n        ),\n        Container(\n            name=\"no_data_section_contents\",\n            sections=[\n                Section.Code(Op.STOP),\n                Section.Data(data=\"0x\", custom_size=1),\n            ],\n            code=\"ef0001 010004 0200010001 ff0001 00 00800000 00\",\n            validity_error=EOFException.TOPLEVEL_CONTAINER_TRUNCATED,\n        ),\n        Container(\n            name=\"data_section_contents_incomplete\",\n            sections=[\n                Section.Code(Op.STOP),\n                Section.Data(data=\"0xAABBCC\", custom_size=4),\n            ],\n            validity_error=EOFException.TOPLEVEL_CONTAINER_TRUNCATED,\n        ),\n        Container(\n            name=\"data_section_preceding_code_section\",\n            auto_data_section=False,\n            auto_sort_sections=AutoSection.NONE,\n            sections=[\n                Section.Data(data=\"0xDEADBEEF\"),\n                Section.Code(Op.STOP),\n            ],\n            validity_error=[EOFException.MISSING_CODE_HEADER, EOFException.UNEXPECTED_HEADER_KIND],\n        ),\n        Container(\n            name=\"data_section_without_code_section\",\n            sections=[Section.Data(data=\"0xDEADBEEF\")],\n            # TODO the actual exception should be\n            # EOFException.MISSING_CODE_HEADER\n            validity_error=[EOFException.ZERO_SECTION_SIZE, EOFException.UNEXPECTED_HEADER_KIND],\n        ),\n        Container(\n            name=\"no_section_terminator_3a\",\n            header_terminator=bytes(),\n            sections=[Section.Code(code=\"0x030004\")],\n            # TODO the exception must be about terminator\n            validity_error=[\n                EOFException.INVALID_SECTION_BODIES_SIZE,\n                EOFException.INVALID_FIRST_SECTION_TYPE,\n            ],\n        ),\n        Container(\n            name=\"no_section_terminator_4a\",\n            header_terminator=bytes(),\n            sections=[\n                Section.Code(Op.STOP),\n                Section.Data(data=\"0xAABBCCDD\"),\n            ],\n            # TODO: The error of this validation can be random.\n            validity_error=EOFException.INVALID_FIRST_SECTION_TYPE,\n        ),\n        Container(\n            name=\"trailing_bytes_after_data_section\",\n            extra=bytes([0xEE]),\n            sections=[\n                Section.Code(code=Op.PUSH1(0) + Op.STOP),\n                Section.Data(data=\"0xAABBCCDD\"),\n            ],\n            # TODO should be more specific exception about trailing bytes\n            validity_error=EOFException.INVALID_SECTION_BODIES_SIZE,\n        ),\n        Container(\n            name=\"multiple_data_sections\",\n            sections=[\n                Section.Code(code=Op.PUSH1(0) + Op.STOP),\n                Section.Data(data=\"0xAABBCC\"),\n                Section.Data(data=\"0xAABBCC\"),\n            ],\n            expected_bytecode=(\n                \"ef00 01 01 0004 02 0001 0003 ff 0003 ff 0003 00 00800001 600000 AABBCC AABBCC\"\n            ),\n            validity_error=[EOFException.MISSING_TERMINATOR, EOFException.UNEXPECTED_HEADER_KIND],\n        ),\n        Container(\n            name=\"multiple_code_headers\",\n            sections=[\n                Section.Code(Op.JUMPF[1]),\n                Section.Data(data=\"0xAA\"),\n                Section.Code(Op.STOP),\n            ],\n            auto_sort_sections=AutoSection.ONLY_BODY,\n            expected_bytecode=(\n                \"ef00 01 01 0008 02 0001 0003 ff 0001 02 0001 0001 00\"\n                \"00800000 00800000 E50001 00 AA\"\n            ),\n            validity_error=[EOFException.MISSING_TERMINATOR, EOFException.UNEXPECTED_HEADER_KIND],\n        ),\n        Container(\n            name=\"multiple_code_headers_2\",\n            sections=[\n                Section.Code(Op.JUMPF[1]),\n                Section.Code(Op.STOP),\n                Section.Data(data=\"0xAA\"),\n            ],\n            skip_join_concurrent_sections_in_header=True,\n            expected_bytecode=(\n                \"ef00 01 01 0008 02 0001 0003 02 0001 0001 ff 0001 00\"\n                \"00800000 00800000 E50001 00 AA\"\n            ),\n            validity_error=[\n                EOFException.MISSING_DATA_SECTION,\n                EOFException.UNEXPECTED_HEADER_KIND,\n            ],\n        ),\n        Container(\n            name=\"duplicated_code_header\",\n            sections=[\n                Section.Code(Op.STOP),\n                Section.Code(\n                    b\"\",\n                    custom_size=1,\n                    skip_types_header_listing=True,\n                    skip_types_body_listing=True,\n                ),\n                Section.Data(data=\"0xAA\"),\n            ],\n            skip_join_concurrent_sections_in_header=True,\n            expected_bytecode=(\n                \"ef00 01 01 0004 02 0001 0001 02 0001 0001 ff 0001 00 00800000 00 AA\"\n            ),\n            validity_error=[\n                EOFException.MISSING_DATA_SECTION,\n                EOFException.UNEXPECTED_HEADER_KIND,\n            ],\n        ),\n        Container(\n            name=\"multiple_code_and_data_sections\",\n            sections=[\n                Section.Code(Op.JUMPF[1]),\n                Section.Code(Op.STOP),\n                Section.Data(data=\"0xAA\"),\n                Section.Data(data=\"0xAA\"),\n            ],\n            expected_bytecode=(\n                \"ef00 01 01 0008 02 0002 0003 0001 ff 0001 ff 0001 00\"\n                \"00800000 00800000 E50001 00 AA AA\"\n            ),\n            validity_error=[EOFException.MISSING_TERMINATOR, EOFException.UNEXPECTED_HEADER_KIND],\n        ),\n        Container(\n            name=\"multiple_code_and_data_sections_2\",\n            sections=[\n                Section.Code(Op.JUMPF[1]),\n                Section.Code(Op.STOP),\n                Section.Data(data=\"0xAA\"),\n                Section.Data(data=\"0xAA\"),\n            ],\n            skip_join_concurrent_sections_in_header=True,\n            expected_bytecode=(\n                \"ef00 01 01 0008 02 0001 0003 02 0001 0001 ff 0001 ff 0001 00\"\n                \"00800000 00800000 E50001 00 AA AA\"\n            ),\n            validity_error=[\n                EOFException.MISSING_DATA_SECTION,\n                EOFException.UNEXPECTED_HEADER_KIND,\n            ],\n        ),\n        Container(\n            name=\"multiple_container_headers\",\n            sections=[\n                Section.Code(Op.EOFCREATE[0](0, 0, 0, 0) + Op.EOFCREATE[1](0, 0, 0, 0) + Op.STOP),\n                Section.Container(Container.Code(code=Op.INVALID)),\n                Section.Data(data=\"0xAA\"),\n                Section.Container(Container.Code(code=Op.INVALID)),\n            ],\n            auto_sort_sections=AutoSection.ONLY_BODY,\n            expected_bytecode=(\n                \"ef00 01 01 0004 02 0001 0015 03 0001 00000014 ff 0001 03 0001 00000014 00\"\n                \"00800005 6000600060006000ec00 6000600060006000ec01 00\"\n                \"ef00 01 01 0004 02 0001 0001 ff 0000 00 00800000 fe\"\n                \"ef00 01 01 0004 02 0001 0001 ff 0000 00 00800000 fe\"\n                \"aa\"\n            ),\n            validity_error=[EOFException.MISSING_TERMINATOR, EOFException.UNEXPECTED_HEADER_KIND],\n        ),\n        Container(\n            name=\"multiple_container_headers_2\",\n            sections=[\n                Section.Code(Op.EOFCREATE[0](0, 0, 0, 0) + Op.EOFCREATE[1](0, 0, 0, 0) + Op.STOP),\n                Section.Container(Container.Code(code=Op.INVALID)),\n                Section.Container(Container.Code(code=Op.INVALID)),\n                Section.Data(data=\"0xAA\"),\n            ],\n            skip_join_concurrent_sections_in_header=True,\n            expected_bytecode=(\n                \"ef00 01 01 0004 02 0001 0015 03 0001 00000014 03 0001 00000014 ff 0001 00\"\n                \"00800005 6000600060006000ec00 6000600060006000ec01 00\"\n                \"ef00 01 01 0004 02 0001 0001 ff 0000 00 00800000 fe\"\n                \"ef00 01 01 0004 02 0001 0001 ff 0000 00 00800000 fe\"\n                \"aa\"\n            ),\n            validity_error=[\n                EOFException.MISSING_DATA_SECTION,\n                EOFException.UNEXPECTED_HEADER_KIND,\n            ],\n        ),\n        Container(\n            name=\"duplicated_container_header\",\n            sections=[\n                Section.Code(Op.EOFCREATE[0](0, 0, 0, 0) + Op.STOP),\n                Section.Container(Container.Code(code=Op.INVALID)),\n                Section(kind=SectionKind.CONTAINER, data=b\"\", custom_size=20),\n                Section.Data(data=\"0xAA\"),\n            ],\n            skip_join_concurrent_sections_in_header=True,\n            expected_bytecode=(\n                \"ef00 01 01 0004 02 0001 000b 03 0001 00000014 03 0001 00000014 ff 0001 00\"\n                \"00800004 6000600060006000ec00 00\"\n                \"ef00 01 01 0004 02 0001 0001 ff 0000 00 00800000 fe\"\n                \"aa\"\n            ),\n            validity_error=[\n                EOFException.MISSING_DATA_SECTION,\n                EOFException.UNEXPECTED_HEADER_KIND,\n            ],\n        ),\n        Container(\n            name=\"unknown_section_1\",\n            sections=[\n                Section.Code(Op.STOP),\n                Section.Data(data=\"0x\"),\n                Section(kind=4, data=\"0x01\"),\n            ],\n            auto_sort_sections=AutoSection.NONE,\n            validity_error=[EOFException.MISSING_TERMINATOR, EOFException.UNEXPECTED_HEADER_KIND],\n        ),\n        Container(\n            name=\"unknown_section_2\",\n            sections=[\n                Section(kind=4, data=\"0x01\"),\n                Section.Data(data=\"0x\"),\n                Section.Code(Op.STOP),\n            ],\n            auto_sort_sections=AutoSection.NONE,\n            # TODO the exception should be about unknown section definition\n            validity_error=[EOFException.MISSING_CODE_HEADER, EOFException.UNEXPECTED_HEADER_KIND],\n        ),\n        Container(\n            name=\"unknown_section_empty\",\n            sections=[\n                Section.Code(Op.STOP),\n                Section.Data(data=\"0x\"),\n                Section(kind=4, data=\"0x\"),\n            ],\n            auto_sort_sections=AutoSection.NONE,\n            validity_error=[EOFException.MISSING_TERMINATOR, EOFException.UNEXPECTED_HEADER_KIND],\n        ),\n        Container(\n            name=\"no_type_section\",\n            sections=[\n                Section.Code(code=Op.STOP),\n                Section.Data(\"0x00\"),\n            ],\n            auto_type_section=AutoSection.NONE,\n            validity_error=[EOFException.MISSING_TYPE_HEADER, EOFException.UNEXPECTED_HEADER_KIND],\n        ),\n        Container(\n            name=\"no_type_section_2_codes\",\n            sections=[\n                Section.Code(Op.INVALID),\n                Section.Code(Op.INVALID),\n            ],\n            auto_type_section=AutoSection.NONE,\n            auto_data_section=False,\n            expected_bytecode=\"ef0001 020002 0001 0001 00 fefe\",\n            validity_error=[EOFException.MISSING_TYPE_HEADER, EOFException.UNEXPECTED_HEADER_KIND],\n        ),\n        Container(\n            name=\"no_type_section_data_section\",\n            sections=[\n                Section.Code(Op.INVALID),\n                Section.Data(\"0xda\"),\n            ],\n            auto_type_section=AutoSection.NONE,\n            expected_bytecode=\"ef0001 020001 0001 ff0001 00 feda\",\n            validity_error=[EOFException.MISSING_TYPE_HEADER, EOFException.UNEXPECTED_HEADER_KIND],\n        ),\n        Container(\n            name=\"no_type_section_container_section\",\n            sections=[\n                Section.Code(Op.INVALID),\n                Section.Container(\n                    Container(\n                        sections=[\n                            Section.Code(code=Op.RETURNCODE[0](0, 0)),\n                            Section.Container(container=Container.Code(code=Op.STOP)),\n                        ],\n                    )\n                ),\n            ],\n            auto_type_section=AutoSection.NONE,\n            expected_bytecode=\"ef0001 020001 0001 030001 00000034 ff0000 00 fe\"\n            \"ef0001 010004 020001 0006 030001 00000014 ff0000 00 00800002 60006000ee00\"\n            \"ef0001 010004 020001 0001 ff0000 00 0080000000\",\n            validity_error=[EOFException.MISSING_TYPE_HEADER, EOFException.UNEXPECTED_HEADER_KIND],\n        ),\n        Container(\n            name=\"too_many_type_sections\",\n            sections=[\n                Section(kind=SectionKind.TYPE, data=\"0x00000000\"),\n                Section(kind=SectionKind.TYPE, data=\"0x00000000\"),\n                Section.Code(Op.STOP),\n            ],\n            auto_type_section=AutoSection.NONE,\n            validity_error=[EOFException.MISSING_CODE_HEADER, EOFException.UNEXPECTED_HEADER_KIND],\n        ),\n        Container(\n            name=\"too_many_type_sections_2\",\n            sections=[\n                Section(kind=SectionKind.TYPE, data=\"0x00800000\"),\n                Section(kind=SectionKind.TYPE, data=\"0x00800000\"),\n                Section.Code(Op.STOP),\n            ],\n            auto_type_section=AutoSection.NONE,\n            validity_error=[EOFException.MISSING_CODE_HEADER, EOFException.UNEXPECTED_HEADER_KIND],\n        ),\n        Container(\n            name=\"empty_type_section_empty_code\",\n            sections=[\n                Section(kind=SectionKind.TYPE),\n                Section.Code(),\n            ],\n            expected_bytecode=\"ef00 01 01 0000 02 0001 0000 ff 0000 00\",\n            validity_error=[\n                EOFException.ZERO_SECTION_SIZE,\n                EOFException.INVALID_SECTION_BODIES_SIZE,\n            ],\n        ),\n        Container(\n            name=\"empty_type_section_with_code\",\n            sections=[\n                Section(kind=SectionKind.TYPE),\n                Section.Code(Op.STOP),\n            ],\n            expected_bytecode=\"ef00 01 01 0000 02 0001 0001 ff 0000 00 00\",\n            validity_error=[\n                EOFException.ZERO_SECTION_SIZE,\n                EOFException.INVALID_SECTION_BODIES_SIZE,\n            ],\n        ),\n        Container(\n            name=\"type_section_too_small_single_code_section_1\",\n            sections=[\n                Section(kind=SectionKind.TYPE, data=\"0x00\"),\n                Section.Code(Op.STOP),\n            ],\n            auto_type_section=AutoSection.NONE,\n            validity_error=EOFException.INVALID_TYPE_SECTION_SIZE,\n        ),\n        Container(\n            name=\"type_section_too_small_single_code_section_2\",\n            sections=[\n                Section(kind=SectionKind.TYPE, data=\"0x008000\"),\n                Section.Code(Op.STOP),\n            ],\n            auto_type_section=AutoSection.NONE,\n            validity_error=EOFException.INVALID_TYPE_SECTION_SIZE,\n        ),\n        Container(\n            name=\"type_section_too_big_single_code_section\",\n            sections=[\n                Section(kind=SectionKind.TYPE, data=\"0x0080000000\"),\n                Section.Code(Op.STOP),\n            ],\n            auto_type_section=AutoSection.NONE,\n            validity_error=EOFException.INVALID_TYPE_SECTION_SIZE,\n        ),\n        Container(\n            name=\"type_section_too_small_multiple_code_sections_1\",\n            sections=[\n                Section(kind=SectionKind.TYPE, data=\"0x0080000000\"),\n                Section.Code(Op.STOP),\n                Section.Code(Op.STOP),\n            ],\n            auto_type_section=AutoSection.NONE,\n            validity_error=EOFException.INVALID_TYPE_SECTION_SIZE,\n        ),\n        Container(\n            name=\"type_section_too_small_multiple_code_sections_2\",\n            sections=[\n                Section(kind=SectionKind.TYPE, data=\"0x008000000080\"),\n                Section.Code(Op.STOP),\n                Section.Code(Op.STOP),\n            ],\n            auto_type_section=AutoSection.NONE,\n            validity_error=EOFException.INVALID_TYPE_SECTION_SIZE,\n        ),\n        Container(\n            name=\"type_section_too_big_multiple_code_sections\",\n            sections=[\n                Section(kind=SectionKind.TYPE, data=\"0x008000000080000000\"),\n                Section.Code(Op.STOP),\n                Section.Code(Op.STOP),\n            ],\n            auto_type_section=AutoSection.NONE,\n            validity_error=EOFException.INVALID_TYPE_SECTION_SIZE,\n        ),\n        Container(\n            name=\"multiple_code_section_non_zero_inputs\",\n            sections=[\n                Section.Code(code=Op.POP + Op.RETF, code_inputs=1),\n                Section.Code(Op.STOP),\n            ],\n            # TODO the actual exception should be\n            # EOFException.INVALID_TYPE_BODY,\n            validity_error=EOFException.INVALID_FIRST_SECTION_TYPE,\n        ),\n        Container(\n            name=\"multiple_code_section_non_zero_outputs\",\n            sections=[\n                Section.Code(code=Op.PUSH0, code_outputs=1),\n                Section.Code(Op.STOP),\n            ],\n            # TODO the actual exception should be\n            # EOFException.INVALID_TYPE_BODY,\n            validity_error=EOFException.INVALID_FIRST_SECTION_TYPE,\n        ),\n        Container(\n            name=\"data_section_before_code_with_type\",\n            sections=[\n                Section.Data(data=\"0xAA\"),\n                Section.Code(Op.STOP),\n            ],\n            auto_sort_sections=AutoSection.NONE,\n            validity_error=[EOFException.MISSING_CODE_HEADER, EOFException.UNEXPECTED_HEADER_KIND],\n        ),\n        Container(\n            name=\"data_section_listed_in_type\",\n            sections=[\n                Section.Data(data=\"0x00\", force_type_listing=True),\n                Section.Code(Op.STOP),\n            ],\n            validity_error=[\n                EOFException.INVALID_TYPE_SECTION_SIZE,\n                EOFException.INVALID_SECTION_BODIES_SIZE,\n            ],\n        ),\n        Container(\n            name=\"single_code_section_incomplete_type\",\n            sections=[\n                Section(kind=SectionKind.TYPE, data=\"0x00\", custom_size=2),\n                Section.Code(Op.STOP),\n            ],\n            validity_error=[\n                EOFException.INVALID_SECTION_BODIES_SIZE,\n                EOFException.INVALID_TYPE_SECTION_SIZE,\n            ],\n        ),\n        Container(\n            name=\"code_section_input_too_large\",\n            sections=[\n                Section.Code(\n                    code=((Op.PUSH0 * (MAX_CODE_INPUTS + 1)) + Op.CALLF[1] + Op.STOP),\n                    max_stack_height=(MAX_CODE_INPUTS + 1),\n                ),\n                Section.Code(\n                    code=(Op.POP * (MAX_CODE_INPUTS + 1)) + Op.RETF,\n                    code_inputs=(MAX_CODE_INPUTS + 1),\n                    code_outputs=0,\n                    max_stack_height=(MAX_CODE_INPUTS + 1),\n                ),\n            ],\n            validity_error=EOFException.INPUTS_OUTPUTS_NUM_ABOVE_LIMIT,\n        ),\n        Container(\n            name=\"invalid_inputs_to_non_returning_code_section_2\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH1(0) * 128 + Op.CALLF[1] + Op.STOP,\n                    max_stack_height=128,\n                ),\n                Section.Code(\n                    Op.STOP,\n                    code_inputs=128,\n                    code_outputs=0,\n                    max_stack_height=128,\n                ),\n            ],\n            validity_error=EOFException.INPUTS_OUTPUTS_NUM_ABOVE_LIMIT,\n        ),\n        Container(\n            name=\"code_section_output_too_large\",\n            sections=[\n                Section.Code(\n                    code=(Op.CALLF[1] + Op.STOP),\n                    max_stack_height=(MAX_CODE_OUTPUTS + 2),\n                ),\n                Section.Code(\n                    code=(Op.PUSH0 * (MAX_CODE_OUTPUTS + 2)) + Op.RETF,\n                    code_inputs=0,\n                    code_outputs=(MAX_CODE_OUTPUTS + 2),\n                    max_stack_height=(MAX_CODE_OUTPUTS + 2),\n                ),\n            ],\n            validity_error=EOFException.INPUTS_OUTPUTS_NUM_ABOVE_LIMIT,\n        ),\n        Container(\n            name=\"single_code_section_max_stack_size_too_large\",\n            sections=[\n                Section.Code(\n                    code=Op.CALLER * 1024 + Op.POP * 1024 + Op.STOP,\n                    max_stack_height=1024,\n                ),\n            ],\n            # TODO auto types section generation probably failed, the exception\n            # must be about code\n            validity_error=EOFException.MAX_STACK_INCREASE_ABOVE_LIMIT,\n        ),\n    ],\n    ids=lambda c: c.name,\n)\ndef test_invalid_containers(\n    eof_test: EOFTestFiller,\n    container: Container,\n) -> None:\n    \"\"\"Test invalid containers.\"\"\"\n    assert container.validity_error is not None, \"Invalid container without validity error\"\n    eof_test(\n        container=container,\n        expect_exception=container.validity_error,\n    )\n\n\n@pytest.mark.parametrize(\n    \"magic\",\n    set(itertools.product([0, 1, 0x60, 0xEE, 0xEF, 0xF0, 0xFF], [0, 1, 2, 0xFE, 0xFF]))\n    - {(0xEF, 0)},\n)\ndef test_magic_validation(\n    eof_test: EOFTestFiller,\n    magic: tuple[int, int],\n) -> None:\n    \"\"\"Verify EOF container 2-byte magic.\"\"\"\n    code = bytearray(bytes(VALID_CONTAINER))\n    code[0:2] = magic\n    eof_test(\n        container=Container(raw_bytes=bytes(code)),\n        expect_exception=EOFException.INVALID_MAGIC,\n    )\n\n\n@pytest.mark.parametrize(\"version\", [0, 2, 0xEF, 0xFE, 0xFF])\ndef test_version_validation(\n    eof_test: EOFTestFiller,\n    version: int,\n) -> None:\n    \"\"\"Verify EOF container version.\"\"\"\n    code = bytearray(bytes(VALID_CONTAINER))\n    code[2] = version\n    eof_test(\n        container=Container(raw_bytes=bytes(code)),\n        expect_exception=EOFException.INVALID_VERSION,\n    )\n\n\n@pytest.mark.parametrize(\"plus_data\", [False, True])\n@pytest.mark.parametrize(\"plus_container\", [False, True])\ndef test_single_code_section(\n    eof_test: EOFTestFiller,\n    plus_data: bool,\n    plus_container: bool,\n) -> None:\n    \"\"\"Verify EOF container single code section.\"\"\"\n    sections = [Section.Code(Op.RETURNCODE[0](0, 0) if plus_container else Op.STOP)]\n    if plus_container:\n        sections.append(\n            Section.Container(\n                container=Container(\n                    sections=[\n                        Section.Code(Op.JUMPF[i + 1] if i < (MAX_CODE_SECTIONS - 1) else Op.STOP)\n                        for i in range(MAX_CODE_SECTIONS)\n                    ],\n                )\n            )\n        )\n    if plus_data:\n        sections.append(Section.Data(data=b\"\\0\"))\n    eof_test(\n        container=Container(\n            name=\"single_code_section\",\n            sections=sections,\n            kind=ContainerKind.INITCODE if plus_container else ContainerKind.RUNTIME,\n        ),\n    )\n\n\n@pytest.mark.parametrize(\"plus_data\", [False, True])\n@pytest.mark.parametrize(\"plus_container\", [False, True])\ndef test_max_code_sections(\n    eof_test: EOFTestFiller,\n    plus_data: bool,\n    plus_container: bool,\n) -> None:\n    \"\"\"Verify EOF container maximum number of code sections.\"\"\"\n    if plus_container:\n        sections = [\n            Section.Code(\n                Op.JUMPF[i + 1] if i < (MAX_CODE_SECTIONS - 1) else Op.RETURNCODE[0](0, 0)\n            )\n            for i in range(MAX_CODE_SECTIONS)\n        ]\n        sections.append(\n            Section.Container(\n                container=Container(\n                    sections=[\n                        Section.Code(Op.JUMPF[i + 1] if i < (MAX_CODE_SECTIONS - 1) else Op.STOP)\n                        for i in range(MAX_CODE_SECTIONS)\n                    ],\n                )\n            )\n        )\n    else:\n        sections = [\n            Section.Code(Op.JUMPF[i + 1] if i < (MAX_CODE_SECTIONS - 1) else Op.STOP)\n            for i in range(MAX_CODE_SECTIONS)\n        ]\n    if plus_data:\n        sections.append(Section.Data(data=b\"\\0\"))\n    eof_test(\n        container=Container(\n            name=\"max_code_sections\",\n            sections=sections,\n            kind=ContainerKind.INITCODE if plus_container else ContainerKind.RUNTIME,\n        ),\n    )\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_eof_example.py",
    "content": "\"\"\"EOF Classes example use.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_tools import Bytecode, EOFException, EOFTestFiller\nfrom ethereum_test_tools import Opcodes as Op\nfrom ethereum_test_types.eof.v1 import AutoSection, Container, Section\n\nfrom .. import EOF_FORK_NAME\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-3540.md\"\nREFERENCE_SPEC_VERSION = \"8dcb0a8c1c0102c87224308028632cc986a61183\"\n\npytestmark = pytest.mark.valid_from(EOF_FORK_NAME)\n\n\ndef test_eof_example(eof_test: EOFTestFiller) -> None:\n    \"\"\"Example of python EOF classes.\"\"\"\n    # Lets construct an EOF container code\n    eof_code = Container(\n        name=\"valid_container_example\",\n        sections=[\n            # TYPES section is constructed automatically based on CODE\n            # CODE section\n            Section.Code(\n                code=Op.CALLF[1](Op.PUSH0) + Op.STOP,  # bytecode to be\n                # deployed in the body\n                # Code: call section 1 with a single zero as input, then stop.\n                max_stack_increase=1,  # define code header (in body) stack\n                # size\n            ),\n            # There can be multiple code sections\n            Section.Code(\n                # Remove input and call section 2 with no inputs, then remove\n                # output and return\n                code=Op.POP + Op.CALLF[2]() + Op.POP + Op.RETF,\n                code_inputs=1,\n                code_outputs=0,\n                max_stack_increase=0,\n            ),\n            Section.Code(\n                # Call section 3 with two inputs (address twice), return\n                code=Op.CALLF[3](Op.DUP1, Op.ADDRESS) + Op.POP + Op.POP + Op.RETF,\n                code_outputs=1,\n                max_stack_increase=3,\n            ),\n            Section.Code(\n                # Duplicate one input and return\n                code=Op.DUP1 + Op.RETF,\n                code_inputs=2,\n                code_outputs=3,\n                max_stack_increase=1,\n            ),\n            # DATA section\n            Section.Data(\"0xef\"),\n        ],\n        expected_bytecode=\"ef00010100100200040005000600080002ff000100\"\n        \"00800001 01000000 00010003 02030001\"\n        \"5fe300010050e3000250e43080e300035050e480e4ef\",\n    )\n\n    eof_test(\n        container=eof_code,\n        expect_exception=eof_code.validity_error,\n    )\n\n\ndef test_eof_example_custom_fields(eof_test: EOFTestFiller) -> None:\n    \"\"\"Example of python EOF container class tuning.\"\"\"\n    # if you need to overwrite certain structure bytes, you can use\n    # customization. this is useful for unit testing the eof structure format,\n    # you can reorganize sections and overwrite the header bytes for testing\n    # purposes. most of the combinations are covered by the unit tests\n\n    # This features are subject for development and will change in the future\n\n    eof_code = Container(\n        name=\"valid_container_example_2\",\n        magic=b\"\\xef\\x00\",  # magic can be overwritten for test purposes,\n        # (default is 0xEF00)\n        version=b\"\\x01\",  # version can be overwritten for testing purposes\n        # (default is 0x01)\n        header_terminator=b\"\\x00\",  # terminator byte can be overwritten\n        # (default is 0x00)\n        extra=b\"\",  # extra bytes to be trailed after the container body bytes\n        # (default is None)\n        sections=[\n            # TYPES section is constructed automatically based on CODE\n            # CODE section\n            Section.Code(\n                code=Op.PUSH1(2) + Op.STOP,  # this is the actual bytecode to be deployed in the\n                # body\n                max_stack_height=1,  # define code header (in body) stack size\n            ),\n            # DATA section\n            Section.Data(\n                data=\"0xef\",\n                # custom_size overrides the size bytes, so you can put only 1\n                # byte into data but still make the header size of 2 to produce\n                # invalid section\n                #\n                # if custom_size != len(data), the section will be invalid\n                custom_size=1,\n            ),\n        ],\n        # auto generate types section based on provided code sections\n        # AutoSection.ONLY_BODY - means the section will be generated only for\n        #                         the body bytes\n        #\n        # AutoSection.ONLY_BODY - means the section will be generated only for\n        #                         the header bytes\n        auto_type_section=AutoSection.AUTO,\n        # auto generate default data section (0x empty), by default is True\n        auto_data_section=True,\n        # auto sort section by order 01 02 03 04\n        # AutoSection.ONLY_BODY - means the sorting will be done only for the\n        #                         body bytes\n        # AutoSection.ONLY_BODY - means the section will be done only for the\n        #                         header bytes\n        auto_sort_sections=AutoSection.AUTO,\n    )\n\n    eof_test(\n        container=eof_code,\n        expect_exception=eof_code.validity_error,\n    )\n\n\n@pytest.mark.parametrize(\n    \"data_section_bytes\",\n    (b\"\\x01\", b\"\\xef\"),\n)\n@pytest.mark.parametrize(\n    \"code_section_code, exception\",\n    [(Op.PUSH1(10) + Op.STOP, None), (Op.PUSH1(14), EOFException.MISSING_STOP_OPCODE)],\n)\ndef test_eof_example_parameters(\n    eof_test: EOFTestFiller,\n    data_section_bytes: bytes,\n    code_section_code: Bytecode,\n    exception: EOFException,\n) -> None:\n    \"\"\"Example of EOF example parameters.\"\"\"\n    eof_code = Container(\n        name=\"parametrized_eof_example\",\n        sections=[\n            Section.Code(\n                code=code_section_code,\n                max_stack_height=1,\n            ),\n            Section.Data(data_section_bytes),\n        ],\n        validity_error=exception,\n    )\n\n    eof_test(\n        container=eof_code,\n        expect_exception=eof_code.validity_error,\n    )\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_execution.py",
    "content": "\"\"\"Execution of basic EOF containers.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_base_types import Storage\nfrom ethereum_test_tools import Account, Alloc, Environment, StateTestFiller, Transaction\nfrom ethereum_test_types.eof.v1 import Container, Section\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .. import EOF_FORK_NAME\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-3540.md\"\nREFERENCE_SPEC_VERSION = \"8dcb0a8c1c0102c87224308028632cc986a61183\"\n\npytestmark = pytest.mark.valid_from(EOF_FORK_NAME)\n\nEXPECTED_STORAGE = (bytes.fromhex(\"EF\"), bytes.fromhex(\"BADDCAFE\"))\n\"\"\"Expected storage (key => value) to be produced by the EOF containers\"\"\"\n\n\n@pytest.mark.parametrize(\n    \"container\",\n    (\n        Container(\n            name=\"store_from_push\",\n            sections=[Section.Code(Op.SSTORE(*EXPECTED_STORAGE) + Op.STOP)],\n        ),\n        Container(\n            name=\"store_with_data\",\n            sections=[\n                Section.Code(Op.SSTORE(Op.DATALOADN[0], Op.DATALOADN[32]) + Op.STOP),\n                Section.Data(\n                    EXPECTED_STORAGE[0].rjust(32, b\"\\x00\") + EXPECTED_STORAGE[1].rjust(32, b\"\\x00\")\n                ),\n            ],\n        ),\n    ),\n    ids=lambda x: x.name,\n)\ndef test_eof_execution(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    container: Container,\n) -> None:\n    \"\"\"Test simple contracts that are expected to succeed on call.\"\"\"\n    env = Environment()\n\n    storage = Storage()\n    sender = pre.fund_eoa()\n    container_address = pre.deploy_contract(container)\n    caller_contract = Op.SSTORE(\n        storage.store_next(1), Op.CALL(Op.GAS, container_address, 0, 0, 0, 0, 0)\n    )\n    caller_address = pre.deploy_contract(caller_contract)\n\n    tx = Transaction(\n        to=caller_address,\n        gas_limit=1_000_000,\n        gas_price=10,\n        protected=False,\n        sender=sender,\n    )\n\n    post = {\n        caller_address: Account(storage=storage),\n        container_address: Account(storage=dict([EXPECTED_STORAGE])),\n    }\n\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_execution_function.py",
    "content": "\"\"\"Execution of CALLF, RETF opcodes within EOF V1 containers tests.\"\"\"\n\nfrom typing import List\n\nimport pytest\n\nfrom ethereum_test_tools import Account, Alloc, Environment, StateTestFiller, Transaction\nfrom ethereum_test_types.eof.v1 import Container, Section\nfrom ethereum_test_types.eof.v1.constants import MAX_CODE_SECTIONS, MAX_RETURN_STACK_HEIGHT\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .. import EOF_FORK_NAME\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-4750.md\"\nREFERENCE_SPEC_VERSION = \"90f716078d0b08ce508a1e57803f885cc2f2e15e\"\n\n# List all containers used within execution tests, since they will need to be\n# valid EOF V1 containers too\n\npytestmark = pytest.mark.valid_from(EOF_FORK_NAME)\n\ncontract_call_within_deep_nested_callf = Container(\n    name=\"contract_call_within_deep_nested_callf\",\n    sections=[\n        Section.Code(\n            code=Op.CALLF[1] + Op.SSTORE(0, 1) + Op.STOP,\n        )\n    ]\n    + [\n        # All sections call next section and on return, store a 1\n        # to their call stack height key\n        Section.Code(\n            code=(Op.CALLF[i] + Op.SSTORE(i - 1, 1) + Op.RETF),\n            code_inputs=0,\n            code_outputs=0,\n        )\n        for i in range(2, MAX_CODE_SECTIONS)\n    ]\n    + [\n        # Last section makes external contract call\n        Section.Code(\n            code=(\n                Op.PUSH0\n                + Op.PUSH0\n                + Op.PUSH0\n                + Op.PUSH2(0x200)\n                + Op.EXTCALL\n                + Op.ISZERO\n                + Op.PUSH2(MAX_CODE_SECTIONS - 1)\n                + Op.SSTORE\n                + Op.RETF\n            ),\n            code_inputs=0,\n            code_outputs=0,\n        )\n    ],\n)\n\nrecursive_contract_call_within_deep_nested_callf = Container(\n    name=\"recursive_contract_call_within_deep_nested_callf\",\n    sections=[\n        # All sections call next section and on return, store a 1\n        # to their call stack height key\n        Section.Code(\n            code=Op.CALLF[i + 1] + Op.SSTORE(i, 1) + Op.STOP,\n        )\n        for i in range(MAX_CODE_SECTIONS - 1)\n    ]\n    + [\n        # Last section makes external contract call\n        Section.Code(\n            code=(\n                Op.PUSH0\n                + Op.PUSH0\n                + Op.PUSH0\n                + Op.PUSH0\n                + Op.PUSH0\n                + Op.PUSH2(0x200)\n                + Op.GAS\n                + Op.CALL\n                + Op.PUSH2(MAX_CODE_SECTIONS - 1)\n                + Op.SSTORE\n                + Op.RETF\n            ),\n            code_inputs=0,\n            code_outputs=0,\n        )\n    ],\n)\n\nCALL_SUCCEED_CONTRACTS: List[Container] = [\n    Container(\n        name=\"function_finishes_contract_execution\",\n        sections=[\n            Section.Code(\n                code=(Op.CALLF[1] + Op.STOP),\n            ),\n            Section.Code(\n                code=(Op.RETF),\n                code_inputs=0,\n                code_outputs=0,\n            ),\n        ],\n    ),\n    Container(\n        name=\"max_recursive_callf\",\n        sections=[\n            Section.Code(\n                code=(Op.PUSH1(1) + Op.CALLF[1] + Op.STOP),\n            ),\n            Section.Code(\n                code=(\n                    Op.DUP1\n                    + Op.PUSH2(MAX_RETURN_STACK_HEIGHT)\n                    + Op.SUB\n                    + Op.RJUMPI[len(Op.POP) + len(Op.RETF)]\n                    + Op.POP\n                    + Op.RETF\n                    + Op.PUSH1(1)\n                    + Op.ADD\n                    + Op.CALLF[1]\n                    + Op.RETF\n                ),\n                code_inputs=1,\n                code_outputs=0,\n                max_stack_height=3,\n            ),\n        ],\n    ),\n    Container(\n        name=\"max_recursive_callf_sstore\",\n        sections=[\n            Section.Code(\n                code=Op.SSTORE(0, 1) + Op.CALLF[1] + Op.STOP,\n                max_stack_height=2,\n            ),\n            Section.Code(\n                code=(\n                    Op.PUSH0\n                    + Op.SLOAD\n                    + Op.DUP1\n                    + Op.PUSH2(MAX_RETURN_STACK_HEIGHT)\n                    + Op.SUB\n                    + Op.RJUMPI[len(Op.POP) + len(Op.STOP)]\n                    + Op.POP\n                    + Op.RETF\n                    + Op.PUSH1(1)\n                    + Op.ADD\n                    + Op.PUSH0\n                    + Op.SSTORE\n                    + Op.CALLF[1]\n                    + Op.RETF\n                ),\n                code_inputs=0,\n                code_outputs=0,\n                max_stack_height=3,\n            ),\n        ],\n    ),\n    Container(\n        name=\"max_recursive_callf_memory\",\n        sections=[\n            Section.Code(\n                code=(Op.PUSH1(1) + Op.PUSH0 + Op.MSTORE + Op.CALLF[1] + Op.STOP),\n            ),\n            Section.Code(\n                code=(\n                    Op.PUSH0\n                    + Op.MLOAD\n                    + Op.DUP1\n                    + Op.PUSH2(MAX_RETURN_STACK_HEIGHT)\n                    + Op.SUB\n                    + Op.RJUMPI[len(Op.POP) + len(Op.RETF)]\n                    + Op.POP\n                    + Op.RETF\n                    + Op.PUSH1(1)\n                    + Op.ADD\n                    + Op.PUSH0\n                    + Op.MSTORE\n                    + Op.CALLF[1]\n                    + Op.RETF\n                ),\n                code_inputs=0,\n                code_outputs=0,\n                max_stack_height=3,\n            ),\n        ],\n    ),\n]\n\"\"\"\nList of all EOF V1 Containers that simply need to succeed on execution.\n\"\"\"\n\nCALL_FAIL_CONTRACTS: List[Container] = [\n    Container(\n        name=\"invalid_opcode\",\n        sections=[\n            Section.Code(\n                code=(Op.INVALID),\n            ),\n        ],\n    ),\n    Container(\n        name=\"overflow_recursive_callf\",\n        sections=[\n            Section.Code(\n                code=(Op.PUSH1(1) + Op.CALLF[1] + Op.STOP),\n            ),\n            Section.Code(\n                code=(\n                    Op.DUP1\n                    + Op.PUSH2(MAX_RETURN_STACK_HEIGHT + 1)\n                    + Op.SUB\n                    + Op.RJUMPI[len(Op.POP) + len(Op.RETF)]\n                    + Op.POP\n                    + Op.RETF\n                    + Op.PUSH1(1)\n                    + Op.ADD\n                    + Op.CALLF[1]\n                    + Op.RETF\n                ),\n                code_inputs=1,\n                code_outputs=0,\n                max_stack_height=3,\n            ),\n        ],\n    ),\n    Container(\n        name=\"overflow_recursive_callf_sstore\",\n        sections=[\n            Section.Code(\n                code=Op.SSTORE(0, 1) + Op.CALLF[1] + Op.STOP,\n                max_stack_height=2,\n            ),\n            Section.Code(\n                code=(\n                    Op.PUSH0\n                    + Op.SLOAD\n                    + Op.DUP1\n                    + Op.PUSH2(MAX_RETURN_STACK_HEIGHT + 1)\n                    + Op.SUB\n                    + Op.RJUMPI[len(Op.POP) + len(Op.RETF)]\n                    + Op.POP\n                    + Op.RETF\n                    + Op.PUSH1(1)\n                    + Op.ADD\n                    + Op.PUSH0\n                    + Op.SSTORE\n                    + Op.CALLF[1]\n                    + Op.RETF\n                ),\n                code_inputs=0,\n                code_outputs=0,\n                max_stack_height=3,\n            ),\n        ],\n    ),\n    Container(\n        name=\"overflow_recursive_callf_memory\",\n        sections=[\n            Section.Code(\n                code=Op.MSTORE(0, 1) + Op.CALLF[1] + Op.STOP,\n                max_stack_height=2,\n            ),\n            Section.Code(\n                code=(\n                    Op.PUSH0\n                    + Op.MLOAD\n                    + Op.DUP1\n                    + Op.PUSH2(MAX_RETURN_STACK_HEIGHT + 1)\n                    + Op.SUB\n                    + Op.RJUMPI[len(Op.POP) + len(Op.RETF)]\n                    + Op.POP\n                    + Op.RETF\n                    + Op.PUSH1(1)\n                    + Op.ADD\n                    + Op.PUSH0\n                    + Op.MSTORE\n                    + Op.CALLF[1]\n                    + Op.RETF\n                ),\n                code_inputs=0,\n                code_outputs=0,\n                max_stack_height=3,\n            ),\n        ],\n    ),\n]\n\"\"\"\nList of all EOF V1 Containers that simply need to fail (exceptional halt) on\nexecution.\nThese contracts have a valid EOF V1 container format but fail when executed.\n\"\"\"\n\nVALID: List[Container] = CALL_SUCCEED_CONTRACTS + CALL_FAIL_CONTRACTS\n\"\"\"\nList of all EOF V1 Containers used during execution tests.\n\"\"\"\n\n\n@pytest.mark.parametrize(\"container\", CALL_SUCCEED_CONTRACTS, ids=lambda x: x.name)\ndef test_eof_functions_contract_call_succeed(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    container: Container,\n) -> None:\n    \"\"\"Test simple contracts that are simply expected to succeed on call.\"\"\"\n    env = Environment()\n\n    sender = pre.fund_eoa()\n    container_address = pre.deploy_contract(container)\n    caller_contract = Op.SSTORE(0, Op.CALL(Op.GAS, container_address, 0, 0, 0, 0, 0)) + Op.STOP()\n    caller_address = pre.deploy_contract(caller_contract)\n\n    tx = Transaction(\n        to=caller_address,\n        gas_limit=50000000,\n        gas_price=10,\n        protected=False,\n        data=\"\",\n        sender=sender,\n    )\n\n    post = {caller_address: Account(storage={0: 1})}\n\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\n@pytest.mark.parametrize(\"container\", CALL_FAIL_CONTRACTS, ids=lambda x: x.name)\ndef test_eof_functions_contract_call_fail(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    container: Container,\n) -> None:\n    \"\"\"Test simple contracts that are simply expected to fail on call.\"\"\"\n    env = Environment()\n\n    sender = pre.fund_eoa()\n    container_address = pre.deploy_contract(container)\n    caller_contract = Op.SSTORE(Op.CALL(Op.GAS, container_address, 0, 0, 0, 0, 0), 1) + Op.STOP()\n    caller_address = pre.deploy_contract(caller_contract)\n\n    tx = Transaction(\n        to=caller_address,\n        gas_limit=50000000,\n        gas_price=10,\n        protected=False,\n        data=\"\",\n        sender=sender,\n    )\n\n    post = {caller_address: Account(storage={0: 1})}\n\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\ndef test_eof_functions_contract_call_within_deep_nested(\n    state_test: StateTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    Test performing a call within a nested callf and verify correct behavior of\n    return stack in calling contract.\n\n    TODO: This test belongs in EIP-7069 test folder, not code validation.\n    \"\"\"\n    env = Environment()\n\n    nested_callee_address = pre.deploy_contract(code=Op.SSTORE(0, 1) + Op.STOP())\n    contract_call_within_deep_nested_callf = Container(\n        name=\"contract_call_within_deep_nested_callf\",\n        sections=[\n            Section.Code(\n                code=Op.CALLF[1] + Op.SSTORE(0, 1) + Op.STOP,\n            )\n        ]\n        + [\n            # All sections call next section and on return, store a 1\n            # to their call stack height key\n            Section.Code(\n                code=(Op.CALLF[i] + Op.SSTORE(i - 1, 1) + Op.RETF),\n                code_outputs=0,\n            )\n            for i in range(2, MAX_CODE_SECTIONS)\n        ]\n        + [\n            # Last section makes external contract call\n            Section.Code(\n                code=(\n                    Op.EXTCALL(nested_callee_address, 0, 0, 0)\n                    + Op.ISZERO\n                    + Op.PUSH2(MAX_CODE_SECTIONS - 1)\n                    + Op.SSTORE\n                    + Op.RETF\n                ),\n                code_outputs=0,\n            )\n        ],\n    )\n    callee_address = pre.deploy_contract(contract_call_within_deep_nested_callf)\n    sender = pre.fund_eoa()\n\n    tx = Transaction(\n        to=callee_address,\n        gas_limit=50000000,\n        gas_price=10,\n        protected=False,\n        data=\"\",\n        sender=sender,\n    )\n    post = {\n        callee_address: Account(storage=dict.fromkeys(range(MAX_CODE_SECTIONS), 1)),\n        nested_callee_address: Account(\n            storage={\n                0: 1,\n            }\n        ),\n    }\n\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_extcode.py",
    "content": "\"\"\"test execution semantics changes.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_tools import (\n    Account,\n    Alloc,\n    Environment,\n    StateTestFiller,\n    Storage,\n    Transaction,\n    keccak256,\n)\nfrom ethereum_test_tools import Opcodes as Op\nfrom ethereum_test_types.eof.v1 import Container\n\nfrom .. import EOF_FORK_NAME\n\npytestmark = pytest.mark.valid_from(EOF_FORK_NAME)\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-4750.md\"\nREFERENCE_SPEC_VERSION = \"90f716078d0b08ce508a1e57803f885cc2f2e15e\"\n\n\ndef test_legacy_calls_eof_sstore(\n    state_test: StateTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"Test EXTCODE* opcodes calling EOF and legacy contracts.\"\"\"\n    env = Environment()\n    eof_code = Container.Code(Op.RJUMP[0] + Op.STOP)\n    address_eof_contract = pre.deploy_contract(eof_code)\n    legacy_code = Op.PUSH1(2) + Op.JUMPDEST + Op.STOP\n    address_legacy_contract = pre.deploy_contract(legacy_code)\n\n    storage_test = Storage()\n    test_contract_code = (\n        Op.SSTORE(storage_test.store_next(4), Op.EXTCODESIZE(address_legacy_contract))\n        + Op.EXTCODECOPY(address_legacy_contract, 0, 0, Op.EXTCODESIZE(address_legacy_contract))\n        + Op.SSTORE(\n            storage_test.store_next(bytes(legacy_code).ljust(32, b\"\\0\")),\n            Op.MLOAD(0),\n        )\n        + Op.SSTORE(\n            storage_test.store_next(legacy_code.keccak256()),\n            Op.EXTCODEHASH(address_legacy_contract),\n        )\n        + Op.SSTORE(storage_test.store_next(2), Op.EXTCODESIZE(address_eof_contract))\n        + Op.EXTCODECOPY(address_eof_contract, 0x20, 0, 6)\n        + Op.SSTORE(storage_test.store_next(b\"\\xef\".ljust(32, b\"\\0\")), Op.MLOAD(0x20))\n        + Op.MSTORE(0x40, b\"\\xcc\" * 32)  # clobber memory slot\n        + Op.EXTCODECOPY(address_eof_contract, 0x40, len(eof_code) - 4, 8)  # out-of-bounds \"read\"\n        + Op.SSTORE(storage_test.store_next(b\"\\xcc\" * 24), Op.MLOAD(0x40))\n        + Op.SSTORE(\n            storage_test.store_next(keccak256(b\"\\xef\\x00\")),\n            Op.EXTCODEHASH(address_eof_contract),\n        )\n    )\n    address_test_contract = pre.deploy_contract(test_contract_code)\n\n    sender = pre.fund_eoa()\n\n    tx = Transaction(\n        sender=sender,\n        to=address_test_contract,\n        gas_limit=50_000_000,\n        gas_price=10,\n        protected=False,\n        data=\"\",\n    )\n\n    post = {\n        address_test_contract: Account(storage=storage_test),\n    }\n\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_migrated_valid_invalid.py",
    "content": "\"\"\"\nEOF validation tests for EIP-3540 migrated from\nethereum/tests/src/EOFTestsFiller/EIP3540/validInvalidFiller.yml.\n\"\"\"\n\nimport pytest\n\nfrom ethereum_test_exceptions.exceptions import EOFExceptionInstanceOrList\nfrom ethereum_test_tools import EOFException, EOFTestFiller\nfrom ethereum_test_tools import Opcodes as Op\nfrom ethereum_test_types.eof.v1 import Container, Section\n\nfrom .. import EOF_FORK_NAME\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-3540.md\"\nREFERENCE_SPEC_VERSION = \"8dcb0a8c1c0102c87224308028632cc986a61183\"\n\npytestmark = pytest.mark.valid_from(EOF_FORK_NAME)\n\n\n@pytest.mark.parametrize(\n    \"eof_code,exception\",\n    [\n        pytest.param(\n            # Deployed code without data section\n            Container(\n                name=\"EOF1V3540_0001\",\n                sections=[\n                    Section.Code(code=Op.PUSH1[0] + Op.POP + Op.STOP),\n                ],\n            ),\n            None,\n            id=\"EOF1V3540_0001_deployed_code_without_data_section\",\n        ),\n        pytest.param(\n            # Deployed code with data section\n            Container(\n                name=\"EOF1V3540_0002\",\n                sections=[\n                    Section.Code(code=Op.PUSH1[0] + Op.POP + Op.STOP),\n                    Section.Data(\"aabbccdd\"),\n                ],\n            ),\n            None,\n            id=\"EOF1V3540_0002_deployed_code_with_data_section\",\n        ),\n        pytest.param(\n            # Empty code section with non-empty data section\n            Container(\n                sections=[Section.Code(code_outputs=0), Section.Data(\"aabb\")],\n                expected_bytecode=\"ef00010100040200010000ff00020000000000aabb\",\n            ),\n            EOFException.ZERO_SECTION_SIZE,\n            id=\"EOF1I3540_0012_empty_code_section_with_non_empty_data_section\",\n        ),\n        pytest.param(\n            # No section terminator after data section size\n            Container(raw_bytes=bytes.fromhex(\"ef00010100040200010001ff0002\")),\n            EOFException.MISSING_HEADERS_TERMINATOR,\n            id=\"EOF1I3540_0020_no_section_terminator_after_data_section_size\",\n        ),\n        pytest.param(\n            # No type section contents\n            Container(raw_bytes=bytes.fromhex(\"ef00010100040200010001ff000200\")),\n            EOFException.INVALID_SECTION_BODIES_SIZE,\n            id=\"EOF1I3540_0021_no_type_section_contents\",\n        ),\n        pytest.param(\n            # Type section contents (no outputs and max stack)\n            Container(raw_bytes=bytes.fromhex(\"ef00010100040200010001ff00020000\")),\n            EOFException.INVALID_SECTION_BODIES_SIZE,\n            id=\"EOF1I3540_0022_invalid_type_section_no_outputs_and_max_stack\",\n        ),\n        pytest.param(\n            # Type section contents (no max stack)\n            Container(raw_bytes=bytes.fromhex(\"ef00010100040200010001ff0002000000\")),\n            EOFException.INVALID_SECTION_BODIES_SIZE,\n            id=\"EOF1I3540_0023_invalid_type_section_no_max_stack\",\n        ),\n        pytest.param(\n            # Type section contents (max stack incomplete)\n            Container(raw_bytes=bytes.fromhex(\"ef00010100040200010001ff000200000000\")),\n            EOFException.INVALID_SECTION_BODIES_SIZE,\n            id=\"EOF1I3540_0024_invalid_type_section_max_stack_incomplete\",\n        ),\n        pytest.param(\n            # No code section contents\n            Container(raw_bytes=bytes.fromhex(\"ef00010100040200010001ff00020000000000\")),\n            EOFException.INVALID_SECTION_BODIES_SIZE,\n            id=\"EOF1I3540_0025_no_code_section_contents\",\n        ),\n        pytest.param(\n            # Code section contents incomplete\n            Container(raw_bytes=bytes.fromhex(\"ef00010100040200010029ff000000000000027f\")),\n            EOFException.INVALID_SECTION_BODIES_SIZE,\n            id=\"EOF1I3540_0026_code_section_contents_incomplete\",\n        ),\n        pytest.param(\n            # Trailing bytes after code section\n            Container(\n                raw_bytes=bytes.fromhex(\"ef0001 010004 0200010001 ff0000 00 00800000 fe aabbcc\")\n            ),\n            EOFException.INVALID_SECTION_BODIES_SIZE,\n            id=\"EOF1I3540_0027_trailing_bytes_after_code_section\",\n        ),\n        pytest.param(\n            # Trailing bytes after code section with wrong first section type\n            Container(\n                raw_bytes=bytes.fromhex(\"ef0001 010004 0200010001 ff0000 00 00000000 fe aabbcc\")\n            ),\n            [EOFException.INVALID_FIRST_SECTION_TYPE, EOFException.INVALID_SECTION_BODIES_SIZE],\n            id=\"EOF1I3540_0027_trailing_bytes_after_code_section_with_wrong_first_section_type\",\n        ),\n        pytest.param(\n            # Empty code section\n            Container(raw_bytes=bytes.fromhex(\"ef00010100040200010000ff00000000000000\")),\n            EOFException.ZERO_SECTION_SIZE,\n            id=\"EOF1I3540_0028_empty_code_section\",\n        ),\n        pytest.param(\n            # Code section preceding type section\n            Container(raw_bytes=bytes.fromhex(\"ef00010200010001010004ff00020000000000feaabb\")),\n            [EOFException.MISSING_TYPE_HEADER, EOFException.UNEXPECTED_HEADER_KIND],\n            id=\"EOF1I3540_0030_code_section_preceding_type_section\",\n        ),\n        pytest.param(\n            # Data section preceding type section\n            Container(raw_bytes=bytes.fromhex(\"ef0001ff000201000402000100010000000000feaabb\")),\n            [EOFException.MISSING_TYPE_HEADER, EOFException.UNEXPECTED_HEADER_KIND],\n            id=\"EOF1I3540_0031_data_section_preceding_type_section\",\n        ),\n        pytest.param(\n            # Data section preceding code section\n            Container(raw_bytes=bytes.fromhex(\"ef0001010004ff000202000100010000000000feaabb\")),\n            [EOFException.MISSING_CODE_HEADER, EOFException.UNEXPECTED_HEADER_KIND],\n            id=\"EOF1I3540_0032_data_section_preceding_code_section\",\n        ),\n        pytest.param(\n            # Data section without code section\n            Container(raw_bytes=bytes.fromhex(\"ef0001010004ff00020000000000aabb\")),\n            [EOFException.MISSING_CODE_HEADER, EOFException.UNEXPECTED_HEADER_KIND],\n            id=\"EOF1I3540_0033_data_section_without_code_section\",\n        ),\n        pytest.param(\n            # No data section\n            Container(raw_bytes=bytes.fromhex(\"ef000101000402000100010000000000fe\")),\n            [EOFException.MISSING_DATA_SECTION, EOFException.UNEXPECTED_HEADER_KIND],\n            id=\"EOF1I3540_0034_no_data_section\",\n        ),\n        pytest.param(\n            # Trailing bytes after data section\n            Container(\n                sections=[\n                    Section.Code(Op.INVALID),\n                    Section.Data(\"aabb\"),\n                ],\n                extra=\"ccdd\",\n                expected_bytecode=\"ef0001 010004 0200010001 ff0002 00 00800000 fe aabbccdd\",\n            ),\n            EOFException.INVALID_SECTION_BODIES_SIZE,\n            id=\"EOF1I3540_0035_trailing_bytes_after_data_section\",\n        ),\n        pytest.param(\n            # Trailing bytes after data section with wrong first section type\n            Container(\n                raw_bytes=bytes.fromhex(\"ef0001 010004 0200010001 ff0002 00 00000000 fe aabbccdd\")\n            ),\n            [EOFException.INVALID_FIRST_SECTION_TYPE, EOFException.INVALID_SECTION_BODIES_SIZE],\n            id=\"EOF1I3540_0035_trailing_bytes_after_data_section_with_wrong_first_section_type\",\n        ),\n        pytest.param(\n            # Multiple data sections\n            Container(\n                raw_bytes=bytes.fromhex(\"ef00010100040200010001ff0002ff00020000000000feaabbaabb\")\n            ),\n            [EOFException.MISSING_TERMINATOR, EOFException.UNEXPECTED_HEADER_KIND],\n            id=\"EOF1I3540_0036_multiple_data_sections\",\n        ),\n        pytest.param(\n            # Multiple code and data sections\n            Container(\n                raw_bytes=bytes.fromhex(\n                    \"ef000101000802000200010001ff0002ff0002000000000000000000fefeaabbaabb\"\n                )\n            ),\n            [EOFException.MISSING_TERMINATOR, EOFException.UNEXPECTED_HEADER_KIND],\n            id=\"EOF1I3540_0037_multiple_code_and_data_sections\",\n        ),\n        pytest.param(\n            # Unknown section ID (at the beginning)\n            Container(raw_bytes=bytes.fromhex(\"ef00010400010100040200010001ff00000000000000fe\")),\n            [EOFException.MISSING_TYPE_HEADER, EOFException.UNEXPECTED_HEADER_KIND],\n            id=\"EOF1I3540_0038_unknown_section_id_at_the_beginning_05\",\n        ),\n        pytest.param(\n            # Unknown section ID (at the beginning)\n            Container(raw_bytes=bytes.fromhex(\"ef00010500010100040200010001ff00000000000000fe\")),\n            [EOFException.MISSING_TYPE_HEADER, EOFException.UNEXPECTED_HEADER_KIND],\n            id=\"EOF1I3540_0039_unknown_section_id_at_the_beginning_06\",\n        ),\n        pytest.param(\n            # Unknown section ID (at the beginning)\n            Container(raw_bytes=bytes.fromhex(\"ef0001fe00010100040200010001ff00000000000000fe\")),\n            [EOFException.MISSING_TYPE_HEADER, EOFException.UNEXPECTED_HEADER_KIND],\n            id=\"EOF1I3540_0040_unknown_section_id_at_the_beginning_ff\",\n        ),\n        pytest.param(\n            # Unknown section ID (after types section)\n            Container(raw_bytes=bytes.fromhex(\"ef00010100040400010200010001ff00000000000000fe\")),\n            [EOFException.MISSING_CODE_HEADER, EOFException.UNEXPECTED_HEADER_KIND],\n            id=\"EOF1I3540_0041_unknown_section_id_after_types_section_05\",\n        ),\n        pytest.param(\n            # Unknown section ID (after types section)\n            Container(raw_bytes=bytes.fromhex(\"ef00010100040500010200010001ff00000000000000fe\")),\n            [EOFException.MISSING_CODE_HEADER, EOFException.UNEXPECTED_HEADER_KIND],\n            id=\"EOF1I3540_0042_unknown_section_id_after_types_section_06\",\n        ),\n        pytest.param(\n            # Unknown section ID (after types section)\n            Container(raw_bytes=bytes.fromhex(\"ef0001010004fe00010200010001ff00000000000000fe\")),\n            [EOFException.MISSING_CODE_HEADER, EOFException.UNEXPECTED_HEADER_KIND],\n            id=\"EOF1I3540_0043_unknown_section_id_after_types_section_ff\",\n        ),\n        pytest.param(\n            # Unknown section ID (after code section)\n            Container(raw_bytes=bytes.fromhex(\"ef00010100040200010001050001ff00000000000000fe\")),\n            [EOFException.MISSING_DATA_SECTION, EOFException.UNEXPECTED_HEADER_KIND],\n            id=\"EOF1I3540_0044_unknown_section_id_after_code_section_05\",\n        ),\n        pytest.param(\n            # Unknown section ID (after code section)\n            Container(raw_bytes=bytes.fromhex(\"ef00010100040200010001060001ff00000000000000fe\")),\n            [EOFException.MISSING_DATA_SECTION, EOFException.UNEXPECTED_HEADER_KIND],\n            id=\"EOF1I3540_0045_unknown_section_id_after_code_section_06\",\n        ),\n        pytest.param(\n            # Unknown section ID (after code section)\n            Container(raw_bytes=bytes.fromhex(\"ef00010100040200010001040001ff00000000000000fe\")),\n            [EOFException.MISSING_DATA_SECTION, EOFException.UNEXPECTED_HEADER_KIND],\n            id=\"EOF1I3540_0046_unknown_section_id_after_code_section_04\",\n        ),\n        pytest.param(\n            # Unknown section ID (after data section)\n            Container(raw_bytes=bytes.fromhex(\"ef00010100040200010001ff00000500010000000000fe\")),\n            [EOFException.MISSING_TERMINATOR, EOFException.UNEXPECTED_HEADER_KIND],\n            id=\"EOF1I3540_0047_unknown_section_id_after_data_section_05\",\n        ),\n        pytest.param(\n            # Unknown section ID (after data section)\n            Container(raw_bytes=bytes.fromhex(\"ef00010100040200010001ff00000600010000000000fe\")),\n            [EOFException.MISSING_TERMINATOR, EOFException.UNEXPECTED_HEADER_KIND],\n            id=\"EOF1I3540_0048_unknown_section_id_after_data_section_06\",\n        ),\n        pytest.param(\n            # Unknown section ID (after data section)\n            Container(raw_bytes=bytes.fromhex(\"ef00010100040200010001ff00000400010000000000fe\")),\n            [EOFException.MISSING_TERMINATOR, EOFException.UNEXPECTED_HEADER_KIND],\n            id=\"EOF1I3540_0049_unknown_section_id_after_data_section_04\",\n        ),\n        pytest.param(\n            Container(\n                name=\"EOF1I3540_0002 (Invalid) Invalid magic\",\n                raw_bytes=\"ef01010100040200010001ff00000000000000fe\",\n            ),\n            EOFException.INVALID_MAGIC,\n            id=\"EOF1I3540_0002_invalid_incorrect_magic_01\",\n        ),\n        pytest.param(\n            Container(\n                name=\"EOF1I3540_0003\",\n                raw_bytes=\"ef02010100040200010001ff00000000000000fe\",\n            ),\n            EOFException.INVALID_MAGIC,\n            id=\"EOF1I3540_0003_invalid_incorrect_magic_02\",\n        ),\n        pytest.param(\n            Container(\n                name=\"EOF1I3540_0004\",\n                raw_bytes=\"efff010100040200010001ff00000000000000fe\",\n            ),\n            EOFException.INVALID_MAGIC,\n            id=\"EOF1I3540_0004_invalid_incorrect_magic_ff\",\n        ),\n        pytest.param(\n            Container(\n                name=\"EOF1I3540_0006 (Invalid) Invalid version\",\n                raw_bytes=\"ef00000100040200010001ff00000000000000fe\",\n            ),\n            EOFException.INVALID_VERSION,\n            id=\"EOF1I3540_0006_invalid_incorrect_version_00\",\n        ),\n        pytest.param(\n            Container(\n                name=\"EOF1I3540_0007\",\n                raw_bytes=\"ef00020100040200010001ff00000000000000fe\",\n            ),\n            EOFException.INVALID_VERSION,\n            id=\"EOF1I3540_0007_invalid_incorrect_version_02\",\n        ),\n        pytest.param(\n            Container(\n                name=\"EOF1I3540_0008\",\n                raw_bytes=\"ef00ff0100040200010001ff00000000000000fe\",\n            ),\n            EOFException.INVALID_VERSION,\n            id=\"EOF1I3540_0008_invalid_incorrect_version_ff\",\n        ),\n    ],\n)\ndef test_migrated_valid_invalid(\n    eof_test: EOFTestFiller,\n    eof_code: Container,\n    exception: EOFExceptionInstanceOrList | None,\n) -> None:\n    \"\"\"Verify EOF container construction and exception.\"\"\"\n    eof_test(\n        container=eof_code,\n        expect_exception=exception,\n    )\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_opcodes_in_legacy.py",
    "content": "\"\"\"Tests all EOF-only opcodes in legacy contracts and expects failure.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_base_types import Account\nfrom ethereum_test_specs import StateTestFiller\nfrom ethereum_test_tools import Initcode\nfrom ethereum_test_tools import Opcodes as Op\nfrom ethereum_test_types import Alloc, Environment, Transaction\nfrom ethereum_test_types.eof.v1 import Container, Section\nfrom ethereum_test_vm import Opcodes\n\nfrom .. import EOF_FORK_NAME\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-7692.md\"\nREFERENCE_SPEC_VERSION = \"f0e7661ee0d16e612e0931ec88b4c9f208e9d513\"\n\npytestmark = pytest.mark.valid_from(EOF_FORK_NAME)\n\nslot_code_executed = b\"EXEC\"\nslot_code_worked = b\"WORK\"\nslot_create_address = b\"ADDR\"\n\nvalue_code_executed = b\"exec\"\nvalue_code_worked = b\"work\"\nvalue_non_execution_canary = b\"brid\"\nvalue_create_failed = 0\n\neof_opcode_blocks = [\n    pytest.param(Op.PUSH0 + Op.DUPN[0], id=\"DUPN\"),\n    pytest.param(Op.PUSH0 + Op.PUSH0 + Op.SWAPN[0], id=\"SWAPN\"),\n    pytest.param(Op.PUSH0 + Op.PUSH0 + Op.PUSH0 + Op.EXCHANGE[2, 3], id=\"EXCHANGE\"),\n    pytest.param(Op.RJUMP[0], id=\"RJUMP\"),\n    pytest.param(Op.PUSH0 + Op.RJUMPI[0], id=\"RJUMPI\"),\n    pytest.param(Op.PUSH0 + Op.RJUMPV[0, 0], id=\"RJUMPI\"),\n    pytest.param(Op.CALLF[1], id=\"CALLF\"),\n    pytest.param(Op.RETF, id=\"RETF\"),\n    pytest.param(Op.JUMPF[0], id=\"JUMPF\"),\n    pytest.param(Op.PUSH0 + Op.PUSH0 + Op.PUSH0 + Op.PUSH1(2) + Op.EXTCALL, id=\"EXTCALL\"),\n    pytest.param(\n        Op.PUSH0 + Op.PUSH0 + Op.PUSH0 + Op.PUSH1(2) + Op.EXTDELEGATECALL, id=\"EXTDELEGATECALL\"\n    ),\n    pytest.param(\n        Op.PUSH0 + Op.PUSH0 + Op.PUSH0 + Op.PUSH1(2) + Op.EXTSTATICCALL, id=\"EXTSTATICCALL\"\n    ),\n    pytest.param(Op.DATALOAD(0), id=\"DATALOAD\"),\n    pytest.param(Op.DATALOADN[0], id=\"DATALOADN\"),\n    pytest.param(Op.DATASIZE, id=\"DATASIZE\"),\n    pytest.param(Op.DATACOPY(0, 0, 32), id=\"DATACOPY\"),\n    pytest.param(Op.EOFCREATE[0](0, 0, 0, 0), id=\"EOFCREATE\"),\n    # pytest.param(Op.TXCREATE(0, 0, 0, 0, 0), id=\"TXCREATE\"), not EOF-only\n    # anymore\n    pytest.param(Op.RETURNCODE[0], id=\"RETURNCODE\"),\n]\n\n\n@pytest.mark.parametrize(\n    \"code\",\n    eof_opcode_blocks,\n)\ndef test_opcodes_in_legacy(state_test: StateTestFiller, pre: Alloc, code: Opcodes) -> None:\n    \"\"\"Test all EOF only opcodes in legacy contracts and expects failure.\"\"\"\n    env = Environment()\n\n    address_test_contract = pre.deploy_contract(\n        code=code + Op.SSTORE(slot_code_executed, value_code_executed),\n        storage={slot_code_executed: value_non_execution_canary},\n    )\n\n    post = {\n        # assert the canary is not over-written. If it was written then the EOF\n        # opcode was valid\n        address_test_contract: Account(storage={slot_code_executed: value_non_execution_canary}),\n    }\n\n    sender = pre.fund_eoa()\n\n    tx = Transaction(\n        sender=sender,\n        to=address_test_contract,\n        gas_limit=5_000_000,\n        gas_price=10,\n        protected=False,\n        data=\"\",\n    )\n\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\n@pytest.mark.parametrize(\n    \"code\",\n    eof_opcode_blocks,\n)\ndef test_opcodes_in_create_tx(state_test: StateTestFiller, pre: Alloc, code: Opcodes) -> None:\n    \"\"\"Test all EOF only opcodes in create tx and expects failure.\"\"\"\n    env = Environment()\n\n    sender = pre.fund_eoa()\n\n    tx = Transaction(\n        sender=sender,\n        to=None,\n        gas_limit=5_000_000,\n        gas_price=10,\n        protected=False,\n        data=code,\n    )\n\n    post = {\n        # Should revert in initcode, which results in no contract created\n        tx.created_contract: Account.NONEXISTENT\n    }\n\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\n@pytest.mark.parametrize(\n    \"legacy_create_opcode\",\n    [\n        pytest.param(Op.CREATE, id=\"CREATE\"),\n        pytest.param(Op.CREATE2, id=\"CREATE2\"),\n    ],\n)\n@pytest.mark.parametrize(\n    \"code\",\n    eof_opcode_blocks,\n)\ndef test_opcodes_in_create_operation(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    code: Opcodes,\n    legacy_create_opcode: Opcodes,\n) -> None:\n    \"\"\"Test opcodes in create operation.\"\"\"\n    env = Environment()\n\n    init_code = Initcode(initcode_prefix=code, deploy_code=Op.RETURN(0, 0))\n    factory_code = (\n        Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE)\n        + Op.SSTORE(slot_create_address, legacy_create_opcode(size=Op.CALLDATASIZE))\n        + Op.SSTORE(slot_code_worked, value_code_worked)\n    )\n\n    sender = pre.fund_eoa()\n    contract_address = pre.deploy_contract(code=factory_code)\n\n    post = {\n        contract_address: Account(\n            storage={slot_create_address: value_create_failed, slot_code_worked: value_code_worked}\n        )\n    }\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=10_000_000,\n        gas_price=10,\n        protected=False,\n        data=init_code,\n        sender=sender,\n    )\n\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.parametrize(\n    (\"ext_call_opcode\"),\n    [\n        pytest.param(Op.EXTCALL, id=\"EXTCALL\"),\n        pytest.param(Op.EXTDELEGATECALL, id=\"EXTDELEGATECALL\"),\n        pytest.param(Op.EXTSTATICCALL, id=\"EXTSTATICCALL\"),\n    ],\n)\n@pytest.mark.parametrize(\n    \"code\",\n    eof_opcode_blocks,\n)\ndef test_opcodes_in_eof_calling_legacy(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    code: Opcodes,\n    ext_call_opcode: Op,\n) -> None:\n    \"\"\"Test all opcodes in eof calling legacy and expects failure.\"\"\"\n    env = Environment()\n\n    address_test_contract = pre.deploy_contract(\n        code=code + Op.SSTORE(slot_code_executed, value_code_executed),\n        storage={slot_code_executed: value_non_execution_canary},\n    )\n\n    address_entry_contract = pre.deploy_contract(\n        code=Container(\n            sections=[\n                Section.Code(\n                    ext_call_opcode(address=address_test_contract)\n                    + Op.SSTORE(slot_code_worked, value_code_worked)\n                    + Op.STOP\n                )\n            ]\n        ),\n        storage={slot_code_executed: value_non_execution_canary},\n    )\n\n    post = {\n        # assert the canary is not over-written. If it was written then the EOF\n        # opcode was valid\n        address_test_contract: Account(storage={slot_code_executed: value_non_execution_canary}),\n        address_entry_contract: Account(\n            storage={\n                slot_code_executed: value_non_execution_canary,\n                slot_code_worked: value_code_worked,\n            }\n        ),\n    }\n\n    sender = pre.fund_eoa()\n\n    tx = Transaction(\n        sender=sender,\n        to=address_entry_contract,\n        gas_limit=5_000_000,\n        gas_price=10,\n        protected=False,\n        data=\"\",\n    )\n\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_section_header_body_mismatch.py",
    "content": "\"\"\"EOF Container construction test.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_exceptions.exceptions import EOFExceptionInstanceOrList\nfrom ethereum_test_tools import EOFException, EOFTestFiller, extend_with_defaults\nfrom ethereum_test_tools import Opcodes as Op\nfrom ethereum_test_types.eof.v1 import Container, Section\n\nfrom .. import EOF_FORK_NAME\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-3540.md\"\nREFERENCE_SPEC_VERSION = \"8dcb0a8c1c0102c87224308028632cc986a61183\"\n\npytestmark = pytest.mark.valid_from(EOF_FORK_NAME)\n\n\n@pytest.mark.parametrize(\n    **extend_with_defaults(\n        defaults={\n            # second section is mentioned in code header array\n            \"skip_header_listing\": False,\n            # second section code is in container's body\n            \"skip_body_listing\": False,\n            # code input bytes not listed in container's body\n            \"skip_types_body_listing\": False,\n            # code input bytes size not added to types section size\n            \"skip_types_header_listing\": False,\n            \"expected_code\": \"\",\n            \"expected_exception\": None,\n        },\n        cases=[\n            pytest.param(\n                {\n                    \"skip_header_listing\": True,\n                    \"skip_body_listing\": True,\n                    \"expected_code\": \"ef00010100080200010003ff0004000080000\"\n                    \"1000000003050000bad60A7\",\n                    \"expected_exception\": [\n                        EOFException.INVALID_TYPE_SECTION_SIZE,\n                        EOFException.INVALID_SECTION_BODIES_SIZE,\n                    ],\n                },\n                id=\"drop_code_section_and_header\",\n            ),\n            pytest.param(\n                {\n                    \"skip_header_listing\": True,\n                    \"skip_body_listing\": False,\n                    \"expected_code\": \"ef00010100080200010003ff0004000080000\"\n                    \"1000000003050003050000bad60A7\",\n                    \"expected_exception\": [\n                        EOFException.INVALID_TYPE_SECTION_SIZE,\n                        EOFException.INVALID_SECTION_BODIES_SIZE,\n                    ],\n                },\n                id=\"drop_code_header\",\n            ),\n            pytest.param(\n                {\n                    \"skip_header_listing\": False,\n                    \"skip_body_listing\": True,\n                    \"expected_code\": \"ef000101000802000200030003ff000400008\"\n                    \"00001000000003050000bad60A7\",\n                    \"expected_exception\": [\n                        EOFException.UNREACHABLE_CODE_SECTIONS,\n                        EOFException.TOPLEVEL_CONTAINER_TRUNCATED,\n                    ],\n                },\n                id=\"drop_code_section\",\n            ),\n            pytest.param(\n                {\n                    \"skip_header_listing\": False,\n                    \"skip_body_listing\": False,\n                    \"expected_code\": \"ef000101000802000200030003ff000400008\"\n                    \"00001000000003050003050000bad60A7\",\n                    \"expected_exception\": EOFException.UNREACHABLE_CODE_SECTIONS,\n                },\n                id=\"layout_ok_code_bad\",\n            ),\n            pytest.param(\n                {\n                    \"skip_header_listing\": True,\n                    \"skip_body_listing\": True,\n                    \"skip_types_body_listing\": True,\n                    \"expected_code\": \"ef00010100080200010003ff000400008000013050000bad60a7\",\n                    \"expected_exception\": [\n                        EOFException.INVALID_TYPE_SECTION_SIZE,\n                        EOFException.INVALID_SECTION_BODIES_SIZE,\n                    ],\n                },\n                id=\"drop_types_header\",\n            ),\n            pytest.param(\n                {\n                    \"skip_header_listing\": True,\n                    \"skip_body_listing\": True,\n                    \"skip_types_body_listing\": True,\n                    \"skip_types_header_listing\": True,\n                    \"expected_code\": \"ef00010100040200010003ff000400008000013050000bad60a7\",\n                    \"expected_exception\": None,\n                },\n                id=\"drop_everything\",\n            ),\n        ],\n    )\n)\ndef test_code_section_header_body_mismatch(\n    eof_test: EOFTestFiller,\n    skip_header_listing: bool,\n    skip_body_listing: bool,\n    skip_types_body_listing: bool,\n    skip_types_header_listing: bool,\n    expected_code: str,\n    expected_exception: EOFExceptionInstanceOrList | None,\n) -> None:\n    \"\"\"Inconsistent number of code sections (between types and code).\"\"\"\n    eof_code = Container(\n        name=\"EOF1I0018\",\n        sections=[\n            Section.Code(\n                code=Op.ADDRESS + Op.POP + Op.STOP,\n            ),\n            Section.Code(\n                code=Op.ADDRESS + Op.POP + Op.STOP,\n                code_inputs=0,\n                code_outputs=0,\n                max_stack_height=0,\n                # whether to not mention it in code section header list\n                skip_header_listing=skip_header_listing,\n                # whether to not print its code in containers body\n                skip_body_listing=skip_body_listing,\n                # whether to not print its input bytes in containers body\n                skip_types_body_listing=skip_types_body_listing,\n                # whether to not calculate its input bytes size in types\n                # section's header\n                skip_types_header_listing=skip_types_header_listing,\n            ),\n            Section.Data(\"0x0bad60A7\"),\n        ],\n    )\n\n    # TODO remove this after Container class implementation is reliable\n    assert bytes(eof_code).hex() == bytes.fromhex(expected_code).hex()\n\n    eof_test(\n        container=eof_code,\n        expect_exception=expected_exception,\n    )\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_section_order.py",
    "content": "\"\"\"Different variations of EOF sections displacement.\"\"\"\n\nfrom enum import Enum\nfrom typing import List\n\nimport pytest\n\nfrom ethereum_test_exceptions.exceptions import EOFExceptionInstanceOrList\nfrom ethereum_test_tools import EOFException, EOFTestFiller\nfrom ethereum_test_tools import Opcodes as Op\nfrom ethereum_test_types.eof.v1 import AutoSection, Container, Section, SectionKind\n\nfrom .. import EOF_FORK_NAME\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-3540.md\"\nREFERENCE_SPEC_VERSION = \"8dcb0a8c1c0102c87224308028632cc986a61183\"\n\npytestmark = pytest.mark.valid_from(EOF_FORK_NAME)\n\n\nclass SectionTest(Enum):\n    \"\"\"Enum for the test type.\"\"\"\n\n    MISSING = 1\n    WRONG_ORDER = 2\n\n\nclass CasePosition(Enum):\n    \"\"\"Enum for the test position.\"\"\"\n\n    BODY = 1\n    HEADER = 2\n    BODY_AND_HEADER = 3\n\n\ndef get_expected_code_exception(\n    section_kind: SectionKind, section_test: SectionTest, test_position: CasePosition\n) -> tuple[str, EOFExceptionInstanceOrList | None]:\n    \"\"\"\n    Verification vectors with code and exception based on test combinations.\n    \"\"\"\n    match (section_kind, section_test, test_position):\n        case (SectionKind.TYPE, SectionTest.MISSING, CasePosition.HEADER):\n            return (\n                \"ef00010200010003ff00010000800001305000ef\",\n                [EOFException.MISSING_TYPE_HEADER, EOFException.UNEXPECTED_HEADER_KIND],\n            )\n        case (SectionKind.TYPE, SectionTest.MISSING, CasePosition.BODY):\n            return (\n                \"ef00010100040200010003ff000100305000ef\",\n                [\n                    EOFException.INVALID_SECTION_BODIES_SIZE,\n                    EOFException.INVALID_FIRST_SECTION_TYPE,\n                ],\n            )\n        case (SectionKind.TYPE, SectionTest.MISSING, CasePosition.BODY_AND_HEADER):\n            return (\n                \"ef00010200010003ff000100305000ef\",\n                [EOFException.MISSING_TYPE_HEADER, EOFException.UNEXPECTED_HEADER_KIND],\n            )\n        case (SectionKind.TYPE, SectionTest.WRONG_ORDER, CasePosition.HEADER):\n            return (\n                \"ef00010200010003010004ff00010000800001305000ef\",\n                [EOFException.MISSING_TYPE_HEADER, EOFException.UNEXPECTED_HEADER_KIND],\n            )\n        case (SectionKind.TYPE, SectionTest.WRONG_ORDER, CasePosition.BODY):\n            return (\n                \"ef00010100040200010003ff00010030500000800001ef\",\n                # TODO why invalid first section type? it should say that the\n                # body incorrect\n                EOFException.INVALID_FIRST_SECTION_TYPE,\n            )\n        case (SectionKind.TYPE, SectionTest.WRONG_ORDER, CasePosition.BODY_AND_HEADER):\n            return (\n                \"ef00010200010003010004ff00010030500000800001ef\",\n                [EOFException.MISSING_TYPE_HEADER, EOFException.UNEXPECTED_HEADER_KIND],\n            )\n        case (SectionKind.CODE, SectionTest.MISSING, CasePosition.HEADER):\n            return (\n                \"ef0001010004ff00010000800001305000ef\",\n                [EOFException.MISSING_CODE_HEADER, EOFException.UNEXPECTED_HEADER_KIND],\n            )\n        case (SectionKind.CODE, SectionTest.MISSING, CasePosition.BODY):\n            return (\n                \"ef00010100040200010003ff00010000800001ef\",\n                # TODO should be an exception of empty code bytes, because it\n                # can understand that last byte is data section byte\n                [EOFException.INVALID_SECTION_BODIES_SIZE, EOFException.UNEXPECTED_HEADER_KIND],\n            )\n        case (SectionKind.CODE, SectionTest.MISSING, CasePosition.BODY_AND_HEADER):\n            return (\n                \"ef0001010004ff00010000800001ef\",\n                [EOFException.MISSING_CODE_HEADER, EOFException.UNEXPECTED_HEADER_KIND],\n            )\n        case (SectionKind.CODE, SectionTest.WRONG_ORDER, CasePosition.HEADER):\n            return (\n                \"ef0001010004ff000102000100030000800001305000ef\",\n                [EOFException.MISSING_CODE_HEADER, EOFException.UNEXPECTED_HEADER_KIND],\n            )\n        case (SectionKind.CODE, SectionTest.WRONG_ORDER, CasePosition.BODY):\n            return (\n                \"ef00010100040200010003ff00010000800001ef305000\",\n                EOFException.UNDEFINED_INSTRUCTION,\n            )\n        case (SectionKind.CODE, SectionTest.WRONG_ORDER, CasePosition.BODY_AND_HEADER):\n            return (\n                \"ef0001010004ff000102000100030000800001ef305000\",\n                [EOFException.MISSING_CODE_HEADER, EOFException.UNEXPECTED_HEADER_KIND],\n            )\n        case (SectionKind.DATA, SectionTest.MISSING, CasePosition.HEADER):\n            return (\n                \"ef000101000402000100030000800001305000ef\",\n                [EOFException.MISSING_DATA_SECTION, EOFException.UNEXPECTED_HEADER_KIND],\n            )\n        case (SectionKind.DATA, SectionTest.MISSING, CasePosition.BODY):\n            return (\n                \"ef00010100040200010003ff00010000800001305000\",\n                EOFException.TOPLEVEL_CONTAINER_TRUNCATED,\n            )\n        case (SectionKind.DATA, SectionTest.MISSING, CasePosition.BODY_AND_HEADER):\n            return (\n                \"ef000101000402000100030000800001305000\",\n                [EOFException.MISSING_DATA_SECTION, EOFException.UNEXPECTED_HEADER_KIND],\n            )\n        case (SectionKind.DATA, SectionTest.WRONG_ORDER, CasePosition.HEADER):\n            return (\n                \"ef0001ff000101000402000100030000800001305000ef\",\n                [EOFException.MISSING_TYPE_HEADER, EOFException.UNEXPECTED_HEADER_KIND],\n            )\n        case (SectionKind.DATA, SectionTest.WRONG_ORDER, CasePosition.BODY):\n            return (\n                \"ef00010100040200010003ff000100ef00800001305000\",\n                EOFException.INVALID_FIRST_SECTION_TYPE,\n            )\n        case (SectionKind.DATA, SectionTest.WRONG_ORDER, CasePosition.BODY_AND_HEADER):\n            return (\n                \"ef0001ff0001010004020001000300ef00800001305000\",\n                [EOFException.MISSING_TYPE_HEADER, EOFException.UNEXPECTED_HEADER_KIND],\n            )\n    return \"\", None\n\n\n@pytest.mark.parametrize(\"section_kind\", [SectionKind.TYPE, SectionKind.CODE, SectionKind.DATA])\n@pytest.mark.parametrize(\"section_test\", [SectionTest.MISSING, SectionTest.WRONG_ORDER])\n@pytest.mark.parametrize(\n    \"test_position\", [CasePosition.BODY, CasePosition.HEADER, CasePosition.BODY_AND_HEADER]\n)\ndef test_section_order(\n    eof_test: EOFTestFiller,\n    section_kind: SectionKind,\n    section_test: SectionTest,\n    test_position: CasePosition,\n) -> None:\n    \"\"\"Test sections order and it appearance in body and header.\"\"\"\n\n    def calculate_skip_flag(kind: SectionKind, position: CasePosition) -> bool:\n        return (\n            False\n            if (section_kind != kind)\n            else (\n                True\n                if section_test == SectionTest.MISSING\n                and (test_position == position or test_position == CasePosition.BODY_AND_HEADER)\n                else False\n            )\n        )\n\n    def make_section_order(kind: SectionKind) -> List[Section]:\n        if section_test != SectionTest.WRONG_ORDER:\n            return [section_type, section_code, section_data]\n        if kind == SectionKind.TYPE:\n            return [section_code, section_type, section_data]\n        if kind == SectionKind.CODE:\n            return [section_type, section_data, section_code]\n        if kind == SectionKind.DATA:\n            return [section_data, section_type, section_code]\n        return [section_type, section_code, section_data]\n\n    section_code = Section.Code(\n        code=Op.ADDRESS + Op.POP + Op.STOP,\n        skip_header_listing=calculate_skip_flag(SectionKind.CODE, CasePosition.HEADER),\n        skip_body_listing=calculate_skip_flag(SectionKind.CODE, CasePosition.BODY),\n    )\n    section_type = Section(\n        kind=SectionKind.TYPE,\n        data=bytes.fromhex(\"00800001\"),\n        custom_size=4,\n        skip_header_listing=calculate_skip_flag(SectionKind.TYPE, CasePosition.HEADER),\n        skip_body_listing=calculate_skip_flag(SectionKind.TYPE, CasePosition.BODY),\n    )\n    section_data = Section.Data(\n        \"ef\",\n        skip_header_listing=calculate_skip_flag(SectionKind.DATA, CasePosition.HEADER),\n        skip_body_listing=calculate_skip_flag(SectionKind.DATA, CasePosition.BODY),\n    )\n\n    expected_code, expected_exception = get_expected_code_exception(\n        section_kind, section_test, test_position\n    )\n\n    eof_code = Container(\n        sections=make_section_order(section_kind),\n        auto_type_section=AutoSection.NONE,\n        auto_sort_sections=(\n            AutoSection.AUTO\n            if section_test != SectionTest.WRONG_ORDER\n            else (\n                AutoSection.ONLY_BODY\n                if test_position == CasePosition.HEADER\n                else (\n                    AutoSection.ONLY_HEADER\n                    if test_position == CasePosition.BODY\n                    else AutoSection.NONE\n                )\n            )\n        ),\n        expected_bytecode=expected_code,\n    )\n\n    eof_test(\n        container=eof_code,\n        expect_exception=expected_exception,\n    )\n\n\n@pytest.mark.parametrize(\"container_position\", range(4))\n@pytest.mark.parametrize(\n    \"test_position\", [CasePosition.BODY, CasePosition.HEADER, CasePosition.BODY_AND_HEADER]\n)\ndef test_container_section_order(\n    eof_test: EOFTestFiller,\n    container_position: int,\n    test_position: CasePosition,\n) -> None:\n    \"\"\"\n    Test containers section being out of order in the header and/or body. This\n    extends and follows the convention of the test_section_order() for the\n    optional container section.\n    \"\"\"\n    if container_position == 2:\n        pytest.skip(\"Skip valid container section position\")\n\n    section_code = Section.Code(\n        code=Op.EOFCREATE[0](0, 0, 0, 0)\n        # TODO: Migrated tests had the following infinite loop, so it is kept\n        # here to equalize code coverage.\n        + Op.RJUMP[0]\n        + Op.STOP()\n    )\n    section_type = Section(kind=SectionKind.TYPE, data=bytes.fromhex(\"00800004\"))\n    section_data = Section.Data(\"ef\")\n    section_container = Section.Container(Container.Code(Op.INVALID))\n\n    sections = [section_type, section_code, section_data]\n    sections.insert(container_position, section_container)\n    eof_code = Container(\n        sections=sections,\n        auto_type_section=AutoSection.NONE,\n        auto_sort_sections=(\n            AutoSection.ONLY_BODY\n            if test_position == CasePosition.HEADER\n            else (\n                AutoSection.ONLY_HEADER if test_position == CasePosition.BODY else AutoSection.NONE\n            )\n        ),\n    )\n\n    def get_expected_exception() -> EOFExceptionInstanceOrList | None:\n        match container_position, test_position:\n            case 2, _:\n                return None  # Valid containers section position\n            case 0, CasePosition.BODY:  # Messes up with the type section\n                return EOFException.INVALID_FIRST_SECTION_TYPE\n            case 1, CasePosition.BODY:  # Messes up with the code section\n                return EOFException.UNDEFINED_INSTRUCTION\n            case 3, CasePosition.BODY:  # Data section messes up with the\n                # container section\n                return EOFException.INVALID_MAGIC\n            case 0, CasePosition.HEADER | CasePosition.BODY_AND_HEADER:\n                return EOFException.MISSING_TYPE_HEADER\n            case 1, CasePosition.HEADER | CasePosition.BODY_AND_HEADER:\n                return EOFException.MISSING_CODE_HEADER\n            case 3, CasePosition.HEADER | CasePosition.BODY_AND_HEADER:\n                return EOFException.MISSING_TERMINATOR\n            case _:\n                return None\n\n    eof_test(\n        container=eof_code,\n        expect_exception=get_expected_exception(),\n    )\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_section_size.py",
    "content": "\"\"\"EOF Container, test custom_size field for sections.\"\"\"\n\nfrom enum import IntEnum\n\nimport pytest\n\nfrom ethereum_test_exceptions.exceptions import EOFExceptionInstanceOrList\nfrom ethereum_test_tools import EOFException, EOFTestFiller\nfrom ethereum_test_tools import Opcodes as Op\nfrom ethereum_test_types.eof.v1 import Container, Section, SectionKind\n\nfrom .. import EOF_FORK_NAME\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-3540.md\"\nREFERENCE_SPEC_VERSION = \"8dcb0a8c1c0102c87224308028632cc986a61183\"\n\npytestmark = pytest.mark.valid_from(EOF_FORK_NAME)\n\n\nclass SectionSize(IntEnum):\n    \"\"\"Enum for the section size.\"\"\"\n\n    NORMAL = -1\n    ZERO = 0\n    UNDERSIZE = 2\n    OVERSIZE = 100\n    HUGE = 0x8000\n    MAX = 0xFFFF\n    CONTAINER_BIG = 0x00010000\n    CONTAINER_MAX = 0xFFFFFFFF\n\n    def __str__(self) -> str:\n        \"\"\"Return string representation of the section kind.\"\"\"\n        return self.name\n\n\n@pytest.mark.parametrize(\n    \"section_kind, section_size, exception\",\n    [\n        pytest.param(SectionKind.DATA, SectionSize.NORMAL, None),\n        pytest.param(SectionKind.DATA, SectionSize.ZERO, EOFException.INVALID_SECTION_BODIES_SIZE),\n        pytest.param(\n            SectionKind.DATA, SectionSize.UNDERSIZE, EOFException.INVALID_SECTION_BODIES_SIZE\n        ),\n        pytest.param(\n            SectionKind.DATA, SectionSize.OVERSIZE, EOFException.TOPLEVEL_CONTAINER_TRUNCATED\n        ),\n        pytest.param(\n            SectionKind.DATA, SectionSize.HUGE, EOFException.TOPLEVEL_CONTAINER_TRUNCATED\n        ),\n        pytest.param(SectionKind.DATA, SectionSize.MAX, EOFException.TOPLEVEL_CONTAINER_TRUNCATED),\n        pytest.param(\n            SectionKind.CODE, SectionSize.NORMAL, None, marks=pytest.mark.skip(reason=\"duplicate\")\n        ),\n        pytest.param(SectionKind.CODE, SectionSize.ZERO, EOFException.ZERO_SECTION_SIZE),\n        pytest.param(\n            SectionKind.CODE, SectionSize.UNDERSIZE, EOFException.INVALID_SECTION_BODIES_SIZE\n        ),\n        pytest.param(\n            SectionKind.CODE, SectionSize.OVERSIZE, EOFException.INVALID_SECTION_BODIES_SIZE\n        ),\n        pytest.param(SectionKind.CODE, SectionSize.HUGE, EOFException.INVALID_SECTION_BODIES_SIZE),\n        pytest.param(SectionKind.CODE, SectionSize.MAX, EOFException.INVALID_SECTION_BODIES_SIZE),\n        pytest.param(\n            SectionKind.TYPE, SectionSize.NORMAL, None, marks=pytest.mark.skip(reason=\"duplicate\")\n        ),\n        pytest.param(\n            SectionKind.TYPE,\n            SectionSize.ZERO,\n            [EOFException.ZERO_SECTION_SIZE, EOFException.INVALID_SECTION_BODIES_SIZE],\n            id=\"type_size_zero\",\n        ),\n        pytest.param(\n            SectionKind.TYPE,\n            SectionSize.UNDERSIZE,\n            [EOFException.INVALID_SECTION_BODIES_SIZE, EOFException.INVALID_TYPE_SECTION_SIZE],\n            id=\"type_size_undersize\",\n        ),\n        pytest.param(\n            SectionKind.TYPE, SectionSize.OVERSIZE, EOFException.INVALID_SECTION_BODIES_SIZE\n        ),\n        pytest.param(SectionKind.TYPE, SectionSize.HUGE, EOFException.INVALID_SECTION_BODIES_SIZE),\n        pytest.param(\n            SectionKind.TYPE,\n            SectionSize.MAX,\n            [EOFException.INVALID_SECTION_BODIES_SIZE, EOFException.INVALID_TYPE_SECTION_SIZE],\n            id=\"type_size_max\",\n        ),\n        pytest.param(\n            SectionKind.CONTAINER,\n            SectionSize.NORMAL,\n            None,\n            marks=pytest.mark.skip(reason=\"duplicate\"),\n        ),\n        pytest.param(SectionKind.CONTAINER, SectionSize.ZERO, EOFException.ZERO_SECTION_SIZE),\n        pytest.param(\n            SectionKind.CONTAINER, SectionSize.UNDERSIZE, EOFException.INVALID_SECTION_BODIES_SIZE\n        ),\n        pytest.param(\n            SectionKind.CONTAINER, SectionSize.OVERSIZE, EOFException.INVALID_SECTION_BODIES_SIZE\n        ),\n        pytest.param(\n            SectionKind.CONTAINER, SectionSize.HUGE, EOFException.INVALID_SECTION_BODIES_SIZE\n        ),\n        pytest.param(\n            SectionKind.CONTAINER,\n            SectionSize.CONTAINER_BIG,\n            EOFException.INVALID_SECTION_BODIES_SIZE,\n        ),\n        pytest.param(\n            SectionKind.CONTAINER,\n            SectionSize.CONTAINER_MAX,\n            EOFException.INVALID_SECTION_BODIES_SIZE,\n        ),\n    ],\n)\ndef test_section_size(\n    eof_test: EOFTestFiller,\n    section_size: SectionSize,\n    section_kind: SectionKind,\n    exception: EOFExceptionInstanceOrList,\n) -> None:\n    \"\"\"\n    Test custom_size is auto, more or less than the actual size of the section.\n    \"\"\"\n    eof_code = Container()\n\n    if section_size != SectionSize.NORMAL and section_kind == SectionKind.TYPE:\n        eof_code.sections.append(\n            Section(\n                kind=SectionKind.TYPE,\n                data=\"0x00800001\",\n                custom_size=section_size,\n            ),\n        )\n\n    if section_size != SectionSize.NORMAL and section_kind == SectionKind.CODE:\n        eof_code.sections.append(\n            Section.Code(\n                code=Op.ADDRESS + Op.POP + Op.EOFCREATE[0](0, 0, 0, 0) + Op.STOP,\n                custom_size=section_size,\n            )\n        )\n    else:\n        eof_code.sections.append(\n            Section.Code(\n                code=Op.ADDRESS + Op.POP + Op.EOFCREATE[0](0, 0, 0, 0) + Op.STOP,\n            )\n        )\n\n    if section_size != SectionSize.NORMAL and section_kind == SectionKind.CONTAINER:\n        eof_code.sections.append(\n            Section.Container(\n                container=Container(\n                    sections=[\n                        Section.Code(Op.RETURNCODE[0](0, 0)),\n                        Section.Container(container=Container(sections=[Section.Code(Op.STOP)])),\n                    ]\n                ),\n                custom_size=section_size,\n            )\n        )\n    else:\n        eof_code.sections.append(\n            Section.Container(\n                container=Container(\n                    sections=[\n                        Section.Code(Op.RETURNCODE[0](0, 0)),\n                        Section.Container(container=Container(sections=[Section.Code(Op.STOP)])),\n                    ]\n                ),\n            )\n        )\n\n    if section_size != SectionSize.NORMAL and section_kind == SectionKind.DATA:\n        eof_code.sections.append(Section.Data(\"0x00daaa\", custom_size=section_size))\n    else:\n        eof_code.sections.append(Section.Data(\"0x00aaaa\"))\n    eof_test(\n        container=eof_code,\n        expect_exception=exception,\n    )\n\n\n@pytest.mark.parametrize(\n    \"truncation_len, exception\",\n    [\n        # The original container is not valid by itself because its 2-byte code\n        # section starts with the terminating instruction: INVALID.\n        pytest.param(0, EOFException.UNREACHABLE_INSTRUCTIONS),\n        pytest.param(1, EOFException.INVALID_SECTION_BODIES_SIZE, id=\"EOF1_truncated_section_2\"),\n        pytest.param(3, EOFException.INVALID_SECTION_BODIES_SIZE, id=\"EOF1_truncated_section_1\"),\n        pytest.param(6, EOFException.INVALID_SECTION_BODIES_SIZE, id=\"EOF1_truncated_section_0\"),\n    ],\n)\ndef test_truncated_container_without_data(\n    eof_test: EOFTestFiller,\n    truncation_len: int,\n    exception: EOFException,\n) -> None:\n    \"\"\"\n    Test takes a semi-valid container and removes some bytes from its tail.\n    Migrated from EOFTests/efValidation/EOF1_truncated_section_.json (cases\n    without data section).\n    \"\"\"\n    container = Container(sections=[Section.Code(Op.INVALID + Op.INVALID)])\n    bytecode = bytes(container)\n    eof_test(\n        container=Container(raw_bytes=bytecode[: len(bytecode) - truncation_len]),\n        expect_exception=exception,\n    )\n\n\n@pytest.mark.parametrize(\n    \"truncation_len, exception\",\n    [\n        pytest.param(0, None),\n        pytest.param(1, EOFException.TOPLEVEL_CONTAINER_TRUNCATED, id=\"EOF1_truncated_section_4\"),\n        pytest.param(2, EOFException.TOPLEVEL_CONTAINER_TRUNCATED, id=\"EOF1_truncated_section_3\"),\n    ],\n)\ndef test_truncated_container_with_data(\n    eof_test: EOFTestFiller,\n    truncation_len: int,\n    exception: EOFException,\n) -> None:\n    \"\"\"\n    Test takes a valid container with data and removes some bytes from its\n    tail. Migrated from EOFTests/efValidation/EOF1_truncated_section_.json\n    (cases with data section).\n    \"\"\"\n    data = b\"\\xaa\\xbb\"\n    container = Container(\n        sections=[\n            Section.Code(Op.INVALID),\n            Section.Data(data[0 : (len(data) - truncation_len)], custom_size=2),\n        ]\n    )\n    eof_test(\n        container=container,\n        expect_exception=exception,\n    )\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/__init__.py",
    "content": "\"\"\"\nTest cases for [EIP-4200: EOF - Static relative jumps](https://eips.ethereum.org/EIPS/eip-4200).\n\nEIP-4200 replaces dynamic jump instructions with relative jump offsets for\nimproved control flow predictability. Opcodes introduced: `RJUMP` (`0xE0`),\n`RJUMPI` (`0xE1`), `RJUMPV` (`0xE2`).\n\"\"\"\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/helpers.py",
    "content": "\"\"\"EOF RJump tests helpers.\"\"\"\n\nimport itertools\nfrom enum import Enum\n\n\"\"\"Storage addresses for common testing fields\"\"\"\n_slot = itertools.count()\nnext(_slot)  # don't use slot 0\nslot_code_worked = next(_slot)\nslot_conditional_result = next(_slot)\nslot_last_slot = next(_slot)\n\n\"\"\"Storage values for common testing fields\"\"\"\nvalue_code_worked = 0x2015\nvalue_calldata_true = 10\nvalue_calldata_false = 11\n\n\nclass JumpDirection(Enum):\n    \"\"\"Enum for the direction of the jump.\"\"\"\n\n    FORWARD = 1\n    BACKWARD = -1\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjump.py",
    "content": "\"\"\"EOF JUMPF tests covering stack and code validation rules.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_tools import Account, EOFException, EOFStateTestFiller, EOFTestFiller\nfrom ethereum_test_types.eof.v1 import Container, Section\nfrom ethereum_test_types.eof.v1.constants import MAX_BYTECODE_SIZE\nfrom ethereum_test_vm import Bytecode\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .. import EOF_FORK_NAME\nfrom .helpers import JumpDirection, slot_code_worked, value_code_worked\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-4200.md\"\nREFERENCE_SPEC_VERSION = \"17d4a8d12d2b5e0f2985c866376c16c8c6df7cba\"\n\npytestmark = pytest.mark.valid_from(EOF_FORK_NAME)\n\nRJUMP_LEN = len(Op.RJUMP[0])\n\n\ndef test_rjump_negative(\n    eof_state_test: EOFStateTestFiller,\n) -> None:\n    \"\"\"Test for a forward RJUMPI and backward RJUMP.\"\"\"\n    eof_state_test(\n        container=Container.Code(\n            Op.PUSH1[1]\n            + Op.RJUMPI[7]  # RJUMP cannot be used because of the backward jump restriction\n            + Op.SSTORE(slot_code_worked, Op.MLOAD(0))\n            + Op.STOP\n            + Op.MSTORE(0, value_code_worked)\n            + Op.RJUMP[-16]\n        ),\n        container_post=Account(storage={slot_code_worked: value_code_worked}),\n    )\n\n\ndef test_rjump_positive_negative(\n    eof_state_test: EOFStateTestFiller,\n) -> None:\n    \"\"\"\n    EOF1V4200_0001 (Valid) EOF code containing RJUMP (Positive, Negative).\n    \"\"\"\n    eof_state_test(\n        container=Container.Code(\n            Op.PUSH0\n            + Op.RJUMPI[3]\n            + Op.RJUMP[7]\n            + Op.SSTORE(slot_code_worked, value_code_worked)\n            + Op.STOP\n            + Op.RJUMP[-10],\n        ),\n        container_post=Account(storage={slot_code_worked: value_code_worked}),\n    )\n\n\ndef test_rjump_zero(\n    eof_state_test: EOFStateTestFiller,\n) -> None:\n    \"\"\"EOF1V4200_0002 (Valid) EOF code containing RJUMP (Zero).\"\"\"\n    eof_state_test(\n        container=Container.Code(\n            Op.RJUMP[0] + Op.SSTORE(slot_code_worked, value_code_worked) + Op.STOP,\n        ),\n        container_post=Account(storage={slot_code_worked: value_code_worked}),\n    )\n\n\ndef test_rjump_maxes(\n    eof_state_test: EOFStateTestFiller,\n) -> None:\n    \"\"\"\n    EOF1V4200_0003 EOF with RJUMP containing the max positive and negative\n    offset (32767).\n    \"\"\"\n    eof_state_test(\n        container=Container.Code(\n            Op.PUSH0\n            + Op.RJUMPI[RJUMP_LEN]  # The push/jumpi is to allow the NOOPs to be forward referenced\n            + Op.RJUMP[0x7FFF]\n            + Op.NOOP * (0x7FFF - 7)\n            + Op.SSTORE(slot_code_worked, value_code_worked)\n            + Op.STOP\n            + Op.RJUMP[0x8000],\n        ),\n        container_post=Account(storage={slot_code_worked: value_code_worked}),\n    )\n\n\ndef test_rjump_max_bytecode_size(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"\n    EOF1V4200_0003 EOF with RJUMP containing the maximum offset that does not\n    exceed the maximum bytecode size.\n    \"\"\"\n    noop_count = MAX_BYTECODE_SIZE - 27\n    code = (\n        Op.RJUMPI[RJUMP_LEN](Op.ORIGIN)  # The jumpi is to allow the NOOPs to be forward referenced\n        + Op.RJUMP[len(Op.NOOP) * noop_count]\n        + (Op.NOOP * noop_count)\n        + Op.STOP\n    )\n    container = Container.Code(code)\n    assert len(container) == MAX_BYTECODE_SIZE\n    eof_test(container=container)\n\n\ndef test_rjump_truncated_rjump(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"EOF1I4200_0001 (Invalid) EOF code containing truncated RJUMP.\"\"\"\n    eof_test(\n        container=Container.Code(Op.RJUMP),\n        expect_exception=EOFException.TRUNCATED_INSTRUCTION,\n    )\n\n\ndef test_rjump_truncated_rjump_2(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"EOF1I4200_0002 (Invalid) EOF code containing truncated RJUMP.\"\"\"\n    eof_test(\n        container=Container.Code(Op.RJUMP + b\"\\x00\"),\n        expect_exception=EOFException.TRUNCATED_INSTRUCTION,\n    )\n\n\n@pytest.mark.parametrize(\"offset\", [-5, -13])\ndef test_rjump_into_header(\n    eof_test: EOFTestFiller,\n    offset: int,\n) -> None:\n    \"\"\"\n    EOF1I4200_0003 (Invalid) EOF code containing RJUMP with target outside code\n    bounds (Jumping into header).\n    \"\"\"\n    eof_test(\n        container=Container.Code(Op.RJUMP[offset]),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\ndef test_rjump_before_header(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"\n    EOF1I4200_0004 (Invalid) EOF code containing RJUMP with target outside code\n    bounds (Jumping before code begin).\n    \"\"\"\n    eof_test(\n        container=Container.Code(Op.RJUMP[-23]),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\ndef test_rjump_into_data(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"\n    EOF1I4200_0005 (Invalid) EOF code containing RJUMP with target outside code\n    bounds (Jumping into data section).\n    \"\"\"\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(Op.RJUMP[2]),\n                Section.Data(data=b\"\\xaa\\xbb\\xcc\"),\n            ],\n        ),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\ndef test_rjump_outside_other_section_before(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"\n    EOF code containing RJUMP with target outside code bounds (prior code\n    section).\n    \"\"\"\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(code=Op.JUMPF[1]),\n                Section.Code(code=Op.RJUMP[-6]),\n            ],\n        ),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\ndef test_rjump_outside_other_section_after(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"\n    EOF code containing RJUMP with target outside code bounds (Subsequent code\n    section).\n    \"\"\"\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(code=Op.JUMPF[1]),\n                Section.Code(code=Op.RJUMP[3] + Op.JUMPF[2]),\n                Section.Code(code=Op.STOP),\n            ],\n        ),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\ndef test_rjump_after_container(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"\n    EOF1I4200_0006 (Invalid) EOF code containing RJUMP with target outside code\n    bounds (Jumping after code end).\n    \"\"\"\n    eof_test(\n        container=Container.Code(Op.RJUMP[2]),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\ndef test_rjump_to_code_end(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"\n    EOF1I4200_0007 (Invalid) EOF code containing RJUMP with target outside code\n    bounds (Jumping to code end).\n    \"\"\"\n    eof_test(\n        container=Container.Code(Op.RJUMP[1] + Op.STOP),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\n@pytest.mark.parametrize(\"offset\", range(1, Op.RJUMP.data_portion_length + 1))\ndef test_rjump_into_self_data_portion(\n    eof_test: EOFTestFiller,\n    offset: int,\n) -> None:\n    \"\"\"\n    EOF1I4200_0008 (Invalid) EOF code containing RJUMP with target self RJUMP\n    immediate.\n    \"\"\"\n    eof_test(\n        container=Container.Code(Op.RJUMP[-offset] + Op.STOP),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\ndef test_rjump_into_self_remaining_code(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"\n    EOF1I4200_0008 (Invalid) EOF code containing RJUMP with target self RJUMP\n    but remaining unreachable code.\n    \"\"\"\n    eof_test(\n        container=Container.Code(Op.RJUMP[-len(Op.RJUMP[0])] + Op.STOP),\n        expect_exception=EOFException.UNREACHABLE_INSTRUCTIONS,\n    )\n\n\n@pytest.mark.parametrize(\"stack_height_spread\", [-1, 0, 1, 2])\ndef test_rjump_into_self(\n    eof_test: EOFTestFiller,\n    stack_height_spread: int,\n) -> None:\n    \"\"\"EOF code containing RJUMP with target self RJUMP.\"\"\"\n    # Create variadic stack height by the parametrized spread.\n    stack_spread_code = Bytecode()\n    if stack_height_spread >= 0:\n        stack_spread_code = Op.RJUMPI[stack_height_spread](0) + Op.PUSH0 * stack_height_spread\n\n    eof_test(\n        container=Container.Code(stack_spread_code + Op.RJUMP[-len(Op.RJUMP[0])]),\n    )\n\n\ndef test_rjump_into_self_pre_code(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"\n    EOF code containing RJUMP with target self RJUMP with non-zero stack before\n    RJUMP.\n    \"\"\"\n    eof_test(\n        container=Container.Code(Op.PUSH1[0] + Op.RJUMP[-len(Op.RJUMP[0])]),\n    )\n\n\n@pytest.mark.parametrize(\n    \"container\",\n    [\n        Container(\n            name=\"forwards_rjump_0\",\n            sections=[\n                Section.Code(\n                    code=Op.RJUMP[0] + Op.STOP,\n                    max_stack_increase=0,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010004ff00000000800000e0000000\",\n        ),\n        Container(\n            name=\"forwards_rjump_1\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 + Op.PUSH1[0] + Op.RJUMPI[3] + Op.RJUMP[1] + Op.NOT + Op.STOP,\n                    max_stack_increase=2,\n                ),\n            ],\n            expected_bytecode=\"ef0001010004020001000bff000000008000025f6000e10003e000011900\",\n        ),\n        Container(\n            name=\"forwards_rjump_2\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[8]\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[6]\n                    + Op.RJUMP[4]\n                    + Op.RJUMP[1]\n                    + Op.NOT\n                    + Op.STOP,\n                    max_stack_increase=2,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010013ff000000008000025f6000e100086000e10006e00004e000011900\",\n        ),\n        Container(\n            name=\"forwards_rjump_3\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 + Op.PUSH1[0] + Op.RJUMPI[3] + Op.RJUMP[1] + Op.PUSH0 + Op.STOP,\n                    max_stack_increase=2,\n                ),\n            ],\n            expected_bytecode=\"ef0001010004020001000bff000000008000025f6000e10003e000015f00\",\n        ),\n        Container(\n            name=\"forwards_rjump_4\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[8]\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[7]\n                    + Op.RJUMP[5]\n                    + Op.PUSH0\n                    + Op.RJUMP[1]\n                    + Op.NOT\n                    + Op.STOP,\n                    max_stack_increase=2,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010014ff000000008000025f6000e100086000e10007e000055fe000011900\",\n        ),\n        Container(\n            name=\"forwards_rjump_variable_stack_0\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.RJUMP[0]\n                    + Op.STOP,\n                    max_stack_increase=3,\n                ),\n            ],\n            expected_bytecode=\"ef0001010004020001000cff000000008000035f6000e100025f5fe0000000\",\n        ),\n        Container(\n            name=\"forwards_rjump_variable_stack_1\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[3]\n                    + Op.RJUMP[1]\n                    + Op.NOT\n                    + Op.STOP,\n                    max_stack_increase=5,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010013ff000000008000055f6000e100025f5f5f6000e10003e000011900\",\n        ),\n        Container(\n            name=\"forwards_rjump_variable_stack_2\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[8]\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[6]\n                    + Op.RJUMP[4]\n                    + Op.RJUMP[1]\n                    + Op.NOT\n                    + Op.STOP,\n                    max_stack_increase=5,\n                ),\n            ],\n            expected_bytecode=\"ef0001010004020001001bff000000008000055f6000e100025f5f5f6000e100086000e10006e00004e000011900\",\n        ),\n        Container(\n            name=\"forwards_rjump_variable_stack_3\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[3]\n                    + Op.RJUMP[1]\n                    + Op.PUSH0\n                    + Op.STOP,\n                    max_stack_increase=5,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010013ff000000008000055f6000e100025f5f5f6000e10003e000015f00\",\n        ),\n        Container(\n            name=\"forwards_rjump_variable_stack_4\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[8]\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[7]\n                    + Op.RJUMP[5]\n                    + Op.PUSH0\n                    + Op.RJUMP[1]\n                    + Op.NOT\n                    + Op.STOP,\n                    max_stack_increase=4,\n                ),\n            ],\n            expected_bytecode=\"ef0001010004020001001bff000000008000045f6000e100025f5f6000e100086000e10007e000055fe000011900\",\n        ),\n    ],\n    ids=lambda x: x.name,\n)\ndef test_rjump_valid_forward(\n    eof_test: EOFTestFiller,\n    container: Container,\n) -> None:\n    \"\"\"\n    Validate a valid code section containing at least one forward RJUMP. These\n    tests exercise the stack height validation.\n    \"\"\"\n    eof_test(container=container)\n\n\n@pytest.mark.parametrize(\n    \"container\",\n    [\n        Container(\n            name=\"backwards_rjump_1\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 + Op.POP + Op.RJUMP[-5],\n                    max_stack_increase=1,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010005ff000000008000015f50e0fffb\",\n        ),\n        Container(\n            name=\"backwards_rjump_2\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.POP\n                    + Op.PUSH1[1]\n                    + Op.RJUMPI[3]\n                    + Op.RJUMP[-8]\n                    + Op.RJUMP[-11],\n                    max_stack_increase=1,\n                ),\n            ],\n            expected_bytecode=\"ef0001010004020001000dff000000008000015f506001e10003e0fff8e0fff5\",\n        ),\n        Container(\n            name=\"backwards_rjump_variable_stack_0\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.RJUMP[-3],\n                    max_stack_increase=3,\n                ),\n            ],\n            expected_bytecode=\"ef0001010004020001000bff000000008000035f6000e100025f5fe0fffd\",\n        ),\n        Container(\n            name=\"backwards_rjump_variable_stack_1\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.POP\n                    + Op.RJUMP[-5],\n                    max_stack_increase=4,\n                ),\n            ],\n            expected_bytecode=\"ef0001010004020001000dff000000008000045f6000e100025f5f5f50e0fffb\",\n        ),\n        Container(\n            name=\"backwards_rjump_variable_stack_2\",\n            sections=[\n                Section.Code(\n                    code=(\n                        Op.PUSH0\n                        + Op.PUSH1[0]\n                        + Op.RJUMPI[2]\n                        + Op.PUSH0\n                        + Op.PUSH0\n                        + Op.PUSH0\n                        + Op.POP\n                        + Op.PUSH1[1]\n                        + Op.RJUMPI[3]\n                        + Op.RJUMP[-8]\n                        + Op.RJUMP[-11]\n                    ),\n                    max_stack_increase=4,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010015ff000000008000045f6000e100025f5f5f506001e10003e0fff8e0fff5\",\n        ),\n    ],\n    ids=lambda x: x.name,\n)\ndef test_rjump_valid_backward(\n    eof_test: EOFTestFiller,\n    container: Container,\n) -> None:\n    \"\"\"\n    Validate a valid code section containing at least one backward RJUMP. These\n    tests exercise the stack height validation.\n    \"\"\"\n    eof_test(container=container)\n\n\ndef test_rjump_into_stack_height_diff(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"\n    EOF code containing RJUMP with target instruction that causes stack height\n    difference.\n    \"\"\"\n    eof_test(\n        container=Container.Code(Op.PUSH1[0] + Op.RJUMP[-(len(Op.RJUMP[0]) + len(Op.PUSH1[0]))]),\n        expect_exception=EOFException.STACK_HEIGHT_MISMATCH,\n    )\n\n\ndef test_rjump_into_stack_height_diff_2(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"\n    EOF code containing RJUMP with target instruction that cause stack height\n    difference.\n    \"\"\"\n    eof_test(\n        container=Container.Code(\n            Op.PUSH1[0] + Op.POP + Op.RJUMP[-(len(Op.RJUMP[0]) + len(Op.POP))]\n        ),\n        expect_exception=EOFException.STACK_HEIGHT_MISMATCH,\n    )\n\n\n@pytest.mark.parametrize(\n    \"container\",\n    [\n        Container(\n            name=\"backwards_rjump_3\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.POP\n                    + Op.PUSH1[1]\n                    + Op.RJUMPI[3]\n                    + Op.RJUMP[-8]\n                    + Op.PUSH0\n                    + Op.RJUMP[-12],\n                    max_stack_increase=1,\n                ),\n            ],\n            expected_bytecode=\"ef0001010004020001000eff000000008000015f506001e10003e0fff85fe0fff4\",\n        ),\n        Container(\n            name=\"backwards_rjump_4\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 + Op.RJUMP[-4],\n                    max_stack_increase=1,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010004ff000000008000015fe0fffc\",\n        ),\n        Container(\n            name=\"backwards_rjump_5\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 + Op.POP + Op.RJUMP[-4],\n                    max_stack_increase=1,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010005ff000000008000015f50e0fffc\",\n        ),\n        Container(\n            name=\"backwards_rjump_8\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.POP\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[-7]\n                    + Op.PUSH0\n                    + Op.RJUMP[-11],\n                    max_stack_increase=1,\n                ),\n            ],\n            expected_bytecode=\"ef0001010004020001000bff000000008000015f506000e1fff95fe0fff5\",\n        ),\n        Container(\n            name=\"backwards_rjump_variable_stack_3\",\n            sections=[\n                Section.Code(\n                    code=(\n                        Op.PUSH0\n                        + Op.PUSH1[0]\n                        + Op.RJUMPI[2]\n                        + Op.PUSH0\n                        + Op.PUSH0\n                        + Op.PUSH0\n                        + Op.POP\n                        + Op.PUSH1[1]\n                        + Op.RJUMPI[3]\n                        + Op.RJUMP[-8]\n                        + Op.PUSH0\n                        + Op.RJUMP[-12]\n                    ),\n                    max_stack_increase=4,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010016ff000000008000045f6000e100025f5f5f506001e10003e0fff85fe0fff4\",\n        ),\n        Container(\n            name=\"backwards_rjump_variable_stack_4\",\n            sections=[\n                Section.Code(\n                    code=(\n                        Op.PUSH0\n                        + Op.PUSH1[0]\n                        + Op.RJUMPI[2]\n                        + Op.PUSH0\n                        + Op.PUSH0\n                        + Op.PUSH1[0]\n                        + Op.RJUMPI[1]\n                        + Op.PUSH0\n                        + Op.RJUMP[-7]\n                    ),\n                    max_stack_increase=4,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010011ff000000008000045f6000e100025f5f6000e100015fe0fff9\",\n        ),\n        Container(\n            name=\"backwards_rjump_variable_stack_5\",\n            sections=[\n                Section.Code(\n                    code=(\n                        Op.PUSH0\n                        + Op.PUSH1[0]\n                        + Op.RJUMPI[2]\n                        + Op.PUSH0\n                        + Op.PUSH0\n                        + Op.PUSH1[0]\n                        + Op.RJUMPI[1]\n                        + Op.POP\n                        + Op.RJUMP[-7]\n                    ),\n                    max_stack_increase=4,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010011ff000000008000045f6000e100025f5f6000e1000150e0fff9\",\n        ),\n        Container(\n            name=\"backwards_rjump_variable_stack_6\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.RJUMP[-4],\n                    max_stack_increase=4,\n                ),\n            ],\n            expected_bytecode=\"ef0001010004020001000cff000000008000045f6000e100025f5f5fe0fffc\",\n        ),\n        Container(\n            name=\"backwards_rjump_variable_stack_7\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.POP\n                    + Op.RJUMP[-4],\n                    max_stack_increase=3,\n                ),\n            ],\n            expected_bytecode=\"ef0001010004020001000dff000000008000035f6000e100025f5f5f50e0fffc\",\n        ),\n        Container(\n            name=\"backwards_rjump_variable_stack_8\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.POP\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[-7]\n                    + Op.PUSH0\n                    + Op.RJUMP[-11],\n                    max_stack_increase=4,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010013ff000000008000045f6000e100025f5f5f506000e1fff95fe0fff5\",\n        ),\n    ],\n    ids=lambda x: x.name,\n)\ndef test_rjump_backward_invalid_max_stack_height(\n    eof_test: EOFTestFiller,\n    container: Container,\n) -> None:\n    \"\"\"\n    Validate a code section containing at least one backward RJUMP invalid\n    because of the incorrect max stack height.\n    \"\"\"\n    eof_test(container=container, expect_exception=EOFException.STACK_HEIGHT_MISMATCH)\n\n\ndef test_rjump_into_stack_underflow(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"\n    EOF code containing RJUMP with target instruction that cause stack\n    underflow.\n    \"\"\"\n    eof_test(\n        container=Container.Code(\n            Op.ORIGIN\n            + Op.RJUMPI[len(Op.RJUMP[0])]\n            + Op.RJUMP[len(Op.STOP)]\n            + Op.STOP\n            + Op.POP\n            + Op.STOP\n        ),\n        expect_exception=EOFException.STACK_UNDERFLOW,\n    )\n\n\ndef test_rjump_into_rjump(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"\n    EOF1I4200_0009 (Invalid) EOF code containing RJUMP with target other RJUMP\n    immediate.\n    \"\"\"\n    eof_test(\n        container=Container.Code(Op.RJUMP[1] + Op.RJUMP[0]),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\ndef test_rjump_into_rjumpi(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"\n    EOF1I4200_0010 (Invalid) EOF code containing RJUMP with target RJUMPI\n    immediate.\n    \"\"\"\n    eof_test(\n        container=Container.Code(Op.RJUMP[5] + Op.STOP + Op.PUSH1[1] + Op.RJUMPI[-6] + Op.STOP),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\n@pytest.mark.parametrize(\"jump\", [JumpDirection.FORWARD, JumpDirection.BACKWARD])\ndef test_rjump_into_push_1(eof_test: EOFTestFiller, jump: JumpDirection) -> None:\n    \"\"\"\n    EOF1I4200_0011 (Invalid) EOF code containing RJUMP with target PUSH1\n    immediate.\n    \"\"\"\n    code = (\n        Op.PUSH1[1] + Op.RJUMP[-4] if jump == JumpDirection.BACKWARD else Op.RJUMP[1] + Op.PUSH1[1]\n    ) + Op.STOP\n    eof_test(\n        container=Container.Code(code),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\n@pytest.mark.parametrize(\n    \"opcode\",\n    [\n        Op.PUSH2,\n        Op.PUSH3,\n        Op.PUSH4,\n        Op.PUSH5,\n        Op.PUSH6,\n        Op.PUSH7,\n        Op.PUSH8,\n        Op.PUSH9,\n        Op.PUSH10,\n        Op.PUSH11,\n        Op.PUSH12,\n        Op.PUSH13,\n        Op.PUSH14,\n        Op.PUSH15,\n        Op.PUSH16,\n        Op.PUSH17,\n        Op.PUSH18,\n        Op.PUSH19,\n        Op.PUSH20,\n        Op.PUSH21,\n        Op.PUSH22,\n        Op.PUSH23,\n        Op.PUSH24,\n        Op.PUSH25,\n        Op.PUSH26,\n        Op.PUSH27,\n        Op.PUSH28,\n        Op.PUSH29,\n        Op.PUSH30,\n        Op.PUSH31,\n        Op.PUSH32,\n    ],\n)\n@pytest.mark.parametrize(\"jump\", [JumpDirection.FORWARD, JumpDirection.BACKWARD])\n@pytest.mark.parametrize(\n    \"data_portion_end\",\n    [True, False],\n    ids=[\"data_portion_end\", \"data_portion_start\"],\n)\ndef test_rjump_into_push_n(\n    eof_test: EOFTestFiller,\n    opcode: Op,\n    jump: JumpDirection,\n    data_portion_end: bool,\n) -> None:\n    \"\"\"\n    EOF1I4200_0011 (Invalid) EOF code containing RJUMP with target PUSH2+\n    immediate.\n    \"\"\"\n    data_portion_length = int.from_bytes(opcode, byteorder=\"big\") - 0x5F\n    if jump == JumpDirection.FORWARD:\n        offset = data_portion_length if data_portion_end else 1\n        code = Op.RJUMP[offset] + opcode[0] + Op.STOP\n    else:\n        offset = -4 if data_portion_end else -4 - data_portion_length + 1\n        code = opcode[0] + Op.RJUMP[offset]\n    eof_test(\n        container=Container.Code(code),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\n@pytest.mark.parametrize(\"target_rjumpv_table_size\", [1, 256])\n@pytest.mark.parametrize(\n    \"data_portion_end\",\n    [True, False],\n    ids=[\"data_portion_end\", \"data_portion_start\"],\n)\ndef test_rjump_into_rjumpv(\n    eof_test: EOFTestFiller,\n    target_rjumpv_table_size: int,\n    data_portion_end: bool,\n) -> None:\n    \"\"\"\n    EOF1I4200_0012 (Invalid) EOF code containing RJUMP with target RJUMPV\n    immediate.\n    \"\"\"\n    invalid_destination = 4 + (2 * target_rjumpv_table_size) if data_portion_end else 4\n    target_jump_table = [0 for _ in range(target_rjumpv_table_size)]\n    eof_test(\n        container=Container.Code(\n            Op.RJUMP[invalid_destination]\n            + Op.STOP\n            + Op.PUSH1[1]\n            + Op.RJUMPV[target_jump_table]\n            + Op.STOP,\n        ),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\n@pytest.mark.parametrize(\n    \"data_portion_end\",\n    [True, False],\n    ids=[\"data_portion_end\", \"data_portion_start\"],\n)\ndef test_rjump_into_callf(\n    eof_test: EOFTestFiller,\n    data_portion_end: bool,\n) -> None:\n    \"\"\"\n    EOF1I4200_0013 (Invalid) EOF code containing RJUMP with target CALLF\n    immediate.\n    \"\"\"\n    invalid_destination = 2 if data_portion_end else 1\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.RJUMP[invalid_destination] + Op.CALLF[1] + Op.STOP,\n                ),\n                Section.Code(\n                    code=Op.SSTORE(1, 1) + Op.RETF,\n                    code_outputs=0,\n                ),\n            ],\n        ),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\ndef test_rjump_into_dupn(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"EOF code containing RJUMP with target DUPN immediate.\"\"\"\n    eof_test(\n        container=Container.Code(\n            Op.PUSH1[1] + Op.PUSH1[1] + Op.RJUMP[1] + Op.DUPN[1] + Op.SSTORE + Op.STOP,\n        ),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\ndef test_rjump_into_swapn(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"EOF code containing RJUMP with target SWAPN immediate.\"\"\"\n    eof_test(\n        container=Container.Code(\n            Op.PUSH1[1] + Op.PUSH1[1] + Op.RJUMP[1] + Op.SWAPN[1] + Op.SSTORE + Op.STOP,\n        ),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\ndef test_rjump_into_exchange(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"EOF code containing RJUMP with target EXCHANGE immediate.\"\"\"\n    eof_test(\n        container=Container.Code(\n            Op.PUSH1[1]\n            + Op.PUSH1[2]\n            + Op.PUSH1[3]\n            + Op.RJUMP[1]\n            + Op.EXCHANGE[0x00]\n            + Op.SSTORE\n            + Op.STOP,\n        ),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\ndef test_rjump_into_eofcreate(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"EOF code containing RJUMP with target EOFCREATE immediate.\"\"\"\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 * 4 + Op.RJUMP[1] + Op.EOFCREATE[0] + Op.STOP,\n                ),\n                Section.Container(\n                    container=Container(\n                        sections=[\n                            Section.Code(\n                                code=Op.RETURNCODE[0](0, 0),\n                            ),\n                            Section.Container(\n                                container=Container.Code(code=Op.STOP),\n                            ),\n                        ]\n                    )\n                ),\n            ],\n        ),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\ndef test_rjump_into_returncode(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"EOF code containing RJUMP with target RETURNCODE immediate.\"\"\"\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.EOFCREATE[0](0, 0, 0, 0) + Op.STOP,\n                ),\n                Section.Container(\n                    container=Container(\n                        sections=[\n                            Section.Code(\n                                code=Op.PUSH0 * 2 + Op.RJUMP[1] + Op.RETURNCODE[0],\n                            ),\n                            Section.Container(\n                                container=Container.Code(code=Op.STOP),\n                            ),\n                        ]\n                    )\n                ),\n            ],\n        ),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\n@pytest.mark.parametrize(\n    \"unreachable_op\",\n    [Op.STOP, Op.PUSH1[0], Op.PUSH2[0], Op.RJUMP[-3], Op.RJUMP[0], Op.INVALID],\n)\n@pytest.mark.parametrize(\n    \"terminating_op\",\n    [Op.STOP, Op.RJUMP[-3], Op.INVALID],\n)\ndef test_rjump_unreachable_code(\n    eof_test: EOFTestFiller,\n    unreachable_op: Op,\n    terminating_op: Op,\n) -> None:\n    \"\"\"EOF code containing instructions skipped by RJUMP.\"\"\"\n    container = Container.Code(\n        code=(Op.RJUMP[len(unreachable_op)] + unreachable_op + terminating_op)\n    )\n    eof_test(\n        container=container,\n        expect_exception=EOFException.UNREACHABLE_INSTRUCTIONS,\n    )\n\n\ndef test_rjump_backwards_reference_only(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"EOF code containing instructions only reachable by backwards RJUMP.\"\"\"\n    container = Container.Code(\n        code=(Op.RJUMP[RJUMP_LEN] + Op.RJUMP[RJUMP_LEN] + Op.RJUMP[-(2 * RJUMP_LEN)] + Op.STOP)\n    )\n    eof_test(\n        container=container,\n        expect_exception=EOFException.UNREACHABLE_INSTRUCTIONS,\n    )\n\n\ndef test_rjump_backwards_illegal_stack_height(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"Invalid backward jump, found via fuzzing coverage.\"\"\"\n    eof_test(\n        container=Container.Code(\n            code=(\n                Op.PUSH0\n                + Op.RJUMPI[3]\n                + Op.RJUMP(7)\n                + Op.PUSH2[0x2015]\n                + Op.PUSH3[0x015500]\n                + Op.RJUMP[-10]\n            ),\n            max_stack_increase=0x24,\n        ),\n        expect_exception=EOFException.STACK_HEIGHT_MISMATCH,\n    )\n\n\ndef test_rjump_backwards_infinite_loop(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"Validate that a backwards RJUMP as terminal operation is valid.\"\"\"\n    eof_test(\n        container=Container(\n            name=\"backwards_rjump_terminal\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.RJUMPI[3]\n                    + Op.RJUMP[7]\n                    + Op.SSTORE(1, 0x2015)\n                    + Op.STOP\n                    + Op.RJUMP[-10]\n                ),\n                Section.Data(data=\"0xdeadbeef\"),\n            ],\n        ),\n    )\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpi.py",
    "content": "\"\"\"EOF JUMPF tests covering stack and code validation rules.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_tools import (\n    Account,\n    Alloc,\n    Environment,\n    EOFException,\n    EOFStateTestFiller,\n    EOFTestFiller,\n    StateTestFiller,\n    Transaction,\n)\nfrom ethereum_test_types.eof.v1 import Container, Section\nfrom ethereum_test_types.eof.v1.constants import MAX_BYTECODE_SIZE\nfrom ethereum_test_vm import Bytecode\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .. import EOF_FORK_NAME\nfrom .helpers import (\n    JumpDirection,\n    slot_code_worked,\n    slot_conditional_result,\n    value_calldata_false,\n    value_calldata_true,\n    value_code_worked,\n)\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-4200.md\"\nREFERENCE_SPEC_VERSION = \"17d4a8d12d2b5e0f2985c866376c16c8c6df7cba\"\n\npytestmark = pytest.mark.valid_from(EOF_FORK_NAME)\n\nRJUMP_LEN = len(Op.RJUMP[0])\nRJUMPI_LEN = len(Op.RJUMPI[0])\n\n\n@pytest.mark.parametrize(\n    \"calldata\",\n    [pytest.param(b\"\\x00\", id=\"False\"), pytest.param(b\"\\x01\", id=\"True\")],\n)\ndef test_rjumpi_condition_forwards(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    calldata: bytes,\n) -> None:\n    \"\"\"Test RJUMPI contract switching based on external input (forwards).\"\"\"\n    env = Environment()\n    sender = pre.fund_eoa(10**18)\n    contract_address = pre.deploy_contract(\n        code=Container.Code(\n            Op.PUSH1(0)\n            + Op.CALLDATALOAD\n            + Op.RJUMPI[6]\n            + Op.SSTORE(slot_conditional_result, value_calldata_false)\n            + Op.STOP\n            + Op.SSTORE(slot_conditional_result, value_calldata_true)\n            + Op.STOP,\n        )\n    )\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=10_000_000,\n        data=calldata,\n        sender=sender,\n    )\n    post = {\n        contract_address: Account(\n            storage={\n                slot_conditional_result: value_calldata_false\n                if calldata == b\"\\0\"\n                else value_calldata_true\n            }\n        )\n    }\n    state_test(env=env, tx=tx, pre=pre, post=post)\n\n\n@pytest.mark.parametrize(\n    \"calldata\",\n    [pytest.param(b\"\\x00\", id=\"False\"), pytest.param(b\"\\x01\", id=\"True\")],\n)\ndef test_rjumpi_condition_backwards(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    calldata: bytes,\n) -> None:\n    \"\"\"Test RJUMPI contract switching based on external input.\"\"\"\n    env = Environment()\n    sender = pre.fund_eoa(10**18)\n    contract_address = pre.deploy_contract(\n        code=Container.Code(\n            Op.PUSH1(1)\n            + Op.RJUMPI[6]\n            + Op.SSTORE(slot_conditional_result, value_calldata_true)\n            + Op.STOP\n            + Op.PUSH0\n            + Op.CALLDATALOAD\n            + Op.RJUMPI[-11]\n            + Op.SSTORE(slot_conditional_result, value_calldata_false)\n            + Op.STOP,\n        )\n    )\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=10_000_000,\n        data=calldata,\n        sender=sender,\n    )\n    post = {\n        contract_address: Account(\n            storage={\n                slot_conditional_result: value_calldata_false\n                if calldata == b\"\\0\"\n                else value_calldata_true\n            }\n        )\n    }\n    state_test(env=env, tx=tx, pre=pre, post=post)\n\n\n@pytest.mark.parametrize(\n    \"calldata\",\n    [pytest.param(b\"\\x00\", id=\"False\"), pytest.param(b\"\\x01\", id=\"True\")],\n)\ndef test_rjumpi_condition_zero(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    calldata: bytes,\n) -> None:\n    \"\"\"\n    Test RJUMPI contract switching based on external input (condition zero).\n    \"\"\"\n    env = Environment()\n    sender = pre.fund_eoa(10**18)\n    contract_address = pre.deploy_contract(\n        code=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.CALLDATALOAD\n                    + Op.RJUMPI[0]\n                    + Op.SSTORE(slot_code_worked, value_code_worked)\n                    + Op.STOP,\n                )\n            ]\n        ),\n    )\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=10_000_000,\n        data=calldata,\n        sender=sender,\n    )\n    post = {contract_address: Account(storage={slot_code_worked: value_code_worked})}\n    state_test(env=env, tx=tx, pre=pre, post=post)\n\n\ndef test_rjumpi_forwards(\n    eof_state_test: EOFStateTestFiller,\n) -> None:\n    \"\"\"EOF1V4200_0004 (Valid) EOF code containing RJUMPI (Positive).\"\"\"\n    eof_state_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH1(1)\n                    + Op.RJUMPI[3]\n                    + Op.NOOP\n                    + Op.NOOP\n                    + Op.STOP\n                    + Op.SSTORE(slot_code_worked, value_code_worked)\n                    + Op.STOP,\n                )\n            ],\n        ),\n        container_post=Account(storage={slot_code_worked: value_code_worked}),\n    )\n\n\ndef test_rjumpi_backwards(\n    eof_state_test: EOFStateTestFiller,\n) -> None:\n    \"\"\"EOF1V4200_0005 (Valid) EOF code containing RJUMPI (Negative).\"\"\"\n    eof_state_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH1(1)\n                    + Op.RJUMPI[7]\n                    + Op.SSTORE(slot_code_worked, value_code_worked)\n                    + Op.STOP\n                    + Op.PUSH1(1)\n                    + Op.RJUMPI[-12]\n                    + Op.STOP,\n                )\n            ],\n        ),\n        container_post=Account(storage={slot_code_worked: value_code_worked}),\n    )\n\n\ndef test_rjumpi_zero(\n    eof_state_test: EOFStateTestFiller,\n) -> None:\n    \"\"\"EOF1V4200_0006 (Valid) EOF code containing RJUMPI (Zero).\"\"\"\n    eof_state_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH1(1)\n                    + Op.RJUMPI[0]\n                    + Op.SSTORE(slot_code_worked, value_code_worked)\n                    + Op.STOP,\n                )\n            ],\n        ),\n        container_post=Account(storage={slot_code_worked: value_code_worked}),\n    )\n\n\ndef test_rjumpi_max_forward(\n    eof_state_test: EOFStateTestFiller,\n) -> None:\n    \"\"\"\n    EOF1V4200_0007 (Valid) EOF with RJUMPI containing the maximum offset\n    (32767).\n    \"\"\"\n    eof_state_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH1(1)\n                    + Op.RJUMPI[32767]\n                    + Op.NOOP * 32768\n                    + Op.SSTORE(slot_code_worked, value_code_worked)\n                    + Op.STOP,\n                )\n            ],\n        ),\n        container_post=Account(storage={slot_code_worked: value_code_worked}),\n    )\n\n\ndef test_rjumpi_max_backward(\n    eof_state_test: EOFStateTestFiller,\n) -> None:\n    \"\"\"EOF with RJUMPI containing the maximum negative offset (-32768).\"\"\"\n    (\n        eof_state_test(\n            container=Container(\n                sections=[\n                    Section.Code(\n                        code=Op.PUSH0\n                        + Op.RJUMPI[0x7FFF]\n                        + Op.NOOP * (0x7FFF - 7)\n                        + Op.SSTORE(slot_code_worked, value_code_worked)\n                        + Op.STOP\n                        + Op.PUSH0\n                        + Op.RJUMPI[0x8000]\n                        + Op.STOP,\n                    )\n                ],\n            ),\n            container_post=Account(storage={slot_code_worked: value_code_worked}),\n        ),\n    )\n\n\n@pytest.mark.parametrize(\n    \"container\",\n    [\n        Container(\n            name=\"forwards_rjumpi_0\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH1[1] + Op.RJUMPI[0] + Op.STOP,\n                    max_stack_increase=1,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010006ff000000008000016001e1000000\",\n        ),\n        Container(\n            name=\"forwards_rjumpi_1\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 + Op.PUSH1[0] + Op.RJUMPI[1] + Op.NOT + Op.STOP,\n                    max_stack_increase=2,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010008ff000000008000025f6000e100011900\",\n        ),\n        Container(\n            name=\"forwards_rjumpi_10\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[4]\n                    + Op.POP\n                    + Op.RJUMP[1]\n                    + Op.NOT\n                    + Op.STOP,\n                    max_stack_increase=2,\n                ),\n            ],\n            expected_bytecode=\"ef0001010004020001000cff000000008000025f6000e1000450e000011900\",\n        ),\n        Container(\n            name=\"forwards_rjumpi_11\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 + Op.PUSH1[0] + Op.RJUMPI[3] + Op.RJUMP[0] + Op.STOP,\n                    max_stack_increase=2,\n                ),\n            ],\n            expected_bytecode=\"ef0001010004020001000aff000000008000025f6000e10003e0000000\",\n        ),\n        Container(\n            name=\"forwards_rjumpi_12\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 + Op.PUSH1[0] + Op.RJUMPI[4] + Op.PUSH0 + Op.RJUMP[0] + Op.STOP,\n                    max_stack_increase=2,\n                ),\n            ],\n            expected_bytecode=\"ef0001010004020001000bff000000008000025f6000e100045fe0000000\",\n        ),\n        Container(\n            name=\"forwards_rjumpi_2\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[6]\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[1]\n                    + Op.NOT\n                    + Op.STOP,\n                    max_stack_increase=2,\n                ),\n            ],\n            expected_bytecode=\"ef0001010004020001000dff000000008000025f6000e100066000e100011900\",\n        ),\n        Container(\n            name=\"forwards_rjumpi_3\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 + Op.PUSH1[0] + Op.RJUMPI[1] + Op.PUSH0 + Op.STOP,\n                    max_stack_increase=2,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010008ff000000008000025f6000e100015f00\",\n        ),\n        Container(\n            name=\"forwards_rjumpi_4\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[7]\n                    + Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[1]\n                    + Op.NOT\n                    + Op.STOP,\n                    max_stack_increase=3,\n                ),\n            ],\n            expected_bytecode=\"ef0001010004020001000eff000000008000035f6000e100075f6000e100011900\",\n        ),\n        Container(\n            name=\"forwards_rjumpi_5\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[1]\n                    + Op.ADD\n                    + Op.DUP1\n                    + Op.PUSH1[10]\n                    + Op.GT\n                    + Op.RJUMPI[4]\n                    + Op.DUP1\n                    + Op.RJUMPI[-14]\n                    + Op.STOP,\n                    max_stack_increase=3,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010010ff000000008000035f60010180600a11e1000480e1fff200\",\n        ),\n        Container(\n            name=\"forwards_rjumpi_6\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[1]\n                    + Op.ADD\n                    + Op.DUP1\n                    + Op.PUSH1[10]\n                    + Op.GT\n                    + Op.RJUMPI[5]\n                    + Op.PUSH0\n                    + Op.DUP1\n                    + Op.RJUMPI[-13]\n                    + Op.STOP,\n                    max_stack_increase=3,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010011ff000000008000035f60010180600a11e100055f80e1fff300\",\n        ),\n        Container(\n            name=\"forwards_rjumpi_7\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[4]\n                    + Op.PUSH0\n                    + Op.RJUMP[1]\n                    + Op.PUSH0\n                    + Op.STOP,\n                    max_stack_increase=2,\n                ),\n            ],\n            expected_bytecode=\"ef0001010004020001000cff000000008000025f6000e100045fe000015f00\",\n        ),\n        Container(\n            name=\"forwards_rjumpi_8\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[4]\n                    + Op.PUSH0\n                    + Op.RJUMP[1]\n                    + Op.NOT\n                    + Op.STOP,\n                    max_stack_increase=2,\n                ),\n            ],\n            expected_bytecode=\"ef0001010004020001000cff000000008000025f6000e100045fe000011900\",\n        ),\n        Container(\n            name=\"forwards_rjumpi_9\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[4]\n                    + Op.POP\n                    + Op.RJUMP[1]\n                    + Op.POP\n                    + Op.STOP,\n                    max_stack_increase=2,\n                ),\n            ],\n            expected_bytecode=\"ef0001010004020001000cff000000008000025f6000e1000450e000015000\",\n        ),\n        Container(\n            name=\"forwards_rjumpi_variable_stack_0\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH1[1]\n                    + Op.RJUMPI[0]\n                    + Op.STOP,\n                    max_stack_increase=4,\n                ),\n            ],\n            expected_bytecode=\"ef0001010004020001000eff000000008000045f6000e100025f5f6001e1000000\",\n        ),\n        Container(\n            name=\"forwards_rjumpi_variable_stack_1\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[1]\n                    + Op.NOT\n                    + Op.STOP,\n                    max_stack_increase=5,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010010ff000000008000055f6000e100025f5f5f6000e100011900\",\n        ),\n        Container(\n            name=\"forwards_rjumpi_variable_stack_10\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[4]\n                    + Op.POP\n                    + Op.RJUMP[1]\n                    + Op.NOT\n                    + Op.STOP,\n                    max_stack_increase=5,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010014ff000000008000055f6000e100025f5f5f6000e1000450e000011900\",\n        ),\n        Container(\n            name=\"forwards_rjumpi_variable_stack_11\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[3]\n                    + Op.RJUMP[0]\n                    + Op.STOP,\n                    max_stack_increase=5,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010012ff000000008000055f6000e100025f5f5f6000e10003e0000000\",\n        ),\n        Container(\n            name=\"forwards_rjumpi_variable_stack_12\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[4]\n                    + Op.PUSH0\n                    + Op.RJUMP[0]\n                    + Op.STOP,\n                    max_stack_increase=5,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010013ff000000008000055f6000e100025f5f5f6000e100045fe0000000\",\n        ),\n        Container(\n            name=\"forwards_rjumpi_variable_stack_2\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[6]\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[1]\n                    + Op.NOT\n                    + Op.STOP,\n                    max_stack_increase=5,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010015ff000000008000055f6000e100025f5f5f6000e100066000e100011900\",\n        ),\n        Container(\n            name=\"forwards_rjumpi_variable_stack_3\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[1]\n                    + Op.PUSH0\n                    + Op.STOP,\n                    max_stack_increase=5,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010010ff000000008000055f6000e100025f5f5f6000e100015f00\",\n        ),\n        Container(\n            name=\"forwards_rjumpi_variable_stack_4\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[7]\n                    + Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[1]\n                    + Op.NOT\n                    + Op.STOP,\n                    max_stack_increase=6,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010016ff000000008000065f6000e100025f5f5f6000e100075f6000e100011900\",\n        ),\n        Container(\n            name=\"forwards_rjumpi_variable_stack_5\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH1[1]\n                    + Op.ADD\n                    + Op.DUP1\n                    + Op.PUSH1[10]\n                    + Op.GT\n                    + Op.RJUMPI[4]\n                    + Op.DUP1\n                    + Op.RJUMPI[-14]\n                    + Op.STOP,\n                    max_stack_increase=6,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010018ff000000008000065f6000e100025f5f5f60010180600a11e1000480e1fff200\",\n        ),\n        Container(\n            name=\"forwards_rjumpi_variable_stack_6\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH1[1]\n                    + Op.ADD\n                    + Op.DUP1\n                    + Op.PUSH1[10]\n                    + Op.GT\n                    + Op.RJUMPI[5]\n                    + Op.PUSH0\n                    + Op.DUP1\n                    + Op.RJUMPI[-13]\n                    + Op.STOP,\n                    max_stack_increase=6,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010019ff000000008000065f6000e100025f5f5f60010180600a11e100055f80e1fff300\",\n        ),\n        Container(\n            name=\"forwards_rjumpi_variable_stack_7\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[4]\n                    + Op.PUSH0\n                    + Op.RJUMP[1]\n                    + Op.PUSH0\n                    + Op.STOP,\n                    max_stack_increase=5,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010014ff000000008000055f6000e100025f5f5f6000e100045fe000015f00\",\n        ),\n        Container(\n            name=\"forwards_rjumpi_variable_stack_8\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[4]\n                    + Op.PUSH0\n                    + Op.RJUMP[1]\n                    + Op.NOT\n                    + Op.STOP,\n                    max_stack_increase=5,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010014ff000000008000055f6000e100025f5f5f6000e100045fe000011900\",\n        ),\n        Container(\n            name=\"forwards_rjumpi_variable_stack_9\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[4]\n                    + Op.POP\n                    + Op.RJUMP[1]\n                    + Op.POP\n                    + Op.STOP,\n                    max_stack_increase=5,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010014ff000000008000055f6000e100025f5f5f6000e1000450e000015000\",\n        ),\n    ],\n    ids=lambda x: x.name,\n)\ndef test_rjumpi_valid_forward(\n    eof_test: EOFTestFiller,\n    container: Container,\n) -> None:\n    \"\"\"\n    Validate a valid code section containing at least one forward RJUMPI. These\n    tests exercise the stack height validation.\n    \"\"\"\n    eof_test(container=container)\n\n\n@pytest.mark.parametrize(\n    \"container\",\n    [\n        Container(\n            name=\"backwards_rjumpi_0\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH1[0] + Op.RJUMPI[-5] + Op.STOP,\n                    max_stack_increase=1,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010006ff000000008000016000e1fffb00\",\n        ),\n        Container(\n            name=\"backwards_rjumpi_1\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 + Op.POP + Op.PUSH1[0] + Op.RJUMPI[-7] + Op.STOP,\n                    max_stack_increase=1,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010008ff000000008000015f506000e1fff900\",\n        ),\n        Container(\n            name=\"backwards_rjumpi_2\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.POP\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[-7]\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[-12]\n                    + Op.STOP,\n                    max_stack_increase=1,\n                ),\n            ],\n            expected_bytecode=\"ef0001010004020001000dff000000008000015f506000e1fff96000e1fff400\",\n        ),\n        Container(\n            name=\"backwards_rjumpi_4\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 + Op.PUSH1[1] + Op.ADD + Op.DUP1 + Op.RJUMPI[-7] + Op.STOP,\n                    max_stack_increase=2,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010009ff00000000800002 5f60010180e1fff900\",\n        ),\n        Container(\n            name=\"backwards_rjumpi_7\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 + Op.POP + Op.PUSH1[0] + Op.RJUMPI[-7] + Op.RJUMP[-10],\n                    max_stack_increase=1,\n                ),\n            ],\n            expected_bytecode=\"ef0001010004020001000aff000000008000015f506000e1fff9e0fff6\",\n        ),\n        Container(\n            name=\"backwards_rjumpi_variable_stack_0\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[-5]\n                    + Op.STOP,\n                    max_stack_increase=4,\n                ),\n            ],\n            expected_bytecode=\"ef0001010004020001000eff000000008000045f6000e100025f5f6000e1fffb00\",\n        ),\n        Container(\n            name=\"backwards_rjumpi_variable_stack_1\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.POP\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[-7]\n                    + Op.STOP,\n                    max_stack_increase=4,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010010ff000000008000045f6000e100025f5f5f506000e1fff900\",\n        ),\n        Container(\n            name=\"backwards_rjumpi_variable_stack_2\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.POP\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[-7]\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[-12]\n                    + Op.STOP,\n                    max_stack_increase=4,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010015ff000000008000045f6000e100025f5f5f506000e1fff96000e1fff400\",\n        ),\n        Container(\n            name=\"backwards_rjumpi_variable_stack_4\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH1[1]\n                    + Op.ADD\n                    + Op.DUP1\n                    + Op.RJUMPI[-7]\n                    + Op.STOP,\n                    max_stack_increase=5,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010011ff000000008000055f6000e100025f5f5f60010180e1fff900\",\n        ),\n        Container(\n            name=\"backwards_rjumpi_variable_stack_7\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.POP\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[-7]\n                    + Op.RJUMP[-10],\n                    max_stack_increase=4,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010012ff000000008000045f6000e100025f5f5f506000e1fff9e0fff6\",\n        ),\n    ],\n    ids=lambda x: x.name,\n)\ndef test_rjumpi_valid_backward(\n    eof_test: EOFTestFiller,\n    container: Container,\n) -> None:\n    \"\"\"\n    Validate a valid code section containing at least one backward RJUMPI.\n    These tests exercise the stack height validation.\n    \"\"\"\n    eof_test(container=container)\n\n\ndef test_rjumpi_max_bytecode_size(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"\n    EOF1V4200_0003 EOF with RJUMPI containing the maximum offset that does not\n    exceed the maximum bytecode size.\n    \"\"\"\n    noop_count = MAX_BYTECODE_SIZE - 24\n    code = Op.RJUMPI[len(Op.NOOP) * noop_count](Op.ORIGIN) + (Op.NOOP * noop_count) + Op.STOP\n    container = Container.Code(code=code)\n    assert len(container) == MAX_BYTECODE_SIZE\n    eof_test(container=container)\n\n\ndef test_rjumpi_truncated(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"EOF1I4200_0014 (Invalid) EOF code containing truncated RJUMPI.\"\"\"\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH1(0) + Op.RJUMPI,\n                )\n            ],\n        ),\n        expect_exception=EOFException.TRUNCATED_INSTRUCTION,\n    )\n\n\ndef test_rjumpi_truncated_2(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"EOF1I4200_0015 (Invalid) EOF code containing truncated RJUMPI.\"\"\"\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH1(0) + Op.RJUMPI + b\"\\x00\",\n                )\n            ],\n        ),\n        expect_exception=EOFException.TRUNCATED_INSTRUCTION,\n    )\n\n\n@pytest.mark.parametrize(\"offset\", [-7, -15])\ndef test_rjumpi_into_header(\n    eof_test: EOFTestFiller,\n    offset: int,\n) -> None:\n    \"\"\"\n    EOF1I4200_0016 (Invalid) EOF code containing RJUMPI with target outside\n    code bounds (Jumping into header).\n    \"\"\"\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH1(1) + Op.RJUMPI[offset] + Op.STOP,\n                )\n            ],\n        ),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\ndef test_rjumpi_jump_before_header(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"\n    EOF1I4200_0017 (Invalid) EOF code containing RJUMPI with target outside\n    code bounds (Jumping to before code begin).\n    \"\"\"\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH1(1) + Op.RJUMPI[-25] + Op.STOP,\n                )\n            ],\n        ),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\ndef test_rjumpi_into_data(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"\n    EOF1I4200_0018 (Invalid) EOF code containing RJUMPI with target outside\n    code bounds (Jumping into data section).\n    \"\"\"\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH1(1) + Op.RJUMPI[2] + Op.STOP,\n                ),\n                Section.Data(data=b\"\\xaa\\xbb\\xcc\"),\n            ],\n        ),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\ndef test_rjumpi_after_container(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"\n    EOF1I4200_0019 (Invalid) EOF code containing RJUMPI with target outside\n    code bounds (Jumping to after code end).\n    \"\"\"\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH1(1) + Op.RJUMPI[2] + Op.STOP,\n                )\n            ],\n        ),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\ndef test_rjumpi_to_code_end(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"\n    EOF1I4200_0020 (Invalid) EOF code containing RJUMPI with target outside\n    code bounds (Jumping to code end).\n    \"\"\"\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH1(1) + Op.RJUMPI[1] + Op.STOP,\n                ),\n            ],\n        ),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\n@pytest.mark.parametrize(\"offset\", range(1, Op.RJUMP.data_portion_length + 1))\ndef test_rjumpi_into_self_data_portion(\n    eof_test: EOFTestFiller,\n    offset: int,\n) -> None:\n    \"\"\"\n    EOF1I4200_0021 (Invalid) EOF code containing RJUMPI with target same RJUMPI\n    immediate (with offset).\n    \"\"\"\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH1(1) + Op.RJUMPI[-offset] + Op.STOP,\n                )\n            ],\n        ),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\n@pytest.mark.parametrize(\"stack_height_spread\", [-1, 0, 1, 2])\ndef test_rjumpi_into_self(\n    eof_test: EOFTestFiller,\n    stack_height_spread: int,\n) -> None:\n    \"\"\"\n    EOF code containing RJUMPI targeting itself (-3). This can never be valid\n    because this is backward jump and RJUMPI consumes one stack item.\n    \"\"\"\n    # Create variadic stack height by the parametrized spread.\n    stack_spread_code = Bytecode()\n    if stack_height_spread >= 0:\n        stack_spread_code = Op.RJUMPI[stack_height_spread](0) + Op.PUSH0 * stack_height_spread\n\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=stack_spread_code + Op.RJUMPI[-len(Op.RJUMPI[0])](0) + Op.STOP,\n                )\n            ],\n        ),\n        expect_exception=EOFException.STACK_HEIGHT_MISMATCH,\n    )\n\n\ndef test_rjumpi_into_stack_height_diff(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"\n    EOF code containing RJUMPI with target instruction that causes stack height\n    difference.\n    \"\"\"\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH1(0)\n                    + Op.PUSH1(0)\n                    + Op.RJUMPI[-(len(Op.RJUMPI[0]) + len(Op.PUSH1(0)) + len(Op.PUSH1(0)))]\n                    + Op.STOP,\n                ),\n            ],\n        ),\n        expect_exception=EOFException.STACK_HEIGHT_MISMATCH,\n    )\n\n\ndef test_rjumpi_into_stack_underflow(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"\n    EOF code containing RJUMPI with target instruction that cause stack\n    underflow.\n    \"\"\"\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.ORIGIN + Op.RJUMPI[len(Op.STOP)] + Op.STOP + Op.POP + Op.STOP\n                ),\n            ],\n        ),\n        expect_exception=EOFException.STACK_UNDERFLOW,\n    )\n\n\ndef test_rjumpi_skips_stack_underflow(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"\n    EOF code containing RJUMPI where the default path produces a stack\n    underflow.\n    \"\"\"\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(code=Op.ORIGIN + Op.RJUMPI[len(Op.POP)] + Op.POP + Op.STOP),\n            ],\n        ),\n        expect_exception=EOFException.STACK_UNDERFLOW,\n    )\n\n\ndef test_rjumpi_into_rjump(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"\n    EOF1I4200_0023 (Invalid) EOF code containing RJUMPI with target RJUMP\n    immediate.\n    \"\"\"\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH1(1) + Op.RJUMPI[3] + Op.STOP + Op.RJUMP[-9],\n                )\n            ],\n        ),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\ndef test_rjumpi_into_rjumpi(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"\n    EOF1I4200_0022 (Invalid) EOF code containing RJUMPI with target other\n    RJUMPI immediate.\n    \"\"\"\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH1(1)\n                    + Op.RJUMPI[5]\n                    + Op.STOP\n                    + Op.PUSH1(1)\n                    + Op.RJUMPI[-11]\n                    + Op.STOP,\n                )\n            ],\n        ),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\n@pytest.mark.parametrize(\"jump\", [JumpDirection.FORWARD, JumpDirection.BACKWARD])\ndef test_rjumpi_into_push_1(\n    eof_test: EOFTestFiller,\n    jump: JumpDirection,\n) -> None:\n    \"\"\"\n    EOF1I4200_0024 (Invalid) EOF code containing RJUMPI with target PUSH1\n    immediate.\n    \"\"\"\n    code = (\n        Op.PUSH1[1] + Op.RJUMPI[-4]\n        if jump == JumpDirection.BACKWARD\n        else Op.PUSH1[1] + Op.RJUMPI[1] + Op.PUSH1[1] + Op.POP\n    ) + Op.STOP\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(code=code),\n            ],\n        ),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\n@pytest.mark.parametrize(\n    \"opcode\",\n    [\n        Op.PUSH2,\n        Op.PUSH3,\n        Op.PUSH4,\n        Op.PUSH5,\n        Op.PUSH6,\n        Op.PUSH7,\n        Op.PUSH8,\n        Op.PUSH9,\n        Op.PUSH10,\n        Op.PUSH11,\n        Op.PUSH12,\n        Op.PUSH13,\n        Op.PUSH14,\n        Op.PUSH15,\n        Op.PUSH16,\n        Op.PUSH17,\n        Op.PUSH18,\n        Op.PUSH19,\n        Op.PUSH20,\n        Op.PUSH21,\n        Op.PUSH22,\n        Op.PUSH23,\n        Op.PUSH24,\n        Op.PUSH25,\n        Op.PUSH26,\n        Op.PUSH27,\n        Op.PUSH28,\n        Op.PUSH29,\n        Op.PUSH30,\n        Op.PUSH31,\n        Op.PUSH32,\n    ],\n)\n@pytest.mark.parametrize(\"jump\", [JumpDirection.FORWARD, JumpDirection.BACKWARD])\n@pytest.mark.parametrize(\n    \"data_portion_end\",\n    [True, False],\n    ids=[\"data_portion_end\", \"data_portion_start\"],\n)\ndef test_rjumpi_into_push_n(\n    eof_test: EOFTestFiller,\n    opcode: Op,\n    jump: JumpDirection,\n    data_portion_end: bool,\n) -> None:\n    \"\"\"\n    EOF1I4200_0024 (Invalid) EOF code containing RJUMPI with target PUSH2+\n    immediate.\n    \"\"\"\n    data_portion_length = int.from_bytes(opcode, byteorder=\"big\") - 0x5F\n    if jump == JumpDirection.FORWARD:\n        offset = data_portion_length if data_portion_end else 1\n        code = Op.PUSH1(1) + Op.RJUMPI[offset] + opcode[0] + Op.STOP\n    else:\n        offset = -4 if data_portion_end else -4 - data_portion_length + 1\n        code = opcode[0] + Op.RJUMPI[offset] + Op.STOP\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(code=code),\n            ],\n        ),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\n@pytest.mark.parametrize(\"target_rjumpv_table_size\", [1, 256])\n@pytest.mark.parametrize(\n    \"data_portion_end\",\n    [True, False],\n    ids=[\"data_portion_end\", \"data_portion_start\"],\n)\ndef test_rjumpi_into_rjumpv(\n    eof_test: EOFTestFiller,\n    target_rjumpv_table_size: int,\n    data_portion_end: bool,\n) -> None:\n    \"\"\"\n    EOF1I4200_0025 (Invalid) EOF code containing RJUMPI with target RJUMPV\n    immediate.\n    \"\"\"\n    invalid_destination = 4 + (2 * target_rjumpv_table_size) if data_portion_end else 4\n    target_jump_table = [0 for _ in range(target_rjumpv_table_size)]\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH1(1)\n                    + Op.RJUMPI[invalid_destination]\n                    + Op.STOP\n                    + Op.PUSH1(1)\n                    + Op.RJUMPV[target_jump_table]\n                    + Op.STOP,\n                )\n            ],\n        ),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\n@pytest.mark.parametrize(\n    \"data_portion_end\",\n    [True, False],\n    ids=[\"data_portion_end\", \"data_portion_start\"],\n)\ndef test_rjumpi_into_callf(\n    eof_test: EOFTestFiller,\n    data_portion_end: bool,\n) -> None:\n    \"\"\"\n    EOF1I4200_0026 (Invalid) EOF code containing RJUMPI with target CALLF\n    immediate.\n    \"\"\"\n    invalid_destination = 2 if data_portion_end else 1\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH1(1) + Op.RJUMPI[invalid_destination] + Op.CALLF[1] + Op.STOP,\n                ),\n                Section.Code(\n                    code=Op.SSTORE(1, 1) + Op.RETF,\n                    code_outputs=0,\n                ),\n            ],\n        ),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\ndef test_rjumpi_into_dupn(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"EOF code containing RJUMPI with target DUPN immediate.\"\"\"\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH1(1)\n                    + Op.PUSH1(1)\n                    + Op.PUSH1(1)\n                    + Op.RJUMPI[1]\n                    + Op.DUPN[1]\n                    + Op.SSTORE\n                    + Op.STOP,\n                ),\n            ],\n        ),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\ndef test_rjumpi_into_swapn(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"EOF code containing RJUMPI with target SWAPN immediate.\"\"\"\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH1(1)\n                    + Op.PUSH1(1)\n                    + Op.PUSH1(1)\n                    + Op.RJUMPI[1]\n                    + Op.SWAPN[1]\n                    + Op.SSTORE\n                    + Op.STOP,\n                ),\n            ],\n        ),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\ndef test_rjumpi_into_exchange(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"EOF code containing RJUMPI with target EXCHANGE immediate.\"\"\"\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH1(1)\n                    + Op.PUSH1(2)\n                    + Op.PUSH1(3)\n                    + Op.PUSH1(1)\n                    + Op.RJUMPI[1]\n                    + Op.EXCHANGE[0x00]\n                    + Op.SSTORE\n                    + Op.STOP,\n                ),\n            ],\n        ),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\ndef test_rjumpi_into_eofcreate(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"EOF code containing RJUMPI with target EOFCREATE immediate.\"\"\"\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 * 5 + Op.RJUMPI[1] + Op.EOFCREATE[0] + Op.STOP,\n                ),\n                Section.Container(\n                    container=Container(\n                        sections=[\n                            Section.Code(\n                                code=Op.RETURNCODE[0](0, 0),\n                            ),\n                            Section.Container(\n                                container=Container.Code(code=Op.STOP),\n                            ),\n                        ]\n                    )\n                ),\n            ],\n        ),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\ndef test_rjumpi_into_returncode(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"EOF code containing RJUMPI with target RETURNCODE immediate.\"\"\"\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.EOFCREATE[0](0, 0, 0, 0) + Op.STOP,\n                ),\n                Section.Container(\n                    container=Container(\n                        sections=[\n                            Section.Code(\n                                code=Op.PUSH0 * 3 + Op.RJUMPI[1] + Op.RETURNCODE[0],\n                            ),\n                            Section.Container(\n                                container=Container.Code(code=Op.STOP),\n                            ),\n                        ]\n                    )\n                ),\n            ],\n        ),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\ndef test_rjumpi_backwards_reference_only(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"EOF code containing instructions only reachable by backwards RJUMPI.\"\"\"\n    container = Container.Code(\n        code=(\n            Op.RJUMP[RJUMP_LEN]\n            + Op.RJUMP[RJUMPI_LEN + len(Op.ORIGIN)]\n            + Op.ORIGIN\n            + Op.RJUMPI[-(RJUMP_LEN + RJUMPI_LEN + len(Op.ORIGIN))]\n            + Op.STOP\n        )\n    )\n    eof_test(\n        container=container,\n        expect_exception=EOFException.UNREACHABLE_INSTRUCTIONS,\n    )\n\n\ndef test_rjumpi_stack_validation(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"\n    Check that you can get to the same opcode with two different stack heights\n    Spec now allows this: 4.b in\n    https://github.com/ipsilon/eof/blob/main/spec/eof.md#stack-validation.\n    \"\"\"\n    container = Container.Code(code=Op.RJUMPI[1](1) + Op.ADDRESS + Op.NOOP + Op.STOP)\n    eof_test(\n        container=container,\n        expect_exception=None,\n    )\n\n\ndef test_rjumpi_at_the_end(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"\n    Test invalid RJUMPI as the end of a code section.\n    https://github.com/ipsilon/eof/blob/main/spec/eof.md#stack-validation 4.i:\n    This implies that the last instruction must be a terminating instruction or\n    RJUMP.\n    \"\"\"\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 + Op.PUSH0 + Op.RJUMPI[1] + Op.STOP + Op.RJUMPI[-4],\n                )\n            ],\n        ),\n        expect_exception=EOFException.MISSING_STOP_OPCODE,\n    )\n\n\ndef test_tangled_rjumpi(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"EOF code containing tangled RJUMPI paths.\"\"\"\n    container = Container.Code(\n        code=(\n            Op.PUSH0  # [0,0]\n            + Op.PUSH0  # [1,1]\n            + Op.RJUMPI[8]  # [2,2]\n            + Op.PUSH1(127)  # [1,1]\n            + Op.RJUMPI[7]  # [2,2]\n            + Op.RJUMP[5]  # [1,1]\n            + Op.PUSH0  # [1,1]\n            + Op.RJUMP[0]  # [2,1]\n            + Op.LT  # [1,x]\n            + Op.STOP  # [1,x]\n        )\n    )\n    eof_test(\n        container=container,\n        expect_exception=EOFException.STACK_UNDERFLOW,\n    )\n\n\ndef test_rjumpi_backwards_onto_dup(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"Backwards jumpi onto a dup.\"\"\"\n    container = Container.Code(\n        code=(Op.PUSH0 + Op.DUP1 + Op.RJUMPI[-4] + Op.STOP),\n        max_stack_increase=2,\n    )\n    eof_test(\n        container=container,\n    )\n\n\ndef test_rjumpi_backwards_min_stack_wrong(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"Backwards rjumpi where min_stack does not match.\"\"\"\n    container = Container.Code(\n        code=(\n            Op.PUSH0  # (0, 0)\n            + Op.PUSH1(0)  # (1, 1)\n            + Op.RJUMPI[1]  # (2, 2) To PUSH1\n            + Op.PUSH0  # (1, 1)\n            + Op.PUSH1(4)  # (1, 2)\n            + Op.RJUMPI[-9]  # (2, 3) To first RJUMPI with (1, 2)\n            + Op.STOP  # (1, 2)\n        ),\n        max_stack_increase=3,\n    )\n    eof_test(\n        container=container,\n        expect_exception=EOFException.STACK_HEIGHT_MISMATCH,\n    )\n\n\ndef test_rjumpi_rjumpv_backwards_min_stack_wrong(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"Backwards rjumpi rjumpv where min_stack does not match.\"\"\"\n    container = Container.Code(\n        code=(\n            Op.PUSH0  # (0, 0)\n            + Op.PUSH1(0)  # (1, 1)\n            + Op.RJUMPI[1]  # (2, 2) To PUSH1\n            + Op.PUSH0  # (1, 1)\n            + Op.PUSH1(4)  # (1, 2)\n            + Op.RJUMPV[-10]  # (2, 3) To first RJUMPI with (1, 2)\n            + Op.STOP  # (1, 2)\n        ),\n        max_stack_increase=3,\n    )\n    eof_test(\n        container=container,\n        expect_exception=EOFException.STACK_HEIGHT_MISMATCH,\n    )\n\n\ndef test_double_rjumpi_stack_underflow(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"Two RJUMPIs, causing the min stack to underflow.\"\"\"\n    container = Container.Code(\n        code=(\n            Op.PUSH0  # (0, 0)\n            + Op.PUSH0  # (1, 1)\n            + Op.RJUMPI[5]  # (2, 2) To RETURN\n            + Op.PUSH0  # (1, 1)\n            + Op.PUSH0  # (2, 2)\n            + Op.RJUMPI[0]  # (3, 3)\n            + Op.RETURN  # (1, 2) Underflow\n        ),\n        max_stack_increase=3,\n    )\n    eof_test(\n        container=container,\n        expect_exception=EOFException.STACK_UNDERFLOW,\n    )\n\n\ndef test_double_rjumpi_stack_height_mismatch(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"\n    Test stack height check of the backward RJUMP targeted by two RJUMPIs with\n    the non-uniform stack height range.\n    \"\"\"\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0  # BEGIN: (0, 0)\n                    + Op.PUSH0  # (1, 1)\n                    + Op.RJUMPI[3]  # (2, 2) to LAST\n                    + Op.RJUMPI[0]  # (1, 1) to LAST\n                    + Op.RJUMP[-11],  # LAST: (0, 1) to BEGIN; stack height mismatch\n                    max_stack_increase=2,\n                ),\n            ],\n        ),\n        expect_exception=EOFException.STACK_HEIGHT_MISMATCH,\n    )\n\n\ndef test_double_rjumpi_invalid_max_stack_height(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"\n    Test max stack height of the final block targeted by two RJUMPIs with the\n    non-uniform stack height range.\n    \"\"\"\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0  # (0, 0)\n                    + Op.PUSH0  # (1, 1)\n                    + Op.RJUMPI[3]  # (2, 2) to EXIT\n                    + Op.RJUMPI[0]  # (1, 1) to EXIT\n                    + Op.PUSH0  # EXIT: (0, 1)\n                    + Op.PUSH0  # (1, 2)\n                    + Op.INVALID,  # (2, 3)\n                    max_stack_increase=2,  # should be 3\n                ),\n            ],\n        ),\n        expect_exception=EOFException.INVALID_MAX_STACK_INCREASE,\n    )\n\n\n@pytest.mark.parametrize(\n    \"container\",\n    [\n        Container(\n            name=\"backwards_rjumpi_10\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH1[190]\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[1]\n                    + Op.POP\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[-11]\n                    + Op.STOP,\n                    max_stack_increase=3,\n                ),\n            ],\n            expected_bytecode=\"ef0001010004020001000eff0000000080000360be6000e10001506000e1fff500\",\n        ),\n        Container(\n            name=\"backwards_rjumpi_3\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.POP\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[-7]\n                    + Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[-13]\n                    + Op.STOP,\n                    max_stack_increase=2,\n                ),\n            ],\n            expected_bytecode=\"ef0001010004020001000eff000000008000025f506000e1fff95f6000e1fff300\",\n        ),\n        Container(\n            name=\"backwards_rjumpi_5\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[1]\n                    + Op.ADD\n                    + Op.DUP1\n                    + Op.DUP1\n                    + Op.RJUMPI[-8]\n                    + Op.STOP,\n                    max_stack_increase=2,\n                ),\n            ],\n            expected_bytecode=\"ef0001010004020001000aff000000008000025f6001018080e1fff800\",\n        ),\n        Container(\n            name=\"backwards_rjumpi_8\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.POP\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[-6]\n                    + Op.PUSH0\n                    + Op.RJUMP[-10],\n                    max_stack_increase=1,\n                ),\n            ],\n        ),\n        Container(\n            name=\"backwards_rjumpi_9\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[1]\n                    + Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[-11]\n                    + Op.STOP,\n                    max_stack_increase=3,\n                ),\n            ],\n            expected_bytecode=\"ef0001010004020001000dff000000008000035f6000e100015f6000e1fff500\",\n        ),\n        Container(\n            name=\"backwards_rjumpi_variable_stack_3\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.POP\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[-7]\n                    + Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[-13]\n                    + Op.STOP,\n                    max_stack_increase=5,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010016ff000000008000055f6000e100025f5f5f506000e1fff95f6000e1fff300\",\n        ),\n        Container(\n            name=\"backwards_rjumpi_variable_stack_5\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH1[1]\n                    + Op.ADD\n                    + Op.DUP1\n                    + Op.DUP1\n                    + Op.RJUMPI[-8]\n                    + Op.STOP,\n                    max_stack_increase=5,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010012ff000000008000055f6000e100025f5f5f6001018080e1fff800\",\n        ),\n        Container(\n            name=\"backwards_rjumpi_variable_stack_6\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.POP\n                    + Op.RJUMPI[-4]\n                    + Op.STOP,\n                    max_stack_increase=5,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010010ff000000008000055f6000e100025f5f5f5f5f50e1fffc00\",\n        ),\n        Container(\n            name=\"backwards_rjumpi_variable_stack_6a\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.POP\n                    + Op.PUSH0\n                    + Op.RJUMPI[-5]\n                    + Op.STOP,\n                    max_stack_increase=5,\n                ),\n            ],\n        ),\n        Container(\n            name=\"backwards_rjumpi_variable_stack_8\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.POP\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[-8]\n                    + Op.PUSH0\n                    + Op.RJUMP[-10],\n                    max_stack_increase=4,\n                ),\n            ],\n        ),\n    ],\n    ids=lambda x: x.name,\n)\ndef test_rjumpi_backward_invalid_max_stack_height(\n    eof_test: EOFTestFiller,\n    container: Container,\n) -> None:\n    \"\"\"\n    Validate a code section containing at least one backward RJUMPI invalid\n    because of the incorrect max stack height.\n    \"\"\"\n    eof_test(container=container, expect_exception=EOFException.STACK_HEIGHT_MISMATCH)\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpv.py",
    "content": "\"\"\"EOF JUMPF tests covering stack and code validation rules.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_tools import Account, EOFException, EOFStateTestFiller, EOFTestFiller\nfrom ethereum_test_types.eof.v1 import Container, Section\nfrom ethereum_test_vm import Bytecode\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .. import EOF_FORK_NAME\nfrom .helpers import JumpDirection, slot_code_worked, slot_conditional_result, value_code_worked\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-4200.md\"\nREFERENCE_SPEC_VERSION = \"17d4a8d12d2b5e0f2985c866376c16c8c6df7cba\"\n\npytestmark = pytest.mark.valid_from(EOF_FORK_NAME)\n\nRJUMP_LEN = len(Op.RJUMP[0])\n\n\n@pytest.mark.parametrize(\n    \"calldata\",\n    [\n        pytest.param(0, id=\"c0\"),\n        pytest.param(1, id=\"c1\"),\n        pytest.param(3, id=\"c3\"),\n        pytest.param(255, id=\"c255\"),\n        pytest.param(256, id=\"c256\"),\n        pytest.param(2**256 - 1, id=\"c2^256-1\"),\n    ],\n)\n@pytest.mark.parametrize(\n    \"table_size\",\n    [\n        pytest.param(1, id=\"t1\"),\n        pytest.param(3, id=\"t3\"),\n        pytest.param(256, id=\"t256\"),\n    ],\n)\ndef test_rjumpv_condition(\n    eof_state_test: EOFStateTestFiller,\n    calldata: int,\n    table_size: int,\n) -> None:\n    \"\"\"Test RJUMPV contract switching based on external input.\"\"\"\n    value_fall_through = 0xFFFF\n    value_base = 0x1000  # Force a `PUSH2` instruction to be used on all targets\n    target_length = 7\n    jump_table = [(i + 1) * target_length for i in range(table_size)]\n\n    jump_targets = sum(\n        (Op.SSTORE(slot_conditional_result, i + value_base) + Op.STOP) for i in range(table_size)\n    )\n\n    fall_through_case = Op.SSTORE(slot_conditional_result, value_fall_through) + Op.STOP\n\n    eof_state_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.CALLDATALOAD\n                    + Op.RJUMPV[jump_table]\n                    + fall_through_case\n                    + jump_targets,\n                )\n            ]\n        ),\n        data=calldata.to_bytes(32, \"big\"),\n        container_post=Account(\n            storage={\n                slot_conditional_result: calldata + value_base\n                if calldata < table_size\n                else value_fall_through,\n            }\n        ),\n    )\n\n\ndef test_rjumpv_forwards(\n    eof_state_test: EOFStateTestFiller,\n) -> None:\n    \"\"\"EOF1V4200_0008 (Valid) EOF with RJUMPV table size 1 (Positive).\"\"\"\n    eof_state_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH1(0)\n                    + Op.RJUMPV[3]\n                    + Op.NOOP\n                    + Op.NOOP\n                    + Op.STOP\n                    + Op.SSTORE(slot_code_worked, value_code_worked)\n                    + Op.STOP,\n                )\n            ],\n        ),\n        container_post=Account(storage={slot_code_worked: value_code_worked}),\n    )\n\n\ndef test_rjumpv_backwards(\n    eof_state_test: EOFStateTestFiller,\n) -> None:\n    \"\"\"EOF1V4200_0009 (Valid) EOF with RJUMPV table size 1 (Negative).\"\"\"\n    eof_state_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH1(0)\n                    + Op.RJUMPI[7]\n                    + Op.SSTORE(slot_code_worked, value_code_worked)\n                    + Op.STOP\n                    + Op.PUSH1(0)\n                    + Op.RJUMPV[-13]\n                    + Op.STOP,\n                )\n            ],\n        ),\n        container_post=Account(storage={slot_code_worked: value_code_worked}),\n    )\n\n\ndef test_rjumpv_backwards_onto_dup(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"Backwards jumpv vector onto a dup.\"\"\"\n    container = Container.Code(\n        code=(Op.PUSH0 + Op.DUP1 + Op.RJUMPV[-5] + Op.STOP),\n        max_stack_increase=2,\n    )\n    eof_test(\n        container=container,\n    )\n\n\n@pytest.mark.parametrize(\"length\", [8, 9])\ndef test_rjumpv_backwards_large_table(\n    eof_test: EOFTestFiller,\n    length: int,\n) -> None:\n    \"\"\"Backwards jump vector with a large table.\"\"\"\n    jump_table = [0] * length\n    jump_table += [length * -2 - 6]\n    container = Container.Code(\n        code=(Op.RJUMPV[jump_table](length) + Op.STOP),\n        max_stack_increase=1,\n    )\n    eof_test(\n        container=container,\n    )\n\n\ndef test_rjumpv_zero(\n    eof_state_test: EOFStateTestFiller,\n) -> None:\n    \"\"\"EOF1V4200_0010 (Valid) EOF with RJUMPV table size 1 (Zero).\"\"\"\n    eof_state_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH1(0)\n                    + Op.RJUMPV[0]\n                    + Op.SSTORE(slot_code_worked, value_code_worked)\n                    + Op.STOP,\n                )\n            ],\n        ),\n        container_post=Account(storage={slot_code_worked: value_code_worked}),\n    )\n\n\ndef test_rjumpv_size_3(\n    eof_state_test: EOFStateTestFiller,\n) -> None:\n    \"\"\"EOF1V4200_0011 (Valid) EOF with RJUMPV table size 3.\"\"\"\n    eof_state_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH1(0)\n                    + Op.RJUMPV[3, 0, -10]\n                    + Op.NOOP\n                    + Op.NOOP\n                    + Op.STOP\n                    + Op.SSTORE(slot_code_worked, value_code_worked)\n                    + Op.STOP,\n                )\n            ],\n        ),\n        container_post=Account(storage={slot_code_worked: value_code_worked}),\n    )\n\n\n@pytest.mark.parametrize(\n    \"target\",\n    [0, 1, 100, 254, 255, 256],\n)\ndef test_rjumpv_full_table(\n    eof_state_test: EOFStateTestFiller,\n    target: int,\n) -> None:\n    \"\"\"\n    EOF1V4200_0012/13/14/15 (Valid) EOF with RJUMPV table size 256 (target\n    parameterized).\n    \"\"\"\n    eof_state_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH2[target]\n                    + Op.RJUMPV[range(256)]\n                    + Op.NOOP * 256\n                    + Op.SSTORE(slot_code_worked, value_code_worked)\n                    + Op.STOP,\n                )\n            ],\n        ),\n        container_post=Account(storage={slot_code_worked: value_code_worked}),\n    )\n\n\ndef test_rjumpv_max_forwards(\n    eof_state_test: EOFStateTestFiller,\n) -> None:\n    \"\"\"\n    EOF1V4200_0016 (Valid) EOF with RJUMPV containing the maximum offset\n    (32767).\n    \"\"\"\n    eof_state_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH1(1)\n                    + Op.RJUMPV[32767]\n                    + Op.NOOP * 32768\n                    + Op.SSTORE(slot_code_worked, value_code_worked)\n                    + Op.STOP,\n                )\n            ],\n        ),\n        container_post=Account(storage={slot_code_worked: value_code_worked}),\n    )\n\n\ndef test_rjumpv_truncated_empty(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"\n    EOF1I4200_0027 (Invalid) EOF code containing RJUMPV with max_index 0 but no\n    immediates.\n    \"\"\"\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH1(1) + Op.RJUMPV,\n                )\n            ],\n        ),\n        expect_exception=EOFException.TRUNCATED_INSTRUCTION,\n    )\n\n\n@pytest.mark.parametrize(\n    \"branches\",\n    [1, 2, 256],\n)\n@pytest.mark.parametrize(\n    \"byte_count_last_branch\",\n    [0, 1],\n)\ndef test_rjumpv_truncated(\n    eof_test: EOFTestFiller,\n    branches: int,\n    byte_count_last_branch: int,\n) -> None:\n    \"\"\"EOF1I4200_0028/29/30 (Invalid) EOF code containing truncated RJUMPV.\"\"\"\n    rjumpv_bytes = int.to_bytes(branches - 1, 1, \"big\")\n    rjumpv_bytes += b\"\\0\" * ((2 * (branches - 1)) + byte_count_last_branch)\n\n    eof_test(\n        container=Container.Code(code=Op.PUSH1(1) + Op.RJUMPV[rjumpv_bytes]),\n        expect_exception=EOFException.TRUNCATED_INSTRUCTION,\n    )\n\n\n@pytest.mark.parametrize(\n    \"table_size,invalid_index\",\n    [\n        pytest.param(1, 0, id=\"t1i0\"),\n        pytest.param(256, 0, id=\"t256i0\"),\n        pytest.param(256, 255, id=\"t256i255\"),\n    ],\n)\ndef test_rjumpv_into_header(\n    eof_test: EOFTestFiller,\n    table_size: int,\n    invalid_index: int,\n) -> None:\n    \"\"\"\n    EOF1I4200_0031 (Invalid) EOF code containing RJUMPV with target outside\n    code bounds (Jumping into header).\n    \"\"\"\n    invalid_destination = -5 - (2 * table_size)\n    jump_table = [0 for _ in range(table_size)]\n    jump_table[invalid_index] = invalid_destination\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH1(1) + Op.RJUMPV[jump_table] + Op.STOP,\n                )\n            ],\n        ),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\n@pytest.mark.parametrize(\"offset\", [-13, -23])\n@pytest.mark.parametrize(\n    \"table_size,invalid_index\",\n    [\n        pytest.param(1, 0, id=\"t1i0\"),\n        pytest.param(256, 0, id=\"t256i0\"),\n        pytest.param(256, 255, id=\"t256i255\"),\n    ],\n)\ndef test_rjumpv_before_container(\n    eof_test: EOFTestFiller,\n    table_size: int,\n    invalid_index: int,\n    offset: int,\n) -> None:\n    \"\"\"\n    EOF1I4200_0032 (Invalid) EOF code containing RJUMPV with target outside\n    code bounds (Jumping to before code begin).\n    \"\"\"\n    invalid_destination = offset - (2 * table_size)\n    jump_table = [0 for _ in range(table_size)]\n    jump_table[invalid_index] = invalid_destination\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH1(1) + Op.RJUMPV[jump_table] + Op.STOP,\n                )\n            ],\n        ),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\n@pytest.mark.parametrize(\n    \"table_size,invalid_index\",\n    [\n        pytest.param(1, 0, id=\"t1i0\"),\n        pytest.param(256, 0, id=\"t256i0\"),\n        pytest.param(256, 255, id=\"t256i255\"),\n    ],\n)\ndef test_rjumpv_into_data(\n    eof_test: EOFTestFiller,\n    table_size: int,\n    invalid_index: int,\n) -> None:\n    \"\"\"\n    EOF1I4200_0033 (Invalid) EOF code containing RJUMPV with target outside\n    code bounds (Jumping into data section).\n    \"\"\"\n    invalid_destination = 2\n    jump_table = [0 for _ in range(table_size)]\n    jump_table[invalid_index] = invalid_destination\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH1(1) + Op.RJUMPV[jump_table] + Op.STOP,\n                ),\n                Section.Data(data=b\"\\xaa\\xbb\\xcc\"),\n            ],\n        ),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\n@pytest.mark.parametrize(\n    \"table_size,invalid_index\",\n    [\n        pytest.param(1, 0, id=\"t1i0\"),\n        pytest.param(256, 0, id=\"t256i0\"),\n        pytest.param(256, 255, id=\"t256i255\"),\n    ],\n)\ndef test_rjumpv_after_container(\n    eof_test: EOFTestFiller,\n    table_size: int,\n    invalid_index: int,\n) -> None:\n    \"\"\"\n    EOF1I4200_0034 (Invalid) EOF code containing RJUMPV with target outside\n    code bounds (Jumping to after code end).\n    \"\"\"\n    invalid_destination = 2\n    jump_table = [0 for _ in range(table_size)]\n    jump_table[invalid_index] = invalid_destination\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH1(1) + Op.RJUMPV[jump_table] + Op.STOP,\n                )\n            ],\n        ),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\n@pytest.mark.parametrize(\n    \"table_size,invalid_index\",\n    [\n        pytest.param(1, 0, id=\"t1i0\"),\n        pytest.param(256, 0, id=\"t256i0\"),\n        pytest.param(256, 255, id=\"t256i255\"),\n    ],\n)\ndef test_rjumpv_at_end(\n    eof_test: EOFTestFiller,\n    table_size: int,\n    invalid_index: int,\n) -> None:\n    \"\"\"\n    EOF1I4200_0035 (Invalid) EOF code containing RJUMPV with target outside\n    code bounds (Jumping to code end).\n    \"\"\"\n    invalid_destination = 1\n    jump_table = [0 for _ in range(table_size)]\n    jump_table[invalid_index] = invalid_destination\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH1(1) + Op.RJUMPV[jump_table] + Op.STOP,\n                )\n            ],\n        ),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\n@pytest.mark.parametrize(\n    \"table_size,invalid_index\",\n    [\n        pytest.param(1, 0, id=\"t1i0\"),\n        pytest.param(256, 0, id=\"t256i0\"),\n        pytest.param(256, 255, id=\"t256i255\"),\n    ],\n)\n@pytest.mark.parametrize(\n    \"data_portion_end\",\n    [True, False],\n    ids=[\"data_portion_end\", \"data_portion_start\"],\n)\ndef test_rjumpv_into_self_data_portion(\n    eof_test: EOFTestFiller,\n    table_size: int,\n    invalid_index: int,\n    data_portion_end: bool,\n) -> None:\n    \"\"\"\n    EOF1I4200_0036 (Invalid) EOF code containing RJUMPV with target same RJUMPV\n    immediate.\n    \"\"\"\n    invalid_destination = -1 if data_portion_end else -(2 * table_size) - 1\n    jump_table = [0 for _ in range(table_size)]\n    jump_table[invalid_index] = invalid_destination\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH1(1) + Op.RJUMPV[jump_table] + Op.STOP,\n                )\n            ],\n        ),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\n@pytest.mark.parametrize(\n    \"table_size,invalid_index\",\n    [\n        pytest.param(1, 0, id=\"t1i0\"),\n        pytest.param(256, 0, id=\"t256i0\"),\n        pytest.param(256, 255, id=\"t256i255\"),\n    ],\n)\n@pytest.mark.parametrize(\"stack_height_spread\", [-1, 0, 1, 2])\ndef test_rjumpv_into_self(\n    eof_test: EOFTestFiller,\n    table_size: int,\n    invalid_index: int,\n    stack_height_spread: int,\n) -> None:\n    \"\"\"\n    EOF code containing RJUMPV targeting itself. This can never be valid\n    because this is backward jump and RJUMPV consumes one stack item.\n    \"\"\"\n    # Create variadic stack height by the parametrized spread.\n    stack_spread_code = Bytecode()\n    if stack_height_spread >= 0:\n        stack_spread_code = Op.RJUMPI[stack_height_spread](0) + Op.PUSH0 * stack_height_spread\n\n    jump_table = [0 for _ in range(table_size)]\n    jump_table[invalid_index] = -len(Op.RJUMPV[jump_table])\n\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=stack_spread_code + Op.RJUMPV[jump_table](0) + Op.STOP,\n                    # max stack increase is computed correctly\n                )\n            ],\n        ),\n        expect_exception=EOFException.STACK_HEIGHT_MISMATCH,\n    )\n\n\n@pytest.mark.parametrize(\n    \"table_size,invalid_index\",\n    [\n        pytest.param(1, 0, id=\"t1i0\"),\n        pytest.param(256, 0, id=\"t256i0\"),\n        pytest.param(256, 255, id=\"t256i255\"),\n    ],\n)\ndef test_rjumpv_into_stack_height_diff(\n    eof_test: EOFTestFiller,\n    table_size: int,\n    invalid_index: int,\n) -> None:\n    \"\"\"\n    EOF code containing RJUMPV with target instruction that causes stack height\n    difference.\n    \"\"\"\n    jump_table = [0 for _ in range(table_size)]\n    jump_table[invalid_index] = -(len(Op.RJUMPV[jump_table]) + len(Op.PUSH1[0]) + len(Op.PUSH1[0]))\n\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH1[0] + Op.PUSH1[0] + Op.RJUMPV[jump_table] + Op.STOP,\n                ),\n            ],\n        ),\n        expect_exception=EOFException.STACK_HEIGHT_MISMATCH,\n    )\n\n\n@pytest.mark.parametrize(\n    \"table_size,invalid_index\",\n    [\n        pytest.param(1, 0, id=\"t1i0\"),\n        pytest.param(256, 0, id=\"t256i0\"),\n        pytest.param(256, 255, id=\"t256i255\"),\n    ],\n)\ndef test_rjumpv_into_stack_underflow(\n    eof_test: EOFTestFiller,\n    table_size: int,\n    invalid_index: int,\n) -> None:\n    \"\"\"\n    EOF code containing RJUMPV with target instruction that cause stack\n    underflow.\n    \"\"\"\n    jump_table = [0 for _ in range(table_size)]\n    jump_table[invalid_index] = 1\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(code=Op.ORIGIN + Op.RJUMPV[jump_table] + Op.STOP + Op.POP + Op.STOP),\n            ],\n        ),\n        expect_exception=EOFException.STACK_UNDERFLOW,\n    )\n\n\n@pytest.mark.parametrize(\n    \"table_size\",\n    [\n        pytest.param(1, id=\"t1\"),\n        pytest.param(256, id=\"t256\"),\n    ],\n)\ndef test_rjumpv_skips_stack_underflow(\n    eof_test: EOFTestFiller,\n    table_size: int,\n) -> None:\n    \"\"\"\n    EOF code containing RJUMPV where the default path produces a stack\n    underflow.\n    \"\"\"\n    jump_table = [1 for _ in range(table_size)]\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(code=Op.ORIGIN + Op.RJUMPV[jump_table] + Op.POP + Op.STOP),\n            ],\n        ),\n        expect_exception=EOFException.STACK_UNDERFLOW,\n    )\n\n\n@pytest.mark.parametrize(\n    \"table_size,invalid_index\",\n    [\n        pytest.param(1, 0, id=\"t1i0\"),\n        pytest.param(256, 0, id=\"t256i0\"),\n        pytest.param(256, 255, id=\"t256i255\"),\n    ],\n)\n@pytest.mark.parametrize(\n    \"data_portion_end\",\n    [True, False],\n    ids=[\"data_portion_end\", \"data_portion_start\"],\n)\ndef test_rjumpv_into_rjump(\n    eof_test: EOFTestFiller,\n    table_size: int,\n    invalid_index: int,\n    data_portion_end: bool,\n) -> None:\n    \"\"\"\n    EOF1I4200_0037 (Invalid) EOF code containing RJUMPV with target RJUMP\n    immediate.\n    \"\"\"\n    invalid_destination = 3 if data_portion_end else 2\n    jump_table = [0 for _ in range(table_size)]\n    jump_table[invalid_index] = invalid_destination\n    if table_size > 1:\n        valid_index = 0\n        if valid_index == invalid_index:\n            valid_index += 1\n        jump_table[valid_index] = 1\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH1(1) + Op.RJUMPV[jump_table] + Op.STOP + Op.RJUMP[0] + Op.STOP,\n                )\n            ],\n        ),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\n@pytest.mark.parametrize(\n    \"table_size,invalid_index\",\n    [\n        pytest.param(1, 0, id=\"t1i0\"),\n        pytest.param(256, 0, id=\"t256i0\"),\n        pytest.param(256, 255, id=\"t256i255\"),\n    ],\n)\n@pytest.mark.parametrize(\n    \"data_portion_end\",\n    [True, False],\n    ids=[\"data_portion_end\", \"data_portion_start\"],\n)\ndef test_rjumpv_into_rjumpi(\n    eof_test: EOFTestFiller,\n    table_size: int,\n    invalid_index: int,\n    data_portion_end: bool,\n) -> None:\n    \"\"\"\n    EOF1I4200_0038 (Invalid) EOF code containing RJUMPV with target RJUMPI\n    immediate.\n    \"\"\"\n    invalid_destination = 5 if data_portion_end else 4\n    jump_table = [0 for _ in range(table_size)]\n    jump_table[invalid_index] = invalid_destination\n    if table_size > 1:\n        valid_index = 0\n        if valid_index == invalid_index:\n            valid_index += 1\n        jump_table[valid_index] = 1\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH1(1)\n                    + Op.RJUMPV[jump_table]\n                    + Op.STOP\n                    + Op.PUSH1(1)\n                    + Op.RJUMPI[0]\n                    + Op.STOP,\n                )\n            ],\n        ),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\n@pytest.mark.parametrize(\n    \"table_size,invalid_index\",\n    [\n        pytest.param(1, 0, id=\"t1i0\"),\n        pytest.param(256, 0, id=\"t256i0\"),\n        pytest.param(256, 255, id=\"t256i255\"),\n    ],\n)\n@pytest.mark.parametrize(\"jump\", [JumpDirection.FORWARD, JumpDirection.BACKWARD])\ndef test_rjumpv_into_push_1(\n    eof_test: EOFTestFiller,\n    jump: JumpDirection,\n    table_size: int,\n    invalid_index: int,\n) -> None:\n    \"\"\"\n    EOF1I4200_0039 (Invalid) EOF code containing RJUMPV with target PUSH1\n    immediate.\n    \"\"\"\n    if jump == JumpDirection.FORWARD:\n        invalid_destination = 2\n        jump_table = [0 for _ in range(table_size)]\n        jump_table[invalid_index] = invalid_destination\n        code = (\n            Op.PUSH1(1)\n            + Op.RJUMPV[jump_table]\n            + Op.STOP\n            + Op.PUSH1(1)\n            + Op.PUSH1(1)\n            + Op.SSTORE\n            + Op.STOP\n        )\n    else:\n        invalid_destination = -(2 * table_size) - 3\n        jump_table = [0 for _ in range(table_size)]\n        jump_table[invalid_index] = invalid_destination\n        code = Op.PUSH1(1) + Op.RJUMPV[jump_table] + Op.STOP\n    eof_test(\n        container=Container(\n            sections=[Section.Code(code=code)],\n        ),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\n@pytest.mark.parametrize(\n    \"opcode\",\n    [\n        Op.PUSH2,\n        Op.PUSH3,\n        Op.PUSH4,\n        Op.PUSH5,\n        Op.PUSH6,\n        Op.PUSH7,\n        Op.PUSH8,\n        Op.PUSH9,\n        Op.PUSH10,\n        Op.PUSH11,\n        Op.PUSH12,\n        Op.PUSH13,\n        Op.PUSH14,\n        Op.PUSH15,\n        Op.PUSH16,\n        Op.PUSH17,\n        Op.PUSH18,\n        Op.PUSH19,\n        Op.PUSH20,\n        Op.PUSH21,\n        Op.PUSH22,\n        Op.PUSH23,\n        Op.PUSH24,\n        Op.PUSH25,\n        Op.PUSH26,\n        Op.PUSH27,\n        Op.PUSH28,\n        Op.PUSH29,\n        Op.PUSH30,\n        Op.PUSH31,\n        Op.PUSH32,\n    ],\n)\n@pytest.mark.parametrize(\n    \"table_size,invalid_index\",\n    [\n        pytest.param(1, 0, id=\"t1i0\"),\n        pytest.param(256, 0, id=\"t256i0\"),\n        pytest.param(256, 255, id=\"t256i255\"),\n    ],\n)\n@pytest.mark.parametrize(\n    \"data_portion_end\",\n    [True, False],\n    ids=[\"data_portion_end\", \"data_portion_start\"],\n)\n@pytest.mark.parametrize(\"jump\", [JumpDirection.FORWARD, JumpDirection.BACKWARD])\ndef test_rjumpv_into_push_n(\n    eof_test: EOFTestFiller,\n    opcode: Op,\n    jump: JumpDirection,\n    table_size: int,\n    invalid_index: int,\n    data_portion_end: bool,\n) -> None:\n    \"\"\"\n    EOF1I4200_0039 (Invalid) EOF code containing RJUMPV with target PUSHN\n    immediate.\n    \"\"\"\n    data_portion_length = int.from_bytes(opcode, byteorder=\"big\") - 0x5F\n    if jump == JumpDirection.FORWARD:\n        invalid_destination = data_portion_length + 1 if data_portion_end else 2\n        jump_table = [0 for _ in range(table_size)]\n        jump_table[invalid_index] = invalid_destination\n        code = (\n            Op.PUSH1(1)\n            + Op.RJUMPV[jump_table]\n            + Op.STOP\n            + opcode[1]\n            + Op.PUSH1(1)\n            + Op.SSTORE\n            + Op.STOP\n        )\n    else:\n        invalid_destination = (\n            -(2 * table_size) - 3\n            if data_portion_end\n            else -(2 * table_size) - 2 - data_portion_length\n        )\n        jump_table = [0 for _ in range(table_size)]\n        jump_table[invalid_index] = invalid_destination\n        code = opcode[1] + Op.RJUMPV[jump_table] + Op.STOP\n    eof_test(\n        container=Container(\n            sections=[Section.Code(code=code)],\n        ),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\n@pytest.mark.parametrize(\n    \"source_table_size,invalid_index\",\n    [\n        pytest.param(1, 0, id=\"s1i0\"),\n        pytest.param(256, 0, id=\"s256i0\"),\n        pytest.param(256, 255, id=\"s256i255\"),\n    ],\n)\n@pytest.mark.parametrize(\"target_table_size\", [1, 256], ids=[\"t1\", \"t256\"])\n@pytest.mark.parametrize(\n    \"data_portion_end\",\n    [True, False],\n    ids=[\"data_portion_end\", \"data_portion_start\"],\n)\ndef test_rjumpv_into_rjumpv(\n    eof_test: EOFTestFiller,\n    source_table_size: int,\n    target_table_size: int,\n    invalid_index: int,\n    data_portion_end: bool,\n) -> None:\n    \"\"\"\n    EOF1I4200_0040 (Invalid) EOF code containing RJUMPV with target other\n    RJUMPV immediate.\n    \"\"\"\n    invalid_destination = 4 + (2 * target_table_size) if data_portion_end else 4\n    source_jump_table = [0 for _ in range(source_table_size)]\n    source_jump_table[invalid_index] = invalid_destination\n    target_jump_table = [0 for _ in range(target_table_size)]\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH1(1)\n                    + Op.RJUMPV[source_jump_table]\n                    + Op.STOP\n                    + Op.PUSH1(1)\n                    + Op.RJUMPV[target_jump_table]\n                    + Op.STOP,\n                )\n            ],\n        ),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\n@pytest.mark.parametrize(\n    \"table_size,invalid_index\",\n    [\n        pytest.param(1, 0, id=\"t1i0\"),\n        pytest.param(256, 0, id=\"t256i0\"),\n        pytest.param(256, 255, id=\"t256i255\"),\n    ],\n)\n@pytest.mark.parametrize(\n    \"data_portion_end\",\n    [True, False],\n    ids=[\"data_portion_end\", \"data_portion_start\"],\n)\ndef test_rjumpv_into_callf(\n    eof_test: EOFTestFiller,\n    table_size: int,\n    invalid_index: int,\n    data_portion_end: bool,\n) -> None:\n    \"\"\"\n    EOF1I4200_0041 (Invalid) EOF code containing RJUMPV with target CALLF\n    immediate.\n    \"\"\"\n    invalid_destination = 2 if data_portion_end else 1\n    jump_table = [0 for _ in range(table_size)]\n    jump_table[invalid_index] = invalid_destination\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH1(0) + Op.RJUMPV[jump_table] + Op.CALLF[1] + Op.STOP,\n                ),\n                Section.Code(\n                    code=Op.SSTORE(1, 1) + Op.RETF,\n                    code_outputs=0,\n                ),\n            ]\n        ),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\n@pytest.mark.parametrize(\n    \"table_size,invalid_index\",\n    [\n        pytest.param(1, 0, id=\"t1i0\"),\n        pytest.param(256, 0, id=\"t256i0\"),\n        pytest.param(256, 255, id=\"t256i255\"),\n    ],\n)\ndef test_rjumpv_into_dupn(\n    eof_test: EOFTestFiller,\n    table_size: int,\n    invalid_index: int,\n) -> None:\n    \"\"\"EOF code containing RJUMPV with target DUPN immediate.\"\"\"\n    invalid_destination = 1\n    jump_table = [0 for _ in range(table_size)]\n    jump_table[invalid_index] = invalid_destination\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH1(1)\n                    + Op.PUSH1(1)\n                    + Op.PUSH1(0)\n                    + Op.RJUMPV[jump_table]\n                    + Op.DUPN[1]\n                    + Op.SSTORE\n                    + Op.STOP,\n                ),\n            ],\n        ),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\n@pytest.mark.parametrize(\n    \"table_size,invalid_index\",\n    [\n        pytest.param(1, 0, id=\"t1i0\"),\n        pytest.param(256, 0, id=\"t256i0\"),\n        pytest.param(256, 255, id=\"t256i255\"),\n    ],\n)\ndef test_rjumpv_into_swapn(\n    eof_test: EOFTestFiller,\n    table_size: int,\n    invalid_index: int,\n) -> None:\n    \"\"\"EOF code containing RJUMPV with target SWAPN immediate.\"\"\"\n    invalid_destination = 1\n    jump_table = [0 for _ in range(table_size)]\n    jump_table[invalid_index] = invalid_destination\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH1(1)\n                    + Op.PUSH1(1)\n                    + Op.PUSH1(0)\n                    + Op.RJUMPV[jump_table]\n                    + Op.SWAPN[1]\n                    + Op.SSTORE\n                    + Op.STOP,\n                ),\n            ],\n        ),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\n@pytest.mark.parametrize(\n    \"table_size,invalid_index\",\n    [\n        pytest.param(1, 0, id=\"t1i0\"),\n        pytest.param(256, 0, id=\"t256i0\"),\n        pytest.param(256, 255, id=\"t256i255\"),\n    ],\n)\ndef test_rjumpv_into_exchange(\n    eof_test: EOFTestFiller,\n    table_size: int,\n    invalid_index: int,\n) -> None:\n    \"\"\"EOF code containing RJUMPV with target EXCHANGE immediate.\"\"\"\n    invalid_destination = 1\n    jump_table = [0 for _ in range(table_size)]\n    jump_table[invalid_index] = invalid_destination\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH1(1)\n                    + Op.PUSH1(2)\n                    + Op.PUSH1(3)\n                    + Op.PUSH1(0)\n                    + Op.RJUMPV[jump_table]\n                    + Op.EXCHANGE[0x00]\n                    + Op.SSTORE\n                    + Op.STOP,\n                ),\n            ],\n        ),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\n@pytest.mark.parametrize(\n    \"table_size,invalid_index\",\n    [\n        pytest.param(1, 0, id=\"t1i0\"),\n        pytest.param(256, 0, id=\"t256i0\"),\n        pytest.param(256, 255, id=\"t256i255\"),\n    ],\n)\ndef test_rjumpv_into_eofcreate(\n    eof_test: EOFTestFiller,\n    table_size: int,\n    invalid_index: int,\n) -> None:\n    \"\"\"EOF code containing RJUMPV with target EOFCREATE immediate.\"\"\"\n    invalid_destination = 1\n    jump_table = [0 for _ in range(table_size)]\n    jump_table[invalid_index] = invalid_destination\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 * 5 + Op.RJUMPV[jump_table] + Op.EOFCREATE[0] + Op.STOP,\n                ),\n                Section.Container(\n                    container=Container(\n                        sections=[\n                            Section.Code(\n                                code=Op.RETURNCODE[0](0, 0),\n                            ),\n                            Section.Container(\n                                container=Container.Code(Op.STOP),\n                            ),\n                        ]\n                    )\n                ),\n            ],\n        ),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\n@pytest.mark.parametrize(\n    \"table_size,invalid_index\",\n    [\n        pytest.param(1, 0, id=\"t1i0\"),\n        pytest.param(256, 0, id=\"t256i0\"),\n        pytest.param(256, 255, id=\"t256i255\"),\n    ],\n)\ndef test_rjumpv_into_returncode(\n    eof_test: EOFTestFiller,\n    table_size: int,\n    invalid_index: int,\n) -> None:\n    \"\"\"EOF code containing RJUMPV with target RETURNCODE immediate.\"\"\"\n    invalid_destination = 1\n    jump_table = [0 for _ in range(table_size)]\n    jump_table[invalid_index] = invalid_destination\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.EOFCREATE[0](0, 0, 0, 0) + Op.STOP,\n                ),\n                Section.Container(\n                    container=Container(\n                        sections=[\n                            Section.Code(\n                                code=Op.PUSH0 * 3 + Op.RJUMPV[jump_table] + Op.RETURNCODE[0],\n                            ),\n                            Section.Container(\n                                container=Container.Code(Op.STOP),\n                            ),\n                        ]\n                    )\n                ),\n            ],\n        ),\n        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,\n    )\n\n\ndef test_rjumpv_backwards_reference_only(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"EOF code containing instructions only reachable by backwards RJUMPV.\"\"\"\n    rjumpv_len = len(Op.RJUMPV[0])\n    container = Container.Code(\n        code=(\n            Op.RJUMP[RJUMP_LEN]\n            + Op.RJUMP[rjumpv_len + len(Op.ORIGIN)]\n            + Op.ORIGIN\n            + Op.RJUMPV[-(RJUMP_LEN + rjumpv_len + len(Op.ORIGIN))]\n            + Op.STOP\n        )\n    )\n    eof_test(\n        container=container,\n        expect_exception=EOFException.UNREACHABLE_INSTRUCTIONS,\n    )\n\n\ndef test_rjumpv_at_the_end(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"\n    https://github.com/ipsilon/eof/blob/main/spec/eof.md#stack-validation 4.i:\n    This implies that the last instruction may be a terminating instruction or\n    RJUMPV.\n    \"\"\"\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH1(0) + Op.PUSH1(0) + Op.RJUMPI[1] + Op.STOP + Op.RJUMPV[-7](1),\n                )\n            ],\n        ),\n        expect_exception=EOFException.MISSING_STOP_OPCODE,\n    )\n\n\ndef test_rjumpv_backwards_min_stack_wrong(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"Backwards rjumpv where min_stack does not match.\"\"\"\n    container = Container.Code(\n        code=(\n            Op.PUSH0  # (0, 0)\n            + Op.PUSH1(0)  # (1, 1)\n            + Op.RJUMPV[1]  # (2, 2) To PUSH1\n            + Op.PUSH0  # (1, 1)\n            + Op.PUSH1(4)  # (1, 2)\n            + Op.RJUMPV[-11]  # (2, 3) To first RJUMPV with (1, 2)\n            + Op.STOP  # (1, 2)\n        ),\n        max_stack_increase=3,\n    )\n    eof_test(\n        container=container,\n        expect_exception=EOFException.STACK_HEIGHT_MISMATCH,\n    )\n\n\ndef test_rjumpv_rjumpi_backwards_min_stack_wrong(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"Backwards rjumpv rjumpi where min_stack does not match.\"\"\"\n    container = Container.Code(\n        code=(\n            Op.PUSH0  # (0, 0)\n            + Op.PUSH1(0)  # (1, 1)\n            + Op.RJUMPV[1]  # (2, 2) To PUSH1\n            + Op.PUSH0  # (1, 1)\n            + Op.PUSH1(4)  # (1, 2)\n            + Op.RJUMPI[-10]  # (2, 3) To first RJUMPV with (1, 2)\n            + Op.STOP  # (1, 2)\n        ),\n        max_stack_increase=3,\n    )\n    eof_test(\n        container=container,\n        expect_exception=EOFException.STACK_HEIGHT_MISMATCH,\n    )\n\n\ndef test_double_rjumpv(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"Two RJUMPVs, causing the min stack to underflow.\"\"\"\n    container = Container.Code(\n        code=(Op.PUSH0 + Op.PUSH0 + Op.RJUMPV[6] + Op.PUSH0 + Op.PUSH0 + Op.RJUMPV[0] + Op.RETURN),\n        max_stack_increase=3,\n    )\n    eof_test(\n        container=container,\n        expect_exception=EOFException.STACK_UNDERFLOW,\n    )\n\n\n@pytest.mark.parametrize(\n    \"container\",\n    [\n        Container(\n            name=\"forwards_rjumpv_0\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH1(1) + Op.RJUMPV[0] + Op.STOP,\n                    max_stack_increase=1,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010007ff000000008000016001e200000000\",\n        ),\n        Container(\n            name=\"forwards_rjumpv_1\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 + Op.PUSH1(0) + Op.RJUMPV[1] + Op.NOT + Op.STOP,\n                    max_stack_increase=2,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010009ff000000008000025f6000e20000011900\",\n        ),\n        Container(\n            name=\"forwards_rjumpv_2\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPV[[2, 3]]\n                    + Op.PUSH0\n                    + Op.POP\n                    + Op.NOT\n                    + Op.STOP,\n                    max_stack_increase=2,\n                ),\n            ],\n            expected_bytecode=\"ef0001010004020001000dff000000008000025f6000e201000200035f501900\",\n        ),\n        Container(\n            name=\"forwards_rjumpv_3\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 + Op.PUSH1[0] + Op.RJUMPV[1] + Op.PUSH0 + Op.STOP,\n                    max_stack_increase=2,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010009ff000000008000025f6000e20000015f00\",\n        ),\n        Container(\n            name=\"forwards_rjumpv_4\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPV[[1, 2]]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.NOT\n                    + Op.STOP,\n                    max_stack_increase=3,\n                ),\n            ],\n            expected_bytecode=\"ef0001010004020001000dff000000008000035f6000e201000100025f5f1900\",\n        ),\n        Container(\n            name=\"forwards_rjumpv_5\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPV[[5, 10]]\n                    + Op.PUSH1(1)\n                    + Op.RJUMP[7]\n                    + Op.PUSH1(2)\n                    + Op.RJUMP[2]\n                    + Op.PUSH1(3)\n                    + Op.STOP,\n                    max_stack_increase=2,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010016ff000000008000025f6000e2010005000a6001e000076002e00002600300\",\n        ),\n        Container(\n            name=\"forwards_rjumpv_6\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPV[[4, 9]]\n                    + Op.PUSH0\n                    + Op.RJUMP[8]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.RJUMP[3]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.STOP,\n                    max_stack_increase=4,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010016ff000000008000045f6000e201000400095fe000085f5fe000035f5f5f00\",\n        ),\n        Container(\n            name=\"forwards_rjumpv_7\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPV[[4, 9]]\n                    + Op.POP\n                    + Op.RJUMP[8]\n                    + Op.POP\n                    + Op.POP\n                    + Op.RJUMP[3]\n                    + Op.POP\n                    + Op.POP\n                    + Op.POP\n                    + Op.STOP,\n                    max_stack_increase=5,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010019ff000000008000055f5f5f5f6000e2010004000950e000085050e0000350505000\",\n        ),\n        Container(\n            name=\"forwards_rjumpv_8\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 + Op.PUSH1[0] + Op.RJUMPV[3] + Op.RJUMP[0] + Op.STOP,\n                    max_stack_increase=2,\n                ),\n            ],\n            expected_bytecode=\"ef0001010004020001000bff000000008000025f6000e2000003e0000000\",\n        ),\n        Container(\n            name=\"forwards_rjumpv_9\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 + Op.PUSH1[0] + Op.RJUMPV[4] + Op.PUSH0 + Op.RJUMP[0] + Op.STOP,\n                    max_stack_increase=2,\n                ),\n            ],\n            expected_bytecode=\"ef0001010004020001000cff000000008000025f6000e20000045fe0000000\",\n        ),\n        Container(\n            name=\"forwards_rjumpv_variable_stack_0\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH1(1)\n                    + Op.RJUMPV[0]\n                    + Op.STOP,\n                    max_stack_increase=4,\n                ),\n            ],\n            expected_bytecode=\"ef0001010004020001000fff000000008000045f6000e100025f5f6001e200000000\",\n        ),\n        Container(\n            name=\"forwards_rjumpv_variable_stack_1\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPV[1]\n                    + Op.NOT\n                    + Op.STOP,\n                    max_stack_increase=5,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010011ff000000008000055f6000e100025f5f5f6000e20000011900\",\n        ),\n        Container(\n            name=\"forwards_rjumpv_variable_stack_2\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPV[[2, 3]]\n                    + Op.PUSH0\n                    + Op.POP\n                    + Op.NOT\n                    + Op.STOP,\n                    max_stack_increase=5,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010015ff000000008000055f6000e100025f5f5f6000e201000200035f501900\",\n        ),\n        Container(\n            name=\"forwards_rjumpv_variable_stack_3\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPV[1]\n                    + Op.PUSH0\n                    + Op.STOP,\n                    max_stack_increase=5,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010011ff000000008000055f6000e100025f5f5f6000e20000015f00\",\n        ),\n        Container(\n            name=\"forwards_rjumpv_variable_stack_4\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPV[[1, 2]]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.NOT\n                    + Op.STOP,\n                    max_stack_increase=6,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010015ff000000008000065f6000e100025f5f5f6000e201000100025f5f1900\",\n        ),\n        Container(\n            name=\"forwards_rjumpv_variable_stack_5\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPV[[5, 10]]\n                    + Op.PUSH1(1)\n                    + Op.RJUMP[7]\n                    + Op.PUSH1(2)\n                    + Op.RJUMP[2]\n                    + Op.PUSH1(3)\n                    + Op.STOP,\n                    max_stack_increase=5,\n                ),\n            ],\n            expected_bytecode=\"ef0001010004020001001eff000000008000055f6000e100025f5f5f6000e2010005000a6001e000076002e00002600300\",\n        ),\n        Container(\n            name=\"forwards_rjumpv_variable_stack_6\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPV[[4, 9]]\n                    + Op.PUSH0\n                    + Op.RJUMP[8]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.RJUMP[3]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.STOP,\n                    max_stack_increase=7,\n                ),\n            ],\n            expected_bytecode=\"ef0001010004020001001eff000000008000075f6000e100025f5f5f6000e201000400095fe000085f5fe000035f5f5f00\",\n        ),\n        Container(\n            name=\"forwards_rjumpv_variable_stack_7\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPV[[4, 9]]\n                    + Op.POP\n                    + Op.RJUMP[8]\n                    + Op.POP\n                    + Op.POP\n                    + Op.RJUMP[3]\n                    + Op.POP\n                    + Op.POP\n                    + Op.POP\n                    + Op.STOP,\n                    max_stack_increase=8,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010021ff000000008000085f6000e100025f5f5f5f5f5f6000e2010004000950e000085050e0000350505000\",\n        ),\n        Container(\n            name=\"forwards_rjumpv_variable_stack_8\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPV[3]\n                    + Op.RJUMP[0]\n                    + Op.STOP,\n                    max_stack_increase=5,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010013ff000000008000055f6000e100025f5f5f6000e2000003e0000000\",\n        ),\n        Container(\n            name=\"forwards_rjumpv_variable_stack_9\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPV[4]\n                    + Op.PUSH0\n                    + Op.RJUMP[0]\n                    + Op.STOP,\n                    max_stack_increase=5,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010014ff000000008000055f6000e100025f5f5f6000e20000045fe0000000\",\n        ),\n    ],\n    ids=lambda x: x.name,\n)\ndef test_rjumpv_valid_forward(\n    eof_test: EOFTestFiller,\n    container: Container,\n) -> None:\n    \"\"\"\n    Validate a valid code section containing at least one forward RJUMPV. These\n    tests exercise the stack height validation.\n    \"\"\"\n    eof_test(container=container)\n\n\n@pytest.mark.parametrize(\n    \"container\",\n    [\n        Container(\n            name=\"backwards_rjumpv_0\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH1[0] + Op.RJUMPV[-6] + Op.STOP,\n                    max_stack_increase=1,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010007ff000000008000016000e200fffa00\",\n        ),\n        Container(\n            name=\"backwards_rjumpv_1\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 + Op.POP + Op.PUSH1[0] + Op.RJUMPV[-8] + Op.STOP,\n                    max_stack_increase=1,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010009ff000000008000015f506000e200fff800\",\n        ),\n        Container(\n            name=\"backwards_rjumpv_2\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.POP\n                    + Op.PUSH1[0]\n                    + Op.RJUMPV[-8]\n                    + Op.PUSH1[0]\n                    + Op.RJUMPV[-14]\n                    + Op.STOP,\n                    max_stack_increase=1,\n                ),\n            ],\n            expected_bytecode=\"ef0001010004020001000fff000000008000015f506000e200fff86000e200fff200\",\n        ),\n        Container(\n            name=\"backwards_rjumpv_4\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 + Op.POP + Op.PUSH1[0] + Op.RJUMPV[-8] + Op.RJUMP[-11],\n                    max_stack_increase=1,\n                ),\n            ],\n            expected_bytecode=\"ef0001010004020001000bff000000008000015f506000e200fff8e0fff5\",\n        ),\n        Container(\n            name=\"backwards_rjumpv_variable_stack_0\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPV[-6]\n                    + Op.STOP,\n                    max_stack_increase=4,\n                ),\n            ],\n            expected_bytecode=\"ef0001010004020001000fff000000008000045f6000e100025f5f6000e200fffa00\",\n        ),\n        Container(\n            name=\"backwards_rjumpv_variable_stack_1\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.POP\n                    + Op.PUSH1[0]\n                    + Op.RJUMPV[-8]\n                    + Op.STOP,\n                    max_stack_increase=4,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010011ff000000008000045f6000e100025f5f5f506000e200fff800\",\n        ),\n        Container(\n            name=\"backwards_rjumpv_variable_stack_2\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.POP\n                    + Op.PUSH1[0]\n                    + Op.RJUMPV[-8]\n                    + Op.PUSH1[0]\n                    + Op.RJUMPV[-14]\n                    + Op.STOP,\n                    max_stack_increase=4,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010017ff000000008000045f6000e100025f5f5f506000e200fff86000e200fff200\",\n        ),\n        Container(\n            name=\"backwards_rjumpv_variable_stack_4\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.POP\n                    + Op.PUSH1[0]\n                    + Op.RJUMPV[-8]\n                    + Op.RJUMP[-11],\n                    max_stack_increase=4,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010013ff000000008000045f6000e100025f5f5f506000e200fff8e0fff5\",\n        ),\n    ],\n    ids=lambda x: x.name,\n)\ndef test_rjumpv_valid_backward(\n    eof_test: EOFTestFiller,\n    container: Container,\n) -> None:\n    \"\"\"\n    Validate a valid code section containing at least one backward RJUMPV.\n    These tests exercise the stack height validation.\n    \"\"\"\n    eof_test(container=container)\n\n\n@pytest.mark.parametrize(\n    \"container\",\n    [\n        Container(\n            name=\"backwards_rjumpv_3\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.POP\n                    + Op.PUSH1[0]\n                    + Op.RJUMPV[-8]\n                    + Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPV[-15]\n                    + Op.STOP,\n                    max_stack_increase=2,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010010ff000000008000025f506000e200fff85f6000e200fff100\",\n        ),\n        Container(\n            name=\"backwards_rjumpv_5\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.POP\n                    + Op.PUSH1[0]\n                    + Op.RJUMPV[-7]\n                    + Op.PUSH0\n                    + Op.RJUMP[-11],\n                    max_stack_increase=1,\n                ),\n            ],\n        ),\n        Container(\n            name=\"backwards_rjumpv_6\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[1]\n                    + Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPV[-12]\n                    + Op.STOP,\n                    max_stack_increase=3,\n                ),\n            ],\n            expected_bytecode=\"ef0001010004020001000eff000000008000035f6000e100015f6000e200fff400\",\n        ),\n        Container(\n            name=\"backwards_rjumpv_7\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH1[190]\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[1]\n                    + Op.POP\n                    + Op.PUSH1[0]\n                    + Op.RJUMPV[-12]\n                    + Op.STOP,\n                    max_stack_increase=3,\n                ),\n            ],\n            expected_bytecode=\"ef0001010004020001000fff0000000080000360be6000e10001506000e200fff400\",\n        ),\n        Container(\n            name=\"backwards_rjumpv_variable_stack_3\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.POP\n                    + Op.PUSH1[0]\n                    + Op.RJUMPV[-8]\n                    + Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPV[-15]\n                    + Op.STOP,\n                    max_stack_increase=5,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010018ff000000008000055f6000e100025f5f5f506000e200fff85f6000e200fff100\",\n        ),\n        Container(\n            name=\"backwards_rjumpv_variable_stack_5\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.POP\n                    + Op.PUSH1[0]\n                    + Op.RJUMPV[-7]\n                    + Op.PUSH0\n                    + Op.RJUMP[-11],\n                    max_stack_increase=4,\n                ),\n            ],\n        ),\n        Container(\n            name=\"backwards_rjumpv_variable_stack_6\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[1]\n                    + Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPV[-12]\n                    + Op.STOP,\n                    max_stack_increase=5,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010016ff000000008000055f6000e100025f5f5f6000e100015f6000e200fff400\",\n        ),\n        Container(\n            name=\"backwards_rjumpv_variable_stack_7\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[2]\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.PUSH1[0]\n                    + Op.RJUMPI[1]\n                    + Op.POP\n                    + Op.PUSH1[0]\n                    + Op.RJUMPV[-12]\n                    + Op.STOP,\n                    max_stack_increase=5,\n                ),\n            ],\n            expected_bytecode=\"ef00010100040200010017ff000000008000055f6000e100025f5f5f5f6000e10001506000e200fff400\",\n        ),\n    ],\n    ids=lambda x: x.name,\n)\ndef test_rjumpv_backward_invalid_max_stack_height(\n    eof_test: EOFTestFiller,\n    container: Container,\n) -> None:\n    \"\"\"\n    Validate a code section containing at least one backward RJUMPV invalid\n    because of the incorrect max stack height.\n    \"\"\"\n    eof_test(container=container, expect_exception=EOFException.STACK_HEIGHT_MISMATCH)\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip4750_functions/__init__.py",
    "content": "\"\"\"\nTest cases for [EIP-4750: EOF - Functions](https://eips.ethereum.org/EIPS/eip-4750).\n\nEIP-4750 formalizes functions in the EVM object format, introducing\ncallable units of code. Opcodes introduced: `CALLF` (`0xE3`), `RETF`\n(`0xE4`).\n\"\"\"\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip4750_functions/helpers.py",
    "content": "\"\"\"EOF Functions tests helpers.\"\"\"\n\nimport itertools\n\n\"\"\"Storage addresses for common testing fields\"\"\"\n_slot = itertools.count()\nnext(_slot)  # don't use slot 0\nslot_code_worked = next(_slot)\nslot_last_slot = next(_slot)\nslot_stack_canary = next(_slot)\n\n\"\"\"Storage values for common testing fields\"\"\"\nvalue_code_worked = 0x2015\nvalue_canary_written = 0xDEADB12D\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip4750_functions/test_callf_execution.py",
    "content": "\"\"\"EOF CALLF execution tests.\"\"\"\n\nimport math\n\nimport pytest\n\nfrom ethereum_test_base_types import Hash, Storage\nfrom ethereum_test_specs import StateTestFiller\nfrom ethereum_test_tools import Account, EOFStateTestFiller\nfrom ethereum_test_tools import Opcodes as Op\nfrom ethereum_test_types import Alloc, Environment, Transaction\nfrom ethereum_test_types.eof.v1 import Container, Section\n\nfrom .. import EOF_FORK_NAME\nfrom ..eip7620_eof_create.helpers import (\n    value_canary_should_not_change,\n    value_canary_to_be_overwritten,\n)\nfrom .helpers import (\n    slot_code_worked,\n    slot_stack_canary,\n    value_canary_written,\n    value_code_worked,\n)\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-4750.md\"\nREFERENCE_SPEC_VERSION = \"14400434e1199c57d912082127b1d22643788d11\"\n\npytestmark = pytest.mark.valid_from(EOF_FORK_NAME)\n\n\n@pytest.mark.parametrize(\n    \"n,result\",\n    ((0, 1), (1, 1), (5, 120), (57, math.factorial(57)), (58, math.factorial(58) % 2**256)),\n)\ndef test_callf_factorial(eof_state_test: EOFStateTestFiller, n: int, result: int) -> None:\n    \"\"\"Test factorial implementation with recursive CALLF instructions.\"\"\"\n    eof_state_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    Op.SSTORE(0, Op.CALLF[1](Op.CALLDATALOAD(0))) + Op.STOP,\n                ),\n                Section.Code(\n                    Op.PUSH1[1]\n                    + Op.DUP2\n                    + Op.GT\n                    + Op.RJUMPI[4]\n                    + Op.POP\n                    + Op.PUSH1[1]\n                    + Op.RETF\n                    + Op.PUSH1[1]\n                    + Op.DUP2\n                    + Op.SUB\n                    + Op.CALLF[1]\n                    + Op.DUP2\n                    + Op.MUL\n                    + Op.SWAP1\n                    + Op.POP\n                    + Op.RETF,\n                    code_inputs=1,\n                    code_outputs=1,\n                ),\n            ]\n        ),\n        data=Hash(n),\n        container_post=Account(storage={0: result}),\n    )\n\n\n@pytest.mark.parametrize(\n    \"n,result\",\n    ((0, 1), (1, 1), (13, 233), (27, 196418)),\n)\ndef test_callf_fibonacci(eof_state_test: EOFStateTestFiller, n: int, result: int) -> None:\n    \"\"\"\n    Test fibonacci sequence implementation with recursive CALLF instructions.\n    \"\"\"\n    eof_state_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    Op.SSTORE(0, Op.CALLF[1](Op.CALLDATALOAD(0))) + Op.STOP,\n                ),\n                Section.Code(\n                    Op.PUSH1[2]\n                    + Op.DUP2\n                    + Op.GT\n                    + Op.RJUMPI[4]\n                    + Op.POP\n                    + Op.PUSH1[1]\n                    + Op.RETF\n                    + Op.PUSH1[2]\n                    + Op.DUP2\n                    + Op.SUB\n                    + Op.CALLF[1]\n                    + Op.PUSH1[1]\n                    + Op.DUP3\n                    + Op.SUB\n                    + Op.CALLF[1]\n                    + Op.ADD\n                    + Op.SWAP1\n                    + Op.POP\n                    + Op.RETF,\n                    code_inputs=1,\n                    code_outputs=1,\n                ),\n            ]\n        ),\n        gas_limit=15_000_000,\n        data=Hash(n),\n        container_post=Account(storage={0: result}),\n    )\n\n\n@pytest.mark.parametrize(\n    \"container\",\n    (\n        Container(\n            name=\"callf_sub_retf\",\n            sections=[\n                Section.Code(\n                    Op.SSTORE(\n                        slot_code_worked,\n                        Op.CALLF[1](value_code_worked + 1, 1),\n                    )\n                    + Op.STOP,\n                    max_stack_increase=2,\n                ),\n                Section.Code(\n                    Op.SUB + Op.RETF,\n                    code_inputs=2,\n                    code_outputs=1,\n                ),\n            ],\n        ),\n        Container(\n            name=\"max_code_sections_retf2\",\n            sections=[\n                Section.Code(\n                    Op.CALLF[1] + Op.SSTORE + Op.STOP,\n                )\n            ]\n            + [\n                Section.Code(\n                    Op.CALLF[i] + Op.RETF,\n                    code_outputs=2,\n                    max_stack_increase=2,\n                )\n                for i in range(2, 1024)\n            ]\n            + [\n                Section.Code(\n                    Op.PUSH2[value_code_worked] + Op.PUSH1[slot_code_worked] + Op.RETF,\n                    code_outputs=2,\n                ),\n            ],\n        ),\n        Container(\n            name=\"multiple_sections_of_different_types\",  # EOF1V4750_0005\n            sections=[\n                Section.Code(\n                    Op.PUSH0\n                    + Op.CALLF[1]\n                    + Op.CALLF[2]\n                    + Op.PUSH0\n                    + Op.CALLF[3]\n                    + Op.SSTORE\n                    + Op.STOP,\n                    max_stack_increase=4,\n                ),\n                Section.Code(\n                    Op.POP + Op.RETF,\n                    code_inputs=1,\n                    code_outputs=0,\n                ),\n                Section.Code(\n                    Op.PUSH2[value_code_worked] + Op.RETF,\n                    code_outputs=1,\n                ),\n                Section.Code(\n                    Op.DUP2 + Op.PUSH2[slot_code_worked] + Op.RETF,\n                    code_inputs=2,\n                    code_outputs=4,\n                ),\n            ],\n        ),\n    ),\n    ids=lambda x: x.name,\n)\ndef test_callf(eof_state_test: EOFStateTestFiller, container: Container) -> None:\n    \"\"\"Test basic usage of CALLF and RETF instructions.\"\"\"\n    eof_state_test(\n        container=container,\n        container_post=Account(storage={slot_code_worked: value_code_worked}),\n    )\n\n\n@pytest.mark.parametrize(\n    \"container\",\n    (\n        Container(\n            name=\"no_inputs\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 * 1023\n                    + Op.CALLF[1]\n                    + Op.POP * 1023\n                    + Op.SSTORE(slot_code_worked, value_code_worked)\n                    + Op.RETURN(0, 0),\n                ),\n                Section.Code(\n                    Op.PUSH0 + Op.POP + Op.RETF,\n                    code_outputs=0,\n                ),\n            ],\n        ),\n        Container(\n            name=\"with_inputs\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 * 1023\n                    + Op.CALLF[1]\n                    + Op.POP * 1023\n                    + Op.SSTORE(slot_code_worked, value_code_worked)\n                    + Op.RETURN(0, 0),\n                ),\n                Section.Code(\n                    Op.PUSH0 + Op.POP + Op.RETF,\n                    code_inputs=3,\n                    code_outputs=3,\n                    max_stack_increase=1,\n                ),\n            ],\n        ),\n        Container(\n            name=\"at_callf\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 * 1023\n                    + Op.CALLF[1]\n                    + Op.POP * 1023\n                    + Op.SSTORE(slot_code_worked, value_code_worked)\n                    + Op.RETURN(0, 0),\n                ),\n                Section.Code(\n                    Op.CALLF[2]\n                    +\n                    # stack has 1024 items\n                    Op.POP\n                    + Op.RETF,\n                    code_outputs=0,\n                ),\n                Section.Code(\n                    Op.PUSH0 + Op.RETF,  # stack has 1024 items\n                    code_outputs=1,\n                ),\n            ],\n        ),\n        Container(\n            name=\"at_push0\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 * 1022\n                    + Op.CALLF[1]\n                    + Op.POP * 1022\n                    + Op.SSTORE(slot_code_worked, value_code_worked)\n                    + Op.RETURN(0, 0),\n                ),\n                Section.Code(\n                    Op.PUSH0\n                    +\n                    # stack has 1023 items\n                    Op.CALLF[2]\n                    + Op.POP\n                    + Op.RETF,\n                    code_outputs=0,\n                ),\n                Section.Code(\n                    Op.PUSH0\n                    +\n                    # stack has 1024 items\n                    Op.POP\n                    + Op.RETF,\n                    code_outputs=0,\n                ),\n            ],\n        ),\n        Container(\n            name=\"nested_with_inputs_at_push0\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 * 1022\n                    + Op.CALLF[1]\n                    + Op.POP * 1022\n                    + Op.SSTORE(slot_code_worked, value_code_worked)\n                    + Op.RETURN(0, 0),\n                ),\n                Section.Code(\n                    Op.PUSH0\n                    +\n                    # Stack has 1023 items\n                    Op.CALLF[2]\n                    + Op.POP\n                    + Op.RETF,\n                    code_inputs=3,\n                    code_outputs=3,\n                    max_stack_increase=1,\n                ),\n                Section.Code(\n                    Op.PUSH0\n                    +\n                    # Stack has 1024 items\n                    Op.POP\n                    + Op.RETF,\n                    code_inputs=3,\n                    code_outputs=3,\n                    max_stack_increase=1,\n                ),\n            ],\n        ),\n        Container(\n            name=\"store_value_unmodified_by_callf\",\n            sections=[\n                Section.Code(\n                    Op.PUSH2[value_code_worked]  # to be stored after CALLF\n                    + Op.PUSH0  # input to CALLF\n                    + Op.CALLF[1]\n                    + Op.PUSH1[slot_code_worked]\n                    + Op.SSTORE\n                    + Op.STOP,\n                    max_stack_increase=2,\n                ),\n                Section.Code(\n                    Op.POP  # clear input\n                    + Op.PUSH0 * 1023  # reach max stack height\n                    + Op.POP * 1023\n                    + Op.RETF,  # return nothing\n                    code_inputs=1,\n                    code_outputs=0,\n                ),\n            ],\n        ),\n        Container(\n            name=\"with_rjumpi\",\n            sections=[\n                Section.Code(\n                    Op.PUSH1[1]  # input[1] to CALLF\n                    + Op.PUSH0  # input[0] to CALLF\n                    + Op.CALLF[1]\n                    + Op.SSTORE(slot_code_worked, value_code_worked)\n                    + Op.STOP,\n                    max_stack_increase=2,\n                ),\n                Section.Code(\n                    Op.POP  # clear input[0]\n                    + Op.RJUMPI[2 * 1023]  # jump to RETF based on input[1]\n                    + Op.PUSH0 * 1023  # reach max stack height\n                    + Op.POP * 1023\n                    + Op.RETF,  # return nothing\n                    code_inputs=2,\n                    code_outputs=0,\n                ),\n            ],\n        ),\n    ),\n    ids=lambda x: x.name,\n)\ndef test_callf_operand_stack_size_max(\n    eof_state_test: EOFStateTestFiller, container: Container\n) -> None:\n    \"\"\"Test operand stack reaching 1024 items.\"\"\"\n    eof_state_test(\n        container=container,\n        container_post=Account(storage={slot_code_worked: value_code_worked}),\n    )\n\n\n@pytest.mark.parametrize(\n    \"container\",\n    (\n        Container(\n            name=\"no_inputs\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 * 1023\n                    + Op.CALLF[1]\n                    + Op.POP * 1023\n                    + Op.SSTORE(slot_code_worked, value_code_worked)\n                    + Op.RETURN(0, 0),\n                ),\n                Section.Code(\n                    Op.PUSH0  # Stack has 1024 items\n                    + Op.CALLF[2]\n                    + Op.POP\n                    + Op.RETF,\n                    code_outputs=0,\n                ),\n                Section.Code(\n                    Op.PUSH0  # Runtime stack overflow\n                    + Op.POP\n                    + Op.RETF,\n                    code_outputs=0,\n                ),\n            ],\n        ),\n        Container(\n            name=\"with_inputs\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 * 1023\n                    + Op.CALLF[1]\n                    + Op.POP * 1023\n                    + Op.SSTORE(slot_code_worked, value_code_worked)\n                    + Op.RETURN(0, 0),\n                ),\n                Section.Code(\n                    Op.PUSH0  # Stack has 1024 items\n                    + Op.CALLF[2]\n                    + Op.POP\n                    + Op.RETF,\n                    code_inputs=3,\n                    code_outputs=3,\n                    max_stack_increase=1,\n                ),\n                Section.Code(\n                    Op.PUSH0  # Runtime stackoverflow\n                    + Op.POP\n                    + Op.RETF,\n                    code_inputs=3,\n                    code_outputs=3,\n                    max_stack_increase=1,\n                ),\n            ],\n        ),\n    ),\n    ids=lambda x: x.name,\n)\ndef test_callf_operand_stack_overflow(\n    eof_state_test: EOFStateTestFiller, container: Container\n) -> None:\n    \"\"\"Test stack overflowing 1024 items in called function.\"\"\"\n    eof_state_test(\n        container=container,\n        container_post=Account(storage={slot_code_worked: 0}),\n    )\n\n\n@pytest.mark.parametrize(\n    (\"stack_height\", \"failure\"),\n    (\n        pytest.param(1020, False, id=\"no_overflow\"),\n        pytest.param(1021, True, id=\"with_overflow\"),\n    ),\n)\ndef test_callf_sneaky_stack_overflow(\n    stack_height: int,\n    failure: bool,\n    state_test: StateTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    CALLF where a normal execution would not overflow, but EIP-4750 CALLF rule\n    #3 triggers.\n\n    Code Section 0 - Mostly fills the stack\n    Code Section 1 - jumper to 2, so container verification passes (we want a\n                     runtime failure)\n    Code Section 2 - Could require too much stack, but doesn't as it JUMPFs\n                     to 3\n    Code Section 3 - Writes canary values\n\n    The intent is to catch implementations of CALLF that don't enforce rule #3\n    \"\"\"\n    env = Environment()\n    sender = pre.fund_eoa()\n    inputs = 1\n    outputs = 3\n    contract_address = pre.deploy_contract(\n        code=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 * stack_height\n                    + Op.CALLF[1]\n                    + Op.POP * stack_height\n                    + Op.SSTORE(slot_code_worked, value_code_worked)\n                    + Op.RETURN(0, 0),\n                    max_stack_increase=stack_height + outputs - inputs,\n                ),\n                Section.Code(\n                    Op.CALLF[2] + Op.POP + Op.RETF,\n                    code_inputs=inputs,\n                    code_outputs=outputs,\n                    max_stack_increase=outputs - inputs + 1,\n                ),\n                Section.Code(\n                    Op.RJUMPI[4]\n                    + Op.PUSH0\n                    + Op.JUMPF[3]\n                    + Op.PUSH0 * (outputs - inputs + 3)\n                    + Op.POP\n                    + Op.RETF,\n                    code_inputs=inputs,\n                    code_outputs=outputs + 1,\n                    max_stack_increase=outputs - inputs + 2,\n                ),\n                Section.Code(\n                    Op.POP * inputs\n                    + Op.SSTORE(slot_stack_canary, value_canary_written)\n                    + Op.PUSH0 * (outputs + 1)\n                    + Op.RETF,\n                    code_inputs=inputs,\n                    code_outputs=outputs + 1,\n                    max_stack_increase=outputs - inputs + 1,\n                ),\n            ],\n        ),\n        storage={\n            slot_code_worked: (\n                value_canary_should_not_change if failure else value_canary_to_be_overwritten\n            ),\n            slot_stack_canary: (\n                value_canary_should_not_change if failure else value_canary_to_be_overwritten\n            ),\n        },\n    )\n\n    post = {\n        contract_address: Account(\n            storage={\n                slot_code_worked: (\n                    value_canary_should_not_change if failure else value_code_worked\n                ),\n                slot_stack_canary: (\n                    value_canary_should_not_change if failure else value_canary_written\n                ),\n            }\n        )\n    }\n\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=10_000_000,\n        sender=sender,\n    )\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.parametrize(\n    (\"stack_height\", \"failure\"),\n    (\n        pytest.param(1018, False, id=\"no_max_stack\"),\n        pytest.param(1019, False, id=\"with_max_stack\"),\n        pytest.param(1020, True, id=\"over_max_stack\"),\n    ),\n)\ndef test_callf_max_stack(\n    stack_height: int,\n    failure: bool,\n    state_test: StateTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    CALLF where a normal execution would not overflow, but EIP-4750 CALLF rule\n    #4 triggers.\n\n    Code Section 0 - calls #1 with the configured height, but we load some\n                     operands so the return stack does not overflow\n    Code Section 1 - expands stack, calls #2, THEN recursively calls itself\n                     until input is zero, and returns.\n    Code Section 2 - Just returns, zero inputs, zero outputs\n\n    This will catch  CALLF execution rule #3: always fail if the operand stack\n    is full. Not checking rule 3 results in a call to section 2 and not\n    overfilling the stack (as it is just RETF).\n    \"\"\"\n    env = Environment()\n    sender = pre.fund_eoa()\n    contract_address = pre.deploy_contract(\n        code=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 * 4  # fill the stack up a little bit\n                    + Op.PUSH2(stack_height)\n                    + Op.CALLF[1]\n                    + Op.SSTORE(slot_code_worked, value_code_worked)\n                    + Op.RETURN(0, 0),\n                ),\n                Section.Code(\n                    Op.PUSH1(1)  # arg, 1\n                    + Op.SWAP1  # 1, arg\n                    + Op.SUB  # arg-1,\n                    + Op.DUP1  # arg-1, arg-1\n                    + Op.CALLF[2]  # arg-1, arg-1\n                    + Op.ISZERO  # jump?, arg-1,\n                    + Op.RJUMPI[5]  # arg-1\n                    + Op.DUP1  # arg-1, arg-1\n                    + Op.CALLF[1]  # ret, arg-1\n                    + Op.POP  # arg-1\n                    + Op.RETF,\n                    code_inputs=1,\n                    code_outputs=1,\n                ),\n                Section.Code(\n                    Op.RETF,\n                    code_outputs=0,\n                ),\n            ],\n        ),\n        storage={\n            slot_code_worked: (\n                value_canary_should_not_change if failure else value_canary_to_be_overwritten\n            ),\n        },\n    )\n\n    post = {\n        contract_address: Account(\n            storage={\n                slot_code_worked: (\n                    value_canary_should_not_change if failure else value_code_worked\n                ),\n            }\n        )\n    }\n\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=100_000,\n        sender=sender,\n    )\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\ndef test_callf_retf_memory_context(\n    state_test: StateTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"Verifies CALLF and RETF don't corrupt memory.\"\"\"\n    env = Environment()\n    storage = Storage()\n    contract_address = pre.deploy_contract(\n        code=Container(\n            sections=[\n                Section.Code(\n                    Op.SSTORE(storage.store_next(value_code_worked), value_code_worked)\n                    + Op.MSTORE(0, 1)\n                    + Op.CALLF[1]\n                    + Op.SSTORE(storage.store_next(64), Op.MSIZE())\n                    + Op.SSTORE(storage.store_next(2), Op.MLOAD(0))\n                    + Op.SSTORE(storage.store_next(3), Op.MLOAD(32))\n                    + Op.STOP,\n                ),\n                Section.Code(\n                    Op.SSTORE(storage.store_next(32), Op.MSIZE())\n                    + Op.SSTORE(storage.store_next(1), Op.MLOAD(0))\n                    + Op.MSTORE(0, 2)\n                    + Op.MSTORE(32, 3)\n                    + Op.RETF,\n                    code_outputs=0,\n                ),\n            ],\n        ),\n    )\n    post = {\n        contract_address: Account(storage=storage),\n    }\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=500_000,\n        sender=pre.fund_eoa(),\n    )\n    state_test(env=env, pre=pre, post=post, tx=tx)\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip4750_functions/test_code_validation.py",
    "content": "\"\"\"Code validation of CALLF, RETF opcodes tests.\"\"\"\n\nfrom typing import List\n\nimport pytest\n\nfrom ethereum_test_tools import EOFException, EOFTestFiller\nfrom ethereum_test_types.eof.constants import MAX_RUNTIME_STACK_HEIGHT\nfrom ethereum_test_types.eof.v1 import Container, Section\nfrom ethereum_test_types.eof.v1.constants import (\n    MAX_CODE_OUTPUTS,\n    MAX_CODE_SECTIONS,\n    MAX_STACK_INCREASE_LIMIT,\n)\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .. import EOF_FORK_NAME\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-4750.md\"\nREFERENCE_SPEC_VERSION = \"14400434e1199c57d912082127b1d22643788d11\"\n\npytestmark = pytest.mark.valid_from(EOF_FORK_NAME)\n\nVALID: List[Container] = [\n    Container(\n        name=\"retf_stack_validation_0\",\n        sections=[\n            Section.Code(code=Op.CALLF[1] + Op.STOP, max_stack_height=2),\n            Section.Code(\n                code=Op.PUSH0 * 2 + Op.RETF,\n                code_outputs=2,\n                max_stack_height=2,\n            ),\n        ],\n    ),\n    Container(\n        name=\"retf_stack_validation_3\",\n        sections=[\n            Section.Code(\n                code=Op.PUSH0 + Op.CALLF[1] + Op.STOP,\n                max_stack_height=2,\n            ),\n            Section.Code(\n                code=Op.RJUMPI[7] + Op.PUSH1[1] * 2 + Op.RJUMP[2] + Op.PUSH0 * 2 + Op.RETF,\n                code_inputs=1,\n                code_outputs=2,\n                max_stack_height=2,\n            ),\n        ],\n    ),\n    Container(\n        name=\"retf_code_input_output\",\n        sections=[\n            Section.Code(code=Op.PUSH0 + Op.CALLF[1] + Op.POP + Op.POP + Op.STOP),\n            Section.Code(\n                code=Op.PUSH0 + Op.RETF,\n                code_outputs=1,\n            ),\n        ],\n    ),\n    Container(\n        name=\"stack_height_equal_code_outputs_retf_zero_stop\",\n        sections=[\n            Section.Code(\n                code=Op.CALLF[1] + Op.POP + Op.STOP,\n                code_inputs=0,\n                max_stack_height=1,\n            ),\n            Section.Code(\n                code=(\n                    Op.RJUMPI[len(Op.PUSH0) + len(Op.RETF)](Op.ORIGIN)\n                    + Op.PUSH0\n                    + Op.RETF\n                    + Op.STOP\n                ),\n                code_inputs=0,\n                code_outputs=1,\n                max_stack_height=1,\n            ),\n        ],\n    ),\n    Container(\n        name=\"callf_max_code_sections_1\",\n        sections=[\n            Section.Code(code=(sum(Op.CALLF[i] for i in range(1, MAX_CODE_SECTIONS)) + Op.STOP))\n        ]\n        + (\n            [\n                Section.Code(\n                    code=Op.RETF,\n                    code_outputs=0,\n                )\n            ]\n            * (MAX_CODE_SECTIONS - 1)\n        ),\n    ),\n    Container(\n        name=\"callf_max_code_sections_2\",\n        sections=[Section.Code(code=(Op.CALLF[1] + Op.STOP))]\n        + [\n            Section.Code(\n                code=(Op.CALLF[i + 2] + Op.RETF),\n                code_outputs=0,\n            )\n            for i in range(MAX_CODE_SECTIONS - 2)\n        ]\n        + [\n            Section.Code(\n                code=Op.RETF,\n                code_outputs=0,\n            )\n        ],\n    ),\n]\n\nINVALID: List[Container] = [\n    Container(\n        name=\"retf_stack_validation_1\",\n        sections=[\n            Section.Code(code=Op.CALLF[1] + Op.STOP, max_stack_height=2),\n            Section.Code(\n                code=Op.PUSH0 + Op.RETF,\n                code_outputs=2,\n                max_stack_height=1,\n            ),\n        ],\n        validity_error=EOFException.STACK_UNDERFLOW,\n    ),\n    Container(\n        name=\"retf_variable_stack_0\",\n        sections=[\n            Section.Code(code=Op.CALLF[1] + Op.STOP, max_stack_height=5),\n            Section.Code(\n                code=Op.PUSH0 + Op.PUSH1[0] + Op.RJUMPI[2] + Op.PUSH0 * 2 + Op.RETF,\n                code_outputs=5,\n                max_stack_height=3,\n            ),\n        ],\n        validity_error=EOFException.STACK_UNDERFLOW,\n    ),\n    Container(\n        name=\"retf_variable_stack_1\",\n        sections=[\n            Section.Code(code=Op.CALLF[1] + Op.STOP, max_stack_height=3),\n            Section.Code(\n                code=Op.PUSH0 + Op.PUSH1[0] + Op.RJUMPI[2] + Op.PUSH0 * 2 + Op.RETF,\n                code_outputs=3,\n                max_stack_height=3,\n            ),\n        ],\n        validity_error=EOFException.STACK_UNDERFLOW,\n    ),\n    Container(\n        name=\"retf_variable_stack_4\",\n        sections=[\n            Section.Code(code=Op.CALLF[1] + Op.STOP, max_stack_height=3),\n            Section.Code(\n                code=Op.PUSH0 * 3 + Op.PUSH1[0] + Op.RJUMPI[2] + Op.POP * 2 + Op.RETF,\n                code_outputs=3,\n                max_stack_height=4,\n            ),\n        ],\n        validity_error=EOFException.STACK_UNDERFLOW,\n    ),\n    Container(\n        name=\"callf_inputs_underflow_0\",\n        sections=[\n            Section.Code(code=Op.CALLF[1] + Op.STOP, max_stack_height=1),\n            Section.Code(\n                code=Op.PUSH0 + Op.CALLF[2] + Op.RETF,\n                code_outputs=1,\n                max_stack_height=1,\n            ),\n            Section.Code(\n                code=Op.POP + Op.RETF,\n                code_inputs=2,\n                code_outputs=1,\n                max_stack_height=2,\n            ),\n        ],\n        validity_error=EOFException.STACK_UNDERFLOW,\n    ),\n    Container(\n        # CALLF to function with incorrectly specified number of inputs\n        name=\"code_inputs_underflow_1\",  # EOF1I4750_0020\n        sections=[\n            Section.Code(code=(Op.PUSH0 + Op.PUSH0 + Op.CALLF[1] + Op.STOP)),\n            Section.Code(\n                code=(Op.ADD + Op.RETF),\n                code_inputs=0,\n                code_outputs=0,\n            ),\n        ],\n        validity_error=EOFException.STACK_UNDERFLOW,\n    ),\n    Container(\n        name=\"code_inputs_underflow_2\",\n        sections=[\n            Section.Code(code=(Op.PUSH0 + Op.CALLF[1] + Op.STOP)),\n            Section.Code(\n                code=(Op.POP + Op.POP + Op.RETF),\n                code_inputs=1,\n                code_outputs=0,\n            ),\n        ],\n        validity_error=EOFException.STACK_UNDERFLOW,\n    ),\n    Container(\n        # CALLF without enough inputs\n        name=\"callf_inputs_underflow\",  # EOF1I4750_0019\n        sections=[\n            Section.Code(code=(Op.CALLF[1] + Op.STOP)),\n            Section.Code(\n                code=(Op.ADD + Op.RETF),\n                code_inputs=2,\n                code_outputs=1,\n            ),\n        ],\n        validity_error=EOFException.STACK_UNDERFLOW,\n    ),\n    Container(\n        name=\"retf_stack_validation_2\",\n        sections=[\n            Section.Code(code=Op.CALLF[1] + Op.STOP, max_stack_height=2),\n            Section.Code(\n                code=Op.PUSH0 * 3 + Op.RETF,\n                code_outputs=2,\n                max_stack_height=3,\n            ),\n        ],\n        validity_error=EOFException.STACK_HIGHER_THAN_OUTPUTS,\n    ),\n    Container(\n        name=\"retf_variable_stack_2\",\n        sections=[\n            Section.Code(code=Op.CALLF[1] + Op.STOP, max_stack_height=1),\n            Section.Code(\n                code=Op.PUSH0 + Op.PUSH1[0] + Op.RJUMPI[2] + Op.PUSH0 * 2 + Op.RETF,\n                code_outputs=1,\n                max_stack_height=3,\n            ),\n        ],\n        validity_error=EOFException.STACK_HIGHER_THAN_OUTPUTS,\n    ),\n    Container(\n        name=\"retf_variable_stack_5\",\n        sections=[\n            Section.Code(code=Op.CALLF[1] + Op.STOP, max_stack_height=1),\n            Section.Code(\n                code=Op.PUSH0 + Op.PUSH1[0] + Op.RJUMPI[1] + Op.PUSH0 + Op.RETF,\n                code_outputs=1,\n                max_stack_height=3,\n            ),\n        ],\n        validity_error=EOFException.STACK_HIGHER_THAN_OUTPUTS,\n    ),\n    Container(\n        name=\"retf_variable_stack_6\",\n        sections=[\n            Section.Code(code=Op.CALLF[1] + Op.STOP, max_stack_height=1),\n            Section.Code(\n                code=Op.PUSH0 * 2 + Op.PUSH1[0] + Op.RJUMPI[1] + Op.POP + Op.RETF,\n                code_outputs=1,\n                max_stack_height=3,\n            ),\n        ],\n        validity_error=EOFException.STACK_HIGHER_THAN_OUTPUTS,\n    ),\n    Container(\n        name=\"retf_variable_stack_3\",\n        sections=[\n            Section.Code(code=Op.CALLF[1] + Op.STOP),\n            Section.Code(\n                code=Op.PUSH0 + Op.PUSH1[0] + Op.RJUMPI[2] + Op.PUSH0 * 2 + Op.RETF,\n                code_outputs=0,\n                max_stack_height=3,\n            ),\n        ],\n        validity_error=EOFException.STACK_HIGHER_THAN_OUTPUTS,\n    ),\n    Container(\n        name=\"stack_higher_than_code_outputs\",\n        sections=[\n            Section.Code(\n                code=(Op.CALLF[1] + Op.STOP),\n            ),\n            Section.Code(\n                code=(Op.PUSH0 + Op.RETF),\n                code_outputs=0,\n            ),\n        ],\n        validity_error=EOFException.STACK_HIGHER_THAN_OUTPUTS,\n    ),\n    Container(\n        name=\"stack_shorter_than_code_outputs\",\n        sections=[\n            Section.Code(\n                code=(Op.CALLF[1] + Op.STOP),\n            ),\n            Section.Code(\n                code=(Op.PUSH0 + Op.RETF),\n                code_outputs=2,\n                max_stack_height=1,\n            ),\n        ],\n        validity_error=EOFException.INVALID_MAX_STACK_INCREASE,\n    ),\n    Container(\n        name=\"stack_shorter_than_code_outputs_1\",\n        sections=[\n            Section.Code(\n                code=(Op.CALLF[1] + Op.STOP),\n                # max_stack_heights of sections aligned with actual stack\n                max_stack_height=1,\n            ),\n            Section.Code(\n                code=(Op.PUSH0 + Op.RETF),\n                code_outputs=2,\n                max_stack_height=1,\n            ),\n        ],\n        validity_error=EOFException.INVALID_MAX_STACK_INCREASE,\n    ),\n    Container(\n        name=\"stack_shorter_than_code_outputs_2\",\n        sections=[\n            Section.Code(\n                code=(Op.CALLF[1] + Op.STOP),\n                # max_stack_heights of sections aligned with declared outputs\n                max_stack_height=2,\n            ),\n            Section.Code(\n                code=(Op.PUSH0 + Op.RETF),\n                code_outputs=2,\n                max_stack_height=2,\n            ),\n        ],\n        validity_error=EOFException.STACK_UNDERFLOW,\n    ),\n    Container(\n        name=\"overflow_code_sections_1\",\n        sections=[\n            Section.Code(\n                code=(Op.CALLF[1] + Op.STOP),\n            )\n        ]\n        + [\n            Section.Code(\n                code=(Op.CALLF[i + 2] + Op.RETF),\n                code_outputs=0,\n            )\n            for i in range(MAX_CODE_SECTIONS)\n        ]\n        + [\n            Section.Code(\n                code=Op.RETF,\n                code_outputs=0,\n            )\n        ],\n        validity_error=EOFException.TOO_MANY_CODE_SECTIONS,\n    ),\n]\n\n\ndef container_name(c: Container) -> str:\n    \"\"\"Return the name of the container for use in pytest ids.\"\"\"\n    if hasattr(c, \"name\") and c.name is not None:\n        return c.name\n    else:\n        return c.__class__.__name__\n\n\n@pytest.mark.parametrize(\n    \"container\",\n    [*VALID, *INVALID],\n    ids=container_name,\n)\ndef test_eof_validity(\n    eof_test: EOFTestFiller,\n    container: Container,\n) -> None:\n    \"\"\"\n    Test EOF container validation for features around EIP-4750 / Functions /\n    Code Sections.\n    \"\"\"\n    eof_test(container=container)\n\n\n@pytest.mark.parametrize(\n    \"container\",\n    [\n        Container(\n            name=\"imm0\",\n            sections=[\n                Section.Code(\n                    code=Op.CALLF,\n                )\n            ],\n        ),\n        Container(\n            name=\"imm1\",\n            sections=[\n                Section.Code(\n                    code=Op.CALLF + b\"\\x00\",\n                )\n            ],\n        ),\n        Container(\n            name=\"imm_from_next_section\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 + Op.PUSH0 + Op.CALLF[1] + Op.STOP,\n                ),\n                Section.Code(\n                    code=Op.CALLF + b\"\\x00\",  # would be valid with \"02\" + Op.RETF.\n                    code_inputs=2,\n                    code_outputs=1,\n                    max_stack_height=2,\n                ),\n                Section.Code(\n                    code=Op.SUB + Op.RETF,  # SUB (0x02) can be confused with CALLF[2].\n                    code_inputs=2,\n                    code_outputs=1,\n                    max_stack_height=2,\n                ),\n            ],\n        ),\n    ],\n    ids=container_name,\n)\ndef test_callf_truncated_immediate(\n    eof_test: EOFTestFiller,\n    container: Container,\n) -> None:\n    \"\"\"Test cases for CALLF instructions with truncated immediate bytes.\"\"\"\n    eof_test(container=container, expect_exception=EOFException.TRUNCATED_INSTRUCTION)\n\n\n@pytest.mark.parametrize(\n    \"container\",\n    [\n        Container(\n            name=\"callf1\",  # EOF1I4750_0010\n            sections=[\n                Section.Code(\n                    Op.CALLF[1] + Op.STOP,\n                )\n            ],\n        ),\n        Container(\n            name=\"callf2\",  # EOF1I0011\n            sections=[\n                Section.Code(\n                    Op.CALLF[2] + Op.STOP,\n                ),\n                Section.Code(\n                    Op.RETF,\n                    code_outputs=0,\n                ),\n            ],\n        ),\n        Container(\n            name=\"callf1_callf2\",\n            sections=[\n                Section.Code(\n                    Op.CALLF[1] + Op.STOP,\n                ),\n                Section.Code(\n                    Op.CALLF[2] + Op.RETF,\n                    code_outputs=0,\n                ),\n            ],\n        ),\n    ],\n    ids=container_name,\n)\ndef test_invalid_code_section_index(\n    eof_test: EOFTestFiller,\n    container: Container,\n) -> None:\n    \"\"\"\n    Test cases for CALLF instructions with invalid target code section index.\n    \"\"\"\n    eof_test(container=container, expect_exception=EOFException.INVALID_CODE_SECTION_INDEX)\n\n\n@pytest.mark.parametrize(\n    \"container\",\n    [\n        Container(\n            name=\"unreachable1\",\n            sections=[\n                Section.Code(Op.INVALID),\n                Section.Code(Op.INVALID),  # unreachable\n            ],\n        ),\n        Container(\n            name=\"unreachable1_selfjumpf\",\n            sections=[\n                Section.Code(Op.INVALID),\n                Section.Code(Op.JUMPF[1]),  # unreachable\n            ],\n        ),\n        Container(\n            name=\"unreachable1_selfcallf\",\n            sections=[\n                Section.Code(Op.INVALID),\n                Section.Code(Op.CALLF[1] + Op.STOP),  # unreachable\n            ],\n        ),\n        Container(\n            name=\"unreachable1_jumpf0\",\n            sections=[\n                Section.Code(Op.INVALID),\n                Section.Code(Op.JUMPF[0]),  # unreachable\n            ],\n        ),\n        Container(\n            name=\"unreachable1_callf0\",\n            sections=[\n                Section.Code(Op.INVALID),\n                Section.Code(Op.CALLF[0] + Op.STOP),  # unreachable\n            ],\n        ),\n        Container(\n            name=\"unreachable1_selfcall_jumpf0\",\n            sections=[\n                Section.Code(Op.INVALID),\n                Section.Code(Op.CALLF[1] + Op.JUMPF[0]),  # unreachable\n            ],\n        ),\n        Container(\n            name=\"unreachable12_of3_2jumpf1\",\n            sections=[\n                Section.Code(Op.INVALID),\n                Section.Code(Op.STOP),  # unreachable\n                Section.Code(Op.JUMPF[1]),  # unreachable\n            ],\n        ),\n        Container(\n            name=\"unreachable12_of3_2callf1\",\n            sections=[\n                Section.Code(Op.INVALID),\n                Section.Code(Op.STOP),  # unreachable\n                Section.Code(Op.CALLF[1] + Op.STOP),  # unreachable\n            ],\n        ),\n        Container(\n            name=\"unreachable12_of3_jumpf_loop\",\n            sections=[\n                Section.Code(Op.INVALID),\n                Section.Code(Op.JUMPF[2]),  # unreachable\n                Section.Code(Op.JUMPF[1]),  # unreachable\n            ],\n        ),\n        Container(\n            name=\"unreachable12_of3_callf_loop_stop\",\n            sections=[\n                Section.Code(Op.INVALID),\n                Section.Code(Op.CALLF[2] + Op.STOP),  # unreachable\n                Section.Code(Op.CALLF[1] + Op.STOP),  # unreachable\n            ],\n        ),\n        Container(\n            name=\"unreachable12_of3_callf_loop_retf\",\n            sections=[\n                Section.Code(Op.INVALID),\n                Section.Code(Op.CALLF[2] + Op.RETF, code_outputs=0),  # unreachable\n                Section.Code(Op.CALLF[1] + Op.RETF, code_outputs=0),  # unreachable\n            ],\n        ),\n        Container(\n            name=\"unreachable12_of3_callf_loop_mixed\",\n            sections=[\n                Section.Code(Op.INVALID),\n                Section.Code(Op.CALLF[2] + Op.STOP),  # unreachable\n                Section.Code(Op.CALLF[1] + Op.RETF, code_outputs=0),  # unreachable\n            ],\n        ),\n        Container(\n            name=\"selfjumpf0_unreachable1\",\n            sections=[\n                Section.Code(Op.JUMPF[0]),  # self-reference\n                Section.Code(Op.JUMPF[1]),  # unreachable\n            ],\n        ),\n        Container(\n            name=\"unreachable2_of3\",\n            sections=[\n                Section.Code(Op.CALLF[1] + Op.STOP),\n                Section.Code(Op.RETF, code_outputs=0),\n                Section.Code(Op.INVALID),  # unreachable\n            ],\n        ),\n        Container(\n            name=\"unreachable1_of3\",\n            sections=[\n                Section.Code(Op.CALLF[2] + Op.STOP),\n                Section.Code(Op.INVALID),  # unreachable\n                Section.Code(Op.RETF, code_outputs=0),\n            ],\n        ),\n        Container(\n            name=\"unreachable1_of4\",\n            sections=[\n                Section.Code(Op.CALLF[3] + Op.STOP),\n                Section.Code(Op.INVALID),  # unreachable\n                Section.Code(Op.RETF, code_outputs=0),\n                Section.Code(Op.CALLF[2] + Op.RETF, code_outputs=0),\n            ],\n        ),\n        Container(\n            name=\"unreachable2_of3_retf\",\n            sections=[\n                Section.Code(Op.JUMPF[1]),\n                Section.Code(Op.STOP),\n                Section.Code(Op.RETF, code_outputs=0),\n            ],\n        ),\n        Container(\n            name=\"unreachable2-255\",\n            sections=[\n                Section.Code(Op.JUMPF[1]),\n                Section.Code(Op.JUMPF[1]),  # self-reference\n            ]\n            + [Section.Code(Op.JUMPF[i]) for i in range(3, 255)]  # unreachable\n            + [Section.Code(Op.STOP)],  # unreachable\n        ),\n        Container(\n            name=\"unreachable255\",\n            sections=[Section.Code(Op.JUMPF[i]) for i in range(1, 255)]\n            + [\n                Section.Code(Op.JUMPF[254]),  # self-reference\n                Section.Code(Op.STOP),  # unreachable\n            ],\n        ),\n    ],\n    ids=container_name,\n)\ndef test_unreachable_code_sections(\n    eof_test: EOFTestFiller,\n    container: Container,\n) -> None:\n    \"\"\"\n    Test cases for EOF unreachable code sections (i.e. code sections not\n    reachable from the code section 0).\n    \"\"\"\n    eof_test(container=container, expect_exception=EOFException.UNREACHABLE_CODE_SECTIONS)\n\n\n@pytest.mark.parametrize(\"callee_outputs\", [1, 2, MAX_CODE_OUTPUTS])\ndef test_callf_stack_height_limit_exceeded(eof_test: EOFTestFiller, callee_outputs: int) -> None:\n    \"\"\"\n    Test for invalid EOF code containing CALLF instruction exceeding the stack\n    height limit. The code reaches the maximum runtime stack height (1024)\n    which is above the EOF limit for the stack height in the type section\n    (1023).\n    \"\"\"\n    callf_stack_height = MAX_RUNTIME_STACK_HEIGHT - callee_outputs\n    container = Container(\n        sections=[\n            Section.Code(\n                Op.PUSH0 * callf_stack_height + Op.CALLF[1] + Op.STOP,\n                max_stack_height=MAX_RUNTIME_STACK_HEIGHT,\n            ),\n            Section.Code(\n                Op.PUSH0 * callee_outputs + Op.RETF,\n                code_outputs=callee_outputs,\n                max_stack_height=callee_outputs,\n            ),\n        ],\n    )\n    eof_test(container=container, expect_exception=EOFException.MAX_STACK_INCREASE_ABOVE_LIMIT)\n\n\n@pytest.mark.parametrize(\"stack_height\", [512, 513, 1023])\ndef test_callf_stack_overflow(eof_test: EOFTestFiller, stack_height: int) -> None:\n    \"\"\"\n    Test CALLF instruction recursively calling itself causing stack overflow.\n    \"\"\"\n    container = Container(\n        sections=[\n            Section.Code(code=Op.CALLF[1] + Op.STOP),\n            Section.Code(\n                code=Op.PUSH1[1] * stack_height + Op.CALLF[1] + Op.POP * stack_height + Op.RETF,\n                code_outputs=0,\n                max_stack_height=stack_height,\n            ),\n        ],\n    )\n    stack_overflow = stack_height > MAX_RUNTIME_STACK_HEIGHT // 2\n    eof_test(\n        container=container,\n        expect_exception=EOFException.STACK_OVERFLOW if stack_overflow else None,\n    )\n\n\n@pytest.mark.parametrize(\"stack_height\", [1, 2])\ndef test_callf_stack_overflow_after_callf(eof_test: EOFTestFiller, stack_height: int) -> None:\n    \"\"\"\n    Test CALLF instruction calling next function causing stack overflow at\n    validation time.\n    \"\"\"\n    container = Container(\n        sections=[\n            Section.Code(code=Op.CALLF[1] + Op.STOP),\n            Section.Code(\n                code=Op.PUSH1[1] * 1023 + Op.CALLF[2] + Op.POP * 1023 + Op.RETF,\n                code_outputs=0,\n                max_stack_height=1023,\n            ),\n            Section.Code(\n                code=Op.PUSH0 * stack_height + Op.POP * stack_height + Op.RETF,\n                code_outputs=0,\n                max_stack_height=stack_height,\n            ),\n        ],\n    )\n    stack_overflow = 1023 + stack_height > MAX_RUNTIME_STACK_HEIGHT\n    eof_test(\n        container=container,\n        expect_exception=EOFException.STACK_OVERFLOW if stack_overflow else None,\n    )\n\n\n@pytest.mark.parametrize(\"stack_height\", [512, 514, 515])\ndef test_callf_stack_overflow_variable_stack(eof_test: EOFTestFiller, stack_height: int) -> None:\n    \"\"\"Test CALLF instruction causing stack overflow.\"\"\"\n    container = Container(\n        sections=[\n            Section.Code(\n                code=Op.RJUMPI[2](0)\n                + Op.PUSH0 * (MAX_RUNTIME_STACK_HEIGHT // 2)\n                + Op.CALLF[1]\n                + Op.STOP,\n                max_stack_height=512,\n            ),\n            Section.Code(\n                code=Op.PUSH1[1] * stack_height + Op.POP * stack_height + Op.RETF,\n                code_outputs=0,\n                max_stack_height=stack_height,\n            ),\n        ],\n    )\n    stack_overflow = stack_height > MAX_RUNTIME_STACK_HEIGHT // 2\n    eof_test(\n        container=container,\n        expect_exception=EOFException.STACK_OVERFLOW if stack_overflow else None,\n    )\n\n\n@pytest.mark.parametrize(\"stack_height\", [509, 510, 512])\ndef test_callf_stack_overflow_variable_stack_2(eof_test: EOFTestFiller, stack_height: int) -> None:\n    \"\"\"Test CALLF instruction causing stack overflow.\"\"\"\n    container = Container(\n        sections=[\n            Section.Code(\n                code=Op.PUSH0 * 2\n                + Op.RJUMPI[2](0)\n                + Op.POP * 2\n                + Op.PUSH0 * (MAX_RUNTIME_STACK_HEIGHT // 2)\n                + Op.CALLF[1]\n                + Op.STOP,\n                max_stack_height=514,\n            ),\n            Section.Code(\n                code=Op.PUSH1[1] * stack_height + Op.POP * stack_height + Op.RETF,\n                code_outputs=0,\n                max_stack_height=stack_height,\n            ),\n        ],\n    )\n    stack_overflow = stack_height > (MAX_RUNTIME_STACK_HEIGHT // 2) - 2\n    eof_test(\n        container=container,\n        expect_exception=EOFException.STACK_OVERFLOW if stack_overflow else None,\n    )\n\n\n@pytest.mark.parametrize(\"stack_height\", [1, 2, 5])\ndef test_callf_stack_overflow_variable_stack_3(eof_test: EOFTestFiller, stack_height: int) -> None:\n    \"\"\"Test CALLF instruction causing stack overflow.\"\"\"\n    container = Container(\n        sections=[\n            Section.Code(\n                code=Op.RJUMPI[2](0)\n                + Op.PUSH0 * (MAX_RUNTIME_STACK_HEIGHT - 1)\n                + Op.CALLF[1]\n                + Op.STOP,\n                max_stack_height=1023,\n            ),\n            Section.Code(\n                code=Op.PUSH0 * stack_height + Op.POP * stack_height + Op.RETF,\n                code_outputs=0,\n                max_stack_height=stack_height,\n            ),\n        ],\n    )\n    assert container.sections[0].max_stack_height is not None\n    stack_overflow = (\n        container.sections[0].max_stack_height + stack_height > MAX_RUNTIME_STACK_HEIGHT\n    )\n    eof_test(\n        container=container,\n        expect_exception=EOFException.STACK_OVERFLOW if stack_overflow else None,\n    )\n\n\ndef test_callf_stack_overflow_variable_stack_4(eof_test: EOFTestFiller) -> None:\n    \"\"\"Test reaching stack overflow before CALLF instruction.\"\"\"\n    container = Container(\n        sections=[\n            Section.Code(\n                code=Op.PUSH0 * 2\n                + Op.RJUMPI[2](0)\n                + Op.POP * 2\n                + Op.PUSH0 * (MAX_RUNTIME_STACK_HEIGHT - 1)\n                + Op.CALLF[1]\n                + Op.STOP,\n                max_stack_height=1023,\n            ),\n            Section.Code(\n                code=Op.RETF,\n                code_outputs=0,\n                max_stack_height=0,\n            ),\n        ],\n    )\n    eof_test(\n        container=container,\n        expect_exception=EOFException.STACK_OVERFLOW,\n    )\n\n\n@pytest.mark.parametrize(\"stack_height\", [2, 3])\ndef test_callf_validate_outputs(eof_test: EOFTestFiller, stack_height: int) -> None:\n    \"\"\"\n    Test CALLF instruction when calling a function returning more outputs than\n    expected.\n    \"\"\"\n    container = Container(\n        sections=[\n            Section.Code(code=Op.CALLF[1] + Op.STOP, max_stack_height=1),\n            Section.Code(\n                code=Op.PUSH0 * stack_height + Op.CALLF[2] + Op.RETF,\n                code_outputs=1,\n                max_stack_height=stack_height,\n            ),\n            Section.Code(\n                code=Op.POP + Op.RETF,\n                code_inputs=2,\n                code_outputs=1,\n                max_stack_height=2,\n            ),\n        ],\n    )\n    # Only 1 item consumed by function 2, if stack height > 2\n    # there will be more than 1 item as outputs in function 1\n    outputs_error = stack_height > 2\n    eof_test(\n        container=container,\n        expect_exception=EOFException.STACK_HIGHER_THAN_OUTPUTS if outputs_error else None,\n    )\n\n\n@pytest.mark.parametrize(\"push_stack\", [1023, 1024])\n@pytest.mark.parametrize(\"pop_stack\", [1019, 1020, 1021])\n@pytest.mark.parametrize(\n    \"code_section\",\n    [\n        pytest.param(\n            Section.Code(\n                code=Op.POP * 2 + Op.RETF,\n                code_inputs=2,\n                code_outputs=0,\n                max_stack_height=2,\n            ),\n            id=\"pop2\",\n        ),\n        pytest.param(\n            Section.Code(\n                code=Op.PUSH1[1] + Op.POP + Op.RETF,\n                code_inputs=3,\n                code_outputs=3,\n                max_stack_height=4,\n            ),\n            id=\"push_pop\",\n        ),\n        pytest.param(\n            Section.Code(\n                code=Op.PUSH0 * 2 + Op.RETF,\n                code_inputs=3,\n                code_outputs=5,\n                max_stack_height=5,\n            ),\n            id=\"push2\",\n        ),\n        pytest.param(\n            Section.Code(\n                code=Op.PUSH0 * 2 + Op.POP * 2 + Op.RETF,\n                code_inputs=3,\n                code_outputs=3,\n                max_stack_height=5,\n            ),\n            id=\"push2_pop2\",\n        ),\n        pytest.param(\n            Section.Code(\n                code=Op.PUSH0 + Op.POP * 3 + Op.RETF,\n                code_inputs=2,\n                code_outputs=0,\n                max_stack_height=3,\n            ),\n            id=\"push_pop3\",\n        ),\n        pytest.param(\n            Section.Code(\n                code=Op.PUSH0 * 2 + Op.POP * 4 + Op.RETF,\n                code_inputs=2,\n                code_outputs=0,\n                max_stack_height=4,\n            ),\n            id=\"push2_pop4\",\n        ),\n    ],\n)\ndef test_callf_with_inputs_stack_overflow(\n    eof_test: EOFTestFiller, code_section: Section, push_stack: int, pop_stack: int\n) -> None:\n    \"\"\"Test CALLF to code section with inputs.\"\"\"\n    container = Container(\n        name=\"callf_with_inputs_stack_overflow_0\",\n        sections=[\n            Section.Code(\n                code=Op.PUSH1[1] * push_stack + Op.CALLF[1] + Op.POP * pop_stack + Op.RETURN,\n                max_stack_height=1023,\n            ),\n            code_section,\n        ],\n    )\n    assert code_section.max_stack_height is not None\n    exception = None\n    if (\n        push_stack + code_section.max_stack_height - code_section.code_inputs\n        > MAX_RUNTIME_STACK_HEIGHT\n    ):\n        exception = EOFException.STACK_OVERFLOW\n    elif push_stack - code_section.code_inputs + code_section.code_outputs - pop_stack < 2:\n        exception = EOFException.STACK_UNDERFLOW\n    elif push_stack != container.sections[0].max_stack_height:\n        exception = EOFException.INVALID_MAX_STACK_INCREASE\n\n    eof_test(container=container, expect_exception=exception)\n\n\n@pytest.mark.parametrize(\n    \"code_section\",\n    [\n        pytest.param(\n            Section.Code(\n                code=Op.POP * 2 + Op.RETF,\n                code_inputs=2,\n                code_outputs=0,\n                max_stack_height=2,\n            ),\n            id=\"pop2\",\n        ),\n        pytest.param(\n            Section.Code(\n                code=Op.PUSH1[1] + Op.POP + Op.RETF,\n                code_inputs=3,\n                code_outputs=3,\n                max_stack_height=4,\n            ),\n            id=\"push_pop\",\n        ),\n        pytest.param(\n            Section.Code(\n                code=Op.PUSH0 * 4 + Op.RETF,\n                code_inputs=3,\n                code_outputs=7,\n                max_stack_height=7,\n            ),\n            id=\"push4\",\n        ),\n        pytest.param(\n            Section.Code(\n                code=Op.PUSH0 * 2 + Op.RETF,\n                code_inputs=3,\n                code_outputs=5,\n                max_stack_height=5,\n            ),\n            id=\"push2\",\n        ),\n        pytest.param(\n            Section.Code(\n                code=Op.PUSH0 * 4 + Op.POP * 2 + Op.RETF,\n                code_inputs=3,\n                code_outputs=3,\n                max_stack_height=7,\n            ),\n            id=\"push4_pop2\",\n        ),\n        pytest.param(\n            Section.Code(\n                code=Op.PUSH0 * 2 + Op.POP * 2 + Op.RETF,\n                code_inputs=3,\n                code_outputs=3,\n                max_stack_height=5,\n            ),\n            id=\"push2_pop2\",\n        ),\n        pytest.param(\n            Section.Code(\n                code=Op.PUSH0 * 3 + Op.POP * 5 + Op.RETF,\n                code_inputs=2,\n                code_outputs=0,\n                max_stack_height=5,\n            ),\n            id=\"push3_pop5\",\n        ),\n        pytest.param(\n            Section.Code(\n                code=Op.PUSH0 + Op.POP * 3 + Op.RETF,\n                code_inputs=2,\n                code_outputs=0,\n                max_stack_height=3,\n            ),\n            id=\"push_pop3\",\n        ),\n        pytest.param(\n            Section.Code(\n                code=Op.PUSH0 * 4 + Op.POP * 6 + Op.RETF,\n                code_inputs=2,\n                code_outputs=0,\n                max_stack_height=6,\n            ),\n            id=\"push4_pop6\",\n        ),\n        pytest.param(\n            Section.Code(\n                code=Op.PUSH0 * 2 + Op.POP * 4 + Op.RETF,\n                code_inputs=2,\n                code_outputs=0,\n                max_stack_height=4,\n            ),\n            id=\"push2_pop4\",\n        ),\n    ],\n)\n@pytest.mark.parametrize(\"push_stack\", [1020, 1021])\ndef test_callf_with_inputs_stack_overflow_variable_stack(\n    eof_test: EOFTestFiller, code_section: Section, push_stack: int\n) -> None:\n    \"\"\"Test CALLF to code section with inputs (variable stack).\"\"\"\n    container = Container(\n        sections=[\n            Section.Code(\n                code=Op.PUSH0\n                + Op.PUSH1[0]\n                + Op.RJUMPI[2]\n                + Op.PUSH0 * 2\n                + Op.PUSH1[1] * push_stack\n                + Op.CALLF[1]\n                + Op.STOP,\n                max_stack_height=1023,\n            ),\n            code_section,\n        ],\n    )\n    initial_stack = 3  # Initial items in the scak\n    assert code_section.max_stack_height is not None\n    exception = None\n    if (\n        push_stack + initial_stack + code_section.max_stack_height - code_section.code_inputs\n        > MAX_RUNTIME_STACK_HEIGHT\n    ):\n        exception = EOFException.STACK_OVERFLOW\n    elif push_stack + initial_stack > 1023:\n        exception = EOFException.INVALID_MAX_STACK_INCREASE\n\n    eof_test(container=container, expect_exception=exception)\n\n\n@pytest.mark.parametrize(\"callee_outputs\", [1, 2, MAX_CODE_OUTPUTS - 1, MAX_CODE_OUTPUTS])\n@pytest.mark.parametrize(\n    \"max_stack_height\", [0, 1, MAX_STACK_INCREASE_LIMIT - 1, MAX_STACK_INCREASE_LIMIT]\n)\ndef test_callf_stack_overflow_by_outputs(\n    eof_test: EOFTestFiller, callee_outputs: int, max_stack_height: int\n) -> None:\n    \"\"\"\n    Test for invalid EOF code containing CALLF instruction exceeding the\n    runtime stack height limit by calling a function with at least one output.\n    The computed stack height of the code section 0 is always above the maximum\n    allowed in the EOF type section. Therefore, the test declares an invalid\n    max_stack_height.\n    \"\"\"\n    callf_stack_height = (MAX_RUNTIME_STACK_HEIGHT + 1) - callee_outputs\n    container = Container(\n        sections=[\n            Section.Code(\n                Op.PUSH0 * callf_stack_height + Op.CALLF[1] + Op.STOP,\n                max_stack_height=max_stack_height,\n            ),\n            Section.Code(\n                Op.PUSH0 + Op.DUP1 + Op.RETF,\n                code_outputs=callee_outputs,\n                max_stack_height=callee_outputs,\n            ),\n        ],\n    )\n    eof_test(container=container, expect_exception=EOFException.STACK_OVERFLOW)\n\n\n@pytest.mark.parametrize(\n    \"callee_stack_height\",\n    [2, 3, MAX_STACK_INCREASE_LIMIT - 1, MAX_STACK_INCREASE_LIMIT],\n)\ndef test_callf_stack_overflow_by_height(eof_test: EOFTestFiller, callee_stack_height: int) -> None:\n    \"\"\"\n    Test for invalid EOF code containing CALLF instruction exceeding the\n    runtime stack height limit by calling a function with 2+ maximum stack\n    height. The callee with the maximum stack height of 1 is valid because\n    runtime limit (1024) is 1 bigger than the EOF limit (1023).\n    \"\"\"\n    container = Container(\n        sections=[\n            Section.Code(\n                Op.PUSH0 * MAX_STACK_INCREASE_LIMIT + Op.CALLF[1] + Op.STOP,\n                max_stack_height=MAX_STACK_INCREASE_LIMIT,\n            ),\n            Section.Code(\n                Op.PUSH0 * callee_stack_height + Op.POP * callee_stack_height + Op.RETF,\n                code_outputs=0,\n                max_stack_height=callee_stack_height,\n            ),\n        ],\n    )\n    eof_test(container=container, expect_exception=EOFException.STACK_OVERFLOW)\n\n\n@pytest.mark.parametrize(\n    \"container\",\n    [\n        Container(\n            name=\"underflow_1\",\n            sections=[\n                Section.Code(\n                    code=Op.CALLF[1] + Op.STOP,\n                    max_stack_height=1,\n                ),\n                Section.Code(\n                    code=Op.PUSH0 + Op.RETF,\n                    code_inputs=1,\n                    code_outputs=2,\n                    max_stack_height=2,\n                ),\n            ],\n        ),\n        Container(\n            name=\"underflow_2\",\n            sections=[\n                Section.Code(\n                    code=Op.CALLF[1] + Op.STOP,\n                    max_stack_height=2,\n                ),\n                Section.Code(\n                    code=Op.PUSH0 + Op.RETF,\n                    code_inputs=1,\n                    code_outputs=2,\n                    max_stack_height=2,\n                ),\n            ],\n        ),\n        Container(\n            name=\"underflow_variable_stack_2\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 + Op.RJUMPI[2](0) + Op.PUSH0 + Op.PUSH0 + Op.CALLF[1] + Op.STOP,\n                    max_stack_height=4,\n                ),\n                Section.Code(\n                    code=Op.PUSH0 + Op.RETF,\n                    code_inputs=4,\n                    code_outputs=5,\n                    max_stack_height=5,\n                ),\n            ],\n        ),\n        Container(\n            name=\"underflow_variable_stack_2a\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.PUSH0\n                    + Op.RJUMPI[2](0)\n                    + Op.PUSH0\n                    + Op.PUSH0\n                    + Op.CALLF[1]\n                    + Op.STOP,\n                    max_stack_height=5,\n                ),\n                Section.Code(\n                    code=Op.PUSH0 + Op.RETF,\n                    code_inputs=4,\n                    code_outputs=5,\n                    max_stack_height=5,\n                ),\n            ],\n        ),\n        Container(\n            name=\"underflow_variable_stack_3\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 + Op.RJUMPI[2](0) + Op.PUSH0 + Op.PUSH0 + Op.CALLF[1] + Op.STOP,\n                    max_stack_height=4,\n                ),\n                Section.Code(\n                    code=Op.PUSH0 + Op.RETF,\n                    code_inputs=3,\n                    code_outputs=4,\n                    max_stack_height=4,\n                ),\n            ],\n        ),\n        Container(\n            name=\"underflow_variable_stack_4\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 * 3 + Op.RJUMPI[1](0) + Op.POP + Op.CALLF[1] + Op.STOP,\n                    max_stack_height=4,\n                ),\n                Section.Code(\n                    code=Op.PUSH0 + Op.RETF,\n                    code_inputs=3,\n                    code_outputs=4,\n                    max_stack_height=4,\n                ),\n            ],\n        ),\n    ],\n    ids=lambda x: x.name,\n)\ndef test_callf_stack_underflow_examples(eof_test: EOFTestFiller, container: Container) -> None:\n    \"\"\"Test CALLF instruction causing validation time stack underflow.\"\"\"\n    eof_test(container=container, expect_exception=EOFException.STACK_UNDERFLOW)\n\n\ndef test_returning_section_aborts(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"\n    Test EOF container validation where in the same code section we have\n    returning and nonreturning terminating instructions.\n    \"\"\"\n    container = Container(\n        name=\"returning_section_aborts\",\n        sections=[\n            Section.Code(code=Op.PUSH0 + Op.CALLF[1] + Op.POP + Op.POP + Op.STOP),\n            Section.Code(\n                code=Op.PUSH0 * 2 + Op.RJUMPI[1] + Op.RETF + Op.INVALID,\n                code_outputs=1,\n            ),\n        ],\n    )\n    eof_test(container=container)\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip5450_stack/__init__.py",
    "content": "\"\"\"\nTests for\n[EIP-5450: EOF - Stack Validation](https://eips.ethereum.org/EIPS/eip-5450).\n\nEIP-5450 defines stack validation requirements to ensure consistent\nbehavior during execution. Opcodes introduced: None (specifies validation\nrules for stack usage).\n\"\"\"\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip5450_stack/test_code_validation.py",
    "content": "\"\"\"\nCode validation of CALLF, JUMPF, RETF opcodes in conjunction with static\nrelative jumps.\n\"\"\"\n\nimport itertools\nfrom enum import Enum, auto, unique\nfrom typing import Generator, Tuple, Union\n\nimport pytest\n\nfrom ethereum_test_exceptions.exceptions import EOFException\nfrom ethereum_test_tools import Account, EOFStateTestFiller, EOFTestFiller\nfrom ethereum_test_types.eof.v1 import Container, Section\nfrom ethereum_test_types.eof.v1.constants import MAX_STACK_INCREASE_LIMIT, NON_RETURNING_SECTION\nfrom ethereum_test_vm import Bytecode, Opcode\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .. import EOF_FORK_NAME\nfrom ..eip3540_eof_v1.test_all_opcodes_in_container import valid_eof_opcodes\nfrom ..eip7620_eof_create.helpers import (\n    smallest_initcode_subcontainer,\n    smallest_runtime_subcontainer,\n)\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-5450.md\"\nREFERENCE_SPEC_VERSION = \"f20b164b00ae5553f7536a6d7a83a0f254455e09\"\n\npytestmark = pytest.mark.valid_from(EOF_FORK_NAME)\n\n\n@unique\nclass RjumpKind(Enum):\n    \"\"\"Kinds of RJUMP* instruction snippets to generate.\"\"\"\n\n    EMPTY_RJUMP = auto()\n    EMPTY_RJUMPI = auto()\n    RJUMPI_OVER_PUSH = auto()\n    RJUMPI_OVER_NOOP = auto()\n    RJUMPI_OVER_STOP = auto()\n    RJUMPI_OVER_PUSH_POP = auto()\n    RJUMPI_OVER_POP = auto()\n    RJUMPI_OVER_NEXT = auto()\n    RJUMPI_OVER_NEXT_NESTED = auto()\n    RJUMPI_TO_START = auto()\n    RJUMPV_EMPTY_AND_OVER_NEXT = auto()\n    RJUMPV_OVER_PUSH_AND_TO_START = auto()\n    RJUMPI_OVER_RETF = auto()\n\n    def __str__(self) -> str:\n        \"\"\"Return string representation of the enum.\"\"\"\n        return f\"{self.name}\"\n\n\n@unique\nclass RjumpSpot(Enum):\n    \"\"\"\n    Possible spots in the code section layout where the RJUMP* is injected.\n    \"\"\"\n\n    BEGINNING = auto()\n    BEFORE_TERMINATION = auto()\n\n    def __str__(self) -> str:\n        \"\"\"Return string representation of the enum.\"\"\"\n        return f\"{self.name}\"\n\n\ndef rjump_code_with(\n    rjump_kind: RjumpKind | None, code_so_far_len: int, next_code: Bytecode\n) -> Tuple[Bytecode, bool, bool, bool]:\n    \"\"\"\n    Unless `rjump_kind` is None generates a code snippet with an RJUMP*\n    instruction. For some kinds `code_so_far_len` must be code length in bytes\n    preceding the snippet. For some kinds `next_code_len` must be code length\n    in bytes of some code which follows.\n\n    It is expected that the snippet and the jump target are valid, but the\n    resulting code or its stack balance might not.\n\n    Also returns some traits of the snippet: `is_backwards`, `pops` and\n    `pushes`\n    \"\"\"\n    body = Bytecode()\n\n    is_backwards = False\n    pops = False\n    pushes = False\n    jumps_over_next = False\n\n    if rjump_kind == RjumpKind.EMPTY_RJUMP:\n        body = Op.RJUMP[0]\n    elif rjump_kind == RjumpKind.EMPTY_RJUMPI:\n        body = Op.RJUMPI[0](0)\n    elif rjump_kind == RjumpKind.RJUMPI_OVER_PUSH:\n        body = Op.RJUMPI[1](0) + Op.PUSH0\n        pushes = True\n    elif rjump_kind == RjumpKind.RJUMPI_OVER_NOOP:\n        body = Op.RJUMPI[1](0) + Op.NOOP\n    elif rjump_kind == RjumpKind.RJUMPI_OVER_STOP:\n        body = Op.RJUMPI[1](0) + Op.STOP\n    elif rjump_kind == RjumpKind.RJUMPI_OVER_PUSH_POP:\n        body = Op.RJUMPI[2](0) + Op.PUSH0 + Op.POP\n    elif rjump_kind == RjumpKind.RJUMPI_OVER_POP:\n        body = Op.RJUMPI[1](0) + Op.POP\n        pops = True\n    elif rjump_kind == RjumpKind.RJUMPI_OVER_NEXT:\n        body = Op.RJUMPI[len(next_code)](0)\n        jumps_over_next = True\n    elif rjump_kind == RjumpKind.RJUMPI_OVER_NEXT_NESTED:\n        rjump_inner = Op.RJUMPI[len(next_code)](0)\n        body = Op.RJUMPI[len(rjump_inner)](0) + rjump_inner\n        jumps_over_next = True\n    elif rjump_kind == RjumpKind.RJUMPI_TO_START:\n        rjumpi_len = len(Op.RJUMPI[0](0))\n        body = Op.RJUMPI[-code_so_far_len - rjumpi_len](0)\n        is_backwards = True\n    elif rjump_kind == RjumpKind.RJUMPV_EMPTY_AND_OVER_NEXT:\n        body = Op.RJUMPV[[0, len(next_code)]](0)\n        jumps_over_next = True\n    elif rjump_kind == RjumpKind.RJUMPV_OVER_PUSH_AND_TO_START:\n        rjumpv_two_destinations_len = len(Op.RJUMPV[[0, 0]](0))\n        body = Op.RJUMPV[[1, -code_so_far_len - rjumpv_two_destinations_len]](0) + Op.PUSH0\n        is_backwards = True\n        pushes = True\n    elif rjump_kind == RjumpKind.RJUMPI_OVER_RETF:\n        body = Op.RJUMPI[1](0) + Op.RETF\n    elif not rjump_kind:\n        pass\n    else:\n        raise TypeError(\"unknown rjumps value\" + str(rjump_kind))\n\n    if jumps_over_next:\n        # This is against intuition, but if the code we're jumping over pushes,\n        # the path which misses it will be short of stack items, as if the\n        # RJUMP* popped and vice versa.\n        if next_code.pushed_stack_items > next_code.popped_stack_items:\n            pops = True\n        elif next_code.popped_stack_items > next_code.pushed_stack_items:\n            pushes = True\n\n    return body, is_backwards, pops, pushes\n\n\ndef call_code_with(inputs: int, outputs: int, call: Bytecode) -> Bytecode:\n    \"\"\"\n    Generate code snippet with the `call` bytecode provided and its respective\n    input/output management.\n\n    `inputs` and `outputs` are understood as those of the code section we're\n    generating for.\n    \"\"\"\n    body = Bytecode()\n\n    if call.popped_stack_items > inputs:\n        body += Op.PUSH0 * (call.popped_stack_items - inputs)\n    elif call.popped_stack_items < inputs:\n        body += Op.POP * (inputs - call.popped_stack_items)\n\n    body += call\n    if call.pushed_stack_items < outputs:\n        body += Op.PUSH0 * (outputs - call.pushed_stack_items)\n    elif call.pushed_stack_items > outputs:\n        body += Op.POP * (call.pushed_stack_items - outputs)\n\n    return body\n\n\ndef section_code_with(\n    inputs: int,\n    outputs: int,\n    rjump_kind: RjumpKind | None,\n    rjump_spot: RjumpSpot,\n    call: Bytecode | None,\n    termination: Bytecode,\n) -> Tuple[Bytecode, bool, bool, bool, bool]:\n    \"\"\"\n    Generate code section with RJUMP* and CALLF/RETF instructions.\n\n    Also returns some traits of the section: `has_invalid_back_jump`,\n    `rjump_snippet_pops`, `rjump_snippet_pushes`, `rjump_falls_off_code`\n    \"\"\"\n    code = Bytecode()\n    code.pushed_stack_items, code.max_stack_height = (inputs, inputs)\n\n    if call:\n        body = call_code_with(inputs, outputs, call)\n    else:\n        body = Op.POP * inputs + Op.PUSH0 * outputs\n\n    has_invalid_back_jump = False\n    rjump_snippet_pushes = False\n    rjump_snippet_pops = False\n    rjump_falls_off_code = False\n\n    if rjump_spot == RjumpSpot.BEGINNING:\n        rjump, is_backwards, rjump_snippet_pops, rjump_snippet_pushes = rjump_code_with(\n            rjump_kind, 0, body\n        )\n        if rjump_kind == RjumpKind.RJUMPI_OVER_RETF:\n            if inputs > outputs:\n                rjump_snippet_pushes = True\n            elif outputs > inputs:\n                rjump_snippet_pops = True\n        code += rjump\n\n    code += body\n\n    if rjump_spot == RjumpSpot.BEFORE_TERMINATION:\n        rjump, is_backwards, rjump_snippet_pops, rjump_snippet_pushes = rjump_code_with(\n            rjump_kind, len(code), next_code=termination\n        )\n        code += rjump\n\n        if is_backwards and inputs != outputs:\n            has_invalid_back_jump = True\n\n    if rjump_spot == RjumpSpot.BEFORE_TERMINATION or (\n        rjump_spot == RjumpSpot.BEGINNING and len(termination) == 0\n    ):\n        if rjump_kind in [\n            RjumpKind.RJUMPI_OVER_NEXT,\n            RjumpKind.RJUMPI_OVER_NEXT_NESTED,\n            RjumpKind.RJUMPV_EMPTY_AND_OVER_NEXT,\n        ]:\n            # Jump over termination or jump over body, but there is nothing\n            # after the body.\n            rjump_falls_off_code = True\n\n    code += termination\n\n    return (\n        code,\n        has_invalid_back_jump,\n        rjump_snippet_pops,\n        rjump_snippet_pushes,\n        rjump_falls_off_code,\n    )\n\n\nnum_sections = 3\npossible_inputs_outputs = range(2)\n\n\n@pytest.mark.parametrize(\n    [\"inputs\", \"outputs\"],\n    itertools.product(\n        list(itertools.product(*([possible_inputs_outputs] * (num_sections - 1)))),\n        list(itertools.product(*([possible_inputs_outputs] * (num_sections - 1)))),\n    ),\n)\n@pytest.mark.parametrize(\n    \"rjump_kind\",\n    RjumpKind,\n)\n# Parameter value fixed for first iteration, to cover the most important case.\n@pytest.mark.parametrize(\"rjump_section_idx\", [0, 1])\n@pytest.mark.parametrize(\n    \"rjump_spot\",\n    RjumpSpot,\n)\ndef test_rjumps_callf_retf(\n    eof_test: EOFTestFiller,\n    inputs: Tuple[int, ...],\n    outputs: Tuple[int, ...],\n    rjump_kind: RjumpKind,\n    rjump_section_idx: int,\n    rjump_spot: RjumpSpot,\n) -> None:\n    \"\"\"\n    Test EOF container validation for EIP-4200 vs EIP-4750 interactions.\n\n    Each test's code consists of `num_sections` code sections, which call into\n    one another and then return. Code may include RJUMP* snippets of\n    `rjump_kind` in various `rjump_spots`.\n    \"\"\"\n    # Zeroth section has always 0 inputs and 0 outputs, so is excluded from\n    # param\n    inputs = (0,) + inputs\n    outputs = (0,) + outputs\n\n    assert len(inputs) == len(outputs) == num_sections\n\n    sections = []\n    container_has_invalid_back_jump = False\n    container_has_rjump_pops = False\n    container_has_rjump_pushes = False\n    container_has_rjump_off_code = False\n    container_has_section_0_retf = (\n        rjump_section_idx == 0 and rjump_kind == RjumpKind.RJUMPI_OVER_RETF\n    )\n\n    for section_idx in range(num_sections):\n        if section_idx == 0:\n            call = Op.CALLF[section_idx + 1]\n            call.popped_stack_items = inputs[section_idx + 1]\n            call.pushed_stack_items = outputs[section_idx + 1]\n            call.min_stack_height = call.popped_stack_items\n            call.max_stack_height = max(call.popped_stack_items, call.pushed_stack_items)\n            termination = Op.STOP\n        elif section_idx < num_sections - 1:\n            call = Op.CALLF[section_idx + 1]\n            call.popped_stack_items = inputs[section_idx + 1]\n            call.pushed_stack_items = outputs[section_idx + 1]\n            call.min_stack_height = call.popped_stack_items\n            call.max_stack_height = max(call.popped_stack_items, call.pushed_stack_items)\n            termination = Op.RETF\n        else:\n            call = None\n            termination = Op.RETF\n\n        (\n            code,\n            section_has_invalid_back_jump,\n            rjump_snippet_pops,\n            rjump_snippet_pushes,\n            rjump_falls_off_code,\n        ) = section_code_with(\n            inputs[section_idx],\n            outputs[section_idx],\n            rjump_kind if rjump_section_idx == section_idx else None,\n            rjump_spot,\n            call,\n            termination,\n        )\n\n        if section_has_invalid_back_jump:\n            container_has_invalid_back_jump = True\n        if rjump_snippet_pops:\n            container_has_rjump_pops = True\n        # Pushes to the stack never affect the zeroth section, because it\n        # `STOP`s and not `RETF`s.\n        if rjump_snippet_pushes and section_idx != 0:\n            container_has_rjump_pushes = True\n        if rjump_falls_off_code:\n            container_has_rjump_off_code = True\n\n        if section_idx > 0:\n            sections.append(\n                Section.Code(\n                    code,\n                    code_inputs=inputs[section_idx],\n                    code_outputs=outputs[section_idx],\n                )\n            )\n        else:\n            sections.append(Section.Code(code))\n\n    possible_exceptions = []\n    if container_has_invalid_back_jump:\n        possible_exceptions.append(EOFException.STACK_HEIGHT_MISMATCH)\n    if container_has_rjump_pops:\n        possible_exceptions.append(EOFException.STACK_UNDERFLOW)\n    if container_has_rjump_pushes:\n        possible_exceptions.append(EOFException.STACK_HIGHER_THAN_OUTPUTS)\n    if container_has_rjump_off_code:\n        possible_exceptions.append(EOFException.INVALID_RJUMP_DESTINATION)\n    if container_has_section_0_retf:\n        possible_exceptions.append(EOFException.INVALID_NON_RETURNING_FLAG)\n\n    eof_test(container=Container(sections=sections), expect_exception=possible_exceptions or None)\n\n\n@pytest.mark.parametrize(\n    \"inputs\", itertools.product(*([possible_inputs_outputs] * (num_sections - 1)))\n)\n@pytest.mark.parametrize(\n    \"rjump_kind\",\n    RjumpKind,\n)\n# Parameter value fixed for first iteration, to cover the most important case.\n@pytest.mark.parametrize(\"rjump_section_idx\", [0, 1])\n@pytest.mark.parametrize(\n    \"rjump_spot\",\n    # `termination` is empty for JUMPF codes, because JUMPF serves as one. Spot\n    # `BEFORE_TERMINATION` is unreachable code.\n    [k for k in RjumpSpot if k not in [RjumpSpot.BEFORE_TERMINATION]],\n)\ndef test_rjumps_jumpf_nonreturning(\n    eof_test: EOFTestFiller,\n    inputs: Tuple[int, ...],\n    rjump_kind: RjumpKind,\n    rjump_section_idx: int,\n    rjump_spot: RjumpSpot,\n) -> None:\n    \"\"\"\n    Test EOF container validation for EIP-4200 vs EIP-6206 interactions on\n    non-returning functions.\n    \"\"\"\n    # Zeroth section has always 0 inputs and 0 outputs, so is excluded from\n    # param\n    inputs = (0,) + inputs\n\n    sections = []\n    container_has_rjump_pops = False\n    container_has_rjump_off_code = False\n    container_has_non_returning_retf = False\n\n    for section_idx in range(num_sections):\n        if section_idx < num_sections - 1:\n            call = Op.JUMPF[section_idx + 1]\n            call.popped_stack_items = inputs[section_idx + 1]\n            call.pushed_stack_items = 0\n            call.min_stack_height = call.popped_stack_items\n            call.max_stack_height = max(call.popped_stack_items, call.pushed_stack_items)\n            termination = Bytecode()\n        else:\n            call = None\n            termination = Op.STOP\n\n        # `section_has_invalid_back_jump` - never happens: we excluded RJUMP\n        # from the end `rjump_snippet_pushes` - never happens: we never RETF\n        # where too large stack would fail\n        (\n            code,\n            _section_has_invalid_back_jump,\n            rjump_snippet_pops,\n            _rjump_snippet_pushes,\n            rjump_falls_off_code,\n        ) = section_code_with(\n            inputs[section_idx],\n            0,\n            rjump_kind if rjump_section_idx == section_idx else None,\n            rjump_spot,\n            call,\n            termination,\n        )\n\n        if rjump_snippet_pops:\n            container_has_rjump_pops = True\n        if rjump_falls_off_code:\n            container_has_rjump_off_code = True\n        if rjump_kind == RjumpKind.RJUMPI_OVER_RETF:\n            container_has_non_returning_retf = True\n\n        if section_idx > 0:\n            sections.append(\n                Section.Code(\n                    code,\n                    code_inputs=inputs[section_idx],\n                    code_outputs=NON_RETURNING_SECTION,\n                )\n            )\n        else:\n            sections.append(Section.Code(code))\n\n    possible_exceptions = []\n    if container_has_rjump_pops:\n        possible_exceptions.append(EOFException.STACK_UNDERFLOW)\n    if container_has_rjump_off_code:\n        possible_exceptions.append(EOFException.INVALID_RJUMP_DESTINATION)\n    if container_has_non_returning_retf:\n        possible_exceptions.append(EOFException.INVALID_NON_RETURNING_FLAG)\n\n    eof_test(container=Container(sections=sections), expect_exception=possible_exceptions or None)\n\n\ndef gen_stack_underflow_params() -> Generator[tuple[Union[Op, Opcode], int], None, None]:\n    \"\"\"Generate parameters for stack underflow tests.\"\"\"\n    opcodes = sorted(op for op in valid_eof_opcodes if op.min_stack_height > 0) + [\n        # Opcodes that have variable min_stack_height\n        Op.SWAPN[0x00],\n        Op.SWAPN[0xFF],\n        Op.DUPN[0x00],\n        Op.DUPN[0xFF],\n        Op.EXCHANGE[0x00],\n        Op.EXCHANGE[0xFF],\n    ]\n    for op in opcodes:\n        yield op, 0\n        if op.min_stack_height > 1:\n            yield op, op.min_stack_height - 1\n\n\n@pytest.mark.parametrize(\"spread\", [-1, 0, 1, MAX_STACK_INCREASE_LIMIT])\n@pytest.mark.parametrize(\"op,stack_height\", gen_stack_underflow_params())\ndef test_all_opcodes_stack_underflow(\n    eof_test: EOFTestFiller, op: Op, stack_height: int, spread: int\n) -> None:\n    \"\"\"\n    Test EOF validation failing due to stack overflow caused by the specific\n    instruction `op`.\n    \"\"\"\n    code = Bytecode()\n\n    if spread >= 0:\n        # Check if the op increases the stack height (e.g. DUP instructions).\n        # We need to leave space for this increase not to cause stack overflow.\n        max_stack_increase = max(op.pushed_stack_items - op.popped_stack_items, 0)\n        # Cap the spread if it would exceed the maximum stack height.\n        spread = min(spread, MAX_STACK_INCREASE_LIMIT - (stack_height + max_stack_increase))\n        # Create a range stack height of 0-spread.\n        code += Op.RJUMPI[spread](Op.CALLVALUE) + Op.PUSH0 * spread\n\n    # Create the desired stack height.\n    code += Op.PUSH0 * stack_height\n\n    if op.has_data_portion():\n        code += op[0]  # produce required imm bytes\n    else:\n        code += op\n\n    if not op.terminating:\n        code += Op.STOP\n\n    sections = [\n        Section.Code(\n            code,\n            # Set reasonable stack height. Don't rely on automatic calculation,\n            # because we are in the invalid stack height scenario.\n            max_stack_height=max(spread, stack_height, int(spread >= 0)),\n        )\n    ]\n\n    if op == Op.EOFCREATE:\n        # Make EOFCREATE valid by adding the target subcontainer.\n        sections.append(Section.Container(smallest_initcode_subcontainer))\n    elif op == Op.RETURNCODE:\n        # Make RETURNCODE valid by wrapping it with a container with EOFCREATE.\n        sections = [\n            Section.Code(Op.EOFCREATE[0](0, 0, 0, 0) + Op.STOP),\n            Section.Container(\n                container=Container(\n                    sections=[\n                        sections[0],\n                        Section.Container(smallest_runtime_subcontainer),\n                    ]\n                )\n            ),\n        ]\n\n    eof_test(\n        container=Container(\n            sections=sections,\n            validity_error=EOFException.STACK_UNDERFLOW,\n        )\n    )\n\n\n@pytest.mark.parametrize(\n    \"container\",\n    [\n        Container(\n            name=\"underflow_0\",\n            sections=[\n                Section.Code(\n                    code=Op.ADD + Op.STOP,\n                    max_stack_height=1,\n                ),\n            ],\n        ),\n        Container(\n            name=\"underflow_variable_stack_0\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 + Op.RJUMPI[2](0) + Op.PUSH0 + Op.PUSH0 + Op.LOG2 + Op.STOP,\n                    max_stack_height=3,\n                ),\n            ],\n        ),\n        Container(\n            name=\"underflow_variable_stack_1\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 + Op.RJUMPI[2](0) + Op.PUSH0 + Op.PUSH0 + Op.ADD + Op.STOP,\n                    max_stack_height=3,\n                ),\n            ],\n        ),\n        Container(\n            name=\"underflow_variable_stack_2\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 * 2 + Op.RJUMPI[1](0) + Op.POP + Op.ADD + Op.STOP,\n                    max_stack_height=3,\n                ),\n            ],\n        ),\n        Container(\n            name=\"underflow_variable_stack_3\",\n            sections=[\n                Section.Code(\n                    Op.RJUMPI[8](0)\n                    + Op.PUSH0 * 2\n                    + Op.RJUMPI[1](0)\n                    + Op.POP * 2\n                    + Op.PUSH0 * 2\n                    + Op.REVERT,\n                    max_stack_height=3,\n                ),\n            ],\n        ),\n    ],\n    ids=lambda x: x.name,\n)\ndef test_stack_underflow_examples(eof_test: EOFTestFiller, container: Container) -> None:\n    \"\"\"\n    Test EOF validation failing due to stack underflow at basic instructions.\n    \"\"\"\n    eof_test(container=container, expect_exception=EOFException.STACK_UNDERFLOW)\n\n\n@pytest.mark.parametrize(\"initial_stack\", [0, 1, 2])\n@pytest.mark.parametrize(\"calldata_1\", [0, 1])\n@pytest.mark.parametrize(\"calldata_2\", [0, 1])\ndef test_valid_non_constant_stack_examples(\n    eof_state_test: EOFStateTestFiller, initial_stack: int, calldata_1: int, calldata_2: int\n) -> None:\n    \"\"\"Test valid containers with non constant stack items.\"\"\"\n    # Stores the number of added items to the stack in storage slot 0\n    # calldata_1 == 1: number of items = 2\n    # calldata_1 == 0:\n    #   calldata_2 == 0: number of items: 3\n    #   calldata_2 == 1: number of items: 4\n    expected_storage = {0: 2} if calldata_1 == 1 else ({0: 3} if calldata_2 == 0 else {0: 4})\n    data = calldata_1.to_bytes(32, \"big\") + calldata_2.to_bytes(32, \"big\")\n    container = Container(\n        sections=[\n            Section.Code(\n                code=Op.PUSH0 * initial_stack\n                + Op.CALLDATALOAD(0)\n                + Op.RJUMPI[19]\n                + Op.PUSH0 * 2\n                + Op.SSTORE(0, 2)  # Stores added items (2)\n                + Op.CALLDATALOAD(32)\n                + Op.RJUMPI[6]\n                + Op.POP\n                + Op.SSTORE(0, 1)  # Updates number of added items to 1\n                + Op.PUSH0 * 2  # <-- RJUMPI[19]/RJUMPI[6] target\n                + Op.SLOAD(0)\n                + Op.PUSH1(2)\n                + Op.ADD  # Add latest added items (+2)\n                + Op.PUSH1(0)\n                + Op.SSTORE\n                + Op.STOP,\n                max_stack_height=6 + initial_stack,\n            ),\n        ],\n    )\n    eof_state_test(\n        container=container,\n        expect_exception=None,\n        data=data,\n        container_post=Account(storage=expected_storage),\n    )\n\n\n@pytest.mark.parametrize(\"num_rjumpi\", [MAX_STACK_INCREASE_LIMIT, MAX_STACK_INCREASE_LIMIT + 1])\ndef test_stack_range_maximally_broad(eof_test: EOFTestFiller, num_rjumpi: int) -> None:\n    \"\"\"Test stack range 0-1023 at final instruction.\"\"\"\n    code = Op.STOP()\n    for i in range(0, num_rjumpi):\n        offset = i * 5 + 1\n        code = Op.PUSH0 + Op.RJUMPI[offset] + Op.PUSH0 + code\n\n    container = Container.Code(code=code, max_stack_increase=MAX_STACK_INCREASE_LIMIT)\n\n    eof_test(\n        container=container,\n        expect_exception=None\n        if num_rjumpi <= MAX_STACK_INCREASE_LIMIT\n        else EOFException.INVALID_MAX_STACK_INCREASE,\n    )\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip5450_stack/test_execution.py",
    "content": "\"\"\"Test execution of EOF code in the context of the operand stack height.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_exceptions import EOFException\nfrom ethereum_test_tools import Account, EOFStateTestFiller\nfrom ethereum_test_types.eof.constants import MAX_RUNTIME_STACK_HEIGHT\nfrom ethereum_test_types.eof.v1 import Container, Section\nfrom ethereum_test_types.eof.v1.constants import (\n    MAX_CODE_INPUTS,\n    MAX_STACK_INCREASE_LIMIT,\n    NON_RETURNING_SECTION,\n)\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .. import EOF_FORK_NAME\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-5450.md\"\nREFERENCE_SPEC_VERSION = \"f20b164b00ae5553f7536a6d7a83a0f254455e09\"\n\npytestmark = pytest.mark.valid_from(EOF_FORK_NAME)\n\n\n@pytest.mark.parametrize(\"code_inputs\", [0, 1, 16, 127, 128])\n@pytest.mark.parametrize(\"call_op\", [Op.CALLF, Op.JUMPF])\ndef test_execution_at_max_stack_height(\n    eof_state_test: EOFStateTestFiller,\n    code_inputs: int,\n    call_op: Op,\n) -> None:\n    \"\"\"\n    Test execution at the maximum runtime operand stack height (1024). EOF\n    doesn't allow to increase the stack height of a single code section more\n    than 1023. The effect of the maximum runtime stack height is achieved by\n    using non-zero number of the code section inputs and increasing the runtime\n    stack to the limit accordingly. The test pushes consecutive numbers\n    starting from 0 (including inputs). At the maximum stack height SSTORE is\n    used so it should store 1022 at key 1023.\n    \"\"\"\n    max_stack_increase = MAX_RUNTIME_STACK_HEIGHT - code_inputs\n    container = Container(\n        sections=[\n            Section.Code(\n                (\n                    sum(Op.PUSH1(x) for x in range(code_inputs))\n                    + call_op[1]\n                    + (Op.STOP if call_op == Op.CALLF else b\"\")\n                ),\n            ),\n            Section.Code(\n                sum(Op.PUSH2(x) for x in range(code_inputs, MAX_RUNTIME_STACK_HEIGHT))\n                + Op.SSTORE\n                + Op.POP * (MAX_RUNTIME_STACK_HEIGHT - Op.SSTORE.popped_stack_items)\n                + (Op.RETF if call_op == Op.CALLF else Op.STOP),\n                code_inputs=code_inputs,\n                code_outputs=0 if call_op == Op.CALLF else NON_RETURNING_SECTION,\n                max_stack_increase=max_stack_increase,\n            ),\n        ],\n    )\n\n    exception = None\n    if max_stack_increase > MAX_STACK_INCREASE_LIMIT:\n        exception = EOFException.MAX_STACK_INCREASE_ABOVE_LIMIT\n    elif code_inputs > MAX_CODE_INPUTS:\n        exception = EOFException.INPUTS_OUTPUTS_NUM_ABOVE_LIMIT\n\n    eof_state_test(\n        container=container,\n        expect_exception=exception,\n        container_post=Account(\n            storage={MAX_RUNTIME_STACK_HEIGHT - 1: MAX_RUNTIME_STACK_HEIGHT - 2}\n        ),\n    )\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip6206_jumpf/__init__.py",
    "content": "\"\"\"\nTest cases for [EIP-6206: EOF - JUMPF and non-returning functions](https://\neips.ethereum.org/EIPS/eip-6206).\n\nEIP-6206 adds a conditional forward jump instruction and support for\nfunctions without return values. Opcodes introduced: `JUMPF` (`0xE5`).\n\"\"\"\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip6206_jumpf/helpers.py",
    "content": "\"\"\"EOF JumpF tests helpers.\"\"\"\n\nimport itertools\n\n\"\"\"Storage addresses for common testing fields\"\"\"\n_slot = itertools.count()\nnext(_slot)  # don't use slot 0\nslot_code_worked = next(_slot)\nslot_last_slot = next(_slot)\nslot_stack_canary = next(_slot)\n\n\"\"\"Storage values for common testing fields\"\"\"\nvalue_code_worked = 0x2015\nvalue_canary_written = 0xDEADB12D\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip6206_jumpf/spec.py",
    "content": "\"\"\"EOF V1 Constants used throughout all tests.\"\"\"\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip6206_jumpf/test_jumpf_execution.py",
    "content": "\"\"\"EOF JUMPF tests covering simple cases.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_base_types import Storage\nfrom ethereum_test_specs import StateTestFiller\nfrom ethereum_test_tools import Account, Environment, EOFException, EOFStateTestFiller, Transaction\nfrom ethereum_test_types import Alloc\nfrom ethereum_test_types.eof.v1 import Container, Section\nfrom ethereum_test_types.eof.v1.constants import NON_RETURNING_SECTION\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .. import EOF_FORK_NAME\nfrom .helpers import (\n    slot_code_worked,\n    slot_stack_canary,\n    value_canary_written,\n    value_code_worked,\n)\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-6206.md\"\nREFERENCE_SPEC_VERSION = \"2f365ea0cd58faa6e26013ea77ce6d538175f7d0\"\n\npytestmark = pytest.mark.valid_from(EOF_FORK_NAME)\n\n\ndef test_jumpf_forward(\n    eof_state_test: EOFStateTestFiller,\n) -> None:\n    \"\"\"Test JUMPF jumping forward.\"\"\"\n    eof_state_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.JUMPF[1],\n                ),\n                Section.Code(\n                    Op.SSTORE(slot_code_worked, value_code_worked) + Op.STOP,\n                ),\n            ],\n        ),\n        container_post=Account(storage={slot_code_worked: value_code_worked}),\n        data=b\"\\1\",\n    )\n\n\n@pytest.mark.parametrize(\n    \"container\",\n    [\n        Container(\n            name=\"forward\",\n            sections=[\n                Section.Code(\n                    code=Op.CALLF[1] + Op.SSTORE(slot_code_worked, value_code_worked) + Op.STOP,\n                ),\n                Section.Code(\n                    code=Op.JUMPF[2],\n                    code_outputs=0,\n                ),\n                Section.Code(\n                    code=Op.RETF,\n                    code_outputs=0,\n                ),\n            ],\n        ),\n        Container(\n            name=\"backward\",\n            sections=[\n                Section.Code(\n                    code=Op.CALLF[2] + Op.SSTORE(slot_code_worked, value_code_worked) + Op.STOP,\n                ),\n                Section.Code(\n                    code=Op.RETF,\n                    code_outputs=0,\n                ),\n                Section.Code(\n                    code=Op.JUMPF[1],\n                    code_outputs=0,\n                ),\n            ],\n        ),\n        Container(\n            name=\"equal_outputs\",\n            sections=[\n                Section.Code(\n                    Op.CALLF[1] + Op.SSTORE + Op.STOP,\n                    max_stack_height=2,\n                ),\n                Section.Code(\n                    Op.JUMPF[2],\n                    code_outputs=2,\n                    max_stack_height=0,\n                ),\n                Section.Code(\n                    Op.PUSH2[value_code_worked] + Op.PUSH2[slot_code_worked] + Op.RETF,\n                    code_outputs=2,\n                    max_stack_height=2,\n                ),\n            ],\n        ),\n        Container(\n            name=\"compatible_outputs\",\n            sections=[\n                Section.Code(\n                    code=Op.CALLF[1] + Op.SSTORE + Op.STOP,\n                    max_stack_height=2,\n                ),\n                Section.Code(\n                    Op.PUSH2[value_code_worked] + Op.JUMPF[2],\n                    code_outputs=2,\n                    max_stack_height=1,\n                ),\n                Section.Code(\n                    Op.PUSH2[slot_code_worked] + Op.RETF,\n                    code_outputs=1,\n                    max_stack_height=1,\n                ),\n            ],\n        ),\n    ],\n    ids=lambda container: container.name,\n)\ndef test_jumpf_to_retf(eof_state_test: EOFStateTestFiller, container: Container) -> None:\n    \"\"\"Tests JUMPF to a returning section with RETF.\"\"\"\n    eof_state_test(\n        container=container,\n        container_post=Account(storage={slot_code_worked: value_code_worked}),\n        data=b\"\\1\",\n    )\n\n\ndef test_jumpf_to_self(\n    eof_state_test: EOFStateTestFiller,\n) -> None:\n    \"\"\"Tests JUMPF jumping to self.\"\"\"\n    eof_state_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.SLOAD(slot_code_worked)\n                    + Op.ISZERO\n                    + Op.RJUMPI[1]\n                    + Op.STOP\n                    + Op.SSTORE(slot_code_worked, value_code_worked)\n                    + Op.JUMPF[0],\n                )\n            ],\n        ),\n        container_post=Account(storage={slot_code_worked: value_code_worked}),\n        data=b\"\\1\",\n    )\n\n\n@pytest.mark.parametrize(\n    \"container\",\n    [\n        Container(\n            name=\"1_to_2_arg0\",\n            sections=[\n                Section.Code(\n                    Op.CALLF[1] + Op.STOP,\n                ),\n                Section.Code(\n                    Op.PUSH0 + Op.RJUMPI[3] + Op.JUMPF[2] + Op.RETF,\n                    code_outputs=0,\n                ),\n                Section.Code(\n                    Op.SSTORE(slot_code_worked, value_code_worked) + Op.RETF,\n                    code_outputs=0,\n                ),\n            ],\n        ),\n        Container(\n            name=\"1_to_2_arg1\",\n            sections=[\n                Section.Code(\n                    Op.PUSH1[1] + Op.CALLF[1] + Op.STOP,\n                ),\n                Section.Code(\n                    Op.RJUMPI[1]\n                    + Op.RETF\n                    + Op.SSTORE(slot_code_worked, value_code_worked)\n                    + Op.JUMPF[2],\n                    code_inputs=1,\n                    code_outputs=0,\n                ),\n                Section.Code(\n                    Op.RETF,\n                    code_outputs=0,\n                ),\n            ],\n        ),\n        Container(\n            name=\"1_to_0_to_1\",\n            sections=[\n                Section.Code(\n                    Op.ISZERO(Op.SLOAD(slot_code_worked)) + Op.CALLF[1] + Op.STOP,\n                ),\n                Section.Code(\n                    Op.RJUMPI[1]\n                    + Op.RETF\n                    + Op.SSTORE(slot_code_worked, value_code_worked)\n                    + Op.JUMPF[0],\n                    code_inputs=1,\n                    code_outputs=0,\n                ),\n            ],\n        ),\n        Container(\n            name=\"retf_in_nonreturning\",\n            sections=[\n                Section.Code(\n                    Op.PUSH0 + Op.JUMPF[1],\n                ),\n                Section.Code(\n                    Op.RJUMPI[1] + Op.RETF + Op.JUMPF[0],\n                    code_inputs=1,\n                ),\n            ],\n            validity_error=EOFException.INVALID_NON_RETURNING_FLAG,\n        ),\n        Container(\n            name=\"jumpf_to_returning\",\n            sections=[\n                Section.Code(\n                    Op.PUSH0 + Op.JUMPF[1],\n                ),\n                Section.Code(\n                    Op.RJUMPI[1] + Op.RETF + Op.JUMPF[2],\n                    code_inputs=1,\n                ),\n                Section.Code(\n                    Op.RETF,\n                    code_outputs=0,\n                ),\n            ],\n            validity_error=EOFException.INVALID_NON_RETURNING_FLAG,\n        ),\n        Container(\n            name=\"jumpf_to_returning_2\",\n            sections=[\n                Section.Code(\n                    Op.PUSH0 + Op.JUMPF[1],\n                ),\n                Section.Code(\n                    Op.RJUMPI[3] + Op.JUMPF[2] + Op.RETF,\n                    code_inputs=1,\n                ),\n                Section.Code(\n                    Op.RETF,\n                    code_outputs=0,\n                ),\n            ],\n            validity_error=EOFException.INVALID_NON_RETURNING_FLAG,\n        ),\n    ],\n    ids=lambda container: container.name,\n)\ndef test_jumpf_and_retf(eof_state_test: EOFStateTestFiller, container: Container) -> None:\n    \"\"\"Tests JUMPF and RETF in the same section.\"\"\"\n    eof_state_test(\n        container=container,\n        container_post=Account(storage={slot_code_worked: value_code_worked}),\n    )\n\n\ndef test_jumpf_too_large(\n    eof_state_test: EOFStateTestFiller,\n) -> None:\n    \"\"\"Tests JUMPF jumping to a section outside the max section range.\"\"\"\n    eof_state_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.JUMPF[1025],\n                )\n            ],\n            validity_error=EOFException.INVALID_CODE_SECTION_INDEX,\n        ),\n    )\n\n\ndef test_jumpf_way_too_large(\n    eof_state_test: EOFStateTestFiller,\n) -> None:\n    \"\"\"Tests JUMPF jumping to uint64.MAX.\"\"\"\n    eof_state_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.JUMPF[0xFFFF],\n                )\n            ],\n            validity_error=EOFException.INVALID_CODE_SECTION_INDEX,\n        ),\n    )\n\n\ndef test_jumpf_to_nonexistent_section(\n    eof_state_test: EOFStateTestFiller,\n) -> None:\n    \"\"\"\n    Tests JUMPF jumping to valid section number but where the section does not\n    exist.\n    \"\"\"\n    eof_state_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.JUMPF[5],\n                )\n            ],\n            validity_error=EOFException.INVALID_CODE_SECTION_INDEX,\n        ),\n    )\n\n\ndef test_callf_to_non_returning_section(\n    eof_state_test: EOFStateTestFiller,\n) -> None:\n    \"\"\"Tests CALLF into a non-returning section.\"\"\"\n    eof_state_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.CALLF[1],\n                ),\n                Section.Code(\n                    code=Op.STOP,\n                    code_outputs=0,\n                ),\n            ],\n            validity_error=EOFException.MISSING_STOP_OPCODE,\n        ),\n    )\n\n\ndef test_jumpf_stack_size_1024(\n    eof_state_test: EOFStateTestFiller,\n) -> None:\n    \"\"\"Test stack reaching 1024 items in target function of JUMPF.\"\"\"\n    eof_state_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 * 1022 + Op.JUMPF[1],\n                    max_stack_height=1022,\n                ),\n                Section.Code(\n                    Op.SSTORE(slot_code_worked, value_code_worked) + Op.STOP,\n                    code_inputs=0,\n                    code_outputs=NON_RETURNING_SECTION,\n                    max_stack_height=2,\n                ),\n            ],\n        ),\n        container_post=Account(storage={slot_code_worked: value_code_worked}),\n    )\n\n\ndef test_jumpf_with_inputs_stack_size_1024(\n    eof_state_test: EOFStateTestFiller,\n) -> None:\n    \"\"\"\n    Test stack reaching 1024 items in target function of JUMPF with inputs.\n    \"\"\"\n    eof_state_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 * 1022 + Op.JUMPF[1],\n                    max_stack_height=1022,\n                ),\n                Section.Code(\n                    Op.SSTORE(slot_code_worked, value_code_worked) + Op.STOP,\n                    code_inputs=3,\n                    code_outputs=NON_RETURNING_SECTION,\n                    max_stack_height=5,\n                ),\n            ],\n        ),\n        container_post=Account(storage={slot_code_worked: value_code_worked}),\n    )\n\n\ndef test_jumpf_stack_size_1024_at_push(\n    eof_state_test: EOFStateTestFiller,\n) -> None:\n    \"\"\"\n    Test stack reaching 1024 items in JUMPF target function at PUSH0\n    instruction.\n    \"\"\"\n    eof_state_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 * 1023\n                    + Op.CALLF[1]\n                    + Op.POP * 1023\n                    + Op.SSTORE(slot_code_worked, value_code_worked)\n                    + Op.RETURN(0, 0),\n                    max_stack_height=1023,\n                ),\n                Section.Code(\n                    # stack has 1023 items\n                    Op.JUMPF[2],\n                    code_inputs=0,\n                    code_outputs=0,\n                    max_stack_height=0,\n                ),\n                Section.Code(\n                    Op.PUSH0\n                    +\n                    # stack has 1024 items\n                    Op.POP\n                    + Op.RETF,\n                    code_inputs=0,\n                    code_outputs=0,\n                    max_stack_height=1,\n                ),\n            ],\n        ),\n        container_post=Account(storage={slot_code_worked: value_code_worked}),\n    )\n\n\n@pytest.mark.parametrize(\n    (\"stack_height\", \"failure\"),\n    (\n        pytest.param(1021, False, id=\"no_overflow\"),\n        pytest.param(1022, True, id=\"rule_overflow\"),\n        pytest.param(1023, True, id=\"execution_overflow\"),\n    ),\n)\ndef test_jumpf_stack_overflow(\n    stack_height: int,\n    failure: bool,\n    eof_state_test: EOFStateTestFiller,\n) -> None:\n    \"\"\"\n    Test rule #2 in execution semantics, where we make sure we have enough\n    stack to guarantee safe execution (the \"reserved stack rule\") max possible\n    stack will not exceed 1024. But some executions may not overflow the stack,\n    so we need to ensure the rule is checked.\n\n    `no_overflow` - the stack does not overflow at JUMPF call, executes to end\n\n    `rule_overflow` - reserved stack rule triggers, but execution would not\n                      overflow if allowed\n\n    `execution_overflow` - execution would overflow (but still blocked by\n                           reserved stack rule)\n    \"\"\"\n    eof_state_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 * stack_height\n                    + Op.CALLF[1]\n                    + Op.POP * stack_height\n                    + Op.SSTORE(slot_code_worked, value_code_worked)\n                    + Op.RETURN(0, 0),\n                    max_stack_height=stack_height,\n                ),\n                Section.Code(\n                    # Stack has stack_height items\n                    Op.JUMPF[2],\n                    code_inputs=0,\n                    code_outputs=0,\n                    max_stack_height=0,\n                ),\n                Section.Code(\n                    Op.CALLDATALOAD(0)\n                    + Op.ISZERO\n                    + Op.RJUMPI[6]\n                    + Op.PUSH0 * 3\n                    + Op.POP * 3\n                    + Op.SSTORE(slot_stack_canary, value_canary_written)\n                    + Op.RETF,\n                    code_inputs=0,\n                    code_outputs=0,\n                    max_stack_height=3,\n                ),\n            ],\n        ),\n        container_post=Account(\n            storage={\n                slot_code_worked: 0 if failure else value_code_worked,\n                slot_stack_canary: 0 if failure else value_canary_written,\n            }\n        ),\n    )\n\n\ndef test_jumpf_with_inputs_stack_size_1024_at_push(\n    eof_state_test: EOFStateTestFiller,\n) -> None:\n    \"\"\"\n    Test stack reaching 1024 items in JUMPF target function with inputs at\n    PUSH0 instruction.\n    \"\"\"\n    eof_state_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 * 1023\n                    + Op.CALLF[1]\n                    + Op.POP * 1023\n                    + Op.SSTORE(slot_code_worked, value_code_worked)\n                    + Op.RETURN(0, 0),\n                    max_stack_height=1023,\n                ),\n                Section.Code(\n                    # Stack has 1023 items\n                    Op.JUMPF[2],\n                    code_inputs=3,\n                    code_outputs=3,\n                    max_stack_height=3,\n                ),\n                Section.Code(\n                    Op.PUSH0\n                    +\n                    # Stack has 1024 items\n                    Op.POP\n                    + Op.RETF,\n                    code_inputs=3,\n                    code_outputs=3,\n                    max_stack_height=4,\n                ),\n            ],\n        ),\n        container_post=Account(storage={slot_code_worked: value_code_worked}),\n    )\n\n\ndef test_jumpf_with_inputs_stack_overflow(\n    eof_state_test: EOFStateTestFiller,\n) -> None:\n    \"\"\"\n    Test stack overflowing 1024 items in JUMPF target function with inputs.\n    \"\"\"\n    eof_state_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 * 1023\n                    + Op.CALLF[1]\n                    + Op.POP * 1023\n                    + Op.SSTORE(slot_code_worked, value_code_worked)\n                    + Op.RETURN(0, 0),\n                    max_stack_height=1023,\n                ),\n                Section.Code(\n                    # Stack has 1023 items\n                    Op.JUMPF[2],\n                    code_inputs=3,\n                    code_outputs=3,\n                    max_stack_height=3,\n                ),\n                Section.Code(\n                    Op.PUSH0\n                    + Op.PUSH0\n                    +\n                    # Runtime stackoverflow\n                    Op.POP\n                    + Op.POP\n                    + Op.RETF,\n                    code_inputs=3,\n                    code_outputs=3,\n                    max_stack_height=5,\n                ),\n            ],\n        ),\n        container_post=Account(storage={slot_code_worked: 0}),\n    )\n\n\n@pytest.mark.parametrize(\n    \"container\",\n    [\n        Container(\n            name=\"self\",\n            sections=[\n                Section.Code(\n                    Op.SSTORE(slot_code_worked, value_code_worked) + Op.JUMPF[0],\n                ),\n            ],\n        ),\n        Container(\n            name=\"1_to_0\",\n            sections=[\n                Section.Code(\n                    Op.SSTORE(slot_code_worked, value_code_worked) + Op.JUMPF[1],\n                ),\n                Section.Code(\n                    Op.JUMPF[0],\n                ),\n            ],\n        ),\n        Container(\n            name=\"2_to_1\",\n            sections=[\n                Section.Code(\n                    Op.SSTORE(slot_code_worked, value_code_worked) + Op.JUMPF[1],\n                ),\n                Section.Code(\n                    Op.JUMPF[2],\n                ),\n                Section.Code(\n                    Op.JUMPF[1],\n                ),\n            ],\n        ),\n        Container(\n            name=\"2_to_1_returning\",\n            sections=[\n                Section.Code(\n                    Op.SSTORE(slot_code_worked, value_code_worked) + Op.CALLF[1] + Op.STOP,\n                ),\n                Section.Code(\n                    Op.JUMPF[2],\n                    code_outputs=0,\n                ),\n                Section.Code(\n                    Op.JUMPF[1],\n                    code_outputs=0,\n                ),\n            ],\n        ),\n        Container(\n            name=\"1_to_0_invalid\",\n            sections=[\n                Section.Code(\n                    Op.JUMPF[1],\n                ),\n                Section.Code(\n                    Op.JUMPF[0],\n                    code_outputs=0,\n                ),\n            ],\n            validity_error=EOFException.INVALID_NON_RETURNING_FLAG,\n        ),\n    ],\n    ids=lambda container: container.name,\n)\ndef test_jumpf_infinite_loop(eof_state_test: EOFStateTestFiller, container: Container) -> None:\n    \"\"\"Tests JUMPF causing an infinite loop.\"\"\"\n    eof_state_test(\n        container=container,\n        container_post=Account(storage={slot_code_worked: 0}),\n    )\n\n\ndef test_jumpf_memory_context(\n    state_test: StateTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"Verifies JUMPF doesn't corrupt memory.\"\"\"\n    env = Environment()\n    storage = Storage()\n    contract_address = pre.deploy_contract(\n        code=Container(\n            sections=[\n                Section.Code(\n                    Op.SSTORE(storage.store_next(value_code_worked), value_code_worked)\n                    + Op.MSTORE(0, 1)\n                    + Op.JUMPF[1],\n                ),\n                Section.Code(\n                    Op.SSTORE(storage.store_next(32), Op.MSIZE())\n                    + Op.SSTORE(storage.store_next(1), Op.MLOAD(0))\n                    + Op.STOP,\n                ),\n            ],\n        ),\n    )\n    post = {\n        contract_address: Account(\n            storage=storage,\n        ),\n    }\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=500_000,\n        sender=pre.fund_eoa(),\n    )\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\ndef test_callf_jumpf_retf_memory_context(\n    state_test: StateTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"Verifies CALLF, JUMPF and RETF don't corrupt memory.\"\"\"\n    env = Environment()\n    storage = Storage()\n    contract_address = pre.deploy_contract(\n        code=Container(\n            sections=[\n                Section.Code(\n                    Op.SSTORE(storage.store_next(value_code_worked), value_code_worked)\n                    + Op.MSTORE(0, 1)\n                    + Op.CALLF[1]\n                    + Op.SSTORE(storage.store_next(96), Op.MSIZE())\n                    + Op.SSTORE(storage.store_next(2), Op.MLOAD(0))\n                    + Op.SSTORE(storage.store_next(21), Op.MLOAD(32))\n                    + Op.SSTORE(storage.store_next(31), Op.MLOAD(64))\n                    + Op.STOP,\n                ),\n                Section.Code(\n                    Op.SSTORE(storage.store_next(32), Op.MSIZE())\n                    + Op.SSTORE(storage.store_next(1), Op.MLOAD(0))\n                    + Op.MSTORE(0, 2)\n                    + Op.MSTORE(32, 3)\n                    + Op.JUMPF[2],\n                    code_outputs=0,\n                ),\n                Section.Code(\n                    Op.SSTORE(storage.store_next(64), Op.MSIZE())\n                    + Op.SSTORE(storage.store_next(2), Op.MLOAD(0))\n                    + Op.SSTORE(storage.store_next(3), Op.MLOAD(32))\n                    + Op.MSTORE(32, 21)\n                    + Op.MSTORE(64, 31)\n                    + Op.RETF,\n                    code_outputs=0,\n                ),\n            ],\n        ),\n    )\n    post = {\n        contract_address: Account(\n            storage=storage,\n        ),\n    }\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=500_000,\n        sender=pre.fund_eoa(),\n    )\n    state_test(env=env, pre=pre, post=post, tx=tx)\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip6206_jumpf/test_jumpf_stack.py",
    "content": "\"\"\"EOF JUMPF tests covering stack validation rules.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_specs import EOFTestFiller\nfrom ethereum_test_tools import Account, EOFException, EOFStateTestFiller\nfrom ethereum_test_types.eof.constants import MAX_RUNTIME_STACK_HEIGHT\nfrom ethereum_test_types.eof.v1 import Container, Section\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .. import EOF_FORK_NAME\nfrom .helpers import slot_code_worked, value_code_worked\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-6206.md\"\nREFERENCE_SPEC_VERSION = \"2f365ea0cd58faa6e26013ea77ce6d538175f7d0\"\n\npytestmark = pytest.mark.valid_from(EOF_FORK_NAME)\n\n\n@pytest.mark.parametrize(\n    \"target_inputs\",\n    [0, 2, 4],\n    ids=lambda x: \"ti-%d\" % x,\n)\n@pytest.mark.parametrize(\n    \"stack_height\",\n    [0, 2, 4],\n    ids=lambda x: \"h-%d\" % x,\n)\ndef test_jumpf_stack_non_returning_rules(\n    eof_state_test: EOFStateTestFiller,\n    target_inputs: int,\n    stack_height: int,\n) -> None:\n    \"\"\"\n    Tests for JUMPF validation stack rules.  Non-returning section cases. Valid\n    cases are executed.\n    \"\"\"\n    container = Container(\n        name=\"stack-non-retuning_h-%d_ti-%d\" % (stack_height, target_inputs),\n        sections=[\n            Section.Code(\n                code=Op.JUMPF[1],\n            ),\n            Section.Code(\n                code=Op.PUSH0 * stack_height + Op.JUMPF[2],\n                max_stack_height=stack_height,\n            ),\n            Section.Code(\n                code=Op.POP * target_inputs\n                + Op.SSTORE(slot_code_worked, value_code_worked)\n                + Op.STOP,\n                code_inputs=target_inputs,\n                max_stack_height=max(2, target_inputs),\n            ),\n        ],\n    )\n\n    if stack_height < target_inputs:\n        container.validity_error = EOFException.STACK_UNDERFLOW\n\n    eof_state_test(\n        container=container,\n        container_post=Account(storage={slot_code_worked: value_code_worked}),\n        data=b\"\\1\",\n    )\n\n\n@pytest.mark.parametrize(\n    \"source_outputs\",\n    [0, 2, 4],\n    ids=lambda x: \"so-%d\" % x,\n)\n@pytest.mark.parametrize(\n    \"target_outputs\",\n    [0, 2, 4],\n    ids=lambda x: \"to-%d\" % x,\n)\n@pytest.mark.parametrize(\n    \"target_inputs\",\n    [0, 2, 4],\n    ids=lambda x: \"ti-%d\" % x,\n)\n@pytest.mark.parametrize(\"stack_diff\", [-1, 0, 1], ids=[\"less-stack\", \"same-stack\", \"more-stack\"])\ndef test_jumpf_stack_returning_rules(\n    eof_state_test: EOFStateTestFiller,\n    source_outputs: int,\n    target_outputs: int,\n    target_inputs: int,\n    stack_diff: int,\n) -> None:\n    \"\"\"\n    Tests for JUMPF validation stack rules.  Returning section cases. Valid\n    cases are executed.\n    \"\"\"\n    if target_outputs > source_outputs:\n        # These create invalid containers without JUMPF validation, Don't test.\n        return\n    if target_inputs == 0 and stack_diff < 0:\n        # Code generation is impossible for this configuration.  Don't test.\n        return\n\n    target_delta = target_outputs - target_inputs\n    container = Container(\n        name=\"stack-retuning_co-%d_to-%d_ti-%d_diff-%d\"\n        % (source_outputs, target_outputs, target_inputs, stack_diff),\n        sections=[\n            Section.Code(\n                code=Op.CALLF[1] + Op.SSTORE(slot_code_worked, value_code_worked) + Op.STOP,\n                max_stack_height=2 + source_outputs,\n            ),\n            Section.Code(\n                code=Op.PUSH0 * max(0, target_inputs + stack_diff) + Op.JUMPF[2],\n                code_outputs=source_outputs,\n                max_stack_height=target_inputs,\n            ),\n            Section.Code(\n                code=(Op.POP * -target_delta if target_delta < 0 else Op.PUSH0 * target_delta)\n                + Op.RETF,\n                code_inputs=target_inputs,\n                code_outputs=target_outputs,\n                max_stack_height=max(target_inputs, target_outputs),\n            ),\n        ],\n    )\n\n    if stack_diff < source_outputs - target_outputs:\n        container.validity_error = EOFException.STACK_UNDERFLOW\n    elif stack_diff > source_outputs - target_outputs:\n        container.validity_error = EOFException.STACK_HIGHER_THAN_OUTPUTS\n\n    eof_state_test(\n        container=container,\n        container_post=Account(storage={slot_code_worked: value_code_worked}),\n        data=b\"\\1\",\n    )\n\n\n@pytest.mark.parametrize(\n    [\"target_inputs\", \"target_outputs\", \"stack_height\", \"expected_exception\"],\n    [\n        pytest.param(1, 0, 1, EOFException.STACK_UNDERFLOW, id=\"less_stack\"),\n        pytest.param(2, 1, 2, None, id=\"same_stack\"),\n        pytest.param(\n            3, 2, 3, EOFException.JUMPF_DESTINATION_INCOMPATIBLE_OUTPUTS, id=\"more_stack\"\n        ),\n        pytest.param(\n            2, 2, 1, EOFException.JUMPF_DESTINATION_INCOMPATIBLE_OUTPUTS, id=\"less_output\"\n        ),\n        pytest.param(1, 1, 1, None, id=\"same_output\"),\n        pytest.param(0, 0, 1, None, id=\"more_output\"),\n    ],\n)\ndef test_jumpf_incompatible_outputs(\n    eof_test: EOFTestFiller,\n    target_inputs: int,\n    target_outputs: int,\n    stack_height: int,\n    expected_exception: EOFException,\n) -> None:\n    \"\"\"Tests JUMPF into a section with incorrect number of outputs.\"\"\"\n    current_section_outputs = 1\n    if (current_section_outputs + target_inputs - target_outputs) != stack_height:\n        assert expected_exception is not None\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(Op.CALLF(1) + Op.STOP, max_stack_height=1),\n                Section.Code(\n                    Op.PUSH0 * stack_height + Op.JUMPF(2),\n                    code_outputs=current_section_outputs,\n                ),\n                Section.Code(\n                    Op.POP * (target_inputs - target_outputs) + Op.RETF,\n                    code_inputs=target_inputs,\n                    code_outputs=target_outputs,\n                    max_stack_height=target_inputs,\n                ),\n            ]\n        ),\n        expect_exception=expected_exception,\n    )\n\n\n@pytest.mark.parametrize(\n    [\"target_inputs\", \"target_outputs\", \"stack_height\", \"expected_exception\"],\n    [\n        pytest.param(1, 0, 1, EOFException.STACK_UNDERFLOW, id=\"less_stack\"),\n        pytest.param(2, 1, 2, EOFException.STACK_HIGHER_THAN_OUTPUTS, id=\"same_stack\"),\n        pytest.param(\n            3, 2, 3, EOFException.JUMPF_DESTINATION_INCOMPATIBLE_OUTPUTS, id=\"more_stack\"\n        ),\n        pytest.param(\n            2, 2, 1, EOFException.JUMPF_DESTINATION_INCOMPATIBLE_OUTPUTS, id=\"less_output\"\n        ),\n        pytest.param(1, 1, 1, EOFException.STACK_HIGHER_THAN_OUTPUTS, id=\"same_output\"),\n        pytest.param(0, 0, 1, EOFException.STACK_HIGHER_THAN_OUTPUTS, id=\"more_output\"),\n    ],\n)\ndef test_jumpf_diff_max_stack_height(\n    eof_test: EOFTestFiller,\n    target_inputs: int,\n    target_outputs: int,\n    stack_height: int,\n    expected_exception: EOFException,\n) -> None:\n    \"\"\"Tests jumpf with a different max stack height.\"\"\"\n    current_section_outputs = 1\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(Op.CALLF(1) + Op.STOP, max_stack_height=1),\n                Section.Code(\n                    (Op.PUSH0 * stack_height)  # (0, 0)\n                    + Op.PUSH0  # (stack_height, stack_height)\n                    + Op.RJUMPI[1]  # (stack_height + 1, stack_height + 1)\n                    + Op.PUSH0  # (stack_height, stack_height)\n                    + Op.JUMPF(2),  # (stack_height, stack_height + 1)\n                    code_outputs=current_section_outputs,\n                ),\n                Section.Code(\n                    Op.POP * (target_inputs - target_outputs) + Op.RETF,\n                    code_inputs=target_inputs,\n                    code_outputs=target_outputs,\n                    max_stack_height=target_inputs,\n                ),\n            ]\n        ),\n        expect_exception=expected_exception,\n    )\n\n\n@pytest.mark.parametrize(\n    [\"target_inputs\", \"target_outputs\", \"stack_height\", \"expected_exception\"],\n    [\n        pytest.param(1, 0, 1, EOFException.STACK_UNDERFLOW, id=\"less_stack\"),\n        pytest.param(2, 1, 2, EOFException.STACK_UNDERFLOW, id=\"same_stack\"),\n        pytest.param(\n            3, 2, 3, EOFException.JUMPF_DESTINATION_INCOMPATIBLE_OUTPUTS, id=\"more_stack\"\n        ),\n        pytest.param(\n            2, 2, 1, EOFException.JUMPF_DESTINATION_INCOMPATIBLE_OUTPUTS, id=\"less_output\"\n        ),\n        pytest.param(1, 1, 1, EOFException.STACK_UNDERFLOW, id=\"same_output\"),\n        pytest.param(0, 0, 1, EOFException.STACK_UNDERFLOW, id=\"more_output\"),\n    ],\n)\ndef test_jumpf_diff_min_stack_height(\n    eof_test: EOFTestFiller,\n    target_inputs: int,\n    target_outputs: int,\n    stack_height: int,\n    expected_exception: EOFException,\n) -> None:\n    \"\"\"Tests jumpf with a different min stack height.\"\"\"\n    current_section_outputs = 1\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(Op.CALLF(1) + Op.STOP, max_stack_height=1),\n                Section.Code(\n                    (Op.PUSH0 * (stack_height - 1))  # (0, 0)\n                    + Op.PUSH0  # (stack_height - 1, stack_height - 1)\n                    + Op.RJUMPI[1]  # (stack_height, stack_height)\n                    + Op.PUSH0  # (stack_height - 1, stack_height - 1)\n                    + Op.JUMPF(2),  # (stack_height - 1, stack_height)\n                    code_outputs=current_section_outputs,\n                ),\n                Section.Code(\n                    Op.POP * (target_inputs - target_outputs) + Op.RETF,\n                    code_inputs=target_inputs,\n                    code_outputs=target_outputs,\n                    max_stack_height=target_inputs,\n                ),\n            ]\n        ),\n        expect_exception=expected_exception,\n    )\n\n\ndef test_jumpf_self_variadic_stack_overflow(eof_test: EOFTestFiller) -> None:\n    \"\"\"Test JUMPF calling self causing EOF validation stack overflow.\"\"\"\n    container = Container(\n        name=\"jumpf_stack_overflow_variable_stack_0\",\n        sections=[\n            Section.Code(\n                code=Op.PUSH0 + Op.RJUMPI[2](0) + Op.PUSH0 * 511 + Op.JUMPF[0],\n                max_stack_height=512,\n            ),\n        ],\n    )\n    eof_test(container=container)\n\n\n@pytest.mark.parametrize(\"stack_height\", [512, 1022, 1023])\n@pytest.mark.parametrize(\"callee_stack_height\", [0, 1, 2, 5, 511, 512, 513])\ndef test_jumpf_variadic_stack_overflow(\n    eof_test: EOFTestFiller, stack_height: int, callee_stack_height: int\n) -> None:\n    \"\"\"\n    Test JUMPF stack validation causing stack overflow with variable stack\n    height.\n    \"\"\"\n    container = Container(\n        sections=[\n            Section.Code(\n                code=Op.PUSH0 + Op.RJUMPI[2](0) + Op.PUSH0 * (stack_height - 1) + Op.JUMPF[1],\n                max_stack_height=stack_height,\n            ),\n            Section.Code(\n                code=Op.PUSH0 * callee_stack_height + Op.STOP,\n                max_stack_height=callee_stack_height,\n            ),\n        ],\n        validity_error=EOFException.STACK_OVERFLOW\n        if stack_height + callee_stack_height > MAX_RUNTIME_STACK_HEIGHT\n        else None,\n    )\n    eof_test(container=container)\n\n\n@pytest.mark.parametrize(\"stack_height\", [1022, 1023])\n@pytest.mark.parametrize(\"callee_stack_increase\", [0, 1, 2])\ndef test_jumpf_with_inputs_stack_overflow(\n    eof_test: EOFTestFiller, stack_height: int, callee_stack_increase: int\n) -> None:\n    \"\"\"Test validation of JUMPF with inputs causing stack overflow.\"\"\"\n    container = Container(\n        sections=[\n            Section.Code(\n                code=Op.PUSH0 * stack_height + Op.JUMPF[1],\n                max_stack_height=stack_height,\n            ),\n            Section.Code(\n                code=Op.PUSH0 * callee_stack_increase + Op.STOP,\n                code_inputs=2,\n                max_stack_height=2 + callee_stack_increase,\n            ),\n        ],\n        validity_error=EOFException.STACK_OVERFLOW\n        if stack_height + callee_stack_increase > MAX_RUNTIME_STACK_HEIGHT\n        else None,\n    )\n    eof_test(container=container)\n\n\n@pytest.mark.parametrize(\"stack_height\", [1022, 1023])\n@pytest.mark.parametrize(\"callee_stack_increase\", [0, 1, 2])\ndef test_jumpf_with_inputs_stack_overflow_variable_stack(\n    eof_test: EOFTestFiller, stack_height: int, callee_stack_increase: int\n) -> None:\n    \"\"\"\n    Test JUMPF with variable stack depending on RJUMPI calling function with\n    inputs.\n    \"\"\"\n    container = Container(\n        sections=[\n            Section.Code(\n                code=Op.PUSH0 + Op.RJUMPI[2](0) + Op.PUSH0 * (stack_height - 1) + Op.JUMPF[1],\n                max_stack_height=stack_height,\n            ),\n            Section.Code(\n                code=Op.PUSH0 * callee_stack_increase + Op.STOP,\n                code_inputs=2,\n                max_stack_height=2 + callee_stack_increase,\n            ),\n        ],\n        validity_error=EOFException.STACK_OVERFLOW\n        if stack_height + callee_stack_increase > MAX_RUNTIME_STACK_HEIGHT\n        else None,\n    )\n    eof_test(container=container)\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip6206_jumpf/test_jumpf_target.py",
    "content": "\"\"\"EOF JUMPF tests covering JUMPF target rules.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_tools import Account, EOFException, EOFStateTestFiller\nfrom ethereum_test_types.eof.v1 import Container, Section\nfrom ethereum_test_types.eof.v1.constants import NON_RETURNING_SECTION\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .. import EOF_FORK_NAME\nfrom .helpers import slot_code_worked, value_code_worked\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-6206.md\"\nREFERENCE_SPEC_VERSION = \"2f365ea0cd58faa6e26013ea77ce6d538175f7d0\"\n\npytestmark = pytest.mark.valid_from(EOF_FORK_NAME)\n\n\n@pytest.mark.parametrize(\n    \"target_outputs\",\n    [NON_RETURNING_SECTION, 0, 2, 4, 127],\n    ids=lambda x: \"to-%s\" % (\"N\" if x == NON_RETURNING_SECTION else x),\n)\n@pytest.mark.parametrize(\n    \"source_outputs\",\n    [NON_RETURNING_SECTION, 0, 2, 4, 127],\n    ids=lambda x: \"so-%s\" % (\"N\" if x == NON_RETURNING_SECTION else x),\n)\ndef test_jumpf_target_rules(\n    eof_state_test: EOFStateTestFiller,\n    source_outputs: int,\n    target_outputs: int,\n) -> None:\n    \"\"\"\n    Validate the target section rules of JUMPF, and execute valid cases. We are\n    not testing stack so a lot of the logic is to get correct stack values.\n    \"\"\"\n    source_non_returning = source_outputs == NON_RETURNING_SECTION\n    source_height = 0 if source_non_returning else source_outputs\n    source_section_index = 1\n\n    target_non_returning = target_outputs == NON_RETURNING_SECTION\n    target_height = 0 if target_non_returning else target_outputs\n    target_section_index = 2\n\n    # Because we are testing the target and not the stack height validation we\n    # need to do some work to make sure the stack passes validation.\n\n    # `source_extra_push` is how many more pushes we need to match our stack\n    # commitments\n    source_extra_push = max(0, source_height - target_height)\n    source_section = Section.Code(\n        code=Op.PUSH0 * (source_height)\n        + Op.CALLDATALOAD(0)\n        + Op.RJUMPI[1]\n        + (Op.STOP if source_non_returning else Op.RETF)\n        + Op.PUSH0 * source_extra_push\n        + Op.JUMPF[target_section_index],\n        code_inputs=0,\n        code_outputs=source_outputs,\n        max_stack_height=source_height + max(1, source_extra_push),\n    )\n\n    # `delta` is how many stack items the target output is from the input\n    # height, and tracks the number of pushes or (if negative) pops the target\n    # needs to do to match output commitments\n    delta = 0 if target_non_returning or source_non_returning else target_outputs - source_height\n    target_section = Section.Code(\n        code=((Op.PUSH0 * delta) if delta >= 0 else (Op.POP * -delta))\n        + Op.CALLF[3]\n        + (Op.STOP if target_non_returning else Op.RETF),\n        code_inputs=source_height,\n        code_outputs=target_outputs,\n        max_stack_height=max(source_height, source_height + delta),\n    )\n\n    base_code = (\n        Op.JUMPF[source_section_index]\n        if source_non_returning\n        else (Op.CALLF[source_section_index](0, 0) + Op.STOP)\n    )\n    base_height = 0 if source_non_returning else 2 + source_outputs\n    container = Container(\n        name=\"so-%s_to-%s\"\n        % (\n            \"N\" if source_non_returning else source_outputs,\n            \"N\" if target_non_returning else target_outputs,\n        ),\n        sections=[\n            Section.Code(\n                code=base_code,\n                max_stack_height=base_height,\n            ),\n            source_section,\n            target_section,\n            Section.Code(\n                code=Op.SSTORE(slot_code_worked, value_code_worked) + Op.RETF,\n                code_outputs=0,\n            ),\n        ],\n    )\n    if target_non_returning or source_non_returning:\n        if not target_non_returning and source_non_returning:\n            # both as non-returning handled above\n            container.validity_error = EOFException.INVALID_NON_RETURNING_FLAG\n    elif source_outputs < target_outputs:\n        container.validity_error = EOFException.JUMPF_DESTINATION_INCOMPATIBLE_OUTPUTS\n\n    eof_state_test(\n        container=container,\n        container_post=Account(storage={slot_code_worked: value_code_worked}),\n        data=b\"\\1\",\n    )\n\n\n@pytest.mark.skip(\"Not implemented\")\ndef test_jumpf_multi_target_rules(\n    eof_state_test: EOFStateTestFiller,\n) -> None:\n    \"\"\"\n    NOT IMPLEMENTED: Test a section that contains multiple JUMPF to different\n    targets with different outputs.\n    \"\"\"\n    pass\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip6206_jumpf/test_jumpf_validation.py",
    "content": "\"\"\"EOF validation tests for JUMPF instruction.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_tools import EOFException, EOFTestFiller\nfrom ethereum_test_types.eof.constants import MAX_RUNTIME_STACK_HEIGHT\nfrom ethereum_test_types.eof.v1 import Container, Section\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .. import EOF_FORK_NAME\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-6206.md\"\nREFERENCE_SPEC_VERSION = \"2f365ea0cd58faa6e26013ea77ce6d538175f7d0\"\n\npytestmark = pytest.mark.valid_from(EOF_FORK_NAME)\n\n\n@pytest.mark.parametrize(\n    \"container\",\n    [\n        Container(\n            name=\"to_0\",\n            sections=[\n                Section.Code(\n                    Op.CALLF[1] + Op.STOP,\n                ),\n                Section.Code(\n                    Op.JUMPF[0],\n                    code_outputs=0,\n                ),\n            ],\n        ),\n        Container(\n            name=\"to_2\",\n            sections=[\n                Section.Code(\n                    Op.CALLF[1] + Op.STOP,\n                ),\n                Section.Code(\n                    Op.JUMPF[2],\n                    code_outputs=0,\n                ),\n                Section.Code(\n                    Op.INVALID,\n                ),\n            ],\n        ),\n        Container(\n            name=\"to_retf\",\n            sections=[\n                Section.Code(\n                    Op.CALLF[1] + Op.STOP,\n                ),\n                Section.Code(\n                    Op.JUMPF[2],\n                    code_outputs=0,\n                ),\n                Section.Code(\n                    Op.RETF,\n                ),\n            ],\n        ),\n    ],\n    ids=lambda container: container.name,\n)\ndef test_returning_jumpf(\n    eof_test: EOFTestFiller,\n    container: Container,\n) -> None:\n    \"\"\"Test cases for JUMPF instruction validation in a returning sections.\"\"\"\n    eof_test(container=container, expect_exception=EOFException.INVALID_NON_RETURNING_FLAG)\n\n\n@pytest.mark.parametrize(\n    \"container\",\n    [\n        Container(\n            name=\"jumpf1\",\n            sections=[\n                Section.Code(\n                    Op.JUMPF[1],\n                )\n            ],\n        ),\n        Container(\n            name=\"jumpf2\",\n            sections=[\n                Section.Code(\n                    Op.JUMPF[2],\n                ),\n                Section.Code(\n                    Op.STOP,\n                ),\n            ],\n        ),\n        Container(\n            name=\"jumpf1_jumpf2\",\n            sections=[\n                Section.Code(\n                    Op.JUMPF[1],\n                ),\n                Section.Code(\n                    Op.JUMPF[2],\n                ),\n            ],\n        ),\n    ],\n    ids=lambda container: container.name,\n)\ndef test_invalid_code_section_index(\n    eof_test: EOFTestFiller,\n    container: Container,\n) -> None:\n    \"\"\"\n    Test cases for JUMPF instructions with invalid target code section index.\n    \"\"\"\n    eof_test(container=container, expect_exception=EOFException.INVALID_CODE_SECTION_INDEX)\n\n\ndef test_returning_section_aborts_jumpf(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"\n    Test EOF container validation where in the same code section we have\n    returning and nonreturning terminating instructions.\n    \"\"\"\n    container = Container(\n        sections=[\n            Section.Code(code=Op.CALLF[1] + Op.STOP, max_stack_height=1),\n            Section.Code(\n                code=Op.PUSH0 * 2 + Op.RJUMPI[4] + Op.POP + Op.JUMPF[2] + Op.RETF,\n                code_outputs=1,\n            ),\n            Section.Code(\n                code=Op.PUSH0 * 2 + Op.RJUMPI[1] + Op.RETF + Op.INVALID,\n                code_inputs=0,\n                code_outputs=1,\n            ),\n        ],\n    )\n    eof_test(container=container)\n\n\n@pytest.mark.parametrize(\"stack_height\", [512, 513, 1023])\ndef test_jumpf_self_stack_overflow(eof_test: EOFTestFiller, stack_height: int) -> None:\n    \"\"\"\n    Test JUMPF instruction jumping to itself causing validation time stack\n    overflow.\n    \"\"\"\n    container = Container(\n        sections=[\n            Section.Code(\n                code=(Op.PUSH0 * stack_height) + Op.JUMPF[0],\n                max_stack_height=stack_height,\n            ),\n        ],\n    )\n    stack_overflow = stack_height > MAX_RUNTIME_STACK_HEIGHT // 2\n    eof_test(\n        container=container,\n        expect_exception=EOFException.STACK_OVERFLOW if stack_overflow else None,\n    )\n\n\n@pytest.mark.parametrize(\"stack_height_other\", [1, 2, 512, 513, 1023])\n@pytest.mark.parametrize(\"stack_height\", [1, 2, 512, 513, 1023])\ndef test_jumpf_other_stack_overflow(\n    eof_test: EOFTestFiller, stack_height: int, stack_height_other: int\n) -> None:\n    \"\"\"\n    Test JUMPF instruction jumping to other section causing validation time\n    stack overflow.\n    \"\"\"\n    container = Container(\n        sections=[\n            Section.Code(\n                code=(Op.PUSH0 * stack_height) + Op.JUMPF[1],\n                max_stack_height=stack_height,\n            ),\n            Section.Code(\n                code=(Op.PUSH0 * stack_height_other) + Op.STOP,\n                max_stack_height=stack_height_other,\n            ),\n        ],\n    )\n    stack_overflow = stack_height + stack_height_other > MAX_RUNTIME_STACK_HEIGHT\n    eof_test(\n        container=container,\n        expect_exception=EOFException.STACK_OVERFLOW if stack_overflow else None,\n    )\n\n\n@pytest.mark.parametrize(\"code_inputs\", [0, 3])\n@pytest.mark.parametrize(\"stack_height\", [0, 2, 3, 4])\ndef test_jumpf_to_non_returning(\n    eof_test: EOFTestFiller, stack_height: int, code_inputs: int\n) -> None:\n    \"\"\"Test JUMPF jumping to a non-returning function.\"\"\"\n    container = Container(\n        sections=[\n            Section.Code(\n                code=Op.PUSH0 * stack_height + Op.JUMPF[1], max_stack_height=stack_height\n            ),\n            Section.Code(code=Op.STOP, code_inputs=code_inputs, max_stack_height=code_inputs),\n        ],\n    )\n    eof_test(\n        container=container,\n        expect_exception=EOFException.STACK_UNDERFLOW if stack_height < code_inputs else None,\n    )\n\n\n@pytest.mark.parametrize(\"code_inputs\", [0, 1, 3, 5])\ndef test_jumpf_to_non_returning_variable_stack(eof_test: EOFTestFiller, code_inputs: int) -> None:\n    \"\"\"\n    Test JUMPF jumping to a non-returning function with stack depending on\n    RJUMPI.\n    \"\"\"\n    container = Container(\n        sections=[\n            Section.Code(\n                code=Op.PUSH0 + Op.RJUMPI[2](0) + Op.PUSH0 * 2 + Op.JUMPF[1],\n                max_stack_height=3,\n            ),\n            Section.Code(code=Op.INVALID, code_inputs=code_inputs, max_stack_height=code_inputs),\n        ],\n    )\n    eof_test(\n        container=container,\n        expect_exception=EOFException.STACK_UNDERFLOW if code_inputs >= 3 else None,\n    )\n\n\n@pytest.mark.parametrize(\"code_inputs\", [0, 3])\n@pytest.mark.parametrize(\"code_outputs\", [1, 2])\n@pytest.mark.parametrize(\"stack_height\", [0, 1, 2, 3, 4, 5])\ndef test_jumpf_to_returning(\n    eof_test: EOFTestFiller, code_inputs: int, code_outputs: int, stack_height: int\n) -> None:\n    \"\"\"Test JUMPF jumping to a returning function.\"\"\"\n    exceptions = []\n    if code_inputs > stack_height or (stack_height - code_inputs + code_outputs) < 2:\n        exceptions.append(EOFException.STACK_UNDERFLOW)\n    if stack_height - code_inputs + code_outputs > 2:\n        exceptions.append(EOFException.STACK_HIGHER_THAN_OUTPUTS)\n\n    third_cs_stack_height = code_inputs if code_inputs > code_outputs else code_outputs\n    third_cs = None\n    if code_outputs < code_inputs:\n        third_cs = Op.POP * (code_inputs - code_outputs) + Op.RETF\n    else:\n        third_cs = Op.PUSH0 * (code_outputs - code_inputs) + Op.RETF\n\n    container = Container(\n        sections=[\n            Section.Code(code=Op.CALLF[1] + Op.STOP, max_stack_height=2),\n            Section.Code(code=Op.PUSH0 * stack_height + Op.JUMPF[2], code_outputs=2),\n            Section.Code(\n                code=third_cs,\n                code_inputs=code_inputs,\n                code_outputs=code_outputs,\n                max_stack_height=third_cs_stack_height,\n            ),\n        ],\n    )\n\n    eof_test(\n        container=container,\n        expect_exception=exceptions if exceptions else None,\n    )\n\n\n@pytest.mark.parametrize(\"code_inputs\", [0, 1, 3, 5])\n@pytest.mark.parametrize(\"code_outputs\", [1, 3])\n@pytest.mark.parametrize(\"stack_increase\", [0, 1, 2, 3, 4])\ndef test_jumpf_to_returning_variable_stack_1(\n    eof_test: EOFTestFiller,\n    code_inputs: int,\n    code_outputs: int,\n    stack_increase: int,\n) -> None:\n    \"\"\"\n    Test JUMPF with variable stack jumping to a returning function increasing\n    the stack.\n    \"\"\"\n    exception = None\n    if code_inputs >= 3 or code_outputs + 1 < 3:  # 3 = Section 1's max stack\n        exception = EOFException.STACK_UNDERFLOW\n    if 3 - code_inputs + code_outputs > 3:\n        exception = EOFException.STACK_HIGHER_THAN_OUTPUTS\n\n    container = Container(\n        sections=[\n            Section.Code(code=Op.CALLF[1] + Op.STOP, max_stack_height=3),\n            Section.Code(\n                code=Op.PUSH0 + Op.RJUMPI[2](0) + Op.PUSH0 * 2 + Op.JUMPF[2],\n                code_outputs=3,\n                max_stack_height=3,\n            ),\n            Section.Code(\n                code=Op.PUSH0 * stack_increase + Op.RETF,\n                code_inputs=code_inputs,\n                code_outputs=code_outputs,\n                max_stack_height=code_inputs if code_inputs > code_outputs else code_outputs,\n            ),\n        ],\n    )\n\n    eof_test(\n        container=container,\n        expect_exception=exception,\n    )\n\n\n@pytest.mark.parametrize(\"code_inputs\", [1, 3, 5])\n@pytest.mark.parametrize(\"code_outputs\", [1])\n@pytest.mark.parametrize(\"stack_decrease\", [0, 2, 4])\ndef test_jumpf_to_returning_variable_stack_2(\n    eof_test: EOFTestFiller,\n    code_inputs: int,\n    code_outputs: int,\n    stack_decrease: int,\n) -> None:\n    \"\"\"\n    Test JUMPF with variable stack jumping to a returning function decreasing\n    the stack.\n    \"\"\"\n    exceptions = []\n    if code_inputs >= 3 or code_outputs + 1 < 3:  # 3 = Section 1's max stack\n        exceptions.append(EOFException.STACK_UNDERFLOW)\n    if 3 - code_inputs + code_outputs > 2:\n        exceptions.append(EOFException.STACK_HIGHER_THAN_OUTPUTS)\n\n    container = Container(\n        sections=[\n            Section.Code(code=Op.CALLF[1] + Op.STOP, max_stack_height=2),\n            Section.Code(\n                code=Op.PUSH0 + Op.RJUMPI[2](0) + Op.PUSH0 * 2 + Op.JUMPF[2],\n                code_outputs=2,\n                max_stack_height=3,\n            ),\n            Section.Code(\n                code=Op.POP * stack_decrease + Op.RETF,\n                code_inputs=code_inputs,\n                code_outputs=code_outputs,\n                max_stack_height=code_inputs if code_inputs > code_outputs else code_outputs,\n            ),\n        ],\n    )\n\n    eof_test(\n        container=container,\n        expect_exception=exceptions,\n    )\n\n\ndef test_jumpf_to_returning_variable_stack_3(eof_test: EOFTestFiller) -> None:\n    \"\"\"\n    Test JUMPF with variable stack jumping to a returning function increasing\n    the stack.\n    \"\"\"\n    container = Container(\n        sections=[\n            Section.Code(code=Op.CALLF[1] + Op.STOP, max_stack_height=2),\n            Section.Code(\n                code=Op.PUSH0 + Op.PUSH1[0] + Op.RJUMPI[2] + Op.PUSH0 * 2 + Op.JUMPF[2],\n                code_outputs=2,\n                max_stack_height=3,\n            ),\n            Section.Code(\n                code=Op.PUSH0 + Op.RETF,\n                code_outputs=1,\n                max_stack_height=1,\n            ),\n        ],\n    )\n\n    eof_test(\n        container=container,\n        expect_exception=EOFException.STACK_HIGHER_THAN_OUTPUTS,\n    )\n\n\n@pytest.mark.parametrize(\n    \"container\",\n    [\n        Container(\n            name=\"underflow_2\",\n            sections=[\n                Section.Code(\n                    code=Op.CALLF[1] + Op.STOP,\n                    max_stack_height=2,\n                ),\n                Section.Code(\n                    code=Op.JUMPF[2],\n                    code_outputs=2,\n                    max_stack_height=0,\n                ),\n                Section.Code(\n                    code=Op.PUSH0 + Op.RETF,\n                    code_inputs=1,\n                    code_outputs=2,\n                    max_stack_height=2,\n                ),\n            ],\n        ),\n        Container(\n            name=\"underflow_3\",\n            sections=[\n                Section.Code(\n                    code=Op.JUMPF[1],\n                ),\n                Section.Code(\n                    code=Op.REVERT(0, 0),\n                    code_inputs=1,\n                    max_stack_height=3,\n                ),\n            ],\n        ),\n        Container(\n            name=\"underflow_variable_stack_4\",\n            sections=[\n                Section.Code(\n                    code=Op.CALLF[1] + Op.STOP,\n                    max_stack_height=3,\n                ),\n                Section.Code(\n                    code=Op.PUSH0 + Op.RJUMPI[2](0) + Op.PUSH0 + Op.PUSH0 + Op.JUMPF[2],\n                    code_outputs=3,\n                    max_stack_height=3,\n                ),\n                Section.Code(\n                    code=Op.POP + Op.POP + Op.RETF,\n                    code_inputs=5,\n                    code_outputs=3,\n                    max_stack_height=5,\n                ),\n            ],\n        ),\n        Container(\n            name=\"underflow_variable_stack_6\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 + Op.RJUMPI[2](0) + Op.PUSH0 + Op.PUSH0 + Op.JUMPF[1],\n                    max_stack_height=3,\n                ),\n                Section.Code(\n                    code=Op.REVERT(0, 0),\n                    code_inputs=4,\n                    max_stack_height=6,\n                ),\n            ],\n        ),\n        Container(\n            name=\"underflow_variable_stack_7\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 + Op.RJUMPI[2](0) + Op.PUSH0 + Op.PUSH0 + Op.JUMPF[1],\n                    max_stack_height=3,\n                ),\n                Section.Code(\n                    code=Op.REVERT(0, 0),\n                    code_inputs=3,\n                    max_stack_height=5,\n                ),\n            ],\n        ),\n        Container(\n            name=\"underflow_variable_stack_8\",\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 * 3 + Op.RJUMPI[1](0) + Op.POP + Op.JUMPF[1],\n                    max_stack_height=3,\n                ),\n                Section.Code(\n                    code=Op.REVERT(0, 0),\n                    code_inputs=3,\n                    max_stack_height=5,\n                ),\n            ],\n        ),\n    ],\n    ids=lambda x: x.name,\n)\ndef test_jumpf_stack_underflow_examples(eof_test: EOFTestFiller, container: Container) -> None:\n    \"\"\"Test JUMPF instruction causing validation time stack underflow.\"\"\"\n    eof_test(container=container, expect_exception=EOFException.STACK_UNDERFLOW)\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip6206_jumpf/test_nonreturning_validation.py",
    "content": "\"\"\"EOF validation tests for non-returning code sections.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_tools import EOFException, EOFTestFiller\nfrom ethereum_test_types.eof.v1 import NON_RETURNING_SECTION, Container, ContainerKind, Section\nfrom ethereum_test_vm import Bytecode\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .. import EOF_FORK_NAME\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-6206.md\"\nREFERENCE_SPEC_VERSION = \"2f365ea0cd58faa6e26013ea77ce6d538175f7d0\"\n\npytestmark = pytest.mark.valid_from(EOF_FORK_NAME)\n\n\n@pytest.mark.parametrize(\n    \"code\",\n    [\n        pytest.param(Op.STOP, id=\"STOP\"),\n        pytest.param(Op.INVALID, id=\"INVALID\"),\n        pytest.param(Op.ADDRESS + Op.POP + Op.INVALID, id=\"ADDRESS_POP_INVALID\"),\n        pytest.param(Op.RETURN(0, 0), id=\"RETURN\"),\n        pytest.param(Op.RETF, id=\"RETF\"),\n        pytest.param(Op.PUSH0 + Op.RETF, id=\"PUSH0_RETF\"),\n    ],\n)\n@pytest.mark.parametrize(\n    \"outputs\",\n    [0, 1, 0x7F, 0x81, 0xFF],\n)\ndef test_first_section_returning(eof_test: EOFTestFiller, code: Bytecode, outputs: int) -> None:\n    \"\"\"\n    Test EOF validation failing because the first section is not non-returning.\n    \"\"\"\n    eof_test(\n        container=Container(\n            sections=[Section.Code(code, code_outputs=outputs)],\n            validity_error=EOFException.INVALID_FIRST_SECTION_TYPE,\n        )\n    )\n\n\n@pytest.mark.parametrize(\n    \"code\",\n    [\n        pytest.param(Op.INVALID, id=\"INVALID\"),\n        pytest.param(Op.RETF, id=\"RETF\"),\n        pytest.param(Op.POP + Op.RETF, id=\"POP_RETF\"),\n    ],\n)\n@pytest.mark.parametrize(\n    \"inputs\",\n    [1, 2, 0x7F, 0x80, 0x81, 0xFF],\n)\n@pytest.mark.parametrize(\n    \"outputs\",\n    [\n        0,\n        NON_RETURNING_SECTION,\n    ],\n)\ndef test_first_section_with_inputs(\n    eof_test: EOFTestFiller, code: Bytecode, inputs: int, outputs: int\n) -> None:\n    \"\"\"\n    Test EOF validation failing because the first section has non-zero number\n    of inputs.\n    \"\"\"\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code,\n                    code_inputs=inputs,\n                    code_outputs=outputs,\n                    max_stack_height=max(inputs, outputs),\n                )\n            ],\n            validity_error=EOFException.INVALID_FIRST_SECTION_TYPE,\n        )\n    )\n\n\n@pytest.mark.parametrize(\n    \"code_section\",\n    [\n        pytest.param(Section.Code(Op.STOP, code_outputs=0), id=\"stop0\"),\n        pytest.param(Section.Code(Op.PUSH0 + Op.STOP, code_outputs=1), id=\"stop1\"),\n        pytest.param(Section.Code(Op.INVALID, code_outputs=0), id=\"invalid0\"),\n        pytest.param(Section.Code(Op.PUSH0 + Op.INVALID, code_outputs=1), id=\"invalid1\"),\n        pytest.param(Section.Code(Op.RETURN(0, 0), code_outputs=0), id=\"return0\"),\n        pytest.param(Section.Code(Op.PUSH0 + Op.RETURN(0, 0), code_outputs=1), id=\"return1\"),\n        pytest.param(Section.Code(Op.REVERT(0, 0), code_outputs=0), id=\"revert0\"),\n        pytest.param(Section.Code(Op.PUSH0 + Op.REVERT(0, 0), code_outputs=1), id=\"revert1\"),\n        pytest.param(Section.Code(Op.RJUMP[-3], code_outputs=0), id=\"rjump0\"),\n        pytest.param(Section.Code(Op.PUSH0 + Op.RJUMP[-3], code_outputs=1), id=\"rjump1\"),\n    ],\n)\ndef test_returning_section_not_returning(eof_test: EOFTestFiller, code_section: Section) -> None:\n    \"\"\"\n    Test EOF validation failing due to returning section with no RETF or\n    JUMPF-to-returning.\n    \"\"\"\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(Op.CALLF[1] + Op.STOP, max_stack_height=code_section.code_outputs),\n                code_section,\n            ],\n            validity_error=EOFException.INVALID_NON_RETURNING_FLAG,\n        ),\n    )\n\n\n@pytest.mark.parametrize(\n    \"code_section\",\n    [\n        pytest.param(Section.Code(Op.RETURNCODE[0](0, 0), code_outputs=0), id=\"returncode0\"),\n        pytest.param(\n            Section.Code(Op.PUSH0 + Op.RETURNCODE[0](0, 0), code_outputs=1),\n            id=\"returncode1\",\n        ),\n    ],\n)\ndef test_returning_section_returncode(eof_test: EOFTestFiller, code_section: Section) -> None:\n    \"\"\"\n    Test EOF validation failing because a returning section has no RETF or\n    JUMPF-to-returning - RETURNCODE version.\n    \"\"\"\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(Op.CALLF[1] + Op.INVALID, max_stack_height=code_section.code_outputs),\n                code_section,\n            ]\n            + [Section.Container(Container.Code(Op.INVALID))],\n            validity_error=EOFException.INVALID_NON_RETURNING_FLAG,\n            kind=ContainerKind.INITCODE,\n        )\n    )\n\n\nfirst = pytest.mark.parametrize(\"first\", [True, False])\ncode_prefix = pytest.mark.parametrize(\n    \"code_prefix\",\n    [\n        Bytecode(),\n        Op.PUSH0,\n        pytest.param(Op.PUSH0 * NON_RETURNING_SECTION, id=\"PUSH0x0x80\"),\n    ],\n)\n\n\n@first\n@code_prefix\ndef test_retf_in_nonreturning(eof_test: EOFTestFiller, first: bool, code_prefix: Bytecode) -> None:\n    \"\"\"\n    Test EOF validation failing due to non-returning section with the RETF\n    instruction.\n    \"\"\"\n    sections = [Section.Code(code_prefix + Op.RETF, code_outputs=NON_RETURNING_SECTION)]\n    if not first:  # Prefix sections with additional valid JUMPF to invalid section\n        sections = [Section.Code(Op.JUMPF[1])] + sections\n    eof_test(\n        container=Container(\n            sections=sections, validity_error=EOFException.INVALID_NON_RETURNING_FLAG\n        )\n    )\n\n\n@first\n@code_prefix\ndef test_jumpf_in_nonreturning(\n    eof_test: EOFTestFiller, first: bool, code_prefix: Bytecode\n) -> None:\n    \"\"\"\n    Test EOF validation failing due to non-returning section with the JUMPF\n    instruction.\n    \"\"\"\n    invalid_section = Section.Code(\n        code_prefix + Op.JUMPF[1 if first else 2],\n        code_outputs=NON_RETURNING_SECTION,\n    )\n    target_section = Section.Code(Op.RETF, code_outputs=0)\n    sections = [invalid_section, target_section]\n    if not first:  # Prefix sections with additional valid JUMPF to invalid section\n        sections = [Section.Code(Op.JUMPF[1])] + sections\n\n    eof_test(\n        container=Container(\n            sections=sections,\n            validity_error=EOFException.INVALID_NON_RETURNING_FLAG,\n        )\n    )\n\n\n@pytest.mark.parametrize(\n    \"container\",\n    [\n        Container(\n            name=\"0_to_1\",\n            sections=[\n                Section.Code(\n                    Op.CALLF[1],\n                ),\n                Section.Code(\n                    Op.STOP,\n                ),\n            ],\n        ),\n        Container(\n            name=\"self_0\",\n            sections=[\n                Section.Code(\n                    Op.CALLF[0] + Op.STOP,\n                )\n            ],\n        ),\n        Container(\n            name=\"self_1\",\n            sections=[\n                Section.Code(\n                    Op.JUMPF[1],\n                ),\n                Section.Code(\n                    Op.CALLF[1] + Op.STOP,\n                ),\n            ],\n        ),\n        Container(\n            name=\"1_to_0\",\n            sections=[\n                Section.Code(\n                    Op.CALLF[1] + Op.STOP,\n                ),\n                Section.Code(\n                    Op.CALLF[0] + Op.RETF,\n                    code_outputs=0,\n                ),\n            ],\n        ),\n        Container(\n            name=\"1_to_2\",\n            sections=[\n                Section.Code(\n                    Op.CALLF[1] + Op.STOP,\n                ),\n                Section.Code(\n                    Op.CALLF[2] + Op.RETF,\n                    code_outputs=0,\n                ),\n                Section.Code(\n                    Op.INVALID,\n                ),\n            ],\n        ),\n    ],\n    ids=lambda x: x.name,\n)\ndef test_callf_to_nonreturning(eof_test: EOFTestFiller, container: Container) -> None:\n    \"\"\"Test EOF validation failing due to CALLF to non-returning section.\"\"\"\n    eof_test(container=container, expect_exception=EOFException.CALLF_TO_NON_RETURNING)\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip663_dupn_swapn_exchange/__init__.py",
    "content": "\"\"\"\nTest cases for EIP-663 SWAPN, DUPN and EXCHANGE instructions\n    [EIP-663](https://eips.ethereum.org/EIPS/eip-663) defines new stack\n    manipulation instructions that allow accessing the stack at higher depths.\n    Opcodes introduced: `DUPN` (`0xE6`), `SWAPN` (`0xE7`), `EXCHANGEN`\n    (`0xE8`).\n\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-663.md\"\nREFERENCE_SPEC_VERSION = \"b658bb87fe039d29e9475d5cfaebca9b92e0fca2\"\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip663_dupn_swapn_exchange/test_dupn.py",
    "content": "\"\"\"\nDUPN instruction tests\n    Tests for DUPN instruction in\n    [EIP-663: SWAPN, DUPN and EXCHANGE instructions](https://eips.ethereum.org/EIPS/eip-663).\n\"\"\"\n\nimport pytest\n\nfrom ethereum_test_tools import (\n    Account,\n    Alloc,\n    Environment,\n    EOFException,\n    EOFStateTestFiller,\n    EOFTestFiller,\n    StateTestFiller,\n    Transaction,\n)\nfrom ethereum_test_types.eof.v1 import Container, Section\nfrom ethereum_test_types.eof.v1.constants import MAX_STACK_INCREASE_LIMIT\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .. import EOF_FORK_NAME\nfrom . import REFERENCE_SPEC_GIT_PATH, REFERENCE_SPEC_VERSION\n\nREFERENCE_SPEC_GIT_PATH = REFERENCE_SPEC_GIT_PATH\nREFERENCE_SPEC_VERSION = REFERENCE_SPEC_VERSION\n\npytestmark = pytest.mark.valid_from(EOF_FORK_NAME)\n\n\ndef test_dupn_all_valid_immediates(eof_state_test: EOFStateTestFiller) -> None:\n    \"\"\"Test case for all valid DUPN immediates.\"\"\"\n    n = 2**8\n    values = range(0xD00, 0xD00 + n)\n\n    eof_code = Container(\n        sections=[\n            Section.Code(\n                code=sum(Op.PUSH2[v] for v in values)\n                + sum(Op.SSTORE(x, Op.DUPN[x]) for x in range(0, n))\n                + Op.STOP,\n            )\n        ],\n    )\n\n    post = Account(storage=dict(zip(range(0, n), reversed(values), strict=False)))\n\n    eof_state_test(\n        tx_sender_funding_amount=1_000_000_000,\n        container=eof_code,\n        container_post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"stack_height,max_stack_height\",\n    [\n        # [0, 0] is tested in test_all_opcodes_stack_underflow()\n        [0, 1],\n        [1, 1],\n        [1, 2],\n        [2**8 - 1, 2**8 - 1],\n        [2**8 - 1, 2**8],\n    ],\n)\ndef test_dupn_stack_underflow(\n    stack_height: int,\n    max_stack_height: int,\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"Test case out of bounds DUPN immediate.\"\"\"\n    eof_code = Container(\n        sections=[\n            Section.Code(\n                code=sum(Op.PUSH2[v] for v in range(0, stack_height))\n                + Op.DUPN[stack_height]\n                + Op.STOP,\n                max_stack_height=max_stack_height,\n            )\n        ],\n    )\n    eof_test(\n        container=eof_code,\n        expect_exception=EOFException.STACK_UNDERFLOW,\n    )\n\n\n@pytest.mark.parametrize(\n    \"dupn_operand,max_stack_height,expect_exception\",\n    [\n        [0, MAX_STACK_INCREASE_LIMIT, EOFException.INVALID_MAX_STACK_INCREASE],\n        [0, MAX_STACK_INCREASE_LIMIT + 1, EOFException.MAX_STACK_INCREASE_ABOVE_LIMIT],\n        [2**8 - 1, MAX_STACK_INCREASE_LIMIT, EOFException.INVALID_MAX_STACK_INCREASE],\n        [2**8 - 1, MAX_STACK_INCREASE_LIMIT + 1, EOFException.MAX_STACK_INCREASE_ABOVE_LIMIT],\n    ],\n)\ndef test_dupn_stack_overflow(\n    dupn_operand: int,\n    max_stack_height: int,\n    expect_exception: EOFException,\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"Test case where DUPN produces an stack overflow.\"\"\"\n    eof_code = Container(\n        sections=[\n            Section.Code(\n                code=sum(Op.PUSH2[v] for v in range(0, MAX_STACK_INCREASE_LIMIT))\n                + Op.DUPN[dupn_operand]\n                + Op.STOP,\n                max_stack_height=max_stack_height,\n            )\n        ],\n    )\n    eof_test(\n        container=eof_code,\n        expect_exception=expect_exception,\n    )\n\n\n@pytest.mark.parametrize(\n    \"dupn_arg,stack_height\", [pytest.param(5, 9, id=\"5_of_9\"), pytest.param(12, 30, id=\"12_of_30\")]\n)\ndef test_dupn_simple(\n    stack_height: int,\n    dupn_arg: int,\n    pre: Alloc,\n    state_test: StateTestFiller,\n) -> None:\n    \"\"\"Test case for simple DUPN operations.\"\"\"\n    sender = pre.fund_eoa()\n    contract_address = pre.deploy_contract(\n        code=Container(\n            sections=[\n                Section.Code(\n                    code=sum(Op.PUSH2[v] for v in range(stack_height, 0, -1))\n                    + Op.DUPN[dupn_arg]\n                    + sum((Op.PUSH1(v) + Op.SSTORE) for v in range(0, stack_height + 1))\n                    + Op.STOP,\n                    max_stack_height=stack_height + 2,\n                )\n            ],\n        )\n    )\n\n    storage = {v: v for v in range(1, stack_height + 1)}\n    storage[0] = dupn_arg + 1\n    print(storage)\n    post = {contract_address: Account(storage=storage)}\n\n    tx = Transaction(to=contract_address, sender=sender, gas_limit=10_000_000)\n\n    state_test(env=Environment(), pre=pre, post=post, tx=tx)\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip663_dupn_swapn_exchange/test_exchange.py",
    "content": "\"\"\"\nTests [EIP-663: SWAPN, DUPN and EXCHANGE instructions](https://eips.ethereum.org/EIPS/eip-663).\n\"\"\"\n\nimport pytest\n\nfrom ethereum_test_tools import (\n    Account,\n    Alloc,\n    Environment,\n    EOFException,\n    EOFStateTestFiller,\n    EOFTestFiller,\n    StateTestFiller,\n    Transaction,\n)\nfrom ethereum_test_types.eof.v1 import Container, Section\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .. import EOF_FORK_NAME\nfrom . import REFERENCE_SPEC_GIT_PATH, REFERENCE_SPEC_VERSION\n\nREFERENCE_SPEC_GIT_PATH = REFERENCE_SPEC_GIT_PATH\nREFERENCE_SPEC_VERSION = REFERENCE_SPEC_VERSION\n\npytestmark = pytest.mark.valid_from(EOF_FORK_NAME)\n\n\ndef test_exchange_all_valid_immediates(eof_state_test: EOFStateTestFiller) -> None:\n    \"\"\"Test case for all valid EXCHANGE immediates.\"\"\"\n    n = 256\n    s = 34\n    values = range(0x3E8, 0x3E8 + s)\n\n    eof_code = Container(\n        sections=[\n            Section.Code(\n                code=sum(Op.PUSH2[v] for v in values)\n                + sum(Op.EXCHANGE[x] for x in range(0, n))\n                + sum((Op.PUSH1[x] + Op.SSTORE) for x in range(0, s))\n                + Op.STOP,\n            )\n        ],\n    )\n\n    # this does the same full-loop exchange\n    values_rotated = list(range(0x3E8, 0x3E8 + s))\n    for e in range(0, n):\n        a = (e >> 4) + 1\n        b = (e & 0x0F) + 1 + a\n        temp = values_rotated[a]\n        values_rotated[a] = values_rotated[b]\n        values_rotated[b] = temp\n\n    post = Account(storage=dict(zip(range(0, s), reversed(values_rotated), strict=False)))\n\n    eof_state_test(\n        tx_sender_funding_amount=1_000_000_000,\n        container=eof_code,\n        container_post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"stack_height,x,y\",\n    [\n        # 2 and 3 are the lowest valid values for x and y,\n        # which translates to the zero immediate value.\n        # (0, 2, 3) is tested in test_all_opcodes_stack_underflow()\n        pytest.param(1, 2, 3, id=\"stack_height=1_n=1_m=1\"),\n        pytest.param(2, 2, 3, id=\"stack_height=2_n=1_m=1\"),\n        pytest.param(17, 2, 18, id=\"stack_height=17_n=1_m=16\"),\n        pytest.param(17, 17, 18, id=\"stack_height=17_n=16_m=1\"),\n        pytest.param(32, 17, 33, id=\"stack_height=32_n=16_m=16\"),\n    ],\n)\ndef test_exchange_stack_underflow(\n    eof_test: EOFTestFiller,\n    stack_height: int,\n    x: int,\n    y: int,\n) -> None:\n    \"\"\"Test case the EXCHANGE causing stack underflow.\"\"\"\n    eof_code = Container(\n        sections=[\n            Section.Code(\n                code=sum(Op.PUSH2[v] for v in range(stack_height))\n                + Op.EXCHANGE[x, y]\n                + Op.POP * stack_height\n                + Op.STOP,\n                max_stack_height=stack_height,\n            )\n        ],\n    )\n\n    eof_test(\n        container=eof_code,\n        expect_exception=EOFException.STACK_UNDERFLOW,\n    )\n\n\n@pytest.mark.parametrize(\n    \"m_arg,n_arg,extra_stack\",\n    [pytest.param(0, 0, 3, id=\"m0_n0_extra3\"), pytest.param(2, 3, 7, id=\"m2_n3_extra7\")],\n)\ndef test_exchange_simple(\n    m_arg: int,\n    n_arg: int,\n    extra_stack: int,\n    pre: Alloc,\n    state_test: StateTestFiller,\n) -> None:\n    \"\"\"Test case for simple EXCHANGE operations.\"\"\"\n    sender = pre.fund_eoa()\n    stack_height = m_arg + n_arg + 2 + extra_stack\n    contract_address = pre.deploy_contract(\n        code=Container(\n            sections=[\n                Section.Code(\n                    code=sum(Op.PUSH2[v] for v in range(stack_height, 0, -1))\n                    + Op.EXCHANGE[m_arg << 4 | n_arg]\n                    + sum((Op.PUSH1(v) + Op.SSTORE) for v in range(1, stack_height + 1))\n                    + Op.STOP,\n                    max_stack_height=stack_height + 1,\n                )\n            ],\n        )\n    )\n\n    storage = {v: v for v in range(1, stack_height + 1)}\n    first = m_arg + 2  # one based index, plus m=0 means first non-top item\n    second = first + n_arg + 1  # n+1 past m\n    storage[first], storage[second] = storage[second], storage[first]\n    print(storage)\n    post = {contract_address: Account(storage=storage)}\n\n    tx = Transaction(to=contract_address, sender=sender, gas_limit=10_000_000)\n\n    state_test(env=Environment(), pre=pre, post=post, tx=tx)\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip663_dupn_swapn_exchange/test_swapn.py",
    "content": "\"\"\"Tests [EIP-663: SWAPN, DUPN and EXCHANGE instructions](https://eips.ethereum.org/EIPS/eip-663).\"\"\"\n\nimport pytest\n\nfrom ethereum_test_tools import (\n    Account,\n    Alloc,\n    Environment,\n    EOFException,\n    EOFStateTestFiller,\n    EOFTestFiller,\n    StateTestFiller,\n    Transaction,\n)\nfrom ethereum_test_types.eof.v1 import Container, Section\nfrom ethereum_test_types.eof.v1.constants import MAX_STACK_INCREASE_LIMIT\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .. import EOF_FORK_NAME\nfrom . import REFERENCE_SPEC_GIT_PATH, REFERENCE_SPEC_VERSION\n\nREFERENCE_SPEC_GIT_PATH = REFERENCE_SPEC_GIT_PATH\nREFERENCE_SPEC_VERSION = REFERENCE_SPEC_VERSION\n\npytestmark = pytest.mark.valid_from(EOF_FORK_NAME)\n\n\ndef test_swapn_all_valid_immediates(eof_state_test: EOFStateTestFiller) -> None:\n    \"\"\"Test case for all valid SWAPN immediates.\"\"\"\n    n = 256\n    values = range(0x500, 0x500 + 257)\n\n    eof_code = Container(\n        sections=[\n            Section.Code(\n                code=sum(Op.PUSH2[v] for v in values)\n                + sum(Op.SSTORE(x, Op.SWAPN[0xFF - x]) for x in range(0, n))\n                + Op.STOP,\n            )\n        ],\n    )\n\n    values_rotated = list(values[1:]) + [values[0]]\n    post = Account(storage=dict(zip(range(0, n), reversed(values_rotated), strict=False)))\n\n    eof_state_test(\n        tx_sender_funding_amount=1_000_000_000,\n        container=eof_code,\n        container_post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"swapn_operand\",\n    [\n        0,\n        2**8 - 1,\n    ],\n)\ndef test_swapn_on_max_stack(\n    swapn_operand: int,\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"Test case out of bounds SWAPN (max stack).\"\"\"\n    eof_code = Container(\n        sections=[\n            Section.Code(\n                code=sum(Op.PUSH2[v] for v in range(0, MAX_STACK_INCREASE_LIMIT))\n                + Op.SWAPN[swapn_operand]\n                + Op.STOP,\n            )\n        ],\n    )\n    eof_test(\n        container=eof_code,\n    )\n\n\n@pytest.mark.parametrize(\n    \"stack_height\",\n    [\n        0,\n        1,\n        21,\n        2**8 - 1,\n    ],\n)\ndef test_swapn_stack_underflow(\n    stack_height: int,\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"Test case out of bounds SWAPN (underflow).\"\"\"\n    eof_code = Container(\n        sections=[\n            Section.Code(\n                code=sum(Op.PUSH2[v] for v in range(0, stack_height))\n                + Op.SWAPN[stack_height]\n                + Op.STOP,\n                # This is also tested in test_all_opcodes_stack_underflow()\n                # so make it differ by the declared stack height.\n                max_stack_height=stack_height + 1,\n            )\n        ],\n    )\n    eof_test(\n        container=eof_code,\n        expect_exception=EOFException.STACK_UNDERFLOW,\n    )\n\n\n@pytest.mark.parametrize(\n    \"swapn_arg,stack_height\",\n    [pytest.param(5, 9, id=\"5_of_9\"), pytest.param(12, 30, id=\"12_of_30\")],\n)\ndef test_swapn_simple(\n    stack_height: int,\n    swapn_arg: int,\n    pre: Alloc,\n    state_test: StateTestFiller,\n) -> None:\n    \"\"\"Test case for simple SWAPN operations.\"\"\"\n    sender = pre.fund_eoa()\n    contract_address = pre.deploy_contract(\n        code=Container(\n            sections=[\n                Section.Code(\n                    code=sum(Op.PUSH2[v] for v in range(stack_height, 0, -1))\n                    + Op.SWAPN[swapn_arg]\n                    + sum((Op.PUSH1(v) + Op.SSTORE) for v in range(1, stack_height + 1))\n                    + Op.STOP,\n                    max_stack_height=stack_height + 1,\n                )\n            ],\n        )\n    )\n\n    storage = {v: v for v in range(1, stack_height + 1)}\n    storage[1], storage[swapn_arg + 2] = storage[swapn_arg + 2], storage[1]\n    print(storage)\n    post = {contract_address: Account(storage=storage)}\n\n    tx = Transaction(to=contract_address, sender=sender, gas_limit=10_000_000)\n\n    state_test(env=Environment(), pre=pre, post=post, tx=tx)\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip7069_extcall/__init__.py",
    "content": "\"\"\"\nTest cases for EIP-7069 Revamped CALL instructions\n    [EIP-7069: Revamped CALL instructions](https://eips.ethereum.org/EIPS/eip-7069)\n    proposes modifications to `CALL` instructions to align with the\n    structured EOF format. Opcodes introduced: `EXTCALL` (`0xF8`),\n    `EXTDELEGATECALL` (`0xF9`), `EXTSTATICCALL` (`0xFB`), `RETURNDATALOAD`\n    (`0xF7`).\n\"\"\"\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-7069.md\"\nREFERENCE_SPEC_VERSION = \"1795943aeacc86131d5ab6bb3d65824b3b1d4cad\"\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip7069_extcall/helpers.py",
    "content": "\"\"\"EOF extcall tests helpers.\"\"\"\n\nimport itertools\n\n\"\"\"Storage addresses for common testing fields\"\"\"\n_slot = itertools.count()\nnext(_slot)  # don't use slot 0\nslot_code_worked = next(_slot)\nslot_eof_target_call_status = next(_slot)\nslot_legacy_target_call_status = next(_slot)\nslot_eof_target_returndata = next(_slot)\nslot_eof_target_returndatasize = next(_slot)\nslot_legacy_target_returndatasize = next(_slot)\nslot_delegate_code_worked = next(_slot)\nslot_call_status = next(_slot)\nslot_calldata_1 = next(_slot)\nslot_calldata_2 = next(_slot)\n\nslot_last_slot = next(_slot)\n\n\"\"\"Storage value indicating an abort\"\"\"\nvalue_exceptional_abort_canary = 0x1984\n\n\"\"\"Storage values for common testing fields\"\"\"\nvalue_code_worked = 0x2015\n\n\"\"\"Memory and storage value for calldata\"\"\"\nvalue_calldata_1 = 0xC1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1\nvalue_calldata_2 = 0xC2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2\nsize_calldata = 32\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip7069_extcall/spec.py",
    "content": "\"\"\"EOF V1 Constants used throughout all tests.\"\"\"\n\nLEGACY_CALL_FAILURE = 0\nLEGACY_CALL_SUCCESS = 1\nEXTCALL_SUCCESS = 0\nEXTCALL_REVERT = 1\nEXTCALL_FAILURE = 2\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_address_space_extension.py",
    "content": "\"\"\"Tests the \"Address Space Extension\" aspect of EXT*CALL.\"\"\"\n\nimport itertools\n\nimport pytest\n\nfrom ethereum_test_tools import Account, Address, Alloc, Environment, StateTestFiller, Transaction\nfrom ethereum_test_types.eof.v1 import Container, Section\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .. import EOF_FORK_NAME\nfrom .helpers import value_exceptional_abort_canary\nfrom .spec import EXTCALL_REVERT, EXTCALL_SUCCESS, LEGACY_CALL_SUCCESS\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-7069.md\"\nREFERENCE_SPEC_VERSION = \"1795943aeacc86131d5ab6bb3d65824b3b1d4cad\"\n\npytestmark = pytest.mark.valid_from(EOF_FORK_NAME)\n\n_slot = itertools.count(1)\nslot_top_level_call_status = next(_slot)\nslot_target_call_status = next(_slot)\nslot_target_returndata = next(_slot)\n\n\n@pytest.mark.parametrize(\n    \"target_address\",\n    (\n        pytest.param(b\"\", id=\"zero\"),\n        pytest.param(b\"\\xc0\\xde\", id=\"short\"),\n        pytest.param(b\"\\x78\" * 20, id=\"mid_20\"),\n        pytest.param(b\"\\xff\" * 20, id=\"max_20\"),\n        pytest.param(b\"\\x01\" + (b\"\\x00\" * 20), id=\"min_ase\"),\n        pytest.param(b\"\\x5a\" * 28, id=\"mid_ase\"),\n        pytest.param(b\"\\x5a\" * 32, id=\"full_ase\"),\n        pytest.param(b\"\\xff\" * 32, id=\"max_ase\"),\n    ),\n)\n@pytest.mark.parametrize(\n    \"target_account_type\",\n    (\n        \"empty\",\n        \"EOA\",\n        \"LegacyContract\",  # Hard-codes an address in pre-alloc\n        \"EOFContract\",  # Hard-codes an address in pre-alloc\n    ),\n    ids=lambda x: x,\n)\n@pytest.mark.parametrize(\n    \"target_opcode\",\n    (\n        Op.CALL,\n        Op.CALLCODE,\n        Op.STATICCALL,\n        Op.DELEGATECALL,\n        Op.EXTCALL,\n        Op.EXTDELEGATECALL,\n        Op.EXTSTATICCALL,\n    ),\n)\ndef test_address_space_extension(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    target_address: bytes,\n    target_opcode: Op,\n    target_account_type: str,\n) -> None:\n    \"\"\"\n    Test contacts with possibly extended address and fail if address is too\n    large.\n    \"\"\"\n    env = Environment()\n\n    ase_address = len(target_address) > 20\n    stripped_address = Address(target_address[-20:], left_padding=True)\n    if ase_address and target_address[0] == b\"00\":\n        raise ValueError(\"Test instrumentation requires target addresses trim leading zeros\")\n\n    ase_ready_opcode = (\n        False if target_opcode in [Op.CALL, Op.CALLCODE, Op.DELEGATECALL, Op.STATICCALL] else True\n    )\n\n    sender = pre.fund_eoa()\n\n    address_caller = pre.deploy_contract(\n        Container(\n            sections=[\n                Section.Code(\n                    code=Op.SSTORE(\n                        slot_target_call_status,\n                        target_opcode(address=Op.CALLDATALOAD(0)),\n                    )\n                    + Op.RETURNDATACOPY(0, 0, Op.RETURNDATASIZE)\n                    + Op.SSTORE(slot_target_returndata, Op.MLOAD(0))\n                    + Op.STOP,\n                    code_inputs=0,\n                )\n            ],\n        )\n        if ase_ready_opcode\n        else Op.SSTORE(\n            slot_target_call_status,\n            target_opcode(address=Op.CALLDATALOAD(0)),\n        )\n        + Op.RETURNDATACOPY(0, 0, Op.RETURNDATASIZE)\n        + Op.SSTORE(slot_target_returndata, Op.MLOAD(0))\n        + Op.STOP,\n        storage={\n            slot_target_call_status: value_exceptional_abort_canary,\n            slot_target_returndata: value_exceptional_abort_canary,\n        },\n    )\n\n    address_entry_point = pre.deploy_contract(\n        Op.MSTORE(0, Op.PUSH32(target_address))\n        + Op.SSTORE(\n            slot_top_level_call_status,\n            Op.CALL(50000, address_caller, 0, 0, 32, 0, 0),\n        )\n        + Op.STOP(),\n        storage={\n            slot_top_level_call_status: value_exceptional_abort_canary,\n        },\n    )\n\n    match target_account_type:\n        case \"empty\":\n            # add no account\n            pass\n        case \"EOA\":\n            pre.fund_address(stripped_address, 10**18)\n            # TODO: we could use pre.fund_eoa here with nonce!=0.\n        case \"LegacyContract\":\n            pre[stripped_address] = Account(\n                code=Op.MSTORE(0, Op.ADDRESS) + Op.RETURN(0, 32),\n                balance=0,\n                nonce=0,\n            )\n        case \"EOFContract\":\n            pre[stripped_address] = Account(\n                code=Container(\n                    sections=[\n                        Section.Code(\n                            code=Op.MSTORE(0, Op.ADDRESS) + Op.RETURN(0, 32),\n                        )\n                    ],\n                ),\n                balance=0,\n                nonce=0,\n            )\n\n    caller_storage: dict[int, int | bytes | Address] = {}\n    match target_account_type:\n        case \"empty\" | \"EOA\":\n            if ase_address and ase_ready_opcode:\n                caller_storage[slot_target_call_status] = value_exceptional_abort_canary\n                caller_storage[slot_target_returndata] = value_exceptional_abort_canary\n            elif target_opcode == Op.EXTDELEGATECALL:\n                caller_storage[slot_target_call_status] = EXTCALL_REVERT\n                caller_storage[slot_target_returndata] = 0\n            else:\n                caller_storage[slot_target_call_status] = (\n                    EXTCALL_SUCCESS if ase_ready_opcode else LEGACY_CALL_SUCCESS\n                )\n        case \"LegacyContract\" | \"EOFContract\":\n            match target_opcode:\n                case Op.CALL | Op.STATICCALL:\n                    caller_storage[slot_target_call_status] = LEGACY_CALL_SUCCESS\n                    # CALL and STATICCALL call will call the stripped address\n                    caller_storage[slot_target_returndata] = stripped_address\n                case Op.CALLCODE | Op.DELEGATECALL:\n                    caller_storage[slot_target_call_status] = LEGACY_CALL_SUCCESS\n                    # CALLCODE and DELEGATECALL call will call the stripped\n                    # address but will change the sender to self\n                    caller_storage[slot_target_returndata] = address_caller\n                case Op.EXTCALL | Op.EXTSTATICCALL:\n                    # EXTCALL and EXTSTATICCALL will fault if calling an ASE\n                    # address\n                    if ase_address:\n                        caller_storage[slot_target_call_status] = value_exceptional_abort_canary\n                        caller_storage[slot_target_returndata] = value_exceptional_abort_canary\n                    else:\n                        caller_storage[slot_target_call_status] = EXTCALL_SUCCESS\n                        caller_storage[slot_target_returndata] = stripped_address\n                case Op.EXTDELEGATECALL:\n                    if ase_address:\n                        caller_storage[slot_target_call_status] = value_exceptional_abort_canary\n                        caller_storage[slot_target_returndata] = value_exceptional_abort_canary\n                    elif target_account_type == \"LegacyContract\":\n                        caller_storage[slot_target_call_status] = EXTCALL_REVERT\n                        caller_storage[slot_target_returndata] = 0\n                    else:\n                        caller_storage[slot_target_call_status] = EXTCALL_SUCCESS\n                        # EXTDELEGATECALL call will call the stripped address\n                        # but will change the sender to self\n                        caller_storage[slot_target_returndata] = address_caller\n\n    post = {\n        address_entry_point: Account(\n            storage={\n                slot_top_level_call_status: EXTCALL_SUCCESS\n                if ase_ready_opcode and ase_address\n                else LEGACY_CALL_SUCCESS\n            }\n        ),\n        address_caller: Account(storage=caller_storage),\n    }\n\n    tx = Transaction(\n        sender=sender,\n        to=address_entry_point,\n        gas_limit=50_000_000,\n        data=\"\",\n    )\n\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_calldata.py",
    "content": "\"\"\"\nCall data tests for EXT*CALL instructions\n    Tests for call data handling in\n    [EIP-7069: Revamped CALL instructions](https://eips.ethereum.org/EIPS/eip-7069).\n\"\"\"\n\nimport pytest\n\nfrom ethereum_test_tools import Account, Alloc, Environment, StateTestFiller, Transaction\nfrom ethereum_test_types.eof.v1 import Container, Section\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .. import EOF_FORK_NAME\nfrom . import REFERENCE_SPEC_GIT_PATH, REFERENCE_SPEC_VERSION\nfrom .helpers import (\n    size_calldata,\n    slot_call_status,\n    slot_calldata_1,\n    slot_calldata_2,\n    slot_code_worked,\n    slot_delegate_code_worked,\n    slot_eof_target_returndata,\n    value_calldata_1,\n    value_calldata_2,\n    value_code_worked,\n    value_exceptional_abort_canary,\n)\nfrom .spec import EXTCALL_FAILURE, EXTCALL_SUCCESS, LEGACY_CALL_FAILURE, LEGACY_CALL_SUCCESS\n\nREFERENCE_SPEC_GIT_PATH = REFERENCE_SPEC_GIT_PATH\nREFERENCE_SPEC_VERSION = REFERENCE_SPEC_VERSION\n\npytestmark = pytest.mark.valid_from(EOF_FORK_NAME)\n\n\ndef right_pad_32(v: bytes) -> bytes:\n    \"\"\"Take bytes and returns a 32 byte version right padded with zeros.\"\"\"\n    return v.ljust(32, b\"\\0\")\n\n\n@pytest.mark.parametrize(\"value\", [0, 1])\n@pytest.mark.parametrize(\n    \"memory\",\n    [\n        b\"\",\n        b\"1234567890abcdef\",\n        b\"1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ=-\",\n        b\"1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ=-\" * 4,\n    ],\n    ids=lambda x: \"size_%d\" % len(x),\n)\n@pytest.mark.parametrize(\"offset\", [0, 8, 24, 80])\n@pytest.mark.parametrize(\"length\", [0, 8, 32, 48])\ndef test_extcalls_inputdata(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    value: int,\n    memory: bytes,\n    offset: int,\n    length: int,\n) -> None:\n    \"\"\"\n    Tests call data into EXTCALL including multiple offset conditions.\n\n    Caller pushes data into memory, then calls the target.  Target writes 64\n    bytes of call data to storage and a success byte.\n    \"\"\"\n    env = Environment()\n\n    sender = pre.fund_eoa()\n\n    address_returner = pre.deploy_contract(\n        Container(\n            sections=[\n                Section.Code(\n                    code=Op.SSTORE(slot_calldata_1, Op.CALLDATALOAD(0))\n                    + Op.SSTORE(slot_calldata_2, Op.CALLDATALOAD(32))\n                    + Op.SSTORE(slot_code_worked, value_code_worked)\n                    + Op.STOP\n                ),\n            ]\n        ),\n    )\n    address_caller = pre.deploy_contract(\n        Container(\n            sections=[\n                Section.Code(\n                    code=Op.DATACOPY(0, 0, len(memory))\n                    + Op.SSTORE(\n                        slot_call_status,\n                        Op.EXTCALL(address_returner, offset, length, value),\n                    )\n                    + Op.SSTORE(slot_code_worked, value_code_worked)\n                    + Op.STOP\n                ),\n                Section.Data(data=memory),\n            ]\n        ),\n        storage={slot_call_status: value_exceptional_abort_canary},\n        balance=10**9,\n    )\n\n    calldata = memory[offset : offset + length]\n    post = {\n        address_returner: Account(\n            storage={\n                slot_code_worked: value_code_worked,\n                slot_calldata_1: right_pad_32(calldata[0:32]),\n                slot_calldata_2: right_pad_32(calldata[32:64]),\n            }\n        ),\n        address_caller: Account(\n            storage={\n                slot_code_worked: value_code_worked,\n                slot_call_status: EXTCALL_SUCCESS,\n            }\n        ),\n    }\n\n    tx = Transaction(to=address_caller, gas_limit=2_000_000, sender=sender)\n\n    state_test(\n        env=env,\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"memory\",\n    [\n        b\"\",\n        b\"1234567890abcdef\",\n        b\"1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ=-\",\n        b\"1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ=-\" * 4,\n    ],\n    ids=lambda x: \"size_%d\" % len(x),\n)\n@pytest.mark.parametrize(\"offset\", [0, 8, 24, 80])\n@pytest.mark.parametrize(\"length\", [0, 8, 32, 48])\ndef test_extdelegatecall_inputdata(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    memory: bytes,\n    offset: int,\n    length: int,\n) -> None:\n    \"\"\"\n    Tests call data into EXTDELEGATECALL including multiple offset conditions.\n\n    Caller pushes data into memory, then calls the target.  Target writes 64\n    bytes of call data to storage and a success byte.\n    \"\"\"\n    env = Environment()\n\n    sender = pre.fund_eoa()\n\n    address_returner = pre.deploy_contract(\n        Container(\n            sections=[\n                Section.Code(\n                    code=Op.SSTORE(slot_calldata_1, Op.CALLDATALOAD(0))\n                    + Op.SSTORE(slot_calldata_2, Op.CALLDATALOAD(32))\n                    + Op.SSTORE(slot_delegate_code_worked, value_code_worked)\n                    + Op.STOP\n                ),\n            ]\n        ),\n    )\n    address_caller = pre.deploy_contract(\n        Container(\n            sections=[\n                Section.Code(\n                    code=Op.DATACOPY(0, 0, len(memory))\n                    + Op.SSTORE(\n                        slot_call_status,\n                        Op.EXTDELEGATECALL(address_returner, offset, length),\n                    )\n                    + Op.SSTORE(slot_code_worked, value_code_worked)\n                    + Op.STOP\n                ),\n                Section.Data(data=memory),\n            ]\n        ),\n        storage={slot_call_status: value_exceptional_abort_canary},\n        balance=10**9,\n    )\n\n    calldata = memory[offset : offset + length]\n    post = {\n        address_returner: Account(storage={}),\n        address_caller: Account(\n            storage={\n                slot_code_worked: value_code_worked,\n                slot_delegate_code_worked: value_code_worked,\n                slot_call_status: EXTCALL_SUCCESS,\n                slot_calldata_1: right_pad_32(calldata[0:32]),\n                slot_calldata_2: right_pad_32(calldata[32:64]),\n            }\n        ),\n    }\n\n    tx = Transaction(to=address_caller, gas_limit=2_000_000, sender=sender)\n\n    state_test(\n        env=env,\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"memory\",\n    [\n        b\"\",\n        b\"1234567890abcdef\",\n        b\"1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ=-\",\n        b\"1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ=-\" * 4,\n    ],\n    ids=lambda x: \"size_%d\" % len(x),\n)\n@pytest.mark.parametrize(\"offset\", [0, 8, 24, 80])\n@pytest.mark.parametrize(\"length\", [0, 8, 32, 48])\ndef test_extstaticcall_inputdata(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    memory: bytes,\n    offset: int,\n    length: int,\n) -> None:\n    \"\"\"\n    Tests call data into EXTSTATICCALL including multiple offset conditions.\n\n    Caller pushes data into memory, then calls the target.  Target writes 64\n    bytes of call data to storage and a success byte.\n    \"\"\"\n    env = Environment()\n\n    sender = pre.fund_eoa()\n\n    address_returner = pre.deploy_contract(\n        Container(\n            sections=[\n                Section.Code(\n                    code=Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE) + Op.RETURN(0, Op.CALLDATASIZE)\n                ),\n            ]\n        ),\n    )\n    address_caller = pre.deploy_contract(\n        Container(\n            sections=[\n                Section.Code(\n                    code=Op.DATACOPY(0, 0, len(memory))\n                    + Op.SSTORE(\n                        slot_call_status,\n                        Op.EXTSTATICCALL(address_returner, offset, length),\n                    )\n                    + Op.SSTORE(slot_calldata_1, Op.RETURNDATALOAD(0))\n                    + Op.SSTORE(slot_calldata_2, Op.RETURNDATALOAD(32))\n                    + Op.SSTORE(slot_code_worked, value_code_worked)\n                    + Op.STOP\n                ),\n                Section.Data(data=memory),\n            ]\n        ),\n        storage={slot_call_status: value_exceptional_abort_canary},\n        balance=10**9,\n    )\n\n    calldata = memory[offset : offset + length]\n    post = {\n        address_returner: Account(storage={}),\n        address_caller: Account(\n            storage={\n                slot_code_worked: value_code_worked,\n                slot_call_status: EXTCALL_SUCCESS,\n                slot_calldata_1: right_pad_32(calldata[0:32]),\n                slot_calldata_2: right_pad_32(calldata[32:64]),\n            }\n        ),\n    }\n\n    tx = Transaction(to=address_caller, gas_limit=2_000_000, sender=sender)\n\n    state_test(\n        env=env,\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"opcode\",\n    [\n        Op.CALL,\n        Op.CALLCODE,\n        Op.DELEGATECALL,\n        Op.STATICCALL,\n        Op.EXTCALL,\n        Op.EXTDELEGATECALL,\n        Op.EXTSTATICCALL,\n    ],\n)\ndef test_calldata_remains_after_subcall(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    opcode: Op,\n) -> None:\n    \"\"\"\n    Tests call data remains after a call to another contract.\n\n    Caller pushes data into memory, then calls the target.  Target calls 3rd\n    contract. 3rd contract returns. Target writes calldata to storage.\n    \"\"\"\n    env = Environment()\n\n    sender = pre.fund_eoa()\n\n    address_sub_called = pre.deploy_contract(\n        Container(\n            sections=[\n                Section.Code(\n                    code=Op.SSTORE(slot_delegate_code_worked, value_code_worked) + Op.STOP\n                )\n            ]\n        ),\n        storage={slot_delegate_code_worked: value_exceptional_abort_canary},\n    )\n    called_code = (\n        Op.MSTORE(0, value_calldata_2)\n        + Op.SSTORE(slot_call_status, value_exceptional_abort_canary)\n        + Op.SSTORE(slot_calldata_1, value_exceptional_abort_canary)\n        + Op.SSTORE(slot_code_worked, value_exceptional_abort_canary)\n        + Op.SSTORE(\n            slot_call_status,\n            opcode(\n                address=address_sub_called,\n                args_offset=0,\n                args_size=size_calldata,\n            ),\n        )\n        + Op.SSTORE(slot_calldata_1, Op.CALLDATALOAD(0))\n        + Op.SSTORE(slot_code_worked, value_code_worked)\n        + Op.STOP\n    )\n    match opcode:\n        case Op.CALL | Op.CALLCODE | Op.DELEGATECALL | Op.STATICCALL:\n            address_called = pre.deploy_contract(code=called_code)\n        case Op.EXTCALL | Op.EXTDELEGATECALL | Op.EXTSTATICCALL:\n            address_called = pre.deploy_contract(\n                Container(\n                    sections=[\n                        Section.Code(code=called_code),\n                    ]\n                ),\n            )\n    address_caller = pre.deploy_contract(\n        Container(\n            sections=[\n                Section.Code(\n                    code=Op.MSTORE(0, value_calldata_1)\n                    + Op.SSTORE(slot_calldata_1, value_exceptional_abort_canary)\n                    + Op.SSTORE(slot_code_worked, value_exceptional_abort_canary)\n                    + Op.SSTORE(\n                        slot_call_status,\n                        Op.EXTCALL(address_called, 0, size_calldata, 0),\n                    )\n                    + Op.SSTORE(slot_calldata_1, Op.RETURNDATALOAD(0))\n                    + Op.SSTORE(slot_code_worked, value_code_worked)\n                    + Op.STOP\n                ),\n            ]\n        ),\n        storage={slot_call_status: value_exceptional_abort_canary},\n        balance=10**9,\n    )\n\n    match opcode:\n        case Op.STATICCALL:\n            called_storage = {\n                slot_code_worked: value_code_worked,\n                slot_call_status: LEGACY_CALL_FAILURE,\n                slot_calldata_1: value_calldata_1,\n            }\n            sub_called_storage = {\n                slot_delegate_code_worked: value_exceptional_abort_canary,\n            }\n        case Op.DELEGATECALL | Op.CALLCODE:\n            called_storage = {\n                slot_code_worked: value_code_worked,\n                slot_delegate_code_worked: value_code_worked,\n                slot_call_status: LEGACY_CALL_SUCCESS,\n                slot_calldata_1: value_calldata_1,\n            }\n            sub_called_storage = {\n                slot_delegate_code_worked: value_exceptional_abort_canary,\n            }\n        case Op.CALL:\n            called_storage = {\n                slot_code_worked: value_code_worked,\n                slot_call_status: LEGACY_CALL_SUCCESS,\n                slot_calldata_1: value_calldata_1,\n            }\n            sub_called_storage = {\n                slot_delegate_code_worked: value_code_worked,\n            }\n        case Op.EXTSTATICCALL:\n            called_storage = {\n                slot_code_worked: value_code_worked,\n                slot_call_status: EXTCALL_FAILURE,\n                slot_calldata_1: value_calldata_1,\n            }\n            sub_called_storage = {\n                slot_delegate_code_worked: value_exceptional_abort_canary,\n            }\n        case Op.EXTDELEGATECALL:\n            called_storage = {\n                slot_code_worked: value_code_worked,\n                slot_delegate_code_worked: value_code_worked,\n                slot_call_status: EXTCALL_SUCCESS,\n                slot_calldata_1: value_calldata_1,\n            }\n            sub_called_storage = {\n                slot_delegate_code_worked: value_exceptional_abort_canary,\n            }\n        case Op.EXTCALL:\n            called_storage = {\n                slot_code_worked: value_code_worked,\n                slot_call_status: EXTCALL_SUCCESS,\n                slot_calldata_1: value_calldata_1,\n            }\n            sub_called_storage = {\n                slot_delegate_code_worked: value_code_worked,\n            }\n        case _:\n            raise ValueError(f\"Unexpected opcode: {opcode}\")\n\n    post = {\n        address_caller: Account(storage={slot_code_worked: value_code_worked}),\n        address_called: Account(storage=called_storage),\n        address_sub_called: Account(storage=sub_called_storage),\n    }\n\n    tx = Transaction(to=address_caller, gas_limit=4_000_000, sender=sender)\n\n    state_test(\n        env=env,\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\"operation\", [Op.EXTCALL, Op.EXTSTATICCALL, Op.EXTDELEGATECALL])\n@pytest.mark.parametrize(\n    \"offset_field\",\n    [\n        pytest.param(True, id=\"offset\"),\n        pytest.param(False, id=\"size\"),\n    ],\n)\n@pytest.mark.parametrize(\n    (\"test_arg\", \"success\"),\n    [\n        pytest.param(0, True, id=\"zero\"),\n        pytest.param(0xFF, True, id=\"8-bit\"),\n        pytest.param(0x100, True, id=\"9-bit\"),\n        pytest.param(0xFFFF, True, id=\"16-bit\"),\n        pytest.param(0x10000, True, id=\"17-bit\"),\n        pytest.param(0x1FFFF20, False, id=\"32-bit-mem-cost\"),\n        pytest.param(0x2D412E0, False, id=\"33-bit-mem-cost\"),\n        pytest.param(0xFFFFFFFF, False, id=\"32-bit\"),\n        pytest.param(0x100000000, False, id=\"33-bit\"),\n        pytest.param(0x1FFFFFFFF20, False, id=\"64-bit-mem-cost\"),\n        pytest.param(0x2D413CCCF00, False, id=\"65-bit-mem-cost\"),\n        pytest.param(0xFFFFFFFFFFFFFFFF, False, id=\"64-bit\"),\n        pytest.param(0x10000000000000000, False, id=\"65-bit\"),\n        pytest.param(0xFFFFFFFFFFFFFFFF, False, id=\"128-bit\"),\n        pytest.param(0x10000000000000000, False, id=\"129-bit\"),\n        pytest.param(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, False, id=\"256-bit\"),\n    ],\n)\ndef test_extcalls_input_offset(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    operation: Op,\n    offset_field: str,\n    test_arg: int,\n    success: bool,\n) -> None:\n    \"\"\"\n    Tests call data into EXT*CALL including multiple offset conditions.\n\n    Returner returns a success value, which caller stores. If memory expansion\n    cost is less than 2 billion gas call succeeds. Else whole transaction\n    aborts, leaving canaries in memory.\n\n    The name id of `*-mem-cost` refers to the bit-length of the result of the\n    calculated memory expansion cost. Their length choice is designed to cause\n    problems on shorter bit-length representations with native integers.\n\n    The `offset_field` param indicates what part of the input data arguments\n    are being tested, either the offset of the data in memory or the size of\n    the data in memory.\n\n    The `test_arg` param is the value passed into the field being tested\n    (offset or size), intending to trigger integer size bugs for that\n    particular field.\n    \"\"\"\n    env = Environment(gas_limit=1_000_000_000)\n\n    sender = pre.fund_eoa()\n\n    address_returner = pre.deploy_contract(\n        Container(\n            sections=[\n                Section.Code(code=Op.MSTORE(0, value_code_worked) + Op.RETURN(0, 32)),\n            ]\n        ),\n    )\n    address_caller = pre.deploy_contract(\n        Container(\n            sections=[\n                Section.Code(\n                    code=(\n                        operation(address=address_returner, args_offset=test_arg, args_size=32)\n                        if offset_field\n                        else operation(\n                            address=address_returner, args_offset=32, args_size=test_arg\n                        )\n                    )\n                    + Op.SSTORE(slot_eof_target_returndata, Op.RETURNDATALOAD(0))\n                    + Op.SSTORE(slot_code_worked, value_code_worked)\n                    + Op.STOP\n                )\n            ]\n        ),\n        storage={\n            slot_code_worked: value_exceptional_abort_canary,\n            slot_eof_target_returndata: value_exceptional_abort_canary,\n        },\n    )\n\n    post = {\n        address_caller: Account(\n            storage={\n                slot_eof_target_returndata: value_code_worked\n                if success\n                else value_exceptional_abort_canary,\n                slot_code_worked: value_code_worked if success else value_exceptional_abort_canary,\n            }\n        ),\n    }\n\n    tx = Transaction(to=address_caller, gas_limit=1_000_000_000, sender=sender)\n\n    state_test(\n        env=env,\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_calls.py",
    "content": "\"\"\"test calls across EOF and Legacy.\"\"\"\n\nimport itertools\nfrom enum import Enum, auto, unique\n\nimport pytest\n\nfrom ethereum_test_base_types import Address, HashInt\nfrom ethereum_test_tools import (\n    EOA,\n    Account,\n    Alloc,\n    Environment,\n    StateTestFiller,\n    Storage,\n    Transaction,\n)\nfrom ethereum_test_types.eof.v1 import Container, Section\nfrom ethereum_test_types.helpers import compute_eofcreate_address\nfrom ethereum_test_vm import Bytecode, EVMCodeType\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .. import EOF_FORK_NAME\nfrom .spec import (\n    EXTCALL_FAILURE,\n    EXTCALL_REVERT,\n    EXTCALL_SUCCESS,\n    LEGACY_CALL_FAILURE,\n    LEGACY_CALL_SUCCESS,\n)\n\npytestmark = pytest.mark.valid_from(EOF_FORK_NAME)\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-3540.md\"\nREFERENCE_SPEC_VERSION = \"2f013de4065babde7c02f84a2ce9864a3c5bfbd3\"\n\n\"\"\"Storage addresses for common testing fields\"\"\"\n_slot = itertools.count(1)\nslot_code_worked = next(_slot)\nslot_call_result = next(_slot)\nslot_returndata = next(_slot)\nslot_returndatasize = next(_slot)\nslot_caller = next(_slot)\nslot_returndatasize_before_clear = next(_slot)\nslot_max_depth = next(_slot)\nslot_last_slot = next(_slot)\n\n\"\"\"Storage values for common testing fields\"\"\"\nvalue_code_worked = 0x2015\nvalue_returndata_magic = b\"\\x42\"\n\n\ncontract_eof_sstore = Container(\n    sections=[\n        Section.Code(\n            code=Op.SSTORE(slot_caller, Op.CALLER()) + Op.STOP,\n        )\n    ]\n)\n\n\n@unique\nclass TargetAccountType(Enum):\n    \"\"\"Kinds of target accounts for calls.\"\"\"\n\n    EMPTY = auto()\n    EOA = auto()\n    LEGACY_CONTRACT = auto()\n    EOF_CONTRACT = auto()\n    LEGACY_CONTRACT_INVALID = auto()\n    EOF_CONTRACT_INVALID = auto()\n    LEGACY_CONTRACT_REVERT = auto()\n    EOF_CONTRACT_REVERT = auto()\n    IDENTITY_PRECOMPILE = auto()\n\n    def __str__(self) -> str:\n        \"\"\"Return string representation of the enum.\"\"\"\n        return f\"{self.name}\"\n\n\n@pytest.fixture\ndef target_address(pre: Alloc, target_account_type: TargetAccountType) -> Address:\n    \"\"\"Target address of the call depending on required type of account.\"\"\"\n    match target_account_type:\n        case TargetAccountType.EMPTY:\n            return pre.fund_eoa(amount=0)\n        case TargetAccountType.EOA:\n            return pre.fund_eoa()\n        case TargetAccountType.LEGACY_CONTRACT:\n            return pre.deploy_contract(\n                code=Op.STOP,\n            )\n        case TargetAccountType.EOF_CONTRACT:\n            return pre.deploy_contract(\n                code=Container.Code(Op.STOP),\n            )\n        case TargetAccountType.LEGACY_CONTRACT_INVALID:\n            return pre.deploy_contract(\n                code=Op.INVALID,\n            )\n        case TargetAccountType.EOF_CONTRACT_INVALID:\n            return pre.deploy_contract(\n                code=Container.Code(Op.INVALID),\n            )\n        case TargetAccountType.LEGACY_CONTRACT_REVERT:\n            return pre.deploy_contract(\n                code=Op.REVERT(0, 0),\n            )\n        case TargetAccountType.EOF_CONTRACT_REVERT:\n            return pre.deploy_contract(\n                code=Container.Code(Op.REVERT(0, 0)),\n            )\n        case TargetAccountType.IDENTITY_PRECOMPILE:\n            return identity\n\n\n@pytest.mark.parametrize(\n    \"opcode\",\n    [\n        Op.CALL,\n        Op.DELEGATECALL,\n        Op.CALLCODE,\n        Op.STATICCALL,\n    ],\n)\ndef test_legacy_calls_eof_sstore(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    sender: EOA,\n    opcode: Op,\n) -> None:\n    \"\"\"Test legacy contracts calling EOF contracts that use SSTORE.\"\"\"\n    env = Environment()\n    destination_contract_address = pre.deploy_contract(contract_eof_sstore)\n\n    caller_contract = Op.SSTORE(\n        slot_call_result, opcode(address=destination_contract_address)\n    ) + Op.SSTORE(slot_code_worked, value_code_worked)\n\n    calling_contract_address = pre.deploy_contract(caller_contract)\n\n    tx = Transaction(\n        sender=sender,\n        to=calling_contract_address,\n        gas_limit=50000000,\n    )\n\n    calling_storage = Storage(\n        {\n            slot_code_worked: value_code_worked,  # type: ignore\n            slot_call_result: LEGACY_CALL_SUCCESS,  # type: ignore\n        }\n    )\n    destination_storage = Storage()\n\n    if opcode == Op.CALL:\n        destination_storage[slot_caller] = calling_contract_address\n    elif opcode == Op.DELEGATECALL:\n        calling_storage[slot_caller] = sender\n    elif opcode == Op.CALLCODE:\n        calling_storage[slot_caller] = calling_contract_address\n    elif opcode == Op.STATICCALL:\n        calling_storage[slot_call_result] = LEGACY_CALL_FAILURE\n\n    post = {\n        calling_contract_address: Account(storage=calling_storage),\n        destination_contract_address: Account(storage=destination_storage),\n    }\n\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\n@pytest.mark.parametrize(\n    \"opcode\",\n    [\n        Op.CALL,\n        Op.DELEGATECALL,\n        Op.CALLCODE,\n        Op.STATICCALL,\n    ],\n)\ndef test_legacy_calls_eof_mstore(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    sender: EOA,\n    opcode: Op,\n) -> None:\n    \"\"\"Test legacy contracts calling EOF contracts that only return data.\"\"\"\n    env = Environment()\n    destination_contract_code = Container(\n        sections=[\n            Section.Code(\n                code=Op.MSTORE8(0, int.from_bytes(value_returndata_magic, \"big\"))\n                + Op.RETURN(0, len(value_returndata_magic)),\n            )\n        ]\n    )\n    destination_contract_address = pre.deploy_contract(destination_contract_code)\n\n    caller_contract = (\n        Op.SSTORE(slot_call_result, opcode(address=destination_contract_address))\n        + Op.SSTORE(slot_returndatasize, Op.RETURNDATASIZE)\n        + Op.RETURNDATACOPY(31, 0, 1)\n        + Op.SSTORE(slot_returndata, Op.MLOAD(0))\n        + Op.SSTORE(slot_code_worked, value_code_worked)\n    )\n    calling_contract_address = pre.deploy_contract(caller_contract)\n\n    tx = Transaction(\n        sender=sender,\n        to=calling_contract_address,\n        gas_limit=50000000,\n    )\n\n    calling_storage = {\n        slot_code_worked: value_code_worked,\n        slot_call_result: LEGACY_CALL_SUCCESS,\n        slot_returndatasize: len(value_returndata_magic),\n        slot_returndata: value_returndata_magic,\n    }\n\n    post = {\n        calling_contract_address: Account(storage=calling_storage),\n        destination_contract_address: Account(storage={}),\n    }\n\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\n@pytest.mark.parametrize(\n    \"opcode\",\n    [\n        Op.EXTCALL,\n        Op.EXTDELEGATECALL,\n        Op.EXTSTATICCALL,\n    ],\n)\ndef test_eof_calls_eof_sstore(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    sender: EOA,\n    opcode: Op,\n) -> None:\n    \"\"\"Test EOF contracts calling EOF contracts that use SSTORE.\"\"\"\n    env = Environment()\n    destination_contract_address = pre.deploy_contract(contract_eof_sstore)\n\n    caller_contract = Container(\n        sections=[\n            Section.Code(\n                code=Op.SSTORE(slot_call_result, opcode(address=destination_contract_address))\n                + Op.SSTORE(slot_code_worked, value_code_worked)\n                + Op.STOP,\n            )\n        ]\n    )\n    calling_contract_address = pre.deploy_contract(caller_contract)\n\n    tx = Transaction(\n        sender=sender,\n        to=calling_contract_address,\n        gas_limit=50000000,\n    )\n\n    calling_storage = Storage(\n        {\n            HashInt(slot_code_worked): HashInt(value_code_worked),\n            HashInt(slot_call_result): HashInt(EXTCALL_SUCCESS),\n        }\n    )\n    destination_storage = Storage()\n\n    if opcode == Op.EXTCALL:\n        destination_storage[slot_caller] = calling_contract_address\n    elif opcode == Op.EXTDELEGATECALL:\n        calling_storage[slot_caller] = sender\n    elif opcode == Op.EXTSTATICCALL:\n        calling_storage[slot_call_result] = EXTCALL_FAILURE\n\n    post = {\n        calling_contract_address: Account(storage=calling_storage),\n        destination_contract_address: Account(storage=destination_storage),\n    }\n\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\n@pytest.mark.parametrize(\n    \"opcode\",\n    [\n        Op.EXTCALL,\n        Op.EXTDELEGATECALL,\n        Op.EXTSTATICCALL,\n    ],\n)\ndef test_eof_calls_eof_mstore(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    sender: EOA,\n    opcode: Op,\n) -> None:\n    \"\"\"Test EOF contracts calling EOF contracts that return data.\"\"\"\n    env = Environment()\n    destination_contract_code = Container(\n        sections=[\n            Section.Code(\n                code=Op.MSTORE8(0, int.from_bytes(value_returndata_magic, \"big\"))\n                + Op.RETURN(0, 32),\n            )\n        ]\n    )\n    destination_contract_address = pre.deploy_contract(destination_contract_code)\n\n    caller_contract = Container(\n        sections=[\n            Section.Code(\n                code=Op.SSTORE(slot_call_result, opcode(address=destination_contract_address))\n                + Op.SSTORE(slot_returndatasize, Op.RETURNDATASIZE)\n                + Op.SSTORE(slot_returndata, Op.RETURNDATALOAD(0))\n                + Op.SSTORE(slot_code_worked, value_code_worked)\n                + Op.STOP,\n            )\n        ]\n    )\n    calling_contract_address = pre.deploy_contract(caller_contract)\n\n    tx = Transaction(\n        sender=sender,\n        to=calling_contract_address,\n        gas_limit=50000000,\n    )\n\n    calling_storage = {\n        slot_code_worked: value_code_worked,\n        slot_call_result: EXTCALL_SUCCESS,\n        slot_returndatasize: 0x20,\n        slot_returndata: value_returndata_magic + b\"\\0\" * (0x20 - len(value_returndata_magic)),\n    }\n\n    post = {\n        calling_contract_address: Account(storage=calling_storage),\n        destination_contract_address: Account(storage={}),\n    }\n\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\nidentity = Address(0x04)\n# `blake2f`` is chosen for the test because it fails unless args_size == 213,\n# which is what we are interested in.\nblake2f = Address(0x09)\n# `p256verify` / RIP-7212 has been in and out of prague and osaka.\n# Hence we need to test explicitly\np256verify = Address(0x100)\n\n\n@pytest.mark.parametrize(\n    [\"opcode\", \"precompile\", \"expected_result\"],\n    [\n        pytest.param(Op.EXTCALL, identity, EXTCALL_SUCCESS, id=\"extcall_success\"),\n        pytest.param(Op.EXTDELEGATECALL, identity, EXTCALL_REVERT, id=\"extdelegatecall_blocked1\"),\n        pytest.param(Op.EXTSTATICCALL, identity, EXTCALL_SUCCESS, id=\"extstaticcall_success\"),\n        pytest.param(Op.EXTCALL, blake2f, EXTCALL_FAILURE, id=\"extcall_failure\"),\n        pytest.param(Op.EXTDELEGATECALL, blake2f, EXTCALL_REVERT, id=\"extdelegatecall_blocked2\"),\n        pytest.param(Op.EXTSTATICCALL, blake2f, EXTCALL_FAILURE, id=\"extstaticcall_failure\"),\n        pytest.param(Op.EXTCALL, p256verify, EXTCALL_SUCCESS, id=\"extcall_p256verify\"),\n        pytest.param(\n            Op.EXTDELEGATECALL, p256verify, EXTCALL_REVERT, id=\"extdelegatecall_p256verify\"\n        ),\n        pytest.param(Op.EXTSTATICCALL, p256verify, EXTCALL_SUCCESS, id=\"extstaticcall_p256verify\"),\n    ],\n)\ndef test_eof_calls_precompile(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    sender: EOA,\n    opcode: Op,\n    precompile: Address,\n    expected_result: int,\n) -> None:\n    \"\"\"Test EOF contracts calling precompiles.\"\"\"\n    env = Environment()\n\n    caller_contract = Container.Code(\n        Op.MSTORE(0, value_returndata_magic)\n        + Op.SSTORE(slot_call_result, opcode(address=precompile, args_offset=0, args_size=32))\n        + Op.SSTORE(slot_returndatasize, Op.RETURNDATASIZE)\n        + Op.SSTORE(slot_returndata, Op.RETURNDATALOAD(0))\n        + Op.SSTORE(slot_code_worked, value_code_worked)\n        + Op.STOP,\n    )\n    calling_contract_address = pre.deploy_contract(caller_contract)\n\n    tx = Transaction(\n        sender=sender,\n        to=calling_contract_address,\n        gas_limit=5000000,\n    )\n\n    success_identity = expected_result == EXTCALL_SUCCESS and precompile == identity\n\n    calling_storage = {\n        slot_code_worked: value_code_worked,\n        slot_call_result: expected_result,\n        slot_returndatasize: 32 if success_identity else 0,\n        slot_returndata: value_returndata_magic if success_identity else 0,\n    }\n\n    post = {\n        calling_contract_address: Account(storage=calling_storage),\n    }\n\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\n@pytest.mark.parametrize(\n    \"opcode\",\n    [\n        Op.EXTCALL,\n        Op.EXTDELEGATECALL,\n        Op.EXTSTATICCALL,\n    ],\n)\ndef test_eof_calls_legacy_sstore(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    sender: EOA,\n    opcode: Op,\n) -> None:\n    \"\"\"Test EOF contracts calling Legacy contracts that use SSTORE.\"\"\"\n    env = Environment()\n    destination_contract_code = Op.SSTORE(slot_caller, Op.CALLER()) + Op.STOP\n    destination_contract_address = pre.deploy_contract(destination_contract_code)\n\n    caller_contract = Container(\n        sections=[\n            Section.Code(\n                code=Op.SSTORE(slot_call_result, opcode(address=destination_contract_address))\n                + Op.SSTORE(slot_code_worked, value_code_worked)\n                + Op.STOP,\n            )\n        ]\n    )\n    calling_contract_address = pre.deploy_contract(caller_contract)\n\n    tx = Transaction(\n        sender=sender,\n        to=calling_contract_address,\n        gas_limit=50000000,\n    )\n\n    calling_storage = {\n        slot_code_worked: value_code_worked,\n        slot_call_result: EXTCALL_SUCCESS,\n    }\n    destination_storage = {}\n\n    if opcode == Op.EXTCALL:\n        destination_storage[slot_caller] = calling_contract_address\n    elif opcode == Op.EXTDELEGATECALL:\n        # EOF delegate call to legacy is a light failure by rule\n        calling_storage[slot_call_result] = EXTCALL_REVERT\n    elif opcode == Op.EXTSTATICCALL:\n        calling_storage[slot_call_result] = EXTCALL_FAILURE\n\n    post = {\n        calling_contract_address: Account(storage=calling_storage),\n        destination_contract_address: Account(storage=destination_storage),\n    }\n\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\n@pytest.mark.parametrize(\n    \"opcode\",\n    [\n        Op.EXTCALL,\n        Op.EXTDELEGATECALL,\n        Op.EXTSTATICCALL,\n    ],\n)\ndef test_eof_calls_legacy_mstore(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    sender: EOA,\n    opcode: Op,\n) -> None:\n    \"\"\"Test EOF contracts calling Legacy contracts that return data.\"\"\"\n    env = Environment()\n    destination_contract_code = Op.MSTORE8(\n        0, int.from_bytes(value_returndata_magic, \"big\")\n    ) + Op.RETURN(0, 32)\n    destination_contract_address = pre.deploy_contract(destination_contract_code)\n\n    caller_contract = Container(\n        sections=[\n            Section.Code(\n                code=Op.SSTORE(slot_call_result, opcode(address=destination_contract_address))\n                + Op.SSTORE(slot_returndatasize, Op.RETURNDATASIZE)\n                + Op.SSTORE(slot_returndata, Op.RETURNDATALOAD(0))\n                + Op.SSTORE(slot_code_worked, value_code_worked)\n                + Op.STOP,\n            )\n        ]\n    )\n    calling_contract_address = pre.deploy_contract(caller_contract)\n\n    tx = Transaction(\n        sender=sender,\n        to=calling_contract_address,\n        gas_limit=50000000,\n    )\n\n    calling_storage = {\n        slot_code_worked: value_code_worked,\n        slot_call_result: EXTCALL_SUCCESS,\n        slot_returndatasize: 0x20,\n        slot_returndata: value_returndata_magic + b\"\\0\" * (0x20 - len(value_returndata_magic)),\n    }\n\n    if opcode == Op.EXTDELEGATECALL:\n        # EOF delegate call to legacy is a light failure by rule\n        calling_storage[slot_call_result] = EXTCALL_REVERT\n        calling_storage[slot_returndatasize] = 0\n        calling_storage[slot_returndata] = 0\n\n    post = {\n        calling_contract_address: Account(storage=calling_storage),\n        destination_contract_address: Account(storage={}),\n    }\n\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\n@pytest.mark.parametrize(\n    \"opcode\",\n    [\n        Op.EXTCALL,\n        Op.EXTDELEGATECALL,\n        Op.EXTSTATICCALL,\n    ],\n)\n@pytest.mark.parametrize(\n    [\"destination_code\", \"expected_result\"],\n    [\n        pytest.param(Op.REVERT(0, 0), EXTCALL_REVERT, id=\"legacy_revert\"),\n        pytest.param(Op.INVALID, EXTCALL_FAILURE, id=\"legacy_invalid\"),\n        pytest.param(Op.SHA3(0, 2**255), EXTCALL_FAILURE, id=\"legacy_oog\"),\n        pytest.param(Op.RETURNDATACOPY(0, 1, 2), EXTCALL_FAILURE, id=\"legacy_oob_returndata\"),\n        pytest.param(Container.Code(Op.REVERT(0, 0)), EXTCALL_REVERT, id=\"eof_revert\"),\n        pytest.param(Container.Code(Op.INVALID), EXTCALL_FAILURE, id=\"eof_invalid\"),\n        pytest.param(Container.Code(Op.SHA3(0, 2**255) + Op.STOP), EXTCALL_FAILURE, id=\"eof_oog\"),\n    ],\n)\ndef test_callee_fails(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    sender: EOA,\n    opcode: Op,\n    destination_code: Bytecode | Container,\n    expected_result: int,\n) -> None:\n    \"\"\"Test EOF contracts calling contracts that fail for various reasons.\"\"\"\n    env = Environment()\n\n    destination_contract_address = pre.deploy_contract(destination_code)\n\n    caller_contract = Container.Code(\n        Op.SSTORE(slot_code_worked, value_code_worked)\n        + Op.SSTORE(slot_call_result, opcode(address=destination_contract_address))\n        + Op.STOP,\n    )\n    calling_contract_address = pre.deploy_contract(caller_contract)\n\n    tx = Transaction(\n        sender=sender,\n        to=calling_contract_address,\n        gas_limit=4000000,\n    )\n\n    calling_storage = {\n        slot_code_worked: value_code_worked,\n        slot_call_result: EXTCALL_REVERT\n        if opcode == Op.EXTDELEGATECALL and not isinstance(destination_code, Container)\n        else expected_result,\n    }\n\n    post = {\n        calling_contract_address: Account(storage=calling_storage),\n        destination_contract_address: Account(storage={}),\n    }\n\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\n@pytest.mark.parametrize(\n    [\"opcode\", \"destination_code\", \"expected_result\"],\n    [\n        pytest.param(Op.EXTCALL, Op.ADDRESS, \"destination\", id=\"extcall_address\"),\n        pytest.param(Op.EXTDELEGATECALL, Op.ADDRESS, \"caller\", id=\"extdelegatecall_address\"),\n        pytest.param(Op.EXTSTATICCALL, Op.ADDRESS, \"destination\", id=\"extstaticcall_address\"),\n        pytest.param(Op.EXTCALL, Op.CALLER, \"caller\", id=\"extcall_caller\"),\n        pytest.param(Op.EXTDELEGATECALL, Op.CALLER, \"sender\", id=\"extdelegatecall_caller\"),\n        pytest.param(Op.EXTSTATICCALL, Op.CALLER, \"caller\", id=\"extstaticcall_caller\"),\n        pytest.param(Op.EXTCALL, Op.CALLVALUE, 0, id=\"extcall_call_value\"),\n        pytest.param(\n            Op.EXTDELEGATECALL, Op.CALLVALUE, \"tx_value\", id=\"extdelegatecall_call_value\"\n        ),\n        pytest.param(Op.EXTSTATICCALL, Op.CALLVALUE, 0, id=\"extstaticcall_call_value\"),\n        pytest.param(Op.EXTCALL, Op.ORIGIN, \"sender\", id=\"extcall_origin\"),\n        pytest.param(Op.EXTDELEGATECALL, Op.ORIGIN, \"sender\", id=\"extdelegatecall_origin\"),\n        pytest.param(Op.EXTSTATICCALL, Op.ORIGIN, \"sender\", id=\"extstaticcall_origin\"),\n    ],\n)\n@pytest.mark.with_all_evm_code_types\ndef test_callee_context(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    sender: EOA,\n    opcode: Op,\n    destination_code: Bytecode,\n    expected_result: str | int,\n    evm_code_type: EVMCodeType,\n) -> None:\n    \"\"\"Test EOF calls' callee context instructions.\"\"\"\n    env = Environment()\n    tx_value = 0x1123\n\n    destination_contract_address = pre.deploy_contract(\n        Op.MSTORE(0, destination_code) + Op.RETURN(0, 32)\n    )\n\n    caller_contract = Container.Code(\n        Op.SSTORE(slot_code_worked, value_code_worked)\n        + opcode(address=destination_contract_address)\n        + Op.SSTORE(slot_returndata, Op.RETURNDATALOAD(0))\n        + Op.STOP,\n    )\n    calling_contract_address = pre.deploy_contract(caller_contract)\n\n    tx = Transaction(\n        sender=sender,\n        to=calling_contract_address,\n        gas_limit=100000,\n        value=tx_value,\n    )\n\n    expected_bytes: Address | int\n    if expected_result == \"destination\":\n        expected_bytes = destination_contract_address\n    elif expected_result == \"caller\":\n        expected_bytes = calling_contract_address\n    elif expected_result == \"sender\":\n        expected_bytes = sender\n    elif expected_result == \"tx_value\":\n        expected_bytes = tx_value\n    elif isinstance(expected_result, int):\n        expected_bytes = expected_result\n    else:\n        raise TypeError(\"Unexpected expected_result\", expected_result)\n\n    calling_storage = {\n        slot_code_worked: value_code_worked,\n        slot_returndata: 0\n        if (opcode == Op.EXTDELEGATECALL and evm_code_type == EVMCodeType.LEGACY)\n        else expected_bytes,\n    }\n\n    post = {\n        calling_contract_address: Account(storage=calling_storage),\n        destination_contract_address: Account(storage={}),\n    }\n\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\n@pytest.mark.parametrize(\n    \"opcode\",\n    [\n        Op.EXTCALL,\n        Op.EXTDELEGATECALL,\n    ],\n)\n@pytest.mark.parametrize(\"fail_opcode\", [Op.REVERT, Op.INVALID])\ndef test_eof_calls_eof_then_fails(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    sender: EOA,\n    opcode: Op,\n    fail_opcode: Op,\n) -> None:\n    \"\"\"Test EOF contracts calling EOF contracts and failing after the call.\"\"\"\n    env = Environment()\n    destination_contract_address = pre.deploy_contract(contract_eof_sstore)\n\n    caller_contract = Container.Code(\n        Op.SSTORE(slot_call_result, opcode(address=destination_contract_address))\n        + Op.SSTORE(slot_code_worked, value_code_worked)\n        + fail_opcode(offset=0, size=0),\n    )\n    calling_contract_address = pre.deploy_contract(caller_contract)\n\n    tx = Transaction(\n        sender=sender,\n        to=calling_contract_address,\n        gas_limit=50000000,\n    )\n\n    post = {\n        calling_contract_address: Account(storage=Storage()),\n        destination_contract_address: Account(storage=Storage()),\n    }\n\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\n@pytest.mark.parametrize(\n    \"opcode\",\n    [\n        Op.EXTCALL,\n        Op.EXTDELEGATECALL,\n        Op.EXTSTATICCALL,\n    ],\n)\n@pytest.mark.parametrize(\n    \"target_account_type\",\n    TargetAccountType,\n)\n@pytest.mark.parametrize(\"value\", [0, 1])\ndef test_eof_calls_clear_return_buffer(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    sender: EOA,\n    opcode: Op,\n    target_address: Address,\n    value: int,\n) -> None:\n    \"\"\"Test EOF contracts calling clears returndata buffer.\"\"\"\n    env = Environment()\n    filling_contract_code = Container.Code(\n        Op.MSTORE8(0, int.from_bytes(value_returndata_magic, \"big\")) + Op.RETURN(0, 32),\n    )\n    filling_callee_address = pre.deploy_contract(filling_contract_code)\n\n    caller_contract = Container.Code(\n        # First fill the return buffer and sanity check\n        Op.EXTCALL(filling_callee_address, 0, 0, 0)\n        + Op.SSTORE(slot_returndatasize_before_clear, Op.RETURNDATASIZE)\n        # Then call something that doesn't return and check returndata cleared\n        + opcode(address=target_address, value=value)\n        + Op.SSTORE(slot_returndatasize, Op.RETURNDATASIZE)\n        + Op.SSTORE(slot_code_worked, value_code_worked)\n        + Op.STOP,\n    )\n\n    calling_contract_address = pre.deploy_contract(caller_contract)\n\n    tx = Transaction(\n        sender=sender,\n        to=calling_contract_address,\n        gas_limit=50000000,\n    )\n\n    calling_storage = {\n        slot_code_worked: value_code_worked,\n        # Sanity check\n        slot_returndatasize_before_clear: 0x20,\n        slot_returndatasize: 0,\n    }\n\n    post = {\n        calling_contract_address: Account(storage=calling_storage),\n        filling_callee_address: Account(storage={}),\n    }\n\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\n@pytest.mark.parametrize(\n    \"opcode\",\n    [\n        Op.CALL,\n        Op.EXTCALL,\n    ],\n)\ndef test_eof_calls_static_flag_with_value(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    sender: EOA,\n    opcode: Op,\n) -> None:\n    \"\"\"\n    Test EOF contracts calls handle static flag and sending value correctly.\n    \"\"\"\n    env = Environment()\n\n    noop_callee_address = pre.deploy_contract(Container.Code(Op.STOP))\n\n    failing_contract_code = opcode(address=noop_callee_address, value=1) + Op.STOP\n    failing_contract_address = pre.deploy_contract(\n        Container.Code(\n            failing_contract_code,\n        )\n        if opcode == Op.EXTCALL\n        else failing_contract_code\n    )\n\n    calling_contract_address = pre.deploy_contract(\n        Container.Code(\n            Op.SSTORE(slot_call_result, Op.EXTSTATICCALL(address=failing_contract_address))\n            + Op.SSTORE(slot_code_worked, value_code_worked)\n            + Op.STOP\n        )\n    )\n    tx = Transaction(\n        sender=sender,\n        to=calling_contract_address,\n        gas_limit=5_000_000,\n    )\n\n    calling_storage = {\n        slot_code_worked: value_code_worked,\n        slot_call_result: EXTCALL_FAILURE,\n    }\n\n    post = {\n        calling_contract_address: Account(storage=calling_storage),\n    }\n\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\nmin_retained_gas = 2300\nmin_callee_gas = 5000\n\n\n@pytest.mark.parametrize(\n    [\"opcode\", \"extra_gas_value_transfer\", \"value\"],\n    [\n        [Op.EXTCALL, 0, 0],\n        [Op.EXTCALL, 9_000, 1],\n        [Op.EXTSTATICCALL, 0, 0],\n        [Op.EXTDELEGATECALL, 0, 0],\n    ],\n    ids=[\"extcall_without_value\", \"extcall_with_value\", \"extstaticcall\", \"extdelegatecall\"],\n)\n@pytest.mark.parametrize(\n    [\"extra_gas_limit\", \"reverts\"],\n    [\n        [0, False],\n        [min_retained_gas, False],\n        [min_callee_gas, False],\n        [min_retained_gas + min_callee_gas, True],\n    ],\n    ids=[\"no_allowances\", \"only_retained\", \"only_callee\", \"both_allowances\"],\n)\ndef test_eof_calls_min_callee_gas(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    sender: EOA,\n    opcode: Op,\n    extra_gas_value_transfer: int,\n    value: int,\n    extra_gas_limit: int,\n    reverts: bool,\n) -> None:\n    \"\"\"\n    Test EOF contracts calls do light failure when retained/callee gas is not\n    enough.\n\n    Premise of the test is that there exists a range of `gas_limit` values,\n    which are enough for all instructions to execute, but call's returned value\n    is 1, meaning not enough for gas allowances (MIN_RETAINED_GAS and\n    MIN_CALLEE_GAS) - ones marked with `reverts==False`.\n\n    Once we provide both allowances, the RJUMPI condition is no longer met and\n    `reverts==True`.\n    \"\"\"\n    env = Environment()\n\n    noop_callee_address = pre.deploy_contract(Container.Code(Op.STOP))\n\n    revert_block = Op.REVERT(0, 0)\n    calling_contract_address = pre.deploy_contract(\n        Container.Code(\n            Op.SSTORE(slot_code_worked, value_code_worked)\n            + Op.EQ(opcode(address=noop_callee_address, value=value), EXTCALL_REVERT)\n            # If the return code isn't 1, it means gas was enough to cover the\n            # allowances.\n            + Op.RJUMPI[len(revert_block)]\n            + revert_block\n            + Op.STOP\n        ),\n        balance=value,\n    )\n\n    # `no_oog_gas` is minimum amount of gas_limit which makes the transaction\n    # not go oog.\n    push_operations = 3 + len(opcode.kwargs)\n    no_oog_gas = (\n        21_000\n        + 20_000  # SSTORE\n        + 2_100  # SSTORE COLD_SLOAD_COST\n        + push_operations * 3  # PUSH operations\n        + 100  # WARM_STORAGE_READ_COST\n        + 2500  # COLD_ACCOUNT_ACCESS - WARM_STORAGE_READ_COST\n        + extra_gas_value_transfer\n        + 4  # RJUMPI\n        + 3  # EQ\n    )\n\n    tx = Transaction(\n        sender=sender,\n        to=calling_contract_address,\n        gas_limit=no_oog_gas + extra_gas_limit,\n    )\n\n    calling_storage = {\n        slot_code_worked: 0 if reverts else value_code_worked,\n    }\n\n    post = {\n        calling_contract_address: Account(storage=calling_storage),\n    }\n\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\n@pytest.mark.parametrize(\n    \"balance\", [0, 1, 2, pytest.param(2**256 - 1, marks=pytest.mark.pre_alloc_modify)]\n)\n@pytest.mark.parametrize(\"value\", [0, 1, 2, 2**256 - 1])\ndef test_eof_calls_with_value(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    sender: EOA,\n    balance: int,\n    value: int,\n) -> None:\n    \"\"\"\n    Test EOF contracts calls handle value calls with and without enough\n    balance.\n    \"\"\"\n    env = Environment()\n\n    noop_callee_address = pre.deploy_contract(Container.Code(Op.STOP))\n\n    calling_contract_address = pre.deploy_contract(\n        Container.Code(\n            Op.SSTORE(slot_call_result, Op.EXTCALL(address=noop_callee_address, value=value))\n            + Op.SSTORE(slot_code_worked, value_code_worked)\n            + Op.STOP\n        ),\n        balance=balance,\n    )\n    tx = Transaction(\n        sender=sender,\n        to=calling_contract_address,\n        gas_limit=50000000,\n    )\n\n    calling_storage = {\n        slot_code_worked: value_code_worked,\n        slot_call_result: EXTCALL_REVERT if balance < value else EXTCALL_SUCCESS,\n    }\n\n    post = {\n        calling_contract_address: Account(storage=calling_storage),\n        noop_callee_address: Account(balance=0 if balance < value else value),\n    }\n\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\n@pytest.mark.parametrize(\n    \"opcode\",\n    [\n        Op.EXTCALL,\n        Op.EXTDELEGATECALL,\n        Op.EXTSTATICCALL,\n    ],\n)\ndef test_eof_calls_msg_depth(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    sender: EOA,\n    opcode: Op,\n) -> None:\n    \"\"\"\n    Test EOF contracts calls handle msg depth limit correctly (1024).\n\n    Note:\n    due to block gas limit and the 63/64th rule this limit is unlikely\n    to be hit on mainnet.\n\n    \"\"\"\n    # Not a precise gas_limit formula, but enough to exclude risk of gas\n    # causing the failure.\n    gas_limit = int(200000 * (64 / 63) ** 1024)\n    env = Environment(gas_limit=gas_limit)\n\n    # Flow of the test:\n    # `callee_code` is recursively calling itself, passing msg depth as\n    # calldata (kept with the `MSTORE(0, ADD(...))`). When maximum msg depth is\n    # reached the call fails and starts returning. The deep-most frame returns:\n    #   - current reached msg depth (expected to be the maximum 1024), with the\n    #     `MSTORE(32, ADD(...))`\n    #   - the respective return code of the EXT*CALL (expected to be 1 - light\n    #      failure), with the `MSTORE(64, NOOP)`. Note the `NOOP` is just to\n    #      appease the `Op.MSTORE` call, the return code value is actually\n    #      coming from the `Op.DUP1`\n    # When unwinding the msg call stack, the intermediate frames return\n    # whatever the deeper callee returned with the `RETURNDATACOPY`\n    # instruction.\n\n    # Memory offsets layout:\n    # - 0  - input - msg depth\n    # - 32 - output - msg depth\n    # - 64 - output - call result\n    returndatacopy_block = Op.RETURNDATACOPY(32, 0, 64) + Op.RETURN(32, 64)\n    deep_most_result_block = (\n        Op.MSTORE(32, Op.ADD(Op.CALLDATALOAD(0), 1)) + Op.MSTORE(64, Op.NOOP) + Op.RETURN(32, 64)\n    )\n    rjump_offset = len(returndatacopy_block)\n\n    callee_code = Container.Code(\n        # current stack depth in memory bytes 0-31\n        Op.MSTORE(0, Op.ADD(Op.CALLDATALOAD(0), 1))\n        # pass it along deeper as calldata\n        + opcode(address=Op.ADDRESS, args_size=32)\n        # duplicate return code for the `returndatacopy_block` below\n        + Op.DUP1\n        # if return code was:\n        #  - 1, we're in the deep-most frame, `deep_most_result_block` returns\n        #       the actual result\n        #  - 0, we're in an intermediate frame, `returndatacopy_block` only\n        #       passes on the result\n        + Op.RJUMPI[rjump_offset]\n        + returndatacopy_block\n        + deep_most_result_block\n    )\n\n    callee_address = pre.deploy_contract(callee_code)\n\n    calling_contract_address = pre.deploy_contract(\n        Container.Code(\n            Op.MSTORE(0, Op.CALLDATALOAD(0))\n            + Op.EXTCALL(address=callee_address, args_size=32)\n            + Op.SSTORE(slot_max_depth, Op.RETURNDATALOAD(0))\n            + Op.SSTORE(slot_call_result, Op.RETURNDATALOAD(32))\n            + Op.SSTORE(slot_code_worked, value_code_worked)\n            + Op.STOP\n        )\n    )\n    tx = Transaction(\n        sender=sender,\n        to=calling_contract_address,\n        gas_limit=gas_limit,\n    )\n\n    calling_storage = {\n        slot_max_depth: 1024,\n        slot_code_worked: value_code_worked,\n        slot_call_result: EXTCALL_REVERT,\n    }\n\n    post = {\n        calling_contract_address: Account(storage=calling_storage),\n    }\n\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\n@pytest.mark.parametrize(\"target_account_type\", TargetAccountType)\n@pytest.mark.parametrize(\"delegate\", [True, False])\n@pytest.mark.parametrize(\"call_from_initcode\", [True, False])\ndef test_extdelegate_call_targets(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    target_account_type: TargetAccountType,\n    target_address: Address,\n    delegate: bool,\n    call_from_initcode: bool,\n) -> None:\n    \"\"\"\n    Test EOF contracts extdelegatecalling various targets, especially resolved\n    via 7702 delegation.\n    \"\"\"\n    env = Environment()\n\n    if delegate:\n        target_address = pre.fund_eoa(0, delegation=target_address)\n\n    sender = pre.fund_eoa()\n    delegate_call_code = Op.SSTORE(\n        slot_call_result, Op.EXTDELEGATECALL(address=target_address)\n    ) + Op.SSTORE(slot_code_worked, value_code_worked)\n\n    if call_from_initcode:\n        # Call from initcode\n        caller_contract = Container(\n            sections=[\n                Section.Code(\n                    code=delegate_call_code + Op.RETURNCODE[0](0, 0),\n                ),\n                Section.Container(Container.Code(Op.STOP)),\n            ]\n        )\n        initcode_hash = caller_contract.hash\n        factory_address = pre.deploy_contract(\n            code=Op.TXCREATE(tx_initcode_hash=initcode_hash) + Op.STOP,\n        )\n        tx = Transaction(\n            sender=sender,\n            to=factory_address,\n            data=caller_contract,\n            gas_limit=4_000_000,\n            initcodes=[caller_contract],\n        )\n        calling_contract_address = compute_eofcreate_address(factory_address, 0)\n    else:\n        # Normal call from existing contract\n        caller_contract = Container.Code(\n            delegate_call_code + Op.STOP,\n        )\n        calling_contract_address = pre.deploy_contract(caller_contract)\n\n        tx = Transaction(\n            sender=sender,\n            to=calling_contract_address,\n            gas_limit=4_000_000,\n        )\n\n    calling_storage = {\n        slot_code_worked: value_code_worked,\n        slot_call_result: EXTCALL_SUCCESS\n        if target_account_type == TargetAccountType.EOF_CONTRACT\n        else EXTCALL_FAILURE\n        if target_account_type == TargetAccountType.EOF_CONTRACT_INVALID\n        else EXTCALL_REVERT,\n    }\n\n    post = {\n        calling_contract_address: Account(storage=calling_storage),\n    }\n\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_gas.py",
    "content": "\"\"\"\nGas consumption tests for EXT*CALL instructions\n    Tests for gas consumption in\n    [EIP-7069: Revamped CALL instructions](https://eips.ethereum.org/EIPS/eip-7069).\n\"\"\"\n\nimport pytest\n\nfrom ethereum_test_base_types import Address\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import Alloc, Environment, StateTestFiller\nfrom ethereum_test_types.eof.v1 import Container\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .. import EOF_FORK_NAME\nfrom ..gas_test import gas_test\nfrom . import REFERENCE_SPEC_GIT_PATH, REFERENCE_SPEC_VERSION\n\nREFERENCE_SPEC_GIT_PATH = REFERENCE_SPEC_GIT_PATH\nREFERENCE_SPEC_VERSION = REFERENCE_SPEC_VERSION\n\npytestmark = pytest.mark.valid_from(EOF_FORK_NAME)\n\n\nCOLD_ACCOUNT_ACCESS_GAS = 2600\nWARM_ACCOUNT_ACCESS_GAS = 100\nCALL_WITH_VALUE_GAS = 9000\nACCOUNT_CREATION_GAS = 25000\n\n\n@pytest.fixture\ndef state_env() -> Environment:\n    \"\"\"\n    Prepare the environment for all state test cases.\n\n    Main difference is that the excess blob gas is not increased by the target,\n    as there is no genesis block -> block 1 transition, and therefore the\n    excess blob gas is not decreased by the target.\n    \"\"\"\n    return Environment()\n\n\n@pytest.mark.parametrize(\n    [\"opcode\", \"pre_setup\", \"cold_gas\", \"warm_gas\", \"new_account\"],\n    [\n        pytest.param(\n            Op.EXTCALL,\n            Op.PUSH0,\n            COLD_ACCOUNT_ACCESS_GAS,\n            WARM_ACCOUNT_ACCESS_GAS,\n            False,\n            id=\"EXTCALL\",\n        ),\n        pytest.param(\n            Op.EXTCALL,\n            Op.PUSH1(1),\n            COLD_ACCOUNT_ACCESS_GAS + CALL_WITH_VALUE_GAS,\n            WARM_ACCOUNT_ACCESS_GAS + CALL_WITH_VALUE_GAS,\n            False,\n            id=\"EXTCALL_with_value\",\n        ),\n        pytest.param(\n            Op.EXTDELEGATECALL,\n            Op.NOOP,\n            COLD_ACCOUNT_ACCESS_GAS,\n            WARM_ACCOUNT_ACCESS_GAS,\n            False,\n            id=\"EXTDELEGATECALL\",\n        ),\n        pytest.param(\n            Op.EXTSTATICCALL,\n            Op.NOOP,\n            COLD_ACCOUNT_ACCESS_GAS,\n            WARM_ACCOUNT_ACCESS_GAS,\n            False,\n            id=\"EXTSTATICCALL\",\n        ),\n        pytest.param(\n            Op.EXTCALL,\n            Op.PUSH0,\n            COLD_ACCOUNT_ACCESS_GAS,\n            WARM_ACCOUNT_ACCESS_GAS,\n            True,\n            id=\"EXTCALL_new_acc\",\n        ),\n        pytest.param(\n            Op.EXTCALL,\n            Op.PUSH1(1),\n            COLD_ACCOUNT_ACCESS_GAS + ACCOUNT_CREATION_GAS + CALL_WITH_VALUE_GAS,\n            WARM_ACCOUNT_ACCESS_GAS + ACCOUNT_CREATION_GAS + CALL_WITH_VALUE_GAS,\n            True,\n            id=\"EXTCALL_with_value_new_acc\",\n        ),\n        pytest.param(\n            Op.EXTDELEGATECALL,\n            Op.NOOP,\n            COLD_ACCOUNT_ACCESS_GAS,\n            WARM_ACCOUNT_ACCESS_GAS,\n            True,\n            id=\"EXTDELEGATECALL_new_acc\",\n        ),\n        pytest.param(\n            Op.EXTSTATICCALL,\n            Op.NOOP,\n            COLD_ACCOUNT_ACCESS_GAS,\n            WARM_ACCOUNT_ACCESS_GAS,\n            True,\n            id=\"EXTSTATICCALL_new_acc\",\n        ),\n    ],\n)\n@pytest.mark.parametrize(\n    \"mem_expansion_bytes\",\n    [0, 1, 32, 33],\n)\ndef test_ext_calls_gas(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    fork: Fork,\n    state_env: Environment,\n    opcode: Op,\n    pre_setup: Op,\n    cold_gas: int,\n    warm_gas: int,\n    new_account: bool,\n    mem_expansion_bytes: int,\n) -> None:\n    \"\"\"\n    Tests variations of EXT*CALL gas, both warm and cold, without and with mem\n    expansions.\n    \"\"\"\n    address_target = (\n        pre.fund_eoa(0) if new_account else pre.deploy_contract(Container.Code(Op.STOP))\n    )\n    cost_memory_bytes = fork.memory_expansion_gas_calculator()\n    gas_test(\n        state_test,\n        state_env,\n        pre,\n        setup_code=pre_setup\n        + Op.PUSH1(mem_expansion_bytes)\n        + Op.PUSH0\n        + Op.PUSH20(address_target),\n        subject_code=opcode,\n        tear_down_code=Op.STOP,\n        cold_gas=cold_gas + cost_memory_bytes(new_bytes=mem_expansion_bytes),\n        warm_gas=warm_gas + cost_memory_bytes(new_bytes=mem_expansion_bytes),\n    )\n\n\n@pytest.mark.parametrize(\"opcode\", [Op.EXTCALL, Op.EXTDELEGATECALL, Op.EXTSTATICCALL])\n@pytest.mark.parametrize(\"value\", [0, 1])\ndef test_transfer_gas_is_cleared(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    state_env: Environment,\n    opcode: Op,\n    value: int,\n) -> None:\n    \"\"\"\n    Test that EXT*CALL call doesn't charge for value transfer, even if the\n    outer call transferred value.\n\n    NOTE: This is particularly possible for EXTDELEGATECALL, which carries over\n    the value sent in the outer call, however, we extend the test to all 3\n    EXT*CALL opcodes for good measure.\n    \"\"\"\n    noop_callee_address = pre.deploy_contract(Container.Code(Op.STOP))\n\n    extdelegatecall_contract_address = pre.deploy_contract(\n        Container.Code(opcode(address=noop_callee_address) + Op.STOP)\n    )\n\n    push_gas = (4 if opcode == Op.EXTCALL else 3) * 3\n\n    gas_test(\n        state_test,\n        state_env,\n        pre,\n        setup_code=Op.PUSH1(value) + Op.PUSH0 * 2 + Op.PUSH20(extdelegatecall_contract_address),\n        subject_code=Op.EXTCALL,\n        subject_balance=5 * value,\n        tear_down_code=Op.STOP,\n        # NOTE: CALL_WITH_VALUE_GAS is charged only once on the outer EXTCALL,\n        # while the base call gas - twice.\n        cold_gas=2 * COLD_ACCOUNT_ACCESS_GAS\n        + (CALL_WITH_VALUE_GAS if value > 0 else 0)\n        + push_gas,\n        warm_gas=2 * WARM_ACCOUNT_ACCESS_GAS\n        + (CALL_WITH_VALUE_GAS if value > 0 else 0)\n        + push_gas,\n        out_of_gas_testing=False,\n    )\n\n\n@pytest.mark.parametrize(\"opcode\", [Op.EXTCALL, Op.EXTDELEGATECALL, Op.EXTSTATICCALL])\ndef test_late_account_create(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    state_env: Environment,\n    opcode: Op,\n) -> None:\n    \"\"\"\n    Test EXTCALL to a non-existent account after another EXT*CALL has called it\n    and not created it.\n    \"\"\"\n    empty_address = Address(0xDECAFC0DE)\n\n    gas_test(\n        state_test,\n        state_env,\n        pre,\n        prelude_code=Op.BALANCE(address=empty_address),\n        setup_code=opcode(address=empty_address)\n        + Op.PUSH1(1)\n        + Op.PUSH0\n        + Op.PUSH0\n        + Op.PUSH20(empty_address),\n        subject_code=Op.EXTCALL,\n        subject_balance=5,\n        tear_down_code=Op.STOP,\n        cold_gas=WARM_ACCOUNT_ACCESS_GAS + CALL_WITH_VALUE_GAS + ACCOUNT_CREATION_GAS,\n        warm_gas=WARM_ACCOUNT_ACCESS_GAS + CALL_WITH_VALUE_GAS,\n        out_of_gas_testing=False,\n    )\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_returndatacopy_memory_expansion.py",
    "content": "\"\"\"Memory expansion tests for RETURNDATACOPY executing in EOF code.\"\"\"\n\nfrom typing import Mapping, Tuple\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    Account,\n    Address,\n    Alloc,\n    Bytecode,\n    Environment,\n    StateTestFiller,\n    Storage,\n    Transaction,\n)\nfrom ethereum_test_tools import Opcodes as Op\nfrom ethereum_test_types.eof.v1 import Container\n\nfrom .. import EOF_FORK_NAME\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-7069.md\"\nREFERENCE_SPEC_VERSION = \"e469fd6c8d736b2a3e1ce632263e3ad36fc8624d\"\n\npytestmark = pytest.mark.valid_from(EOF_FORK_NAME)\n\n\n@pytest.fixture\ndef callee_bytecode(dest: int, src: int, length: int) -> Container:\n    \"\"\"Callee performs a single returndatacopy operation and then returns.\"\"\"\n    bytecode = Bytecode()\n\n    # Copy the initial memory\n    bytecode += Op.CALLDATACOPY(0x00, 0x00, Op.CALLDATASIZE())\n\n    # Pushes for the return operation\n    bytecode += Op.PUSH1(0x00) + Op.PUSH1(0x00)\n\n    # Perform the returndatacopy operation\n    bytecode += Op.RETURNDATACOPY(dest, src, length)\n\n    bytecode += Op.RETURN\n\n    return Container.Code(code=bytecode)\n\n\n@pytest.fixture\ndef subcall_exact_cost(\n    fork: Fork,\n    initial_memory: bytes,\n    dest: int,\n    length: int,\n) -> int:\n    \"\"\"\n    Return exact cost of the subcall, based on the initial memory and the\n    length of the copy.\n    \"\"\"\n    cost_memory_bytes = fork.memory_expansion_gas_calculator()\n\n    returndatacopy_cost = 3\n    returndatacopy_cost += 3 * ((length + 31) // 32)\n    if length > 0 and dest + length > len(initial_memory):\n        returndatacopy_cost += cost_memory_bytes(\n            new_bytes=dest + length, previous_bytes=len(initial_memory)\n        )\n\n    calldatacopy_cost = 3\n    calldatacopy_cost += 3 * ((len(initial_memory) + 31) // 32)\n    calldatacopy_cost += cost_memory_bytes(new_bytes=len(initial_memory))\n\n    pushes_cost = 3 * 7\n    calldatasize_cost = 2\n    return returndatacopy_cost + calldatacopy_cost + pushes_cost + calldatasize_cost\n\n\n@pytest.fixture\ndef bytecode_storage(\n    subcall_exact_cost: int,\n    successful: bool,\n    memory_expansion_address: Address,\n) -> Tuple[Bytecode, Storage.StorageDictType]:\n    \"\"\"\n    Prepare bytecode and storage for the test, based on the expected result of\n    the subcall (whether it succeeds or fails depending on the length of the\n    memory expansion).\n    \"\"\"\n    bytecode = Bytecode()\n    storage = {}\n\n    # Pass on the calldata\n    bytecode += Op.CALLDATACOPY(0x00, 0x00, Op.CALLDATASIZE())\n\n    subcall_gas = subcall_exact_cost if successful else subcall_exact_cost - 1\n\n    # Perform the subcall and store a one in the result location\n    bytecode += Op.SSTORE(\n        Op.CALL(subcall_gas, memory_expansion_address, 0, 0, Op.CALLDATASIZE(), 0, 0), 1\n    )\n    storage[int(successful)] = 1\n\n    return (bytecode, storage)\n\n\n@pytest.fixture\ndef tx_max_fee_per_gas() -> int:  # noqa: D103\n    return 7\n\n\n@pytest.fixture\ndef block_gas_limit() -> int:  # noqa: D103\n    return 100_000_000\n\n\n@pytest.fixture\ndef tx_gas_limit(  # noqa: D103\n    subcall_exact_cost: int,\n    block_gas_limit: int,\n) -> int:\n    return min(max(500_000, subcall_exact_cost * 2), block_gas_limit)\n\n\n@pytest.fixture\ndef env(  # noqa: D103\n    block_gas_limit: int,\n) -> Environment:\n    return Environment(gas_limit=block_gas_limit)\n\n\n@pytest.fixture\ndef caller_address(  # noqa: D103\n    pre: Alloc, bytecode_storage: Tuple[bytes, Storage.StorageDictType]\n) -> Address:\n    return pre.deploy_contract(code=bytecode_storage[0])\n\n\n@pytest.fixture\ndef memory_expansion_address(pre: Alloc, callee_bytecode: bytes) -> Address:  # noqa: D103\n    return pre.deploy_contract(code=callee_bytecode)\n\n\n@pytest.fixture\ndef sender(pre: Alloc, tx_max_fee_per_gas: int, tx_gas_limit: int) -> Address:  # noqa: D103\n    return pre.fund_eoa(tx_max_fee_per_gas * tx_gas_limit)\n\n\n@pytest.fixture\ndef tx(  # noqa: D103\n    sender: Address,\n    caller_address: Address,\n    initial_memory: bytes,\n    tx_max_fee_per_gas: int,\n    tx_gas_limit: int,\n) -> Transaction:\n    return Transaction(\n        sender=sender,\n        to=caller_address,\n        data=initial_memory,\n        gas_limit=tx_gas_limit,\n        max_fee_per_gas=tx_max_fee_per_gas,\n        max_priority_fee_per_gas=0,\n    )\n\n\n@pytest.fixture\ndef post(  # noqa: D103\n    caller_address: Address, bytecode_storage: Tuple[bytes, Storage.StorageDictType]\n) -> Mapping:\n    return {\n        caller_address: Account(storage=bytecode_storage[1]),\n    }\n\n\n@pytest.mark.parametrize(\n    \"dest,src,length\",\n    [\n        (0x00, 0x00, 0x01),\n        (0x100, 0x00, 0x01),\n        (0x1F, 0x00, 0x01),\n        (0x20, 0x00, 0x01),\n        (0x1000, 0x00, 0x01),\n        (0x1000, 0x00, 0x40),\n        (0x00, 0x00, 0x00),\n        (2**256 - 1, 0x00, 0x00),\n        (0x00, 2**256 - 1, 0x00),\n        (2**256 - 1, 2**256 - 1, 0x00),\n    ],\n    ids=[\n        \"single_byte_expansion\",\n        \"single_byte_expansion_2\",\n        \"single_byte_expansion_word_boundary\",\n        \"single_byte_expansion_word_boundary_2\",\n        \"multi_word_expansion\",\n        \"multi_word_expansion_2\",\n        \"zero_length_expansion\",\n        \"huge_dest_zero_length\",\n        \"huge_src_zero_length\",\n        \"huge_dest_huge_src_zero_length\",\n    ],\n)\n@pytest.mark.parametrize(\"successful\", [True, False])\n@pytest.mark.parametrize(\n    \"initial_memory\",\n    [\n        bytes(range(0x00, 0x100)),\n        bytes(),\n    ],\n    ids=[\n        \"from_existent_memory\",\n        \"from_empty_memory\",\n    ],\n)\ndef test_returndatacopy_memory_expansion(\n    state_test: StateTestFiller,\n    env: Environment,\n    pre: Alloc,\n    post: Mapping[str, Account],\n    tx: Transaction,\n) -> None:\n    \"\"\"\n    Perform RETURNDATACOPY operations that expand the memory, and verify the\n    gas it costs.\n    \"\"\"\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\n@pytest.mark.parametrize(\n    \"dest,src,length\",\n    [\n        pytest.param(2**256 - 1, 0x00, 0x01, id=\"max_dest_single_byte_expansion\"),\n        pytest.param(2**256 - 2, 0x00, 0x01, id=\"max_dest_minus_one_single_byte_expansion\"),\n        pytest.param(2**255 - 1, 0x00, 0x01, id=\"half_max_dest_single_byte_expansion\"),\n        pytest.param(0x00, 0x00, 2**256 - 1, id=\"max_length_expansion\"),\n        pytest.param(0x00, 0x00, 2**256 - 2, id=\"max_length_minus_one_expansion\"),\n        pytest.param(0x00, 0x00, 2**255 - 1, id=\"half_max_length_expansion\"),\n        pytest.param(0x1FFFF20, 0x00, 0x01, id=\"32-bit-mem-cost_offset\"),\n        pytest.param(0x2D412E0, 0x00, 0x01, id=\"33-bit-mem-cost_offset\"),\n        pytest.param(0x00, 0x00, 0x1FFFF20, id=\"32-bit-mem-cost_size\"),\n        pytest.param(0x00, 0x00, 0x2D412E0, id=\"33-bit-mem-cost_size\"),\n        pytest.param(0x1FFFFFFFF20, 0x00, 0x01, id=\"64-bit-mem-cost_offset\"),\n        pytest.param(0x2D413CCCF00, 0x00, 0x01, id=\"65-bit-mem-cost_offset\"),\n        pytest.param(0x00, 0x00, 0x1FFFFFFFF20, id=\"64-bit-mem-cost_size\"),\n        pytest.param(0x00, 0x00, 0x2D413CCCF00, id=\"65-bit-mem-cost_size\"),\n    ],\n)\n@pytest.mark.parametrize(\n    \"subcall_exact_cost\",\n    [2**128 - 1],\n    ids=[\"\"],\n)  # Limit subcall gas, otherwise it would be impossibly large\n@pytest.mark.parametrize(\"successful\", [False])\n@pytest.mark.parametrize(\n    \"initial_memory\",\n    [\n        bytes(range(0x00, 0x100)),\n        bytes(),\n    ],\n    ids=[\n        \"from_existent_memory\",\n        \"from_empty_memory\",\n    ],\n)\ndef test_returndatacopy_huge_memory_expansion(\n    state_test: StateTestFiller,\n    env: Environment,\n    pre: Mapping[str, Account],\n    post: Mapping[str, Account],\n    tx: Transaction,\n) -> None:\n    \"\"\"\n    Perform RETURNDATACOPY operations that expand the memory by huge amounts,\n    and verify that it correctly runs out of gas.\n    \"\"\"\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_returndataload.py",
    "content": "\"\"\"\nRETURNDATALOAD instruction tests\n    Tests for RETURNDATALOAD instruction in\n    [EIP-7069: Revamped CALL instructions](https://eips.ethereum.org/EIPS/eip-7069).\n\"\"\"\n\nfrom typing import cast\n\nimport pytest\n\nfrom ethereum_test_tools import Account, Alloc, Environment, StateTestFiller, Storage, Transaction\nfrom ethereum_test_types.eof.v1 import Container, Section\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .. import EOF_FORK_NAME\nfrom . import REFERENCE_SPEC_GIT_PATH, REFERENCE_SPEC_VERSION\nfrom .helpers import (\n    slot_code_worked,\n    slot_eof_target_call_status,\n    slot_eof_target_returndata,\n    slot_eof_target_returndatasize,\n    slot_legacy_target_call_status,\n    slot_legacy_target_returndatasize,\n    value_code_worked,\n    value_exceptional_abort_canary,\n)\nfrom .spec import EXTCALL_FAILURE, EXTCALL_SUCCESS, LEGACY_CALL_FAILURE, LEGACY_CALL_SUCCESS\n\nREFERENCE_SPEC_GIT_PATH = REFERENCE_SPEC_GIT_PATH\nREFERENCE_SPEC_VERSION = REFERENCE_SPEC_VERSION\n\npytestmark = pytest.mark.valid_from(EOF_FORK_NAME)\n\n\n@pytest.mark.parametrize(\n    \"opcode\",\n    [\n        Op.CALL,\n        Op.CALLCODE,\n        Op.DELEGATECALL,\n        Op.STATICCALL,\n        Op.EXTCALL,\n        Op.EXTDELEGATECALL,\n        Op.EXTSTATICCALL,\n    ],\n)\n@pytest.mark.parametrize(\n    \"return_data\",\n    [\n        b\"\",\n        b\"\\x10\" * 0x10,\n        b\"\\x20\" * 0x20,\n        b\"\\x30\" * 0x30,\n    ],\n    ids=lambda x: \"len_%x\" % len(x),\n)\n@pytest.mark.parametrize(\n    \"offset\",\n    [\n        0,\n        0x10,\n        0x20,\n        0x30,\n    ],\n    ids=lambda x: \"offset_%x\" % x,\n)\n@pytest.mark.parametrize(\n    \"size\",\n    [\n        0,\n        0x10,\n        0x20,\n        0x30,\n    ],\n    ids=lambda x: \"size_%x\" % x,\n)\ndef test_returndatacopy_handling(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    opcode: Op,\n    return_data: bytes,\n    offset: int,\n    size: int,\n) -> None:\n    \"\"\"\n    Tests ReturnDataLoad including multiple offset conditions and differing\n    legacy vs. eof boundary conditions.\n\n    entrypoint creates a \"0xff\" test area of memory, delegate calls to caller.\n    Caller is either EOF or legacy, as per parameter.  Calls returner and\n    copies the return data based on offset and size params.  Cases are expected\n    to trigger boundary violations.\n\n    Entrypoint copies the test area to storage slots, and the expected result\n    is asserted.\n    \"\"\"\n    env = Environment()\n\n    slot_result_start = 0x1000\n\n    sender = pre.fund_eoa()\n\n    address_returner = pre.deploy_contract(\n        Container(\n            sections=[\n                Section.Code(\n                    code=Op.DATACOPY(0, 0, Op.DATASIZE) + Op.RETURN(0, Op.DATASIZE),\n                ),\n                Section.Data(data=return_data),\n            ]\n        )\n    )\n\n    result = [0xFF] * 0x40\n    result[0:size] = [0] * size\n    extent = size - max(0, size + offset - len(return_data))\n    if extent > 0 and len(return_data) > 0:\n        result[0:extent] = [return_data[0]] * extent\n\n    code_under_test = (\n        opcode(address=address_returner)\n        + Op.RETURNDATACOPY(0, offset, size)\n        + Op.SSTORE(slot_code_worked, value_code_worked)\n        + Op.RETURN(0, size)\n    )\n    match opcode:\n        case Op.EXTCALL | Op.EXTDELEGATECALL | Op.EXTSTATICCALL:\n            address_caller = pre.deploy_contract(\n                Container(\n                    sections=[\n                        Section.Code(\n                            code=code_under_test,\n                        )\n                    ]\n                )\n            )\n        case Op.CALL | Op.CALLCODE | Op.DELEGATECALL | Op.STATICCALL:\n            address_caller = pre.deploy_contract(code_under_test)\n\n    address_entry_point = pre.deploy_contract(\n        Op.NOOP\n        # First, create a \"dirty\" area, so we can check zero overwrite\n        + Op.MSTORE(0x00, -1)\n        + Op.MSTORE(0x20, -1)\n        # call the contract under test\n        + Op.DELEGATECALL(1_000_000, address_caller, 0, 0, 0, 0)\n        + Op.RETURNDATACOPY(0, 0, Op.RETURNDATASIZE)\n        # store the return data\n        + Op.SSTORE(slot_result_start, Op.MLOAD(0x0))\n        + Op.SSTORE(slot_result_start + 1, Op.MLOAD(0x20))\n        + Op.SSTORE(slot_code_worked, value_code_worked)\n        + Op.STOP,\n    )\n\n    post = {\n        address_entry_point: Account(\n            storage={\n                slot_code_worked: value_code_worked,\n                slot_result_start: bytes(result[:0x20]),\n                (slot_result_start + 0x1): bytes(result[0x20:]),\n            }\n        )\n    }\n    if opcode in [Op.CALL, Op.CALLCODE, Op.DELEGATECALL, Op.STATICCALL] and (\n        (offset + size) > len(return_data)\n    ):\n        post[address_entry_point] = Account(\n            storage={\n                slot_code_worked: value_code_worked,\n                slot_result_start: b\"\\xff\" * 32,\n                slot_result_start + 1: b\"\\xff\" * 32,\n            }\n        )\n\n    tx = Transaction(to=address_entry_point, gas_limit=2_000_000, sender=sender)\n\n    state_test(\n        env=env,\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"opcode\",\n    [\n        Op.EXTCALL,\n        Op.EXTDELEGATECALL,\n        Op.EXTSTATICCALL,\n    ],\n)\n@pytest.mark.parametrize(\n    \"return_data\",\n    [\n        b\"\",\n        b\"\\x10\" * 0x10,\n        b\"\\x20\" * 0x20,\n        b\"\\x30\" * 0x30,\n    ],\n    ids=lambda x: \"len_%x\" % len(x),\n)\n@pytest.mark.parametrize(\n    \"offset\",\n    [\n        0,\n        0x10,\n        0x20,\n        0x30,\n    ],\n    ids=lambda x: \"offset_%x\" % x,\n)\ndef test_returndataload_handling(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    opcode: Op,\n    return_data: bytes,\n    offset: int,\n) -> None:\n    \"\"\"\n    Much simpler than returndatacopy, no memory or boosted call.  Returner is\n    called and results are stored in storage slot, which is asserted for\n    expected values. The parameters offset and return data are configured to\n    test boundary conditions.\n    \"\"\"\n    env = Environment()\n\n    slot_result_start = 0x1000\n\n    sender = pre.fund_eoa()\n    address_returner = pre.deploy_contract(\n        Container(\n            sections=[\n                Section.Code(\n                    code=Op.DATACOPY(0, 0, Op.DATASIZE) + Op.RETURN(0, Op.DATASIZE),\n                ),\n                Section.Data(data=return_data),\n            ]\n        )\n    )\n    address_entry_point = pre.deploy_contract(\n        Container(\n            sections=[\n                Section.Code(\n                    code=opcode(address=address_returner)\n                    + Op.SSTORE(slot_result_start, Op.RETURNDATALOAD(offset))\n                    + Op.SSTORE(slot_code_worked, value_code_worked)\n                    + Op.STOP,\n                )\n            ]\n        )\n    )\n\n    result = [0] * 0x20\n    extent = 0x20 - max(0, 0x20 + offset - len(return_data))\n    if extent > 0 and len(return_data) > 0:\n        result[0:extent] = [return_data[0]] * extent\n    post = {\n        address_entry_point: Account(\n            storage={\n                slot_code_worked: value_code_worked,\n                slot_result_start: bytes(result),\n            }\n        )\n    }\n\n    tx = Transaction(to=address_entry_point, gas_limit=2_000_000, sender=sender)\n\n    state_test(\n        env=env,\n        pre=pre,\n        tx=tx,\n        post=post,\n    )\n\n\n@pytest.mark.parametrize(\n    \"opcode\",\n    [\n        Op.CALL,\n        Op.EXTCALL,\n    ],\n)\ndef test_returndatacopy_oob(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    opcode: Op,\n) -> None:\n    \"\"\"\n    Extends the RETURNDATACOPY test for correct out-of-bounds behavior, by\n    checking if the caller frame's context being EOF or legacy doesn't impact\n    the execution logic of the RETURNDATACOPY instance under test.\n    \"\"\"\n    env = Environment()\n\n    sender = pre.fund_eoa()\n\n    # Both callee codes below make an OOB (out-of-bounds) RETURNDATACOPY of one\n    # byte, which they then attempt to return (Legacy should exceptionally halt\n    # on RETURNDATACOPY).\n    address_callee_eof = pre.deploy_contract(\n        code=Container(\n            sections=[\n                Section.Code(\n                    code=Op.RETURNDATACOPY(0, 0, 1) + Op.RETURN(0, 1),\n                    max_stack_height=3,\n                )\n            ]\n        )\n    )\n    address_callee_legacy = pre.deploy_contract(Op.RETURNDATACOPY(0, 0, 1) + Op.RETURN(0, 1))\n\n    # Caller code is selected to either be Legacy or EOF using params.\n    code_entry_point = (\n        Op.SSTORE(slot_eof_target_call_status, opcode(address=address_callee_eof))\n        + Op.SSTORE(slot_eof_target_returndatasize, Op.RETURNDATASIZE)\n        + Op.SSTORE(slot_eof_target_returndata, Op.RETURNDATACOPY(0, 0, 1) + Op.MLOAD(0))\n        + Op.SSTORE(\n            slot_legacy_target_call_status,\n            opcode(address=address_callee_legacy),\n        )\n        + Op.SSTORE(slot_legacy_target_returndatasize, Op.RETURNDATASIZE)\n        + Op.STOP\n    )\n\n    storage_entry_point = Storage(\n        cast(\n            Storage.StorageDictType,\n            {\n                slot_eof_target_call_status: value_exceptional_abort_canary,\n                slot_eof_target_returndata: value_exceptional_abort_canary,\n                slot_eof_target_returndatasize: value_exceptional_abort_canary,\n                slot_legacy_target_call_status: value_exceptional_abort_canary,\n                slot_legacy_target_returndatasize: value_exceptional_abort_canary,\n            },\n        )\n    )\n\n    address_entry_point = (\n        pre.deploy_contract(code=code_entry_point, storage=storage_entry_point)\n        if opcode == Op.CALL\n        else pre.deploy_contract(\n            Container(\n                sections=[\n                    Section.Code(\n                        code=code_entry_point,\n                        max_stack_height=4,\n                        storage=storage_entry_point,\n                    )\n                ]\n            )\n        )\n    )\n\n    tx = Transaction(to=address_entry_point, gas_limit=2_000_000, sender=sender)\n\n    post = {\n        address_entry_point: Account(\n            storage={\n                slot_eof_target_call_status: LEGACY_CALL_SUCCESS,\n                slot_eof_target_returndata: \"0x00\",\n                slot_eof_target_returndatasize: \"0x01\",\n                slot_legacy_target_call_status: LEGACY_CALL_FAILURE,\n                slot_legacy_target_returndatasize: \"0x00\",\n            }\n            if opcode == Op.CALL\n            else {\n                slot_eof_target_call_status: EXTCALL_SUCCESS,\n                slot_eof_target_returndata: \"0x00\",\n                slot_eof_target_returndatasize: \"0x01\",\n                slot_legacy_target_call_status: EXTCALL_FAILURE,\n                slot_legacy_target_returndatasize: \"0x00\",\n            }\n        )\n    }\n\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip7480_data_section/__init__.py",
    "content": "\"\"\"\nTest cases for EOF Data section access instructions for EIP-7480.\n\nEIP-7480 specifies instructions for accessing data stored in the dedicated\ndata section of the EOF format. Full specification: [EIP-7480: EOF - Data\nsection access instructions](https://eips.ethereum.org/EIPS/eip-7480).\nOpcodes introduced: `DATALOAD` (`0xD0`), `DATALOADN` (`0xD1`), `DATASIZE`\n(`0xD2`), `DATACOPY` (`0xD3`).\n\"\"\"\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip7480_data_section/spec.py",
    "content": "\"\"\"EOF V1 Constants used throughout all tests.\"\"\"\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip7480_data_section/test_code_validation.py",
    "content": "\"\"\"EOF V1 Code Validation tests.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_tools import EOFException, EOFTestFiller\nfrom ethereum_test_types.eof.v1 import Container, Section\nfrom ethereum_test_types.eof.v1.constants import MAX_INITCODE_SIZE\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .. import EOF_FORK_NAME\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-7480.md\"\nREFERENCE_SPEC_VERSION = \"3ee1334ef110420685f1c8ed63e80f9e1766c251\"\n\npytestmark = pytest.mark.valid_from(EOF_FORK_NAME)\n\nsmallest_runtime_subcontainer = Container(\n    name=\"Runtime Subcontainer\",\n    sections=[\n        Section.Code(code=Op.STOP),\n    ],\n)\n\n\ndef container_name(c: Container) -> str:\n    \"\"\"Return the name of the container for use in pytest ids.\"\"\"\n    if hasattr(c, \"name\") and c.name is not None:\n        return c.name\n    else:\n        return c.__class__.__name__\n\n\n@pytest.mark.parametrize(\n    \"container\",\n    [\n        Container(\n            name=\"empty_data_section\",\n            sections=[\n                Section.Code(\n                    code=Op.ADDRESS + Op.POP + Op.STOP,\n                ),\n                Section.Data(data=\"\"),\n            ],\n        ),\n        Container(\n            name=\"small_data_section\",\n            sections=[\n                Section.Code(\n                    code=Op.ADDRESS + Op.POP + Op.STOP,\n                ),\n                Section.Data(data=\"1122334455667788\" * 4),\n            ],\n        ),\n        pytest.param(\n            Container(\n                name=\"large_data_section\",\n                sections=[\n                    Section.Code(\n                        code=Op.ADDRESS + Op.POP + Op.STOP,\n                    ),\n                    Section.Data(data=\"1122334455667788\" * 3 * 1024),\n                ],\n            ),\n            marks=pytest.mark.eof_test_only(reason=\"initcode exceeds max size\"),\n        ),\n        pytest.param(\n            Container(\n                name=\"max_data_section\",\n                sections=[\n                    Section.Code(code=Op.STOP),\n                    # Hits the 49152 bytes limit for the entire container\n                    Section.Data(\n                        data=b\"\\x00\" * (MAX_INITCODE_SIZE - len(smallest_runtime_subcontainer))\n                    ),\n                ],\n            ),\n            marks=pytest.mark.eof_test_only(reason=\"initcode exceeds max size\"),\n        ),\n        Container(\n            name=\"DATALOADN_zero\",\n            sections=[\n                Section.Code(\n                    code=Op.DATALOADN[0] + Op.POP + Op.STOP,\n                ),\n                Section.Data(data=\"1122334455667788\" * 16),\n            ],\n        ),\n        Container(\n            name=\"DATALOADN_middle\",\n            sections=[\n                Section.Code(\n                    code=Op.DATALOADN[16] + Op.POP + Op.STOP,\n                ),\n                Section.Data(data=\"1122334455667788\" * 16),\n            ],\n        ),\n        Container(\n            name=\"DATALOADN_edge\",\n            sections=[\n                Section.Code(\n                    code=Op.DATALOADN[128 - 32] + Op.POP + Op.STOP,\n                ),\n                Section.Data(data=\"1122334455667788\" * 16),\n            ],\n        ),\n    ],\n    ids=container_name,\n)\ndef test_valid_containers_with_data_section(\n    eof_test: EOFTestFiller,\n    container: Container,\n) -> None:\n    \"\"\"Test EOF validation of valid containers with data sections.\"\"\"\n    assert container.validity_error is None, (\n        f\"Valid container with validity error: {container.validity_error}\"\n    )\n    eof_test(\n        container=container,\n    )\n\n\n@pytest.mark.parametrize(\n    \"container\",\n    [\n        Container(\n            name=\"DATALOADN_0_empty_data\",\n            sections=[\n                Section.Code(\n                    code=Op.DATALOADN[0] + Op.POP + Op.STOP,\n                ),\n            ],\n            validity_error=EOFException.INVALID_DATALOADN_INDEX,\n        ),\n        Container(\n            name=\"DATALOADN_max_empty_data\",\n            sections=[\n                Section.Code(\n                    code=Op.DATALOADN[0xFFFF - 32] + Op.POP + Op.STOP,\n                ),\n            ],\n            validity_error=EOFException.INVALID_DATALOADN_INDEX,\n        ),\n        Container(\n            name=\"DATALOADN_1_over_data\",\n            sections=[\n                Section.Code(\n                    code=Op.DATALOADN[1] + Op.POP + Op.STOP,\n                ),\n                Section.Data(b\"\\x00\"),\n            ],\n            validity_error=EOFException.INVALID_DATALOADN_INDEX,\n        ),\n        Container(\n            name=\"DATALOADN_32_over_data\",\n            sections=[\n                Section.Code(\n                    code=Op.DATALOADN[32] + Op.POP + Op.STOP,\n                ),\n                Section.Data(b\"\\xda\" * 32),\n            ],\n            validity_error=EOFException.INVALID_DATALOADN_INDEX,\n        ),\n        Container(\n            name=\"DATALOADN_0_data_31\",\n            sections=[\n                Section.Code(\n                    code=Op.DATALOADN[0] + Op.POP + Op.STOP,\n                ),\n                Section.Data(b\"\\xda\" * 31),\n            ],\n            validity_error=EOFException.INVALID_DATALOADN_INDEX,\n        ),\n        Container(\n            name=\"DATALOADN_32_data_63\",\n            sections=[\n                Section.Code(\n                    code=Op.DATALOADN[32] + Op.POP + Op.STOP,\n                ),\n                Section.Data(b\"\\xda\" * 63),\n            ],\n            validity_error=EOFException.INVALID_DATALOADN_INDEX,\n        ),\n        Container(\n            name=\"DATALOADN_max_imm\",\n            sections=[\n                Section.Code(\n                    code=Op.DATALOADN[0xFFFF] + Op.POP + Op.STOP,\n                ),\n                Section.Data(b\"\\xda\" * 32),\n            ],\n            validity_error=EOFException.INVALID_DATALOADN_INDEX,\n        ),\n        Container(\n            name=\"DATALOADN_max_small_data\",\n            sections=[\n                Section.Code(\n                    code=Op.DATALOADN[0xFFFF - 32] + Op.POP + Op.STOP,\n                ),\n                Section.Data(data=\"1122334455667788\" * 16),\n            ],\n            validity_error=EOFException.INVALID_DATALOADN_INDEX,\n        ),\n        Container(\n            name=\"DATALOADN_max_half_data\",\n            sections=[\n                Section.Code(\n                    code=Op.DATALOADN[0xFFFF - 32] + Op.POP + Op.STOP,\n                ),\n                Section.Data(data=(\"1122334455667788\" * 4 * 1024)[2:]),\n            ],\n            validity_error=EOFException.INVALID_DATALOADN_INDEX,\n        ),\n        pytest.param(\n            Container(\n                name=\"data_section_over_container_limit\",\n                sections=[\n                    Section.Code(code=Op.STOP),\n                    # Over the 49152 bytes limit for the entire container\n                    Section.Data(\n                        data=(b\"12345678\" * 6 * 1024)[len(smallest_runtime_subcontainer) - 1 :]\n                    ),\n                ],\n                validity_error=EOFException.CONTAINER_SIZE_ABOVE_LIMIT,\n            ),\n            marks=pytest.mark.eof_test_only(reason=\"initcode exceeds max size\"),\n        ),\n    ],\n    ids=container_name,\n)\ndef test_invalid_containers_with_data_section(\n    eof_test: EOFTestFiller,\n    container: Container,\n) -> None:\n    \"\"\"Test EOF validation of invalid containers with data sections.\"\"\"\n    assert container.validity_error is not None, \"Invalid container without validity error\"\n    eof_test(\n        container=container,\n        expect_exception=container.validity_error,\n    )\n\n\n@pytest.mark.parametrize(\n    \"container\",\n    [\n        Container(\n            name=\"imm0\",\n            sections=[\n                Section.Code(Op.DATALOADN),\n                Section.Data(b\"\\xff\" * 32),\n            ],\n        ),\n        Container(\n            name=\"imm1\",\n            sections=[\n                Section.Code(Op.DATALOADN + b\"\\x00\"),\n                Section.Data(b\"\\xff\" * 32),\n            ],\n        ),\n        Container(\n            name=\"imm_from_next_section\",\n            sections=[\n                Section.Code(\n                    Op.CALLF[1] + Op.JUMPF[2],\n                    max_stack_height=1,\n                ),\n                Section.Code(\n                    Op.DATALOADN + b\"\\x00\",\n                    code_outputs=1,\n                ),\n                Section.Code(\n                    Op.STOP,\n                ),\n                Section.Data(b\"\\xff\" * 32),\n            ],\n        ),\n    ],\n    ids=container_name,\n)\ndef test_dataloadn_truncated_immediate(\n    eof_test: EOFTestFiller,\n    container: Container,\n) -> None:\n    \"\"\"Test cases for DATALOADN instructions with truncated immediate bytes.\"\"\"\n    eof_test(container=container, expect_exception=EOFException.TRUNCATED_INSTRUCTION)\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip7480_data_section/test_data_opcodes.py",
    "content": "\"\"\"Execution of DATA* opcodes within EOF V1 containers tests.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_specs import EOFStateTestFiller\nfrom ethereum_test_tools import Account, Alloc, Environment, StateTestFiller, Transaction\nfrom ethereum_test_types.eof.v1 import Container, Section\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .. import EOF_FORK_NAME\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-7480.md\"\nREFERENCE_SPEC_VERSION = \"3ee1334ef110420685f1c8ed63e80f9e1766c251\"\n\npytestmark = pytest.mark.valid_from(EOF_FORK_NAME)\n\n\n@pytest.mark.parametrize(\"index\", [0, 1, 31, 32, 33, 63, 64])\n@pytest.mark.parametrize(\"suffix_len\", [0, 1, 31, 32, 24000])\ndef test_dataloadn(eof_state_test: EOFStateTestFiller, index: int, suffix_len: int) -> None:\n    \"\"\"Basic tests for DATALOADN execution.\"\"\"\n    sentinel = 0x8000000000000000000000000000000000000000000000000000000000000001\n    eof_state_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    Op.SSTORE(0, Op.DATALOADN[index]) + Op.STOP,\n                ),\n                Section.Data(\n                    index * b\"\\xbe\" + sentinel.to_bytes(32, byteorder=\"big\") + suffix_len * b\"\\xaf\"\n                ),\n            ],\n        ),\n        container_post=Account(storage={0: sentinel}),\n    )\n\n\ndef create_data_test(offset: int, datasize: int) -> tuple[Container, dict[int, int]]:\n    \"\"\"\n    Generate data load operators test cases based on load offset and data\n    section size.\n    \"\"\"\n    data = b\"\".join(i.to_bytes(length=2, byteorder=\"big\") for i in range(1, datasize // 2 + 1))\n    assert len(data) == datasize\n    overhang = min(32, offset + 32 - datasize)\n    answer = data[offset : offset + 32] if overhang <= 0 else data[offset:] + b\"\\x00\" * overhang\n    dataloadn_op = Op.DATALOADN[offset] if overhang <= 0 else Op.PUSH32[answer]\n\n    return (\n        Container(\n            sections=[\n                Section.Code(\n                    code=(\n                        Op.CALLF[1]\n                        + Op.CALLF[2]\n                        + Op.CALLF[3]\n                        + Op.CALLF[4]\n                        + Op.SSTORE(0, 1)\n                        + Op.STOP\n                    ),\n                ),\n                Section.Code(\n                    code=(Op.DATALOAD(offset) + Op.PUSH1(1) + Op.SSTORE + Op.RETF),\n                    code_inputs=0,\n                    code_outputs=0,\n                ),\n                Section.Code(\n                    code=(dataloadn_op + Op.PUSH1(2) + Op.SSTORE + Op.RETF),\n                    code_inputs=0,\n                    code_outputs=0,\n                ),\n                Section.Code(\n                    code=(Op.DATASIZE + Op.PUSH1(3) + Op.SSTORE + Op.RETF),\n                    code_inputs=0,\n                    code_outputs=0,\n                ),\n                Section.Code(\n                    code=(Op.DATACOPY(0, offset, 32) + Op.SSTORE(4, Op.MLOAD(0)) + Op.RETF),\n                    code_inputs=0,\n                    code_outputs=0,\n                ),\n                Section.Data(data),\n            ],\n        ),\n        {\n            0: 1,\n            1: int.from_bytes(answer, byteorder=\"big\"),\n            2: int.from_bytes(answer, byteorder=\"big\"),\n            3: datasize,\n            4: int.from_bytes(answer, byteorder=\"big\"),\n        },\n    )\n\n\n@pytest.mark.parametrize(\n    [\"offset\", \"datasize\"],\n    [\n        pytest.param(0, 0, id=\"empty_zero\"),\n        pytest.param(0, 2, id=\"short_zero\"),\n        pytest.param(0, 32, id=\"exact_zero\"),\n        pytest.param(0, 64, id=\"large_zero\"),\n        pytest.param(32, 0, id=\"empty_32\"),\n        pytest.param(32, 34, id=\"short_32\"),\n        pytest.param(32, 64, id=\"exact_32\"),\n        pytest.param(32, 96, id=\"large_32\"),\n        pytest.param(0x5BFE, 0, id=\"empty_23k\"),\n        pytest.param(0x5BFE, 0x5C00, id=\"short_23k\"),\n        pytest.param(0x5BE0, 0x5D00, id=\"exact_23k\"),\n        pytest.param(0x2345, 0x5C00, id=\"large_23k\"),\n        pytest.param(2**16 - 1, 32, id=\"u16_max\"),\n        pytest.param(2**16, 32, id=\"u16_max_plus_1\"),\n        pytest.param(2**32 - 1, 32, id=\"u32_max\"),\n        pytest.param(2**32, 32, id=\"u32_max_plus_1\"),\n        pytest.param(2**64 - 1, 32, id=\"u64_max\"),\n        pytest.param(2**64, 32, id=\"u64_max_plus_1\"),\n    ],\n)\ndef test_data_section_succeed(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    offset: int,\n    datasize: int,\n) -> None:\n    \"\"\"Test simple contracts that simply expect data section to succeed.\"\"\"\n    env = Environment()\n\n    (container, expected_storage) = create_data_test(offset, datasize)\n    callee_contract = pre.deploy_contract(code=container)\n    entry_point = pre.deploy_contract(\n        code=Op.SSTORE(0, Op.DELEGATECALL(Op.GAS, callee_contract, 0, 0, 0, 0)) + Op.STOP()\n    )\n    sender = pre.fund_eoa()\n\n    tx = Transaction(\n        to=entry_point,\n        gas_limit=50000000,\n        gas_price=10,\n        protected=False,\n        data=\"\",\n        sender=sender,\n    )\n\n    post = {entry_point: Account(storage=expected_storage)}\n\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip7480_data_section/test_datacopy_memory_expansion.py",
    "content": "\"\"\"Memory expansion tests for DATACOPY.\"\"\"\n\nfrom typing import Mapping, Tuple\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    Account,\n    Address,\n    Alloc,\n    Bytecode,\n    Environment,\n    StateTestFiller,\n    Storage,\n    Transaction,\n)\nfrom ethereum_test_types.eof.v1 import Container, Section\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .. import EOF_FORK_NAME\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-7480.md\"\nREFERENCE_SPEC_VERSION = \"3ee1334ef110420685f1c8ed63e80f9e1766c251\"\n\npytestmark = pytest.mark.valid_from(EOF_FORK_NAME)\n\n\n@pytest.fixture\ndef callee_bytecode(dest: int, src: int, length: int, data_section: bytes) -> Container:\n    \"\"\"Callee performs a single datacopy operation and then returns.\"\"\"\n    bytecode = Bytecode()\n\n    # Copy the initial memory\n    bytecode += Op.CALLDATACOPY(0x00, 0x00, Op.CALLDATASIZE())\n\n    # Pushes for the return operation\n    bytecode += Op.PUSH1(0x00) + Op.PUSH1(0x00)\n\n    # Perform the datacopy operation\n    bytecode += Op.DATACOPY(dest, src, length)\n\n    bytecode += Op.RETURN\n\n    return Container(sections=[Section.Code(code=bytecode), Section.Data(data=data_section)])\n\n\n@pytest.fixture\ndef subcall_exact_cost(\n    fork: Fork,\n    initial_memory: bytes,\n    dest: int,\n    length: int,\n) -> int:\n    \"\"\"\n    Return exact cost of the subcall, based on the initial memory and the\n    length of the copy.\n    \"\"\"\n    cost_memory_bytes = fork.memory_expansion_gas_calculator()\n\n    datacopy_cost = 3\n    datacopy_cost += 3 * ((length + 31) // 32)\n    if length > 0 and dest + length > len(initial_memory):\n        datacopy_cost += cost_memory_bytes(\n            new_bytes=dest + length, previous_bytes=len(initial_memory)\n        )\n\n    calldatacopy_cost = 3\n    calldatacopy_cost += 3 * ((len(initial_memory) + 31) // 32)\n    calldatacopy_cost += cost_memory_bytes(new_bytes=len(initial_memory))\n\n    pushes_cost = 3 * 7\n    calldatasize_cost = 2\n    return datacopy_cost + calldatacopy_cost + pushes_cost + calldatasize_cost\n\n\n@pytest.fixture\ndef bytecode_storage(\n    subcall_exact_cost: int,\n    successful: bool,\n    memory_expansion_address: Address,\n) -> Tuple[Bytecode, Storage.StorageDictType]:\n    \"\"\"\n    Prepare bytecode and storage for the test, based on the expected result of\n    the subcall (whether it succeeds or fails depending on the length of the\n    memory expansion).\n    \"\"\"\n    bytecode = Bytecode()\n    storage = {}\n\n    # Pass on the calldata\n    bytecode += Op.CALLDATACOPY(0x00, 0x00, Op.CALLDATASIZE())\n\n    subcall_gas = subcall_exact_cost if successful else subcall_exact_cost - 1\n\n    # Perform the subcall and store a one in the result location\n    bytecode += Op.SSTORE(\n        Op.CALL(subcall_gas, memory_expansion_address, 0, 0, Op.CALLDATASIZE(), 0, 0), 1\n    )\n    storage[int(successful)] = 1\n\n    return (bytecode, storage)\n\n\n@pytest.fixture\ndef tx_max_fee_per_gas() -> int:  # noqa: D103\n    return 7\n\n\n@pytest.fixture\ndef block_gas_limit() -> int:  # noqa: D103\n    return 100_000_000\n\n\n@pytest.fixture\ndef tx_gas_limit(  # noqa: D103\n    subcall_exact_cost: int,\n    block_gas_limit: int,\n) -> int:\n    return min(max(500_000, subcall_exact_cost * 2), block_gas_limit)\n\n\n@pytest.fixture\ndef env(  # noqa: D103\n    block_gas_limit: int,\n) -> Environment:\n    return Environment(gas_limit=block_gas_limit)\n\n\n@pytest.fixture\ndef caller_address(  # noqa: D103\n    pre: Alloc, bytecode_storage: Tuple[bytes, Storage.StorageDictType]\n) -> Address:\n    return pre.deploy_contract(code=bytecode_storage[0])\n\n\n@pytest.fixture\ndef memory_expansion_address(pre: Alloc, callee_bytecode: bytes) -> Address:  # noqa: D103\n    return pre.deploy_contract(code=callee_bytecode)\n\n\n@pytest.fixture\ndef sender(pre: Alloc, tx_max_fee_per_gas: int, tx_gas_limit: int) -> Address:  # noqa: D103\n    return pre.fund_eoa(tx_max_fee_per_gas * tx_gas_limit)\n\n\n@pytest.fixture\ndef tx(  # noqa: D103\n    sender: Address,\n    caller_address: Address,\n    initial_memory: bytes,\n    tx_max_fee_per_gas: int,\n    tx_gas_limit: int,\n) -> Transaction:\n    return Transaction(\n        sender=sender,\n        to=caller_address,\n        data=initial_memory,\n        gas_limit=tx_gas_limit,\n        max_fee_per_gas=tx_max_fee_per_gas,\n        max_priority_fee_per_gas=0,\n    )\n\n\n@pytest.fixture\ndef post(  # noqa: D103\n    caller_address: Address, bytecode_storage: Tuple[bytes, Storage.StorageDictType]\n) -> Mapping:\n    return {\n        caller_address: Account(storage=bytecode_storage[1]),\n    }\n\n\n@pytest.mark.parametrize(\n    \"dest,src,length\",\n    [\n        (0x00, 0x00, 0x01),\n        (0x100, 0x00, 0x01),\n        (0x1F, 0x00, 0x01),\n        (0x20, 0x00, 0x01),\n        (0x1000, 0x00, 0x01),\n        (0x1000, 0x00, 0x40),\n        (0x00, 0x00, 0x00),\n        (2**256 - 1, 0x00, 0x00),\n        (0x00, 2**256 - 1, 0x00),\n        (2**256 - 1, 2**256 - 1, 0x00),\n    ],\n    ids=[\n        \"single_byte_expansion\",\n        \"single_byte_expansion_2\",\n        \"single_byte_expansion_word_boundary\",\n        \"single_byte_expansion_word_boundary_2\",\n        \"multi_word_expansion\",\n        \"multi_word_expansion_2\",\n        \"zero_length_expansion\",\n        \"huge_dest_zero_length\",\n        \"huge_src_zero_length\",\n        \"huge_dest_huge_src_zero_length\",\n    ],\n)\n@pytest.mark.parametrize(\"successful\", [True, False])\n@pytest.mark.parametrize(\n    \"initial_memory\",\n    [\n        bytes(range(0x00, 0x100)),\n        bytes(),\n    ],\n    ids=[\n        \"from_existent_memory\",\n        \"from_empty_memory\",\n    ],\n)\n@pytest.mark.parametrize(\n    \"data_section\",\n    [\n        bytes(),\n        b\"\\xfc\",\n        bytes(range(0x00, 0x20)),\n        bytes(range(0x00, 0x100)),\n    ],\n    ids=[\"empty_data_section\", \"byte_data_section\", \"word_data_section\", \"large_data_section\"],\n)\ndef test_datacopy_memory_expansion(\n    state_test: StateTestFiller,\n    env: Environment,\n    pre: Alloc,\n    post: Mapping[str, Account],\n    tx: Transaction,\n) -> None:\n    \"\"\"\n    Perform DATACOPY operations that expand the memory, and verify the gas it\n    costs to do so.\n    \"\"\"\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\n@pytest.mark.parametrize(\n    \"dest,src,length\",\n    [\n        pytest.param(2**256 - 1, 0x00, 0x01, id=\"max_dest_single_byte_expansion\"),\n        pytest.param(2**256 - 2, 0x00, 0x01, id=\"max_dest_minus_one_single_byte_expansion\"),\n        pytest.param(2**255 - 1, 0x00, 0x01, id=\"half_max_dest_single_byte_expansion\"),\n        pytest.param(0x00, 0x00, 2**256 - 1, id=\"max_length_expansion\"),\n        pytest.param(0x00, 0x00, 2**256 - 2, id=\"max_length_minus_one_expansion\"),\n        pytest.param(0x00, 0x00, 2**255 - 1, id=\"half_max_length_expansion\"),\n        pytest.param(0x1FFFF20, 0x00, 0x01, id=\"32-bit-mem-cost_offset\"),\n        pytest.param(0x2D412E0, 0x00, 0x01, id=\"33-bit-mem-cost_offset\"),\n        pytest.param(0x00, 0x00, 0x1FFFF20, id=\"32-bit-mem-cost_size\"),\n        pytest.param(0x00, 0x00, 0x2D412E0, id=\"33-bit-mem-cost_size\"),\n        pytest.param(0x1FFFFFFFF20, 0x00, 0x01, id=\"64-bit-mem-cost_offset\"),\n        pytest.param(0x2D413CCCF00, 0x00, 0x01, id=\"65-bit-mem-cost_offset\"),\n        pytest.param(0x00, 0x00, 0x1FFFFFFFF20, id=\"64-bit-mem-cost_size\"),\n        pytest.param(0x00, 0x00, 0x2D413CCCF00, id=\"65-bit-mem-cost_size\"),\n    ],\n)\n@pytest.mark.parametrize(\n    \"subcall_exact_cost\",\n    [2**128 - 1],\n    ids=[\"\"],\n)  # Limit subcall gas, otherwise it would be impossibly large\n@pytest.mark.parametrize(\"successful\", [False])\n@pytest.mark.parametrize(\n    \"initial_memory\",\n    [\n        bytes(range(0x00, 0x100)),\n        bytes(),\n    ],\n    ids=[\n        \"from_existent_memory\",\n        \"from_empty_memory\",\n    ],\n)\n@pytest.mark.parametrize(\n    \"data_section\",\n    [\n        bytes(),\n        b\"\\xfc\",\n        bytes(range(0x00, 0x20)),\n        bytes(range(0x00, 0x100)),\n    ],\n    ids=[\"empty_data_section\", \"byte_data_section\", \"word_data_section\", \"large_data_section\"],\n)\ndef test_datacopy_huge_memory_expansion(\n    state_test: StateTestFiller,\n    env: Environment,\n    pre: Mapping[str, Account],\n    post: Mapping[str, Account],\n    tx: Transaction,\n) -> None:\n    \"\"\"\n    Perform DATACOPY operations that expand the memory by huge amounts, and\n    verify that it correctly runs out of gas.\n    \"\"\"\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip7620_eof_create/__init__.py",
    "content": "\"\"\"\nTest cases for EOF Contract Creation for EIP-7620.\n\nEIP-7620 replaces `CREATE` and `CREATE2` with `EOFCREATE` for deploying\ncontracts in the EOF format.\n\nFull specification:\n[EIP-7620: EOF Contract Creation](https://eips.ethereum.org/EIPS/eip-7620).\n\nOpcodes introduced: `EOFCREATE` (`0xEC`), `RETURNCODE` (`0xEE`).\n\nEOFCREATE, RETURNCODE, and container tests.\n\nevmone tests not ported:\n- create_tx_with_eof_initcode: This calls it invalid, it is now the way to\n                               add EOF contacts to state\n- eofcreate_extcall_returncode: Per the new initcode\n                                mode tests you cannot have RETURNCODE in a\n                                deployed contract\n- eofcreate_dataloadn_referring_to_auxdata: covered by\n                     tests.unscheduled.eip7480_data_section.\n                     test_data_opcodes.test_data_section_succeed\n- eofcreate_initcontainer_return: RETURN is banned in initcode containers\n- eofcreate_initcontainer_stop: STOP is banned in initcode containers\n- All TXCREATE tests.\n\"\"\"\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip7620_eof_create/helpers.py",
    "content": "\"\"\"A collection of contracts used in 7620 EOF tests.\"\"\"\n\nimport itertools\n\nfrom ethereum_test_tools import Opcodes as Op\nfrom ethereum_test_types.eof.v1 import Container, Section\n\n\"\"\"Storage addresses for common testing fields\"\"\"\n_slot = itertools.count()\nnext(_slot)  # don't use slot 0\nslot_code_worked = next(_slot)\nslot_code_should_fail = next(_slot)\nslot_create_address = next(_slot)\nslot_calldata = next(_slot)\nslot_call_result = next(_slot)\nslot_returndata = next(_slot)\nslot_returndata_size = next(_slot)\nslot_max_depth = next(_slot)\nslot_call_or_create = next(_slot)\nslot_counter = next(_slot)\nslot_data_load = next(_slot)\nslot_all_subcall_gas_gone = next(_slot)\nslot_a = next(_slot)\nslot_b = next(_slot)\n\nslot_last_slot = next(_slot)\n\nvalue_code_worked = 0x2015\nvalue_canary_should_not_change = 0x2019\nvalue_canary_to_be_overwritten = 0x2009\nvalue_long_value = b\"abcdefghijklmnopqrstuvwxyz123456\"\n\nsmallest_runtime_subcontainer = Container.Code(code=Op.STOP, name=\"Runtime Subcontainer\")\n\nsmallest_initcode_subcontainer = Container(\n    name=\"Initcode Subcontainer\",\n    sections=[\n        Section.Code(code=Op.RETURNCODE[0](0, 0)),\n        Section.Container(container=smallest_runtime_subcontainer),\n    ],\n)\nsmallest_initcode_subcontainer_gas = 2 * 3\n\naborting_container = Container.Code(Op.INVALID, name=\"Aborting Container\")\nreverting_container = Container.Code(Op.REVERT(0, 0), name=\"Reverting Container\")\nexpensively_reverting_container = Container.Code(\n    Op.SHA3(0, 32) + Op.REVERT(0, 0), name=\"Expensively Reverting Container\"\n)\nexpensively_reverting_container_gas = 2 * 3 + 30 + 3 + 6 + 2 * 3\nbig_runtime_subcontainer = Container.Code(Op.NOOP * 10000 + Op.STOP, name=\"Big Subcontainer\")\n\nbigger_initcode_subcontainer_gas = 3 + 4 + 2 * 3\nbigger_initcode_subcontainer = Container(\n    name=\"Bigger Initcode Subcontainer\",\n    sections=[\n        Section.Code(\n            code=Op.RJUMPI[len(Op.RETURNCODE[0](0, 0))](1)\n            + Op.RETURNCODE[0](0, 0)\n            + Op.RETURNCODE[1](0, 0)\n        ),\n        Section.Container(container=smallest_runtime_subcontainer),\n        Section.Container(container=smallest_runtime_subcontainer),\n    ],\n)\n\ndata_runtime_container = smallest_runtime_subcontainer.copy()\ndata_runtime_container.sections.append(Section.Data(\"0x00\"))\n\ndata_initcode_subcontainer = Container(\n    name=\"Data Initcode Subcontainer\",\n    sections=[\n        Section.Code(code=Op.RETURNCODE[0](0, 0)),\n        Section.Container(container=data_runtime_container),\n    ],\n)\n\ndata_appending_initcode_subcontainer = Container(\n    name=\"Data Appending Initcode Subcontainer\",\n    sections=[\n        Section.Code(code=Op.RETURNCODE[0](0, 1)),\n        Section.Container(container=smallest_runtime_subcontainer),\n    ],\n)\ndata_appending_initcode_subcontainer_gas = 2 * 3 + 3\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip7620_eof_create/spec.py",
    "content": "\"\"\"EOF V1 Constants used throughout all tests.\"\"\"\n\nEOFCREATE_FAILURE = 0\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip7620_eof_create/test_eofcreate.py",
    "content": "\"\"\"Test good and bad EOFCREATE cases.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_base_types import Storage\nfrom ethereum_test_base_types.base_types import Address\nfrom ethereum_test_exceptions import EOFException\nfrom ethereum_test_specs import EOFTestFiller\nfrom ethereum_test_tools import (\n    Account,\n    Alloc,\n    Environment,\n    StateTestFiller,\n    Transaction,\n    compute_eofcreate_address,\n)\nfrom ethereum_test_types.eof.v1 import Container, Section\nfrom ethereum_test_vm import Bytecode\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .. import EOF_FORK_NAME\nfrom ..eip7069_extcall.spec import EXTCALL_SUCCESS\nfrom .helpers import (\n    slot_call_result,\n    slot_calldata,\n    slot_code_worked,\n    slot_create_address,\n    slot_data_load,\n    slot_last_slot,\n    slot_returndata_size,\n    smallest_initcode_subcontainer,\n    smallest_runtime_subcontainer,\n    value_canary_to_be_overwritten,\n    value_code_worked,\n    value_long_value,\n)\nfrom .spec import EOFCREATE_FAILURE\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-7620.md\"\nREFERENCE_SPEC_VERSION = \"52ddbcdddcf72dd72427c319f2beddeb468e1737\"\n\npytestmark = pytest.mark.valid_from(EOF_FORK_NAME)\n\n\ndef test_simple_eofcreate(\n    state_test: StateTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"Verifies a simple EOFCREATE case.\"\"\"\n    env = Environment()\n    sender = pre.fund_eoa()\n    contract_address = pre.deploy_contract(\n        code=Container(\n            sections=[\n                Section.Code(\n                    code=Op.SSTORE(0, Op.EOFCREATE[0](0, 0, 0, 0)) + Op.STOP,\n                ),\n                Section.Container(container=smallest_initcode_subcontainer),\n            ],\n        ),\n        storage={0: 0xB17D},  # a canary to be overwritten\n    )\n    # Storage in 0 should have the address,\n    post = {contract_address: Account(storage={0: compute_eofcreate_address(contract_address, 0)})}\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=10_000_000,\n        gas_price=10,\n        protected=False,\n        sender=sender,\n    )\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\ndef test_eofcreate_then_dataload(\n    state_test: StateTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    Verifies that a contract returned with auxdata does not overwrite the\n    parent data.\n    \"\"\"\n    env = Environment()\n    sender = pre.fund_eoa()\n    small_auxdata_container = Container(\n        sections=[\n            Section.Code(code=Op.RETURNCODE[0](0, 32)),\n            Section.Container(container=smallest_runtime_subcontainer),\n        ],\n    )\n    contract_address = pre.deploy_contract(\n        code=Container(\n            sections=[\n                Section.Code(\n                    code=Op.SSTORE(0, Op.EOFCREATE[0](0, 0, 0, 0))\n                    + Op.SSTORE(slot_data_load, Op.DATALOAD(0))\n                    + Op.STOP,\n                ),\n                Section.Container(\n                    container=small_auxdata_container,\n                ),\n                Section.Data(data=value_long_value),\n            ],\n        ),\n        storage={slot_data_load: value_canary_to_be_overwritten},\n    )\n\n    post = {\n        contract_address: Account(\n            storage={\n                0: compute_eofcreate_address(contract_address, 0),\n                slot_data_load: value_long_value,\n            }\n        )\n    }\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=10_000_000,\n        gas_price=10,\n        protected=False,\n        sender=sender,\n    )\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\ndef test_eofcreate_then_call(\n    state_test: StateTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    Verifies a simple EOFCREATE case, and then calls the deployed contract.\n    \"\"\"\n    env = Environment()\n    callable_contract = Container(\n        sections=[\n            Section.Code(\n                code=Op.SSTORE(slot_code_worked, value_code_worked) + Op.STOP,\n            ),\n        ]\n    )\n    callable_contract_initcode = Container(\n        sections=[\n            Section.Code(\n                code=Op.RETURNCODE[0](0, 0),\n            ),\n            Section.Container(container=callable_contract),\n        ]\n    )\n\n    sender = pre.fund_eoa()\n    contract_address = pre.deploy_contract(\n        Container(\n            sections=[\n                Section.Code(\n                    code=Op.SSTORE(slot_create_address, Op.EOFCREATE[0](0, 0, 0, 0))\n                    + Op.EXTCALL(Op.SLOAD(slot_create_address), 0, 0, 0)\n                    + Op.SSTORE(slot_code_worked, value_code_worked)\n                    + Op.STOP,\n                ),\n                Section.Container(container=callable_contract_initcode),\n            ],\n        )\n    )\n\n    callable_address = compute_eofcreate_address(contract_address, 0)\n\n    # Storage in 0 should have the address,\n    #\n    post = {\n        contract_address: Account(\n            storage={slot_create_address: callable_address, slot_code_worked: value_code_worked}\n        ),\n        callable_address: Account(storage={slot_code_worked: value_code_worked}),\n    }\n\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=10_000_000,\n        gas_price=10,\n        protected=False,\n        sender=sender,\n    )\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.parametrize(\n    \"auxdata_bytes\",\n    [\n        pytest.param(b\"\", id=\"zero\"),\n        pytest.param(b\"aabbcc\", id=\"short\"),\n        pytest.param(b\"aabbccddeef\", id=\"one_byte_short\"),\n        pytest.param(b\"aabbccddeeff\", id=\"exact\"),\n        pytest.param(b\"aabbccddeeffg\", id=\"one_byte_long\"),\n        pytest.param(b\"aabbccddeeffgghhii\", id=\"extra\"),\n    ],\n)\ndef test_auxdata_variations(state_test: StateTestFiller, pre: Alloc, auxdata_bytes: bytes) -> None:\n    \"\"\"Verifies that auxdata bytes are correctly handled in RETURNCODE.\"\"\"\n    env = Environment()\n    auxdata_size = len(auxdata_bytes)\n    pre_deploy_header_data_size = 18\n    pre_deploy_data = b\"AABBCC\"\n    deploy_success = len(auxdata_bytes) + len(pre_deploy_data) >= pre_deploy_header_data_size\n\n    runtime_subcontainer = Container(\n        name=\"Runtime Subcontainer with truncated data\",\n        sections=[\n            Section.Code(code=Op.STOP),\n            Section.Data(data=pre_deploy_data, custom_size=pre_deploy_header_data_size),\n        ],\n    )\n\n    initcode_subcontainer = Container(\n        name=\"Initcode Subcontainer\",\n        sections=[\n            Section.Code(\n                code=Op.MSTORE(0, Op.PUSH32(auxdata_bytes.ljust(32, b\"\\0\")))\n                + Op.RETURNCODE[0](0, auxdata_size),\n            ),\n            Section.Container(container=runtime_subcontainer),\n        ],\n    )\n\n    sender = pre.fund_eoa()\n    contract_address = pre.deploy_contract(\n        code=Container(\n            sections=[\n                Section.Code(\n                    code=Op.SSTORE(slot_create_address, Op.EOFCREATE[0](0, 0, 0, 0)) + Op.STOP,\n                ),\n                Section.Container(container=initcode_subcontainer),\n            ]\n        ),\n        storage={slot_create_address: value_canary_to_be_overwritten},\n    )\n\n    # Storage in 0 should have the address,\n    post = {\n        contract_address: Account(\n            storage={\n                slot_create_address: compute_eofcreate_address(contract_address, 0)\n                if deploy_success\n                else b\"\\0\"\n            }\n        )\n    }\n\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=10_000_000,\n        gas_price=10,\n        protected=False,\n        sender=sender,\n    )\n\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\ndef test_calldata(state_test: StateTestFiller, pre: Alloc) -> None:\n    \"\"\"Verifies CALLDATA passing through EOFCREATE.\"\"\"\n    env = Environment()\n\n    initcode_subcontainer = Container(\n        name=\"Initcode Subcontainer\",\n        sections=[\n            Section.Code(\n                code=Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE)\n                + Op.SSTORE(slot_calldata, Op.MLOAD(0))\n                + Op.RETURNCODE[0](0, Op.CALLDATASIZE),\n            ),\n            Section.Container(container=smallest_runtime_subcontainer),\n        ],\n    )\n\n    calldata_size = 32\n    calldata = b\"\\x45\" * calldata_size\n    sender = pre.fund_eoa()\n    contract_address = pre.deploy_contract(\n        code=Container(\n            sections=[\n                Section.Code(\n                    code=Op.MSTORE(0, Op.PUSH32(calldata))\n                    + Op.SSTORE(slot_create_address, Op.EOFCREATE[0](input_size=calldata_size))\n                    + Op.STOP,\n                ),\n                Section.Container(container=initcode_subcontainer),\n            ]\n        )\n    )\n\n    # deployed contract is smallest plus data\n    deployed_contract = Container(\n        name=\"deployed contract\",\n        sections=[\n            *smallest_runtime_subcontainer.sections,\n            Section.Data(data=calldata),\n        ],\n    )\n    # factory contract Storage in 0 should have the created address,\n    # created contract storage in 0 should have the calldata\n    created_address = compute_eofcreate_address(contract_address, 0)\n    post = {\n        contract_address: Account(storage={slot_create_address: created_address}),\n        created_address: Account(code=deployed_contract, storage={slot_calldata: calldata}),\n    }\n\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=10_000_000,\n        gas_price=10,\n        protected=False,\n        sender=sender,\n    )\n\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\ndef test_eofcreate_in_initcode(\n    state_test: StateTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    Verifies an EOFCREATE occurring within initcode creates that contract.\n    \"\"\"\n    nested_initcode_subcontainer = Container(\n        sections=[\n            Section.Code(\n                code=Op.SSTORE(slot_create_address, Op.EOFCREATE[0](0, 0, 0, 0))\n                + Op.SSTORE(slot_code_worked, value_code_worked)\n                + Op.RETURNCODE[1](0, 0),\n            ),\n            Section.Container(container=smallest_initcode_subcontainer),\n            Section.Container(container=smallest_runtime_subcontainer),\n        ]\n    )\n\n    env = Environment()\n    sender = pre.fund_eoa()\n    contract_address = pre.deploy_contract(\n        code=Container(\n            sections=[\n                Section.Code(\n                    code=Op.SSTORE(slot_create_address, Op.EOFCREATE[0](0, 0, 0, 0))\n                    + Op.SSTORE(slot_code_worked, value_code_worked)\n                    + Op.STOP,\n                ),\n                Section.Container(container=nested_initcode_subcontainer),\n            ]\n        )\n    )\n\n    outer_address = compute_eofcreate_address(contract_address, 0)\n    inner_address = compute_eofcreate_address(outer_address, 0)\n    post = {\n        contract_address: Account(\n            storage={slot_create_address: outer_address, slot_code_worked: value_code_worked}\n        ),\n        outer_address: Account(\n            storage={slot_create_address: inner_address, slot_code_worked: value_code_worked}\n        ),\n    }\n\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=10_000_000,\n        gas_price=10,\n        protected=False,\n        sender=sender,\n    )\n\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\ndef test_eofcreate_in_initcode_reverts(\n    state_test: StateTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    Verifies an EOFCREATE occurring in an initcode is rolled back when the\n    initcode reverts.\n    \"\"\"\n    nested_initcode_subcontainer = Container(\n        sections=[\n            Section.Code(\n                code=Op.SSTORE(slot_create_address, Op.EOFCREATE[0](0, 0, 0, 0))\n                + Op.SSTORE(slot_code_worked, value_code_worked)\n                + Op.REVERT(0, 0),\n            ),\n            Section.Container(container=smallest_initcode_subcontainer),\n        ]\n    )\n\n    env = Environment()\n    sender = pre.fund_eoa()\n    contract_address = pre.deploy_contract(\n        code=Container(\n            sections=[\n                Section.Code(\n                    code=Op.SSTORE(slot_create_address, Op.EOFCREATE[0](0, 0, 0, 0))\n                    + Op.SSTORE(slot_code_worked, value_code_worked)\n                    + Op.STOP,\n                ),\n                Section.Container(container=nested_initcode_subcontainer),\n            ]\n        ),\n        storage={slot_create_address: value_canary_to_be_overwritten},\n    )\n\n    outer_address = compute_eofcreate_address(contract_address, 0)\n    inner_address = compute_eofcreate_address(outer_address, 0)\n    post = {\n        contract_address: Account(\n            storage={\n                slot_create_address: 0,\n                slot_code_worked: value_code_worked,\n            }\n        ),\n        outer_address: Account.NONEXISTENT,\n        inner_address: Account.NONEXISTENT,\n    }\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=10_000_000,\n        gas_price=10,\n        protected=False,\n        sender=sender,\n    )\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\ndef test_return_data_cleared(\n    state_test: StateTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    Verifies the return data is not reused from a extcall but is cleared upon\n    eofcreate.\n    \"\"\"\n    env = Environment()\n    value_return_canary = 0x4158675309\n    value_return_canary_size = 5\n    callable_address = pre.deploy_contract(\n        code=Container(\n            sections=[\n                Section.Code(\n                    code=Op.MSTORE(0, value_return_canary)\n                    + Op.RETURN(0, value_return_canary_size),\n                )\n            ]\n        )\n    )\n\n    slot_returndata_size_2 = slot_last_slot * 2 + slot_returndata_size\n    sender = pre.fund_eoa()\n    contract_address = pre.deploy_contract(\n        code=Container(\n            sections=[\n                Section.Code(\n                    code=Op.SSTORE(slot_call_result, Op.EXTCALL(callable_address, 0, 0, 0))\n                    + Op.SSTORE(slot_returndata_size, Op.RETURNDATASIZE)\n                    + Op.SSTORE(slot_create_address, Op.EOFCREATE[0](0, 0, 0, 0))\n                    + Op.SSTORE(slot_returndata_size_2, Op.RETURNDATASIZE)\n                    + Op.SSTORE(slot_code_worked, value_code_worked)\n                    + Op.STOP,\n                ),\n                Section.Container(container=smallest_initcode_subcontainer),\n            ],\n        )\n    )\n\n    new_contract_address = compute_eofcreate_address(contract_address, 0)\n    post = {\n        contract_address: Account(\n            storage={\n                slot_call_result: EXTCALL_SUCCESS,\n                slot_returndata_size: value_return_canary_size,\n                slot_create_address: new_contract_address,\n                slot_returndata_size_2: 0,\n                slot_code_worked: value_code_worked,\n            },\n            nonce=2,\n        ),\n        callable_address: Account(nonce=1),\n        new_contract_address: Account(nonce=1),\n    }\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=10_000_000,\n        gas_price=10,\n        protected=False,\n        sender=sender,\n    )\n\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\ndef test_address_collision(\n    state_test: StateTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"Tests address collision.\"\"\"\n    env = Environment(\n        gas_limit=300_000_000_000,\n    )\n\n    slot_create_address_2 = slot_last_slot * 2 + slot_create_address\n    slot_create_address_3 = slot_last_slot * 3 + slot_create_address\n    sender = pre.fund_eoa()\n    contract_address = pre.deploy_contract(\n        code=Container(\n            sections=[\n                Section.Code(\n                    code=Op.SSTORE(slot_create_address, Op.EOFCREATE[0](0, 0, 0, 0))\n                    + Op.SSTORE(slot_create_address_2, Op.EOFCREATE[0](0, 0, 0, 0))\n                    + Op.SSTORE(slot_create_address_3, Op.EOFCREATE[0](salt=1))\n                    + Op.SSTORE(slot_code_worked, value_code_worked)\n                    + Op.STOP,\n                ),\n                Section.Container(container=smallest_initcode_subcontainer),\n            ],\n        )\n    )\n    salt_zero_address = compute_eofcreate_address(contract_address, 0)\n    salt_one_address = compute_eofcreate_address(contract_address, 1)\n\n    # Hard-code address for collision, no other way to do this.\n    # We should mark tests that do this, and fail on unmarked tests.\n    pre[salt_one_address] = Account(balance=1, nonce=1)\n\n    post = {\n        contract_address: Account(\n            storage={\n                slot_create_address: salt_zero_address,\n                # had an in-transaction collision\n                slot_create_address_2: EOFCREATE_FAILURE,\n                # had a pre-existing collision\n                slot_create_address_3: EOFCREATE_FAILURE,\n                slot_code_worked: value_code_worked,\n            }\n        )\n    }\n\n    # Multiple create fails is expensive, use an absurd amount of gas\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=300_000_000_000,\n        gas_price=10,\n        protected=False,\n        sender=sender,\n    )\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\ndef test_eofcreate_revert_eof_returndata(\n    state_test: StateTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    Verifies the return data is not being deployed, even if happens to be valid\n    EOF.\n    \"\"\"\n    env = Environment()\n    code_reverts_with_calldata = Container(\n        name=\"Initcode Subcontainer reverting with its calldata\",\n        sections=[\n            Section.Code(\n                code=Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE) + Op.REVERT(0, Op.CALLDATASIZE),\n            ),\n        ],\n    )\n\n    sender = pre.fund_eoa()\n    salt = 0\n    contract_address = pre.deploy_contract(\n        code=Container(\n            sections=[\n                Section.Code(\n                    code=Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE)\n                    + Op.SSTORE(\n                        slot_create_address, Op.EOFCREATE[0](salt=salt, input_size=Op.CALLDATASIZE)\n                    )\n                    + Op.SSTORE(slot_returndata_size, Op.RETURNDATASIZE)\n                    + Op.STOP,\n                ),\n                Section.Container(container=code_reverts_with_calldata),\n            ],\n        ),\n        storage={slot_create_address: value_canary_to_be_overwritten},\n    )\n    eof_create_address = compute_eofcreate_address(contract_address, salt)\n\n    post = {\n        contract_address: Account(\n            storage={\n                slot_create_address: 0,\n                slot_returndata_size: len(smallest_runtime_subcontainer),\n            },\n        ),\n        eof_create_address: Account.NONEXISTENT,\n    }\n\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=1_000_000,\n        sender=sender,\n        # Simplest possible valid EOF container, which is going to be\n        # revert-returned from initcode and must not end up being deployed.\n        data=smallest_runtime_subcontainer,\n    )\n\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.parametrize(\"index\", [0, 1, 255], ids=lambda x: x)\ndef test_eofcreate_invalid_index(\n    eof_test: EOFTestFiller,\n    index: int,\n) -> None:\n    \"\"\"EOFCREATE referring non-existent container section index.\"\"\"\n    container = Container.Code(code=Op.EOFCREATE[index](0, 0, 0, 0) + Op.STOP)\n    if index != 0:\n        container.sections.append(Section.Container(container=Container.Code(Op.INVALID)))\n\n    eof_test(\n        container=container,\n        expect_exception=EOFException.INVALID_CONTAINER_SECTION_INDEX,\n    )\n\n\ndef test_eofcreate_invalid_truncated_immediate(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"EOFCREATE instruction with missing immediate byte.\"\"\"\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(Op.PUSH0 * 4 + Op.EOFCREATE),\n                Section.Container(Container.Code(Op.INVALID)),\n            ],\n        ),\n        expect_exception=EOFException.TRUNCATED_INSTRUCTION,\n    )\n\n\n@pytest.mark.parametrize(\n    [\"data_len\", \"data_section_size\"],\n    [\n        (0, 1),\n        (0, 0xFFFF),\n        (2, 3),\n        (2, 0xFFFF),\n    ],\n)\ndef test_eofcreate_truncated_container(\n    eof_test: EOFTestFiller,\n    data_len: int,\n    data_section_size: int,\n) -> None:\n    \"\"\"\n    EOFCREATE instruction targeting a container with truncated data section.\n    \"\"\"\n    assert data_len < data_section_size\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(Op.EOFCREATE[0](0, 0, 0, 0) + Op.STOP),\n                Section.Container(\n                    Container(\n                        sections=[\n                            Section.Code(Op.INVALID),\n                            Section.Data(b\"\\xda\" * data_len, custom_size=data_section_size),\n                        ],\n                    )\n                ),\n            ],\n        ),\n        expect_exception=EOFException.EOFCREATE_WITH_TRUNCATED_CONTAINER,\n    )\n\n\n@pytest.mark.parametrize(\n    [\"destination_code\", \"expected_result\"],\n    [\n        pytest.param(Op.ADDRESS, \"destination\"),\n        pytest.param(Op.CALLER, \"caller\"),\n        pytest.param(Op.CALLVALUE, \"eofcreate_value\"),\n        pytest.param(Op.ORIGIN, \"sender\"),\n        pytest.param(Op.SELFBALANCE, \"selfbalance\"),\n        pytest.param(Op.BALANCE(Op.CALLER), \"factorybalance\"),\n    ],\n)\ndef test_eofcreate_context(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    destination_code: Bytecode,\n    expected_result: str,\n) -> None:\n    \"\"\"Test EOFCREATE's initcode context instructions.\"\"\"\n    env = Environment()\n    sender = pre.fund_eoa()\n    value = 0x1123\n    eofcreate_value = 0x13\n\n    initcode = Container(\n        sections=[\n            Section.Code(Op.SSTORE(slot_call_result, destination_code) + Op.RETURNCODE[0](0, 0)),\n            Section.Container(smallest_runtime_subcontainer),\n        ]\n    )\n\n    factory_contract = Container(\n        sections=[\n            Section.Code(\n                Op.SSTORE(slot_code_worked, value_code_worked)\n                + Op.EOFCREATE[0](value=eofcreate_value)\n                + Op.STOP\n            ),\n            Section.Container(initcode),\n        ]\n    )\n    factory_address = pre.deploy_contract(factory_contract)\n\n    destination_contract_address = compute_eofcreate_address(factory_address, 0)\n\n    tx = Transaction(sender=sender, to=factory_address, gas_limit=200_000, value=value)\n\n    expected_bytes: Address | int\n    if expected_result == \"destination\":\n        expected_bytes = destination_contract_address\n    elif expected_result == \"caller\":\n        expected_bytes = factory_address\n    elif expected_result == \"sender\":\n        expected_bytes = sender\n    elif expected_result == \"eofcreate_value\":\n        expected_bytes = eofcreate_value\n    elif expected_result == \"selfbalance\":\n        expected_bytes = eofcreate_value\n    elif expected_result == \"factorybalance\":\n        # Factory receives value from sender and passes on eofcreate_value as\n        # endowment.\n        expected_bytes = value - eofcreate_value\n    else:\n        raise TypeError(\"Unexpected expected_result\", expected_result)\n\n    calling_storage = {\n        slot_code_worked: value_code_worked,\n    }\n    destination_contract_storage = {\n        slot_call_result: expected_bytes,\n    }\n\n    post = {\n        factory_address: Account(storage=calling_storage, balance=value - eofcreate_value),\n        destination_contract_address: Account(\n            storage=destination_contract_storage, balance=eofcreate_value\n        ),\n    }\n\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\ndef test_eofcreate_memory_context(\n    state_test: StateTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    Verifies an EOFCREATE frame enjoys a separate EVM memory from its caller\n    frame.\n    \"\"\"\n    env = Environment()\n    destination_storage = Storage()\n    contract_storage = Storage()\n    initcontainer = Container(\n        sections=[\n            Section.Code(\n                Op.SSTORE(destination_storage.store_next(value_code_worked), value_code_worked)\n                + Op.SSTORE(destination_storage.store_next(0), Op.MSIZE())\n                + Op.SSTORE(destination_storage.store_next(0), Op.MLOAD(0))\n                + Op.MSTORE(0, 2)\n                + Op.MSTORE(32, 2)\n                + Op.RETURNCODE[0](0, 0)\n            ),\n            Section.Container(smallest_runtime_subcontainer),\n        ]\n    )\n    contract_address = pre.deploy_contract(\n        code=Container(\n            sections=[\n                Section.Code(\n                    Op.SSTORE(contract_storage.store_next(value_code_worked), value_code_worked)\n                    + Op.MSTORE(0, 1)\n                    + Op.EOFCREATE[0](0, 0, 0, 0)\n                    + Op.SSTORE(contract_storage.store_next(32), Op.MSIZE())\n                    + Op.SSTORE(contract_storage.store_next(1), Op.MLOAD(0))\n                    + Op.SSTORE(contract_storage.store_next(0), Op.MLOAD(32))\n                    + Op.STOP,\n                ),\n                Section.Container(initcontainer),\n            ],\n        ),\n    )\n    destination_contract_address = compute_eofcreate_address(contract_address, 0)\n    post = {\n        contract_address: Account(storage=contract_storage),\n        destination_contract_address: Account(storage=destination_storage),\n    }\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=200_000,\n        sender=pre.fund_eoa(),\n    )\n    state_test(env=env, pre=pre, post=post, tx=tx)\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip7620_eof_create/test_eofcreate_failures.py",
    "content": "\"\"\"Test good and bad EOFCREATE cases.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_base_types.base_types import Address\nfrom ethereum_test_tools import (\n    Account,\n    Alloc,\n    Environment,\n    StateTestFiller,\n    Transaction,\n    compute_eofcreate_address,\n)\nfrom ethereum_test_types.eof.v1 import Container, Section\nfrom ethereum_test_types.eof.v1.constants import MAX_BYTECODE_SIZE, MAX_INITCODE_SIZE\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .. import EOF_FORK_NAME\nfrom ..eip7069_extcall.spec import EXTCALL_FAILURE, EXTCALL_REVERT, LEGACY_CALL_FAILURE\nfrom .helpers import (\n    aborting_container,\n    slot_call_or_create,\n    slot_call_result,\n    slot_code_should_fail,\n    slot_code_worked,\n    slot_counter,\n    slot_create_address,\n    slot_max_depth,\n    slot_returndata,\n    slot_returndata_size,\n    smallest_initcode_subcontainer,\n    smallest_runtime_subcontainer,\n    value_canary_should_not_change,\n    value_code_worked,\n)\nfrom .spec import EOFCREATE_FAILURE\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-7620.md\"\nREFERENCE_SPEC_VERSION = \"52ddbcdddcf72dd72427c319f2beddeb468e1737\"\n\npytestmark = pytest.mark.valid_from(EOF_FORK_NAME)\n\n\n@pytest.mark.parametrize(\n    \"revert\",\n    [\n        pytest.param(b\"\", id=\"empty\"),\n        pytest.param(b\"\\x08\\xc3\\x79\\xa0\", id=\"Error(string)\"),\n    ],\n)\ndef test_initcode_revert(state_test: StateTestFiller, pre: Alloc, revert: bytes) -> None:\n    \"\"\"Verifies proper handling of REVERT in initcode.\"\"\"\n    env = Environment()\n    revert_size = len(revert)\n\n    initcode_subcontainer = Container(\n        name=\"Initcode Subcontainer that reverts\",\n        sections=[\n            Section.Code(\n                code=Op.MSTORE(0, Op.PUSH32(revert)) + Op.REVERT(32 - revert_size, revert_size),\n            ),\n        ],\n    )\n\n    factory_contract = Container(\n        name=\"factory contract\",\n        sections=[\n            Section.Code(\n                code=Op.SSTORE(slot_create_address, Op.EOFCREATE[0](0, 0, 0, 0))\n                + Op.SSTORE(slot_returndata_size, Op.RETURNDATASIZE)\n                + Op.RETURNDATACOPY(Op.SUB(32, Op.RETURNDATASIZE), 0, Op.RETURNDATASIZE)\n                + Op.SSTORE(slot_returndata, Op.MLOAD(0))\n                + Op.SSTORE(slot_code_worked, value_code_worked)\n                + Op.STOP,\n            ),\n            Section.Container(container=initcode_subcontainer),\n        ],\n    )\n\n    sender = pre.fund_eoa()\n    contract_address = pre.deploy_contract(code=factory_contract)\n\n    post = {\n        contract_address: Account(\n            storage={\n                slot_create_address: EOFCREATE_FAILURE,\n                slot_returndata_size: revert_size,\n                slot_returndata: revert,\n                slot_code_worked: value_code_worked,\n            }\n        ),\n        compute_eofcreate_address(contract_address, 0): Account.NONEXISTENT,\n    }\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=10_000_000,\n        gas_price=10,\n        protected=False,\n        sender=sender,\n    )\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\ndef test_initcode_aborts(\n    state_test: StateTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"Verifies correct handling of a halt in EOF initcode.\"\"\"\n    env = Environment()\n    sender = pre.fund_eoa()\n    contract_address = pre.deploy_contract(\n        code=Container(\n            sections=[\n                Section.Code(\n                    code=Op.SSTORE(slot_create_address, Op.EOFCREATE[0](0, 0, 0, 0))\n                    + Op.SSTORE(slot_code_worked, value_code_worked)\n                    + Op.STOP,\n                ),\n                Section.Container(container=aborting_container),\n            ]\n        )\n    )\n    # Storage in slot_create_address should not have the address,\n    post = {\n        contract_address: Account(\n            storage={\n                slot_create_address: EOFCREATE_FAILURE,\n                slot_code_worked: value_code_worked,\n            }\n        ),\n        compute_eofcreate_address(contract_address, 0): Account.NONEXISTENT,\n    }\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=10_000_000,\n        gas_price=10,\n        protected=False,\n        sender=sender,\n    )\n\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\n\"\"\"\nSize of the factory portion of test_eofcreate_deploy_sizes, but as the runtime\ncode is dynamic, we have to use a pre-calculated size\n\"\"\"\nfactory_size = 78\n\n\n@pytest.mark.parametrize(\n    \"target_deploy_size\",\n    [\n        pytest.param(0x4000, id=\"large\"),\n        pytest.param(MAX_BYTECODE_SIZE, id=\"max\"),\n        pytest.param(MAX_BYTECODE_SIZE + 1, id=\"overmax\"),\n        pytest.param(MAX_INITCODE_SIZE - factory_size, id=\"initcodemax\"),\n        pytest.param(\n            MAX_INITCODE_SIZE - factory_size + 1,\n            id=\"initcodeovermax\",\n            marks=pytest.mark.skip(\"Oversized container in pre-alloc\"),\n        ),\n        pytest.param(\n            0xFFFF - factory_size,\n            id=\"64k-1\",\n            marks=pytest.mark.skip(\"Oversized container in pre-alloc\"),\n        ),\n    ],\n)\ndef test_eofcreate_deploy_sizes(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    target_deploy_size: int,\n) -> None:\n    \"\"\"\n    Verifies a mix of runtime contract sizes mixing success and multiple size\n    failure modes.\n    \"\"\"\n    env = Environment()\n\n    runtime_container = Container(\n        sections=[\n            Section.Code(\n                code=Op.JUMPDEST * (target_deploy_size - len(smallest_runtime_subcontainer))\n                + Op.STOP,\n            ),\n        ]\n    )\n\n    initcode_subcontainer = Container(\n        name=\"Initcode Subcontainer\",\n        sections=[\n            Section.Code(\n                code=Op.RETURNCODE[0](0, 0),\n            ),\n            Section.Container(container=runtime_container),\n        ],\n    )\n\n    factory_container = Container(\n        sections=[\n            Section.Code(\n                code=Op.SSTORE(slot_create_address, Op.EOFCREATE[0](0, 0, 0, 0))\n                + Op.SSTORE(slot_code_worked, value_code_worked)\n                + Op.STOP,\n            ),\n            Section.Container(container=initcode_subcontainer),\n        ]\n    )\n\n    assert factory_size == (len(factory_container) - len(runtime_container)), (\n        \"factory_size is wrong, expected factory_size is %d, calculated is %d\"\n        % (\n            factory_size,\n            len(factory_container) - len(runtime_container),\n        )\n    )\n\n    sender = pre.fund_eoa()\n    contract_address = pre.deploy_contract(code=factory_container)\n    # Storage in 0 should have the address, Storage 1 is a canary of 1 to make\n    # sure it tried to execute, which also covers cases of data+code being\n    # greater than initcode_size_max, which is allowed.\n    success = target_deploy_size <= MAX_BYTECODE_SIZE\n    post = {\n        contract_address: Account(\n            storage={\n                slot_create_address: compute_eofcreate_address(contract_address, 0)\n                if success\n                else EOFCREATE_FAILURE,\n                slot_code_worked: value_code_worked,\n            }\n        ),\n        compute_eofcreate_address(contract_address, 0): Account()\n        if success\n        else Account.NONEXISTENT,\n    }\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=10_000_000,\n        gas_price=10,\n        protected=False,\n        sender=sender,\n    )\n\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.parametrize(\n    \"target_deploy_size\",\n    [\n        pytest.param(0x4000, id=\"large\"),\n        pytest.param(MAX_BYTECODE_SIZE, id=\"max\"),\n        pytest.param(MAX_BYTECODE_SIZE + 1, id=\"overmax\"),\n        pytest.param(MAX_INITCODE_SIZE - factory_size, id=\"initcodemax\"),\n        pytest.param(MAX_INITCODE_SIZE - factory_size + 1, id=\"initcodeovermax\"),\n        pytest.param(0xFFFF - factory_size, id=\"64k-1\"),\n    ],\n)\n@pytest.mark.skip(\"Not implemented\")\ndef test_eofcreate_deploy_sizes_tx(\n    state_test: StateTestFiller,\n    target_deploy_size: int,\n) -> None:\n    \"\"\"\n    Verifies a mix of runtime contract sizes mixing success and multiple size\n    failure modes where the initcontainer is included in a transaction.\n    \"\"\"\n    raise NotImplementedError(\"Not implemented\")\n\n\n@pytest.mark.parametrize(\n    \"auxdata_size\",\n    [\n        pytest.param(MAX_BYTECODE_SIZE - len(smallest_runtime_subcontainer), id=\"maxcode\"),\n        pytest.param(MAX_BYTECODE_SIZE - len(smallest_runtime_subcontainer) + 1, id=\"overmaxcode\"),\n        pytest.param(0x10000 - 60, id=\"almost64k\"),\n        pytest.param(0x10000 - 1, id=\"64k-1\"),\n        pytest.param(0x10000, id=\"64k\"),\n        pytest.param(0x10000 + 1, id=\"over64k\"),\n    ],\n)\ndef test_auxdata_size_failures(state_test: StateTestFiller, pre: Alloc, auxdata_size: int) -> None:\n    \"\"\"\n    Exercises a number of auxdata size violations, and one maxcode success.\n    \"\"\"\n    env = Environment()\n    auxdata_bytes = b\"a\" * auxdata_size\n\n    initcode_subcontainer = Container(\n        name=\"Initcode Subcontainer\",\n        sections=[\n            Section.Code(\n                code=Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE) + Op.RETURNCODE[0](0, Op.CALLDATASIZE),\n            ),\n            Section.Container(container=smallest_runtime_subcontainer),\n        ],\n    )\n\n    sender = pre.fund_eoa()\n    contract_address = pre.deploy_contract(\n        code=Container(\n            sections=[\n                Section.Code(\n                    code=Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE)\n                    + Op.SSTORE(slot_create_address, Op.EOFCREATE[0](input_size=Op.CALLDATASIZE))\n                    + Op.SSTORE(slot_code_worked, value_code_worked)\n                    + Op.STOP,\n                ),\n                Section.Container(container=initcode_subcontainer),\n            ]\n        )\n    )\n\n    deployed_container_size = len(smallest_runtime_subcontainer) + auxdata_size\n\n    # Storage in 0 will have address in first test, 0 in all other cases\n    # indicating failure\n    #\n    # Storage 1 in 1 is a canary to see if EOFCREATE opcode\n    # halted\n    success = deployed_container_size <= MAX_BYTECODE_SIZE\n    post = {\n        contract_address: Account(\n            storage={\n                slot_create_address: compute_eofcreate_address(contract_address, 0)\n                if success\n                else 0,\n                slot_code_worked: value_code_worked,\n            }\n        ),\n        compute_eofcreate_address(contract_address, 0): Account()\n        if success\n        else Account.NONEXISTENT,\n    }\n\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=10_000_000,\n        gas_price=10,\n        protected=False,\n        sender=sender,\n        data=auxdata_bytes,\n    )\n\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.parametrize(\n    \"value\",\n    [\n        pytest.param(1, id=\"1_wei\"),\n        pytest.param(10**9, id=\"1_gwei\"),\n    ],\n)\ndef test_eofcreate_insufficient_stipend(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    value: int,\n) -> None:\n    \"\"\"\n    Exercises an EOFCREATE that fails because the calling account does not have\n    enough ether to pay the stipend.\n    \"\"\"\n    env = Environment()\n    initcode_container = Container(\n        sections=[\n            Section.Code(\n                code=Op.SSTORE(slot_create_address, Op.EOFCREATE[0](value=value))\n                + Op.SSTORE(slot_code_worked, value_code_worked)\n                + Op.STOP,\n            ),\n            Section.Container(container=smallest_initcode_subcontainer),\n        ]\n    )\n    sender = pre.fund_eoa(10**11)\n    contract_address = pre.deploy_contract(\n        code=initcode_container,\n        balance=value - 1,\n    )\n    # create will fail but not trigger a halt, so canary at storage 1 should be\n    # set\n    #\n    # also validate target created contract fails\n    post = {\n        contract_address: Account(\n            storage={\n                slot_create_address: EOFCREATE_FAILURE,\n                slot_code_worked: value_code_worked,\n            }\n        ),\n        compute_eofcreate_address(contract_address, 0): Account.NONEXISTENT,\n    }\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=10_000_000,\n        gas_price=10,\n        protected=False,\n        sender=sender,\n    )\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\ndef test_insufficient_initcode_gas(\n    state_test: StateTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    Exercises an EOFCREATE when there is not enough gas for the initcode\n    charge.\n    \"\"\"\n    env = Environment()\n\n    initcode_data = b\"a\" * 0x5000\n    initcode_container = Container(\n        name=\"Large Initcode Subcontainer\",\n        sections=[\n            Section.Code(\n                code=Op.RETURNCODE[0](0, 0),\n            ),\n            Section.Container(container=smallest_runtime_subcontainer),\n            Section.Data(data=initcode_data),\n        ],\n    )\n\n    sender = pre.fund_eoa()\n    contract_address = pre.deploy_contract(\n        code=Container(\n            sections=[\n                Section.Code(\n                    code=Op.SSTORE(slot_create_address, Op.EOFCREATE[0](0, 0, 0, 0))\n                    + Op.SSTORE(slot_code_should_fail, value_code_worked)\n                    + Op.STOP,\n                ),\n                Section.Container(container=initcode_container),\n            ],\n        ),\n        storage={\n            slot_create_address: value_canary_should_not_change,\n            slot_code_should_fail: value_canary_should_not_change,\n        },\n    )\n    # enough gas for everything but EVM opcodes and EIP-150 reserves\n    gas_limit = 21_000 + 32_000 + (len(initcode_data) + 31) // 32 * 6\n    # out_of_gas is triggered, so canary won't set value\n    # also validate target created contract fails\n    post = {\n        contract_address: Account(\n            storage={\n                slot_create_address: value_canary_should_not_change,\n                slot_code_should_fail: value_canary_should_not_change,\n            },\n        ),\n        compute_eofcreate_address(contract_address, 0): Account.NONEXISTENT,\n    }\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=gas_limit,\n        gas_price=10,\n        protected=False,\n        sender=sender,\n    )\n\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\ndef test_insufficient_gas_memory_expansion(\n    state_test: StateTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    Exercises EOFCREATE when the memory for auxdata has not been expanded but\n    is requested.\n    \"\"\"\n    env = Environment()\n\n    auxdata_size = 0x5000\n    initcode_container = Container(\n        sections=[\n            Section.Code(\n                code=Op.SSTORE(slot_create_address, Op.EOFCREATE[0](input_size=auxdata_size))\n                + Op.SSTORE(slot_code_should_fail, slot_code_worked)\n                + Op.STOP,\n            ),\n            Section.Container(container=smallest_initcode_subcontainer),\n        ],\n    )\n    sender = pre.fund_eoa()\n    contract_address = pre.deploy_contract(\n        code=initcode_container,\n        storage={\n            slot_create_address: value_canary_should_not_change,\n            slot_code_should_fail: value_canary_should_not_change,\n        },\n    )\n    # enough gas for everything but EVM opcodes and EIP-150 reserves\n    initcode_container_words = (len(initcode_container) + 31) // 32\n    auxdata_size_words = (auxdata_size + 31) // 32\n    gas_limit = (\n        21_000\n        + 32_000\n        + initcode_container_words * 6\n        + 3 * auxdata_size_words\n        + auxdata_size_words * auxdata_size_words // 512\n    )\n    # out_of_gas is triggered, so canary won't set value\n    # also validate target created contract fails\n    post = {\n        contract_address: Account(\n            storage={\n                slot_create_address: value_canary_should_not_change,\n                slot_code_should_fail: value_canary_should_not_change,\n            },\n        ),\n        compute_eofcreate_address(contract_address, 0): Account.NONEXISTENT,\n    }\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=gas_limit,\n        gas_price=10,\n        protected=False,\n        sender=sender,\n    )\n\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\ndef test_insufficient_returncode_auxdata_gas(\n    state_test: StateTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    Exercises a RETURNCODE when there is not enough gas for the initcode\n    charge.\n    \"\"\"\n    env = Environment()\n\n    auxdata_size = 0x5000\n    initcode_container = Container(\n        name=\"Large Initcode Subcontainer\",\n        sections=[\n            Section.Code(\n                code=Op.RETURNCODE[0](0, auxdata_size),\n            ),\n            Section.Container(container=smallest_runtime_subcontainer),\n        ],\n    )\n\n    sender = pre.fund_eoa()\n    contract_address = pre.deploy_contract(\n        code=Container(\n            sections=[\n                Section.Code(\n                    code=Op.SSTORE(slot_create_address, Op.EOFCREATE[0](0, 0, 0, 0))\n                    + Op.SSTORE(slot_code_should_fail, value_code_worked)\n                    + Op.STOP,\n                ),\n                Section.Container(container=initcode_container),\n            ],\n        ),\n        storage={\n            slot_create_address: value_canary_should_not_change,\n            slot_code_should_fail: value_canary_should_not_change,\n        },\n    )\n    # enough gas for everything but EVM opcodes and EIP-150 reserves\n    initcode_container_words = (len(initcode_container) + 31) // 32\n    auxdata_size_words = (auxdata_size + 31) // 32\n    gas_limit = (\n        21_000\n        + 32_000\n        + initcode_container_words * 6\n        + 3 * auxdata_size_words\n        + auxdata_size_words * auxdata_size_words // 512\n    )\n    # out_of_gas is triggered, so canary won't set value\n    # also validate target created contract fails\n    post = {\n        contract_address: Account(\n            storage={\n                slot_create_address: value_canary_should_not_change,\n                slot_code_should_fail: value_canary_should_not_change,\n            },\n        ),\n        compute_eofcreate_address(contract_address, 0): Account.NONEXISTENT,\n    }\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=gas_limit,\n        gas_price=10,\n        protected=False,\n        sender=sender,\n    )\n\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.parametrize(\n    \"opcode\",\n    [\n        Op.STATICCALL,\n        Op.EXTSTATICCALL,\n    ],\n)\n@pytest.mark.parametrize(\"endowment\", [0, 1])  # included to verify static flag\n# check comes first\n@pytest.mark.parametrize(\n    \"initcode\",\n    [smallest_initcode_subcontainer, aborting_container],\n    ids=[\"working_initcode\", \"aborting_code\"],\n)\ndef test_static_flag_eofcreate(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    opcode: Op,\n    endowment: int,\n    initcode: Container,\n) -> None:\n    \"\"\"Verifies correct handling of the static call flag with EOFCREATE.\"\"\"\n    env = Environment()\n    sender = pre.fund_eoa()\n    contract_address = pre.deploy_contract(\n        code=Container(\n            sections=[\n                Section.Code(\n                    code=Op.EOFCREATE[0](value=endowment) + Op.STOP,\n                ),\n                Section.Container(container=initcode),\n            ]\n        )\n    )\n    calling_code = (\n        Op.SSTORE(slot_call_result, opcode(address=contract_address))\n        + Op.SSTORE(slot_code_worked, value_code_worked)\n        + Op.STOP\n    )\n    calling_address = pre.deploy_contract(\n        Container.Code(calling_code) if opcode == Op.EXTSTATICCALL else calling_code\n    )\n\n    post = {\n        calling_address: Account(\n            storage={\n                slot_call_result: EXTCALL_FAILURE\n                if opcode == Op.EXTSTATICCALL\n                else LEGACY_CALL_FAILURE,\n                slot_code_worked: value_code_worked,\n            }\n        ),\n        compute_eofcreate_address(contract_address, 0): Account.NONEXISTENT,\n    }\n    tx = Transaction(\n        to=calling_address,\n        gas_limit=10_000_000,\n        protected=False,\n        sender=sender,\n    )\n\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\nmagic_value_call = 0xCA11\nmagic_value_create = 0xCC12EA7E\n\n\n@pytest.mark.parametrize(\n    \"opcode\",\n    [\n        Op.EXTCALL,\n        Op.EXTDELEGATECALL,\n    ],\n)\n@pytest.mark.parametrize(\n    \"who_fails\",\n    [magic_value_call, magic_value_create],\n    ids=[\"call_fails\", \"create_fails\"],\n)\n@pytest.mark.pre_alloc_modify\ndef test_eof_eofcreate_msg_depth(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    opcode: Op,\n    who_fails: int,\n) -> None:\n    \"\"\"\n    Test EOFCREATE handles msg depth limit correctly (1024).\n\n    NOTE: due to block gas limit and the 63/64th rule this limit is\n          unlikely to be hit on mainnet.\n    NOTE: See `tests/unscheduled/eip7692_eof_v1/eip7069_extcall/\n          test_calls.py::test_eof_calls_msg_depth` for more explanations and\n          comments. Most notable deviation from that test is that here calls\n          and `EOFCREATE`s alternate in order to reach the max depth.\n          `who_fails` decides whether the failing depth 1024 will be on a call\n          or on an `EOFCREATE` to happen.\n    \"\"\"\n    # Not a precise gas_limit formula, but enough to exclude risk of gas\n    # causing the failure.\n    gas_limit = int(20000000 * (64 / 63) ** 1024)\n    env = Environment(gas_limit=gas_limit)\n    sender = pre.fund_eoa()\n\n    callee_address = Address(0x5000)\n\n    # Memory offsets layout:\n    # - 0  - input - msg depth\n    # - 32 - output - msg depth\n    # - 64 - output - call result\n    # - 96 - output - magic value: create or call\n    returndatacopy_block = Op.RETURNDATACOPY(32, 0, 96) + Op.REVERT(32, 96)\n    deep_most_result_block = (\n        Op.MSTORE(32, Op.ADD(Op.CALLDATALOAD(0), 1)) + Op.MSTORE(64, Op.NOOP) + Op.REVERT(32, 96)\n    )\n    rjump_offset = len(returndatacopy_block)\n\n    callee_code = Container(\n        sections=[\n            Section.Code(\n                Op.MSTORE(0, Op.ADD(Op.CALLDATALOAD(0), 1))\n                + Op.MSTORE(96, magic_value_create)\n                + Op.EOFCREATE[0](salt=Op.CALLDATALOAD(0), input_size=32)\n                + Op.RETURNDATASIZE\n                + Op.ISZERO\n                + Op.RJUMPI[rjump_offset]\n                + returndatacopy_block\n                + deep_most_result_block\n            ),\n            Section.Container(\n                Container.Code(\n                    Op.MSTORE(0, Op.ADD(Op.CALLDATALOAD(0), 1))\n                    + Op.MSTORE(96, magic_value_call)\n                    + opcode(address=callee_address, args_size=32)\n                    + Op.RETURNDATASIZE\n                    + Op.ISZERO\n                    + Op.RJUMPI[rjump_offset]\n                    + returndatacopy_block\n                    + deep_most_result_block\n                )\n            ),\n        ]\n    )\n\n    pre.deploy_contract(callee_code, address=callee_address)\n\n    calling_contract_address = pre.deploy_contract(\n        Container.Code(\n            Op.MSTORE(0, Op.CALLDATALOAD(0))\n            + opcode(address=callee_address, args_size=32)\n            + Op.SSTORE(slot_max_depth, Op.RETURNDATALOAD(0))\n            + Op.SSTORE(slot_call_result, Op.RETURNDATALOAD(32))\n            + Op.SSTORE(slot_call_or_create, Op.RETURNDATALOAD(64))\n            + Op.SSTORE(slot_code_worked, value_code_worked)\n            + Op.STOP\n        )\n    )\n\n    # Only bumps the msg call depth \"register\" and forwards to the\n    # `calling_contract_address`. If it is used it makes the \"failing\" depth of\n    # 1024 to happen on EOFCREATE, instead of CALL.\n    passthrough_address = pre.deploy_contract(\n        Container.Code(\n            Op.MSTORE(0, 1) + Op.EXTCALL(address=calling_contract_address, args_size=32) + Op.STOP\n        )\n    )\n\n    tx = Transaction(\n        sender=sender,\n        to=calling_contract_address if who_fails == magic_value_call else passthrough_address,\n        gas_limit=gas_limit,\n        data=\"\",\n    )\n\n    calling_storage = {\n        slot_max_depth: 1024,\n        slot_code_worked: value_code_worked,\n        slot_call_result: EXTCALL_REVERT if who_fails == magic_value_call else EOFCREATE_FAILURE,\n        slot_call_or_create: who_fails,\n    }\n\n    post = {\n        calling_contract_address: Account(storage=calling_storage),\n    }\n\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\ndef test_reentrant_eofcreate(\n    state_test: StateTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    Verifies a reentrant EOFCREATE case, where EIP-161 prevents conflict via\n    nonce bump.\n    \"\"\"\n    env = Environment()\n    # Calls into the factory contract with 1 as input.\n    reenter_code = Op.MSTORE(0, 1) + Op.EXTCALL(address=Op.CALLDATALOAD(32), args_size=32)\n    # Initcode: if given 0 as 1st word of input will call into the factory\n    # again. 2nd word of input is the address of the factory.\n    initcontainer = Container(\n        sections=[\n            Section.Code(\n                Op.SSTORE(slot_counter, Op.ADD(Op.SLOAD(slot_counter), 1))\n                + Op.CALLDATALOAD(0)\n                + Op.RJUMPI[len(reenter_code)]\n                + reenter_code\n                + Op.RETURNCODE[0](0, 0)\n            ),\n            Section.Container(smallest_runtime_subcontainer),\n        ]\n    )\n    # Factory:\n    #     Passes on its input into the initcode.\n    #     It's 0 first time, 1 the second time.\n    #     Saves the result of deployment in slot 0 first time, 1 the\n    #     second time.\n    contract_address = pre.deploy_contract(\n        code=Container(\n            sections=[\n                Section.Code(\n                    Op.CALLDATACOPY(0, 0, 32)\n                    + Op.MSTORE(32, Op.ADDRESS)\n                    # 1st word - copied from input (reenter flag)\n                    # 2nd word - `this.address`\n                    + Op.SSTORE(Op.CALLDATALOAD(0), Op.EOFCREATE[0](input_size=64))\n                    + Op.STOP,\n                ),\n                Section.Container(initcontainer),\n            ],\n        ),\n        storage={0: 0xB17D, 1: 0xB17D},  # a canary to be overwritten\n    )\n    # Flow is:\n    #   reenter flag 0 -> factory -> reenter flag 0 -> initcode ->\n    #   reenter -> reenter flag 1 -> factory -> reenter flag 1 -> (!) initcode\n    #   -> stop\n    # if the EIP-161 nonce bump is not implemented.\n    #\n    # If it is, it fails before second inicode marked (!).\n    #\n    # Storage in 0 should have the address from the outer EOFCREATE.\n    # Storage in 1 should have 0 from the inner EOFCREATE. For the created\n    # contract storage in `slot_counter` should be 1 as initcode\n    # executes only once.\n    post = {\n        contract_address: Account(\n            storage={\n                0: compute_eofcreate_address(contract_address, 0),\n                1: 0,\n            }\n        ),\n        compute_eofcreate_address(contract_address, 0): Account(\n            nonce=1, code=smallest_runtime_subcontainer, storage={slot_counter: 1}\n        ),\n    }\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=500_000,\n        sender=pre.fund_eoa(),\n    )\n    state_test(env=env, pre=pre, post=post, tx=tx)\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip7620_eof_create/test_gas.py",
    "content": "\"\"\"Test good and bad EOFCREATE cases.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import Alloc, Environment, StateTestFiller, compute_eofcreate_address\nfrom ethereum_test_types.eof.v1 import Container, Section\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .. import EOF_FORK_NAME\nfrom ..gas_test import gas_test\nfrom .helpers import (\n    aborting_container,\n    big_runtime_subcontainer,\n    bigger_initcode_subcontainer,\n    bigger_initcode_subcontainer_gas,\n    data_appending_initcode_subcontainer,\n    data_appending_initcode_subcontainer_gas,\n    data_initcode_subcontainer,\n    data_runtime_container,\n    expensively_reverting_container,\n    expensively_reverting_container_gas,\n    reverting_container,\n    slot_counter,\n    smallest_initcode_subcontainer,\n    smallest_initcode_subcontainer_gas,\n    smallest_runtime_subcontainer,\n)\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-7620.md\"\nREFERENCE_SPEC_VERSION = \"52ddbcdddcf72dd72427c319f2beddeb468e1737\"\n\npytestmark = pytest.mark.valid_from(EOF_FORK_NAME)\n\nEOFCREATE_GAS = 32000\n\n\ndef make_factory(initcode: Container) -> Container:\n    \"\"\"Wrap initcontainer into a minimal runtime container.\"\"\"\n    return Container(\n        name=\"Factory Subcontainer\",\n        sections=[\n            Section.Code(Op.EOFCREATE[0](0, 0, 0, 0) + Op.STOP),\n            Section.Container(initcode),\n        ],\n    )\n\n\n@pytest.mark.parametrize(\"value\", [0, 1])\n@pytest.mark.parametrize(\"new_account\", [True, False])\n@pytest.mark.parametrize(\n    \"mem_expansion_bytes\",\n    [0, 1, 32, 33],\n)\n@pytest.mark.parametrize(\n    [\"initcode\", \"initcode_execution_cost\", \"runtime\"],\n    [\n        pytest.param(\n            smallest_initcode_subcontainer,\n            smallest_initcode_subcontainer_gas,\n            smallest_runtime_subcontainer,\n            id=\"smallest_code\",\n        ),\n        pytest.param(\n            Container.Init(aborting_container),\n            smallest_initcode_subcontainer_gas,\n            aborting_container,\n            id=\"aborting_runtime\",\n        ),\n        pytest.param(\n            reverting_container, smallest_initcode_subcontainer_gas, None, id=\"reverting_initcode\"\n        ),\n        pytest.param(\n            expensively_reverting_container,\n            expensively_reverting_container_gas,\n            None,\n            id=\"expensively_reverting_initcode\",\n        ),\n        pytest.param(\n            Container.Init(big_runtime_subcontainer),\n            smallest_initcode_subcontainer_gas,\n            big_runtime_subcontainer,\n            id=\"big_runtime\",\n        ),\n        pytest.param(\n            Container.Init(make_factory(smallest_initcode_subcontainer)),\n            smallest_initcode_subcontainer_gas,\n            make_factory(smallest_initcode_subcontainer),\n            id=\"nested_initcode\",\n        ),\n        pytest.param(\n            bigger_initcode_subcontainer,\n            bigger_initcode_subcontainer_gas,\n            smallest_runtime_subcontainer,\n            id=\"bigger_initcode\",\n        ),\n        pytest.param(\n            data_initcode_subcontainer,\n            smallest_initcode_subcontainer_gas,\n            data_runtime_container,\n            id=\"data_initcode\",\n        ),\n        pytest.param(\n            data_appending_initcode_subcontainer,\n            data_appending_initcode_subcontainer_gas,\n            data_runtime_container,\n            id=\"data_appending_initcode\",\n        ),\n    ],\n)\ndef test_eofcreate_gas(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    fork: Fork,\n    value: int,\n    new_account: bool,\n    mem_expansion_bytes: int,\n    initcode: Container,\n    initcode_execution_cost: int,\n    runtime: Container,\n) -> None:\n    \"\"\"Tests variations of EOFCREATE gas.\"\"\"\n    deployed_code_cost = 200 * len(runtime) if runtime else 0\n\n    subject_address = pre.fund_eoa(0)\n\n    salt_addresses = [compute_eofcreate_address(subject_address, i) for i in range(4)]\n\n    if not new_account:\n        for a in salt_addresses:\n            pre.fund_address(a, 1)\n\n    # Using `TLOAD` / `TSTORE` to work around warm/cold gas differences. We\n    # need a counter to pick a distinct salt on each `EOFCREATE` and avoid\n    # running into address conflicts.\n    code_increment_counter = (\n        Op.TLOAD(slot_counter) + Op.DUP1 + Op.TSTORE(slot_counter, Op.PUSH1(1) + Op.ADD)\n    )\n    cost_memory_bytes = fork.memory_expansion_gas_calculator()\n    gas_test(\n        state_test,\n        Environment(),\n        pre,\n        setup_code=Op.PUSH32(value)\n        + Op.PUSH1(mem_expansion_bytes)\n        + Op.PUSH0\n        + code_increment_counter,\n        subject_code=Op.EOFCREATE[0],\n        tear_down_code=Op.STOP,\n        cold_gas=EOFCREATE_GAS\n        + cost_memory_bytes(new_bytes=mem_expansion_bytes)\n        + initcode_execution_cost\n        + deployed_code_cost,\n        subject_subcontainer=initcode,\n        subject_balance=value * 4,\n        subject_address=subject_address,\n        oog_difference=initcode_execution_cost + deployed_code_cost + 1,\n    )\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip7620_eof_create/test_legacy_eof_creates.py",
    "content": "\"\"\"Test interactions between CREATE, CREATE2, and EOFCREATE.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_base_types.base_types import Address, Bytes\nfrom ethereum_test_tools import (\n    Account,\n    Alloc,\n    Environment,\n    StateTestFiller,\n    Transaction,\n)\nfrom ethereum_test_tools import Initcode as LegacyInitcode\nfrom ethereum_test_types.eof.v1 import Container\nfrom ethereum_test_types.helpers import compute_create_address\nfrom ethereum_test_vm import Opcodes\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom ....prague.eip7702_set_code_tx.spec import Spec\nfrom .. import EOF_FORK_NAME\nfrom .helpers import (\n    slot_all_subcall_gas_gone,\n    slot_code_worked,\n    slot_create_address,\n    smallest_initcode_subcontainer,\n    smallest_runtime_subcontainer,\n    value_code_worked,\n)\nfrom .spec import EOFCREATE_FAILURE\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-7620.md\"\nREFERENCE_SPEC_VERSION = \"52ddbcdddcf72dd72427c319f2beddeb468e1737\"\n\npytestmark = pytest.mark.valid_from(EOF_FORK_NAME)\n\n\n@pytest.mark.parametrize(\n    \"legacy_create_opcode\",\n    [\n        pytest.param(Op.CREATE, id=\"CREATE\"),\n        pytest.param(Op.CREATE2, id=\"CREATE2\"),\n    ],\n)\n@pytest.mark.parametrize(\n    \"initcode\",\n    [\n        Bytes(\"0xEF00\"),\n        Bytes(\"0xEF0001\"),\n        pytest.param(smallest_initcode_subcontainer, id=\"deploy_eof_initcontainer\"),\n        pytest.param(smallest_runtime_subcontainer, id=\"deploy_eof_container\"),\n    ],\n)\ndef test_cross_version_creates_fail_light(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    legacy_create_opcode: Opcodes,\n    initcode: Bytes | Container,\n) -> None:\n    \"\"\"\n    Verifies that CREATE and CREATE2 cannot run EOF initcodes and fail early on\n    attempt.\n    \"\"\"\n    env = Environment()\n\n    sender = pre.fund_eoa()\n\n    tx_gas_limit = 10_000_000\n\n    contract_address = pre.deploy_contract(\n        code=Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE)\n        + Op.SSTORE(slot_create_address, legacy_create_opcode(size=Op.CALLDATASIZE))\n        # Approximates whether code until here consumed the 63/64th gas given\n        # to subcall\n        + Op.SSTORE(slot_all_subcall_gas_gone, Op.LT(Op.GAS, tx_gas_limit // 64))\n        + Op.SSTORE(slot_code_worked, value_code_worked)\n        + Op.STOP\n    )\n\n    post = {\n        contract_address: Account(\n            storage={\n                slot_create_address: EOFCREATE_FAILURE,\n                slot_code_worked: value_code_worked,\n                slot_all_subcall_gas_gone: 0,\n            },\n            nonce=1,\n        ),\n        # Double check no accounts were created\n        compute_create_address(address=contract_address, nonce=1): Account.NONEXISTENT,\n        compute_create_address(\n            address=contract_address, initcode=initcode, salt=0, opcode=Op.CREATE2\n        ): Account.NONEXISTENT,\n    }\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=tx_gas_limit,\n        sender=sender,\n        data=initcode,\n    )\n\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\n@pytest.mark.parametrize(\n    \"legacy_create_opcode\",\n    [\n        pytest.param(Op.CREATE, id=\"CREATE\"),\n        pytest.param(Op.CREATE2, id=\"CREATE2\"),\n    ],\n)\n@pytest.mark.parametrize(\n    \"initcode\",\n    [\n        Bytes(\"0xEF\"),\n        Bytes(\"0xEF01\"),\n        Bytes(\"0xEF0101\"),\n        Spec.delegation_designation(Address(0xAA)),\n        Bytes(\"0xEF02\"),\n    ],\n)\ndef test_cross_version_creates_fail_hard(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    legacy_create_opcode: Opcodes,\n    initcode: Bytes,\n) -> None:\n    \"\"\"\n    Verifies that CREATE and CREATE2 fail hard on attempt to run initcode\n    starting with `EF` but not `EF00`.\n    \"\"\"\n    env = Environment()\n\n    sender = pre.fund_eoa()\n\n    tx_gas_limit = 10_000_000\n\n    contract_address = pre.deploy_contract(\n        code=Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE)\n        + Op.SSTORE(slot_create_address, legacy_create_opcode(size=Op.CALLDATASIZE))\n        # Approximates whether code until here consumed the 63/64th gas given\n        # to subcall\n        + Op.SSTORE(slot_all_subcall_gas_gone, Op.LT(Op.GAS, tx_gas_limit // 64))\n        + Op.SSTORE(slot_code_worked, value_code_worked)\n        + Op.STOP\n    )\n\n    post = {\n        contract_address: Account(\n            storage={\n                slot_create_address: EOFCREATE_FAILURE,\n                slot_code_worked: value_code_worked,\n                slot_all_subcall_gas_gone: 1,\n            },\n            nonce=2,\n        ),\n        # Double check no accounts were created\n        compute_create_address(address=contract_address, nonce=1): Account.NONEXISTENT,\n        compute_create_address(\n            address=contract_address, initcode=initcode, salt=0, opcode=Op.CREATE2\n        ): Account.NONEXISTENT,\n    }\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=tx_gas_limit,\n        sender=sender,\n        data=initcode,\n    )\n\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\n@pytest.mark.parametrize(\n    \"legacy_create_opcode\",\n    [\n        pytest.param(Op.CREATE, id=\"CREATE\"),\n        pytest.param(Op.CREATE2, id=\"CREATE2\"),\n    ],\n)\n@pytest.mark.parametrize(\n    \"deploy_code\",\n    [\n        Bytes(\"0xEF\"),\n        Bytes(\"0xEF00\"),\n        Bytes(\"0xEF0001\"),\n        Bytes(\"0xEF01\"),\n        pytest.param(smallest_initcode_subcontainer, id=\"deploy_eof_initcontainer\"),\n        pytest.param(smallest_runtime_subcontainer, id=\"deploy_eof_container\"),\n    ],\n)\ndef test_legacy_initcode_eof_contract_fails(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    legacy_create_opcode: Opcodes,\n    deploy_code: Bytes | Container,\n) -> None:\n    \"\"\"\n    Verifies that legacy initcode cannot create EOF.\n\n    This tests only ensures EIP-3541 behavior is kept, not altered by EIP-7620.\n    \"\"\"\n    env = Environment()\n    init_code = LegacyInitcode(deploy_code=deploy_code)\n    salt_param = [0] if legacy_create_opcode == Op.CREATE2 else []\n    factory_code = (\n        Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE)\n        + Op.SSTORE(slot_create_address, legacy_create_opcode(0, 0, Op.CALLDATASIZE, *salt_param))\n        + Op.SSTORE(slot_code_worked, value_code_worked)\n    )\n\n    sender = pre.fund_eoa()\n    contract_address = pre.deploy_contract(code=factory_code)\n\n    # Storage in 0 should be empty as the final CREATE filed\n    # and 1 in 1 to show execution continued and did not halt\n    post = {\n        contract_address: Account(\n            storage={slot_create_address: EOFCREATE_FAILURE, slot_code_worked: value_code_worked}\n        )\n    }\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=10_000_000,\n        data=init_code,\n        sender=sender,\n    )\n\n    state_test(env=env, pre=pre, post=post, tx=tx)\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip7620_eof_create/test_memory.py",
    "content": "\"\"\"Test good and bad EOFCREATE cases.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_base_types import Account, Storage\nfrom ethereum_test_tools import Alloc, Environment, StateTestFiller, compute_eofcreate_address\nfrom ethereum_test_types import Transaction\nfrom ethereum_test_types.eof.v1 import Container, Section\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .. import EOF_FORK_NAME\nfrom .helpers import (\n    slot_code_worked,\n    slot_create_address,\n    smallest_initcode_subcontainer,\n    smallest_runtime_subcontainer,\n    value_canary_to_be_overwritten,\n    value_code_worked,\n)\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-7620.md\"\nREFERENCE_SPEC_VERSION = \"52ddbcdddcf72dd72427c319f2beddeb468e1737\"\n\npytestmark = pytest.mark.valid_from(EOF_FORK_NAME)\n\n\n@pytest.mark.parametrize(\n    \"offset_field\",\n    [\n        pytest.param(True, id=\"offset\"),\n        pytest.param(False, id=\"size\"),\n    ],\n)\n@pytest.mark.parametrize(\n    (\"test_arg\", \"success\"),\n    [\n        pytest.param(0, True, id=\"zero\"),\n        pytest.param(0xFF, True, id=\"8-bit\"),\n        pytest.param(0x100, True, id=\"9-bit\"),\n        pytest.param(0xFFFF, True, id=\"16-bit\"),\n        pytest.param(0x10000, True, id=\"17-bit\"),\n        pytest.param(0x1FFFF20, False, id=\"32-bit-mem-cost\"),\n        pytest.param(0x2D412E0, False, id=\"33-bit-mem-cost\"),\n        pytest.param(0xFFFFFFFF, False, id=\"32-bit\"),\n        pytest.param(0x100000000, False, id=\"33-bit\"),\n        pytest.param(0x1FFFFFFFF20, False, id=\"64-bit-mem-cost\"),\n        pytest.param(0x2D413CCCF00, False, id=\"65-bit-mem-cost\"),\n        pytest.param(0xFFFFFFFFFFFFFFFF, False, id=\"64-bit\"),\n        pytest.param(0x10000000000000000, False, id=\"65-bit\"),\n        pytest.param(0xFFFFFFFFFFFFFFFF, False, id=\"128-bit\"),\n        pytest.param(0x10000000000000000, False, id=\"129-bit\"),\n        pytest.param(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, False, id=\"256-bit\"),\n    ],\n)\ndef test_eofcreate_memory(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    offset_field: str,\n    test_arg: int,\n    success: bool,\n) -> None:\n    \"\"\"\n    Tests auxdata sizes in EOFCREATE including multiple offset conditions.\n\n    EOFCREATE either succeeds or fails based on memory access cost, resulting\n    in new address or zero in the create address slot.\n\n    The name id of `*-mem-cost` refers to the bit-length of the result of the\n    calculated memory expansion cost. Their length choice is designed to cause\n    problems on shorter bit-length representations with native integers.\n\n    The `offset_field` param indicates what part of the input data arguments\n    are being tested, either the offset of the data in memory or the size of\n    the data in memory.\n\n    The `test_arg` param is the value passed into the field being tested\n    (offset or size), intending to trigger integer size bugs for that\n    particular field.\n    \"\"\"\n    env = Environment(gas_limit=2_000_000_000)\n\n    sender = pre.fund_eoa(10**27)\n\n    initial_storage = Storage(\n        {\n            slot_create_address: value_canary_to_be_overwritten,  # type: ignore\n            slot_code_worked: value_canary_to_be_overwritten,  # type: ignore\n        }\n    )\n    calling_contract_address = pre.deploy_contract(\n        code=Container(\n            sections=[\n                Section.Code(\n                    code=Op.SSTORE(\n                        slot_create_address,\n                        Op.EOFCREATE[0](\n                            value=0,\n                            salt=0,\n                            input_offset=test_arg if offset_field else 32,\n                            input_size=32 if offset_field else test_arg,\n                        ),\n                    )\n                    + Op.SSTORE(slot_code_worked, value_code_worked)\n                    + Op.STOP,\n                ),\n                Section.Container(container=smallest_initcode_subcontainer),\n            ]\n        ),\n        storage=initial_storage,\n    )\n    destination_contract_address = compute_eofcreate_address(calling_contract_address, 0)\n\n    post = {\n        calling_contract_address: Account(\n            storage={\n                slot_create_address: destination_contract_address,\n                slot_code_worked: value_code_worked,\n            }\n            if success\n            else initial_storage,\n        ),\n        destination_contract_address: Account(code=smallest_runtime_subcontainer)\n        if success\n        else Account.NONEXISTENT,\n    }\n\n    tx = Transaction(sender=sender, to=calling_contract_address, gas_limit=2_000_000_000)\n\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip7620_eof_create/test_returncode.py",
    "content": "\"\"\"Tests for RETURNCODE instruction validation.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_base_types import Account\nfrom ethereum_test_specs import StateTestFiller\nfrom ethereum_test_tools import Alloc, EOFException, EOFTestFiller\nfrom ethereum_test_types import Environment, Transaction, compute_eofcreate_address\nfrom ethereum_test_types.eof.v1 import Container, ContainerKind, Section\nfrom ethereum_test_types.eof.v1.constants import MAX_BYTECODE_SIZE\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .. import EOF_FORK_NAME\nfrom .helpers import (\n    slot_create_address,\n    smallest_runtime_subcontainer,\n    value_canary_to_be_overwritten,\n)\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-7620.md\"\nREFERENCE_SPEC_VERSION = \"f20b164b00ae5553f7536a6d7a83a0f254455e09\"\n\npytestmark = pytest.mark.valid_from(EOF_FORK_NAME)\n\n\ndef test_returncode_valid_index_0(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"Deploy container index 0.\"\"\"\n    eof_test(\n        container_kind=ContainerKind.INITCODE,\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.RETURNCODE[0](0, 0),\n                ),\n                Section.Container(container=Container(sections=[Section.Code(code=Op.INVALID)])),\n            ],\n        ),\n    )\n\n\ndef test_returncode_valid_index_1(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"Deploy container index 1.\"\"\"\n    eof_test(\n        container_kind=ContainerKind.INITCODE,\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.RJUMPI[6](0) + Op.RETURNCODE[0](0, 0) + Op.RETURNCODE[1](0, 0),\n                    max_stack_height=2,\n                ),\n                Section.Container(container=Container(sections=[Section.Code(code=Op.INVALID)])),\n                Section.Container(container=Container(sections=[Section.Code(code=Op.INVALID)])),\n            ],\n        ),\n    )\n\n\ndef test_returncode_valid_index_255(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"Deploy container index 255.\"\"\"\n    eof_test(\n        container_kind=ContainerKind.INITCODE,\n        container=Container(\n            sections=[\n                Section.Code(\n                    sum((Op.RJUMPI[6](0) + Op.RETURNCODE[i](0, 0)) for i in range(256))\n                    + Op.REVERT(0, 0),\n                    max_stack_height=2,\n                )\n            ]\n            + [Section.Container(container=Container(sections=[Section.Code(code=Op.INVALID)]))]\n            * 256\n        ),\n    )\n\n\ndef test_returncode_invalid_truncated_immediate(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"Truncated immediate.\"\"\"\n    eof_test(\n        container_kind=ContainerKind.INITCODE,\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 + Op.PUSH0 + Op.RETURNCODE,\n                ),\n            ],\n        ),\n        expect_exception=EOFException.TRUNCATED_INSTRUCTION,\n    )\n\n\ndef test_returncode_invalid_index_0(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"Referring to non-existent container section index 0.\"\"\"\n    eof_test(\n        container_kind=ContainerKind.INITCODE,\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.RETURNCODE[0](0, 0),\n                ),\n            ],\n        ),\n        expect_exception=EOFException.INVALID_CONTAINER_SECTION_INDEX,\n    )\n\n\ndef test_returncode_invalid_index_1(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"Referring to non-existent container section index 1.\"\"\"\n    eof_test(\n        container_kind=ContainerKind.INITCODE,\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.RETURNCODE[1](0, 0),\n                ),\n                Section.Container(container=Container(sections=[Section.Code(code=Op.INVALID)])),\n            ],\n        ),\n        expect_exception=EOFException.INVALID_CONTAINER_SECTION_INDEX,\n    )\n\n\ndef test_returncode_invalid_index_255(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"Referring to non-existent container section index 255.\"\"\"\n    eof_test(\n        container_kind=ContainerKind.INITCODE,\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.RETURNCODE[255](0, 0),\n                ),\n                Section.Container(container=Container(sections=[Section.Code(code=Op.INVALID)])),\n            ],\n        ),\n        expect_exception=EOFException.INVALID_CONTAINER_SECTION_INDEX,\n    )\n\n\ndef test_returncode_terminating(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"Unreachable code after RETURNCODE.\"\"\"\n    eof_test(\n        container_kind=ContainerKind.INITCODE,\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.RETURNCODE[0](0, 0) + Op.REVERT(0, 0),\n                ),\n                Section.Container(container=Container(sections=[Section.Code(code=Op.INVALID)])),\n            ],\n        ),\n        expect_exception=EOFException.UNREACHABLE_INSTRUCTIONS,\n    )\n\n\n@pytest.mark.parametrize(\n    \"offset_field\",\n    [\n        pytest.param(True, id=\"offset\"),\n        pytest.param(False, id=\"size\"),\n    ],\n)\n@pytest.mark.parametrize(\n    (\"test_arg\", \"success\"),\n    [\n        pytest.param(0, True, id=\"zero\"),\n        pytest.param(0xFF, True, id=\"8-bit\"),\n        pytest.param(0x100, True, id=\"9-bit\"),\n        pytest.param(0xFFFF, True, id=\"16-bit\"),\n        pytest.param(0x10000, True, id=\"17-bit\"),\n        pytest.param(0x1FFFF20, False, id=\"32-bit-mem-cost\"),\n        pytest.param(0x2D412E0, False, id=\"33-bit-mem-cost\"),\n        pytest.param(0xFFFFFFFF, False, id=\"32-bit\"),\n        pytest.param(0x100000000, False, id=\"33-bit\"),\n        pytest.param(0x1FFFFFFFF20, False, id=\"64-bit-mem-cost\"),\n        pytest.param(0x2D413CCCF00, False, id=\"65-bit-mem-cost\"),\n        pytest.param(0xFFFFFFFFFFFFFFFF, False, id=\"64-bit\"),\n        pytest.param(0x10000000000000000, False, id=\"65-bit\"),\n        pytest.param(0xFFFFFFFFFFFFFFFF, False, id=\"128-bit\"),\n        pytest.param(0x10000000000000000, False, id=\"129-bit\"),\n        pytest.param(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, False, id=\"256-bit\"),\n    ],\n)\ndef test_returncode_memory_expansion(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    offset_field: str,\n    test_arg: int,\n    success: bool,\n) -> None:\n    \"\"\"\n    Attempts an EOFCREATE with a possibly too-large auxdata.  Create either\n    fails due to gas or contract too large, resulting in address or zero on\n    failure in the create address slot.\n\n    The name id of `*-mem-cost` refers to the bit-length of the result of the\n    calculated memory expansion cost. Their length choice is designed to cause\n    problems on shorter bit-length representations with native integers.\n\n    The `offset_field` param indicates what part of the input data arguments\n    are being tested, either the offset of the data in memory or the size of\n    the data in memory.\n\n    The `test_arg` param is the value passed into the field being tested\n    (offset or size), intending to trigger integer size bugs for that\n    particular field.\n    \"\"\"\n    env = Environment(gas_limit=2_000_000_000)\n    sender = pre.fund_eoa(10**27)\n\n    eof_size_acceptable = offset_field or test_arg < MAX_BYTECODE_SIZE\n\n    mem_size_initcode_container = Container(\n        sections=[\n            Section.Code(\n                code=Op.RETURNCODE[0](\n                    auxdata_offset=test_arg if offset_field else 32,\n                    auxdata_size=32 if offset_field else test_arg,\n                )\n            ),\n            Section.Container(container=smallest_runtime_subcontainer),\n        ],\n    )\n    contract_address = pre.deploy_contract(\n        code=Container(\n            sections=[\n                Section.Code(\n                    code=Op.SSTORE(slot_create_address, Op.EOFCREATE[0](0, 0, 0, 0)) + Op.STOP,\n                ),\n                Section.Container(container=mem_size_initcode_container),\n            ],\n        ),\n        storage={\n            slot_create_address: value_canary_to_be_overwritten,\n        },\n    )\n    # Storage in 0 should have the address,\n    post = {\n        contract_address: Account(\n            storage={\n                slot_create_address: compute_eofcreate_address(contract_address, 0)\n                if success and eof_size_acceptable\n                else 0,\n            }\n        )\n    }\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=2_000_000_000,\n        gas_price=10,\n        protected=False,\n        sender=sender,\n    )\n    state_test(env=env, pre=pre, post=post, tx=tx)\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip7620_eof_create/test_subcontainer_validation.py",
    "content": "\"\"\"EOF Subcontainer tests covering simple cases.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_tools import Account, EOFException, EOFStateTestFiller, EOFTestFiller\nfrom ethereum_test_types.eof.v1 import Container, ContainerKind, Section\nfrom ethereum_test_types.eof.v1.constants import MAX_BYTECODE_SIZE, MAX_INITCODE_SIZE\nfrom ethereum_test_vm import Bytecode\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .. import EOF_FORK_NAME\nfrom .helpers import slot_code_worked, value_code_worked\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-7620.md\"\nREFERENCE_SPEC_VERSION = \"52ddbcdddcf72dd72427c319f2beddeb468e1737\"\n\npytestmark = pytest.mark.valid_from(EOF_FORK_NAME)\n\neofcreate_code_section = Section.Code(\n    code=Op.EOFCREATE[0](0, 0, 0, 0) + Op.SSTORE(slot_code_worked, value_code_worked) + Op.STOP,\n    max_stack_height=4,\n)\neofcreate_revert_code_section = Section.Code(\n    code=Op.EOFCREATE[0](0, 0, 0, 0) + Op.REVERT(0, 0),\n)\nreturncode_code_section = Section.Code(\n    code=Op.SSTORE(slot_code_worked, value_code_worked) + Op.RETURNCODE[0](0, 0),\n    max_stack_height=2,\n)\nstop_container = Container.Code(Op.STOP)\nstop_sub_container = Section.Container(stop_container)\nreturn_sub_container = Section.Container(Container.Code(Op.RETURN(0, 0)))\nrevert_sub_container = Section.Container(Container.Code(Op.REVERT(0, 0)))\nabort_sub_container = Section.Container(Container.Code(Op.INVALID))\nreturncode_sub_container = Section.Container(\n    Container(\n        sections=[\n            Section.Code(Op.RETURNCODE[0](0, 0)),\n            stop_sub_container,\n        ],\n    )\n)\n\n\ndef test_simple_create_from_deployed(\n    eof_state_test: EOFStateTestFiller,\n) -> None:\n    \"\"\"Simple EOF creation from a deployed EOF container.\"\"\"\n    eof_state_test(\n        container=Container(\n            sections=[\n                eofcreate_code_section,\n                returncode_sub_container,\n            ],\n        ),\n        container_post=Account(storage={slot_code_worked: value_code_worked}),\n    )\n\n\ndef test_simple_create_from_creation(\n    eof_state_test: EOFStateTestFiller,\n) -> None:\n    \"\"\"Simple EOF creation from a create transaction container.\"\"\"\n    eof_state_test(\n        container=Container(\n            sections=[\n                returncode_code_section,\n                stop_sub_container,\n            ],\n            kind=ContainerKind.INITCODE,\n        ),\n        container_post=Account(storage={slot_code_worked: value_code_worked}),\n    )\n\n\n@pytest.mark.parametrize(\n    \"zero_section\",\n    [eofcreate_code_section, returncode_code_section],\n    ids=[\"eofcreate\", \"returncode\"],\n)\ndef test_reverting_container(\n    eof_state_test: EOFStateTestFiller,\n    zero_section: Container,\n) -> None:\n    \"\"\"Test revert containers.\"\"\"\n    eof_state_test(\n        container=Container(\n            sections=[\n                zero_section,\n                revert_sub_container,\n            ],\n            kind=(\n                ContainerKind.INITCODE\n                if zero_section == returncode_code_section\n                else ContainerKind.RUNTIME\n            ),\n        ),\n        container_post=Account(storage={slot_code_worked: value_code_worked}),\n    )\n\n\n@pytest.mark.parametrize(\n    \"code_section,first_sub_container,container_kind\",\n    [\n        (eofcreate_code_section, returncode_sub_container, ContainerKind.RUNTIME),\n        (returncode_code_section, stop_sub_container, ContainerKind.INITCODE),\n    ],\n    ids=[\"eofcreate\", \"returncode\"],\n)\n@pytest.mark.parametrize(\n    \"extra_sub_container\",\n    [stop_sub_container, revert_sub_container, returncode_sub_container],\n    ids=[\"stop\", \"revert\", \"returncode\"],\n)\ndef test_orphan_container(\n    eof_test: EOFTestFiller,\n    code_section: Section,\n    first_sub_container: Container,\n    extra_sub_container: Container,\n    container_kind: ContainerKind,\n) -> None:\n    \"\"\"Test orphaned containers.\"\"\"\n    eof_test(\n        container=Container(\n            sections=[\n                code_section,\n                first_sub_container,\n                extra_sub_container,\n            ],\n            kind=container_kind,\n        ),\n        expect_exception=EOFException.ORPHAN_SUBCONTAINER,\n    )\n\n\n@pytest.mark.parametrize(\n    \"code_section,sub_container,container_kind\",\n    [\n        pytest.param(\n            eofcreate_code_section,\n            returncode_sub_container,\n            ContainerKind.RUNTIME,\n            id=\"EOFCREATE_RETURNCODE\",\n        ),\n        pytest.param(\n            returncode_code_section,\n            stop_sub_container,\n            ContainerKind.INITCODE,\n            id=\"RETURNCODE_STOP\",\n        ),\n        pytest.param(\n            returncode_code_section,\n            return_sub_container,\n            ContainerKind.INITCODE,\n            id=\"RETURNCODE_RETURN\",\n        ),\n        pytest.param(\n            eofcreate_code_section,\n            revert_sub_container,\n            ContainerKind.RUNTIME,\n            id=\"EOFCREATE_REVERT\",\n        ),\n        pytest.param(\n            returncode_code_section,\n            revert_sub_container,\n            ContainerKind.INITCODE,\n            id=\"RETURNCODE_REVERT\",\n        ),\n    ],\n)\ndef test_container_combos_valid(\n    eof_state_test: EOFStateTestFiller,\n    code_section: Section,\n    sub_container: Container,\n    container_kind: ContainerKind,\n) -> None:\n    \"\"\"Test valid subcontainer reference / opcode combos.\"\"\"\n    eof_state_test(\n        container=Container(\n            sections=[\n                code_section,\n                sub_container,\n            ],\n            kind=container_kind,\n        ),\n        container_post=Account(storage={slot_code_worked: value_code_worked}),\n    )\n\n\n@pytest.mark.parametrize(\n    \"code_section,first_sub_container,container_kind\",\n    [\n        pytest.param(\n            eofcreate_code_section,\n            stop_sub_container,\n            ContainerKind.RUNTIME,\n            id=\"EOFCREATE_STOP\",\n        ),\n        pytest.param(\n            eofcreate_code_section,\n            return_sub_container,\n            ContainerKind.RUNTIME,\n            id=\"EOFCREATE_RETURN\",\n        ),\n        pytest.param(\n            returncode_code_section,\n            returncode_sub_container,\n            ContainerKind.INITCODE,\n            id=\"RETURNCODE_RETURNCODE\",\n        ),\n    ],\n)\ndef test_container_combos_invalid(\n    eof_test: EOFTestFiller,\n    code_section: Section,\n    first_sub_container: Container,\n    container_kind: ContainerKind,\n) -> None:\n    \"\"\"Test invalid subcontainer reference / opcode combos.\"\"\"\n    eof_test(\n        container=Container(\n            sections=[\n                code_section,\n                first_sub_container,\n            ],\n            kind=container_kind,\n        ),\n        expect_exception=EOFException.INCOMPATIBLE_CONTAINER_KIND,\n    )\n\n\n@pytest.mark.parametrize(\n    \"code_section,first_sub_container\",\n    [\n        pytest.param(\n            eofcreate_revert_code_section,\n            returncode_sub_container,\n            id=\"EOFCREATE_RETURNCODE\",\n        ),\n        pytest.param(\n            returncode_code_section,\n            stop_sub_container,\n            id=\"RETURNCODE_STOP\",\n        ),\n        pytest.param(\n            returncode_code_section,\n            return_sub_container,\n            id=\"RETURNCODE_RETURN\",\n        ),\n        pytest.param(\n            eofcreate_revert_code_section,\n            revert_sub_container,\n            id=\"EOFCREATE_REVERT\",\n        ),\n        pytest.param(\n            returncode_code_section,\n            revert_sub_container,\n            id=\"RETURNCODE_REVERT\",\n        ),\n    ],\n)\ndef test_container_combos_deeply_nested_valid(\n    eof_test: EOFTestFiller,\n    code_section: Section,\n    first_sub_container: Container,\n) -> None:\n    \"\"\"\n    Test valid subcontainer reference / opcode combos on a deep container\n    nesting level.\n    \"\"\"\n    valid_container = Container(\n        sections=[\n            code_section,\n            first_sub_container,\n        ],\n        kind=ContainerKind.INITCODE,\n    )\n\n    container = valid_container\n    while len(container) < MAX_BYTECODE_SIZE:\n        container = Container(\n            sections=[\n                eofcreate_revert_code_section,\n                Section.Container(container=container.copy()),\n            ],\n            kind=ContainerKind.INITCODE,\n        )\n\n    eof_test(\n        container=container,\n        deployed_container=None,  # Execution reverts before deployment\n    )\n\n\n@pytest.mark.parametrize(\n    \"code_section,first_sub_container\",\n    [\n        pytest.param(\n            eofcreate_revert_code_section,\n            stop_sub_container,\n            id=\"EOFCREATE_STOP\",\n        ),\n        pytest.param(\n            eofcreate_revert_code_section,\n            return_sub_container,\n            id=\"EOFCREATE_RETURN\",\n        ),\n        pytest.param(\n            returncode_code_section,\n            returncode_sub_container,\n            id=\"RETURNCODE_RETURNCODE\",\n        ),\n    ],\n)\ndef test_container_combos_deeply_nested_invalid(\n    eof_test: EOFTestFiller,\n    code_section: Section,\n    first_sub_container: Container,\n) -> None:\n    \"\"\"\n    Test invalid subcontainer reference / opcode combos on a deep container\n    nesting level.\n    \"\"\"\n    invalid_container = Container(\n        sections=[\n            code_section,\n            first_sub_container,\n        ],\n        kind=ContainerKind.INITCODE,\n    )\n\n    container = invalid_container\n    while len(container) < MAX_BYTECODE_SIZE:\n        container = Container(\n            sections=[\n                eofcreate_revert_code_section,\n                Section.Container(container=container.copy()),\n            ],\n            kind=ContainerKind.INITCODE,\n        )\n\n    eof_test(\n        container=container,\n        expect_exception=EOFException.INCOMPATIBLE_CONTAINER_KIND,\n    )\n\n\n@pytest.mark.parametrize(\n    \"code_section,first_sub_container,container_kind\",\n    [\n        pytest.param(\n            eofcreate_code_section,\n            returncode_sub_container,\n            ContainerKind.RUNTIME,\n            id=\"EOFCREATE_RETURNCODE\",\n        ),\n        pytest.param(\n            returncode_code_section,\n            stop_sub_container,\n            ContainerKind.INITCODE,\n            id=\"RETURNCODE_STOP\",\n        ),\n        pytest.param(\n            returncode_code_section,\n            return_sub_container,\n            ContainerKind.INITCODE,\n            id=\"RETURNCODE_RETURN\",\n        ),\n        pytest.param(\n            eofcreate_code_section,\n            revert_sub_container,\n            ContainerKind.RUNTIME,\n            id=\"EOFCREATE_REVERT\",\n        ),\n        pytest.param(\n            returncode_code_section,\n            revert_sub_container,\n            ContainerKind.INITCODE,\n            id=\"RETURNCODE_REVERT\",\n        ),\n    ],\n)\ndef test_container_combos_non_first_code_sections_valid(\n    eof_test: EOFTestFiller,\n    code_section: Section,\n    first_sub_container: Container,\n    container_kind: ContainerKind,\n) -> None:\n    \"\"\"\n    Test valid subcontainer reference / opcode combos in a non-first code\n    section.\n    \"\"\"\n    eof_test(\n        container=Container(\n            sections=[Section.Code(Op.JUMPF[i]) for i in range(1, 1024)]\n            + [code_section, first_sub_container],\n            kind=container_kind,\n        ),\n    )\n\n\n@pytest.mark.parametrize(\n    \"code_section,first_sub_container,container_kind\",\n    [\n        pytest.param(\n            eofcreate_code_section,\n            stop_sub_container,\n            ContainerKind.RUNTIME,\n            id=\"EOFCREATE_STOP\",\n        ),\n        pytest.param(\n            eofcreate_code_section,\n            return_sub_container,\n            ContainerKind.RUNTIME,\n            id=\"EOFCREATE_RETURN\",\n        ),\n        pytest.param(\n            returncode_code_section,\n            returncode_sub_container,\n            ContainerKind.INITCODE,\n            id=\"RETURNCODE_RETURNCODE\",\n        ),\n    ],\n)\ndef test_container_combos_non_first_code_sections_invalid(\n    eof_test: EOFTestFiller,\n    code_section: Section,\n    first_sub_container: Container,\n    container_kind: ContainerKind,\n) -> None:\n    \"\"\"\n    Test invalid subcontainer reference / opcode combos in a non-first code\n    section.\n    \"\"\"\n    eof_test(\n        container=Container(\n            sections=[Section.Code(Op.JUMPF[i]) for i in range(1, 1024)]\n            + [code_section, first_sub_container],\n            kind=container_kind,\n        ),\n        expect_exception=EOFException.INCOMPATIBLE_CONTAINER_KIND,\n    )\n\n\ndef test_container_both_kinds_same_sub(eof_test: EOFTestFiller) -> None:\n    \"\"\"\n    Test subcontainer conflicts (both EOFCREATE and RETURNCODE Reference).\n    \"\"\"\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.EOFCREATE[0](0, 0, 0, 0) + Op.JUMPF[1],\n                ),\n                Section.Code(\n                    code=Op.RETURNCODE[0](0, 0),\n                ),\n                revert_sub_container,\n            ],\n        ),\n        expect_exception=EOFException.INCOMPATIBLE_CONTAINER_KIND,\n    )\n\n\n@pytest.mark.parametrize(\"container_idx\", [0, 1, 255])\n@pytest.mark.parametrize(\n    \"sub_container\",\n    [\n        pytest.param(abort_sub_container, id=\"abort\"),\n        pytest.param(revert_sub_container, id=\"revert\"),\n    ],\n)\ndef test_container_ambiguous_kind(\n    eof_test: EOFTestFiller, container_idx: int, sub_container: Section\n) -> None:\n    \"\"\"\n    Test ambiguous container kind: a single subcontainer reference by both\n    EOFCREATE and RETURNCODE.\n    \"\"\"\n    sections = [\n        Section.Code(\n            code=(\n                sum(Op.EOFCREATE[i](0, 0, 0, 0) for i in range(container_idx))\n                + Op.EOFCREATE[container_idx](0, 0, 0, 0)\n                + Op.RETURNCODE[container_idx](0, 0)\n            ),\n        ),\n    ]\n    sections += (container_idx + 1) * [sub_container]\n\n    eof_test(\n        container=Container(\n            sections=sections,\n            kind=ContainerKind.INITCODE,\n        ),\n        expect_exception=EOFException.AMBIGUOUS_CONTAINER_KIND,\n    )\n\n\ndef test_container_both_kinds_different_sub(eof_test: EOFTestFiller) -> None:\n    \"\"\"Test multiple kinds of subcontainer at the same level.\"\"\"\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.EOFCREATE[0](0, 0, 0, 0) + Op.JUMPF[1],\n                ),\n                Section.Code(\n                    code=Op.RETURNCODE[1](0, 0),\n                ),\n                returncode_sub_container,\n                stop_sub_container,\n            ],\n            kind=ContainerKind.INITCODE,\n        ),\n        deployed_container=stop_container,\n    )\n\n\ndef test_container_multiple_eofcreate_references(eof_test: EOFTestFiller) -> None:\n    \"\"\"\n    Test multiple references to the same subcontainer from an EOFCREATE\n    operation.\n    \"\"\"\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.EOFCREATE[0](0, 0, 0, 0) + Op.EOFCREATE[0](0, 0, 0, 0) + Op.STOP,\n                ),\n                returncode_sub_container,\n            ],\n        ),\n    )\n\n\ndef test_container_multiple_returncode_references(eof_test: EOFTestFiller) -> None:\n    \"\"\"\n    Test multiple references to the same subcontainer from a RETURNCONTACT\n    operation.\n    \"\"\"\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0\n                    + Op.CALLDATALOAD\n                    + Op.RJUMPI[6]\n                    + Op.RETURNCODE[0](0, 0)\n                    + Op.RETURNCODE[0](0, 0)\n                ),\n                stop_sub_container,\n            ],\n            kind=ContainerKind.INITCODE,\n        ),\n    )\n\n\n@pytest.mark.parametrize(\"version\", [0, 255], ids=lambda x: x)\ndef test_subcontainer_wrong_eof_version(\n    eof_test: EOFTestFiller,\n    version: int,\n) -> None:\n    \"\"\"Test a subcontainer with the incorrect EOF version.\"\"\"\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=Op.EOFCREATE[0](0, 0, 0, 0) + Op.STOP,\n                ),\n                Section.Container(\n                    container=Container(version=[version], sections=[Section.Code(code=Op.STOP)])\n                ),\n            ],\n            kind=ContainerKind.RUNTIME,\n        ),\n        expect_exception=EOFException.INVALID_VERSION,\n    )\n\n\n@pytest.mark.parametrize(\"delta\", [-1, 1], ids=[\"smaller\", \"larger\"])\n@pytest.mark.parametrize(\"kind\", [ContainerKind.RUNTIME, ContainerKind.INITCODE])\ndef test_subcontainer_wrong_size(\n    eof_test: EOFTestFiller,\n    delta: int,\n    kind: ContainerKind,\n) -> None:\n    \"\"\"Test a subcontainer with the incorrect size in the parent's header.\"\"\"\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=(Op.EOFCREATE[0](0, 0, 0, 0) + Op.STOP)\n                    if kind == ContainerKind.RUNTIME\n                    else (Op.RETURNCODE[0](0, 0)),\n                ),\n                Section.Container(\n                    container=Container(sections=[Section.Code(code=Op.STOP)]),\n                    custom_size=len(stop_sub_container.data) + delta,\n                ),\n            ],\n            kind=kind,\n        ),\n        expect_exception=EOFException.INVALID_SECTION_BODIES_SIZE,\n    )\n\n\ndeep_container_parametrize = pytest.mark.parametrize(\n    [\"deepest_container\", \"exception\"],\n    [\n        pytest.param(Container.Code(Op.STOP), None, id=\"valid\"),\n        pytest.param(\n            Container.Code(code=Op.PUSH0),\n            EOFException.MISSING_STOP_OPCODE,\n            id=\"code-error\",\n        ),\n        pytest.param(\n            Container(raw_bytes=\"EF0100A94F5374FCE5EDBC8E2A8697C15331677E6EBF0B\"),\n            EOFException.INVALID_MAGIC,\n            id=\"structure-error\",\n        ),\n    ],\n)\n\n\n@deep_container_parametrize\n@pytest.mark.eof_test_only(reason=\"Initcontainer exceeds maximum\")\ndef test_deep_container(\n    eof_test: EOFTestFiller, deepest_container: Container, exception: EOFException | None\n) -> None:\n    \"\"\"\n    Test a very deeply nested container.\n\n    This test skips generating a state test because the initcode size is too\n    large.\n    \"\"\"\n    container = deepest_container\n    last_container = deepest_container\n    while len(container) < MAX_INITCODE_SIZE:\n        last_container = container\n        container = Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 + Op.PUSH0 + Op.PUSH0 + Op.PUSH0 + Op.EOFCREATE[0] + Op.STOP,\n                ),\n                Section.Container(\n                    container=Container(\n                        sections=[\n                            Section.Code(\n                                code=Op.PUSH0 + Op.PUSH0 + Op.RETURNCODE[0],\n                            ),\n                            Section.Container(container=last_container),\n                        ]\n                    )\n                ),\n            ],\n        )\n\n    eof_test(container=last_container, expect_exception=exception)\n\n\n@deep_container_parametrize\ndef test_deep_container_initcode(\n    eof_test: EOFTestFiller, deepest_container: Container, exception: EOFException | None\n) -> None:\n    \"\"\"Test a very deeply nested initcontainer.\"\"\"\n    container = Container(\n        sections=[\n            Section.Code(\n                code=Op.PUSH0 + Op.PUSH0 + Op.RETURNCODE[0],\n            ),\n            Section.Container(container=deepest_container),\n        ],\n        kind=ContainerKind.INITCODE,\n    )\n    last_container = container\n    while len(container) < MAX_INITCODE_SIZE:\n        last_container = container\n        container = Container(\n            sections=[\n                Section.Code(\n                    code=Op.PUSH0 + Op.PUSH0 + Op.RETURNCODE[0],\n                ),\n                Section.Container(\n                    container=Container(\n                        sections=[\n                            Section.Code(\n                                code=Op.PUSH0\n                                + Op.PUSH0\n                                + Op.PUSH0\n                                + Op.PUSH0\n                                + Op.EOFCREATE[0]\n                                + Op.STOP\n                            ),\n                            Section.Container(container=last_container),\n                        ]\n                    )\n                ),\n            ],\n            kind=ContainerKind.INITCODE,\n        )\n    eof_test(\n        container=last_container,\n        expect_exception=exception,\n        deployed_container=None,\n    )\n\n\n@pytest.mark.parametrize(\n    [\"width\", \"exception\"],\n    [\n        pytest.param(256, None, id=\"256\"),\n        pytest.param(257, EOFException.TOO_MANY_CONTAINERS, id=\"257\"),\n        pytest.param(\n            0x8000,\n            EOFException.CONTAINER_SIZE_ABOVE_LIMIT,\n            marks=pytest.mark.eof_test_only(reason=\"int too big to convert\"),\n            id=\"negative_i16\",\n        ),\n        pytest.param(\n            0xFFFF,\n            EOFException.CONTAINER_SIZE_ABOVE_LIMIT,\n            marks=pytest.mark.eof_test_only(reason=\"int too big to convert\"),\n            id=\"max_u16\",\n        ),\n    ],\n)\ndef test_wide_container(eof_test: EOFTestFiller, width: int, exception: EOFException) -> None:\n    \"\"\"Test a container with the maximum number of sub-containers.\"\"\"\n    create_code: Bytecode = Op.STOP\n    for x in range(0, 256):\n        create_code = Op.EOFCREATE[x](0, 0, 0, 0) + create_code\n    eof_test(\n        container=Container(\n            sections=[\n                Section.Code(\n                    code=create_code,\n                ),\n                *(\n                    [\n                        Section.Container(\n                            container=Container(\n                                sections=[\n                                    Section.Code(\n                                        code=Op.PUSH0 + Op.PUSH0 + Op.RETURNCODE[0],\n                                    ),\n                                    stop_sub_container,\n                                ]\n                            )\n                        )\n                    ]\n                    * width\n                ),\n            ]\n        ),\n        expect_exception=exception,\n    )\n\n\n@pytest.mark.parametrize(\n    \"container\",\n    [\n        pytest.param(\n            Container(\n                sections=[\n                    Section.Code(\n                        Op.CALLDATASIZE\n                        + Op.PUSH1[0]\n                        + Op.PUSH1[255]\n                        + Op.PUSH1[0]\n                        + Op.EOFCREATE[0]\n                        + Op.POP\n                        + Op.STOP\n                    ),\n                    abort_sub_container,\n                ],\n                expected_bytecode=\"\"\"\n                ef0001010004020001000b03000100000014ff0000000080000436600060ff6000ec005000ef000101000402\n                00010001ff00000000800000fe\"\"\",\n            ),\n            id=\"eofcreate_0\",\n        ),\n        pytest.param(\n            Container(\n                sections=[\n                    Section.Code(Op.PUSH1[0] + Op.RJUMP[0] + Op.STOP),\n                    abort_sub_container,\n                ],\n                expected_bytecode=\"\"\"\n                ef0001010004020001000603000100000014ff000000008000016000e0000000ef000101000402000100\n                01ff00000000800000fe\"\"\",\n                # Originally this test was \"valid\" because it was created\n                # before \"orphan subcontainer\" rule was introduced.\n                validity_error=EOFException.ORPHAN_SUBCONTAINER,\n            ),\n            id=\"orphan_subcontainer_0\",\n        ),\n        pytest.param(\n            Container(\n                sections=[\n                    Section.Code(Op.PUSH1[0] + Op.RJUMP[0] + Op.STOP),\n                    abort_sub_container,\n                    Section.Data(custom_size=2),\n                ],\n                expected_bytecode=\"\"\"\n                ef0001010004020001000603000100000014ff000200008000016000e0000000ef000101000402000100\n                01ff00000000800000fe\"\"\",\n                # Originally this test was \"valid\" but against the current spec\n                # it contains two errors: data section truncated and orphan\n                # subcontainer.\n                validity_error=EOFException.TOPLEVEL_CONTAINER_TRUNCATED,\n            ),\n            id=\"orphan_subcontainer_0_and_truncated_data\",\n        ),\n        pytest.param(\n            Container(\n                sections=[\n                    Section.Code(Op.PUSH1[0] + Op.RJUMP[0] + Op.STOP),\n                    abort_sub_container,\n                    Section.Data(\"aabb\"),\n                ],\n                expected_bytecode=\"\"\"\n                ef0001010004020001000603000100000014ff000200008000016000e0000000ef000101000402000100\n                01ff00000000800000feaabb\"\"\",\n                # Originally this test was \"valid\" because it was created\n                # before \"orphan subcontainer\" rule was introduced.\n                validity_error=EOFException.ORPHAN_SUBCONTAINER,\n            ),\n            id=\"orphan_subcontainer_0_and_data\",\n        ),\n        pytest.param(\n            Container(\n                sections=[\n                    Section.Code(Op.EOFCREATE[0](0, 0, 0, 0) + Op.STOP),\n                    Section.Container(\"aabbccddeeff\"),\n                ],\n                # The original test has been modified to reference the\n                # subcontainer by EOFCREATE.\n                validity_error=EOFException.INVALID_MAGIC,\n            ),\n            id=\"subcontainer_0_with_invalid_prefix\",\n        ),\n        pytest.param(\n            Container(\n                sections=[\n                    Section.Code(\n                        Op.CALLDATASIZE\n                        + Op.PUSH1[0]\n                        + Op.PUSH1[255]\n                        + Op.PUSH1[0]\n                        + Op.EOFCREATE[1]\n                        + Op.POP\n                        + Op.STOP\n                    )\n                ]\n                + 2 * [abort_sub_container],\n                expected_bytecode=\"\"\"\n                ef0001010004020001000b0300020000001400000014ff0000000080000436600060ff6000ec015000ef00010100\n                040200010001ff00000000800000feef00010100040200010001ff00000000800000fe\"\"\",\n                # Originally this test was \"valid\" because it was created\n                # before \"orphan subcontainer\" rule was introduced.\n                validity_error=EOFException.ORPHAN_SUBCONTAINER,\n            ),\n            id=\"eofcreate_1_orphan_subcontainer_0\",\n        ),\n        pytest.param(\n            Container(\n                sections=[\n                    Section.Code(Op.PUSH1[0] + Op.RJUMP[0] + Op.STOP),\n                    abort_sub_container,\n                    Section.Container(Container.Code(Op.PUSH0 + Op.PUSH0 + Op.RETURN)),\n                ],\n                expected_bytecode=\"\"\"\n                ef000101000402000100060300020000001400000016ff000000008000016000e0000000ef000101000402000100\n                01ff00000000800000feef00010100040200010003ff000000008000025f5ff3\"\"\",\n                # Originally this test was \"valid\" because it was created\n                # before \"orphan subcontainer\" rule was introduced.\n                validity_error=EOFException.ORPHAN_SUBCONTAINER,\n            ),\n            id=\"two_orphan_subcontainers\",\n        ),\n        pytest.param(\n            Container(\n                sections=[\n                    Section.Code(\n                        Op.CALLDATASIZE\n                        + Op.PUSH1[0]\n                        + Op.PUSH1[255]\n                        + Op.PUSH1[0]\n                        + Op.EOFCREATE[255]\n                        + Op.POP\n                        + Op.STOP\n                    )\n                ]\n                + 256 * [abort_sub_container],\n                # Originally this test was \"valid\" because it was created\n                # before \"orphan subcontainer\" rule was introduced.\n                validity_error=EOFException.ORPHAN_SUBCONTAINER,\n            ),\n            id=\"eofcreate_255_max_orphan_subcontainers\",\n        ),\n        pytest.param(\n            Container(\n                sections=[Section.Code(Op.PUSH1[0] + Op.RJUMP[0] + Op.STOP)]\n                + 256 * [abort_sub_container],\n                # Originally this test was \"valid\" because it was created\n                # before \"orphan subcontainer\" rule was introduced.\n                validity_error=EOFException.ORPHAN_SUBCONTAINER,\n            ),\n            id=\"max_orphan_subcontainers\",\n        ),\n    ],\n)\ndef test_migrated_eofcreate(eof_test: EOFTestFiller, container: Container) -> None:\n    \"\"\"Tests migrated from EOFTests/efValidation/EOF1_eofcreate_valid_.json.\"\"\"\n    eof_test(container=container, expect_exception=container.validity_error)\n\n\ndef test_dangling_initcode_subcontainer_bytes(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"\n    Initcode mode EOF Subcontainer test with subcontainer containing dangling\n    bytes.\n    \"\"\"\n    eof_test(\n        container=Container(\n            sections=[\n                returncode_code_section,\n                Section.Container(\n                    container=Container(\n                        raw_bytes=stop_sub_container.data + b\"\\x99\",\n                    ),\n                ),\n            ],\n            kind=ContainerKind.INITCODE,\n        ),\n        expect_exception=EOFException.INVALID_SECTION_BODIES_SIZE,\n    )\n\n\ndef test_dangling_runtime_subcontainer_bytes(\n    eof_test: EOFTestFiller,\n) -> None:\n    \"\"\"\n    Runtime mode EOF Subcontainer test with subcontainer containing dangling\n    bytes.\n    \"\"\"\n    eof_test(\n        container=Container(\n            sections=[\n                eofcreate_code_section,\n                Section.Container(\n                    container=Container(\n                        raw_bytes=returncode_sub_container.data + b\"\\x99\",\n                    ),\n                ),\n            ],\n        ),\n        expect_exception=EOFException.INVALID_SECTION_BODIES_SIZE,\n    )\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip7873_tx_create/__init__.py",
    "content": "\"\"\"\nTest cases for [EIP-7873: TXCREATE and InitcodeTransaction](https://eips.ethereum.org/EIPS/eip-7873).\n\"\"\"\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip7873_tx_create/spec.py",
    "content": "\"\"\"EOF V1 Constants used throughout all tests.\"\"\"\n\nTXCREATE_FAILURE = 0\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip7873_tx_create/test_creation_tx.py",
    "content": "\"\"\"Test bad TXCREATE cases.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_base_types.base_types import Address, Bytes\nfrom ethereum_test_tools import (\n    Account,\n    Alloc,\n    Environment,\n    StateTestFiller,\n    Transaction,\n)\nfrom ethereum_test_tools import Initcode as LegacyInitcode\nfrom ethereum_test_types import TransactionReceipt\nfrom ethereum_test_types.eof.v1 import Container\n\nfrom ....prague.eip7702_set_code_tx.spec import Spec\nfrom .. import EOF_FORK_NAME\nfrom ..eip7620_eof_create.helpers import (\n    smallest_initcode_subcontainer,\n    smallest_runtime_subcontainer,\n)\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-7873.md\"\nREFERENCE_SPEC_VERSION = \"23d96ceff8f0690432ab91089ae257f08f32340f\"\n\npytestmark = pytest.mark.valid_from(EOF_FORK_NAME)\n\n\n@pytest.mark.with_all_contract_creating_tx_types(selector=lambda tx_type: tx_type != 6)\n@pytest.mark.parametrize(\n    \"deploy_code\",\n    [\n        Bytes(\"0xEF\"),\n        Bytes(\"0xEF00\"),\n        Bytes(\"0xEF0001\"),\n        Bytes(\"0xEF01\"),\n        smallest_runtime_subcontainer,\n        smallest_initcode_subcontainer,\n    ],\n)\ndef test_legacy_create_tx_legacy_initcode_eof_bytecode(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    tx_type: int,\n    deploy_code: Bytes | Container,\n) -> None:\n    \"\"\"\n    Test that a legacy contract creation tx cannot create EOF code.\n\n    This tests only ensures EIP-3541 behavior is kept, not altered by EIP-7873\n    \"\"\"\n    env = Environment()\n    sender = pre.fund_eoa()\n\n    initcode = LegacyInitcode(deploy_code=deploy_code)\n\n    tx = Transaction(\n        ty=tx_type,\n        sender=sender,\n        to=None,\n        gas_limit=100000,\n        data=initcode,\n    )\n\n    destination_contract_address = tx.created_contract\n\n    post = {\n        destination_contract_address: Account.NONEXISTENT,\n    }\n\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\n@pytest.mark.with_all_contract_creating_tx_types(selector=lambda tx_type: tx_type != 6)\n@pytest.mark.parametrize(\n    \"initcode\",\n    [\n        Bytes(\"0xEF\"),\n        Bytes(\"0xEF01\"),\n        Bytes(\"0xEF0101\"),\n        Spec.delegation_designation(Address(0xAA)),\n        Bytes(\"0xEF02\"),\n        Bytes(\"0xEF00\"),\n        Bytes(\"0xEF0001\"),\n        smallest_runtime_subcontainer,\n        smallest_initcode_subcontainer,\n    ],\n)\ndef test_legacy_create_tx_prefix_initcode(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    tx_type: int,\n    initcode: Bytes,\n) -> None:\n    \"\"\"\n    Test that a legacy contract creation tx behaves as it did before EIP-7873\n    for initcode stating with `EF`. The transaction should be valid but fail on\n    executing of the first byte `EF`.\n    \"\"\"\n    env = Environment()\n    sender = pre.fund_eoa()\n    gas_limit = 100_000\n\n    tx = Transaction(\n        ty=tx_type,\n        sender=sender,\n        to=None,\n        gas_limit=gas_limit,\n        data=initcode,\n        expected_receipt=TransactionReceipt(gas_used=gas_limit),\n    )\n\n    destination_contract_address = tx.created_contract\n\n    post = {destination_contract_address: Account.NONEXISTENT, sender: Account(nonce=1)}\n\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip7873_tx_create/test_txcreate.py",
    "content": "\"\"\"Test good TXCREATE cases.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_base_types import Storage\nfrom ethereum_test_base_types.base_types import Address\nfrom ethereum_test_tools import (\n    Account,\n    Alloc,\n    Environment,\n    EVMCodeType,\n    StateTestFiller,\n    Transaction,\n    compute_eofcreate_address,\n)\nfrom ethereum_test_types.eof.v1 import Container, Section\nfrom ethereum_test_vm import Bytecode\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .. import EOF_FORK_NAME\nfrom ..eip7069_extcall.spec import EXTCALL_SUCCESS, LEGACY_CALL_SUCCESS\nfrom ..eip7620_eof_create.helpers import (\n    slot_call_result,\n    slot_calldata,\n    slot_code_worked,\n    slot_create_address,\n    slot_data_load,\n    slot_last_slot,\n    slot_returndata_size,\n    smallest_initcode_subcontainer,\n    smallest_runtime_subcontainer,\n    value_canary_to_be_overwritten,\n    value_code_worked,\n    value_long_value,\n)\nfrom .spec import TXCREATE_FAILURE\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-7873.md\"\nREFERENCE_SPEC_VERSION = \"1115fe6110fcc0efc823fb7f8f5cd86c42173efe\"\n\npytestmark = pytest.mark.valid_from(EOF_FORK_NAME)\n\n\n@pytest.mark.with_all_evm_code_types\n@pytest.mark.parametrize(\"tx_initcode_count\", [1, 255, 256])\ndef test_simple_txcreate(state_test: StateTestFiller, pre: Alloc, tx_initcode_count: int) -> None:\n    \"\"\"Verifies a simple TXCREATE case.\"\"\"\n    env = Environment()\n    sender = pre.fund_eoa()\n    initcode_hash = smallest_initcode_subcontainer.hash\n    contract_address = pre.deploy_contract(\n        code=Op.SSTORE(0, Op.TXCREATE(tx_initcode_hash=initcode_hash)) + Op.STOP,\n        storage={0: 0xB17D},  # a canary to be overwritten\n    )\n    # Storage in 0 should have the address,\n    post = {contract_address: Account(storage={0: compute_eofcreate_address(contract_address, 0)})}\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=10_000_000,\n        sender=sender,\n        initcodes=[smallest_initcode_subcontainer] * tx_initcode_count,\n    )\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\ndef test_txcreate_then_dataload(\n    state_test: StateTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    Verifies that a contract returned with auxdata does not overwrite the\n    parent data.\n    \"\"\"\n    env = Environment()\n    sender = pre.fund_eoa()\n    small_auxdata_container = Container(\n        sections=[\n            Section.Code(code=Op.RETURNCODE[0](0, 32)),\n            Section.Container(container=smallest_runtime_subcontainer),\n        ],\n    )\n    initcode_hash = small_auxdata_container.hash\n    contract_address = pre.deploy_contract(\n        code=Container(\n            sections=[\n                Section.Code(\n                    code=Op.SSTORE(0, Op.TXCREATE(tx_initcode_hash=initcode_hash))\n                    + Op.SSTORE(slot_data_load, Op.DATALOAD(0))\n                    + Op.STOP,\n                ),\n                Section.Data(data=value_long_value),\n            ],\n        ),\n        storage={slot_data_load: value_canary_to_be_overwritten},\n    )\n\n    post = {\n        contract_address: Account(\n            storage={\n                0: compute_eofcreate_address(contract_address, 0),\n                slot_data_load: value_long_value,\n            }\n        )\n    }\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=10_000_000,\n        sender=sender,\n        initcodes=[small_auxdata_container],\n    )\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.with_all_evm_code_types\ndef test_txcreate_then_call(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    evm_code_type: EVMCodeType,\n) -> None:\n    \"\"\"\n    Verifies a simple TXCREATE case, and then calls the deployed contract.\n    \"\"\"\n    env = Environment()\n    callable_contract = Container(\n        sections=[\n            Section.Code(\n                code=Op.SSTORE(slot_code_worked, value_code_worked) + Op.STOP,\n            ),\n        ]\n    )\n    callable_contract_initcode = Container(\n        sections=[\n            Section.Code(\n                code=Op.RETURNCODE[0](0, 0),\n            ),\n            Section.Container(container=callable_contract),\n        ]\n    )\n    initcode_hash = callable_contract_initcode.hash\n\n    sender = pre.fund_eoa()\n    opcode = Op.EXTCALL if evm_code_type == EVMCodeType.EOF_V1 else Op.CALL\n    contract_address = pre.deploy_contract(\n        code=Op.SSTORE(slot_create_address, Op.TXCREATE(tx_initcode_hash=initcode_hash))\n        + opcode(address=Op.SLOAD(slot_create_address))\n        + Op.SSTORE(slot_code_worked, value_code_worked)\n        + Op.STOP,\n    )\n\n    callable_address = compute_eofcreate_address(contract_address, 0)\n\n    # Storage in 0 should have the address,\n    #\n    post = {\n        contract_address: Account(\n            storage={slot_create_address: callable_address, slot_code_worked: value_code_worked}\n        ),\n        callable_address: Account(storage={slot_code_worked: value_code_worked}),\n    }\n\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=10_000_000,\n        sender=sender,\n        initcodes=[callable_contract_initcode],\n    )\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.with_all_evm_code_types\n@pytest.mark.parametrize(\n    \"auxdata_bytes\",\n    [\n        pytest.param(b\"\", id=\"zero\"),\n        pytest.param(b\"aabbcc\", id=\"short\"),\n        pytest.param(b\"aabbccddeef\", id=\"one_byte_short\"),\n        pytest.param(b\"aabbccddeeff\", id=\"exact\"),\n        pytest.param(b\"aabbccddeeffg\", id=\"one_byte_long\"),\n        pytest.param(b\"aabbccddeeffgghhii\", id=\"extra\"),\n    ],\n)\ndef test_auxdata_variations(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    auxdata_bytes: bytes,\n) -> None:\n    \"\"\"Verifies that auxdata bytes are correctly handled in RETURNCODE.\"\"\"\n    env = Environment()\n    auxdata_size = len(auxdata_bytes)\n    pre_deploy_header_data_size = 18\n    pre_deploy_data = b\"AABBCC\"\n    deploy_success = len(auxdata_bytes) + len(pre_deploy_data) >= pre_deploy_header_data_size\n\n    runtime_subcontainer = Container(\n        name=\"Runtime Subcontainer with truncated data\",\n        sections=[\n            Section.Code(code=Op.STOP),\n            Section.Data(data=pre_deploy_data, custom_size=pre_deploy_header_data_size),\n        ],\n    )\n\n    initcode_subcontainer = Container(\n        name=\"Initcode Subcontainer\",\n        sections=[\n            Section.Code(\n                code=Op.MSTORE(0, Op.PUSH32(auxdata_bytes.ljust(32, b\"\\0\")))\n                + Op.RETURNCODE[0](0, auxdata_size),\n            ),\n            Section.Container(container=runtime_subcontainer),\n        ],\n    )\n    initcode_hash = initcode_subcontainer.hash\n\n    sender = pre.fund_eoa()\n    contract_address = pre.deploy_contract(\n        code=Op.SSTORE(slot_create_address, Op.TXCREATE(tx_initcode_hash=initcode_hash)) + Op.STOP,\n        storage={slot_create_address: value_canary_to_be_overwritten},\n    )\n\n    # Storage in 0 should have the address,\n    post = {\n        contract_address: Account(\n            storage={\n                slot_create_address: compute_eofcreate_address(contract_address, 0)\n                if deploy_success\n                else b\"\\0\"\n            }\n        )\n    }\n\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=10_000_000,\n        sender=sender,\n        initcodes=[initcode_subcontainer],\n    )\n\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.with_all_evm_code_types\ndef test_calldata(state_test: StateTestFiller, pre: Alloc) -> None:\n    \"\"\"Verifies CALLDATA passing through TXCREATE.\"\"\"\n    env = Environment()\n\n    initcode_subcontainer = Container(\n        name=\"Initcode Subcontainer\",\n        sections=[\n            Section.Code(\n                code=Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE)\n                + Op.SSTORE(slot_calldata, Op.MLOAD(0))\n                + Op.RETURNCODE[0](0, Op.CALLDATASIZE),\n            ),\n            Section.Container(container=smallest_runtime_subcontainer),\n        ],\n    )\n    initcode_hash = initcode_subcontainer.hash\n\n    calldata_size = 32\n    calldata = b\"\\x45\" * calldata_size\n    sender = pre.fund_eoa()\n    contract_address = pre.deploy_contract(\n        code=Op.MSTORE(0, Op.PUSH32(calldata))\n        + Op.SSTORE(\n            slot_create_address,\n            Op.TXCREATE(tx_initcode_hash=initcode_hash, input_size=calldata_size),\n        )\n        + Op.STOP,\n    )\n\n    # deployed contract is smallest plus data\n    deployed_contract = Container(\n        name=\"deployed contract\",\n        sections=[\n            *smallest_runtime_subcontainer.sections,\n            Section.Data(data=calldata),\n        ],\n    )\n    # factory contract Storage in 0 should have the created address,\n    # created contract storage in 0 should have the calldata\n    created_address = compute_eofcreate_address(contract_address, 0)\n    post = {\n        contract_address: Account(storage={slot_create_address: created_address}),\n        created_address: Account(code=deployed_contract, storage={slot_calldata: calldata}),\n    }\n\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=10_000_000,\n        sender=sender,\n        initcodes=[initcode_subcontainer],\n    )\n\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.parametrize(\"outer_create_opcode\", [Op.TXCREATE, Op.EOFCREATE])\n@pytest.mark.parametrize(\"inner_create_opcode\", [Op.TXCREATE, Op.EOFCREATE])\n@pytest.mark.parametrize(\"outer_create_reverts\", [True, False])\ndef test_txcreate_in_initcode(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    outer_create_opcode: Op,\n    inner_create_opcode: Op,\n    outer_create_reverts: bool,\n) -> None:\n    \"\"\"\n    Verifies an TXCREATE occurring within initcode creates that contract.\n\n    Via the `outer_create_reverts` also verifies a TXCREATE occurring in an\n    initcode is rolled back when the initcode reverts.\n    \"\"\"\n    smallest_initcode_subcontainer_hash = smallest_initcode_subcontainer.hash\n    inner_create_bytecode = (\n        Op.TXCREATE(tx_initcode_hash=smallest_initcode_subcontainer_hash)\n        if inner_create_opcode == Op.TXCREATE\n        else Op.EOFCREATE[1](0, 0, 0, 0)\n    )\n    # The terminating code of the inner initcontainer, the RJUMPI is a trick to\n    # not need to deal with the subcontainer indices\n    revert_code = Op.REVERT(0, 0)\n    terminating_code = (\n        Op.RJUMPI[len(revert_code)](0) + revert_code + Op.RETURNCODE[0](0, 0)\n        if outer_create_reverts\n        else Op.RETURNCODE[0](0, 0)\n    )\n    nested_initcode_subcontainer = Container(\n        sections=[\n            Section.Code(\n                code=Op.SSTORE(slot_create_address, inner_create_bytecode)\n                + Op.SSTORE(slot_code_worked, value_code_worked)\n                + terminating_code,\n            ),\n            Section.Container(container=smallest_runtime_subcontainer),\n        ]\n        + (\n            [Section.Container(container=smallest_initcode_subcontainer)]\n            if inner_create_opcode == Op.EOFCREATE\n            else []\n        )\n    )\n    nested_initcode_subcontainer_hash = nested_initcode_subcontainer.hash\n\n    outer_create_bytecode = (\n        Op.TXCREATE(tx_initcode_hash=nested_initcode_subcontainer_hash)\n        if outer_create_opcode == Op.TXCREATE\n        else Op.EOFCREATE[0](0, 0, 0, 0)\n    )\n\n    env = Environment()\n    sender = pre.fund_eoa()\n    contract_code = Container(\n        sections=[\n            Section.Code(\n                code=Op.SSTORE(slot_create_address, outer_create_bytecode)\n                + Op.SSTORE(slot_code_worked, value_code_worked)\n                + Op.STOP,\n            ),\n        ]\n        + (\n            [Section.Container(container=nested_initcode_subcontainer)]\n            if outer_create_opcode == Op.EOFCREATE\n            else []\n        )\n    )\n    contract_address = pre.deploy_contract(code=contract_code)\n\n    outer_address = compute_eofcreate_address(contract_address, 0)\n    inner_address = compute_eofcreate_address(outer_address, 0)\n    post = {\n        contract_address: Account(\n            storage={\n                slot_create_address: outer_address if not outer_create_reverts else 0,\n                slot_code_worked: value_code_worked,\n            }\n        ),\n        outer_address: Account(\n            storage={slot_create_address: inner_address, slot_code_worked: value_code_worked}\n        )\n        if not outer_create_reverts\n        else Account.NONEXISTENT,\n        inner_address: Account() if not outer_create_reverts else Account.NONEXISTENT,\n    }\n\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=10_000_000,\n        sender=sender,\n        initcodes=[nested_initcode_subcontainer, smallest_initcode_subcontainer],\n    )\n\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.with_all_evm_code_types\ndef test_return_data_cleared(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    evm_code_type: EVMCodeType,\n) -> None:\n    \"\"\"\n    Verifies the return data is not reused from a extcall but is cleared upon\n    TXCREATE.\n    \"\"\"\n    env = Environment()\n    value_return_canary = 0x4158675309\n    value_return_canary_size = 5\n    callable_address = pre.deploy_contract(\n        code=Container(\n            sections=[\n                Section.Code(\n                    code=Op.MSTORE(0, value_return_canary)\n                    + Op.RETURN(0, value_return_canary_size),\n                )\n            ]\n        )\n    )\n    initcode_hash = smallest_initcode_subcontainer.hash\n\n    slot_returndata_size_2 = slot_last_slot * 2 + slot_returndata_size\n    sender = pre.fund_eoa()\n    opcode = Op.EXTCALL if evm_code_type == EVMCodeType.EOF_V1 else Op.CALL\n    contract_address = pre.deploy_contract(\n        code=Op.SSTORE(slot_call_result, opcode(address=callable_address))\n        + Op.SSTORE(slot_returndata_size, Op.RETURNDATASIZE)\n        + Op.SSTORE(slot_create_address, Op.TXCREATE(tx_initcode_hash=initcode_hash))\n        + Op.SSTORE(slot_returndata_size_2, Op.RETURNDATASIZE)\n        + Op.SSTORE(slot_code_worked, value_code_worked)\n        + Op.STOP,\n    )\n\n    new_contract_address = compute_eofcreate_address(contract_address, 0)\n    post = {\n        contract_address: Account(\n            storage={\n                slot_call_result: EXTCALL_SUCCESS\n                if evm_code_type == EVMCodeType.EOF_V1\n                else LEGACY_CALL_SUCCESS,\n                slot_returndata_size: value_return_canary_size,\n                slot_create_address: new_contract_address,\n                slot_returndata_size_2: 0,\n                slot_code_worked: value_code_worked,\n            },\n            nonce=2,\n        ),\n        callable_address: Account(nonce=1),\n        new_contract_address: Account(nonce=1),\n    }\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=10_000_000,\n        sender=sender,\n        initcodes=[smallest_initcode_subcontainer],\n    )\n\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.with_all_evm_code_types\ndef test_address_collision(\n    state_test: StateTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"Tests address collision.\"\"\"\n    env = Environment(\n        gas_limit=300_000_000_000,\n    )\n\n    slot_create_address_2 = slot_last_slot * 2 + slot_create_address\n    slot_create_address_3 = slot_last_slot * 3 + slot_create_address\n    sender = pre.fund_eoa()\n    initcode_hash = smallest_initcode_subcontainer.hash\n    contract_address = pre.deploy_contract(\n        code=Op.SSTORE(slot_create_address, Op.TXCREATE(tx_initcode_hash=initcode_hash))\n        + Op.SSTORE(slot_create_address_2, Op.TXCREATE(tx_initcode_hash=initcode_hash))\n        + Op.SSTORE(slot_create_address_3, Op.TXCREATE(tx_initcode_hash=initcode_hash, salt=1))\n        + Op.SSTORE(slot_code_worked, value_code_worked)\n        + Op.STOP,\n    )\n    salt_zero_address = compute_eofcreate_address(contract_address, 0)\n    salt_one_address = compute_eofcreate_address(contract_address, 1)\n\n    # Hard-code address for collision, no other way to do this.\n    # We should mark tests that do this, and fail on unmarked tests.\n    pre[salt_one_address] = Account(balance=1, nonce=1)\n\n    post = {\n        contract_address: Account(\n            storage={\n                slot_create_address: salt_zero_address,\n                # had an in-transaction collision\n                slot_create_address_2: TXCREATE_FAILURE,\n                # had a pre-existing collision\n                slot_create_address_3: TXCREATE_FAILURE,\n                slot_code_worked: value_code_worked,\n            }\n        )\n    }\n\n    # Multiple create fails is expensive, use an absurd amount of gas\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=300_000_000_000,\n        sender=sender,\n        initcodes=[smallest_initcode_subcontainer],\n    )\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.with_all_evm_code_types\ndef test_txcreate_revert_eof_returndata(\n    state_test: StateTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    Verifies the return data is not being deployed, even if happens to be valid\n    EOF.\n    \"\"\"\n    env = Environment()\n    code_reverts_with_calldata = Container(\n        name=\"Initcode Subcontainer reverting with its calldata\",\n        sections=[\n            Section.Code(\n                code=Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE) + Op.REVERT(0, Op.CALLDATASIZE),\n            ),\n        ],\n    )\n    initcode_hash = code_reverts_with_calldata.hash\n\n    sender = pre.fund_eoa()\n    contract_address = pre.deploy_contract(\n        code=Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE)\n        + Op.SSTORE(\n            slot_create_address,\n            Op.TXCREATE(tx_initcode_hash=initcode_hash, input_size=Op.CALLDATASIZE),\n        )\n        + Op.SSTORE(slot_returndata_size, Op.RETURNDATASIZE)\n        + Op.STOP,\n        storage={slot_create_address: value_canary_to_be_overwritten},\n    )\n    new_address = compute_eofcreate_address(contract_address, 0)\n\n    post = {\n        contract_address: Account(\n            storage={\n                slot_create_address: 0,\n                slot_returndata_size: len(smallest_runtime_subcontainer),\n            },\n        ),\n        new_address: Account.NONEXISTENT,\n    }\n\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=1_000_000,\n        sender=sender,\n        initcodes=[code_reverts_with_calldata],\n        # Simplest possible valid EOF container, which is going to be\n        # revert-returned from initcode and must not end up being deployed.\n        data=smallest_runtime_subcontainer,\n    )\n\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.with_all_evm_code_types\n@pytest.mark.parametrize(\n    [\"destination_code\", \"expected_result\"],\n    [\n        pytest.param(Op.ADDRESS, \"destination\"),\n        pytest.param(Op.CALLER, \"caller\"),\n        pytest.param(Op.CALLVALUE, \"eofcreate_value\"),\n        pytest.param(Op.ORIGIN, \"sender\"),\n        pytest.param(Op.SELFBALANCE, \"selfbalance\"),\n        pytest.param(Op.BALANCE(Op.CALLER), \"factorybalance\"),\n    ],\n)\ndef test_txcreate_context(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    destination_code: Bytecode,\n    expected_result: str,\n) -> None:\n    \"\"\"Test TXCREATE's initcode context instructions.\"\"\"\n    env = Environment()\n    sender = pre.fund_eoa()\n    value = 0x1123\n    txcreate_value = 0x13\n\n    initcode = Container(\n        sections=[\n            Section.Code(Op.SSTORE(slot_call_result, destination_code) + Op.RETURNCODE[0](0, 0)),\n            Section.Container(smallest_runtime_subcontainer),\n        ]\n    )\n    initcode_hash = initcode.hash\n\n    factory_address = pre.deploy_contract(\n        code=Op.SSTORE(slot_code_worked, value_code_worked)\n        + Op.TXCREATE(tx_initcode_hash=initcode_hash, value=txcreate_value)\n        + Op.STOP\n    )\n\n    destination_contract_address = compute_eofcreate_address(factory_address, 0)\n\n    tx = Transaction(\n        sender=sender,\n        to=factory_address,\n        gas_limit=200_000,\n        value=value,\n        initcodes=[initcode],\n    )\n\n    expected_bytes: Address | int\n    if expected_result == \"destination\":\n        expected_bytes = destination_contract_address\n    elif expected_result == \"caller\":\n        expected_bytes = factory_address\n    elif expected_result == \"sender\":\n        expected_bytes = sender\n    elif expected_result == \"eofcreate_value\":\n        expected_bytes = txcreate_value\n    elif expected_result == \"selfbalance\":\n        expected_bytes = txcreate_value\n    elif expected_result == \"factorybalance\":\n        # Factory receives value from sender and passes on eofcreate_value as\n        # endowment.\n        expected_bytes = value - txcreate_value\n    else:\n        raise TypeError(\"Unexpected expected_result\", expected_result)\n\n    calling_storage = {\n        slot_code_worked: value_code_worked,\n    }\n    destination_contract_storage = {\n        slot_call_result: expected_bytes,\n    }\n\n    post = {\n        factory_address: Account(storage=calling_storage, balance=value - txcreate_value),\n        destination_contract_address: Account(\n            storage=destination_contract_storage, balance=txcreate_value\n        ),\n    }\n\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\n@pytest.mark.with_all_evm_code_types\ndef test_txcreate_memory_context(\n    state_test: StateTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    Verifies an TXCREATE frame enjoys a separate EVM memory from its caller\n    frame.\n    \"\"\"\n    env = Environment()\n    destination_storage = Storage()\n    contract_storage = Storage()\n    initcontainer = Container(\n        sections=[\n            Section.Code(\n                Op.SSTORE(destination_storage.store_next(value_code_worked), value_code_worked)\n                + Op.SSTORE(destination_storage.store_next(0), Op.MSIZE())\n                + Op.SSTORE(destination_storage.store_next(0), Op.MLOAD(0))\n                + Op.MSTORE(0, 2)\n                + Op.MSTORE(32, 2)\n                + Op.RETURNCODE[0](0, 0)\n            ),\n            Section.Container(smallest_runtime_subcontainer),\n        ]\n    )\n    initcode_hash = initcontainer.hash\n    contract_address = pre.deploy_contract(\n        code=Op.SSTORE(contract_storage.store_next(value_code_worked), value_code_worked)\n        + Op.MSTORE(0, 1)\n        + Op.TXCREATE(tx_initcode_hash=initcode_hash)\n        + Op.SSTORE(contract_storage.store_next(32), Op.MSIZE())\n        + Op.SSTORE(contract_storage.store_next(1), Op.MLOAD(0))\n        + Op.SSTORE(contract_storage.store_next(0), Op.MLOAD(32))\n        + Op.STOP,\n    )\n    destination_contract_address = compute_eofcreate_address(contract_address, 0)\n    post = {\n        contract_address: Account(storage=contract_storage),\n        destination_contract_address: Account(storage=destination_storage),\n    }\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=200_000,\n        sender=pre.fund_eoa(),\n        initcodes=[initcontainer],\n    )\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.with_all_evm_code_types\ndef test_short_data_subcontainer(\n    state_test: StateTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    Deploy a subcontainer where the data is \"short\" and filled by deployment\n    code.\n    \"\"\"\n    env = Environment()\n    sender = pre.fund_eoa()\n\n    deploy_container = Container(\n        sections=[\n            Section.Code(Op.STOP),\n            Section.Data(data=\"001122\", custom_size=4),\n        ]\n    )\n    initcontainer = Container(\n        sections=[\n            Section.Code(code=Op.RETURNCODE[0](0, 5)),\n            Section.Container(deploy_container),\n        ],\n    )\n    initcode_hash = initcontainer.hash\n    contract_address = pre.deploy_contract(\n        code=Op.SSTORE(0, Op.TXCREATE(tx_initcode_hash=initcode_hash)) + Op.STOP,\n        storage={0: 0xB17D},  # a canary to be overwritten\n    )\n    # Storage in 0 should have the address,\n    destination_address = compute_eofcreate_address(contract_address, 0)\n    destination_code = deploy_container.copy()\n    destination_code.sections[1] = Section.Data(data=\"0011220000000000\")\n    post = {\n        contract_address: Account(storage={0: compute_eofcreate_address(contract_address, 0)}),\n        destination_address: Account(code=destination_code),\n    }\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=100_000,\n        sender=sender,\n        initcodes=[initcontainer],\n    )\n\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip7873_tx_create/test_txcreate_failures.py",
    "content": "\"\"\"Test bad TXCREATE cases.\"\"\"\n\nimport pytest\n\nfrom ethereum_test_base_types import Bytes\nfrom ethereum_test_base_types.base_types import Address, Hash\nfrom ethereum_test_forks import Fork\nfrom ethereum_test_tools import (\n    Account,\n    Alloc,\n    Environment,\n    EVMCodeType,\n    StateTestFiller,\n    Transaction,\n    compute_eofcreate_address,\n)\nfrom ethereum_test_types.eof.v1 import Container, Section\nfrom ethereum_test_types.eof.v1.constants import MAX_BYTECODE_SIZE, MAX_INITCODE_SIZE\nfrom ethereum_test_vm import Bytecode\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .. import EOF_FORK_NAME\nfrom ..eip7069_extcall.spec import EXTCALL_FAILURE, EXTCALL_REVERT, LEGACY_CALL_FAILURE\nfrom ..eip7620_eof_create.helpers import (\n    aborting_container,\n    slot_call_or_create,\n    slot_call_result,\n    slot_code_should_fail,\n    slot_code_worked,\n    slot_counter,\n    slot_create_address,\n    slot_max_depth,\n    slot_returndata,\n    slot_returndata_size,\n    smallest_initcode_subcontainer,\n    smallest_runtime_subcontainer,\n    value_canary_should_not_change,\n    value_canary_to_be_overwritten,\n    value_code_worked,\n)\nfrom .spec import TXCREATE_FAILURE\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-7873.md\"\nREFERENCE_SPEC_VERSION = \"1115fe6110fcc0efc823fb7f8f5cd86c42173efe\"\n\npytestmark = pytest.mark.valid_from(EOF_FORK_NAME)\n\n\n@pytest.mark.with_all_evm_code_types\n@pytest.mark.parametrize(\n    \"revert\",\n    [\n        pytest.param(b\"\", id=\"empty\"),\n        pytest.param(b\"\\x08\\xc3\\x79\\xa0\", id=\"Error(string)\"),\n    ],\n)\ndef test_initcode_revert(state_test: StateTestFiller, pre: Alloc, revert: bytes) -> None:\n    \"\"\"Verifies proper handling of REVERT in initcode.\"\"\"\n    env = Environment()\n    revert_size = len(revert)\n\n    initcode_subcontainer = Container(\n        name=\"Initcode Subcontainer that reverts\",\n        sections=[\n            Section.Code(\n                code=Op.MSTORE(0, Op.PUSH32(revert)) + Op.REVERT(32 - revert_size, revert_size),\n            ),\n        ],\n    )\n    initcode_hash = initcode_subcontainer.hash\n\n    sender = pre.fund_eoa()\n    contract_address = pre.deploy_contract(\n        code=Op.SSTORE(slot_create_address, Op.TXCREATE(tx_initcode_hash=initcode_hash))\n        + Op.SSTORE(slot_returndata_size, Op.RETURNDATASIZE)\n        + Op.RETURNDATACOPY(Op.SUB(32, Op.RETURNDATASIZE), 0, Op.RETURNDATASIZE)\n        + Op.SSTORE(slot_returndata, Op.MLOAD(0))\n        + Op.SSTORE(slot_code_worked, value_code_worked)\n        + Op.STOP\n    )\n\n    post = {\n        contract_address: Account(\n            storage={\n                slot_create_address: TXCREATE_FAILURE,\n                slot_returndata_size: revert_size,\n                slot_returndata: revert,\n                slot_code_worked: value_code_worked,\n            }\n        ),\n        compute_eofcreate_address(contract_address, 0): Account.NONEXISTENT,\n    }\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=10_000_000,\n        sender=sender,\n        initcodes=[initcode_subcontainer],\n    )\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.with_all_evm_code_types\n@pytest.mark.parametrize(\n    \"initcode_hash\",\n    [\n        Bytes(\"\").keccak256(),\n        Bytes(\"00\" * 32),\n        Bytes(\"FF\" * 32),\n        Bytes(\"EF01\").keccak256(),\n        smallest_runtime_subcontainer.hash,\n    ],\n)\n@pytest.mark.parametrize(\"tx_initcode_count\", [1, 255, 256])\ndef test_txcreate_invalid_hash(\n    state_test: StateTestFiller, pre: Alloc, tx_initcode_count: int, initcode_hash: Hash\n) -> None:\n    \"\"\"Verifies proper handling of REVERT in initcode.\"\"\"\n    env = Environment()\n\n    sender = pre.fund_eoa()\n    contract_address = pre.deploy_contract(\n        code=Op.SSTORE(slot_create_address, Op.TXCREATE(tx_initcode_hash=initcode_hash))\n        + Op.SSTORE(slot_code_worked, value_code_worked)\n        + Op.STOP\n    )\n\n    post = {\n        contract_address: Account(\n            storage={\n                slot_create_address: TXCREATE_FAILURE,\n                slot_code_worked: value_code_worked,\n            }\n        ),\n        compute_eofcreate_address(contract_address, 0): Account.NONEXISTENT,\n    }\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=10_000_000,\n        sender=sender,\n        initcodes=[smallest_initcode_subcontainer] * tx_initcode_count,\n    )\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.with_all_evm_code_types\ndef test_initcode_aborts(state_test: StateTestFiller, pre: Alloc) -> None:\n    \"\"\"Verifies correct handling of a halt in EOF initcode.\"\"\"\n    env = Environment()\n    sender = pre.fund_eoa()\n    initcode_hash = aborting_container.hash\n    contract_address = pre.deploy_contract(\n        code=Op.SSTORE(slot_create_address, Op.TXCREATE(tx_initcode_hash=initcode_hash))\n        + Op.SSTORE(slot_code_worked, value_code_worked)\n        + Op.STOP,\n    )\n    # Storage in slot_create_address should not have the address,\n    post = {\n        contract_address: Account(\n            storage={\n                slot_create_address: TXCREATE_FAILURE,\n                slot_code_worked: value_code_worked,\n            }\n        ),\n        compute_eofcreate_address(contract_address, 0): Account.NONEXISTENT,\n    }\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=10_000_000,\n        sender=sender,\n        initcodes=[aborting_container],\n    )\n\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\n\"\"\"\nSize of the initcode portion of test_txcreate_deploy_sizes, but as the runtime\ncode is dynamic, we have to use a pre-calculated size\n\"\"\"\ninitcode_size = 32\n\n\n@pytest.mark.with_all_evm_code_types\n@pytest.mark.parametrize(\n    \"target_deploy_size\",\n    [\n        pytest.param(0x4000, id=\"large\"),\n        pytest.param(MAX_BYTECODE_SIZE, id=\"max\"),\n        pytest.param(MAX_BYTECODE_SIZE + 1, id=\"overmax\"),\n        pytest.param(MAX_INITCODE_SIZE - initcode_size - 1, id=\"below_initcodemax\"),\n        pytest.param(MAX_INITCODE_SIZE - initcode_size, id=\"initcodemax\"),\n    ],\n)\ndef test_txcreate_deploy_sizes(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    target_deploy_size: int,\n) -> None:\n    \"\"\"\n    Verify a mix of runtime contract sizes.\n\n    This mixes success and multiple size failure modes.\n    \"\"\"\n    env = Environment()\n\n    runtime_container = Container(\n        sections=[\n            Section.Code(\n                code=Op.JUMPDEST * (target_deploy_size - len(smallest_runtime_subcontainer))\n                + Op.STOP,\n            ),\n        ]\n    )\n\n    initcode_subcontainer = Container(\n        name=\"Initcode Subcontainer\",\n        sections=[\n            Section.Code(\n                code=Op.RETURNCODE[0](0, 0),\n            ),\n            Section.Container(container=runtime_container),\n        ],\n    )\n    assert initcode_size == len(initcode_subcontainer) - len(runtime_container)\n\n    assert initcode_size == (len(initcode_subcontainer) - len(runtime_container)), (\n        \"initcode_size is wrong, expected initcode_size is %d, calculated is %d\"\n        % (\n            initcode_size,\n            len(initcode_subcontainer) - len(runtime_container),\n        )\n    )\n    initcode_hash = initcode_subcontainer.hash\n\n    sender = pre.fund_eoa()\n    contract_address = pre.deploy_contract(\n        code=Op.SSTORE(slot_create_address, Op.TXCREATE(tx_initcode_hash=initcode_hash))\n        + Op.SSTORE(slot_code_worked, value_code_worked)\n        + Op.STOP\n    )\n    # Storage in 0 should have the address, Storage 1 is a canary of 1 to make\n    # sure it tried to execute, which also covers cases of data+code being\n    # greater than initcode_size_max, which is allowed.\n    success = target_deploy_size <= MAX_BYTECODE_SIZE\n    post = {\n        contract_address: Account(\n            storage={\n                slot_create_address: compute_eofcreate_address(contract_address, 0)\n                if success\n                else TXCREATE_FAILURE,\n                slot_code_worked: value_code_worked,\n            }\n        ),\n        compute_eofcreate_address(contract_address, 0): Account()\n        if success\n        else Account.NONEXISTENT,\n    }\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=20_000_000,\n        sender=sender,\n        initcodes=[initcode_subcontainer],\n    )\n\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.with_all_evm_code_types\n@pytest.mark.parametrize(\n    \"auxdata_size\",\n    [\n        pytest.param(MAX_BYTECODE_SIZE - len(smallest_runtime_subcontainer), id=\"maxcode\"),\n        pytest.param(MAX_BYTECODE_SIZE - len(smallest_runtime_subcontainer) + 1, id=\"overmaxcode\"),\n        pytest.param(0x10000 - 60, id=\"almost64k\"),\n        pytest.param(0x10000 - 1, id=\"64k-1\"),\n        pytest.param(0x10000, id=\"64k\"),\n        pytest.param(0x10000 + 1, id=\"over64k\"),\n    ],\n)\ndef test_auxdata_size_failures(state_test: StateTestFiller, pre: Alloc, auxdata_size: int) -> None:\n    \"\"\"\n    Exercises a number of auxdata size violations, and one maxcode success.\n    \"\"\"\n    env = Environment()\n    auxdata_bytes = b\"a\" * auxdata_size\n\n    initcode_subcontainer = Container(\n        name=\"Initcode Subcontainer\",\n        sections=[\n            Section.Code(\n                code=Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE) + Op.RETURNCODE[0](0, Op.CALLDATASIZE),\n            ),\n            Section.Container(container=smallest_runtime_subcontainer),\n        ],\n    )\n\n    sender = pre.fund_eoa()\n    initcode_hash = initcode_subcontainer.hash\n    contract_address = pre.deploy_contract(\n        code=Op.CALLDATACOPY(0, 0, Op.CALLDATASIZE)\n        + Op.SSTORE(\n            slot_create_address,\n            Op.TXCREATE(tx_initcode_hash=initcode_hash, input_size=Op.CALLDATASIZE),\n        )\n        + Op.SSTORE(slot_code_worked, value_code_worked)\n        + Op.STOP,\n    )\n\n    deployed_container_size = len(smallest_runtime_subcontainer) + auxdata_size\n\n    # Storage in 0 will have address in first test, 0 in all other cases\n    # indicating failure\n    #\n    # Storage 1 in 1 is a canary to see if TXCREATE opcode halted\n    success = deployed_container_size <= MAX_BYTECODE_SIZE\n    post = {\n        contract_address: Account(\n            storage={\n                slot_create_address: compute_eofcreate_address(contract_address, 0)\n                if deployed_container_size <= MAX_BYTECODE_SIZE\n                else 0,\n                slot_code_worked: value_code_worked,\n            }\n        ),\n        compute_eofcreate_address(contract_address, 0): Account()\n        if success\n        else Account.NONEXISTENT,\n    }\n\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=20_000_000,\n        sender=sender,\n        initcodes=[initcode_subcontainer],\n        data=auxdata_bytes,\n    )\n\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.with_all_evm_code_types\n@pytest.mark.parametrize(\n    \"value\",\n    [\n        pytest.param(1, id=\"1_wei\"),\n        pytest.param(10**9, id=\"1_gwei\"),\n    ],\n)\ndef test_txcreate_insufficient_stipend(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    value: int,\n) -> None:\n    \"\"\"\n    Exercises an TXCREATE that fails because the calling account does not have\n    enough ether to pay the stipend.\n    \"\"\"\n    env = Environment()\n    sender = pre.fund_eoa(10**11)\n    initcode_hash = smallest_initcode_subcontainer.hash\n\n    contract_address = pre.deploy_contract(\n        code=Op.SSTORE(\n            slot_create_address, Op.TXCREATE(tx_initcode_hash=initcode_hash, value=value)\n        )\n        + Op.SSTORE(slot_code_worked, value_code_worked)\n        + Op.STOP,\n        balance=value - 1,\n    )\n    # create will fail but not trigger a halt, so canary at storage 1\n    # should be set\n    #\n    # also validate target created contract fails\n    post = {\n        contract_address: Account(\n            storage={\n                slot_create_address: TXCREATE_FAILURE,\n                slot_code_worked: value_code_worked,\n            }\n        ),\n        compute_eofcreate_address(contract_address, 0): Account.NONEXISTENT,\n    }\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=20_000_000,\n        sender=sender,\n        initcodes=[smallest_initcode_subcontainer],\n    )\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.with_all_evm_code_types\ndef test_insufficient_initcode_gas(state_test: StateTestFiller, pre: Alloc, fork: Fork) -> None:\n    \"\"\"\n    Exercises an TXCREATE when there is not enough gas for the constant charge.\n    \"\"\"\n    env = Environment()\n\n    initcode_container = Container(\n        sections=[\n            Section.Code(\n                code=Op.RETURNCODE[0](0, 0),\n            ),\n            Section.Container(container=smallest_runtime_subcontainer),\n        ],\n    )\n    initcode_hash = initcode_container.hash\n\n    sender = pre.fund_eoa()\n    contract_address = pre.deploy_contract(\n        code=Op.SSTORE(slot_create_address, Op.TXCREATE(tx_initcode_hash=initcode_hash))\n        + Op.SSTORE(slot_code_should_fail, value_code_worked)\n        + Op.STOP,\n        storage={\n            slot_create_address: value_canary_should_not_change,\n            slot_code_should_fail: value_canary_should_not_change,\n        },\n    )\n    # enough gas for everything but EVM opcodes and EIP-150 reserves\n    # FIXME: should not use that calculator!!!\n    # FIXME: the -1000 is a wild guess - revisit this\n    gas_limit = (\n        32_000 - 1_000 + fork.transaction_intrinsic_cost_calculator()(calldata=initcode_container)\n    )\n    # out_of_gas is triggered, so canary won't set value\n    # also validate target created contract fails\n    post = {\n        contract_address: Account(\n            storage={\n                slot_create_address: value_canary_should_not_change,\n                slot_code_should_fail: value_canary_should_not_change,\n            },\n        ),\n        compute_eofcreate_address(contract_address, 0): Account.NONEXISTENT,\n    }\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=gas_limit,\n        sender=sender,\n        initcodes=[initcode_container],\n    )\n\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.with_all_evm_code_types\ndef test_insufficient_gas_memory_expansion(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    fork: Fork,\n) -> None:\n    \"\"\"\n    Exercises TXCREATE when the memory for auxdata has not been expanded but is\n    requested.\n    \"\"\"\n    env = Environment()\n\n    auxdata_size = 0x5000\n    initcode_hash = smallest_initcode_subcontainer.hash\n    sender = pre.fund_eoa()\n    contract_address = pre.deploy_contract(\n        code=Op.SSTORE(\n            slot_create_address,\n            Op.TXCREATE(tx_initcode_hash=initcode_hash, input_size=auxdata_size),\n        )\n        + Op.SSTORE(slot_code_should_fail, slot_code_worked)\n        + Op.STOP,\n        storage={\n            slot_create_address: value_canary_should_not_change,\n            slot_code_should_fail: value_canary_should_not_change,\n        },\n    )\n    # enough gas for everything but EVM opcodes and EIP-150 reserves\n    auxdata_size_words = (auxdata_size + 31) // 32\n    gas_limit = (\n        32_000\n        + 3 * auxdata_size_words\n        + auxdata_size_words * auxdata_size_words // 512\n        + fork.transaction_intrinsic_cost_calculator()(calldata=smallest_initcode_subcontainer)\n    )\n    # out_of_gas is triggered, so canary won't set value\n    # also validate target created contract fails\n    post = {\n        contract_address: Account(\n            storage={\n                slot_create_address: value_canary_should_not_change,\n                slot_code_should_fail: value_canary_should_not_change,\n            },\n        ),\n        compute_eofcreate_address(contract_address, 0): Account.NONEXISTENT,\n    }\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=gas_limit,\n        sender=sender,\n        initcodes=[smallest_initcode_subcontainer],\n    )\n\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.with_all_evm_code_types\ndef test_insufficient_returncode_auxdata_gas(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    fork: Fork,\n) -> None:\n    \"\"\"\n    Exercises a RETURNCODE when there is not enough gas for the initcode\n    charge.\n    \"\"\"\n    env = Environment()\n\n    auxdata_size = 0x5000\n    initcode_container = Container(\n        name=\"Large Initcode Subcontainer\",\n        sections=[\n            Section.Code(\n                code=Op.RETURNCODE[0](0, auxdata_size),\n            ),\n            Section.Container(container=smallest_runtime_subcontainer),\n        ],\n    )\n    initcode_hash = initcode_container.hash\n\n    sender = pre.fund_eoa()\n    contract_address = pre.deploy_contract(\n        code=Op.SSTORE(slot_code_worked, value_code_worked)\n        + Op.TXCREATE(tx_initcode_hash=initcode_hash)\n        + Op.STOP,\n        storage={\n            slot_code_worked: value_canary_to_be_overwritten,\n        },\n    )\n    # 63/64ths is not enough to cover RETURNCODE memory expansion.\n    # Unfortunately the 1/64th left won't realistically accommodate a SSTORE\n    auxdata_size_words = (auxdata_size + 31) // 32\n    gas_limit = (\n        32_000\n        + 2600  # SSTORE\n        + 3 * auxdata_size_words\n        + auxdata_size_words * auxdata_size_words // 512\n        + fork.transaction_intrinsic_cost_calculator()(calldata=initcode_container)\n    )\n    # out_of_gas is triggered in the initcode context, so canary will set value\n    # also validate target created contract fails\n    post = {\n        contract_address: Account(\n            storage={\n                slot_code_worked: value_code_worked,\n            },\n        ),\n        compute_eofcreate_address(contract_address, 0): Account.NONEXISTENT,\n    }\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=gas_limit,\n        sender=sender,\n        initcodes=[initcode_container],\n    )\n\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.with_all_evm_code_types\n@pytest.mark.parametrize(\n    \"opcode\",\n    [\n        Op.STATICCALL,\n        Op.EXTSTATICCALL,\n    ],\n)\n@pytest.mark.parametrize(\"endowment\", [0, 1])  # included to verify static flag\n# check comes first\n@pytest.mark.parametrize(\n    \"initcode\",\n    [smallest_initcode_subcontainer, aborting_container],\n    ids=[\"working_initcode\", \"aborting_code\"],\n)\ndef test_static_flag_txcreate(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    opcode: Op,\n    endowment: int,\n    initcode: Container,\n) -> None:\n    \"\"\"Verifies correct handling of the static call flag with TXCREATE.\"\"\"\n    env = Environment()\n    initcode_hash = initcode.hash\n    sender = pre.fund_eoa()\n    contract_address = pre.deploy_contract(\n        code=Op.TXCREATE(tx_initcode_hash=initcode_hash, value=endowment) + Op.STOP,\n    )\n    calling_code = (\n        Op.SSTORE(slot_call_result, opcode(address=contract_address))\n        + Op.SSTORE(slot_code_worked, value_code_worked)\n        + Op.STOP\n    )\n    calling_address = pre.deploy_contract(\n        calling_code,\n        # Need to override the global value from the `with_all_evm_code_types`\n        # marker.\n        evm_code_type=EVMCodeType.EOF_V1 if opcode == Op.EXTSTATICCALL else EVMCodeType.LEGACY,\n    )\n\n    post = {\n        calling_address: Account(\n            storage={\n                slot_call_result: EXTCALL_FAILURE\n                if opcode == Op.EXTSTATICCALL\n                else LEGACY_CALL_FAILURE,\n                slot_code_worked: value_code_worked,\n            }\n        ),\n        compute_eofcreate_address(contract_address, 0): Account.NONEXISTENT,\n    }\n    tx = Transaction(\n        to=calling_address,\n        gas_limit=10_000_000,\n        sender=sender,\n        initcodes=[initcode],\n    )\n\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\nmagic_value_call = 0xCA11\nmagic_value_create = 0xCC12EA7E\n\n\n@pytest.mark.with_all_evm_code_types\n@pytest.mark.parametrize(\n    \"who_fails\",\n    [magic_value_call, magic_value_create],\n    ids=[\"call_fails\", \"create_fails\"],\n)\n@pytest.mark.pre_alloc_modify\ndef test_eof_txcreate_msg_depth(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    who_fails: int,\n    evm_code_type: EVMCodeType,\n) -> None:\n    \"\"\"\n    Test TXCREATE handles msg depth limit correctly (1024).\n    NOTE: due to block gas limit and the 63/64th rule this limit is\n    unlikely to be hit on mainnet.\n    NOTE: See\n    `tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_calls.py::\n    test_eof_calls_msg_depth` for more explanations and comments.\n    Most notable deviation from that test is that here calls and `TXCREATE`s\n    alternate in order to reach the max depth. `who_fails` decides whether\n    the failing depth 1024 will be on a call or on an `TXCREATE` to happen.\n    \"\"\"\n    # Not a precise gas_limit formula, but enough to exclude risk of gas\n    # causing the failure.\n    gas_limit = int(20000000 * (64 / 63) ** 1024)\n    env = Environment(gas_limit=gas_limit)\n\n    callee_address = Address(0x5000)\n\n    # Memory offsets layout:\n    # - 0  - input - msg depth\n    # - 32 - output - msg depth\n    # - 64 - output - call result\n    # - 96 - output - magic value: create or call\n    returndatacopy_block = Op.RETURNDATACOPY(32, 0, 96) + Op.REVERT(32, 96)\n    deep_most_result_block = (\n        Op.MSTORE(32, Op.ADD(Op.CALLDATALOAD(0), 1)) + Op.MSTORE(64, Op.NOOP) + Op.REVERT(32, 96)\n    )\n    rjump_offset = len(returndatacopy_block)\n    initcode = Container.Code(\n        Op.MSTORE(0, Op.ADD(Op.CALLDATALOAD(0), 1))\n        + Op.MSTORE(96, magic_value_call)\n        + Op.EXTCALL(address=callee_address, args_size=32)\n        + Op.RETURNDATASIZE\n        + Op.ISZERO\n        + Op.RJUMPI[rjump_offset]\n        + returndatacopy_block\n        + deep_most_result_block\n    )\n\n    initcode_hash = initcode.hash\n    sender = pre.fund_eoa()\n\n    jump_code = (\n        Op.RJUMPI[rjump_offset]\n        if evm_code_type == EVMCodeType.EOF_V1\n        else Op.ADD(Op.PC, rjump_offset + 3) + Op.JUMPI\n    )\n    callee_code = (\n        Op.MSTORE(0, Op.ADD(Op.CALLDATALOAD(0), 1))\n        + Op.MSTORE(96, magic_value_create)\n        + Op.TXCREATE(tx_initcode_hash=initcode_hash, salt=Op.CALLDATALOAD(0), input_size=32)\n        + Op.RETURNDATASIZE\n        + Op.ISZERO\n        + jump_code\n        + returndatacopy_block\n        + Op.JUMPDEST\n        + deep_most_result_block\n    )\n\n    pre.deploy_contract(callee_code, address=callee_address)\n\n    calling_contract_address = pre.deploy_contract(\n        Container.Code(\n            Op.MSTORE(0, Op.CALLDATALOAD(0))\n            + Op.EXTCALL(address=callee_address, args_size=32)\n            + Op.SSTORE(slot_max_depth, Op.RETURNDATALOAD(0))\n            + Op.SSTORE(slot_call_result, Op.RETURNDATALOAD(32))\n            + Op.SSTORE(slot_call_or_create, Op.RETURNDATALOAD(64))\n            + Op.SSTORE(slot_code_worked, value_code_worked)\n            + Op.STOP\n        )\n    )\n\n    # Only bumps the msg call depth \"register\" and forwards to the\n    # `calling_contract_address`. If it is used it makes the \"failing\" depth of\n    # 1024 to happen on TXCREATE, instead of CALL.\n    passthrough_address = pre.deploy_contract(\n        Container.Code(\n            Op.MSTORE(0, 1) + Op.EXTCALL(address=calling_contract_address, args_size=32) + Op.STOP\n        )\n    )\n\n    tx = Transaction(\n        sender=sender,\n        initcodes=[initcode],\n        to=calling_contract_address if who_fails == magic_value_call else passthrough_address,\n        gas_limit=gas_limit,\n        data=\"\",\n    )\n\n    calling_storage = {\n        slot_max_depth: 1024,\n        slot_code_worked: value_code_worked,\n        slot_call_result: EXTCALL_REVERT if who_fails == magic_value_call else TXCREATE_FAILURE,\n        slot_call_or_create: who_fails,\n    }\n\n    post = {\n        calling_contract_address: Account(storage=calling_storage),\n    }\n\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n\n\n@pytest.mark.with_all_evm_code_types\ndef test_reentrant_txcreate(\n    state_test: StateTestFiller,\n    pre: Alloc,\n) -> None:\n    \"\"\"\n    Verifies a reentrant TXCREATE case, where EIP-161 prevents conflict via\n    nonce bump.\n    \"\"\"\n    env = Environment()\n    # Calls into the factory contract with 1 as input.\n    reenter_code = Op.MSTORE(0, 1) + Op.EXTCALL(address=Op.CALLDATALOAD(32), args_size=32)\n    # Initcode: if given 0 as 1st word of input will call into the factory\n    #           again. 2nd word of input is the address of the factory.\n    initcontainer = Container(\n        sections=[\n            Section.Code(\n                Op.SSTORE(slot_counter, Op.ADD(Op.SLOAD(slot_counter), 1))\n                + Op.CALLDATALOAD(0)\n                + Op.RJUMPI[len(reenter_code)]\n                + reenter_code\n                + Op.RETURNCODE[0](0, 0)\n            ),\n            Section.Container(smallest_runtime_subcontainer),\n        ]\n    )\n    initcode_hash = initcontainer.hash\n    # Factory:\n    #   Passes on its input into the initcode.\n    #   It's 0 first time, 1 the second time.\n    #   Saves the result of deployment in slot 0 first time, 1 the second time.\n    contract_address = pre.deploy_contract(\n        code=Op.CALLDATACOPY(0, 0, 32)\n        + Op.MSTORE(32, Op.ADDRESS)\n        # 1st word - copied from input (reenter flag)\n        # 2nd word - `this.address`\n        + Op.SSTORE(\n            Op.CALLDATALOAD(0),\n            Op.TXCREATE(tx_initcode_hash=initcode_hash, input_size=64),\n        )\n        + Op.STOP,\n        storage={0: 0xB17D, 1: 0xB17D},  # a canary to be overwritten\n    )\n    # Flow is: reenter flag 0 -> factory -> reenter flag 0 -> initcode\n    #          -> reenter -> reenter flag 1 -> factory -> reenter flag 1\n    #          -> (!) initcode -> stop,\n    # if the EIP-161 nonce bump is not implemented. If it is, it fails before\n    # second initcode marked (!).\n    # Storage in 0 should have the address from the outer TXCREATE.\n    # Storage in 1 should have 0 from the inner TXCREATE.\n    # For the created contract storage in `slot_counter` should be 1 as\n    # initcode executes only once\n    post = {\n        contract_address: Account(\n            storage={\n                0: compute_eofcreate_address(contract_address, 0),\n                1: 0,\n            }\n        ),\n        compute_eofcreate_address(contract_address, 0): Account(\n            nonce=1, code=smallest_runtime_subcontainer, storage={slot_counter: 1}\n        ),\n    }\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=500_000,\n        initcodes=[initcontainer],\n        sender=pre.fund_eoa(),\n    )\n    state_test(env=env, pre=pre, post=post, tx=tx)\n\n\n@pytest.mark.with_all_evm_code_types\n@pytest.mark.parametrize(\n    \"reason\",\n    [\n        \"valid\",\n        \"invalid_deploy_container\",\n        \"invalid_initcode\",\n        \"invalid_opcode_during_initcode\",\n        \"invalid_opcode_with_sstore_during_initcode\",\n        \"revert_opcode_during_initcode\",\n        \"out_of_gas_during_initcode\",\n        \"out_of_gas_when_returning_contract\",\n        \"out_of_gas_when_returning_contract_due_to_memory_expansion\",\n    ],\n)\ndef test_invalid_container_deployment(\n    state_test: StateTestFiller,\n    fork: Fork,\n    pre: Alloc,\n    reason: str,\n) -> None:\n    \"\"\"\n    Verify contract is not deployed when an invalid container deployment is\n    attempted.\n    \"\"\"\n    env = Environment()\n    sender = pre.fund_eoa()\n\n    # Valid defaults\n    deployed_container = Container(\n        sections=[\n            Section.Code(code=Op.CALLF[1](Op.PUSH0, Op.PUSH0) + Op.STOP),\n            Section.Code(code=Op.ADD + Op.RETF, code_inputs=2, code_outputs=1),\n        ]\n    )\n    initcontainer: Container = Container(\n        sections=[\n            Section.Code(code=Op.RETURNCODE[0](0, 0)),\n            Section.Container(deployed_container),\n        ],\n    )\n    tx_gas_limit = 100_000\n    fork_intrinsic_gas_calculator = fork.transaction_intrinsic_cost_calculator()\n    fork_gas_costs = fork.gas_costs()\n\n    # Modify defaults based on invalidity reason\n    if reason == \"invalid_deploy_container\":\n        deployed_container = Container(\n            sections=[\n                Section.Code(code=Op.CALLF[1](Op.PUSH0, Op.PUSH0) + Op.STOP),\n                Section.Code(code=Op.ADD + Op.RETF, code_outputs=0),\n            ]\n        )\n        initcontainer = Container(\n            sections=[\n                Section.Code(code=Op.RETURNCODE[0](0, 0)),\n                Section.Container(deployed_container),\n            ],\n        )\n    elif reason == \"invalid_initcode\":\n        initcontainer = Container(\n            sections=[\n                Section.Code(code=Op.RETURNCODE[1](0, 0)),\n                Section.Container(deployed_container),\n            ],\n        )\n    elif (\n        reason == \"invalid_opcode_during_initcode\"\n        or reason == \"invalid_opcode_with_sstore_during_initcode\"\n        or reason == \"revert_opcode_during_initcode\"\n        or reason == \"out_of_gas_during_initcode\"\n    ):\n        invalid_code_path: Bytecode\n        if reason == \"invalid_opcode_with_sstore_during_initcode\":\n            invalid_code_path = Op.SSTORE(0, 1) + Op.INVALID\n        elif reason == \"revert_opcode_during_initcode\":\n            invalid_code_path = Op.REVERT(0, 0)\n        elif reason == \"out_of_gas_during_initcode\":\n            invalid_code_path = Op.MSTORE(0xFFFFFFFFFFFFFFFFFFFFFFFFFFF, 1)\n        elif reason == \"invalid_opcode_during_initcode\":\n            invalid_code_path = Op.INVALID\n        else:\n            raise Exception(f\"invalid case: {reason}\")\n        initcontainer = Container(\n            sections=[\n                Section.Code(\n                    code=Op.RJUMPI[len(invalid_code_path)](Op.PUSH0)\n                    + invalid_code_path\n                    + Op.RETURNCODE[0](0, 0)\n                ),\n                Section.Container(deployed_container),\n            ],\n        )\n    elif reason == \"out_of_gas_when_returning_contract\":\n        factory_gas_cost = (\n            7 * fork_gas_costs.G_VERY_LOW\n            + fork_gas_costs.G_STORAGE_SET\n            + fork_gas_costs.G_COLD_SLOAD\n            + fork_gas_costs.G_CREATE\n        )\n        initcode_gas_cost = 2 * fork_gas_costs.G_VERY_LOW\n        tx_gas_limit = (\n            fork_intrinsic_gas_calculator(calldata=initcontainer)\n            + factory_gas_cost\n            + (initcode_gas_cost - 1) * 64 // 63\n        )\n    elif reason == \"out_of_gas_when_returning_contract_due_to_memory_expansion\":\n        factory_gas_cost = (\n            7 * fork_gas_costs.G_VERY_LOW\n            + fork_gas_costs.G_STORAGE_SET\n            + fork_gas_costs.G_COLD_SLOAD\n            + fork_gas_costs.G_CREATE\n        )\n        initcode_gas_cost = (\n            # Code deposit gas cost\n            len(deployed_container) * fork_gas_costs.G_CODE_DEPOSIT_BYTE\n            # Two push opcodes\n            + 2 * fork_gas_costs.G_VERY_LOW\n        )\n        tx_gas_limit = (\n            fork_intrinsic_gas_calculator(calldata=initcontainer)\n            + factory_gas_cost\n            + initcode_gas_cost * 64 // 63\n        )\n        initcontainer = Container(\n            sections=[\n                Section.Code(code=Op.RETURNCODE[0](0xFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x1)),\n                Section.Container(deployed_container),\n            ],\n        )\n    elif reason == \"valid\":\n        pass\n    else:\n        raise TypeError(\"Unexpected reason\", reason)\n\n    initcode_hash = initcontainer.hash\n    contract_address = pre.deploy_contract(\n        code=Op.SSTORE(slot_code_worked, value_code_worked)\n        + Op.TXCREATE(tx_initcode_hash=initcode_hash)\n        + Op.STOP\n    )\n\n    tx = Transaction(\n        to=contract_address,\n        sender=sender,\n        gas_limit=tx_gas_limit,\n        initcodes=[initcontainer],\n    )\n\n    destination_contract_address = compute_eofcreate_address(contract_address, 0)\n\n    post = (\n        {\n            destination_contract_address: Account.NONEXISTENT,\n            contract_address: Account(\n                nonce=1 if reason in [\"invalid_initcode\", \"invalid_deploy_container\"] else 2,\n                storage={\n                    slot_code_worked: value_code_worked,\n                },\n            ),\n        }\n        if reason != \"valid\"\n        else {\n            destination_contract_address: Account(nonce=1, code=deployed_container),\n            contract_address: Account(\n                nonce=2,\n                storage={\n                    slot_code_worked: value_code_worked,\n                },\n            ),\n        }\n    )\n\n    state_test(\n        env=env,\n        pre=pre,\n        post=post,\n        tx=tx,\n    )\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eip7873_tx_create/test_txcreate_validates.py",
    "content": "\"\"\"Test bad TXCREATE cases.\"\"\"\n\nfrom enum import Enum, auto, unique\nfrom typing import Tuple\n\nimport pytest\n\nfrom ethereum_test_base_types import Bytes\nfrom ethereum_test_base_types.base_types import Address, Hash\nfrom ethereum_test_base_types.composite_types import AccessList\nfrom ethereum_test_tools import (\n    Account,\n    Alloc,\n    Environment,\n    EVMCodeType,\n    StateTestFiller,\n    Transaction,\n    compute_eofcreate_address,\n)\nfrom ethereum_test_types.eof.v1 import Container, Section\nfrom ethereum_test_vm import Bytecode\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom ....prague.eip7702_set_code_tx.spec import Spec\nfrom .. import EOF_FORK_NAME\nfrom ..eip7620_eof_create.helpers import (\n    slot_a,\n    slot_b,\n    slot_code_worked,\n    smallest_initcode_subcontainer,\n    smallest_runtime_subcontainer,\n    value_code_worked,\n)\nfrom .spec import TXCREATE_FAILURE\n\nREFERENCE_SPEC_GIT_PATH = \"EIPS/eip-7873.md\"\nREFERENCE_SPEC_VERSION = \"1115fe6110fcc0efc823fb7f8f5cd86c42173efe\"\n\npytestmark = pytest.mark.valid_from(EOF_FORK_NAME)\n\n\n@unique\nclass ValidatedCode(Enum):\n    \"\"\"Kinds of valid/invalid EOF.\"\"\"\n\n    LEGACY = auto()\n    EF = auto()\n    EOFV1_RUNTIME = auto()\n    EOFV1_RUNTIME_INVALID = auto()\n    EOFV1_INITCODE = auto()\n    EOFV2 = auto()\n    DELEGATION = auto()\n    SUBCONTAINER_INVALID = auto()\n\n    def bytecode(self) -> Bytecode | Container | Bytes:\n        \"\"\"Bytecode for the code to validate.\"\"\"\n        match self:\n            case ValidatedCode.LEGACY:\n                return Op.STOP\n            case ValidatedCode.EF:\n                return Bytes(\"0xEF\")\n            case ValidatedCode.EOFV1_RUNTIME:\n                return smallest_runtime_subcontainer\n            case ValidatedCode.EOFV1_RUNTIME_INVALID:\n                return Container.Code(Op.ADD)\n            case ValidatedCode.EOFV1_INITCODE:\n                return smallest_initcode_subcontainer\n            case ValidatedCode.EOFV2:\n                return Bytes(\"0xEF0002\")\n            case ValidatedCode.DELEGATION:\n                return Bytes(Spec.DELEGATION_DESIGNATION + Bytes(\"\".join(20 * [\"ab\"])))\n            case ValidatedCode.SUBCONTAINER_INVALID:\n                return Container(\n                    sections=[\n                        Section.Code(Op.RETURNCODE[0](0, 0)),\n                        Section.Container(Container.Code(Op.ADD)),\n                    ]\n                )\n\n    def valid(self) -> bool:\n        \"\"\"Whether the code is valid in EOF v1.\"\"\"\n        return self in [ValidatedCode.EOFV1_INITCODE]\n\n    def __str__(self) -> str:\n        \"\"\"Return string representation of the enum.\"\"\"\n        return f\"{self.name}\"\n\n\nclass Factory(Enum):\n    \"\"\"\n    Kinds of systems leading up to a call to TXCREATE.\n\n    DIRECT just puts the TXCREATE in the code it generates, while *CALL ones\n    call into another account which does the TXCREATE.\n    \"\"\"\n\n    DIRECT = auto()\n    WITH_CALL = auto()\n    WITH_DELEGATECALL = auto()\n    WITH_STATICCALL = auto()\n\n    def creation_snippet(\n        self,\n        initcode_hash: Hash,\n        pre: Alloc,\n        salt: int,\n        evm_code_type: EVMCodeType,\n        value: int,\n        input_size: int,\n    ) -> Tuple[Bytecode, Address | None]:\n        \"\"\"\n        Return snippet to cause TXCREATE to be called along with an address.\n\n        This will end up in the `compute_eofcreate_address` or None if that\n        would be the snippet itself.\n        \"\"\"\n        if evm_code_type not in [EVMCodeType.LEGACY, EVMCodeType.EOF_V1]:\n            raise Exception(f\"Test needs to be updated for {evm_code_type}\")\n        # Snippet which invokes the TXCREATE itself\n        txcreate_code = Op.TXCREATE(\n            tx_initcode_hash=initcode_hash, salt=salt, value=value, input_size=input_size\n        )\n        # Snippet which returns the TXCREATE result to caller\n        callee_txcreate_code = Op.MSTORE(0, txcreate_code) + Op.RETURN(0, 32)\n        # Snippet which recovers the TXCREATE result from returndata (wipes\n        # memory afterwards)\n        returndataload_code = (\n            Op.RETURNDATALOAD\n            if evm_code_type == EVMCodeType.EOF_V1\n            else Op.RETURNDATACOPY(0, 0, Op.RETURNDATASIZE) + Op.MLOAD(0) + Op.MSTORE(0, 0)\n        )\n        match self:\n            case Factory.DIRECT:\n                return txcreate_code, None\n            case Factory.WITH_CALL:\n                callee_address = pre.deploy_contract(callee_txcreate_code)\n                if evm_code_type == EVMCodeType.EOF_V1:\n                    return Op.EXTCALL(address=callee_address) + returndataload_code, callee_address\n                else:\n                    return Op.CALL(address=callee_address) + returndataload_code, callee_address\n            case Factory.WITH_DELEGATECALL:\n                callee_address = pre.deploy_contract(callee_txcreate_code)\n                if evm_code_type == EVMCodeType.EOF_V1:\n                    return Op.EXTDELEGATECALL(address=callee_address) + returndataload_code, None\n                else:\n                    return Op.DELEGATECALL(address=callee_address) + returndataload_code, None\n            case Factory.WITH_STATICCALL:\n                callee_address = pre.deploy_contract(callee_txcreate_code)\n                if evm_code_type == EVMCodeType.EOF_V1:\n                    return Op.EXTSTATICCALL(address=callee_address) + returndataload_code, None\n                else:\n                    return Op.STATICCALL(address=callee_address) + returndataload_code, None\n\n    def __str__(self) -> str:\n        \"\"\"Return string representation of the enum.\"\"\"\n        return f\"{self.name}\"\n\n\n@pytest.mark.with_all_evm_code_types\n# Subset chosen to limit number of test cases\n@pytest.mark.parametrize(\"code_a\", [ValidatedCode.EOFV1_INITCODE, ValidatedCode.LEGACY])\n@pytest.mark.parametrize(\"code_b\", ValidatedCode)\n# Subset chosen to limit number of test cases\n@pytest.mark.parametrize(\"factory_a\", [Factory.DIRECT, Factory.WITH_CALL])\n@pytest.mark.parametrize(\"factory_b\", Factory)\n@pytest.mark.parametrize(\"value\", [0, 1])\n@pytest.mark.parametrize(\"input_size\", [0, 31])\n@pytest.mark.parametrize(\"access_list_a\", [True, False])\ndef test_txcreate_validates(\n    state_test: StateTestFiller,\n    pre: Alloc,\n    code_a: ValidatedCode,\n    code_b: ValidatedCode,\n    factory_a: Factory,\n    factory_b: Factory,\n    evm_code_type: EVMCodeType,\n    value: int,\n    input_size: int,\n    access_list_a: bool,\n) -> None:\n    \"\"\"\n    Verifies proper validation of initcode on TXCREATE in various scenarios.\n    \"\"\"\n    env = Environment()\n    snippet_a, factory_address_a = factory_a.creation_snippet(\n        Bytes(code_a.bytecode()).keccak256(), pre, 0, evm_code_type, value, input_size\n    )\n    snippet_b, factory_address_b = factory_b.creation_snippet(\n        Bytes(code_b.bytecode()).keccak256(), pre, 1, evm_code_type, value, input_size\n    )\n\n    sender = pre.fund_eoa()\n    contract_address = pre.deploy_contract(\n        code=(\n            Op.SSTORE(slot_code_worked, value_code_worked)\n            + Op.SSTORE(slot_a, snippet_a)\n            + Op.SSTORE(slot_b, snippet_b)\n            + Op.STOP\n        )\n    )\n\n    create_address_a = factory_address_a if factory_address_a else contract_address\n    create_address_b = factory_address_b if factory_address_b else contract_address\n    destination_address_a = compute_eofcreate_address(create_address_a, 0)\n    destination_address_b = compute_eofcreate_address(create_address_b, 1)\n    post = {\n        contract_address: Account(\n            storage={\n                slot_a: destination_address_a\n                if code_a.valid() and value == 0 and factory_a != Factory.WITH_STATICCALL\n                else TXCREATE_FAILURE,\n                slot_b: destination_address_b\n                if code_b.valid() and value == 0 and factory_b != Factory.WITH_STATICCALL\n                else TXCREATE_FAILURE,\n                slot_code_worked: value_code_worked,\n            }\n        )\n    }\n\n    if access_list_a:\n        access_list = [AccessList(address=destination_address_a, storage_keys=[Hash(0x0)])]\n    else:\n        access_list = []\n\n    tx = Transaction(\n        to=contract_address,\n        gas_limit=10_000_000,\n        sender=sender,\n        initcodes=[code_a.bytecode(), code_b.bytecode()],\n        access_list=access_list,\n    )\n    state_test(env=env, pre=pre, post=post, tx=tx)\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/eof_tracker.md",
    "content": "# EOF Testing Coverage Tracker\n\n- [ ] Example Test Case 1\n- [x] Example Test Case 2 ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_eof_example.py`](./eip3540_eof_v1/test_eof_example/index.md))\n\n## EIP-3540: EOF - EVM Object Format v1\n\n### Validation\n\n- [x] Empty code is not a valid EOF ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py::test_invalid_containers`](./eip3540_eof_v1/test_container_validation/test_invalid_containers.md) `-k empty_container`)\n- [x] Valid container without data section ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py::test_invalid_containers`](./eip3540_eof_v1/test_container_validation/test_invalid_containers.md) `-k single_code_section_no_data_section`)\n- [x] Valid container with data section ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py::test_valid_containers`](./eip3540_eof_v1/test_container_validation/test_valid_containers.md) `-k single_code_section_with_data_section`)\n- [x] Valid container with truncated data section ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py::test_invalid_containers`](./eip3540_eof_v1/test_container_validation/test_invalid_containers.md) `-k data_section_contents_incomplete`, [`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_migrated_valid_invalid.py::test_migrated_valid_invalid`](./eip3540_eof_v1/test_migrated_valid_invalid/test_migrated_valid_invalid.md) `-k data_section_contents_incomplete`)\n- [x] Valid container with data section truncated to empty ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py::test_invalid_containers`](./eip3540_eof_v1/test_container_validation/test_invalid_containers.md) `-k no_data_section_contents`, [`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_migrated_valid_invalid.py::test_migrated_valid_invalid`](./eip3540_eof_v1/test_migrated_valid_invalid/test_migrated_valid_invalid.md) `-k no_data_section_contents`)\n- [x] Valid containers with multiple code sections ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py::test_valid_containers`](./eip3540_eof_v1/test_container_validation/test_valid_containers.md) `-k multiple_code_sections`)\n- [x] Valid containers with max number of code sections ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py::test_max_code_sections`](./eip3540_eof_v1/test_container_validation/test_max_code_sections.md))\n- [x] Too many code sections ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py::test_invalid_containers`](./eip3540_eof_v1/test_container_validation/test_invalid_containers.md) `-k too_many_code_sections`)\n- [x] Truncated magic ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py::test_invalid_containers`](./eip3540_eof_v1/test_container_validation/test_invalid_containers.md) `-k incomplete_magic`)\n- [x] Valid container except magic ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py::test_magic_validation`](./eip3540_eof_v1/test_container_validation/test_magic_validation.md))\n- [x] Truncated before version  ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py::test_invalid_containers`](./eip3540_eof_v1/test_container_validation/test_invalid_containers.md) `-k no_version`)\n- [x] Valid container except version ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py::test_version_validation`](./eip3540_eof_v1/test_container_validation/test_version_validation.md))\n- [x] Truncated before type section header ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py::test_invalid_containers`](./eip3540_eof_v1/test_container_validation/test_invalid_containers.md) `-k no_type_header`)\n- [x] Truncated before type section size ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py::test_invalid_containers`](./eip3540_eof_v1/test_container_validation/test_invalid_containers.md) `-k no_type_section_size`)\n- [x] Truncated type section size ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py::test_invalid_containers`](./eip3540_eof_v1/test_container_validation/test_invalid_containers.md) `-k incomplete_type_section_size`)\n- [x] No type section header ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_section_order.py::test_section_order`](./eip3540_eof_v1/test_section_order/index.md) `-k test_position_CasePosition.HEADER-section_test_SectionTest.MISSING-section_kind_TYPE`)\n- [x] Truncated before code section header ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py::test_invalid_containers`](./eip3540_eof_v1/test_container_validation/test_invalid_containers.md) `-k no_code_header`)\n- [x] Truncated before code section number ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py::test_invalid_containers`](./eip3540_eof_v1/test_container_validation/test_invalid_containers.md) `-k code_section_count_missing`)\n- [x] Truncated code section number ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py::test_invalid_containers`](./eip3540_eof_v1/test_container_validation/test_invalid_containers.md) `-k code_section_count_incomplete`)\n- [x] Truncated before code section size ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py::test_invalid_containers`](./eip3540_eof_v1/test_container_validation/test_invalid_containers.md) `-k code_section_size_missing`)\n- [x] Truncated code section size ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py::test_invalid_containers`](./eip3540_eof_v1/test_container_validation/test_invalid_containers.md) `-k code_section_size_incomplete`)\n- [x] No code section header ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_section_order.py::test_section_order`](./eip3540_eof_v1/test_section_order/index.md) `-k test_position_CasePosition.HEADER-section_test_SectionTest.MISSING-section_kind_CODE`)\n- [x] Zero code section number ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py::test_invalid_containers`](./eip3540_eof_v1/test_container_validation/test_invalid_containers.md) `-k zero_code_sections_header`)\n- [x] Zero code section size ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py::test_invalid_containers`](./eip3540_eof_v1/test_container_validation/test_invalid_containers.md) `-k empty_code_section`)\n- [x] Zero code section size with non-empty data section ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py::test_invalid_containers`](./eip3540_eof_v1/test_container_validation/test_invalid_containers.md) `-k empty_code_section_with_non_empty_data`)\n- [x] No container sections, truncated before data section header ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py::test_invalid_containers`](./eip3540_eof_v1/test_container_validation/test_invalid_containers.md) `-k truncated_header_data_section`)\n- [x] Container sections present, truncated before data section header ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py::test_invalid_containers`](./eip3540_eof_v1/test_container_validation/test_invalid_containers.md) `-k truncated_header_data_section_with_container_section`)\n- [x] Truncated before data section size ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py::test_invalid_containers`](./eip3540_eof_v1/test_container_validation/test_invalid_containers.md) `-k no_data_section_size`)\n- [x] Truncated data section size ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py::test_invalid_containers`](./eip3540_eof_v1/test_container_validation/test_invalid_containers.md) `-k data_section_size_incomplete`)\n- [x] Truncated before header terminator ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py::test_invalid_containers`](./eip3540_eof_v1/test_container_validation/test_invalid_containers.md) `-k terminator_incomplete`)\n- [x] Truncated before type section ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py::test_invalid_containers`](./eip3540_eof_v1/test_container_validation/test_invalid_containers.md) `-k truncated_before_type_section`)\n- [x] Type section truncated before outputs ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py::test_invalid_containers`](./eip3540_eof_v1/test_container_validation/test_invalid_containers.md) `-k truncated_type_section_before_outputs`)\n- [x] Type section truncated before max_stack_height ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py::test_invalid_containers`](./eip3540_eof_v1/test_container_validation/test_invalid_containers.md) `-k truncated_type_section_before_max_stack_height`)\n- [x] Type section truncated max_stack_height ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py::test_invalid_containers`](./eip3540_eof_v1/test_container_validation/test_invalid_containers.md) `-k truncated_type_section_truncated_max_stack_height`)\n- [x] Truncated before code sections ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py::test_invalid_containers`](./eip3540_eof_v1/test_container_validation/test_invalid_containers.md) `-k no_code_section_contents`)\n- [x] Truncated code section ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py::test_invalid_containers`](./eip3540_eof_v1/test_container_validation/test_invalid_containers.md) `-k incomplete_code_section_contents`)\n- [x] Data section empty, trailing bytes ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py::test_invalid_containers`](./eip3540_eof_v1/test_container_validation/test_invalid_containers.md) `-k no_data_section_contents`)\n- [x] Data section non-empty, trailing bytes ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py::test_invalid_containers`](./eip3540_eof_v1/test_container_validation/test_invalid_containers.md) `-k trailing_bytes_after_data_section`)\n- [x] Wrong order of sections ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_section_order.py`](./eip3540_eof_v1/index.md))\n- [x] No data section header ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_section_order.py::test_section_order`](./eip3540_eof_v1/test_section_order/index.md) `-k test_position_CasePosition.HEADER-section_test_SectionTest.MISSING-section_kind_DATA`)\n- [x] Multiple data sections ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py::test_invalid_containers`](./eip3540_eof_v1/test_container_validation/test_invalid_containers.md) `-k multiple_data_sections`, [`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py::test_invalid_containers`](./eip3540_eof_v1/test_container_validation/test_invalid_containers.md) `-k multiple_code_and_data_sections`)\n- [x] Unknown section id ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py::test_invalid_containers`](./eip3540_eof_v1/test_container_validation/test_invalid_containers.md) `-k unknown_section_1`, [`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py::test_invalid_containers`](./eip3540_eof_v1/test_container_validation/test_invalid_containers.md) `-k unknown_section_2`)\n- [x] Type section size != 4 * code section number ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py`](./eip3540_eof_v1/test_container_validation/index.md)`-k type_section_too`)\n- [x] Code section with max max_stack_height ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py::test_valid_containers`](./eip3540_eof_v1/test_container_validation/test_valid_containers.md) `-k single_code_section_max_stack_size`)\n- [x] Code section with max_stack_height above limit ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py::test_invalid_containers`](./eip3540_eof_v1/test_container_validation/test_invalid_containers.md) `-k single_code_section_max_stack_size_too_large`)\n- [x] Valid code sections with inputs/outputs ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py`](./eip3540_eof_v1/test_container_validation/index.md)`-k code_section_with_inputs_outputs`)\n- [x] Valid code section with max inputs ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py`](./eip3540_eof_v1/test_container_validation/index.md)`-k code_section_input_maximum`)\n- [x] Valid code section with max outputs ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py`](./eip3540_eof_v1/test_container_validation/index.md)`-k code_section_output_maximum`)\n- [x] Code sections with invalid number of inputs/outputs ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py`](./eip3540_eof_v1/test_container_validation/index.md)`-k code_section_input_too_large`, [`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py`](./eip3540_eof_v1/test_container_validation/index.md)`-k code_section_output_too_large`)\n- [x] First section with inputs/outputs ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py`](./eip3540_eof_v1/test_container_validation/index.md)`-k invalid_first_code_section`)\n- [x] Multiple type section headers ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py`](./eip3540_eof_v1/test_container_validation/index.md)`-k too_many_type_sections`)\n- [x] Multiple code section headers ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py`](./eip3540_eof_v1/test_container_validation/index.md)`-k multiple_code_headers`)\n- [x] Multiple data section headers ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py`](./eip3540_eof_v1/test_container_validation/index.md)`-k multiple_data_sections`)\n- [x] Container without type section ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_section_order.py::test_section_order`](./eip3540_eof_v1/test_section_order/index.md) `-k 'SectionTest.MISSING-section_kind_TYPE'`)\n- [x] Container without code sections ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_section_order.py::test_section_order`](./eip3540_eof_v1/test_section_order/index.md) `-k 'SectionTest.MISSING-section_kind_CODE'`)\n- [x] Container without data section ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_section_order.py::test_section_order`](./eip3540_eof_v1/test_section_order/index.md) `-k 'SectionTest.MISSING-section_kind_DATA'`)\n- [x] Valid containers without data section and with subcontainers ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py::test_valid_containers`](./eip3540_eof_v1/test_container_validation/test_valid_containers.md)`[fork_unscheduled-eof_test-single_subcontainer_without_data]`)\n- [x] Valid containers with data section and with subcontainers ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py::test_valid_containers`](./eip3540_eof_v1/test_container_validation/test_valid_containers.md)`[fork_unscheduled-eof_test-single_subcontainer_with_data]`)\n- [x] Valid container with maximum number of subcontainers ([`tests/unscheduled/eip7692_eof_v1/eip7620_eof_create/test_subcontainer_validation.py::test_wide_container`](./eip7620_eof_create/test_subcontainer_validation/test_wide_container.md)`[fork_unscheduled-eof_test-256]`)\n- [x] Container with number of subcontainers above the limit ([`tests/unscheduled/eip7692_eof_v1/eip7620_eof_create/test_subcontainer_validation.py::test_wide_container`](./eip7620_eof_create/test_subcontainer_validation/test_wide_container.md)`[fork_unscheduled-eof_test-257]`)\n- [x] Subcontainer section header truncated before subcontainer number ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py`](./eip3540_eof_v1/test_container_validation/index.md)`-k no_container_section_count`)\n- [x] Subcontainer section header truncated before subcontainer size ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py`](./eip3540_eof_v1/test_container_validation/index.md)`-k incomplete_container_section_count`)\n- [x] Truncated subcontainer size ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py`](./eip3540_eof_v1/test_container_validation/index.md)`-k no_container_section_size`, [`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py`](./eip3540_eof_v1/test_container_validation/index.md)`-k incomplete_container_section_size`)\n- [x] Zero container section number ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py`](./eip3540_eof_v1/test_container_validation/index.md)`-k zero_container_section_count`)\n- [x] Zero container section size ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py`](./eip3540_eof_v1/test_container_validation/index.md)`-k zero_size_container_section`)\n- [x] Truncated container section body ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py`](./eip3540_eof_v1/test_container_validation/index.md)`-k no_container_section_contents`)\n- [x] Multiple container section headers ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py`](./eip3540_eof_v1/test_container_validation/index.md)`-k multiple_container_headers`)\n- [x] Invalid subcontainer ([`tests/unscheduled/eip7692_eof_v1/eip7620_eof_create/test_subcontainer_validation.py`](./eip7620_eof_create/test_subcontainer_validation/index.md)`-k invalid`)\n- [x] Invalid subcontainer on a deep nesting level ([`tests/unscheduled/eip7692_eof_v1/eip7620_eof_create/test_subcontainer_validation.py::test_deep_container`](./eip7620_eof_create/test_subcontainer_validation/test_deep_container.md))\n- [x] Max number of inputs/outputs in a section ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py::test_valid_containers`](./eip3540_eof_v1/test_container_validation/test_valid_containers.md)`[fork_unscheduled-eof_test-code_section_input_maximum]`, [`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py::test_valid_containers`](./eip3540_eof_v1/test_container_validation/test_valid_containers.md)`[fork_unscheduled-eof_test-code_section_output_maximum]`)\n- [x] Number of inputs/outputs in a section above the limit ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py`](./eip3540_eof_v1/test_container_validation/index.md)`-k code_section_input_too_large`, [`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_container_validation.py`](./eip3540_eof_v1/test_container_validation/index.md)`-k code_section_output_too_large`)\n\n### Execution\n\n- [x] Execution of EOF contracts ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_execution.py::test_eof_execution`](./eip3540_eof_v1/test_execution/test_eof_execution.md))\n- [x] Legacy executing EXTCODESIZE of EOF contract ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_extcode.py::test_legacy_calls_eof_sstore`](./eip3540_eof_v1/test_extcode/test_legacy_calls_eof_sstore.md))\n- [x] Legacy executing EXTCODEHASH of EOF contract ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_extcode.py::test_legacy_calls_eof_sstore`](./eip3540_eof_v1/test_extcode/test_legacy_calls_eof_sstore.md))\n- [x] Legacy executing EXTCODECOPY of EOF contract ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_extcode.py::test_legacy_calls_eof_sstore`](./eip3540_eof_v1/test_extcode/test_legacy_calls_eof_sstore.md))\n\n## EIP-3670: EOF - Code Validation\n\n### Validation\n\n- [x] Code section with invalid opcodes is rejected ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_all_opcodes_in_container.py::test_all_opcodes_in_container`](./eip3540_eof_v1/test_all_opcodes_in_container/test_all_opcodes_in_container.md))\n- [x] INVALID opcode is valid ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_all_opcodes_in_container.py::test_all_opcodes_in_container`](./eip3540_eof_v1/test_all_opcodes_in_container/test_all_opcodes_in_container.md))\n- [x] Truncated PUSH data ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_all_opcodes_in_container.py::test_truncated_data_portion_opcodes`](./eip3540_eof_v1/test_all_opcodes_in_container/test_truncated_data_portion_opcodes.md))\n- [x] Opcodes deprecated in EOF are rejected ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_all_opcodes_in_container.py::test_all_opcodes_in_container`](./eip3540_eof_v1/test_all_opcodes_in_container/test_all_opcodes_in_container.md))\n- [x] Codes with each valid opcodes ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_all_opcodes_in_container.py::test_all_opcodes_in_container`](./eip3540_eof_v1/test_all_opcodes_in_container/test_all_opcodes_in_container.md))\n- [x] Undefined instruction after terminating instruction ([`tests/unscheduled/eip7692_eof_v1/eip3540_eof_v1/test_all_opcodes_in_container.py::test_invalid_opcodes_after_stop`](./eip3540_eof_v1/test_all_opcodes_in_container/test_invalid_opcodes_after_stop.md))\n\n## EIP-4200: EOF - Static relative jumps\n\n### Validation\n\n- [x] Valid RJUMP with various offsets ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjump.py::test_rjump_positive_negative`](./eip4200_relative_jumps/test_rjump/test_rjump_positive_negative.md))\n- [x] Valid RJUMP with maximum offset ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjump.py::test_rjump_maxes`](./eip4200_relative_jumps/test_rjump/test_rjump_maxes.md))\n- [x] Valid RJUMP with minimum offset ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjump.py::test_rjump_maxes`](./eip4200_relative_jumps/test_rjump/test_rjump_maxes.md))\n- [x] Valid RJUMPI with various offsets ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpi.py::test_rjumpi_forwards`](./eip4200_relative_jumps/test_rjumpi/test_rjumpi_forwards.md))\n- [x] Valid RJUMPI with maximum offset ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpi.py::test_rjumpi_max_forward`](./eip4200_relative_jumps/test_rjumpi/test_rjumpi_max_forward.md))\n- [x] Valid RJUMPI with minimum offset ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpi.py::test_rjumpi_max_backward`](./eip4200_relative_jumps/test_rjumpi/test_rjumpi_max_backward.md))\n- [x] Valid RJUMPV with various number of offsets and various offsets ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpv.py::test_rjumpv_forwards`](./eip4200_relative_jumps/test_rjumpv/test_rjumpv_forwards.md))\n- [x] Valid RJUMPV with table size 256 ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpv.py::test_rjumpv_full_table`](./eip4200_relative_jumps/test_rjumpv/test_rjumpv_full_table.md))\n- [x] Valid RJUMPV containing maximum offset ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpv.py::test_rjumpv_max_forwards`](./eip4200_relative_jumps/test_rjumpv/test_rjumpv_max_forwards.md))\n- [ ] Valid RJUMPV containing minimum offset\n- [x] Truncated before RJUMP immediate ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjump.py::test_rjump_truncated_rjump`](./eip4200_relative_jumps/test_rjump/test_rjump_truncated_rjump.md))\n- [x] Truncated RJUMP immediate ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjump.py::test_rjump_truncated_rjump_2`](./eip4200_relative_jumps/test_rjump/test_rjump_truncated_rjump_2.md))\n- [x] RJUMP out of container bounds ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjump.py::test_rjump_after_container`](./eip4200_relative_jumps/test_rjump/test_rjump_after_container.md))\n- [x] RJUMP out of section bounds ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjump.py::test_rjump_into_data`](./eip4200_relative_jumps/test_rjump/test_rjump_into_data.md))\n- [x] RJUMP into immediate ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjump.py::test_rjump_into_push_1`](./eip4200_relative_jumps/test_rjump/test_rjump_into_push_1.md))\n- [x] Truncated before RJUMPI immediate ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpi.py::test_rjumpi_truncated`](./eip4200_relative_jumps/test_rjumpi/test_rjumpi_truncated.md))\n- [x] Truncated RJUMPI immediate ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpi.py::test_rjumpi_truncated_2`](./eip4200_relative_jumps/test_rjumpi/test_rjumpi_truncated_2.md))\n- [x] RJUMPI out of container bounds ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpi.py::test_rjumpi_after_container`](./eip4200_relative_jumps/test_rjumpi/test_rjumpi_after_container.md))\n- [x] RJUMPI out of section bounds ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpi.py::test_rjumpi_into_data`](./eip4200_relative_jumps/test_rjumpi/test_rjumpi_into_data.md))\n- [x] RJUMPI into immediate ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpi.py::test_rjumpi_into_push_1`](./eip4200_relative_jumps/test_rjumpi/test_rjumpi_into_push_1.md))\n- [x] Truncated before RJUMPV immediate ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpv.py::test_rjumpv_truncated_empty`](./eip4200_relative_jumps/test_rjumpv/test_rjumpv_truncated_empty.md))\n- [x] Truncated RJUMPV immediate ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpv.py::test_rjumpv_truncated`](./eip4200_relative_jumps/test_rjumpv/test_rjumpv_truncated.md))\n- [x] RJUMPV out of container bounds ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpv.py::test_rjumpv_after_container`](./eip4200_relative_jumps/test_rjumpv/test_rjumpv_after_container.md))\n- [x] RJUMPV out of section bounds ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpv.py::test_rjumpv_into_data`](./eip4200_relative_jumps/test_rjumpv/test_rjumpv_into_data.md))\n- [x] RJUMPV into immediate ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpv.py::test_rjumpv_into_push_1`](./eip4200_relative_jumps/test_rjumpv/test_rjumpv_into_push_1.md))\n\n### Execution\n\n- [x] RJUMP forwards ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjump.py::test_rjump_positive_negative`](./eip4200_relative_jumps/test_rjump/test_rjump_positive_negative.md))\n- [x] RJUMP backwards ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjump.py::test_rjump_positive_negative`](./eip4200_relative_jumps/test_rjump/test_rjump_positive_negative.md))\n- [x] RJUMP with 0 offset ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjump.py::test_rjump_zero`](./eip4200_relative_jumps/test_rjump/test_rjump_zero.md))\n- [x] RJUMPI forwards with condition true/false ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpi.py::test_rjumpi_condition_forwards`](./eip4200_relative_jumps/test_rjumpi/test_rjumpi_condition_forwards.md))\n- [x] RJUMPI backwards with condition true/false ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpi.py::test_rjumpi_condition_backwards`](./eip4200_relative_jumps/test_rjumpi/test_rjumpi_condition_backwards.md))\n- [x] RJUMPI with 0 offset with condition true/false ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpi.py::test_rjumpi_condition_zero`](./eip4200_relative_jumps/test_rjumpi/test_rjumpi_condition_zero.md))\n- [x] RJUMPV with different case values ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpv.py::test_rjumpv_condition`](./eip4200_relative_jumps/test_rjumpv/test_rjumpv_condition.md))\n- [x] RJUMPV with case value out of table bounds ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpv.py::test_rjumpv_condition`](./eip4200_relative_jumps/test_rjumpv/test_rjumpv_condition.md))\n- [x] RJUMPV with max cases number ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpv.py::test_rjumpv_condition`](./eip4200_relative_jumps/test_rjumpv/test_rjumpv_condition.md), [`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpv.py`](./eip4200_relative_jumps/test_rjumpv/index.md)`-k test_rjumpv_full_table`)\n\n## EIP-4750: EOF - Functions\n\n### Validation\n\n- [x] Valid CALLFs ([`tests/unscheduled/eip7692_eof_v1/eip4750_functions/test_callf_execution.py::test_callf`](./eip4750_functions/test_callf_execution/test_callf.md))\n- [x] CALLFs to non-existing sections ([`tests/unscheduled/eip7692_eof_v1/eip4750_functions/test_code_validation.py::test_invalid_code_section_index`](./eip4750_functions/test_code_validation/test_invalid_code_section_index.md))\n- [x] Truncated CALLF immediate ([`tests/unscheduled/eip7692_eof_v1/eip4750_functions/test_code_validation.py::test_callf_truncated_immediate`](./eip4750_functions/test_code_validation/test_callf_truncated_immediate.md))\n- [x] Unreachable code sections ([`tests/unscheduled/eip7692_eof_v1/eip4750_functions/test_code_validation.py::test_unreachable_code_sections`](./eip4750_functions/test_code_validation/test_unreachable_code_sections.md))\n- [x] Sections reachable from other sections, but not reachable from section 0 ([`tests/unscheduled/eip7692_eof_v1/eip4750_functions/test_code_validation.py::test_unreachable_code_sections`](./eip4750_functions/test_code_validation/test_unreachable_code_sections.md))\n- [x] Unreachable code section that calls itself with JUMPF ([`tests/unscheduled/eip7692_eof_v1/eip4750_functions/test_code_validation.py::test_unreachable_code_sections`](./eip4750_functions/test_code_validation/test_unreachable_code_sections.md))\n- [x] Unreachable code section that calls itself with CALLF ([`tests/unscheduled/eip7692_eof_v1/eip4750_functions/test_code_validation.py::test_unreachable_code_sections`](./eip4750_functions/test_code_validation/test_unreachable_code_sections.md))\n- [ ] RETF with maximum number of outputs (ethereum/tests: src/EOFTestsFiller/EIP5450/validInvalidFiller.yml)\n\n### Execution\n\n- [ ] CALLF/RETF execution (ethereum/tests: src/EIPTestsFiller/StateTests/stEOF/stEIP4200/CALLF_RETF_ExecutionFiller.yml)\n- [ ] Dispatch to CALLF to different functions based on calldata (ethereum/tests: src/EIPTestsFiller/StateTests/stEOF/stEIP4200/CALLF_RETF_ExecutionFiller.yml)\n- [ ] Maximum number of code sections, calling each section with CALLF (ethereum/tests: src/EIPTestsFiller/StateTests/stEOF/stEIP4200/CALLF_RETF_ExecutionFiller.yml)\n\n## EIP-5450: EOF - Stack Validation\n\n### Validation\n\n#### Terminating instructions\n\n- [ ] Check all terminating opcodes (ethereum/tests: ./src/EOFTestsFiller/efExample/validInvalidFiller.yml src/EOFTestsFiller/EIP5450/validInvalidFiller.yml)\n- [ ] Code section not terminating (executing beyond section end) (ethereum/tests: ./src/EOFTestsFiller/efExample/validInvalidFiller.yml src/EOFTestsFiller/EIP5450/validInvalidFiller.yml src/EOFTestsFiller/efStack/no_terminating_instruction_Copier.json)\n- [ ] Code section ending with NOP (not terminating) (src/EOFTestsFiller/EIP5450/validInvalidFiller.yml)\n- [ ] Check that unreachable code is invalid after all terminating instructions (ethereum/tests: src/EOFTestsFiller/EIP5450/validInvalidFiller.yml)\n\n#### Jumps\n\n##### RJUMP\n\n- [x] Valid RJUMP backwards in a constant stack segment ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjump.py::test_rjump_valid_backward`](./eip4200_relative_jumps/test_rjump/test_rjump_valid_backward.md)\n- [x] Invalid RJUMP backwards with mismatching stack in a constant stack segment ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjump.py::test_rjump_backward_invalid_max_stack_height`](./eip4200_relative_jumps/test_rjump/test_rjump_backward_invalid_max_stack_height.md)\n- [x] Valid RJUMP backwards in a variable stack segment ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjump.py::test_rjump_valid_backward`](./eip4200_relative_jumps/test_rjump/test_rjump_valid_backward.md)\n- [x] Invalid RJUMP backwards with mismatching stack in a variable stack segment ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjump.py::test_rjump_backward_invalid_max_stack_height`](./eip4200_relative_jumps/test_rjump/test_rjump_backward_invalid_max_stack_height.md)\n- [x] Valid RJUMP forwards ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjump.py::test_rjump_valid_forward`](./eip4200_relative_jumps/test_rjump/test_rjump_valid_forward.md)\n- [x] Valid RJUMP forwards from different stack ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjump.py::test_rjump_valid_forward`](./eip4200_relative_jumps/test_rjump/test_rjump_valid_forward.md)\n- [x] Valid RJUMP forwards in variable stack segment ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjump.py::test_rjump_valid_forward`](./eip4200_relative_jumps/test_rjump/test_rjump_valid_forward.md)\n- [x] Valid RJUMP forwards from different stack in variable stack segment ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjump.py::test_rjump_valid_forward`](./eip4200_relative_jumps/test_rjump/test_rjump_valid_forward.md)\n- [ ] Valid empty infinite loop with RJUMP (ethereum/tests: src/EOFTestsFiller/EIP5450/validInvalidFiller.yml)\n- [ ] Valid balanced infinite loop (ethereum/tests: src/EOFTestsFiller/EIP5450/validInvalidFiller.yml)\n- [x] RJUMP to self (including variadic stack height) ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjump.py::test_rjump_into_self`](./eip4200_relative_jumps/test_rjump/test_rjump_into_self.md))\n\n##### RJUMPI\n\n- [x] Valid RJUMPI backwards in a constant stack segment ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpi.py::test_rjumpi_valid_backward`](./eip4200_relative_jumps/test_rjumpi/test_rjumpi_valid_backward.md)\n- [x] Invalid RJUMPI backwards with mismatching stack in a constant stack segment ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpi.py::test_rjumpi_backward_invalid_max_stack_height`](./eip4200_relative_jumps/test_rjumpi/test_rjumpi_backward_invalid_max_stack_height.md)\n- [x] Valid RJUMPI backwards in a variable stack segment ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpi.py::test_rjumpi_valid_backward`](./eip4200_relative_jumps/test_rjumpi/test_rjumpi_valid_backward.md)\n- [x] Invalid RJUMPI backwards with mismatching stack in a variable stack segment ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpi.py::test_rjumpi_backward_invalid_max_stack_height`](./eip4200_relative_jumps/test_rjumpi/test_rjumpi_backward_invalid_max_stack_height.md)\n- [x] RJUMPI forward with branches of equal stack height ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpi.py::test_rjumpi_valid_forward`](./eip4200_relative_jumps/test_rjumpi/test_rjumpi_valid_forward.md)\n- [x] RJUMPI forward with branches of equal stack height in a variable stack segment ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpi.py::test_rjumpi_valid_forward`](./eip4200_relative_jumps/test_rjumpi/test_rjumpi_valid_forward.md)\n- [x] RJUMPI forward with branches of different stack height ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpi.py::test_rjumpi_valid_forward`](./eip4200_relative_jumps/test_rjumpi/test_rjumpi_valid_forward.md)\n- [x] RJUMPI forward with branches of different stack height in a variable stack segment ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpi.py::test_rjumpi_valid_forward`](./eip4200_relative_jumps/test_rjumpi/test_rjumpi_valid_forward.md)\n- [x] Valid loop using RJUMPI ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpi.py::test_rjumpi_valid_forward`](./eip4200_relative_jumps/test_rjumpi/test_rjumpi_valid_forward.md)\n- [x] Valid loop with a break using RJUMPI - equal stack after break and normal loop end ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpi.py::test_rjumpi_valid_forward`](./eip4200_relative_jumps/test_rjumpi/test_rjumpi_valid_forward.md)\n- [x] Valid loop with a break using RJUMPI - equal stack after break and normal loop end, variable stack segment ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpi.py::test_rjumpi_valid_forward`](./eip4200_relative_jumps/test_rjumpi/test_rjumpi_valid_forward.md)\n- [x] Valid loop with a break using RJUMPI - different stack after break and normal loop end ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpi.py::test_rjumpi_valid_forward`](./eip4200_relative_jumps/test_rjumpi/test_rjumpi_valid_forward.md)\n- [x] Valid loop with a break using RJUMPI - different stack after break and normal loop end, variable stack segment ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpi.py::test_rjumpi_valid_forward`](./eip4200_relative_jumps/test_rjumpi/test_rjumpi_valid_forward.md)\n- [x] If-then-else with equal stack height in branches ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpi.py::test_rjumpi_valid_forward`](./eip4200_relative_jumps/test_rjumpi/test_rjumpi_valid_forward.md)\n- [x] If-then-else with equal stack height in branches, variable stack segment ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpi.py::test_rjumpi_valid_forward`](./eip4200_relative_jumps/test_rjumpi/test_rjumpi_valid_forward.md)\n- [x] If-then-else with different stack height in branches ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpi.py::test_rjumpi_valid_forward`](./eip4200_relative_jumps/test_rjumpi/test_rjumpi_valid_forward.md)\n- [x] If-then-else with different stack height in branches, variable stack segment ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpi.py::test_rjumpi_valid_forward`](./eip4200_relative_jumps/test_rjumpi/test_rjumpi_valid_forward.md)\n- [x] RJUMPI to self (including variadic stack height) ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpi.py::test_rjumpi_into_self`](./eip4200_relative_jumps/test_rjumpi/test_rjumpi_into_self.md))\n\n##### RJUMPV\n\n- [x] Valid RJUMPV backwards in a constant stack segment ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpv.py::test_rjumpv_valid_backward`](./eip4200_relative_jumps/test_rjumpv/test_rjumpv_valid_backward.md)\n- [x] Invalid RJUMPV backwards with mismatching stack in a constant stack segment ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpv.py::test_rjumpv_backward_invalid_max_stack_height`](./eip4200_relative_jumps/test_rjumpv/test_rjumpv_backward_invalid_max_stack_height.md)\n- [x] Valid RJUMPV backwards in a variable stack segment ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpv.py::test_rjumpv_valid_backward`](./eip4200_relative_jumps/test_rjumpv/test_rjumpv_valid_backward.md)\n- [x] Invalid RJUMPV backwards with mismatching stack in a variable stack segment ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpv.py::test_rjumpv_backward_invalid_max_stack_height`](./eip4200_relative_jumps/test_rjumpv/test_rjumpv_backward_invalid_max_stack_height.md)\n- [x] RJUMPV forward with branches of equal stack height ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpv.py::test_rjumpv_valid_forward`](./eip4200_relative_jumps/test_rjumpv/test_rjumpv_valid_forward.md)\n- [x] RJUMPV forward with branches of equal stack height in a variable stack segment ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpv.py::test_rjumpv_valid_forward`](./eip4200_relative_jumps/test_rjumpv/test_rjumpv_valid_forward.md)\n- [x] RJUMPV forward with branches of different stack height ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpv.py::test_rjumpv_valid_forward`](./eip4200_relative_jumps/test_rjumpv/test_rjumpv_valid_forward.md)\n- [x] RJUMPV forward with branches of different stack height  in a variable stack segment ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpv.py::test_rjumpv_valid_forward`](./eip4200_relative_jumps/test_rjumpv/test_rjumpv_valid_forward.md)\n- [ ] Valid infinite loop using RJUMPV (ethereum/tests: src/EOFTestsFiller/EIP5450/validInvalidFiller.yml)\n- [x] Switch with equal stack height in branches ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpv.py::test_rjumpv_valid_forward`](./eip4200_relative_jumps/test_rjumpv/test_rjumpv_valid_forward.md)\n- [x] Switch with equal stack height in branches, variable stack segment ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpv.py::test_rjumpv_valid_forward`](./eip4200_relative_jumps/test_rjumpv/test_rjumpv_valid_forward.md)\n- [x] Switch with different stack height in branches ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpv.py::test_rjumpv_valid_forward`](./eip4200_relative_jumps/test_rjumpv/test_rjumpv_valid_forward.md)\n- [x] Switch with different stack height in branches, variable stack segment ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpv.py::test_rjumpv_valid_forward`](./eip4200_relative_jumps/test_rjumpv/test_rjumpv_valid_forward.md)\n- [x] RJUMPV to self (including variadic stack height) ([`tests/unscheduled/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpv.py::test_rjumpv_into_self`](./eip4200_relative_jumps/test_rjumpv/test_rjumpv_into_self.md))\n\n##### Combinations\n\n- [ ] RJUMP and RJUMPI with the same target and equal stack height (ethereum/tests: src/EOFTestsFiller/efStack/forwards_rjumpi_Copier.json)\n- [ ] RJUMP and RJUMPI with the same target and equal stack height in a variable stack segment (ethereum/tests: src/EOFTestsFiller/efStack/forwards_rjumpi_variable_stack_Copier.json)\n- [ ] RJUMP and RJUMPI with the same target and different stack height (ethereum/tests: src/EOFTestsFiller/efStack/forwards_rjumpi_Copier.json)\n- [ ] RJUMP and RJUMPI with the same target and different stack height in a variable stack segment (ethereum/tests: src/EOFTestsFiller/efStack/forwards_rjumpi_variable_stack_Copier.json)\n- [ ] RJUMP and RJUMPV with the same target and equal stack height (ethereum/tests: src/EOFTestsFiller/efStack/forwards_rjumpv_Copier.json)\n- [ ] RJUMP and RJUMPV with the same target and equal stack height in a variable stack segment (ethereum/tests: src/EOFTestsFiller/efStack/forwards_rjumpv_variable_stack_Copier.json)\n- [ ] RJUMP and RJUMPV with the same target and different stack height (ethereum/tests: src/EOFTestsFiller/efStack/forwards_rjumpv_Copier.json)\n- [ ] RJUMP and RJUMPV with the same target and different stack height in a variable stack segment (ethereum/tests: src/EOFTestsFiller/efStack/forwards_rjumpv_variable_stack_Copier.json)\n- [ ] RJUMPI and RJUMPV with the same target\n\n#### Stack underflow\n\n- [x] Stack underflows ([`tests/unscheduled/eip7692_eof_v1/eip5450_stack/test_code_validation.py::test_all_opcodes_stack_underflow`](./eip5450_stack/test_code_validation/test_all_opcodes_stack_underflow.md))\n- [x] Stack underflow with enough items available in caller stack - can't dig into caller frame ([`tests/unscheduled/eip7692_eof_v1/eip4750_functions/test_code_validation.py::test_eof_validity`](./eip4750_functions/test_code_validation/test_eof_validity.md))\n- [x] Stack underflow in variable stack segment, only min underflow ([`tests/unscheduled/eip7692_eof_v1/eip5450_stack/test_code_validation.py::test_all_opcodes_stack_underflow`](./eip5450_stack/test_code_validation/test_all_opcodes_stack_underflow.md))\n- [x] Stack underflow in variable stack segment, both min and max underflow ([`tests/unscheduled/eip7692_eof_v1/eip5450_stack/test_code_validation.py::test_all_opcodes_stack_underflow`](./eip5450_stack/test_code_validation/test_all_opcodes_stack_underflow.md))\n\n#### CALLF\n\n- [x] Valid CALLFs to functions with inputs ([`tests/unscheduled/eip7692_eof_v1/eip4750_functions/test_code_validation.py::test_eof_validity`](./eip4750_functions/test_code_validation/test_eof_validity.md))\n- [ ] CALLF stack underflows ([`tests/unscheduled/eip7692_eof_v1/eip4750_functions/test_code_validation.py::test_eof_validity`](./eip4750_functions/test_code_validation/test_eof_validity.md))\n    - [ ] ./src/EOFTestsFiller/efExample/validInvalidFiller.yml\n    - [ ] src/EOFTestsFiller/EIP5450/validInvalidFiller.yml\n- [x] CALLF stack underflow in variable stack segment, only min underflow ([`tests/unscheduled/eip7692_eof_v1/eip4750_functions/test_code_validation.py::test_callf_stack_underflow_examples`](./eip4750_functions/test_code_validation/test_callf_stack_underflow_examples.md))\n- [x] CALLF stack underflow in variable stack segment, both min and max underflow ([`tests/unscheduled/eip7692_eof_v1/eip4750_functions/test_code_validation.py::test_callf_stack_underflow_examples`](./eip4750_functions/test_code_validation/test_callf_stack_underflow_examples.md))\n- [ ] Branching to CALLFs with the same number of outputs (ethereum/tests: src/EOFTestsFiller/EIP5450/validInvalidFiller.yml)\n- [ ] Check that CALLF stack inputs/outputs equal to target section type definition\n\n#### RETF\n\n- [ ] Valid RETF with correct number of items on stack ([`tests/unscheduled/eip7692_eof_v1/eip4750_functions/test_code_validation.py::test_eof_validity`](./eip4750_functions/test_code_validation/test_eof_validity.md))\n    - [ ] src/EOFTestsFiller/EIP5450/validInvalidFiller.yml\n- [ ] Invalid RETF with extra items on stack ([`tests/unscheduled/eip7692_eof_v1/eip4750_functions/test_code_validation.py::test_eof_validity`](./eip4750_functions/test_code_validation/test_eof_validity.md))\n    - [ ] ./src/EOFTestsFiller/efExample/validInvalidFiller.yml\n- [x] RETF stack underflow ([`tests/unscheduled/eip7692_eof_v1/eip4750_functions/test_code_validation.py::test_eof_validity`](./eip4750_functions/test_code_validation/test_eof_validity.md))\n- [x] RETF reached via different paths ([`tests/unscheduled/eip7692_eof_v1/eip4750_functions/test_code_validation.py::test_eof_validity`](./eip4750_functions/test_code_validation/test_eof_validity.md))\n- [x] RETF in variable stack segment is not allowed ([`tests/unscheduled/eip7692_eof_v1/eip4750_functions/test_code_validation.py::test_eof_validity`](./eip4750_functions/test_code_validation/test_eof_validity.md))\n- [ ] Extra items on stack allowed for terminating instructions other than RETF (ethereum/tests: src/EOFTestsFiller/EIP5450/validInvalidFiller.yml)\n- [x] Invalid RETF in a non-returning function ([`tests/unscheduled/eip7692_eof_v1/eip6206_jumpf/test_nonreturning_validation.py::test_first_section_returning`](./eip6206_jumpf/test_nonreturning_validation/test_first_section_returning.md))\n\n#### JUMPF\n\n- [x] Extra items on stack are allowed for JUMPF to non-returning function ([`tests/unscheduled/eip7692_eof_v1/eip6206_jumpf/test_jumpf_validation.py::test_jumpf_to_non_returning`](./eip6206_jumpf/test_jumpf_validation/test_jumpf_to_non_returning.md) [`tests/unscheduled/eip7692_eof_v1/eip6206_jumpf/test_jumpf_validation.py::test_jumpf_to_non_returning_variable_stack`](./eip6206_jumpf/test_jumpf_validation/test_jumpf_to_non_returning_variable_stack.md))\n- [x] JUMPF stack underflows ([`tests/unscheduled/eip7692_eof_v1/eip6206_jumpf/test_jumpf_validation.py::test_jumpf_to_non_returning`](./eip6206_jumpf/test_jumpf_validation/test_jumpf_to_non_returning.md) [`tests/unscheduled/eip7692_eof_v1/eip6206_jumpf/test_jumpf_validation.py::test_jumpf_to_returning`](./eip6206_jumpf/test_jumpf_validation/test_jumpf_to_returning.md))\n- [x] JUMPF stack underflow in a variable stack segment - only min underflow ([`tests/unscheduled/eip7692_eof_v1/eip6206_jumpf/test_jumpf_validation.py::test_jumpf_to_non_returning_variable_stack`](./eip6206_jumpf/test_jumpf_validation/test_jumpf_to_non_returning_variable_stack.md))\n- [x] JUMPF stack underflow in a variable stack segment - both min and max underflow ([`tests/unscheduled/eip7692_eof_v1/eip6206_jumpf/test_jumpf_validation.py::test_jumpf_to_non_returning_variable_stack`](./eip6206_jumpf/test_jumpf_validation/test_jumpf_to_non_returning_variable_stack.md))\n- [x] JUMPF into function with the same number of outputs ([`tests/unscheduled/eip7692_eof_v1/eip6206_jumpf/test_jumpf_validation.py::test_jumpf_to_returning`](./eip6206_jumpf/test_jumpf_validation/test_jumpf_to_returning.md))\n- [x] JUMPF into function with fewer outputs than current one ([`tests/unscheduled/eip7692_eof_v1/eip6206_jumpf/test_jumpf_validation.py::test_jumpf_to_returning`](./eip6206_jumpf/test_jumpf_validation/test_jumpf_to_returning.md))\n- [x] Extra items on stack are allowed for JUMPF to returning function ([`tests/unscheduled/eip7692_eof_v1/eip6206_jumpf/test_jumpf_validation.py::test_jumpf_to_returning`](./eip6206_jumpf/test_jumpf_validation/test_jumpf_to_returning.md))\n- [x] JUMPF to returning in a variable stack segment is not allowed ([`tests/unscheduled/eip7692_eof_v1/eip6206_jumpf/test_jumpf_validation.py::test_jumpf_to_returning_variable_stack_1`](./eip6206_jumpf/test_jumpf_validation/test_jumpf_to_returning_variable_stack_1.md)  [`tests/unscheduled/eip7692_eof_v1/eip6206_jumpf/test_jumpf_validation.py::test_jumpf_to_returning_variable_stack_2`](./eip6206_jumpf/test_jumpf_validation/test_jumpf_to_returning_variable_stack_2.md)  [`tests/unscheduled/eip7692_eof_v1/eip6206_jumpf/test_jumpf_validation.py::test_jumpf_to_returning_variable_stack_3`](./eip6206_jumpf/test_jumpf_validation/test_jumpf_to_returning_variable_stack_3.md)) \n- (ethereum/tests: src/EOFTestsFiller/efStack/jumpf_to_returning_variable_stack_Copier.json)\n- [x] Invalid JUMPF in a non-returning function ([`tests/unscheduled/eip7692_eof_v1/eip6206_jumpf/test_nonreturning_validation.py::test_retf_in_nonreturning`](./eip6206_jumpf/test_nonreturning_validation/test_retf_in_nonreturning.md))\n- [ ] Truncated JUMPF immediate\n\n#### Stack overflow\n\n##### CALLF\n\n- [x] Max allowed stack height reached in CALLF-ed function ([`tests/unscheduled/eip7692_eof_v1/eip4750_functions/test_code_validation.py::test_callf_stack_overflow`](./eip4750_functions/test_code_validation/test_callf_stack_overflow.md))\n- [x] CALLF validation time stack overflow ([`tests/unscheduled/eip7692_eof_v1/eip4750_functions/test_code_validation.py::test_callf_stack_overflow_after_callf`](./eip4750_functions/test_code_validation/test_callf_stack_overflow_after_callf.md))\n- [x] Max allowed stack height reached in CALLF-ed function with inputs ([`tests/unscheduled/eip7692_eof_v1/eip4750_functions/test_code_validation.py::test_callf_with_inputs_stack_overflow`](./eip4750_functions/test_code_validation/test_callf_with_inputs_stack_overflow.md))\n- [x] CALLF validation time stack overflow in function with inputs ([`tests/unscheduled/eip7692_eof_v1/eip4750_functions/test_code_validation.py::test_callf_with_inputs_stack_overflow`](./eip4750_functions/test_code_validation/test_callf_with_inputs_stack_overflow.md))\n- [x] Max allowed stack height reached in CALLF-ed function. CALLF in variable stack segment. ([`tests/unscheduled/eip7692_eof_v1/eip4750_functions/test_code_validation.py::test_callf_stack_overflow_variable_stack`](./eip4750_functions/test_code_validation/test_callf_stack_overflow_variable_stack.md) [`tests/unscheduled/eip7692_eof_v1/eip4750_functions/test_code_validation.py::test_callf_stack_overflow_variable_stack_2`](./eip4750_functions/test_code_validation/test_callf_stack_overflow_variable_stack_2.md)))\n- [x] CALLF validation time stack overflow in variable stack segment. ([`tests/unscheduled/eip7692_eof_v1/eip4750_functions/test_code_validation.py::test_callf_stack_overflow_variable_stack_3`](./eip4750_functions/test_code_validation/test_callf_stack_overflow_variable_stack_3.md) [`tests/unscheduled/eip7692_eof_v1/eip4750_functions/test_code_validation.py::test_callf_stack_overflow_variable_stack_4`](./eip4750_functions/test_code_validation/test_callf_stack_overflow_variable_stack_4.md)))\n- [x] Max allowed stack height reached in CALLF-ed function with inputs. CALLF in variable stack segment. ([`tests/unscheduled/eip7692_eof_v1/eip4750_functions/test_code_validation.py::test_callf_with_inputs_stack_overflow_variable_stack`](./eip4750_functions/test_code_validation/test_callf_with_inputs_stack_overflow_variable_stack.md))\n- [x] CALLF validation time stack overflow in function with inputs in variable stack segment. ([`tests/unscheduled/eip7692_eof_v1/eip4750_functions/test_code_validation.py::test_callf_with_inputs_stack_overflow_variable_stack`](./eip4750_functions/test_code_validation/test_callf_with_inputs_stack_overflow_variable_stack.md))\n- [ ] Function inputs are accessible and accounted for (no stack underflow if they are popped) (ethereum/tests: src/EOFTestsFiller/EIP5450/validInvalidFiller.yml)\n\n##### JUMPF\n\n- [x] Max allowed stack height reached in JUMPF-ed function ([`tests/unscheduled/eip7692_eof_v1/eip6206_jumpf/test_jumpf_validation.py::test_jumpf_other_stack_overflow`](./eip6206_jumpf/test_jumpf_validation/test_jumpf_other_stack_overflow.md))\n- [x] JUMPF validation time stack overflow ([`tests/unscheduled/eip7692_eof_v1/eip6206_jumpf/test_jumpf_validation.py::test_jumpf_other_stack_overflow`](./eip6206_jumpf/test_jumpf_validation/test_jumpf_other_stack_overflow.md))\n- [x] Max allowed stack height reached in JUMPF-ed function with inputs ([`tests/unscheduled/eip7692_eof_v1/eip6206_jumpf/test_jumpf_stack.py::test_jumpf_with_inputs_stack_overflow`](./eip6206_jumpf/test_jumpf_stack/test_jumpf_with_inputs_stack_overflow.md))\n- [x] JUMPF validation time stack overflow in function with inputs ([`tests/unscheduled/eip7692_eof_v1/eip6206_jumpf/test_jumpf_stack.py::test_jumpf_with_inputs_stack_overflow`](./eip6206_jumpf/test_jumpf_stack/test_jumpf_with_inputs_stack_overflow.md))\n- [x] JUMPF validation time stack overflow in function with inputs, variable stack segment, only max overflow ([`tests/unscheduled/eip7692_eof_v1/eip6206_jumpf/test_jumpf_stack.py::test_jumpf_with_inputs_stack_overflow_variable_stack`](./eip6206_jumpf/test_jumpf_stack/test_jumpf_with_inputs_stack_overflow_variable_stack.md))\n- [x] JUMPF validation time stack overflow in function with inputs, variable stack segment, both max and min overflow  ([`tests/unscheduled/eip7692_eof_v1/eip6206_jumpf/test_jumpf_stack.py::test_jumpf_with_inputs_stack_overflow_variable_stack`](./eip6206_jumpf/test_jumpf_stack/test_jumpf_with_inputs_stack_overflow_variable_stack.md))\n- [x] Max allowed stack height reached in JUMPF-ed function. JUMPF in variable stack segment. ([`tests/unscheduled/eip7692_eof_v1/eip6206_jumpf/test_jumpf_stack.py::test_jumpf_variadic_stack_overflow`](./eip6206_jumpf/test_jumpf_stack/test_jumpf_variadic_stack_overflow.md))\n- [x] JUMPF validation time stack overflow in variable stack segment - only max overflow. ([`tests/unscheduled/eip7692_eof_v1/eip6206_jumpf/test_jumpf_stack.py::test_jumpf_variadic_stack_overflow`](./eip6206_jumpf/test_jumpf_stack/test_jumpf_variadic_stack_overflow.md))\n- [x] JUMPF validation time stack overflow in variable stack segment - both min and max overflow. ([`tests/unscheduled/eip7692_eof_v1/eip6206_jumpf/test_jumpf_stack.py::test_jumpf_variadic_stack_overflow`](./eip6206_jumpf/test_jumpf_stack/test_jumpf_variadic_stack_overflow.md))\n- [x] Max allowed stack height reached in JUMPF-ed function with inputs. JUMPF in variable stack segment. ([`tests/unscheduled/eip7692_eof_v1/eip6206_jumpf/test_jumpf_stack.py::test_jumpf_with_inputs_stack_overflow_variable_stack`](./eip6206_jumpf/test_jumpf_stack/test_jumpf_with_inputs_stack_overflow_variable_stack.md))\n- [x] JUMPF validation time stack overflow in function with inputs in variable stack segment. ([`tests/unscheduled/eip7692_eof_v1/eip6206_jumpf/test_jumpf_stack.py::test_jumpf_with_inputs_stack_overflow_variable_stack`](./eip6206_jumpf/test_jumpf_stack/test_jumpf_with_inputs_stack_overflow_variable_stack.md))\n\n#### SWAPN/DUPN/EXCHANGE\n\n- [ ] Valid DUPN with enough items on stack (ethereum/tests: src/EOFTestsFiller/efStack/dupn_stack_validation_Copier.json)\n- [ ] DUPN stack underflow (ethereum/tests: src/EOFTestsFiller/efStack/dupn_stack_validation_Copier.json)\n- [ ] Valid SWAPN with enough items on stack (ethereum/tests: src/EOFTestsFiller/efStack/swapn_stack_validation_Copier.json)\n- [ ] SWAPN stack underflow (ethereum/tests: src/EOFTestsFiller/efStack/swapn_stack_validation_Copier.json)\n- [ ] Valid EXCHANGE with enough items on stack (ethereum/tests: src/EOFTestsFiller/efStack/exchange_deep_stack_validation_Copier.json src/EOFTestsFiller/efStack/exchange_stack_validation_Copier.json)\n- [ ] EXCHANGE stack underflow (ethereum/tests: src/EOFTestsFiller/efStack/exchange_stack_validation_Copier.json src/EOFTestsFiller/efStack/exchange_empty_stack_validation_Copier.json)\n\n#### Other\n\n- [ ] Wrong max_stack_height (ethereum/tests: ./src/EOFTestsFiller/efExample/validInvalidFiller.yml src/EOFTestsFiller/efValidation/max_stack_height_Copier.json)\n- [ ] All opcodes correctly account for stack inputs/outputs (ethereum/tests: src/EOFTestsFiller/EIP5450/validInvalidFiller.yml)\n- [ ] Code reachable only via backwards jump is invalid\n- [x] Maximally broad [0, 1023] stack range ([`tests/unscheduled/eip7692_eof_v1/eip_5450_stack/test_code_validation.py::test_stack_range_maximally_broad`](./eip5450_stack/test_code_validation/test_stack_range_maximally_broad.md))\n\n### Execution\n\n- [x] Max stack size (1024) in CALLF-ed function ([`tests/unscheduled/eip7692_eof_v1/eip4750_functions/test_callf_execution.py::test_callf_operand_stack_size_max`](./eip4750_functions/test_callf_execution/test_callf_operand_stack_size_max.md)\n\n\n## EIP-6206: EOF - JUMPF and non-returning functions\n\n### Validation\n\n- [x] Zero section returning ([`tests/unscheduled/eip7692_eof_v1/eip6206_jumpf/test_nonreturning_validation.py::test_first_section_returning`](./eip6206_jumpf/test_nonreturning_validation/test_first_section_returning.md), ethereum/tests: ./src/EOFTestsFiller/efExample/validInvalidFiller.yml src/EOFTestsFiller/EIP4750/validInvalidFiller.yml)\n- [x] Zero section declared non-returning but ends with RETF ([`tests/unscheduled/eip7692_eof_v1/eip6206_jumpf/test_nonreturning_validation.py::test_retf_in_nonreturning`](./eip6206_jumpf/test_nonreturning_validation/test_retf_in_nonreturning.md), ethereum/tests: src/EOFTestsFiller/EIP4750/validInvalidFiller.yml)\n- [x] CALLF into non-returning function ([`tests/unscheduled/eip7692_eof_v1/eip6206_jumpf/test_nonreturning_validation.py::test_callf_to_nonreturning`](./eip6206_jumpf/test_nonreturning_validation/test_callf_to_nonreturning.md))\n- [x] Valid JUMPF into sections with equal number of outputs ([`tests/unscheduled/eip7692_eof_v1/eip6206_jumpf/test_jumpf_execution.py::test_jumpf_to_retf`](./eip6206_jumpf/test_jumpf_execution/test_jumpf_to_retf.md))\n- [x] Valid JUMPF into sections with different but compatible number of outputs ([`tests/unscheduled/eip7692_eof_v1/eip6206_jumpf/test_jumpf_execution.py::test_jumpf_to_retf`](./eip6206_jumpf/test_jumpf_execution/test_jumpf_to_retf.md))\n- [x] JUMPF into sections with incompatible outputs ([`tests/unscheduled/eip7692_eof_v1/eip6206_jumpf/test_jumpf_stack.py::test_jumpf_incompatible_outputs`](./eip6206_jumpf/test_jumpf_stack/test_jumpf_incompatible_outputs.md))\n- [x] Non-returning section without JUMPF ([`tests/unscheduled/eip7692_eof_v1/eip6206_jumpf/test_jumpf_execution.py::test_jumpf_forward`](./eip6206_jumpf/test_jumpf_execution/test_jumpf_forward.md))\n- [x] Non-returning section with JUMPF ([`tests/unscheduled/eip7692_eof_v1/eip6206_jumpf/test_nonreturning_validation.py::test_jumpf_in_nonreturning`](./eip6206_jumpf/test_nonreturning_validation/test_jumpf_in_nonreturning.md))\n- [x] Returning section with RETF ([`tests/unscheduled/eip7692_eof_v1/eip4750_functions/test_callf_execution.py::test_callf`](./eip4750_functions/test_callf_execution/test_callf.md))\n- [x] Returning section with JUMPF ([`tests/unscheduled/eip7692_eof_v1/eip6206_jumpf/test_jumpf_validation.py::test_returning_jumpf`](./eip6206_jumpf/test_jumpf_validation/test_returning_jumpf.md))\n- [x] Returning section with JUMPF to returning and RETF ([`tests/unscheduled/eip7692_eof_v1/eip6206_jumpf/test_jumpf_execution.py::test_jumpf_to_retf`](./eip6206_jumpf/test_jumpf_execution/test_jumpf_to_retf.md))\n- [x] Returning section with JUMPF to non-returning and RETF ([`tests/unscheduled/eip7692_eof_v1/eip6206_jumpf/test_jumpf_validation.py::test_returning_jumpf`](./eip6206_jumpf/test_jumpf_validation/test_returning_jumpf.md))\n- [x] Returning section without JUMPF nor RETF ([`tests/unscheduled/eip7692_eof_v1/eip6206_jumpf/test_nonreturning_validation.py::test_returning_section_not_returning`](./eip6206_jumpf/test_nonreturning_validation/test_returning_section_not_returning.md))\n- [x] Invalid non-returning flag ([`tests/unscheduled/eip7692_eof_v1/eip6206_jumpf/test_nonreturning_validation.py::test_returning_section_not_returning`](./eip6206_jumpf/test_nonreturning_validation/test_returning_section_not_returning.md))\n- [x] Circular JUMPF between two sections ([`tests/unscheduled/eip7692_eof_v1/eip6206_jumpf/test_jumpf_execution.py::test_jumpf_infinite_loop`](./eip6206_jumpf/test_jumpf_execution/test_jumpf_infinite_loop.md))\n- [x] JUMPF into non-existing section ([`tests/unscheduled/eip7692_eof_v1/eip6206_jumpf/test_jumpf_validation.py::test_invalid_code_section_index`](./eip6206_jumpf/test_jumpf_validation/test_invalid_code_section_index.md))\n\n## EIP-7480: EOF - Data section access instructions\n\n### Validation\n\n- [x] Valid DATALOADN with various offsets ([`tests/unscheduled/eip7692_eof_v1/eip7480_data_section/test_data_opcodes.py::test_dataloadn`](./eip7480_data_section/test_data_opcodes/test_dataloadn.md)\n- [x] Truncated DATALOADN immediate ([`tests/unscheduled/eip7692_eof_v1/eip7480_data_section/test_code_validation.py::test_dataloadn_truncated_immediate`](./eip7480_data_section/test_code_validation/test_dataloadn_truncated_immediate.md)\n- [x] DATALOADN offset out of bounds ([`tests/unscheduled/eip7692_eof_v1/eip7480_data_section/test_code_validation.py::test_invalid_containers_with_data_section`](./eip7480_data_section/test_code_validation/test_invalid_containers_with_data_section.md)\n- [x] DATALOADN accessing not full word ([`tests/unscheduled/eip7692_eof_v1/eip7480_data_section/test_code_validation.py::test_invalid_containers_with_data_section`](./eip7480_data_section/test_code_validation/test_invalid_containers_with_data_section.md)\n\n## EIP-663: SWAPN, DUPN and EXCHANGE instructions\n\n### Validation\n\n- [ ] A DUPN instruction causes stack overflow\n- [ ] A DUPN instruction causes stack underflow\n- [ ] A DUPN instruction causes max stack height mismatch\n- [ ] A SWAPN instruction causes stack underflow\n\n### Execution\n\n- [x] Positive tests for DUPN instructions ([`./tests/unscheduled/eip7692_eof_v1/eip663_dupn_swapn_exchange/test_dupn.py::test_dupn_all_valid_immediates`](./eip663_dupn_swapn_exchange/test_dupn/test_dupn_all_valid_immediates.md))\n- [x] Positive tests for SWAPN instructions ([`./tests/unscheduled/eip7692_eof_v1/eip663_dupn_swapn_exchange/test_swapn.py::test_swapn_all_valid_immediates`](./eip663_dupn_swapn_exchange/test_swapn/test_swapn_all_valid_immediates.md))\n- [x] Positive tests for EXCHANGE instruction ([`./tests/unscheduled/eip7692_eof_v1/eip663_dupn_swapn_exchange/test_exchange.py::test_exchange_all_valid_immediates`](./eip663_dupn_swapn_exchange/test_exchange/test_exchange_all_valid_immediates.md))\n\n## EIP-7069: Revamped CALL instructions\n\n### Execution\n\n- [x] EXTDELEGATECALL from EOF to EOF ([`./tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_calls.py::test_eof_calls_eof_sstore`](./eip7069_extcall/test_calls/test_eof_calls_eof_sstore.md))\n- [x] EXTDELEGATECALL from EOF to legacy fails ([`./tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_calls.py::test_eof_calls_legacy_sstore`](./eip7069_extcall/test_calls/test_eof_calls_legacy_sstore.md))\n- [ ] EXTDELEGATECALL forwards static mode (evmone-tests: state_tests/state_transition/eof_calls/extdelegatecall_static.json)\n- [x] EXTCALL with value success ([`./tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_calls.py::test_eof_calls_with_value`](./eip7069_extcall/test_calls/test_eof_calls_with_value.md))\n- [x] EXTCALL with value from EXTSTATICCALL ([`./tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_calls.py::test_eof_calls_static_flag_with_value`](./eip7069_extcall/test_calls/test_eof_calls_static_flag_with_value.md))\n- [x] EXTCALL with value, not enough balance ([`./tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_calls.py::test_eof_calls_with_value`](./eip7069_extcall/test_calls/test_eof_calls_with_value.md))\n- [x] EXTCALL with value, check additional charge for value ([`./tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_gas.py::test_ext_calls_gas`](./eip7069_extcall/test_gas/test_ext_calls_gas.md))\n- [x] EXTCALL with gas not enough for callee to get 5000 gas ([`./tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_calls.py::test_eof_calls_min_callee_gas`](./eip7069_extcall/test_calls/test_eof_calls_min_callee_gas.md))\n- [x] RETURNDATA* after EXTCALL ([`./tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_returndataload.py`](./eip7069_extcall/test_returndataload/index.md))\n- [x] RETURNDATA* after EXTDELEGATECALL ([`./tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_returndataload.py`](./eip7069_extcall/test_returndataload/index.md))\n- [x] RETURNDATA* after EXTSTATICCALL ([`./tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_returndataload.py`](./eip7069_extcall/test_returndataload/index.md))\n- [x] RETURNDATA* after aborted EXT*CALL ([`./tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_calls.py::test_eof_calls_clear_return_buffer`](./eip7069_extcall/test_calls/test_eof_calls_clear_return_buffer.md))\n- [x] Failed EXTCALL clears returndata from previous EXTCALL ([`./tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_calls.py::test_eof_calls_clear_return_buffer`](./eip7069_extcall/test_calls/test_eof_calls_clear_return_buffer.md))\n- [x] EXTCALL not enough gas for input memory charge ([`./tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_gas.py::test_ext_calls_gas`](./eip7069_extcall/test_gas/test_ext_calls_gas.md))\n- [x] EXTDELEGATECALL not enough gas for input memory charge ([`./tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_gas.py::test_ext_calls_gas`](./eip7069_extcall/test_gas/test_ext_calls_gas.md))\n- [x] EXTSTATICCALL not enough gas for input memory charge ([`./tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_gas.py::test_ext_calls_gas`](./eip7069_extcall/test_gas/test_ext_calls_gas.md))\n- [x] EXTCALL exception due to target address overflow (bits set in high 12 bytes) ([`./tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_address_space_extension.py`](./eip7069_extcall/test_address_space_extension/index.md))\n- [x] EXTDELEGATECALL exception due to target address overflow (bits set in high 12 bytes) ([`./tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_address_space_extension.py`](./eip7069_extcall/test_address_space_extension/index.md))\n- [x] EXTSTATICCALL exception due to target address overflow (bits set in high 12 bytes) ([`./tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_address_space_extension.py`](./eip7069_extcall/test_address_space_extension/index.md))\n- [x] EXTCALL not enough gas for warming up target address ([`./tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_gas.py::test_ext_calls_gas`](./eip7069_extcall/test_gas/test_ext_calls_gas.md))\n- [x] EXTDELEGATECALL not enough gas for warming up target address ([`./tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_gas.py::test_ext_calls_gas`](./eip7069_extcall/test_gas/test_ext_calls_gas.md))\n- [x] EXTSTATICCALL not enough gas for warming up target address ([`./tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_gas.py::test_ext_calls_gas`](./eip7069_extcall/test_gas/test_ext_calls_gas.md))\n- [x] EXTCALL not enough gas for account creation cost (transfer value to non-existing account) ([`./tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_gas.py::test_ext_calls_gas`](./eip7069_extcall/test_gas/test_ext_calls_gas.md))\n- [x] OOG after EXTCALL ([`./tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_calls.py::test_eof_calls_eof_then_fails`](./eip7069_extcall/test_calls/test_eof_calls_eof_then_fails.md))\n- [x] OOG after EXTDELEGATECALL ([`./tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_calls.py::test_eof_calls_eof_then_fails`](./eip7069_extcall/test_calls/test_eof_calls_eof_then_fails.md))\n- [x] OOG after EXTSTATICCALL ([`./tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_calls.py::test_eof_calls_eof_then_fails`](./eip7069_extcall/test_calls/test_eof_calls_eof_then_fails.md))\n- [x] REVERT inside EXTCALL ([`./tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_calls.py::test_callee_fails`](./eip7069_extcall/test_calls/test_callee_fails.md))\n- [x] REVERT inside EXTDELEGATECALL ([`./tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_calls.py::test_callee_fails`](./eip7069_extcall/test_calls/test_callee_fails.md))\n- [x] REVERT inside EXTSTATICCALL ([`./tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_calls.py::test_callee_fails`](./eip7069_extcall/test_calls/test_callee_fails.md))\n- [x] EXTCALL with input (`./tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_calldata.py`)\n- [x] EXTDELEGATECALL with input (`./tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_calldata.py`)\n- [x] EXTSTATICCALL with input (`./tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_calldata.py`)\n- [x] EXTCALL with just enough gas for MIN_RETAINED_GAS and MIN_CALLEE_GAS ([`./tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_calls.py::test_eof_calls_min_callee_gas`](./eip7069_extcall/test_calls/test_eof_calls_min_callee_gas.md))\n- [x] EXTCALL with not enough gas for MIN_CALLEE_GAS ([`./tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_calls.py::test_eof_calls_min_callee_gas`](./eip7069_extcall/test_calls/test_eof_calls_min_callee_gas.md))\n- [x] ADDRESS and CALLER inside EXTCALL ([`./tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_calls.py::test_callee_context`](./eip7069_extcall/test_calls/test_callee_context.md))\n- [x] ADDRESS and CALLER inside EXTDELEGATECALL ([`./tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_calls.py::test_callee_context`](./eip7069_extcall/test_calls/test_callee_context.md))\n- [x] ADDRESS and CALLER inside EXTSTATICCALL ([`./tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_calls.py::test_callee_context`](./eip7069_extcall/test_calls/test_callee_context.md))\n- [ ] Refund inside EXTCALL is applied after the transaction (evmone-tests: state_tests/state_transition/eof_calls/extcall_gas_refund_propagation.json)\n- [ ] Refund inside EXTDELEGATECALL is applied after the transaction (evmone-tests: state_tests/state_transition/eof_calls/extdelegatecall_gas_refund_propagation.json)\n- [x] EXTSTATICCALL from EOF to non-pure legacy contract failing ([`./tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_calls.py::test_eof_calls_legacy_sstore`](./eip7069_extcall/test_calls/test_eof_calls_legacy_sstore.md))\n- [x] EXTSTATICCALL from EOF to pure EOF contract ([`./tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_calls.py::test_eof_calls_legacy_mstore`](./eip7069_extcall/test_calls/test_eof_calls_legacy_mstore.md))\n- [x] EXTSTATICCALL from EOF to non-pure EOF contract failing ([`./tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_calls.py::test_eof_calls_eof_sstore`](./eip7069_extcall/test_calls/test_eof_calls_eof_sstore.md))\n- [x] `*CALLs` from legacy contracts to EOF contracts (ethereum/tests: ([`./tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_calls.py::test_legacy_calls_eof_sstore`](./eip7069_extcall/test_calls/test_eof_calls_eof_sstore.md))\n- [x] `EXT*CALLs` from EOF to legacy contracts ([`./tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_calls.py::test_eof_calls_legacy_sstore`](./eip7069_extcall/test_calls/test_eof_calls_eof_sstore.md))\n- [x] EXTDELEGATECALL from EOF to EOF contract ([`./tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_calls.py::test_eof_calls_eof_sstore`](./eip7069_extcall/test_calls/test_eof_calls_eof_sstore.md))\n- [x] EXTDELEGATECALL from EOF to legacy contract failing ([`./tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_calls.py::test_extdelegate_call_targets`](./eip7069_extcall/test_calls/test_extdelegate_call_targets.md))\n- [x] EXTDELEGATECALL from EOF to EOA failing ([`./tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_calls.py::test_extdelegate_call_targets`](./eip7069_extcall/test_calls/test_extdelegate_call_targets.md))\n- [x] EXTDELEGATECALL from EOF to empty account failing ([`./tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_calls.py::test_extdelegate_call_targets`](./eip7069_extcall/test_calls/test_extdelegate_call_targets.md))\n- [x] EXTDELEGATECALL to EIP-7702 delegate ([`./tests/unscheduled/eip7692_eof_v1/eip7069_extcall/test_calls.py::test_extdelegate_call_targets`](./eip7069_extcall/test_calls/test_extdelegate_call_targets.md))\n\n\n## EIP-7620: EOF Contract Creation\n\n### Validation\n\n- [ ] Valid EOFCREATEs referring to various container numbers (ethereum/tests: ./src/EOFTestsFiller/efValidation/EOF1_eofcreate_valid_Copier.json)\n- [x] Truncated before EOFCREATE immediate ([`tests/unscheduled/eip7692_eof_v1/eip7620_eof_create/test_eofcreate.py`](./eip7620_eof_create/test_eofcreate/index.md)`-k test_eofcreate_invalid_truncated_immediate`)\n- [ ] EOFCREATE is not a valid terminating instruction\n- [x] EOFCREATE immediate referring to non-existing container ([`tests/unscheduled/eip7692_eof_v1/eip7620_eof_create/test_eofcreate.py`](./eip7620_eof_create/test_eofcreate/index.md)`-k test_eofcreate_invalid_index`)\n- [x] EOFCREATE immediate referring to container with truncated data ([`tests/unscheduled/eip7692_eof_v1/eip7620_eof_create/test_eofcreate.py`](./eip7620_eof_create/test_eofcreate/index.md)`-k test_eofcreate_truncated_container`)\n- [x] Valid RETURNCODEs referring to various container numbers ([`tests/unscheduled/eip7692_eof_v1/eip7620_eof_create/test_returncode.py`](./eip7620_eof_create/test_returncode/index.md)`-k test_returncode_valid_index`)\n- [x] Truncated before RETURNCODE immediate ([`tests/unscheduled/eip7692_eof_v1/eip7620_eof_create/test_returncode.py::test_returncode_invalid_truncated_immediate`](./eip7620_eof_create/test_returncode/test_returncode_invalid_truncated_immediate.md))\n- [x] RETURNCODE immediate referring to non-existing container ([`tests/unscheduled/eip7692_eof_v1/eip7620_eof_create/test_returncode.py`](./eip7620_eof_create/test_returncode/index.md)`-k test_returncode_invalid_index`)\n- [x] Unreachable code after RETURNCODE, check that RETURNCODE is terminating ([`tests/unscheduled/eip7692_eof_v1/eip7620_eof_create/test_returncode.py::test_returncode_terminating`](./eip7620_eof_create/test_returncode/test_returncode_terminating.md))\n\n### Execution\n\n- [ ] CREATE with EOF initcode fails in Prague (evmone-tests: state_tests/state_transition/eof_create/create_with_eof_initcode.json)\n- [ ] CREATE with EOF initcode fails in Cancun (evmone-tests: state_tests/state_transition/eof_create/create_with_eof_initcode_cancun.json)\n- [ ] CREATE2 with EOF initcode fails in Prague (evmone-tests: state_tests/state_transition/eof_create/create2_with_eof_initcode.json)\n- [ ] CREATE2 with EOF initcode fails in Cancun (evmone-tests: state_tests/state_transition/eof_create/create2_with_eof_initcode_cancun.json)\n- [ ] CREATE with legacy initcode and EOF deploy code fails (evmone-tests: state_tests/state_transition/eof_create/create_deploying_eof.json)\n- [ ] CREATE2 with legacy initcode and EOF deploy code fails (evmone-tests: state_tests/state_transition/eof_create/create2_deploying_eof.json)\n- [ ] EOFCREATE success with empty aux data (evmone-tests: state_tests/state_transition/eof_create/eofcreate_empty_auxdata.json)\n- [ ] EOFCREATE success with aux data length equal to declared in deploy container (evmone-tests: state_tests/state_transition/eof_create/eofcreate_auxdata_equal_to_declared.json)\n- [ ] EOFCREATE success with aux data longer than size declared in deploy container (evmone-tests: state_tests/state_transition/eof_create/eofcreate_auxdata_longer_than_declared.json)\n- [ ] EOFCREATE with aux data shorter than size declared in deploy container fails (evmone-tests: state_tests/state_transition/eof_create/eofcreate_auxdata_shorter_than_declared.json)\n- [ ] EOFCREATE success deploying DATALOADN referring to aux data portion of deploy container data (evmone-tests: state_tests/state_transition/eof_create/eofcreate_dataloadn_referring_to_auxdata.json)\n- [ ] EOFCREATE success with deploy container having aux data and subcontainer (evmone-tests: state_tests/state_transition/eof_create/eofcreate_with_auxdata_and_subcontainer.json)\n- [ ] REVERT in initcontainer (evmone-tests: state_tests/state_transition/eof_create/eofcreate_revert_empty_returndata.json)\n- [ ] REVERT with return data in initcontainer (evmone-tests: state_tests/state_transition/eof_create/eofcreate_revert_non_empty_returndata.json)\n- [ ] Exceptional abort in initcontainer (evmone-tests: state_tests/state_transition/eof_create/eofcreate_initcontainer_aborts.json)\n- [ ] EOFCREATE with deploy container of max size 0x6000 (evmone-tests: state_tests/state_transition/eof_create/eofcreate_deploy_container_max_size.json)\n- [ ] EOFCREATE with deploy container size above limit (evmone-tests: state_tests/state_transition/eof_create/eofcreate_deploy_container_too_large.json)\n- [ ] EOFCREATE with deploy container data size above 64K after appending aux data (evmone-tests: state_tests/state_transition/eof_create/eofcreate_appended_data_size_larger_than_64K.json)\n- [ ] EOFCREATE with deploy container size above limit after appending aux data (evmone-tests: state_tests/state_transition/eof_create/eofcreate_deploy_container_with_aux_data_too_large.json)\n- [ ] EOFCREATE success nested in EOFCREATE initcode (evmone-tests: state_tests/state_transition/eof_create/eofcreate_nested_eofcreate.json)\n- [ ] EOFCREATE success nested in EOFCREATE initcode that reverts (evmone-tests: state_tests/state_transition/eof_create/eofcreate_nested_eofcreate_revert.json)\n- [ ] EOFCREATE with value success\n- [ ] EOFCREATE with value - not enough caller balance (evmone-tests: state_tests/state_transition/eof_create/eofcreate_caller_balance_too_low.json)\n- [ ] EOFCREATE not enough gas for initcode (EIP-3860) charge (evmone-tests: state_tests/state_transition/eof_create/eofcreate_not_enough_gas_for_initcode_charge.json)\n- [ ] EOFCREATE not enough gas for input memory expansion (evmone-tests: state_tests/state_transition/eof_create/eofcreate_not_enough_gas_for_mem_expansion.json)\n- [ ] RETURNCODE not enough gas for aux data memory expansion (evmone-tests: state_tests/state_transition/eof_create/returncode_not_enough_gas_for_mem_expansion.json)\n- [ ] Successful EOFCREATE clears returndata  (evmone-tests: state_tests/state_transition/eof_create/eofcreate_clears_returndata.json)\n- [ ] Second EOFCREATE with the same container and salt fails (evmone-tests: state_tests/state_transition/eof_create/eofcreate_failure_after_eofcreate_success.json)\n- [ ] Call created contract after EOFCREATE (evmone-tests: state_tests/state_transition/eof_create/eofcreate_call_created_contract.json)\n\n## EIP-7698: EOF - Creation transaction\n\nTODO: replace with `EIP-7873: EOF - TXCREATE and InitcodeTransaction type` test cases\n\n### Execution\n\n- [ ] Creation transaction success with empty deploy container data (evmone-tests: state_tests/state_transition/eof_create/creation_tx.json)\n- [ ] Creation transaction success with data in deploy container without aux data (evmone-tests: state_tests/state_transition/eof_create/creation_tx_deploy_data.json)\n- [ ] Creation transaction success with data in deploy container with aux data length equal to declared (evmone-tests: state_tests/state_transition/eof_create/creation_tx_static_auxdata_in_calldata.json)\n- [ ] Creation transaction success with data in deploy container with aux data longer than declared (evmone-tests: state_tests/state_transition/eof_create/creation_tx_dynamic_auxdata_in_calldata.json)\n- [ ] Creation transaction success deploying DATALOADN referring to aux data portion of deploy container data (evmone-tests: state_tests/state_transition/eof_create/creation_tx_dataloadn_referring_to_auxdata.json)\n- [ ] Exceptional abort in creation transaction initcode (evmone-tests: state_tests/state_transition/eof_create/creation_tx_initcontainer_aborts.json)\n- [ ] RETURN in creation transaction initcode fails (evmone-tests: state_tests/state_transition/eof_create/creation_tx_initcontainer_return.json)\n- [ ] STOP in creation transaction initcode fails (evmone-tests: state_tests/state_transition/eof_create/creation_tx_initcontainer_stop.json)\n- [ ] Creation transaction with initcode of max allowed size 0xc000 (evmone-tests: state_tests/state_transition/eof_create/creation_tx_initcontainer_max_size.json)\n- [ ] Creation transaction with initcode size above limit (evmone-tests: state_tests/state_transition/eof_create/creation_tx_initcontainer_too_large.json)\n- [ ] Creation transaction deploys container of max allowed size 0x6000 (evmone-tests: state_tests/state_transition/eof_create/creation_tx_deploy_container_max_size.json)\n- [ ] Creation transaction deploying container of size above limit fails (evmone-tests: state_tests/state_transition/eof_create/creation_tx_deploy_container_too_large.json)\n- [ ] EOFCREATE success nested in creation transaction initcode (evmone-tests: state_tests/state_transition/eof_create/creation_tx_nested_eofcreate.json)\n- [ ] Creation transaction with invalid initcontainer (invalid header) (evmone-tests: state_tests/state_transition/eof_create/creation_tx_invalid_initcode_header.json)\n- [ ] Creation transaction with invalid initcontainer (invalid EOF version) (evmone-tests: state_tests/state_transition/eof_create/creation_tx_invalid_eof_version.json)\n- [ ] Creation transaction with invalid initcontainer (invalid max stack height) (evmone-tests: state_tests/state_transition/eof_create/creation_tx_invalid_initcode.json)\n- [ ] Creation transaction fails if initcontainer has truncated data section (declared size > present data size ) (evmone-tests: state_tests/state_transition/eof_create/creation_tx_truncated_data_initcode.json)\n- [ ] Creation transaction with invalid deploy container (evmone-tests: state_tests/state_transition/eof_create/creation_tx_invalid_deploycode.json)\n- [ ] Create transaction with legacy initcode and EOF deploy code fails (evmone-tests: state_tests/state_transition/eof_create/creation_tx_deploying_eof.json)\n- [ ] EOF creation transaction fails before Prague (evmone-tests: state_tests/state_transition/eof_create/initcode_transaction_before_unscheduled.json)\n"
  },
  {
    "path": "tests/unscheduled/eip7692_eof_v1/gas_test.py",
    "content": "\"\"\"Utility to generate gas usage related state tests automatically.\"\"\"\n\nimport itertools\n\nfrom ethereum_test_base_types.base_types import Address\nfrom ethereum_test_tools import Account, Alloc, Environment, StateTestFiller, Transaction\nfrom ethereum_test_types.eof.v1 import Container, Section\nfrom ethereum_test_vm import Bytecode, EVMCodeType\nfrom ethereum_test_vm import Opcodes as Op\n\nfrom .eip7069_extcall.spec import (\n    LEGACY_CALL_FAILURE,\n    LEGACY_CALL_SUCCESS,\n)\n\nWARM_ACCOUNT_ACCESS_GAS = 100\n\n\"\"\"Storage addresses for common testing fields\"\"\"\n_slot = itertools.count()\nslot_cold_gas = next(_slot)\nslot_warm_gas = next(_slot)\nslot_oog_call_result = next(_slot)\nslot_sanity_call_result = next(_slot)\n\n\ndef gas_test(\n    state_test: StateTestFiller,\n    env: Environment,\n    pre: Alloc,\n    setup_code: Bytecode,\n    subject_code: Bytecode,\n    tear_down_code: Bytecode,\n    cold_gas: int,\n    warm_gas: int | None = None,\n    subject_subcontainer: Container | None = None,\n    subject_address: Address | None = None,\n    subject_balance: int = 0,\n    oog_difference: int = 1,\n    out_of_gas_testing: bool = True,\n    *,\n    prelude_code: Bytecode | None = None,\n) -> None:\n    \"\"\"\n    Create State Test to check the gas cost of a sequence of EOF code.\n\n    `setup_code` and `tear_down_code` are called multiple times during the\n    test, and MUST NOT have any side-effects which persist across message\n    calls, and in particular, any effects on the gas usage of `subject_code`.\n    \"\"\"\n    if cold_gas <= 0:\n        raise ValueError(f\"Target gas allocations (cold_gas) must be > 0, got {cold_gas}\")\n    if warm_gas is None:\n        warm_gas = cold_gas\n\n    sender = pre.fund_eoa()\n\n    address_baseline = pre.deploy_contract(Container.Code(setup_code + tear_down_code))\n    code_subject = setup_code + subject_code + tear_down_code\n    address_subject = pre.deploy_contract(\n        Container.Code(code_subject)\n        if not subject_subcontainer\n        else Container(\n            sections=[\n                Section.Code(code_subject),\n                Section.Container(subject_subcontainer),\n            ]\n        ),\n        balance=subject_balance,\n        address=subject_address,\n    )\n    # 2 times GAS, POP, CALL, 6 times PUSH1 - instructions charged for at every\n    # gas run\n    gas_single_gas_run = 2 * 2 + 2 + WARM_ACCOUNT_ACCESS_GAS + 6 * 3\n    address_legacy_harness = pre.deploy_contract(\n        code=(\n            # warm subject and baseline without executing\n            (Op.BALANCE(address_subject) + Op.POP + Op.BALANCE(address_baseline) + Op.POP)\n            # run any \"prelude\" code that may have universal side effects\n            + prelude_code\n            # Baseline gas run\n            + (\n                Op.GAS\n                + Op.CALL(address=address_baseline, gas=Op.GAS)\n                + Op.POP\n                + Op.GAS\n                + Op.SWAP1\n                + Op.SUB\n            )\n            # cold gas run\n            + (\n                Op.GAS\n                + Op.CALL(address=address_subject, gas=Op.GAS)\n                + Op.POP\n                + Op.GAS\n                + Op.SWAP1\n                + Op.SUB\n            )\n            # warm gas run\n            + (\n                Op.GAS\n                + Op.CALL(address=address_subject, gas=Op.GAS)\n                + Op.POP\n                + Op.GAS\n                + Op.SWAP1\n                + Op.SUB\n            )\n            # Store warm gas: DUP3 is the gas of the baseline gas run\n            + (Op.DUP3 + Op.SWAP1 + Op.SUB + Op.PUSH2(slot_warm_gas) + Op.SSTORE)\n            # store cold gas: DUP2 is the gas of the baseline gas run\n            + (Op.DUP2 + Op.SWAP1 + Op.SUB + Op.PUSH2(slot_cold_gas) + Op.SSTORE)\n            + (\n                (\n                    # do an oog gas run, unless skipped with\n                    # `out_of_gas_testing=False`:\n                    #\n                    # - DUP7 is the gas of the baseline gas run, after other\n                    #   CALL args were pushed\n                    # - subtract the gas charged by the harness\n                    # - add warm gas charged by the subject\n                    # - subtract `oog_difference` to cause OOG exception\n                    #   (1 by default)\n                    Op.SSTORE(\n                        slot_oog_call_result,\n                        Op.CALL(\n                            gas=Op.ADD(warm_gas - gas_single_gas_run - oog_difference, Op.DUP7),\n                            address=address_subject,\n                        ),\n                    )\n                    # sanity gas run: not subtracting 1 to see if enough gas\n                    # makes the call succeed\n                    + Op.SSTORE(\n                        slot_sanity_call_result,\n                        Op.CALL(\n                            gas=Op.ADD(warm_gas - gas_single_gas_run, Op.DUP7),\n                            address=address_subject,\n                        ),\n                    )\n                    + Op.STOP\n                )\n                if out_of_gas_testing\n                else Op.STOP\n            )\n        ),\n        evm_code_type=EVMCodeType.LEGACY,  # Needs to be legacy to use GAS\n        # opcode\n    )\n\n    post = {\n        address_legacy_harness: Account(\n            storage={\n                slot_warm_gas: warm_gas,\n                slot_cold_gas: cold_gas,\n            },\n        ),\n    }\n\n    if out_of_gas_testing:\n        post[address_legacy_harness].storage[slot_oog_call_result] = LEGACY_CALL_FAILURE\n        post[address_legacy_harness].storage[slot_sanity_call_result] = LEGACY_CALL_SUCCESS\n\n    tx = Transaction(to=address_legacy_harness, gas_limit=env.gas_limit, sender=sender)\n\n    state_test(env=env, pre=pre, tx=tx, post=post)\n"
  },
  {
    "path": "tox.ini",
    "content": "[tox]\n# Get a description of all available environments with `uvx --with=tox-uv tox -av`\nenv_list =\n    lint\n    typecheck\n    markdownlint\n    spellcheck\n    pytest\n    tests-deployed\n    tests-deployed-benchmark\n    mkdocs\n\n[testenv]\nrunner = uv-venv-lock-runner\npackage = editable\nwheel_build_env = .pkg\nsolc_version = 0.8.24\npython_source_dirs = src tests .github/scripts\n\n[testenv:lint]\ndescription = Lint and code formatting checks (ruff)\nextras = lint\ncommands =\n    ruff check --no-fix --show-fixes {[testenv]python_source_dirs}\n    ruff format --check {[testenv]python_source_dirs}\n    # The following ensures docstring and comment line length is checked to 79 characters\n    # see https://github.com/ethereum/execution-spec-tests/issues/2134\n    ruff check --select W505 --config 'lint.pycodestyle.max-doc-length = 79' {[testenv]python_source_dirs}\n\n[testenv:typecheck]\ndescription = Run type checking (mypy)\nextras = lint\ncommands = mypy {[testenv]python_source_dirs}\n\n[testenv:spellcheck]\ndescription = Spellcheck code and documentation (codespell)\nextras = docs\npassenv =\n    GITHUB_ACTIONS\n    GITHUB_STEP_SUMMARY\ncommands = python -c \"import src.cli.tox_helpers; src.cli.tox_helpers.codespell()\"\n\n\n[testenv:markdownlint]\ndescription = Lint markdown files (markdownlint)\nextras = docs\ncommands = python -c \"import src.cli.tox_helpers; src.cli.tox_helpers.markdownlint()\"\n\n[testenv:changelog]\ndescription = Validate changelog entries (changelog)\nextras = docs\ncommands = python -c \"import src.cli.tox_helpers; src.cli.tox_helpers.validate_changelog()\"\n\n[testenv:mkdocs]\ndescription = Build documentation in strict mode (mkdocs)\nextras = docs,lint\nsetenv =\n    GEN_TEST_DOC_VERSION = \"tox\"\n    # Required for `cairosvg` so tox can find `libcairo-2`.\n    # https://squidfunk.github.io/mkdocs-material/plugins/requirements/image-processing/?h=cairo#cairo-library-was-not-found\n    DYLD_FALLBACK_LIBRARY_PATH = /opt/homebrew/lib\ncommands =\n    ruff check --no-fix --show-fixes docs/scripts\n    ruff format --check docs/scripts\n    mkdocs build --strict\n\n[testenv:pytest]\ndescription = Run library and framework unit tests (pytest)\nsetenv =\n    # Use custom EELS_RESOLUTIONS_FILE if it is set via the environment (eg, in CI)\n    EELS_RESOLUTIONS_FILE = {env:EELS_RESOLUTIONS_FILE:}\n    CI = {env:CI:}\nextras =\n    test\n    lint # Required `gentest` for formatting tests\ncommands =\n    pytest -n auto\n\n\n[forks]\ndevelop = Osaka\neip7692 = EOFv1\n\n[testenv:tests-deployed]\ndescription = Fill test cases in ./tests/ for deployed mainnet forks, except for slow/benchmark tests.\nsetenv =\n    # Use custom EELS_RESOLUTIONS_FILE if it is set via the environment (eg, in CI)\n    EELS_RESOLUTIONS_FILE = {env:EELS_RESOLUTIONS_FILE:}\ncommands = fill -n auto -m \"not slow\" --output=/tmp/fixtures-tox --clean\n\n[testenv:tests-deployed-benchmark]\ndescription = Fill benchmarking test cases in ./tests/ for deployed mainnet forks, using evmone-t8n.\ncommands = fill -n auto -m \"benchmark\" --gas-benchmark-values 5 --output=/tmp/fixtures-tox --clean --evm-bin=evmone-t8n --from=Prague\n\n[testenv:tests-develop]\ndescription = Fill test cases in ./tests/ for deployed and development mainnet forks\nsetenv =\n    # Use custom EELS_RESOLUTIONS_FILE if it is set via the environment (eg, in CI)\n    EELS_RESOLUTIONS_FILE = {env:EELS_RESOLUTIONS_FILE:}\ncommands = fill -n auto --until={[forks]develop} -k \"not slow\" --output=/tmp/fixtures-tox --clean\n\n# ----------------------------------------------------------------------------------------------\n# ALIAS ENVIRONMENTS\n# ----------------------------------------------------------------------------------------------\n# For convenience/backwards compatibility. Using -e with a list of environments is preferred due\n# to clearer output and better parallelization, e.g.\n# uvx --with=tox-uv tox -e lint,typecheck,spellcheck,pytest\n# ----------------------------------------------------------------------------------------------\n\n# ALIAS that runs checks on ./src/: lint, typecheck, spellcheck, pytest\n# uvx --with=tox-uv tox -e lint,typecheck,spellcheck,pytest\n[testenv:framework]\ndescription = Alias that runs lint, typecheck, spellcheck, pytest.\nextras =\n    {[testenv:lint]extras}\n    {[testenv:typecheck]extras}\n    {[testenv:spellcheck]extras}\n    {[testenv:pytest]extras}\nsetenv =\n    {[testenv:pytest]setenv}\ncommands_pre =\n    {[testenv:pytest]:commands_pre}\ncommands =\n    {[testenv:lint]commands}\n    {[testenv:typecheck]commands}\n    {[testenv:spellcheck]commands}\n    {[testenv:pytest]commands}\n\n# ALIAS that runs checks on ./tests/: lint, typecheck, spellcheck, tests-deployed\n# uvx --with=tox-uv tox -e lint,typecheck,spellcheck,tests-deployed\n[testenv:tests]\ndescription = Alias that runs lint, typecheck, spellcheck, tests-deployed\nextras =\n    {[testenv:lint]extras}\n    {[testenv:typecheck]extras}\n    {[testenv:spellcheck]extras}\n    {[testenv:tests-deployed]extras}\n    {[testenv:tests-deployed-benchmark]extras}\nsetenv =\n    {[testenv:pytest]setenv}\ncommands_pre =\n    {[testenv:tests-deployed]:commands_pre}\n    {[testenv:tests-deployed-benchmark]:commands_pre}\ncommands =\n    {[testenv:lint]commands}\n    {[testenv:typecheck]commands}\n    {[testenv:spellcheck]commands}\n    {[testenv:tests-deployed]commands}\n    {[testenv:tests-deployed-benchmark]commands}\n\n# ALIAS that runs checks on ./docs/: spellcheck, markdownlint, mkdocs\n# uvx --with=tox-uv tox -e spellcheck,markdownlint,mkdocs\n[testenv:docs]\ndescription = Alias that runs all documentation checks (spellcheck, markdownlint, mkdocs).\nextras =\n    {[testenv:spellcheck]extras}\n    {[testenv:markdownlint]extras}\n    {[testenv:mkdocs]extras}\nsetenv =\n    {[testenv:mkdocs]setenv}\ncommands =\n    {[testenv:spellcheck]commands}\n    {[testenv:markdownlint]commands}\n    {[testenv:mkdocs]commands}"
  },
  {
    "path": "whitelist.txt",
    "content": "uv\nfemtoether\nPicoether\nmicroether\nmilliether\nmilli\nnanoether\n0xaa\nAccessListType\nAccount1\nAccount2\nacl\naddr\naddress\naddress2\nAddressType\nalloc\napi\napis\narcname\nargcount\nargnames\nargvalues\nase\nasm\nat5\nAuthorizationInvalidityType\nAutoSection\nauxdata\nbalance\nbase64\nbasefee\nbasename\nbb\nBerlinToLondonAt\nbesu\npyspecs\nbig0\nbig1\nbigint\nblake2f\nblobgasfee\nblockchain\nBlockchainFixtures\nBlockchainTest\nBlockchainTestFiller\nBlockchainTests\nBlockException\nblockhash\nblockhashes\nblocknum\nblocktest\nbls\nbls12\nblueswen\nbool\nboolean\nbr\nbytecode\nbyteorder\nbytes20\nbytes32\nbytes8\ncalc\ncalldata\ncalldatacopy\ncalldataload\ncalldatasize\ncallee\ncaller\ncallvalue\ncancun\ncd\nchainid\nChainIDType\nchangelog\nchfast\nclassdict\ncli\nclis\nCLIs\ncli2\ncmd\ncodeAddr\ncodebase\ncodecopy\ncodesize\ncoinbase\ncoincurve\ncommonpath\ncompilable\nconfig\nconfigs\nconftest\ncontractAddr\ncontrolflow\ncp\nCPUs\ncrypto\ncryptographic\ncurrentframe\ncustomizations\nCustomizations\ndanceratopz\ndao\ndataclasses\ndatacopy\ndataload\ndataloadn\ndatasize\ndatastructures\ndelitem\nDencun\ndesignator\ndeprecations\ndeserialization\ndeserialized\ndev\ndevnet\ndifficulty\ndir\ndirname\ndirs\ndiscordapp\ndockerdocs\ndocstring\ndocstrings\ndoseq\ndunder\ndup\neip\neip123\neip3540\neip4844\neip6110\neip7002\neip7069\neip7620\neip7692\nP7692\neip7251\neips\nEIPs\nEIP's\nel\nendianness\nEngineAPI\nenum\nenv\nenvvar\neoa\nEOA\nEOAs\neof\neofwrap\nEOF1\nEOFException\neofparse\nepilog\nesbenp\neest\nEEST's\nERC\neth\nethash\nethereum\nethereum's\nEthereumJS\nevaluatable\nevm\nEVMCodeType\nevmone\nEvmone\nexecutables\nextcodecopy\nextcodehash\nextcodesize\nexitstatus\nF00\nfcu\nfilelock\nfilesystem\nfillvalue\nfirstlineno\nfmt\nfn\nfname\nforkchoice\nformatOnSave\nformatter\nfp\nfp2\nfromhex\nfunc\ng1\ng1add\ng1msm\ng1mul\ng2\ng2add\ng2msm\ng2mul\ngaslimit\ngasprice\ngcc\nGeneralStateTestsFiller\ngentest\ngetframeinfo\ngeth\ngeth's\ngetitem\ngetmtime\ngh\nGHSA\ngit's\ngithub\nGithub\nGithub's\nglightbox\nglobals\ngo-ethereum's\nGolang\ngwei\nhacky\nhardfork\nhash32\nHashable\nhasher\nHeaderNonce\nhexary\nhexbytes\nHexNumber\nhexsha\nhiveview\nhomebrew\nhtml\nhtmlpath\nhttps\nhyperledger\niat\nidx\nignoreRevsFile\nimg\nimm\nimmediates\nincr\nincrementing\nini\ninit\ninitcode\ninitcodes\ninputdata\ninstantiation\nio\nisfile\nisidentifier\nislice\nisort\nisort's\nispkg\nitemName\njavascripts\njimporter\njoinpath\njpg\njq\njs\njson\nJSON\nkeccak\nkeccak256\nkeepends\nkey2\nkzg\nkzgs\nlastblockhash\nlen\nLevenshtein\nlinux\nlistdir\nlll\nlllc\nlondon\nLTS\nmacOS\nmainnet\nmakefiles\nmakereport\nmakeconftest\nmarioevz\nmarkdownlint\nmd\nmem\nmempool\nmetaclass\nmixin\nmixins\nmixhash\nmkdocs\nmkdocstrings\nmortem\nmortems\nmsm\nmypy\nctx\nnamespace\nnatively\nnav\nncheck\nnektos\nnethermind\nNethermind's\nnexternal\nnGo\nnJSON\nnonreturning\nnop\nNOP\nNOPs\nnPython\nnSHA\nt8ntool\nNOTSET\nnum\nnumber\nommer\nommers\noneliner\noob\nOpenSSL\nopc\noprypin\nori\norigin\nP1\nP2\np256verify\nparseable\npassthrough\npathlib\npdb\nPectra\nperf\npermalink\npetersburg\npformat\nplatformdirs\npluginmanager\npng\nPomerantz\nPOS\nppa\nppas\nprague\npre\nPre\nprecompile\npredeploy\nprepend\nprestateTracer\nPrevRandao\nPRs\nprogrammatically\npubkey\npx\npy\npydantic\npyproject\nPyspec\npyspelling\npytest\nPytest\npytest's\npytestArgs\nqGpsxSA\nquestionary\nquickstart\nradd\nrandao\nreadme\nreadthedocs\nreentrancy\nreentrant\nrepo\nrepo's\nrepos\nreturncode\nreturncontract\nreturndata\nreturndatacopy\nreturndatasize\nreusability\nrlp\nrootdir\nrpc\nruleset\nruntestloop\nruntime\nS12\nsandboxed\nsecp256k1\nsecp256k1n\nselfbalance\nser\nserializable\nservable\nsetenv\nsetitem\nsha\nSHA\nsharding\nSignerType\nsimlimit\nsolc\nsoliditylang\nSpec4844\nspencer\nspencertaylorbrown\nspencertb\nsplitext\nsquidfunk\nsrc\nssz\nstackoverflow\nstateful\nStateTest\nStateTestFiller\nStateTests\nstaticcalled\nstdin\nstdout\nstExample\nstr\nstreetsidesoftware\nsubcall\nsubclasscheck\nsubcommands\nsubdir\nsubdirectories\nsubdirectory\nsubgraph\nsubprocess\nsubscriptable\nsubstring\nsudo\nsysconfig\nt8n\ntamasfe\ntbd\nterminalreporter\ntestability\nTestAddress\ntestscollected\nTestContractCreationGasUsage\nTestMultipleWithdrawalsSameAddress\ntestrun\ntextwrap\nThreeHrSleep\ntime15k\ntimestamp\ntmp\ntodo\ntoml\ntoplevel\ntox\nTox\ntraceback\nTransactionException\ntrie\ntriggerable\ntstorage\ntx\ntx1\ntx2\ntxs\ntxt\nty\ntypehints\nu256\nubuntu\nukiyo\nuid\nuncomment\nunderflow\nundersize\nunlink\nusr\nunixsocket\nutil\nutils\nv0\nv1\nv2\nv3\nv4\nvalidator\nvalidators\nValidAt\nValidAtTransitionTo\nValidFrom\nValidUntil\nvenv\nvisualstudio\nvm\nVRS\nvscode\nvv\nwd\nwds\nwei\nwikipedia\nwordlist\nworkspaces\nwww\nxdist\nxF\nxFA\nxFD\nxFF\nxpassed\nyaml\nYAML\nyml\nyParity\nyul\nzfill\naddoption\naddinivalue\nargname\nautouse\nbasedir\ncallspec\ncollectonly\ncopyfile\ncopytree\ndedent\ndest\nexc\nextractall\nfg\nfixturenames\nfspath\nfuncargs\ngetfixturevalue\ngetgroup\ngetoption\nGolang\ngroupby\nhookimpl\nhookwrapper\nIEXEC\nIGNORECASE\ninifile\nisatty\niterdir\nljust\nlongreprtext\nmakepyfile\nmakereport\nmetafunc\nmodifyitems\nmonkeypatching\nneth\nnethtest\nnodeid\nnoop\noog\noptparser\noriginalname\nparametrized\nparam\nparams\nparametrize\nparametrizes\nparametrizer\nparametrizers\nparametrization\nparametrizing\npopen\nprevrandao\nprover\nprovers\npytestconfig\npytester\npytestmark\nreadline\nregexes\nremovesuffix\nreportinfo\nret\nrglob\nripemd\nrjust\nrootpath\nrunpytest\nruntest\nstartdir\nsubclasses\nsubcommand\nsubcontainer\nsubstring\nsubstrings\nteardown\ntempdir\ntestdir\nteststatus\ntmpdir\ntoc\ntryfirst\ntrylast\nusefixtures\nverifier\nverifiers\nwritelines\nxfail\nZeroPaddedHexNumber\nP7692\n\nstop\nadd\nmul\nsub\ndiv\nsdiv\nmod\nsmod\naddmod\nmulmod\nexp\nsignextend\nlt\ngt\nslt\nsgt\neq\niszero\nand\nor\nxor\nnot\nbyte\nshl\nshr\nsar\nsha3\naddress\nbalance\norigin\ncaller\ncallvalue\ncalldataload\ncalldatasize\ncalldatacopy\ncodesize\ncodecopy\ngasprice\nextcode\nextcodesize\nextcodecopy\nreturndata\nreturndatasize\nreturndatacopy\nreturndataload\nextcodehash\nblockhash\ncoinbase\ntimestamp\nnumber\ndifficulty\ngaslimit\npop\nmload\nmstore\nmstore8\nsload\nsstore\njump\njumpi\njumpf\npc\nmsize\ngas\njumpdest\nrjump\nrjumpi\nrjumpkind\nrjumps\nrjumpv\nRJUMPV\ncallf\nretf\npush0\npush1\npush2\npush3\npush4\npush5\npush6\npush7\npush8\npush9\npush10\npush11\npush12\npush13\npush14\npush15\npush16\npush17\npush18\npush19\npush20\npush21\npush22\npush23\npush24\npush25\npush26\npush27\npush28\npush29\npush30\npush31\npush32\ndup1\ndup2\ndup3\ndup4\ndup5\ndup6\ndup7\ndup8\ndup9\ndup10\ndup11\ndup12\ndup13\ndup14\ndup15\ndup16\ndupn\nswap1\nswap2\nswap3\nswap4\nswap5\nswap6\nswap7\nswap8\nswap9\nswap10\nswap11\nswap12\nswap13\nswap14\nswap15\nswap16\nswapn\nlog0\nlog1\nlog2\nlog3\nlog4\ndataload\ndataloadn\ndatasize\ndatacopy\ntload\ntstore\ncreate\ncreate2\ncreate3\ncreate4\ncall\ncallcode\nreturn\ndelegatecall\ndelegatecalling\neofcreate\neoftest\nextcall\nextcalls\nextdelegatecall\nstaticcall\nextstaticcall\nrevert\nselfdestruct\nselfdestructing\nsendall\nblobhash\nblobbasefee\nmcopy\nprecompile\nprecompiles\ndeployer\n0x\nmodexp\nModExp\n0x00\n0x01\n0x10\n\nfi\nurl\ngz\ntT\nistanbul\nberlin\n\n0A\n0B\n0C\n0D\n0E\n0F\n1A\n1B\n1C\n1D\n1E\n1F\n2A\n2B\n2C\n2D\n2E\n2F\n3A\n3B\n3C\n3D\n3E\n3F\n4A\n4B\n4C\n4D\n4E\n4F\n5A\n5B\n5C\n5D\n5E\n5F\n6A\n6B\n6C\n6D\n6E\n6F\n7A\n7B\n7C\n7D\n7E\n7F\n8A\n8B\n8C\n8D\n8E\n8F\n9A\n9B\n9C\n9D\n9E\n9F\nA0\nA1\nA2\nA3\nA4\nA5\nA6\nA7\nA8\nA9\nAA\nAB\nAC\nAD\nAE\nAF\nB0\nB1\nB2\nB3\nB4\nB5\nB6\nB7\nB8\nB9\nBA\nBB\nBC\nBD\nBE\nBF\nC0\nC1\nC2\nC3\nC4\nC5\nC6\nC7\nC8\nC9\nCA\nCB\nCC\nCD\nCE\nCF\nD0\nD1\nD2\nD3\nD4\nD5\nD6\nD7\nD8\nD9\nDA\nDB\nDC\nDE\nDF\nDF\nE0\nE1\nE2\nE3\nE4\nE5\nE6\nE7\nE8\nE9\nEA\nEB\nEC\nED\nEE\nEF\nF0\nF1\nF2\nF3\nF4\nF5\nF6\nF7\nF8\nF9\nFA\nFB\nFC\nFD\nFE\nFF\nef01\nuv\nEthereumCLI\nTransitionTool\nrebase\ndeps\ndatatables\njinja\ntemplating\nEOFv\nsubcontainers\nize\nnectos\nfibonacci\nCPython\nlegacytests\npycryptodome\npytest_sessionfinish\nlevelname\npytest_runtest_logstart\npytest_runtest_logreport\npytest_runtest_logfinish\neestloglevel\ncaplog\nworkerinput\ndockerenv\nstderr\nEESTLogger\nFormatters\nUI\nasctime\npetertdavies\ncofactor\ncofactors\ncoeffs\nuncomp\nisogeny\ncodomain\nnametag\nCFI'd\nopcode's\nrf\nbuildarg\nbuildoutput\nnocache\nchecktimelimit\nloglevel\nci\nnetstat\ntlnp\ngolang\nnewPayload\nbaseimage\nnametags\nliveness\nparadigmxyz\nlightclient\nPreviousFork\nNewFork\nps\nforkchoiceUpdated\nps\nufw\nbenchmarking\nvalidium\nrollup\nJWT\nWebSocket\nPrysm\nxargs\nghcr\nErigon\nDockerfiles\ndockerized\ntgz\nreth\nhttp\nPID\nxml\njunit\ndockerfile\nargs\nPowerShell\npectra\nuname\nZsh\nusermod\nnewgrp\nsystemctl\nbackticked\nTypecheck\nautoformat\nTypechecking\ngroupstats\nSharedPreStateGroup\nqube\naspell\ncodespell\nnagydani\nguido\nmarcin\ncodespell\npeerdas\nckzg\nCLZ\nFujisan\nzkevm\njsign\nGlamsterdam\nWatcherfall"
  }
]